diff --git a/.babelrc b/.babelrc index c4466cc1..88b7baae 100644 --- a/.babelrc +++ b/.babelrc @@ -1,15 +1,5 @@ { - "presets": ["@vue/app"], - "env": { - "test": { - "presets": [ - [ - "@vue/app", - { - "modules": "commonjs" - } - ] - ] - } - } + "presets": [ + "@vue/cli-plugin-babel/preset" + ] } diff --git a/.circleci/config.yml b/.circleci/config.yml index e36333f3..e9cc44ee 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -3,7 +3,7 @@ jobs: build: docker: # specify the version you desire here - - image: cimg/node:12.22.12 + - image: cimg/node:14.18.1 # Specify service dependencies here if necessary # CircleCI maintains a library of pre-built images diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml new file mode 100644 index 00000000..83393535 --- /dev/null +++ b/.github/workflows/gh-pages.yml @@ -0,0 +1,53 @@ +# Sample workflow for building and deploying a Jekyll site to GitHub Pages +name: Deploy Docs with GitHub Pages + +on: + # Runs on pushes targeting the default branch + push: + branches: ["master"] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. +# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. +concurrency: + group: "pages" + cancel-in-progress: false + +jobs: + # Build job + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Setup Pages + uses: actions/configure-pages@v5 + - name: Build with Jekyll + uses: actions/jekyll-build-pages@v1 + with: + source: ./docs + destination: ./docs/_site + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + with: + path: ./docs/_site + + # Deployment job + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/.gitignore b/.gitignore index ae828f87..9416d9ba 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ selenium-debug.log tests/unit/coverage tests/e2e/reports .idea/ +/documentation/shiki/ diff --git a/.npmignore b/.npmignore index 417737b3..09890a48 100644 --- a/.npmignore +++ b/.npmignore @@ -20,3 +20,4 @@ index.html config.js bower.json v1/ +.idea/ diff --git a/.tern-project b/.tern-project deleted file mode 100644 index 25491702..00000000 --- a/.tern-project +++ /dev/null @@ -1,10 +0,0 @@ -{ - "ecmaVersion": 6, - "plugins": { - "modules": {}, - "es_modules": {}, - "doc_comment": { - "fullDocs": true - } - } -} diff --git a/README.md b/README.md index 3fb0f5e1..3c2c590d 100644 --- a/README.md +++ b/README.md @@ -1,27 +1,20 @@ -# vue-multiselect ![Build Status](https://circleci.com/gh/shentao/vue-multiselect/tree/2.0.svg?style=shield&circle-token=5c931ff28fd12587610f835472becdd514d09cef)[![Codecov branch](https://img.shields.io/codecov/c/github/shentao/vue-multiselect/2.0.svg)](https://codecov.io/gh/shentao/vue-multiselect/branch/2.0)[![npm](https://img.shields.io/npm/v/vue-multiselect.svg)](https://www.npmjs.com/package/vue-multiselect) -Probably the most complete *selecting* solution for Vue.js 2.0, without jQuery. +# vue-multiselect -### Vue 3.0 Support -For Vue 3.0 compatible version see [`next`](https://github.com/shentao/vue-multiselect/tree/next) branch. +## Documentation for version 3 - - Vue-Multiselect Screen - - -## Documentation -Visit: [vue-multiselect.js.org](https://vue-multiselect.js.org/#sub-getting-started) +Documentation for v3.0.0 is almost the same as for v2.x as it is mostly backward compatible. For the full docs for v3 and previous versions, check out: [vue-multiselect.js.org](https://vue-multiselect.js.org/#sub-getting-started) ## Sponsors

- Get Form + GetForm Logo

- Suade Labs + Suade Logo

@@ -33,7 +26,7 @@ Visit: [vue-multiselect.js.org](https://vue-multiselect.js.org/#sub-getting-star

- Vue Mastery logo + Vue Mastery Logo

@@ -50,47 +43,39 @@ Visit: [vue-multiselect.js.org](https://vue-multiselect.js.org/#sub-getting-star * V-model support * Vuex support * Async options support -* \> 95% test coverage * Fully configurable (see props list below) -## Breaking changes: -* Instead of Vue.partial for custom option templates you can use a custom render function. -* The `:key` props has changed to `:track-by`, due to conflicts with Vue 2.0. -* Support for `v-model` -* `@update` has changed to `@input` to also work with v-model -* `:selected` has changed to `:value` for the same reason -* Browserify users: if you wish to import `.vue` files, please add `vueify` transform. ## Install & basic usage ```bash -npm install vue-multiselect +npm install vue-multiselect@next ``` ```vue - + ``` ## JSFiddle @@ -98,63 +83,62 @@ npm install vue-multiselect [Example JSFiddle](https://jsfiddle.net/mattelen/8cyt3hrn/5/) – Use this for issue reproduction. ## Examples -in jade-lang/pug-lang ### Single select / dropdown -``` jade -multiselect( - :value="value", - :options="source", - :searchable="false", - :close-on-select="false", - :allow-empty="false", - @input="updateSelected", - label="name", - placeholder="Select one", +```vue + ``` ### Single select with search -``` jade -multiselect( - v-model="value", - :options="source", - :close-on-select="true", - :clear-on-select="false", - placeholder="Select one", - label="name", +```vue + ``` ### Multiple select with search -``` jade -multiselect( - v-model="multiValue", - :options="source", - :multiple="true", - :close-on-select="true", - placeholder="Pick some", - label="name", +```vue + ``` ### Tagging with `@tag` event -``` jade -multiselect( - v-model="taggingSelected", - :options="taggingOptions", - :multiple="true", - :taggable="true", - @tag="addTag", - tag-placeholder="Add this as new tag", - placeholder="Type to search or add tag", - label="name", +```vue + ``` ``` javascript @@ -170,19 +154,21 @@ addTag (newTag) { ``` ### Asynchronous dropdown -``` jade -multiselect( - v-model="selectedCountries", - :options="countries", - :multiple="multiple", - :searchable="searchable", - @search-change="asyncFind", - placeholder="Type to search", +```vue + + + ``` ``` javascript @@ -193,24 +179,19 @@ methods: { } ``` +## Special Thanks + +Thanks to Matt Elen for contributing this version! + +> A Vue 3 upgrade of [@shentao's](https://github.com/shentao) [vue-mulitselect](https://github.com/shentao/vue-multiselect) component. The idea is that when you upgrade to Vue 3, you can swap the two components out, and everything should simply work. Feel free to check out our story of how we upgraded our product to Vue 3 on our blog at [suade.org](https://suade.org/a-products-vue-3-migration-a-real-life-story/) + ## Contributing ``` bash -# serve with hot reload at localhost:8080 -npm run dev - # distribution build with minification npm run bundle -# build the documentation into docs -npm run docs - # run unit tests npm run test -# run unit tests watch -npm run unit - ``` - -For detailed explanation on how things work, checkout the [guide](http://vuejs-templates.github.io/webpack/) and [docs for vue-loader](http://vuejs.github.io/vue-loader). diff --git a/bower.json b/bower.json deleted file mode 100644 index ab548b05..00000000 --- a/bower.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "vue-multiselect", - "description": "Multiselect component for vue.js", - "main": [ - "./dist/vue-multiselect.min.js", - "./dist/vue-multiselect.min.css" - ], - "authors": [ - "Damian Dulisz " - ], - "license": "MIT", - "keywords": [ - "vuejs", - "multiselect", - "selectize", - "ui-select", - "select2" - ], - "homepage": "https://github.com/shentao/vue-multiselect", - "moduleType": [], - "ignore": [ - "**/.*", - "node_modules", - "bower_components", - "test", - "tests" - ] -} diff --git a/build/build.js b/build/build.js deleted file mode 100644 index 8210eaae..00000000 --- a/build/build.js +++ /dev/null @@ -1,40 +0,0 @@ -// https://github.com/shelljs/shelljs -require('./check-versions')() - -process.env.NODE_ENV = 'production' - -var ora = require('ora') -var path = require('path') -var chalk = require('chalk') -var shell = require('shelljs') -var webpack = require('webpack') -var config = require('../config') -var webpackConfig = require('./webpack.docs.conf') - -var spinner = ora('building docs...') -spinner.start() - -var assetsPath = path.join(config.docs.assetsRoot, config.docs.assetsSubDirectory) -shell.rm('-rf', assetsPath) -shell.mkdir('-p', assetsPath) -shell.config.silent = true -shell.cp('-R', 'static/*', assetsPath) -shell.config.silent = false - -webpack(webpackConfig, function (err, stats) { - spinner.stop() - if (err) throw err - process.stdout.write(stats.toString({ - colors: true, - modules: false, - children: false, - chunks: false, - chunkModules: false - }) + '\n\n') - - console.log(chalk.cyan(' Build complete.\n')) - console.log(chalk.yellow( - ' Tip: built files are meant to be served over an HTTP server.\n' + - ' Opening index.html over file:// won\'t work.\n' - )) -}) diff --git a/build/bundle.js b/build/bundle.js deleted file mode 100644 index 62bd30ca..00000000 --- a/build/bundle.js +++ /dev/null @@ -1,33 +0,0 @@ -// https://github.com/shelljs/shelljs -require('./check-versions')() - -process.env.NODE_ENV = 'production' - -var ora = require('ora') -var path = require('path') -var chalk = require('chalk') -var shell = require('shelljs') -var webpack = require('webpack') -var config = require('../config') -var webpackConfig = require('./webpack.bundle.conf') - -var spinner = ora('building bundle...') -spinner.start() - -var assetsPath = path.join(config.bundle.assetsRoot, config.bundle.assetsSubDirectory) -shell.rm('-rf', assetsPath) -shell.mkdir('-p', assetsPath) - -webpack(webpackConfig, function (err, stats) { - spinner.stop() - if (err) throw err - process.stdout.write(stats.toString({ - colors: true, - modules: false, - children: false, - chunks: false, - chunkModules: false - }) + '\n\n') - - console.log(chalk.cyan(' Build complete.\n')) -}) diff --git a/build/check-versions.js b/build/check-versions.js deleted file mode 100644 index 6c6c4a29..00000000 --- a/build/check-versions.js +++ /dev/null @@ -1,45 +0,0 @@ -var chalk = require('chalk') -var semver = require('semver') -var packageConfig = require('../package.json') - -function exec (cmd) { - return require('child_process').execSync(cmd).toString().trim() -} - -var versionRequirements = [ - { - name: 'node', - currentVersion: semver.clean(process.version), - versionRequirement: packageConfig.engines.node - }, - { - name: 'npm', - currentVersion: exec('npm --version'), - versionRequirement: packageConfig.engines.npm - } -] - -module.exports = function () { - var warnings = [] - for (var i = 0; i < versionRequirements.length; i++) { - var mod = versionRequirements[i] - if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) { - warnings.push(mod.name + ': ' + - chalk.red(mod.currentVersion) + ' should be ' + - chalk.green(mod.versionRequirement) - ) - } - } - - if (warnings.length) { - console.log('') - console.log(chalk.yellow('To use this template, you must update following to modules:')) - console.log() - for (var j = 0; j < warnings.length; j++) { - var warning = warnings[j] - console.log(' ' + warning) - } - console.log() - process.exit(1) - } -} diff --git a/build/dev-client.js b/build/dev-client.js deleted file mode 100644 index 18aa1e21..00000000 --- a/build/dev-client.js +++ /dev/null @@ -1,9 +0,0 @@ -/* eslint-disable */ -require('eventsource-polyfill') -var hotClient = require('webpack-hot-middleware/client?noInfo=true&reload=true') - -hotClient.subscribe(function (event) { - if (event.action === 'reload') { - window.location.reload() - } -}) diff --git a/build/dev-server.js b/build/dev-server.js deleted file mode 100644 index 0a1a406c..00000000 --- a/build/dev-server.js +++ /dev/null @@ -1,83 +0,0 @@ -require('./check-versions')() - -var config = require('../config') -if (!process.env.NODE_ENV) { - process.env.NODE_ENV = JSON.parse(config.dev.env.NODE_ENV) -} - -var opn = require('opn') -var path = require('path') -var express = require('express') -var webpack = require('webpack') -var proxyMiddleware = require('http-proxy-middleware') -var webpackConfig = process.env.NODE_ENV === 'testing' - ? require('./webpack.prod.conf') - : require('./webpack.dev.conf') - -// default port where dev server listens for incoming traffic -var port = process.env.PORT || config.dev.port -// automatically open browser, if not set will be false -var autoOpenBrowser = !!config.dev.autoOpenBrowser -// Define HTTP proxies to your custom API backend -// https://github.com/chimurai/http-proxy-middleware -var proxyTable = config.dev.proxyTable - -var app = express() -var compiler = webpack(webpackConfig) - -var devMiddleware = require('webpack-dev-middleware')(compiler, { - publicPath: webpackConfig.output.publicPath, - quiet: true -}) - -var hotMiddleware = require('webpack-hot-middleware')(compiler, { - log: () => {} -}) -// force page reload when html-webpack-plugin template changes -compiler.plugin('compilation', function (compilation) { - compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) { - hotMiddleware.publish({ action: 'reload' }) - cb() - }) -}) - -// proxy api requests -Object.keys(proxyTable).forEach(function (context) { - var options = proxyTable[context] - if (typeof options === 'string') { - options = { target: options } - } - app.use(proxyMiddleware(options.filter || context, options)) -}) - -// handle fallback for HTML5 history API -app.use(require('connect-history-api-fallback')()) - -// serve webpack bundle output -app.use(devMiddleware) - -// enable hot-reload and state-preserving -// compilation error display -app.use(hotMiddleware) - -// serve pure static assets -var staticPath = path.posix.join(config.dev.assetsPublicPath, config.dev.assetsSubDirectory) -app.use(staticPath, express.static('./static')) - -var uri = 'http://localhost:' + port - -devMiddleware.waitUntilValid(function () { - console.log('> Listening at ' + uri + '\n') -}) - -module.exports = app.listen(port, function (err) { - if (err) { - console.log(err) - return - } - - // when env is testing, don't need open it - if (autoOpenBrowser && process.env.NODE_ENV !== 'testing') { - opn(uri) - } -}) diff --git a/build/utils.js b/build/utils.js deleted file mode 100644 index c849a5d2..00000000 --- a/build/utils.js +++ /dev/null @@ -1,64 +0,0 @@ -var path = require('path') -var config = require('../config') -var ExtractTextPlugin = require('extract-text-webpack-plugin') - -exports.assetsPath = function (_path) { - var assetsSubDirectory = process.env.NODE_ENV === 'production' - ? config.docs.assetsSubDirectory - : config.dev.assetsSubDirectory - return path.posix.join(assetsSubDirectory, _path) -} - -exports.cssLoaders = function (options) { - options = options || {} - // generate loader string to be used with extract text plugin - function generateLoaders (loaders) { - var sourceLoader = loaders.map(function (loader) { - var extraParamChar - if (/\?/.test(loader)) { - loader = loader.replace(/\?/, '-loader?') - extraParamChar = '&' - } else { - loader = loader + '-loader' - extraParamChar = '?' - } - return loader + (options.sourceMap ? extraParamChar + 'sourceMap' : '') - }).join('!') - - // Extract CSS when that option is specified - // (which is the case during production build) - if (options.extract) { - return ExtractTextPlugin.extract({ - use: sourceLoader, - fallback: 'vue-style-loader' - }) - } else { - return ['vue-style-loader', sourceLoader].join('!') - } - } - - // http://vuejs.github.io/vue-loader/en/configurations/extract-css.html - return { - css: generateLoaders(['css']), - postcss: generateLoaders(['css']), - less: generateLoaders(['css', 'less']), - sass: generateLoaders(['css', 'sass?indentedSyntax']), - scss: generateLoaders(['css', 'sass']), - stylus: generateLoaders(['css', 'stylus']), - styl: generateLoaders(['css', 'stylus']) - } -} - -// Generate loaders for standalone style files (outside of .vue) -exports.styleLoaders = function (options) { - var output = [] - var loaders = exports.cssLoaders(options) - for (var extension in loaders) { - var loader = loaders[extension] - output.push({ - test: new RegExp('\\.' + extension + '$'), - loader: loader - }) - } - return output -} diff --git a/build/vue-loader.conf.js b/build/vue-loader.conf.js deleted file mode 100644 index 9b1ed49d..00000000 --- a/build/vue-loader.conf.js +++ /dev/null @@ -1,17 +0,0 @@ -var utils = require('./utils') -var config = require('../config') -var isProduction = process.env.NODE_ENV === 'production' - -module.exports = { - loaders: utils.cssLoaders({ - sourceMap: isProduction - ? config.docs.productionSourceMap - : config.dev.cssSourceMap, - extract: isProduction - }), - postcss: [ - require('autoprefixer')({ - browsers: ['last 2 versions'] - }) - ] -} diff --git a/build/webpack.base.conf.js b/build/webpack.base.conf.js deleted file mode 100644 index 191f98bd..00000000 --- a/build/webpack.base.conf.js +++ /dev/null @@ -1,81 +0,0 @@ -var path = require('path') -var config = require('../config') -var utils = require('./utils') -var vueLoaderConfig = require('./vue-loader.conf') - -function resolve (dir) { - return path.join(__dirname, '..', dir) -} - -module.exports = { - entry: { - app: './documentation/main.js' - }, - output: { - path: config.docs.assetsRoot, - filename: '[name].js', - publicPath: process.env.NODE_ENV === 'production' - ? config.docs.assetsPublicPath - : config.dev.assetsPublicPath - }, - resolve: { - extensions: ['.pug', '.js', '.vue', '.json'], - modules: [ - resolve('src'), - resolve('documentation'), - resolve('node_modules') - ], - alias: { - 'vue$': 'vue/dist/vue', - 'vue-multiselect': path.resolve(__dirname, '../src/Multiselect'), // for consistent docs - 'src': path.resolve(__dirname, '../src'), - 'assets': path.resolve(__dirname, '../documentation/assets'), - 'examples': path.resolve(__dirname, '../documentation/partials/examples'), - 'components': path.resolve(__dirname, '../src/components') - } - }, - module: { - rules: [ - { - test: /\.(js|vue)$/, - loader: 'eslint-loader', - enforce: 'pre', - include: [resolve('src'), resolve('test')], - options: { - formatter: require('eslint-friendly-formatter') - } - }, - { - test: /\.vue$/, - loader: 'vue-loader', - options: vueLoaderConfig - }, - { - test: /\.js$/, - loader: 'babel-loader', - include: [resolve('src'), resolve('documentation'), resolve('test')] - }, - { - test: /\.pug$/, - use: 'pug-loader', - include: [resolve('src'), resolve('documentation')] - }, - { - test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, - loader: 'url-loader', - query: { - limit: 10000, - name: utils.assetsPath('img/[name].[hash:7].[ext]') - } - }, - { - test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, - loader: 'url-loader', - query: { - limit: 10000, - name: utils.assetsPath('fonts/[name].[hash:7].[ext]') - } - } - ] - } -} diff --git a/build/webpack.bundle.conf.js b/build/webpack.bundle.conf.js deleted file mode 100644 index 9ca15c99..00000000 --- a/build/webpack.bundle.conf.js +++ /dev/null @@ -1,48 +0,0 @@ -const webpack = require('webpack') -const base = require('./webpack.base.conf') -const config = require('../config') -const ExtractTextPlugin = require('extract-text-webpack-plugin') -const utils = require('./utils') -const { merge } = require('webpack-merge') -const OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin') - -const env = process.env.NODE_ENV === 'testing' - ? require('../config/test.env') - : config.bundle.env - -base.entry = { - 'VueMultiselect': './src/index.js' -} - -const webpackConfig = merge(base, { - output: { - path: config.bundle.assetsRoot, - publicPath: config.bundle.assetsPublicPath, - filename: 'vue-multiselect.min.js', - library: 'VueMultiselect', - libraryTarget: 'umd' - }, - module: { - rules: utils.styleLoaders({ - sourceMap: config.bundle.productionSourceMap, - extract: true - }) - }, - devtool: config.bundle.productionSourceMap ? '#source-map' : false, - plugins: [ - new webpack.DefinePlugin({ - 'process.env': env - }), - new webpack.optimize.UglifyJsPlugin({ - compress: { warnings: false } - }), - new ExtractTextPlugin({ - filename: 'vue-multiselect.min.css' - }), - new OptimizeCssAssetsPlugin({ - cssProcessor: require('cssnano') - }) - ] -}) - -module.exports = webpackConfig diff --git a/build/webpack.dev.conf.js b/build/webpack.dev.conf.js deleted file mode 100644 index 65bd3032..00000000 --- a/build/webpack.dev.conf.js +++ /dev/null @@ -1,35 +0,0 @@ -var utils = require('./utils') -var webpack = require('webpack') -var config = require('../config') -const { merge } = require('webpack-merge') -var baseWebpackConfig = require('./webpack.base.conf') -var HtmlWebpackPlugin = require('html-webpack-plugin') -var FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin') - -// add hot-reload related code to entry chunks -Object.keys(baseWebpackConfig.entry).forEach(function (name) { - baseWebpackConfig.entry[name] = ['./build/dev-client'].concat(baseWebpackConfig.entry[name]) -}) - -module.exports = merge(baseWebpackConfig, { - module: { - rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap }) - }, - // cheap-module-eval-source-map is faster for development - devtool: '#cheap-module-eval-source-map', - plugins: [ - new webpack.DefinePlugin({ - 'process.env': config.dev.env - }), - // https://github.com/glenjamin/webpack-hot-middleware#installation--usage - new webpack.HotModuleReplacementPlugin(), - new webpack.NoEmitOnErrorsPlugin(), - // https://github.com/ampedandwired/html-webpack-plugin - new HtmlWebpackPlugin({ - filename: 'index.html', - template: './documentation/index.pug', - inject: true - }), - new FriendlyErrorsPlugin() - ] -}) diff --git a/build/webpack.docs.conf.js b/build/webpack.docs.conf.js deleted file mode 100644 index 6de0fa3d..00000000 --- a/build/webpack.docs.conf.js +++ /dev/null @@ -1,122 +0,0 @@ -var path = require('path') -var utils = require('./utils') -var webpack = require('webpack') -var config = require('../config') -const { merge } = require('webpack-merge') -var baseWebpackConfig = require('./webpack.base.conf') -var HtmlWebpackPlugin = require('html-webpack-plugin') -var ExtractTextPlugin = require('extract-text-webpack-plugin') -var OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin') -var CopyWebpackPlugin = require('copy-webpack-plugin') - -var env = process.env.NODE_ENV === 'testing' - ? require('../config/test.env') - : config.docs.env - -var webpackConfig = merge(baseWebpackConfig, { - module: { - rules: utils.styleLoaders({ - sourceMap: false, - extract: true - }) - }, - devtool: config.docs.productionSourceMap ? '#source-map' : false, - output: { - path: config.docs.assetsRoot, - filename: utils.assetsPath('js/[name].[chunkhash].js'), - chunkFilename: utils.assetsPath('js/[id].[chunkhash].js') - }, - plugins: [ - // http://vuejs.github.io/vue-loader/en/workflow/production.html - new webpack.DefinePlugin({ - 'process.env': env - }), - new webpack.optimize.UglifyJsPlugin({ - compress: { - warnings: false - }, - sourceMap: true - }), - // extract css into its own file - new ExtractTextPlugin({ - filename: utils.assetsPath('css/[name].[contenthash].css') - }), - // Compress extracted CSS. We are using this plugin so that possible - // duplicated CSS from different components can be deduped. - new OptimizeCSSPlugin(), - // generate dist index.html with correct asset hash for caching. - // you can customize output by editing /index.html - // see https://github.com/ampedandwired/html-webpack-plugin - new HtmlWebpackPlugin({ - filename: process.env.NODE_ENV === 'testing' - ? 'index.html' - : config.docs.index, - template: 'documentation/index.pug', - inject: true, - minify: { - removeComments: true, - collapseWhitespace: true, - removeAttributeQuotes: true - // more options: - // https://github.com/kangax/html-minifier#options-quick-reference - }, - // necessary to consistently work with multiple chunks via CommonsChunkPlugin - chunksSortMode: 'dependency' - }), - // split vendor js into its own file - new webpack.optimize.CommonsChunkPlugin({ - name: 'vendor', - minChunks: function (module, count) { - // any required modules inside node_modules are extracted to vendor - return ( - module.resource && - /\.js$/.test(module.resource) && - module.resource.indexOf( - path.join(__dirname, '../node_modules') - ) === 0 - ) - } - }), - // extract webpack runtime and module manifest to its own file in order to - // prevent vendor hash from being updated whenever app bundle is updated - new webpack.optimize.CommonsChunkPlugin({ - name: 'manifest', - chunks: ['vendor'] - }), - new CopyWebpackPlugin([ - { - from: path.join(__dirname, '../static'), - to: path.join(__dirname, '../docs/static') - }, - { - from: path.join(__dirname, '../v1'), - to: path.join(__dirname, '../docs/v1') - } - ]) - ] -}) - -if (config.docs.productionGzip) { - var CompressionWebpackPlugin = require('compression-webpack-plugin') - - webpackConfig.plugins.push( - new CompressionWebpackPlugin({ - asset: '[path].gz[query]', - algorithm: 'gzip', - test: new RegExp( - '\\.(' + - config.docs.productionGzipExtensions.join('|') + - ')$' - ), - threshold: 10240, - minRatio: 0.8 - }) - ) -} - -if (config.docs.bundleAnalyzerReport) { - var BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin - webpackConfig.plugins.push(new BundleAnalyzerPlugin()) -} - -module.exports = webpackConfig diff --git a/build/webpack.test.conf.js b/build/webpack.test.conf.js deleted file mode 100644 index b9a4e199..00000000 --- a/build/webpack.test.conf.js +++ /dev/null @@ -1,24 +0,0 @@ -// This is the webpack config used for unit tests. - -var utils = require('./utils') -var webpack = require('webpack') -const { merge } = require('webpack-merge') -var baseConfig = require('./webpack.base.conf') - -var webpackConfig = merge(baseConfig, { - // use inline sourcemap for karma-sourcemap-loader - module: { - rules: utils.styleLoaders() - }, - devtool: '#inline-source-map', - plugins: [ - new webpack.DefinePlugin({ - 'process.env': require('../config/test.env') - }) - ] -}) - -// no need for app entry during tests -delete webpackConfig.entry - -module.exports = webpackConfig diff --git a/config/dev.env.js b/config/dev.env.js deleted file mode 100644 index 66916133..00000000 --- a/config/dev.env.js +++ /dev/null @@ -1,6 +0,0 @@ -const { merge } = require('webpack-merge') -var prodEnv = require('./prod.env') - -module.exports = merge(prodEnv, { - NODE_ENV: '"development"' -}) diff --git a/config/index.js b/config/index.js deleted file mode 100644 index 6d87091a..00000000 --- a/config/index.js +++ /dev/null @@ -1,40 +0,0 @@ -// see http://vuejs-templates.github.io/webpack for documentation. -var path = require('path') - -module.exports = { - dev: { - env: require('./dev.env'), - port: 8080, - autoOpenBrowser: true, - assetsSubDirectory: 'static', - assetsPublicPath: '/', - proxyTable: {}, - // CSS Sourcemaps off by default because relative paths are "buggy" - // with this option, according to the CSS-Loader README - // (https://github.com/webpack/css-loader#sourcemaps) - // In our experience, they generally work as expected, - // just be aware of this issue when enabling this option. - cssSourceMap: false - }, - bundle: { - env: require('./prod.env'), - assetsRoot: path.resolve(__dirname, '../dist'), - assetsPublicPath: '/', - assetsSubDirectory: '/', - productionSourceMap: true, - productionGzip: false, - productionGzipExtensions: ['js', 'css'], - bundleAnalyzerReport: process.env.npm_config_report - }, - docs: { - env: require('./prod.env'), - index: path.resolve(__dirname, '../docs/index.html'), - assetsRoot: path.resolve(__dirname, '../docs'), - assetsPublicPath: '', - assetsSubDirectory: 'static', - productionSourceMap: true, - productionGzip: false, - productionGzipExtensions: ['js', 'css'], - bundleAnalyzerReport: process.env.npm_config_report - } -} diff --git a/config/prod.env.js b/config/prod.env.js deleted file mode 100644 index 773d263d..00000000 --- a/config/prod.env.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - NODE_ENV: '"production"' -} diff --git a/config/test.env.js b/config/test.env.js deleted file mode 100644 index 4594d4ac..00000000 --- a/config/test.env.js +++ /dev/null @@ -1,6 +0,0 @@ -const { merge } = require('webpack-merge') -var devEnv = require('./dev.env') - -module.exports = merge(devEnv, { - NODE_ENV: '"testing"' -}) diff --git a/dist/vue-multiselect.common.js b/dist/vue-multiselect.common.js new file mode 100644 index 00000000..db0b0a46 --- /dev/null +++ b/dist/vue-multiselect.common.js @@ -0,0 +1,4473 @@ +module.exports = +/******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = "fb15"); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ "00ee": +/***/ (function(module, exports, __webpack_require__) { + +var wellKnownSymbol = __webpack_require__("b622"); + +var TO_STRING_TAG = wellKnownSymbol('toStringTag'); +var test = {}; + +test[TO_STRING_TAG] = 'z'; + +module.exports = String(test) === '[object z]'; + + +/***/ }), + +/***/ "0366": +/***/ (function(module, exports, __webpack_require__) { + +var aFunction = __webpack_require__("1c0b"); + +// optional / simple context binding +module.exports = function (fn, that, length) { + aFunction(fn); + if (that === undefined) return fn; + switch (length) { + case 0: return function () { + return fn.call(that); + }; + case 1: return function (a) { + return fn.call(that, a); + }; + case 2: return function (a, b) { + return fn.call(that, a, b); + }; + case 3: return function (a, b, c) { + return fn.call(that, a, b, c); + }; + } + return function (/* ...args */) { + return fn.apply(that, arguments); + }; +}; + + +/***/ }), + +/***/ "06cf": +/***/ (function(module, exports, __webpack_require__) { + +var DESCRIPTORS = __webpack_require__("83ab"); +var propertyIsEnumerableModule = __webpack_require__("d1e7"); +var createPropertyDescriptor = __webpack_require__("5c6c"); +var toIndexedObject = __webpack_require__("fc6a"); +var toPrimitive = __webpack_require__("c04e"); +var has = __webpack_require__("5135"); +var IE8_DOM_DEFINE = __webpack_require__("0cfb"); + +var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + +// `Object.getOwnPropertyDescriptor` method +// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor +exports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { + O = toIndexedObject(O); + P = toPrimitive(P, true); + if (IE8_DOM_DEFINE) try { + return nativeGetOwnPropertyDescriptor(O, P); + } catch (error) { /* empty */ } + if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]); +}; + + +/***/ }), + +/***/ "0cfb": +/***/ (function(module, exports, __webpack_require__) { + +var DESCRIPTORS = __webpack_require__("83ab"); +var fails = __webpack_require__("d039"); +var createElement = __webpack_require__("cc12"); + +// Thank's IE8 for his funny defineProperty +module.exports = !DESCRIPTORS && !fails(function () { + return Object.defineProperty(createElement('div'), 'a', { + get: function () { return 7; } + }).a != 7; +}); + + +/***/ }), + +/***/ "0d03": +/***/ (function(module, exports, __webpack_require__) { + +var redefine = __webpack_require__("6eeb"); + +var DatePrototype = Date.prototype; +var INVALID_DATE = 'Invalid Date'; +var TO_STRING = 'toString'; +var nativeDateToString = DatePrototype[TO_STRING]; +var getTime = DatePrototype.getTime; + +// `Date.prototype.toString` method +// https://tc39.es/ecma262/#sec-date.prototype.tostring +if (new Date(NaN) + '' != INVALID_DATE) { + redefine(DatePrototype, TO_STRING, function toString() { + var value = getTime.call(this); + // eslint-disable-next-line no-self-compare -- NaN check + return value === value ? nativeDateToString.call(this) : INVALID_DATE; + }); +} + + +/***/ }), + +/***/ "129f": +/***/ (function(module, exports) { + +// `SameValue` abstract operation +// https://tc39.es/ecma262/#sec-samevalue +module.exports = Object.is || function is(x, y) { + // eslint-disable-next-line no-self-compare -- NaN check + return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y; +}; + + +/***/ }), + +/***/ "13d5": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var $ = __webpack_require__("23e7"); +var $reduce = __webpack_require__("d58f").left; +var arrayMethodIsStrict = __webpack_require__("a640"); +var CHROME_VERSION = __webpack_require__("2d00"); +var IS_NODE = __webpack_require__("605d"); + +var STRICT_METHOD = arrayMethodIsStrict('reduce'); +// Chrome 80-82 has a critical bug +// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982 +var CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83; + +// `Array.prototype.reduce` method +// https://tc39.es/ecma262/#sec-array.prototype.reduce +$({ target: 'Array', proto: true, forced: !STRICT_METHOD || CHROME_BUG }, { + reduce: function reduce(callbackfn /* , initialValue */) { + return $reduce(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), + +/***/ "14c3": +/***/ (function(module, exports, __webpack_require__) { + +var classof = __webpack_require__("c6b6"); +var regexpExec = __webpack_require__("9263"); + +// `RegExpExec` abstract operation +// https://tc39.es/ecma262/#sec-regexpexec +module.exports = function (R, S) { + var exec = R.exec; + if (typeof exec === 'function') { + var result = exec.call(R, S); + if (typeof result !== 'object') { + throw TypeError('RegExp exec method returned something other than an Object or null'); + } + return result; + } + + if (classof(R) !== 'RegExp') { + throw TypeError('RegExp#exec called on incompatible receiver'); + } + + return regexpExec.call(R, S); +}; + + + +/***/ }), + +/***/ "1be4": +/***/ (function(module, exports, __webpack_require__) { + +var getBuiltIn = __webpack_require__("d066"); + +module.exports = getBuiltIn('document', 'documentElement'); + + +/***/ }), + +/***/ "1c0b": +/***/ (function(module, exports) { + +module.exports = function (it) { + if (typeof it != 'function') { + throw TypeError(String(it) + ' is not a function'); + } return it; +}; + + +/***/ }), + +/***/ "1d80": +/***/ (function(module, exports) { + +// `RequireObjectCoercible` abstract operation +// https://tc39.es/ecma262/#sec-requireobjectcoercible +module.exports = function (it) { + if (it == undefined) throw TypeError("Can't call method on " + it); + return it; +}; + + +/***/ }), + +/***/ "1dde": +/***/ (function(module, exports, __webpack_require__) { + +var fails = __webpack_require__("d039"); +var wellKnownSymbol = __webpack_require__("b622"); +var V8_VERSION = __webpack_require__("2d00"); + +var SPECIES = wellKnownSymbol('species'); + +module.exports = function (METHOD_NAME) { + // We can't use this feature detection in V8 since it causes + // deoptimization and serious performance degradation + // https://github.com/zloirock/core-js/issues/677 + return V8_VERSION >= 51 || !fails(function () { + var array = []; + var constructor = array.constructor = {}; + constructor[SPECIES] = function () { + return { foo: 1 }; + }; + return array[METHOD_NAME](Boolean).foo !== 1; + }); +}; + + +/***/ }), + +/***/ "23cb": +/***/ (function(module, exports, __webpack_require__) { + +var toInteger = __webpack_require__("a691"); + +var max = Math.max; +var min = Math.min; + +// Helper for a popular repeating case of the spec: +// Let integer be ? ToInteger(index). +// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). +module.exports = function (index, length) { + var integer = toInteger(index); + return integer < 0 ? max(integer + length, 0) : min(integer, length); +}; + + +/***/ }), + +/***/ "23e7": +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__("da84"); +var getOwnPropertyDescriptor = __webpack_require__("06cf").f; +var createNonEnumerableProperty = __webpack_require__("9112"); +var redefine = __webpack_require__("6eeb"); +var setGlobal = __webpack_require__("ce4e"); +var copyConstructorProperties = __webpack_require__("e893"); +var isForced = __webpack_require__("94ca"); + +/* + options.target - name of the target object + options.global - target is the global object + options.stat - export as static methods of target + options.proto - export as prototype methods of target + options.real - real prototype method for the `pure` version + options.forced - export even if the native feature is available + options.bind - bind methods to the target, required for the `pure` version + options.wrap - wrap constructors to preventing global pollution, required for the `pure` version + options.unsafe - use the simple assignment of property instead of delete + defineProperty + options.sham - add a flag to not completely full polyfills + options.enumerable - export as enumerable property + options.noTargetGet - prevent calling a getter on target +*/ +module.exports = function (options, source) { + var TARGET = options.target; + var GLOBAL = options.global; + var STATIC = options.stat; + var FORCED, target, key, targetProperty, sourceProperty, descriptor; + if (GLOBAL) { + target = global; + } else if (STATIC) { + target = global[TARGET] || setGlobal(TARGET, {}); + } else { + target = (global[TARGET] || {}).prototype; + } + if (target) for (key in source) { + sourceProperty = source[key]; + if (options.noTargetGet) { + descriptor = getOwnPropertyDescriptor(target, key); + targetProperty = descriptor && descriptor.value; + } else targetProperty = target[key]; + FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); + // contained in target + if (!FORCED && targetProperty !== undefined) { + if (typeof sourceProperty === typeof targetProperty) continue; + copyConstructorProperties(sourceProperty, targetProperty); + } + // add a flag to not completely full polyfills + if (options.sham || (targetProperty && targetProperty.sham)) { + createNonEnumerableProperty(sourceProperty, 'sham', true); + } + // extend global + redefine(target, key, sourceProperty, options); + } +}; + + +/***/ }), + +/***/ "241c": +/***/ (function(module, exports, __webpack_require__) { + +var internalObjectKeys = __webpack_require__("ca84"); +var enumBugKeys = __webpack_require__("7839"); + +var hiddenKeys = enumBugKeys.concat('length', 'prototype'); + +// `Object.getOwnPropertyNames` method +// https://tc39.es/ecma262/#sec-object.getownpropertynames +exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { + return internalObjectKeys(O, hiddenKeys); +}; + + +/***/ }), + +/***/ "25f0": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var redefine = __webpack_require__("6eeb"); +var anObject = __webpack_require__("825a"); +var fails = __webpack_require__("d039"); +var flags = __webpack_require__("ad6d"); + +var TO_STRING = 'toString'; +var RegExpPrototype = RegExp.prototype; +var nativeToString = RegExpPrototype[TO_STRING]; + +var NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; }); +// FF44- RegExp#toString has a wrong name +var INCORRECT_NAME = nativeToString.name != TO_STRING; + +// `RegExp.prototype.toString` method +// https://tc39.es/ecma262/#sec-regexp.prototype.tostring +if (NOT_GENERIC || INCORRECT_NAME) { + redefine(RegExp.prototype, TO_STRING, function toString() { + var R = anObject(this); + var p = String(R.source); + var rf = R.flags; + var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf); + return '/' + p + '/' + f; + }, { unsafe: true }); +} + + +/***/ }), + +/***/ "277d": +/***/ (function(module, exports, __webpack_require__) { + +var $ = __webpack_require__("23e7"); +var isArray = __webpack_require__("e8b5"); + +// `Array.isArray` method +// https://tc39.es/ecma262/#sec-array.isarray +$({ target: 'Array', stat: true }, { + isArray: isArray +}); + + +/***/ }), + +/***/ "2d00": +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__("da84"); +var userAgent = __webpack_require__("342f"); + +var process = global.process; +var versions = process && process.versions; +var v8 = versions && versions.v8; +var match, version; + +if (v8) { + match = v8.split('.'); + version = match[0] + match[1]; +} else if (userAgent) { + match = userAgent.match(/Edge\/(\d+)/); + if (!match || match[1] >= 74) { + match = userAgent.match(/Chrome\/(\d+)/); + if (match) version = match[1]; + } +} + +module.exports = version && +version; + + +/***/ }), + +/***/ "342f": +/***/ (function(module, exports, __webpack_require__) { + +var getBuiltIn = __webpack_require__("d066"); + +module.exports = getBuiltIn('navigator', 'userAgent') || ''; + + +/***/ }), + +/***/ "37e8": +/***/ (function(module, exports, __webpack_require__) { + +var DESCRIPTORS = __webpack_require__("83ab"); +var definePropertyModule = __webpack_require__("9bf2"); +var anObject = __webpack_require__("825a"); +var objectKeys = __webpack_require__("df75"); + +// `Object.defineProperties` method +// https://tc39.es/ecma262/#sec-object.defineproperties +module.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) { + anObject(O); + var keys = objectKeys(Properties); + var length = keys.length; + var index = 0; + var key; + while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]); + return O; +}; + + +/***/ }), + +/***/ "3bbe": +/***/ (function(module, exports, __webpack_require__) { + +var isObject = __webpack_require__("861d"); + +module.exports = function (it) { + if (!isObject(it) && it !== null) { + throw TypeError("Can't set " + String(it) + ' as a prototype'); + } return it; +}; + + +/***/ }), + +/***/ "428f": +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__("da84"); + +module.exports = global; + + +/***/ }), + +/***/ "44ad": +/***/ (function(module, exports, __webpack_require__) { + +var fails = __webpack_require__("d039"); +var classof = __webpack_require__("c6b6"); + +var split = ''.split; + +// fallback for non-array-like ES3 and non-enumerable old V8 strings +module.exports = fails(function () { + // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 + // eslint-disable-next-line no-prototype-builtins -- safe + return !Object('z').propertyIsEnumerable(0); +}) ? function (it) { + return classof(it) == 'String' ? split.call(it, '') : Object(it); +} : Object; + + +/***/ }), + +/***/ "44d2": +/***/ (function(module, exports, __webpack_require__) { + +var wellKnownSymbol = __webpack_require__("b622"); +var create = __webpack_require__("7c73"); +var definePropertyModule = __webpack_require__("9bf2"); + +var UNSCOPABLES = wellKnownSymbol('unscopables'); +var ArrayPrototype = Array.prototype; + +// Array.prototype[@@unscopables] +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +if (ArrayPrototype[UNSCOPABLES] == undefined) { + definePropertyModule.f(ArrayPrototype, UNSCOPABLES, { + configurable: true, + value: create(null) + }); +} + +// add a key to Array.prototype[@@unscopables] +module.exports = function (key) { + ArrayPrototype[UNSCOPABLES][key] = true; +}; + + +/***/ }), + +/***/ "4930": +/***/ (function(module, exports, __webpack_require__) { + +var IS_NODE = __webpack_require__("605d"); +var V8_VERSION = __webpack_require__("2d00"); +var fails = __webpack_require__("d039"); + +module.exports = !!Object.getOwnPropertySymbols && !fails(function () { + /* global Symbol -- required for testing */ + return !Symbol.sham && + // Chrome 38 Symbol has incorrect toString conversion + // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances + (IS_NODE ? V8_VERSION === 38 : V8_VERSION > 37 && V8_VERSION < 41); +}); + + +/***/ }), + +/***/ "498a": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var $ = __webpack_require__("23e7"); +var $trim = __webpack_require__("58a8").trim; +var forcedStringTrimMethod = __webpack_require__("c8d2"); + +// `String.prototype.trim` method +// https://tc39.es/ecma262/#sec-string.prototype.trim +$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, { + trim: function trim() { + return $trim(this); + } +}); + + +/***/ }), + +/***/ "4d64": +/***/ (function(module, exports, __webpack_require__) { + +var toIndexedObject = __webpack_require__("fc6a"); +var toLength = __webpack_require__("50c4"); +var toAbsoluteIndex = __webpack_require__("23cb"); + +// `Array.prototype.{ indexOf, includes }` methods implementation +var createMethod = function (IS_INCLUDES) { + return function ($this, el, fromIndex) { + var O = toIndexedObject($this); + var length = toLength(O.length); + var index = toAbsoluteIndex(fromIndex, length); + var value; + // Array#includes uses SameValueZero equality algorithm + // eslint-disable-next-line no-self-compare -- NaN check + if (IS_INCLUDES && el != el) while (length > index) { + value = O[index++]; + // eslint-disable-next-line no-self-compare -- NaN check + if (value != value) return true; + // Array#indexOf ignores holes, Array#includes - not + } else for (;length > index; index++) { + if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; + } return !IS_INCLUDES && -1; + }; +}; + +module.exports = { + // `Array.prototype.includes` method + // https://tc39.es/ecma262/#sec-array.prototype.includes + includes: createMethod(true), + // `Array.prototype.indexOf` method + // https://tc39.es/ecma262/#sec-array.prototype.indexof + indexOf: createMethod(false) +}; + + +/***/ }), + +/***/ "4de4": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var $ = __webpack_require__("23e7"); +var $filter = __webpack_require__("b727").filter; +var arrayMethodHasSpeciesSupport = __webpack_require__("1dde"); + +var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter'); + +// `Array.prototype.filter` method +// https://tc39.es/ecma262/#sec-array.prototype.filter +// with adding support of @@species +$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { + filter: function filter(callbackfn /* , thisArg */) { + return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + + +/***/ }), + +/***/ "4e82": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var $ = __webpack_require__("23e7"); +var aFunction = __webpack_require__("1c0b"); +var toObject = __webpack_require__("7b0b"); +var fails = __webpack_require__("d039"); +var arrayMethodIsStrict = __webpack_require__("a640"); + +var test = []; +var nativeSort = test.sort; + +// IE8- +var FAILS_ON_UNDEFINED = fails(function () { + test.sort(undefined); +}); +// V8 bug +var FAILS_ON_NULL = fails(function () { + test.sort(null); +}); +// Old WebKit +var STRICT_METHOD = arrayMethodIsStrict('sort'); + +var FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD; + +// `Array.prototype.sort` method +// https://tc39.es/ecma262/#sec-array.prototype.sort +$({ target: 'Array', proto: true, forced: FORCED }, { + sort: function sort(comparefn) { + return comparefn === undefined + ? nativeSort.call(toObject(this)) + : nativeSort.call(toObject(this), aFunction(comparefn)); + } +}); + + +/***/ }), + +/***/ "50c4": +/***/ (function(module, exports, __webpack_require__) { + +var toInteger = __webpack_require__("a691"); + +var min = Math.min; + +// `ToLength` abstract operation +// https://tc39.es/ecma262/#sec-tolength +module.exports = function (argument) { + return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 +}; + + +/***/ }), + +/***/ "5135": +/***/ (function(module, exports) { + +var hasOwnProperty = {}.hasOwnProperty; + +module.exports = function (it, key) { + return hasOwnProperty.call(it, key); +}; + + +/***/ }), + +/***/ "5692": +/***/ (function(module, exports, __webpack_require__) { + +var IS_PURE = __webpack_require__("c430"); +var store = __webpack_require__("c6cd"); + +(module.exports = function (key, value) { + return store[key] || (store[key] = value !== undefined ? value : {}); +})('versions', []).push({ + version: '3.9.1', + mode: IS_PURE ? 'pure' : 'global', + copyright: '© 2021 Denis Pushkarev (zloirock.ru)' +}); + + +/***/ }), + +/***/ "56ef": +/***/ (function(module, exports, __webpack_require__) { + +var getBuiltIn = __webpack_require__("d066"); +var getOwnPropertyNamesModule = __webpack_require__("241c"); +var getOwnPropertySymbolsModule = __webpack_require__("7418"); +var anObject = __webpack_require__("825a"); + +// all object keys, includes non-enumerable and symbols +module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) { + var keys = getOwnPropertyNamesModule.f(anObject(it)); + var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; + return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys; +}; + + +/***/ }), + +/***/ "5899": +/***/ (function(module, exports) { + +// a string of all valid unicode whitespaces +module.exports = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u2000\u2001\u2002' + + '\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'; + + +/***/ }), + +/***/ "58a8": +/***/ (function(module, exports, __webpack_require__) { + +var requireObjectCoercible = __webpack_require__("1d80"); +var whitespaces = __webpack_require__("5899"); + +var whitespace = '[' + whitespaces + ']'; +var ltrim = RegExp('^' + whitespace + whitespace + '*'); +var rtrim = RegExp(whitespace + whitespace + '*$'); + +// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation +var createMethod = function (TYPE) { + return function ($this) { + var string = String(requireObjectCoercible($this)); + if (TYPE & 1) string = string.replace(ltrim, ''); + if (TYPE & 2) string = string.replace(rtrim, ''); + return string; + }; +}; + +module.exports = { + // `String.prototype.{ trimLeft, trimStart }` methods + // https://tc39.es/ecma262/#sec-string.prototype.trimstart + start: createMethod(1), + // `String.prototype.{ trimRight, trimEnd }` methods + // https://tc39.es/ecma262/#sec-string.prototype.trimend + end: createMethod(2), + // `String.prototype.trim` method + // https://tc39.es/ecma262/#sec-string.prototype.trim + trim: createMethod(3) +}; + + +/***/ }), + +/***/ "5c6c": +/***/ (function(module, exports) { + +module.exports = function (bitmap, value) { + return { + enumerable: !(bitmap & 1), + configurable: !(bitmap & 2), + writable: !(bitmap & 4), + value: value + }; +}; + + +/***/ }), + +/***/ "605d": +/***/ (function(module, exports, __webpack_require__) { + +var classof = __webpack_require__("c6b6"); +var global = __webpack_require__("da84"); + +module.exports = classof(global.process) == 'process'; + + +/***/ }), + +/***/ "65f0": +/***/ (function(module, exports, __webpack_require__) { + +var isObject = __webpack_require__("861d"); +var isArray = __webpack_require__("e8b5"); +var wellKnownSymbol = __webpack_require__("b622"); + +var SPECIES = wellKnownSymbol('species'); + +// `ArraySpeciesCreate` abstract operation +// https://tc39.es/ecma262/#sec-arrayspeciescreate +module.exports = function (originalArray, length) { + var C; + if (isArray(originalArray)) { + C = originalArray.constructor; + // cross-realm fallback + if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined; + else if (isObject(C)) { + C = C[SPECIES]; + if (C === null) C = undefined; + } + } return new (C === undefined ? Array : C)(length === 0 ? 0 : length); +}; + + +/***/ }), + +/***/ "69f3": +/***/ (function(module, exports, __webpack_require__) { + +var NATIVE_WEAK_MAP = __webpack_require__("7f9a"); +var global = __webpack_require__("da84"); +var isObject = __webpack_require__("861d"); +var createNonEnumerableProperty = __webpack_require__("9112"); +var objectHas = __webpack_require__("5135"); +var shared = __webpack_require__("c6cd"); +var sharedKey = __webpack_require__("f772"); +var hiddenKeys = __webpack_require__("d012"); + +var WeakMap = global.WeakMap; +var set, get, has; + +var enforce = function (it) { + return has(it) ? get(it) : set(it, {}); +}; + +var getterFor = function (TYPE) { + return function (it) { + var state; + if (!isObject(it) || (state = get(it)).type !== TYPE) { + throw TypeError('Incompatible receiver, ' + TYPE + ' required'); + } return state; + }; +}; + +if (NATIVE_WEAK_MAP) { + var store = shared.state || (shared.state = new WeakMap()); + var wmget = store.get; + var wmhas = store.has; + var wmset = store.set; + set = function (it, metadata) { + metadata.facade = it; + wmset.call(store, it, metadata); + return metadata; + }; + get = function (it) { + return wmget.call(store, it) || {}; + }; + has = function (it) { + return wmhas.call(store, it); + }; +} else { + var STATE = sharedKey('state'); + hiddenKeys[STATE] = true; + set = function (it, metadata) { + metadata.facade = it; + createNonEnumerableProperty(it, STATE, metadata); + return metadata; + }; + get = function (it) { + return objectHas(it, STATE) ? it[STATE] : {}; + }; + has = function (it) { + return objectHas(it, STATE); + }; +} + +module.exports = { + set: set, + get: get, + has: has, + enforce: enforce, + getterFor: getterFor +}; + + +/***/ }), + +/***/ "6b0d": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +// runtime helper for setting properties on components +// in a tree-shakable way +exports.default = (sfc, props) => { + const target = sfc.__vccOpts || sfc; + for (const [key, val] of props) { + target[key] = val; + } + return target; +}; + + +/***/ }), + +/***/ "6eeb": +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__("da84"); +var createNonEnumerableProperty = __webpack_require__("9112"); +var has = __webpack_require__("5135"); +var setGlobal = __webpack_require__("ce4e"); +var inspectSource = __webpack_require__("8925"); +var InternalStateModule = __webpack_require__("69f3"); + +var getInternalState = InternalStateModule.get; +var enforceInternalState = InternalStateModule.enforce; +var TEMPLATE = String(String).split('String'); + +(module.exports = function (O, key, value, options) { + var unsafe = options ? !!options.unsafe : false; + var simple = options ? !!options.enumerable : false; + var noTargetGet = options ? !!options.noTargetGet : false; + var state; + if (typeof value == 'function') { + if (typeof key == 'string' && !has(value, 'name')) { + createNonEnumerableProperty(value, 'name', key); + } + state = enforceInternalState(value); + if (!state.source) { + state.source = TEMPLATE.join(typeof key == 'string' ? key : ''); + } + } + if (O === global) { + if (simple) O[key] = value; + else setGlobal(key, value); + return; + } else if (!unsafe) { + delete O[key]; + } else if (!noTargetGet && O[key]) { + simple = true; + } + if (simple) O[key] = value; + else createNonEnumerableProperty(O, key, value); +// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative +})(Function.prototype, 'toString', function toString() { + return typeof this == 'function' && getInternalState(this).source || inspectSource(this); +}); + + +/***/ }), + +/***/ "7156": +/***/ (function(module, exports, __webpack_require__) { + +var isObject = __webpack_require__("861d"); +var setPrototypeOf = __webpack_require__("d2bb"); + +// makes subclassing work correct for wrapped built-ins +module.exports = function ($this, dummy, Wrapper) { + var NewTarget, NewTargetPrototype; + if ( + // it can work only with native `setPrototypeOf` + setPrototypeOf && + // we haven't completely correct pre-ES6 way for getting `new.target`, so use this + typeof (NewTarget = dummy.constructor) == 'function' && + NewTarget !== Wrapper && + isObject(NewTargetPrototype = NewTarget.prototype) && + NewTargetPrototype !== Wrapper.prototype + ) setPrototypeOf($this, NewTargetPrototype); + return $this; +}; + + +/***/ }), + +/***/ "7418": +/***/ (function(module, exports) { + +exports.f = Object.getOwnPropertySymbols; + + +/***/ }), + +/***/ "7839": +/***/ (function(module, exports) { + +// IE8- don't enum bug keys +module.exports = [ + 'constructor', + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'toLocaleString', + 'toString', + 'valueOf' +]; + + +/***/ }), + +/***/ "7b0b": +/***/ (function(module, exports, __webpack_require__) { + +var requireObjectCoercible = __webpack_require__("1d80"); + +// `ToObject` abstract operation +// https://tc39.es/ecma262/#sec-toobject +module.exports = function (argument) { + return Object(requireObjectCoercible(argument)); +}; + + +/***/ }), + +/***/ "7c73": +/***/ (function(module, exports, __webpack_require__) { + +var anObject = __webpack_require__("825a"); +var defineProperties = __webpack_require__("37e8"); +var enumBugKeys = __webpack_require__("7839"); +var hiddenKeys = __webpack_require__("d012"); +var html = __webpack_require__("1be4"); +var documentCreateElement = __webpack_require__("cc12"); +var sharedKey = __webpack_require__("f772"); + +var GT = '>'; +var LT = '<'; +var PROTOTYPE = 'prototype'; +var SCRIPT = 'script'; +var IE_PROTO = sharedKey('IE_PROTO'); + +var EmptyConstructor = function () { /* empty */ }; + +var scriptTag = function (content) { + return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; +}; + +// Create object with fake `null` prototype: use ActiveX Object with cleared prototype +var NullProtoObjectViaActiveX = function (activeXDocument) { + activeXDocument.write(scriptTag('')); + activeXDocument.close(); + var temp = activeXDocument.parentWindow.Object; + activeXDocument = null; // avoid memory leak + return temp; +}; + +// Create object with fake `null` prototype: use iframe Object with cleared prototype +var NullProtoObjectViaIFrame = function () { + // Thrash, waste and sodomy: IE GC bug + var iframe = documentCreateElement('iframe'); + var JS = 'java' + SCRIPT + ':'; + var iframeDocument; + iframe.style.display = 'none'; + html.appendChild(iframe); + // https://github.com/zloirock/core-js/issues/475 + iframe.src = String(JS); + iframeDocument = iframe.contentWindow.document; + iframeDocument.open(); + iframeDocument.write(scriptTag('document.F=Object')); + iframeDocument.close(); + return iframeDocument.F; +}; + +// Check for document.domain and active x support +// No need to use active x approach when document.domain is not set +// see https://github.com/es-shims/es5-shim/issues/150 +// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 +// avoid IE GC bug +var activeXDocument; +var NullProtoObject = function () { + try { + /* global ActiveXObject -- old IE */ + activeXDocument = document.domain && new ActiveXObject('htmlfile'); + } catch (error) { /* ignore */ } + NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame(); + var length = enumBugKeys.length; + while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; + return NullProtoObject(); +}; + +hiddenKeys[IE_PROTO] = true; + +// `Object.create` method +// https://tc39.es/ecma262/#sec-object.create +module.exports = Object.create || function create(O, Properties) { + var result; + if (O !== null) { + EmptyConstructor[PROTOTYPE] = anObject(O); + result = new EmptyConstructor(); + EmptyConstructor[PROTOTYPE] = null; + // add "__proto__" for Object.getPrototypeOf polyfill + result[IE_PROTO] = O; + } else result = NullProtoObject(); + return Properties === undefined ? result : defineProperties(result, Properties); +}; + + +/***/ }), + +/***/ "7db0": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var $ = __webpack_require__("23e7"); +var $find = __webpack_require__("b727").find; +var addToUnscopables = __webpack_require__("44d2"); + +var FIND = 'find'; +var SKIPS_HOLES = true; + +// Shouldn't skip holes +if (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; }); + +// `Array.prototype.find` method +// https://tc39.es/ecma262/#sec-array.prototype.find +$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, { + find: function find(callbackfn /* , that = undefined */) { + return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + +// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables +addToUnscopables(FIND); + + +/***/ }), + +/***/ "7f9a": +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__("da84"); +var inspectSource = __webpack_require__("8925"); + +var WeakMap = global.WeakMap; + +module.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap)); + + +/***/ }), + +/***/ "825a": +/***/ (function(module, exports, __webpack_require__) { + +var isObject = __webpack_require__("861d"); + +module.exports = function (it) { + if (!isObject(it)) { + throw TypeError(String(it) + ' is not an object'); + } return it; +}; + + +/***/ }), + +/***/ "83ab": +/***/ (function(module, exports, __webpack_require__) { + +var fails = __webpack_require__("d039"); + +// Detect IE8's incomplete defineProperty implementation +module.exports = !fails(function () { + return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7; +}); + + +/***/ }), + +/***/ "8418": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var toPrimitive = __webpack_require__("c04e"); +var definePropertyModule = __webpack_require__("9bf2"); +var createPropertyDescriptor = __webpack_require__("5c6c"); + +module.exports = function (object, key, value) { + var propertyKey = toPrimitive(key); + if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value)); + else object[propertyKey] = value; +}; + + +/***/ }), + +/***/ "841c": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +var fixRegExpWellKnownSymbolLogic = __webpack_require__("d784"); +var anObject = __webpack_require__("825a"); +var requireObjectCoercible = __webpack_require__("1d80"); +var sameValue = __webpack_require__("129f"); +var regExpExec = __webpack_require__("14c3"); + +// @@search logic +fixRegExpWellKnownSymbolLogic('search', 1, function (SEARCH, nativeSearch, maybeCallNative) { + return [ + // `String.prototype.search` method + // https://tc39.es/ecma262/#sec-string.prototype.search + function search(regexp) { + var O = requireObjectCoercible(this); + var searcher = regexp == undefined ? undefined : regexp[SEARCH]; + return searcher !== undefined ? searcher.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O)); + }, + // `RegExp.prototype[@@search]` method + // https://tc39.es/ecma262/#sec-regexp.prototype-@@search + function (regexp) { + var res = maybeCallNative(nativeSearch, regexp, this); + if (res.done) return res.value; + + var rx = anObject(regexp); + var S = String(this); + + var previousLastIndex = rx.lastIndex; + if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0; + var result = regExpExec(rx, S); + if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex; + return result === null ? -1 : result.index; + } + ]; +}); + + +/***/ }), + +/***/ "861d": +/***/ (function(module, exports) { + +module.exports = function (it) { + return typeof it === 'object' ? it !== null : typeof it === 'function'; +}; + + +/***/ }), + +/***/ "8875": +/***/ (function(module, exports, __webpack_require__) { + +var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;// addapted from the document.currentScript polyfill by Adam Miller +// MIT license +// source: https://github.com/amiller-gh/currentScript-polyfill + +// added support for Firefox https://bugzilla.mozilla.org/show_bug.cgi?id=1620505 + +(function (root, factory) { + if (true) { + !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), + __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? + (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), + __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); + } else {} +}(typeof self !== 'undefined' ? self : this, function () { + function getCurrentScript () { + var descriptor = Object.getOwnPropertyDescriptor(document, 'currentScript') + // for chrome + if (!descriptor && 'currentScript' in document && document.currentScript) { + return document.currentScript + } + + // for other browsers with native support for currentScript + if (descriptor && descriptor.get !== getCurrentScript && document.currentScript) { + return document.currentScript + } + + // IE 8-10 support script readyState + // IE 11+ & Firefox support stack trace + try { + throw new Error(); + } + catch (err) { + // Find the second match for the "at" string to get file src url from stack. + var ieStackRegExp = /.*at [^(]*\((.*):(.+):(.+)\)$/ig, + ffStackRegExp = /@([^@]*):(\d+):(\d+)\s*$/ig, + stackDetails = ieStackRegExp.exec(err.stack) || ffStackRegExp.exec(err.stack), + scriptLocation = (stackDetails && stackDetails[1]) || false, + line = (stackDetails && stackDetails[2]) || false, + currentLocation = document.location.href.replace(document.location.hash, ''), + pageSource, + inlineScriptSourceRegExp, + inlineScriptSource, + scripts = document.getElementsByTagName('script'); // Live NodeList collection + + if (scriptLocation === currentLocation) { + pageSource = document.documentElement.outerHTML; + inlineScriptSourceRegExp = new RegExp('(?:[^\\n]+?\\n){0,' + (line - 2) + '}[^<]*\n\n\n","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","function isEmpty (opt) {\n if (opt === 0) return false\n if (Array.isArray(opt) && opt.length === 0) return true\n return !opt\n}\n\nfunction not (fun) {\n return (...params) => !fun(...params)\n}\n\nfunction includes (str, query) {\n /* istanbul ignore else */\n if (str === undefined) str = 'undefined'\n if (str === null) str = 'null'\n if (str === false) str = 'false'\n const text = str.toString().toLowerCase()\n return text.indexOf(query.trim()) !== -1\n}\n\nfunction filterOptions (options, search, label, customLabel) {\n return search ? options\n .filter((option) => includes(customLabel(option, label), search))\n .sort((a, b) => customLabel(a, label).length - customLabel(b, label).length) : options\n}\n\nfunction stripGroups (options) {\n return options.filter((option) => !option.$isLabel)\n}\n\nfunction flattenOptions (values, label) {\n return (options) =>\n options.reduce((prev, curr) => {\n /* istanbul ignore else */\n if (curr[values] && curr[values].length) {\n prev.push({\n $groupLabel: curr[label],\n $isLabel: true\n })\n return prev.concat(curr[values])\n }\n return prev\n }, [])\n}\n\nfunction filterGroups (search, label, values, groupLabel, customLabel) {\n return (groups) =>\n groups.map((group) => {\n /* istanbul ignore else */\n if (!group[values]) {\n console.warn(`Options passed to vue-multiselect do not contain groups, despite the config.`)\n return []\n }\n const groupOptions = filterOptions(group[values], search, label, customLabel)\n\n return groupOptions.length\n ? {\n [groupLabel]: group[groupLabel],\n [values]: groupOptions\n }\n : []\n })\n}\n\nconst flow = (...fns) => (x) => fns.reduce((v, f) => f(v), x)\n\nexport default {\n data () {\n return {\n search: '',\n isOpen: false,\n preferredOpenDirection: 'below',\n optimizedHeight: this.maxHeight\n }\n },\n props: {\n /**\n * Decide whether to filter the results based on search query.\n * Useful for async filtering, where we search through more complex data.\n * @type {Boolean}\n */\n internalSearch: {\n type: Boolean,\n default: true\n },\n /**\n * Array of available options: Objects, Strings or Integers.\n * If array of objects, visible label will default to option.label.\n * If `labal` prop is passed, label will equal option['label']\n * @type {Array}\n */\n options: {\n type: Array,\n required: true\n },\n /**\n * Equivalent to the `multiple` attribute on a `` input.\n * @default 'Select option'\n * @type {String}\n */\n placeholder: {\n type: String,\n default: 'Select option'\n },\n /**\n * Allow to remove all selected values\n * @default true\n * @type {Boolean}\n */\n allowEmpty: {\n type: Boolean,\n default: true\n },\n /**\n * Reset this.internalValue, this.search after this.internalValue changes.\n * Useful if want to create a stateless dropdown.\n * @default false\n * @type {Boolean}\n */\n resetAfter: {\n type: Boolean,\n default: false\n },\n /**\n * Enable/disable closing after selecting an option\n * @default true\n * @type {Boolean}\n */\n closeOnSelect: {\n type: Boolean,\n default: true\n },\n /**\n * Function to interpolate the custom label\n * @default false\n * @type {Function}\n */\n customLabel: {\n type: Function,\n default (option, label) {\n if (isEmpty(option)) return ''\n return label ? option[label] : option\n }\n },\n /**\n * Disable / Enable tagging\n * @default false\n * @type {Boolean}\n */\n taggable: {\n type: Boolean,\n default: false\n },\n /**\n * String to show when highlighting a potential tag\n * @default 'Press enter to create a tag'\n * @type {String}\n */\n tagPlaceholder: {\n type: String,\n default: 'Press enter to create a tag'\n },\n /**\n * By default new tags will appear above the search results.\n * Changing to 'bottom' will revert this behaviour\n * and will proritize the search results\n * @default 'top'\n * @type {String}\n */\n tagPosition: {\n type: String,\n default: 'top'\n },\n /**\n * Number of allowed selected options. No limit if 0.\n * @default 0\n * @type {Number}\n */\n max: {\n type: [Number, Boolean],\n default: false\n },\n /**\n * Will be passed with all events as second param.\n * Useful for identifying events origin.\n * @default null\n * @type {String|Integer}\n */\n id: {\n default: null\n },\n /**\n * Limits the options displayed in the dropdown\n * to the first X options.\n * @default 1000\n * @type {Integer}\n */\n optionsLimit: {\n type: Number,\n default: 1000\n },\n /**\n * Name of the property containing\n * the group values\n * @default 1000\n * @type {String}\n */\n groupValues: {\n type: String\n },\n /**\n * Name of the property containing\n * the group label\n * @default 1000\n * @type {String}\n */\n groupLabel: {\n type: String\n },\n /**\n * Allow to select all group values\n * by selecting the group label\n * @default false\n * @type {Boolean}\n */\n groupSelect: {\n type: Boolean,\n default: false\n },\n /**\n * Array of keyboard keys to block\n * when selecting\n * @default 1000\n * @type {String}\n */\n blockKeys: {\n type: Array,\n default () {\n return []\n }\n },\n /**\n * Prevent from wiping up the search value\n * @default false\n * @type {Boolean}\n */\n preserveSearch: {\n type: Boolean,\n default: false\n },\n /**\n * Select 1st options if value is empty\n * @default false\n * @type {Boolean}\n */\n preselectFirst: {\n type: Boolean,\n default: false\n },\n /**\n * Prevent autofocus\n * @default false\n * @type {Boolean}\n */\n preventAutofocus: {\n type: Boolean,\n default: false\n }\n },\n mounted () {\n /* istanbul ignore else */\n if (!this.multiple && this.max) {\n console.warn('[Vue-Multiselect warn]: Max prop should not be used when prop Multiple equals false.')\n }\n if (\n this.preselectFirst &&\n !this.internalValue.length &&\n this.options.length\n ) {\n this.select(this.filteredOptions[0])\n }\n },\n computed: {\n internalValue () {\n return this.modelValue || this.modelValue === 0\n ? Array.isArray(this.modelValue) ? this.modelValue : [this.modelValue]\n : []\n },\n filteredOptions () {\n const search = this.search || ''\n const normalizedSearch = search.toLowerCase().trim()\n\n let options = this.options.concat()\n\n /* istanbul ignore else */\n if (this.internalSearch) {\n options = this.groupValues\n ? this.filterAndFlat(options, normalizedSearch, this.label)\n : filterOptions(options, normalizedSearch, this.label, this.customLabel)\n } else {\n options = this.groupValues ? flattenOptions(this.groupValues, this.groupLabel)(options) : options\n }\n\n options = this.hideSelected\n ? options.filter(not(this.isSelected))\n : options\n\n /* istanbul ignore else */\n if (this.taggable && normalizedSearch.length && !this.isExistingOption(normalizedSearch)) {\n if (this.tagPosition === 'bottom') {\n options.push({isTag: true, label: search})\n } else {\n options.unshift({isTag: true, label: search})\n }\n }\n\n return options.slice(0, this.optionsLimit)\n },\n valueKeys () {\n if (this.trackBy) {\n return this.internalValue.map((element) => element[this.trackBy])\n } else {\n return this.internalValue\n }\n },\n optionKeys () {\n const options = this.groupValues ? this.flatAndStrip(this.options) : this.options\n return options.map((element) => this.customLabel(element, this.label).toString().toLowerCase())\n },\n currentOptionLabel () {\n return this.multiple\n ? this.searchable ? '' : this.placeholder\n : this.internalValue.length\n ? this.getOptionLabel(this.internalValue[0])\n : this.searchable ? '' : this.placeholder\n }\n },\n watch: {\n internalValue: {\n handler () {\n /* istanbul ignore else */\n if (this.resetAfter && this.internalValue.length) {\n this.search = ''\n this.$emit('update:modelValue', this.multiple ? [] : null)\n }\n },\n deep: true\n },\n search () {\n this.$emit('search-change', this.search)\n }\n },\n emits: ['open', 'search-change', 'close', 'select', 'update:modelValue', 'remove', 'tag'],\n methods: {\n /**\n * Returns the internalValue in a way it can be emited to the parent\n * @returns {Object||Array||String||Integer}\n */\n getValue () {\n return this.multiple\n ? this.internalValue\n : this.internalValue.length === 0\n ? null\n : this.internalValue[0]\n },\n /**\n * Filters and then flattens the options list\n * @param {Array}\n * @return {Array} returns a filtered and flat options list\n */\n filterAndFlat (options, search, label) {\n return flow(\n filterGroups(search, label, this.groupValues, this.groupLabel, this.customLabel),\n flattenOptions(this.groupValues, this.groupLabel)\n )(options)\n },\n /**\n * Flattens and then strips the group labels from the options list\n * @param {Array}\n * @return {Array} returns a flat options list without group labels\n */\n flatAndStrip (options) {\n return flow(\n flattenOptions(this.groupValues, this.groupLabel),\n stripGroups\n )(options)\n },\n /**\n * Updates the search value\n * @param {String}\n */\n updateSearch (query) {\n this.search = query\n },\n /**\n * Finds out if the given query is already present\n * in the available options\n * @param {String}\n * @return {Boolean} returns true if element is available\n */\n isExistingOption (query) {\n return !this.options\n ? false\n : this.optionKeys.indexOf(query) > -1\n },\n /**\n * Finds out if the given element is already present\n * in the result value\n * @param {Object||String||Integer} option passed element to check\n * @returns {Boolean} returns true if element is selected\n */\n isSelected (option) {\n const opt = this.trackBy\n ? option[this.trackBy]\n : option\n return this.valueKeys.indexOf(opt) > -1\n },\n /**\n * Finds out if the given option is disabled\n * @param {Object||String||Integer} option passed element to check\n * @returns {Boolean} returns true if element is disabled\n */\n isOptionDisabled (option) {\n return !!option.$isDisabled\n },\n /**\n * Returns empty string when options is null/undefined\n * Returns tag query if option is tag.\n * Returns the customLabel() results and casts it to string.\n *\n * @param {Object||String||Integer} Passed option\n * @returns {Object||String}\n */\n getOptionLabel (option) {\n if (isEmpty(option)) return ''\n /* istanbul ignore else */\n if (option.isTag) return option.label\n /* istanbul ignore else */\n if (option.$isLabel) return option.$groupLabel\n\n const label = this.customLabel(option, this.label)\n /* istanbul ignore else */\n if (isEmpty(label)) return ''\n return label\n },\n /**\n * Add the given option to the list of selected options\n * or sets the option as the selected option.\n * If option is already selected -> remove it from the results.\n *\n * @param {Object||String||Integer} option to select/deselect\n * @param {Boolean} block removing\n */\n select (option, key) {\n /* istanbul ignore else */\n if (option.$isLabel && this.groupSelect) {\n this.selectGroup(option)\n return\n }\n if (this.blockKeys.indexOf(key) !== -1 ||\n this.disabled ||\n option.$isDisabled ||\n option.$isLabel\n ) return\n /* istanbul ignore else */\n if (this.max && this.multiple && this.internalValue.length === this.max) return\n /* istanbul ignore else */\n if (key === 'Tab' && !this.pointerDirty) return\n if (option.isTag) {\n this.$emit('tag', option.label, this.id)\n this.search = ''\n if (this.closeOnSelect && !this.multiple) this.deactivate()\n } else {\n const isSelected = this.isSelected(option)\n\n if (isSelected) {\n if (key !== 'Tab') this.removeElement(option)\n return\n }\n\n if (this.multiple) {\n this.$emit('update:modelValue', this.internalValue.concat([option]))\n } else {\n this.$emit('update:modelValue', option)\n }\n\n this.$emit('select', option, this.id)\n\n /* istanbul ignore else */\n if (this.clearOnSelect) this.search = ''\n }\n /* istanbul ignore else */\n if (this.closeOnSelect) this.deactivate()\n },\n /**\n * Add the given group options to the list of selected options\n * If all group optiona are already selected -> remove it from the results.\n *\n * @param {Object||String||Integer} group to select/deselect\n */\n selectGroup (selectedGroup) {\n const group = this.options.find((option) => {\n return option[this.groupLabel] === selectedGroup.$groupLabel\n })\n\n if (!group) return\n\n if (this.wholeGroupSelected(group)) {\n this.$emit('remove', group[this.groupValues], this.id)\n\n const groupValues = this.trackBy ? group[this.groupValues].map(val => val[this.trackBy]) : group[this.groupValues]\n const newValue = this.internalValue.filter(\n option => groupValues.indexOf(this.trackBy ? option[this.trackBy] : option) === -1\n )\n\n this.$emit('update:modelValue', newValue)\n } else {\n let optionsToAdd = group[this.groupValues].filter(\n option => !(this.isOptionDisabled(option) || this.isSelected(option))\n )\n\n // if max is defined then just select options respecting max\n if (this.max) {\n optionsToAdd.splice(this.max - this.internalValue.length)\n }\n\n this.$emit('select', optionsToAdd, this.id)\n this.$emit(\n 'update:modelValue',\n this.internalValue.concat(optionsToAdd)\n )\n }\n\n if (this.closeOnSelect) this.deactivate()\n },\n /**\n * Helper to identify if all values in a group are selected\n *\n * @param {Object} group to validated selected values against\n */\n wholeGroupSelected (group) {\n return group[this.groupValues].every((option) => this.isSelected(option) || this.isOptionDisabled(option)\n )\n },\n /**\n * Helper to identify if all values in a group are disabled\n *\n * @param {Object} group to check for disabled values\n */\n wholeGroupDisabled (group) {\n return group[this.groupValues].every(this.isOptionDisabled)\n },\n /**\n * Removes the given option from the selected options.\n * Additionally checks this.allowEmpty prop if option can be removed when\n * it is the last selected option.\n *\n * @param {type} option description\n * @return {type} description\n */\n removeElement (option, shouldClose = true) {\n /* istanbul ignore else */\n if (this.disabled) return\n /* istanbul ignore else */\n if (option.$isDisabled) return\n /* istanbul ignore else */\n if (!this.allowEmpty && this.internalValue.length <= 1) {\n this.deactivate()\n return\n }\n\n const index = typeof option === 'object'\n ? this.valueKeys.indexOf(option[this.trackBy])\n : this.valueKeys.indexOf(option)\n\n if (this.multiple) {\n const newValue = this.internalValue.slice(0, index).concat(this.internalValue.slice(index + 1))\n this.$emit('update:modelValue', newValue)\n } else {\n this.$emit('update:modelValue', null)\n }\n this.$emit('remove', option, this.id)\n\n /* istanbul ignore else */\n if (this.closeOnSelect && shouldClose) this.deactivate()\n },\n /**\n * Calls this.removeElement() with the last element\n * from this.internalValue (selected element Array)\n *\n * @fires this#removeElement\n */\n removeLastElement () {\n /* istanbul ignore else */\n if (this.blockKeys.indexOf('Delete') !== -1) return\n /* istanbul ignore else */\n if (this.search.length === 0 && Array.isArray(this.internalValue) && this.internalValue.length) {\n this.removeElement(this.internalValue[this.internalValue.length - 1], false)\n }\n },\n /**\n * Opens the multiselect’s dropdown.\n * Sets this.isOpen to TRUE\n */\n activate () {\n /* istanbul ignore else */\n if (this.isOpen || this.disabled) return\n\n this.adjustPosition()\n /* istanbul ignore else */\n if (this.groupValues && this.pointer === 0 && this.filteredOptions.length) {\n this.pointer = 1\n }\n\n this.isOpen = true\n /* istanbul ignore else */\n if (this.searchable) {\n if (!this.preserveSearch) this.search = ''\n if (!this.preventAutofocus) this.$nextTick(() => this.$refs.search && this.$refs.search.focus())\n } else if (!this.preventAutofocus) {\n if (typeof this.$el !== 'undefined') this.$el.focus()\n }\n this.$emit('open', this.id)\n },\n /**\n * Closes the multiselect’s dropdown.\n * Sets this.isOpen to FALSE\n */\n deactivate () {\n /* istanbul ignore else */\n if (!this.isOpen) return\n\n this.isOpen = false\n /* istanbul ignore else */\n if (this.searchable) {\n if (this.$refs.search !== null && typeof this.$refs.search !== 'undefined') this.$refs.search.blur()\n } else {\n if (typeof this.$el !== 'undefined') this.$el.blur()\n }\n if (!this.preserveSearch) this.search = ''\n this.$emit('close', this.getValue(), this.id)\n },\n /**\n * Call this.activate() or this.deactivate()\n * depending on this.isOpen value.\n *\n * @fires this#activate || this#deactivate\n * @property {Boolean} isOpen indicates if dropdown is open\n */\n toggle () {\n this.isOpen\n ? this.deactivate()\n : this.activate()\n },\n /**\n * Updates the hasEnoughSpace variable used for\n * detecting where to expand the dropdown\n */\n adjustPosition () {\n if (typeof window === 'undefined') return\n\n const spaceAbove = this.$el.getBoundingClientRect().top\n const spaceBelow = window.innerHeight - this.$el.getBoundingClientRect().bottom\n const hasEnoughSpaceBelow = spaceBelow > this.maxHeight\n\n if (hasEnoughSpaceBelow || spaceBelow > spaceAbove || this.openDirection === 'below' || this.openDirection === 'bottom') {\n this.preferredOpenDirection = 'below'\n this.optimizedHeight = Math.min(spaceBelow - 40, this.maxHeight)\n } else {\n this.preferredOpenDirection = 'above'\n this.optimizedHeight = Math.min(spaceAbove - 40, this.maxHeight)\n }\n }\n }\n}\n","export default {\n data () {\n return {\n pointer: 0,\n pointerDirty: false\n }\n },\n props: {\n /**\n * Enable/disable highlighting of the pointed value.\n * @type {Boolean}\n * @default true\n */\n showPointer: {\n type: Boolean,\n default: true\n },\n optionHeight: {\n type: Number,\n default: 40\n }\n },\n computed: {\n pointerPosition () {\n return this.pointer * this.optionHeight\n },\n visibleElements () {\n return this.optimizedHeight / this.optionHeight\n }\n },\n watch: {\n filteredOptions () {\n this.pointerAdjust()\n },\n isOpen () {\n this.pointerDirty = false\n },\n pointer () {\n this.$refs.search && this.$refs.search.setAttribute('aria-activedescendant', this.id + '-' + this.pointer.toString())\n }\n },\n methods: {\n optionHighlight (index, option) {\n return {\n 'multiselect__option--highlight': index === this.pointer && this.showPointer,\n 'multiselect__option--selected': this.isSelected(option)\n }\n },\n groupHighlight (index, selectedGroup) {\n if (!this.groupSelect) {\n return [\n 'multiselect__option--disabled',\n {'multiselect__option--group': selectedGroup.$isLabel}\n ]\n }\n\n const group = this.options.find((option) => {\n return option[this.groupLabel] === selectedGroup.$groupLabel\n })\n\n return group && !this.wholeGroupDisabled(group) ? [\n 'multiselect__option--group',\n {'multiselect__option--highlight': index === this.pointer && this.showPointer},\n {'multiselect__option--group-selected': this.wholeGroupSelected(group)}\n ] : 'multiselect__option--disabled'\n },\n addPointerElement ({key} = 'Enter') {\n /* istanbul ignore else */\n if (this.filteredOptions.length > 0) {\n this.select(this.filteredOptions[this.pointer], key)\n }\n this.pointerReset()\n },\n pointerForward () {\n /* istanbul ignore else */\n if (this.pointer < this.filteredOptions.length - 1) {\n this.pointer++\n /* istanbul ignore next */\n if (this.$refs.list.scrollTop <= this.pointerPosition - (this.visibleElements - 1) * this.optionHeight) {\n this.$refs.list.scrollTop = this.pointerPosition - (this.visibleElements - 1) * this.optionHeight\n }\n /* istanbul ignore else */\n if (\n this.filteredOptions[this.pointer] &&\n this.filteredOptions[this.pointer].$isLabel &&\n !this.groupSelect\n ) this.pointerForward()\n }\n this.pointerDirty = true\n },\n pointerBackward () {\n if (this.pointer > 0) {\n this.pointer--\n /* istanbul ignore else */\n if (this.$refs.list.scrollTop >= this.pointerPosition) {\n this.$refs.list.scrollTop = this.pointerPosition\n }\n /* istanbul ignore else */\n if (\n this.filteredOptions[this.pointer] &&\n this.filteredOptions[this.pointer].$isLabel &&\n !this.groupSelect\n ) this.pointerBackward()\n } else {\n /* istanbul ignore else */\n if (\n this.filteredOptions[this.pointer] &&\n this.filteredOptions[0].$isLabel &&\n !this.groupSelect\n ) this.pointerForward()\n }\n this.pointerDirty = true\n },\n pointerReset () {\n /* istanbul ignore else */\n if (!this.closeOnSelect) return\n this.pointer = 0\n /* istanbul ignore else */\n if (this.$refs.list) {\n this.$refs.list.scrollTop = 0\n }\n },\n pointerAdjust () {\n /* istanbul ignore else */\n if (this.pointer >= this.filteredOptions.length - 1) {\n this.pointer = this.filteredOptions.length\n ? this.filteredOptions.length - 1\n : 0\n }\n\n if (this.filteredOptions.length > 0 &&\n this.filteredOptions[this.pointer].$isLabel &&\n !this.groupSelect\n ) {\n this.pointerForward()\n }\n },\n pointerSet (index) {\n this.pointer = index\n this.pointerDirty = true\n }\n }\n}\n","export { default } from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Multiselect.vue?vue&type=script&lang=js\"; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Multiselect.vue?vue&type=script&lang=js\"","import { render } from \"./Multiselect.vue?vue&type=template&id=2fe91855\"\nimport script from \"./Multiselect.vue?vue&type=script&lang=js\"\nexport * from \"./Multiselect.vue?vue&type=script&lang=js\"\n\nimport \"./Multiselect.vue?vue&type=style&index=0&id=2fe91855&lang=css\"\n\nimport exportComponent from \"/home/matt/git/vue-multiselect/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import Multiselect from './Multiselect.vue'\nimport multiselectMixin from './multiselectMixin.js'\nimport pointerMixin from './pointerMixin.js'\n\nexport default Multiselect\n\nexport {Multiselect, multiselectMixin, pointerMixin}\n","import './setPublicPath'\nimport mod from '~entry'\nexport default mod\nexport * from '~entry'\n","'use strict';\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar nativeSlice = [].slice;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return nativeSlice.call(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n /* global Symbol -- safe */\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/vue-multiselect.css b/dist/vue-multiselect.css new file mode 100644 index 00000000..9c9a6ad1 --- /dev/null +++ b/dist/vue-multiselect.css @@ -0,0 +1,468 @@ + + + fieldset[disabled] .multiselect { + pointer-events: none; + } + + .multiselect__spinner { + position: absolute; + right: 1px; + top: 1px; + width: 40px; + height: 38px; + background: #fff; + display: block; + } + + .multiselect__spinner::before, + .multiselect__spinner::after { + position: absolute; + content: ""; + top: 50%; + left: 50%; + margin: -8px 0 0 -8px; + width: 16px; + height: 16px; + border-radius: 100%; + border-color: #41b883 transparent transparent; + border-style: solid; + border-width: 2px; + box-shadow: 0 0 0 1px transparent; + } + + .multiselect__spinner::before { + animation: spinning 2.4s cubic-bezier(0.41, 0.26, 0.2, 0.62); + animation-iteration-count: infinite; + } + + .multiselect__spinner::after { + animation: spinning 2.4s cubic-bezier(0.51, 0.09, 0.21, 0.8); + animation-iteration-count: infinite; + } + + .multiselect__loading-enter-active, + .multiselect__loading-leave-active { + transition: opacity 0.4s ease-in-out; + opacity: 1; + } + + .multiselect__loading-enter, + .multiselect__loading-leave-active { + opacity: 0; + } + + .multiselect, + .multiselect__input, + .multiselect__single { + font-family: inherit; + font-size: 16px; + touch-action: manipulation; + } + + .multiselect { + box-sizing: content-box; + display: block; + position: relative; + width: 100%; + min-height: 40px; + text-align: left; + color: #35495e; + } + + .multiselect * { + box-sizing: border-box; + } + + .multiselect:focus { + outline: none; + } + + .multiselect--disabled { + background: #ededed; + pointer-events: none; + opacity: 0.6; + } + + .multiselect--active { + z-index: 50; + } + + .multiselect--active:not(.multiselect--above) .multiselect__current, + .multiselect--active:not(.multiselect--above) .multiselect__input, + .multiselect--active:not(.multiselect--above) .multiselect__tags { + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; + } + + .multiselect--active .multiselect__select { + transform: rotateZ(180deg); + } + + .multiselect--above.multiselect--active .multiselect__current, + .multiselect--above.multiselect--active .multiselect__input, + .multiselect--above.multiselect--active .multiselect__tags { + border-top-left-radius: 0; + border-top-right-radius: 0; + } + + .multiselect__input, + .multiselect__single { + position: relative; + display: inline-block; + min-height: 20px; + line-height: 20px; + border: none; + border-radius: 5px; + background: #fff; + padding: 0 0 0 5px; + width: calc(100%); + transition: border 0.1s ease; + box-sizing: border-box; + margin-bottom: 8px; + vertical-align: top; + } + + .multiselect__input::placeholder { + color: #35495e; + } + + .multiselect__tag ~ .multiselect__input, + .multiselect__tag ~ .multiselect__single { + width: auto; + } + + .multiselect__input:hover, + .multiselect__single:hover { + border-color: #cfcfcf; + } + + .multiselect__input:focus, + .multiselect__single:focus { + border-color: #a8a8a8; + outline: none; + } + + .multiselect__single { + padding-left: 5px; + margin-bottom: 8px; + } + + .multiselect__tags-wrap { + display: inline; + } + + .multiselect__tags { + min-height: 40px; + display: block; + padding: 8px 40px 0 8px; + border-radius: 5px; + border: 1px solid #e8e8e8; + background: #fff; + font-size: 14px; + } + + .multiselect__tag { + position: relative; + display: inline-block; + padding: 4px 26px 4px 10px; + border-radius: 5px; + margin-right: 10px; + color: #fff; + line-height: 1; + background: #41b883; + margin-bottom: 5px; + white-space: nowrap; + overflow: hidden; + max-width: 100%; + text-overflow: ellipsis; + } + + .multiselect__tag-icon { + cursor: pointer; + margin-left: 7px; + position: absolute; + right: 0; + top: 0; + bottom: 0; + font-weight: 700; + font-style: initial; + width: 22px; + text-align: center; + line-height: 22px; + transition: all 0.2s ease; + border-radius: 5px; + } + + .multiselect__tag-icon::after { + content: "×"; + color: #266d4d; + font-size: 14px; + } + + /* // Remove these lines to avoid green closing button + //.multiselect__tag-icon:focus, + //.multiselect__tag-icon:hover { + // background: #369a6e; + //} */ + + .multiselect__tag-icon:focus::after, + .multiselect__tag-icon:hover::after { + color: white; + } + + .multiselect__current { + line-height: 16px; + min-height: 40px; + box-sizing: border-box; + display: block; + overflow: hidden; + padding: 8px 12px 0; + padding-right: 30px; + white-space: nowrap; + margin: 0; + text-decoration: none; + border-radius: 5px; + border: 1px solid #e8e8e8; + cursor: pointer; + } + + .multiselect__select { + line-height: 16px; + display: block; + position: absolute; + box-sizing: border-box; + width: 40px; + height: 38px; + right: 1px; + top: 1px; + padding: 4px 8px; + margin: 0; + text-decoration: none; + text-align: center; + cursor: pointer; + transition: transform 0.2s ease; + } + + .multiselect__select::before { + position: relative; + right: 0; + top: 65%; + color: #999; + margin-top: 4px; + border-style: solid; + border-width: 5px 5px 0 5px; + border-color: #999 transparent transparent transparent; + content: ""; + } + + .multiselect__placeholder { + color: #adadad; + display: inline-block; + margin-bottom: 10px; + padding-top: 2px; + } + + .multiselect--active .multiselect__placeholder { + display: none; + } + + .multiselect__content-wrapper { + position: absolute; + display: block; + background: #fff; + width: 100%; + max-height: 240px; + overflow: auto; + border: 1px solid #e8e8e8; + border-top: none; + border-bottom-left-radius: 5px; + border-bottom-right-radius: 5px; + z-index: 50; + -webkit-overflow-scrolling: touch; + } + + .multiselect__content { + list-style: none; + display: inline-block; + padding: 0; + margin: 0; + min-width: 100%; + vertical-align: top; + } + + .multiselect--above .multiselect__content-wrapper { + bottom: 100%; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; + border-top-left-radius: 5px; + border-top-right-radius: 5px; + border-bottom: none; + border-top: 1px solid #e8e8e8; + } + + .multiselect__content::-webkit-scrollbar { + display: none; + } + + .multiselect__element { + display: block; + } + + .multiselect__option { + display: block; + padding: 12px; + min-height: 40px; + line-height: 16px; + text-decoration: none; + text-transform: none; + vertical-align: middle; + position: relative; + cursor: pointer; + white-space: nowrap; + } + + .multiselect__option::after { + top: 0; + right: 0; + position: absolute; + line-height: 40px; + padding-right: 12px; + padding-left: 20px; + font-size: 13px; + } + + .multiselect__option--highlight { + background: #41b883; + outline: none; + color: white; + } + + .multiselect__option--highlight::after { + content: attr(data-select); + background: #41b883; + color: white; + } + + .multiselect__option--selected { + background: #f3f3f3; + color: #35495e; + font-weight: bold; + } + + .multiselect__option--selected::after { + content: attr(data-selected); + color: silver; + background: inherit; + } + + .multiselect__option--selected.multiselect__option--highlight { + background: #ff6a6a; + color: #fff; + } + + .multiselect__option--selected.multiselect__option--highlight::after { + background: #ff6a6a; + content: attr(data-deselect); + color: #fff; + } + + .multiselect--disabled .multiselect__current, + .multiselect--disabled .multiselect__select { + background: #ededed; + color: #a6a6a6; + } + + .multiselect__option--disabled { + background: #ededed !important; + color: #a6a6a6 !important; + cursor: text; + pointer-events: none; + } + + .multiselect__option--group { + background: #ededed; + color: #35495e; + } + + .multiselect__option--group.multiselect__option--highlight { + background: #35495e; + color: #fff; + } + + .multiselect__option--group.multiselect__option--highlight::after { + background: #35495e; + } + + .multiselect__option--disabled.multiselect__option--highlight { + background: #dedede; + } + + .multiselect__option--group-selected.multiselect__option--highlight { + background: #ff6a6a; + color: #fff; + } + + .multiselect__option--group-selected.multiselect__option--highlight::after { + background: #ff6a6a; + content: attr(data-deselect); + color: #fff; + } + + .multiselect-enter-active, + .multiselect-leave-active { + transition: all 0.15s ease; + } + + .multiselect-enter, + .multiselect-leave-active { + opacity: 0; + } + + .multiselect__strong { + margin-bottom: 8px; + line-height: 20px; + display: inline-block; + vertical-align: top; + } + + *[dir="rtl"] .multiselect { + text-align: right; + } + + *[dir="rtl"] .multiselect__select { + right: auto; + left: 1px; + } + + *[dir="rtl"] .multiselect__tags { + padding: 8px 8px 0 40px; + } + + *[dir="rtl"] .multiselect__content { + text-align: right; + } + + *[dir="rtl"] .multiselect__option::after { + right: auto; + left: 0; + } + + *[dir="rtl"] .multiselect__clear { + right: auto; + left: 12px; + } + + *[dir="rtl"] .multiselect__spinner { + right: auto; + left: 1px; + } + + @keyframes spinning { + from { + transform: rotate(0); + } + + to { + transform: rotate(2turn); + } + } diff --git a/dist/vue-multiselect.esm.css b/dist/vue-multiselect.esm.css new file mode 100644 index 00000000..9c9a6ad1 --- /dev/null +++ b/dist/vue-multiselect.esm.css @@ -0,0 +1,468 @@ + + + fieldset[disabled] .multiselect { + pointer-events: none; + } + + .multiselect__spinner { + position: absolute; + right: 1px; + top: 1px; + width: 40px; + height: 38px; + background: #fff; + display: block; + } + + .multiselect__spinner::before, + .multiselect__spinner::after { + position: absolute; + content: ""; + top: 50%; + left: 50%; + margin: -8px 0 0 -8px; + width: 16px; + height: 16px; + border-radius: 100%; + border-color: #41b883 transparent transparent; + border-style: solid; + border-width: 2px; + box-shadow: 0 0 0 1px transparent; + } + + .multiselect__spinner::before { + animation: spinning 2.4s cubic-bezier(0.41, 0.26, 0.2, 0.62); + animation-iteration-count: infinite; + } + + .multiselect__spinner::after { + animation: spinning 2.4s cubic-bezier(0.51, 0.09, 0.21, 0.8); + animation-iteration-count: infinite; + } + + .multiselect__loading-enter-active, + .multiselect__loading-leave-active { + transition: opacity 0.4s ease-in-out; + opacity: 1; + } + + .multiselect__loading-enter, + .multiselect__loading-leave-active { + opacity: 0; + } + + .multiselect, + .multiselect__input, + .multiselect__single { + font-family: inherit; + font-size: 16px; + touch-action: manipulation; + } + + .multiselect { + box-sizing: content-box; + display: block; + position: relative; + width: 100%; + min-height: 40px; + text-align: left; + color: #35495e; + } + + .multiselect * { + box-sizing: border-box; + } + + .multiselect:focus { + outline: none; + } + + .multiselect--disabled { + background: #ededed; + pointer-events: none; + opacity: 0.6; + } + + .multiselect--active { + z-index: 50; + } + + .multiselect--active:not(.multiselect--above) .multiselect__current, + .multiselect--active:not(.multiselect--above) .multiselect__input, + .multiselect--active:not(.multiselect--above) .multiselect__tags { + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; + } + + .multiselect--active .multiselect__select { + transform: rotateZ(180deg); + } + + .multiselect--above.multiselect--active .multiselect__current, + .multiselect--above.multiselect--active .multiselect__input, + .multiselect--above.multiselect--active .multiselect__tags { + border-top-left-radius: 0; + border-top-right-radius: 0; + } + + .multiselect__input, + .multiselect__single { + position: relative; + display: inline-block; + min-height: 20px; + line-height: 20px; + border: none; + border-radius: 5px; + background: #fff; + padding: 0 0 0 5px; + width: calc(100%); + transition: border 0.1s ease; + box-sizing: border-box; + margin-bottom: 8px; + vertical-align: top; + } + + .multiselect__input::placeholder { + color: #35495e; + } + + .multiselect__tag ~ .multiselect__input, + .multiselect__tag ~ .multiselect__single { + width: auto; + } + + .multiselect__input:hover, + .multiselect__single:hover { + border-color: #cfcfcf; + } + + .multiselect__input:focus, + .multiselect__single:focus { + border-color: #a8a8a8; + outline: none; + } + + .multiselect__single { + padding-left: 5px; + margin-bottom: 8px; + } + + .multiselect__tags-wrap { + display: inline; + } + + .multiselect__tags { + min-height: 40px; + display: block; + padding: 8px 40px 0 8px; + border-radius: 5px; + border: 1px solid #e8e8e8; + background: #fff; + font-size: 14px; + } + + .multiselect__tag { + position: relative; + display: inline-block; + padding: 4px 26px 4px 10px; + border-radius: 5px; + margin-right: 10px; + color: #fff; + line-height: 1; + background: #41b883; + margin-bottom: 5px; + white-space: nowrap; + overflow: hidden; + max-width: 100%; + text-overflow: ellipsis; + } + + .multiselect__tag-icon { + cursor: pointer; + margin-left: 7px; + position: absolute; + right: 0; + top: 0; + bottom: 0; + font-weight: 700; + font-style: initial; + width: 22px; + text-align: center; + line-height: 22px; + transition: all 0.2s ease; + border-radius: 5px; + } + + .multiselect__tag-icon::after { + content: "×"; + color: #266d4d; + font-size: 14px; + } + + /* // Remove these lines to avoid green closing button + //.multiselect__tag-icon:focus, + //.multiselect__tag-icon:hover { + // background: #369a6e; + //} */ + + .multiselect__tag-icon:focus::after, + .multiselect__tag-icon:hover::after { + color: white; + } + + .multiselect__current { + line-height: 16px; + min-height: 40px; + box-sizing: border-box; + display: block; + overflow: hidden; + padding: 8px 12px 0; + padding-right: 30px; + white-space: nowrap; + margin: 0; + text-decoration: none; + border-radius: 5px; + border: 1px solid #e8e8e8; + cursor: pointer; + } + + .multiselect__select { + line-height: 16px; + display: block; + position: absolute; + box-sizing: border-box; + width: 40px; + height: 38px; + right: 1px; + top: 1px; + padding: 4px 8px; + margin: 0; + text-decoration: none; + text-align: center; + cursor: pointer; + transition: transform 0.2s ease; + } + + .multiselect__select::before { + position: relative; + right: 0; + top: 65%; + color: #999; + margin-top: 4px; + border-style: solid; + border-width: 5px 5px 0 5px; + border-color: #999 transparent transparent transparent; + content: ""; + } + + .multiselect__placeholder { + color: #adadad; + display: inline-block; + margin-bottom: 10px; + padding-top: 2px; + } + + .multiselect--active .multiselect__placeholder { + display: none; + } + + .multiselect__content-wrapper { + position: absolute; + display: block; + background: #fff; + width: 100%; + max-height: 240px; + overflow: auto; + border: 1px solid #e8e8e8; + border-top: none; + border-bottom-left-radius: 5px; + border-bottom-right-radius: 5px; + z-index: 50; + -webkit-overflow-scrolling: touch; + } + + .multiselect__content { + list-style: none; + display: inline-block; + padding: 0; + margin: 0; + min-width: 100%; + vertical-align: top; + } + + .multiselect--above .multiselect__content-wrapper { + bottom: 100%; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; + border-top-left-radius: 5px; + border-top-right-radius: 5px; + border-bottom: none; + border-top: 1px solid #e8e8e8; + } + + .multiselect__content::-webkit-scrollbar { + display: none; + } + + .multiselect__element { + display: block; + } + + .multiselect__option { + display: block; + padding: 12px; + min-height: 40px; + line-height: 16px; + text-decoration: none; + text-transform: none; + vertical-align: middle; + position: relative; + cursor: pointer; + white-space: nowrap; + } + + .multiselect__option::after { + top: 0; + right: 0; + position: absolute; + line-height: 40px; + padding-right: 12px; + padding-left: 20px; + font-size: 13px; + } + + .multiselect__option--highlight { + background: #41b883; + outline: none; + color: white; + } + + .multiselect__option--highlight::after { + content: attr(data-select); + background: #41b883; + color: white; + } + + .multiselect__option--selected { + background: #f3f3f3; + color: #35495e; + font-weight: bold; + } + + .multiselect__option--selected::after { + content: attr(data-selected); + color: silver; + background: inherit; + } + + .multiselect__option--selected.multiselect__option--highlight { + background: #ff6a6a; + color: #fff; + } + + .multiselect__option--selected.multiselect__option--highlight::after { + background: #ff6a6a; + content: attr(data-deselect); + color: #fff; + } + + .multiselect--disabled .multiselect__current, + .multiselect--disabled .multiselect__select { + background: #ededed; + color: #a6a6a6; + } + + .multiselect__option--disabled { + background: #ededed !important; + color: #a6a6a6 !important; + cursor: text; + pointer-events: none; + } + + .multiselect__option--group { + background: #ededed; + color: #35495e; + } + + .multiselect__option--group.multiselect__option--highlight { + background: #35495e; + color: #fff; + } + + .multiselect__option--group.multiselect__option--highlight::after { + background: #35495e; + } + + .multiselect__option--disabled.multiselect__option--highlight { + background: #dedede; + } + + .multiselect__option--group-selected.multiselect__option--highlight { + background: #ff6a6a; + color: #fff; + } + + .multiselect__option--group-selected.multiselect__option--highlight::after { + background: #ff6a6a; + content: attr(data-deselect); + color: #fff; + } + + .multiselect-enter-active, + .multiselect-leave-active { + transition: all 0.15s ease; + } + + .multiselect-enter, + .multiselect-leave-active { + opacity: 0; + } + + .multiselect__strong { + margin-bottom: 8px; + line-height: 20px; + display: inline-block; + vertical-align: top; + } + + *[dir="rtl"] .multiselect { + text-align: right; + } + + *[dir="rtl"] .multiselect__select { + right: auto; + left: 1px; + } + + *[dir="rtl"] .multiselect__tags { + padding: 8px 8px 0 40px; + } + + *[dir="rtl"] .multiselect__content { + text-align: right; + } + + *[dir="rtl"] .multiselect__option::after { + right: auto; + left: 0; + } + + *[dir="rtl"] .multiselect__clear { + right: auto; + left: 12px; + } + + *[dir="rtl"] .multiselect__spinner { + right: auto; + left: 1px; + } + + @keyframes spinning { + from { + transform: rotate(0); + } + + to { + transform: rotate(2turn); + } + } diff --git a/dist/vue-multiselect.esm.js b/dist/vue-multiselect.esm.js new file mode 100644 index 00000000..f8573f64 --- /dev/null +++ b/dist/vue-multiselect.esm.js @@ -0,0 +1,1349 @@ +import { openBlock, createBlock, withKeys, withModifiers, renderSlot, createVNode, withDirectives, Fragment, renderList, toDisplayString, vShow, createCommentVNode, Transition, withCtx, createTextVNode } from 'vue'; + +function isEmpty (opt) { + if (opt === 0) return false + if (Array.isArray(opt) && opt.length === 0) return true + return !opt +} + +function not (fun) { + return (...params) => !fun(...params) +} + +function includes (str, query) { + /* istanbul ignore else */ + if (str === undefined) str = 'undefined'; + if (str === null) str = 'null'; + if (str === false) str = 'false'; + const text = str.toString().toLowerCase(); + return text.indexOf(query.trim()) !== -1 +} + +function filterOptions (options, search, label, customLabel) { + return search ? options + .filter((option) => includes(customLabel(option, label), search)) + .sort((a, b) => customLabel(a, label).length - customLabel(b, label).length) : options +} + +function stripGroups (options) { + return options.filter((option) => !option.$isLabel) +} + +function flattenOptions (values, label) { + return (options) => + options.reduce((prev, curr) => { + /* istanbul ignore else */ + if (curr[values] && curr[values].length) { + prev.push({ + $groupLabel: curr[label], + $isLabel: true + }); + return prev.concat(curr[values]) + } + return prev + }, []) +} + +function filterGroups (search, label, values, groupLabel, customLabel) { + return (groups) => + groups.map((group) => { + /* istanbul ignore else */ + if (!group[values]) { + console.warn(`Options passed to vue-multiselect do not contain groups, despite the config.`); + return [] + } + const groupOptions = filterOptions(group[values], search, label, customLabel); + + return groupOptions.length + ? { + [groupLabel]: group[groupLabel], + [values]: groupOptions + } + : [] + }) +} + +const flow = (...fns) => (x) => fns.reduce((v, f) => f(v), x); + +var multiselectMixin = { + data () { + return { + search: '', + isOpen: false, + preferredOpenDirection: 'below', + optimizedHeight: this.maxHeight + } + }, + props: { + /** + * Decide whether to filter the results based on search query. + * Useful for async filtering, where we search through more complex data. + * @type {Boolean} + */ + internalSearch: { + type: Boolean, + default: true + }, + /** + * Array of available options: Objects, Strings or Integers. + * If array of objects, visible label will default to option.label. + * If `labal` prop is passed, label will equal option['label'] + * @type {Array} + */ + options: { + type: Array, + required: true + }, + /** + * Equivalent to the `multiple` attribute on a `` input. + * @default 'Select option' + * @type {String} + */ + placeholder: { + type: String, + default: 'Select option' + }, + /** + * Allow to remove all selected values + * @default true + * @type {Boolean} + */ + allowEmpty: { + type: Boolean, + default: true + }, + /** + * Reset this.internalValue, this.search after this.internalValue changes. + * Useful if want to create a stateless dropdown. + * @default false + * @type {Boolean} + */ + resetAfter: { + type: Boolean, + default: false + }, + /** + * Enable/disable closing after selecting an option + * @default true + * @type {Boolean} + */ + closeOnSelect: { + type: Boolean, + default: true + }, + /** + * Function to interpolate the custom label + * @default false + * @type {Function} + */ + customLabel: { + type: Function, + default (option, label) { + if (isEmpty(option)) return '' + return label ? option[label] : option + } + }, + /** + * Disable / Enable tagging + * @default false + * @type {Boolean} + */ + taggable: { + type: Boolean, + default: false + }, + /** + * String to show when highlighting a potential tag + * @default 'Press enter to create a tag' + * @type {String} + */ + tagPlaceholder: { + type: String, + default: 'Press enter to create a tag' + }, + /** + * By default new tags will appear above the search results. + * Changing to 'bottom' will revert this behaviour + * and will proritize the search results + * @default 'top' + * @type {String} + */ + tagPosition: { + type: String, + default: 'top' + }, + /** + * Number of allowed selected options. No limit if 0. + * @default 0 + * @type {Number} + */ + max: { + type: [Number, Boolean], + default: false + }, + /** + * Will be passed with all events as second param. + * Useful for identifying events origin. + * @default null + * @type {String|Integer} + */ + id: { + default: null + }, + /** + * Limits the options displayed in the dropdown + * to the first X options. + * @default 1000 + * @type {Integer} + */ + optionsLimit: { + type: Number, + default: 1000 + }, + /** + * Name of the property containing + * the group values + * @default 1000 + * @type {String} + */ + groupValues: { + type: String + }, + /** + * Name of the property containing + * the group label + * @default 1000 + * @type {String} + */ + groupLabel: { + type: String + }, + /** + * Allow to select all group values + * by selecting the group label + * @default false + * @type {Boolean} + */ + groupSelect: { + type: Boolean, + default: false + }, + /** + * Array of keyboard keys to block + * when selecting + * @default 1000 + * @type {String} + */ + blockKeys: { + type: Array, + default () { + return [] + } + }, + /** + * Prevent from wiping up the search value + * @default false + * @type {Boolean} + */ + preserveSearch: { + type: Boolean, + default: false + }, + /** + * Select 1st options if value is empty + * @default false + * @type {Boolean} + */ + preselectFirst: { + type: Boolean, + default: false + }, + /** + * Prevent autofocus + * @default false + * @type {Boolean} + */ + preventAutofocus: { + type: Boolean, + default: false + } + }, + mounted () { + /* istanbul ignore else */ + if (!this.multiple && this.max) { + console.warn('[Vue-Multiselect warn]: Max prop should not be used when prop Multiple equals false.'); + } + if ( + this.preselectFirst && + !this.internalValue.length && + this.options.length + ) { + this.select(this.filteredOptions[0]); + } + }, + computed: { + internalValue () { + return this.modelValue || this.modelValue === 0 + ? Array.isArray(this.modelValue) ? this.modelValue : [this.modelValue] + : [] + }, + filteredOptions () { + const search = this.search || ''; + const normalizedSearch = search.toLowerCase().trim(); + + let options = this.options.concat(); + + /* istanbul ignore else */ + if (this.internalSearch) { + options = this.groupValues + ? this.filterAndFlat(options, normalizedSearch, this.label) + : filterOptions(options, normalizedSearch, this.label, this.customLabel); + } else { + options = this.groupValues ? flattenOptions(this.groupValues, this.groupLabel)(options) : options; + } + + options = this.hideSelected + ? options.filter(not(this.isSelected)) + : options; + + /* istanbul ignore else */ + if (this.taggable && normalizedSearch.length && !this.isExistingOption(normalizedSearch)) { + if (this.tagPosition === 'bottom') { + options.push({isTag: true, label: search}); + } else { + options.unshift({isTag: true, label: search}); + } + } + + return options.slice(0, this.optionsLimit) + }, + valueKeys () { + if (this.trackBy) { + return this.internalValue.map((element) => element[this.trackBy]) + } else { + return this.internalValue + } + }, + optionKeys () { + const options = this.groupValues ? this.flatAndStrip(this.options) : this.options; + return options.map((element) => this.customLabel(element, this.label).toString().toLowerCase()) + }, + currentOptionLabel () { + return this.multiple + ? this.searchable ? '' : this.placeholder + : this.internalValue.length + ? this.getOptionLabel(this.internalValue[0]) + : this.searchable ? '' : this.placeholder + } + }, + watch: { + internalValue: { + handler () { + /* istanbul ignore else */ + if (this.resetAfter && this.internalValue.length) { + this.search = ''; + this.$emit('update:modelValue', this.multiple ? [] : null); + } + }, + deep: true + }, + search () { + this.$emit('search-change', this.search); + } + }, + emits: ['open', 'search-change', 'close', 'select', 'update:modelValue', 'remove', 'tag'], + methods: { + /** + * Returns the internalValue in a way it can be emited to the parent + * @returns {Object||Array||String||Integer} + */ + getValue () { + return this.multiple + ? this.internalValue + : this.internalValue.length === 0 + ? null + : this.internalValue[0] + }, + /** + * Filters and then flattens the options list + * @param {Array} + * @return {Array} returns a filtered and flat options list + */ + filterAndFlat (options, search, label) { + return flow( + filterGroups(search, label, this.groupValues, this.groupLabel, this.customLabel), + flattenOptions(this.groupValues, this.groupLabel) + )(options) + }, + /** + * Flattens and then strips the group labels from the options list + * @param {Array} + * @return {Array} returns a flat options list without group labels + */ + flatAndStrip (options) { + return flow( + flattenOptions(this.groupValues, this.groupLabel), + stripGroups + )(options) + }, + /** + * Updates the search value + * @param {String} + */ + updateSearch (query) { + this.search = query; + }, + /** + * Finds out if the given query is already present + * in the available options + * @param {String} + * @return {Boolean} returns true if element is available + */ + isExistingOption (query) { + return !this.options + ? false + : this.optionKeys.indexOf(query) > -1 + }, + /** + * Finds out if the given element is already present + * in the result value + * @param {Object||String||Integer} option passed element to check + * @returns {Boolean} returns true if element is selected + */ + isSelected (option) { + const opt = this.trackBy + ? option[this.trackBy] + : option; + return this.valueKeys.indexOf(opt) > -1 + }, + /** + * Finds out if the given option is disabled + * @param {Object||String||Integer} option passed element to check + * @returns {Boolean} returns true if element is disabled + */ + isOptionDisabled (option) { + return !!option.$isDisabled + }, + /** + * Returns empty string when options is null/undefined + * Returns tag query if option is tag. + * Returns the customLabel() results and casts it to string. + * + * @param {Object||String||Integer} Passed option + * @returns {Object||String} + */ + getOptionLabel (option) { + if (isEmpty(option)) return '' + /* istanbul ignore else */ + if (option.isTag) return option.label + /* istanbul ignore else */ + if (option.$isLabel) return option.$groupLabel + + const label = this.customLabel(option, this.label); + /* istanbul ignore else */ + if (isEmpty(label)) return '' + return label + }, + /** + * Add the given option to the list of selected options + * or sets the option as the selected option. + * If option is already selected -> remove it from the results. + * + * @param {Object||String||Integer} option to select/deselect + * @param {Boolean} block removing + */ + select (option, key) { + /* istanbul ignore else */ + if (option.$isLabel && this.groupSelect) { + this.selectGroup(option); + return + } + if (this.blockKeys.indexOf(key) !== -1 || + this.disabled || + option.$isDisabled || + option.$isLabel + ) return + /* istanbul ignore else */ + if (this.max && this.multiple && this.internalValue.length === this.max) return + /* istanbul ignore else */ + if (key === 'Tab' && !this.pointerDirty) return + if (option.isTag) { + this.$emit('tag', option.label, this.id); + this.search = ''; + if (this.closeOnSelect && !this.multiple) this.deactivate(); + } else { + const isSelected = this.isSelected(option); + + if (isSelected) { + if (key !== 'Tab') this.removeElement(option); + return + } + + if (this.multiple) { + this.$emit('update:modelValue', this.internalValue.concat([option])); + } else { + this.$emit('update:modelValue', option); + } + + this.$emit('select', option, this.id); + + /* istanbul ignore else */ + if (this.clearOnSelect) this.search = ''; + } + /* istanbul ignore else */ + if (this.closeOnSelect) this.deactivate(); + }, + /** + * Add the given group options to the list of selected options + * If all group optiona are already selected -> remove it from the results. + * + * @param {Object||String||Integer} group to select/deselect + */ + selectGroup (selectedGroup) { + const group = this.options.find((option) => { + return option[this.groupLabel] === selectedGroup.$groupLabel + }); + + if (!group) return + + if (this.wholeGroupSelected(group)) { + this.$emit('remove', group[this.groupValues], this.id); + + const groupValues = this.trackBy ? group[this.groupValues].map(val => val[this.trackBy]) : group[this.groupValues]; + const newValue = this.internalValue.filter( + option => groupValues.indexOf(this.trackBy ? option[this.trackBy] : option) === -1 + ); + + this.$emit('update:modelValue', newValue); + } else { + let optionsToAdd = group[this.groupValues].filter( + option => !(this.isOptionDisabled(option) || this.isSelected(option)) + ); + + // if max is defined then just select options respecting max + if (this.max) { + optionsToAdd.splice(this.max - this.internalValue.length); + } + + this.$emit('select', optionsToAdd, this.id); + this.$emit( + 'update:modelValue', + this.internalValue.concat(optionsToAdd) + ); + } + + if (this.closeOnSelect) this.deactivate(); + }, + /** + * Helper to identify if all values in a group are selected + * + * @param {Object} group to validated selected values against + */ + wholeGroupSelected (group) { + return group[this.groupValues].every((option) => this.isSelected(option) || this.isOptionDisabled(option) + ) + }, + /** + * Helper to identify if all values in a group are disabled + * + * @param {Object} group to check for disabled values + */ + wholeGroupDisabled (group) { + return group[this.groupValues].every(this.isOptionDisabled) + }, + /** + * Removes the given option from the selected options. + * Additionally checks this.allowEmpty prop if option can be removed when + * it is the last selected option. + * + * @param {type} option description + * @return {type} description + */ + removeElement (option, shouldClose = true) { + /* istanbul ignore else */ + if (this.disabled) return + /* istanbul ignore else */ + if (option.$isDisabled) return + /* istanbul ignore else */ + if (!this.allowEmpty && this.internalValue.length <= 1) { + this.deactivate(); + return + } + + const index = typeof option === 'object' + ? this.valueKeys.indexOf(option[this.trackBy]) + : this.valueKeys.indexOf(option); + + if (this.multiple) { + const newValue = this.internalValue.slice(0, index).concat(this.internalValue.slice(index + 1)); + this.$emit('update:modelValue', newValue); + } else { + this.$emit('update:modelValue', null); + } + this.$emit('remove', option, this.id); + + /* istanbul ignore else */ + if (this.closeOnSelect && shouldClose) this.deactivate(); + }, + /** + * Calls this.removeElement() with the last element + * from this.internalValue (selected element Array) + * + * @fires this#removeElement + */ + removeLastElement () { + /* istanbul ignore else */ + if (this.blockKeys.indexOf('Delete') !== -1) return + /* istanbul ignore else */ + if (this.search.length === 0 && Array.isArray(this.internalValue) && this.internalValue.length) { + this.removeElement(this.internalValue[this.internalValue.length - 1], false); + } + }, + /** + * Opens the multiselect’s dropdown. + * Sets this.isOpen to TRUE + */ + activate () { + /* istanbul ignore else */ + if (this.isOpen || this.disabled) return + + this.adjustPosition(); + /* istanbul ignore else */ + if (this.groupValues && this.pointer === 0 && this.filteredOptions.length) { + this.pointer = 1; + } + + this.isOpen = true; + /* istanbul ignore else */ + if (this.searchable) { + if (!this.preserveSearch) this.search = ''; + if (!this.preventAutofocus) this.$nextTick(() => this.$refs.search && this.$refs.search.focus()); + } else if (!this.preventAutofocus) { + if (typeof this.$el !== 'undefined') this.$el.focus(); + } + this.$emit('open', this.id); + }, + /** + * Closes the multiselect’s dropdown. + * Sets this.isOpen to FALSE + */ + deactivate () { + /* istanbul ignore else */ + if (!this.isOpen) return + + this.isOpen = false; + /* istanbul ignore else */ + if (this.searchable) { + if (this.$refs.search !== null && typeof this.$refs.search !== 'undefined') this.$refs.search.blur(); + } else { + if (typeof this.$el !== 'undefined') this.$el.blur(); + } + if (!this.preserveSearch) this.search = ''; + this.$emit('close', this.getValue(), this.id); + }, + /** + * Call this.activate() or this.deactivate() + * depending on this.isOpen value. + * + * @fires this#activate || this#deactivate + * @property {Boolean} isOpen indicates if dropdown is open + */ + toggle () { + this.isOpen + ? this.deactivate() + : this.activate(); + }, + /** + * Updates the hasEnoughSpace variable used for + * detecting where to expand the dropdown + */ + adjustPosition () { + if (typeof window === 'undefined') return + + const spaceAbove = this.$el.getBoundingClientRect().top; + const spaceBelow = window.innerHeight - this.$el.getBoundingClientRect().bottom; + const hasEnoughSpaceBelow = spaceBelow > this.maxHeight; + + if (hasEnoughSpaceBelow || spaceBelow > spaceAbove || this.openDirection === 'below' || this.openDirection === 'bottom') { + this.preferredOpenDirection = 'below'; + this.optimizedHeight = Math.min(spaceBelow - 40, this.maxHeight); + } else { + this.preferredOpenDirection = 'above'; + this.optimizedHeight = Math.min(spaceAbove - 40, this.maxHeight); + } + } + } +}; + +var pointerMixin = { + data () { + return { + pointer: 0, + pointerDirty: false + } + }, + props: { + /** + * Enable/disable highlighting of the pointed value. + * @type {Boolean} + * @default true + */ + showPointer: { + type: Boolean, + default: true + }, + optionHeight: { + type: Number, + default: 40 + } + }, + computed: { + pointerPosition () { + return this.pointer * this.optionHeight + }, + visibleElements () { + return this.optimizedHeight / this.optionHeight + } + }, + watch: { + filteredOptions () { + this.pointerAdjust(); + }, + isOpen () { + this.pointerDirty = false; + }, + pointer () { + this.$refs.search && this.$refs.search.setAttribute('aria-activedescendant', this.id + '-' + this.pointer.toString()); + } + }, + methods: { + optionHighlight (index, option) { + return { + 'multiselect__option--highlight': index === this.pointer && this.showPointer, + 'multiselect__option--selected': this.isSelected(option) + } + }, + groupHighlight (index, selectedGroup) { + if (!this.groupSelect) { + return [ + 'multiselect__option--disabled', + {'multiselect__option--group': selectedGroup.$isLabel} + ] + } + + const group = this.options.find((option) => { + return option[this.groupLabel] === selectedGroup.$groupLabel + }); + + return group && !this.wholeGroupDisabled(group) ? [ + 'multiselect__option--group', + {'multiselect__option--highlight': index === this.pointer && this.showPointer}, + {'multiselect__option--group-selected': this.wholeGroupSelected(group)} + ] : 'multiselect__option--disabled' + }, + addPointerElement ({key} = 'Enter') { + /* istanbul ignore else */ + if (this.filteredOptions.length > 0) { + this.select(this.filteredOptions[this.pointer], key); + } + this.pointerReset(); + }, + pointerForward () { + /* istanbul ignore else */ + if (this.pointer < this.filteredOptions.length - 1) { + this.pointer++; + /* istanbul ignore next */ + if (this.$refs.list.scrollTop <= this.pointerPosition - (this.visibleElements - 1) * this.optionHeight) { + this.$refs.list.scrollTop = this.pointerPosition - (this.visibleElements - 1) * this.optionHeight; + } + /* istanbul ignore else */ + if ( + this.filteredOptions[this.pointer] && + this.filteredOptions[this.pointer].$isLabel && + !this.groupSelect + ) this.pointerForward(); + } + this.pointerDirty = true; + }, + pointerBackward () { + if (this.pointer > 0) { + this.pointer--; + /* istanbul ignore else */ + if (this.$refs.list.scrollTop >= this.pointerPosition) { + this.$refs.list.scrollTop = this.pointerPosition; + } + /* istanbul ignore else */ + if ( + this.filteredOptions[this.pointer] && + this.filteredOptions[this.pointer].$isLabel && + !this.groupSelect + ) this.pointerBackward(); + } else { + /* istanbul ignore else */ + if ( + this.filteredOptions[this.pointer] && + this.filteredOptions[0].$isLabel && + !this.groupSelect + ) this.pointerForward(); + } + this.pointerDirty = true; + }, + pointerReset () { + /* istanbul ignore else */ + if (!this.closeOnSelect) return + this.pointer = 0; + /* istanbul ignore else */ + if (this.$refs.list) { + this.$refs.list.scrollTop = 0; + } + }, + pointerAdjust () { + /* istanbul ignore else */ + if (this.pointer >= this.filteredOptions.length - 1) { + this.pointer = this.filteredOptions.length + ? this.filteredOptions.length - 1 + : 0; + } + + if (this.filteredOptions.length > 0 && + this.filteredOptions[this.pointer].$isLabel && + !this.groupSelect + ) { + this.pointerForward(); + } + }, + pointerSet (index) { + this.pointer = index; + this.pointerDirty = true; + } + } +}; + +var script = { + name: 'vue-multiselect', + mixins: [multiselectMixin, pointerMixin], + compatConfig: { + MODE: 3, + ATTR_ENUMERATED_COERCION: false + }, + props: { + /** + * name attribute to match optional label element + * @default '' + * @type {String} + */ + name: { + type: String, + default: '' + }, + /** + * Presets the selected options value. + * @type {Object||Array||String||Integer} + */ + modelValue: { + type: null, + default () { + return [] + } + }, + /** + * String to show when pointing to an option + * @default 'Press enter to select' + * @type {String} + */ + selectLabel: { + type: String, + default: 'Press enter to select' + }, + /** + * String to show when pointing to an option + * @default 'Press enter to select' + * @type {String} + */ + selectGroupLabel: { + type: String, + default: 'Press enter to select group' + }, + /** + * String to show next to selected option + * @default 'Selected' + * @type {String} + */ + selectedLabel: { + type: String, + default: 'Selected' + }, + /** + * String to show when pointing to an already selected option + * @default 'Press enter to remove' + * @type {String} + */ + deselectLabel: { + type: String, + default: 'Press enter to remove' + }, + /** + * String to show when pointing to an already selected option + * @default 'Press enter to remove' + * @type {String} + */ + deselectGroupLabel: { + type: String, + default: 'Press enter to deselect group' + }, + /** + * Decide whether to show pointer labels + * @default true + * @type {Boolean} + */ + showLabels: { + type: Boolean, + default: true + }, + /** + * Limit the display of selected options. The rest will be hidden within the limitText string. + * @default 99999 + * @type {Integer} + */ + limit: { + type: Number, + default: 99999 + }, + /** + * Sets maxHeight style value of the dropdown + * @default 300 + * @type {Integer} + */ + maxHeight: { + type: Number, + default: 300 + }, + /** + * Function that process the message shown when selected + * elements pass the defined limit. + * @default 'and * more' + * @param {Int} count Number of elements more than limit + * @type {Function} + */ + limitText: { + type: Function, + default: (count) => `and ${count} more` + }, + /** + * Set true to trigger the loading spinner. + * @default False + * @type {Boolean} + */ + loading: { + type: Boolean, + default: false + }, + /** + * Disables the multiselect if true. + * @default false + * @type {Boolean} + */ + disabled: { + type: Boolean, + default: false + }, + /** + * Fixed opening direction + * @default '' + * @type {String} + */ + openDirection: { + type: String, + default: '' + }, + /** + * Shows slot with message about empty options + * @default true + * @type {Boolean} + */ + showNoOptions: { + type: Boolean, + default: true + }, + showNoResults: { + type: Boolean, + default: true + }, + tabindex: { + type: Number, + default: 0 + } + }, + computed: { + hasOptionGroup () { + return this.groupValues && this.groupLabel && this.groupSelect + }, + isSingleLabelVisible () { + return ( + (this.singleValue || this.singleValue === 0) && + (!this.isOpen || !this.searchable) && + !this.visibleValues.length + ) + }, + isPlaceholderVisible () { + return !this.internalValue.length && (!this.searchable || !this.isOpen) + }, + visibleValues () { + return this.multiple ? this.internalValue.slice(0, this.limit) : [] + }, + singleValue () { + return this.internalValue[0] + }, + deselectLabelText () { + return this.showLabels ? this.deselectLabel : '' + }, + deselectGroupLabelText () { + return this.showLabels ? this.deselectGroupLabel : '' + }, + selectLabelText () { + return this.showLabels ? this.selectLabel : '' + }, + selectGroupLabelText () { + return this.showLabels ? this.selectGroupLabel : '' + }, + selectedLabelText () { + return this.showLabels ? this.selectedLabel : '' + }, + inputStyle () { + if ( + this.searchable || + (this.multiple && this.modelValue && this.modelValue.length) + ) { + // Hide input by setting the width to 0 allowing it to receive focus + return this.isOpen + ? {width: '100%'} + : {width: '0', position: 'absolute', padding: '0'} + } + return '' + }, + contentStyle () { + return this.options.length + ? {display: 'inline-block'} + : {display: 'block'} + }, + isAbove () { + if (this.openDirection === 'above' || this.openDirection === 'top') { + return true + } else if ( + this.openDirection === 'below' || + this.openDirection === 'bottom' + ) { + return false + } else { + return this.preferredOpenDirection === 'above' + } + }, + showSearchInput () { + return ( + this.searchable && + (this.hasSingleSelectedSlot && + (this.visibleSingleValue || this.visibleSingleValue === 0) + ? this.isOpen + : true) + ) + } + } +}; + +const _hoisted_1 = { + ref: "tags", + class: "multiselect__tags" +}; +const _hoisted_2 = { class: "multiselect__tags-wrap" }; +const _hoisted_3 = { class: "multiselect__spinner" }; +const _hoisted_4 = { key: 0 }; +const _hoisted_5 = { class: "multiselect__option" }; +const _hoisted_6 = { class: "multiselect__option" }; +const _hoisted_7 = /*#__PURE__*/createTextVNode("No elements found. Consider changing the search query."); +const _hoisted_8 = { class: "multiselect__option" }; +const _hoisted_9 = /*#__PURE__*/createTextVNode("List is empty."); + +function render(_ctx, _cache, $props, $setup, $data, $options) { + return (openBlock(), createBlock("div", { + tabindex: _ctx.searchable ? -1 : $props.tabindex, + class: [{ 'multiselect--active': _ctx.isOpen, 'multiselect--disabled': $props.disabled, 'multiselect--above': $options.isAbove, 'multiselect--has-options-group': $options.hasOptionGroup }, "multiselect"], + onFocus: _cache[14] || (_cache[14] = $event => (_ctx.activate())), + onBlur: _cache[15] || (_cache[15] = $event => (_ctx.searchable ? false : _ctx.deactivate())), + onKeydown: [ + _cache[16] || (_cache[16] = withKeys(withModifiers($event => (_ctx.pointerForward()), ["self","prevent"]), ["down"])), + _cache[17] || (_cache[17] = withKeys(withModifiers($event => (_ctx.pointerBackward()), ["self","prevent"]), ["up"])) + ], + onKeypress: _cache[18] || (_cache[18] = withKeys(withModifiers($event => (_ctx.addPointerElement($event)), ["stop","self"]), ["enter","tab"])), + onKeyup: _cache[19] || (_cache[19] = withKeys($event => (_ctx.deactivate()), ["esc"])), + role: "combobox", + "aria-owns": 'listbox-'+_ctx.id + }, [ + renderSlot(_ctx.$slots, "caret", { toggle: _ctx.toggle }, () => [ + createVNode("div", { + onMousedown: _cache[1] || (_cache[1] = withModifiers($event => (_ctx.toggle()), ["prevent","stop"])), + class: "multiselect__select" + }, null, 32 /* HYDRATE_EVENTS */) + ]), + renderSlot(_ctx.$slots, "clear", { search: _ctx.search }), + createVNode("div", _hoisted_1, [ + renderSlot(_ctx.$slots, "selection", { + search: _ctx.search, + remove: _ctx.removeElement, + values: $options.visibleValues, + isOpen: _ctx.isOpen + }, () => [ + withDirectives(createVNode("div", _hoisted_2, [ + (openBlock(true), createBlock(Fragment, null, renderList($options.visibleValues, (option, index) => { + return renderSlot(_ctx.$slots, "tag", { + option: option, + search: _ctx.search, + remove: _ctx.removeElement + }, () => [ + (openBlock(), createBlock("span", { + class: "multiselect__tag", + key: index + }, [ + createVNode("span", { + textContent: toDisplayString(_ctx.getOptionLabel(option)) + }, null, 8 /* PROPS */, ["textContent"]), + createVNode("i", { + tabindex: "1", + onKeypress: withKeys(withModifiers($event => (_ctx.removeElement(option)), ["prevent"]), ["enter"]), + onMousedown: withModifiers($event => (_ctx.removeElement(option)), ["prevent"]), + class: "multiselect__tag-icon" + }, null, 40 /* PROPS, HYDRATE_EVENTS */, ["onKeypress", "onMousedown"]) + ])) + ]) + }), 256 /* UNKEYED_FRAGMENT */)) + ], 512 /* NEED_PATCH */), [ + [vShow, $options.visibleValues.length > 0] + ]), + (_ctx.internalValue && _ctx.internalValue.length > $props.limit) + ? renderSlot(_ctx.$slots, "limit", { key: 0 }, () => [ + createVNode("strong", { + class: "multiselect__strong", + textContent: toDisplayString($props.limitText(_ctx.internalValue.length - $props.limit)) + }, null, 8 /* PROPS */, ["textContent"]) + ]) + : createCommentVNode("v-if", true) + ]), + createVNode(Transition, { name: "multiselect__loading" }, { + default: withCtx(() => [ + renderSlot(_ctx.$slots, "loading", {}, () => [ + withDirectives(createVNode("div", _hoisted_3, null, 512 /* NEED_PATCH */), [ + [vShow, $props.loading] + ]) + ]) + ]), + _: 3 /* FORWARDED */ + }), + (_ctx.searchable) + ? (openBlock(), createBlock("input", { + key: 0, + ref: "search", + name: $props.name, + id: _ctx.id, + type: "text", + autocomplete: "off", + spellcheck: false, + placeholder: _ctx.placeholder, + style: $options.inputStyle, + value: _ctx.search, + disabled: $props.disabled, + tabindex: $props.tabindex, + onInput: _cache[2] || (_cache[2] = $event => (_ctx.updateSearch($event.target.value))), + onFocus: _cache[3] || (_cache[3] = withModifiers($event => (_ctx.activate()), ["prevent"])), + onBlur: _cache[4] || (_cache[4] = withModifiers($event => (_ctx.deactivate()), ["prevent"])), + onKeyup: _cache[5] || (_cache[5] = withKeys($event => (_ctx.deactivate()), ["esc"])), + onKeydown: [ + _cache[6] || (_cache[6] = withKeys(withModifiers($event => (_ctx.pointerForward()), ["prevent"]), ["down"])), + _cache[7] || (_cache[7] = withKeys(withModifiers($event => (_ctx.pointerBackward()), ["prevent"]), ["up"])), + _cache[9] || (_cache[9] = withKeys(withModifiers($event => (_ctx.removeLastElement()), ["stop"]), ["delete"])) + ], + onKeypress: _cache[8] || (_cache[8] = withKeys(withModifiers($event => (_ctx.addPointerElement($event)), ["prevent","stop","self"]), ["enter"])), + class: "multiselect__input", + "aria-controls": 'listbox-'+_ctx.id + }, null, 44 /* STYLE, PROPS, HYDRATE_EVENTS */, ["name", "id", "placeholder", "value", "disabled", "tabindex", "aria-controls"])) + : createCommentVNode("v-if", true), + ($options.isSingleLabelVisible) + ? (openBlock(), createBlock("span", { + key: 1, + class: "multiselect__single", + onMousedown: _cache[10] || (_cache[10] = withModifiers((...args) => (_ctx.toggle && _ctx.toggle(...args)), ["prevent"])) + }, [ + renderSlot(_ctx.$slots, "singleLabel", { option: $options.singleValue }, () => [ + createTextVNode(toDisplayString(_ctx.currentOptionLabel), 1 /* TEXT */) + ]) + ], 32 /* HYDRATE_EVENTS */)) + : createCommentVNode("v-if", true), + ($options.isPlaceholderVisible) + ? (openBlock(), createBlock("span", { + key: 2, + class: "multiselect__placeholder", + onMousedown: _cache[11] || (_cache[11] = withModifiers((...args) => (_ctx.toggle && _ctx.toggle(...args)), ["prevent"])) + }, [ + renderSlot(_ctx.$slots, "placeholder", {}, () => [ + createTextVNode(toDisplayString(_ctx.placeholder), 1 /* TEXT */) + ]) + ], 32 /* HYDRATE_EVENTS */)) + : createCommentVNode("v-if", true) + ], 512 /* NEED_PATCH */), + createVNode(Transition, { name: "multiselect" }, { + default: withCtx(() => [ + withDirectives(createVNode("div", { + class: "multiselect__content-wrapper", + onFocus: _cache[12] || (_cache[12] = (...args) => (_ctx.activate && _ctx.activate(...args))), + tabindex: "-1", + onMousedown: _cache[13] || (_cache[13] = withModifiers(() => {}, ["prevent"])), + style: { maxHeight: _ctx.optimizedHeight + 'px' }, + ref: "list" + }, [ + createVNode("ul", { + class: "multiselect__content", + style: $options.contentStyle, + role: "listbox", + id: 'listbox-'+_ctx.id + }, [ + renderSlot(_ctx.$slots, "beforeList"), + (_ctx.multiple && _ctx.max === _ctx.internalValue.length) + ? (openBlock(), createBlock("li", _hoisted_4, [ + createVNode("span", _hoisted_5, [ + renderSlot(_ctx.$slots, "maxElements", {}, () => [ + createTextVNode("Maximum of " + toDisplayString(_ctx.max) + " options selected. First remove a selected option to select another.", 1 /* TEXT */) + ]) + ]) + ])) + : createCommentVNode("v-if", true), + (!_ctx.max || _ctx.internalValue.length < _ctx.max) + ? (openBlock(true), createBlock(Fragment, { key: 1 }, renderList(_ctx.filteredOptions, (option, index) => { + return (openBlock(), createBlock("li", { + class: "multiselect__element", + key: index, + id: _ctx.id + '-' + index, + role: !(option && (option.$isLabel || option.$isDisabled)) ? 'option' : null + }, [ + (!(option && (option.$isLabel || option.$isDisabled))) + ? (openBlock(), createBlock("span", { + key: 0, + class: [_ctx.optionHighlight(index, option), "multiselect__option"], + onClick: withModifiers($event => (_ctx.select(option)), ["stop"]), + onMouseenter: withModifiers($event => (_ctx.pointerSet(index)), ["self"]), + "data-select": option && option.isTag ? _ctx.tagPlaceholder : $options.selectLabelText, + "data-selected": $options.selectedLabelText, + "data-deselect": $options.deselectLabelText + }, [ + renderSlot(_ctx.$slots, "option", { + option: option, + search: _ctx.search, + index: index + }, () => [ + createVNode("span", null, toDisplayString(_ctx.getOptionLabel(option)), 1 /* TEXT */) + ]) + ], 42 /* CLASS, PROPS, HYDRATE_EVENTS */, ["onClick", "onMouseenter", "data-select", "data-selected", "data-deselect"])) + : createCommentVNode("v-if", true), + (option && (option.$isLabel || option.$isDisabled)) + ? (openBlock(), createBlock("span", { + key: 1, + "data-select": _ctx.groupSelect && $options.selectGroupLabelText, + "data-deselect": _ctx.groupSelect && $options.deselectGroupLabelText, + class: [_ctx.groupHighlight(index, option), "multiselect__option"], + onMouseenter: withModifiers($event => (_ctx.groupSelect && _ctx.pointerSet(index)), ["self"]), + onMousedown: withModifiers($event => (_ctx.selectGroup(option)), ["prevent"]) + }, [ + renderSlot(_ctx.$slots, "option", { + option: option, + search: _ctx.search, + index: index + }, () => [ + createVNode("span", null, toDisplayString(_ctx.getOptionLabel(option)), 1 /* TEXT */) + ]) + ], 42 /* CLASS, PROPS, HYDRATE_EVENTS */, ["data-select", "data-deselect", "onMouseenter", "onMousedown"])) + : createCommentVNode("v-if", true) + ], 8 /* PROPS */, ["id", "role"])) + }), 128 /* KEYED_FRAGMENT */)) + : createCommentVNode("v-if", true), + withDirectives(createVNode("li", null, [ + createVNode("span", _hoisted_6, [ + renderSlot(_ctx.$slots, "noResult", { search: _ctx.search }, () => [ + _hoisted_7 + ]) + ]) + ], 512 /* NEED_PATCH */), [ + [vShow, $props.showNoResults && (_ctx.filteredOptions.length === 0 && _ctx.search && !$props.loading)] + ]), + withDirectives(createVNode("li", null, [ + createVNode("span", _hoisted_8, [ + renderSlot(_ctx.$slots, "noOptions", {}, () => [ + _hoisted_9 + ]) + ]) + ], 512 /* NEED_PATCH */), [ + [vShow, $props.showNoOptions && ((_ctx.options.length === 0 || ($options.hasOptionGroup === true && _ctx.filteredOptions.length === 0)) && !_ctx.search && !$props.loading)] + ]), + renderSlot(_ctx.$slots, "afterList") + ], 12 /* STYLE, PROPS */, ["id"]) + ], 36 /* STYLE, HYDRATE_EVENTS */), [ + [vShow, _ctx.isOpen] + ]) + ]), + _: 3 /* FORWARDED */ + }) + ], 42 /* CLASS, PROPS, HYDRATE_EVENTS */, ["tabindex", "aria-owns"])) +} + +script.render = render; + +export default script; +export { script as Multiselect, multiselectMixin, pointerMixin }; diff --git a/dist/vue-multiselect.js b/dist/vue-multiselect.js new file mode 100644 index 00000000..0f276d97 --- /dev/null +++ b/dist/vue-multiselect.js @@ -0,0 +1,1358 @@ +var VueMultiselect = (function (exports, vue) { + 'use strict'; + + function isEmpty (opt) { + if (opt === 0) return false + if (Array.isArray(opt) && opt.length === 0) return true + return !opt + } + + function not (fun) { + return (...params) => !fun(...params) + } + + function includes (str, query) { + /* istanbul ignore else */ + if (str === undefined) str = 'undefined'; + if (str === null) str = 'null'; + if (str === false) str = 'false'; + const text = str.toString().toLowerCase(); + return text.indexOf(query.trim()) !== -1 + } + + function filterOptions (options, search, label, customLabel) { + return search ? options + .filter((option) => includes(customLabel(option, label), search)) + .sort((a, b) => customLabel(a, label).length - customLabel(b, label).length) : options + } + + function stripGroups (options) { + return options.filter((option) => !option.$isLabel) + } + + function flattenOptions (values, label) { + return (options) => + options.reduce((prev, curr) => { + /* istanbul ignore else */ + if (curr[values] && curr[values].length) { + prev.push({ + $groupLabel: curr[label], + $isLabel: true + }); + return prev.concat(curr[values]) + } + return prev + }, []) + } + + function filterGroups (search, label, values, groupLabel, customLabel) { + return (groups) => + groups.map((group) => { + /* istanbul ignore else */ + if (!group[values]) { + console.warn(`Options passed to vue-multiselect do not contain groups, despite the config.`); + return [] + } + const groupOptions = filterOptions(group[values], search, label, customLabel); + + return groupOptions.length + ? { + [groupLabel]: group[groupLabel], + [values]: groupOptions + } + : [] + }) + } + + const flow = (...fns) => (x) => fns.reduce((v, f) => f(v), x); + + var multiselectMixin = { + data () { + return { + search: '', + isOpen: false, + preferredOpenDirection: 'below', + optimizedHeight: this.maxHeight + } + }, + props: { + /** + * Decide whether to filter the results based on search query. + * Useful for async filtering, where we search through more complex data. + * @type {Boolean} + */ + internalSearch: { + type: Boolean, + default: true + }, + /** + * Array of available options: Objects, Strings or Integers. + * If array of objects, visible label will default to option.label. + * If `labal` prop is passed, label will equal option['label'] + * @type {Array} + */ + options: { + type: Array, + required: true + }, + /** + * Equivalent to the `multiple` attribute on a `` input. + * @default 'Select option' + * @type {String} + */ + placeholder: { + type: String, + default: 'Select option' + }, + /** + * Allow to remove all selected values + * @default true + * @type {Boolean} + */ + allowEmpty: { + type: Boolean, + default: true + }, + /** + * Reset this.internalValue, this.search after this.internalValue changes. + * Useful if want to create a stateless dropdown. + * @default false + * @type {Boolean} + */ + resetAfter: { + type: Boolean, + default: false + }, + /** + * Enable/disable closing after selecting an option + * @default true + * @type {Boolean} + */ + closeOnSelect: { + type: Boolean, + default: true + }, + /** + * Function to interpolate the custom label + * @default false + * @type {Function} + */ + customLabel: { + type: Function, + default (option, label) { + if (isEmpty(option)) return '' + return label ? option[label] : option + } + }, + /** + * Disable / Enable tagging + * @default false + * @type {Boolean} + */ + taggable: { + type: Boolean, + default: false + }, + /** + * String to show when highlighting a potential tag + * @default 'Press enter to create a tag' + * @type {String} + */ + tagPlaceholder: { + type: String, + default: 'Press enter to create a tag' + }, + /** + * By default new tags will appear above the search results. + * Changing to 'bottom' will revert this behaviour + * and will proritize the search results + * @default 'top' + * @type {String} + */ + tagPosition: { + type: String, + default: 'top' + }, + /** + * Number of allowed selected options. No limit if 0. + * @default 0 + * @type {Number} + */ + max: { + type: [Number, Boolean], + default: false + }, + /** + * Will be passed with all events as second param. + * Useful for identifying events origin. + * @default null + * @type {String|Integer} + */ + id: { + default: null + }, + /** + * Limits the options displayed in the dropdown + * to the first X options. + * @default 1000 + * @type {Integer} + */ + optionsLimit: { + type: Number, + default: 1000 + }, + /** + * Name of the property containing + * the group values + * @default 1000 + * @type {String} + */ + groupValues: { + type: String + }, + /** + * Name of the property containing + * the group label + * @default 1000 + * @type {String} + */ + groupLabel: { + type: String + }, + /** + * Allow to select all group values + * by selecting the group label + * @default false + * @type {Boolean} + */ + groupSelect: { + type: Boolean, + default: false + }, + /** + * Array of keyboard keys to block + * when selecting + * @default 1000 + * @type {String} + */ + blockKeys: { + type: Array, + default () { + return [] + } + }, + /** + * Prevent from wiping up the search value + * @default false + * @type {Boolean} + */ + preserveSearch: { + type: Boolean, + default: false + }, + /** + * Select 1st options if value is empty + * @default false + * @type {Boolean} + */ + preselectFirst: { + type: Boolean, + default: false + }, + /** + * Prevent autofocus + * @default false + * @type {Boolean} + */ + preventAutofocus: { + type: Boolean, + default: false + } + }, + mounted () { + /* istanbul ignore else */ + if (!this.multiple && this.max) { + console.warn('[Vue-Multiselect warn]: Max prop should not be used when prop Multiple equals false.'); + } + if ( + this.preselectFirst && + !this.internalValue.length && + this.options.length + ) { + this.select(this.filteredOptions[0]); + } + }, + computed: { + internalValue () { + return this.modelValue || this.modelValue === 0 + ? Array.isArray(this.modelValue) ? this.modelValue : [this.modelValue] + : [] + }, + filteredOptions () { + const search = this.search || ''; + const normalizedSearch = search.toLowerCase().trim(); + + let options = this.options.concat(); + + /* istanbul ignore else */ + if (this.internalSearch) { + options = this.groupValues + ? this.filterAndFlat(options, normalizedSearch, this.label) + : filterOptions(options, normalizedSearch, this.label, this.customLabel); + } else { + options = this.groupValues ? flattenOptions(this.groupValues, this.groupLabel)(options) : options; + } + + options = this.hideSelected + ? options.filter(not(this.isSelected)) + : options; + + /* istanbul ignore else */ + if (this.taggable && normalizedSearch.length && !this.isExistingOption(normalizedSearch)) { + if (this.tagPosition === 'bottom') { + options.push({isTag: true, label: search}); + } else { + options.unshift({isTag: true, label: search}); + } + } + + return options.slice(0, this.optionsLimit) + }, + valueKeys () { + if (this.trackBy) { + return this.internalValue.map((element) => element[this.trackBy]) + } else { + return this.internalValue + } + }, + optionKeys () { + const options = this.groupValues ? this.flatAndStrip(this.options) : this.options; + return options.map((element) => this.customLabel(element, this.label).toString().toLowerCase()) + }, + currentOptionLabel () { + return this.multiple + ? this.searchable ? '' : this.placeholder + : this.internalValue.length + ? this.getOptionLabel(this.internalValue[0]) + : this.searchable ? '' : this.placeholder + } + }, + watch: { + internalValue: { + handler () { + /* istanbul ignore else */ + if (this.resetAfter && this.internalValue.length) { + this.search = ''; + this.$emit('update:modelValue', this.multiple ? [] : null); + } + }, + deep: true + }, + search () { + this.$emit('search-change', this.search); + } + }, + emits: ['open', 'search-change', 'close', 'select', 'update:modelValue', 'remove', 'tag'], + methods: { + /** + * Returns the internalValue in a way it can be emited to the parent + * @returns {Object||Array||String||Integer} + */ + getValue () { + return this.multiple + ? this.internalValue + : this.internalValue.length === 0 + ? null + : this.internalValue[0] + }, + /** + * Filters and then flattens the options list + * @param {Array} + * @return {Array} returns a filtered and flat options list + */ + filterAndFlat (options, search, label) { + return flow( + filterGroups(search, label, this.groupValues, this.groupLabel, this.customLabel), + flattenOptions(this.groupValues, this.groupLabel) + )(options) + }, + /** + * Flattens and then strips the group labels from the options list + * @param {Array} + * @return {Array} returns a flat options list without group labels + */ + flatAndStrip (options) { + return flow( + flattenOptions(this.groupValues, this.groupLabel), + stripGroups + )(options) + }, + /** + * Updates the search value + * @param {String} + */ + updateSearch (query) { + this.search = query; + }, + /** + * Finds out if the given query is already present + * in the available options + * @param {String} + * @return {Boolean} returns true if element is available + */ + isExistingOption (query) { + return !this.options + ? false + : this.optionKeys.indexOf(query) > -1 + }, + /** + * Finds out if the given element is already present + * in the result value + * @param {Object||String||Integer} option passed element to check + * @returns {Boolean} returns true if element is selected + */ + isSelected (option) { + const opt = this.trackBy + ? option[this.trackBy] + : option; + return this.valueKeys.indexOf(opt) > -1 + }, + /** + * Finds out if the given option is disabled + * @param {Object||String||Integer} option passed element to check + * @returns {Boolean} returns true if element is disabled + */ + isOptionDisabled (option) { + return !!option.$isDisabled + }, + /** + * Returns empty string when options is null/undefined + * Returns tag query if option is tag. + * Returns the customLabel() results and casts it to string. + * + * @param {Object||String||Integer} Passed option + * @returns {Object||String} + */ + getOptionLabel (option) { + if (isEmpty(option)) return '' + /* istanbul ignore else */ + if (option.isTag) return option.label + /* istanbul ignore else */ + if (option.$isLabel) return option.$groupLabel + + const label = this.customLabel(option, this.label); + /* istanbul ignore else */ + if (isEmpty(label)) return '' + return label + }, + /** + * Add the given option to the list of selected options + * or sets the option as the selected option. + * If option is already selected -> remove it from the results. + * + * @param {Object||String||Integer} option to select/deselect + * @param {Boolean} block removing + */ + select (option, key) { + /* istanbul ignore else */ + if (option.$isLabel && this.groupSelect) { + this.selectGroup(option); + return + } + if (this.blockKeys.indexOf(key) !== -1 || + this.disabled || + option.$isDisabled || + option.$isLabel + ) return + /* istanbul ignore else */ + if (this.max && this.multiple && this.internalValue.length === this.max) return + /* istanbul ignore else */ + if (key === 'Tab' && !this.pointerDirty) return + if (option.isTag) { + this.$emit('tag', option.label, this.id); + this.search = ''; + if (this.closeOnSelect && !this.multiple) this.deactivate(); + } else { + const isSelected = this.isSelected(option); + + if (isSelected) { + if (key !== 'Tab') this.removeElement(option); + return + } + + if (this.multiple) { + this.$emit('update:modelValue', this.internalValue.concat([option])); + } else { + this.$emit('update:modelValue', option); + } + + this.$emit('select', option, this.id); + + /* istanbul ignore else */ + if (this.clearOnSelect) this.search = ''; + } + /* istanbul ignore else */ + if (this.closeOnSelect) this.deactivate(); + }, + /** + * Add the given group options to the list of selected options + * If all group optiona are already selected -> remove it from the results. + * + * @param {Object||String||Integer} group to select/deselect + */ + selectGroup (selectedGroup) { + const group = this.options.find((option) => { + return option[this.groupLabel] === selectedGroup.$groupLabel + }); + + if (!group) return + + if (this.wholeGroupSelected(group)) { + this.$emit('remove', group[this.groupValues], this.id); + + const groupValues = this.trackBy ? group[this.groupValues].map(val => val[this.trackBy]) : group[this.groupValues]; + const newValue = this.internalValue.filter( + option => groupValues.indexOf(this.trackBy ? option[this.trackBy] : option) === -1 + ); + + this.$emit('update:modelValue', newValue); + } else { + let optionsToAdd = group[this.groupValues].filter( + option => !(this.isOptionDisabled(option) || this.isSelected(option)) + ); + + // if max is defined then just select options respecting max + if (this.max) { + optionsToAdd.splice(this.max - this.internalValue.length); + } + + this.$emit('select', optionsToAdd, this.id); + this.$emit( + 'update:modelValue', + this.internalValue.concat(optionsToAdd) + ); + } + + if (this.closeOnSelect) this.deactivate(); + }, + /** + * Helper to identify if all values in a group are selected + * + * @param {Object} group to validated selected values against + */ + wholeGroupSelected (group) { + return group[this.groupValues].every((option) => this.isSelected(option) || this.isOptionDisabled(option) + ) + }, + /** + * Helper to identify if all values in a group are disabled + * + * @param {Object} group to check for disabled values + */ + wholeGroupDisabled (group) { + return group[this.groupValues].every(this.isOptionDisabled) + }, + /** + * Removes the given option from the selected options. + * Additionally checks this.allowEmpty prop if option can be removed when + * it is the last selected option. + * + * @param {type} option description + * @return {type} description + */ + removeElement (option, shouldClose = true) { + /* istanbul ignore else */ + if (this.disabled) return + /* istanbul ignore else */ + if (option.$isDisabled) return + /* istanbul ignore else */ + if (!this.allowEmpty && this.internalValue.length <= 1) { + this.deactivate(); + return + } + + const index = typeof option === 'object' + ? this.valueKeys.indexOf(option[this.trackBy]) + : this.valueKeys.indexOf(option); + + if (this.multiple) { + const newValue = this.internalValue.slice(0, index).concat(this.internalValue.slice(index + 1)); + this.$emit('update:modelValue', newValue); + } else { + this.$emit('update:modelValue', null); + } + this.$emit('remove', option, this.id); + + /* istanbul ignore else */ + if (this.closeOnSelect && shouldClose) this.deactivate(); + }, + /** + * Calls this.removeElement() with the last element + * from this.internalValue (selected element Array) + * + * @fires this#removeElement + */ + removeLastElement () { + /* istanbul ignore else */ + if (this.blockKeys.indexOf('Delete') !== -1) return + /* istanbul ignore else */ + if (this.search.length === 0 && Array.isArray(this.internalValue) && this.internalValue.length) { + this.removeElement(this.internalValue[this.internalValue.length - 1], false); + } + }, + /** + * Opens the multiselect’s dropdown. + * Sets this.isOpen to TRUE + */ + activate () { + /* istanbul ignore else */ + if (this.isOpen || this.disabled) return + + this.adjustPosition(); + /* istanbul ignore else */ + if (this.groupValues && this.pointer === 0 && this.filteredOptions.length) { + this.pointer = 1; + } + + this.isOpen = true; + /* istanbul ignore else */ + if (this.searchable) { + if (!this.preserveSearch) this.search = ''; + if (!this.preventAutofocus) this.$nextTick(() => this.$refs.search && this.$refs.search.focus()); + } else if (!this.preventAutofocus) { + if (typeof this.$el !== 'undefined') this.$el.focus(); + } + this.$emit('open', this.id); + }, + /** + * Closes the multiselect’s dropdown. + * Sets this.isOpen to FALSE + */ + deactivate () { + /* istanbul ignore else */ + if (!this.isOpen) return + + this.isOpen = false; + /* istanbul ignore else */ + if (this.searchable) { + if (this.$refs.search !== null && typeof this.$refs.search !== 'undefined') this.$refs.search.blur(); + } else { + if (typeof this.$el !== 'undefined') this.$el.blur(); + } + if (!this.preserveSearch) this.search = ''; + this.$emit('close', this.getValue(), this.id); + }, + /** + * Call this.activate() or this.deactivate() + * depending on this.isOpen value. + * + * @fires this#activate || this#deactivate + * @property {Boolean} isOpen indicates if dropdown is open + */ + toggle () { + this.isOpen + ? this.deactivate() + : this.activate(); + }, + /** + * Updates the hasEnoughSpace variable used for + * detecting where to expand the dropdown + */ + adjustPosition () { + if (typeof window === 'undefined') return + + const spaceAbove = this.$el.getBoundingClientRect().top; + const spaceBelow = window.innerHeight - this.$el.getBoundingClientRect().bottom; + const hasEnoughSpaceBelow = spaceBelow > this.maxHeight; + + if (hasEnoughSpaceBelow || spaceBelow > spaceAbove || this.openDirection === 'below' || this.openDirection === 'bottom') { + this.preferredOpenDirection = 'below'; + this.optimizedHeight = Math.min(spaceBelow - 40, this.maxHeight); + } else { + this.preferredOpenDirection = 'above'; + this.optimizedHeight = Math.min(spaceAbove - 40, this.maxHeight); + } + } + } + }; + + var pointerMixin = { + data () { + return { + pointer: 0, + pointerDirty: false + } + }, + props: { + /** + * Enable/disable highlighting of the pointed value. + * @type {Boolean} + * @default true + */ + showPointer: { + type: Boolean, + default: true + }, + optionHeight: { + type: Number, + default: 40 + } + }, + computed: { + pointerPosition () { + return this.pointer * this.optionHeight + }, + visibleElements () { + return this.optimizedHeight / this.optionHeight + } + }, + watch: { + filteredOptions () { + this.pointerAdjust(); + }, + isOpen () { + this.pointerDirty = false; + }, + pointer () { + this.$refs.search && this.$refs.search.setAttribute('aria-activedescendant', this.id + '-' + this.pointer.toString()); + } + }, + methods: { + optionHighlight (index, option) { + return { + 'multiselect__option--highlight': index === this.pointer && this.showPointer, + 'multiselect__option--selected': this.isSelected(option) + } + }, + groupHighlight (index, selectedGroup) { + if (!this.groupSelect) { + return [ + 'multiselect__option--disabled', + {'multiselect__option--group': selectedGroup.$isLabel} + ] + } + + const group = this.options.find((option) => { + return option[this.groupLabel] === selectedGroup.$groupLabel + }); + + return group && !this.wholeGroupDisabled(group) ? [ + 'multiselect__option--group', + {'multiselect__option--highlight': index === this.pointer && this.showPointer}, + {'multiselect__option--group-selected': this.wholeGroupSelected(group)} + ] : 'multiselect__option--disabled' + }, + addPointerElement ({key} = 'Enter') { + /* istanbul ignore else */ + if (this.filteredOptions.length > 0) { + this.select(this.filteredOptions[this.pointer], key); + } + this.pointerReset(); + }, + pointerForward () { + /* istanbul ignore else */ + if (this.pointer < this.filteredOptions.length - 1) { + this.pointer++; + /* istanbul ignore next */ + if (this.$refs.list.scrollTop <= this.pointerPosition - (this.visibleElements - 1) * this.optionHeight) { + this.$refs.list.scrollTop = this.pointerPosition - (this.visibleElements - 1) * this.optionHeight; + } + /* istanbul ignore else */ + if ( + this.filteredOptions[this.pointer] && + this.filteredOptions[this.pointer].$isLabel && + !this.groupSelect + ) this.pointerForward(); + } + this.pointerDirty = true; + }, + pointerBackward () { + if (this.pointer > 0) { + this.pointer--; + /* istanbul ignore else */ + if (this.$refs.list.scrollTop >= this.pointerPosition) { + this.$refs.list.scrollTop = this.pointerPosition; + } + /* istanbul ignore else */ + if ( + this.filteredOptions[this.pointer] && + this.filteredOptions[this.pointer].$isLabel && + !this.groupSelect + ) this.pointerBackward(); + } else { + /* istanbul ignore else */ + if ( + this.filteredOptions[this.pointer] && + this.filteredOptions[0].$isLabel && + !this.groupSelect + ) this.pointerForward(); + } + this.pointerDirty = true; + }, + pointerReset () { + /* istanbul ignore else */ + if (!this.closeOnSelect) return + this.pointer = 0; + /* istanbul ignore else */ + if (this.$refs.list) { + this.$refs.list.scrollTop = 0; + } + }, + pointerAdjust () { + /* istanbul ignore else */ + if (this.pointer >= this.filteredOptions.length - 1) { + this.pointer = this.filteredOptions.length + ? this.filteredOptions.length - 1 + : 0; + } + + if (this.filteredOptions.length > 0 && + this.filteredOptions[this.pointer].$isLabel && + !this.groupSelect + ) { + this.pointerForward(); + } + }, + pointerSet (index) { + this.pointer = index; + this.pointerDirty = true; + } + } + }; + + var script = { + name: 'vue-multiselect', + mixins: [multiselectMixin, pointerMixin], + compatConfig: { + MODE: 3, + ATTR_ENUMERATED_COERCION: false + }, + props: { + /** + * name attribute to match optional label element + * @default '' + * @type {String} + */ + name: { + type: String, + default: '' + }, + /** + * Presets the selected options value. + * @type {Object||Array||String||Integer} + */ + modelValue: { + type: null, + default () { + return [] + } + }, + /** + * String to show when pointing to an option + * @default 'Press enter to select' + * @type {String} + */ + selectLabel: { + type: String, + default: 'Press enter to select' + }, + /** + * String to show when pointing to an option + * @default 'Press enter to select' + * @type {String} + */ + selectGroupLabel: { + type: String, + default: 'Press enter to select group' + }, + /** + * String to show next to selected option + * @default 'Selected' + * @type {String} + */ + selectedLabel: { + type: String, + default: 'Selected' + }, + /** + * String to show when pointing to an already selected option + * @default 'Press enter to remove' + * @type {String} + */ + deselectLabel: { + type: String, + default: 'Press enter to remove' + }, + /** + * String to show when pointing to an already selected option + * @default 'Press enter to remove' + * @type {String} + */ + deselectGroupLabel: { + type: String, + default: 'Press enter to deselect group' + }, + /** + * Decide whether to show pointer labels + * @default true + * @type {Boolean} + */ + showLabels: { + type: Boolean, + default: true + }, + /** + * Limit the display of selected options. The rest will be hidden within the limitText string. + * @default 99999 + * @type {Integer} + */ + limit: { + type: Number, + default: 99999 + }, + /** + * Sets maxHeight style value of the dropdown + * @default 300 + * @type {Integer} + */ + maxHeight: { + type: Number, + default: 300 + }, + /** + * Function that process the message shown when selected + * elements pass the defined limit. + * @default 'and * more' + * @param {Int} count Number of elements more than limit + * @type {Function} + */ + limitText: { + type: Function, + default: (count) => `and ${count} more` + }, + /** + * Set true to trigger the loading spinner. + * @default False + * @type {Boolean} + */ + loading: { + type: Boolean, + default: false + }, + /** + * Disables the multiselect if true. + * @default false + * @type {Boolean} + */ + disabled: { + type: Boolean, + default: false + }, + /** + * Fixed opening direction + * @default '' + * @type {String} + */ + openDirection: { + type: String, + default: '' + }, + /** + * Shows slot with message about empty options + * @default true + * @type {Boolean} + */ + showNoOptions: { + type: Boolean, + default: true + }, + showNoResults: { + type: Boolean, + default: true + }, + tabindex: { + type: Number, + default: 0 + } + }, + computed: { + hasOptionGroup () { + return this.groupValues && this.groupLabel && this.groupSelect + }, + isSingleLabelVisible () { + return ( + (this.singleValue || this.singleValue === 0) && + (!this.isOpen || !this.searchable) && + !this.visibleValues.length + ) + }, + isPlaceholderVisible () { + return !this.internalValue.length && (!this.searchable || !this.isOpen) + }, + visibleValues () { + return this.multiple ? this.internalValue.slice(0, this.limit) : [] + }, + singleValue () { + return this.internalValue[0] + }, + deselectLabelText () { + return this.showLabels ? this.deselectLabel : '' + }, + deselectGroupLabelText () { + return this.showLabels ? this.deselectGroupLabel : '' + }, + selectLabelText () { + return this.showLabels ? this.selectLabel : '' + }, + selectGroupLabelText () { + return this.showLabels ? this.selectGroupLabel : '' + }, + selectedLabelText () { + return this.showLabels ? this.selectedLabel : '' + }, + inputStyle () { + if ( + this.searchable || + (this.multiple && this.modelValue && this.modelValue.length) + ) { + // Hide input by setting the width to 0 allowing it to receive focus + return this.isOpen + ? {width: '100%'} + : {width: '0', position: 'absolute', padding: '0'} + } + return '' + }, + contentStyle () { + return this.options.length + ? {display: 'inline-block'} + : {display: 'block'} + }, + isAbove () { + if (this.openDirection === 'above' || this.openDirection === 'top') { + return true + } else if ( + this.openDirection === 'below' || + this.openDirection === 'bottom' + ) { + return false + } else { + return this.preferredOpenDirection === 'above' + } + }, + showSearchInput () { + return ( + this.searchable && + (this.hasSingleSelectedSlot && + (this.visibleSingleValue || this.visibleSingleValue === 0) + ? this.isOpen + : true) + ) + } + } + }; + + const _hoisted_1 = { + ref: "tags", + class: "multiselect__tags" + }; + const _hoisted_2 = { class: "multiselect__tags-wrap" }; + const _hoisted_3 = { class: "multiselect__spinner" }; + const _hoisted_4 = { key: 0 }; + const _hoisted_5 = { class: "multiselect__option" }; + const _hoisted_6 = { class: "multiselect__option" }; + const _hoisted_7 = /*#__PURE__*/vue.createTextVNode("No elements found. Consider changing the search query."); + const _hoisted_8 = { class: "multiselect__option" }; + const _hoisted_9 = /*#__PURE__*/vue.createTextVNode("List is empty."); + + function render(_ctx, _cache, $props, $setup, $data, $options) { + return (vue.openBlock(), vue.createBlock("div", { + tabindex: _ctx.searchable ? -1 : $props.tabindex, + class: [{ 'multiselect--active': _ctx.isOpen, 'multiselect--disabled': $props.disabled, 'multiselect--above': $options.isAbove, 'multiselect--has-options-group': $options.hasOptionGroup }, "multiselect"], + onFocus: _cache[14] || (_cache[14] = $event => (_ctx.activate())), + onBlur: _cache[15] || (_cache[15] = $event => (_ctx.searchable ? false : _ctx.deactivate())), + onKeydown: [ + _cache[16] || (_cache[16] = vue.withKeys(vue.withModifiers($event => (_ctx.pointerForward()), ["self","prevent"]), ["down"])), + _cache[17] || (_cache[17] = vue.withKeys(vue.withModifiers($event => (_ctx.pointerBackward()), ["self","prevent"]), ["up"])) + ], + onKeypress: _cache[18] || (_cache[18] = vue.withKeys(vue.withModifiers($event => (_ctx.addPointerElement($event)), ["stop","self"]), ["enter","tab"])), + onKeyup: _cache[19] || (_cache[19] = vue.withKeys($event => (_ctx.deactivate()), ["esc"])), + role: "combobox", + "aria-owns": 'listbox-'+_ctx.id + }, [ + vue.renderSlot(_ctx.$slots, "caret", { toggle: _ctx.toggle }, () => [ + vue.createVNode("div", { + onMousedown: _cache[1] || (_cache[1] = vue.withModifiers($event => (_ctx.toggle()), ["prevent","stop"])), + class: "multiselect__select" + }, null, 32 /* HYDRATE_EVENTS */) + ]), + vue.renderSlot(_ctx.$slots, "clear", { search: _ctx.search }), + vue.createVNode("div", _hoisted_1, [ + vue.renderSlot(_ctx.$slots, "selection", { + search: _ctx.search, + remove: _ctx.removeElement, + values: $options.visibleValues, + isOpen: _ctx.isOpen + }, () => [ + vue.withDirectives(vue.createVNode("div", _hoisted_2, [ + (vue.openBlock(true), vue.createBlock(vue.Fragment, null, vue.renderList($options.visibleValues, (option, index) => { + return vue.renderSlot(_ctx.$slots, "tag", { + option: option, + search: _ctx.search, + remove: _ctx.removeElement + }, () => [ + (vue.openBlock(), vue.createBlock("span", { + class: "multiselect__tag", + key: index + }, [ + vue.createVNode("span", { + textContent: vue.toDisplayString(_ctx.getOptionLabel(option)) + }, null, 8 /* PROPS */, ["textContent"]), + vue.createVNode("i", { + tabindex: "1", + onKeypress: vue.withKeys(vue.withModifiers($event => (_ctx.removeElement(option)), ["prevent"]), ["enter"]), + onMousedown: vue.withModifiers($event => (_ctx.removeElement(option)), ["prevent"]), + class: "multiselect__tag-icon" + }, null, 40 /* PROPS, HYDRATE_EVENTS */, ["onKeypress", "onMousedown"]) + ])) + ]) + }), 256 /* UNKEYED_FRAGMENT */)) + ], 512 /* NEED_PATCH */), [ + [vue.vShow, $options.visibleValues.length > 0] + ]), + (_ctx.internalValue && _ctx.internalValue.length > $props.limit) + ? vue.renderSlot(_ctx.$slots, "limit", { key: 0 }, () => [ + vue.createVNode("strong", { + class: "multiselect__strong", + textContent: vue.toDisplayString($props.limitText(_ctx.internalValue.length - $props.limit)) + }, null, 8 /* PROPS */, ["textContent"]) + ]) + : vue.createCommentVNode("v-if", true) + ]), + vue.createVNode(vue.Transition, { name: "multiselect__loading" }, { + default: vue.withCtx(() => [ + vue.renderSlot(_ctx.$slots, "loading", {}, () => [ + vue.withDirectives(vue.createVNode("div", _hoisted_3, null, 512 /* NEED_PATCH */), [ + [vue.vShow, $props.loading] + ]) + ]) + ]), + _: 3 /* FORWARDED */ + }), + (_ctx.searchable) + ? (vue.openBlock(), vue.createBlock("input", { + key: 0, + ref: "search", + name: $props.name, + id: _ctx.id, + type: "text", + autocomplete: "off", + spellcheck: false, + placeholder: _ctx.placeholder, + style: $options.inputStyle, + value: _ctx.search, + disabled: $props.disabled, + tabindex: $props.tabindex, + onInput: _cache[2] || (_cache[2] = $event => (_ctx.updateSearch($event.target.value))), + onFocus: _cache[3] || (_cache[3] = vue.withModifiers($event => (_ctx.activate()), ["prevent"])), + onBlur: _cache[4] || (_cache[4] = vue.withModifiers($event => (_ctx.deactivate()), ["prevent"])), + onKeyup: _cache[5] || (_cache[5] = vue.withKeys($event => (_ctx.deactivate()), ["esc"])), + onKeydown: [ + _cache[6] || (_cache[6] = vue.withKeys(vue.withModifiers($event => (_ctx.pointerForward()), ["prevent"]), ["down"])), + _cache[7] || (_cache[7] = vue.withKeys(vue.withModifiers($event => (_ctx.pointerBackward()), ["prevent"]), ["up"])), + _cache[9] || (_cache[9] = vue.withKeys(vue.withModifiers($event => (_ctx.removeLastElement()), ["stop"]), ["delete"])) + ], + onKeypress: _cache[8] || (_cache[8] = vue.withKeys(vue.withModifiers($event => (_ctx.addPointerElement($event)), ["prevent","stop","self"]), ["enter"])), + class: "multiselect__input", + "aria-controls": 'listbox-'+_ctx.id + }, null, 44 /* STYLE, PROPS, HYDRATE_EVENTS */, ["name", "id", "placeholder", "value", "disabled", "tabindex", "aria-controls"])) + : vue.createCommentVNode("v-if", true), + ($options.isSingleLabelVisible) + ? (vue.openBlock(), vue.createBlock("span", { + key: 1, + class: "multiselect__single", + onMousedown: _cache[10] || (_cache[10] = vue.withModifiers((...args) => (_ctx.toggle && _ctx.toggle(...args)), ["prevent"])) + }, [ + vue.renderSlot(_ctx.$slots, "singleLabel", { option: $options.singleValue }, () => [ + vue.createTextVNode(vue.toDisplayString(_ctx.currentOptionLabel), 1 /* TEXT */) + ]) + ], 32 /* HYDRATE_EVENTS */)) + : vue.createCommentVNode("v-if", true), + ($options.isPlaceholderVisible) + ? (vue.openBlock(), vue.createBlock("span", { + key: 2, + class: "multiselect__placeholder", + onMousedown: _cache[11] || (_cache[11] = vue.withModifiers((...args) => (_ctx.toggle && _ctx.toggle(...args)), ["prevent"])) + }, [ + vue.renderSlot(_ctx.$slots, "placeholder", {}, () => [ + vue.createTextVNode(vue.toDisplayString(_ctx.placeholder), 1 /* TEXT */) + ]) + ], 32 /* HYDRATE_EVENTS */)) + : vue.createCommentVNode("v-if", true) + ], 512 /* NEED_PATCH */), + vue.createVNode(vue.Transition, { name: "multiselect" }, { + default: vue.withCtx(() => [ + vue.withDirectives(vue.createVNode("div", { + class: "multiselect__content-wrapper", + onFocus: _cache[12] || (_cache[12] = (...args) => (_ctx.activate && _ctx.activate(...args))), + tabindex: "-1", + onMousedown: _cache[13] || (_cache[13] = vue.withModifiers(() => {}, ["prevent"])), + style: { maxHeight: _ctx.optimizedHeight + 'px' }, + ref: "list" + }, [ + vue.createVNode("ul", { + class: "multiselect__content", + style: $options.contentStyle, + role: "listbox", + id: 'listbox-'+_ctx.id + }, [ + vue.renderSlot(_ctx.$slots, "beforeList"), + (_ctx.multiple && _ctx.max === _ctx.internalValue.length) + ? (vue.openBlock(), vue.createBlock("li", _hoisted_4, [ + vue.createVNode("span", _hoisted_5, [ + vue.renderSlot(_ctx.$slots, "maxElements", {}, () => [ + vue.createTextVNode("Maximum of " + vue.toDisplayString(_ctx.max) + " options selected. First remove a selected option to select another.", 1 /* TEXT */) + ]) + ]) + ])) + : vue.createCommentVNode("v-if", true), + (!_ctx.max || _ctx.internalValue.length < _ctx.max) + ? (vue.openBlock(true), vue.createBlock(vue.Fragment, { key: 1 }, vue.renderList(_ctx.filteredOptions, (option, index) => { + return (vue.openBlock(), vue.createBlock("li", { + class: "multiselect__element", + key: index, + id: _ctx.id + '-' + index, + role: !(option && (option.$isLabel || option.$isDisabled)) ? 'option' : null + }, [ + (!(option && (option.$isLabel || option.$isDisabled))) + ? (vue.openBlock(), vue.createBlock("span", { + key: 0, + class: [_ctx.optionHighlight(index, option), "multiselect__option"], + onClick: vue.withModifiers($event => (_ctx.select(option)), ["stop"]), + onMouseenter: vue.withModifiers($event => (_ctx.pointerSet(index)), ["self"]), + "data-select": option && option.isTag ? _ctx.tagPlaceholder : $options.selectLabelText, + "data-selected": $options.selectedLabelText, + "data-deselect": $options.deselectLabelText + }, [ + vue.renderSlot(_ctx.$slots, "option", { + option: option, + search: _ctx.search, + index: index + }, () => [ + vue.createVNode("span", null, vue.toDisplayString(_ctx.getOptionLabel(option)), 1 /* TEXT */) + ]) + ], 42 /* CLASS, PROPS, HYDRATE_EVENTS */, ["onClick", "onMouseenter", "data-select", "data-selected", "data-deselect"])) + : vue.createCommentVNode("v-if", true), + (option && (option.$isLabel || option.$isDisabled)) + ? (vue.openBlock(), vue.createBlock("span", { + key: 1, + "data-select": _ctx.groupSelect && $options.selectGroupLabelText, + "data-deselect": _ctx.groupSelect && $options.deselectGroupLabelText, + class: [_ctx.groupHighlight(index, option), "multiselect__option"], + onMouseenter: vue.withModifiers($event => (_ctx.groupSelect && _ctx.pointerSet(index)), ["self"]), + onMousedown: vue.withModifiers($event => (_ctx.selectGroup(option)), ["prevent"]) + }, [ + vue.renderSlot(_ctx.$slots, "option", { + option: option, + search: _ctx.search, + index: index + }, () => [ + vue.createVNode("span", null, vue.toDisplayString(_ctx.getOptionLabel(option)), 1 /* TEXT */) + ]) + ], 42 /* CLASS, PROPS, HYDRATE_EVENTS */, ["data-select", "data-deselect", "onMouseenter", "onMousedown"])) + : vue.createCommentVNode("v-if", true) + ], 8 /* PROPS */, ["id", "role"])) + }), 128 /* KEYED_FRAGMENT */)) + : vue.createCommentVNode("v-if", true), + vue.withDirectives(vue.createVNode("li", null, [ + vue.createVNode("span", _hoisted_6, [ + vue.renderSlot(_ctx.$slots, "noResult", { search: _ctx.search }, () => [ + _hoisted_7 + ]) + ]) + ], 512 /* NEED_PATCH */), [ + [vue.vShow, $props.showNoResults && (_ctx.filteredOptions.length === 0 && _ctx.search && !$props.loading)] + ]), + vue.withDirectives(vue.createVNode("li", null, [ + vue.createVNode("span", _hoisted_8, [ + vue.renderSlot(_ctx.$slots, "noOptions", {}, () => [ + _hoisted_9 + ]) + ]) + ], 512 /* NEED_PATCH */), [ + [vue.vShow, $props.showNoOptions && ((_ctx.options.length === 0 || ($options.hasOptionGroup === true && _ctx.filteredOptions.length === 0)) && !_ctx.search && !$props.loading)] + ]), + vue.renderSlot(_ctx.$slots, "afterList") + ], 12 /* STYLE, PROPS */, ["id"]) + ], 36 /* STYLE, HYDRATE_EVENTS */), [ + [vue.vShow, _ctx.isOpen] + ]) + ]), + _: 3 /* FORWARDED */ + }) + ], 42 /* CLASS, PROPS, HYDRATE_EVENTS */, ["tabindex", "aria-owns"])) + } + + script.render = render; + + exports.Multiselect = script; + exports.default = script; + exports.multiselectMixin = multiselectMixin; + exports.pointerMixin = pointerMixin; + + Object.defineProperty(exports, '__esModule', { value: true }); + + return exports; + +}({}, Vue)); diff --git a/dist/vue-multiselect.min.css b/dist/vue-multiselect.min.css deleted file mode 100644 index 00f94045..00000000 --- a/dist/vue-multiselect.min.css +++ /dev/null @@ -1 +0,0 @@ -fieldset[disabled] .multiselect{pointer-events:none}.multiselect__spinner{position:absolute;right:1px;top:1px;width:40px;height:38px;background:#fff;display:block}.multiselect__spinner:after,.multiselect__spinner:before{position:absolute;content:"";top:50%;left:50%;margin:-8px 0 0 -8px;width:16px;height:16px;border-radius:100%;border:2px solid transparent;border-top-color:#41b883;-webkit-box-shadow:0 0 0 1px transparent;box-shadow:0 0 0 1px transparent}.multiselect__spinner:before{-webkit-animation:spinning 2.4s cubic-bezier(.41,.26,.2,.62);animation:spinning 2.4s cubic-bezier(.41,.26,.2,.62);-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.multiselect__spinner:after{-webkit-animation:spinning 2.4s cubic-bezier(.51,.09,.21,.8);animation:spinning 2.4s cubic-bezier(.51,.09,.21,.8);-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.multiselect__loading-enter-active,.multiselect__loading-leave-active{-webkit-transition:opacity .4s ease-in-out;transition:opacity .4s ease-in-out;opacity:1}.multiselect__loading-enter,.multiselect__loading-leave-active{opacity:0}.multiselect,.multiselect__input,.multiselect__single{font-family:inherit;font-size:16px;-ms-touch-action:manipulation;touch-action:manipulation}.multiselect{-webkit-box-sizing:content-box;box-sizing:content-box;display:block;position:relative;width:100%;min-height:40px;text-align:left;color:#35495e}.multiselect *{-webkit-box-sizing:border-box;box-sizing:border-box}.multiselect:focus{outline:none}.multiselect--disabled{background:#ededed;pointer-events:none;opacity:.6}.multiselect--active{z-index:50}.multiselect--active:not(.multiselect--above) .multiselect__current,.multiselect--active:not(.multiselect--above) .multiselect__input,.multiselect--active:not(.multiselect--above) .multiselect__tags{border-bottom-left-radius:0;border-bottom-right-radius:0}.multiselect--active .multiselect__select{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.multiselect--above.multiselect--active .multiselect__current,.multiselect--above.multiselect--active .multiselect__input,.multiselect--above.multiselect--active .multiselect__tags{border-top-left-radius:0;border-top-right-radius:0}.multiselect__input,.multiselect__single{position:relative;display:inline-block;min-height:20px;line-height:20px;border:none;border-radius:5px;background:#fff;padding:0 0 0 5px;width:100%;-webkit-transition:border .1s ease;transition:border .1s ease;-webkit-box-sizing:border-box;box-sizing:border-box;margin-bottom:8px;vertical-align:top}.multiselect__input::-webkit-input-placeholder{color:#35495e}.multiselect__input::-moz-placeholder{color:#35495e}.multiselect__input:-ms-input-placeholder{color:#35495e}.multiselect__input::-ms-input-placeholder{color:#35495e}.multiselect__input::placeholder{color:#35495e}.multiselect__tag~.multiselect__input,.multiselect__tag~.multiselect__single{width:auto}.multiselect__input:hover,.multiselect__single:hover{border-color:#cfcfcf}.multiselect__input:focus,.multiselect__single:focus{border-color:#a8a8a8;outline:none}.multiselect__single{padding-left:5px;margin-bottom:8px}.multiselect__tags-wrap{display:inline}.multiselect__tags{min-height:40px;display:block;padding:8px 40px 0 8px;border-radius:5px;border:1px solid #e8e8e8;background:#fff;font-size:14px}.multiselect__tag{position:relative;display:inline-block;padding:4px 26px 4px 10px;border-radius:5px;margin-right:10px;color:#fff;line-height:1;background:#41b883;margin-bottom:5px;white-space:nowrap;overflow:hidden;max-width:100%;text-overflow:ellipsis}.multiselect__tag-icon{cursor:pointer;margin-left:7px;position:absolute;right:0;top:0;bottom:0;font-weight:700;font-style:normal;width:22px;text-align:center;line-height:22px;-webkit-transition:all .2s ease;transition:all .2s ease;border-radius:5px}.multiselect__tag-icon:after{content:"\D7";color:#266d4d;font-size:14px}.multiselect__tag-icon:focus,.multiselect__tag-icon:hover{background:#369a6e}.multiselect__tag-icon:focus:after,.multiselect__tag-icon:hover:after{color:#fff}.multiselect__current{min-height:40px;overflow:hidden;padding:8px 30px 0 12px;white-space:nowrap;border-radius:5px;border:1px solid #e8e8e8}.multiselect__current,.multiselect__select{line-height:16px;-webkit-box-sizing:border-box;box-sizing:border-box;display:block;margin:0;text-decoration:none;cursor:pointer}.multiselect__select{position:absolute;width:40px;height:38px;right:1px;top:1px;padding:4px 8px;text-align:center;-webkit-transition:-webkit-transform .2s ease;transition:-webkit-transform .2s ease;transition:transform .2s ease;transition:transform .2s ease,-webkit-transform .2s ease}.multiselect__select:before{position:relative;right:0;top:65%;color:#999;margin-top:4px;border-color:#999 transparent transparent;border-style:solid;border-width:5px 5px 0;content:""}.multiselect__placeholder{color:#adadad;display:inline-block;margin-bottom:10px;padding-top:2px}.multiselect--active .multiselect__placeholder{display:none}.multiselect__content-wrapper{position:absolute;display:block;background:#fff;width:100%;max-height:240px;overflow:auto;border:1px solid #e8e8e8;border-top:none;border-bottom-left-radius:5px;border-bottom-right-radius:5px;z-index:50;-webkit-overflow-scrolling:touch}.multiselect__content{list-style:none;display:inline-block;padding:0;margin:0;min-width:100%;vertical-align:top}.multiselect--above .multiselect__content-wrapper{bottom:100%;border-bottom-left-radius:0;border-bottom-right-radius:0;border-top-left-radius:5px;border-top-right-radius:5px;border-bottom:none;border-top:1px solid #e8e8e8}.multiselect__content::webkit-scrollbar{display:none}.multiselect__element{display:block}.multiselect__option{display:block;padding:12px;min-height:40px;line-height:16px;text-decoration:none;text-transform:none;vertical-align:middle;position:relative;cursor:pointer;white-space:nowrap}.multiselect__option:after{top:0;right:0;position:absolute;line-height:40px;padding-right:12px;padding-left:20px;font-size:13px}.multiselect__option--highlight{background:#41b883;outline:none;color:#fff}.multiselect__option--highlight:after{content:attr(data-select);background:#41b883;color:#fff}.multiselect__option--selected{background:#f3f3f3;color:#35495e;font-weight:700}.multiselect__option--selected:after{content:attr(data-selected);color:silver;background:inherit}.multiselect__option--selected.multiselect__option--highlight{background:#ff6a6a;color:#fff}.multiselect__option--selected.multiselect__option--highlight:after{background:#ff6a6a;content:attr(data-deselect);color:#fff}.multiselect--disabled .multiselect__current,.multiselect--disabled .multiselect__select{background:#ededed;color:#a6a6a6}.multiselect__option--disabled{background:#ededed!important;color:#a6a6a6!important;cursor:text;pointer-events:none}.multiselect__option--group{background:#ededed;color:#35495e}.multiselect__option--group.multiselect__option--highlight{background:#35495e;color:#fff}.multiselect__option--group.multiselect__option--highlight:after{background:#35495e}.multiselect__option--disabled.multiselect__option--highlight{background:#dedede}.multiselect__option--group-selected.multiselect__option--highlight{background:#ff6a6a;color:#fff}.multiselect__option--group-selected.multiselect__option--highlight:after{background:#ff6a6a;content:attr(data-deselect);color:#fff}.multiselect-enter-active,.multiselect-leave-active{-webkit-transition:all .15s ease;transition:all .15s ease}.multiselect-enter,.multiselect-leave-active{opacity:0}.multiselect__strong{margin-bottom:8px;line-height:20px;display:inline-block;vertical-align:top}[dir=rtl] .multiselect{text-align:right}[dir=rtl] .multiselect__select{right:auto;left:1px}[dir=rtl] .multiselect__tags{padding:8px 8px 0 40px}[dir=rtl] .multiselect__content{text-align:right}[dir=rtl] .multiselect__option:after{right:auto;left:0}[dir=rtl] .multiselect__clear{right:auto;left:12px}[dir=rtl] .multiselect__spinner{right:auto;left:1px}@-webkit-keyframes spinning{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(2turn);transform:rotate(2turn)}}@keyframes spinning{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(2turn);transform:rotate(2turn)}} \ No newline at end of file diff --git a/dist/vue-multiselect.min.css.map b/dist/vue-multiselect.min.css.map deleted file mode 100644 index 86e7b4e1..00000000 --- a/dist/vue-multiselect.min.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///./src/Multiselect.vue"],"names":[],"mappings":";AACA;EACE,qBAAqB;CACtB;AACD;EACE,mBAAmB;EACnB,WAAW;EACX,SAAS;EACT,YAAY;EACZ,aAAa;EACb,iBAAiB;EACjB,eAAe;CAChB;AACD;;EAEE,mBAAmB;EACnB,YAAY;EACZ,SAAS;EACT,UAAU;EACV,sBAAsB;EACtB,YAAY;EACZ,aAAa;EACb,oBAAoB;EACpB,8CAA8C;EAC9C,oBAAoB;EACpB,kBAAkB;EAClB,0CAA0C;UAClC,kCAAkC;CAC3C;AACD;EACE,qEAAqE;UAC7D,6DAA6D;EACrE,4CAA4C;UACpC,oCAAoC;CAC7C;AACD;EACE,qEAAqE;UAC7D,6DAA6D;EACrE,4CAA4C;UACpC,oCAAoC;CAC7C;AACD;;EAEE,6CAA6C;EAC7C,qCAAqC;EACrC,WAAW;CACZ;AACD;;EAEE,WAAW;CACZ;AACD;;;EAGE,qBAAqB;EACrB,gBAAgB;EAChB,+BAA+B;MAC3B,2BAA2B;CAChC;AACD;EACE,gCAAgC;UACxB,wBAAwB;EAChC,eAAe;EACf,mBAAmB;EACnB,YAAY;EACZ,iBAAiB;EACjB,iBAAiB;EACjB,eAAe;CAChB;AACD;EACE,+BAA+B;UACvB,uBAAuB;CAChC;AACD;EACE,cAAc;CACf;AACD;EACE,oBAAoB;EACpB,qBAAqB;EACrB,aAAa;CACd;AACD;EACE,YAAY;CACb;AACD;;;EAGE,6BAA6B;EAC7B,8BAA8B;CAC/B;AACD;EACE,mCAAmC;UAC3B,2BAA2B;CACpC;AACD;;;EAGE,0BAA0B;EAC1B,2BAA2B;CAC5B;AACD;;EAEE,mBAAmB;EACnB,sBAAsB;EACtB,iBAAiB;EACjB,kBAAkB;EAClB,aAAa;EACb,mBAAmB;EACnB,iBAAiB;EACjB,mBAAmB;EACnB,kBAAkB;EAClB,qCAAqC;EACrC,6BAA6B;EAC7B,+BAA+B;UACvB,uBAAuB;EAC/B,mBAAmB;EACnB,oBAAoB;CACrB;AACD;EACE,eAAe;CAChB;AACD;EACE,eAAe;CAChB;AACD;EACE,eAAe;CAChB;AACD;EACE,eAAe;CAChB;AACD;EACE,eAAe;CAChB;AACD;;EAEE,YAAY;CACb;AACD;;EAEE,sBAAsB;CACvB;AACD;;EAEE,sBAAsB;EACtB,cAAc;CACf;AACD;EACE,kBAAkB;EAClB,mBAAmB;CACpB;AACD;EACE,gBAAgB;CACjB;AACD;EACE,iBAAiB;EACjB,eAAe;EACf,wBAAwB;EACxB,mBAAmB;EACnB,0BAA0B;EAC1B,iBAAiB;EACjB,gBAAgB;CACjB;AACD;EACE,mBAAmB;EACnB,sBAAsB;EACtB,2BAA2B;EAC3B,mBAAmB;EACnB,mBAAmB;EACnB,YAAY;EACZ,eAAe;EACf,oBAAoB;EACpB,mBAAmB;EACnB,oBAAoB;EACpB,iBAAiB;EACjB,gBAAgB;EAChB,wBAAwB;CACzB;AACD;EACE,gBAAgB;EAChB,iBAAiB;EACjB,mBAAmB;EACnB,SAAS;EACT,OAAO;EACP,UAAU;EACV,iBAAiB;EACjB,oBAAoB;EACpB,YAAY;EACZ,mBAAmB;EACnB,kBAAkB;EAClB,kCAAkC;EAClC,0BAA0B;EAC1B,mBAAmB;CACpB;AACD;EACE,eAAa;EACb,eAAe;EACf,gBAAgB;CACjB;AACD;;EAEE,oBAAoB;CACrB;AACD;;EAEE,aAAa;CACd;AACD;EACE,kBAAkB;EAClB,iBAAiB;EACjB,+BAA+B;UACvB,uBAAuB;EAC/B,eAAe;EACf,iBAAiB;EACjB,oBAAoB;EACpB,oBAAoB;EACpB,oBAAoB;EACpB,UAAU;EACV,sBAAsB;EACtB,mBAAmB;EACnB,0BAA0B;EAC1B,gBAAgB;CACjB;AACD;EACE,kBAAkB;EAClB,eAAe;EACf,mBAAmB;EACnB,+BAA+B;UACvB,uBAAuB;EAC/B,YAAY;EACZ,aAAa;EACb,WAAW;EACX,SAAS;EACT,iBAAiB;EACjB,UAAU;EACV,sBAAsB;EACtB,mBAAmB;EACnB,gBAAgB;EAChB,gDAAgD;EAChD,wCAAwC;EACxC,gCAAgC;EAChC,6DAA6D;CAC9D;AACD;EACE,mBAAmB;EACnB,SAAS;EACT,SAAS;EACT,YAAY;EACZ,gBAAgB;EAChB,oBAAoB;EACpB,4BAA4B;EAC5B,0DAA0D;EAC1D,YAAY;CACb;AACD;EACE,eAAe;EACf,sBAAsB;EACtB,oBAAoB;EACpB,iBAAiB;CAClB;AACD;EACE,cAAc;CACf;AACD;EACE,mBAAmB;EACnB,eAAe;EACf,iBAAiB;EACjB,YAAY;EACZ,kBAAkB;EAClB,eAAe;EACf,0BAA0B;EAC1B,iBAAiB;EACjB,+BAA+B;EAC/B,gCAAgC;EAChC,YAAY;EACZ,kCAAkC;CACnC;AACD;EACE,iBAAiB;EACjB,sBAAsB;EACtB,WAAW;EACX,UAAU;EACV,gBAAgB;EAChB,oBAAoB;CACrB;AACD;EACE,aAAa;EACb,6BAA6B;EAC7B,8BAA8B;EAC9B,4BAA4B;EAC5B,6BAA6B;EAC7B,oBAAoB;EACpB,8BAA8B;CAC/B;AACD;EACE,cAAc;CACf;AACD;EACE,eAAe;CAChB;AACD;EACE,eAAe;EACf,cAAc;EACd,iBAAiB;EACjB,kBAAkB;EAClB,sBAAsB;EACtB,qBAAqB;EACrB,uBAAuB;EACvB,mBAAmB;EACnB,gBAAgB;EAChB,oBAAoB;CACrB;AACD;EACE,OAAO;EACP,SAAS;EACT,mBAAmB;EACnB,kBAAkB;EAClB,oBAAoB;EACpB,mBAAmB;EACnB,gBAAgB;CACjB;AACD;EACE,oBAAoB;EACpB,cAAc;EACd,aAAa;CACd;AACD;EACE,2BAA2B;EAC3B,oBAAoB;EACpB,aAAa;CACd;AACD;EACE,oBAAoB;EACpB,eAAe;EACf,kBAAkB;CACnB;AACD;EACE,6BAA6B;EAC7B,cAAc;EACd,oBAAoB;CACrB;AACD;EACE,oBAAoB;EACpB,YAAY;CACb;AACD;EACE,oBAAoB;EACpB,6BAA6B;EAC7B,YAAY;CACb;AACD;;EAEE,oBAAoB;EACpB,eAAe;CAChB;AACD;EACE,+BAA+B;EAC/B,0BAA0B;EAC1B,aAAa;EACb,qBAAqB;CACtB;AACD;EACE,oBAAoB;EACpB,eAAe;CAChB;AACD;EACE,oBAAoB;EACpB,YAAY;CACb;AACD;EACE,oBAAoB;CACrB;AACD;EACE,oBAAoB;CACrB;AACD;EACE,oBAAoB;EACpB,YAAY;CACb;AACD;EACE,oBAAoB;EACpB,6BAA6B;EAC7B,YAAY;CACb;AACD;;EAEE,mCAAmC;EACnC,2BAA2B;CAC5B;AACD;;EAEE,WAAW;CACZ;AACD;EACE,mBAAmB;EACnB,kBAAkB;EAClB,sBAAsB;EACtB,oBAAoB;CACrB;AACD;EACE,kBAAkB;CACnB;AACD;EACE,YAAY;EACZ,UAAU;CACX;AACD;EACE,0BAA0B;CAC3B;AACD;EACE,kBAAkB;CACnB;AACD;EACE,YAAY;EACZ,QAAQ;CACT;AACD;EACE,YAAY;EACZ,WAAW;CACZ;AACD;EACE,YAAY;EACZ,UAAU;CACX;AACD;AACA;IACI,6BAA6B;YACrB,qBAAqB;CAChC;AACD;IACI,iCAAiC;YACzB,yBAAyB;CACpC;CACA;AACD;AACA;IACI,6BAA6B;YACrB,qBAAqB;CAChC;AACD;IACI,iCAAiC;YACzB,yBAAyB;CACpC;CACA","file":"vue-multiselect.min.css","sourcesContent":["\nfieldset[disabled] .multiselect {\n pointer-events: none;\n}\n.multiselect__spinner {\n position: absolute;\n right: 1px;\n top: 1px;\n width: 40px;\n height: 38px;\n background: #fff;\n display: block;\n}\n.multiselect__spinner:before,\n.multiselect__spinner:after {\n position: absolute;\n content: \"\";\n top: 50%;\n left: 50%;\n margin: -8px 0 0 -8px;\n width: 16px;\n height: 16px;\n border-radius: 100%;\n border-color: #41b883 transparent transparent;\n border-style: solid;\n border-width: 2px;\n -webkit-box-shadow: 0 0 0 1px transparent;\n box-shadow: 0 0 0 1px transparent;\n}\n.multiselect__spinner:before {\n -webkit-animation: spinning 2.4s cubic-bezier(0.41, 0.26, 0.2, 0.62);\n animation: spinning 2.4s cubic-bezier(0.41, 0.26, 0.2, 0.62);\n -webkit-animation-iteration-count: infinite;\n animation-iteration-count: infinite;\n}\n.multiselect__spinner:after {\n -webkit-animation: spinning 2.4s cubic-bezier(0.51, 0.09, 0.21, 0.8);\n animation: spinning 2.4s cubic-bezier(0.51, 0.09, 0.21, 0.8);\n -webkit-animation-iteration-count: infinite;\n animation-iteration-count: infinite;\n}\n.multiselect__loading-enter-active,\n.multiselect__loading-leave-active {\n -webkit-transition: opacity 0.4s ease-in-out;\n transition: opacity 0.4s ease-in-out;\n opacity: 1;\n}\n.multiselect__loading-enter,\n.multiselect__loading-leave-active {\n opacity: 0;\n}\n.multiselect,\n.multiselect__input,\n.multiselect__single {\n font-family: inherit;\n font-size: 16px;\n -ms-touch-action: manipulation;\n touch-action: manipulation;\n}\n.multiselect {\n -webkit-box-sizing: content-box;\n box-sizing: content-box;\n display: block;\n position: relative;\n width: 100%;\n min-height: 40px;\n text-align: left;\n color: #35495e;\n}\n.multiselect * {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n.multiselect:focus {\n outline: none;\n}\n.multiselect--disabled {\n background: #ededed;\n pointer-events: none;\n opacity: 0.6;\n}\n.multiselect--active {\n z-index: 50;\n}\n.multiselect--active:not(.multiselect--above) .multiselect__current,\n.multiselect--active:not(.multiselect--above) .multiselect__input,\n.multiselect--active:not(.multiselect--above) .multiselect__tags {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n}\n.multiselect--active .multiselect__select {\n -webkit-transform: rotateZ(180deg);\n transform: rotateZ(180deg);\n}\n.multiselect--above.multiselect--active .multiselect__current,\n.multiselect--above.multiselect--active .multiselect__input,\n.multiselect--above.multiselect--active .multiselect__tags {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n.multiselect__input,\n.multiselect__single {\n position: relative;\n display: inline-block;\n min-height: 20px;\n line-height: 20px;\n border: none;\n border-radius: 5px;\n background: #fff;\n padding: 0 0 0 5px;\n width: calc(100%);\n -webkit-transition: border 0.1s ease;\n transition: border 0.1s ease;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n margin-bottom: 8px;\n vertical-align: top;\n}\n.multiselect__input::-webkit-input-placeholder {\n color: #35495e;\n}\n.multiselect__input::-moz-placeholder {\n color: #35495e;\n}\n.multiselect__input:-ms-input-placeholder {\n color: #35495e;\n}\n.multiselect__input::-ms-input-placeholder {\n color: #35495e;\n}\n.multiselect__input::placeholder {\n color: #35495e;\n}\n.multiselect__tag ~ .multiselect__input,\n.multiselect__tag ~ .multiselect__single {\n width: auto;\n}\n.multiselect__input:hover,\n.multiselect__single:hover {\n border-color: #cfcfcf;\n}\n.multiselect__input:focus,\n.multiselect__single:focus {\n border-color: #a8a8a8;\n outline: none;\n}\n.multiselect__single {\n padding-left: 5px;\n margin-bottom: 8px;\n}\n.multiselect__tags-wrap {\n display: inline;\n}\n.multiselect__tags {\n min-height: 40px;\n display: block;\n padding: 8px 40px 0 8px;\n border-radius: 5px;\n border: 1px solid #e8e8e8;\n background: #fff;\n font-size: 14px;\n}\n.multiselect__tag {\n position: relative;\n display: inline-block;\n padding: 4px 26px 4px 10px;\n border-radius: 5px;\n margin-right: 10px;\n color: #fff;\n line-height: 1;\n background: #41b883;\n margin-bottom: 5px;\n white-space: nowrap;\n overflow: hidden;\n max-width: 100%;\n text-overflow: ellipsis;\n}\n.multiselect__tag-icon {\n cursor: pointer;\n margin-left: 7px;\n position: absolute;\n right: 0;\n top: 0;\n bottom: 0;\n font-weight: 700;\n font-style: initial;\n width: 22px;\n text-align: center;\n line-height: 22px;\n -webkit-transition: all 0.2s ease;\n transition: all 0.2s ease;\n border-radius: 5px;\n}\n.multiselect__tag-icon:after {\n content: \"×\";\n color: #266d4d;\n font-size: 14px;\n}\n.multiselect__tag-icon:focus,\n.multiselect__tag-icon:hover {\n background: #369a6e;\n}\n.multiselect__tag-icon:focus:after,\n.multiselect__tag-icon:hover:after {\n color: white;\n}\n.multiselect__current {\n line-height: 16px;\n min-height: 40px;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n display: block;\n overflow: hidden;\n padding: 8px 12px 0;\n padding-right: 30px;\n white-space: nowrap;\n margin: 0;\n text-decoration: none;\n border-radius: 5px;\n border: 1px solid #e8e8e8;\n cursor: pointer;\n}\n.multiselect__select {\n line-height: 16px;\n display: block;\n position: absolute;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n width: 40px;\n height: 38px;\n right: 1px;\n top: 1px;\n padding: 4px 8px;\n margin: 0;\n text-decoration: none;\n text-align: center;\n cursor: pointer;\n -webkit-transition: -webkit-transform 0.2s ease;\n transition: -webkit-transform 0.2s ease;\n transition: transform 0.2s ease;\n transition: transform 0.2s ease, -webkit-transform 0.2s ease;\n}\n.multiselect__select:before {\n position: relative;\n right: 0;\n top: 65%;\n color: #999;\n margin-top: 4px;\n border-style: solid;\n border-width: 5px 5px 0 5px;\n border-color: #999999 transparent transparent transparent;\n content: \"\";\n}\n.multiselect__placeholder {\n color: #adadad;\n display: inline-block;\n margin-bottom: 10px;\n padding-top: 2px;\n}\n.multiselect--active .multiselect__placeholder {\n display: none;\n}\n.multiselect__content-wrapper {\n position: absolute;\n display: block;\n background: #fff;\n width: 100%;\n max-height: 240px;\n overflow: auto;\n border: 1px solid #e8e8e8;\n border-top: none;\n border-bottom-left-radius: 5px;\n border-bottom-right-radius: 5px;\n z-index: 50;\n -webkit-overflow-scrolling: touch;\n}\n.multiselect__content {\n list-style: none;\n display: inline-block;\n padding: 0;\n margin: 0;\n min-width: 100%;\n vertical-align: top;\n}\n.multiselect--above .multiselect__content-wrapper {\n bottom: 100%;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n border-bottom: none;\n border-top: 1px solid #e8e8e8;\n}\n.multiselect__content::webkit-scrollbar {\n display: none;\n}\n.multiselect__element {\n display: block;\n}\n.multiselect__option {\n display: block;\n padding: 12px;\n min-height: 40px;\n line-height: 16px;\n text-decoration: none;\n text-transform: none;\n vertical-align: middle;\n position: relative;\n cursor: pointer;\n white-space: nowrap;\n}\n.multiselect__option:after {\n top: 0;\n right: 0;\n position: absolute;\n line-height: 40px;\n padding-right: 12px;\n padding-left: 20px;\n font-size: 13px;\n}\n.multiselect__option--highlight {\n background: #41b883;\n outline: none;\n color: white;\n}\n.multiselect__option--highlight:after {\n content: attr(data-select);\n background: #41b883;\n color: white;\n}\n.multiselect__option--selected {\n background: #f3f3f3;\n color: #35495e;\n font-weight: bold;\n}\n.multiselect__option--selected:after {\n content: attr(data-selected);\n color: silver;\n background: inherit;\n}\n.multiselect__option--selected.multiselect__option--highlight {\n background: #ff6a6a;\n color: #fff;\n}\n.multiselect__option--selected.multiselect__option--highlight:after {\n background: #ff6a6a;\n content: attr(data-deselect);\n color: #fff;\n}\n.multiselect--disabled .multiselect__current,\n.multiselect--disabled .multiselect__select {\n background: #ededed;\n color: #a6a6a6;\n}\n.multiselect__option--disabled {\n background: #ededed !important;\n color: #a6a6a6 !important;\n cursor: text;\n pointer-events: none;\n}\n.multiselect__option--group {\n background: #ededed;\n color: #35495e;\n}\n.multiselect__option--group.multiselect__option--highlight {\n background: #35495e;\n color: #fff;\n}\n.multiselect__option--group.multiselect__option--highlight:after {\n background: #35495e;\n}\n.multiselect__option--disabled.multiselect__option--highlight {\n background: #dedede;\n}\n.multiselect__option--group-selected.multiselect__option--highlight {\n background: #ff6a6a;\n color: #fff;\n}\n.multiselect__option--group-selected.multiselect__option--highlight:after {\n background: #ff6a6a;\n content: attr(data-deselect);\n color: #fff;\n}\n.multiselect-enter-active,\n.multiselect-leave-active {\n -webkit-transition: all 0.15s ease;\n transition: all 0.15s ease;\n}\n.multiselect-enter,\n.multiselect-leave-active {\n opacity: 0;\n}\n.multiselect__strong {\n margin-bottom: 8px;\n line-height: 20px;\n display: inline-block;\n vertical-align: top;\n}\n*[dir=\"rtl\"] .multiselect {\n text-align: right;\n}\n*[dir=\"rtl\"] .multiselect__select {\n right: auto;\n left: 1px;\n}\n*[dir=\"rtl\"] .multiselect__tags {\n padding: 8px 8px 0px 40px;\n}\n*[dir=\"rtl\"] .multiselect__content {\n text-align: right;\n}\n*[dir=\"rtl\"] .multiselect__option:after {\n right: auto;\n left: 0;\n}\n*[dir=\"rtl\"] .multiselect__clear {\n right: auto;\n left: 12px;\n}\n*[dir=\"rtl\"] .multiselect__spinner {\n right: auto;\n left: 1px;\n}\n@-webkit-keyframes spinning {\nfrom {\n -webkit-transform: rotate(0);\n transform: rotate(0);\n}\nto {\n -webkit-transform: rotate(2turn);\n transform: rotate(2turn);\n}\n}\n@keyframes spinning {\nfrom {\n -webkit-transform: rotate(0);\n transform: rotate(0);\n}\nto {\n -webkit-transform: rotate(2turn);\n transform: rotate(2turn);\n}\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/Multiselect.vue"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/vue-multiselect.min.js b/dist/vue-multiselect.min.js deleted file mode 100644 index 0bac0fa7..00000000 --- a/dist/vue-multiselect.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.VueMultiselect=e():t.VueMultiselect=e()}(this,function(){return function(t){function e(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,e),i.l=!0,i.exports}var n={};return e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:r})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="/",e(e.s=89)}([function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e,n){var r=n(35),i=Function.prototype,o=i.call,s=r&&i.bind.bind(o,o);t.exports=r?s:function(t){return function(){return o.apply(t,arguments)}}},function(t,e,n){var r=n(59),i=r.all;t.exports=r.IS_HTMLDDA?function(t){return"function"==typeof t||t===i}:function(t){return"function"==typeof t}},function(t,e,n){var r=n(4),i=n(43).f,o=n(30),s=n(11),u=n(33),a=n(95),l=n(66);t.exports=function(t,e){var n,c,f,p,h,d=t.target,v=t.global,g=t.stat;if(n=v?r:g?r[d]||u(d,{}):(r[d]||{}).prototype)for(c in e){if(p=e[c],t.dontCallGetSet?(h=i(n,c),f=h&&h.value):f=n[c],!l(v?c:d+(g?".":"#")+c,t.forced)&&void 0!==f){if(typeof p==typeof f)continue;a(p,f)}(t.sham||f&&f.sham)&&o(p,"sham",!0),s(n,c,p,t)}}},function(t,e,n){(function(e){var n=function(t){return t&&t.Math==Math&&t};t.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof e&&e)||function(){return this}()||Function("return this")()}).call(e,n(139))},function(t,e,n){var r=n(0);t.exports=!r(function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})},function(t,e,n){var r=n(8),i=String,o=TypeError;t.exports=function(t){if(r(t))return t;throw o(i(t)+" is not an object")}},function(t,e,n){var r=n(1),i=n(14),o=r({}.hasOwnProperty);t.exports=Object.hasOwn||function(t,e){return o(i(t),e)}},function(t,e,n){var r=n(2),i=n(59),o=i.all;t.exports=i.IS_HTMLDDA?function(t){return"object"==typeof t?null!==t:r(t)||t===o}:function(t){return"object"==typeof t?null!==t:r(t)}},function(t,e,n){var r=n(4),i=n(47),o=n(7),s=n(75),u=n(72),a=n(76),l=i("wks"),c=r.Symbol,f=c&&c.for,p=a?c:c&&c.withoutSetter||s;t.exports=function(t){if(!o(l,t)||!u&&"string"!=typeof l[t]){var e="Symbol."+t;u&&o(c,t)?l[t]=c[t]:l[t]=a&&f?f(e):p(e)}return l[t]}},function(t,e,n){var r=n(123);t.exports=function(t){return r(t.length)}},function(t,e,n){var r=n(2),i=n(13),o=n(104),s=n(33);t.exports=function(t,e,n,u){u||(u={});var a=u.enumerable,l=void 0!==u.name?u.name:e;if(r(n)&&o(n,l,u),u.global)a?t[e]=n:s(e,n);else{try{u.unsafe?t[e]&&(a=!0):delete t[e]}catch(t){}a?t[e]=n:i.f(t,e,{value:n,enumerable:!1,configurable:!u.nonConfigurable,writable:!u.nonWritable})}return t}},function(t,e,n){var r=n(35),i=Function.prototype.call;t.exports=r?i.bind(i):function(){return i.apply(i,arguments)}},function(t,e,n){var r=n(5),i=n(62),o=n(77),s=n(6),u=n(50),a=TypeError,l=Object.defineProperty,c=Object.getOwnPropertyDescriptor;e.f=r?o?function(t,e,n){if(s(t),e=u(e),s(n),"function"==typeof t&&"prototype"===e&&"value"in n&&"writable"in n&&!n.writable){var r=c(t,e);r&&r.writable&&(t[e]=n.value,n={configurable:"configurable"in n?n.configurable:r.configurable,enumerable:"enumerable"in n?n.enumerable:r.enumerable,writable:!1})}return l(t,e,n)}:l:function(t,e,n){if(s(t),e=u(e),s(n),i)try{return l(t,e,n)}catch(t){}if("get"in n||"set"in n)throw a("Accessors not supported");return"value"in n&&(t[e]=n.value),t}},function(t,e,n){var r=n(24),i=Object;t.exports=function(t){return i(r(t))}},function(t,e,n){var r=n(1),i=r({}.toString),o=r("".slice);t.exports=function(t){return o(i(t),8,-1)}},function(t,e,n){var r=n(0),i=n(9),o=n(23),s=i("species");t.exports=function(t){return o>=51||!r(function(){var e=[],n=e.constructor={};return n[s]=function(){return{foo:1}},1!==e[t](Boolean).foo})}},function(t,e,n){var r=n(4),i=n(2),o=function(t){return i(t)?t:void 0};t.exports=function(t,e){return arguments.length<2?o(r[t]):r[t]&&r[t][e]}},function(t,e,n){var r=n(15);t.exports=Array.isArray||function(t){return"Array"==r(t)}},function(t,e,n){var r=n(39),i=n(24);t.exports=function(t){return r(i(t))}},function(t,e,n){var r=n(29),i=String;t.exports=function(t){if("Symbol"===r(t))throw TypeError("Cannot convert a Symbol value to a string");return i(t)}},function(t,e,n){var r=n(100),i=n(1),o=n(39),s=n(14),u=n(10),a=n(28),l=i([].push),c=function(t){var e=1==t,n=2==t,i=3==t,c=4==t,f=6==t,p=7==t,h=5==t||f;return function(d,v,g,y){for(var b,m,x=s(d),_=o(x),O=r(v,g),w=u(_),S=0,E=y||a,L=e?E(d,w):n||p?E(d,0):void 0;w>S;S++)if((h||S in _)&&(b=_[S],m=O(b,S,x),t))if(e)L[S]=m;else if(m)switch(t){case 3:return!0;case 5:return b;case 6:return S;case 2:l(L,b)}else switch(t){case 4:return!1;case 7:l(L,b)}return f?-1:i||c?c:L}};t.exports={forEach:c(0),map:c(1),filter:c(2),some:c(3),every:c(4),find:c(5),findIndex:c(6),filterReject:c(7)}},function(t,e){var n=TypeError;t.exports=function(t){if(t>9007199254740991)throw n("Maximum allowed index exceeded");return t}},function(t,e,n){var r,i,o=n(4),s=n(97),u=o.process,a=o.Deno,l=u&&u.versions||a&&a.version,c=l&&l.v8;c&&(r=c.split("."),i=r[0]>0&&r[0]<4?1:+(r[0]+r[1])),!i&&s&&(!(r=s.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=s.match(/Chrome\/(\d+)/))&&(i=+r[1]),t.exports=i},function(t,e,n){var r=n(40),i=TypeError;t.exports=function(t){if(r(t))throw i("Can't call method on "+t);return t}},function(t,e,n){var r=n(2),i=n(74),o=TypeError;t.exports=function(t){if(r(t))return t;throw o(i(t)+" is not a function")}},function(t,e,n){"use strict";var r=n(0);t.exports=function(t,e){var n=[][t];return!!n&&r(function(){n.call(null,e||function(){return 1},1)})}},function(t,e,n){"use strict";var r=n(5),i=n(18),o=TypeError,s=Object.getOwnPropertyDescriptor,u=r&&!function(){if(void 0!==this)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(t){return t instanceof TypeError}}();t.exports=u?function(t,e){if(i(t)&&!s(t,"length").writable)throw o("Cannot set read only .length");return t.length=e}:function(t,e){return t.length=e}},function(t,e,n){var r=n(94);t.exports=function(t,e){return new(r(t))(0===e?0:e)}},function(t,e,n){var r=n(51),i=n(2),o=n(15),s=n(9),u=s("toStringTag"),a=Object,l="Arguments"==o(function(){return arguments}()),c=function(t,e){try{return t[e]}catch(t){}};t.exports=r?o:function(t){var e,n,r;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=c(e=a(t),u))?n:l?o(e):"Object"==(r=o(e))&&i(e.callee)?"Arguments":r}},function(t,e,n){var r=n(5),i=n(13),o=n(31);t.exports=r?function(t,e,n){return i.f(t,e,o(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,n){"use strict";var r=n(50),i=n(13),o=n(31);t.exports=function(t,e,n){var s=r(e);s in t?i.f(t,s,o(0,n)):t[s]=n}},function(t,e,n){var r=n(4),i=Object.defineProperty;t.exports=function(t,e){try{i(r,t,{value:e,configurable:!0,writable:!0})}catch(n){r[t]=e}return e}},function(t,e){t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},function(t,e,n){var r=n(0);t.exports=!r(function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")})},function(t,e,n){var r=n(5),i=n(7),o=Function.prototype,s=r&&Object.getOwnPropertyDescriptor,u=i(o,"name"),a=u&&"something"===function(){}.name,l=u&&(!r||r&&s(o,"name").configurable);t.exports={EXISTS:u,PROPER:a,CONFIGURABLE:l}},function(t,e,n){var r=n(15),i=n(1);t.exports=function(t){if("Function"===r(t))return i(t)}},function(t,e){t.exports={}},function(t,e,n){var r=n(1),i=n(0),o=n(15),s=Object,u=r("".split);t.exports=i(function(){return!s("z").propertyIsEnumerable(0)})?function(t){return"String"==o(t)?u(t,""):s(t)}:s},function(t,e){t.exports=function(t){return null===t||void 0===t}},function(t,e,n){var r=n(17),i=n(2),o=n(44),s=n(76),u=Object;t.exports=s?function(t){return"symbol"==typeof t}:function(t){var e=r("Symbol");return i(e)&&o(e.prototype,u(t))}},function(t,e,n){var r,i=n(6),o=n(107),s=n(34),u=n(38),a=n(101),l=n(60),c=n(70),f=c("IE_PROTO"),p=function(){},h=function(t){return"\n\n\n","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","function isEmpty (opt) {\n if (opt === 0) return false\n if (Array.isArray(opt) && opt.length === 0) return true\n return !opt\n}\n\nfunction not (fun) {\n return (...params) => !fun(...params)\n}\n\nfunction includes (str, query) {\n /* istanbul ignore else */\n if (str === undefined) str = 'undefined'\n if (str === null) str = 'null'\n if (str === false) str = 'false'\n const text = str.toString().toLowerCase()\n return text.indexOf(query.trim()) !== -1\n}\n\nfunction filterOptions (options, search, label, customLabel) {\n return search ? options\n .filter((option) => includes(customLabel(option, label), search))\n .sort((a, b) => customLabel(a, label).length - customLabel(b, label).length) : options\n}\n\nfunction stripGroups (options) {\n return options.filter((option) => !option.$isLabel)\n}\n\nfunction flattenOptions (values, label) {\n return (options) =>\n options.reduce((prev, curr) => {\n /* istanbul ignore else */\n if (curr[values] && curr[values].length) {\n prev.push({\n $groupLabel: curr[label],\n $isLabel: true\n })\n return prev.concat(curr[values])\n }\n return prev\n }, [])\n}\n\nfunction filterGroups (search, label, values, groupLabel, customLabel) {\n return (groups) =>\n groups.map((group) => {\n /* istanbul ignore else */\n if (!group[values]) {\n console.warn(`Options passed to vue-multiselect do not contain groups, despite the config.`)\n return []\n }\n const groupOptions = filterOptions(group[values], search, label, customLabel)\n\n return groupOptions.length\n ? {\n [groupLabel]: group[groupLabel],\n [values]: groupOptions\n }\n : []\n })\n}\n\nconst flow = (...fns) => (x) => fns.reduce((v, f) => f(v), x)\n\nexport default {\n data () {\n return {\n search: '',\n isOpen: false,\n preferredOpenDirection: 'below',\n optimizedHeight: this.maxHeight\n }\n },\n props: {\n /**\n * Decide whether to filter the results based on search query.\n * Useful for async filtering, where we search through more complex data.\n * @type {Boolean}\n */\n internalSearch: {\n type: Boolean,\n default: true\n },\n /**\n * Array of available options: Objects, Strings or Integers.\n * If array of objects, visible label will default to option.label.\n * If `labal` prop is passed, label will equal option['label']\n * @type {Array}\n */\n options: {\n type: Array,\n required: true\n },\n /**\n * Equivalent to the `multiple` attribute on a `` input.\n * @default 'Select option'\n * @type {String}\n */\n placeholder: {\n type: String,\n default: 'Select option'\n },\n /**\n * Allow to remove all selected values\n * @default true\n * @type {Boolean}\n */\n allowEmpty: {\n type: Boolean,\n default: true\n },\n /**\n * Reset this.internalValue, this.search after this.internalValue changes.\n * Useful if want to create a stateless dropdown.\n * @default false\n * @type {Boolean}\n */\n resetAfter: {\n type: Boolean,\n default: false\n },\n /**\n * Enable/disable closing after selecting an option\n * @default true\n * @type {Boolean}\n */\n closeOnSelect: {\n type: Boolean,\n default: true\n },\n /**\n * Function to interpolate the custom label\n * @default false\n * @type {Function}\n */\n customLabel: {\n type: Function,\n default (option, label) {\n if (isEmpty(option)) return ''\n return label ? option[label] : option\n }\n },\n /**\n * Disable / Enable tagging\n * @default false\n * @type {Boolean}\n */\n taggable: {\n type: Boolean,\n default: false\n },\n /**\n * String to show when highlighting a potential tag\n * @default 'Press enter to create a tag'\n * @type {String}\n */\n tagPlaceholder: {\n type: String,\n default: 'Press enter to create a tag'\n },\n /**\n * By default new tags will appear above the search results.\n * Changing to 'bottom' will revert this behaviour\n * and will proritize the search results\n * @default 'top'\n * @type {String}\n */\n tagPosition: {\n type: String,\n default: 'top'\n },\n /**\n * Number of allowed selected options. No limit if 0.\n * @default 0\n * @type {Number}\n */\n max: {\n type: [Number, Boolean],\n default: false\n },\n /**\n * Will be passed with all events as second param.\n * Useful for identifying events origin.\n * @default null\n * @type {String|Integer}\n */\n id: {\n default: null\n },\n /**\n * Limits the options displayed in the dropdown\n * to the first X options.\n * @default 1000\n * @type {Integer}\n */\n optionsLimit: {\n type: Number,\n default: 1000\n },\n /**\n * Name of the property containing\n * the group values\n * @default 1000\n * @type {String}\n */\n groupValues: {\n type: String\n },\n /**\n * Name of the property containing\n * the group label\n * @default 1000\n * @type {String}\n */\n groupLabel: {\n type: String\n },\n /**\n * Allow to select all group values\n * by selecting the group label\n * @default false\n * @type {Boolean}\n */\n groupSelect: {\n type: Boolean,\n default: false\n },\n /**\n * Array of keyboard keys to block\n * when selecting\n * @default 1000\n * @type {String}\n */\n blockKeys: {\n type: Array,\n default () {\n return []\n }\n },\n /**\n * Prevent from wiping up the search value\n * @default false\n * @type {Boolean}\n */\n preserveSearch: {\n type: Boolean,\n default: false\n },\n /**\n * Select 1st options if value is empty\n * @default false\n * @type {Boolean}\n */\n preselectFirst: {\n type: Boolean,\n default: false\n },\n /**\n * Prevent autofocus\n * @default false\n * @type {Boolean}\n */\n preventAutofocus: {\n type: Boolean,\n default: false\n }\n },\n mounted () {\n /* istanbul ignore else */\n if (!this.multiple && this.max) {\n console.warn('[Vue-Multiselect warn]: Max prop should not be used when prop Multiple equals false.')\n }\n if (\n this.preselectFirst &&\n !this.internalValue.length &&\n this.options.length\n ) {\n this.select(this.filteredOptions[0])\n }\n },\n computed: {\n internalValue () {\n return this.modelValue || this.modelValue === 0\n ? Array.isArray(this.modelValue) ? this.modelValue : [this.modelValue]\n : []\n },\n filteredOptions () {\n const search = this.search || ''\n const normalizedSearch = search.toLowerCase().trim()\n\n let options = this.options.concat()\n\n /* istanbul ignore else */\n if (this.internalSearch) {\n options = this.groupValues\n ? this.filterAndFlat(options, normalizedSearch, this.label)\n : filterOptions(options, normalizedSearch, this.label, this.customLabel)\n } else {\n options = this.groupValues ? flattenOptions(this.groupValues, this.groupLabel)(options) : options\n }\n\n options = this.hideSelected\n ? options.filter(not(this.isSelected))\n : options\n\n /* istanbul ignore else */\n if (this.taggable && normalizedSearch.length && !this.isExistingOption(normalizedSearch)) {\n if (this.tagPosition === 'bottom') {\n options.push({isTag: true, label: search})\n } else {\n options.unshift({isTag: true, label: search})\n }\n }\n\n return options.slice(0, this.optionsLimit)\n },\n valueKeys () {\n if (this.trackBy) {\n return this.internalValue.map((element) => element[this.trackBy])\n } else {\n return this.internalValue\n }\n },\n optionKeys () {\n const options = this.groupValues ? this.flatAndStrip(this.options) : this.options\n return options.map((element) => this.customLabel(element, this.label).toString().toLowerCase())\n },\n currentOptionLabel () {\n return this.multiple\n ? this.searchable ? '' : this.placeholder\n : this.internalValue.length\n ? this.getOptionLabel(this.internalValue[0])\n : this.searchable ? '' : this.placeholder\n }\n },\n watch: {\n internalValue: {\n handler () {\n /* istanbul ignore else */\n if (this.resetAfter && this.internalValue.length) {\n this.search = ''\n this.$emit('update:modelValue', this.multiple ? [] : null)\n }\n },\n deep: true\n },\n search () {\n this.$emit('search-change', this.search)\n }\n },\n emits: ['open', 'search-change', 'close', 'select', 'update:modelValue', 'remove', 'tag'],\n methods: {\n /**\n * Returns the internalValue in a way it can be emited to the parent\n * @returns {Object||Array||String||Integer}\n */\n getValue () {\n return this.multiple\n ? this.internalValue\n : this.internalValue.length === 0\n ? null\n : this.internalValue[0]\n },\n /**\n * Filters and then flattens the options list\n * @param {Array}\n * @return {Array} returns a filtered and flat options list\n */\n filterAndFlat (options, search, label) {\n return flow(\n filterGroups(search, label, this.groupValues, this.groupLabel, this.customLabel),\n flattenOptions(this.groupValues, this.groupLabel)\n )(options)\n },\n /**\n * Flattens and then strips the group labels from the options list\n * @param {Array}\n * @return {Array} returns a flat options list without group labels\n */\n flatAndStrip (options) {\n return flow(\n flattenOptions(this.groupValues, this.groupLabel),\n stripGroups\n )(options)\n },\n /**\n * Updates the search value\n * @param {String}\n */\n updateSearch (query) {\n this.search = query\n },\n /**\n * Finds out if the given query is already present\n * in the available options\n * @param {String}\n * @return {Boolean} returns true if element is available\n */\n isExistingOption (query) {\n return !this.options\n ? false\n : this.optionKeys.indexOf(query) > -1\n },\n /**\n * Finds out if the given element is already present\n * in the result value\n * @param {Object||String||Integer} option passed element to check\n * @returns {Boolean} returns true if element is selected\n */\n isSelected (option) {\n const opt = this.trackBy\n ? option[this.trackBy]\n : option\n return this.valueKeys.indexOf(opt) > -1\n },\n /**\n * Finds out if the given option is disabled\n * @param {Object||String||Integer} option passed element to check\n * @returns {Boolean} returns true if element is disabled\n */\n isOptionDisabled (option) {\n return !!option.$isDisabled\n },\n /**\n * Returns empty string when options is null/undefined\n * Returns tag query if option is tag.\n * Returns the customLabel() results and casts it to string.\n *\n * @param {Object||String||Integer} Passed option\n * @returns {Object||String}\n */\n getOptionLabel (option) {\n if (isEmpty(option)) return ''\n /* istanbul ignore else */\n if (option.isTag) return option.label\n /* istanbul ignore else */\n if (option.$isLabel) return option.$groupLabel\n\n const label = this.customLabel(option, this.label)\n /* istanbul ignore else */\n if (isEmpty(label)) return ''\n return label\n },\n /**\n * Add the given option to the list of selected options\n * or sets the option as the selected option.\n * If option is already selected -> remove it from the results.\n *\n * @param {Object||String||Integer} option to select/deselect\n * @param {Boolean} block removing\n */\n select (option, key) {\n /* istanbul ignore else */\n if (option.$isLabel && this.groupSelect) {\n this.selectGroup(option)\n return\n }\n if (this.blockKeys.indexOf(key) !== -1 ||\n this.disabled ||\n option.$isDisabled ||\n option.$isLabel\n ) return\n /* istanbul ignore else */\n if (this.max && this.multiple && this.internalValue.length === this.max) return\n /* istanbul ignore else */\n if (key === 'Tab' && !this.pointerDirty) return\n if (option.isTag) {\n this.$emit('tag', option.label, this.id)\n this.search = ''\n if (this.closeOnSelect && !this.multiple) this.deactivate()\n } else {\n const isSelected = this.isSelected(option)\n\n if (isSelected) {\n if (key !== 'Tab') this.removeElement(option)\n return\n }\n\n if (this.multiple) {\n this.$emit('update:modelValue', this.internalValue.concat([option]))\n } else {\n this.$emit('update:modelValue', option)\n }\n\n this.$emit('select', option, this.id)\n\n /* istanbul ignore else */\n if (this.clearOnSelect) this.search = ''\n }\n /* istanbul ignore else */\n if (this.closeOnSelect) this.deactivate()\n },\n /**\n * Add the given group options to the list of selected options\n * If all group optiona are already selected -> remove it from the results.\n *\n * @param {Object||String||Integer} group to select/deselect\n */\n selectGroup (selectedGroup) {\n const group = this.options.find((option) => {\n return option[this.groupLabel] === selectedGroup.$groupLabel\n })\n\n if (!group) return\n\n if (this.wholeGroupSelected(group)) {\n this.$emit('remove', group[this.groupValues], this.id)\n\n const groupValues = this.trackBy ? group[this.groupValues].map(val => val[this.trackBy]) : group[this.groupValues]\n const newValue = this.internalValue.filter(\n option => groupValues.indexOf(this.trackBy ? option[this.trackBy] : option) === -1\n )\n\n this.$emit('update:modelValue', newValue)\n } else {\n let optionsToAdd = group[this.groupValues].filter(\n option => !(this.isOptionDisabled(option) || this.isSelected(option))\n )\n\n // if max is defined then just select options respecting max\n if (this.max) {\n optionsToAdd.splice(this.max - this.internalValue.length)\n }\n\n this.$emit('select', optionsToAdd, this.id)\n this.$emit(\n 'update:modelValue',\n this.internalValue.concat(optionsToAdd)\n )\n }\n\n if (this.closeOnSelect) this.deactivate()\n },\n /**\n * Helper to identify if all values in a group are selected\n *\n * @param {Object} group to validated selected values against\n */\n wholeGroupSelected (group) {\n return group[this.groupValues].every((option) => this.isSelected(option) || this.isOptionDisabled(option)\n )\n },\n /**\n * Helper to identify if all values in a group are disabled\n *\n * @param {Object} group to check for disabled values\n */\n wholeGroupDisabled (group) {\n return group[this.groupValues].every(this.isOptionDisabled)\n },\n /**\n * Removes the given option from the selected options.\n * Additionally checks this.allowEmpty prop if option can be removed when\n * it is the last selected option.\n *\n * @param {type} option description\n * @return {type} description\n */\n removeElement (option, shouldClose = true) {\n /* istanbul ignore else */\n if (this.disabled) return\n /* istanbul ignore else */\n if (option.$isDisabled) return\n /* istanbul ignore else */\n if (!this.allowEmpty && this.internalValue.length <= 1) {\n this.deactivate()\n return\n }\n\n const index = typeof option === 'object'\n ? this.valueKeys.indexOf(option[this.trackBy])\n : this.valueKeys.indexOf(option)\n\n if (this.multiple) {\n const newValue = this.internalValue.slice(0, index).concat(this.internalValue.slice(index + 1))\n this.$emit('update:modelValue', newValue)\n } else {\n this.$emit('update:modelValue', null)\n }\n this.$emit('remove', option, this.id)\n\n /* istanbul ignore else */\n if (this.closeOnSelect && shouldClose) this.deactivate()\n },\n /**\n * Calls this.removeElement() with the last element\n * from this.internalValue (selected element Array)\n *\n * @fires this#removeElement\n */\n removeLastElement () {\n /* istanbul ignore else */\n if (this.blockKeys.indexOf('Delete') !== -1) return\n /* istanbul ignore else */\n if (this.search.length === 0 && Array.isArray(this.internalValue) && this.internalValue.length) {\n this.removeElement(this.internalValue[this.internalValue.length - 1], false)\n }\n },\n /**\n * Opens the multiselect’s dropdown.\n * Sets this.isOpen to TRUE\n */\n activate () {\n /* istanbul ignore else */\n if (this.isOpen || this.disabled) return\n\n this.adjustPosition()\n /* istanbul ignore else */\n if (this.groupValues && this.pointer === 0 && this.filteredOptions.length) {\n this.pointer = 1\n }\n\n this.isOpen = true\n /* istanbul ignore else */\n if (this.searchable) {\n if (!this.preserveSearch) this.search = ''\n if (!this.preventAutofocus) this.$nextTick(() => this.$refs.search && this.$refs.search.focus())\n } else if (!this.preventAutofocus) {\n if (typeof this.$el !== 'undefined') this.$el.focus()\n }\n this.$emit('open', this.id)\n },\n /**\n * Closes the multiselect’s dropdown.\n * Sets this.isOpen to FALSE\n */\n deactivate () {\n /* istanbul ignore else */\n if (!this.isOpen) return\n\n this.isOpen = false\n /* istanbul ignore else */\n if (this.searchable) {\n if (this.$refs.search !== null && typeof this.$refs.search !== 'undefined') this.$refs.search.blur()\n } else {\n if (typeof this.$el !== 'undefined') this.$el.blur()\n }\n if (!this.preserveSearch) this.search = ''\n this.$emit('close', this.getValue(), this.id)\n },\n /**\n * Call this.activate() or this.deactivate()\n * depending on this.isOpen value.\n *\n * @fires this#activate || this#deactivate\n * @property {Boolean} isOpen indicates if dropdown is open\n */\n toggle () {\n this.isOpen\n ? this.deactivate()\n : this.activate()\n },\n /**\n * Updates the hasEnoughSpace variable used for\n * detecting where to expand the dropdown\n */\n adjustPosition () {\n if (typeof window === 'undefined') return\n\n const spaceAbove = this.$el.getBoundingClientRect().top\n const spaceBelow = window.innerHeight - this.$el.getBoundingClientRect().bottom\n const hasEnoughSpaceBelow = spaceBelow > this.maxHeight\n\n if (hasEnoughSpaceBelow || spaceBelow > spaceAbove || this.openDirection === 'below' || this.openDirection === 'bottom') {\n this.preferredOpenDirection = 'below'\n this.optimizedHeight = Math.min(spaceBelow - 40, this.maxHeight)\n } else {\n this.preferredOpenDirection = 'above'\n this.optimizedHeight = Math.min(spaceAbove - 40, this.maxHeight)\n }\n }\n }\n}\n","export default {\n data () {\n return {\n pointer: 0,\n pointerDirty: false\n }\n },\n props: {\n /**\n * Enable/disable highlighting of the pointed value.\n * @type {Boolean}\n * @default true\n */\n showPointer: {\n type: Boolean,\n default: true\n },\n optionHeight: {\n type: Number,\n default: 40\n }\n },\n computed: {\n pointerPosition () {\n return this.pointer * this.optionHeight\n },\n visibleElements () {\n return this.optimizedHeight / this.optionHeight\n }\n },\n watch: {\n filteredOptions () {\n this.pointerAdjust()\n },\n isOpen () {\n this.pointerDirty = false\n },\n pointer () {\n this.$refs.search && this.$refs.search.setAttribute('aria-activedescendant', this.id + '-' + this.pointer.toString())\n }\n },\n methods: {\n optionHighlight (index, option) {\n return {\n 'multiselect__option--highlight': index === this.pointer && this.showPointer,\n 'multiselect__option--selected': this.isSelected(option)\n }\n },\n groupHighlight (index, selectedGroup) {\n if (!this.groupSelect) {\n return [\n 'multiselect__option--disabled',\n {'multiselect__option--group': selectedGroup.$isLabel}\n ]\n }\n\n const group = this.options.find((option) => {\n return option[this.groupLabel] === selectedGroup.$groupLabel\n })\n\n return group && !this.wholeGroupDisabled(group) ? [\n 'multiselect__option--group',\n {'multiselect__option--highlight': index === this.pointer && this.showPointer},\n {'multiselect__option--group-selected': this.wholeGroupSelected(group)}\n ] : 'multiselect__option--disabled'\n },\n addPointerElement ({key} = 'Enter') {\n /* istanbul ignore else */\n if (this.filteredOptions.length > 0) {\n this.select(this.filteredOptions[this.pointer], key)\n }\n this.pointerReset()\n },\n pointerForward () {\n /* istanbul ignore else */\n if (this.pointer < this.filteredOptions.length - 1) {\n this.pointer++\n /* istanbul ignore next */\n if (this.$refs.list.scrollTop <= this.pointerPosition - (this.visibleElements - 1) * this.optionHeight) {\n this.$refs.list.scrollTop = this.pointerPosition - (this.visibleElements - 1) * this.optionHeight\n }\n /* istanbul ignore else */\n if (\n this.filteredOptions[this.pointer] &&\n this.filteredOptions[this.pointer].$isLabel &&\n !this.groupSelect\n ) this.pointerForward()\n }\n this.pointerDirty = true\n },\n pointerBackward () {\n if (this.pointer > 0) {\n this.pointer--\n /* istanbul ignore else */\n if (this.$refs.list.scrollTop >= this.pointerPosition) {\n this.$refs.list.scrollTop = this.pointerPosition\n }\n /* istanbul ignore else */\n if (\n this.filteredOptions[this.pointer] &&\n this.filteredOptions[this.pointer].$isLabel &&\n !this.groupSelect\n ) this.pointerBackward()\n } else {\n /* istanbul ignore else */\n if (\n this.filteredOptions[this.pointer] &&\n this.filteredOptions[0].$isLabel &&\n !this.groupSelect\n ) this.pointerForward()\n }\n this.pointerDirty = true\n },\n pointerReset () {\n /* istanbul ignore else */\n if (!this.closeOnSelect) return\n this.pointer = 0\n /* istanbul ignore else */\n if (this.$refs.list) {\n this.$refs.list.scrollTop = 0\n }\n },\n pointerAdjust () {\n /* istanbul ignore else */\n if (this.pointer >= this.filteredOptions.length - 1) {\n this.pointer = this.filteredOptions.length\n ? this.filteredOptions.length - 1\n : 0\n }\n\n if (this.filteredOptions.length > 0 &&\n this.filteredOptions[this.pointer].$isLabel &&\n !this.groupSelect\n ) {\n this.pointerForward()\n }\n },\n pointerSet (index) {\n this.pointer = index\n this.pointerDirty = true\n }\n }\n}\n","export { default } from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Multiselect.vue?vue&type=script&lang=js\"; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Multiselect.vue?vue&type=script&lang=js\"","import { render } from \"./Multiselect.vue?vue&type=template&id=2fe91855\"\nimport script from \"./Multiselect.vue?vue&type=script&lang=js\"\nexport * from \"./Multiselect.vue?vue&type=script&lang=js\"\n\nimport \"./Multiselect.vue?vue&type=style&index=0&id=2fe91855&lang=css\"\n\nimport exportComponent from \"/home/matt/git/vue-multiselect/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import Multiselect from './Multiselect.vue'\nimport multiselectMixin from './multiselectMixin.js'\nimport pointerMixin from './pointerMixin.js'\n\nexport default Multiselect\n\nexport {Multiselect, multiselectMixin, pointerMixin}\n","import './setPublicPath'\nimport mod from '~entry'\nexport default mod\nexport * from '~entry'\n","'use strict';\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar nativeSlice = [].slice;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return nativeSlice.call(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n /* global Symbol -- safe */\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/vue-multiselect.umd.min.js b/dist/vue-multiselect.umd.min.js new file mode 100644 index 00000000..30ac3b84 --- /dev/null +++ b/dist/vue-multiselect.umd.min.js @@ -0,0 +1,2 @@ +(function(e,t){"object"===typeof exports&&"object"===typeof module?module.exports=t(require("vue")):"function"===typeof define&&define.amd?define([],t):"object"===typeof exports?exports["vue-multiselect"]=t(require("vue")):e["vue-multiselect"]=t(e["Vue"])})("undefined"!==typeof self?self:this,(function(e){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s="fb15")}({"00ee":function(e,t,n){var r=n("b622"),i=r("toStringTag"),o={};o[i]="z",e.exports="[object z]"===String(o)},"0366":function(e,t,n){var r=n("1c0b");e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 0:return function(){return e.call(t)};case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,i){return e.call(t,n,r,i)}}return function(){return e.apply(t,arguments)}}},"06cf":function(e,t,n){var r=n("83ab"),i=n("d1e7"),o=n("5c6c"),c=n("fc6a"),s=n("c04e"),a=n("5135"),l=n("0cfb"),u=Object.getOwnPropertyDescriptor;t.f=r?u:function(e,t){if(e=c(e),t=s(t,!0),l)try{return u(e,t)}catch(n){}if(a(e,t))return o(!i.f.call(e,t),e[t])}},"0cfb":function(e,t,n){var r=n("83ab"),i=n("d039"),o=n("cc12");e.exports=!r&&!i((function(){return 7!=Object.defineProperty(o("div"),"a",{get:function(){return 7}}).a}))},"0d03":function(e,t,n){var r=n("6eeb"),i=Date.prototype,o="Invalid Date",c="toString",s=i[c],a=i.getTime;new Date(NaN)+""!=o&&r(i,c,(function(){var e=a.call(this);return e===e?s.call(this):o}))},"129f":function(e,t){e.exports=Object.is||function(e,t){return e===t?0!==e||1/e===1/t:e!=e&&t!=t}},"13d5":function(e,t,n){"use strict";var r=n("23e7"),i=n("d58f").left,o=n("a640"),c=n("2d00"),s=n("605d"),a=o("reduce"),l=!s&&c>79&&c<83;r({target:"Array",proto:!0,forced:!a||l},{reduce:function(e){return i(this,e,arguments.length,arguments.length>1?arguments[1]:void 0)}})},"14c3":function(e,t,n){var r=n("c6b6"),i=n("9263");e.exports=function(e,t){var n=e.exec;if("function"===typeof n){var o=n.call(e,t);if("object"!==typeof o)throw TypeError("RegExp exec method returned something other than an Object or null");return o}if("RegExp"!==r(e))throw TypeError("RegExp#exec called on incompatible receiver");return i.call(e,t)}},"1be4":function(e,t,n){var r=n("d066");e.exports=r("document","documentElement")},"1c0b":function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e}},"1d80":function(e,t){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},"1dde":function(e,t,n){var r=n("d039"),i=n("b622"),o=n("2d00"),c=i("species");e.exports=function(e){return o>=51||!r((function(){var t=[],n=t.constructor={};return n[c]=function(){return{foo:1}},1!==t[e](Boolean).foo}))}},"23cb":function(e,t,n){var r=n("a691"),i=Math.max,o=Math.min;e.exports=function(e,t){var n=r(e);return n<0?i(n+t,0):o(n,t)}},"23e7":function(e,t,n){var r=n("da84"),i=n("06cf").f,o=n("9112"),c=n("6eeb"),s=n("ce4e"),a=n("e893"),l=n("94ca");e.exports=function(e,t){var n,u,f,p,d,h,b=e.target,g=e.global,v=e.stat;if(u=g?r:v?r[b]||s(b,{}):(r[b]||{}).prototype,u)for(f in t){if(d=t[f],e.noTargetGet?(h=i(u,f),p=h&&h.value):p=u[f],n=l(g?f:b+(v?".":"#")+f,e.forced),!n&&void 0!==p){if(typeof d===typeof p)continue;a(d,p)}(e.sham||p&&p.sham)&&o(d,"sham",!0),c(u,f,d,e)}}},"241c":function(e,t,n){var r=n("ca84"),i=n("7839"),o=i.concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return r(e,o)}},"25f0":function(e,t,n){"use strict";var r=n("6eeb"),i=n("825a"),o=n("d039"),c=n("ad6d"),s="toString",a=RegExp.prototype,l=a[s],u=o((function(){return"/a/b"!=l.call({source:"a",flags:"b"})})),f=l.name!=s;(u||f)&&r(RegExp.prototype,s,(function(){var e=i(this),t=String(e.source),n=e.flags,r=String(void 0===n&&e instanceof RegExp&&!("flags"in a)?c.call(e):n);return"/"+t+"/"+r}),{unsafe:!0})},"277d":function(e,t,n){var r=n("23e7"),i=n("e8b5");r({target:"Array",stat:!0},{isArray:i})},"2d00":function(e,t,n){var r,i,o=n("da84"),c=n("342f"),s=o.process,a=s&&s.versions,l=a&&a.v8;l?(r=l.split("."),i=r[0]+r[1]):c&&(r=c.match(/Edge\/(\d+)/),(!r||r[1]>=74)&&(r=c.match(/Chrome\/(\d+)/),r&&(i=r[1]))),e.exports=i&&+i},"342f":function(e,t,n){var r=n("d066");e.exports=r("navigator","userAgent")||""},"37e8":function(e,t,n){var r=n("83ab"),i=n("9bf2"),o=n("825a"),c=n("df75");e.exports=r?Object.defineProperties:function(e,t){o(e);var n,r=c(t),s=r.length,a=0;while(s>a)i.f(e,n=r[a++],t[n]);return e}},"3bbe":function(e,t,n){var r=n("861d");e.exports=function(e){if(!r(e)&&null!==e)throw TypeError("Can't set "+String(e)+" as a prototype");return e}},"428f":function(e,t,n){var r=n("da84");e.exports=r},"44ad":function(e,t,n){var r=n("d039"),i=n("c6b6"),o="".split;e.exports=r((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==i(e)?o.call(e,""):Object(e)}:Object},"44d2":function(e,t,n){var r=n("b622"),i=n("7c73"),o=n("9bf2"),c=r("unscopables"),s=Array.prototype;void 0==s[c]&&o.f(s,c,{configurable:!0,value:i(null)}),e.exports=function(e){s[c][e]=!0}},4930:function(e,t,n){var r=n("605d"),i=n("2d00"),o=n("d039");e.exports=!!Object.getOwnPropertySymbols&&!o((function(){return!Symbol.sham&&(r?38===i:i>37&&i<41)}))},"498a":function(e,t,n){"use strict";var r=n("23e7"),i=n("58a8").trim,o=n("c8d2");r({target:"String",proto:!0,forced:o("trim")},{trim:function(){return i(this)}})},"4d64":function(e,t,n){var r=n("fc6a"),i=n("50c4"),o=n("23cb"),c=function(e){return function(t,n,c){var s,a=r(t),l=i(a.length),u=o(c,l);if(e&&n!=n){while(l>u)if(s=a[u++],s!=s)return!0}else for(;l>u;u++)if((e||u in a)&&a[u]===n)return e||u||0;return!e&&-1}};e.exports={includes:c(!0),indexOf:c(!1)}},"4de4":function(e,t,n){"use strict";var r=n("23e7"),i=n("b727").filter,o=n("1dde"),c=o("filter");r({target:"Array",proto:!0,forced:!c},{filter:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}})},"4e82":function(e,t,n){"use strict";var r=n("23e7"),i=n("1c0b"),o=n("7b0b"),c=n("d039"),s=n("a640"),a=[],l=a.sort,u=c((function(){a.sort(void 0)})),f=c((function(){a.sort(null)})),p=s("sort"),d=u||!f||!p;r({target:"Array",proto:!0,forced:d},{sort:function(e){return void 0===e?l.call(o(this)):l.call(o(this),i(e))}})},"50c4":function(e,t,n){var r=n("a691"),i=Math.min;e.exports=function(e){return e>0?i(r(e),9007199254740991):0}},5135:function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},5692:function(e,t,n){var r=n("c430"),i=n("c6cd");(e.exports=function(e,t){return i[e]||(i[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.9.1",mode:r?"pure":"global",copyright:"© 2021 Denis Pushkarev (zloirock.ru)"})},"56ef":function(e,t,n){var r=n("d066"),i=n("241c"),o=n("7418"),c=n("825a");e.exports=r("Reflect","ownKeys")||function(e){var t=i.f(c(e)),n=o.f;return n?t.concat(n(e)):t}},5899:function(e,t){e.exports="\t\n\v\f\r                 \u2028\u2029\ufeff"},"58a8":function(e,t,n){var r=n("1d80"),i=n("5899"),o="["+i+"]",c=RegExp("^"+o+o+"*"),s=RegExp(o+o+"*$"),a=function(e){return function(t){var n=String(r(t));return 1&e&&(n=n.replace(c,"")),2&e&&(n=n.replace(s,"")),n}};e.exports={start:a(1),end:a(2),trim:a(3)}},"5c6c":function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},"605d":function(e,t,n){var r=n("c6b6"),i=n("da84");e.exports="process"==r(i.process)},"65f0":function(e,t,n){var r=n("861d"),i=n("e8b5"),o=n("b622"),c=o("species");e.exports=function(e,t){var n;return i(e)&&(n=e.constructor,"function"!=typeof n||n!==Array&&!i(n.prototype)?r(n)&&(n=n[c],null===n&&(n=void 0)):n=void 0),new(void 0===n?Array:n)(0===t?0:t)}},"69f3":function(e,t,n){var r,i,o,c=n("7f9a"),s=n("da84"),a=n("861d"),l=n("9112"),u=n("5135"),f=n("c6cd"),p=n("f772"),d=n("d012"),h=s.WeakMap,b=function(e){return o(e)?i(e):r(e,{})},g=function(e){return function(t){var n;if(!a(t)||(n=i(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return n}};if(c){var v=f.state||(f.state=new h),m=v.get,y=v.has,O=v.set;r=function(e,t){return t.facade=e,O.call(v,e,t),t},i=function(e){return m.call(v,e)||{}},o=function(e){return y.call(v,e)}}else{var x=p("state");d[x]=!0,r=function(e,t){return t.facade=e,l(e,x,t),t},i=function(e){return u(e,x)?e[x]:{}},o=function(e){return u(e,x)}}e.exports={set:r,get:i,has:o,enforce:b,getterFor:g}},"6b0d":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=(e,t)=>{const n=e.__vccOpts||e;for(const[r,i]of t)n[r]=i;return n}},"6eeb":function(e,t,n){var r=n("da84"),i=n("9112"),o=n("5135"),c=n("ce4e"),s=n("8925"),a=n("69f3"),l=a.get,u=a.enforce,f=String(String).split("String");(e.exports=function(e,t,n,s){var a,l=!!s&&!!s.unsafe,p=!!s&&!!s.enumerable,d=!!s&&!!s.noTargetGet;"function"==typeof n&&("string"!=typeof t||o(n,"name")||i(n,"name",t),a=u(n),a.source||(a.source=f.join("string"==typeof t?t:""))),e!==r?(l?!d&&e[t]&&(p=!0):delete e[t],p?e[t]=n:i(e,t,n)):p?e[t]=n:c(t,n)})(Function.prototype,"toString",(function(){return"function"==typeof this&&l(this).source||s(this)}))},7156:function(e,t,n){var r=n("861d"),i=n("d2bb");e.exports=function(e,t,n){var o,c;return i&&"function"==typeof(o=t.constructor)&&o!==n&&r(c=o.prototype)&&c!==n.prototype&&i(e,c),e}},7418:function(e,t){t.f=Object.getOwnPropertySymbols},7839:function(e,t){e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},"7b0b":function(e,t,n){var r=n("1d80");e.exports=function(e){return Object(r(e))}},"7c73":function(e,t,n){var r,i=n("825a"),o=n("37e8"),c=n("7839"),s=n("d012"),a=n("1be4"),l=n("cc12"),u=n("f772"),f=">",p="<",d="prototype",h="script",b=u("IE_PROTO"),g=function(){},v=function(e){return p+h+f+e+p+"/"+h+f},m=function(e){e.write(v("")),e.close();var t=e.parentWindow.Object;return e=null,t},y=function(){var e,t=l("iframe"),n="java"+h+":";return t.style.display="none",a.appendChild(t),t.src=String(n),e=t.contentWindow.document,e.open(),e.write(v("document.F=Object")),e.close(),e.F},O=function(){try{r=document.domain&&new ActiveXObject("htmlfile")}catch(t){}O=r?m(r):y();var e=c.length;while(e--)delete O[d][c[e]];return O()};s[b]=!0,e.exports=Object.create||function(e,t){var n;return null!==e?(g[d]=i(e),n=new g,g[d]=null,n[b]=e):n=O(),void 0===t?n:o(n,t)}},"7db0":function(e,t,n){"use strict";var r=n("23e7"),i=n("b727").find,o=n("44d2"),c="find",s=!0;c in[]&&Array(1)[c]((function(){s=!1})),r({target:"Array",proto:!0,forced:s},{find:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}}),o(c)},"7f9a":function(e,t,n){var r=n("da84"),i=n("8925"),o=r.WeakMap;e.exports="function"===typeof o&&/native code/.test(i(o))},"825a":function(e,t,n){var r=n("861d");e.exports=function(e){if(!r(e))throw TypeError(String(e)+" is not an object");return e}},"83ab":function(e,t,n){var r=n("d039");e.exports=!r((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},8418:function(e,t,n){"use strict";var r=n("c04e"),i=n("9bf2"),o=n("5c6c");e.exports=function(e,t,n){var c=r(t);c in e?i.f(e,c,o(0,n)):e[c]=n}},"841c":function(e,t,n){"use strict";var r=n("d784"),i=n("825a"),o=n("1d80"),c=n("129f"),s=n("14c3");r("search",1,(function(e,t,n){return[function(t){var n=o(this),r=void 0==t?void 0:t[e];return void 0!==r?r.call(t,n):new RegExp(t)[e](String(n))},function(e){var r=n(t,e,this);if(r.done)return r.value;var o=i(e),a=String(this),l=o.lastIndex;c(l,0)||(o.lastIndex=0);var u=s(o,a);return c(o.lastIndex,l)||(o.lastIndex=l),null===u?-1:u.index}]}))},"861d":function(e,t){e.exports=function(e){return"object"===typeof e?null!==e:"function"===typeof e}},8875:function(e,t,n){var r,i,o;(function(n,c){i=[],r=c,o="function"===typeof r?r.apply(t,i):r,void 0===o||(e.exports=o)})("undefined"!==typeof self&&self,(function(){function e(){var t=Object.getOwnPropertyDescriptor(document,"currentScript");if(!t&&"currentScript"in document&&document.currentScript)return document.currentScript;if(t&&t.get!==e&&document.currentScript)return document.currentScript;try{throw new Error}catch(d){var n,r,i,o=/.*at [^(]*\((.*):(.+):(.+)\)$/gi,c=/@([^@]*):(\d+):(\d+)\s*$/gi,s=o.exec(d.stack)||c.exec(d.stack),a=s&&s[1]||!1,l=s&&s[2]||!1,u=document.location.href.replace(document.location.hash,""),f=document.getElementsByTagName("script");a===u&&(n=document.documentElement.outerHTML,r=new RegExp("(?:[^\\n]+?\\n){0,"+(l-2)+"}[^<]*\n\n\n","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","function isEmpty (opt) {\n if (opt === 0) return false\n if (Array.isArray(opt) && opt.length === 0) return true\n return !opt\n}\n\nfunction not (fun) {\n return (...params) => !fun(...params)\n}\n\nfunction includes (str, query) {\n /* istanbul ignore else */\n if (str === undefined) str = 'undefined'\n if (str === null) str = 'null'\n if (str === false) str = 'false'\n const text = str.toString().toLowerCase()\n return text.indexOf(query.trim()) !== -1\n}\n\nfunction filterOptions (options, search, label, customLabel) {\n return search ? options\n .filter((option) => includes(customLabel(option, label), search))\n .sort((a, b) => customLabel(a, label).length - customLabel(b, label).length) : options\n}\n\nfunction stripGroups (options) {\n return options.filter((option) => !option.$isLabel)\n}\n\nfunction flattenOptions (values, label) {\n return (options) =>\n options.reduce((prev, curr) => {\n /* istanbul ignore else */\n if (curr[values] && curr[values].length) {\n prev.push({\n $groupLabel: curr[label],\n $isLabel: true\n })\n return prev.concat(curr[values])\n }\n return prev\n }, [])\n}\n\nfunction filterGroups (search, label, values, groupLabel, customLabel) {\n return (groups) =>\n groups.map((group) => {\n /* istanbul ignore else */\n if (!group[values]) {\n console.warn(`Options passed to vue-multiselect do not contain groups, despite the config.`)\n return []\n }\n const groupOptions = filterOptions(group[values], search, label, customLabel)\n\n return groupOptions.length\n ? {\n [groupLabel]: group[groupLabel],\n [values]: groupOptions\n }\n : []\n })\n}\n\nconst flow = (...fns) => (x) => fns.reduce((v, f) => f(v), x)\n\nexport default {\n data () {\n return {\n search: '',\n isOpen: false,\n preferredOpenDirection: 'below',\n optimizedHeight: this.maxHeight\n }\n },\n props: {\n /**\n * Decide whether to filter the results based on search query.\n * Useful for async filtering, where we search through more complex data.\n * @type {Boolean}\n */\n internalSearch: {\n type: Boolean,\n default: true\n },\n /**\n * Array of available options: Objects, Strings or Integers.\n * If array of objects, visible label will default to option.label.\n * If `labal` prop is passed, label will equal option['label']\n * @type {Array}\n */\n options: {\n type: Array,\n required: true\n },\n /**\n * Equivalent to the `multiple` attribute on a `` input.\n * @default 'Select option'\n * @type {String}\n */\n placeholder: {\n type: String,\n default: 'Select option'\n },\n /**\n * Allow to remove all selected values\n * @default true\n * @type {Boolean}\n */\n allowEmpty: {\n type: Boolean,\n default: true\n },\n /**\n * Reset this.internalValue, this.search after this.internalValue changes.\n * Useful if want to create a stateless dropdown.\n * @default false\n * @type {Boolean}\n */\n resetAfter: {\n type: Boolean,\n default: false\n },\n /**\n * Enable/disable closing after selecting an option\n * @default true\n * @type {Boolean}\n */\n closeOnSelect: {\n type: Boolean,\n default: true\n },\n /**\n * Function to interpolate the custom label\n * @default false\n * @type {Function}\n */\n customLabel: {\n type: Function,\n default (option, label) {\n if (isEmpty(option)) return ''\n return label ? option[label] : option\n }\n },\n /**\n * Disable / Enable tagging\n * @default false\n * @type {Boolean}\n */\n taggable: {\n type: Boolean,\n default: false\n },\n /**\n * String to show when highlighting a potential tag\n * @default 'Press enter to create a tag'\n * @type {String}\n */\n tagPlaceholder: {\n type: String,\n default: 'Press enter to create a tag'\n },\n /**\n * By default new tags will appear above the search results.\n * Changing to 'bottom' will revert this behaviour\n * and will proritize the search results\n * @default 'top'\n * @type {String}\n */\n tagPosition: {\n type: String,\n default: 'top'\n },\n /**\n * Number of allowed selected options. No limit if 0.\n * @default 0\n * @type {Number}\n */\n max: {\n type: [Number, Boolean],\n default: false\n },\n /**\n * Will be passed with all events as second param.\n * Useful for identifying events origin.\n * @default null\n * @type {String|Integer}\n */\n id: {\n default: null\n },\n /**\n * Limits the options displayed in the dropdown\n * to the first X options.\n * @default 1000\n * @type {Integer}\n */\n optionsLimit: {\n type: Number,\n default: 1000\n },\n /**\n * Name of the property containing\n * the group values\n * @default 1000\n * @type {String}\n */\n groupValues: {\n type: String\n },\n /**\n * Name of the property containing\n * the group label\n * @default 1000\n * @type {String}\n */\n groupLabel: {\n type: String\n },\n /**\n * Allow to select all group values\n * by selecting the group label\n * @default false\n * @type {Boolean}\n */\n groupSelect: {\n type: Boolean,\n default: false\n },\n /**\n * Array of keyboard keys to block\n * when selecting\n * @default 1000\n * @type {String}\n */\n blockKeys: {\n type: Array,\n default () {\n return []\n }\n },\n /**\n * Prevent from wiping up the search value\n * @default false\n * @type {Boolean}\n */\n preserveSearch: {\n type: Boolean,\n default: false\n },\n /**\n * Select 1st options if value is empty\n * @default false\n * @type {Boolean}\n */\n preselectFirst: {\n type: Boolean,\n default: false\n },\n /**\n * Prevent autofocus\n * @default false\n * @type {Boolean}\n */\n preventAutofocus: {\n type: Boolean,\n default: false\n }\n },\n mounted () {\n /* istanbul ignore else */\n if (!this.multiple && this.max) {\n console.warn('[Vue-Multiselect warn]: Max prop should not be used when prop Multiple equals false.')\n }\n if (\n this.preselectFirst &&\n !this.internalValue.length &&\n this.options.length\n ) {\n this.select(this.filteredOptions[0])\n }\n },\n computed: {\n internalValue () {\n return this.modelValue || this.modelValue === 0\n ? Array.isArray(this.modelValue) ? this.modelValue : [this.modelValue]\n : []\n },\n filteredOptions () {\n const search = this.search || ''\n const normalizedSearch = search.toLowerCase().trim()\n\n let options = this.options.concat()\n\n /* istanbul ignore else */\n if (this.internalSearch) {\n options = this.groupValues\n ? this.filterAndFlat(options, normalizedSearch, this.label)\n : filterOptions(options, normalizedSearch, this.label, this.customLabel)\n } else {\n options = this.groupValues ? flattenOptions(this.groupValues, this.groupLabel)(options) : options\n }\n\n options = this.hideSelected\n ? options.filter(not(this.isSelected))\n : options\n\n /* istanbul ignore else */\n if (this.taggable && normalizedSearch.length && !this.isExistingOption(normalizedSearch)) {\n if (this.tagPosition === 'bottom') {\n options.push({isTag: true, label: search})\n } else {\n options.unshift({isTag: true, label: search})\n }\n }\n\n return options.slice(0, this.optionsLimit)\n },\n valueKeys () {\n if (this.trackBy) {\n return this.internalValue.map((element) => element[this.trackBy])\n } else {\n return this.internalValue\n }\n },\n optionKeys () {\n const options = this.groupValues ? this.flatAndStrip(this.options) : this.options\n return options.map((element) => this.customLabel(element, this.label).toString().toLowerCase())\n },\n currentOptionLabel () {\n return this.multiple\n ? this.searchable ? '' : this.placeholder\n : this.internalValue.length\n ? this.getOptionLabel(this.internalValue[0])\n : this.searchable ? '' : this.placeholder\n }\n },\n watch: {\n internalValue: {\n handler () {\n /* istanbul ignore else */\n if (this.resetAfter && this.internalValue.length) {\n this.search = ''\n this.$emit('update:modelValue', this.multiple ? [] : null)\n }\n },\n deep: true\n },\n search () {\n this.$emit('search-change', this.search)\n }\n },\n emits: ['open', 'search-change', 'close', 'select', 'update:modelValue', 'remove', 'tag'],\n methods: {\n /**\n * Returns the internalValue in a way it can be emited to the parent\n * @returns {Object||Array||String||Integer}\n */\n getValue () {\n return this.multiple\n ? this.internalValue\n : this.internalValue.length === 0\n ? null\n : this.internalValue[0]\n },\n /**\n * Filters and then flattens the options list\n * @param {Array}\n * @return {Array} returns a filtered and flat options list\n */\n filterAndFlat (options, search, label) {\n return flow(\n filterGroups(search, label, this.groupValues, this.groupLabel, this.customLabel),\n flattenOptions(this.groupValues, this.groupLabel)\n )(options)\n },\n /**\n * Flattens and then strips the group labels from the options list\n * @param {Array}\n * @return {Array} returns a flat options list without group labels\n */\n flatAndStrip (options) {\n return flow(\n flattenOptions(this.groupValues, this.groupLabel),\n stripGroups\n )(options)\n },\n /**\n * Updates the search value\n * @param {String}\n */\n updateSearch (query) {\n this.search = query\n },\n /**\n * Finds out if the given query is already present\n * in the available options\n * @param {String}\n * @return {Boolean} returns true if element is available\n */\n isExistingOption (query) {\n return !this.options\n ? false\n : this.optionKeys.indexOf(query) > -1\n },\n /**\n * Finds out if the given element is already present\n * in the result value\n * @param {Object||String||Integer} option passed element to check\n * @returns {Boolean} returns true if element is selected\n */\n isSelected (option) {\n const opt = this.trackBy\n ? option[this.trackBy]\n : option\n return this.valueKeys.indexOf(opt) > -1\n },\n /**\n * Finds out if the given option is disabled\n * @param {Object||String||Integer} option passed element to check\n * @returns {Boolean} returns true if element is disabled\n */\n isOptionDisabled (option) {\n return !!option.$isDisabled\n },\n /**\n * Returns empty string when options is null/undefined\n * Returns tag query if option is tag.\n * Returns the customLabel() results and casts it to string.\n *\n * @param {Object||String||Integer} Passed option\n * @returns {Object||String}\n */\n getOptionLabel (option) {\n if (isEmpty(option)) return ''\n /* istanbul ignore else */\n if (option.isTag) return option.label\n /* istanbul ignore else */\n if (option.$isLabel) return option.$groupLabel\n\n const label = this.customLabel(option, this.label)\n /* istanbul ignore else */\n if (isEmpty(label)) return ''\n return label\n },\n /**\n * Add the given option to the list of selected options\n * or sets the option as the selected option.\n * If option is already selected -> remove it from the results.\n *\n * @param {Object||String||Integer} option to select/deselect\n * @param {Boolean} block removing\n */\n select (option, key) {\n /* istanbul ignore else */\n if (option.$isLabel && this.groupSelect) {\n this.selectGroup(option)\n return\n }\n if (this.blockKeys.indexOf(key) !== -1 ||\n this.disabled ||\n option.$isDisabled ||\n option.$isLabel\n ) return\n /* istanbul ignore else */\n if (this.max && this.multiple && this.internalValue.length === this.max) return\n /* istanbul ignore else */\n if (key === 'Tab' && !this.pointerDirty) return\n if (option.isTag) {\n this.$emit('tag', option.label, this.id)\n this.search = ''\n if (this.closeOnSelect && !this.multiple) this.deactivate()\n } else {\n const isSelected = this.isSelected(option)\n\n if (isSelected) {\n if (key !== 'Tab') this.removeElement(option)\n return\n }\n\n if (this.multiple) {\n this.$emit('update:modelValue', this.internalValue.concat([option]))\n } else {\n this.$emit('update:modelValue', option)\n }\n\n this.$emit('select', option, this.id)\n\n /* istanbul ignore else */\n if (this.clearOnSelect) this.search = ''\n }\n /* istanbul ignore else */\n if (this.closeOnSelect) this.deactivate()\n },\n /**\n * Add the given group options to the list of selected options\n * If all group optiona are already selected -> remove it from the results.\n *\n * @param {Object||String||Integer} group to select/deselect\n */\n selectGroup (selectedGroup) {\n const group = this.options.find((option) => {\n return option[this.groupLabel] === selectedGroup.$groupLabel\n })\n\n if (!group) return\n\n if (this.wholeGroupSelected(group)) {\n this.$emit('remove', group[this.groupValues], this.id)\n\n const groupValues = this.trackBy ? group[this.groupValues].map(val => val[this.trackBy]) : group[this.groupValues]\n const newValue = this.internalValue.filter(\n option => groupValues.indexOf(this.trackBy ? option[this.trackBy] : option) === -1\n )\n\n this.$emit('update:modelValue', newValue)\n } else {\n let optionsToAdd = group[this.groupValues].filter(\n option => !(this.isOptionDisabled(option) || this.isSelected(option))\n )\n\n // if max is defined then just select options respecting max\n if (this.max) {\n optionsToAdd.splice(this.max - this.internalValue.length)\n }\n\n this.$emit('select', optionsToAdd, this.id)\n this.$emit(\n 'update:modelValue',\n this.internalValue.concat(optionsToAdd)\n )\n }\n\n if (this.closeOnSelect) this.deactivate()\n },\n /**\n * Helper to identify if all values in a group are selected\n *\n * @param {Object} group to validated selected values against\n */\n wholeGroupSelected (group) {\n return group[this.groupValues].every((option) => this.isSelected(option) || this.isOptionDisabled(option)\n )\n },\n /**\n * Helper to identify if all values in a group are disabled\n *\n * @param {Object} group to check for disabled values\n */\n wholeGroupDisabled (group) {\n return group[this.groupValues].every(this.isOptionDisabled)\n },\n /**\n * Removes the given option from the selected options.\n * Additionally checks this.allowEmpty prop if option can be removed when\n * it is the last selected option.\n *\n * @param {type} option description\n * @return {type} description\n */\n removeElement (option, shouldClose = true) {\n /* istanbul ignore else */\n if (this.disabled) return\n /* istanbul ignore else */\n if (option.$isDisabled) return\n /* istanbul ignore else */\n if (!this.allowEmpty && this.internalValue.length <= 1) {\n this.deactivate()\n return\n }\n\n const index = typeof option === 'object'\n ? this.valueKeys.indexOf(option[this.trackBy])\n : this.valueKeys.indexOf(option)\n\n if (this.multiple) {\n const newValue = this.internalValue.slice(0, index).concat(this.internalValue.slice(index + 1))\n this.$emit('update:modelValue', newValue)\n } else {\n this.$emit('update:modelValue', null)\n }\n this.$emit('remove', option, this.id)\n\n /* istanbul ignore else */\n if (this.closeOnSelect && shouldClose) this.deactivate()\n },\n /**\n * Calls this.removeElement() with the last element\n * from this.internalValue (selected element Array)\n *\n * @fires this#removeElement\n */\n removeLastElement () {\n /* istanbul ignore else */\n if (this.blockKeys.indexOf('Delete') !== -1) return\n /* istanbul ignore else */\n if (this.search.length === 0 && Array.isArray(this.internalValue) && this.internalValue.length) {\n this.removeElement(this.internalValue[this.internalValue.length - 1], false)\n }\n },\n /**\n * Opens the multiselect’s dropdown.\n * Sets this.isOpen to TRUE\n */\n activate () {\n /* istanbul ignore else */\n if (this.isOpen || this.disabled) return\n\n this.adjustPosition()\n /* istanbul ignore else */\n if (this.groupValues && this.pointer === 0 && this.filteredOptions.length) {\n this.pointer = 1\n }\n\n this.isOpen = true\n /* istanbul ignore else */\n if (this.searchable) {\n if (!this.preserveSearch) this.search = ''\n if (!this.preventAutofocus) this.$nextTick(() => this.$refs.search && this.$refs.search.focus())\n } else if (!this.preventAutofocus) {\n if (typeof this.$el !== 'undefined') this.$el.focus()\n }\n this.$emit('open', this.id)\n },\n /**\n * Closes the multiselect’s dropdown.\n * Sets this.isOpen to FALSE\n */\n deactivate () {\n /* istanbul ignore else */\n if (!this.isOpen) return\n\n this.isOpen = false\n /* istanbul ignore else */\n if (this.searchable) {\n if (this.$refs.search !== null && typeof this.$refs.search !== 'undefined') this.$refs.search.blur()\n } else {\n if (typeof this.$el !== 'undefined') this.$el.blur()\n }\n if (!this.preserveSearch) this.search = ''\n this.$emit('close', this.getValue(), this.id)\n },\n /**\n * Call this.activate() or this.deactivate()\n * depending on this.isOpen value.\n *\n * @fires this#activate || this#deactivate\n * @property {Boolean} isOpen indicates if dropdown is open\n */\n toggle () {\n this.isOpen\n ? this.deactivate()\n : this.activate()\n },\n /**\n * Updates the hasEnoughSpace variable used for\n * detecting where to expand the dropdown\n */\n adjustPosition () {\n if (typeof window === 'undefined') return\n\n const spaceAbove = this.$el.getBoundingClientRect().top\n const spaceBelow = window.innerHeight - this.$el.getBoundingClientRect().bottom\n const hasEnoughSpaceBelow = spaceBelow > this.maxHeight\n\n if (hasEnoughSpaceBelow || spaceBelow > spaceAbove || this.openDirection === 'below' || this.openDirection === 'bottom') {\n this.preferredOpenDirection = 'below'\n this.optimizedHeight = Math.min(spaceBelow - 40, this.maxHeight)\n } else {\n this.preferredOpenDirection = 'above'\n this.optimizedHeight = Math.min(spaceAbove - 40, this.maxHeight)\n }\n }\n }\n}\n","export default {\n data () {\n return {\n pointer: 0,\n pointerDirty: false\n }\n },\n props: {\n /**\n * Enable/disable highlighting of the pointed value.\n * @type {Boolean}\n * @default true\n */\n showPointer: {\n type: Boolean,\n default: true\n },\n optionHeight: {\n type: Number,\n default: 40\n }\n },\n computed: {\n pointerPosition () {\n return this.pointer * this.optionHeight\n },\n visibleElements () {\n return this.optimizedHeight / this.optionHeight\n }\n },\n watch: {\n filteredOptions () {\n this.pointerAdjust()\n },\n isOpen () {\n this.pointerDirty = false\n },\n pointer () {\n this.$refs.search && this.$refs.search.setAttribute('aria-activedescendant', this.id + '-' + this.pointer.toString())\n }\n },\n methods: {\n optionHighlight (index, option) {\n return {\n 'multiselect__option--highlight': index === this.pointer && this.showPointer,\n 'multiselect__option--selected': this.isSelected(option)\n }\n },\n groupHighlight (index, selectedGroup) {\n if (!this.groupSelect) {\n return [\n 'multiselect__option--disabled',\n {'multiselect__option--group': selectedGroup.$isLabel}\n ]\n }\n\n const group = this.options.find((option) => {\n return option[this.groupLabel] === selectedGroup.$groupLabel\n })\n\n return group && !this.wholeGroupDisabled(group) ? [\n 'multiselect__option--group',\n {'multiselect__option--highlight': index === this.pointer && this.showPointer},\n {'multiselect__option--group-selected': this.wholeGroupSelected(group)}\n ] : 'multiselect__option--disabled'\n },\n addPointerElement ({key} = 'Enter') {\n /* istanbul ignore else */\n if (this.filteredOptions.length > 0) {\n this.select(this.filteredOptions[this.pointer], key)\n }\n this.pointerReset()\n },\n pointerForward () {\n /* istanbul ignore else */\n if (this.pointer < this.filteredOptions.length - 1) {\n this.pointer++\n /* istanbul ignore next */\n if (this.$refs.list.scrollTop <= this.pointerPosition - (this.visibleElements - 1) * this.optionHeight) {\n this.$refs.list.scrollTop = this.pointerPosition - (this.visibleElements - 1) * this.optionHeight\n }\n /* istanbul ignore else */\n if (\n this.filteredOptions[this.pointer] &&\n this.filteredOptions[this.pointer].$isLabel &&\n !this.groupSelect\n ) this.pointerForward()\n }\n this.pointerDirty = true\n },\n pointerBackward () {\n if (this.pointer > 0) {\n this.pointer--\n /* istanbul ignore else */\n if (this.$refs.list.scrollTop >= this.pointerPosition) {\n this.$refs.list.scrollTop = this.pointerPosition\n }\n /* istanbul ignore else */\n if (\n this.filteredOptions[this.pointer] &&\n this.filteredOptions[this.pointer].$isLabel &&\n !this.groupSelect\n ) this.pointerBackward()\n } else {\n /* istanbul ignore else */\n if (\n this.filteredOptions[this.pointer] &&\n this.filteredOptions[0].$isLabel &&\n !this.groupSelect\n ) this.pointerForward()\n }\n this.pointerDirty = true\n },\n pointerReset () {\n /* istanbul ignore else */\n if (!this.closeOnSelect) return\n this.pointer = 0\n /* istanbul ignore else */\n if (this.$refs.list) {\n this.$refs.list.scrollTop = 0\n }\n },\n pointerAdjust () {\n /* istanbul ignore else */\n if (this.pointer >= this.filteredOptions.length - 1) {\n this.pointer = this.filteredOptions.length\n ? this.filteredOptions.length - 1\n : 0\n }\n\n if (this.filteredOptions.length > 0 &&\n this.filteredOptions[this.pointer].$isLabel &&\n !this.groupSelect\n ) {\n this.pointerForward()\n }\n },\n pointerSet (index) {\n this.pointer = index\n this.pointerDirty = true\n }\n }\n}\n","import { render } from \"./Multiselect.vue?vue&type=template&id=2fe91855\"\nimport script from \"./Multiselect.vue?vue&type=script&lang=js\"\nexport * from \"./Multiselect.vue?vue&type=script&lang=js\"\n\nimport \"./Multiselect.vue?vue&type=style&index=0&id=2fe91855&lang=css\"\n\nimport exportComponent from \"/home/matt/git/vue-multiselect/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import Multiselect from './Multiselect.vue'\nimport multiselectMixin from './multiselectMixin.js'\nimport pointerMixin from './pointerMixin.js'\n\nexport default Multiselect\n\nexport {Multiselect, multiselectMixin, pointerMixin}\n","import './setPublicPath'\nimport mod from '~entry'\nexport default mod\nexport * from '~entry'\n","'use strict';\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar nativeSlice = [].slice;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = toLength(O.length);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === Array || Constructor === undefined) {\n return nativeSlice.call(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n /* global Symbol -- safe */\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/CNAME b/docs/CNAME index 45644587..8f5b7e4a 100644 --- a/docs/CNAME +++ b/docs/CNAME @@ -1 +1 @@ -vue-multiselect.js.org +vue-multiselect.js.org \ No newline at end of file diff --git a/docs/assets/ActionDispatcher-09ad388b.js b/docs/assets/ActionDispatcher-09ad388b.js new file mode 100644 index 00000000..cf3fea14 --- /dev/null +++ b/docs/assets/ActionDispatcher-09ad388b.js @@ -0,0 +1,37 @@ +const e=` + + + + + +
+ + + + + \ No newline at end of file + ;(function() { + var wf = document.createElement('script') + wf.src = ('https:' == document.location.protocol ? 'https' : 'http') + + '://ajax.googleapis.com/ajax/libs/webfont/1.5.18/webfont.js' + wf.type = 'text/javascript' + wf.async = 'true' + var s = document.getElementsByTagName('script')[0] + s.parentNode.insertBefore(wf, s) + })() + + + diff --git a/docs/public/CNAME b/docs/public/CNAME new file mode 100644 index 00000000..8f5b7e4a --- /dev/null +++ b/docs/public/CNAME @@ -0,0 +1 @@ +vue-multiselect.js.org \ No newline at end of file diff --git a/docs/shiki/dist/chunks/onig-56b7efa9.mjs b/docs/shiki/dist/chunks/onig-56b7efa9.mjs new file mode 100644 index 00000000..e1c64395 --- /dev/null +++ b/docs/shiki/dist/chunks/onig-56b7efa9.mjs @@ -0,0 +1,41 @@ +function _loadWasmModule (sync, filepath, src, imports) { + function _instantiateOrCompile(source, imports, stream) { + var instantiateFunc = stream ? WebAssembly.instantiateStreaming : WebAssembly.instantiate; + var compileFunc = stream ? WebAssembly.compileStreaming : WebAssembly.compile; + + if (imports) { + return instantiateFunc(source, imports) + } else { + return compileFunc(source) + } + } + + +var buf = null; +if (filepath) { + +return _instantiateOrCompile(fetch(filepath), imports, true); + +} + + +var raw = globalThis.atob(src); +var rawLength = raw.length; +buf = new Uint8Array(new ArrayBuffer(rawLength)); +for(var i = 0; i < rawLength; i++) { + buf[i] = raw.charCodeAt(i); +} + + + + if(sync) { + var mod = new WebAssembly.Module(buf); + return imports ? new WebAssembly.Instance(mod, imports) : mod + } else { + return _instantiateOrCompile(buf, imports, false) + } +} + +function onig(imports){return _loadWasmModule(0, './onig.wasm', null, imports)} + +export { onig as default }; diff --git a/docs/shiki/dist/index.browser.mjs b/docs/shiki/dist/index.browser.mjs new file mode 100644 index 00000000..643c467c --- /dev/null +++ b/docs/shiki/dist/index.browser.mjs @@ -0,0 +1 @@ +const e=["css-variables","dark-plus","dracula-soft","dracula","github-dark-dimmed","github-dark","github-light","hc_light","light-plus","material-theme-darker","material-theme-lighter","material-theme-ocean","material-theme-palenight","material-theme","min-dark","min-light","monokai","nord","one-dark-pro","poimandres","rose-pine-dawn","rose-pine-moon","rose-pine","slack-dark","slack-ochin","solarized-dark","solarized-light","vitesse-dark","vitesse-light"],t=[{id:"abap",scopeName:"source.abap",path:"abap.tmLanguage.json",displayName:"ABAP",samplePath:"abap.sample"},{id:"actionscript-3",scopeName:"source.actionscript.3",path:"actionscript-3.tmLanguage.json",displayName:"ActionScript",samplePath:"actionscript-3.sample"},{id:"ada",scopeName:"source.ada",path:"ada.tmLanguage.json",displayName:"Ada",samplePath:"ada.sample"},{id:"apache",scopeName:"source.apacheconf",path:"apache.tmLanguage.json",displayName:"Apache Conf",samplePath:"apache.sample"},{id:"apex",scopeName:"source.apex",path:"apex.tmLanguage.json",displayName:"Apex",samplePath:"apex.sample"},{id:"apl",scopeName:"source.apl",path:"apl.tmLanguage.json",displayName:"APL",samplePath:"apl.sample",embeddedLangs:["html","xml","css","javascript","json"]},{id:"applescript",scopeName:"source.applescript",path:"applescript.tmLanguage.json",displayName:"AppleScript",samplePath:"applescript.sample"},{id:"ara",scopeName:"source.ara",path:"ara.tmLanguage.json",displayName:"Ara",samplePath:"ara.sample"},{id:"asm",scopeName:"source.asm.x86_64",path:"asm.tmLanguage.json",displayName:"Assembly",samplePath:"asm.sample"},{id:"astro",scopeName:"source.astro",path:"astro.tmLanguage.json",displayName:"Astro",samplePath:"astro.sample",embeddedLangs:["json","javascript","typescript","stylus","sass","css","scss","less","postcss","tsx"]},{id:"awk",scopeName:"source.awk",path:"awk.tmLanguage.json",displayName:"AWK",samplePath:"awk.sample"},{id:"ballerina",scopeName:"source.ballerina",path:"ballerina.tmLanguage.json",displayName:"Ballerina",samplePath:"ballerina.sample"},{id:"bat",scopeName:"source.batchfile",path:"bat.tmLanguage.json",displayName:"Batch",samplePath:"bat.sample",aliases:["batch"]},{id:"beancount",scopeName:"text.beancount",path:"beancount.tmLanguage.json",displayName:"Beancount",samplePath:"beancount.sample"},{id:"berry",scopeName:"source.berry",path:"berry.tmLanguage.json",displayName:"Berry",samplePath:"berry.sample",aliases:["be"]},{id:"bibtex",scopeName:"text.bibtex",path:"bibtex.tmLanguage.json",displayName:"BibTeX",samplePath:"bibtex.sample"},{id:"bicep",scopeName:"source.bicep",path:"bicep.tmLanguage.json",displayName:"Bicep",samplePath:"bicep.sample"},{id:"blade",scopeName:"text.html.php.blade",path:"blade.tmLanguage.json",displayName:"Blade",samplePath:"blade.sample",embeddedLangs:["html","xml","sql","javascript","json","css"]},{id:"c",scopeName:"source.c",path:"c.tmLanguage.json",displayName:"C",samplePath:"c.sample"},{id:"cadence",scopeName:"source.cadence",path:"cadence.tmLanguage.json",displayName:"Cadence",samplePath:"cadence.sample",aliases:["cdc"]},{id:"clarity",scopeName:"source.clar",path:"clarity.tmLanguage.json",displayName:"Clarity",samplePath:"clarity.sample"},{id:"clojure",scopeName:"source.clojure",path:"clojure.tmLanguage.json",displayName:"Clojure",samplePath:"clojure.sample",aliases:["clj"]},{id:"cmake",scopeName:"source.cmake",path:"cmake.tmLanguage.json",displayName:"CMake",samplePath:"cmake.sample"},{id:"cobol",scopeName:"source.cobol",path:"cobol.tmLanguage.json",displayName:"COBOL",samplePath:"cobol.sample",embeddedLangs:["sql","html","java"]},{id:"codeql",scopeName:"source.ql",path:"codeql.tmLanguage.json",displayName:"CodeQL",samplePath:"codeql.sample",aliases:["ql"]},{id:"coffee",scopeName:"source.coffee",path:"coffee.tmLanguage.json",displayName:"CoffeeScript",samplePath:"coffee.sample",embeddedLangs:["javascript"]},{id:"cpp",scopeName:"source.cpp",path:"cpp.tmLanguage.json",displayName:"C++",samplePath:"cpp.sample",aliases:["c++"],embeddedLangs:["glsl","sql"]},{id:"crystal",scopeName:"source.crystal",path:"crystal.tmLanguage.json",displayName:"Crystal",samplePath:"crystal.sample",embeddedLangs:["html","sql","css","c","javascript","shellscript"]},{id:"csharp",scopeName:"source.cs",path:"csharp.tmLanguage.json",displayName:"C#",samplePath:"csharp.sample",aliases:["c#","cs"]},{id:"css",scopeName:"source.css",path:"css.tmLanguage.json",displayName:"CSS",samplePath:"css.sample"},{id:"cue",scopeName:"source.cue",path:"cue.tmLanguage.json",displayName:"CUE",samplePath:"cue.sample"},{id:"cypher",scopeName:"source.cypher",path:"cypher.tmLanguage.json",displayName:"Cypher",samplePath:"cypher.sample",aliases:["cql"]},{id:"d",scopeName:"source.d",path:"d.tmLanguage.json",displayName:"D",samplePath:"d.sample"},{id:"dart",scopeName:"source.dart",path:"dart.tmLanguage.json",displayName:"Dart",samplePath:"dart.sample"},{id:"dax",scopeName:"source.dax",path:"dax.tmLanguage.json",displayName:"DAX",samplePath:"dax.sample"},{id:"diff",scopeName:"source.diff",path:"diff.tmLanguage.json",displayName:"Diff",samplePath:"diff.sample"},{id:"docker",scopeName:"source.dockerfile",path:"docker.tmLanguage.json",displayName:"Docker",samplePath:"docker.sample",aliases:["dockerfile"]},{id:"dream-maker",scopeName:"source.dm",path:"dream-maker.tmLanguage.json",displayName:"Dream Maker",samplePath:"dream-maker.sample"},{id:"elixir",scopeName:"source.elixir",path:"elixir.tmLanguage.json",displayName:"Elixir",samplePath:"elixir.sample",embeddedLangs:["html"]},{id:"elm",scopeName:"source.elm",path:"elm.tmLanguage.json",displayName:"Elm",samplePath:"elm.sample",embeddedLangs:["glsl"]},{id:"erb",scopeName:"text.html.erb",path:"erb.tmLanguage.json",displayName:"ERB",samplePath:"erb.sample",embeddedLangs:["html","ruby"]},{id:"erlang",scopeName:"source.erlang",path:"erlang.tmLanguage.json",displayName:"Erlang",samplePath:"erlang.sample",aliases:["erl"]},{id:"fish",scopeName:"source.fish",path:"fish.tmLanguage.json",displayName:"Fish",samplePath:"fish.sample"},{id:"fsharp",scopeName:"source.fsharp",path:"fsharp.tmLanguage.json",displayName:"F#",samplePath:"fsharp.sample",aliases:["f#","fs"],embeddedLangs:["markdown"]},{id:"gdresource",scopeName:"source.gdresource",path:"gdresource.tmLanguage.json",displayName:"GDResource",samplePath:"gdresource.sample",embeddedLangs:["gdshader","gdscript"]},{id:"gdscript",scopeName:"source.gdscript",path:"gdscript.tmLanguage.json",displayName:"GDScript",samplePath:"gdscript.sample"},{id:"gdshader",scopeName:"source.gdshader",path:"gdshader.tmLanguage.json",displayName:"GDShader",samplePath:"gdshader.sample"},{id:"gherkin",scopeName:"text.gherkin.feature",path:"gherkin.tmLanguage.json",displayName:"Gherkin",samplePath:"gherkin.sample"},{id:"git-commit",scopeName:"text.git-commit",path:"git-commit.tmLanguage.json",displayName:"Git Commit Message",embeddedLangs:["diff"]},{id:"git-rebase",scopeName:"text.git-rebase",path:"git-rebase.tmLanguage.json",displayName:"Git Rebase Message",embeddedLangs:["shellscript"]},{id:"glimmer-js",scopeName:"source.gjs",path:"glimmer-js.tmLanguage.json",displayName:"Glimmer JS",aliases:["gjs"],embeddedLangs:["javascript","handlebars"]},{id:"glimmer-ts",scopeName:"source.gts",path:"glimmer-ts.tmLanguage.json",displayName:"Glimmer TS",aliases:["gts"],embeddedLangs:["typescript","handlebars"]},{id:"glsl",scopeName:"source.glsl",path:"glsl.tmLanguage.json",displayName:"GLSL",samplePath:"glsl.sample",embeddedLangs:["c"]},{id:"gnuplot",scopeName:"source.gnuplot",path:"gnuplot.tmLanguage.json",displayName:"Gnuplot",samplePath:"gnuplot.sample"},{id:"go",scopeName:"source.go",path:"go.tmLanguage.json",displayName:"Go",samplePath:"go.sample"},{id:"graphql",scopeName:"source.graphql",path:"graphql.tmLanguage.json",displayName:"GraphQL",samplePath:"graphql.sample",aliases:["gql"],embeddedLangs:["javascript","typescript","jsx","tsx"]},{id:"groovy",scopeName:"source.groovy",path:"groovy.tmLanguage.json",displayName:"Groovy",samplePath:"groovy.sample"},{id:"hack",scopeName:"source.hack",path:"hack.tmLanguage.json",displayName:"Hack",samplePath:"hack.sample",embeddedLangs:["html","sql"]},{id:"haml",scopeName:"text.haml",path:"haml.tmLanguage.json",displayName:"Ruby Haml",samplePath:"haml.sample",embeddedLangs:["ruby","javascript","sass","coffee","markdown","css"]},{id:"handlebars",scopeName:"text.html.handlebars",path:"handlebars.tmLanguage.json",displayName:"Handlebars",samplePath:"handlebars.sample",aliases:["hbs"],embeddedLangs:["html","css","javascript","yaml"]},{id:"haskell",scopeName:"source.haskell",path:"haskell.tmLanguage.json",displayName:"Haskell",samplePath:"haskell.sample",aliases:["hs"]},{id:"hcl",scopeName:"source.hcl",path:"hcl.tmLanguage.json",displayName:"HashiCorp HCL",samplePath:"hcl.sample"},{id:"hjson",scopeName:"source.hjson",path:"hjson.tmLanguage.json",displayName:"Hjson",samplePath:"hjson.sample"},{id:"hlsl",scopeName:"source.hlsl",path:"hlsl.tmLanguage.json",displayName:"HLSL",samplePath:"hlsl.sample"},{id:"html",scopeName:"text.html.basic",path:"html.tmLanguage.json",displayName:"HTML",samplePath:"html.sample",embeddedLangs:["javascript","css"]},{id:"http",scopeName:"source.http",path:"http.tmLanguage.json",displayName:"HTTP",samplePath:"http.sample",embeddedLangs:["shellscript","json","xml","graphql"]},{id:"imba",scopeName:"source.imba",path:"imba.tmLanguage.json",displayName:"Imba",samplePath:"imba.sample"},{id:"ini",scopeName:"source.ini",path:"ini.tmLanguage.json",displayName:"INI",samplePath:"ini.sample",aliases:["properties"]},{id:"java",scopeName:"source.java",path:"java.tmLanguage.json",displayName:"Java",samplePath:"java.sample"},{id:"javascript",scopeName:"source.js",path:"javascript.tmLanguage.json",displayName:"JavaScript",samplePath:"javascript.sample",aliases:["js"]},{id:"jinja-html",scopeName:"text.html.jinja",path:"jinja-html.tmLanguage.json",displayName:"Jinja",samplePath:"jinja-html.sample",embeddedLangs:["html"]},{id:"jison",scopeName:"source.jison",path:"jison.tmLanguage.json",displayName:"Jison",samplePath:"jison.sample",embeddedLangs:["javascript"]},{id:"json",scopeName:"source.json",path:"json.tmLanguage.json",displayName:"JSON",samplePath:"json.sample"},{id:"json5",scopeName:"source.json5",path:"json5.tmLanguage.json",displayName:"JSON5",samplePath:"json5.sample"},{id:"jsonc",scopeName:"source.json.comments",path:"jsonc.tmLanguage.json",displayName:"JSON with Comments",samplePath:"jsonc.sample"},{id:"jsonl",scopeName:"source.json.lines",path:"jsonl.tmLanguage.json",displayName:"JSON Lines",samplePath:"jsonl.sample"},{id:"jsonnet",scopeName:"source.jsonnet",path:"jsonnet.tmLanguage.json",displayName:"Jsonnet",samplePath:"jsonnet.sample"},{id:"jssm",scopeName:"source.jssm",path:"jssm.tmLanguage.json",displayName:"JSSM",samplePath:"jssm.sample",aliases:["fsl"]},{id:"jsx",scopeName:"source.js.jsx",path:"jsx.tmLanguage.json",displayName:"JSX",samplePath:"jsx.sample"},{id:"julia",scopeName:"source.julia",path:"julia.tmLanguage.json",displayName:"Julia",samplePath:"julia.sample",embeddedLangs:["cpp","python","javascript","r","sql"]},{id:"kotlin",scopeName:"source.kotlin",path:"kotlin.tmLanguage.json",displayName:"Kotlin",samplePath:"kotlin.sample",aliases:["kt","kts"]},{id:"kusto",scopeName:"source.kusto",path:"kusto.tmLanguage.json",displayName:"Kusto",samplePath:"kusto.sample",aliases:["kql"]},{id:"latex",scopeName:"text.tex.latex",path:"latex.tmLanguage.json",displayName:"LaTeX",samplePath:"latex.sample",embeddedLangs:["tex","css","haskell","html","xml","java","lua","julia","ruby","javascript","typescript","python","yaml","rust","scala","gnuplot"]},{id:"less",scopeName:"source.css.less",path:"less.tmLanguage.json",displayName:"Less",samplePath:"less.sample",embeddedLangs:["css"]},{id:"liquid",scopeName:"text.html.liquid",path:"liquid.tmLanguage.json",displayName:"Liquid",samplePath:"liquid.sample",embeddedLangs:["html","css","json","javascript"]},{id:"lisp",scopeName:"source.lisp",path:"lisp.tmLanguage.json",displayName:"Lisp",samplePath:"lisp.sample"},{id:"logo",scopeName:"source.logo",path:"logo.tmLanguage.json",displayName:"Logo",samplePath:"logo.sample"},{id:"lua",scopeName:"source.lua",path:"lua.tmLanguage.json",displayName:"Lua",samplePath:"lua.sample",embeddedLangs:["c"]},{id:"make",scopeName:"source.makefile",path:"make.tmLanguage.json",displayName:"Makefile",samplePath:"make.sample",aliases:["makefile"]},{id:"markdown",scopeName:"text.html.markdown",path:"markdown.tmLanguage.json",displayName:"Markdown",samplePath:"markdown.sample",aliases:["md"],embeddedLangs:["css","html","ini","java","lua","make","perl","r","ruby","php","sql","vb","xml","xsl","yaml","bat","clojure","coffee","c","cpp","diff","docker","git-commit","git-rebase","go","groovy","pug","javascript","json","jsonc","less","objective-c","swift","scss","raku","powershell","python","julia","rust","scala","shellscript","typescript","tsx","csharp","fsharp","dart","handlebars","erlang","elixir","latex","bibtex"]},{id:"marko",scopeName:"text.marko",path:"marko.tmLanguage.json",displayName:"Marko",samplePath:"marko.sample",embeddedLangs:["css","less","scss","javascript"]},{id:"matlab",scopeName:"source.matlab",path:"matlab.tmLanguage.json",displayName:"MATLAB",samplePath:"matlab.sample"},{id:"mdc",scopeName:"text.markdown.mdc",path:"mdc.tmLanguage.json",displayName:"mdc",samplePath:"mdc.sample",embeddedLangs:["markdown","yaml"]},{id:"mdx",scopeName:"source.mdx",path:"mdx.tmLanguage.json",displayName:"MDX",samplePath:"mdx.sample",embeddedLangs:["tsx","toml","yaml","c","clojure","coffee","cpp","csharp","css","diff","docker","elixir","elm","erlang","go","graphql","haskell","html","ini","java","javascript","json","julia","kotlin","less","lua","make","markdown","objective-c","perl","python","r","ruby","rust","scala","scss","shellscript","shellsession","sql","xml","swift","typescript"]},{id:"mermaid",scopeName:"source.mermaid",path:"mermaid.tmLanguage.json",displayName:"Mermaid",samplePath:"mermaid.sample"},{id:"mojo",scopeName:"source.mojo",path:"mojo.tmLanguage.json",displayName:"MagicPython",samplePath:"mojo.sample"},{id:"narrat",scopeName:"source.narrat",path:"narrat.tmLanguage.json",displayName:"Narrat Language",samplePath:"narrat.sample",aliases:["nar"]},{id:"nextflow",scopeName:"source.nextflow",path:"nextflow.tmLanguage.json",displayName:"Nextflow",samplePath:"nextflow.sample",aliases:["nf"]},{id:"nginx",scopeName:"source.nginx",path:"nginx.tmLanguage.json",displayName:"Nginx",samplePath:"nginx.sample",embeddedLangs:["lua"]},{id:"nim",scopeName:"source.nim",path:"nim.tmLanguage.json",displayName:"Nim",samplePath:"nim.sample",embeddedLangs:["c","html","xml","javascript","css","glsl","markdown"]},{id:"nix",scopeName:"source.nix",path:"nix.tmLanguage.json",displayName:"Nix",samplePath:"nix.sample"},{id:"objective-c",scopeName:"source.objc",path:"objective-c.tmLanguage.json",displayName:"Objective-C",samplePath:"objective-c.sample",aliases:["objc"]},{id:"objective-cpp",scopeName:"source.objcpp",path:"objective-cpp.tmLanguage.json",displayName:"Objective-C++",samplePath:"objective-cpp.sample"},{id:"ocaml",scopeName:"source.ocaml",path:"ocaml.tmLanguage.json",displayName:"OCaml",samplePath:"ocaml.sample"},{id:"pascal",scopeName:"source.pascal",path:"pascal.tmLanguage.json",displayName:"Pascal",samplePath:"pascal.sample"},{id:"perl",scopeName:"source.perl",path:"perl.tmLanguage.json",displayName:"Perl",samplePath:"perl.sample",embeddedLangs:["html","xml","css","javascript","sql"]},{id:"php",scopeName:"source.php",path:"php.tmLanguage.json",displayName:"PHP",samplePath:"php.sample",embeddedLangs:["html","xml","sql","javascript","json","css"]},{id:"plsql",scopeName:"source.plsql.oracle",path:"plsql.tmLanguage.json",displayName:"PL/SQL",samplePath:"plsql.sample"},{id:"postcss",scopeName:"source.css.postcss",path:"postcss.tmLanguage.json",displayName:"PostCSS",samplePath:"postcss.sample"},{id:"powerquery",scopeName:"source.powerquery",path:"powerquery.tmLanguage.json",displayName:"PowerQuery",samplePath:"powerquery.sample"},{id:"powershell",scopeName:"source.powershell",path:"powershell.tmLanguage.json",displayName:"PowerShell",samplePath:"powershell.sample",aliases:["ps","ps1"]},{id:"prisma",scopeName:"source.prisma",path:"prisma.tmLanguage.json",displayName:"Prisma",samplePath:"prisma.sample"},{id:"prolog",scopeName:"source.prolog",path:"prolog.tmLanguage.json",displayName:"Prolog",samplePath:"prolog.sample"},{id:"proto",scopeName:"source.proto",path:"proto.tmLanguage.json",displayName:"Protocol Buffer 3",samplePath:"proto.sample"},{id:"pug",scopeName:"text.pug",path:"pug.tmLanguage.json",displayName:"Pug",samplePath:"pug.sample",aliases:["jade"],embeddedLangs:["javascript","css","sass","scss","stylus","coffee","html"]},{id:"puppet",scopeName:"source.puppet",path:"puppet.tmLanguage.json",displayName:"Puppet",samplePath:"puppet.sample"},{id:"purescript",scopeName:"source.purescript",path:"purescript.tmLanguage.json",displayName:"PureScript",samplePath:"purescript.sample"},{id:"python",scopeName:"source.python",path:"python.tmLanguage.json",displayName:"Python",samplePath:"python.sample",aliases:["py"]},{id:"r",scopeName:"source.r",path:"r.tmLanguage.json",displayName:"R",samplePath:"r.sample"},{id:"raku",scopeName:"source.perl.6",path:"raku.tmLanguage.json",displayName:"Raku",samplePath:"raku.sample",aliases:["perl6"]},{id:"razor",scopeName:"text.aspnetcorerazor",path:"razor.tmLanguage.json",displayName:"ASP.NET Razor",samplePath:"razor.sample",embeddedLangs:["html","csharp"]},{id:"reg",scopeName:"source.reg",path:"reg.tmLanguage.json",displayName:"Windows Registry Script",samplePath:"reg.sample"},{id:"rel",scopeName:"source.rel",path:"rel.tmLanguage.json",displayName:"Rel",samplePath:"rel.sample"},{id:"riscv",scopeName:"source.riscv",path:"riscv.tmLanguage.json",displayName:"RISC-V",samplePath:"riscv.sample"},{id:"rst",scopeName:"source.rst",path:"rst.tmLanguage.json",displayName:"reStructuredText",samplePath:"rst.sample",embeddedLangs:["cpp","python","javascript","shellscript","yaml","cmake","ruby"]},{id:"ruby",scopeName:"source.ruby",path:"ruby.tmLanguage.json",displayName:"Ruby",samplePath:"ruby.sample",aliases:["rb"],embeddedLangs:["html","xml","sql","css","c","javascript","shellscript","lua"]},{id:"rust",scopeName:"source.rust",path:"rust.tmLanguage.json",displayName:"Rust",samplePath:"rust.sample",aliases:["rs"]},{id:"sas",scopeName:"source.sas",path:"sas.tmLanguage.json",displayName:"SAS",samplePath:"sas.sample",embeddedLangs:["sql"]},{id:"sass",scopeName:"source.sass",path:"sass.tmLanguage.json",displayName:"Sass",samplePath:"sass.sample"},{id:"scala",scopeName:"source.scala",path:"scala.tmLanguage.json",displayName:"Scala",samplePath:"scala.sample"},{id:"scheme",scopeName:"source.scheme",path:"scheme.tmLanguage.json",displayName:"Scheme",samplePath:"scheme.sample"},{id:"scss",scopeName:"source.css.scss",path:"scss.tmLanguage.json",displayName:"SCSS",samplePath:"scss.sample",embeddedLangs:["css"]},{id:"shaderlab",scopeName:"source.shaderlab",path:"shaderlab.tmLanguage.json",displayName:"ShaderLab",samplePath:"shaderlab.sample",aliases:["shader"],embeddedLangs:["hlsl"]},{id:"shellscript",scopeName:"source.shell",path:"shellscript.tmLanguage.json",displayName:"Shell",samplePath:"shellscript.sample",aliases:["bash","sh","shell","zsh"]},{id:"shellsession",scopeName:"text.shell-session",path:"shellsession.tmLanguage.json",displayName:"Shell Session",samplePath:"shellsession.sample",aliases:["console"],embeddedLangs:["shellscript"]},{id:"smalltalk",scopeName:"source.smalltalk",path:"smalltalk.tmLanguage.json",displayName:"Smalltalk",samplePath:"smalltalk.sample"},{id:"solidity",scopeName:"source.solidity",path:"solidity.tmLanguage.json",displayName:"Solidity",samplePath:"solidity.sample"},{id:"sparql",scopeName:"source.sparql",path:"sparql.tmLanguage.json",displayName:"SPARQL",samplePath:"sparql.sample",embeddedLangs:["turtle"]},{id:"splunk",scopeName:"source.splunk_search",path:"splunk.tmLanguage.json",displayName:"Splunk Query Language",samplePath:"splunk.sample",aliases:["spl"]},{id:"sql",scopeName:"source.sql",path:"sql.tmLanguage.json",displayName:"SQL",samplePath:"sql.sample"},{id:"ssh-config",scopeName:"source.ssh-config",path:"ssh-config.tmLanguage.json",displayName:"SSH Config",samplePath:"ssh-config.sample"},{id:"stata",scopeName:"source.stata",path:"stata.tmLanguage.json",displayName:"Stata",samplePath:"stata.sample",embeddedLangs:["sql"]},{id:"stylus",scopeName:"source.stylus",path:"stylus.tmLanguage.json",displayName:"Stylus",samplePath:"stylus.sample",aliases:["styl"]},{id:"svelte",scopeName:"source.svelte",path:"svelte.tmLanguage.json",displayName:"Svelte",samplePath:"svelte.sample",embeddedLangs:["javascript","typescript","coffee","stylus","sass","css","scss","less","postcss","pug","markdown"]},{id:"swift",scopeName:"source.swift",path:"swift.tmLanguage.json",displayName:"Swift",samplePath:"swift.sample"},{id:"system-verilog",scopeName:"source.systemverilog",path:"system-verilog.tmLanguage.json",displayName:"SystemVerilog",samplePath:"system-verilog.sample"},{id:"tasl",scopeName:"source.tasl",path:"tasl.tmLanguage.json",displayName:"Tasl",samplePath:"tasl.sample"},{id:"tcl",scopeName:"source.tcl",path:"tcl.tmLanguage.json",displayName:"Tcl",samplePath:"tcl.sample"},{id:"tex",scopeName:"text.tex",path:"tex.tmLanguage.json",displayName:"TeX",samplePath:"tex.sample",embeddedLangs:["r"]},{id:"toml",scopeName:"source.toml",path:"toml.tmLanguage.json",displayName:"TOML",samplePath:"toml.sample"},{id:"tsx",scopeName:"source.tsx",path:"tsx.tmLanguage.json",displayName:"TSX",samplePath:"tsx.sample"},{id:"turtle",scopeName:"source.turtle",path:"turtle.tmLanguage.json",displayName:"Turtle",samplePath:"turtle.sample"},{id:"twig",scopeName:"text.html.twig",path:"twig.tmLanguage.json",displayName:"Twig",samplePath:"twig.sample",embeddedLangs:["css","javascript","php","python","ruby"]},{id:"typescript",scopeName:"source.ts",path:"typescript.tmLanguage.json",displayName:"TypeScript",samplePath:"typescript.sample",aliases:["ts"]},{id:"v",scopeName:"source.v",path:"v.tmLanguage.json",displayName:"V",samplePath:"v.sample"},{id:"vb",scopeName:"source.asp.vb.net",path:"vb.tmLanguage.json",displayName:"Visual Basic",samplePath:"vb.sample",aliases:["cmd"]},{id:"verilog",scopeName:"source.verilog",path:"verilog.tmLanguage.json",displayName:"Verilog",samplePath:"verilog.sample"},{id:"vhdl",scopeName:"source.vhdl",path:"vhdl.tmLanguage.json",displayName:"VHDL",samplePath:"vhdl.sample"},{id:"viml",scopeName:"source.viml",path:"viml.tmLanguage.json",displayName:"Vim Script",samplePath:"viml.sample",aliases:["vim","vimscript"]},{id:"vue-html",scopeName:"text.html.vue-html",path:"vue-html.tmLanguage.json",displayName:"Vue HTML",samplePath:"vue-html.sample",embeddedLangs:["vue","javascript"]},{id:"vue",scopeName:"source.vue",path:"vue.tmLanguage.json",displayName:"Vue",samplePath:"vue.sample",embeddedLangs:["html","markdown","pug","stylus","sass","css","scss","less","javascript","typescript","jsx","tsx","json","jsonc","json5","yaml","toml","graphql"]},{id:"vyper",scopeName:"source.vyper",path:"vyper.tmLanguage.json",displayName:"Vyper",samplePath:"vyper.sample",aliases:["vy"]},{id:"wasm",scopeName:"source.wat",path:"wasm.tmLanguage.json",displayName:"WebAssembly",samplePath:"wasm.sample"},{id:"wenyan",scopeName:"source.wenyan",path:"wenyan.tmLanguage.json",displayName:"Wenyan",samplePath:"wenyan.sample",aliases:["文言"]},{id:"wgsl",scopeName:"source.wgsl",path:"wgsl.tmLanguage.json",displayName:"WGSL",samplePath:"wgsl.sample"},{id:"wolfram",scopeName:"source.wolfram",path:"wolfram.tmLanguage.json",displayName:"Wolfram",samplePath:"wolfram.sample"},{id:"xml",scopeName:"text.xml",path:"xml.tmLanguage.json",displayName:"XML",samplePath:"xml.sample",embeddedLangs:["java"]},{id:"xsl",scopeName:"text.xml.xsl",path:"xsl.tmLanguage.json",displayName:"XSL",samplePath:"xsl.sample",embeddedLangs:["xml"]},{id:"yaml",scopeName:"source.yaml",path:"yaml.tmLanguage.json",displayName:"YAML",samplePath:"yaml.sample",aliases:["yml"]},{id:"zenscript",scopeName:"source.zenscript",path:"zenscript.tmLanguage.json",displayName:"ZenScript",samplePath:"zenscript.sample"},{id:"zig",scopeName:"source.zig",path:"zig.tmLanguage.json",displayName:"zig",samplePath:"zig.sample"}];var s=(e=>(e[e.NotSet=-1]="NotSet",e[e.None=0]="None",e[e.Italic=1]="Italic",e[e.Bold=2]="Bold",e[e.Underline=4]="Underline",e))(s||{});class a{static toBinaryStr(e){let t=e.toString(2);for(;t.length<32;)t="0"+t;return t}static printMetadata(e){let t=a.getLanguageId(e),s=a.getTokenType(e),n=a.getFontStyle(e),r=a.getForeground(e),o=a.getBackground(e);console.log({languageId:t,tokenType:s,fontStyle:n,foreground:r,background:o})}static getLanguageId(e){return(255&e)>>>0}static getTokenType(e){return(768&e)>>>8}static getFontStyle(e){return(14336&e)>>>11}static getForeground(e){return(8372224&e)>>>15}static getBackground(e){return(4286578688&e)>>>24}static containsBalancedBrackets(e){return 0!=(1024&e)}static set(e,t,s,n,r,o){let i=a.getLanguageId(e),c=a.getTokenType(e),l=a.getFontStyle(e),u=a.getForeground(e),p=a.getBackground(e);return 0!==t&&(i=t),0!==s&&(c=8===s?0:s),-1!==n&&(l=n),0!==r&&(u=r),0!==o&&(p=o),(i<<0|c<<8|l<<11|(a.containsBalancedBrackets(e)?1:0)<<10|u<<15|p<<24)>>>0}}function n(e){return e.endsWith("/")||e.endsWith("\\")?e.slice(0,-1):e}function r(e){return e.startsWith("./")?e.slice(2):e}function o(e){const t=e.split(/[\/\\]/g);return t.slice(0,t.length-1)}function i(...e){return e.map(n).map(r).join("/")}"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;var c,l={exports:{}};c=()=>{return e={770:function(e,t,s){var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.setDefaultDebugCall=t.createOnigScanner=t.createOnigString=t.loadWASM=t.OnigScanner=t.OnigString=void 0;const n=a(s(418));let r=null,o=!1;class i{static _utf8ByteLength(e){let t=0;for(let s=0,a=e.length;s=55296&&n<=56319&&s+1=56320&&t<=57343&&(r=65536+(n-55296<<10)|t-56320,o=!0)}t+=r<=127?1:r<=2047?2:r<=65535?3:4,o&&s++}return t}constructor(e){const t=e.length,s=i._utf8ByteLength(e),a=s!==t,n=a?new Uint32Array(t+1):null;a&&(n[t]=s);const r=a?new Uint32Array(s+1):null;a&&(r[s]=t);const o=new Uint8Array(s);let c=0;for(let s=0;s=55296&&i<=56319&&s+1=56320&&t<=57343&&(l=65536+(i-55296<<10)|t-56320,u=!0)}a&&(n[s]=c,u&&(n[s+1]=c),l<=127?r[c+0]=s:l<=2047?(r[c+0]=s,r[c+1]=s):l<=65535?(r[c+0]=s,r[c+1]=s,r[c+2]=s):(r[c+0]=s,r[c+1]=s,r[c+2]=s,r[c+3]=s)),l<=127?o[c++]=l:l<=2047?(o[c++]=192|(1984&l)>>>6,o[c++]=128|(63&l)>>>0):l<=65535?(o[c++]=224|(61440&l)>>>12,o[c++]=128|(4032&l)>>>6,o[c++]=128|(63&l)>>>0):(o[c++]=240|(1835008&l)>>>18,o[c++]=128|(258048&l)>>>12,o[c++]=128|(4032&l)>>>6,o[c++]=128|(63&l)>>>0),u&&s++}this.utf16Length=t,this.utf8Length=s,this.utf16Value=e,this.utf8Value=o,this.utf16OffsetToUtf8=n,this.utf8OffsetToUtf16=r}createString(e){const t=e._omalloc(this.utf8Length);return e.HEAPU8.set(this.utf8Value,t),t}}class c{constructor(e){if(this.id=++c.LAST_ID,!r)throw new Error("Must invoke loadWASM first.");this._onigBinding=r,this.content=e;const t=new i(e);this.utf16Length=t.utf16Length,this.utf8Length=t.utf8Length,this.utf16OffsetToUtf8=t.utf16OffsetToUtf8,this.utf8OffsetToUtf16=t.utf8OffsetToUtf16,this.utf8Length<1e4&&!c._sharedPtrInUse?(c._sharedPtr||(c._sharedPtr=r._omalloc(1e4)),c._sharedPtrInUse=!0,r.HEAPU8.set(t.utf8Value,c._sharedPtr),this.ptr=c._sharedPtr):this.ptr=t.createString(r)}convertUtf8OffsetToUtf16(e){return this.utf8OffsetToUtf16?e<0?0:e>this.utf8Length?this.utf16Length:this.utf8OffsetToUtf16[e]:e}convertUtf16OffsetToUtf8(e){return this.utf16OffsetToUtf8?e<0?0:e>this.utf16Length?this.utf8Length:this.utf16OffsetToUtf8[e]:e}dispose(){this.ptr===c._sharedPtr?c._sharedPtrInUse=!1:this._onigBinding._ofree(this.ptr)}}t.OnigString=c,c.LAST_ID=0,c._sharedPtr=0,c._sharedPtrInUse=!1;class l{constructor(e){if(!r)throw new Error("Must invoke loadWASM first.");const t=[],s=[];for(let a=0,n=e.length;aWebAssembly.instantiateStreaming(e,t)}(a):function(e){return async t=>{const s=await e.arrayBuffer();return WebAssembly.instantiate(s,t)}}(a):function(e){return t=>WebAssembly.instantiate(e,t)}(a)}return p=new Promise(((e,t)=>{a=e,o=t})),function(e,t,s,a){(0,n.default)({print:t,instantiateWasm:(t,s)=>{if("undefined"==typeof performance){const e=()=>Date.now();t.env.emscripten_get_now=e,t.wasi_snapshot_preview1.emscripten_get_now=e}return e(t).then((e=>s(e.instance)),a),{}}}).then((e=>{r=e,s()}))}(t,s,a,o),p},t.createOnigString=function(e){return new c(e)},t.createOnigScanner=function(e){return new l(e)},t.setDefaultDebugCall=function(e){o=e}},418:e=>{var t=("undefined"!=typeof document&&document.currentScript&&document.currentScript.src,function(e){var t,s,a=void 0!==(e=e||{})?e:{};a.ready=new Promise((function(e,a){t=e,s=a}));var n,r=Object.assign({},a),o=!1;n=function(e){let t;return"function"==typeof readbuffer?new Uint8Array(readbuffer(e)):(t=read(e,"binary"),function(e,t){e||v(t)}("object"==typeof t),t)},"undefined"!=typeof scriptArgs&&scriptArgs,"undefined"!=typeof onig_print&&("undefined"==typeof console&&(console={}),console.log=onig_print,console.warn=console.error="undefined"!=typeof printErr?printErr:onig_print);var i,c,l=a.print||console.log.bind(console),u=a.printErr||console.warn.bind(console);Object.assign(a,r),r=null,a.arguments&&a.arguments,a.thisProgram&&a.thisProgram,a.quit&&a.quit,a.wasmBinary&&(i=a.wasmBinary),a.noExitRuntime,"object"!=typeof WebAssembly&&v("no native wasm support detected");var p,h,m,d=!1,g="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function f(e,t,s){for(var a=t+s,n=t;e[n]&&!(n>=a);)++n;if(n-t>16&&e.buffer&&g)return g.decode(e.subarray(t,n));for(var r="";t>10,56320|1023&l)}}else r+=String.fromCharCode((31&o)<<6|i)}else r+=String.fromCharCode(o)}return r}function y(e){p=e,a.HEAP8=new Int8Array(e),a.HEAP16=new Int16Array(e),a.HEAP32=new Int32Array(e),a.HEAPU8=h=new Uint8Array(e),a.HEAPU16=new Uint16Array(e),a.HEAPU32=m=new Uint32Array(e),a.HEAPF32=new Float32Array(e),a.HEAPF64=new Float64Array(e)}a.INITIAL_MEMORY;var b=[],_=[],N=[];function k(e){b.unshift(e)}function L(e){N.unshift(e)}var S=0,P=null;function v(e){a.onAbort&&a.onAbort(e),u(e="Aborted("+e+")"),d=!0,e+=". Build with -sASSERTIONS for more info.";var t=new WebAssembly.RuntimeError(e);throw s(t),t}var j,w,C="data:application/octet-stream;base64,";function x(e){return e.startsWith(C)}function A(e){try{if(e==j&&i)return new Uint8Array(i);if(n)return n(e);throw"both async and sync fetching of the wasm failed"}catch(e){v(e)}}function T(e){for(;e.length>0;)e.shift()(a)}function R(e){try{return c.grow(e-p.byteLength+65535>>>16),y(c.buffer),1}catch(e){}}x(j="onig.wasm")||(j=function(e){return a.locateFile?a.locateFile(e,""):""+e}(j)),w="undefined"!=typeof dateNow?dateNow:()=>performance.now();var I=[null,[],[]];function E(e,t){var s=I[e];0===t||10===t?((1===e?l:u)(f(s,0)),s.length=0):s.push(t)}var O,M={emscripten_get_now:w,emscripten_memcpy_big:function(e,t,s){h.copyWithin(e,t,t+s)},emscripten_resize_heap:function(e){var t,s=h.length,a=2147483648;if((e>>>=0)>a)return!1;for(var n=1;n<=4;n*=2){var r=s*(1+.2/n);if(r=Math.min(r,e+100663296),R(Math.min(a,(t=Math.max(e,r))+(65536-t%65536)%65536)))return!0}return!1},fd_write:function(e,t,s,a){for(var n=0,r=0;r>2],i=m[t+4>>2];t+=8;for(var c=0;c>2]=n,0}};function B(e){function s(){O||(O=!0,a.calledRun=!0,d||(T(_),t(a),a.onRuntimeInitialized&&a.onRuntimeInitialized(),function(){if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)L(a.postRun.shift());T(N)}()))}S>0||(function(){if(a.preRun)for("function"==typeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)k(a.preRun.shift());T(b)}(),S>0||(a.setStatus?(a.setStatus("Running..."),setTimeout((function(){setTimeout((function(){a.setStatus("")}),1),s()}),1)):s()))}if(function(){var e={env:M,wasi_snapshot_preview1:M};function t(e,t){var s=e.exports;a.asm=s,y((c=a.asm.memory).buffer),a.asm.__indirect_function_table,function(e){_.unshift(e)}(a.asm.__wasm_call_ctors),function(e){if(S--,a.monitorRunDependencies&&a.monitorRunDependencies(S),0==S&&P){var t=P;P=null,t()}}()}function n(e){t(e.instance)}function r(t){return(i||!o||"function"!=typeof fetch?Promise.resolve().then((function(){return A(j)})):fetch(j,{credentials:"same-origin"}).then((function(e){if(!e.ok)throw"failed to load wasm binary file at '"+j+"'";return e.arrayBuffer()})).catch((function(){return A(j)}))).then((function(t){return WebAssembly.instantiate(t,e)})).then((function(e){return e})).then(t,(function(e){u("failed to asynchronously prepare wasm: "+e),v(e)}))}if(S++,a.monitorRunDependencies&&a.monitorRunDependencies(S),a.instantiateWasm)try{return a.instantiateWasm(e,t)}catch(e){u("Module.instantiateWasm callback failed with error: "+e),s(e)}(i||"function"!=typeof WebAssembly.instantiateStreaming||x(j)||"function"!=typeof fetch?r(n):fetch(j,{credentials:"same-origin"}).then((function(t){return WebAssembly.instantiateStreaming(t,e).then(n,(function(e){return u("wasm streaming compile failed: "+e),u("falling back to ArrayBuffer instantiation"),r(n)}))}))).catch(s)}(),a.___wasm_call_ctors=function(){return(a.___wasm_call_ctors=a.asm.__wasm_call_ctors).apply(null,arguments)},a.___errno_location=function(){return(a.___errno_location=a.asm.__errno_location).apply(null,arguments)},a._omalloc=function(){return(a._omalloc=a.asm.omalloc).apply(null,arguments)},a._ofree=function(){return(a._ofree=a.asm.ofree).apply(null,arguments)},a._getLastOnigError=function(){return(a._getLastOnigError=a.asm.getLastOnigError).apply(null,arguments)},a._createOnigScanner=function(){return(a._createOnigScanner=a.asm.createOnigScanner).apply(null,arguments)},a._freeOnigScanner=function(){return(a._freeOnigScanner=a.asm.freeOnigScanner).apply(null,arguments)},a._findNextOnigScannerMatch=function(){return(a._findNextOnigScannerMatch=a.asm.findNextOnigScannerMatch).apply(null,arguments)},a._findNextOnigScannerMatchDbg=function(){return(a._findNextOnigScannerMatchDbg=a.asm.findNextOnigScannerMatchDbg).apply(null,arguments)},a.stackSave=function(){return(a.stackSave=a.asm.stackSave).apply(null,arguments)},a.stackRestore=function(){return(a.stackRestore=a.asm.stackRestore).apply(null,arguments)},a.stackAlloc=function(){return(a.stackAlloc=a.asm.stackAlloc).apply(null,arguments)},a.dynCall_jiji=function(){return(a.dynCall_jiji=a.asm.dynCall_jiji).apply(null,arguments)},a.UTF8ToString=function(e,t){return e?f(h,e,t):""},P=function e(){O||B(),O||(P=e)},a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);a.preInit.length>0;)a.preInit.pop()();return B(),e.ready});e.exports=t}},t={},function s(a){var n=t[a];if(void 0!==n)return n.exports;var r=t[a]={exports:{}};return e[a].call(r.exports,r,r.exports,s),r.exports}(770);var e,t};var u,p,h,m,d=l.exports=c();function g(e,t=!1){const s=e.length;let a=0,n="",r=0,o=16,i=0,c=0,l=0,u=0,p=0;function h(t,s){let n=0,r=0;for(;n=48&&t<=57)r=16*r+t-48;else if(t>=65&&t<=70)r=16*r+t-65+10;else{if(!(t>=97&&t<=102))break;r=16*r+t-97+10}a++,n++}return n=s)return r=s,o=17;let t=e.charCodeAt(a);if(f(t)){do{a++,n+=String.fromCharCode(t),t=e.charCodeAt(a)}while(f(t));return o=15}if(y(t))return a++,n+=String.fromCharCode(t),13===t&&10===e.charCodeAt(a)&&(a++,n+="\n"),i++,l=a,o=14;switch(t){case 123:return a++,o=1;case 125:return a++,o=2;case 91:return a++,o=3;case 93:return a++,o=4;case 58:return a++,o=6;case 44:return a++,o=5;case 34:return a++,n=function(){let t="",n=a;for(;;){if(a>=s){t+=e.substring(n,a),p=2;break}const r=e.charCodeAt(a);if(34===r){t+=e.substring(n,a),a++;break}if(92!==r){if(r>=0&&r<=31){if(y(r)){t+=e.substring(n,a),p=2;break}p=6}a++}else{if(t+=e.substring(n,a),a++,a>=s){p=2;break}switch(e.charCodeAt(a++)){case 34:t+='"';break;case 92:t+="\\";break;case 47:t+="/";break;case 98:t+="\b";break;case 102:t+="\f";break;case 110:t+="\n";break;case 114:t+="\r";break;case 116:t+="\t";break;case 117:const e=h(4,!0);e>=0?t+=String.fromCharCode(e):p=4;break;default:p=5}n=a}}return t}(),o=10;case 47:const c=a-1;if(47===e.charCodeAt(a+1)){for(a+=2;aa,scan:t?function(){let e;do{e=m()}while(e>=12&&e<=15);return e}:m,getToken:()=>o,getTokenValue:()=>n,getTokenOffset:()=>r,getTokenLength:()=>a-r,getTokenStartLine:()=>c,getTokenStartCharacter:()=>r-u,getTokenError:()=>p}}function f(e){return 32===e||9===e}function y(e){return 10===e||13===e}function b(e){return e>=48&&e<=57}!function(e){e[e.lineFeed=10]="lineFeed",e[e.carriageReturn=13]="carriageReturn",e[e.space=32]="space",e[e._0=48]="_0",e[e._1=49]="_1",e[e._2=50]="_2",e[e._3=51]="_3",e[e._4=52]="_4",e[e._5=53]="_5",e[e._6=54]="_6",e[e._7=55]="_7",e[e._8=56]="_8",e[e._9=57]="_9",e[e.a=97]="a",e[e.b=98]="b",e[e.c=99]="c",e[e.d=100]="d",e[e.e=101]="e",e[e.f=102]="f",e[e.g=103]="g",e[e.h=104]="h",e[e.i=105]="i",e[e.j=106]="j",e[e.k=107]="k",e[e.l=108]="l",e[e.m=109]="m",e[e.n=110]="n",e[e.o=111]="o",e[e.p=112]="p",e[e.q=113]="q",e[e.r=114]="r",e[e.s=115]="s",e[e.t=116]="t",e[e.u=117]="u",e[e.v=118]="v",e[e.w=119]="w",e[e.x=120]="x",e[e.y=121]="y",e[e.z=122]="z",e[e.A=65]="A",e[e.B=66]="B",e[e.C=67]="C",e[e.D=68]="D",e[e.E=69]="E",e[e.F=70]="F",e[e.G=71]="G",e[e.H=72]="H",e[e.I=73]="I",e[e.J=74]="J",e[e.K=75]="K",e[e.L=76]="L",e[e.M=77]="M",e[e.N=78]="N",e[e.O=79]="O",e[e.P=80]="P",e[e.Q=81]="Q",e[e.R=82]="R",e[e.S=83]="S",e[e.T=84]="T",e[e.U=85]="U",e[e.V=86]="V",e[e.W=87]="W",e[e.X=88]="X",e[e.Y=89]="Y",e[e.Z=90]="Z",e[e.asterisk=42]="asterisk",e[e.backslash=92]="backslash",e[e.closeBrace=125]="closeBrace",e[e.closeBracket=93]="closeBracket",e[e.colon=58]="colon",e[e.comma=44]="comma",e[e.dot=46]="dot",e[e.doubleQuote=34]="doubleQuote",e[e.minus=45]="minus",e[e.openBrace=123]="openBrace",e[e.openBracket=91]="openBracket",e[e.plus=43]="plus",e[e.slash=47]="slash",e[e.formFeed=12]="formFeed",e[e.tab=9]="tab"}(u||(u={})),function(e){e.DEFAULT={allowTrailingComma:!1}}(p||(p={})),function(e){e[e.None=0]="None",e[e.UnexpectedEndOfComment=1]="UnexpectedEndOfComment",e[e.UnexpectedEndOfString=2]="UnexpectedEndOfString",e[e.UnexpectedEndOfNumber=3]="UnexpectedEndOfNumber",e[e.InvalidUnicode=4]="InvalidUnicode",e[e.InvalidEscapeCharacter=5]="InvalidEscapeCharacter",e[e.InvalidCharacter=6]="InvalidCharacter"}(h||(h={})),function(e){e[e.OpenBraceToken=1]="OpenBraceToken",e[e.CloseBraceToken=2]="CloseBraceToken",e[e.OpenBracketToken=3]="OpenBracketToken",e[e.CloseBracketToken=4]="CloseBracketToken",e[e.CommaToken=5]="CommaToken",e[e.ColonToken=6]="ColonToken",e[e.NullKeyword=7]="NullKeyword",e[e.TrueKeyword=8]="TrueKeyword",e[e.FalseKeyword=9]="FalseKeyword",e[e.StringLiteral=10]="StringLiteral",e[e.NumericLiteral=11]="NumericLiteral",e[e.LineCommentTrivia=12]="LineCommentTrivia",e[e.BlockCommentTrivia=13]="BlockCommentTrivia",e[e.LineBreakTrivia=14]="LineBreakTrivia",e[e.Trivia=15]="Trivia",e[e.Unknown=16]="Unknown",e[e.EOF=17]="EOF"}(m||(m={}));const _=function(e,t=[],s=p.DEFAULT){let a=null,n=[];const r=[];function o(e){Array.isArray(n)?n.push(e):null!==a&&(n[a]=e)}return function(e,t,s=p.DEFAULT){const a=g(e,!1),n=[];function r(e){return e?()=>e(a.getTokenOffset(),a.getTokenLength(),a.getTokenStartLine(),a.getTokenStartCharacter()):()=>!0}function o(e){return e?()=>e(a.getTokenOffset(),a.getTokenLength(),a.getTokenStartLine(),a.getTokenStartCharacter(),(()=>n.slice())):()=>!0}function i(e){return e?t=>e(t,a.getTokenOffset(),a.getTokenLength(),a.getTokenStartLine(),a.getTokenStartCharacter()):()=>!0}function c(e){return e?t=>e(t,a.getTokenOffset(),a.getTokenLength(),a.getTokenStartLine(),a.getTokenStartCharacter(),(()=>n.slice())):()=>!0}const l=o(t.onObjectBegin),u=c(t.onObjectProperty),h=r(t.onObjectEnd),m=o(t.onArrayBegin),d=r(t.onArrayEnd),f=c(t.onLiteralValue),y=i(t.onSeparator),b=r(t.onComment),_=i(t.onError),N=s&&s.disallowComments,k=s&&s.allowTrailingComma;function L(){for(;;){const e=a.scan();switch(a.getTokenError()){case 4:S(14);break;case 5:S(15);break;case 3:S(13);break;case 1:N||S(11);break;case 2:S(12);break;case 6:S(16)}switch(e){case 12:case 13:N?S(10):b();break;case 16:S(1);break;case 15:case 14:break;default:return e}}}function S(e,t=[],s=[]){if(_(e),t.length+s.length>0){let e=a.getToken();for(;17!==e;){if(-1!==t.indexOf(e)){L();break}if(-1!==s.indexOf(e))break;e=L()}}}function P(e){const t=a.getTokenValue();return e?f(t):(u(t),n.push(t)),L(),!0}function v(){switch(a.getToken()){case 11:const e=a.getTokenValue();let t=Number(e);isNaN(t)&&(S(2),t=0),f(t);break;case 7:f(null);break;case 8:f(!0);break;case 9:f(!1);break;default:return!1}return L(),!0}function j(){return 10!==a.getToken()?(S(3,[],[2,5]),!1):(P(!1),6===a.getToken()?(y(":"),L(),x()||S(4,[],[2,5])):S(5,[],[2,5]),n.pop(),!0)}function w(){l(),L();let e=!1;for(;2!==a.getToken()&&17!==a.getToken();){if(5===a.getToken()){if(e||S(4,[],[]),y(","),L(),2===a.getToken()&&k)break}else e&&S(6,[],[]);j()||S(4,[],[2,5]),e=!0}return h(),2!==a.getToken()?S(7,[2],[]):L(),!0}function C(){m(),L();let e=!0,t=!1;for(;4!==a.getToken()&&17!==a.getToken();){if(5===a.getToken()){if(t||S(4,[],[]),y(","),L(),4===a.getToken()&&k)break}else t&&S(6,[],[]);e?(n.push(0),e=!1):n[n.length-1]++,x()||S(4,[],[4,5]),t=!0}return d(),e||n.pop(),4!==a.getToken()?S(8,[4],[]):L(),!0}function x(){switch(a.getToken()){case 3:return C();case 1:return w();case 10:return P(!0);default:return v()}}if(L(),17===a.getToken())return!!s.allowEmptyContent||(S(4,[],[]),!1);if(!x())return S(4,[],[]),!1;17!==a.getToken()&&S(9,[],[])}(e,{onObjectBegin:()=>{const e={};o(e),r.push(n),n=e,a=null},onObjectProperty:e=>{a=e},onObjectEnd:()=>{n=r.pop()},onArrayBegin:()=>{const e=[];o(e),r.push(n),n=e,a=null},onArrayEnd:()=>{n=r.pop()},onLiteralValue:o,onError:(e,s,a)=>{t.push({error:e,offset:s,length:a})}},s),n[0]};var N;!function(e){e[e.InvalidSymbol=1]="InvalidSymbol",e[e.InvalidNumberFormat=2]="InvalidNumberFormat",e[e.PropertyNameExpected=3]="PropertyNameExpected",e[e.ValueExpected=4]="ValueExpected",e[e.ColonExpected=5]="ColonExpected",e[e.CommaExpected=6]="CommaExpected",e[e.CloseBraceExpected=7]="CloseBraceExpected",e[e.CloseBracketExpected=8]="CloseBracketExpected",e[e.EndOfFileExpected=9]="EndOfFileExpected",e[e.InvalidCommentToken=10]="InvalidCommentToken",e[e.UnexpectedEndOfComment=11]="UnexpectedEndOfComment",e[e.UnexpectedEndOfString=12]="UnexpectedEndOfString",e[e.UnexpectedEndOfNumber=13]="UnexpectedEndOfNumber",e[e.InvalidUnicode=14]="InvalidUnicode",e[e.InvalidEscapeCharacter=15]="InvalidEscapeCharacter",e[e.InvalidCharacter=16]="InvalidCharacter"}(N||(N={}));const k="undefined"!=typeof self&&void 0!==self.WorkerGlobalScope,L="process"in globalThis&&"undefined"!=typeof process&&void 0!==process.release&&"node"===process.release.name,S="process"in globalThis&&"undefined"!=typeof process&&void 0!==process.release&&"bun"===process.release.name,P=k||!L&&!S;let v="",j="";const w="dist/";function C(e){v=e.endsWith("/")?e:e+"/"}function x(e){j=e}let A=null;function T(e){if(P)return`${v}${e}`;{const t=require("path");return t.isAbsolute(e)?e:t.resolve(__dirname,"..",e)}}async function R(e){const t=[],s=await async function(e){const t=T(e);if(P)return await fetch(t).then((e=>e.text()));{const e=require("fs");return await e.promises.readFile(t,"utf-8")}}(e);let a;try{a=JSON.parse(s)}catch(e){if(a=_(s,t,{allowTrailingComma:!0}),t.length)throw t[0]}return a}async function I(e){const t=E(await R(e));if(t.include){const s=await I(i(...o(e),t.include));s.settings&&(t.settings=s.settings.concat(t.settings)),s.bg&&!t.bg&&(t.bg=s.bg),s.colors&&(t.colors={...s.colors,...t.colors}),delete t.include}return t}function E(e){const t=e.type||"dark",s={name:e.name,type:t,...e,...B(e)};var a;return e.include&&(s.include=e.include),e.tokenColors&&(s.settings=e.tokenColors,delete s.tokenColors),(a=s).settings||(a.settings=[]),a.settings[0]&&a.settings[0].settings&&!a.settings[0].scope||a.settings.unshift({settings:{foreground:a.fg,background:a.bg}}),s}const O={light:"#333333",dark:"#bbbbbb"},M={light:"#fffffe",dark:"#1e1e1e"};function B(e){let t,s,a=e.settings?e.settings:e.tokenColors;const n=a?a.find((e=>!e.name&&!e.scope)):void 0;return n?.settings?.foreground&&(t=n.settings.foreground),n?.settings?.background&&(s=n.settings.background),!t&&e?.colors?.["editor.foreground"]&&(t=e.colors["editor.foreground"]),!s&&e?.colors?.["editor.background"]&&(s=e.colors["editor.background"]),t||(t="light"===e.type?O.light:O.dark),s||(s="light"===e.type?M.light:M.dark),{fg:t,bg:s}}class G{constructor(e,t){this.languagesPath="languages/",this.languageMap={},this.scopeToLangMap={},this._onigLibPromise=e,this._onigLibName=t}get onigLib(){return this._onigLibPromise}getOnigLibName(){return this._onigLibName}getLangRegistration(e){return this.languageMap[e]}async loadGrammar(e){const s=this.scopeToLangMap[e];if(!s)return null;if(s.grammar)return s.grammar;const a=await async function(e){return await R(e)}(t.includes(s)?`${this.languagesPath}${s.path}`:s.path);return s.grammar=a,a}addLanguage(e){this.languageMap[e.id]=e,e.aliases&&e.aliases.forEach((t=>{this.languageMap[t]=e})),this.scopeToLangMap[e.scopeName]=e}}var F,D,$={exports:{}};$.exports=(F={350:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.UseOnigurumaFindOptions=t.DebugFlags=void 0,t.DebugFlags={InDebugMode:"undefined"!=typeof process&&!!process.env.VSCODE_TEXTMATE_DEBUG},t.UseOnigurumaFindOptions=!1},36:(e,t)=>{var s;Object.defineProperty(t,"__esModule",{value:!0}),t.toOptionalTokenType=t.EncodedTokenAttributes=void 0,(s=t.EncodedTokenAttributes||(t.EncodedTokenAttributes={})).toBinaryStr=function(e){let t=e.toString(2);for(;t.length<32;)t="0"+t;return t},s.print=function(e){const t=s.getLanguageId(e),a=s.getTokenType(e),n=s.getFontStyle(e),r=s.getForeground(e),o=s.getBackground(e);console.log({languageId:t,tokenType:a,fontStyle:n,foreground:r,background:o})},s.getLanguageId=function(e){return(255&e)>>>0},s.getTokenType=function(e){return(768&e)>>>8},s.containsBalancedBrackets=function(e){return 0!=(1024&e)},s.getFontStyle=function(e){return(30720&e)>>>11},s.getForeground=function(e){return(16744448&e)>>>15},s.getBackground=function(e){return(4278190080&e)>>>24},s.set=function(e,t,a,n,r,o,i){let c=s.getLanguageId(e),l=s.getTokenType(e),u=s.containsBalancedBrackets(e)?1:0,p=s.getFontStyle(e),h=s.getForeground(e),m=s.getBackground(e);return 0!==t&&(c=t),8!==a&&(l=a),null!==n&&(u=n?1:0),-1!==r&&(p=r),0!==o&&(h=o),0!==i&&(m=i),(c<<0|l<<8|u<<10|p<<11|h<<15|m<<24)>>>0},t.toOptionalTokenType=function(e){return e}},996:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BasicScopeAttributesProvider=t.BasicScopeAttributes=void 0;const a=s(878);class n{constructor(e,t){this.languageId=e,this.tokenType=t}}t.BasicScopeAttributes=n;class r{constructor(e,t){this._getBasicScopeAttributes=new a.CachedFn((e=>{const t=this._scopeToLanguage(e),s=this._toStandardTokenType(e);return new n(t,s)})),this._defaultAttributes=new n(e,8),this._embeddedLanguagesMatcher=new o(Object.entries(t||{}))}getDefaultAttributes(){return this._defaultAttributes}getBasicScopeAttributes(e){return null===e?r._NULL_SCOPE_METADATA:this._getBasicScopeAttributes.get(e)}_scopeToLanguage(e){return this._embeddedLanguagesMatcher.match(e)||0}_toStandardTokenType(e){const t=e.match(r.STANDARD_TOKEN_TYPE_REGEXP);if(!t)return 8;switch(t[1]){case"comment":return 1;case"string":return 2;case"regex":return 3;case"meta.embedded":return 0}throw new Error("Unexpected match for standard token type!")}}t.BasicScopeAttributesProvider=r,r._NULL_SCOPE_METADATA=new n(0,0),r.STANDARD_TOKEN_TYPE_REGEXP=/\b(comment|string|regex|meta\.embedded)\b/;class o{constructor(e){if(0===e.length)this.values=null,this.scopesRegExp=null;else{this.values=new Map(e);const t=e.map((([e,t])=>a.escapeRegExpCharacters(e)));t.sort(),t.reverse(),this.scopesRegExp=new RegExp(`^((${t.join(")|(")}))($|\\.)`,"")}}match(e){if(!this.scopesRegExp)return;const t=e.match(this.scopesRegExp);return t?this.values.get(t[1]):void 0}}},947:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.LineTokens=t.BalancedBracketSelectors=t.StateStack=t.AttributedScopeStack=t.Grammar=t.createGrammar=void 0;const a=s(350),n=s(36),r=s(736),o=s(44),i=s(792),c=s(583),l=s(878),u=s(996),p=s(47);function h(e,t,s,a,n){const o=r.createMatchers(t,m),c=i.RuleFactory.getCompiledRuleId(s,a,n.repository);for(const s of o)e.push({debugSelector:t,matcher:s.matcher,ruleId:c,grammar:n,priority:s.priority})}function m(e,t){if(t.length{for(let a=s;as&&e.substr(0,s)===t&&"."===e[s]}t.createGrammar=function(e,t,s,a,n,r,o,i){return new g(e,t,s,a,n,r,o,i)};class g{constructor(e,t,s,a,n,o,i,c){if(this._rootScopeName=e,this.balancedBracketSelectors=o,this._onigLib=c,this._basicScopeAttributesProvider=new u.BasicScopeAttributesProvider(s,a),this._rootId=-1,this._lastRuleId=0,this._ruleId2desc=[null],this._includedGrammars={},this._grammarRepository=i,this._grammar=f(t,null),this._injections=null,this._tokenTypeMatchers=[],n)for(const e of Object.keys(n)){const t=r.createMatchers(e,m);for(const s of t)this._tokenTypeMatchers.push({matcher:s.matcher,type:n[e]})}}get themeProvider(){return this._grammarRepository}dispose(){for(const e of this._ruleId2desc)e&&e.dispose()}createOnigScanner(e){return this._onigLib.createOnigScanner(e)}createOnigString(e){return this._onigLib.createOnigString(e)}getMetadataForScope(e){return this._basicScopeAttributesProvider.getBasicScopeAttributes(e)}_collectInjections(){const e=[],t=this._rootScopeName,s=(e=>e===this._rootScopeName?this._grammar:this.getExternalGrammar(e))(t);if(s){const a=s.injections;if(a)for(let t in a)h(e,t,a[t],this,s);const n=this._grammarRepository.injections(t);n&&n.forEach((t=>{const s=this.getExternalGrammar(t);if(s){const t=s.injectionSelector;t&&h(e,t,s,this,s)}}))}return e.sort(((e,t)=>e.priority-t.priority)),e}getInjections(){if(null===this._injections&&(this._injections=this._collectInjections(),a.DebugFlags.InDebugMode&&this._injections.length>0)){console.log(`Grammar ${this._rootScopeName} contains the following injections:`);for(const e of this._injections)console.log(` - ${e.debugSelector}`)}return this._injections}registerRule(e){const t=++this._lastRuleId,s=e(i.ruleIdFromNumber(t));return this._ruleId2desc[t]=s,s}getRule(e){return this._ruleId2desc[i.ruleIdToNumber(e)]}getExternalGrammar(e,t){if(this._includedGrammars[e])return this._includedGrammars[e];if(this._grammarRepository){const s=this._grammarRepository.lookup(e);if(s)return this._includedGrammars[e]=f(s,t&&t.$base),this._includedGrammars[e]}}tokenizeLine(e,t,s=0){const a=this._tokenize(e,t,!1,s);return{tokens:a.lineTokens.getResult(a.ruleStack,a.lineLength),ruleStack:a.ruleStack,stoppedEarly:a.stoppedEarly}}tokenizeLine2(e,t,s=0){const a=this._tokenize(e,t,!0,s);return{tokens:a.lineTokens.getBinaryResult(a.ruleStack,a.lineLength),ruleStack:a.ruleStack,stoppedEarly:a.stoppedEarly}}_tokenize(e,t,s,a){let r;if(-1===this._rootId&&(this._rootId=i.RuleFactory.getCompiledRuleId(this._grammar.repository.$self,this,this._grammar.repository)),t&&t!==b.NULL)r=!1,t.reset();else{r=!0;const e=this._basicScopeAttributesProvider.getDefaultAttributes(),s=this.themeProvider.getDefaults(),a=n.EncodedTokenAttributes.set(0,e.languageId,e.tokenType,null,s.fontStyle,s.foregroundId,s.backgroundId),o=this.getRule(this._rootId).getName(null,null);let i;i=o?y.createRootAndLookUpScopeName(o,a,this):y.createRoot("unknown",a),t=new b(null,this._rootId,-1,-1,!1,null,i,i)}e+="\n";const c=this.createOnigString(e),l=c.content.length,u=new _(s,e,this._tokenTypeMatchers,this.balancedBracketSelectors),h=p._tokenizeString(this,c,r,0,t,u,!0,a);return o.disposeOnigString(c),{lineLength:l,lineTokens:u,ruleStack:h.stack,stoppedEarly:h.stoppedEarly}}}function f(e,t){return(e=l.clone(e)).repository=e.repository||{},e.repository.$self={$vscodeTextmateLocation:e.$vscodeTextmateLocation,patterns:e.patterns,name:e.scopeName},e.repository.$base=t||e.repository.$self,e}t.Grammar=g;class y{constructor(e,t,s){this.parent=e,this.scopePath=t,this.tokenAttributes=s}static createRoot(e,t){return new y(null,new c.ScopeStack(null,e),t)}static createRootAndLookUpScopeName(e,t,s){const a=s.getMetadataForScope(e),n=new c.ScopeStack(null,e),r=s.themeProvider.themeMatch(n),o=y.mergeAttributes(t,a,r);return new y(null,n,o)}get scopeName(){return this.scopePath.scopeName}equals(e){return y._equals(this,e)}static _equals(e,t){for(;;){if(e===t)return!0;if(!e&&!t)return!0;if(!e||!t)return!1;if(e.scopeName!==t.scopeName||e.tokenAttributes!==t.tokenAttributes)return!1;e=e.parent,t=t.parent}}static mergeAttributes(e,t,s){let a=-1,r=0,o=0;return null!==s&&(a=s.fontStyle,r=s.foregroundId,o=s.backgroundId),n.EncodedTokenAttributes.set(e,t.languageId,t.tokenType,null,a,r,o)}pushAttributed(e,t){if(null===e)return this;if(-1===e.indexOf(" "))return y._pushAttributed(this,e,t);const s=e.split(/ /g);let a=this;for(const e of s)a=y._pushAttributed(a,e,t);return a}static _pushAttributed(e,t,s){const a=s.getMetadataForScope(t),n=e.scopePath.push(t),r=s.themeProvider.themeMatch(n),o=y.mergeAttributes(e.tokenAttributes,a,r);return new y(e,n,o)}getScopeNames(){return this.scopePath.getSegments()}}t.AttributedScopeStack=y;class b{constructor(e,t,s,a,n,r,o,i){this.parent=e,this.ruleId=t,this.beginRuleCapturedEOL=n,this.endRule=r,this.nameScopesList=o,this.contentNameScopesList=i,this._stackElementBrand=void 0,this.depth=this.parent?this.parent.depth+1:1,this._enterPos=s,this._anchorPos=a}equals(e){return null!==e&&b._equals(this,e)}static _equals(e,t){return e===t||!!this._structuralEquals(e,t)&&e.contentNameScopesList.equals(t.contentNameScopesList)}static _structuralEquals(e,t){for(;;){if(e===t)return!0;if(!e&&!t)return!0;if(!e||!t)return!1;if(e.depth!==t.depth||e.ruleId!==t.ruleId||e.endRule!==t.endRule)return!1;e=e.parent,t=t.parent}}clone(){return this}static _reset(e){for(;e;)e._enterPos=-1,e._anchorPos=-1,e=e.parent}reset(){b._reset(this)}pop(){return this.parent}safePop(){return this.parent?this.parent:this}push(e,t,s,a,n,r,o){return new b(this,e,t,s,a,n,r,o)}getEnterPos(){return this._enterPos}getAnchorPos(){return this._anchorPos}getRule(e){return e.getRule(this.ruleId)}toString(){const e=[];return this._writeString(e,0),"["+e.join(",")+"]"}_writeString(e,t){return this.parent&&(t=this.parent._writeString(e,t)),e[t++]=`(${this.ruleId}, TODO-${this.nameScopesList}, TODO-${this.contentNameScopesList})`,t}withContentNameScopesList(e){return this.contentNameScopesList===e?this:this.parent.push(this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,this.endRule,this.nameScopesList,e)}withEndRule(e){return this.endRule===e?this:new b(this.parent,this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,e,this.nameScopesList,this.contentNameScopesList)}hasSameRuleAs(e){let t=this;for(;t&&t._enterPos===e._enterPos;){if(t.ruleId===e.ruleId)return!0;t=t.parent}return!1}}t.StateStack=b,b.NULL=new b(null,0,0,0,!1,null,null,null),t.BalancedBracketSelectors=class{constructor(e,t){this.allowAny=!1,this.balancedBracketScopes=e.flatMap((e=>"*"===e?(this.allowAny=!0,[]):r.createMatchers(e,m).map((e=>e.matcher)))),this.unbalancedBracketScopes=t.flatMap((e=>r.createMatchers(e,m).map((e=>e.matcher))))}get matchesAlways(){return this.allowAny&&0===this.unbalancedBracketScopes.length}get matchesNever(){return 0===this.balancedBracketScopes.length&&!this.allowAny}match(e){for(const t of this.unbalancedBracketScopes)if(t(e))return!1;for(const t of this.balancedBracketScopes)if(t(e))return!0;return this.allowAny}};class _{constructor(e,t,s,n){this.balancedBracketSelectors=n,this._emitBinaryTokens=e,this._tokenTypeOverrides=s,a.DebugFlags.InDebugMode?this._lineText=t:this._lineText=null,this._tokens=[],this._binaryTokens=[],this._lastTokenEndIndex=0}produce(e,t){this.produceFromScopes(e.contentNameScopesList,t)}produceFromScopes(e,t){if(this._lastTokenEndIndex>=t)return;if(this._emitBinaryTokens){let s=e.tokenAttributes,r=!1;if(this.balancedBracketSelectors?.matchesAlways&&(r=!0),this._tokenTypeOverrides.length>0||this.balancedBracketSelectors&&!this.balancedBracketSelectors.matchesAlways&&!this.balancedBracketSelectors.matchesNever){const t=e.getScopeNames();for(const e of this._tokenTypeOverrides)e.matcher(t)&&(s=n.EncodedTokenAttributes.set(s,0,n.toOptionalTokenType(e.type),null,-1,0,0));this.balancedBracketSelectors&&(r=this.balancedBracketSelectors.match(t))}if(r&&(s=n.EncodedTokenAttributes.set(s,0,8,r,-1,0,0)),this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-1]===s)return void(this._lastTokenEndIndex=t);if(a.DebugFlags.InDebugMode){const s=e.getScopeNames();console.log(" token: |"+this._lineText.substring(this._lastTokenEndIndex,t).replace(/\n$/,"\\n")+"|");for(let e=0;e0&&this._tokens[this._tokens.length-1].startIndex===t-1&&this._tokens.pop(),0===this._tokens.length&&(this._lastTokenEndIndex=-1,this.produce(e,t),this._tokens[this._tokens.length-1].startIndex=0),this._tokens}getBinaryResult(e,t){this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-2]===t-1&&(this._binaryTokens.pop(),this._binaryTokens.pop()),0===this._binaryTokens.length&&(this._lastTokenEndIndex=-1,this.produce(e,t),this._binaryTokens[this._binaryTokens.length-2]=0);const s=new Uint32Array(this._binaryTokens.length);for(let e=0,t=this._binaryTokens.length;e{Object.defineProperty(t,"__esModule",{value:!0}),t.parseInclude=t.TopLevelRepositoryReference=t.TopLevelReference=t.RelativeReference=t.SelfReference=t.BaseReference=t.ScopeDependencyProcessor=t.ExternalReferenceCollector=t.TopLevelRepositoryRuleReference=t.TopLevelRuleReference=void 0;const a=s(878);class n{constructor(e){this.scopeName=e}toKey(){return this.scopeName}}t.TopLevelRuleReference=n;class r{constructor(e,t){this.scopeName=e,this.ruleName=t}toKey(){return`${this.scopeName}#${this.ruleName}`}}t.TopLevelRepositoryRuleReference=r;class o{constructor(){this._references=[],this._seenReferenceKeys=new Set,this.visitedRule=new Set}get references(){return this._references}add(e){const t=e.toKey();this._seenReferenceKeys.has(t)||(this._seenReferenceKeys.add(t),this._references.push(e))}}function i(e,t,s,a){const r=s.lookup(e.scopeName);if(!r){if(e.scopeName===t)throw new Error(`No grammar provided for <${t}>`);return}const o=s.lookup(t);e instanceof n?l({baseGrammar:o,selfGrammar:r},a):c(e.ruleName,{baseGrammar:o,selfGrammar:r,repository:r.repository},a);const i=s.injections(e.scopeName);if(i)for(const e of i)a.add(new n(e))}function c(e,t,s){t.repository&&t.repository[e]&&u([t.repository[e]],t,s)}function l(e,t){e.selfGrammar.patterns&&Array.isArray(e.selfGrammar.patterns)&&u(e.selfGrammar.patterns,{...e,repository:e.selfGrammar.repository},t),e.selfGrammar.injections&&u(Object.values(e.selfGrammar.injections),{...e,repository:e.selfGrammar.repository},t)}function u(e,t,s){for(const o of e){if(s.visitedRule.has(o))continue;s.visitedRule.add(o);const e=o.repository?a.mergeObjects({},t.repository,o.repository):t.repository;Array.isArray(o.patterns)&&u(o.patterns,{...t,repository:e},s);const i=o.include;if(!i)continue;const p=f(i);switch(p.kind){case 0:l({...t,selfGrammar:t.baseGrammar},s);break;case 1:l(t,s);break;case 2:c(p.ruleName,{...t,repository:e},s);break;case 3:case 4:const a=p.scopeName===t.selfGrammar.scopeName?t.selfGrammar:p.scopeName===t.baseGrammar.scopeName?t.baseGrammar:void 0;if(a){const n={baseGrammar:t.baseGrammar,selfGrammar:a,repository:e};4===p.kind?c(p.ruleName,n,s):l(n,s)}else 4===p.kind?s.add(new r(p.scopeName,p.ruleName)):s.add(new n(p.scopeName))}}}t.ExternalReferenceCollector=o,t.ScopeDependencyProcessor=class{constructor(e,t){this.repo=e,this.initialScopeName=t,this.seenFullScopeRequests=new Set,this.seenPartialScopeRequests=new Set,this.seenFullScopeRequests.add(this.initialScopeName),this.Q=[new n(this.initialScopeName)]}processQueue(){const e=this.Q;this.Q=[];const t=new o;for(const s of e)i(s,this.initialScopeName,this.repo,t);for(const e of t.references)if(e instanceof n){if(this.seenFullScopeRequests.has(e.scopeName))continue;this.seenFullScopeRequests.add(e.scopeName),this.Q.push(e)}else{if(this.seenFullScopeRequests.has(e.scopeName))continue;if(this.seenPartialScopeRequests.has(e.toKey()))continue;this.seenPartialScopeRequests.add(e.toKey()),this.Q.push(e)}}};class p{constructor(){this.kind=0}}t.BaseReference=p;class h{constructor(){this.kind=1}}t.SelfReference=h;class m{constructor(e){this.ruleName=e,this.kind=2}}t.RelativeReference=m;class d{constructor(e){this.scopeName=e,this.kind=3}}t.TopLevelReference=d;class g{constructor(e,t){this.scopeName=e,this.ruleName=t,this.kind=4}}function f(e){if("$base"===e)return new p;if("$self"===e)return new h;const t=e.indexOf("#");if(-1===t)return new d(e);if(0===t)return new m(e.substring(1));{const s=e.substring(0,t),a=e.substring(t+1);return new g(s,a)}}t.TopLevelRepositoryReference=g,t.parseInclude=f},391:function(e,t,s){var a=this&&this.__createBinding||(Object.create?function(e,t,s,a){void 0===a&&(a=s),Object.defineProperty(e,a,{enumerable:!0,get:function(){return t[s]}})}:function(e,t,s,a){void 0===a&&(a=s),e[a]=t[s]}),n=this&&this.__exportStar||function(e,t){for(var s in e)"default"===s||Object.prototype.hasOwnProperty.call(t,s)||a(t,e,s)};Object.defineProperty(t,"__esModule",{value:!0}),n(s(947),t)},47:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.LocalStackElement=t._tokenizeString=void 0;const a=s(350),n=s(44),r=s(792),o=s(878);class i{constructor(e,t){this.stack=e,this.stoppedEarly=t}}function c(e,t,s,n,c,p,m,d){const g=t.content.length;let f=!1,y=-1;if(m){const o=function(e,t,s,n,o,i){let c=o.beginRuleCapturedEOL?0:-1;const l=[];for(let t=o;t;t=t.pop()){const s=t.getRule(e);s instanceof r.BeginWhileRule&&l.push({rule:s,stack:t})}for(let p=l.pop();p;p=l.pop()){const{ruleScanner:l,findOptions:m}=u(p.rule,e,p.stack.endRule,s,n===c),d=l.findNextMatchSync(t,n,m);if(a.DebugFlags.InDebugMode&&(console.log(" scanning for while rule"),console.log(l.toString())),!d){a.DebugFlags.InDebugMode&&console.log(" popping "+p.rule.debugName+" - "+p.rule.debugWhileRegExp),o=p.stack.pop();break}if(d.ruleId!==r.whileRuleId){o=p.stack.pop();break}d.captureIndices&&d.captureIndices.length&&(i.produce(p.stack,d.captureIndices[0].start),h(e,t,s,p.stack,i,p.rule.whileCaptures,d.captureIndices),i.produce(p.stack,d.captureIndices[0].end),c=d.captureIndices[0].end,d.captureIndices[0].end>n&&(n=d.captureIndices[0].end,s=!1))}return{stack:o,linePos:n,anchorPosition:c,isFirstLine:s}}(e,t,s,n,c,p);c=o.stack,n=o.linePos,s=o.isFirstLine,y=o.anchorPosition}const b=Date.now();for(;!f;){if(0!==d&&Date.now()-b>d)return new i(c,!0);_()}return new i(c,!1);function _(){a.DebugFlags.InDebugMode&&(console.log(""),console.log(`@@scanNext ${n}: |${t.content.substr(n).replace(/\n$/,"\\n")}|`));const i=function(e,t,s,n,r,i){const c=function(e,t,s,n,r,i){const c=r.getRule(e),{ruleScanner:u,findOptions:p}=l(c,e,r.endRule,s,n===i);let h=0;a.DebugFlags.InDebugMode&&(h=o.performanceNow());const m=u.findNextMatchSync(t,n,p);if(a.DebugFlags.InDebugMode){const e=o.performanceNow()-h;e>5&&console.warn(`Rule ${c.debugName} (${c.id}) matching took ${e} against '${t}'`),console.log(` scanning for (linePos: ${n}, anchorPosition: ${i})`),console.log(u.toString()),m&&console.log(`matched rule id: ${m.ruleId} from ${m.captureIndices[0].start} to ${m.captureIndices[0].end}`)}return m?{captureIndices:m.captureIndices,matchedRuleId:m.ruleId}:null}(e,t,s,n,r,i),u=e.getInjections();if(0===u.length)return c;const p=function(e,t,s,n,r,o,i){let c,u=Number.MAX_VALUE,p=null,h=0;const m=o.contentNameScopesList.getScopeNames();for(let o=0,d=e.length;o=u)&&(u=_,p=b.captureIndices,c=b.ruleId,h=d.priority,u===r))break}return p?{priorityMatch:-1===h,captureIndices:p,matchedRuleId:c}:null}(u,e,t,s,n,r,i);if(!p)return c;if(!c)return p;const h=c.captureIndices[0].start,m=p.captureIndices[0].start;return m0)&&u[0].end>n;if(m===r.endRuleId){const r=c.getRule(e);a.DebugFlags.InDebugMode&&console.log(" popping "+r.debugName+" - "+r.debugEndRegExp),p.produce(c,u[0].start),c=c.withContentNameScopesList(c.nameScopesList),h(e,t,s,c,p,r.endCaptures,u),p.produce(c,u[0].end);const o=c;if(c=c.parent,y=o.getAnchorPos(),!d&&o.getEnterPos()===n)return a.DebugFlags.InDebugMode&&console.error("[1] - Grammar is in an endless loop - Grammar pushed & popped a rule without advancing"),c=o,p.produce(c,g),void(f=!0)}else{const o=e.getRule(m);p.produce(c,u[0].start);const i=c,l=o.getName(t.content,u),b=c.contentNameScopesList.pushAttributed(l,e);if(c=c.push(m,n,y,u[0].end===g,null,b,b),o instanceof r.BeginEndRule){const n=o;a.DebugFlags.InDebugMode&&console.log(" pushing "+n.debugName+" - "+n.debugBeginRegExp),h(e,t,s,c,p,n.beginCaptures,u),p.produce(c,u[0].end),y=u[0].end;const r=n.getContentName(t.content,u),l=b.pushAttributed(r,e);if(c=c.withContentNameScopesList(l),n.endHasBackReferences&&(c=c.withEndRule(n.getEndWithResolvedBackReferences(t.content,u))),!d&&i.hasSameRuleAs(c))return a.DebugFlags.InDebugMode&&console.error("[2] - Grammar is in an endless loop - Grammar pushed the same rule without advancing"),c=c.pop(),p.produce(c,g),void(f=!0)}else if(o instanceof r.BeginWhileRule){const n=o;a.DebugFlags.InDebugMode&&console.log(" pushing "+n.debugName),h(e,t,s,c,p,n.beginCaptures,u),p.produce(c,u[0].end),y=u[0].end;const r=n.getContentName(t.content,u),l=b.pushAttributed(r,e);if(c=c.withContentNameScopesList(l),n.whileHasBackReferences&&(c=c.withEndRule(n.getWhileWithResolvedBackReferences(t.content,u))),!d&&i.hasSameRuleAs(c))return a.DebugFlags.InDebugMode&&console.error("[3] - Grammar is in an endless loop - Grammar pushed the same rule without advancing"),c=c.pop(),p.produce(c,g),void(f=!0)}else{const n=o;if(a.DebugFlags.InDebugMode&&console.log(" matched "+n.debugName+" - "+n.debugMatchRegExp),h(e,t,s,c,p,n.captures,u),p.produce(c,u[0].end),c=c.pop(),!d)return a.DebugFlags.InDebugMode&&console.error("[4] - Grammar is in an endless loop - Grammar is not advancing, nor is it pushing/popping"),c=c.safePop(),p.produce(c,g),void(f=!0)}}u[0].end>n&&(n=u[0].end,s=!1)}}function l(e,t,s,n,r){return a.UseOnigurumaFindOptions?{ruleScanner:e.compile(t,s),findOptions:p(n,r)}:{ruleScanner:e.compileAG(t,s,n,r),findOptions:0}}function u(e,t,s,n,r){return a.UseOnigurumaFindOptions?{ruleScanner:e.compileWhile(t,s),findOptions:p(n,r)}:{ruleScanner:e.compileWhileAG(t,s,n,r),findOptions:0}}function p(e,t){let s=0;return e||(s|=1),t||(s|=4),s}function h(e,t,s,a,r,o,i){if(0===o.length)return;const l=t.content,u=Math.min(o.length,i.length),p=[],h=i[0].end;for(let t=0;th)break;for(;p.length>0&&p[p.length-1].endPos<=d.start;)r.produceFromScopes(p[p.length-1].scopes,p[p.length-1].endPos),p.pop();if(p.length>0?r.produceFromScopes(p[p.length-1].scopes,d.start):r.produce(a,d.start),u.retokenizeCapturedWithRuleId){const t=u.getName(l,i),o=a.contentNameScopesList.pushAttributed(t,e),p=u.getContentName(l,i),h=o.pushAttributed(p,e),m=a.push(u.retokenizeCapturedWithRuleId,d.start,-1,!1,null,o,h),g=e.createOnigString(l.substring(0,d.end));c(e,g,s&&0===d.start,d.start,m,r,!1,0),n.disposeOnigString(g);continue}const g=u.getName(l,i);if(null!==g){const t=(p.length>0?p[p.length-1].scopes:a.contentNameScopesList).pushAttributed(g,e);p.push(new m(t,d.end))}}for(;p.length>0;)r.produceFromScopes(p[p.length-1].scopes,p[p.length-1].endPos),p.pop()}t._tokenizeString=c;class m{constructor(e,t){this.scopes=e,this.endPos=t}}t.LocalStackElement=m},974:(e,t)=>{function s(e,t){throw new Error("Near offset "+e.pos+": "+t+" ~~~"+e.source.substr(e.pos,50)+"~~~")}Object.defineProperty(t,"__esModule",{value:!0}),t.parseJSON=void 0,t.parseJSON=function(e,t,o){let i=new a(e),c=new n,l=0,u=null,p=[],h=[];function m(){p.push(l),h.push(u)}function d(){l=p.pop(),u=h.pop()}function g(e){s(i,e)}for(;r(i,c);){if(0===l){if(null!==u&&g("too many constructs in root"),3===c.type){u={},o&&(u.$vscodeTextmateLocation=c.toLocation(t)),m(),l=1;continue}if(2===c.type){u=[],m(),l=4;continue}g("unexpected token in root")}if(2===l){if(5===c.type){d();continue}if(7===c.type){l=3;continue}g("expected , or }")}if(1===l||3===l){if(1===l&&5===c.type){d();continue}if(1===c.type){let e=c.value;if(r(i,c)&&6===c.type||g("expected colon"),r(i,c)||g("expected value"),l=2,1===c.type){u[e]=c.value;continue}if(8===c.type){u[e]=null;continue}if(9===c.type){u[e]=!0;continue}if(10===c.type){u[e]=!1;continue}if(11===c.type){u[e]=parseFloat(c.value);continue}if(2===c.type){let t=[];u[e]=t,m(),l=4,u=t;continue}if(3===c.type){let s={};o&&(s.$vscodeTextmateLocation=c.toLocation(t)),u[e]=s,m(),l=1,u=s;continue}}g("unexpected token in dict")}if(5===l){if(4===c.type){d();continue}if(7===c.type){l=6;continue}g("expected , or ]")}if(4===l||6===l){if(4===l&&4===c.type){d();continue}if(l=5,1===c.type){u.push(c.value);continue}if(8===c.type){u.push(null);continue}if(9===c.type){u.push(!0);continue}if(10===c.type){u.push(!1);continue}if(11===c.type){u.push(parseFloat(c.value));continue}if(2===c.type){let e=[];u.push(e),m(),l=4,u=e;continue}if(3===c.type){let e={};o&&(e.$vscodeTextmateLocation=c.toLocation(t)),u.push(e),m(),l=1,u=e;continue}g("unexpected token in array")}g("unknown state")}return 0!==h.length&&g("unclosed constructs"),u};class a{constructor(e){this.source=e,this.pos=0,this.len=e.length,this.line=1,this.char=0}}class n{constructor(){this.value=null,this.type=0,this.offset=-1,this.len=-1,this.line=-1,this.char=-1}toLocation(e){return{filename:e,line:this.line,char:this.char}}}function r(e,t){t.value=null,t.type=0,t.offset=-1,t.len=-1,t.line=-1,t.char=-1;let a,n=e.source,r=e.pos,o=e.len,i=e.line,c=e.char;for(;;){if(r>=o)return!1;if(a=n.charCodeAt(r),32!==a&&9!==a&&13!==a){if(10!==a)break;r++,i++,c=0}else r++,c++}if(t.offset=r,t.line=i,t.char=c,34===a){for(t.type=1,r++,c++;;){if(r>=o)return!1;if(a=n.charCodeAt(r),r++,c++,92!==a){if(34===a)break}else r++,c++}t.value=n.substring(t.offset+1,r-1).replace(/\\u([0-9A-Fa-f]{4})/g,((e,t)=>String.fromCodePoint(parseInt(t,16)))).replace(/\\(.)/g,((t,a)=>{switch(a){case'"':return'"';case"\\":return"\\";case"/":return"/";case"b":return"\b";case"f":return"\f";case"n":return"\n";case"r":return"\r";case"t":return"\t";default:s(e,"invalid escape sequence")}throw new Error("unreachable")}))}else if(91===a)t.type=2,r++,c++;else if(123===a)t.type=3,r++,c++;else if(93===a)t.type=4,r++,c++;else if(125===a)t.type=5,r++,c++;else if(58===a)t.type=6,r++,c++;else if(44===a)t.type=7,r++,c++;else if(110===a){if(t.type=8,r++,c++,a=n.charCodeAt(r),117!==a)return!1;if(r++,c++,a=n.charCodeAt(r),108!==a)return!1;if(r++,c++,a=n.charCodeAt(r),108!==a)return!1;r++,c++}else if(116===a){if(t.type=9,r++,c++,a=n.charCodeAt(r),114!==a)return!1;if(r++,c++,a=n.charCodeAt(r),117!==a)return!1;if(r++,c++,a=n.charCodeAt(r),101!==a)return!1;r++,c++}else if(102===a){if(t.type=10,r++,c++,a=n.charCodeAt(r),97!==a)return!1;if(r++,c++,a=n.charCodeAt(r),108!==a)return!1;if(r++,c++,a=n.charCodeAt(r),115!==a)return!1;if(r++,c++,a=n.charCodeAt(r),101!==a)return!1;r++,c++}else for(t.type=11;;){if(r>=o)return!1;if(a=n.charCodeAt(r),!(46===a||a>=48&&a<=57||101===a||69===a||45===a||43===a))break;r++,c++}return t.len=r-t.offset,null===t.value&&(t.value=n.substr(t.offset,t.len)),e.pos=r,e.line=i,e.char=c,!0}},787:function(e,t,s){var a=this&&this.__createBinding||(Object.create?function(e,t,s,a){void 0===a&&(a=s),Object.defineProperty(e,a,{enumerable:!0,get:function(){return t[s]}})}:function(e,t,s,a){void 0===a&&(a=s),e[a]=t[s]}),n=this&&this.__exportStar||function(e,t){for(var s in e)"default"===s||Object.prototype.hasOwnProperty.call(t,s)||a(t,e,s)};Object.defineProperty(t,"__esModule",{value:!0}),t.parseRawGrammar=t.INITIAL=t.Registry=void 0;const r=s(391),o=s(50),i=s(652),c=s(583),l=s(965);n(s(44),t),t.Registry=class{constructor(e){this._options=e,this._syncRegistry=new i.SyncRegistry(c.Theme.createFromRawTheme(e.theme,e.colorMap),e.onigLib),this._ensureGrammarCache=new Map}dispose(){this._syncRegistry.dispose()}setTheme(e,t){this._syncRegistry.setTheme(c.Theme.createFromRawTheme(e,t))}getColorMap(){return this._syncRegistry.getColorMap()}loadGrammarWithEmbeddedLanguages(e,t,s){return this.loadGrammarWithConfiguration(e,t,{embeddedLanguages:s})}loadGrammarWithConfiguration(e,t,s){return this._loadGrammar(e,t,s.embeddedLanguages,s.tokenTypes,new r.BalancedBracketSelectors(s.balancedBracketSelectors||[],s.unbalancedBracketSelectors||[]))}loadGrammar(e){return this._loadGrammar(e,0,null,null,null)}async _loadGrammar(e,t,s,a,n){const r=new l.ScopeDependencyProcessor(this._syncRegistry,e);for(;r.Q.length>0;)await Promise.all(r.Q.map((e=>this._loadSingleGrammar(e.scopeName)))),r.processQueue();return this._grammarForScopeName(e,t,s,a,n)}async _loadSingleGrammar(e){return this._ensureGrammarCache.has(e)||this._ensureGrammarCache.set(e,this._doLoadSingleGrammar(e)),this._ensureGrammarCache.get(e)}async _doLoadSingleGrammar(e){const t=await this._options.loadGrammar(e);if(t){const s="function"==typeof this._options.getInjections?this._options.getInjections(e):void 0;this._syncRegistry.addGrammar(t,s)}}async addGrammar(e,t=[],s=0,a=null){return this._syncRegistry.addGrammar(e,t),await this._grammarForScopeName(e.scopeName,s,a)}_grammarForScopeName(e,t=0,s=null,a=null,n=null){return this._syncRegistry.grammarForScopeName(e,t,s,a,n)}},t.INITIAL=r.StateStack.NULL,t.parseRawGrammar=o.parseRawGrammar},736:(e,t)=>{function s(e){return!!e&&!!e.match(/[\w\.:]+/)}Object.defineProperty(t,"__esModule",{value:!0}),t.createMatchers=void 0,t.createMatchers=function(e,t){const a=[],n=function(e){let t=/([LR]:|[\w\.:][\w\.:\-]*|[\,\|\-\(\)])/g,s=t.exec(e);return{next:()=>{if(!s)return null;const a=s[0];return s=t.exec(e),a}}}(e);let r=n.next();for(;null!==r;){let e=0;if(2===r.length&&":"===r.charAt(1)){switch(r.charAt(0)){case"R":e=1;break;case"L":e=-1;break;default:console.log(`Unknown priority ${r} in scope selector`)}r=n.next()}let t=i();if(a.push({matcher:t,priority:e}),","!==r)break;r=n.next()}return a;function o(){if("-"===r){r=n.next();const e=o();return t=>!!e&&!e(t)}if("("===r){r=n.next();const e=function(){const e=[];let t=i();for(;t&&(e.push(t),"|"===r||","===r);){do{r=n.next()}while("|"===r||","===r);t=i()}return t=>e.some((e=>e(t)))}();return")"===r&&(r=n.next()),e}if(s(r)){const e=[];do{e.push(r),r=n.next()}while(s(r));return s=>t(e,s)}return null}function i(){const e=[];let t=o();for(;t;)e.push(t),t=o();return t=>e.every((e=>e(t)))}}},44:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.disposeOnigString=void 0,t.disposeOnigString=function(e){"function"==typeof e.dispose&&e.dispose()}},50:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.parseRawGrammar=void 0;const a=s(69),n=s(350),r=s(974);t.parseRawGrammar=function(e,t=null){return null!==t&&/\.json$/.test(t)?(s=e,o=t,n.DebugFlags.InDebugMode?r.parseJSON(s,o,!0):JSON.parse(s)):function(e,t){return n.DebugFlags.InDebugMode?a.parseWithLocation(e,t,"$vscodeTextmateLocation"):a.parsePLIST(e)}(e,t);var s,o}},69:(e,t)=>{function s(e,t,s){const a=e.length;let n=0,r=1,o=0;function i(t){if(null===s)n+=t;else for(;t>0;)10===e.charCodeAt(n)?(n++,r++,o=0):(n++,o++),t--}function c(e){null===s?n=e:i(e-n)}function l(){for(;n0&&65279===e.charCodeAt(0)&&(n=1);let m=0,d=null,g=[],f=[],y=null;function b(e,t){g.push(m),f.push(d),m=e,d=t}function _(){if(0===g.length)return N("illegal state stack");m=g.pop(),d=f.pop()}function N(t){throw new Error("Near offset "+n+": "+t+" ~~~"+e.substr(n,50)+"~~~")}const k=function(){if(null===y)return N("missing ");let e={};null!==s&&(e[s]={filename:t,line:r,char:o}),d[y]=e,y=null,b(1,e)},L=function(){if(null===y)return N("missing ");let e=[];d[y]=e,y=null,b(2,e)},S=function(){let e={};null!==s&&(e[s]={filename:t,line:r,char:o}),d.push(e),b(1,e)},P=function(){let e=[];d.push(e),b(2,e)};function v(){if(1!==m)return N("unexpected ");_()}function j(){return 1===m||2!==m?N("unexpected "):void _()}function w(e){if(1===m){if(null===y)return N("missing ");d[y]=e,y=null}else 2===m?d.push(e):d=e}function C(e){if(isNaN(e))return N("cannot parse float");if(1===m){if(null===y)return N("missing ");d[y]=e,y=null}else 2===m?d.push(e):d=e}function x(e){if(isNaN(e))return N("cannot parse integer");if(1===m){if(null===y)return N("missing ");d[y]=e,y=null}else 2===m?d.push(e):d=e}function A(e){if(1===m){if(null===y)return N("missing ");d[y]=e,y=null}else 2===m?d.push(e):d=e}function T(e){if(1===m){if(null===y)return N("missing ");d[y]=e,y=null}else 2===m?d.push(e):d=e}function R(e){if(1===m){if(null===y)return N("missing ");d[y]=e,y=null}else 2===m?d.push(e):d=e}function I(){let e=h(">"),t=!1;return 47===e.charCodeAt(e.length-1)&&(t=!0,e=e.substring(0,e.length-1)),{name:e.trim(),isClosed:t}}function E(e){if(e.isClosed)return"";let t=h(""),t.replace(/&#([0-9]+);/g,(function(e,t){return String.fromCodePoint(parseInt(t,10))})).replace(/&#x([0-9a-f]+);/g,(function(e,t){return String.fromCodePoint(parseInt(t,16))})).replace(/&|<|>|"|'/g,(function(e){switch(e){case"&":return"&";case"<":return"<";case">":return">";case""":return'"';case"'":return"'"}return e}))}for(;n=a));){const c=e.charCodeAt(n);if(i(1),60!==c)return N("expected <");if(n>=a)return N("unexpected end of input");const h=e.charCodeAt(n);if(63===h){i(1),p("?>");continue}if(33===h){if(i(1),u("--")){p("--\x3e");continue}p(">");continue}if(47===h){if(i(1),l(),u("plist")){p(">");continue}if(u("dict")){p(">"),v();continue}if(u("array")){p(">"),j();continue}return N("unexpected closed tag")}let g=I();switch(g.name){case"dict":1===m?k():2===m?S():(d={},null!==s&&(d[s]={filename:t,line:r,char:o}),b(1,d)),g.isClosed&&v();continue;case"array":1===m?L():2===m?P():(d=[],b(2,d)),g.isClosed&&j();continue;case"key":O=E(g),1!==m?N("unexpected "):null!==y?N("too many "):y=O;continue;case"string":w(E(g));continue;case"real":C(parseFloat(E(g)));continue;case"integer":x(parseInt(E(g),10));continue;case"date":A(new Date(E(g)));continue;case"data":T(E(g));continue;case"true":E(g),R(!0);continue;case"false":E(g),R(!1);continue}if(!/^plist/.test(g.name))return N("unexpected opened tag "+g.name)}var O;return d}Object.defineProperty(t,"__esModule",{value:!0}),t.parsePLIST=t.parseWithLocation=void 0,t.parseWithLocation=function(e,t,a){return s(e,t,a)},t.parsePLIST=function(e){return s(e,null,null)}},652:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SyncRegistry=void 0;const a=s(391);t.SyncRegistry=class{constructor(e,t){this._onigLibPromise=t,this._grammars=new Map,this._rawGrammars=new Map,this._injectionGrammars=new Map,this._theme=e}dispose(){for(const e of this._grammars.values())e.dispose()}setTheme(e){this._theme=e}getColorMap(){return this._theme.getColorMap()}addGrammar(e,t){this._rawGrammars.set(e.scopeName,e),t&&this._injectionGrammars.set(e.scopeName,t)}lookup(e){return this._rawGrammars.get(e)}injections(e){return this._injectionGrammars.get(e)}getDefaults(){return this._theme.getDefaults()}themeMatch(e){return this._theme.match(e)}async grammarForScopeName(e,t,s,n,r){if(!this._grammars.has(e)){let o=this._rawGrammars.get(e);if(!o)return null;this._grammars.set(e,a.createGrammar(e,o,t,s,n,r,this,await this._onigLibPromise))}return this._grammars.get(e)}}},792:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CompiledRule=t.RegExpSourceList=t.RegExpSource=t.RuleFactory=t.BeginWhileRule=t.BeginEndRule=t.IncludeOnlyRule=t.MatchRule=t.CaptureRule=t.Rule=t.ruleIdToNumber=t.ruleIdFromNumber=t.whileRuleId=t.endRuleId=void 0;const a=s(878),n=s(965),r=/\\(\d+)/,o=/\\(\d+)/g;t.endRuleId=-1,t.whileRuleId=-2,t.ruleIdFromNumber=function(e){return e},t.ruleIdToNumber=function(e){return e};class i{constructor(e,t,s,n){this.$location=e,this.id=t,this._name=s||null,this._nameIsCapturing=a.RegexSource.hasCaptures(this._name),this._contentName=n||null,this._contentNameIsCapturing=a.RegexSource.hasCaptures(this._contentName)}get debugName(){const e=this.$location?`${a.basename(this.$location.filename)}:${this.$location.line}`:"unknown";return`${this.constructor.name}#${this.id} @ ${e}`}getName(e,t){return this._nameIsCapturing&&null!==this._name&&null!==e&&null!==t?a.RegexSource.replaceCaptures(this._name,e,t):this._name}getContentName(e,t){return this._contentNameIsCapturing&&null!==this._contentName?a.RegexSource.replaceCaptures(this._contentName,e,t):this._contentName}}t.Rule=i;class c extends i{constructor(e,t,s,a,n){super(e,t,s,a),this.retokenizeCapturedWithRuleId=n}dispose(){}collectPatterns(e,t){throw new Error("Not supported!")}compile(e,t){throw new Error("Not supported!")}compileAG(e,t,s,a){throw new Error("Not supported!")}}t.CaptureRule=c;class l extends i{constructor(e,t,s,a,n){super(e,t,s,null),this._match=new d(a,this.id),this.captures=n,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}get debugMatchRegExp(){return`${this._match.source}`}collectPatterns(e,t){t.push(this._match)}compile(e,t){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,t,s,a){return this._getCachedCompiledPatterns(e).compileAG(e,s,a)}_getCachedCompiledPatterns(e){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new g,this.collectPatterns(e,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}}t.MatchRule=l;class u extends i{constructor(e,t,s,a,n){super(e,t,s,a),this.patterns=n.patterns,this.hasMissingPatterns=n.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}collectPatterns(e,t){for(const s of this.patterns)e.getRule(s).collectPatterns(e,t)}compile(e,t){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,t,s,a){return this._getCachedCompiledPatterns(e).compileAG(e,s,a)}_getCachedCompiledPatterns(e){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new g,this.collectPatterns(e,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}}t.IncludeOnlyRule=u;class p extends i{constructor(e,t,s,a,n,r,o,i,c,l){super(e,t,s,a),this._begin=new d(n,this.id),this.beginCaptures=r,this._end=new d(o||"￿",-1),this.endHasBackReferences=this._end.hasBackReferences,this.endCaptures=i,this.applyEndPatternLast=c||!1,this.patterns=l.patterns,this.hasMissingPatterns=l.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugEndRegExp(){return`${this._end.source}`}getEndWithResolvedBackReferences(e,t){return this._end.resolveBackReferences(e,t)}collectPatterns(e,t){t.push(this._begin)}compile(e,t){return this._getCachedCompiledPatterns(e,t).compile(e)}compileAG(e,t,s,a){return this._getCachedCompiledPatterns(e,t).compileAG(e,s,a)}_getCachedCompiledPatterns(e,t){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new g;for(const t of this.patterns)e.getRule(t).collectPatterns(e,this._cachedCompiledPatterns);this.applyEndPatternLast?this._cachedCompiledPatterns.push(this._end.hasBackReferences?this._end.clone():this._end):this._cachedCompiledPatterns.unshift(this._end.hasBackReferences?this._end.clone():this._end)}return this._end.hasBackReferences&&(this.applyEndPatternLast?this._cachedCompiledPatterns.setSource(this._cachedCompiledPatterns.length()-1,t):this._cachedCompiledPatterns.setSource(0,t)),this._cachedCompiledPatterns}}t.BeginEndRule=p;class h extends i{constructor(e,s,a,n,r,o,i,c,l){super(e,s,a,n),this._begin=new d(r,this.id),this.beginCaptures=o,this.whileCaptures=c,this._while=new d(i,t.whileRuleId),this.whileHasBackReferences=this._while.hasBackReferences,this.patterns=l.patterns,this.hasMissingPatterns=l.hasMissingPatterns,this._cachedCompiledPatterns=null,this._cachedCompiledWhilePatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null),this._cachedCompiledWhilePatterns&&(this._cachedCompiledWhilePatterns.dispose(),this._cachedCompiledWhilePatterns=null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugWhileRegExp(){return`${this._while.source}`}getWhileWithResolvedBackReferences(e,t){return this._while.resolveBackReferences(e,t)}collectPatterns(e,t){t.push(this._begin)}compile(e,t){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,t,s,a){return this._getCachedCompiledPatterns(e).compileAG(e,s,a)}_getCachedCompiledPatterns(e){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new g;for(const t of this.patterns)e.getRule(t).collectPatterns(e,this._cachedCompiledPatterns)}return this._cachedCompiledPatterns}compileWhile(e,t){return this._getCachedCompiledWhilePatterns(e,t).compile(e)}compileWhileAG(e,t,s,a){return this._getCachedCompiledWhilePatterns(e,t).compileAG(e,s,a)}_getCachedCompiledWhilePatterns(e,t){return this._cachedCompiledWhilePatterns||(this._cachedCompiledWhilePatterns=new g,this._cachedCompiledWhilePatterns.push(this._while.hasBackReferences?this._while.clone():this._while)),this._while.hasBackReferences&&this._cachedCompiledWhilePatterns.setSource(0,t||"￿"),this._cachedCompiledWhilePatterns}}t.BeginWhileRule=h;class m{static createCaptureRule(e,t,s,a,n){return e.registerRule((e=>new c(t,e,s,a,n)))}static getCompiledRuleId(e,t,s){return e.id||t.registerRule((n=>{if(e.id=n,e.match)return new l(e.$vscodeTextmateLocation,e.id,e.name,e.match,m._compileCaptures(e.captures,t,s));if(void 0===e.begin){e.repository&&(s=a.mergeObjects({},s,e.repository));let n=e.patterns;return void 0===n&&e.include&&(n=[{include:e.include}]),new u(e.$vscodeTextmateLocation,e.id,e.name,e.contentName,m._compilePatterns(n,t,s))}return e.while?new h(e.$vscodeTextmateLocation,e.id,e.name,e.contentName,e.begin,m._compileCaptures(e.beginCaptures||e.captures,t,s),e.while,m._compileCaptures(e.whileCaptures||e.captures,t,s),m._compilePatterns(e.patterns,t,s)):new p(e.$vscodeTextmateLocation,e.id,e.name,e.contentName,e.begin,m._compileCaptures(e.beginCaptures||e.captures,t,s),e.end,m._compileCaptures(e.endCaptures||e.captures,t,s),e.applyEndPatternLast,m._compilePatterns(e.patterns,t,s))})),e.id}static _compileCaptures(e,t,s){let a=[];if(e){let n=0;for(const t in e){if("$vscodeTextmateLocation"===t)continue;const e=parseInt(t,10);e>n&&(n=e)}for(let e=0;e<=n;e++)a[e]=null;for(const n in e){if("$vscodeTextmateLocation"===n)continue;const r=parseInt(n,10);let o=0;e[n].patterns&&(o=m.getCompiledRuleId(e[n],t,s)),a[r]=m.createCaptureRule(t,e[n].$vscodeTextmateLocation,e[n].name,e[n].contentName,o)}}return a}static _compilePatterns(e,t,s){let a=[];if(e)for(let r=0,o=e.length;re.substring(t.start,t.end)));return o.lastIndex=0,this.source.replace(o,((e,t)=>a.escapeRegExpCharacters(s[parseInt(t,10)]||"")))}_buildAnchorCache(){let e,t,s,a,n=[],r=[],o=[],i=[];for(e=0,t=this.source.length;ee.source));this._cached=new f(e,t,this._items.map((e=>e.ruleId)))}return this._cached}compileAG(e,t,s){return this._hasAnchors?t?s?(this._anchorCache.A1_G1||(this._anchorCache.A1_G1=this._resolveAnchors(e,t,s)),this._anchorCache.A1_G1):(this._anchorCache.A1_G0||(this._anchorCache.A1_G0=this._resolveAnchors(e,t,s)),this._anchorCache.A1_G0):s?(this._anchorCache.A0_G1||(this._anchorCache.A0_G1=this._resolveAnchors(e,t,s)),this._anchorCache.A0_G1):(this._anchorCache.A0_G0||(this._anchorCache.A0_G0=this._resolveAnchors(e,t,s)),this._anchorCache.A0_G0):this.compile(e)}_resolveAnchors(e,t,s){let a=this._items.map((e=>e.resolveAnchors(t,s)));return new f(e,a,this._items.map((e=>e.ruleId)))}}t.RegExpSourceList=g;class f{constructor(e,t,s){this.regExps=t,this.rules=s,this.scanner=e.createOnigScanner(t)}dispose(){"function"==typeof this.scanner.dispose&&this.scanner.dispose()}toString(){const e=[];for(let t=0,s=this.rules.length;t{Object.defineProperty(t,"__esModule",{value:!0}),t.ThemeTrieElement=t.ThemeTrieElementRule=t.ColorMap=t.fontStyleToString=t.ParsedThemeRule=t.parseTheme=t.StyleAttributes=t.ScopeStack=t.Theme=void 0;const a=s(878);class n{constructor(e,t,s){this._colorMap=e,this._defaults=t,this._root=s,this._cachedMatchRoot=new a.CachedFn((e=>this._root.match(e)))}static createFromRawTheme(e,t){return this.createFromParsedTheme(c(e),t)}static createFromParsedTheme(e,t){return function(e,t){e.sort(((e,t)=>{let s=a.strcmp(e.scope,t.scope);return 0!==s?s:(s=a.strArrCmp(e.parentScopes,t.parentScopes),0!==s?s:e.index-t.index)}));let s=0,r="#000000",o="#ffffff";for(;e.length>=1&&""===e[0].scope;){let t=e.shift();-1!==t.fontStyle&&(s=t.fontStyle),null!==t.foreground&&(r=t.foreground),null!==t.background&&(o=t.background)}let c=new u(t),l=new i(s,c.getId(r),c.getId(o)),m=new h(new p(0,null,-1,0,0),[]);for(let t=0,s=e.length;tfunction(e,t){if(null===t)return!0;let s=0,a=t[s];for(;e;){if(o(e.scopeName,a)){if(s++,s===t.length)return!0;a=t[s]}e=e.parent}return!1}(e.parent,t.parentScopes)));return s?new i(s.fontStyle,s.foreground,s.background):null}}t.Theme=n;class r{constructor(e,t){this.parent=e,this.scopeName=t}static from(...e){let t=null;for(let s=0;s1&&(p=a.slice(0,a.length-1),p.reverse()),s[n++]=new l(o,p,e,i,c,u)}}return s}t.StyleAttributes=i,t.parseTheme=c;class l{constructor(e,t,s,a,n,r){this.scope=e,this.parentScopes=t,this.index=s,this.fontStyle=a,this.foreground=n,this.background=r}}t.ParsedThemeRule=l,t.fontStyleToString=function(e){if(-1===e)return"not set";let t="";return 1&e&&(t+="italic "),2&e&&(t+="bold "),4&e&&(t+="underline "),8&e&&(t+="strikethrough "),""===t&&(t="none"),t.trim()};class u{constructor(e){if(this._lastColorId=0,this._id2color=[],this._color2id=Object.create(null),Array.isArray(e)){this._isFrozen=!0;for(let t=0,s=e.length;te?console.log("how did this happen?"):this.scopeDepth=e,-1!==t&&(this.fontStyle=t),0!==s&&(this.foreground=s),0!==a&&(this.background=a)}}t.ThemeTrieElementRule=p;class h{constructor(e,t=[],s={}){this._mainRule=e,this._children=s,this._rulesWithParentScopes=t}static _sortBySpecificity(e){return 1===e.length||e.sort(this._cmpBySpecificity),e}static _cmpBySpecificity(e,t){if(e.scopeDepth===t.scopeDepth){const s=e.parentScopes,a=t.parentScopes;let n=null===s?0:s.length,r=null===a?0:a.length;if(n===r)for(let e=0;e{function s(e){return Array.isArray(e)?function(e){let t=[];for(let a=0,n=e.length;a{for(let s in t)e[s]=t[s]})),e},t.basename=function e(t){const s=~t.lastIndexOf("/")||~t.lastIndexOf("\\");return 0===s?t:~s==t.length-1?e(t.substring(0,t.length-1)):t.substr(1+~s)};let a=/\$(\d+)|\${(\d+):\/(downcase|upcase)}/g;function n(e,t){return et?1:0}t.RegexSource=class{static hasCaptures(e){return null!==e&&(a.lastIndex=0,a.test(e))}static replaceCaptures(e,t,s){return e.replace(a,((e,a,n,r)=>{let o=s[parseInt(a||n,10)];if(!o)return e;{let e=t.substring(o.start,o.end);for(;"."===e[0];)e=e.substring(1);switch(r){case"downcase":return e.toLowerCase();case"upcase":return e.toUpperCase();default:return e}}}))}},t.strcmp=n,t.strArrCmp=function(e,t){if(null===e&&null===t)return 0;if(!e)return-1;if(!t)return 1;let s=e.length,a=t.length;if(s===a){for(let a=0;a=0&&r>=0;)q(t[n],a[r])&&n--,r--;return-1===n}function z(e,t,s){let a=[],n=0;for(let r=0,o=e.settings.length;re.trim()));else{if(!Array.isArray(i.scope))continue;o=i.scope}for(let e=0,r=o.length;eNumber.parseInt(e)));if(3!==t.length||t.some((e=>Number.isNaN(e))))return;return{type:"rgb",rgb:t}}if("5"===t){const t=e.shift();if(t)return{type:"table",index:Number(t)}}}function X(e){const t=[];for(;e.length>0;){const s=e.shift();if(!s)continue;const a=Number.parseInt(s);if(!Number.isNaN(a))if(0===a)t.push({type:"resetAll"});else if(a<=9){K[a]&&t.push({type:"setDecoration",value:K[a]})}else if(a<=29){const e=K[a-20];e&&t.push({type:"resetDecoration",value:e})}else if(a<=37)t.push({type:"setForegroundColor",value:{type:"named",name:V[a-30]}});else if(38===a){const s=Q(e);s&&t.push({type:"setForegroundColor",value:s})}else if(39===a)t.push({type:"resetForegroundColor"});else if(a<=47)t.push({type:"setBackgroundColor",value:{type:"named",name:V[a-40]}});else if(48===a){const s=Q(e);s&&t.push({type:"setBackgroundColor",value:s})}else 49===a?t.push({type:"resetBackgroundColor"}):a>=90&&a<=97?t.push({type:"setForegroundColor",value:{type:"named",name:V[a-90+8]}}):a>=100&&a<=107&&t.push({type:"setBackgroundColor",value:{type:"named",name:V[a-100+8]}})}return t}var Y={black:"#000000",red:"#bb0000",green:"#00bb00",yellow:"#bbbb00",blue:"#0000bb",magenta:"#ff00ff",cyan:"#00bbbb",white:"#eeeeee",brightBlack:"#555555",brightRed:"#ff5555",brightGreen:"#00ff00",brightYellow:"#ffff55",brightBlue:"#5555ff",brightMagenta:"#ff55ff",brightCyan:"#55ffff",brightWhite:"#ffffff"};function Z(e=Y){function t(t){return e[t]}function s(e){return`#${e.map((e=>Math.max(0,Math.min(e,255)).toString(16).padStart(2,"0"))).join("")}`}let a;function n(e){return function(){if(a)return a;a=[];for(let e=0;e[t,e.colors[`terminal.ansi${t[0].toUpperCase()}${t.substring(1)}`]])))),r=function(){let e=null,t=null,s=new Set;return{parse(a){const n=[];let r=0;do{const o=J(a,r),i=o.sequence?a.substring(r,o.startPosition):a.substring(r);if(i.length>0&&n.push({value:i,foreground:e,background:t,decorations:new Set(s)}),o.sequence){const a=X(o.sequence);for(const n of a)"resetAll"===n.type?(e=null,t=null,s.clear()):"resetForegroundColor"===n.type?e=null:"resetBackgroundColor"===n.type?t=null:"resetDecoration"===n.type&&s.delete(n.value);for(const n of a)"setForegroundColor"===n.type?e=n.value:"setBackgroundColor"===n.type?t=n.value:"setDecoration"===n.type&&s.add(n.value)}r=o.position}while(rr.parse(t).map((t=>{let a;a=t.decorations.has("reverse")?t.background?n.value(t.background):e.bg:t.foreground?n.value(t.foreground):e.fg,t.decorations.has("dim")&&(a=function(e){const t=e.match(/#([0-9a-f]{3})([0-9a-f]{3})?([0-9a-f]{2})?/);if(t){if(t[3]){const e=Math.round(Number.parseInt(t[3],16)/2).toString(16).padStart(2,"0");return`#${t[1]}${t[2]}${e}`}return t[2]?`#${t[1]}${t[2]}80`:`#${Array.from(t[1]).map((e=>`${e}${e}`)).join("")}80`}const s=e.match(/var\((--shiki-color-ansi-[\w-]+)\)/);if(s)return`var(${s[1]}-dim)`;return e}(a));let r=s.None;return t.decorations.has("bold")&&(r|=s.Bold),t.decorations.has("italic")&&(r|=s.Italic),t.decorations.has("underline")&&(r|=s.Underline),{content:t.value,color:a,fontStyle:r}}))))}const te={pre:({className:e,style:t,children:s})=>`
${s}
`,code:({children:e})=>`${e}`,line:({className:e,children:t})=>`${t}`,token:({style:e,children:t})=>`${t}`};function se(e,t={}){const a=t.bg||"#fff",n=function(e,t){const s=new Map;for(const a of e){const e=t(a);s.has(e)?s.get(e).push(a):s.set(e,[a])}return s}(t.lineOptions??[],(e=>e.line)),r=t.elements||{};function o(e="",t={},s){const a=r[e]||te[e];return a?(s=s.filter(Boolean),a({...t,children:"code"===e?s.join("\n"):s.join("")})):""}return o("pre",{className:"shiki "+(t.themeName||""),style:`background-color: ${a}`},[t.langId?`
${t.langId}
`:"",o("code",{},e.map(((a,r)=>{const i=r+1,c=function(e){const t=new Set(["line"]);for(const s of e)for(const e of s.classes??[])t.add(e);return Array.from(t)}(n.get(i)??[]).join(" ");return o("line",{className:c,lines:e,line:a,index:r},a.map(((e,n)=>{const r=[`color: ${e.color||t.fg}`];return e.fontStyle&s.Italic&&r.push("font-style: italic"),e.fontStyle&s.Bold&&r.push("font-weight: bold"),e.fontStyle&s.Underline&&r.push("text-decoration: underline"),o("token",{style:r.join("; "),tokens:a,token:e,index:n},[(i=e.content,i.replace(/[&<>"']/g,(e=>ae[e])))]);var i})))})))])}const ae={"&":"&","<":"<",">":">",'"':""","'":"'"};class ne extends U.Registry{constructor(e){super(e),this._resolver=e,this.themesPath="themes/",this._resolvedThemes={},this._resolvedGrammars={},this._langGraph=new Map,this._langMap=t.reduce(((e,t)=>(e[t.id]=t,e)),{})}getTheme(e){return"string"==typeof e?this._resolvedThemes[e]:e}async loadTheme(e){return"string"==typeof e?(this._resolvedThemes[e]||(this._resolvedThemes[e]=await I(`${this.themesPath}${e}.json`)),this._resolvedThemes[e]):((e=E(e)).name&&(this._resolvedThemes[e.name]=e),e)}async loadThemes(e){return await Promise.all(e.map((e=>this.loadTheme(e))))}getLoadedThemes(){return Object.keys(this._resolvedThemes)}getGrammar(e){return this._resolvedGrammars[e]}async loadLanguage(e){const t=e.embeddedLangs?.reduce((async(e,t,s)=>{if(!this.getLoadedLanguages().includes(t)&&this._resolver.getLangRegistration(t))return await this._resolver.loadGrammar(this._resolver.getLangRegistration(t).scopeName),e[this._resolver.getLangRegistration(t).scopeName]=s+2,e}),{}),s={embeddedLanguages:t,balancedBracketSelectors:e.balancedBracketSelectors||["*"],unbalancedBracketSelectors:e.unbalancedBracketSelectors||[]},a=await this.loadGrammarWithConfiguration(e.scopeName,1,s);this._resolvedGrammars[e.id]=a,e.aliases&&e.aliases.forEach((e=>{this._resolvedGrammars[e]=a}))}async loadLanguages(e){for(const t of e)this.resolveEmbeddedLanguages(t);const t=Array.from(this._langGraph.values());for(const e of t)this._resolver.addLanguage(e);for(const e of t)await this.loadLanguage(e)}getLoadedLanguages(){return Object.keys(this._resolvedGrammars)}resolveEmbeddedLanguages(e){if(this._langGraph.has(e.id)||this._langGraph.set(e.id,e),e.embeddedLangs)for(const t of e.embeddedLangs)this._langGraph.set(t,this._langMap[t])}}function re(e){return"string"==typeof e?t.find((t=>t.id===e||t.aliases?.includes(e))):e}async function oe(e){const{_languages:s,_themes:n,_wasmPath:r}=function(e){let s=t,a=e.themes||[],n=e.paths?.wasm?e.paths.wasm.endsWith("/")?e.paths.wasm:e.paths.wasm+"/":w;return e.langs&&(s=e.langs.map(re)),e.theme&&a.unshift(e.theme),a.length||(a=["nord"]),{_languages:s,_themes:a,_wasmPath:n}}(e),c=new G(async function(e){if(!A){let t;if(P)t="string"==typeof j?d.loadWASM({data:await fetch(T(i(...o(e),"onig.wasm")))}):d.loadWASM({data:j});else{const e=require("path").join(require.resolve("vscode-oniguruma"),"../onig.wasm"),s=require("fs").readFileSync(e).buffer;t=d.loadWASM(s)}A=t.then((()=>({createOnigScanner:e=>d.createOnigScanner(e),createOnigString:e=>d.createOnigString(e)})))}return A}(r),"vscode-oniguruma"),l=new ne(c);e.paths?.themes&&(l.themesPath=e.paths.themes.endsWith("/")?e.paths.themes:e.paths.themes+"/"),e.paths?.languages&&(c.languagesPath=e.paths.languages.endsWith("/")?e.paths.languages:e.paths.languages+"/");const u=(await l.loadThemes(n))[0];let p;await l.loadLanguages(s);let h=function(){const e={"#000001":"var(--shiki-color-text)","#000002":"var(--shiki-color-background)","#000004":"var(--shiki-token-constant)","#000005":"var(--shiki-token-string)","#000006":"var(--shiki-token-comment)","#000007":"var(--shiki-token-keyword)","#000008":"var(--shiki-token-parameter)","#000009":"var(--shiki-token-function)","#000010":"var(--shiki-token-string-expression)","#000011":"var(--shiki-token-punctuation)","#000012":"var(--shiki-token-link)"};for(let t=0;t{e.colors[t]=h[s]||s})),t.forEach(((e,s)=>{t[s]=h[e]||e}))}(t,s),{_theme:t,_colorMap:s}}function g(e,t="text",s,n={includeExplanation:!0}){if(function(e){return!e||["plaintext","txt","text"].includes(e)}(t)){return[...e.split(/\r\n|\r|\n/).map((e=>[{content:e}]))]}const{_grammar:r}=function(e){const t=l.getGrammar(e);if(!t)throw Error(`No language registration for ${e}`);return{_grammar:t}}(t),{_theme:o,_colorMap:i}=m(s);return function(e,t,s,n,r){let o=s.split(/\r\n|\r|\n/),i=U.INITIAL,c=[],l=[];for(let s=0,u=o.length;sm(e)._theme,loadTheme:async function(e){await l.loadTheme(e)},loadLanguage:async function(e){const t=re(e);c.addLanguage(t),await l.loadLanguage(t)},getBackgroundColor:function(e){const{_theme:t}=m(e);return t.bg},getForegroundColor:function(e){const{_theme:t}=m(e);return t.fg},getLoadedThemes:function(){return l.getLoadedThemes()},getLoadedLanguages:function(){return l.getLoadedLanguages()},setColorReplacements:function(e){h=e}}}function ie(e){x(e)}export{t as BUNDLED_LANGUAGES,e as BUNDLED_THEMES,s as FontStyle,oe as getHighlighter,I as loadTheme,se as renderToHtml,C as setCDN,ie as setOnigasmWASM,x as setWasm,E as toShikiTheme}; diff --git a/docs/shiki/dist/index.d.ts b/docs/shiki/dist/index.d.ts new file mode 100644 index 00000000..3f49a0e5 --- /dev/null +++ b/docs/shiki/dist/index.d.ts @@ -0,0 +1,352 @@ +import { IGrammar, IRawTheme } from 'vscode-textmate'; + +type Theme = 'css-variables' | 'dark-plus' | 'dracula-soft' | 'dracula' | 'github-dark-dimmed' | 'github-dark' | 'github-light' | 'hc_light' | 'light-plus' | 'material-theme-darker' | 'material-theme-lighter' | 'material-theme-ocean' | 'material-theme-palenight' | 'material-theme' | 'min-dark' | 'min-light' | 'monokai' | 'nord' | 'one-dark-pro' | 'poimandres' | 'rose-pine-dawn' | 'rose-pine-moon' | 'rose-pine' | 'slack-dark' | 'slack-ochin' | 'solarized-dark' | 'solarized-light' | 'vitesse-dark' | 'vitesse-light'; +declare const themes: Theme[]; + +declare enum FontStyle { + NotSet = -1, + None = 0, + Italic = 1, + Bold = 2, + Underline = 4 +} + +interface IThemedTokenScopeExplanation { + scopeName: string; + themeMatches: any[]; +} +interface IThemedTokenExplanation { + content: string; + scopes: IThemedTokenScopeExplanation[]; +} +/** + * A single token with color, and optionally with explanation. + * + * For example: + * + * { + * "content": "shiki", + * "color": "#D8DEE9", + * "explanation": [ + * { + * "content": "shiki", + * "scopes": [ + * { + * "scopeName": "source.js", + * "themeMatches": [] + * }, + * { + * "scopeName": "meta.objectliteral.js", + * "themeMatches": [] + * }, + * { + * "scopeName": "meta.object.member.js", + * "themeMatches": [] + * }, + * { + * "scopeName": "meta.array.literal.js", + * "themeMatches": [] + * }, + * { + * "scopeName": "variable.other.object.js", + * "themeMatches": [ + * { + * "name": "Variable", + * "scope": "variable.other", + * "settings": { + * "foreground": "#D8DEE9" + * } + * }, + * { + * "name": "[JavaScript] Variable Other Object", + * "scope": "source.js variable.other.object", + * "settings": { + * "foreground": "#D8DEE9" + * } + * } + * ] + * } + * ] + * } + * ] + * } + * + */ +interface IThemedToken { + /** + * The content of the token + */ + content: string; + /** + * 6 or 8 digit hex code representation of the token's color + */ + color?: string; + /** + * Font style of token. Can be None/Italic/Bold/Underline + */ + fontStyle?: FontStyle; + /** + * Explanation of + * + * - token text's matching scopes + * - reason that token text is given a color (one matching scope matches a rule (scope -> color) in the theme) + */ + explanation?: IThemedTokenExplanation[]; +} + +interface HighlighterOptions { + /** + * The theme to load upfront. + * + * Default to: 'nord' + */ + theme?: IThemeRegistration; + /** + * A list of themes to load upfront. + */ + themes?: IThemeRegistration[]; + /** + * A list of languages to load upfront. + * + * Default to all the bundled languages. + */ + langs?: (Lang | ILanguageRegistration)[]; + /** + * Paths for loading themes and langs. Relative to the package's root. + */ + paths?: IHighlighterPaths; +} +interface Highlighter { + /** + * Convert code to HTML tokens. + * `lang` and `theme` must have been loaded. + * @deprecated Please use the `codeToHtml(code, options?)` overload instead. + */ + codeToHtml(code: string, lang?: StringLiteralUnion, theme?: StringLiteralUnion, options?: CodeToHtmlOptions): string; + /** + * Convert code to HTML tokens. + * `lang` and `theme` must have been loaded. + */ + codeToHtml(code: string, options?: CodeToHtmlOptions): string; + /** + * Convert code to themed tokens for custom processing. + * `lang` and `theme` must have been loaded. + * You may customize the bundled HTML / SVG renderer or write your own + * renderer for another render target. + */ + codeToThemedTokens(code: string, lang?: StringLiteralUnion, theme?: StringLiteralUnion, options?: ThemedTokenizerOptions): IThemedToken[][]; + /** + * Convert ansi-escaped text to HTML tokens. + * `theme` must have been loaded. + */ + ansiToHtml(ansi: string, options?: AnsiToHtmlOptions): string; + /** + * Convert ansi-escaped text to themed tokens for custom processing. + * `theme` must have been loaded. + * You may customize the bundled HTML / SVG renderer or write your own + * renderer for another render target. + */ + ansiToThemedTokens(ansi: string, theme?: StringLiteralUnion): IThemedToken[][]; + /** + * Get the loaded theme + */ + getTheme(theme?: IThemeRegistration): IShikiTheme; + /** + * Load a theme + */ + loadTheme(theme: IThemeRegistration): Promise; + /** + * Load a language + */ + loadLanguage(lang: ILanguageRegistration | Lang): Promise; + /** + * Get all loaded themes + */ + getLoadedThemes(): Theme[]; + /** + * Get all loaded languages + */ + getLoadedLanguages(): Lang[]; + /** + * Get the foreground color for theme. Can be used for CSS `color`. + */ + getForegroundColor(theme?: StringLiteralUnion): string; + /** + * Get the background color for theme. Can be used for CSS `background-color`. + */ + getBackgroundColor(theme?: StringLiteralUnion): string; + setColorReplacements(map: Record): void; +} +interface IHighlighterPaths { + /** + * @default 'themes/' + */ + themes?: string; + /** + * @default 'languages/' + */ + languages?: string; + /** + * @default 'dist/' + */ + wasm?: string; +} +type ILanguageRegistration = { + id: string; + scopeName: string; + displayName?: string; + aliases?: string[]; + samplePath?: string; + /** + * A list of languages the current language embeds. + * If manually specifying languages to load, make sure to load the embedded + * languages for each parent language. + */ + embeddedLangs?: Lang[]; + balancedBracketSelectors?: string[]; + unbalancedBracketSelectors?: string[]; +} & { + path: string; + grammar?: IGrammar; +}; +type IThemeRegistration = IShikiTheme | StringLiteralUnion; +interface IShikiTheme extends IRawTheme { + /** + * @description theme name + */ + name: string; + /** + * @description light/dark theme + */ + type: 'light' | 'dark' | 'css'; + /** + * @description tokenColors of the theme file + */ + settings: any[]; + /** + * @description text default foreground color + */ + fg: string; + /** + * @description text default background color + */ + bg: string; + /** + * @description relative path of included theme + */ + include?: string; + /** + * + * @description color map of the theme file + */ + colors?: Record; +} +interface Nothing { +} +/** + * type StringLiteralUnion<'foo'> = 'foo' | string + * This has auto completion whereas `'foo' | string` doesn't + * Adapted from https://github.com/microsoft/TypeScript/issues/29729 + */ +type StringLiteralUnion = T | (U & Nothing); +interface CodeToHtmlOptions { + lang?: StringLiteralUnion; + theme?: StringLiteralUnion; + lineOptions?: LineOption[]; +} +interface AnsiToHtmlOptions { + theme?: StringLiteralUnion; + lineOptions?: LineOption[]; +} +interface HtmlRendererOptions { + langId?: string; + fg?: string; + bg?: string; + lineOptions?: LineOption[]; + elements?: ElementsOptions; + themeName?: string; +} +interface LineOption { + /** + * 1-based line number. + */ + line: number; + classes?: string[]; +} +interface ElementProps { + children: string; + [key: string]: unknown; +} +interface PreElementProps extends ElementProps { + className: string; + style: string; +} +interface CodeElementProps extends ElementProps { +} +interface LineElementProps extends ElementProps { + className: string; + lines: IThemedToken[][]; + line: IThemedToken[]; + index: number; +} +interface TokenElementProps extends ElementProps { + style: string; + tokens: IThemedToken[]; + token: IThemedToken; + index: number; +} +interface ElementsOptions { + pre?: (props: PreElementProps) => string; + code?: (props: CodeElementProps) => string; + line?: (props: LineElementProps) => string; + token?: (props: TokenElementProps) => string; +} +interface ThemedTokenizerOptions { + /** + * Whether to include explanation of each token's matching scopes and + * why it's given its color. Default to false to reduce output verbosity. + */ + includeExplanation?: boolean; +} + +type Lang = 'abap' | 'actionscript-3' | 'ada' | 'apache' | 'apex' | 'apl' | 'applescript' | 'ara' | 'asm' | 'astro' | 'awk' | 'ballerina' | 'bat' | 'batch' | 'beancount' | 'berry' | 'be' | 'bibtex' | 'bicep' | 'blade' | 'c' | 'cadence' | 'cdc' | 'clarity' | 'clojure' | 'clj' | 'cmake' | 'cobol' | 'codeql' | 'ql' | 'coffee' | 'cpp' | 'c++' | 'crystal' | 'csharp' | 'c#' | 'cs' | 'css' | 'cue' | 'cypher' | 'cql' | 'd' | 'dart' | 'dax' | 'diff' | 'docker' | 'dockerfile' | 'dream-maker' | 'elixir' | 'elm' | 'erb' | 'erlang' | 'erl' | 'fish' | 'fsharp' | 'f#' | 'fs' | 'gdresource' | 'gdscript' | 'gdshader' | 'gherkin' | 'git-commit' | 'git-rebase' | 'glimmer-js' | 'gjs' | 'glimmer-ts' | 'gts' | 'glsl' | 'gnuplot' | 'go' | 'graphql' | 'gql' | 'groovy' | 'hack' | 'haml' | 'handlebars' | 'hbs' | 'haskell' | 'hs' | 'hcl' | 'hjson' | 'hlsl' | 'html' | 'http' | 'imba' | 'ini' | 'properties' | 'java' | 'javascript' | 'js' | 'jinja-html' | 'jison' | 'json' | 'json5' | 'jsonc' | 'jsonl' | 'jsonnet' | 'jssm' | 'fsl' | 'jsx' | 'julia' | 'kotlin' | 'kt' | 'kts' | 'kusto' | 'kql' | 'latex' | 'less' | 'liquid' | 'lisp' | 'logo' | 'lua' | 'make' | 'makefile' | 'markdown' | 'md' | 'marko' | 'matlab' | 'mdc' | 'mdx' | 'mermaid' | 'mojo' | 'narrat' | 'nar' | 'nextflow' | 'nf' | 'nginx' | 'nim' | 'nix' | 'objective-c' | 'objc' | 'objective-cpp' | 'ocaml' | 'pascal' | 'perl' | 'php' | 'plsql' | 'postcss' | 'powerquery' | 'powershell' | 'ps' | 'ps1' | 'prisma' | 'prolog' | 'proto' | 'pug' | 'jade' | 'puppet' | 'purescript' | 'python' | 'py' | 'r' | 'raku' | 'perl6' | 'razor' | 'reg' | 'rel' | 'riscv' | 'rst' | 'ruby' | 'rb' | 'rust' | 'rs' | 'sas' | 'sass' | 'scala' | 'scheme' | 'scss' | 'shaderlab' | 'shader' | 'shellscript' | 'bash' | 'sh' | 'shell' | 'zsh' | 'shellsession' | 'console' | 'smalltalk' | 'solidity' | 'sparql' | 'splunk' | 'spl' | 'sql' | 'ssh-config' | 'stata' | 'stylus' | 'styl' | 'svelte' | 'swift' | 'system-verilog' | 'tasl' | 'tcl' | 'tex' | 'toml' | 'tsx' | 'turtle' | 'twig' | 'typescript' | 'ts' | 'v' | 'vb' | 'cmd' | 'verilog' | 'vhdl' | 'viml' | 'vim' | 'vimscript' | 'vue-html' | 'vue' | 'vyper' | 'vy' | 'wasm' | 'wenyan' | '文言' | 'wgsl' | 'wolfram' | 'xml' | 'xsl' | 'yaml' | 'yml' | 'zenscript' | 'zig'; +declare const languages: ILanguageRegistration[]; + +declare function getHighlighter(options: HighlighterOptions): Promise; + +declare function renderToHtml(lines: IThemedToken[][], options?: HtmlRendererOptions): string; + +declare global { + interface Response { + json(): Promise; + text(): Promise; + } +} + +/** + * Set the route for loading the assets + * URL should end with `/` + * + * For example: + * ```ts + * setCDN('https://unpkg.com/shiki/') // use unpkg + * setCDN('/assets/shiki/') // serve by yourself + * ``` + */ +declare function setCDN(root: string): void; +/** + * Explicitly set the source for loading the oniguruma web assembly module. + * * + * Accepts ArrayBuffer or Response (usage of string is deprecated) + */ +declare function setWasm(data: string | ArrayBuffer | Response): void; +/** + * @param themePath related path to theme.json + */ +declare function fetchTheme(themePath: string): Promise; +declare function toShikiTheme(rawTheme: IRawTheme): IShikiTheme; + +/** @deprecated use setWasm instead, will be removed in a future version */ +declare function setOnigasmWASM(path: string | ArrayBuffer): void; + +export { languages as BUNDLED_LANGUAGES, themes as BUNDLED_THEMES, FontStyle, Highlighter, HighlighterOptions, HtmlRendererOptions, ILanguageRegistration, IShikiTheme, IThemeRegistration, IThemedToken, Lang, Theme, getHighlighter, fetchTheme as loadTheme, renderToHtml, setCDN, setOnigasmWASM, setWasm, toShikiTheme }; diff --git a/docs/shiki/dist/index.esm.js b/docs/shiki/dist/index.esm.js new file mode 100644 index 00000000..beaceaa9 --- /dev/null +++ b/docs/shiki/dist/index.esm.js @@ -0,0 +1,3263 @@ +import { loadWASM, createOnigScanner, createOnigString } from 'vscode-oniguruma'; +import { INITIAL, Registry as Registry$1 } from 'vscode-textmate'; + +const themes = [ + "css-variables", + "dark-plus", + "dracula-soft", + "dracula", + "github-dark-dimmed", + "github-dark", + "github-light", + "hc_light", + "light-plus", + "material-theme-darker", + "material-theme-lighter", + "material-theme-ocean", + "material-theme-palenight", + "material-theme", + "min-dark", + "min-light", + "monokai", + "nord", + "one-dark-pro", + "poimandres", + "rose-pine-dawn", + "rose-pine-moon", + "rose-pine", + "slack-dark", + "slack-ochin", + "solarized-dark", + "solarized-light", + "vitesse-dark", + "vitesse-light" +]; + +const languages = [ + { + id: "abap", + scopeName: "source.abap", + path: "abap.tmLanguage.json", + displayName: "ABAP", + samplePath: "abap.sample" + }, + { + id: "actionscript-3", + scopeName: "source.actionscript.3", + path: "actionscript-3.tmLanguage.json", + displayName: "ActionScript", + samplePath: "actionscript-3.sample" + }, + { + id: "ada", + scopeName: "source.ada", + path: "ada.tmLanguage.json", + displayName: "Ada", + samplePath: "ada.sample" + }, + { + id: "apache", + scopeName: "source.apacheconf", + path: "apache.tmLanguage.json", + displayName: "Apache Conf", + samplePath: "apache.sample" + }, + { + id: "apex", + scopeName: "source.apex", + path: "apex.tmLanguage.json", + displayName: "Apex", + samplePath: "apex.sample" + }, + { + id: "apl", + scopeName: "source.apl", + path: "apl.tmLanguage.json", + displayName: "APL", + samplePath: "apl.sample", + embeddedLangs: ["html", "xml", "css", "javascript", "json"] + }, + { + id: "applescript", + scopeName: "source.applescript", + path: "applescript.tmLanguage.json", + displayName: "AppleScript", + samplePath: "applescript.sample" + }, + { + id: "ara", + scopeName: "source.ara", + path: "ara.tmLanguage.json", + displayName: "Ara", + samplePath: "ara.sample" + }, + { + id: "asm", + scopeName: "source.asm.x86_64", + path: "asm.tmLanguage.json", + displayName: "Assembly", + samplePath: "asm.sample" + }, + { + id: "astro", + scopeName: "source.astro", + path: "astro.tmLanguage.json", + displayName: "Astro", + samplePath: "astro.sample", + embeddedLangs: ["json", "javascript", "typescript", "stylus", "sass", "css", "scss", "less", "postcss", "tsx"] + }, + { + id: "awk", + scopeName: "source.awk", + path: "awk.tmLanguage.json", + displayName: "AWK", + samplePath: "awk.sample" + }, + { + id: "ballerina", + scopeName: "source.ballerina", + path: "ballerina.tmLanguage.json", + displayName: "Ballerina", + samplePath: "ballerina.sample" + }, + { + id: "bat", + scopeName: "source.batchfile", + path: "bat.tmLanguage.json", + displayName: "Batch", + samplePath: "bat.sample", + aliases: ["batch"] + }, + { + id: "beancount", + scopeName: "text.beancount", + path: "beancount.tmLanguage.json", + displayName: "Beancount", + samplePath: "beancount.sample" + }, + { + id: "berry", + scopeName: "source.berry", + path: "berry.tmLanguage.json", + displayName: "Berry", + samplePath: "berry.sample", + aliases: ["be"] + }, + { + id: "bibtex", + scopeName: "text.bibtex", + path: "bibtex.tmLanguage.json", + displayName: "BibTeX", + samplePath: "bibtex.sample" + }, + { + id: "bicep", + scopeName: "source.bicep", + path: "bicep.tmLanguage.json", + displayName: "Bicep", + samplePath: "bicep.sample" + }, + { + id: "blade", + scopeName: "text.html.php.blade", + path: "blade.tmLanguage.json", + displayName: "Blade", + samplePath: "blade.sample", + embeddedLangs: ["html", "xml", "sql", "javascript", "json", "css"] + }, + { + id: "c", + scopeName: "source.c", + path: "c.tmLanguage.json", + displayName: "C", + samplePath: "c.sample" + }, + { + id: "cadence", + scopeName: "source.cadence", + path: "cadence.tmLanguage.json", + displayName: "Cadence", + samplePath: "cadence.sample", + aliases: ["cdc"] + }, + { + id: "clarity", + scopeName: "source.clar", + path: "clarity.tmLanguage.json", + displayName: "Clarity", + samplePath: "clarity.sample" + }, + { + id: "clojure", + scopeName: "source.clojure", + path: "clojure.tmLanguage.json", + displayName: "Clojure", + samplePath: "clojure.sample", + aliases: ["clj"] + }, + { + id: "cmake", + scopeName: "source.cmake", + path: "cmake.tmLanguage.json", + displayName: "CMake", + samplePath: "cmake.sample" + }, + { + id: "cobol", + scopeName: "source.cobol", + path: "cobol.tmLanguage.json", + displayName: "COBOL", + samplePath: "cobol.sample", + embeddedLangs: ["sql", "html", "java"] + }, + { + id: "codeql", + scopeName: "source.ql", + path: "codeql.tmLanguage.json", + displayName: "CodeQL", + samplePath: "codeql.sample", + aliases: ["ql"] + }, + { + id: "coffee", + scopeName: "source.coffee", + path: "coffee.tmLanguage.json", + displayName: "CoffeeScript", + samplePath: "coffee.sample", + embeddedLangs: ["javascript"] + }, + { + id: "cpp", + scopeName: "source.cpp", + path: "cpp.tmLanguage.json", + displayName: "C++", + samplePath: "cpp.sample", + aliases: ["c++"], + embeddedLangs: ["glsl", "sql"] + }, + { + id: "crystal", + scopeName: "source.crystal", + path: "crystal.tmLanguage.json", + displayName: "Crystal", + samplePath: "crystal.sample", + embeddedLangs: ["html", "sql", "css", "c", "javascript", "shellscript"] + }, + { + id: "csharp", + scopeName: "source.cs", + path: "csharp.tmLanguage.json", + displayName: "C#", + samplePath: "csharp.sample", + aliases: ["c#", "cs"] + }, + { + id: "css", + scopeName: "source.css", + path: "css.tmLanguage.json", + displayName: "CSS", + samplePath: "css.sample" + }, + { + id: "cue", + scopeName: "source.cue", + path: "cue.tmLanguage.json", + displayName: "CUE", + samplePath: "cue.sample" + }, + { + id: "cypher", + scopeName: "source.cypher", + path: "cypher.tmLanguage.json", + displayName: "Cypher", + samplePath: "cypher.sample", + aliases: ["cql"] + }, + { + id: "d", + scopeName: "source.d", + path: "d.tmLanguage.json", + displayName: "D", + samplePath: "d.sample" + }, + { + id: "dart", + scopeName: "source.dart", + path: "dart.tmLanguage.json", + displayName: "Dart", + samplePath: "dart.sample" + }, + { + id: "dax", + scopeName: "source.dax", + path: "dax.tmLanguage.json", + displayName: "DAX", + samplePath: "dax.sample" + }, + { + id: "diff", + scopeName: "source.diff", + path: "diff.tmLanguage.json", + displayName: "Diff", + samplePath: "diff.sample" + }, + { + id: "docker", + scopeName: "source.dockerfile", + path: "docker.tmLanguage.json", + displayName: "Docker", + samplePath: "docker.sample", + aliases: ["dockerfile"] + }, + { + id: "dream-maker", + scopeName: "source.dm", + path: "dream-maker.tmLanguage.json", + displayName: "Dream Maker", + samplePath: "dream-maker.sample" + }, + { + id: "elixir", + scopeName: "source.elixir", + path: "elixir.tmLanguage.json", + displayName: "Elixir", + samplePath: "elixir.sample", + embeddedLangs: ["html"] + }, + { + id: "elm", + scopeName: "source.elm", + path: "elm.tmLanguage.json", + displayName: "Elm", + samplePath: "elm.sample", + embeddedLangs: ["glsl"] + }, + { + id: "erb", + scopeName: "text.html.erb", + path: "erb.tmLanguage.json", + displayName: "ERB", + samplePath: "erb.sample", + embeddedLangs: ["html", "ruby"] + }, + { + id: "erlang", + scopeName: "source.erlang", + path: "erlang.tmLanguage.json", + displayName: "Erlang", + samplePath: "erlang.sample", + aliases: ["erl"] + }, + { + id: "fish", + scopeName: "source.fish", + path: "fish.tmLanguage.json", + displayName: "Fish", + samplePath: "fish.sample" + }, + { + id: "fsharp", + scopeName: "source.fsharp", + path: "fsharp.tmLanguage.json", + displayName: "F#", + samplePath: "fsharp.sample", + aliases: ["f#", "fs"], + embeddedLangs: ["markdown"] + }, + { + id: "gdresource", + scopeName: "source.gdresource", + path: "gdresource.tmLanguage.json", + displayName: "GDResource", + samplePath: "gdresource.sample", + embeddedLangs: ["gdshader", "gdscript"] + }, + { + id: "gdscript", + scopeName: "source.gdscript", + path: "gdscript.tmLanguage.json", + displayName: "GDScript", + samplePath: "gdscript.sample" + }, + { + id: "gdshader", + scopeName: "source.gdshader", + path: "gdshader.tmLanguage.json", + displayName: "GDShader", + samplePath: "gdshader.sample" + }, + { + id: "gherkin", + scopeName: "text.gherkin.feature", + path: "gherkin.tmLanguage.json", + displayName: "Gherkin", + samplePath: "gherkin.sample" + }, + { + id: "git-commit", + scopeName: "text.git-commit", + path: "git-commit.tmLanguage.json", + displayName: "Git Commit Message", + embeddedLangs: ["diff"] + }, + { + id: "git-rebase", + scopeName: "text.git-rebase", + path: "git-rebase.tmLanguage.json", + displayName: "Git Rebase Message", + embeddedLangs: ["shellscript"] + }, + { + id: "glimmer-js", + scopeName: "source.gjs", + path: "glimmer-js.tmLanguage.json", + displayName: "Glimmer JS", + aliases: ["gjs"], + embeddedLangs: ["javascript", "handlebars"] + }, + { + id: "glimmer-ts", + scopeName: "source.gts", + path: "glimmer-ts.tmLanguage.json", + displayName: "Glimmer TS", + aliases: ["gts"], + embeddedLangs: ["typescript", "handlebars"] + }, + { + id: "glsl", + scopeName: "source.glsl", + path: "glsl.tmLanguage.json", + displayName: "GLSL", + samplePath: "glsl.sample", + embeddedLangs: ["c"] + }, + { + id: "gnuplot", + scopeName: "source.gnuplot", + path: "gnuplot.tmLanguage.json", + displayName: "Gnuplot", + samplePath: "gnuplot.sample" + }, + { + id: "go", + scopeName: "source.go", + path: "go.tmLanguage.json", + displayName: "Go", + samplePath: "go.sample" + }, + { + id: "graphql", + scopeName: "source.graphql", + path: "graphql.tmLanguage.json", + displayName: "GraphQL", + samplePath: "graphql.sample", + aliases: ["gql"], + embeddedLangs: ["javascript", "typescript", "jsx", "tsx"] + }, + { + id: "groovy", + scopeName: "source.groovy", + path: "groovy.tmLanguage.json", + displayName: "Groovy", + samplePath: "groovy.sample" + }, + { + id: "hack", + scopeName: "source.hack", + path: "hack.tmLanguage.json", + displayName: "Hack", + samplePath: "hack.sample", + embeddedLangs: ["html", "sql"] + }, + { + id: "haml", + scopeName: "text.haml", + path: "haml.tmLanguage.json", + displayName: "Ruby Haml", + samplePath: "haml.sample", + embeddedLangs: ["ruby", "javascript", "sass", "coffee", "markdown", "css"] + }, + { + id: "handlebars", + scopeName: "text.html.handlebars", + path: "handlebars.tmLanguage.json", + displayName: "Handlebars", + samplePath: "handlebars.sample", + aliases: ["hbs"], + embeddedLangs: ["html", "css", "javascript", "yaml"] + }, + { + id: "haskell", + scopeName: "source.haskell", + path: "haskell.tmLanguage.json", + displayName: "Haskell", + samplePath: "haskell.sample", + aliases: ["hs"] + }, + { + id: "hcl", + scopeName: "source.hcl", + path: "hcl.tmLanguage.json", + displayName: "HashiCorp HCL", + samplePath: "hcl.sample" + }, + { + id: "hjson", + scopeName: "source.hjson", + path: "hjson.tmLanguage.json", + displayName: "Hjson", + samplePath: "hjson.sample" + }, + { + id: "hlsl", + scopeName: "source.hlsl", + path: "hlsl.tmLanguage.json", + displayName: "HLSL", + samplePath: "hlsl.sample" + }, + { + id: "html", + scopeName: "text.html.basic", + path: "html.tmLanguage.json", + displayName: "HTML", + samplePath: "html.sample", + embeddedLangs: ["javascript", "css"] + }, + { + id: "http", + scopeName: "source.http", + path: "http.tmLanguage.json", + displayName: "HTTP", + samplePath: "http.sample", + embeddedLangs: ["shellscript", "json", "xml", "graphql"] + }, + { + id: "imba", + scopeName: "source.imba", + path: "imba.tmLanguage.json", + displayName: "Imba", + samplePath: "imba.sample" + }, + { + id: "ini", + scopeName: "source.ini", + path: "ini.tmLanguage.json", + displayName: "INI", + samplePath: "ini.sample", + aliases: ["properties"] + }, + { + id: "java", + scopeName: "source.java", + path: "java.tmLanguage.json", + displayName: "Java", + samplePath: "java.sample" + }, + { + id: "javascript", + scopeName: "source.js", + path: "javascript.tmLanguage.json", + displayName: "JavaScript", + samplePath: "javascript.sample", + aliases: ["js"] + }, + { + id: "jinja-html", + scopeName: "text.html.jinja", + path: "jinja-html.tmLanguage.json", + displayName: "Jinja", + samplePath: "jinja-html.sample", + embeddedLangs: ["html"] + }, + { + id: "jison", + scopeName: "source.jison", + path: "jison.tmLanguage.json", + displayName: "Jison", + samplePath: "jison.sample", + embeddedLangs: ["javascript"] + }, + { + id: "json", + scopeName: "source.json", + path: "json.tmLanguage.json", + displayName: "JSON", + samplePath: "json.sample" + }, + { + id: "json5", + scopeName: "source.json5", + path: "json5.tmLanguage.json", + displayName: "JSON5", + samplePath: "json5.sample" + }, + { + id: "jsonc", + scopeName: "source.json.comments", + path: "jsonc.tmLanguage.json", + displayName: "JSON with Comments", + samplePath: "jsonc.sample" + }, + { + id: "jsonl", + scopeName: "source.json.lines", + path: "jsonl.tmLanguage.json", + displayName: "JSON Lines", + samplePath: "jsonl.sample" + }, + { + id: "jsonnet", + scopeName: "source.jsonnet", + path: "jsonnet.tmLanguage.json", + displayName: "Jsonnet", + samplePath: "jsonnet.sample" + }, + { + id: "jssm", + scopeName: "source.jssm", + path: "jssm.tmLanguage.json", + displayName: "JSSM", + samplePath: "jssm.sample", + aliases: ["fsl"] + }, + { + id: "jsx", + scopeName: "source.js.jsx", + path: "jsx.tmLanguage.json", + displayName: "JSX", + samplePath: "jsx.sample" + }, + { + id: "julia", + scopeName: "source.julia", + path: "julia.tmLanguage.json", + displayName: "Julia", + samplePath: "julia.sample", + embeddedLangs: ["cpp", "python", "javascript", "r", "sql"] + }, + { + id: "kotlin", + scopeName: "source.kotlin", + path: "kotlin.tmLanguage.json", + displayName: "Kotlin", + samplePath: "kotlin.sample", + aliases: ["kt", "kts"] + }, + { + id: "kusto", + scopeName: "source.kusto", + path: "kusto.tmLanguage.json", + displayName: "Kusto", + samplePath: "kusto.sample", + aliases: ["kql"] + }, + { + id: "latex", + scopeName: "text.tex.latex", + path: "latex.tmLanguage.json", + displayName: "LaTeX", + samplePath: "latex.sample", + embeddedLangs: ["tex", "css", "haskell", "html", "xml", "java", "lua", "julia", "ruby", "javascript", "typescript", "python", "yaml", "rust", "scala", "gnuplot"] + }, + { + id: "less", + scopeName: "source.css.less", + path: "less.tmLanguage.json", + displayName: "Less", + samplePath: "less.sample", + embeddedLangs: ["css"] + }, + { + id: "liquid", + scopeName: "text.html.liquid", + path: "liquid.tmLanguage.json", + displayName: "Liquid", + samplePath: "liquid.sample", + embeddedLangs: ["html", "css", "json", "javascript"] + }, + { + id: "lisp", + scopeName: "source.lisp", + path: "lisp.tmLanguage.json", + displayName: "Lisp", + samplePath: "lisp.sample" + }, + { + id: "logo", + scopeName: "source.logo", + path: "logo.tmLanguage.json", + displayName: "Logo", + samplePath: "logo.sample" + }, + { + id: "lua", + scopeName: "source.lua", + path: "lua.tmLanguage.json", + displayName: "Lua", + samplePath: "lua.sample", + embeddedLangs: ["c"] + }, + { + id: "make", + scopeName: "source.makefile", + path: "make.tmLanguage.json", + displayName: "Makefile", + samplePath: "make.sample", + aliases: ["makefile"] + }, + { + id: "markdown", + scopeName: "text.html.markdown", + path: "markdown.tmLanguage.json", + displayName: "Markdown", + samplePath: "markdown.sample", + aliases: ["md"], + embeddedLangs: ["css", "html", "ini", "java", "lua", "make", "perl", "r", "ruby", "php", "sql", "vb", "xml", "xsl", "yaml", "bat", "clojure", "coffee", "c", "cpp", "diff", "docker", "git-commit", "git-rebase", "go", "groovy", "pug", "javascript", "json", "jsonc", "less", "objective-c", "swift", "scss", "raku", "powershell", "python", "julia", "rust", "scala", "shellscript", "typescript", "tsx", "csharp", "fsharp", "dart", "handlebars", "erlang", "elixir", "latex", "bibtex"] + }, + { + id: "marko", + scopeName: "text.marko", + path: "marko.tmLanguage.json", + displayName: "Marko", + samplePath: "marko.sample", + embeddedLangs: ["css", "less", "scss", "javascript"] + }, + { + id: "matlab", + scopeName: "source.matlab", + path: "matlab.tmLanguage.json", + displayName: "MATLAB", + samplePath: "matlab.sample" + }, + { + id: "mdc", + scopeName: "text.markdown.mdc", + path: "mdc.tmLanguage.json", + displayName: "mdc", + samplePath: "mdc.sample", + embeddedLangs: ["markdown", "yaml"] + }, + { + id: "mdx", + scopeName: "source.mdx", + path: "mdx.tmLanguage.json", + displayName: "MDX", + samplePath: "mdx.sample", + embeddedLangs: ["tsx", "toml", "yaml", "c", "clojure", "coffee", "cpp", "csharp", "css", "diff", "docker", "elixir", "elm", "erlang", "go", "graphql", "haskell", "html", "ini", "java", "javascript", "json", "julia", "kotlin", "less", "lua", "make", "markdown", "objective-c", "perl", "python", "r", "ruby", "rust", "scala", "scss", "shellscript", "shellsession", "sql", "xml", "swift", "typescript"] + }, + { + id: "mermaid", + scopeName: "source.mermaid", + path: "mermaid.tmLanguage.json", + displayName: "Mermaid", + samplePath: "mermaid.sample" + }, + { + id: "mojo", + scopeName: "source.mojo", + path: "mojo.tmLanguage.json", + displayName: "MagicPython", + samplePath: "mojo.sample" + }, + { + id: "narrat", + scopeName: "source.narrat", + path: "narrat.tmLanguage.json", + displayName: "Narrat Language", + samplePath: "narrat.sample", + aliases: ["nar"] + }, + { + id: "nextflow", + scopeName: "source.nextflow", + path: "nextflow.tmLanguage.json", + displayName: "Nextflow", + samplePath: "nextflow.sample", + aliases: ["nf"] + }, + { + id: "nginx", + scopeName: "source.nginx", + path: "nginx.tmLanguage.json", + displayName: "Nginx", + samplePath: "nginx.sample", + embeddedLangs: ["lua"] + }, + { + id: "nim", + scopeName: "source.nim", + path: "nim.tmLanguage.json", + displayName: "Nim", + samplePath: "nim.sample", + embeddedLangs: ["c", "html", "xml", "javascript", "css", "glsl", "markdown"] + }, + { + id: "nix", + scopeName: "source.nix", + path: "nix.tmLanguage.json", + displayName: "Nix", + samplePath: "nix.sample" + }, + { + id: "objective-c", + scopeName: "source.objc", + path: "objective-c.tmLanguage.json", + displayName: "Objective-C", + samplePath: "objective-c.sample", + aliases: ["objc"] + }, + { + id: "objective-cpp", + scopeName: "source.objcpp", + path: "objective-cpp.tmLanguage.json", + displayName: "Objective-C++", + samplePath: "objective-cpp.sample" + }, + { + id: "ocaml", + scopeName: "source.ocaml", + path: "ocaml.tmLanguage.json", + displayName: "OCaml", + samplePath: "ocaml.sample" + }, + { + id: "pascal", + scopeName: "source.pascal", + path: "pascal.tmLanguage.json", + displayName: "Pascal", + samplePath: "pascal.sample" + }, + { + id: "perl", + scopeName: "source.perl", + path: "perl.tmLanguage.json", + displayName: "Perl", + samplePath: "perl.sample", + embeddedLangs: ["html", "xml", "css", "javascript", "sql"] + }, + { + id: "php", + scopeName: "source.php", + path: "php.tmLanguage.json", + displayName: "PHP", + samplePath: "php.sample", + embeddedLangs: ["html", "xml", "sql", "javascript", "json", "css"] + }, + { + id: "plsql", + scopeName: "source.plsql.oracle", + path: "plsql.tmLanguage.json", + displayName: "PL/SQL", + samplePath: "plsql.sample" + }, + { + id: "postcss", + scopeName: "source.css.postcss", + path: "postcss.tmLanguage.json", + displayName: "PostCSS", + samplePath: "postcss.sample" + }, + { + id: "powerquery", + scopeName: "source.powerquery", + path: "powerquery.tmLanguage.json", + displayName: "PowerQuery", + samplePath: "powerquery.sample" + }, + { + id: "powershell", + scopeName: "source.powershell", + path: "powershell.tmLanguage.json", + displayName: "PowerShell", + samplePath: "powershell.sample", + aliases: ["ps", "ps1"] + }, + { + id: "prisma", + scopeName: "source.prisma", + path: "prisma.tmLanguage.json", + displayName: "Prisma", + samplePath: "prisma.sample" + }, + { + id: "prolog", + scopeName: "source.prolog", + path: "prolog.tmLanguage.json", + displayName: "Prolog", + samplePath: "prolog.sample" + }, + { + id: "proto", + scopeName: "source.proto", + path: "proto.tmLanguage.json", + displayName: "Protocol Buffer 3", + samplePath: "proto.sample" + }, + { + id: "pug", + scopeName: "text.pug", + path: "pug.tmLanguage.json", + displayName: "Pug", + samplePath: "pug.sample", + aliases: ["jade"], + embeddedLangs: ["javascript", "css", "sass", "scss", "stylus", "coffee", "html"] + }, + { + id: "puppet", + scopeName: "source.puppet", + path: "puppet.tmLanguage.json", + displayName: "Puppet", + samplePath: "puppet.sample" + }, + { + id: "purescript", + scopeName: "source.purescript", + path: "purescript.tmLanguage.json", + displayName: "PureScript", + samplePath: "purescript.sample" + }, + { + id: "python", + scopeName: "source.python", + path: "python.tmLanguage.json", + displayName: "Python", + samplePath: "python.sample", + aliases: ["py"] + }, + { + id: "r", + scopeName: "source.r", + path: "r.tmLanguage.json", + displayName: "R", + samplePath: "r.sample" + }, + { + id: "raku", + scopeName: "source.perl.6", + path: "raku.tmLanguage.json", + displayName: "Raku", + samplePath: "raku.sample", + aliases: ["perl6"] + }, + { + id: "razor", + scopeName: "text.aspnetcorerazor", + path: "razor.tmLanguage.json", + displayName: "ASP.NET Razor", + samplePath: "razor.sample", + embeddedLangs: ["html", "csharp"] + }, + { + id: "reg", + scopeName: "source.reg", + path: "reg.tmLanguage.json", + displayName: "Windows Registry Script", + samplePath: "reg.sample" + }, + { + id: "rel", + scopeName: "source.rel", + path: "rel.tmLanguage.json", + displayName: "Rel", + samplePath: "rel.sample" + }, + { + id: "riscv", + scopeName: "source.riscv", + path: "riscv.tmLanguage.json", + displayName: "RISC-V", + samplePath: "riscv.sample" + }, + { + id: "rst", + scopeName: "source.rst", + path: "rst.tmLanguage.json", + displayName: "reStructuredText", + samplePath: "rst.sample", + embeddedLangs: ["cpp", "python", "javascript", "shellscript", "yaml", "cmake", "ruby"] + }, + { + id: "ruby", + scopeName: "source.ruby", + path: "ruby.tmLanguage.json", + displayName: "Ruby", + samplePath: "ruby.sample", + aliases: ["rb"], + embeddedLangs: ["html", "xml", "sql", "css", "c", "javascript", "shellscript", "lua"] + }, + { + id: "rust", + scopeName: "source.rust", + path: "rust.tmLanguage.json", + displayName: "Rust", + samplePath: "rust.sample", + aliases: ["rs"] + }, + { + id: "sas", + scopeName: "source.sas", + path: "sas.tmLanguage.json", + displayName: "SAS", + samplePath: "sas.sample", + embeddedLangs: ["sql"] + }, + { + id: "sass", + scopeName: "source.sass", + path: "sass.tmLanguage.json", + displayName: "Sass", + samplePath: "sass.sample" + }, + { + id: "scala", + scopeName: "source.scala", + path: "scala.tmLanguage.json", + displayName: "Scala", + samplePath: "scala.sample" + }, + { + id: "scheme", + scopeName: "source.scheme", + path: "scheme.tmLanguage.json", + displayName: "Scheme", + samplePath: "scheme.sample" + }, + { + id: "scss", + scopeName: "source.css.scss", + path: "scss.tmLanguage.json", + displayName: "SCSS", + samplePath: "scss.sample", + embeddedLangs: ["css"] + }, + { + id: "shaderlab", + scopeName: "source.shaderlab", + path: "shaderlab.tmLanguage.json", + displayName: "ShaderLab", + samplePath: "shaderlab.sample", + aliases: ["shader"], + embeddedLangs: ["hlsl"] + }, + { + id: "shellscript", + scopeName: "source.shell", + path: "shellscript.tmLanguage.json", + displayName: "Shell", + samplePath: "shellscript.sample", + aliases: ["bash", "sh", "shell", "zsh"] + }, + { + id: "shellsession", + scopeName: "text.shell-session", + path: "shellsession.tmLanguage.json", + displayName: "Shell Session", + samplePath: "shellsession.sample", + aliases: ["console"], + embeddedLangs: ["shellscript"] + }, + { + id: "smalltalk", + scopeName: "source.smalltalk", + path: "smalltalk.tmLanguage.json", + displayName: "Smalltalk", + samplePath: "smalltalk.sample" + }, + { + id: "solidity", + scopeName: "source.solidity", + path: "solidity.tmLanguage.json", + displayName: "Solidity", + samplePath: "solidity.sample" + }, + { + id: "sparql", + scopeName: "source.sparql", + path: "sparql.tmLanguage.json", + displayName: "SPARQL", + samplePath: "sparql.sample", + embeddedLangs: ["turtle"] + }, + { + id: "splunk", + scopeName: "source.splunk_search", + path: "splunk.tmLanguage.json", + displayName: "Splunk Query Language", + samplePath: "splunk.sample", + aliases: ["spl"] + }, + { + id: "sql", + scopeName: "source.sql", + path: "sql.tmLanguage.json", + displayName: "SQL", + samplePath: "sql.sample" + }, + { + id: "ssh-config", + scopeName: "source.ssh-config", + path: "ssh-config.tmLanguage.json", + displayName: "SSH Config", + samplePath: "ssh-config.sample" + }, + { + id: "stata", + scopeName: "source.stata", + path: "stata.tmLanguage.json", + displayName: "Stata", + samplePath: "stata.sample", + embeddedLangs: ["sql"] + }, + { + id: "stylus", + scopeName: "source.stylus", + path: "stylus.tmLanguage.json", + displayName: "Stylus", + samplePath: "stylus.sample", + aliases: ["styl"] + }, + { + id: "svelte", + scopeName: "source.svelte", + path: "svelte.tmLanguage.json", + displayName: "Svelte", + samplePath: "svelte.sample", + embeddedLangs: ["javascript", "typescript", "coffee", "stylus", "sass", "css", "scss", "less", "postcss", "pug", "markdown"] + }, + { + id: "swift", + scopeName: "source.swift", + path: "swift.tmLanguage.json", + displayName: "Swift", + samplePath: "swift.sample" + }, + { + id: "system-verilog", + scopeName: "source.systemverilog", + path: "system-verilog.tmLanguage.json", + displayName: "SystemVerilog", + samplePath: "system-verilog.sample" + }, + { + id: "tasl", + scopeName: "source.tasl", + path: "tasl.tmLanguage.json", + displayName: "Tasl", + samplePath: "tasl.sample" + }, + { + id: "tcl", + scopeName: "source.tcl", + path: "tcl.tmLanguage.json", + displayName: "Tcl", + samplePath: "tcl.sample" + }, + { + id: "tex", + scopeName: "text.tex", + path: "tex.tmLanguage.json", + displayName: "TeX", + samplePath: "tex.sample", + embeddedLangs: ["r"] + }, + { + id: "toml", + scopeName: "source.toml", + path: "toml.tmLanguage.json", + displayName: "TOML", + samplePath: "toml.sample" + }, + { + id: "tsx", + scopeName: "source.tsx", + path: "tsx.tmLanguage.json", + displayName: "TSX", + samplePath: "tsx.sample" + }, + { + id: "turtle", + scopeName: "source.turtle", + path: "turtle.tmLanguage.json", + displayName: "Turtle", + samplePath: "turtle.sample" + }, + { + id: "twig", + scopeName: "text.html.twig", + path: "twig.tmLanguage.json", + displayName: "Twig", + samplePath: "twig.sample", + embeddedLangs: ["css", "javascript", "php", "python", "ruby"] + }, + { + id: "typescript", + scopeName: "source.ts", + path: "typescript.tmLanguage.json", + displayName: "TypeScript", + samplePath: "typescript.sample", + aliases: ["ts"] + }, + { + id: "v", + scopeName: "source.v", + path: "v.tmLanguage.json", + displayName: "V", + samplePath: "v.sample" + }, + { + id: "vb", + scopeName: "source.asp.vb.net", + path: "vb.tmLanguage.json", + displayName: "Visual Basic", + samplePath: "vb.sample", + aliases: ["cmd"] + }, + { + id: "verilog", + scopeName: "source.verilog", + path: "verilog.tmLanguage.json", + displayName: "Verilog", + samplePath: "verilog.sample" + }, + { + id: "vhdl", + scopeName: "source.vhdl", + path: "vhdl.tmLanguage.json", + displayName: "VHDL", + samplePath: "vhdl.sample" + }, + { + id: "viml", + scopeName: "source.viml", + path: "viml.tmLanguage.json", + displayName: "Vim Script", + samplePath: "viml.sample", + aliases: ["vim", "vimscript"] + }, + { + id: "vue-html", + scopeName: "text.html.vue-html", + path: "vue-html.tmLanguage.json", + displayName: "Vue HTML", + samplePath: "vue-html.sample", + embeddedLangs: ["vue", "javascript"] + }, + { + id: "vue", + scopeName: "source.vue", + path: "vue.tmLanguage.json", + displayName: "Vue", + samplePath: "vue.sample", + embeddedLangs: ["html", "markdown", "pug", "stylus", "sass", "css", "scss", "less", "javascript", "typescript", "jsx", "tsx", "json", "jsonc", "json5", "yaml", "toml", "graphql"] + }, + { + id: "vyper", + scopeName: "source.vyper", + path: "vyper.tmLanguage.json", + displayName: "Vyper", + samplePath: "vyper.sample", + aliases: ["vy"] + }, + { + id: "wasm", + scopeName: "source.wat", + path: "wasm.tmLanguage.json", + displayName: "WebAssembly", + samplePath: "wasm.sample" + }, + { + id: "wenyan", + scopeName: "source.wenyan", + path: "wenyan.tmLanguage.json", + displayName: "Wenyan", + samplePath: "wenyan.sample", + aliases: ["\u6587\u8A00"] + }, + { + id: "wgsl", + scopeName: "source.wgsl", + path: "wgsl.tmLanguage.json", + displayName: "WGSL", + samplePath: "wgsl.sample" + }, + { + id: "wolfram", + scopeName: "source.wolfram", + path: "wolfram.tmLanguage.json", + displayName: "Wolfram", + samplePath: "wolfram.sample" + }, + { + id: "xml", + scopeName: "text.xml", + path: "xml.tmLanguage.json", + displayName: "XML", + samplePath: "xml.sample", + embeddedLangs: ["java"] + }, + { + id: "xsl", + scopeName: "text.xml.xsl", + path: "xsl.tmLanguage.json", + displayName: "XSL", + samplePath: "xsl.sample", + embeddedLangs: ["xml"] + }, + { + id: "yaml", + scopeName: "source.yaml", + path: "yaml.tmLanguage.json", + displayName: "YAML", + samplePath: "yaml.sample", + aliases: ["yml"] + }, + { + id: "zenscript", + scopeName: "source.zenscript", + path: "zenscript.tmLanguage.json", + displayName: "ZenScript", + samplePath: "zenscript.sample" + }, + { + id: "zig", + scopeName: "source.zig", + path: "zig.tmLanguage.json", + displayName: "zig", + samplePath: "zig.sample" + } +]; + +var FontStyle = /* @__PURE__ */ ((FontStyle2) => { + FontStyle2[FontStyle2["NotSet"] = -1] = "NotSet"; + FontStyle2[FontStyle2["None"] = 0] = "None"; + FontStyle2[FontStyle2["Italic"] = 1] = "Italic"; + FontStyle2[FontStyle2["Bold"] = 2] = "Bold"; + FontStyle2[FontStyle2["Underline"] = 4] = "Underline"; + return FontStyle2; +})(FontStyle || {}); +class StackElementMetadata { + static toBinaryStr(metadata) { + let r = metadata.toString(2); + while (r.length < 32) { + r = "0" + r; + } + return r; + } + static printMetadata(metadata) { + let languageId = StackElementMetadata.getLanguageId(metadata); + let tokenType = StackElementMetadata.getTokenType(metadata); + let fontStyle = StackElementMetadata.getFontStyle(metadata); + let foreground = StackElementMetadata.getForeground(metadata); + let background = StackElementMetadata.getBackground(metadata); + console.log({ + languageId, + tokenType, + fontStyle, + foreground, + background + }); + } + static getLanguageId(metadata) { + return (metadata & 255 /* LANGUAGEID_MASK */) >>> 0 /* LANGUAGEID_OFFSET */; + } + static getTokenType(metadata) { + return (metadata & 768 /* TOKEN_TYPE_MASK */) >>> 8 /* TOKEN_TYPE_OFFSET */; + } + static getFontStyle(metadata) { + return (metadata & 14336 /* FONT_STYLE_MASK */) >>> 11 /* FONT_STYLE_OFFSET */; + } + static getForeground(metadata) { + return (metadata & 8372224 /* FOREGROUND_MASK */) >>> 15 /* FOREGROUND_OFFSET */; + } + static getBackground(metadata) { + return (metadata & 4286578688 /* BACKGROUND_MASK */) >>> 24 /* BACKGROUND_OFFSET */; + } + static containsBalancedBrackets(metadata) { + return (metadata & 1024 /* BALANCED_BRACKETS_MASK */) !== 0; + } + static set(metadata, languageId, tokenType, fontStyle, foreground, background) { + let _languageId = StackElementMetadata.getLanguageId(metadata); + let _tokenType = StackElementMetadata.getTokenType(metadata); + let _fontStyle = StackElementMetadata.getFontStyle(metadata); + let _foreground = StackElementMetadata.getForeground(metadata); + let _background = StackElementMetadata.getBackground(metadata); + let _containsBalancedBracketsBit = StackElementMetadata.containsBalancedBrackets( + metadata + ) ? 1 : 0; + if (languageId !== 0) { + _languageId = languageId; + } + if (tokenType !== 0 /* Other */) { + _tokenType = tokenType === 8 /* MetaEmbedded */ ? 0 /* Other */ : tokenType; + } + if (fontStyle !== -1 /* NotSet */) { + _fontStyle = fontStyle; + } + if (foreground !== 0) { + _foreground = foreground; + } + if (background !== 0) { + _background = background; + } + return (_languageId << 0 /* LANGUAGEID_OFFSET */ | _tokenType << 8 /* TOKEN_TYPE_OFFSET */ | _fontStyle << 11 /* FONT_STYLE_OFFSET */ | _containsBalancedBracketsBit << 10 /* BALANCED_BRACKETS_OFFSET */ | _foreground << 15 /* FOREGROUND_OFFSET */ | _background << 24 /* BACKGROUND_OFFSET */) >>> 0; + } +} + +function trimEndSlash(str) { + if (str.endsWith("/") || str.endsWith("\\")) + return str.slice(0, -1); + return str; +} +function trimStartDot(str) { + if (str.startsWith("./")) + return str.slice(2); + return str; +} +function dirpathparts(str) { + const parts = str.split(/[\/\\]/g); + return parts.slice(0, parts.length - 1); +} +function join(...parts) { + return parts.map(trimEndSlash).map(trimStartDot).join("/"); +} +function groupBy(elements, keyGetter) { + const map = /* @__PURE__ */ new Map(); + for (const element of elements) { + const key = keyGetter(element); + if (map.has(key)) { + const group = map.get(key); + group.push(element); + } else { + map.set(key, [element]); + } + } + return map; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/** + * Creates a JSON scanner on the given text. + * If ignoreTrivia is set, whitespaces or comments are ignored. + */ +function createScanner(text, ignoreTrivia = false) { + const len = text.length; + let pos = 0, value = '', tokenOffset = 0, token = 16 /* SyntaxKind.Unknown */, lineNumber = 0, lineStartOffset = 0, tokenLineStartOffset = 0, prevTokenLineStartOffset = 0, scanError = 0 /* ScanError.None */; + function scanHexDigits(count, exact) { + let digits = 0; + let value = 0; + while (digits < count || !exact) { + let ch = text.charCodeAt(pos); + if (ch >= 48 /* CharacterCodes._0 */ && ch <= 57 /* CharacterCodes._9 */) { + value = value * 16 + ch - 48 /* CharacterCodes._0 */; + } + else if (ch >= 65 /* CharacterCodes.A */ && ch <= 70 /* CharacterCodes.F */) { + value = value * 16 + ch - 65 /* CharacterCodes.A */ + 10; + } + else if (ch >= 97 /* CharacterCodes.a */ && ch <= 102 /* CharacterCodes.f */) { + value = value * 16 + ch - 97 /* CharacterCodes.a */ + 10; + } + else { + break; + } + pos++; + digits++; + } + if (digits < count) { + value = -1; + } + return value; + } + function setPosition(newPosition) { + pos = newPosition; + value = ''; + tokenOffset = 0; + token = 16 /* SyntaxKind.Unknown */; + scanError = 0 /* ScanError.None */; + } + function scanNumber() { + let start = pos; + if (text.charCodeAt(pos) === 48 /* CharacterCodes._0 */) { + pos++; + } + else { + pos++; + while (pos < text.length && isDigit(text.charCodeAt(pos))) { + pos++; + } + } + if (pos < text.length && text.charCodeAt(pos) === 46 /* CharacterCodes.dot */) { + pos++; + if (pos < text.length && isDigit(text.charCodeAt(pos))) { + pos++; + while (pos < text.length && isDigit(text.charCodeAt(pos))) { + pos++; + } + } + else { + scanError = 3 /* ScanError.UnexpectedEndOfNumber */; + return text.substring(start, pos); + } + } + let end = pos; + if (pos < text.length && (text.charCodeAt(pos) === 69 /* CharacterCodes.E */ || text.charCodeAt(pos) === 101 /* CharacterCodes.e */)) { + pos++; + if (pos < text.length && text.charCodeAt(pos) === 43 /* CharacterCodes.plus */ || text.charCodeAt(pos) === 45 /* CharacterCodes.minus */) { + pos++; + } + if (pos < text.length && isDigit(text.charCodeAt(pos))) { + pos++; + while (pos < text.length && isDigit(text.charCodeAt(pos))) { + pos++; + } + end = pos; + } + else { + scanError = 3 /* ScanError.UnexpectedEndOfNumber */; + } + } + return text.substring(start, end); + } + function scanString() { + let result = '', start = pos; + while (true) { + if (pos >= len) { + result += text.substring(start, pos); + scanError = 2 /* ScanError.UnexpectedEndOfString */; + break; + } + const ch = text.charCodeAt(pos); + if (ch === 34 /* CharacterCodes.doubleQuote */) { + result += text.substring(start, pos); + pos++; + break; + } + if (ch === 92 /* CharacterCodes.backslash */) { + result += text.substring(start, pos); + pos++; + if (pos >= len) { + scanError = 2 /* ScanError.UnexpectedEndOfString */; + break; + } + const ch2 = text.charCodeAt(pos++); + switch (ch2) { + case 34 /* CharacterCodes.doubleQuote */: + result += '\"'; + break; + case 92 /* CharacterCodes.backslash */: + result += '\\'; + break; + case 47 /* CharacterCodes.slash */: + result += '/'; + break; + case 98 /* CharacterCodes.b */: + result += '\b'; + break; + case 102 /* CharacterCodes.f */: + result += '\f'; + break; + case 110 /* CharacterCodes.n */: + result += '\n'; + break; + case 114 /* CharacterCodes.r */: + result += '\r'; + break; + case 116 /* CharacterCodes.t */: + result += '\t'; + break; + case 117 /* CharacterCodes.u */: + const ch3 = scanHexDigits(4, true); + if (ch3 >= 0) { + result += String.fromCharCode(ch3); + } + else { + scanError = 4 /* ScanError.InvalidUnicode */; + } + break; + default: + scanError = 5 /* ScanError.InvalidEscapeCharacter */; + } + start = pos; + continue; + } + if (ch >= 0 && ch <= 0x1f) { + if (isLineBreak(ch)) { + result += text.substring(start, pos); + scanError = 2 /* ScanError.UnexpectedEndOfString */; + break; + } + else { + scanError = 6 /* ScanError.InvalidCharacter */; + // mark as error but continue with string + } + } + pos++; + } + return result; + } + function scanNext() { + value = ''; + scanError = 0 /* ScanError.None */; + tokenOffset = pos; + lineStartOffset = lineNumber; + prevTokenLineStartOffset = tokenLineStartOffset; + if (pos >= len) { + // at the end + tokenOffset = len; + return token = 17 /* SyntaxKind.EOF */; + } + let code = text.charCodeAt(pos); + // trivia: whitespace + if (isWhiteSpace(code)) { + do { + pos++; + value += String.fromCharCode(code); + code = text.charCodeAt(pos); + } while (isWhiteSpace(code)); + return token = 15 /* SyntaxKind.Trivia */; + } + // trivia: newlines + if (isLineBreak(code)) { + pos++; + value += String.fromCharCode(code); + if (code === 13 /* CharacterCodes.carriageReturn */ && text.charCodeAt(pos) === 10 /* CharacterCodes.lineFeed */) { + pos++; + value += '\n'; + } + lineNumber++; + tokenLineStartOffset = pos; + return token = 14 /* SyntaxKind.LineBreakTrivia */; + } + switch (code) { + // tokens: []{}:, + case 123 /* CharacterCodes.openBrace */: + pos++; + return token = 1 /* SyntaxKind.OpenBraceToken */; + case 125 /* CharacterCodes.closeBrace */: + pos++; + return token = 2 /* SyntaxKind.CloseBraceToken */; + case 91 /* CharacterCodes.openBracket */: + pos++; + return token = 3 /* SyntaxKind.OpenBracketToken */; + case 93 /* CharacterCodes.closeBracket */: + pos++; + return token = 4 /* SyntaxKind.CloseBracketToken */; + case 58 /* CharacterCodes.colon */: + pos++; + return token = 6 /* SyntaxKind.ColonToken */; + case 44 /* CharacterCodes.comma */: + pos++; + return token = 5 /* SyntaxKind.CommaToken */; + // strings + case 34 /* CharacterCodes.doubleQuote */: + pos++; + value = scanString(); + return token = 10 /* SyntaxKind.StringLiteral */; + // comments + case 47 /* CharacterCodes.slash */: + const start = pos - 1; + // Single-line comment + if (text.charCodeAt(pos + 1) === 47 /* CharacterCodes.slash */) { + pos += 2; + while (pos < len) { + if (isLineBreak(text.charCodeAt(pos))) { + break; + } + pos++; + } + value = text.substring(start, pos); + return token = 12 /* SyntaxKind.LineCommentTrivia */; + } + // Multi-line comment + if (text.charCodeAt(pos + 1) === 42 /* CharacterCodes.asterisk */) { + pos += 2; + const safeLength = len - 1; // For lookahead. + let commentClosed = false; + while (pos < safeLength) { + const ch = text.charCodeAt(pos); + if (ch === 42 /* CharacterCodes.asterisk */ && text.charCodeAt(pos + 1) === 47 /* CharacterCodes.slash */) { + pos += 2; + commentClosed = true; + break; + } + pos++; + if (isLineBreak(ch)) { + if (ch === 13 /* CharacterCodes.carriageReturn */ && text.charCodeAt(pos) === 10 /* CharacterCodes.lineFeed */) { + pos++; + } + lineNumber++; + tokenLineStartOffset = pos; + } + } + if (!commentClosed) { + pos++; + scanError = 1 /* ScanError.UnexpectedEndOfComment */; + } + value = text.substring(start, pos); + return token = 13 /* SyntaxKind.BlockCommentTrivia */; + } + // just a single slash + value += String.fromCharCode(code); + pos++; + return token = 16 /* SyntaxKind.Unknown */; + // numbers + case 45 /* CharacterCodes.minus */: + value += String.fromCharCode(code); + pos++; + if (pos === len || !isDigit(text.charCodeAt(pos))) { + return token = 16 /* SyntaxKind.Unknown */; + } + // found a minus, followed by a number so + // we fall through to proceed with scanning + // numbers + case 48 /* CharacterCodes._0 */: + case 49 /* CharacterCodes._1 */: + case 50 /* CharacterCodes._2 */: + case 51 /* CharacterCodes._3 */: + case 52 /* CharacterCodes._4 */: + case 53 /* CharacterCodes._5 */: + case 54 /* CharacterCodes._6 */: + case 55 /* CharacterCodes._7 */: + case 56 /* CharacterCodes._8 */: + case 57 /* CharacterCodes._9 */: + value += scanNumber(); + return token = 11 /* SyntaxKind.NumericLiteral */; + // literals and unknown symbols + default: + // is a literal? Read the full word. + while (pos < len && isUnknownContentCharacter(code)) { + pos++; + code = text.charCodeAt(pos); + } + if (tokenOffset !== pos) { + value = text.substring(tokenOffset, pos); + // keywords: true, false, null + switch (value) { + case 'true': return token = 8 /* SyntaxKind.TrueKeyword */; + case 'false': return token = 9 /* SyntaxKind.FalseKeyword */; + case 'null': return token = 7 /* SyntaxKind.NullKeyword */; + } + return token = 16 /* SyntaxKind.Unknown */; + } + // some + value += String.fromCharCode(code); + pos++; + return token = 16 /* SyntaxKind.Unknown */; + } + } + function isUnknownContentCharacter(code) { + if (isWhiteSpace(code) || isLineBreak(code)) { + return false; + } + switch (code) { + case 125 /* CharacterCodes.closeBrace */: + case 93 /* CharacterCodes.closeBracket */: + case 123 /* CharacterCodes.openBrace */: + case 91 /* CharacterCodes.openBracket */: + case 34 /* CharacterCodes.doubleQuote */: + case 58 /* CharacterCodes.colon */: + case 44 /* CharacterCodes.comma */: + case 47 /* CharacterCodes.slash */: + return false; + } + return true; + } + function scanNextNonTrivia() { + let result; + do { + result = scanNext(); + } while (result >= 12 /* SyntaxKind.LineCommentTrivia */ && result <= 15 /* SyntaxKind.Trivia */); + return result; + } + return { + setPosition: setPosition, + getPosition: () => pos, + scan: ignoreTrivia ? scanNextNonTrivia : scanNext, + getToken: () => token, + getTokenValue: () => value, + getTokenOffset: () => tokenOffset, + getTokenLength: () => pos - tokenOffset, + getTokenStartLine: () => lineStartOffset, + getTokenStartCharacter: () => tokenOffset - prevTokenLineStartOffset, + getTokenError: () => scanError, + }; +} +function isWhiteSpace(ch) { + return ch === 32 /* CharacterCodes.space */ || ch === 9 /* CharacterCodes.tab */; +} +function isLineBreak(ch) { + return ch === 10 /* CharacterCodes.lineFeed */ || ch === 13 /* CharacterCodes.carriageReturn */; +} +function isDigit(ch) { + return ch >= 48 /* CharacterCodes._0 */ && ch <= 57 /* CharacterCodes._9 */; +} +var CharacterCodes; +(function (CharacterCodes) { + CharacterCodes[CharacterCodes["lineFeed"] = 10] = "lineFeed"; + CharacterCodes[CharacterCodes["carriageReturn"] = 13] = "carriageReturn"; + CharacterCodes[CharacterCodes["space"] = 32] = "space"; + CharacterCodes[CharacterCodes["_0"] = 48] = "_0"; + CharacterCodes[CharacterCodes["_1"] = 49] = "_1"; + CharacterCodes[CharacterCodes["_2"] = 50] = "_2"; + CharacterCodes[CharacterCodes["_3"] = 51] = "_3"; + CharacterCodes[CharacterCodes["_4"] = 52] = "_4"; + CharacterCodes[CharacterCodes["_5"] = 53] = "_5"; + CharacterCodes[CharacterCodes["_6"] = 54] = "_6"; + CharacterCodes[CharacterCodes["_7"] = 55] = "_7"; + CharacterCodes[CharacterCodes["_8"] = 56] = "_8"; + CharacterCodes[CharacterCodes["_9"] = 57] = "_9"; + CharacterCodes[CharacterCodes["a"] = 97] = "a"; + CharacterCodes[CharacterCodes["b"] = 98] = "b"; + CharacterCodes[CharacterCodes["c"] = 99] = "c"; + CharacterCodes[CharacterCodes["d"] = 100] = "d"; + CharacterCodes[CharacterCodes["e"] = 101] = "e"; + CharacterCodes[CharacterCodes["f"] = 102] = "f"; + CharacterCodes[CharacterCodes["g"] = 103] = "g"; + CharacterCodes[CharacterCodes["h"] = 104] = "h"; + CharacterCodes[CharacterCodes["i"] = 105] = "i"; + CharacterCodes[CharacterCodes["j"] = 106] = "j"; + CharacterCodes[CharacterCodes["k"] = 107] = "k"; + CharacterCodes[CharacterCodes["l"] = 108] = "l"; + CharacterCodes[CharacterCodes["m"] = 109] = "m"; + CharacterCodes[CharacterCodes["n"] = 110] = "n"; + CharacterCodes[CharacterCodes["o"] = 111] = "o"; + CharacterCodes[CharacterCodes["p"] = 112] = "p"; + CharacterCodes[CharacterCodes["q"] = 113] = "q"; + CharacterCodes[CharacterCodes["r"] = 114] = "r"; + CharacterCodes[CharacterCodes["s"] = 115] = "s"; + CharacterCodes[CharacterCodes["t"] = 116] = "t"; + CharacterCodes[CharacterCodes["u"] = 117] = "u"; + CharacterCodes[CharacterCodes["v"] = 118] = "v"; + CharacterCodes[CharacterCodes["w"] = 119] = "w"; + CharacterCodes[CharacterCodes["x"] = 120] = "x"; + CharacterCodes[CharacterCodes["y"] = 121] = "y"; + CharacterCodes[CharacterCodes["z"] = 122] = "z"; + CharacterCodes[CharacterCodes["A"] = 65] = "A"; + CharacterCodes[CharacterCodes["B"] = 66] = "B"; + CharacterCodes[CharacterCodes["C"] = 67] = "C"; + CharacterCodes[CharacterCodes["D"] = 68] = "D"; + CharacterCodes[CharacterCodes["E"] = 69] = "E"; + CharacterCodes[CharacterCodes["F"] = 70] = "F"; + CharacterCodes[CharacterCodes["G"] = 71] = "G"; + CharacterCodes[CharacterCodes["H"] = 72] = "H"; + CharacterCodes[CharacterCodes["I"] = 73] = "I"; + CharacterCodes[CharacterCodes["J"] = 74] = "J"; + CharacterCodes[CharacterCodes["K"] = 75] = "K"; + CharacterCodes[CharacterCodes["L"] = 76] = "L"; + CharacterCodes[CharacterCodes["M"] = 77] = "M"; + CharacterCodes[CharacterCodes["N"] = 78] = "N"; + CharacterCodes[CharacterCodes["O"] = 79] = "O"; + CharacterCodes[CharacterCodes["P"] = 80] = "P"; + CharacterCodes[CharacterCodes["Q"] = 81] = "Q"; + CharacterCodes[CharacterCodes["R"] = 82] = "R"; + CharacterCodes[CharacterCodes["S"] = 83] = "S"; + CharacterCodes[CharacterCodes["T"] = 84] = "T"; + CharacterCodes[CharacterCodes["U"] = 85] = "U"; + CharacterCodes[CharacterCodes["V"] = 86] = "V"; + CharacterCodes[CharacterCodes["W"] = 87] = "W"; + CharacterCodes[CharacterCodes["X"] = 88] = "X"; + CharacterCodes[CharacterCodes["Y"] = 89] = "Y"; + CharacterCodes[CharacterCodes["Z"] = 90] = "Z"; + CharacterCodes[CharacterCodes["asterisk"] = 42] = "asterisk"; + CharacterCodes[CharacterCodes["backslash"] = 92] = "backslash"; + CharacterCodes[CharacterCodes["closeBrace"] = 125] = "closeBrace"; + CharacterCodes[CharacterCodes["closeBracket"] = 93] = "closeBracket"; + CharacterCodes[CharacterCodes["colon"] = 58] = "colon"; + CharacterCodes[CharacterCodes["comma"] = 44] = "comma"; + CharacterCodes[CharacterCodes["dot"] = 46] = "dot"; + CharacterCodes[CharacterCodes["doubleQuote"] = 34] = "doubleQuote"; + CharacterCodes[CharacterCodes["minus"] = 45] = "minus"; + CharacterCodes[CharacterCodes["openBrace"] = 123] = "openBrace"; + CharacterCodes[CharacterCodes["openBracket"] = 91] = "openBracket"; + CharacterCodes[CharacterCodes["plus"] = 43] = "plus"; + CharacterCodes[CharacterCodes["slash"] = 47] = "slash"; + CharacterCodes[CharacterCodes["formFeed"] = 12] = "formFeed"; + CharacterCodes[CharacterCodes["tab"] = 9] = "tab"; +})(CharacterCodes || (CharacterCodes = {})); + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +var ParseOptions; +(function (ParseOptions) { + ParseOptions.DEFAULT = { + allowTrailingComma: false + }; +})(ParseOptions || (ParseOptions = {})); +/** + * Parses the given text and returns the object the JSON content represents. On invalid input, the parser tries to be as fault tolerant as possible, but still return a result. + * Therefore always check the errors list to find out if the input was valid. + */ +function parse$1(text, errors = [], options = ParseOptions.DEFAULT) { + let currentProperty = null; + let currentParent = []; + const previousParents = []; + function onValue(value) { + if (Array.isArray(currentParent)) { + currentParent.push(value); + } + else if (currentProperty !== null) { + currentParent[currentProperty] = value; + } + } + const visitor = { + onObjectBegin: () => { + const object = {}; + onValue(object); + previousParents.push(currentParent); + currentParent = object; + currentProperty = null; + }, + onObjectProperty: (name) => { + currentProperty = name; + }, + onObjectEnd: () => { + currentParent = previousParents.pop(); + }, + onArrayBegin: () => { + const array = []; + onValue(array); + previousParents.push(currentParent); + currentParent = array; + currentProperty = null; + }, + onArrayEnd: () => { + currentParent = previousParents.pop(); + }, + onLiteralValue: onValue, + onError: (error, offset, length) => { + errors.push({ error, offset, length }); + } + }; + visit(text, visitor, options); + return currentParent[0]; +} +/** + * Parses the given text and invokes the visitor functions for each object, array and literal reached. + */ +function visit(text, visitor, options = ParseOptions.DEFAULT) { + const _scanner = createScanner(text, false); + // Important: Only pass copies of this to visitor functions to prevent accidental modification, and + // to not affect visitor functions which stored a reference to a previous JSONPath + const _jsonPath = []; + function toNoArgVisit(visitFunction) { + return visitFunction ? () => visitFunction(_scanner.getTokenOffset(), _scanner.getTokenLength(), _scanner.getTokenStartLine(), _scanner.getTokenStartCharacter()) : () => true; + } + function toNoArgVisitWithPath(visitFunction) { + return visitFunction ? () => visitFunction(_scanner.getTokenOffset(), _scanner.getTokenLength(), _scanner.getTokenStartLine(), _scanner.getTokenStartCharacter(), () => _jsonPath.slice()) : () => true; + } + function toOneArgVisit(visitFunction) { + return visitFunction ? (arg) => visitFunction(arg, _scanner.getTokenOffset(), _scanner.getTokenLength(), _scanner.getTokenStartLine(), _scanner.getTokenStartCharacter()) : () => true; + } + function toOneArgVisitWithPath(visitFunction) { + return visitFunction ? (arg) => visitFunction(arg, _scanner.getTokenOffset(), _scanner.getTokenLength(), _scanner.getTokenStartLine(), _scanner.getTokenStartCharacter(), () => _jsonPath.slice()) : () => true; + } + const onObjectBegin = toNoArgVisitWithPath(visitor.onObjectBegin), onObjectProperty = toOneArgVisitWithPath(visitor.onObjectProperty), onObjectEnd = toNoArgVisit(visitor.onObjectEnd), onArrayBegin = toNoArgVisitWithPath(visitor.onArrayBegin), onArrayEnd = toNoArgVisit(visitor.onArrayEnd), onLiteralValue = toOneArgVisitWithPath(visitor.onLiteralValue), onSeparator = toOneArgVisit(visitor.onSeparator), onComment = toNoArgVisit(visitor.onComment), onError = toOneArgVisit(visitor.onError); + const disallowComments = options && options.disallowComments; + const allowTrailingComma = options && options.allowTrailingComma; + function scanNext() { + while (true) { + const token = _scanner.scan(); + switch (_scanner.getTokenError()) { + case 4 /* ScanError.InvalidUnicode */: + handleError(14 /* ParseErrorCode.InvalidUnicode */); + break; + case 5 /* ScanError.InvalidEscapeCharacter */: + handleError(15 /* ParseErrorCode.InvalidEscapeCharacter */); + break; + case 3 /* ScanError.UnexpectedEndOfNumber */: + handleError(13 /* ParseErrorCode.UnexpectedEndOfNumber */); + break; + case 1 /* ScanError.UnexpectedEndOfComment */: + if (!disallowComments) { + handleError(11 /* ParseErrorCode.UnexpectedEndOfComment */); + } + break; + case 2 /* ScanError.UnexpectedEndOfString */: + handleError(12 /* ParseErrorCode.UnexpectedEndOfString */); + break; + case 6 /* ScanError.InvalidCharacter */: + handleError(16 /* ParseErrorCode.InvalidCharacter */); + break; + } + switch (token) { + case 12 /* SyntaxKind.LineCommentTrivia */: + case 13 /* SyntaxKind.BlockCommentTrivia */: + if (disallowComments) { + handleError(10 /* ParseErrorCode.InvalidCommentToken */); + } + else { + onComment(); + } + break; + case 16 /* SyntaxKind.Unknown */: + handleError(1 /* ParseErrorCode.InvalidSymbol */); + break; + case 15 /* SyntaxKind.Trivia */: + case 14 /* SyntaxKind.LineBreakTrivia */: + break; + default: + return token; + } + } + } + function handleError(error, skipUntilAfter = [], skipUntil = []) { + onError(error); + if (skipUntilAfter.length + skipUntil.length > 0) { + let token = _scanner.getToken(); + while (token !== 17 /* SyntaxKind.EOF */) { + if (skipUntilAfter.indexOf(token) !== -1) { + scanNext(); + break; + } + else if (skipUntil.indexOf(token) !== -1) { + break; + } + token = scanNext(); + } + } + } + function parseString(isValue) { + const value = _scanner.getTokenValue(); + if (isValue) { + onLiteralValue(value); + } + else { + onObjectProperty(value); + // add property name afterwards + _jsonPath.push(value); + } + scanNext(); + return true; + } + function parseLiteral() { + switch (_scanner.getToken()) { + case 11 /* SyntaxKind.NumericLiteral */: + const tokenValue = _scanner.getTokenValue(); + let value = Number(tokenValue); + if (isNaN(value)) { + handleError(2 /* ParseErrorCode.InvalidNumberFormat */); + value = 0; + } + onLiteralValue(value); + break; + case 7 /* SyntaxKind.NullKeyword */: + onLiteralValue(null); + break; + case 8 /* SyntaxKind.TrueKeyword */: + onLiteralValue(true); + break; + case 9 /* SyntaxKind.FalseKeyword */: + onLiteralValue(false); + break; + default: + return false; + } + scanNext(); + return true; + } + function parseProperty() { + if (_scanner.getToken() !== 10 /* SyntaxKind.StringLiteral */) { + handleError(3 /* ParseErrorCode.PropertyNameExpected */, [], [2 /* SyntaxKind.CloseBraceToken */, 5 /* SyntaxKind.CommaToken */]); + return false; + } + parseString(false); + if (_scanner.getToken() === 6 /* SyntaxKind.ColonToken */) { + onSeparator(':'); + scanNext(); // consume colon + if (!parseValue()) { + handleError(4 /* ParseErrorCode.ValueExpected */, [], [2 /* SyntaxKind.CloseBraceToken */, 5 /* SyntaxKind.CommaToken */]); + } + } + else { + handleError(5 /* ParseErrorCode.ColonExpected */, [], [2 /* SyntaxKind.CloseBraceToken */, 5 /* SyntaxKind.CommaToken */]); + } + _jsonPath.pop(); // remove processed property name + return true; + } + function parseObject() { + onObjectBegin(); + scanNext(); // consume open brace + let needsComma = false; + while (_scanner.getToken() !== 2 /* SyntaxKind.CloseBraceToken */ && _scanner.getToken() !== 17 /* SyntaxKind.EOF */) { + if (_scanner.getToken() === 5 /* SyntaxKind.CommaToken */) { + if (!needsComma) { + handleError(4 /* ParseErrorCode.ValueExpected */, [], []); + } + onSeparator(','); + scanNext(); // consume comma + if (_scanner.getToken() === 2 /* SyntaxKind.CloseBraceToken */ && allowTrailingComma) { + break; + } + } + else if (needsComma) { + handleError(6 /* ParseErrorCode.CommaExpected */, [], []); + } + if (!parseProperty()) { + handleError(4 /* ParseErrorCode.ValueExpected */, [], [2 /* SyntaxKind.CloseBraceToken */, 5 /* SyntaxKind.CommaToken */]); + } + needsComma = true; + } + onObjectEnd(); + if (_scanner.getToken() !== 2 /* SyntaxKind.CloseBraceToken */) { + handleError(7 /* ParseErrorCode.CloseBraceExpected */, [2 /* SyntaxKind.CloseBraceToken */], []); + } + else { + scanNext(); // consume close brace + } + return true; + } + function parseArray() { + onArrayBegin(); + scanNext(); // consume open bracket + let isFirstElement = true; + let needsComma = false; + while (_scanner.getToken() !== 4 /* SyntaxKind.CloseBracketToken */ && _scanner.getToken() !== 17 /* SyntaxKind.EOF */) { + if (_scanner.getToken() === 5 /* SyntaxKind.CommaToken */) { + if (!needsComma) { + handleError(4 /* ParseErrorCode.ValueExpected */, [], []); + } + onSeparator(','); + scanNext(); // consume comma + if (_scanner.getToken() === 4 /* SyntaxKind.CloseBracketToken */ && allowTrailingComma) { + break; + } + } + else if (needsComma) { + handleError(6 /* ParseErrorCode.CommaExpected */, [], []); + } + if (isFirstElement) { + _jsonPath.push(0); + isFirstElement = false; + } + else { + _jsonPath[_jsonPath.length - 1]++; + } + if (!parseValue()) { + handleError(4 /* ParseErrorCode.ValueExpected */, [], [4 /* SyntaxKind.CloseBracketToken */, 5 /* SyntaxKind.CommaToken */]); + } + needsComma = true; + } + onArrayEnd(); + if (!isFirstElement) { + _jsonPath.pop(); // remove array index + } + if (_scanner.getToken() !== 4 /* SyntaxKind.CloseBracketToken */) { + handleError(8 /* ParseErrorCode.CloseBracketExpected */, [4 /* SyntaxKind.CloseBracketToken */], []); + } + else { + scanNext(); // consume close bracket + } + return true; + } + function parseValue() { + switch (_scanner.getToken()) { + case 3 /* SyntaxKind.OpenBracketToken */: + return parseArray(); + case 1 /* SyntaxKind.OpenBraceToken */: + return parseObject(); + case 10 /* SyntaxKind.StringLiteral */: + return parseString(true); + default: + return parseLiteral(); + } + } + scanNext(); + if (_scanner.getToken() === 17 /* SyntaxKind.EOF */) { + if (options.allowEmptyContent) { + return true; + } + handleError(4 /* ParseErrorCode.ValueExpected */, [], []); + return false; + } + if (!parseValue()) { + handleError(4 /* ParseErrorCode.ValueExpected */, [], []); + return false; + } + if (_scanner.getToken() !== 17 /* SyntaxKind.EOF */) { + handleError(9 /* ParseErrorCode.EndOfFileExpected */, [], []); + } + return true; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +var ScanError; +(function (ScanError) { + ScanError[ScanError["None"] = 0] = "None"; + ScanError[ScanError["UnexpectedEndOfComment"] = 1] = "UnexpectedEndOfComment"; + ScanError[ScanError["UnexpectedEndOfString"] = 2] = "UnexpectedEndOfString"; + ScanError[ScanError["UnexpectedEndOfNumber"] = 3] = "UnexpectedEndOfNumber"; + ScanError[ScanError["InvalidUnicode"] = 4] = "InvalidUnicode"; + ScanError[ScanError["InvalidEscapeCharacter"] = 5] = "InvalidEscapeCharacter"; + ScanError[ScanError["InvalidCharacter"] = 6] = "InvalidCharacter"; +})(ScanError || (ScanError = {})); +var SyntaxKind; +(function (SyntaxKind) { + SyntaxKind[SyntaxKind["OpenBraceToken"] = 1] = "OpenBraceToken"; + SyntaxKind[SyntaxKind["CloseBraceToken"] = 2] = "CloseBraceToken"; + SyntaxKind[SyntaxKind["OpenBracketToken"] = 3] = "OpenBracketToken"; + SyntaxKind[SyntaxKind["CloseBracketToken"] = 4] = "CloseBracketToken"; + SyntaxKind[SyntaxKind["CommaToken"] = 5] = "CommaToken"; + SyntaxKind[SyntaxKind["ColonToken"] = 6] = "ColonToken"; + SyntaxKind[SyntaxKind["NullKeyword"] = 7] = "NullKeyword"; + SyntaxKind[SyntaxKind["TrueKeyword"] = 8] = "TrueKeyword"; + SyntaxKind[SyntaxKind["FalseKeyword"] = 9] = "FalseKeyword"; + SyntaxKind[SyntaxKind["StringLiteral"] = 10] = "StringLiteral"; + SyntaxKind[SyntaxKind["NumericLiteral"] = 11] = "NumericLiteral"; + SyntaxKind[SyntaxKind["LineCommentTrivia"] = 12] = "LineCommentTrivia"; + SyntaxKind[SyntaxKind["BlockCommentTrivia"] = 13] = "BlockCommentTrivia"; + SyntaxKind[SyntaxKind["LineBreakTrivia"] = 14] = "LineBreakTrivia"; + SyntaxKind[SyntaxKind["Trivia"] = 15] = "Trivia"; + SyntaxKind[SyntaxKind["Unknown"] = 16] = "Unknown"; + SyntaxKind[SyntaxKind["EOF"] = 17] = "EOF"; +})(SyntaxKind || (SyntaxKind = {})); +/** + * Parses the given text and returns the object the JSON content represents. On invalid input, the parser tries to be as fault tolerant as possible, but still return a result. + * Therefore, always check the errors list to find out if the input was valid. + */ +const parse = parse$1; +var ParseErrorCode; +(function (ParseErrorCode) { + ParseErrorCode[ParseErrorCode["InvalidSymbol"] = 1] = "InvalidSymbol"; + ParseErrorCode[ParseErrorCode["InvalidNumberFormat"] = 2] = "InvalidNumberFormat"; + ParseErrorCode[ParseErrorCode["PropertyNameExpected"] = 3] = "PropertyNameExpected"; + ParseErrorCode[ParseErrorCode["ValueExpected"] = 4] = "ValueExpected"; + ParseErrorCode[ParseErrorCode["ColonExpected"] = 5] = "ColonExpected"; + ParseErrorCode[ParseErrorCode["CommaExpected"] = 6] = "CommaExpected"; + ParseErrorCode[ParseErrorCode["CloseBraceExpected"] = 7] = "CloseBraceExpected"; + ParseErrorCode[ParseErrorCode["CloseBracketExpected"] = 8] = "CloseBracketExpected"; + ParseErrorCode[ParseErrorCode["EndOfFileExpected"] = 9] = "EndOfFileExpected"; + ParseErrorCode[ParseErrorCode["InvalidCommentToken"] = 10] = "InvalidCommentToken"; + ParseErrorCode[ParseErrorCode["UnexpectedEndOfComment"] = 11] = "UnexpectedEndOfComment"; + ParseErrorCode[ParseErrorCode["UnexpectedEndOfString"] = 12] = "UnexpectedEndOfString"; + ParseErrorCode[ParseErrorCode["UnexpectedEndOfNumber"] = 13] = "UnexpectedEndOfNumber"; + ParseErrorCode[ParseErrorCode["InvalidUnicode"] = 14] = "InvalidUnicode"; + ParseErrorCode[ParseErrorCode["InvalidEscapeCharacter"] = 15] = "InvalidEscapeCharacter"; + ParseErrorCode[ParseErrorCode["InvalidCharacter"] = 16] = "InvalidCharacter"; +})(ParseErrorCode || (ParseErrorCode = {})); + +const isWebWorker = typeof self !== "undefined" && typeof self.WorkerGlobalScope !== "undefined"; +const isNode = "process" in globalThis && typeof process !== "undefined" && typeof process.release !== "undefined" && process.release.name === "node"; +const isBun = "process" in globalThis && typeof process !== "undefined" && typeof process.release !== "undefined" && process.release.name === "bun"; +const isBrowser = isWebWorker || !isNode && !isBun; +let CDN_ROOT = ""; +let WASM = ""; +const WASM_PATH = "dist/"; +function setCDN(root) { + CDN_ROOT = root.endsWith("/") ? root : root + "/"; +} +function setWasm(data) { + WASM = data; +} +let _onigurumaPromise = null; +async function getOniguruma(wasmPath) { + if (!_onigurumaPromise) { + let loader; + if (isBrowser) { + if (typeof WASM === "string") { + loader = loadWASM({ + data: await fetch(_resolvePath(join(...dirpathparts(wasmPath), "onig.wasm"))) + }); + } else { + loader = loadWASM({ + data: WASM + }); + } + } else { + const path = require("path"); + const wasmPath2 = path.join(require.resolve("vscode-oniguruma"), "../onig.wasm"); + const fs = require("fs"); + const wasmBin = fs.readFileSync(wasmPath2).buffer; + loader = loadWASM(wasmBin); + } + _onigurumaPromise = loader.then(() => { + return { + createOnigScanner(patterns) { + return createOnigScanner(patterns); + }, + createOnigString(s) { + return createOnigString(s); + } + }; + }); + } + return _onigurumaPromise; +} +function _resolvePath(filepath) { + if (isBrowser) { + return `${CDN_ROOT}${filepath}`; + } else { + const path = require("path"); + if (path.isAbsolute(filepath)) { + return filepath; + } else { + return path.resolve(__dirname, "..", filepath); + } + } +} +async function _fetchAssets(filepath) { + const path = _resolvePath(filepath); + if (isBrowser) { + return await fetch(path).then((r) => r.text()); + } else { + const fs = require("fs"); + return await fs.promises.readFile(path, "utf-8"); + } +} +async function _fetchJSONAssets(filepath) { + const errors = []; + const assetString = await _fetchAssets(filepath); + let rawAsset; + try { + rawAsset = JSON.parse(assetString); + } catch (e) { + rawAsset = parse(assetString, errors, { + allowTrailingComma: true + }); + if (errors.length) { + throw errors[0]; + } + } + return rawAsset; +} +async function fetchTheme(themePath) { + let theme = await _fetchJSONAssets(themePath); + const shikiTheme = toShikiTheme(theme); + if (shikiTheme.include) { + const includedTheme = await fetchTheme(join(...dirpathparts(themePath), shikiTheme.include)); + if (includedTheme.settings) { + shikiTheme.settings = includedTheme.settings.concat(shikiTheme.settings); + } + if (includedTheme.bg && !shikiTheme.bg) { + shikiTheme.bg = includedTheme.bg; + } + if (includedTheme.colors) { + shikiTheme.colors = { ...includedTheme.colors, ...shikiTheme.colors }; + } + delete shikiTheme.include; + } + return shikiTheme; +} +async function fetchGrammar(filepath) { + return await _fetchJSONAssets(filepath); +} +function repairTheme(theme) { + if (!theme.settings) + theme.settings = []; + if (theme.settings[0] && theme.settings[0].settings && !theme.settings[0].scope) { + return; + } + theme.settings.unshift({ + settings: { + foreground: theme.fg, + background: theme.bg + } + }); +} +function toShikiTheme(rawTheme) { + const type = rawTheme.type || "dark"; + const shikiTheme = { + name: rawTheme.name, + type, + ...rawTheme, + ...getThemeDefaultColors(rawTheme) + }; + if (rawTheme.include) { + shikiTheme.include = rawTheme.include; + } + if (rawTheme.tokenColors) { + shikiTheme.settings = rawTheme.tokenColors; + delete shikiTheme.tokenColors; + } + repairTheme(shikiTheme); + return shikiTheme; +} +const VSCODE_FALLBACK_EDITOR_FG = { light: "#333333", dark: "#bbbbbb" }; +const VSCODE_FALLBACK_EDITOR_BG = { light: "#fffffe", dark: "#1e1e1e" }; +function getThemeDefaultColors(theme) { + let fg, bg; + let settings = theme.settings ? theme.settings : theme.tokenColors; + const globalSetting = settings ? settings.find((s) => { + return !s.name && !s.scope; + }) : void 0; + if (globalSetting?.settings?.foreground) { + fg = globalSetting.settings.foreground; + } + if (globalSetting?.settings?.background) { + bg = globalSetting.settings.background; + } + if (!fg && theme?.colors?.["editor.foreground"]) { + fg = theme.colors["editor.foreground"]; + } + if (!bg && theme?.colors?.["editor.background"]) { + bg = theme.colors["editor.background"]; + } + if (!fg) { + fg = theme.type === "light" ? VSCODE_FALLBACK_EDITOR_FG.light : VSCODE_FALLBACK_EDITOR_FG.dark; + } + if (!bg) { + bg = theme.type === "light" ? VSCODE_FALLBACK_EDITOR_BG.light : VSCODE_FALLBACK_EDITOR_BG.dark; + } + return { + fg, + bg + }; +} + +class Resolver { + constructor(onigLibPromise, onigLibName) { + this.languagesPath = "languages/"; + this.languageMap = {}; + this.scopeToLangMap = {}; + this._onigLibPromise = onigLibPromise; + this._onigLibName = onigLibName; + } + get onigLib() { + return this._onigLibPromise; + } + getOnigLibName() { + return this._onigLibName; + } + getLangRegistration(langIdOrAlias) { + return this.languageMap[langIdOrAlias]; + } + async loadGrammar(scopeName) { + const lang = this.scopeToLangMap[scopeName]; + if (!lang) { + return null; + } + if (lang.grammar) { + return lang.grammar; + } + const g = await fetchGrammar( + languages.includes(lang) ? `${this.languagesPath}${lang.path}` : lang.path + ); + lang.grammar = g; + return g; + } + addLanguage(l) { + this.languageMap[l.id] = l; + if (l.aliases) { + l.aliases.forEach((a) => { + this.languageMap[a] = l; + }); + } + this.scopeToLangMap[l.scopeName] = l; + } +} + +function tokenizeWithTheme(theme, colorMap, fileContents, grammar, options) { + let lines = fileContents.split(/\r\n|\r|\n/); + let ruleStack = INITIAL; + let actual = []; + let final = []; + for (let i = 0, len = lines.length; i < len; i++) { + let line = lines[i]; + if (line === "") { + actual = []; + final.push([]); + continue; + } + let resultWithScopes; + let tokensWithScopes; + let tokensWithScopesIndex; + if (options.includeExplanation) { + resultWithScopes = grammar.tokenizeLine(line, ruleStack); + tokensWithScopes = resultWithScopes.tokens; + tokensWithScopesIndex = 0; + } + let result = grammar.tokenizeLine2(line, ruleStack); + let tokensLength = result.tokens.length / 2; + for (let j = 0; j < tokensLength; j++) { + let startIndex = result.tokens[2 * j]; + let nextStartIndex = j + 1 < tokensLength ? result.tokens[2 * j + 2] : line.length; + if (startIndex === nextStartIndex) { + continue; + } + let metadata = result.tokens[2 * j + 1]; + let foreground = StackElementMetadata.getForeground(metadata); + let foregroundColor = colorMap[foreground]; + let fontStyle = StackElementMetadata.getFontStyle(metadata); + let explanation = []; + if (options.includeExplanation) { + let offset = 0; + while (startIndex + offset < nextStartIndex) { + let tokenWithScopes = tokensWithScopes[tokensWithScopesIndex]; + let tokenWithScopesText = line.substring( + tokenWithScopes.startIndex, + tokenWithScopes.endIndex + ); + offset += tokenWithScopesText.length; + explanation.push({ + content: tokenWithScopesText, + scopes: explainThemeScopes(theme, tokenWithScopes.scopes) + }); + tokensWithScopesIndex++; + } + } + actual.push({ + content: line.substring(startIndex, nextStartIndex), + color: foregroundColor, + fontStyle, + explanation + }); + } + final.push(actual); + actual = []; + ruleStack = result.ruleStack; + } + return final; +} +function explainThemeScopes(theme, scopes) { + let result = []; + for (let i = 0, len = scopes.length; i < len; i++) { + let parentScopes = scopes.slice(0, i); + let scope = scopes[i]; + result[i] = { + scopeName: scope, + themeMatches: explainThemeScope(theme, scope, parentScopes) + }; + } + return result; +} +function matchesOne(selector, scope) { + let selectorPrefix = selector + "."; + if (selector === scope || scope.substring(0, selectorPrefix.length) === selectorPrefix) { + return true; + } + return false; +} +function matches(selector, selectorParentScopes, scope, parentScopes) { + if (!matchesOne(selector, scope)) { + return false; + } + let selectorParentIndex = selectorParentScopes.length - 1; + let parentIndex = parentScopes.length - 1; + while (selectorParentIndex >= 0 && parentIndex >= 0) { + if (matchesOne(selectorParentScopes[selectorParentIndex], parentScopes[parentIndex])) { + selectorParentIndex--; + } + parentIndex--; + } + if (selectorParentIndex === -1) { + return true; + } + return false; +} +function explainThemeScope(theme, scope, parentScopes) { + let result = [], resultLen = 0; + for (let i = 0, len = theme.settings.length; i < len; i++) { + let setting = theme.settings[i]; + let selectors; + if (typeof setting.scope === "string") { + selectors = setting.scope.split(/,/).map((scope2) => scope2.trim()); + } else if (Array.isArray(setting.scope)) { + selectors = setting.scope; + } else { + continue; + } + for (let j = 0, lenJ = selectors.length; j < lenJ; j++) { + let rawSelector = selectors[j]; + let rawSelectorPieces = rawSelector.split(/ /); + let selector = rawSelectorPieces[rawSelectorPieces.length - 1]; + let selectorParentScopes = rawSelectorPieces.slice(0, rawSelectorPieces.length - 1); + if (matches(selector, selectorParentScopes, scope, parentScopes)) { + result[resultLen++] = setting; + j = lenJ; + } + } + } + return result; +} + +// src/colors.ts +var namedColors = [ + "black", + "red", + "green", + "yellow", + "blue", + "magenta", + "cyan", + "white", + "brightBlack", + "brightRed", + "brightGreen", + "brightYellow", + "brightBlue", + "brightMagenta", + "brightCyan", + "brightWhite" +]; + +// src/decorations.ts +var decorations = { + 1: "bold", + 2: "dim", + 3: "italic", + 4: "underline", + 7: "reverse", + 9: "strikethrough" +}; + +// src/parser.ts +function findSequence(value, position) { + const nextEscape = value.indexOf("\x1B", position); + if (nextEscape !== -1) { + if (value[nextEscape + 1] === "[") { + const nextClose = value.indexOf("m", nextEscape); + return { + sequence: value.substring(nextEscape + 2, nextClose).split(";"), + startPosition: nextEscape, + position: nextClose + 1 + }; + } + } + return { + position: value.length + }; +} +function parseColor(sequence) { + const colorMode = sequence.shift(); + if (colorMode === "2") { + const rgb = sequence.splice(0, 3).map((x) => Number.parseInt(x)); + if (rgb.length !== 3 || rgb.some((x) => Number.isNaN(x))) + return; + return { + type: "rgb", + rgb + }; + } else if (colorMode === "5") { + const index = sequence.shift(); + if (index) { + return { type: "table", index: Number(index) }; + } + } +} +function parseSequence(sequence) { + const commands = []; + while (sequence.length > 0) { + const code = sequence.shift(); + if (!code) + continue; + const codeInt = Number.parseInt(code); + if (Number.isNaN(codeInt)) + continue; + if (codeInt === 0) { + commands.push({ type: "resetAll" }); + } else if (codeInt <= 9) { + const decoration = decorations[codeInt]; + if (decoration) { + commands.push({ + type: "setDecoration", + value: decorations[codeInt] + }); + } + } else if (codeInt <= 29) { + const decoration = decorations[codeInt - 20]; + if (decoration) { + commands.push({ + type: "resetDecoration", + value: decoration + }); + } + } else if (codeInt <= 37) { + commands.push({ + type: "setForegroundColor", + value: { type: "named", name: namedColors[codeInt - 30] } + }); + } else if (codeInt === 38) { + const color = parseColor(sequence); + if (color) { + commands.push({ + type: "setForegroundColor", + value: color + }); + } + } else if (codeInt === 39) { + commands.push({ + type: "resetForegroundColor" + }); + } else if (codeInt <= 47) { + commands.push({ + type: "setBackgroundColor", + value: { type: "named", name: namedColors[codeInt - 40] } + }); + } else if (codeInt === 48) { + const color = parseColor(sequence); + if (color) { + commands.push({ + type: "setBackgroundColor", + value: color + }); + } + } else if (codeInt === 49) { + commands.push({ + type: "resetBackgroundColor" + }); + } else if (codeInt >= 90 && codeInt <= 97) { + commands.push({ + type: "setForegroundColor", + value: { type: "named", name: namedColors[codeInt - 90 + 8] } + }); + } else if (codeInt >= 100 && codeInt <= 107) { + commands.push({ + type: "setBackgroundColor", + value: { type: "named", name: namedColors[codeInt - 100 + 8] } + }); + } + } + return commands; +} +function createAnsiSequenceParser() { + let foreground = null; + let background = null; + let decorations2 = /* @__PURE__ */ new Set(); + return { + parse(value) { + const tokens = []; + let position = 0; + do { + const findResult = findSequence(value, position); + const text = findResult.sequence ? value.substring(position, findResult.startPosition) : value.substring(position); + if (text.length > 0) { + tokens.push({ + value: text, + foreground, + background, + decorations: new Set(decorations2) + }); + } + if (findResult.sequence) { + const commands = parseSequence(findResult.sequence); + for (const styleToken of commands) { + if (styleToken.type === "resetAll") { + foreground = null; + background = null; + decorations2.clear(); + } else if (styleToken.type === "resetForegroundColor") { + foreground = null; + } else if (styleToken.type === "resetBackgroundColor") { + background = null; + } else if (styleToken.type === "resetDecoration") { + decorations2.delete(styleToken.value); + } + } + for (const styleToken of commands) { + if (styleToken.type === "setForegroundColor") { + foreground = styleToken.value; + } else if (styleToken.type === "setBackgroundColor") { + background = styleToken.value; + } else if (styleToken.type === "setDecoration") { + decorations2.add(styleToken.value); + } + } + } + position = findResult.position; + } while (position < value.length); + return tokens; + } + }; +} + +// src/palette.ts +var defaultNamedColorsMap = { + black: "#000000", + red: "#bb0000", + green: "#00bb00", + yellow: "#bbbb00", + blue: "#0000bb", + magenta: "#ff00ff", + cyan: "#00bbbb", + white: "#eeeeee", + brightBlack: "#555555", + brightRed: "#ff5555", + brightGreen: "#00ff00", + brightYellow: "#ffff55", + brightBlue: "#5555ff", + brightMagenta: "#ff55ff", + brightCyan: "#55ffff", + brightWhite: "#ffffff" +}; +function createColorPalette(namedColorsMap = defaultNamedColorsMap) { + function namedColor(name) { + return namedColorsMap[name]; + } + function rgbColor(rgb) { + return `#${rgb.map((x) => Math.max(0, Math.min(x, 255)).toString(16).padStart(2, "0")).join("")}`; + } + let colorTable; + function getColorTable() { + if (colorTable) { + return colorTable; + } + colorTable = []; + for (let i = 0; i < namedColors.length; i++) { + colorTable.push(namedColor(namedColors[i])); + } + let levels = [0, 95, 135, 175, 215, 255]; + for (let r = 0; r < 6; r++) { + for (let g = 0; g < 6; g++) { + for (let b = 0; b < 6; b++) { + colorTable.push(rgbColor([levels[r], levels[g], levels[b]])); + } + } + } + let level = 8; + for (let i = 0; i < 24; i++, level += 10) { + colorTable.push(rgbColor([level, level, level])); + } + return colorTable; + } + function tableColor(index) { + return getColorTable()[index]; + } + function value(color) { + switch (color.type) { + case "named": + return namedColor(color.name); + case "rgb": + return rgbColor(color.rgb); + case "table": + return tableColor(color.index); + } + } + return { + value + }; +} + +function tokenizeAnsiWithTheme(theme, fileContents) { + const lines = fileContents.split(/\r?\n/); + const colorPalette = createColorPalette( + Object.fromEntries( + namedColors.map((name) => [ + name, + theme.colors[`terminal.ansi${name[0].toUpperCase()}${name.substring(1)}`] + ]) + ) + ); + const parser = createAnsiSequenceParser(); + return lines.map( + (line) => parser.parse(line).map((token) => { + let color; + if (token.decorations.has("reverse")) { + color = token.background ? colorPalette.value(token.background) : theme.bg; + } else { + color = token.foreground ? colorPalette.value(token.foreground) : theme.fg; + } + if (token.decorations.has("dim")) { + color = dimColor(color); + } + let fontStyle = FontStyle.None; + if (token.decorations.has("bold")) { + fontStyle |= FontStyle.Bold; + } + if (token.decorations.has("italic")) { + fontStyle |= FontStyle.Italic; + } + if (token.decorations.has("underline")) { + fontStyle |= FontStyle.Underline; + } + return { + content: token.value, + color, + fontStyle + }; + }) + ); +} +function dimColor(color) { + const hexMatch = color.match(/#([0-9a-f]{3})([0-9a-f]{3})?([0-9a-f]{2})?/); + if (hexMatch) { + if (hexMatch[3]) { + const alpha = Math.round(Number.parseInt(hexMatch[3], 16) / 2).toString(16).padStart(2, "0"); + return `#${hexMatch[1]}${hexMatch[2]}${alpha}`; + } else if (hexMatch[2]) { + return `#${hexMatch[1]}${hexMatch[2]}80`; + } else { + return `#${Array.from(hexMatch[1]).map((x) => `${x}${x}`).join("")}80`; + } + } + const cssVarMatch = color.match(/var\((--shiki-color-ansi-[\w-]+)\)/); + if (cssVarMatch) { + return `var(${cssVarMatch[1]}-dim)`; + } + return color; +} + +const defaultElements = { + pre({ className, style, children }) { + return `
${children}
`; + }, + code({ children }) { + return `${children}`; + }, + line({ className, children }) { + return `${children}`; + }, + token({ style, children }) { + return `${children}`; + } +}; +function renderToHtml(lines, options = {}) { + const bg = options.bg || "#fff"; + const optionsByLineNumber = groupBy(options.lineOptions ?? [], (option) => option.line); + const userElements = options.elements || {}; + function h(type = "", props = {}, children) { + const element = userElements[type] || defaultElements[type]; + if (element) { + children = children.filter(Boolean); + return element({ + ...props, + children: type === "code" ? children.join("\n") : children.join("") + }); + } + return ""; + } + return h( + "pre", + { className: "shiki " + (options.themeName || ""), style: `background-color: ${bg}` }, + [ + options.langId ? `
${options.langId}
` : "", + h( + "code", + {}, + lines.map((line, index) => { + const lineNumber = index + 1; + const lineOptions = optionsByLineNumber.get(lineNumber) ?? []; + const lineClasses = getLineClasses(lineOptions).join(" "); + return h( + "line", + { + className: lineClasses, + lines, + line, + index + }, + line.map((token, index2) => { + const cssDeclarations = [`color: ${token.color || options.fg}`]; + if (token.fontStyle & FontStyle.Italic) { + cssDeclarations.push("font-style: italic"); + } + if (token.fontStyle & FontStyle.Bold) { + cssDeclarations.push("font-weight: bold"); + } + if (token.fontStyle & FontStyle.Underline) { + cssDeclarations.push("text-decoration: underline"); + } + return h( + "token", + { + style: cssDeclarations.join("; "), + tokens: line, + token, + index: index2 + }, + [escapeHtml(token.content)] + ); + }) + ); + }) + ) + ] + ); +} +const htmlEscapes = { + "&": "&", + "<": "<", + ">": ">", + '"': """, + "'": "'" +}; +function escapeHtml(html) { + return html.replace(/[&<>"']/g, (chr) => htmlEscapes[chr]); +} +function getLineClasses(lineOptions) { + const lineClasses = /* @__PURE__ */ new Set(["line"]); + for (const lineOption of lineOptions) { + for (const lineClass of lineOption.classes ?? []) { + lineClasses.add(lineClass); + } + } + return Array.from(lineClasses); +} + +class Registry extends Registry$1 { + constructor(_resolver) { + super(_resolver); + this._resolver = _resolver; + this.themesPath = "themes/"; + this._resolvedThemes = {}; + this._resolvedGrammars = {}; + this._langGraph = /* @__PURE__ */ new Map(); + this._langMap = languages.reduce((acc, lang) => { + acc[lang.id] = lang; + return acc; + }, {}); + } + getTheme(theme) { + if (typeof theme === "string") { + return this._resolvedThemes[theme]; + } else { + return theme; + } + } + async loadTheme(theme) { + if (typeof theme === "string") { + if (!this._resolvedThemes[theme]) { + this._resolvedThemes[theme] = await fetchTheme(`${this.themesPath}${theme}.json`); + } + return this._resolvedThemes[theme]; + } else { + theme = toShikiTheme(theme); + if (theme.name) { + this._resolvedThemes[theme.name] = theme; + } + return theme; + } + } + async loadThemes(themes) { + return await Promise.all(themes.map((theme) => this.loadTheme(theme))); + } + getLoadedThemes() { + return Object.keys(this._resolvedThemes); + } + getGrammar(name) { + return this._resolvedGrammars[name]; + } + async loadLanguage(lang) { + const embeddedLanguages = lang.embeddedLangs?.reduce(async (acc, l, idx) => { + if (!this.getLoadedLanguages().includes(l) && this._resolver.getLangRegistration(l)) { + await this._resolver.loadGrammar(this._resolver.getLangRegistration(l).scopeName); + acc[this._resolver.getLangRegistration(l).scopeName] = idx + 2; + return acc; + } + }, {}); + const grammarConfig = { + embeddedLanguages, + balancedBracketSelectors: lang.balancedBracketSelectors || ["*"], + unbalancedBracketSelectors: lang.unbalancedBracketSelectors || [] + }; + const g = await this.loadGrammarWithConfiguration(lang.scopeName, 1, grammarConfig); + this._resolvedGrammars[lang.id] = g; + if (lang.aliases) { + lang.aliases.forEach((la) => { + this._resolvedGrammars[la] = g; + }); + } + } + async loadLanguages(langs) { + for (const lang of langs) { + this.resolveEmbeddedLanguages(lang); + } + const langsGraphArray = Array.from(this._langGraph.values()); + for (const lang of langsGraphArray) { + this._resolver.addLanguage(lang); + } + for (const lang of langsGraphArray) { + await this.loadLanguage(lang); + } + } + getLoadedLanguages() { + return Object.keys(this._resolvedGrammars); + } + resolveEmbeddedLanguages(lang) { + if (!this._langGraph.has(lang.id)) { + this._langGraph.set(lang.id, lang); + } + if (lang.embeddedLangs) { + for (const embeddedLang of lang.embeddedLangs) { + this._langGraph.set(embeddedLang, this._langMap[embeddedLang]); + } + } + } +} + +function resolveLang(lang) { + return typeof lang === "string" ? languages.find((l) => l.id === lang || l.aliases?.includes(lang)) : lang; +} +function resolveOptions(options) { + let _languages = languages; + let _themes = options.themes || []; + let _wasmPath = options.paths?.wasm ? options.paths.wasm.endsWith("/") ? options.paths.wasm : options.paths.wasm + "/" : WASM_PATH; + if (options.langs) { + _languages = options.langs.map(resolveLang); + } + if (options.theme) { + _themes.unshift(options.theme); + } + if (!_themes.length) { + _themes = ["nord"]; + } + return { _languages, _themes, _wasmPath }; +} +function generateDefaultColorReplacements() { + const replacements = { + "#000001": "var(--shiki-color-text)", + "#000002": "var(--shiki-color-background)", + "#000004": "var(--shiki-token-constant)", + "#000005": "var(--shiki-token-string)", + "#000006": "var(--shiki-token-comment)", + "#000007": "var(--shiki-token-keyword)", + "#000008": "var(--shiki-token-parameter)", + "#000009": "var(--shiki-token-function)", + "#000010": "var(--shiki-token-string-expression)", + "#000011": "var(--shiki-token-punctuation)", + "#000012": "var(--shiki-token-link)" + }; + for (let i = 0; i < namedColors.length; i++) { + const code = `#A${i.toString().padStart(5, "0")}`; + const colorNameKebab = namedColors[i].replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase(); + replacements[code] = `var(--shiki-color-ansi-${colorNameKebab})`; + } + return replacements; +} +async function getHighlighter(options) { + const { _languages, _themes, _wasmPath } = resolveOptions(options); + const _resolver = new Resolver(getOniguruma(_wasmPath), "vscode-oniguruma"); + const _registry = new Registry(_resolver); + if (options.paths?.themes) { + _registry.themesPath = options.paths.themes.endsWith("/") ? options.paths.themes : options.paths.themes + "/"; + } + if (options.paths?.languages) { + _resolver.languagesPath = options.paths.languages.endsWith("/") ? options.paths.languages : options.paths.languages + "/"; + } + const themes = await _registry.loadThemes(_themes); + const _defaultTheme = themes[0]; + let _currentTheme; + await _registry.loadLanguages(_languages); + let COLOR_REPLACEMENTS = generateDefaultColorReplacements(); + function setColorReplacements(map) { + COLOR_REPLACEMENTS = map; + } + function fixCssVariablesTheme(theme, colorMap) { + theme.bg = COLOR_REPLACEMENTS[theme.bg] || theme.bg; + theme.fg = COLOR_REPLACEMENTS[theme.fg] || theme.fg; + Object.entries(theme.colors).forEach(([key, value]) => { + theme.colors[key] = COLOR_REPLACEMENTS[value] || value; + }); + colorMap.forEach((val, i) => { + colorMap[i] = COLOR_REPLACEMENTS[val] || val; + }); + } + function getTheme(theme) { + const _theme = theme ? _registry.getTheme(theme) : _defaultTheme; + if (!_theme) { + throw Error(`No theme registration for ${theme}`); + } + if (!_currentTheme || _currentTheme.name !== _theme.name) { + _registry.setTheme(_theme); + _currentTheme = _theme; + } + const _colorMap = _registry.getColorMap(); + if (_theme.type === "css") { + fixCssVariablesTheme(_theme, _colorMap); + } + return { _theme, _colorMap }; + } + function getGrammar(lang) { + const _grammar = _registry.getGrammar(lang); + if (!_grammar) { + throw Error(`No language registration for ${lang}`); + } + return { _grammar }; + } + function codeToThemedTokens(code, lang = "text", theme, options2 = { includeExplanation: true }) { + if (isPlaintext(lang)) { + const lines = code.split(/\r\n|\r|\n/); + return [...lines.map((line) => [{ content: line }])]; + } + const { _grammar } = getGrammar(lang); + const { _theme, _colorMap } = getTheme(theme); + return tokenizeWithTheme(_theme, _colorMap, code, _grammar, options2); + } + function ansiToThemedTokens(ansi, theme) { + const { _theme } = getTheme(theme); + return tokenizeAnsiWithTheme(_theme, ansi); + } + function codeToHtml(code, arg1 = "text", arg2) { + let options2; + if (typeof arg1 === "object") { + options2 = arg1; + } else { + options2 = { + lang: arg1, + theme: arg2 + }; + } + const tokens = codeToThemedTokens(code, options2.lang, options2.theme, { + includeExplanation: false + }); + const { _theme } = getTheme(options2.theme); + return renderToHtml(tokens, { + fg: _theme.fg, + bg: _theme.bg, + lineOptions: options2?.lineOptions, + themeName: _theme.name + }); + } + function ansiToHtml(ansi, options2) { + const tokens = ansiToThemedTokens(ansi, options2?.theme); + const { _theme } = getTheme(options2?.theme); + return renderToHtml(tokens, { + fg: _theme.fg, + bg: _theme.bg, + lineOptions: options2?.lineOptions, + themeName: _theme.name + }); + } + async function loadTheme(theme) { + await _registry.loadTheme(theme); + } + async function loadLanguage(lang) { + const _lang = resolveLang(lang); + _resolver.addLanguage(_lang); + await _registry.loadLanguage(_lang); + } + function getLoadedThemes() { + return _registry.getLoadedThemes(); + } + function getLoadedLanguages() { + return _registry.getLoadedLanguages(); + } + function getBackgroundColor(theme) { + const { _theme } = getTheme(theme); + return _theme.bg; + } + function getForegroundColor(theme) { + const { _theme } = getTheme(theme); + return _theme.fg; + } + return { + codeToThemedTokens, + codeToHtml, + ansiToThemedTokens, + ansiToHtml, + getTheme: (theme) => { + return getTheme(theme)._theme; + }, + loadTheme, + loadLanguage, + getBackgroundColor, + getForegroundColor, + getLoadedThemes, + getLoadedLanguages, + setColorReplacements + }; +} +function isPlaintext(lang) { + return !lang || ["plaintext", "txt", "text"].includes(lang); +} + +function setOnigasmWASM(path) { + setWasm(path); +} + +export { languages as BUNDLED_LANGUAGES, themes as BUNDLED_THEMES, FontStyle, getHighlighter, fetchTheme as loadTheme, renderToHtml, setCDN, setOnigasmWASM, setWasm, toShikiTheme }; diff --git a/docs/shiki/dist/index.js b/docs/shiki/dist/index.js new file mode 100644 index 00000000..1025b594 --- /dev/null +++ b/docs/shiki/dist/index.js @@ -0,0 +1,3274 @@ +'use strict'; + +var vscodeOniguruma = require('vscode-oniguruma'); +var vscodeTextmate = require('vscode-textmate'); + +const themes = [ + "css-variables", + "dark-plus", + "dracula-soft", + "dracula", + "github-dark-dimmed", + "github-dark", + "github-light", + "hc_light", + "light-plus", + "material-theme-darker", + "material-theme-lighter", + "material-theme-ocean", + "material-theme-palenight", + "material-theme", + "min-dark", + "min-light", + "monokai", + "nord", + "one-dark-pro", + "poimandres", + "rose-pine-dawn", + "rose-pine-moon", + "rose-pine", + "slack-dark", + "slack-ochin", + "solarized-dark", + "solarized-light", + "vitesse-dark", + "vitesse-light" +]; + +const languages = [ + { + id: "abap", + scopeName: "source.abap", + path: "abap.tmLanguage.json", + displayName: "ABAP", + samplePath: "abap.sample" + }, + { + id: "actionscript-3", + scopeName: "source.actionscript.3", + path: "actionscript-3.tmLanguage.json", + displayName: "ActionScript", + samplePath: "actionscript-3.sample" + }, + { + id: "ada", + scopeName: "source.ada", + path: "ada.tmLanguage.json", + displayName: "Ada", + samplePath: "ada.sample" + }, + { + id: "apache", + scopeName: "source.apacheconf", + path: "apache.tmLanguage.json", + displayName: "Apache Conf", + samplePath: "apache.sample" + }, + { + id: "apex", + scopeName: "source.apex", + path: "apex.tmLanguage.json", + displayName: "Apex", + samplePath: "apex.sample" + }, + { + id: "apl", + scopeName: "source.apl", + path: "apl.tmLanguage.json", + displayName: "APL", + samplePath: "apl.sample", + embeddedLangs: ["html", "xml", "css", "javascript", "json"] + }, + { + id: "applescript", + scopeName: "source.applescript", + path: "applescript.tmLanguage.json", + displayName: "AppleScript", + samplePath: "applescript.sample" + }, + { + id: "ara", + scopeName: "source.ara", + path: "ara.tmLanguage.json", + displayName: "Ara", + samplePath: "ara.sample" + }, + { + id: "asm", + scopeName: "source.asm.x86_64", + path: "asm.tmLanguage.json", + displayName: "Assembly", + samplePath: "asm.sample" + }, + { + id: "astro", + scopeName: "source.astro", + path: "astro.tmLanguage.json", + displayName: "Astro", + samplePath: "astro.sample", + embeddedLangs: ["json", "javascript", "typescript", "stylus", "sass", "css", "scss", "less", "postcss", "tsx"] + }, + { + id: "awk", + scopeName: "source.awk", + path: "awk.tmLanguage.json", + displayName: "AWK", + samplePath: "awk.sample" + }, + { + id: "ballerina", + scopeName: "source.ballerina", + path: "ballerina.tmLanguage.json", + displayName: "Ballerina", + samplePath: "ballerina.sample" + }, + { + id: "bat", + scopeName: "source.batchfile", + path: "bat.tmLanguage.json", + displayName: "Batch", + samplePath: "bat.sample", + aliases: ["batch"] + }, + { + id: "beancount", + scopeName: "text.beancount", + path: "beancount.tmLanguage.json", + displayName: "Beancount", + samplePath: "beancount.sample" + }, + { + id: "berry", + scopeName: "source.berry", + path: "berry.tmLanguage.json", + displayName: "Berry", + samplePath: "berry.sample", + aliases: ["be"] + }, + { + id: "bibtex", + scopeName: "text.bibtex", + path: "bibtex.tmLanguage.json", + displayName: "BibTeX", + samplePath: "bibtex.sample" + }, + { + id: "bicep", + scopeName: "source.bicep", + path: "bicep.tmLanguage.json", + displayName: "Bicep", + samplePath: "bicep.sample" + }, + { + id: "blade", + scopeName: "text.html.php.blade", + path: "blade.tmLanguage.json", + displayName: "Blade", + samplePath: "blade.sample", + embeddedLangs: ["html", "xml", "sql", "javascript", "json", "css"] + }, + { + id: "c", + scopeName: "source.c", + path: "c.tmLanguage.json", + displayName: "C", + samplePath: "c.sample" + }, + { + id: "cadence", + scopeName: "source.cadence", + path: "cadence.tmLanguage.json", + displayName: "Cadence", + samplePath: "cadence.sample", + aliases: ["cdc"] + }, + { + id: "clarity", + scopeName: "source.clar", + path: "clarity.tmLanguage.json", + displayName: "Clarity", + samplePath: "clarity.sample" + }, + { + id: "clojure", + scopeName: "source.clojure", + path: "clojure.tmLanguage.json", + displayName: "Clojure", + samplePath: "clojure.sample", + aliases: ["clj"] + }, + { + id: "cmake", + scopeName: "source.cmake", + path: "cmake.tmLanguage.json", + displayName: "CMake", + samplePath: "cmake.sample" + }, + { + id: "cobol", + scopeName: "source.cobol", + path: "cobol.tmLanguage.json", + displayName: "COBOL", + samplePath: "cobol.sample", + embeddedLangs: ["sql", "html", "java"] + }, + { + id: "codeql", + scopeName: "source.ql", + path: "codeql.tmLanguage.json", + displayName: "CodeQL", + samplePath: "codeql.sample", + aliases: ["ql"] + }, + { + id: "coffee", + scopeName: "source.coffee", + path: "coffee.tmLanguage.json", + displayName: "CoffeeScript", + samplePath: "coffee.sample", + embeddedLangs: ["javascript"] + }, + { + id: "cpp", + scopeName: "source.cpp", + path: "cpp.tmLanguage.json", + displayName: "C++", + samplePath: "cpp.sample", + aliases: ["c++"], + embeddedLangs: ["glsl", "sql"] + }, + { + id: "crystal", + scopeName: "source.crystal", + path: "crystal.tmLanguage.json", + displayName: "Crystal", + samplePath: "crystal.sample", + embeddedLangs: ["html", "sql", "css", "c", "javascript", "shellscript"] + }, + { + id: "csharp", + scopeName: "source.cs", + path: "csharp.tmLanguage.json", + displayName: "C#", + samplePath: "csharp.sample", + aliases: ["c#", "cs"] + }, + { + id: "css", + scopeName: "source.css", + path: "css.tmLanguage.json", + displayName: "CSS", + samplePath: "css.sample" + }, + { + id: "cue", + scopeName: "source.cue", + path: "cue.tmLanguage.json", + displayName: "CUE", + samplePath: "cue.sample" + }, + { + id: "cypher", + scopeName: "source.cypher", + path: "cypher.tmLanguage.json", + displayName: "Cypher", + samplePath: "cypher.sample", + aliases: ["cql"] + }, + { + id: "d", + scopeName: "source.d", + path: "d.tmLanguage.json", + displayName: "D", + samplePath: "d.sample" + }, + { + id: "dart", + scopeName: "source.dart", + path: "dart.tmLanguage.json", + displayName: "Dart", + samplePath: "dart.sample" + }, + { + id: "dax", + scopeName: "source.dax", + path: "dax.tmLanguage.json", + displayName: "DAX", + samplePath: "dax.sample" + }, + { + id: "diff", + scopeName: "source.diff", + path: "diff.tmLanguage.json", + displayName: "Diff", + samplePath: "diff.sample" + }, + { + id: "docker", + scopeName: "source.dockerfile", + path: "docker.tmLanguage.json", + displayName: "Docker", + samplePath: "docker.sample", + aliases: ["dockerfile"] + }, + { + id: "dream-maker", + scopeName: "source.dm", + path: "dream-maker.tmLanguage.json", + displayName: "Dream Maker", + samplePath: "dream-maker.sample" + }, + { + id: "elixir", + scopeName: "source.elixir", + path: "elixir.tmLanguage.json", + displayName: "Elixir", + samplePath: "elixir.sample", + embeddedLangs: ["html"] + }, + { + id: "elm", + scopeName: "source.elm", + path: "elm.tmLanguage.json", + displayName: "Elm", + samplePath: "elm.sample", + embeddedLangs: ["glsl"] + }, + { + id: "erb", + scopeName: "text.html.erb", + path: "erb.tmLanguage.json", + displayName: "ERB", + samplePath: "erb.sample", + embeddedLangs: ["html", "ruby"] + }, + { + id: "erlang", + scopeName: "source.erlang", + path: "erlang.tmLanguage.json", + displayName: "Erlang", + samplePath: "erlang.sample", + aliases: ["erl"] + }, + { + id: "fish", + scopeName: "source.fish", + path: "fish.tmLanguage.json", + displayName: "Fish", + samplePath: "fish.sample" + }, + { + id: "fsharp", + scopeName: "source.fsharp", + path: "fsharp.tmLanguage.json", + displayName: "F#", + samplePath: "fsharp.sample", + aliases: ["f#", "fs"], + embeddedLangs: ["markdown"] + }, + { + id: "gdresource", + scopeName: "source.gdresource", + path: "gdresource.tmLanguage.json", + displayName: "GDResource", + samplePath: "gdresource.sample", + embeddedLangs: ["gdshader", "gdscript"] + }, + { + id: "gdscript", + scopeName: "source.gdscript", + path: "gdscript.tmLanguage.json", + displayName: "GDScript", + samplePath: "gdscript.sample" + }, + { + id: "gdshader", + scopeName: "source.gdshader", + path: "gdshader.tmLanguage.json", + displayName: "GDShader", + samplePath: "gdshader.sample" + }, + { + id: "gherkin", + scopeName: "text.gherkin.feature", + path: "gherkin.tmLanguage.json", + displayName: "Gherkin", + samplePath: "gherkin.sample" + }, + { + id: "git-commit", + scopeName: "text.git-commit", + path: "git-commit.tmLanguage.json", + displayName: "Git Commit Message", + embeddedLangs: ["diff"] + }, + { + id: "git-rebase", + scopeName: "text.git-rebase", + path: "git-rebase.tmLanguage.json", + displayName: "Git Rebase Message", + embeddedLangs: ["shellscript"] + }, + { + id: "glimmer-js", + scopeName: "source.gjs", + path: "glimmer-js.tmLanguage.json", + displayName: "Glimmer JS", + aliases: ["gjs"], + embeddedLangs: ["javascript", "handlebars"] + }, + { + id: "glimmer-ts", + scopeName: "source.gts", + path: "glimmer-ts.tmLanguage.json", + displayName: "Glimmer TS", + aliases: ["gts"], + embeddedLangs: ["typescript", "handlebars"] + }, + { + id: "glsl", + scopeName: "source.glsl", + path: "glsl.tmLanguage.json", + displayName: "GLSL", + samplePath: "glsl.sample", + embeddedLangs: ["c"] + }, + { + id: "gnuplot", + scopeName: "source.gnuplot", + path: "gnuplot.tmLanguage.json", + displayName: "Gnuplot", + samplePath: "gnuplot.sample" + }, + { + id: "go", + scopeName: "source.go", + path: "go.tmLanguage.json", + displayName: "Go", + samplePath: "go.sample" + }, + { + id: "graphql", + scopeName: "source.graphql", + path: "graphql.tmLanguage.json", + displayName: "GraphQL", + samplePath: "graphql.sample", + aliases: ["gql"], + embeddedLangs: ["javascript", "typescript", "jsx", "tsx"] + }, + { + id: "groovy", + scopeName: "source.groovy", + path: "groovy.tmLanguage.json", + displayName: "Groovy", + samplePath: "groovy.sample" + }, + { + id: "hack", + scopeName: "source.hack", + path: "hack.tmLanguage.json", + displayName: "Hack", + samplePath: "hack.sample", + embeddedLangs: ["html", "sql"] + }, + { + id: "haml", + scopeName: "text.haml", + path: "haml.tmLanguage.json", + displayName: "Ruby Haml", + samplePath: "haml.sample", + embeddedLangs: ["ruby", "javascript", "sass", "coffee", "markdown", "css"] + }, + { + id: "handlebars", + scopeName: "text.html.handlebars", + path: "handlebars.tmLanguage.json", + displayName: "Handlebars", + samplePath: "handlebars.sample", + aliases: ["hbs"], + embeddedLangs: ["html", "css", "javascript", "yaml"] + }, + { + id: "haskell", + scopeName: "source.haskell", + path: "haskell.tmLanguage.json", + displayName: "Haskell", + samplePath: "haskell.sample", + aliases: ["hs"] + }, + { + id: "hcl", + scopeName: "source.hcl", + path: "hcl.tmLanguage.json", + displayName: "HashiCorp HCL", + samplePath: "hcl.sample" + }, + { + id: "hjson", + scopeName: "source.hjson", + path: "hjson.tmLanguage.json", + displayName: "Hjson", + samplePath: "hjson.sample" + }, + { + id: "hlsl", + scopeName: "source.hlsl", + path: "hlsl.tmLanguage.json", + displayName: "HLSL", + samplePath: "hlsl.sample" + }, + { + id: "html", + scopeName: "text.html.basic", + path: "html.tmLanguage.json", + displayName: "HTML", + samplePath: "html.sample", + embeddedLangs: ["javascript", "css"] + }, + { + id: "http", + scopeName: "source.http", + path: "http.tmLanguage.json", + displayName: "HTTP", + samplePath: "http.sample", + embeddedLangs: ["shellscript", "json", "xml", "graphql"] + }, + { + id: "imba", + scopeName: "source.imba", + path: "imba.tmLanguage.json", + displayName: "Imba", + samplePath: "imba.sample" + }, + { + id: "ini", + scopeName: "source.ini", + path: "ini.tmLanguage.json", + displayName: "INI", + samplePath: "ini.sample", + aliases: ["properties"] + }, + { + id: "java", + scopeName: "source.java", + path: "java.tmLanguage.json", + displayName: "Java", + samplePath: "java.sample" + }, + { + id: "javascript", + scopeName: "source.js", + path: "javascript.tmLanguage.json", + displayName: "JavaScript", + samplePath: "javascript.sample", + aliases: ["js"] + }, + { + id: "jinja-html", + scopeName: "text.html.jinja", + path: "jinja-html.tmLanguage.json", + displayName: "Jinja", + samplePath: "jinja-html.sample", + embeddedLangs: ["html"] + }, + { + id: "jison", + scopeName: "source.jison", + path: "jison.tmLanguage.json", + displayName: "Jison", + samplePath: "jison.sample", + embeddedLangs: ["javascript"] + }, + { + id: "json", + scopeName: "source.json", + path: "json.tmLanguage.json", + displayName: "JSON", + samplePath: "json.sample" + }, + { + id: "json5", + scopeName: "source.json5", + path: "json5.tmLanguage.json", + displayName: "JSON5", + samplePath: "json5.sample" + }, + { + id: "jsonc", + scopeName: "source.json.comments", + path: "jsonc.tmLanguage.json", + displayName: "JSON with Comments", + samplePath: "jsonc.sample" + }, + { + id: "jsonl", + scopeName: "source.json.lines", + path: "jsonl.tmLanguage.json", + displayName: "JSON Lines", + samplePath: "jsonl.sample" + }, + { + id: "jsonnet", + scopeName: "source.jsonnet", + path: "jsonnet.tmLanguage.json", + displayName: "Jsonnet", + samplePath: "jsonnet.sample" + }, + { + id: "jssm", + scopeName: "source.jssm", + path: "jssm.tmLanguage.json", + displayName: "JSSM", + samplePath: "jssm.sample", + aliases: ["fsl"] + }, + { + id: "jsx", + scopeName: "source.js.jsx", + path: "jsx.tmLanguage.json", + displayName: "JSX", + samplePath: "jsx.sample" + }, + { + id: "julia", + scopeName: "source.julia", + path: "julia.tmLanguage.json", + displayName: "Julia", + samplePath: "julia.sample", + embeddedLangs: ["cpp", "python", "javascript", "r", "sql"] + }, + { + id: "kotlin", + scopeName: "source.kotlin", + path: "kotlin.tmLanguage.json", + displayName: "Kotlin", + samplePath: "kotlin.sample", + aliases: ["kt", "kts"] + }, + { + id: "kusto", + scopeName: "source.kusto", + path: "kusto.tmLanguage.json", + displayName: "Kusto", + samplePath: "kusto.sample", + aliases: ["kql"] + }, + { + id: "latex", + scopeName: "text.tex.latex", + path: "latex.tmLanguage.json", + displayName: "LaTeX", + samplePath: "latex.sample", + embeddedLangs: ["tex", "css", "haskell", "html", "xml", "java", "lua", "julia", "ruby", "javascript", "typescript", "python", "yaml", "rust", "scala", "gnuplot"] + }, + { + id: "less", + scopeName: "source.css.less", + path: "less.tmLanguage.json", + displayName: "Less", + samplePath: "less.sample", + embeddedLangs: ["css"] + }, + { + id: "liquid", + scopeName: "text.html.liquid", + path: "liquid.tmLanguage.json", + displayName: "Liquid", + samplePath: "liquid.sample", + embeddedLangs: ["html", "css", "json", "javascript"] + }, + { + id: "lisp", + scopeName: "source.lisp", + path: "lisp.tmLanguage.json", + displayName: "Lisp", + samplePath: "lisp.sample" + }, + { + id: "logo", + scopeName: "source.logo", + path: "logo.tmLanguage.json", + displayName: "Logo", + samplePath: "logo.sample" + }, + { + id: "lua", + scopeName: "source.lua", + path: "lua.tmLanguage.json", + displayName: "Lua", + samplePath: "lua.sample", + embeddedLangs: ["c"] + }, + { + id: "make", + scopeName: "source.makefile", + path: "make.tmLanguage.json", + displayName: "Makefile", + samplePath: "make.sample", + aliases: ["makefile"] + }, + { + id: "markdown", + scopeName: "text.html.markdown", + path: "markdown.tmLanguage.json", + displayName: "Markdown", + samplePath: "markdown.sample", + aliases: ["md"], + embeddedLangs: ["css", "html", "ini", "java", "lua", "make", "perl", "r", "ruby", "php", "sql", "vb", "xml", "xsl", "yaml", "bat", "clojure", "coffee", "c", "cpp", "diff", "docker", "git-commit", "git-rebase", "go", "groovy", "pug", "javascript", "json", "jsonc", "less", "objective-c", "swift", "scss", "raku", "powershell", "python", "julia", "rust", "scala", "shellscript", "typescript", "tsx", "csharp", "fsharp", "dart", "handlebars", "erlang", "elixir", "latex", "bibtex"] + }, + { + id: "marko", + scopeName: "text.marko", + path: "marko.tmLanguage.json", + displayName: "Marko", + samplePath: "marko.sample", + embeddedLangs: ["css", "less", "scss", "javascript"] + }, + { + id: "matlab", + scopeName: "source.matlab", + path: "matlab.tmLanguage.json", + displayName: "MATLAB", + samplePath: "matlab.sample" + }, + { + id: "mdc", + scopeName: "text.markdown.mdc", + path: "mdc.tmLanguage.json", + displayName: "mdc", + samplePath: "mdc.sample", + embeddedLangs: ["markdown", "yaml"] + }, + { + id: "mdx", + scopeName: "source.mdx", + path: "mdx.tmLanguage.json", + displayName: "MDX", + samplePath: "mdx.sample", + embeddedLangs: ["tsx", "toml", "yaml", "c", "clojure", "coffee", "cpp", "csharp", "css", "diff", "docker", "elixir", "elm", "erlang", "go", "graphql", "haskell", "html", "ini", "java", "javascript", "json", "julia", "kotlin", "less", "lua", "make", "markdown", "objective-c", "perl", "python", "r", "ruby", "rust", "scala", "scss", "shellscript", "shellsession", "sql", "xml", "swift", "typescript"] + }, + { + id: "mermaid", + scopeName: "source.mermaid", + path: "mermaid.tmLanguage.json", + displayName: "Mermaid", + samplePath: "mermaid.sample" + }, + { + id: "mojo", + scopeName: "source.mojo", + path: "mojo.tmLanguage.json", + displayName: "MagicPython", + samplePath: "mojo.sample" + }, + { + id: "narrat", + scopeName: "source.narrat", + path: "narrat.tmLanguage.json", + displayName: "Narrat Language", + samplePath: "narrat.sample", + aliases: ["nar"] + }, + { + id: "nextflow", + scopeName: "source.nextflow", + path: "nextflow.tmLanguage.json", + displayName: "Nextflow", + samplePath: "nextflow.sample", + aliases: ["nf"] + }, + { + id: "nginx", + scopeName: "source.nginx", + path: "nginx.tmLanguage.json", + displayName: "Nginx", + samplePath: "nginx.sample", + embeddedLangs: ["lua"] + }, + { + id: "nim", + scopeName: "source.nim", + path: "nim.tmLanguage.json", + displayName: "Nim", + samplePath: "nim.sample", + embeddedLangs: ["c", "html", "xml", "javascript", "css", "glsl", "markdown"] + }, + { + id: "nix", + scopeName: "source.nix", + path: "nix.tmLanguage.json", + displayName: "Nix", + samplePath: "nix.sample" + }, + { + id: "objective-c", + scopeName: "source.objc", + path: "objective-c.tmLanguage.json", + displayName: "Objective-C", + samplePath: "objective-c.sample", + aliases: ["objc"] + }, + { + id: "objective-cpp", + scopeName: "source.objcpp", + path: "objective-cpp.tmLanguage.json", + displayName: "Objective-C++", + samplePath: "objective-cpp.sample" + }, + { + id: "ocaml", + scopeName: "source.ocaml", + path: "ocaml.tmLanguage.json", + displayName: "OCaml", + samplePath: "ocaml.sample" + }, + { + id: "pascal", + scopeName: "source.pascal", + path: "pascal.tmLanguage.json", + displayName: "Pascal", + samplePath: "pascal.sample" + }, + { + id: "perl", + scopeName: "source.perl", + path: "perl.tmLanguage.json", + displayName: "Perl", + samplePath: "perl.sample", + embeddedLangs: ["html", "xml", "css", "javascript", "sql"] + }, + { + id: "php", + scopeName: "source.php", + path: "php.tmLanguage.json", + displayName: "PHP", + samplePath: "php.sample", + embeddedLangs: ["html", "xml", "sql", "javascript", "json", "css"] + }, + { + id: "plsql", + scopeName: "source.plsql.oracle", + path: "plsql.tmLanguage.json", + displayName: "PL/SQL", + samplePath: "plsql.sample" + }, + { + id: "postcss", + scopeName: "source.css.postcss", + path: "postcss.tmLanguage.json", + displayName: "PostCSS", + samplePath: "postcss.sample" + }, + { + id: "powerquery", + scopeName: "source.powerquery", + path: "powerquery.tmLanguage.json", + displayName: "PowerQuery", + samplePath: "powerquery.sample" + }, + { + id: "powershell", + scopeName: "source.powershell", + path: "powershell.tmLanguage.json", + displayName: "PowerShell", + samplePath: "powershell.sample", + aliases: ["ps", "ps1"] + }, + { + id: "prisma", + scopeName: "source.prisma", + path: "prisma.tmLanguage.json", + displayName: "Prisma", + samplePath: "prisma.sample" + }, + { + id: "prolog", + scopeName: "source.prolog", + path: "prolog.tmLanguage.json", + displayName: "Prolog", + samplePath: "prolog.sample" + }, + { + id: "proto", + scopeName: "source.proto", + path: "proto.tmLanguage.json", + displayName: "Protocol Buffer 3", + samplePath: "proto.sample" + }, + { + id: "pug", + scopeName: "text.pug", + path: "pug.tmLanguage.json", + displayName: "Pug", + samplePath: "pug.sample", + aliases: ["jade"], + embeddedLangs: ["javascript", "css", "sass", "scss", "stylus", "coffee", "html"] + }, + { + id: "puppet", + scopeName: "source.puppet", + path: "puppet.tmLanguage.json", + displayName: "Puppet", + samplePath: "puppet.sample" + }, + { + id: "purescript", + scopeName: "source.purescript", + path: "purescript.tmLanguage.json", + displayName: "PureScript", + samplePath: "purescript.sample" + }, + { + id: "python", + scopeName: "source.python", + path: "python.tmLanguage.json", + displayName: "Python", + samplePath: "python.sample", + aliases: ["py"] + }, + { + id: "r", + scopeName: "source.r", + path: "r.tmLanguage.json", + displayName: "R", + samplePath: "r.sample" + }, + { + id: "raku", + scopeName: "source.perl.6", + path: "raku.tmLanguage.json", + displayName: "Raku", + samplePath: "raku.sample", + aliases: ["perl6"] + }, + { + id: "razor", + scopeName: "text.aspnetcorerazor", + path: "razor.tmLanguage.json", + displayName: "ASP.NET Razor", + samplePath: "razor.sample", + embeddedLangs: ["html", "csharp"] + }, + { + id: "reg", + scopeName: "source.reg", + path: "reg.tmLanguage.json", + displayName: "Windows Registry Script", + samplePath: "reg.sample" + }, + { + id: "rel", + scopeName: "source.rel", + path: "rel.tmLanguage.json", + displayName: "Rel", + samplePath: "rel.sample" + }, + { + id: "riscv", + scopeName: "source.riscv", + path: "riscv.tmLanguage.json", + displayName: "RISC-V", + samplePath: "riscv.sample" + }, + { + id: "rst", + scopeName: "source.rst", + path: "rst.tmLanguage.json", + displayName: "reStructuredText", + samplePath: "rst.sample", + embeddedLangs: ["cpp", "python", "javascript", "shellscript", "yaml", "cmake", "ruby"] + }, + { + id: "ruby", + scopeName: "source.ruby", + path: "ruby.tmLanguage.json", + displayName: "Ruby", + samplePath: "ruby.sample", + aliases: ["rb"], + embeddedLangs: ["html", "xml", "sql", "css", "c", "javascript", "shellscript", "lua"] + }, + { + id: "rust", + scopeName: "source.rust", + path: "rust.tmLanguage.json", + displayName: "Rust", + samplePath: "rust.sample", + aliases: ["rs"] + }, + { + id: "sas", + scopeName: "source.sas", + path: "sas.tmLanguage.json", + displayName: "SAS", + samplePath: "sas.sample", + embeddedLangs: ["sql"] + }, + { + id: "sass", + scopeName: "source.sass", + path: "sass.tmLanguage.json", + displayName: "Sass", + samplePath: "sass.sample" + }, + { + id: "scala", + scopeName: "source.scala", + path: "scala.tmLanguage.json", + displayName: "Scala", + samplePath: "scala.sample" + }, + { + id: "scheme", + scopeName: "source.scheme", + path: "scheme.tmLanguage.json", + displayName: "Scheme", + samplePath: "scheme.sample" + }, + { + id: "scss", + scopeName: "source.css.scss", + path: "scss.tmLanguage.json", + displayName: "SCSS", + samplePath: "scss.sample", + embeddedLangs: ["css"] + }, + { + id: "shaderlab", + scopeName: "source.shaderlab", + path: "shaderlab.tmLanguage.json", + displayName: "ShaderLab", + samplePath: "shaderlab.sample", + aliases: ["shader"], + embeddedLangs: ["hlsl"] + }, + { + id: "shellscript", + scopeName: "source.shell", + path: "shellscript.tmLanguage.json", + displayName: "Shell", + samplePath: "shellscript.sample", + aliases: ["bash", "sh", "shell", "zsh"] + }, + { + id: "shellsession", + scopeName: "text.shell-session", + path: "shellsession.tmLanguage.json", + displayName: "Shell Session", + samplePath: "shellsession.sample", + aliases: ["console"], + embeddedLangs: ["shellscript"] + }, + { + id: "smalltalk", + scopeName: "source.smalltalk", + path: "smalltalk.tmLanguage.json", + displayName: "Smalltalk", + samplePath: "smalltalk.sample" + }, + { + id: "solidity", + scopeName: "source.solidity", + path: "solidity.tmLanguage.json", + displayName: "Solidity", + samplePath: "solidity.sample" + }, + { + id: "sparql", + scopeName: "source.sparql", + path: "sparql.tmLanguage.json", + displayName: "SPARQL", + samplePath: "sparql.sample", + embeddedLangs: ["turtle"] + }, + { + id: "splunk", + scopeName: "source.splunk_search", + path: "splunk.tmLanguage.json", + displayName: "Splunk Query Language", + samplePath: "splunk.sample", + aliases: ["spl"] + }, + { + id: "sql", + scopeName: "source.sql", + path: "sql.tmLanguage.json", + displayName: "SQL", + samplePath: "sql.sample" + }, + { + id: "ssh-config", + scopeName: "source.ssh-config", + path: "ssh-config.tmLanguage.json", + displayName: "SSH Config", + samplePath: "ssh-config.sample" + }, + { + id: "stata", + scopeName: "source.stata", + path: "stata.tmLanguage.json", + displayName: "Stata", + samplePath: "stata.sample", + embeddedLangs: ["sql"] + }, + { + id: "stylus", + scopeName: "source.stylus", + path: "stylus.tmLanguage.json", + displayName: "Stylus", + samplePath: "stylus.sample", + aliases: ["styl"] + }, + { + id: "svelte", + scopeName: "source.svelte", + path: "svelte.tmLanguage.json", + displayName: "Svelte", + samplePath: "svelte.sample", + embeddedLangs: ["javascript", "typescript", "coffee", "stylus", "sass", "css", "scss", "less", "postcss", "pug", "markdown"] + }, + { + id: "swift", + scopeName: "source.swift", + path: "swift.tmLanguage.json", + displayName: "Swift", + samplePath: "swift.sample" + }, + { + id: "system-verilog", + scopeName: "source.systemverilog", + path: "system-verilog.tmLanguage.json", + displayName: "SystemVerilog", + samplePath: "system-verilog.sample" + }, + { + id: "tasl", + scopeName: "source.tasl", + path: "tasl.tmLanguage.json", + displayName: "Tasl", + samplePath: "tasl.sample" + }, + { + id: "tcl", + scopeName: "source.tcl", + path: "tcl.tmLanguage.json", + displayName: "Tcl", + samplePath: "tcl.sample" + }, + { + id: "tex", + scopeName: "text.tex", + path: "tex.tmLanguage.json", + displayName: "TeX", + samplePath: "tex.sample", + embeddedLangs: ["r"] + }, + { + id: "toml", + scopeName: "source.toml", + path: "toml.tmLanguage.json", + displayName: "TOML", + samplePath: "toml.sample" + }, + { + id: "tsx", + scopeName: "source.tsx", + path: "tsx.tmLanguage.json", + displayName: "TSX", + samplePath: "tsx.sample" + }, + { + id: "turtle", + scopeName: "source.turtle", + path: "turtle.tmLanguage.json", + displayName: "Turtle", + samplePath: "turtle.sample" + }, + { + id: "twig", + scopeName: "text.html.twig", + path: "twig.tmLanguage.json", + displayName: "Twig", + samplePath: "twig.sample", + embeddedLangs: ["css", "javascript", "php", "python", "ruby"] + }, + { + id: "typescript", + scopeName: "source.ts", + path: "typescript.tmLanguage.json", + displayName: "TypeScript", + samplePath: "typescript.sample", + aliases: ["ts"] + }, + { + id: "v", + scopeName: "source.v", + path: "v.tmLanguage.json", + displayName: "V", + samplePath: "v.sample" + }, + { + id: "vb", + scopeName: "source.asp.vb.net", + path: "vb.tmLanguage.json", + displayName: "Visual Basic", + samplePath: "vb.sample", + aliases: ["cmd"] + }, + { + id: "verilog", + scopeName: "source.verilog", + path: "verilog.tmLanguage.json", + displayName: "Verilog", + samplePath: "verilog.sample" + }, + { + id: "vhdl", + scopeName: "source.vhdl", + path: "vhdl.tmLanguage.json", + displayName: "VHDL", + samplePath: "vhdl.sample" + }, + { + id: "viml", + scopeName: "source.viml", + path: "viml.tmLanguage.json", + displayName: "Vim Script", + samplePath: "viml.sample", + aliases: ["vim", "vimscript"] + }, + { + id: "vue-html", + scopeName: "text.html.vue-html", + path: "vue-html.tmLanguage.json", + displayName: "Vue HTML", + samplePath: "vue-html.sample", + embeddedLangs: ["vue", "javascript"] + }, + { + id: "vue", + scopeName: "source.vue", + path: "vue.tmLanguage.json", + displayName: "Vue", + samplePath: "vue.sample", + embeddedLangs: ["html", "markdown", "pug", "stylus", "sass", "css", "scss", "less", "javascript", "typescript", "jsx", "tsx", "json", "jsonc", "json5", "yaml", "toml", "graphql"] + }, + { + id: "vyper", + scopeName: "source.vyper", + path: "vyper.tmLanguage.json", + displayName: "Vyper", + samplePath: "vyper.sample", + aliases: ["vy"] + }, + { + id: "wasm", + scopeName: "source.wat", + path: "wasm.tmLanguage.json", + displayName: "WebAssembly", + samplePath: "wasm.sample" + }, + { + id: "wenyan", + scopeName: "source.wenyan", + path: "wenyan.tmLanguage.json", + displayName: "Wenyan", + samplePath: "wenyan.sample", + aliases: ["\u6587\u8A00"] + }, + { + id: "wgsl", + scopeName: "source.wgsl", + path: "wgsl.tmLanguage.json", + displayName: "WGSL", + samplePath: "wgsl.sample" + }, + { + id: "wolfram", + scopeName: "source.wolfram", + path: "wolfram.tmLanguage.json", + displayName: "Wolfram", + samplePath: "wolfram.sample" + }, + { + id: "xml", + scopeName: "text.xml", + path: "xml.tmLanguage.json", + displayName: "XML", + samplePath: "xml.sample", + embeddedLangs: ["java"] + }, + { + id: "xsl", + scopeName: "text.xml.xsl", + path: "xsl.tmLanguage.json", + displayName: "XSL", + samplePath: "xsl.sample", + embeddedLangs: ["xml"] + }, + { + id: "yaml", + scopeName: "source.yaml", + path: "yaml.tmLanguage.json", + displayName: "YAML", + samplePath: "yaml.sample", + aliases: ["yml"] + }, + { + id: "zenscript", + scopeName: "source.zenscript", + path: "zenscript.tmLanguage.json", + displayName: "ZenScript", + samplePath: "zenscript.sample" + }, + { + id: "zig", + scopeName: "source.zig", + path: "zig.tmLanguage.json", + displayName: "zig", + samplePath: "zig.sample" + } +]; + +var FontStyle = /* @__PURE__ */ ((FontStyle2) => { + FontStyle2[FontStyle2["NotSet"] = -1] = "NotSet"; + FontStyle2[FontStyle2["None"] = 0] = "None"; + FontStyle2[FontStyle2["Italic"] = 1] = "Italic"; + FontStyle2[FontStyle2["Bold"] = 2] = "Bold"; + FontStyle2[FontStyle2["Underline"] = 4] = "Underline"; + return FontStyle2; +})(FontStyle || {}); +class StackElementMetadata { + static toBinaryStr(metadata) { + let r = metadata.toString(2); + while (r.length < 32) { + r = "0" + r; + } + return r; + } + static printMetadata(metadata) { + let languageId = StackElementMetadata.getLanguageId(metadata); + let tokenType = StackElementMetadata.getTokenType(metadata); + let fontStyle = StackElementMetadata.getFontStyle(metadata); + let foreground = StackElementMetadata.getForeground(metadata); + let background = StackElementMetadata.getBackground(metadata); + console.log({ + languageId, + tokenType, + fontStyle, + foreground, + background + }); + } + static getLanguageId(metadata) { + return (metadata & 255 /* LANGUAGEID_MASK */) >>> 0 /* LANGUAGEID_OFFSET */; + } + static getTokenType(metadata) { + return (metadata & 768 /* TOKEN_TYPE_MASK */) >>> 8 /* TOKEN_TYPE_OFFSET */; + } + static getFontStyle(metadata) { + return (metadata & 14336 /* FONT_STYLE_MASK */) >>> 11 /* FONT_STYLE_OFFSET */; + } + static getForeground(metadata) { + return (metadata & 8372224 /* FOREGROUND_MASK */) >>> 15 /* FOREGROUND_OFFSET */; + } + static getBackground(metadata) { + return (metadata & 4286578688 /* BACKGROUND_MASK */) >>> 24 /* BACKGROUND_OFFSET */; + } + static containsBalancedBrackets(metadata) { + return (metadata & 1024 /* BALANCED_BRACKETS_MASK */) !== 0; + } + static set(metadata, languageId, tokenType, fontStyle, foreground, background) { + let _languageId = StackElementMetadata.getLanguageId(metadata); + let _tokenType = StackElementMetadata.getTokenType(metadata); + let _fontStyle = StackElementMetadata.getFontStyle(metadata); + let _foreground = StackElementMetadata.getForeground(metadata); + let _background = StackElementMetadata.getBackground(metadata); + let _containsBalancedBracketsBit = StackElementMetadata.containsBalancedBrackets( + metadata + ) ? 1 : 0; + if (languageId !== 0) { + _languageId = languageId; + } + if (tokenType !== 0 /* Other */) { + _tokenType = tokenType === 8 /* MetaEmbedded */ ? 0 /* Other */ : tokenType; + } + if (fontStyle !== -1 /* NotSet */) { + _fontStyle = fontStyle; + } + if (foreground !== 0) { + _foreground = foreground; + } + if (background !== 0) { + _background = background; + } + return (_languageId << 0 /* LANGUAGEID_OFFSET */ | _tokenType << 8 /* TOKEN_TYPE_OFFSET */ | _fontStyle << 11 /* FONT_STYLE_OFFSET */ | _containsBalancedBracketsBit << 10 /* BALANCED_BRACKETS_OFFSET */ | _foreground << 15 /* FOREGROUND_OFFSET */ | _background << 24 /* BACKGROUND_OFFSET */) >>> 0; + } +} + +function trimEndSlash(str) { + if (str.endsWith("/") || str.endsWith("\\")) + return str.slice(0, -1); + return str; +} +function trimStartDot(str) { + if (str.startsWith("./")) + return str.slice(2); + return str; +} +function dirpathparts(str) { + const parts = str.split(/[\/\\]/g); + return parts.slice(0, parts.length - 1); +} +function join(...parts) { + return parts.map(trimEndSlash).map(trimStartDot).join("/"); +} +function groupBy(elements, keyGetter) { + const map = /* @__PURE__ */ new Map(); + for (const element of elements) { + const key = keyGetter(element); + if (map.has(key)) { + const group = map.get(key); + group.push(element); + } else { + map.set(key, [element]); + } + } + return map; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +/** + * Creates a JSON scanner on the given text. + * If ignoreTrivia is set, whitespaces or comments are ignored. + */ +function createScanner(text, ignoreTrivia = false) { + const len = text.length; + let pos = 0, value = '', tokenOffset = 0, token = 16 /* SyntaxKind.Unknown */, lineNumber = 0, lineStartOffset = 0, tokenLineStartOffset = 0, prevTokenLineStartOffset = 0, scanError = 0 /* ScanError.None */; + function scanHexDigits(count, exact) { + let digits = 0; + let value = 0; + while (digits < count || !exact) { + let ch = text.charCodeAt(pos); + if (ch >= 48 /* CharacterCodes._0 */ && ch <= 57 /* CharacterCodes._9 */) { + value = value * 16 + ch - 48 /* CharacterCodes._0 */; + } + else if (ch >= 65 /* CharacterCodes.A */ && ch <= 70 /* CharacterCodes.F */) { + value = value * 16 + ch - 65 /* CharacterCodes.A */ + 10; + } + else if (ch >= 97 /* CharacterCodes.a */ && ch <= 102 /* CharacterCodes.f */) { + value = value * 16 + ch - 97 /* CharacterCodes.a */ + 10; + } + else { + break; + } + pos++; + digits++; + } + if (digits < count) { + value = -1; + } + return value; + } + function setPosition(newPosition) { + pos = newPosition; + value = ''; + tokenOffset = 0; + token = 16 /* SyntaxKind.Unknown */; + scanError = 0 /* ScanError.None */; + } + function scanNumber() { + let start = pos; + if (text.charCodeAt(pos) === 48 /* CharacterCodes._0 */) { + pos++; + } + else { + pos++; + while (pos < text.length && isDigit(text.charCodeAt(pos))) { + pos++; + } + } + if (pos < text.length && text.charCodeAt(pos) === 46 /* CharacterCodes.dot */) { + pos++; + if (pos < text.length && isDigit(text.charCodeAt(pos))) { + pos++; + while (pos < text.length && isDigit(text.charCodeAt(pos))) { + pos++; + } + } + else { + scanError = 3 /* ScanError.UnexpectedEndOfNumber */; + return text.substring(start, pos); + } + } + let end = pos; + if (pos < text.length && (text.charCodeAt(pos) === 69 /* CharacterCodes.E */ || text.charCodeAt(pos) === 101 /* CharacterCodes.e */)) { + pos++; + if (pos < text.length && text.charCodeAt(pos) === 43 /* CharacterCodes.plus */ || text.charCodeAt(pos) === 45 /* CharacterCodes.minus */) { + pos++; + } + if (pos < text.length && isDigit(text.charCodeAt(pos))) { + pos++; + while (pos < text.length && isDigit(text.charCodeAt(pos))) { + pos++; + } + end = pos; + } + else { + scanError = 3 /* ScanError.UnexpectedEndOfNumber */; + } + } + return text.substring(start, end); + } + function scanString() { + let result = '', start = pos; + while (true) { + if (pos >= len) { + result += text.substring(start, pos); + scanError = 2 /* ScanError.UnexpectedEndOfString */; + break; + } + const ch = text.charCodeAt(pos); + if (ch === 34 /* CharacterCodes.doubleQuote */) { + result += text.substring(start, pos); + pos++; + break; + } + if (ch === 92 /* CharacterCodes.backslash */) { + result += text.substring(start, pos); + pos++; + if (pos >= len) { + scanError = 2 /* ScanError.UnexpectedEndOfString */; + break; + } + const ch2 = text.charCodeAt(pos++); + switch (ch2) { + case 34 /* CharacterCodes.doubleQuote */: + result += '\"'; + break; + case 92 /* CharacterCodes.backslash */: + result += '\\'; + break; + case 47 /* CharacterCodes.slash */: + result += '/'; + break; + case 98 /* CharacterCodes.b */: + result += '\b'; + break; + case 102 /* CharacterCodes.f */: + result += '\f'; + break; + case 110 /* CharacterCodes.n */: + result += '\n'; + break; + case 114 /* CharacterCodes.r */: + result += '\r'; + break; + case 116 /* CharacterCodes.t */: + result += '\t'; + break; + case 117 /* CharacterCodes.u */: + const ch3 = scanHexDigits(4, true); + if (ch3 >= 0) { + result += String.fromCharCode(ch3); + } + else { + scanError = 4 /* ScanError.InvalidUnicode */; + } + break; + default: + scanError = 5 /* ScanError.InvalidEscapeCharacter */; + } + start = pos; + continue; + } + if (ch >= 0 && ch <= 0x1f) { + if (isLineBreak(ch)) { + result += text.substring(start, pos); + scanError = 2 /* ScanError.UnexpectedEndOfString */; + break; + } + else { + scanError = 6 /* ScanError.InvalidCharacter */; + // mark as error but continue with string + } + } + pos++; + } + return result; + } + function scanNext() { + value = ''; + scanError = 0 /* ScanError.None */; + tokenOffset = pos; + lineStartOffset = lineNumber; + prevTokenLineStartOffset = tokenLineStartOffset; + if (pos >= len) { + // at the end + tokenOffset = len; + return token = 17 /* SyntaxKind.EOF */; + } + let code = text.charCodeAt(pos); + // trivia: whitespace + if (isWhiteSpace(code)) { + do { + pos++; + value += String.fromCharCode(code); + code = text.charCodeAt(pos); + } while (isWhiteSpace(code)); + return token = 15 /* SyntaxKind.Trivia */; + } + // trivia: newlines + if (isLineBreak(code)) { + pos++; + value += String.fromCharCode(code); + if (code === 13 /* CharacterCodes.carriageReturn */ && text.charCodeAt(pos) === 10 /* CharacterCodes.lineFeed */) { + pos++; + value += '\n'; + } + lineNumber++; + tokenLineStartOffset = pos; + return token = 14 /* SyntaxKind.LineBreakTrivia */; + } + switch (code) { + // tokens: []{}:, + case 123 /* CharacterCodes.openBrace */: + pos++; + return token = 1 /* SyntaxKind.OpenBraceToken */; + case 125 /* CharacterCodes.closeBrace */: + pos++; + return token = 2 /* SyntaxKind.CloseBraceToken */; + case 91 /* CharacterCodes.openBracket */: + pos++; + return token = 3 /* SyntaxKind.OpenBracketToken */; + case 93 /* CharacterCodes.closeBracket */: + pos++; + return token = 4 /* SyntaxKind.CloseBracketToken */; + case 58 /* CharacterCodes.colon */: + pos++; + return token = 6 /* SyntaxKind.ColonToken */; + case 44 /* CharacterCodes.comma */: + pos++; + return token = 5 /* SyntaxKind.CommaToken */; + // strings + case 34 /* CharacterCodes.doubleQuote */: + pos++; + value = scanString(); + return token = 10 /* SyntaxKind.StringLiteral */; + // comments + case 47 /* CharacterCodes.slash */: + const start = pos - 1; + // Single-line comment + if (text.charCodeAt(pos + 1) === 47 /* CharacterCodes.slash */) { + pos += 2; + while (pos < len) { + if (isLineBreak(text.charCodeAt(pos))) { + break; + } + pos++; + } + value = text.substring(start, pos); + return token = 12 /* SyntaxKind.LineCommentTrivia */; + } + // Multi-line comment + if (text.charCodeAt(pos + 1) === 42 /* CharacterCodes.asterisk */) { + pos += 2; + const safeLength = len - 1; // For lookahead. + let commentClosed = false; + while (pos < safeLength) { + const ch = text.charCodeAt(pos); + if (ch === 42 /* CharacterCodes.asterisk */ && text.charCodeAt(pos + 1) === 47 /* CharacterCodes.slash */) { + pos += 2; + commentClosed = true; + break; + } + pos++; + if (isLineBreak(ch)) { + if (ch === 13 /* CharacterCodes.carriageReturn */ && text.charCodeAt(pos) === 10 /* CharacterCodes.lineFeed */) { + pos++; + } + lineNumber++; + tokenLineStartOffset = pos; + } + } + if (!commentClosed) { + pos++; + scanError = 1 /* ScanError.UnexpectedEndOfComment */; + } + value = text.substring(start, pos); + return token = 13 /* SyntaxKind.BlockCommentTrivia */; + } + // just a single slash + value += String.fromCharCode(code); + pos++; + return token = 16 /* SyntaxKind.Unknown */; + // numbers + case 45 /* CharacterCodes.minus */: + value += String.fromCharCode(code); + pos++; + if (pos === len || !isDigit(text.charCodeAt(pos))) { + return token = 16 /* SyntaxKind.Unknown */; + } + // found a minus, followed by a number so + // we fall through to proceed with scanning + // numbers + case 48 /* CharacterCodes._0 */: + case 49 /* CharacterCodes._1 */: + case 50 /* CharacterCodes._2 */: + case 51 /* CharacterCodes._3 */: + case 52 /* CharacterCodes._4 */: + case 53 /* CharacterCodes._5 */: + case 54 /* CharacterCodes._6 */: + case 55 /* CharacterCodes._7 */: + case 56 /* CharacterCodes._8 */: + case 57 /* CharacterCodes._9 */: + value += scanNumber(); + return token = 11 /* SyntaxKind.NumericLiteral */; + // literals and unknown symbols + default: + // is a literal? Read the full word. + while (pos < len && isUnknownContentCharacter(code)) { + pos++; + code = text.charCodeAt(pos); + } + if (tokenOffset !== pos) { + value = text.substring(tokenOffset, pos); + // keywords: true, false, null + switch (value) { + case 'true': return token = 8 /* SyntaxKind.TrueKeyword */; + case 'false': return token = 9 /* SyntaxKind.FalseKeyword */; + case 'null': return token = 7 /* SyntaxKind.NullKeyword */; + } + return token = 16 /* SyntaxKind.Unknown */; + } + // some + value += String.fromCharCode(code); + pos++; + return token = 16 /* SyntaxKind.Unknown */; + } + } + function isUnknownContentCharacter(code) { + if (isWhiteSpace(code) || isLineBreak(code)) { + return false; + } + switch (code) { + case 125 /* CharacterCodes.closeBrace */: + case 93 /* CharacterCodes.closeBracket */: + case 123 /* CharacterCodes.openBrace */: + case 91 /* CharacterCodes.openBracket */: + case 34 /* CharacterCodes.doubleQuote */: + case 58 /* CharacterCodes.colon */: + case 44 /* CharacterCodes.comma */: + case 47 /* CharacterCodes.slash */: + return false; + } + return true; + } + function scanNextNonTrivia() { + let result; + do { + result = scanNext(); + } while (result >= 12 /* SyntaxKind.LineCommentTrivia */ && result <= 15 /* SyntaxKind.Trivia */); + return result; + } + return { + setPosition: setPosition, + getPosition: () => pos, + scan: ignoreTrivia ? scanNextNonTrivia : scanNext, + getToken: () => token, + getTokenValue: () => value, + getTokenOffset: () => tokenOffset, + getTokenLength: () => pos - tokenOffset, + getTokenStartLine: () => lineStartOffset, + getTokenStartCharacter: () => tokenOffset - prevTokenLineStartOffset, + getTokenError: () => scanError, + }; +} +function isWhiteSpace(ch) { + return ch === 32 /* CharacterCodes.space */ || ch === 9 /* CharacterCodes.tab */; +} +function isLineBreak(ch) { + return ch === 10 /* CharacterCodes.lineFeed */ || ch === 13 /* CharacterCodes.carriageReturn */; +} +function isDigit(ch) { + return ch >= 48 /* CharacterCodes._0 */ && ch <= 57 /* CharacterCodes._9 */; +} +var CharacterCodes; +(function (CharacterCodes) { + CharacterCodes[CharacterCodes["lineFeed"] = 10] = "lineFeed"; + CharacterCodes[CharacterCodes["carriageReturn"] = 13] = "carriageReturn"; + CharacterCodes[CharacterCodes["space"] = 32] = "space"; + CharacterCodes[CharacterCodes["_0"] = 48] = "_0"; + CharacterCodes[CharacterCodes["_1"] = 49] = "_1"; + CharacterCodes[CharacterCodes["_2"] = 50] = "_2"; + CharacterCodes[CharacterCodes["_3"] = 51] = "_3"; + CharacterCodes[CharacterCodes["_4"] = 52] = "_4"; + CharacterCodes[CharacterCodes["_5"] = 53] = "_5"; + CharacterCodes[CharacterCodes["_6"] = 54] = "_6"; + CharacterCodes[CharacterCodes["_7"] = 55] = "_7"; + CharacterCodes[CharacterCodes["_8"] = 56] = "_8"; + CharacterCodes[CharacterCodes["_9"] = 57] = "_9"; + CharacterCodes[CharacterCodes["a"] = 97] = "a"; + CharacterCodes[CharacterCodes["b"] = 98] = "b"; + CharacterCodes[CharacterCodes["c"] = 99] = "c"; + CharacterCodes[CharacterCodes["d"] = 100] = "d"; + CharacterCodes[CharacterCodes["e"] = 101] = "e"; + CharacterCodes[CharacterCodes["f"] = 102] = "f"; + CharacterCodes[CharacterCodes["g"] = 103] = "g"; + CharacterCodes[CharacterCodes["h"] = 104] = "h"; + CharacterCodes[CharacterCodes["i"] = 105] = "i"; + CharacterCodes[CharacterCodes["j"] = 106] = "j"; + CharacterCodes[CharacterCodes["k"] = 107] = "k"; + CharacterCodes[CharacterCodes["l"] = 108] = "l"; + CharacterCodes[CharacterCodes["m"] = 109] = "m"; + CharacterCodes[CharacterCodes["n"] = 110] = "n"; + CharacterCodes[CharacterCodes["o"] = 111] = "o"; + CharacterCodes[CharacterCodes["p"] = 112] = "p"; + CharacterCodes[CharacterCodes["q"] = 113] = "q"; + CharacterCodes[CharacterCodes["r"] = 114] = "r"; + CharacterCodes[CharacterCodes["s"] = 115] = "s"; + CharacterCodes[CharacterCodes["t"] = 116] = "t"; + CharacterCodes[CharacterCodes["u"] = 117] = "u"; + CharacterCodes[CharacterCodes["v"] = 118] = "v"; + CharacterCodes[CharacterCodes["w"] = 119] = "w"; + CharacterCodes[CharacterCodes["x"] = 120] = "x"; + CharacterCodes[CharacterCodes["y"] = 121] = "y"; + CharacterCodes[CharacterCodes["z"] = 122] = "z"; + CharacterCodes[CharacterCodes["A"] = 65] = "A"; + CharacterCodes[CharacterCodes["B"] = 66] = "B"; + CharacterCodes[CharacterCodes["C"] = 67] = "C"; + CharacterCodes[CharacterCodes["D"] = 68] = "D"; + CharacterCodes[CharacterCodes["E"] = 69] = "E"; + CharacterCodes[CharacterCodes["F"] = 70] = "F"; + CharacterCodes[CharacterCodes["G"] = 71] = "G"; + CharacterCodes[CharacterCodes["H"] = 72] = "H"; + CharacterCodes[CharacterCodes["I"] = 73] = "I"; + CharacterCodes[CharacterCodes["J"] = 74] = "J"; + CharacterCodes[CharacterCodes["K"] = 75] = "K"; + CharacterCodes[CharacterCodes["L"] = 76] = "L"; + CharacterCodes[CharacterCodes["M"] = 77] = "M"; + CharacterCodes[CharacterCodes["N"] = 78] = "N"; + CharacterCodes[CharacterCodes["O"] = 79] = "O"; + CharacterCodes[CharacterCodes["P"] = 80] = "P"; + CharacterCodes[CharacterCodes["Q"] = 81] = "Q"; + CharacterCodes[CharacterCodes["R"] = 82] = "R"; + CharacterCodes[CharacterCodes["S"] = 83] = "S"; + CharacterCodes[CharacterCodes["T"] = 84] = "T"; + CharacterCodes[CharacterCodes["U"] = 85] = "U"; + CharacterCodes[CharacterCodes["V"] = 86] = "V"; + CharacterCodes[CharacterCodes["W"] = 87] = "W"; + CharacterCodes[CharacterCodes["X"] = 88] = "X"; + CharacterCodes[CharacterCodes["Y"] = 89] = "Y"; + CharacterCodes[CharacterCodes["Z"] = 90] = "Z"; + CharacterCodes[CharacterCodes["asterisk"] = 42] = "asterisk"; + CharacterCodes[CharacterCodes["backslash"] = 92] = "backslash"; + CharacterCodes[CharacterCodes["closeBrace"] = 125] = "closeBrace"; + CharacterCodes[CharacterCodes["closeBracket"] = 93] = "closeBracket"; + CharacterCodes[CharacterCodes["colon"] = 58] = "colon"; + CharacterCodes[CharacterCodes["comma"] = 44] = "comma"; + CharacterCodes[CharacterCodes["dot"] = 46] = "dot"; + CharacterCodes[CharacterCodes["doubleQuote"] = 34] = "doubleQuote"; + CharacterCodes[CharacterCodes["minus"] = 45] = "minus"; + CharacterCodes[CharacterCodes["openBrace"] = 123] = "openBrace"; + CharacterCodes[CharacterCodes["openBracket"] = 91] = "openBracket"; + CharacterCodes[CharacterCodes["plus"] = 43] = "plus"; + CharacterCodes[CharacterCodes["slash"] = 47] = "slash"; + CharacterCodes[CharacterCodes["formFeed"] = 12] = "formFeed"; + CharacterCodes[CharacterCodes["tab"] = 9] = "tab"; +})(CharacterCodes || (CharacterCodes = {})); + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +var ParseOptions; +(function (ParseOptions) { + ParseOptions.DEFAULT = { + allowTrailingComma: false + }; +})(ParseOptions || (ParseOptions = {})); +/** + * Parses the given text and returns the object the JSON content represents. On invalid input, the parser tries to be as fault tolerant as possible, but still return a result. + * Therefore always check the errors list to find out if the input was valid. + */ +function parse$1(text, errors = [], options = ParseOptions.DEFAULT) { + let currentProperty = null; + let currentParent = []; + const previousParents = []; + function onValue(value) { + if (Array.isArray(currentParent)) { + currentParent.push(value); + } + else if (currentProperty !== null) { + currentParent[currentProperty] = value; + } + } + const visitor = { + onObjectBegin: () => { + const object = {}; + onValue(object); + previousParents.push(currentParent); + currentParent = object; + currentProperty = null; + }, + onObjectProperty: (name) => { + currentProperty = name; + }, + onObjectEnd: () => { + currentParent = previousParents.pop(); + }, + onArrayBegin: () => { + const array = []; + onValue(array); + previousParents.push(currentParent); + currentParent = array; + currentProperty = null; + }, + onArrayEnd: () => { + currentParent = previousParents.pop(); + }, + onLiteralValue: onValue, + onError: (error, offset, length) => { + errors.push({ error, offset, length }); + } + }; + visit(text, visitor, options); + return currentParent[0]; +} +/** + * Parses the given text and invokes the visitor functions for each object, array and literal reached. + */ +function visit(text, visitor, options = ParseOptions.DEFAULT) { + const _scanner = createScanner(text, false); + // Important: Only pass copies of this to visitor functions to prevent accidental modification, and + // to not affect visitor functions which stored a reference to a previous JSONPath + const _jsonPath = []; + function toNoArgVisit(visitFunction) { + return visitFunction ? () => visitFunction(_scanner.getTokenOffset(), _scanner.getTokenLength(), _scanner.getTokenStartLine(), _scanner.getTokenStartCharacter()) : () => true; + } + function toNoArgVisitWithPath(visitFunction) { + return visitFunction ? () => visitFunction(_scanner.getTokenOffset(), _scanner.getTokenLength(), _scanner.getTokenStartLine(), _scanner.getTokenStartCharacter(), () => _jsonPath.slice()) : () => true; + } + function toOneArgVisit(visitFunction) { + return visitFunction ? (arg) => visitFunction(arg, _scanner.getTokenOffset(), _scanner.getTokenLength(), _scanner.getTokenStartLine(), _scanner.getTokenStartCharacter()) : () => true; + } + function toOneArgVisitWithPath(visitFunction) { + return visitFunction ? (arg) => visitFunction(arg, _scanner.getTokenOffset(), _scanner.getTokenLength(), _scanner.getTokenStartLine(), _scanner.getTokenStartCharacter(), () => _jsonPath.slice()) : () => true; + } + const onObjectBegin = toNoArgVisitWithPath(visitor.onObjectBegin), onObjectProperty = toOneArgVisitWithPath(visitor.onObjectProperty), onObjectEnd = toNoArgVisit(visitor.onObjectEnd), onArrayBegin = toNoArgVisitWithPath(visitor.onArrayBegin), onArrayEnd = toNoArgVisit(visitor.onArrayEnd), onLiteralValue = toOneArgVisitWithPath(visitor.onLiteralValue), onSeparator = toOneArgVisit(visitor.onSeparator), onComment = toNoArgVisit(visitor.onComment), onError = toOneArgVisit(visitor.onError); + const disallowComments = options && options.disallowComments; + const allowTrailingComma = options && options.allowTrailingComma; + function scanNext() { + while (true) { + const token = _scanner.scan(); + switch (_scanner.getTokenError()) { + case 4 /* ScanError.InvalidUnicode */: + handleError(14 /* ParseErrorCode.InvalidUnicode */); + break; + case 5 /* ScanError.InvalidEscapeCharacter */: + handleError(15 /* ParseErrorCode.InvalidEscapeCharacter */); + break; + case 3 /* ScanError.UnexpectedEndOfNumber */: + handleError(13 /* ParseErrorCode.UnexpectedEndOfNumber */); + break; + case 1 /* ScanError.UnexpectedEndOfComment */: + if (!disallowComments) { + handleError(11 /* ParseErrorCode.UnexpectedEndOfComment */); + } + break; + case 2 /* ScanError.UnexpectedEndOfString */: + handleError(12 /* ParseErrorCode.UnexpectedEndOfString */); + break; + case 6 /* ScanError.InvalidCharacter */: + handleError(16 /* ParseErrorCode.InvalidCharacter */); + break; + } + switch (token) { + case 12 /* SyntaxKind.LineCommentTrivia */: + case 13 /* SyntaxKind.BlockCommentTrivia */: + if (disallowComments) { + handleError(10 /* ParseErrorCode.InvalidCommentToken */); + } + else { + onComment(); + } + break; + case 16 /* SyntaxKind.Unknown */: + handleError(1 /* ParseErrorCode.InvalidSymbol */); + break; + case 15 /* SyntaxKind.Trivia */: + case 14 /* SyntaxKind.LineBreakTrivia */: + break; + default: + return token; + } + } + } + function handleError(error, skipUntilAfter = [], skipUntil = []) { + onError(error); + if (skipUntilAfter.length + skipUntil.length > 0) { + let token = _scanner.getToken(); + while (token !== 17 /* SyntaxKind.EOF */) { + if (skipUntilAfter.indexOf(token) !== -1) { + scanNext(); + break; + } + else if (skipUntil.indexOf(token) !== -1) { + break; + } + token = scanNext(); + } + } + } + function parseString(isValue) { + const value = _scanner.getTokenValue(); + if (isValue) { + onLiteralValue(value); + } + else { + onObjectProperty(value); + // add property name afterwards + _jsonPath.push(value); + } + scanNext(); + return true; + } + function parseLiteral() { + switch (_scanner.getToken()) { + case 11 /* SyntaxKind.NumericLiteral */: + const tokenValue = _scanner.getTokenValue(); + let value = Number(tokenValue); + if (isNaN(value)) { + handleError(2 /* ParseErrorCode.InvalidNumberFormat */); + value = 0; + } + onLiteralValue(value); + break; + case 7 /* SyntaxKind.NullKeyword */: + onLiteralValue(null); + break; + case 8 /* SyntaxKind.TrueKeyword */: + onLiteralValue(true); + break; + case 9 /* SyntaxKind.FalseKeyword */: + onLiteralValue(false); + break; + default: + return false; + } + scanNext(); + return true; + } + function parseProperty() { + if (_scanner.getToken() !== 10 /* SyntaxKind.StringLiteral */) { + handleError(3 /* ParseErrorCode.PropertyNameExpected */, [], [2 /* SyntaxKind.CloseBraceToken */, 5 /* SyntaxKind.CommaToken */]); + return false; + } + parseString(false); + if (_scanner.getToken() === 6 /* SyntaxKind.ColonToken */) { + onSeparator(':'); + scanNext(); // consume colon + if (!parseValue()) { + handleError(4 /* ParseErrorCode.ValueExpected */, [], [2 /* SyntaxKind.CloseBraceToken */, 5 /* SyntaxKind.CommaToken */]); + } + } + else { + handleError(5 /* ParseErrorCode.ColonExpected */, [], [2 /* SyntaxKind.CloseBraceToken */, 5 /* SyntaxKind.CommaToken */]); + } + _jsonPath.pop(); // remove processed property name + return true; + } + function parseObject() { + onObjectBegin(); + scanNext(); // consume open brace + let needsComma = false; + while (_scanner.getToken() !== 2 /* SyntaxKind.CloseBraceToken */ && _scanner.getToken() !== 17 /* SyntaxKind.EOF */) { + if (_scanner.getToken() === 5 /* SyntaxKind.CommaToken */) { + if (!needsComma) { + handleError(4 /* ParseErrorCode.ValueExpected */, [], []); + } + onSeparator(','); + scanNext(); // consume comma + if (_scanner.getToken() === 2 /* SyntaxKind.CloseBraceToken */ && allowTrailingComma) { + break; + } + } + else if (needsComma) { + handleError(6 /* ParseErrorCode.CommaExpected */, [], []); + } + if (!parseProperty()) { + handleError(4 /* ParseErrorCode.ValueExpected */, [], [2 /* SyntaxKind.CloseBraceToken */, 5 /* SyntaxKind.CommaToken */]); + } + needsComma = true; + } + onObjectEnd(); + if (_scanner.getToken() !== 2 /* SyntaxKind.CloseBraceToken */) { + handleError(7 /* ParseErrorCode.CloseBraceExpected */, [2 /* SyntaxKind.CloseBraceToken */], []); + } + else { + scanNext(); // consume close brace + } + return true; + } + function parseArray() { + onArrayBegin(); + scanNext(); // consume open bracket + let isFirstElement = true; + let needsComma = false; + while (_scanner.getToken() !== 4 /* SyntaxKind.CloseBracketToken */ && _scanner.getToken() !== 17 /* SyntaxKind.EOF */) { + if (_scanner.getToken() === 5 /* SyntaxKind.CommaToken */) { + if (!needsComma) { + handleError(4 /* ParseErrorCode.ValueExpected */, [], []); + } + onSeparator(','); + scanNext(); // consume comma + if (_scanner.getToken() === 4 /* SyntaxKind.CloseBracketToken */ && allowTrailingComma) { + break; + } + } + else if (needsComma) { + handleError(6 /* ParseErrorCode.CommaExpected */, [], []); + } + if (isFirstElement) { + _jsonPath.push(0); + isFirstElement = false; + } + else { + _jsonPath[_jsonPath.length - 1]++; + } + if (!parseValue()) { + handleError(4 /* ParseErrorCode.ValueExpected */, [], [4 /* SyntaxKind.CloseBracketToken */, 5 /* SyntaxKind.CommaToken */]); + } + needsComma = true; + } + onArrayEnd(); + if (!isFirstElement) { + _jsonPath.pop(); // remove array index + } + if (_scanner.getToken() !== 4 /* SyntaxKind.CloseBracketToken */) { + handleError(8 /* ParseErrorCode.CloseBracketExpected */, [4 /* SyntaxKind.CloseBracketToken */], []); + } + else { + scanNext(); // consume close bracket + } + return true; + } + function parseValue() { + switch (_scanner.getToken()) { + case 3 /* SyntaxKind.OpenBracketToken */: + return parseArray(); + case 1 /* SyntaxKind.OpenBraceToken */: + return parseObject(); + case 10 /* SyntaxKind.StringLiteral */: + return parseString(true); + default: + return parseLiteral(); + } + } + scanNext(); + if (_scanner.getToken() === 17 /* SyntaxKind.EOF */) { + if (options.allowEmptyContent) { + return true; + } + handleError(4 /* ParseErrorCode.ValueExpected */, [], []); + return false; + } + if (!parseValue()) { + handleError(4 /* ParseErrorCode.ValueExpected */, [], []); + return false; + } + if (_scanner.getToken() !== 17 /* SyntaxKind.EOF */) { + handleError(9 /* ParseErrorCode.EndOfFileExpected */, [], []); + } + return true; +} + +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +var ScanError; +(function (ScanError) { + ScanError[ScanError["None"] = 0] = "None"; + ScanError[ScanError["UnexpectedEndOfComment"] = 1] = "UnexpectedEndOfComment"; + ScanError[ScanError["UnexpectedEndOfString"] = 2] = "UnexpectedEndOfString"; + ScanError[ScanError["UnexpectedEndOfNumber"] = 3] = "UnexpectedEndOfNumber"; + ScanError[ScanError["InvalidUnicode"] = 4] = "InvalidUnicode"; + ScanError[ScanError["InvalidEscapeCharacter"] = 5] = "InvalidEscapeCharacter"; + ScanError[ScanError["InvalidCharacter"] = 6] = "InvalidCharacter"; +})(ScanError || (ScanError = {})); +var SyntaxKind; +(function (SyntaxKind) { + SyntaxKind[SyntaxKind["OpenBraceToken"] = 1] = "OpenBraceToken"; + SyntaxKind[SyntaxKind["CloseBraceToken"] = 2] = "CloseBraceToken"; + SyntaxKind[SyntaxKind["OpenBracketToken"] = 3] = "OpenBracketToken"; + SyntaxKind[SyntaxKind["CloseBracketToken"] = 4] = "CloseBracketToken"; + SyntaxKind[SyntaxKind["CommaToken"] = 5] = "CommaToken"; + SyntaxKind[SyntaxKind["ColonToken"] = 6] = "ColonToken"; + SyntaxKind[SyntaxKind["NullKeyword"] = 7] = "NullKeyword"; + SyntaxKind[SyntaxKind["TrueKeyword"] = 8] = "TrueKeyword"; + SyntaxKind[SyntaxKind["FalseKeyword"] = 9] = "FalseKeyword"; + SyntaxKind[SyntaxKind["StringLiteral"] = 10] = "StringLiteral"; + SyntaxKind[SyntaxKind["NumericLiteral"] = 11] = "NumericLiteral"; + SyntaxKind[SyntaxKind["LineCommentTrivia"] = 12] = "LineCommentTrivia"; + SyntaxKind[SyntaxKind["BlockCommentTrivia"] = 13] = "BlockCommentTrivia"; + SyntaxKind[SyntaxKind["LineBreakTrivia"] = 14] = "LineBreakTrivia"; + SyntaxKind[SyntaxKind["Trivia"] = 15] = "Trivia"; + SyntaxKind[SyntaxKind["Unknown"] = 16] = "Unknown"; + SyntaxKind[SyntaxKind["EOF"] = 17] = "EOF"; +})(SyntaxKind || (SyntaxKind = {})); +/** + * Parses the given text and returns the object the JSON content represents. On invalid input, the parser tries to be as fault tolerant as possible, but still return a result. + * Therefore, always check the errors list to find out if the input was valid. + */ +const parse = parse$1; +var ParseErrorCode; +(function (ParseErrorCode) { + ParseErrorCode[ParseErrorCode["InvalidSymbol"] = 1] = "InvalidSymbol"; + ParseErrorCode[ParseErrorCode["InvalidNumberFormat"] = 2] = "InvalidNumberFormat"; + ParseErrorCode[ParseErrorCode["PropertyNameExpected"] = 3] = "PropertyNameExpected"; + ParseErrorCode[ParseErrorCode["ValueExpected"] = 4] = "ValueExpected"; + ParseErrorCode[ParseErrorCode["ColonExpected"] = 5] = "ColonExpected"; + ParseErrorCode[ParseErrorCode["CommaExpected"] = 6] = "CommaExpected"; + ParseErrorCode[ParseErrorCode["CloseBraceExpected"] = 7] = "CloseBraceExpected"; + ParseErrorCode[ParseErrorCode["CloseBracketExpected"] = 8] = "CloseBracketExpected"; + ParseErrorCode[ParseErrorCode["EndOfFileExpected"] = 9] = "EndOfFileExpected"; + ParseErrorCode[ParseErrorCode["InvalidCommentToken"] = 10] = "InvalidCommentToken"; + ParseErrorCode[ParseErrorCode["UnexpectedEndOfComment"] = 11] = "UnexpectedEndOfComment"; + ParseErrorCode[ParseErrorCode["UnexpectedEndOfString"] = 12] = "UnexpectedEndOfString"; + ParseErrorCode[ParseErrorCode["UnexpectedEndOfNumber"] = 13] = "UnexpectedEndOfNumber"; + ParseErrorCode[ParseErrorCode["InvalidUnicode"] = 14] = "InvalidUnicode"; + ParseErrorCode[ParseErrorCode["InvalidEscapeCharacter"] = 15] = "InvalidEscapeCharacter"; + ParseErrorCode[ParseErrorCode["InvalidCharacter"] = 16] = "InvalidCharacter"; +})(ParseErrorCode || (ParseErrorCode = {})); + +const isWebWorker = typeof self !== "undefined" && typeof self.WorkerGlobalScope !== "undefined"; +const isNode = "process" in globalThis && typeof process !== "undefined" && typeof process.release !== "undefined" && process.release.name === "node"; +const isBun = "process" in globalThis && typeof process !== "undefined" && typeof process.release !== "undefined" && process.release.name === "bun"; +const isBrowser = isWebWorker || !isNode && !isBun; +let CDN_ROOT = ""; +let WASM = ""; +const WASM_PATH = "dist/"; +function setCDN(root) { + CDN_ROOT = root.endsWith("/") ? root : root + "/"; +} +function setWasm(data) { + WASM = data; +} +let _onigurumaPromise = null; +async function getOniguruma(wasmPath) { + if (!_onigurumaPromise) { + let loader; + if (isBrowser) { + if (typeof WASM === "string") { + loader = vscodeOniguruma.loadWASM({ + data: await fetch(_resolvePath(join(...dirpathparts(wasmPath), "onig.wasm"))) + }); + } else { + loader = vscodeOniguruma.loadWASM({ + data: WASM + }); + } + } else { + const path = require("path"); + const wasmPath2 = path.join(require.resolve("vscode-oniguruma"), "../onig.wasm"); + const fs = require("fs"); + const wasmBin = fs.readFileSync(wasmPath2).buffer; + loader = vscodeOniguruma.loadWASM(wasmBin); + } + _onigurumaPromise = loader.then(() => { + return { + createOnigScanner(patterns) { + return vscodeOniguruma.createOnigScanner(patterns); + }, + createOnigString(s) { + return vscodeOniguruma.createOnigString(s); + } + }; + }); + } + return _onigurumaPromise; +} +function _resolvePath(filepath) { + if (isBrowser) { + return `${CDN_ROOT}${filepath}`; + } else { + const path = require("path"); + if (path.isAbsolute(filepath)) { + return filepath; + } else { + return path.resolve(__dirname, "..", filepath); + } + } +} +async function _fetchAssets(filepath) { + const path = _resolvePath(filepath); + if (isBrowser) { + return await fetch(path).then((r) => r.text()); + } else { + const fs = require("fs"); + return await fs.promises.readFile(path, "utf-8"); + } +} +async function _fetchJSONAssets(filepath) { + const errors = []; + const assetString = await _fetchAssets(filepath); + let rawAsset; + try { + rawAsset = JSON.parse(assetString); + } catch (e) { + rawAsset = parse(assetString, errors, { + allowTrailingComma: true + }); + if (errors.length) { + throw errors[0]; + } + } + return rawAsset; +} +async function fetchTheme(themePath) { + let theme = await _fetchJSONAssets(themePath); + const shikiTheme = toShikiTheme(theme); + if (shikiTheme.include) { + const includedTheme = await fetchTheme(join(...dirpathparts(themePath), shikiTheme.include)); + if (includedTheme.settings) { + shikiTheme.settings = includedTheme.settings.concat(shikiTheme.settings); + } + if (includedTheme.bg && !shikiTheme.bg) { + shikiTheme.bg = includedTheme.bg; + } + if (includedTheme.colors) { + shikiTheme.colors = { ...includedTheme.colors, ...shikiTheme.colors }; + } + delete shikiTheme.include; + } + return shikiTheme; +} +async function fetchGrammar(filepath) { + return await _fetchJSONAssets(filepath); +} +function repairTheme(theme) { + if (!theme.settings) + theme.settings = []; + if (theme.settings[0] && theme.settings[0].settings && !theme.settings[0].scope) { + return; + } + theme.settings.unshift({ + settings: { + foreground: theme.fg, + background: theme.bg + } + }); +} +function toShikiTheme(rawTheme) { + const type = rawTheme.type || "dark"; + const shikiTheme = { + name: rawTheme.name, + type, + ...rawTheme, + ...getThemeDefaultColors(rawTheme) + }; + if (rawTheme.include) { + shikiTheme.include = rawTheme.include; + } + if (rawTheme.tokenColors) { + shikiTheme.settings = rawTheme.tokenColors; + delete shikiTheme.tokenColors; + } + repairTheme(shikiTheme); + return shikiTheme; +} +const VSCODE_FALLBACK_EDITOR_FG = { light: "#333333", dark: "#bbbbbb" }; +const VSCODE_FALLBACK_EDITOR_BG = { light: "#fffffe", dark: "#1e1e1e" }; +function getThemeDefaultColors(theme) { + let fg, bg; + let settings = theme.settings ? theme.settings : theme.tokenColors; + const globalSetting = settings ? settings.find((s) => { + return !s.name && !s.scope; + }) : void 0; + if (globalSetting?.settings?.foreground) { + fg = globalSetting.settings.foreground; + } + if (globalSetting?.settings?.background) { + bg = globalSetting.settings.background; + } + if (!fg && theme?.colors?.["editor.foreground"]) { + fg = theme.colors["editor.foreground"]; + } + if (!bg && theme?.colors?.["editor.background"]) { + bg = theme.colors["editor.background"]; + } + if (!fg) { + fg = theme.type === "light" ? VSCODE_FALLBACK_EDITOR_FG.light : VSCODE_FALLBACK_EDITOR_FG.dark; + } + if (!bg) { + bg = theme.type === "light" ? VSCODE_FALLBACK_EDITOR_BG.light : VSCODE_FALLBACK_EDITOR_BG.dark; + } + return { + fg, + bg + }; +} + +class Resolver { + constructor(onigLibPromise, onigLibName) { + this.languagesPath = "languages/"; + this.languageMap = {}; + this.scopeToLangMap = {}; + this._onigLibPromise = onigLibPromise; + this._onigLibName = onigLibName; + } + get onigLib() { + return this._onigLibPromise; + } + getOnigLibName() { + return this._onigLibName; + } + getLangRegistration(langIdOrAlias) { + return this.languageMap[langIdOrAlias]; + } + async loadGrammar(scopeName) { + const lang = this.scopeToLangMap[scopeName]; + if (!lang) { + return null; + } + if (lang.grammar) { + return lang.grammar; + } + const g = await fetchGrammar( + languages.includes(lang) ? `${this.languagesPath}${lang.path}` : lang.path + ); + lang.grammar = g; + return g; + } + addLanguage(l) { + this.languageMap[l.id] = l; + if (l.aliases) { + l.aliases.forEach((a) => { + this.languageMap[a] = l; + }); + } + this.scopeToLangMap[l.scopeName] = l; + } +} + +function tokenizeWithTheme(theme, colorMap, fileContents, grammar, options) { + let lines = fileContents.split(/\r\n|\r|\n/); + let ruleStack = vscodeTextmate.INITIAL; + let actual = []; + let final = []; + for (let i = 0, len = lines.length; i < len; i++) { + let line = lines[i]; + if (line === "") { + actual = []; + final.push([]); + continue; + } + let resultWithScopes; + let tokensWithScopes; + let tokensWithScopesIndex; + if (options.includeExplanation) { + resultWithScopes = grammar.tokenizeLine(line, ruleStack); + tokensWithScopes = resultWithScopes.tokens; + tokensWithScopesIndex = 0; + } + let result = grammar.tokenizeLine2(line, ruleStack); + let tokensLength = result.tokens.length / 2; + for (let j = 0; j < tokensLength; j++) { + let startIndex = result.tokens[2 * j]; + let nextStartIndex = j + 1 < tokensLength ? result.tokens[2 * j + 2] : line.length; + if (startIndex === nextStartIndex) { + continue; + } + let metadata = result.tokens[2 * j + 1]; + let foreground = StackElementMetadata.getForeground(metadata); + let foregroundColor = colorMap[foreground]; + let fontStyle = StackElementMetadata.getFontStyle(metadata); + let explanation = []; + if (options.includeExplanation) { + let offset = 0; + while (startIndex + offset < nextStartIndex) { + let tokenWithScopes = tokensWithScopes[tokensWithScopesIndex]; + let tokenWithScopesText = line.substring( + tokenWithScopes.startIndex, + tokenWithScopes.endIndex + ); + offset += tokenWithScopesText.length; + explanation.push({ + content: tokenWithScopesText, + scopes: explainThemeScopes(theme, tokenWithScopes.scopes) + }); + tokensWithScopesIndex++; + } + } + actual.push({ + content: line.substring(startIndex, nextStartIndex), + color: foregroundColor, + fontStyle, + explanation + }); + } + final.push(actual); + actual = []; + ruleStack = result.ruleStack; + } + return final; +} +function explainThemeScopes(theme, scopes) { + let result = []; + for (let i = 0, len = scopes.length; i < len; i++) { + let parentScopes = scopes.slice(0, i); + let scope = scopes[i]; + result[i] = { + scopeName: scope, + themeMatches: explainThemeScope(theme, scope, parentScopes) + }; + } + return result; +} +function matchesOne(selector, scope) { + let selectorPrefix = selector + "."; + if (selector === scope || scope.substring(0, selectorPrefix.length) === selectorPrefix) { + return true; + } + return false; +} +function matches(selector, selectorParentScopes, scope, parentScopes) { + if (!matchesOne(selector, scope)) { + return false; + } + let selectorParentIndex = selectorParentScopes.length - 1; + let parentIndex = parentScopes.length - 1; + while (selectorParentIndex >= 0 && parentIndex >= 0) { + if (matchesOne(selectorParentScopes[selectorParentIndex], parentScopes[parentIndex])) { + selectorParentIndex--; + } + parentIndex--; + } + if (selectorParentIndex === -1) { + return true; + } + return false; +} +function explainThemeScope(theme, scope, parentScopes) { + let result = [], resultLen = 0; + for (let i = 0, len = theme.settings.length; i < len; i++) { + let setting = theme.settings[i]; + let selectors; + if (typeof setting.scope === "string") { + selectors = setting.scope.split(/,/).map((scope2) => scope2.trim()); + } else if (Array.isArray(setting.scope)) { + selectors = setting.scope; + } else { + continue; + } + for (let j = 0, lenJ = selectors.length; j < lenJ; j++) { + let rawSelector = selectors[j]; + let rawSelectorPieces = rawSelector.split(/ /); + let selector = rawSelectorPieces[rawSelectorPieces.length - 1]; + let selectorParentScopes = rawSelectorPieces.slice(0, rawSelectorPieces.length - 1); + if (matches(selector, selectorParentScopes, scope, parentScopes)) { + result[resultLen++] = setting; + j = lenJ; + } + } + } + return result; +} + +// src/colors.ts +var namedColors = [ + "black", + "red", + "green", + "yellow", + "blue", + "magenta", + "cyan", + "white", + "brightBlack", + "brightRed", + "brightGreen", + "brightYellow", + "brightBlue", + "brightMagenta", + "brightCyan", + "brightWhite" +]; + +// src/decorations.ts +var decorations = { + 1: "bold", + 2: "dim", + 3: "italic", + 4: "underline", + 7: "reverse", + 9: "strikethrough" +}; + +// src/parser.ts +function findSequence(value, position) { + const nextEscape = value.indexOf("\x1B", position); + if (nextEscape !== -1) { + if (value[nextEscape + 1] === "[") { + const nextClose = value.indexOf("m", nextEscape); + return { + sequence: value.substring(nextEscape + 2, nextClose).split(";"), + startPosition: nextEscape, + position: nextClose + 1 + }; + } + } + return { + position: value.length + }; +} +function parseColor(sequence) { + const colorMode = sequence.shift(); + if (colorMode === "2") { + const rgb = sequence.splice(0, 3).map((x) => Number.parseInt(x)); + if (rgb.length !== 3 || rgb.some((x) => Number.isNaN(x))) + return; + return { + type: "rgb", + rgb + }; + } else if (colorMode === "5") { + const index = sequence.shift(); + if (index) { + return { type: "table", index: Number(index) }; + } + } +} +function parseSequence(sequence) { + const commands = []; + while (sequence.length > 0) { + const code = sequence.shift(); + if (!code) + continue; + const codeInt = Number.parseInt(code); + if (Number.isNaN(codeInt)) + continue; + if (codeInt === 0) { + commands.push({ type: "resetAll" }); + } else if (codeInt <= 9) { + const decoration = decorations[codeInt]; + if (decoration) { + commands.push({ + type: "setDecoration", + value: decorations[codeInt] + }); + } + } else if (codeInt <= 29) { + const decoration = decorations[codeInt - 20]; + if (decoration) { + commands.push({ + type: "resetDecoration", + value: decoration + }); + } + } else if (codeInt <= 37) { + commands.push({ + type: "setForegroundColor", + value: { type: "named", name: namedColors[codeInt - 30] } + }); + } else if (codeInt === 38) { + const color = parseColor(sequence); + if (color) { + commands.push({ + type: "setForegroundColor", + value: color + }); + } + } else if (codeInt === 39) { + commands.push({ + type: "resetForegroundColor" + }); + } else if (codeInt <= 47) { + commands.push({ + type: "setBackgroundColor", + value: { type: "named", name: namedColors[codeInt - 40] } + }); + } else if (codeInt === 48) { + const color = parseColor(sequence); + if (color) { + commands.push({ + type: "setBackgroundColor", + value: color + }); + } + } else if (codeInt === 49) { + commands.push({ + type: "resetBackgroundColor" + }); + } else if (codeInt >= 90 && codeInt <= 97) { + commands.push({ + type: "setForegroundColor", + value: { type: "named", name: namedColors[codeInt - 90 + 8] } + }); + } else if (codeInt >= 100 && codeInt <= 107) { + commands.push({ + type: "setBackgroundColor", + value: { type: "named", name: namedColors[codeInt - 100 + 8] } + }); + } + } + return commands; +} +function createAnsiSequenceParser() { + let foreground = null; + let background = null; + let decorations2 = /* @__PURE__ */ new Set(); + return { + parse(value) { + const tokens = []; + let position = 0; + do { + const findResult = findSequence(value, position); + const text = findResult.sequence ? value.substring(position, findResult.startPosition) : value.substring(position); + if (text.length > 0) { + tokens.push({ + value: text, + foreground, + background, + decorations: new Set(decorations2) + }); + } + if (findResult.sequence) { + const commands = parseSequence(findResult.sequence); + for (const styleToken of commands) { + if (styleToken.type === "resetAll") { + foreground = null; + background = null; + decorations2.clear(); + } else if (styleToken.type === "resetForegroundColor") { + foreground = null; + } else if (styleToken.type === "resetBackgroundColor") { + background = null; + } else if (styleToken.type === "resetDecoration") { + decorations2.delete(styleToken.value); + } + } + for (const styleToken of commands) { + if (styleToken.type === "setForegroundColor") { + foreground = styleToken.value; + } else if (styleToken.type === "setBackgroundColor") { + background = styleToken.value; + } else if (styleToken.type === "setDecoration") { + decorations2.add(styleToken.value); + } + } + } + position = findResult.position; + } while (position < value.length); + return tokens; + } + }; +} + +// src/palette.ts +var defaultNamedColorsMap = { + black: "#000000", + red: "#bb0000", + green: "#00bb00", + yellow: "#bbbb00", + blue: "#0000bb", + magenta: "#ff00ff", + cyan: "#00bbbb", + white: "#eeeeee", + brightBlack: "#555555", + brightRed: "#ff5555", + brightGreen: "#00ff00", + brightYellow: "#ffff55", + brightBlue: "#5555ff", + brightMagenta: "#ff55ff", + brightCyan: "#55ffff", + brightWhite: "#ffffff" +}; +function createColorPalette(namedColorsMap = defaultNamedColorsMap) { + function namedColor(name) { + return namedColorsMap[name]; + } + function rgbColor(rgb) { + return `#${rgb.map((x) => Math.max(0, Math.min(x, 255)).toString(16).padStart(2, "0")).join("")}`; + } + let colorTable; + function getColorTable() { + if (colorTable) { + return colorTable; + } + colorTable = []; + for (let i = 0; i < namedColors.length; i++) { + colorTable.push(namedColor(namedColors[i])); + } + let levels = [0, 95, 135, 175, 215, 255]; + for (let r = 0; r < 6; r++) { + for (let g = 0; g < 6; g++) { + for (let b = 0; b < 6; b++) { + colorTable.push(rgbColor([levels[r], levels[g], levels[b]])); + } + } + } + let level = 8; + for (let i = 0; i < 24; i++, level += 10) { + colorTable.push(rgbColor([level, level, level])); + } + return colorTable; + } + function tableColor(index) { + return getColorTable()[index]; + } + function value(color) { + switch (color.type) { + case "named": + return namedColor(color.name); + case "rgb": + return rgbColor(color.rgb); + case "table": + return tableColor(color.index); + } + } + return { + value + }; +} + +function tokenizeAnsiWithTheme(theme, fileContents) { + const lines = fileContents.split(/\r?\n/); + const colorPalette = createColorPalette( + Object.fromEntries( + namedColors.map((name) => [ + name, + theme.colors[`terminal.ansi${name[0].toUpperCase()}${name.substring(1)}`] + ]) + ) + ); + const parser = createAnsiSequenceParser(); + return lines.map( + (line) => parser.parse(line).map((token) => { + let color; + if (token.decorations.has("reverse")) { + color = token.background ? colorPalette.value(token.background) : theme.bg; + } else { + color = token.foreground ? colorPalette.value(token.foreground) : theme.fg; + } + if (token.decorations.has("dim")) { + color = dimColor(color); + } + let fontStyle = FontStyle.None; + if (token.decorations.has("bold")) { + fontStyle |= FontStyle.Bold; + } + if (token.decorations.has("italic")) { + fontStyle |= FontStyle.Italic; + } + if (token.decorations.has("underline")) { + fontStyle |= FontStyle.Underline; + } + return { + content: token.value, + color, + fontStyle + }; + }) + ); +} +function dimColor(color) { + const hexMatch = color.match(/#([0-9a-f]{3})([0-9a-f]{3})?([0-9a-f]{2})?/); + if (hexMatch) { + if (hexMatch[3]) { + const alpha = Math.round(Number.parseInt(hexMatch[3], 16) / 2).toString(16).padStart(2, "0"); + return `#${hexMatch[1]}${hexMatch[2]}${alpha}`; + } else if (hexMatch[2]) { + return `#${hexMatch[1]}${hexMatch[2]}80`; + } else { + return `#${Array.from(hexMatch[1]).map((x) => `${x}${x}`).join("")}80`; + } + } + const cssVarMatch = color.match(/var\((--shiki-color-ansi-[\w-]+)\)/); + if (cssVarMatch) { + return `var(${cssVarMatch[1]}-dim)`; + } + return color; +} + +const defaultElements = { + pre({ className, style, children }) { + return `
${children}
`; + }, + code({ children }) { + return `${children}`; + }, + line({ className, children }) { + return `${children}`; + }, + token({ style, children }) { + return `${children}`; + } +}; +function renderToHtml(lines, options = {}) { + const bg = options.bg || "#fff"; + const optionsByLineNumber = groupBy(options.lineOptions ?? [], (option) => option.line); + const userElements = options.elements || {}; + function h(type = "", props = {}, children) { + const element = userElements[type] || defaultElements[type]; + if (element) { + children = children.filter(Boolean); + return element({ + ...props, + children: type === "code" ? children.join("\n") : children.join("") + }); + } + return ""; + } + return h( + "pre", + { className: "shiki " + (options.themeName || ""), style: `background-color: ${bg}` }, + [ + options.langId ? `
${options.langId}
` : "", + h( + "code", + {}, + lines.map((line, index) => { + const lineNumber = index + 1; + const lineOptions = optionsByLineNumber.get(lineNumber) ?? []; + const lineClasses = getLineClasses(lineOptions).join(" "); + return h( + "line", + { + className: lineClasses, + lines, + line, + index + }, + line.map((token, index2) => { + const cssDeclarations = [`color: ${token.color || options.fg}`]; + if (token.fontStyle & FontStyle.Italic) { + cssDeclarations.push("font-style: italic"); + } + if (token.fontStyle & FontStyle.Bold) { + cssDeclarations.push("font-weight: bold"); + } + if (token.fontStyle & FontStyle.Underline) { + cssDeclarations.push("text-decoration: underline"); + } + return h( + "token", + { + style: cssDeclarations.join("; "), + tokens: line, + token, + index: index2 + }, + [escapeHtml(token.content)] + ); + }) + ); + }) + ) + ] + ); +} +const htmlEscapes = { + "&": "&", + "<": "<", + ">": ">", + '"': """, + "'": "'" +}; +function escapeHtml(html) { + return html.replace(/[&<>"']/g, (chr) => htmlEscapes[chr]); +} +function getLineClasses(lineOptions) { + const lineClasses = /* @__PURE__ */ new Set(["line"]); + for (const lineOption of lineOptions) { + for (const lineClass of lineOption.classes ?? []) { + lineClasses.add(lineClass); + } + } + return Array.from(lineClasses); +} + +class Registry extends vscodeTextmate.Registry { + constructor(_resolver) { + super(_resolver); + this._resolver = _resolver; + this.themesPath = "themes/"; + this._resolvedThemes = {}; + this._resolvedGrammars = {}; + this._langGraph = /* @__PURE__ */ new Map(); + this._langMap = languages.reduce((acc, lang) => { + acc[lang.id] = lang; + return acc; + }, {}); + } + getTheme(theme) { + if (typeof theme === "string") { + return this._resolvedThemes[theme]; + } else { + return theme; + } + } + async loadTheme(theme) { + if (typeof theme === "string") { + if (!this._resolvedThemes[theme]) { + this._resolvedThemes[theme] = await fetchTheme(`${this.themesPath}${theme}.json`); + } + return this._resolvedThemes[theme]; + } else { + theme = toShikiTheme(theme); + if (theme.name) { + this._resolvedThemes[theme.name] = theme; + } + return theme; + } + } + async loadThemes(themes) { + return await Promise.all(themes.map((theme) => this.loadTheme(theme))); + } + getLoadedThemes() { + return Object.keys(this._resolvedThemes); + } + getGrammar(name) { + return this._resolvedGrammars[name]; + } + async loadLanguage(lang) { + const embeddedLanguages = lang.embeddedLangs?.reduce(async (acc, l, idx) => { + if (!this.getLoadedLanguages().includes(l) && this._resolver.getLangRegistration(l)) { + await this._resolver.loadGrammar(this._resolver.getLangRegistration(l).scopeName); + acc[this._resolver.getLangRegistration(l).scopeName] = idx + 2; + return acc; + } + }, {}); + const grammarConfig = { + embeddedLanguages, + balancedBracketSelectors: lang.balancedBracketSelectors || ["*"], + unbalancedBracketSelectors: lang.unbalancedBracketSelectors || [] + }; + const g = await this.loadGrammarWithConfiguration(lang.scopeName, 1, grammarConfig); + this._resolvedGrammars[lang.id] = g; + if (lang.aliases) { + lang.aliases.forEach((la) => { + this._resolvedGrammars[la] = g; + }); + } + } + async loadLanguages(langs) { + for (const lang of langs) { + this.resolveEmbeddedLanguages(lang); + } + const langsGraphArray = Array.from(this._langGraph.values()); + for (const lang of langsGraphArray) { + this._resolver.addLanguage(lang); + } + for (const lang of langsGraphArray) { + await this.loadLanguage(lang); + } + } + getLoadedLanguages() { + return Object.keys(this._resolvedGrammars); + } + resolveEmbeddedLanguages(lang) { + if (!this._langGraph.has(lang.id)) { + this._langGraph.set(lang.id, lang); + } + if (lang.embeddedLangs) { + for (const embeddedLang of lang.embeddedLangs) { + this._langGraph.set(embeddedLang, this._langMap[embeddedLang]); + } + } + } +} + +function resolveLang(lang) { + return typeof lang === "string" ? languages.find((l) => l.id === lang || l.aliases?.includes(lang)) : lang; +} +function resolveOptions(options) { + let _languages = languages; + let _themes = options.themes || []; + let _wasmPath = options.paths?.wasm ? options.paths.wasm.endsWith("/") ? options.paths.wasm : options.paths.wasm + "/" : WASM_PATH; + if (options.langs) { + _languages = options.langs.map(resolveLang); + } + if (options.theme) { + _themes.unshift(options.theme); + } + if (!_themes.length) { + _themes = ["nord"]; + } + return { _languages, _themes, _wasmPath }; +} +function generateDefaultColorReplacements() { + const replacements = { + "#000001": "var(--shiki-color-text)", + "#000002": "var(--shiki-color-background)", + "#000004": "var(--shiki-token-constant)", + "#000005": "var(--shiki-token-string)", + "#000006": "var(--shiki-token-comment)", + "#000007": "var(--shiki-token-keyword)", + "#000008": "var(--shiki-token-parameter)", + "#000009": "var(--shiki-token-function)", + "#000010": "var(--shiki-token-string-expression)", + "#000011": "var(--shiki-token-punctuation)", + "#000012": "var(--shiki-token-link)" + }; + for (let i = 0; i < namedColors.length; i++) { + const code = `#A${i.toString().padStart(5, "0")}`; + const colorNameKebab = namedColors[i].replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase(); + replacements[code] = `var(--shiki-color-ansi-${colorNameKebab})`; + } + return replacements; +} +async function getHighlighter(options) { + const { _languages, _themes, _wasmPath } = resolveOptions(options); + const _resolver = new Resolver(getOniguruma(_wasmPath), "vscode-oniguruma"); + const _registry = new Registry(_resolver); + if (options.paths?.themes) { + _registry.themesPath = options.paths.themes.endsWith("/") ? options.paths.themes : options.paths.themes + "/"; + } + if (options.paths?.languages) { + _resolver.languagesPath = options.paths.languages.endsWith("/") ? options.paths.languages : options.paths.languages + "/"; + } + const themes = await _registry.loadThemes(_themes); + const _defaultTheme = themes[0]; + let _currentTheme; + await _registry.loadLanguages(_languages); + let COLOR_REPLACEMENTS = generateDefaultColorReplacements(); + function setColorReplacements(map) { + COLOR_REPLACEMENTS = map; + } + function fixCssVariablesTheme(theme, colorMap) { + theme.bg = COLOR_REPLACEMENTS[theme.bg] || theme.bg; + theme.fg = COLOR_REPLACEMENTS[theme.fg] || theme.fg; + Object.entries(theme.colors).forEach(([key, value]) => { + theme.colors[key] = COLOR_REPLACEMENTS[value] || value; + }); + colorMap.forEach((val, i) => { + colorMap[i] = COLOR_REPLACEMENTS[val] || val; + }); + } + function getTheme(theme) { + const _theme = theme ? _registry.getTheme(theme) : _defaultTheme; + if (!_theme) { + throw Error(`No theme registration for ${theme}`); + } + if (!_currentTheme || _currentTheme.name !== _theme.name) { + _registry.setTheme(_theme); + _currentTheme = _theme; + } + const _colorMap = _registry.getColorMap(); + if (_theme.type === "css") { + fixCssVariablesTheme(_theme, _colorMap); + } + return { _theme, _colorMap }; + } + function getGrammar(lang) { + const _grammar = _registry.getGrammar(lang); + if (!_grammar) { + throw Error(`No language registration for ${lang}`); + } + return { _grammar }; + } + function codeToThemedTokens(code, lang = "text", theme, options2 = { includeExplanation: true }) { + if (isPlaintext(lang)) { + const lines = code.split(/\r\n|\r|\n/); + return [...lines.map((line) => [{ content: line }])]; + } + const { _grammar } = getGrammar(lang); + const { _theme, _colorMap } = getTheme(theme); + return tokenizeWithTheme(_theme, _colorMap, code, _grammar, options2); + } + function ansiToThemedTokens(ansi, theme) { + const { _theme } = getTheme(theme); + return tokenizeAnsiWithTheme(_theme, ansi); + } + function codeToHtml(code, arg1 = "text", arg2) { + let options2; + if (typeof arg1 === "object") { + options2 = arg1; + } else { + options2 = { + lang: arg1, + theme: arg2 + }; + } + const tokens = codeToThemedTokens(code, options2.lang, options2.theme, { + includeExplanation: false + }); + const { _theme } = getTheme(options2.theme); + return renderToHtml(tokens, { + fg: _theme.fg, + bg: _theme.bg, + lineOptions: options2?.lineOptions, + themeName: _theme.name + }); + } + function ansiToHtml(ansi, options2) { + const tokens = ansiToThemedTokens(ansi, options2?.theme); + const { _theme } = getTheme(options2?.theme); + return renderToHtml(tokens, { + fg: _theme.fg, + bg: _theme.bg, + lineOptions: options2?.lineOptions, + themeName: _theme.name + }); + } + async function loadTheme(theme) { + await _registry.loadTheme(theme); + } + async function loadLanguage(lang) { + const _lang = resolveLang(lang); + _resolver.addLanguage(_lang); + await _registry.loadLanguage(_lang); + } + function getLoadedThemes() { + return _registry.getLoadedThemes(); + } + function getLoadedLanguages() { + return _registry.getLoadedLanguages(); + } + function getBackgroundColor(theme) { + const { _theme } = getTheme(theme); + return _theme.bg; + } + function getForegroundColor(theme) { + const { _theme } = getTheme(theme); + return _theme.fg; + } + return { + codeToThemedTokens, + codeToHtml, + ansiToThemedTokens, + ansiToHtml, + getTheme: (theme) => { + return getTheme(theme)._theme; + }, + loadTheme, + loadLanguage, + getBackgroundColor, + getForegroundColor, + getLoadedThemes, + getLoadedLanguages, + setColorReplacements + }; +} +function isPlaintext(lang) { + return !lang || ["plaintext", "txt", "text"].includes(lang); +} + +function setOnigasmWASM(path) { + setWasm(path); +} + +exports.BUNDLED_LANGUAGES = languages; +exports.BUNDLED_THEMES = themes; +exports.FontStyle = FontStyle; +exports.getHighlighter = getHighlighter; +exports.loadTheme = fetchTheme; +exports.renderToHtml = renderToHtml; +exports.setCDN = setCDN; +exports.setOnigasmWASM = setOnigasmWASM; +exports.setWasm = setWasm; +exports.toShikiTheme = toShikiTheme; diff --git a/docs/shiki/dist/index.jsdelivr.iife.js b/docs/shiki/dist/index.jsdelivr.iife.js new file mode 100644 index 00000000..91f0b635 --- /dev/null +++ b/docs/shiki/dist/index.jsdelivr.iife.js @@ -0,0 +1 @@ +!function(e){"use strict";const t=[{id:"abap",scopeName:"source.abap",path:"abap.tmLanguage.json",displayName:"ABAP",samplePath:"abap.sample"},{id:"actionscript-3",scopeName:"source.actionscript.3",path:"actionscript-3.tmLanguage.json",displayName:"ActionScript",samplePath:"actionscript-3.sample"},{id:"ada",scopeName:"source.ada",path:"ada.tmLanguage.json",displayName:"Ada",samplePath:"ada.sample"},{id:"apache",scopeName:"source.apacheconf",path:"apache.tmLanguage.json",displayName:"Apache Conf",samplePath:"apache.sample"},{id:"apex",scopeName:"source.apex",path:"apex.tmLanguage.json",displayName:"Apex",samplePath:"apex.sample"},{id:"apl",scopeName:"source.apl",path:"apl.tmLanguage.json",displayName:"APL",samplePath:"apl.sample",embeddedLangs:["html","xml","css","javascript","json"]},{id:"applescript",scopeName:"source.applescript",path:"applescript.tmLanguage.json",displayName:"AppleScript",samplePath:"applescript.sample"},{id:"ara",scopeName:"source.ara",path:"ara.tmLanguage.json",displayName:"Ara",samplePath:"ara.sample"},{id:"asm",scopeName:"source.asm.x86_64",path:"asm.tmLanguage.json",displayName:"Assembly",samplePath:"asm.sample"},{id:"astro",scopeName:"source.astro",path:"astro.tmLanguage.json",displayName:"Astro",samplePath:"astro.sample",embeddedLangs:["json","javascript","typescript","stylus","sass","css","scss","less","postcss","tsx"]},{id:"awk",scopeName:"source.awk",path:"awk.tmLanguage.json",displayName:"AWK",samplePath:"awk.sample"},{id:"ballerina",scopeName:"source.ballerina",path:"ballerina.tmLanguage.json",displayName:"Ballerina",samplePath:"ballerina.sample"},{id:"bat",scopeName:"source.batchfile",path:"bat.tmLanguage.json",displayName:"Batch",samplePath:"bat.sample",aliases:["batch"]},{id:"beancount",scopeName:"text.beancount",path:"beancount.tmLanguage.json",displayName:"Beancount",samplePath:"beancount.sample"},{id:"berry",scopeName:"source.berry",path:"berry.tmLanguage.json",displayName:"Berry",samplePath:"berry.sample",aliases:["be"]},{id:"bibtex",scopeName:"text.bibtex",path:"bibtex.tmLanguage.json",displayName:"BibTeX",samplePath:"bibtex.sample"},{id:"bicep",scopeName:"source.bicep",path:"bicep.tmLanguage.json",displayName:"Bicep",samplePath:"bicep.sample"},{id:"blade",scopeName:"text.html.php.blade",path:"blade.tmLanguage.json",displayName:"Blade",samplePath:"blade.sample",embeddedLangs:["html","xml","sql","javascript","json","css"]},{id:"c",scopeName:"source.c",path:"c.tmLanguage.json",displayName:"C",samplePath:"c.sample"},{id:"cadence",scopeName:"source.cadence",path:"cadence.tmLanguage.json",displayName:"Cadence",samplePath:"cadence.sample",aliases:["cdc"]},{id:"clarity",scopeName:"source.clar",path:"clarity.tmLanguage.json",displayName:"Clarity",samplePath:"clarity.sample"},{id:"clojure",scopeName:"source.clojure",path:"clojure.tmLanguage.json",displayName:"Clojure",samplePath:"clojure.sample",aliases:["clj"]},{id:"cmake",scopeName:"source.cmake",path:"cmake.tmLanguage.json",displayName:"CMake",samplePath:"cmake.sample"},{id:"cobol",scopeName:"source.cobol",path:"cobol.tmLanguage.json",displayName:"COBOL",samplePath:"cobol.sample",embeddedLangs:["sql","html","java"]},{id:"codeql",scopeName:"source.ql",path:"codeql.tmLanguage.json",displayName:"CodeQL",samplePath:"codeql.sample",aliases:["ql"]},{id:"coffee",scopeName:"source.coffee",path:"coffee.tmLanguage.json",displayName:"CoffeeScript",samplePath:"coffee.sample",embeddedLangs:["javascript"]},{id:"cpp",scopeName:"source.cpp",path:"cpp.tmLanguage.json",displayName:"C++",samplePath:"cpp.sample",aliases:["c++"],embeddedLangs:["glsl","sql"]},{id:"crystal",scopeName:"source.crystal",path:"crystal.tmLanguage.json",displayName:"Crystal",samplePath:"crystal.sample",embeddedLangs:["html","sql","css","c","javascript","shellscript"]},{id:"csharp",scopeName:"source.cs",path:"csharp.tmLanguage.json",displayName:"C#",samplePath:"csharp.sample",aliases:["c#","cs"]},{id:"css",scopeName:"source.css",path:"css.tmLanguage.json",displayName:"CSS",samplePath:"css.sample"},{id:"cue",scopeName:"source.cue",path:"cue.tmLanguage.json",displayName:"CUE",samplePath:"cue.sample"},{id:"cypher",scopeName:"source.cypher",path:"cypher.tmLanguage.json",displayName:"Cypher",samplePath:"cypher.sample",aliases:["cql"]},{id:"d",scopeName:"source.d",path:"d.tmLanguage.json",displayName:"D",samplePath:"d.sample"},{id:"dart",scopeName:"source.dart",path:"dart.tmLanguage.json",displayName:"Dart",samplePath:"dart.sample"},{id:"dax",scopeName:"source.dax",path:"dax.tmLanguage.json",displayName:"DAX",samplePath:"dax.sample"},{id:"diff",scopeName:"source.diff",path:"diff.tmLanguage.json",displayName:"Diff",samplePath:"diff.sample"},{id:"docker",scopeName:"source.dockerfile",path:"docker.tmLanguage.json",displayName:"Docker",samplePath:"docker.sample",aliases:["dockerfile"]},{id:"dream-maker",scopeName:"source.dm",path:"dream-maker.tmLanguage.json",displayName:"Dream Maker",samplePath:"dream-maker.sample"},{id:"elixir",scopeName:"source.elixir",path:"elixir.tmLanguage.json",displayName:"Elixir",samplePath:"elixir.sample",embeddedLangs:["html"]},{id:"elm",scopeName:"source.elm",path:"elm.tmLanguage.json",displayName:"Elm",samplePath:"elm.sample",embeddedLangs:["glsl"]},{id:"erb",scopeName:"text.html.erb",path:"erb.tmLanguage.json",displayName:"ERB",samplePath:"erb.sample",embeddedLangs:["html","ruby"]},{id:"erlang",scopeName:"source.erlang",path:"erlang.tmLanguage.json",displayName:"Erlang",samplePath:"erlang.sample",aliases:["erl"]},{id:"fish",scopeName:"source.fish",path:"fish.tmLanguage.json",displayName:"Fish",samplePath:"fish.sample"},{id:"fsharp",scopeName:"source.fsharp",path:"fsharp.tmLanguage.json",displayName:"F#",samplePath:"fsharp.sample",aliases:["f#","fs"],embeddedLangs:["markdown"]},{id:"gdresource",scopeName:"source.gdresource",path:"gdresource.tmLanguage.json",displayName:"GDResource",samplePath:"gdresource.sample",embeddedLangs:["gdshader","gdscript"]},{id:"gdscript",scopeName:"source.gdscript",path:"gdscript.tmLanguage.json",displayName:"GDScript",samplePath:"gdscript.sample"},{id:"gdshader",scopeName:"source.gdshader",path:"gdshader.tmLanguage.json",displayName:"GDShader",samplePath:"gdshader.sample"},{id:"gherkin",scopeName:"text.gherkin.feature",path:"gherkin.tmLanguage.json",displayName:"Gherkin",samplePath:"gherkin.sample"},{id:"git-commit",scopeName:"text.git-commit",path:"git-commit.tmLanguage.json",displayName:"Git Commit Message",embeddedLangs:["diff"]},{id:"git-rebase",scopeName:"text.git-rebase",path:"git-rebase.tmLanguage.json",displayName:"Git Rebase Message",embeddedLangs:["shellscript"]},{id:"glimmer-js",scopeName:"source.gjs",path:"glimmer-js.tmLanguage.json",displayName:"Glimmer JS",aliases:["gjs"],embeddedLangs:["javascript","handlebars"]},{id:"glimmer-ts",scopeName:"source.gts",path:"glimmer-ts.tmLanguage.json",displayName:"Glimmer TS",aliases:["gts"],embeddedLangs:["typescript","handlebars"]},{id:"glsl",scopeName:"source.glsl",path:"glsl.tmLanguage.json",displayName:"GLSL",samplePath:"glsl.sample",embeddedLangs:["c"]},{id:"gnuplot",scopeName:"source.gnuplot",path:"gnuplot.tmLanguage.json",displayName:"Gnuplot",samplePath:"gnuplot.sample"},{id:"go",scopeName:"source.go",path:"go.tmLanguage.json",displayName:"Go",samplePath:"go.sample"},{id:"graphql",scopeName:"source.graphql",path:"graphql.tmLanguage.json",displayName:"GraphQL",samplePath:"graphql.sample",aliases:["gql"],embeddedLangs:["javascript","typescript","jsx","tsx"]},{id:"groovy",scopeName:"source.groovy",path:"groovy.tmLanguage.json",displayName:"Groovy",samplePath:"groovy.sample"},{id:"hack",scopeName:"source.hack",path:"hack.tmLanguage.json",displayName:"Hack",samplePath:"hack.sample",embeddedLangs:["html","sql"]},{id:"haml",scopeName:"text.haml",path:"haml.tmLanguage.json",displayName:"Ruby Haml",samplePath:"haml.sample",embeddedLangs:["ruby","javascript","sass","coffee","markdown","css"]},{id:"handlebars",scopeName:"text.html.handlebars",path:"handlebars.tmLanguage.json",displayName:"Handlebars",samplePath:"handlebars.sample",aliases:["hbs"],embeddedLangs:["html","css","javascript","yaml"]},{id:"haskell",scopeName:"source.haskell",path:"haskell.tmLanguage.json",displayName:"Haskell",samplePath:"haskell.sample",aliases:["hs"]},{id:"hcl",scopeName:"source.hcl",path:"hcl.tmLanguage.json",displayName:"HashiCorp HCL",samplePath:"hcl.sample"},{id:"hjson",scopeName:"source.hjson",path:"hjson.tmLanguage.json",displayName:"Hjson",samplePath:"hjson.sample"},{id:"hlsl",scopeName:"source.hlsl",path:"hlsl.tmLanguage.json",displayName:"HLSL",samplePath:"hlsl.sample"},{id:"html",scopeName:"text.html.basic",path:"html.tmLanguage.json",displayName:"HTML",samplePath:"html.sample",embeddedLangs:["javascript","css"]},{id:"http",scopeName:"source.http",path:"http.tmLanguage.json",displayName:"HTTP",samplePath:"http.sample",embeddedLangs:["shellscript","json","xml","graphql"]},{id:"imba",scopeName:"source.imba",path:"imba.tmLanguage.json",displayName:"Imba",samplePath:"imba.sample"},{id:"ini",scopeName:"source.ini",path:"ini.tmLanguage.json",displayName:"INI",samplePath:"ini.sample",aliases:["properties"]},{id:"java",scopeName:"source.java",path:"java.tmLanguage.json",displayName:"Java",samplePath:"java.sample"},{id:"javascript",scopeName:"source.js",path:"javascript.tmLanguage.json",displayName:"JavaScript",samplePath:"javascript.sample",aliases:["js"]},{id:"jinja-html",scopeName:"text.html.jinja",path:"jinja-html.tmLanguage.json",displayName:"Jinja",samplePath:"jinja-html.sample",embeddedLangs:["html"]},{id:"jison",scopeName:"source.jison",path:"jison.tmLanguage.json",displayName:"Jison",samplePath:"jison.sample",embeddedLangs:["javascript"]},{id:"json",scopeName:"source.json",path:"json.tmLanguage.json",displayName:"JSON",samplePath:"json.sample"},{id:"json5",scopeName:"source.json5",path:"json5.tmLanguage.json",displayName:"JSON5",samplePath:"json5.sample"},{id:"jsonc",scopeName:"source.json.comments",path:"jsonc.tmLanguage.json",displayName:"JSON with Comments",samplePath:"jsonc.sample"},{id:"jsonl",scopeName:"source.json.lines",path:"jsonl.tmLanguage.json",displayName:"JSON Lines",samplePath:"jsonl.sample"},{id:"jsonnet",scopeName:"source.jsonnet",path:"jsonnet.tmLanguage.json",displayName:"Jsonnet",samplePath:"jsonnet.sample"},{id:"jssm",scopeName:"source.jssm",path:"jssm.tmLanguage.json",displayName:"JSSM",samplePath:"jssm.sample",aliases:["fsl"]},{id:"jsx",scopeName:"source.js.jsx",path:"jsx.tmLanguage.json",displayName:"JSX",samplePath:"jsx.sample"},{id:"julia",scopeName:"source.julia",path:"julia.tmLanguage.json",displayName:"Julia",samplePath:"julia.sample",embeddedLangs:["cpp","python","javascript","r","sql"]},{id:"kotlin",scopeName:"source.kotlin",path:"kotlin.tmLanguage.json",displayName:"Kotlin",samplePath:"kotlin.sample",aliases:["kt","kts"]},{id:"kusto",scopeName:"source.kusto",path:"kusto.tmLanguage.json",displayName:"Kusto",samplePath:"kusto.sample",aliases:["kql"]},{id:"latex",scopeName:"text.tex.latex",path:"latex.tmLanguage.json",displayName:"LaTeX",samplePath:"latex.sample",embeddedLangs:["tex","css","haskell","html","xml","java","lua","julia","ruby","javascript","typescript","python","yaml","rust","scala","gnuplot"]},{id:"less",scopeName:"source.css.less",path:"less.tmLanguage.json",displayName:"Less",samplePath:"less.sample",embeddedLangs:["css"]},{id:"liquid",scopeName:"text.html.liquid",path:"liquid.tmLanguage.json",displayName:"Liquid",samplePath:"liquid.sample",embeddedLangs:["html","css","json","javascript"]},{id:"lisp",scopeName:"source.lisp",path:"lisp.tmLanguage.json",displayName:"Lisp",samplePath:"lisp.sample"},{id:"logo",scopeName:"source.logo",path:"logo.tmLanguage.json",displayName:"Logo",samplePath:"logo.sample"},{id:"lua",scopeName:"source.lua",path:"lua.tmLanguage.json",displayName:"Lua",samplePath:"lua.sample",embeddedLangs:["c"]},{id:"make",scopeName:"source.makefile",path:"make.tmLanguage.json",displayName:"Makefile",samplePath:"make.sample",aliases:["makefile"]},{id:"markdown",scopeName:"text.html.markdown",path:"markdown.tmLanguage.json",displayName:"Markdown",samplePath:"markdown.sample",aliases:["md"],embeddedLangs:["css","html","ini","java","lua","make","perl","r","ruby","php","sql","vb","xml","xsl","yaml","bat","clojure","coffee","c","cpp","diff","docker","git-commit","git-rebase","go","groovy","pug","javascript","json","jsonc","less","objective-c","swift","scss","raku","powershell","python","julia","rust","scala","shellscript","typescript","tsx","csharp","fsharp","dart","handlebars","erlang","elixir","latex","bibtex"]},{id:"marko",scopeName:"text.marko",path:"marko.tmLanguage.json",displayName:"Marko",samplePath:"marko.sample",embeddedLangs:["css","less","scss","javascript"]},{id:"matlab",scopeName:"source.matlab",path:"matlab.tmLanguage.json",displayName:"MATLAB",samplePath:"matlab.sample"},{id:"mdc",scopeName:"text.markdown.mdc",path:"mdc.tmLanguage.json",displayName:"mdc",samplePath:"mdc.sample",embeddedLangs:["markdown","yaml"]},{id:"mdx",scopeName:"source.mdx",path:"mdx.tmLanguage.json",displayName:"MDX",samplePath:"mdx.sample",embeddedLangs:["tsx","toml","yaml","c","clojure","coffee","cpp","csharp","css","diff","docker","elixir","elm","erlang","go","graphql","haskell","html","ini","java","javascript","json","julia","kotlin","less","lua","make","markdown","objective-c","perl","python","r","ruby","rust","scala","scss","shellscript","shellsession","sql","xml","swift","typescript"]},{id:"mermaid",scopeName:"source.mermaid",path:"mermaid.tmLanguage.json",displayName:"Mermaid",samplePath:"mermaid.sample"},{id:"mojo",scopeName:"source.mojo",path:"mojo.tmLanguage.json",displayName:"MagicPython",samplePath:"mojo.sample"},{id:"narrat",scopeName:"source.narrat",path:"narrat.tmLanguage.json",displayName:"Narrat Language",samplePath:"narrat.sample",aliases:["nar"]},{id:"nextflow",scopeName:"source.nextflow",path:"nextflow.tmLanguage.json",displayName:"Nextflow",samplePath:"nextflow.sample",aliases:["nf"]},{id:"nginx",scopeName:"source.nginx",path:"nginx.tmLanguage.json",displayName:"Nginx",samplePath:"nginx.sample",embeddedLangs:["lua"]},{id:"nim",scopeName:"source.nim",path:"nim.tmLanguage.json",displayName:"Nim",samplePath:"nim.sample",embeddedLangs:["c","html","xml","javascript","css","glsl","markdown"]},{id:"nix",scopeName:"source.nix",path:"nix.tmLanguage.json",displayName:"Nix",samplePath:"nix.sample"},{id:"objective-c",scopeName:"source.objc",path:"objective-c.tmLanguage.json",displayName:"Objective-C",samplePath:"objective-c.sample",aliases:["objc"]},{id:"objective-cpp",scopeName:"source.objcpp",path:"objective-cpp.tmLanguage.json",displayName:"Objective-C++",samplePath:"objective-cpp.sample"},{id:"ocaml",scopeName:"source.ocaml",path:"ocaml.tmLanguage.json",displayName:"OCaml",samplePath:"ocaml.sample"},{id:"pascal",scopeName:"source.pascal",path:"pascal.tmLanguage.json",displayName:"Pascal",samplePath:"pascal.sample"},{id:"perl",scopeName:"source.perl",path:"perl.tmLanguage.json",displayName:"Perl",samplePath:"perl.sample",embeddedLangs:["html","xml","css","javascript","sql"]},{id:"php",scopeName:"source.php",path:"php.tmLanguage.json",displayName:"PHP",samplePath:"php.sample",embeddedLangs:["html","xml","sql","javascript","json","css"]},{id:"plsql",scopeName:"source.plsql.oracle",path:"plsql.tmLanguage.json",displayName:"PL/SQL",samplePath:"plsql.sample"},{id:"postcss",scopeName:"source.css.postcss",path:"postcss.tmLanguage.json",displayName:"PostCSS",samplePath:"postcss.sample"},{id:"powerquery",scopeName:"source.powerquery",path:"powerquery.tmLanguage.json",displayName:"PowerQuery",samplePath:"powerquery.sample"},{id:"powershell",scopeName:"source.powershell",path:"powershell.tmLanguage.json",displayName:"PowerShell",samplePath:"powershell.sample",aliases:["ps","ps1"]},{id:"prisma",scopeName:"source.prisma",path:"prisma.tmLanguage.json",displayName:"Prisma",samplePath:"prisma.sample"},{id:"prolog",scopeName:"source.prolog",path:"prolog.tmLanguage.json",displayName:"Prolog",samplePath:"prolog.sample"},{id:"proto",scopeName:"source.proto",path:"proto.tmLanguage.json",displayName:"Protocol Buffer 3",samplePath:"proto.sample"},{id:"pug",scopeName:"text.pug",path:"pug.tmLanguage.json",displayName:"Pug",samplePath:"pug.sample",aliases:["jade"],embeddedLangs:["javascript","css","sass","scss","stylus","coffee","html"]},{id:"puppet",scopeName:"source.puppet",path:"puppet.tmLanguage.json",displayName:"Puppet",samplePath:"puppet.sample"},{id:"purescript",scopeName:"source.purescript",path:"purescript.tmLanguage.json",displayName:"PureScript",samplePath:"purescript.sample"},{id:"python",scopeName:"source.python",path:"python.tmLanguage.json",displayName:"Python",samplePath:"python.sample",aliases:["py"]},{id:"r",scopeName:"source.r",path:"r.tmLanguage.json",displayName:"R",samplePath:"r.sample"},{id:"raku",scopeName:"source.perl.6",path:"raku.tmLanguage.json",displayName:"Raku",samplePath:"raku.sample",aliases:["perl6"]},{id:"razor",scopeName:"text.aspnetcorerazor",path:"razor.tmLanguage.json",displayName:"ASP.NET Razor",samplePath:"razor.sample",embeddedLangs:["html","csharp"]},{id:"reg",scopeName:"source.reg",path:"reg.tmLanguage.json",displayName:"Windows Registry Script",samplePath:"reg.sample"},{id:"rel",scopeName:"source.rel",path:"rel.tmLanguage.json",displayName:"Rel",samplePath:"rel.sample"},{id:"riscv",scopeName:"source.riscv",path:"riscv.tmLanguage.json",displayName:"RISC-V",samplePath:"riscv.sample"},{id:"rst",scopeName:"source.rst",path:"rst.tmLanguage.json",displayName:"reStructuredText",samplePath:"rst.sample",embeddedLangs:["cpp","python","javascript","shellscript","yaml","cmake","ruby"]},{id:"ruby",scopeName:"source.ruby",path:"ruby.tmLanguage.json",displayName:"Ruby",samplePath:"ruby.sample",aliases:["rb"],embeddedLangs:["html","xml","sql","css","c","javascript","shellscript","lua"]},{id:"rust",scopeName:"source.rust",path:"rust.tmLanguage.json",displayName:"Rust",samplePath:"rust.sample",aliases:["rs"]},{id:"sas",scopeName:"source.sas",path:"sas.tmLanguage.json",displayName:"SAS",samplePath:"sas.sample",embeddedLangs:["sql"]},{id:"sass",scopeName:"source.sass",path:"sass.tmLanguage.json",displayName:"Sass",samplePath:"sass.sample"},{id:"scala",scopeName:"source.scala",path:"scala.tmLanguage.json",displayName:"Scala",samplePath:"scala.sample"},{id:"scheme",scopeName:"source.scheme",path:"scheme.tmLanguage.json",displayName:"Scheme",samplePath:"scheme.sample"},{id:"scss",scopeName:"source.css.scss",path:"scss.tmLanguage.json",displayName:"SCSS",samplePath:"scss.sample",embeddedLangs:["css"]},{id:"shaderlab",scopeName:"source.shaderlab",path:"shaderlab.tmLanguage.json",displayName:"ShaderLab",samplePath:"shaderlab.sample",aliases:["shader"],embeddedLangs:["hlsl"]},{id:"shellscript",scopeName:"source.shell",path:"shellscript.tmLanguage.json",displayName:"Shell",samplePath:"shellscript.sample",aliases:["bash","sh","shell","zsh"]},{id:"shellsession",scopeName:"text.shell-session",path:"shellsession.tmLanguage.json",displayName:"Shell Session",samplePath:"shellsession.sample",aliases:["console"],embeddedLangs:["shellscript"]},{id:"smalltalk",scopeName:"source.smalltalk",path:"smalltalk.tmLanguage.json",displayName:"Smalltalk",samplePath:"smalltalk.sample"},{id:"solidity",scopeName:"source.solidity",path:"solidity.tmLanguage.json",displayName:"Solidity",samplePath:"solidity.sample"},{id:"sparql",scopeName:"source.sparql",path:"sparql.tmLanguage.json",displayName:"SPARQL",samplePath:"sparql.sample",embeddedLangs:["turtle"]},{id:"splunk",scopeName:"source.splunk_search",path:"splunk.tmLanguage.json",displayName:"Splunk Query Language",samplePath:"splunk.sample",aliases:["spl"]},{id:"sql",scopeName:"source.sql",path:"sql.tmLanguage.json",displayName:"SQL",samplePath:"sql.sample"},{id:"ssh-config",scopeName:"source.ssh-config",path:"ssh-config.tmLanguage.json",displayName:"SSH Config",samplePath:"ssh-config.sample"},{id:"stata",scopeName:"source.stata",path:"stata.tmLanguage.json",displayName:"Stata",samplePath:"stata.sample",embeddedLangs:["sql"]},{id:"stylus",scopeName:"source.stylus",path:"stylus.tmLanguage.json",displayName:"Stylus",samplePath:"stylus.sample",aliases:["styl"]},{id:"svelte",scopeName:"source.svelte",path:"svelte.tmLanguage.json",displayName:"Svelte",samplePath:"svelte.sample",embeddedLangs:["javascript","typescript","coffee","stylus","sass","css","scss","less","postcss","pug","markdown"]},{id:"swift",scopeName:"source.swift",path:"swift.tmLanguage.json",displayName:"Swift",samplePath:"swift.sample"},{id:"system-verilog",scopeName:"source.systemverilog",path:"system-verilog.tmLanguage.json",displayName:"SystemVerilog",samplePath:"system-verilog.sample"},{id:"tasl",scopeName:"source.tasl",path:"tasl.tmLanguage.json",displayName:"Tasl",samplePath:"tasl.sample"},{id:"tcl",scopeName:"source.tcl",path:"tcl.tmLanguage.json",displayName:"Tcl",samplePath:"tcl.sample"},{id:"tex",scopeName:"text.tex",path:"tex.tmLanguage.json",displayName:"TeX",samplePath:"tex.sample",embeddedLangs:["r"]},{id:"toml",scopeName:"source.toml",path:"toml.tmLanguage.json",displayName:"TOML",samplePath:"toml.sample"},{id:"tsx",scopeName:"source.tsx",path:"tsx.tmLanguage.json",displayName:"TSX",samplePath:"tsx.sample"},{id:"turtle",scopeName:"source.turtle",path:"turtle.tmLanguage.json",displayName:"Turtle",samplePath:"turtle.sample"},{id:"twig",scopeName:"text.html.twig",path:"twig.tmLanguage.json",displayName:"Twig",samplePath:"twig.sample",embeddedLangs:["css","javascript","php","python","ruby"]},{id:"typescript",scopeName:"source.ts",path:"typescript.tmLanguage.json",displayName:"TypeScript",samplePath:"typescript.sample",aliases:["ts"]},{id:"v",scopeName:"source.v",path:"v.tmLanguage.json",displayName:"V",samplePath:"v.sample"},{id:"vb",scopeName:"source.asp.vb.net",path:"vb.tmLanguage.json",displayName:"Visual Basic",samplePath:"vb.sample",aliases:["cmd"]},{id:"verilog",scopeName:"source.verilog",path:"verilog.tmLanguage.json",displayName:"Verilog",samplePath:"verilog.sample"},{id:"vhdl",scopeName:"source.vhdl",path:"vhdl.tmLanguage.json",displayName:"VHDL",samplePath:"vhdl.sample"},{id:"viml",scopeName:"source.viml",path:"viml.tmLanguage.json",displayName:"Vim Script",samplePath:"viml.sample",aliases:["vim","vimscript"]},{id:"vue-html",scopeName:"text.html.vue-html",path:"vue-html.tmLanguage.json",displayName:"Vue HTML",samplePath:"vue-html.sample",embeddedLangs:["vue","javascript"]},{id:"vue",scopeName:"source.vue",path:"vue.tmLanguage.json",displayName:"Vue",samplePath:"vue.sample",embeddedLangs:["html","markdown","pug","stylus","sass","css","scss","less","javascript","typescript","jsx","tsx","json","jsonc","json5","yaml","toml","graphql"]},{id:"vyper",scopeName:"source.vyper",path:"vyper.tmLanguage.json",displayName:"Vyper",samplePath:"vyper.sample",aliases:["vy"]},{id:"wasm",scopeName:"source.wat",path:"wasm.tmLanguage.json",displayName:"WebAssembly",samplePath:"wasm.sample"},{id:"wenyan",scopeName:"source.wenyan",path:"wenyan.tmLanguage.json",displayName:"Wenyan",samplePath:"wenyan.sample",aliases:["文言"]},{id:"wgsl",scopeName:"source.wgsl",path:"wgsl.tmLanguage.json",displayName:"WGSL",samplePath:"wgsl.sample"},{id:"wolfram",scopeName:"source.wolfram",path:"wolfram.tmLanguage.json",displayName:"Wolfram",samplePath:"wolfram.sample"},{id:"xml",scopeName:"text.xml",path:"xml.tmLanguage.json",displayName:"XML",samplePath:"xml.sample",embeddedLangs:["java"]},{id:"xsl",scopeName:"text.xml.xsl",path:"xsl.tmLanguage.json",displayName:"XSL",samplePath:"xsl.sample",embeddedLangs:["xml"]},{id:"yaml",scopeName:"source.yaml",path:"yaml.tmLanguage.json",displayName:"YAML",samplePath:"yaml.sample",aliases:["yml"]},{id:"zenscript",scopeName:"source.zenscript",path:"zenscript.tmLanguage.json",displayName:"ZenScript",samplePath:"zenscript.sample"},{id:"zig",scopeName:"source.zig",path:"zig.tmLanguage.json",displayName:"zig",samplePath:"zig.sample"}];var s=(e=>(e[e.NotSet=-1]="NotSet",e[e.None=0]="None",e[e.Italic=1]="Italic",e[e.Bold=2]="Bold",e[e.Underline=4]="Underline",e))(s||{});class a{static toBinaryStr(e){let t=e.toString(2);for(;t.length<32;)t="0"+t;return t}static printMetadata(e){let t=a.getLanguageId(e),s=a.getTokenType(e),n=a.getFontStyle(e),r=a.getForeground(e),o=a.getBackground(e);console.log({languageId:t,tokenType:s,fontStyle:n,foreground:r,background:o})}static getLanguageId(e){return(255&e)>>>0}static getTokenType(e){return(768&e)>>>8}static getFontStyle(e){return(14336&e)>>>11}static getForeground(e){return(8372224&e)>>>15}static getBackground(e){return(4286578688&e)>>>24}static containsBalancedBrackets(e){return 0!=(1024&e)}static set(e,t,s,n,r,o){let i=a.getLanguageId(e),c=a.getTokenType(e),l=a.getFontStyle(e),u=a.getForeground(e),p=a.getBackground(e);return 0!==t&&(i=t),0!==s&&(c=8===s?0:s),-1!==n&&(l=n),0!==r&&(u=r),0!==o&&(p=o),(i<<0|c<<8|l<<11|(a.containsBalancedBrackets(e)?1:0)<<10|u<<15|p<<24)>>>0}}function n(e){return e.endsWith("/")||e.endsWith("\\")?e.slice(0,-1):e}function r(e){return e.startsWith("./")?e.slice(2):e}function o(e){const t=e.split(/[\/\\]/g);return t.slice(0,t.length-1)}function i(...e){return e.map(n).map(r).join("/")}"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;var c,l={exports:{}};c=()=>{return e={770:function(e,t,s){var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.setDefaultDebugCall=t.createOnigScanner=t.createOnigString=t.loadWASM=t.OnigScanner=t.OnigString=void 0;const n=a(s(418));let r=null,o=!1;class i{static _utf8ByteLength(e){let t=0;for(let s=0,a=e.length;s=55296&&n<=56319&&s+1=56320&&t<=57343&&(r=65536+(n-55296<<10)|t-56320,o=!0)}t+=r<=127?1:r<=2047?2:r<=65535?3:4,o&&s++}return t}constructor(e){const t=e.length,s=i._utf8ByteLength(e),a=s!==t,n=a?new Uint32Array(t+1):null;a&&(n[t]=s);const r=a?new Uint32Array(s+1):null;a&&(r[s]=t);const o=new Uint8Array(s);let c=0;for(let s=0;s=55296&&i<=56319&&s+1=56320&&t<=57343&&(l=65536+(i-55296<<10)|t-56320,u=!0)}a&&(n[s]=c,u&&(n[s+1]=c),l<=127?r[c+0]=s:l<=2047?(r[c+0]=s,r[c+1]=s):l<=65535?(r[c+0]=s,r[c+1]=s,r[c+2]=s):(r[c+0]=s,r[c+1]=s,r[c+2]=s,r[c+3]=s)),l<=127?o[c++]=l:l<=2047?(o[c++]=192|(1984&l)>>>6,o[c++]=128|(63&l)>>>0):l<=65535?(o[c++]=224|(61440&l)>>>12,o[c++]=128|(4032&l)>>>6,o[c++]=128|(63&l)>>>0):(o[c++]=240|(1835008&l)>>>18,o[c++]=128|(258048&l)>>>12,o[c++]=128|(4032&l)>>>6,o[c++]=128|(63&l)>>>0),u&&s++}this.utf16Length=t,this.utf8Length=s,this.utf16Value=e,this.utf8Value=o,this.utf16OffsetToUtf8=n,this.utf8OffsetToUtf16=r}createString(e){const t=e._omalloc(this.utf8Length);return e.HEAPU8.set(this.utf8Value,t),t}}class c{constructor(e){if(this.id=++c.LAST_ID,!r)throw new Error("Must invoke loadWASM first.");this._onigBinding=r,this.content=e;const t=new i(e);this.utf16Length=t.utf16Length,this.utf8Length=t.utf8Length,this.utf16OffsetToUtf8=t.utf16OffsetToUtf8,this.utf8OffsetToUtf16=t.utf8OffsetToUtf16,this.utf8Length<1e4&&!c._sharedPtrInUse?(c._sharedPtr||(c._sharedPtr=r._omalloc(1e4)),c._sharedPtrInUse=!0,r.HEAPU8.set(t.utf8Value,c._sharedPtr),this.ptr=c._sharedPtr):this.ptr=t.createString(r)}convertUtf8OffsetToUtf16(e){return this.utf8OffsetToUtf16?e<0?0:e>this.utf8Length?this.utf16Length:this.utf8OffsetToUtf16[e]:e}convertUtf16OffsetToUtf8(e){return this.utf16OffsetToUtf8?e<0?0:e>this.utf16Length?this.utf8Length:this.utf16OffsetToUtf8[e]:e}dispose(){this.ptr===c._sharedPtr?c._sharedPtrInUse=!1:this._onigBinding._ofree(this.ptr)}}t.OnigString=c,c.LAST_ID=0,c._sharedPtr=0,c._sharedPtrInUse=!1;class l{constructor(e){if(!r)throw new Error("Must invoke loadWASM first.");const t=[],s=[];for(let a=0,n=e.length;aWebAssembly.instantiateStreaming(e,t)}(a):function(e){return async t=>{const s=await e.arrayBuffer();return WebAssembly.instantiate(s,t)}}(a):function(e){return t=>WebAssembly.instantiate(e,t)}(a)}return p=new Promise(((e,t)=>{a=e,o=t})),function(e,t,s,a){(0,n.default)({print:t,instantiateWasm:(t,s)=>{if("undefined"==typeof performance){const e=()=>Date.now();t.env.emscripten_get_now=e,t.wasi_snapshot_preview1.emscripten_get_now=e}return e(t).then((e=>s(e.instance)),a),{}}}).then((e=>{r=e,s()}))}(t,s,a,o),p},t.createOnigString=function(e){return new c(e)},t.createOnigScanner=function(e){return new l(e)},t.setDefaultDebugCall=function(e){o=e}},418:e=>{var t=("undefined"!=typeof document&&document.currentScript&&document.currentScript.src,function(e){var t,s,a=void 0!==(e=e||{})?e:{};a.ready=new Promise((function(e,a){t=e,s=a}));var n,r=Object.assign({},a),o=!1;n=function(e){let t;return"function"==typeof readbuffer?new Uint8Array(readbuffer(e)):(t=read(e,"binary"),function(e,t){e||v(t)}("object"==typeof t),t)},"undefined"!=typeof scriptArgs&&scriptArgs,"undefined"!=typeof onig_print&&("undefined"==typeof console&&(console={}),console.log=onig_print,console.warn=console.error="undefined"!=typeof printErr?printErr:onig_print);var i,c,l=a.print||console.log.bind(console),u=a.printErr||console.warn.bind(console);Object.assign(a,r),r=null,a.arguments&&a.arguments,a.thisProgram&&a.thisProgram,a.quit&&a.quit,a.wasmBinary&&(i=a.wasmBinary),a.noExitRuntime,"object"!=typeof WebAssembly&&v("no native wasm support detected");var p,h,m,d=!1,g="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function f(e,t,s){for(var a=t+s,n=t;e[n]&&!(n>=a);)++n;if(n-t>16&&e.buffer&&g)return g.decode(e.subarray(t,n));for(var r="";t>10,56320|1023&l)}}else r+=String.fromCharCode((31&o)<<6|i)}else r+=String.fromCharCode(o)}return r}function y(e){p=e,a.HEAP8=new Int8Array(e),a.HEAP16=new Int16Array(e),a.HEAP32=new Int32Array(e),a.HEAPU8=h=new Uint8Array(e),a.HEAPU16=new Uint16Array(e),a.HEAPU32=m=new Uint32Array(e),a.HEAPF32=new Float32Array(e),a.HEAPF64=new Float64Array(e)}a.INITIAL_MEMORY;var b=[],_=[],N=[];function k(e){b.unshift(e)}function L(e){N.unshift(e)}var S=0,P=null;function v(e){a.onAbort&&a.onAbort(e),u(e="Aborted("+e+")"),d=!0,e+=". Build with -sASSERTIONS for more info.";var t=new WebAssembly.RuntimeError(e);throw s(t),t}var j,w,C="data:application/octet-stream;base64,";function x(e){return e.startsWith(C)}function A(e){try{if(e==j&&i)return new Uint8Array(i);if(n)return n(e);throw"both async and sync fetching of the wasm failed"}catch(e){v(e)}}function T(e){for(;e.length>0;)e.shift()(a)}function R(e){try{return c.grow(e-p.byteLength+65535>>>16),y(c.buffer),1}catch(e){}}x(j="onig.wasm")||(j=function(e){return a.locateFile?a.locateFile(e,""):""+e}(j)),w="undefined"!=typeof dateNow?dateNow:()=>performance.now();var I=[null,[],[]];function E(e,t){var s=I[e];0===t||10===t?((1===e?l:u)(f(s,0)),s.length=0):s.push(t)}var O,M={emscripten_get_now:w,emscripten_memcpy_big:function(e,t,s){h.copyWithin(e,t,t+s)},emscripten_resize_heap:function(e){var t,s=h.length,a=2147483648;if((e>>>=0)>a)return!1;for(var n=1;n<=4;n*=2){var r=s*(1+.2/n);if(r=Math.min(r,e+100663296),R(Math.min(a,(t=Math.max(e,r))+(65536-t%65536)%65536)))return!0}return!1},fd_write:function(e,t,s,a){for(var n=0,r=0;r>2],i=m[t+4>>2];t+=8;for(var c=0;c>2]=n,0}};function B(e){function s(){O||(O=!0,a.calledRun=!0,d||(T(_),t(a),a.onRuntimeInitialized&&a.onRuntimeInitialized(),function(){if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)L(a.postRun.shift());T(N)}()))}S>0||(function(){if(a.preRun)for("function"==typeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)k(a.preRun.shift());T(b)}(),S>0||(a.setStatus?(a.setStatus("Running..."),setTimeout((function(){setTimeout((function(){a.setStatus("")}),1),s()}),1)):s()))}if(function(){var e={env:M,wasi_snapshot_preview1:M};function t(e,t){var s=e.exports;a.asm=s,y((c=a.asm.memory).buffer),a.asm.__indirect_function_table,function(e){_.unshift(e)}(a.asm.__wasm_call_ctors),function(e){if(S--,a.monitorRunDependencies&&a.monitorRunDependencies(S),0==S&&P){var t=P;P=null,t()}}()}function n(e){t(e.instance)}function r(t){return(i||!o||"function"!=typeof fetch?Promise.resolve().then((function(){return A(j)})):fetch(j,{credentials:"same-origin"}).then((function(e){if(!e.ok)throw"failed to load wasm binary file at '"+j+"'";return e.arrayBuffer()})).catch((function(){return A(j)}))).then((function(t){return WebAssembly.instantiate(t,e)})).then((function(e){return e})).then(t,(function(e){u("failed to asynchronously prepare wasm: "+e),v(e)}))}if(S++,a.monitorRunDependencies&&a.monitorRunDependencies(S),a.instantiateWasm)try{return a.instantiateWasm(e,t)}catch(e){u("Module.instantiateWasm callback failed with error: "+e),s(e)}(i||"function"!=typeof WebAssembly.instantiateStreaming||x(j)||"function"!=typeof fetch?r(n):fetch(j,{credentials:"same-origin"}).then((function(t){return WebAssembly.instantiateStreaming(t,e).then(n,(function(e){return u("wasm streaming compile failed: "+e),u("falling back to ArrayBuffer instantiation"),r(n)}))}))).catch(s)}(),a.___wasm_call_ctors=function(){return(a.___wasm_call_ctors=a.asm.__wasm_call_ctors).apply(null,arguments)},a.___errno_location=function(){return(a.___errno_location=a.asm.__errno_location).apply(null,arguments)},a._omalloc=function(){return(a._omalloc=a.asm.omalloc).apply(null,arguments)},a._ofree=function(){return(a._ofree=a.asm.ofree).apply(null,arguments)},a._getLastOnigError=function(){return(a._getLastOnigError=a.asm.getLastOnigError).apply(null,arguments)},a._createOnigScanner=function(){return(a._createOnigScanner=a.asm.createOnigScanner).apply(null,arguments)},a._freeOnigScanner=function(){return(a._freeOnigScanner=a.asm.freeOnigScanner).apply(null,arguments)},a._findNextOnigScannerMatch=function(){return(a._findNextOnigScannerMatch=a.asm.findNextOnigScannerMatch).apply(null,arguments)},a._findNextOnigScannerMatchDbg=function(){return(a._findNextOnigScannerMatchDbg=a.asm.findNextOnigScannerMatchDbg).apply(null,arguments)},a.stackSave=function(){return(a.stackSave=a.asm.stackSave).apply(null,arguments)},a.stackRestore=function(){return(a.stackRestore=a.asm.stackRestore).apply(null,arguments)},a.stackAlloc=function(){return(a.stackAlloc=a.asm.stackAlloc).apply(null,arguments)},a.dynCall_jiji=function(){return(a.dynCall_jiji=a.asm.dynCall_jiji).apply(null,arguments)},a.UTF8ToString=function(e,t){return e?f(h,e,t):""},P=function e(){O||B(),O||(P=e)},a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);a.preInit.length>0;)a.preInit.pop()();return B(),e.ready});e.exports=t}},t={},function s(a){var n=t[a];if(void 0!==n)return n.exports;var r=t[a]={exports:{}};return e[a].call(r.exports,r,r.exports,s),r.exports}(770);var e,t},l.exports=c();var u,p,h,m,d=l.exports;function g(e,t=!1){const s=e.length;let a=0,n="",r=0,o=16,i=0,c=0,l=0,u=0,p=0;function h(t,s){let n=0,r=0;for(;n=48&&t<=57)r=16*r+t-48;else if(t>=65&&t<=70)r=16*r+t-65+10;else{if(!(t>=97&&t<=102))break;r=16*r+t-97+10}a++,n++}return n=s)return r=s,o=17;let t=e.charCodeAt(a);if(f(t)){do{a++,n+=String.fromCharCode(t),t=e.charCodeAt(a)}while(f(t));return o=15}if(y(t))return a++,n+=String.fromCharCode(t),13===t&&10===e.charCodeAt(a)&&(a++,n+="\n"),i++,l=a,o=14;switch(t){case 123:return a++,o=1;case 125:return a++,o=2;case 91:return a++,o=3;case 93:return a++,o=4;case 58:return a++,o=6;case 44:return a++,o=5;case 34:return a++,n=function(){let t="",n=a;for(;;){if(a>=s){t+=e.substring(n,a),p=2;break}const r=e.charCodeAt(a);if(34===r){t+=e.substring(n,a),a++;break}if(92!==r){if(r>=0&&r<=31){if(y(r)){t+=e.substring(n,a),p=2;break}p=6}a++}else{if(t+=e.substring(n,a),a++,a>=s){p=2;break}switch(e.charCodeAt(a++)){case 34:t+='"';break;case 92:t+="\\";break;case 47:t+="/";break;case 98:t+="\b";break;case 102:t+="\f";break;case 110:t+="\n";break;case 114:t+="\r";break;case 116:t+="\t";break;case 117:const e=h(4,!0);e>=0?t+=String.fromCharCode(e):p=4;break;default:p=5}n=a}}return t}(),o=10;case 47:const c=a-1;if(47===e.charCodeAt(a+1)){for(a+=2;aa,scan:t?function(){let e;do{e=m()}while(e>=12&&e<=15);return e}:m,getToken:()=>o,getTokenValue:()=>n,getTokenOffset:()=>r,getTokenLength:()=>a-r,getTokenStartLine:()=>c,getTokenStartCharacter:()=>r-u,getTokenError:()=>p}}function f(e){return 32===e||9===e}function y(e){return 10===e||13===e}function b(e){return e>=48&&e<=57}!function(e){e[e.lineFeed=10]="lineFeed",e[e.carriageReturn=13]="carriageReturn",e[e.space=32]="space",e[e._0=48]="_0",e[e._1=49]="_1",e[e._2=50]="_2",e[e._3=51]="_3",e[e._4=52]="_4",e[e._5=53]="_5",e[e._6=54]="_6",e[e._7=55]="_7",e[e._8=56]="_8",e[e._9=57]="_9",e[e.a=97]="a",e[e.b=98]="b",e[e.c=99]="c",e[e.d=100]="d",e[e.e=101]="e",e[e.f=102]="f",e[e.g=103]="g",e[e.h=104]="h",e[e.i=105]="i",e[e.j=106]="j",e[e.k=107]="k",e[e.l=108]="l",e[e.m=109]="m",e[e.n=110]="n",e[e.o=111]="o",e[e.p=112]="p",e[e.q=113]="q",e[e.r=114]="r",e[e.s=115]="s",e[e.t=116]="t",e[e.u=117]="u",e[e.v=118]="v",e[e.w=119]="w",e[e.x=120]="x",e[e.y=121]="y",e[e.z=122]="z",e[e.A=65]="A",e[e.B=66]="B",e[e.C=67]="C",e[e.D=68]="D",e[e.E=69]="E",e[e.F=70]="F",e[e.G=71]="G",e[e.H=72]="H",e[e.I=73]="I",e[e.J=74]="J",e[e.K=75]="K",e[e.L=76]="L",e[e.M=77]="M",e[e.N=78]="N",e[e.O=79]="O",e[e.P=80]="P",e[e.Q=81]="Q",e[e.R=82]="R",e[e.S=83]="S",e[e.T=84]="T",e[e.U=85]="U",e[e.V=86]="V",e[e.W=87]="W",e[e.X=88]="X",e[e.Y=89]="Y",e[e.Z=90]="Z",e[e.asterisk=42]="asterisk",e[e.backslash=92]="backslash",e[e.closeBrace=125]="closeBrace",e[e.closeBracket=93]="closeBracket",e[e.colon=58]="colon",e[e.comma=44]="comma",e[e.dot=46]="dot",e[e.doubleQuote=34]="doubleQuote",e[e.minus=45]="minus",e[e.openBrace=123]="openBrace",e[e.openBracket=91]="openBracket",e[e.plus=43]="plus",e[e.slash=47]="slash",e[e.formFeed=12]="formFeed",e[e.tab=9]="tab"}(u||(u={})),function(e){e.DEFAULT={allowTrailingComma:!1}}(p||(p={})),function(e){e[e.None=0]="None",e[e.UnexpectedEndOfComment=1]="UnexpectedEndOfComment",e[e.UnexpectedEndOfString=2]="UnexpectedEndOfString",e[e.UnexpectedEndOfNumber=3]="UnexpectedEndOfNumber",e[e.InvalidUnicode=4]="InvalidUnicode",e[e.InvalidEscapeCharacter=5]="InvalidEscapeCharacter",e[e.InvalidCharacter=6]="InvalidCharacter"}(h||(h={})),function(e){e[e.OpenBraceToken=1]="OpenBraceToken",e[e.CloseBraceToken=2]="CloseBraceToken",e[e.OpenBracketToken=3]="OpenBracketToken",e[e.CloseBracketToken=4]="CloseBracketToken",e[e.CommaToken=5]="CommaToken",e[e.ColonToken=6]="ColonToken",e[e.NullKeyword=7]="NullKeyword",e[e.TrueKeyword=8]="TrueKeyword",e[e.FalseKeyword=9]="FalseKeyword",e[e.StringLiteral=10]="StringLiteral",e[e.NumericLiteral=11]="NumericLiteral",e[e.LineCommentTrivia=12]="LineCommentTrivia",e[e.BlockCommentTrivia=13]="BlockCommentTrivia",e[e.LineBreakTrivia=14]="LineBreakTrivia",e[e.Trivia=15]="Trivia",e[e.Unknown=16]="Unknown",e[e.EOF=17]="EOF"}(m||(m={}));const _=function(e,t=[],s=p.DEFAULT){let a=null,n=[];const r=[];function o(e){Array.isArray(n)?n.push(e):null!==a&&(n[a]=e)}return function(e,t,s=p.DEFAULT){const a=g(e,!1),n=[];function r(e){return e?()=>e(a.getTokenOffset(),a.getTokenLength(),a.getTokenStartLine(),a.getTokenStartCharacter()):()=>!0}function o(e){return e?()=>e(a.getTokenOffset(),a.getTokenLength(),a.getTokenStartLine(),a.getTokenStartCharacter(),(()=>n.slice())):()=>!0}function i(e){return e?t=>e(t,a.getTokenOffset(),a.getTokenLength(),a.getTokenStartLine(),a.getTokenStartCharacter()):()=>!0}function c(e){return e?t=>e(t,a.getTokenOffset(),a.getTokenLength(),a.getTokenStartLine(),a.getTokenStartCharacter(),(()=>n.slice())):()=>!0}const l=o(t.onObjectBegin),u=c(t.onObjectProperty),h=r(t.onObjectEnd),m=o(t.onArrayBegin),d=r(t.onArrayEnd),f=c(t.onLiteralValue),y=i(t.onSeparator),b=r(t.onComment),_=i(t.onError),N=s&&s.disallowComments,k=s&&s.allowTrailingComma;function L(){for(;;){const e=a.scan();switch(a.getTokenError()){case 4:S(14);break;case 5:S(15);break;case 3:S(13);break;case 1:N||S(11);break;case 2:S(12);break;case 6:S(16)}switch(e){case 12:case 13:N?S(10):b();break;case 16:S(1);break;case 15:case 14:break;default:return e}}}function S(e,t=[],s=[]){if(_(e),t.length+s.length>0){let e=a.getToken();for(;17!==e;){if(-1!==t.indexOf(e)){L();break}if(-1!==s.indexOf(e))break;e=L()}}}function P(e){const t=a.getTokenValue();return e?f(t):(u(t),n.push(t)),L(),!0}function v(){switch(a.getToken()){case 11:const e=a.getTokenValue();let t=Number(e);isNaN(t)&&(S(2),t=0),f(t);break;case 7:f(null);break;case 8:f(!0);break;case 9:f(!1);break;default:return!1}return L(),!0}function j(){return 10!==a.getToken()?(S(3,[],[2,5]),!1):(P(!1),6===a.getToken()?(y(":"),L(),x()||S(4,[],[2,5])):S(5,[],[2,5]),n.pop(),!0)}function w(){l(),L();let e=!1;for(;2!==a.getToken()&&17!==a.getToken();){if(5===a.getToken()){if(e||S(4,[],[]),y(","),L(),2===a.getToken()&&k)break}else e&&S(6,[],[]);j()||S(4,[],[2,5]),e=!0}return h(),2!==a.getToken()?S(7,[2],[]):L(),!0}function C(){m(),L();let e=!0,t=!1;for(;4!==a.getToken()&&17!==a.getToken();){if(5===a.getToken()){if(t||S(4,[],[]),y(","),L(),4===a.getToken()&&k)break}else t&&S(6,[],[]);e?(n.push(0),e=!1):n[n.length-1]++,x()||S(4,[],[4,5]),t=!0}return d(),e||n.pop(),4!==a.getToken()?S(8,[4],[]):L(),!0}function x(){switch(a.getToken()){case 3:return C();case 1:return w();case 10:return P(!0);default:return v()}}if(L(),17===a.getToken())return!!s.allowEmptyContent||(S(4,[],[]),!1);if(!x())return S(4,[],[]),!1;17!==a.getToken()&&S(9,[],[])}(e,{onObjectBegin:()=>{const e={};o(e),r.push(n),n=e,a=null},onObjectProperty:e=>{a=e},onObjectEnd:()=>{n=r.pop()},onArrayBegin:()=>{const e=[];o(e),r.push(n),n=e,a=null},onArrayEnd:()=>{n=r.pop()},onLiteralValue:o,onError:(e,s,a)=>{t.push({error:e,offset:s,length:a})}},s),n[0]};var N;!function(e){e[e.InvalidSymbol=1]="InvalidSymbol",e[e.InvalidNumberFormat=2]="InvalidNumberFormat",e[e.PropertyNameExpected=3]="PropertyNameExpected",e[e.ValueExpected=4]="ValueExpected",e[e.ColonExpected=5]="ColonExpected",e[e.CommaExpected=6]="CommaExpected",e[e.CloseBraceExpected=7]="CloseBraceExpected",e[e.CloseBracketExpected=8]="CloseBracketExpected",e[e.EndOfFileExpected=9]="EndOfFileExpected",e[e.InvalidCommentToken=10]="InvalidCommentToken",e[e.UnexpectedEndOfComment=11]="UnexpectedEndOfComment",e[e.UnexpectedEndOfString=12]="UnexpectedEndOfString",e[e.UnexpectedEndOfNumber=13]="UnexpectedEndOfNumber",e[e.InvalidUnicode=14]="InvalidUnicode",e[e.InvalidEscapeCharacter=15]="InvalidEscapeCharacter",e[e.InvalidCharacter=16]="InvalidCharacter"}(N||(N={}));const k="undefined"!=typeof self&&void 0!==self.WorkerGlobalScope,L="process"in globalThis&&"undefined"!=typeof process&&void 0!==process.release&&"node"===process.release.name,S="process"in globalThis&&"undefined"!=typeof process&&void 0!==process.release&&"bun"===process.release.name,P=k||!L&&!S;let v="https://cdn.jsdelivr.net/npm/shiki@0.14.5/",j="";const w="dist/";function C(e){j=e}let x=null;function A(e){if(P)return`${v}${e}`;{const t=require("path");return t.isAbsolute(e)?e:t.resolve(__dirname,"..",e)}}async function T(e){const t=[],s=await async function(e){const t=A(e);if(P)return await fetch(t).then((e=>e.text()));{const e=require("fs");return await e.promises.readFile(t,"utf-8")}}(e);let a;try{a=JSON.parse(s)}catch(e){if(a=_(s,t,{allowTrailingComma:!0}),t.length)throw t[0]}return a}async function R(e){const t=I(await T(e));if(t.include){const s=await R(i(...o(e),t.include));s.settings&&(t.settings=s.settings.concat(t.settings)),s.bg&&!t.bg&&(t.bg=s.bg),s.colors&&(t.colors={...s.colors,...t.colors}),delete t.include}return t}function I(e){const t=e.type||"dark",s={name:e.name,type:t,...e,...M(e)};var a;return e.include&&(s.include=e.include),e.tokenColors&&(s.settings=e.tokenColors,delete s.tokenColors),(a=s).settings||(a.settings=[]),a.settings[0]&&a.settings[0].settings&&!a.settings[0].scope||a.settings.unshift({settings:{foreground:a.fg,background:a.bg}}),s}const E={light:"#333333",dark:"#bbbbbb"},O={light:"#fffffe",dark:"#1e1e1e"};function M(e){let t,s,a=e.settings?e.settings:e.tokenColors;const n=a?a.find((e=>!e.name&&!e.scope)):void 0;return n?.settings?.foreground&&(t=n.settings.foreground),n?.settings?.background&&(s=n.settings.background),!t&&e?.colors?.["editor.foreground"]&&(t=e.colors["editor.foreground"]),!s&&e?.colors?.["editor.background"]&&(s=e.colors["editor.background"]),t||(t="light"===e.type?E.light:E.dark),s||(s="light"===e.type?O.light:O.dark),{fg:t,bg:s}}class B{constructor(e,t){this.languagesPath="languages/",this.languageMap={},this.scopeToLangMap={},this._onigLibPromise=e,this._onigLibName=t}get onigLib(){return this._onigLibPromise}getOnigLibName(){return this._onigLibName}getLangRegistration(e){return this.languageMap[e]}async loadGrammar(e){const s=this.scopeToLangMap[e];if(!s)return null;if(s.grammar)return s.grammar;const a=await async function(e){return await T(e)}(t.includes(s)?`${this.languagesPath}${s.path}`:s.path);return s.grammar=a,a}addLanguage(e){this.languageMap[e.id]=e,e.aliases&&e.aliases.forEach((t=>{this.languageMap[t]=e})),this.scopeToLangMap[e.scopeName]=e}}var G={exports:{}};!function(e,t){var s,a;e.exports=(s={350:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.UseOnigurumaFindOptions=t.DebugFlags=void 0,t.DebugFlags={InDebugMode:"undefined"!=typeof process&&!!process.env.VSCODE_TEXTMATE_DEBUG},t.UseOnigurumaFindOptions=!1},36:(e,t)=>{var s;Object.defineProperty(t,"__esModule",{value:!0}),t.toOptionalTokenType=t.EncodedTokenAttributes=void 0,(s=t.EncodedTokenAttributes||(t.EncodedTokenAttributes={})).toBinaryStr=function(e){let t=e.toString(2);for(;t.length<32;)t="0"+t;return t},s.print=function(e){const t=s.getLanguageId(e),a=s.getTokenType(e),n=s.getFontStyle(e),r=s.getForeground(e),o=s.getBackground(e);console.log({languageId:t,tokenType:a,fontStyle:n,foreground:r,background:o})},s.getLanguageId=function(e){return(255&e)>>>0},s.getTokenType=function(e){return(768&e)>>>8},s.containsBalancedBrackets=function(e){return 0!=(1024&e)},s.getFontStyle=function(e){return(30720&e)>>>11},s.getForeground=function(e){return(16744448&e)>>>15},s.getBackground=function(e){return(4278190080&e)>>>24},s.set=function(e,t,a,n,r,o,i){let c=s.getLanguageId(e),l=s.getTokenType(e),u=s.containsBalancedBrackets(e)?1:0,p=s.getFontStyle(e),h=s.getForeground(e),m=s.getBackground(e);return 0!==t&&(c=t),8!==a&&(l=a),null!==n&&(u=n?1:0),-1!==r&&(p=r),0!==o&&(h=o),0!==i&&(m=i),(c<<0|l<<8|u<<10|p<<11|h<<15|m<<24)>>>0},t.toOptionalTokenType=function(e){return e}},996:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BasicScopeAttributesProvider=t.BasicScopeAttributes=void 0;const a=s(878);class n{constructor(e,t){this.languageId=e,this.tokenType=t}}t.BasicScopeAttributes=n;class r{constructor(e,t){this._getBasicScopeAttributes=new a.CachedFn((e=>{const t=this._scopeToLanguage(e),s=this._toStandardTokenType(e);return new n(t,s)})),this._defaultAttributes=new n(e,8),this._embeddedLanguagesMatcher=new o(Object.entries(t||{}))}getDefaultAttributes(){return this._defaultAttributes}getBasicScopeAttributes(e){return null===e?r._NULL_SCOPE_METADATA:this._getBasicScopeAttributes.get(e)}_scopeToLanguage(e){return this._embeddedLanguagesMatcher.match(e)||0}_toStandardTokenType(e){const t=e.match(r.STANDARD_TOKEN_TYPE_REGEXP);if(!t)return 8;switch(t[1]){case"comment":return 1;case"string":return 2;case"regex":return 3;case"meta.embedded":return 0}throw new Error("Unexpected match for standard token type!")}}t.BasicScopeAttributesProvider=r,r._NULL_SCOPE_METADATA=new n(0,0),r.STANDARD_TOKEN_TYPE_REGEXP=/\b(comment|string|regex|meta\.embedded)\b/;class o{constructor(e){if(0===e.length)this.values=null,this.scopesRegExp=null;else{this.values=new Map(e);const t=e.map((([e,t])=>a.escapeRegExpCharacters(e)));t.sort(),t.reverse(),this.scopesRegExp=new RegExp(`^((${t.join(")|(")}))($|\\.)`,"")}}match(e){if(!this.scopesRegExp)return;const t=e.match(this.scopesRegExp);return t?this.values.get(t[1]):void 0}}},947:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.LineTokens=t.BalancedBracketSelectors=t.StateStack=t.AttributedScopeStack=t.Grammar=t.createGrammar=void 0;const a=s(350),n=s(36),r=s(736),o=s(44),i=s(792),c=s(583),l=s(878),u=s(996),p=s(47);function h(e,t,s,a,n){const o=r.createMatchers(t,m),c=i.RuleFactory.getCompiledRuleId(s,a,n.repository);for(const s of o)e.push({debugSelector:t,matcher:s.matcher,ruleId:c,grammar:n,priority:s.priority})}function m(e,t){if(t.length{for(let a=s;as&&e.substr(0,s)===t&&"."===e[s]}t.createGrammar=function(e,t,s,a,n,r,o,i){return new g(e,t,s,a,n,r,o,i)};class g{constructor(e,t,s,a,n,o,i,c){if(this._rootScopeName=e,this.balancedBracketSelectors=o,this._onigLib=c,this._basicScopeAttributesProvider=new u.BasicScopeAttributesProvider(s,a),this._rootId=-1,this._lastRuleId=0,this._ruleId2desc=[null],this._includedGrammars={},this._grammarRepository=i,this._grammar=f(t,null),this._injections=null,this._tokenTypeMatchers=[],n)for(const e of Object.keys(n)){const t=r.createMatchers(e,m);for(const s of t)this._tokenTypeMatchers.push({matcher:s.matcher,type:n[e]})}}get themeProvider(){return this._grammarRepository}dispose(){for(const e of this._ruleId2desc)e&&e.dispose()}createOnigScanner(e){return this._onigLib.createOnigScanner(e)}createOnigString(e){return this._onigLib.createOnigString(e)}getMetadataForScope(e){return this._basicScopeAttributesProvider.getBasicScopeAttributes(e)}_collectInjections(){const e=[],t=this._rootScopeName,s=(e=>e===this._rootScopeName?this._grammar:this.getExternalGrammar(e))(t);if(s){const a=s.injections;if(a)for(let t in a)h(e,t,a[t],this,s);const n=this._grammarRepository.injections(t);n&&n.forEach((t=>{const s=this.getExternalGrammar(t);if(s){const t=s.injectionSelector;t&&h(e,t,s,this,s)}}))}return e.sort(((e,t)=>e.priority-t.priority)),e}getInjections(){if(null===this._injections&&(this._injections=this._collectInjections(),a.DebugFlags.InDebugMode&&this._injections.length>0)){console.log(`Grammar ${this._rootScopeName} contains the following injections:`);for(const e of this._injections)console.log(` - ${e.debugSelector}`)}return this._injections}registerRule(e){const t=++this._lastRuleId,s=e(i.ruleIdFromNumber(t));return this._ruleId2desc[t]=s,s}getRule(e){return this._ruleId2desc[i.ruleIdToNumber(e)]}getExternalGrammar(e,t){if(this._includedGrammars[e])return this._includedGrammars[e];if(this._grammarRepository){const s=this._grammarRepository.lookup(e);if(s)return this._includedGrammars[e]=f(s,t&&t.$base),this._includedGrammars[e]}}tokenizeLine(e,t,s=0){const a=this._tokenize(e,t,!1,s);return{tokens:a.lineTokens.getResult(a.ruleStack,a.lineLength),ruleStack:a.ruleStack,stoppedEarly:a.stoppedEarly}}tokenizeLine2(e,t,s=0){const a=this._tokenize(e,t,!0,s);return{tokens:a.lineTokens.getBinaryResult(a.ruleStack,a.lineLength),ruleStack:a.ruleStack,stoppedEarly:a.stoppedEarly}}_tokenize(e,t,s,a){let r;if(-1===this._rootId&&(this._rootId=i.RuleFactory.getCompiledRuleId(this._grammar.repository.$self,this,this._grammar.repository)),t&&t!==b.NULL)r=!1,t.reset();else{r=!0;const e=this._basicScopeAttributesProvider.getDefaultAttributes(),s=this.themeProvider.getDefaults(),a=n.EncodedTokenAttributes.set(0,e.languageId,e.tokenType,null,s.fontStyle,s.foregroundId,s.backgroundId),o=this.getRule(this._rootId).getName(null,null);let i;i=o?y.createRootAndLookUpScopeName(o,a,this):y.createRoot("unknown",a),t=new b(null,this._rootId,-1,-1,!1,null,i,i)}e+="\n";const c=this.createOnigString(e),l=c.content.length,u=new _(s,e,this._tokenTypeMatchers,this.balancedBracketSelectors),h=p._tokenizeString(this,c,r,0,t,u,!0,a);return o.disposeOnigString(c),{lineLength:l,lineTokens:u,ruleStack:h.stack,stoppedEarly:h.stoppedEarly}}}function f(e,t){return(e=l.clone(e)).repository=e.repository||{},e.repository.$self={$vscodeTextmateLocation:e.$vscodeTextmateLocation,patterns:e.patterns,name:e.scopeName},e.repository.$base=t||e.repository.$self,e}t.Grammar=g;class y{constructor(e,t,s){this.parent=e,this.scopePath=t,this.tokenAttributes=s}static createRoot(e,t){return new y(null,new c.ScopeStack(null,e),t)}static createRootAndLookUpScopeName(e,t,s){const a=s.getMetadataForScope(e),n=new c.ScopeStack(null,e),r=s.themeProvider.themeMatch(n),o=y.mergeAttributes(t,a,r);return new y(null,n,o)}get scopeName(){return this.scopePath.scopeName}equals(e){return y._equals(this,e)}static _equals(e,t){for(;;){if(e===t)return!0;if(!e&&!t)return!0;if(!e||!t)return!1;if(e.scopeName!==t.scopeName||e.tokenAttributes!==t.tokenAttributes)return!1;e=e.parent,t=t.parent}}static mergeAttributes(e,t,s){let a=-1,r=0,o=0;return null!==s&&(a=s.fontStyle,r=s.foregroundId,o=s.backgroundId),n.EncodedTokenAttributes.set(e,t.languageId,t.tokenType,null,a,r,o)}pushAttributed(e,t){if(null===e)return this;if(-1===e.indexOf(" "))return y._pushAttributed(this,e,t);const s=e.split(/ /g);let a=this;for(const e of s)a=y._pushAttributed(a,e,t);return a}static _pushAttributed(e,t,s){const a=s.getMetadataForScope(t),n=e.scopePath.push(t),r=s.themeProvider.themeMatch(n),o=y.mergeAttributes(e.tokenAttributes,a,r);return new y(e,n,o)}getScopeNames(){return this.scopePath.getSegments()}}t.AttributedScopeStack=y;class b{constructor(e,t,s,a,n,r,o,i){this.parent=e,this.ruleId=t,this.beginRuleCapturedEOL=n,this.endRule=r,this.nameScopesList=o,this.contentNameScopesList=i,this._stackElementBrand=void 0,this.depth=this.parent?this.parent.depth+1:1,this._enterPos=s,this._anchorPos=a}equals(e){return null!==e&&b._equals(this,e)}static _equals(e,t){return e===t||!!this._structuralEquals(e,t)&&e.contentNameScopesList.equals(t.contentNameScopesList)}static _structuralEquals(e,t){for(;;){if(e===t)return!0;if(!e&&!t)return!0;if(!e||!t)return!1;if(e.depth!==t.depth||e.ruleId!==t.ruleId||e.endRule!==t.endRule)return!1;e=e.parent,t=t.parent}}clone(){return this}static _reset(e){for(;e;)e._enterPos=-1,e._anchorPos=-1,e=e.parent}reset(){b._reset(this)}pop(){return this.parent}safePop(){return this.parent?this.parent:this}push(e,t,s,a,n,r,o){return new b(this,e,t,s,a,n,r,o)}getEnterPos(){return this._enterPos}getAnchorPos(){return this._anchorPos}getRule(e){return e.getRule(this.ruleId)}toString(){const e=[];return this._writeString(e,0),"["+e.join(",")+"]"}_writeString(e,t){return this.parent&&(t=this.parent._writeString(e,t)),e[t++]=`(${this.ruleId}, TODO-${this.nameScopesList}, TODO-${this.contentNameScopesList})`,t}withContentNameScopesList(e){return this.contentNameScopesList===e?this:this.parent.push(this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,this.endRule,this.nameScopesList,e)}withEndRule(e){return this.endRule===e?this:new b(this.parent,this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,e,this.nameScopesList,this.contentNameScopesList)}hasSameRuleAs(e){let t=this;for(;t&&t._enterPos===e._enterPos;){if(t.ruleId===e.ruleId)return!0;t=t.parent}return!1}}t.StateStack=b,b.NULL=new b(null,0,0,0,!1,null,null,null),t.BalancedBracketSelectors=class{constructor(e,t){this.allowAny=!1,this.balancedBracketScopes=e.flatMap((e=>"*"===e?(this.allowAny=!0,[]):r.createMatchers(e,m).map((e=>e.matcher)))),this.unbalancedBracketScopes=t.flatMap((e=>r.createMatchers(e,m).map((e=>e.matcher))))}get matchesAlways(){return this.allowAny&&0===this.unbalancedBracketScopes.length}get matchesNever(){return 0===this.balancedBracketScopes.length&&!this.allowAny}match(e){for(const t of this.unbalancedBracketScopes)if(t(e))return!1;for(const t of this.balancedBracketScopes)if(t(e))return!0;return this.allowAny}};class _{constructor(e,t,s,n){this.balancedBracketSelectors=n,this._emitBinaryTokens=e,this._tokenTypeOverrides=s,a.DebugFlags.InDebugMode?this._lineText=t:this._lineText=null,this._tokens=[],this._binaryTokens=[],this._lastTokenEndIndex=0}produce(e,t){this.produceFromScopes(e.contentNameScopesList,t)}produceFromScopes(e,t){if(this._lastTokenEndIndex>=t)return;if(this._emitBinaryTokens){let s=e.tokenAttributes,r=!1;if(this.balancedBracketSelectors?.matchesAlways&&(r=!0),this._tokenTypeOverrides.length>0||this.balancedBracketSelectors&&!this.balancedBracketSelectors.matchesAlways&&!this.balancedBracketSelectors.matchesNever){const t=e.getScopeNames();for(const e of this._tokenTypeOverrides)e.matcher(t)&&(s=n.EncodedTokenAttributes.set(s,0,n.toOptionalTokenType(e.type),null,-1,0,0));this.balancedBracketSelectors&&(r=this.balancedBracketSelectors.match(t))}if(r&&(s=n.EncodedTokenAttributes.set(s,0,8,r,-1,0,0)),this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-1]===s)return void(this._lastTokenEndIndex=t);if(a.DebugFlags.InDebugMode){const s=e.getScopeNames();console.log(" token: |"+this._lineText.substring(this._lastTokenEndIndex,t).replace(/\n$/,"\\n")+"|");for(let e=0;e0&&this._tokens[this._tokens.length-1].startIndex===t-1&&this._tokens.pop(),0===this._tokens.length&&(this._lastTokenEndIndex=-1,this.produce(e,t),this._tokens[this._tokens.length-1].startIndex=0),this._tokens}getBinaryResult(e,t){this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-2]===t-1&&(this._binaryTokens.pop(),this._binaryTokens.pop()),0===this._binaryTokens.length&&(this._lastTokenEndIndex=-1,this.produce(e,t),this._binaryTokens[this._binaryTokens.length-2]=0);const s=new Uint32Array(this._binaryTokens.length);for(let e=0,t=this._binaryTokens.length;e{Object.defineProperty(t,"__esModule",{value:!0}),t.parseInclude=t.TopLevelRepositoryReference=t.TopLevelReference=t.RelativeReference=t.SelfReference=t.BaseReference=t.ScopeDependencyProcessor=t.ExternalReferenceCollector=t.TopLevelRepositoryRuleReference=t.TopLevelRuleReference=void 0;const a=s(878);class n{constructor(e){this.scopeName=e}toKey(){return this.scopeName}}t.TopLevelRuleReference=n;class r{constructor(e,t){this.scopeName=e,this.ruleName=t}toKey(){return`${this.scopeName}#${this.ruleName}`}}t.TopLevelRepositoryRuleReference=r;class o{constructor(){this._references=[],this._seenReferenceKeys=new Set,this.visitedRule=new Set}get references(){return this._references}add(e){const t=e.toKey();this._seenReferenceKeys.has(t)||(this._seenReferenceKeys.add(t),this._references.push(e))}}function i(e,t,s,a){const r=s.lookup(e.scopeName);if(!r){if(e.scopeName===t)throw new Error(`No grammar provided for <${t}>`);return}const o=s.lookup(t);e instanceof n?l({baseGrammar:o,selfGrammar:r},a):c(e.ruleName,{baseGrammar:o,selfGrammar:r,repository:r.repository},a);const i=s.injections(e.scopeName);if(i)for(const e of i)a.add(new n(e))}function c(e,t,s){t.repository&&t.repository[e]&&u([t.repository[e]],t,s)}function l(e,t){e.selfGrammar.patterns&&Array.isArray(e.selfGrammar.patterns)&&u(e.selfGrammar.patterns,{...e,repository:e.selfGrammar.repository},t),e.selfGrammar.injections&&u(Object.values(e.selfGrammar.injections),{...e,repository:e.selfGrammar.repository},t)}function u(e,t,s){for(const o of e){if(s.visitedRule.has(o))continue;s.visitedRule.add(o);const e=o.repository?a.mergeObjects({},t.repository,o.repository):t.repository;Array.isArray(o.patterns)&&u(o.patterns,{...t,repository:e},s);const i=o.include;if(!i)continue;const p=f(i);switch(p.kind){case 0:l({...t,selfGrammar:t.baseGrammar},s);break;case 1:l(t,s);break;case 2:c(p.ruleName,{...t,repository:e},s);break;case 3:case 4:const a=p.scopeName===t.selfGrammar.scopeName?t.selfGrammar:p.scopeName===t.baseGrammar.scopeName?t.baseGrammar:void 0;if(a){const n={baseGrammar:t.baseGrammar,selfGrammar:a,repository:e};4===p.kind?c(p.ruleName,n,s):l(n,s)}else 4===p.kind?s.add(new r(p.scopeName,p.ruleName)):s.add(new n(p.scopeName))}}}t.ExternalReferenceCollector=o,t.ScopeDependencyProcessor=class{constructor(e,t){this.repo=e,this.initialScopeName=t,this.seenFullScopeRequests=new Set,this.seenPartialScopeRequests=new Set,this.seenFullScopeRequests.add(this.initialScopeName),this.Q=[new n(this.initialScopeName)]}processQueue(){const e=this.Q;this.Q=[];const t=new o;for(const s of e)i(s,this.initialScopeName,this.repo,t);for(const e of t.references)if(e instanceof n){if(this.seenFullScopeRequests.has(e.scopeName))continue;this.seenFullScopeRequests.add(e.scopeName),this.Q.push(e)}else{if(this.seenFullScopeRequests.has(e.scopeName))continue;if(this.seenPartialScopeRequests.has(e.toKey()))continue;this.seenPartialScopeRequests.add(e.toKey()),this.Q.push(e)}}};class p{constructor(){this.kind=0}}t.BaseReference=p;class h{constructor(){this.kind=1}}t.SelfReference=h;class m{constructor(e){this.ruleName=e,this.kind=2}}t.RelativeReference=m;class d{constructor(e){this.scopeName=e,this.kind=3}}t.TopLevelReference=d;class g{constructor(e,t){this.scopeName=e,this.ruleName=t,this.kind=4}}function f(e){if("$base"===e)return new p;if("$self"===e)return new h;const t=e.indexOf("#");if(-1===t)return new d(e);if(0===t)return new m(e.substring(1));{const s=e.substring(0,t),a=e.substring(t+1);return new g(s,a)}}t.TopLevelRepositoryReference=g,t.parseInclude=f},391:function(e,t,s){var a=this&&this.__createBinding||(Object.create?function(e,t,s,a){void 0===a&&(a=s),Object.defineProperty(e,a,{enumerable:!0,get:function(){return t[s]}})}:function(e,t,s,a){void 0===a&&(a=s),e[a]=t[s]}),n=this&&this.__exportStar||function(e,t){for(var s in e)"default"===s||Object.prototype.hasOwnProperty.call(t,s)||a(t,e,s)};Object.defineProperty(t,"__esModule",{value:!0}),n(s(947),t)},47:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.LocalStackElement=t._tokenizeString=void 0;const a=s(350),n=s(44),r=s(792),o=s(878);class i{constructor(e,t){this.stack=e,this.stoppedEarly=t}}function c(e,t,s,n,c,p,m,d){const g=t.content.length;let f=!1,y=-1;if(m){const o=function(e,t,s,n,o,i){let c=o.beginRuleCapturedEOL?0:-1;const l=[];for(let t=o;t;t=t.pop()){const s=t.getRule(e);s instanceof r.BeginWhileRule&&l.push({rule:s,stack:t})}for(let p=l.pop();p;p=l.pop()){const{ruleScanner:l,findOptions:m}=u(p.rule,e,p.stack.endRule,s,n===c),d=l.findNextMatchSync(t,n,m);if(a.DebugFlags.InDebugMode&&(console.log(" scanning for while rule"),console.log(l.toString())),!d){a.DebugFlags.InDebugMode&&console.log(" popping "+p.rule.debugName+" - "+p.rule.debugWhileRegExp),o=p.stack.pop();break}if(d.ruleId!==r.whileRuleId){o=p.stack.pop();break}d.captureIndices&&d.captureIndices.length&&(i.produce(p.stack,d.captureIndices[0].start),h(e,t,s,p.stack,i,p.rule.whileCaptures,d.captureIndices),i.produce(p.stack,d.captureIndices[0].end),c=d.captureIndices[0].end,d.captureIndices[0].end>n&&(n=d.captureIndices[0].end,s=!1))}return{stack:o,linePos:n,anchorPosition:c,isFirstLine:s}}(e,t,s,n,c,p);c=o.stack,n=o.linePos,s=o.isFirstLine,y=o.anchorPosition}const b=Date.now();for(;!f;){if(0!==d&&Date.now()-b>d)return new i(c,!0);_()}return new i(c,!1);function _(){a.DebugFlags.InDebugMode&&(console.log(""),console.log(`@@scanNext ${n}: |${t.content.substr(n).replace(/\n$/,"\\n")}|`));const i=function(e,t,s,n,r,i){const c=function(e,t,s,n,r,i){const c=r.getRule(e),{ruleScanner:u,findOptions:p}=l(c,e,r.endRule,s,n===i);let h=0;a.DebugFlags.InDebugMode&&(h=o.performanceNow());const m=u.findNextMatchSync(t,n,p);if(a.DebugFlags.InDebugMode){const e=o.performanceNow()-h;e>5&&console.warn(`Rule ${c.debugName} (${c.id}) matching took ${e} against '${t}'`),console.log(` scanning for (linePos: ${n}, anchorPosition: ${i})`),console.log(u.toString()),m&&console.log(`matched rule id: ${m.ruleId} from ${m.captureIndices[0].start} to ${m.captureIndices[0].end}`)}return m?{captureIndices:m.captureIndices,matchedRuleId:m.ruleId}:null}(e,t,s,n,r,i),u=e.getInjections();if(0===u.length)return c;const p=function(e,t,s,n,r,o,i){let c,u=Number.MAX_VALUE,p=null,h=0;const m=o.contentNameScopesList.getScopeNames();for(let o=0,d=e.length;o=u)&&(u=_,p=b.captureIndices,c=b.ruleId,h=d.priority,u===r))break}return p?{priorityMatch:-1===h,captureIndices:p,matchedRuleId:c}:null}(u,e,t,s,n,r,i);if(!p)return c;if(!c)return p;const h=c.captureIndices[0].start,m=p.captureIndices[0].start;return m0)&&u[0].end>n;if(m===r.endRuleId){const r=c.getRule(e);a.DebugFlags.InDebugMode&&console.log(" popping "+r.debugName+" - "+r.debugEndRegExp),p.produce(c,u[0].start),c=c.withContentNameScopesList(c.nameScopesList),h(e,t,s,c,p,r.endCaptures,u),p.produce(c,u[0].end);const o=c;if(c=c.parent,y=o.getAnchorPos(),!d&&o.getEnterPos()===n)return a.DebugFlags.InDebugMode&&console.error("[1] - Grammar is in an endless loop - Grammar pushed & popped a rule without advancing"),c=o,p.produce(c,g),void(f=!0)}else{const o=e.getRule(m);p.produce(c,u[0].start);const i=c,l=o.getName(t.content,u),b=c.contentNameScopesList.pushAttributed(l,e);if(c=c.push(m,n,y,u[0].end===g,null,b,b),o instanceof r.BeginEndRule){const n=o;a.DebugFlags.InDebugMode&&console.log(" pushing "+n.debugName+" - "+n.debugBeginRegExp),h(e,t,s,c,p,n.beginCaptures,u),p.produce(c,u[0].end),y=u[0].end;const r=n.getContentName(t.content,u),l=b.pushAttributed(r,e);if(c=c.withContentNameScopesList(l),n.endHasBackReferences&&(c=c.withEndRule(n.getEndWithResolvedBackReferences(t.content,u))),!d&&i.hasSameRuleAs(c))return a.DebugFlags.InDebugMode&&console.error("[2] - Grammar is in an endless loop - Grammar pushed the same rule without advancing"),c=c.pop(),p.produce(c,g),void(f=!0)}else if(o instanceof r.BeginWhileRule){const n=o;a.DebugFlags.InDebugMode&&console.log(" pushing "+n.debugName),h(e,t,s,c,p,n.beginCaptures,u),p.produce(c,u[0].end),y=u[0].end;const r=n.getContentName(t.content,u),l=b.pushAttributed(r,e);if(c=c.withContentNameScopesList(l),n.whileHasBackReferences&&(c=c.withEndRule(n.getWhileWithResolvedBackReferences(t.content,u))),!d&&i.hasSameRuleAs(c))return a.DebugFlags.InDebugMode&&console.error("[3] - Grammar is in an endless loop - Grammar pushed the same rule without advancing"),c=c.pop(),p.produce(c,g),void(f=!0)}else{const n=o;if(a.DebugFlags.InDebugMode&&console.log(" matched "+n.debugName+" - "+n.debugMatchRegExp),h(e,t,s,c,p,n.captures,u),p.produce(c,u[0].end),c=c.pop(),!d)return a.DebugFlags.InDebugMode&&console.error("[4] - Grammar is in an endless loop - Grammar is not advancing, nor is it pushing/popping"),c=c.safePop(),p.produce(c,g),void(f=!0)}}u[0].end>n&&(n=u[0].end,s=!1)}}function l(e,t,s,n,r){return a.UseOnigurumaFindOptions?{ruleScanner:e.compile(t,s),findOptions:p(n,r)}:{ruleScanner:e.compileAG(t,s,n,r),findOptions:0}}function u(e,t,s,n,r){return a.UseOnigurumaFindOptions?{ruleScanner:e.compileWhile(t,s),findOptions:p(n,r)}:{ruleScanner:e.compileWhileAG(t,s,n,r),findOptions:0}}function p(e,t){let s=0;return e||(s|=1),t||(s|=4),s}function h(e,t,s,a,r,o,i){if(0===o.length)return;const l=t.content,u=Math.min(o.length,i.length),p=[],h=i[0].end;for(let t=0;th)break;for(;p.length>0&&p[p.length-1].endPos<=d.start;)r.produceFromScopes(p[p.length-1].scopes,p[p.length-1].endPos),p.pop();if(p.length>0?r.produceFromScopes(p[p.length-1].scopes,d.start):r.produce(a,d.start),u.retokenizeCapturedWithRuleId){const t=u.getName(l,i),o=a.contentNameScopesList.pushAttributed(t,e),p=u.getContentName(l,i),h=o.pushAttributed(p,e),m=a.push(u.retokenizeCapturedWithRuleId,d.start,-1,!1,null,o,h),g=e.createOnigString(l.substring(0,d.end));c(e,g,s&&0===d.start,d.start,m,r,!1,0),n.disposeOnigString(g);continue}const g=u.getName(l,i);if(null!==g){const t=(p.length>0?p[p.length-1].scopes:a.contentNameScopesList).pushAttributed(g,e);p.push(new m(t,d.end))}}for(;p.length>0;)r.produceFromScopes(p[p.length-1].scopes,p[p.length-1].endPos),p.pop()}t._tokenizeString=c;class m{constructor(e,t){this.scopes=e,this.endPos=t}}t.LocalStackElement=m},974:(e,t)=>{function s(e,t){throw new Error("Near offset "+e.pos+": "+t+" ~~~"+e.source.substr(e.pos,50)+"~~~")}Object.defineProperty(t,"__esModule",{value:!0}),t.parseJSON=void 0,t.parseJSON=function(e,t,o){let i=new a(e),c=new n,l=0,u=null,p=[],h=[];function m(){p.push(l),h.push(u)}function d(){l=p.pop(),u=h.pop()}function g(e){s(i,e)}for(;r(i,c);){if(0===l){if(null!==u&&g("too many constructs in root"),3===c.type){u={},o&&(u.$vscodeTextmateLocation=c.toLocation(t)),m(),l=1;continue}if(2===c.type){u=[],m(),l=4;continue}g("unexpected token in root")}if(2===l){if(5===c.type){d();continue}if(7===c.type){l=3;continue}g("expected , or }")}if(1===l||3===l){if(1===l&&5===c.type){d();continue}if(1===c.type){let e=c.value;if(r(i,c)&&6===c.type||g("expected colon"),r(i,c)||g("expected value"),l=2,1===c.type){u[e]=c.value;continue}if(8===c.type){u[e]=null;continue}if(9===c.type){u[e]=!0;continue}if(10===c.type){u[e]=!1;continue}if(11===c.type){u[e]=parseFloat(c.value);continue}if(2===c.type){let t=[];u[e]=t,m(),l=4,u=t;continue}if(3===c.type){let s={};o&&(s.$vscodeTextmateLocation=c.toLocation(t)),u[e]=s,m(),l=1,u=s;continue}}g("unexpected token in dict")}if(5===l){if(4===c.type){d();continue}if(7===c.type){l=6;continue}g("expected , or ]")}if(4===l||6===l){if(4===l&&4===c.type){d();continue}if(l=5,1===c.type){u.push(c.value);continue}if(8===c.type){u.push(null);continue}if(9===c.type){u.push(!0);continue}if(10===c.type){u.push(!1);continue}if(11===c.type){u.push(parseFloat(c.value));continue}if(2===c.type){let e=[];u.push(e),m(),l=4,u=e;continue}if(3===c.type){let e={};o&&(e.$vscodeTextmateLocation=c.toLocation(t)),u.push(e),m(),l=1,u=e;continue}g("unexpected token in array")}g("unknown state")}return 0!==h.length&&g("unclosed constructs"),u};class a{constructor(e){this.source=e,this.pos=0,this.len=e.length,this.line=1,this.char=0}}class n{constructor(){this.value=null,this.type=0,this.offset=-1,this.len=-1,this.line=-1,this.char=-1}toLocation(e){return{filename:e,line:this.line,char:this.char}}}function r(e,t){t.value=null,t.type=0,t.offset=-1,t.len=-1,t.line=-1,t.char=-1;let a,n=e.source,r=e.pos,o=e.len,i=e.line,c=e.char;for(;;){if(r>=o)return!1;if(a=n.charCodeAt(r),32!==a&&9!==a&&13!==a){if(10!==a)break;r++,i++,c=0}else r++,c++}if(t.offset=r,t.line=i,t.char=c,34===a){for(t.type=1,r++,c++;;){if(r>=o)return!1;if(a=n.charCodeAt(r),r++,c++,92!==a){if(34===a)break}else r++,c++}t.value=n.substring(t.offset+1,r-1).replace(/\\u([0-9A-Fa-f]{4})/g,((e,t)=>String.fromCodePoint(parseInt(t,16)))).replace(/\\(.)/g,((t,a)=>{switch(a){case'"':return'"';case"\\":return"\\";case"/":return"/";case"b":return"\b";case"f":return"\f";case"n":return"\n";case"r":return"\r";case"t":return"\t";default:s(e,"invalid escape sequence")}throw new Error("unreachable")}))}else if(91===a)t.type=2,r++,c++;else if(123===a)t.type=3,r++,c++;else if(93===a)t.type=4,r++,c++;else if(125===a)t.type=5,r++,c++;else if(58===a)t.type=6,r++,c++;else if(44===a)t.type=7,r++,c++;else if(110===a){if(t.type=8,r++,c++,a=n.charCodeAt(r),117!==a)return!1;if(r++,c++,a=n.charCodeAt(r),108!==a)return!1;if(r++,c++,a=n.charCodeAt(r),108!==a)return!1;r++,c++}else if(116===a){if(t.type=9,r++,c++,a=n.charCodeAt(r),114!==a)return!1;if(r++,c++,a=n.charCodeAt(r),117!==a)return!1;if(r++,c++,a=n.charCodeAt(r),101!==a)return!1;r++,c++}else if(102===a){if(t.type=10,r++,c++,a=n.charCodeAt(r),97!==a)return!1;if(r++,c++,a=n.charCodeAt(r),108!==a)return!1;if(r++,c++,a=n.charCodeAt(r),115!==a)return!1;if(r++,c++,a=n.charCodeAt(r),101!==a)return!1;r++,c++}else for(t.type=11;;){if(r>=o)return!1;if(a=n.charCodeAt(r),!(46===a||a>=48&&a<=57||101===a||69===a||45===a||43===a))break;r++,c++}return t.len=r-t.offset,null===t.value&&(t.value=n.substr(t.offset,t.len)),e.pos=r,e.line=i,e.char=c,!0}},787:function(e,t,s){var a=this&&this.__createBinding||(Object.create?function(e,t,s,a){void 0===a&&(a=s),Object.defineProperty(e,a,{enumerable:!0,get:function(){return t[s]}})}:function(e,t,s,a){void 0===a&&(a=s),e[a]=t[s]}),n=this&&this.__exportStar||function(e,t){for(var s in e)"default"===s||Object.prototype.hasOwnProperty.call(t,s)||a(t,e,s)};Object.defineProperty(t,"__esModule",{value:!0}),t.parseRawGrammar=t.INITIAL=t.Registry=void 0;const r=s(391),o=s(50),i=s(652),c=s(583),l=s(965);n(s(44),t),t.Registry=class{constructor(e){this._options=e,this._syncRegistry=new i.SyncRegistry(c.Theme.createFromRawTheme(e.theme,e.colorMap),e.onigLib),this._ensureGrammarCache=new Map}dispose(){this._syncRegistry.dispose()}setTheme(e,t){this._syncRegistry.setTheme(c.Theme.createFromRawTheme(e,t))}getColorMap(){return this._syncRegistry.getColorMap()}loadGrammarWithEmbeddedLanguages(e,t,s){return this.loadGrammarWithConfiguration(e,t,{embeddedLanguages:s})}loadGrammarWithConfiguration(e,t,s){return this._loadGrammar(e,t,s.embeddedLanguages,s.tokenTypes,new r.BalancedBracketSelectors(s.balancedBracketSelectors||[],s.unbalancedBracketSelectors||[]))}loadGrammar(e){return this._loadGrammar(e,0,null,null,null)}async _loadGrammar(e,t,s,a,n){const r=new l.ScopeDependencyProcessor(this._syncRegistry,e);for(;r.Q.length>0;)await Promise.all(r.Q.map((e=>this._loadSingleGrammar(e.scopeName)))),r.processQueue();return this._grammarForScopeName(e,t,s,a,n)}async _loadSingleGrammar(e){return this._ensureGrammarCache.has(e)||this._ensureGrammarCache.set(e,this._doLoadSingleGrammar(e)),this._ensureGrammarCache.get(e)}async _doLoadSingleGrammar(e){const t=await this._options.loadGrammar(e);if(t){const s="function"==typeof this._options.getInjections?this._options.getInjections(e):void 0;this._syncRegistry.addGrammar(t,s)}}async addGrammar(e,t=[],s=0,a=null){return this._syncRegistry.addGrammar(e,t),await this._grammarForScopeName(e.scopeName,s,a)}_grammarForScopeName(e,t=0,s=null,a=null,n=null){return this._syncRegistry.grammarForScopeName(e,t,s,a,n)}},t.INITIAL=r.StateStack.NULL,t.parseRawGrammar=o.parseRawGrammar},736:(e,t)=>{function s(e){return!!e&&!!e.match(/[\w\.:]+/)}Object.defineProperty(t,"__esModule",{value:!0}),t.createMatchers=void 0,t.createMatchers=function(e,t){const a=[],n=function(e){let t=/([LR]:|[\w\.:][\w\.:\-]*|[\,\|\-\(\)])/g,s=t.exec(e);return{next:()=>{if(!s)return null;const a=s[0];return s=t.exec(e),a}}}(e);let r=n.next();for(;null!==r;){let e=0;if(2===r.length&&":"===r.charAt(1)){switch(r.charAt(0)){case"R":e=1;break;case"L":e=-1;break;default:console.log(`Unknown priority ${r} in scope selector`)}r=n.next()}let t=i();if(a.push({matcher:t,priority:e}),","!==r)break;r=n.next()}return a;function o(){if("-"===r){r=n.next();const e=o();return t=>!!e&&!e(t)}if("("===r){r=n.next();const e=function(){const e=[];let t=i();for(;t&&(e.push(t),"|"===r||","===r);){do{r=n.next()}while("|"===r||","===r);t=i()}return t=>e.some((e=>e(t)))}();return")"===r&&(r=n.next()),e}if(s(r)){const e=[];do{e.push(r),r=n.next()}while(s(r));return s=>t(e,s)}return null}function i(){const e=[];let t=o();for(;t;)e.push(t),t=o();return t=>e.every((e=>e(t)))}}},44:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.disposeOnigString=void 0,t.disposeOnigString=function(e){"function"==typeof e.dispose&&e.dispose()}},50:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.parseRawGrammar=void 0;const a=s(69),n=s(350),r=s(974);t.parseRawGrammar=function(e,t=null){return null!==t&&/\.json$/.test(t)?(s=e,o=t,n.DebugFlags.InDebugMode?r.parseJSON(s,o,!0):JSON.parse(s)):function(e,t){return n.DebugFlags.InDebugMode?a.parseWithLocation(e,t,"$vscodeTextmateLocation"):a.parsePLIST(e)}(e,t);var s,o}},69:(e,t)=>{function s(e,t,s){const a=e.length;let n=0,r=1,o=0;function i(t){if(null===s)n+=t;else for(;t>0;)10===e.charCodeAt(n)?(n++,r++,o=0):(n++,o++),t--}function c(e){null===s?n=e:i(e-n)}function l(){for(;n0&&65279===e.charCodeAt(0)&&(n=1);let m=0,d=null,g=[],f=[],y=null;function b(e,t){g.push(m),f.push(d),m=e,d=t}function _(){if(0===g.length)return N("illegal state stack");m=g.pop(),d=f.pop()}function N(t){throw new Error("Near offset "+n+": "+t+" ~~~"+e.substr(n,50)+"~~~")}const k=function(){if(null===y)return N("missing ");let e={};null!==s&&(e[s]={filename:t,line:r,char:o}),d[y]=e,y=null,b(1,e)},L=function(){if(null===y)return N("missing ");let e=[];d[y]=e,y=null,b(2,e)},S=function(){let e={};null!==s&&(e[s]={filename:t,line:r,char:o}),d.push(e),b(1,e)},P=function(){let e=[];d.push(e),b(2,e)};function v(){if(1!==m)return N("unexpected ");_()}function j(){return 1===m||2!==m?N("unexpected "):void _()}function w(e){if(1===m){if(null===y)return N("missing ");d[y]=e,y=null}else 2===m?d.push(e):d=e}function C(e){if(isNaN(e))return N("cannot parse float");if(1===m){if(null===y)return N("missing ");d[y]=e,y=null}else 2===m?d.push(e):d=e}function x(e){if(isNaN(e))return N("cannot parse integer");if(1===m){if(null===y)return N("missing ");d[y]=e,y=null}else 2===m?d.push(e):d=e}function A(e){if(1===m){if(null===y)return N("missing ");d[y]=e,y=null}else 2===m?d.push(e):d=e}function T(e){if(1===m){if(null===y)return N("missing ");d[y]=e,y=null}else 2===m?d.push(e):d=e}function R(e){if(1===m){if(null===y)return N("missing ");d[y]=e,y=null}else 2===m?d.push(e):d=e}function I(){let e=h(">"),t=!1;return 47===e.charCodeAt(e.length-1)&&(t=!0,e=e.substring(0,e.length-1)),{name:e.trim(),isClosed:t}}function E(e){if(e.isClosed)return"";let t=h(""),t.replace(/&#([0-9]+);/g,(function(e,t){return String.fromCodePoint(parseInt(t,10))})).replace(/&#x([0-9a-f]+);/g,(function(e,t){return String.fromCodePoint(parseInt(t,16))})).replace(/&|<|>|"|'/g,(function(e){switch(e){case"&":return"&";case"<":return"<";case">":return">";case""":return'"';case"'":return"'"}return e}))}for(;n=a));){const c=e.charCodeAt(n);if(i(1),60!==c)return N("expected <");if(n>=a)return N("unexpected end of input");const h=e.charCodeAt(n);if(63===h){i(1),p("?>");continue}if(33===h){if(i(1),u("--")){p("--\x3e");continue}p(">");continue}if(47===h){if(i(1),l(),u("plist")){p(">");continue}if(u("dict")){p(">"),v();continue}if(u("array")){p(">"),j();continue}return N("unexpected closed tag")}let g=I();switch(g.name){case"dict":1===m?k():2===m?S():(d={},null!==s&&(d[s]={filename:t,line:r,char:o}),b(1,d)),g.isClosed&&v();continue;case"array":1===m?L():2===m?P():(d=[],b(2,d)),g.isClosed&&j();continue;case"key":O=E(g),1!==m?N("unexpected "):null!==y?N("too many "):y=O;continue;case"string":w(E(g));continue;case"real":C(parseFloat(E(g)));continue;case"integer":x(parseInt(E(g),10));continue;case"date":A(new Date(E(g)));continue;case"data":T(E(g));continue;case"true":E(g),R(!0);continue;case"false":E(g),R(!1);continue}if(!/^plist/.test(g.name))return N("unexpected opened tag "+g.name)}var O;return d}Object.defineProperty(t,"__esModule",{value:!0}),t.parsePLIST=t.parseWithLocation=void 0,t.parseWithLocation=function(e,t,a){return s(e,t,a)},t.parsePLIST=function(e){return s(e,null,null)}},652:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SyncRegistry=void 0;const a=s(391);t.SyncRegistry=class{constructor(e,t){this._onigLibPromise=t,this._grammars=new Map,this._rawGrammars=new Map,this._injectionGrammars=new Map,this._theme=e}dispose(){for(const e of this._grammars.values())e.dispose()}setTheme(e){this._theme=e}getColorMap(){return this._theme.getColorMap()}addGrammar(e,t){this._rawGrammars.set(e.scopeName,e),t&&this._injectionGrammars.set(e.scopeName,t)}lookup(e){return this._rawGrammars.get(e)}injections(e){return this._injectionGrammars.get(e)}getDefaults(){return this._theme.getDefaults()}themeMatch(e){return this._theme.match(e)}async grammarForScopeName(e,t,s,n,r){if(!this._grammars.has(e)){let o=this._rawGrammars.get(e);if(!o)return null;this._grammars.set(e,a.createGrammar(e,o,t,s,n,r,this,await this._onigLibPromise))}return this._grammars.get(e)}}},792:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CompiledRule=t.RegExpSourceList=t.RegExpSource=t.RuleFactory=t.BeginWhileRule=t.BeginEndRule=t.IncludeOnlyRule=t.MatchRule=t.CaptureRule=t.Rule=t.ruleIdToNumber=t.ruleIdFromNumber=t.whileRuleId=t.endRuleId=void 0;const a=s(878),n=s(965),r=/\\(\d+)/,o=/\\(\d+)/g;t.endRuleId=-1,t.whileRuleId=-2,t.ruleIdFromNumber=function(e){return e},t.ruleIdToNumber=function(e){return e};class i{constructor(e,t,s,n){this.$location=e,this.id=t,this._name=s||null,this._nameIsCapturing=a.RegexSource.hasCaptures(this._name),this._contentName=n||null,this._contentNameIsCapturing=a.RegexSource.hasCaptures(this._contentName)}get debugName(){const e=this.$location?`${a.basename(this.$location.filename)}:${this.$location.line}`:"unknown";return`${this.constructor.name}#${this.id} @ ${e}`}getName(e,t){return this._nameIsCapturing&&null!==this._name&&null!==e&&null!==t?a.RegexSource.replaceCaptures(this._name,e,t):this._name}getContentName(e,t){return this._contentNameIsCapturing&&null!==this._contentName?a.RegexSource.replaceCaptures(this._contentName,e,t):this._contentName}}t.Rule=i;class c extends i{constructor(e,t,s,a,n){super(e,t,s,a),this.retokenizeCapturedWithRuleId=n}dispose(){}collectPatterns(e,t){throw new Error("Not supported!")}compile(e,t){throw new Error("Not supported!")}compileAG(e,t,s,a){throw new Error("Not supported!")}}t.CaptureRule=c;class l extends i{constructor(e,t,s,a,n){super(e,t,s,null),this._match=new d(a,this.id),this.captures=n,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}get debugMatchRegExp(){return`${this._match.source}`}collectPatterns(e,t){t.push(this._match)}compile(e,t){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,t,s,a){return this._getCachedCompiledPatterns(e).compileAG(e,s,a)}_getCachedCompiledPatterns(e){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new g,this.collectPatterns(e,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}}t.MatchRule=l;class u extends i{constructor(e,t,s,a,n){super(e,t,s,a),this.patterns=n.patterns,this.hasMissingPatterns=n.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}collectPatterns(e,t){for(const s of this.patterns)e.getRule(s).collectPatterns(e,t)}compile(e,t){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,t,s,a){return this._getCachedCompiledPatterns(e).compileAG(e,s,a)}_getCachedCompiledPatterns(e){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new g,this.collectPatterns(e,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}}t.IncludeOnlyRule=u;class p extends i{constructor(e,t,s,a,n,r,o,i,c,l){super(e,t,s,a),this._begin=new d(n,this.id),this.beginCaptures=r,this._end=new d(o||"￿",-1),this.endHasBackReferences=this._end.hasBackReferences,this.endCaptures=i,this.applyEndPatternLast=c||!1,this.patterns=l.patterns,this.hasMissingPatterns=l.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugEndRegExp(){return`${this._end.source}`}getEndWithResolvedBackReferences(e,t){return this._end.resolveBackReferences(e,t)}collectPatterns(e,t){t.push(this._begin)}compile(e,t){return this._getCachedCompiledPatterns(e,t).compile(e)}compileAG(e,t,s,a){return this._getCachedCompiledPatterns(e,t).compileAG(e,s,a)}_getCachedCompiledPatterns(e,t){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new g;for(const t of this.patterns)e.getRule(t).collectPatterns(e,this._cachedCompiledPatterns);this.applyEndPatternLast?this._cachedCompiledPatterns.push(this._end.hasBackReferences?this._end.clone():this._end):this._cachedCompiledPatterns.unshift(this._end.hasBackReferences?this._end.clone():this._end)}return this._end.hasBackReferences&&(this.applyEndPatternLast?this._cachedCompiledPatterns.setSource(this._cachedCompiledPatterns.length()-1,t):this._cachedCompiledPatterns.setSource(0,t)),this._cachedCompiledPatterns}}t.BeginEndRule=p;class h extends i{constructor(e,s,a,n,r,o,i,c,l){super(e,s,a,n),this._begin=new d(r,this.id),this.beginCaptures=o,this.whileCaptures=c,this._while=new d(i,t.whileRuleId),this.whileHasBackReferences=this._while.hasBackReferences,this.patterns=l.patterns,this.hasMissingPatterns=l.hasMissingPatterns,this._cachedCompiledPatterns=null,this._cachedCompiledWhilePatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null),this._cachedCompiledWhilePatterns&&(this._cachedCompiledWhilePatterns.dispose(),this._cachedCompiledWhilePatterns=null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugWhileRegExp(){return`${this._while.source}`}getWhileWithResolvedBackReferences(e,t){return this._while.resolveBackReferences(e,t)}collectPatterns(e,t){t.push(this._begin)}compile(e,t){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,t,s,a){return this._getCachedCompiledPatterns(e).compileAG(e,s,a)}_getCachedCompiledPatterns(e){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new g;for(const t of this.patterns)e.getRule(t).collectPatterns(e,this._cachedCompiledPatterns)}return this._cachedCompiledPatterns}compileWhile(e,t){return this._getCachedCompiledWhilePatterns(e,t).compile(e)}compileWhileAG(e,t,s,a){return this._getCachedCompiledWhilePatterns(e,t).compileAG(e,s,a)}_getCachedCompiledWhilePatterns(e,t){return this._cachedCompiledWhilePatterns||(this._cachedCompiledWhilePatterns=new g,this._cachedCompiledWhilePatterns.push(this._while.hasBackReferences?this._while.clone():this._while)),this._while.hasBackReferences&&this._cachedCompiledWhilePatterns.setSource(0,t||"￿"),this._cachedCompiledWhilePatterns}}t.BeginWhileRule=h;class m{static createCaptureRule(e,t,s,a,n){return e.registerRule((e=>new c(t,e,s,a,n)))}static getCompiledRuleId(e,t,s){return e.id||t.registerRule((n=>{if(e.id=n,e.match)return new l(e.$vscodeTextmateLocation,e.id,e.name,e.match,m._compileCaptures(e.captures,t,s));if(void 0===e.begin){e.repository&&(s=a.mergeObjects({},s,e.repository));let n=e.patterns;return void 0===n&&e.include&&(n=[{include:e.include}]),new u(e.$vscodeTextmateLocation,e.id,e.name,e.contentName,m._compilePatterns(n,t,s))}return e.while?new h(e.$vscodeTextmateLocation,e.id,e.name,e.contentName,e.begin,m._compileCaptures(e.beginCaptures||e.captures,t,s),e.while,m._compileCaptures(e.whileCaptures||e.captures,t,s),m._compilePatterns(e.patterns,t,s)):new p(e.$vscodeTextmateLocation,e.id,e.name,e.contentName,e.begin,m._compileCaptures(e.beginCaptures||e.captures,t,s),e.end,m._compileCaptures(e.endCaptures||e.captures,t,s),e.applyEndPatternLast,m._compilePatterns(e.patterns,t,s))})),e.id}static _compileCaptures(e,t,s){let a=[];if(e){let n=0;for(const t in e){if("$vscodeTextmateLocation"===t)continue;const e=parseInt(t,10);e>n&&(n=e)}for(let e=0;e<=n;e++)a[e]=null;for(const n in e){if("$vscodeTextmateLocation"===n)continue;const r=parseInt(n,10);let o=0;e[n].patterns&&(o=m.getCompiledRuleId(e[n],t,s)),a[r]=m.createCaptureRule(t,e[n].$vscodeTextmateLocation,e[n].name,e[n].contentName,o)}}return a}static _compilePatterns(e,t,s){let a=[];if(e)for(let r=0,o=e.length;re.substring(t.start,t.end)));return o.lastIndex=0,this.source.replace(o,((e,t)=>a.escapeRegExpCharacters(s[parseInt(t,10)]||"")))}_buildAnchorCache(){let e,t,s,a,n=[],r=[],o=[],i=[];for(e=0,t=this.source.length;ee.source));this._cached=new f(e,t,this._items.map((e=>e.ruleId)))}return this._cached}compileAG(e,t,s){return this._hasAnchors?t?s?(this._anchorCache.A1_G1||(this._anchorCache.A1_G1=this._resolveAnchors(e,t,s)),this._anchorCache.A1_G1):(this._anchorCache.A1_G0||(this._anchorCache.A1_G0=this._resolveAnchors(e,t,s)),this._anchorCache.A1_G0):s?(this._anchorCache.A0_G1||(this._anchorCache.A0_G1=this._resolveAnchors(e,t,s)),this._anchorCache.A0_G1):(this._anchorCache.A0_G0||(this._anchorCache.A0_G0=this._resolveAnchors(e,t,s)),this._anchorCache.A0_G0):this.compile(e)}_resolveAnchors(e,t,s){let a=this._items.map((e=>e.resolveAnchors(t,s)));return new f(e,a,this._items.map((e=>e.ruleId)))}}t.RegExpSourceList=g;class f{constructor(e,t,s){this.regExps=t,this.rules=s,this.scanner=e.createOnigScanner(t)}dispose(){"function"==typeof this.scanner.dispose&&this.scanner.dispose()}toString(){const e=[];for(let t=0,s=this.rules.length;t{Object.defineProperty(t,"__esModule",{value:!0}),t.ThemeTrieElement=t.ThemeTrieElementRule=t.ColorMap=t.fontStyleToString=t.ParsedThemeRule=t.parseTheme=t.StyleAttributes=t.ScopeStack=t.Theme=void 0;const a=s(878);class n{constructor(e,t,s){this._colorMap=e,this._defaults=t,this._root=s,this._cachedMatchRoot=new a.CachedFn((e=>this._root.match(e)))}static createFromRawTheme(e,t){return this.createFromParsedTheme(c(e),t)}static createFromParsedTheme(e,t){return function(e,t){e.sort(((e,t)=>{let s=a.strcmp(e.scope,t.scope);return 0!==s?s:(s=a.strArrCmp(e.parentScopes,t.parentScopes),0!==s?s:e.index-t.index)}));let s=0,r="#000000",o="#ffffff";for(;e.length>=1&&""===e[0].scope;){let t=e.shift();-1!==t.fontStyle&&(s=t.fontStyle),null!==t.foreground&&(r=t.foreground),null!==t.background&&(o=t.background)}let c=new u(t),l=new i(s,c.getId(r),c.getId(o)),m=new h(new p(0,null,-1,0,0),[]);for(let t=0,s=e.length;tfunction(e,t){if(null===t)return!0;let s=0,a=t[s];for(;e;){if(o(e.scopeName,a)){if(s++,s===t.length)return!0;a=t[s]}e=e.parent}return!1}(e.parent,t.parentScopes)));return s?new i(s.fontStyle,s.foreground,s.background):null}}t.Theme=n;class r{constructor(e,t){this.parent=e,this.scopeName=t}static from(...e){let t=null;for(let s=0;s1&&(p=a.slice(0,a.length-1),p.reverse()),s[n++]=new l(o,p,e,i,c,u)}}return s}t.StyleAttributes=i,t.parseTheme=c;class l{constructor(e,t,s,a,n,r){this.scope=e,this.parentScopes=t,this.index=s,this.fontStyle=a,this.foreground=n,this.background=r}}t.ParsedThemeRule=l,t.fontStyleToString=function(e){if(-1===e)return"not set";let t="";return 1&e&&(t+="italic "),2&e&&(t+="bold "),4&e&&(t+="underline "),8&e&&(t+="strikethrough "),""===t&&(t="none"),t.trim()};class u{constructor(e){if(this._lastColorId=0,this._id2color=[],this._color2id=Object.create(null),Array.isArray(e)){this._isFrozen=!0;for(let t=0,s=e.length;te?console.log("how did this happen?"):this.scopeDepth=e,-1!==t&&(this.fontStyle=t),0!==s&&(this.foreground=s),0!==a&&(this.background=a)}}t.ThemeTrieElementRule=p;class h{constructor(e,t=[],s={}){this._mainRule=e,this._children=s,this._rulesWithParentScopes=t}static _sortBySpecificity(e){return 1===e.length||e.sort(this._cmpBySpecificity),e}static _cmpBySpecificity(e,t){if(e.scopeDepth===t.scopeDepth){const s=e.parentScopes,a=t.parentScopes;let n=null===s?0:s.length,r=null===a?0:a.length;if(n===r)for(let e=0;e{function s(e){return Array.isArray(e)?function(e){let t=[];for(let a=0,n=e.length;a{for(let s in t)e[s]=t[s]})),e},t.basename=function e(t){const s=~t.lastIndexOf("/")||~t.lastIndexOf("\\");return 0===s?t:~s==t.length-1?e(t.substring(0,t.length-1)):t.substr(1+~s)};let a=/\$(\d+)|\${(\d+):\/(downcase|upcase)}/g;function n(e,t){return et?1:0}t.RegexSource=class{static hasCaptures(e){return null!==e&&(a.lastIndex=0,a.test(e))}static replaceCaptures(e,t,s){return e.replace(a,((e,a,n,r)=>{let o=s[parseInt(a||n,10)];if(!o)return e;{let e=t.substring(o.start,o.end);for(;"."===e[0];)e=e.substring(1);switch(r){case"downcase":return e.toLowerCase();case"upcase":return e.toUpperCase();default:return e}}}))}},t.strcmp=n,t.strArrCmp=function(e,t){if(null===e&&null===t)return 0;if(!e)return-1;if(!t)return 1;let s=e.length,a=t.length;if(s===a){for(let a=0;a=0&&r>=0;)$(t[n],a[r])&&n--,r--;return-1===n}function W(e,t,s){let a=[],n=0;for(let r=0,o=e.settings.length;re.trim()));else{if(!Array.isArray(i.scope))continue;o=i.scope}for(let e=0,r=o.length;eNumber.parseInt(e)));if(3!==t.length||t.some((e=>Number.isNaN(e))))return;return{type:"rgb",rgb:t}}if("5"===t){const t=e.shift();if(t)return{type:"table",index:Number(t)}}}function K(e){const t=[];for(;e.length>0;){const s=e.shift();if(!s)continue;const a=Number.parseInt(s);if(!Number.isNaN(a))if(0===a)t.push({type:"resetAll"});else if(a<=9){H[a]&&t.push({type:"setDecoration",value:H[a]})}else if(a<=29){const e=H[a-20];e&&t.push({type:"resetDecoration",value:e})}else if(a<=37)t.push({type:"setForegroundColor",value:{type:"named",name:q[a-30]}});else if(38===a){const s=V(e);s&&t.push({type:"setForegroundColor",value:s})}else if(39===a)t.push({type:"resetForegroundColor"});else if(a<=47)t.push({type:"setBackgroundColor",value:{type:"named",name:q[a-40]}});else if(48===a){const s=V(e);s&&t.push({type:"setBackgroundColor",value:s})}else 49===a?t.push({type:"resetBackgroundColor"}):a>=90&&a<=97?t.push({type:"setForegroundColor",value:{type:"named",name:q[a-90+8]}}):a>=100&&a<=107&&t.push({type:"setBackgroundColor",value:{type:"named",name:q[a-100+8]}})}return t}var J={black:"#000000",red:"#bb0000",green:"#00bb00",yellow:"#bbbb00",blue:"#0000bb",magenta:"#ff00ff",cyan:"#00bbbb",white:"#eeeeee",brightBlack:"#555555",brightRed:"#ff5555",brightGreen:"#00ff00",brightYellow:"#ffff55",brightBlue:"#5555ff",brightMagenta:"#ff55ff",brightCyan:"#55ffff",brightWhite:"#ffffff"};function Q(e=J){function t(t){return e[t]}function s(e){return`#${e.map((e=>Math.max(0,Math.min(e,255)).toString(16).padStart(2,"0"))).join("")}`}let a;function n(e){return function(){if(a)return a;a=[];for(let e=0;e[t,e.colors[`terminal.ansi${t[0].toUpperCase()}${t.substring(1)}`]])))),r=function(){let e=null,t=null,s=new Set;return{parse(a){const n=[];let r=0;do{const o=z(a,r),i=o.sequence?a.substring(r,o.startPosition):a.substring(r);if(i.length>0&&n.push({value:i,foreground:e,background:t,decorations:new Set(s)}),o.sequence){const a=K(o.sequence);for(const n of a)"resetAll"===n.type?(e=null,t=null,s.clear()):"resetForegroundColor"===n.type?e=null:"resetBackgroundColor"===n.type?t=null:"resetDecoration"===n.type&&s.delete(n.value);for(const n of a)"setForegroundColor"===n.type?e=n.value:"setBackgroundColor"===n.type?t=n.value:"setDecoration"===n.type&&s.add(n.value)}r=o.position}while(rr.parse(t).map((t=>{let a;a=t.decorations.has("reverse")?t.background?n.value(t.background):e.bg:t.foreground?n.value(t.foreground):e.fg,t.decorations.has("dim")&&(a=function(e){const t=e.match(/#([0-9a-f]{3})([0-9a-f]{3})?([0-9a-f]{2})?/);if(t){if(t[3]){const e=Math.round(Number.parseInt(t[3],16)/2).toString(16).padStart(2,"0");return`#${t[1]}${t[2]}${e}`}return t[2]?`#${t[1]}${t[2]}80`:`#${Array.from(t[1]).map((e=>`${e}${e}`)).join("")}80`}const s=e.match(/var\((--shiki-color-ansi-[\w-]+)\)/);if(s)return`var(${s[1]}-dim)`;return e}(a));let r=s.None;return t.decorations.has("bold")&&(r|=s.Bold),t.decorations.has("italic")&&(r|=s.Italic),t.decorations.has("underline")&&(r|=s.Underline),{content:t.value,color:a,fontStyle:r}}))))}const Y={pre:({className:e,style:t,children:s})=>`
${s}
`,code:({children:e})=>`${e}`,line:({className:e,children:t})=>`${t}`,token:({style:e,children:t})=>`${t}`};function Z(e,t={}){const a=t.bg||"#fff",n=function(e,t){const s=new Map;for(const a of e){const e=t(a);s.has(e)?s.get(e).push(a):s.set(e,[a])}return s}(t.lineOptions??[],(e=>e.line)),r=t.elements||{};function o(e="",t={},s){const a=r[e]||Y[e];return a?(s=s.filter(Boolean),a({...t,children:"code"===e?s.join("\n"):s.join("")})):""}return o("pre",{className:"shiki "+(t.themeName||""),style:`background-color: ${a}`},[t.langId?`
${t.langId}
`:"",o("code",{},e.map(((a,r)=>{const i=r+1,c=function(e){const t=new Set(["line"]);for(const s of e)for(const e of s.classes??[])t.add(e);return Array.from(t)}(n.get(i)??[]).join(" ");return o("line",{className:c,lines:e,line:a,index:r},a.map(((e,n)=>{const r=[`color: ${e.color||t.fg}`];return e.fontStyle&s.Italic&&r.push("font-style: italic"),e.fontStyle&s.Bold&&r.push("font-weight: bold"),e.fontStyle&s.Underline&&r.push("text-decoration: underline"),o("token",{style:r.join("; "),tokens:a,token:e,index:n},[(i=e.content,i.replace(/[&<>"']/g,(e=>ee[e])))]);var i})))})))])}const ee={"&":"&","<":"<",">":">",'"':""","'":"'"};class te extends F.Registry{constructor(e){super(e),this._resolver=e,this.themesPath="themes/",this._resolvedThemes={},this._resolvedGrammars={},this._langGraph=new Map,this._langMap=t.reduce(((e,t)=>(e[t.id]=t,e)),{})}getTheme(e){return"string"==typeof e?this._resolvedThemes[e]:e}async loadTheme(e){return"string"==typeof e?(this._resolvedThemes[e]||(this._resolvedThemes[e]=await R(`${this.themesPath}${e}.json`)),this._resolvedThemes[e]):((e=I(e)).name&&(this._resolvedThemes[e.name]=e),e)}async loadThemes(e){return await Promise.all(e.map((e=>this.loadTheme(e))))}getLoadedThemes(){return Object.keys(this._resolvedThemes)}getGrammar(e){return this._resolvedGrammars[e]}async loadLanguage(e){const t=e.embeddedLangs?.reduce((async(e,t,s)=>{if(!this.getLoadedLanguages().includes(t)&&this._resolver.getLangRegistration(t))return await this._resolver.loadGrammar(this._resolver.getLangRegistration(t).scopeName),e[this._resolver.getLangRegistration(t).scopeName]=s+2,e}),{}),s={embeddedLanguages:t,balancedBracketSelectors:e.balancedBracketSelectors||["*"],unbalancedBracketSelectors:e.unbalancedBracketSelectors||[]},a=await this.loadGrammarWithConfiguration(e.scopeName,1,s);this._resolvedGrammars[e.id]=a,e.aliases&&e.aliases.forEach((e=>{this._resolvedGrammars[e]=a}))}async loadLanguages(e){for(const t of e)this.resolveEmbeddedLanguages(t);const t=Array.from(this._langGraph.values());for(const e of t)this._resolver.addLanguage(e);for(const e of t)await this.loadLanguage(e)}getLoadedLanguages(){return Object.keys(this._resolvedGrammars)}resolveEmbeddedLanguages(e){if(this._langGraph.has(e.id)||this._langGraph.set(e.id,e),e.embeddedLangs)for(const t of e.embeddedLangs)this._langGraph.set(t,this._langMap[t])}}function se(e){return"string"==typeof e?t.find((t=>t.id===e||t.aliases?.includes(e))):e}e.BUNDLED_LANGUAGES=t,e.BUNDLED_THEMES=["css-variables","dark-plus","dracula-soft","dracula","github-dark-dimmed","github-dark","github-light","hc_light","light-plus","material-theme-darker","material-theme-lighter","material-theme-ocean","material-theme-palenight","material-theme","min-dark","min-light","monokai","nord","one-dark-pro","poimandres","rose-pine-dawn","rose-pine-moon","rose-pine","slack-dark","slack-ochin","solarized-dark","solarized-light","vitesse-dark","vitesse-light"],e.FontStyle=s,e.getHighlighter=async function(e){const{_languages:s,_themes:n,_wasmPath:r}=function(e){let s=t,a=e.themes||[],n=e.paths?.wasm?e.paths.wasm.endsWith("/")?e.paths.wasm:e.paths.wasm+"/":w;return e.langs&&(s=e.langs.map(se)),e.theme&&a.unshift(e.theme),a.length||(a=["nord"]),{_languages:s,_themes:a,_wasmPath:n}}(e),c=new B(async function(e){if(!x){let t;if(P)t="string"==typeof j?d.loadWASM({data:await fetch(A(i(...o(e),"onig.wasm")))}):d.loadWASM({data:j});else{const e=require("path").join(require.resolve("vscode-oniguruma"),"../onig.wasm"),s=require("fs").readFileSync(e).buffer;t=d.loadWASM(s)}x=t.then((()=>({createOnigScanner:e=>d.createOnigScanner(e),createOnigString:e=>d.createOnigString(e)})))}return x}(r),"vscode-oniguruma"),l=new te(c);e.paths?.themes&&(l.themesPath=e.paths.themes.endsWith("/")?e.paths.themes:e.paths.themes+"/"),e.paths?.languages&&(c.languagesPath=e.paths.languages.endsWith("/")?e.paths.languages:e.paths.languages+"/");const u=(await l.loadThemes(n))[0];let p;await l.loadLanguages(s);let h=function(){const e={"#000001":"var(--shiki-color-text)","#000002":"var(--shiki-color-background)","#000004":"var(--shiki-token-constant)","#000005":"var(--shiki-token-string)","#000006":"var(--shiki-token-comment)","#000007":"var(--shiki-token-keyword)","#000008":"var(--shiki-token-parameter)","#000009":"var(--shiki-token-function)","#000010":"var(--shiki-token-string-expression)","#000011":"var(--shiki-token-punctuation)","#000012":"var(--shiki-token-link)"};for(let t=0;t{e.colors[t]=h[s]||s})),t.forEach(((e,s)=>{t[s]=h[e]||e}))}(t,s),{_theme:t,_colorMap:s}}function g(e,t="text",s,n={includeExplanation:!0}){if(function(e){return!e||["plaintext","txt","text"].includes(e)}(t)){return[...e.split(/\r\n|\r|\n/).map((e=>[{content:e}]))]}const{_grammar:r}=function(e){const t=l.getGrammar(e);if(!t)throw Error(`No language registration for ${e}`);return{_grammar:t}}(t),{_theme:o,_colorMap:i}=m(s);return function(e,t,s,n,r){let o=s.split(/\r\n|\r|\n/),i=F.INITIAL,c=[],l=[];for(let s=0,u=o.length;sm(e)._theme,loadTheme:async function(e){await l.loadTheme(e)},loadLanguage:async function(e){const t=se(e);c.addLanguage(t),await l.loadLanguage(t)},getBackgroundColor:function(e){const{_theme:t}=m(e);return t.bg},getForegroundColor:function(e){const{_theme:t}=m(e);return t.fg},getLoadedThemes:function(){return l.getLoadedThemes()},getLoadedLanguages:function(){return l.getLoadedLanguages()},setColorReplacements:function(e){h=e}}},e.loadTheme=R,e.renderToHtml=Z,e.setCDN=function(e){v=e.endsWith("/")?e:e+"/"},e.setOnigasmWASM=function(e){C(e)},e.setWasm=C,e.toShikiTheme=I}(this.shiki=this.shiki||{}); diff --git a/docs/shiki/dist/index.mjs b/docs/shiki/dist/index.mjs new file mode 100644 index 00000000..10054a26 --- /dev/null +++ b/docs/shiki/dist/index.mjs @@ -0,0 +1,2439 @@ +const themesImports = { + "css-variables": () => import('./themes/css-variables-05f06e1d.mjs').then((r) => r.default), + "dark-plus": () => import('./themes/dark-plus-3b14211e.mjs').then((r) => r.default), + "dracula-soft": () => import('./themes/dracula-soft-ab0a6f08.mjs').then((r) => r.default), + "dracula": () => import('./themes/dracula-22fc157d.mjs').then((r) => r.default), + "github-dark-dimmed": () => import('./themes/github-dark-dimmed-2886658b.mjs').then((r) => r.default), + "github-dark": () => import('./themes/github-dark-45d4d058.mjs').then((r) => r.default), + "github-light": () => import('./themes/github-light-1abdeeba.mjs').then((r) => r.default), + "hc_light": () => import('./themes/hc_light-866656c0.mjs').then((r) => r.default), + "light-plus": () => import('./themes/light-plus-c4a6acc7.mjs').then((r) => r.default), + "material-theme-darker": () => import('./themes/material-theme-darker-121e11cb.mjs').then((r) => r.default), + "material-theme-lighter": () => import('./themes/material-theme-lighter-67dbb5c6.mjs').then((r) => r.default), + "material-theme-ocean": () => import('./themes/material-theme-ocean-4c5f4079.mjs').then((r) => r.default), + "material-theme-palenight": () => import('./themes/material-theme-palenight-b570e313.mjs').then((r) => r.default), + "material-theme": () => import('./themes/material-theme-8c7cb8cf.mjs').then((r) => r.default), + "min-dark": () => import('./themes/min-dark-222484e0.mjs').then((r) => r.default), + "min-light": () => import('./themes/min-light-76cd360d.mjs').then((r) => r.default), + "monokai": () => import('./themes/monokai-cdbd8f53.mjs').then((r) => r.default), + "nord": () => import('./themes/nord-5cc6e909.mjs').then((r) => r.default), + "one-dark-pro": () => import('./themes/one-dark-pro-25b24aee.mjs').then((r) => r.default), + "poimandres": () => import('./themes/poimandres-67d1631f.mjs').then((r) => r.default), + "rose-pine-dawn": () => import('./themes/rose-pine-dawn-c3c73070.mjs').then((r) => r.default), + "rose-pine-moon": () => import('./themes/rose-pine-moon-eff88722.mjs').then((r) => r.default), + "rose-pine": () => import('./themes/rose-pine-82cbccbd.mjs').then((r) => r.default), + "slack-dark": () => import('./themes/slack-dark-b21eb9a6.mjs').then((r) => r.default), + "slack-ochin": () => import('./themes/slack-ochin-56e5a657.mjs').then((r) => r.default), + "solarized-dark": () => import('./themes/solarized-dark-dc3ec4c3.mjs').then((r) => r.default), + "solarized-light": () => import('./themes/solarized-light-b414084a.mjs').then((r) => r.default), + "vitesse-dark": () => import('./themes/vitesse-dark-255f0bad.mjs').then((r) => r.default), + "vitesse-light": () => import('./themes/vitesse-light-93fe28eb.mjs').then((r) => r.default) +}; +const themes = Object.keys(themesImports); + +const languages = [ + { + id: "abap", + scopeName: "source.abap", + path: "abap.tmLanguage.json", + import: () => import('./languages/abap.tmLanguage-23f03be6.mjs').then((r) => r.default), + displayName: "ABAP", + samplePath: "abap.sample" + }, + { + id: "actionscript-3", + scopeName: "source.actionscript.3", + path: "actionscript-3.tmLanguage.json", + import: () => import('./languages/actionscript-3.tmLanguage-cef213c4.mjs').then((r) => r.default), + displayName: "ActionScript", + samplePath: "actionscript-3.sample" + }, + { + id: "ada", + scopeName: "source.ada", + path: "ada.tmLanguage.json", + import: () => import('./languages/ada.tmLanguage-c812cbb3.mjs').then((r) => r.default), + displayName: "Ada", + samplePath: "ada.sample" + }, + { + id: "apache", + scopeName: "source.apacheconf", + path: "apache.tmLanguage.json", + import: () => import('./languages/apache.tmLanguage-13ae24f7.mjs').then((r) => r.default), + displayName: "Apache Conf" + }, + { + id: "apex", + scopeName: "source.apex", + path: "apex.tmLanguage.json", + import: () => import('./languages/apex.tmLanguage-59f98cba.mjs').then((r) => r.default), + displayName: "Apex", + samplePath: "apex.sample" + }, + { + id: "apl", + scopeName: "source.apl", + path: "apl.tmLanguage.json", + import: () => import('./languages/apl.tmLanguage-d5366ebc.mjs').then((r) => r.default), + displayName: "APL", + embeddedLangs: ["html", "xml", "css", "javascript", "json"] + }, + { + id: "applescript", + scopeName: "source.applescript", + path: "applescript.tmLanguage.json", + import: () => import('./languages/applescript.tmLanguage-0e0bae3b.mjs').then((r) => r.default), + displayName: "AppleScript", + samplePath: "applescript.sample" + }, + { + id: "ara", + scopeName: "source.ara", + path: "ara.tmLanguage.json", + import: () => import('./languages/ara.tmLanguage-071907fd.mjs').then((r) => r.default), + displayName: "Ara", + samplePath: "ara.sample" + }, + { + id: "asm", + scopeName: "source.asm.x86_64", + path: "asm.tmLanguage.json", + import: () => import('./languages/asm.tmLanguage-60f817f7.mjs').then((r) => r.default), + displayName: "Assembly", + samplePath: "asm.sample" + }, + { + id: "astro", + scopeName: "source.astro", + path: "astro.tmLanguage.json", + import: () => import('./languages/astro.tmLanguage-0d6ab168.mjs').then((r) => r.default), + displayName: "Astro", + samplePath: "astro.sample", + embeddedLangs: ["json", "javascript", "typescript", "stylus", "sass", "css", "scss", "less", "postcss", "tsx"] + }, + { + id: "awk", + scopeName: "source.awk", + path: "awk.tmLanguage.json", + import: () => import('./languages/awk.tmLanguage-036854f7.mjs').then((r) => r.default), + displayName: "AWK", + samplePath: "awk.sample" + }, + { + id: "ballerina", + scopeName: "source.ballerina", + path: "ballerina.tmLanguage.json", + import: () => import('./languages/ballerina.tmLanguage-7d3b71ff.mjs').then((r) => r.default), + displayName: "Ballerina", + samplePath: "ballerina.sample" + }, + { + id: "bat", + scopeName: "source.batchfile", + path: "bat.tmLanguage.json", + import: () => import('./languages/bat.tmLanguage-8fbec8c3.mjs').then((r) => r.default), + displayName: "Batch", + samplePath: "bat.sample", + aliases: ["batch"] + }, + { + id: "beancount", + scopeName: "text.beancount", + path: "beancount.tmLanguage.json", + import: () => import('./languages/beancount.tmLanguage-45642e1a.mjs').then((r) => r.default), + displayName: "Beancount", + samplePath: "beancount.sample" + }, + { + id: "berry", + scopeName: "source.berry", + path: "berry.tmLanguage.json", + import: () => import('./languages/berry.tmLanguage-9b5533c7.mjs').then((r) => r.default), + displayName: "Berry", + samplePath: "berry.sample", + aliases: ["be"] + }, + { + id: "bibtex", + scopeName: "text.bibtex", + path: "bibtex.tmLanguage.json", + import: () => import('./languages/bibtex.tmLanguage-fc598e52.mjs').then((r) => r.default), + displayName: "BibTeX" + }, + { + id: "bicep", + scopeName: "source.bicep", + path: "bicep.tmLanguage.json", + import: () => import('./languages/bicep.tmLanguage-dc7a40ff.mjs').then((r) => r.default), + displayName: "Bicep", + samplePath: "bicep.sample" + }, + { + id: "blade", + scopeName: "text.html.php.blade", + path: "blade.tmLanguage.json", + import: () => import('./languages/blade.tmLanguage-d9190bfa.mjs').then((r) => r.default), + displayName: "Blade", + samplePath: "blade.sample", + embeddedLangs: ["html", "xml", "sql", "javascript", "json", "css"] + }, + { + id: "c", + scopeName: "source.c", + path: "c.tmLanguage.json", + import: () => import('./languages/c.tmLanguage-1ff9dcec.mjs').then((r) => r.default), + displayName: "C", + samplePath: "c.sample" + }, + { + id: "cadence", + scopeName: "source.cadence", + path: "cadence.tmLanguage.json", + import: () => import('./languages/cadence.tmLanguage-d7be92e6.mjs').then((r) => r.default), + displayName: "Cadence", + samplePath: "cadence.sample", + aliases: ["cdc"] + }, + { + id: "clarity", + scopeName: "source.clar", + path: "clarity.tmLanguage.json", + import: () => import('./languages/clarity.tmLanguage-cefd551b.mjs').then((r) => r.default), + displayName: "Clarity", + samplePath: "clarity.sample" + }, + { + id: "clojure", + scopeName: "source.clojure", + path: "clojure.tmLanguage.json", + import: () => import('./languages/clojure.tmLanguage-29296e29.mjs').then((r) => r.default), + displayName: "Clojure", + samplePath: "clojure.sample", + aliases: ["clj"] + }, + { + id: "cmake", + scopeName: "source.cmake", + path: "cmake.tmLanguage.json", + import: () => import('./languages/cmake.tmLanguage-3ea35bc8.mjs').then((r) => r.default), + displayName: "CMake", + samplePath: "cmake.sample" + }, + { + id: "cobol", + scopeName: "source.cobol", + path: "cobol.tmLanguage.json", + import: () => import('./languages/cobol.tmLanguage-1aadb5b9.mjs').then((r) => r.default), + displayName: "COBOL", + samplePath: "cobol.sample", + embeddedLangs: ["sql", "html", "java"] + }, + { + id: "codeql", + scopeName: "source.ql", + path: "codeql.tmLanguage.json", + import: () => import('./languages/codeql.tmLanguage-3b632bd5.mjs').then((r) => r.default), + displayName: "CodeQL", + samplePath: "codeql.sample", + aliases: ["ql"] + }, + { + id: "coffee", + scopeName: "source.coffee", + path: "coffee.tmLanguage.json", + import: () => import('./languages/coffee.tmLanguage-6ed3b28c.mjs').then((r) => r.default), + displayName: "CoffeeScript", + samplePath: "coffee.sample", + embeddedLangs: ["javascript"] + }, + { + id: "cpp", + scopeName: "source.cpp", + path: "cpp.tmLanguage.json", + import: () => import('./languages/cpp.tmLanguage-815420ff.mjs').then((r) => r.default), + displayName: "C++", + samplePath: "cpp.sample", + embeddedLangs: ["glsl", "sql"] + }, + { + id: "crystal", + scopeName: "source.crystal", + path: "crystal.tmLanguage.json", + import: () => import('./languages/crystal.tmLanguage-1023ff70.mjs').then((r) => r.default), + displayName: "Crystal", + samplePath: "crystal.sample", + embeddedLangs: ["html", "sql", "css", "c", "javascript", "shellscript"] + }, + { + id: "csharp", + scopeName: "source.cs", + path: "csharp.tmLanguage.json", + import: () => import('./languages/csharp.tmLanguage-35a94c19.mjs').then((r) => r.default), + displayName: "C#", + samplePath: "csharp.sample", + aliases: ["c#", "cs"] + }, + { + id: "css", + scopeName: "source.css", + path: "css.tmLanguage.json", + import: () => import('./languages/css.tmLanguage-ddae7075.mjs').then((r) => r.default), + displayName: "CSS", + samplePath: "css.sample" + }, + { + id: "cue", + scopeName: "source.cue", + path: "cue.tmLanguage.json", + import: () => import('./languages/cue.tmLanguage-b8fcbc33.mjs').then((r) => r.default), + displayName: "CUE", + samplePath: "cue.sample" + }, + { + id: "cypher", + scopeName: "source.cypher", + path: "cypher.tmLanguage.json", + import: () => import('./languages/cypher.tmLanguage-a0179e48.mjs').then((r) => r.default), + displayName: "Cypher", + samplePath: "cypher.sample", + aliases: ["cql"] + }, + { + id: "d", + scopeName: "source.d", + path: "d.tmLanguage.json", + import: () => import('./languages/d.tmLanguage-b9012936.mjs').then((r) => r.default), + displayName: "D", + samplePath: "d.sample" + }, + { + id: "dart", + scopeName: "source.dart", + path: "dart.tmLanguage.json", + import: () => import('./languages/dart.tmLanguage-6958809a.mjs').then((r) => r.default), + displayName: "Dart", + samplePath: "dart.sample" + }, + { + id: "dax", + scopeName: "source.dax", + path: "dax.tmLanguage.json", + import: () => import('./languages/dax.tmLanguage-553d206a.mjs').then((r) => r.default), + displayName: "DAX", + samplePath: "dax.sample" + }, + { + id: "diff", + scopeName: "source.diff", + path: "diff.tmLanguage.json", + import: () => import('./languages/diff.tmLanguage-a69d9982.mjs').then((r) => r.default), + displayName: "Diff", + samplePath: "diff.sample" + }, + { + id: "docker", + scopeName: "source.dockerfile", + path: "docker.tmLanguage.json", + import: () => import('./languages/docker.tmLanguage-4487995b.mjs').then((r) => r.default), + displayName: "Docker", + samplePath: "docker.sample", + aliases: ["dockerfile"] + }, + { + id: "dream-maker", + scopeName: "source.dm", + path: "dream-maker.tmLanguage.json", + import: () => import('./languages/dream-maker.tmLanguage-ab035a00.mjs').then((r) => r.default), + displayName: "Dream Maker" + }, + { + id: "elixir", + scopeName: "source.elixir", + path: "elixir.tmLanguage.json", + import: () => import('./languages/elixir.tmLanguage-564a40b9.mjs').then((r) => r.default), + displayName: "Elixir", + samplePath: "elixir.sample", + embeddedLangs: ["html"] + }, + { + id: "elm", + scopeName: "source.elm", + path: "elm.tmLanguage.json", + import: () => import('./languages/elm.tmLanguage-a3a9b164.mjs').then((r) => r.default), + displayName: "Elm", + samplePath: "elm.sample", + embeddedLangs: ["glsl"] + }, + { + id: "erb", + scopeName: "text.html.erb", + path: "erb.tmLanguage.json", + import: () => import('./languages/erb.tmLanguage-35e5b435.mjs').then((r) => r.default), + displayName: "ERB", + samplePath: "erb.sample", + embeddedLangs: ["html", "ruby"] + }, + { + id: "erlang", + scopeName: "source.erlang", + path: "erlang.tmLanguage.json", + import: () => import('./languages/erlang.tmLanguage-48bcb023.mjs').then((r) => r.default), + displayName: "Erlang", + samplePath: "erlang.sample", + aliases: ["erl"] + }, + { + id: "fish", + scopeName: "source.fish", + path: "fish.tmLanguage.json", + import: () => import('./languages/fish.tmLanguage-f2d0541b.mjs').then((r) => r.default), + displayName: "Fish", + samplePath: "fish.sample" + }, + { + id: "fsharp", + scopeName: "source.fsharp", + path: "fsharp.tmLanguage.json", + import: () => import('./languages/fsharp.tmLanguage-50c72119.mjs').then((r) => r.default), + displayName: "F#", + samplePath: "fsharp.sample", + aliases: ["f#", "fs"], + embeddedLangs: ["markdown"] + }, + { + id: "gdresource", + scopeName: "source.gdresource", + path: "gdresource.tmLanguage.json", + import: () => import('./languages/gdresource.tmLanguage-6a1b651d.mjs').then((r) => r.default), + displayName: "GDResource", + samplePath: "gdresource.sample", + embeddedLangs: ["gdshader", "gdscript"] + }, + { + id: "gdscript", + scopeName: "source.gdscript", + path: "gdscript.tmLanguage.json", + import: () => import('./languages/gdscript.tmLanguage-ba0811cb.mjs').then((r) => r.default), + displayName: "GDScript", + samplePath: "gdscript.sample" + }, + { + id: "gdshader", + scopeName: "source.gdshader", + path: "gdshader.tmLanguage.json", + import: () => import('./languages/gdshader.tmLanguage-2e198d22.mjs').then((r) => r.default), + displayName: "GDShader", + samplePath: "gdshader.sample" + }, + { + id: "gherkin", + scopeName: "text.gherkin.feature", + path: "gherkin.tmLanguage.json", + import: () => import('./languages/gherkin.tmLanguage-00b58be8.mjs').then((r) => r.default), + displayName: "Gherkin" + }, + { + id: "git-commit", + scopeName: "text.git-commit", + path: "git-commit.tmLanguage.json", + import: () => import('./languages/git-commit.tmLanguage-f01d6710.mjs').then((r) => r.default), + displayName: "Git Commit Message", + embeddedLangs: ["diff"] + }, + { + id: "git-rebase", + scopeName: "text.git-rebase", + path: "git-rebase.tmLanguage.json", + import: () => import('./languages/git-rebase.tmLanguage-e0ede1eb.mjs').then((r) => r.default), + displayName: "Git Rebase Message", + embeddedLangs: ["shellscript"] + }, + { + id: "glimmer-js", + scopeName: "source.gjs", + path: "glimmer-js.tmLanguage.json", + import: () => import('./languages/glimmer-js.tmLanguage-f699a380.mjs').then((r) => r.default), + displayName: "Glimmer JS", + aliases: ["gjs"], + embeddedLangs: ["javascript", "handlebars"] + }, + { + id: "glimmer-ts", + scopeName: "source.gts", + path: "glimmer-ts.tmLanguage.json", + import: () => import('./languages/glimmer-ts.tmLanguage-4277041e.mjs').then((r) => r.default), + displayName: "Glimmer TS", + aliases: ["gts"], + embeddedLangs: ["typescript", "handlebars"] + }, + { + id: "glsl", + scopeName: "source.glsl", + path: "glsl.tmLanguage.json", + import: () => import('./languages/glsl.tmLanguage-440339e8.mjs').then((r) => r.default), + displayName: "GLSL", + samplePath: "glsl.sample", + embeddedLangs: ["c"] + }, + { + id: "gnuplot", + scopeName: "source.gnuplot", + path: "gnuplot.tmLanguage.json", + import: () => import('./languages/gnuplot.tmLanguage-10be0b3e.mjs').then((r) => r.default), + displayName: "Gnuplot" + }, + { + id: "go", + scopeName: "source.go", + path: "go.tmLanguage.json", + import: () => import('./languages/go.tmLanguage-290090a5.mjs').then((r) => r.default), + displayName: "Go", + samplePath: "go.sample" + }, + { + id: "graphql", + scopeName: "source.graphql", + path: "graphql.tmLanguage.json", + import: () => import('./languages/graphql.tmLanguage-6f080657.mjs').then((r) => r.default), + displayName: "GraphQL", + embeddedLangs: ["javascript", "typescript", "jsx", "tsx"] + }, + { + id: "groovy", + scopeName: "source.groovy", + path: "groovy.tmLanguage.json", + import: () => import('./languages/groovy.tmLanguage-0a0bc1de.mjs').then((r) => r.default), + displayName: "Groovy" + }, + { + id: "hack", + scopeName: "source.hack", + path: "hack.tmLanguage.json", + import: () => import('./languages/hack.tmLanguage-b0111193.mjs').then((r) => r.default), + displayName: "Hack", + embeddedLangs: ["html", "sql"] + }, + { + id: "haml", + scopeName: "text.haml", + path: "haml.tmLanguage.json", + import: () => import('./languages/haml.tmLanguage-21841d45.mjs').then((r) => r.default), + displayName: "Ruby Haml", + embeddedLangs: ["ruby", "javascript", "sass", "coffee", "markdown", "css"] + }, + { + id: "handlebars", + scopeName: "text.html.handlebars", + path: "handlebars.tmLanguage.json", + import: () => import('./languages/handlebars.tmLanguage-a7c0a82b.mjs').then((r) => r.default), + displayName: "Handlebars", + aliases: ["hbs"], + embeddedLangs: ["html", "css", "javascript", "yaml"] + }, + { + id: "haskell", + scopeName: "source.haskell", + path: "haskell.tmLanguage.json", + import: () => import('./languages/haskell.tmLanguage-46e87b26.mjs').then((r) => r.default), + displayName: "Haskell", + aliases: ["hs"] + }, + { + id: "hcl", + scopeName: "source.hcl", + path: "hcl.tmLanguage.json", + import: () => import('./languages/hcl.tmLanguage-cce67ae8.mjs').then((r) => r.default), + displayName: "HashiCorp HCL", + samplePath: "hcl.sample" + }, + { + id: "hjson", + scopeName: "source.hjson", + path: "hjson.tmLanguage.json", + import: () => import('./languages/hjson.tmLanguage-fe57d2df.mjs').then((r) => r.default), + displayName: "Hjson", + samplePath: "hjson.sample" + }, + { + id: "hlsl", + scopeName: "source.hlsl", + path: "hlsl.tmLanguage.json", + import: () => import('./languages/hlsl.tmLanguage-baf1ea76.mjs').then((r) => r.default), + displayName: "HLSL" + }, + { + id: "html", + scopeName: "text.html.basic", + path: "html.tmLanguage.json", + import: () => import('./languages/html.tmLanguage-7bee90a8.mjs').then((r) => r.default), + displayName: "HTML", + samplePath: "html.sample", + embeddedLangs: ["javascript", "css"] + }, + { + id: "http", + scopeName: "source.http", + path: "http.tmLanguage.json", + import: () => import('./languages/http.tmLanguage-ddfca291.mjs').then((r) => r.default), + displayName: "HTTP", + samplePath: "http.sample", + embeddedLangs: ["shellscript", "json", "xml", "graphql"] + }, + { + id: "imba", + scopeName: "source.imba", + path: "imba.tmLanguage.json", + import: () => import('./languages/imba.tmLanguage-0a2d3e2e.mjs').then((r) => r.default), + displayName: "Imba", + samplePath: "imba.sample" + }, + { + id: "ini", + scopeName: "source.ini", + path: "ini.tmLanguage.json", + import: () => import('./languages/ini.tmLanguage-dfc7b333.mjs').then((r) => r.default), + displayName: "INI", + aliases: ["properties"] + }, + { + id: "java", + scopeName: "source.java", + path: "java.tmLanguage.json", + import: () => import('./languages/java.tmLanguage-348e34fc.mjs').then((r) => r.default), + displayName: "Java", + samplePath: "java.sample" + }, + { + id: "javascript", + scopeName: "source.js", + path: "javascript.tmLanguage.json", + import: () => import('./languages/javascript.tmLanguage-c53ede72.mjs').then((r) => r.default), + displayName: "JavaScript", + samplePath: "javascript.sample", + aliases: ["js"] + }, + { + id: "jinja-html", + scopeName: "text.html.jinja", + path: "jinja-html.tmLanguage.json", + import: () => import('./languages/jinja-html.tmLanguage-138ee912.mjs').then((r) => r.default), + displayName: "Jinja", + embeddedLangs: ["html"] + }, + { + id: "jison", + scopeName: "source.jison", + path: "jison.tmLanguage.json", + import: () => import('./languages/jison.tmLanguage-dc776b31.mjs').then((r) => r.default), + displayName: "Jison", + samplePath: "jison.sample", + embeddedLangs: ["javascript"] + }, + { + id: "json", + scopeName: "source.json", + path: "json.tmLanguage.json", + import: () => import('./languages/json.tmLanguage-f0a34dd6.mjs').then((r) => r.default), + displayName: "JSON" + }, + { + id: "json5", + scopeName: "source.json5", + path: "json5.tmLanguage.json", + import: () => import('./languages/json5.tmLanguage-647a087f.mjs').then((r) => r.default), + displayName: "JSON5", + samplePath: "json5.sample" + }, + { + id: "jsonc", + scopeName: "source.json.comments", + path: "jsonc.tmLanguage.json", + import: () => import('./languages/jsonc.tmLanguage-23a8af9f.mjs').then((r) => r.default), + displayName: "JSON with Comments" + }, + { + id: "jsonl", + scopeName: "source.json.lines", + path: "jsonl.tmLanguage.json", + import: () => import('./languages/jsonl.tmLanguage-949e3102.mjs').then((r) => r.default), + displayName: "JSON Lines" + }, + { + id: "jsonnet", + scopeName: "source.jsonnet", + path: "jsonnet.tmLanguage.json", + import: () => import('./languages/jsonnet.tmLanguage-a6bacf25.mjs').then((r) => r.default), + displayName: "Jsonnet" + }, + { + id: "jssm", + scopeName: "source.jssm", + path: "jssm.tmLanguage.json", + import: () => import('./languages/jssm.tmLanguage-5df9ad58.mjs').then((r) => r.default), + displayName: "JSSM", + samplePath: "jssm.sample", + aliases: ["fsl"] + }, + { + id: "jsx", + scopeName: "source.js.jsx", + path: "jsx.tmLanguage.json", + import: () => import('./languages/jsx.tmLanguage-8607c961.mjs').then((r) => r.default), + displayName: "JSX" + }, + { + id: "julia", + scopeName: "source.julia", + path: "julia.tmLanguage.json", + import: () => import('./languages/julia.tmLanguage-40aad3fa.mjs').then((r) => r.default), + displayName: "Julia", + embeddedLangs: ["cpp", "python", "javascript", "r", "sql"] + }, + { + id: "kotlin", + scopeName: "source.kotlin", + path: "kotlin.tmLanguage.json", + import: () => import('./languages/kotlin.tmLanguage-5cfeec6d.mjs').then((r) => r.default), + displayName: "Kotlin", + samplePath: "kotlin.sample" + }, + { + id: "kusto", + scopeName: "source.kusto", + path: "kusto.tmLanguage.json", + import: () => import('./languages/kusto.tmLanguage-e4114bbf.mjs').then((r) => r.default), + displayName: "Kusto", + samplePath: "kusto.sample", + aliases: ["kql"] + }, + { + id: "latex", + scopeName: "text.tex.latex", + path: "latex.tmLanguage.json", + import: () => import('./languages/latex.tmLanguage-284c1242.mjs').then((r) => r.default), + displayName: "LaTeX", + embeddedLangs: ["tex", "css", "haskell", "html", "xml", "java", "lua", "julia", "ruby", "javascript", "typescript", "python", "yaml", "rust", "scala", "gnuplot"] + }, + { + id: "less", + scopeName: "source.css.less", + path: "less.tmLanguage.json", + import: () => import('./languages/less.tmLanguage-3e196c19.mjs').then((r) => r.default), + displayName: "Less", + embeddedLangs: ["css"] + }, + { + id: "liquid", + scopeName: "text.html.liquid", + path: "liquid.tmLanguage.json", + import: () => import('./languages/liquid.tmLanguage-498c87c1.mjs').then((r) => r.default), + displayName: "Liquid", + samplePath: "liquid.sample", + embeddedLangs: ["html", "css", "json", "javascript"] + }, + { + id: "lisp", + scopeName: "source.lisp", + path: "lisp.tmLanguage.json", + import: () => import('./languages/lisp.tmLanguage-59b3584d.mjs').then((r) => r.default), + displayName: "Lisp" + }, + { + id: "logo", + scopeName: "source.logo", + path: "logo.tmLanguage.json", + import: () => import('./languages/logo.tmLanguage-5c644d2d.mjs').then((r) => r.default), + displayName: "Logo" + }, + { + id: "lua", + scopeName: "source.lua", + path: "lua.tmLanguage.json", + import: () => import('./languages/lua.tmLanguage-3826d711.mjs').then((r) => r.default), + displayName: "Lua", + embeddedLangs: ["c"] + }, + { + id: "make", + scopeName: "source.makefile", + path: "make.tmLanguage.json", + import: () => import('./languages/make.tmLanguage-5934b3d3.mjs').then((r) => r.default), + displayName: "Makefile", + aliases: ["makefile"] + }, + { + id: "markdown", + scopeName: "text.html.markdown", + path: "markdown.tmLanguage.json", + import: () => import('./languages/markdown.tmLanguage-76bd4831.mjs').then((r) => r.default), + displayName: "Markdown", + aliases: ["md"], + embeddedLangs: ["css", "html", "ini", "java", "lua", "make", "perl", "r", "ruby", "php", "sql", "vb", "xml", "xsl", "yaml", "bat", "clojure", "coffee", "c", "cpp", "diff", "docker", "git-commit", "git-rebase", "go", "groovy", "pug", "javascript", "json", "jsonc", "less", "objective-c", "swift", "scss", "raku", "powershell", "python", "julia", "rust", "scala", "shellscript", "typescript", "tsx", "csharp", "fsharp", "dart", "handlebars", "erlang", "elixir", "latex", "bibtex"] + }, + { + id: "marko", + scopeName: "text.marko", + path: "marko.tmLanguage.json", + import: () => import('./languages/marko.tmLanguage-f7cdd412.mjs').then((r) => r.default), + displayName: "Marko", + samplePath: "marko.sample", + embeddedLangs: ["css", "less", "scss", "javascript"] + }, + { + id: "matlab", + scopeName: "source.matlab", + path: "matlab.tmLanguage.json", + import: () => import('./languages/matlab.tmLanguage-bbd592ac.mjs').then((r) => r.default), + displayName: "MATLAB" + }, + { + id: "mdx", + scopeName: "source.mdx", + path: "mdx.tmLanguage.json", + import: () => import('./languages/mdx.tmLanguage-0e09f242.mjs').then((r) => r.default), + displayName: "MDX", + embeddedLangs: ["tsx", "toml", "yaml", "c", "clojure", "coffee", "cpp", "csharp", "css", "diff", "docker", "elixir", "elm", "erlang", "go", "graphql", "haskell", "html", "ini", "java", "javascript", "json", "julia", "kotlin", "less", "lua", "make", "markdown", "objective-c", "perl", "python", "r", "ruby", "rust", "scala", "scss", "shellscript", "shellsession", "sql", "xml", "swift", "typescript"] + }, + { + id: "mermaid", + scopeName: "source.mermaid", + path: "mermaid.tmLanguage.json", + import: () => import('./languages/mermaid.tmLanguage-5db1f6a2.mjs').then((r) => r.default), + displayName: "Mermaid" + }, + { + id: "mojo", + scopeName: "source.mojo", + path: "mojo.tmLanguage.json", + import: () => import('./languages/mojo.tmLanguage-ce449c28.mjs').then((r) => r.default), + displayName: "MagicPython", + samplePath: "mojo.sample" + }, + { + id: "narrat", + scopeName: "source.narrat", + path: "narrat.tmLanguage.json", + import: () => import('./languages/narrat.tmLanguage-2646344e.mjs').then((r) => r.default), + displayName: "Narrat Language", + samplePath: "narrat.sample", + aliases: ["nar"] + }, + { + id: "nextflow", + scopeName: "source.nextflow", + path: "nextflow.tmLanguage.json", + import: () => import('./languages/nextflow.tmLanguage-7bff6c0e.mjs').then((r) => r.default), + displayName: "Nextflow", + samplePath: "nextflow.sample", + aliases: ["nf"] + }, + { + id: "nginx", + scopeName: "source.nginx", + path: "nginx.tmLanguage.json", + import: () => import('./languages/nginx.tmLanguage-d7d0f70f.mjs').then((r) => r.default), + displayName: "Nginx", + embeddedLangs: ["lua"] + }, + { + id: "nim", + scopeName: "source.nim", + path: "nim.tmLanguage.json", + import: () => import('./languages/nim.tmLanguage-95389e93.mjs').then((r) => r.default), + displayName: "Nim", + embeddedLangs: ["c", "html", "xml", "javascript", "css", "glsl", "markdown"] + }, + { + id: "nix", + scopeName: "source.nix", + path: "nix.tmLanguage.json", + import: () => import('./languages/nix.tmLanguage-ce2318ba.mjs').then((r) => r.default), + displayName: "Nix" + }, + { + id: "objective-c", + scopeName: "source.objc", + path: "objective-c.tmLanguage.json", + import: () => import('./languages/objective-c.tmLanguage-f57e891e.mjs').then((r) => r.default), + displayName: "Objective-C", + aliases: ["objc"] + }, + { + id: "objective-cpp", + scopeName: "source.objcpp", + path: "objective-cpp.tmLanguage.json", + import: () => import('./languages/objective-cpp.tmLanguage-f80072f8.mjs').then((r) => r.default), + displayName: "Objective-C++" + }, + { + id: "ocaml", + scopeName: "source.ocaml", + path: "ocaml.tmLanguage.json", + import: () => import('./languages/ocaml.tmLanguage-d9b75886.mjs').then((r) => r.default), + displayName: "OCaml" + }, + { + id: "pascal", + scopeName: "source.pascal", + path: "pascal.tmLanguage.json", + import: () => import('./languages/pascal.tmLanguage-1d94501b.mjs').then((r) => r.default), + displayName: "Pascal" + }, + { + id: "perl", + scopeName: "source.perl", + path: "perl.tmLanguage.json", + import: () => import('./languages/perl.tmLanguage-9ababd67.mjs').then((r) => r.default), + displayName: "Perl", + embeddedLangs: ["html", "xml", "css", "javascript", "sql"] + }, + { + id: "php", + scopeName: "source.php", + path: "php.tmLanguage.json", + import: () => import('./languages/php.tmLanguage-11848870.mjs').then((r) => r.default), + displayName: "PHP", + embeddedLangs: ["html", "xml", "sql", "javascript", "json", "css"] + }, + { + id: "plsql", + scopeName: "source.plsql.oracle", + path: "plsql.tmLanguage.json", + import: () => import('./languages/plsql.tmLanguage-7b7b1b95.mjs').then((r) => r.default), + displayName: "PL/SQL" + }, + { + id: "postcss", + scopeName: "source.css.postcss", + path: "postcss.tmLanguage.json", + import: () => import('./languages/postcss.tmLanguage-e1ce9483.mjs').then((r) => r.default), + displayName: "PostCSS" + }, + { + id: "powerquery", + scopeName: "source.powerquery", + path: "powerquery.tmLanguage.json", + import: () => import('./languages/powerquery.tmLanguage-5e63151a.mjs').then((r) => r.default), + displayName: "PowerQuery", + samplePath: "powerquery.sample" + }, + { + id: "powershell", + scopeName: "source.powershell", + path: "powershell.tmLanguage.json", + import: () => import('./languages/powershell.tmLanguage-0b9e2100.mjs').then((r) => r.default), + displayName: "PowerShell", + aliases: ["ps", "ps1"] + }, + { + id: "prisma", + scopeName: "source.prisma", + path: "prisma.tmLanguage.json", + import: () => import('./languages/prisma.tmLanguage-c4dcb630.mjs').then((r) => r.default), + displayName: "Prisma", + samplePath: "prisma.sample" + }, + { + id: "prolog", + scopeName: "source.prolog", + path: "prolog.tmLanguage.json", + import: () => import('./languages/prolog.tmLanguage-cf9cb4e0.mjs').then((r) => r.default), + displayName: "Prolog" + }, + { + id: "proto", + scopeName: "source.proto", + path: "proto.tmLanguage.json", + import: () => import('./languages/proto.tmLanguage-791e2569.mjs').then((r) => r.default), + displayName: "Protocol Buffer 3", + samplePath: "proto.sample" + }, + { + id: "pug", + scopeName: "text.pug", + path: "pug.tmLanguage.json", + import: () => import('./languages/pug.tmLanguage-a02607f0.mjs').then((r) => r.default), + displayName: "Pug", + aliases: ["jade"], + embeddedLangs: ["javascript", "css", "sass", "scss", "stylus", "coffee", "html"] + }, + { + id: "puppet", + scopeName: "source.puppet", + path: "puppet.tmLanguage.json", + import: () => import('./languages/puppet.tmLanguage-f4a3eca0.mjs').then((r) => r.default), + displayName: "Puppet" + }, + { + id: "purescript", + scopeName: "source.purescript", + path: "purescript.tmLanguage.json", + import: () => import('./languages/purescript.tmLanguage-a543cff2.mjs').then((r) => r.default), + displayName: "PureScript" + }, + { + id: "python", + scopeName: "source.python", + path: "python.tmLanguage.json", + import: () => import('./languages/python.tmLanguage-1cba37cc.mjs').then((r) => r.default), + displayName: "Python", + samplePath: "python.sample", + aliases: ["py"] + }, + { + id: "r", + scopeName: "source.r", + path: "r.tmLanguage.json", + import: () => import('./languages/r.tmLanguage-d2ebe5ba.mjs').then((r) => r.default), + displayName: "R" + }, + { + id: "raku", + scopeName: "source.perl.6", + path: "raku.tmLanguage.json", + import: () => import('./languages/raku.tmLanguage-21107e05.mjs').then((r) => r.default), + displayName: "Perl 6", + aliases: ["perl6"] + }, + { + id: "razor", + scopeName: "text.aspnetcorerazor", + path: "razor.tmLanguage.json", + import: () => import('./languages/razor.tmLanguage-00b7c492.mjs').then((r) => r.default), + displayName: "ASP.NET Razor", + embeddedLangs: ["html", "csharp"] + }, + { + id: "reg", + scopeName: "source.reg", + path: "reg.tmLanguage.json", + import: () => import('./languages/reg.tmLanguage-c66b7785.mjs').then((r) => r.default), + displayName: "Windows Registry Script", + samplePath: "reg.sample" + }, + { + id: "rel", + scopeName: "source.rel", + path: "rel.tmLanguage.json", + import: () => import('./languages/rel.tmLanguage-ec666bfd.mjs').then((r) => r.default), + displayName: "Rel", + samplePath: "rel.sample" + }, + { + id: "riscv", + scopeName: "source.riscv", + path: "riscv.tmLanguage.json", + import: () => import('./languages/riscv.tmLanguage-3f2cee90.mjs').then((r) => r.default), + displayName: "RISC-V" + }, + { + id: "rst", + scopeName: "source.rst", + path: "rst.tmLanguage.json", + import: () => import('./languages/rst.tmLanguage-ef4c4c8c.mjs').then((r) => r.default), + displayName: "reStructuredText", + embeddedLangs: ["cpp", "python", "javascript", "shellscript", "yaml", "cmake", "ruby"] + }, + { + id: "ruby", + scopeName: "source.ruby", + path: "ruby.tmLanguage.json", + import: () => import('./languages/ruby.tmLanguage-15dc1407.mjs').then((r) => r.default), + displayName: "Ruby", + samplePath: "ruby.sample", + aliases: ["rb"], + embeddedLangs: ["html", "xml", "sql", "css", "c", "javascript", "shellscript", "lua"] + }, + { + id: "rust", + scopeName: "source.rust", + path: "rust.tmLanguage.json", + import: () => import('./languages/rust.tmLanguage-7f99b044.mjs').then((r) => r.default), + displayName: "Rust", + aliases: ["rs"] + }, + { + id: "sas", + scopeName: "source.sas", + path: "sas.tmLanguage.json", + import: () => import('./languages/sas.tmLanguage-7595cb9a.mjs').then((r) => r.default), + displayName: "SAS", + embeddedLangs: ["sql"] + }, + { + id: "sass", + scopeName: "source.sass", + path: "sass.tmLanguage.json", + import: () => import('./languages/sass.tmLanguage-cfe72fe3.mjs').then((r) => r.default), + displayName: "Sass" + }, + { + id: "scala", + scopeName: "source.scala", + path: "scala.tmLanguage.json", + import: () => import('./languages/scala.tmLanguage-78b9a846.mjs').then((r) => r.default), + displayName: "Scala" + }, + { + id: "scheme", + scopeName: "source.scheme", + path: "scheme.tmLanguage.json", + import: () => import('./languages/scheme.tmLanguage-d7ec01c9.mjs').then((r) => r.default), + displayName: "Scheme" + }, + { + id: "scss", + scopeName: "source.css.scss", + path: "scss.tmLanguage.json", + import: () => import('./languages/scss.tmLanguage-3e3c6b2d.mjs').then((r) => r.default), + displayName: "SCSS", + embeddedLangs: ["css"] + }, + { + id: "shaderlab", + scopeName: "source.shaderlab", + path: "shaderlab.tmLanguage.json", + import: () => import('./languages/shaderlab.tmLanguage-21a55f92.mjs').then((r) => r.default), + displayName: "ShaderLab", + aliases: ["shader"], + embeddedLangs: ["hlsl"] + }, + { + id: "shellscript", + scopeName: "source.shell", + path: "shellscript.tmLanguage.json", + import: () => import('./languages/shellscript.tmLanguage-c9d85e8e.mjs').then((r) => r.default), + displayName: "Shell", + aliases: ["bash", "sh", "shell", "zsh"] + }, + { + id: "shellsession", + scopeName: "text.shell-session", + path: "shellsession.tmLanguage.json", + import: () => import('./languages/shellsession.tmLanguage-4020d968.mjs').then((r) => r.default), + displayName: "Shell Session", + samplePath: "shellsession.sample", + aliases: ["console"], + embeddedLangs: ["shellscript"] + }, + { + id: "smalltalk", + scopeName: "source.smalltalk", + path: "smalltalk.tmLanguage.json", + import: () => import('./languages/smalltalk.tmLanguage-d20d7968.mjs').then((r) => r.default), + displayName: "Smalltalk" + }, + { + id: "solidity", + scopeName: "source.solidity", + path: "solidity.tmLanguage.json", + import: () => import('./languages/solidity.tmLanguage-5eda4445.mjs').then((r) => r.default), + displayName: "Solidity" + }, + { + id: "sparql", + scopeName: "source.sparql", + path: "sparql.tmLanguage.json", + import: () => import('./languages/sparql.tmLanguage-e2d30fe9.mjs').then((r) => r.default), + displayName: "SPARQL", + samplePath: "sparql.sample", + embeddedLangs: ["turtle"] + }, + { + id: "splunk", + scopeName: "source.splunk_search", + path: "splunk.tmLanguage.json", + import: () => import('./languages/splunk.tmLanguage-334fbd1e.mjs').then((r) => r.default), + displayName: "Splunk Query Language", + samplePath: "splunk.sample", + aliases: ["spl"] + }, + { + id: "sql", + scopeName: "source.sql", + path: "sql.tmLanguage.json", + import: () => import('./languages/sql.tmLanguage-e83fef9a.mjs').then((r) => r.default), + displayName: "SQL" + }, + { + id: "ssh-config", + scopeName: "source.ssh-config", + path: "ssh-config.tmLanguage.json", + import: () => import('./languages/ssh-config.tmLanguage-2afa8259.mjs').then((r) => r.default), + displayName: "SSH Config" + }, + { + id: "stata", + scopeName: "source.stata", + path: "stata.tmLanguage.json", + import: () => import('./languages/stata.tmLanguage-ef6f2eba.mjs').then((r) => r.default), + displayName: "Stata", + samplePath: "stata.sample", + embeddedLangs: ["sql"] + }, + { + id: "stylus", + scopeName: "source.stylus", + path: "stylus.tmLanguage.json", + import: () => import('./languages/stylus.tmLanguage-0e5d68da.mjs').then((r) => r.default), + displayName: "Stylus", + aliases: ["styl"] + }, + { + id: "svelte", + scopeName: "source.svelte", + path: "svelte.tmLanguage.json", + import: () => import('./languages/svelte.tmLanguage-6f52fc6f.mjs').then((r) => r.default), + displayName: "Svelte", + embeddedLangs: ["javascript", "typescript", "coffee", "stylus", "sass", "css", "scss", "less", "postcss", "pug", "markdown"] + }, + { + id: "swift", + scopeName: "source.swift", + path: "swift.tmLanguage.json", + import: () => import('./languages/swift.tmLanguage-0bb34705.mjs').then((r) => r.default), + displayName: "Swift" + }, + { + id: "system-verilog", + scopeName: "source.systemverilog", + path: "system-verilog.tmLanguage.json", + import: () => import('./languages/system-verilog.tmLanguage-5011d5c2.mjs').then((r) => r.default), + displayName: "SystemVerilog" + }, + { + id: "tasl", + scopeName: "source.tasl", + path: "tasl.tmLanguage.json", + import: () => import('./languages/tasl.tmLanguage-7f0a372b.mjs').then((r) => r.default), + displayName: "Tasl", + samplePath: "tasl.sample" + }, + { + id: "tcl", + scopeName: "source.tcl", + path: "tcl.tmLanguage.json", + import: () => import('./languages/tcl.tmLanguage-c8c905c3.mjs').then((r) => r.default), + displayName: "Tcl" + }, + { + id: "tex", + scopeName: "text.tex", + path: "tex.tmLanguage.json", + import: () => import('./languages/tex.tmLanguage-6bcf6d22.mjs').then((r) => r.default), + displayName: "TeX", + embeddedLangs: ["r"] + }, + { + id: "toml", + scopeName: "source.toml", + path: "toml.tmLanguage.json", + import: () => import('./languages/toml.tmLanguage-1b8531c7.mjs').then((r) => r.default), + displayName: "TOML" + }, + { + id: "tsx", + scopeName: "source.tsx", + path: "tsx.tmLanguage.json", + import: () => import('./languages/tsx.tmLanguage-267e2f5a.mjs').then((r) => r.default), + displayName: "TSX", + samplePath: "tsx.sample" + }, + { + id: "turtle", + scopeName: "source.turtle", + path: "turtle.tmLanguage.json", + import: () => import('./languages/turtle.tmLanguage-030a353f.mjs').then((r) => r.default), + displayName: "Turtle", + samplePath: "turtle.sample" + }, + { + id: "twig", + scopeName: "text.html.twig", + path: "twig.tmLanguage.json", + import: () => import('./languages/twig.tmLanguage-b8077558.mjs').then((r) => r.default), + displayName: "Twig", + embeddedLangs: ["css", "javascript", "php", "python", "ruby"] + }, + { + id: "typescript", + scopeName: "source.ts", + path: "typescript.tmLanguage.json", + import: () => import('./languages/typescript.tmLanguage-de4b3b68.mjs').then((r) => r.default), + displayName: "TypeScript", + aliases: ["ts"] + }, + { + id: "v", + scopeName: "source.v", + path: "v.tmLanguage.json", + import: () => import('./languages/v.tmLanguage-53fdea6f.mjs').then((r) => r.default), + displayName: "V", + samplePath: "v.sample" + }, + { + id: "vb", + scopeName: "source.asp.vb.net", + path: "vb.tmLanguage.json", + import: () => import('./languages/vb.tmLanguage-a3ae732c.mjs').then((r) => r.default), + displayName: "Visual Basic", + aliases: ["cmd"] + }, + { + id: "verilog", + scopeName: "source.verilog", + path: "verilog.tmLanguage.json", + import: () => import('./languages/verilog.tmLanguage-c4c95c8d.mjs').then((r) => r.default), + displayName: "Verilog" + }, + { + id: "vhdl", + scopeName: "source.vhdl", + path: "vhdl.tmLanguage.json", + import: () => import('./languages/vhdl.tmLanguage-f7adf5df.mjs').then((r) => r.default), + displayName: "VHDL" + }, + { + id: "viml", + scopeName: "source.viml", + path: "viml.tmLanguage.json", + import: () => import('./languages/viml.tmLanguage-7f1108c7.mjs').then((r) => r.default), + displayName: "Vim Script", + aliases: ["vim", "vimscript"] + }, + { + id: "vue-html", + scopeName: "text.html.vue-html", + path: "vue-html.tmLanguage.json", + import: () => import('./languages/vue-html.tmLanguage-5594a20c.mjs').then((r) => r.default), + displayName: "Vue HTML", + embeddedLangs: ["vue", "javascript"] + }, + { + id: "vue", + scopeName: "source.vue", + path: "vue.tmLanguage.json", + import: () => import('./languages/vue.tmLanguage-d5fd1824.mjs').then((r) => r.default), + displayName: "Vue", + embeddedLangs: ["html", "markdown", "pug", "stylus", "sass", "css", "scss", "less", "javascript", "typescript", "jsx", "tsx", "json", "jsonc", "json5", "yaml", "toml", "graphql"] + }, + { + id: "vyper", + scopeName: "source.vyper", + path: "vyper.tmLanguage.json", + import: () => import('./languages/vyper.tmLanguage-e575ccf0.mjs').then((r) => r.default), + displayName: "Vyper", + samplePath: "vyper.sample", + aliases: ["vy"] + }, + { + id: "wasm", + scopeName: "source.wat", + path: "wasm.tmLanguage.json", + import: () => import('./languages/wasm.tmLanguage-54c35f12.mjs').then((r) => r.default), + displayName: "WebAssembly" + }, + { + id: "wenyan", + scopeName: "source.wenyan", + path: "wenyan.tmLanguage.json", + import: () => import('./languages/wenyan.tmLanguage-7d801efd.mjs').then((r) => r.default), + displayName: "Wenyan", + aliases: ["\u6587\u8A00"] + }, + { + id: "wgsl", + scopeName: "source.wgsl", + path: "wgsl.tmLanguage.json", + import: () => import('./languages/wgsl.tmLanguage-06067c64.mjs').then((r) => r.default), + displayName: "WGSL", + samplePath: "wgsl.sample" + }, + { + id: "wolfram", + scopeName: "source.wolfram", + path: "wolfram.tmLanguage.json", + import: () => import('./languages/wolfram.tmLanguage-e933012c.mjs').then((r) => r.default), + displayName: "Wolfram", + samplePath: "wolfram.sample" + }, + { + id: "xml", + scopeName: "text.xml", + path: "xml.tmLanguage.json", + import: () => import('./languages/xml.tmLanguage-42b5ff0e.mjs').then((r) => r.default), + displayName: "XML", + embeddedLangs: ["java"] + }, + { + id: "xsl", + scopeName: "text.xml.xsl", + path: "xsl.tmLanguage.json", + import: () => import('./languages/xsl.tmLanguage-b431c449.mjs').then((r) => r.default), + displayName: "XSL", + embeddedLangs: ["xml"] + }, + { + id: "yaml", + scopeName: "source.yaml", + path: "yaml.tmLanguage.json", + import: () => import('./languages/yaml.tmLanguage-875d6de7.mjs').then((r) => r.default), + displayName: "YAML", + aliases: ["yml"] + }, + { + id: "zenscript", + scopeName: "source.zenscript", + path: "zenscript.tmLanguage.json", + import: () => import('./languages/zenscript.tmLanguage-46b17e39.mjs').then((r) => r.default), + displayName: "ZenScript", + samplePath: "zenscript.sample" + }, + { + id: "zig", + scopeName: "source.zig", + path: "zig.tmLanguage.json", + import: () => import('./languages/zig.tmLanguage-f1960962.mjs').then((r) => r.default), + displayName: "zig", + samplePath: "zig.sample" + } +]; + +var FontStyle = /* @__PURE__ */ ((FontStyle2) => { + FontStyle2[FontStyle2["NotSet"] = -1] = "NotSet"; + FontStyle2[FontStyle2["None"] = 0] = "None"; + FontStyle2[FontStyle2["Italic"] = 1] = "Italic"; + FontStyle2[FontStyle2["Bold"] = 2] = "Bold"; + FontStyle2[FontStyle2["Underline"] = 4] = "Underline"; + return FontStyle2; +})(FontStyle || {}); +class StackElementMetadata { + static toBinaryStr(metadata) { + let r = metadata.toString(2); + while (r.length < 32) { + r = "0" + r; + } + return r; + } + static printMetadata(metadata) { + let languageId = StackElementMetadata.getLanguageId(metadata); + let tokenType = StackElementMetadata.getTokenType(metadata); + let fontStyle = StackElementMetadata.getFontStyle(metadata); + let foreground = StackElementMetadata.getForeground(metadata); + let background = StackElementMetadata.getBackground(metadata); + console.log({ + languageId, + tokenType, + fontStyle, + foreground, + background + }); + } + static getLanguageId(metadata) { + return (metadata & 255 /* LANGUAGEID_MASK */) >>> 0 /* LANGUAGEID_OFFSET */; + } + static getTokenType(metadata) { + return (metadata & 768 /* TOKEN_TYPE_MASK */) >>> 8 /* TOKEN_TYPE_OFFSET */; + } + static getFontStyle(metadata) { + return (metadata & 14336 /* FONT_STYLE_MASK */) >>> 11 /* FONT_STYLE_OFFSET */; + } + static getForeground(metadata) { + return (metadata & 8372224 /* FOREGROUND_MASK */) >>> 15 /* FOREGROUND_OFFSET */; + } + static getBackground(metadata) { + return (metadata & 4286578688 /* BACKGROUND_MASK */) >>> 24 /* BACKGROUND_OFFSET */; + } + static containsBalancedBrackets(metadata) { + return (metadata & 1024 /* BALANCED_BRACKETS_MASK */) !== 0; + } + static set(metadata, languageId, tokenType, fontStyle, foreground, background) { + let _languageId = StackElementMetadata.getLanguageId(metadata); + let _tokenType = StackElementMetadata.getTokenType(metadata); + let _fontStyle = StackElementMetadata.getFontStyle(metadata); + let _foreground = StackElementMetadata.getForeground(metadata); + let _background = StackElementMetadata.getBackground(metadata); + let _containsBalancedBracketsBit = StackElementMetadata.containsBalancedBrackets( + metadata + ) ? 1 : 0; + if (languageId !== 0) { + _languageId = languageId; + } + if (tokenType !== 0 /* Other */) { + _tokenType = tokenType === 8 /* MetaEmbedded */ ? 0 /* Other */ : tokenType; + } + if (fontStyle !== -1 /* NotSet */) { + _fontStyle = fontStyle; + } + if (foreground !== 0) { + _foreground = foreground; + } + if (background !== 0) { + _background = background; + } + return (_languageId << 0 /* LANGUAGEID_OFFSET */ | _tokenType << 8 /* TOKEN_TYPE_OFFSET */ | _fontStyle << 11 /* FONT_STYLE_OFFSET */ | _containsBalancedBracketsBit << 10 /* BALANCED_BRACKETS_OFFSET */ | _foreground << 15 /* FOREGROUND_OFFSET */ | _background << 24 /* BACKGROUND_OFFSET */) >>> 0; + } +} + +class Resolver { + constructor(onigLibPromise, onigLibName) { + this.languagesPath = "languages/"; + this.languageMap = {}; + this.scopeToLangMap = {}; + this._onigLibPromise = onigLibPromise; + this._onigLibName = onigLibName; + } + get onigLib() { + return this._onigLibPromise; + } + getOnigLibName() { + return this._onigLibName; + } + getLangRegistration(langIdOrAlias) { + return this.languageMap[langIdOrAlias]; + } + async loadGrammar(scopeName) { + const lang = this.scopeToLangMap[scopeName]; + if (!lang) { + return null; + } + if (lang.grammar) { + return lang.grammar; + } + if (lang.import) { + lang.grammar = await lang.import(); + return lang.grammar; + } + } + addLanguage(l) { + this.languageMap[l.id] = l; + if (l.aliases) { + l.aliases.forEach((a) => { + this.languageMap[a] = l; + }); + } + this.scopeToLangMap[l.scopeName] = l; + } +} + +var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + +var main$1 = {exports: {}}; + +(function (module, exports) { + !function(e,t){module.exports=t();}(commonjsGlobal,(function(){return (()=>{var e={350:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.UseOnigurumaFindOptions=t.DebugFlags=void 0,t.DebugFlags={InDebugMode:"undefined"!=typeof process&&!!process.env.VSCODE_TEXTMATE_DEBUG},t.UseOnigurumaFindOptions=!1;},36:(e,t)=>{var n;Object.defineProperty(t,"__esModule",{value:!0}),t.toOptionalTokenType=t.EncodedTokenAttributes=void 0,(n=t.EncodedTokenAttributes||(t.EncodedTokenAttributes={})).toBinaryStr=function(e){let t=e.toString(2);for(;t.length<32;)t="0"+t;return t},n.print=function(e){const t=n.getLanguageId(e),s=n.getTokenType(e),r=n.getFontStyle(e),i=n.getForeground(e),o=n.getBackground(e);console.log({languageId:t,tokenType:s,fontStyle:r,foreground:i,background:o});},n.getLanguageId=function(e){return (255&e)>>>0},n.getTokenType=function(e){return (768&e)>>>8},n.containsBalancedBrackets=function(e){return 0!=(1024&e)},n.getFontStyle=function(e){return (30720&e)>>>11},n.getForeground=function(e){return (16744448&e)>>>15},n.getBackground=function(e){return (4278190080&e)>>>24},n.set=function(e,t,s,r,i,o,c){let a=n.getLanguageId(e),l=n.getTokenType(e),u=n.containsBalancedBrackets(e)?1:0,h=n.getFontStyle(e),p=n.getForeground(e),d=n.getBackground(e);return 0!==t&&(a=t),8!==s&&(l=s),null!==r&&(u=r?1:0),-1!==i&&(h=i),0!==o&&(p=o),0!==c&&(d=c),(a<<0|l<<8|u<<10|h<<11|p<<15|d<<24)>>>0},t.toOptionalTokenType=function(e){return e};},996:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BasicScopeAttributesProvider=t.BasicScopeAttributes=void 0;const s=n(878);class r{constructor(e,t){this.languageId=e,this.tokenType=t;}}t.BasicScopeAttributes=r;class i{constructor(e,t){this._getBasicScopeAttributes=new s.CachedFn((e=>{const t=this._scopeToLanguage(e),n=this._toStandardTokenType(e);return new r(t,n)})),this._defaultAttributes=new r(e,8),this._embeddedLanguagesMatcher=new o(Object.entries(t||{}));}getDefaultAttributes(){return this._defaultAttributes}getBasicScopeAttributes(e){return null===e?i._NULL_SCOPE_METADATA:this._getBasicScopeAttributes.get(e)}_scopeToLanguage(e){return this._embeddedLanguagesMatcher.match(e)||0}_toStandardTokenType(e){const t=e.match(i.STANDARD_TOKEN_TYPE_REGEXP);if(!t)return 8;switch(t[1]){case"comment":return 1;case"string":return 2;case"regex":return 3;case"meta.embedded":return 0}throw new Error("Unexpected match for standard token type!")}}t.BasicScopeAttributesProvider=i,i._NULL_SCOPE_METADATA=new r(0,0),i.STANDARD_TOKEN_TYPE_REGEXP=/\b(comment|string|regex|meta\.embedded)\b/;class o{constructor(e){if(0===e.length)this.values=null,this.scopesRegExp=null;else {this.values=new Map(e);const t=e.map((([e,t])=>s.escapeRegExpCharacters(e)));t.sort(),t.reverse(),this.scopesRegExp=new RegExp(`^((${t.join(")|(")}))($|\\.)`,"");}}match(e){if(!this.scopesRegExp)return;const t=e.match(this.scopesRegExp);return t?this.values.get(t[1]):void 0}}},947:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.LineTokens=t.BalancedBracketSelectors=t.StateStack=t.AttributedScopeStack=t.Grammar=t.createGrammar=void 0;const s=n(350),r=n(36),i=n(736),o=n(44),c=n(792),a=n(583),l=n(878),u=n(996),h=n(47);function p(e,t,n,s,r){const o=i.createMatchers(t,d),a=c.RuleFactory.getCompiledRuleId(n,s,r.repository);for(const n of o)e.push({debugSelector:t,matcher:n.matcher,ruleId:a,grammar:r,priority:n.priority});}function d(e,t){if(t.length{for(let s=n;sn&&e.substr(0,n)===t&&"."===e[n]}t.createGrammar=function(e,t,n,s,r,i,o,c){return new g(e,t,n,s,r,i,o,c)};class g{constructor(e,t,n,s,r,o,c,a){if(this._rootScopeName=e,this.balancedBracketSelectors=o,this._onigLib=a,this._basicScopeAttributesProvider=new u.BasicScopeAttributesProvider(n,s),this._rootId=-1,this._lastRuleId=0,this._ruleId2desc=[null],this._includedGrammars={},this._grammarRepository=c,this._grammar=m(t,null),this._injections=null,this._tokenTypeMatchers=[],r)for(const e of Object.keys(r)){const t=i.createMatchers(e,d);for(const n of t)this._tokenTypeMatchers.push({matcher:n.matcher,type:r[e]});}}get themeProvider(){return this._grammarRepository}dispose(){for(const e of this._ruleId2desc)e&&e.dispose();}createOnigScanner(e){return this._onigLib.createOnigScanner(e)}createOnigString(e){return this._onigLib.createOnigString(e)}getMetadataForScope(e){return this._basicScopeAttributesProvider.getBasicScopeAttributes(e)}_collectInjections(){const e=[],t=this._rootScopeName,n=(e=>e===this._rootScopeName?this._grammar:this.getExternalGrammar(e))(t);if(n){const s=n.injections;if(s)for(let t in s)p(e,t,s[t],this,n);const r=this._grammarRepository.injections(t);r&&r.forEach((t=>{const n=this.getExternalGrammar(t);if(n){const t=n.injectionSelector;t&&p(e,t,n,this,n);}}));}return e.sort(((e,t)=>e.priority-t.priority)),e}getInjections(){if(null===this._injections&&(this._injections=this._collectInjections(),s.DebugFlags.InDebugMode&&this._injections.length>0)){console.log(`Grammar ${this._rootScopeName} contains the following injections:`);for(const e of this._injections)console.log(` - ${e.debugSelector}`);}return this._injections}registerRule(e){const t=++this._lastRuleId,n=e(c.ruleIdFromNumber(t));return this._ruleId2desc[t]=n,n}getRule(e){return this._ruleId2desc[c.ruleIdToNumber(e)]}getExternalGrammar(e,t){if(this._includedGrammars[e])return this._includedGrammars[e];if(this._grammarRepository){const n=this._grammarRepository.lookup(e);if(n)return this._includedGrammars[e]=m(n,t&&t.$base),this._includedGrammars[e]}}tokenizeLine(e,t,n=0){const s=this._tokenize(e,t,!1,n);return {tokens:s.lineTokens.getResult(s.ruleStack,s.lineLength),ruleStack:s.ruleStack,stoppedEarly:s.stoppedEarly}}tokenizeLine2(e,t,n=0){const s=this._tokenize(e,t,!0,n);return {tokens:s.lineTokens.getBinaryResult(s.ruleStack,s.lineLength),ruleStack:s.ruleStack,stoppedEarly:s.stoppedEarly}}_tokenize(e,t,n,s){let i;if(-1===this._rootId&&(this._rootId=c.RuleFactory.getCompiledRuleId(this._grammar.repository.$self,this,this._grammar.repository)),t&&t!==b.NULL)i=!1,t.reset();else {i=!0;const e=this._basicScopeAttributesProvider.getDefaultAttributes(),n=this.themeProvider.getDefaults(),s=r.EncodedTokenAttributes.set(0,e.languageId,e.tokenType,null,n.fontStyle,n.foregroundId,n.backgroundId),o=this.getRule(this._rootId).getName(null,null);let c;c=o?_.createRootAndLookUpScopeName(o,s,this):_.createRoot("unknown",s),t=new b(null,this._rootId,-1,-1,!1,null,c,c);}e+="\n";const a=this.createOnigString(e),l=a.content.length,u=new y(n,e,this._tokenTypeMatchers,this.balancedBracketSelectors),p=h._tokenizeString(this,a,i,0,t,u,!0,s);return o.disposeOnigString(a),{lineLength:l,lineTokens:u,ruleStack:p.stack,stoppedEarly:p.stoppedEarly}}}function m(e,t){return (e=l.clone(e)).repository=e.repository||{},e.repository.$self={$vscodeTextmateLocation:e.$vscodeTextmateLocation,patterns:e.patterns,name:e.scopeName},e.repository.$base=t||e.repository.$self,e}t.Grammar=g;class _{constructor(e,t,n){this.parent=e,this.scopePath=t,this.tokenAttributes=n;}static createRoot(e,t){return new _(null,new a.ScopeStack(null,e),t)}static createRootAndLookUpScopeName(e,t,n){const s=n.getMetadataForScope(e),r=new a.ScopeStack(null,e),i=n.themeProvider.themeMatch(r),o=_.mergeAttributes(t,s,i);return new _(null,r,o)}get scopeName(){return this.scopePath.scopeName}equals(e){return _._equals(this,e)}static _equals(e,t){for(;;){if(e===t)return !0;if(!e&&!t)return !0;if(!e||!t)return !1;if(e.scopeName!==t.scopeName||e.tokenAttributes!==t.tokenAttributes)return !1;e=e.parent,t=t.parent;}}static mergeAttributes(e,t,n){let s=-1,i=0,o=0;return null!==n&&(s=n.fontStyle,i=n.foregroundId,o=n.backgroundId),r.EncodedTokenAttributes.set(e,t.languageId,t.tokenType,null,s,i,o)}pushAttributed(e,t){if(null===e)return this;if(-1===e.indexOf(" "))return _._pushAttributed(this,e,t);const n=e.split(/ /g);let s=this;for(const e of n)s=_._pushAttributed(s,e,t);return s}static _pushAttributed(e,t,n){const s=n.getMetadataForScope(t),r=e.scopePath.push(t),i=n.themeProvider.themeMatch(r),o=_.mergeAttributes(e.tokenAttributes,s,i);return new _(e,r,o)}getScopeNames(){return this.scopePath.getSegments()}}t.AttributedScopeStack=_;class b{constructor(e,t,n,s,r,i,o,c){this.parent=e,this.ruleId=t,this.beginRuleCapturedEOL=r,this.endRule=i,this.nameScopesList=o,this.contentNameScopesList=c,this._stackElementBrand=void 0,this.depth=this.parent?this.parent.depth+1:1,this._enterPos=n,this._anchorPos=s;}equals(e){return null!==e&&b._equals(this,e)}static _equals(e,t){return e===t||!!this._structuralEquals(e,t)&&e.contentNameScopesList.equals(t.contentNameScopesList)}static _structuralEquals(e,t){for(;;){if(e===t)return !0;if(!e&&!t)return !0;if(!e||!t)return !1;if(e.depth!==t.depth||e.ruleId!==t.ruleId||e.endRule!==t.endRule)return !1;e=e.parent,t=t.parent;}}clone(){return this}static _reset(e){for(;e;)e._enterPos=-1,e._anchorPos=-1,e=e.parent;}reset(){b._reset(this);}pop(){return this.parent}safePop(){return this.parent?this.parent:this}push(e,t,n,s,r,i,o){return new b(this,e,t,n,s,r,i,o)}getEnterPos(){return this._enterPos}getAnchorPos(){return this._anchorPos}getRule(e){return e.getRule(this.ruleId)}toString(){const e=[];return this._writeString(e,0),"["+e.join(",")+"]"}_writeString(e,t){return this.parent&&(t=this.parent._writeString(e,t)),e[t++]=`(${this.ruleId}, TODO-${this.nameScopesList}, TODO-${this.contentNameScopesList})`,t}withContentNameScopesList(e){return this.contentNameScopesList===e?this:this.parent.push(this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,this.endRule,this.nameScopesList,e)}withEndRule(e){return this.endRule===e?this:new b(this.parent,this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,e,this.nameScopesList,this.contentNameScopesList)}hasSameRuleAs(e){let t=this;for(;t&&t._enterPos===e._enterPos;){if(t.ruleId===e.ruleId)return !0;t=t.parent;}return !1}}t.StateStack=b,b.NULL=new b(null,0,0,0,!1,null,null,null),t.BalancedBracketSelectors=class{constructor(e,t){this.allowAny=!1,this.balancedBracketScopes=e.flatMap((e=>"*"===e?(this.allowAny=!0,[]):i.createMatchers(e,d).map((e=>e.matcher)))),this.unbalancedBracketScopes=t.flatMap((e=>i.createMatchers(e,d).map((e=>e.matcher))));}get matchesAlways(){return this.allowAny&&0===this.unbalancedBracketScopes.length}get matchesNever(){return 0===this.balancedBracketScopes.length&&!this.allowAny}match(e){for(const t of this.unbalancedBracketScopes)if(t(e))return !1;for(const t of this.balancedBracketScopes)if(t(e))return !0;return this.allowAny}};class y{constructor(e,t,n,r){this.balancedBracketSelectors=r,this._emitBinaryTokens=e,this._tokenTypeOverrides=n,s.DebugFlags.InDebugMode?this._lineText=t:this._lineText=null,this._tokens=[],this._binaryTokens=[],this._lastTokenEndIndex=0;}produce(e,t){this.produceFromScopes(e.contentNameScopesList,t);}produceFromScopes(e,t){if(this._lastTokenEndIndex>=t)return;if(this._emitBinaryTokens){let n=e.tokenAttributes,i=!1;if(this.balancedBracketSelectors?.matchesAlways&&(i=!0),this._tokenTypeOverrides.length>0||this.balancedBracketSelectors&&!this.balancedBracketSelectors.matchesAlways&&!this.balancedBracketSelectors.matchesNever){const t=e.getScopeNames();for(const e of this._tokenTypeOverrides)e.matcher(t)&&(n=r.EncodedTokenAttributes.set(n,0,r.toOptionalTokenType(e.type),null,-1,0,0));this.balancedBracketSelectors&&(i=this.balancedBracketSelectors.match(t));}if(i&&(n=r.EncodedTokenAttributes.set(n,0,8,i,-1,0,0)),this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-1]===n)return void(this._lastTokenEndIndex=t);if(s.DebugFlags.InDebugMode){const n=e.getScopeNames();console.log(" token: |"+this._lineText.substring(this._lastTokenEndIndex,t).replace(/\n$/,"\\n")+"|");for(let e=0;e0&&this._tokens[this._tokens.length-1].startIndex===t-1&&this._tokens.pop(),0===this._tokens.length&&(this._lastTokenEndIndex=-1,this.produce(e,t),this._tokens[this._tokens.length-1].startIndex=0),this._tokens}getBinaryResult(e,t){this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-2]===t-1&&(this._binaryTokens.pop(),this._binaryTokens.pop()),0===this._binaryTokens.length&&(this._lastTokenEndIndex=-1,this.produce(e,t),this._binaryTokens[this._binaryTokens.length-2]=0);const n=new Uint32Array(this._binaryTokens.length);for(let e=0,t=this._binaryTokens.length;e{Object.defineProperty(t,"__esModule",{value:!0}),t.parseInclude=t.TopLevelRepositoryReference=t.TopLevelReference=t.RelativeReference=t.SelfReference=t.BaseReference=t.ScopeDependencyProcessor=t.ExternalReferenceCollector=t.TopLevelRepositoryRuleReference=t.TopLevelRuleReference=void 0;const s=n(878);class r{constructor(e){this.scopeName=e;}toKey(){return this.scopeName}}t.TopLevelRuleReference=r;class i{constructor(e,t){this.scopeName=e,this.ruleName=t;}toKey(){return `${this.scopeName}#${this.ruleName}`}}t.TopLevelRepositoryRuleReference=i;class o{constructor(){this._references=[],this._seenReferenceKeys=new Set,this.visitedRule=new Set;}get references(){return this._references}add(e){const t=e.toKey();this._seenReferenceKeys.has(t)||(this._seenReferenceKeys.add(t),this._references.push(e));}}function c(e,t,n,s){const i=n.lookup(e.scopeName);if(!i){if(e.scopeName===t)throw new Error(`No grammar provided for <${t}>`);return}const o=n.lookup(t);e instanceof r?l({baseGrammar:o,selfGrammar:i},s):a(e.ruleName,{baseGrammar:o,selfGrammar:i,repository:i.repository},s);const c=n.injections(e.scopeName);if(c)for(const e of c)s.add(new r(e));}function a(e,t,n){t.repository&&t.repository[e]&&u([t.repository[e]],t,n);}function l(e,t){e.selfGrammar.patterns&&Array.isArray(e.selfGrammar.patterns)&&u(e.selfGrammar.patterns,{...e,repository:e.selfGrammar.repository},t),e.selfGrammar.injections&&u(Object.values(e.selfGrammar.injections),{...e,repository:e.selfGrammar.repository},t);}function u(e,t,n){for(const o of e){if(n.visitedRule.has(o))continue;n.visitedRule.add(o);const e=o.repository?s.mergeObjects({},t.repository,o.repository):t.repository;Array.isArray(o.patterns)&&u(o.patterns,{...t,repository:e},n);const c=o.include;if(!c)continue;const h=m(c);switch(h.kind){case 0:l({...t,selfGrammar:t.baseGrammar},n);break;case 1:l(t,n);break;case 2:a(h.ruleName,{...t,repository:e},n);break;case 3:case 4:const s=h.scopeName===t.selfGrammar.scopeName?t.selfGrammar:h.scopeName===t.baseGrammar.scopeName?t.baseGrammar:void 0;if(s){const r={baseGrammar:t.baseGrammar,selfGrammar:s,repository:e};4===h.kind?a(h.ruleName,r,n):l(r,n);}else 4===h.kind?n.add(new i(h.scopeName,h.ruleName)):n.add(new r(h.scopeName));}}}t.ExternalReferenceCollector=o,t.ScopeDependencyProcessor=class{constructor(e,t){this.repo=e,this.initialScopeName=t,this.seenFullScopeRequests=new Set,this.seenPartialScopeRequests=new Set,this.seenFullScopeRequests.add(this.initialScopeName),this.Q=[new r(this.initialScopeName)];}processQueue(){const e=this.Q;this.Q=[];const t=new o;for(const n of e)c(n,this.initialScopeName,this.repo,t);for(const e of t.references)if(e instanceof r){if(this.seenFullScopeRequests.has(e.scopeName))continue;this.seenFullScopeRequests.add(e.scopeName),this.Q.push(e);}else {if(this.seenFullScopeRequests.has(e.scopeName))continue;if(this.seenPartialScopeRequests.has(e.toKey()))continue;this.seenPartialScopeRequests.add(e.toKey()),this.Q.push(e);}}};class h{constructor(){this.kind=0;}}t.BaseReference=h;class p{constructor(){this.kind=1;}}t.SelfReference=p;class d{constructor(e){this.ruleName=e,this.kind=2;}}t.RelativeReference=d;class f{constructor(e){this.scopeName=e,this.kind=3;}}t.TopLevelReference=f;class g{constructor(e,t){this.scopeName=e,this.ruleName=t,this.kind=4;}}function m(e){if("$base"===e)return new h;if("$self"===e)return new p;const t=e.indexOf("#");if(-1===t)return new f(e);if(0===t)return new d(e.substring(1));{const n=e.substring(0,t),s=e.substring(t+1);return new g(n,s)}}t.TopLevelRepositoryReference=g,t.parseInclude=m;},391:function(e,t,n){var s=this&&this.__createBinding||(Object.create?function(e,t,n,s){void 0===s&&(s=n),Object.defineProperty(e,s,{enumerable:!0,get:function(){return t[n]}});}:function(e,t,n,s){void 0===s&&(s=n),e[s]=t[n];}),r=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||s(t,e,n);};Object.defineProperty(t,"__esModule",{value:!0}),r(n(947),t);},47:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.LocalStackElement=t._tokenizeString=void 0;const s=n(350),r=n(44),i=n(792),o=n(878);class c{constructor(e,t){this.stack=e,this.stoppedEarly=t;}}function a(e,t,n,r,a,h,d,f){const g=t.content.length;let m=!1,_=-1;if(d){const o=function(e,t,n,r,o,c){let a=o.beginRuleCapturedEOL?0:-1;const l=[];for(let t=o;t;t=t.pop()){const n=t.getRule(e);n instanceof i.BeginWhileRule&&l.push({rule:n,stack:t});}for(let h=l.pop();h;h=l.pop()){const{ruleScanner:l,findOptions:d}=u(h.rule,e,h.stack.endRule,n,r===a),f=l.findNextMatchSync(t,r,d);if(s.DebugFlags.InDebugMode&&(console.log(" scanning for while rule"),console.log(l.toString())),!f){s.DebugFlags.InDebugMode&&console.log(" popping "+h.rule.debugName+" - "+h.rule.debugWhileRegExp),o=h.stack.pop();break}if(f.ruleId!==i.whileRuleId){o=h.stack.pop();break}f.captureIndices&&f.captureIndices.length&&(c.produce(h.stack,f.captureIndices[0].start),p(e,t,n,h.stack,c,h.rule.whileCaptures,f.captureIndices),c.produce(h.stack,f.captureIndices[0].end),a=f.captureIndices[0].end,f.captureIndices[0].end>r&&(r=f.captureIndices[0].end,n=!1));}return {stack:o,linePos:r,anchorPosition:a,isFirstLine:n}}(e,t,n,r,a,h);a=o.stack,r=o.linePos,n=o.isFirstLine,_=o.anchorPosition;}const b=Date.now();for(;!m;){if(0!==f&&Date.now()-b>f)return new c(a,!0);y();}return new c(a,!1);function y(){s.DebugFlags.InDebugMode&&(console.log(""),console.log(`@@scanNext ${r}: |${t.content.substr(r).replace(/\n$/,"\\n")}|`));const c=function(e,t,n,r,i,c){const a=function(e,t,n,r,i,c){const a=i.getRule(e),{ruleScanner:u,findOptions:h}=l(a,e,i.endRule,n,r===c);let p=0;s.DebugFlags.InDebugMode&&(p=o.performanceNow());const d=u.findNextMatchSync(t,r,h);if(s.DebugFlags.InDebugMode){const e=o.performanceNow()-p;e>5&&console.warn(`Rule ${a.debugName} (${a.id}) matching took ${e} against '${t}'`),console.log(` scanning for (linePos: ${r}, anchorPosition: ${c})`),console.log(u.toString()),d&&console.log(`matched rule id: ${d.ruleId} from ${d.captureIndices[0].start} to ${d.captureIndices[0].end}`);}return d?{captureIndices:d.captureIndices,matchedRuleId:d.ruleId}:null}(e,t,n,r,i,c),u=e.getInjections();if(0===u.length)return a;const h=function(e,t,n,r,i,o,c){let a,u=Number.MAX_VALUE,h=null,p=0;const d=o.contentNameScopesList.getScopeNames();for(let o=0,f=e.length;o=u)&&(u=y,h=b.captureIndices,a=b.ruleId,p=f.priority,u===i))break}return h?{priorityMatch:-1===p,captureIndices:h,matchedRuleId:a}:null}(u,e,t,n,r,i,c);if(!h)return a;if(!a)return h;const p=a.captureIndices[0].start,d=h.captureIndices[0].start;return d0)&&u[0].end>r;if(d===i.endRuleId){const i=a.getRule(e);s.DebugFlags.InDebugMode&&console.log(" popping "+i.debugName+" - "+i.debugEndRegExp),h.produce(a,u[0].start),a=a.withContentNameScopesList(a.nameScopesList),p(e,t,n,a,h,i.endCaptures,u),h.produce(a,u[0].end);const o=a;if(a=a.parent,_=o.getAnchorPos(),!f&&o.getEnterPos()===r)return s.DebugFlags.InDebugMode&&console.error("[1] - Grammar is in an endless loop - Grammar pushed & popped a rule without advancing"),a=o,h.produce(a,g),void(m=!0)}else {const o=e.getRule(d);h.produce(a,u[0].start);const c=a,l=o.getName(t.content,u),b=a.contentNameScopesList.pushAttributed(l,e);if(a=a.push(d,r,_,u[0].end===g,null,b,b),o instanceof i.BeginEndRule){const r=o;s.DebugFlags.InDebugMode&&console.log(" pushing "+r.debugName+" - "+r.debugBeginRegExp),p(e,t,n,a,h,r.beginCaptures,u),h.produce(a,u[0].end),_=u[0].end;const i=r.getContentName(t.content,u),l=b.pushAttributed(i,e);if(a=a.withContentNameScopesList(l),r.endHasBackReferences&&(a=a.withEndRule(r.getEndWithResolvedBackReferences(t.content,u))),!f&&c.hasSameRuleAs(a))return s.DebugFlags.InDebugMode&&console.error("[2] - Grammar is in an endless loop - Grammar pushed the same rule without advancing"),a=a.pop(),h.produce(a,g),void(m=!0)}else if(o instanceof i.BeginWhileRule){const r=o;s.DebugFlags.InDebugMode&&console.log(" pushing "+r.debugName),p(e,t,n,a,h,r.beginCaptures,u),h.produce(a,u[0].end),_=u[0].end;const i=r.getContentName(t.content,u),l=b.pushAttributed(i,e);if(a=a.withContentNameScopesList(l),r.whileHasBackReferences&&(a=a.withEndRule(r.getWhileWithResolvedBackReferences(t.content,u))),!f&&c.hasSameRuleAs(a))return s.DebugFlags.InDebugMode&&console.error("[3] - Grammar is in an endless loop - Grammar pushed the same rule without advancing"),a=a.pop(),h.produce(a,g),void(m=!0)}else {const r=o;if(s.DebugFlags.InDebugMode&&console.log(" matched "+r.debugName+" - "+r.debugMatchRegExp),p(e,t,n,a,h,r.captures,u),h.produce(a,u[0].end),a=a.pop(),!f)return s.DebugFlags.InDebugMode&&console.error("[4] - Grammar is in an endless loop - Grammar is not advancing, nor is it pushing/popping"),a=a.safePop(),h.produce(a,g),void(m=!0)}}u[0].end>r&&(r=u[0].end,n=!1);}}function l(e,t,n,r,i){return s.UseOnigurumaFindOptions?{ruleScanner:e.compile(t,n),findOptions:h(r,i)}:{ruleScanner:e.compileAG(t,n,r,i),findOptions:0}}function u(e,t,n,r,i){return s.UseOnigurumaFindOptions?{ruleScanner:e.compileWhile(t,n),findOptions:h(r,i)}:{ruleScanner:e.compileWhileAG(t,n,r,i),findOptions:0}}function h(e,t){let n=0;return e||(n|=1),t||(n|=4),n}function p(e,t,n,s,i,o,c){if(0===o.length)return;const l=t.content,u=Math.min(o.length,c.length),h=[],p=c[0].end;for(let t=0;tp)break;for(;h.length>0&&h[h.length-1].endPos<=f.start;)i.produceFromScopes(h[h.length-1].scopes,h[h.length-1].endPos),h.pop();if(h.length>0?i.produceFromScopes(h[h.length-1].scopes,f.start):i.produce(s,f.start),u.retokenizeCapturedWithRuleId){const t=u.getName(l,c),o=s.contentNameScopesList.pushAttributed(t,e),h=u.getContentName(l,c),p=o.pushAttributed(h,e),d=s.push(u.retokenizeCapturedWithRuleId,f.start,-1,!1,null,o,p),g=e.createOnigString(l.substring(0,f.end));a(e,g,n&&0===f.start,f.start,d,i,!1,0),r.disposeOnigString(g);continue}const g=u.getName(l,c);if(null!==g){const t=(h.length>0?h[h.length-1].scopes:s.contentNameScopesList).pushAttributed(g,e);h.push(new d(t,f.end));}}for(;h.length>0;)i.produceFromScopes(h[h.length-1].scopes,h[h.length-1].endPos),h.pop();}t._tokenizeString=a;class d{constructor(e,t){this.scopes=e,this.endPos=t;}}t.LocalStackElement=d;},974:(e,t)=>{function n(e,t){throw new Error("Near offset "+e.pos+": "+t+" ~~~"+e.source.substr(e.pos,50)+"~~~")}Object.defineProperty(t,"__esModule",{value:!0}),t.parseJSON=void 0,t.parseJSON=function(e,t,o){let c=new s(e),a=new r,l=0,u=null,h=[],p=[];function d(){h.push(l),p.push(u);}function f(){l=h.pop(),u=p.pop();}function g(e){n(c,e);}for(;i(c,a);){if(0===l){if(null!==u&&g("too many constructs in root"),3===a.type){u={},o&&(u.$vscodeTextmateLocation=a.toLocation(t)),d(),l=1;continue}if(2===a.type){u=[],d(),l=4;continue}g("unexpected token in root");}if(2===l){if(5===a.type){f();continue}if(7===a.type){l=3;continue}g("expected , or }");}if(1===l||3===l){if(1===l&&5===a.type){f();continue}if(1===a.type){let e=a.value;if(i(c,a)&&6===a.type||g("expected colon"),i(c,a)||g("expected value"),l=2,1===a.type){u[e]=a.value;continue}if(8===a.type){u[e]=null;continue}if(9===a.type){u[e]=!0;continue}if(10===a.type){u[e]=!1;continue}if(11===a.type){u[e]=parseFloat(a.value);continue}if(2===a.type){let t=[];u[e]=t,d(),l=4,u=t;continue}if(3===a.type){let n={};o&&(n.$vscodeTextmateLocation=a.toLocation(t)),u[e]=n,d(),l=1,u=n;continue}}g("unexpected token in dict");}if(5===l){if(4===a.type){f();continue}if(7===a.type){l=6;continue}g("expected , or ]");}if(4===l||6===l){if(4===l&&4===a.type){f();continue}if(l=5,1===a.type){u.push(a.value);continue}if(8===a.type){u.push(null);continue}if(9===a.type){u.push(!0);continue}if(10===a.type){u.push(!1);continue}if(11===a.type){u.push(parseFloat(a.value));continue}if(2===a.type){let e=[];u.push(e),d(),l=4,u=e;continue}if(3===a.type){let e={};o&&(e.$vscodeTextmateLocation=a.toLocation(t)),u.push(e),d(),l=1,u=e;continue}g("unexpected token in array");}g("unknown state");}return 0!==p.length&&g("unclosed constructs"),u};class s{constructor(e){this.source=e,this.pos=0,this.len=e.length,this.line=1,this.char=0;}}class r{constructor(){this.value=null,this.type=0,this.offset=-1,this.len=-1,this.line=-1,this.char=-1;}toLocation(e){return {filename:e,line:this.line,char:this.char}}}function i(e,t){t.value=null,t.type=0,t.offset=-1,t.len=-1,t.line=-1,t.char=-1;let s,r=e.source,i=e.pos,o=e.len,c=e.line,a=e.char;for(;;){if(i>=o)return !1;if(s=r.charCodeAt(i),32!==s&&9!==s&&13!==s){if(10!==s)break;i++,c++,a=0;}else i++,a++;}if(t.offset=i,t.line=c,t.char=a,34===s){for(t.type=1,i++,a++;;){if(i>=o)return !1;if(s=r.charCodeAt(i),i++,a++,92!==s){if(34===s)break}else i++,a++;}t.value=r.substring(t.offset+1,i-1).replace(/\\u([0-9A-Fa-f]{4})/g,((e,t)=>String.fromCodePoint(parseInt(t,16)))).replace(/\\(.)/g,((t,s)=>{switch(s){case'"':return '"';case"\\":return "\\";case"/":return "/";case"b":return "\b";case"f":return "\f";case"n":return "\n";case"r":return "\r";case"t":return "\t";default:n(e,"invalid escape sequence");}throw new Error("unreachable")}));}else if(91===s)t.type=2,i++,a++;else if(123===s)t.type=3,i++,a++;else if(93===s)t.type=4,i++,a++;else if(125===s)t.type=5,i++,a++;else if(58===s)t.type=6,i++,a++;else if(44===s)t.type=7,i++,a++;else if(110===s){if(t.type=8,i++,a++,s=r.charCodeAt(i),117!==s)return !1;if(i++,a++,s=r.charCodeAt(i),108!==s)return !1;if(i++,a++,s=r.charCodeAt(i),108!==s)return !1;i++,a++;}else if(116===s){if(t.type=9,i++,a++,s=r.charCodeAt(i),114!==s)return !1;if(i++,a++,s=r.charCodeAt(i),117!==s)return !1;if(i++,a++,s=r.charCodeAt(i),101!==s)return !1;i++,a++;}else if(102===s){if(t.type=10,i++,a++,s=r.charCodeAt(i),97!==s)return !1;if(i++,a++,s=r.charCodeAt(i),108!==s)return !1;if(i++,a++,s=r.charCodeAt(i),115!==s)return !1;if(i++,a++,s=r.charCodeAt(i),101!==s)return !1;i++,a++;}else for(t.type=11;;){if(i>=o)return !1;if(s=r.charCodeAt(i),!(46===s||s>=48&&s<=57||101===s||69===s||45===s||43===s))break;i++,a++;}return t.len=i-t.offset,null===t.value&&(t.value=r.substr(t.offset,t.len)),e.pos=i,e.line=c,e.char=a,!0}},787:function(e,t,n){var s=this&&this.__createBinding||(Object.create?function(e,t,n,s){void 0===s&&(s=n),Object.defineProperty(e,s,{enumerable:!0,get:function(){return t[n]}});}:function(e,t,n,s){void 0===s&&(s=n),e[s]=t[n];}),r=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||s(t,e,n);};Object.defineProperty(t,"__esModule",{value:!0}),t.parseRawGrammar=t.INITIAL=t.Registry=void 0;const i=n(391),o=n(50),c=n(652),a=n(583),l=n(965);r(n(44),t),t.Registry=class{constructor(e){this._options=e,this._syncRegistry=new c.SyncRegistry(a.Theme.createFromRawTheme(e.theme,e.colorMap),e.onigLib),this._ensureGrammarCache=new Map;}dispose(){this._syncRegistry.dispose();}setTheme(e,t){this._syncRegistry.setTheme(a.Theme.createFromRawTheme(e,t));}getColorMap(){return this._syncRegistry.getColorMap()}loadGrammarWithEmbeddedLanguages(e,t,n){return this.loadGrammarWithConfiguration(e,t,{embeddedLanguages:n})}loadGrammarWithConfiguration(e,t,n){return this._loadGrammar(e,t,n.embeddedLanguages,n.tokenTypes,new i.BalancedBracketSelectors(n.balancedBracketSelectors||[],n.unbalancedBracketSelectors||[]))}loadGrammar(e){return this._loadGrammar(e,0,null,null,null)}async _loadGrammar(e,t,n,s,r){const i=new l.ScopeDependencyProcessor(this._syncRegistry,e);for(;i.Q.length>0;)await Promise.all(i.Q.map((e=>this._loadSingleGrammar(e.scopeName)))),i.processQueue();return this._grammarForScopeName(e,t,n,s,r)}async _loadSingleGrammar(e){return this._ensureGrammarCache.has(e)||this._ensureGrammarCache.set(e,this._doLoadSingleGrammar(e)),this._ensureGrammarCache.get(e)}async _doLoadSingleGrammar(e){const t=await this._options.loadGrammar(e);if(t){const n="function"==typeof this._options.getInjections?this._options.getInjections(e):void 0;this._syncRegistry.addGrammar(t,n);}}async addGrammar(e,t=[],n=0,s=null){return this._syncRegistry.addGrammar(e,t),await this._grammarForScopeName(e.scopeName,n,s)}_grammarForScopeName(e,t=0,n=null,s=null,r=null){return this._syncRegistry.grammarForScopeName(e,t,n,s,r)}},t.INITIAL=i.StateStack.NULL,t.parseRawGrammar=o.parseRawGrammar;},736:(e,t)=>{function n(e){return !!e&&!!e.match(/[\w\.:]+/)}Object.defineProperty(t,"__esModule",{value:!0}),t.createMatchers=void 0,t.createMatchers=function(e,t){const s=[],r=function(e){let t=/([LR]:|[\w\.:][\w\.:\-]*|[\,\|\-\(\)])/g,n=t.exec(e);return {next:()=>{if(!n)return null;const s=n[0];return n=t.exec(e),s}}}(e);let i=r.next();for(;null!==i;){let e=0;if(2===i.length&&":"===i.charAt(1)){switch(i.charAt(0)){case"R":e=1;break;case"L":e=-1;break;default:console.log(`Unknown priority ${i} in scope selector`);}i=r.next();}let t=c();if(s.push({matcher:t,priority:e}),","!==i)break;i=r.next();}return s;function o(){if("-"===i){i=r.next();const e=o();return t=>!!e&&!e(t)}if("("===i){i=r.next();const e=function(){const e=[];let t=c();for(;t&&(e.push(t),"|"===i||","===i);){do{i=r.next();}while("|"===i||","===i);t=c();}return t=>e.some((e=>e(t)))}();return ")"===i&&(i=r.next()),e}if(n(i)){const e=[];do{e.push(i),i=r.next();}while(n(i));return n=>t(e,n)}return null}function c(){const e=[];let t=o();for(;t;)e.push(t),t=o();return t=>e.every((e=>e(t)))}};},44:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.disposeOnigString=void 0,t.disposeOnigString=function(e){"function"==typeof e.dispose&&e.dispose();};},50:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.parseRawGrammar=void 0;const s=n(69),r=n(350),i=n(974);t.parseRawGrammar=function(e,t=null){return null!==t&&/\.json$/.test(t)?(n=e,o=t,r.DebugFlags.InDebugMode?i.parseJSON(n,o,!0):JSON.parse(n)):function(e,t){return r.DebugFlags.InDebugMode?s.parseWithLocation(e,t,"$vscodeTextmateLocation"):s.parsePLIST(e)}(e,t);var n,o;};},69:(e,t)=>{function n(e,t,n){const s=e.length;let r=0,i=1,o=0;function c(t){if(null===n)r+=t;else for(;t>0;)10===e.charCodeAt(r)?(r++,i++,o=0):(r++,o++),t--;}function a(e){null===n?r=e:c(e-r);}function l(){for(;r0&&65279===e.charCodeAt(0)&&(r=1);let d=0,f=null,g=[],m=[],_=null;function b(e,t){g.push(d),m.push(f),d=e,f=t;}function y(){if(0===g.length)return S("illegal state stack");d=g.pop(),f=m.pop();}function S(t){throw new Error("Near offset "+r+": "+t+" ~~~"+e.substr(r,50)+"~~~")}const k=function(){if(null===_)return S("missing ");let e={};null!==n&&(e[n]={filename:t,line:i,char:o}),f[_]=e,_=null,b(1,e);},C=function(){if(null===_)return S("missing ");let e=[];f[_]=e,_=null,b(2,e);},R=function(){let e={};null!==n&&(e[n]={filename:t,line:i,char:o}),f.push(e),b(1,e);},A=function(){let e=[];f.push(e),b(2,e);};function w(){if(1!==d)return S("unexpected ");y();}function P(){return 1===d||2!==d?S("unexpected "):void y()}function I(e){if(1===d){if(null===_)return S("missing ");f[_]=e,_=null;}else 2===d?f.push(e):f=e;}function v(e){if(isNaN(e))return S("cannot parse float");if(1===d){if(null===_)return S("missing ");f[_]=e,_=null;}else 2===d?f.push(e):f=e;}function N(e){if(isNaN(e))return S("cannot parse integer");if(1===d){if(null===_)return S("missing ");f[_]=e,_=null;}else 2===d?f.push(e):f=e;}function T(e){if(1===d){if(null===_)return S("missing ");f[_]=e,_=null;}else 2===d?f.push(e):f=e;}function x(e){if(1===d){if(null===_)return S("missing ");f[_]=e,_=null;}else 2===d?f.push(e):f=e;}function G(e){if(1===d){if(null===_)return S("missing ");f[_]=e,_=null;}else 2===d?f.push(e):f=e;}function E(){let e=p(">"),t=!1;return 47===e.charCodeAt(e.length-1)&&(t=!0,e=e.substring(0,e.length-1)),{name:e.trim(),isClosed:t}}function L(e){if(e.isClosed)return "";let t=p(""),t.replace(/&#([0-9]+);/g,(function(e,t){return String.fromCodePoint(parseInt(t,10))})).replace(/&#x([0-9a-f]+);/g,(function(e,t){return String.fromCodePoint(parseInt(t,16))})).replace(/&|<|>|"|'/g,(function(e){switch(e){case"&":return "&";case"<":return "<";case">":return ">";case""":return '"';case"'":return "'"}return e}))}for(;r=s));){const a=e.charCodeAt(r);if(c(1),60!==a)return S("expected <");if(r>=s)return S("unexpected end of input");const p=e.charCodeAt(r);if(63===p){c(1),h("?>");continue}if(33===p){if(c(1),u("--")){h("--\x3e");continue}h(">");continue}if(47===p){if(c(1),l(),u("plist")){h(">");continue}if(u("dict")){h(">"),w();continue}if(u("array")){h(">"),P();continue}return S("unexpected closed tag")}let g=E();switch(g.name){case"dict":1===d?k():2===d?R():(f={},null!==n&&(f[n]={filename:t,line:i,char:o}),b(1,f)),g.isClosed&&w();continue;case"array":1===d?C():2===d?A():(f=[],b(2,f)),g.isClosed&&P();continue;case"key":M=L(g),1!==d?S("unexpected "):null!==_?S("too many "):_=M;continue;case"string":I(L(g));continue;case"real":v(parseFloat(L(g)));continue;case"integer":N(parseInt(L(g),10));continue;case"date":T(new Date(L(g)));continue;case"data":x(L(g));continue;case"true":L(g),G(!0);continue;case"false":L(g),G(!1);continue}if(!/^plist/.test(g.name))return S("unexpected opened tag "+g.name)}var M;return f}Object.defineProperty(t,"__esModule",{value:!0}),t.parsePLIST=t.parseWithLocation=void 0,t.parseWithLocation=function(e,t,s){return n(e,t,s)},t.parsePLIST=function(e){return n(e,null,null)};},652:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SyncRegistry=void 0;const s=n(391);t.SyncRegistry=class{constructor(e,t){this._onigLibPromise=t,this._grammars=new Map,this._rawGrammars=new Map,this._injectionGrammars=new Map,this._theme=e;}dispose(){for(const e of this._grammars.values())e.dispose();}setTheme(e){this._theme=e;}getColorMap(){return this._theme.getColorMap()}addGrammar(e,t){this._rawGrammars.set(e.scopeName,e),t&&this._injectionGrammars.set(e.scopeName,t);}lookup(e){return this._rawGrammars.get(e)}injections(e){return this._injectionGrammars.get(e)}getDefaults(){return this._theme.getDefaults()}themeMatch(e){return this._theme.match(e)}async grammarForScopeName(e,t,n,r,i){if(!this._grammars.has(e)){let o=this._rawGrammars.get(e);if(!o)return null;this._grammars.set(e,s.createGrammar(e,o,t,n,r,i,this,await this._onigLibPromise));}return this._grammars.get(e)}};},792:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CompiledRule=t.RegExpSourceList=t.RegExpSource=t.RuleFactory=t.BeginWhileRule=t.BeginEndRule=t.IncludeOnlyRule=t.MatchRule=t.CaptureRule=t.Rule=t.ruleIdToNumber=t.ruleIdFromNumber=t.whileRuleId=t.endRuleId=void 0;const s=n(878),r=n(965),i=/\\(\d+)/,o=/\\(\d+)/g;t.endRuleId=-1,t.whileRuleId=-2,t.ruleIdFromNumber=function(e){return e},t.ruleIdToNumber=function(e){return e};class c{constructor(e,t,n,r){this.$location=e,this.id=t,this._name=n||null,this._nameIsCapturing=s.RegexSource.hasCaptures(this._name),this._contentName=r||null,this._contentNameIsCapturing=s.RegexSource.hasCaptures(this._contentName);}get debugName(){const e=this.$location?`${s.basename(this.$location.filename)}:${this.$location.line}`:"unknown";return `${this.constructor.name}#${this.id} @ ${e}`}getName(e,t){return this._nameIsCapturing&&null!==this._name&&null!==e&&null!==t?s.RegexSource.replaceCaptures(this._name,e,t):this._name}getContentName(e,t){return this._contentNameIsCapturing&&null!==this._contentName?s.RegexSource.replaceCaptures(this._contentName,e,t):this._contentName}}t.Rule=c;class a extends c{constructor(e,t,n,s,r){super(e,t,n,s),this.retokenizeCapturedWithRuleId=r;}dispose(){}collectPatterns(e,t){throw new Error("Not supported!")}compile(e,t){throw new Error("Not supported!")}compileAG(e,t,n,s){throw new Error("Not supported!")}}t.CaptureRule=a;class l extends c{constructor(e,t,n,s,r){super(e,t,n,null),this._match=new f(s,this.id),this.captures=r,this._cachedCompiledPatterns=null;}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null);}get debugMatchRegExp(){return `${this._match.source}`}collectPatterns(e,t){t.push(this._match);}compile(e,t){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,t,n,s){return this._getCachedCompiledPatterns(e).compileAG(e,n,s)}_getCachedCompiledPatterns(e){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new g,this.collectPatterns(e,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}}t.MatchRule=l;class u extends c{constructor(e,t,n,s,r){super(e,t,n,s),this.patterns=r.patterns,this.hasMissingPatterns=r.hasMissingPatterns,this._cachedCompiledPatterns=null;}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null);}collectPatterns(e,t){for(const n of this.patterns)e.getRule(n).collectPatterns(e,t);}compile(e,t){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,t,n,s){return this._getCachedCompiledPatterns(e).compileAG(e,n,s)}_getCachedCompiledPatterns(e){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new g,this.collectPatterns(e,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}}t.IncludeOnlyRule=u;class h extends c{constructor(e,t,n,s,r,i,o,c,a,l){super(e,t,n,s),this._begin=new f(r,this.id),this.beginCaptures=i,this._end=new f(o||"￿",-1),this.endHasBackReferences=this._end.hasBackReferences,this.endCaptures=c,this.applyEndPatternLast=a||!1,this.patterns=l.patterns,this.hasMissingPatterns=l.hasMissingPatterns,this._cachedCompiledPatterns=null;}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null);}get debugBeginRegExp(){return `${this._begin.source}`}get debugEndRegExp(){return `${this._end.source}`}getEndWithResolvedBackReferences(e,t){return this._end.resolveBackReferences(e,t)}collectPatterns(e,t){t.push(this._begin);}compile(e,t){return this._getCachedCompiledPatterns(e,t).compile(e)}compileAG(e,t,n,s){return this._getCachedCompiledPatterns(e,t).compileAG(e,n,s)}_getCachedCompiledPatterns(e,t){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new g;for(const t of this.patterns)e.getRule(t).collectPatterns(e,this._cachedCompiledPatterns);this.applyEndPatternLast?this._cachedCompiledPatterns.push(this._end.hasBackReferences?this._end.clone():this._end):this._cachedCompiledPatterns.unshift(this._end.hasBackReferences?this._end.clone():this._end);}return this._end.hasBackReferences&&(this.applyEndPatternLast?this._cachedCompiledPatterns.setSource(this._cachedCompiledPatterns.length()-1,t):this._cachedCompiledPatterns.setSource(0,t)),this._cachedCompiledPatterns}}t.BeginEndRule=h;class p extends c{constructor(e,n,s,r,i,o,c,a,l){super(e,n,s,r),this._begin=new f(i,this.id),this.beginCaptures=o,this.whileCaptures=a,this._while=new f(c,t.whileRuleId),this.whileHasBackReferences=this._while.hasBackReferences,this.patterns=l.patterns,this.hasMissingPatterns=l.hasMissingPatterns,this._cachedCompiledPatterns=null,this._cachedCompiledWhilePatterns=null;}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null),this._cachedCompiledWhilePatterns&&(this._cachedCompiledWhilePatterns.dispose(),this._cachedCompiledWhilePatterns=null);}get debugBeginRegExp(){return `${this._begin.source}`}get debugWhileRegExp(){return `${this._while.source}`}getWhileWithResolvedBackReferences(e,t){return this._while.resolveBackReferences(e,t)}collectPatterns(e,t){t.push(this._begin);}compile(e,t){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,t,n,s){return this._getCachedCompiledPatterns(e).compileAG(e,n,s)}_getCachedCompiledPatterns(e){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new g;for(const t of this.patterns)e.getRule(t).collectPatterns(e,this._cachedCompiledPatterns);}return this._cachedCompiledPatterns}compileWhile(e,t){return this._getCachedCompiledWhilePatterns(e,t).compile(e)}compileWhileAG(e,t,n,s){return this._getCachedCompiledWhilePatterns(e,t).compileAG(e,n,s)}_getCachedCompiledWhilePatterns(e,t){return this._cachedCompiledWhilePatterns||(this._cachedCompiledWhilePatterns=new g,this._cachedCompiledWhilePatterns.push(this._while.hasBackReferences?this._while.clone():this._while)),this._while.hasBackReferences&&this._cachedCompiledWhilePatterns.setSource(0,t||"￿"),this._cachedCompiledWhilePatterns}}t.BeginWhileRule=p;class d{static createCaptureRule(e,t,n,s,r){return e.registerRule((e=>new a(t,e,n,s,r)))}static getCompiledRuleId(e,t,n){return e.id||t.registerRule((r=>{if(e.id=r,e.match)return new l(e.$vscodeTextmateLocation,e.id,e.name,e.match,d._compileCaptures(e.captures,t,n));if(void 0===e.begin){e.repository&&(n=s.mergeObjects({},n,e.repository));let r=e.patterns;return void 0===r&&e.include&&(r=[{include:e.include}]),new u(e.$vscodeTextmateLocation,e.id,e.name,e.contentName,d._compilePatterns(r,t,n))}return e.while?new p(e.$vscodeTextmateLocation,e.id,e.name,e.contentName,e.begin,d._compileCaptures(e.beginCaptures||e.captures,t,n),e.while,d._compileCaptures(e.whileCaptures||e.captures,t,n),d._compilePatterns(e.patterns,t,n)):new h(e.$vscodeTextmateLocation,e.id,e.name,e.contentName,e.begin,d._compileCaptures(e.beginCaptures||e.captures,t,n),e.end,d._compileCaptures(e.endCaptures||e.captures,t,n),e.applyEndPatternLast,d._compilePatterns(e.patterns,t,n))})),e.id}static _compileCaptures(e,t,n){let s=[];if(e){let r=0;for(const t in e){if("$vscodeTextmateLocation"===t)continue;const e=parseInt(t,10);e>r&&(r=e);}for(let e=0;e<=r;e++)s[e]=null;for(const r in e){if("$vscodeTextmateLocation"===r)continue;const i=parseInt(r,10);let o=0;e[r].patterns&&(o=d.getCompiledRuleId(e[r],t,n)),s[i]=d.createCaptureRule(t,e[r].$vscodeTextmateLocation,e[r].name,e[r].contentName,o);}}return s}static _compilePatterns(e,t,n){let s=[];if(e)for(let i=0,o=e.length;ie.substring(t.start,t.end)));return o.lastIndex=0,this.source.replace(o,((e,t)=>s.escapeRegExpCharacters(n[parseInt(t,10)]||"")))}_buildAnchorCache(){let e,t,n,s,r=[],i=[],o=[],c=[];for(e=0,t=this.source.length;ee.source));this._cached=new m(e,t,this._items.map((e=>e.ruleId)));}return this._cached}compileAG(e,t,n){return this._hasAnchors?t?n?(this._anchorCache.A1_G1||(this._anchorCache.A1_G1=this._resolveAnchors(e,t,n)),this._anchorCache.A1_G1):(this._anchorCache.A1_G0||(this._anchorCache.A1_G0=this._resolveAnchors(e,t,n)),this._anchorCache.A1_G0):n?(this._anchorCache.A0_G1||(this._anchorCache.A0_G1=this._resolveAnchors(e,t,n)),this._anchorCache.A0_G1):(this._anchorCache.A0_G0||(this._anchorCache.A0_G0=this._resolveAnchors(e,t,n)),this._anchorCache.A0_G0):this.compile(e)}_resolveAnchors(e,t,n){let s=this._items.map((e=>e.resolveAnchors(t,n)));return new m(e,s,this._items.map((e=>e.ruleId)))}}t.RegExpSourceList=g;class m{constructor(e,t,n){this.regExps=t,this.rules=n,this.scanner=e.createOnigScanner(t);}dispose(){"function"==typeof this.scanner.dispose&&this.scanner.dispose();}toString(){const e=[];for(let t=0,n=this.rules.length;t{Object.defineProperty(t,"__esModule",{value:!0}),t.ThemeTrieElement=t.ThemeTrieElementRule=t.ColorMap=t.fontStyleToString=t.ParsedThemeRule=t.parseTheme=t.StyleAttributes=t.ScopeStack=t.Theme=void 0;const s=n(878);class r{constructor(e,t,n){this._colorMap=e,this._defaults=t,this._root=n,this._cachedMatchRoot=new s.CachedFn((e=>this._root.match(e)));}static createFromRawTheme(e,t){return this.createFromParsedTheme(a(e),t)}static createFromParsedTheme(e,t){return function(e,t){e.sort(((e,t)=>{let n=s.strcmp(e.scope,t.scope);return 0!==n?n:(n=s.strArrCmp(e.parentScopes,t.parentScopes),0!==n?n:e.index-t.index)}));let n=0,i="#000000",o="#ffffff";for(;e.length>=1&&""===e[0].scope;){let t=e.shift();-1!==t.fontStyle&&(n=t.fontStyle),null!==t.foreground&&(i=t.foreground),null!==t.background&&(o=t.background);}let a=new u(t),l=new c(n,a.getId(i),a.getId(o)),d=new p(new h(0,null,-1,0,0),[]);for(let t=0,n=e.length;tfunction(e,t){if(null===t)return !0;let n=0,s=t[n];for(;e;){if(o(e.scopeName,s)){if(n++,n===t.length)return !0;s=t[n];}e=e.parent;}return !1}(e.parent,t.parentScopes)));return n?new c(n.fontStyle,n.foreground,n.background):null}}t.Theme=r;class i{constructor(e,t){this.parent=e,this.scopeName=t;}static from(...e){let t=null;for(let n=0;n1&&(h=s.slice(0,s.length-1),h.reverse()),n[r++]=new l(o,h,e,c,a,u);}}return n}t.StyleAttributes=c,t.parseTheme=a;class l{constructor(e,t,n,s,r,i){this.scope=e,this.parentScopes=t,this.index=n,this.fontStyle=s,this.foreground=r,this.background=i;}}t.ParsedThemeRule=l,t.fontStyleToString=function(e){if(-1===e)return "not set";let t="";return 1&e&&(t+="italic "),2&e&&(t+="bold "),4&e&&(t+="underline "),8&e&&(t+="strikethrough "),""===t&&(t="none"),t.trim()};class u{constructor(e){if(this._lastColorId=0,this._id2color=[],this._color2id=Object.create(null),Array.isArray(e)){this._isFrozen=!0;for(let t=0,n=e.length;te?console.log("how did this happen?"):this.scopeDepth=e,-1!==t&&(this.fontStyle=t),0!==n&&(this.foreground=n),0!==s&&(this.background=s);}}t.ThemeTrieElementRule=h;class p{constructor(e,t=[],n={}){this._mainRule=e,this._children=n,this._rulesWithParentScopes=t;}static _sortBySpecificity(e){return 1===e.length||e.sort(this._cmpBySpecificity),e}static _cmpBySpecificity(e,t){if(e.scopeDepth===t.scopeDepth){const n=e.parentScopes,s=t.parentScopes;let r=null===n?0:n.length,i=null===s?0:s.length;if(r===i)for(let e=0;e{function n(e){return Array.isArray(e)?function(e){let t=[];for(let s=0,r=e.length;s{for(let n in t)e[n]=t[n];})),e},t.basename=function e(t){const n=~t.lastIndexOf("/")||~t.lastIndexOf("\\");return 0===n?t:~n==t.length-1?e(t.substring(0,t.length-1)):t.substr(1+~n)};let s=/\$(\d+)|\${(\d+):\/(downcase|upcase)}/g;function r(e,t){return et?1:0}t.RegexSource=class{static hasCaptures(e){return null!==e&&(s.lastIndex=0,s.test(e))}static replaceCaptures(e,t,n){return e.replace(s,((e,s,r,i)=>{let o=n[parseInt(s||r,10)];if(!o)return e;{let e=t.substring(o.start,o.end);for(;"."===e[0];)e=e.substring(1);switch(i){case"downcase":return e.toLowerCase();case"upcase":return e.toUpperCase();default:return e}}}))}},t.strcmp=r,t.strArrCmp=function(e,t){if(null===e&&null===t)return 0;if(!e)return -1;if(!t)return 1;let n=e.length,s=t.length;if(n===s){for(let s=0;s= 0 && parentIndex >= 0) { + if (matchesOne(selectorParentScopes[selectorParentIndex], parentScopes[parentIndex])) { + selectorParentIndex--; + } + parentIndex--; + } + if (selectorParentIndex === -1) { + return true; + } + return false; +} +function explainThemeScope(theme, scope, parentScopes) { + let result = [], resultLen = 0; + for (let i = 0, len = theme.settings.length; i < len; i++) { + let setting = theme.settings[i]; + let selectors; + if (typeof setting.scope === "string") { + selectors = setting.scope.split(/,/).map((scope2) => scope2.trim()); + } else if (Array.isArray(setting.scope)) { + selectors = setting.scope; + } else { + continue; + } + for (let j = 0, lenJ = selectors.length; j < lenJ; j++) { + let rawSelector = selectors[j]; + let rawSelectorPieces = rawSelector.split(/ /); + let selector = rawSelectorPieces[rawSelectorPieces.length - 1]; + let selectorParentScopes = rawSelectorPieces.slice(0, rawSelectorPieces.length - 1); + if (matches(selector, selectorParentScopes, scope, parentScopes)) { + result[resultLen++] = setting; + j = lenJ; + } + } + } + return result; +} + +// src/colors.ts +var namedColors = [ + "black", + "red", + "green", + "yellow", + "blue", + "magenta", + "cyan", + "white", + "brightBlack", + "brightRed", + "brightGreen", + "brightYellow", + "brightBlue", + "brightMagenta", + "brightCyan", + "brightWhite" +]; + +// src/decorations.ts +var decorations = { + 1: "bold", + 2: "dim", + 3: "italic", + 4: "underline", + 7: "reverse", + 9: "strikethrough" +}; + +// src/parser.ts +function findSequence(value, position) { + const nextEscape = value.indexOf("\x1B", position); + if (nextEscape !== -1) { + if (value[nextEscape + 1] === "[") { + const nextClose = value.indexOf("m", nextEscape); + return { + sequence: value.substring(nextEscape + 2, nextClose).split(";"), + startPosition: nextEscape, + position: nextClose + 1 + }; + } + } + return { + position: value.length + }; +} +function parseColor(sequence) { + const colorMode = sequence.shift(); + if (colorMode === "2") { + const rgb = sequence.splice(0, 3).map((x) => Number.parseInt(x)); + if (rgb.length !== 3 || rgb.some((x) => Number.isNaN(x))) + return; + return { + type: "rgb", + rgb + }; + } else if (colorMode === "5") { + const index = sequence.shift(); + if (index) { + return { type: "table", index: Number(index) }; + } + } +} +function parseSequence(sequence) { + const commands = []; + while (sequence.length > 0) { + const code = sequence.shift(); + if (!code) + continue; + const codeInt = Number.parseInt(code); + if (Number.isNaN(codeInt)) + continue; + if (codeInt === 0) { + commands.push({ type: "resetAll" }); + } else if (codeInt <= 9) { + const decoration = decorations[codeInt]; + if (decoration) { + commands.push({ + type: "setDecoration", + value: decorations[codeInt] + }); + } + } else if (codeInt <= 29) { + const decoration = decorations[codeInt - 20]; + if (decoration) { + commands.push({ + type: "resetDecoration", + value: decoration + }); + } + } else if (codeInt <= 37) { + commands.push({ + type: "setForegroundColor", + value: { type: "named", name: namedColors[codeInt - 30] } + }); + } else if (codeInt === 38) { + const color = parseColor(sequence); + if (color) { + commands.push({ + type: "setForegroundColor", + value: color + }); + } + } else if (codeInt === 39) { + commands.push({ + type: "resetForegroundColor" + }); + } else if (codeInt <= 47) { + commands.push({ + type: "setBackgroundColor", + value: { type: "named", name: namedColors[codeInt - 40] } + }); + } else if (codeInt === 48) { + const color = parseColor(sequence); + if (color) { + commands.push({ + type: "setBackgroundColor", + value: color + }); + } + } else if (codeInt === 49) { + commands.push({ + type: "resetBackgroundColor" + }); + } else if (codeInt >= 90 && codeInt <= 97) { + commands.push({ + type: "setForegroundColor", + value: { type: "named", name: namedColors[codeInt - 90 + 8] } + }); + } else if (codeInt >= 100 && codeInt <= 107) { + commands.push({ + type: "setBackgroundColor", + value: { type: "named", name: namedColors[codeInt - 100 + 8] } + }); + } + } + return commands; +} +function createAnsiSequenceParser() { + let foreground = null; + let background = null; + let decorations2 = /* @__PURE__ */ new Set(); + return { + parse(value) { + const tokens = []; + let position = 0; + do { + const findResult = findSequence(value, position); + const text = findResult.sequence ? value.substring(position, findResult.startPosition) : value.substring(position); + if (text.length > 0) { + tokens.push({ + value: text, + foreground, + background, + decorations: new Set(decorations2) + }); + } + if (findResult.sequence) { + const commands = parseSequence(findResult.sequence); + for (const styleToken of commands) { + if (styleToken.type === "resetAll") { + foreground = null; + background = null; + decorations2.clear(); + } else if (styleToken.type === "resetForegroundColor") { + foreground = null; + } else if (styleToken.type === "resetBackgroundColor") { + background = null; + } else if (styleToken.type === "resetDecoration") { + decorations2.delete(styleToken.value); + } + } + for (const styleToken of commands) { + if (styleToken.type === "setForegroundColor") { + foreground = styleToken.value; + } else if (styleToken.type === "setBackgroundColor") { + background = styleToken.value; + } else if (styleToken.type === "setDecoration") { + decorations2.add(styleToken.value); + } + } + } + position = findResult.position; + } while (position < value.length); + return tokens; + } + }; +} + +// src/palette.ts +var defaultNamedColorsMap = { + black: "#000000", + red: "#bb0000", + green: "#00bb00", + yellow: "#bbbb00", + blue: "#0000bb", + magenta: "#ff00ff", + cyan: "#00bbbb", + white: "#eeeeee", + brightBlack: "#555555", + brightRed: "#ff5555", + brightGreen: "#00ff00", + brightYellow: "#ffff55", + brightBlue: "#5555ff", + brightMagenta: "#ff55ff", + brightCyan: "#55ffff", + brightWhite: "#ffffff" +}; +function createColorPalette(namedColorsMap = defaultNamedColorsMap) { + function namedColor(name) { + return namedColorsMap[name]; + } + function rgbColor(rgb) { + return `#${rgb.map((x) => Math.max(0, Math.min(x, 255)).toString(16).padStart(2, "0")).join("")}`; + } + let colorTable; + function getColorTable() { + if (colorTable) { + return colorTable; + } + colorTable = []; + for (let i = 0; i < namedColors.length; i++) { + colorTable.push(namedColor(namedColors[i])); + } + let levels = [0, 95, 135, 175, 215, 255]; + for (let r = 0; r < 6; r++) { + for (let g = 0; g < 6; g++) { + for (let b = 0; b < 6; b++) { + colorTable.push(rgbColor([levels[r], levels[g], levels[b]])); + } + } + } + let level = 8; + for (let i = 0; i < 24; i++, level += 10) { + colorTable.push(rgbColor([level, level, level])); + } + return colorTable; + } + function tableColor(index) { + return getColorTable()[index]; + } + function value(color) { + switch (color.type) { + case "named": + return namedColor(color.name); + case "rgb": + return rgbColor(color.rgb); + case "table": + return tableColor(color.index); + } + } + return { + value + }; +} + +function tokenizeAnsiWithTheme(theme, fileContents) { + const lines = fileContents.split(/\r?\n/); + const colorPalette = createColorPalette( + Object.fromEntries( + namedColors.map((name) => [ + name, + theme.colors[`terminal.ansi${name[0].toUpperCase()}${name.substring(1)}`] + ]) + ) + ); + const parser = createAnsiSequenceParser(); + return lines.map( + (line) => parser.parse(line).map((token) => { + let color; + if (token.decorations.has("reverse")) { + color = token.background ? colorPalette.value(token.background) : theme.bg; + } else { + color = token.foreground ? colorPalette.value(token.foreground) : theme.fg; + } + if (token.decorations.has("dim")) { + color = dimColor(color); + } + let fontStyle = FontStyle.None; + if (token.decorations.has("bold")) { + fontStyle |= FontStyle.Bold; + } + if (token.decorations.has("italic")) { + fontStyle |= FontStyle.Italic; + } + if (token.decorations.has("underline")) { + fontStyle |= FontStyle.Underline; + } + return { + content: token.value, + color, + fontStyle + }; + }) + ); +} +function dimColor(color) { + const hexMatch = color.match(/#([0-9a-f]{3})([0-9a-f]{3})?([0-9a-f]{2})?/); + if (hexMatch) { + if (hexMatch[3]) { + const alpha = Math.round(Number.parseInt(hexMatch[3], 16) / 2).toString(16).padStart(2, "0"); + return `#${hexMatch[1]}${hexMatch[2]}${alpha}`; + } else if (hexMatch[2]) { + return `#${hexMatch[1]}${hexMatch[2]}80`; + } else { + return `#${Array.from(hexMatch[1]).map((x) => `${x}${x}`).join("")}80`; + } + } + const cssVarMatch = color.match(/var\((--shiki-color-ansi-[\w-]+)\)/); + if (cssVarMatch) { + return `var(${cssVarMatch[1]}-dim)`; + } + return color; +} + +function groupBy(elements, keyGetter) { + const map = /* @__PURE__ */ new Map(); + for (const element of elements) { + const key = keyGetter(element); + if (map.has(key)) { + const group = map.get(key); + group.push(element); + } else { + map.set(key, [element]); + } + } + return map; +} + +const defaultElements = { + pre({ className, style, children }) { + return `
${children}
`; + }, + code({ children }) { + return `${children}`; + }, + line({ className, children }) { + return `${children}`; + }, + token({ style, children }) { + return `${children}`; + } +}; +function renderToHtml(lines, options = {}) { + const bg = options.bg || "#fff"; + const optionsByLineNumber = groupBy(options.lineOptions ?? [], (option) => option.line); + const userElements = options.elements || {}; + function h(type = "", props = {}, children) { + const element = userElements[type] || defaultElements[type]; + if (element) { + children = children.filter(Boolean); + return element({ + ...props, + children: type === "code" ? children.join("\n") : children.join("") + }); + } + return ""; + } + return h( + "pre", + { className: "shiki " + (options.themeName || ""), style: `background-color: ${bg}` }, + [ + options.langId ? `
${options.langId}
` : "", + h( + "code", + {}, + lines.map((line, index) => { + const lineNumber = index + 1; + const lineOptions = optionsByLineNumber.get(lineNumber) ?? []; + const lineClasses = getLineClasses(lineOptions).join(" "); + return h( + "line", + { + className: lineClasses, + lines, + line, + index + }, + line.map((token, index2) => { + const cssDeclarations = [`color: ${token.color || options.fg}`]; + if (token.fontStyle & FontStyle.Italic) { + cssDeclarations.push("font-style: italic"); + } + if (token.fontStyle & FontStyle.Bold) { + cssDeclarations.push("font-weight: bold"); + } + if (token.fontStyle & FontStyle.Underline) { + cssDeclarations.push("text-decoration: underline"); + } + return h( + "token", + { + style: cssDeclarations.join("; "), + tokens: line, + token, + index: index2 + }, + [escapeHtml(token.content)] + ); + }) + ); + }) + ) + ] + ); +} +const htmlEscapes = { + "&": "&", + "<": "<", + ">": ">", + '"': """, + "'": "'" +}; +function escapeHtml(html) { + return html.replace(/[&<>"']/g, (chr) => htmlEscapes[chr]); +} +function getLineClasses(lineOptions) { + const lineClasses = /* @__PURE__ */ new Set(["line"]); + for (const lineOption of lineOptions) { + for (const lineClass of lineOption.classes ?? []) { + lineClasses.add(lineClass); + } + } + return Array.from(lineClasses); +} + +var main = {exports: {}}; + +(function (module, exports) { + !function(t,n){module.exports=n();}(commonjsGlobal,(()=>{return t={770:function(t,n,e){var r=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(n,"__esModule",{value:!0}),n.setDefaultDebugCall=n.createOnigScanner=n.createOnigString=n.loadWASM=n.OnigScanner=n.OnigString=void 0;const i=r(e(418));let o=null,a=!1;class f{static _utf8ByteLength(t){let n=0;for(let e=0,r=t.length;e=55296&&i<=56319&&e+1=56320&&n<=57343&&(o=65536+(i-55296<<10)|n-56320,a=!0);}n+=o<=127?1:o<=2047?2:o<=65535?3:4,a&&e++;}return n}constructor(t){const n=t.length,e=f._utf8ByteLength(t),r=e!==n,i=r?new Uint32Array(n+1):null;r&&(i[n]=e);const o=r?new Uint32Array(e+1):null;r&&(o[e]=n);const a=new Uint8Array(e);let s=0;for(let e=0;e=55296&&f<=56319&&e+1=56320&&n<=57343&&(u=65536+(f-55296<<10)|n-56320,c=!0);}r&&(i[e]=s,c&&(i[e+1]=s),u<=127?o[s+0]=e:u<=2047?(o[s+0]=e,o[s+1]=e):u<=65535?(o[s+0]=e,o[s+1]=e,o[s+2]=e):(o[s+0]=e,o[s+1]=e,o[s+2]=e,o[s+3]=e)),u<=127?a[s++]=u:u<=2047?(a[s++]=192|(1984&u)>>>6,a[s++]=128|(63&u)>>>0):u<=65535?(a[s++]=224|(61440&u)>>>12,a[s++]=128|(4032&u)>>>6,a[s++]=128|(63&u)>>>0):(a[s++]=240|(1835008&u)>>>18,a[s++]=128|(258048&u)>>>12,a[s++]=128|(4032&u)>>>6,a[s++]=128|(63&u)>>>0),c&&e++;}this.utf16Length=n,this.utf8Length=e,this.utf16Value=t,this.utf8Value=a,this.utf16OffsetToUtf8=i,this.utf8OffsetToUtf16=o;}createString(t){const n=t._omalloc(this.utf8Length);return t.HEAPU8.set(this.utf8Value,n),n}}class s{constructor(t){if(this.id=++s.LAST_ID,!o)throw new Error("Must invoke loadWASM first.");this._onigBinding=o,this.content=t;const n=new f(t);this.utf16Length=n.utf16Length,this.utf8Length=n.utf8Length,this.utf16OffsetToUtf8=n.utf16OffsetToUtf8,this.utf8OffsetToUtf16=n.utf8OffsetToUtf16,this.utf8Length<1e4&&!s._sharedPtrInUse?(s._sharedPtr||(s._sharedPtr=o._omalloc(1e4)),s._sharedPtrInUse=!0,o.HEAPU8.set(n.utf8Value,s._sharedPtr),this.ptr=s._sharedPtr):this.ptr=n.createString(o);}convertUtf8OffsetToUtf16(t){return this.utf8OffsetToUtf16?t<0?0:t>this.utf8Length?this.utf16Length:this.utf8OffsetToUtf16[t]:t}convertUtf16OffsetToUtf8(t){return this.utf16OffsetToUtf8?t<0?0:t>this.utf16Length?this.utf8Length:this.utf16OffsetToUtf8[t]:t}dispose(){this.ptr===s._sharedPtr?s._sharedPtrInUse=!1:this._onigBinding._ofree(this.ptr);}}n.OnigString=s,s.LAST_ID=0,s._sharedPtr=0,s._sharedPtrInUse=!1;class u{constructor(t){if(!o)throw new Error("Must invoke loadWASM first.");const n=[],e=[];for(let r=0,i=t.length;rWebAssembly.instantiateStreaming(t,n)}(r):function(t){return async n=>{const e=await t.arrayBuffer();return WebAssembly.instantiate(e,n)}}(r):function(t){return n=>WebAssembly.instantiate(t,n)}(r);}return l=new Promise(((t,n)=>{r=t,a=n;})),function(t,n,e,r){(0, i.default)({print:n,instantiateWasm:(n,e)=>{if("undefined"==typeof performance){const t=()=>Date.now();n.env.emscripten_get_now=t,n.wasi_snapshot_preview1.emscripten_get_now=t;}return t(n).then((t=>e(t.instance)),r),{}}}).then((t=>{o=t,e();}));}(n,e,r,a),l},n.createOnigString=function(t){return new s(t)},n.createOnigScanner=function(t){return new u(t)},n.setDefaultDebugCall=function(t){a=t;};},418:t=>{var n=("undefined"!=typeof document&&document.currentScript&&document.currentScript.src,function(t){var n,e,r=void 0!==(t=t||{})?t:{};r.ready=new Promise((function(t,r){n=t,e=r;}));var i,o=Object.assign({},r),s=!1,c="";function l(t){return r.locateFile?r.locateFile(t,c):c+t}(i=function(t){let n;return "function"==typeof readbuffer?new Uint8Array(readbuffer(t)):(n=read(t,"binary"),m("object"==typeof n),n)},"undefined"!=typeof scriptArgs?scriptArgs:void 0!==arguments&&(arguments),"undefined"!=typeof onig_print&&("undefined"==typeof console&&(console={}),console.log=onig_print,console.warn=console.error="undefined"!=typeof printErr?printErr:onig_print));var h,p,d=r.print||console.log.bind(console),g=r.printErr||console.warn.bind(console);Object.assign(r,o),o=null,r.arguments&&(r.arguments),r.thisProgram&&r.thisProgram,r.quit&&r.quit,r.wasmBinary&&(h=r.wasmBinary),r.noExitRuntime,"object"!=typeof WebAssembly&&k("no native wasm support detected");var _=!1;function m(t,n){t||k(n);}var y,w,S,v="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function A(t,n,e){for(var r=n+e,i=n;t[i]&&!(i>=r);)++i;if(i-n>16&&t.buffer&&v)return v.decode(t.subarray(n,i));for(var o="";n>10,56320|1023&u);}}else o+=String.fromCharCode((31&a)<<6|f);}else o+=String.fromCharCode(a);}return o}function b(t,n){return t?A(w,t,n):""}function O(t){y=t,r.HEAP8=new Int8Array(t),r.HEAP16=new Int16Array(t),r.HEAP32=new Int32Array(t),r.HEAPU8=w=new Uint8Array(t),r.HEAPU16=new Uint16Array(t),r.HEAPU32=S=new Uint32Array(t),r.HEAPF32=new Float32Array(t),r.HEAPF64=new Float64Array(t);}r.INITIAL_MEMORY;var U=[],P=[],R=[];function x(){if(r.preRun)for("function"==typeof r.preRun&&(r.preRun=[r.preRun]);r.preRun.length;)M(r.preRun.shift());G(U);}function T(){G(P);}function E(){if(r.postRun)for("function"==typeof r.postRun&&(r.postRun=[r.postRun]);r.postRun.length;)I(r.postRun.shift());G(R);}function M(t){U.unshift(t);}function L(t){P.unshift(t);}function I(t){R.unshift(t);}var W=0,C=null;function N(t){W++,r.monitorRunDependencies&&r.monitorRunDependencies(W);}function j(t){if(W--,r.monitorRunDependencies&&r.monitorRunDependencies(W),0==W&&(C)){var n=C;C=null,n();}}function k(t){r.onAbort&&r.onAbort(t),g(t="Aborted("+t+")"),_=!0,t+=". Build with -sASSERTIONS for more info.";var n=new WebAssembly.RuntimeError(t);throw e(n),n}var B,H,F="data:application/octet-stream;base64,";function V(t){return t.startsWith(F)}function z(t){try{if(t==B&&h)return new Uint8Array(h);if(i)return i(t);throw "both async and sync fetching of the wasm failed"}catch(t){k(t);}}function q(){return h||!s||"function"!=typeof fetch?Promise.resolve().then((function(){return z(B)})):fetch(B,{credentials:"same-origin"}).then((function(t){if(!t.ok)throw "failed to load wasm binary file at '"+B+"'";return t.arrayBuffer()})).catch((function(){return z(B)}))}function Y(){var t={env:nt,wasi_snapshot_preview1:nt};function n(t,n){var e=t.exports;r.asm=e,O((p=r.asm.memory).buffer),r.asm.__indirect_function_table,L(r.asm.__wasm_call_ctors),j();}function i(t){n(t.instance);}function o(n){return q().then((function(n){return WebAssembly.instantiate(n,t)})).then((function(t){return t})).then(n,(function(t){g("failed to asynchronously prepare wasm: "+t),k(t);}))}if(N(),r.instantiateWasm)try{return r.instantiateWasm(t,n)}catch(t){g("Module.instantiateWasm callback failed with error: "+t),e(t);}return (h||"function"!=typeof WebAssembly.instantiateStreaming||V(B)||"function"!=typeof fetch?o(i):fetch(B,{credentials:"same-origin"}).then((function(n){return WebAssembly.instantiateStreaming(n,t).then(i,(function(t){return g("wasm streaming compile failed: "+t),g("falling back to ArrayBuffer instantiation"),o(i)}))}))).catch(e),{}}function G(t){for(;t.length>0;)t.shift()(r);}function J(t,n,e){w.copyWithin(t,n,n+e);}function K(t){try{return p.grow(t-y.byteLength+65535>>>16),O(p.buffer),1}catch(t){}}function Q(t){var n,e=w.length,r=2147483648;if((t>>>=0)>r)return !1;for(var i=1;i<=4;i*=2){var o=e*(1+.2/i);if(o=Math.min(o,t+100663296),K(Math.min(r,(n=Math.max(t,o))+(65536-n%65536)%65536)))return !0}return !1}V(B="onig.wasm")||(B=l(B)),H="undefined"!=typeof dateNow?dateNow:()=>performance.now();var X=[null,[],[]];function Z(t,n){var e=X[t];0===n||10===n?((1===t?d:g)(A(e,0)),e.length=0):e.push(n);}function $(t,n,e,r){for(var i=0,o=0;o>2],f=S[n+4>>2];n+=8;for(var s=0;s>2]=i,0}var tt,nt={emscripten_get_now:H,emscripten_memcpy_big:J,emscripten_resize_heap:Q,fd_write:$};function et(t){function e(){tt||(tt=!0,r.calledRun=!0,_||(T(),n(r),r.onRuntimeInitialized&&r.onRuntimeInitialized(),E()));}W>0||(x(),W>0||(r.setStatus?(r.setStatus("Running..."),setTimeout((function(){setTimeout((function(){r.setStatus("");}),1),e();}),1)):e()));}if(Y(),r.___wasm_call_ctors=function(){return (r.___wasm_call_ctors=r.asm.__wasm_call_ctors).apply(null,arguments)},r.___errno_location=function(){return (r.___errno_location=r.asm.__errno_location).apply(null,arguments)},r._omalloc=function(){return (r._omalloc=r.asm.omalloc).apply(null,arguments)},r._ofree=function(){return (r._ofree=r.asm.ofree).apply(null,arguments)},r._getLastOnigError=function(){return (r._getLastOnigError=r.asm.getLastOnigError).apply(null,arguments)},r._createOnigScanner=function(){return (r._createOnigScanner=r.asm.createOnigScanner).apply(null,arguments)},r._freeOnigScanner=function(){return (r._freeOnigScanner=r.asm.freeOnigScanner).apply(null,arguments)},r._findNextOnigScannerMatch=function(){return (r._findNextOnigScannerMatch=r.asm.findNextOnigScannerMatch).apply(null,arguments)},r._findNextOnigScannerMatchDbg=function(){return (r._findNextOnigScannerMatchDbg=r.asm.findNextOnigScannerMatchDbg).apply(null,arguments)},r.stackSave=function(){return (r.stackSave=r.asm.stackSave).apply(null,arguments)},r.stackRestore=function(){return (r.stackRestore=r.asm.stackRestore).apply(null,arguments)},r.stackAlloc=function(){return (r.stackAlloc=r.asm.stackAlloc).apply(null,arguments)},r.dynCall_jiji=function(){return (r.dynCall_jiji=r.asm.dynCall_jiji).apply(null,arguments)},r.UTF8ToString=b,C=function t(){tt||et(),tt||(C=t);},r.preInit)for("function"==typeof r.preInit&&(r.preInit=[r.preInit]);r.preInit.length>0;)r.preInit.pop()();return et(),t.ready});t.exports=n;}},n={},function e(r){var i=n[r];if(void 0!==i)return i.exports;var o=n[r]={exports:{}};return t[r].call(o.exports,o,o.exports,e),o.exports}(770);var t,n;})); +} (main)); + +var mainExports = main.exports; + +"process" in globalThis && typeof process !== "undefined" && typeof process.release !== "undefined" && process.release.name === "node"; +"process" in globalThis && typeof process !== "undefined" && typeof process.release !== "undefined" && process.release.name === "bun"; +let _onigurumaPromise = null; +async function getOniguruma() { + if (!_onigurumaPromise) { + _onigurumaPromise = import('./chunks/onig-56b7efa9.mjs').then((r) => mainExports.loadWASM({ instantiator: r.default })).then(() => { + return { + createOnigScanner(patterns) { + return mainExports.createOnigScanner(patterns); + }, + createOnigString(s) { + return mainExports.createOnigString(s); + } + }; + }); + } + return _onigurumaPromise; +} +function repairTheme(theme) { + if (!theme.settings) + theme.settings = []; + if (theme.settings[0] && theme.settings[0].settings && !theme.settings[0].scope) { + return; + } + theme.settings.unshift({ + settings: { + foreground: theme.fg, + background: theme.bg + } + }); +} +function toShikiTheme(rawTheme) { + const type = rawTheme.type || "dark"; + const shikiTheme = { + name: rawTheme.name, + type, + ...rawTheme, + ...getThemeDefaultColors(rawTheme) + }; + if (rawTheme.include) { + shikiTheme.include = rawTheme.include; + } + if (rawTheme.tokenColors) { + shikiTheme.settings = rawTheme.tokenColors; + delete shikiTheme.tokenColors; + } + repairTheme(shikiTheme); + return shikiTheme; +} +const VSCODE_FALLBACK_EDITOR_FG = { light: "#333333", dark: "#bbbbbb" }; +const VSCODE_FALLBACK_EDITOR_BG = { light: "#fffffe", dark: "#1e1e1e" }; +function getThemeDefaultColors(theme) { + let fg, bg; + let settings = theme.settings ? theme.settings : theme.tokenColors; + const globalSetting = settings ? settings.find((s) => { + return !s.name && !s.scope; + }) : void 0; + if (globalSetting?.settings?.foreground) { + fg = globalSetting.settings.foreground; + } + if (globalSetting?.settings?.background) { + bg = globalSetting.settings.background; + } + if (!fg && theme?.colors?.["editor.foreground"]) { + fg = theme.colors["editor.foreground"]; + } + if (!bg && theme?.colors?.["editor.background"]) { + bg = theme.colors["editor.background"]; + } + if (!fg) { + fg = theme.type === "light" ? VSCODE_FALLBACK_EDITOR_FG.light : VSCODE_FALLBACK_EDITOR_FG.dark; + } + if (!bg) { + bg = theme.type === "light" ? VSCODE_FALLBACK_EDITOR_BG.light : VSCODE_FALLBACK_EDITOR_BG.dark; + } + return { + fg, + bg + }; +} + +class Registry extends mainExports$1.Registry { + constructor(_resolver) { + super(_resolver); + this._resolver = _resolver; + this.themesPath = "themes/"; + this._resolvedThemes = {}; + this._resolvedGrammars = {}; + this._langGraph = /* @__PURE__ */ new Map(); + this._langMap = languages.reduce((acc, lang) => { + acc[lang.id] = lang; + return acc; + }, {}); + } + getTheme(theme) { + if (typeof theme === "string") { + return this._resolvedThemes[theme]; + } else { + return theme; + } + } + async loadTheme(theme) { + if (typeof theme === "string") { + const _imports = themesImports[theme]; + if (_imports) { + return toShikiTheme(await _imports()); + } else { + throw new Error("[shiki] failed to load theme " + theme); + } + } else { + theme = toShikiTheme(theme); + if (theme.name) { + this._resolvedThemes[theme.name] = theme; + } + return theme; + } + } + async loadThemes(themes) { + return await Promise.all(themes.map((theme) => this.loadTheme(theme))); + } + getLoadedThemes() { + return Object.keys(this._resolvedThemes); + } + getGrammar(name) { + return this._resolvedGrammars[name]; + } + async loadLanguage(lang) { + const embeddedLanguages = lang.embeddedLangs?.reduce(async (acc, l, idx) => { + if (!this.getLoadedLanguages().includes(l) && this._resolver.getLangRegistration(l)) { + await this._resolver.loadGrammar(this._resolver.getLangRegistration(l).scopeName); + acc[this._resolver.getLangRegistration(l).scopeName] = idx + 2; + return acc; + } + }, {}); + const grammarConfig = { + embeddedLanguages, + balancedBracketSelectors: lang.balancedBracketSelectors || ["*"], + unbalancedBracketSelectors: lang.unbalancedBracketSelectors || [] + }; + const g = await this.loadGrammarWithConfiguration(lang.scopeName, 1, grammarConfig); + this._resolvedGrammars[lang.id] = g; + if (lang.aliases) { + lang.aliases.forEach((la) => { + this._resolvedGrammars[la] = g; + }); + } + } + async loadLanguages(langs) { + for (const lang of langs) { + this.resolveEmbeddedLanguages(lang); + } + const langsGraphArray = Array.from(this._langGraph.values()); + for (const lang of langsGraphArray) { + this._resolver.addLanguage(lang); + } + for (const lang of langsGraphArray) { + await this.loadLanguage(lang); + } + } + getLoadedLanguages() { + return Object.keys(this._resolvedGrammars); + } + resolveEmbeddedLanguages(lang) { + if (!this._langGraph.has(lang.id)) { + this._langGraph.set(lang.id, lang); + } + if (lang.embeddedLangs) { + for (const embeddedLang of lang.embeddedLangs) { + this._langGraph.set(embeddedLang, this._langMap[embeddedLang]); + } + } + } +} + +function resolveLang(lang) { + return typeof lang === "string" ? languages.find((l) => l.id === lang || l.aliases?.includes(lang)) : lang; +} +function resolveOptions(options) { + let _languages = languages; + let _themes = options.themes || []; + if (options.langs) { + _languages = options.langs.map(resolveLang); + } + if (options.theme) { + _themes.unshift(options.theme); + } + if (!_themes.length) { + _themes = ["nord"]; + } + return { _languages, _themes }; +} +function generateDefaultColorReplacements() { + const replacements = { + "#000001": "var(--shiki-color-text)", + "#000002": "var(--shiki-color-background)", + "#000004": "var(--shiki-token-constant)", + "#000005": "var(--shiki-token-string)", + "#000006": "var(--shiki-token-comment)", + "#000007": "var(--shiki-token-keyword)", + "#000008": "var(--shiki-token-parameter)", + "#000009": "var(--shiki-token-function)", + "#000010": "var(--shiki-token-string-expression)", + "#000011": "var(--shiki-token-punctuation)", + "#000012": "var(--shiki-token-link)" + }; + for (let i = 0; i < namedColors.length; i++) { + const code = `#A${i.toString().padStart(5, "0")}`; + const colorNameKebab = namedColors[i].replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase(); + replacements[code] = `var(--shiki-color-ansi-${colorNameKebab})`; + } + return replacements; +} +async function getHighlighter(options) { + const { _languages, _themes } = resolveOptions(options); + const _resolver = new Resolver(getOniguruma(), "vscode-oniguruma"); + const _registry = new Registry(_resolver); + if (options.paths?.themes) { + _registry.themesPath = options.paths.themes.endsWith("/") ? options.paths.themes : options.paths.themes + "/"; + } + if (options.paths?.languages) { + _resolver.languagesPath = options.paths.languages.endsWith("/") ? options.paths.languages : options.paths.languages + "/"; + } + const themes = await _registry.loadThemes(_themes); + const _defaultTheme = themes[0]; + let _currentTheme; + await _registry.loadLanguages(_languages); + let COLOR_REPLACEMENTS = generateDefaultColorReplacements(); + function setColorReplacements(map) { + COLOR_REPLACEMENTS = map; + } + function fixCssVariablesTheme(theme, colorMap) { + theme.bg = COLOR_REPLACEMENTS[theme.bg] || theme.bg; + theme.fg = COLOR_REPLACEMENTS[theme.fg] || theme.fg; + Object.entries(theme.colors).forEach(([key, value]) => { + theme.colors[key] = COLOR_REPLACEMENTS[value] || value; + }); + colorMap.forEach((val, i) => { + colorMap[i] = COLOR_REPLACEMENTS[val] || val; + }); + } + function getTheme(theme) { + const _theme = theme ? _registry.getTheme(theme) : _defaultTheme; + if (!_theme) { + throw Error(`No theme registration for ${theme}`); + } + if (!_currentTheme || _currentTheme.name !== _theme.name) { + _registry.setTheme(_theme); + _currentTheme = _theme; + } + const _colorMap = _registry.getColorMap(); + if (_theme.type === "css") { + fixCssVariablesTheme(_theme, _colorMap); + } + return { _theme, _colorMap }; + } + function getGrammar(lang) { + const _grammar = _registry.getGrammar(lang); + if (!_grammar) { + throw Error(`No language registration for ${lang}`); + } + return { _grammar }; + } + function codeToThemedTokens(code, lang = "text", theme, options2 = { includeExplanation: true }) { + if (isPlaintext(lang)) { + const lines = code.split(/\r\n|\r|\n/); + return [...lines.map((line) => [{ content: line }])]; + } + const { _grammar } = getGrammar(lang); + const { _theme, _colorMap } = getTheme(theme); + return tokenizeWithTheme(_theme, _colorMap, code, _grammar, options2); + } + function ansiToThemedTokens(ansi, theme) { + const { _theme } = getTheme(theme); + return tokenizeAnsiWithTheme(_theme, ansi); + } + function codeToHtml(code, arg1 = "text", arg2) { + let options2; + if (typeof arg1 === "object") { + options2 = arg1; + } else { + options2 = { + lang: arg1, + theme: arg2 + }; + } + const tokens = codeToThemedTokens(code, options2.lang, options2.theme, { + includeExplanation: false + }); + const { _theme } = getTheme(options2.theme); + return renderToHtml(tokens, { + fg: _theme.fg, + bg: _theme.bg, + lineOptions: options2?.lineOptions, + themeName: _theme.name + }); + } + function ansiToHtml(ansi, options2) { + const tokens = ansiToThemedTokens(ansi, options2?.theme); + const { _theme } = getTheme(options2?.theme); + return renderToHtml(tokens, { + fg: _theme.fg, + bg: _theme.bg, + lineOptions: options2?.lineOptions, + themeName: _theme.name + }); + } + async function loadTheme(theme) { + await _registry.loadTheme(theme); + } + async function loadLanguage(lang) { + const _lang = resolveLang(lang); + _resolver.addLanguage(_lang); + await _registry.loadLanguage(_lang); + } + function getLoadedThemes() { + return _registry.getLoadedThemes(); + } + function getLoadedLanguages() { + return _registry.getLoadedLanguages(); + } + function getBackgroundColor(theme) { + const { _theme } = getTheme(theme); + return _theme.bg; + } + function getForegroundColor(theme) { + const { _theme } = getTheme(theme); + return _theme.fg; + } + return { + codeToThemedTokens, + codeToHtml, + ansiToThemedTokens, + ansiToHtml, + getTheme: (theme) => { + return getTheme(theme)._theme; + }, + loadTheme, + loadLanguage, + getBackgroundColor, + getForegroundColor, + getLoadedThemes, + getLoadedLanguages, + setColorReplacements + }; +} +function isPlaintext(lang) { + return !lang || ["plaintext", "txt", "text"].includes(lang); +} + +export { languages as BUNDLED_LANGUAGES, themes as BUNDLED_THEMES, FontStyle, getHighlighter, renderToHtml, toShikiTheme }; diff --git a/docs/shiki/dist/index.unpkg.iife.js b/docs/shiki/dist/index.unpkg.iife.js new file mode 100644 index 00000000..e87d8006 --- /dev/null +++ b/docs/shiki/dist/index.unpkg.iife.js @@ -0,0 +1 @@ +!function(e){"use strict";const t=[{id:"abap",scopeName:"source.abap",path:"abap.tmLanguage.json",displayName:"ABAP",samplePath:"abap.sample"},{id:"actionscript-3",scopeName:"source.actionscript.3",path:"actionscript-3.tmLanguage.json",displayName:"ActionScript",samplePath:"actionscript-3.sample"},{id:"ada",scopeName:"source.ada",path:"ada.tmLanguage.json",displayName:"Ada",samplePath:"ada.sample"},{id:"apache",scopeName:"source.apacheconf",path:"apache.tmLanguage.json",displayName:"Apache Conf",samplePath:"apache.sample"},{id:"apex",scopeName:"source.apex",path:"apex.tmLanguage.json",displayName:"Apex",samplePath:"apex.sample"},{id:"apl",scopeName:"source.apl",path:"apl.tmLanguage.json",displayName:"APL",samplePath:"apl.sample",embeddedLangs:["html","xml","css","javascript","json"]},{id:"applescript",scopeName:"source.applescript",path:"applescript.tmLanguage.json",displayName:"AppleScript",samplePath:"applescript.sample"},{id:"ara",scopeName:"source.ara",path:"ara.tmLanguage.json",displayName:"Ara",samplePath:"ara.sample"},{id:"asm",scopeName:"source.asm.x86_64",path:"asm.tmLanguage.json",displayName:"Assembly",samplePath:"asm.sample"},{id:"astro",scopeName:"source.astro",path:"astro.tmLanguage.json",displayName:"Astro",samplePath:"astro.sample",embeddedLangs:["json","javascript","typescript","stylus","sass","css","scss","less","postcss","tsx"]},{id:"awk",scopeName:"source.awk",path:"awk.tmLanguage.json",displayName:"AWK",samplePath:"awk.sample"},{id:"ballerina",scopeName:"source.ballerina",path:"ballerina.tmLanguage.json",displayName:"Ballerina",samplePath:"ballerina.sample"},{id:"bat",scopeName:"source.batchfile",path:"bat.tmLanguage.json",displayName:"Batch",samplePath:"bat.sample",aliases:["batch"]},{id:"beancount",scopeName:"text.beancount",path:"beancount.tmLanguage.json",displayName:"Beancount",samplePath:"beancount.sample"},{id:"berry",scopeName:"source.berry",path:"berry.tmLanguage.json",displayName:"Berry",samplePath:"berry.sample",aliases:["be"]},{id:"bibtex",scopeName:"text.bibtex",path:"bibtex.tmLanguage.json",displayName:"BibTeX",samplePath:"bibtex.sample"},{id:"bicep",scopeName:"source.bicep",path:"bicep.tmLanguage.json",displayName:"Bicep",samplePath:"bicep.sample"},{id:"blade",scopeName:"text.html.php.blade",path:"blade.tmLanguage.json",displayName:"Blade",samplePath:"blade.sample",embeddedLangs:["html","xml","sql","javascript","json","css"]},{id:"c",scopeName:"source.c",path:"c.tmLanguage.json",displayName:"C",samplePath:"c.sample"},{id:"cadence",scopeName:"source.cadence",path:"cadence.tmLanguage.json",displayName:"Cadence",samplePath:"cadence.sample",aliases:["cdc"]},{id:"clarity",scopeName:"source.clar",path:"clarity.tmLanguage.json",displayName:"Clarity",samplePath:"clarity.sample"},{id:"clojure",scopeName:"source.clojure",path:"clojure.tmLanguage.json",displayName:"Clojure",samplePath:"clojure.sample",aliases:["clj"]},{id:"cmake",scopeName:"source.cmake",path:"cmake.tmLanguage.json",displayName:"CMake",samplePath:"cmake.sample"},{id:"cobol",scopeName:"source.cobol",path:"cobol.tmLanguage.json",displayName:"COBOL",samplePath:"cobol.sample",embeddedLangs:["sql","html","java"]},{id:"codeql",scopeName:"source.ql",path:"codeql.tmLanguage.json",displayName:"CodeQL",samplePath:"codeql.sample",aliases:["ql"]},{id:"coffee",scopeName:"source.coffee",path:"coffee.tmLanguage.json",displayName:"CoffeeScript",samplePath:"coffee.sample",embeddedLangs:["javascript"]},{id:"cpp",scopeName:"source.cpp",path:"cpp.tmLanguage.json",displayName:"C++",samplePath:"cpp.sample",aliases:["c++"],embeddedLangs:["glsl","sql"]},{id:"crystal",scopeName:"source.crystal",path:"crystal.tmLanguage.json",displayName:"Crystal",samplePath:"crystal.sample",embeddedLangs:["html","sql","css","c","javascript","shellscript"]},{id:"csharp",scopeName:"source.cs",path:"csharp.tmLanguage.json",displayName:"C#",samplePath:"csharp.sample",aliases:["c#","cs"]},{id:"css",scopeName:"source.css",path:"css.tmLanguage.json",displayName:"CSS",samplePath:"css.sample"},{id:"cue",scopeName:"source.cue",path:"cue.tmLanguage.json",displayName:"CUE",samplePath:"cue.sample"},{id:"cypher",scopeName:"source.cypher",path:"cypher.tmLanguage.json",displayName:"Cypher",samplePath:"cypher.sample",aliases:["cql"]},{id:"d",scopeName:"source.d",path:"d.tmLanguage.json",displayName:"D",samplePath:"d.sample"},{id:"dart",scopeName:"source.dart",path:"dart.tmLanguage.json",displayName:"Dart",samplePath:"dart.sample"},{id:"dax",scopeName:"source.dax",path:"dax.tmLanguage.json",displayName:"DAX",samplePath:"dax.sample"},{id:"diff",scopeName:"source.diff",path:"diff.tmLanguage.json",displayName:"Diff",samplePath:"diff.sample"},{id:"docker",scopeName:"source.dockerfile",path:"docker.tmLanguage.json",displayName:"Docker",samplePath:"docker.sample",aliases:["dockerfile"]},{id:"dream-maker",scopeName:"source.dm",path:"dream-maker.tmLanguage.json",displayName:"Dream Maker",samplePath:"dream-maker.sample"},{id:"elixir",scopeName:"source.elixir",path:"elixir.tmLanguage.json",displayName:"Elixir",samplePath:"elixir.sample",embeddedLangs:["html"]},{id:"elm",scopeName:"source.elm",path:"elm.tmLanguage.json",displayName:"Elm",samplePath:"elm.sample",embeddedLangs:["glsl"]},{id:"erb",scopeName:"text.html.erb",path:"erb.tmLanguage.json",displayName:"ERB",samplePath:"erb.sample",embeddedLangs:["html","ruby"]},{id:"erlang",scopeName:"source.erlang",path:"erlang.tmLanguage.json",displayName:"Erlang",samplePath:"erlang.sample",aliases:["erl"]},{id:"fish",scopeName:"source.fish",path:"fish.tmLanguage.json",displayName:"Fish",samplePath:"fish.sample"},{id:"fsharp",scopeName:"source.fsharp",path:"fsharp.tmLanguage.json",displayName:"F#",samplePath:"fsharp.sample",aliases:["f#","fs"],embeddedLangs:["markdown"]},{id:"gdresource",scopeName:"source.gdresource",path:"gdresource.tmLanguage.json",displayName:"GDResource",samplePath:"gdresource.sample",embeddedLangs:["gdshader","gdscript"]},{id:"gdscript",scopeName:"source.gdscript",path:"gdscript.tmLanguage.json",displayName:"GDScript",samplePath:"gdscript.sample"},{id:"gdshader",scopeName:"source.gdshader",path:"gdshader.tmLanguage.json",displayName:"GDShader",samplePath:"gdshader.sample"},{id:"gherkin",scopeName:"text.gherkin.feature",path:"gherkin.tmLanguage.json",displayName:"Gherkin",samplePath:"gherkin.sample"},{id:"git-commit",scopeName:"text.git-commit",path:"git-commit.tmLanguage.json",displayName:"Git Commit Message",embeddedLangs:["diff"]},{id:"git-rebase",scopeName:"text.git-rebase",path:"git-rebase.tmLanguage.json",displayName:"Git Rebase Message",embeddedLangs:["shellscript"]},{id:"glimmer-js",scopeName:"source.gjs",path:"glimmer-js.tmLanguage.json",displayName:"Glimmer JS",aliases:["gjs"],embeddedLangs:["javascript","handlebars"]},{id:"glimmer-ts",scopeName:"source.gts",path:"glimmer-ts.tmLanguage.json",displayName:"Glimmer TS",aliases:["gts"],embeddedLangs:["typescript","handlebars"]},{id:"glsl",scopeName:"source.glsl",path:"glsl.tmLanguage.json",displayName:"GLSL",samplePath:"glsl.sample",embeddedLangs:["c"]},{id:"gnuplot",scopeName:"source.gnuplot",path:"gnuplot.tmLanguage.json",displayName:"Gnuplot",samplePath:"gnuplot.sample"},{id:"go",scopeName:"source.go",path:"go.tmLanguage.json",displayName:"Go",samplePath:"go.sample"},{id:"graphql",scopeName:"source.graphql",path:"graphql.tmLanguage.json",displayName:"GraphQL",samplePath:"graphql.sample",aliases:["gql"],embeddedLangs:["javascript","typescript","jsx","tsx"]},{id:"groovy",scopeName:"source.groovy",path:"groovy.tmLanguage.json",displayName:"Groovy",samplePath:"groovy.sample"},{id:"hack",scopeName:"source.hack",path:"hack.tmLanguage.json",displayName:"Hack",samplePath:"hack.sample",embeddedLangs:["html","sql"]},{id:"haml",scopeName:"text.haml",path:"haml.tmLanguage.json",displayName:"Ruby Haml",samplePath:"haml.sample",embeddedLangs:["ruby","javascript","sass","coffee","markdown","css"]},{id:"handlebars",scopeName:"text.html.handlebars",path:"handlebars.tmLanguage.json",displayName:"Handlebars",samplePath:"handlebars.sample",aliases:["hbs"],embeddedLangs:["html","css","javascript","yaml"]},{id:"haskell",scopeName:"source.haskell",path:"haskell.tmLanguage.json",displayName:"Haskell",samplePath:"haskell.sample",aliases:["hs"]},{id:"hcl",scopeName:"source.hcl",path:"hcl.tmLanguage.json",displayName:"HashiCorp HCL",samplePath:"hcl.sample"},{id:"hjson",scopeName:"source.hjson",path:"hjson.tmLanguage.json",displayName:"Hjson",samplePath:"hjson.sample"},{id:"hlsl",scopeName:"source.hlsl",path:"hlsl.tmLanguage.json",displayName:"HLSL",samplePath:"hlsl.sample"},{id:"html",scopeName:"text.html.basic",path:"html.tmLanguage.json",displayName:"HTML",samplePath:"html.sample",embeddedLangs:["javascript","css"]},{id:"http",scopeName:"source.http",path:"http.tmLanguage.json",displayName:"HTTP",samplePath:"http.sample",embeddedLangs:["shellscript","json","xml","graphql"]},{id:"imba",scopeName:"source.imba",path:"imba.tmLanguage.json",displayName:"Imba",samplePath:"imba.sample"},{id:"ini",scopeName:"source.ini",path:"ini.tmLanguage.json",displayName:"INI",samplePath:"ini.sample",aliases:["properties"]},{id:"java",scopeName:"source.java",path:"java.tmLanguage.json",displayName:"Java",samplePath:"java.sample"},{id:"javascript",scopeName:"source.js",path:"javascript.tmLanguage.json",displayName:"JavaScript",samplePath:"javascript.sample",aliases:["js"]},{id:"jinja-html",scopeName:"text.html.jinja",path:"jinja-html.tmLanguage.json",displayName:"Jinja",samplePath:"jinja-html.sample",embeddedLangs:["html"]},{id:"jison",scopeName:"source.jison",path:"jison.tmLanguage.json",displayName:"Jison",samplePath:"jison.sample",embeddedLangs:["javascript"]},{id:"json",scopeName:"source.json",path:"json.tmLanguage.json",displayName:"JSON",samplePath:"json.sample"},{id:"json5",scopeName:"source.json5",path:"json5.tmLanguage.json",displayName:"JSON5",samplePath:"json5.sample"},{id:"jsonc",scopeName:"source.json.comments",path:"jsonc.tmLanguage.json",displayName:"JSON with Comments",samplePath:"jsonc.sample"},{id:"jsonl",scopeName:"source.json.lines",path:"jsonl.tmLanguage.json",displayName:"JSON Lines",samplePath:"jsonl.sample"},{id:"jsonnet",scopeName:"source.jsonnet",path:"jsonnet.tmLanguage.json",displayName:"Jsonnet",samplePath:"jsonnet.sample"},{id:"jssm",scopeName:"source.jssm",path:"jssm.tmLanguage.json",displayName:"JSSM",samplePath:"jssm.sample",aliases:["fsl"]},{id:"jsx",scopeName:"source.js.jsx",path:"jsx.tmLanguage.json",displayName:"JSX",samplePath:"jsx.sample"},{id:"julia",scopeName:"source.julia",path:"julia.tmLanguage.json",displayName:"Julia",samplePath:"julia.sample",embeddedLangs:["cpp","python","javascript","r","sql"]},{id:"kotlin",scopeName:"source.kotlin",path:"kotlin.tmLanguage.json",displayName:"Kotlin",samplePath:"kotlin.sample",aliases:["kt","kts"]},{id:"kusto",scopeName:"source.kusto",path:"kusto.tmLanguage.json",displayName:"Kusto",samplePath:"kusto.sample",aliases:["kql"]},{id:"latex",scopeName:"text.tex.latex",path:"latex.tmLanguage.json",displayName:"LaTeX",samplePath:"latex.sample",embeddedLangs:["tex","css","haskell","html","xml","java","lua","julia","ruby","javascript","typescript","python","yaml","rust","scala","gnuplot"]},{id:"less",scopeName:"source.css.less",path:"less.tmLanguage.json",displayName:"Less",samplePath:"less.sample",embeddedLangs:["css"]},{id:"liquid",scopeName:"text.html.liquid",path:"liquid.tmLanguage.json",displayName:"Liquid",samplePath:"liquid.sample",embeddedLangs:["html","css","json","javascript"]},{id:"lisp",scopeName:"source.lisp",path:"lisp.tmLanguage.json",displayName:"Lisp",samplePath:"lisp.sample"},{id:"logo",scopeName:"source.logo",path:"logo.tmLanguage.json",displayName:"Logo",samplePath:"logo.sample"},{id:"lua",scopeName:"source.lua",path:"lua.tmLanguage.json",displayName:"Lua",samplePath:"lua.sample",embeddedLangs:["c"]},{id:"make",scopeName:"source.makefile",path:"make.tmLanguage.json",displayName:"Makefile",samplePath:"make.sample",aliases:["makefile"]},{id:"markdown",scopeName:"text.html.markdown",path:"markdown.tmLanguage.json",displayName:"Markdown",samplePath:"markdown.sample",aliases:["md"],embeddedLangs:["css","html","ini","java","lua","make","perl","r","ruby","php","sql","vb","xml","xsl","yaml","bat","clojure","coffee","c","cpp","diff","docker","git-commit","git-rebase","go","groovy","pug","javascript","json","jsonc","less","objective-c","swift","scss","raku","powershell","python","julia","rust","scala","shellscript","typescript","tsx","csharp","fsharp","dart","handlebars","erlang","elixir","latex","bibtex"]},{id:"marko",scopeName:"text.marko",path:"marko.tmLanguage.json",displayName:"Marko",samplePath:"marko.sample",embeddedLangs:["css","less","scss","javascript"]},{id:"matlab",scopeName:"source.matlab",path:"matlab.tmLanguage.json",displayName:"MATLAB",samplePath:"matlab.sample"},{id:"mdc",scopeName:"text.markdown.mdc",path:"mdc.tmLanguage.json",displayName:"mdc",samplePath:"mdc.sample",embeddedLangs:["markdown","yaml"]},{id:"mdx",scopeName:"source.mdx",path:"mdx.tmLanguage.json",displayName:"MDX",samplePath:"mdx.sample",embeddedLangs:["tsx","toml","yaml","c","clojure","coffee","cpp","csharp","css","diff","docker","elixir","elm","erlang","go","graphql","haskell","html","ini","java","javascript","json","julia","kotlin","less","lua","make","markdown","objective-c","perl","python","r","ruby","rust","scala","scss","shellscript","shellsession","sql","xml","swift","typescript"]},{id:"mermaid",scopeName:"source.mermaid",path:"mermaid.tmLanguage.json",displayName:"Mermaid",samplePath:"mermaid.sample"},{id:"mojo",scopeName:"source.mojo",path:"mojo.tmLanguage.json",displayName:"MagicPython",samplePath:"mojo.sample"},{id:"narrat",scopeName:"source.narrat",path:"narrat.tmLanguage.json",displayName:"Narrat Language",samplePath:"narrat.sample",aliases:["nar"]},{id:"nextflow",scopeName:"source.nextflow",path:"nextflow.tmLanguage.json",displayName:"Nextflow",samplePath:"nextflow.sample",aliases:["nf"]},{id:"nginx",scopeName:"source.nginx",path:"nginx.tmLanguage.json",displayName:"Nginx",samplePath:"nginx.sample",embeddedLangs:["lua"]},{id:"nim",scopeName:"source.nim",path:"nim.tmLanguage.json",displayName:"Nim",samplePath:"nim.sample",embeddedLangs:["c","html","xml","javascript","css","glsl","markdown"]},{id:"nix",scopeName:"source.nix",path:"nix.tmLanguage.json",displayName:"Nix",samplePath:"nix.sample"},{id:"objective-c",scopeName:"source.objc",path:"objective-c.tmLanguage.json",displayName:"Objective-C",samplePath:"objective-c.sample",aliases:["objc"]},{id:"objective-cpp",scopeName:"source.objcpp",path:"objective-cpp.tmLanguage.json",displayName:"Objective-C++",samplePath:"objective-cpp.sample"},{id:"ocaml",scopeName:"source.ocaml",path:"ocaml.tmLanguage.json",displayName:"OCaml",samplePath:"ocaml.sample"},{id:"pascal",scopeName:"source.pascal",path:"pascal.tmLanguage.json",displayName:"Pascal",samplePath:"pascal.sample"},{id:"perl",scopeName:"source.perl",path:"perl.tmLanguage.json",displayName:"Perl",samplePath:"perl.sample",embeddedLangs:["html","xml","css","javascript","sql"]},{id:"php",scopeName:"source.php",path:"php.tmLanguage.json",displayName:"PHP",samplePath:"php.sample",embeddedLangs:["html","xml","sql","javascript","json","css"]},{id:"plsql",scopeName:"source.plsql.oracle",path:"plsql.tmLanguage.json",displayName:"PL/SQL",samplePath:"plsql.sample"},{id:"postcss",scopeName:"source.css.postcss",path:"postcss.tmLanguage.json",displayName:"PostCSS",samplePath:"postcss.sample"},{id:"powerquery",scopeName:"source.powerquery",path:"powerquery.tmLanguage.json",displayName:"PowerQuery",samplePath:"powerquery.sample"},{id:"powershell",scopeName:"source.powershell",path:"powershell.tmLanguage.json",displayName:"PowerShell",samplePath:"powershell.sample",aliases:["ps","ps1"]},{id:"prisma",scopeName:"source.prisma",path:"prisma.tmLanguage.json",displayName:"Prisma",samplePath:"prisma.sample"},{id:"prolog",scopeName:"source.prolog",path:"prolog.tmLanguage.json",displayName:"Prolog",samplePath:"prolog.sample"},{id:"proto",scopeName:"source.proto",path:"proto.tmLanguage.json",displayName:"Protocol Buffer 3",samplePath:"proto.sample"},{id:"pug",scopeName:"text.pug",path:"pug.tmLanguage.json",displayName:"Pug",samplePath:"pug.sample",aliases:["jade"],embeddedLangs:["javascript","css","sass","scss","stylus","coffee","html"]},{id:"puppet",scopeName:"source.puppet",path:"puppet.tmLanguage.json",displayName:"Puppet",samplePath:"puppet.sample"},{id:"purescript",scopeName:"source.purescript",path:"purescript.tmLanguage.json",displayName:"PureScript",samplePath:"purescript.sample"},{id:"python",scopeName:"source.python",path:"python.tmLanguage.json",displayName:"Python",samplePath:"python.sample",aliases:["py"]},{id:"r",scopeName:"source.r",path:"r.tmLanguage.json",displayName:"R",samplePath:"r.sample"},{id:"raku",scopeName:"source.perl.6",path:"raku.tmLanguage.json",displayName:"Raku",samplePath:"raku.sample",aliases:["perl6"]},{id:"razor",scopeName:"text.aspnetcorerazor",path:"razor.tmLanguage.json",displayName:"ASP.NET Razor",samplePath:"razor.sample",embeddedLangs:["html","csharp"]},{id:"reg",scopeName:"source.reg",path:"reg.tmLanguage.json",displayName:"Windows Registry Script",samplePath:"reg.sample"},{id:"rel",scopeName:"source.rel",path:"rel.tmLanguage.json",displayName:"Rel",samplePath:"rel.sample"},{id:"riscv",scopeName:"source.riscv",path:"riscv.tmLanguage.json",displayName:"RISC-V",samplePath:"riscv.sample"},{id:"rst",scopeName:"source.rst",path:"rst.tmLanguage.json",displayName:"reStructuredText",samplePath:"rst.sample",embeddedLangs:["cpp","python","javascript","shellscript","yaml","cmake","ruby"]},{id:"ruby",scopeName:"source.ruby",path:"ruby.tmLanguage.json",displayName:"Ruby",samplePath:"ruby.sample",aliases:["rb"],embeddedLangs:["html","xml","sql","css","c","javascript","shellscript","lua"]},{id:"rust",scopeName:"source.rust",path:"rust.tmLanguage.json",displayName:"Rust",samplePath:"rust.sample",aliases:["rs"]},{id:"sas",scopeName:"source.sas",path:"sas.tmLanguage.json",displayName:"SAS",samplePath:"sas.sample",embeddedLangs:["sql"]},{id:"sass",scopeName:"source.sass",path:"sass.tmLanguage.json",displayName:"Sass",samplePath:"sass.sample"},{id:"scala",scopeName:"source.scala",path:"scala.tmLanguage.json",displayName:"Scala",samplePath:"scala.sample"},{id:"scheme",scopeName:"source.scheme",path:"scheme.tmLanguage.json",displayName:"Scheme",samplePath:"scheme.sample"},{id:"scss",scopeName:"source.css.scss",path:"scss.tmLanguage.json",displayName:"SCSS",samplePath:"scss.sample",embeddedLangs:["css"]},{id:"shaderlab",scopeName:"source.shaderlab",path:"shaderlab.tmLanguage.json",displayName:"ShaderLab",samplePath:"shaderlab.sample",aliases:["shader"],embeddedLangs:["hlsl"]},{id:"shellscript",scopeName:"source.shell",path:"shellscript.tmLanguage.json",displayName:"Shell",samplePath:"shellscript.sample",aliases:["bash","sh","shell","zsh"]},{id:"shellsession",scopeName:"text.shell-session",path:"shellsession.tmLanguage.json",displayName:"Shell Session",samplePath:"shellsession.sample",aliases:["console"],embeddedLangs:["shellscript"]},{id:"smalltalk",scopeName:"source.smalltalk",path:"smalltalk.tmLanguage.json",displayName:"Smalltalk",samplePath:"smalltalk.sample"},{id:"solidity",scopeName:"source.solidity",path:"solidity.tmLanguage.json",displayName:"Solidity",samplePath:"solidity.sample"},{id:"sparql",scopeName:"source.sparql",path:"sparql.tmLanguage.json",displayName:"SPARQL",samplePath:"sparql.sample",embeddedLangs:["turtle"]},{id:"splunk",scopeName:"source.splunk_search",path:"splunk.tmLanguage.json",displayName:"Splunk Query Language",samplePath:"splunk.sample",aliases:["spl"]},{id:"sql",scopeName:"source.sql",path:"sql.tmLanguage.json",displayName:"SQL",samplePath:"sql.sample"},{id:"ssh-config",scopeName:"source.ssh-config",path:"ssh-config.tmLanguage.json",displayName:"SSH Config",samplePath:"ssh-config.sample"},{id:"stata",scopeName:"source.stata",path:"stata.tmLanguage.json",displayName:"Stata",samplePath:"stata.sample",embeddedLangs:["sql"]},{id:"stylus",scopeName:"source.stylus",path:"stylus.tmLanguage.json",displayName:"Stylus",samplePath:"stylus.sample",aliases:["styl"]},{id:"svelte",scopeName:"source.svelte",path:"svelte.tmLanguage.json",displayName:"Svelte",samplePath:"svelte.sample",embeddedLangs:["javascript","typescript","coffee","stylus","sass","css","scss","less","postcss","pug","markdown"]},{id:"swift",scopeName:"source.swift",path:"swift.tmLanguage.json",displayName:"Swift",samplePath:"swift.sample"},{id:"system-verilog",scopeName:"source.systemverilog",path:"system-verilog.tmLanguage.json",displayName:"SystemVerilog",samplePath:"system-verilog.sample"},{id:"tasl",scopeName:"source.tasl",path:"tasl.tmLanguage.json",displayName:"Tasl",samplePath:"tasl.sample"},{id:"tcl",scopeName:"source.tcl",path:"tcl.tmLanguage.json",displayName:"Tcl",samplePath:"tcl.sample"},{id:"tex",scopeName:"text.tex",path:"tex.tmLanguage.json",displayName:"TeX",samplePath:"tex.sample",embeddedLangs:["r"]},{id:"toml",scopeName:"source.toml",path:"toml.tmLanguage.json",displayName:"TOML",samplePath:"toml.sample"},{id:"tsx",scopeName:"source.tsx",path:"tsx.tmLanguage.json",displayName:"TSX",samplePath:"tsx.sample"},{id:"turtle",scopeName:"source.turtle",path:"turtle.tmLanguage.json",displayName:"Turtle",samplePath:"turtle.sample"},{id:"twig",scopeName:"text.html.twig",path:"twig.tmLanguage.json",displayName:"Twig",samplePath:"twig.sample",embeddedLangs:["css","javascript","php","python","ruby"]},{id:"typescript",scopeName:"source.ts",path:"typescript.tmLanguage.json",displayName:"TypeScript",samplePath:"typescript.sample",aliases:["ts"]},{id:"v",scopeName:"source.v",path:"v.tmLanguage.json",displayName:"V",samplePath:"v.sample"},{id:"vb",scopeName:"source.asp.vb.net",path:"vb.tmLanguage.json",displayName:"Visual Basic",samplePath:"vb.sample",aliases:["cmd"]},{id:"verilog",scopeName:"source.verilog",path:"verilog.tmLanguage.json",displayName:"Verilog",samplePath:"verilog.sample"},{id:"vhdl",scopeName:"source.vhdl",path:"vhdl.tmLanguage.json",displayName:"VHDL",samplePath:"vhdl.sample"},{id:"viml",scopeName:"source.viml",path:"viml.tmLanguage.json",displayName:"Vim Script",samplePath:"viml.sample",aliases:["vim","vimscript"]},{id:"vue-html",scopeName:"text.html.vue-html",path:"vue-html.tmLanguage.json",displayName:"Vue HTML",samplePath:"vue-html.sample",embeddedLangs:["vue","javascript"]},{id:"vue",scopeName:"source.vue",path:"vue.tmLanguage.json",displayName:"Vue",samplePath:"vue.sample",embeddedLangs:["html","markdown","pug","stylus","sass","css","scss","less","javascript","typescript","jsx","tsx","json","jsonc","json5","yaml","toml","graphql"]},{id:"vyper",scopeName:"source.vyper",path:"vyper.tmLanguage.json",displayName:"Vyper",samplePath:"vyper.sample",aliases:["vy"]},{id:"wasm",scopeName:"source.wat",path:"wasm.tmLanguage.json",displayName:"WebAssembly",samplePath:"wasm.sample"},{id:"wenyan",scopeName:"source.wenyan",path:"wenyan.tmLanguage.json",displayName:"Wenyan",samplePath:"wenyan.sample",aliases:["文言"]},{id:"wgsl",scopeName:"source.wgsl",path:"wgsl.tmLanguage.json",displayName:"WGSL",samplePath:"wgsl.sample"},{id:"wolfram",scopeName:"source.wolfram",path:"wolfram.tmLanguage.json",displayName:"Wolfram",samplePath:"wolfram.sample"},{id:"xml",scopeName:"text.xml",path:"xml.tmLanguage.json",displayName:"XML",samplePath:"xml.sample",embeddedLangs:["java"]},{id:"xsl",scopeName:"text.xml.xsl",path:"xsl.tmLanguage.json",displayName:"XSL",samplePath:"xsl.sample",embeddedLangs:["xml"]},{id:"yaml",scopeName:"source.yaml",path:"yaml.tmLanguage.json",displayName:"YAML",samplePath:"yaml.sample",aliases:["yml"]},{id:"zenscript",scopeName:"source.zenscript",path:"zenscript.tmLanguage.json",displayName:"ZenScript",samplePath:"zenscript.sample"},{id:"zig",scopeName:"source.zig",path:"zig.tmLanguage.json",displayName:"zig",samplePath:"zig.sample"}];var s=(e=>(e[e.NotSet=-1]="NotSet",e[e.None=0]="None",e[e.Italic=1]="Italic",e[e.Bold=2]="Bold",e[e.Underline=4]="Underline",e))(s||{});class a{static toBinaryStr(e){let t=e.toString(2);for(;t.length<32;)t="0"+t;return t}static printMetadata(e){let t=a.getLanguageId(e),s=a.getTokenType(e),n=a.getFontStyle(e),r=a.getForeground(e),o=a.getBackground(e);console.log({languageId:t,tokenType:s,fontStyle:n,foreground:r,background:o})}static getLanguageId(e){return(255&e)>>>0}static getTokenType(e){return(768&e)>>>8}static getFontStyle(e){return(14336&e)>>>11}static getForeground(e){return(8372224&e)>>>15}static getBackground(e){return(4286578688&e)>>>24}static containsBalancedBrackets(e){return 0!=(1024&e)}static set(e,t,s,n,r,o){let i=a.getLanguageId(e),c=a.getTokenType(e),l=a.getFontStyle(e),u=a.getForeground(e),p=a.getBackground(e);return 0!==t&&(i=t),0!==s&&(c=8===s?0:s),-1!==n&&(l=n),0!==r&&(u=r),0!==o&&(p=o),(i<<0|c<<8|l<<11|(a.containsBalancedBrackets(e)?1:0)<<10|u<<15|p<<24)>>>0}}function n(e){return e.endsWith("/")||e.endsWith("\\")?e.slice(0,-1):e}function r(e){return e.startsWith("./")?e.slice(2):e}function o(e){const t=e.split(/[\/\\]/g);return t.slice(0,t.length-1)}function i(...e){return e.map(n).map(r).join("/")}"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;var c,l={exports:{}};c=()=>{return e={770:function(e,t,s){var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.setDefaultDebugCall=t.createOnigScanner=t.createOnigString=t.loadWASM=t.OnigScanner=t.OnigString=void 0;const n=a(s(418));let r=null,o=!1;class i{static _utf8ByteLength(e){let t=0;for(let s=0,a=e.length;s=55296&&n<=56319&&s+1=56320&&t<=57343&&(r=65536+(n-55296<<10)|t-56320,o=!0)}t+=r<=127?1:r<=2047?2:r<=65535?3:4,o&&s++}return t}constructor(e){const t=e.length,s=i._utf8ByteLength(e),a=s!==t,n=a?new Uint32Array(t+1):null;a&&(n[t]=s);const r=a?new Uint32Array(s+1):null;a&&(r[s]=t);const o=new Uint8Array(s);let c=0;for(let s=0;s=55296&&i<=56319&&s+1=56320&&t<=57343&&(l=65536+(i-55296<<10)|t-56320,u=!0)}a&&(n[s]=c,u&&(n[s+1]=c),l<=127?r[c+0]=s:l<=2047?(r[c+0]=s,r[c+1]=s):l<=65535?(r[c+0]=s,r[c+1]=s,r[c+2]=s):(r[c+0]=s,r[c+1]=s,r[c+2]=s,r[c+3]=s)),l<=127?o[c++]=l:l<=2047?(o[c++]=192|(1984&l)>>>6,o[c++]=128|(63&l)>>>0):l<=65535?(o[c++]=224|(61440&l)>>>12,o[c++]=128|(4032&l)>>>6,o[c++]=128|(63&l)>>>0):(o[c++]=240|(1835008&l)>>>18,o[c++]=128|(258048&l)>>>12,o[c++]=128|(4032&l)>>>6,o[c++]=128|(63&l)>>>0),u&&s++}this.utf16Length=t,this.utf8Length=s,this.utf16Value=e,this.utf8Value=o,this.utf16OffsetToUtf8=n,this.utf8OffsetToUtf16=r}createString(e){const t=e._omalloc(this.utf8Length);return e.HEAPU8.set(this.utf8Value,t),t}}class c{constructor(e){if(this.id=++c.LAST_ID,!r)throw new Error("Must invoke loadWASM first.");this._onigBinding=r,this.content=e;const t=new i(e);this.utf16Length=t.utf16Length,this.utf8Length=t.utf8Length,this.utf16OffsetToUtf8=t.utf16OffsetToUtf8,this.utf8OffsetToUtf16=t.utf8OffsetToUtf16,this.utf8Length<1e4&&!c._sharedPtrInUse?(c._sharedPtr||(c._sharedPtr=r._omalloc(1e4)),c._sharedPtrInUse=!0,r.HEAPU8.set(t.utf8Value,c._sharedPtr),this.ptr=c._sharedPtr):this.ptr=t.createString(r)}convertUtf8OffsetToUtf16(e){return this.utf8OffsetToUtf16?e<0?0:e>this.utf8Length?this.utf16Length:this.utf8OffsetToUtf16[e]:e}convertUtf16OffsetToUtf8(e){return this.utf16OffsetToUtf8?e<0?0:e>this.utf16Length?this.utf8Length:this.utf16OffsetToUtf8[e]:e}dispose(){this.ptr===c._sharedPtr?c._sharedPtrInUse=!1:this._onigBinding._ofree(this.ptr)}}t.OnigString=c,c.LAST_ID=0,c._sharedPtr=0,c._sharedPtrInUse=!1;class l{constructor(e){if(!r)throw new Error("Must invoke loadWASM first.");const t=[],s=[];for(let a=0,n=e.length;aWebAssembly.instantiateStreaming(e,t)}(a):function(e){return async t=>{const s=await e.arrayBuffer();return WebAssembly.instantiate(s,t)}}(a):function(e){return t=>WebAssembly.instantiate(e,t)}(a)}return p=new Promise(((e,t)=>{a=e,o=t})),function(e,t,s,a){(0,n.default)({print:t,instantiateWasm:(t,s)=>{if("undefined"==typeof performance){const e=()=>Date.now();t.env.emscripten_get_now=e,t.wasi_snapshot_preview1.emscripten_get_now=e}return e(t).then((e=>s(e.instance)),a),{}}}).then((e=>{r=e,s()}))}(t,s,a,o),p},t.createOnigString=function(e){return new c(e)},t.createOnigScanner=function(e){return new l(e)},t.setDefaultDebugCall=function(e){o=e}},418:e=>{var t=("undefined"!=typeof document&&document.currentScript&&document.currentScript.src,function(e){var t,s,a=void 0!==(e=e||{})?e:{};a.ready=new Promise((function(e,a){t=e,s=a}));var n,r=Object.assign({},a),o=!1;n=function(e){let t;return"function"==typeof readbuffer?new Uint8Array(readbuffer(e)):(t=read(e,"binary"),function(e,t){e||v(t)}("object"==typeof t),t)},"undefined"!=typeof scriptArgs&&scriptArgs,"undefined"!=typeof onig_print&&("undefined"==typeof console&&(console={}),console.log=onig_print,console.warn=console.error="undefined"!=typeof printErr?printErr:onig_print);var i,c,l=a.print||console.log.bind(console),u=a.printErr||console.warn.bind(console);Object.assign(a,r),r=null,a.arguments&&a.arguments,a.thisProgram&&a.thisProgram,a.quit&&a.quit,a.wasmBinary&&(i=a.wasmBinary),a.noExitRuntime,"object"!=typeof WebAssembly&&v("no native wasm support detected");var p,h,m,d=!1,g="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function f(e,t,s){for(var a=t+s,n=t;e[n]&&!(n>=a);)++n;if(n-t>16&&e.buffer&&g)return g.decode(e.subarray(t,n));for(var r="";t>10,56320|1023&l)}}else r+=String.fromCharCode((31&o)<<6|i)}else r+=String.fromCharCode(o)}return r}function y(e){p=e,a.HEAP8=new Int8Array(e),a.HEAP16=new Int16Array(e),a.HEAP32=new Int32Array(e),a.HEAPU8=h=new Uint8Array(e),a.HEAPU16=new Uint16Array(e),a.HEAPU32=m=new Uint32Array(e),a.HEAPF32=new Float32Array(e),a.HEAPF64=new Float64Array(e)}a.INITIAL_MEMORY;var b=[],_=[],N=[];function k(e){b.unshift(e)}function L(e){N.unshift(e)}var S=0,P=null;function v(e){a.onAbort&&a.onAbort(e),u(e="Aborted("+e+")"),d=!0,e+=". Build with -sASSERTIONS for more info.";var t=new WebAssembly.RuntimeError(e);throw s(t),t}var j,w,C="data:application/octet-stream;base64,";function x(e){return e.startsWith(C)}function A(e){try{if(e==j&&i)return new Uint8Array(i);if(n)return n(e);throw"both async and sync fetching of the wasm failed"}catch(e){v(e)}}function T(e){for(;e.length>0;)e.shift()(a)}function R(e){try{return c.grow(e-p.byteLength+65535>>>16),y(c.buffer),1}catch(e){}}x(j="onig.wasm")||(j=function(e){return a.locateFile?a.locateFile(e,""):""+e}(j)),w="undefined"!=typeof dateNow?dateNow:()=>performance.now();var I=[null,[],[]];function E(e,t){var s=I[e];0===t||10===t?((1===e?l:u)(f(s,0)),s.length=0):s.push(t)}var O,M={emscripten_get_now:w,emscripten_memcpy_big:function(e,t,s){h.copyWithin(e,t,t+s)},emscripten_resize_heap:function(e){var t,s=h.length,a=2147483648;if((e>>>=0)>a)return!1;for(var n=1;n<=4;n*=2){var r=s*(1+.2/n);if(r=Math.min(r,e+100663296),R(Math.min(a,(t=Math.max(e,r))+(65536-t%65536)%65536)))return!0}return!1},fd_write:function(e,t,s,a){for(var n=0,r=0;r>2],i=m[t+4>>2];t+=8;for(var c=0;c>2]=n,0}};function B(e){function s(){O||(O=!0,a.calledRun=!0,d||(T(_),t(a),a.onRuntimeInitialized&&a.onRuntimeInitialized(),function(){if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)L(a.postRun.shift());T(N)}()))}S>0||(function(){if(a.preRun)for("function"==typeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)k(a.preRun.shift());T(b)}(),S>0||(a.setStatus?(a.setStatus("Running..."),setTimeout((function(){setTimeout((function(){a.setStatus("")}),1),s()}),1)):s()))}if(function(){var e={env:M,wasi_snapshot_preview1:M};function t(e,t){var s=e.exports;a.asm=s,y((c=a.asm.memory).buffer),a.asm.__indirect_function_table,function(e){_.unshift(e)}(a.asm.__wasm_call_ctors),function(e){if(S--,a.monitorRunDependencies&&a.monitorRunDependencies(S),0==S&&P){var t=P;P=null,t()}}()}function n(e){t(e.instance)}function r(t){return(i||!o||"function"!=typeof fetch?Promise.resolve().then((function(){return A(j)})):fetch(j,{credentials:"same-origin"}).then((function(e){if(!e.ok)throw"failed to load wasm binary file at '"+j+"'";return e.arrayBuffer()})).catch((function(){return A(j)}))).then((function(t){return WebAssembly.instantiate(t,e)})).then((function(e){return e})).then(t,(function(e){u("failed to asynchronously prepare wasm: "+e),v(e)}))}if(S++,a.monitorRunDependencies&&a.monitorRunDependencies(S),a.instantiateWasm)try{return a.instantiateWasm(e,t)}catch(e){u("Module.instantiateWasm callback failed with error: "+e),s(e)}(i||"function"!=typeof WebAssembly.instantiateStreaming||x(j)||"function"!=typeof fetch?r(n):fetch(j,{credentials:"same-origin"}).then((function(t){return WebAssembly.instantiateStreaming(t,e).then(n,(function(e){return u("wasm streaming compile failed: "+e),u("falling back to ArrayBuffer instantiation"),r(n)}))}))).catch(s)}(),a.___wasm_call_ctors=function(){return(a.___wasm_call_ctors=a.asm.__wasm_call_ctors).apply(null,arguments)},a.___errno_location=function(){return(a.___errno_location=a.asm.__errno_location).apply(null,arguments)},a._omalloc=function(){return(a._omalloc=a.asm.omalloc).apply(null,arguments)},a._ofree=function(){return(a._ofree=a.asm.ofree).apply(null,arguments)},a._getLastOnigError=function(){return(a._getLastOnigError=a.asm.getLastOnigError).apply(null,arguments)},a._createOnigScanner=function(){return(a._createOnigScanner=a.asm.createOnigScanner).apply(null,arguments)},a._freeOnigScanner=function(){return(a._freeOnigScanner=a.asm.freeOnigScanner).apply(null,arguments)},a._findNextOnigScannerMatch=function(){return(a._findNextOnigScannerMatch=a.asm.findNextOnigScannerMatch).apply(null,arguments)},a._findNextOnigScannerMatchDbg=function(){return(a._findNextOnigScannerMatchDbg=a.asm.findNextOnigScannerMatchDbg).apply(null,arguments)},a.stackSave=function(){return(a.stackSave=a.asm.stackSave).apply(null,arguments)},a.stackRestore=function(){return(a.stackRestore=a.asm.stackRestore).apply(null,arguments)},a.stackAlloc=function(){return(a.stackAlloc=a.asm.stackAlloc).apply(null,arguments)},a.dynCall_jiji=function(){return(a.dynCall_jiji=a.asm.dynCall_jiji).apply(null,arguments)},a.UTF8ToString=function(e,t){return e?f(h,e,t):""},P=function e(){O||B(),O||(P=e)},a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);a.preInit.length>0;)a.preInit.pop()();return B(),e.ready});e.exports=t}},t={},function s(a){var n=t[a];if(void 0!==n)return n.exports;var r=t[a]={exports:{}};return e[a].call(r.exports,r,r.exports,s),r.exports}(770);var e,t},l.exports=c();var u,p,h,m,d=l.exports;function g(e,t=!1){const s=e.length;let a=0,n="",r=0,o=16,i=0,c=0,l=0,u=0,p=0;function h(t,s){let n=0,r=0;for(;n=48&&t<=57)r=16*r+t-48;else if(t>=65&&t<=70)r=16*r+t-65+10;else{if(!(t>=97&&t<=102))break;r=16*r+t-97+10}a++,n++}return n=s)return r=s,o=17;let t=e.charCodeAt(a);if(f(t)){do{a++,n+=String.fromCharCode(t),t=e.charCodeAt(a)}while(f(t));return o=15}if(y(t))return a++,n+=String.fromCharCode(t),13===t&&10===e.charCodeAt(a)&&(a++,n+="\n"),i++,l=a,o=14;switch(t){case 123:return a++,o=1;case 125:return a++,o=2;case 91:return a++,o=3;case 93:return a++,o=4;case 58:return a++,o=6;case 44:return a++,o=5;case 34:return a++,n=function(){let t="",n=a;for(;;){if(a>=s){t+=e.substring(n,a),p=2;break}const r=e.charCodeAt(a);if(34===r){t+=e.substring(n,a),a++;break}if(92!==r){if(r>=0&&r<=31){if(y(r)){t+=e.substring(n,a),p=2;break}p=6}a++}else{if(t+=e.substring(n,a),a++,a>=s){p=2;break}switch(e.charCodeAt(a++)){case 34:t+='"';break;case 92:t+="\\";break;case 47:t+="/";break;case 98:t+="\b";break;case 102:t+="\f";break;case 110:t+="\n";break;case 114:t+="\r";break;case 116:t+="\t";break;case 117:const e=h(4,!0);e>=0?t+=String.fromCharCode(e):p=4;break;default:p=5}n=a}}return t}(),o=10;case 47:const c=a-1;if(47===e.charCodeAt(a+1)){for(a+=2;aa,scan:t?function(){let e;do{e=m()}while(e>=12&&e<=15);return e}:m,getToken:()=>o,getTokenValue:()=>n,getTokenOffset:()=>r,getTokenLength:()=>a-r,getTokenStartLine:()=>c,getTokenStartCharacter:()=>r-u,getTokenError:()=>p}}function f(e){return 32===e||9===e}function y(e){return 10===e||13===e}function b(e){return e>=48&&e<=57}!function(e){e[e.lineFeed=10]="lineFeed",e[e.carriageReturn=13]="carriageReturn",e[e.space=32]="space",e[e._0=48]="_0",e[e._1=49]="_1",e[e._2=50]="_2",e[e._3=51]="_3",e[e._4=52]="_4",e[e._5=53]="_5",e[e._6=54]="_6",e[e._7=55]="_7",e[e._8=56]="_8",e[e._9=57]="_9",e[e.a=97]="a",e[e.b=98]="b",e[e.c=99]="c",e[e.d=100]="d",e[e.e=101]="e",e[e.f=102]="f",e[e.g=103]="g",e[e.h=104]="h",e[e.i=105]="i",e[e.j=106]="j",e[e.k=107]="k",e[e.l=108]="l",e[e.m=109]="m",e[e.n=110]="n",e[e.o=111]="o",e[e.p=112]="p",e[e.q=113]="q",e[e.r=114]="r",e[e.s=115]="s",e[e.t=116]="t",e[e.u=117]="u",e[e.v=118]="v",e[e.w=119]="w",e[e.x=120]="x",e[e.y=121]="y",e[e.z=122]="z",e[e.A=65]="A",e[e.B=66]="B",e[e.C=67]="C",e[e.D=68]="D",e[e.E=69]="E",e[e.F=70]="F",e[e.G=71]="G",e[e.H=72]="H",e[e.I=73]="I",e[e.J=74]="J",e[e.K=75]="K",e[e.L=76]="L",e[e.M=77]="M",e[e.N=78]="N",e[e.O=79]="O",e[e.P=80]="P",e[e.Q=81]="Q",e[e.R=82]="R",e[e.S=83]="S",e[e.T=84]="T",e[e.U=85]="U",e[e.V=86]="V",e[e.W=87]="W",e[e.X=88]="X",e[e.Y=89]="Y",e[e.Z=90]="Z",e[e.asterisk=42]="asterisk",e[e.backslash=92]="backslash",e[e.closeBrace=125]="closeBrace",e[e.closeBracket=93]="closeBracket",e[e.colon=58]="colon",e[e.comma=44]="comma",e[e.dot=46]="dot",e[e.doubleQuote=34]="doubleQuote",e[e.minus=45]="minus",e[e.openBrace=123]="openBrace",e[e.openBracket=91]="openBracket",e[e.plus=43]="plus",e[e.slash=47]="slash",e[e.formFeed=12]="formFeed",e[e.tab=9]="tab"}(u||(u={})),function(e){e.DEFAULT={allowTrailingComma:!1}}(p||(p={})),function(e){e[e.None=0]="None",e[e.UnexpectedEndOfComment=1]="UnexpectedEndOfComment",e[e.UnexpectedEndOfString=2]="UnexpectedEndOfString",e[e.UnexpectedEndOfNumber=3]="UnexpectedEndOfNumber",e[e.InvalidUnicode=4]="InvalidUnicode",e[e.InvalidEscapeCharacter=5]="InvalidEscapeCharacter",e[e.InvalidCharacter=6]="InvalidCharacter"}(h||(h={})),function(e){e[e.OpenBraceToken=1]="OpenBraceToken",e[e.CloseBraceToken=2]="CloseBraceToken",e[e.OpenBracketToken=3]="OpenBracketToken",e[e.CloseBracketToken=4]="CloseBracketToken",e[e.CommaToken=5]="CommaToken",e[e.ColonToken=6]="ColonToken",e[e.NullKeyword=7]="NullKeyword",e[e.TrueKeyword=8]="TrueKeyword",e[e.FalseKeyword=9]="FalseKeyword",e[e.StringLiteral=10]="StringLiteral",e[e.NumericLiteral=11]="NumericLiteral",e[e.LineCommentTrivia=12]="LineCommentTrivia",e[e.BlockCommentTrivia=13]="BlockCommentTrivia",e[e.LineBreakTrivia=14]="LineBreakTrivia",e[e.Trivia=15]="Trivia",e[e.Unknown=16]="Unknown",e[e.EOF=17]="EOF"}(m||(m={}));const _=function(e,t=[],s=p.DEFAULT){let a=null,n=[];const r=[];function o(e){Array.isArray(n)?n.push(e):null!==a&&(n[a]=e)}return function(e,t,s=p.DEFAULT){const a=g(e,!1),n=[];function r(e){return e?()=>e(a.getTokenOffset(),a.getTokenLength(),a.getTokenStartLine(),a.getTokenStartCharacter()):()=>!0}function o(e){return e?()=>e(a.getTokenOffset(),a.getTokenLength(),a.getTokenStartLine(),a.getTokenStartCharacter(),(()=>n.slice())):()=>!0}function i(e){return e?t=>e(t,a.getTokenOffset(),a.getTokenLength(),a.getTokenStartLine(),a.getTokenStartCharacter()):()=>!0}function c(e){return e?t=>e(t,a.getTokenOffset(),a.getTokenLength(),a.getTokenStartLine(),a.getTokenStartCharacter(),(()=>n.slice())):()=>!0}const l=o(t.onObjectBegin),u=c(t.onObjectProperty),h=r(t.onObjectEnd),m=o(t.onArrayBegin),d=r(t.onArrayEnd),f=c(t.onLiteralValue),y=i(t.onSeparator),b=r(t.onComment),_=i(t.onError),N=s&&s.disallowComments,k=s&&s.allowTrailingComma;function L(){for(;;){const e=a.scan();switch(a.getTokenError()){case 4:S(14);break;case 5:S(15);break;case 3:S(13);break;case 1:N||S(11);break;case 2:S(12);break;case 6:S(16)}switch(e){case 12:case 13:N?S(10):b();break;case 16:S(1);break;case 15:case 14:break;default:return e}}}function S(e,t=[],s=[]){if(_(e),t.length+s.length>0){let e=a.getToken();for(;17!==e;){if(-1!==t.indexOf(e)){L();break}if(-1!==s.indexOf(e))break;e=L()}}}function P(e){const t=a.getTokenValue();return e?f(t):(u(t),n.push(t)),L(),!0}function v(){switch(a.getToken()){case 11:const e=a.getTokenValue();let t=Number(e);isNaN(t)&&(S(2),t=0),f(t);break;case 7:f(null);break;case 8:f(!0);break;case 9:f(!1);break;default:return!1}return L(),!0}function j(){return 10!==a.getToken()?(S(3,[],[2,5]),!1):(P(!1),6===a.getToken()?(y(":"),L(),x()||S(4,[],[2,5])):S(5,[],[2,5]),n.pop(),!0)}function w(){l(),L();let e=!1;for(;2!==a.getToken()&&17!==a.getToken();){if(5===a.getToken()){if(e||S(4,[],[]),y(","),L(),2===a.getToken()&&k)break}else e&&S(6,[],[]);j()||S(4,[],[2,5]),e=!0}return h(),2!==a.getToken()?S(7,[2],[]):L(),!0}function C(){m(),L();let e=!0,t=!1;for(;4!==a.getToken()&&17!==a.getToken();){if(5===a.getToken()){if(t||S(4,[],[]),y(","),L(),4===a.getToken()&&k)break}else t&&S(6,[],[]);e?(n.push(0),e=!1):n[n.length-1]++,x()||S(4,[],[4,5]),t=!0}return d(),e||n.pop(),4!==a.getToken()?S(8,[4],[]):L(),!0}function x(){switch(a.getToken()){case 3:return C();case 1:return w();case 10:return P(!0);default:return v()}}if(L(),17===a.getToken())return!!s.allowEmptyContent||(S(4,[],[]),!1);if(!x())return S(4,[],[]),!1;17!==a.getToken()&&S(9,[],[])}(e,{onObjectBegin:()=>{const e={};o(e),r.push(n),n=e,a=null},onObjectProperty:e=>{a=e},onObjectEnd:()=>{n=r.pop()},onArrayBegin:()=>{const e=[];o(e),r.push(n),n=e,a=null},onArrayEnd:()=>{n=r.pop()},onLiteralValue:o,onError:(e,s,a)=>{t.push({error:e,offset:s,length:a})}},s),n[0]};var N;!function(e){e[e.InvalidSymbol=1]="InvalidSymbol",e[e.InvalidNumberFormat=2]="InvalidNumberFormat",e[e.PropertyNameExpected=3]="PropertyNameExpected",e[e.ValueExpected=4]="ValueExpected",e[e.ColonExpected=5]="ColonExpected",e[e.CommaExpected=6]="CommaExpected",e[e.CloseBraceExpected=7]="CloseBraceExpected",e[e.CloseBracketExpected=8]="CloseBracketExpected",e[e.EndOfFileExpected=9]="EndOfFileExpected",e[e.InvalidCommentToken=10]="InvalidCommentToken",e[e.UnexpectedEndOfComment=11]="UnexpectedEndOfComment",e[e.UnexpectedEndOfString=12]="UnexpectedEndOfString",e[e.UnexpectedEndOfNumber=13]="UnexpectedEndOfNumber",e[e.InvalidUnicode=14]="InvalidUnicode",e[e.InvalidEscapeCharacter=15]="InvalidEscapeCharacter",e[e.InvalidCharacter=16]="InvalidCharacter"}(N||(N={}));const k="undefined"!=typeof self&&void 0!==self.WorkerGlobalScope,L="process"in globalThis&&"undefined"!=typeof process&&void 0!==process.release&&"node"===process.release.name,S="process"in globalThis&&"undefined"!=typeof process&&void 0!==process.release&&"bun"===process.release.name,P=k||!L&&!S;let v="https://unpkg.com/shiki@0.14.5/",j="";const w="dist/";function C(e){j=e}let x=null;function A(e){if(P)return`${v}${e}`;{const t=require("path");return t.isAbsolute(e)?e:t.resolve(__dirname,"..",e)}}async function T(e){const t=[],s=await async function(e){const t=A(e);if(P)return await fetch(t).then((e=>e.text()));{const e=require("fs");return await e.promises.readFile(t,"utf-8")}}(e);let a;try{a=JSON.parse(s)}catch(e){if(a=_(s,t,{allowTrailingComma:!0}),t.length)throw t[0]}return a}async function R(e){const t=I(await T(e));if(t.include){const s=await R(i(...o(e),t.include));s.settings&&(t.settings=s.settings.concat(t.settings)),s.bg&&!t.bg&&(t.bg=s.bg),s.colors&&(t.colors={...s.colors,...t.colors}),delete t.include}return t}function I(e){const t=e.type||"dark",s={name:e.name,type:t,...e,...M(e)};var a;return e.include&&(s.include=e.include),e.tokenColors&&(s.settings=e.tokenColors,delete s.tokenColors),(a=s).settings||(a.settings=[]),a.settings[0]&&a.settings[0].settings&&!a.settings[0].scope||a.settings.unshift({settings:{foreground:a.fg,background:a.bg}}),s}const E={light:"#333333",dark:"#bbbbbb"},O={light:"#fffffe",dark:"#1e1e1e"};function M(e){let t,s,a=e.settings?e.settings:e.tokenColors;const n=a?a.find((e=>!e.name&&!e.scope)):void 0;return n?.settings?.foreground&&(t=n.settings.foreground),n?.settings?.background&&(s=n.settings.background),!t&&e?.colors?.["editor.foreground"]&&(t=e.colors["editor.foreground"]),!s&&e?.colors?.["editor.background"]&&(s=e.colors["editor.background"]),t||(t="light"===e.type?E.light:E.dark),s||(s="light"===e.type?O.light:O.dark),{fg:t,bg:s}}class B{constructor(e,t){this.languagesPath="languages/",this.languageMap={},this.scopeToLangMap={},this._onigLibPromise=e,this._onigLibName=t}get onigLib(){return this._onigLibPromise}getOnigLibName(){return this._onigLibName}getLangRegistration(e){return this.languageMap[e]}async loadGrammar(e){const s=this.scopeToLangMap[e];if(!s)return null;if(s.grammar)return s.grammar;const a=await async function(e){return await T(e)}(t.includes(s)?`${this.languagesPath}${s.path}`:s.path);return s.grammar=a,a}addLanguage(e){this.languageMap[e.id]=e,e.aliases&&e.aliases.forEach((t=>{this.languageMap[t]=e})),this.scopeToLangMap[e.scopeName]=e}}var G={exports:{}};!function(e,t){var s,a;e.exports=(s={350:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.UseOnigurumaFindOptions=t.DebugFlags=void 0,t.DebugFlags={InDebugMode:"undefined"!=typeof process&&!!process.env.VSCODE_TEXTMATE_DEBUG},t.UseOnigurumaFindOptions=!1},36:(e,t)=>{var s;Object.defineProperty(t,"__esModule",{value:!0}),t.toOptionalTokenType=t.EncodedTokenAttributes=void 0,(s=t.EncodedTokenAttributes||(t.EncodedTokenAttributes={})).toBinaryStr=function(e){let t=e.toString(2);for(;t.length<32;)t="0"+t;return t},s.print=function(e){const t=s.getLanguageId(e),a=s.getTokenType(e),n=s.getFontStyle(e),r=s.getForeground(e),o=s.getBackground(e);console.log({languageId:t,tokenType:a,fontStyle:n,foreground:r,background:o})},s.getLanguageId=function(e){return(255&e)>>>0},s.getTokenType=function(e){return(768&e)>>>8},s.containsBalancedBrackets=function(e){return 0!=(1024&e)},s.getFontStyle=function(e){return(30720&e)>>>11},s.getForeground=function(e){return(16744448&e)>>>15},s.getBackground=function(e){return(4278190080&e)>>>24},s.set=function(e,t,a,n,r,o,i){let c=s.getLanguageId(e),l=s.getTokenType(e),u=s.containsBalancedBrackets(e)?1:0,p=s.getFontStyle(e),h=s.getForeground(e),m=s.getBackground(e);return 0!==t&&(c=t),8!==a&&(l=a),null!==n&&(u=n?1:0),-1!==r&&(p=r),0!==o&&(h=o),0!==i&&(m=i),(c<<0|l<<8|u<<10|p<<11|h<<15|m<<24)>>>0},t.toOptionalTokenType=function(e){return e}},996:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BasicScopeAttributesProvider=t.BasicScopeAttributes=void 0;const a=s(878);class n{constructor(e,t){this.languageId=e,this.tokenType=t}}t.BasicScopeAttributes=n;class r{constructor(e,t){this._getBasicScopeAttributes=new a.CachedFn((e=>{const t=this._scopeToLanguage(e),s=this._toStandardTokenType(e);return new n(t,s)})),this._defaultAttributes=new n(e,8),this._embeddedLanguagesMatcher=new o(Object.entries(t||{}))}getDefaultAttributes(){return this._defaultAttributes}getBasicScopeAttributes(e){return null===e?r._NULL_SCOPE_METADATA:this._getBasicScopeAttributes.get(e)}_scopeToLanguage(e){return this._embeddedLanguagesMatcher.match(e)||0}_toStandardTokenType(e){const t=e.match(r.STANDARD_TOKEN_TYPE_REGEXP);if(!t)return 8;switch(t[1]){case"comment":return 1;case"string":return 2;case"regex":return 3;case"meta.embedded":return 0}throw new Error("Unexpected match for standard token type!")}}t.BasicScopeAttributesProvider=r,r._NULL_SCOPE_METADATA=new n(0,0),r.STANDARD_TOKEN_TYPE_REGEXP=/\b(comment|string|regex|meta\.embedded)\b/;class o{constructor(e){if(0===e.length)this.values=null,this.scopesRegExp=null;else{this.values=new Map(e);const t=e.map((([e,t])=>a.escapeRegExpCharacters(e)));t.sort(),t.reverse(),this.scopesRegExp=new RegExp(`^((${t.join(")|(")}))($|\\.)`,"")}}match(e){if(!this.scopesRegExp)return;const t=e.match(this.scopesRegExp);return t?this.values.get(t[1]):void 0}}},947:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.LineTokens=t.BalancedBracketSelectors=t.StateStack=t.AttributedScopeStack=t.Grammar=t.createGrammar=void 0;const a=s(350),n=s(36),r=s(736),o=s(44),i=s(792),c=s(583),l=s(878),u=s(996),p=s(47);function h(e,t,s,a,n){const o=r.createMatchers(t,m),c=i.RuleFactory.getCompiledRuleId(s,a,n.repository);for(const s of o)e.push({debugSelector:t,matcher:s.matcher,ruleId:c,grammar:n,priority:s.priority})}function m(e,t){if(t.length{for(let a=s;as&&e.substr(0,s)===t&&"."===e[s]}t.createGrammar=function(e,t,s,a,n,r,o,i){return new g(e,t,s,a,n,r,o,i)};class g{constructor(e,t,s,a,n,o,i,c){if(this._rootScopeName=e,this.balancedBracketSelectors=o,this._onigLib=c,this._basicScopeAttributesProvider=new u.BasicScopeAttributesProvider(s,a),this._rootId=-1,this._lastRuleId=0,this._ruleId2desc=[null],this._includedGrammars={},this._grammarRepository=i,this._grammar=f(t,null),this._injections=null,this._tokenTypeMatchers=[],n)for(const e of Object.keys(n)){const t=r.createMatchers(e,m);for(const s of t)this._tokenTypeMatchers.push({matcher:s.matcher,type:n[e]})}}get themeProvider(){return this._grammarRepository}dispose(){for(const e of this._ruleId2desc)e&&e.dispose()}createOnigScanner(e){return this._onigLib.createOnigScanner(e)}createOnigString(e){return this._onigLib.createOnigString(e)}getMetadataForScope(e){return this._basicScopeAttributesProvider.getBasicScopeAttributes(e)}_collectInjections(){const e=[],t=this._rootScopeName,s=(e=>e===this._rootScopeName?this._grammar:this.getExternalGrammar(e))(t);if(s){const a=s.injections;if(a)for(let t in a)h(e,t,a[t],this,s);const n=this._grammarRepository.injections(t);n&&n.forEach((t=>{const s=this.getExternalGrammar(t);if(s){const t=s.injectionSelector;t&&h(e,t,s,this,s)}}))}return e.sort(((e,t)=>e.priority-t.priority)),e}getInjections(){if(null===this._injections&&(this._injections=this._collectInjections(),a.DebugFlags.InDebugMode&&this._injections.length>0)){console.log(`Grammar ${this._rootScopeName} contains the following injections:`);for(const e of this._injections)console.log(` - ${e.debugSelector}`)}return this._injections}registerRule(e){const t=++this._lastRuleId,s=e(i.ruleIdFromNumber(t));return this._ruleId2desc[t]=s,s}getRule(e){return this._ruleId2desc[i.ruleIdToNumber(e)]}getExternalGrammar(e,t){if(this._includedGrammars[e])return this._includedGrammars[e];if(this._grammarRepository){const s=this._grammarRepository.lookup(e);if(s)return this._includedGrammars[e]=f(s,t&&t.$base),this._includedGrammars[e]}}tokenizeLine(e,t,s=0){const a=this._tokenize(e,t,!1,s);return{tokens:a.lineTokens.getResult(a.ruleStack,a.lineLength),ruleStack:a.ruleStack,stoppedEarly:a.stoppedEarly}}tokenizeLine2(e,t,s=0){const a=this._tokenize(e,t,!0,s);return{tokens:a.lineTokens.getBinaryResult(a.ruleStack,a.lineLength),ruleStack:a.ruleStack,stoppedEarly:a.stoppedEarly}}_tokenize(e,t,s,a){let r;if(-1===this._rootId&&(this._rootId=i.RuleFactory.getCompiledRuleId(this._grammar.repository.$self,this,this._grammar.repository)),t&&t!==b.NULL)r=!1,t.reset();else{r=!0;const e=this._basicScopeAttributesProvider.getDefaultAttributes(),s=this.themeProvider.getDefaults(),a=n.EncodedTokenAttributes.set(0,e.languageId,e.tokenType,null,s.fontStyle,s.foregroundId,s.backgroundId),o=this.getRule(this._rootId).getName(null,null);let i;i=o?y.createRootAndLookUpScopeName(o,a,this):y.createRoot("unknown",a),t=new b(null,this._rootId,-1,-1,!1,null,i,i)}e+="\n";const c=this.createOnigString(e),l=c.content.length,u=new _(s,e,this._tokenTypeMatchers,this.balancedBracketSelectors),h=p._tokenizeString(this,c,r,0,t,u,!0,a);return o.disposeOnigString(c),{lineLength:l,lineTokens:u,ruleStack:h.stack,stoppedEarly:h.stoppedEarly}}}function f(e,t){return(e=l.clone(e)).repository=e.repository||{},e.repository.$self={$vscodeTextmateLocation:e.$vscodeTextmateLocation,patterns:e.patterns,name:e.scopeName},e.repository.$base=t||e.repository.$self,e}t.Grammar=g;class y{constructor(e,t,s){this.parent=e,this.scopePath=t,this.tokenAttributes=s}static createRoot(e,t){return new y(null,new c.ScopeStack(null,e),t)}static createRootAndLookUpScopeName(e,t,s){const a=s.getMetadataForScope(e),n=new c.ScopeStack(null,e),r=s.themeProvider.themeMatch(n),o=y.mergeAttributes(t,a,r);return new y(null,n,o)}get scopeName(){return this.scopePath.scopeName}equals(e){return y._equals(this,e)}static _equals(e,t){for(;;){if(e===t)return!0;if(!e&&!t)return!0;if(!e||!t)return!1;if(e.scopeName!==t.scopeName||e.tokenAttributes!==t.tokenAttributes)return!1;e=e.parent,t=t.parent}}static mergeAttributes(e,t,s){let a=-1,r=0,o=0;return null!==s&&(a=s.fontStyle,r=s.foregroundId,o=s.backgroundId),n.EncodedTokenAttributes.set(e,t.languageId,t.tokenType,null,a,r,o)}pushAttributed(e,t){if(null===e)return this;if(-1===e.indexOf(" "))return y._pushAttributed(this,e,t);const s=e.split(/ /g);let a=this;for(const e of s)a=y._pushAttributed(a,e,t);return a}static _pushAttributed(e,t,s){const a=s.getMetadataForScope(t),n=e.scopePath.push(t),r=s.themeProvider.themeMatch(n),o=y.mergeAttributes(e.tokenAttributes,a,r);return new y(e,n,o)}getScopeNames(){return this.scopePath.getSegments()}}t.AttributedScopeStack=y;class b{constructor(e,t,s,a,n,r,o,i){this.parent=e,this.ruleId=t,this.beginRuleCapturedEOL=n,this.endRule=r,this.nameScopesList=o,this.contentNameScopesList=i,this._stackElementBrand=void 0,this.depth=this.parent?this.parent.depth+1:1,this._enterPos=s,this._anchorPos=a}equals(e){return null!==e&&b._equals(this,e)}static _equals(e,t){return e===t||!!this._structuralEquals(e,t)&&e.contentNameScopesList.equals(t.contentNameScopesList)}static _structuralEquals(e,t){for(;;){if(e===t)return!0;if(!e&&!t)return!0;if(!e||!t)return!1;if(e.depth!==t.depth||e.ruleId!==t.ruleId||e.endRule!==t.endRule)return!1;e=e.parent,t=t.parent}}clone(){return this}static _reset(e){for(;e;)e._enterPos=-1,e._anchorPos=-1,e=e.parent}reset(){b._reset(this)}pop(){return this.parent}safePop(){return this.parent?this.parent:this}push(e,t,s,a,n,r,o){return new b(this,e,t,s,a,n,r,o)}getEnterPos(){return this._enterPos}getAnchorPos(){return this._anchorPos}getRule(e){return e.getRule(this.ruleId)}toString(){const e=[];return this._writeString(e,0),"["+e.join(",")+"]"}_writeString(e,t){return this.parent&&(t=this.parent._writeString(e,t)),e[t++]=`(${this.ruleId}, TODO-${this.nameScopesList}, TODO-${this.contentNameScopesList})`,t}withContentNameScopesList(e){return this.contentNameScopesList===e?this:this.parent.push(this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,this.endRule,this.nameScopesList,e)}withEndRule(e){return this.endRule===e?this:new b(this.parent,this.ruleId,this._enterPos,this._anchorPos,this.beginRuleCapturedEOL,e,this.nameScopesList,this.contentNameScopesList)}hasSameRuleAs(e){let t=this;for(;t&&t._enterPos===e._enterPos;){if(t.ruleId===e.ruleId)return!0;t=t.parent}return!1}}t.StateStack=b,b.NULL=new b(null,0,0,0,!1,null,null,null),t.BalancedBracketSelectors=class{constructor(e,t){this.allowAny=!1,this.balancedBracketScopes=e.flatMap((e=>"*"===e?(this.allowAny=!0,[]):r.createMatchers(e,m).map((e=>e.matcher)))),this.unbalancedBracketScopes=t.flatMap((e=>r.createMatchers(e,m).map((e=>e.matcher))))}get matchesAlways(){return this.allowAny&&0===this.unbalancedBracketScopes.length}get matchesNever(){return 0===this.balancedBracketScopes.length&&!this.allowAny}match(e){for(const t of this.unbalancedBracketScopes)if(t(e))return!1;for(const t of this.balancedBracketScopes)if(t(e))return!0;return this.allowAny}};class _{constructor(e,t,s,n){this.balancedBracketSelectors=n,this._emitBinaryTokens=e,this._tokenTypeOverrides=s,a.DebugFlags.InDebugMode?this._lineText=t:this._lineText=null,this._tokens=[],this._binaryTokens=[],this._lastTokenEndIndex=0}produce(e,t){this.produceFromScopes(e.contentNameScopesList,t)}produceFromScopes(e,t){if(this._lastTokenEndIndex>=t)return;if(this._emitBinaryTokens){let s=e.tokenAttributes,r=!1;if(this.balancedBracketSelectors?.matchesAlways&&(r=!0),this._tokenTypeOverrides.length>0||this.balancedBracketSelectors&&!this.balancedBracketSelectors.matchesAlways&&!this.balancedBracketSelectors.matchesNever){const t=e.getScopeNames();for(const e of this._tokenTypeOverrides)e.matcher(t)&&(s=n.EncodedTokenAttributes.set(s,0,n.toOptionalTokenType(e.type),null,-1,0,0));this.balancedBracketSelectors&&(r=this.balancedBracketSelectors.match(t))}if(r&&(s=n.EncodedTokenAttributes.set(s,0,8,r,-1,0,0)),this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-1]===s)return void(this._lastTokenEndIndex=t);if(a.DebugFlags.InDebugMode){const s=e.getScopeNames();console.log(" token: |"+this._lineText.substring(this._lastTokenEndIndex,t).replace(/\n$/,"\\n")+"|");for(let e=0;e0&&this._tokens[this._tokens.length-1].startIndex===t-1&&this._tokens.pop(),0===this._tokens.length&&(this._lastTokenEndIndex=-1,this.produce(e,t),this._tokens[this._tokens.length-1].startIndex=0),this._tokens}getBinaryResult(e,t){this._binaryTokens.length>0&&this._binaryTokens[this._binaryTokens.length-2]===t-1&&(this._binaryTokens.pop(),this._binaryTokens.pop()),0===this._binaryTokens.length&&(this._lastTokenEndIndex=-1,this.produce(e,t),this._binaryTokens[this._binaryTokens.length-2]=0);const s=new Uint32Array(this._binaryTokens.length);for(let e=0,t=this._binaryTokens.length;e{Object.defineProperty(t,"__esModule",{value:!0}),t.parseInclude=t.TopLevelRepositoryReference=t.TopLevelReference=t.RelativeReference=t.SelfReference=t.BaseReference=t.ScopeDependencyProcessor=t.ExternalReferenceCollector=t.TopLevelRepositoryRuleReference=t.TopLevelRuleReference=void 0;const a=s(878);class n{constructor(e){this.scopeName=e}toKey(){return this.scopeName}}t.TopLevelRuleReference=n;class r{constructor(e,t){this.scopeName=e,this.ruleName=t}toKey(){return`${this.scopeName}#${this.ruleName}`}}t.TopLevelRepositoryRuleReference=r;class o{constructor(){this._references=[],this._seenReferenceKeys=new Set,this.visitedRule=new Set}get references(){return this._references}add(e){const t=e.toKey();this._seenReferenceKeys.has(t)||(this._seenReferenceKeys.add(t),this._references.push(e))}}function i(e,t,s,a){const r=s.lookup(e.scopeName);if(!r){if(e.scopeName===t)throw new Error(`No grammar provided for <${t}>`);return}const o=s.lookup(t);e instanceof n?l({baseGrammar:o,selfGrammar:r},a):c(e.ruleName,{baseGrammar:o,selfGrammar:r,repository:r.repository},a);const i=s.injections(e.scopeName);if(i)for(const e of i)a.add(new n(e))}function c(e,t,s){t.repository&&t.repository[e]&&u([t.repository[e]],t,s)}function l(e,t){e.selfGrammar.patterns&&Array.isArray(e.selfGrammar.patterns)&&u(e.selfGrammar.patterns,{...e,repository:e.selfGrammar.repository},t),e.selfGrammar.injections&&u(Object.values(e.selfGrammar.injections),{...e,repository:e.selfGrammar.repository},t)}function u(e,t,s){for(const o of e){if(s.visitedRule.has(o))continue;s.visitedRule.add(o);const e=o.repository?a.mergeObjects({},t.repository,o.repository):t.repository;Array.isArray(o.patterns)&&u(o.patterns,{...t,repository:e},s);const i=o.include;if(!i)continue;const p=f(i);switch(p.kind){case 0:l({...t,selfGrammar:t.baseGrammar},s);break;case 1:l(t,s);break;case 2:c(p.ruleName,{...t,repository:e},s);break;case 3:case 4:const a=p.scopeName===t.selfGrammar.scopeName?t.selfGrammar:p.scopeName===t.baseGrammar.scopeName?t.baseGrammar:void 0;if(a){const n={baseGrammar:t.baseGrammar,selfGrammar:a,repository:e};4===p.kind?c(p.ruleName,n,s):l(n,s)}else 4===p.kind?s.add(new r(p.scopeName,p.ruleName)):s.add(new n(p.scopeName))}}}t.ExternalReferenceCollector=o,t.ScopeDependencyProcessor=class{constructor(e,t){this.repo=e,this.initialScopeName=t,this.seenFullScopeRequests=new Set,this.seenPartialScopeRequests=new Set,this.seenFullScopeRequests.add(this.initialScopeName),this.Q=[new n(this.initialScopeName)]}processQueue(){const e=this.Q;this.Q=[];const t=new o;for(const s of e)i(s,this.initialScopeName,this.repo,t);for(const e of t.references)if(e instanceof n){if(this.seenFullScopeRequests.has(e.scopeName))continue;this.seenFullScopeRequests.add(e.scopeName),this.Q.push(e)}else{if(this.seenFullScopeRequests.has(e.scopeName))continue;if(this.seenPartialScopeRequests.has(e.toKey()))continue;this.seenPartialScopeRequests.add(e.toKey()),this.Q.push(e)}}};class p{constructor(){this.kind=0}}t.BaseReference=p;class h{constructor(){this.kind=1}}t.SelfReference=h;class m{constructor(e){this.ruleName=e,this.kind=2}}t.RelativeReference=m;class d{constructor(e){this.scopeName=e,this.kind=3}}t.TopLevelReference=d;class g{constructor(e,t){this.scopeName=e,this.ruleName=t,this.kind=4}}function f(e){if("$base"===e)return new p;if("$self"===e)return new h;const t=e.indexOf("#");if(-1===t)return new d(e);if(0===t)return new m(e.substring(1));{const s=e.substring(0,t),a=e.substring(t+1);return new g(s,a)}}t.TopLevelRepositoryReference=g,t.parseInclude=f},391:function(e,t,s){var a=this&&this.__createBinding||(Object.create?function(e,t,s,a){void 0===a&&(a=s),Object.defineProperty(e,a,{enumerable:!0,get:function(){return t[s]}})}:function(e,t,s,a){void 0===a&&(a=s),e[a]=t[s]}),n=this&&this.__exportStar||function(e,t){for(var s in e)"default"===s||Object.prototype.hasOwnProperty.call(t,s)||a(t,e,s)};Object.defineProperty(t,"__esModule",{value:!0}),n(s(947),t)},47:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.LocalStackElement=t._tokenizeString=void 0;const a=s(350),n=s(44),r=s(792),o=s(878);class i{constructor(e,t){this.stack=e,this.stoppedEarly=t}}function c(e,t,s,n,c,p,m,d){const g=t.content.length;let f=!1,y=-1;if(m){const o=function(e,t,s,n,o,i){let c=o.beginRuleCapturedEOL?0:-1;const l=[];for(let t=o;t;t=t.pop()){const s=t.getRule(e);s instanceof r.BeginWhileRule&&l.push({rule:s,stack:t})}for(let p=l.pop();p;p=l.pop()){const{ruleScanner:l,findOptions:m}=u(p.rule,e,p.stack.endRule,s,n===c),d=l.findNextMatchSync(t,n,m);if(a.DebugFlags.InDebugMode&&(console.log(" scanning for while rule"),console.log(l.toString())),!d){a.DebugFlags.InDebugMode&&console.log(" popping "+p.rule.debugName+" - "+p.rule.debugWhileRegExp),o=p.stack.pop();break}if(d.ruleId!==r.whileRuleId){o=p.stack.pop();break}d.captureIndices&&d.captureIndices.length&&(i.produce(p.stack,d.captureIndices[0].start),h(e,t,s,p.stack,i,p.rule.whileCaptures,d.captureIndices),i.produce(p.stack,d.captureIndices[0].end),c=d.captureIndices[0].end,d.captureIndices[0].end>n&&(n=d.captureIndices[0].end,s=!1))}return{stack:o,linePos:n,anchorPosition:c,isFirstLine:s}}(e,t,s,n,c,p);c=o.stack,n=o.linePos,s=o.isFirstLine,y=o.anchorPosition}const b=Date.now();for(;!f;){if(0!==d&&Date.now()-b>d)return new i(c,!0);_()}return new i(c,!1);function _(){a.DebugFlags.InDebugMode&&(console.log(""),console.log(`@@scanNext ${n}: |${t.content.substr(n).replace(/\n$/,"\\n")}|`));const i=function(e,t,s,n,r,i){const c=function(e,t,s,n,r,i){const c=r.getRule(e),{ruleScanner:u,findOptions:p}=l(c,e,r.endRule,s,n===i);let h=0;a.DebugFlags.InDebugMode&&(h=o.performanceNow());const m=u.findNextMatchSync(t,n,p);if(a.DebugFlags.InDebugMode){const e=o.performanceNow()-h;e>5&&console.warn(`Rule ${c.debugName} (${c.id}) matching took ${e} against '${t}'`),console.log(` scanning for (linePos: ${n}, anchorPosition: ${i})`),console.log(u.toString()),m&&console.log(`matched rule id: ${m.ruleId} from ${m.captureIndices[0].start} to ${m.captureIndices[0].end}`)}return m?{captureIndices:m.captureIndices,matchedRuleId:m.ruleId}:null}(e,t,s,n,r,i),u=e.getInjections();if(0===u.length)return c;const p=function(e,t,s,n,r,o,i){let c,u=Number.MAX_VALUE,p=null,h=0;const m=o.contentNameScopesList.getScopeNames();for(let o=0,d=e.length;o=u)&&(u=_,p=b.captureIndices,c=b.ruleId,h=d.priority,u===r))break}return p?{priorityMatch:-1===h,captureIndices:p,matchedRuleId:c}:null}(u,e,t,s,n,r,i);if(!p)return c;if(!c)return p;const h=c.captureIndices[0].start,m=p.captureIndices[0].start;return m0)&&u[0].end>n;if(m===r.endRuleId){const r=c.getRule(e);a.DebugFlags.InDebugMode&&console.log(" popping "+r.debugName+" - "+r.debugEndRegExp),p.produce(c,u[0].start),c=c.withContentNameScopesList(c.nameScopesList),h(e,t,s,c,p,r.endCaptures,u),p.produce(c,u[0].end);const o=c;if(c=c.parent,y=o.getAnchorPos(),!d&&o.getEnterPos()===n)return a.DebugFlags.InDebugMode&&console.error("[1] - Grammar is in an endless loop - Grammar pushed & popped a rule without advancing"),c=o,p.produce(c,g),void(f=!0)}else{const o=e.getRule(m);p.produce(c,u[0].start);const i=c,l=o.getName(t.content,u),b=c.contentNameScopesList.pushAttributed(l,e);if(c=c.push(m,n,y,u[0].end===g,null,b,b),o instanceof r.BeginEndRule){const n=o;a.DebugFlags.InDebugMode&&console.log(" pushing "+n.debugName+" - "+n.debugBeginRegExp),h(e,t,s,c,p,n.beginCaptures,u),p.produce(c,u[0].end),y=u[0].end;const r=n.getContentName(t.content,u),l=b.pushAttributed(r,e);if(c=c.withContentNameScopesList(l),n.endHasBackReferences&&(c=c.withEndRule(n.getEndWithResolvedBackReferences(t.content,u))),!d&&i.hasSameRuleAs(c))return a.DebugFlags.InDebugMode&&console.error("[2] - Grammar is in an endless loop - Grammar pushed the same rule without advancing"),c=c.pop(),p.produce(c,g),void(f=!0)}else if(o instanceof r.BeginWhileRule){const n=o;a.DebugFlags.InDebugMode&&console.log(" pushing "+n.debugName),h(e,t,s,c,p,n.beginCaptures,u),p.produce(c,u[0].end),y=u[0].end;const r=n.getContentName(t.content,u),l=b.pushAttributed(r,e);if(c=c.withContentNameScopesList(l),n.whileHasBackReferences&&(c=c.withEndRule(n.getWhileWithResolvedBackReferences(t.content,u))),!d&&i.hasSameRuleAs(c))return a.DebugFlags.InDebugMode&&console.error("[3] - Grammar is in an endless loop - Grammar pushed the same rule without advancing"),c=c.pop(),p.produce(c,g),void(f=!0)}else{const n=o;if(a.DebugFlags.InDebugMode&&console.log(" matched "+n.debugName+" - "+n.debugMatchRegExp),h(e,t,s,c,p,n.captures,u),p.produce(c,u[0].end),c=c.pop(),!d)return a.DebugFlags.InDebugMode&&console.error("[4] - Grammar is in an endless loop - Grammar is not advancing, nor is it pushing/popping"),c=c.safePop(),p.produce(c,g),void(f=!0)}}u[0].end>n&&(n=u[0].end,s=!1)}}function l(e,t,s,n,r){return a.UseOnigurumaFindOptions?{ruleScanner:e.compile(t,s),findOptions:p(n,r)}:{ruleScanner:e.compileAG(t,s,n,r),findOptions:0}}function u(e,t,s,n,r){return a.UseOnigurumaFindOptions?{ruleScanner:e.compileWhile(t,s),findOptions:p(n,r)}:{ruleScanner:e.compileWhileAG(t,s,n,r),findOptions:0}}function p(e,t){let s=0;return e||(s|=1),t||(s|=4),s}function h(e,t,s,a,r,o,i){if(0===o.length)return;const l=t.content,u=Math.min(o.length,i.length),p=[],h=i[0].end;for(let t=0;th)break;for(;p.length>0&&p[p.length-1].endPos<=d.start;)r.produceFromScopes(p[p.length-1].scopes,p[p.length-1].endPos),p.pop();if(p.length>0?r.produceFromScopes(p[p.length-1].scopes,d.start):r.produce(a,d.start),u.retokenizeCapturedWithRuleId){const t=u.getName(l,i),o=a.contentNameScopesList.pushAttributed(t,e),p=u.getContentName(l,i),h=o.pushAttributed(p,e),m=a.push(u.retokenizeCapturedWithRuleId,d.start,-1,!1,null,o,h),g=e.createOnigString(l.substring(0,d.end));c(e,g,s&&0===d.start,d.start,m,r,!1,0),n.disposeOnigString(g);continue}const g=u.getName(l,i);if(null!==g){const t=(p.length>0?p[p.length-1].scopes:a.contentNameScopesList).pushAttributed(g,e);p.push(new m(t,d.end))}}for(;p.length>0;)r.produceFromScopes(p[p.length-1].scopes,p[p.length-1].endPos),p.pop()}t._tokenizeString=c;class m{constructor(e,t){this.scopes=e,this.endPos=t}}t.LocalStackElement=m},974:(e,t)=>{function s(e,t){throw new Error("Near offset "+e.pos+": "+t+" ~~~"+e.source.substr(e.pos,50)+"~~~")}Object.defineProperty(t,"__esModule",{value:!0}),t.parseJSON=void 0,t.parseJSON=function(e,t,o){let i=new a(e),c=new n,l=0,u=null,p=[],h=[];function m(){p.push(l),h.push(u)}function d(){l=p.pop(),u=h.pop()}function g(e){s(i,e)}for(;r(i,c);){if(0===l){if(null!==u&&g("too many constructs in root"),3===c.type){u={},o&&(u.$vscodeTextmateLocation=c.toLocation(t)),m(),l=1;continue}if(2===c.type){u=[],m(),l=4;continue}g("unexpected token in root")}if(2===l){if(5===c.type){d();continue}if(7===c.type){l=3;continue}g("expected , or }")}if(1===l||3===l){if(1===l&&5===c.type){d();continue}if(1===c.type){let e=c.value;if(r(i,c)&&6===c.type||g("expected colon"),r(i,c)||g("expected value"),l=2,1===c.type){u[e]=c.value;continue}if(8===c.type){u[e]=null;continue}if(9===c.type){u[e]=!0;continue}if(10===c.type){u[e]=!1;continue}if(11===c.type){u[e]=parseFloat(c.value);continue}if(2===c.type){let t=[];u[e]=t,m(),l=4,u=t;continue}if(3===c.type){let s={};o&&(s.$vscodeTextmateLocation=c.toLocation(t)),u[e]=s,m(),l=1,u=s;continue}}g("unexpected token in dict")}if(5===l){if(4===c.type){d();continue}if(7===c.type){l=6;continue}g("expected , or ]")}if(4===l||6===l){if(4===l&&4===c.type){d();continue}if(l=5,1===c.type){u.push(c.value);continue}if(8===c.type){u.push(null);continue}if(9===c.type){u.push(!0);continue}if(10===c.type){u.push(!1);continue}if(11===c.type){u.push(parseFloat(c.value));continue}if(2===c.type){let e=[];u.push(e),m(),l=4,u=e;continue}if(3===c.type){let e={};o&&(e.$vscodeTextmateLocation=c.toLocation(t)),u.push(e),m(),l=1,u=e;continue}g("unexpected token in array")}g("unknown state")}return 0!==h.length&&g("unclosed constructs"),u};class a{constructor(e){this.source=e,this.pos=0,this.len=e.length,this.line=1,this.char=0}}class n{constructor(){this.value=null,this.type=0,this.offset=-1,this.len=-1,this.line=-1,this.char=-1}toLocation(e){return{filename:e,line:this.line,char:this.char}}}function r(e,t){t.value=null,t.type=0,t.offset=-1,t.len=-1,t.line=-1,t.char=-1;let a,n=e.source,r=e.pos,o=e.len,i=e.line,c=e.char;for(;;){if(r>=o)return!1;if(a=n.charCodeAt(r),32!==a&&9!==a&&13!==a){if(10!==a)break;r++,i++,c=0}else r++,c++}if(t.offset=r,t.line=i,t.char=c,34===a){for(t.type=1,r++,c++;;){if(r>=o)return!1;if(a=n.charCodeAt(r),r++,c++,92!==a){if(34===a)break}else r++,c++}t.value=n.substring(t.offset+1,r-1).replace(/\\u([0-9A-Fa-f]{4})/g,((e,t)=>String.fromCodePoint(parseInt(t,16)))).replace(/\\(.)/g,((t,a)=>{switch(a){case'"':return'"';case"\\":return"\\";case"/":return"/";case"b":return"\b";case"f":return"\f";case"n":return"\n";case"r":return"\r";case"t":return"\t";default:s(e,"invalid escape sequence")}throw new Error("unreachable")}))}else if(91===a)t.type=2,r++,c++;else if(123===a)t.type=3,r++,c++;else if(93===a)t.type=4,r++,c++;else if(125===a)t.type=5,r++,c++;else if(58===a)t.type=6,r++,c++;else if(44===a)t.type=7,r++,c++;else if(110===a){if(t.type=8,r++,c++,a=n.charCodeAt(r),117!==a)return!1;if(r++,c++,a=n.charCodeAt(r),108!==a)return!1;if(r++,c++,a=n.charCodeAt(r),108!==a)return!1;r++,c++}else if(116===a){if(t.type=9,r++,c++,a=n.charCodeAt(r),114!==a)return!1;if(r++,c++,a=n.charCodeAt(r),117!==a)return!1;if(r++,c++,a=n.charCodeAt(r),101!==a)return!1;r++,c++}else if(102===a){if(t.type=10,r++,c++,a=n.charCodeAt(r),97!==a)return!1;if(r++,c++,a=n.charCodeAt(r),108!==a)return!1;if(r++,c++,a=n.charCodeAt(r),115!==a)return!1;if(r++,c++,a=n.charCodeAt(r),101!==a)return!1;r++,c++}else for(t.type=11;;){if(r>=o)return!1;if(a=n.charCodeAt(r),!(46===a||a>=48&&a<=57||101===a||69===a||45===a||43===a))break;r++,c++}return t.len=r-t.offset,null===t.value&&(t.value=n.substr(t.offset,t.len)),e.pos=r,e.line=i,e.char=c,!0}},787:function(e,t,s){var a=this&&this.__createBinding||(Object.create?function(e,t,s,a){void 0===a&&(a=s),Object.defineProperty(e,a,{enumerable:!0,get:function(){return t[s]}})}:function(e,t,s,a){void 0===a&&(a=s),e[a]=t[s]}),n=this&&this.__exportStar||function(e,t){for(var s in e)"default"===s||Object.prototype.hasOwnProperty.call(t,s)||a(t,e,s)};Object.defineProperty(t,"__esModule",{value:!0}),t.parseRawGrammar=t.INITIAL=t.Registry=void 0;const r=s(391),o=s(50),i=s(652),c=s(583),l=s(965);n(s(44),t),t.Registry=class{constructor(e){this._options=e,this._syncRegistry=new i.SyncRegistry(c.Theme.createFromRawTheme(e.theme,e.colorMap),e.onigLib),this._ensureGrammarCache=new Map}dispose(){this._syncRegistry.dispose()}setTheme(e,t){this._syncRegistry.setTheme(c.Theme.createFromRawTheme(e,t))}getColorMap(){return this._syncRegistry.getColorMap()}loadGrammarWithEmbeddedLanguages(e,t,s){return this.loadGrammarWithConfiguration(e,t,{embeddedLanguages:s})}loadGrammarWithConfiguration(e,t,s){return this._loadGrammar(e,t,s.embeddedLanguages,s.tokenTypes,new r.BalancedBracketSelectors(s.balancedBracketSelectors||[],s.unbalancedBracketSelectors||[]))}loadGrammar(e){return this._loadGrammar(e,0,null,null,null)}async _loadGrammar(e,t,s,a,n){const r=new l.ScopeDependencyProcessor(this._syncRegistry,e);for(;r.Q.length>0;)await Promise.all(r.Q.map((e=>this._loadSingleGrammar(e.scopeName)))),r.processQueue();return this._grammarForScopeName(e,t,s,a,n)}async _loadSingleGrammar(e){return this._ensureGrammarCache.has(e)||this._ensureGrammarCache.set(e,this._doLoadSingleGrammar(e)),this._ensureGrammarCache.get(e)}async _doLoadSingleGrammar(e){const t=await this._options.loadGrammar(e);if(t){const s="function"==typeof this._options.getInjections?this._options.getInjections(e):void 0;this._syncRegistry.addGrammar(t,s)}}async addGrammar(e,t=[],s=0,a=null){return this._syncRegistry.addGrammar(e,t),await this._grammarForScopeName(e.scopeName,s,a)}_grammarForScopeName(e,t=0,s=null,a=null,n=null){return this._syncRegistry.grammarForScopeName(e,t,s,a,n)}},t.INITIAL=r.StateStack.NULL,t.parseRawGrammar=o.parseRawGrammar},736:(e,t)=>{function s(e){return!!e&&!!e.match(/[\w\.:]+/)}Object.defineProperty(t,"__esModule",{value:!0}),t.createMatchers=void 0,t.createMatchers=function(e,t){const a=[],n=function(e){let t=/([LR]:|[\w\.:][\w\.:\-]*|[\,\|\-\(\)])/g,s=t.exec(e);return{next:()=>{if(!s)return null;const a=s[0];return s=t.exec(e),a}}}(e);let r=n.next();for(;null!==r;){let e=0;if(2===r.length&&":"===r.charAt(1)){switch(r.charAt(0)){case"R":e=1;break;case"L":e=-1;break;default:console.log(`Unknown priority ${r} in scope selector`)}r=n.next()}let t=i();if(a.push({matcher:t,priority:e}),","!==r)break;r=n.next()}return a;function o(){if("-"===r){r=n.next();const e=o();return t=>!!e&&!e(t)}if("("===r){r=n.next();const e=function(){const e=[];let t=i();for(;t&&(e.push(t),"|"===r||","===r);){do{r=n.next()}while("|"===r||","===r);t=i()}return t=>e.some((e=>e(t)))}();return")"===r&&(r=n.next()),e}if(s(r)){const e=[];do{e.push(r),r=n.next()}while(s(r));return s=>t(e,s)}return null}function i(){const e=[];let t=o();for(;t;)e.push(t),t=o();return t=>e.every((e=>e(t)))}}},44:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.disposeOnigString=void 0,t.disposeOnigString=function(e){"function"==typeof e.dispose&&e.dispose()}},50:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.parseRawGrammar=void 0;const a=s(69),n=s(350),r=s(974);t.parseRawGrammar=function(e,t=null){return null!==t&&/\.json$/.test(t)?(s=e,o=t,n.DebugFlags.InDebugMode?r.parseJSON(s,o,!0):JSON.parse(s)):function(e,t){return n.DebugFlags.InDebugMode?a.parseWithLocation(e,t,"$vscodeTextmateLocation"):a.parsePLIST(e)}(e,t);var s,o}},69:(e,t)=>{function s(e,t,s){const a=e.length;let n=0,r=1,o=0;function i(t){if(null===s)n+=t;else for(;t>0;)10===e.charCodeAt(n)?(n++,r++,o=0):(n++,o++),t--}function c(e){null===s?n=e:i(e-n)}function l(){for(;n0&&65279===e.charCodeAt(0)&&(n=1);let m=0,d=null,g=[],f=[],y=null;function b(e,t){g.push(m),f.push(d),m=e,d=t}function _(){if(0===g.length)return N("illegal state stack");m=g.pop(),d=f.pop()}function N(t){throw new Error("Near offset "+n+": "+t+" ~~~"+e.substr(n,50)+"~~~")}const k=function(){if(null===y)return N("missing ");let e={};null!==s&&(e[s]={filename:t,line:r,char:o}),d[y]=e,y=null,b(1,e)},L=function(){if(null===y)return N("missing ");let e=[];d[y]=e,y=null,b(2,e)},S=function(){let e={};null!==s&&(e[s]={filename:t,line:r,char:o}),d.push(e),b(1,e)},P=function(){let e=[];d.push(e),b(2,e)};function v(){if(1!==m)return N("unexpected ");_()}function j(){return 1===m||2!==m?N("unexpected "):void _()}function w(e){if(1===m){if(null===y)return N("missing ");d[y]=e,y=null}else 2===m?d.push(e):d=e}function C(e){if(isNaN(e))return N("cannot parse float");if(1===m){if(null===y)return N("missing ");d[y]=e,y=null}else 2===m?d.push(e):d=e}function x(e){if(isNaN(e))return N("cannot parse integer");if(1===m){if(null===y)return N("missing ");d[y]=e,y=null}else 2===m?d.push(e):d=e}function A(e){if(1===m){if(null===y)return N("missing ");d[y]=e,y=null}else 2===m?d.push(e):d=e}function T(e){if(1===m){if(null===y)return N("missing ");d[y]=e,y=null}else 2===m?d.push(e):d=e}function R(e){if(1===m){if(null===y)return N("missing ");d[y]=e,y=null}else 2===m?d.push(e):d=e}function I(){let e=h(">"),t=!1;return 47===e.charCodeAt(e.length-1)&&(t=!0,e=e.substring(0,e.length-1)),{name:e.trim(),isClosed:t}}function E(e){if(e.isClosed)return"";let t=h(""),t.replace(/&#([0-9]+);/g,(function(e,t){return String.fromCodePoint(parseInt(t,10))})).replace(/&#x([0-9a-f]+);/g,(function(e,t){return String.fromCodePoint(parseInt(t,16))})).replace(/&|<|>|"|'/g,(function(e){switch(e){case"&":return"&";case"<":return"<";case">":return">";case""":return'"';case"'":return"'"}return e}))}for(;n=a));){const c=e.charCodeAt(n);if(i(1),60!==c)return N("expected <");if(n>=a)return N("unexpected end of input");const h=e.charCodeAt(n);if(63===h){i(1),p("?>");continue}if(33===h){if(i(1),u("--")){p("--\x3e");continue}p(">");continue}if(47===h){if(i(1),l(),u("plist")){p(">");continue}if(u("dict")){p(">"),v();continue}if(u("array")){p(">"),j();continue}return N("unexpected closed tag")}let g=I();switch(g.name){case"dict":1===m?k():2===m?S():(d={},null!==s&&(d[s]={filename:t,line:r,char:o}),b(1,d)),g.isClosed&&v();continue;case"array":1===m?L():2===m?P():(d=[],b(2,d)),g.isClosed&&j();continue;case"key":O=E(g),1!==m?N("unexpected "):null!==y?N("too many "):y=O;continue;case"string":w(E(g));continue;case"real":C(parseFloat(E(g)));continue;case"integer":x(parseInt(E(g),10));continue;case"date":A(new Date(E(g)));continue;case"data":T(E(g));continue;case"true":E(g),R(!0);continue;case"false":E(g),R(!1);continue}if(!/^plist/.test(g.name))return N("unexpected opened tag "+g.name)}var O;return d}Object.defineProperty(t,"__esModule",{value:!0}),t.parsePLIST=t.parseWithLocation=void 0,t.parseWithLocation=function(e,t,a){return s(e,t,a)},t.parsePLIST=function(e){return s(e,null,null)}},652:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.SyncRegistry=void 0;const a=s(391);t.SyncRegistry=class{constructor(e,t){this._onigLibPromise=t,this._grammars=new Map,this._rawGrammars=new Map,this._injectionGrammars=new Map,this._theme=e}dispose(){for(const e of this._grammars.values())e.dispose()}setTheme(e){this._theme=e}getColorMap(){return this._theme.getColorMap()}addGrammar(e,t){this._rawGrammars.set(e.scopeName,e),t&&this._injectionGrammars.set(e.scopeName,t)}lookup(e){return this._rawGrammars.get(e)}injections(e){return this._injectionGrammars.get(e)}getDefaults(){return this._theme.getDefaults()}themeMatch(e){return this._theme.match(e)}async grammarForScopeName(e,t,s,n,r){if(!this._grammars.has(e)){let o=this._rawGrammars.get(e);if(!o)return null;this._grammars.set(e,a.createGrammar(e,o,t,s,n,r,this,await this._onigLibPromise))}return this._grammars.get(e)}}},792:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CompiledRule=t.RegExpSourceList=t.RegExpSource=t.RuleFactory=t.BeginWhileRule=t.BeginEndRule=t.IncludeOnlyRule=t.MatchRule=t.CaptureRule=t.Rule=t.ruleIdToNumber=t.ruleIdFromNumber=t.whileRuleId=t.endRuleId=void 0;const a=s(878),n=s(965),r=/\\(\d+)/,o=/\\(\d+)/g;t.endRuleId=-1,t.whileRuleId=-2,t.ruleIdFromNumber=function(e){return e},t.ruleIdToNumber=function(e){return e};class i{constructor(e,t,s,n){this.$location=e,this.id=t,this._name=s||null,this._nameIsCapturing=a.RegexSource.hasCaptures(this._name),this._contentName=n||null,this._contentNameIsCapturing=a.RegexSource.hasCaptures(this._contentName)}get debugName(){const e=this.$location?`${a.basename(this.$location.filename)}:${this.$location.line}`:"unknown";return`${this.constructor.name}#${this.id} @ ${e}`}getName(e,t){return this._nameIsCapturing&&null!==this._name&&null!==e&&null!==t?a.RegexSource.replaceCaptures(this._name,e,t):this._name}getContentName(e,t){return this._contentNameIsCapturing&&null!==this._contentName?a.RegexSource.replaceCaptures(this._contentName,e,t):this._contentName}}t.Rule=i;class c extends i{constructor(e,t,s,a,n){super(e,t,s,a),this.retokenizeCapturedWithRuleId=n}dispose(){}collectPatterns(e,t){throw new Error("Not supported!")}compile(e,t){throw new Error("Not supported!")}compileAG(e,t,s,a){throw new Error("Not supported!")}}t.CaptureRule=c;class l extends i{constructor(e,t,s,a,n){super(e,t,s,null),this._match=new d(a,this.id),this.captures=n,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}get debugMatchRegExp(){return`${this._match.source}`}collectPatterns(e,t){t.push(this._match)}compile(e,t){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,t,s,a){return this._getCachedCompiledPatterns(e).compileAG(e,s,a)}_getCachedCompiledPatterns(e){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new g,this.collectPatterns(e,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}}t.MatchRule=l;class u extends i{constructor(e,t,s,a,n){super(e,t,s,a),this.patterns=n.patterns,this.hasMissingPatterns=n.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}collectPatterns(e,t){for(const s of this.patterns)e.getRule(s).collectPatterns(e,t)}compile(e,t){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,t,s,a){return this._getCachedCompiledPatterns(e).compileAG(e,s,a)}_getCachedCompiledPatterns(e){return this._cachedCompiledPatterns||(this._cachedCompiledPatterns=new g,this.collectPatterns(e,this._cachedCompiledPatterns)),this._cachedCompiledPatterns}}t.IncludeOnlyRule=u;class p extends i{constructor(e,t,s,a,n,r,o,i,c,l){super(e,t,s,a),this._begin=new d(n,this.id),this.beginCaptures=r,this._end=new d(o||"￿",-1),this.endHasBackReferences=this._end.hasBackReferences,this.endCaptures=i,this.applyEndPatternLast=c||!1,this.patterns=l.patterns,this.hasMissingPatterns=l.hasMissingPatterns,this._cachedCompiledPatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugEndRegExp(){return`${this._end.source}`}getEndWithResolvedBackReferences(e,t){return this._end.resolveBackReferences(e,t)}collectPatterns(e,t){t.push(this._begin)}compile(e,t){return this._getCachedCompiledPatterns(e,t).compile(e)}compileAG(e,t,s,a){return this._getCachedCompiledPatterns(e,t).compileAG(e,s,a)}_getCachedCompiledPatterns(e,t){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new g;for(const t of this.patterns)e.getRule(t).collectPatterns(e,this._cachedCompiledPatterns);this.applyEndPatternLast?this._cachedCompiledPatterns.push(this._end.hasBackReferences?this._end.clone():this._end):this._cachedCompiledPatterns.unshift(this._end.hasBackReferences?this._end.clone():this._end)}return this._end.hasBackReferences&&(this.applyEndPatternLast?this._cachedCompiledPatterns.setSource(this._cachedCompiledPatterns.length()-1,t):this._cachedCompiledPatterns.setSource(0,t)),this._cachedCompiledPatterns}}t.BeginEndRule=p;class h extends i{constructor(e,s,a,n,r,o,i,c,l){super(e,s,a,n),this._begin=new d(r,this.id),this.beginCaptures=o,this.whileCaptures=c,this._while=new d(i,t.whileRuleId),this.whileHasBackReferences=this._while.hasBackReferences,this.patterns=l.patterns,this.hasMissingPatterns=l.hasMissingPatterns,this._cachedCompiledPatterns=null,this._cachedCompiledWhilePatterns=null}dispose(){this._cachedCompiledPatterns&&(this._cachedCompiledPatterns.dispose(),this._cachedCompiledPatterns=null),this._cachedCompiledWhilePatterns&&(this._cachedCompiledWhilePatterns.dispose(),this._cachedCompiledWhilePatterns=null)}get debugBeginRegExp(){return`${this._begin.source}`}get debugWhileRegExp(){return`${this._while.source}`}getWhileWithResolvedBackReferences(e,t){return this._while.resolveBackReferences(e,t)}collectPatterns(e,t){t.push(this._begin)}compile(e,t){return this._getCachedCompiledPatterns(e).compile(e)}compileAG(e,t,s,a){return this._getCachedCompiledPatterns(e).compileAG(e,s,a)}_getCachedCompiledPatterns(e){if(!this._cachedCompiledPatterns){this._cachedCompiledPatterns=new g;for(const t of this.patterns)e.getRule(t).collectPatterns(e,this._cachedCompiledPatterns)}return this._cachedCompiledPatterns}compileWhile(e,t){return this._getCachedCompiledWhilePatterns(e,t).compile(e)}compileWhileAG(e,t,s,a){return this._getCachedCompiledWhilePatterns(e,t).compileAG(e,s,a)}_getCachedCompiledWhilePatterns(e,t){return this._cachedCompiledWhilePatterns||(this._cachedCompiledWhilePatterns=new g,this._cachedCompiledWhilePatterns.push(this._while.hasBackReferences?this._while.clone():this._while)),this._while.hasBackReferences&&this._cachedCompiledWhilePatterns.setSource(0,t||"￿"),this._cachedCompiledWhilePatterns}}t.BeginWhileRule=h;class m{static createCaptureRule(e,t,s,a,n){return e.registerRule((e=>new c(t,e,s,a,n)))}static getCompiledRuleId(e,t,s){return e.id||t.registerRule((n=>{if(e.id=n,e.match)return new l(e.$vscodeTextmateLocation,e.id,e.name,e.match,m._compileCaptures(e.captures,t,s));if(void 0===e.begin){e.repository&&(s=a.mergeObjects({},s,e.repository));let n=e.patterns;return void 0===n&&e.include&&(n=[{include:e.include}]),new u(e.$vscodeTextmateLocation,e.id,e.name,e.contentName,m._compilePatterns(n,t,s))}return e.while?new h(e.$vscodeTextmateLocation,e.id,e.name,e.contentName,e.begin,m._compileCaptures(e.beginCaptures||e.captures,t,s),e.while,m._compileCaptures(e.whileCaptures||e.captures,t,s),m._compilePatterns(e.patterns,t,s)):new p(e.$vscodeTextmateLocation,e.id,e.name,e.contentName,e.begin,m._compileCaptures(e.beginCaptures||e.captures,t,s),e.end,m._compileCaptures(e.endCaptures||e.captures,t,s),e.applyEndPatternLast,m._compilePatterns(e.patterns,t,s))})),e.id}static _compileCaptures(e,t,s){let a=[];if(e){let n=0;for(const t in e){if("$vscodeTextmateLocation"===t)continue;const e=parseInt(t,10);e>n&&(n=e)}for(let e=0;e<=n;e++)a[e]=null;for(const n in e){if("$vscodeTextmateLocation"===n)continue;const r=parseInt(n,10);let o=0;e[n].patterns&&(o=m.getCompiledRuleId(e[n],t,s)),a[r]=m.createCaptureRule(t,e[n].$vscodeTextmateLocation,e[n].name,e[n].contentName,o)}}return a}static _compilePatterns(e,t,s){let a=[];if(e)for(let r=0,o=e.length;re.substring(t.start,t.end)));return o.lastIndex=0,this.source.replace(o,((e,t)=>a.escapeRegExpCharacters(s[parseInt(t,10)]||"")))}_buildAnchorCache(){let e,t,s,a,n=[],r=[],o=[],i=[];for(e=0,t=this.source.length;ee.source));this._cached=new f(e,t,this._items.map((e=>e.ruleId)))}return this._cached}compileAG(e,t,s){return this._hasAnchors?t?s?(this._anchorCache.A1_G1||(this._anchorCache.A1_G1=this._resolveAnchors(e,t,s)),this._anchorCache.A1_G1):(this._anchorCache.A1_G0||(this._anchorCache.A1_G0=this._resolveAnchors(e,t,s)),this._anchorCache.A1_G0):s?(this._anchorCache.A0_G1||(this._anchorCache.A0_G1=this._resolveAnchors(e,t,s)),this._anchorCache.A0_G1):(this._anchorCache.A0_G0||(this._anchorCache.A0_G0=this._resolveAnchors(e,t,s)),this._anchorCache.A0_G0):this.compile(e)}_resolveAnchors(e,t,s){let a=this._items.map((e=>e.resolveAnchors(t,s)));return new f(e,a,this._items.map((e=>e.ruleId)))}}t.RegExpSourceList=g;class f{constructor(e,t,s){this.regExps=t,this.rules=s,this.scanner=e.createOnigScanner(t)}dispose(){"function"==typeof this.scanner.dispose&&this.scanner.dispose()}toString(){const e=[];for(let t=0,s=this.rules.length;t{Object.defineProperty(t,"__esModule",{value:!0}),t.ThemeTrieElement=t.ThemeTrieElementRule=t.ColorMap=t.fontStyleToString=t.ParsedThemeRule=t.parseTheme=t.StyleAttributes=t.ScopeStack=t.Theme=void 0;const a=s(878);class n{constructor(e,t,s){this._colorMap=e,this._defaults=t,this._root=s,this._cachedMatchRoot=new a.CachedFn((e=>this._root.match(e)))}static createFromRawTheme(e,t){return this.createFromParsedTheme(c(e),t)}static createFromParsedTheme(e,t){return function(e,t){e.sort(((e,t)=>{let s=a.strcmp(e.scope,t.scope);return 0!==s?s:(s=a.strArrCmp(e.parentScopes,t.parentScopes),0!==s?s:e.index-t.index)}));let s=0,r="#000000",o="#ffffff";for(;e.length>=1&&""===e[0].scope;){let t=e.shift();-1!==t.fontStyle&&(s=t.fontStyle),null!==t.foreground&&(r=t.foreground),null!==t.background&&(o=t.background)}let c=new u(t),l=new i(s,c.getId(r),c.getId(o)),m=new h(new p(0,null,-1,0,0),[]);for(let t=0,s=e.length;tfunction(e,t){if(null===t)return!0;let s=0,a=t[s];for(;e;){if(o(e.scopeName,a)){if(s++,s===t.length)return!0;a=t[s]}e=e.parent}return!1}(e.parent,t.parentScopes)));return s?new i(s.fontStyle,s.foreground,s.background):null}}t.Theme=n;class r{constructor(e,t){this.parent=e,this.scopeName=t}static from(...e){let t=null;for(let s=0;s1&&(p=a.slice(0,a.length-1),p.reverse()),s[n++]=new l(o,p,e,i,c,u)}}return s}t.StyleAttributes=i,t.parseTheme=c;class l{constructor(e,t,s,a,n,r){this.scope=e,this.parentScopes=t,this.index=s,this.fontStyle=a,this.foreground=n,this.background=r}}t.ParsedThemeRule=l,t.fontStyleToString=function(e){if(-1===e)return"not set";let t="";return 1&e&&(t+="italic "),2&e&&(t+="bold "),4&e&&(t+="underline "),8&e&&(t+="strikethrough "),""===t&&(t="none"),t.trim()};class u{constructor(e){if(this._lastColorId=0,this._id2color=[],this._color2id=Object.create(null),Array.isArray(e)){this._isFrozen=!0;for(let t=0,s=e.length;te?console.log("how did this happen?"):this.scopeDepth=e,-1!==t&&(this.fontStyle=t),0!==s&&(this.foreground=s),0!==a&&(this.background=a)}}t.ThemeTrieElementRule=p;class h{constructor(e,t=[],s={}){this._mainRule=e,this._children=s,this._rulesWithParentScopes=t}static _sortBySpecificity(e){return 1===e.length||e.sort(this._cmpBySpecificity),e}static _cmpBySpecificity(e,t){if(e.scopeDepth===t.scopeDepth){const s=e.parentScopes,a=t.parentScopes;let n=null===s?0:s.length,r=null===a?0:a.length;if(n===r)for(let e=0;e{function s(e){return Array.isArray(e)?function(e){let t=[];for(let a=0,n=e.length;a{for(let s in t)e[s]=t[s]})),e},t.basename=function e(t){const s=~t.lastIndexOf("/")||~t.lastIndexOf("\\");return 0===s?t:~s==t.length-1?e(t.substring(0,t.length-1)):t.substr(1+~s)};let a=/\$(\d+)|\${(\d+):\/(downcase|upcase)}/g;function n(e,t){return et?1:0}t.RegexSource=class{static hasCaptures(e){return null!==e&&(a.lastIndex=0,a.test(e))}static replaceCaptures(e,t,s){return e.replace(a,((e,a,n,r)=>{let o=s[parseInt(a||n,10)];if(!o)return e;{let e=t.substring(o.start,o.end);for(;"."===e[0];)e=e.substring(1);switch(r){case"downcase":return e.toLowerCase();case"upcase":return e.toUpperCase();default:return e}}}))}},t.strcmp=n,t.strArrCmp=function(e,t){if(null===e&&null===t)return 0;if(!e)return-1;if(!t)return 1;let s=e.length,a=t.length;if(s===a){for(let a=0;a=0&&r>=0;)$(t[n],a[r])&&n--,r--;return-1===n}function W(e,t,s){let a=[],n=0;for(let r=0,o=e.settings.length;re.trim()));else{if(!Array.isArray(i.scope))continue;o=i.scope}for(let e=0,r=o.length;eNumber.parseInt(e)));if(3!==t.length||t.some((e=>Number.isNaN(e))))return;return{type:"rgb",rgb:t}}if("5"===t){const t=e.shift();if(t)return{type:"table",index:Number(t)}}}function K(e){const t=[];for(;e.length>0;){const s=e.shift();if(!s)continue;const a=Number.parseInt(s);if(!Number.isNaN(a))if(0===a)t.push({type:"resetAll"});else if(a<=9){H[a]&&t.push({type:"setDecoration",value:H[a]})}else if(a<=29){const e=H[a-20];e&&t.push({type:"resetDecoration",value:e})}else if(a<=37)t.push({type:"setForegroundColor",value:{type:"named",name:q[a-30]}});else if(38===a){const s=V(e);s&&t.push({type:"setForegroundColor",value:s})}else if(39===a)t.push({type:"resetForegroundColor"});else if(a<=47)t.push({type:"setBackgroundColor",value:{type:"named",name:q[a-40]}});else if(48===a){const s=V(e);s&&t.push({type:"setBackgroundColor",value:s})}else 49===a?t.push({type:"resetBackgroundColor"}):a>=90&&a<=97?t.push({type:"setForegroundColor",value:{type:"named",name:q[a-90+8]}}):a>=100&&a<=107&&t.push({type:"setBackgroundColor",value:{type:"named",name:q[a-100+8]}})}return t}var J={black:"#000000",red:"#bb0000",green:"#00bb00",yellow:"#bbbb00",blue:"#0000bb",magenta:"#ff00ff",cyan:"#00bbbb",white:"#eeeeee",brightBlack:"#555555",brightRed:"#ff5555",brightGreen:"#00ff00",brightYellow:"#ffff55",brightBlue:"#5555ff",brightMagenta:"#ff55ff",brightCyan:"#55ffff",brightWhite:"#ffffff"};function Q(e=J){function t(t){return e[t]}function s(e){return`#${e.map((e=>Math.max(0,Math.min(e,255)).toString(16).padStart(2,"0"))).join("")}`}let a;function n(e){return function(){if(a)return a;a=[];for(let e=0;e[t,e.colors[`terminal.ansi${t[0].toUpperCase()}${t.substring(1)}`]])))),r=function(){let e=null,t=null,s=new Set;return{parse(a){const n=[];let r=0;do{const o=z(a,r),i=o.sequence?a.substring(r,o.startPosition):a.substring(r);if(i.length>0&&n.push({value:i,foreground:e,background:t,decorations:new Set(s)}),o.sequence){const a=K(o.sequence);for(const n of a)"resetAll"===n.type?(e=null,t=null,s.clear()):"resetForegroundColor"===n.type?e=null:"resetBackgroundColor"===n.type?t=null:"resetDecoration"===n.type&&s.delete(n.value);for(const n of a)"setForegroundColor"===n.type?e=n.value:"setBackgroundColor"===n.type?t=n.value:"setDecoration"===n.type&&s.add(n.value)}r=o.position}while(rr.parse(t).map((t=>{let a;a=t.decorations.has("reverse")?t.background?n.value(t.background):e.bg:t.foreground?n.value(t.foreground):e.fg,t.decorations.has("dim")&&(a=function(e){const t=e.match(/#([0-9a-f]{3})([0-9a-f]{3})?([0-9a-f]{2})?/);if(t){if(t[3]){const e=Math.round(Number.parseInt(t[3],16)/2).toString(16).padStart(2,"0");return`#${t[1]}${t[2]}${e}`}return t[2]?`#${t[1]}${t[2]}80`:`#${Array.from(t[1]).map((e=>`${e}${e}`)).join("")}80`}const s=e.match(/var\((--shiki-color-ansi-[\w-]+)\)/);if(s)return`var(${s[1]}-dim)`;return e}(a));let r=s.None;return t.decorations.has("bold")&&(r|=s.Bold),t.decorations.has("italic")&&(r|=s.Italic),t.decorations.has("underline")&&(r|=s.Underline),{content:t.value,color:a,fontStyle:r}}))))}const Y={pre:({className:e,style:t,children:s})=>`
${s}
`,code:({children:e})=>`${e}`,line:({className:e,children:t})=>`${t}`,token:({style:e,children:t})=>`${t}`};function Z(e,t={}){const a=t.bg||"#fff",n=function(e,t){const s=new Map;for(const a of e){const e=t(a);s.has(e)?s.get(e).push(a):s.set(e,[a])}return s}(t.lineOptions??[],(e=>e.line)),r=t.elements||{};function o(e="",t={},s){const a=r[e]||Y[e];return a?(s=s.filter(Boolean),a({...t,children:"code"===e?s.join("\n"):s.join("")})):""}return o("pre",{className:"shiki "+(t.themeName||""),style:`background-color: ${a}`},[t.langId?`
${t.langId}
`:"",o("code",{},e.map(((a,r)=>{const i=r+1,c=function(e){const t=new Set(["line"]);for(const s of e)for(const e of s.classes??[])t.add(e);return Array.from(t)}(n.get(i)??[]).join(" ");return o("line",{className:c,lines:e,line:a,index:r},a.map(((e,n)=>{const r=[`color: ${e.color||t.fg}`];return e.fontStyle&s.Italic&&r.push("font-style: italic"),e.fontStyle&s.Bold&&r.push("font-weight: bold"),e.fontStyle&s.Underline&&r.push("text-decoration: underline"),o("token",{style:r.join("; "),tokens:a,token:e,index:n},[(i=e.content,i.replace(/[&<>"']/g,(e=>ee[e])))]);var i})))})))])}const ee={"&":"&","<":"<",">":">",'"':""","'":"'"};class te extends F.Registry{constructor(e){super(e),this._resolver=e,this.themesPath="themes/",this._resolvedThemes={},this._resolvedGrammars={},this._langGraph=new Map,this._langMap=t.reduce(((e,t)=>(e[t.id]=t,e)),{})}getTheme(e){return"string"==typeof e?this._resolvedThemes[e]:e}async loadTheme(e){return"string"==typeof e?(this._resolvedThemes[e]||(this._resolvedThemes[e]=await R(`${this.themesPath}${e}.json`)),this._resolvedThemes[e]):((e=I(e)).name&&(this._resolvedThemes[e.name]=e),e)}async loadThemes(e){return await Promise.all(e.map((e=>this.loadTheme(e))))}getLoadedThemes(){return Object.keys(this._resolvedThemes)}getGrammar(e){return this._resolvedGrammars[e]}async loadLanguage(e){const t=e.embeddedLangs?.reduce((async(e,t,s)=>{if(!this.getLoadedLanguages().includes(t)&&this._resolver.getLangRegistration(t))return await this._resolver.loadGrammar(this._resolver.getLangRegistration(t).scopeName),e[this._resolver.getLangRegistration(t).scopeName]=s+2,e}),{}),s={embeddedLanguages:t,balancedBracketSelectors:e.balancedBracketSelectors||["*"],unbalancedBracketSelectors:e.unbalancedBracketSelectors||[]},a=await this.loadGrammarWithConfiguration(e.scopeName,1,s);this._resolvedGrammars[e.id]=a,e.aliases&&e.aliases.forEach((e=>{this._resolvedGrammars[e]=a}))}async loadLanguages(e){for(const t of e)this.resolveEmbeddedLanguages(t);const t=Array.from(this._langGraph.values());for(const e of t)this._resolver.addLanguage(e);for(const e of t)await this.loadLanguage(e)}getLoadedLanguages(){return Object.keys(this._resolvedGrammars)}resolveEmbeddedLanguages(e){if(this._langGraph.has(e.id)||this._langGraph.set(e.id,e),e.embeddedLangs)for(const t of e.embeddedLangs)this._langGraph.set(t,this._langMap[t])}}function se(e){return"string"==typeof e?t.find((t=>t.id===e||t.aliases?.includes(e))):e}e.BUNDLED_LANGUAGES=t,e.BUNDLED_THEMES=["css-variables","dark-plus","dracula-soft","dracula","github-dark-dimmed","github-dark","github-light","hc_light","light-plus","material-theme-darker","material-theme-lighter","material-theme-ocean","material-theme-palenight","material-theme","min-dark","min-light","monokai","nord","one-dark-pro","poimandres","rose-pine-dawn","rose-pine-moon","rose-pine","slack-dark","slack-ochin","solarized-dark","solarized-light","vitesse-dark","vitesse-light"],e.FontStyle=s,e.getHighlighter=async function(e){const{_languages:s,_themes:n,_wasmPath:r}=function(e){let s=t,a=e.themes||[],n=e.paths?.wasm?e.paths.wasm.endsWith("/")?e.paths.wasm:e.paths.wasm+"/":w;return e.langs&&(s=e.langs.map(se)),e.theme&&a.unshift(e.theme),a.length||(a=["nord"]),{_languages:s,_themes:a,_wasmPath:n}}(e),c=new B(async function(e){if(!x){let t;if(P)t="string"==typeof j?d.loadWASM({data:await fetch(A(i(...o(e),"onig.wasm")))}):d.loadWASM({data:j});else{const e=require("path").join(require.resolve("vscode-oniguruma"),"../onig.wasm"),s=require("fs").readFileSync(e).buffer;t=d.loadWASM(s)}x=t.then((()=>({createOnigScanner:e=>d.createOnigScanner(e),createOnigString:e=>d.createOnigString(e)})))}return x}(r),"vscode-oniguruma"),l=new te(c);e.paths?.themes&&(l.themesPath=e.paths.themes.endsWith("/")?e.paths.themes:e.paths.themes+"/"),e.paths?.languages&&(c.languagesPath=e.paths.languages.endsWith("/")?e.paths.languages:e.paths.languages+"/");const u=(await l.loadThemes(n))[0];let p;await l.loadLanguages(s);let h=function(){const e={"#000001":"var(--shiki-color-text)","#000002":"var(--shiki-color-background)","#000004":"var(--shiki-token-constant)","#000005":"var(--shiki-token-string)","#000006":"var(--shiki-token-comment)","#000007":"var(--shiki-token-keyword)","#000008":"var(--shiki-token-parameter)","#000009":"var(--shiki-token-function)","#000010":"var(--shiki-token-string-expression)","#000011":"var(--shiki-token-punctuation)","#000012":"var(--shiki-token-link)"};for(let t=0;t{e.colors[t]=h[s]||s})),t.forEach(((e,s)=>{t[s]=h[e]||e}))}(t,s),{_theme:t,_colorMap:s}}function g(e,t="text",s,n={includeExplanation:!0}){if(function(e){return!e||["plaintext","txt","text"].includes(e)}(t)){return[...e.split(/\r\n|\r|\n/).map((e=>[{content:e}]))]}const{_grammar:r}=function(e){const t=l.getGrammar(e);if(!t)throw Error(`No language registration for ${e}`);return{_grammar:t}}(t),{_theme:o,_colorMap:i}=m(s);return function(e,t,s,n,r){let o=s.split(/\r\n|\r|\n/),i=F.INITIAL,c=[],l=[];for(let s=0,u=o.length;sm(e)._theme,loadTheme:async function(e){await l.loadTheme(e)},loadLanguage:async function(e){const t=se(e);c.addLanguage(t),await l.loadLanguage(t)},getBackgroundColor:function(e){const{_theme:t}=m(e);return t.bg},getForegroundColor:function(e){const{_theme:t}=m(e);return t.fg},getLoadedThemes:function(){return l.getLoadedThemes()},getLoadedLanguages:function(){return l.getLoadedLanguages()},setColorReplacements:function(e){h=e}}},e.loadTheme=R,e.renderToHtml=Z,e.setCDN=function(e){v=e.endsWith("/")?e:e+"/"},e.setOnigasmWASM=function(e){C(e)},e.setWasm=C,e.toShikiTheme=I}(this.shiki=this.shiki||{}); diff --git a/docs/shiki/dist/languages/abap.tmLanguage-23f03be6.mjs b/docs/shiki/dist/languages/abap.tmLanguage-23f03be6.mjs new file mode 100644 index 00000000..37e97a4d --- /dev/null +++ b/docs/shiki/dist/languages/abap.tmLanguage-23f03be6.mjs @@ -0,0 +1,3 @@ +var abap_tmLanguage = {fileTypes:["abap","ABAP"],foldingStartMarker:"/\\*\\*|\\{\\s*$",foldingStopMarker:"\\*\\*/|^\\s*\\}",keyEquivalent:"^~A",name:"abap",patterns:[{captures:{"1":{name:"punctuation.definition.comment.abap"}},match:"^\\*.*\\n?",name:"comment.line.full.abap"},{captures:{"1":{name:"punctuation.definition.comment.abap"}},match:"\".*\\n?",name:"comment.line.partial.abap"},{match:"(?|=>))([a-z_\\/][a-z_0-9\\/]*)(?=\\s+(?:=|\\+=|-=|\\*=|\\/=|&&=|&=)\\s+)",name:"variable.other.abap"},{match:"\\b[0-9]+(\\b|\\.|,)",name:"constant.numeric.abap"},{match:"(?ix)(^|\\s+)((PUBLIC|PRIVATE|PROTECTED)\\sSECTION)(?=\\s+|:|\\.)",name:"storage.modifier.class.abap"},{begin:"(?]*)+(?=\\s+|\\.)",captures:{"1":{name:"storage.modifier.method.abap"}}},{begin:"(?=[A-Za-z_][A-Za-z0-9_]*)",end:"(?![A-Za-z0-9_])",patterns:[{include:"#generic_names"}]}]},{begin:"(?ix)^\\s*(INTERFACE)\\s([a-z_\\/][a-z_0-9\\/]*)",beginCaptures:{"1":{name:"storage.type.block.abap"},"2":{name:"entity.name.type.abap"}},end:"\\s*\\.\\s*\\n?",patterns:[{match:"(?ix)(?<=^|\\s)(DEFERRED|PUBLIC)(?=\\s+|\\.)",name:"storage.modifier.method.abap"}]},{begin:"(?ix)^\\s*(FORM)\\s([a-z_\\/][a-z_0-9\\/\\-\\?]*)",beginCaptures:{"1":{name:"storage.type.block.abap"},"2":{name:"entity.name.type.abap"}},end:"\\s*\\.\\s*\\n?",patterns:[{match:"(?ix)(?<=^|\\s)(USING|TABLES|CHANGING|RAISING|IMPLEMENTATION|DEFINITION)(?=\\s+|\\.)",name:"storage.modifier.form.abap"},{include:"#abaptypes"},{include:"#keywords_followed_by_braces"}]},{match:"(?i)(endclass|endmethod|endform|endinterface)",name:"storage.type.block.end.abap"},{match:"(?i)(<[A-Za-z_][A-Za-z0-9_]*>)",name:"variable.other.field.symbol.abap"},{include:"#keywords"},{include:"#abap_constants"},{include:"#reserved_names"},{include:"#operators"},{include:"#builtin_functions"},{include:"#abaptypes"},{include:"#system_fields"},{include:"#sql_functions"},{include:"#sql_types"}],repository:{abap_constants:{match:"(?ix)(?<=\\s)(initial|null|space|abap_true|abap_false|abap_undefined|table_line|\n\t\t\t\t%_final|%_hints|%_predefined|col_background|col_group|col_heading|col_key|col_negative|col_normal|col_positive|col_total|\n\t\t\t\tadabas|as400|db2|db6|hdb|oracle|sybase|mssqlnt|pos_low|pos_high)(?=\\s|\\.|,)",name:"constant.language.abap"},reserved_names:{match:"(?ix)(?<=\\s)(me|super)(?=\\s|\\.|,|->)",name:"constant.language.abap"},abaptypes:{patterns:[{match:"(?ix)\\s(abap_bool|string|xstring|any|clike|csequence|numeric|xsequence|decfloat|decfloat16|decfloat34|utclong|simple|int8|c|n|i|p|f|d|t|x)(?=\\s|\\.|,)",name:"support.type.abap"},{match:"(?ix)\\s(TYPE|REF|TO|LIKE|LINE|OF|STRUCTURE|STANDARD|SORTED|HASHED|INDEX|TABLE|WITH|UNIQUE|NON-UNIQUE|SECONDARY|DEFAULT|KEY)(?=\\s|\\.|,)",name:"keyword.control.simple.abap"}]},arithmetic_operator:{match:"(?i)(?<=\\s)(\\+|\\-|\\*|\\*\\*|\\/|%|DIV|MOD|BIT-AND|BIT-OR|BIT-XOR|BIT-NOT)(?=\\s)",name:"keyword.control.simple.abap"},comparison_operator:{match:"(?i)(?<=\\s)(<|>|<\\=|>\\=|\\=|<>|eq|ne|lt|le|gt|ge|cs|cp|co|cn|ca|na|ns|np|byte-co|byte-cn|byte-ca|byte-na|byte-cs|byte-ns|o|z|m)(?=\\s)",name:"keyword.control.simple.abap"},control_keywords:{match:"(?ix)(^|\\s)(\n\t at|case|catch|continue|do|elseif|else|endat|endcase|endcatch|enddo|endif|\n\t endloop|endon|endtry|endwhile|if|loop|on|raise|try|while)(?=\\s|\\.|:)",name:"keyword.control.flow.abap"},generic_names:{match:"[A-Za-z_][A-Za-z0-9_]*"},keywords:{patterns:[{include:"#main_keywords"},{include:"#text_symbols"},{include:"#control_keywords"},{include:"#keywords_followed_by_braces"}]},logical_operator:{match:"(?i)(?<=\\s)(not|or|and)(?=\\s)",name:"keyword.control.simple.abap"},system_fields:{match:"(?ix)\\b(sy)-(abcde|batch|binpt|calld|callr|colno|cpage|cprog|cucol|curow|datar|datlo|datum|dayst|dbcnt|dbnam|dbsysc|dyngr|dynnr|fdayw|fdpos|host|index|langu|ldbpg|lilli|linct|linno|linsz|lisel|listi|loopc|lsind|macol|mandt|marow|modno|msgid|msgli|msgno|msgty|msgv[1-4]|opsysc|pagno|pfkey|repid|saprl|scols|slset|spono|srows|staco|staro|stepl|subrc|sysid|tabix|tcode|tfill|timlo|title|tleng|tvar[0-9]|tzone|ucomm|uline|uname|uzeit|vline|wtitl|zonlo)(?=\\.|\\s)",captures:{"1":{name:"variable.language.abap"},"2":{name:"variable.language.abap"}}},main_keywords:{match:"(?ix)(?<=^|\\s)(\nabap-source|\nabstract|\naccept|\naccepting|\naccess|\naccording|\naction|\nactivation|\nactual|\nadd|\nadd-corresponding|\nadjacent|\nalias|\naliases|\nalign|\nall|\nallocate|\nalpha|\namdp|\nanalysis|\nanalyzer|\nappend|\nappending|\napplication|\narchive|\narea|\narithmetic|\nas|\nascending|\nassert|\nassign|\nassigned|\nassigning|\nassociation|\nasynchronous|\nat|\nattributes|\nauthority|\nauthority-check|\nauthorization|\nauto|\nback|\nbackground|\nbackward|\nbadi|\nbase|\nbefore|\nbegin|\nbehavior|\nbetween|\nbinary|\nbit|\nblank|\nblanks|\nblock|\nblocks|\nbound|\nboundaries|\nbounds|\nboxed|\nbreak|\nbreak-point|\nbuffer|\nby|\nbypassing|\nbyte|\nbyte-order|\ncall|\ncalling|\ncast|\ncasting|\ncds|\ncenter|\ncentered|\nchange|\nchanging|\nchannels|\nchar-to-hex|\ncharacter|\ncheck|\ncheckbox|\ncid|\ncircular|\nclass|\nclass-data|\nclass-events|\nclass-method|\nclass-methods|\nclass-pool|\ncleanup|\nclear|\nclient|\nclients|\nclock|\nclone|\nclose|\ncnt|\ncode|\ncollect|\ncolor|\ncolumn|\ncomment|\ncomments|\ncommit|\ncommon|\ncommunication|\ncomparing|\ncomponent|\ncomponents|\ncompression|\ncompute|\nconcatenate|\ncond|\ncondense|\ncondition|\nconnection|\nconstant|\nconstants|\ncontext|\ncontexts|\ncontrol|\ncontrols|\nconv|\nconversion|\nconvert|\ncopy|\ncorresponding|\ncount|\ncountry|\ncover|\ncreate|\ncurrency|\ncurrent|\ncursor|\ncustomer-function|\ndata|\ndatabase|\ndatainfo|\ndataset|\ndate|\ndaylight|\nddl|\ndeallocate|\ndecimals|\ndeclarations|\ndeep|\ndefault|\ndeferred|\ndefine|\ndelete|\ndeleting|\ndemand|\ndescending|\ndescribe|\ndestination|\ndetail|\ndetermine|\ndialog|\ndid|\ndirectory|\ndiscarding|\ndisplay|\ndisplay-mode|\ndistance|\ndistinct|\ndivide|\ndivide-corresponding|\ndummy|\nduplicate|\nduplicates|\nduration|\nduring|\ndynpro|\nedit|\neditor-call|\nempty|\nenabled|\nenabling|\nencoding|\nend|\nend-enhancement-section|\nend-of-definition|\nend-of-page|\nend-of-selection|\nend-test-injection|\nend-test-seam|\nendenhancement|\nendexec|\nendfunction|\nendian|\nending|\nendmodule|\nendprovide|\nendselect|\nendwith|\nengineering|\nenhancement|\nenhancement-point|\nenhancement-section|\nenhancements|\nentities|\nentity|\nentries|\nentry|\nenum|\nenvironment|\nequiv|\nerrors|\nescape|\nescaping|\nevent|\nevents|\nexact|\nexcept|\nexception|\nexception-table|\nexceptions|\nexcluding|\nexec|\nexecute|\nexists|\nexit|\nexit-command|\nexpanding|\nexplicit|\nexponent|\nexport|\nexporting|\nextended|\nextension|\nextract|\nfail|\nfailed|\nfeatures|\nfetch|\nfield|\nfield-groups|\nfield-symbols|\nfields|\nfile|\nfill|\nfilter|\nfilters|\nfinal|\nfind|\nfirst|\nfirst-line|\nfixed-point|\nflush|\nfollowing|\nfor|\nformat|\nforward|\nfound|\nframe|\nframes|\nfree|\nfrom|\nfull|\nfunction|\nfunction-pool|\ngenerate|\nget|\ngiving|\ngraph|\ngroup|\ngroups|\nhandle|\nhandler|\nhashed|\nhaving|\nheader|\nheaders|\nheading|\nhelp-id|\nhelp-request|\nhide|\nhint|\nhold|\nhotspot|\nicon|\nid|\nidentification|\nidentifier|\nignore|\nignoring|\nimmediately|\nimplemented|\nimplicit|\nimport|\nimporting|\nin|\ninactive|\nincl|\ninclude|\nincludes|\nincrement|\nindex|\nindex-line|\nindicators|\ninfotypes|\ninheriting|\ninit|\ninitial|\ninitialization|\ninner|\ninput|\ninsert|\ninstance|\ninstances|\nintensified|\ninterface|\ninterface-pool|\ninterfaces|\ninternal|\nintervals|\ninto|\ninverse|\ninverted-date|\nis|\niso|\njob|\njoin|\nkeep|\nkeeping|\nkernel|\nkey|\nkeys|\nkeywords|\nkind|\nlanguage|\nlast|\nlate|\nlayout|\nleading|\nleave|\nleft|\nleft-justified|\nleftplus|\nleftspace|\nlegacy|\nlength|\nlet|\nlevel|\nlevels|\nlike|\nline|\nline-count|\nline-selection|\nline-size|\nlinefeed|\nlines|\nlink|\nlist|\nlist-processing|\nlistbox|\nload|\nload-of-program|\nlocal|\nlocale|\nlock|\nlocks|\nlog-point|\nlogical|\nlower|\nmapped|\nmapping|\nmargin|\nmark|\nmask|\nmatch|\nmatchcode|\nmaximum|\nmembers|\nmemory|\nmesh|\nmessage|\nmessage-id|\nmessages|\nmessaging|\nmethod|\nmethods|\nmode|\nmodif|\nmodifier|\nmodify|\nmodule|\nmove|\nmove-corresponding|\nmultiply|\nmultiply-corresponding|\nname|\nnametab|\nnative|\nnested|\nnesting|\nnew|\nnew-line|\nnew-page|\nnew-section|\nnext|\nno|\nno-display|\nno-extension|\nno-gap|\nno-gaps|\nno-grouping|\nno-heading|\nno-scrolling|\nno-sign|\nno-title|\nno-zero|\nnodes|\nnon-unicode|\nnon-unique|\nnumber|\nobject|\nobjects|\nobjmgr|\nobligatory|\noccurence|\noccurences|\noccurrence|\noccurrences|\noccurs|\nof|\noffset|\non|\nonly|\nopen|\noptional|\noption|\noptions|\norder|\nothers|\nout|\nouter|\noutput|\noutput-length|\noverflow|\noverlay|\npack|\npackage|\npad|\npadding|\npage|\nparameter|\nparameter-table|\nparameters|\npart|\npartially|\npcre|\nperform|\nperforming|\npermissions|\npf-status|\nplaces|\npool|\nposition|\npragmas|\npreceeding|\nprecompiled|\npreferred|\npreserving|\nprimary|\nprint|\nprint-control|\nprivate|\nprivileged|\nprocedure|\nprogram|\nproperty|\nprotected|\nprovide|\npush|\npushbutton|\nput|\nquery|\nqueue-only|\nqueueonly|\nquickinfo|\nradiobutton|\nraising|\nrange|\nranges|\nread|\nread-only|\nreceive|\nreceived|\nreceiving|\nredefinition|\nreduce|\nref|\nreference|\nrefresh|\nregex|\nreject|\nrenaming|\nreplace|\nreplacement|\nreplacing|\nreport|\nreported|\nrequest|\nrequested|\nrequired|\nreserve|\nreset|\nresolution|\nrespecting|\nresponse|\nrestore|\nresult|\nresults|\nresumable|\nresume|\nretry|\nreturn|\nreturning|\nright|\nright-justified|\nrightplus|\nrightspace|\nrollback|\nrows|\nrp-provide-from-last|\nrun|\nsap|\nsap-spool|\nsave|\nsaving|\nscale_preserving|\nscale_preserving_scientific|\nscan|\nscientific|\nscientific_with_leading_zero|\nscreen|\nscroll|\nscroll-boundary|\nscrolling|\nsearch|\nseconds|\nsection|\nselect|\nselect-options|\nselection|\nselection-screen|\nselection-set|\nselection-sets|\nselection-table|\nselections|\nsend|\nseparate|\nseparated|\nsession|\nset|\nshared|\nshift|\nshortdump|\nshortdump-id|\nsign|\nsign_as_postfix|\nsimple|\nsimulation|\nsingle|\nsize|\nskip|\nskipping|\nsmart|\nsome|\nsort|\nsortable|\nsorted|\nsource|\nspecified|\nsplit|\nspool|\nspots|\nsql|\nstable|\nstamp|\nstandard|\nstart-of-selection|\nstarting|\nstate|\nstatement|\nstatements|\nstatic|\nstatics|\nstatusinfo|\nstep|\nstep-loop|\nstop|\nstructure|\nstructures|\nstyle|\nsubkey|\nsubmatches|\nsubmit|\nsubroutine|\nsubscreen|\nsubstring|\nsubtract|\nsubtract-corresponding|\nsuffix|\nsum|\nsummary|\nsupplied|\nsupply|\nsuppress|\nswitch|\nsymbol|\nsyntax-check|\nsyntax-trace|\nsystem-call|\nsystem-exceptions|\ntab|\ntabbed|\ntable|\ntables|\ntableview|\ntabstrip|\ntarget|\ntask|\ntasks|\ntest|\ntest-injection|\ntest-seam|\ntesting|\ntext|\ntextpool|\nthen|\nthrow|\ntime|\ntimes|\ntimestamp|\ntimezone|\ntitle|\ntitlebar|\nto|\ntokens|\ntop-lines|\ntop-of-page|\ntrace-file|\ntrace-table|\ntrailing|\ntransaction|\ntransfer|\ntransformation|\ntranslate|\ntransporting|\ntrmac|\ntruncate|\ntruncation|\ntype|\ntype-pool|\ntype-pools|\ntypes|\nuline|\nunassign|\nunbounded|\nunder|\nunicode|\nunion|\nunique|\nunit|\nunix|\nunpack|\nuntil|\nunwind|\nup|\nupdate|\nupper|\nuser|\nuser-command|\nusing|\nutf-8|\nuuid|\nvalid|\nvalidate|\nvalue|\nvalue-request|\nvalues|\nvary|\nvarying|\nversion|\nvia|\nvisible|\nwait|\nwhen|\nwhere|\nwidth|\nwindow|\nwindows|\nwith|\nwith-heading|\nwith-title|\nwithout|\nword|\nwork|\nworkspace|\nwrite|\nxml|\nxsd|\nyes|\nzero|\nzone\n\t\t \t)(?=\\s|\\.|:|,)",name:"keyword.control.simple.abap"},text_symbols:{match:"(?ix)(?<=^|\\s)(text)-([A-Z0-9]{1,3})(?=\\s|\\.|:|,)",captures:{"1":{name:"keyword.control.simple.abap"},"2":{name:"constant.numeric.abap"}}},keywords_followed_by_braces:{match:"(?ix)\\b(data|value|field-symbol|final|reference|resumable)\\((?)\\)",captures:{"1":{name:"keyword.control.simple.abap"},"2":{name:"variable.other.abap"}}},operators:{patterns:[{include:"#other_operator"},{include:"#arithmetic_operator"},{include:"#comparison_operator"},{include:"#logical_operator"}]},other_operator:{match:"(?<=\\s)(&&|&|\\?=|\\+=|-=|\\/=|\\*=|&&=|&=)(?=\\s)",name:"keyword.control.simple.abap"},builtin_functions:{match:"(?ix)(?<=\\s)(abs|sign|ceil|floor|trunc|frac|acos|asin|atan|cos|sin|tan|cosh|sinh|tanh|exp|log|log10|sqrt|strlen|xstrlen|charlen|lines|numofchar|dbmaxlen|round|rescale|nmax|nmin|cmax|cmin|boolc|boolx|xsdbool|contains|contains_any_of|contains_any_not_of|matches|line_exists|ipow|char_off|count|count_any_of|count_any_not_of|distance|condense|concat_lines_of|escape|find|find_end|find_any_of|find_any_not_of|insert|match|repeat|replace|reverse|segment|shift_left|shift_right|substring|substring_after|substring_from|substring_before|substring_to|to_upper|to_lower|to_mixed|from_mixed|translate|bit-set|line_index)(?=\\()",name:"entity.name.function.builtin.abap"},sql_types:{match:"(?ix)(?<=\\s)(char|clnt|cuky|curr|datn|dats|dec|decfloat16|decfloat34|fltp|int1|int2|int4|int8|lang|numc|quan|raw|sstring|timn|tims|unit|utclong)(?=\\s|\\(|\\))",name:"entity.name.type.sql.abap"},sql_functions:{match:"(?ix)(?<=\\s)(\nabap_system_timezone|\nabap_user_timezone|\nabs|\nadd_days|\nadd_months|\nallow_precision_loss|\nas_geo_json|\navg|\nbintohex|\ncast|\nceil|\ncoalesce|\nconcat_with_space|\nconcat|\ncorr_spearman|\ncorr|\ncount|\ncurrency_conversion|\ndatn_add_days|\ndatn_add_months|\ndatn_days_between|\ndats_add_days|\ndats_add_months|\ndats_days_between|\ndats_from_datn|\ndats_is_valid|\ndats_tims_to_tstmp|\ndats_to_datn|\ndayname|\ndays_between|\ndense_rank|\ndivision|\ndiv|\nextract_day|\nextract_hour|\nextract_minute|\nextract_month|\nextract_second|\nextract_year|\nfirst_value|\nfloor|\ngrouping|\nhextobin|\ninitcap|\ninstr|\nis_valid|\nlag|\nlast_value|\nlead|\nleft|\nlength|\nlike_regexpr|\nlocate_regexpr_after|\nlocate_regexpr|\nlocate|\nlower|\nlpad|\nltrim|\nmax|\nmedian|\nmin|\nmod|\nmonthname|\nntile|\noccurrences_regexpr|\nover|\nproduct|\nrank|\nreplace_regexpr|\nreplace|\nrigth|\nround|\nrow_number|\nrpad|\nrtrim|\nstddev|\nstring_agg|\nsubstring_regexpr|\nsubstring|\nsum|\ntims_from_timn|\ntims_is_valid|\ntims_to_timn|\nto_blob|\nto_clob|\ntstmp_add_seconds|\ntstmp_current_utctimestamp|\ntstmp_is_valid|\ntstmp_seconds_between|\ntstmp_to_dats|\ntstmp_to_dst|\ntstmp_to_tims|\ntstmpl_from_utcl|\ntstmpl_to_utcl|\nunit_conversion|\nupper|\nutcl_add_seconds|\nutcl_current|\nutcl_seconds_between|\nuuid|\nvar|\nweekday\n )(?=\\()",name:"entity.name.function.sql.abap"}},scopeName:"source.abap",uuid:"0357FFB4-EFFF-4DE9-8371-B0F9C8DF1B21"}; + +export { abap_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/actionscript-3.tmLanguage-cef213c4.mjs b/docs/shiki/dist/languages/actionscript-3.tmLanguage-cef213c4.mjs new file mode 100644 index 00000000..c7bdf8f6 --- /dev/null +++ b/docs/shiki/dist/languages/actionscript-3.tmLanguage-cef213c4.mjs @@ -0,0 +1,3 @@ +var actionscript3_tmLanguage = {fileTypes:["as"],name:"actionscript-3",patterns:[{include:"#comments"},{include:"#package"},{include:"#class"},{include:"#interface"},{include:"#namespace_declaration"},{include:"#import"},{include:"#mxml"},{include:"#strings"},{include:"#regexp"},{include:"#variable_declaration"},{include:"#numbers"},{include:"#primitive_types"},{include:"#primitive_error_types"},{include:"#dynamic_type"},{include:"#primitive_functions"},{include:"#language_constants"},{include:"#language_variables"},{include:"#guess_type"},{include:"#guess_constant"},{include:"#other_operators"},{include:"#arithmetic_operators"},{include:"#logical_operators"},{include:"#array_access_operators"},{include:"#vector_creation_operators"},{include:"#control_keywords"},{include:"#other_keywords"},{include:"#use_namespace"},{include:"#functions"}],repository:{arithmetic_operators:{match:"(\\+|\\-|/|%|(?)?)|(\\*)))?(?:\\s*(=))?",end:",|(?=\\))",beginCaptures:{"1":{name:"keyword.operator.actionscript.3"},"2":{name:"variable.parameter.actionscript.3"},"3":{name:"keyword.operator.actionscript.3"},"4":{name:"support.type.actionscript.3"},"5":{name:"support.type.actionscript.3"},"6":{name:"support.type.actionscript.3"},"7":{name:"keyword.operator.actionscript.3"}},patterns:[{include:"#strings"},{include:"#numbers"},{include:"#language_constants"},{include:"#comments"},{include:"#primitive_types"},{include:"#primitive_error_types"},{include:"#dynamic_type"},{include:"#guess_type"},{include:"#guess_constant"}]},functions:{begin:"(?x) \\b(function)\\b (?:\\s+\\b(get|set)\\b\\s+)? \\s* ([a-zA-Z0-9_\\$]+\\b)?",beginCaptures:{"1":{name:"storage.type.function.actionscript.3"},"2":{name:"storage.modifier.actionscript.3"},"3":{name:"entity.name.function.actionscript.3"}},end:"($|;|(?=\\{))",name:"meta.function.actionscript.3",patterns:[{include:"#function_arguments"},{include:"#return_type"},{include:"#comments"}]},guess_constant:{captures:{"1":{name:"constant.other.actionscript.3"}},comment:"Following convention, let's guess that anything in all caps/digits (possible underscores) is a constant.",match:"\\b([A-Z\\$][A-Z0-9_]+)\\b"},guess_type:{captures:{"1":{name:"support.type.actionscript.3"}},comment:"Following convention, let's guess that any word starting with one or more capital letters (that contains at least some lower-case letters so that constants aren't detected) refers to a class/type. May be fully-qualified.",match:"\\b((?:[A-Za-z0-9_\\$]+\\.)*[A-Z][A-Z0-9]*[a-z]+[A-Za-z0-9_\\$]*)\\b"},"implements":{captures:{"1":{name:"keyword.other.actionscript.3"},"2":{name:"entity.other.inherited-class.actionscript.3"},"3":{name:"entity.other.inherited-class.actionscript.3"}},match:"(?x) \\b(implements)\\b \\s+ ([\\.\\w]+) \\s* (?:, \\s* ([\\.\\w]+))* \\s*",name:"meta.implements.actionscript.3"},"import":{captures:{"2":{name:"keyword.control.import.actionscript.3"},"3":{name:"support.type.actionscript.3"}},match:"(?x) (^|\\s+|;) \\b(import)\\b \\s+ ([A-Za-z0-9\\$_\\.]+(?:\\.\\*)?) \\s* (?=;|$)",name:"meta.import.actionscript.3"},"interface":{begin:"(?x) (^|\\s+|;) (\\b(internal|public)\\b\\s+)? (?=\\binterface\\b)",beginCaptures:{"3":{name:"storage.modifier.actionscript.3"}},end:"\\}",name:"meta.interface.actionscript.3",patterns:[{include:"#interface_declaration"},{include:"#metadata"},{include:"#functions"},{include:"#comments"}]},interface_declaration:{begin:"(?x) \\b(interface)\\b \\s+ ([\\.\\w]+)",beginCaptures:{"1":{name:"storage.type.interface.actionscript.3"},"2":{name:"entity.name.class.actionscript.3"}},end:"\\{",name:"meta.class_declaration.actionscript.3",patterns:[{include:"#extends"},{include:"#comments"}]},language_constants:{match:"\\b(true|false|null|Infinity|-Infinity|NaN|undefined)\\b",name:"constant.language.actionscript.3"},language_variables:{match:"\\b(super|this|arguments)\\b",name:"variable.language.actionscript.3"},logical_operators:{match:"(&|<|~|\\||>|\\^|!|\\?)",name:"keyword.operator.actionscript.3"},metadata_info:{begin:"\\(",end:"\\)",patterns:[{include:"#strings"},{captures:{"1":{name:"variable.parameter.actionscript.3"},"2":{name:"keyword.operator.actionscript.3"}},match:"(\\w+)\\s*(=)"}]},method:{begin:"(?x) (^|\\s+) ((\\w+)\\s+)? ((\\w+)\\s+)? ((\\w+)\\s+)? ((\\w+)\\s+)? (?=\\bfunction\\b)",beginCaptures:{"3":{name:"storage.modifier.actionscript.3"},"5":{name:"storage.modifier.actionscript.3"},"7":{name:"storage.modifier.actionscript.3"},"8":{name:"storage.modifier.actionscript.3"}},end:"(?<=(;|\\}))",name:"meta.method.actionscript.3",patterns:[{include:"#functions"},{include:"#code_block"}]},mxml:{begin:"",name:"meta.cdata.actionscript.3",patterns:[{include:"#comments"},{include:"#import"},{include:"#metadata"},{include:"#class"},{include:"#namespace_declaration"},{include:"#use_namespace"},{include:"#class_declaration"},{include:"#method"},{include:"#comments"},{include:"#strings"},{include:"#regexp"},{include:"#numbers"},{include:"#primitive_types"},{include:"#primitive_error_types"},{include:"#dynamic_type"},{include:"#primitive_functions"},{include:"#language_constants"},{include:"#language_variables"},{include:"#other_keywords"},{include:"#guess_type"},{include:"#guess_constant"},{include:"#other_operators"},{include:"#arithmetic_operators"},{include:"#array_access_operators"},{include:"#vector_creation_operators"},{include:"#variable_declaration"}]},numbers:{match:"\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f)?\\b",name:"constant.numeric.actionscript.3"},object_literal:{begin:"\\{",end:"\\}",name:"meta.object_literal.actionscript.3",patterns:[{include:"#object_literal"},{include:"#comments"},{include:"#strings"},{include:"#regexp"},{include:"#numbers"},{include:"#primitive_types"},{include:"#primitive_error_types"},{include:"#dynamic_type"},{include:"#primitive_functions"},{include:"#language_constants"},{include:"#language_variables"},{include:"#guess_type"},{include:"#guess_constant"},{include:"#array_access_operators"},{include:"#vector_creation_operators"},{include:"#functions"}]},other_keywords:{match:"\\b(as|delete|in|instanceof|is|native|new|to|typeof)\\b",name:"keyword.other.actionscript.3"},other_operators:{match:"(\\.|=)",name:"keyword.operator.actionscript.3"},"package":{begin:"(^|\\s+)(package)\\b",beginCaptures:{"2":{name:"keyword.other.actionscript.3"}},end:"\\}",name:"meta.package.actionscript.3",patterns:[{include:"#package_name"},{include:"#variable_declaration"},{include:"#method"},{include:"#comments"},{include:"#return_type"},{include:"#import"},{include:"#use_namespace"},{include:"#strings"},{include:"#numbers"},{include:"#language_constants"},{include:"#metadata"},{include:"#class"},{include:"#interface"},{include:"#namespace_declaration"}]},package_name:{begin:"(?<=package)\\s+([\\w\\._]*)\\b",end:"\\{",name:"meta.package_name.actionscript.3"},primitive_types:{captures:{"1":{name:"support.class.builtin.actionscript.3"}},match:"\\b(Array|Boolean|Class|Date|Function|int|JSON|Math|Namespace|Number|Object|QName|RegExp|String|uint|Vector|XML|XMLList|\\*(?<=a))\\b"},primitive_error_types:{captures:{"1":{name:"support.class.error.actionscript.3"}},match:"\\b((Argument|Definition|Eval|Internal|Range|Reference|Security|Syntax|Type|URI|Verify)?Error)\\b"},primitive_functions:{captures:{"1":{name:"support.function.actionscript.3"}},match:"\\b(decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|escape|isFinite|isNaN|isXMLName|parseFloat|parseInt|trace|unescape)(?=\\s*\\()"},regexp:{begin:"(?<=[=(:,\\[]|^|return|&&|\\|\\||!)\\s*(/)(?![/*+{}?])",end:"$|(/)[igm]*",name:"string.regex.actionscript.3",patterns:[{match:"\\\\.",name:"constant.character.escape.actionscript.3"},{match:"\\[(\\\\\\]|[^\\]])*\\]",name:"constant.character.class.actionscript.3"}]},return_type:{captures:{"1":{name:"keyword.operator.actionscript.3"},"2":{name:"support.type.actionscript.3"},"3":{name:"support.type.actionscript.3"},"4":{name:"support.type.actionscript.3"}},match:"(\\:)\\s*(?:([A-Za-z\\$][A-Za-z0-9_\\$]+(?:\\.[A-Za-z\\$][A-Za-z0-9_\\$]+)*)(?:\\.<([A-Za-z\\$][A-Za-z0-9_\\$]+(?:\\.[A-Za-z\\$][A-Za-z0-9_\\$]+)*)>)?)|(\\*)"},strings:{patterns:[{begin:"\"",end:"\"",name:"string.quoted.double.actionscript.3",patterns:[{include:"#escapes"}]},{begin:"'",end:"'",name:"string.quoted.single.actionscript.3",patterns:[{include:"#escapes"}]}]},metadata:{begin:"\\[\\s*\\b(\\w+)\\b",beginCaptures:{"1":{name:"keyword.other.actionscript.3"}},end:"\\]",name:"meta.metadata_info.actionscript.3",patterns:[{include:"#metadata_info"}]},use_namespace:{captures:{"2":{name:"keyword.other.actionscript.3"},"3":{name:"keyword.other.actionscript.3"},"4":{name:"storage.modifier.actionscript.3"}},match:"(?x) (^|\\s+|;) (use\\s+)? (namespace) \\s+ (\\w+) \\s* (;|$)"},variable_declaration:{captures:{"2":{name:"storage.modifier.actionscript.3"},"4":{name:"storage.modifier.actionscript.3"},"6":{name:"storage.modifier.actionscript.3"},"7":{name:"storage.modifier.actionscript.3"},"8":{name:"keyword.operator.actionscript.3"}},match:"(?x) ((static)\\s+)? ((\\w+)\\s+)? ((static)\\s+)? (const|var) \\s+ (?:[A-Za-z0-9_\\$]+)(?:\\s*(:))?",name:"meta.variable_declaration.actionscript.3"},vector_creation_operators:{match:"(<|>)",name:"keyword.operator.actionscript.3"}},scopeName:"source.actionscript.3",uuid:"aa6f75ba-ab10-466e-8c6f-28c69aca1e9d"}; + +export { actionscript3_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/ada.tmLanguage-c812cbb3.mjs b/docs/shiki/dist/languages/ada.tmLanguage-c812cbb3.mjs new file mode 100644 index 00000000..861b3411 --- /dev/null +++ b/docs/shiki/dist/languages/ada.tmLanguage-c812cbb3.mjs @@ -0,0 +1,3 @@ +var ada_tmLanguage = {$schema:"https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",name:"ada",patterns:[{include:"#library_unit"},{include:"#comment"},{include:"#use_clause"},{include:"#with_clause"},{include:"#pragma"},{include:"#keyword"}],repository:{abort_statement:{name:"meta.statement.abort.ada",begin:"(?i)\\babort\\b",end:";",beginCaptures:{"0":{name:"keyword.control.ada"}},endCaptures:{"0":{name:"punctuation.ada"}},patterns:[{name:"punctuation.ada",match:","},{name:"entity.name.task.ada",match:"\\b(\\w|\\d|\\.|_)+\\b"}]},accept_statement:{name:"meta.statement.accept.ada",begin:"(?i)\\b(accept)\\s+((?:\\w|\\d|\\.|_)+)\\b",end:"(?i)(?:\\b(end)\\s*(\\s\\2)?\\s*)?(;)",beginCaptures:{"1":{name:"keyword.control.ada"},"2":{name:"entity.name.accept.ada"}},endCaptures:{"1":{name:"keyword.control.ada"},"2":{name:"entity.name.accept.ada"},"3":{name:"punctuation.ada"}},patterns:[{begin:"(?i)\\bdo\\b",end:"(?i)\\b(?=end)\\b",beginCaptures:{"0":{name:"keyword.control.ada"}},patterns:[{include:"#statement"}]},{include:"#parameter_profile"}]},access_definition:{name:"meta.declaration.access.definition.ada",match:"(?i)(not\\s+null\\s+)?(access)\\s+(constant\\s+)?((?:\\w|\\d|\\.|_)+)\\b",captures:{"1":{name:"storage.visibility.ada"},"2":{name:"storage.visibility.ada"},"3":{name:"storage.modifier.ada"},"4":{name:"entity.name.type.ada"}}},access_type_definition:{name:"meta.declaration.type.definition.access.ada",begin:"(?i)\\b(not\\s+null\\s+)?(access)\\b",end:"(?i)(?=(with|;))",beginCaptures:{"1":{name:"storage.visibility.ada"},"2":{name:"storage.visibility.ada"}},patterns:[{name:"storage.visibility.ada",match:"(?i)\\ball\\b"},{name:"storage.modifier.ada",match:"(?i)\\bconstant\\b"},{include:"#subtype_mark"}]},actual_parameter_part:{begin:"\\(",end:"\\)",captures:{"0":{name:"punctuation.ada"}},patterns:[{name:"punctuation.ada",match:","},{include:"#parameter_association"}]},adding_operator:{name:"keyword.operator.adding.ada",match:"(\\+|-|\\&)"},array_aggregate:{name:"meta.definition.array.aggregate.ada",begin:"\\(",end:"\\)",captures:{"0":{name:"punctuation.ada"}},patterns:[{name:"punctuation.ada",match:","},{include:"#positional_array_aggregate"},{include:"#array_component_association"}]},array_component_association:{name:"meta.definition.array.aggregate.component.ada",match:"(?i)\\b([^(=>)]*)\\s*(=>)\\s*([^,\\)]+)",captures:{"1":{name:"variable.name.ada"},"2":{name:"keyword.other.ada"},"3":{patterns:[{name:"keyword.modifier.unknown.ada",match:"<>"},{include:"#expression"}]}}},array_dimensions:{name:"meta.declaration.type.definition.array.dimensions.ada",begin:"\\(",end:"\\)",captures:{"0":{name:"punctuation.ada"}},patterns:[{name:"punctuation.ada",match:","},{name:"storage.modifier.ada",match:"(?i)\\brange\\b"},{name:"keyword.modifier.unknown.ada",match:"<>"},{name:"keyword.ada",match:"\\.\\."},{include:"#expression"},{patterns:[{include:"#subtype_mark"}]}]},array_type_definition:{name:"meta.declaration.type.definition.array.ada",begin:"(?i)\\barray\\b",end:"(?i)(?=(with|;))",beginCaptures:{"0":{name:"storage.modifier.ada"}},patterns:[{include:"#array_dimensions"},{name:"storage.modifier.ada",match:"(?i)\\bof\\b"},{name:"storage.visibility.ada",match:"(?i)\\baliased\\b"},{include:"#access_definition"},{include:"#subtype_mark"}]},aspect_clause:{name:"meta.aspect.clause.ada",begin:"(?i)\\b(for)\\b",end:";",beginCaptures:{"1":{name:"keyword.ada"},"2":{patterns:[{include:"#subtype_mark"}]},"3":{name:"punctuation.ada"},"5":{name:"keyword.ada"}},endCaptures:{"0":{name:"punctuation.ada"}},patterns:[{begin:"(?i)\\buse\\b",end:"(?=;)",beginCaptures:{"0":{name:"keyword.ada"}},endCaptures:{"0":{name:"punctuation.ada"}},patterns:[{include:"#record_representation_clause"},{include:"#array_aggregate"},{include:"#expression"}]},{begin:"(?i)(?<=for)",end:"(?i)(?=use)",captures:{"0":{name:"keyword.ada"}},patterns:[{match:"((?:\\w|\\d|_)+)('((?:\\w|\\d|_)+))?",captures:{"1":{patterns:[{include:"#subtype_mark"}]},"2":{patterns:[{include:"#attribute"}]}}}]}]},aspect_definition:{name:"meta.aspect.definition.ada",begin:"=>",end:"(?i)(?=(,|;|\\bis\\b))",beginCaptures:{"0":{name:"keyword.other.ada"}},patterns:[{include:"#expression"}]},aspect_mark:{name:"meta.aspect.mark.ada",match:"(?i)\\b((?:\\w|\\d|\\.|_)+)(?:(')(class))?\\b",captures:{"1":{name:"keyword.control.directive.ada"},"2":{name:"punctuation.ada"},"3":{name:"entity.other.attribute-name.ada"}}},aspect_specification:{name:"meta.aspect.specification.ada",begin:"(?i)\\bwith\\b",end:"(?i)(?=(;|\\bis\\b))",beginCaptures:{"0":{name:"keyword.ada"}},patterns:[{name:"punctuation.ada",match:","},{match:"(?i)\\b(null)\\s+(record)\\b",captures:{"1":{name:"storage.modifier.ada"},"2":{name:"storage.modifier.ada"}}},{begin:"(?i)\\brecord\\b",end:"(?i)\\b(end)\\s+(record)\\b",beginCaptures:{"0":{name:"storage.modifier.ada"}},endCaptures:{"1":{name:"keyword.ada"},"2":{name:"storage.modifier.ada"}},patterns:[{include:"#component_item"}]},{match:"(?i)\\bprivate\\b",captures:{"0":{name:"storage.visibility.ada"}}},{include:"#aspect_definition"},{include:"#aspect_mark"},{include:"#comment"}]},assignment_statement:{name:"meta.statement.assignment.ada",begin:"\\b((?:\\w|\\d|\\.|_|\\(|\\)|\"|'|\\s)+)\\s*(:=)",end:";",beginCaptures:{"1":{patterns:[{match:"((?:\\w|\\d|\\.|_)+)",name:"variable.name.ada"},{begin:"\\(",end:"\\)",captures:{"0":{name:"punctuation.ada"}},patterns:[{include:"#expression"}]}]},"2":{name:"keyword.operator.new.ada"}},endCaptures:{"0":{name:"punctuation.ada"}},patterns:[{include:"#expression"},{include:"#comment"}]},attribute:{name:"meta.attribute.ada",match:"(')((?:\\w|\\d|_)+)\\b",captures:{"1":{name:"punctuation.ada"},"2":{name:"entity.other.attribute-name.ada"}}},based_literal:{name:"constant.numeric.ada",match:"(?i)(\\d(?:(_)?\\d)*#)[0-9a-f](?:(_)?[0-9a-f])*(?:(\\.)[0-9a-f](?:(_)?[0-9a-f])*)?(#)([eE](?:\\+|\\-)?\\d(?:_?\\d)*)?",captures:{"1":{name:"constant.numeric.base.ada"},"2":{name:"punctuation.ada"},"3":{name:"punctuation.ada"},"4":{name:"punctuation.radix-point.ada"},"5":{name:"punctuation.ada"},"6":{name:"constant.numeric.base.ada"},"7":{patterns:[{include:"#exponent_part"}]}}},basic_declarative_item:{patterns:[{include:"#basic_declaration"},{include:"#aspect_clause"},{include:"#use_clause"},{include:"#keyword"}]},basic_declaration:{patterns:[{include:"#type_declaration"},{include:"#subtype_declaration"},{include:"#exception_declaration"},{include:"#object_declaration"},{include:"#single_protected_declaration"},{include:"#single_task_declaration"},{include:"#subprogram_specification"},{include:"#package_declaration"},{include:"#pragma"},{include:"#comment"}]},block_statement:{name:"meta.statement.block.ada",begin:"(?i)\\bdeclare\\b",end:"(?i)\\b(end)(\\s+(?:\\w|\\d|_)+)?\\s*(;)",beginCaptures:{"0":{name:"keyword.ada"}},endCaptures:{"1":{name:"keyword.ada"},"2":{name:"entity.name.label.ada"},"3":{name:"punctuation.ada"}},patterns:[{begin:"(?i)(?<=declare)",end:"(?i)\\bbegin\\b",endCaptures:{"0":{name:"keyword.ada"}},patterns:[{include:"#body"},{include:"#basic_declarative_item"}]},{begin:"(?i)(?<=begin)",end:"(?i)(?=end)",patterns:[{include:"#statement"}]}]},body:{patterns:[{include:"#subprogram_body"},{include:"#package_body"},{include:"#task_body"},{include:"#protected_body"}]},case_statement:{name:"meta.statement.case.ada",begin:"(?i)\\bcase\\b",end:"(?i)\\b(end)\\s+(case)\\s*(;)",beginCaptures:{"0":{name:"keyword.control.ada"}},endCaptures:{"1":{name:"keyword.control.ada"},"2":{name:"keyword.control.ada"},"3":{name:"punctuation.ada"}},patterns:[{begin:"(?i)(?<=case)\\b",end:"(?i)\\bis\\b",endCaptures:{"0":{name:"keyword.control.ada"}},patterns:[{include:"#expression"}]},{name:"meta.statement.case.alternative.ada",begin:"(?i)\\bwhen\\b",end:"=>",beginCaptures:{"0":{name:"keyword.control.ada"}},endCaptures:{"0":{name:"punctuation.ada"}},patterns:[{name:"keyword.modifier.unknown.ada",match:"(?i)\\bothers\\b"},{name:"punctuation.ada",match:"\\|"},{include:"#expression"}]},{include:"#statement"}]},character_literal:{name:"string.quoted.single.ada",match:"'.'",captures:{"0":{patterns:[{name:"punctuation.definition.string.ada",match:"'"}]}}},comment:{patterns:[{include:"#preprocessor"},{include:"#comment-section"},{include:"#comment-doc"},{include:"#comment-line"}]},"comment-doc":{name:"comment.block.documentation.ada",match:"(--)\\s*(@)(\\w+)\\s+(.*)$",captures:{"1":{name:"comment.line.double-dash.ada"},"2":{name:"punctuation.definition.tag.ada"},"3":{name:"entity.name.tag.ada"},"4":{name:"comment.line.double-dash.ada"}}},"comment-line":{name:"comment.line.double-dash.ada",match:"--.*$"},"comment-section":{name:"comment.line.double-dash.ada",match:"--\\s*([^-].*?[^-])\\s*--\\s*$",captures:{"1":{name:"entity.name.section.ada"}}},component_clause:{name:"meta.aspect.clause.record.representation.component.ada",begin:"(?i)\\b((?:\\w|\\d|_)+)\\b",beginCaptures:{"0":{name:"variable.name.ada"}},end:";",endCaptures:{"0":{name:"punctuation.ada"}},patterns:[{begin:"(?i)\\bat\\b",end:"(?i)\\b(?=range)\\b",beginCaptures:{"0":{name:"storage.modifier.ada"}},patterns:[{include:"#expression"}]},{include:"#range_constraint"}]},component_declaration:{name:"meta.declaration.type.definition.record.component.ada",begin:"(?i)\\b((?:\\w|\\d|_)+(?:\\s*,\\s*(?:\\w|\\d|_)+)?)\\s*(:)",end:";",beginCaptures:{"1":{patterns:[{name:"punctuation.ada",match:","},{name:"variable.name.ada",match:"\\b(\\w|\\d|_)+\\b"}]},"2":{name:"punctuation.ada"}},endCaptures:{"0":{name:"punctuation.ada"}},patterns:[{patterns:[{name:"keyword.operator.new.ada",match:":="},{include:"#expression"}]},{include:"#component_definition"}]},component_definition:{patterns:[{name:"storage.visibility.ada",match:"(?i)\\baliased\\b"},{name:"storage.modifier.ada",match:"(?i)\\brange\\b"},{name:"keyword.ada",match:"\\.\\."},{include:"#access_definition"},{include:"#subtype_mark"}]},component_item:{patterns:[{include:"#component_declaration"},{include:"#variant_part"},{include:"#comment"},{include:"#aspect_clause"},{match:"(?i)\\b(null)\\s*(;)",captures:{"1":{name:"keyword.ada"},"2":{name:"punctuation.ada"}}}]},composite_constraint:{name:"meta.declaration.constraint.composite.ada",begin:"\\(",end:"\\)",captures:{"0":{name:"punctuation.ada"}},patterns:[{name:"punctuation.ada",match:","},{name:"keyword.ada",match:"\\.\\."},{match:"(?i)\\b((?:\\w|\\d|_)+)\\s*(=>)\\s*([^,\\)])+\\b",captures:{"1":{name:"variable.name.ada"},"2":{name:"keyword.other.ada"},"3":{patterns:[{include:"#expression"}]}}},{include:"#expression"}]},decimal_literal:{name:"constant.numeric.ada",match:"\\d(?:(_)?\\d)*(?:(\\.)\\d(?:(_)?\\d)*)?([eE](?:\\+|\\-)?\\d(?:_?\\d)*)?",captures:{"1":{name:"punctuation.ada"},"2":{name:"punctuation.radix-point.ada"},"3":{name:"punctuation.ada"},"4":{patterns:[{include:"#exponent_part"}]}}},declarative_item:{patterns:[{include:"#body"},{include:"#basic_declarative_item"}]},delay_statement:{patterns:[{include:"#delay_until_statement"},{include:"#delay_relative_statement"}]},delay_until_statement:{name:"meta.statement.delay.until.ada",begin:"(?i)\\b(delay)\\s+(until)\\b",end:";",beginCaptures:{"1":{name:"keyword.control.ada"},"2":{name:"keyword.control.ada"}},endCaptures:{"0":{name:"punctuation.ada"}},patterns:[{include:"#expression"}]},delay_relative_statement:{begin:"(?i)\\b(delay)\\b",end:";",beginCaptures:{"1":{name:"keyword.control.ada"}},endCaptures:{"0":{name:"punctuation.ada"}},patterns:[{include:"#expression"}]},derived_type_definition:{name:"meta.declaration.type.definition.derived.ada",patterns:[{begin:"(?i)\\bnew\\b",beginCaptures:{"0":{name:"storage.modifier.ada"}},end:"(?i)(?=(\\bwith\\b|;))",patterns:[{name:"storage.modifier.ada",match:"(?i)\\band\\b"},{include:"#subtype_mark"}]},{name:"storage.modifier.ada",match:"(?i)\\b(abstract|and|limited|tagged)\\b"},{name:"storage.visibility.ada",match:"(?i)\\bprivate\\b"},{include:"#subtype_mark"}]},discriminant_specification:{begin:"(?i)\\b((?:\\w|\\d|_)+(?:\\s*,\\s*(?:\\w|\\d|_)+)?)\\s*(:)",end:"(?=(;|\\)))",beginCaptures:{"1":{patterns:[{name:"punctuation.ada",match:","},{name:"variable.name.ada",match:"\\b(\\w|\\d|_)+\\b"}]},"2":{name:"punctuation.ada"}},patterns:[{begin:":=",end:"(?=(;|\\)))",beginCaptures:{"0":{name:"keyword.operator.new.ada"}},patterns:[{include:"#expression"}]},{match:"(?i)(not\\s+null\\s+)?((?:\\w|\\d|\\.|_)+)\\b",captures:{"1":{name:"storage.visibility.ada"},"2":{patterns:[{include:"#subtype_mark"}]}}},{include:"#access_definition"}]},entry_body:{begin:"(?i)\\b(entry)\\s+((?:\\w|\\d|_)+)\\b",end:"(?i)\\b(end)\\s*(\\s\\2)\\s*(;)",beginCaptures:{"1":{name:"keyword.ada"},"2":{name:"entity.name.entry.ada"}},endCaptures:{"1":{name:"keyword.ada"},"2":{name:"entity.name.entry.ada"},"3":{name:"punctuation.ada"}},patterns:[{begin:"(?i)\\bis\\b",beginCaptures:{"0":{name:"keyword.ada"}},end:"(?i)\\b(?=begin)\\b",patterns:[{include:"#declarative_item"}]},{begin:"(?i)\\bbegin\\b",end:"(?i)\\b(?=end)\\b",beginCaptures:{"0":{name:"keyword.ada"}},patterns:[{include:"#statement"}]},{begin:"(?i)\\bwhen\\b",end:"(?i)\\b(?=is)\\b",beginCaptures:{"0":{name:"keyword.ada"}},patterns:[{include:"#expression"}]},{include:"#parameter_profile"}]},entry_declaration:{begin:"(?i)\\b(?:(not)?\\s+(overriding)\\s+)?(entry)\\s+((?:\\w|\\d|_)+)\\b",end:";",beginCaptures:{"1":{name:"storage.modifier.ada"},"2":{name:"storage.modifier.ada"},"3":{name:"keyword.ada"},"4":{name:"entity.name.entry.ada"}},endCaptures:{"0":{name:"punctuation.ada"}},patterns:[{include:"#parameter_profile"}]},enumeration_type_definition:{name:"meta.declaration.type.definition.enumeration.ada",begin:"\\(",end:"\\)",beginCaptures:{"0":{name:"punctuation.ada"}},endCaptures:{"0":{name:"punctuation.ada"}},patterns:[{name:"punctuation.ada",match:","},{name:"variable.name.ada",match:"\\b(\\w|\\d|_)+\\b"},{include:"#comment"}]},exception_declaration:{name:"meta.declaration.exception.ada",begin:"(?i)\\b((?:\\w|\\d|_)+(?:\\s*,\\s*(?:\\w|\\d|_)+)?)\\s*(:)\\s*(exception)",beginCaptures:{"1":{patterns:[{name:"punctuation.ada",match:","},{name:"entity.name.exception.ada",match:"\\b(\\w|\\d|_)+\\b"}]},"2":{name:"punctuation.ada"},"3":{name:"storage.type.ada"}},end:";",endCaptures:{"0":{name:"punctuation.ada"}},patterns:[{match:"(?i)\\b(renames)\\s+((\\w|\\d|_|\\.)+)",name:"entity.name.exception.ada"}]},exit_statement:{name:"meta.statement.exit.ada",begin:"(?i)\\bexit\\b",end:";",beginCaptures:{"0":{name:"keyword.control.ada"}},endCaptures:{"0":{name:"punctuation.ada"}},patterns:[{begin:"(?i)\\bwhen\\b",end:"(?=;)",beginCaptures:{"0":{name:"keyword.control.ada"}},patterns:[{include:"#expression"}]},{match:"(?:\\w|\\d|_)+",name:"entity.name.label.ada"}]},exponent_part:{match:"([eE])(\\+|\\-)?\\d(?:(_)?\\d)*",captures:{"1":{name:"punctuation.exponent-mark.ada"},"2":{name:"keyword.operator.unary.ada"},"3":{name:"punctuation.ada"}}},expression:{name:"meta.expression.ada",patterns:[{match:"(?i)\\bnull\\b",name:"constant.language.ada"},{match:"=>(\\+)?",name:"keyword.other.ada"},{begin:"\\(",end:"\\)",captures:{"0":{name:"punctuation.ada"}},patterns:[{include:"#expression"}]},{match:",",name:"punctuation.ada"},{match:"\\.\\.",name:"keyword.ada"},{include:"#value"},{include:"#attribute"},{include:"#comment"},{include:"#operator"},{match:"(?i)\\b(and|or|xor)\\b",name:"keyword.ada"},{match:"(?i)\\b(if|then|else|elsif|in|for|(?",beginCaptures:{"0":{name:"keyword.control.ada"}},endCaptures:{"0":{name:"keyword.other.ada"}},patterns:[{include:"#expression"}]},handled_sequence_of_statements:{patterns:[{name:"meta.handler.exception.ada",begin:"(?i)\\bexception\\b",beginCaptures:{"0":{name:"keyword.ada"}},end:"(?i)\\b(?=end)\\b",patterns:[{begin:"(?i)\\bwhen\\b",end:"=>",beginCaptures:{"0":{name:"keyword.ada"}},endCaptures:{"0":{name:"keyword.other.ada"}},patterns:[{match:"\\b((?:\\w|\\d|\\.|_)+)\\s*(:)",captures:{"1":{name:"variable.name.ada"},"2":{name:"punctuation.ada"}}},{match:"\\|",name:"punctuation.ada"},{match:"(?i)\\bothers\\b",name:"keyword.ada"},{match:"(?:\\w|\\d|\\.|_)+",name:"entity.name.exception.ada"}]},{include:"#statement"}]},{include:"#statement"}]},highest_precedence_operator:{name:"keyword.operator.highest-precedence.ada",match:"(?i)(\\*\\*|\\babs\\b|\\bnot\\b)"},if_statement:{name:"meta.statement.if.ada",begin:"(?i)\\bif\\b",end:"(?i)\\b(end)\\s+(if)\\s*(;)",beginCaptures:{"0":{name:"keyword.control.ada"}},endCaptures:{"1":{name:"keyword.control.ada"},"2":{name:"keyword.control.ada"},"3":{name:"punctuation.ada"}},patterns:[{begin:"(?i)\\belsif\\b",end:"(?i)(?:(?"},{name:"keyword.operator.arithmetic.ada",match:"(\\+|-|\\*|/)"},{name:"keyword.operator.assignment.ada",match:":="},{name:"keyword.operator.logic.ada",match:"(=|/=|<|>|<=|>=)"},{name:"keyword.operator.concatenation.ada",match:"\\&"}]},known_discriminant_part:{name:"meta.declaration.type.discriminant.ada",begin:"\\(",end:"\\)",captures:{"0":{name:"punctuation.ada"}},patterns:[{name:"punctuation.ada",match:";"},{include:"#discriminant_specification"}]},label:{name:"meta.label.ada",match:"(<<)?((?:\\w|\\d|_)+)\\s*(:[^=]|>>)",captures:{"1":{name:"punctuation.label.ada"},"2":{name:"entity.name.label.ada"},"3":{name:"punctuation.label.ada"}}},library_unit:{name:"meta.library.unit.ada",patterns:[{include:"#package_body"},{include:"#package_specification"},{include:"#subprogram_body"}]},loop_statement:{patterns:[{include:"#simple_loop_statement"},{include:"#while_loop_statement"},{include:"#for_loop_statement"}]},modular_type_definition:{begin:"(?i)\\b(mod)\\b",end:"(?i)(?=(with|;))",beginCaptures:{"1":{name:"storage.modifier.ada"}},patterns:[{name:"keyword.modifier.unknown.ada",match:"<>"},{include:"#expression"}]},multiplying_operator:{name:"keyword.operator.multiplying.ada",match:"(?i)(\\*|/|\\bmod\\b|\\brem\\b)"},null_statement:{name:"meta.statement.null.ada",match:"(?i)\\b(null)\\s*(;)",captures:{"1":{name:"keyword.ada"},"2":{name:"punctuation.ada"}}},object_declaration:{name:"meta.declaration.object.ada",begin:"(?i)\\b((?:\\w|\\d|_)+(?:\\s*,\\s*(?:\\w|\\d|_)+)*)\\s*(:)",end:"(;)",beginCaptures:{"1":{patterns:[{name:"punctuation.ada",match:","},{name:"variable.name.ada",match:"\\b(\\w|\\d|_)+\\b"}]},"2":{name:"punctuation.ada"}},endCaptures:{"0":{name:"punctuation.ada"}},patterns:[{begin:"(?<=:)",end:"(?:(?=;)|(:=)|(\\brenames\\b))",endCaptures:{"1":{name:"keyword.operator.new.ada"},"2":{name:"keyword.ada"}},patterns:[{name:"storage.modifier.ada",match:"(?i)\\bconstant\\b"},{name:"storage.visibility.ada",match:"(?i)\\baliased\\b"},{include:"#aspect_specification"},{include:"#subtype_mark"}]},{begin:"(?<=:=)",end:"(?=;)",patterns:[{include:"#aspect_specification"},{include:"#expression"}]},{begin:"(?<=renames)",end:"(?=;)",patterns:[{include:"#aspect_specification"}]}]},operator:{patterns:[{include:"#highest_precedence_operator"},{include:"#multiplying_operator"},{include:"#adding_operator"},{include:"#relational_operator"},{include:"#logical_operator"}]},package_body:{name:"meta.declaration.package.body.ada",begin:"(?i)\\b(package)\\s+(body)\\s+((?:\\w|\\d|\\.|_)+)\\b",end:"(?i)\\b(end)\\s+(\\3)\\s*(;)",beginCaptures:{"1":{name:"keyword.ada"},"2":{name:"keyword.ada"},"3":{patterns:[{include:"#package_mark"}]}},endCaptures:{"1":{name:"keyword.ada"},"2":{patterns:[{include:"#package_mark"}]},"3":{name:"punctuation.ada"}},patterns:[{begin:"(?i)\\bbegin\\b",beginCaptures:{"0":{name:"keyword.ada"}},end:"(?i)\\b(?=end)\\b",patterns:[{include:"#handled_sequence_of_statements"}]},{begin:"(?i)\\bis\\b",beginCaptures:{"0":{name:"keyword.ada"}},end:"(?i)(?=(\\bbegin\\b|\\bend\\b))",patterns:[{match:"(?i)\\bprivate\\b",name:"keyword.ada"},{include:"#declarative_item"},{include:"#comment"}]},{include:"#aspect_specification"}]},package_declaration:{patterns:[{include:"#package_specification"}]},package_mark:{name:"entity.name.package.ada",match:"\\b(\\w|\\d|\\.|_)+\\b"},package_specification:{name:"meta.declaration.package.specification.ada",begin:"(?i)\\b(package)\\s+((?:\\w|\\d|\\.|_)+)\\b",end:"(?i)(?:\\b(end)\\s+(\\2)\\s*)?(;)",beginCaptures:{"1":{name:"keyword.ada"},"2":{patterns:[{include:"#package_mark"}]}},endCaptures:{"1":{name:"keyword.ada"},"2":{patterns:[{include:"#package_mark"}]},"3":{name:"punctuation.ada"}},patterns:[{begin:"(?i)\\bis\\b",beginCaptures:{"0":{name:"keyword.ada"}},end:"(?=(end|;))",patterns:[{name:"meta.declaration.package.generic.ada",begin:"(?i)\\bnew\\b",beginCaptures:{"0":{name:"keyword.operator.new.ada"}},end:"(?=;)",patterns:[{include:"#package_mark"},{include:"#actual_parameter_part"}]},{match:"(?i)\\bprivate\\b",name:"keyword.ada"},{include:"#basic_declarative_item"},{include:"#comment"}]},{include:"#aspect_specification"}]},parameter_association:{patterns:[{match:"((?:\\w|\\d|_)+)\\s*(=>)",captures:{"1":{name:"variable.parameter.ada"},"2":{name:"keyword.other.ada"}}},{include:"#expression"}]},parameter_profile:{begin:"\\(",end:"\\)",captures:{"0":{name:"punctuation.ada"}},patterns:[{name:"punctuation.ada",match:";"},{include:"#parameter_specification"}]},parameter_specification:{patterns:[{name:"meta.type.annotation.ada",begin:":(?!=)",end:"(?=[:;)])",beginCaptures:{"0":{name:"punctuation.ada"}},patterns:[{name:"keyword.ada",match:"(?i)\\b(in|out)\\b"},{include:"#subtype_mark"}]},{begin:":=",end:"(?=[:;)])",beginCaptures:{"0":{name:"keyword.operator.new.ada"}},patterns:[{include:"#expression"}]},{name:"punctuation.ada",match:","},{name:"variable.parameter.ada",match:"\\b(?:\\w|\\d|\\.|_)+\\b"},{include:"#comment"}]},pragma:{name:"meta.pragma.ada",begin:"(?i)\\b(pragma)\\s+((?:\\w|\\d|_)+)\\b",end:"(;)",beginCaptures:{"1":{name:"keyword.ada"},"2":{name:"keyword.control.directive.ada"}},endCaptures:{"1":{name:"punctuation.ada"}},patterns:[{include:"#expression"}]},preprocessor:{name:"meta.preprocessor.ada",patterns:[{match:"^\\s*(#)(if|elsif)\\s+(.*)$",captures:{"1":{name:"punctuation.definition.directive.ada"},"2":{name:"keyword.control.directive.conditional.ada"},"3":{patterns:[{include:"#expression"}]}}},{match:"^\\s*(#)(end if)(;)",captures:{"1":{name:"punctuation.definition.directive.ada"},"2":{name:"keyword.control.directive.conditional"},"3":{name:"punctuation.ada"}}},{match:"^\\s*(#)(else)",captures:{"1":{name:"punctuation.definition.directive.ada"},"2":{name:"keyword.control.directive.conditional"}}}]},procedure_body:{name:"meta.declaration.procedure.body.ada",begin:"(?i)\\b(overriding\\s+)?(procedure)\\s+((?:\\w|\\d|\\.|_)+)\\b",end:"(?i)(?:\\b(end)\\s+(\\3)\\s*)?(;)",beginCaptures:{"1":{name:"storage.visibility.ada"},"2":{name:"keyword.ada"},"3":{name:"entity.name.function.ada"}},endCaptures:{"1":{name:"keyword.ada"},"2":{name:"entity.name.function.ada"},"3":{name:"punctuation.ada"}},patterns:[{begin:"(?i)\\bis\\b",end:"(?i)(?=(with|begin|;))",beginCaptures:{"0":{name:"keyword.ada"}},patterns:[{name:"meta.declaration.package.generic.ada",begin:"(?i)\\bnew\\b",beginCaptures:{"0":{name:"keyword.operator.new.ada"}},end:"(?=;)",patterns:[{match:"((?:\\w|\\d|\\.|_)+)",name:"entity.name.function.ada"},{include:"#actual_parameter_part"}]},{match:"(?i)\\b(null|abstract)\\b",name:"storage.modifier.ada"},{include:"#declarative_item"}]},{begin:"(?i)\\bbegin\\b",end:"(?i)(?=\\bend\\b)",beginCaptures:{"0":{name:"keyword.ada"}},patterns:[{include:"#handled_sequence_of_statements"}]},{include:"#subprogram_renaming_declaration"},{include:"#aspect_specification"},{include:"#parameter_profile"},{include:"#comment"}]},procedure_call_statement:{name:"meta.statement.call.ada",begin:"(?i)\\b((?:\\w|\\d|_|\\.)+)\\b",end:";",beginCaptures:{"1":{name:"entity.name.function.ada"}},endCaptures:{"0":{name:"punctuation.ada"}},patterns:[{include:"#attribute"},{include:"#actual_parameter_part"},{include:"#comment"}]},procedure_specification:{patterns:[{include:"#procedure_body"}]},protected_body:{name:"meta.declaration.procedure.body.ada",begin:"(?i)\\b(protected)\\s+(body)\\s+((?:\\w|\\d|\\.|_)+)\\b",end:"(?i)(?:\\b(end)\\s*(\\s\\3)\\s*)(;)",beginCaptures:{"1":{name:"storage.modifier.ada"},"2":{name:"keyword.ada"},"3":{name:"entity.name.body.ada"}},endCaptures:{"1":{name:"keyword.ada"},"2":{name:"entity.name.body.ada"},"3":{name:"punctuation.ada"}},patterns:[{begin:"(?i)\\bis\\b",end:"(?i)\\b(?=end)\\b",beginCaptures:{"0":{name:"keyword.ada"}},patterns:[{include:"#protected_operation_item"}]}]},protected_element_declaration:{patterns:[{include:"#subprogram_specification"},{include:"#aspect_clause"},{include:"#entry_declaration"},{include:"#component_declaration"},{include:"#pragma"}]},protected_operation_item:{patterns:[{include:"#subprogram_specification"},{include:"#subprogram_body"},{include:"#aspect_clause"},{include:"#entry_body"}]},positional_array_aggregate:{name:"meta.definition.array.aggregate.positional.ada",patterns:[{match:"(?i)\\b(others)\\s*(=>)\\s*([^,\\)]+)",captures:{"1":{name:"keyword.ada"},"2":{name:"keyword.other.ada"},"3":{patterns:[{name:"keyword.modifier.unknown.ada",match:"<>"},{include:"#expression"}]}}},{include:"#expression"}]},raise_statement:{name:"meta.statement.raise.ada",begin:"(?i)\\braise\\b",end:";",beginCaptures:{"0":{name:"keyword.control.ada"}},endCaptures:{"0":{name:"punctuation.ada"}},patterns:[{begin:"(?i)\\bwith\\b",end:"(?=;)",beginCaptures:{"0":{name:"keyword.control.ada"}},patterns:[{include:"#expression"}]},{name:"entity.name.exception.ada",match:"\\b(\\w|\\d|\\.|_)+\\b"}]},raise_expression:{name:"meta.expression.raise.ada",begin:"(?i)\\braise\\b",end:"(?=;)",beginCaptures:{"0":{name:"keyword.control.ada"}},patterns:[{begin:"(?i)\\bwith\\b",end:"(?=(;|\\))",beginCaptures:{"0":{name:"keyword.ada"}},patterns:[{include:"#expression"}]},{name:"entity.name.exception.ada",match:"\\b(\\w|\\d|_)+\\b"}]},range_constraint:{begin:"(?i)\\brange\\b",end:"(?=(\\bwith\\b|;))",beginCaptures:{"0":{name:"storage.modifier.ada"}},patterns:[{name:"keyword.ada",match:"\\.\\."},{name:"keyword.modifier.unknown.ada",match:"<>"},{include:"#expression"}]},relational_operator:{name:"keyword.operator.relational.ada",match:"(=|/=|<|<=|>|>=)"},record_representation_clause:{name:"meta.aspect.clause.record.representation.ada",begin:"(?i)\\b(record)\\b",end:"(?i)\\b(end)\\s+(record)\\b",beginCaptures:{"1":{name:"storage.modifier.ada"}},endCaptures:{"1":{name:"keyword.ada"},"2":{name:"storage.modifier.ada"}},patterns:[{include:"#component_clause"},{include:"#comment"}]},real_type_definition:{name:"meta.declaration.type.definition.real-type.ada",patterns:[{include:"#scalar_constraint"}]},record_type_definition:{patterns:[{name:"meta.declaration.type.definition.record.null.ada",match:"(?i)\\b(?:(abstract)\\s+)?(?:(tagged)\\s+)?(?:(limited)\\s+)?(null)\\s+(record)\\b",captures:{"1":{name:"storage.modifier.ada"},"2":{name:"storage.modifier.ada"},"3":{name:"storage.modifier.ada"},"4":{name:"storage.modifier.ada"},"5":{name:"storage.modifier.ada"}},patterns:[{include:"#component_item"}]},{name:"meta.declaration.type.definition.record.ada",begin:"(?i)\\b(?:(abstract)\\s+)?(?:(tagged)\\s+)?(?:(limited)\\s+)?(record)\\b",end:"(?i)\\b(end)\\s+(record)\\b",beginCaptures:{"1":{name:"storage.modifier.ada"},"2":{name:"storage.modifier.ada"},"3":{name:"storage.modifier.ada"},"4":{name:"storage.modifier.ada"}},endCaptures:{"1":{name:"keyword.ada"},"2":{name:"storage.modifier.ada"}},patterns:[{include:"#component_item"}]}]},regular_type_declaration:{name:"meta.declaration.type.definition.regular.ada",begin:"(?i)\\b(type)\\b",end:";",beginCaptures:{"1":{name:"keyword.ada"}},endCaptures:{"0":{name:"punctuation.ada"}},patterns:[{begin:"(?i)\\bis\\b",end:"(?i)(?=(with(?!\\s+(private))|;))",beginCaptures:{"0":{name:"keyword.ada"}},patterns:[{include:"#type_definition"}]},{begin:"(?i)\\b(?<=type)\\b",end:"(?i)(?=(is|;))",patterns:[{include:"#known_discriminant_part"},{include:"#subtype_mark"}]},{include:"#aspect_specification"}]},requeue_statement:{name:"meta.statement.requeue.ada",begin:"(?i)\\brequeue\\b",end:";",beginCaptures:{"0":{name:"keyword.control.ada"}},endCaptures:{"0":{name:"punctuation.ada"}},patterns:[{name:"keyword.control.ada",match:"(?i)\\b(with|abort)\\b"},{name:"entity.name.function.ada",match:"\\b(\\w|\\d|\\.|_)+\\b"}]},result_profile:{begin:"(?i)\\breturn\\b",end:"(?=(is|with|renames|;))",beginCaptures:{"0":{name:"keyword.ada"}},patterns:[{include:"#subtype_mark"}]},return_statement:{name:"meta.statement.return.ada",begin:"(?i)\\breturn\\b",end:";",beginCaptures:{"0":{name:"keyword.control.ada"}},endCaptures:{"0":{name:"punctuation.ada"}},patterns:[{begin:"(?i)\\bdo\\b",end:"(?i)\\b(end)\\s+(return)\\s*(?=;)",beginCaptures:{"0":{name:"keyword.control.ada"}},endCaptures:{"1":{name:"keyword.control.ada"},"2":{name:"keyword.control.ada"}},patterns:[{include:"#label"},{include:"#statement"}]},{match:"\\b((?:\\w|\\d|_)+)\\s*(:)\\s*((?:\\w|\\d|\\.|_)+)\\b",captures:{"1":{name:"variable.name.ada"},"2":{name:"punctuation.ada"},"3":{name:"entity.name.type.ada"}}},{match:":=",name:"keyword.operator.new.ada"},{include:"#expression"}]},scalar_constraint:{name:"meta.declaration.constraint.scalar.ada",patterns:[{begin:"(?i)\\b(digits|delta)\\b",end:"(?i)(?=\\brange\\b|\\bdigits\\b|\\bwith\\b|;)",beginCaptures:{"1":{name:"storage.modifier.ada"}},patterns:[{include:"#expression"}]},{include:"#range_constraint"},{include:"#expression"}]},select_alternative:{patterns:[{begin:"(?i)\\bterminate\\b",end:";",beginCaptures:{"0":{name:"keyword.control.ada"}},endCaptures:{"0":{name:"punctuation.ada"}}},{include:"#statement"}]},select_statement:{name:"meta.statement.select.ada",begin:"(?i)\\bselect\\b",end:"(?i)\\b(end)\\s+(select)\\b",beginCaptures:{"0":{name:"keyword.control.ada"}},endCaptures:{"1":{name:"keyword.control.ada"},"2":{name:"keyword.control.ada"}},patterns:[{begin:"(?i)\\b(?:(or)|(?<=select))\\b",end:"(?i)\\b(?=(or|else|end))\\b",beginCaptures:{"1":{name:"keyword.control.ada"}},patterns:[{include:"#guard"},{include:"#select_alternative"}]},{begin:"(?i)\\belse\\b",end:"(?i)\\b(?=end)\\b",beginCaptures:{"0":{name:"keyword.control.ada"}},patterns:[{include:"#statement"}]}]},signed_integer_type_definition:{patterns:[{include:"#range_constraint"}]},simple_loop_statement:{name:"meta.statement.loop.ada",begin:"(?i)\\bloop\\b",end:"(?i)\\b(end)\\s+(loop)(\\s+(?:\\w|\\d|_)+)?\\s*(;)",beginCaptures:{"0":{name:"keyword.control.ada"}},endCaptures:{"1":{name:"keyword.control.ada"},"2":{name:"keyword.control.ada"},"3":{name:"entity.name.label.ada"},"4":{name:"punctuation.ada"}},patterns:[{include:"#statement"}]},single_protected_declaration:{name:"meta.declaration.protected.ada",begin:"(?i)\\b(protected)\\s+((?:\\w|\\d|_)+)\\b",end:"(?i)(?:\\b(end)\\s*(\\s\\2)?\\s*)?(;)",beginCaptures:{"1":{name:"keyword.ada"},"2":{name:"entity.name.protected.ada"}},endCaptures:{"1":{name:"keyword.ada"},"2":{name:"entity.name.protected.ada"},"3":{name:"punctuation.ada"}},patterns:[{begin:"(?i)\\bis\\b",end:"(?i)(?=(\\bend\\b|;))",beginCaptures:{"0":{name:"keyword.ada"}},patterns:[{begin:"(?i)\\bnew\\b",end:"(?i)\\bwith\\b",captures:{"0":{name:"keyword.ada"}},patterns:[{match:"(?i)\\band\\b",name:"keyword.ada"},{include:"#subtype_mark"},{include:"#comment"}]},{match:"(?i)\\bprivate\\b",name:"keyword.ada"},{include:"#protected_element_declaration"},{include:"#comment"}]},{include:"#comment"}]},single_task_declaration:{begin:"(?i)\\b(task)\\s+((?:\\w|\\d|_)+)\\b",end:"(?i)(?:\\b(end)\\s*(\\s\\2)?\\s*)?(;)",beginCaptures:{"1":{name:"keyword.ada"},"2":{name:"entity.name.task.ada"}},endCaptures:{"1":{name:"keyword.ada"},"2":{name:"entity.name.task.ada"},"3":{name:"punctuation.ada"}},patterns:[{begin:"(?i)\\bis\\b",beginCaptures:{"0":{name:"keyword.ada"}},end:"(?i)\\b(?=end)\\b",patterns:[{begin:"(?i)\\bnew\\b",end:"(?i)\\bwith\\b",captures:{"0":{name:"keyword.ada"}},patterns:[{match:"(?i)\\band\\b",name:"keyword.ada"},{include:"#subtype_mark"},{include:"#comment"}]},{match:"(?i)\\bprivate\\b",name:"keyword.ada"},{include:"#task_item"},{include:"#comment"}]},{include:"#comment"}]},statement:{patterns:[{begin:"(?i)\\bbegin\\b",end:"(?i)\\b(end)\\s*(;)",beginCaptures:{"0":{name:"keyword.ada"}},endCaptures:{"1":{name:"keyword.ada"},"2":{name:"punctuation.ada"}},patterns:[{include:"#handled_sequence_of_statements"}]},{include:"#label"},{include:"#null_statement"},{include:"#return_statement"},{include:"#assignment_statement"},{include:"#exit_statement"},{include:"#goto_statement"},{include:"#requeue_statement"},{include:"#delay_statement"},{include:"#abort_statement"},{include:"#raise_statement"},{include:"#if_statement"},{include:"#case_statement"},{include:"#loop_statement"},{include:"#block_statement"},{include:"#select_statement"},{include:"#accept_statement"},{include:"#pragma"},{include:"#procedure_call_statement"},{include:"#comment"}]},string_literal:{name:"string.quoted.double.ada",match:"(\").*?(\")",captures:{"1":{name:"punctuation.definition.string.ada"},"2":{name:"punctuation.definition.string.ada"}}},subprogram_body:{name:"meta.declaration.subprogram.body.ada",patterns:[{include:"#procedure_body"},{include:"#function_body"}]},subprogram_renaming_declaration:{begin:"(?i)\\brenames\\b",end:"(?=(with|;))",beginCaptures:{"0":{name:"keyword.ada"}},patterns:[{match:"(?:\\w|\\d|_|\\.)+",name:"entity.name.function.ada"}]},subprogram_specification:{name:"meta.declaration.subprogram.specification.ada",patterns:[{include:"#procedure_specification"},{include:"#function_specification"}]},subtype_declaration:{name:"meta.declaration.subtype.ada",begin:"(?i)\\bsubtype\\b",end:";",beginCaptures:{"0":{name:"keyword.ada"}},endCaptures:{"0":{name:"punctuation.ada"}},patterns:[{begin:"(?i)\\bis\\b",beginCaptures:{"0":{name:"keyword.ada"}},end:"(?=;)",patterns:[{name:"storage.modifier.ada",match:"(?i)\\b(not\\s+null)\\b"},{include:"#composite_constraint"},{include:"#aspect_specification"},{include:"#subtype_indication"}]},{begin:"(?i)(?<=subtype)",end:"(?i)\\b(?=is)\\b",patterns:[{include:"#subtype_mark"}]}]},subtype_indication:{name:"meta.declaration.indication.subtype.ada",patterns:[{include:"#scalar_constraint"},{include:"#subtype_mark"}]},subtype_mark:{patterns:[{name:"storage.visibility.ada",match:"(?i)\\b(access|aliased|not\\s+null|constant)\\b"},{include:"#attribute"},{include:"#actual_parameter_part"},{begin:"(?i)\\b(procedure|function)\\b",beginCaptures:{"0":{name:"keyword.ada"}},end:"(?=(;|\\)))",patterns:[{include:"#parameter_profile"},{begin:"(?i)\\breturn\\b",end:"(?=(;|\\)))",beginCaptures:{"0":{name:"keyword.ada"}},patterns:[{include:"#subtype_mark"}]}]},{name:"entity.name.type.ada",match:"\\b(?:\\w|\\d|\\.|_)+\\b",captures:{"0":{patterns:[{name:"punctuation.ada",match:"[_.]"}]}}},{include:"#comment"}]},task_body:{name:"meta.declaration.task.body.ada",begin:"(?i)\\b(task)\\s+(body)\\s+((\\w|\\d|\\.|_)+)\\b",end:"(?i)(?:\\b(end)\\s*(?:\\s(\\3))?\\s*)?(;)",beginCaptures:{"1":{name:"keyword.ada"},"2":{name:"keyword.ada"},"3":{name:"entity.name.task.ada"}},endCaptures:{"1":{name:"keyword.ada"},"2":{name:"entity.name.task.ada"},"3":{name:"punctuation.ada"}},patterns:[{begin:"(?i)\\bbegin\\b",end:"(?i)(?=end)",beginCaptures:{"0":{name:"keyword.ada"}},patterns:[{include:"#handled_sequence_of_statements"}]},{include:"#aspect_specification"},{begin:"(?i)\\bis\\b",beginCaptures:{"0":{name:"keyword.ada"}},end:"(?i)(?=(with|begin))",patterns:[{include:"#declarative_item"}]}]},task_item:{patterns:[{include:"#aspect_clause"},{include:"#entry_declaration"}]},task_type_declaration:{name:"meta.declaration.type.task.ada",begin:"(?i)\\b(task)\\s+(type)\\s+((\\w|\\d|\\.|_)+)\\b",end:"(?i)(?:\\b(end)\\s*(?:\\s(\\3))?\\s*)?(;)",beginCaptures:{"1":{name:"storage.modifier.ada"},"2":{name:"keyword.ada"},"3":{name:"entity.name.task.ada"}},endCaptures:{"1":{name:"keyword.ada"},"2":{name:"entity.name.task.ada"},"3":{name:"punctuation.ada"}},patterns:[{include:"#known_discriminant_part"},{begin:"(?i)\\bis\\b",beginCaptures:{"0":{name:"keyword.ada"}},end:"(?i)\\b(?=end)\\b",patterns:[{begin:"(?i)\\bnew\\b",end:"(?i)\\bwith\\b",captures:{"0":{name:"keyword.ada"}},patterns:[{match:"(?i)\\band\\b",name:"keyword.ada"},{include:"#subtype_mark"},{include:"#comment"}]},{match:"(?i)\\bprivate\\b",name:"keyword.ada"},{include:"#task_item"},{include:"#comment"}]},{include:"#comment"}]},type_declaration:{name:"meta.declaration.type.ada",patterns:[{include:"#full_type_declaration"}]},type_definition:{name:"meta.declaration.type.definition.ada",patterns:[{include:"#enumeration_type_definition"},{include:"#integer_type_definition"},{include:"#real_type_definition"},{include:"#array_type_definition"},{include:"#record_type_definition"},{include:"#access_type_definition"},{include:"#interface_type_definition"},{include:"#derived_type_definition"}]},use_clause:{name:"meta.context.use.ada",patterns:[{include:"#use_type_clause"},{include:"#use_package_clause"}]},use_package_clause:{name:"meta.context.use.package.ada",begin:"(?i)\\buse\\b",end:";",beginCaptures:{"0":{name:"keyword.other.using.ada"}},endCaptures:{"0":{name:"punctuation.ada"}},patterns:[{name:"punctuation.ada",match:","},{include:"#package_mark"}]},use_type_clause:{name:"meta.context.use.type.ada",begin:"(?i)\\b(use)\\s+(?:(all)\\s+)?(type)\\b",end:";",beginCaptures:{"1":{name:"keyword.other.using.ada"},"2":{name:"keyword.modifier.ada"},"3":{name:"keyword.modifier.ada"}},endCaptures:{"0":{name:"punctuation.ada"}},patterns:[{name:"punctuation.ada",match:","},{include:"#subtype_mark"}]},value:{patterns:[{include:"#based_literal"},{include:"#decimal_literal"},{include:"#character_literal"},{include:"#string_literal"}]},variant_part:{name:"meta.declaration.variant.ada",begin:"(?i)\\bcase\\b",end:"(?i)\\b(end)\\s+(case);",beginCaptures:{"0":{name:"keyword.ada"}},endCaptures:{"1":{name:"keyword.ada"},"2":{name:"keyword.ada"},"3":{name:"punctuation.ada"}},patterns:[{begin:"(?i)\\b(?<=case)\\b",end:"(?i)\\bis\\b",endCaptures:{"0":{name:"keyword.ada"}},patterns:[{match:"(?:\\w|\\d|_)+",name:"variable.name.ada"},{include:"#comment"}]},{begin:"(?i)\\b(?<=is)\\b",end:"(?i)\\b(?=end)\\b",patterns:[{begin:"(?i)\\bwhen\\b",end:"=>",beginCaptures:{"0":{name:"keyword.ada"}},endCaptures:{"0":{name:"keyword.other.ada"}},patterns:[{match:"\\|",name:"punctuation.ada"},{match:"(?i)\\bothers\\b",name:"keyword.ada"},{include:"#expression"}]},{include:"#component_item"}]}]},while_loop_statement:{name:"meta.statement.loop.while.ada",begin:"(?i)\\bwhile\\b",end:"(?i)\\b(end)\\s+(loop)(\\s+(?:\\w|\\d|_)+)?\\s*(;)",beginCaptures:{"0":{name:"keyword.control.ada"}},endCaptures:{"1":{name:"keyword.control.ada"},"2":{name:"keyword.control.ada"},"3":{name:"entity.name.label.ada"},"4":{name:"punctuation.ada"}},patterns:[{begin:"(?i)(?<=while)\\b",end:"(?i)\\bloop\\b",endCaptures:{"0":{name:"keyword.control.ada"}},patterns:[{include:"#expression"}]},{include:"#statement"}]},with_clause:{name:"meta.context.with.ada",begin:"(?i)\\b(?:(limited)\\s+)?(?:(private)\\s+)?(with)\\b",end:";",beginCaptures:{"1":{name:"keyword.modifier.ada"},"2":{name:"storage.visibility.ada"},"3":{name:"keyword.other.using.ada"}},endCaptures:{"0":{name:"punctuation.ada"}},patterns:[{name:"punctuation.ada",match:","},{include:"#package_mark"}]}},scopeName:"source.ada"}; + +export { ada_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/apache.tmLanguage-13ae24f7.mjs b/docs/shiki/dist/languages/apache.tmLanguage-13ae24f7.mjs new file mode 100644 index 00000000..eb7a31c0 --- /dev/null +++ b/docs/shiki/dist/languages/apache.tmLanguage-13ae24f7.mjs @@ -0,0 +1,3 @@ +var apache_tmLanguage = {fileTypes:["conf","CONF","envvars","htaccess","HTACCESS","htgroups","HTGROUPS","htpasswd","HTPASSWD",".htaccess",".HTACCESS",".htgroups",".HTGROUPS",".htpasswd",".HTPASSWD"],name:"apache",patterns:[{captures:{"1":{name:"punctuation.definition.comment.apacheconf"}},match:"^(\\s)*(#).*$\\n?",name:"comment.line.hash.ini"},{captures:{"1":{name:"punctuation.definition.tag.apacheconf"},"2":{name:"entity.tag.apacheconf"},"4":{name:"string.value.apacheconf"},"5":{name:"punctuation.definition.tag.apacheconf"}},match:"(<)(Proxy|ProxyMatch|IfVersion|Directory|DirectoryMatch|Files|FilesMatch|IfDefine|IfModule|Limit|LimitExcept|Location|LocationMatch|VirtualHost|Macro|If|Else|ElseIf)(\\s(.+?))?(>)"},{captures:{"1":{name:"punctuation.definition.tag.apacheconf"},"2":{name:"entity.tag.apacheconf"},"3":{name:"punctuation.definition.tag.apacheconf"}},match:"()"},{captures:{"3":{name:"string.regexp.apacheconf"},"4":{name:"string.replacement.apacheconf"}},match:"(?<=(Rewrite(Rule|Cond)))\\s+(.+?)\\s+(.+?)($|\\s)"},{captures:{"2":{name:"entity.status.apacheconf"},"3":{name:"string.regexp.apacheconf"},"5":{name:"string.path.apacheconf"}},match:"(?<=RedirectMatch)(\\s+(\\d\\d\\d|permanent|temp|seeother|gone))?\\s+(.+?)\\s+((.+?)($|\\s))?"},{captures:{"2":{name:"entity.status.apacheconf"},"3":{name:"string.path.apacheconf"},"5":{name:"string.path.apacheconf"}},match:"(?<=Redirect)(\\s+(\\d\\d\\d|permanent|temp|seeother|gone))?\\s+(.+?)\\s+((.+?)($|\\s))?"},{captures:{"1":{name:"string.regexp.apacheconf"},"3":{name:"string.path.apacheconf"}},match:"(?<=ScriptAliasMatch|AliasMatch)\\s+(.+?)\\s+((.+?)\\s)?"},{captures:{"1":{name:"string.path.apacheconf"},"3":{name:"string.path.apacheconf"}},match:"(?<=RedirectPermanent|RedirectTemp|ScriptAlias|Alias)\\s+(.+?)\\s+((.+?)($|\\s))?"},{captures:{"1":{name:"keyword.core.apacheconf"}},match:"\\b(AcceptPathInfo|AccessFileName|AddDefaultCharset|AddOutputFilterByType|AllowEncodedSlashes|AllowOverride|AuthName|AuthType|CGIMapExtension|ContentDigest|DefaultType|Define|DocumentRoot|EnableMMAP|EnableSendfile|ErrorDocument|ErrorLog|FileETag|ForceType|HostnameLookups|IdentityCheck|Include(Optional)?|KeepAlive|KeepAliveTimeout|LimitInternalRecursion|LimitRequestBody|LimitRequestFields|LimitRequestFieldSize|LimitRequestLine|LimitXMLRequestBody|LogLevel|MaxKeepAliveRequests|Mutex|NameVirtualHost|Options|Require|RLimitCPU|RLimitMEM|RLimitNPROC|Satisfy|ScriptInterpreterSource|ServerAdmin|ServerAlias|ServerName|ServerPath|ServerRoot|ServerSignature|ServerTokens|SetHandler|SetInputFilter|SetOutputFilter|Time(O|o)ut|TraceEnable|UseCanonicalName|Use|ErrorLogFormat|GlobalLog|PHPIniDir|SSLHonorCipherOrder|SSLCompression|SSLUseStapling|SSLStapling\\w+|SSLCARevocationCheck|SSLSRPVerifierFile|SSLSessionTickets|RequestReadTimeout|ProxyHTML\\w+|MaxRanges)\\b"},{captures:{"1":{name:"keyword.mpm.apacheconf"}},match:"\\b(AcceptMutex|AssignUserID|BS2000Account|ChildPerUserID|CoreDumpDirectory|EnableExceptionHook|Group|Listen|ListenBacklog|LockFile|MaxClients|MaxConnectionsPerChild|MaxMemFree|MaxRequestsPerChild|MaxRequestsPerThread|MaxRequestWorkers|MaxSpareServers|MaxSpareThreads|MaxThreads|MaxThreadsPerChild|MinSpareServers|MinSpareThreads|NumServers|PidFile|ReceiveBufferSize|ScoreBoardFile|SendBufferSize|ServerLimit|StartServers|StartThreads|ThreadLimit|ThreadsPerChild|ThreadStackSize|User|Win32DisableAcceptEx)\\b"},{captures:{"1":{name:"keyword.access.apacheconf"}},match:"\\b(Allow|Deny|Order)\\b"},{captures:{"1":{name:"keyword.actions.apacheconf"}},match:"\\b(Action|Script)\\b"},{captures:{"1":{name:"keyword.alias.apacheconf"}},match:"\\b(Alias|AliasMatch|Redirect|RedirectMatch|RedirectPermanent|RedirectTemp|ScriptAlias|ScriptAliasMatch)\\b"},{captures:{"1":{name:"keyword.auth.apacheconf"}},match:"\\b(AuthAuthoritative|AuthGroupFile|AuthUserFile|AuthBasicProvider|AuthBasicFake|AuthBasicAuthoritative|AuthBasicUseDigestAlgorithm)\\b"},{captures:{"1":{name:"keyword.auth_anon.apacheconf"}},match:"\\b(Anonymous|Anonymous_Authoritative|Anonymous_LogEmail|Anonymous_MustGiveEmail|Anonymous_NoUserID|Anonymous_VerifyEmail)\\b"},{captures:{"1":{name:"keyword.auth_dbm.apacheconf"}},match:"\\b(AuthDBMAuthoritative|AuthDBMGroupFile|AuthDBMType|AuthDBMUserFile)\\b"},{captures:{"1":{name:"keyword.auth_digest.apacheconf"}},match:"\\b(AuthDigestAlgorithm|AuthDigestDomain|AuthDigestFile|AuthDigestGroupFile|AuthDigestNcCheck|AuthDigestNonceFormat|AuthDigestNonceLifetime|AuthDigestQop|AuthDigestShmemSize|AuthDigestProvider)\\b"},{captures:{"1":{name:"keyword.auth_ldap.apacheconf"}},match:"\\b(AuthLDAPAuthoritative|AuthLDAPBindDN|AuthLDAPBindPassword|AuthLDAPCharsetConfig|AuthLDAPCompareDNOnServer|AuthLDAPDereferenceAliases|AuthLDAPEnabled|AuthLDAPFrontPageHack|AuthLDAPGroupAttribute|AuthLDAPGroupAttributeIsDN|AuthLDAPRemoteUserIsDN|AuthLDAPUrl)\\b"},{captures:{"1":{name:"keyword.autoindex.apacheconf"}},match:"\\b(AddAlt|AddAltByEncoding|AddAltByType|AddDescription|AddIcon|AddIconByEncoding|AddIconByType|DefaultIcon|HeaderName|IndexIgnore|IndexOptions|IndexOrderDefault|IndexStyleSheet|IndexHeadInsert|ReadmeName)\\b"},{captures:{"1":{name:"keyword.filter.apacheconf"}},match:"\\b(BalancerMember|BalancerGrowth|BalancerPersist|BalancerInherit)\\b"},{captures:{"1":{name:"keyword.cache.apacheconf"}},match:"\\b(CacheDefaultExpire|CacheDisable|CacheEnable|CacheForceCompletion|CacheIgnoreCacheControl|CacheIgnoreHeaders|CacheIgnoreNoLastMod|CacheLastModifiedFactor|CacheMaxExpire)\\b"},{captures:{"1":{name:"keyword.cern_meta.apacheconf"}},match:"\\b(MetaDir|MetaFiles|MetaSuffix)\\b"},{captures:{"1":{name:"keyword.cgi.apacheconf"}},match:"\\b(ScriptLog|ScriptLogBuffer|ScriptLogLength)\\b"},{captures:{"1":{name:"keyword.cgid.apacheconf"}},match:"\\b(ScriptLog|ScriptLogBuffer|ScriptLogLength|ScriptSock)\\b"},{captures:{"1":{name:"keyword.charset_lite.apacheconf"}},match:"\\b(CharsetDefault|CharsetOptions|CharsetSourceEnc)\\b"},{captures:{"1":{name:"keyword.dav.apacheconf"}},match:"\\b(Dav|DavDepthInfinity|DavMinTimeout|DavLockDB)\\b"},{captures:{"1":{name:"keyword.deflate.apacheconf"}},match:"\\b(DeflateBufferSize|DeflateCompressionLevel|DeflateFilterNote|DeflateMemLevel|DeflateWindowSize)\\b"},{captures:{"1":{name:"keyword.dir.apacheconf"}},match:"\\b(DirectoryIndex|DirectorySlash|FallbackResource)\\b"},{captures:{"1":{name:"keyword.disk_cache.apacheconf"}},match:"\\b(CacheDirLength|CacheDirLevels|CacheExpiryCheck|CacheGcClean|CacheGcDaily|CacheGcInterval|CacheGcMemUsage|CacheGcUnused|CacheMaxFileSize|CacheMinFileSize|CacheRoot|CacheSize|CacheTimeMargin)\\b"},{captures:{"1":{name:"keyword.dumpio.apacheconf"}},match:"\\b(DumpIOInput|DumpIOOutput)\\b"},{captures:{"1":{name:"keyword.env.apacheconf"}},match:"\\b(PassEnv|SetEnv|UnsetEnv)\\b"},{captures:{"1":{name:"keyword.expires.apacheconf"}},match:"\\b(ExpiresActive|ExpiresByType|ExpiresDefault)\\b"},{captures:{"1":{name:"keyword.ext_filter.apacheconf"}},match:"\\b(ExtFilterDefine|ExtFilterOptions)\\b"},{captures:{"1":{name:"keyword.file_cache.apacheconf"}},match:"\\b(CacheFile|MMapFile)\\b"},{captures:{"1":{name:"keyword.filter.apacheconf"}},match:"\\b(AddOutputFilterByType|FilterChain|FilterDeclare|FilterProtocol|FilterProvider|FilterTrace)\\b"},{captures:{"1":{name:"keyword.headers.apacheconf"}},match:"\\b(Header|RequestHeader)\\b"},{captures:{"1":{name:"keyword.imap.apacheconf"}},match:"\\b(ImapBase|ImapDefault|ImapMenu)\\b"},{captures:{"1":{name:"keyword.include.apacheconf"}},match:"\\b(SSIEndTag|SSIErrorMsg|SSIStartTag|SSITimeFormat|SSIUndefinedEcho|XBitHack)\\b"},{captures:{"1":{name:"keyword.isapi.apacheconf"}},match:"\\b(ISAPIAppendLogToErrors|ISAPIAppendLogToQuery|ISAPICacheFile|ISAPIFakeAsync|ISAPILogNotSupported|ISAPIReadAheadBuffer)\\b"},{captures:{"1":{name:"keyword.ldap.apacheconf"}},match:"\\b(LDAPCacheEntries|LDAPCacheTTL|LDAPConnectionTimeout|LDAPOpCacheEntries|LDAPOpCacheTTL|LDAPSharedCacheFile|LDAPSharedCacheSize|LDAPTrustedCA|LDAPTrustedCAType)\\b"},{captures:{"1":{name:"keyword.log.apacheconf"}},match:"\\b(BufferedLogs|CookieLog|CustomLog|LogFormat|TransferLog|ForensicLog)\\b"},{captures:{"1":{name:"keyword.mem_cache.apacheconf"}},match:"\\b(MCacheMaxObjectCount|MCacheMaxObjectSize|MCacheMaxStreamingBuffer|MCacheMinObjectSize|MCacheRemovalAlgorithm|MCacheSize)\\b"},{captures:{"1":{name:"keyword.mime.apacheconf"}},match:"\\b(AddCharset|AddEncoding|AddHandler|AddInputFilter|AddLanguage|AddOutputFilter|AddType|DefaultLanguage|ModMimeUsePathInfo|MultiviewsMatch|RemoveCharset|RemoveEncoding|RemoveHandler|RemoveInputFilter|RemoveLanguage|RemoveOutputFilter|RemoveType|TypesConfig)\\b"},{captures:{"1":{name:"keyword.misc.apacheconf"}},match:"\\b(ProtocolEcho|Example|AddModuleInfo|MimeMagicFile|CheckSpelling|ExtendedStatus|SuexecUserGroup|UserDir)\\b"},{captures:{"1":{name:"keyword.negotiation.apacheconf"}},match:"\\b(CacheNegotiatedDocs|ForceLanguagePriority|LanguagePriority)\\b"},{captures:{"1":{name:"keyword.nw_ssl.apacheconf"}},match:"\\b(NWSSLTrustedCerts|NWSSLUpgradeable|SecureListen)\\b"},{captures:{"1":{name:"keyword.proxy.apacheconf"}},match:"\\b(AllowCONNECT|NoProxy|ProxyBadHeader|ProxyBlock|ProxyDomain|ProxyErrorOverride|ProxyFtpDirCharset|ProxyIOBufferSize|ProxyMaxForwards|ProxyPass|ProxyPassMatch|ProxyPassReverse|ProxyPreserveHost|ProxyReceiveBufferSize|ProxyRemote|ProxyRemoteMatch|ProxyRequests|ProxyTimeout|ProxyVia)\\b"},{captures:{"1":{name:"keyword.rewrite.apacheconf"}},match:"\\b(RewriteBase|RewriteCond|RewriteEngine|RewriteLock|RewriteLog|RewriteLogLevel|RewriteMap|RewriteOptions|RewriteRule)\\b"},{captures:{"1":{name:"keyword.setenvif.apacheconf"}},match:"\\b(BrowserMatch|BrowserMatchNoCase|SetEnvIf|SetEnvIfNoCase)\\b"},{captures:{"1":{name:"keyword.so.apacheconf"}},match:"\\b(LoadFile|LoadModule)\\b"},{captures:{"1":{name:"keyword.ssl.apacheconf"}},match:"\\b(SSLCACertificateFile|SSLCACertificatePath|SSLCARevocationFile|SSLCARevocationPath|SSLCertificateChainFile|SSLCertificateFile|SSLCertificateKeyFile|SSLCipherSuite|SSLEngine|SSLMutex|SSLOptions|SSLPassPhraseDialog|SSLProtocol|SSLProxyCACertificateFile|SSLProxyCACertificatePath|SSLProxyCARevocationFile|SSLProxyCARevocationPath|SSLProxyCipherSuite|SSLProxyEngine|SSLProxyMachineCertificateFile|SSLProxyMachineCertificatePath|SSLProxyProtocol|SSLProxyVerify|SSLProxyVerifyDepth|SSLRandomSeed|SSLRequire|SSLRequireSSL|SSLSessionCache|SSLSessionCacheTimeout|SSLUserName|SSLVerifyClient|SSLVerifyDepth|SSLInsecureRenegotiation|SSLOpenSSLConfCmd)\\b"},{captures:{"1":{name:"keyword.substitute.apacheconf"}},match:"\\b(Substitute|SubstituteInheritBefore|SubstituteMaxLineLength)\\b"},{captures:{"1":{name:"keyword.usertrack.apacheconf"}},match:"\\b(CookieDomain|CookieExpires|CookieName|CookieStyle|CookieTracking)\\b"},{captures:{"1":{name:"keyword.vhost_alias.apacheconf"}},match:"\\b(VirtualDocumentRoot|VirtualDocumentRootIP|VirtualScriptAlias|VirtualScriptAliasIP)\\b"},{captures:{"1":{name:"keyword.php.apacheconf"},"3":{name:"entity.property.apacheconf"},"5":{name:"string.value.apacheconf"}},match:"\\b(php_value|php_flag|php_admin_value|php_admin_flag)\\b(\\s+(.+?)(\\s+(\".+?\"|.+?))?)?\\s"},{captures:{"1":{name:"punctuation.variable.apacheconf"},"3":{name:"variable.env.apacheconf"},"4":{name:"variable.misc.apacheconf"},"5":{name:"punctuation.variable.apacheconf"}},match:"(%\\{)((HTTP_USER_AGENT|HTTP_REFERER|HTTP_COOKIE|HTTP_FORWARDED|HTTP_HOST|HTTP_PROXY_CONNECTION|HTTP_ACCEPT|REMOTE_ADDR|REMOTE_HOST|REMOTE_PORT|REMOTE_USER|REMOTE_IDENT|REQUEST_METHOD|SCRIPT_FILENAME|PATH_INFO|QUERY_STRING|AUTH_TYPE|DOCUMENT_ROOT|SERVER_ADMIN|SERVER_NAME|SERVER_ADDR|SERVER_PORT|SERVER_PROTOCOL|SERVER_SOFTWARE|TIME_YEAR|TIME_MON|TIME_DAY|TIME_HOUR|TIME_MIN|TIME_SEC|TIME_WDAY|TIME|API_VERSION|THE_REQUEST|REQUEST_URI|REQUEST_FILENAME|IS_SUBREQ|HTTPS)|(.*?))(\\})"},{captures:{"1":{name:"entity.mime-type.apacheconf"}},match:"\\b((text|image|application|video|audio)/.+?)\\s"},{captures:{"1":{name:"entity.helper.apacheconf"}},match:"\\b(?i)(export|from|unset|set|on|off)\\b"},{captures:{"1":{name:"constant.numeric.integer.decimal.apacheconf"}},match:"\\b(\\d+)\\b"},{captures:{"1":{name:"punctuation.definition.flag.apacheconf"},"2":{name:"string.flag.apacheconf"},"3":{name:"punctuation.definition.flag.apacheconf"}},match:"\\s(\\[)(.*?)(\\])\\s"}],scopeName:"source.apacheconf",uuid:"8747d9e4-b308-4fc2-9aa1-66b6919bc7b9"}; + +export { apache_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/apex.tmLanguage-59f98cba.mjs b/docs/shiki/dist/languages/apex.tmLanguage-59f98cba.mjs new file mode 100644 index 00000000..a8591e33 --- /dev/null +++ b/docs/shiki/dist/languages/apex.tmLanguage-59f98cba.mjs @@ -0,0 +1,3 @@ +var apex_tmLanguage = {name:"apex",scopeName:"source.apex",fileTypes:["apex","cls","trigger"],uuid:"F5FC6824-F257-43B1-B53A-14E1CCD18631",patterns:[{include:"#javadoc-comment"},{include:"#comment"},{include:"#directives"},{include:"#declarations"},{include:"#script-top-level"}],repository:{directives:{patterns:[{include:"#punctuation-semicolon"}]},declarations:{patterns:[{include:"#type-declarations"},{include:"#punctuation-semicolon"}]},"script-top-level":{patterns:[{include:"#method-declaration"},{include:"#statement"},{include:"#punctuation-semicolon"}]},"type-declarations":{patterns:[{include:"#javadoc-comment"},{include:"#comment"},{include:"#annotation-declaration"},{include:"#storage-modifier"},{include:"#sharing-modifier"},{include:"#class-declaration"},{include:"#enum-declaration"},{include:"#interface-declaration"},{include:"#trigger-declaration"},{include:"#punctuation-semicolon"}]},"class-or-trigger-members":{patterns:[{include:"#javadoc-comment"},{include:"#comment"},{include:"#storage-modifier"},{include:"#sharing-modifier"},{include:"#type-declarations"},{include:"#field-declaration"},{include:"#property-declaration"},{include:"#indexer-declaration"},{include:"#variable-initializer"},{include:"#constructor-declaration"},{include:"#method-declaration"},{include:"#punctuation-semicolon"}]},"interface-members":{patterns:[{include:"#javadoc-comment"},{include:"#comment"},{include:"#property-declaration"},{include:"#indexer-declaration"},{include:"#method-declaration"},{include:"#punctuation-semicolon"}]},statement:{patterns:[{include:"#comment"},{include:"#while-statement"},{include:"#do-statement"},{include:"#for-statement"},{include:"#switch-statement"},{include:"#when-else-statement"},{include:"#when-sobject-statement"},{include:"#when-statement"},{include:"#when-multiple-statement"},{include:"#if-statement"},{include:"#else-part"},{include:"#goto-statement"},{include:"#return-statement"},{include:"#break-or-continue-statement"},{include:"#throw-statement"},{include:"#try-statement"},{include:"#soql-query-expression"},{include:"#local-declaration"},{include:"#block"},{include:"#expression"},{include:"#punctuation-semicolon"}]},expression:{patterns:[{include:"#comment"},{include:"#merge-expression"},{include:"#support-expression"},{include:"#throw-expression"},{include:"#this-expression"},{include:"#trigger-context-declaration"},{include:"#conditional-operator"},{include:"#expression-operators"},{include:"#soql-query-expression"},{include:"#object-creation-expression"},{include:"#array-creation-expression"},{include:"#invocation-expression"},{include:"#member-access-expression"},{include:"#element-access-expression"},{include:"#cast-expression"},{include:"#literal"},{include:"#parenthesized-expression"},{include:"#initializer-expression"},{include:"#identifier"}]},"annotation-declaration":{begin:"([@][_[:alpha:]]+)\\b",beginCaptures:{"1":{name:"storage.type.annotation.apex"}},end:"(?<=\\)|$)",patterns:[{begin:"\\(",beginCaptures:{"0":{name:"punctuation.parenthesis.open.apex"}},end:"\\)",endCaptures:{"0":{name:"punctuation.parenthesis.close.apex"}},patterns:[{include:"#expression"}]},{include:"#statement"}]},"support-expression":{begin:"(?x)\n(ApexPages|Database|DMLException|Exception|PageReference|Savepoint|SchedulableContext|Schema|SObject|System|Test)(?=\\.|\\s) # supported apex namespaces",beginCaptures:{"1":{name:"support.class.apex"}},end:"(?<=\\)|$)|(?=\\})|(?=;)|(?=\\)|(?=\\]))|(?=\\,)",patterns:[{include:"#support-type"},{match:"(?:(\\.))([[:alpha:]]*)(?=\\()",captures:{"1":{name:"punctuation.accessor.apex"},"2":{name:"support.function.apex"}}},{match:"(?:(\\.))([[:alpha:]]+)",captures:{"1":{name:"punctuation.accessor.apex"},"2":{name:"support.type.apex"}}},{begin:"\\(",beginCaptures:{"0":{name:"punctuation.parenthesis.open.apex"}},end:"\\)",endCaptures:{"0":{name:"punctuation.parenthesis.close.apex"}},patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},{include:"#comment"},{include:"#statement"}]},"support-type":{name:"support.apex",patterns:[{include:"#comment"},{include:"#support-class"},{include:"#support-functions"},{include:"#support-name"}]},"support-class":{match:"\\b(ApexPages|Database|DMLException|Exception|PageReference|Savepoint|SchedulableContext|Schema|SObject|System|Test)\\b",captures:{"1":{name:"support.class.apex"}}},"support-functions":{match:"\\b(delete|execute|finish|insert|start|undelete|update|upsert)\\b",captures:{"1":{name:"support.function.apex"}}},"support-name":{patterns:[{match:"(\\.)\\s*([[:alpha:]]*)(?=\\()",captures:{"1":{name:"punctuation.accessor.apex"},"2":{name:"support.function.apex"}}},{begin:"\\(",beginCaptures:{"0":{name:"punctuation.parenthesis.open.apex"}},end:"\\)",endCaptures:{"0":{name:"punctuation.parenthesis.close.apex"}},patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},{match:"(\\.)\\s*([_[:alpha:]]*)",captures:{"1":{name:"punctuation.accessor.apex"},"2":{name:"support.type.apex"}}}]},"support-arguments":{begin:"<",beginCaptures:{"0":{name:"punctuation.definition.typeparameters.begin.apex"}},end:">",endCaptures:{"0":{name:"punctuation.definition.typeparameters.end.apex"}},patterns:[{include:"#comment"},{include:"#support-type"},{include:"#punctuation-comma"}]},"merge-expression":{begin:"(merge)\\b\\s+",beginCaptures:{"1":{name:"support.function.apex"}},end:"(?<=\\;)",patterns:[{include:"#object-creation-expression"},{include:"#merge-type-statement"},{include:"#expression"},{include:"#punctuation-semicolon"}]},"merge-type-statement":{match:"([_[:alpha:]]*)\\b\\s+([_[:alpha:]]*)\\b\\s*(\\;)",captures:{"1":{name:"variable.other.readwrite.apex"},"2":{name:"variable.other.readwrite.apex"},"3":{name:"punctuation.terminator.statement.apex"}}},"sharing-modifier":{name:"sharing.modifier.apex",match:"(?",endCaptures:{"0":{name:"punctuation.definition.typeparameters.end.apex"}},patterns:[{match:"(@?[_[:alpha:]][_[:alnum:]]*)\\b",captures:{"1":{name:"entity.name.type.type-parameter.apex"}}},{include:"#comment"},{include:"#punctuation-comma"}]},"field-declaration":{begin:"(?x)\n(?\n (?:\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)\\s+\n(\\g)\\s* # first field name\n(?!=>|==)(?=,|;|=|$)",beginCaptures:{"1":{patterns:[{include:"#support-type"},{include:"#type"}]},"5":{name:"entity.name.variable.field.apex"}},end:"(?=;)",patterns:[{name:"entity.name.variable.field.apex",match:"@?[_[:alpha:]][_[:alnum:]]*"},{include:"#punctuation-comma"},{include:"#comment"},{include:"#variable-initializer"},{include:"#class-or-trigger-members"}]},"property-declaration":{begin:"(?x)\n(?!.*\\b(?:class|interface|enum)\\b)\\s*\n(?\n (?\n (?:\n (?:ref\\s+)? # ref return\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n )\\s+\n)\n(?\\g\\s*\\.\\s*)?\n(?\\g)\\s*\n(?=\\{|=>|$)",beginCaptures:{"1":{patterns:[{include:"#type"}]},"6":{patterns:[{include:"#type"},{include:"#punctuation-accessor"}]},"7":{name:"entity.name.variable.property.apex"}},end:"(?<=\\})|(?=;)",patterns:[{include:"#comment"},{include:"#property-accessors"},{include:"#expression-body"},{include:"#variable-initializer"},{include:"#class-or-trigger-members"}]},"indexer-declaration":{begin:"(?x)\n(?\n (?\n (?:\n (?:ref\\s+)? # ref return\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n )\\s+\n)\n(?\\g\\s*\\.\\s*)?\n(?this)\\s*\n(?=\\[)",beginCaptures:{"1":{patterns:[{include:"#type"}]},"6":{patterns:[{include:"#type"},{include:"#punctuation-accessor"}]},"7":{name:"keyword.other.this.apex"}},end:"(?<=\\})|(?=;)",patterns:[{include:"#comment"},{include:"#property-accessors"},{include:"#expression-body"},{include:"#variable-initializer"}]},"property-accessors":{begin:"\\{",beginCaptures:{"0":{name:"punctuation.curlybrace.open.apex"}},end:"\\}",endCaptures:{"0":{name:"punctuation.curlybrace.close.apex"}},patterns:[{name:"storage.modifier.apex",match:"\\b(private|protected)\\b"},{name:"keyword.other.get.apex",match:"\\b(get)\\b"},{name:"keyword.other.set.apex",match:"\\b(set)\\b"},{include:"#comment"},{include:"#expression-body"},{include:"#block"},{include:"#punctuation-semicolon"}]},"method-declaration":{begin:"(?x)\n(?\n (?\n (?:\n (?:ref\\s+)? # ref return\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n )\\s+\n)\n(?\\g\\s*\\.\\s*)?\n(\\g)\\s*\n(<([^<>]+)>)?\\s*\n(?=\\()",beginCaptures:{"1":{patterns:[{include:"#support-type"},{include:"#type"}]},"6":{patterns:[{include:"#type"},{include:"#punctuation-accessor"}]},"7":{patterns:[{include:"#support-type"},{include:"#method-name-custom"}]},"8":{patterns:[{include:"#type-parameter-list"}]}},end:"(?<=\\})|(?=;)",patterns:[{include:"#comment"},{include:"#parenthesized-parameter-list"},{include:"#expression-body"},{include:"#block"}]},"method-name-custom":{name:"entity.name.function.apex",match:"@?[_[:alpha:]][_[:alnum:]]*"},"constructor-declaration":{begin:"(?=@?[_[:alpha:]][_[:alnum:]]*\\s*\\()",end:"(?<=\\})|(?=;)",patterns:[{match:"(@?[_[:alpha:]][_[:alnum:]]*)\\b",captures:{"1":{name:"entity.name.function.apex"}}},{begin:"(:)",beginCaptures:{"1":{name:"punctuation.separator.colon.apex"}},end:"(?=\\{|=>)",patterns:[{include:"#constructor-initializer"}]},{include:"#parenthesized-parameter-list"},{include:"#comment"},{include:"#expression-body"},{include:"#block"}]},"constructor-initializer":{begin:"\\b(?:(this))\\b\\s*(?=\\()",beginCaptures:{"1":{name:"keyword.other.this.apex"}},end:"(?<=\\))",patterns:[{include:"#argument-list"}]},block:{begin:"\\{",beginCaptures:{"0":{name:"punctuation.curlybrace.open.apex"}},end:"\\}",endCaptures:{"0":{name:"punctuation.curlybrace.close.apex"}},patterns:[{include:"#statement"}]},"variable-initializer":{begin:"(?)",beginCaptures:{"1":{name:"keyword.operator.assignment.apex"}},end:"(?=[,\\)\\];}])",patterns:[{include:"#expression"}]},"expression-body":{begin:"=>",beginCaptures:{"0":{name:"keyword.operator.arrow.apex"}},end:"(?=[,\\);}])",patterns:[{include:"#expression"}]},"goto-statement":{begin:"(?\n (?:\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)\\s*\n(?:(\\g)\\b)?",captures:{"1":{patterns:[{include:"#support-type"},{include:"#type"}]},"5":{name:"entity.name.variable.local.apex"}}}]},{include:"#comment"},{include:"#block"}]},"local-declaration":{patterns:[{include:"#local-constant-declaration"},{include:"#local-variable-declaration"}]},"local-variable-declaration":{begin:"(?x)\n(?:\n (?:(\\bref)\\s+)?(\\bvar\\b)| # ref local\n (?\n (?:\n (?:ref\\s+)? # ref local\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n )\n)\\s+\n(\\g)\\s*\n(?=,|;|=|\\))",beginCaptures:{"1":{name:"storage.modifier.apex"},"2":{name:"keyword.other.var.apex"},"3":{patterns:[{include:"#support-type"},{include:"#type"}]},"7":{name:"entity.name.variable.local.apex"}},end:"(?=;|\\))",patterns:[{name:"entity.name.variable.local.apex",match:"@?[_[:alpha:]][_[:alnum:]]*"},{include:"#punctuation-comma"},{include:"#comment"},{include:"#variable-initializer"}]},"local-constant-declaration":{begin:"(?x)\n(?\\b(?:const)\\b)\\s*\n(?\n (?:\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)\\s+\n(\\g)\\s*\n(?=,|;|=)",beginCaptures:{"1":{name:"storage.modifier.apex"},"2":{patterns:[{include:"#type"}]},"6":{name:"entity.name.variable.local.apex"}},end:"(?=;)",patterns:[{name:"entity.name.variable.local.apex",match:"@?[_[:alpha:]][_[:alnum:]]*"},{include:"#punctuation-comma"},{include:"#comment"},{include:"#variable-initializer"}]},"throw-expression":{match:"(?>=|\\|="},{name:"keyword.operator.bitwise.shift.apex",match:"<<|>>"},{name:"keyword.operator.comparison.apex",match:"==|!="},{name:"keyword.operator.relational.apex",match:"<=|>=|<|>"},{name:"keyword.operator.logical.apex",match:"\\!|&&|\\|\\|"},{name:"keyword.operator.bitwise.apex",match:"\\&|~|\\^|\\|"},{name:"keyword.operator.assignment.apex",match:"\\="},{name:"keyword.operator.decrement.apex",match:"--"},{name:"keyword.operator.increment.apex",match:"\\+\\+"},{name:"keyword.operator.arithmetic.apex",match:"%|\\*|/|-|\\+"}]},"conditional-operator":{begin:"(?\n (?:\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)\\s*\n(\\))(?=\\s*@?[_[:alnum:]\\(])",captures:{"1":{name:"punctuation.parenthesis.open.apex"},"2":{patterns:[{include:"#support-type"},{include:"#type"}]},"6":{name:"punctuation.parenthesis.close.apex"}}},"this-expression":{match:"\\b(?:(this))\\b",captures:{"1":{name:"keyword.other.this.apex"}}},"invocation-expression":{begin:"(?x)\n(?:(\\??\\.)\\s*)? # safe navigator or accessor\n(@?[_[:alpha:]][_[:alnum:]]*)\\s* # method name\n(?\\s*<([^<>]|\\g)+>\\s*)?\\s* # type arguments\n(?=\\() # open paren of argument list",beginCaptures:{"1":{patterns:[{include:"#punctuation-accessor"},{include:"#operator-safe-navigation"}]},"2":{name:"entity.name.function.apex"},"3":{patterns:[{include:"#type-arguments"}]}},end:"(?<=\\))",patterns:[{include:"#argument-list"}]},"element-access-expression":{begin:"(?x)\n(?:(\\??\\.)\\s*)? # safe navigator or accessor\n(?:(@?[_[:alpha:]][_[:alnum:]]*)\\s*)? # property name\n(?:(\\?)\\s*)? # null-conditional operator?\n(?=\\[) # open bracket of argument list",beginCaptures:{"1":{patterns:[{include:"#punctuation-accessor"},{include:"#operator-safe-navigation"}]},"2":{name:"variable.other.object.property.apex"},"3":{name:"keyword.operator.null-conditional.apex"}},end:"(?<=\\])(?!\\s*\\[)",patterns:[{include:"#bracketed-argument-list"}]},"member-access-expression":{patterns:[{match:"(?x)\n(\\??\\.)\\s* # safe navigator or accessor\n(@?[_[:alpha:]][_[:alnum:]]*)\\s* # property name\n(?![_[:alnum:]]|\\(|(\\?)?\\[|<) # next character is not alpha-numeric, nor a (, [, or <. Also, test for ?[",captures:{"1":{patterns:[{include:"#punctuation-accessor"},{include:"#operator-safe-navigation"}]},"2":{name:"variable.other.object.property.apex"}}},{match:"(?x)\n(\\??\\.)?\\s*\n(@?[_[:alpha:]][_[:alnum:]]*)\n(?\\s*<([^<>]|\\g)+>\\s*)\n(?=\n (\\s*\\?)?\n \\s*\\.\\s*@?[_[:alpha:]][_[:alnum:]]*\n)",captures:{"1":{patterns:[{include:"#punctuation-accessor"},{include:"#operator-safe-navigation"}]},"2":{name:"variable.other.object.apex"},"3":{patterns:[{include:"#type-arguments"}]}}},{match:"(?x)\n(@?[_[:alpha:]][_[:alnum:]]*)\n(?=\n (\\s*\\?)?\n \\s*\\.\\s*@?[_[:alpha:]][_[:alnum:]]*\n)",captures:{"1":{name:"variable.other.object.apex"}}}]},"object-creation-expression":{patterns:[{include:"#object-creation-expression-with-parameters"},{include:"#object-creation-expression-with-no-parameters"},{include:"#punctuation-comma"}]},"object-creation-expression-with-parameters":{begin:"(?x)\n(delete|insert|undelete|update|upsert)?\n\\s*(new)\\s+\n(?\n (?:\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)\\s*\n(?=\\()",beginCaptures:{"1":{name:"support.function.apex"},"2":{name:"keyword.control.new.apex"},"3":{patterns:[{include:"#support-type"},{include:"#type"}]}},end:"(?<=\\))",patterns:[{include:"#argument-list"}]},"object-creation-expression-with-no-parameters":{match:"(?x)\n(delete|insert|undelete|update|upsert)?\n\\s*(new)\\s+\n(?\n (?:\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)\\s*\n(?=\\{|$)",captures:{"1":{name:"support.function.apex"},"2":{name:"keyword.control.new.apex"},"3":{patterns:[{include:"#support-type"},{include:"#type"}]}}},"array-creation-expression":{begin:"(?x)\n\\b(new)\\b\\s*\n(?\n (?:\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)?\\s*\n(?=\\[)",beginCaptures:{"1":{name:"keyword.control.new.apex"},"2":{patterns:[{include:"#support-type"},{include:"#type"}]}},end:"(?<=\\])",patterns:[{include:"#bracketed-argument-list"}]},"parenthesized-parameter-list":{begin:"(\\()",beginCaptures:{"0":{name:"punctuation.parenthesis.open.apex"}},end:"(\\))",endCaptures:{"0":{name:"punctuation.parenthesis.close.apex"}},patterns:[{include:"#comment"},{include:"#parameter"},{include:"#punctuation-comma"},{include:"#variable-initializer"}]},parameter:{match:"(?x)\n(?:(?:\\b(this)\\b)\\s+)?\n(?\n (?:\n (?:ref\\s+)? # ref return\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)\\s+\n(\\g)",captures:{"1":{name:"storage.modifier.apex"},"2":{patterns:[{include:"#support-type"},{include:"#type"}]},"6":{name:"entity.name.variable.parameter.apex"}}},"argument-list":{begin:"\\(",beginCaptures:{"0":{name:"punctuation.parenthesis.open.apex"}},end:"\\)",endCaptures:{"0":{name:"punctuation.parenthesis.close.apex"}},patterns:[{include:"#named-argument"},{include:"#expression"},{include:"#punctuation-comma"}]},"bracketed-argument-list":{begin:"\\[",beginCaptures:{"0":{name:"punctuation.squarebracket.open.apex"}},end:"\\]",endCaptures:{"0":{name:"punctuation.squarebracket.close.apex"}},patterns:[{include:"#soql-query-expression"},{include:"#named-argument"},{include:"#expression"},{include:"#punctuation-comma"}]},"named-argument":{begin:"(@?[_[:alpha:]][_[:alnum:]]*)\\s*(:)",beginCaptures:{"1":{name:"entity.name.variable.parameter.apex"},"2":{name:"punctuation.separator.colon.apex"}},end:"(?=(,|\\)|\\]))",patterns:[{include:"#expression"}]},type:{name:"meta.type.apex",patterns:[{include:"#comment"},{include:"#type-builtin"},{include:"#type-name"},{include:"#type-arguments"},{include:"#type-array-suffix"},{include:"#type-nullable-suffix"}]},"type-builtin":{match:"\\b(Blob|Boolean|byte|Date|Datetime|Decimal|Double|ID|Integer|Long|Object|String|Time|void)\\b",captures:{"1":{name:"keyword.type.apex"}}},"type-name":{patterns:[{match:"(@?[_[:alpha:]][_[:alnum:]]*)\\s*(\\.)",captures:{"1":{name:"storage.type.apex"},"2":{name:"punctuation.accessor.apex"}}},{match:"(\\.)\\s*(@?[_[:alpha:]][_[:alnum:]]*)",captures:{"1":{name:"punctuation.accessor.apex"},"2":{name:"storage.type.apex"}}},{name:"storage.type.apex",match:"@?[_[:alpha:]][_[:alnum:]]*"}]},"type-arguments":{begin:"<",beginCaptures:{"0":{name:"punctuation.definition.typeparameters.begin.apex"}},end:">",endCaptures:{"0":{name:"punctuation.definition.typeparameters.end.apex"}},patterns:[{include:"#comment"},{include:"#support-type"},{include:"#type"},{include:"#punctuation-comma"}]},"type-array-suffix":{begin:"\\[",beginCaptures:{"0":{name:"punctuation.squarebracket.open.apex"}},end:"\\]",endCaptures:{"0":{name:"punctuation.squarebracket.close.apex"}},patterns:[{include:"#punctuation-comma"}]},"type-nullable-suffix":{match:"\\?",captures:{"0":{name:"punctuation.separator.question-mark.apex"}}},"operator-assignment":{name:"keyword.operator.assignment.apex",match:"(?)",endCaptures:{"1":{name:"punctuation.definition.tag.apex"}},patterns:[{include:"#xml-attribute"}]},"xml-attribute":{patterns:[{match:"(?x)\n(?:^|\\s+)\n(\n (?:\n ([-_[:alnum:]]+)\n (:)\n )?\n ([-_[:alnum:]]+)\n)\n(=)",captures:{"1":{name:"entity.other.attribute-name.apex"},"2":{name:"entity.other.attribute-name.namespace.apex"},"3":{name:"punctuation.separator.colon.apex"},"4":{name:"entity.other.attribute-name.localname.apex"},"5":{name:"punctuation.separator.equals.apex"}}},{include:"#xml-string"}]},"xml-cdata":{name:"string.unquoted.cdata.apex",begin:"",endCaptures:{"0":{name:"punctuation.definition.string.end.apex"}}},"xml-string":{patterns:[{name:"string.quoted.single.apex",begin:"\\'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.apex"}},end:"\\'",endCaptures:{"0":{name:"punctuation.definition.string.end.apex"}},patterns:[{include:"#xml-character-entity"}]},{name:"string.quoted.double.apex",begin:"\\\"",beginCaptures:{"0":{name:"punctuation.definition.stringdoublequote.begin.apex"}},end:"\\\"",endCaptures:{"0":{name:"punctuation.definition.stringdoublequote.end.apex"}},patterns:[{include:"#xml-character-entity"}]}]},"xml-character-entity":{patterns:[{name:"constant.character.entity.apex",match:"(?x)\n(&)\n(\n (?:[[:alpha:]:_][[:alnum:]:_.-]*)|\n (?:\\#[[:digit:]]+)|\n (?:\\#x[[:xdigit:]]+)\n)\n(;)",captures:{"1":{name:"punctuation.definition.constant.apex"},"3":{name:"punctuation.definition.constant.apex"}}},{name:"invalid.illegal.bad-ampersand.apex",match:"&"}]},"xml-comment":{name:"comment.block.apex",begin:"",endCaptures:{"0":{name:"punctuation.definition.comment.apex"}}}}}; + +export { apex_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/apl.tmLanguage-d5366ebc.mjs b/docs/shiki/dist/languages/apl.tmLanguage-d5366ebc.mjs new file mode 100644 index 00000000..193287de --- /dev/null +++ b/docs/shiki/dist/languages/apl.tmLanguage-d5366ebc.mjs @@ -0,0 +1,3 @@ +var apl_tmLanguage = {$schema:"https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",name:"apl",scopeName:"source.apl",fileTypes:["apl","apla","aplc","aplf","apli","apln","aplo","dyalog","dyapp","mipage"],firstLineMatch:"(?x)\n# APL symbols\n[⌶-⍺]\n|\n\n# Hashbang\n^\\#!.*(?:\\s|\\/|(?<=!)\\b)\n\t(?:gnu[-._]?apl|aplx?|dyalog)\n(?:$|\\s)\n|\n\n# Modeline\n(?i:\n\t# Emacs\n\t-\\*-(?:\\s*(?=[^:;\\s]+\\s*-\\*-)|(?:.*?[;\\s]|(?<=-\\*-))mode\\s*:\\s*)\n\t\tapl\n\t(?=[\\s;]|(?]?\\d+|m)?|\\sex)(?=:(?=\\s*set?\\s[^\\n:]+:)|:(?!\\s* set?\\s))(?:(?:\\s|\\s*:\\s*)\\w*(?:\\s*=(?:[^\\n\\\\\\s]|\\\\.)*)?)*[\\s:](?:filetype|ft|syntax)\\s*=\n\t\tapl\n\t(?=\\s|:|$)\n)",foldingStartMarker:"{",foldingStopMarker:"}",patterns:[{match:"\\A#!.*$",name:"comment.line.shebang.apl"},{include:"#heredocs"},{include:"#main"},{contentName:"text.embedded.apl",begin:"^\\s*((\\))OFF|(\\])NEXTFILE)\\b(.*)$",end:"(?=N)A",beginCaptures:{"1":{name:"entity.name.command.eof.apl"},"2":{name:"punctuation.definition.command.apl"},"3":{name:"punctuation.definition.command.apl"},"4":{patterns:[{include:"#comment"}]}}},{name:"meta.round.bracketed.group.apl",patterns:[{include:"#main"}],begin:"\\(",end:"\\)",beginCaptures:{"0":{name:"punctuation.round.bracket.begin.apl"}},endCaptures:{"0":{name:"punctuation.round.bracket.end.apl"}}},{name:"meta.square.bracketed.group.apl",patterns:[{include:"#main"}],begin:"\\[",end:"\\]",beginCaptures:{"0":{name:"punctuation.square.bracket.begin.apl"}},endCaptures:{"0":{name:"punctuation.square.bracket.end.apl"}}},{name:"meta.system.command.apl",begin:"^\\s*((\\))\\S+)",end:"$",beginCaptures:{"1":{name:"entity.name.command.apl"},"2":{name:"punctuation.definition.command.apl"}},patterns:[{include:"#command-arguments"},{include:"#command-switches"},{include:"#main"}]},{name:"meta.user.command.apl",begin:"^\\s*((\\])\\S+)",end:"$",beginCaptures:{"1":{name:"entity.name.command.apl"},"2":{name:"punctuation.definition.command.apl"}},patterns:[{include:"#command-arguments"},{include:"#command-switches"},{include:"#main"}]}],repository:{main:{patterns:[{include:"#class"},{include:"#definition"},{include:"#comment"},{include:"#label"},{include:"#sck"},{include:"#strings"},{include:"#number"},{include:"#lambda"},{include:"#sysvars"},{include:"#symbols"},{include:"#name"}]},comment:{patterns:[{name:"comment.line.apl",begin:"⍝",end:"$",captures:{"0":{name:"punctuation.definition.comment.apl"}}}]},number:{patterns:[{name:"constant.numeric.apl",match:"¯?[0-9][¯0-9A-Za-z]*(?:\\.[¯0-9Ee][¯0-9A-Za-z]*)*|¯?\\.[0-9Ee][¯0-9A-Za-z]*"}]},strings:{patterns:[{name:"string.quoted.single.apl",begin:"'",end:"'|$",beginCaptures:{"0":{name:"punctuation.definition.string.begin.apl"}},endCaptures:{"0":{name:"punctuation.definition.string.end.apl"}},patterns:[{match:"[^']*[^'\\n\\r\\\\]$",name:"invalid.illegal.string.apl"}]},{name:"string.quoted.double.apl",begin:"\"",end:"\"|$",beginCaptures:{"0":{name:"punctuation.definition.string.begin.apl"}},endCaptures:{"0":{name:"punctuation.definition.string.end.apl"}},patterns:[{match:"[^\"]*[^\"\\n\\r\\\\]$",name:"invalid.illegal.string.apl"}]}]},name:{patterns:[{name:"variable.other.readwrite.apl",match:"(?x)\n[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ]\n[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*"}]},label:{patterns:[{name:"meta.label.apl",match:"(?x)\n^\\s*\n(\n\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ]\n\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*\n)\n(:)",captures:{"1":{name:"entity.label.name.apl"},"2":{name:"punctuation.definition.label.end.apl"}}}]},symbols:{patterns:[{match:"(?<=\\s)←(?=\\s|$)",name:"keyword.spaced.operator.assignment.apl"},{match:"(?<=\\s)→(?=\\s|$)",name:"keyword.spaced.control.goto.apl"},{match:"(?<=\\s)≡(?=\\s|$)",name:"keyword.spaced.operator.identical.apl"},{match:"(?<=\\s)≢(?=\\s|$)",name:"keyword.spaced.operator.not-identical.apl"},{match:"\\+",name:"keyword.operator.plus.apl"},{match:"[-−]",name:"keyword.operator.minus.apl"},{match:"×",name:"keyword.operator.times.apl"},{match:"÷",name:"keyword.operator.divide.apl"},{match:"⌊",name:"keyword.operator.floor.apl"},{match:"⌈",name:"keyword.operator.ceiling.apl"},{match:"[∣|]",name:"keyword.operator.absolute.apl"},{match:"[⋆*]",name:"keyword.operator.exponent.apl"},{match:"⍟",name:"keyword.operator.logarithm.apl"},{match:"○",name:"keyword.operator.circle.apl"},{match:"!",name:"keyword.operator.factorial.apl"},{match:"∧",name:"keyword.operator.and.apl"},{match:"∨",name:"keyword.operator.or.apl"},{match:"⍲",name:"keyword.operator.nand.apl"},{match:"⍱",name:"keyword.operator.nor.apl"},{match:"<",name:"keyword.operator.less.apl"},{match:"≤",name:"keyword.operator.less-or-equal.apl"},{match:"=",name:"keyword.operator.equal.apl"},{match:"≥",name:"keyword.operator.greater-or-equal.apl"},{match:">",name:"keyword.operator.greater.apl"},{match:"≠",name:"keyword.operator.not-equal.apl"},{match:"[∼~]",name:"keyword.operator.tilde.apl"},{match:"\\?",name:"keyword.operator.random.apl"},{match:"[∊∈]",name:"keyword.operator.member-of.apl"},{match:"⍷",name:"keyword.operator.find.apl"},{match:",",name:"keyword.operator.comma.apl"},{match:"⍪",name:"keyword.operator.comma-bar.apl"},{match:"⌷",name:"keyword.operator.squad.apl"},{match:"⍳",name:"keyword.operator.iota.apl"},{match:"⍴",name:"keyword.operator.rho.apl"},{match:"↑",name:"keyword.operator.take.apl"},{match:"↓",name:"keyword.operator.drop.apl"},{match:"⊣",name:"keyword.operator.left.apl"},{match:"⊢",name:"keyword.operator.right.apl"},{match:"⊤",name:"keyword.operator.encode.apl"},{match:"⊥",name:"keyword.operator.decode.apl"},{match:"\\/",name:"keyword.operator.slash.apl"},{match:"⌿",name:"keyword.operator.slash-bar.apl"},{match:"\\x5C",name:"keyword.operator.backslash.apl"},{match:"⍀",name:"keyword.operator.backslash-bar.apl"},{match:"⌽",name:"keyword.operator.rotate-last.apl"},{match:"⊖",name:"keyword.operator.rotate-first.apl"},{match:"⍉",name:"keyword.operator.transpose.apl"},{match:"⍋",name:"keyword.operator.grade-up.apl"},{match:"⍒",name:"keyword.operator.grade-down.apl"},{match:"⌹",name:"keyword.operator.quad-divide.apl"},{match:"≡",name:"keyword.operator.identical.apl"},{match:"≢",name:"keyword.operator.not-identical.apl"},{match:"⊂",name:"keyword.operator.enclose.apl"},{match:"⊃",name:"keyword.operator.pick.apl"},{match:"∩",name:"keyword.operator.intersection.apl"},{match:"∪",name:"keyword.operator.union.apl"},{match:"⍎",name:"keyword.operator.hydrant.apl"},{match:"⍕",name:"keyword.operator.thorn.apl"},{match:"⊆",name:"keyword.operator.underbar-shoe-left.apl"},{match:"⍸",name:"keyword.operator.underbar-iota.apl"},{match:"¨",name:"keyword.operator.each.apl"},{match:"⍤",name:"keyword.operator.rank.apl"},{match:"⌸",name:"keyword.operator.quad-equal.apl"},{match:"⍨",name:"keyword.operator.commute.apl"},{match:"⍣",name:"keyword.operator.power.apl"},{match:"\\.",name:"keyword.operator.dot.apl"},{match:"∘",name:"keyword.operator.jot.apl"},{match:"⍠",name:"keyword.operator.quad-colon.apl"},{match:"&",name:"keyword.operator.ampersand.apl"},{match:"⌶",name:"keyword.operator.i-beam.apl"},{match:"⌺",name:"keyword.operator.quad-diamond.apl"},{match:"@",name:"keyword.operator.at.apl"},{match:"◊",name:"keyword.operator.lozenge.apl"},{match:";",name:"keyword.operator.semicolon.apl"},{match:"¯",name:"keyword.operator.high-minus.apl"},{match:"←",name:"keyword.operator.assignment.apl"},{match:"→",name:"keyword.control.goto.apl"},{match:"⍬",name:"constant.language.zilde.apl"},{match:"⋄",name:"keyword.operator.diamond.apl"},{match:"⍫",name:"keyword.operator.lock.apl"},{match:"⎕",name:"keyword.operator.quad.apl"},{match:"##",name:"constant.language.namespace.parent.apl"},{match:"#",name:"constant.language.namespace.root.apl"},{match:"⌻",name:"keyword.operator.quad-jot.apl"},{match:"⌼",name:"keyword.operator.quad-circle.apl"},{match:"⌾",name:"keyword.operator.circle-jot.apl"},{match:"⍁",name:"keyword.operator.quad-slash.apl"},{match:"⍂",name:"keyword.operator.quad-backslash.apl"},{match:"⍃",name:"keyword.operator.quad-less.apl"},{match:"⍄",name:"keyword.operator.greater.apl"},{match:"⍅",name:"keyword.operator.vane-left.apl"},{match:"⍆",name:"keyword.operator.vane-right.apl"},{match:"⍇",name:"keyword.operator.quad-arrow-left.apl"},{match:"⍈",name:"keyword.operator.quad-arrow-right.apl"},{match:"⍊",name:"keyword.operator.tack-down.apl"},{match:"⍌",name:"keyword.operator.quad-caret-down.apl"},{match:"⍍",name:"keyword.operator.quad-del-up.apl"},{match:"⍏",name:"keyword.operator.vane-up.apl"},{match:"⍐",name:"keyword.operator.quad-arrow-up.apl"},{match:"⍑",name:"keyword.operator.tack-up.apl"},{match:"⍓",name:"keyword.operator.quad-caret-up.apl"},{match:"⍔",name:"keyword.operator.quad-del-down.apl"},{match:"⍖",name:"keyword.operator.vane-down.apl"},{match:"⍗",name:"keyword.operator.quad-arrow-down.apl"},{match:"⍘",name:"keyword.operator.underbar-quote.apl"},{match:"⍚",name:"keyword.operator.underbar-diamond.apl"},{match:"⍛",name:"keyword.operator.underbar-jot.apl"},{match:"⍜",name:"keyword.operator.underbar-circle.apl"},{match:"⍞",name:"keyword.operator.quad-quote.apl"},{match:"⍡",name:"keyword.operator.dotted-tack-up.apl"},{match:"⍢",name:"keyword.operator.dotted-del.apl"},{match:"⍥",name:"keyword.operator.dotted-circle.apl"},{match:"⍦",name:"keyword.operator.stile-shoe-up.apl"},{match:"⍧",name:"keyword.operator.stile-shoe-left.apl"},{match:"⍩",name:"keyword.operator.dotted-greater.apl"},{match:"⍭",name:"keyword.operator.stile-tilde.apl"},{match:"⍮",name:"keyword.operator.underbar-semicolon.apl"},{match:"⍯",name:"keyword.operator.quad-not-equal.apl"},{match:"⍰",name:"keyword.operator.quad-question.apl"}]},definition:{patterns:[{name:"meta.function.apl",begin:"(?x) ^\\s*? (?# 1: keyword.operator.nabla.apl) (∇) (?: \\s* (?: (?# 2: entity.function.return-value.apl) ( [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* ) | \\s* (?# 3: entity.function.return-value.shy.apl) ( (\\{) (?# 4: punctuation.definition.return-value.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )* (\\}) (?# 5: punctuation.definition.return-value.end.apl) | (\\() (?# 6: punctuation.definition.return-value.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )* (\\)) (?# 7: punctuation.definition.return-value.end.apl) | (\\(\\s*\\{) (?# 8: punctuation.definition.return-value.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )* (\\}\\s*\\)) (?# 9: punctuation.definition.return-value.end.apl) | (\\{\\s*\\() (?# 10: punctuation.definition.return-value.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )* (\\)\\s*\\}) (?# 11: punctuation.definition.return-value.end.apl) ) \\s* ) \\s* (?# 12: keyword.operator.assignment.apl) (←) )? \\s* (?: (?# MONADIC) (?: (?# 13: entity.function.name.apl) ( [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* ) \\s* (?# 14: entity.function.axis.apl) ( (?# 15: punctuation.definition.axis.begin.apl) (\\[) \\s* (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* (?# 16: invalid.illegal.extra-characters.apl) (.*?) | (?# 17: invalid.illegal.apl) ([^\\]]*) ) \\s* (?# 18: punctuation.definition.axis.end.apl) (\\]) )? \\s*? (?# 19: entity.function.arguments.right.apl) ( (?<=\\s|\\]) [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* | (\\() (?# 20: punctuation.definition.arguments.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )* (\\)) (?# 21: punctuation.definition.arguments.end.apl) ) \\s* (?=;|$) ) | (?# DYADIC/AMBIVALENT) (?#==================) (?: (?# 22: entity.function.arguments.left.apl) ( [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s+ ) | (?# 23: entity.function.arguments.left.optional.apl) ( (\\{) (?# 24: punctuation.definition.arguments.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )* (\\}) (?# 25: punctuation.definition.arguments.end.apl) | (\\(\\s*\\{) (?# 26: punctuation.definition.arguments.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )* (\\}\\s*\\)) (?# 27: punctuation.definition.arguments.end.apl) | (\\{\\s*\\() (?# 28: punctuation.definition.arguments.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )* (\\)\\s*\\}) (?# 29: punctuation.definition.arguments.end.apl) ) )? \\s* (?: (?# 30: entity.function.name.apl) ( [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* ) \\s* (?# 31: entity.function.axis.apl) ( (?# 32: punctuation.definition.axis.begin.apl) (\\[) \\s* (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* (?# 33: invalid.illegal.extra-characters.apl) (.*?) | (?# 34: invalid.illegal.apl) ([^\\]]*) ) \\s* (?# 35: punctuation.definition.axis.end.apl) (\\]) )? | (?# 36: entity.function.operands.apl) ( (?# 37: punctuation.definition.operands.begin.apl) (\\() (?# 38: entity.function.operands.left.apl) ( \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* )? \\s* (?# 39: entity.function.name.apl) ( [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* ) \\s*? (?# 40: entity.function.axis.apl) ( (?# 41: punctuation.definition.axis.begin.apl) (\\[) \\s* (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* (?# 42: invalid.illegal.extra-characters.apl) (.*?) | (?# 43: invalid.illegal.apl) ([^\\]]*) ) \\s* (?# 44: punctuation.definition.axis.end.apl) (\\]) )? \\s* (?# 45: entity.function.operands.right.apl) ( [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )? (?# 46: punctuation.definition.operands.end.apl) (\\)) ) ) \\s* (?# 47: entity.function.arguments.right.apl) ( (?<=\\s|\\]) [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* | \\s* (\\() (?# 48: punctuation.definition.arguments.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )* (\\)) (?# 49: punctuation.definition.arguments.end.apl) )? (?#==================) ) \\s* (?# 50: invalid.illegal.arguments.right.apl) ([^;]+)? (?# 51: entity.function.local-variables.apl) ( (?# 52: Include “;”) ( (?> \\s* ; (?: \\s* [⎕A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )+ )+ ) | (?# 53: invalid.illegal.local-variables.apl) ([^⍝]+) )? \\s* (?# 54: comment.line.apl) (⍝.*)? $",end:"^\\s*?(?:(∇)|(⍫))\\s*?(⍝.*?)?$",patterns:[{name:"entity.function.definition.apl",match:"(?x)\n^\\s*\n(\n\t(?>\n\t\t;\n\t\t(?:\n\t\t\t\\s*\n\t\t\t[⎕A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ]\n\t\t\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*\n\t\t\t\\s*\n\t\t)+\n\t)+\n)",captures:{"0":{name:"entity.function.local-variables.apl"},"1":{patterns:[{name:"punctuation.separator.apl",match:";"}]}}},{include:"$self"}],beginCaptures:{"0":{name:"entity.function.definition.apl"},"1":{name:"keyword.operator.nabla.apl"},"2":{name:"entity.function.return-value.apl"},"3":{name:"entity.function.return-value.shy.apl"},"4":{name:"punctuation.definition.return-value.begin.apl"},"5":{name:"punctuation.definition.return-value.end.apl"},"6":{name:"punctuation.definition.return-value.begin.apl"},"7":{name:"punctuation.definition.return-value.end.apl"},"8":{name:"punctuation.definition.return-value.begin.apl"},"9":{name:"punctuation.definition.return-value.end.apl"},"10":{name:"punctuation.definition.return-value.begin.apl"},"11":{name:"punctuation.definition.return-value.end.apl"},"12":{name:"keyword.operator.assignment.apl"},"13":{name:"entity.function.name.apl",patterns:[{include:"#embolden"}]},"14":{name:"entity.function.axis.apl"},"15":{name:"punctuation.definition.axis.begin.apl"},"16":{name:"invalid.illegal.extra-characters.apl"},"17":{name:"invalid.illegal.apl"},"18":{name:"punctuation.definition.axis.end.apl"},"19":{name:"entity.function.arguments.right.apl"},"20":{name:"punctuation.definition.arguments.begin.apl"},"21":{name:"punctuation.definition.arguments.end.apl"},"22":{name:"entity.function.arguments.left.apl"},"23":{name:"entity.function.arguments.left.optional.apl"},"24":{name:"punctuation.definition.arguments.begin.apl"},"25":{name:"punctuation.definition.arguments.end.apl"},"26":{name:"punctuation.definition.arguments.begin.apl"},"27":{name:"punctuation.definition.arguments.end.apl"},"28":{name:"punctuation.definition.arguments.begin.apl"},"29":{name:"punctuation.definition.arguments.end.apl"},"30":{name:"entity.function.name.apl",patterns:[{include:"#embolden"}]},"31":{name:"entity.function.axis.apl"},"32":{name:"punctuation.definition.axis.begin.apl"},"33":{name:"invalid.illegal.extra-characters.apl"},"34":{name:"invalid.illegal.apl"},"35":{name:"punctuation.definition.axis.end.apl"},"36":{name:"entity.function.operands.apl"},"37":{name:"punctuation.definition.operands.begin.apl"},"38":{name:"entity.function.operands.left.apl"},"39":{name:"entity.function.name.apl",patterns:[{include:"#embolden"}]},"40":{name:"entity.function.axis.apl"},"41":{name:"punctuation.definition.axis.begin.apl"},"42":{name:"invalid.illegal.extra-characters.apl"},"43":{name:"invalid.illegal.apl"},"44":{name:"punctuation.definition.axis.end.apl"},"45":{name:"entity.function.operands.right.apl"},"46":{name:"punctuation.definition.operands.end.apl"},"47":{name:"entity.function.arguments.right.apl"},"48":{name:"punctuation.definition.arguments.begin.apl"},"49":{name:"punctuation.definition.arguments.end.apl"},"50":{name:"invalid.illegal.arguments.right.apl"},"51":{name:"entity.function.local-variables.apl"},"52":{patterns:[{name:"punctuation.separator.apl",match:";"}]},"53":{name:"invalid.illegal.local-variables.apl"},"54":{name:"comment.line.apl"}},endCaptures:{"1":{name:"keyword.operator.nabla.apl"},"2":{name:"keyword.operator.lock.apl"},"3":{name:"comment.line.apl"}}}]},embolden:{patterns:[{name:"markup.bold.identifier.apl",match:".+"}]},lambda:{name:"meta.lambda.function.apl",begin:"\\{",end:"\\}",beginCaptures:{"0":{name:"punctuation.definition.lambda.begin.apl"}},endCaptures:{"0":{name:"punctuation.definition.lambda.end.apl"}},patterns:[{include:"#main"},{include:"#lambda-variables"}]},"lambda-variables":{patterns:[{match:"⍺⍺",name:"constant.language.lambda.operands.left.apl"},{match:"⍵⍵",name:"constant.language.lambda.operands.right.apl"},{match:"[⍺⍶]",name:"constant.language.lambda.arguments.left.apl"},{match:"[⍵⍹]",name:"constant.language.lambda.arguments.right.apl"},{match:"χ",name:"constant.language.lambda.arguments.axis.apl"},{match:"∇∇",name:"constant.language.lambda.operands.self.operator.apl"},{match:"∇",name:"constant.language.lambda.operands.self.function.apl"},{match:"λ",name:"constant.language.lambda.symbol.apl"}]},sysvars:{patterns:[{match:"(?:(⎕)|(⍞))[A-Za-z]*",name:"support.system.variable.apl",captures:{"1":{name:"punctuation.definition.quad.apl"},"2":{name:"punctuation.definition.quad-quote.apl"}}}]},"command-arguments":{patterns:[{name:"variable.parameter.argument.apl",begin:"\\b(?=\\S)",end:"\\b(?=\\s)",patterns:[{include:"#main"}]}]},"command-switches":{patterns:[{name:"variable.parameter.switch.apl",begin:"(?x)\n(?<=\\s)(-)\n(\n\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ]\n\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*\n)\n(=)",end:"\\b(?=\\s)",beginCaptures:{"1":{name:"punctuation.delimiter.switch.apl"},"2":{name:"entity.name.switch.apl"},"3":{name:"punctuation.assignment.switch.apl"}},patterns:[{include:"#main"}]},{name:"variable.parameter.switch.apl",match:"(?x)\n(?<=\\s)(-)\n(\n\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ]\n\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*\n)\n(?!=)",captures:{"1":{name:"punctuation.delimiter.switch.apl"},"2":{name:"entity.name.switch.apl"}}}]},sck:{patterns:[{name:"keyword.control.sck.apl",match:"(?<=\\s|^)(:)[A-Za-z]+",captures:{"1":{name:"punctuation.definition.sck.begin.apl"}}}]},"class":{patterns:[{begin:"(?x)\n(?<=\\s|^)\n((:)Class)\n\\s+\n(\n\t'[^']*'?\n\t|\n\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ]\n\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*\n)\n\\s*\n(\n\t(:)\n\t\\s*\n\t(?:\n\t\t(\n\t\t\t'[^']*'?\n\t\t\t|\n\t\t\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ]\n\t\t\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*\n\t\t)\n\t\t\\s*\n\t)?\n)?\n(.*?)$",end:"(?<=\\s|^)((:)EndClass)(?=\\b)",beginCaptures:{"0":{name:"meta.class.apl"},"1":{name:"keyword.control.class.apl"},"2":{name:"punctuation.definition.class.apl"},"3":{name:"entity.name.type.class.apl",patterns:[{include:"#strings"}]},"4":{name:"entity.other.inherited-class.apl"},"5":{name:"punctuation.separator.inheritance.apl"},"6":{patterns:[{include:"#strings"}]},"7":{name:"entity.other.class.interfaces.apl",patterns:[{include:"#csv"}]}},endCaptures:{"1":{name:"keyword.control.class.apl"},"2":{name:"punctuation.definition.class.apl"}},patterns:[{name:"meta.field.apl",begin:"(?<=\\s|^)(:)Field(?=\\s)",end:"\\s*(←.*)?(?:$|(?=⍝))",beginCaptures:{"0":{name:"keyword.control.field.apl"},"1":{name:"punctuation.definition.field.apl"}},endCaptures:{"0":{name:"entity.other.initial-value.apl"},"1":{patterns:[{include:"#main"}]}},patterns:[{name:"storage.modifier.access.public.apl",match:"(?<=\\s|^)Public(?=\\s|$)"},{name:"storage.modifier.access.private.apl",match:"(?<=\\s|^)Private(?=\\s|$)"},{name:"storage.modifier.shared.apl",match:"(?<=\\s|^)Shared(?=\\s|$)"},{name:"storage.modifier.instance.apl",match:"(?<=\\s|^)Instance(?=\\s|$)"},{name:"storage.modifier.readonly.apl",match:"(?<=\\s|^)ReadOnly(?=\\s|$)"},{name:"entity.name.type.apl",match:"(?x)\n(\n\t'[^']*'?\n\t|\n\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ]\n\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*\n)",captures:{"1":{patterns:[{include:"#strings"}]}}}]},{include:"$self"}]}]},csv:{patterns:[{match:",",name:"punctuation.separator.apl"},{include:"$self"}]},heredocs:{patterns:[{name:"meta.heredoc.apl",begin:"^.*?⎕INP\\s+('|\")((?i).*?HTML?.*?|END-OF-⎕INP)\\1.*$",end:"^.*?\\2.*?$",beginCaptures:{"0":{patterns:[{include:"#main"}]}},endCaptures:{"0":{name:"constant.other.apl"}},contentName:"text.embedded.html.basic",patterns:[{include:"text.html.basic"},{include:"#embedded-apl"}]},{name:"meta.heredoc.apl",begin:"^.*?⎕INP\\s+('|\")((?i).*?(?:XML|XSLT|SVG|RSS).*?)\\1.*$",end:"^.*?\\2.*?$",beginCaptures:{"0":{patterns:[{include:"#main"}]}},endCaptures:{"0":{name:"constant.other.apl"}},contentName:"text.embedded.xml",patterns:[{include:"text.xml"},{include:"#embedded-apl"}]},{name:"meta.heredoc.apl",begin:"^.*?⎕INP\\s+('|\")((?i).*?(?:CSS|stylesheet).*?)\\1.*$",end:"^.*?\\2.*?$",beginCaptures:{"0":{patterns:[{include:"#main"}]}},endCaptures:{"0":{name:"constant.other.apl"}},contentName:"source.embedded.css",patterns:[{include:"source.css"},{include:"#embedded-apl"}]},{name:"meta.heredoc.apl",begin:"^.*?⎕INP\\s+('|\")((?i).*?(?:JS(?!ON)|(?:ECMA|J|Java).?Script).*?)\\1.*$",end:"^.*?\\2.*?$",beginCaptures:{"0":{patterns:[{include:"#main"}]}},endCaptures:{"0":{name:"constant.other.apl"}},contentName:"source.embedded.js",patterns:[{include:"source.js"},{include:"#embedded-apl"}]},{name:"meta.heredoc.apl",begin:"^.*?⎕INP\\s+('|\")((?i).*?(?:JSON).*?)\\1.*$",end:"^.*?\\2.*?$",beginCaptures:{"0":{patterns:[{include:"#main"}]}},endCaptures:{"0":{name:"constant.other.apl"}},contentName:"source.embedded.json",patterns:[{include:"source.json"},{include:"#embedded-apl"}]},{name:"meta.heredoc.apl",begin:"^.*?⎕INP\\s+('|\")(?i)((?:Raw|Plain)?\\s*Te?xt)\\1.*$",end:"^.*?\\2.*?$",beginCaptures:{"0":{patterns:[{include:"#main"}]}},endCaptures:{"0":{name:"constant.other.apl"}},contentName:"text.embedded.plain",patterns:[{include:"#embedded-apl"}]},{name:"meta.heredoc.apl",begin:"^.*?⎕INP\\s+('|\")(.*?)\\1.*$",end:"^.*?\\2.*?$",beginCaptures:{"0":{patterns:[{include:"#main"}]}},endCaptures:{"0":{name:"constant.other.apl"}},patterns:[{include:"$self"}]}]},"embedded-apl":{patterns:[{name:"meta.embedded.block.apl",begin:"(?i)(<(\\?|%)(?:apl(?=\\s+)|=))",end:"(?<=\\s)(\\2>)",patterns:[{include:"#main"}],beginCaptures:{"1":{name:"punctuation.section.embedded.begin.apl"}},endCaptures:{"1":{name:"punctuation.section.embedded.end.apl"}}}]}}}; + +export { apl_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/applescript.tmLanguage-0e0bae3b.mjs b/docs/shiki/dist/languages/applescript.tmLanguage-0e0bae3b.mjs new file mode 100644 index 00000000..ce2f9276 --- /dev/null +++ b/docs/shiki/dist/languages/applescript.tmLanguage-0e0bae3b.mjs @@ -0,0 +1,3 @@ +var applescript_tmLanguage = {fileTypes:["applescript","scpt","script editor"],firstLineMatch:"^#!.*(osascript)",keyEquivalent:"^~A",name:"applescript",patterns:[{include:"#blocks"},{include:"#inline"}],repository:{"attributes.considering-ignoring":{patterns:[{match:",",name:"punctuation.separator.array.attributes.applescript"},{match:"\\b(and)\\b",name:"keyword.control.attributes.and.applescript"},{match:"\\b(?i:case|diacriticals|hyphens|numeric\\s+strings|punctuation|white\\s+space)\\b",name:"constant.other.attributes.text.applescript"},{match:"\\b(?i:application\\s+responses)\\b",name:"constant.other.attributes.application.applescript"}]},blocks:{patterns:[{begin:"^\\s*(script)\\s+(\\w+)",beginCaptures:{"1":{name:"keyword.control.script.applescript"},"2":{name:"entity.name.type.script-object.applescript"}},end:"^\\s*(end(?:\\s+script)?)(?=\\s*(--.*?)?$)",endCaptures:{"1":{name:"keyword.control.script.applescript"}},name:"meta.block.script.applescript",patterns:[{include:"$self"}]},{begin:"^(?x)\n\t\t\t\t\t\t\\s*(to|on)\\s+ \t\t\t\t\t# \"on\" or \"to\"\n\t\t\t\t\t\t(\\w+)\t\t\t\t\t\t\t# function name\n\t\t\t\t\t\t(\\()\t\t\t\t\t\t\t# opening paren\n\t\t\t\t\t\t\t((?:[\\s,:\\{\\}]*(?:\\w+)?)*)\t# parameters\n\t\t\t\t\t\t(\\))\t\t\t\t\t\t\t# closing paren\n\t\t\t\t\t",beginCaptures:{"1":{name:"keyword.control.function.applescript"},"2":{name:"entity.name.function.handler.applescript"},"3":{name:"punctuation.definition.parameters.begin.applescript"},"4":{name:"variable.parameter.handler.applescript"},"5":{name:"punctuation.definition.parameters.end.applescript"}},comment:"\n\t\t\t\t\t\tThis is not a very well-designed rule. For now,\n\t\t\t\t\t\twe can leave it like this though, as it sorta works.\n\t\t\t\t\t",end:"^\\s*(end)(?:\\s+(\\2))?(?=\\s*(--.*?)?$)",endCaptures:{"1":{name:"keyword.control.function.applescript"}},name:"meta.function.positional.applescript",patterns:[{include:"$self"}]},{begin:"^(?x)\n\t\t\t\t\t\t\\s*(to|on)\\s+ \t\t\t\t\t# \"on\" or \"to\"\n\t\t\t\t\t\t(\\w+)\t\t\t\t\t\t\t# function name\n\t\t\t\t\t\t(?:\\s+\n\t\t\t\t\t\t\t(of|in)\\s+\t\t\t\t\t# \"of\" or \"in\"\n\t\t\t\t\t\t\t(\\w+)\t\t\t\t\t\t# direct parameter\n\t\t\t\t\t\t)?\n\t\t\t\t\t\t(?=\\s+(above|against|apart\\s+from|around|aside\\s+from|at|below|beneath|beside|between|by|for|from|instead\\s+of|into|on|onto|out\\s+of|over|thru|under)\\b)\n\t\t\t\t\t",beginCaptures:{"1":{name:"keyword.control.function.applescript"},"2":{name:"entity.name.function.handler.applescript"},"3":{name:"keyword.control.function.applescript"},"4":{name:"variable.parameter.handler.direct.applescript"}},comment:"TODO: match `given` parameters",end:"^\\s*(end)(?:\\s+(\\2))?(?=\\s*(--.*?)?$)",endCaptures:{"1":{name:"keyword.control.function.applescript"}},name:"meta.function.prepositional.applescript",patterns:[{captures:{"1":{name:"keyword.control.preposition.applescript"},"2":{name:"variable.parameter.handler.applescript"}},match:"\\b(?i:above|against|apart\\s+from|around|aside\\s+from|at|below|beneath|beside|between|by|for|from|instead\\s+of|into|on|onto|out\\s+of|over|thru|under)\\s+(\\w+)\\b"},{include:"$self"}]},{begin:"^(?x)\n\t\t\t\t\t\t\\s*(to|on)\\s+ \t\t\t\t\t# \"on\" or \"to\"\n\t\t\t\t\t\t(\\w+)\t\t\t\t\t\t\t# function name\n\t\t\t\t\t\t(?=\\s*(--.*?)?$)\t\t\t\t# nothing else\n\t\t\t\t\t",beginCaptures:{"1":{name:"keyword.control.function.applescript"},"2":{name:"entity.name.function.handler.applescript"}},end:"^\\s*(end)(?:\\s+(\\2))?(?=\\s*(--.*?)?$)",endCaptures:{"1":{name:"keyword.control.function.applescript"}},name:"meta.function.parameterless.applescript",patterns:[{include:"$self"}]},{include:"#blocks.tell"},{include:"#blocks.repeat"},{include:"#blocks.statement"},{include:"#blocks.other"}]},"blocks.other":{patterns:[{begin:"^\\s*(considering)\\b",end:"^\\s*(end(?:\\s+considering)?)(?=\\s*(--.*?)?$)",name:"meta.block.considering.applescript",patterns:[{begin:"(?<=considering)",end:"(?|<|≥|>=|≤|<=)",name:"keyword.operator.comparison.applescript"},{match:"(?ix)\\b\n\t\t\t\t\t\t(and|or|div|mod|as|not\n\t\t\t\t\t\t|(a\\s+)?(ref(\\s+to)?|reference\\s+to)\n\t\t\t\t\t\t|equal(s|\\s+to)|contains?|comes\\s+(after|before)|(start|begin|end)s?\\s+with\n\t\t\t\t\t\t)\n\t\t\t\t\t\\b",name:"keyword.operator.word.applescript"},{comment:"In double quotes so we can use a single quote in the keywords.",match:"(?ix)\\b\n\t\t\t\t\t\t(is(n't|\\s+not)?(\\s+(equal(\\s+to)?|(less|greater)\\s+than(\\s+or\\s+equal(\\s+to)?)?|in|contained\\s+by))?\n\t\t\t\t\t\t|does(n't|\\s+not)\\s+(equal|come\\s+(before|after)|contain)\n\t\t\t\t\t\t)\n\t\t\t\t\t\\b",name:"keyword.operator.word.applescript"},{match:"\\b(?i:some|every|whose|where|that|id|index|\\d+(st|nd|rd|th)|first|second|third|fourth|fifth|sixth|seventh|eighth|ninth|tenth|last|front|back|middle|named|beginning|end|from|to|thr(u|ough)|before|(front|back|beginning|end)\\s+of|after|behind|in\\s+(front|back|beginning|end)\\s+of)\\b",name:"keyword.operator.reference.applescript"},{match:"\\b(?i:continue|return|exit(\\s+repeat)?)\\b",name:"keyword.control.loop.applescript"},{match:"\\b(?i:about|above|after|against|and|apart\\s+from|around|as|aside\\s+from|at|back|before|beginning|behind|below|beneath|beside|between|but|by|considering|contain|contains|contains|copy|div|does|eighth|else|end|equal|equals|error|every|false|fifth|first|for|fourth|from|front|get|given|global|if|ignoring|in|instead\\s+of|into|is|it|its|last|local|me|middle|mod|my|ninth|not|of|on|onto|or|out\\s+of|over|prop|property|put|ref|reference|repeat|returning|script|second|set|seventh|since|sixth|some|tell|tenth|that|the|then|third|through|thru|timeout|times|to|transaction|true|try|until|where|while|whose|with|without)\\b",name:"keyword.other.applescript"}]},"built-in.punctuation":{patterns:[{match:"¬",name:"punctuation.separator.continuation.line.applescript"},{comment:"the : in property assignments",match:":",name:"punctuation.separator.key-value.property.applescript"},{comment:"the parentheses in groups",match:"[()]",name:"punctuation.section.group.applescript"}]},"built-in.support":{patterns:[{match:"\\b(?i:POSIX\\s+path|frontmost|id|name|running|version|days?|weekdays?|months?|years?|time|date\\s+string|time\\s+string|length|rest|reverse|items?|contents|quoted\\s+form|characters?|paragraphs?|words?)\\b",name:"support.function.built-in.property.applescript"},{match:"\\b(?i:activate|log|clipboard\\s+info|set\\s+the\\s+clipboard\\s+to|the\\s+clipboard|info\\s+for|list\\s+(disks|folder)|mount\\s+volume|path\\s+to(\\s+resource)?|close\\s+access|get\\s+eof|open\\s+for\\s+access|read|set\\s+eof|write|open\\s+location|current\\s+date|do\\s+shell\\s+script|get\\s+volume\\s+settings|random\\s+number|round|set\\s+volume|system\\s+(attribute|info)|time\\s+to\\s+GMT|load\\s+script|run\\s+script|scripting\\s+components|store\\s+script|copy|count|get|launch|run|set|ASCII\\s+(character|number)|localized\\s+string|offset|summarize|beep|choose\\s+(application|color|file(\\s+name)?|folder|from\\s+list|remote\\s+application|URL)|delay|display\\s+(alert|dialog)|say)\\b",name:"support.function.built-in.command.applescript"},{match:"\\b(?i:get|run)\\b",name:"support.function.built-in.applescript"},{match:"\\b(?i:anything|data|text|upper\\s+case|propert(y|ies))\\b",name:"support.class.built-in.applescript"},{match:"\\b(?i:alias|class)(es)?\\b",name:"support.class.built-in.applescript"},{match:"\\b(?i:app(lication)?|boolean|character|constant|date|event|file(\\s+specification)?|handler|integer|item|keystroke|linked\\s+list|list|machine|number|picture|preposition|POSIX\\s+file|real|record|reference(\\s+form)?|RGB\\s+color|script|sound|text\\s+item|type\\s+class|vector|writing\\s+code(\\s+info)?|zone|((international|styled(\\s+(Clipboard|Unicode))?|Unicode)\\s+)?text|((C|encoded|Pascal)\\s+)?string)s?\\b",name:"support.class.built-in.applescript"},{match:"(?ix)\\b\n\t\t\t\t\t\t(\t(cubic\\s+(centi)?|square\\s+(kilo)?|centi|kilo)met(er|re)s\n\t\t\t\t\t\t|\tsquare\\s+(yards|feet|miles)|cubic\\s+(yards|feet|inches)|miles|inches\n\t\t\t\t\t\t|\tlit(re|er)s|gallons|quarts\n\t\t\t\t\t\t|\t(kilo)?grams|ounces|pounds\n\t\t\t\t\t\t|\tdegrees\\s+(Celsius|Fahrenheit|Kelvin)\n\t\t\t\t\t\t)\n\t\t\t\t\t\\b",name:"support.class.built-in.unit.applescript"},{match:"\\b(?i:seconds|minutes|hours|days)\\b",name:"support.class.built-in.time.applescript"}]},comments:{patterns:[{begin:"^\\s*(#!)",captures:{"1":{name:"punctuation.definition.comment.applescript"}},end:"\\n",name:"comment.line.number-sign.applescript"},{begin:"(^[ \\t]+)?(?=#)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.applescript"}},end:"(?!\\G)",patterns:[{begin:"#",beginCaptures:{"0":{name:"punctuation.definition.comment.applescript"}},end:"\\n",name:"comment.line.number-sign.applescript"}]},{begin:"(^[ \\t]+)?(?=--)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.applescript"}},end:"(?!\\G)",patterns:[{begin:"--",beginCaptures:{"0":{name:"punctuation.definition.comment.applescript"}},end:"\\n",name:"comment.line.double-dash.applescript"}]},{begin:"\\(\\*",captures:{"0":{name:"punctuation.definition.comment.applescript"}},end:"\\*\\)",name:"comment.block.applescript",patterns:[{include:"#comments.nested"}]}]},"comments.nested":{patterns:[{begin:"\\(\\*",beginCaptures:{"0":{name:"punctuation.definition.comment.begin.applescript"}},end:"\\*\\)",endCaptures:{"0":{name:"punctuation.definition.comment.end.applescript"}},name:"comment.block.applescript",patterns:[{include:"#comments.nested"}]}]},"data-structures":{patterns:[{begin:"\\{",beginCaptures:{"0":{name:"punctuation.definition.array.begin.applescript"}},comment:"We cannot necessarily distinguish \"records\" from \"arrays\", and so this could be either.",end:"\\}",endCaptures:{"0":{name:"punctuation.definition.array.end.applescript"}},name:"meta.array.applescript",patterns:[{captures:{"1":{name:"constant.other.key.applescript"},"2":{name:"meta.identifier.applescript"},"3":{name:"punctuation.definition.identifier.applescript"},"4":{name:"punctuation.definition.identifier.applescript"},"5":{name:"punctuation.separator.key-value.applescript"}},match:"(\\w+|((\\|)[^|\\n]*(\\|)))\\s*(:)"},{match:":",name:"punctuation.separator.key-value.applescript"},{match:",",name:"punctuation.separator.array.applescript"},{include:"#inline"}]},{begin:"(?:(?<=application )|(?<=app ))(\")",captures:{"1":{name:"punctuation.definition.string.applescript"}},end:"(\")",name:"string.quoted.double.application-name.applescript",patterns:[{match:"\\\\.",name:"constant.character.escape.applescript"}]},{begin:"(\")",captures:{"1":{name:"punctuation.definition.string.applescript"}},end:"(\")",name:"string.quoted.double.applescript",patterns:[{match:"\\\\.",name:"constant.character.escape.applescript"}]},{captures:{"1":{name:"punctuation.definition.identifier.applescript"},"2":{name:"punctuation.definition.identifier.applescript"}},match:"(\\|)[^|\\n]*(\\|)",name:"meta.identifier.applescript"},{captures:{"1":{name:"punctuation.definition.data.applescript"},"2":{name:"support.class.built-in.applescript"},"3":{name:"storage.type.utxt.applescript"},"4":{name:"string.unquoted.data.applescript"},"5":{name:"punctuation.definition.data.applescript"},"6":{name:"keyword.operator.applescript"},"7":{name:"support.class.built-in.applescript"}},match:"(«)(data) (utxt|utf8)([[:xdigit:]]*)(»)(?:\\s+(as)\\s+(?i:Unicode\\s+text))?",name:"constant.other.data.utxt.applescript"},{begin:"(«)(\\w+)\\b(?=\\s)",beginCaptures:{"1":{name:"punctuation.definition.data.applescript"},"2":{name:"support.class.built-in.applescript"}},end:"(»)",endCaptures:{"1":{name:"punctuation.definition.data.applescript"}},name:"constant.other.data.raw.applescript"},{captures:{"1":{name:"punctuation.definition.data.applescript"},"2":{name:"punctuation.definition.data.applescript"}},match:"(«)[^»]*(»)",name:"invalid.illegal.data.applescript"}]},finder:{patterns:[{match:"\\b(item|container|(computer|disk|trash)-object|disk|folder|((alias|application|document|internet location) )?file|clipping|package)s?\\b",name:"support.class.finder.items.applescript"},{match:"\\b((Finder|desktop|information|preferences|clipping) )windows?\\b",name:"support.class.finder.window-classes.applescript"},{match:"\\b(preferences|(icon|column|list) view options|(label|column|alias list)s?)\\b",name:"support.class.finder.type-definitions.applescript"},{match:"\\b(copy|find|sort|clean up|eject|empty( trash)|erase|reveal|update)\\b",name:"support.function.finder.items.applescript"},{match:"\\b(insertion location|product version|startup disk|desktop|trash|home|computer container|finder preferences)\\b",name:"support.constant.finder.applescript"},{match:"\\b(visible)\\b",name:"support.variable.finder.applescript"}]},inline:{patterns:[{include:"#comments"},{include:"#data-structures"},{include:"#built-in"},{include:"#standardadditions"}]},itunes:{patterns:[{match:"\\b(artwork|application|encoder|EQ preset|item|source|visual|(EQ |browser )?window|((audio CD|device|shared|URL|file) )?track|playlist window|((audio CD|device|radio tuner|library|folder|user) )?playlist)s?\\b",name:"support.class.itunes.applescript"},{match:"\\b(add|back track|convert|fast forward|(next|previous) track|pause|play(pause)?|refresh|resume|rewind|search|stop|update|eject|subscribe|update(Podcast|AllPodcasts)|download)\\b",name:"support.function.itunes.applescript"},{match:"\\b(current (playlist|stream (title|URL)|track)|player state)\\b",name:"support.constant.itunes.applescript"},{match:"\\b(current (encoder|EQ preset|visual)|EQ enabled|fixed indexing|full screen|mute|player position|sound volume|visuals enabled|visual size)\\b",name:"support.variable.itunes.applescript"}]},"standard-suite":{patterns:[{match:"\\b(colors?|documents?|items?|windows?)\\b",name:"support.class.standard-suite.applescript"},{match:"\\b(close|count|delete|duplicate|exists|make|move|open|print|quit|save|activate|select|data size)\\b",name:"support.function.standard-suite.applescript"},{match:"\\b(name|frontmost|version)\\b",name:"support.constant.standard-suite.applescript"},{match:"\\b(selection)\\b",name:"support.variable.standard-suite.applescript"},{match:"\\b(attachments?|attribute runs?|characters?|paragraphs?|texts?|words?)\\b",name:"support.class.text-suite.applescript"}]},standardadditions:{patterns:[{match:"\\b((alert|dialog) reply)\\b",name:"support.class.standardadditions.user-interaction.applescript"},{match:"\\b(file information)\\b",name:"support.class.standardadditions.file.applescript"},{match:"\\b(POSIX files?|system information|volume settings)\\b",name:"support.class.standardadditions.miscellaneous.applescript"},{match:"\\b(URLs?|internet address(es)?|web pages?|FTP items?)\\b",name:"support.class.standardadditions.internet.applescript"},{match:"\\b(info for|list (disks|folder)|mount volume|path to( resource)?)\\b",name:"support.function.standardadditions.file.applescript"},{match:"\\b(beep|choose (application|color|file( name)?|folder|from list|remote application|URL)|delay|display (alert|dialog)|say)\\b",name:"support.function.standardadditions.user-interaction.applescript"},{match:"\\b(ASCII (character|number)|localized string|offset|summarize)\\b",name:"support.function.standardadditions.string.applescript"},{match:"\\b(set the clipboard to|the clipboard|clipboard info)\\b",name:"support.function.standardadditions.clipboard.applescript"},{match:"\\b(open for access|close access|read|write|get eof|set eof)\\b",name:"support.function.standardadditions.file-i-o.applescript"},{match:"\\b((load|store|run) script|scripting components)\\b",name:"support.function.standardadditions.scripting.applescript"},{match:"\\b(current date|do shell script|get volume settings|random number|round|set volume|system attribute|system info|time to GMT)\\b",name:"support.function.standardadditions.miscellaneous.applescript"},{match:"\\b(opening folder|(closing|moving) folder window for|adding folder items to|removing folder items from)\\b",name:"support.function.standardadditions.folder-actions.applescript"},{match:"\\b(open location|handle CGI request)\\b",name:"support.function.standardadditions.internet.applescript"}]},"system-events":{patterns:[{match:"\\b(audio (data|file))\\b",name:"support.class.system-events.audio-file.applescript"},{match:"\\b(alias(es)?|(Classic|local|network|system|user) domain objects?|disk( item)?s?|domains?|file( package)?s?|folders?|items?)\\b",name:"support.class.system-events.disk-folder-file.applescript"},{match:"\\b(delete|open|move)\\b",name:"support.function.system-events.disk-folder-file.applescript"},{match:"\\b(folder actions?|scripts?)\\b",name:"support.class.system-events.folder-actions.applescript"},{match:"\\b(attach action to|attached scripts|edit action of|remove action from)\\b",name:"support.function.system-events.folder-actions.applescript"},{match:"\\b(movie data|movie file)\\b",name:"support.class.system-events.movie-file.applescript"},{match:"\\b(log out|restart|shut down|sleep)\\b",name:"support.function.system-events.power.applescript"},{match:"\\b(((application |desk accessory )?process|(check|combo )?box)(es)?|(action|attribute|browser|(busy|progress|relevance) indicator|color well|column|drawer|group|grow area|image|incrementor|list|menu( bar)?( item)?|(menu |pop up |radio )?button|outline|(radio|tab|splitter) group|row|scroll (area|bar)|sheet|slider|splitter|static text|table|text (area|field)|tool bar|UI element|window)s?)\\b",name:"support.class.system-events.processes.applescript"},{match:"\\b(click|key code|keystroke|perform|select)\\b",name:"support.function.system-events.processes.applescript"},{match:"\\b(property list (file|item))\\b",name:"support.class.system-events.property-list.applescript"},{match:"\\b(annotation|QuickTime (data|file)|track)s?\\b",name:"support.class.system-events.quicktime-file.applescript"},{match:"\\b((abort|begin|end) transaction)\\b",name:"support.function.system-events.system-events.applescript"},{match:"\\b(XML (attribute|data|element|file)s?)\\b",name:"support.class.system-events.xml.applescript"},{match:"\\b(print settings|users?|login items?)\\b",name:"support.class.sytem-events.other.applescript"}]},textmate:{patterns:[{match:"\\b(print settings)\\b",name:"support.class.textmate.applescript"},{match:"\\b(get url|insert|reload bundles)\\b",name:"support.function.textmate.applescript"}]}},scopeName:"source.applescript",uuid:"777CF925-14B9-428E-B07B-17FAAB8FA27E"}; + +export { applescript_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/ara.tmLanguage-071907fd.mjs b/docs/shiki/dist/languages/ara.tmLanguage-071907fd.mjs new file mode 100644 index 00000000..326c38b6 --- /dev/null +++ b/docs/shiki/dist/languages/ara.tmLanguage-071907fd.mjs @@ -0,0 +1,3 @@ +var ara_tmLanguage = {scopeName:"source.ara",name:"ara",fileTypes:["ara"],patterns:[{include:"#namespace"},{include:"#named-arguments"},{include:"#comments"},{include:"#keywords"},{include:"#strings"},{include:"#numbers"},{include:"#operators"},{include:"#type"},{include:"#function-call"}],repository:{"class-name":{patterns:[{begin:"\\b(?i)(?",patterns:[{include:"#type-annotation"}]},{begin:"(shape\\()",end:"((,|\\.\\.\\.)?\\s*\\))",endCaptures:{"1":{name:"keyword.operator.key.php"}},name:"storage.type.shape.php",patterns:[{include:"#type-annotation"},{include:"#strings"},{include:"#constants"}]},{begin:"\\(",end:"\\)",patterns:[{include:"#type-annotation"}]},{begin:"\\(fn\\(",end:"\\)",patterns:[{include:"#type-annotation"}]},{include:"#class-name"},{include:"#comments"}]},namespace:{begin:"(?i)((namespace)|[a-z0-9_]+)?(\\\\)(?=.*?[^a-z_0-9\\\\])",beginCaptures:{"1":{name:"entity.name.type.namespace.php"},"3":{name:"punctuation.separator.inheritance.php"}},end:"(?i)(?=[a-z0-9_]*[^a-z0-9_\\\\])",name:"support.other.namespace.php",patterns:[{name:"entity.name.type.namespace.php",match:"(?i)[a-z0-9_]+(?=\\\\)"},{captures:{"1":{name:"punctuation.separator.inheritance.php"}},match:"(?i)(\\\\)"}]},"named-arguments":{match:"(?i)(?<=^|\\(|,)\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)\\s*(:)(?!:)",captures:{"1":{name:"entity.name.variable.parameter.ara"},"2":{name:"punctuation.separator.colon.ara"}}},comments:{patterns:[{begin:"/\\*",captures:{"0":{name:"punctuation.definition.comment.ara"}},end:"\\*/",name:"comment.block.ara"},{begin:"(^[ \\t]+)?(?=//)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.ara"}},end:"(?!\\G)",patterns:[{begin:"//",beginCaptures:{"0":{name:"punctuation.definition.comment.ara"}},end:"\\n",name:"comment.line.double-slash.ara"}]}]},keywords:{patterns:[{name:"keyword.control.ara",match:"\\b(await|async|concurrently|break|continue|do|else|elseif|for|if|loop|while|foreach|match|return|try|yield|from|catch|finally|default|exit)\\b"},{name:"storage.decl.ara",match:"\\b(const|enum|class|interface|trait|namespace|type|case|function|fn)\\b"},{name:"storage.modifier.ara",match:"\\b(final|abstract|static|readonly|public|private|protected)\\b"},{name:"keyword.other.ara",match:"\\b(as|is|extends|implements|use|where|clone|new)\\b"}]},"function-call":{patterns:[{begin:"(?i)(?=\\\\?[a-z_0-9\\\\]+\\\\[a-z_][a-z0-9_]*\\s*(\\(|(::<)))",comment:"Functions in a user-defined namespace (overrides any built-ins)",end:"(?=\\s*(\\(|(::<)))",patterns:[{include:"#user-function-call"}]},{begin:"(?i)(\\\\)?(?=\\b[a-z_][a-z_0-9]*\\s*(\\(|(::<)))",beginCaptures:{"1":{name:"punctuation.separator.inheritance.php"}},comment:"Root namespace function calls (built-in or user)",end:"(?=\\s*(\\(|(::<)))",patterns:[{include:"#user-function-call"}]}]},"user-function-call":{begin:"(?i)(?=[a-z_0-9\\\\]*[a-z_][a-z0-9_]*\\s*\\()",end:"(?i)[a-z_][a-z_0-9]*(?=\\s*\\()",endCaptures:{"0":{name:"entity.name.function.php"}},name:"meta.function-call.php",patterns:[{include:"#namespace"}]},strings:{patterns:[{name:"string.quoted.single.ara",begin:"'",end:"'",patterns:[{match:"\\\\[\\\\']",name:"constant.character.escape.ara"}]},{name:"string.quoted.double.ara",begin:"\"",end:"\"",patterns:[{include:"#interpolation"}]}]},interpolation:{patterns:[{comment:"Interpolating octal values e.g. \\01 or \\07.",match:"\\\\[0-7]{1,3}",name:"constant.numeric.octal.ara"},{comment:"Interpolating hex values e.g. \\x1 or \\xFF.",match:"\\\\x[0-9A-Fa-f]{1,2}",name:"constant.numeric.hex.ara"},{comment:"Escaped characters in double-quoted strings e.g. \\n or \\t.",match:"\\\\[nrt\\\\\\$\\\"]",name:"constant.character.escape.ara"}]},numbers:{patterns:[{match:"0[xX][0-9a-fA-F]+(?:_[0-9a-fA-F]+)*",name:"constant.numeric.hex.ara"},{match:"0[bB][01]+(?:_[01]+)*",name:"constant.numeric.binary.ara"},{match:"0[oO][0-7]+(?:_[0-7]+)*",name:"constant.numeric.octal.ara"},{match:"0(?:_?[0-7]+)+",name:"constant.numeric.octal.ara"},{match:"(?x)\n(?:\n (?:[0-9]+(?:_[0-9]+)*)?(\\.)[0-9]+(?:_[0-9]+)*(?:[eE][+-]?[0-9]+(?:_[0-9]+)*)?| # .3\n [0-9]+(?:_[0-9]+)*(\\.)(?:[0-9]+(?:_[0-9]+)*)?(?:[eE][+-]?[0-9]+(?:_[0-9]+)*)?| # 3.\n [0-9]+(?:_[0-9]+)*[eE][+-]?[0-9]+(?:_[0-9]+)* # 2e-3\n)",name:"constant.numeric.decimal.ara",captures:{"1":{name:"punctuation.separator.decimal.period.ara"},"2":{name:"punctuation.separator.decimal.period.ara"}}},{match:"0|[1-9](?:_?[0-9]+)*",name:"constant.numeric.decimal.ara"}]},operators:{patterns:[{comment:"assignment operators",name:"keyword.assignments.ara",match:"(\\+=|-=|\\*=|/=|%=|\\^=|&&=|<=|>=|&=|\\|=|<<=|>>=|\\?\\?=)"},{comment:"logical operators",name:"keyword.operators.ara",match:"(\\^|\\||\\|\\||&&|>>|<<|&|~|<<|>>|>|<|<=>|\\?\\?|\\?|:|\\?:)(?!=)"},{comment:"comparison operators",name:"keyword.operator.comparison.ara",match:"(==|===|!==|!=|<=|>=|<|>)(?!=)"},{comment:"math operators",name:"keyword.operator.math.ara",match:"(([+%]|(\\*(?!\\w)))(?!=))|(-(?!>))|(/(?!/))"},{comment:"single equal assignment operator",name:"keyword.operator.assignment.ara",match:"(?])=(?!=|>)"},{comment:"less than, greater than (special case)",match:"(?:\\b|(?:(\\))|(\\])|(\\})))[ \\t]+([<>])[ \\t]+(?:\\b|(?:(\\()|(\\[)|(\\{)))",captures:{"1":{name:"punctuation.brackets.round.ara"},"2":{name:"punctuation.brackets.square.ara"},"3":{name:"punctuation.brackets.curly.ara"},"4":{name:"keyword.operator.comparison.ara"},"5":{name:"punctuation.brackets.round.ara"},"6":{name:"punctuation.brackets.square.ara"},"7":{name:"punctuation.brackets.curly.ara"}}},{comment:"arrow method call, arrow property access",name:"keyword.operator.arrow.ara",match:"(?x)\n(?:\n -> | \\?-> \n)"},{comment:"double arrow key-value pair",name:"keyword.operator.double-arrow.ara",match:"(?x)\n(?:\n =>\n)"},{comment:"static method call, static property access",name:"keyword.operator.static.ara",match:"(?x)\n(?:\n ::\n)"},{comment:"closure creation",name:"keyword.operator.closure.ara",match:"(?x)\n(?:\n \\(\\.\\.\\.\\)\n)"},{comment:"spread operator",name:"keyword.operator.spread.ara",match:"(?x)\n(?:\n \\.\\.\\.\n)"},{comment:"namespace operator",name:"keyword.operator.namespace.ara",match:"\\\\"}]}}}; + +export { ara_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/asm.tmLanguage-60f817f7.mjs b/docs/shiki/dist/languages/asm.tmLanguage-60f817f7.mjs new file mode 100644 index 00000000..9f4c7f95 --- /dev/null +++ b/docs/shiki/dist/languages/asm.tmLanguage-60f817f7.mjs @@ -0,0 +1,3 @@ +var asm_tmLanguage = {fileTypes:["asm","nasm","yasm","inc","s"],name:"asm",patterns:[{include:"#registers"},{include:"#mnemonics"},{include:"#constants"},{include:"#entities"},{include:"#support"},{include:"#comments"},{include:"#preprocessor"},{include:"#strings"}],repository:{comments:{patterns:[{match:"(;|(^|\\s)#\\s).*$",name:"comment.line"},{begin:"/\\*",end:"\\*/",name:"comment.block"},{begin:"^\\s*[\\#%]\\s*if\\s+0\\b",end:"^\\s*[\\#%]\\s*endif\\b",name:"comment.preprocessor"}]},constants:{patterns:[{match:"(?i)\\b0[by](?:[01][01_]*)\\.(?:(?:[01][01_]*)?(?:p[+-]?(?:[0-9][0-9_]*))?\\b)?",name:"constant.numeric.binary.floating-point.asm.x86_64"},{match:"(?i)\\b0[by](?:[01][01_]*)(?:p[+-]?(?:[0-9][0-9_]*))\\b",name:"constant.numeric.binary.floating-point.asm.x86_64"},{match:"(?i)\\b0[oq](?:[0-7][0-7_]*)\\.(?:(?:[0-7][0-7_]*)?(?:p[+-]?(?:[0-9][0-9_]*))?\\b)?",name:"constant.numeric.octal.floating-point.asm.x86_64"},{match:"(?i)\\b0[oq](?:[0-7][0-7_]*)(?:p[+-]?(?:[0-9][0-9_]*))\\b",name:"constant.numeric.octal.floating-point.asm.x86_64"},{match:"(?i)\\b(?:0[dt])?(?:[0-9][0-9_]*)\\.(?:(?:[0-9][0-9_]*)?(?:e[+-]?(?:[0-9][0-9_]*))?\\b)?",name:"constant.numeric.decimal.floating-point.asm.x86_64"},{match:"(?i)\\b(?:[0-9][0-9_]*)(?:e[+-]?(?:[0-9][0-9_]*))\\b",name:"constant.numeric.decimal.floating-point.asm.x86_64"},{match:"(?i)\\b(?:[0-9][0-9_]*)p(?:[0-9][0-9_]*)?\\b",name:"constant.numeric.decimal.packed-bcd.asm.x86_64"},{match:"(?i)\\b0[xh](?:[[:xdigit:]][[:xdigit:]_]*)\\.(?:(?:[[:xdigit:]][[:xdigit:]_]*)?(?:p[+-]?(?:[0-9][0-9_]*))?\\b)?",name:"constant.numeric.hex.floating-point.asm.x86_64"},{match:"(?i)\\b0[xh](?:[[:xdigit:]][[:xdigit:]_]*)(?:p[+-]?(?:[0-9][0-9_]*))\\b",name:"constant.numeric.hex.floating-point.asm.x86_64"},{match:"(?i)\\$[0-9]\\_?(?:[[:xdigit:]][[:xdigit:]_]*)?\\.(?:(?:[[:xdigit:]][[:xdigit:]_]*)?(?:p[+-]?(?:[0-9][0-9_]*))?\\b)?",name:"constant.numeric.hex.floating-point.asm.x86_64"},{match:"(?i)\\$[0-9]\\_?(?:[[:xdigit:]][[:xdigit:]_]*)(?:p[+-]?(?:[0-9][0-9_]*))\\b",name:"constant.numeric.hex.floating-point.asm.x86_64"},{match:"(?i)\\b(?:(?:0[by](?:[01][01_]*))|(?:(?:[01][01_]*)[by]))\\b",name:"constant.numeric.binary.asm.x86_64"},{match:"(?i)\\b(?:(?:0[oq](?:[0-7][0-7_]*))|(?:(?:[0-7][0-7_]*)[oq]))\\b",name:"constant.numeric.octal.asm.x86_64"},{match:"(?i)\\b(?:(?:0[dt](?:[0-9][0-9_]*))|(?:(?:[0-9][0-9_]*)[dt]?))\\b",name:"constant.numeric.decimal.asm.x86_64"},{match:"(?i)(?:\\$[0-9]\\_?(?:[[:xdigit:]][[:xdigit:]_]*)?)\\b",name:"constant.numeric.hex.asm.x86_64"},{match:"(?i)\\b(?:(?:0[xh](?:[[:xdigit:]][[:xdigit:]_]*))|(?:(?:[[:xdigit:]][[:xdigit:]_]*)[hxHX]))\\b",name:"constant.numeric.hex.asm.x86_64"}]},entities:{patterns:[{match:"((section|segment)\\s+)?\\.((ro)?data|bss|text)",name:"entity.name.section"},{match:"^\\.?(globa?l|extern|required)\\b",name:"entity.directive"},{match:"(\\$\\w+)\\b",name:"text.variable"},{captures:{"1":{name:"punctuation.separator.asm.x86_64 storage.modifier.asm.x86_64"},"2":{name:"entity.name.function.special.asm.x86_64"},"3":{name:"punctuation.separator.asm.x86_64"}},match:"(\\.\\.@)((?:[[:alpha:]_?](?:[[:alnum:]_$#@~.?]*)))(?:(\\:)?|\\b)",name:"entity.name.function.asm.x86_64"},{captures:{"1":{name:"punctuation.separator.asm.x86_64 storage.modifier.asm.x86_64"},"2":{name:"entity.name.function.asm.x86_64"},"3":{name:"punctuation.separator.asm.x86_64"}},match:"(?:(\\.)?|\\b)((?:[[:alpha:]_?](?:[[:alnum:]_$#@~.?]*)))(?:(\\:))",name:"entity.name.function.asm.x86_64"},{captures:{"1":{name:"punctuation.separator.asm.x86_64 storage.modifier.asm.x86_64"},"2":{name:"entity.name.function.asm.x86_64"},"3":{name:"punctuation.separator.asm.x86_64"}},match:"(\\.)([0-9]+(?:[[:alnum:]_$#@~.?]*))(?:(\\:)?|\\b)",name:"entity.name.function.asm.x86_64"},{captures:{"1":{name:"punctuation.separator.asm.x86_64 storage.modifier.asm.x86_64"},"2":{name:"invalid.illegal.entity.name.function.asm.x86_64"},"3":{name:"punctuation.separator.asm.x86_64"}},match:"(?:(\\.)?|\\b)([0-9$@~](?:[[:alnum:]_$#@~.?]*))(?:(\\:))",name:"invalid.illegal.entity.name.function.asm.x86_64"}]},mnemonics:{patterns:[{include:"#mnemonics-general-purpose"},{include:"#mnemonics-fpu"},{include:"#mnemonics-mmx"},{include:"#mnemonics-sse"},{include:"#mnemonics-sse2"},{include:"#mnemonics-sse3"},{include:"#mnemonics-sse4"},{include:"#mnemonics-aesni"},{include:"#mnemonics-avx"},{include:"#mnemonics-avx2"},{include:"#mnemonics-tsx"},{include:"#mnemonics-sha"},{include:"#mnemonics-avx512"},{include:"#mnemonics-system"},{include:"#mnemonics-64bit"},{include:"#mnemonics-vmx"},{include:"#mnemonics-smx"},{include:"#mnemonics-mpx"},{include:"#mnemonics-sgx"},{include:"#mnemonics-cet"},{include:"#mnemonics-amx"},{include:"#mnemonics-uirq"},{include:"#mnemonics-esi"},{include:"#mnemonics-intel-manual-listing"},{include:"#mnemonics-intel-isa-xeon-phi"},{include:"#mnemonics-intel-isa-keylocker"},{include:"#mnemonics-supplemental-amd"},{include:"#mnemonics-supplemental-cyrix"},{include:"#mnemonics-supplemental-via"},{include:"#mnemonics-undocumented"},{include:"#mnemonics-future-intel"},{include:"#mnemonics-pseudo-ops"}]},"mnemonics-64bit":{patterns:[{match:"(?i)\\b(cdqe|cqo|(cmp|lod|mov|sto)sq|cmpxchg16b|mov(ntq|sxd)|scasq|swapgs|sys(call|ret))\\b",name:"keyword.operator.word.mnemonic.64-bit-mode"}]},"mnemonics-aesni":{patterns:[{match:"(?i)\\b(aes((dec|enc)(last)?|imc|keygenassist)|pclmulqdq)\\b",name:"keyword.operator.word.mnemonic.aesni"}]},"mnemonics-amx":{patterns:[{match:"(?i)\\b((ld|st)tilecfg|tdpb(f16ps|[su]{2}d)|tile(loadd(t1)?|release|stored|zero))\\b",name:"keyword.operator.word.mnemonic.amx"}]},"mnemonics-avx":{patterns:[{match:"(?i)\\b(v((test|permil|maskmov)p[ds]|zero(all|upper)|(perm2|insert|extract|broadcast)f128|broadcasts[ds]))\\b",name:"keyword.operator.word.mnemonic.avx"},{match:"(?i)\\b(vaes((dec|enc)(last)?|imc|keygenassist)|vpclmulqdq)\\b",name:"keyword.operator.word.mnemonic.avx.promoted.aes"},{match:"(?i)\\b(v((cmp[ps]|u?comis)[ds]|pcmp([ei]str[im]|(eq|gt)[bdqw])))\\b",name:"keyword.operator.word.mnemonic.avx.promoted.comparison"},{match:"(?i)\\b(v(cvt(dq2pd|dq2ps|pd2ps|ps2pd|sd2ss|si2sd|si2ss|ss2sd|t?(pd2dq|ps2dq|sd2si|ss2si))))\\b",name:"keyword.operator.word.mnemonic.avx.promoted.conversion"},{match:"(?i)\\b(vh((add|sub)p[ds])|vph((add|sub)([dw]|sw)|minposuw))\\b",name:"keyword.operator.word.mnemonic.avx.promoted.horizontal-packed-arithmetic"},{match:"(?i)\\b(v((andn?|x?or)p[ds]))\\b",name:"keyword.operator.word.mnemonic.avx.promoted.logical"},{match:"(?i)\\b(v(mov(([ahl]|msk|nt|u)p[ds]|(hl|lh)ps|s([ds]|[hl]dup)|q)))\\b",name:"keyword.operator.word.mnemonic.avx.promoted.mov"},{match:"(?i)\\b(v((add|div|mul|sub|max|min|round|sqrt)[ps][ds]|(addsub|dp)p[ds]|(rcp|rsqrt)[ps]s))\\b",name:"keyword.operator.word.mnemonic.avx.promoted.packed-arithmetic"},{match:"(?i)\\b(v(pack[su]s(dw|wb)|punpck[hl](bw|dq|wd|qdq)|unpck[hl]p[ds]))\\b",name:"keyword.operator.word.mnemonic.avx.promoted.packed-conversion"},{match:"(?i)\\b(vp(shuf([bd]|[hl]w))|vshufp[ds])\\b",name:"keyword.operator.word.mnemonic.avx.promoted.packed-shuffle"},{match:"(?i)\\b(vp((abs|sign|(max|min)[su])[bdw]|(add|sub)([bdqw]|u?s[bw])|avg[bw]|extr[bdqw]|madd(wd|ubsw)|mul(hu?w|hrsw|l[dw]|u?dq)|sadbw))\\b",name:"keyword.operator.word.mnemonic.avx.promoted.supplemental.arithmetic"},{match:"(?i)\\b(vp(andn?|x?or))\\b",name:"keyword.operator.word.mnemonic.avx.promoted.supplemental.logical"},{match:"(?i)\\b(vpblend(vb|w))\\b",name:"keyword.operator.word.mnemonic.avx.promoted.supplemental.blending"},{match:"(?i)\\b(vpmov(mskb|[sz]x(b[dqw]|w[dq]|dq)))\\b",name:"keyword.operator.word.mnemonic.avx.promoted.supplemental.mov"},{match:"(?i)\\b(vp(insr[bdqw]|sll(dq|[dqw])|srl(dq)))\\b",name:"keyword.operator.word.mnemonic.avx.promoted.simd-integer"},{match:"(?i)\\b(vp(sra[dwq]|srl[dqw]))\\b",name:"keyword.operator.word.mnemonic.avx.promoted.shift-and-rotate"},{match:"(?i)\\b(vblendv?p[ds])\\b",name:"keyword.operator.word.mnemonic.avx.promoted.packed-blending"},{match:"(?i)\\b(vp(test|alignr))\\b",name:"keyword.operator.word.mnemonic.avx.promoted.packed-other"},{match:"(?i)\\b(vmov(d(dup|qa|qu)?))\\b",name:"keyword.operator.word.mnemonic.avx.promoted.simd-integer.mov"},{match:"(?i)\\b(v((extract|insert)ps|lddqu|(ld|st)mxcsr|mpsadbw))\\b",name:"keyword.operator.word.mnemonic.avx.promoted.other"},{match:"(?i)\\b(v(maskmovdqu|movntdqa?))\\b",name:"keyword.operator.word.mnemonic.avx.promoted.cacheability-control"},{match:"(?i)\\b(vcvt(ph2ps|ps2ph))\\b",name:"keyword.operator.word.mnemonic.16-bit-floating-point-conversion"},{match:"(?i)\\b(vfn?m((add|sub)(132|213|231)[ps][ds])|vfm((addsub|subadd)(132|213|231)p[ds]))\\b",name:"keyword.operator.word.mnemonic.fma"}]},"mnemonics-avx2":{patterns:[{match:"(?i)\\b(v((broadcast|extract|insert|perm2)i128|pmaskmov[dq]|perm([dsq]|p[sd])))\\b",name:"keyword.operator.word.mnemonic.avx2.promoted.simd"},{match:"(?i)\\b(vpbroadcast[bdqw])\\b",name:"keyword.operator.word.mnemonic.avx2.promoted.packed"},{match:"(?i)\\b(vp(blendd|s[lr]lv[dq]|sravd))\\b",name:"keyword.operator.word.mnemonic.avx2.blend"},{match:"(?i)\\b(vp?gather[dq][dq]|vgather([dq]|dq)p[ds])\\b",name:"keyword.operator.word.mnemonic.avx2.gather"}]},"mnemonics-avx512":{patterns:[{include:"#mnemonics-avx512f"},{include:"#mnemonics-avx512dq"},{include:"#mnemonics-avx512bw"},{include:"#mnemonics-avx512-opmask"},{include:"#mnemonics-avx512er"},{include:"#mnemonics-avx512pf"},{include:"#mnemonics-avx512fp16"}]},"mnemonics-avx512-opmask":{patterns:[{match:"(?i)\\bk(add|andn?|mov|not|or(test)?|shift[lr]|test|xn?or)[bdqw]\\b",name:"keyword.operator.word.mnemonic.avx512.opmask"},{match:"(?i)\\bkunpck(bw|wd|dq)\\b",name:"keyword.operator.word.mnemonic.avx512.opmask.unpack"}]},"mnemonics-avx512bw":{patterns:[{match:"(?i)\\bv(dbpsadbw|movdqu(8|16))\\b",name:"keyword.operator.word.mnemonic.avx512.bw.dbpsad"},{match:"(?i)\\bvp(blendm|cmpu?|movm2)[bw]\\b",name:"keyword.operator.word.mnemonic.avx512.bw.pblend"},{match:"(?i)\\bvperm(w|i2[bw])\\b",name:"keyword.operator.word.mnemonic.avx512.bw.perpmi2"},{match:"(?i)\\bvp(mov([bw]2m|u?swb))\\b",name:"keyword.operator.word.mnemonic.avx512.bw.pmov"},{match:"(?i)\\bvp(s(ll|ra|rl)vw|testn?m[bw])\\b",name:"keyword.operator.word.mnemonic.avx512.bw.psll"},{match:"(?i)\\bvp(broadcastm(b2q|w2d)|(conflict|lzcnt)[dq])\\b",name:"keyword.operator.word.mnemonic.avx512.bw.broadcast"}]},"mnemonics-avx512dq":{patterns:[{match:"(?i)\\bvcvt(t?p[ds]2u?qq|uqq2p[ds])\\b",name:"keyword.operator.word.mnemonic.avx512.dq.cvt"},{match:"(?i)\\bv((extract|insert)[fi]64x2|(fpclass|range|reduce)[ps][ds])\\b",name:"keyword.operator.word.mnemonic.avx512.dq.extract"},{match:"(?i)\\bvp(mov(m2[dq]|b2d|q2m)|mullq)\\b",name:"keyword.operator.word.mnemonic.avx512.dq.pmov"}]},"mnemonics-avx512er":{patterns:[{match:"(?i)\\bv(exp2|rcp28|rsqrt28)[ps][ds]\\b",name:"keyword.operator.word.mnemonic.avx512.er"}]},"mnemonics-avx512f":{patterns:[{match:"(?i)\\bv(align[dq]|(blendm|compress)p[ds])\\b",name:"keyword.operator.word.mnemonic.avx512.f.align"},{match:"(?i)\\bv(cvtt?[ps][ds]2u(dq|si))\\b",name:"keyword.operator.word.mnemonic.avx512.f.cvtt"},{match:"(?i)\\bv(cvt((q|ud)q2p|usi2s)[ds])\\b",name:"keyword.operator.word.mnemonic.avx512.f.cvt"},{match:"(?i)\\bv(expandp[ds]|extract[fi](32|64)x4|fixupimm[ps][ds])\\b",name:"keyword.operator.word.mnemonic.avx512.f.expand"},{match:"(?i)\\bv(get(exp|mant)[ps][ds]|insertf(32|64)x4|movdq[au](32|64))\\b",name:"keyword.operator.word.mnemonic.avx512.f.getexp"},{match:"(?i)\\bvp(blendm[dq]|cmpu?[dq]|compress[dq])\\b",name:"keyword.operator.word.mnemonic.avx512.f.pblend"},{match:"(?i)\\bvp(erm[it]2(d|q|p[ds])|expand[dq]|(max|min)[su]q|movu?s(q[bdw]|d[bw]))\\b",name:"keyword.operator.word.mnemonic.avx512.f.permi"},{match:"(?i)\\bvp(rolv?|rorr?|scatter[dq]|testn?m|terlog)[dq]\\b",name:"keyword.operator.word.mnemonic.avx512.f.prol"},{match:"(?i)\\bvpsravq\\b",name:"keyword.operator.word.mnemonic.avx512.f.sravq"},{match:"(?i)\\bv(rcp14|(rnd)?scale|rsqrt14)[ps][ds]\\b",name:"keyword.operator.word.mnemonic.avx512.f.rcp"},{match:"(?i)\\bv(scatter[dq]{2}|shuf[fi](32|64)x[24])\\b",name:"keyword.operator.word.mnemonic.avx512.f.scatter"}]},"mnemonics-avx512fp16":{patterns:[{match:"(?i)\\bv((add|cmp|div|fc?(madd|mul)c|fpclass|get(exp|mant)|mul|rcp|reduce|(rnd)?scale|r?sqrt|sub)[ps]h|u?comish)\\b",name:"keyword.operator.word.mnemonic.avx512.fp16.add"},{match:"(?i)\\bvcvt(u?([dq]q|w)|pd)2ph\\b",name:"keyword.operator.word.mnemonic.avx512.fp16.cvtx2ph"},{match:"(?i)\\bvcvtph2(u?([dq]q|w)|pd)\\b",name:"keyword.operator.word.mnemonic.avx512.fp16.cvtph2x"},{match:"(?i)\\bvcvt(ph2psx|ps2phx)\\b",name:"keyword.operator.word.mnemonic.avx512.fp16.cvtx"},{match:"(?i)\\bvcvt(s[dsi]|usi)2sh\\b",name:"keyword.operator.word.mnemonic.avx512.fp16.cvtx2sh"},{match:"(?i)\\bvcvtsh2(s[dsi]|usi)\\b",name:"keyword.operator.word.mnemonic.avx512.fp16.cvtsh2x"},{match:"(?i)\\bvcvtt(ph2(u?(dq|qq|w))|sh2u?si)\\b",name:"keyword.operator.word.mnemonic.avx512.fp16.cvttph2x"},{match:"(?i)\\bvfn?m((add|sub)(132|213|231))[ps]h\\b",name:"keyword.operator.word.mnemonic.avx512.fp16.fmadd"},{match:"(?i)\\bvfm(addsub|subadd)(132|213|231)ph\\b",name:"keyword.operator.word.mnemonic.avx512.fp16.fmaddsub"},{match:"(?i)\\bv((min|max)ph|mov(sh|w))\\b",name:"keyword.operator.word.mnemonic.avx512.fp16.max"}]},"mnemonics-avx512pf":{patterns:[{match:"(?i)\\bv(gather|scatter)pf[01][dq]p[ds]\\b",name:"keyword.operator.word.mnemonic.avx512.pf"}]},"mnemonics-cet":{patterns:[{match:"(?i)\\b((inc|save(prev)?|rstor|rd)ssp|wru?ss|(set|clr)ssbsy|endbr(32|64))\\b",name:"keyword.operator.word.mnemonic.cet"},{match:"(?i)\\bendbranch\\b",name:"keyword.operator.word.mnemonic.cet.misc"}]},"mnemonics-esi":{patterns:[{match:"(?i)\\benqcmds?\\b",name:"keyword.operator.word.mnemonic.esi"}]},"mnemonics-fpu":{patterns:[{match:"(?i)\\b(fcmov(n?([beu]|be)))\\b",name:"keyword.operator.word.mnemonic.fpu.data-transfer.mov"},{match:"(?i)\\b(f(i?(ld|stp?)|b(ld|stp)|xch))\\b",name:"keyword.operator.word.mnemonic.fpu.data-transfer.other"},{match:"(?i)\\b(f((add|div|mul|sub)p?|i(add|div|mul|sub)|(div|sub)rp?|i(div|sub)r))\\b",name:"keyword.operator.word.mnemonic.fpu.basic-arithmetic.basic"},{match:"(?i)\\b(f(prem1?|abs|chs|rndint|scale|sqrt|xtract))\\b",name:"keyword.operator.word.mnemonic.fpu.basic-arithmetic.other"},{match:"(?i)\\b(f(u?com[ip]?p?|icomp?|tst|xam))\\b",name:"keyword.operator.word.mnemonic.fpu.comparison"},{match:"(?i)\\b(f(sin|cos|sincos|pa?tan|2xm1|yl2x(p1)?))\\b",name:"keyword.operator.word.mnemonic.fpu.transcendental"},{match:"(?i)\\b(fld(1|z|pi|l2[et]|l[ng]2))\\b",name:"keyword.operator.word.mnemonic.fpu.load-constants"},{match:"(?i)\\b(f((inc|dec)stp|free|n?(init|clex|st[cs]w|stenv|save)|ld(cw|env)|rstor|nop)|f?wait)\\b",name:"keyword.operator.word.mnemonic.fpu.control-management"},{match:"(?i)\\b(fx(save|rstor)(64)?)\\b",name:"keyword.operator.word.mnemonic.fpu.state-management"}]},"mnemonics-future-intel":{patterns:[{include:"#mnemonics-future-intel-apx"}]},"mnemonics-future-intel-apx":{patterns:[{match:"(?i)\\b(c(cmp|test)(n?[bl]e?|[ft]|n?[osz]))\\b",name:"keyword.operator.word.mnemonic.apx.ccmp_test"},{match:"(?i)\\b(cfcmovn?([bl]e?|[opsz]))\\b",name:"keyword.operator.word.mnemonic.apx.cfcmov"},{match:"(?i)\\b(cmpn?([bl]e?|[opsz])xadd)\\b",name:"keyword.operator.word.mnemonic.apx.cmpxadd"},{match:"(?i)\\b(jmpabs|(push|pop)2p?)\\b",name:"keyword.operator.word.mnemonic.apx.other"}]},"mnemonics-general-purpose":{patterns:[{match:"(?i)\\b(?:mov(?:[sz]x)?|cmov(?:n?[abceglopsz]|n?[abgl]e|p[eo]))\\b",name:"keyword.operator.word.mnemonic.general-purpose.data-transfer.mov"},{match:"(?i)\\b(xchg|bswap|xadd|cmpxchg(8b)?)\\b",name:"keyword.operator.word.mnemonic.general-purpose.data-transfer.xchg"},{match:"(?i)\\b((push|pop)(ad?)?|cwde?|cdq|cbw)\\b",name:"keyword.operator.word.mnemonic.general-purpose.data-transfer.other"},{match:"(?i)\\b(adcx?|adox|add|sub|sbb|i?mul|i?div|inc|dec|neg|cmp)\\b",name:"keyword.operator.word.mnemonic.general-purpose.binary-arithmetic"},{match:"(?i)\\b(daa|das|aaa|aas|aam|aad)\\b",name:"keyword.operator.word.mnemonic.general-purpose.decimal-arithmetic"},{match:"(?i)\\b(and|x?or|not)\\b",name:"keyword.operator.word.mnemonic.general-purpose.logical"},{match:"(?i)\\b(s[ah][rl]|sh[rl]d|r[co][rl])\\b",name:"keyword.operator.word.mnemonic.general-purpose.rotate"},{match:"(?i)\\b(set(n?[abceglopsz]|n?[abgl]e|p[eo]))\\b",name:"keyword.operator.word.mnemonic.general-purpose.bit-and-byte.set"},{match:"(?i)\\b(bt[crs]?|bs[fr]|test|crc32|popcnt)\\b",name:"keyword.operator.word.mnemonic.general-purpose.bit-and-byte.other"},{match:"(?i)\\b(jmp|jn?[abceglopsz]|jn?[abgl]e|jp[eo]|j[er]?cxz)\\b",name:"keyword.operator.word.mnemonic.general-purpose.control-transfer.jmp"},{match:"(?i)\\b(loop(n?[ez])?|call|ret|iret[dq]?|into?|bound|enter|leave)\\b",name:"keyword.operator.word.mnemonic.general-purpose.control-transfer.other"},{match:"(?i)\\b((mov|cmp|sca|lod|sto)(s[bdw]?)|rep(n?[ez])?)\\b",name:"keyword.operator.word.mnemonic.general-purpose.strings"},{match:"(?i)\\b((in|out)(s[bdw]?)?)\\b",name:"keyword.operator.word.mnemonic.general-purpose.io"},{match:"(?i)\\b((st|cl)[cdi]|cmc|[ls]ahf|(push|pop)f[dq]?)\\b",name:"keyword.operator.word.mnemonic.general-purpose.flag-control"},{match:"(?i)\\b(l[defgs]s)\\b",name:"keyword.operator.word.mnemonic.general-purpose.segment-registers"},{match:"(?i)\\b(lea|nop|ud2?|xlatb?|cpuid|movbe)\\b",name:"keyword.operator.word.mnemonic.general-purpose.misc"},{match:"(?i)\\b(cl(flush(opt)?|demote|wb)|pcommit)\\b",name:"keyword.operator.word.mnemonic.general-purpose.cache-control"},{match:"(?i)\\b(rdrand|rdseed)\\b",name:"keyword.operator.word.mnemonic.general-purpose.rng"},{match:"(?i)\\b(andn|bextr|bls(i|r|msk)|bzhi|pdep|pext|[lt]zcnt|(mul|ror|sar|shl|shr)x)\\b",name:"keyword.operator.word.mnemonic.general-purpose.bmi"}]},"mnemonics-intel-isa-keylocker":{patterns:[{match:"(?i)\\b(aes(enc|dec)(wide)?(128|256)kl|encodekey(128|256)|loadiwkey)\\b",name:"keyword.operator.word.mnemonic.keylocker"}]},"mnemonics-intel-isa-xeon-phi":{patterns:[{match:"(?i)\\bv(4fn?(madd)[ps]s|p4dpwssds?)\\b",name:"keyword.operator.word.mnemonic.xeon-phi"}]},"mnemonics-intel-manual-listing":{patterns:[{match:"(?i)\\bcvtt?pd1pi\\b",name:"keyword.operator.word.mnemonic.other.c"},{match:"(?i)\\bv?gf2p8(affine(inv)?q|mul)b\\b",name:"keyword.operator.word.mnemonic.other.g"},{match:"(?i)\\bhreset\\b",name:"keyword.operator.word.mnemonic.other.h"},{match:"(?i)\\bincssp[dq]\\b",name:"keyword.operator.word.mnemonic.other.i"},{match:"(?i)\\bmovdir(i|64b)\\b",name:"keyword.operator.word.mnemonic.other.m"},{match:"(?i)\\bp((abs|(max|min)[su]?|mull|sra)q|config|twrite)\\b",name:"keyword.operator.word.mnemonic.other.p"},{match:"(?i)\\brd(pid|ssp[dq])\\b",name:"keyword.operator.word.mnemonic.other.r"},{match:"(?i)\\bserialize\\b",name:"keyword.operator.word.mnemonic.other.s"},{match:"(?i)\\btpause\\b",name:"keyword.operator.word.mnemonic.other.t"},{match:"(?i)\\bu(monitor|mwait)\\b",name:"keyword.operator.word.mnemonic.other.u"},{match:"(?i)\\bvbroadcast[fi](32x[248]|64x[24])\\b",name:"keyword.operator.word.mnemonic.other.vb"},{match:"(?i)\\bv(compressw|cvtne2?ps2bf16)\\b",name:"keyword.operator.word.mnemonic.other.vc"},{match:"(?i)\\bvdpbf16ps\\b",name:"keyword.operator.word.mnemonic.other.vd"},{match:"(?i)\\bvextract[fi]32x8\\b",name:"keyword.operator.word.mnemonic.other.ve"},{match:"(?i)\\bv(insert([fi]32x8|i(32|64)x4))\\b",name:"keyword.operator.word.mnemonic.other.vi"},{match:"(?i)\\bv(maskmov|(max|min)sh)\\b",name:"keyword.operator.word.mnemonic.other.vm"},{match:"(?i)\\bvp((2intersect|andn?)[dq]|absq)\\b",name:"keyword.operator.word.mnemonic.other.vpa"},{match:"(?i)\\bvpbroadcasti32x4\\b",name:"keyword.operator.word.mnemonic.other.vpb"},{match:"(?i)\\bvpcompress[bw]\\b",name:"keyword.operator.word.mnemonic.other.vpc"},{match:"(?i)\\bvp(dp(bu|ws)sds?)\\b",name:"keyword.operator.word.mnemonic.other.vpd"},{match:"(?i)\\b(vperm(b|t2[bw])|vp(expand[bw]|extrtd))\\b",name:"keyword.operator.word.mnemonic.other.vpe"},{match:"(?i)\\bvp(madd52[hl]uq|mov(d(2m|[bw])|q[bdw]|wb)|mpov[bdqw]2m|multishiftqb)\\b",name:"keyword.operator.word.mnemonic.other.vpm"},{match:"(?i)\\b(vpopcnt[bdqw]|vpor[dq])\\b",name:"keyword.operator.word.mnemonic.other.vpo"},{match:"(?i)\\bvprorv[dq]\\b",name:"keyword.operator.word.mnemonic.other.vpr"},{match:"(?i)\\bvp(sh[lr]dv?[dqw]|shufbitqmb|shufps)\\b",name:"keyword.operator.word.mnemonic.other.vps"},{match:"(?i)\\bvpternlog[dq]\\b",name:"keyword.operator.word.mnemonic.other.vpt"},{match:"(?i)\\bvpxor[dq]\\b",name:"keyword.operator.word.mnemonic.other.vpx"},{match:"(?i)\\bv(scalef[ps][dhs]|scatter[dq]p[ds])\\b",name:"keyword.operator.word.mnemonic.other.vs"},{match:"(?i)\\b(wbnoinvd|wru?ss[dq])\\b",name:"keyword.operator.word.mnemonic.other.w"}]},"mnemonics-invalid":{patterns:[{include:"#mnemonics-invalid-amd-sse5"}]},"mnemonics-invalid-amd-sse5":{patterns:[{match:"(?i)\\b(com[ps][ds]|pcomu?[bdqw])\\b",name:"invalid.keyword.operator.word.mnemonic.sse5.comparison"},{match:"(?i)\\b(cvtp(h2ps|s2ph)|frcz[ps][ds])\\b",name:"invalid.keyword.operator.word.mnemonic.sse5.conversion"},{match:"(?i)\\b(fn?m((add|sub)[ps][ds])|ph(addu?(b[dqw]|w[dq]|dq)|sub(bw|dq|wd))|pma(css?(d(d|q[hl])|w[dw])|dcss?wd))\\b",name:"invalid.keyword.operator.word.mnemonic.sse5.packed-arithmetic"},{match:"(?i)\\b(pcmov|permp[ds]|pperm|prot[bdqw]|psh[al][bdqw])\\b",name:"invalid.keyword.operator.word.mnemonic.sse5.simd-integer"}]},"mnemonics-mmx":{patterns:[{match:"(?i)\\b(mov[dq])\\b",name:"keyword.operator.word.mnemonic.mmx.data-transfer"},{match:"(?i)\\b(pack(ssdw|[su]swb)|punpck[hl](bw|dq|wd))\\b",name:"keyword.operator.word.mnemonic.mmx.conversion"},{match:"(?i)\\b(p(((add|sub)(d|(u?s)?[bw]))|maddwd|mul[lh]w))\\b",name:"keyword.operator.word.mnemonic.mmx.packed-arithmetic"},{match:"(?i)\\b(pcmp((eq|gt)[bdw]))\\b",name:"keyword.operator.word.mnemonic.mmx.comparison"},{match:"(?i)\\b(pandn?|px?or)\\b",name:"keyword.operator.word.mnemonic.mmx.logical"},{match:"(?i)\\b(ps([rl]l[dwq]|raw|rad))\\b",name:"keyword.operator.word.mnemonic.mmx.shift-and-rotate"},{match:"(?i)\\b(emms)\\b",name:"keyword.operator.word.mnemonic.mmx.state-management"}]},"mnemonics-mpx":{patterns:[{match:"(?i)\\b(bnd(mk|c[lnu]|mov|ldx|stx))\\b",name:"keyword.operator.word.mnemonic.mpx"}]},"mnemonics-pseudo-ops":{patterns:[{match:"(?i)\\b(cmp(n?(eq|lt|le)|(un)?ord)[ps][ds])\\b",name:"keyword.operator.word.pseudo-mnemonic.sse2.compare"},{match:"(?i)\\b(v?pclmul([hl]q[hl]q|[hl]qh)dq)\\b",name:"keyword.operator.word.pseudo-mnemonic.avx.promoted.aes"},{match:"(?i)\\b(vcmp(eq(_(os|uq|us))?|neq(_(oq|os|us))?|[gl][et](_oq)?|n[gl][et](_uq)?|(un)?ord(_s)?|false(_os)?|true(_us)?)[ps][ds])\\b",name:"keyword.operator.word.pseudo-mnemonic.avx.promoted.comparison"},{match:"(?i)\\bvp(cmpn?(eq|le|lt))\\b",name:"keyword.operator.word.pseudo-mnemonic.avx512.compare"},{match:"(?i)\\b(vpcom(n?eq|[gl][et]|false|true)(b|uw))\\b",name:"keyword.operator.word.pseudo-mnemonic.supplemental.amd.xop.simd"}]},"mnemonics-sgx":{patterns:[{match:"(?i)\\bencl[su]\\b",name:"keyword.operator.word.mnemonic.sgx"},{match:"(?i)\\be(add|block|create|dbg(rd|wr)|extend|init|ld[bu]|pa|remove|track|wb)\\b",name:"support.constant.sgx1.supervisor"},{match:"(?i)\\be(add|block|create|dbg(rd|wr)|extend|init|ld[bu]|pa|remove|track|wb)\\b",name:"support.constant.sgx1.supervisor"},{match:"(?i)\\be(enter|exit|getkey|report|resume)\\b",name:"support.constant.sgx1.user"},{match:"(?i)\\be(aug|mod(pr|t))\\b",name:"support.constant.sgx2.supervisor"},{match:"(?i)\\be(accept(copy)?|modpe)\\b",name:"support.constant.sgx2.user"}]},"mnemonics-sha":{patterns:[{match:"(?i)\\b(sha(1rnds4|256rnds2|1nexte|(1|256)msg[12]))\\b",name:"keyword.operator.word.mnemonic.sha"}]},"mnemonics-smx":{patterns:[{match:"(?i)\\b(getsec)\\b",name:"keyword.operator.word.mnemonic.smx.getsec"},{match:"(?i)\\b(capabilities|enteraccs|exitac|senter|sexit|parameters|smctrl|wakeup)\\b",name:"support.constant.smx"}]},"mnemonics-sse":{patterns:[{match:"(?i)\\b(mov(([ahlu]|hl|lh|msk)ps|ss))\\b",name:"keyword.operator.word.mnemonic.sse.data-transfer"},{match:"(?i)\\b((add|div|max|min|mul|rcp|r?sqrt|sub)[ps]s)\\b",name:"keyword.operator.word.mnemonic.sse.packed-arithmetic"},{match:"(?i)\\b(cmp[ps]s|u?comiss)\\b",name:"keyword.operator.word.mnemonic.sse.comparison"},{match:"(?i)\\b((andn?|x?or)ps)\\b",name:"keyword.operator.word.mnemonic.sse.logical"},{match:"(?i)\\b((shuf|unpck[hl])ps)\\b",name:"keyword.operator.word.mnemonic.sse.shuffle-and-unpack"},{match:"(?i)\\b(cvt(pi2ps|si2ss|ps2pi|tps2pi|ss2si|tss2si))\\b",name:"keyword.operator.word.mnemonic.sse.conversion"},{match:"(?i)\\b((ld|st)mxcsr)\\b",name:"keyword.operator.word.mnemonic.sse.state-management"},{match:"(?i)\\b(p(avg[bw]|extrw|insrw|(max|min)(sw|ub)|sadbw|shufw|mulhuw|movmskb))\\b",name:"keyword.operator.word.mnemonic.sse.simd-integer"},{match:"(?i)\\b(maskmovq|movntps|sfence)\\b",name:"keyword.operator.word.mnemonic.sse.cacheability-control"},{match:"(?i)\\b(prefetch(nta|t[0-2]|w(t1)?))\\b",name:"keyword.operator.word.mnemonic.sse.prefetch"}]},"mnemonics-sse2":{patterns:[{match:"(?i)\\b(mov([auhl]|msk)pd)\\b",name:"keyword.operator.word.mnemonic.sse2.data-transfer"},{match:"(?i)\\b((add|div|max|min|mul|sub|sqrt)[ps]d)\\b",name:"keyword.operator.word.mnemonic.sse2.packed-arithmetic"},{match:"(?i)\\b((andn?|x?or)pd)\\b",name:"keyword.operator.word.mnemonic.sse2.logical"},{match:"(?i)\\b((cmpp|u?comis)d)\\b",name:"keyword.operator.word.mnemonic.sse2.compare"},{match:"(?i)\\b((shuf|unpck[hl])pd)\\b",name:"keyword.operator.word.mnemonic.sse2.shuffle-and-unpack"},{match:"(?i)\\b(cvt(dq2pd|pi2pd|ps2pd|pd2ps|si2sd|sd2ss|ss2sd|t?(pd2dq|pd2pi|sd2si)))\\b",name:"keyword.operator.word.mnemonic.sse2.conversion"},{match:"(?i)\\b(cvt(dq2ps|ps2dq|tps2dq))\\b",name:"keyword.operator.word.mnemonic.sse2.packed-floating-point"},{match:"(?i)\\b(mov(dq[au]|q2dq|dq2q))\\b",name:"keyword.operator.word.mnemonic.sse2.simd-integer.mov"},{match:"(?i)\\b(p((add|sub|(s[lr]l|mulu|unpck[hl]q)d)q|shuf(d|[hl]w)))\\b",name:"keyword.operator.word.mnemonic.sse2.simd-integer.other"},{match:"(?i)\\b([lm]fence|pause|maskmovdqu|movnt(dq|i|pd))\\b",name:"keyword.operator.word.mnemonic.sse2.cacheability-control"}]},"mnemonics-sse3":{patterns:[{match:"(?i)\\b(fisttp|lddqu|(addsub|h(add|sub))p[sd]|mov(sh|sl|d)dup|monitor|mwait)\\b",name:"keyword.operator.word.mnemonic.sse3"},{match:"(?i)\\b(ph(add|sub)(s?w|d))\\b",name:"keyword.operator.word.mnemonic.sse3.supplimental.horizontal-packed-arithmetic"},{match:"(?i)\\b(p((abs|sign)[bdw]|maddubsw|mulhrsw|shufb|alignr))\\b",name:"keyword.operator.word.mnemonic.sse3.supplimental.other"}]},"mnemonics-sse4":{patterns:[{match:"(?i)\\b(pmul(ld|dq)|dpp[ds])\\b",name:"keyword.operator.word.mnemonic.sse4.1.arithmetic"},{match:"(?i)\\b(movntdqa)\\b",name:"keyword.operator.word.mnemonic.sse4.1.load-hint"},{match:"(?i)\\b(blendv?p[ds]|pblend(vb|w))\\b",name:"keyword.operator.word.mnemonic.sse4.1.packed-blending"},{match:"(?i)\\b(p(min|max)(u[dw]|s[bd]))\\b",name:"keyword.operator.word.mnemonic.sse4.1.packed-integer"},{match:"(?i)\\b(round[ps][sd])\\b",name:"keyword.operator.word.mnemonic.sse4.1.packed-floating-point"},{match:"(?i)\\b((extract|insert)ps|p((ins|ext)(r[bdq])))\\b",name:"keyword.operator.word.mnemonic.sse4.1.insertion-and-extraction"},{match:"(?i)\\b(pmov([sz]x(b[dqw]|dq|wd|wq)))\\b",name:"keyword.operator.word.mnemonic.sse4.1.conversion"},{match:"(?i)\\b(mpsadbw|phminposuw|ptest|pcmpeqq|packusdw)\\b",name:"keyword.operator.word.mnemonic.sse4.1.other"},{match:"(?i)\\b(pcmp([ei]str[im]|gtq))\\b",name:"keyword.operator.word.mnemonic.sse4.2"}]},"mnemonics-supplemental-amd":{patterns:[{match:"(?i)\\b(bl([cs](fill|ic?|msk)|cs)|t1mskc|tzmsk)\\b",name:"keyword.operator.word.mnemonic.supplemental.amd.general-purpose"},{match:"(?i)\\b(clgi|int3|invlpga|iretw|skinit|stgi|vm(load|mcall|run|save)|monitorx|mwaitx)\\b",name:"keyword.operator.word.mnemonic.supplemental.amd.system"},{match:"(?i)\\b([ls]lwpcb|lwp(ins|val))\\b",name:"keyword.operator.word.mnemonic.supplemental.amd.profiling"},{match:"(?i)\\b(movnts[ds])\\b",name:"keyword.operator.word.mnemonic.supplemental.amd.memory-management"},{match:"(?i)\\b(prefetch|clzero)\\b",name:"keyword.operator.word.mnemonic.supplemental.amd.cache-management"},{match:"(?i)\\b((extr|insert)q)\\b",name:"keyword.operator.word.mnemonic.supplemental.amd.sse4.a"},{match:"(?i)\\b(vfn?m((add|sub)[ps][ds])|vfm((addsub|subadd)p[ds]))\\b",name:"keyword.operator.word.mnemonic.supplemental.amd.fma4"},{match:"(?i)\\b(vp(cmov|(comu?|rot|sh[al])[bdqw]|mac(s?s(d(d|q[hl])|w[dw]))|madcss?wd|perm))\\b",name:"keyword.operator.word.mnemonic.supplemental.amd.xop.simd"},{match:"(?i)\\b(vph(addu?(b[dqw]|w[dq]|dq)|sub(bw|dq|wd)))\\b",name:"keyword.operator.word.mnemonic.supplemental.amd.xop.simd-horizontal"},{match:"(?i)\\b(vfrcz[ps][ds]|vpermil2p[ds])\\b",name:"keyword.operator.word.mnemonic.supplemental.amd.xop.other"},{match:"(?i)\\b(femms)\\b",name:"keyword.operator.word.mnemonic.supplemental.amd.3dnow"},{match:"(?i)\\b(p(avgusb|(f2i|i2f)[dw]|mulhrw|swapd)|pf((p?n)?acc|add|max|min|mul|rcp(it[12])?|rsqit1|rsqrt|subr?))\\b",name:"keyword.operator.word.mnemonic.supplemental.amd.3dnow.simd"},{match:"(?i)\\b(pfcmp(eq|ge|gt))\\b",name:"keyword.operator.word.mnemonic.supplemental.amd.3dnow.comparison"}]},"mnemonics-supplemental-cyrix":{patterns:[{match:"(?i)\\b((sv|rs)dc|(wr|rd)shr|paddsiw)\\b",name:"keyword.operator.word.mnemonic.supplemental.cyrix"}]},"mnemonics-supplemental-via":{patterns:[{match:"(?i)\\b(montmul)\\b",name:"keyword.operator.word.mnemonic.supplemental.via"},{match:"(?i)\\b(x(store(rng)?|crypt(ecb|cbc|ctr|cfb|ofb)|sha(1|256)))\\b",name:"keyword.operator.word.mnemonic.supplemental.via.padlock"}]},"mnemonics-system":{patterns:[{match:"(?i)\\b((cl|st)ac|[ls]([gli]dt|tr|msw)|clts|arpl|lar|lsl|ver[rw]|inv(d|lpg|pcid)|wbinvd)\\b",name:"keyword.operator.word.mnemonic.system"},{match:"(?i)\\b(lock|hlt|rsm|(rd|wr)(msr|pkru|[fg]sbase)|rd(pmc|tscp?)|sys(enter|exit))\\b",name:"keyword.operator.word.mnemonic.system"},{match:"(?i)\\b(x((save(c|opt|s)?|rstors?)(64)?|[gs]etbv))\\b",name:"keyword.operator.word.mnemonic.system"}]},"mnemonics-tsx":{patterns:[{match:"(?i)\\b(x(abort|begin|end|test|(res|sus)ldtrk))\\b",name:"keyword.operator.word.mnemonic.tsx"}]},"mnemonics-uirq":{patterns:[{match:"(?i)\\b((cl|st|test)ui|senduipi|uiret)\\b",name:"keyword.operator.word.mnemonic.uirq"}]},"mnemonics-undocumented":{patterns:[{match:"(?i)\\b(ret[nf]|icebp|int1|int03|smi|ud1)\\b",name:"keyword.operator.word.mnemonic.undocumented"}]},"mnemonics-vmx":{patterns:[{match:"(?i)\\b(vm(ptr(ld|st)|clear|read|write|launch|resume|xo(ff|n)|call|func)|inv(ept|vpid))\\b",name:"keyword.operator.word.mnemonic.vmx"}]},preprocessor:{patterns:[{begin:"^\\s*[#%]\\s*(error|warning)\\b",captures:{"1":{name:"keyword.control.import.error.c"}},end:"$",name:"meta.preprocessor.diagnostic.c",patterns:[{match:"(?>\\\\\\s*\\n)",name:"punctuation.separator.continuation.c"}]},{begin:"^\\s*[#%]\\s*(include|import)\\b\\s+",captures:{"1":{name:"keyword.control.import.include.c"}},end:"(?=(?://|/\\*))|$",name:"meta.preprocessor.c.include",patterns:[{match:"(?>\\\\\\s*\\n)",name:"punctuation.separator.continuation.c"},{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.c"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.c"}},name:"string.quoted.double.include.c"},{begin:"<",beginCaptures:{"0":{name:"punctuation.definition.string.begin.c"}},end:">",endCaptures:{"0":{name:"punctuation.definition.string.end.c"}},name:"string.quoted.other.lt-gt.include.c"}]},{begin:"^\\s*[%#]\\s*(i?x?define|defined|elif(def)?|else|i[fs]n?(?:def|macro|ctx|idni?|id|num|str|token|empty|env)?|line|(i|end|uni?)?macro|pragma|endif)\\b",captures:{"1":{name:"keyword.control.import.c"}},end:"(?=(?://|/\\*))|$",name:"meta.preprocessor.c",patterns:[{match:"(?>\\\\\\s*\\n)",name:"punctuation.separator.continuation.c"},{include:"#preprocessor-functions"}]},{begin:"^\\s*[#%]\\s*(assign|strlen|substr|(end|exit)?rep|push|pop|rotate|use|ifusing|ifusable|def(?:ailas|str|tok)|undef(?:alias)?)\\b",captures:{"1":{name:"keyword.control"}},end:"$",name:"meta.preprocessor.nasm",patterns:[{match:"(?>\\\\\\s*\\n)",name:"punctuation.separator.continuation.c"},{include:"#preprocessor-functions"}]}]},"preprocessor-functions":{patterns:[{begin:"((%)(?:(abs|cond|count|eval|isn?(?:def|macro|ctx|idni?|id|num|str|token|empty|env)?|num|sel|str(?:cat|len)?|substr|tok)\\s*(\\()))",captures:{"3":{name:"support.function.preprocessor.asm.x86_64"}},end:"(\\))|$",name:"meta.preprocessor.function.asm.x86_64",patterns:[{include:"#preprocessor-functions"}]}]},registers:{patterns:[{match:"(?i)\\b(?:[abcd][hl]|[er]?[abcd]x|[er]?(?:di|si|bp|sp)|dil|sil|bpl|spl|r(?:8|9|1[0-5])[bdlw]?)\\b",name:"constant.language.register.general-purpose.asm.x86_64"},{match:"(?i)\\b(?:[cdefgs]s)\\b",name:"constant.language.register.segment.asm.x86_64"},{match:"(?i)\\b(?:[er]?flags)\\b",name:"constant.language.register.flags.asm.x86_64"},{match:"(?i)\\b(?:[er]?ip)\\b",name:"constant.language.register.instruction-pointer.asm.x86_64"},{match:"(?i)\\b(?:cr[02-4])\\b",name:"constant.language.register.control.asm.x86_64"},{match:"(?i)\\b(?:(?:mm|st|fpr)[0-7])\\b",name:"constant.language.register.mmx.asm.x86_64"},{match:"(?i)\\b(?:[xy]mm(?:[0-9]|1[0-5])|mxcsr)\\b",name:"constant.language.register.sse_avx.asm.x86_64"},{match:"(?i)\\b(?:zmm(?:[12]?[0-9]|30|31))\\b",name:"constant.language.register.avx512.asm.x86_64"},{match:"(?i)\\b(?:bnd(?:[0-3]|cfg[su]|status))\\b",name:"constant.language.register.memory-protection.asm.x86_64"},{match:"(?i)\\b(?:(?:[gil]dt)r?|tr)\\b",name:"constant.language.register.system-table-pointer.asm.x86_64"},{match:"(?i)\\b(?:dr[0-367])\\b",name:"constant.language.register.debug.asm.x86_64"},{match:"(?i)\\b(?:cr8|dr(?:[89]|1[0-5])|efer|tpr|syscfg)\\b",name:"constant.language.register.amd.asm.x86_64"},{match:"(?i)\\b(?:db[0-367]|t[67]|tr[3-7]|st)\\b",name:"invalid.deprecated.constant.language.register.asm.x86_64"},{match:"(?i)\\b[xy]mm(?:1[6-9]|2[0-9]|3[01])\\b",name:"constant.language.register.general-purpose.alias.asm.x86_64"}]},strings:{patterns:[{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.asm"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.asm"}},name:"string.quoted.double.asm",patterns:[{include:"#string_escaped_char"},{include:"#string_placeholder"}]},{begin:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.asm"}},end:"'",endCaptures:{"0":{name:"punctuation.definition.string.end.asm"}},name:"string.quoted.single.asm",patterns:[{include:"#string_escaped_char"},{include:"#string_placeholder"}]},{begin:"`",beginCaptures:{"0":{name:"punctuation.definition.string.begin.asm"}},end:"`",endCaptures:{"0":{name:"punctuation.definition.string.end.asm"}},name:"string.quoted.backquote.asm",patterns:[{include:"#string_escaped_char"},{include:"#string_placeholder"}]}]},support:{patterns:[{match:"(?i)\\b(?:s?byte|(?:[doqtyz]|dq|s[dq]?)?word|(?:d|res)[bdoqtwyz]|ddq)\\b",name:"storage.type.asm.x86_64"},{match:"(?i)\\b(?:incbin|equ|times|dup)\\b",name:"support.function.asm.x86_64"},{match:"(?i)\\b(?:strict|nosplit|near|far|abs|rel)\\b",name:"storage.modifier.asm.x86_64"},{match:"(?i)\\b(?:[ao](?:16|32|64))\\b",name:"storage.modifier.prefix.asm.x86_64"},{match:"(?i)\\b(?:rep(?:n?[ez])?|lock|xacquire|xrelease|(?:no)?bnd)\\b",name:"storage.modifier.prefix.asm.x86_64"},{captures:{"1":{name:"storage.modifier.prefix.vex.asm.x86_64"}},match:"{(vex[23]?|evex|rex)}"},{captures:{"1":{name:"storage.modifier.opmask.asm.x86_64"}},match:"{(k[1-7])}"},{captures:{"1":{name:"storage.modifier.precision.asm.x86_64"}},match:"{(1to(?:8|16))}"},{captures:{"1":{name:"storage.modifier.rounding.asm.x86_64"}},match:"{(z|(?:r[nudz]-)?sae)}"},{match:"\\.\\.(?:start|imagebase|tlvp|got(?:pc(?:rel)?|(?:tp)?off)?|plt|sym|tlsie)\\b",name:"support.constant.asm.x86_64"},{match:"\\b__\\?(?:utf(?:(?:16|32)(?:[lb]e)?)|float(?:8|16|32|64|80[me]|128[lh])|bfloat16|Infinity|[QS]?NaN)\\?__\\b",name:"support.function.asm.x86_64"},{match:"\\b__(?:utf(?:(?:16|32)(?:[lb]e)?)|float(?:8|16|32|64|80[me]|128[lh])|bfloat16|Infinity|[QS]?NaN)__\\b",name:"support.function.legacy.asm.x86_64"},{match:"\\b__\\?NASM_(?:MAJOR|(?:SUB)?MINOR|SNAPSHOT|VER(?:SION_ID)?)\\?__\\b",name:"support.function.asm.x86_64"},{match:"\\b___\\?NASM_PATCHLEVEL\\?__\\b",name:"support.function.asm.x86_64"},{match:"\\b__\\?(?:FILE|LINE|BITS|OUTPUT_FORMAT|DEBUG_FORMAT)\\?__\\b",name:"support.function.asm.x86_64"},{match:"\\b__\\?(?:(?:UTC_)?(?:DATE|TIME)(?:_NUM)?|POSIX_TIME)\\?__\\b",name:"support.function.asm.x86_64"},{match:"\\b__\\?USE_(?:\\w+)\\?__\\b",name:"support.function.asm.x86_64"},{match:"\\b__\\?PASS\\?__\\b",name:"invalid.deprecated.support.constant.altreg.asm.x86_64"},{match:"\\b__\\?ALIGNMODE\\?__\\b",name:"support.constant.smartalign.asm.x86_64"},{match:"\\b__\\?ALIGN_(\\w+)\\?__\\b",name:"support.function.smartalign.asm.x86_64"},{match:"\\b__NASM_(?:MAJOR|(?:SUB)?MINOR|SNAPSHOT|VER(?:SION_ID)?)__\\b",name:"support.function.asm.x86_64"},{match:"\\b___NASM_PATCHLEVEL__\\b",name:"support.function.asm.x86_64"},{match:"\\b__(?:FILE|LINE|BITS|OUTPUT_FORMAT|DEBUG_FORMAT)__\\b",name:"support.function.asm.x86_64"},{match:"\\b__(?:(?:UTC_)?(?:DATE|TIME)(?:_NUM)?|POSIX_TIME)__\\b",name:"support.function.asm.x86_64"},{match:"\\b__USE_(?:\\w+)__\\b",name:"support.function.asm.x86_64"},{match:"\\b__PASS__\\b",name:"invalid.deprecated.support.constant.altreg.asm.x86_64"},{match:"\\b__ALIGNMODE__\\b",name:"support.constant.smartalign.asm.x86_64"},{match:"\\b__ALIGN_(\\w+)__\\b",name:"support.function.smartalign.asm.x86_64"},{match:"\\b(?:Inf|[QS]?NaN)\\b",name:"support.constant.fp.asm.x86_64"},{match:"\\b(?:float(?:8|16|32|64|80[me]|128[lh]))\\b",name:"support.function.fp.asm.x86_64"},{match:"(?i)\\bilog2(?:[ewfc]|[fc]w)?\\b",name:"support.function.ifunc.asm.x86_64"}]}},scopeName:"source.asm.x86_64",uuid:"05d6565d-991a-4e88-8e28-63bb21197f32"}; + +export { asm_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/astro.tmLanguage-0d6ab168.mjs b/docs/shiki/dist/languages/astro.tmLanguage-0d6ab168.mjs new file mode 100644 index 00000000..ed5d7db3 --- /dev/null +++ b/docs/shiki/dist/languages/astro.tmLanguage-0d6ab168.mjs @@ -0,0 +1,3 @@ +var astro_tmLanguage = {name:"astro",scopeName:"source.astro",fileTypes:["astro"],injections:{"L:(meta.script.astro) (meta.lang.json) - (meta source)":{patterns:[{begin:"(?<=>)(?!)(?!)(?!)(?!)(?!)(?!)(?!)(?!)(?!)(?!)(?!|})",end:"(?=<|{)",name:"text.astro"}]},comments:{begin:"",captures:{"0":{name:"punctuation.definition.comment.astro"}},name:"comment.block.astro",patterns:[{match:"\\G-?>|)|--!>",name:"invalid.illegal.characters-not-allowed-here.astro"}]},interpolation:{patterns:[{begin:"\\{",end:"\\}",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.astro"}},endCaptures:{"0":{name:"punctuation.section.embedded.end.astro"}},contentName:"meta.embedded.expression.astro source.tsx",patterns:[{begin:"\\G\\s*(?={)",end:"(?<=})",patterns:[{include:"source.tsx#object-literal"}]},{include:"source.tsx"}]}]},attributes:{patterns:[{include:"#attributes-events"},{include:"#attributes-keyvalue"},{include:"#attributes-interpolated"}]},"attributes-events":{begin:"(on(s(croll|t(orage|alled)|u(spend|bmit)|e(curitypolicyviolation|ek(ing|ed)|lect))|hashchange|c(hange|o(ntextmenu|py)|u(t|echange)|l(ick|ose)|an(cel|play(through)?))|t(imeupdate|oggle)|in(put|valid)|o(nline|ffline)|d(urationchange|r(op|ag(start|over|e(n(ter|d)|xit)|leave)?)|blclick)|un(handledrejection|load)|p(opstate|lay(ing)?|a(ste|use|ge(show|hide))|rogress)|e(nded|rror|mptied)|volumechange|key(down|up|press)|focus|w(heel|aiting)|l(oad(start|e(nd|d(data|metadata)))?|anguagechange)|a(uxclick|fterprint|bort)|r(e(s(ize|et)|jectionhandled)|atechange)|m(ouse(o(ut|ver)|down|up|enter|leave|move)|essage(error)?)|b(efore(unload|print)|lur)))(?![\\\\w:-])",beginCaptures:{"0":{patterns:[{match:".*",name:"entity.other.attribute-name.astro"}]}},end:"(?=\\s*+[^=\\s])",name:"meta.attribute.$1.astro",patterns:[{begin:"=",beginCaptures:{"0":{name:"punctuation.separator.key-value.astro"}},end:"(?<=[^\\s=])(?!\\s*=)|(?=/?>)",patterns:[{begin:"(?=[^\\s=<>`/]|/(?!>))",end:"(?!\\G)",name:"meta.embedded.line.js",patterns:[{match:"(([^\\s\\\"'=<>`/]|/(?!>))+)",name:"string.unquoted.astro",captures:{"0":{name:"source.js"},"1":{patterns:[{include:"source.js"}]}}},{begin:"([\"])",end:"\\1",beginCaptures:{"0":{name:"punctuation.definition.string.begin.astro"}},endCaptures:{"0":{name:"punctuation.definition.string.end.astro"}},name:"string.quoted.astro",patterns:[{match:"([^\\n\\\"/]|/(?![/*]))+",captures:{"0":{patterns:[{include:"source.js"}]}}},{begin:"//",beginCaptures:{"0":{name:"punctuation.definition.comment.js"}},end:"(?=\\\")|\\n",name:"comment.line.double-slash.js"},{begin:"/\\*",beginCaptures:{"0":{name:"punctuation.definition.comment.begin.js"}},end:"(?=\\\")|\\*/",endCaptures:{"0":{name:"punctuation.definition.comment.end.js"}},name:"comment.block.js"}]},{begin:"(['])",end:"\\1",beginCaptures:{"0":{name:"punctuation.definition.string.begin.astro"}},endCaptures:{"0":{name:"punctuation.definition.string.end.astro"}},name:"string.quoted.astro",patterns:[{match:"([^\\n\\'/]|/(?![/*]))+",captures:{"0":{patterns:[{include:"source.js"}]}}},{begin:"//",beginCaptures:{"0":{name:"punctuation.definition.comment.js"}},end:"(?=\\')|\\n",name:"comment.line.double-slash.js"},{begin:"/\\*",beginCaptures:{"0":{name:"punctuation.definition.comment.begin.js"}},end:"(?=\\')|\\*/",endCaptures:{"0":{name:"punctuation.definition.comment.end.js"}},name:"comment.block.js"}]}]}]}]},"attributes-interpolated":{begin:"(?)",patterns:[{include:"#attributes-value"}]}]},"attributes-value":{patterns:[{include:"#interpolation"},{match:"([^\\s\"'=<>`/]|/(?!>))+",name:"string.unquoted.astro"},{begin:"(['\"])",end:"\\1",beginCaptures:{"0":{name:"punctuation.definition.string.begin.astro"}},endCaptures:{"0":{name:"punctuation.definition.string.end.astro"}},name:"string.quoted.astro"},{begin:"(`)",end:"\\1",name:"string.template.astro",patterns:[{include:"source.tsx#template-substitution-element"}]}]},tags:{patterns:[{include:"#tags-raw"},{include:"#tags-lang"},{include:"#tags-void"},{include:"#tags-general-end"},{include:"#tags-general-start"}]},"tags-name":{patterns:[{match:"[A-Z][a-zA-Z0-9_]*",name:"support.class.component.astro"},{match:"[a-z][\\w0-9:]*-[\\w0-9:-]*",name:"meta.tag.custom.astro entity.name.tag.astro"},{match:"[a-z][\\w0-9:-]*",name:"entity.name.tag.astro"}]},"tags-start-attributes":{begin:"\\G",end:"(?=/?>)",name:"meta.tag.start.astro",patterns:[{include:"#attributes"}]},"tags-lang-start-attributes":{begin:"\\G",end:"(?=/>)|>",endCaptures:{"0":{name:"punctuation.definition.tag.end.astro"}},name:"meta.tag.start.astro",patterns:[{include:"#attributes"}]},"tags-start-node":{match:"(<)([^/\\s>/]*)",captures:{"1":{name:"punctuation.definition.tag.begin.astro"},"2":{patterns:[{include:"#tags-name"}]}},name:"meta.tag.start.astro"},"tags-end-node":{match:"()|(/>)",captures:{"1":{name:"meta.tag.end.astro punctuation.definition.tag.begin.astro"},"2":{name:"meta.tag.end.astro",patterns:[{include:"#tags-name"}]},"3":{name:"meta.tag.end.astro punctuation.definition.tag.end.astro"},"4":{name:"meta.tag.start.astro punctuation.definition.tag.end.astro"}}},"tags-raw":{begin:"<([^/?!\\s<>]+)(?=[^>]+is:raw).*?",beginCaptures:{"0":{patterns:[{include:"#tags-start-node"}]}},end:"|/>",endCaptures:{"0":{patterns:[{include:"#tags-end-node"}]}},name:"meta.scope.tag.$1.astro meta.raw.astro",contentName:"source.unknown",patterns:[{include:"#tags-lang-start-attributes"}]},"tags-lang":{begin:"<(script|style)",end:"|/>",beginCaptures:{"0":{patterns:[{include:"#tags-start-node"}]}},endCaptures:{"0":{patterns:[{include:"#tags-end-node"}]}},name:"meta.scope.tag.$1.astro meta.$1.astro",patterns:[{begin:"\\G(?=\\s*[^>]*?(type|lang)\\s*=\\s*(['\"]|)(?:text\\/)?(application\\/ld\\+json)\\2)",end:"(?=)",name:"meta.lang.json.astro",patterns:[{include:"#tags-lang-start-attributes"}]},{begin:"\\G(?=\\s*[^>]*?(type|lang)\\s*=\\s*(['\"]|)(module)\\2)",end:"(?=)",name:"meta.lang.javascript.astro",patterns:[{include:"#tags-lang-start-attributes"}]},{begin:"\\G(?=\\s*[^>]*?(type|lang)\\s*=\\s*(['\"]|)(?:text/|application/)?([\\w\\/+]+)\\2)",end:"(?=)",name:"meta.lang.$3.astro",patterns:[{include:"#tags-lang-start-attributes"}]},{include:"#tags-lang-start-attributes"}]},"tags-void":{begin:"(<)(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)(?=\\s|/?>)",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.astro"},"2":{name:"entity.name.tag.astro"}},end:"/?>",endCaptures:{"0":{name:"punctuation.definition.tag.begin.astro"}},name:"meta.tag.void.astro",patterns:[{include:"#attributes"}]},"tags-general-start":{begin:"(<)([^/\\s>/]*)",end:"(/?>)",beginCaptures:{"0":{patterns:[{include:"#tags-start-node"}]}},endCaptures:{"1":{name:"meta.tag.start.astro punctuation.definition.tag.end.astro"}},name:"meta.scope.tag.$2.astro",patterns:[{include:"#tags-start-attributes"}]},"tags-general-end":{begin:"(]*)",end:"(>)",beginCaptures:{"1":{name:"meta.tag.end.astro punctuation.definition.tag.begin.astro"},"2":{name:"meta.tag.end.astro",patterns:[{include:"#tags-name"}]}},endCaptures:{"1":{name:"meta.tag.end.astro punctuation.definition.tag.end.astro"}},name:"meta.scope.tag.$2.astro"}}}; + +export { astro_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/awk.tmLanguage-036854f7.mjs b/docs/shiki/dist/languages/awk.tmLanguage-036854f7.mjs new file mode 100644 index 00000000..31e7b55b --- /dev/null +++ b/docs/shiki/dist/languages/awk.tmLanguage-036854f7.mjs @@ -0,0 +1,3 @@ +var awk_tmLanguage = {fileTypes:["awk"],name:"awk",patterns:[{include:"#comment"},{include:"#procedure"},{include:"#pattern"}],repository:{"builtin-pattern":{match:"\\b(BEGINFILE|BEGIN|ENDFILE|END)\\b",name:"constant.language.awk"},command:{patterns:[{match:"\\b(?:next|print|printf)\\b",name:"keyword.other.command.awk"},{match:"\\b(?:close|getline|delete|system)\\b",name:"keyword.other.command.nawk"},{match:"\\b(?:fflush|nextfile)\\b",name:"keyword.other.command.bell-awk"}]},comment:{match:"#.*",name:"comment.line.number-sign.awk"},constant:{patterns:[{include:"#numeric-constant"},{include:"#string-constant"}]},"escaped-char":{match:"\\\\(?:[\\\\abfnrtv/\"]|x[0-9A-Fa-f]{2}|[0-7]{3})",name:"constant.character.escape.awk"},expression:{patterns:[{include:"#command"},{include:"#function"},{include:"#constant"},{include:"#variable"},{include:"#regexp-in-expression"},{include:"#operator"},{include:"#groupings"}]},"function":{patterns:[{match:"\\b(?:exp|int|log|sqrt|index|length|split|sprintf|substr)\\b",name:"support.function.awk"},{match:"\\b(?:atan2|cos|rand|sin|srand|gsub|match|sub|tolower|toupper)\\b",name:"support.function.nawk"},{match:"\\b(?:gensub|strftime|systime)\\b",name:"support.function.gawk"}]},"function-definition":{begin:"\\b(function)\\s+(\\w+)(\\()",beginCaptures:{"1":{name:"storage.type.function.awk"},"2":{name:"entity.name.function.awk"},"3":{name:"punctuation.definition.parameters.begin.awk"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.parameters.end.awk"}},patterns:[{match:"\\b(\\w+)\\b",name:"variable.parameter.function.awk"},{match:"\\b(,)\\b",name:"punctuation.separator.parameters.awk"}]},groupings:{patterns:[{match:"\\(",name:"meta.brace.round.awk"},{match:"\\)",name:"meta.brace.round.awk"},{match:"\\,",name:"punctuation.separator.parameters.awk"}]},keyword:{match:"\\b(?:break|continue|do|while|exit|for|if|else|return)\\b",name:"keyword.control.awk"},"numeric-constant":{match:"\\b[0-9]+(?:\\.[0-9]+)?(?:e[+-][0-9]+)?\\b",name:"constant.numeric.awk"},operator:{patterns:[{match:"(!?~|[=<>!]=|[<>])",name:"keyword.operator.comparison.awk"},{match:"\\b(in)\\b",name:"keyword.operator.comparison.awk"},{match:"([+\\-*/%^]=|\\+\\+|--|>>|=)",name:"keyword.operator.assignment.awk"},{match:"(\\|\\||&&|!)",name:"keyword.operator.boolean.awk"},{match:"([+\\-*/%^])",name:"keyword.operator.arithmetic.awk"},{match:"([?:])",name:"keyword.operator.trinary.awk"},{match:"(\\[|\\])",name:"keyword.operator.index.awk"}]},pattern:{patterns:[{include:"#regexp-as-pattern"},{include:"#function-definition"},{include:"#builtin-pattern"},{include:"#expression"}]},procedure:{begin:"\\{",end:"\\}",patterns:[{include:"#comment"},{include:"#procedure"},{include:"#keyword"},{include:"#expression"}]},"regex-as-assignment":{begin:"([^=<>!+\\-*/%^]=)\\s*(/)",beginCaptures:{"1":{name:"keyword.operator.assignment.awk"},"2":{name:"punctuation.definition.regex.begin.awk"}},contentName:"string.regexp",end:"/",endCaptures:{"0":{name:"punctuation.definition.regex.end.awk"}},patterns:[{include:"source.regexp"}]},"regex-as-comparison":{begin:"(!?~)\\s*(/)",beginCaptures:{"1":{name:"keyword.operator.comparison.awk"},"2":{name:"punctuation.definition.regex.begin.awk"}},contentName:"string.regexp",end:"/",endCaptures:{"0":{name:"punctuation.definition.regex.end.awk"}},patterns:[{include:"source.regexp"}]},"regex-as-first-argument":{begin:"(\\()\\s*(/)",beginCaptures:{"1":{name:"meta.brace.round.awk"},"2":{name:"punctuation.definition.regex.begin.awk"}},contentName:"string.regexp",end:"/",endCaptures:{"0":{name:"punctuation.definition.regex.end.awk"}},patterns:[{include:"source.regexp"}]},"regex-as-nth-argument":{begin:"(,)\\s*(/)",beginCaptures:{"1":{name:"punctuation.separator.parameters.awk"},"2":{name:"punctuation.definition.regex.begin.awk"}},contentName:"string.regexp",end:"/",endCaptures:{"0":{name:"punctuation.definition.regex.end.awk"}},patterns:[{include:"source.regexp"}]},"regexp-as-pattern":{begin:"/",beginCaptures:{"0":{name:"punctuation.definition.regex.begin.awk"}},contentName:"string.regexp",end:"/",endCaptures:{"0":{name:"punctuation.definition.regex.end.awk"}},patterns:[{include:"source.regexp"}]},"regexp-in-expression":{patterns:[{include:"#regex-as-assignment"},{include:"#regex-as-comparison"},{include:"#regex-as-first-argument"},{include:"#regex-as-nth-argument"}]},"string-constant":{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.awk"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.awk"}},name:"string.quoted.double.awk",patterns:[{include:"#escaped-char"}]},variable:{patterns:[{match:"\\$[0-9]+",name:"variable.language.awk"},{match:"\\b(?:FILENAME|FS|NF|NR|OFMT|OFS|ORS|RS)\\b",name:"variable.language.awk"},{match:"\\b(?:ARGC|ARGV|CONVFMT|ENVIRON|FNR|RLENGTH|RSTART|SUBSEP)\\b",name:"variable.language.nawk"},{match:"\\b(?:ARGIND|ERRNO|FIELDWIDTHS|IGNORECASE|RT)\\b",name:"variable.language.gawk"}]}},scopeName:"source.awk",uuid:"67bd1ff0-006b-4c32-8b97-8bc198777582"}; + +export { awk_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/ballerina.tmLanguage-7d3b71ff.mjs b/docs/shiki/dist/languages/ballerina.tmLanguage-7d3b71ff.mjs new file mode 100644 index 00000000..52e8a0c7 --- /dev/null +++ b/docs/shiki/dist/languages/ballerina.tmLanguage-7d3b71ff.mjs @@ -0,0 +1,3 @@ +var ballerina_tmLanguage = {name:"ballerina",scopeName:"source.ballerina",fileTypes:["bal"],uuid:"c01f5512-489a-41bd-ba5d-caf4b55ae3b3",monarchVariables:{typeScope:"type",annotationScope:"type",numberScope:"number",xmlTagAngle:"tag",xmlAttribute:"variable.parameter",xmlTag:"tag",primitiveScope:"type"},tmlVariables:{typeScope:"storage.type.ballerina",annotationScope:"support.type.ballerina",numberScope:"constant.numeric.decimal.ballerina",xmlTagAngle:"punctuation.definition.tag.begin.xml.ballerina",xmlAttribute:"entity.other.attribute-name.xml.ballerina",xmlTag:"entity.name.tag.xml.ballerina",primitiveScope:"support.type.primitive.ballerina"},patterns:[{include:"#statements"}],repository:{statements:{patterns:[{include:"#stringTemplate"},{include:"#declaration"},{include:"#control-statement"},{include:"#decl-block"},{include:"#expression"},{include:"#punctuation-semicolon"},{include:"#string"},{include:"#comment"},{include:"#mdDocumentation"},{include:"#keywords"},{include:"#annotationAttachment"},{include:"#regex"}]},declaration:{patterns:[{include:"#import-declaration"},{include:"#var-expr"},{include:"#typeDefinition"},{include:"#function-defn"},{include:"#service-decl"},{include:"#class-defn"},{include:"#enum-decl"},{include:"#source"},{include:"#keywords"}]},"control-statement":{patterns:[{begin:"(?)\n )) |\n ((\n ((<\\s*$)|((<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n))",captures:{"1":{name:"punctuation.accessor.ballerina"},"2":{name:"punctuation.accessor.optional.ballerina"},"3":{name:"entity.name.function.ballerina"}}},{match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=\\()",captures:{"1":{name:"punctuation.accessor.ballerina"},"2":{name:"punctuation.accessor.optional.ballerina"},"3":{name:"entity.name.function.ballerina"}}},{match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)",captures:{"1":{name:"punctuation.accessor.ballerina"},"2":{name:"punctuation.accessor.optional.ballerina"},"3":{name:"variable.other.property.ballerina"}}},{include:"#type-primitive"},{include:"#self-literal"},{name:"keyword.control.ballerina",match:"\\b(check|foreach|if|checkpanic)\\b"},{include:"#call"},{name:"support.type.primitive.ballerina",match:"\\b(var)\\b"},{match:"([_$[:alpha:]][_$[:alnum:]]*)((\\.)([_$[:alpha:]][_$[:alnum:]]*)(\\()(\\)))?",captures:{"1":{name:"variable.other.readwrite.ballerina"},"3":{name:"punctuation.accessor.ballerina"},"4":{name:"entity.name.function.ballerina"},"5":{name:"punctuation.definition.parameters.begin.ballerina"},"6":{name:"punctuation.definition.parameters.end.ballerina"}}},{match:"(\\')([_$[:alpha:]][_$[:alnum:]]*)",name:"variable.other.property.ballerina"},{include:"#type-annotation"}]},"object-member":{patterns:[{include:"#comment"},{include:"#function-defn"},{include:"#literal"},{include:"#keywords"},{include:"#expression"},{name:"meta.object.member.ballerina meta.object-literal.key.ballerina",begin:"(?=\\[)",end:"(?=:)|((?<=[\\]])(?=\\s*[\\(\\<]))",patterns:[{include:"#comment"}]},{name:"meta.object.member.ballerina meta.object-literal.key.ballerina",begin:"(?=[\\'\\\"\\`])",end:"(?=:)|((?<=[\\'\\\"\\`])(?=((\\s*[\\(\\<,}])|(\\n*})|(\\s+(as)\\s+))))",patterns:[{include:"#comment"},{include:"#string"}]},{name:"meta.object.member.ballerina meta.object-literal.key.ballerina",begin:"(?x)(?=(\\b(?)\n )) |\n ((\n ((<\\s*$)|((<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))",captures:{"0":{name:"meta.object-literal.key.ballerina"},"1":{name:"entity.name.function.ballerina"}}},{name:"meta.object.member.ballerina",match:"(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)",captures:{"0":{name:"meta.object-literal.key.ballerina"}}},{name:"meta.object.member.ballerina",begin:"\\.\\.\\.",beginCaptures:{"0":{name:"keyword.operator.spread.ballerina"}},end:"(?=,|\\})",patterns:[{include:"#expression"}]},{name:"meta.object.member.ballerina",match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=,|\\}|$|\\/\\/|\\/\\*)",captures:{"1":{name:"variable.other.readwrite.ballerina"}}},{name:"meta.object.member.ballerina",match:"(?]|\\|\\||\\&\\&|\\!\\=\\=|$|^|((?>=|>>>=|\\|="},{name:"keyword.operator.bitwise.shift.ballerina",match:"<<|>>>|>>"},{name:"keyword.operator.comparison.ballerina",match:"===|!==|==|!="},{name:"keyword.operator.relational.ballerina",match:"<=|>=|<>|<|>"},{match:"(?<=[_$[:alnum:]])(\\!)\\s*(?:(/=)|(?:(/)(?![/*])))",captures:{"1":{name:"keyword.operator.logical.ballerina"},"2":{name:"keyword.operator.assignment.compound.ballerina"},"3":{name:"keyword.operator.arithmetic.ballerina"}}},{name:"keyword.operator.logical.ballerina",match:"\\!|&&|\\|\\||\\?\\?"},{name:"keyword.operator.bitwise.ballerina",match:"\\&|~|\\^|\\|"},{name:"keyword.operator.assignment.ballerina",match:"\\="},{name:"keyword.operator.decrement.ballerina",match:"--"},{name:"keyword.operator.increment.ballerina",match:"\\+\\+"},{name:"keyword.operator.arithmetic.ballerina",match:"%|\\*|/|-|\\+"}]},"punctuation-comma":{patterns:[{name:"punctuation.separator.comma.ballerina",match:","}]},"punctuation-semicolon":{patterns:[{match:";",name:"punctuation.terminator.statement.ballerina"}]},"punctuation-accessor":{patterns:[{match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))",captures:{"1":{name:"punctuation.accessor.ballerina"},"2":{name:"punctuation.accessor.optional.ballerina"}}}]},annotationAttachment:{patterns:[{match:"(@)((?:[_$[:alpha:]][_$[:alnum:]]*))\\s*(:?)\\s*((?:[_$[:alpha:]][_$[:alnum:]]*)?)",captures:{"1":{name:"punctuation.decorator.ballerina"},"2":{name:"support.type.ballerina"},"3":{name:"punctuation.decorator.ballerina"},"4":{name:"support.type.ballerina"}}}]},annotationDefinition:{patterns:[{begin:"\\bannotation\\b",beginCaptures:{"0":{name:"keyword.ballerina"}},end:";",patterns:[{include:"#code"}]}]},booleans:{patterns:[{match:"\\b(true|false)\\b",name:"constant.language.boolean.ballerina"}]},butExp:{patterns:[{begin:"\\bbut\\b",beginCaptures:{"0":{name:"keyword.ballerina"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.block.ballerina.documentation"}},patterns:[{include:"#butExpBody"},{include:"#comment"}]}]},butExpBody:{patterns:[{begin:"\\{",beginCaptures:{"0":{name:"punctuation.definition.block.ballerina.documentation"}},end:"(?=\\})",endCaptures:{"0":{name:"punctuation.definition.block.ballerina.documentation"}},patterns:[{include:"#parameter"},{include:"#butClause"},{include:"#comment"}]}]},butClause:{patterns:[{begin:"=>",beginCaptures:{"0":{name:"meta.arrow.ballerina storage.type.function.arrow.ballerina"}},end:",|(?=\\})",patterns:[{include:"#code"}]}]},call:{patterns:[{match:"(?:\\')?([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=\\()",name:"entity.name.function.ballerina"}]},comment:{patterns:[{name:"comment.ballerina",match:"\\/\\/.*"}]},constrainType:{patterns:[{begin:"<",end:">",beginCaptures:{"0":{name:"punctuation.definition.parameters.begin.ballerina"}},endCaptures:{"0":{name:"punctuation.definition.parameters.end.ballerina"}},patterns:[{include:"#comment"},{include:"#constrainType"},{name:"storage.type.ballerina",match:"\\b([_$[:alpha:]][_$[:alnum:]]*)\\b"}]}]},tupleType:{patterns:[{begin:"\\[",end:"(?=\\]|;)",patterns:[{include:"#comment"},{include:"#constrainType"},{include:"#paranthesisedBracket"},{name:"storage.type.ballerina",match:"\\b([_$[:alpha:]][_$[:alnum:]]*)\\b"}]}]},"decl-block":{name:"meta.block.ballerina",begin:"\\{",beginCaptures:{"0":{name:"punctuation.definition.block.ballerina"}},end:"(?=\\} external;)|(\\})",endCaptures:{"0":{name:"punctuation.definition.block.ballerina"}},patterns:[{include:"#statements"},{include:"#mdDocumentation"}]},defaultValue:{patterns:[{begin:"[=:]",beginCaptures:{"0":{name:"keyword.operator.ballerina"}},end:"(?=[,)])",patterns:[{include:"#code"}]}]},documentationDef:{patterns:[{begin:"\\b(?:documentation|deprecated)\\b",beginCaptures:{"0":{name:"keyword.ballerina"}},end:"\\}",endCaptures:{"0":{name:"delimiter.curly"}},patterns:[{include:"#documentationBody"},{include:"#comment"}]}]},documentationBody:{patterns:[{begin:"\\{",beginCaptures:{"0":{name:"punctuation.definition.block.ballerina.documentation"}},end:"(?=\\})",endCaptures:{"0":{name:"punctuation.definition.block.ballerina.documentation"}},patterns:[{match:"(P|R|T|F|V)({{)(.*)(}})",captures:{"1":{name:"keyword.other.ballerina.documentation"},"2":{name:"keyword.other.ballerina.documentation"},"3":{name:"variable.parameter.ballerina.documentation"},"4":{name:"keyword.other.ballerina.documentation"}}},{name:"comment.block.code.ballerina.documentation",begin:"\\```",end:"\\```"},{name:"comment.block.code.ballerina.documentation",begin:"\\``",end:"\\``"},{name:"comment.block.code.ballerina.documentation",begin:"\\`",end:"\\`"},{name:"comment.block.ballerina.documentation",match:"."}]}]},"enum-decl":{name:"meta.enum.declaration.ballerina",begin:"(?:\\b(const)\\s+)?\\b(enum)\\s+([_$[:alpha:]][_$[:alnum:]]*)",beginCaptures:{"1":{name:"storage.modifier.ballerina"},"2":{name:"keyword.other.ballerina"},"3":{name:"entity.name.type.enum.ballerina"}},end:"(?<=\\})",patterns:[{include:"#comment"},{include:"#mdDocumentation"},{begin:"\\{",beginCaptures:{"0":{name:"punctuation.definition.block.ballerina"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.block.ballerina"}},patterns:[{include:"#comment"},{include:"#mdDocumentation"},{begin:"([_$[:alpha:]][_$[:alnum:]]*)",beginCaptures:{"0":{name:"variable.other.enummember.ballerina"}},end:"(?=,|\\}|$)",patterns:[{include:"#comment"},{include:"#variable-initializer"}]},{begin:"(?=((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\])))",end:"(?=,|\\}|$)",patterns:[{include:"#string"},{include:"#array-literal"},{include:"#comment"},{include:"#variable-initializer"}]},{include:"#punctuation-comma"}]}]},errorDestructure:{patterns:[{begin:"error",end:"(?==>)",beginCaptures:{"0":{name:"storage.type.ballerina"}},patterns:[{include:"#code"}]}]},callableUnitBody:{patterns:[{begin:"\\{",end:"(?=\\})",beginCaptures:{"0":{name:"punctuation.definition.block.ballerina"}},endCaptures:{"0":{name:"punctuation.definition.block.ballerina"}},patterns:[{include:"#workerDef"},{include:"#service-decl"},{include:"#objectDec"},{include:"#function-defn"},{include:"#forkStatement"},{include:"#code"}]}]},"for-loop":{begin:"(?",name:"meta.block.ballerina",beginCaptures:{"0":{name:"meta.arrow.ballerina storage.type.function.arrow.ballerina"}},end:"(?=\\;)|(?=\\,)|(?=)(?=\\);)",patterns:[{include:"#statements"},{include:"#punctuation-comma"}]},{name:"keyword.generator.asterisk.ballerina",match:"\\*"}]},"function-defn":{name:"meta.function.ballerina",begin:"(?:(public|private)\\s+)?(function\\b)",beginCaptures:{"1":{name:"keyword.other.ballerina"},"2":{name:"keyword.other.ballerina"}},end:"(?<=\\;)|(?<=\\})|(?<=\\,)|(?=)(?=\\);)",patterns:[{match:"\\bexternal\\b",name:"keyword.ballerina"},{include:"#stringTemplate"},{include:"#annotationAttachment"},{include:"#functionReturns"},{include:"#functionName"},{include:"#functionParameters"},{include:"#punctuation-semicolon"},{include:"#function-body"},{include:"#regex"}]},functionName:{patterns:[{name:"keyword.other.ballerina",match:"\\bfunction\\b"},{include:"#type-primitive"},{include:"#self-literal"},{include:"#string"},{match:"\\s+(\\b(self)|\\b(is|new|isolated|null|function|in)\\b|(string|int|boolean|float|byte|decimal|json|xml|anydata)\\b|\\b(readonly|error|map)\\b|([_$[:alpha:]][_$[:alnum:]]*))",captures:{"2":{name:"variable.language.this.ballerina"},"3":{name:"keyword.other.ballerina"},"4":{name:"support.type.primitive.ballerina"},"5":{name:"storage.type.ballerina"},"6":{name:"meta.definition.function.ballerina entity.name.function.ballerina"}}}]},functionParameters:{name:"meta.parameters.ballerina",begin:"\\(|\\[",end:"\\)|\\]",beginCaptures:{"0":{name:"punctuation.definition.parameters.begin.ballerina"}},endCaptures:{"0":{name:"punctuation.definition.parameters.end.ballerina"}},patterns:[{include:"#function-parameters-body"}]},"function-parameters-body":{patterns:[{include:"#comment"},{include:"#numbers"},{include:"#string"},{include:"#annotationAttachment"},{include:"#recordLiteral"},{include:"#keywords"},{include:"#parameter-name"},{include:"#array-literal"},{include:"#variable-initializer"},{include:"#identifiers"},{include:"#regex"},{name:"punctuation.separator.parameter.ballerina",match:"\\,"}]},"parameter-name":{patterns:[{match:"\\s*\\b(var)\\s+",captures:{"1":{name:"support.type.primitive.ballerina"}}},{match:"(?x)(?:(?)|(\\=)|(?=\\{)|(\\))|(?=\\;)",endCaptures:{"1":{name:"keyword.operator.ballerina"}},patterns:[{include:"#comment"},{include:"#string"},{include:"#numbers"},{include:"#keywords"},{include:"#type-primitive"},{match:"\\s*\\b(var)(?=\\s+|\\[|\\?)",captures:{"1":{name:"support.type.primitive.ballerina"}}},{match:"\\|",name:"keyword.operator.ballerina"},{match:"\\?",name:"keyword.operator.optional.ballerina"},{include:"#type-annotation"},{include:"#type-tuple"},{include:"#keywords"},{match:"[_$[:alpha:]][_$[:alnum:]]*",name:"variable.other.readwrite.ballerina"}]},functionType:{patterns:[{begin:"\\bfunction\\b",beginCaptures:{"0":{name:"keyword.ballerina"}},end:"(?=\\,)|(?=\\|)|(?=\\:)|(?==>)|(?=\\))|(?=\\])",patterns:[{include:"#comment"},{include:"#functionTypeParamList"},{include:"#functionTypeReturns"}]}]},functionTypeParamList:{patterns:[{begin:"\\(",end:"\\)",beginCaptures:{"0":{name:"delimiter.parenthesis"}},endCaptures:{"0":{name:"delimiter.parenthesis"}},patterns:[{match:"public",name:"keyword"},{include:"#annotationAttachment"},{include:"#recordLiteral"},{include:"#record"},{include:"#objectDec"},{include:"#functionType"},{include:"#constrainType"},{include:"#parameterTuple"},{include:"#functionTypeType"},{include:"#comment"}]}]},functionTypeType:{patterns:[{begin:"[_$[:alpha:]][_$[:alnum:]]*",beginCaptures:{"0":{name:"storage.type.ballerina"}},end:"(?=\\,)|(?:\\|)|(?=\\])|(?=\\))"}]},functionTypeReturns:{patterns:[{begin:"\\breturns\\b",beginCaptures:{"0":{name:"keyword"}},end:"(?=\\,)|(?:\\|)|(?=\\])|(?=\\))",patterns:[{include:"#functionTypeReturnsParameter"},{include:"#comment"}]}]},functionTypeReturnsParameter:{patterns:[{begin:"((?=record|object|function)|(?:[_$[:alpha:]][_$[:alnum:]]*))",beginCaptures:{"0":{name:"storage.type.ballerina"}},end:"(?=\\,)|(?:\\|)|(?:\\:)|(?==>)|(?=\\))|(?=\\])",patterns:[{include:"#record"},{include:"#objectDec"},{include:"#functionType"},{include:"#constrainType"},{include:"#defaultValue"},{include:"#comment"},{include:"#parameterTuple"},{match:"[_$[:alpha:]][_$[:alnum:]]*",name:"default.variable.parameter.ballerina"}]}]},"if-statement":{patterns:[{begin:"(?",beginCaptures:{"0":{name:"keyword.ballerina"}},end:"((\\})|;|,)",patterns:[{include:"#callableUnitBody"},{include:"#code"}]}]},matchStatement:{patterns:[{begin:"\\bmatch\\b",beginCaptures:{"0":{name:"keyword.control.ballerina"}},end:"\\}",patterns:[{include:"#matchStatementBody"},{include:"#comment"},{include:"#code"}]}]},matchStatementBody:{patterns:[{begin:"\\{",beginCaptures:{"0":{name:"punctuation.definition.block.ballerina.documentation"}},end:"(?=\\})",endCaptures:{"0":{name:"punctuation.definition.block.ballerina.documentation"}},patterns:[{include:"#literal"},{include:"#matchBindingPattern"},{include:"#matchStatementPatternClause"},{include:"#comment"},{include:"#code"}]}]},matchBindingPattern:{patterns:[{begin:"var",beginCaptures:{"0":{name:"storage.type.ballerina"}},end:"(?==>)|,",patterns:[{include:"#errorDestructure"},{include:"#code"},{match:"[_$[:alpha:]][_$[:alnum:]]*",name:"variable.parameter.ballerina"}]}]},mdDocumentation:{name:"comment.mddocs.ballerina",begin:"\\#",end:"[\\r\\n]+",patterns:[{include:"#mdDocumentationReturnParamDescription"},{include:"#mdDocumentationParamDescription"}]},mdDocumentationParamDescription:{patterns:[{begin:"(\\+\\s+)(\\'?[_$[:alpha:]][_$[:alnum:]]*)(\\s*\\-\\s+)",beginCaptures:{"1":{name:"keyword.operator.ballerina"},"2":{name:"variable.other.readwrite.ballerina"},"3":{name:"keyword.operator.ballerina"}},end:"(?=[^#\\r\\n]|(?:# *?\\+))",patterns:[{match:"#.*",name:"comment.mddocs.paramdesc.ballerina"}]}]},mdDocumentationReturnParamDescription:{patterns:[{begin:"(#)(?: *?)(\\+)(?: *)(return)(?: *)(-)?(.*)",beginCaptures:{"1":{name:"comment.mddocs.ballerina"},"2":{name:"keyword.ballerina"},"3":{name:"keyword.ballerina"},"4":{name:"keyword.ballerina"},"5":{name:"comment.mddocs.returnparamdesc.ballerina"}},end:"(?=[^#\\r\\n]|(?:# *?\\+))",patterns:[{match:"#.*",name:"comment.mddocs.returnparamdesc.ballerina"}]}]},multiType:{patterns:[{match:"(?<=\\|)([_$[:alpha:]][_$[:alnum:]]*)|([_$[:alpha:]][_$[:alnum:]]*)(?=\\|)",name:"storage.type.ballerina"},{match:"\\|",name:"keyword.operator.ballerina"}]},numbers:{patterns:[{match:"\\b0[xX][\\da-fA-F]+\\b|\\b\\d+(?:\\.(?:\\d+|$))?",name:"constant.numeric.decimal.ballerina"}]},"class-body":{name:"meta.class.body.ballerina",begin:"\\{",beginCaptures:{"0":{name:"punctuation.definition.block.ballerina"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.block.ballerina"}},patterns:[{include:"#comment"},{include:"#mdDocumentation"},{include:"#function-defn"},{include:"#var-expr"},{include:"#variable-initializer"},{include:"#access-modifier"},{include:"#keywords"},{begin:"(?<=:)\\s*",end:"(?=\\s|[;),}\\]:\\-\\+]|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|service|type|var)\\b))"},{include:"#decl-block"},{include:"#expression"},{include:"#punctuation-comma"},{include:"#punctuation-semicolon"}]},"access-modifier":{patterns:[{match:"(?|\\|)",beginCaptures:{"2":{name:"support.type.primitive.ballerina"},"3":{name:"storage.type.ballerina"},"4":{name:"meta.definition.variable.ballerina variable.other.readwrite.ballerina"}},end:"(?=$|^|[;,=}])",endCaptures:{"0":{name:"punctuation.terminator.statement.ballerina"}},patterns:[{include:"#call"},{include:"#self-literal"},{include:"#if-statement"},{include:"#string"},{include:"#numbers"},{include:"#keywords"}]},{name:"meta.var-single-variable.expr.ballerina",begin:"([_$[:alpha:]][_$[:alnum:]]*)\\s+(\\!)?",beginCaptures:{"1":{name:"meta.definition.variable.ballerina variable.other.readwrite.ballerina"},"2":{name:"keyword.operator.definiteassignment.ballerina"}},end:"(?=$|^|[;,=}]|((?)(?=\\s*\\S)",beginCaptures:{"1":{name:"keyword.operator.assignment.ballerina"}},end:"(?=$|[,);}\\]])",patterns:[{match:"(\\')([_$[:alpha:]][_$[:alnum:]]*)",name:"variable.other.property.ballerina"},{include:"#xml"},{include:"#function-defn"},{include:"#expression"},{include:"#punctuation-accessor"},{include:"#regex"}]},{begin:"(?)",beginCaptures:{"1":{name:"keyword.operator.assignment.ballerina"}},end:"(?=[,);}\\]]|((?)|(?=\\))|(?=\\])",patterns:[{include:"#parameterWithDescriptor"},{include:"#record"},{include:"#objectDec"},{include:"#functionType"},{include:"#constrainType"},{include:"#defaultValue"},{include:"#comment"},{include:"#parameterTuple"},{match:"[_$[:alpha:]][_$[:alnum:]]*",name:"default.variable.parameter.ballerina"}]}]},parameterTuple:{patterns:[{begin:"\\[",end:"(?=\\,)|(?=\\|)|(?=\\:)|(?==>)|(?=\\))",patterns:[{include:"#record"},{include:"#objectDec"},{include:"#parameterTupleType"},{include:"#parameterTupleEnd"},{include:"#comment"}]}]},parameterTupleType:{patterns:[{begin:"[_$[:alpha:]][_$[:alnum:]]*",beginCaptures:{"0":{name:"storage.type.ballerina"}},end:"(?:\\,)|(?:\\|)|(?=\\])"}]},parameterTupleEnd:{patterns:[{begin:"\\]",end:"(?=\\,)|(?=\\|)|(?=\\:)|(?==>)|(?=\\))",patterns:[{include:"#defaultWithParentheses"},{match:"[_$[:alpha:]][_$[:alnum:]]*",name:"default.variable.parameter.ballerina"}]}]},parameterWithDescriptor:{patterns:[{begin:"\\&",beginCaptures:{"0":{name:"keyword.operator.ballerina"}},end:"(?=\\,)|(?=\\|)|(?=\\))",patterns:[{include:"#parameter"}]}]},defaultWithParentheses:{patterns:[{begin:"\\(",beginCaptures:{"0":{name:"punctuation.definition.block.ballerina"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.block.ballerina"}}}]},string:{patterns:[{begin:"\"",name:"string.quoted.double.ballerina",beginCaptures:{"0":{name:"punctuation.definition.string.begin.ballerina"}},end:"(\")|((?:[^\\\\\\n])$)",endCaptures:{"1":{name:"punctuation.definition.string.end.ballerina"},"2":{name:"invalid.illegal.newline.ballerina"}},patterns:[{include:"#string-character-escape"}]}]},source:{patterns:[{begin:"(\\bsource\\b)\\s+([_$[:alpha:]][_$[:alnum:]]*)",beginCaptures:{"1":{name:"keyword.other.ballerina"},"2":{name:"variable.other.readwrite.ballerina"}},end:"(?=\\,)|(?=\\;)"}]},types:{patterns:[{name:"storage.type.ballerina",match:"\\b(handle|any|future|typedesc)\\b"},{name:"support.type.primitive.ballerina",match:"\\b(boolean|int|string|float|decimal|byte|json|xml|anydata)\\b"},{name:"storage.type.ballerina",match:"\\b(map|error|never|readonly|distinct)\\b"},{name:"storage.type.ballerina",match:"\\b(stream)\\b"}]},xml:{patterns:[{begin:"(\\bxml)(\\s*)(`)",name:"string.template.ballerina",beginCaptures:{"1":{name:"support.type.primitive.ballerina"},"3":{name:"punctuation.definition.string.template.begin.ballerina"}},end:"`",endCaptures:{"0":{name:"punctuation.definition.string.template.end.ballerina"}},patterns:[{include:"#xmlTag"},{include:"#xmlComment"},{include:"#templateVariable"},{name:"string",match:"."}]}]},xmlTag:{patterns:[{begin:"(<\\/?\\??)\\s*([-_a-zA-Z0-9]+)",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.xml.ballerina"},"2":{name:"entity.name.tag.xml.ballerina"}},end:"\\??\\/?>",endCaptures:{"0":{name:"punctuation.definition.tag.end.xml.ballerina"}},patterns:[{include:"#xmlSingleQuotedString"},{include:"#xmlDoubleQuotedString"},{name:"keyword.other.ballerina",match:"xmlns"},{name:"entity.other.attribute-name.xml.ballerina",match:"([a-zA-Z0-9-]+)"}]}]},xmlComment:{patterns:[{begin:"",endCaptures:{"0":{name:"comment.block.xml.ballerina"}},name:"comment.block.xml.ballerina"}]},xmlSingleQuotedString:{patterns:[{begin:"\\'",end:"\\'",beginCaptures:{"0":{name:"string.begin.ballerina"}},endCaptures:{"0":{name:"string.end.ballerina"}},patterns:[{name:"constant.character.escape.ballerina",match:"\\\\."},{name:"string",match:"."}]}]},xmlDoubleQuotedString:{patterns:[{begin:"\\\"",end:"\\\"",beginCaptures:{"0":{name:"string.begin.ballerina"}},endCaptures:{"0":{name:"string.end.ballerina"}},patterns:[{name:"constant.character.escape.ballerina",match:"\\\\."},{name:"string",match:"."}]}]},templateVariable:{patterns:[{begin:"\\${",beginCaptures:{"0":{name:"constant.character.escape.ballerina"}},end:"}",endCaptures:{"0":{name:"constant.character.escape.ballerina"}},patterns:[{include:"#code"}]}]},"ternary-expression":{begin:"(?!\\?\\.\\s*[^[:digit:]])(\\?)(?!\\?)",beginCaptures:{"1":{name:"keyword.operator.ternary.ballerina"}},end:"\\s*",endCaptures:{"1":{name:"keyword.operator.ternary.ballerina"}},patterns:[{include:"#expression"}]},type:{patterns:[{include:"#comment"},{include:"#string"},{include:"#numbers"},{include:"#type-primitive"},{include:"#type-tuple"}]},"type-annotation":{patterns:[{name:"meta.type.annotation.ballerina",begin:"(\\:)",beginCaptures:{"1":{name:"keyword.operator.type.annotation.ballerina"}},end:"(?\\=>]|//)|(?==[^>])|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))(\\?)?",patterns:[{include:"#booleans"},{include:"#stringTemplate"},{include:"#regex"},{include:"#self-literal"},{include:"#xml"},{include:"#call"},{match:"\\b(is|new|isolated|null|function|in)\\b|\\b(true|false)\\b|\\b(check|foreach|if|checkpanic)\\b|\\b(readonly|error|map)\\b|\\b(var)\\b|([_$[:alpha:]][_$[:alnum:]]*)((\\.)([_$[:alpha:]][_$[:alnum:]]*)(\\()(\\)))?",captures:{"1":{name:"keyword.other.ballerina"},"2":{name:"constant.language.boolean.ballerina"},"3":{name:"keyword.control.ballerina"},"4":{name:"storage.type.ballerina"},"5":{name:"support.type.primitive.ballerina"},"6":{name:"variable.other.readwrite.ballerina"},"8":{name:"punctuation.accessor.ballerina"},"9":{name:"entity.name.function.ballerina"},"10":{name:"punctuation.definition.parameters.begin.ballerina"},"11":{name:"punctuation.definition.parameters.end.ballerina"}}},{name:"keyword.operator.optional.ballerina",match:"\\?"},{include:"#multiType"},{include:"#type"},{include:"#paranthesised"}]}]},"type-tuple":{name:"meta.type.tuple.ballerina",begin:"\\[",beginCaptures:{"0":{name:"meta.brace.square.ballerina"}},end:"\\]",endCaptures:{"0":{name:"meta.brace.square.ballerina"}},patterns:[{include:"#self-literal"},{include:"#booleans"},{name:"keyword.operator.rest.ballerina",match:"\\.\\.\\."},{match:"(?)"},{name:"keyword.operator.ballerina",match:"(!|%|\\+|\\-|~=|===|==|=|!=|!==|<|>|&|\\||\\?:|\\.\\.\\.|<=|>=|&&|\\|\\||~|>>|>>>)"},{include:"#types"},{include:"#self-literal"},{include:"#type-primitive"}]},literal:{patterns:[{include:"#booleans"},{include:"#numbers"},{include:"#strings"},{include:"#maps"},{include:"#self-literal"},{include:"#array-literal"}]},"array-literal":{name:"meta.array.literal.ballerina",begin:"\\s*(\\[)",beginCaptures:{"1":{name:"meta.brace.square.ballerina"}},end:"\\]",endCaptures:{"0":{name:"meta.brace.square.ballerina"}},patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},"self-literal":{patterns:[{match:"(\\bself\\b)\\s*(.)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=\\()",captures:{"1":{name:"variable.language.this.ballerina"},"2":{name:"punctuation.accessor.ballerina"},"3":{name:"entity.name.function.ballerina"}}},{match:"(?<)])",patterns:[{include:"#escaped_characters"},{include:"#variables"},{include:"#numbers"},{include:"#strings"}]},{match:"(?i)(?<=^|[\\s@])(setlocal)(?:\\s*$|\\s+(EnableExtensions|DisableExtensions|EnableDelayedExpansion|DisableDelayedExpansion)(?=\\s*$))",captures:{"1":{name:"keyword.command.batchfile"},"2":{name:"keyword.other.special-method.batchfile"}}},{include:"#command_set"}]},command_set:{patterns:[{begin:"(?<=^|[\\s@])(?i:SET)(?=$|\\s)",beginCaptures:{"0":{name:"keyword.command.batchfile"}},end:"(?=$\\n|[&|><)])",patterns:[{include:"#command_set_inside"}]}]},command_set_inside:{patterns:[{include:"#escaped_characters"},{include:"#variables"},{include:"#numbers"},{include:"#parens"},{include:"#command_set_strings"},{include:"#strings"},{begin:"([^ ][^=]*)(=)",beginCaptures:{"1":{name:"variable.other.readwrite.batchfile"},"2":{name:"keyword.operator.assignment.batchfile"}},end:"(?=$\\n|[&|><)])",patterns:[{include:"#escaped_characters"},{include:"#variables"},{include:"#numbers"},{include:"#parens"},{include:"#strings"}]},{begin:"\\s+/[aA]\\s+",end:"(?=$\\n|[&|><)])",name:"meta.expression.set.batchfile",patterns:[{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.batchfile"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.batchfile"}},name:"string.quoted.double.batchfile",patterns:[{include:"#command_set_inside_arithmetic"},{include:"#command_set_group"},{include:"#variables"}]},{include:"#command_set_inside_arithmetic"},{include:"#command_set_group"}]},{begin:"\\s+/[pP]\\s+",end:"(?=$\\n|[&|><)])",patterns:[{include:"#command_set_strings"},{begin:"([^ ][^=]*)(=)",beginCaptures:{"1":{name:"variable.other.readwrite.batchfile"},"2":{name:"keyword.operator.assignment.batchfile"}},end:"(?=$\\n|[&|><)])",name:"meta.prompt.set.batchfile",patterns:[{include:"#strings"}]}]}]},command_set_group:{patterns:[{begin:"\\(",beginCaptures:{"0":{name:"punctuation.section.group.begin.batchfile"}},end:"\\)",endCaptures:{"0":{name:"punctuation.section.group.end.batchfile"}},patterns:[{include:"#command_set_inside_arithmetic"}]}]},command_set_inside_arithmetic:{patterns:[{include:"#command_set_operators"},{include:"#numbers"},{match:",",name:"punctuation.separator.batchfile"}]},command_set_operators:{patterns:[{match:"([^ ]*)(\\+\\=|\\-\\=|\\*\\=|\\/\\=|%%\\=|&\\=|\\|\\=|\\^\\=|<<\\=|>>\\=)",captures:{"1":{name:"variable.other.readwrite.batchfile"},"2":{name:"keyword.operator.assignment.augmented.batchfile"}}},{match:"\\+|\\-|/|\\*|%%|\\||&|\\^|<<|>>|~",name:"keyword.operator.arithmetic.batchfile"},{match:"!",name:"keyword.operator.logical.batchfile"},{match:"([^ =]*)(=)",captures:{"1":{name:"variable.other.readwrite.batchfile"},"2":{name:"keyword.operator.assignment.batchfile"}}}]},command_set_strings:{patterns:[{begin:"(\")\\s*([^ ][^=]*)(=)",beginCaptures:{"1":{name:"punctuation.definition.string.begin.batchfile"},"2":{name:"variable.other.readwrite.batchfile"},"3":{name:"keyword.operator.assignment.batchfile"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.batchfile"}},name:"string.quoted.double.batchfile",patterns:[{include:"#variables"},{include:"#numbers"},{include:"#escaped_characters"}]}]},comments:{patterns:[{begin:"(?:^|(&))\\s*(?=((?::[+=,;: ])))",beginCaptures:{"1":{name:"keyword.operator.conditional.batchfile"}},end:"\\n",patterns:[{begin:"((?::[+=,;: ]))",beginCaptures:{"1":{name:"punctuation.definition.comment.batchfile"}},end:"(?=\\n)",name:"comment.line.colon.batchfile"}]},{begin:"(?<=^|[\\s@])(?i)(REM)(\\.)",beginCaptures:{"1":{name:"keyword.command.rem.batchfile"},"2":{name:"punctuation.separator.batchfile"}},end:"(?=$\\n|[&|><)])",name:"comment.line.rem.batchfile"},{begin:"(?<=^|[\\s@])(?i:rem)\\b",beginCaptures:{"0":{name:"keyword.command.rem.batchfile"}},end:"\\n",name:"comment.line.rem.batchfile",patterns:[{match:"[><|]",name:"invalid.illegal.unexpected-character.batchfile"}]}]},constants:{patterns:[{match:"\\b(?i:NUL)\\b",name:"constant.language.batchfile"}]},controls:{patterns:[{match:"(?i)(?<=^|\\s)(?:call|exit(?=$|\\s)|goto(?=$|\\s|:))",name:"keyword.control.statement.batchfile"},{match:"(?<=^|\\s)(?i)(if)\\s+(?:(not)\\s+)?(exist|defined|errorlevel|cmdextversion)(?=\\s)",captures:{"1":{name:"keyword.control.conditional.batchfile"},"2":{name:"keyword.operator.logical.batchfile"},"3":{name:"keyword.other.special-method.batchfile"}}},{match:"(?<=^|\\s)(?i)(?:if|else)(?=$|\\s)",name:"keyword.control.conditional.batchfile"},{begin:"(?<=^|[\\s(&^])(?i)for(?=\\s)",beginCaptures:{"0":{name:"keyword.control.repeat.batchfile"}},name:"meta.block.repeat.batchfile",end:"\\n",patterns:[{begin:"(?<=[\\s^])(?i)in(?=\\s)",beginCaptures:{"0":{name:"keyword.control.repeat.in.batchfile"}},end:"(?<=[\\s)^])(?i)do(?=\\s)|\\n",endCaptures:{"0":{name:"keyword.control.repeat.do.batchfile"}},patterns:[{include:"$self"}]},{include:"$self"}]}]},escaped_characters:{patterns:[{match:"%%|\\^\\^!|\\^(?=.)|\\^\\n",name:"constant.character.escape.batchfile"}]},labels:{patterns:[{match:"(?i)(?:^\\s*|(?<=call|goto)\\s*)(:)([^+=,;:\\s]\\S*)",captures:{"1":{name:"punctuation.separator.batchfile"},"2":{name:"keyword.other.special-method.batchfile"}}}]},numbers:{patterns:[{match:"(?<=^|\\s|=)(0[xX][0-9A-Fa-f]*|[+-]?\\d+)(?=$|\\s|<|>)",name:"constant.numeric.batchfile"}]},operators:{patterns:[{match:"@(?=\\S)",name:"keyword.operator.at.batchfile"},{match:"(?<=\\s)(?i:EQU|NEQ|LSS|LEQ|GTR|GEQ)(?=\\s)|==",name:"keyword.operator.comparison.batchfile"},{match:"(?<=\\s)(?i)(NOT)(?=\\s)",name:"keyword.operator.logical.batchfile"},{match:"(?[&>]?",name:"keyword.operator.redirection.batchfile"}]},parens:{patterns:[{begin:"\\(",beginCaptures:{"0":{name:"punctuation.section.group.begin.batchfile"}},end:"\\)",endCaptures:{"0":{name:"punctuation.section.group.end.batchfile"}},name:"meta.group.batchfile",patterns:[{match:",|;",name:"punctuation.separator.batchfile"},{include:"$self"}]}]},repeatParameter:{patterns:[{match:"(%%)(?:(?i:~[fdpnxsatz]*(?:\\$PATH:)?)?[a-zA-Z])",captures:{"1":{name:"punctuation.definition.variable.batchfile"}},name:"variable.parameter.repeat.batchfile"}]},strings:{patterns:[{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.batchfile"}},end:"(\")|(\\n)",endCaptures:{"1":{name:"punctuation.definition.string.end.batchfile"},"2":{name:"invalid.illegal.newline.batchfile"}},name:"string.quoted.double.batchfile",patterns:[{match:"%%",name:"constant.character.escape.batchfile"},{include:"#variables"}]}]},variables:{patterns:[{match:"(%)(?:(?i:~[fdpnxsatz]*(?:\\$PATH:)?)?\\d|\\*)",captures:{"1":{name:"punctuation.definition.variable.batchfile"}},name:"variable.parameter.batchfile"},{include:"#variable"},{include:"#variable_delayed_expansion"}]},variable:{patterns:[{begin:"%(?=[^%]+%)",beginCaptures:{"0":{name:"punctuation.definition.variable.begin.batchfile"}},end:"(%)|\\n",endCaptures:{"1":{name:"punctuation.definition.variable.end.batchfile"}},name:"variable.other.readwrite.batchfile",patterns:[{begin:":~",beginCaptures:{"0":{name:"punctuation.separator.batchfile"}},end:"(?=%|\\n)",name:"meta.variable.substring.batchfile",patterns:[{include:"#variable_substring"}]},{begin:":",beginCaptures:{"0":{name:"punctuation.separator.batchfile"}},end:"(?=%|\\n)",name:"meta.variable.substitution.batchfile",patterns:[{include:"#variable_replace"},{begin:"=",beginCaptures:{"0":{name:"punctuation.separator.batchfile"}},end:"(?=%|\\n)",patterns:[{include:"#variable_delayed_expansion"},{match:"[^%]+",name:"string.unquoted.batchfile"}]}]}]}]},variable_delayed_expansion:{patterns:[{begin:"!(?=[^!]+!)",beginCaptures:{"0":{name:"punctuation.definition.variable.begin.batchfile"}},end:"(!)|\\n",endCaptures:{"1":{name:"punctuation.definition.variable.end.batchfile"}},name:"variable.other.readwrite.batchfile",patterns:[{begin:":~",beginCaptures:{"0":{name:"punctuation.separator.batchfile"}},end:"(?=!|\\n)",name:"meta.variable.substring.batchfile",patterns:[{include:"#variable_substring"}]},{begin:":",beginCaptures:{"0":{name:"punctuation.separator.batchfile"}},end:"(?=!|\\n)",name:"meta.variable.substitution.batchfile",patterns:[{include:"#escaped_characters"},{include:"#variable_replace"},{include:"#variable"},{begin:"=",beginCaptures:{"0":{name:"punctuation.separator.batchfile"}},end:"(?=!|\\n)",patterns:[{include:"#variable"},{match:"[^!]+",name:"string.unquoted.batchfile"}]}]}]}]},variable_replace:{patterns:[{match:"[^=%!\\n]+",name:"string.unquoted.batchfile"}]},variable_substring:{patterns:[{match:"([+-]?\\d+)(?:(,)([+-]?\\d+))?",captures:{"1":{name:"constant.numeric.batchfile"},"2":{name:"punctuation.separator.batchfile"},"3":{name:"constant.numeric.batchfile"}}}]}}}; + +export { bat_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/beancount.tmLanguage-45642e1a.mjs b/docs/shiki/dist/languages/beancount.tmLanguage-45642e1a.mjs new file mode 100644 index 00000000..81b96a90 --- /dev/null +++ b/docs/shiki/dist/languages/beancount.tmLanguage-45642e1a.mjs @@ -0,0 +1,3 @@ +var beancount_tmLanguage = {fileTypes:["beancount"],name:"beancount",patterns:[{comment:"Comments",match:";.*",name:"comment.line.beancount"},{begin:"^\\s*(poptag|pushtag)\\s+(#)([A-Za-z0-9\\-_/.]+)",beginCaptures:{"1":{name:"support.function.beancount"},"2":{name:"keyword.operator.tag.beancount"},"3":{name:"entity.name.tag.beancount"}},comment:"Tag directive",end:"(?=(^\\s*$|^\\S))",name:"meta.directive.tag.beancount",patterns:[{include:"#comments"},{include:"#illegal"}]},{begin:"^\\s*(include)\\s+(\\\".*\\\")",beginCaptures:{"1":{name:"support.function.beancount"},"2":{name:"string.quoted.double.beancount"}},comment:"Include directive",end:"(?=(^\\s*$|^\\S))",name:"meta.directive.include.beancount",patterns:[{include:"#comments"},{include:"#illegal"}]},{begin:"^\\s*(option)\\s+(\\\".*\\\")\\s+(\\\".*\\\")",beginCaptures:{"1":{name:"support.function.beancount"},"2":{name:"support.variable.beancount"},"3":{name:"string.quoted.double.beancount"}},comment:"Option directive",end:"(?=(^\\s*$|^\\S))",name:"meta.directive.option.beancount",patterns:[{include:"#comments"},{include:"#illegal"}]},{begin:"^\\s*(plugin)\\s*(\"(.*?)\")\\s*(\".*?\")?",beginCaptures:{"1":{name:"support.function.beancount"},"2":{name:"string.quoted.double.beancount"},"3":{name:"entity.name.function.beancount"},"4":{name:"string.quoted.double.beancount"}},comment:"Plugin directive",end:"(?=(^\\s*$|^\\S))",name:"keyword.operator.directive.beancount",patterns:[{include:"#comments"},{include:"#illegal"}]},{begin:"([0-9]{4})([\\-|/])([0-9]{2})([\\-|/])([0-9]{2})\\s+(open|close|pad)\\b",beginCaptures:{"1":{name:"constant.numeric.date.year.beancount"},"2":{name:"punctuation.separator.beancount"},"3":{name:"constant.numeric.date.month.beancount"},"4":{name:"punctuation.separator.beancount"},"5":{name:"constant.numeric.date.day.beancount"},"6":{name:"support.function.beancount"}},comment:"Open/Close/Pad directive",end:"(?=(^\\s*$|^\\S))",name:"meta.directive.dated.beancount",patterns:[{include:"#comments"},{include:"#meta"},{include:"#account"},{include:"#commodity"},{match:"\\,",name:"punctuation.separator.beancount"},{include:"#illegal"}]},{begin:"([0-9]{4})([\\-|/])([0-9]{2})([\\-|/])([0-9]{2})\\s+(custom)\\b",beginCaptures:{"1":{name:"constant.numeric.date.year.beancount"},"2":{name:"punctuation.separator.beancount"},"3":{name:"constant.numeric.date.month.beancount"},"4":{name:"punctuation.separator.beancount"},"5":{name:"constant.numeric.date.day.beancount"},"6":{name:"support.function.beancount"}},comment:"Custom directive",end:"(?=(^\\s*$|^\\S))",name:"meta.directive.dated.beancount",patterns:[{include:"#comments"},{include:"#meta"},{include:"#string"},{include:"#bool"},{include:"#amount"},{include:"#number"},{include:"#date"},{include:"#account"},{include:"#illegal"}]},{begin:"([0-9]{4})([\\-|/])([0-9]{2})([\\-|/])([0-9]{2})\\s(event)",beginCaptures:{"1":{name:"constant.numeric.date.year.beancount"},"2":{name:"punctuation.separator.beancount"},"3":{name:"constant.numeric.date.month.beancount"},"4":{name:"punctuation.separator.beancount"},"5":{name:"constant.numeric.date.day.beancount"},"6":{name:"support.function.directive.beancount"}},comment:"Event directive",end:"(?=(^\\s*$|^\\S))",name:"meta.directive.dated.beancount",patterns:[{include:"#comments"},{include:"#meta"},{include:"#string"},{include:"#illegal"}]},{begin:"([0-9]{4})([\\-|/])([0-9]{2})([\\-|/])([0-9]{2})\\s(commodity)",beginCaptures:{"1":{name:"constant.numeric.date.year.beancount"},"2":{name:"punctuation.separator.beancount"},"3":{name:"constant.numeric.date.month.beancount"},"4":{name:"punctuation.separator.beancount"},"5":{name:"constant.numeric.date.day.beancount"},"6":{name:"support.function.directive.beancount"}},comment:"Commodity directive",end:"(?=(^\\s*$|^\\S))",name:"meta.directive.dated.beancount",patterns:[{include:"#comments"},{include:"#meta"},{include:"#commodity"},{include:"#illegal"}]},{name:"meta.directive.notetotext.beancount",comment:"Note as Oneliner Transaction directive",begin:"([0-9]{4})([\\-|/])([0-9]{2})([\\-|/])([0-9]{2})\\s+(note)(?=(.*\\*\\\"\\s))",beginCaptures:{"1":{name:"constant.numeric.date.year.beancount"},"2":{name:"punctuation.separator.beancount"},"3":{name:"constant.numeric.date.month.beancount"},"4":{name:"punctuation.separator.beancount"},"5":{name:"constant.numeric.date.day.beancount"},"6":{name:"support.function.directive.beancount"}},end:"(?=(^\\s*$|^\\S))",patterns:[{include:"#meta"},{include:"#account"},{name:"punctuation.separator.beancount",match:"(?<=\\s)\\\""},{include:"#cost"},{include:"#amount"},{begin:"(\\*|\\!)",beginCaptures:{"0":{name:"support.function.directive.beancount"}},end:"(\\*\\\")",endCaptures:{"0":{name:"punctuation.separator.beancount"}},patterns:[{name:"constant.character.escape.beancount",match:"\\\\."},{include:"#tag"},{name:"string.quoted.double.beancount",match:"([^\\\"])"}]},{include:"#illegal"}]},{begin:"([0-9]{4})([\\-|/])([0-9]{2})([\\-|/])([0-9]{2})\\s(note|document)",beginCaptures:{"1":{name:"constant.numeric.date.year.beancount"},"2":{name:"punctuation.separator.beancount"},"3":{name:"constant.numeric.date.month.beancount"},"4":{name:"punctuation.separator.beancount"},"5":{name:"constant.numeric.date.day.beancount"},"6":{name:"support.function.directive.beancount"}},comment:"Note/Document directive",end:"(?=(^\\s*$|^\\S))",name:"meta.directive.dated.beancount",patterns:[{include:"#comments"},{include:"#meta"},{include:"#account"},{include:"#string"},{include:"#illegal"}]},{begin:"([0-9]{4})([\\-|/])([0-9]{2})([\\-|/])([0-9]{2})\\s(price)",beginCaptures:{"1":{name:"constant.numeric.date.year.beancount"},"2":{name:"punctuation.separator.beancount"},"3":{name:"constant.numeric.date.month.beancount"},"4":{name:"punctuation.separator.beancount"},"5":{name:"constant.numeric.date.day.beancount"},"6":{name:"support.function.directive.beancount"}},comment:"Price directives",end:"(?=(^\\s*$|^\\S))",name:"meta.directive.dated.beancount",patterns:[{include:"#comments"},{include:"#meta"},{include:"#commodity"},{include:"#amount"},{include:"#illegal"}]},{begin:"([0-9]{4})([\\-|/])([0-9]{2})([\\-|/])([0-9]{2})\\s(balance)",beginCaptures:{"1":{name:"constant.numeric.date.year.beancount"},"2":{name:"punctuation.separator.beancount"},"3":{name:"constant.numeric.date.month.beancount"},"4":{name:"punctuation.separator.beancount"},"5":{name:"constant.numeric.date.day.beancount"},"6":{name:"support.function.directive.beancount"}},comment:"Balance directives",end:"(?=(^\\s*$|^\\S))",name:"meta.directive.dated.beancount",patterns:[{include:"#comments"},{include:"#meta"},{include:"#account"},{include:"#amount"},{include:"#illegal"}]},{begin:"([0-9]{4})([\\-|/])([0-9]{2})([\\-|/])([0-9]{2})\\s*(txn|[*!&#?%PSTCURM])\\s*(\".*?\")?\\s*(\".*?\")?",beginCaptures:{"1":{name:"constant.numeric.date.year.beancount"},"2":{name:"punctuation.separator.beancount"},"3":{name:"constant.numeric.date.month.beancount"},"4":{name:"punctuation.separator.beancount"},"5":{name:"constant.numeric.date.day.beancount"},"6":{name:"support.function.directive.beancount"},"7":{name:"string.quoted.tiers.beancount"},"8":{name:"string.quoted.narration.beancount"}},comment:"Transaction directive",end:"(?=(^\\s*$|^\\S))",name:"meta.directive.transaction.beancount",patterns:[{include:"#comments"},{include:"#posting"},{include:"#meta"},{include:"#tag"},{include:"#link"},{include:"#illegal"}]}],repository:{account:{begin:"([A-Z][a-z]+)(:)",beginCaptures:{"1":{name:"constant.language.beancount"},"2":{name:"punctuation.separator.beancount"}},end:"\\s",name:"meta.account.beancount",patterns:[{begin:"(\\S+)([:]?)",beginCaptures:{"1":{name:"variable.account.beancount"},"2":{name:"punctuation.separator.beancount"}},comment:"Sub accounts",end:"([:]?)|(\\s)",patterns:[{include:"$self"},{include:"#illegal"}]}]},bool:{captures:{"0":{name:"constant.language.bool.beancount"},"2":{name:"constant.numeric.currency.beancount"},"3":{name:"entity.type.commodity.beancount"}},match:"TRUE|FALSE"},number:{captures:{"1":{name:"keyword.operator.modifier.beancount"},"2":{name:"constant.numeric.currency.beancount"}},match:"([\\-|\\+]?)(\\d+(?:,\\d{3})*(?:\\.\\d*)?)"},amount:{captures:{"1":{name:"keyword.operator.modifier.beancount"},"2":{name:"constant.numeric.currency.beancount"},"3":{name:"entity.type.commodity.beancount"}},match:"([\\-|\\+]?)(\\d+(?:,\\d{3})*(?:\\.\\d*)?)\\s*([A-Z][A-Z0-9\\'\\.\\_\\-]{0,22}[A-Z0-9])",name:"meta.amount.beancount"},comments:{captures:{"1":{name:"comment.line.beancount"}},match:"(;.*)$"},commodity:{match:"([A-Z][A-Z0-9\\'\\.\\_\\-]{0,22}[A-Z0-9])",name:"entity.type.commodity.beancount"},cost:{begin:"\\{\\{?",beginCaptures:{"0":{name:"keyword.operator.assignment.beancount"}},end:"\\}\\}?",endCaptures:{"0":{name:"keyword.operator.assignment.beancount"}},name:"meta.cost.beancount",patterns:[{include:"#amount"},{include:"#date"},{match:"\\,",name:"punctuation.separator.beancount"},{include:"#illegal"}]},date:{captures:{"1":{name:"constant.numeric.date.year.beancount"},"2":{name:"punctuation.separator.beancount"},"3":{name:"constant.numeric.date.month.beancount"},"4":{name:"punctuation.separator.beancount"},"5":{name:"constant.numeric.date.day.beancount"}},match:"([0-9]{4})([\\-|/])([0-9]{2})([\\-|/])([0-9]{2})",name:"meta.date.beancount"},flag:{match:"(?<=\\s)([*!&#?%PSTCURM])(?=\\s+)",name:"keyword.other.beancount"},illegal:{match:"[^\\s]",name:"invalid.illegal.unrecognized.beancount"},link:{captures:{"1":{name:"keyword.operator.link.beancount"},"2":{name:"markup.underline.link.beancount"}},match:"(\\^)([A-Za-z0-9\\-_/.]+)"},meta:{begin:"^\\s*([a-z][A-Za-z0-9\\-_]+)([:])",beginCaptures:{"1":{name:"keyword.operator.directive.beancount"},"2":{name:"punctuation.separator.beancount"}},end:"\\n",name:"meta.meta.beancount",patterns:[{include:"#string"},{include:"#account"},{include:"#bool"},{include:"#commodity"},{include:"#date"},{include:"#tag"},{include:"#amount"},{include:"#number"},{include:"#comments"},{include:"#illegal"}]},posting:{begin:"^\\s+(?=([A-Z\\!]))",end:"(?=(^\\s*$|^\\S|^\\s*[A-Z]))",name:"meta.posting.beancount",patterns:[{include:"#meta"},{include:"#comments"},{include:"#flag"},{include:"#account"},{include:"#amount"},{include:"#cost"},{include:"#date"},{include:"#price"},{include:"#illegal"}]},price:{begin:"\\@\\@?",beginCaptures:{"0":{name:"keyword.operator.assignment.beancount"}},end:"(?=(;|\\n))",name:"meta.price.beancount",patterns:[{include:"#amount"},{include:"#illegal"}]},string:{begin:"\\\"",end:"\\\"",name:"string.quoted.double.beancount",patterns:[{match:"\\\\.",name:"constant.character.escape.beancount"}]},tag:{captures:{"1":{name:"keyword.operator.tag.beancount"},"2":{name:"entity.name.tag.beancount"}},match:"(#)([A-Za-z0-9\\-_/.]+)"}},scopeName:"text.beancount",uuid:"dbf28879-ee4d-497e-a678-a5c5a5e8d74f"}; + +export { beancount_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/berry.tmLanguage-9b5533c7.mjs b/docs/shiki/dist/languages/berry.tmLanguage-9b5533c7.mjs new file mode 100644 index 00000000..dc57fe2d --- /dev/null +++ b/docs/shiki/dist/languages/berry.tmLanguage-9b5533c7.mjs @@ -0,0 +1,3 @@ +var berry_tmLanguage = {$schema:"https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",name:"berry",patterns:[{include:"#controls"},{include:"#strings"},{include:"#comment-block"},{include:"#comments"},{include:"#keywords"},{include:"#function"},{include:"#member"},{include:"#identifier"},{include:"#number"},{include:"#operator"}],repository:{controls:{patterns:[{name:"keyword.control.berry",match:"\\b(if|elif|else|for|while|do|end|break|continue|return|try|except|raise)\\b"}]},strings:{patterns:[{name:"string.quoted.double.berry",begin:"(\"|')",end:"\\1",patterns:[{name:"constant.character.escape.berry",match:"(\\\\x[\\h]{2})|(\\\\[0-7]{3})|(\\\\\\\\)|(\\\\\")|(\\\\')|(\\\\a)|(\\\\b)|(\\\\f)|(\\\\n)|(\\\\r)|(\\\\t)|(\\\\v)"}]},{name:"string.quoted.other.berry",begin:"f(\"|')",end:"\\1",patterns:[{name:"constant.character.escape.berry",match:"(\\\\x[\\h]{2})|(\\\\[0-7]{3})|(\\\\\\\\)|(\\\\\")|(\\\\')|(\\\\a)|(\\\\b)|(\\\\f)|(\\\\n)|(\\\\r)|(\\\\t)|(\\\\v)"},{name:"string.quoted.other.berry",match:"\\{\\{[^\\}]*\\}\\}"},{name:"keyword.other.unit.berry",begin:"\\{",end:"\\}",patterns:[{include:"#keywords"},{include:"#numbers"},{include:"#identifier"},{include:"#operator"},{include:"#member"},{include:"#function"}]}]}]},"comment-block":{name:"comment.berry",begin:"\\#\\-",end:"\\-#",patterns:[{}]},comments:{name:"comment.line.berry",begin:"\\#",end:"\\n",patterns:[{}]},keywords:{patterns:[{name:"keyword.berry",match:"\\b(var|static|def|class|true|false|nil|self|super|import|as|_class)\\b"}]},identifier:{patterns:[{name:"identifier.berry",match:"\\b[_A-Za-z]\\w+\\b"}]},number:{patterns:[{name:"constant.numeric.berry",match:"0x[a-fA-F0-9]+|\\d+|(\\d+\\.?|\\.\\d)\\d*([eE][+-]?\\d+)?"}]},operator:{patterns:[{name:"keyword.operator.berry",match:"\\(|\\)|\\[|\\]|\\.|-|\\!|~|\\*|/|%|\\+|&|\\^|\\||<|>|=|:"}]},member:{patterns:[{match:"\\.([a-zA-Z_][a-zA-Z0-9_]*)",captures:{"0":{name:"entity.other.attribute-name.berry"}}}]},"function":{patterns:[{name:"entity.name.function.berry",match:"\\b([a-zA-Z_][a-zA-Z0-9_]*(?=\\s*\\())"}]}},scopeName:"source.berry"}; + +export { berry_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/bibtex.tmLanguage-fc598e52.mjs b/docs/shiki/dist/languages/bibtex.tmLanguage-fc598e52.mjs new file mode 100644 index 00000000..0a269f59 --- /dev/null +++ b/docs/shiki/dist/languages/bibtex.tmLanguage-fc598e52.mjs @@ -0,0 +1,3 @@ +var bibtex_tmLanguage = {information_for_contributors:["This file has been converted from https://github.com/jlelong/vscode-latex-basics/blob/master/syntaxes/Bibtex.tmLanguage.json","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."],version:"https://github.com/jlelong/vscode-latex-basics/commit/7adad0868ecafbb1df978f1e052d6c3c85c38732",name:"bibtex",scopeName:"text.bibtex",comment:"Grammar based on description from http://artis.imag.fr/~Xavier.Decoret/resources/xdkbibtex/bibtex_summary.html#comment\n\t\n\tTODO: Does not support @preamble\n\t",patterns:[{begin:"@Comment",beginCaptures:{"0":{name:"punctuation.definition.comment.bibtex"}},end:"$\\n?",name:"comment.line.at-sign.bibtex"},{patterns:[{include:"#percentage_comment"}]},{begin:"((@)(?i:string))\\s*(\\{)\\s*([a-zA-Z0-9\\!\\$\\&\\*\\+\\-\\.\\/\\:\\;\\<\\>\\?\\[\\]\\^\\_\\`\\|]+)",beginCaptures:{"1":{name:"keyword.other.string-constant.bibtex"},"2":{name:"punctuation.definition.keyword.bibtex"},"3":{name:"punctuation.section.string-constant.begin.bibtex"},"4":{name:"variable.other.bibtex"}},end:"\\}",endCaptures:{"0":{name:"punctuation.section.string-constant.end.bibtex"}},name:"meta.string-constant.braces.bibtex",patterns:[{include:"#string_content"}]},{begin:"((@)(?i:string))\\s*(\\()\\s*([a-zA-Z0-9\\!\\$\\&\\*\\+\\-\\.\\/\\:\\;\\<\\>\\?\\[\\]\\^\\_\\`\\|]+)",beginCaptures:{"1":{name:"keyword.other.string-constant.bibtex"},"2":{name:"punctuation.definition.keyword.bibtex"},"3":{name:"punctuation.section.string-constant.begin.bibtex"},"4":{name:"variable.other.bibtex"}},end:"\\)",endCaptures:{"0":{name:"punctuation.section.string-constant.end.bibtex"}},name:"meta.string-constant.parenthesis.bibtex",patterns:[{include:"#string_content"}]},{begin:"((@)[a-zA-Z]+)\\s*(\\{)\\s*([^\\s,]*)",beginCaptures:{"1":{name:"keyword.other.entry-type.bibtex"},"2":{name:"punctuation.definition.keyword.bibtex"},"3":{name:"punctuation.section.entry.begin.bibtex"},"4":{name:"entity.name.type.entry-key.bibtex"}},end:"\\}",endCaptures:{"0":{name:"punctuation.section.entry.end.bibtex"}},name:"meta.entry.braces.bibtex",patterns:[{include:"#percentage_comment"},{include:"#url_field"},{begin:"([a-zA-Z0-9\\!\\$\\&\\*\\+\\-\\.\\/\\:\\;\\<\\>\\?\\[\\]\\^\\_\\`\\|]+)\\s*(\\=)",beginCaptures:{"1":{name:"support.function.key.bibtex"},"2":{name:"punctuation.separator.key-value.bibtex"}},end:"(?=[,}])",name:"meta.key-assignment.bibtex",patterns:[{include:"#percentage_comment"},{include:"#integer"},{include:"#string_content"},{include:"#string_var"}]}]},{begin:"((@)[a-zA-Z]+)\\s*(\\()\\s*([^\\s,]*)",beginCaptures:{"1":{name:"keyword.other.entry-type.bibtex"},"2":{name:"punctuation.definition.keyword.bibtex"},"3":{name:"punctuation.section.entry.begin.bibtex"},"4":{name:"entity.name.type.entry-key.bibtex"}},end:"\\)",endCaptures:{"0":{name:"punctuation.section.entry.end.bibtex"}},name:"meta.entry.parenthesis.bibtex",patterns:[{include:"#percentage_comment"},{include:"#url_field"},{begin:"([a-zA-Z0-9\\!\\$\\&\\*\\+\\-\\.\\/\\:\\;\\<\\>\\?\\[\\]\\^\\_\\`\\|]+)\\s*(\\=)",beginCaptures:{"1":{name:"support.function.key.bibtex"},"2":{name:"punctuation.separator.key-value.bibtex"}},end:"(?=[,)])",name:"meta.key-assignment.bibtex",patterns:[{include:"#percentage_comment"},{include:"#integer"},{include:"#string_content"},{include:"#string_var"}]}]},{begin:"[^@\\n]",end:"(?=@)",name:"comment.block.bibtex"}],repository:{integer:{match:"\\s*(\\d+)\\s*",captures:{"1":{name:"constant.numeric.bibtex"}}},nested_braces:{begin:"(?\\?\\[\\]\\^\\_\\`\\|]+)\\s*(#)?",captures:{"1":{name:"keyword.operator.bibtex"},"2":{name:"support.variable.bibtex"},"3":{name:"keyword.operator.bibtex"}}},string_content:{patterns:[{begin:"\\{",beginCaptures:{"0":{name:"punctuation.definition.string.begin.bibtex"}},end:"(\\})(?=(?:,?\\s*\\}?\\s*\\n)|(?:\\s*#))",endCaptures:{"1":{name:"punctuation.definition.string.end.bibtex"}},patterns:[{include:"#url_cmd"},{include:"#percentage_comment"},{match:"@",name:"invalid.illegal.at-sign.bibtex"},{include:"#nested_braces"}]},{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.bibtex"}},end:"\"(?=(?:,?\\s*\\}?\\s*\\n)|(?:\\s*#))",endCaptures:{"0":{name:"punctuation.definition.string.end.bibtex"}},patterns:[{include:"#url_cmd"},{include:"#percentage_comment"},{match:"@",name:"invalid.illegal.at-sign.bibtex"}]}]},string_url:{patterns:[{begin:"\\{|\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.bibtex"}},end:"(\\}|\")(?=(?:,?\\s*\\}?\\s*\\n)|(?:\\s*#))",endCaptures:{"1":{name:"punctuation.definition.string.end.bibtex"}},contentName:"meta.url.bibtex",patterns:[{include:"#url_cmd"}]}]},percentage_comment:{patterns:[{begin:"(^[ \\t]+)?(?=%)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.bibtex"}},end:"(?!\\G)",patterns:[{begin:"(?)",beginCaptures:{"1":{name:"meta.undefined.bicep",patterns:[{include:"#identifier"},{include:"#comments"}]}},end:"(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*=>"},"line-comment":{name:"comment.line.double-slash.bicep",match:"//.*(?=$)"},"named-literal":{name:"constant.language.bicep",match:"\\b(true|false|null)\\b"},"numeric-literal":{name:"constant.numeric.bicep",match:"[0-9]+"},"object-literal":{name:"meta.object-literal.bicep",begin:"{",end:"}",patterns:[{include:"#object-property-key"},{include:"#expression"},{include:"#comments"}]},"object-property-key":{name:"variable.other.property.bicep",match:"\\b[_$[:alpha:]][_$[:alnum:]]*\\b(?=(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*:)"},"string-literal":{name:"string.quoted.single.bicep",begin:"'(?!'')",end:"'",patterns:[{include:"#escape-character"},{include:"#string-literal-subst"}]},"string-literal-subst":{name:"meta.string-literal-subst.bicep",begin:"(?))",beginCaptures:{"0":{name:"punctuation.whitespace.embedded.leading.php"}},end:"(?!\\G)(\\s*$\\n)?",endCaptures:{"0":{name:"punctuation.whitespace.embedded.trailing.php"}},patterns:[{begin:"<\\?(?i:php|=)?",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.php"}},contentName:"source.php",end:"(\\?)>",endCaptures:{"0":{name:"punctuation.section.embedded.end.php"},"1":{name:"source.php"}},name:"meta.embedded.block.php",patterns:[{include:"#language"}]}]},{begin:"<\\?(?i:php|=)?(?![^?]*\\?>)",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.php"}},contentName:"source.php",end:"(\\?)>",endCaptures:{"0":{name:"punctuation.section.embedded.end.php"},"1":{name:"source.php"}},name:"meta.embedded.block.php",patterns:[{include:"#language"}]},{begin:"<\\?(?i:php|=)?",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.php"}},end:">",endCaptures:{"0":{name:"punctuation.section.embedded.end.php"}},name:"meta.embedded.line.php",patterns:[{captures:{"1":{name:"source.php"},"2":{name:"punctuation.section.embedded.end.php"},"3":{name:"source.php"}},match:"\\G(\\s*)((\\?))(?=>)",name:"meta.special.empty-tag.php"},{begin:"\\G",contentName:"source.php",end:"(\\?)(?=>)",endCaptures:{"0":{name:"punctuation.section.embedded.end.php"},"1":{name:"source.php"}},patterns:[{include:"#language"}]}]}]}},patterns:[{include:"text.html.basic"}],repository:{blade:{patterns:[{begin:"{{--",beginCaptures:{"0":{name:"punctuation.definition.comment.begin.blade"}},end:"--}}",endCaptures:{"0":{name:"punctuation.definition.comment.end.blade"}},name:"comment.block.blade",patterns:[{name:"invalid.illegal.php-code-in-comment.blade",begin:"(^\\s*)(?=<\\?(?![^?]*\\?>))",beginCaptures:{"0":{name:"punctuation.whitespace.embedded.leading.php"}},end:"(?!\\G)(\\s*$\\n)?",endCaptures:{"0":{name:"punctuation.whitespace.embedded.trailing.php"}},patterns:[{begin:"<\\?(?i:php|=)?",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.php"}},contentName:"source.php",end:"(\\?)>",endCaptures:{"0":{name:"punctuation.section.embedded.end.php"},"1":{name:"source.php"}},name:"meta.embedded.block.php",patterns:[{include:"#language"}]}]},{begin:"<\\?(?i:php|=)?(?![^?]*\\?>)",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.php"}},contentName:"source.php",end:"(\\?)>",endCaptures:{"0":{name:"punctuation.section.embedded.end.php"},"1":{name:"source.php"}},name:"invalid.illegal.php-code-in-comment.blade.meta.embedded.block.php",patterns:[{include:"#language"}]},{begin:"<\\?(?i:php|=)?",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.php"}},end:">",endCaptures:{"0":{name:"punctuation.section.embedded.end.php"}},name:"invalid.illegal.php-code-in-comment.blade.meta.embedded.line.php",patterns:[{captures:{"1":{name:"source.php"},"2":{name:"punctuation.section.embedded.end.php"},"3":{name:"source.php"}},match:"\\G(\\s*)((\\?))(?=>)",name:"meta.special.empty-tag.php"},{begin:"\\G",contentName:"source.php",end:"(\\?)(?=>)",endCaptures:{"0":{name:"punctuation.section.embedded.end.php"},"1":{name:"source.php"}},patterns:[{include:"#language"}]}]}]},{begin:"(?)",name:"comment.line.double-slash.php"}]},{begin:"(^\\s+)?(?=#)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.php"}},end:"(?!\\G)",patterns:[{begin:"#",beginCaptures:{"0":{name:"punctuation.definition.comment.php"}},end:"\\n|(?=\\?>)",name:"comment.line.number-sign.php"}]}]},constants:{patterns:[{match:"(?i)\\b(TRUE|FALSE|NULL|__(FILE|DIR|FUNCTION|CLASS|METHOD|LINE|NAMESPACE)__|ON|OFF|YES|NO|NL|BR|TAB)\\b",name:"constant.language.php"},{match:"(?x)\n(\\\\)?\\b\n(DEFAULT_INCLUDE_PATH\n|EAR_(INSTALL|EXTENSION)_DIR\n|E_(ALL|COMPILE_(ERROR|WARNING)|CORE_(ERROR|WARNING)|DEPRECATED|ERROR|NOTICE\n |PARSE|RECOVERABLE_ERROR|STRICT|USER_(DEPRECATED|ERROR|NOTICE|WARNING)|WARNING)\n|PHP_(ROUND_HALF_(DOWN|EVEN|ODD|UP)|(MAJOR|MINOR|RELEASE)_VERSION|MAXPATHLEN\n |BINDIR|SHLIB_SUFFIX|SYSCONFDIR|SAPI|CONFIG_FILE_(PATH|SCAN_DIR)\n |INT_(MAX|SIZE)|ZTS|OS|OUTPUT_HANDLER_(START|CONT|END)|DEBUG|DATADIR\n |URL_(SCHEME|HOST|USER|PORT|PASS|PATH|QUERY|FRAGMENT)|PREFIX\n |EXTRA_VERSION|EXTENSION_DIR|EOL|VERSION(_ID)?\n |WINDOWS_(NT_(SERVER|DOMAIN_CONTROLLER|WORKSTATION)\n |VERSION_(MAJOR|MINOR)|BUILD|SUITEMASK|SP_(MAJOR|MINOR)\n |PRODUCTTYPE|PLATFORM)\n |LIBDIR|LOCALSTATEDIR)\n|STD(ERR|IN|OUT)|ZEND_(DEBUG_BUILD|THREAD_SAFE))\n\\b",name:"support.constant.core.php",captures:{"1":{name:"punctuation.separator.inheritance.php"}}},{match:"(?x)\n(\\\\)?\\b\n(__COMPILER_HALT_OFFSET__|AB(MON_(1|2|3|4|5|6|7|8|9|10|11|12)|DAY[1-7])\n|AM_STR|ASSERT_(ACTIVE|BAIL|CALLBACK_QUIET_EVAL|WARNING)|ALT_DIGITS\n|CASE_(UPPER|LOWER)|CHAR_MAX|CONNECTION_(ABORTED|NORMAL|TIMEOUT)|CODESET|COUNT_(NORMAL|RECURSIVE)\n|CREDITS_(ALL|DOCS|FULLPAGE|GENERAL|GROUP|MODULES|QA|SAPI)\n|CRYPT_(BLOWFISH|EXT_DES|MD5|SHA(256|512)|SALT_LENGTH|STD_DES)|CURRENCY_SYMBOL\n|D_(T_)?FMT|DATE_(ATOM|COOKIE|ISO8601|RFC(822|850|1036|1123|2822|3339)|RSS|W3C)\n|DAY_[1-7]|DECIMAL_POINT|DIRECTORY_SEPARATOR\n|ENT_(COMPAT|IGNORE|(NO)?QUOTES)|EXTR_(IF_EXISTS|OVERWRITE|PREFIX_(ALL|IF_EXISTS|INVALID|SAME)|REFS|SKIP)\n|ERA(_(D_(T_)?FMT)|T_FMT|YEAR)?|FRAC_DIGITS|GROUPING|HASH_HMAC|HTML_(ENTITIES|SPECIALCHARS)\n|INF|INFO_(ALL|CREDITS|CONFIGURATION|ENVIRONMENT|GENERAL|LICENSEMODULES|VARIABLES)\n|INI_(ALL|CANNER_(NORMAL|RAW)|PERDIR|SYSTEM|USER)|INT_(CURR_SYMBOL|FRAC_DIGITS)\n|LC_(ALL|COLLATE|CTYPE|MESSAGES|MONETARY|NUMERIC|TIME)|LOCK_(EX|NB|SH|UN)\n|LOG_(ALERT|AUTH(PRIV)?|CRIT|CRON|CONS|DAEMON|DEBUG|EMERG|ERR|INFO|LOCAL[1-7]|LPR|KERN|MAIL\n |NEWS|NODELAY|NOTICE|NOWAIT|ODELAY|PID|PERROR|WARNING|SYSLOG|UCP|USER)\n|M_(1_PI|SQRT(1_2|2|3|PI)|2_(SQRT)?PI|PI(_(2|4))?|E(ULER)?|LN(10|2|PI)|LOG(10|2)E)\n|MON_(1|2|3|4|5|6|7|8|9|10|11|12|DECIMAL_POINT|GROUPING|THOUSANDS_SEP)\n|N_(CS_PRECEDES|SEP_BY_SPACE|SIGN_POSN)|NAN|NEGATIVE_SIGN|NO(EXPR|STR)\n|P_(CS_PRECEDES|SEP_BY_SPACE|SIGN_POSN)|PM_STR|POSITIVE_SIGN\n|PATH(_SEPARATOR|INFO_(EXTENSION|(BASE|DIR|FILE)NAME))|RADIXCHAR\n|SEEK_(CUR|END|SET)|SORT_(ASC|DESC|LOCALE_STRING|REGULAR|STRING)|STR_PAD_(BOTH|LEFT|RIGHT)\n|T_FMT(_AMPM)?|THOUSEP|THOUSANDS_SEP\n|UPLOAD_ERR_(CANT_WRITE|EXTENSION|(FORM|INI)_SIZE|NO_(FILE|TMP_DIR)|OK|PARTIAL)\n|YES(EXPR|STR))\n\\b",name:"support.constant.std.php",captures:{"1":{name:"punctuation.separator.inheritance.php"}}},{match:"(?x)\n(\\\\)?\\b\n(GLOB_(MARK|BRACE|NO(SORT|CHECK|ESCAPE)|ONLYDIR|ERR|AVAILABLE_FLAGS)\n|XML_(SAX_IMPL|(DTD|DOCUMENT(_(FRAG|TYPE))?|HTML_DOCUMENT|NOTATION|NAMESPACE_DECL|PI|COMMENT|DATA_SECTION|TEXT)_NODE\n |OPTION_(SKIP_(TAGSTART|WHITE)|CASE_FOLDING|TARGET_ENCODING)\n |ERROR_((BAD_CHAR|(ATTRIBUTE_EXTERNAL|BINARY|PARAM|RECURSIVE)_ENTITY)_REF|MISPLACED_XML_PI|SYNTAX|NONE\n |NO_(MEMORY|ELEMENTS)|TAG_MISMATCH|INCORRECT_ENCODING|INVALID_TOKEN|DUPLICATE_ATTRIBUTE\n |UNCLOSED_(CDATA_SECTION|TOKEN)|UNDEFINED_ENTITY|UNKNOWN_ENCODING|JUNK_AFTER_DOC_ELEMENT\n |PARTIAL_CHAR|EXTERNAL_ENTITY_HANDLING|ASYNC_ENTITY)\n |ENTITY_(((REF|DECL)_)?NODE)|ELEMENT(_DECL)?_NODE|LOCAL_NAMESPACE|ATTRIBUTE_(NMTOKEN(S)?|NOTATION|NODE)\n |CDATA|ID(REF(S)?)?|DECL_NODE|ENTITY|ENUMERATION)\n|MHASH_(RIPEMD(128|160|256|320)|GOST|MD(2|4|5)|SHA(1|224|256|384|512)|SNEFRU256|HAVAL(128|160|192|224|256)\n |CRC23(B)?|TIGER(128|160)?|WHIRLPOOL|ADLER32)\n|MYSQL_(BOTH|NUM|CLIENT_(SSL|COMPRESS|IGNORE_SPACE|INTERACTIVE|ASSOC))\n|MYSQLI_(REPORT_(STRICT|INDEX|OFF|ERROR|ALL)|REFRESH_(GRANT|MASTER|BACKUP_LOG|STATUS|SLAVE|HOSTS|THREADS|TABLES|LOG)\n |READ_DEFAULT_(FILE|GROUP)|(GROUP|MULTIPLE_KEY|BINARY|BLOB)_FLAG|BOTH\n |STMT_ATTR_(CURSOR_TYPE|UPDATE_MAX_LENGTH|PREFETCH_ROWS)|STORE_RESULT\n |SERVER_QUERY_(NO_((GOOD_)?INDEX_USED)|WAS_SLOW)|SET_(CHARSET_NAME|FLAG)\n |NO_(DEFAULT_VALUE_FLAG|DATA)|NOT_NULL_FLAG|NUM(_FLAG)?\n |CURSOR_TYPE_(READ_ONLY|SCROLLABLE|NO_CURSOR|FOR_UPDATE)\n |CLIENT_(SSL|NO_SCHEMA|COMPRESS|IGNORE_SPACE|INTERACTIVE|FOUND_ROWS)\n |TYPE_(GEOMETRY|((MEDIUM|LONG|TINY)_)?BLOB|BIT|SHORT|STRING|SET|YEAR|NULL|NEWDECIMAL|NEWDATE|CHAR\n |TIME(STAMP)?|TINY|INT24|INTERVAL|DOUBLE|DECIMAL|DATE(TIME)?|ENUM|VAR_STRING|FLOAT|LONG(LONG)?)\n |TIME_STAMP_FLAG|INIT_COMMAND|ZEROFILL_FLAG|ON_UPDATE_NOW_FLAG\n |OPT_(NET_((CMD|READ)_BUFFER_SIZE)|CONNECT_TIMEOUT|INT_AND_FLOAT_NATIVE|LOCAL_INFILE)\n |DEBUG_TRACE_ENABLED|DATA_TRUNCATED|USE_RESULT|(ENUM|(PART|PRI|UNIQUE)_KEY|UNSIGNED)_FLAG\n |ASSOC|ASYNC|AUTO_INCREMENT_FLAG)\n|MCRYPT_(RC(2|6)|RIJNDAEL_(128|192|256)|RAND|GOST|XTEA|MODE_(STREAM|NOFB|CBC|CFB|OFB|ECB)|MARS\n |BLOWFISH(_COMPAT)?|SERPENT|SKIPJACK|SAFER(64|128|PLUS)|CRYPT|CAST_(128|256)|TRIPLEDES|THREEWAY\n |TWOFISH|IDEA|(3)?DES|DECRYPT|DEV_(U)?RANDOM|PANAMA|ENCRYPT|ENIGNA|WAKE|LOKI97|ARCFOUR(_IV)?)\n|STREAM_(REPORT_ERRORS|MUST_SEEK|MKDIR_RECURSIVE|BUFFER_(NONE|FULL|LINE)|SHUT_(RD)?WR\n |SOCK_(RDM|RAW|STREAM|SEQPACKET|DGRAM)|SERVER_(BIND|LISTEN)\n |NOTIFY_(REDIRECTED|RESOLVE|MIME_TYPE_IS|SEVERITY_(INFO|ERR|WARN)|COMPLETED|CONNECT|PROGRESS\n |FILE_SIZE_IS|FAILURE|AUTH_(REQUIRED|RESULT))\n |CRYPTO_METHOD_((SSLv2(3)?|SSLv3|TLS)_(CLIENT|SERVER))|CLIENT_((ASYNC_)?CONNECT|PERSISTENT)\n |CAST_(AS_STREAM|FOR_SELECT)|(IGNORE|IS)_URL|IPPROTO_(RAW|TCP|ICMP|IP|UDP)|OOB\n |OPTION_(READ_(BUFFER|TIMEOUT)|BLOCKING|WRITE_BUFFER)|URL_STAT_(LINK|QUIET)|USE_PATH\n |PEEK|PF_(INET(6)?|UNIX)|ENFORCE_SAFE_MODE|FILTER_(ALL|READ|WRITE))\n|SUNFUNCS_RET_(DOUBLE|STRING|TIMESTAMP)\n|SQLITE_(READONLY|ROW|MISMATCH|MISUSE|BOTH|BUSY|SCHEMA|NOMEM|NOTFOUND|NOTADB|NOLFS|NUM|CORRUPT\n |CONSTRAINT|CANTOPEN|TOOBIG|INTERRUPT|INTERNAL|IOERR|OK|DONE|PROTOCOL|PERM|ERROR|EMPTY\n |FORMAT|FULL|LOCKED|ABORT|ASSOC|AUTH)\n|SQLITE3_(BOTH|BLOB|NUM|NULL|TEXT|INTEGER|OPEN_(READ(ONLY|WRITE)|CREATE)|FLOAT_ASSOC)\n|CURL(M_(BAD_((EASY)?HANDLE)|CALL_MULTI_PERFORM|INTERNAL_ERROR|OUT_OF_MEMORY|OK)\n |MSG_DONE|SSH_AUTH_(HOST|NONE|DEFAULT|PUBLICKEY|PASSWORD|KEYBOARD)\n |CLOSEPOLICY_(SLOWEST|CALLBACK|OLDEST|LEAST_(RECENTLY_USED|TRAFFIC)\n |INFO_(REDIRECT_(COUNT|TIME)|REQUEST_SIZE|SSL_VERIFYRESULT|STARTTRANSFER_TIME\n |(SIZE|SPEED)_(DOWNLOAD|UPLOAD)|HTTP_CODE|HEADER_(OUT|SIZE)|NAMELOOKUP_TIME\n |CONNECT_TIME|CONTENT_(TYPE|LENGTH_(DOWNLOAD|UPLOAD))|CERTINFO|TOTAL_TIME\n |PRIVATE|PRETRANSFER_TIME|EFFECTIVE_URL|FILETIME)\n |OPT_(RESUME_FROM|RETURNTRANSFER|REDIR_PROTOCOLS|REFERER|READ(DATA|FUNCTION)|RANGE|RANDOM_FILE\n |MAX(CONNECTS|REDIRS)|BINARYTRANSFER|BUFFERSIZE\n |SSH_(HOST_PUBLIC_KEY_MD5|(PRIVATE|PUBLIC)_KEYFILE)|AUTH_TYPES)\n |SSL(CERT(TYPE|PASSWD)?|ENGINE(_DEFAULT)?|VERSION|KEY(TYPE|PASSWD)?)\n |SSL_(CIPHER_LIST|VERIFY(HOST|PEER))\n |STDERR|HTTP(GET|HEADER|200ALIASES|_VERSION|PROXYTUNNEL|AUTH)\n |HEADER(FUNCTION)?|NO(BODY|SIGNAL|PROGRESS)|NETRC|CRLF|CONNECTTIMEOUT(_MS)?\n |COOKIE(SESSION|JAR|FILE)?|CUSTOMREQUEST|CERTINFO|CLOSEPOLICY|CA(INFO|PATH)|TRANSFERTEXT\n |TCP_NODELAY|TIME(CONDITION|OUT(_MS)?|VALUE)|INTERFACE|INFILE(SIZE)?|IPRESOLVE\n |DNS_(CACHE_TIMEOUT|USE_GLOBAL_CACHE)|URL|USER(AGENT|PWD)|UNRESTRICTED_AUTH|UPLOAD\n |PRIVATE|PROGRESSFUNCTION|PROXY(TYPE|USERPWD|PORT|AUTH)?|PROTOCOLS|PORT\n |POST(REDIR|QUOTE|FIELDS)?|PUT|EGDSOCKET|ENCODING|VERBOSE|KRB4LEVEL|KEYPASSWD|QUOTE|FRESH_CONNECT\n |FTP(APPEND|LISTONLY|PORT|SSLAUTH)\n |FTP_(SSL|SKIP_PASV_IP|CREATE_MISSING_DIRS|USE_EP(RT|SV)|FILEMETHOD)\n |FILE(TIME)?|FORBID_REUSE|FOLLOWLOCATION|FAILONERROR|WRITE(FUNCTION|HEADER)|LOW_SPEED_(LIMIT|TIME)\n |AUTOREFERER)\n |PROXY_(HTTP|SOCKS(4|5))|PROTO_(SCP|SFTP|HTTP(S)?|TELNET|TFTP|DICT|FTP(S)?|FILE|LDAP(S)?|ALL)\n |E_((RECV|READ)_ERROR|GOT_NOTHING|MALFORMAT_USER\n |BAD_(CONTENT_ENCODING|CALLING_ORDER|PASSWORD_ENTERED|FUNCTION_ARGUMENT)\n |SSH|SSL_(CIPHER|CONNECT_ERROR|CERTPROBLEM|CACERT|PEER_CERTIFICATE|ENGINE_(NOTFOUND|SETFAILED))\n |SHARE_IN_USE|SEND_ERROR|HTTP_(RANGE_ERROR|NOT_FOUND|PORT_FAILED|POST_ERROR)\n |COULDNT_(RESOLVE_(HOST|PROXY)|CONNECT)|TOO_MANY_REDIRECTS|TELNET_OPTION_SYNTAX|OBSOLETE\n |OUT_OF_MEMORY|OPERATION|TIMEOUTED|OK|URL_MALFORMAT(_USER)?|UNSUPPORTED_PROTOCOL\n |UNKNOWN_TELNET_OPTION|PARTIAL_FILE\n |FTP_(BAD_DOWNLOAD_RESUME|SSL_FAILED|COULDNT_(RETR_FILE|GET_SIZE|STOR_FILE|SET_(BINARY|ASCII)|USE_REST)\n |CANT_(GET_HOST|RECONNECT)|USER_PASSWORD_INCORRECT|PORT_FAILED|QUOTE_ERROR|WRITE_ERROR\n |WEIRD_((PASS|PASV|SERVER|USER)_REPLY|227_FORMAT)|ACCESS_DENIED)\n |FILESIZE_EXCEEDED|FILE_COULDNT_READ_FILE|FUNCTION_NOT_FOUND|FAILED_INIT|WRITE_ERROR|LIBRARY_NOT_FOUND\n |LDAP_(SEARCH_FAILED|CANNOT_BIND|INVALID_URL)|ABORTED_BY_CALLBACK)\n |VERSION_NOW\n |FTP(METHOD_(MULTI|SINGLE|NO)CWD|SSL_(ALL|NONE|CONTROL|TRY)|AUTH_(DEFAULT|SSL|TLS))\n |AUTH_(ANY(SAFE)?|BASIC|DIGEST|GSSNEGOTIATE|NTLM))\n|CURL_(HTTP_VERSION_(1_(0|1)|NONE)|NETRC_(REQUIRED|IGNORED|OPTIONAL)|TIMECOND_(IF(UN)?MODSINCE|LASTMOD)\n |IPRESOLVE_(V(4|6)|WHATEVER)|VERSION_(SSL|IPV6|KERBEROS4|LIBZ))\n|IMAGETYPE_(GIF|XBM|BMP|SWF|COUNT|TIFF_(MM|II)|ICO|IFF|UNKNOWN|JB2|JPX|JP2|JPC|JPEG(2000)?|PSD|PNG|WBMP)\n|INPUT_(REQUEST|GET|SERVER|SESSION|COOKIE|POST|ENV)|ICONV_(MIME_DECODE_(STRICT|CONTINUE_ON_ERROR)|IMPL|VERSION)\n|DNS_(MX|SRV|SOA|HINFO|NS|NAPTR|CNAME|TXT|PTR|ANY|ALL|AAAA|A(6)?)\n|DOM(STRING_SIZE_ERR)\n|DOM_((SYNTAX|HIERARCHY_REQUEST|NO_(MODIFICATION_ALLOWED|DATA_ALLOWED)|NOT_(FOUND|SUPPORTED)|NAMESPACE\n |INDEX_SIZE|USE_ATTRIBUTE|VALID_(MODIFICATION|STATE|CHARACTER|ACCESS)|PHP|VALIDATION|WRONG_DOCUMENT)_ERR)\n|JSON_(HEX_(TAG|QUOT|AMP|APOS)|NUMERIC_CHECK|ERROR_(SYNTAX|STATE_MISMATCH|NONE|CTRL_CHAR|DEPTH|UTF8)|FORCE_OBJECT)\n|PREG_((D_UTF8(_OFFSET)?|NO|INTERNAL|(BACKTRACK|RECURSION)_LIMIT)_ERROR|GREP_INVERT\n |SPLIT_(NO_EMPTY|(DELIM|OFFSET)_CAPTURE)|SET_ORDER|OFFSET_CAPTURE|PATTERN_ORDER)\n|PSFS_(PASS_ON|ERR_FATAL|FEED_ME|FLAG_(NORMAL|FLUSH_(CLOSE|INC)))\n|PCRE_VERSION|POSIX_((F|R|W|X)_OK|S_IF(REG|BLK|SOCK|CHR|IFO))\n|FNM_(NOESCAPE|CASEFOLD|PERIOD|PATHNAME)\n|FILTER_(REQUIRE_(SCALAR|ARRAY)|NULL_ON_FAILURE|CALLBACK|DEFAULT|UNSAFE_RAW\n |SANITIZE_(MAGIC_QUOTES|STRING|STRIPPED|SPECIAL_CHARS|NUMBER_(INT|FLOAT)|URL\n |EMAIL|ENCODED|FULL_SPCIAL_CHARS)\n |VALIDATE_(REGEXP|BOOLEAN|INT|IP|URL|EMAIL|FLOAT)\n |FORCE_ARRAY\n |FLAG_(SCHEME_REQUIRED|STRIP_(BACKTICK|HIGH|LOW)|HOST_REQUIRED|NONE|NO_(RES|PRIV)_RANGE|ENCODE_QUOTES\n |IPV(4|6)|PATH_REQUIRED|EMPTY_STRING_NULL|ENCODE_(HIGH|LOW|AMP)|QUERY_REQUIRED\n |ALLOW_(SCIENTIFIC|HEX|THOUSAND|OCTAL|FRACTION)))\n|FILE_(BINARY|SKIP_EMPTY_LINES|NO_DEFAULT_CONTEXT|TEXT|IGNORE_NEW_LINES|USE_INCLUDE_PATH|APPEND)\n|FILEINFO_(RAW|MIME(_(ENCODING|TYPE))?|SYMLINK|NONE|CONTINUE|DEVICES|PRESERVE_ATIME)\n|FORCE_(DEFLATE|GZIP)\n|LIBXML_(XINCLUDE|NSCLEAN|NO(XMLDECL|BLANKS|NET|CDATA|ERROR|EMPTYTAG|ENT|WARNING)\n |COMPACT|DTD(VALID|LOAD|ATTR)|((DOTTED|LOADED)_)?VERSION|PARSEHUGE|ERR_(NONE|ERROR|FATAL|WARNING)))\n\\b",name:"support.constant.ext.php",captures:{"1":{name:"punctuation.separator.inheritance.php"}}},{match:"(?x)\n(\\\\)?\\b\n(T_(RETURN|REQUIRE(_ONCE)?|GOTO|GLOBAL|(MINUS|MOD|MUL|XOR)_EQUAL|METHOD_C|ML_COMMENT|BREAK\n |BOOL_CAST|BOOLEAN_(AND|OR)|BAD_CHARACTER|SR(_EQUAL)?|STRING(_CAST|VARNAME)?|START_HEREDOC|STATIC\n |SWITCH|SL(_EQUAL)?|HALT_COMPILER|NS_(C|SEPARATOR)|NUM_STRING|NEW|NAMESPACE|CHARACTER|COMMENT\n |CONSTANT(_ENCAPSED_STRING)?|CONCAT_EQUAL|CONTINUE|CURLY_OPEN|CLOSE_TAG|CLONE|CLASS(_C)?\n |CASE|CATCH|TRY|THROW|IMPLEMENTS|ISSET|IS_((GREATER|SMALLER)_OR_EQUAL|(NOT_)?(IDENTICAL|EQUAL))\n |INSTANCEOF|INCLUDE(_ONCE)?|INC|INT_CAST|INTERFACE|INLINE_HTML|IF|OR_EQUAL|OBJECT_(CAST|OPERATOR)\n |OPEN_TAG(_WITH_ECHO)?|OLD_FUNCTION|DNUMBER|DIR|DIV_EQUAL|DOC_COMMENT|DOUBLE_(ARROW|CAST|COLON)\n |DOLLAR_OPEN_CURLY_BRACES|DO|DEC|DECLARE|DEFAULT|USE|UNSET(_CAST)?|PRINT|PRIVATE|PROTECTED|PUBLIC\n |PLUS_EQUAL|PAAMAYIM_NEKUDOTAYIM|EXTENDS|EXIT|EMPTY|ENCAPSED_AND_WHITESPACE\n |END(SWITCH|IF|DECLARE|FOR(EACH)?|WHILE)|END_HEREDOC|ECHO|EVAL|ELSE(IF)?|VAR(IABLE)?|FINAL|FILE\n |FOR(EACH)?|FUNC_C|FUNCTION|WHITESPACE|WHILE|LNUMBER|LIST|LINE|LOGICAL_(AND|OR|XOR)\n |ARRAY_(CAST)?|ABSTRACT|AS|AND_EQUAL))\n\\b",name:"support.constant.parser-token.php",captures:{"1":{name:"punctuation.separator.inheritance.php"}}},{match:"(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*",name:"constant.other.php"}]},"function-parameters":{patterns:[{include:"#comments"},{match:",",name:"punctuation.separator.delimiter.php"},{begin:"(?xi)\n(array) # Typehint\n\\s+((&)?\\s*(\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) # Variable name with possible reference\n\\s*(=)\\s*(array)\\s*(\\() # Default value",beginCaptures:{"1":{name:"storage.type.php"},"2":{name:"variable.other.php"},"3":{name:"storage.modifier.reference.php"},"4":{name:"punctuation.definition.variable.php"},"5":{name:"keyword.operator.assignment.php"},"6":{name:"support.function.construct.php"},"7":{name:"punctuation.definition.array.begin.bracket.round.php"}},contentName:"meta.array.php",end:"\\)",endCaptures:{"0":{name:"punctuation.definition.array.end.bracket.round.php"}},name:"meta.function.parameter.array.php",patterns:[{include:"#comments"},{include:"#strings"},{include:"#numbers"}]},{match:"(?xi)\n(array|callable) # Typehint\n\\s+((&)?\\s*(\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) # Variable name with possible reference\n(?: # Optional default value\n \\s*(=)\\s*\n (?:\n (null)\n |\n (\\[)((?>[^\\[\\]]+|\\[\\g<8>\\])*)(\\])\n |((?:\\S*?\\(\\))|(?:\\S*?))\n )\n)?\n\\s*(?=,|\\)|/[/*]|\\#|$) # A closing parentheses (end of argument list) or a comma or a comment",name:"meta.function.parameter.array.php",captures:{"1":{name:"storage.type.php"},"2":{name:"variable.other.php"},"3":{name:"storage.modifier.reference.php"},"4":{name:"punctuation.definition.variable.php"},"5":{name:"keyword.operator.assignment.php"},"6":{name:"constant.language.php"},"7":{name:"punctuation.section.array.begin.php"},"8":{patterns:[{include:"#parameter-default-types"}]},"9":{name:"punctuation.section.array.end.php"},"10":{name:"invalid.illegal.non-null-typehinted.php"}}},{begin:"(?xi)\n(\\\\?(?:[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*\\\\)*) # Optional namespace\n([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) # Typehinted class name\n\\s+((&)?\\s*(\\.\\.\\.)?(\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) # Variable name with possible reference",beginCaptures:{"1":{name:"support.other.namespace.php",patterns:[{match:"(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*",name:"storage.type.php"},{match:"\\\\",name:"punctuation.separator.inheritance.php"}]},"2":{name:"storage.type.php"},"3":{name:"variable.other.php"},"4":{name:"storage.modifier.reference.php"},"5":{name:"keyword.operator.variadic.php"},"6":{name:"punctuation.definition.variable.php"}},end:"(?=,|\\)|/[/*]|\\#)",name:"meta.function.parameter.typehinted.php",patterns:[{begin:"=",beginCaptures:{"0":{name:"keyword.operator.assignment.php"}},end:"(?=,|\\)|/[/*]|\\#)",patterns:[{include:"#language"}]}]},{captures:{"1":{name:"variable.other.php"},"2":{name:"storage.modifier.reference.php"},"3":{name:"keyword.operator.variadic.php"},"4":{name:"punctuation.definition.variable.php"}},match:"(?xi)\n((&)?\\s*(\\.\\.\\.)?(\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) # Variable name with possible reference\n\\s*(?=,|\\)|/[/*]|\\#|$) # A closing parentheses (end of argument list) or a comma or a comment",name:"meta.function.parameter.no-default.php"},{begin:"(?xi)\n((&)?\\s*(\\.\\.\\.)?(\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) # Variable name with possible reference\n\\s*(=)\\s*\n(?:(\\[)((?>[^\\[\\]]+|\\[\\g<6>\\])*)(\\]))? # Optional default type",beginCaptures:{"1":{name:"variable.other.php"},"2":{name:"storage.modifier.reference.php"},"3":{name:"keyword.operator.variadic.php"},"4":{name:"punctuation.definition.variable.php"},"5":{name:"keyword.operator.assignment.php"},"6":{name:"punctuation.section.array.begin.php"},"7":{patterns:[{include:"#parameter-default-types"}]},"8":{name:"punctuation.section.array.end.php"}},end:"(?=,|\\)|/[/*]|\\#)",name:"meta.function.parameter.default.php",patterns:[{include:"#parameter-default-types"}]}]},"function-call":{patterns:[{begin:"(?xi)\n(\n \\\\?\\b # Optional root namespace\n [a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]* # First namespace\n (?:\\\\[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)+ # Additional namespaces\n)\\s*(\\()",beginCaptures:{"1":{patterns:[{include:"#namespace"},{match:"(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*",name:"entity.name.function.php"}]},"2":{name:"punctuation.definition.arguments.begin.bracket.round.php"}},end:"\\)|(?=\\?>)",endCaptures:{"0":{name:"punctuation.definition.arguments.end.bracket.round.php"}},name:"meta.function-call.php",patterns:[{include:"#language"}]},{begin:"(?i)(\\\\)?\\b([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\\s*(\\()",beginCaptures:{"1":{patterns:[{include:"#namespace"}]},"2":{patterns:[{include:"#support"},{match:"(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*",name:"entity.name.function.php"}]},"3":{name:"punctuation.definition.arguments.begin.bracket.round.php"}},end:"\\)|(?=\\?>)",endCaptures:{"0":{name:"punctuation.definition.arguments.end.bracket.round.php"}},name:"meta.function-call.php",patterns:[{include:"#language"}]},{match:"(?i)\\b(print|echo)\\b",name:"support.function.construct.output.php"}]},heredoc:{patterns:[{begin:"(?i)(?=<<<\\s*(\"?)([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)(\\1)\\s*$)",end:"(?!\\G)",name:"string.unquoted.heredoc.php",patterns:[{include:"#heredoc_interior"}]},{begin:"(?=<<<\\s*'([a-zA-Z_]+[a-zA-Z0-9_]*)'\\s*$)",end:"(?!\\G)",name:"string.unquoted.nowdoc.php",patterns:[{include:"#nowdoc_interior"}]}]},heredoc_interior:{patterns:[{begin:"(<<<)\\s*(\"?)(HTML)(\\2)(\\s*)$",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.php"},"1":{name:"punctuation.definition.string.php"},"3":{name:"keyword.operator.heredoc.php"},"5":{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"text.html",end:"^(\\3)\\b",endCaptures:{"0":{name:"punctuation.section.embedded.end.php"},"1":{name:"keyword.operator.heredoc.php"}},name:"meta.embedded.html",patterns:[{include:"#interpolation"},{include:"text.html.basic"}]},{begin:"(<<<)\\s*(\"?)(XML)(\\2)(\\s*)$",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.php"},"1":{name:"punctuation.definition.string.php"},"3":{name:"keyword.operator.heredoc.php"},"5":{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"text.xml",end:"^(\\3)\\b",endCaptures:{"0":{name:"punctuation.section.embedded.end.php"},"1":{name:"keyword.operator.heredoc.php"}},name:"meta.embedded.xml",patterns:[{include:"#interpolation"},{include:"text.xml"}]},{begin:"(<<<)\\s*(\"?)(SQL)(\\2)(\\s*)$",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.php"},"1":{name:"punctuation.definition.string.php"},"3":{name:"keyword.operator.heredoc.php"},"5":{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"source.sql",end:"^(\\3)\\b",endCaptures:{"0":{name:"punctuation.section.embedded.end.php"},"1":{name:"keyword.operator.heredoc.php"}},name:"meta.embedded.sql",patterns:[{include:"#interpolation"},{include:"source.sql"}]},{begin:"(<<<)\\s*(\"?)(JAVASCRIPT|JS)(\\2)(\\s*)$",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.php"},"1":{name:"punctuation.definition.string.php"},"3":{name:"keyword.operator.heredoc.php"},"5":{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"source.js",end:"^(\\3)\\b",endCaptures:{"0":{name:"punctuation.section.embedded.end.php"},"1":{name:"keyword.operator.heredoc.php"}},name:"meta.embedded.js",patterns:[{include:"#interpolation"},{include:"source.js"}]},{begin:"(<<<)\\s*(\"?)(JSON)(\\2)(\\s*)$",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.php"},"1":{name:"punctuation.definition.string.php"},"3":{name:"keyword.operator.heredoc.php"},"5":{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"source.json",end:"^(\\3)\\b",endCaptures:{"0":{name:"punctuation.section.embedded.end.php"},"1":{name:"keyword.operator.heredoc.php"}},name:"meta.embedded.json",patterns:[{include:"#interpolation"},{include:"source.json"}]},{begin:"(<<<)\\s*(\"?)(CSS)(\\2)(\\s*)$",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.php"},"1":{name:"punctuation.definition.string.php"},"3":{name:"keyword.operator.heredoc.php"},"5":{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"source.css",end:"^(\\3)\\b",endCaptures:{"0":{name:"punctuation.section.embedded.end.php"},"1":{name:"keyword.operator.heredoc.php"}},name:"meta.embedded.css",patterns:[{include:"#interpolation"},{include:"source.css"}]},{begin:"(<<<)\\s*(\"?)(REGEXP?)(\\2)(\\s*)$",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.php"},"1":{name:"punctuation.definition.string.php"},"3":{name:"keyword.operator.heredoc.php"},"5":{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"string.regexp.heredoc.php",end:"^(\\3)\\b",endCaptures:{"0":{name:"punctuation.section.embedded.end.php"},"1":{name:"keyword.operator.heredoc.php"}},patterns:[{include:"#interpolation"},{match:"(\\\\){1,2}[.$^\\[\\]{}]",name:"constant.character.escape.regex.php"},{captures:{"1":{name:"punctuation.definition.arbitrary-repitition.php"},"3":{name:"punctuation.definition.arbitrary-repitition.php"}},match:"({)\\d+(,\\d+)?(})",name:"string.regexp.arbitrary-repitition.php"},{begin:"\\[(?:\\^?\\])?",captures:{"0":{name:"punctuation.definition.character-class.php"}},end:"\\]",name:"string.regexp.character-class.php",patterns:[{match:"\\\\[\\\\'\\[\\]]",name:"constant.character.escape.php"}]},{match:"[$^+*]",name:"keyword.operator.regexp.php"},{begin:"(?i)(?<=^|\\s)(#)\\s(?=[[a-z0-9_\\x{7f}-\\x{ff},. \\t?!-][^\\x{00}-\\x{7f}]]*$)",beginCaptures:{"1":{name:"punctuation.definition.comment.php"}},end:"$",endCaptures:{"0":{name:"punctuation.definition.comment.php"}},name:"comment.line.number-sign.php"}]},{begin:"(?i)(<<<)\\s*(\"?)([a-z_\\x{7f}-\\x{ff}]+[a-z0-9_\\x{7f}-\\x{ff}]*)(\\2)(\\s*)",beginCaptures:{"1":{name:"punctuation.definition.string.php"},"3":{name:"keyword.operator.heredoc.php"},"5":{name:"invalid.illegal.trailing-whitespace.php"}},end:"^(\\3)\\b",endCaptures:{"1":{name:"keyword.operator.heredoc.php"}},patterns:[{include:"#interpolation"}]}]},nowdoc_interior:{patterns:[{begin:"(<<<)\\s*'(HTML)'(\\s*)$",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.php"},"1":{name:"punctuation.definition.string.php"},"2":{name:"keyword.operator.nowdoc.php"},"3":{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"text.html",end:"^(\\2)\\b",endCaptures:{"0":{name:"punctuation.section.embedded.end.php"},"1":{name:"keyword.operator.nowdoc.php"}},name:"meta.embedded.html",patterns:[{include:"text.html.basic"}]},{begin:"(<<<)\\s*'(XML)'(\\s*)$",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.php"},"1":{name:"punctuation.definition.string.php"},"2":{name:"keyword.operator.nowdoc.php"},"3":{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"text.xml",end:"^(\\2)\\b",endCaptures:{"0":{name:"punctuation.section.embedded.end.php"},"1":{name:"keyword.operator.nowdoc.php"}},name:"meta.embedded.xml",patterns:[{include:"text.xml"}]},{begin:"(<<<)\\s*'(SQL)'(\\s*)$",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.php"},"1":{name:"punctuation.definition.string.php"},"2":{name:"keyword.operator.nowdoc.php"},"3":{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"source.sql",end:"^(\\2)\\b",endCaptures:{"0":{name:"punctuation.section.embedded.end.php"},"1":{name:"keyword.operator.nowdoc.php"}},name:"meta.embedded.sql",patterns:[{include:"source.sql"}]},{begin:"(<<<)\\s*'(JAVASCRIPT|JS)'(\\s*)$",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.php"},"1":{name:"punctuation.definition.string.php"},"2":{name:"keyword.operator.nowdoc.php"},"3":{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"source.js",end:"^(\\2)\\b",endCaptures:{"0":{name:"punctuation.section.embedded.end.php"},"1":{name:"keyword.operator.nowdoc.php"}},name:"meta.embedded.js",patterns:[{include:"source.js"}]},{begin:"(<<<)\\s*'(JSON)'(\\s*)$",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.php"},"1":{name:"punctuation.definition.string.php"},"2":{name:"keyword.operator.nowdoc.php"},"3":{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"source.json",end:"^(\\2)\\b",endCaptures:{"0":{name:"punctuation.section.embedded.end.php"},"1":{name:"keyword.operator.nowdoc.php"}},name:"meta.embedded.json",patterns:[{include:"source.json"}]},{begin:"(<<<)\\s*'(CSS)'(\\s*)$",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.php"},"1":{name:"punctuation.definition.string.php"},"2":{name:"keyword.operator.nowdoc.php"},"3":{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"source.css",end:"^(\\2)\\b",endCaptures:{"0":{name:"punctuation.section.embedded.end.php"},"1":{name:"keyword.operator.nowdoc.php"}},name:"meta.embedded.css",patterns:[{include:"source.css"}]},{begin:"(<<<)\\s*'(REGEXP?)'(\\s*)$",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.php"},"1":{name:"punctuation.definition.string.php"},"2":{name:"keyword.operator.nowdoc.php"},"3":{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"string.regexp.nowdoc.php",end:"^(\\2)\\b",endCaptures:{"0":{name:"punctuation.section.embedded.end.php"},"1":{name:"keyword.operator.nowdoc.php"}},patterns:[{match:"(\\\\){1,2}[.$^\\[\\]{}]",name:"constant.character.escape.regex.php"},{captures:{"1":{name:"punctuation.definition.arbitrary-repitition.php"},"3":{name:"punctuation.definition.arbitrary-repitition.php"}},match:"({)\\d+(,\\d+)?(})",name:"string.regexp.arbitrary-repitition.php"},{begin:"\\[(?:\\^?\\])?",captures:{"0":{name:"punctuation.definition.character-class.php"}},end:"\\]",name:"string.regexp.character-class.php",patterns:[{match:"\\\\[\\\\'\\[\\]]",name:"constant.character.escape.php"}]},{match:"[$^+*]",name:"keyword.operator.regexp.php"},{begin:"(?i)(?<=^|\\s)(#)\\s(?=[[a-z0-9_\\x{7f}-\\x{ff},. \\t?!-][^\\x{00}-\\x{7f}]]*$)",beginCaptures:{"1":{name:"punctuation.definition.comment.php"}},end:"$",endCaptures:{"0":{name:"punctuation.definition.comment.php"}},name:"comment.line.number-sign.php"}]},{begin:"(?i)(<<<)\\s*'([a-z_\\x{7f}-\\x{ff}]+[a-z0-9_\\x{7f}-\\x{ff}]*)'(\\s*)",beginCaptures:{"1":{name:"punctuation.definition.string.php"},"2":{name:"keyword.operator.nowdoc.php"},"3":{name:"invalid.illegal.trailing-whitespace.php"}},end:"^(\\2)\\b",endCaptures:{"1":{name:"keyword.operator.nowdoc.php"}}}]},instantiation:{begin:"(?i)(new)\\s+",beginCaptures:{"1":{name:"keyword.other.new.php"}},end:"(?i)(?=[^a-z0-9_\\x{7f}-\\x{ff}\\\\])",patterns:[{match:"(?i)(parent|static|self)(?![a-z0-9_\\x{7f}-\\x{ff}])",name:"storage.type.php"},{include:"#class-name"},{include:"#variable-name"}]},interpolation:{patterns:[{match:"\\\\[0-7]{1,3}",name:"constant.character.escape.octal.php"},{match:"\\\\x[0-9A-Fa-f]{1,2}",name:"constant.character.escape.hex.php"},{match:"\\\\u{[0-9A-Fa-f]+}",name:"constant.character.escape.unicode.php"},{match:"\\\\[nrtvef$\"\\\\]",name:"constant.character.escape.php"},{begin:"{(?=\\$.*?})",beginCaptures:{"0":{name:"punctuation.definition.variable.php"}},end:"}",endCaptures:{"0":{name:"punctuation.definition.variable.php"}},patterns:[{include:"#language"}]},{include:"#variable-name"}]},"invoke-call":{captures:{"1":{name:"punctuation.definition.variable.php"},"2":{name:"variable.other.php"}},match:"(?i)(\\$+)([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)(?=\\s*\\()",name:"meta.function-call.invoke.php"},language:{patterns:[{include:"#comments"},{begin:"(?i)^\\s*(interface)\\s+([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\\s*(extends)?\\s*",beginCaptures:{"1":{name:"storage.type.interface.php"},"2":{name:"entity.name.type.interface.php"},"3":{name:"storage.modifier.extends.php"}},end:"(?i)((?:[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*\\s*,\\s*)*)([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?\\s*(?:(?={)|$)",endCaptures:{"1":{patterns:[{match:"(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*",name:"entity.other.inherited-class.php"},{match:",",name:"punctuation.separator.classes.php"}]},"2":{name:"entity.other.inherited-class.php"}},name:"meta.interface.php",patterns:[{include:"#namespace"}]},{begin:"(?i)^\\s*(trait)\\s+([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)",beginCaptures:{"1":{name:"storage.type.trait.php"},"2":{name:"entity.name.type.trait.php"}},end:"(?={)",name:"meta.trait.php",patterns:[{include:"#comments"}]},{match:"(?i)(?:^|(?<=<\\?php))\\s*(namespace)\\s+([a-z0-9_\\x{7f}-\\x{ff}\\\\]+)(?=\\s*;)",name:"meta.namespace.php",captures:{"1":{name:"keyword.other.namespace.php"},"2":{name:"entity.name.type.namespace.php",patterns:[{match:"\\\\",name:"punctuation.separator.inheritance.php"}]}}},{begin:"(?i)(?:^|(?<=<\\?php))\\s*(namespace)\\s+",beginCaptures:{"1":{name:"keyword.other.namespace.php"}},end:"(?<=})|(?=\\?>)",name:"meta.namespace.php",patterns:[{include:"#comments"},{match:"(?i)[a-z0-9_\\x{7f}-\\x{ff}\\\\]+",name:"entity.name.type.namespace.php",captures:{"0":{patterns:[{match:"\\\\",name:"punctuation.separator.inheritance.php"}]}}},{begin:"{",beginCaptures:{"0":{name:"punctuation.definition.namespace.begin.bracket.curly.php"}},end:"}|(?=\\?>)",endCaptures:{"0":{name:"punctuation.definition.namespace.end.bracket.curly.php"}},patterns:[{include:"#language"}]},{match:"[^\\s]+",name:"invalid.illegal.identifier.php"}]},{match:"\\s+(?=use\\b)"},{begin:"(?i)\\buse\\b",beginCaptures:{"0":{name:"keyword.other.use.php"}},end:"(?<=})|(?=;)",name:"meta.use.php",patterns:[{match:"\\b(const|function)\\b",name:"storage.type.${1:/downcase}.php"},{begin:"{",beginCaptures:{"0":{name:"punctuation.definition.use.begin.bracket.curly.php"}},end:"}",endCaptures:{"0":{name:"punctuation.definition.use.end.bracket.curly.php"}},patterns:[{include:"#scope-resolution"},{match:"(?xi)\n\\b(as)\n\\s+(final|abstract|public|private|protected|static)\n\\s+([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\n\\b",captures:{"1":{name:"keyword.other.use-as.php"},"2":{name:"storage.modifier.php"},"3":{name:"entity.other.alias.php"}}},{match:"(?xi)\n\\b(as)\n\\s+([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\n\\b",captures:{"1":{name:"keyword.other.use-as.php"},"2":{patterns:[{match:"^(?:final|abstract|public|private|protected|static)$",name:"storage.modifier.php"},{match:".+",name:"entity.other.alias.php"}]}}},{match:"(?i)\\b(insteadof)\\s+([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)",captures:{"1":{name:"keyword.other.use-insteadof.php"},"2":{name:"support.class.php"}}},{match:";",name:"punctuation.terminator.expression.php"},{include:"#use-inner"}]},{include:"#use-inner"}]},{begin:"(?i)^\\s*(?:(abstract|final)\\s+)?(class)\\s+([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)",beginCaptures:{"1":{name:"storage.modifier.${1:/downcase}.php"},"2":{name:"storage.type.class.php"},"3":{name:"entity.name.type.class.php"}},end:"}|(?=\\?>)",endCaptures:{"0":{name:"punctuation.definition.class.end.bracket.curly.php"}},name:"meta.class.php",patterns:[{include:"#comments"},{begin:"(?i)(extends)\\s+",beginCaptures:{"1":{name:"storage.modifier.extends.php"}},contentName:"meta.other.inherited-class.php",end:"(?i)(?=[^a-z0-9_\\x{7f}-\\x{ff}\\\\])",patterns:[{begin:"(?i)(?=\\\\?[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*\\\\)",end:"(?i)([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?(?=[^a-z0-9_\\x{7f}-\\x{ff}\\\\])",endCaptures:{"1":{name:"entity.other.inherited-class.php"}},patterns:[{include:"#namespace"}]},{include:"#class-builtin"},{include:"#namespace"},{match:"(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*",name:"entity.other.inherited-class.php"}]},{begin:"(?i)(implements)\\s+",beginCaptures:{"1":{name:"storage.modifier.implements.php"}},end:"(?i)(?=[;{])",patterns:[{include:"#comments"},{begin:"(?i)(?=[a-z0-9_\\x{7f}-\\x{ff}\\\\]+)",contentName:"meta.other.inherited-class.php",end:"(?i)(?:\\s*(?:,|(?=[^a-z0-9_\\x{7f}-\\x{ff}\\\\\\s]))\\s*)",patterns:[{begin:"(?i)(?=\\\\?[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*\\\\)",end:"(?i)([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?(?=[^a-z0-9_\\x{7f}-\\x{ff}\\\\])",endCaptures:{"1":{name:"entity.other.inherited-class.php"}},patterns:[{include:"#namespace"}]},{include:"#class-builtin"},{include:"#namespace"},{match:"(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*",name:"entity.other.inherited-class.php"}]}]},{begin:"{",beginCaptures:{"0":{name:"punctuation.definition.class.begin.bracket.curly.php"}},end:"(?=}|\\?>)",contentName:"meta.class.body.php",patterns:[{include:"#language"}]}]},{include:"#switch_statement"},{match:"(?x)\n\\s*\n\\b(\n break|case|continue|declare|default|die|do|\n else(if)?|end(declare|for(each)?|if|switch|while)|exit|\n for(each)?|if|return|switch|use|while|yield\n)\\b",captures:{"1":{name:"keyword.control.${1:/downcase}.php"}}},{begin:"(?i)\\b((?:require|include)(?:_once)?)\\s+",beginCaptures:{"1":{name:"keyword.control.import.include.php"}},end:"(?=\\s|;|$|\\?>)",name:"meta.include.php",patterns:[{include:"#language"}]},{begin:"\\b(catch)\\s*(\\()",beginCaptures:{"1":{name:"keyword.control.exception.catch.php"},"2":{name:"punctuation.definition.parameters.begin.bracket.round.php"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.parameters.end.bracket.round.php"}},name:"meta.catch.php",patterns:[{include:"#namespace"},{match:"(?xi)\n([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) # Exception class\n((?:\\s*\\|\\s*[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)*) # Optional additional exception classes\n\\s*\n((\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) # Variable",captures:{"1":{name:"support.class.exception.php"},"2":{patterns:[{match:"(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*",name:"support.class.exception.php"},{match:"\\|",name:"punctuation.separator.delimiter.php"}]},"3":{name:"variable.other.php"},"4":{name:"punctuation.definition.variable.php"}}}]},{match:"\\b(catch|try|throw|exception|finally)\\b",name:"keyword.control.exception.php"},{begin:"(?i)\\b(function)\\s*(?=\\()",beginCaptures:{"1":{name:"storage.type.function.php"}},end:"(?={)",name:"meta.function.closure.php",patterns:[{begin:"\\(",beginCaptures:{"0":{name:"punctuation.definition.parameters.begin.bracket.round.php"}},contentName:"meta.function.parameters.php",end:"\\)",endCaptures:{"0":{name:"punctuation.definition.parameters.end.bracket.round.php"}},patterns:[{include:"#function-parameters"}]},{begin:"(?i)(use)\\s*(\\()",beginCaptures:{"1":{name:"keyword.other.function.use.php"},"2":{name:"punctuation.definition.parameters.begin.bracket.round.php"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.parameters.end.bracket.round.php"}},patterns:[{captures:{"1":{name:"variable.other.php"},"2":{name:"storage.modifier.reference.php"},"3":{name:"punctuation.definition.variable.php"}},match:"(?i)((&)?\\s*(\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\\s*(?=,|\\))",name:"meta.function.closure.use.php"}]}]},{begin:"(?x)\n((?:(?:final|abstract|public|private|protected|static)\\s+)*)\n(function)\\s+\n(?i:\n (__(?:call|construct|debugInfo|destruct|get|set|isset|unset|tostring|\n clone|set_state|sleep|wakeup|autoload|invoke|callStatic))\n |([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n)\n\\s*(\\()",beginCaptures:{"1":{patterns:[{match:"final|abstract|public|private|protected|static",name:"storage.modifier.php"}]},"2":{name:"storage.type.function.php"},"3":{name:"support.function.magic.php"},"4":{name:"entity.name.function.php"},"5":{name:"punctuation.definition.parameters.begin.bracket.round.php"}},contentName:"meta.function.parameters.php",end:"(\\))(?:\\s*(:)\\s*([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*))?",endCaptures:{"1":{name:"punctuation.definition.parameters.end.bracket.round.php"},"2":{name:"keyword.operator.return-value.php"},"3":{name:"storage.type.php"}},name:"meta.function.php",patterns:[{include:"#function-parameters"}]},{include:"#invoke-call"},{include:"#scope-resolution"},{include:"#variables"},{include:"#strings"},{captures:{"1":{name:"support.function.construct.php"},"2":{name:"punctuation.definition.array.begin.bracket.round.php"},"3":{name:"punctuation.definition.array.end.bracket.round.php"}},match:"(array)(\\()(\\))",name:"meta.array.empty.php"},{begin:"(array)(\\()",beginCaptures:{"1":{name:"support.function.construct.php"},"2":{name:"punctuation.definition.array.begin.bracket.round.php"}},end:"\\)|(?=\\?>)",endCaptures:{"0":{name:"punctuation.definition.array.end.bracket.round.php"}},name:"meta.array.php",patterns:[{include:"#language"}]},{match:"(?i)(\\()\\s*(array|real|double|float|int(?:eger)?|bool(?:ean)?|string|object|binary|unset)\\s*(\\))",captures:{"1":{name:"punctuation.definition.storage-type.begin.bracket.round.php"},"2":{name:"storage.type.php"},"3":{name:"punctuation.definition.storage-type.end.bracket.round.php"}}},{match:"(?i)\\b(array|real|double|float|int(eger)?|bool(ean)?|string|class|var|function|interface|trait|parent|self|object)\\b",name:"storage.type.php"},{match:"(?i)\\b(global|abstract|const|extends|implements|final|private|protected|public|static)\\b",name:"storage.modifier.php"},{include:"#object"},{match:";",name:"punctuation.terminator.expression.php"},{match:":",name:"punctuation.terminator.statement.php"},{include:"#heredoc"},{include:"#numbers"},{match:"(?i)\\bclone\\b",name:"keyword.other.clone.php"},{match:"\\.=?",name:"keyword.operator.string.php"},{match:"=>",name:"keyword.operator.key.php"},{captures:{"1":{name:"keyword.operator.assignment.php"},"2":{name:"storage.modifier.reference.php"},"3":{name:"storage.modifier.reference.php"}},match:"(?i)(\\=)(&)|(&)(?=[$a-z_])"},{match:"@",name:"keyword.operator.error-control.php"},{match:"===|==|!==|!=|<>",name:"keyword.operator.comparison.php"},{match:"=|\\+=|\\-=|\\*=|/=|%=|&=|\\|=|\\^=|<<=|>>=",name:"keyword.operator.assignment.php"},{match:"<=>|<=|>=|<|>",name:"keyword.operator.comparison.php"},{match:"\\-\\-|\\+\\+",name:"keyword.operator.increment-decrement.php"},{match:"\\-|\\+|\\*|/|%",name:"keyword.operator.arithmetic.php"},{match:"(?i)(!|&&|\\|\\|)|\\b(and|or|xor|as)\\b",name:"keyword.operator.logical.php"},{include:"#function-call"},{match:"<<|>>|~|\\^|&|\\|",name:"keyword.operator.bitwise.php"},{begin:"(?i)\\b(instanceof)\\s+(?=[\\\\$a-z_])",beginCaptures:{"1":{name:"keyword.operator.type.php"}},end:"(?=[^\\\\$a-z0-9_\\x{7f}-\\x{ff}])",patterns:[{include:"#class-name"},{include:"#variable-name"}]},{include:"#instantiation"},{captures:{"1":{name:"keyword.control.goto.php"},"2":{name:"support.other.php"}},match:"(?i)(goto)\\s+([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)"},{captures:{"1":{name:"entity.name.goto-label.php"}},match:"(?i)^\\s*([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\\s*:(?!:)"},{include:"#string-backtick"},{begin:"{",beginCaptures:{"0":{name:"punctuation.definition.begin.bracket.curly.php"}},end:"}|(?=\\?>)",endCaptures:{"0":{name:"punctuation.definition.end.bracket.curly.php"}},patterns:[{include:"#language"}]},{begin:"\\[",beginCaptures:{"0":{name:"punctuation.section.array.begin.php"}},end:"\\]|(?=\\?>)",endCaptures:{"0":{name:"punctuation.section.array.end.php"}},patterns:[{include:"#language"}]},{begin:"\\(",beginCaptures:{"0":{name:"punctuation.definition.begin.bracket.round.php"}},end:"\\)|(?=\\?>)",endCaptures:{"0":{name:"punctuation.definition.end.bracket.round.php"}},patterns:[{include:"#language"}]},{include:"#constants"},{match:",",name:"punctuation.separator.delimiter.php"}]},namespace:{begin:"(?i)(?:(namespace)|[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?(\\\\)(?=.*?[^a-z0-9_\\x{7f}-\\x{ff}\\\\])",beginCaptures:{"1":{name:"variable.language.namespace.php"},"2":{name:"punctuation.separator.inheritance.php"}},end:"(?i)(?=[a-z0-9_\\x{7f}-\\x{ff}]*[^a-z0-9_\\x{7f}-\\x{ff}\\\\])",name:"support.other.namespace.php",patterns:[{match:"\\\\",name:"punctuation.separator.inheritance.php"}]},numbers:{patterns:[{match:"0[xX][0-9a-fA-F]+",name:"constant.numeric.hex.php"},{match:"0[bB][01]+",name:"constant.numeric.binary.php"},{match:"0[0-7]+",name:"constant.numeric.octal.php"},{match:"(?x)\n(?:\n [0-9]*(\\.)[0-9]+(?:[eE][+-]?[0-9]+)?|\n [0-9]+(\\.)[0-9]*(?:[eE][+-]?[0-9]+)?|\n [0-9]+[eE][+-]?[0-9]+\n)",name:"constant.numeric.decimal.php",captures:{"1":{name:"punctuation.separator.decimal.period.php"},"2":{name:"punctuation.separator.decimal.period.php"}}},{match:"0|[1-9][0-9]*",name:"constant.numeric.decimal.php"}]},object:{patterns:[{begin:"(->)(\\$?{)",beginCaptures:{"1":{name:"keyword.operator.class.php"},"2":{name:"punctuation.definition.variable.php"}},end:"}",endCaptures:{"0":{name:"punctuation.definition.variable.php"}},patterns:[{include:"#language"}]},{begin:"(?i)(->)([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\\s*(\\()",beginCaptures:{"1":{name:"keyword.operator.class.php"},"2":{name:"entity.name.function.php"},"3":{name:"punctuation.definition.arguments.begin.bracket.round.php"}},end:"\\)|(?=\\?>)",endCaptures:{"0":{name:"punctuation.definition.arguments.end.bracket.round.php"}},name:"meta.method-call.php",patterns:[{include:"#language"}]},{captures:{"1":{name:"keyword.operator.class.php"},"2":{name:"variable.other.property.php"},"3":{name:"punctuation.definition.variable.php"}},match:"(?i)(->)((\\$+)?[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?"}]},"parameter-default-types":{patterns:[{include:"#strings"},{include:"#numbers"},{include:"#string-backtick"},{include:"#variables"},{match:"=>",name:"keyword.operator.key.php"},{match:"=",name:"keyword.operator.assignment.php"},{match:"&(?=\\s*\\$)",name:"storage.modifier.reference.php"},{begin:"(array)\\s*(\\()",beginCaptures:{"1":{name:"support.function.construct.php"},"2":{name:"punctuation.definition.array.begin.bracket.round.php"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.array.end.bracket.round.php"}},name:"meta.array.php",patterns:[{include:"#parameter-default-types"}]},{include:"#instantiation"},{begin:"(?xi)\n(?=[a-z0-9_\\x{7f}-\\x{ff}\\\\]+(::)\n ([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?\n)",end:"(?i)(::)([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?",endCaptures:{"1":{name:"keyword.operator.class.php"},"2":{name:"constant.other.class.php"}},patterns:[{include:"#class-name"}]},{include:"#constants"}]},php_doc:{patterns:[{match:"^(?!\\s*\\*).*?(?:(?=\\*\\/)|$\\n?)",name:"invalid.illegal.missing-asterisk.phpdoc.php"},{captures:{"1":{name:"keyword.other.phpdoc.php"},"3":{name:"storage.modifier.php"},"4":{name:"invalid.illegal.wrong-access-type.phpdoc.php"}},match:"^\\s*\\*\\s*(@access)\\s+((public|private|protected)|(.+))\\s*$"},{captures:{"1":{name:"keyword.other.phpdoc.php"},"2":{name:"markup.underline.link.php"}},match:"(@xlink)\\s+(.+)\\s*$"},{begin:"(@(?:global|param|property(-(read|write))?|return|throws|var))\\s+(?=[A-Za-z_\\x{7f}-\\x{ff}\\\\]|\\()",beginCaptures:{"1":{name:"keyword.other.phpdoc.php"}},end:"(?=\\s|\\*/)",contentName:"meta.other.type.phpdoc.php",patterns:[{include:"#php_doc_types_array_multiple"},{include:"#php_doc_types_array_single"},{include:"#php_doc_types"}]},{match:"(?x)\n@\n(\n api|abstract|author|category|copyright|example|global|inherit[Dd]oc|internal|\n license|link|method|property(-(read|write))?|package|param|return|see|since|source|\n static|subpackage|throws|todo|var|version|uses|deprecated|final|ignore\n)\\b",name:"keyword.other.phpdoc.php"},{captures:{"1":{name:"keyword.other.phpdoc.php"}},match:"{(@(link|inherit[Dd]oc)).+?}",name:"meta.tag.inline.phpdoc.php"}]},php_doc_types:{match:"(?i)[a-z_\\x{7f}-\\x{ff}\\\\][a-z0-9_\\x{7f}-\\x{ff}\\\\]*(\\|[a-z_\\x{7f}-\\x{ff}\\\\][a-z0-9_\\x{7f}-\\x{ff}\\\\]*)*",captures:{"0":{patterns:[{match:"(?x)\\b\n(string|integer|int|boolean|bool|float|double|object|mixed\n|array|resource|void|null|callback|false|true|self)\\b",name:"keyword.other.type.php"},{include:"#class-name"},{match:"\\|",name:"punctuation.separator.delimiter.php"}]}}},php_doc_types_array_multiple:{begin:"\\(",beginCaptures:{"0":{name:"punctuation.definition.type.begin.bracket.round.phpdoc.php"}},end:"(\\))(\\[\\])|(?=\\*/)",endCaptures:{"1":{name:"punctuation.definition.type.end.bracket.round.phpdoc.php"},"2":{name:"keyword.other.array.phpdoc.php"}},patterns:[{include:"#php_doc_types_array_multiple"},{include:"#php_doc_types_array_single"},{include:"#php_doc_types"},{match:"\\|",name:"punctuation.separator.delimiter.php"}]},php_doc_types_array_single:{match:"(?i)([a-z_\\x{7f}-\\x{ff}\\\\][a-z0-9_\\x{7f}-\\x{ff}\\\\]*)(\\[\\])",captures:{"1":{patterns:[{include:"#php_doc_types"}]},"2":{name:"keyword.other.array.phpdoc.php"}}},"regex-double-quoted":{begin:"\"/(?=(\\\\.|[^\"/])++/[imsxeADSUXu]*\")",beginCaptures:{"0":{name:"punctuation.definition.string.begin.php"}},end:"(/)([imsxeADSUXu]*)(\")",endCaptures:{"0":{name:"punctuation.definition.string.end.php"}},name:"string.regexp.double-quoted.php",patterns:[{match:"(\\\\){1,2}[.$^\\[\\]{}]",name:"constant.character.escape.regex.php"},{include:"#interpolation"},{captures:{"1":{name:"punctuation.definition.arbitrary-repetition.php"},"3":{name:"punctuation.definition.arbitrary-repetition.php"}},match:"({)\\d+(,\\d+)?(})",name:"string.regexp.arbitrary-repetition.php"},{begin:"\\[(?:\\^?\\])?",captures:{"0":{name:"punctuation.definition.character-class.php"}},end:"\\]",name:"string.regexp.character-class.php",patterns:[{include:"#interpolation"}]},{match:"[$^+*]",name:"keyword.operator.regexp.php"}]},"regex-single-quoted":{begin:"'/(?=(\\\\(?:\\\\(?:\\\\[\\\\']?|[^'])|.)|[^'/])++/[imsxeADSUXu]*')",beginCaptures:{"0":{name:"punctuation.definition.string.begin.php"}},end:"(/)([imsxeADSUXu]*)(')",endCaptures:{"0":{name:"punctuation.definition.string.end.php"}},name:"string.regexp.single-quoted.php",patterns:[{include:"#single_quote_regex_escape"},{captures:{"1":{name:"punctuation.definition.arbitrary-repetition.php"},"3":{name:"punctuation.definition.arbitrary-repetition.php"}},match:"({)\\d+(,\\d+)?(})",name:"string.regexp.arbitrary-repetition.php"},{begin:"\\[(?:\\^?\\])?",captures:{"0":{name:"punctuation.definition.character-class.php"}},end:"\\]",name:"string.regexp.character-class.php"},{match:"[$^+*]",name:"keyword.operator.regexp.php"}]},"scope-resolution":{patterns:[{match:"(?i)\\b([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)(?=\\s*::)",captures:{"1":{patterns:[{match:"\\b(self|static|parent)\\b",name:"storage.type.php"},{match:"\\w+",name:"entity.name.class.php"},{include:"#class-name"},{include:"#variable-name"}]}}},{begin:"(?i)(::)\\s*([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\\s*(\\()",beginCaptures:{"1":{name:"keyword.operator.class.php"},"2":{name:"entity.name.function.php"},"3":{name:"punctuation.definition.arguments.begin.bracket.round.php"}},end:"\\)|(?=\\?>)",endCaptures:{"0":{name:"punctuation.definition.arguments.end.bracket.round.php"}},name:"meta.method-call.static.php",patterns:[{include:"#language"}]},{match:"(?i)(::)\\s*(class)\\b",captures:{"1":{name:"keyword.operator.class.php"},"2":{name:"keyword.other.class.php"}}},{match:"(?xi)\n(::)\\s*\n(?:\n ((\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) # Variable\n |\n ([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) # Constant\n)?",captures:{"1":{name:"keyword.operator.class.php"},"2":{name:"variable.other.class.php"},"3":{name:"punctuation.definition.variable.php"},"4":{name:"constant.other.class.php"}}}]},single_quote_regex_escape:{match:"\\\\(?:\\\\(?:\\\\[\\\\']?|[^'])|.)",name:"constant.character.escape.php"},"sql-string-double-quoted":{begin:"\"\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER|AND)\\b)",beginCaptures:{"0":{name:"punctuation.definition.string.begin.php"}},contentName:"source.sql.embedded.php",end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.php"}},name:"string.quoted.double.sql.php",patterns:[{match:"(#)(\\\\\"|[^\"])*(?=\"|$)",name:"comment.line.number-sign.sql",captures:{"1":{name:"punctuation.definition.comment.sql"}}},{match:"(--)(\\\\\"|[^\"])*(?=\"|$)",name:"comment.line.double-dash.sql",captures:{"1":{name:"punctuation.definition.comment.sql"}}},{match:"\\\\[\\\\\"`']",name:"constant.character.escape.php"},{match:"'(?=((\\\\')|[^'\"])*(\"|$))",name:"string.quoted.single.unclosed.sql"},{match:"`(?=((\\\\`)|[^`\"])*(\"|$))",name:"string.quoted.other.backtick.unclosed.sql"},{begin:"'",end:"'",name:"string.quoted.single.sql",patterns:[{include:"#interpolation"}]},{begin:"`",end:"`",name:"string.quoted.other.backtick.sql",patterns:[{include:"#interpolation"}]},{include:"#interpolation"},{include:"source.sql"}]},"sql-string-single-quoted":{begin:"'\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER|AND)\\b)",beginCaptures:{"0":{name:"punctuation.definition.string.begin.php"}},contentName:"source.sql.embedded.php",end:"'",endCaptures:{"0":{name:"punctuation.definition.string.end.php"}},name:"string.quoted.single.sql.php",patterns:[{match:"(#)(\\\\'|[^'])*(?='|$)",name:"comment.line.number-sign.sql",captures:{"1":{name:"punctuation.definition.comment.sql"}}},{match:"(--)(\\\\'|[^'])*(?='|$)",name:"comment.line.double-dash.sql",captures:{"1":{name:"punctuation.definition.comment.sql"}}},{match:"\\\\[\\\\'`\"]",name:"constant.character.escape.php"},{match:"`(?=((\\\\`)|[^`'])*('|$))",name:"string.quoted.other.backtick.unclosed.sql"},{match:"\"(?=((\\\\\")|[^\"'])*('|$))",name:"string.quoted.double.unclosed.sql"},{include:"source.sql"}]},"string-backtick":{begin:"`",beginCaptures:{"0":{name:"punctuation.definition.string.begin.php"}},end:"`",endCaptures:{"0":{name:"punctuation.definition.string.end.php"}},name:"string.interpolated.php",patterns:[{match:"\\\\.",name:"constant.character.escape.php"},{include:"#interpolation"}]},"string-double-quoted":{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.php"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.php"}},name:"string.quoted.double.php",patterns:[{include:"#interpolation"}]},"string-single-quoted":{begin:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.php"}},end:"'",endCaptures:{"0":{name:"punctuation.definition.string.end.php"}},name:"string.quoted.single.php",patterns:[{match:"\\\\[\\\\']",name:"constant.character.escape.php"}]},strings:{patterns:[{include:"#regex-double-quoted"},{include:"#sql-string-double-quoted"},{include:"#string-double-quoted"},{include:"#regex-single-quoted"},{include:"#sql-string-single-quoted"},{include:"#string-single-quoted"}]},support:{patterns:[{match:"(?xi)\n\\b\napc_(\n store|sma_info|compile_file|clear_cache|cas|cache_info|inc|dec|define_constants|delete(_file)?|\n exists|fetch|load_constants|add|bin_(dump|load)(file)?\n)\\b",name:"support.function.apc.php"},{match:"(?xi)\\b\n(\n shuffle|sizeof|sort|next|nat(case)?sort|count|compact|current|in_array|usort|uksort|uasort|\n pos|prev|end|each|extract|ksort|key(_exists)?|krsort|list|asort|arsort|rsort|reset|range|\n array(_(shift|sum|splice|search|slice|chunk|change_key_case|count_values|column|combine|\n (diff|intersect)(_(u)?(key|assoc))?|u(diff|intersect)(_(u)?assoc)?|unshift|unique|\n pop|push|pad|product|values|keys|key_exists|filter|fill(_keys)?|flip|walk(_recursive)?|\n reduce|replace(_recursive)?|reverse|rand|multisort|merge(_recursive)?|map)?)\n)\\b",name:"support.function.array.php"},{match:"(?xi)\\b\n(\n show_source|sys_getloadavg|sleep|highlight_(file|string)|constant|connection_(aborted|status)|\n time_(nanosleep|sleep_until)|ignore_user_abort|die|define(d)?|usleep|uniqid|unpack|__halt_compiler|\n php_(check_syntax|strip_whitespace)|pack|eval|exit|get_browser\n)\\b",name:"support.function.basic_functions.php"},{match:"(?i)\\bbc(scale|sub|sqrt|comp|div|pow(mod)?|add|mod|mul)\\b",name:"support.function.bcmath.php"},{match:"(?i)\\bblenc_encrypt\\b",name:"support.function.blenc.php"},{match:"(?i)\\bbz(compress|close|open|decompress|errstr|errno|error|flush|write|read)\\b",name:"support.function.bz2.php"},{match:"(?xi)\\b\n(\n (French|Gregorian|Jewish|Julian)ToJD|cal_(to_jd|info|days_in_month|from_jd)|unixtojd|\n jdto(unix|jewish)|easter_(date|days)|JD(MonthName|To(Gregorian|Julian|French)|DayOfWeek)\n)\\b",name:"support.function.calendar.php"},{match:"(?xi)\\b\n(\n class_alias|all_user_method(_array)?|is_(a|subclass_of)|__autoload|(class|interface|method|property|trait)_exists|\n get_(class(_(vars|methods))?|(called|parent)_class|object_vars|declared_(classes|interfaces|traits))\n)\\b",name:"support.function.classobj.php"},{match:"(?xi)\\b\n(\n com_(create_guid|print_typeinfo|event_sink|load_typelib|get_active_object|message_pump)|\n variant_(sub|set(_type)?|not|neg|cast|cat|cmp|int|idiv|imp|or|div|date_(from|to)_timestamp|\n pow|eqv|fix|and|add|abs|round|get_type|xor|mod|mul)\n)\\b",name:"support.function.com.php"},{begin:"(?i)\\b(isset|unset|eval|empty|list)\\b",name:"support.function.construct.php"},{match:"(?i)\\b(print|echo)\\b",name:"support.function.construct.output.php"},{match:"(?i)\\bctype_(space|cntrl|digit|upper|punct|print|lower|alnum|alpha|graph|xdigit)\\b",name:"support.function.ctype.php"},{match:"(?xi)\\b\ncurl_(\n share_(close|init|setopt)|strerror|setopt(_array)?|copy_handle|close|init|unescape|pause|escape|\n errno|error|exec|version|file_create|reset|getinfo|\n multi_(strerror|setopt|select|close|init|info_read|(add|remove)_handle|getcontent|exec)\n)\\b",name:"support.function.curl.php"},{match:"(?xi)\\b\n(\n strtotime|str[fp]time|checkdate|time|timezone_name_(from_abbr|get)|idate|\n timezone_((location|offset|transitions|version)_get|(abbreviations|identifiers)_list|open)|\n date(_(sun(rise|set)|sun_info|sub|create(_(immutable_)?from_format)?|timestamp_(get|set)|timezone_(get|set)|time_set|\n isodate_set|interval_(create_from_date_string|format)|offset_get|diff|default_timezone_(get|set)|date_set|\n parse(_from_format)?|format|add|get_last_errors|modify))?|\n localtime|get(date|timeofday)|gm(strftime|date|mktime)|microtime|mktime\n)\\b",name:"support.function.datetime.php"},{match:"(?i)\\bdba_(sync|handlers|nextkey|close|insert|optimize|open|delete|popen|exists|key_split|firstkey|fetch|list|replace)\\b",name:"support.function.dba.php"},{match:"(?i)\\bdbx_(sort|connect|compare|close|escape_string|error|query|fetch_row)\\b",name:"support.function.dbx.php"},{match:"(?i)\\b(scandir|chdir|chroot|closedir|opendir|dir|rewinddir|readdir|getcwd)\\b",name:"support.function.dir.php"},{match:"(?xi)\\b\neio_(\n sync(fs)?|sync_file_range|symlink|stat(vfs)?|sendfile|set_min_parallel|set_max_(idle|poll_(reqs|time)|parallel)|\n seek|n(threads|op|pending|reqs|ready)|chown|chmod|custom|close|cancel|truncate|init|open|dup2|unlink|utime|poll|\n event_loop|f(sync|stat(vfs)?|chown|chmod|truncate|datasync|utime|allocate)|write|lstat|link|rename|realpath|\n read(ahead|dir|link)?|rmdir|get_(event_stream|last_error)|grp(_(add|cancel|limit))?|mknod|mkdir|busy\n)\\b",name:"support.function.eio.php"},{match:"(?xi)\\b\nenchant_(\n dict_(store_replacement|suggest|check|is_in_session|describe|quick_check|add_to_(personal|session)|get_error)|\n broker_(set_ordering|init|dict_exists|describe|free(_dict)?|list_dicts|request_(pwl_)?dict|get_error)\n)\\b",name:"support.function.enchant.php"},{match:"(?i)\\bsplit(i)?|sql_regcase|ereg(i)?(_replace)?\\b",name:"support.function.ereg.php"},{match:"(?i)\\b((restore|set)_(error_handler|exception_handler)|trigger_error|debug_(print_)?backtrace|user_error|error_(log|reporting|get_last))\\b",name:"support.function.errorfunc.php"},{match:"(?i)\\bshell_exec|system|passthru|proc_(nice|close|terminate|open|get_status)|escapeshell(arg|cmd)|exec\\b",name:"support.function.exec.php"},{match:"(?i)\\b(exif_(thumbnail|tagname|imagetype|read_data)|read_exif_data)\\b",name:"support.function.exif.php"},{match:"(?xi)\\b\nfann_(\n (duplicate|length|merge|shuffle|subset)_train_data|scale_(train(_data)?|(input|output)(_train_data)?)|\n set_(scaling_params|sarprop_(step_error_(shift|threshold_factor)|temperature|weight_decay_shift)|\n cascade_(num_candidate_groups|candidate_(change_fraction|limit|stagnation_epochs)|\n output_(change_fraction|stagnation_epochs)|weight_multiplier|activation_(functions|steepnesses)|\n (max|min)_(cand|out)_epochs)|\n callback|training_algorithm|train_(error|stop)_function|(input|output)_scaling_params|error_log|\n quickprop_(decay|mu)|weight(_array)?|learning_(momentum|rate)|bit_fail_limit|\n activation_(function|steepness)(_(hidden|layer|output))?|\n rprop_((decrease|increase)_factor|delta_(max|min|zero)))|\n save(_train)?|num_(input|output)_train_data|copy|clear_scaling_params|cascadetrain_on_(file|data)|\n create_((sparse|shortcut|standard)(_array)?|train(_from_callback)?|from_file)|\n test(_data)?|train(_(on_(file|data)|epoch))?|init_weights|descale_(input|output|train)|destroy(_train)?|\n print_error|run|reset_(MSE|err(no|str))|read_train_from_file|randomize_weights|\n get_(sarprop_(step_error_(shift|threshold_factor)|temperature|weight_decay_shift)|num_(input|output|layers)|\n network_type|MSE|connection_(array|rate)|bias_array|bit_fail(_limit)?|\n cascade_(num_(candidates|candidate_groups)|(candidate|output)_(change_fraction|limit|stagnation_epochs)|\n weight_multiplier|activation_(functions|steepnesses)(_count)?|(max|min)_(cand|out)_epochs)|\n total_(connections|neurons)|training_algorithm|train_(error|stop)_function|err(no|str)|\n quickprop_(decay|mu)|learning_(momentum|rate)|layer_array|activation_(function|steepness)|\n rprop_((decrease|increase)_factor|delta_(max|min|zero)))\n)\\b",name:"support.function.fann.php"},{match:"(?xi)\\b\n(\n symlink|stat|set_file_buffer|chown|chgrp|chmod|copy|clearstatcache|touch|tempnam|tmpfile|\n is_(dir|(uploaded_)?file|executable|link|readable|writ(e)?able)|disk_(free|total)_space|diskfreespace|\n dirname|delete|unlink|umask|pclose|popen|pathinfo|parse_ini_(file|string)|fscanf|fstat|fseek|fnmatch|\n fclose|ftell|ftruncate|file(size|[acm]time|type|inode|owner|perms|group)?|file_(exists|(get|put)_contents)|\n f(open|puts|putcsv|passthru|eof|flush|write|lock|read|gets(s)?|getc(sv)?)|lstat|lchown|lchgrp|link(info)?|\n rename|rewind|read(file|link)|realpath(_cache_(get|size))?|rmdir|glob|move_uploaded_file|mkdir|basename\n)\\b",name:"support.function.file.php"},{match:"(?i)\\b(finfo_(set_flags|close|open|file|buffer)|mime_content_type)\\b",name:"support.function.fileinfo.php"},{match:"(?i)\\bfilter_(has_var|input(_array)?|id|var(_array)?|list)\\b",name:"support.function.filter.php"},{match:"(?i)\\bfastcgi_finish_request\\b",name:"support.function.fpm.php"},{match:"(?i)\\b(call_user_(func|method)(_array)?|create_function|unregister_tick_function|forward_static_call(_array)?|function_exists|func_(num_args|get_arg(s)?)|register_(shutdown|tick)_function|get_defined_functions)\\b",name:"support.function.funchand.php"},{match:"(?i)\\b((n)?gettext|textdomain|d((n)?gettext|c(n)?gettext)|bind(textdomain|_textdomain_codeset))\\b",name:"support.function.gettext.php"},{match:"(?xi)\\b\ngmp_(\n scan[01]|strval|sign|sub|setbit|sqrt(rem)?|hamdist|neg|nextprime|com|clrbit|cmp|testbit|\n intval|init|invert|import|or|div(exact)?|div_(q|qr|r)|jacobi|popcount|pow(m)?|perfect_square|\n prob_prime|export|fact|legendre|and|add|abs|root(rem)?|random(_(bits|range))?|gcd(ext)?|xor|mod|mul\n)\\b",name:"support.function.gmp.php"},{match:"(?i)\\bhash(_(hmac(_file)?|copy|init|update(_(file|stream))?|pbkdf2|equals|file|final|algos))?\\b",name:"support.function.hash.php"},{match:"(?xi)\\b\n(\n http_(support|send_(status|stream|content_(disposition|type)|data|file|last_modified)|head|\n negotiate_(charset|content_type|language)|chunked_decode|cache_(etag|last_modified)|throttle|\n inflate|deflate|date|post_(data|fields)|put_(data|file|stream)|persistent_handles_(count|clean|ident)|\n parse_(cookie|headers|message|params)|redirect|request(_(method_(exists|name|(un)?register)|body_encode))?|\n get(_request_(headers|body(_stream)?))?|match_(etag|modified|request_header)|build_(cookie|str|url))|\n ob_(etag|deflate|inflate)handler\n)\\b",name:"support.function.http.php"},{match:"(?i)\\b(iconv(_(str(pos|len|rpos)|substr|(get|set)_encoding|mime_(decode(_headers)?|encode)))?|ob_iconv_handler)\\b",name:"support.function.iconv.php"},{match:"(?i)\\biis_((start|stop)_(service|server)|set_(script_map|server_rights|dir_security|app_settings)|(add|remove)_server|get_(script_map|service_state|server_(rights|by_(comment|path))|dir_security))\\b",name:"support.function.iisfunc.php"},{match:"(?xi)\\b\n(\n iptc(embed|parse)|(jpeg|png)2wbmp|gd_info|getimagesize(fromstring)?|\n image(s[xy]|scale|(char|string)(up)?|set(style|thickness|tile|interpolation|pixel|brush)|savealpha|\n convolution|copy(resampled|resized|merge(gray)?)?|colors(forindex|total)|\n color(set|closest(alpha|hwb)?|transparent|deallocate|(allocate|exact|resolve)(alpha)?|at|match)|\n crop(auto)?|create(truecolor|from(string|jpeg|png|wbmp|webp|gif|gd(2(part)?)?|xpm|xbm))?|\n types|ttf(bbox|text)|truecolortopalette|istruecolor|interlace|2wbmp|destroy|dashedline|jpeg|\n _type_to_(extension|mime_type)|ps(slantfont|text|(encode|extend|free|load)font|bbox)|png|polygon|\n palette(copy|totruecolor)|ellipse|ft(text|bbox)|filter|fill|filltoborder|\n filled(arc|ellipse|polygon|rectangle)|font(height|width)|flip|webp|wbmp|line|loadfont|layereffect|\n antialias|affine(matrix(concat|get))?|alphablending|arc|rotate|rectangle|gif|gd(2)?|gammacorrect|\n grab(screen|window)|xbm)\n)\\b",name:"support.function.image.php"},{match:"(?xi)\\b\n(\n sys_get_temp_dir|set_(time_limit|include_path|magic_quotes_runtime)|cli_(get|set)_process_title|\n ini_(alter|get(_all)?|restore|set)|zend_(thread_id|version|logo_guid)|dl|php(credits|info|version)|\n php_(sapi_name|ini_(scanned_files|loaded_file)|uname|logo_guid)|putenv|extension_loaded|version_compare|\n assert(_options)?|restore_include_path|gc_(collect_cycles|disable|enable(d)?)|getopt|\n get_(cfg_var|current_user|defined_constants|extension_funcs|include_path|included_files|loaded_extensions|\n magic_quotes_(gpc|runtime)|required_files|resources)|\n get(env|lastmod|rusage|my(inode|[gup]id))|\n memory_get_(peak_)?usage|main|magic_quotes_runtime\n)\\b",name:"support.function.info.php"},{match:"(?xi)\\b\nibase_(\n set_event_handler|service_(attach|detach)|server_info|num_(fields|params)|name_result|connect|\n commit(_ret)?|close|trans|delete_user|drop_db|db_info|pconnect|param_info|prepare|err(code|msg)|\n execute|query|field_info|fetch_(assoc|object|row)|free_(event_handler|query|result)|wait_event|\n add_user|affected_rows|rollback(_ret)?|restore|gen_id|modify_user|maintain_db|backup|\n blob_(cancel|close|create|import|info|open|echo|add|get)\n)\\b",name:"support.function.interbase.php"},{match:"(?xi)\\b\n(\n normalizer_(normalize|is_normalized)|idn_to_(unicode|utf8|ascii)|\n numfmt_(set_(symbol|(text_)?attribute|pattern)|create|(parse|format)(_currency)?|\n get_(symbol|(text_)?attribute|pattern|error_(code|message)|locale))|\n collator_(sort(_with_sort_keys)?|set_(attribute|strength)|compare|create|asort|\n get_(strength|sort_key|error_(code|message)|locale|attribute))|\n transliterator_(create(_(inverse|from_rules))?|transliterate|list_ids|get_error_(code|message))|\n intl(cal|tz)_get_error_(code|message)|intl_(is_failure|error_name|get_error_(code|message))|\n datefmt_(set_(calendar|lenient|pattern|timezone(_id)?)|create|is_lenient|parse|format(_object)?|localtime|\n get_(calendar(_object)?|time(type|zone(_id)?)|datetype|pattern|error_(code|message)|locale))|\n locale_(set_default|compose|canonicalize|parse|filter_matches|lookup|accept_from_http|\n get_(script|display_(script|name|variant|language|region)|default|primary_language|keywords|all_variants|region))|\n resourcebundle_(create|count|locales|get(_(error_(code|message)))?)|\n grapheme_(str(i?str|r?i?pos|len)|substr|extract)|\n msgfmt_(set_pattern|create|(format|parse)(_message)?|get_(pattern|error_(code|message)|locale))\n)\\b",name:"support.function.intl.php"},{match:"(?i)\\bjson_(decode|encode|last_error(_msg)?)\\b",name:"support.function.json.php"},{match:"(?xi)\\b\nldap_(\n start|tls|sort|search|sasl_bind|set_(option|rebind_proc)|(first|next)_(attribute|entry|reference)|\n connect|control_paged_result(_response)?|count_entries|compare|close|t61_to_8859|8859_to_t61|\n dn2ufn|delete|unbind|parse_(reference|result)|escape|errno|err2str|error|explode_dn|bind|\n free_result|list|add|rename|read|get_(option|dn|entries|values(_len)?|attributes)|modify(_batch)?|\n mod_(add|del|replace)\n)\\b",name:"support.function.ldap.php"},{match:"(?i)\\blibxml_(set_(streams_context|external_entity_loader)|clear_errors|disable_entity_loader|use_internal_errors|get_(errors|last_error))\\b",name:"support.function.libxml.php"},{match:"(?i)\\b(ezmlm_hash|mail)\\b",name:"support.function.mail.php"},{match:"(?xi)\\b\n(\n (a)?(cos|sin|tan)(h)?|sqrt|srand|hypot|hexdec|ceil|is_(nan|(in)?finite)|octdec|dec(hex|oct|bin)|deg2rad|\n pi|pow|exp(m1)?|floor|fmod|lcg_value|log(1(p|0))?|atan2|abs|round|rand|rad2deg|getrandmax|\n mt_(srand|rand|getrandmax)|max|min|bindec|base_convert\n)\\b",name:"support.function.math.php"},{match:"(?xi)\\b\nmb_(\n str(cut|str|to(lower|upper)|istr|ipos|imwidth|pos|width|len|rchr|richr|ripos|rpos)|\n substitute_character|substr(_count)?|split|send_mail|http_(input|output)|check_encoding|\n convert_(case|encoding|kana|variables)|internal_encoding|output_handler|decode_(numericentity|mimeheader)|\n detect_(encoding|order)|parse_str|preferred_mime_name|encoding_aliases|encode_(numericentity|mimeheader)|\n ereg(i(_replace)?)?|ereg_(search(_(get(pos|regs)|init|regs|(set)?pos))?|replace(_callback)?|match)|\n list_encodings|language|regex_(set_options|encoding)|get_info\n)\\b",name:"support.function.mbstring.php"},{match:"(?xi)\\b\n(\n mcrypt_(\n cfb|create_iv|cbc|ofb|decrypt|encrypt|ecb|list_(algorithms|modes)|generic(_((de)?init|end))?|\n enc_(self_test|is_block_(algorithm|algorithm_mode|mode)|\n get_(supported_key_sizes|(block|iv|key)_size|(algorithms|modes)_name))|\n get_(cipher_name|(block|iv|key)_size)|\n module_(close|self_test|is_block_(algorithm|algorithm_mode|mode)|open|\n get_(supported_key_sizes|algo_(block|key)_size)))|\n mdecrypt_generic\n)\\b",name:"support.function.mcrypt.php"},{match:"(?i)\\bmemcache_debug\\b",name:"support.function.memcache.php"},{match:"(?i)\\bmhash(_(count|keygen_s2k|get_(hash_name|block_size)))?\\b",name:"support.function.mhash.php"},{match:"(?i)\\b(log_(cmd_(insert|delete|update)|killcursor|write_batch|reply|getmore)|bson_(decode|encode))\\b",name:"support.function.mongo.php"},{match:"(?xi)\\b\nmysql_(\n stat|set_charset|select_db|num_(fields|rows)|connect|client_encoding|close|create_db|escape_string|\n thread_id|tablename|insert_id|info|data_seek|drop_db|db_(name|query)|unbuffered_query|pconnect|ping|\n errno|error|query|field_(seek|name|type|table|flags|len)|fetch_(object|field|lengths|assoc|array|row)|\n free_result|list_(tables|dbs|processes|fields)|affected_rows|result|real_escape_string|\n get_(client|host|proto|server)_info\n)\\b",name:"support.function.mysql.php"},{match:"(?xi)\\b\nmysqli_(\n ssl_set|store_result|stat|send_(query|long_data)|set_(charset|opt|local_infile_(default|handler))|\n stmt_(store_result|send_long_data|next_result|close|init|data_seek|prepare|execute|fetch|free_result|\n attr_(get|set)|result_metadata|reset|get_(result|warnings)|more_results|bind_(param|result))|\n select_db|slave_query|savepoint|next_result|change_user|character_set_name|connect|commit|\n client_encoding|close|thread_safe|init|options|(enable|disable)_(reads_from_master|rpl_parse)|\n dump_debug_info|debug|data_seek|use_result|ping|poll|param_count|prepare|escape_string|execute|\n embedded_server_(start|end)|kill|query|field_seek|free_result|autocommit|rollback|report|refresh|\n fetch(_(object|fields|field(_direct)?|assoc|all|array|row))?|rpl_(parse_enabled|probe|query_type)|\n release_savepoint|reap_async_query|real_(connect|escape_string|query)|more_results|multi_query|\n get_(charset|connection_stats|client_(stats|info|version)|cache_stats|warnings|links_stats|metadata)|\n master_query|bind_(param|result)|begin_transaction\n)\\b",name:"support.function.mysqli.php"},{match:"(?i)\\bmysqlnd_memcache_(set|get_config)\\b",name:"support.function.mysqlnd-memcache.php"},{match:"(?i)\\bmysqlnd_ms_(set_(user_pick_server|qos)|dump_servers|query_is_select|fabric_select_(shard|global)|get_(stats|last_(used_connection|gtid))|xa_(commit|rollback|gc|begin)|match_wild)\\b",name:"support.function.mysqlnd-ms.php"},{match:"(?i)\\bmysqlnd_qc_(set_(storage_handler|cache_condition|is_select|user_handlers)|clear_cache|get_(normalized_query_trace_log|core_stats|cache_info|query_trace_log|available_handlers))\\b",name:"support.function.mysqlnd-qc.php"},{match:"(?i)\\bmysqlnd_uh_(set_(statement|connection)_proxy|convert_to_mysqlnd)\\b",name:"support.function.mysqlnd-uh.php"},{match:"(?xi)\\b\n(\n syslog|socket_(set_(blocking|timeout)|get_status)|set(raw)?cookie|http_response_code|openlog|\n headers_(list|sent)|header(_(register_callback|remove))?|checkdnsrr|closelog|inet_(ntop|pton)|ip2long|\n openlog|dns_(check_record|get_(record|mx))|define_syslog_variables|(p)?fsockopen|long2ip|\n get(servby(name|port)|host(name|by(name(l)?|addr))|protoby(name|number)|mxrr)\n)\\b",name:"support.function.network.php"},{match:"(?i)\\bnsapi_(virtual|response_headers|request_headers)\\b",name:"support.function.nsapi.php"},{match:"(?xi)\\b\n(\n oci(statementtype|setprefetch|serverversion|savelob(file)?|numcols|new(collection|cursor|descriptor)|nlogon|\n column(scale|size|name|type(raw)?|isnull|precision)|coll(size|trim|assign(elem)?|append|getelem|max)|commit|\n closelob|cancel|internaldebug|definebyname|plogon|parse|error|execute|fetch(statement|into)?|\n free(statement|collection|cursor|desc)|write(temporarylob|lobtofile)|loadlob|log(on|off)|rowcount|rollback|\n result|bindbyname)|\n oci_(statement_type|set_(client_(info|identifier)|prefetch|edition|action|module_name)|server_version|\n num_(fields|rows)|new_(connect|collection|cursor|descriptor)|connect|commit|client_version|close|cancel|\n internal_debug|define_by_name|pconnect|password_change|parse|error|execute|bind_(array_)?by_name|\n field_(scale|size|name|type(_raw)?|is_null|precision)|fetch(_(object|assoc|all|array|row))?|\n free_(statement|descriptor)|lob_(copy|is_equal)|rollback|result|get_implicit_resultset)\n)\\b",name:"support.function.oci8.php"},{match:"(?i)\\bopcache_(compile_file|invalidate|reset|get_(status|configuration))\\b",name:"support.function.opcache.php"},{match:"(?xi)\\b\nopenssl_(\n sign|spki_(new|export(_challenge)?|verify)|seal|csr_(sign|new|export(_to_file)?|get_(subject|public_key))|\n cipher_iv_length|open|dh_compute_key|digest|decrypt|public_(decrypt|encrypt)|encrypt|error_string|\n pkcs12_(export(_to_file)?|read)|pkcs7_(sign|decrypt|encrypt|verify)|verify|free_key|random_pseudo_bytes|\n pkey_(new|export(_to_file)?|free|get_(details|public|private))|private_(decrypt|encrypt)|pbkdf2|\n get_((cipher|md)_methods|cert_locations|(public|private)key)|\n x509_(check_private_key|checkpurpose|parse|export(_to_file)?|fingerprint|free|read)\n)\\b",name:"support.function.openssl.php"},{match:"(?xi)\\b\n(\n output_(add_rewrite_var|reset_rewrite_vars)|flush|\n ob_(start|clean|implicit_flush|end_(clean|flush)|flush|list_handlers|gzhandler|\n get_(status|contents|clean|flush|length|level))\n)\\b",name:"support.function.output.php"},{match:"(?i)\\bpassword_(hash|needs_rehash|verify|get_info)\\b",name:"support.function.password.php"},{match:"(?xi)\\b\npcntl_(\n strerror|signal(_dispatch)?|sig(timedwait|procmask|waitinfo)|setpriority|errno|exec|fork|\n w(stopsig|termsig|if(stopped|signaled|exited))|wait(pid)?|alarm|getpriority|get_last_error\n)\\b",name:"support.function.pcntl.php"},{match:"(?xi)\\b\npg_(\n socket|send_(prepare|execute|query(_params)?)|set_(client_encoding|error_verbosity)|select|host|\n num_(fields|rows)|consume_input|connection_(status|reset|busy)|connect(_poll)?|convert|copy_(from|to)|\n client_encoding|close|cancel_query|tty|transaction_status|trace|insert|options|delete|dbname|untrace|\n unescape_bytea|update|pconnect|ping|port|put_line|parameter_status|prepare|version|query(_params)?|\n escape_(string|identifier|literal|bytea)|end_copy|execute|flush|free_result|last_(notice|error|oid)|\n field_(size|num|name|type(_oid)?|table|is_null|prtlen)|affected_rows|result_(status|seek|error(_field)?)|\n fetch_(object|assoc|all(_columns)?|array|row|result)|get_(notify|pid|result)|meta_data|\n lo_(seek|close|create|tell|truncate|import|open|unlink|export|write|read(_all)?)|\n)\\b",name:"support.function.pgsql.php"},{match:"(?i)\\b(virtual|getallheaders|apache_((get|set)env|note|child_terminate|lookup_uri|response_headers|reset_timeout|request_headers|get_(version|modules)))\\b",name:"support.function.php_apache.php"},{match:"(?i)\\bdom_import_simplexml\\b",name:"support.function.php_dom.php"},{match:"(?xi)\\b\nftp_(\n ssl_connect|systype|site|size|set_option|nlist|nb_(continue|f?(put|get))|ch(dir|mod)|connect|cdup|close|\n delete|put|pwd|pasv|exec|quit|f(put|get)|login|alloc|rename|raw(list)?|rmdir|get(_option)?|mdtm|mkdir\n)\\b",name:"support.function.php_ftp.php"},{match:"(?xi)\\b\nimap_(\n (create|delete|list|rename|scan)(mailbox)?|status|sort|subscribe|set_quota|set(flag_full|acl)|search|savebody|\n num_(recent|msg)|check|close|clearflag_full|thread|timeout|open|header(info)?|headers|append|alerts|reopen|\n 8bit|unsubscribe|undelete|utf7_(decode|encode)|utf8|uid|ping|errors|expunge|qprint|gc|\n fetch(structure|header|text|mime|body)|fetch_overview|lsub|list(scan|subscribed)|last_error|\n rfc822_(parse_(headers|adrlist)|write_address)|get(subscribed|acl|mailboxes)|get_quota(root)?|\n msgno|mime_header_decode|mail_(copy|compose|move)|mail|mailboxmsginfo|binary|body(struct)?|base64\n)\\b",name:"support.function.php_imap.php"},{match:"(?xi)\\b\nmssql_(\n select_db|num_(fields|rows)|next_result|connect|close|init|data_seek|pconnect|execute|query|\n field_(seek|name|type|length)|fetch_(object|field|assoc|array|row|batch)|free_(statement|result)|\n rows_affected|result|guid_string|get_last_message|min_(error|message)_severity|bind\n)\\b",name:"support.function.php_mssql.php"},{match:"(?xi)\\b\nodbc_(\n statistics|specialcolumns|setoption|num_(fields|rows)|next_result|connect|columns|columnprivileges|commit|\n cursor|close(_all)?|tables|tableprivileges|do|data_source|pconnect|primarykeys|procedures|procedurecolumns|\n prepare|error(msg)?|exec(ute)?|field_(scale|num|name|type|precision|len)|foreignkeys|free_result|\n fetch_(into|object|array|row)|longreadlen|autocommit|rollback|result(_all)?|gettypeinfo|binmode\n)\\b",name:"support.function.php_odbc.php"},{match:"(?i)\\bpreg_(split|quote|filter|last_error|replace(_callback)?|grep|match(_all)?)\\b",name:"support.function.php_pcre.php"},{match:"(?i)\\b(spl_(classes|object_hash|autoload(_(call|unregister|extensions|functions|register))?)|class_(implements|uses|parents)|iterator_(count|to_array|apply))\\b",name:"support.function.php_spl.php"},{match:"(?i)\\bzip_(close|open|entry_(name|compressionmethod|compressedsize|close|open|filesize|read)|read)\\b",name:"support.function.php_zip.php"},{match:"(?xi)\\b\nposix_(\n strerror|set(s|e?u|[ep]?g)id|ctermid|ttyname|times|isatty|initgroups|uname|errno|kill|access|\n get(sid|cwd|uid|pid|ppid|pwnam|pwuid|pgid|pgrp|euid|egid|login|rlimit|gid|grnam|groups|grgid)|\n get_last_error|mknod|mkfifo\n)\\b",name:"support.function.posix.php"},{match:"(?i)\\bset(thread|proc)title\\b",name:"support.function.proctitle.php"},{match:"(?xi)\\b\npspell_(\n store_replacement|suggest|save_wordlist|new(_(config|personal))?|check|clear_session|\n config_(save_repl|create|ignore|(data|dict)_dir|personal|runtogether|repl|mode)|add_to_(session|personal)\n)\\b",name:"support.function.pspell.php"},{match:"(?i)\\breadline(_(completion_function|clear_history|callback_(handler_(install|remove)|read_char)|info|on_new_line|write_history|list_history|add_history|redisplay|read_history))?\\b",name:"support.function.readline.php"},{match:"(?i)\\brecode(_(string|file))?\\b",name:"support.function.recode.php"},{match:"(?i)\\brrd(c_disconnect|_(create|tune|info|update|error|version|first|fetch|last(update)?|restore|graph|xport))\\b",name:"support.function.rrd.php"},{match:"(?xi)\\b\n(\n shm_((get|has|remove|put)_var|detach|attach|remove)|sem_(acquire|release|remove|get)|ftok|\n msg_((get|remove|set|stat)_queue|send|queue_exists|receive)\n)\\b",name:"support.function.sem.php"},{match:"(?xi)\\b\nsession_(\n status|start|set_(save_handler|cookie_params)|save_path|name|commit|cache_(expire|limiter)|\n is_registered|id|destroy|decode|unset|unregister|encode|write_close|abort|reset|register(_shutdown)?|\n regenerate_id|get_cookie_params|module_name\n)\\b",name:"support.function.session.php"},{match:"(?i)\\bshmop_(size|close|open|delete|write|read)\\b",name:"support.function.shmop.php"},{match:"(?i)\\bsimplexml_(import_dom|load_(string|file))\\b",name:"support.function.simplexml.php"},{match:"(?xi)\\b\n(\n snmp(walk(oid)?|realwalk|get(next)?|set)|\n snmp_(set_(valueretrieval|quick_print|enum_print|oid_(numeric_print|output_format))|read_mib|\n get_(valueretrieval|quick_print))|\n snmp[23]_(set|walk|real_walk|get(next)?)\n)\\b",name:"support.function.snmp.php"},{match:"(?i)\\b(is_soap_fault|use_soap_error_handler)\\b",name:"support.function.soap.php"},{match:"(?xi)\\b\nsocket_(\n shutdown|strerror|send(to|msg)?|set_((non)?block|option)|select|connect|close|clear_error|bind|\n create(_(pair|listen))?|cmsg_space|import_stream|write|listen|last_error|accept|recv(from|msg)?|\n read|get(peer|sock)name|get_option\n)\\b",name:"support.function.sockets.php"},{match:"(?xi)\\b\nsqlite_(\n single_query|seek|has_(more|prev)|num_(fields|rows)|next|changes|column|current|close|\n create_(aggregate|function)|open|unbuffered_query|udf_(decode|encode)_binary|popen|prev|\n escape_string|error_string|exec|valid|key|query|field_name|factory|\n fetch_(string|single|column_types|object|all|array)|lib(encoding|version)|\n last_(insert_rowid|error)|array_query|rewind|busy_timeout\n)\\b",name:"support.function.sqlite.php"},{match:"(?xi)\\b\nsqlsrv_(\n send_stream_data|server_info|has_rows|num_(fields|rows)|next_result|connect|configure|commit|\n client_info|close|cancel|prepare|errors|execute|query|field_metadata|fetch(_(array|object))?|\n free_stmt|rows_affected|rollback|get_(config|field)|begin_transaction\n)\\b",name:"support.function.sqlsrv.php"},{match:"(?xi)\\b\nstats_(\n harmonic_mean|covariance|standard_deviation|skew|\n cdf_(noncentral_(chisquare|f)|negative_binomial|chisquare|cauchy|t|uniform|poisson|exponential|f|weibull|\n logistic|laplace|gamma|binomial|beta)|\n stat_(noncentral_t|correlation|innerproduct|independent_t|powersum|percentile|paired_t|gennch|binomial_coef)|\n dens_(normal|negative_binomial|chisquare|cauchy|t|pmf_(hypergeometric|poisson|binomial)|exponential|f|\n weibull|logistic|laplace|gamma|beta)|\n den_uniform|variance|kurtosis|absolute_deviation|\n rand_(setall|phrase_to_seeds|ranf|get_seeds|\n gen_(noncentral_[ft]|noncenral_chisquare|normal|chisquare|t|int|\n i(uniform|poisson|binomial(_negative)?)|exponential|f(uniform)?|gamma|beta))\n)\\b",name:"support.function.stats.php"},{match:"(?xi)\\b\n(\n set_socket_blocking|\n stream_(socket_(shutdown|sendto|server|client|pair|enable_crypto|accept|recvfrom|get_name)|\n set_(chunk_size|timeout|(read|write)_buffer|blocking)|select|notification_callback|supports_lock|\n context_(set_(option|default|params)|create|get_(options|default|params))|copy_to_stream|is_local|\n encoding|filter_(append|prepend|register|remove)|wrapper_((un)?register|restore)|\n resolve_include_path|register_wrapper|get_(contents|transports|filters|wrappers|line|meta_data)|\n bucket_(new|prepend|append|make_writeable)\n )\n)\\b",name:"support.function.streamsfuncs.php"},{match:"(?xi)\\b\n(\n money_format|md5(_file)?|metaphone|bin2hex|sscanf|sha1(_file)?|\n str(str|c?spn|n(at)?(case)?cmp|chr|coll|(case)?cmp|to(upper|lower)|tok|tr|istr|pos|pbrk|len|rchr|ri?pos|rev)|\n str_(getcsv|ireplace|pad|repeat|replace|rot13|shuffle|split|word_count)|\n strip(c?slashes|os)|strip_tags|similar_text|soundex|substr(_(count|compare|replace))?|setlocale|\n html(specialchars(_decode)?|entities)|html_entity_decode|hex2bin|hebrev(c)?|number_format|nl2br|nl_langinfo|\n chop|chunk_split|chr|convert_(cyr_string|uu(decode|encode))|count_chars|crypt|crc32|trim|implode|ord|\n uc(first|words)|join|parse_str|print(f)?|echo|explode|v?[fs]?printf|quoted_printable_(decode|encode)|\n quotemeta|wordwrap|lcfirst|[lr]trim|localeconv|levenshtein|addc?slashes|get_html_translation_table\n)\\b",name:"support.function.string.php"},{match:"(?xi)\\b\nsybase_(\n set_message_handler|select_db|num_(fields|rows)|connect|close|deadlock_retry_count|data_seek|\n unbuffered_query|pconnect|query|field_seek|fetch_(object|field|assoc|array|row)|free_result|\n affected_rows|result|get_last_message|min_(client|error|message|server)_severity\n)\\b",name:"support.function.sybase.php"},{match:"(?i)\\b(taint|is_tainted|untaint)\\b",name:"support.function.taint.php"},{match:"(?xi)\\b\n(\n tidy_((get|set)opt|set_encoding|save_config|config_count|clean_repair|is_(xhtml|xml)|diagnose|\n (access|error|warning)_count|load_config|reset_config|(parse|repair)_(string|file)|\n get_(status|html(_ver)?|head|config|output|opt_doc|root|release|body))|\n ob_tidyhandler\n)\\b",name:"support.function.tidy.php"},{match:"(?i)\\btoken_(name|get_all)\\b",name:"support.function.tokenizer.php"},{match:"(?xi)\\b\ntrader_(\n stoch(f|r|rsi)?|stddev|sin(h)?|sum|sub|set_(compat|unstable_period)|sqrt|sar(ext)?|sma|\n ht_(sine|trend(line|mode)|dc(period|phase)|phasor)|natr|cci|cos(h)?|correl|\n cdl(shootingstar|shortline|sticksandwich|stalledpattern|spinningtop|separatinglines|\n hikkake(mod)?|highwave|homingpigeon|hangingman|harami(cross)?|hammer|concealbabyswall|\n counterattack|closingmarubozu|thrusting|tasukigap|takuri|tristar|inneck|invertedhammer|\n identical3crows|2crows|onneck|doji(star)?|darkcloudcover|dragonflydoji|unique3river|\n upsidegap2crows|3(starsinsouth|inside|outside|whitesoldiers|linestrike|blackcrows)|\n piercing|engulfing|evening(doji)?star|kicking(bylength)?|longline|longleggeddoji|\n ladderbottom|advanceblock|abandonedbaby|risefall3methods|rickshawman|gapsidesidewhite|\n gravestonedoji|xsidegap3methods|morning(doji)?star|mathold|matchinglow|marubozu|\n belthold|breakaway)|\n ceil|cmo|tsf|typprice|t3|tema|tan(h)?|trix|trima|trange|obv|div|dema|dx|ultosc|ppo|\n plus_d[im]|errno|exp|ema|var|kama|floor|wclprice|willr|wma|ln|log10|bop|beta|bbands|\n linearreg(_(slope|intercept|angle))?|asin|acos|atan|atr|adosc|ad|add|adx(r)?|apo|avgprice|\n aroon(osc)?|rsi|roc|rocp|rocr(100)?|get_(compat|unstable_period)|min(index)?|minus_d[im]|\n minmax(index)?|mid(point|price)|mom|mult|medprice|mfi|macd(ext|fix)?|mavp|max(index)?|ma(ma)?\n)\\b",name:"support.function.trader.php"},{match:"(?i)\\buopz_(copy|compose|implement|overload|delete|undefine|extend|function|flags|restore|rename|redefine|backup)\\b",name:"support.function.uopz.php"},{match:"(?i)\\b(http_build_query|(raw)?url(decode|encode)|parse_url|get_(headers|meta_tags)|base64_(decode|encode))\\b",name:"support.function.url.php"},{match:"(?xi)\\b\n(\n strval|settype|serialize|(bool|double|float)val|debug_zval_dump|intval|import_request_variables|isset|\n is_(scalar|string|null|numeric|callable|int(eger)?|object|double|float|long|array|resource|real|bool)|\n unset|unserialize|print_r|empty|var_(dump|export)|gettype|get_(defined_vars|resource_type)\n)\\b",name:"support.function.var.php"},{match:"(?i)\\bwddx_(serialize_(value|vars)|deserialize|packet_(start|end)|add_vars)\\b",name:"support.function.wddx.php"},{match:"(?i)\\bxhprof_(sample_)?(disable|enable)\\b",name:"support.function.xhprof.php"},{match:"(?xi)\n\\b\n(\n utf8_(decode|encode)|\n xml_(set_((notation|(end|start)_namespace|unparsed_entity)_decl_handler|\n (character_data|default|element|external_entity_ref|processing_instruction)_handler|object)|\n parse(_into_struct)?|parser_((get|set)_option|create(_ns)?|free)|error_string|\n get_(current_((column|line)_number|byte_index)|error_code))\n)\\b",name:"support.function.xml.php"},{match:"(?xi)\\b\nxmlrpc_(\n server_(call_method|create|destroy|add_introspection_data|register_(introspection_callback|method))|\n is_fault|decode(_request)?|parse_method_descriptions|encode(_request)?|(get|set)_type\n)\\b",name:"support.function.xmlrpc.php"},{match:"(?xi)\\b\nxmlwriter_(\n (end|start|write)_(comment|cdata|dtd(_(attlist|entity|element))?|document|pi|attribute|element)|\n (start|write)_(attribute|element)_ns|write_raw|set_indent(_string)?|text|output_memory|open_(memory|uri)|\n full_end_element|flush|\n)\\b",name:"support.function.xmlwriter.php"},{match:"(?xi)\\b\n(\n zlib_(decode|encode|get_coding_type)|readgzfile|\n gz(seek|compress|close|tell|inflate|open|decode|deflate|uncompress|puts|passthru|encode|eof|file|\n write|rewind|read|getc|getss?)\n)\\b",name:"support.function.zlib.php"},{match:"(?i)\\bis_int(eger)?\\b",name:"support.function.alias.php"}]},switch_statement:{patterns:[{match:"\\s+(?=switch\\b)"},{begin:"\\bswitch\\b(?!\\s*\\(.*\\)\\s*:)",beginCaptures:{"0":{name:"keyword.control.switch.php"}},end:"}|(?=\\?>)",endCaptures:{"0":{name:"punctuation.definition.section.switch-block.end.bracket.curly.php"}},name:"meta.switch-statement.php",patterns:[{begin:"\\(",beginCaptures:{"0":{name:"punctuation.definition.switch-expression.begin.bracket.round.php"}},end:"\\)|(?=\\?>)",endCaptures:{"0":{name:"punctuation.definition.switch-expression.end.bracket.round.php"}},patterns:[{include:"#language"}]},{begin:"{",beginCaptures:{"0":{name:"punctuation.definition.section.switch-block.begin.bracket.curly.php"}},end:"(?=}|\\?>)",patterns:[{include:"#language"}]}]}]},"use-inner":{patterns:[{include:"#comments"},{begin:"(?i)\\b(as)\\s+",beginCaptures:{"1":{name:"keyword.other.use-as.php"}},end:"(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*",endCaptures:{"0":{name:"entity.other.alias.php"}}},{include:"#class-name"},{match:",",name:"punctuation.separator.delimiter.php"}]},var_basic:{patterns:[{captures:{"1":{name:"punctuation.definition.variable.php"}},match:"(?i)(\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*\\b",name:"variable.other.php"}]},var_global:{captures:{"1":{name:"punctuation.definition.variable.php"}},match:"(\\$)((_(COOKIE|FILES|GET|POST|REQUEST))|arg(v|c))\\b",name:"variable.other.global.php"},var_global_safer:{captures:{"1":{name:"punctuation.definition.variable.php"}},match:"(\\$)((GLOBALS|_(ENV|SERVER|SESSION)))",name:"variable.other.global.safer.php"},var_language:{match:"(\\$)this\\b",name:"variable.language.this.php",captures:{"1":{name:"punctuation.definition.variable.php"}}},"variable-name":{patterns:[{include:"#var_global"},{include:"#var_global_safer"},{captures:{"1":{name:"variable.other.php"},"2":{name:"punctuation.definition.variable.php"},"4":{name:"keyword.operator.class.php"},"5":{name:"variable.other.property.php"},"6":{name:"punctuation.section.array.begin.php"},"7":{name:"constant.numeric.index.php"},"8":{name:"variable.other.index.php"},"9":{name:"punctuation.definition.variable.php"},"10":{name:"string.unquoted.index.php"},"11":{name:"punctuation.section.array.end.php"}},match:"(?xi)\n((\\$)(?[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*))\n(?:\n (->)(\\g)\n |\n (\\[)(?:(\\d+)|((\\$)\\g)|([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*))(\\])\n)?"},{captures:{"1":{name:"variable.other.php"},"2":{name:"punctuation.definition.variable.php"},"4":{name:"punctuation.definition.variable.php"}},match:"(?i)((\\${)(?[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)(}))"}]},variables:{patterns:[{include:"#var_language"},{include:"#var_global"},{include:"#var_global_safer"},{include:"#var_basic"},{begin:"\\${(?=.*?})",beginCaptures:{"0":{name:"punctuation.definition.variable.php"}},end:"}",endCaptures:{"0":{name:"punctuation.definition.variable.php"}},patterns:[{include:"#language"}]}]}}}; + +export { blade_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/c.tmLanguage-1ff9dcec.mjs b/docs/shiki/dist/languages/c.tmLanguage-1ff9dcec.mjs new file mode 100644 index 00000000..be4260bf --- /dev/null +++ b/docs/shiki/dist/languages/c.tmLanguage-1ff9dcec.mjs @@ -0,0 +1,3 @@ +var c_tmLanguage = {information_for_contributors:["This file has been converted from https://github.com/jeff-hykin/better-c-syntax/blob/master/autogenerated/c.tmLanguage.json","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."],version:"https://github.com/jeff-hykin/better-c-syntax/commit/34712a6106a4ffb0a04d2fa836fd28ff6c5849a4",name:"c",scopeName:"source.c",patterns:[{include:"#preprocessor-rule-enabled"},{include:"#preprocessor-rule-disabled"},{include:"#preprocessor-rule-conditional"},{include:"#predefined_macros"},{include:"#comments"},{include:"#switch_statement"},{include:"#anon_pattern_1"},{include:"#storage_types"},{include:"#anon_pattern_2"},{include:"#anon_pattern_3"},{include:"#anon_pattern_4"},{include:"#anon_pattern_5"},{include:"#anon_pattern_6"},{include:"#anon_pattern_7"},{include:"#operators"},{include:"#numbers"},{include:"#strings"},{include:"#anon_pattern_range_1"},{include:"#anon_pattern_range_2"},{include:"#anon_pattern_range_3"},{include:"#pragma-mark"},{include:"#anon_pattern_range_4"},{include:"#anon_pattern_range_5"},{include:"#anon_pattern_range_6"},{include:"#anon_pattern_8"},{include:"#anon_pattern_9"},{include:"#anon_pattern_10"},{include:"#anon_pattern_11"},{include:"#anon_pattern_12"},{include:"#anon_pattern_13"},{include:"#block"},{include:"#parens"},{include:"#anon_pattern_range_7"},{include:"#line_continuation_character"},{include:"#anon_pattern_range_8"},{include:"#anon_pattern_range_9"},{include:"#anon_pattern_14"},{include:"#anon_pattern_15"}],repository:{"access-method":{name:"meta.function-call.member.c",begin:"([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))\\s*(?:(\\.)|(->))((?:(?:[a-zA-Z_][a-zA-Z_0-9]*)\\s*(?:(?:\\.)|(?:->)))*)\\s*([a-zA-Z_][a-zA-Z_0-9]*)(\\()",beginCaptures:{"1":{name:"variable.object.c"},"2":{name:"punctuation.separator.dot-access.c"},"3":{name:"punctuation.separator.pointer-access.c"},"4":{patterns:[{match:"\\.",name:"punctuation.separator.dot-access.c"},{match:"->",name:"punctuation.separator.pointer-access.c"},{match:"[a-zA-Z_][a-zA-Z_0-9]*",name:"variable.object.c"},{name:"everything.else.c",match:".+"}]},"5":{name:"entity.name.function.member.c"},"6":{name:"punctuation.section.arguments.begin.bracket.round.function.member.c"}},end:"\\)",endCaptures:{"0":{name:"punctuation.section.arguments.end.bracket.round.function.member.c"}},patterns:[{include:"#function-call-innards"}]},anon_pattern_1:{match:"\\b(break|continue|do|else|for|goto|if|_Pragma|return|while)\\b",name:"keyword.control.c"},anon_pattern_10:{match:"(?x) \\b\n(int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t\n|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t\n|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t\n|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t\n|uintmax_t|uintmax_t)\n\\b",name:"support.type.stdint.c"},anon_pattern_11:{match:"\\b(noErr|kNilOptions|kInvalidID|kVariableLengthArray)\\b",name:"support.constant.mac-classic.c"},anon_pattern_12:{match:"(?x) \\b\n(AbsoluteTime|Boolean|Byte|ByteCount|ByteOffset|BytePtr|CompTimeValue|ConstLogicalAddress|ConstStrFileNameParam\n|ConstStringPtr|Duration|Fixed|FixedPtr|Float32|Float32Point|Float64|Float80|Float96|FourCharCode|Fract|FractPtr\n|Handle|ItemCount|LogicalAddress|OptionBits|OSErr|OSStatus|OSType|OSTypePtr|PhysicalAddress|ProcessSerialNumber\n|ProcessSerialNumberPtr|ProcHandle|Ptr|ResType|ResTypePtr|ShortFixed|ShortFixedPtr|SignedByte|SInt16|SInt32|SInt64\n|SInt8|Size|StrFileName|StringHandle|StringPtr|TimeBase|TimeRecord|TimeScale|TimeValue|TimeValue64|UInt16|UInt32\n|UInt64|UInt8|UniChar|UniCharCount|UniCharCountPtr|UniCharPtr|UnicodeScalarValue|UniversalProcHandle|UniversalProcPtr\n|UnsignedFixed|UnsignedFixedPtr|UnsignedWide|UTF16Char|UTF32Char|UTF8Char)\n\\b",name:"support.type.mac-classic.c"},anon_pattern_13:{match:"\\b([A-Za-z0-9_]+_t)\\b",name:"support.type.posix-reserved.c"},anon_pattern_14:{match:";",name:"punctuation.terminator.statement.c"},anon_pattern_15:{match:",",name:"punctuation.separator.delimiter.c"},anon_pattern_2:{match:"typedef",name:"keyword.other.typedef.c"},anon_pattern_3:{match:"\\b(const|extern|register|restrict|static|volatile|inline)\\b",name:"storage.modifier.c"},anon_pattern_4:{match:"\\bk[A-Z]\\w*\\b",name:"constant.other.variable.mac-classic.c"},anon_pattern_5:{match:"\\bg[A-Z]\\w*\\b",name:"variable.other.readwrite.global.mac-classic.c"},anon_pattern_6:{match:"\\bs[A-Z]\\w*\\b",name:"variable.other.readwrite.static.mac-classic.c"},anon_pattern_7:{match:"\\b(NULL|true|false|TRUE|FALSE)\\b",name:"constant.language.c"},anon_pattern_8:{match:"\\b(u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t)\\b",name:"support.type.sys-types.c"},anon_pattern_9:{match:"\\b(pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t)\\b",name:"support.type.pthread.c"},anon_pattern_range_1:{name:"meta.preprocessor.macro.c",begin:"((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((#)\\s*define\\b)\\s+((?",endCaptures:{"0":{name:"punctuation.definition.string.end.c"}},name:"string.quoted.other.lt-gt.include.c"}]},anon_pattern_range_4:{begin:"^\\s*((#)\\s*line)\\b",beginCaptures:{"1":{name:"keyword.control.directive.line.c"},"2":{name:"punctuation.definition.directive.c"}},end:"(?=(?://|/\\*))|(?=+!]+ | \\(\\) | \\[\\]))\n)\n\\s*(\\() # opening bracket",beginCaptures:{"1":{name:"variable.other.c"},"2":{name:"punctuation.section.parens.begin.bracket.round.initialization.c"}},end:"\\)",endCaptures:{"0":{name:"punctuation.section.parens.end.bracket.round.initialization.c"}},patterns:[{include:"#function-call-innards"}]},{begin:"{",beginCaptures:{"0":{name:"punctuation.section.block.begin.bracket.curly.c"}},end:"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)",endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.c"}},patterns:[{include:"#block_innards"}]},{include:"#parens-block"},{include:"$self"}]},c_conditional_context:{patterns:[{include:"$self"},{include:"#block_innards"}]},c_function_call:{begin:"(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(?=\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)",end:"(?<=\\))(?!\\w)",name:"meta.function-call.c",patterns:[{include:"#function-call-innards"}]},case_statement:{name:"meta.conditional.case.c",begin:"((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?\\s*)(\\/\\/[!\\/]+)",beginCaptures:{"1":{name:"punctuation.definition.comment.documentation.c"}},end:"(?<=\\n)(?|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.c"},{match:"((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)",captures:{"1":{name:"storage.type.class.doxygen.c"},"2":{name:"markup.italic.doxygen.c"}}},{match:"((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)",captures:{"1":{name:"storage.type.class.doxygen.c"},"2":{name:"markup.bold.doxygen.c"}}},{match:"((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)",captures:{"1":{name:"storage.type.class.doxygen.c"},"2":{name:"markup.inline.raw.string.c"}}},{match:"(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.c"},{match:"(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.c"},{match:"((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?\\s*(?:in|out)\\s*)+)\\])?\\s+(\\b\\w+\\b)",captures:{"1":{name:"storage.type.class.doxygen.c"},"2":{patterns:[{match:"in|out",name:"keyword.other.parameter.direction.$0.c"}]},"3":{name:"variable.parameter.c"}}},{match:"(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.c"},{match:"(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.c"},{match:"(?:\\b[A-Z]+:|@[a-z_]+:)",name:"storage.type.class.gtkdoc"}]},{match:"(\\/\\*[!*]+(?=\\s))(.+)([!*]*\\*\\/)",captures:{"1":{name:"punctuation.definition.comment.begin.documentation.c"},"2":{patterns:[{match:"(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.c"},{match:"((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)",captures:{"1":{name:"storage.type.class.doxygen.c"},"2":{name:"markup.italic.doxygen.c"}}},{match:"((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)",captures:{"1":{name:"storage.type.class.doxygen.c"},"2":{name:"markup.bold.doxygen.c"}}},{match:"((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)",captures:{"1":{name:"storage.type.class.doxygen.c"},"2":{name:"markup.inline.raw.string.c"}}},{match:"(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.c"},{match:"(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.c"},{match:"((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?\\s*(?:in|out)\\s*)+)\\])?\\s+(\\b\\w+\\b)",captures:{"1":{name:"storage.type.class.doxygen.c"},"2":{patterns:[{match:"in|out",name:"keyword.other.parameter.direction.$0.c"}]},"3":{name:"variable.parameter.c"}}},{match:"(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.c"},{match:"(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.c"},{match:"(?:\\b[A-Z]+:|@[a-z_]+:)",name:"storage.type.class.gtkdoc"}]},"3":{name:"punctuation.definition.comment.end.documentation.c"}},name:"comment.block.documentation.c"},{name:"comment.block.documentation.c",begin:"((?>\\s*)\\/\\*[!*]+(?:(?:\\n|$)|(?=\\s)))",beginCaptures:{"1":{name:"punctuation.definition.comment.begin.documentation.c"}},end:"([!*]*\\*\\/)",endCaptures:{"1":{name:"punctuation.definition.comment.end.documentation.c"}},patterns:[{match:"(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.c"},{match:"((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)",captures:{"1":{name:"storage.type.class.doxygen.c"},"2":{name:"markup.italic.doxygen.c"}}},{match:"((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)",captures:{"1":{name:"storage.type.class.doxygen.c"},"2":{name:"markup.bold.doxygen.c"}}},{match:"((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)",captures:{"1":{name:"storage.type.class.doxygen.c"},"2":{name:"markup.inline.raw.string.c"}}},{match:"(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.c"},{match:"(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.c"},{match:"((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?\\s*(?:in|out)\\s*)+)\\])?\\s+(\\b\\w+\\b)",captures:{"1":{name:"storage.type.class.doxygen.c"},"2":{patterns:[{match:"in|out",name:"keyword.other.parameter.direction.$0.c"}]},"3":{name:"variable.parameter.c"}}},{match:"(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.c"},{match:"(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.c"},{match:"(?:\\b[A-Z]+:|@[a-z_]+:)",name:"storage.type.class.gtkdoc"}]},{match:"^\\/\\* =(\\s*.*?)\\s*= \\*\\/$\\n?",captures:{"1":{name:"meta.toc-list.banner.block.c"}},name:"comment.block.banner.c"},{name:"comment.block.c",begin:"(\\/\\*)",beginCaptures:{"1":{name:"punctuation.definition.comment.begin.c"}},end:"(\\*\\/)",endCaptures:{"1":{name:"punctuation.definition.comment.end.c"}}},{match:"^\\/\\/ =(\\s*.*?)\\s*=$\\n?",captures:{"1":{name:"meta.toc-list.banner.line.c"}},name:"comment.line.banner.c"},{begin:"((?:^[ \\t]+)?)(?=\\/\\/)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.c"}},end:"(?!\\G)",patterns:[{name:"comment.line.double-slash.c",begin:"(\\/\\/)",beginCaptures:{"1":{name:"punctuation.definition.comment.c"}},end:"(?=\\n)",patterns:[{include:"#line_continuation_character"}]}]}]},{include:"#block_comment"},{include:"#line_comment"}]},{include:"#block_comment"},{include:"#line_comment"}]},default_statement:{name:"meta.conditional.case.c",begin:"((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()",beginCaptures:{"1":{name:"entity.name.function.c"},"2":{name:"punctuation.section.arguments.begin.bracket.round.c"}},end:"\\)",endCaptures:{"0":{name:"punctuation.section.arguments.end.bracket.round.c"}},patterns:[{include:"#function-call-innards"}]},{begin:"\\(",beginCaptures:{"0":{name:"punctuation.section.parens.begin.bracket.round.c"}},end:"\\)",endCaptures:{"0":{name:"punctuation.section.parens.end.bracket.round.c"}},patterns:[{include:"#function-call-innards"}]},{include:"#block_innards"}]},"function-innards":{patterns:[{include:"#comments"},{include:"#storage_types"},{include:"#operators"},{include:"#vararg_ellipses"},{name:"meta.function.definition.parameters.c",begin:"(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()",beginCaptures:{"1":{name:"entity.name.function.c"},"2":{name:"punctuation.section.parameters.begin.bracket.round.c"}},end:"\\)",endCaptures:{"0":{name:"punctuation.section.parameters.end.bracket.round.c"}},patterns:[{include:"#probably_a_parameter"},{include:"#function-innards"}]},{begin:"\\(",beginCaptures:{"0":{name:"punctuation.section.parens.begin.bracket.round.c"}},end:"\\)",endCaptures:{"0":{name:"punctuation.section.parens.end.bracket.round.c"}},patterns:[{include:"#function-innards"}]},{include:"$self"}]},inline_comment:{patterns:[{patterns:[{match:"(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/))",captures:{"1":{name:"comment.block.c punctuation.definition.comment.begin.c"},"2":{name:"comment.block.c"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.c punctuation.definition.comment.end.c"},{match:"\\*",name:"comment.block.c"}]}}},{match:"(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/))",captures:{"1":{name:"comment.block.c punctuation.definition.comment.begin.c"},"2":{name:"comment.block.c"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.c punctuation.definition.comment.end.c"},{match:"\\*",name:"comment.block.c"}]}}}]},{match:"(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/))",captures:{"1":{name:"comment.block.c punctuation.definition.comment.begin.c"},"2":{name:"comment.block.c"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.c punctuation.definition.comment.end.c"},{match:"\\*",name:"comment.block.c"}]}}}]},line_comment:{patterns:[{begin:"\\s*+(\\/\\/)",end:"(?<=\\n)(?\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*(\\b(?!(?:atomic_uint_least64_t|atomic_uint_least16_t|atomic_uint_least32_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_fast64_t|atomic_uint_fast32_t|atomic_int_least64_t|atomic_int_least32_t|pthread_rwlockattr_t|atomic_uint_fast16_t|pthread_mutexattr_t|atomic_int_fast16_t|atomic_uint_fast8_t|atomic_int_fast64_t|atomic_int_least8_t|atomic_int_fast32_t|atomic_int_fast8_t|pthread_condattr_t|atomic_uintptr_t|atomic_ptrdiff_t|pthread_rwlock_t|atomic_uintmax_t|pthread_mutex_t|atomic_intmax_t|atomic_intptr_t|atomic_char32_t|atomic_char16_t|pthread_attr_t|atomic_wchar_t|uint_least64_t|uint_least32_t|uint_least16_t|pthread_cond_t|pthread_once_t|uint_fast64_t|uint_fast16_t|atomic_size_t|uint_least8_t|int_least64_t|int_least32_t|int_least16_t|pthread_key_t|atomic_ullong|atomic_ushort|uint_fast32_t|atomic_schar|atomic_short|uint_fast8_t|int_fast64_t|int_fast32_t|int_fast16_t|atomic_ulong|atomic_llong|int_least8_t|atomic_uchar|memory_order|suseconds_t|int_fast8_t|atomic_bool|atomic_char|atomic_uint|atomic_long|atomic_int|useconds_t|_Imaginary|blksize_t|pthread_t|in_addr_t|uintptr_t|in_port_t|uintmax_t|uintmax_t|blkcnt_t|uint16_t|unsigned|_Complex|uint32_t|intptr_t|intmax_t|intmax_t|uint64_t|u_quad_t|int64_t|int32_t|ssize_t|caddr_t|clock_t|uint8_t|u_short|swblk_t|segsz_t|int16_t|fixpt_t|daddr_t|nlink_t|qaddr_t|size_t|time_t|mode_t|signed|quad_t|ushort|u_long|u_char|double|int8_t|ino_t|uid_t|pid_t|_Bool|float|dev_t|div_t|short|gid_t|off_t|u_int|key_t|id_t|uint|long|void|char|bool|id_t|int)\\b)[a-zA-Z_]\\w*\\b(?!\\())",captures:{"1":{name:"variable.other.object.access.c"},"2":{name:"punctuation.separator.dot-access.c"},"3":{name:"punctuation.separator.pointer-access.c"},"4":{patterns:[{include:"#member_access"},{include:"#method_access"},{match:"((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))",captures:{"1":{name:"variable.other.object.access.c"},"2":{name:"punctuation.separator.dot-access.c"},"3":{name:"punctuation.separator.pointer-access.c"}}}]},"5":{name:"variable.other.member.c"}}},method_access:{contentName:"meta.function-call.member.c",begin:"((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*([a-zA-Z_]\\w*)(\\()",beginCaptures:{"1":{name:"variable.other.object.access.c"},"2":{name:"punctuation.separator.dot-access.c"},"3":{name:"punctuation.separator.pointer-access.c"},"4":{patterns:[{include:"#member_access"},{include:"#method_access"},{match:"((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))",captures:{"1":{name:"variable.other.object.access.c"},"2":{name:"punctuation.separator.dot-access.c"},"3":{name:"punctuation.separator.pointer-access.c"}}}]},"5":{name:"entity.name.function.member.c"},"6":{name:"punctuation.section.arguments.begin.bracket.round.function.member.c"}},end:"(\\))",endCaptures:{"1":{name:"punctuation.section.arguments.end.bracket.round.function.member.c"}},patterns:[{include:"#function-call-innards"}]},numbers:{match:"(?>=|\\|=",name:"keyword.operator.assignment.compound.bitwise.c"},{match:"<<|>>",name:"keyword.operator.bitwise.shift.c"},{match:"!=|<=|>=|==|<|>",name:"keyword.operator.comparison.c"},{match:"&&|!|\\|\\|",name:"keyword.operator.logical.c"},{match:"&|\\||\\^|~",name:"keyword.operator.c"},{match:"=",name:"keyword.operator.assignment.c"},{match:"%|\\*|/|-|\\+",name:"keyword.operator.c"},{begin:"(\\?)",beginCaptures:{"1":{name:"keyword.operator.ternary.c"}},end:"(:)",endCaptures:{"1":{name:"keyword.operator.ternary.c"}},patterns:[{include:"#function-call-innards"},{include:"$self"}]}]},parens:{name:"meta.parens.c",begin:"\\(",beginCaptures:{"0":{name:"punctuation.section.parens.begin.bracket.round.c"}},end:"\\)",endCaptures:{"0":{name:"punctuation.section.parens.end.bracket.round.c"}},patterns:[{include:"$self"}]},"parens-block":{name:"meta.parens.block.c",begin:"\\(",beginCaptures:{"0":{name:"punctuation.section.parens.begin.bracket.round.c"}},end:"\\)",endCaptures:{"0":{name:"punctuation.section.parens.end.bracket.round.c"}},patterns:[{include:"#block_innards"},{match:"(?-mix:(?=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)",end:"(?<=\\))(?!\\w)|(?=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()",beginCaptures:{"1":{name:"entity.name.function.c"},"2":{name:"punctuation.section.arguments.begin.bracket.round.c"}},end:"(\\))|(?\\]\\)]))\\s*([a-zA-Z_]\\w*)\\s*(?=(?:\\[\\]\\s*)?(?:,|\\)))",captures:{"1":{name:"variable.parameter.probably.c"}}},static_assert:{begin:"((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(\\()",beginCaptures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.c punctuation.definition.comment.begin.c"},"3":{name:"comment.block.c"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.c punctuation.definition.comment.end.c"},{match:"\\*",name:"comment.block.c"}]},"5":{name:"keyword.other.static_assert.c"},"6":{patterns:[{include:"#inline_comment"}]},"7":{name:"comment.block.c punctuation.definition.comment.begin.c"},"8":{name:"comment.block.c"},"9":{patterns:[{match:"\\*\\/",name:"comment.block.c punctuation.definition.comment.end.c"},{match:"\\*",name:"comment.block.c"}]},"10":{name:"punctuation.section.arguments.begin.bracket.round.static_assert.c"}},end:"(\\))",endCaptures:{"1":{name:"punctuation.section.arguments.end.bracket.round.static_assert.c"}},patterns:[{name:"meta.static_assert.message.c",begin:"(,)\\s*(?=(?:L|u8|u|U\\s*\\\")?)",beginCaptures:{"1":{name:"punctuation.separator.delimiter.comma.c"}},end:"(?=\\))",patterns:[{include:"#string_context"}]},{include:"#evaluation_context"}]},storage_types:{patterns:[{match:"(?-mix:(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:\\n|$)",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.c punctuation.definition.comment.begin.c"},"3":{name:"comment.block.c"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.c punctuation.definition.comment.end.c"},{match:"\\*",name:"comment.block.c"}]}}},{include:"#comments"},{begin:"(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))\\()",beginCaptures:{"1":{name:"punctuation.section.parens.begin.bracket.round.assembly.c"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.c punctuation.definition.comment.begin.c"},"4":{name:"comment.block.c"},"5":{patterns:[{match:"\\*\\/",name:"comment.block.c punctuation.definition.comment.end.c"},{match:"\\*",name:"comment.block.c"}]}},end:"(\\))",endCaptures:{"1":{name:"punctuation.section.parens.end.bracket.round.assembly.c"}},patterns:[{name:"string.quoted.double.c",contentName:"meta.embedded.assembly.c",begin:"(R?)(\")",beginCaptures:{"1":{name:"meta.encoding.c"},"2":{name:"punctuation.definition.string.begin.assembly.c"}},end:"(\")",endCaptures:{"1":{name:"punctuation.definition.string.end.assembly.c"}},patterns:[{include:"source.asm"},{include:"source.x86"},{include:"source.x86_64"},{include:"source.arm"},{include:"#backslash_escapes"},{include:"#string_escaped_char"}]},{begin:"(\\()",beginCaptures:{"1":{name:"punctuation.section.parens.begin.bracket.round.assembly.inner.c"}},end:"(\\))",endCaptures:{"1":{name:"punctuation.section.parens.end.bracket.round.assembly.inner.c"}},patterns:[{include:"#evaluation_context"}]},{match:"\\[((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))([a-zA-Z_]\\w*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))\\]",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.c punctuation.definition.comment.begin.c"},"3":{name:"comment.block.c"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.c punctuation.definition.comment.end.c"},{match:"\\*",name:"comment.block.c"}]},"5":{name:"variable.other.asm.label.c"},"6":{patterns:[{include:"#inline_comment"}]},"7":{name:"comment.block.c punctuation.definition.comment.begin.c"},"8":{name:"comment.block.c"},"9":{patterns:[{match:"\\*\\/",name:"comment.block.c punctuation.definition.comment.end.c"},{match:"\\*",name:"comment.block.c"}]}}},{match:":",name:"punctuation.separator.delimiter.colon.assembly.c"},{include:"#comments"}]}]}]},string_escaped_char:{patterns:[{match:"(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3]\\d{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )",name:"constant.character.escape.c"},{match:"\\\\.",name:"invalid.illegal.unknown-escape.c"}]},string_placeholder:{patterns:[{match:"(?x) %\n(\\d+\\$)?\t\t\t\t\t\t # field (argument #)\n[#0\\- +']*\t\t\t\t\t\t # flags\n[,;:_]?\t\t\t\t\t\t\t # separator character (AltiVec)\n((-?\\d+)|\\*(-?\\d+\\$)?)?\t\t # minimum field width\n(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?\t# precision\n(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n[diouxXDOUeEfFgGaACcSspn%]\t\t # conversion type",name:"constant.other.placeholder.c"},{match:"(%)(?!\"\\s*(PRI|SCN))",captures:{"1":{name:"invalid.illegal.placeholder.c"}}}]},strings:{patterns:[{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.c"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.c"}},name:"string.quoted.double.c",patterns:[{include:"#string_escaped_char"},{include:"#string_placeholder"},{include:"#line_continuation_character"}]},{begin:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.c"}},end:"'",endCaptures:{"0":{name:"punctuation.definition.string.end.c"}},name:"string.quoted.single.c",patterns:[{include:"#string_escaped_char"},{include:"#line_continuation_character"}]}]},switch_conditional_parentheses:{name:"meta.conditional.switch.c",begin:"((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(\\()",beginCaptures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.c punctuation.definition.comment.begin.c"},"3":{name:"comment.block.c"},"4":{patterns:[{match:"\\*\\/",name:"comment.block.c punctuation.definition.comment.end.c"},{match:"\\*",name:"comment.block.c"}]},"5":{name:"punctuation.section.parens.begin.bracket.round.conditional.switch.c"}},end:"(\\))",endCaptures:{"1":{name:"punctuation.section.parens.end.bracket.round.conditional.switch.c"}},patterns:[{include:"#evaluation_context"},{include:"#c_conditional_context"}]},switch_statement:{name:"meta.block.switch.c",begin:"(((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?|\\?\\?>)|(?=[;>\\[\\]=]))",patterns:[{name:"meta.head.switch.c",begin:"\\G ?",end:"((?:\\{|<%|\\?\\?<|(?=;)))",endCaptures:{"1":{name:"punctuation.section.block.begin.bracket.curly.switch.c"}},patterns:[{include:"#switch_conditional_parentheses"},{include:"$self"}]},{name:"meta.body.switch.c",begin:"(?<=\\{|<%|\\?\\?<)",end:"(\\}|%>|\\?\\?>)",endCaptures:{"1":{name:"punctuation.section.block.end.bracket.curly.switch.c"}},patterns:[{include:"#default_statement"},{include:"#case_statement"},{include:"$self"},{include:"#block_innards"}]},{name:"meta.tail.switch.c",begin:"(?<=\\}|%>|\\?\\?>)[\\s\\n]*",end:"[\\s\\n]*(?=;)",patterns:[{include:"$self"}]}]},vararg_ellipses:{match:"(?|<|>=|<=",name:"keyword.operator.comparison.cadence"},{match:"\\?\\?",name:"keyword.operator.coalescing.cadence"},{match:"&&|\\|\\|",name:"keyword.operator.logical.cadence"},{match:"[?!]",name:"keyword.operator.type.optional.cadence"}]},keywords:{patterns:[{match:"(?&|\\^~.])(:)(?![/=\\-+!*%<>&|\\^~.])\\s*",beginCaptures:{"1":{name:"keyword.operator.function-result.cadence"}},end:"(?!\\G)(?=\\{|;)|$",name:"meta.function-result.cadence",patterns:[{include:"#type"}]},expressions:{patterns:[{include:"#comments"},{include:"#function-call-expression"},{include:"#literals"},{include:"#operators"},{include:"#language-variables"}]},"language-variables":{patterns:[{match:"\\b(self)\\b",name:"variable.language.cadence"}]},"function-call-expression":{patterns:[{begin:"(?!(?:set|init))([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)\\s*(\\()",beginCaptures:{"1":{name:"support.function.any-method.cadence"},"4":{name:"punctuation.definition.arguments.begin.cadence"}},comment:"foo(args) -- a call whose callee is a highlightable name",end:"\\)",endCaptures:{"0":{name:"punctuation.definition.arguments.end.cadence"}},name:"meta.function-call.cadence",patterns:[{include:"#expression-element-list"}]}]},"expression-element-list":{patterns:[{include:"#comments"},{begin:"([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)\\s*(:)",beginCaptures:{"1":{name:"support.function.any-method.cadence"},"2":{name:"punctuation.separator.argument-label.cadence"}},comment:"an element with a label",end:"(?=[,)\\]])",patterns:[{include:"#expressions"}]},{begin:"(?![,)\\]])(?=\\S)",comment:"an element without a label (i.e. anything else)",end:"(?=[,)\\]])",patterns:[{include:"#expressions"}]}]},declarations:{patterns:[{include:"#var-let-declaration"},{include:"#function"},{include:"#initializer"}]},"var-let-declaration":{begin:"\\b(var|let)\\b\\s+([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)",beginCaptures:{"1":{name:"storage.type.$1.cadence"},"2":{name:"entity.name.type.$1.cadence"}},end:"=|<-|<-!|$",patterns:[{include:"#type"}]},type:{patterns:[{include:"#comments"},{match:"([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)",name:"storage.type.cadence"}]},"parameter-clause":{begin:"(\\()",beginCaptures:{"1":{name:"punctuation.definition.parameters.begin.cadence"}},end:"(\\))",endCaptures:{"1":{name:"punctuation.definition.parameters.end.cadence"}},name:"meta.parameter-clause.cadence",patterns:[{include:"#parameter-list"}]},"parameter-list":{patterns:[{match:"([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)\\s+([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)(?=\\s*:)",captures:{"1":{name:"entity.name.function.cadence"},"2":{name:"variable.parameter.function.cadence"}},comment:"External parameter labels are considered part of the function name"},{match:"(([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*))(?=\\s*:)",captures:{"1":{name:"variable.parameter.function.cadence"},"2":{name:"entity.name.function.cadence"}},comment:"If no external label is given, the name is both the external label and the internal variable name"},{begin:":\\s*(?!\\s)",end:"(?=[,)])",patterns:[{include:"#type"},{match:":",name:"invalid.illegal.extra-colon-in-parameter-list.cadence"}]}]},event:{begin:"\\b(event)\\b\\s+([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)\\s*",beginCaptures:{"1":{name:"storage.type.event.cadence"},"2":{name:"entity.name.type.event.cadence"}},end:"(?<=\\))|$",name:"meta.definition.type.event.cadence",patterns:[{include:"#comments"},{include:"#parameter-clause"}]},composite:{begin:"\\b((?:(?:struct|resource|contract)(?:\\s+interface)?)|transaction|enum)\\s+([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)",beginCaptures:{"1":{name:"storage.type.$1.cadence"},"2":{name:"entity.name.type.$1.cadence"}},end:"(?<=\\})",name:"meta.definition.type.composite.cadence",patterns:[{include:"#comments"},{include:"#conformance-clause"},{begin:"\\{",beginCaptures:{"0":{name:"punctuation.definition.type.begin.cadence"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.type.end.cadence"}},name:"meta.definition.type.body.cadence",patterns:[{include:"$self"}]}]},"conformance-clause":{begin:"(:)(?=\\s*\\{)|(:)\\s*",beginCaptures:{"1":{name:"invalid.illegal.empty-conformance-clause.cadence"},"2":{name:"punctuation.separator.conformance-clause.cadence"}},end:"(?!\\G)$|(?=[={}])",name:"meta.conformance-clause.cadence",patterns:[{begin:"\\G",end:"(?!\\G)$|(?=[={}])",patterns:[{include:"#comments"},{include:"#type"}]}]}},name:"cadence"}; + +export { cadence_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/clarity.tmLanguage-cefd551b.mjs b/docs/shiki/dist/languages/clarity.tmLanguage-cefd551b.mjs new file mode 100644 index 00000000..5f024b2b --- /dev/null +++ b/docs/shiki/dist/languages/clarity.tmLanguage-cefd551b.mjs @@ -0,0 +1,3 @@ +var clarity_tmLanguage = {$schema:"https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",name:"clarity",scopeName:"source.clar",uuid:"f9e9871d-2ea6-4be0-afd2-fc382d704716",patterns:[{include:"#expression"},{include:"#define-constant"},{include:"#define-data-var"},{include:"#define-map"},{include:"#define-function"},{include:"#define-fungible-token"},{include:"#define-non-fungible-token"},{include:"#define-trait"},{include:"#use-trait"}],repository:{comment:{name:"comment.line.semicolon.clarity",match:"(?x) (?<=^|[()\\[\\]{}\",'`;\\s]) (;) .* $"},expression:{patterns:[{include:"#comment"},{include:"#keyword"},{include:"#literal"},{include:"#let-func"},{include:"#built-in-func"},{include:"#get-set-func"}]},keyword:{name:"constant.language.clarity",match:"(?\\=|<|>|\\*|/|and|append|as-contract|as-max-len\\?|asserts!|at-block|begin|bit-and|bit-not|bit-or|bit-shift-left|bit-shift-right|bit-xor|buff-to-int-be|buff-to-int-le|buff-to-uint-be|buff-to-uint-le|concat|contract-call\\?|contract-of|default-to|element-at|element-at\\?|filter|fold|from-consensus-buff\\?|ft-burn\\?|ft-get-balance|ft-get-supply|ft-mint\\?|ft-transfer\\?|get-block-info\\?|get-burn-block-info\\?|hash160|if|impl-trait|index-of|index-of\\?|int-to-ascii|int-to-utf8|is-eq|is-err|is-none|is-ok|is-some|is-standard|keccak256|len|log2|map|match|merge|mod|nft-burn\\?|nft-get-owner\\?|nft-mint\\?|nft-transfer\\?|not|or|pow|principal-construct\\?|principal-destruct\\?|principal-of\\?|print|replace-at\\?|secp256k1-recover\\?|secp256k1-verify|sha256|sha512|sha512/256|slice\\?|sqrti|string-to-int\\?|string-to-uint\\?|stx-account|stx-burn\\?|stx-get-balance|stx-transfer-memo\\?|stx-transfer\\?|to-consensus-buff\\?|to-int|to-uint|try!|unwrap!|unwrap-err!|unwrap-err-panic|unwrap-panic|xor) \\s+",end:"(\\))",beginCaptures:{"1":{name:"punctuation.built-in-function.start.clarity"},"2":{name:"keyword.declaration.built-in-function.clarity"}},endCaptures:{"1":{name:"punctuation.built-in-function.end.clarity"}},name:"meta.built-in-function",patterns:[{include:"#expression"},{include:"#user-func"}]},"get-set-func":{name:"meta.get-set-func",begin:"(?x) (\\() \\s* (var-get|var-set|map-get\\?|map-set|map-insert|map-delete|get) \\s+ ([a-zA-Z][\\w\\?\\!\\-]*) \\s*",end:"(\\))",beginCaptures:{"1":{name:"punctuation.get-set-func.start.clarity"},"2":{name:"keyword.control.clarity"},"3":{name:"variable.other.clarity"}},endCaptures:{"1":{name:"punctuation.get-set-func.end.clarity"}},patterns:[{include:"#expression"}]},"let-func":{begin:"(?x) (\\() \\s* (let) \\s*",end:"(\\))",beginCaptures:{"1":{name:"punctuation.let-function.start.clarity"},"2":{name:"keyword.declaration.let-function.clarity"}},endCaptures:{"1":{name:"punctuation.let-function.end.clarity"}},name:"meta.let-function",patterns:[{include:"#expression"},{include:"#user-func"},{begin:"(?x) (\\() \\s*",end:"(\\))",beginCaptures:{"1":{name:"punctuation.let-var.start.clarity"}},endCaptures:{"1":{name:"punctuation.let-var.end.clarity"}},name:"meta.let-var",patterns:[{begin:"(?x) (\\() ([a-zA-Z][\\w\\?\\!\\-]*) \\s+",end:"(\\))",beginCaptures:{"1":{name:"punctuation.let-local-var.start.clarity"},"2":{name:"entity.name.let-local-var-name.clarity variable.parameter.clarity"}},endCaptures:{"1":{name:"punctuation.let-local-var.end.clarity"}},name:"meta.let-local-var",patterns:[{include:"#expression"},{include:"#user-func"}]},{include:"#expression"}]}]},"user-func":{begin:"(?x) (\\() \\s* (([a-zA-Z][\\w\\?\\!\\-]*)) \\s*",end:"(\\))",beginCaptures:{"1":{name:"punctuation.user-function.start.clarity"},"2":{name:"entity.name.function.clarity"}},endCaptures:{"1":{name:"punctuation.user-function.end.clarity"}},name:"meta.user-function",patterns:[{include:"#expression"},{include:"$self"}]}}}; + +export { clarity_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/clojure.tmLanguage-29296e29.mjs b/docs/shiki/dist/languages/clojure.tmLanguage-29296e29.mjs new file mode 100644 index 00000000..14b9caa0 --- /dev/null +++ b/docs/shiki/dist/languages/clojure.tmLanguage-29296e29.mjs @@ -0,0 +1,3 @@ +var clojure_tmLanguage = {information_for_contributors:["This file has been converted from https://github.com/atom/language-clojure/blob/master/grammars/clojure.cson","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."],version:"https://github.com/atom/language-clojure/commit/45bdb881501d0b8f8b707ca1d3fcc8b4b99fca03",name:"clojure",scopeName:"source.clojure",patterns:[{include:"#comment"},{include:"#shebang-comment"},{include:"#quoted-sexp"},{include:"#sexp"},{include:"#keyfn"},{include:"#string"},{include:"#vector"},{include:"#set"},{include:"#map"},{include:"#regexp"},{include:"#var"},{include:"#constants"},{include:"#dynamic-variables"},{include:"#metadata"},{include:"#namespace-symbol"},{include:"#symbol"}],repository:{comment:{begin:"(?\\<\\/\\!\\?\\*]+(?=(\\s|\\)|\\]|\\}|\\,))",name:"constant.keyword.clojure"},keyfn:{patterns:[{match:"(?<=(\\s|\\(|\\[|\\{))(if(-[-\\p{Ll}\\?]*)?|when(-[-\\p{Ll}]*)?|for(-[-\\p{Ll}]*)?|cond|do|let(-[-\\p{Ll}\\?]*)?|binding|loop|recur|fn|throw[\\p{Ll}\\-]*|try|catch|finally|([\\p{Ll}]*case))(?=(\\s|\\)|\\]|\\}))",name:"storage.control.clojure"},{match:"(?<=(\\s|\\(|\\[|\\{))(declare-?|(in-)?ns|import|use|require|load|compile|(def[\\p{Ll}\\-]*))(?=(\\s|\\)|\\]|\\}))",name:"keyword.control.clojure"}]},"dynamic-variables":{match:"\\*[\\w\\.\\-\\_\\:\\+\\=\\>\\<\\!\\?\\d]+\\*",name:"meta.symbol.dynamic.clojure"},map:{begin:"(\\{)",beginCaptures:{"1":{name:"punctuation.section.map.begin.clojure"}},end:"(\\}(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\})",endCaptures:{"1":{name:"punctuation.section.map.end.trailing.clojure"},"2":{name:"punctuation.section.map.end.clojure"}},name:"meta.map.clojure",patterns:[{include:"$self"}]},metadata:{patterns:[{begin:"(\\^\\{)",beginCaptures:{"1":{name:"punctuation.section.metadata.map.begin.clojure"}},end:"(\\}(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\})",endCaptures:{"1":{name:"punctuation.section.metadata.map.end.trailing.clojure"},"2":{name:"punctuation.section.metadata.map.end.clojure"}},name:"meta.metadata.map.clojure",patterns:[{include:"$self"}]},{begin:"(\\^)",end:"(\\s)",name:"meta.metadata.simple.clojure",patterns:[{include:"#keyword"},{include:"$self"}]}]},"quoted-sexp":{begin:"(['``]\\()",beginCaptures:{"1":{name:"punctuation.section.expression.begin.clojure"}},end:"(\\))$|(\\)(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\))",endCaptures:{"1":{name:"punctuation.section.expression.end.trailing.clojure"},"2":{name:"punctuation.section.expression.end.trailing.clojure"},"3":{name:"punctuation.section.expression.end.clojure"}},name:"meta.quoted-expression.clojure",patterns:[{include:"$self"}]},regexp:{begin:"#\"",beginCaptures:{"0":{name:"punctuation.definition.regexp.begin.clojure"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.regexp.end.clojure"}},name:"string.regexp.clojure",patterns:[{include:"#regexp_escaped_char"}]},regexp_escaped_char:{match:"\\\\.",name:"constant.character.escape.clojure"},set:{begin:"(\\#\\{)",beginCaptures:{"1":{name:"punctuation.section.set.begin.clojure"}},end:"(\\}(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\})",endCaptures:{"1":{name:"punctuation.section.set.end.trailing.clojure"},"2":{name:"punctuation.section.set.end.clojure"}},name:"meta.set.clojure",patterns:[{include:"$self"}]},sexp:{begin:"(\\()",beginCaptures:{"1":{name:"punctuation.section.expression.begin.clojure"}},end:"(\\))$|(\\)(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\))",endCaptures:{"1":{name:"punctuation.section.expression.end.trailing.clojure"},"2":{name:"punctuation.section.expression.end.trailing.clojure"},"3":{name:"punctuation.section.expression.end.clojure"}},name:"meta.expression.clojure",patterns:[{begin:"(?<=\\()(ns|declare|def[\\w\\d._:+=>\\<\\!\\?\\*][\\w\\.\\-\\_\\:\\+\\=\\>\\<\\!\\?\\*\\d]*)",name:"entity.global.clojure"},{include:"$self"}]},{include:"#keyfn"},{include:"#constants"},{include:"#vector"},{include:"#map"},{include:"#set"},{include:"#sexp"},{match:"(?<=\\()(.+?)(?=\\s|\\))",captures:{"1":{name:"entity.name.function.clojure"}},patterns:[{include:"$self"}]},{include:"$self"}]},"shebang-comment":{begin:"^(#!)",beginCaptures:{"1":{name:"punctuation.definition.comment.shebang.clojure"}},end:"$",name:"comment.line.shebang.clojure"},string:{begin:"(?\\<\\!\\?\\*][\\w\\.\\-\\_\\:\\+\\=\\>\\<\\!\\?\\*\\d]*)/",captures:{"1":{name:"meta.symbol.namespace.clojure"}}}]},symbol:{patterns:[{match:"([\\p{L}\\.\\-\\_\\+\\=\\>\\<\\!\\?\\*][\\w\\.\\-\\_\\:\\+\\=\\>\\<\\!\\?\\*\\d]*)",name:"meta.symbol.clojure"}]},"var":{match:"(?<=(\\s|\\(|\\[|\\{)\\#)'[\\w\\.\\-\\_\\:\\+\\=\\>\\<\\/\\!\\?\\*]+(?=(\\s|\\)|\\]|\\}))",name:"meta.var.clojure"},vector:{begin:"(\\[)",beginCaptures:{"1":{name:"punctuation.section.vector.begin.clojure"}},end:"(\\](?=[\\}\\]\\)\\s]*(?:;|$)))|(\\])",endCaptures:{"1":{name:"punctuation.section.vector.end.trailing.clojure"},"2":{name:"punctuation.section.vector.end.clojure"}},name:"meta.vector.clojure",patterns:[{include:"$self"}]}}}; + +export { clojure_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/cmake.tmLanguage-3ea35bc8.mjs b/docs/shiki/dist/languages/cmake.tmLanguage-3ea35bc8.mjs new file mode 100644 index 00000000..4a316b42 --- /dev/null +++ b/docs/shiki/dist/languages/cmake.tmLanguage-3ea35bc8.mjs @@ -0,0 +1,3 @@ +var cmake_tmLanguage = {fileTypes:["cmake","CMakeLists.txt"],name:"cmake",patterns:[{comment:"Variables That Describe the System",match:"\\b(?i:APPLE|BORLAND|(CMAKE_)?(CL_64|COMPILER_2005|HOST_APPLE|HOST_SYSTEM|HOST_SYSTEM_NAME|HOST_SYSTEM_PROCESSOR|HOST_SYSTEM_VERSION|HOST_UNIX|HOST_WIN32|LIBRARY_ARCHITECTURE|LIBRARY_ARCHITECTURE_REGEX|OBJECT_PATH_MAX|SYSTEM|SYSTEM_NAME|SYSTEM_PROCESSOR|SYSTEM_VERSION)|CYGWIN|MSVC|MSVC80|MSVC_IDE|MSVC_VERSION|UNIX|WIN32|XCODE_VERSION|MSVC60|MSVC70|MSVC90|MSVC71)\\b",name:"constant.source.cmake"},{comment:"cmakeOperators",match:"\\b(?i:ABSOLUTE|AND|BOOL|CACHE|COMMAND|COMMENT|DEFINED|DOC|EQUAL|EXISTS|EXT|FALSE|GREATER|GREATER_EQUAL|INTERNAL|IN_LIST|IS_ABSOLUTE|IS_DIRECTORY|IS_NEWER_THAN|IS_SYMLINK|LESS|LESS_EQUAL|MATCHES|NAME|NAMES|NAME_WE|NOT|OFF|ON|OR|PATH|PATHS|POLICY|PROGRAM|STREQUAL|STRGREATER|STRGREATER_EQUAL|STRING|STRLESS|STRLESS_EQUAL|TARGET|TEST|TRUE|VERSION_EQUAL|VERSION_GREATER|VERSION_GREATER_EQUAL|VERSION_LESS)\\b",name:"keyword.cmake"},{comment:"Commands",match:"^\\s*\\b(?i:add_compile_options|add_custom_command|add_custom_target|add_definitions|add_dependencies|add_executable|add_library|add_subdirectory|add_test|aux_source_directory|break|build_command|build_name|cmake_host_system_information|cmake_minimum_required|cmake_policy|configure_file|continue|create_test_sourcelist|ctest_build|ctest_configure|ctest_coverage|ctest_empty_binary_directory|ctest_memcheck|ctest_read_custom_files|ctest_run_script|ctest_sleep|ctest_start|ctest_submit|ctest_test|ctest_update|ctest_upload|define_property|else|elseif|enable_language|enable_testing|endforeach|endfunction|endif|endmacro|endwhile|exec_program|execute_process|export|export_library_dependencies|file|find_file|find_library|find_package|find_path|find_program|fltk_wrap_ui|foreach|function|get_cmake_property|get_directory_property|get_filename_component|get_property|get_source_file_property|get_target_property|get_test_property|if|include|include_directories|include_external_msproject|include_regular_expression|install|install_files|install_programs|install_targets|link_directories|link_libraries|list|load_cache|load_command|macro|make_directory|mark_as_advanced|math|message|option|output_required_files|project|qt_wrap_cpp|qt_wrap_ui|remove|remove_definitions|return|separate_arguments|set|set_directory_properties|set_property|set_source_files_properties|set_target_properties|set_tests_properties|site_name|source_group|string|subdir_depends|subdirs|target_compile_definitions|target_compile_features|target_compile_options|target_include_directories|target_link_libraries|target_sources|try_compile|try_run|unset|use_mangled_mesa|utility_source|variable_requires|variable_watch|while|write_file)\\b",name:"keyword.cmake"},{comment:"Variables That Change Behavior",match:"\\b(?i:BUILD_SHARED_LIBS|(CMAKE_)?(ABSOLUTE_DESTINATION_FILES|AUTOMOC_RELAXED_MODE|BACKWARDS_COMPATIBILITY|BUILD_TYPE|COLOR_MAKEFILE|CONFIGURATION_TYPES|DEBUG_TARGET_PROPERTIES|DISABLE_FIND_PACKAGE_\\w+|FIND_LIBRARY_PREFIXES|FIND_LIBRARY_SUFFIXES|IGNORE_PATH|INCLUDE_PATH|INSTALL_DEFAULT_COMPONENT_NAME|INSTALL_PREFIX|LIBRARY_PATH|MFC_FLAG|MODULE_PATH|NOT_USING_CONFIG_FLAGS|POLICY_DEFAULT_CMP\\w+|PREFIX_PATH|PROGRAM_PATH|SKIP_INSTALL_ALL_DEPENDENCY|SYSTEM_IGNORE_PATH|SYSTEM_INCLUDE_PATH|SYSTEM_LIBRARY_PATH|SYSTEM_PREFIX_PATH|SYSTEM_PROGRAM_PATH|USER_MAKE_RULES_OVERRIDE|WARN_ON_ABSOLUTE_INSTALL_DESTINATION))\\b",name:"variable.source.cmake"},{match:"\\$\\{\\w+\\}",name:"storage.source.cmake"},{match:"\\$ENV\\{\\w+\\}",name:"storage.source.cmake"},{comment:"Variables that Control the Build",match:"\\b(?i:(CMAKE_)?(\\w+_POSTFIX|ARCHIVE_OUTPUT_DIRECTORY|AUTOMOC|AUTOMOC_MOC_OPTIONS|BUILD_WITH_INSTALL_RPATH|DEBUG_POSTFIX|EXE_LINKER_FLAGS|EXE_LINKER_FLAGS_\\w+|Fortran_FORMAT|Fortran_MODULE_DIRECTORY|GNUtoMS|INCLUDE_CURRENT_DIR|INCLUDE_CURRENT_DIR_IN_INTERFACE|INSTALL_NAME_DIR|INSTALL_RPATH|INSTALL_RPATH_USE_LINK_PATH|LIBRARY_OUTPUT_DIRECTORY|LIBRARY_PATH_FLAG|LINK_DEF_FILE_FLAG|LINK_DEPENDS_NO_SHARED|LINK_INTERFACE_LIBRARIES|LINK_LIBRARY_FILE_FLAG|LINK_LIBRARY_FLAG|MACOSX_BUNDLE|NO_BUILTIN_CHRPATH|PDB_OUTPUT_DIRECTORY|POSITION_INDEPENDENT_CODE|RUNTIME_OUTPUT_DIRECTORY|SKIP_BUILD_RPATH|SKIP_INSTALL_RPATH|TRY_COMPILE_CONFIGURATION|USE_RELATIVE_PATHS|WIN32_EXECUTABLE)|EXECUTABLE_OUTPUT_PATH|LIBRARY_OUTPUT_PATH)\\b",name:"variable.source.cmake"},{comment:"Variables that Provide Information",match:"\\b(?i:CMAKE_(AR|ARGC|ARGV0|BINARY_DIR|BUILD_TOOL|CACHEFILE_DIR|CACHE_MAJOR_VERSION|CACHE_MINOR_VERSION|CACHE_PATCH_VERSION|CFG_INTDIR|COMMAND|CROSSCOMPILING|CTEST_COMMAND|CURRENT_BINARY_DIR|CURRENT_LIST_DIR|CURRENT_LIST_FILE|CURRENT_LIST_LINE|CURRENT_SOURCE_DIR|DL_LIBS|EDIT_COMMAND|EXECUTABLE_SUFFIX|EXTRA_GENERATOR|EXTRA_SHARED_LIBRARY_SUFFIXES|GENERATOR|HOME_DIRECTORY|IMPORT_LIBRARY_PREFIX|IMPORT_LIBRARY_SUFFIX|LINK_LIBRARY_SUFFIX|MAJOR_VERSION|MAKE_PROGRAM|MINOR_VERSION|PARENT_LIST_FILE|PATCH_VERSION|PROJECT_NAME|RANLIB|ROOT|SCRIPT_MODE_FILE|SHARED_LIBRARY_PREFIX|SHARED_LIBRARY_SUFFIX|SHARED_MODULE_PREFIX|SHARED_MODULE_SUFFIX|SIZEOF_VOID_P|SKIP_RPATH|SOURCE_DIR|STANDARD_LIBRARIES|STATIC_LIBRARY_PREFIX|STATIC_LIBRARY_SUFFIX|TWEAK_VERSION|USING_VC_FREE_TOOLS|VERBOSE_MAKEFILE|VERSION)|PROJECT_BINARY_DIR|PROJECT_NAME|PROJECT_SOURCE_DIR|\\w+_BINARY_DIR|\\w+__SOURCE_DIR)\\b",name:"variable.source.cmake"},{comment:"BracketArgs",begin:"#\\[(=*)\\[",end:"\\]\\1\\]",name:"comment.source.cmake",patterns:[{match:"\\\\(.|$)",name:"constant.character.escape"}]},{comment:"BracketArgs",begin:"\\[(=*)\\[",end:"\\]\\1\\]",name:"argument.source.cmake",patterns:[{match:"\\\\(.|$)",name:"constant.character.escape"}]},{match:"#+.*$",name:"comment.source.cmake"},{comment:"Properties on Cache Entries",match:"\\b(?i:ADVANCED|HELPSTRING|MODIFIED|STRINGS|TYPE|VALUE)\\b",name:"entity.source.cmake"},{comment:"Properties on Source Files",match:"\\b(?i:ABSTRACT|COMPILE_DEFINITIONS|COMPILE_DEFINITIONS_|COMPILE_FLAGS|EXTERNAL_OBJECT|Fortran_FORMAT|GENERATED|HEADER_FILE_ONLY|KEEP_EXTENSION|LABELS|LANGUAGE|LOCATION|MACOSX_PACKAGE_LOCATION|OBJECT_DEPENDS|OBJECT_OUTPUTS|SYMBOLIC|WRAP_EXCLUDE)\\b",name:"entity.source.cmake"},{comment:"Properties on Tests",match:"\\b(?i:ATTACHED_FILES|ATTACHED_FILES_ON_FAIL|COST|DEPENDS|ENVIRONMENT|FAIL_REGULAR_EXPRESSION|LABELS|MEASUREMENT|PASS_REGULAR_EXPRESSION|PROCESSORS|REQUIRED_FILES|RESOURCE_LOCK|RUN_SERIAL|TIMEOUT|WILL_FAIL|WORKING_DIRECTORY)\\b",name:"entity.source.cmake"},{comment:"Properties on Directories",match:"\\b(?i:ADDITIONAL_MAKE_CLEAN_FILES|CACHE_VARIABLES|CLEAN_NO_CUSTOM|COMPILE_DEFINITIONS|COMPILE_DEFINITIONS_\\w+|DEFINITIONS|EXCLUDE_FROM_ALL|IMPLICIT_DEPENDS_INCLUDE_TRANSFORM|INCLUDE_DIRECTORIES|INCLUDE_REGULAR_EXPRESSION|INTERPROCEDURAL_OPTIMIZATION|INTERPROCEDURAL_OPTIMIZATION_\\w+|LINK_DIRECTORIES|LISTFILE_STACK|MACROS|PARENT_DIRECTORY|RULE_LAUNCH_COMPILE|RULE_LAUNCH_CUSTOM|RULE_LAUNCH_LINK|TEST_INCLUDE_FILE|VARIABLES|VS_GLOBAL_SECTION_POST_\\w+|VS_GLOBAL_SECTION_PRE_\\w+)\\b",name:"entity.source.cmake"},{comment:"Properties of Global Scope",match:"\\b(?i:ALLOW_DUPLICATE_CUSTOM_TARGETS|DEBUG_CONFIGURATIONS|DISABLED_FEATURES|ENABLED_FEATURES|ENABLED_LANGUAGES|FIND_LIBRARY_USE_LIB64_PATHS|FIND_LIBRARY_USE_OPENBSD_VERSIONING|GLOBAL_DEPENDS_DEBUG_MODE|GLOBAL_DEPENDS_NO_CYCLES|IN_TRY_COMPILE|PACKAGES_FOUND|PACKAGES_NOT_FOUND|PREDEFINED_TARGETS_FOLDER|REPORT_UNDEFINED_PROPERTIES|RULE_LAUNCH_COMPILE|RULE_LAUNCH_CUSTOM|RULE_LAUNCH_LINK|RULE_MESSAGES|TARGET_ARCHIVES_MAY_BE_SHARED_LIBS|TARGET_SUPPORTS_SHARED_LIBS|USE_FOLDERS|__CMAKE_DELETE_CACHE_CHANGE_VARS_)\\b",name:"entity.source.cmake"},{comment:"Properties on Targets",match:"\\b(?i:\\w+_(OUTPUT_NAME|POSTFIX)|ARCHIVE_OUTPUT_(DIRECTORY(_\\w+)?|NAME(_\\w+)?)|AUTOMOC(_MOC_OPTIONS)?|BUILD_WITH_INSTALL_RPATH|BUNDLE|BUNDLE(_EXTENSION)?|COMPATIBLE_INTERFACE_BOOL|COMPATIBLE_INTERFACE_STRING|COMPILE_(DEFINITIONS(_\\w+)?|FLAGS)|DEBUG_POSTFIX|DEFINE_SYMBOL|ENABLE_EXPORTS|EXCLUDE_FROM_ALL|EchoString|FOLDER|FRAMEWORK|Fortran_(FORMAT|MODULE_DIRECTORY)|GENERATOR_FILE_NAME|GNUtoMS|HAS_CXX|IMPLICIT_DEPENDS_INCLUDE_TRANSFORM|IMPORTED|IMPORTED_(CONFIGURATIONS|IMPLIB(_\\w+)?|LINK_DEPENDENT_LIBRARIES(_\\w+)?|LINK_INTERFACE_LANGUAGES(_\\w+)?|LINK_INTERFACE_LIBRARIES(_\\w+)?|LINK_INTERFACE_MULTIPLICITY(_\\w+)?|LOCATION(_\\w+)?|NO_SONAME(_\\w+)?|SONAME(_\\w+)?)|IMPORT_PREFIX|IMPORT_SUFFIX|INSTALL_NAME_DIR|INSTALL_RPATH|INSTALL_RPATH_USE_LINK_PATH|INTERFACE|INTERFACE_COMPILE_DEFINITIONS|INTERFACE_INCLUDE_DIRECTORIES|INTERPROCEDURAL_OPTIMIZATION|INTERPROCEDURAL_OPTIMIZATION_\\w+|LABELS|LIBRARY_OUTPUT_DIRECTORY(_\\w+)?|LIBRARY_OUTPUT_NAME(_\\w+)?|LINKER_LANGUAGE|LINK_DEPENDS|LINK_FLAGS(_\\w+)?|LINK_INTERFACE_LIBRARIES(_\\w+)?|LINK_INTERFACE_MULTIPLICITY(_\\w+)?|LINK_LIBRARIES|LINK_SEARCH_END_STATIC|LINK_SEARCH_START_STATIC|LOCATION(_\\w+)?|MACOSX_BUNDLE|MACOSX_BUNDLE_INFO_PLIST|MACOSX_FRAMEWORK_INFO_PLIST|MAP_IMPORTED_CONFIG_\\w+|NO_SONAME|OSX_ARCHITECTURES(_\\w+)?|OUTPUT_NAME(_\\w+)?|PDB_NAME(_\\w+)?|POST_INSTALL_SCRIPT|PREFIX|PRE_INSTALL_SCRIPT|PRIVATE|PRIVATE_HEADER|PROJECT_LABEL|PUBLIC|PUBLIC_HEADER|RESOURCE|RULE_LAUNCH_(COMPILE|CUSTOM|LINK)|RUNTIME_OUTPUT_(DIRECTORY(_\\w+)?|NAME(_\\w+)?)|SKIP_BUILD_RPATH|SOURCES|SOVERSION|STATIC_LIBRARY_FLAGS(_\\w+)?|SUFFIX|TYPE|VERSION|VS_DOTNET_REFERENCES|VS_GLOBAL_(\\w+|KEYWORD|PROJECT_TYPES)|VS_KEYWORD|VS_SCC_(AUXPATH|LOCALPATH|PROJECTNAME|PROVIDER)|VS_WINRT_EXTENSIONS|VS_WINRT_REFERENCES|WIN32_EXECUTABLE|XCODE_ATTRIBUTE_\\w+)\\b",name:"entity.source.cmake"},{comment:"Escaped Strings",begin:"\\\\\"",end:"\\\\\"",name:"string.source.cmake",patterns:[{match:"\\\\(.|$)",name:"constant.character.escape"}]},{comment:"Normal Strings",begin:"\"",end:"\"",name:"string.source.cmake",patterns:[{match:"\\\\(.|$)",name:"constant.character.escape"}]},{comment:"Derecated keyword",match:"\\bBUILD_NAME\\b",name:"invalid.deprecated.source.cmake"},{comment:"Compiler Flags",match:"\\b(?i:(CMAKE_)?(CXX_FLAGS|CMAKE_CXX_FLAGS_DEBUG|CMAKE_CXX_FLAGS_MINSIZEREL|CMAKE_CXX_FLAGS_RELEASE|CMAKE_CXX_FLAGS_RELWITHDEBINFO))\\b",name:"variable.source.cmake"}],repository:{},scopeName:"source.cmake",uuid:"7aed2d59-22d9-41c8-ba9e-4f178191e380"}; + +export { cmake_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/cobol.tmLanguage-1aadb5b9.mjs b/docs/shiki/dist/languages/cobol.tmLanguage-1aadb5b9.mjs new file mode 100644 index 00000000..8e2da55f --- /dev/null +++ b/docs/shiki/dist/languages/cobol.tmLanguage-1aadb5b9.mjs @@ -0,0 +1,3 @@ +var cobol_tmLanguage = {_copyright:"The MIT License (MIT)\nCopyright (c) 2015-2022 spgennard\nSource: https://github.com/spgennard/vscode_cobol/blob/main/syntaxes/COBOL.tmLanguage.json",$schema:"https://raw.githubusercontent.com/spgennard/vscode_cobol/main/schemas/tmlanguage.json",fileTypes:["ccp","scbl","cobol","cbl","cblle","cblsrce","cblcpy","lks","pdv","cpy","copybook","cobcopy","fd","sel","scb","scbl","sqlcblle","cob","dds","def","src","ss","wks","bib","pco"],name:"cobol",patterns:[{match:"(^[ \\*][ \\*][ \\*][ \\*][ \\*][ \\*])([dD]\\s.*$)",name:"token.info-token.cobol"},{match:"(^[ \\*][ \\*][ \\*][ \\*][ \\*][ \\*])(\\/.*$)",captures:{"1":{name:"constant.numeric.cobol"},"2":{name:"comment.line.cobol.newpage"}}},{match:"(^[ \\*][ \\*][ \\*][ \\*][ \\*][ \\*])(\\*.*$)",captures:{"1":{name:"constant.numeric.cobol"},"2":{name:"comment.line.cobol.fixed"}}},{match:"(^[0-9\\s][0-9\\s][0-9\\s][0-9\\s][0-9\\s][0-9\\s])(\\/.*$)",captures:{"1":{name:"constant.numeric.cobol"},"2":{name:"comment.line.cobol.newpage"}}},{match:"^[0-9\\s][0-9\\s][0-9\\s][0-9\\s][0-9\\s][0-9\\s]$",name:"constant.numeric.cobol"},{match:"(^[0-9\\s][0-9\\s][0-9\\s][0-9\\s][0-9\\s][0-9\\s])(\\*.*$)",captures:{"1":{name:"constant.numeric.cobol"},"2":{name:"comment.line.cobol.fixed"}}},{match:"(^[0-9a-zA-Z\\s\\$#%\\.@\\- ][0-9a-zA-Z\\s\\$#%\\.@\\- ][0-9a-zA-Z\\s\\$#%\\.@\\- ][0-9a-zA-Z\\s\\$#%\\.@\\- ][0-9a-zA-Z\\s\\$#%\\.@\\- ][0-9a-zA-Z\\s\\$#%\\.@\\- ])(\\*.*$)",captures:{"1":{name:"constant.cobol"},"2":{name:"comment.line.cobol.fixed"}}},{match:"^\\s+(78)\\s+([0-9a-zA-Z][a-zA-Z\\-0-9_]+)",captures:{"1":{name:"constant.numeric.cobol"},"2":{name:"variable.other.constant"}}},{match:"^\\s+([0-9]+)\\s+([0-9a-zA-Z][a-zA-Z\\-0-9_]+)\\s+((?i:constant))",captures:{"1":{name:"constant.numeric.cobol"},"2":{name:"variable.other.constant"},"3":{name:"keyword.identifers.cobol"}}},{match:"(^[0-9a-zA-Z\\s\\$#%\\.@][0-9a-zA-Z\\s\\$#%\\.@][0-9a-zA-Z\\s\\$#%\\.@][0-9a-zA-Z\\s\\$#%\\.@][0-9a-zA-Z\\s\\$#%\\.@][0-9a-zA-Z\\s\\$#%\\.@])(\\/.*$)",captures:{"1":{name:"constant.cobol"},"2":{name:"comment.line.cobol.newpage"}}},{match:"^\\*.*$",name:"comment.line.cobol.fixed"},{match:"((?:^|\\s+)(?i:\\$set)\\s+)((?i:constant)\\s+)([0-9a-zA-Z][a-zA-Z\\-0-9]+\\s*)([a-zA-Z\\-0-9]*)",captures:{"1":{name:"keyword.control.directive.conditional.cobol"},"2":{name:"entity.name.function.preprocessor.cobol"},"3":{name:"entity.name.function.cobol"},"4":{name:"keyword.control.directive.conditional.cobol"}}},{match:"((?i:\\$\\s*set\\s+)(ilusing)(\\()(.*)(\\)))",captures:{"1":{name:"entity.name.function.preprocessor.cobol"},"2":{name:"storage.modifier.import.cobol"},"3":{name:"punctuation.begin.bracket.round.cobol"},"4":{name:"string.quoted.other.cobol"},"5":{name:"punctuation.end.bracket.round.cobol"}}},{match:"((?i:\\$\\s*set\\s+)(ilusing)(\")(.*)(\"))",captures:{"1":{name:"entity.name.function.preprocessor.cobol"},"2":{name:"storage.modifier.import.cobol"},"3":{name:"punctuation.definition.string.begin.cobol"},"4":{name:"string.quoted.other.cobol"},"5":{name:"punctuation.definition.string.begin.cobol"}}},{match:"((?i:\\$set))\\s+(\\w+)\\s*(\")(\\w*)(\")",captures:{"1":{name:"keyword.control.directive.conditional.cobol"},"2":{name:"entity.name.function.preprocessor.cobol"},"3":{name:"punctuation.definition.string.begin.cobol"},"4":{name:"string.quoted.other.cobol"},"5":{name:"punctuation.definition.string.begin.cobol"}}},{match:"((?i:\\$set))\\s+(\\w+)\\s*(\\()(.*)(\\))",captures:{"1":{name:"keyword.control.directive.conditional.cobol"},"2":{name:"entity.name.function.preprocessor.cobol"},"3":{name:"punctuation.begin.bracket.round.cobol"},"4":{name:"string.quoted.other.cobol"},"5":{name:"punctuation.end.bracket.round.cobol"}}},{match:"(?:^|\\s+)(?i:\\$\\s*set\\s)((?i:01SHUFFLE|64KPARA|64KSECT|AUXOPT|CHIP|DATALIT|EANIM|EXPANDDATA|FIXING|FLAG-CHIP|MASM|MODEL|OPTSIZE|OPTSPEED|PARAS|PROTMODE|REGPARM|SEGCROSS|SEGSIZE|SIGNCOMPARE|SMALLDD|TABLESEGCROSS|TRICKLECHECK|\\s)+).*$",captures:{"0":{name:"keyword.control.directive.conditional.cobol"},"1":{name:"invalid.illegal.directive"},"2":{name:"comment.line.set.cobol"}}},{match:"(\\$region|\\$end-region)(.*$)",captures:{"1":{name:"keyword.control.directive.cobol"},"2":{name:"entity.other.attribute-name.preprocessor.cobol"}}},{begin:"\\$(?i:doc)(.*$)",end:"\\$(?i:end-doc)(.*$)",name:"invalid.illegal.iscobol"},{match:">>\\s*(?i:turn|page|listing|leap-seconds|d)\\s+.*$",name:"invalid.illegal.meta.preprocessor.cobolit"},{match:"((((>>|\\$)[\\s]*)(?i:if|else|elif|end-if|end-evaluate|end|define|evaluate|when|display|call-convention|set))(.*$))",captures:{"1":{name:"keyword.control.directive.conditional.cobol"},"2":{name:"entity.name.function.preprocessor.cobol"},"3":{name:"entity.name.function.preprocessor.cobol"}}},{match:"(\\*>)\\s+(@[0-9a-zA-Z][a-zA-Z\\-0-9]+)\\s+(.*$)",captures:{"1":{name:"comment.line.scantoken.cobol"},"2":{name:"keyword.cobol"},"3":{name:"string.cobol"}}},{match:"(\\*>.*$)",name:"comment.line.modern"},{match:"(>>.*)$",name:"strong comment.line.set.acucobol"},{match:"([nNuU][xX]|[hHxX])'\\h*'",name:"constant.numeric.integer.hexadecimal.cobol"},{match:"([nNuU][xX]|[hHxX])'.*'",name:"invalid.illegal.hexadecimal.cobol"},{match:"([nNuU][xX]|[hHxX])\"\\h*\"",name:"constant.numeric.integer.hexadecimal.cobol"},{match:"([nNuU][xX]|[hHxX])\".*\"",name:"invalid.illegal.hexadecimal.cobol"},{match:"[bB]\"[0-1]\"",name:"constant.numeric.integer.boolean.cobol"},{match:"[bB]'[0-1]'",name:"constant.numeric.integer.boolean.cobol"},{match:"[oO]\"[0-7]*\"",name:"constant.numeric.integer.octal.cobol"},{match:"[oO]\".*\"",name:"invalid.illegal.octal.cobol"},{match:"(#)([0-9a-zA-Z][a-zA-Z\\-0-9]+)",name:"meta.symbol.cobol.forced"},{begin:"((?|<=|>=|<>|\\+|\\-|\\*|\\/|(?=|>",name:"keyword.operator.relational.ql"},"comparison-operator":{match:"(?x)=|\\!\\=",name:"keyword.operator.comparison.ql"},"arithmetic-operator":{match:"(?x)\\+|-|\\*|/|%",name:"keyword.operator.arithmetic.ql"},comma:{match:"(?x),",name:"punctuation.separator.comma.ql"},semicolon:{match:"(?x);",name:"punctuation.separator.statement.ql"},dot:{match:"(?x)\\.",name:"punctuation.accessor.ql"},dotdot:{match:"(?x)\\.\\.",name:"punctuation.operator.range.ql"},pipe:{match:"(?x)\\|",name:"punctuation.separator.pipe.ql"},"open-paren":{match:"(?x)\\(",name:"punctuation.parenthesis.open.ql"},"close-paren":{match:"(?x)\\)",name:"punctuation.parenthesis.close.ql"},"open-brace":{match:"(?x)\\{",name:"punctuation.curlybrace.open.ql"},"close-brace":{match:"(?x)\\}",name:"punctuation.curlybrace.close.ql"},"open-bracket":{match:"(?x)\\[",name:"punctuation.squarebracket.open.ql"},"close-bracket":{match:"(?x)\\]",name:"punctuation.squarebracket.close.ql"},"operator-or-punctuation":{patterns:[{include:"#relational-operator"},{include:"#comparison-operator"},{include:"#arithmetic-operator"},{include:"#comma"},{include:"#semicolon"},{include:"#dot"},{include:"#dotdot"},{include:"#pipe"},{include:"#open-paren"},{include:"#close-paren"},{include:"#open-brace"},{include:"#close-brace"},{include:"#open-bracket"},{include:"#close-bracket"}]},"dont-care":{match:"(?x)\\b(?:_)(?:(?!(?:[0-9A-Za-z_])))",name:"variable.language.dont-care.ql"},and:{match:"(?x)\\b(?:and)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.and.ql"},any:{match:"(?x)\\b(?:any)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.quantifier.any.ql"},as:{match:"(?x)\\b(?:as)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.as.ql"},asc:{match:"(?x)\\b(?:asc)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.order.asc.ql"},avg:{match:"(?x)\\b(?:avg)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.aggregate.avg.ql"},boolean:{match:"(?x)\\b(?:boolean)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.type.boolean.ql"},by:{match:"(?x)\\b(?:by)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.order.by.ql"},"class":{match:"(?x)\\b(?:class)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.class.ql"},concat:{match:"(?x)\\b(?:concat)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.aggregate.concat.ql"},count:{match:"(?x)\\b(?:count)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.aggregate.count.ql"},date:{match:"(?x)\\b(?:date)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.type.date.ql"},desc:{match:"(?x)\\b(?:desc)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.order.desc.ql"},"else":{match:"(?x)\\b(?:else)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.else.ql"},exists:{match:"(?x)\\b(?:exists)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.quantifier.exists.ql"},"extends":{match:"(?x)\\b(?:extends)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.extends.ql"},"false":{match:"(?x)\\b(?:false)(?:(?!(?:[0-9A-Za-z_])))",name:"constant.language.boolean.false.ql"},float:{match:"(?x)\\b(?:float)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.type.float.ql"},forall:{match:"(?x)\\b(?:forall)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.quantifier.forall.ql"},forex:{match:"(?x)\\b(?:forex)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.quantifier.forex.ql"},from:{match:"(?x)\\b(?:from)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.from.ql"},"if":{match:"(?x)\\b(?:if)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.if.ql"},implies:{match:"(?x)\\b(?:implies)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.implies.ql"},"import":{match:"(?x)\\b(?:import)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.import.ql"},"in":{match:"(?x)\\b(?:in)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.in.ql"},"instanceof":{match:"(?x)\\b(?:instanceof)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.instanceof.ql"},int:{match:"(?x)\\b(?:int)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.type.int.ql"},max:{match:"(?x)\\b(?:max)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.aggregate.max.ql"},min:{match:"(?x)\\b(?:min)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.aggregate.min.ql"},module:{match:"(?x)\\b(?:module)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.module.ql"},newtype:{match:"(?x)\\b(?:newtype)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.newtype.ql"},none:{match:"(?x)\\b(?:none)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.quantifier.none.ql"},not:{match:"(?x)\\b(?:not)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.not.ql"},or:{match:"(?x)\\b(?:or)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.or.ql"},order:{match:"(?x)\\b(?:order)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.order.order.ql"},predicate:{match:"(?x)\\b(?:predicate)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.predicate.ql"},rank:{match:"(?x)\\b(?:rank)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.aggregate.rank.ql"},result:{match:"(?x)\\b(?:result)(?:(?!(?:[0-9A-Za-z_])))",name:"variable.language.result.ql"},select:{match:"(?x)\\b(?:select)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.query.select.ql"},strictconcat:{match:"(?x)\\b(?:strictconcat)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.aggregate.strictconcat.ql"},strictcount:{match:"(?x)\\b(?:strictcount)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.aggregate.strictcount.ql"},strictsum:{match:"(?x)\\b(?:strictsum)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.aggregate.strictsum.ql"},string:{match:"(?x)\\b(?:string)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.type.string.ql"},sum:{match:"(?x)\\b(?:sum)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.aggregate.sum.ql"},"super":{match:"(?x)\\b(?:super)(?:(?!(?:[0-9A-Za-z_])))",name:"variable.language.super.ql"},then:{match:"(?x)\\b(?:then)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.then.ql"},"this":{match:"(?x)\\b(?:this)(?:(?!(?:[0-9A-Za-z_])))",name:"variable.language.this.ql"},"true":{match:"(?x)\\b(?:true)(?:(?!(?:[0-9A-Za-z_])))",name:"constant.language.boolean.true.ql"},unique:{match:"(?x)\\b(?:unique)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.aggregate.unique.ql"},where:{match:"(?x)\\b(?:where)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.query.where.ql"},keyword:{patterns:[{include:"#dont-care"},{include:"#and"},{include:"#any"},{include:"#as"},{include:"#asc"},{include:"#avg"},{include:"#boolean"},{include:"#by"},{include:"#class"},{include:"#concat"},{include:"#count"},{include:"#date"},{include:"#desc"},{include:"#else"},{include:"#exists"},{include:"#extends"},{include:"#false"},{include:"#float"},{include:"#forall"},{include:"#forex"},{include:"#from"},{include:"#if"},{include:"#implies"},{include:"#import"},{include:"#in"},{include:"#instanceof"},{include:"#int"},{include:"#max"},{include:"#min"},{include:"#module"},{include:"#newtype"},{include:"#none"},{include:"#not"},{include:"#or"},{include:"#order"},{include:"#predicate"},{include:"#rank"},{include:"#result"},{include:"#select"},{include:"#strictconcat"},{include:"#strictcount"},{include:"#strictsum"},{include:"#string"},{include:"#sum"},{include:"#super"},{include:"#then"},{include:"#this"},{include:"#true"},{include:"#unique"},{include:"#where"}]},"predicate-start-keyword":{patterns:[{include:"#boolean"},{include:"#date"},{include:"#float"},{include:"#int"},{include:"#predicate"},{include:"#string"}]},abstract:{match:"(?x)\\b(?:abstract)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.abstract.ql"},additional:{match:"(?x)\\b(?:additional)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.additional.ql"},bindingset:{match:"(?x)\\b(?:bindingset)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.bindingset.ql"},cached:{match:"(?x)\\b(?:cached)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.cached.ql"},"default":{match:"(?x)\\b(?:default)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.default.ql"},deprecated:{match:"(?x)\\b(?:deprecated)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.deprecated.ql"},external:{match:"(?x)\\b(?:external)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.external.ql"},final:{match:"(?x)\\b(?:final)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.final.ql"},language:{match:"(?x)\\b(?:language)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.language.ql"},library:{match:"(?x)\\b(?:library)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.library.ql"},override:{match:"(?x)\\b(?:override)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.override.ql"},pragma:{match:"(?x)\\b(?:pragma)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.pragma.ql"},"private":{match:"(?x)\\b(?:private)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.private.ql"},query:{match:"(?x)\\b(?:query)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.query.ql"},signature:{match:"(?x)\\b(?:signature)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.signature.ql"},transient:{match:"(?x)\\b(?:transient)(?:(?!(?:[0-9A-Za-z_])))",name:"storage.modifier.transient.ql"},"annotation-keyword":{patterns:[{include:"#abstract"},{include:"#additional"},{include:"#bindingset"},{include:"#cached"},{include:"#default"},{include:"#deprecated"},{include:"#external"},{include:"#final"},{include:"#language"},{include:"#library"},{include:"#override"},{include:"#pragma"},{include:"#private"},{include:"#query"},{include:"#signature"},{include:"#transient"}]},"implements":{match:"(?x)\\b(?:implements)(?:(?!(?:[0-9A-Za-z_])))",name:"keyword.other.implements.ql"},comment:{patterns:[{begin:"(?x)/\\*\\*",end:"(?x)\\*/",name:"comment.block.documentation.ql",patterns:[{begin:"(?x)(?<=/\\*\\*)([^*]|\\*(?!/))*$","while":"(?x)(^|\\G)\\s*([^*]|\\*(?!/))(?=([^*]|[*](?!/))*$)",patterns:[{match:"(?x)\\G\\s* (@\\S+)",name:"keyword.tag.ql"}]}]},{begin:"(?x)/\\*",end:"(?x)\\*/",name:"comment.block.ql"},{match:"(?x)//.*$",name:"comment.line.double-slash.ql"}]},"module-member":{patterns:[{include:"#import-directive"},{include:"#import-as-clause"},{include:"#module-declaration"},{include:"#newtype-declaration"},{include:"#newtype-branch-name-with-prefix"},{include:"#predicate-parameter-list"},{include:"#predicate-body"},{include:"#class-declaration"},{include:"#select-clause"},{include:"#predicate-or-field-declaration"},{include:"#non-context-sensitive"},{include:"#annotation"}]},"import-directive":{end:"(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))) (?!\\s*(\\.|\\:\\:))",endCaptures:{"0":{name:"entity.name.type.namespace.ql"}},name:"meta.block.import-directive.ql",patterns:[{include:"#non-context-sensitive"},{match:"(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))",name:"entity.name.type.namespace.ql"}],begin:"(?x)((?:\\b(?:import)(?:(?!(?:[0-9A-Za-z_])))))",beginCaptures:{"1":{patterns:[{include:"#import"}]}}},"end-of-as-clause":{match:"(?x)(?: (?<=(?:[0-9A-Za-z_])) (?!(?:[0-9A-Za-z_])) (?)",beginCaptures:{"1":{name:"entity.name.function.coffee"},"2":{name:"variable.other.readwrite.instance.coffee"},"3":{name:"keyword.operator.assignment.coffee"}},end:"[=-]>",endCaptures:{"0":{name:"storage.type.function.coffee"}},name:"meta.function.coffee",patterns:[{include:"#function_params"}]},{begin:"(?x)\n(?<=\\s|^)(?:((')([^']*?)('))|((\")([^\"]*?)(\")))\n\\s*([:=])\\s*\n(?=(\\([^\\(\\)]*\\)\\s*)?[=-]>)",beginCaptures:{"1":{name:"string.quoted.single.coffee"},"2":{name:"punctuation.definition.string.begin.coffee"},"3":{name:"entity.name.function.coffee"},"4":{name:"punctuation.definition.string.end.coffee"},"5":{name:"string.quoted.double.coffee"},"6":{name:"punctuation.definition.string.begin.coffee"},"7":{name:"entity.name.function.coffee"},"8":{name:"punctuation.definition.string.end.coffee"},"9":{name:"keyword.operator.assignment.coffee"}},end:"[=-]>",endCaptures:{"0":{name:"storage.type.function.coffee"}},name:"meta.function.coffee",patterns:[{include:"#function_params"}]},{begin:"(?=(\\([^\\(\\)]*\\)\\s*)?[=-]>)",end:"[=-]>",endCaptures:{"0":{name:"storage.type.function.coffee"}},name:"meta.function.inline.coffee",patterns:[{include:"#function_params"}]},{begin:"(?<=\\s|^)({)(?=[^'\"#]+?}[\\s\\]}]*=)",beginCaptures:{"1":{name:"punctuation.definition.destructuring.begin.bracket.curly.coffee"}},end:"}",endCaptures:{"0":{name:"punctuation.definition.destructuring.end.bracket.curly.coffee"}},name:"meta.variable.assignment.destructured.object.coffee",patterns:[{include:"$self"},{match:"[a-zA-Z$_]\\w*",name:"variable.assignment.coffee"}]},{begin:"(?<=\\s|^)(\\[)(?=[^'\"#]+?\\][\\s\\]}]*=)",beginCaptures:{"1":{name:"punctuation.definition.destructuring.begin.bracket.square.coffee"}},end:"\\]",endCaptures:{"0":{name:"punctuation.definition.destructuring.end.bracket.square.coffee"}},name:"meta.variable.assignment.destructured.array.coffee",patterns:[{include:"$self"},{match:"[a-zA-Z$_]\\w*",name:"variable.assignment.coffee"}]},{match:"\\b(?|\\-\\d|\\[|{|\"|'))",end:"(?=\\s*(?|\\-\\d|\\[|{|\"|')))",beginCaptures:{"1":{name:"variable.other.readwrite.instance.coffee"},"2":{patterns:[{include:"#function_names"}]}},end:"(?=\\s*(?|\\-\\d|\\[|{|\"|')))",beginCaptures:{"1":{name:"punctuation.separator.method.period.coffee"},"2":{name:"keyword.operator.prototype.coffee"},"3":{patterns:[{include:"#method_names"}]}},end:"(?=\\s*(?>=|>>>=|\\|=)",captures:{"1":{name:"variable.assignment.coffee"},"2":{name:"keyword.operator.assignment.compound.bitwise.coffee"}}},{match:"<<|>>>|>>",name:"keyword.operator.bitwise.shift.coffee"},{match:"!=|<=|>=|==|<|>",name:"keyword.operator.comparison.coffee"},{match:"&&|!|\\|\\|",name:"keyword.operator.logical.coffee"},{match:"&|\\||\\^|~",name:"keyword.operator.bitwise.coffee"},{match:"([a-zA-Z$_][\\w$]*)?\\s*(=|:(?!:))(?![>=])",captures:{"1":{name:"variable.assignment.coffee"},"2":{name:"keyword.operator.assignment.coffee"}}},{match:"--",name:"keyword.operator.decrement.coffee"},{match:"\\+\\+",name:"keyword.operator.increment.coffee"},{match:"\\.\\.\\.",name:"keyword.operator.splat.coffee"},{match:"\\?",name:"keyword.operator.existential.coffee"},{match:"%|\\*|/|-|\\+",name:"keyword.operator.coffee"},{match:"(?x)\n\\b(?)",name:"meta.tag.coffee",patterns:[{include:"#jsx-attribute"}]}]},"jsx-end-tag":{patterns:[{begin:"()",name:"meta.tag.coffee"}]}}}; + +export { coffee_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/cpp.tmLanguage-815420ff.mjs b/docs/shiki/dist/languages/cpp.tmLanguage-815420ff.mjs new file mode 100644 index 00000000..1f0cf23d --- /dev/null +++ b/docs/shiki/dist/languages/cpp.tmLanguage-815420ff.mjs @@ -0,0 +1,3 @@ +var cpp_tmLanguage = {information_for_contributors:["This file has been converted from https://github.com/jeff-hykin/better-cpp-syntax/blob/master/autogenerated/cpp.tmLanguage.json","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."],version:"https://github.com/jeff-hykin/better-cpp-syntax/commit/f1d127a8af2b184db570345f0bb179503c47fdf6",name:"cpp",scopeName:"source.cpp",patterns:[{include:"#ever_present_context"},{include:"#constructor_root"},{include:"#destructor_root"},{include:"#function_definition"},{include:"#operator_overload"},{include:"#using_namespace"},{include:"#type_alias"},{include:"#using_name"},{include:"#namespace_alias"},{include:"#namespace_block"},{include:"#extern_block"},{include:"#typedef_class"},{include:"#typedef_struct"},{include:"#typedef_union"},{include:"#misc_keywords"},{include:"#standard_declares"},{include:"#class_block"},{include:"#struct_block"},{include:"#union_block"},{include:"#enum_block"},{include:"#template_isolated_definition"},{include:"#template_definition"},{include:"#template_explicit_instantiation"},{include:"#access_control_keywords"},{include:"#block"},{include:"#static_assert"},{include:"#assembly"},{include:"#function_pointer"},{include:"#evaluation_context"}],repository:{access_control_keywords:{match:"((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(((?:(?:protected)|(?:private)|(?:public)))(?:\\s+)?(:))",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"3":{name:"storage.type.modifier.access.control.$4.cpp"},"4":{},"5":{name:"punctuation.separator.colon.access.control.cpp"}}},alignas_attribute:{begin:"alignas\\(",end:"\\)",beginCaptures:{"0":{name:"punctuation.section.attribute.begin.cpp"}},endCaptures:{"0":{name:"punctuation.section.attribute.end.cpp"}},name:"support.other.attribute.cpp",patterns:[{include:"#attributes_context"},{begin:"\\(",end:"\\)",beginCaptures:{},endCaptures:{},patterns:[{include:"#attributes_context"},{include:"#string_context"},{include:"#ever_present_context"}]},{match:"(using)\\s+((?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))",beginCaptures:{"0":{name:"meta.head.class.cpp"},"1":{name:"storage.type.$1.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"6":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"7":{patterns:[{include:"#inline_comment"}]},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{patterns:[{match:"((?|\\?\\?>",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.class.cpp"}},name:"meta.body.class.cpp",patterns:[{include:"#function_pointer"},{include:"#static_assert"},{include:"#constructor_inline"},{include:"#destructor_inline"},{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.class.cpp",patterns:[{include:"$self"}]}]},class_declare:{match:"((?|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cpp"},{match:"((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)",captures:{"1":{name:"storage.type.class.doxygen.cpp"},"2":{name:"markup.italic.doxygen.cpp"}}},{match:"((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)",captures:{"1":{name:"storage.type.class.doxygen.cpp"},"2":{name:"markup.bold.doxygen.cpp"}}},{match:"((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)",captures:{"1":{name:"storage.type.class.doxygen.cpp"},"2":{name:"markup.inline.raw.string.cpp"}}},{match:"(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cpp"},{match:"(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cpp"},{match:"((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:\\s+)?(?:in|out)(?:\\s+)?)+)\\])?(\\s+((?|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cpp"},{match:"((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)",captures:{"1":{name:"storage.type.class.doxygen.cpp"},"2":{name:"markup.italic.doxygen.cpp"}}},{match:"((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)",captures:{"1":{name:"storage.type.class.doxygen.cpp"},"2":{name:"markup.bold.doxygen.cpp"}}},{match:"((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)",captures:{"1":{name:"storage.type.class.doxygen.cpp"},"2":{name:"markup.inline.raw.string.cpp"}}},{match:"(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cpp"},{match:"(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cpp"},{match:"((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:\\s+)?(?:in|out)(?:\\s+)?)+)\\])?(\\s+((?|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cpp"},{match:"((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)",captures:{"1":{name:"storage.type.class.doxygen.cpp"},"2":{name:"markup.italic.doxygen.cpp"}}},{match:"((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)",captures:{"1":{name:"storage.type.class.doxygen.cpp"},"2":{name:"markup.bold.doxygen.cpp"}}},{match:"((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)",captures:{"1":{name:"storage.type.class.doxygen.cpp"},"2":{name:"markup.inline.raw.string.cpp"}}},{match:"(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cpp"},{match:"(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",name:"storage.type.class.doxygen.cpp"},{match:"((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:\\s+)?(?:in|out)(?:\\s+)?)+)\\])?(\\s+((?|\\?\\?>)|(?=[;>\\[\\]=]))",beginCaptures:{"0":{name:"meta.head.function.definition.special.constructor.cpp"},"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"5":{patterns:[{include:"#functional_specifiers_pre_parameters"}]},"6":{patterns:[{include:"#inline_comment"}]},"7":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"8":{name:"comment.block.cpp"},"9":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"10":{name:"storage.type.modifier.calling-convention.cpp"},"11":{patterns:[{include:"#inline_comment"}]},"12":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"13":{name:"comment.block.cpp"},"14":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"15":{name:"entity.name.function.constructor.cpp entity.name.function.definition.special.constructor.cpp"}},endCaptures:{},name:"meta.function.definition.special.constructor.cpp",patterns:[{begin:"\\G ?",end:"(?:\\{|<%|\\?\\?<|(?=;))",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.begin.bracket.curly.function.definition.special.constructor.cpp"}},name:"meta.head.function.definition.special.constructor.cpp",patterns:[{include:"#ever_present_context"},{match:"(\\=)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(default)|(delete))",captures:{"1":{name:"keyword.operator.assignment.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"6":{name:"keyword.other.default.function.cpp keyword.other.default.constructor.cpp"},"7":{name:"keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp"}}},{include:"#functional_specifiers_pre_parameters"},{begin:":",end:"(?=\\{)",beginCaptures:{"0":{name:"punctuation.separator.initializers.cpp"}},endCaptures:{},patterns:[{begin:"((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(\\()",end:"\\)",beginCaptures:{"1":{name:"entity.name.function.call.initializer.cpp"},"2":{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},"3":{},"4":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"5":{name:"comment.block.cpp"},"6":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"7":{name:"punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp"}},endCaptures:{"0":{name:"punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"}},contentName:"meta.parameter.initialization",patterns:[{include:"#evaluation_context"}]},{begin:"((?|\\?\\?>",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cpp"}},name:"meta.body.function.definition.special.constructor.cpp",patterns:[{include:"#function_body_context"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.function.definition.special.constructor.cpp",patterns:[{include:"$self"}]}]},constructor_root:{begin:"\\s*+((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(((?>(?|\\?\\?>)|(?=[;>\\[\\]=]))",beginCaptures:{"0":{name:"meta.head.function.definition.special.constructor.cpp"},"1":{name:"storage.type.modifier.calling-convention.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"6":{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.constructor.cpp"},{match:"(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(\\()",end:"\\)",beginCaptures:{"1":{name:"entity.name.function.call.initializer.cpp"},"2":{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},"3":{},"4":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"5":{name:"comment.block.cpp"},"6":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"7":{name:"punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp"}},endCaptures:{"0":{name:"punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"}},contentName:"meta.parameter.initialization",patterns:[{include:"#evaluation_context"}]},{begin:"((?|\\?\\?>",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cpp"}},name:"meta.body.function.definition.special.constructor.cpp",patterns:[{include:"#function_body_context"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.function.definition.special.constructor.cpp",patterns:[{include:"$self"}]}]},control_flow_keywords:{match:"((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\{)",end:"\\}",beginCaptures:{"1":{name:"meta.qualified_type.cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{match:"(?",beginCaptures:{"0":{name:"punctuation.section.angle-brackets.begin.template.call.cpp"}},endCaptures:{"0":{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},"2":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"3":{patterns:[{include:"#inline_comment"}]},"4":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"5":{name:"comment.block.cpp"},"6":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"7":{patterns:[{include:"#inline_comment"}]},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?]*(>?)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=\\/\\/)))|((\\\")[^\\\"]*(\\\"?)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=\\/\\/))))|(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\.(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)*((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=(?:\\/\\/|;)))))|((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=(?:\\/\\/|;))))(?:\\s+)?(;?)",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"3":{name:"keyword.control.directive.import.cpp"},"5":{name:"string.quoted.other.lt-gt.include.cpp"},"6":{name:"punctuation.definition.string.begin.cpp"},"7":{name:"punctuation.definition.string.end.cpp"},"8":{patterns:[{include:"#inline_comment"}]},"9":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"10":{name:"string.quoted.double.include.cpp"},"11":{name:"punctuation.definition.string.begin.cpp"},"12":{name:"punctuation.definition.string.end.cpp"},"13":{patterns:[{include:"#inline_comment"}]},"14":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"15":{name:"entity.name.other.preprocessor.macro.include.cpp"},"16":{patterns:[{include:"#inline_comment"}]},"17":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"18":{patterns:[{include:"#inline_comment"}]},"19":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"20":{patterns:[{include:"#inline_comment"}]},"21":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"22":{name:"punctuation.terminator.statement.cpp"}},name:"meta.preprocessor.import.cpp"},d9bc4796b0b_preprocessor_number_literal:{match:"(?|\\?\\?>)|(?=[;>\\[\\]=]))",beginCaptures:{"0":{name:"meta.head.function.definition.special.member.destructor.cpp"},"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"5":{name:"storage.type.modifier.calling-convention.cpp"},"6":{patterns:[{include:"#inline_comment"}]},"7":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"8":{name:"comment.block.cpp"},"9":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"10":{patterns:[{include:"#functional_specifiers_pre_parameters"}]},"11":{patterns:[{include:"#inline_comment"}]},"12":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"13":{name:"comment.block.cpp"},"14":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"15":{name:"entity.name.function.destructor.cpp entity.name.function.definition.special.member.destructor.cpp"}},endCaptures:{},name:"meta.function.definition.special.member.destructor.cpp",patterns:[{begin:"\\G ?",end:"(?:\\{|<%|\\?\\?<|(?=;))",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.begin.bracket.curly.function.definition.special.member.destructor.cpp"}},name:"meta.head.function.definition.special.member.destructor.cpp",patterns:[{include:"#ever_present_context"},{match:"(\\=)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(default)|(delete))",captures:{"1":{name:"keyword.operator.assignment.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"6":{name:"keyword.other.default.function.cpp keyword.other.default.constructor.cpp keyword.other.default.destructor.cpp"},"7":{name:"keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp keyword.other.delete.destructor.cpp"}}},{begin:"\\(",end:"\\)",beginCaptures:{"0":{name:"punctuation.section.parameters.begin.bracket.round.special.member.destructor.cpp"}},endCaptures:{"0":{name:"punctuation.section.parameters.end.bracket.round.special.member.destructor.cpp"}},contentName:"meta.function.definition.parameters.special.member.destructor",patterns:[]},{include:"#qualifiers_and_specifiers_post_parameters"},{include:"$self"}]},{begin:"(?<=\\{|<%|\\?\\?<)",end:"\\}|%>|\\?\\?>",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.function.definition.special.member.destructor.cpp"}},name:"meta.body.function.definition.special.member.destructor.cpp",patterns:[{include:"#function_body_context"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.function.definition.special.member.destructor.cpp",patterns:[{include:"$self"}]}]},destructor_root:{begin:"((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(((?>(?|\\?\\?>)|(?=[;>\\[\\]=]))",beginCaptures:{"0":{name:"meta.head.function.definition.special.member.destructor.cpp"},"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"5":{name:"storage.type.modifier.calling-convention.cpp"},"6":{patterns:[{include:"#inline_comment"}]},"7":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"8":{name:"comment.block.cpp"},"9":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"10":{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.destructor.cpp"},{match:"(?|\\?\\?>",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.function.definition.special.member.destructor.cpp"}},name:"meta.body.function.definition.special.member.destructor.cpp",patterns:[{include:"#function_body_context"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.function.definition.special.member.destructor.cpp",patterns:[{include:"$self"}]}]},diagnostic:{begin:"(^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(#)(?:\\s+)?((?:error|warning)))\\b(?:\\s+)?",end:"(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::))?(?:\\s+)?((?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))",beginCaptures:{"0":{name:"meta.head.enum.cpp"},"1":{name:"storage.type.enum.cpp"},"2":{name:"storage.type.enum.enum-key.$2.cpp"},"3":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"4":{name:"entity.name.type.enum.cpp"},"5":{name:"punctuation.separator.colon.type-specifier.cpp"},"6":{patterns:[{include:"#scope_resolution_inner_generated"}]},"7":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},"8":{patterns:[{include:"#template_call_range"}]},"9":{},"10":{name:"entity.name.scope-resolution.cpp"},"11":{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},"12":{},"13":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"14":{name:"comment.block.cpp"},"15":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"16":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},"17":{name:"storage.type.integral.$17.cpp"}},endCaptures:{"1":{name:"punctuation.terminator.statement.cpp"},"2":{name:"punctuation.terminator.statement.cpp"}},name:"meta.block.enum.cpp",patterns:[{begin:"\\G ?",end:"(?:\\{|<%|\\?\\?<|(?=;))",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.begin.bracket.curly.enum.cpp"}},name:"meta.head.enum.cpp",patterns:[{include:"$self"}]},{begin:"(?<=\\{|<%|\\?\\?<)",end:"\\}|%>|\\?\\?>",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.enum.cpp"}},name:"meta.body.enum.cpp",patterns:[{include:"#ever_present_context"},{include:"#enumerator_list"},{include:"#comments"},{include:"#comma"},{include:"#semicolon"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.enum.cpp",patterns:[{include:"$self"}]}]},enum_declare:{match:"((?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))",beginCaptures:{"0":{name:"meta.head.extern.cpp"},"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"5":{name:"storage.type.extern.cpp"}},endCaptures:{"1":{name:"punctuation.terminator.statement.cpp"},"2":{name:"punctuation.terminator.statement.cpp"}},name:"meta.block.extern.cpp",patterns:[{begin:"\\G ?",end:"(?:\\{|<%|\\?\\?<|(?=;))",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.begin.bracket.curly.extern.cpp"}},name:"meta.head.extern.cpp",patterns:[{include:"$self"}]},{begin:"(?<=\\{|<%|\\?\\?<)",end:"\\}|%>|\\?\\?>",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.extern.cpp"}},name:"meta.body.extern.cpp",patterns:[{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.extern.cpp",patterns:[{include:"$self"}]},{include:"$self"}]},function_body_context:{patterns:[{include:"#ever_present_context"},{include:"#using_namespace"},{include:"#type_alias"},{include:"#using_name"},{include:"#namespace_alias"},{include:"#typedef_class"},{include:"#typedef_struct"},{include:"#typedef_union"},{include:"#misc_keywords"},{include:"#standard_declares"},{include:"#class_block"},{include:"#struct_block"},{include:"#union_block"},{include:"#enum_block"},{include:"#access_control_keywords"},{include:"#block"},{include:"#static_assert"},{include:"#assembly"},{include:"#function_pointer"},{include:"#switch_statement"},{include:"#goto_statement"},{include:"#evaluation_context"},{include:"#label"}]},function_call:{begin:"((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)\\b(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(\\()",end:"\\)",beginCaptures:{"1":{patterns:[{include:"#scope_resolution_function_call_inner_generated"}]},"2":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp"},"3":{patterns:[{include:"#template_call_range"}]},"4":{},"5":{name:"entity.name.function.call.cpp"},"6":{patterns:[{include:"#inline_comment"}]},"7":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"8":{name:"comment.block.cpp"},"9":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"10":{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},"11":{},"12":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"13":{name:"comment.block.cpp"},"14":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"15":{name:"punctuation.section.arguments.begin.bracket.round.function.call.cpp"}},endCaptures:{"0":{name:"punctuation.section.arguments.end.bracket.round.function.call.cpp"}},patterns:[{include:"#evaluation_context"}]},function_definition:{begin:"(?:(?:^|\\G|(?<=;|\\}))|(?<=>|\\*\\/))\\s*+(?:((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)\\b(?|\\?\\?>)|(?=[;>\\[\\]=]))",beginCaptures:{"0":{name:"meta.head.function.definition.cpp"},"1":{name:"storage.type.template.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"6":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"7":{patterns:[{match:"((?",beginCaptures:{"0":{name:"punctuation.section.angle-brackets.begin.template.call.cpp"}},endCaptures:{"0":{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},"14":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"15":{patterns:[{include:"#inline_comment"}]},"16":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"17":{name:"comment.block.cpp"},"18":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"19":{patterns:[{include:"#inline_comment"}]},"20":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"21":{name:"comment.block.cpp"},"22":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"23":{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))",captures:{"1":{name:"punctuation.definition.function.return-type.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"6":{name:"meta.qualified_type.cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{match:"(?",beginCaptures:{"0":{name:"punctuation.section.angle-brackets.begin.template.call.cpp"}},endCaptures:{"0":{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},"7":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"8":{patterns:[{include:"#inline_comment"}]},"9":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"10":{name:"comment.block.cpp"},"11":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"12":{patterns:[{include:"#inline_comment"}]},"13":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"14":{name:"comment.block.cpp"},"15":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"16":{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?|\\?\\?>",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.function.definition.cpp"}},name:"meta.body.function.definition.cpp",patterns:[{include:"#function_body_context"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.function.definition.cpp",patterns:[{include:"$self"}]}]},function_parameter_context:{patterns:[{include:"#ever_present_context"},{include:"#parameter"},{include:"#comma"}]},function_pointer:{begin:"(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()(\\*)(?:\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:\\s+)?(?:(\\[)(\\w*)(\\])(?:\\s+)?)*(\\))(?:\\s+)?(\\()",end:"(\\))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=[{=,);>]|\\n)(?!\\()",beginCaptures:{"1":{name:"meta.qualified_type.cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{match:"(?",beginCaptures:{"0":{name:"punctuation.section.angle-brackets.begin.template.call.cpp"}},endCaptures:{"0":{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},"2":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"3":{patterns:[{include:"#inline_comment"}]},"4":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"5":{name:"comment.block.cpp"},"6":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"7":{patterns:[{include:"#inline_comment"}]},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()(\\*)(?:\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:\\s+)?(?:(\\[)(\\w*)(\\])(?:\\s+)?)*(\\))(?:\\s+)?(\\()",end:"(\\))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=[{=,);>]|\\n)(?!\\()",beginCaptures:{"1":{name:"meta.qualified_type.cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{match:"(?",beginCaptures:{"0":{name:"punctuation.section.angle-brackets.begin.template.call.cpp"}},endCaptures:{"0":{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},"2":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"3":{patterns:[{include:"#inline_comment"}]},"4":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"5":{name:"comment.block.cpp"},"6":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"7":{patterns:[{include:"#inline_comment"}]},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?]*(>?)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=\\/\\/)))|((\\\")[^\\\"]*(\\\"?)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=\\/\\/))))|(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\.(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)*((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=(?:\\/\\/|;)))))|((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=(?:\\/\\/|;))))",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"3":{name:"keyword.control.directive.$5.cpp"},"4":{name:"punctuation.definition.directive.cpp"},"6":{name:"string.quoted.other.lt-gt.include.cpp"},"7":{name:"punctuation.definition.string.begin.cpp"},"8":{name:"punctuation.definition.string.end.cpp"},"9":{patterns:[{include:"#inline_comment"}]},"10":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"11":{name:"string.quoted.double.include.cpp"},"12":{name:"punctuation.definition.string.begin.cpp"},"13":{name:"punctuation.definition.string.end.cpp"},"14":{patterns:[{include:"#inline_comment"}]},"15":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"16":{name:"entity.name.other.preprocessor.macro.include.cpp"},"17":{patterns:[{include:"#inline_comment"}]},"18":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"19":{patterns:[{include:"#inline_comment"}]},"20":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"21":{patterns:[{include:"#inline_comment"}]},"22":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]}},name:"meta.preprocessor.include.cpp"},inheritance_context:{patterns:[{include:"#ever_present_context"},{match:",",name:"punctuation.separator.delimiter.comma.inheritance.cpp"},{match:"(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))",captures:{"1":{name:"meta.qualified_type.cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{match:"(?",beginCaptures:{"0":{name:"punctuation.section.angle-brackets.begin.template.call.cpp"}},endCaptures:{"0":{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},"2":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"3":{patterns:[{include:"#inline_comment"}]},"4":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"5":{patterns:[{include:"#inline_comment"}]},"6":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"7":{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?])|(?<=\\Wreturn|^return))(?:\\s+)?(\\[(?!\\[| *+\"| *+\\d))((?:[^\\[\\]]|((??)++\\]))*+)(\\](?!((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))[\\[\\];=]))",end:"(?<=[;}])",beginCaptures:{"1":{name:"punctuation.definition.capture.begin.lambda.cpp"},"2":{name:"meta.lambda.capture.cpp",patterns:[{include:"#the_this_keyword"},{match:"((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?=\\]|\\z|$)|(,))|(\\=))",captures:{"1":{name:"variable.parameter.capture.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"6":{name:"punctuation.separator.delimiter.comma.cpp"},"7":{name:"keyword.operator.assignment.cpp"}}},{include:"#evaluation_context"}]},"3":{},"4":{name:"punctuation.definition.capture.end.lambda.cpp"},"5":{patterns:[{include:"#inline_comment"}]},"6":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"7":{name:"comment.block.cpp"},"8":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},endCaptures:{},patterns:[{begin:"\\(",end:"\\)",beginCaptures:{"0":{name:"punctuation.definition.parameters.begin.lambda.cpp"}},endCaptures:{"0":{name:"punctuation.definition.parameters.end.lambda.cpp"}},name:"meta.function.definition.parameters.lambda.cpp",patterns:[{include:"#function_parameter_context"}]},{match:"(?",end:"(?=\\{)",beginCaptures:{"0":{name:"punctuation.definition.lambda.return-type.cpp"}},endCaptures:{},patterns:[{include:"#comments"},{match:"\\S+",name:"storage.type.return-type.lambda.cpp"}]},{begin:"\\{",end:"\\}",beginCaptures:{"0":{name:"punctuation.section.block.begin.bracket.curly.lambda.cpp"}},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.lambda.cpp"}},name:"meta.function.definition.body.lambda.cpp",patterns:[{include:"$self"}]}]},language_constants:{match:"(?\\*|->)))((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\s+)?(?:(?:\\.\\*|\\.)|(?:->\\*|->))(?:\\s+)?)*)(?:\\s+)?(\\b(?!uint_least32_t[^\\w]|uint_least16_t[^\\w]|uint_least64_t[^\\w]|int_least32_t[^\\w]|int_least64_t[^\\w]|uint_fast32_t[^\\w]|uint_fast64_t[^\\w]|uint_least8_t[^\\w]|uint_fast16_t[^\\w]|int_least16_t[^\\w]|int_fast16_t[^\\w]|int_least8_t[^\\w]|uint_fast8_t[^\\w]|int_fast64_t[^\\w]|int_fast32_t[^\\w]|int_fast8_t[^\\w]|suseconds_t[^\\w]|useconds_t[^\\w]|in_addr_t[^\\w]|uintmax_t[^\\w]|uintmax_t[^\\w]|uintmax_t[^\\w]|in_port_t[^\\w]|uintptr_t[^\\w]|blksize_t[^\\w]|uint32_t[^\\w]|uint64_t[^\\w]|u_quad_t[^\\w]|intmax_t[^\\w]|intmax_t[^\\w]|unsigned[^\\w]|blkcnt_t[^\\w]|uint16_t[^\\w]|intptr_t[^\\w]|swblk_t[^\\w]|wchar_t[^\\w]|u_short[^\\w]|qaddr_t[^\\w]|caddr_t[^\\w]|daddr_t[^\\w]|fixpt_t[^\\w]|nlink_t[^\\w]|segsz_t[^\\w]|clock_t[^\\w]|ssize_t[^\\w]|int16_t[^\\w]|int32_t[^\\w]|int64_t[^\\w]|uint8_t[^\\w]|int8_t[^\\w]|mode_t[^\\w]|quad_t[^\\w]|ushort[^\\w]|u_long[^\\w]|u_char[^\\w]|double[^\\w]|signed[^\\w]|time_t[^\\w]|size_t[^\\w]|key_t[^\\w]|div_t[^\\w]|ino_t[^\\w]|uid_t[^\\w]|gid_t[^\\w]|off_t[^\\w]|pid_t[^\\w]|float[^\\w]|dev_t[^\\w]|u_int[^\\w]|short[^\\w]|bool[^\\w]|id_t[^\\w]|uint[^\\w]|long[^\\w]|char[^\\w]|void[^\\w]|auto[^\\w]|id_t[^\\w]|int[^\\w])(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b(?!\\())",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"3":{name:"variable.language.this.cpp"},"4":{name:"variable.other.object.access.cpp"},"5":{name:"punctuation.separator.dot-access.cpp"},"6":{name:"punctuation.separator.pointer-access.cpp"},"7":{patterns:[{match:"(?<=(?:\\.\\*|\\.|->|->\\*))(?:\\s+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?\\*|->)))",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"5":{name:"variable.language.this.cpp"},"6":{name:"variable.other.object.property.cpp"},"7":{name:"punctuation.separator.dot-access.cpp"},"8":{name:"punctuation.separator.pointer-access.cpp"}}},{match:"(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?\\*|->)))",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"5":{name:"variable.language.this.cpp"},"6":{name:"variable.other.object.access.cpp"},"7":{name:"punctuation.separator.dot-access.cpp"},"8":{name:"punctuation.separator.pointer-access.cpp"}}},{include:"#member_access"},{include:"#method_access"}]},"8":{name:"variable.other.property.cpp"}}},memory_operators:{match:"((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:(?:(delete)(?:\\s+)?(\\[\\])|(delete))|(new))(?!\\w))",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"3":{name:"keyword.operator.wordlike.cpp"},"4":{name:"keyword.operator.delete.array.cpp"},"5":{name:"keyword.operator.delete.array.bracket.cpp"},"6":{name:"keyword.operator.delete.cpp"},"7":{name:"keyword.operator.new.cpp"}}},method_access:{begin:"(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?\\*|->)))((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\s+)?(?:(?:\\.\\*|\\.)|(?:->\\*|->))(?:\\s+)?)*)(?:\\s+)?(~?(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:\\s+)?(\\()",end:"\\)",beginCaptures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"5":{name:"variable.language.this.cpp"},"6":{name:"variable.other.object.access.cpp"},"7":{name:"punctuation.separator.dot-access.cpp"},"8":{name:"punctuation.separator.pointer-access.cpp"},"9":{patterns:[{match:"(?<=(?:\\.\\*|\\.|->|->\\*))(?:\\s+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?\\*|->)))",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"5":{name:"variable.language.this.cpp"},"6":{name:"variable.other.object.property.cpp"},"7":{name:"punctuation.separator.dot-access.cpp"},"8":{name:"punctuation.separator.pointer-access.cpp"}}},{match:"(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?\\*|->)))",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"5":{name:"variable.language.this.cpp"},"6":{name:"variable.other.object.access.cpp"},"7":{name:"punctuation.separator.dot-access.cpp"},"8":{name:"punctuation.separator.pointer-access.cpp"}}},{include:"#member_access"},{include:"#method_access"}]},"10":{name:"entity.name.function.member.cpp"},"11":{name:"punctuation.section.arguments.begin.bracket.round.function.member.cpp"}},endCaptures:{"0":{name:"punctuation.section.arguments.end.bracket.round.function.member.cpp"}},patterns:[{include:"#evaluation_context"}]},misc_keywords:{match:"((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)(?:\\s+)?((?|\\?\\?>)|(?=[;>\\[\\]=]))",beginCaptures:{"0":{name:"meta.head.namespace.cpp"},"1":{name:"keyword.other.namespace.definition.cpp storage.type.namespace.definition.cpp"}},endCaptures:{},name:"meta.block.namespace.cpp",patterns:[{begin:"\\G ?",end:"(?:\\{|<%|\\?\\?<|(?=;))",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.begin.bracket.curly.namespace.cpp"}},name:"meta.head.namespace.cpp",patterns:[{include:"#ever_present_context"},{include:"#attributes_context"},{match:"((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)(?:\\s+)?((?|\\?\\?>",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.namespace.cpp"}},name:"meta.body.namespace.cpp",patterns:[{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.namespace.cpp",patterns:[{include:"$self"}]}]},noexcept_operator:{begin:"((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(operator)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(?:(?:((?:(?:delete\\[\\])|(?:delete)|(?:new\\[\\])|(?:<=>)|(?:<<=)|(?:new)|(?:>>=)|(?:\\->\\*)|(?:\\/=)|(?:%=)|(?:&=)|(?:>=)|(?:\\|=)|(?:\\+\\+)|(?:\\-\\-)|(?:\\(\\))|(?:\\[\\])|(?:\\->)|(?:\\+\\+)|(?:<<)|(?:>>)|(?:\\-\\-)|(?:<=)|(?:\\^=)|(?:==)|(?:!=)|(?:&&)|(?:\\|\\|)|(?:\\+=)|(?:\\-=)|(?:\\*=)|,|\\+|\\-|!|~|\\*|&|\\*|\\/|%|\\+|\\-|<|>|&|\\^|\\||=))|((?|\\?\\?>)|(?=[;>\\[\\]=]))",beginCaptures:{"0":{name:"meta.head.function.definition.special.operator-overload.cpp"},"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"5":{name:"meta.qualified_type.cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{match:"(?",beginCaptures:{"0":{name:"punctuation.section.angle-brackets.begin.template.call.cpp"}},endCaptures:{"0":{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},"6":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"7":{patterns:[{include:"#inline_comment"}]},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{patterns:[{include:"#inline_comment"}]},"12":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"13":{name:"comment.block.cpp"},"14":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"15":{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?|\\?\\?>",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.function.definition.special.operator-overload.cpp"}},name:"meta.body.function.definition.special.operator-overload.cpp",patterns:[{include:"#function_body_context"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.function.definition.special.operator-overload.cpp",patterns:[{include:"$self"}]}]},operators:{patterns:[{begin:"((?>=|\\|=",name:"keyword.operator.assignment.compound.bitwise.cpp"},{match:"<<|>>",name:"keyword.operator.bitwise.shift.cpp"},{match:"!=|<=|>=|==|<|>",name:"keyword.operator.comparison.cpp"},{match:"&&|!|\\|\\|",name:"keyword.operator.logical.cpp"},{match:"&|\\||\\^|~",name:"keyword.operator.bitwise.cpp"},{include:"#assignment_operator"},{match:"%|\\*|\\/|-|\\+",name:"keyword.operator.arithmetic.cpp"},{include:"#ternary_operator"}]},over_qualified_types:{patterns:[{match:"(\\bstruct)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.])",captures:{"0":{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{match:"(?",beginCaptures:{"0":{name:"punctuation.section.angle-brackets.begin.template.call.cpp"}},endCaptures:{"0":{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},"1":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"2":{patterns:[{include:"#inline_comment"}]},"3":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"4":{patterns:[{include:"#inline_comment"}]},"5":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"6":{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+",captures:{"0":{patterns:[{include:"#scope_resolution_inner_generated"}]},"1":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},"2":{patterns:[{include:"#template_call_range"}]}}},scope_resolution_function_call:{match:"(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+",captures:{"0":{patterns:[{include:"#scope_resolution_function_call_inner_generated"}]},"1":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp"},"2":{patterns:[{include:"#template_call_range"}]}}},scope_resolution_function_call_inner_generated:{match:"((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)",captures:{"1":{patterns:[{include:"#scope_resolution_function_call_inner_generated"}]},"2":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp"},"3":{patterns:[{include:"#template_call_range"}]},"4":{},"5":{name:"entity.name.scope-resolution.function.call.cpp"},"6":{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},"7":{},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp"}}},scope_resolution_function_definition:{match:"(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+",captures:{"0":{patterns:[{include:"#scope_resolution_function_definition_inner_generated"}]},"1":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp"},"2":{patterns:[{include:"#template_call_range"}]}}},scope_resolution_function_definition_inner_generated:{match:"((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)",captures:{"1":{patterns:[{include:"#scope_resolution_function_definition_inner_generated"}]},"2":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp"},"3":{patterns:[{include:"#template_call_range"}]},"4":{},"5":{name:"entity.name.scope-resolution.function.definition.cpp"},"6":{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},"7":{},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp"}}},scope_resolution_function_definition_operator_overload:{match:"(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+",captures:{"0":{patterns:[{include:"#scope_resolution_function_definition_operator_overload_inner_generated"}]},"1":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cpp"},"2":{patterns:[{include:"#template_call_range"}]}}},scope_resolution_function_definition_operator_overload_inner_generated:{match:"((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)",captures:{"1":{patterns:[{include:"#scope_resolution_function_definition_operator_overload_inner_generated"}]},"2":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cpp"},"3":{patterns:[{include:"#template_call_range"}]},"4":{},"5":{name:"entity.name.scope-resolution.function.definition.operator-overload.cpp"},"6":{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},"7":{},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cpp"}}},scope_resolution_inner_generated:{match:"((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)",captures:{"1":{patterns:[{include:"#scope_resolution_inner_generated"}]},"2":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},"3":{patterns:[{include:"#template_call_range"}]},"4":{},"5":{name:"entity.name.scope-resolution.cpp"},"6":{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},"7":{},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"}}},scope_resolution_namespace_alias:{match:"(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+",captures:{"0":{patterns:[{include:"#scope_resolution_namespace_alias_inner_generated"}]},"1":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp"},"2":{patterns:[{include:"#template_call_range"}]}}},scope_resolution_namespace_alias_inner_generated:{match:"((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)",captures:{"1":{patterns:[{include:"#scope_resolution_namespace_alias_inner_generated"}]},"2":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp"},"3":{patterns:[{include:"#template_call_range"}]},"4":{},"5":{name:"entity.name.scope-resolution.namespace.alias.cpp"},"6":{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},"7":{},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp"}}},scope_resolution_namespace_block:{match:"(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+",captures:{"0":{patterns:[{include:"#scope_resolution_namespace_block_inner_generated"}]},"1":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp"},"2":{patterns:[{include:"#template_call_range"}]}}},scope_resolution_namespace_block_inner_generated:{match:"((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)",captures:{"1":{patterns:[{include:"#scope_resolution_namespace_block_inner_generated"}]},"2":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp"},"3":{patterns:[{include:"#template_call_range"}]},"4":{},"5":{name:"entity.name.scope-resolution.namespace.block.cpp"},"6":{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},"7":{},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp"}}},scope_resolution_namespace_using:{match:"(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+",captures:{"0":{patterns:[{include:"#scope_resolution_namespace_using_inner_generated"}]},"1":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp"},"2":{patterns:[{include:"#template_call_range"}]}}},scope_resolution_namespace_using_inner_generated:{match:"((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)",captures:{"1":{patterns:[{include:"#scope_resolution_namespace_using_inner_generated"}]},"2":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp"},"3":{patterns:[{include:"#template_call_range"}]},"4":{},"5":{name:"entity.name.scope-resolution.namespace.using.cpp"},"6":{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},"7":{},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp"}}},scope_resolution_parameter:{match:"(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+",captures:{"0":{patterns:[{include:"#scope_resolution_parameter_inner_generated"}]},"1":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp"},"2":{patterns:[{include:"#template_call_range"}]}}},scope_resolution_parameter_inner_generated:{match:"((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)",captures:{"1":{patterns:[{include:"#scope_resolution_parameter_inner_generated"}]},"2":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp"},"3":{patterns:[{include:"#template_call_range"}]},"4":{},"5":{name:"entity.name.scope-resolution.parameter.cpp"},"6":{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},"7":{},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp"}}},scope_resolution_template_call:{match:"(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+",captures:{"0":{patterns:[{include:"#scope_resolution_template_call_inner_generated"}]},"1":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp"},"2":{patterns:[{include:"#template_call_range"}]}}},scope_resolution_template_call_inner_generated:{match:"((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)",captures:{"1":{patterns:[{include:"#scope_resolution_template_call_inner_generated"}]},"2":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp"},"3":{patterns:[{include:"#template_call_range"}]},"4":{},"5":{name:"entity.name.scope-resolution.template.call.cpp"},"6":{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},"7":{},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp"}}},scope_resolution_template_definition:{match:"(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+",captures:{"0":{patterns:[{include:"#scope_resolution_template_definition_inner_generated"}]},"1":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.definition.cpp"},"2":{patterns:[{include:"#template_call_range"}]}}},scope_resolution_template_definition_inner_generated:{match:"((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)",captures:{"1":{patterns:[{include:"#scope_resolution_template_definition_inner_generated"}]},"2":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.definition.cpp"},"3":{patterns:[{include:"#template_call_range"}]},"4":{},"5":{name:"entity.name.scope-resolution.template.definition.cpp"},"6":{name:"meta.template.call.cpp",patterns:[{include:"#template_call_range"}]},"7":{},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.definition.cpp"}}},semicolon:{match:";",name:"punctuation.terminator.statement.cpp"},simple_type:{match:"(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?",captures:{"1":{name:"meta.qualified_type.cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{match:"(?",beginCaptures:{"0":{name:"punctuation.section.angle-brackets.begin.template.call.cpp"}},endCaptures:{"0":{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},"2":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"3":{patterns:[{include:"#inline_comment"}]},"4":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"5":{patterns:[{include:"#inline_comment"}]},"6":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"7":{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))",beginCaptures:{"0":{name:"meta.head.struct.cpp"},"1":{name:"storage.type.$1.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"6":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"7":{patterns:[{include:"#inline_comment"}]},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{patterns:[{match:"((?|\\?\\?>",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.struct.cpp"}},name:"meta.body.struct.cpp",patterns:[{include:"#function_pointer"},{include:"#static_assert"},{include:"#constructor_inline"},{include:"#destructor_inline"},{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.struct.cpp",patterns:[{include:"$self"}]}]},struct_declare:{match:"((?|\\?\\?>)|(?=[;>\\[\\]=]))",beginCaptures:{"0":{name:"meta.head.switch.cpp"},"1":{patterns:[{include:"#inline_comment"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"5":{name:"keyword.control.switch.cpp"}},endCaptures:{},name:"meta.block.switch.cpp",patterns:[{begin:"\\G ?",end:"(?:\\{|<%|\\?\\?<|(?=;))",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.begin.bracket.curly.switch.cpp"}},name:"meta.head.switch.cpp",patterns:[{include:"#switch_conditional_parentheses"},{include:"$self"}]},{begin:"(?<=\\{|<%|\\?\\?<)",end:"\\}|%>|\\?\\?>",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.switch.cpp"}},name:"meta.body.switch.cpp",patterns:[{include:"#default_statement"},{include:"#case_statement"},{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.switch.cpp",patterns:[{include:"$self"}]}]},template_argument_defaulted:{match:"(?<=<|,)(?:\\s+)?((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)\\s+((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:\\s+)?(\\=)",captures:{"1":{name:"storage.type.template.argument.$1.cpp"},"2":{name:"entity.name.type.template.cpp"},"3":{name:"keyword.operator.assignment.cpp"}}},template_call_context:{patterns:[{include:"#ever_present_context"},{include:"#template_call_range"},{include:"#storage_types"},{include:"#language_constants"},{include:"#scope_resolution_template_call_inner_generated"},{include:"#operators"},{include:"#number_literal"},{include:"#string_context"},{include:"#comma_in_template_argument"},{include:"#qualified_type"}]},template_call_innards:{match:"((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+",captures:{"0":{patterns:[{include:"#template_call_range"}]},"2":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"3":{name:"comment.block.cpp"},"4":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}},name:"meta.template.call.cpp"},template_call_range:{begin:"<",end:">",beginCaptures:{"0":{name:"punctuation.section.angle-brackets.begin.template.call.cpp"}},endCaptures:{"0":{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},template_definition:{begin:"(?",beginCaptures:{"1":{name:"storage.type.template.cpp"},"2":{name:"punctuation.section.angle-brackets.begin.template.definition.cpp"}},endCaptures:{"0":{name:"punctuation.section.angle-brackets.end.template.definition.cpp"}},name:"meta.template.definition.cpp",patterns:[{begin:"(?<=\\w)(?:\\s+)?<",end:">",beginCaptures:{"0":{name:"punctuation.section.angle-brackets.begin.template.call.cpp"}},endCaptures:{"0":{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},patterns:[{include:"#template_call_context"}]},{include:"#template_definition_context"}]},template_definition_argument:{match:"((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\s+)+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))|((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:\\s+)?(\\.\\.\\.)(?:\\s+)?((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))|(?)(?:\\s+)?(class|typename)(?:\\s+((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))?)(?:\\s+)?(?:(\\=)(?:\\s+)?(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?(?:(,)|(?=>|$))",captures:{"1":{patterns:[{include:"#inline_comment"}]},"2":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"3":{name:"storage.type.template.argument.$3.cpp"},"4":{patterns:[{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"storage.type.template.argument.$0.cpp"}]},"5":{name:"entity.name.type.template.cpp"},"6":{name:"storage.type.template.argument.$6.cpp"},"7":{name:"punctuation.vararg-ellipses.template.definition.cpp"},"8":{name:"entity.name.type.template.cpp"},"9":{name:"storage.type.template.cpp"},"10":{name:"punctuation.section.angle-brackets.begin.template.definition.cpp"},"11":{name:"storage.type.template.argument.$11.cpp"},"12":{name:"entity.name.type.template.cpp"},"13":{name:"punctuation.section.angle-brackets.end.template.definition.cpp"},"14":{name:"storage.type.template.argument.$14.cpp"},"15":{name:"entity.name.type.template.cpp"},"16":{name:"keyword.operator.assignment.cpp"},"17":{name:"punctuation.separator.delimiter.comma.template.argument.cpp"}}},template_definition_context:{patterns:[{include:"#scope_resolution_template_definition_inner_generated"},{include:"#template_definition_argument"},{include:"#template_argument_defaulted"},{include:"#template_call_innards"},{include:"#evaluation_context"}]},template_explicit_instantiation:{match:"(?)(?:\\s+)?$",captures:{"1":{name:"storage.type.template.cpp"},"2":{name:"punctuation.section.angle-brackets.begin.template.definition.cpp"},"3":{name:"meta.template.definition.cpp",patterns:[{include:"#template_definition_context"}]},"4":{name:"punctuation.section.angle-brackets.end.template.definition.cpp"}}},ternary_operator:{begin:"\\?",end:":",beginCaptures:{"0":{name:"keyword.operator.ternary.cpp"}},endCaptures:{"0":{name:"keyword.operator.ternary.cpp"}},patterns:[{include:"#ever_present_context"},{include:"#string_context"},{include:"#number_literal"},{include:"#method_access"},{include:"#member_access"},{include:"#predefined_macros"},{include:"#operators"},{include:"#memory_operators"},{include:"#wordlike_operators"},{include:"#type_casting_operators"},{include:"#control_flow_keywords"},{include:"#exception_keywords"},{include:"#the_this_keyword"},{include:"#language_constants"},{include:"#builtin_storage_type_initilizer"},{include:"#qualifiers_and_specifiers_post_parameters"},{include:"#functional_specifiers_pre_parameters"},{include:"#storage_types"},{include:"#lambdas"},{include:"#attributes_context"},{include:"#parentheses"},{include:"#function_call"},{include:"#scope_resolution_inner_generated"},{include:"#square_brackets"},{include:"#semicolon"},{include:"#comma"}],applyEndPatternLast:1},the_this_keyword:{match:"((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))|(.*(?",beginCaptures:{"0":{name:"punctuation.section.angle-brackets.begin.template.call.cpp"}},endCaptures:{"0":{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},"9":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"10":{patterns:[{include:"#inline_comment"}]},"11":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"12":{patterns:[{include:"#inline_comment"}]},"13":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"14":{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))",beginCaptures:{"0":{name:"meta.head.class.cpp"},"1":{name:"storage.type.$1.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"6":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"7":{patterns:[{include:"#inline_comment"}]},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{patterns:[{match:"((?|\\?\\?>",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.class.cpp"}},name:"meta.body.class.cpp",patterns:[{include:"#function_pointer"},{include:"#static_assert"},{include:"#constructor_inline"},{include:"#destructor_inline"},{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.class.cpp",patterns:[{match:"(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()(\\*)(?:\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:\\s+)?(?:(\\[)(\\w*)(\\])(?:\\s+)?)*(\\))(?:\\s+)?(\\()",end:"(\\))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=[{=,);>]|\\n)(?!\\()",beginCaptures:{"1":{name:"meta.qualified_type.cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{match:"(?",beginCaptures:{"0":{name:"punctuation.section.angle-brackets.begin.template.call.cpp"}},endCaptures:{"0":{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},"2":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"3":{patterns:[{include:"#inline_comment"}]},"4":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"5":{name:"comment.block.cpp"},"6":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"7":{patterns:[{include:"#inline_comment"}]},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))",beginCaptures:{"0":{name:"meta.head.struct.cpp"},"1":{name:"storage.type.$1.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"6":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"7":{patterns:[{include:"#inline_comment"}]},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{patterns:[{match:"((?|\\?\\?>",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.struct.cpp"}},name:"meta.body.struct.cpp",patterns:[{include:"#function_pointer"},{include:"#static_assert"},{include:"#constructor_inline"},{include:"#destructor_inline"},{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.struct.cpp",patterns:[{match:"(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))",beginCaptures:{"0":{name:"meta.head.union.cpp"},"1":{name:"storage.type.$1.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"6":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"7":{patterns:[{include:"#inline_comment"}]},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{patterns:[{match:"((?|\\?\\?>",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.union.cpp"}},name:"meta.body.union.cpp",patterns:[{include:"#function_pointer"},{include:"#static_assert"},{include:"#constructor_inline"},{include:"#destructor_inline"},{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.union.cpp",patterns:[{match:"(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))",captures:{"1":{name:"storage.modifier.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"4":{patterns:[{include:"#inline_comment"}]},"5":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"6":{name:"meta.qualified_type.cpp",patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"},{match:"(?",beginCaptures:{"0":{name:"punctuation.section.angle-brackets.begin.template.call.cpp"}},endCaptures:{"0":{name:"punctuation.section.angle-brackets.end.template.call.cpp"}},name:"meta.template.call.cpp",patterns:[{include:"#template_call_context"}]},{match:"(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",name:"entity.name.type.cpp"}]},"7":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"8":{patterns:[{include:"#inline_comment"}]},"9":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"10":{patterns:[{include:"#inline_comment"}]},"11":{patterns:[{match:"\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",captures:{"1":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"2":{name:"comment.block.cpp"},"3":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"}}}]},"12":{patterns:[{match:"::",name:"punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"},{match:"(?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))",beginCaptures:{"0":{name:"meta.head.union.cpp"},"1":{name:"storage.type.$1.cpp"},"2":{patterns:[{include:"#inline_comment"}]},"3":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"4":{name:"comment.block.cpp"},"5":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"6":{patterns:[{include:"#attributes_context"},{include:"#number_literal"}]},"7":{patterns:[{include:"#inline_comment"}]},"8":{name:"comment.block.cpp punctuation.definition.comment.begin.cpp"},"9":{name:"comment.block.cpp"},"10":{name:"comment.block.cpp punctuation.definition.comment.end.cpp"},"11":{patterns:[{match:"((?|\\?\\?>",beginCaptures:{},endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.union.cpp"}},name:"meta.body.union.cpp",patterns:[{include:"#function_pointer"},{include:"#static_assert"},{include:"#constructor_inline"},{include:"#destructor_inline"},{include:"$self"}]},{begin:"(?<=\\}|%>|\\?\\?>)[\\s]*",end:"[\\s]*(?=;)",beginCaptures:{},endCaptures:{},name:"meta.tail.union.cpp",patterns:[{include:"$self"}]}]},union_declare:{match:"((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)?((?~]\\s*+(if|unless)))\\b(?![^;]*+;.*?\\bend\\b)|(\"(\\\\.|[^\"])*+\"|'(\\\\.|[^'])*+'|[^#\"'])*(\\{(?![^}]*+\\})|\\[(?![^\\]]*+\\]))).*$|[#].*?\\(fold\\)\\s*+$",foldingStopMarker:"(?x)((^|;)\\s*+end\\s*+([#].*)?$|(^|;)\\s*+end\\..*$|^\\s*+[}\\]] ,?\\s*+([#].*)?$|[#].*?\\(end\\)\\s*+$|^=end)",keyEquivalent:"^~R",patterns:[{captures:{"1":{name:"keyword.control.class.crystal"},"2":{name:"keyword.control.class.crystal"},"3":{name:"entity.name.type.class.crystal"},"5":{name:"punctuation.separator.crystal"},"6":{name:"support.class.other.type-param.crystal"},"7":{name:"entity.other.inherited-class.crystal"},"8":{name:"punctuation.separator.crystal"},"9":{name:"punctuation.separator.crystal"},"10":{name:"support.class.other.type-param.crystal"},"11":{name:"punctuation.definition.variable.crystal"}},match:"(?x)^\\s*(abstract)?\\s*(class|struct|union|annotation|enum)\\s+(([.A-Z_:\\x{80}-\\x{10FFFF}][.\\w:\\x{80}-\\x{10FFFF}]*(\\(([,\\s.a-zA-Z0-9_:\\x{80}-\\x{10FFFF}]+)\\))?(\\s*(<)\\s*[.:A-Z\\x{80}-\\x{10FFFF}][.:\\w\\x{80}-\\x{10FFFF}]*(\\(([.a-zA-Z0-9_:]+\\s,)\\))?)?)|((<<)\\s*[.A-Z0-9_:\\x{80}-\\x{10FFFF}]+))",name:"meta.class.crystal"},{captures:{"1":{name:"keyword.control.module.crystal"},"2":{name:"entity.name.type.module.crystal"},"3":{name:"entity.other.inherited-class.module.first.crystal"},"4":{name:"punctuation.separator.inheritance.crystal"},"5":{name:"entity.other.inherited-class.module.second.crystal"},"6":{name:"punctuation.separator.inheritance.crystal"},"7":{name:"entity.other.inherited-class.module.third.crystal"},"8":{name:"punctuation.separator.inheritance.crystal"}},match:"^\\s*(module)\\s+(([A-Z\\x{80}-\\x{10FFFF}][\\w\\x{80}-\\x{10FFFF}]*(::))?([A-Z\\x{80}-\\x{10FFFF}][\\w\\x{80}-\\x{10FFFF}]*(::))?([A-Z\\x{80}-\\x{10FFFF}][\\w\\x{80}-\\x{10FFFF}]*(::))*[A-Z\\x{80}-\\x{10FFFF}][\\w\\x{80}-\\x{10FFFF}]*)",name:"meta.module.crystal"},{captures:{"1":{name:"keyword.control.lib.crystal"},"2":{name:"entity.name.type.lib.crystal"},"3":{name:"entity.other.inherited-class.lib.first.crystal"},"4":{name:"punctuation.separator.inheritance.crystal"},"5":{name:"entity.other.inherited-class.lib.second.crystal"},"6":{name:"punctuation.separator.inheritance.crystal"},"7":{name:"entity.other.inherited-class.lib.third.crystal"},"8":{name:"punctuation.separator.inheritance.crystal"}},match:"^\\s*(lib)\\s+(([A-Z]\\w*(::))?([A-Z]\\w*(::))?([A-Z]\\w*(::))*[A-Z]\\w*)",name:"meta.lib.crystal"},{captures:{"1":{name:"keyword.control.lib.type.crystal"},"2":{name:"entity.name.lib.type.crystal"},"3":{name:"keyword.control.lib.crystal"},"4":{name:"entity.name.lib.type.value.crystal"}},comment:"type in lib",match:"(?|_|\\*|\\$|\\?|:|\"|-[0adFiIlpv])",name:"variable.other.readwrite.global.pre-defined.crystal"},{begin:"\\b(ENV)\\[",beginCaptures:{"1":{name:"variable.other.constant.crystal"}},end:"\\]",name:"meta.environment-variable.crystal",patterns:[{include:"$self"}]},{match:"\\b[A-Z\\x{80}-\\x{10FFFF}][\\w\\x{80}-\\x{10FFFF}]*",name:"support.class.crystal",comment:"Literals name of Crystal"},{match:"(?[a-zA-Z_]\\w*(?>\\.|::))? # method prefix\n (?> # method name\n [a-zA-Z_]\\w*(?>[?!]|=(?!>))?\n |\n \\^|===?|!=|>[>=]?|<=>|<[<=]?|[%&`/\\|]|\\*\\*?|=?~|[-+]@?|\\[][?=]?|\\[]=?\n )\n)\n\\s*(\\()",beginCaptures:{"1":{name:"keyword.control.def.crystal"},"2":{name:"entity.name.function.crystal"},"3":{name:"punctuation.definition.parameters.crystal"}},comment:"The method pattern comes from the symbol pattern. See there for an explanation.",end:"\\)",endCaptures:{"0":{name:"punctuation.definition.parameters.crystal"}},name:"meta.function.method.with-arguments.crystal",patterns:[{begin:"(?![\\s,)])",end:"(?=,|\\)\\s*$)",patterns:[{captures:{"1":{name:"storage.type.variable.crystal"},"2":{name:"constant.other.symbol.hashkey.parameter.function.crystal"},"3":{name:"punctuation.definition.constant.hashkey.crystal"},"4":{name:"variable.parameter.function.crystal"}},match:"\\G([&*]?)(?:([_a-zA-Z]\\w*(:))|([_a-zA-Z]\\w*))"},{include:"$self"}]}]},{captures:{"1":{name:"keyword.control.def.crystal"},"3":{name:"entity.name.function.crystal"}},comment:" the optional name is just to catch the def also without a method-name",match:"(?x)\n(?=def\\b) # optimization to help Oniguruma fail fast\n(?<=^|\\s)(def)\\b\n(\n \\s+\n (\n (?>[a-zA-Z_]\\w*(?>\\.|::))? # method prefix\n (?> # method name\n [a-zA-Z_]\\w*(?>[?!]|=(?!>))?\n |\n \\^|===?|!=|>[>=]?|<=>|<[<=]?|[%&`/\\|]|\\*\\*?|=?~|[-+]@?|\\[][?=]?|\\[]=?\n )\n )\n)?",name:"meta.function.method.without-arguments.crystal"},{comment:"Floating point literal (fraction)",name:"constant.numeric.float.crystal",match:"\\b[0-9][0-9_]*\\.[0-9][0-9_]*([eE][+-]?[0-9_]+)?(f32|f64)?\\b"},{comment:"Floating point literal (exponent)",name:"constant.numeric.float.crystal",match:"\\b[0-9][0-9_]*(\\.[0-9][0-9_]*)?[eE][+-]?[0-9_]+(f32|f64)?\\b"},{comment:"Floating point literal (typed)",name:"constant.numeric.float.crystal",match:"\\b[0-9][0-9_]*(\\.[0-9][0-9_]*)?([eE][+-]?[0-9_]+)?(f32|f64)\\b"},{comment:"Integer literal (decimal)",name:"constant.numeric.integer.decimal.crystal",match:"\\b(?!0[0-9])[0-9][0-9_]*([ui](8|16|32|64|128))?\\b"},{comment:"Integer literal (hexadecimal)",name:"constant.numeric.integer.hexadecimal.crystal",match:"\\b0x[a-fA-F0-9_]+([ui](8|16|32|64|128))?\\b"},{comment:"Integer literal (octal)",name:"constant.numeric.integer.octal.crystal",match:"\\b0o[0-7_]+([ui](8|16|32|64|128))?\\b"},{comment:"Integer literal (binary)",name:"constant.numeric.integer.binary.crystal",match:"\\b0b[01_]+([ui](8|16|32|64|128))?\\b"},{begin:":'",beginCaptures:{"0":{name:"punctuation.definition.symbol.begin.crystal"}},comment:"symbol literal with '' delimiter",end:"'",endCaptures:{"0":{name:"punctuation.definition.symbol.end.crystal"}},name:"constant.other.symbol.crystal",patterns:[{match:"\\\\['\\\\]",name:"constant.character.escape.crystal"}]},{begin:":\"",beginCaptures:{"0":{name:"punctuation.section.symbol.begin.crystal"}},comment:"symbol literal with \"\" delimiter",end:"\"",endCaptures:{"0":{name:"punctuation.section.symbol.end.crystal"}},name:"constant.other.symbol.interpolated.crystal",patterns:[{include:"#interpolated_crystal"},{include:"#escaped_char"}]},{comment:"Needs higher precedence than regular expressions.",match:"(?",endCaptures:{"0":{name:"punctuation.definition.string.end.crystal"}},name:"string.interpolated.crystal",patterns:[{include:"#interpolated_crystal"},{include:"#escaped_char"},{include:"#nest_ltgt_i"}]},{begin:"%x\\(",beginCaptures:{"0":{name:"punctuation.definition.string.begin.crystal"}},comment:"execute string (allow for interpolation)",end:"\\)",endCaptures:{"0":{name:"punctuation.definition.string.end.crystal"}},name:"string.interpolated.crystal",patterns:[{include:"#interpolated_crystal"},{include:"#escaped_char"},{include:"#nest_parens_i"}]},{begin:"%x\\|",beginCaptures:{"0":{name:"punctuation.definition.string.begin.crystal"}},comment:"execute string (allow for interpolation)",end:"\\|",endCaptures:{"0":{name:"punctuation.definition.string.end.crystal"}},name:"string.interpolated.crystal",patterns:[{include:"#interpolated_crystal"},{include:"#escaped_char"}]},{begin:"(?x) (?: ^| (?<=[=>~(?:\\[,|&;] | [\\s;]if\\s| [\\s;]elsif\\s | [\\s;]while\\s | [\\s;]unless\\s | [\\s;]when\\s | [\\s;]assert_match\\s | [\\s;]or\\s| [\\s;]and\\s | [\\s;]not\\s | [\\s.]index\\s| [\\s.]scan\\s | [\\s.]sub\\s | [\\s.]sub!\\s | [\\s.]gsub\\s | [\\s.]gsub!\\s | [\\s.]match\\s ) | (?<=^when\\s| ^if\\s | ^elsif\\s | ^while\\s | ^unless\\s ) ) \\s*((/))(?![*+{}?])",captures:{"1":{name:"string.regexp.classic.crystal"},"2":{name:"punctuation.definition.string.crystal"}},comment:"regular expressions (normal) we only start a regexp if the character before it (excluding whitespace) is what we think is before a regexp",contentName:"string.regexp.classic.crystal",end:"((/[imsx]*))",patterns:[{include:"#regex_sub"}]},{begin:"%r\\{",beginCaptures:{"0":{name:"punctuation.definition.string.begin.crystal"}},comment:"regular expressions (literal)",end:"\\}[imsx]*",endCaptures:{"0":{name:"punctuation.definition.string.end.crystal"}},name:"string.regexp.mod-r.crystal",patterns:[{include:"#regex_sub"},{include:"#nest_curly_r"}]},{begin:"%r\\[",beginCaptures:{"0":{name:"punctuation.definition.string.begin.crystal"}},comment:"regular expressions (literal)",end:"\\][imsx]*",endCaptures:{"0":{name:"punctuation.definition.string.end.crystal"}},name:"string.regexp.mod-r.crystal",patterns:[{include:"#regex_sub"},{include:"#nest_brackets_r"}]},{begin:"%r\\(",beginCaptures:{"0":{name:"punctuation.definition.string.begin.crystal"}},comment:"regular expressions (literal)",end:"\\)[imsx]*",endCaptures:{"0":{name:"punctuation.definition.string.end.crystal"}},name:"string.regexp.mod-r.crystal",patterns:[{include:"#regex_sub"},{include:"#nest_parens_r"}]},{begin:"%r\\<",beginCaptures:{"0":{name:"punctuation.definition.string.begin.crystal"}},comment:"regular expressions (literal)",end:"\\>[imsx]*",endCaptures:{"0":{name:"punctuation.definition.string.end.crystal"}},name:"string.regexp.mod-r.crystal",patterns:[{include:"#regex_sub"},{include:"#nest_ltgt_r"}]},{begin:"%r\\|",beginCaptures:{"0":{name:"punctuation.definition.string.begin.crystal"}},comment:"regular expressions (literal)",end:"\\|[imsx]*",endCaptures:{"0":{name:"punctuation.definition.string.end.crystal"}},name:"string.regexp.mod-r.crystal",patterns:[{include:"#regex_sub"}]},{begin:"%Q?\\(",beginCaptures:{"0":{name:"punctuation.definition.string.begin.crystal"}},comment:"literal capable of interpolation ()",end:"\\)",endCaptures:{"0":{name:"punctuation.definition.string.end.crystal"}},name:"string.quoted.other.literal.upper.crystal",patterns:[{include:"#interpolated_crystal"},{include:"#escaped_char"},{include:"#nest_parens_i"}]},{begin:"%Q?\\[",beginCaptures:{"0":{name:"punctuation.definition.string.begin.crystal"}},comment:"literal capable of interpolation []",end:"\\]",endCaptures:{"0":{name:"punctuation.definition.string.end.crystal"}},name:"string.quoted.other.literal.upper.crystal",patterns:[{include:"#interpolated_crystal"},{include:"#escaped_char"},{include:"#nest_brackets_i"}]},{begin:"%Q?\\<",beginCaptures:{"0":{name:"punctuation.definition.string.begin.crystal"}},comment:"literal capable of interpolation <>",end:"\\>",endCaptures:{"0":{name:"punctuation.definition.string.end.crystal"}},name:"string.quoted.other.literal.upper.crystal",patterns:[{include:"#interpolated_crystal"},{include:"#escaped_char"},{include:"#nest_ltgt_i"}]},{begin:"%Q?\\{",beginCaptures:{"0":{name:"punctuation.definition.string.begin.crystal"}},comment:"literal capable of interpolation -- {}",end:"\\}",endCaptures:{"0":{name:"punctuation.definition.string.end.crystal"}},name:"string.quoted.double.crystal.mod",patterns:[{include:"#interpolated_crystal"},{include:"#escaped_char"},{include:"#nest_curly_i"}]},{begin:"%Q\\|",beginCaptures:{"0":{name:"punctuation.definition.string.begin.crystal"}},comment:"literal capable of interpolation -- ||",end:"\\|",endCaptures:{"0":{name:"punctuation.definition.string.end.crystal"}},name:"string.quoted.other.literal.upper.crystal",patterns:[{include:"#interpolated_crystal"},{include:"#escaped_char"}]},{begin:"%[qwi]\\(",beginCaptures:{"0":{name:"punctuation.definition.string.begin.crystal"}},comment:"literal incapable of interpolation -- ()",end:"\\)",endCaptures:{"0":{name:"punctuation.definition.string.end.crystal"}},name:"string.quoted.other.literal.lower.crystal",patterns:[{match:"\\\\\\)|\\\\\\\\",name:"constant.character.escape.crystal"},{include:"#nest_parens"}]},{begin:"%[qwi]\\<",beginCaptures:{"0":{name:"punctuation.definition.string.begin.crystal"}},comment:"literal incapable of interpolation -- <>",end:"\\>",endCaptures:{"0":{name:"punctuation.definition.string.end.crystal"}},name:"string.quoted.other.literal.lower.crystal",patterns:[{match:"\\\\\\>|\\\\\\\\",name:"constant.character.escape.crystal"},{include:"#nest_ltgt"}]},{begin:"%[qwi]\\[",beginCaptures:{"0":{name:"punctuation.definition.string.begin.crystal"}},comment:"literal incapable of interpolation -- []",end:"\\]",endCaptures:{"0":{name:"punctuation.definition.string.end.crystal"}},name:"string.quoted.other.literal.lower.crystal",patterns:[{match:"\\\\\\]|\\\\\\\\",name:"constant.character.escape.crystal"},{include:"#nest_brackets"}]},{begin:"%[qwi]\\{",beginCaptures:{"0":{name:"punctuation.definition.string.begin.crystal"}},comment:"literal incapable of interpolation -- {}",end:"\\}",endCaptures:{"0":{name:"punctuation.definition.string.end.crystal"}},name:"string.quoted.other.literal.lower.crystal",patterns:[{match:"\\\\\\}|\\\\\\\\",name:"constant.character.escape.crystal"},{include:"#nest_curly"}]},{begin:"%[qwi]\\|",beginCaptures:{"0":{name:"punctuation.definition.string.begin.crystal"}},comment:"literal incapable of interpolation -- ||",end:"\\|",endCaptures:{"0":{name:"punctuation.definition.string.end.crystal"}},name:"string.quoted.other.literal.lower.crystal",patterns:[{comment:"Cant be named because its not necessarily an escape.",match:"\\\\."}]},{captures:{"1":{name:"punctuation.definition.constant.crystal"}},comment:"symbols",match:"(?[a-zA-Z_\\x{80}-\\x{10FFFF}][\\w\\x{80}-\\x{10FFFF}]*(?>[?!]|=(?![>=]))?|===?|>[>=]?|<[<=]?|<=>|[%&`/\\|]|\\*\\*?|=?~|[-+]@?|\\[\\][?=]?|@@?[a-zA-Z_\\x{80}-\\x{10FFFF}][\\w\\x{80}-\\x{10FFFF}]*)",name:"constant.other.symbol.crystal"},{captures:{"1":{name:"punctuation.definition.constant.crystal"}},comment:"symbols",match:"(?>[a-zA-Z_\\x{80}-\\x{10FFFF}][\\w\\x{80}-\\x{10FFFF}]*(?>[?!])?)(:)(?!:)",name:"constant.other.symbol.crystal.19syntax"},{captures:{"1":{name:"punctuation.definition.comment.crystal"}},match:"(?:^[ \\t]+)?(#).*$\\n?",name:"comment.line.number-sign.crystal"},{match:"\\b_([\\w]+[?!]?)",name:"comment.unused.crystal"},{begin:"(?><<-('?)((?:[_\\w]+_|)HTML)\\b\\1)",beginCaptures:{"0":{name:"punctuation.definition.string.begin.crystal"}},comment:"heredoc with embedded HTML and indented terminator",contentName:"text.html.embedded.crystal",end:"\\s*\\2\\b",endCaptures:{"0":{name:"punctuation.definition.string.end.crystal"}},name:"string.unquoted.embedded.html.crystal",patterns:[{include:"#heredoc"},{include:"text.html.basic"},{include:"#interpolated_crystal"},{include:"#escaped_char"}]},{begin:"(?><<-('?)((?:[_\\w]+_|)SQL)\\b\\1)",beginCaptures:{"0":{name:"punctuation.definition.string.begin.crystal"}},comment:"heredoc with embedded SQL and indented terminator",contentName:"text.sql.embedded.crystal",end:"\\s*\\2\\b",endCaptures:{"0":{name:"punctuation.definition.string.end.crystal"}},name:"string.unquoted.embedded.sql.crystal",patterns:[{include:"#heredoc"},{include:"source.sql"},{include:"#interpolated_crystal"},{include:"#escaped_char"}]},{begin:"(?><<-('?)((?:[_\\w]+_|)CSS)\\b\\1)",beginCaptures:{"0":{name:"punctuation.definition.string.begin.crystal"}},comment:"heredoc with embedded css and intented terminator",contentName:"text.css.embedded.crystal",end:"\\s*\\2\\b",endCaptures:{"0":{name:"punctuation.definition.string.end.crystal"}},name:"string.unquoted.embedded.css.crystal",patterns:[{include:"#heredoc"},{include:"source.css"},{include:"#interpolated_crystal"},{include:"#escaped_char"}]},{begin:"(?><<-('?)((?:[_\\w]+_|)CPP)\\b\\1)",beginCaptures:{"0":{name:"punctuation.definition.string.begin.crystal"}},comment:"heredoc with embedded c++ and intented terminator",contentName:"text.c++.embedded.crystal",end:"\\s*\\2\\b",endCaptures:{"0":{name:"punctuation.definition.string.end.crystal"}},name:"string.unquoted.embedded.cplusplus.crystal",patterns:[{include:"#heredoc"},{include:"source.c++"},{include:"#interpolated_crystal"},{include:"#escaped_char"}]},{begin:"(?><<-('?)((?:[_\\w]+_|)C)\\b\\1)",beginCaptures:{"0":{name:"punctuation.definition.string.begin.crystal"}},comment:"heredoc with embedded c++ and intented terminator",contentName:"text.c.embedded.crystal",end:"\\s*\\2\\b",endCaptures:{"0":{name:"punctuation.definition.string.end.crystal"}},name:"string.unquoted.embedded.c.crystal",patterns:[{include:"#heredoc"},{include:"source.c"},{include:"#interpolated_crystal"},{include:"#escaped_char"}]},{begin:"(?><<-('?)((?:[_\\w]+_|)(?:JS|JAVASCRIPT))\\b\\1)",beginCaptures:{"0":{name:"punctuation.definition.string.begin.crystal"}},comment:"heredoc with embedded javascript and intented terminator",contentName:"text.js.embedded.crystal",end:"\\s*\\2\\b",endCaptures:{"0":{name:"punctuation.definition.string.end.crystal"}},name:"string.unquoted.embedded.js.crystal",patterns:[{include:"#heredoc"},{include:"source.js"},{include:"#interpolated_crystal"},{include:"#escaped_char"}]},{begin:"(?><<-('?)((?:[_\\w]+_|)JQUERY)\\b\\1)",beginCaptures:{"0":{name:"punctuation.definition.string.begin.crystal"}},comment:"heredoc with embedded javascript and intented terminator",contentName:"text.js.jquery.embedded.crystal",end:"\\s*\\2\\b",endCaptures:{"0":{name:"punctuation.definition.string.end.crystal"}},name:"string.unquoted.embedded.js.jquery.crystal",patterns:[{include:"#heredoc"},{include:"source.js.jquery"},{include:"#interpolated_crystal"},{include:"#escaped_char"}]},{begin:"(?><<-('?)((?:[_\\w]+_|)(?:SH|SHELL))\\b\\1)",beginCaptures:{"0":{name:"punctuation.definition.string.begin.crystal"}},comment:"heredoc with embedded shell and intented terminator",contentName:"text.shell.embedded.crystal",end:"\\s*\\2\\b",endCaptures:{"0":{name:"punctuation.definition.string.end.crystal"}},name:"string.unquoted.embedded.shell.crystal",patterns:[{include:"#heredoc"},{include:"source.shell"},{include:"#interpolated_crystal"},{include:"#escaped_char"}]},{begin:"(?><<-('?)((?:[_\\w]+_|)CRYSTAL)\\b\\1)",beginCaptures:{"0":{name:"punctuation.definition.string.begin.crystal"}},comment:"heredoc with embedded crystal and intented terminator",contentName:"text.crystal.embedded.crystal",end:"\\s*\\2\\b",endCaptures:{"0":{name:"punctuation.definition.string.end.crystal"}},name:"string.unquoted.embedded.crystal.crystal",patterns:[{include:"#heredoc"},{include:"source.crystal"},{include:"#interpolated_crystal"},{include:"#escaped_char"}]},{begin:"(?><<-'(\\w+)')",beginCaptures:{"0":{name:"punctuation.definition.string.begin.crystal"}},comment:"heredoc with indented terminator",end:"\\s*\\1\\b",endCaptures:{"0":{name:"punctuation.definition.string.end.crystal"}},name:"string.unquoted.heredoc.crystal",patterns:[{include:"#heredoc"},{include:"#escaped_char"}]},{begin:"(?><<-(\\w+)\\b)",beginCaptures:{"0":{name:"punctuation.definition.string.begin.crystal"}},comment:"heredoc with indented terminator",end:"\\s*\\1\\b",endCaptures:{"0":{name:"punctuation.definition.string.end.crystal"}},name:"string.unquoted.heredoc.crystal",patterns:[{include:"#heredoc"},{include:"#interpolated_crystal"},{include:"#escaped_char"}]},{begin:"(?<={|{\\s|[^A-Za-z0-9_]do|^do|[^A-Za-z0-9_]do\\s|^do\\s)(\\|)",captures:{"1":{name:"punctuation.separator.variable.crystal"}},end:"(?",name:"punctuation.separator.key-value"},{match:"->",name:"support.function.kernel.crystal"},{match:"<<=|%=|&{1,2}=|\\*=|\\*\\*=|\\+=|-=|\\^=|\\|{1,2}=|<<",name:"keyword.operator.assignment.augmented.crystal"},{match:"<=>|<(?!<|=)|>(?!<|=|>)|<=|>=|===|==|=~|!=|!~|(?<=[ \\t])\\?",name:"keyword.operator.comparison.crystal"},{match:"(?<=^|[ \\t])!|&&|\\|\\||\\^",name:"keyword.operator.logical.crystal"},{match:"(\\{\\%|\\%\\}|\\{\\{|\\}\\})",name:"keyword.operator.macro.crystal"},{comment:"Safe navigation operator",match:"(&\\.)\\s*(?![A-Z])",captures:{"1":{name:"punctuation.separator.method.crystal"}}},{match:"(%|&|\\*\\*|\\*|\\+|\\-|/)",name:"keyword.operator.arithmetic.crystal"},{match:"=",name:"keyword.operator.assignment.crystal"},{match:"\\||~|>>",name:"keyword.operator.other.crystal"},{match:":",name:"punctuation.separator.other.crystal"},{match:"\\;",name:"punctuation.separator.statement.crystal"},{match:",",name:"punctuation.separator.object.crystal"},{match:"\\.|::",name:"punctuation.separator.method.crystal"},{match:"\\{|\\}",name:"punctuation.section.scope.crystal"},{match:"\\[|\\]",name:"punctuation.section.array.crystal"},{match:"\\(|\\)",name:"punctuation.section.function.crystal"},{begin:"(?=[a-zA-Z0-9_!?]+\\()",end:"(?<=\\))",name:"meta.function-call.crystal",patterns:[{match:"([a-zA-Z0-9_!?]+)(?=\\()",name:"entity.name.function.crystal"},{include:"$self"}]},{comment:"This is kindof experimental. There really is no way to perfectly match all regular variables, but you can pretty well assume that any normal word in certain curcumstances that havnt already been scoped as something else are probably variables, and the advantages beat the potential errors",match:"((?<=\\W)\\b|^)\\w+\\b(?=\\s*([\\]\\)\\}\\=\\+\\-\\*\\/\\^\\$\\,\\.]|<\\s|<<[\\s|\\.]))",name:"variable.other.crystal"}],repository:{escaped_char:{comment:"https://crystal-lang.org/reference/syntax_and_semantics/literals/string.html",match:"\\\\(?:[0-7]{1,3}|x[a-fA-F0-9]{2}|u[a-fA-F0-9]{4}|u\\{[a-fA-F0-9 ]+\\}|.)",name:"constant.character.escape.crystal"},heredoc:{begin:"^<<-?\\w+",end:"$",patterns:[{include:"$self"}]},interpolated_crystal:{patterns:[{begin:"#\\{",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.crystal"}},contentName:"source.crystal",end:"(\\})",endCaptures:{"0":{name:"punctuation.section.embedded.end.crystal"},"1":{name:"source.crystal"}},name:"meta.embedded.line.crystal",patterns:[{include:"#nest_curly_and_self"},{include:"$self"}],repository:{nest_curly_and_self:{patterns:[{begin:"\\{",captures:{"0":{name:"punctuation.section.scope.crystal"}},end:"\\}",patterns:[{include:"#nest_curly_and_self"}]},{include:"$self"}]}}},{captures:{"1":{name:"punctuation.definition.variable.crystal"}},match:"(#@)[a-zA-Z_]\\w*",name:"variable.other.readwrite.instance.crystal"},{captures:{"1":{name:"punctuation.definition.variable.crystal"}},match:"(#@@)[a-zA-Z_]\\w*",name:"variable.other.readwrite.class.crystal"},{captures:{"1":{name:"punctuation.definition.variable.crystal"}},match:"(#\\$)[a-zA-Z_]\\w*",name:"variable.other.readwrite.global.crystal"}]},nest_brackets:{begin:"\\[",captures:{"0":{name:"punctuation.section.scope.crystal"}},end:"\\]",patterns:[{include:"#nest_brackets"}]},nest_brackets_i:{begin:"\\[",captures:{"0":{name:"punctuation.section.scope.crystal"}},end:"\\]",patterns:[{include:"#interpolated_crystal"},{include:"#escaped_char"},{include:"#nest_brackets_i"}]},nest_brackets_r:{begin:"\\[",captures:{"0":{name:"punctuation.section.scope.crystal"}},end:"\\]",patterns:[{include:"#regex_sub"},{include:"#nest_brackets_r"}]},nest_curly:{begin:"\\{",captures:{"0":{name:"punctuation.section.scope.crystal"}},end:"\\}",patterns:[{include:"#nest_curly"}]},nest_curly_and_self:{patterns:[{begin:"\\{",captures:{"0":{name:"punctuation.section.scope.crystal"}},end:"\\}",patterns:[{include:"#nest_curly_and_self"}]},{include:"$self"}]},nest_curly_i:{begin:"\\{",captures:{"0":{name:"punctuation.section.scope.crystal"}},end:"\\}",patterns:[{include:"#interpolated_crystal"},{include:"#escaped_char"},{include:"#nest_curly_i"}]},nest_curly_r:{begin:"\\{",captures:{"0":{name:"punctuation.section.scope.crystal"}},end:"\\}",patterns:[{include:"#regex_sub"},{include:"#nest_curly_r"}]},nest_ltgt:{begin:"\\<",captures:{"0":{name:"punctuation.section.scope.crystal"}},end:"\\>",patterns:[{include:"#nest_ltgt"}]},nest_ltgt_i:{begin:"\\<",captures:{"0":{name:"punctuation.section.scope.crystal"}},end:"\\>",patterns:[{include:"#interpolated_crystal"},{include:"#escaped_char"},{include:"#nest_ltgt_i"}]},nest_ltgt_r:{begin:"\\<",captures:{"0":{name:"punctuation.section.scope.crystal"}},end:"\\>",patterns:[{include:"#regex_sub"},{include:"#nest_ltgt_r"}]},nest_parens:{begin:"\\(",captures:{"0":{name:"punctuation.section.scope.crystal"}},end:"\\)",patterns:[{include:"#nest_parens"}]},nest_parens_i:{begin:"\\(",captures:{"0":{name:"punctuation.section.scope.crystal"}},end:"\\)",patterns:[{include:"#interpolated_crystal"},{include:"#escaped_char"},{include:"#nest_parens_i"}]},nest_parens_r:{begin:"\\(",captures:{"0":{name:"punctuation.section.scope.crystal"}},end:"\\)",patterns:[{include:"#regex_sub"},{include:"#nest_parens_r"}]},regex_sub:{patterns:[{include:"#interpolated_crystal"},{include:"#escaped_char"},{captures:{"1":{name:"punctuation.definition.arbitrary-repetition.crystal"},"3":{name:"punctuation.definition.arbitrary-repetition.crystal"}},match:"({)\\d+(,\\d+)?(})",name:"string.regexp.arbitrary-repetition.crystal"},{begin:"\\[(?:\\^?])?",captures:{"0":{name:"punctuation.definition.character-class.crystal"}},end:"]",name:"string.regexp.character-class.crystal",patterns:[{include:"#escaped_char"}]},{begin:"\\(",captures:{"0":{name:"punctuation.definition.group.crystal"}},end:"\\)",name:"string.regexp.group.crystal",patterns:[{include:"#regex_sub"}]},{captures:{"1":{name:"punctuation.definition.comment.crystal"}},comment:"We are restrictive in what we allow to go after the comment character to avoid false positives, since the availability of comments depend on regexp flags.",match:"(?<=^|\\s)(#)\\s[[a-zA-Z0-9,. \\t?!-][^\\x{00}-\\x{7F}]]*$",name:"comment.line.number-sign.crystal"}]}}}; + +export { crystal_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/csharp.tmLanguage-35a94c19.mjs b/docs/shiki/dist/languages/csharp.tmLanguage-35a94c19.mjs new file mode 100644 index 00000000..c750e3ff --- /dev/null +++ b/docs/shiki/dist/languages/csharp.tmLanguage-35a94c19.mjs @@ -0,0 +1,3 @@ +var csharp_tmLanguage = {name:"csharp",scopeName:"source.cs",fileTypes:["cs"],uuid:"f7de61e2-bdde-4e2a-a139-8221b179584e",patterns:[{include:"#preprocessor"},{include:"#comment"},{include:"#directives"},{include:"#declarations"},{include:"#script-top-level"}],repository:{directives:{patterns:[{include:"#extern-alias-directive"},{include:"#using-directive"},{include:"#attribute-section"},{include:"#punctuation-semicolon"}]},declarations:{patterns:[{include:"#namespace-declaration"},{include:"#type-declarations"},{include:"#punctuation-semicolon"}]},"script-top-level":{patterns:[{include:"#statement"},{include:"#method-declaration"},{include:"#punctuation-semicolon"}]},"type-declarations":{patterns:[{include:"#preprocessor"},{include:"#comment"},{include:"#storage-modifier"},{include:"#class-declaration"},{include:"#delegate-declaration"},{include:"#enum-declaration"},{include:"#interface-declaration"},{include:"#struct-declaration"},{include:"#record-declaration"},{include:"#attribute-section"},{include:"#punctuation-semicolon"}]},"class-or-struct-members":{patterns:[{include:"#preprocessor"},{include:"#comment"},{include:"#storage-modifier"},{include:"#type-declarations"},{include:"#property-declaration"},{include:"#field-declaration"},{include:"#event-declaration"},{include:"#indexer-declaration"},{include:"#variable-initializer"},{include:"#constructor-declaration"},{include:"#destructor-declaration"},{include:"#operator-declaration"},{include:"#conversion-operator-declaration"},{include:"#method-declaration"},{include:"#attribute-section"},{include:"#punctuation-semicolon"}]},"interface-members":{patterns:[{include:"#preprocessor"},{include:"#comment"},{include:"#property-declaration"},{include:"#event-declaration"},{include:"#indexer-declaration"},{include:"#method-declaration"},{include:"#attribute-section"},{include:"#punctuation-semicolon"}]},statement:{patterns:[{include:"#preprocessor"},{include:"#comment"},{include:"#while-statement"},{include:"#do-statement"},{include:"#for-statement"},{include:"#foreach-statement"},{include:"#if-statement"},{include:"#else-part"},{include:"#switch-statement"},{include:"#goto-statement"},{include:"#return-statement"},{include:"#break-or-continue-statement"},{include:"#throw-statement"},{include:"#yield-statement"},{include:"#await-statement"},{include:"#try-statement"},{include:"#checked-unchecked-statement"},{include:"#lock-statement"},{include:"#using-statement"},{include:"#labeled-statement"},{include:"#object-creation-expression"},{include:"#array-creation-expression"},{include:"#anonymous-object-creation-expression"},{include:"#local-declaration"},{include:"#block"},{include:"#expression"},{include:"#punctuation-semicolon"}]},expression:{patterns:[{include:"#preprocessor"},{include:"#comment"},{include:"#checked-unchecked-expression"},{include:"#typeof-or-default-expression"},{include:"#nameof-expression"},{include:"#default-literal-expression"},{include:"#throw-expression"},{include:"#raw-interpolated-string"},{include:"#interpolated-string"},{include:"#verbatim-interpolated-string"},{include:"#type-builtin"},{include:"#language-variable"},{include:"#switch-expression"},{include:"#with-expression"},{include:"#conditional-operator"},{include:"#expression-operators"},{include:"#await-expression"},{include:"#query-expression"},{include:"#as-expression"},{include:"#is-expression"},{include:"#anonymous-method-expression"},{include:"#object-creation-expression"},{include:"#array-creation-expression"},{include:"#anonymous-object-creation-expression"},{include:"#invocation-expression"},{include:"#member-access-expression"},{include:"#element-access-expression"},{include:"#cast-expression"},{include:"#literal"},{include:"#parenthesized-expression"},{include:"#tuple-deconstruction-assignment"},{include:"#initializer-expression"},{include:"#identifier"}]},"extern-alias-directive":{begin:"\\s*(extern)\\b\\s*(alias)\\b\\s*(@?[_[:alpha:]][_[:alnum:]]*)",beginCaptures:{"1":{name:"keyword.other.extern.cs"},"2":{name:"keyword.other.alias.cs"},"3":{name:"variable.other.alias.cs"}},end:"(?=;)"},"using-directive":{patterns:[{begin:"(\\b(global)\\b\\s+)?\\b(using)\\b\\s+(static)\\b\\s+(\\b(unsafe)\\b\\s+)?",beginCaptures:{"2":{name:"keyword.other.global.cs"},"3":{name:"keyword.other.using.cs"},"4":{name:"keyword.other.static.cs"},"6":{name:"storage.modifier.cs"}},end:"(?=;)",patterns:[{include:"#type"}]},{begin:"(\\b(global)\\b\\s+)?\\b(using)\\b\\s+(\\b(unsafe)\\b\\s+)?(?=(@?[_[:alpha:]][_[:alnum:]]*)\\s*=)",beginCaptures:{"2":{name:"keyword.other.global.cs"},"3":{name:"keyword.other.using.cs"},"5":{name:"storage.modifier.cs"},"6":{name:"entity.name.type.alias.cs"}},end:"(?=;)",patterns:[{include:"#comment"},{include:"#type"},{include:"#operator-assignment"}]},{begin:"(\\b(global)\\b\\s+)?\\b(using)\\s*(?!\\(|\\s|var)",beginCaptures:{"2":{name:"keyword.other.global.cs"},"3":{name:"keyword.other.using.cs"}},end:"(?=;)",patterns:[{include:"#comment"},{name:"entity.name.type.namespace.cs",match:"@?[_[:alpha:]][_[:alnum:]]*"},{include:"#operator-assignment"}]}]},"attribute-section":{begin:"(\\[)(assembly|module|field|event|method|param|property|return|type)?(\\:)?",beginCaptures:{"1":{name:"punctuation.squarebracket.open.cs"},"2":{name:"keyword.other.attribute-specifier.cs"},"3":{name:"punctuation.separator.colon.cs"}},end:"(\\])",endCaptures:{"1":{name:"punctuation.squarebracket.close.cs"}},patterns:[{include:"#comment"},{include:"#attribute"},{include:"#punctuation-comma"}]},attribute:{patterns:[{include:"#type-name"},{include:"#attribute-arguments"}]},"attribute-arguments":{begin:"(\\()",beginCaptures:{"1":{name:"punctuation.parenthesis.open.cs"}},end:"(\\))",endCaptures:{"1":{name:"punctuation.parenthesis.close.cs"}},patterns:[{include:"#attribute-named-argument"},{include:"#expression"},{include:"#punctuation-comma"}]},"attribute-named-argument":{begin:"(@?[_[:alpha:]][_[:alnum:]]*)\\s*(?==)",beginCaptures:{"1":{name:"entity.name.variable.property.cs"}},end:"(?=(,|\\)))",patterns:[{include:"#operator-assignment"},{include:"#expression"}]},"namespace-declaration":{begin:"\\b(namespace)\\s+",beginCaptures:{"1":{name:"keyword.other.namespace.cs"}},end:"(?<=\\})|(?=;)",patterns:[{include:"#comment"},{name:"entity.name.type.namespace.cs",match:"@?[_[:alpha:]][_[:alnum:]]*"},{include:"#punctuation-accessor"},{begin:"\\{",beginCaptures:{"0":{name:"punctuation.curlybrace.open.cs"}},end:"\\}",endCaptures:{"0":{name:"punctuation.curlybrace.close.cs"}},patterns:[{include:"#declarations"},{include:"#using-directive"},{include:"#punctuation-semicolon"}]}]},"storage-modifier":{name:"storage.modifier.cs",match:"(?\n (?:\n (?:ref\\s+(?:readonly\\s+)?)? # ref return\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)\\s+\n(\\g)\\s*\n(<([^<>]+)>)?\\s*\n(?=\\()",beginCaptures:{"1":{name:"keyword.other.delegate.cs"},"2":{patterns:[{include:"#type"}]},"7":{name:"entity.name.type.delegate.cs"},"8":{patterns:[{include:"#type-parameter-list"}]}},end:"(?=;)",patterns:[{include:"#comment"},{include:"#parenthesized-parameter-list"},{include:"#generic-constraints"}]},"enum-declaration":{begin:"(?=\\benum\\b)",end:"(?<=\\})",patterns:[{begin:"(?=enum)",end:"(?=\\{)",patterns:[{include:"#comment"},{match:"(enum)\\s+(@?[_[:alpha:]][_[:alnum:]]*)",captures:{"1":{name:"keyword.other.enum.cs"},"2":{name:"entity.name.type.enum.cs"}}},{begin:":",beginCaptures:{"0":{name:"punctuation.separator.colon.cs"}},end:"(?=\\{)",patterns:[{include:"#type"}]}]},{begin:"\\{",beginCaptures:{"0":{name:"punctuation.curlybrace.open.cs"}},end:"\\}",endCaptures:{"0":{name:"punctuation.curlybrace.close.cs"}},patterns:[{include:"#preprocessor"},{include:"#comment"},{include:"#attribute-section"},{include:"#punctuation-comma"},{begin:"@?[_[:alpha:]][_[:alnum:]]*",beginCaptures:{"0":{name:"entity.name.variable.enum-member.cs"}},end:"(?=(,|\\}))",patterns:[{include:"#comment"},{include:"#variable-initializer"}]}]},{include:"#preprocessor"},{include:"#comment"}]},"interface-declaration":{begin:"(?=\\binterface\\b)",end:"(?<=\\})",patterns:[{begin:"(?x)\n(interface)\\b\\s+\n(@?[_[:alpha:]][_[:alnum:]]*)",beginCaptures:{"1":{name:"keyword.other.interface.cs"},"2":{name:"entity.name.type.interface.cs"}},end:"(?=\\{)",patterns:[{include:"#comment"},{include:"#type-parameter-list"},{include:"#base-types"},{include:"#generic-constraints"}]},{begin:"\\{",beginCaptures:{"0":{name:"punctuation.curlybrace.open.cs"}},end:"\\}",endCaptures:{"0":{name:"punctuation.curlybrace.close.cs"}},patterns:[{include:"#interface-members"}]},{include:"#preprocessor"},{include:"#comment"}]},"record-declaration":{begin:"(?=\\brecord\\b)",end:"(?<=\\})|(?=;)",patterns:[{begin:"(?x)\n(record)\\b\\s+\n(@?[_[:alpha:]][_[:alnum:]]*)",beginCaptures:{"1":{name:"keyword.other.record.cs"},"2":{name:"entity.name.type.class.cs"}},end:"(?=\\{)|(?=;)",patterns:[{include:"#comment"},{include:"#type-parameter-list"},{include:"#parenthesized-parameter-list"},{include:"#base-types"},{include:"#generic-constraints"}]},{begin:"\\{",beginCaptures:{"0":{name:"punctuation.curlybrace.open.cs"}},end:"\\}",endCaptures:{"0":{name:"punctuation.curlybrace.close.cs"}},patterns:[{include:"#class-or-struct-members"}]},{include:"#preprocessor"},{include:"#comment"}]},"struct-declaration":{begin:"(?=(\\brecord\\b\\s+)?\\bstruct\\b)",end:"(?<=\\})|(?=;)",patterns:[{begin:"(?x)\n(\\b(record)\\b\\s+)?\n(struct)\\b\\s+\n(@?[_[:alpha:]][_[:alnum:]]*)",beginCaptures:{"2":{name:"keyword.other.record.cs"},"3":{name:"keyword.other.struct.cs"},"4":{name:"entity.name.type.struct.cs"}},end:"(?=\\{)|(?=;)",patterns:[{include:"#comment"},{include:"#type-parameter-list"},{include:"#parenthesized-parameter-list"},{include:"#base-types"},{include:"#generic-constraints"}]},{begin:"\\{",beginCaptures:{"0":{name:"punctuation.curlybrace.open.cs"}},end:"\\}",endCaptures:{"0":{name:"punctuation.curlybrace.close.cs"}},patterns:[{include:"#class-or-struct-members"}]},{include:"#preprocessor"},{include:"#comment"}]},"type-parameter-list":{begin:"\\<",beginCaptures:{"0":{name:"punctuation.definition.typeparameters.begin.cs"}},end:"\\>",endCaptures:{"0":{name:"punctuation.definition.typeparameters.end.cs"}},patterns:[{match:"\\b(in|out)\\b",captures:{"1":{name:"storage.modifier.cs"}}},{match:"(@?[_[:alpha:]][_[:alnum:]]*)\\b",captures:{"1":{name:"entity.name.type.type-parameter.cs"}}},{include:"#comment"},{include:"#punctuation-comma"},{include:"#attribute-section"}]},"base-types":{begin:":",beginCaptures:{"0":{name:"punctuation.separator.colon.cs"}},end:"(?=\\{|where|;)",patterns:[{include:"#type"},{include:"#punctuation-comma"},{include:"#preprocessor"}]},"generic-constraints":{begin:"(where)\\s+(@?[_[:alpha:]][_[:alnum:]]*)\\s*(:)",beginCaptures:{"1":{name:"keyword.other.where.cs"},"2":{name:"entity.name.type.type-parameter.cs"},"3":{name:"punctuation.separator.colon.cs"}},end:"(?=\\{|where|;|=>)",patterns:[{name:"keyword.other.class.cs",match:"\\bclass\\b"},{name:"keyword.other.struct.cs",match:"\\bstruct\\b"},{match:"(new)\\s*(\\()\\s*(\\))",captures:{"1":{name:"keyword.other.new.cs"},"2":{name:"punctuation.parenthesis.open.cs"},"3":{name:"punctuation.parenthesis.close.cs"}}},{include:"#type"},{include:"#punctuation-comma"},{include:"#generic-constraints"}]},"field-declaration":{begin:"(?x)\n(?\n (?:\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)\\s+\n(\\g)\\s* # first field name\n(?!=>|==)(?=,|;|=|$)",beginCaptures:{"1":{patterns:[{include:"#type"}]},"6":{name:"entity.name.variable.field.cs"}},end:"(?=;)",patterns:[{name:"entity.name.variable.field.cs",match:"@?[_[:alpha:]][_[:alnum:]]*"},{include:"#punctuation-comma"},{include:"#comment"},{include:"#variable-initializer"},{include:"#class-or-struct-members"}]},"property-declaration":{begin:"(?x)\n\n# The negative lookahead below ensures that we don't match nested types\n# or other declarations as properties.\n(?![[:word:][:space:]]*\\b(?:class|interface|struct|enum|event)\\b)\n\n(?\n (?\n (?:\n (?:ref\\s+(?:readonly\\s+)?)? # ref return\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n )\\s+\n)\n(?\\g\\s*\\.\\s*)?\n(?\\g)\\s*\n(?=\\{|=>|//|/\\*|$)",beginCaptures:{"1":{patterns:[{include:"#type"}]},"7":{patterns:[{include:"#type"},{include:"#punctuation-accessor"}]},"8":{name:"entity.name.variable.property.cs"}},end:"(?<=\\})|(?=;)",patterns:[{include:"#comment"},{include:"#property-accessors"},{include:"#accessor-getter-expression"},{include:"#variable-initializer"},{include:"#class-or-struct-members"}]},"indexer-declaration":{begin:"(?x)\n(?\n (?\n (?:\n (?:ref\\s+(?:readonly\\s+)?)? # ref return\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n )\\s+\n)\n(?\\g\\s*\\.\\s*)?\n(?this)\\s*\n(?=\\[)",beginCaptures:{"1":{patterns:[{include:"#type"}]},"7":{patterns:[{include:"#type"},{include:"#punctuation-accessor"}]},"8":{name:"variable.language.this.cs"}},end:"(?<=\\})|(?=;)",patterns:[{include:"#comment"},{include:"#bracketed-parameter-list"},{include:"#property-accessors"},{include:"#accessor-getter-expression"},{include:"#variable-initializer"}]},"event-declaration":{begin:"(?x)\n\\b(event)\\b\\s*\n(?\n (?\n (?:\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n )\\s+\n)\n(?\\g\\s*\\.\\s*)?\n(\\g)\\s* # first event name\n(?=\\{|;|,|=|//|/\\*|$)",beginCaptures:{"1":{name:"keyword.other.event.cs"},"2":{patterns:[{include:"#type"}]},"8":{patterns:[{include:"#type"},{include:"#punctuation-accessor"}]},"9":{name:"entity.name.variable.event.cs"}},end:"(?<=\\})|(?=;)",patterns:[{include:"#comment"},{include:"#event-accessors"},{name:"entity.name.variable.event.cs",match:"@?[_[:alpha:]][_[:alnum:]]*"},{include:"#punctuation-comma"},{begin:"=",beginCaptures:{"0":{name:"keyword.operator.assignment.cs"}},end:"(?<=,)|(?=;)",patterns:[{include:"#expression"},{include:"#punctuation-comma"}]}]},"property-accessors":{begin:"\\{",beginCaptures:{"0":{name:"punctuation.curlybrace.open.cs"}},end:"\\}",endCaptures:{"0":{name:"punctuation.curlybrace.close.cs"}},patterns:[{include:"#comment"},{include:"#attribute-section"},{name:"storage.modifier.cs",match:"\\b(private|protected|internal)\\b"},{begin:"\\b(get)\\b\\s*(?=\\{|;|=>|//|/\\*|$)",beginCaptures:{"1":{name:"keyword.other.$1.cs"}},end:"(?<=\\}|;)|(?=\\})",patterns:[{include:"#accessor-getter"}]},{begin:"\\b(set|init)\\b\\s*(?=\\{|;|=>|//|/\\*|$)",beginCaptures:{"1":{name:"keyword.other.$1.cs"}},end:"(?<=\\}|;)|(?=\\})",patterns:[{include:"#accessor-setter"}]}]},"event-accessors":{begin:"\\{",beginCaptures:{"0":{name:"punctuation.curlybrace.open.cs"}},end:"\\}",endCaptures:{"0":{name:"punctuation.curlybrace.close.cs"}},patterns:[{include:"#comment"},{include:"#attribute-section"},{begin:"\\b(add|remove)\\b\\s*(?=\\{|;|=>|//|/\\*|$)",beginCaptures:{"1":{name:"keyword.other.$1.cs"}},end:"(?<=\\}|;)|(?=\\})",patterns:[{include:"#accessor-setter"}]}]},"accessor-getter":{patterns:[{begin:"\\{",beginCaptures:{"0":{name:"punctuation.curlybrace.open.cs"}},end:"\\}",endCaptures:{"0":{name:"punctuation.curlybrace.close.cs"}},contentName:"meta.accessor.getter.cs",patterns:[{include:"#statement"}]},{include:"#accessor-getter-expression"},{include:"#punctuation-semicolon"}]},"accessor-getter-expression":{begin:"=>",beginCaptures:{"0":{name:"keyword.operator.arrow.cs"}},end:"(?=;|\\})",contentName:"meta.accessor.getter.cs",patterns:[{include:"#ref-modifier"},{include:"#expression"}]},"accessor-setter":{patterns:[{begin:"\\{",beginCaptures:{"0":{name:"punctuation.curlybrace.open.cs"}},end:"\\}",endCaptures:{"0":{name:"punctuation.curlybrace.close.cs"}},contentName:"meta.accessor.setter.cs",patterns:[{include:"#statement"}]},{begin:"=>",beginCaptures:{"0":{name:"keyword.operator.arrow.cs"}},end:"(?=;|\\})",contentName:"meta.accessor.setter.cs",patterns:[{include:"#ref-modifier"},{include:"#expression"}]},{include:"#punctuation-semicolon"}]},"method-declaration":{begin:"(?x)\n(?\n (?\n (?:\n (?:ref\\s+(?:readonly\\s+)?)? # ref return\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n )\\s+\n)\n(?\\g\\s*\\.\\s*)?\n(\\g)\\s*\n(<([^<>]+)>)?\\s*\n(?=\\()",beginCaptures:{"1":{patterns:[{include:"#type"}]},"7":{patterns:[{include:"#type"},{include:"#punctuation-accessor"}]},"8":{name:"entity.name.function.cs"},"9":{patterns:[{include:"#type-parameter-list"}]}},end:"(?<=\\})|(?=;)",patterns:[{include:"#comment"},{include:"#parenthesized-parameter-list"},{include:"#generic-constraints"},{include:"#expression-body"},{include:"#block"}]},"constructor-declaration":{begin:"(?=@?[_[:alpha:]][_[:alnum:]]*\\s*\\()",end:"(?<=\\})|(?=;)",patterns:[{match:"(@?[_[:alpha:]][_[:alnum:]]*)\\b",captures:{"1":{name:"entity.name.function.cs"}}},{begin:"(:)",beginCaptures:{"1":{name:"punctuation.separator.colon.cs"}},end:"(?=\\{|=>)",patterns:[{include:"#constructor-initializer"}]},{include:"#parenthesized-parameter-list"},{include:"#preprocessor"},{include:"#comment"},{include:"#expression-body"},{include:"#block"}]},"constructor-initializer":{begin:"\\b(base|this)\\b\\s*(?=\\()",beginCaptures:{"1":{name:"variable.language.$1.cs"}},end:"(?<=\\))",patterns:[{include:"#argument-list"}]},"destructor-declaration":{begin:"(~)(@?[_[:alpha:]][_[:alnum:]]*)\\s*(?=\\()",beginCaptures:{"1":{name:"punctuation.tilde.cs"},"2":{name:"entity.name.function.cs"}},end:"(?<=\\})|(?=;)",patterns:[{include:"#comment"},{include:"#parenthesized-parameter-list"},{include:"#expression-body"},{include:"#block"}]},"operator-declaration":{begin:"(?x)\n(?\n (?:\n (?:ref\\s+(?:readonly\\s+)?)? # ref return\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)\\s*\n\\b(?operator)\\b\\s*\n(?[+\\-*/%&|\\^!=~<>]+|true|false)\\s*\n(?=\\()",beginCaptures:{"1":{patterns:[{include:"#type"}]},"6":{name:"keyword.other.operator-decl.cs"},"7":{name:"entity.name.function.cs"}},end:"(?<=\\})|(?=;)",patterns:[{include:"#comment"},{include:"#parenthesized-parameter-list"},{include:"#expression-body"},{include:"#block"}]},"conversion-operator-declaration":{begin:"(?x)\n(?(?:\\b(?:explicit|implicit)))\\s*\n(?(?:\\b(?:operator)))\\s*\n(?\n (?:\n (?:ref\\s+(?:readonly\\s+)?)? # ref return\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)\\s*\n(?=\\()",beginCaptures:{"1":{patterns:[{match:"\\b(explicit)\\b",captures:{"1":{name:"keyword.other.explicit.cs"}}},{match:"\\b(implicit)\\b",captures:{"1":{name:"keyword.other.implicit.cs"}}}]},"2":{name:"keyword.other.operator-decl.cs"},"3":{patterns:[{include:"#type"}]}},end:"(?<=\\})|(?=;)",patterns:[{include:"#comment"},{include:"#parenthesized-parameter-list"},{include:"#expression-body"},{include:"#block"}]},block:{begin:"\\{",beginCaptures:{"0":{name:"punctuation.curlybrace.open.cs"}},end:"\\}",endCaptures:{"0":{name:"punctuation.curlybrace.close.cs"}},patterns:[{include:"#statement"}]},"variable-initializer":{begin:"(?)",beginCaptures:{"1":{name:"keyword.operator.assignment.cs"}},end:"(?=[,\\)\\];}])",patterns:[{include:"#ref-modifier"},{include:"#expression"}]},"expression-body":{begin:"=>",beginCaptures:{"0":{name:"keyword.operator.arrow.cs"}},end:"(?=[,\\);}])",patterns:[{include:"#ref-modifier"},{include:"#expression"}]},"goto-statement":{begin:"(?\n (?:\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)\\s+\n(\\g)\\b\\s*",beginCaptures:{"1":{patterns:[{include:"#type"}]},"2":{name:"entity.name.variable.local.cs"}},end:"(?==>)",patterns:[{include:"#comment"},{include:"#switch-when-clause"}]},"switch-property-expression":{begin:"(?x) # e.g. int x OR var x\n(?\n (?:\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)?\\s*\n(\\{)",beginCaptures:{"1":{patterns:[{include:"#type"}]},"6":{name:"punctuation.curlybrace.open.cs"}},end:"\\}",endCaptures:{"0":{name:"punctuation.curlybrace.close.cs"}},patterns:[{match:"(@?[_[:alpha:]][_[:alnum:]]*)\\s*(:)",captures:{"1":{name:"variable.other.object.property.cs"},"2":{name:"punctuation.separator.colon.cs"}}},{include:"#expression"},{include:"#punctuation-comma"}]},"switch-var-pattern":{begin:"(?x) # match foreach (var (x, y) in ...)\n(?:\\b(var)\\b\\s*)\n(?\\((?:[^\\(\\)]|\\g)+\\))\\s*",beginCaptures:{"1":{name:"keyword.other.var.cs"},"2":{patterns:[{include:"#tuple-declaration-deconstruction-element-list"}]}},end:"(?==>)",patterns:[{include:"#comment"},{include:"#switch-when-clause"}]},"switch-when-clause":{begin:"(?)",patterns:[{include:"#comment"},{include:"#expression"},{include:"#punctuation-comma"},{match:"\\(",captures:{"0":{name:"punctuation.parenthesis.open.cs"}}},{match:"\\)",captures:{"0":{name:"punctuation.parenthesis.close.cs"}}}]},"switch-label":{patterns:[{begin:"(?\n (?:\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n )\n)\\s+\n(\\g)\\s+\n\\b(in)\\b",captures:{"1":{name:"keyword.other.var.cs"},"2":{patterns:[{include:"#type"}]},"7":{name:"entity.name.variable.local.cs"},"8":{name:"keyword.control.loop.in.cs"}}},{match:"(?x) # match foreach (var (x, y) in ...)\n(?:\\b(var)\\b\\s*)?\n(?\\((?:[^\\(\\)]|\\g)+\\))\\s+\n\\b(in)\\b",captures:{"1":{name:"keyword.other.var.cs"},"2":{patterns:[{include:"#tuple-declaration-deconstruction-element-list"}]},"3":{name:"keyword.control.loop.in.cs"}}},{include:"#expression"}]},{include:"#statement"}]},"try-statement":{patterns:[{include:"#try-block"},{include:"#catch-clause"},{include:"#finally-clause"}]},"try-block":{begin:"(?\n (?:\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)\\s*\n(?:(\\g)\\b)?",captures:{"1":{patterns:[{include:"#type"}]},"6":{name:"entity.name.variable.local.cs"}}}]},{include:"#when-clause"},{include:"#comment"},{include:"#block"}]},"when-clause":{begin:"(?\n (?:\n (?:ref\\s+(?:readonly\\s+)?)? # ref local\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n )\n)\\s+\n(\\g)\\s*\n(?!=>)\n(?=,|;|=|\\))",beginCaptures:{"1":{name:"keyword.other.using.cs"},"2":{name:"storage.modifier.cs"},"3":{name:"storage.modifier.cs"},"4":{name:"keyword.other.var.cs"},"5":{patterns:[{include:"#type"}]},"10":{name:"entity.name.variable.local.cs"}},end:"(?=;|\\))",patterns:[{name:"entity.name.variable.local.cs",match:"@?[_[:alpha:]][_[:alnum:]]*"},{include:"#punctuation-comma"},{include:"#comment"},{include:"#variable-initializer"}]},"local-constant-declaration":{begin:"(?x)\n(?\\b(?:const)\\b)\\s*\n(?\n (?:\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)\\s+\n(\\g)\\s*\n(?=,|;|=)",beginCaptures:{"1":{name:"storage.modifier.cs"},"2":{patterns:[{include:"#type"}]},"7":{name:"entity.name.variable.local.cs"}},end:"(?=;)",patterns:[{name:"entity.name.variable.local.cs",match:"@?[_[:alpha:]][_[:alnum:]]*"},{include:"#punctuation-comma"},{include:"#comment"},{include:"#variable-initializer"}]},"local-function-declaration":{begin:"(?x)\n\\b((?:(?:async|unsafe|static|extern)\\s+)*)\n(?\n (?:ref\\s+(?:readonly\\s+)?)? # ref return\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n \\s*(?:,\\s*)* # commata for multi-dimensional arrays\n \\]\n (?:\\s*\\?)? # arrays can be nullable reference types\n )*\n)\\s+\n(\\g)\\s*\n(<[^<>]+>)?\\s*\n(?=\\()",beginCaptures:{"1":{patterns:[{include:"#storage-modifier"}]},"2":{patterns:[{include:"#type"}]},"7":{name:"entity.name.function.cs"},"8":{patterns:[{include:"#type-parameter-list"}]}},end:"(?<=\\})|(?=;)",patterns:[{include:"#comment"},{include:"#parenthesized-parameter-list"},{include:"#generic-constraints"},{include:"#expression-body"},{include:"#block"}]},"local-tuple-var-deconstruction":{begin:"(?x) # e.g. var (x, y) = GetPoint();\n(?:\\b(var)\\b\\s*)\n(?\\((?:[^\\(\\)]|\\g)+\\))\\s*\n(?=;|=|\\))",beginCaptures:{"1":{name:"keyword.other.var.cs"},"2":{patterns:[{include:"#tuple-declaration-deconstruction-element-list"}]}},end:"(?=;|\\))",patterns:[{include:"#comment"},{include:"#variable-initializer"}]},"tuple-deconstruction-assignment":{match:"(?x)\n(?\\s*\\((?:[^\\(\\)]|\\g)+\\))\\s*\n(?!=>|==)(?==)",captures:{"1":{patterns:[{include:"#tuple-deconstruction-element-list"}]}}},"tuple-declaration-deconstruction-element-list":{begin:"\\(",beginCaptures:{"0":{name:"punctuation.parenthesis.open.cs"}},end:"\\)",endCaptures:{"0":{name:"punctuation.parenthesis.close.cs"}},patterns:[{include:"#comment"},{include:"#tuple-declaration-deconstruction-element-list"},{include:"#declaration-expression-tuple"},{include:"#punctuation-comma"},{match:"(?x) # e.g. x\n(@?[_[:alpha:]][_[:alnum:]]*)\\b\\s*\n(?=[,)])",captures:{"1":{name:"entity.name.variable.tuple-element.cs"}}}]},"tuple-deconstruction-element-list":{begin:"\\(",beginCaptures:{"0":{name:"punctuation.parenthesis.open.cs"}},end:"\\)",endCaptures:{"0":{name:"punctuation.parenthesis.close.cs"}},patterns:[{include:"#comment"},{include:"#tuple-deconstruction-element-list"},{include:"#declaration-expression-tuple"},{include:"#punctuation-comma"},{match:"(?x) # e.g. x\n(@?[_[:alpha:]][_[:alnum:]]*)\\b\\s*\n(?=[,)])",captures:{"1":{name:"variable.other.readwrite.cs"}}}]},"declaration-expression-local":{match:"(?x) # e.g. int x OR var x\n(?:\n \\b(var)\\b|\n (?\n (?:\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n )\n)\\s+\n(\\g)\\b\\s*\n(?=[,)\\]])",captures:{"1":{name:"keyword.other.var.cs"},"2":{patterns:[{include:"#type"}]},"7":{name:"entity.name.variable.local.cs"}}},"declaration-expression-tuple":{match:"(?x) # e.g. int x OR var x\n(?:\n \\b(var)\\b|\n (?\n (?:\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n )\n)\\s+\n(\\g)\\b\\s*\n(?=[,)])",captures:{"1":{name:"keyword.other.var.cs"},"2":{patterns:[{include:"#type"}]},"7":{name:"entity.name.variable.tuple-element.cs"}}},"checked-unchecked-expression":{begin:"(?>>?=|\\|="},{name:"keyword.operator.bitwise.shift.cs",match:"<<|>>>?"},{name:"keyword.operator.comparison.cs",match:"==|!="},{name:"keyword.operator.relational.cs",match:"<=|>=|<|>"},{name:"keyword.operator.logical.cs",match:"\\!|&&|\\|\\|"},{name:"keyword.operator.bitwise.cs",match:"\\&|~|\\^|\\|"},{name:"keyword.operator.assignment.cs",match:"\\="},{name:"keyword.operator.decrement.cs",match:"--"},{name:"keyword.operator.increment.cs",match:"\\+\\+"},{name:"keyword.operator.arithmetic.cs",match:"\\+|-(?!>)|\\*|/|%"},{name:"keyword.operator.null-coalescing.cs",match:"\\?\\?"},{name:"keyword.operator.range.cs",match:"\\.\\."}]},"switch-literal":{name:"constant.language.null.cs",match:"(?\n (?:\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)\\s*\n(\\))(?=\\s*-*!*@?[_[:alnum:]\\(])",captures:{"1":{name:"punctuation.parenthesis.open.cs"},"2":{patterns:[{include:"#type"}]},"7":{name:"punctuation.parenthesis.close.cs"}}},"as-expression":{match:"(?x)\n(?\n (?:\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?(?!\\?))? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n \\s*(?:,\\s*)* # commata for multi-dimensional arrays\n \\]\n (?:\\s*\\?(?!\\?))? # arrays can be nullable reference types\n )*\n )\n)?",captures:{"1":{name:"keyword.other.as.cs"},"2":{patterns:[{include:"#type"}]}}},"is-expression":{match:"(?x)\n(?\n (?:\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)?",captures:{"1":{name:"keyword.other.is.cs"},"2":{patterns:[{include:"#type"}]}}},"language-variable":{patterns:[{name:"variable.language.$1.cs",match:"\\b(base|this)\\b"},{name:"variable.other.$1.cs",match:"\\b(value)\\b"}]},"invocation-expression":{begin:"(?x)\n(?:\n (?:(\\?)\\s*)? # preceding null-conditional operator?\n (\\.)\\s*| # preceding dot?\n (->)\\s* # preceding pointer arrow?\n)?\n(@?[_[:alpha:]][_[:alnum:]]*)\\s* # method name\n(\n <\n (?\n [^<>()]+|\n <\\g+>|\n \\(\\g+\\)\n )+\n >\\s*\n)? # type arguments\n(?=\\() # open paren of argument list",beginCaptures:{"1":{name:"keyword.operator.null-conditional.cs"},"2":{name:"punctuation.accessor.cs"},"3":{name:"punctuation.accessor.pointer.cs"},"4":{name:"entity.name.function.cs"},"5":{patterns:[{include:"#type-arguments"}]}},end:"(?<=\\))",patterns:[{include:"#argument-list"}]},"element-access-expression":{begin:"(?x)\n(?:\n (?:(\\?)\\s*)? # preceding null-conditional operator?\n (\\.)\\s*| # preceding dot?\n (->)\\s* # preceding pointer arrow?\n)?\n(?:(@?[_[:alpha:]][_[:alnum:]]*)\\s*)? # property name\n(?:(\\?)\\s*)? # null-conditional operator?\n(?=\\[) # open bracket of argument list",beginCaptures:{"1":{name:"keyword.operator.null-conditional.cs"},"2":{name:"punctuation.accessor.cs"},"3":{name:"punctuation.accessor.pointer.cs"},"4":{name:"variable.other.object.property.cs"},"5":{name:"keyword.operator.null-conditional.cs"}},end:"(?<=\\])(?!\\s*\\[)",patterns:[{include:"#bracketed-argument-list"}]},"member-access-expression":{patterns:[{match:"(?x)\n(?:\n (?:(\\?)\\s*)? # preceding null-conditional operator?\n (\\.)\\s*| # preceding dot?\n (->)\\s* # preceding pointer arrow?\n)\n(@?[_[:alpha:]][_[:alnum:]]*)\\s* # property name\n(?![_[:alnum:]]|\\(|(\\?)?\\[|<) # next character is not alpha-numeric, nor a (, [, or <. Also, test for ?[",captures:{"1":{name:"keyword.operator.null-conditional.cs"},"2":{name:"punctuation.accessor.cs"},"3":{name:"punctuation.accessor.pointer.cs"},"4":{name:"variable.other.object.property.cs"}}},{match:"(?x)\n(\\.)?\\s*\n(@?[_[:alpha:]][_[:alnum:]]*)\n(?\\s*<([^<>]|\\g)+>\\s*)\n(?=\n (\\s*\\?)?\n \\s*\\.\\s*@?[_[:alpha:]][_[:alnum:]]*\n)",captures:{"1":{name:"punctuation.accessor.cs"},"2":{name:"variable.other.object.cs"},"3":{patterns:[{include:"#type-arguments"}]}}},{match:"(?x)\n(@?[_[:alpha:]][_[:alnum:]]*)\n(?=\n \\s*(?:(?:\\?\\s*)?\\.|->)\n \\s*@?[_[:alpha:]][_[:alnum:]]*\n)",captures:{"1":{name:"variable.other.object.cs"}}}]},"object-creation-expression":{patterns:[{include:"#object-creation-expression-with-parameters"},{include:"#object-creation-expression-with-no-parameters"}]},"object-creation-expression-with-parameters":{begin:"(?x)\n(new)(?:\\s+\n(?\n (?:\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n))?\\s*\n(?=\\()",beginCaptures:{"1":{name:"keyword.other.new.cs"},"2":{patterns:[{include:"#type"}]}},end:"(?<=\\))",patterns:[{include:"#argument-list"}]},"object-creation-expression-with-no-parameters":{match:"(?x)\n(new)\\s+\n(?\n (?:\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)\\s*\n(?=\\{|//|/\\*|$)",captures:{"1":{name:"keyword.other.new.cs"},"2":{patterns:[{include:"#type"}]}}},"array-creation-expression":{begin:"(?x)\n\\b(new|stackalloc)\\b\\s*\n(?\n (?:\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)?\\s*\n(?=\\[)",beginCaptures:{"1":{name:"keyword.other.new.cs"},"2":{patterns:[{include:"#type"}]}},end:"(?<=\\])",patterns:[{include:"#bracketed-argument-list"}]},"anonymous-object-creation-expression":{begin:"\\b(new)\\b\\s*(?=\\{|//|/\\*|$)",beginCaptures:{"1":{name:"keyword.other.new.cs"}},end:"(?<=\\})",patterns:[{include:"#comment"},{include:"#initializer-expression"}]},"bracketed-parameter-list":{begin:"(?=(\\[))",beginCaptures:{"1":{name:"punctuation.squarebracket.open.cs"}},end:"(?=(\\]))",endCaptures:{"1":{name:"punctuation.squarebracket.close.cs"}},patterns:[{begin:"(?<=\\[)",end:"(?=\\])",patterns:[{include:"#comment"},{include:"#attribute-section"},{include:"#parameter"},{include:"#punctuation-comma"},{include:"#variable-initializer"}]}]},"parenthesized-parameter-list":{begin:"(\\()",beginCaptures:{"0":{name:"punctuation.parenthesis.open.cs"}},end:"(\\))",endCaptures:{"0":{name:"punctuation.parenthesis.close.cs"}},patterns:[{include:"#comment"},{include:"#attribute-section"},{include:"#parameter"},{include:"#punctuation-comma"},{include:"#variable-initializer"}]},parameter:{match:"(?x)\n(?:(?:\\b(ref|params|out|in|this)\\b)\\s+)?\n(?\n (?:\n (?:ref\\s+)? # ref return\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)\\s+\n(\\g)",captures:{"1":{name:"storage.modifier.cs"},"2":{patterns:[{include:"#type"}]},"7":{name:"entity.name.variable.parameter.cs"}}},"argument-list":{begin:"\\(",beginCaptures:{"0":{name:"punctuation.parenthesis.open.cs"}},end:"\\)",endCaptures:{"0":{name:"punctuation.parenthesis.close.cs"}},patterns:[{include:"#named-argument"},{include:"#argument"},{include:"#punctuation-comma"}]},"bracketed-argument-list":{begin:"\\[",beginCaptures:{"0":{name:"punctuation.squarebracket.open.cs"}},end:"\\]",endCaptures:{"0":{name:"punctuation.squarebracket.close.cs"}},patterns:[{include:"#named-argument"},{include:"#argument"},{include:"#punctuation-comma"}]},"named-argument":{begin:"(@?[_[:alpha:]][_[:alnum:]]*)\\s*(:)",beginCaptures:{"1":{name:"entity.name.variable.parameter.cs"},"2":{name:"punctuation.separator.colon.cs"}},end:"(?=(,|\\)|\\]))",patterns:[{include:"#argument"}]},argument:{patterns:[{name:"storage.modifier.cs",match:"\\b(ref|in)\\b"},{begin:"\\b(out)\\b",beginCaptures:{"1":{name:"storage.modifier.cs"}},end:"(?=,|\\)|\\])",patterns:[{include:"#declaration-expression-local"},{include:"#expression"}]},{include:"#expression"}]},"query-expression":{begin:"(?x)\n\\b(from)\\b\\s*\n(?\n (?:\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)?\n\\s+(\\g)\\b\\s*\n\\b(in)\\b\\s*",beginCaptures:{"1":{name:"keyword.query.from.cs"},"2":{patterns:[{include:"#type"}]},"7":{name:"entity.name.variable.range-variable.cs"},"8":{name:"keyword.query.in.cs"}},end:"(?=;|\\))",patterns:[{include:"#query-body"},{include:"#expression"}]},"query-body":{patterns:[{include:"#let-clause"},{include:"#where-clause"},{include:"#join-clause"},{include:"#orderby-clause"},{include:"#select-clause"},{include:"#group-clause"}]},"let-clause":{begin:"(?x)\n\\b(let)\\b\\s*\n(@?[_[:alpha:]][_[:alnum:]]*)\\b\\s*\n(=)\\s*",beginCaptures:{"1":{name:"keyword.query.let.cs"},"2":{name:"entity.name.variable.range-variable.cs"},"3":{name:"keyword.operator.assignment.cs"}},end:"(?=;|\\))",patterns:[{include:"#query-body"},{include:"#expression"}]},"where-clause":{begin:"(?x)\n\\b(where)\\b\\s*",beginCaptures:{"1":{name:"keyword.query.where.cs"}},end:"(?=;|\\))",patterns:[{include:"#query-body"},{include:"#expression"}]},"join-clause":{begin:"(?x)\n\\b(join)\\b\\s*\n(?\n (?:\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)?\n\\s+(\\g)\\b\\s*\n\\b(in)\\b\\s*",beginCaptures:{"1":{name:"keyword.query.join.cs"},"2":{patterns:[{include:"#type"}]},"7":{name:"entity.name.variable.range-variable.cs"},"8":{name:"keyword.query.in.cs"}},end:"(?=;|\\))",patterns:[{include:"#join-on"},{include:"#join-equals"},{include:"#join-into"},{include:"#query-body"},{include:"#expression"}]},"join-on":{match:"\\b(on)\\b\\s*",captures:{"1":{name:"keyword.query.on.cs"}}},"join-equals":{match:"\\b(equals)\\b\\s*",captures:{"1":{name:"keyword.query.equals.cs"}}},"join-into":{match:"(?x)\n\\b(into)\\b\\s*\n(@?[_[:alpha:]][_[:alnum:]]*)\\b\\s*",captures:{"1":{name:"keyword.query.into.cs"},"2":{name:"entity.name.variable.range-variable.cs"}}},"orderby-clause":{begin:"\\b(orderby)\\b\\s*",beginCaptures:{"1":{name:"keyword.query.orderby.cs"}},end:"(?=;|\\))",patterns:[{include:"#ordering-direction"},{include:"#query-body"},{include:"#expression"},{include:"#punctuation-comma"}]},"ordering-direction":{match:"\\b(?:(ascending)|(descending))\\b",captures:{"1":{name:"keyword.query.ascending.cs"},"2":{name:"keyword.query.descending.cs"}}},"select-clause":{begin:"\\b(select)\\b\\s*",beginCaptures:{"1":{name:"keyword.query.select.cs"}},end:"(?=;|\\))",patterns:[{include:"#query-body"},{include:"#expression"}]},"group-clause":{begin:"\\b(group)\\b\\s*",beginCaptures:{"1":{name:"keyword.query.group.cs"}},end:"(?=;|\\))",patterns:[{include:"#group-by"},{include:"#group-into"},{include:"#query-body"},{include:"#expression"}]},"group-by":{match:"\\b(by)\\b\\s*",captures:{"1":{name:"keyword.query.by.cs"}}},"group-into":{match:"(?x)\n\\b(into)\\b\\s*\n(@?[_[:alpha:]][_[:alnum:]]*)\\b\\s*",captures:{"1":{name:"keyword.query.into.cs"},"2":{name:"entity.name.variable.range-variable.cs"}}},"anonymous-method-expression":{patterns:[{begin:"(?x)\n(?:\\b(async)\\b\\s*)?\n(@?[_[:alpha:]][_[:alnum:]]*)\\b\\s*\n(=>)",beginCaptures:{"1":{name:"storage.modifier.cs"},"2":{name:"entity.name.variable.parameter.cs"},"3":{name:"keyword.operator.arrow.cs"}},end:"(?=\\)|;|}|,)",patterns:[{include:"#block"},{include:"#ref-modifier"},{include:"#expression"}]},{begin:"(?x)\n(?:\\b(async)\\b\\s*)?\n(\\(.*?\\))\\s*\n(=>)",beginCaptures:{"1":{name:"storage.modifier.cs"},"2":{patterns:[{include:"#lambda-parameter-list"}]},"3":{name:"keyword.operator.arrow.cs"}},end:"(?=\\)|;|}|,)",patterns:[{include:"#block"},{include:"#ref-modifier"},{include:"#expression"}]},{begin:"(?x)\n(?:\\b(async)\\b\\s*)?\n(?:\\b(delegate)\\b\\s*)",beginCaptures:{"1":{name:"storage.modifier.cs"},"2":{name:"keyword.other.delegate.cs"}},end:"(?=\\)|;|}|,)",patterns:[{include:"#parenthesized-parameter-list"},{include:"#block"},{include:"#expression"}]}]},"lambda-parameter-list":{begin:"\\(",beginCaptures:{"0":{name:"punctuation.parenthesis.open.cs"}},end:"\\)",endCaptures:{"0":{name:"punctuation.parenthesis.close.cs"}},patterns:[{include:"#comment"},{include:"#attribute-section"},{include:"#lambda-parameter"},{include:"#punctuation-comma"}]},"lambda-parameter":{match:"(?x)\n(?:\\b(ref|out|in)\\b)?\\s*\n(?:(?\n (?:\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)\\s+)?\n(\\g)\\b\\s*\n(?=[,)])",captures:{"1":{name:"storage.modifier.cs"},"2":{patterns:[{include:"#type"}]},"7":{name:"entity.name.variable.parameter.cs"}}},type:{name:"meta.type.cs",patterns:[{include:"#comment"},{include:"#ref-modifier"},{include:"#readonly-modifier"},{include:"#tuple-type"},{include:"#type-builtin"},{include:"#type-name"},{include:"#type-arguments"},{include:"#type-array-suffix"},{include:"#type-nullable-suffix"}]},"ref-modifier":{name:"storage.modifier.cs",match:"\\b(ref)\\b"},"readonly-modifier":{name:"storage.modifier.cs",match:"\\b(readonly)\\b"},"tuple-type":{begin:"\\(",beginCaptures:{"0":{name:"punctuation.parenthesis.open.cs"}},end:"\\)",endCaptures:{"0":{name:"punctuation.parenthesis.close.cs"}},patterns:[{include:"#tuple-element"},{include:"#punctuation-comma"}]},"tuple-element":{match:"(?x)\n(?\n (?:\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)\n(?:(?\\g)\\b)?",captures:{"1":{patterns:[{include:"#type"}]},"6":{name:"entity.name.variable.tuple-element.cs"}}},"type-builtin":{match:"\\b(bool|s?byte|u?short|n?u?int|u?long|float|double|decimal|char|string|object|void|dynamic)\\b",captures:{"1":{name:"keyword.type.cs"}}},"type-name":{patterns:[{match:"(@?[_[:alpha:]][_[:alnum:]]*)\\s*(\\:\\:)",captures:{"1":{name:"entity.name.type.alias.cs"},"2":{name:"punctuation.separator.coloncolon.cs"}}},{match:"(@?[_[:alpha:]][_[:alnum:]]*)\\s*(\\.)",captures:{"1":{name:"entity.name.type.cs"},"2":{name:"punctuation.accessor.cs"}}},{match:"(\\.)\\s*(@?[_[:alpha:]][_[:alnum:]]*)",captures:{"1":{name:"punctuation.accessor.cs"},"2":{name:"entity.name.type.cs"}}},{name:"entity.name.type.cs",match:"@?[_[:alpha:]][_[:alnum:]]*"}]},"type-arguments":{begin:"<",beginCaptures:{"0":{name:"punctuation.definition.typeparameters.begin.cs"}},end:">",endCaptures:{"0":{name:"punctuation.definition.typeparameters.end.cs"}},patterns:[{include:"#comment"},{include:"#type"},{include:"#punctuation-comma"}]},"type-array-suffix":{begin:"\\[",beginCaptures:{"0":{name:"punctuation.squarebracket.open.cs"}},end:"\\]",endCaptures:{"0":{name:"punctuation.squarebracket.close.cs"}},patterns:[{include:"#punctuation-comma"}]},"type-nullable-suffix":{match:"\\?",captures:{"0":{name:"punctuation.separator.question-mark.cs"}}},"operator-assignment":{name:"keyword.operator.assignment.cs",match:"(?)",endCaptures:{"1":{name:"punctuation.definition.tag.cs"}},patterns:[{include:"#xml-attribute"}]},"xml-attribute":{patterns:[{match:"(?x)\n(?:^|\\s+)\n(\n (?:\n ([-_[:alnum:]]+)\n (:)\n )?\n ([-_[:alnum:]]+)\n)\n(=)",captures:{"1":{name:"entity.other.attribute-name.cs"},"2":{name:"entity.other.attribute-name.namespace.cs"},"3":{name:"punctuation.separator.colon.cs"},"4":{name:"entity.other.attribute-name.localname.cs"},"5":{name:"punctuation.separator.equals.cs"}}},{include:"#xml-string"}]},"xml-cdata":{name:"string.unquoted.cdata.cs",begin:"",endCaptures:{"0":{name:"punctuation.definition.string.end.cs"}}},"xml-string":{patterns:[{name:"string.quoted.single.cs",begin:"\\'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.cs"}},end:"\\'",endCaptures:{"0":{name:"punctuation.definition.string.end.cs"}},patterns:[{include:"#xml-character-entity"}]},{name:"string.quoted.double.cs",begin:"\\\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.cs"}},end:"\\\"",endCaptures:{"0":{name:"punctuation.definition.string.end.cs"}},patterns:[{include:"#xml-character-entity"}]}]},"xml-character-entity":{patterns:[{name:"constant.character.entity.cs",match:"(?x)\n(&)\n(\n (?:[[:alpha:]:_][[:alnum:]:_.-]*)|\n (?:\\#[[:digit:]]+)|\n (?:\\#x[[:xdigit:]]+)\n)\n(;)",captures:{"1":{name:"punctuation.definition.constant.cs"},"3":{name:"punctuation.definition.constant.cs"}}},{name:"invalid.illegal.bad-ampersand.cs",match:"&"}]},"xml-comment":{name:"comment.block.cs",begin:"",endCaptures:{"0":{name:"punctuation.definition.comment.cs"}}}}}; + +export { csharp_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/css.tmLanguage-ddae7075.mjs b/docs/shiki/dist/languages/css.tmLanguage-ddae7075.mjs new file mode 100644 index 00000000..d27d7482 --- /dev/null +++ b/docs/shiki/dist/languages/css.tmLanguage-ddae7075.mjs @@ -0,0 +1,3 @@ +var css_tmLanguage = {information_for_contributors:["This file has been converted from https://github.com/microsoft/vscode-css/blob/master/grammars/css.cson","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."],version:"https://github.com/microsoft/vscode-css/commit/3bd00206f6b0d16eb2eba53fb886462eb8c58baa",name:"css",scopeName:"source.css",patterns:[{include:"#comment-block"},{include:"#escapes"},{include:"#combinators"},{include:"#selector"},{include:"#at-rules"},{include:"#rule-list"}],repository:{"at-rules":{patterns:[{begin:"\\A(?:\\xEF\\xBB\\xBF)?(?i:(?=\\s*@charset\\b))",end:";|(?=$)",endCaptures:{"0":{name:"punctuation.terminator.rule.css"}},name:"meta.at-rule.charset.css",patterns:[{captures:{"1":{name:"invalid.illegal.not-lowercase.charset.css"},"2":{name:"invalid.illegal.leading-whitespace.charset.css"},"3":{name:"invalid.illegal.no-whitespace.charset.css"},"4":{name:"invalid.illegal.whitespace.charset.css"},"5":{name:"invalid.illegal.not-double-quoted.charset.css"},"6":{name:"invalid.illegal.unclosed-string.charset.css"},"7":{name:"invalid.illegal.unexpected-characters.charset.css"}},match:"(?x) # Possible errors:\n\\G\n((?!@charset)@\\w+) # Not lowercase (@charset is case-sensitive)\n|\n\\G(\\s+) # Preceding whitespace\n|\n(@charset\\S[^;]*) # No whitespace after @charset\n|\n(?<=@charset) # Before quoted charset name\n(\\x20{2,}|\\t+) # More than one space used, or a tab\n|\n(?<=@charset\\x20) # Beginning of charset name\n([^\";]+) # Not double-quoted\n|\n(\"[^\"]+$) # Unclosed quote\n|\n(?<=\") # After charset name\n([^;]+) # Unexpected junk instead of semicolon"},{captures:{"1":{name:"keyword.control.at-rule.charset.css"},"2":{name:"punctuation.definition.keyword.css"}},match:"((@)charset)(?=\\s)"},{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.css"}},end:"\"|$",endCaptures:{"0":{name:"punctuation.definition.string.end.css"}},name:"string.quoted.double.css",patterns:[{begin:"(?:\\G|^)(?=(?:[^\"])+$)",end:"$",name:"invalid.illegal.unclosed.string.css"}]}]},{begin:"(?i)((@)import)(?:\\s+|$|(?=['\"]|/\\*))",beginCaptures:{"1":{name:"keyword.control.at-rule.import.css"},"2":{name:"punctuation.definition.keyword.css"}},end:";",endCaptures:{"0":{name:"punctuation.terminator.rule.css"}},name:"meta.at-rule.import.css",patterns:[{begin:"\\G\\s*(?=/\\*)",end:"(?<=\\*/)\\s*",patterns:[{include:"#comment-block"}]},{include:"#string"},{include:"#url"},{include:"#media-query-list"}]},{begin:"(?i)((@)font-face)(?=\\s*|{|/\\*|$)",beginCaptures:{"1":{name:"keyword.control.at-rule.font-face.css"},"2":{name:"punctuation.definition.keyword.css"}},end:"(?!\\G)",name:"meta.at-rule.font-face.css",patterns:[{include:"#comment-block"},{include:"#escapes"},{include:"#rule-list"}]},{begin:"(?i)(@)page(?=[\\s:{]|/\\*|$)",captures:{"0":{name:"keyword.control.at-rule.page.css"},"1":{name:"punctuation.definition.keyword.css"}},end:"(?=\\s*($|[:{;]))",name:"meta.at-rule.page.css",patterns:[{include:"#rule-list"}]},{begin:"(?i)(?=@media(\\s|\\(|/\\*|$))",end:"(?<=})(?!\\G)",patterns:[{begin:"(?i)\\G(@)media",beginCaptures:{"0":{name:"keyword.control.at-rule.media.css"},"1":{name:"punctuation.definition.keyword.css"}},end:"(?=\\s*[{;])",name:"meta.at-rule.media.header.css",patterns:[{include:"#media-query-list"}]},{begin:"{",beginCaptures:{"0":{name:"punctuation.section.media.begin.bracket.curly.css"}},end:"}",endCaptures:{"0":{name:"punctuation.section.media.end.bracket.curly.css"}},name:"meta.at-rule.media.body.css",patterns:[{include:"$self"}]}]},{begin:"(?i)(?=@counter-style([\\s'\"{;]|/\\*|$))",end:"(?<=})(?!\\G)",patterns:[{begin:"(?i)\\G(@)counter-style",beginCaptures:{"0":{name:"keyword.control.at-rule.counter-style.css"},"1":{name:"punctuation.definition.keyword.css"}},end:"(?=\\s*{)",name:"meta.at-rule.counter-style.header.css",patterns:[{include:"#comment-block"},{include:"#escapes"},{captures:{"0":{patterns:[{include:"#escapes"}]}},match:"(?x)\n(?:[-a-zA-Z_] | [^\\x00-\\x7F]) # First letter\n(?:[-a-zA-Z0-9_] | [^\\x00-\\x7F] # Remainder of identifier\n |\\\\(?:[0-9a-fA-F]{1,6}|.)\n)*",name:"variable.parameter.style-name.css"}]},{begin:"{",beginCaptures:{"0":{name:"punctuation.section.property-list.begin.bracket.curly.css"}},end:"}",endCaptures:{"0":{name:"punctuation.section.property-list.end.bracket.curly.css"}},name:"meta.at-rule.counter-style.body.css",patterns:[{include:"#comment-block"},{include:"#escapes"},{include:"#rule-list-innards"}]}]},{begin:"(?i)(?=@document([\\s'\"{;]|/\\*|$))",end:"(?<=})(?!\\G)",patterns:[{begin:"(?i)\\G(@)document",beginCaptures:{"0":{name:"keyword.control.at-rule.document.css"},"1":{name:"punctuation.definition.keyword.css"}},end:"(?=\\s*[{;])",name:"meta.at-rule.document.header.css",patterns:[{begin:"(?i)(?>>",name:"invalid.deprecated.combinator.css"},{match:">>|>|\\+|~",name:"keyword.operator.combinator.css"}]},commas:{match:",",name:"punctuation.separator.list.comma.css"},"comment-block":{begin:"/\\*",beginCaptures:{"0":{name:"punctuation.definition.comment.begin.css"}},end:"\\*/",endCaptures:{"0":{name:"punctuation.definition.comment.end.css"}},name:"comment.block.css"},escapes:{patterns:[{match:"\\\\[0-9a-fA-F]{1,6}",name:"constant.character.escape.codepoint.css"},{begin:"\\\\$\\s*",end:"^(?<:=]|\\)|/\\*) # Terminates cleanly"},"media-feature-keywords":{match:"(?xi)\n(?<=^|\\s|:|\\*/)\n(?: portrait # Orientation\n | landscape\n | progressive # Scan types\n | interlace\n | fullscreen # Display modes\n | standalone\n | minimal-ui\n | browser\n | hover\n)\n(?=\\s|\\)|$)",name:"support.constant.property-value.css"},"media-query":{begin:"\\G",end:"(?=\\s*[{;])",patterns:[{include:"#comment-block"},{include:"#escapes"},{include:"#media-types"},{match:"(?i)(?<=\\s|^|,|\\*/)(only|not)(?=\\s|{|/\\*|$)",name:"keyword.operator.logical.$1.media.css"},{match:"(?i)(?<=\\s|^|\\*/|\\))and(?=\\s|/\\*|$)",name:"keyword.operator.logical.and.media.css"},{match:",(?:(?:\\s*,)+|(?=\\s*[;){]))",name:"invalid.illegal.comma.css"},{include:"#commas"},{begin:"\\(",beginCaptures:{"0":{name:"punctuation.definition.parameters.begin.bracket.round.css"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.parameters.end.bracket.round.css"}},patterns:[{include:"#media-features"},{include:"#media-feature-keywords"},{match:":",name:"punctuation.separator.key-value.css"},{match:">=|<=|=|<|>",name:"keyword.operator.comparison.css"},{captures:{"1":{name:"constant.numeric.css"},"2":{name:"keyword.operator.arithmetic.css"},"3":{name:"constant.numeric.css"}},match:"(\\d+)\\s*(/)\\s*(\\d+)",name:"meta.ratio.css"},{include:"#numeric-values"},{include:"#comment-block"}]}]},"media-query-list":{begin:"(?=\\s*[^{;])",end:"(?=\\s*[{;])",patterns:[{include:"#media-query"}]},"media-types":{captures:{"1":{name:"support.constant.media.css"},"2":{name:"invalid.deprecated.constant.media.css"}},match:"(?xi)\n(?<=^|\\s|,|\\*/)\n(?:\n # Valid media types\n (all|print|screen|speech)\n |\n # Deprecated in Media Queries 4: http://dev.w3.org/csswg/mediaqueries/#media-types\n (aural|braille|embossed|handheld|projection|tty|tv)\n)\n(?=$|[{,\\s;]|/\\*)"},"numeric-values":{patterns:[{captures:{"1":{name:"punctuation.definition.constant.css"}},match:"(#)(?:[0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})\\b",name:"constant.other.color.rgb-value.hex.css"},{captures:{"1":{name:"keyword.other.unit.percentage.css"},"2":{name:"keyword.other.unit.${2:/downcase}.css"}},match:"(?xi) (?+~|] # - Followed by another selector\n | /\\* # - Followed by a block comment\n )\n |\n # Name contains unescaped ASCII symbol\n (?: # Check for acceptable preceding characters\n [-a-zA-Z_0-9]|[^\\x00-\\x7F] # - Valid selector character\n | \\\\(?:[0-9a-fA-F]{1,6}|.) # - Escape sequence\n )*\n (?: # Invalid punctuation\n [!\"'%&(*;+~|] # - Another selector\n | /\\* # - A block comment\n)",name:"entity.other.attribute-name.class.css"},{captures:{"1":{name:"punctuation.definition.entity.css"},"2":{patterns:[{include:"#escapes"}]}},match:"(?x)\n(\\#)\n(\n -?\n (?![0-9])\n (?:[-a-zA-Z0-9_]|[^\\x00-\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.))+\n)\n(?=$|[\\s,.\\#)\\[:{>+~|]|/\\*)",name:"entity.other.attribute-name.id.css"},{begin:"\\[",beginCaptures:{"0":{name:"punctuation.definition.entity.begin.bracket.square.css"}},end:"\\]",endCaptures:{"0":{name:"punctuation.definition.entity.end.bracket.square.css"}},name:"meta.attribute-selector.css",patterns:[{include:"#comment-block"},{include:"#string"},{captures:{"1":{name:"storage.modifier.ignore-case.css"}},match:"(?<=[\"'\\s]|^|\\*/)\\s*([iI])\\s*(?=[\\s\\]]|/\\*|$)"},{captures:{"1":{name:"string.unquoted.attribute-value.css",patterns:[{include:"#escapes"}]}},match:"(?x)(?<==)\\s*((?!/\\*)(?:[^\\\\\"'\\s\\]]|\\\\.)+)"},{include:"#escapes"},{match:"[~|^$*]?=",name:"keyword.operator.pattern.css"},{match:"\\|",name:"punctuation.separator.css"},{captures:{"1":{name:"entity.other.namespace-prefix.css",patterns:[{include:"#escapes"}]}},match:"(?x)\n# Qualified namespace prefix\n( -?(?!\\d)(?:[\\w-]|[^\\x00-\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.))+\n| \\*\n)\n# Lookahead to ensure there's a valid identifier ahead\n(?=\n \\| (?!\\s|=|$|\\])\n (?: -?(?!\\d)\n | [\\\\\\w-]\n | [^\\x00-\\x7F]\n )\n)"},{captures:{"1":{name:"entity.other.attribute-name.css",patterns:[{include:"#escapes"}]}},match:"(?x)\n(-?(?!\\d)(?>[\\w-]|[^\\x00-\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.))+)\n\\s*\n(?=[~|^\\]$*=]|/\\*)"}]},{include:"#pseudo-classes"},{include:"#pseudo-elements"},{include:"#functional-pseudo-classes"},{match:"(?x) (?\\s,.\\#|){:\\[]|/\\*|$)",name:"entity.name.tag.css"},"unicode-range":{captures:{"0":{name:"constant.other.unicode-range.css"},"1":{name:"punctuation.separator.dash.unicode-range.css"}},match:"(?<])=(?![=~])",name:"punctuation.bind"},{match:"<-",name:"punctuation.arrow"},{include:"#expression"}]},expression:{patterns:[{patterns:[{match:"(?=|[<](?![-=])|[>](?![=])",name:"keyword.operator.comparison"},{match:"&{2}|\\|{2}|!(?![=~])",name:"keyword.operator.logical"},{match:"&(?!&)|\\|(?!\\|)",name:"keyword.operator.set"}]},{match:"(?|<>|<|>|=~|=)",name:"keyword.operator.compare.cypher"},{match:"(?i)\\b(OR|AND|XOR|IS)\\b",name:"keyword.operator.logical.cypher"},{match:"(?i)\\b(IN)\\b",name:"keyword.operator.in.cypher"}]},"path-patterns":{patterns:[{match:"(<--|-->|--)",name:"support.function.relationship-pattern.cypher"},{begin:"(<-|-)(\\[)",beginCaptures:{"1":{name:"support.function.relationship-pattern-start.cypher"},"2":{name:"keyword.operator.relationship-pattern-start.cypher"}},end:"(])(->|-)",endCaptures:{"1":{name:"keyword.operator.relationship-pattern-end.cypher"},"2":{name:"support.function.relationship-pattern-end.cypher"}},name:"path-pattern.cypher",patterns:[{include:"#identifiers"},{captures:{"1":{name:"keyword.operator.relationship-type-start.cypher"},"2":{name:"entity.name.class.relationship.type.cypher"}},match:"(:)((?:`.+?`)|(?:[\\p{L}_][\\p{L}0-9_]*))",name:"entity.name.class.relationship-type.cypher"},{captures:{"1":{name:"support.type.operator.relationship-type-or.cypher"},"2":{name:"entity.name.class.relationship.type-or.cypher"}},match:"(\\|)(\\s*)((?:`.+?`)|(?:[\\p{L}_][\\p{L}0-9_]*))",name:"entity.name.class.relationship-type-ored.cypher"},{match:"(?:\\?\\*|\\?|\\*)\\s*(?:\\d+\\s*(?:\\.\\.\\s*\\d+)?)?",name:"support.function.relationship-pattern.quant.cypher"},{include:"#properties_literal"}]}]},properties_literal:{patterns:[{begin:"{",beginCaptures:{"0":{name:"keyword.control.properties_literal.cypher"}},end:"}",endCaptures:{"0":{name:"keyword.control.properties_literal.cypher"}},name:"source.cypher",patterns:[{match:":|,",name:"keyword.control.properties_literal.seperator.cypher"},{include:"#comments"},{include:"#constants"},{include:"#functions"},{include:"#operators"},{include:"#identifiers"},{include:"#numbers"},{include:"#strings"}]}]},string_escape:{captures:{"2":{name:"string.quoted.double.cypher"}},match:"(\\\\\\\\|\\\\[tbnrf])|(\\\\'|\\\\\")",name:"constant.character.escape.cypher"},strings:{patterns:[{begin:"'",end:"'",name:"string.quoted.single.cypher",patterns:[{include:"#string_escape"}]},{begin:"\"",end:"\"",name:"string.quoted.double.cypher",patterns:[{include:"#string_escape"}]}]}},scopeName:"source.cypher",uuid:"698F4D06-BAE8-40A8-8AA4-3307ABC03B31"}; + +export { cypher_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/d.tmLanguage-b9012936.mjs b/docs/shiki/dist/languages/d.tmLanguage-b9012936.mjs new file mode 100644 index 00000000..772b4245 --- /dev/null +++ b/docs/shiki/dist/languages/d.tmLanguage-b9012936.mjs @@ -0,0 +1,3 @@ +var d_tmLanguage = {fileTypes:["d","di","dpp"],name:"d",scopeName:"source.d",patterns:[{include:"#comment"},{include:"#type"},{include:"#statement"},{include:"#expression"}],repository:{type:{patterns:[{include:"#typeof"},{include:"#base-type"},{include:"#type-ctor"},{begin:"!\\(",end:"\\)",patterns:[{include:"#type"},{include:"#expression"}]}]},"base-type":{patterns:[{match:"\\b(auto|bool|byte|ubyte|short|ushort|int|uint|long|ulong|char|wchar|dchar|float|double|real|ifloat|idouble|ireal|cfloat|cdouble|creal|void|noreturn)\\b",name:"storage.type.basic-type.d"},{match:"\\b(string|wstring|dstring|size_t|ptrdiff_t)\\b(?!\\s*=)",name:"storage.type.basic-type.d"}]},"extended-type":{patterns:[{match:"\\b((\\.\\s*)?[_\\w][_\\d\\w]*)(\\s*\\.\\s*[_\\w][_\\d\\w]*)*\\b",name:"entity.name.type.d"},{begin:"\\[",beginCaptures:{"0":{name:"storage.type.array.expression.begin.d"}},end:"\\]",endCaptures:{"0":{name:"storage.type.array.expression.end.d"}},patterns:[{match:"\\.\\.|\\$",name:"keyword.operator.slice.d"},{include:"#type"},{include:"#expression"}]}]},"type-ctor":{patterns:[{match:"(const|immutable|inout|shared)\\b",name:"storage.type.modifier.d"}]},"typeof":{begin:"typeof\\s*\\(",end:"\\)",name:"keyword.token.typeof.d",patterns:[{match:"return",name:"keyword.control.return.d"},{include:"#expression"}]},expression:{patterns:[{include:"#index-expression"},{include:"#expression-no-index"}]},"expression-no-index":{patterns:[{include:"#function-literal"},{include:"#assert-expression"},{include:"#assign-expression"},{include:"#mixin-expression"},{include:"#import-expression"},{include:"#traits-expression"},{include:"#is-expression"},{include:"#typeid-expression"},{include:"#shift-expression"},{include:"#logical-expression"},{include:"#rel-expression"},{include:"#bitwise-expression"},{include:"#identity-expression"},{include:"#in-expression"},{include:"#conditional-expression"},{include:"#arithmetic-expression"},{include:"#new-expression"},{include:"#delete-expression"},{include:"#cast-expression"},{include:"#type-specialization"},{include:"#comma"},{include:"#special-keyword"},{include:"#functions"},{include:"#type"},{include:"#parentheses-expression"},{include:"#lexical"}]},"assign-expression":{patterns:[{match:">>>=|\\^\\^=|>>=|<<=|~=|\\^=|\\|=|&=|%=|/=|\\*=|-=|\\+=|=(?!>)",name:"keyword.operator.assign.d"}]},"conditional-expression":{patterns:[{match:"\\s(\\?|:)\\s",name:"keyword.operator.ternary.d"}]},"logical-expression":{patterns:[{match:"\\|\\||&&|==|!=|!",name:"keyword.operator.logical.d"}]},"bitwise-expression":{patterns:[{match:"\\||\\^|&",name:"keyword.operator.bitwise.d"}]},"identity-expression":{patterns:[{match:"\\b(is|!is)\\b",name:"keyword.operator.identity.d"}]},"rel-expression":{patterns:[{match:"!<>=|!<>|<>=|!>=|!<=|<=|>=|<>|!>|!<|<|>",name:"keyword.operator.rel.d"}]},"in-expression":{patterns:[{match:"\\b(in|!in)\\b",name:"keyword.operator.in.d"}]},"shift-expression":{patterns:[{match:"<<|>>|>>>",name:"keyword.operator.shift.d"},{include:"#add-expression"}]},"arithmetic-expression":{patterns:[{match:"\\^\\^|\\+\\+|--|(?",name:"keyword.operator.lambda.d"},{match:"\\b(function|delegate)\\b",name:"keyword.other.function-literal.d"},{begin:"\\b([_\\w][_\\d\\w]*)\\s*(=>)",end:"(?=[\\);,\\]}])",beginCaptures:{"1":{name:"variable.parameter.d"},"2":{name:"meta.lexical.token.symbolic.d"}},patterns:[{include:"source.d"}]},{begin:"(?<=\\)|\\()(\\s*)({)",beginCaptures:{"1":{name:"source.d"},"2":{name:"source.d"}},end:"}",patterns:[{include:"source.d"}]}]},"assert-expression":{patterns:[{begin:"\\bassert\\s*\\(",beginCaptures:{"0":{name:"keyword.other.assert.begin.d"}},end:"\\)",endCaptures:{"0":{name:"keyword.other.assert.end.d"}},patterns:[{include:"#comment"},{include:"#expression"},{include:"#comma"}]}]},"mixin-expression":{patterns:[{begin:"\\bmixin\\s*\\(",beginCaptures:{"0":{name:"keyword.other.mixin.begin.d"}},end:"\\)",endCaptures:{"0":{name:"keyword.other.mixin.end.d"}},patterns:[{include:"#comment"},{include:"#expression"},{include:"#comma"}]}]},"import-expression":{patterns:[{begin:"\\b(import)\\s*(\\()",beginCaptures:{"1":{name:"keyword.other.import.d"},"2":{name:"keyword.other.import.begin.d"}},end:"\\)",endCaptures:{"0":{name:"keyword.other.import.end.d"}},patterns:[{include:"#comment"},{include:"#expression"},{include:"#comma"}]}]},"typeid-expression":{patterns:[{match:"\\btypeid\\s*(?=\\()",name:"keyword.other.typeid.d"}]},"type-specialization":{patterns:[{match:"\\b(struct|union|class|interface|enum|function|delegate|super|const|immutable|inout|shared|return|__parameters)\\b",name:"keyword.other.storage.type-specialization.d"}]},"traits-expression":{patterns:[{begin:"\\b__traits\\s*\\(",beginCaptures:{"0":{name:"keyword.other.traits.begin.d"}},end:"\\)",endCaptures:{"0":{name:"keyword.other.traits.end.d"}},patterns:[{include:"#traits-keyword"},{include:"#comma"},{include:"#traits-argument"}]}]},"traits-keyword":{patterns:[{match:"isAbstractClass|isArithmetic|isAssociativeArray|isFinalClass|isPOD|isNested|isFloating|isIntegral|isScalar|isStaticArray|isUnsigned|isVirtualFunction|isVirtualMethod|isAbstractFunction|isFinalFunction|isStaticFunction|isOverrideFunction|isRef|isOut|isLazy|hasMember|identifier|getAliasThis|getAttributes|getMember|getOverloads|getProtection|getVirtualFunctions|getVirtualMethods|getUnitTests|parent|classInstanceSize|getVirtualIndex|allMembers|derivedMembers|isSame|compiles",name:"support.constant.traits-keyword.d"}]},"traits-arguments":{patterns:[{include:"#traits-argument"},{include:"#comma"}]},"traits-argument":{patterns:[{include:"#expression"},{include:"#type"}]},"special-keyword":{patterns:[{match:"\\b(__FILE__|__FILE_FULL_PATH__|__MODULE__|__LINE__|__FUNCTION__|__PRETTY_FUNCTION__)\\b",name:"constant.language.special-keyword.d"}]},statement:{patterns:[{include:"#non-block-statement"},{include:"#semi-colon"}]},"non-block-statement":{patterns:[{include:"#module-declaration"},{include:"#labeled-statement"},{include:"#if-statement"},{include:"#while-statement"},{include:"#do-statement"},{include:"#for-statement"},{include:"#static-foreach"},{include:"#static-foreach-reverse"},{include:"#foreach-statement"},{include:"#foreach-reverse-statement"},{include:"#switch-statement"},{include:"#final-switch-statement"},{include:"#case-statement"},{include:"#default-statement"},{include:"#continue-statement"},{include:"#break-statement"},{include:"#return-statement"},{include:"#goto-statement"},{include:"#with-statement"},{include:"#synchronized-statement"},{include:"#try-statement"},{include:"#catches"},{include:"#scope-guard-statement"},{include:"#throw-statement"},{include:"#finally-statement"},{include:"#asm-statement"},{include:"#pragma-statement"},{include:"#mixin-statement"},{include:"#conditional-statement"},{include:"#static-assert"},{include:"#deprecated-statement"},{include:"#unit-test"},{include:"#declaration-statement"}]},"labeled-statement":{patterns:[{match:"\\b(?!abstract|alias|align|asm|assert|auto|bool|break|byte|case|cast|catch|cdouble|cent|cfloat|char|class|const|continue|creal|dchar|debug|default|delegate|delete|deprecated|do|double|else|enum|export|extern|false|final|finally|float|for|foreach|foreach_reverse|function|goto|idouble|if|ifloat|immutable|import|in|inout|int|interface|invariant|ireal|is|lazy|long|macro|mixin|module|new|nothrow|noreturn|null|out|override|package|pragma|private|protected|public|pure|real|ref|return|scope|shared|short|static|struct|super|switch|synchronized|template|this|throw|true|try|typedef|typeid|typeof|ubyte|ucent|uint|ulong|union|unittest|ushort|version|void|volatile|wchar|while|with|__FILE__|__MODULE__|__LINE__|__FUNCTION__|__PRETTY_FUNCTION__|__gshared|__traits|__vector|__parameters)[a-zA-Z_][a-zA-Z_0-9]*\\s*:",name:"entity.name.d"}]},"declaration-statement":{patterns:[{include:"#declaration"}]},"if-statement":{patterns:[{begin:"\\b(if)\\b\\s*",captures:{"1":{name:"keyword.control.if.d"}},end:"(?<=\\))",patterns:[{begin:"\\(",end:"\\)",patterns:[{include:"source.d"}]}]},{match:"\\belse\\b\\s*",name:"keyword.control.else.d"}]},"while-statement":{patterns:[{begin:"\\b(while)\\b\\s*",captures:{"1":{name:"keyword.control.while.d"}},end:"(?<=\\))",patterns:[{begin:"\\(",end:"\\)",patterns:[{include:"source.d"}]}]}]},"do-statement":{patterns:[{match:"\\bdo\\b",name:"keyword.control.do.d"}]},"for-statement":{patterns:[{begin:"\\b(for)\\b\\s*",captures:{"1":{name:"keyword.control.for.d"}},end:"(?<=\\))",patterns:[{begin:"\\(",end:"\\)",patterns:[{include:"source.d"}]}]}]},"foreach-statement":{patterns:[{begin:"\\b(foreach)\\b\\s*",captures:{"1":{name:"keyword.control.foreach.d"}},end:"(?<=\\))",patterns:[{begin:"\\(",end:"\\)",patterns:[{match:";",name:"keyword.operator.semi-colon.d"},{include:"source.d"}]}]}]},"foreach-reverse-statement":{patterns:[{begin:"\\b(foreach_reverse)\\b\\s*",captures:{"1":{name:"keyword.control.foreach_reverse.d"}},end:"(?<=\\))",patterns:[{begin:"\\(",end:"\\)",patterns:[{match:";",name:"keyword.operator.semi-colon.d"},{include:"source.d"}]}]}]},"switch-statement":{patterns:[{begin:"\\b(switch)\\b\\s*",captures:{"1":{name:"keyword.control.switch.d"}},end:"(?<=\\))",patterns:[{begin:"\\(",end:"\\)",patterns:[{include:"source.d"}]}]}]},"case-statement":{patterns:[{begin:"\\b(case)\\b\\s*",beginCaptures:{"1":{name:"keyword.control.case.range.d"}},end:":",endCaptures:{"0":{name:"meta.case.end.d"}},patterns:[{include:"#comment"},{include:"#expression"},{include:"#comma"}]}]},"default-statement":{patterns:[{match:"\\b(default)\\s*(:)",captures:{"1":{name:"keyword.control.case.default.d"},"2":{name:"meta.default.colon.d"}}}]},"final-switch-statement":{patterns:[{begin:"\\b(final\\s+switch)\\b\\s*",captures:{"1":{name:"keyword.control.final.switch.d"}},end:"(?<=\\))",patterns:[{begin:"\\(",end:"\\)",patterns:[{include:"source.d"}]}]}]},"continue-statement":{patterns:[{match:"\\bcontinue\\b",name:"keyword.control.continue.d"}]},"break-statement":{patterns:[{match:"\\bbreak\\b",name:"keyword.control.break.d"}]},"return-statement":{patterns:[{match:"\\breturn\\b",name:"keyword.control.return.d"}]},"goto-statement":{patterns:[{match:"\\bgoto\\s+default\\b",name:"keyword.control.goto.d"},{match:"\\bgoto\\s+case\\b",name:"keyword.control.goto.d"},{match:"\\bgoto\\b",name:"keyword.control.goto.d"}]},"with-statement":{patterns:[{begin:"\\b(with)\\b\\s*(?=\\()",captures:{"1":{name:"keyword.control.with.d"}},end:"(?<=\\))",patterns:[{begin:"\\(",end:"\\)",patterns:[{include:"source.d"}]}]}]},"synchronized-statement":{patterns:[{begin:"\\b(synchronized)\\b\\s*(?=\\()",captures:{"1":{name:"keyword.control.synchronized.d"}},end:"(?<=\\))",patterns:[{begin:"\\(",end:"\\)",patterns:[{include:"source.d"}]}]}]},"try-statement":{patterns:[{match:"\\btry\\b",name:"keyword.control.try.d"}]},catches:{patterns:[{include:"#catch"}]},"catch":{patterns:[{begin:"\\b(catch)\\b\\s*(?=\\()",captures:{"1":{name:"keyword.control.catch.d"}},end:"(?<=\\))",patterns:[{begin:"\\(",end:"\\)",patterns:[{include:"source.d"}]}]}]},"finally-statement":{patterns:[{match:"\\bfinally\\b",name:"keyword.control.throw.d"}]},"throw-statement":{patterns:[{match:"\\bthrow\\b",name:"keyword.control.throw.d"}]},"scope-guard-statement":{patterns:[{match:"\\bscope\\s*\\((exit|success|failure)\\)",name:"keyword.control.scope.d"}]},"asm-statement":{patterns:[{begin:"\\b(asm)\\b\\s*(?=\\{)",captures:{"1":{name:"keyword.control.switch.d"}},end:"(?<=\\})",patterns:[{begin:"\\{",end:"\\}",beginCaptures:{"0":{name:"keyword.control.asm.begin.d"}},endCaptures:{"0":{name:"keyword.control.asm.end.d"}},contentName:"gfm.markup.raw.assembly.d",patterns:[{include:"#asm-instruction"}]}]}]},"pragma-statement":{patterns:[{include:"#pragma"}]},"mixin-statement":{patterns:[{begin:"\\bmixin\\s*\\(",beginCaptures:{"0":{name:"keyword.control.mixin.begin.d"}},end:"\\)",endCaptures:{"0":{name:"keyword.control.mixin.end.d"}},patterns:[{include:"#comment"},{include:"#expression"},{include:"#comma"}]}]},"is-expression":{patterns:[{begin:"\\bis\\s*\\(",beginCaptures:{"0":{name:"keyword.token.is.begin.d"}},end:"\\)",endCaptures:{"0":{name:"keyword.token.is.end.d"}},patterns:[{include:"#comment"},{include:"#expression"},{include:"#comma"}]}]},"parentheses-expression":{patterns:[{begin:"\\(",end:"\\)",patterns:[{include:"#expression"}]}]},"deprecated-statement":{patterns:[{begin:"\\bdeprecated\\s*\\(",beginCaptures:{"0":{name:"keyword.other.deprecated.begin.d"}},end:"\\)",endCaptures:{"0":{name:"keyword.other.deprecated.end.d"}},patterns:[{include:"#comment"},{include:"#expression"},{include:"#comma"}]},{match:"\\bdeprecated\\b\\s*(?!\\()",name:"keyword.other.deprecated.plain.d"}]},"asm-instruction":{patterns:[{include:"#comment"},{match:"\\b(align|even|naked|db|ds|di|dl|df|dd|de)\\b|:",name:"keyword.asm-instruction.d"},{match:"\\b__LOCAL_SIZE\\b",name:"constant.language.assembly.d"},{match:"\\b(offsetof|seg)\\b",name:"support.type.assembly.d"},{include:"#asm-type-prefix"},{include:"#asm-primary-expression"},{include:"#operands"},{include:"#register"},{include:"#register-64"},{include:"#float-literal"},{include:"#integer-literal"},{include:"#identifier"}]},operands:{patterns:[{match:"\\?|:",name:"keyword.operator.ternary.assembly.d"},{match:"\\]|\\[",name:"keyword.operator.bracket.assembly.d"},{match:">>>|\\|\\||&&|==|!=|<=|>=|<<|>>|\\||\\^|&|<|>|\\+|-|\\*|/|%|~|!",name:"keyword.operator.assembly.d"}]},"asm-type-prefix":{patterns:[{match:"\\b((near\\s+ptr)|(far\\s+ptr)|(byte\\s+ptr)|(short\\s+ptr)|(int\\s+ptr)|(word\\s+ptr)|(dword\\s+ptr)|(qword\\s+ptr)|(float\\s+ptr)|(double\\s+ptr)|(real\\s+ptr))\\b",name:"support.type.asm-type-prefix.d"}]},register:{patterns:[{match:"\\b(XMM0|XMM1|XMM2|XMM3|XMM4|XMM5|XMM6|XMM7|MM0|MM1|MM2|MM3|MM4|MM5|MM6|MM7|ST\\(0\\)|ST\\(1\\)|ST\\(2\\)|ST\\(3\\)|ST\\(4\\)|ST\\(5\\)|ST\\(6\\)|ST\\(7\\)|ST|TR1|TR2|TR3|TR4|TR5|TR6|TR7|DR0|DR1|DR2|DR3|DR4|DR5|DR6|DR7|CR0|CR2|CR3|CR4|EAX|EBX|ECX|EDX|EBP|ESP|EDI|ESI|AL|AH|AX|BL|BH|BX|CL|CH|CX|DL|DH|DX|BP|SP|DI|SI|ES|CS|SS|DS|GS|FS)\\b",name:"storage.type.assembly.register.d"}]},"register-64":{patterns:[{match:"\\b(RAX|RBX|RCX|RDX|BPL|RBP|SPL|RSP|DIL|RDI|SIL|RSI|R8B|R8W|R8D|R8|R9B|R9W|R9D|R9|R10B|R10W|R10D|R10|R11B|R11W|R11D|R11|R12B|R12W|R12D|R12|R13B|R13W|R13D|R13|R14B|R14W|R14D|R14|R15B|R15W|R15D|R15|XMM8|XMM9|XMM10|XMM11|XMM12|XMM13|XMM14|XMM15|YMM0|YMM1|YMM2|YMM3|YMM4|YMM5|YMM6|YMM7|YMM8|YMM9|YMM10|YMM11|YMM12|YMM13|YMM14|YMM15)\\b",name:"storage.type.assembly.register-64.d"}]},declaration:{patterns:[{include:"#alias-declaration"},{include:"#aggregate-declaration"},{include:"#enum-declaration"},{include:"#import-declaration"},{include:"#storage-class"},{include:"#void-initializer"},{include:"#mixin-declaration"}]},"alias-declaration":{patterns:[{begin:"\\b(alias)\\b\\s*",beginCaptures:{"1":{name:"keyword.other.alias.d"}},end:";",endCaptures:{"0":{name:"meta.alias.end.d"}},patterns:[{include:"#type"},{match:"=(?![=>])",name:"keyword.operator.equal.alias.d"},{include:"#expression"}]}]},"storage-class":{patterns:[{match:"\\b(deprecated|enum|static|extern|abstract|final|override|synchronized|auto|scope|const|immutable|inout|shared|__gshared|nothrow|pure|ref)\\b",name:"storage.class.d"},{include:"#linkage-attribute"},{include:"#align-attribute"},{include:"#property"}]},"void-initializer":{patterns:[{match:"\\bvoid\\b",name:"support.type.void.d"}]},functions:{patterns:[{include:"#function-attribute"},{include:"#function-prelude"}]},"function-prelude":{patterns:[{match:"(?!typeof|typeid)((\\.\\s*)?[_\\w][_\\d\\w]*)(\\s*\\.\\s*[_\\w][_\\d\\w]*)*\\s*(?=\\()",name:"entity.name.function.d"}]},"class-members":{patterns:[{include:"#shared-static-constructor"},{include:"#shared-static-destructor"},{include:"#constructor"},{include:"#destructor"},{include:"#postblit"},{include:"#invariant"},{include:"#member-function-attribute"}]},"function-attribute":{patterns:[{match:"\\b(nothrow|pure)\\b",name:"storage.type.modifier.function-attribute.d"},{include:"#property"}]},"member-function-attribute":{patterns:[{match:"\\b(const|immutable|inout|shared)\\b",name:"storage.type.modifier.member-function-attribute"}]},"function-body":{patterns:[{include:"#in-statement"},{include:"#out-statement"},{include:"#block-statement"}]},"in-statement":{patterns:[{match:"\\bin\\b",name:"keyword.control.in.d"}]},"out-statement":{patterns:[{begin:"\\bout\\s*\\(",beginCaptures:{"0":{name:"keyword.control.out.begin.d"}},end:"\\)",endCaptures:{"0":{name:"keyword.control.out.end.d"}},patterns:[{include:"#identifier"}]},{match:"\\bout\\b",name:"keyword.control.out.d"}]},constructor:{patterns:[{match:"\\bthis\\b",name:"entity.name.function.constructor.d"}]},destructor:{patterns:[{match:"\\b~this\\s*\\(\\s*\\)",name:"entity.name.class.destructor.d"}]},postblit:{patterns:[{match:"\\bthis\\s*\\(\\s*this\\s*\\)\\s",name:"entity.name.class.postblit.d"}]},invariant:{patterns:[{match:"\\binvariant\\s*\\(\\s*\\)",name:"entity.name.class.invariant.d"}]},"shared-static-constructor":{patterns:[{match:"\\b(shared\\s+)?static\\s+this\\s*\\(\\s*\\)",name:"entity.name.class.constructor.shared-static.d"},{include:"#function-body"}]},"shared-static-destructor":{patterns:[{match:"\\b(shared\\s+)?static\\s+~this\\s*\\(\\s*\\)",name:"entity.name.class.destructor.static.d"}]},"aggregate-declaration":{patterns:[{include:"#class-declaration"},{include:"#interface-declaration"},{include:"#struct-declaration"},{include:"#union-declaration"},{include:"#mixin-template-declaration"},{include:"#template-declaration"}]},"class-declaration":{patterns:[{match:"\\b(class)(?:\\s+([A-Za-z_][\\w_\\d]*))?\\b",captures:{"1":{name:"storage.type.class.d"},"2":{name:"entity.name.class.d"}}},{include:"#protection-attribute"},{include:"#class-members"}]},"interface-declaration":{patterns:[{match:"\\b(interface)(?:\\s+([A-Za-z_][\\w_\\d]*))?\\b",captures:{"1":{name:"storage.type.interface.d"},"2":{name:"entity.name.type.interface.d"}}}]},"struct-declaration":{patterns:[{match:"\\b(struct)(?:\\s+([A-Za-z_][\\w_\\d]*))?\\b",captures:{"1":{name:"storage.type.struct.d"},"2":{name:"entity.name.type.struct.d"}}}]},"union-declaration":{patterns:[{match:"\\b(union)(?:\\s+([A-Za-z_][\\w_\\d]*))?\\b",captures:{"1":{name:"storage.type.union.d"},"2":{name:"entity.name.type.union.d"}}}]},"enum-declaration":{patterns:[{begin:"\\b(enum)\\b\\s+(?=.*[=;])",end:"([A-Za-z_][\\w_\\d]*)\\s*(?=;|=|\\()(;)?",beginCaptures:{"1":{name:"storage.type.enum.d"}},endCaptures:{"1":{name:"entity.name.type.enum.d"},"2":{name:"meta.enum.end.d"}},patterns:[{include:"#type"},{include:"#extended-type"},{match:"=(?![=>])",name:"keyword.operator.equal.alias.d"}]}]},"template-declaration":{patterns:[{match:"\\b(template)(?:\\s+([A-Za-z_][\\w_\\d]*))?\\b",captures:{"1":{name:"storage.type.template.d"},"2":{name:"entity.name.type.template.d"}}}]},"mixin-template-declaration":{patterns:[{match:"\\b(mixin\\s*template)(?:\\s+([A-Za-z_][\\w_\\d]*))?\\b",captures:{"1":{name:"storage.type.mixintemplate.d"},"2":{name:"entity.name.type.mixintemplate.d"}}}]},attribute:{patterns:[{include:"#linkage-attribute"},{include:"#align-attribute"},{include:"#deprecated-attribute"},{include:"#protection-attribute"},{include:"#pragma"},{match:"\\b(static|extern|abstract|final|override|synchronized|auto|scope|const|immutable|inout|shared|__gshared|nothrow|pure|ref)\\b",name:"entity.other.attribute-name.d"},{include:"#property"}]},"linkage-attribute":{patterns:[{begin:"\\bextern\\s*\\(\\s*C\\+\\+\\s*,",beginCaptures:{"0":{name:"keyword.other.extern.cplusplus.begin.d"}},end:"\\)",endCaptures:{"0":{name:"keyword.other.extern.cplusplus.end.d"}},patterns:[{include:"#identifier"},{include:"#comma"}]},{begin:"\\bextern\\s*\\(",beginCaptures:{"0":{name:"keyword.other.extern.begin.d"}},end:"\\)",endCaptures:{"0":{name:"keyword.other.extern.end.d"}},patterns:[{include:"#linkage-type"}]}]},"linkage-type":{patterns:[{match:"C|C\\+\\+|D|Windows|Pascal|System",name:"storage.modifier.linkage-type.d"}]},"align-attribute":{patterns:[{begin:"\\balign\\s*\\(",end:"\\)",name:"storage.modifier.align-attribute.d",patterns:[{include:"#integer-literal"}]},{match:"\\balign\\b\\s*(?!\\()",name:"storage.modifier.align-attribute.d"}]},"protection-attribute":{patterns:[{match:"\\b(private|package|protected|public|export)\\b",name:"keyword.other.protections.d"}]},property:{patterns:[{match:"@(property|safe|trusted|system|disable|nogc)\\b",name:"entity.name.tag.property.d"},{include:"#user-defined-attribute"}]},"user-defined-attribute":{patterns:[{match:"@([_\\w][_\\d\\w]*)\\b",name:"entity.name.tag.user-defined-property.d"},{begin:"@([_\\w][_\\d\\w]*)?\\(",end:"\\)",name:"entity.name.tag.user-defined-property.d",patterns:[{include:"#expression"}]}]},pragma:{patterns:[{match:"\\bpragma\\s*\\(\\s*[_\\w][_\\d\\w]*\\s*\\)",name:"keyword.other.pragma.d"},{begin:"\\bpragma\\s*\\(\\s*[_\\w][_\\d\\w]*\\s*,",end:"\\)",name:"keyword.other.pragma.d",patterns:[{include:"#expression"}]},{match:"^#!.+",name:"gfm.markup.header.preprocessor.script-tag.d"}]},"conditional-declaration":{patterns:[{include:"#condition"},{match:"\\belse\\b",name:"keyword.control.else.d"},{include:"#colon"},{include:"#decl-defs"}]},"conditional-statement":{patterns:[{include:"#condition"},{include:"#no-scope-non-empty-statement"},{match:"\\belse\\b",name:"keyword.control.else.d"}]},condition:{patterns:[{include:"#version-condition"},{include:"#debug-condition"},{include:"#static-if-condition"}]},"version-condition":{patterns:[{match:"\\bversion\\s*\\(\\s*unittest\\s*\\)",name:"keyword.other.version.unittest.d"},{match:"\\bversion\\s*\\(\\s*assert\\s*\\)",name:"keyword.other.version.assert.d"},{begin:"\\bversion\\s*\\(",beginCaptures:{"0":{name:"keyword.other.version.identifier.begin.d"}},end:"\\)",endCaptures:{"0":{name:"keyword.other.version.identifer.end.d"}},patterns:[{include:"#integer-literal"},{include:"#identifier"}]},{include:"#version-specification"}]},"debug-condition":{patterns:[{begin:"\\bdebug\\s*\\(",beginCaptures:{"0":{name:"keyword.other.debug.identifier.begin.d"}},end:"\\)",endCaptures:{"0":{name:"keyword.other.debug.identifier.end.d"}},patterns:[{include:"#integer-literal"},{include:"#identifier"}]},{match:"\\bdebug\\b\\s*(?!\\()",name:"keyword.other.debug.plain.d"}]},"version-specification":{patterns:[{match:"\\bversion\\b\\s*(?==)",name:"keyword.other.version-specification.d"}]},"debug-specification":{patterns:[{match:"\\bdebug\\b\\s*(?==)",name:"keyword.other.debug-specification.d"}]},"static-if-condition":{patterns:[{begin:"\\bstatic\\s+if\\b\\s*\\(",beginCaptures:{"0":{name:"keyword.control.static-if.begin.d"}},end:"\\)",endCaptures:{"0":{name:"keyword.control.static-if.end.d"}},patterns:[{include:"#comment"},{include:"#expression"}]}]},"static-assert":{patterns:[{begin:"\\bstatic\\s+assert\\b\\s*\\(",beginCaptures:{"0":{name:"keyword.other.static-assert.begin.d"}},end:"\\)",endCaptures:{"0":{name:"keyword.other.static-assert.end.d"}},patterns:[{include:"#expression"}]}]},"static-foreach":{patterns:[{begin:"\\b(static\\s+foreach)\\b\\s*",captures:{"1":{name:"keyword.control.static-foreach.d"}},end:"(?<=\\))",patterns:[{begin:"\\(",end:"\\)",patterns:[{match:";",name:"keyword.operator.semi-colon.d"},{include:"source.d"}]}]}]},"static-foreach-reverse":{patterns:[{begin:"\\b(static\\s+foreach_reverse)\\b\\s*",captures:{"1":{name:"keyword.control.static-foreach.d"}},end:"(?<=\\))",patterns:[{begin:"\\(",end:"\\)",patterns:[{match:";",name:"keyword.operator.semi-colon.d"},{include:"source.d"}]}]}]},module:{packages:[{"import":"#module-declaration"}]},"module-declaration":{patterns:[{begin:"\\b(module)\\s+",end:";",beginCaptures:{"1":{name:"keyword.package.module.d"}},endCaptures:{"0":{name:"meta.module.end.d"}},patterns:[{include:"#module-identifier"},{include:"#comment"}]}]},"import-declaration":{patterns:[{begin:"\\b(static\\s+)?(import)\\s+(?!\\()",end:";",beginCaptures:{"1":{name:"keyword.package.import.d"},"2":{name:"keyword.package.import.d"}},endCaptures:{"0":{name:"meta.import.end.d"}},patterns:[{include:"#import-identifier"},{include:"#comma"},{include:"#comment"}]}]},"mixin-declaration":{patterns:[{begin:"\\bmixin\\s*\\(",end:"\\)",beginCaptures:{"0":{name:"keyword.mixin.begin.d"}},endCaptures:{"0":{name:"keyword.mixin.end.d"}},patterns:[{include:"#comment"},{include:"#expression"},{include:"#comma"}]}]},comma:{patterns:[{match:",",name:"keyword.operator.comma.d"}]},colon:{patterns:[{match:":",name:"support.type.colon.d"}]},equal:{patterns:[{match:"=(?![=>])",name:"keyword.operator.equal.d"}]},"semi-colon":{patterns:[{match:";",name:"meta.statement.end.d"}]},lexical:{patterns:[{include:"#comment"},{include:"#string-literal"},{include:"#character-literal"},{include:"#float-literal"},{include:"#integer-literal"},{include:"#eof"},{include:"#special-tokens"},{include:"#special-token-sequence"},{include:"#keyword"},{include:"#identifier"}]},"integer-literal":{patterns:[{include:"#decimal-integer"},{include:"#binary-integer"},{include:"#hexadecimal-integer"}]},"decimal-integer":{patterns:[{match:"\\b(0(?=[^\\dxXbB]))|([1-9][0-9_]*)(Lu|LU|uL|UL|L|u|U)?\\b",name:"constant.numeric.integer.decimal.d"}]},"binary-integer":{patterns:[{match:"\\b(0b|0B)[0-1_]+(Lu|LU|uL|UL|L|u|U)?\\b",name:"constant.numeric.integer.binary.d"}]},"hexadecimal-integer":{patterns:[{match:"\\b(0x|0X)([0-9a-fA-F][0-9a-fA-F_]*)(Lu|LU|uL|UL|L|u|U)?\\b",name:"constant.numeric.integer.hexadecimal.d"}]},"float-literal":{patterns:[{include:"#decimal-float"},{include:"#hexadecimal-float"}]},"decimal-float":{patterns:[{match:"\\b((\\.[0-9])|(0\\.)|(([1-9]|(0[1-9_]))[0-9_]*\\.))[0-9_]*((e-|E-|e\\+|E\\+|e|E)[0-9][0-9_]*)?[LfF]?i?\\b",name:"constant.numeric.float.decimal.d"}]},"hexadecimal-float":{patterns:[{match:"\\b0[xX][0-9a-fA-F_]*(\\.[0-9a-fA-F_]*)?(p-|P-|p\\+|P\\+|p|P)[0-9][0-9_]*[LfF]?i?\\b",name:"constant.numeric.float.hexadecimal.d"}]},"string-literal":{patterns:[{include:"#wysiwyg-string"},{include:"#alternate-wysiwyg-string"},{include:"#hex-string"},{include:"#arbitrary-delimited-string"},{include:"#delimited-string"},{include:"#double-quoted-string"},{include:"#token-string"}]},"wysiwyg-string":{patterns:[{begin:"r\\\"",end:"\\\"[cwd]?",name:"string.wysiwyg-string.d",patterns:[{include:"#wysiwyg-characters"}]}]},"alternate-wysiwyg-string":{patterns:[{begin:"`",end:"`[cwd]?",name:"string.alternate-wysiwyg-string.d",patterns:[{include:"#wysiwyg-characters"}]}]},"double-quoted-string":{patterns:[{begin:"\"",end:"\"[cwd]?",name:"string.double-quoted-string.d",patterns:[{include:"#double-quoted-characters"}]}]},"hex-string":{patterns:[{begin:"x\"",end:"\"[cwd]?",name:"string.hex-string.d",patterns:[{match:"[a-fA-F0-9_s]+",name:"constant.character.hex-string.d"}]}]},"arbitrary-delimited-string":{begin:"q\"(\\w+)",end:"\\1\"",name:"string.delimited.d",patterns:[{match:".",name:"string.delimited.d"}]},"delimited-string":{begin:"q\"",end:"\"",name:"string.delimited.d",patterns:[{include:"#delimited-string-bracket"},{include:"#delimited-string-parens"},{include:"#delimited-string-angle-brackets"},{include:"#delimited-string-braces"}]},"token-string":{begin:"q\\{",end:"\\}[cdw]?",beginCaptures:{"0":{name:"string.quoted.token.d"}},endCaptures:{"0":{name:"string.quoted.token.d"}},patterns:[{include:"#token-string-content"}]},"delimited-string-bracket":{patterns:[{begin:"\\[",end:"\\]",name:"constant.characters.delimited.brackets.d",patterns:[{include:"#wysiwyg-characters"}]}]},"delimited-string-parens":{patterns:[{begin:"\\(",end:"\\)",name:"constant.character.delimited.parens.d",patterns:[{include:"#wysiwyg-characters"}]}]},"delimited-string-angle-brackets":{patterns:[{begin:"<",end:">",name:"constant.character.angle-brackets.d",patterns:[{include:"#wysiwyg-characters"}]}]},"delimited-string-braces":{patterns:[{begin:"\\{",end:"\\}",name:"constant.character.delimited.braces.d",patterns:[{include:"#wysiwyg-characters"}]}]},"wysiwyg-characters":{patterns:[{include:"#character"},{include:"#end-of-line"}]},"double-quoted-characters":{patterns:[{include:"#character"},{include:"#end-of-line"},{include:"#escape-sequence"}]},"escape-sequence":{patterns:[{match:"(\\\\(?:quot|amp|lt|gt|OElig|oelig|Scaron|scaron|Yuml|circ|tilde|ensp|emsp|thinsp|zwnj|zwj|lrm|rlm|ndash|mdash|lsquo|rsquo|sbquo|ldquo|rdquo|bdquo|dagger|Dagger|permil|lsaquo|rsaquo|euro|nbsp|iexcl|cent|pound|curren|yen|brvbar|sect|uml|copy|ordf|laquo|not|shy|reg|macr|deg|plusmn|sup2|sup3|acute|micro|para|middot|cedil|sup1|ordm|raquo|frac14|frac12|frac34|iquest|Agrave|Aacute|Acirc|Atilde|Auml|Aring|Aelig|Ccedil|egrave|eacute|ecirc|iuml|eth|ntilde|ograve|oacute|ocirc|otilde|ouml|divide|oslash|ugrave|uacute|ucirc|uuml|yacute|thorn|yuml|fnof|Alpha|Beta|Gamma|Delta|Epsilon|Zeta|Eta|Theta|Iota|Kappa|Lambda|Mu|Nu|Xi|Omicron|Pi|Rho|Sigma|Tau|Upsilon|Phi|Chi|Psi|Omega|alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|xi|omicron|pi|rho|sigmaf|sigma|tau|upsilon|phi|chi|psi|omega|thetasym|upsih|piv|bull|hellip|prime|Prime|oline|frasl|weierp|image|real|trade|alefsym|larr|uarr|rarr|darr|harr|crarr|lArr|uArr|rArr|dArr|hArr|forall|part|exist|empty|nabla|isin|notin|ni|prod|sum|minux|lowast|radic|prop|infin|ang|and|or|cap|cup|int|there4|sim|cong|asymp|ne|equiv|le|ge|sub|sup|nsub|sube|supe|oplus|otimes|perp|sdot|lceil|rceil|lfloor|rfloor|loz|spades|clubs|hearts|diams|lang|rang))",name:"constant.character.escape-sequence.entity.d"},{match:"(\\\\x[0-9a-fA-F_]{2}|\\\\u[0-9a-fA-F_]{4}|\\\\U[0-9a-fA-F_]{8}|\\\\[0-7]{1,3})",name:"constant.character.escape-sequence.number.d"},{match:"(\\\\t|\\\\'|\\\\\"|\\\\\\?|\\\\0|\\\\a|\\\\b|\\\\f|\\\\n|\\\\r|\\\\v|\\\\\\\\)",name:"constant.character.escape-sequence.d"}]},"character-literal":{patterns:[{begin:"'",end:"'",name:"string.character-literal.d",patterns:[{include:"#character"},{include:"#escape-sequence"}]}]},character:{patterns:[{match:"[\\w\\s]+",name:"string.character.d"}]},"end-of-line":{patterns:[{match:"\\n+",name:"string.character.end-of-line.d"}]},"identifier-list":{patterns:[{match:",",name:"keyword.other.comma.d"},{include:"#identifier"}]},identifier:{patterns:[{match:"\\b((\\.\\s*)?[_\\w][_\\d\\w]*)(\\s*\\.\\s*[_\\w][_\\d\\w]*)*\\b",name:"variable.d"}]},"module-identifier":{patterns:[{match:"([_a-zA-Z][_\\d\\w]*)(\\s*\\.\\s*[_a-zA-Z][_\\d\\w]*)*",name:"variable.parameter.module.d"}]},"import-identifier":{patterns:[{match:"([_a-zA-Z][_\\d\\w]*)(\\s*\\.\\s*[_a-zA-Z][_\\d\\w]*)*",name:"variable.parameter.import.d"}]},eof:{patterns:[{begin:"__EOF__",beginCaptures:{"0":{name:"comment.block.documentation.eof.start.d"}},end:"(?!__NEVER_MATCH__)__NEVER_MATCH__",name:"text.eof.d"}]},comment:{patterns:[{include:"#block-comment"},{include:"#line-comment"},{include:"#nesting-block-comment"}]},"block-comment":{patterns:[{begin:"/((?!\\*/)\\*)+",beginCaptures:{"0":{name:"comment.block.begin.d"}},end:"\\*+/",endCaptures:{"0":{name:"comment.block.end.d"}},name:"comment.block.content.d"}]},"line-comment":{patterns:[{match:"//+.*$",name:"comment.line.d"}]},"nesting-block-comment":{patterns:[{begin:"/((?!\\+/)\\+)+",beginCaptures:{"0":{name:"comment.block.documentation.begin.d"}},end:"\\++/",endCaptures:{"0":{name:"comment.block.documentation.end.d"}},name:"comment.block.documentation.content.d",patterns:[{include:"#nesting-block-comment"}]}]},"token-string-content":{patterns:[{begin:"{",end:"}",patterns:[{include:"#token-string-content"}]},{include:"#comment"},{include:"#tokens"}]},tokens:{patterns:[{include:"#string-literal"},{include:"#character-literal"},{include:"#integer-literal"},{include:"#float-literal"},{include:"#keyword"},{match:"~=|~|>>>|>>=|>>|>=|>|=>|==|=|<>|<=|<<|<|%=|%|#|&=|&&|&|\\$|\\|=|\\|\\||\\||\\+=|\\+\\+|\\+|\\^=|\\^\\^=|\\^\\^|\\^|\\*=|\\*|\\}|\\{|\\]|\\[|\\)|\\(|\\.\\.\\.|\\.\\.|\\.|\\?|\\!>=|\\!>|\\!=|\\!<>=|\\!<>|\\!<=|\\!<|\\!|/=|/|@|:|;|,|-=|--|-",name:"meta.lexical.token.symbolic.d"},{include:"#identifier"}]},keyword:{patterns:[{match:"\\babstract\\b",name:"keyword.token.abstract.d"},{match:"\\balias\\b",name:"keyword.token.alias.d"},{match:"\\balign\\b",name:"keyword.token.align.d"},{match:"\\basm\\b",name:"keyword.token.asm.d"},{match:"\\bassert\\b",name:"keyword.token.assert.d"},{match:"\\bauto\\b",name:"keyword.token.auto.d"},{match:"\\bbool\\b",name:"keyword.token.bool.d"},{match:"\\bbreak\\b",name:"keyword.token.break.d"},{match:"\\bbyte\\b",name:"keyword.token.byte.d"},{match:"\\bcase\\b",name:"keyword.token.case.d"},{match:"\\bcast\\b",name:"keyword.token.cast.d"},{match:"\\bcatch\\b",name:"keyword.token.catch.d"},{match:"\\bcdouble\\b",name:"keyword.token.cdouble.d"},{match:"\\bcent\\b",name:"keyword.token.cent.d"},{match:"\\bcfloat\\b",name:"keyword.token.cfloat.d"},{match:"\\bchar\\b",name:"keyword.token.char.d"},{match:"\\bclass\\b",name:"keyword.token.class.d"},{match:"\\bconst\\b",name:"keyword.token.const.d"},{match:"\\bcontinue\\b",name:"keyword.token.continue.d"},{match:"\\bcreal\\b",name:"keyword.token.creal.d"},{match:"\\bdchar\\b",name:"keyword.token.dchar.d"},{match:"\\bdebug\\b",name:"keyword.token.debug.d"},{match:"\\bdefault\\b",name:"keyword.token.default.d"},{match:"\\bdelegate\\b",name:"keyword.token.delegate.d"},{match:"\\bdelete\\b",name:"keyword.token.delete.d"},{match:"\\bdeprecated\\b",name:"keyword.token.deprecated.d"},{match:"\\bdo\\b",name:"keyword.token.do.d"},{match:"\\bdouble\\b",name:"keyword.token.double.d"},{match:"\\belse\\b",name:"keyword.token.else.d"},{match:"\\benum\\b",name:"keyword.token.enum.d"},{match:"\\bexport\\b",name:"keyword.token.export.d"},{match:"\\bextern\\b",name:"keyword.token.extern.d"},{match:"\\bfalse\\b",name:"constant.language.boolean.false.d"},{match:"\\bfinal\\b",name:"keyword.token.final.d"},{match:"\\bfinally\\b",name:"keyword.token.finally.d"},{match:"\\bfloat\\b",name:"keyword.token.float.d"},{match:"\\bfor\\b",name:"keyword.token.for.d"},{match:"\\bforeach\\b",name:"keyword.token.foreach.d"},{match:"\\bforeach_reverse\\b",name:"keyword.token.foreach_reverse.d"},{match:"\\bfunction\\b",name:"keyword.token.function.d"},{match:"\\bgoto\\b",name:"keyword.token.goto.d"},{match:"\\bidouble\\b",name:"keyword.token.idouble.d"},{match:"\\bif\\b",name:"keyword.token.if.d"},{match:"\\bifloat\\b",name:"keyword.token.ifloat.d"},{match:"\\bimmutable\\b",name:"keyword.token.immutable.d"},{match:"\\bimport\\b",name:"keyword.token.import.d"},{match:"\\bin\\b",name:"keyword.token.in.d"},{match:"\\binout\\b",name:"keyword.token.inout.d"},{match:"\\bint\\b",name:"keyword.token.int.d"},{match:"\\binterface\\b",name:"keyword.token.interface.d"},{match:"\\binvariant\\b",name:"keyword.token.invariant.d"},{match:"\\bireal\\b",name:"keyword.token.ireal.d"},{match:"\\bis\\b",name:"keyword.token.is.d"},{match:"\\blazy\\b",name:"keyword.token.lazy.d"},{match:"\\blong\\b",name:"keyword.token.long.d"},{match:"\\bmacro\\b",name:"keyword.token.macro.d"},{match:"\\bmixin\\b",name:"keyword.token.mixin.d"},{match:"\\bmodule\\b",name:"keyword.token.module.d"},{match:"\\bnew\\b",name:"keyword.token.new.d"},{match:"\\bnothrow\\b",name:"keyword.token.nothrow.d"},{match:"\\bnull\\b",name:"constant.language.null.d"},{match:"\\bout\\b",name:"keyword.token.out.d"},{match:"\\boverride\\b",name:"keyword.token.override.d"},{match:"\\bpackage\\b",name:"keyword.token.package.d"},{match:"\\bpragma\\b",name:"keyword.token.pragma.d"},{match:"\\bprivate\\b",name:"keyword.token.private.d"},{match:"\\bprotected\\b",name:"keyword.token.protected.d"},{match:"\\bpublic\\b",name:"keyword.token.public.d"},{match:"\\bpure\\b",name:"keyword.token.pure.d"},{match:"\\breal\\b",name:"keyword.token.real.d"},{match:"\\bref\\b",name:"keyword.token.ref.d"},{match:"\\breturn\\b",name:"keyword.token.return.d"},{match:"\\bscope\\b",name:"keyword.token.scope.d"},{match:"\\bshared\\b",name:"keyword.token.shared.d"},{match:"\\bshort\\b",name:"keyword.token.short.d"},{match:"\\bstatic\\b",name:"keyword.token.static.d"},{match:"\\bstruct\\b",name:"keyword.token.struct.d"},{match:"\\bsuper\\b",name:"keyword.token.super.d"},{match:"\\bswitch\\b",name:"keyword.token.switch.d"},{match:"\\bsynchronized\\b",name:"keyword.token.synchronized.d"},{match:"\\btemplate\\b",name:"keyword.token.template.d"},{match:"\\bthis\\b",name:"keyword.token.this.d"},{match:"\\bthrow\\b",name:"keyword.token.throw.d"},{match:"\\btrue\\b",name:"constant.language.boolean.true.d"},{match:"\\btry\\b",name:"keyword.token.try.d"},{match:"\\btypedef\\b",name:"keyword.token.typedef.d"},{match:"\\btypeid\\b",name:"keyword.token.typeid.d"},{match:"\\btypeof\\b",name:"keyword.token.typeof.d"},{match:"\\bubyte\\b",name:"keyword.token.ubyte.d"},{match:"\\bucent\\b",name:"keyword.token.ucent.d"},{match:"\\buint\\b",name:"keyword.token.uint.d"},{match:"\\bulong\\b",name:"keyword.token.ulong.d"},{match:"\\bunion\\b",name:"keyword.token.union.d"},{match:"\\bunittest\\b",name:"keyword.token.unittest.d"},{match:"\\bushort\\b",name:"keyword.token.ushort.d"},{match:"\\bversion\\b",name:"keyword.token.version.d"},{match:"\\bvoid\\b",name:"keyword.token.void.d"},{match:"\\bvolatile\\b",name:"keyword.token.volatile.d"},{match:"\\bwchar\\b",name:"keyword.token.wchar.d"},{match:"\\bwhile\\b",name:"keyword.token.while.d"},{match:"\\bwith\\b",name:"keyword.token.with.d"},{match:"\\b__FILE__\\b",name:"keyword.token.__FILE__.d"},{match:"\\b__MODULE__\\b",name:"keyword.token.__MODULE__.d"},{match:"\\b__LINE__\\b",name:"keyword.token.__LINE__.d"},{match:"\\b__FUNCTION__\\b",name:"keyword.token.__FUNCTION__.d"},{match:"\\b__PRETTY_FUNCTION__\\b",name:"keyword.token.__PRETTY_FUNCTION__.d"},{match:"\\b__gshared\\b",name:"keyword.token.__gshared.d"},{match:"\\b__traits\\b",name:"keyword.token.__traits.d"},{match:"\\b__vector\\b",name:"keyword.token.__vector.d"},{match:"\\b__parameters\\b",name:"keyword.token.__parameters.d"}]},"special-token-sequence":{patterns:[{match:"#\\s*line.*",name:"gfm.markup.italic.special-token-sequence.d"}]},"special-tokens":{patterns:[{match:"\\b(__DATE__|__TIME__|__TIMESTAMP__|__VENDOR__|__VERSION__)\\b",name:"gfm.markup.raw.special-tokens.d"}]}}}; + +export { d_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/dart.tmLanguage-6958809a.mjs b/docs/shiki/dist/languages/dart.tmLanguage-6958809a.mjs new file mode 100644 index 00000000..2de6c740 --- /dev/null +++ b/docs/shiki/dist/languages/dart.tmLanguage-6958809a.mjs @@ -0,0 +1,3 @@ +var dart_tmLanguage = {name:"dart",version:"1.2.2",fileTypes:["dart"],scopeName:"source.dart",foldingStartMarker:"\\{\\s*$",foldingStopMarker:"^\\s*\\}",patterns:[{name:"meta.preprocessor.script.dart",match:"^(#!.*)$"},{name:"meta.declaration.dart",begin:"^\\w*\\b(library|import|part of|part|export)\\b",beginCaptures:{"0":{name:"keyword.other.import.dart"}},end:";",endCaptures:{"0":{name:"punctuation.terminator.dart"}},patterns:[{include:"#strings"},{include:"#comments"},{name:"keyword.other.import.dart",match:"\\b(as|show|hide)\\b"},{name:"keyword.control.dart",match:"\\b(if)\\b"}]},{include:"#comments"},{include:"#punctuation"},{include:"#annotations"},{include:"#keywords"},{include:"#constants-and-special-vars"},{include:"#operators"},{include:"#strings"}],repository:{dartdoc:{patterns:[{match:"(\\[.*?\\])",captures:{"0":{name:"variable.name.source.dart"}}},{match:"^ {4,}(?![ \\*]).*",captures:{"0":{name:"variable.name.source.dart"}}},{contentName:"variable.other.source.dart",begin:"```.*?$",end:"```"},{match:"(`.*?`)",captures:{"0":{name:"variable.other.source.dart"}}},{match:"(`.*?`)",captures:{"0":{name:"variable.other.source.dart"}}},{match:"(\\* (( ).*))$",captures:{"2":{name:"variable.other.source.dart"}}}]},comments:{patterns:[{name:"comment.block.empty.dart",match:"/\\*\\*/",captures:{"0":{name:"punctuation.definition.comment.dart"}}},{include:"#comments-doc-oldschool"},{include:"#comments-doc"},{include:"#comments-inline"}]},"comments-doc-oldschool":{patterns:[{name:"comment.block.documentation.dart",begin:"/\\*\\*",end:"\\*/",patterns:[{include:"#comments-doc-oldschool"},{include:"#comments-block"},{include:"#dartdoc"}]}]},"comments-doc":{patterns:[{name:"comment.block.documentation.dart",begin:"///","while":"^\\s*///",patterns:[{include:"#dartdoc"}]}]},"comments-inline":{patterns:[{include:"#comments-block"},{match:"((//).*)$",captures:{"1":{name:"comment.line.double-slash.dart"}}}]},"comments-block":{patterns:[{name:"comment.block.dart",begin:"/\\*",end:"\\*/",patterns:[{include:"#comments-block"}]}]},annotations:{patterns:[{name:"storage.type.annotation.dart",match:"@[a-zA-Z]+"}]},"constants-and-special-vars":{patterns:[{name:"constant.language.dart",match:"(??]|,\\s*|\\s+extends\\s+)+>)?[!?]?\\(",captures:{"1":{name:"entity.name.function.dart"},"2":{patterns:[{include:"#type-args"}]}}}]},"type-args":{begin:"(<)",end:"(>)",beginCaptures:{"1":{name:"other.source.dart"}},endCaptures:{"1":{name:"other.source.dart"}},patterns:[{include:"#class-identifier"},{match:","},{name:"keyword.declaration.dart",match:"extends"},{include:"#comments"}]},keywords:{patterns:[{name:"keyword.cast.dart",match:"(?>>?|~|\\^|\\||&)"},{name:"keyword.operator.assignment.bitwise.dart",match:"((&|\\^|\\||<<|>>>?)=)"},{name:"keyword.operator.closure.dart",match:"(=>)"},{name:"keyword.operator.comparison.dart",match:"(==|!=|<=?|>=?)"},{name:"keyword.operator.assignment.arithmetic.dart",match:"(([+*/%-]|\\~)=)"},{name:"keyword.operator.assignment.dart",match:"(=)"},{name:"keyword.operator.increment-decrement.dart",match:"(\\-\\-|\\+\\+)"},{name:"keyword.operator.arithmetic.dart",match:"(\\-|\\+|\\*|\\/|\\~\\/|%)"},{name:"keyword.operator.logical.dart",match:"(!|&&|\\|\\|)"}]},"string-interp":{patterns:[{match:"\\$([a-zA-Z0-9_]+)",captures:{"1":{name:"variable.parameter.dart"}}},{name:"string.interpolated.expression.dart",begin:"\\$\\{",end:"\\}",patterns:[{include:"#constants-and-special-vars",name:"variable.parameter.dart"},{include:"#strings"},{name:"variable.parameter.dart",match:"[a-zA-Z0-9_]+"}]},{name:"constant.character.escape.dart",match:"\\\\."}]},strings:{patterns:[{name:"string.interpolated.triple.double.dart",begin:"(? | < | >= | <= | =(?!==)\n"},{name:"keyword.operator.logical.dax",match:"(?x)\n && | IN | NOT | \\|\\|"},{name:"keyword.arithmetic.operator.dax",match:"(?x)\n \\+ | \\- | \\* | \\/ \n"},{begin:"\\[",end:"\\]",name:"support.function.dax"},{begin:"\"",end:"\"",name:"string.quoted.double.dax"},{begin:"\\'",end:"\\'",name:"support.class.dax"}]},strings:{name:"string.quoted.double.dax",begin:"\"",end:"\"",patterns:[{name:"constant.character.escape.dax",match:"\\\\."}]},metas:{patterns:[{begin:"\\(",beginCaptures:{"0":{name:"meta.brace.round.dax"}},end:"\\)",endCaptures:{"0":{name:"meta.brace.round.dax"}}}]}},scopeName:"source.dax"}; + +export { dax_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/diff.tmLanguage-a69d9982.mjs b/docs/shiki/dist/languages/diff.tmLanguage-a69d9982.mjs new file mode 100644 index 00000000..ae252b53 --- /dev/null +++ b/docs/shiki/dist/languages/diff.tmLanguage-a69d9982.mjs @@ -0,0 +1,3 @@ +var diff_tmLanguage = {information_for_contributors:["This file has been converted from https://github.com/textmate/diff.tmbundle/blob/master/Syntaxes/Diff.plist","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."],version:"https://github.com/textmate/diff.tmbundle/commit/0593bb775eab1824af97ef2172fd38822abd97d7",name:"diff",scopeName:"source.diff",patterns:[{captures:{"1":{name:"punctuation.definition.separator.diff"}},match:"^((\\*{15})|(={67})|(-{3}))$\\n?",name:"meta.separator.diff"},{match:"^\\d+(,\\d+)*(a|d|c)\\d+(,\\d+)*$\\n?",name:"meta.diff.range.normal"},{captures:{"1":{name:"punctuation.definition.range.diff"},"2":{name:"meta.toc-list.line-number.diff"},"3":{name:"punctuation.definition.range.diff"}},match:"^(@@)\\s*(.+?)\\s*(@@)($\\n?)?",name:"meta.diff.range.unified"},{captures:{"3":{name:"punctuation.definition.range.diff"},"4":{name:"punctuation.definition.range.diff"},"6":{name:"punctuation.definition.range.diff"},"7":{name:"punctuation.definition.range.diff"}},match:"^(((\\-{3}) .+ (\\-{4}))|((\\*{3}) .+ (\\*{4})))$\\n?",name:"meta.diff.range.context"},{match:"^diff --git a/.*$\\n?",name:"meta.diff.header.git"},{match:"^diff (-|\\S+\\s+\\S+).*$\\n?",name:"meta.diff.header.command"},{captures:{"4":{name:"punctuation.definition.from-file.diff"},"6":{name:"punctuation.definition.from-file.diff"},"7":{name:"punctuation.definition.from-file.diff"}},match:"(^(((-{3}) .+)|((\\*{3}) .+))$\\n?|^(={4}) .+(?= - ))",name:"meta.diff.header.from-file"},{captures:{"2":{name:"punctuation.definition.to-file.diff"},"3":{name:"punctuation.definition.to-file.diff"},"4":{name:"punctuation.definition.to-file.diff"}},match:"(^(\\+{3}) .+$\\n?| (-) .* (={4})$\\n?)",name:"meta.diff.header.to-file"},{captures:{"3":{name:"punctuation.definition.inserted.diff"},"6":{name:"punctuation.definition.inserted.diff"}},match:"^(((>)( .*)?)|((\\+).*))$\\n?",name:"markup.inserted.diff"},{captures:{"1":{name:"punctuation.definition.changed.diff"}},match:"^(!).*$\\n?",name:"markup.changed.diff"},{captures:{"3":{name:"punctuation.definition.deleted.diff"},"6":{name:"punctuation.definition.deleted.diff"}},match:"^(((<)( .*)?)|((-).*))$\\n?",name:"markup.deleted.diff"},{begin:"^(#)",captures:{"1":{name:"punctuation.definition.comment.diff"}},comment:"Git produces unified diffs with embedded comments\"",end:"\\n",name:"comment.line.number-sign.diff"},{match:"^index [0-9a-f]{7,40}\\.\\.[0-9a-f]{7,40}.*$\\n?",name:"meta.diff.index.git"},{captures:{"1":{name:"punctuation.separator.key-value.diff"},"2":{name:"meta.toc-list.file-name.diff"}},match:"^Index(:) (.+)$\\n?",name:"meta.diff.index"},{match:"^Only in .*: .*$\\n?",name:"meta.diff.only-in"}]}; + +export { diff_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/docker.tmLanguage-4487995b.mjs b/docs/shiki/dist/languages/docker.tmLanguage-4487995b.mjs new file mode 100644 index 00000000..86b38daa --- /dev/null +++ b/docs/shiki/dist/languages/docker.tmLanguage-4487995b.mjs @@ -0,0 +1,3 @@ +var docker_tmLanguage = {information_for_contributors:["This file has been converted from https://github.com/moby/moby/blob/master/contrib/syntax/textmate/Docker.tmbundle/Syntaxes/Dockerfile.tmLanguage","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."],version:"https://github.com/moby/moby/commit/abd39744c6f3ed854500e423f5fabf952165161f",name:"docker",scopeName:"source.dockerfile",patterns:[{captures:{"1":{name:"keyword.other.special-method.dockerfile"},"2":{name:"keyword.other.special-method.dockerfile"}},match:"^\\s*\\b(?i:(FROM))\\b.*?\\b(?i:(AS))\\b"},{captures:{"1":{name:"keyword.control.dockerfile"},"2":{name:"keyword.other.special-method.dockerfile"}},match:"^\\s*(?i:(ONBUILD)\\s+)?(?i:(ADD|ARG|CMD|COPY|ENTRYPOINT|ENV|EXPOSE|FROM|HEALTHCHECK|LABEL|MAINTAINER|RUN|SHELL|STOPSIGNAL|USER|VOLUME|WORKDIR))\\s"},{captures:{"1":{name:"keyword.operator.dockerfile"},"2":{name:"keyword.other.special-method.dockerfile"}},match:"^\\s*(?i:(ONBUILD)\\s+)?(?i:(CMD|ENTRYPOINT))\\s"},{begin:"\"",beginCaptures:{"1":{name:"punctuation.definition.string.begin.dockerfile"}},end:"\"",endCaptures:{"1":{name:"punctuation.definition.string.end.dockerfile"}},name:"string.quoted.double.dockerfile",patterns:[{match:"\\\\.",name:"constant.character.escaped.dockerfile"}]},{begin:"'",beginCaptures:{"1":{name:"punctuation.definition.string.begin.dockerfile"}},end:"'",endCaptures:{"1":{name:"punctuation.definition.string.end.dockerfile"}},name:"string.quoted.single.dockerfile",patterns:[{match:"\\\\.",name:"constant.character.escaped.dockerfile"}]},{captures:{"1":{name:"punctuation.whitespace.comment.leading.dockerfile"},"2":{name:"comment.line.number-sign.dockerfile"},"3":{name:"punctuation.definition.comment.dockerfile"}},comment:"comment.line",match:"^(\\s*)((#).*$\\n?)"}]}; + +export { docker_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/dream-maker.tmLanguage-ab035a00.mjs b/docs/shiki/dist/languages/dream-maker.tmLanguage-ab035a00.mjs new file mode 100644 index 00000000..8cecb5d3 --- /dev/null +++ b/docs/shiki/dist/languages/dream-maker.tmLanguage-ab035a00.mjs @@ -0,0 +1,3 @@ +var dreamMaker_tmLanguage = {fileTypes:["dm","dme"],foldingStartMarker:"(?x)\n/\\*\\*(?!\\*)\n|^(?![^{]*?//|[^{]*?/\\*(?!.*?\\*/.*?\\{)).*?\\{\\s*($|//|/\\*(?!.*?\\*/.*\\S))",foldingStopMarker:"(?|<)(=)?|\\.|:|/(=)?|~|\\+(\\+|=)?|-(-|=)?|\\*(\\*|=)?|%|>>|<<|=(=)?|!(=)?|<>|&|&&|\\^|\\||\\|\\||\\bto\\b|\\bin\\b|\\bstep\\b)",name:"keyword.operator.dm"},{match:"\\b([A-Z_][A-Z_0-9]*)\\b",name:"constant.language.dm"},{match:"\\bnull\\b",name:"constant.language.dm"},{begin:"{\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.dm"}},end:"\"}",endCaptures:{"0":{name:"punctuation.definition.string.end.dm"}},name:"string.quoted.triple.dm",patterns:[{include:"#string_escaped_char"},{include:"#string_embedded_expression"}]},{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.dm"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.dm"}},name:"string.quoted.double.dm",patterns:[{include:"#string_escaped_char"},{include:"#string_embedded_expression"}]},{begin:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.dm"}},end:"'",endCaptures:{"0":{name:"punctuation.definition.string.end.dm"}},name:"string.quoted.single.dm",patterns:[{include:"#string_escaped_char"}]},{begin:"(?x)\n^\\s* ((\\#)\\s*define) \\s+ # define\n((?[a-zA-Z_][a-zA-Z0-9_]*)) # macro name\n(?:\n\t(\\()\n\t\t(\n\t\t\t\\s* \\g \\s* # first argument\n\t\t\t((,) \\s* \\g \\s*)* # additional arguments\n\t\t\t(?:\\.\\.\\.)? # varargs ellipsis?\n\t\t)\n\t(\\))\n)",beginCaptures:{"1":{name:"keyword.control.directive.define.dm"},"2":{name:"punctuation.definition.directive.dm"},"3":{name:"entity.name.function.preprocessor.dm"},"5":{name:"punctuation.definition.parameters.begin.dm"},"6":{name:"variable.parameter.preprocessor.dm"},"8":{name:"punctuation.separator.parameters.dm"},"9":{name:"punctuation.definition.parameters.end.dm"}},end:"(?=(?://|/\\*))|(?[a-zA-Z_][a-zA-Z0-9_]*)) # macro name",beginCaptures:{"1":{name:"keyword.control.directive.define.dm"},"2":{name:"punctuation.definition.directive.dm"},"3":{name:"variable.other.preprocessor.dm"}},end:"(?=(?://|/\\*))|(?\\\\\\s*\\n)",name:"punctuation.separator.continuation.dm"}]},{begin:"^\\s*(?:((#)\\s*(?:elif|else|if|ifdef|ifndef))|((#)\\s*(undef|include)))\\b",beginCaptures:{"1":{name:"keyword.control.directive.conditional.dm"},"2":{name:"punctuation.definition.directive.dm"},"3":{name:"keyword.control.directive.$5.dm"},"4":{name:"punctuation.definition.directive.dm"}},end:"(?=(?://|/\\*))|(?\\\\\\s*\\n)",name:"punctuation.separator.continuation.dm"}]},{include:"#block"},{begin:"(?x)\n\t\t\t\t(?: ^ # begin-of-line\n\t\t\t\t\t|\n\t\t\t\t\t\t (?: (?= \\s ) (?]) # or type modifier before name\n\t\t\t\t\t\t )\n\t\t\t\t)\n\t\t\t\t(\\s*) (?!(while|for|do|if|else|switch|catch|enumerate|return|r?iterate)\\s*\\()\n\t\t\t\t(\n\t\t\t\t\t(?: [A-Za-z_][A-Za-z0-9_]*+ | :: )++ | # actual name\n\t\t\t\t\t(?: (?<=operator) (?: [-*&<>=+!]+ | \\(\\) | \\[\\] ) ) # if it is a C++ operator\n\t\t\t\t)\n\t\t\t\t \\s*(?=\\()",beginCaptures:{"1":{name:"punctuation.whitespace.function.leading.dm"},"3":{name:"entity.name.function.dm"},"4":{name:"punctuation.definition.parameters.dm"}},end:"(?<=\\})|(?=#)|(;)?",name:"meta.function.dm",patterns:[{include:"#comments"},{include:"#parens"},{match:"\\bconst\\b",name:"storage.modifier.dm"},{include:"#block"}]}],repository:{access:{match:"\\.[a-zA-Z_][a-zA-Z_0-9]*\\b(?!\\s*\\()",name:"variable.other.dot-access.dm"},block:{begin:"\\{",end:"\\}",name:"meta.block.dm",patterns:[{include:"#block_innards"}]},block_innards:{patterns:[{include:"#preprocessor-rule-enabled-block"},{include:"#preprocessor-rule-disabled-block"},{include:"#preprocessor-rule-other-block"},{include:"#access"},{captures:{"1":{name:"punctuation.whitespace.function-call.leading.dm"},"2":{name:"support.function.any-method.dm"},"3":{name:"punctuation.definition.parameters.dm"}},match:"(?x) (?: (?= \\s ) (?:(?<=else|new|return) | (?\\\\\\s*\\n)",name:"punctuation.separator.continuation.dm"}]}]},disabled:{begin:"^\\s*#\\s*if(n?def)?\\b.*$",comment:"eat nested preprocessor if(def)s",end:"^\\s*#\\s*endif\\b.*$",patterns:[{include:"#disabled"}]},parens:{begin:"\\(",end:"\\)",name:"meta.parens.dm",patterns:[{include:"$base"}]},"preprocessor-rule-disabled":{begin:"^\\s*(#(if)\\s+(0)\\b).*",captures:{"1":{name:"meta.preprocessor.dm"},"2":{name:"keyword.control.import.if.dm"},"3":{name:"constant.numeric.preprocessor.dm"}},end:"^\\s*(#\\s*(endif)\\b)",patterns:[{begin:"^\\s*(#\\s*(else)\\b)",captures:{"1":{name:"meta.preprocessor.dm"},"2":{name:"keyword.control.import.else.dm"}},end:"(?=^\\s*#\\s*endif\\b.*$)",patterns:[{include:"$base"}]},{begin:"",end:"(?=^\\s*#\\s*(else|endif)\\b.*$)",name:"comment.block.preprocessor.if-branch",patterns:[{include:"#disabled"}]}]},"preprocessor-rule-disabled-block":{begin:"^\\s*(#(if)\\s+(0)\\b).*",captures:{"1":{name:"meta.preprocessor.dm"},"2":{name:"keyword.control.import.if.dm"},"3":{name:"constant.numeric.preprocessor.dm"}},end:"^\\s*(#\\s*(endif)\\b)",patterns:[{begin:"^\\s*(#\\s*(else)\\b)",captures:{"1":{name:"meta.preprocessor.dm"},"2":{name:"keyword.control.import.else.dm"}},end:"(?=^\\s*#\\s*endif\\b.*$)",patterns:[{include:"#block_innards"}]},{begin:"",end:"(?=^\\s*#\\s*(else|endif)\\b.*$)",name:"comment.block.preprocessor.if-branch.in-block",patterns:[{include:"#disabled"}]}]},"preprocessor-rule-enabled":{begin:"^\\s*(#(if)\\s+(0*1)\\b)",captures:{"1":{name:"meta.preprocessor.dm"},"2":{name:"keyword.control.import.if.dm"},"3":{name:"constant.numeric.preprocessor.dm"}},end:"^\\s*(#\\s*(endif)\\b)",patterns:[{begin:"^\\s*(#\\s*(else)\\b).*",captures:{"1":{name:"meta.preprocessor.dm"},"2":{name:"keyword.control.import.else.dm"}},contentName:"comment.block.preprocessor.else-branch",end:"(?=^\\s*#\\s*endif\\b.*$)",patterns:[{include:"#disabled"}]},{begin:"",end:"(?=^\\s*#\\s*(else|endif)\\b.*$)",patterns:[{include:"$base"}]}]},"preprocessor-rule-enabled-block":{begin:"^\\s*(#(if)\\s+(0*1)\\b)",captures:{"1":{name:"meta.preprocessor.dm"},"2":{name:"keyword.control.import.if.dm"},"3":{name:"constant.numeric.preprocessor.dm"}},end:"^\\s*(#\\s*(endif)\\b)",patterns:[{begin:"^\\s*(#\\s*(else)\\b).*",captures:{"1":{name:"meta.preprocessor.dm"},"2":{name:"keyword.control.import.else.dm"}},contentName:"comment.block.preprocessor.else-branch.in-block",end:"(?=^\\s*#\\s*endif\\b.*$)",patterns:[{include:"#disabled"}]},{begin:"",end:"(?=^\\s*#\\s*(else|endif)\\b.*$)",patterns:[{include:"#block_innards"}]}]},"preprocessor-rule-other":{begin:"^\\s*((#\\s*(if(n?def)?))\\b.*?(?:(?=(?://|/\\*))|$))",captures:{"1":{name:"meta.preprocessor.dm"},"2":{name:"keyword.control.import.dm"}},end:"^\\s*((#\\s*(endif))\\b).*$",patterns:[{include:"$base"}]},"preprocessor-rule-other-block":{begin:"^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))",captures:{"1":{name:"meta.preprocessor.dm"},"2":{name:"keyword.control.import.dm"}},end:"^\\s*(#\\s*(endif)\\b).*$",patterns:[{include:"#block_innards"}]},string_embedded_expression:{patterns:[{begin:"(?\"n\\n \\[]\n)",name:"constant.character.escape.dm"},{match:"\\\\.",name:"invalid.illegal.unknown-escape.dm"}]}},scopeName:"source.dm"}; + +export { dreamMaker_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/elixir.tmLanguage-564a40b9.mjs b/docs/shiki/dist/languages/elixir.tmLanguage-564a40b9.mjs new file mode 100644 index 00000000..12bcb449 --- /dev/null +++ b/docs/shiki/dist/languages/elixir.tmLanguage-564a40b9.mjs @@ -0,0 +1,3 @@ +var elixir_tmLanguage = {comment:"Textmate bundle for Elixir Programming Language.",fileTypes:["ex","exs"],firstLineMatch:"^#!/.*\\belixir",foldingStartMarker:"(after|else|catch|rescue|\\-\\>|\\{|\\[|do)\\s*$",foldingStopMarker:"^\\s*((\\}|\\]|after|else|catch|rescue)\\s*$|end\\b)",keyEquivalent:"^~E",name:"elixir",patterns:[{begin:"\\b(fn)\\b(?!.*->)",beginCaptures:{"1":{name:"keyword.control.elixir"}},end:"$",patterns:[{include:"#core_syntax"}]},{captures:{"1":{name:"entity.name.type.class.elixir"},"2":{name:"punctuation.separator.method.elixir"},"3":{name:"entity.name.function.elixir"}},match:"([A-Z]\\w+)\\s*(\\.)\\s*([a-z_]\\w*[!?]?)"},{captures:{"1":{name:"constant.other.symbol.elixir"},"2":{name:"punctuation.separator.method.elixir"},"3":{name:"entity.name.function.elixir"}},match:"(\\:\\w+)\\s*(\\.)\\s*([_]?\\w*[!?]?)"},{captures:{"1":{name:"keyword.operator.other.elixir"},"2":{name:"entity.name.function.elixir"}},match:"(\\|\\>)\\s*([a-z_]\\w*[!?]?)"},{match:"\\b[a-z_]\\w*[!?]?(?=\\s*\\.?\\s*\\()",name:"entity.name.function.elixir"},{begin:"\\b(fn)\\b(?=.*->)",beginCaptures:{"1":{name:"keyword.control.elixir"}},end:"(?>(->)|(when)|(\\)))",endCaptures:{"1":{name:"keyword.operator.other.elixir"},"2":{name:"keyword.control.elixir"},"3":{name:"punctuation.section.function.elixir"}},patterns:[{include:"#core_syntax"}]},{include:"#core_syntax"},{begin:"^(?=.*->)((?![^\"']*(\"|')[^\"']*->)|(?=.*->[^\"']*(\"|')[^\"']*->))((?!.*\\([^\\)]*->)|(?=[^\\(\\)]*->)|(?=\\s*\\(.*\\).*->))((?!.*\\b(fn)\\b)|(?=.*->.*\\bfn\\b))",beginCaptures:{"1":{name:"keyword.control.elixir"}},end:"(?>(->)|(when)|(\\)))",endCaptures:{"1":{name:"keyword.operator.other.elixir"},"2":{name:"keyword.control.elixir"},"3":{name:"punctuation.section.function.elixir"}},patterns:[{include:"#core_syntax"}]}],repository:{core_syntax:{patterns:[{begin:"^\\s*(defmodule)\\b",beginCaptures:{"1":{name:"keyword.control.module.elixir"}},end:"\\b(do)\\b",endCaptures:{"1":{name:"keyword.control.module.elixir"}},name:"meta.module.elixir",patterns:[{match:"\\b[A-Z]\\w*(?=\\.)",name:"entity.other.inherited-class.elixir"},{match:"\\b[A-Z]\\w*\\b",name:"entity.name.type.class.elixir"}]},{begin:"^\\s*(defprotocol)\\b",beginCaptures:{"1":{name:"keyword.control.protocol.elixir"}},end:"\\b(do)\\b",endCaptures:{"1":{name:"keyword.control.protocol.elixir"}},name:"meta.protocol_declaration.elixir",patterns:[{match:"\\b[A-Z]\\w*\\b",name:"entity.name.type.protocol.elixir"}]},{begin:"^\\s*(defimpl)\\b",beginCaptures:{"1":{name:"keyword.control.protocol.elixir"}},end:"\\b(do)\\b",endCaptures:{"1":{name:"keyword.control.protocol.elixir"}},name:"meta.protocol_implementation.elixir",patterns:[{match:"\\b[A-Z]\\w*\\b",name:"entity.name.type.protocol.elixir"}]},{begin:"^\\s*(def|defmacro|defdelegate|defguard)\\s+((?>[a-zA-Z_]\\w*(?>\\.|::))?(?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))?|===?|>[>=]?|<=>|<[<=]?|[%&`/\\|]|\\*\\*?|=?~|[-+]@?|\\[\\]=?))((\\()|\\s*)",beginCaptures:{"1":{name:"keyword.control.module.elixir"},"2":{name:"entity.name.function.public.elixir"},"4":{name:"punctuation.section.function.elixir"}},end:"(\\bdo:)|(\\bdo\\b)|(?=\\s+(def|defn|defmacro|defdelegate|defguard)\\b)",endCaptures:{"1":{name:"constant.other.keywords.elixir"},"2":{name:"keyword.control.module.elixir"}},name:"meta.function.public.elixir",patterns:[{include:"$self"},{begin:"\\s(\\\\\\\\)",beginCaptures:{"1":{name:"keyword.operator.other.elixir"}},end:",|\\)|$",patterns:[{include:"$self"}]},{match:"\\b(is_atom|is_binary|is_bitstring|is_boolean|is_float|is_function|is_integer|is_list|is_map|is_nil|is_number|is_pid|is_port|is_record|is_reference|is_tuple|is_exception|abs|bit_size|byte_size|div|elem|hd|length|map_size|node|rem|round|tl|trunc|tuple_size)\\b",name:"keyword.control.elixir"}]},{begin:"^\\s*(defp|defnp|defmacrop|defguardp)\\s+((?>[a-zA-Z_]\\w*(?>\\.|::))?(?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))?|===?|>[>=]?|<=>|<[<=]?|[%&`/\\|]|\\*\\*?|=?~|[-+]@?|\\[\\]=?))((\\()|\\s*)",beginCaptures:{"1":{name:"keyword.control.module.elixir"},"2":{name:"entity.name.function.private.elixir"},"4":{name:"punctuation.section.function.elixir"}},end:"(\\bdo:)|(\\bdo\\b)|(?=\\s+(defp|defmacrop|defguardp)\\b)",endCaptures:{"1":{name:"constant.other.keywords.elixir"},"2":{name:"keyword.control.module.elixir"}},name:"meta.function.private.elixir",patterns:[{include:"$self"},{begin:"\\s(\\\\\\\\)",beginCaptures:{"1":{name:"keyword.operator.other.elixir"}},end:",|\\)|$",patterns:[{include:"$self"}]},{match:"\\b(is_atom|is_binary|is_bitstring|is_boolean|is_float|is_function|is_integer|is_list|is_map|is_nil|is_number|is_pid|is_port|is_record|is_reference|is_tuple|is_exception|abs|bit_size|byte_size|div|elem|hd|length|map_size|node|rem|round|tl|trunc|tuple_size)\\b",name:"keyword.control.elixir"}]},{begin:"\\s*~L\"\"\"",comment:"Leex Sigil",end:"\\s*\"\"\"",name:"sigil.leex",patterns:[{include:"text.elixir"},{include:"text.html.basic"}]},{begin:"\\s*~H\"\"\"",comment:"HEEx Sigil",end:"\\s*\"\"\"",name:"sigil.heex",patterns:[{include:"text.elixir"},{include:"text.html.basic"}]},{begin:"@(module|type)?doc (~[a-z])?\"\"\"",comment:"@doc with heredocs is treated as documentation",end:"\\s*\"\"\"",name:"comment.block.documentation.heredoc",patterns:[{include:"#interpolated_elixir"},{include:"#escaped_char"}]},{begin:"@(module|type)?doc ~[A-Z]\"\"\"",comment:"@doc with heredocs is treated as documentation",end:"\\s*\"\"\"",name:"comment.block.documentation.heredoc"},{begin:"@(module|type)?doc (~[a-z])?'''",comment:"@doc with heredocs is treated as documentation",end:"\\s*'''",name:"comment.block.documentation.heredoc",patterns:[{include:"#interpolated_elixir"},{include:"#escaped_char"}]},{begin:"@(module|type)?doc ~[A-Z]'''",comment:"@doc with heredocs is treated as documentation",end:"\\s*'''",name:"comment.block.documentation.heredoc"},{comment:"@doc false is treated as documentation",match:"@(module|type)?doc false",name:"comment.block.documentation.false"},{begin:"@(module|type)?doc \"",comment:"@doc with string is treated as documentation",end:"\"",name:"comment.block.documentation.string",patterns:[{include:"#interpolated_elixir"},{include:"#escaped_char"}]},{match:"(?_?[0-9A-Fa-f])*\\b",name:"constant.numeric.hex.elixir"},{match:"\\b\\d(?>_?\\d)*(\\.(?![^[:space:][:digit:]])(?>_?\\d)+)([eE][-+]?\\d(?>_?\\d)*)?\\b",name:"constant.numeric.float.elixir"},{match:"\\b\\d(?>_?\\d)*\\b",name:"constant.numeric.integer.elixir"},{match:"\\b0b[01](?>_?[01])*\\b",name:"constant.numeric.binary.elixir"},{match:"\\b0o[0-7](?>_?[0-7])*\\b",name:"constant.numeric.octal.elixir"},{begin:":'",captures:{"0":{name:"punctuation.definition.constant.elixir"}},end:"'",name:"constant.other.symbol.single-quoted.elixir",patterns:[{include:"#interpolated_elixir"},{include:"#escaped_char"}]},{begin:":\"",captures:{"0":{name:"punctuation.definition.constant.elixir"}},end:"\"",name:"constant.other.symbol.double-quoted.elixir",patterns:[{include:"#interpolated_elixir"},{include:"#escaped_char"}]},{begin:"(?>''')",beginCaptures:{"0":{name:"punctuation.definition.string.begin.elixir"}},comment:"Single-quoted heredocs",end:"^\\s*'''",endCaptures:{"0":{name:"punctuation.definition.string.end.elixir"}},name:"string.quoted.single.heredoc.elixir",patterns:[{include:"#interpolated_elixir"},{include:"#escaped_char"}]},{begin:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.elixir"}},comment:"single quoted string (allows for interpolation)",end:"'",endCaptures:{"0":{name:"punctuation.definition.string.end.elixir"}},name:"string.quoted.single.elixir",patterns:[{include:"#interpolated_elixir"},{include:"#escaped_char"}]},{begin:"(?>\"\"\")",beginCaptures:{"0":{name:"punctuation.definition.string.begin.elixir"}},comment:"Double-quoted heredocs",end:"^\\s*\"\"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.elixir"}},name:"string.quoted.double.heredoc.elixir",patterns:[{include:"#interpolated_elixir"},{include:"#escaped_char"}]},{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.elixir"}},comment:"double quoted string (allows for interpolation)",end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.elixir"}},name:"string.quoted.double.elixir",patterns:[{include:"#interpolated_elixir"},{include:"#escaped_char"}]},{begin:"~[a-z](?>\"\"\")",beginCaptures:{"0":{name:"punctuation.definition.string.begin.elixir"}},comment:"Double-quoted heredocs sigils",end:"^\\s*\"\"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.elixir"}},name:"string.quoted.other.sigil.heredoc.elixir",patterns:[{include:"#interpolated_elixir"},{include:"#escaped_char"}]},{begin:"~[a-z]\\{",beginCaptures:{"0":{name:"punctuation.definition.string.begin.elixir"}},comment:"sigil (allow for interpolation)",end:"\\}[a-z]*",endCaptures:{"0":{name:"punctuation.definition.string.end.elixir"}},name:"string.quoted.other.sigil.elixir",patterns:[{include:"#interpolated_elixir"},{include:"#escaped_char"}]},{begin:"~[a-z]\\[",beginCaptures:{"0":{name:"punctuation.definition.string.begin.elixir"}},comment:"sigil (allow for interpolation)",end:"\\][a-z]*",endCaptures:{"0":{name:"punctuation.definition.string.end.elixir"}},name:"string.quoted.other.sigil.elixir",patterns:[{include:"#interpolated_elixir"},{include:"#escaped_char"}]},{begin:"~[a-z]\\<",beginCaptures:{"0":{name:"punctuation.definition.string.begin.elixir"}},comment:"sigil (allow for interpolation)",end:"\\>[a-z]*",endCaptures:{"0":{name:"punctuation.definition.string.end.elixir"}},name:"string.quoted.other.sigil.elixir",patterns:[{include:"#interpolated_elixir"},{include:"#escaped_char"}]},{begin:"~[a-z]\\(",beginCaptures:{"0":{name:"punctuation.definition.string.begin.elixir"}},comment:"sigil (allow for interpolation)",end:"\\)[a-z]*",endCaptures:{"0":{name:"punctuation.definition.string.end.elixir"}},name:"string.quoted.other.sigil.elixir",patterns:[{include:"#interpolated_elixir"},{include:"#escaped_char"}]},{begin:"~[a-z]([^\\w])",beginCaptures:{"0":{name:"punctuation.definition.string.begin.elixir"}},comment:"sigil (allow for interpolation)",end:"\\1[a-z]*",endCaptures:{"0":{name:"punctuation.definition.string.end.elixir"}},name:"string.quoted.other.sigil.elixir",patterns:[{include:"#interpolated_elixir"},{include:"#escaped_char"}]},{begin:"~[A-Z](?>\"\"\")",beginCaptures:{"0":{name:"punctuation.definition.string.begin.elixir"}},comment:"Double-quoted heredocs sigils",end:"^\\s*\"\"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.elixir"}},name:"string.quoted.other.sigil.heredoc.literal.elixir"},{begin:"~[A-Z]\\{",beginCaptures:{"0":{name:"punctuation.definition.string.begin.elixir"}},comment:"sigil (without interpolation)",end:"\\}[a-z]*",endCaptures:{"0":{name:"punctuation.definition.string.end.elixir"}},name:"string.quoted.other.sigil.literal.elixir"},{begin:"~[A-Z]\\[",beginCaptures:{"0":{name:"punctuation.definition.string.begin.elixir"}},comment:"sigil (without interpolation)",end:"\\][a-z]*",endCaptures:{"0":{name:"punctuation.definition.string.end.elixir"}},name:"string.quoted.other.sigil.literal.elixir"},{begin:"~[A-Z]\\<",beginCaptures:{"0":{name:"punctuation.definition.string.begin.elixir"}},comment:"sigil (without interpolation)",end:"\\>[a-z]*",endCaptures:{"0":{name:"punctuation.definition.string.end.elixir"}},name:"string.quoted.other.sigil.literal.elixir"},{begin:"~[A-Z]\\(",beginCaptures:{"0":{name:"punctuation.definition.string.begin.elixir"}},comment:"sigil (without interpolation)",end:"\\)[a-z]*",endCaptures:{"0":{name:"punctuation.definition.string.end.elixir"}},name:"string.quoted.other.sigil.literal.elixir"},{begin:"~[A-Z]([^\\w])",beginCaptures:{"0":{name:"punctuation.definition.string.begin.elixir"}},comment:"sigil (without interpolation)",end:"\\1[a-z]*",endCaptures:{"0":{name:"punctuation.definition.string.end.elixir"}},name:"string.quoted.other.sigil.literal.elixir"},{captures:{"1":{name:"punctuation.definition.constant.elixir"}},comment:"symbols",match:"(?[a-zA-Z_][\\w@]*(?>[?!]|=(?![>=]))?|\\<\\>|===?|!==?|<<>>|<<<|>>>|~~~|::|<\\-|\\|>|=>|=~|=|/|\\\\\\\\|\\*\\*?|\\.\\.?\\.?|\\.\\.//|>=?|<=?|&&?&?|\\+\\+?|\\-\\-?|\\|\\|?\\|?|\\!|@|\\%?\\{\\}|%|\\[\\]|\\^(\\^\\^)?)",name:"constant.other.symbol.elixir"},{captures:{"1":{name:"punctuation.definition.constant.elixir"}},comment:"symbols",match:"(?>[a-zA-Z_][\\w@]*(?>[?!])?)(:)(?!:)",name:"constant.other.keywords.elixir"},{begin:"(^[ \\t]+)?(?=##)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.elixir"}},end:"(?!#)",patterns:[{begin:"##",beginCaptures:{"0":{name:"punctuation.definition.comment.elixir"}},end:"\\n",name:"comment.line.section.elixir"}]},{begin:"(^[ \\t]+)?(?=#)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.elixir"}},end:"(?!#)",patterns:[{begin:"#",beginCaptures:{"0":{name:"punctuation.definition.comment.elixir"}},end:"\\n",name:"comment.line.number-sign.elixir"}]},{match:"\\b_([^_][\\w]+[?!]?)",name:"comment.unused.elixir"},{match:"\\b_\\b",name:"comment.wildcard.elixir"},{comment:"\n\t\t\tmatches questionmark-letters.\n\n\t\t\texamples (1st alternation = hex):\n\t\t\t?\\x1 ?\\x61\n\n\t\t\texamples (2rd alternation = escaped):\n\t\t\t?\\n ?\\b\n\n\t\t\texamples (3rd alternation = normal):\n\t\t\t?a ?A ?0\n\t\t\t?* ?\" ?(\n\t\t\t?. ?#\n\n\t\t\tthe negative lookbehind prevents against matching\n\t\t\tp(42.tainted?)\n\t\t\t",match:"(?",name:"keyword.operator.concatenation.elixir"},{match:"\\|\\>|<~>|<>|<<<|>>>|~>>|<<~|~>|<~|<\\|>",name:"keyword.operator.sigils_1.elixir"},{match:"&&&|&&",name:"keyword.operator.sigils_2.elixir"},{match:"<\\-|\\\\\\\\",name:"keyword.operator.sigils_3.elixir"},{match:"===?|!==?|<=?|>=?",name:"keyword.operator.comparison.elixir"},{match:"(\\|\\|\\||&&&|\\^\\^\\^|<<<|>>>|~~~)",name:"keyword.operator.bitwise.elixir"},{match:"(?<=[ \\t])!+|\\bnot\\b|&&|\\band\\b|\\|\\||\\bor\\b|\\bxor\\b",name:"keyword.operator.logical.elixir"},{match:"(\\*|\\+|\\-|/)",name:"keyword.operator.arithmetic.elixir"},{match:"\\||\\+\\+|\\-\\-|\\*\\*|\\\\\\\\|\\<\\-|\\<\\>|\\<\\<|\\>\\>|\\:\\:|\\.\\.|//|\\|>|~|=>|&",name:"keyword.operator.other.elixir"},{match:"=",name:"keyword.operator.assignment.elixir"},{match:":",name:"punctuation.separator.other.elixir"},{match:"\\;",name:"punctuation.separator.statement.elixir"},{match:",",name:"punctuation.separator.object.elixir"},{match:"\\.",name:"punctuation.separator.method.elixir"},{match:"\\{|\\}",name:"punctuation.section.scope.elixir"},{match:"\\[|\\]",name:"punctuation.section.array.elixir"},{match:"\\(|\\)",name:"punctuation.section.function.elixir"}]},escaped_char:{match:"\\\\(x[\\da-fA-F]{1,2}|.)",name:"constant.character.escaped.elixir"},interpolated_elixir:{begin:"#\\{",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.elixir"}},contentName:"source.elixir",end:"\\}",endCaptures:{"0":{name:"punctuation.section.embedded.end.elixir"}},name:"meta.embedded.line.elixir",patterns:[{include:"#nest_curly_and_self"},{include:"$self"}]},nest_curly_and_self:{patterns:[{begin:"\\{",captures:{"0":{name:"punctuation.section.scope.elixir"}},end:"\\}",patterns:[{include:"#nest_curly_and_self"}]},{include:"$self"}]}},scopeName:"source.elixir",uuid:"D00C06B9-71B2-4FEB-A0E3-37237F579456"}; + +export { elixir_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/elm.tmLanguage-a3a9b164.mjs b/docs/shiki/dist/languages/elm.tmLanguage-a3a9b164.mjs new file mode 100644 index 00000000..02122b62 --- /dev/null +++ b/docs/shiki/dist/languages/elm.tmLanguage-a3a9b164.mjs @@ -0,0 +1,3 @@ +var elm_tmLanguage = {fileTypes:["elm"],name:"elm",scopeName:"source.elm",patterns:[{include:"#import"},{include:"#module"},{include:"#debug"},{include:"#comments"},{match:"\\b(_)\\b",name:"keyword.unused.elm"},{include:"#type-signature"},{include:"#type-declaration"},{include:"#type-alias-declaration"},{include:"#string-triple"},{include:"#string-quote"},{include:"#char"},{comment:"Floats are always decimal",match:"\\b([0-9]+\\.[0-9]+([eE][+-]?[0-9]+)?|[0-9]+[eE][+-]?[0-9]+)\\b",name:"constant.numeric.float.elm"},{match:"\\b([0-9]+)\\b",name:"constant.numeric.elm"},{match:"\\b(0x[0-9a-fA-F]+)\\b",name:"constant.numeric.elm"},{include:"#glsl"},{include:"#record-prefix"},{include:"#module-prefix"},{include:"#constructor"},{name:"meta.record.field.update.elm",match:"(\\{)\\s+([a-z][a-zA-Z0-9_]*)\\s+(\\|)\\s+([a-z][a-zA-Z0-9_]*)",captures:{"1":{name:"punctuation.bracket.elm"},"2":{name:"record.name.elm"},"3":{name:"keyword.pipe.elm"},"4":{name:"entity.name.record.field.elm"}}},{name:"meta.record.field.update.elm",match:"(\\|)\\s+([a-z][a-zA-Z0-9_]*)\\s+(\\=)",captures:{"1":{name:"keyword.pipe.elm"},"2":{name:"entity.name.record.field.elm"},"3":{name:"keyword.operator.assignment.elm"}}},{name:"meta.record.field.update.elm",match:"(\\{)\\s+([a-z][a-zA-Z0-9_]*)\\s+$",captures:{"1":{name:"punctuation.bracket.elm"},"2":{name:"record.name.elm"}}},{name:"meta.record.field.elm",match:"(\\{)\\s+([a-z][a-zA-Z0-9_]*)\\s+(\\=)",captures:{"1":{name:"punctuation.bracket.elm"},"2":{name:"entity.name.record.field.elm"},"3":{name:"keyword.operator.assignment.elm"}}},{name:"meta.record.field.elm",match:"(,)\\s+([a-z][a-zA-Z0-9_]*)\\s+(\\=)",captures:{"1":{name:"punctuation.separator.comma.elm"},"2":{name:"entity.name.record.field.elm"},"3":{name:"keyword.operator.assignment.elm"}}},{match:"(\\}|\\{)",name:"punctuation.bracket.elm"},{include:"#unit"},{include:"#comma"},{include:"#parens"},{match:"(->)",name:"keyword.operator.arrow.elm"},{include:"#infix_op"},{match:"(\\=|\\:|\\||\\\\)",name:"keyword.other.elm"},{match:"\\b(type|as|port|exposing|alias|infixl|infixr|infix)\\s+",name:"keyword.other.elm"},{match:"\\b(if|then|else|case|of|let|in)\\s+",name:"keyword.control.elm"},{include:"#record-accessor"},{include:"#top_level_value"},{include:"#value"},{include:"#period"},{include:"#square_brackets"}],repository:{comma:{match:"(,)",name:"punctuation.separator.comma.elm"},parens:{match:"(\\(|\\))",name:"punctuation.parens.elm"},block_comment:{applyEndPatternLast:1,begin:"\\{-(?!#)",captures:{"0":{name:"punctuation.definition.comment.elm"}},end:"-\\}",name:"comment.block.elm",patterns:[{include:"#block_comment"}]},comments:{patterns:[{captures:{"1":{name:"punctuation.definition.comment.elm"}},begin:"--",end:"$",name:"comment.line.double-dash.elm"},{include:"#block_comment"}]},"import":{name:"meta.import.elm",begin:"^\\b(import)\\s+",beginCaptures:{"1":{name:"keyword.control.import.elm"}},end:"\\n(?!\\s)",patterns:[{match:"(as|exposing)",name:"keyword.control.elm"},{include:"#module_chunk"},{include:"#period"},{match:"\\s+",name:"punctuation.spaces.elm"},{include:"#module-exports"}]},module:{begin:"^\\b((port |effect )?module)\\s+",beginCaptures:{"1":{name:"keyword.other.elm"}},end:"\\n(?!\\s)",endCaptures:{"1":{name:"keyword.other.elm"}},name:"meta.declaration.module.elm",patterns:[{include:"#module_chunk"},{include:"#period"},{match:"(exposing)",name:"keyword.other.elm"},{match:"\\s+",name:"punctuation.spaces.elm"},{include:"#module-exports"}]},"string-triple":{name:"string.quoted.triple.elm",begin:"\"\"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.elm"}},end:"\"\"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.elm"}},patterns:[{match:"\\\\(NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\"'\\&]|x[0-9a-fA-F]{1,5})",name:"constant.character.escape.elm"},{match:"\\^[A-Z@\\[\\]\\\\\\^_]",name:"constant.character.escape.control.elm"}]},"string-quote":{name:"string.quoted.double.elm",begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.elm"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.elm"}},patterns:[{match:"\\\\(NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\"'\\&]|x[0-9a-fA-F]{1,5})",name:"constant.character.escape.elm"},{match:"\\^[A-Z@\\[\\]\\\\\\^_]",name:"constant.character.escape.control.elm"}]},char:{name:"string.quoted.single.elm",begin:"'",beginCaptures:{"0":{name:"punctuation.definition.char.begin.elm"}},end:"'",endCaptures:{"0":{name:"punctuation.definition.char.end.elm"}},patterns:[{match:"\\\\(NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\"'\\&]|x[0-9a-fA-F]{1,5})",name:"constant.character.escape.elm"},{match:"\\^[A-Z@\\[\\]\\\\\\^_]",name:"constant.character.escape.control.elm"}]},debug:{match:"\\b(Debug)\\b",name:"invalid.illegal.debug.elm"},"module-exports":{begin:"(\\()",beginCaptures:{"1":{name:"punctuation.parens.module-export.elm"}},end:"(\\))",endCaptures:{"1":{name:"punctuation.parens.module-export.elm"}},name:"meta.declaration.exports.elm",patterns:[{match:"\\b[a-z][a-zA-Z_'0-9]*",name:"entity.name.function.elm"},{match:"\\b[A-Z][A-Za-z_'0-9]*",name:"storage.type.elm"},{match:",",name:"punctuation.separator.comma.elm"},{match:"\\s+",name:"punctuation.spaces.elm"},{include:"#comma"},{match:"\\(\\.\\.\\)",name:"punctuation.parens.ellipses.elm"},{match:"\\.\\.",name:"punctuation.parens.ellipses.elm"},{include:"#infix_op"},{comment:"So named because I don't know what to call this.",match:"\\(.*?\\)",name:"meta.other.unknown.elm"}]},module_chunk:{match:"[A-Z][a-zA-Z0-9_]*",name:"support.module.elm"},period:{match:"[.]",name:"keyword.other.period.elm"},square_brackets:{match:"[\\[\\]]",name:"punctuation.definition.list.elm"},"record-prefix":{match:"([a-z][a-zA-Z0-9_]*)(\\.)([a-z][a-zA-Z0-9_]*)",name:"record.accessor.elm",captures:{"1":{name:"record.name.elm"},"2":{name:"keyword.other.period.elm"},"3":{name:"entity.name.record.field.accessor.elm"}}},"module-prefix":{match:"([A-Z][a-zA-Z0-9_]*)(\\.)",name:"meta.module.name.elm",captures:{"1":{name:"support.module.elm"},"2":{name:"keyword.other.period.elm"}}},constructor:{match:"\\b[A-Z][a-zA-Z0-9_]*\\b",name:"constant.type-constructor.elm"},value:{match:"\\b[a-z][a-zA-Z0-9_]*\\b",name:"meta.value.elm"},unit:{match:"\\(\\)",name:"constant.unit.elm"},top_level_value:{match:"^[a-z][a-zA-Z0-9_]*\\b",name:"entity.name.function.top_level.elm"},"record-accessor":{match:"(\\.)([a-z][a-zA-Z0-9_]*)",name:"meta.record.accessor",captures:{"1":{name:"keyword.other.period.elm"},"2":{name:"entity.name.record.field.accessor.elm"}}},infix_op:{match:"(|<\\?>|<\\||<=|\\|\\||&&|>=|\\|>|\\|=|\\|\\.|\\+\\+|::|/=|==|//|>>|<<|<|>|\\^|\\+|-|/|\\*)",name:"keyword.operator.elm"},"type-declaration":{begin:"^(type\\s+)([A-Z][a-zA-Z0-9_']*)\\s+",beginCaptures:{"1":{name:"keyword.type.elm"},"2":{name:"storage.type.elm"}},end:"^(?=\\S)",name:"meta.function.type-declaration.elm",patterns:[{name:"meta.record.field.elm",match:"^\\s*([A-Z][a-zA-Z0-9_]*)\\b",captures:{"1":{name:"constant.type-constructor.elm"}}},{match:"\\s+",name:"punctuation.spaces.elm"},{name:"meta.record.field.elm",match:"(\\=|\\|)\\s+([A-Z][a-zA-Z0-9_]*)\\b",captures:{"1":{name:"keyword.operator.assignment.elm"},"2":{name:"constant.type-constructor.elm"}}},{match:"\\=",name:"keyword.operator.assignment.elm"},{match:"\\-\\>",name:"keyword.operator.arrow.elm"},{include:"#module-prefix"},{match:"\\b[a-z][a-zA-Z0-9_]*\\b",name:"variable.type.elm"},{match:"\\b[A-Z][a-zA-Z0-9_]*\\b",name:"storage.type.elm"},{include:"#comments"},{include:"#type-record"}]},"type-alias-declaration":{begin:"^(type\\s+)(alias\\s+)([A-Z][a-zA-Z0-9_']*)\\s+",beginCaptures:{"1":{name:"keyword.type.elm"},"2":{name:"keyword.type-alias.elm"},"3":{name:"storage.type.elm"}},end:"^(?=\\S)",name:"meta.function.type-declaration.elm",patterns:[{match:"\\n\\s+",name:"punctuation.spaces.elm"},{match:"\\=",name:"keyword.operator.assignment.elm"},{include:"#module-prefix"},{match:"\\b[A-Z][a-zA-Z0-9_]*\\b",name:"storage.type.elm"},{match:"\\b[a-z][a-zA-Z0-9_]*\\b",name:"variable.type.elm"},{include:"#comments"},{include:"#type-record"}]},"type-record":{begin:"(\\{)",beginCaptures:{"1":{name:"punctuation.section.braces.begin"}},end:"(\\})",endCaptures:{"1":{name:"punctuation.section.braces.end"}},name:"meta.function.type-record.elm",patterns:[{match:"\\s+",name:"punctuation.spaces.elm"},{match:"->",name:"keyword.operator.arrow.elm"},{name:"meta.record.field.elm",match:"([a-z][a-zA-Z0-9_]*)\\s+(\\:)",captures:{"1":{name:"entity.name.record.field.elm"},"2":{name:"keyword.other.elm"}}},{match:"\\,",name:"punctuation.separator.comma.elm"},{include:"#module-prefix"},{match:"\\b[a-z][a-zA-Z0-9_]*\\b",name:"variable.type.elm"},{match:"\\b[A-Z][a-zA-Z0-9_]*\\b",name:"storage.type.elm"},{include:"#comments"},{include:"#type-record"}]},"type-signature":{begin:"^(port\\s+)?([a-z_][a-zA-Z0-9_']*)\\s+(\\:)",beginCaptures:{"1":{name:"keyword.other.port.elm"},"2":{name:"entity.name.function.elm"},"3":{name:"keyword.other.colon.elm"}},end:"((^(?=[a-z]))|^$)",name:"meta.function.type-declaration.elm",patterns:[{include:"#type-signature-chunk"}]},"type-signature-chunk":{patterns:[{match:"->",name:"keyword.operator.arrow.elm"},{match:"\\s+",name:"punctuation.spaces.elm"},{include:"#module-prefix"},{match:"\\b[a-z][a-zA-Z0-9_]*\\b",name:"variable.type.elm"},{match:"\\b[A-Z][a-zA-Z0-9_]*\\b",name:"storage.type.elm"},{match:"\\(\\)",name:"constant.unit.elm"},{include:"#comma"},{include:"#parens"},{include:"#comments"},{include:"#type-record"}]},glsl:{begin:"(\\[)(glsl)(\\|)",beginCaptures:{"1":{name:"entity.glsl.bracket.elm"},"2":{name:"entity.glsl.name.elm"},"3":{name:"entity.glsl.bracket.elm"}},end:"(\\|\\])",endCaptures:{"1":{name:"entity.glsl.bracket.elm"}},name:"meta.embedded.block.glsl",patterns:[{include:"source.glsl"}]}}}; + +export { elm_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/erb.tmLanguage-35e5b435.mjs b/docs/shiki/dist/languages/erb.tmLanguage-35e5b435.mjs new file mode 100644 index 00000000..d46372df --- /dev/null +++ b/docs/shiki/dist/languages/erb.tmLanguage-35e5b435.mjs @@ -0,0 +1,3 @@ +var erb_tmLanguage = {fileTypes:["erb","rhtml","html.erb"],injections:{"text.html.erb - (meta.embedded.block.erb | meta.embedded.line.erb | comment)":{patterns:[{begin:"(^\\s*)(?=<%+#(?![^%]*%>))",beginCaptures:{"0":{name:"punctuation.whitespace.comment.leading.erb"}},end:"(?!\\G)(\\s*$\\n)?",endCaptures:{"0":{name:"punctuation.whitespace.comment.trailing.erb"}},patterns:[{include:"#comment"}]},{begin:"(^\\s*)(?=<%(?![^%]*%>))",beginCaptures:{"0":{name:"punctuation.whitespace.embedded.leading.erb"}},end:"(?!\\G)(\\s*$\\n)?",endCaptures:{"0":{name:"punctuation.whitespace.embedded.trailing.erb"}},patterns:[{include:"#tags"}]},{include:"#comment"},{include:"#tags"}]}},keyEquivalent:"^~H",name:"erb",patterns:[{include:"text.html.basic"}],repository:{comment:{patterns:[{begin:"<%+#",beginCaptures:{"0":{name:"punctuation.definition.comment.begin.erb"}},end:"%>",endCaptures:{"0":{name:"punctuation.definition.comment.end.erb"}},name:"comment.block.erb"}]},tags:{patterns:[{begin:"<%+(?!>)[-=]?(?![^%]*%>)",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.erb"}},contentName:"source.ruby",end:"(-?%)>",endCaptures:{"0":{name:"punctuation.section.embedded.end.erb"},"1":{name:"source.ruby"}},name:"meta.embedded.block.erb",patterns:[{captures:{"1":{name:"punctuation.definition.comment.erb"}},match:"(#).*?(?=-?%>)",name:"comment.line.number-sign.erb"},{include:"source.ruby"}]},{begin:"<%+(?!>)[-=]?",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.erb"}},contentName:"source.ruby",end:"(-?%)>",endCaptures:{"0":{name:"punctuation.section.embedded.end.erb"},"1":{name:"source.ruby"}},name:"meta.embedded.line.erb",patterns:[{captures:{"1":{name:"punctuation.definition.comment.erb"}},match:"(#).*?(?=-?%>)",name:"comment.line.number-sign.erb"},{include:"source.ruby"}]}]}},scopeName:"text.html.erb",uuid:"13FF9439-15D0-4E74-9A8E-83ABF0BAA5E7"}; + +export { erb_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/erlang.tmLanguage-48bcb023.mjs b/docs/shiki/dist/languages/erlang.tmLanguage-48bcb023.mjs new file mode 100644 index 00000000..49690bae --- /dev/null +++ b/docs/shiki/dist/languages/erlang.tmLanguage-48bcb023.mjs @@ -0,0 +1,3 @@ +var erlang_tmLanguage = {comment:"The recognition of function definitions and compiler directives (such as module, record and macro definitions) requires that each of the aforementioned constructs must be the first string inside a line (except for whitespace). Also, the function/module/record/macro names must be given unquoted. -- desp",fileTypes:["erl","escript","hrl","xrl","yrl"],keyEquivalent:"^~E",name:"erlang",patterns:[{include:"#module-directive"},{include:"#import-export-directive"},{include:"#behaviour-directive"},{include:"#record-directive"},{include:"#define-directive"},{include:"#macro-directive"},{include:"#directive"},{include:"#function"},{include:"#everything-else"}],repository:{atom:{patterns:[{begin:"(')",beginCaptures:{"1":{name:"punctuation.definition.symbol.begin.erlang"}},end:"(')",endCaptures:{"1":{name:"punctuation.definition.symbol.end.erlang"}},name:"constant.other.symbol.quoted.single.erlang",patterns:[{captures:{"1":{name:"punctuation.definition.escape.erlang"},"3":{name:"punctuation.definition.escape.erlang"}},match:"(\\\\)([bdefnrstv\\\\'\"]|(\\^)[@-_a-z]|[0-7]{1,3}|x[\\da-fA-F]{2})",name:"constant.other.symbol.escape.erlang"},{match:"\\\\\\^?.?",name:"invalid.illegal.atom.erlang"}]},{match:"[a-z][a-zA-Z\\d@_]*+",name:"constant.other.symbol.unquoted.erlang"}]},"behaviour-directive":{captures:{"1":{name:"punctuation.section.directive.begin.erlang"},"2":{name:"keyword.control.directive.behaviour.erlang"},"3":{name:"punctuation.definition.parameters.begin.erlang"},"4":{name:"entity.name.type.class.behaviour.definition.erlang"},"5":{name:"punctuation.definition.parameters.end.erlang"},"6":{name:"punctuation.section.directive.end.erlang"}},match:"^\\s*+(-)\\s*+(behaviour)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\))\\s*+(\\.)",name:"meta.directive.behaviour.erlang"},binary:{begin:"(<<)",beginCaptures:{"1":{name:"punctuation.definition.binary.begin.erlang"}},end:"(>>)",endCaptures:{"1":{name:"punctuation.definition.binary.end.erlang"}},name:"meta.structure.binary.erlang",patterns:[{captures:{"1":{name:"punctuation.separator.binary.erlang"},"2":{name:"punctuation.separator.value-size.erlang"}},match:"(,)|(:)"},{include:"#internal-type-specifiers"},{include:"#everything-else"}]},character:{patterns:[{captures:{"1":{name:"punctuation.definition.character.erlang"},"2":{name:"constant.character.escape.erlang"},"3":{name:"punctuation.definition.escape.erlang"},"5":{name:"punctuation.definition.escape.erlang"}},match:"(\\$)((\\\\)([bdefnrstv\\\\'\"]|(\\^)[@-_a-z]|[0-7]{1,3}|x[\\da-fA-F]{2}))",name:"constant.character.erlang"},{match:"\\$\\\\\\^?.?",name:"invalid.illegal.character.erlang"},{captures:{"1":{name:"punctuation.definition.character.erlang"}},match:"(\\$)[ \\S]",name:"constant.character.erlang"},{match:"\\$.?",name:"invalid.illegal.character.erlang"}]},comment:{begin:"(^[ \\t]+)?(?=%)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.erlang"}},end:"(?!\\G)",patterns:[{begin:"%",beginCaptures:{"0":{name:"punctuation.definition.comment.erlang"}},end:"\\n",name:"comment.line.percentage.erlang"}]},"define-directive":{patterns:[{begin:"^\\s*+(-)\\s*+(define)\\s*+(\\()\\s*+([a-zA-Z\\d@_]++)\\s*+",beginCaptures:{"1":{name:"punctuation.section.directive.begin.erlang"},"2":{name:"keyword.control.directive.define.erlang"},"3":{name:"punctuation.definition.parameters.begin.erlang"},"4":{name:"entity.name.function.macro.definition.erlang"}},end:"(\\))\\s*+(\\.)",endCaptures:{"1":{name:"punctuation.definition.parameters.end.erlang"},"2":{name:"punctuation.section.directive.end.erlang"}},name:"meta.directive.define.erlang",patterns:[{include:"#everything-else"}]},{begin:"(?=^\\s*+-\\s*+define\\s*+\\(\\s*+[a-zA-Z\\d@_]++\\s*+\\()",end:"(\\))\\s*+(\\.)",endCaptures:{"1":{name:"punctuation.definition.parameters.end.erlang"},"2":{name:"punctuation.section.directive.end.erlang"}},name:"meta.directive.define.erlang",patterns:[{begin:"^\\s*+(-)\\s*+(define)\\s*+(\\()\\s*+([a-zA-Z\\d@_]++)\\s*+(\\()",beginCaptures:{"1":{name:"punctuation.section.directive.begin.erlang"},"2":{name:"keyword.control.directive.define.erlang"},"3":{name:"punctuation.definition.parameters.begin.erlang"},"4":{name:"entity.name.function.macro.definition.erlang"},"5":{name:"punctuation.definition.parameters.begin.erlang"}},end:"(\\))\\s*(,)",endCaptures:{"1":{name:"punctuation.definition.parameters.end.erlang"},"2":{name:"punctuation.separator.parameters.erlang"}},patterns:[{match:",",name:"punctuation.separator.parameters.erlang"},{include:"#everything-else"}]},{match:"\\|\\||\\||:|;|,|\\.|->",name:"punctuation.separator.define.erlang"},{include:"#everything-else"}]}]},directive:{patterns:[{begin:"^\\s*+(-)\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\(?)",beginCaptures:{"1":{name:"punctuation.section.directive.begin.erlang"},"2":{name:"keyword.control.directive.erlang"},"3":{name:"punctuation.definition.parameters.begin.erlang"}},end:"(\\)?)\\s*+(\\.)",endCaptures:{"1":{name:"punctuation.definition.parameters.end.erlang"},"2":{name:"punctuation.section.directive.end.erlang"}},name:"meta.directive.erlang",patterns:[{include:"#everything-else"}]},{captures:{"1":{name:"punctuation.section.directive.begin.erlang"},"2":{name:"keyword.control.directive.erlang"},"3":{name:"punctuation.section.directive.end.erlang"}},match:"^\\s*+(-)\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\.)",name:"meta.directive.erlang"}]},"everything-else":{patterns:[{include:"#comment"},{include:"#record-usage"},{include:"#macro-usage"},{include:"#expression"},{include:"#keyword"},{include:"#textual-operator"},{include:"#language-constant"},{include:"#function-call"},{include:"#tuple"},{include:"#list"},{include:"#binary"},{include:"#parenthesized-expression"},{include:"#character"},{include:"#number"},{include:"#atom"},{include:"#string"},{include:"#symbolic-operator"},{include:"#variable"}]},expression:{patterns:[{begin:"\\b(if)\\b",beginCaptures:{"1":{name:"keyword.control.if.erlang"}},end:"\\b(end)\\b",endCaptures:{"1":{name:"keyword.control.end.erlang"}},name:"meta.expression.if.erlang",patterns:[{include:"#internal-expression-punctuation"},{include:"#everything-else"}]},{begin:"\\b(case)\\b",beginCaptures:{"1":{name:"keyword.control.case.erlang"}},end:"\\b(end)\\b",endCaptures:{"1":{name:"keyword.control.end.erlang"}},name:"meta.expression.case.erlang",patterns:[{include:"#internal-expression-punctuation"},{include:"#everything-else"}]},{begin:"\\b(receive)\\b",beginCaptures:{"1":{name:"keyword.control.receive.erlang"}},end:"\\b(end)\\b",endCaptures:{"1":{name:"keyword.control.end.erlang"}},name:"meta.expression.receive.erlang",patterns:[{include:"#internal-expression-punctuation"},{include:"#everything-else"}]},{captures:{"1":{name:"keyword.control.fun.erlang"},"4":{name:"entity.name.type.class.module.erlang"},"5":{name:"variable.other.erlang"},"6":{name:"punctuation.separator.module-function.erlang"},"8":{name:"entity.name.function.erlang"},"9":{name:"variable.other.erlang"},"10":{name:"punctuation.separator.function-arity.erlang"}},comment:"Implicit function expression with optional module qualifier when both module and function can be atom or variable",match:"\\b(fun)\\s+((([a-z][a-zA-Z\\d@_]*+)|(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+))\\s*+(:)\\s*+)?(([a-z][a-zA-Z\\d@_]*+|'[^']*+')|(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+))\\s*(/)",name:"meta.expression.fun.implicit.erlang"},{begin:"\\b(fun)\\s+(([a-z][a-zA-Z\\d@_]*+)|(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+))\\s*+(:)",beginCaptures:{"1":{name:"keyword.control.fun.erlang"},"3":{name:"entity.name.type.class.module.erlang"},"4":{name:"variable.other.erlang"},"5":{name:"punctuation.separator.module-function.erlang"}},comment:"Implicit function expression with module qualifier when module can be atom or variable and function can by anything",end:"(/)",endCaptures:{"1":{name:"punctuation.separator.function-arity.erlang"}},name:"meta.expression.fun.implicit.erlang",patterns:[{include:"#everything-else"}]},{begin:"\\b(fun)\\s+(?!\\()",beginCaptures:{"1":{name:"keyword.control.fun.erlang"}},comment:"Implicit function expression when both module and function can by anything",end:"(/)",endCaptures:{"1":{name:"punctuation.separator.function-arity.erlang"}},name:"meta.expression.fun.implicit.erlang",patterns:[{include:"#everything-else"}]},{begin:"\\b(fun)\\s*+(\\()(?=(\\s*+\\())",beginCaptures:{"1":{name:"entity.name.function.erlang"},"2":{name:"punctuation.definition.parameters.begin.erlang"}},comment:"Function type in type specification",end:"(\\))",endCaptures:{"1":{name:"punctuation.definition.parameters.end.erlang"}},patterns:[{include:"#everything-else"}]},{begin:"\\b(fun)\\b",beginCaptures:{"1":{name:"keyword.control.fun.erlang"}},comment:"Explicit function expression",end:"\\b(end)\\b",endCaptures:{"1":{name:"keyword.control.end.erlang"}},name:"meta.expression.fun.erlang",patterns:[{begin:"(?=\\()",end:"(;)|(?=\\bend\\b)",endCaptures:{"1":{name:"punctuation.separator.clauses.erlang"}},patterns:[{include:"#internal-function-parts"}]},{include:"#everything-else"}]},{begin:"\\b(try)\\b",beginCaptures:{"1":{name:"keyword.control.try.erlang"}},end:"\\b(end)\\b",endCaptures:{"1":{name:"keyword.control.end.erlang"}},name:"meta.expression.try.erlang",patterns:[{include:"#internal-expression-punctuation"},{include:"#everything-else"}]},{begin:"\\b(begin)\\b",beginCaptures:{"1":{name:"keyword.control.begin.erlang"}},end:"\\b(end)\\b",endCaptures:{"1":{name:"keyword.control.end.erlang"}},name:"meta.expression.begin.erlang",patterns:[{include:"#internal-expression-punctuation"},{include:"#everything-else"}]},{begin:"\\b(maybe)\\b",beginCaptures:{"1":{name:"keyword.control.maybe.erlang"}},end:"\\b(end)\\b",endCaptures:{"1":{name:"keyword.control.end.erlang"}},name:"meta.expression.maybe.erlang",patterns:[{include:"#internal-expression-punctuation"},{include:"#everything-else"}]}]},"function":{begin:"^\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(?=\\()",beginCaptures:{"1":{name:"entity.name.function.definition.erlang"}},end:"(\\.)",endCaptures:{"1":{name:"punctuation.terminator.function.erlang"}},name:"meta.function.erlang",patterns:[{captures:{"1":{name:"entity.name.function.erlang"}},match:"^\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(?=\\()"},{begin:"(?=\\()",end:"(;)|(?=\\.)",endCaptures:{"1":{name:"punctuation.separator.clauses.erlang"}},patterns:[{include:"#parenthesized-expression"},{include:"#internal-function-parts"}]},{include:"#everything-else"}]},"function-call":{begin:"(?=([a-z][a-zA-Z\\d@_]*+|'[^']*+'|_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+)\\s*+(\\(|:\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+'|_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+)\\s*+\\())",end:"(\\))",endCaptures:{"1":{name:"punctuation.definition.parameters.end.erlang"}},name:"meta.function-call.erlang",patterns:[{begin:"((erlang)\\s*+(:)\\s*+)?(is_atom|is_binary|is_constant|is_float|is_function|is_integer|is_list|is_number|is_pid|is_port|is_reference|is_tuple|is_record|abs|element|hd|length|node|round|self|size|tl|trunc)\\s*+(\\()",beginCaptures:{"2":{name:"entity.name.type.class.module.erlang"},"3":{name:"punctuation.separator.module-function.erlang"},"4":{name:"entity.name.function.guard.erlang"},"5":{name:"punctuation.definition.parameters.begin.erlang"}},end:"(?=\\))",patterns:[{match:",",name:"punctuation.separator.parameters.erlang"},{include:"#everything-else"}]},{begin:"((([a-z][a-zA-Z\\d@_]*+|'[^']*+')|(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+))\\s*+(:)\\s*+)?(([a-z][a-zA-Z\\d@_]*+|'[^']*+')|(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+))\\s*+(\\()",beginCaptures:{"3":{name:"entity.name.type.class.module.erlang"},"4":{name:"variable.other.erlang"},"5":{name:"punctuation.separator.module-function.erlang"},"7":{name:"entity.name.function.erlang"},"8":{name:"variable.other.erlang"},"9":{name:"punctuation.definition.parameters.begin.erlang"}},end:"(?=\\))",patterns:[{match:",",name:"punctuation.separator.parameters.erlang"},{include:"#everything-else"}]}]},"import-export-directive":{patterns:[{begin:"^\\s*+(-)\\s*+(import)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(,)",beginCaptures:{"1":{name:"punctuation.section.directive.begin.erlang"},"2":{name:"keyword.control.directive.import.erlang"},"3":{name:"punctuation.definition.parameters.begin.erlang"},"4":{name:"entity.name.type.class.module.erlang"},"5":{name:"punctuation.separator.parameters.erlang"}},end:"(\\))\\s*+(\\.)",endCaptures:{"1":{name:"punctuation.definition.parameters.end.erlang"},"2":{name:"punctuation.section.directive.end.erlang"}},name:"meta.directive.import.erlang",patterns:[{include:"#internal-function-list"}]},{begin:"^\\s*+(-)\\s*+(export)\\s*+(\\()",beginCaptures:{"1":{name:"punctuation.section.directive.begin.erlang"},"2":{name:"keyword.control.directive.export.erlang"},"3":{name:"punctuation.definition.parameters.begin.erlang"}},end:"(\\))\\s*+(\\.)",endCaptures:{"1":{name:"punctuation.definition.parameters.end.erlang"},"2":{name:"punctuation.section.directive.end.erlang"}},name:"meta.directive.export.erlang",patterns:[{include:"#internal-function-list"}]}]},"internal-expression-punctuation":{captures:{"1":{name:"punctuation.separator.clause-head-body.erlang"},"2":{name:"punctuation.separator.clauses.erlang"},"3":{name:"punctuation.separator.expressions.erlang"}},match:"(->)|(;)|(,)"},"internal-function-list":{begin:"(\\[)",beginCaptures:{"1":{name:"punctuation.definition.list.begin.erlang"}},end:"(\\])",endCaptures:{"1":{name:"punctuation.definition.list.end.erlang"}},name:"meta.structure.list.function.erlang",patterns:[{begin:"([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(/)",beginCaptures:{"1":{name:"entity.name.function.erlang"},"2":{name:"punctuation.separator.function-arity.erlang"}},end:"(,)|(?=\\])",endCaptures:{"1":{name:"punctuation.separator.list.erlang"}},patterns:[{include:"#everything-else"}]},{include:"#everything-else"}]},"internal-function-parts":{patterns:[{begin:"(?=\\()",end:"(->)",endCaptures:{"1":{name:"punctuation.separator.clause-head-body.erlang"}},patterns:[{begin:"(\\()",beginCaptures:{"1":{name:"punctuation.definition.parameters.begin.erlang"}},end:"(\\))",endCaptures:{"1":{name:"punctuation.definition.parameters.end.erlang"}},patterns:[{match:",",name:"punctuation.separator.parameters.erlang"},{include:"#everything-else"}]},{match:",|;",name:"punctuation.separator.guards.erlang"},{include:"#everything-else"}]},{match:",",name:"punctuation.separator.expressions.erlang"},{include:"#everything-else"}]},"internal-record-body":{begin:"(\\{)",beginCaptures:{"1":{name:"punctuation.definition.class.record.begin.erlang"}},end:"(\\})",endCaptures:{"1":{name:"punctuation.definition.class.record.end.erlang"}},name:"meta.structure.record.erlang",patterns:[{begin:"(([a-z][a-zA-Z\\d@_]*+|'[^']*+')|(_))",beginCaptures:{"2":{name:"variable.other.field.erlang"},"3":{name:"variable.language.omitted.field.erlang"}},end:"(,)|(?=\\})",endCaptures:{"1":{name:"punctuation.separator.class.record.erlang"}},patterns:[{include:"#everything-else"}]},{include:"#everything-else"}]},"internal-type-specifiers":{begin:"(/)",beginCaptures:{"1":{name:"punctuation.separator.value-type.erlang"}},end:"(?=,|:|>>)",patterns:[{captures:{"1":{name:"storage.type.erlang"},"2":{name:"storage.modifier.signedness.erlang"},"3":{name:"storage.modifier.endianness.erlang"},"4":{name:"storage.modifier.unit.erlang"},"5":{name:"punctuation.separator.unit-specifiers.erlang"},"6":{name:"constant.numeric.integer.decimal.erlang"},"7":{name:"punctuation.separator.type-specifiers.erlang"}},match:"(integer|float|binary|bytes|bitstring|bits|utf8|utf16|utf32)|(signed|unsigned)|(big|little|native)|(unit)(:)(\\d++)|(-)"}]},keyword:{match:"\\b(after|begin|case|catch|cond|end|fun|if|let|of|try|receive|when|maybe|else)\\b",name:"keyword.control.erlang"},"language-constant":{match:"\\b(false|true|undefined)\\b",name:"constant.language"},list:{begin:"(\\[)",beginCaptures:{"1":{name:"punctuation.definition.list.begin.erlang"}},end:"(\\])",endCaptures:{"1":{name:"punctuation.definition.list.end.erlang"}},name:"meta.structure.list.erlang",patterns:[{match:"\\||\\|\\||,",name:"punctuation.separator.list.erlang"},{include:"#everything-else"}]},"macro-directive":{patterns:[{captures:{"1":{name:"punctuation.section.directive.begin.erlang"},"2":{name:"keyword.control.directive.ifdef.erlang"},"3":{name:"punctuation.definition.parameters.begin.erlang"},"4":{name:"entity.name.function.macro.erlang"},"5":{name:"punctuation.definition.parameters.end.erlang"},"6":{name:"punctuation.section.directive.end.erlang"}},match:"^\\s*+(-)\\s*+(ifdef)\\s*+(\\()\\s*+([a-zA-z\\d@_]++)\\s*+(\\))\\s*+(\\.)",name:"meta.directive.ifdef.erlang"},{captures:{"1":{name:"punctuation.section.directive.begin.erlang"},"2":{name:"keyword.control.directive.ifndef.erlang"},"3":{name:"punctuation.definition.parameters.begin.erlang"},"4":{name:"entity.name.function.macro.erlang"},"5":{name:"punctuation.definition.parameters.end.erlang"},"6":{name:"punctuation.section.directive.end.erlang"}},match:"^\\s*+(-)\\s*+(ifndef)\\s*+(\\()\\s*+([a-zA-z\\d@_]++)\\s*+(\\))\\s*+(\\.)",name:"meta.directive.ifndef.erlang"},{captures:{"1":{name:"punctuation.section.directive.begin.erlang"},"2":{name:"keyword.control.directive.undef.erlang"},"3":{name:"punctuation.definition.parameters.begin.erlang"},"4":{name:"entity.name.function.macro.erlang"},"5":{name:"punctuation.definition.parameters.end.erlang"},"6":{name:"punctuation.section.directive.end.erlang"}},match:"^\\s*+(-)\\s*+(undef)\\s*+(\\()\\s*+([a-zA-z\\d@_]++)\\s*+(\\))\\s*+(\\.)",name:"meta.directive.undef.erlang"}]},"macro-usage":{captures:{"1":{name:"keyword.operator.macro.erlang"},"2":{name:"entity.name.function.macro.erlang"}},match:"(\\?\\??)\\s*+([a-zA-Z\\d@_]++)",name:"meta.macro-usage.erlang"},"module-directive":{captures:{"1":{name:"punctuation.section.directive.begin.erlang"},"2":{name:"keyword.control.directive.module.erlang"},"3":{name:"punctuation.definition.parameters.begin.erlang"},"4":{name:"entity.name.type.class.module.definition.erlang"},"5":{name:"punctuation.definition.parameters.end.erlang"},"6":{name:"punctuation.section.directive.end.erlang"}},match:"^\\s*+(-)\\s*+(module)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\))\\s*+(\\.)",name:"meta.directive.module.erlang"},number:{begin:"(?=\\d)",end:"(?!\\d)",patterns:[{captures:{"1":{name:"punctuation.separator.integer-float.erlang"},"2":{name:"punctuation.separator.float-exponent.erlang"}},match:"\\d++(\\.)\\d++([eE][\\+\\-]?\\d++)?",name:"constant.numeric.float.erlang"},{captures:{"1":{name:"punctuation.separator.base-integer.erlang"}},match:"2(#)([0-1]++_)*[0-1]++",name:"constant.numeric.integer.binary.erlang"},{captures:{"1":{name:"punctuation.separator.base-integer.erlang"}},match:"3(#)([0-2]++_)*[0-2]++",name:"constant.numeric.integer.base-3.erlang"},{captures:{"1":{name:"punctuation.separator.base-integer.erlang"}},match:"4(#)([0-3]++_)*[0-3]++",name:"constant.numeric.integer.base-4.erlang"},{captures:{"1":{name:"punctuation.separator.base-integer.erlang"}},match:"5(#)([0-4]++_)*[0-4]++",name:"constant.numeric.integer.base-5.erlang"},{captures:{"1":{name:"punctuation.separator.base-integer.erlang"}},match:"6(#)([0-5]++_)*[0-5]++",name:"constant.numeric.integer.base-6.erlang"},{captures:{"1":{name:"punctuation.separator.base-integer.erlang"}},match:"7(#)([0-6]++_)*[0-6]++",name:"constant.numeric.integer.base-7.erlang"},{captures:{"1":{name:"punctuation.separator.base-integer.erlang"}},match:"8(#)([0-7]++_)*[0-7]++",name:"constant.numeric.integer.octal.erlang"},{captures:{"1":{name:"punctuation.separator.base-integer.erlang"}},match:"9(#)([0-8]++_)*[0-8]++",name:"constant.numeric.integer.base-9.erlang"},{captures:{"1":{name:"punctuation.separator.base-integer.erlang"}},match:"10(#)(\\d++_)*\\d++",name:"constant.numeric.integer.decimal.erlang"},{captures:{"1":{name:"punctuation.separator.base-integer.erlang"}},match:"11(#)([\\daA]++_)*[\\daA]++",name:"constant.numeric.integer.base-11.erlang"},{captures:{"1":{name:"punctuation.separator.base-integer.erlang"}},match:"12(#)([\\da-bA-B]++_)*[\\da-bA-B]++",name:"constant.numeric.integer.base-12.erlang"},{captures:{"1":{name:"punctuation.separator.base-integer.erlang"}},match:"13(#)([\\da-cA-C]++_)*[\\da-cA-C]++",name:"constant.numeric.integer.base-13.erlang"},{captures:{"1":{name:"punctuation.separator.base-integer.erlang"}},match:"14(#)([\\da-dA-D]++_)*[\\da-dA-D]++",name:"constant.numeric.integer.base-14.erlang"},{captures:{"1":{name:"punctuation.separator.base-integer.erlang"}},match:"15(#)([\\da-eA-E]++_)*[\\da-eA-E]++",name:"constant.numeric.integer.base-15.erlang"},{captures:{"1":{name:"punctuation.separator.base-integer.erlang"}},match:"16(#)([\\da-fA-F]++_)*[\\da-fA-F]++",name:"constant.numeric.integer.hexadecimal.erlang"},{captures:{"1":{name:"punctuation.separator.base-integer.erlang"}},match:"17(#)([\\da-gA-G]++_)*[\\da-gA-G]++",name:"constant.numeric.integer.base-17.erlang"},{captures:{"1":{name:"punctuation.separator.base-integer.erlang"}},match:"18(#)([\\da-hA-H]++_)*[\\da-hA-H]++",name:"constant.numeric.integer.base-18.erlang"},{captures:{"1":{name:"punctuation.separator.base-integer.erlang"}},match:"19(#)([\\da-iA-I]++_)*[\\da-iA-I]++",name:"constant.numeric.integer.base-19.erlang"},{captures:{"1":{name:"punctuation.separator.base-integer.erlang"}},match:"20(#)([\\da-jA-J]++_)*[\\da-jA-J]++",name:"constant.numeric.integer.base-20.erlang"},{captures:{"1":{name:"punctuation.separator.base-integer.erlang"}},match:"21(#)([\\da-kA-K]++_)*[\\da-kA-K]++",name:"constant.numeric.integer.base-21.erlang"},{captures:{"1":{name:"punctuation.separator.base-integer.erlang"}},match:"22(#)([\\da-lA-L]++_)*[\\da-lA-L]++",name:"constant.numeric.integer.base-22.erlang"},{captures:{"1":{name:"punctuation.separator.base-integer.erlang"}},match:"23(#)([\\da-mA-M]++_)*[\\da-mA-M]++",name:"constant.numeric.integer.base-23.erlang"},{captures:{"1":{name:"punctuation.separator.base-integer.erlang"}},match:"24(#)([\\da-nA-N]++_)*[\\da-nA-N]++",name:"constant.numeric.integer.base-24.erlang"},{captures:{"1":{name:"punctuation.separator.base-integer.erlang"}},match:"25(#)([\\da-oA-O]++_)*[\\da-oA-O]++",name:"constant.numeric.integer.base-25.erlang"},{captures:{"1":{name:"punctuation.separator.base-integer.erlang"}},match:"26(#)([\\da-pA-P]++_)*[\\da-pA-P]++",name:"constant.numeric.integer.base-26.erlang"},{captures:{"1":{name:"punctuation.separator.base-integer.erlang"}},match:"27(#)([\\da-qA-Q]++_)*[\\da-qA-Q]++",name:"constant.numeric.integer.base-27.erlang"},{captures:{"1":{name:"punctuation.separator.base-integer.erlang"}},match:"28(#)([\\da-rA-R]++_)*[\\da-rA-R]++",name:"constant.numeric.integer.base-28.erlang"},{captures:{"1":{name:"punctuation.separator.base-integer.erlang"}},match:"29(#)([\\da-sA-S]++_)*[\\da-sA-S]++",name:"constant.numeric.integer.base-29.erlang"},{captures:{"1":{name:"punctuation.separator.base-integer.erlang"}},match:"30(#)([\\da-tA-T]++_)*[\\da-tA-T]++",name:"constant.numeric.integer.base-30.erlang"},{captures:{"1":{name:"punctuation.separator.base-integer.erlang"}},match:"31(#)([\\da-uA-U]++_)*[\\da-uA-U]++",name:"constant.numeric.integer.base-31.erlang"},{captures:{"1":{name:"punctuation.separator.base-integer.erlang"}},match:"32(#)([\\da-vA-V]++_)*[\\da-vA-V]++",name:"constant.numeric.integer.base-32.erlang"},{captures:{"1":{name:"punctuation.separator.base-integer.erlang"}},match:"33(#)([\\da-wA-W]++_)*[\\da-wA-W]++",name:"constant.numeric.integer.base-33.erlang"},{captures:{"1":{name:"punctuation.separator.base-integer.erlang"}},match:"34(#)([\\da-xA-X]++_)*[\\da-xA-X]++",name:"constant.numeric.integer.base-34.erlang"},{captures:{"1":{name:"punctuation.separator.base-integer.erlang"}},match:"35(#)([\\da-yA-Y]++_)*[\\da-yA-Y]++",name:"constant.numeric.integer.base-35.erlang"},{captures:{"1":{name:"punctuation.separator.base-integer.erlang"}},match:"36(#)([\\da-zA-Z]++_)*[\\da-zA-Z]++",name:"constant.numeric.integer.base-36.erlang"},{match:"\\d++#([\\da-zA-Z]++_)*[\\da-zA-Z]++",name:"invalid.illegal.integer.erlang"},{match:"(\\d++_)*\\d++",name:"constant.numeric.integer.decimal.erlang"}]},"parenthesized-expression":{begin:"(\\()",beginCaptures:{"1":{name:"punctuation.section.expression.begin.erlang"}},end:"(\\))",endCaptures:{"1":{name:"punctuation.section.expression.end.erlang"}},name:"meta.expression.parenthesized",patterns:[{include:"#everything-else"}]},"record-directive":{begin:"^\\s*+(-)\\s*+(record)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(,)",beginCaptures:{"1":{name:"punctuation.section.directive.begin.erlang"},"2":{name:"keyword.control.directive.import.erlang"},"3":{name:"punctuation.definition.parameters.begin.erlang"},"4":{name:"entity.name.type.class.record.definition.erlang"},"5":{name:"punctuation.separator.parameters.erlang"}},end:"(\\))\\s*+(\\.)",endCaptures:{"1":{name:"punctuation.definition.parameters.end.erlang"},"2":{name:"punctuation.section.directive.end.erlang"}},name:"meta.directive.record.erlang",patterns:[{include:"#internal-record-body"},{include:"#comment"}]},"record-usage":{patterns:[{captures:{"1":{name:"keyword.operator.record.erlang"},"2":{name:"entity.name.type.class.record.erlang"},"3":{name:"punctuation.separator.record-field.erlang"},"4":{name:"variable.other.field.erlang"}},match:"(#)\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(\\.)\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')",name:"meta.record-usage.erlang"},{begin:"(#)\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')",beginCaptures:{"1":{name:"keyword.operator.record.erlang"},"2":{name:"entity.name.type.class.record.erlang"}},end:"(?<=\\})",name:"meta.record-usage.erlang",patterns:[{include:"#internal-record-body"}]}]},string:{begin:"(\")",beginCaptures:{"1":{name:"punctuation.definition.string.begin.erlang"}},end:"(\")",endCaptures:{"1":{name:"punctuation.definition.string.end.erlang"}},name:"string.quoted.double.erlang",patterns:[{captures:{"1":{name:"punctuation.definition.escape.erlang"},"3":{name:"punctuation.definition.escape.erlang"}},match:"(\\\\)([bdefnrstv\\\\'\"]|(\\^)[@-_a-z]|[0-7]{1,3}|x[\\da-fA-F]{2})",name:"constant.character.escape.erlang"},{match:"\\\\\\^?.?",name:"invalid.illegal.string.erlang"},{captures:{"1":{name:"punctuation.definition.placeholder.erlang"},"3":{name:"punctuation.separator.placeholder-parts.erlang"},"4":{name:"punctuation.separator.placeholder-parts.erlang"},"6":{name:"punctuation.separator.placeholder-parts.erlang"},"8":{name:"punctuation.separator.placeholder-parts.erlang"},"10":{name:"punctuation.separator.placeholder-parts.erlang"},"12":{name:"punctuation.separator.placeholder-parts.erlang"}},match:"(~)((\\-)?\\d++|(\\*))?((\\.)(\\d++|(\\*)))?((\\.)((\\*)|.))?[~cfegswpWPBX#bx\\+ni]",name:"constant.other.placeholder.erlang"},{captures:{"1":{name:"punctuation.definition.placeholder.erlang"},"2":{name:"punctuation.separator.placeholder-parts.erlang"}},match:"(~)(\\*)?(\\d++)?[~du\\-#fsacl]",name:"constant.other.placeholder.erlang"},{match:"~[^\"]?",name:"invalid.illegal.string.erlang"}]},"symbolic-operator":{match:"\\+\\+|\\+|--|-|\\*|/=|/|=/=|=:=|==|=<|=|<-|<|>=|>|!|::|\\?=",name:"keyword.operator.symbolic.erlang"},"textual-operator":{match:"\\b(andalso|band|and|bxor|xor|bor|orelse|or|bnot|not|bsl|bsr|div|rem)\\b",name:"keyword.operator.textual.erlang"},tuple:{begin:"(\\{)",beginCaptures:{"1":{name:"punctuation.definition.tuple.begin.erlang"}},end:"(\\})",endCaptures:{"1":{name:"punctuation.definition.tuple.end.erlang"}},name:"meta.structure.tuple.erlang",patterns:[{match:",",name:"punctuation.separator.tuple.erlang"},{include:"#everything-else"}]},variable:{captures:{"1":{name:"variable.other.erlang"},"2":{name:"variable.language.omitted.erlang"}},match:"(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+)|(_)"}},scopeName:"source.erlang",uuid:"58EA597D-5158-4BF7-9FB2-B05135D1E166"}; + +export { erlang_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/fish.tmLanguage-f2d0541b.mjs b/docs/shiki/dist/languages/fish.tmLanguage-f2d0541b.mjs new file mode 100644 index 00000000..e2ba6e24 --- /dev/null +++ b/docs/shiki/dist/languages/fish.tmLanguage-f2d0541b.mjs @@ -0,0 +1,3 @@ +var fish_tmLanguage = {$schema:"https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",fileTypes:["fish"],firstLineMatch:"^#!.*\\bfish\\b",foldingStartMarker:"^\\s*(function|while|if|switch|for|begin)\\s.*$",foldingStopMarker:"^\\s*end\\s*$",keyEquivalent:"^~F",name:"fish",patterns:[{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.fish"}},comment:"Double quoted string",end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.fish"}},name:"string.quoted.double.fish",patterns:[{include:"#variable"},{comment:"https://fishshell.com/docs/current/#quotes",match:"\\\\(\\\"|\\$|$|\\\\)",name:"constant.character.escape.fish"}]},{begin:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.fish"}},comment:"Single quoted string",end:"'",endCaptures:{"0":{name:"punctuation.definition.string.end.fish"}},name:"string.quoted.single.fish",patterns:[{comment:"https://fishshell.com/docs/current/#quotes",match:"\\\\('|`|\\\\)",name:"constant.character.escape.fish"}]},{captures:{"1":{name:"punctuation.definition.comment.fish"}},comment:"line comment",match:"(?|\\^|>>|\\^\\^)(&[012\\-])?| # Redirection of stderr\n[012](<|>|>>)(&[012\\-])? # Redirect input/output of file descriptors\n)",name:"keyword.operator.redirect.fish"},{match:"&",name:"keyword.operator.background.fish"},{match:"\\*\\*|\\*|\\?",name:"keyword.operator.glob.fish"},{comment:"command short/long options",match:"\\s(-{1,2}[a-zA-Z_\\-0-9]+|-\\w)\\b",captures:{"1":{name:"source.option.fish"}}},{include:"#variable"},{include:"#escape"}],repository:{"escape":{patterns:[{comment:"single character character escape sequences",match:"\\\\[abefnrtv $*?~#(){}\\[\\]<>^&|;\"']",name:"constant.character.escape.single.fish"},{comment:"escapes the ascii character with the specified value (hexadecimal)",match:"\\\\x[0-9a-fA-F]{1,2}",name:"constant.character.escape.hex-ascii.fish"},{comment:"escapes a byte of data with the specified value (hexadecimal). If you are using mutibyte encoding, this can be used to enter invalid strings. Only use this if you know what are doing.",match:"\\\\X[0-9a-fA-F]{1,2}",name:"constant.character.escape.hex-byte.fish"},{comment:"escapes the ascii character with the specified value (octal)",match:"\\\\[0-7]{1,3}",name:"constant.character.escape.octal.fish"},{comment:"escapes the 16-bit unicode character with the specified value (hexadecimal)",match:"\\\\u[0-9a-fA-F]{1,4}",name:"constant.character.escape.unicode-16-bit.fish"},{comment:"escapes the 32-bit unicode character with the specified value (hexadecimal)",match:"\\\\U[0-9a-fA-F]{1,8}",name:"constant.character.escape.unicode-32-bit.fish"},{comment:"escapes the control sequence generated by pressing the control key and the specified letter",match:"\\\\c[a-zA-Z]",name:"constant.character.escape.control.fish"}]},variable:{patterns:[{comment:"Built-in variables visible by pressing $ TAB TAB in a new shell",captures:{"1":{name:"punctuation.definition.variable.fish"}},match:"(\\$)(argv|CMD_DURATION|COLUMNS|fish_bind_mode|fish_color_autosuggestion|fish_color_cancel|fish_color_command|fish_color_comment|fish_color_cwd|fish_color_cwd_root|fish_color_end|fish_color_error|fish_color_escape|fish_color_hg_added|fish_color_hg_clean|fish_color_hg_copied|fish_color_hg_deleted|fish_color_hg_dirty|fish_color_hg_modified|fish_color_hg_renamed|fish_color_hg_unmerged|fish_color_hg_untracked|fish_color_history_current|fish_color_host|fish_color_host_remote|fish_color_match|fish_color_normal|fish_color_operator|fish_color_param|fish_color_quote|fish_color_redirection|fish_color_search_match|fish_color_selection|fish_color_status|fish_color_user|fish_color_valid_path|fish_complete_path|fish_function_path|fish_greeting|fish_key_bindings|fish_pager_color_completion|fish_pager_color_description|fish_pager_color_prefix|fish_pager_color_progress|fish_pid|fish_prompt_hg_status_added|fish_prompt_hg_status_copied|fish_prompt_hg_status_deleted|fish_prompt_hg_status_modified|fish_prompt_hg_status_order|fish_prompt_hg_status_unmerged|fish_prompt_hg_status_untracked|FISH_VERSION|history|hostname|IFS|LINES|pipestatus|status|umask|version)\\b",name:"variable.language.fish"},{captures:{"1":{name:"punctuation.definition.variable.fish"}},match:"(\\$)[a-zA-Z_][a-zA-Z0-9_]*",name:"variable.other.normal.fish"}]}},scopeName:"source.fish",uuid:"9CA6DB6F-A16F-4836-A058-617C7378775D"}; + +export { fish_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/fsharp.tmLanguage-50c72119.mjs b/docs/shiki/dist/languages/fsharp.tmLanguage-50c72119.mjs new file mode 100644 index 00000000..ee74912c --- /dev/null +++ b/docs/shiki/dist/languages/fsharp.tmLanguage-50c72119.mjs @@ -0,0 +1,3 @@ +var fsharp_tmLanguage = {information_for_contributors:["This file has been converted from https://github.com/ionide/ionide-fsgrammar/blob/master/grammars/fsharp.json","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."],version:"https://github.com/ionide/ionide-fsgrammar/commit/8740e610a367c5e3f15be716acc7207655ced4cf",name:"fsharp",scopeName:"source.fsharp",patterns:[{include:"#compiler_directives"},{include:"#comments"},{include:"#constants"},{include:"#strings"},{include:"#chars"},{include:"#double_tick"},{include:"#definition"},{include:"#abstract_definition"},{include:"#attributes"},{include:"#modules"},{include:"#anonymous_functions"},{include:"#du_declaration"},{include:"#record_declaration"},{include:"#records"},{include:"#strp_inlined"},{include:"#keywords"},{include:"#cexprs"},{include:"#text"}],repository:{strp_inlined_body:{patterns:[{include:"#comments"},{include:"#anonymous_functions"},{match:"(\\^[[:alpha:]0-9'._]+)",captures:{"1":{name:"entity.name.type.fsharp"}}},{name:"keyword.fsharp",match:"\\b(and|when|or)\\b"},{begin:"(\\()",beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},end:"(\\))",endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{include:"#strp_inlined_body"}]},{match:"(static member|member)\\s*([[:alpha:]0-9'`<>^._]+|``[[:alpha:]0-9' <>^._]+``)\\s*(:)",captures:{"1":{name:"keyword.fsharp"},"2":{name:"variable.fsharp"},"3":{name:"keyword.symbol.fsharp"}}},{include:"#compiler_directives"},{include:"#constants"},{include:"#strings"},{include:"#chars"},{include:"#double_tick"},{include:"#keywords"},{include:"#text"},{include:"#definition"},{include:"#attributes"},{include:"#keywords"},{include:"#cexprs"},{include:"#text"}]},strp_inlined:{patterns:[{begin:"(\\()",beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},end:"(\\))",endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{include:"#strp_inlined_body"}]}]},generic_declaration:{patterns:[{comments:"SRTP syntax support",begin:"(:)\\s*(\\()\\s*(static member|member)",beginCaptures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"keyword.symbol.fsharp"},"3":{name:"keyword.fsharp"}},end:"(\\))",endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{begin:"(\\()",beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},end:"(\\))",endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{include:"#member_declaration"}]},{match:"(('|\\^)[[:alpha:]0-9'._]+)",captures:{"1":{name:"entity.name.type.fsharp"}}},{include:"#variables"},{include:"#keywords"}]},{name:"keyword.fsharp",match:"\\b(private|to|public|internal|function|yield!|yield|class|exception|match|delegate|of|new|in|as|if|then|else|elif|for|begin|end|inherit|do|let\\!|return\\!|return|interface|with|abstract|enum|member|try|finally|and|when|or|use|use\\!|struct|while|mutable|assert|base|done|downcast|downto|extern|fixed|global|lazy|upcast|not)(?!')\\b"},{name:"keyword.symbol.fsharp",match:":"},{include:"#constants"},{match:"(('|\\^)[[:alpha:]0-9'._]+)",captures:{"1":{name:"entity.name.type.fsharp"}}},{begin:"(<)",end:"(>)",beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{match:"(('|\\^)[[:alpha:]0-9'._]+)",captures:{"1":{name:"entity.name.type.fsharp"}}},{include:"#tuple_signature"},{include:"#generic_declaration"}]},{begin:"(\\()",end:"(\\))",beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{match:"(([?[:alpha:]0-9'`^._ ]+))+",captures:{"1":{name:"entity.name.type.fsharp"}}},{include:"#tuple_signature"}]},{match:"(?!when|and|or\\b)\\b([\\w0-9'`^._]+)",comments:"Here we need the \\w modifier in order to check that the words are allowed",captures:{"1":{name:"entity.name.type.fsharp"}}},{match:"(\\|)",comments:"Prevent captures of `|>` as a keyword when defining custom operator like `<|>`",captures:{"1":{name:"keyword.symbol.fsharp"}}},{include:"#keywords"}]},anonymous_record_declaration:{begin:"(\\{\\|)",end:"(\\|\\})",beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{match:"[[:alpha:]0-9'`^_ ]+(:)",captures:{"1":{name:"keyword.symbol.fsharp"}}},{match:"([[:alpha:]0-9'`^_ ]+)",captures:{"1":{name:"entity.name.type.fsharp"}}},{include:"#anonymous_record_declaration"},{include:"#keywords"}]},record_signature:{patterns:[{match:"[[:alpha:]0-9'`^_ ]+(=)([[:alpha:]0-9'`^_ ]+)",captures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"variable.parameter.fsharp"}}},{begin:"({)",end:"(})",beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{match:"[[:alpha:]0-9'`^_ ]+(=)([[:alpha:]0-9'`^_ ]+)",captures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"variable.parameter.fsharp"}}},{include:"#record_signature"}]},{include:"#keywords"}]},tuple_signature:{patterns:[{match:"(([?[:alpha:]0-9'`^._ ]+))+",captures:{"1":{name:"entity.name.type.fsharp"}}},{begin:"(\\()",end:"(\\))",beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{match:"(([?[:alpha:]0-9'`^._ ]+))+",captures:{"1":{name:"entity.name.type.fsharp"}}},{include:"#tuple_signature"}]},{include:"#keywords"}]},anonymous_functions:{patterns:[{name:"function.anonymous",begin:"\\b(fun)\\b",end:"(->)",beginCaptures:{"1":{name:"keyword.fsharp"}},endCaptures:{"1":{name:"keyword.symbol.arrow.fsharp"}},patterns:[{include:"#comments"},{begin:"(\\()",end:"\\s*(?=(->))",beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},endCaptures:{"1":{name:"keyword.symbol.arrow.fsharp"}},patterns:[{include:"#member_declaration"}]},{include:"#variables"}]}]},attributes:{patterns:[{name:"support.function.attribute.fsharp",begin:"\\[\\<",end:"\\>\\]|\\]",patterns:[{include:"$self"}]}]},comments:{patterns:[{name:"comment.literate.command.fsharp",match:"(\\(\\*{3}.*\\*{3}\\))",beginCaptures:{"1":{name:"comment.block.fsharp"}}},{name:"comment.block.markdown.fsharp",begin:"^\\s*(\\(\\*\\*(?!\\)))((?!\\*\\)).)*$","while":"^(?!\\s*(\\*)+\\)\\s*$)",beginCaptures:{"1":{name:"comment.block.fsharp"}},endCaptures:{"1":{name:"comment.block.fsharp"}},patterns:[{include:"text.html.markdown"}]},{name:"comment.block.fsharp",begin:"(\\(\\*(?!\\)))",end:"(\\*+\\))",beginCaptures:{"1":{name:"comment.block.fsharp"}},endCaptures:{"1":{name:"comment.block.fsharp"}},patterns:[{comments:"Capture // when inside of (* *) like that the rule which capture comments starting by // is not trigger. See https://github.com/ionide/ionide-fsgrammar/issues/155",name:"fast-capture.comment.line.double-slash.fsharp",match:"//"},{include:"#comments"}]},{name:"comment.block.markdown.fsharp.end",match:"((?\\])?\\s*([_[:alpha:]0-9,\\._`\\s]+)(:)",end:"\\s*(with)\\b|=|$",beginCaptures:{"1":{name:"keyword.fsharp"},"2":{name:"keyword.fsharp"},"3":{name:"support.function.attribute.fsharp"},"5":{name:"keyword.symbol.fsharp"}},endCaptures:{"1":{name:"keyword.fsharp"}},patterns:[{include:"#comments"},{include:"#common_declaration"},{match:"(\\?{0,1})([[:alpha:]0-9'`^._ ]+)\\s*(:)((?!with\\b)\\b([\\w0-9'`^._ ]+)){0,1}",captures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"variable.parameter.fsharp"},"3":{name:"keyword.symbol.fsharp"},"4":{name:"entity.name.type.fsharp"}}},{match:"(?!with|get|set\\b)\\b([\\w0-9'`^._]+)",comments:"Here we need the \\w modifier in order to check that the words isn't blacklisted",captures:{"1":{name:"entity.name.type.fsharp"}}},{include:"#keywords"}]},common_binding_definition:{patterns:[{include:"#comments"},{include:"#attributes"},{comments:"SRTP syntax support",begin:"(:)\\s*(\\()\\s*(static member|member)",beginCaptures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"keyword.symbol.fsharp"},"3":{name:"keyword.fsharp"}},end:"(\\))\\s*((?=,)|(?=\\=))",endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{match:"(\\^[[:alpha:]0-9'._]+)",captures:{"1":{name:"entity.name.type.fsharp"}}},{include:"#variables"},{include:"#keywords"}]},{begin:"(:)\\s*(\\()",beginCaptures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"keyword.symbol.fsharp"}},end:"(\\)\\s*(([?[:alpha:]0-9'`^._ ]*)))",endCaptures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"entity.name.type.fsharp"}},patterns:[{include:"#tuple_signature"}]},{begin:"(:)\\s*(\\^[[:alpha:]0-9'._]+)\\s*(when)",beginCaptures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"entity.name.type.fsharp"},"3":{name:"keyword.fsharp"}},end:"(?=:)",endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{name:"keyword.fsharp",match:"\\b(and|when|or)\\b"},{comment:"Because we first capture the keywords, we can capture what looks like a word and assume it's an entity definition",match:"([[:alpha:]0-9'^._]+)",captures:{"1":{name:"entity.name.type.fsharp"}}},{name:"keyword.symbol.fsharp",match:"(\\(|\\))"}]},{match:"(:)\\s*([?[:alpha:]0-9'`^._ ]+)",captures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"entity.name.type.fsharp"}}},{match:"(->)\\s*(\\()?\\s*([?[:alpha:]0-9'`^._ ]+)*",captures:{"1":{name:"keyword.symbol.arrow.fsharp"},"2":{name:"keyword.symbol.fsharp"},"3":{name:"entity.name.type.fsharp"}}},{begin:"(\\*)\\s*(\\()",beginCaptures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"keyword.symbol.fsharp"}},end:"(\\)\\s*(([?[:alpha:]0-9'`^._ ]+))+)",endCaptures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"entity.name.type.fsharp"}},patterns:[{include:"#tuple_signature"}]},{begin:"(\\*)(\\s*([?[:alpha:]0-9'`^._ ]+))*",beginCaptures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"entity.name.type.fsharp"}},end:"(?==)|(?=\\))",endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{include:"#tuple_signature"}]},{begin:"(<+(?![[:space:]]*\\)))",beginComment:"The group (?![[:space:]]*\\) is for protection against overload operator. static member (<)",end:"((?|\\))",endComment:"The group (? when using SRTP synthax",beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{include:"#generic_declaration"}]},{include:"#anonymous_record_declaration"},{begin:"({)",end:"(})",beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{include:"#record_signature"}]},{include:"#definition"},{include:"#variables"},{include:"#keywords"}]},definition:{patterns:[{name:"binding.fsharp",begin:"\\b(let mutable|static let mutable|static let|let inline|let|and|member val|static member inline|static member|default|member|override|let!)(\\s+rec|mutable)?(\\s+\\[\\<.*\\>\\])?\\s*(private|internal|public)?\\s+(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9\\._`\\s]+|(?<=,)\\s)*)?",end:"\\s*((with\\b)|(=|\\n+=|(?<=\\=)))",beginCaptures:{"1":{name:"keyword.fsharp"},"2":{name:"keyword.fsharp"},"3":{name:"support.function.attribute.fsharp"},"4":{name:"storage.modifier.fsharp"},"5":{name:"variable.fsharp"}},endCaptures:{"2":{name:"keyword.fsharp"},"3":{name:"keyword.symbol.fsharp"}},patterns:[{include:"#common_binding_definition"}]},{name:"binding.fsharp",begin:"\\b(use|use!|and|and!)\\s+(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9\\._`\\s]+|(?<=,)\\s)*)?",end:"\\s*(=)",beginCaptures:{"1":{name:"keyword.fsharp"}},endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{include:"#common_binding_definition"}]},{name:"binding.fsharp",begin:"(?<=with|and)\\s*\\b((get|set)\\s*(?=\\())(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9\\._`\\s]+|(?<=,)\\s)*)?",end:"\\s*(=|\\n+=|(?<=\\=))",beginCaptures:{"4":{name:"variable.fsharp"}},endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{include:"#common_binding_definition"}]},{name:"binding.fsharp",begin:"\\b(static val mutable|val mutable|val)(\\s+rec|mutable)?(\\s+\\[\\<.*\\>\\])?\\s*(private|internal|public)?\\s+(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9,\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9,\\._`\\s]+|(?<=,)\\s)*)?",end:"\\n$",beginCaptures:{"1":{name:"keyword.fsharp"},"2":{name:"keyword.fsharp"},"3":{name:"support.function.attribute.fsharp"},"4":{name:"storage.modifier.fsharp"},"5":{name:"variable.fsharp"}},patterns:[{include:"#common_binding_definition"}]},{name:"binding.fsharp",begin:"\\b(new)\\b\\s+(\\()",end:"(\\))",beginCaptures:{"1":{name:"keyword.fsharp"},"2":{name:"keyword.symbol.fsharp"}},endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{include:"#common_binding_definition"}]}]},du_declaration:{patterns:[{name:"du_declaration.fsharp",begin:"\\b(of)\\b",end:"$|(\\|)",beginCaptures:{"1":{name:"keyword.fsharp"}},endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{include:"#comments"},{match:"([[:alpha:]0-9'`<>^._]+|``[[:alpha:]0-9' <>^._]+``)\\s*(:)\\s*([[:alpha:]0-9'`<>^._]+|``[[:alpha:]0-9' <>^._]+``)",captures:{"1":{name:"variable.parameter.fsharp"},"2":{name:"keyword.symbol.fsharp"},"3":{name:"entity.name.type.fsharp"}}},{match:"(``([[:alpha:]0-9'^._ ]+)``|[[:alpha:]0-9'`^._]+)",captures:{"1":{name:"entity.name.type.fsharp"}}},{include:"#anonymous_record_declaration"},{include:"#keywords"}]}]},keywords:{patterns:[{name:"storage.modifier",match:"\\b(private|public|internal)\\b"},{name:"keyword.fsharp",match:"\\b(private|to|public|internal|function|class|exception|delegate|of|new|as|begin|end|inherit|let!|interface|abstract|enum|member|and|when|or|use|use\\!|struct|mutable|assert|base|done|downcast|downto|extern|fixed|global|lazy|upcast|not)(?!')\\b"},{name:"keyword.control",match:"\\b(match|yield|yield!|with|if|then|else|elif|for|in|return!|return|try|finally|while|do)(?!')\\b"},{name:"keyword.symbol.arrow.fsharp",match:"(\\->|\\<\\-)"},{name:"keyword.symbol.fsharp",match:"(&&&|\\|\\|\\||\\^\\^\\^|~~~|<<<|>>>|\\|>|:>|:\\?>|:|\\[|\\]|\\;|<>|=|@|\\|\\||&&|{|}|\\||_|\\.\\.|\\,|\\+|\\-|\\*|\\/|\\^|\\!|\\>|\\>\\=|\\>\\>|\\<|\\<\\=|\\(|\\)|\\<\\<)"}]},modules:{patterns:[{name:"entity.name.section.fsharp",begin:"\\b(namespace global)|\\b(namespace|module)\\s*(public|internal|private|rec)?\\s+([[:alpha:]][[:alpha:]0-9'_. ]*)",end:"(\\s?=|\\s|$)",beginCaptures:{"1":{name:"keyword.fsharp"},"2":{name:"keyword.fsharp"},"3":{name:"storage.modifier.fsharp"},"4":{name:"entity.name.section.fsharp"}},endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{name:"entity.name.section.fsharp",match:"(\\.)([A-Z][[:alpha:]0-9'_]*)",captures:{"1":{name:"punctuation.separator.namespace-reference.fsharp"},"2":{name:"entity.name.section.fsharp"}}}]},{name:"namespace.open.fsharp",begin:"\\b(open type|open)\\s+([[:alpha:]][[:alpha:]0-9'_]*)(?=(\\.[A-Z][[:alpha:]0-9_]*)*)",end:"(\\s|$)",beginCaptures:{"1":{name:"keyword.fsharp"},"2":{name:"entity.name.section.fsharp"}},patterns:[{name:"entity.name.section.fsharp",match:"(\\.)([[:alpha:]][[:alpha:]0-9'_]*)",captures:{"1":{name:"punctuation.separator.namespace-reference.fsharp"},"2":{name:"entity.name.section.fsharp"}}},{include:"#comments"}]},{name:"namespace.alias.fsharp",begin:"^\\s*(module)\\s+([A-Z][[:alpha:]0-9'_]*)\\s*(=)\\s*([A-Z][[:alpha:]0-9'_]*)",end:"(\\s|$)",beginCaptures:{"1":{name:"keyword.fsharp"},"2":{name:"entity.name.type.namespace.fsharp"},"3":{name:"keyword.symbol.fsharp"},"4":{name:"entity.name.section.fsharp"}},patterns:[{name:"entity.name.section.fsharp",match:"(\\.)([A-Z][[:alpha:]0-9'_]*)",captures:{"1":{name:"punctuation.separator.namespace-reference.fsharp"},"2":{name:"entity.name.section.fsharp"}}}]}]},strings:{patterns:[{name:"string.quoted.literal.fsharp",begin:"(?=[^\\\\])(@\")",end:"(\")(?!\")",beginCaptures:{"1":{name:"punctuation.definition.string.begin.fsharp"}},endCaptures:{"1":{name:"punctuation.definition.string.end.fsharp"}},patterns:[{name:"constant.character.string.escape.fsharp",match:"\"(\")"}]},{name:"string.quoted.triple.fsharp",begin:"(?=[^\\\\])(\"\"\")",end:"(\"\"\")",beginCaptures:{"1":{name:"punctuation.definition.string.begin.fsharp"}},endCaptures:{"1":{name:"punctuation.definition.string.end.fsharp"}},patterns:[{include:"#string_formatter"}]},{name:"string.quoted.double.fsharp",begin:"(?=[^\\\\])(\")",end:"(\")",beginCaptures:{"1":{name:"punctuation.definition.string.begin.fsharp"}},endCaptures:{"1":{name:"punctuation.definition.string.end.fsharp"}},patterns:[{name:"punctuation.separator.string.ignore-eol.fsharp",match:"\\\\$[ \\t]*"},{name:"constant.character.string.escape.fsharp",match:"\\\\(['\"\\\\abfnrtv]|([01][0-9][0-9]|2[0-4][0-9]|25[0-5])|(x[0-9a-fA-F]{2})|(u[0-9a-fA-F]{4})|(U00(0[0-9a-fA-F]|10)[0-9a-fA-F]{4}))"},{name:"invalid.illegal.character.string.fsharp",match:"\\\\(([0-9]{1,3})|(x[^\\s]{0,2})|(u[^\\s]{0,4})|(U[^\\s]{0,8})|[^\\s])"},{include:"#string_formatter"}]}]},string_formatter:{patterns:[{name:"entity.name.type.format.specifier.fsharp",match:"(%0?-?(\\d+)?((a|t)|(\\.\\d+)?(f|F|e|E|g|G|M)|(b|c|s|d|i|x|X|o|u)|(s|b|O)|(\\+?A)))",captures:{"1":{name:"keyword.format.specifier.fsharp"}}}]},variables:{patterns:[{name:"keyword.symbol.fsharp",match:"\\(\\)"},{match:"(\\?{0,1})(``[[:alpha:]0-9'`^:,._ ]+``|(?!private\\b)\\b[\\w[:alpha:]0-9'`<>^._ ]+)",captures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"variable.parameter.fsharp"}}}]},common_declaration:{patterns:[{begin:"\\s*(->)\\s*([[:alpha:]0-9'`^._ ]+)(<)",end:"(>)",beginCaptures:{"1":{name:"keyword.symbol.arrow.fsharp"},"2":{name:"entity.name.type.fsharp"},"3":{name:"keyword.symbol.fsharp"}},endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{match:"([[:alpha:]0-9'`^._ ]+)",captures:{"1":{name:"entity.name.type.fsharp"}}},{include:"#keywords"}]},{match:"\\s*(->)\\s*(?!with|get|set\\b)\\b([\\w0-9'`^._]+)",captures:{"1":{name:"keyword.symbol.arrow.fsharp"},"2":{name:"entity.name.type.fsharp"}}},{include:"#anonymous_record_declaration"},{begin:"(\\?{0,1})([[:alpha:]0-9'`^._ ]+)\\s*(:)(\\s*([?[:alpha:]0-9'`^._ ]+)(<))",end:"(>)",beginCaptures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"variable.parameter.fsharp"},"3":{name:"keyword.symbol.fsharp"},"4":{name:"keyword.symbol.fsharp"},"5":{name:"entity.name.type.fsharp"}},endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{match:"([[:alpha:]0-9'`^._ ]+)",captures:{"1":{name:"entity.name.type.fsharp"}}},{include:"#keywords"}]}]},member_declaration:{patterns:[{include:"#comments"},{include:"#common_declaration"},{comments:"SRTP syntax support",begin:"(:)\\s*(\\()\\s*(static member|member)",beginCaptures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"keyword.symbol.fsharp"},"3":{name:"keyword.fsharp"}},end:"(\\))\\s*((?=,)|(?=\\=))",endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{begin:"(\\()",beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},end:"(\\))",endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{include:"#member_declaration"}]},{match:"(\\^[[:alpha:]0-9'._]+)",captures:{"1":{name:"entity.name.type.fsharp"}}},{include:"#variables"},{include:"#keywords"}]},{match:"(\\^[[:alpha:]0-9'._]+)",captures:{"1":{name:"entity.name.type.fsharp"}}},{name:"keyword.fsharp",match:"\\b(and|when|or)\\b"},{name:"keyword.symbol.fsharp",match:"(\\(|\\))"},{match:"(\\?{0,1})([[:alpha:]0-9'`^._]+|``[[:alpha:]0-9'`^:,._ ]+``)\\s*(:{0,1})(\\s*([?[:alpha:]0-9'`<>._ ]+)){0,1}",captures:{"1":{name:"keyword.symbol.fsharp"},"2":{name:"variable.parameter.fsharp"},"3":{name:"keyword.symbol.fsharp"},"4":{name:"entity.name.type.fsharp"}}},{include:"#keywords"}]},double_tick:{patterns:[{name:"variable.other.binding.fsharp",match:"(``)([^`]*)(``)",captures:{"1":{name:"string.quoted.single.fsharp"},"2":{name:"variable.other.binding.fsharp"},"3":{name:"string.quoted.single.fsharp"}}}]},records:{patterns:[{name:"record.fsharp",begin:"\\b(type)[\\s]+(private|internal|public)?\\s*",end:"\\s*((with)|((as)\\s+([[:alpha:]0-9']+))|(=)|[\\n=]|(\\(\\)))",beginCaptures:{"1":{name:"keyword.fsharp"},"2":{name:"storage.modifier.fsharp"}},endCaptures:{"2":{name:"keyword.fsharp"},"3":{name:"keyword.fsharp"},"4":{name:"keyword.fsharp"},"5":{name:"variable.parameter.fsharp"},"6":{name:"keyword.symbol.fsharp"},"7":{name:"keyword.symbol.fsharp"}},patterns:[{include:"#comments"},{include:"#attributes"},{match:"([[:alpha:]0-9'^._]+|``[[:alpha:]0-9'`^:,._ ]+``)",captures:{"1":{name:"entity.name.type.fsharp"}}},{begin:"(<)",end:"((?)",beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{match:"(('|\\^)``[[:alpha:]0-9`^:,._ ]+``|('|\\^)[[:alpha:]0-9`^:._]+)",captures:{"1":{name:"entity.name.type.fsharp"}}},{name:"keyword.fsharp",match:"\\b(interface|with|abstract|and|when|or|not|struct|equality|comparison|unmanaged|delegate|enum)\\b"},{begin:"(\\()",end:"(\\))",beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{match:"(static member|member|new)",captures:{"1":{name:"keyword.fsharp"}}},{include:"#common_binding_definition"}]},{match:"([\\w0-9'`^._]+)",comments:"Here we need the \\w modifier in order to check that the words isn't blacklisted",captures:{"1":{name:"entity.name.type.fsharp"}}},{include:"#keywords"}]},{match:"\\s*(private|internal|public)",captures:{"1":{name:"storage.modifier.fsharp"}}},{begin:"(\\()",end:"\\s*(?=(=)|[\\n=]|(\\(\\))|(as))",beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},endCaptures:{"1":{name:"keyword.symbol.fsharp"}},patterns:[{include:"#member_declaration"}]},{include:"#keywords"}]}]},record_declaration:{patterns:[{begin:"(\\{)",beginCaptures:{"1":{name:"keyword.symbol.fsharp"}},end:"(?<=\\})",patterns:[{include:"#comments"},{begin:"(((mutable)\\s[[:alpha:]]+)|[[:alpha:]0-9'`<>^._]*)\\s*((?=|==|<|>|!=",name:"keyword.operator.comparison.gdscript"},arithmetic_op:{match:"\\+=|-=|\\*=|/=|%=|&=|\\|=|\\*|/|%|\\+|-|<<|>>|&|\\||\\^|~",name:"keyword.operator.arithmetic.gdscript"},assignment_op:{match:"=",name:"keyword.operator.assignment.gdscript"},control_flow:{match:"\\b(?i:if|elif|else|for|while|break|continue|pass|return|match|yield|await)\\b",name:"keyword.control.gdscript"},keywords:{match:"\\b(?i:class|class_name|extends|is|onready|tool|static|export|as|void|enum|preload|assert|breakpoint|rpc|sync|remote|master|puppet|slave|remotesync|mastersync|puppetsync|trait|namespace)\\b",name:"keyword.language.gdscript"},letter:{match:"\\b(?i:true|false|null)\\b",name:"constant.language.gdscript"},numbers:{patterns:[{match:"\\b(?i:0x\\h*)\\b",name:"constant.numeric.integer.hexadecimal.gdscript"},{match:"\\b(?i:(\\d+\\.\\d*(e[\\-\\+]?\\d+)?))\\b",name:"constant.numeric.float.gdscript"},{match:"\\b(?i:(\\.\\d+(e[\\-\\+]?\\d+)?))\\b",name:"constant.numeric.float.gdscript"},{match:"\\b(?i:(\\d+e[\\-\\+]?\\d+))\\b",name:"constant.numeric.float.gdscript"},{match:"\\b\\d+\\b",name:"constant.numeric.integer.gdscript"}]},variable_definition:{begin:"\\b(?:(var)|(const))\\s+",end:"$|;",beginCaptures:{"1":{name:"storage.type.var.gdscript"},"2":{name:"storage.type.const.gdscript"}},patterns:[{match:"(:)\\s*([a-zA-Z_]\\w*)?",captures:{"1":{name:"punctuation.separator.annotation.gdscript"},"2":{name:"entity.name.type.class.gdscript"}}},{match:"=(?!=)",name:"keyword.operator.assignment.gdscript"},{match:"(setget)\\s+([a-zA-Z_]\\w*)(?:[,]\\s*([a-zA-Z_]\\w*))?",captures:{"1":{name:"storage.type.const.gdscript"},"2":{name:"entity.name.function.gdscript"},"3":{name:"entity.name.function.gdscript"}}},{include:"#base_expression"}]},getter_setter_godot4:{patterns:[{match:"\\b(get):",captures:{"1":{name:"entity.name.function.gdscript"}}},{name:"meta.function.gdscript",begin:"(?x) \\s+\n (set) \\s*\n (?=\\()",end:"(:|(?=[#'\"\\n]))",beginCaptures:{"1":{name:"entity.name.function.gdscript"}},patterns:[{include:"#parameters"},{include:"#line_continuation"},{match:"\\s*(\\-\\>)\\s*([a-zA-Z_]\\w*)\\s*\\:",captures:{"1":{},"2":{name:"entity.name.type.class.gdscript"}}}]}]},class_definition:{captures:{"1":{name:"entity.name.type.class.gdscript"},"2":{name:"class.other.gdscript"}},match:"(?<=^class)\\s+([a-zA-Z_]\\w*)\\s*(?=:)"},class_new:{captures:{"1":{name:"entity.name.type.class.gdscript"},"2":{name:"storage.type.new.gdscript"}},match:"\\b([a-zA-Z_]\\w*).(new)\\("},class_is:{captures:{"1":{name:"storage.type.is.gdscript"},"2":{name:"entity.name.type.class.gdscript"}},match:"\\s+(is)\\s+([a-zA-Z_]\\w*)"},class_enum:{captures:{"1":{name:"entity.name.type.class.gdscript"},"2":{name:"constant.language.gdscript"}},match:"\\b([A-Z][a-zA-Z_0-9]*)\\.([A-Z_0-9]+)"},class_name:{captures:{"1":{name:"entity.name.type.class.gdscript"},"2":{name:"class.other.gdscript"}},match:"(?<=class_name)\\s+([a-zA-Z_]\\w*(\\.([a-zA-Z_]\\w*))?)"},"extends":{match:"(?<=extends)\\s+[a-zA-Z_]\\w*(\\.([a-zA-Z_]\\w*))?",name:"entity.other.inherited-class.gdscript"},builtin_func:{match:"(?)\\s*([a-zA-Z_]\\w*)\\s*\\:",captures:{"1":{},"2":{name:"entity.name.type.class.gdscript"}}}]},lambda_declaration:{name:"meta.function.gdscript",begin:"(func)(?=\\()",end:"(:|(?=[#'\"\\n]))",beginCaptures:{"1":{name:"storage.type.function.gdscript"},"2":{name:"entity.name.function.gdscript"}},patterns:[{include:"#parameters"},{include:"#line_continuation"}]},function_declaration:{name:"meta.function.gdscript",begin:"(?x) \\s*\n (func) \\s+\n ([a-zA-Z_]\\w*) \\s*\n (?=\\()",end:"((:)|(?=[#'\"\\n]))",beginCaptures:{"1":{name:"storage.type.function.gdscript"},"2":{name:"entity.name.function.gdscript"}},endCaptures:{"1":{name:"punctuation.section.function.begin.gdscript"}},patterns:[{include:"#parameters"},{include:"#line_continuation"},{match:"\\s*(\\-\\>)\\s*([a-zA-Z_]\\w*)\\s*\\:",captures:{"1":{},"2":{name:"entity.name.type.class.gdscript"}}},{include:"#base_expression"}]},function_keyword:{match:"func",name:"keyword.language.gdscript"},parameters:{name:"meta.function.parameters.gdscript",begin:"(\\()",end:"(\\))",beginCaptures:{"1":{name:"punctuation.definition.parameters.begin.gdscript"}},endCaptures:{"1":{name:"punctuation.definition.parameters.end.gdscript"}},patterns:[{include:"#annotated_parameter"},{match:"(?x)\n ([a-zA-Z_]\\w*)\n \\s* (?: (,) | (?=[)#\\n=]))\n",captures:{"1":{name:"variable.parameter.function.language.gdscript"},"2":{name:"punctuation.separator.parameters.gdscript"}}},{include:"#comment"},{include:"#loose_default"}]},loose_default:{begin:"(=)",end:"(,)|(?=\\))",beginCaptures:{"1":{name:"keyword.operator.gdscript"}},endCaptures:{"1":{name:"punctuation.separator.parameters.gdscript"}},patterns:[{include:"#base_expression"}]},annotated_parameter:{begin:"(?x)\n \\b\n ([a-zA-Z_]\\w*) \\s* (:)\n",end:"(,)|(?=\\))",beginCaptures:{"1":{name:"variable.parameter.function.language.gdscript"},"2":{name:"punctuation.separator.annotation.gdscript"}},endCaptures:{"1":{name:"punctuation.separator.parameters.gdscript"}},patterns:[{include:"#base_expression"},{name:"keyword.operator.assignment.gdscript",match:"=(?!=)"}]},line_continuation:{patterns:[{match:"(\\\\)\\s*(\\S.*$\\n?)",captures:{"1":{name:"punctuation.separator.continuation.line.gdscript"},"2":{name:"invalid.illegal.line.continuation.gdscript"}}},{begin:"(\\\\)\\s*$\\n?",end:"(?x)\n (?=^\\s*$)\n |\n (?! (\\s* [rR]? (\\'\\'\\'|\\\"\\\"\\\"|\\'|\\\"))\n |\n (\\G $) (?# '\\G' is necessary for ST)\n )\n",beginCaptures:{"1":{name:"punctuation.separator.continuation.line.gdscript"}},patterns:[{include:"#base_expression"}]}]},any_method:{match:"\\b([A-Za-z_]\\w*)\\b(?=\\s*(?:[(]))",name:"support.function.any-method.gdscript"},any_property:{match:"(?<=[^.]\\.)\\b([A-Za-z_]\\w*)\\b(?![(])",name:"variable.other.property.gdscript"},function_call:{name:"meta.function-call.gdscript",comment:"Regular function call of the type \"name(args)\"",begin:"(?x)\n \\b(?=\n ([a-zA-Z_]\\w*) \\s* (\\()\n )\n",end:"(\\))",endCaptures:{"1":{name:"punctuation.definition.arguments.end.gdscript"}},patterns:[{include:"#function_name"},{include:"#function_arguments"}]},function_name:{patterns:[{include:"#builtin_func"},{include:"#builtin_classes"},{comment:"Some color schemas support meta.function-call.generic scope",name:"support.function.any-method.gdscript",match:"(?x)\n \\b ([a-zA-Z_]\\w*) \\b\n"}]},function_arguments:{begin:"(\\()",end:"(?=\\))(?!\\)\\s*\\()",beginCaptures:{"1":{name:"punctuation.definition.arguments.begin.gdscript"}},contentName:"meta.function-call.arguments.gdscript",patterns:[{name:"punctuation.separator.arguments.gdscript",match:"(,)"},{match:"\\b([a-zA-Z_]\\w*)\\s*(=)(?!=)",captures:{"1":{name:"variable.parameter.function-call.gdscript"},"2":{name:"keyword.operator.assignment.gdscript"}}},{name:"keyword.operator.assignment.gdscript",match:"=(?!=)"},{include:"#base_expression"},{match:"\\s*(\\))\\s*(\\()",captures:{"1":{name:"punctuation.definition.arguments.end.gdscript"},"2":{name:"punctuation.definition.arguments.begin.gdscript"}}}]}}}; + +export { gdscript_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/gdshader.tmLanguage-2e198d22.mjs b/docs/shiki/dist/languages/gdshader.tmLanguage-2e198d22.mjs new file mode 100644 index 00000000..82fd1b65 --- /dev/null +++ b/docs/shiki/dist/languages/gdshader.tmLanguage-2e198d22.mjs @@ -0,0 +1,3 @@ +var gdshader_tmLanguage = {name:"gdshader",scopeName:"source.gdshader",uuid:"3a95d25d-688b-481f-a581-eee47f00e5ca",fileTypes:["gdshader"],patterns:[{include:"#any"}],repository:{any:{patterns:[{include:"#comment"},{include:"#enclosed"},{include:"#classifier"},{include:"#definition"},{include:"#keyword"},{include:"#element"},{include:"#separator"},{include:"#operator"}]},comment:{patterns:[{include:"#commentLine"},{include:"#commentBlock"}]},commentLine:{name:"comment.line.double-slash.gdshader",begin:"//",end:"$"},commentBlock:{name:"comment.block.gdshader",begin:"/\\*",end:"\\*/"},enclosed:{name:"meta.parenthesis.gdshader",begin:"\\(",end:"\\)",captures:{"0":{name:"punctuation.parenthesis.gdshader"}},patterns:[{include:"#any"}]},classifier:{name:"meta.classifier.gdshader",begin:"(?=\\b(?:shader_type|render_mode)\\b)",patterns:[{include:"#comment"},{include:"#keyword"},{include:"#identifierClassification"},{include:"#separator"}],end:"(?<=;)"},classifierKeyword:{name:"keyword.language.classifier.gdshader",match:"\\b(?:shader_type|render_mode)\\b"},identifierClassification:{name:"entity.other.inherited-class.gdshader",match:"\\b[a-z_]+\\b"},definition:{patterns:[{include:"#structDefinition"}]},arraySize:{name:"meta.array-size.gdshader",begin:"\\[",end:"\\]",captures:{"0":{name:"punctuation.bracket.gdshader"}},patterns:[{include:"#comment"},{include:"#keyword"},{include:"#element"},{include:"#separator"}]},structDefinition:{begin:"(?=\\b(?:struct)\\b)",patterns:[{include:"#comment"},{include:"#keyword"},{include:"#structName"},{include:"#structDefinitionBlock"},{include:"#separator"}],end:"(?<=;)"},structKeyword:{name:"keyword.other.struct.gdshader",match:"\\b(?:struct)\\b"},structName:{name:"entity.name.type.struct.gdshader",match:"\\b[a-zA-Z_]\\w*\\b"},structDefinitionBlock:{name:"meta.definition.block.struct.gdshader",begin:"\\{",end:"\\}",captures:{"0":{name:"punctuation.definition.block.struct.gdshader"}},patterns:[{include:"#comment"},{include:"#precisionKeyword"},{include:"#fieldDefinition"},{include:"#keyword"},{include:"#any"}]},fieldDefinition:{name:"meta.definition.field.gdshader",begin:"\\b[a-zA-Z_]\\w*\\b",beginCaptures:{"0":{patterns:[{include:"#typeKeyword"},{match:".+",name:"entity.name.type.gdshader"}]}},patterns:[{include:"#comment"},{include:"#keyword"},{include:"#arraySize"},{include:"#fieldName"},{include:"#any"}],end:"(?<=;)"},fieldName:{name:"entity.name.variable.field.gdshader",match:"\\b[a-zA-Z_]\\w*\\b"},keyword:{patterns:[{include:"#classifierKeyword"},{include:"#structKeyword"},{include:"#controlKeyword"},{include:"#modifierKeyword"},{include:"#precisionKeyword"},{include:"#typeKeyword"},{include:"#hintKeyword"}]},controlKeyword:{name:"keyword.control.gdshader",match:"\\b(?:if|else|do|while|for|continue|break|switch|case|default|return|discard)\\b"},modifierKeyword:{name:"storage.modifier.gdshader",match:"\\b(?:const|global|instance|uniform|varying|in|out|inout|flat|smooth)\\b"},precisionKeyword:{name:"storage.type.built-in.primitive.precision.gdshader",match:"\\b(?:low|medium|high)p\\b"},typeKeyword:{name:"support.type.gdshader",match:"\\b(?:void|bool|[biu]?vec[234]|u?int|float|mat[234]|[iu]?sampler(?:3D|2D(?:Array)?)|samplerCube)\\b"},hintKeyword:{name:"support.type.annotation.gdshader",match:"\\b(?:source_color|hint_(?:color|range|(?:black_)?albedo|normal|(?:default_)?(?:white|black)|aniso|anisotropy|roughness_(?:[rgba]|normal|gray))|filter_(?:nearest|linear)(?:_mipmap(?:_anisotropic)?)?|repeat_(?:en|dis)able)\\b"},element:{patterns:[{include:"#literalFloat"},{include:"#literalInt"},{include:"#literalBool"},{include:"#identifierType"},{include:"#constructor"},{include:"#processorFunction"},{include:"#identifierFunction"},{include:"#swizzling"},{include:"#identifierField"},{include:"#constantFloat"},{include:"#languageVariable"},{include:"#identifierVariable"}]},literalFloat:{name:"constant.numeric.float.gdshader",match:"\\b(?:\\d+[eE][-+]?\\d+|(?:\\d*[.]\\d+|\\d+[.])(?:[eE][-+]?\\d+)?)[fF]?"},literalInt:{name:"constant.numeric.integer.gdshader",match:"\\b(?:0[xX][0-9A-Fa-f]+|\\d+[uU]?)\\b"},literalBool:{name:"constant.language.boolean.gdshader",match:"\\b(?:false|true)\\b"},identifierType:{name:"entity.name.type.gdshader",match:"\\b[a-zA-Z_]\\w*(?=(?:\\s*\\[\\s*\\w*\\s*\\])?\\s+[a-zA-Z_]\\w*\\b)"},constructor:{name:"entity.name.type.constructor.gdshader",match:"\\b[a-zA-Z_]\\w*(?=\\s*\\[\\s*\\w*\\s*\\]\\s*[(])|\\b[A-Z]\\w*(?=\\s*[(])"},processorFunction:{name:"support.function.gdshader",match:"\\b(?:vertex|fragment|light|start|process|sky|fog)(?=(?:\\s|/\\*(?:\\*(?!/)|[^*])*\\*/)*[(])"},identifierFunction:{name:"entity.name.function.gdshader",match:"\\b[a-zA-Z_]\\w*(?=(?:\\s|/\\*(?:\\*(?!/)|[^*])*\\*/)*[(])"},swizzling:{match:"([.])\\s*([xyzw]{2,4}|[rgba]{2,4}|[stpq]{2,4})\\b",captures:{"1":{name:"punctuation.accessor.gdshader"},"2":{name:"variable.other.property.gdshader"}}},identifierField:{match:"([.])\\s*([a-zA-Z_]\\w*)\\b(?!\\s*\\()",captures:{"1":{name:"punctuation.accessor.gdshader"},"2":{name:"entity.name.variable.field.gdshader"}}},constantFloat:{name:"constant.language.float.gdshader",match:"\\b(?:E|PI|TAU)\\b"},languageVariable:{name:"variable.language.gdshader",match:"\\b(?:[A-Z][A-Z_0-9]*)\\b"},identifierVariable:{name:"variable.name.gdshader",match:"\\b[a-zA-Z_]\\w*\\b"},separator:{patterns:[{match:"[.]",name:"punctuation.accessor.gdshader"},{include:"#separatorComma"},{match:"[;]",name:"punctuation.terminator.statement.gdshader"},{match:"[:]",name:"keyword.operator.type.annotation.gdshader"}]},separatorComma:{name:"punctuation.separator.comma.gdshader",match:"[,]"},operator:{name:"keyword.operator.gdshader",match:"\\<\\<\\=?|\\>\\>\\=?|[-+*/&|<>=!]\\=|\\&\\&|[|][|]|[-+~!*/%<>&^|=]"}}}; + +export { gdshader_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/gherkin.tmLanguage-00b58be8.mjs b/docs/shiki/dist/languages/gherkin.tmLanguage-00b58be8.mjs new file mode 100644 index 00000000..767891ac --- /dev/null +++ b/docs/shiki/dist/languages/gherkin.tmLanguage-00b58be8.mjs @@ -0,0 +1,3 @@ +var gherkin_tmLanguage = {fileTypes:["feature"],firstLineMatch:"기능|機能|功能|フィーチャ|خاصية|תכונה|Функціонал|Функционалност|Функционал|Особина|Функция|Функциональность|Свойство|Могућност|Özellik|Właściwość|Tính năng|Savybė|Požiadavka|Požadavek|Osobina|Ominaisuus|Omadus|OH HAI|Mogućnost|Mogucnost|Jellemző|Fīča|Funzionalità|Funktionalität|Funkcionalnost|Funkcionalitāte|Funcționalitate|Functionaliteit|Functionalitate|Funcionalitat|Funcionalidade|Fonctionnalité|Fitur|Ability|Business Need|Feature|Egenskap|Egenskab|Crikey|Característica|Arwedd(.*)",foldingStartMarker:"^\\s*\\b(예|시나리오 개요|시나리오|배경|背景|場景大綱|場景|场景大纲|场景|劇本大綱|劇本|例子|例|テンプレ|シナリオテンプレート|シナリオテンプレ|シナリオアウトライン|シナリオ|サンプル|سيناريو مخطط|سيناريو|امثلة|الخلفية|תרחיש|תבנית תרחיש|רקע|דוגמאות|Тарих|Сценарій|Сценарији|Сценарио|Сценарий структураси|Сценарий|Структура сценарію|Структура сценарија|Структура сценария|Скица|Рамка на сценарий|Примери|Пример|Приклади|Предыстория|Предистория|Позадина|Передумова|Основа|Мисоллар|Концепт|Контекст|Значения|Örnekler|Założenia|Wharrimean is|Voorbeelden|Variantai|Tình huống|The thing of it is|Tausta|Taust|Tapausaihio|Tapaus|Tapaukset|Szenariogrundriss|Szenario|Szablon scenariusza|Stsenaarium|Struktura scenarija|Skica|Skenario konsep|Skenario|Situācija|Senaryo taslağı|Senaryo|Scénář|Scénario|Schema dello scenario|Scenārijs pēc parauga|Scenārijs|Scenár|Scenariusz|Scenariul de şablon|Scenariul de sablon|Scenariu|Scenarios|Scenario Outline|Scenario Amlinellol|Scenario|Example|Scenarijus|Scenariji|Scenarijaus šablonas|Scenarijai|Scenarij|Scenarie|Rerefons|Raamstsenaarium|Příklady|Példák|Príklady|Przykłady|Primjeri|Primeri|Primer|Pozadí|Pozadina|Pozadie|Plan du scénario|Plan du Scénario|Piemēri|Pavyzdžiai|Paraugs|Osnova scénáře|Osnova|Náčrt Scénáře|Náčrt Scenáru|Mate|MISHUN SRSLY|MISHUN|Kịch bản|Kontext|Konteksts|Kontekstas|Kontekst|Koncept|Khung tình huống|Khung kịch bản|Juhtumid|Háttér|Grundlage|Geçmiş|Forgatókönyv vázlat|Forgatókönyv|Exemplos|Exemples|Exemplele|Exempel|Examples|Esquema do Cenário|Esquema do Cenario|Esquema del escenario|Esquema de l'escenari|Esempi|Escenario|Escenari|Enghreifftiau|Eksempler|Ejemplos|EXAMPLZ|Dữ liệu|Dis is what went down|Dasar|Contoh|Contexto|Contexte|Contesto|Condiţii|Conditii|Cobber|Cenário|Cenario|Cefndir|Bối cảnh|Blokes|Beispiele|Bakgrunn|Bakgrund|Baggrund|Background|B4|Antecedents|Antecedentes|All y'all|Achtergrond|Abstrakt Scenario|Abstract Scenario|Rule|Regla|Règle|Regel|Regra)",foldingStopMarker:"^\\s*$",keyEquivalent:"^~C",name:"gherkin",patterns:[{include:"#feature_element_keyword"},{include:"#feature_keyword"},{include:"#step_keyword"},{include:"#strings_triple_quote"},{include:"#strings_single_quote"},{include:"#strings_double_quote"},{include:"#comments"},{include:"#tags"},{include:"#scenario_outline_variable"},{include:"#table"}],repository:{comments:{captures:{"0":{name:"comment.line.number-sign"}},match:"^\\s*(#.*)"},table:{begin:"^\\s*\\|",end:"\\|\\s*$",name:"keyword.control.cucumber.table",patterns:[{match:"\\w",name:"source"}]},feature_keyword:{captures:{"1":{name:"keyword.language.gherkin.feature"},"2":{name:"string.language.gherkin.feature.title"}},match:"^\\s*(기능|機能|功能|フィーチャ|خاصية|תכונה|Функціонал|Функционалност|Функционал|Особина|Функция|Функциональность|Свойство|Могућност|Özellik|Właściwość|Tính năng|Savybė|Požiadavka|Požadavek|Osobina|Ominaisuus|Omadus|OH HAI|Mogućnost|Mogucnost|Jellemző|Fīča|Funzionalità|Funktionalität|Funkcionalnost|Funkcionalitāte|Funcționalitate|Functionaliteit|Functionalitate|Funcionalitat|Funcionalidade|Fonctionnalité|Fitur|Ability|Business Need|Feature|Ability|Egenskap|Egenskab|Crikey|Característica|Arwedd):(.*)\\b"},step_keyword:{captures:{"1":{name:"keyword.language.gherkin.feature.step"}},match:"^\\s*(En |و |Y |E |Եվ |Ya |Too right |Və |Həm |A |И |而且 |并且 |同时 |並且 |同時 |Ak |Epi |A také |Og |😂 |And |Kaj |Ja |Et que |Et qu' |Et |და |Und |Και |અને |וגם |और |तथा |És |Dan |Agus |かつ |Lan |ಮತ್ತು |'ej |latlh |그리고 |AN |Un |Ir |an |a |Мөн |Тэгээд |Ond |7 |ਅਤੇ |Aye |Oraz |Si |Și |Şi |К тому же |Также |An |A tiež |A taktiež |A zároveň |In |Ter |Och |மேலும் |மற்றும் |Һәм |Вә |మరియు |และ |Ve |І |А також |Та |اور |Ва |Và |Maar |لكن |Pero |Բայց |Peru |Yeah nah |Amma |Ancaq |Ali |Но |Però |但是 |Men |Ale |😔 |But |Sed |Kuid |Mutta |Mais que |Mais qu' |Mais |მაგ­რამ |Aber |Αλλά |પણ |אבל |पर |परन्तु |किन्तु |De |En |Tapi |Ach |Ma |しかし |但し |ただし |Nanging |Ananging |ಆದರೆ |'ach |'a |하지만 |단 |BUT |Bet |awer |mä |No |Tetapi |Гэхдээ |Харин |Ac |ਪਰ |اما |Avast! |Mas |Dar |А |Иначе |Buh |Али |Toda |Ampak |Vendar |ஆனால் |Ләкин |Әмма |కాని |แต่ |Fakat |Ama |Але |لیکن |Лекин |Бирок |Аммо |Nhưng |Ond |Dan |اذاً |ثم |Alavez |Allora |Antonces |Ապա |Entós |But at the end of the day I reckon |O halda |Zatim |То |Aleshores |Cal |那么 |那麼 |Lè sa a |Le sa a |Onda |Pak |Så |🙏 |Then |Do |Siis |Niin |Alors |Entón |Logo |მაშინ |Dann |Τότε |પછી |אז |אזי |तब |तदा |Akkor |Þá |Maka |Ansin |ならば |Njuk |Banjur |ನಂತರ |vaj |그러면 |DEN |Tad |Tada |dann |Тогаш |Togash |Kemudian |Тэгэхэд |Үүний дараа |Tha |Þa |Ða |Tha the |Þa þe |Ða ðe |ਤਦ |آنگاه |Let go and haul |Wtedy |Então |Entao |Atunci |Затем |Тогда |Dun |Den youse gotta |Онда |Tak |Potom |Nato |Potem |Takrat |Entonces |அப்பொழுது |Нәтиҗәдә |అప్పుడు |ดังนั้น |O zaman |Тоді |پھر |تب |Унда |Thì |Yna |Wanneer |متى |عندما |Cuan |Եթե |Երբ |Cuando |It's just unbelievable |Əgər |Nə vaxt ki |Kada |Когато |Quan |当 |當 |Lè |Le |Kad |Když |Når |Als |🎬 |When |Se |Kui |Kun |Quand |Lorsque |Lorsqu' |Cando |როდესაც |Wenn |Όταν |ક્યારે |כאשר |जब |कदा |Majd |Ha |Amikor |Þegar |Ketika |Nuair a |Nuair nach |Nuair ba |Nuair nár |Quando |もし |Manawa |Menawa |ಸ್ಥಿತಿಯನ್ನು |qaSDI' |만일 |만약 |WEN |Ja |Kai |wann |Кога |Koga |Apabila |Хэрэв |Tha |Þa |Ða |ਜਦੋਂ |هنگامی |Blimey! |Jeżeli |Jeśli |Gdy |Kiedy |Cand |Când |Когда |Если |Wun |Youse know like when |Када |Кад |Keď |Ak |Ko |Ce |Če |Kadar |När |எப்போது |Әгәр |ఈ పరిస్థితిలో |เมื่อ |Eğer ki |Якщо |Коли |جب |Агар |Khi |Pryd |Gegewe |بفرض |Dau |Dada |Daus |Dadas |Դիցուք |Dáu |Daos |Daes |Y'know |Tutaq ki |Verilir |Dato |Дадено |Donat |Donada |Atès |Atesa |假如 |假设 |假定 |假設 |Sipoze |Sipoze ke |Sipoze Ke |Zadan |Zadani |Zadano |Pokud |Za předpokladu |Givet |Gegeven |Stel |😐 |Given |Donitaĵo |Komence |Eeldades |Oletetaan |Soit |Etant donné que |Etant donné qu' |Etant donné |Etant donnée |Etant donnés |Etant données |Étant donné que |Étant donné qu' |Étant donné |Étant donnée |Étant donnés |Étant données |Dado |Dados |მოცემული |Angenommen |Gegeben sei |Gegeben seien |Δεδομένου |આપેલ છે |בהינתן |अगर |यदि |चूंकि |Amennyiben |Adott |Ef |Dengan |Cuir i gcás go |Cuir i gcás nach |Cuir i gcás gur |Cuir i gcás nár |Data |Dati |Date |前提 |Nalika |Nalikaning |ನೀಡಿದ |ghu' noblu' |DaH ghu' bejlu' |조건 |먼저 |I CAN HAZ |Kad |Duota |ugeholl |Дадена |Dadeno |Dadena |Diberi |Bagi |Өгөгдсөн нь |Анх |Gitt |Thurh |Þurh |Ðurh |ਜੇਕਰ |ਜਿਵੇਂ ਕਿ |با فرض |Gangway! |Zakładając |Mając |Zakładając, że |Date fiind |Dat fiind |Dată fiind |Dati fiind |Dați fiind |Daţi fiind |Допустим |Дано |Пусть |Givun |Youse know when youse got |За дато |За дате |За дати |Za dato |Za date |Za dati |Pokiaľ |Za predpokladu |Dano |Podano |Zaradi |Privzeto |கொடுக்கப்பட்ட |Әйтик |చెప్పబడినది |กำหนดให้ |Diyelim ki |Припустимо |Припустимо, що |Нехай |اگر |بالفرض |فرض کیا |Агар |Biết |Cho |Anrhegedig a |\\* )"},feature_element_keyword:{captures:{"1":{name:"keyword.language.gherkin.feature.scenario"},"2":{name:"string.language.gherkin.scenario.title.title"}},match:"^\\s*(예|시나리오 개요|시나리오|배경|背景|場景大綱|場景|场景大纲|场景|劇本大綱|劇本|例子|例|テンプレ|シナリオテンプレート|シナリオテンプレ|シナリオアウトライン|シナリオ|サンプル|سيناريو مخطط|سيناريو|امثلة|الخلفية|תרחיש|תבנית תרחיש|רקע|דוגמאות|Тарих|Сценарій|Сценарији|Сценарио|Сценарий структураси|Сценарий|Структура сценарію|Структура сценарија|Структура сценария|Скица|Рамка на сценарий|Примери|Пример|Приклади|Предыстория|Предистория|Позадина|Передумова|Основа|Мисоллар|Концепт|Контекст|Значения|Örnekler|Założenia|Wharrimean is|Voorbeelden|Variantai|Tình huống|The thing of it is|Tausta|Taust|Tapausaihio|Tapaus|Tapaukset|Szenariogrundriss|Szenario|Szablon scenariusza|Stsenaarium|Struktura scenarija|Skica|Skenario konsep|Skenario|Situācija|Senaryo taslağı|Senaryo|Scénář|Scénario|Schema dello scenario|Scenārijs pēc parauga|Scenārijs|Scenár|Scenariusz|Scenariul de şablon|Scenariul de sablon|Scenariu|Scenarios|Scenario Outline|Scenario Amlinellol|Scenario|Example|Scenarijus|Scenariji|Scenarijaus šablonas|Scenarijai|Scenarij|Scenarie|Rerefons|Raamstsenaarium|Příklady|Példák|Príklady|Przykłady|Primjeri|Primeri|Primer|Pozadí|Pozadina|Pozadie|Plan du scénario|Plan du Scénario|Piemēri|Pavyzdžiai|Paraugs|Osnova scénáře|Osnova|Náčrt Scénáře|Náčrt Scenáru|Mate|MISHUN SRSLY|MISHUN|Kịch bản|Kontext|Konteksts|Kontekstas|Kontekst|Koncept|Khung tình huống|Khung kịch bản|Juhtumid|Háttér|Grundlage|Geçmiş|Forgatókönyv vázlat|Forgatókönyv|Exemplos|Exemples|Exemplele|Exempel|Examples|Esquema do Cenário|Esquema do Cenario|Esquema del escenario|Esquema de l'escenari|Esempi|Escenario|Escenari|Enghreifftiau|Eksempler|Ejemplos|EXAMPLZ|Dữ liệu|Dis is what went down|Dasar|Contoh|Contexto|Contexte|Contesto|Condiţii|Conditii|Cobber|Cenário|Cenario|Cefndir|Bối cảnh|Blokes|Beispiele|Bakgrunn|Bakgrund|Baggrund|Background|B4|Antecedents|Antecedentes|All y'all|Achtergrond|Abstrakt Scenario|Abstract Scenario|Rule|Regla|Règle|Regel|Regra):(.*)"},scenario_outline_variable:{match:"<[a-zA-Z0-9 _-]*>",name:"variable.other"},strings_double_quote:{begin:"(? 50 lines as deprecated, > 72 as illegal",name:"meta.scope.subject.git-commit",match:"\\G.{0,50}(.{0,22}(.*))$",captures:{"1":{name:"invalid.deprecated.line-too-long.git-commit"},"2":{name:"invalid.illegal.line-too-long.git-commit"}}}]},{comment:"Git supplied metadata in a number of lines starting with #",name:"meta.scope.metadata.git-commit",begin:"^(?=#)",contentName:"comment.line.number-sign.git-commit",end:"^(?!#)",patterns:[{match:"^#\\t((modified|renamed):.*)$",captures:{"1":{name:"markup.changed.git-commit"}}},{match:"^#\\t(new file:.*)$",captures:{"1":{name:"markup.inserted.git-commit"}}},{match:"^#\\t(deleted.*)$",captures:{"1":{name:"markup.deleted.git-commit"}}},{comment:"Fallback for non-English git commit template",match:"^#\\t([^:]+): *(.*)$",captures:{"1":{name:"keyword.other.file-type.git-commit"},"2":{name:"string.unquoted.filename.git-commit"}}}]}]}; + +export { gitCommit_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/git-rebase.tmLanguage-e0ede1eb.mjs b/docs/shiki/dist/languages/git-rebase.tmLanguage-e0ede1eb.mjs new file mode 100644 index 00000000..6d5b8f80 --- /dev/null +++ b/docs/shiki/dist/languages/git-rebase.tmLanguage-e0ede1eb.mjs @@ -0,0 +1,3 @@ +var gitRebase_tmLanguage = {information_for_contributors:["This file has been converted from https://github.com/textmate/git.tmbundle/blob/master/Syntaxes/Git%20Rebase%20Message.tmLanguage","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."],version:"https://github.com/textmate/git.tmbundle/commit/5870cf3f8abad3a6637bdf69250b5d2ded427dc4",name:"git-rebase",scopeName:"text.git-rebase",patterns:[{captures:{"1":{name:"punctuation.definition.comment.git-rebase"}},match:"^\\s*(#).*$\\n?",name:"comment.line.number-sign.git-rebase"},{captures:{"1":{name:"support.function.git-rebase"},"2":{name:"constant.sha.git-rebase"},"3":{name:"meta.commit-message.git-rebase"}},match:"^\\s*(pick|p|reword|r|edit|e|squash|s|fixup|f|drop|d)\\s+([0-9a-f]+)\\s+(.*)$",name:"meta.commit-command.git-rebase"},{captures:{"1":{name:"support.function.git-rebase"},"2":{patterns:[{include:"source.shell"}]}},match:"^\\s*(exec|x)\\s+(.*)$",name:"meta.commit-command.git-rebase"},{captures:{"1":{name:"support.function.git-rebase"}},match:"^\\s*(break|b)\\s*$",name:"meta.commit-command.git-rebase"}]}; + +export { gitRebase_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/glimmer-js.tmLanguage-f699a380.mjs b/docs/shiki/dist/languages/glimmer-js.tmLanguage-f699a380.mjs new file mode 100644 index 00000000..b73dcb29 --- /dev/null +++ b/docs/shiki/dist/languages/glimmer-js.tmLanguage-f699a380.mjs @@ -0,0 +1,3 @@ +var glimmerJs_tmLanguage = {$schema:"https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",name:"glimmer-js",scopeName:"source.gjs",patterns:[{include:"source.js"}],injections:{"L:source.gjs -comment -string":{patterns:[{name:"meta.js.embeddedTemplateWithoutArgs",begin:"\\s*(<)(template)\\s*(>)",beginCaptures:{"1":{name:"punctuation.definition.tag.html"},"2":{name:"entity.name.tag.other.html"},"3":{name:"punctuation.definition.tag.html"}},end:"()",endCaptures:{"1":{name:"punctuation.definition.tag.html"},"2":{name:"entity.name.tag.other.html"},"3":{name:"punctuation.definition.tag.html"}},patterns:[{include:"text.html.handlebars"}]},{name:"meta.js.embeddedTemplateWithArgs",begin:"(<)(template)",beginCaptures:{"1":{name:"punctuation.definition.tag.html"},"2":{name:"entity.name.tag.other.html"}},end:"()",endCaptures:{"1":{name:"punctuation.definition.tag.html"},"2":{name:"entity.name.tag.other.html"},"3":{name:"punctuation.definition.tag.html"}},patterns:[{begin:"(?<=\\)",patterns:[{include:"text.html.handlebars#tag-stuff"}]},{begin:"(>)",beginCaptures:{"1":{name:"punctuation.definition.tag.end.js"}},end:"(?=)",contentName:"meta.html.embedded.block",patterns:[{include:"text.html.handlebars"}]}]}]}}}; + +export { glimmerJs_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/glimmer-ts.tmLanguage-4277041e.mjs b/docs/shiki/dist/languages/glimmer-ts.tmLanguage-4277041e.mjs new file mode 100644 index 00000000..e364be6f --- /dev/null +++ b/docs/shiki/dist/languages/glimmer-ts.tmLanguage-4277041e.mjs @@ -0,0 +1,3 @@ +var glimmerTs_tmLanguage = {$schema:"https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",name:"glimmer-ts",scopeName:"source.gts",patterns:[{include:"source.ts"}],injections:{"L:source.gts -comment -string":{patterns:[{name:"meta.js.embeddedTemplateWithoutArgs",begin:"\\s*(<)(template)\\s*(>)",beginCaptures:{"1":{name:"punctuation.definition.tag.html"},"2":{name:"entity.name.tag.other.html"},"3":{name:"punctuation.definition.tag.html"}},end:"()",endCaptures:{"1":{name:"punctuation.definition.tag.html"},"2":{name:"entity.name.tag.other.html"},"3":{name:"punctuation.definition.tag.html"}},patterns:[{include:"text.html.handlebars"}]},{name:"meta.js.embeddedTemplateWithArgs",begin:"(<)(template)",beginCaptures:{"1":{name:"punctuation.definition.tag.html"},"2":{name:"entity.name.tag.other.html"}},end:"()",endCaptures:{"1":{name:"punctuation.definition.tag.html"},"2":{name:"entity.name.tag.other.html"},"3":{name:"punctuation.definition.tag.html"}},patterns:[{begin:"(?<=\\)",patterns:[{include:"text.html.handlebars#tag-stuff"}]},{begin:"(>)",beginCaptures:{"1":{name:"punctuation.definition.tag.end.js"}},end:"(?=)",contentName:"meta.html.embedded.block",patterns:[{include:"text.html.handlebars"}]}]}]}}}; + +export { glimmerTs_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/glsl.tmLanguage-440339e8.mjs b/docs/shiki/dist/languages/glsl.tmLanguage-440339e8.mjs new file mode 100644 index 00000000..701a641e --- /dev/null +++ b/docs/shiki/dist/languages/glsl.tmLanguage-440339e8.mjs @@ -0,0 +1,3 @@ +var glsl_tmLanguage = {fileTypes:["vs","fs","gs","vsh","fsh","gsh","vshader","fshader","gshader","vert","frag","geom","f.glsl","v.glsl","g.glsl"],foldingStartMarker:"/\\*\\*|\\{\\s*$",foldingStopMarker:"\\*\\*/|^\\s*\\}",keyEquivalent:"^~G",name:"glsl",patterns:[{match:"\\b(break|case|continue|default|discard|do|else|for|if|return|switch|while)\\b",name:"keyword.control.glsl"},{match:"\\b(void|bool|int|uint|float|vec2|vec3|vec4|bvec2|bvec3|bvec4|ivec2|ivec2|ivec3|uvec2|uvec2|uvec3|mat2|mat3|mat4|mat2x2|mat2x3|mat2x4|mat3x2|mat3x3|mat3x4|mat4x2|mat4x3|mat4x4|sampler[1|2|3]D|samplerCube|sampler2DRect|sampler[1|2]DShadow|sampler2DRectShadow|sampler[1|2]DArray|sampler[1|2]DArrayShadow|samplerBuffer|sampler2DMS|sampler2DMSArray|struct|isampler[1|2|3]D|isamplerCube|isampler2DRect|isampler[1|2]DArray|isamplerBuffer|isampler2DMS|isampler2DMSArray|usampler[1|2|3]D|usamplerCube|usampler2DRect|usampler[1|2]DArray|usamplerBuffer|usampler2DMS|usampler2DMSArray)\\b",name:"storage.type.glsl"},{match:"\\b(attribute|centroid|const|flat|in|inout|invariant|noperspective|out|smooth|uniform|varying)\\b",name:"storage.modifier.glsl"},{match:"\\b(gl_BackColor|gl_BackLightModelProduct|gl_BackLightProduct|gl_BackMaterial|gl_BackSecondaryColor|gl_ClipDistance|gl_ClipPlane|gl_ClipVertex|gl_Color|gl_DepthRange|gl_DepthRangeParameters|gl_EyePlaneQ|gl_EyePlaneR|gl_EyePlaneS|gl_EyePlaneT|gl_Fog|gl_FogCoord|gl_FogFragCoord|gl_FogParameters|gl_FragColor|gl_FragCoord|gl_FragDat|gl_FragDept|gl_FrontColor|gl_FrontFacing|gl_FrontLightModelProduct|gl_FrontLightProduct|gl_FrontMaterial|gl_FrontSecondaryColor|gl_InstanceID|gl_Layer|gl_LightModel|gl_LightModelParameters|gl_LightModelProducts|gl_LightProducts|gl_LightSource|gl_LightSourceParameters|gl_MaterialParameters|gl_ModelViewMatrix|gl_ModelViewMatrixInverse|gl_ModelViewMatrixInverseTranspose|gl_ModelViewMatrixTranspose|gl_ModelViewProjectionMatrix|gl_ModelViewProjectionMatrixInverse|gl_ModelViewProjectionMatrixInverseTranspose|gl_ModelViewProjectionMatrixTranspose|gl_MultiTexCoord[0-7]|gl_Normal|gl_NormalMatrix|gl_NormalScale|gl_ObjectPlaneQ|gl_ObjectPlaneR|gl_ObjectPlaneS|gl_ObjectPlaneT|gl_Point|gl_PointCoord|gl_PointParameters|gl_PointSize|gl_Position|gl_PrimitiveIDIn|gl_ProjectionMatrix|gl_ProjectionMatrixInverse|gl_ProjectionMatrixInverseTranspose|gl_ProjectionMatrixTranspose|gl_SecondaryColor|gl_TexCoord|gl_TextureEnvColor|gl_TextureMatrix|gl_TextureMatrixInverse|gl_TextureMatrixInverseTranspose|gl_TextureMatrixTranspose|gl_Vertex|gl_VertexIDh)\\b",name:"support.variable.glsl"},{match:"\\b(gl_MaxClipPlanes|gl_MaxCombinedTextureImageUnits|gl_MaxDrawBuffers|gl_MaxFragmentUniformComponents|gl_MaxLights|gl_MaxTextureCoords|gl_MaxTextureImageUnits|gl_MaxTextureUnits|gl_MaxVaryingFloats|gl_MaxVertexAttribs|gl_MaxVertexTextureImageUnits|gl_MaxVertexUniformComponents)\\b",name:"support.constant.glsl"},{match:"\\b(abs|acos|all|any|asin|atan|ceil|clamp|cos|cross|degrees|dFdx|dFdy|distance|dot|equal|exp|exp2|faceforward|floor|fract|ftransform|fwidth|greaterThan|greaterThanEqual|inversesqrt|length|lessThan|lessThanEqual|log|log2|matrixCompMult|max|min|mix|mod|noise[1-4]|normalize|not|notEqual|outerProduct|pow|radians|reflect|refract|shadow1D|shadow1DLod|shadow1DProj|shadow1DProjLod|shadow2D|shadow2DLod|shadow2DProj|shadow2DProjLod|sign|sin|smoothstep|sqrt|step|tan|texture1D|texture1DLod|texture1DProj|texture1DProjLod|texture2D|texture2DLod|texture2DProj|texture2DProjLod|texture3D|texture3DLod|texture3DProj|texture3DProjLod|textureCube|textureCubeLod|transpose)\\b",name:"support.function.glsl"},{match:"\\b(asm|double|enum|extern|goto|inline|long|short|sizeof|static|typedef|union|unsigned|volatile)\\b",name:"invalid.illegal.glsl"},{include:"source.c"}],scopeName:"source.glsl",uuid:"D0FD1B52-F137-4FBA-A148-B8A893CD948C"}; + +export { glsl_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/gnuplot.tmLanguage-10be0b3e.mjs b/docs/shiki/dist/languages/gnuplot.tmLanguage-10be0b3e.mjs new file mode 100644 index 00000000..24d779d4 --- /dev/null +++ b/docs/shiki/dist/languages/gnuplot.tmLanguage-10be0b3e.mjs @@ -0,0 +1,3 @@ +var gnuplot_tmLanguage = {name:"gnuplot",scopeName:"source.gnuplot",uuid:"A75AB1C2-611C-4500-9EE4-20668B5BB465",fileTypes:["gp","plt","plot","gnuplot"],patterns:[{name:"invalid.illegal.backslash.gnuplot",match:"(\\\\(?!\\n).*)"},{name:"punctuation.separator.statement.gnuplot",match:"(;)"},{include:"#LineComment"},{include:"#DataBlock"},{include:"#MacroExpansion"},{include:"#VariableDecl"},{include:"#ArrayDecl"},{include:"#FunctionDecl"},{include:"#ShellCommand"},{include:"#Command"}],repository:{DataBlock:{name:"meta.datablock.gnuplot",begin:"(?x:\n\t\t\t\t([$][A-Za-z_]\\w*)\\s* # 1: var name\n\t\t\t\t(<<)\\s* # 2: shift operator\n\t\t\t\t([A-Za-z_]\\w*)\\s* # 3: end tag\n\t\t\t\t(?=(\\#|$)) # 4: comment or end of line\n\t\t\t)",beginCaptures:{"1":{patterns:[{include:"#SpecialVariable"}]},"3":{name:"constant.language.datablock.gnuplot"}},end:"^(\\3)\\b(.*)",endCaptures:{"1":{name:"constant.language.datablock.gnuplot"},"2":{name:"invalid.illegal.datablock.gnuplot"}},patterns:[{include:"#LineComment"},{include:"#NumberLiteral"},{include:"#DoubleQuotedStringLiteral"}]},MacroExpansion:{begin:"([@][A-Za-z_]\\w*)",beginCaptures:{"1":{patterns:[{include:"#SpecialVariable"}]}},end:"(?=(;|#|\\\\(?!\\n)|(?>|&|\\||\\^)"},{name:"keyword.operator.comparison.gnuplot",match:"(==|!=|<=|<|>=|>)"},{name:"keyword.operator.assignment.gnuplot",match:"(=)"},{name:"keyword.operator.arithmetic.gnuplot",match:"(\\+|-|~|!)"},{name:"keyword.operator.arithmetic.gnuplot",match:"(\\*\\*|\\+|-|\\*|/|%)"},{name:"keyword.operator.strings.gnuplot",match:"(\\.|\\b(eq|ne)\\b)",captures:{"2":{name:"keyword.operator.word.gnuplot"}}}]},BuiltinVariable:{patterns:[{name:"invalid.deprecated.variable.gnuplot",match:"\\b(?x:\n\t\t\t\t\t\tFIT_LIMIT |\n\t\t\t\t\t\tFIT_MAXITER |\n\t\t\t\t\t\tFIT_START_LAMBDA |\n\t\t\t\t\t\tFIT_LAMBDA_FACTOR |\n\t\t\t\t\t\tFIT_SKIP |\n\t\t\t\t\t\tFIT_INDEX\n\t\t\t\t\t)\\b"},{name:"support.constant.gnuplot",match:"\\b(GPVAL_\\w*|MOUSE_\\w*)\\b"},{name:"support.variable.gnuplot",match:"\\b(ARG[0-9C]|GPFUN_\\w*|FIT_\\w*|STATS_\\w*|pi|NaN)\\b"}]},SpecialVariable:{patterns:[{match:"(?<=[\\[:=])\\s*(\\*)\\s*(?=[:\\]])",captures:{"1":{name:"constant.language.wildcard.gnuplot"}}},{name:"constant.language.special.gnuplot",match:"(([@$])[A-Za-z_]\\w*)\\b",captures:{"2":{name:"punctuation.definition.variable.gnuplot"}}}]},BuiltinFunction:{patterns:[{name:"invalid.deprecated.function.gnuplot",match:"\\b(?x:\n\t\t\t\t\t\tdefined\n\t\t\t\t\t)\\b"},{name:"support.function.math.gnuplot",match:"\\b(?x:\n\t\t\t\t\t\tabs |\n\t\t\t\t\t\tacos |\n\t\t\t\t\t\tacosh |\n\t\t\t\t\t\tairy |\n\t\t\t\t\t\targ |\n\t\t\t\t\t\tasin |\n\t\t\t\t\t\tasinh |\n\t\t\t\t\t\tatan |\n\t\t\t\t\t\tatan2 |\n\t\t\t\t\t\tatanh |\n\t\t\t\t\t\tEllipticK |\n\t\t\t\t\t\tEllipticE |\n\t\t\t\t\t\tEllipticPi |\n\t\t\t\t\t\tbesj0 |\n\t\t\t\t\t\tbesj1 |\n\t\t\t\t\t\tbesy0 |\n\t\t\t\t\t\tbesy1 |\n\t\t\t\t\t\tceil |\n\t\t\t\t\t\tcos |\n\t\t\t\t\t\tcosh |\n\t\t\t\t\t\terf |\n\t\t\t\t\t\terfc |\n\t\t\t\t\t\texp |\n\t\t\t\t\t\texpint |\n\t\t\t\t\t\tfloor |\n\t\t\t\t\t\tgamma |\n\t\t\t\t\t\tibeta |\n\t\t\t\t\t\tinverf |\n\t\t\t\t\t\tigamma |\n\t\t\t\t\t\timag |\n\t\t\t\t\t\tinvnorm |\n\t\t\t\t\t\tint |\n\t\t\t\t\t\tlambertw |\n\t\t\t\t\t\tlgamma |\n\t\t\t\t\t\tlog |\n\t\t\t\t\t\tlog10 |\n\t\t\t\t\t\tnorm |\n\t\t\t\t\t\trand |\n\t\t\t\t\t\treal |\n\t\t\t\t\t\tsgn |\n\t\t\t\t\t\tsin |\n\t\t\t\t\t\tsinh |\n\t\t\t\t\t\tsqrt |\n\t\t\t\t\t\ttan |\n\t\t\t\t\t\ttanh |\n\t\t\t\t\t\tvoigt |\n\t\t\t\t\t\tcerf |\n\t\t\t\t\t\tcdawson |\n\t\t\t\t\t\tfaddeeva |\n\t\t\t\t\t\terfi |\n\t\t\t\t\t\tVP\n\t\t\t\t\t)\\b"},{name:"support.function.string.gnuplot",match:"\\b(?x:\n\t\t\t\t\t\tgprintf |\n\t\t\t\t\t\tsprintf |\n\t\t\t\t\t\tstrlen |\n\t\t\t\t\t\tstrstrt |\n\t\t\t\t\t\tsubstr |\n\t\t\t\t\t\tstrftime |\n\t\t\t\t\t\tstrptime |\n\t\t\t\t\t\tsystem |\n\t\t\t\t\t\tword |\n\t\t\t\t\t\twords\n\t\t\t\t\t)\\b"},{name:"support.function.other.gnuplot",match:"\\b(?x:\n\t\t\t\t\t\tcolumn |\n\t\t\t\t\t\tcolumnhead |\n\t\t\t\t\t\texists |\n\t\t\t\t\t\thsv2rgb |\n\t\t\t\t\t\tstringcolumn |\n\t\t\t\t\t\ttimecolumn |\n\t\t\t\t\t\ttm_hour |\n\t\t\t\t\t\ttm_mday |\n\t\t\t\t\t\ttm_min |\n\t\t\t\t\t\ttm_mon |\n\t\t\t\t\t\ttm_sec |\n\t\t\t\t\t\ttm_wday |\n\t\t\t\t\t\ttm_yday |\n\t\t\t\t\t\ttm_year |\n\t\t\t\t\t\ttime |\n\t\t\t\t\t\tvalid |\n\t\t\t\t\t\tvalue\n\t\t\t\t\t)\\b"}]},Literal:{patterns:[{include:"#NumberLiteral"},{include:"#DeprecatedScriptArgsLiteral"},{include:"#SingleQuotedStringLiteral"},{include:"#DoubleQuotedStringLiteral"},{include:"#InterpolatedStringLiteral"}]},NumberLiteral:{patterns:[{name:"constant.numeric.float.gnuplot",match:"(?x:\n\t\t\t\t\t\t# .5e2 and 0.5e2\n\t\t\t\t\t\t( ((\\b[0-9]+)|(?,\\s*\\w+(?:\\.\\w+)*)*)(?=\\s*=(?!=))",captures:{"1":{patterns:[{match:"\\d\\w*",name:"invalid.illegal.identifier.go"},{match:"\\w+(?:\\.\\w+)*",name:"variable.other.assignment.go",captures:{"0":{patterns:[{include:"#delimiters"}]}}},{include:"#delimiters"}]}}},{match:"\\b\\w+(?:,\\s*\\w+)*(?=\\s*:=)",captures:{"0":{patterns:[{match:"\\d\\w*",name:"invalid.illegal.identifier.go"},{match:"\\w+",name:"variable.other.assignment.go"},{include:"#delimiters"}]}}},{comment:"Terminators",match:";",name:"punctuation.terminator.go"},{include:"#brackets"},{include:"#delimiters"},{include:"#keywords"},{include:"#operators"},{include:"#runes"},{include:"#storage_types"}],repository:{brackets:{patterns:[{begin:"{",beginCaptures:{"0":{name:"punctuation.definition.begin.bracket.curly.go"}},end:"}",endCaptures:{"0":{name:"punctuation.definition.end.bracket.curly.go"}},patterns:[{include:"$self"}]},{begin:"\\(",beginCaptures:{"0":{name:"punctuation.definition.begin.bracket.round.go"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.end.bracket.round.go"}},patterns:[{include:"$self"}]},{match:"\\[|\\]",name:"punctuation.definition.bracket.square.go"}]},comments:{patterns:[{name:"comment.block.go",begin:"(\\/\\*)",beginCaptures:{"1":{name:"punctuation.definition.comment.go"}},end:"(\\*\\/)",endCaptures:{"1":{name:"punctuation.definition.comment.go"}}},{name:"comment.line.double-slash.go",begin:"(\\/\\/)",beginCaptures:{"1":{name:"punctuation.definition.comment.go"}},end:"(?:\\n|$)"}]},delimiters:{patterns:[{match:",",name:"punctuation.other.comma.go"},{match:"\\.(?!\\.\\.)",name:"punctuation.other.period.go"},{match:":(?!=)",name:"punctuation.other.colon.go"}]},imports:{patterns:[{match:"((?!\\s+\")[^\\s]*)?\\s*((\")([^\"]*)(\"))",captures:{"1":{name:"entity.alias.import.go"},"2":{name:"string.quoted.double.go"},"3":{name:"punctuation.definition.string.begin.go"},"4":{name:"entity.name.import.go"},"5":{name:"punctuation.definition.string.end.go"}}},{begin:"\\(",beginCaptures:{"0":{name:"punctuation.definition.imports.begin.bracket.round.go"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.imports.end.bracket.round.go"}},patterns:[{include:"#comments"},{include:"#imports"}]}]},keywords:{patterns:[{comment:"Flow control keywords",match:"\\b(break|case|continue|default|defer|else|fallthrough|for|go|goto|if|range|return|select|switch)\\b",name:"keyword.control.go"},{match:"\\bchan\\b",name:"keyword.channel.go"},{match:"\\bconst\\b",name:"keyword.const.go"},{match:"\\bfunc\\b",name:"keyword.function.go"},{match:"\\binterface\\b",name:"keyword.interface.go"},{match:"\\bmap\\b",name:"keyword.map.go"},{match:"\\bstruct\\b",name:"keyword.struct.go"}]},operators:{comment:"Note that the order here is very important!",patterns:[{match:"(\\*|&)(?=\\w)",name:"keyword.operator.address.go"},{match:"<\\-",name:"keyword.operator.channel.go"},{match:"\\-\\-",name:"keyword.operator.decrement.go"},{match:"\\+\\+",name:"keyword.operator.increment.go"},{match:"(==|!=|<=|>=|<(?!<)|>(?!>))",name:"keyword.operator.comparison.go"},{match:"(&&|\\|\\||!)",name:"keyword.operator.logical.go"},{match:"(=|\\+=|\\-=|\\|=|\\^=|\\*=|/=|:=|%=|<<=|>>=|&\\^=|&=)",name:"keyword.operator.assignment.go"},{match:"(\\+|\\-|\\*|/|%)",name:"keyword.operator.arithmetic.go"},{match:"(&(?!\\^)|\\||\\^|&\\^|<<|>>)",name:"keyword.operator.arithmetic.bitwise.go"},{match:"\\.\\.\\.",name:"keyword.operator.ellipsis.go"}]},runes:{patterns:[{begin:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.go"}},end:"'",endCaptures:{"0":{name:"punctuation.definition.string.end.go"}},name:"string.quoted.rune.go",patterns:[{match:"\\G(\\\\([0-7]{3}|[abfnrtv\\\\'\"]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})|.)(?=')",name:"constant.other.rune.go"},{match:"[^']+",name:"invalid.illegal.unknown-rune.go"}]}]},storage_types:{patterns:[{match:"\\bbool\\b",name:"storage.type.boolean.go"},{match:"\\bbyte\\b",name:"storage.type.byte.go"},{match:"\\berror\\b",name:"storage.type.error.go"},{match:"\\b(complex(64|128)|float(32|64)|u?int(8|16|32|64)?)\\b",name:"storage.type.numeric.go"},{match:"\\brune\\b",name:"storage.type.rune.go"},{match:"\\bstring\\b",name:"storage.type.string.go"},{match:"\\buintptr\\b",name:"storage.type.uintptr.go"}]},string_escaped_char:{patterns:[{match:"\\\\([0-7]{3}|[abfnrtv\\\\'\"]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})",name:"constant.character.escape.go"},{match:"\\\\[^0-7xuUabfnrtv\\'\"]",name:"invalid.illegal.unknown-escape.go"}]},string_placeholder:{patterns:[{match:"%(\\[\\d+\\])?([\\+#\\-0\\x20]{,2}((\\d+|\\*)?(\\.?(\\d+|\\*|(\\[\\d+\\])\\*?)?(\\[\\d+\\])?)?))?[vT%tbcdoqxXUbeEfFgGspw]",name:"constant.other.placeholder.go"}]},variables:{patterns:[{match:"(\\w+(?:,\\s*\\w+)*)(\\s+\\*?\\w+(?:\\.\\w+)?\\s*)?(?=\\s*=)",captures:{"1":{patterns:[{match:"\\d\\w*",name:"invalid.illegal.identifier.go"},{match:"\\w+",name:"variable.other.assignment.go"},{include:"#delimiters"}]},"2":{patterns:[{include:"$self"}]}}},{match:"(\\w+(?:,\\s*\\w+)*)(\\s+(\\[(\\d*|\\.\\.\\.)\\])*\\*?(<-)?\\w+(?:\\.\\w+)?\\s*[^=].*)",captures:{"1":{patterns:[{match:"\\d\\w*",name:"invalid.illegal.identifier.go"},{match:"\\w+",name:"variable.other.declaration.go"},{include:"#delimiters"}]},"2":{patterns:[{include:"$self"}]}}},{begin:"\\(",beginCaptures:{"0":{name:"punctuation.definition.variables.begin.bracket.round.go"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.variables.end.bracket.round.go"}},patterns:[{include:"$self"},{include:"#variables"}]}]},numeric_literals:{match:"(?)(;))",endCaptures:{"1":{name:"punctuation.terminator.groovy"}},name:"meta.import.groovy",patterns:[{match:"\\.",name:"punctuation.separator.groovy"},{match:"\\s",name:"invalid.illegal.character_not_allowed_here.groovy"}]},{begin:"(import)\\b\\s*",beginCaptures:{"1":{name:"keyword.other.import.groovy"}},captures:{"1":{name:"keyword.other.import.groovy"},"2":{name:"storage.modifier.import.groovy"},"3":{name:"punctuation.terminator.groovy"}},contentName:"storage.modifier.import.groovy",end:"\\s*(?:$|(?=%>)|(;))",endCaptures:{"1":{name:"punctuation.terminator.groovy"}},name:"meta.import.groovy",patterns:[{match:"\\.",name:"punctuation.separator.groovy"},{match:"\\s",name:"invalid.illegal.character_not_allowed_here.groovy"}]},{captures:{"1":{name:"keyword.other.import.groovy"},"2":{name:"keyword.other.import.static.groovy"},"3":{name:"storage.modifier.import.groovy"},"4":{name:"punctuation.terminator.groovy"}},match:"^\\s*(import)(?:\\s+(static)\\s+)\\b(?:\\s*([^ ;$]+)\\s*(;)?)?",name:"meta.import.groovy"},{include:"#groovy"}],repository:{annotations:{patterns:[{begin:"(?)",end:"\\}",patterns:[{begin:"(?<=\\{)(?=[^\\}]*?->)",end:"->",endCaptures:{"0":{name:"keyword.operator.groovy"}},patterns:[{begin:"(?!->)",end:"(?=->)",name:"meta.closure.parameters.groovy",patterns:[{begin:"(?!,|->)",end:"(?=,|->)",name:"meta.closure.parameter.groovy",patterns:[{begin:"=",beginCaptures:{"0":{name:"keyword.operator.assignment.groovy"}},end:"(?=,|->)",name:"meta.parameter.default.groovy",patterns:[{include:"#groovy-code"}]},{include:"#parameters"}]}]}]},{begin:"(?=[^}])",end:"(?=\\})",patterns:[{include:"#groovy-code"}]}]},"comment-block":{begin:"/\\*",captures:{"0":{name:"punctuation.definition.comment.groovy"}},end:"\\*/",name:"comment.block.groovy"},comments:{patterns:[{captures:{"0":{name:"punctuation.definition.comment.groovy"}},match:"/\\*\\*/",name:"comment.block.empty.groovy"},{include:"text.html.javadoc"},{include:"#comment-block"},{captures:{"1":{name:"punctuation.definition.comment.groovy"}},match:"(//).*$\\n?",name:"comment.line.double-slash.groovy"}]},constants:{patterns:[{match:"\\b([A-Z][A-Z0-9_]+)\\b",name:"constant.other.groovy"},{match:"\\b(true|false|null)\\b",name:"constant.language.groovy"}]},constructors:{applyEndPatternLast:1,begin:"(?<=;|^)(?=\\s*(?:(?:private|protected|public|native|synchronized|abstract|threadsafe|transient|static|final)\\s+)*[A-Z]\\w*\\()",end:"}",patterns:[{include:"#method-content"}]},"enum-values":{patterns:[{begin:"(?<=;|^)\\s*\\b([A-Z0-9_]+)(?=\\s*(?:,|;|}|\\(|$))",beginCaptures:{"1":{name:"constant.enum.name.groovy"}},end:",|;|(?=})|^(?!\\s*\\w+\\s*(?:,|$))",patterns:[{begin:"\\(",end:"\\)",name:"meta.enum.value.groovy",patterns:[{match:",",name:"punctuation.definition.seperator.parameter.groovy"},{include:"#groovy-code"}]}]}]},groovy:{patterns:[{include:"#comments"},{include:"#class"},{include:"#variables"},{include:"#methods"},{include:"#annotations"},{include:"#groovy-code"}]},"groovy-code":{patterns:[{include:"#groovy-code-minus-map-keys"},{include:"#map-keys"}]},"groovy-code-minus-map-keys":{comment:"In some situations, maps can't be declared without enclosing []'s, \n\t\t\t\ttherefore we create a collection of everything but that",patterns:[{include:"#comments"},{include:"#annotations"},{include:"#support-functions"},{include:"#keyword-language"},{include:"#values"},{include:"#anonymous-classes-and-new"},{include:"#keyword-operator"},{include:"#types"},{include:"#storage-modifiers"},{include:"#parens"},{include:"#closures"},{include:"#braces"}]},keyword:{patterns:[{include:"#keyword-operator"},{include:"#keyword-language"}]},"keyword-language":{patterns:[{match:"\\b(try|catch|finally|throw)\\b",name:"keyword.control.exception.groovy"},{match:"\\b((?",name:"keyword.operator.arrow.groovy"},{match:"<<",name:"keyword.operator.leftshift.groovy"},{match:"(?<=\\S)\\.(?=\\S)",name:"keyword.operator.navigation.groovy"},{match:"(?<=\\S)\\?\\.(?=\\S)",name:"keyword.operator.safe-navigation.groovy"},{begin:"\\?",beginCaptures:{"0":{name:"keyword.operator.ternary.groovy"}},end:"(?=$|\\)|}|])",name:"meta.evaluation.ternary.groovy",patterns:[{match:":",name:"keyword.operator.ternary.expression-seperator.groovy"},{include:"#groovy-code-minus-map-keys"}]},{match:"==~",name:"keyword.operator.match.groovy"},{match:"=~",name:"keyword.operator.find.groovy"},{match:"\\b(instanceof)\\b",name:"keyword.operator.instanceof.groovy"},{match:"(===|==|!=|<=|>=|<=>|<>|<|>|<<)",name:"keyword.operator.comparison.groovy"},{match:"=",name:"keyword.operator.assignment.groovy"},{match:"(\\-\\-|\\+\\+)",name:"keyword.operator.increment-decrement.groovy"},{match:"(\\-|\\+|\\*|\\/|%)",name:"keyword.operator.arithmetic.groovy"},{match:"(!|&&|\\|\\|)",name:"keyword.operator.logical.groovy"}]},"language-variables":{patterns:[{match:"\\b(this|super)\\b",name:"variable.language.groovy"}]},"map-keys":{patterns:[{captures:{"1":{name:"constant.other.key.groovy"},"2":{name:"punctuation.definition.seperator.key-value.groovy"}},match:"(\\w+)\\s*(:)"}]},"method-call":{begin:"([\\w$]+)(\\()",beginCaptures:{"1":{name:"meta.method.groovy"},"2":{name:"punctuation.definition.method-parameters.begin.groovy"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.method-parameters.end.groovy"}},name:"meta.method-call.groovy",patterns:[{match:",",name:"punctuation.definition.seperator.parameter.groovy"},{include:"#groovy-code"}]},"method-content":{patterns:[{match:"\\s"},{include:"#annotations"},{begin:"(?=(?:\\w|<)[^\\(]*\\s+(?:[\\w$]|<)+\\s*\\()",end:"(?=[\\w$]+\\s*\\()",name:"meta.method.return-type.java",patterns:[{include:"#storage-modifiers"},{include:"#types"}]},{begin:"([\\w$]+)\\s*\\(",beginCaptures:{"1":{name:"entity.name.function.java"}},end:"\\)",name:"meta.definition.method.signature.java",patterns:[{begin:"(?=[^)])",end:"(?=\\))",name:"meta.method.parameters.groovy",patterns:[{begin:"(?=[^,)])",end:"(?=,|\\))",name:"meta.method.parameter.groovy",patterns:[{match:",",name:"punctuation.definition.separator.groovy"},{begin:"=",beginCaptures:{"0":{name:"keyword.operator.assignment.groovy"}},end:"(?=,|\\))",name:"meta.parameter.default.groovy",patterns:[{include:"#groovy-code"}]},{include:"#parameters"}]}]}]},{begin:"(?=<)",end:"(?=\\s)",name:"meta.method.paramerised-type.groovy",patterns:[{begin:"<",end:">",name:"storage.type.parameters.groovy",patterns:[{include:"#types"},{match:",",name:"punctuation.definition.seperator.groovy"}]}]},{begin:"throws",beginCaptures:{"0":{name:"storage.modifier.groovy"}},end:"(?={|;)|^(?=\\s*(?:[^{\\s]|$))",name:"meta.throwables.groovy",patterns:[{include:"#object-types"}]},{begin:"{",end:"(?=})",name:"meta.method.body.java",patterns:[{include:"#groovy-code"}]}]},methods:{applyEndPatternLast:1,begin:"(?x:(?<=;|^|{)(?=\\s*\n (?:\n (?:private|protected|public|native|synchronized|abstract|threadsafe|transient|static|final) # visibility/modifier\n |\n (?:def)\n |\n (?:\n (?:\n (?:void|boolean|byte|char|short|int|float|long|double)\n |\n (?:@?(?:[a-zA-Z]\\w*\\.)*[A-Z]+\\w*) # object type\n )\n [\\[\\]]*\n (?:<.*>)?\n ) \n \n )\n \\s+\n ([^=]+\\s+)?\\w+\\s*\\(\n\t\t\t))",end:"}|(?=[^{])",name:"meta.definition.method.groovy",patterns:[{include:"#method-content"}]},nest_curly:{begin:"\\{",captures:{"0":{name:"punctuation.section.scope.groovy"}},end:"\\}",patterns:[{include:"#nest_curly"}]},numbers:{patterns:[{match:"((0(x|X)[0-9a-fA-F]*)|(\\+|-)?\\b(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)([LlFfUuDdg]|UL|ul)?\\b",name:"constant.numeric.groovy"}]},"object-types":{patterns:[{begin:"\\b((?:[a-z]\\w*\\.)*(?:[A-Z]+\\w*[a-z]+\\w*|UR[LI]))<",end:">|[^\\w\\s,\\?<\\[\\]]",name:"storage.type.generic.groovy",patterns:[{include:"#object-types"},{begin:"<",comment:"This is just to support <>'s with no actual type prefix",end:">|[^\\w\\s,\\[\\]<]",name:"storage.type.generic.groovy"}]},{begin:"\\b((?:[a-z]\\w*\\.)*[A-Z]+\\w*[a-z]+\\w*)(?=\\[)",end:"(?=[^\\]\\s])",name:"storage.type.object.array.groovy",patterns:[{begin:"\\[",end:"\\]",patterns:[{include:"#groovy"}]}]},{match:"\\b(?:[a-zA-Z]\\w*\\.)*(?:[A-Z]+\\w*[a-z]+\\w*|UR[LI])\\b",name:"storage.type.groovy"}]},"object-types-inherited":{patterns:[{begin:"\\b((?:[a-zA-Z]\\w*\\.)*[A-Z]+\\w*[a-z]+\\w*)<",end:">|[^\\w\\s,\\?<\\[\\]]",name:"entity.other.inherited-class.groovy",patterns:[{include:"#object-types-inherited"},{begin:"<",comment:"This is just to support <>'s with no actual type prefix",end:">|[^\\w\\s,\\[\\]<]",name:"storage.type.generic.groovy"}]},{captures:{"1":{name:"keyword.operator.dereference.groovy"}},match:"\\b(?:[a-zA-Z]\\w*(\\.))*[A-Z]+\\w*[a-z]+\\w*\\b",name:"entity.other.inherited-class.groovy"}]},parameters:{patterns:[{include:"#annotations"},{include:"#storage-modifiers"},{include:"#types"},{match:"\\w+",name:"variable.parameter.method.groovy"}]},parens:{begin:"\\(",end:"\\)",patterns:[{include:"#groovy-code"}]},"primitive-arrays":{patterns:[{match:"\\b(?:void|boolean|byte|char|short|int|float|long|double)(\\[\\])*\\b",name:"storage.type.primitive.array.groovy"}]},"primitive-types":{patterns:[{match:"\\b(?:void|boolean|byte|char|short|int|float|long|double)\\b",name:"storage.type.primitive.groovy"}]},regexp:{patterns:[{begin:"/(?=[^/]+/([^>]|$))",beginCaptures:{"0":{name:"punctuation.definition.string.regexp.begin.groovy"}},end:"/",endCaptures:{"0":{name:"punctuation.definition.string.regexp.end.groovy"}},name:"string.regexp.groovy",patterns:[{match:"\\\\.",name:"constant.character.escape.groovy"}]},{begin:"~\"",beginCaptures:{"0":{name:"punctuation.definition.string.regexp.begin.groovy"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.regexp.end.groovy"}},name:"string.regexp.compiled.groovy",patterns:[{match:"\\\\.",name:"constant.character.escape.groovy"}]}]},"storage-modifiers":{patterns:[{match:"\\b(private|protected|public)\\b",name:"storage.modifier.access-control.groovy"},{match:"\\b(static)\\b",name:"storage.modifier.static.groovy"},{match:"\\b(final)\\b",name:"storage.modifier.final.groovy"},{match:"\\b(native|synchronized|abstract|threadsafe|transient)\\b",name:"storage.modifier.other.groovy"}]},"string-quoted-double":{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.groovy"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.groovy"}},name:"string.quoted.double.groovy",patterns:[{include:"#string-quoted-double-contents"}]},"string-quoted-double-contents":{patterns:[{match:"\\\\.",name:"constant.character.escape.groovy"},{applyEndPatternLast:1,begin:"\\$\\w",end:"(?=\\W)",name:"variable.other.interpolated.groovy",patterns:[{match:"\\w",name:"variable.other.interpolated.groovy"},{match:"\\.",name:"keyword.other.dereference.groovy"}]},{begin:"\\$\\{",captures:{"0":{name:"punctuation.section.embedded.groovy"}},end:"\\}",name:"source.groovy.embedded.source",patterns:[{include:"#nest_curly"}]}]},"string-quoted-double-multiline":{begin:"\"\"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.groovy"}},end:"\"\"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.groovy"}},name:"string.quoted.double.multiline.groovy",patterns:[{include:"#string-quoted-double-contents"}]},"string-quoted-single":{begin:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.groovy"}},end:"'",endCaptures:{"0":{name:"punctuation.definition.string.end.groovy"}},name:"string.quoted.single.groovy",patterns:[{include:"#string-quoted-single-contents"}]},"string-quoted-single-contents":{patterns:[{match:"\\\\.",name:"constant.character.escape.groovy"}]},"string-quoted-single-multiline":{begin:"'''",beginCaptures:{"0":{name:"punctuation.definition.string.begin.groovy"}},end:"'''",endCaptures:{"0":{name:"punctuation.definition.string.end.groovy"}},name:"string.quoted.single.multiline.groovy",patterns:[{include:"#string-quoted-single-contents"}]},strings:{patterns:[{include:"#string-quoted-double-multiline"},{include:"#string-quoted-single-multiline"},{include:"#string-quoted-double"},{include:"#string-quoted-single"},{include:"#regexp"}]},structures:{begin:"\\[",beginCaptures:{"0":{name:"punctuation.definition.structure.begin.groovy"}},end:"\\]",endCaptures:{"0":{name:"punctuation.definition.structure.end.groovy"}},name:"meta.structure.groovy",patterns:[{include:"#groovy-code"},{match:",",name:"punctuation.definition.separator.groovy"}]},"support-functions":{patterns:[{match:"(?x)\\b(?:sprintf|print(?:f|ln)?)\\b",name:"support.function.print.groovy"},{match:"(?x)\\b(?:shouldFail|fail(?:NotEquals)?|ass(?:ume|ert(?:S(?:cript|ame)|N(?:ot(?:Same|\n\t\t\t\t\tNull)|ull)|Contains|T(?:hat|oString|rue)|Inspect|Equals|False|Length|\n\t\t\t\t\tArrayEquals)))\\b",name:"support.function.testing.groovy"}]},types:{patterns:[{match:"\\b(def)\\b",name:"storage.type.def.groovy"},{include:"#primitive-types"},{include:"#primitive-arrays"},{include:"#object-types"}]},values:{patterns:[{include:"#language-variables"},{include:"#strings"},{include:"#numbers"},{include:"#constants"},{include:"#types"},{include:"#structures"},{include:"#method-call"}]},variables:{applyEndPatternLast:1,patterns:[{begin:"(?x:(?=\n (?:\n (?:private|protected|public|native|synchronized|abstract|threadsafe|transient|static|final) # visibility/modifier\n |\n (?:def)\n |\n (?:void|boolean|byte|char|short|int|float|long|double)\n |\n (?:(?:[a-z]\\w*\\.)*[A-Z]+\\w*) # object type\n )\n \\s+\n [\\w\\d_<>\\[\\],\\s]+\n (?:=|$)\n \n \t\t\t))",end:";|$",name:"meta.definition.variable.groovy",patterns:[{match:"\\s"},{captures:{"1":{name:"constant.variable.groovy"}},match:"([A-Z_0-9]+)\\s+(?=\\=)"},{captures:{"1":{name:"meta.definition.variable.name.groovy"}},match:"(\\w[^\\s,]*)\\s+(?=\\=)"},{begin:"=",beginCaptures:{"0":{name:"keyword.operator.assignment.groovy"}},end:"$",patterns:[{include:"#groovy-code"}]},{captures:{"1":{name:"meta.definition.variable.name.groovy"}},match:"(\\w[^\\s=]*)(?=\\s*($|;))"},{include:"#groovy-code"}]}]}}}; + +export { groovy_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/hack.tmLanguage-b0111193.mjs b/docs/shiki/dist/languages/hack.tmLanguage-b0111193.mjs new file mode 100644 index 00000000..0b68a6b2 --- /dev/null +++ b/docs/shiki/dist/languages/hack.tmLanguage-b0111193.mjs @@ -0,0 +1,3 @@ +var hack_tmLanguage = {scopeName:"source.hack",name:"hack",fileTypes:["hh","php","hack"],foldingStartMarker:"(/\\*|\\{\\s*$|<<)",name:"comment.line.double-slash.php"}]}]},generics:{patterns:[{begin:"(<)",beginCaptures:{"1":{name:"punctuation.definition.generics.php"}},end:"(>)",endCaptures:{"1":{name:"punctuation.definition.generics.php"}},name:"meta.generics.php",patterns:[{include:"#comments"},{include:"#generics"},{match:"([-+])?([A-Za-z_][A-Za-z0-9_]*)(?:\\s+(as|super)\\s+([A-Za-z_][A-Za-z0-9_]*))?",name:"support.type.php"},{include:"#type-annotation"}]}]},"implements":{patterns:[{begin:"(?i)(implements)\\s+",beginCaptures:{"1":{name:"storage.modifier.implements.php"}},end:"(?i)(?=[;{])",patterns:[{include:"#comments"},{begin:"(?i)(?=[a-z0-9_\\\\]+)",contentName:"meta.other.inherited-class.php",end:"(?i)(?:\\s*(?:,|(?=[^a-z0-9_\\\\\\s]))\\s*)",patterns:[{begin:"(?i)(?=\\\\?[a-z_0-9]+\\\\)",end:"(?i)([a-z_][a-z_0-9]*)?(?=[^a-z0-9_\\\\])",endCaptures:{"1":{name:"entity.other.inherited-class.php"}},patterns:[{include:"#namespace"}]},{include:"#class-builtin"},{include:"#namespace"},{match:"(?i)[a-z_][a-z_0-9]*",name:"entity.other.inherited-class.php"}]}]}]},attributes:{patterns:[{begin:"(<<)(?!<)",beginCaptures:{"1":{name:"punctuation.definition.attributes.php"}},end:"(>>)",endCaptures:{"1":{name:"punctuation.definition.attributes.php"}},name:"meta.attributes.php",patterns:[{include:"#comments"},{match:"([A-Za-z_][A-Za-z0-9_]*)",name:"entity.other.attribute-name.php"},{begin:"(\\()",beginCaptures:{"1":{name:"punctuation.definition.parameters.begin.php"}},end:"(\\))",endCaptures:{"1":{name:"punctuation.definition.parameters.end.php"}},patterns:[{include:"#language"}]}]}]},constants:{patterns:[{begin:"(?xi)\n(?=\n (\n (\\\\[a-z_][a-z_0-9]*\\\\[a-z_][a-z_0-9\\\\]*)\n |\n ([a-z_][a-z_0-9]*\\\\[a-z_][a-z_0-9\\\\]*)\n )\n [^a-z_0-9\\\\]\n)",end:"(?i)([a-z_][a-z_0-9]*)?(?=[^a-z0-9_\\\\])",endCaptures:{"1":{name:"constant.other.php"}},patterns:[{include:"#namespace"}]},{begin:"(?=\\\\?[a-zA-Z_\\x{7f}-\\x{ff}])",end:"(?=[^\\\\a-zA-Z_\\x{7f}-\\x{ff}])",patterns:[{match:"(?i)\\b(TRUE|FALSE|NULL|__(FILE|DIR|FUNCTION|CLASS|METHOD|LINE|NAMESPACE)__)\\b",name:"constant.language.php"},{captures:{"1":{name:"punctuation.separator.inheritance.php"}},match:"(\\\\)?\\b(STD(IN|OUT|ERR)|ZEND_(THREAD_SAFE|DEBUG_BUILD)|DEFAULT_INCLUDE_PATH|P(HP_(R(OUND_HALF_(ODD|DOWN|UP|EVEN)|ELEASE_VERSION)|M(INOR_VERSION|A(XPATHLEN|JOR_VERSION))|BINDIR|S(HLIB_SUFFIX|YSCONFDIR|API)|CONFIG_FILE_(SCAN_DIR|PATH)|INT_(MAX|SIZE)|ZTS|O(S|UTPUT_HANDLER_(START|CONT|END))|D(EBUG|ATADIR)|URL_(SCHEME|HOST|USER|P(ORT|A(SS|TH))|QUERY|FRAGMENT)|PREFIX|E(XT(RA_VERSION|ENSION_DIR)|OL)|VERSION(_ID)?|WINDOWS_(NT_(SERVER|DOMAIN_CONTROLLER|WORKSTATION)|VERSION_(M(INOR|AJOR)|BUILD|S(UITEMASK|P_M(INOR|AJOR))|P(RODUCTTYPE|LATFORM)))|L(IBDIR|OCALSTATEDIR))|EAR_(INSTALL_DIR|EXTENSION_DIR))|E_(RECOVERABLE_ERROR|STRICT|NOTICE|CO(RE_(ERROR|WARNING)|MPILE_(ERROR|WARNING))|DEPRECATED|USER_(NOTICE|DEPRECATED|ERROR|WARNING)|PARSE|ERROR|WARNING|ALL))\\b",name:"support.constant.core.php"},{captures:{"1":{name:"punctuation.separator.inheritance.php"}},match:"(\\\\)?\\b(RADIXCHAR|GROUPING|M(_(1_PI|SQRT(1_2|2|3|PI)|2_(SQRTPI|PI)|PI(_(2|4))?|E(ULER)?|L(N(10|2|PI)|OG(10E|2E)))|ON_(GROUPING|1(1|2|0)?|7|2|8|THOUSANDS_SEP|3|DECIMAL_POINT|9|4|5|6))|S(TR_PAD_(RIGHT|BOTH|LEFT)|ORT_(REGULAR|STRING|NUMERIC|DESC|LOCALE_STRING|ASC)|EEK_(SET|CUR|END))|H(TML_(SPECIALCHARS|ENTITIES)|ASH_HMAC)|YES(STR|EXPR)|N(_(S(IGN_POSN|EP_BY_SPACE)|CS_PRECEDES)|O(STR|EXPR)|EGATIVE_SIGN|AN)|C(R(YPT_(MD5|BLOWFISH|S(HA(256|512)|TD_DES|ALT_LENGTH)|EXT_DES)|NCYSTR|EDITS_(G(ROUP|ENERAL)|MODULES|SAPI|DOCS|QA|FULLPAGE|ALL))|HAR_MAX|O(NNECTION_(NORMAL|TIMEOUT|ABORTED)|DESET|UNT_(RECURSIVE|NORMAL))|URRENCY_SYMBOL|ASE_(UPPER|LOWER))|__COMPILER_HALT_OFFSET__|T(HOUS(EP|ANDS_SEP)|_FMT(_AMPM)?)|IN(T_(CURR_SYMBOL|FRAC_DIGITS)|I_(S(YSTEM|CANNER_(RAW|NORMAL))|USER|PERDIR|ALL)|F(O_(GENERAL|MODULES|C(REDITS|ONFIGURATION)|ENVIRONMENT|VARIABLES|LICENSE|ALL))?)|D(_(T_FMT|FMT)|IRECTORY_SEPARATOR|ECIMAL_POINT|A(Y_(1|7|2|3|4|5|6)|TE_(R(SS|FC(1(123|036)|2822|8(22|50)|3339))|COOKIE|ISO8601|W3C|ATOM)))|UPLOAD_ERR_(NO_(TMP_DIR|FILE)|CANT_WRITE|INI_SIZE|OK|PARTIAL|EXTENSION|FORM_SIZE)|P(M_STR|_(S(IGN_POSN|EP_BY_SPACE)|CS_PRECEDES)|OSITIVE_SIGN|ATH(_SEPARATOR|INFO_(BASENAME|DIRNAME|EXTENSION|FILENAME)))|E(RA(_(YEAR|T_FMT|D_(T_FMT|FMT)))?|XTR_(REFS|SKIP|IF_EXISTS|OVERWRITE|PREFIX_(SAME|I(NVALID|F_EXISTS)|ALL))|NT_(NOQUOTES|COMPAT|IGNORE|QUOTES))|FRAC_DIGITS|L(C_(M(ONETARY|ESSAGES)|NUMERIC|C(TYPE|OLLATE)|TIME|ALL)|O(G_(MAIL|SYSLOG|N(O(TICE|WAIT)|DELAY|EWS)|C(R(IT|ON)|ONS)|INFO|ODELAY|D(EBUG|AEMON)|U(SER|UCP)|P(ID|ERROR)|E(RR|MERG)|KERN|WARNING|L(OCAL(1|7|2|3|4|5|0|6)|PR)|A(UTH(PRIV)?|LERT))|CK_(SH|NB|UN|EX)))|A(M_STR|B(MON_(1(1|2|0)?|7|2|8|3|9|4|5|6)|DAY_(1|7|2|3|4|5|6))|SSERT_(BAIL|CALLBACK|QUIET_EVAL|WARNING|ACTIVE)|LT_DIGITS))\\b",name:"support.constant.std.php"},{captures:{"1":{name:"punctuation.separator.inheritance.php"}},match:"(\\\\)?\\b(GLOB_(MARK|BRACE|NO(SORT|CHECK|ESCAPE)|ONLYDIR|ERR|AVAILABLE_FLAGS)|XML_(SAX_IMPL|HTML_DOCUMENT_NODE|N(OTATION_NODE|AMESPACE_DECL_NODE)|C(OMMENT_NODE|DATA_SECTION_NODE)|TEXT_NODE|OPTION_(SKIP_(TAGSTART|WHITE)|CASE_FOLDING|TARGET_ENCODING)|D(TD_NODE|OCUMENT_(NODE|TYPE_NODE|FRAG_NODE))|PI_NODE|E(RROR_(RECURSIVE_ENTITY_REF|MISPLACED_XML_PI|B(INARY_ENTITY_REF|AD_CHAR_REF)|SYNTAX|NO(NE|_(MEMORY|ELEMENTS))|TAG_MISMATCH|IN(CORRECT_ENCODING|VALID_TOKEN)|DUPLICATE_ATTRIBUTE|UN(CLOSED_(CDATA_SECTION|TOKEN)|DEFINED_ENTITY|KNOWN_ENCODING)|JUNK_AFTER_DOC_ELEMENT|PAR(TIAL_CHAR|AM_ENTITY_REF)|EXTERNAL_ENTITY_HANDLING|A(SYNC_ENTITY|TTRIBUTE_EXTERNAL_ENTITY_REF))|NTITY_(REF_NODE|NODE|DECL_NODE)|LEMENT_(NODE|DECL_NODE))|LOCAL_NAMESPACE|ATTRIBUTE_(N(MTOKEN(S)?|O(TATION|DE))|CDATA|ID(REF(S)?)?|DECL_NODE|EN(TITY|UMERATION)))|M(HASH_(RIPEMD(1(28|60)|256|320)|GOST|MD(2|4|5)|S(HA(1|2(24|56)|384|512)|NEFRU256)|HAVAL(1(28|92|60)|2(24|56))|CRC32(B)?|TIGER(1(28|60))?|WHIRLPOOL|ADLER32)|YSQL(_(BOTH|NUM|CLIENT_(SSL|COMPRESS|I(GNORE_SPACE|NTERACTIVE))|ASSOC)|I_(RE(PORT_(STRICT|INDEX|OFF|ERROR|ALL)|FRESH_(GRANT|MASTER|BACKUP_LOG|S(TATUS|LAVE)|HOSTS|T(HREADS|ABLES)|LOG)|AD_DEFAULT_(GROUP|FILE))|GROUP_FLAG|MULTIPLE_KEY_FLAG|B(INARY_FLAG|OTH|LOB_FLAG)|S(T(MT_ATTR_(CURSOR_TYPE|UPDATE_MAX_LENGTH|PREFETCH_ROWS)|ORE_RESULT)|E(RVER_QUERY_(NO_(GOOD_INDEX_USED|INDEX_USED)|WAS_SLOW)|T_(CHARSET_NAME|FLAG)))|N(O(_D(EFAULT_VALUE_FLAG|ATA)|T_NULL_FLAG)|UM(_FLAG)?)|C(URSOR_TYPE_(READ_ONLY|SCROLLABLE|NO_CURSOR|FOR_UPDATE)|LIENT_(SSL|NO_SCHEMA|COMPRESS|I(GNORE_SPACE|NTERACTIVE)|FOUND_ROWS))|T(YPE_(GEOMETRY|MEDIUM_BLOB|B(IT|LOB)|S(HORT|TRING|ET)|YEAR|N(ULL|EWD(ECIMAL|ATE))|CHAR|TI(ME(STAMP)?|NY(_BLOB)?)|INT(24|ERVAL)|D(OUBLE|ECIMAL|ATE(TIME)?)|ENUM|VAR_STRING|FLOAT|LONG(_BLOB|LONG)?)|IMESTAMP_FLAG)|INIT_COMMAND|ZEROFILL_FLAG|O(N_UPDATE_NOW_FLAG|PT_(NET_(READ_BUFFER_SIZE|CMD_BUFFER_SIZE)|CONNECT_TIMEOUT|INT_AND_FLOAT_NATIVE|LOCAL_INFILE))|D(EBUG_TRACE_ENABLED|ATA_TRUNCATED)|U(SE_RESULT|N(SIGNED_FLAG|IQUE_KEY_FLAG))|P(RI_KEY_FLAG|ART_KEY_FLAG)|ENUM_FLAG|A(S(SOC|YNC)|UTO_INCREMENT_FLAG)))|CRYPT_(R(C(2|6)|IJNDAEL_(1(28|92)|256)|AND)|GOST|XTEA|M(ODE_(STREAM|NOFB|C(BC|FB)|OFB|ECB)|ARS)|BLOWFISH(_COMPAT)?|S(ERPENT|KIPJACK|AFER(128|PLUS|64))|C(RYPT|AST_(128|256))|T(RIPLEDES|HREEWAY|WOFISH)|IDEA|3DES|DE(S|CRYPT|V_(RANDOM|URANDOM))|PANAMA|EN(CRYPT|IGNA)|WAKE|LOKI97|ARCFOUR(_IV)?))|S(TREAM_(REPORT_ERRORS|M(UST_SEEK|KDIR_RECURSIVE)|BUFFER_(NONE|FULL|LINE)|S(HUT_(RD(WR)?|WR)|OCK_(R(DM|AW)|S(TREAM|EQPACKET)|DGRAM)|ERVER_(BIND|LISTEN))|NOTIFY_(RE(SOLVE|DIRECTED)|MIME_TYPE_IS|SEVERITY_(INFO|ERR|WARN)|CO(MPLETED|NNECT)|PROGRESS|F(ILE_SIZE_IS|AILURE)|AUTH_RE(SULT|QUIRED))|C(RYPTO_METHOD_(SSLv(2(_(SERVER|CLIENT)|3_(SERVER|CLIENT))|3_(SERVER|CLIENT))|TLS_(SERVER|CLIENT))|LIENT_(CONNECT|PERSISTENT|ASYNC_CONNECT)|AST_(FOR_SELECT|AS_STREAM))|I(GNORE_URL|S_URL|PPROTO_(RAW|TCP|I(CMP|P)|UDP))|O(OB|PTION_(READ_(BUFFER|TIMEOUT)|BLOCKING|WRITE_BUFFER))|U(RL_STAT_(QUIET|LINK)|SE_PATH)|P(EEK|F_(INET(6)?|UNIX))|ENFORCE_SAFE_MODE|FILTER_(READ|WRITE|ALL))|UNFUNCS_RET_(STRING|TIMESTAMP|DOUBLE)|QLITE(_(R(OW|EADONLY)|MIS(MATCH|USE)|B(OTH|USY)|SCHEMA|N(O(MEM|T(FOUND|ADB)|LFS)|UM)|C(O(RRUPT|NSTRAINT)|ANTOPEN)|TOOBIG|I(NTER(RUPT|NAL)|OERR)|OK|DONE|P(ROTOCOL|ERM)|E(RROR|MPTY)|F(ORMAT|ULL)|LOCKED|A(BORT|SSOC|UTH))|3_(B(OTH|LOB)|NU(M|LL)|TEXT|INTEGER|OPEN_(READ(ONLY|WRITE)|CREATE)|FLOAT|ASSOC)))|CURL(M(SG_DONE|_(BAD_(HANDLE|EASY_HANDLE)|CALL_MULTI_PERFORM|INTERNAL_ERROR|O(UT_OF_MEMORY|K)))|SSH_AUTH_(HOST|NONE|DEFAULT|P(UBLICKEY|ASSWORD)|KEYBOARD)|CLOSEPOLICY_(SLOWEST|CALLBACK|OLDEST|LEAST_(RECENTLY_USED|TRAFFIC))|_(HTTP_VERSION_(1_(1|0)|NONE)|NETRC_(REQUIRED|IGNORED|OPTIONAL)|TIMECOND_(IF(MODSINCE|UNMODSINCE)|LASTMOD)|IPRESOLVE_(V(4|6)|WHATEVER)|VERSION_(SSL|IPV6|KERBEROS4|LIBZ))|INFO_(RE(DIRECT_(COUNT|TIME)|QUEST_SIZE)|S(SL_VERIFYRESULT|TARTTRANSFER_TIME|IZE_(DOWNLOAD|UPLOAD)|PEED_(DOWNLOAD|UPLOAD))|H(TTP_CODE|EADER_(SIZE|OUT))|NAMELOOKUP_TIME|C(ON(NECT_TIME|TENT_(TYPE|LENGTH_(DOWNLOAD|UPLOAD)))|ERTINFO)|TOTAL_TIME|PR(IVATE|ETRANSFER_TIME)|EFFECTIVE_URL|FILETIME)|OPT_(R(E(SUME_FROM|TURNTRANSFER|DIR_PROTOCOLS|FERER|AD(DATA|FUNCTION))|AN(GE|DOM_FILE))|MAX(REDIRS|CONNECTS)|B(INARYTRANSFER|UFFERSIZE)|S(S(H_(HOST_PUBLIC_KEY_MD5|P(RIVATE_KEYFILE|UBLIC_KEYFILE)|AUTH_TYPES)|L(CERT(TYPE|PASSWD)?|_(CIPHER_LIST|VERIFY(HOST|PEER))|ENGINE(_DEFAULT)?|VERSION|KEY(TYPE|PASSWD)?))|TDERR)|H(TTP(GET|HEADER|200ALIASES|_VERSION|PROXYTUNNEL|AUTH)|EADER(FUNCTION)?)|N(O(BODY|SIGNAL|PROGRESS)|ETRC)|C(RLF|O(NNECTTIMEOUT(_MS)?|OKIE(SESSION|JAR|FILE)?)|USTOMREQUEST|ERTINFO|LOSEPOLICY|A(INFO|PATH))|T(RANSFERTEXT|CP_NODELAY|IME(CONDITION|OUT(_MS)?|VALUE))|I(N(TERFACE|FILE(SIZE)?)|PRESOLVE)|DNS_(CACHE_TIMEOUT|USE_GLOBAL_CACHE)|U(RL|SER(PWD|AGENT)|NRESTRICTED_AUTH|PLOAD)|P(R(IVATE|O(GRESSFUNCTION|XY(TYPE|USERPWD|PORT|AUTH)?|TOCOLS))|O(RT|ST(REDIR|QUOTE|FIELDS)?)|UT)|E(GDSOCKET|NCODING)|VERBOSE|K(RB4LEVEL|EYPASSWD)|QUOTE|F(RESH_CONNECT|TP(SSLAUTH|_(S(SL|KIP_PASV_IP)|CREATE_MISSING_DIRS|USE_EP(RT|SV)|FILEMETHOD)|PORT|LISTONLY|APPEND)|ILE(TIME)?|O(RBID_REUSE|LLOWLOCATION)|AILONERROR)|WRITE(HEADER|FUNCTION)|LOW_SPEED_(TIME|LIMIT)|AUTOREFERER)|PRO(XY_(SOCKS(4|5)|HTTP)|TO_(S(CP|FTP)|HTTP(S)?|T(ELNET|FTP)|DICT|F(TP(S)?|ILE)|LDAP(S)?|ALL))|E_(RE(CV_ERROR|AD_ERROR)|GOT_NOTHING|MALFORMAT_USER|BAD_(C(ONTENT_ENCODING|ALLING_ORDER)|PASSWORD_ENTERED|FUNCTION_ARGUMENT)|S(S(H|L_(C(IPHER|ONNECT_ERROR|ERTPROBLEM|ACERT)|PEER_CERTIFICATE|ENGINE_(SETFAILED|NOTFOUND)))|HARE_IN_USE|END_ERROR)|HTTP_(RANGE_ERROR|NOT_FOUND|PO(RT_FAILED|ST_ERROR))|COULDNT_(RESOLVE_(HOST|PROXY)|CONNECT)|T(OO_MANY_REDIRECTS|ELNET_OPTION_SYNTAX)|O(BSOLETE|UT_OF_MEMORY|PERATION_TIMEOUTED|K)|U(RL_MALFORMAT(_USER)?|N(SUPPORTED_PROTOCOL|KNOWN_TELNET_OPTION))|PARTIAL_FILE|F(TP_(BAD_DOWNLOAD_RESUME|SSL_FAILED|C(OULDNT_(RETR_FILE|GET_SIZE|S(TOR_FILE|ET_(BINARY|ASCII))|USE_REST)|ANT_(RECONNECT|GET_HOST))|USER_PASSWORD_INCORRECT|PORT_FAILED|QUOTE_ERROR|W(RITE_ERROR|EIRD_(SERVER_REPLY|227_FORMAT|USER_REPLY|PAS(S_REPLY|V_REPLY)))|ACCESS_DENIED)|ILE(SIZE_EXCEEDED|_COULDNT_READ_FILE)|UNCTION_NOT_FOUND|AILED_INIT)|WRITE_ERROR|L(IBRARY_NOT_FOUND|DAP_(SEARCH_FAILED|CANNOT_BIND|INVALID_URL))|ABORTED_BY_CALLBACK)|VERSION_NOW|FTP(METHOD_(MULTICWD|SINGLECWD|NOCWD)|SSL_(NONE|CONTROL|TRY|ALL)|AUTH_(SSL|TLS|DEFAULT))|AUTH_(GSSNEGOTIATE|BASIC|NTLM|DIGEST|ANY(SAFE)?))|I(MAGETYPE_(GIF|XBM|BMP|SWF|COUNT|TIFF_(MM|II)|I(CO|FF)|UNKNOWN|J(B2|P(X|2|C|EG(2000)?))|P(SD|NG)|WBMP)|NPUT_(REQUEST|GET|SE(RVER|SSION)|COOKIE|POST|ENV)|CONV_(MIME_DECODE_(STRICT|CONTINUE_ON_ERROR)|IMPL|VERSION))|D(NS_(MX|S(RV|OA)|HINFO|N(S|APTR)|CNAME|TXT|PTR|A(NY|LL|AAA|6)?)|OM(STRING_SIZE_ERR|_(SYNTAX_ERR|HIERARCHY_REQUEST_ERR|N(O(_(MODIFICATION_ALLOWED_ERR|DATA_ALLOWED_ERR)|T_(SUPPORTED_ERR|FOUND_ERR))|AMESPACE_ERR)|IN(DEX_SIZE_ERR|USE_ATTRIBUTE_ERR|VALID_(MODIFICATION_ERR|STATE_ERR|CHARACTER_ERR|ACCESS_ERR))|PHP_ERR|VALIDATION_ERR|WRONG_DOCUMENT_ERR)))|JSON_(HEX_(TAG|QUOT|A(MP|POS))|NUMERIC_CHECK|ERROR_(S(YNTAX|TATE_MISMATCH)|NONE|CTRL_CHAR|DEPTH|UTF8)|FORCE_OBJECT)|P(REG_(RECURSION_LIMIT_ERROR|GREP_INVERT|BA(CKTRACK_LIMIT_ERROR|D_UTF8_(OFFSET_ERROR|ERROR))|S(PLIT_(NO_EMPTY|OFFSET_CAPTURE|DELIM_CAPTURE)|ET_ORDER)|NO_ERROR|INTERNAL_ERROR|OFFSET_CAPTURE|PATTERN_ORDER)|SFS_(PASS_ON|ERR_FATAL|F(EED_ME|LAG_(NORMAL|FLUSH_(CLOSE|INC))))|CRE_VERSION|OSIX_(R_OK|X_OK|S_IF(REG|BLK|SOCK|CHR|IFO)|F_OK|W_OK))|F(NM_(NOESCAPE|CASEFOLD|P(ERIOD|ATHNAME))|IL(TER_(REQUIRE_(SCALAR|ARRAY)|SANITIZE_(MAGIC_QUOTES|S(TRI(NG|PPED)|PECIAL_CHARS)|NUMBER_(INT|FLOAT)|URL|E(MAIL|NCODED)|FULL_SPECIAL_CHARS)|NULL_ON_FAILURE|CALLBACK|DEFAULT|UNSAFE_RAW|VALIDATE_(REGEXP|BOOLEAN|I(NT|P)|URL|EMAIL|FLOAT)|F(ORCE_ARRAY|LAG_(S(CHEME_REQUIRED|TRIP_(BACKTICK|HIGH|LOW))|HOST_REQUIRED|NO(NE|_(RES_RANGE|PRIV_RANGE|ENCODE_QUOTES))|IPV(4|6)|PATH_REQUIRED|E(MPTY_STRING_NULL|NCODE_(HIGH|LOW|AMP))|QUERY_REQUIRED|ALLOW_(SCIENTIFIC|HEX|THOUSAND|OCTAL|FRACTION))))|E(_(BINARY|SKIP_EMPTY_LINES|NO_DEFAULT_CONTEXT|TEXT|IGNORE_NEW_LINES|USE_INCLUDE_PATH|APPEND)|INFO_(RAW|MIME(_(TYPE|ENCODING))?|SYMLINK|NONE|CONTINUE|DEVICES|PRESERVE_ATIME)))|ORCE_(GZIP|DEFLATE))|LIBXML_(XINCLUDE|N(SCLEAN|O(XMLDECL|BLANKS|NET|CDATA|E(RROR|MPTYTAG|NT)|WARNING))|COMPACT|D(TD(VALID|LOAD|ATTR)|OTTED_VERSION)|PARSEHUGE|ERR_(NONE|ERROR|FATAL|WARNING)|VERSION|LOADED_VERSION))\\b",name:"support.constant.ext.php"},{captures:{"1":{name:"punctuation.separator.inheritance.php"}},match:"(\\\\)?\\bT_(RE(TURN|QUIRE(_ONCE)?)|G(OTO|LOBAL)|XOR_EQUAL|M(INUS_EQUAL|OD_EQUAL|UL_EQUAL|ETHOD_C|L_COMMENT)|B(REAK|OOL(_CAST|EAN_(OR|AND))|AD_CHARACTER)|S(R(_EQUAL)?|T(RING(_(CAST|VARNAME))?|A(RT_HEREDOC|TIC))|WITCH|L(_EQUAL)?)|HALT_COMPILER|N(S_(SEPARATOR|C)|UM_STRING|EW|AMESPACE)|C(HARACTER|O(MMENT|N(ST(ANT_ENCAPSED_STRING)?|CAT_EQUAL|TINUE))|URLY_OPEN|L(O(SE_TAG|NE)|ASS(_C)?)|A(SE|TCH))|T(RY|HROW)|I(MPLEMENTS|S(SET|_(GREATER_OR_EQUAL|SMALLER_OR_EQUAL|NOT_(IDENTICAL|EQUAL)|IDENTICAL|EQUAL))|N(STANCEOF|C(LUDE(_ONCE)?)?|T(_CAST|ERFACE)|LINE_HTML)|F)|O(R_EQUAL|BJECT_(CAST|OPERATOR)|PEN_TAG(_WITH_ECHO)?|LD_FUNCTION)|D(NUMBER|I(R|V_EQUAL)|O(C_COMMENT|UBLE_(C(OLON|AST)|ARROW)|LLAR_OPEN_CURLY_BRACES)?|E(C(LARE)?|FAULT))|U(SE|NSET(_CAST)?)|P(R(I(NT|VATE)|OTECTED)|UBLIC|LUS_EQUAL|AAMAYIM_NEKUDOTAYIM)|E(X(TENDS|IT)|MPTY|N(CAPSED_AND_WHITESPACE|D(SWITCH|_HEREDOC|IF|DECLARE|FOR(EACH)?|WHILE))|CHO|VAL|LSE(IF)?)|VAR(IABLE)?|F(I(NAL|LE)|OR(EACH)?|UNC(_C|TION))|WHI(TESPACE|LE)|L(NUMBER|I(ST|NE)|OGICAL_(XOR|OR|AND))|A(RRAY(_CAST)?|BSTRACT|S|ND_EQUAL))\\b",name:"support.constant.parser-token.php"},{comment:"In PHP, any identifier which is not a variable is taken to be a constant.\nHowever, if there is no constant defined with the given name then a notice\nis generated and the constant is assumed to have the value of its name.",match:"[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*",name:"constant.other.php"}]}]},"function-return-type":{patterns:[{begin:"(:)",beginCaptures:{"1":{name:"punctuation.definition.type.php"}},end:"(?=[{;])",patterns:[{include:"#comments"},{include:"#type-annotation"},{include:"#class-name"}]}]},"type-annotation":{name:"support.type.php",patterns:[{match:"\\b(?:bool|int|float|string|resource|mixed|arraykey|nonnull|dict|vec|keyset)\\b",name:"support.type.php"},{begin:"([A-Za-z_][A-Za-z0-9_]*)<",beginCaptures:{"1":{name:"support.class.php"}},end:">",patterns:[{include:"#type-annotation"}]},{begin:"(shape\\()",end:"((,|\\.\\.\\.)?\\s*\\))",endCaptures:{"1":{name:"keyword.operator.key.php"}},name:"storage.type.shape.php",patterns:[{include:"#type-annotation"},{include:"#strings"},{include:"#constants"}]},{begin:"\\(",end:"\\)",patterns:[{include:"#type-annotation"}]},{include:"#class-name"},{include:"#comments"}]},"function-arguments":{patterns:[{include:"#comments"},{include:"#attributes"},{include:"#type-annotation"},{begin:"(?xi)((\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) # The variable name",end:"(?xi)\n\\s*(?=,|\\)|$) # A closing parentheses (end of argument list) or a comma",beginCaptures:{"1":{name:"variable.other.php"},"2":{name:"punctuation.definition.variable.php"}},patterns:[{begin:"(=)",end:"(?=,|\\))",beginCaptures:{"1":{name:"keyword.operator.assignment.php"}},patterns:[{include:"#language"}]}]}]},"literal-collections":{patterns:[{begin:"(Vector|ImmVector|Set|ImmSet|Map|ImmMap|Pair)\\s*({)",end:"(})",beginCaptures:{"1":{name:"support.class.php"},"2":{name:"punctuation.section.array.begin.php"}},endCaptures:{"1":{name:"punctuation.section.array.end.php"}},name:"meta.collection.literal.php",patterns:[{include:"#language"}]}]},"function-call":{patterns:[{begin:"(?i)(?=\\\\?[a-z_0-9\\\\]+\\\\[a-z_][a-z0-9_]*\\s*\\()",comment:"Functions in a user-defined namespace (overrides any built-ins)",end:"(?=\\s*\\()",patterns:[{include:"#user-function-call"}]},{match:"(?i)\\b(print|echo)\\b",name:"support.function.construct.php"},{begin:"(?i)(\\\\)?(?=\\b[a-z_][a-z_0-9]*\\s*\\()",beginCaptures:{"1":{name:"punctuation.separator.inheritance.php"}},comment:"Root namespace function calls (built-in or user)",end:"(?=\\s*\\()",patterns:[{match:"(?i)\\b(isset|unset|e(val|mpty)|list)(?=\\s*\\()",name:"support.function.construct.php"},{include:"#support"},{include:"#user-function-call"}]}]},heredoc:{patterns:[{begin:"<<<\\s*(\"?)([a-zA-Z_]+[a-zA-Z0-9_]*)(\\1)\\s*$",beginCaptures:{"2":{name:"keyword.operator.heredoc.php"}},end:"^(\\2)(?=;?$)",endCaptures:{"1":{name:"keyword.operator.heredoc.php"}},name:"string.unquoted.heredoc.php",patterns:[{include:"#interpolation"}]},{begin:"<<<\\s*('?)([a-zA-Z_]+[a-zA-Z0-9_]*)(\\1)\\s*$",beginCaptures:{"2":{name:"keyword.operator.heredoc.php"}},end:"^(\\2)(?=;?$)",endCaptures:{"1":{name:"keyword.operator.heredoc.php"}},name:"string.unquoted.heredoc.nowdoc.php"}]},instantiation:{begin:"(?i)(new)\\s+",beginCaptures:{"1":{name:"keyword.other.new.php"}},end:"(?i)(?=[^$a-z0-9_\\\\])",patterns:[{match:"(parent|static|self)(?=[^a-z0-9_])",name:"support.type.php"},{include:"#class-name"},{include:"#variable-name"}]},interpolation:{comment:"http://www.php.net/manual/en/language.types.string.php#language.types.string.parsing",patterns:[{comment:"Interpolating octal values e.g. \\01 or \\07.",match:"\\\\[0-7]{1,3}",name:"constant.numeric.octal.php"},{comment:"Interpolating hex values e.g. \\x1 or \\xFF.",match:"\\\\x[0-9A-Fa-f]{1,2}",name:"constant.numeric.hex.php"},{comment:"Escaped characters in double-quoted strings e.g. \\n or \\t.",match:"\\\\[nrt\\\\\\$\\\"]",name:"constant.character.escape.php"},{comment:"Interpolating expressions in double-quoted strings with {} e.g. {$x->y->z[0][1]}.",match:"(\\{\\$.*?\\})",name:"variable.other.php"},{comment:"Interpolating simple variables, e.g. $x, $x->y, $x[z] but not $x->y->z.",match:"(\\$[a-zA-Z_][a-zA-Z0-9_]*((->[a-zA-Z_][a-zA-Z0-9_]*)|(\\[[a-zA-Z0-9_]+\\]))?)",name:"variable.other.php"}]},"invoke-call":{captures:{"1":{name:"punctuation.definition.variable.php"},"2":{name:"variable.other.php"}},match:"(?i)(\\$+)([a-z_][a-z_0-9]*)(?=\\s*\\()",name:"meta.function-call.invoke.php"},"interface":{begin:"^(?i)\\s*(?:(public|internal)\\s+)?(interface)\\b",beginCaptures:{"1":{name:"storage.modifier.php"},"2":{name:"storage.type.interface.php"}},name:"meta.interface.php",end:"(?=[;{])",patterns:[{include:"#comments"},{match:"\\b(extends)\\b",captures:{"1":{name:"storage.modifier.extends.php"}}},{include:"#generics"},{include:"#namespace"},{match:"(?i)[a-z0-9_]+",name:"entity.name.type.class.php"}]},language:{patterns:[{include:"#comments"},{begin:"(?=^\\s*<<)",end:"(?<=>>)",patterns:[{include:"#attributes"}]},{include:"#xhp"},{include:"#interface"},{begin:"(?xi)\n^\\s*\n(?:(module)\\s*)?(type|newtype)\n\\s+\n([a-z0-9_]+)",beginCaptures:{"1":{name:"storage.modifier.php"},"2":{name:"storage.type.typedecl.php"},"3":{name:"entity.name.type.typedecl.php"}},end:"(;)",endCaptures:{"1":{name:"punctuation.termination.expression.php"}},name:"meta.typedecl.php",patterns:[{include:"#comments"},{include:"#generics"},{match:"(=)",name:"keyword.operator.assignment.php"},{include:"#type-annotation"}]},{begin:"(?i)^\\s*(?:(public|internal)\\s+)?(enum)\\s+(class)\\s+([a-z0-9_]+)\\s*:?",beginCaptures:{"1":{name:"storage.modifier.php"},"2":{name:"storage.modifier.php"},"3":{name:"storage.type.class.enum.php"},"4":{name:"entity.name.type.class.enum.php"}},end:"(?=[{])",name:"meta.class.enum.php",patterns:[{match:"\\b(extends)\\b",name:"storage.modifier.extends.php"},{include:"#type-annotation"}]},{begin:"(?i)^\\s*(?:(public|internal)\\s+)?(enum)\\s+([a-z0-9_]+)\\s*:?",beginCaptures:{"1":{name:"storage.modifier.php"},"2":{name:"storage.type.enum.php"},"3":{name:"entity.name.type.enum.php"}},end:"\\{",name:"meta.enum.php",patterns:[{include:"#comments"},{include:"#type-annotation"}]},{begin:"(?i)^\\s*(?:(public|internal)\\s+)?(trait)\\s+([a-z0-9_]+)\\s*",beginCaptures:{"1":{name:"storage.modifier.php"},"2":{name:"storage.type.trait.php"},"3":{name:"entity.name.type.class.php"}},end:"(?=[{])",name:"meta.trait.php",patterns:[{include:"#comments"},{include:"#generics"},{include:"#implements"}]},{begin:"^\\s*(new)\\s+(module)\\s+([A-Za-z0-9_\\.]+)\\b",beginCaptures:{"1":{name:"storage.type.module.php"},"2":{name:"storage.type.module.php"},"3":{name:"entity.name.type.module.php"}},end:"(?=[{])",name:"meta.module.php",patterns:[{include:"#comments"}]},{begin:"^\\s*(module)\\s+([A-Za-z0-9_\\.]+)\\b",beginCaptures:{"1":{name:"keyword.other.module.php"},"2":{name:"entity.name.type.module.php"}},end:"$|(?=[\\s;])",name:"meta.use.module.php",patterns:[{include:"#comments"}]},{begin:"(?i)(?:^\\s*|\\s*)(namespace)\\b\\s+(?=([a-z0-9_\\\\]*\\s*($|[;{]|(\\/[\\/*])))|$)",beginCaptures:{"1":{name:"keyword.other.namespace.php"}},contentName:"entity.name.type.namespace.php",end:"(?i)(?=\\s*$|[^a-z0-9_\\\\])",name:"meta.namespace.php",patterns:[{match:"\\\\",name:"punctuation.separator.inheritance.php"}]},{begin:"(?i)\\s*\\b(use)\\s+",beginCaptures:{"1":{name:"keyword.other.use.php"}},end:"(?=;|(?:^\\s*$))",name:"meta.use.php",patterns:[{include:"#comments"},{begin:"(?i)\\s*(?=[a-z_0-9\\\\])",end:"(?xi)\n(?:\n (?:\\s*(as)\\b\\s*([a-z_0-9]*)\\s*(?=,|;|$))|\n (?=,|;|$)\n)",endCaptures:{"1":{name:"keyword.other.use-as.php"},"2":{name:"support.other.namespace.use-as.php"}},patterns:[{include:"#class-builtin"},{begin:"(?i)\\s*(?=[\\\\a-z_0-9])",end:"$|(?=[\\s,;])",name:"support.other.namespace.use.php",patterns:[{match:"\\\\",name:"punctuation.separator.inheritance.php"}]}]},{match:"\\s*,\\s*"}]},{begin:"(?i)^\\s*((?:(?:final|abstract|public|internal)\\s+)*)(class)\\s+([a-z0-9_]+)\\s*",beginCaptures:{"1":{patterns:[{match:"final|abstract|public|internal",name:"storage.modifier.php"}]},"2":{name:"storage.type.class.php"},"3":{name:"entity.name.type.class.php"}},end:"(?=[;{])",name:"meta.class.php",patterns:[{include:"#comments"},{include:"#generics"},{include:"#implements"},{begin:"(?i)(extends)\\s+",beginCaptures:{"1":{name:"storage.modifier.extends.php"}},contentName:"meta.other.inherited-class.php",end:"(?i)(?=[^a-z_0-9\\\\])",patterns:[{begin:"(?i)(?=\\\\?[a-z_0-9]+\\\\)",end:"(?i)([a-z_][a-z_0-9]*)?(?=[^a-z0-9_\\\\])",endCaptures:{"1":{name:"entity.other.inherited-class.php"}},patterns:[{include:"#namespace"}]},{include:"#class-builtin"},{include:"#namespace"},{match:"(?i)[a-z_][a-z_0-9]*",name:"entity.other.inherited-class.php"}]}]},{captures:{"1":{name:"keyword.control.php"}},match:"\\s*\\b(await|break|c(ase|ontinue)|concurrent|default|do|else|for(each)?|if|return|switch|use|while)\\b"},{begin:"(?i)\\b((?:require|include)(?:_once)?)\\b\\s*",beginCaptures:{"1":{name:"keyword.control.import.include.php"}},end:"(?=\\s|;|$)",name:"meta.include.php",patterns:[{include:"#language"}]},{begin:"\\b(catch)\\s*(\\()",beginCaptures:{"1":{name:"keyword.control.exception.catch.php"},"2":{name:"punctuation.definition.parameters.begin.bracket.round.php"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.parameters.end.bracket.round.php"}},name:"meta.catch.php",patterns:[{include:"#namespace"},{match:"(?xi)\n([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*) # Exception class\n((?:\\s*\\|\\s*[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)*) # Optional additional exception classes\n\\s*\n((\\$+)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*) # Variable",captures:{"1":{name:"support.class.exception.php"},"2":{patterns:[{match:"(?i)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*",name:"support.class.exception.php"},{match:"\\|",name:"punctuation.separator.delimiter.php"}]},"3":{name:"variable.other.php"},"4":{name:"punctuation.definition.variable.php"}}}]},{match:"\\b(catch|try|throw|exception|finally)\\b",name:"keyword.control.exception.php"},{begin:"(?i)\\s*(?:(public|internal)\\s+)?(function)\\s*(?=\\()",beginCaptures:{"1":{name:"storage.modifier.php"},"2":{name:"storage.type.function.php"}},end:"\\{|\\)",name:"meta.function.closure.php",patterns:[{begin:"(\\()",beginCaptures:{"1":{name:"punctuation.definition.parameters.begin.php"}},contentName:"meta.function.arguments.php",end:"(\\))",endCaptures:{"1":{name:"punctuation.definition.parameters.end.php"}},patterns:[{include:"#function-arguments"}]},{begin:"(?i)(use)\\s*(\\()",beginCaptures:{"1":{name:"keyword.other.function.use.php"},"2":{name:"punctuation.definition.parameters.begin.php"}},end:"(\\))",endCaptures:{"1":{name:"punctuation.definition.parameters.end.php"}},patterns:[{captures:{"1":{name:"storage.modifier.reference.php"},"2":{name:"variable.other.php"},"3":{name:"punctuation.definition.variable.php"}},match:"(?:\\s*(&))?\\s*((\\$+)[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\\s*(?=,|\\))",name:"meta.function.closure.use.php"}]}]},{begin:"(?x)\n\\s*((?:(?:final|abstract|public|private|protected|internal|static|async)\\s+)*)\n(function)\n(?:\\s+)\n(?:\n (__(?:call|construct|destruct|get|set|isset|unset|tostring|clone|set_state|sleep|wakeup|autoload|invoke|callStatic|dispose|disposeAsync)(?=[^a-zA-Z0-9_\\x7f-\\xff]))\n |\n ([a-zA-Z0-9_]+)\n)",beginCaptures:{"1":{patterns:[{match:"final|abstract|public|private|protected|internal|static|async",name:"storage.modifier.php"}]},"2":{name:"storage.type.function.php"},"3":{name:"support.function.magic.php"},"4":{name:"entity.name.function.php"},"5":{name:"meta.function.generics.php"}},end:"(?=[{;])",name:"meta.function.php",patterns:[{include:"#generics"},{begin:"(\\()",beginCaptures:{"1":{name:"punctuation.definition.parameters.begin.php"}},end:"(?=\\))",contentName:"meta.function.arguments.php",patterns:[{include:"#function-arguments"}]},{begin:"(\\))",beginCaptures:{"1":{name:"punctuation.definition.parameters.end.php"}},end:"(?=[{;])",patterns:[{include:"#function-return-type"}]}]},{include:"#invoke-call"},{begin:"(?xi)\n\\s*\n (?=\n [a-z_0-9$\\\\]+(::)\n (?:\n ([a-z_][a-z_0-9]*)\\s*\\(\n |\n ((\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\n |\n ([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\n )?\n )",end:"(?x)\n(::)\n(?:\n ([A-Za-z_][A-Za-z_0-9]*)\\s*\\(\n |\n ((\\$+)[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n |\n ([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n)?",endCaptures:{"1":{name:"keyword.operator.class.php"},"2":{name:"meta.function-call.static.php"},"3":{name:"variable.other.class.php"},"4":{name:"punctuation.definition.variable.php"},"5":{name:"constant.other.class.php"}},patterns:[{match:"(self|static|parent)\\b",name:"support.type.php"},{include:"#class-name"},{include:"#variable-name"}]},{include:"#variables"},{include:"#strings"},{captures:{"1":{name:"support.function.construct.php"},"2":{name:"punctuation.definition.array.begin.php"},"3":{name:"punctuation.definition.array.end.php"}},match:"(array)(\\()(\\))",name:"meta.array.empty.php"},{begin:"(array)(\\()",beginCaptures:{"1":{name:"support.function.construct.php"},"2":{name:"punctuation.definition.array.begin.php"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.array.end.php"}},name:"meta.array.php",patterns:[{include:"#language"}]},{captures:{"1":{name:"support.type.php"}},match:"(?i)\\s*\\(\\s*(array|real|double|float|int(eger)?|bool(ean)?|string|object|binary|unset|arraykey|nonnull|dict|vec|keyset)\\s*\\)"},{match:"(?i)\\b(array|real|double|float|int(eger)?|bool(ean)?|string|class|clone|var|function|interface|trait|parent|self|object|arraykey|nonnull|dict|vec|keyset)\\b",name:"support.type.php"},{match:"(?i)\\b(global|abstract|const|extends|implements|final|p(r(ivate|otected)|ublic)|internal|static)\\b",name:"storage.modifier.php"},{include:"#object"},{match:";",name:"punctuation.terminator.expression.php"},{include:"#heredoc"},{match:"\\.=?",name:"keyword.operator.string.php"},{match:"=>",name:"keyword.operator.key.php"},{match:"==>",name:"keyword.operator.lambda.php"},{match:"\\|>",name:"keyword.operator.pipe.php"},{match:"(!==|!=|===|==)",name:"keyword.operator.comparison.php"},{match:"=|\\+=|\\-=|\\*=|/=|%=|&=|\\|=|\\^=|<<=|>>=",name:"keyword.operator.assignment.php"},{match:"(<=|>=|<|>)",name:"keyword.operator.comparison.php"},{match:"(\\-\\-|\\+\\+)",name:"keyword.operator.increment-decrement.php"},{match:"(\\-|\\+|\\*|/|%)",name:"keyword.operator.arithmetic.php"},{match:"(!|&&|\\|\\|)",name:"keyword.operator.logical.php"},{begin:"(?i)\\b(as|is)\\b\\s+(?=[\\\\$a-z_])",beginCaptures:{"1":{name:"keyword.operator.type.php"}},end:"(?=[^\\\\$A-Za-z_0-9])",patterns:[{include:"#class-name"},{include:"#variable-name"}]},{match:"(?i)\\b(is|as)\\b",name:"keyword.operator.type.php"},{include:"#function-call"},{match:"<<|>>|~|\\^|&|\\|",name:"keyword.operator.bitwise.php"},{include:"#numbers"},{include:"#instantiation"},{begin:"\\[",beginCaptures:{"0":{name:"punctuation.section.array.begin.php"}},end:"\\]",endCaptures:{"0":{name:"punctuation.section.array.end.php"}},patterns:[{include:"#language"}]},{include:"#literal-collections"},{begin:"\\{",beginCaptures:{"0":{name:"punctuation.section.scope.begin.php"}},end:"\\}",endCaptures:{"0":{name:"punctuation.section.scope.end.php"}},patterns:[{include:"#language"}]},{include:"#constants"}]},namespace:{begin:"(?i)((namespace)|[a-z0-9_]+)?(\\\\)(?=.*?[^a-z_0-9\\\\])",beginCaptures:{"1":{name:"entity.name.type.namespace.php"},"3":{name:"punctuation.separator.inheritance.php"}},end:"(?i)(?=[a-z0-9_]*[^a-z0-9_\\\\])",name:"support.other.namespace.php",patterns:[{name:"entity.name.type.namespace.php",match:"(?i)[a-z0-9_]+(?=\\\\)"},{captures:{"1":{name:"punctuation.separator.inheritance.php"}},match:"(?i)(\\\\)"}]},numbers:{match:"\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)\\b",name:"constant.numeric.php"},object:{patterns:[{begin:"(->)(\\$?\\{)",beginCaptures:{"1":{name:"keyword.operator.class.php"},"2":{name:"punctuation.definition.variable.php"}},end:"(\\})",endCaptures:{"1":{name:"punctuation.definition.variable.php"}},patterns:[{include:"#language"}]},{captures:{"1":{name:"keyword.operator.class.php"},"2":{name:"meta.function-call.object.php"},"3":{name:"variable.other.property.php"},"4":{name:"punctuation.definition.variable.php"}},match:"(?x)\n(->)\n (?:\n ([A-Za-z_][A-Za-z_0-9]*)\\s*\\(\n |\n ((\\$+)?[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n )?"}]},"parameter-default-types":{patterns:[{include:"#strings"},{include:"#numbers"},{include:"#variables"},{match:"=>",name:"keyword.operator.key.php"},{match:"=",name:"keyword.operator.assignment.php"},{include:"#instantiation"},{begin:"(?xi)\n\\s*\n(?=\n [a-z_0-9\\\\]+(::)\n ([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?\n)",end:"(?i)(::)([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?",endCaptures:{"1":{name:"keyword.operator.class.php"},"2":{name:"constant.other.class.php"}},patterns:[{include:"#class-name"}]},{include:"#constants"}]},php_doc:{patterns:[{comment:"PHPDocumentor only recognises lines with an asterisk as the first non-whitespaces character",match:"^(?!\\s*\\*).*$\\n?",name:"invalid.illegal.missing-asterisk.phpdoc.php"},{captures:{"1":{name:"keyword.other.phpdoc.php"},"3":{name:"storage.modifier.php"},"4":{name:"invalid.illegal.wrong-access-type.phpdoc.php"}},match:"^\\s*\\*\\s*(@access)\\s+((public|private|protected|internal)|(.+))\\s*$"},{captures:{"1":{name:"keyword.other.phpdoc.php"},"2":{name:"markup.underline.link.php"}},match:"(@xlink)\\s+(.+)\\s*$"},{match:"\\@(a(bstract|uthor)|c(ategory|opyright)|example|global|internal|li(cense|nk)|pa(ckage|ram)|return|s(ee|ince|tatic|ubpackage)|t(hrows|odo)|v(ar|ersion)|uses|deprecated|final|ignore)\\b",name:"keyword.other.phpdoc.php"},{captures:{"1":{name:"keyword.other.phpdoc.php"}},match:"\\{(@(link)).+?\\}",name:"meta.tag.inline.phpdoc.php"}]},"regex-double-quoted":{begin:"(?x)\n(?<=re)\"/ (?=(\\\\.|[^\"/])++/[imsxeADSUXu]*\")",beginCaptures:{"0":{name:"punctuation.definition.string.begin.php"}},end:"(/)([imsxeADSUXu]*)(\")",endCaptures:{"0":{name:"punctuation.definition.string.end.php"}},name:"string.regexp.double-quoted.php",patterns:[{comment:"Escaped from the regexp – there can also be 2 backslashes (since 1 will escape the first)",match:"(\\\\){1,2}[.$^\\[\\]{}]",name:"constant.character.escape.regex.php"},{include:"#interpolation"},{captures:{"1":{name:"punctuation.definition.arbitrary-repetition.php"},"3":{name:"punctuation.definition.arbitrary-repetition.php"}},match:"(\\{)\\d+(,\\d+)?(\\})",name:"string.regexp.arbitrary-repetition.php"},{begin:"\\[(?:\\^?\\])?",captures:{"0":{name:"punctuation.definition.character-class.php"}},end:"\\]",name:"string.regexp.character-class.php",patterns:[{include:"#interpolation"}]},{match:"[$^+*]",name:"keyword.operator.regexp.php"}]},"regex-single-quoted":{begin:"(?x)\n(?<=re)'/ (?=(\\\\.|[^'/])++/[imsxeADSUXu]*')",beginCaptures:{"0":{name:"punctuation.definition.string.begin.php"}},end:"(/)([imsxeADSUXu]*)(')",endCaptures:{"0":{name:"punctuation.definition.string.end.php"}},name:"string.regexp.single-quoted.php",patterns:[{captures:{"1":{name:"punctuation.definition.arbitrary-repetition.php"},"3":{name:"punctuation.definition.arbitrary-repetition.php"}},match:"(\\{)\\d+(,\\d+)?(\\})",name:"string.regexp.arbitrary-repetition.php"},{comment:"Escaped from the regexp – there can also be 2 backslashes (since 1 will escape the first)",match:"(\\\\){1,2}[.$^\\[\\]{}]",name:"constant.character.escape.regex.php"},{comment:"Escaped from the PHP string – there can also be 2 backslashes (since 1 will escape the first)",match:"\\\\{1,2}[\\\\']",name:"constant.character.escape.php"},{begin:"\\[(?:\\^?\\])?",captures:{"0":{name:"punctuation.definition.character-class.php"}},end:"\\]",name:"string.regexp.character-class.php",patterns:[{match:"\\\\[\\\\'\\[\\]]",name:"constant.character.escape.php"}]},{match:"[$^+*]",name:"keyword.operator.regexp.php"}]},"sql-string-double-quoted":{begin:"\"\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER)\\b)",beginCaptures:{"0":{name:"punctuation.definition.string.begin.php"}},contentName:"source.sql.embedded.php",end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.php"}},name:"string.quoted.double.sql.php",patterns:[{comment:"Open parens cause the next escaped character to not be captured as an\nescape character. Example: $x = \"SELECT (\")\";",match:"\\(",name:"punctuation.definition.parameters.begin.bracket.round.php"},{match:"#(\\\\\"|[^\"])*(?=\"|$\\n?)",name:"comment.line.number-sign.sql"},{match:"--(\\\\\"|[^\"])*(?=\"|$\\n?)",name:"comment.line.double-dash.sql"},{match:"\\\\[\\\\\"`']",name:"constant.character.escape.php"},{comment:"Unclosed strings must be captured to avoid them eating the remainder of the PHP script\nSample case: $sql = \"SELECT * FROM bar WHERE foo = '\" . $variable . \"'\"",match:"'(?=((\\\\')|[^'\"])*(\"|$))",name:"string.quoted.single.unclosed.sql"},{comment:"Unclosed strings must be captured to avoid them eating the remainder of the PHP script\nSample case: $sql = \"SELECT * FROM bar WHERE foo = '\" . $variable . \"'\"",match:"`(?=((\\\\`)|[^`\"])*(\"|$))",name:"string.quoted.other.backtick.unclosed.sql"},{begin:"'",end:"'",name:"string.quoted.single.sql",patterns:[{include:"#interpolation"}]},{begin:"`",end:"`",name:"string.quoted.other.backtick.sql",patterns:[{include:"#interpolation"}]},{include:"#interpolation"},{include:"source.sql"}]},"sql-string-single-quoted":{begin:"'\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER)\\b)",beginCaptures:{"0":{name:"punctuation.definition.string.begin.php"}},contentName:"source.sql.embedded.php",end:"'",endCaptures:{"0":{name:"punctuation.definition.string.end.php"}},name:"string.quoted.single.sql.php",patterns:[{comment:"Open parens cause the next escaped character to not be captured as an\nescape character. Example: $x = 'SELECT (')';",match:"\\(",name:"punctuation.definition.parameters.begin.bracket.round.php"},{match:"#(\\\\'|[^'])*(?='|$\\n?)",name:"comment.line.number-sign.sql"},{match:"--(\\\\'|[^'])*(?='|$\\n?)",name:"comment.line.double-dash.sql"},{match:"\\\\[\\\\'`\"]",name:"constant.character.escape.php"},{comment:"Unclosed strings must be captured to avoid them eating the remainder of the PHP script\nSample case: $sql = \"SELECT * FROM bar WHERE foo = '\" . $variable . \"'\"",match:"`(?=((\\\\`)|[^`'])*('|$))",name:"string.quoted.other.backtick.unclosed.sql"},{comment:"Unclosed strings must be captured to avoid them eating the remainder of the PHP script\nSample case: $sql = \"SELECT * FROM bar WHERE foo = '\" . $variable . \"'\"",match:"\"(?=((\\\\\")|[^\"'])*('|$))",name:"string.quoted.double.unclosed.sql"},{include:"source.sql"}]},"string-double-quoted":{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.php"}},comment:"This contentName is just to allow the usage of “select scope” to select the string contents first, then the string with quotes",contentName:"meta.string-contents.quoted.double.php",end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.php"}},name:"string.quoted.double.php",patterns:[{include:"#interpolation"}]},"string-single-quoted":{begin:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.php"}},contentName:"meta.string-contents.quoted.single.php",end:"'",endCaptures:{"0":{name:"punctuation.definition.string.end.php"}},name:"string.quoted.single.php",patterns:[{match:"\\\\[\\\\']",name:"constant.character.escape.php"}]},strings:{patterns:[{include:"#regex-double-quoted"},{include:"#sql-string-double-quoted"},{include:"#string-double-quoted"},{include:"#regex-single-quoted"},{include:"#sql-string-single-quoted"},{include:"#string-single-quoted"}]},support:{patterns:[{match:"(?i)\\bapc_(s(tore|ma_info)|c(ompile_file|lear_cache|a(s|che_info))|inc|de(c|fine_constants|lete(_file)?)|exists|fetch|load_constants|add|bin_(dump(file)?|load(file)?))\\b",name:"support.function.apc.php"},{match:"(?i)\\b(s(huffle|izeof|ort)|n(ext|at(sort|casesort))|c(o(unt|mpact)|urrent)|in_array|u(sort|ksort|asort)|p(os|rev)|e(nd|ach|xtract)|k(sort|ey|rsort)|list|a(sort|r(sort|ray(_(s(hift|um|plice|earch|lice)|c(h(unk|ange_key_case)|o(unt_values|mbine))|intersect(_(u(key|assoc)|key|assoc))?|diff(_(u(key|assoc)|key|assoc))?|u(n(shift|ique)|intersect(_(uassoc|assoc))?|diff(_(uassoc|assoc))?)|p(op|ush|ad|roduct)|values|key(s|_exists)|f(il(ter|l(_keys)?)|lip)|walk(_recursive)?|r(e(duce|place(_recursive)?|verse)|and)|m(ultisort|erge(_recursive)?|ap)))?))|r(sort|eset|ange))\\b",name:"support.function.array.php"},{match:"(?i)\\b(s(how_source|ys_getloadavg|leep)|highlight_(string|file)|con(stant|nection_(status|timeout|aborted))|time_(sleep_until|nanosleep)|ignore_user_abort|d(ie|efine(d)?)|u(sleep|n(iqid|pack))|__halt_compiler|p(hp_(strip_whitespace|check_syntax)|ack)|e(val|xit)|get_browser)\\b",name:"support.function.basic_functions.php"},{match:"(?i)\\bbc(s(cale|ub|qrt)|comp|div|pow(mod)?|add|m(od|ul))\\b",name:"support.function.bcmath.php"},{match:"(?i)\\bbz(c(ompress|lose)|open|decompress|err(str|no|or)|flush|write|read)\\b",name:"support.function.bz2.php"},{match:"(?i)\\b(GregorianToJD|cal_(to_jd|info|days_in_month|from_jd)|unixtojd|jdto(unix|jewish)|easter_da(ys|te)|J(ulianToJD|ewishToJD|D(MonthName|To(Gregorian|Julian|French)|DayOfWeek))|FrenchToJD)\\b",name:"support.function.calendar.php"},{match:"(?i)\\b(c(lass_(exists|alias)|all_user_method(_array)?)|trait_exists|i(s_(subclass_of|a)|nterface_exists)|__autoload|property_exists|get_(c(lass(_(vars|methods))?|alled_class)|object_vars|declared_(classes|traits|interfaces)|parent_class)|method_exists)\\b",name:"support.function.classobj.php"},{match:"(?i)\\b(com_(set|create_guid|i(senum|nvoke)|pr(int_typeinfo|op(set|put|get))|event_sink|load(_typelib)?|addref|release|get(_active_object)?|message_pump)|variant_(s(ub|et(_type)?)|n(ot|eg)|c(a(st|t)|mp)|i(nt|div|mp)|or|d(iv|ate_(to_timestamp|from_timestamp))|pow|eqv|fix|a(nd|dd|bs)|round|get_type|xor|m(od|ul)))\\b",name:"support.function.com.php"},{match:"(?i)\\bctype_(space|cntrl|digit|upper|p(unct|rint)|lower|al(num|pha)|graph|xdigit)\\b",name:"support.function.ctype.php"},{match:"(?i)\\bcurl_(setopt(_array)?|c(opy_handle|lose)|init|e(rr(no|or)|xec)|version|getinfo|multi_(select|close|in(it|fo_read)|exec|add_handle|remove_handle|getcontent))\\b",name:"support.function.curl.php"},{match:"(?i)\\b(str(totime|ptime|ftime)|checkdate|time(zone_(name_(from_abbr|get)|transitions_get|identifiers_list|o(pen|ffset_get)|version_get|location_get|abbreviations_list))?|idate|date(_(su(n(set|_info|rise)|b)|create(_from_format)?|time(stamp_(set|get)|zone_(set|get)|_set)|i(sodate_set|nterval_(create_from_date_string|format))|offset_get|d(iff|efault_timezone_(set|get)|ate_set)|parse(_from_format)?|format|add|get_last_errors|modify))?|localtime|g(et(timeofday|date)|m(strftime|date|mktime))|m(icrotime|ktime))\\b",name:"support.function.datetime.php"},{match:"(?i)\\bdba_(sync|handlers|nextkey|close|insert|op(timize|en)|delete|popen|exists|key_split|f(irstkey|etch)|list|replace)\\b",name:"support.function.dba.php"},{match:"(?i)\\bdbx_(sort|c(o(nnect|mpare)|lose)|e(scape_string|rror)|query|fetch_row)\\b",name:"support.function.dbx.php"},{match:"(?i)\\b(scandir|c(h(dir|root)|losedir)|opendir|dir|re(winddir|addir)|getcwd)\\b",name:"support.function.dir.php"},{match:"(?i)\\bdotnet_load\\b",name:"support.function.dotnet.php"},{match:"(?i)\\beio_(s(y(nc(_file_range|fs)?|mlink)|tat(vfs)?|e(ndfile|t_m(in_parallel|ax_(idle|p(oll_(time|reqs)|arallel)))|ek))|n(threads|op|pending|re(qs|ady))|c(h(own|mod)|ustom|lose|ancel)|truncate|init|open|dup2|u(nlink|time)|poll|event_loop|f(s(ync|tat(vfs)?)|ch(own|mod)|truncate|datasync|utime|allocate)|write|l(stat|ink)|r(e(name|a(d(dir|link|ahead)?|lpath))|mdir)|g(et_(event_stream|last_error)|rp(_(cancel|limit|add))?)|mk(nod|dir)|busy)\\b",name:"support.function.eio.php"},{match:"(?i)\\benchant_(dict_(s(tore_replacement|uggest)|check|is_in_session|describe|quick_check|add_to_(session|personal)|get_error)|broker_(set_ordering|init|d(ict_exists|escribe)|free(_dict)?|list_dicts|request_(dict|pwl_dict)|get_error))\\b",name:"support.function.enchant.php"},{match:"(?i)\\b(s(plit(i)?|ql_regcase)|ereg(i(_replace)?|_replace)?)\\b",name:"support.function.ereg.php"},{match:"(?i)\\b(set_e(rror_handler|xception_handler)|trigger_error|debug_(print_backtrace|backtrace)|user_error|error_(log|reporting|get_last)|restore_e(rror_handler|xception_handler))\\b",name:"support.function.errorfunc.php"},{match:"(?i)\\b(s(hell_exec|ystem)|p(assthru|roc_(nice|close|terminate|open|get_status))|e(scapeshell(cmd|arg)|xec))\\b",name:"support.function.exec.php"},{match:"(?i)\\b(exif_(t(humbnail|agname)|imagetype|read_data)|read_exif_data)\\b",name:"support.function.exif.php"},{match:"(?i)\\b(s(ymlink|tat|et_file_buffer)|c(h(own|grp|mod)|opy|learstatcache)|t(ouch|empnam|mpfile)|is_(dir|uploaded_file|executable|file|writ(eable|able)|link|readable)|d(i(sk(_(total_space|free_space)|freespace)|rname)|elete)|u(nlink|mask)|p(close|open|a(thinfo|rse_ini_(string|file)))|f(s(canf|tat|eek)|nmatch|close|t(ell|runcate)|ile(size|ctime|type|inode|owner|_(put_contents|exists|get_contents)|perms|atime|group|mtime)?|open|p(ut(s|csv)|assthru)|eof|flush|write|lock|read|get(s(s)?|c(sv)?))|l(stat|ch(own|grp)|ink(info)?)|r(e(name|wind|a(d(file|link)|lpath(_cache_(size|get))?))|mdir)|glob|m(ove_uploaded_file|kdir)|basename)\\b",name:"support.function.file.php"},{match:"(?i)\\b(finfo_(set_flags|close|open|file|buffer)|mime_content_type)\\b",name:"support.function.fileinfo.php"},{match:"(?i)\\bfilter_(has_var|i(nput(_array)?|d)|var(_array)?|list)\\b",name:"support.function.filter.php"},{match:"(?i)\\b(c(all_user_func(_array)?|reate_function)|unregister_tick_function|f(orward_static_call(_array)?|unc(tion_exists|_(num_args|get_arg(s)?)))|register_(shutdown_function|tick_function)|get_defined_functions)\\b",name:"support.function.funchand.php"},{match:"(?i)\\b(ngettext|textdomain|d(ngettext|c(ngettext|gettext)|gettext)|gettext|bind(textdomain|_textdomain_codeset))\\b",name:"support.function.gettext.php"},{match:"(?i)\\bgmp_(s(can(1|0)|trval|ign|ub|etbit|qrt(rem)?)|hamdist|ne(g|xtprime)|c(om|lrbit|mp)|testbit|in(tval|it|vert)|or|div(_(q(r)?|r)|exact)?|jacobi|p(o(pcount|w(m)?)|erfect_square|rob_prime)|fact|legendre|a(nd|dd|bs)|random|gcd(ext)?|xor|m(od|ul))\\b",name:"support.function.gmp.php"},{match:"(?i)\\bhash(_(hmac(_file)?|copy|init|update(_(stream|file))?|pbkdf2|fi(nal|le)|algos))?\\b",name:"support.function.hash.php"},{match:"(?i)\\b(http_(s(upport|end_(st(atus|ream)|content_(type|disposition)|data|file|last_modified))|head|negotiate_(c(harset|ontent_type)|language)|c(hunked_decode|ache_(etag|last_modified))|throttle|inflate|d(eflate|ate)|p(ost_(data|fields)|ut_(stream|data|file)|ersistent_handles_(c(ount|lean)|ident)|arse_(headers|cookie|params|message))|re(direct|quest(_(method_(name|unregister|exists|register)|body_encode))?)|get(_request_(headers|body(_stream)?))?|match_(etag|request_header|modified)|build_(str|cookie|url))|ob_(inflatehandler|deflatehandler|etaghandler))\\b",name:"support.function.http.php"},{match:"(?i)\\b(iconv(_(s(tr(pos|len|rpos)|ubstr|et_encoding)|get_encoding|mime_(decode(_headers)?|encode)))?|ob_iconv_handler)\\b",name:"support.function.iconv.php"},{match:"(?i)\\biis_(s(t(op_serv(ice|er)|art_serv(ice|er))|et_(s(cript_map|erver_rights)|dir_security|app_settings))|add_server|remove_server|get_(s(cript_map|erv(ice_state|er_(rights|by_(comment|path))))|dir_security))\\b",name:"support.function.iisfunc.php"},{match:"(?i)\\b(i(ptc(parse|embed)|mage(s(y|tring(up)?|et(style|t(hickness|ile)|pixel|brush)|avealpha|x)|c(har(up)?|o(nvolution|py(res(ized|ampled)|merge(gray)?)?|lor(s(total|et|forindex)|closest(hwb|alpha)?|transparent|deallocate|exact(alpha)?|a(t|llocate(alpha)?)|resolve(alpha)?|match))|reate(truecolor|from(string|jpeg|png|wbmp|g(if|d(2(part)?)?)|x(pm|bm)))?)|t(ypes|tf(text|bbox)|ruecolortopalette)|i(struecolor|nterlace)|2wbmp|d(estroy|ashedline)|jpeg|_type_to_(extension|mime_type)|p(s(slantfont|text|e(ncodefont|xtendfont)|freefont|loadfont|bbox)|ng|olygon|alettecopy)|ellipse|f(t(text|bbox)|il(ter|l(toborder|ed(polygon|ellipse|arc|rectangle))?)|ont(height|width))|wbmp|l(ine|oadfont|ayereffect)|a(ntialias|lphablending|rc)|r(otate|ectangle)|g(if|d(2)?|ammacorrect|rab(screen|window))|xbm))|jpeg2wbmp|png2wbmp|g(d_info|etimagesize(fromstring)?))\\b",name:"support.function.image.php"},{match:"(?i)\\b(s(ys_get_temp_dir|et_(time_limit|include_path|magic_quotes_runtime))|ini_(set|alter|restore|get(_all)?)|zend_(thread_id|version|logo_guid)|dl|p(hp(credits|info|_(sapi_name|ini_(scanned_files|loaded_file)|uname|logo_guid)|version)|utenv)|extension_loaded|version_compare|assert(_options)?|restore_include_path|g(c_(collect_cycles|disable|enable(d)?)|et(opt|_(c(urrent_user|fg_var)|include(d_files|_path)|defined_constants|extension_funcs|loaded_extensions|required_files|magic_quotes_(runtime|gpc))|env|lastmod|rusage|my(inode|uid|pid|gid)))|m(emory_get_(usage|peak_usage)|a(in|gic_quotes_runtime)))\\b",name:"support.function.info.php"},{match:"(?i)\\bibase_(se(t_event_handler|rv(ice_(detach|attach)|er_info))|n(um_(params|fields)|ame_result)|c(o(nnect|mmit(_ret)?)|lose)|trans|d(elete_user|rop_db|b_info)|p(connect|aram_info|repare)|e(rr(code|msg)|xecute)|query|f(ield_info|etch_(object|assoc|row)|ree_(event_handler|query|result))|wait_event|a(dd_user|ffected_rows)|r(ollback(_ret)?|estore)|gen_id|m(odify_user|aintain_db)|b(lob_(c(lose|ancel|reate)|i(nfo|mport)|open|echo|add|get)|ackup))\\b",name:"support.function.interbase.php"},{match:"(?i)\\b(n(ormalizer_(normalize|is_normalized)|umfmt_(set_(symbol|text_attribute|pattern|attribute)|create|parse(_currency)?|format(_currency)?|get_(symbol|text_attribute|pattern|error_(code|message)|locale|attribute)))|collator_(s(ort(_with_sort_keys)?|et_(strength|attribute))|c(ompare|reate)|asort|get_(s(trength|ort_key)|error_(code|message)|locale|attribute))|transliterator_(create(_(inverse|from_rules))?|transliterate|list_ids|get_error_(code|message))|i(ntl_(is_failure|error_name|get_error_(code|message))|dn_to_(u(nicode|tf8)|ascii))|datefmt_(set_(calendar|timezone(_id)?|pattern|lenient)|create|is_lenient|parse|format(_object)?|localtime|get_(calendar(_object)?|time(type|zone(_id)?)|datetype|pattern|error_(code|message)|locale))|locale_(set_default|compose|parse|filter_matches|lookup|accept_from_http|get_(script|d(isplay_(script|name|variant|language|region)|efault)|primary_language|keywords|all_variants|region))|resourcebundle_(c(ount|reate)|locales|get(_error_(code|message))?)|grapheme_(s(tr(str|i(str|pos)|pos|len|r(ipos|pos))|ubstr)|extract)|msgfmt_(set_pattern|create|parse(_message)?|format(_message)?|get_(pattern|error_(code|message)|locale)))\\b",name:"support.function.intl.php"},{match:"(?i)\\bjson_(decode|encode|last_error)\\b",name:"support.function.json.php"},{match:"(?i)\\bldap_(s(tart_tls|ort|e(t_(option|rebind_proc)|arch)|asl_bind)|next_(entry|attribute|reference)|c(o(n(nect|trol_paged_result(_response)?)|unt_entries|mpare)|lose)|t61_to_8859|d(n2ufn|elete)|8859_to_t61|unbind|parse_re(sult|ference)|e(rr(no|2str|or)|xplode_dn)|f(irst_(entry|attribute|reference)|ree_result)|list|add|re(name|ad)|get_(option|dn|entries|values(_len)?|attributes)|mod(ify|_(del|add|replace))|bind)\\b",name:"support.function.ldap.php"},{match:"(?i)\\blibxml_(set_(streams_context|external_entity_loader)|clear_errors|disable_entity_loader|use_internal_errors|get_(errors|last_error))\\b",name:"support.function.libxml.php"},{match:"(?i)\\b(ezmlm_hash|mail)\\b",name:"support.function.mail.php"},{match:"(?i)\\b(s(in(h)?|qrt|rand)|h(ypot|exdec)|c(os(h)?|eil)|tan(h)?|is_(nan|infinite|finite)|octdec|de(c(hex|oct|bin)|g2rad)|p(i|ow)|exp(m1)?|f(loor|mod)|l(cg_value|og(1(p|0))?)|a(sin(h)?|cos(h)?|tan(h|2)?|bs)|r(ound|a(nd|d2deg))|getrandmax|m(t_(srand|rand|getrandmax)|in|ax)|b(indec|ase_convert))\\b",name:"support.function.math.php"},{match:"(?i)\\bmb_(s(tr(str|cut|to(upper|lower)|i(str|pos|mwidth)|pos|width|len|r(chr|i(chr|pos)|pos))|ubst(itute_character|r(_count)?)|plit|end_mail)|http_(input|output)|c(heck_encoding|onvert_(case|encoding|variables|kana))|internal_encoding|output_handler|de(code_(numericentity|mimeheader)|tect_(order|encoding))|p(arse_str|referred_mime_name)|e(ncod(ing_aliases|e_(numericentity|mimeheader))|reg(i(_replace)?|_(search(_(setpos|init|pos|regs|get(pos|regs)))?|replace(_callback)?|match))?)|l(ist_encodings|anguage)|regex_(set_options|encoding)|get_info)\\b",name:"support.function.mbstring.php"},{match:"(?i)\\bm(crypt_(c(fb|reate_iv|bc)|ofb|decrypt|e(nc(_(self_test|is_block_(algorithm(_mode)?|mode)|get_(supported_key_sizes|iv_size|key_size|algorithms_name|modes_name|block_size))|rypt)|cb)|list_(algorithms|modes)|ge(neric(_(init|deinit|end))?|t_(cipher_name|iv_size|key_size|block_size))|module_(self_test|close|is_block_(algorithm(_mode)?|mode)|open|get_(supported_key_sizes|algo_(key_size|block_size))))|decrypt_generic)\\b",name:"support.function.mcrypt.php"},{match:"(?i)\\bmemcache_debug\\b",name:"support.function.memcache.php"},{match:"(?i)\\bmhash(_(count|keygen_s2k|get_(hash_name|block_size)))?\\b",name:"support.function.mhash.php"},{match:"(?i)\\bbson_(decode|encode)\\b",name:"support.function.mongo.php"},{match:"(?i)\\bmysql_(s(tat|e(t_charset|lect_db))|num_(fields|rows)|c(onnect|l(ient_encoding|ose)|reate_db)|t(hread_id|ablename)|in(sert_id|fo)|d(ata_seek|rop_db|b_(name|query))|unbuffered_query|p(connect|ing)|e(scape_string|rr(no|or))|query|f(ield_(seek|name|t(ype|able)|flags|len)|etch_(object|field|lengths|a(ssoc|rray)|row)|ree_result)|list_(tables|dbs|processes|fields)|affected_rows|re(sult|al_escape_string)|get_(server_info|host_info|client_info|proto_info))\\b",name:"support.function.mysql.php"},{match:"(?i)\\bmysqli_(s(sl_set|t(ore_result|at|mt_(s(tore_result|end_long_data)|next_result|close|init|data_seek|prepare|execute|f(etch|ree_result)|attr_(set|get)|res(ult_metadata|et)|get_(warnings|result)|more_results|bind_(param|result)))|e(nd_(query|long_data)|t_(charset|opt|local_infile_(handler|default))|lect_db)|lave_query)|next_result|c(ha(nge_user|racter_set_name)|o(nnect|mmit)|l(ient_encoding|ose))|thread_safe|init|options|d(isable_r(pl_parse|eads_from_master)|ump_debug_info|ebug|ata_seek)|use_result|p(ing|oll|aram_count|repare)|e(scape_string|nable_r(pl_parse|eads_from_master)|xecute|mbedded_server_(start|end))|kill|query|f(ield_seek|etch(_(object|field(s|_direct)?|a(ssoc|ll|rray)|row))?|ree_result)|autocommit|r(ollback|pl_(p(arse_enabled|robe)|query_type)|e(port|fresh|a(p_async_query|l_(connect|escape_string|query))))|get_(c(harset|onnection_stats|lient_(stats|info|version)|ache_stats)|warnings|metadata)|m(ore_results|ulti_query|aster_query)|bind_(param|result))\\b",name:"support.function.mysqli.php"},{match:"(?i)\\bmysqlnd_memcache_(set|get_config)\\b",name:"support.function.mysqlnd-memcache.php"},{match:"(?i)\\bmysqlnd_ms_(set_(user_pick_server|qos)|query_is_select|get_(stats|last_(used_connection|gtid))|match_wild)\\b",name:"support.function.mysqlnd-ms.php"},{match:"(?i)\\bmysqlnd_qc_(set_(storage_handler|cache_condition|is_select|user_handlers)|clear_cache|get_(normalized_query_trace_log|c(ore_stats|ache_info)|query_trace_log|available_handlers))\\b",name:"support.function.mysqlnd-qc.php"},{match:"(?i)\\bmysqlnd_uh_(set_(statement_proxy|connection_proxy)|convert_to_mysqlnd)\\b",name:"support.function.mysqlnd-uh.php"},{match:"(?i)\\b(s(yslog|ocket_(set_(timeout|blocking)|get_status)|et(cookie|rawcookie))|h(ttp_response_code|eader(s_(sent|list)|_re(gister_callback|move))?)|c(heckdnsrr|loselog)|i(net_(ntop|pton)|p2long)|openlog|d(ns_(check_record|get_(record|mx))|efine_syslog_variables)|pfsockopen|fsockopen|long2ip|get(servby(name|port)|host(name|by(name(l)?|addr))|protobyn(umber|ame)|mxrr))\\b",name:"support.function.network.php"},{match:"(?i)\\bnsapi_(virtual|re(sponse_headers|quest_headers))\\b",name:"support.function.nsapi.php"},{match:"(?i)\\b(deaggregate|aggregat(ion_info|e(_(info|properties(_by_(list|regexp))?|methods(_by_(list|regexp))?))?))\\b",name:"support.function.objaggregation.php"},{match:"(?i)\\boci(s(tatementtype|e(tprefetch|rverversion)|avelob(file)?)|n(umcols|ew(c(ollection|ursor)|descriptor)|logon)|c(o(l(umn(s(cale|ize)|name|type(raw)?|isnull|precision)|l(size|trim|a(ssign(elem)?|ppend)|getelem|max))|mmit)|loselob|ancel)|internaldebug|definebyname|_(s(tatement_type|e(t_(client_i(nfo|dentifier)|prefetch|edition|action|module_name)|rver_version))|n(um_(fields|rows)|ew_(c(o(nnect|llection)|ursor)|descriptor))|c(o(nnect|mmit)|l(ient_version|ose)|ancel)|internal_debug|define_by_name|p(connect|a(ssword_change|rse))|e(rror|xecute)|f(ield_(s(cale|ize)|name|type(_raw)?|is_null|precision)|etch(_(object|a(ssoc|ll|rray)|row))?|ree_(statement|descriptor))|lob_(copy|is_equal)|r(ollback|esult)|bind_(array_by_name|by_name))|p(logon|arse)|e(rror|xecute)|f(etch(statement|into)?|ree(statement|c(ollection|ursor)|desc))|write(temporarylob|lobtofile)|lo(adlob|go(n|ff))|r(o(wcount|llback)|esult)|bindbyname)\\b",name:"support.function.oci8.php"},{match:"(?i)\\bopenssl_(s(ign|eal)|c(sr_(sign|new|export(_to_file)?|get_(subject|public_key))|ipher_iv_length)|open|d(h_compute_key|igest|ecrypt)|p(ublic_(decrypt|encrypt)|k(cs(12_(export(_to_file)?|read)|7_(sign|decrypt|encrypt|verify))|ey_(new|export(_to_file)?|free|get_(details|p(ublic|rivate))))|rivate_(decrypt|encrypt))|e(ncrypt|rror_string)|verify|free_key|random_pseudo_bytes|get_(cipher_methods|p(ublickey|rivatekey)|md_methods)|x509_(check(_private_key|purpose)|parse|export(_to_file)?|free|read))\\b",name:"support.function.openssl.php"},{match:"(?i)\\b(o(utput_(add_rewrite_var|reset_rewrite_vars)|b_(start|clean|implicit_flush|end_(clean|flush)|flush|list_handlers|g(zhandler|et_(status|c(ontents|lean)|flush|le(ngth|vel)))))|flush)\\b",name:"support.function.output.php"},{match:"(?i)\\bpassword_(hash|needs_rehash|verify|get_info)\\b",name:"support.function.password.php"},{match:"(?i)\\bpcntl_(s(ig(nal(_dispatch)?|timedwait|procmask|waitinfo)|etpriority)|exec|fork|w(stopsig|termsig|if(s(topped|ignaled)|exited)|exitstatus|ait(pid)?)|alarm|getpriority)\\b",name:"support.function.pcntl.php"},{match:"(?i)\\bpg_(se(nd_(prepare|execute|query(_params)?)|t_(client_encoding|error_verbosity)|lect)|host|num_(fields|rows)|c(o(n(nect(ion_(status|reset|busy))?|vert)|py_(to|from))|l(ient_encoding|ose)|ancel_query)|t(ty|ra(nsaction_status|ce))|insert|options|d(elete|bname)|u(n(trace|escape_bytea)|pdate)|p(connect|ing|ort|ut_line|arameter_status|repare)|e(scape_(string|identifier|literal|bytea)|nd_copy|xecute)|version|query(_params)?|f(ield_(size|n(um|ame)|t(ype(_oid)?|able)|is_null|prtlen)|etch_(object|a(ssoc|ll(_columns)?|rray)|r(ow|esult))|ree_result)|l(o_(seek|c(lose|reate)|tell|import|open|unlink|export|write|read(_all)?)|ast_(notice|oid|error))|affected_rows|result_(s(tatus|eek)|error(_field)?)|get_(notify|pid|result)|meta_data)\\b",name:"support.function.pgsql.php"},{match:"(?i)\\b(virtual|apache_(setenv|note|child_terminate|lookup_uri|re(s(ponse_headers|et_timeout)|quest_headers)|get(_(version|modules)|env))|getallheaders)\\b",name:"support.function.php_apache.php"},{match:"(?i)\\bdom_import_simplexml\\b",name:"support.function.php_dom.php"},{match:"(?i)\\bftp_(s(sl_connect|ystype|i(te|ze)|et_option)|n(list|b_(continue|put|f(put|get)|get))|c(h(dir|mod)|onnect|dup|lose)|delete|p(ut|wd|asv)|exec|quit|f(put|get)|login|alloc|r(ename|aw(list)?|mdir)|get(_option)?|m(dtm|kdir))\\b",name:"support.function.php_ftp.php"},{match:"(?i)\\bimap_(s(can(mailbox)?|tatus|ort|ubscribe|e(t(_quota|flag_full|acl)|arch)|avebody)|header(s|info)?|num_(recent|msg)|c(heck|l(ose|earflag_full)|reate(mailbox)?)|t(hread|imeout)|open|delete(mailbox)?|8bit|u(n(subscribe|delete)|tf(7_(decode|encode)|8)|id)|ping|e(rrors|xpunge)|qprint|fetch(structure|header|text|_overview|mime|body)|l(sub|ist(s(can|ubscribed)|mailbox)?|ast_error)|a(ppend|lerts)|r(e(name(mailbox)?|open)|fc822_(parse_(headers|adrlist)|write_address))|g(c|et(subscribed|_quota(root)?|acl|mailboxes))|m(sgno|ime_header_decode|ail(_(co(py|mpose)|move)|boxmsginfo)?)|b(inary|ody(struct)?|ase64))\\b",name:"support.function.php_imap.php"},{match:"(?i)\\bmssql_(select_db|n(um_(fields|rows)|ext_result)|c(onnect|lose)|init|data_seek|pconnect|execute|query|f(ield_(seek|name|type|length)|etch_(object|field|a(ssoc|rray)|row|batch)|ree_(statement|result))|r(ows_affected|esult)|g(uid_string|et_last_message)|min_(error_severity|message_severity)|bind)\\b",name:"support.function.php_mssql.php"},{match:"(?i)\\bodbc_(s(tatistics|pecialcolumns|etoption)|n(um_(fields|rows)|ext_result)|c(o(nnect|lumn(s|privileges)|mmit)|ursor|lose(_all)?)|table(s|privileges)|d(o|ata_source)|p(connect|r(imarykeys|ocedure(s|columns)|epare))|e(rror(msg)?|xec(ute)?)|f(ield_(scale|n(um|ame)|type|precision|len)|oreignkeys|etch_(into|object|array|row)|ree_result)|longreadlen|autocommit|r(ollback|esult(_all)?)|gettypeinfo|binmode)\\b",name:"support.function.php_odbc.php"},{match:"(?i)\\bpreg_(split|quote|filter|last_error|replace(_callback)?|grep|match(_all)?)\\b",name:"support.function.php_pcre.php"},{match:"(?i)\\b(spl_(classes|object_hash|autoload(_(call|unregister|extensions|functions|register))?)|class_(implements|uses|parents)|iterator_(count|to_array|apply))\\b",name:"support.function.php_spl.php"},{match:"(?i)\\bzip_(close|open|entry_(name|c(ompress(ionmethod|edsize)|lose)|open|filesize|read)|read)\\b",name:"support.function.php_zip.php"},{match:"(?i)\\bposix_(s(trerror|et(sid|uid|pgid|e(uid|gid)|gid))|ctermid|t(tyname|imes)|i(satty|nitgroups)|uname|errno|kill|access|get(sid|cwd|uid|_last_error|p(id|pid|w(nam|uid)|g(id|rp))|e(uid|gid)|login|rlimit|g(id|r(nam|oups|gid)))|mk(nod|fifo))\\b",name:"support.function.posix.php"},{match:"(?i)\\bset(threadtitle|proctitle)\\b",name:"support.function.proctitle.php"},{match:"(?i)\\bpspell_(s(tore_replacement|uggest|ave_wordlist)|new(_(config|personal))?|c(heck|onfig_(save_repl|create|ignore|d(ict_dir|ata_dir)|personal|r(untogether|epl)|mode)|lear_session)|add_to_(session|personal))\\b",name:"support.function.pspell.php"},{match:"(?i)\\breadline(_(c(ompletion_function|lear_history|allback_(handler_(install|remove)|read_char))|info|on_new_line|write_history|list_history|add_history|re(display|ad_history)))?\\b",name:"support.function.readline.php"},{match:"(?i)\\brecode(_(string|file))?\\b",name:"support.function.recode.php"},{match:"(?i)\\brrd_(create|tune|info|update|error|version|f(irst|etch)|last(update)?|restore|graph|xport)\\b",name:"support.function.rrd.php"},{match:"(?i)\\b(s(hm_(has_var|detach|put_var|attach|remove(_var)?|get_var)|em_(acquire|re(lease|move)|get))|ftok|msg_(s(tat_queue|e(nd|t_queue))|queue_exists|re(ceive|move_queue)|get_queue))\\b",name:"support.function.sem.php"},{match:"(?i)\\bsession_(s(ta(tus|rt)|et_(save_handler|cookie_params)|ave_path)|name|c(ommit|ache_(expire|limiter))|i(s_registered|d)|de(stroy|code)|un(set|register)|encode|write_close|reg(ister(_shutdown)?|enerate_id)|get_cookie_params|module_name)\\b",name:"support.function.session.php"},{match:"(?i)\\bshmop_(size|close|open|delete|write|read)\\b",name:"support.function.shmop.php"},{match:"(?i)\\bsimplexml_(import_dom|load_(string|file))\\b",name:"support.function.simplexml.php"},{match:"(?i)\\bsnmp(set|2_(set|walk|real_walk|get(next)?)|_(set_(oid_(numeric_print|output_format)|enum_print|valueretrieval|quick_print)|read_mib|get_(valueretrieval|quick_print))|3_(set|walk|real_walk|get(next)?)|walk(oid)?|realwalk|get(next)?)\\b",name:"support.function.snmp.php"},{match:"(?i)\\b(is_soap_fault|use_soap_error_handler)\\b",name:"support.function.soap.php"},{match:"(?i)\\bsocket_(s(hutdown|trerror|e(nd(to)?|t_(nonblock|option|block)|lect))|c(onnect|l(ose|ear_error)|reate(_(pair|listen))?)|import_stream|write|l(isten|ast_error)|accept|re(cv(from)?|ad)|get(sockname|_option|peername)|bind)\\b",name:"support.function.sockets.php"},{match:"(?i)\\bsqlite_(s(ingle_query|eek)|has_(prev|more)|n(um_(fields|rows)|ext)|c(hanges|olumn|urrent|lose|reate_(function|aggregate))|open|u(nbuffered_query|df_(decode_binary|encode_binary))|p(open|rev)|e(scape_string|rror_string|xec)|valid|key|query|f(ield_name|etch_(s(tring|ingle)|column_types|object|a(ll|rray))|actory)|l(ib(encoding|version)|ast_(insert_rowid|error))|array_query|rewind|busy_timeout)\\b",name:"support.function.sqlite.php"},{match:"(?i)\\bsqlsrv_(se(nd_stream_data|rver_info)|has_rows|n(um_(fields|rows)|ext_result)|c(o(n(nect|figure)|mmit)|l(ient_info|ose)|ancel)|prepare|e(rrors|xecute)|query|f(ield_metadata|etch(_(object|array))?|ree_stmt)|ro(ws_affected|llback)|get_(config|field)|begin_transaction)\\b",name:"support.function.sqlsrv.php"},{match:"(?i)\\bstats_(s(ta(ndard_deviation|t_(noncentral_t|correlation|in(nerproduct|dependent_t)|p(owersum|ercentile|aired_t)|gennch|binomial_coef))|kew)|harmonic_mean|c(ovariance|df_(n(oncentral_(chisquare|f)|egative_binomial)|c(hisquare|auchy)|t|uniform|poisson|exponential|f|weibull|l(ogistic|aplace)|gamma|b(inomial|eta)))|den(s_(n(ormal|egative_binomial)|c(hisquare|auchy)|t|pmf_(hypergeometric|poisson|binomial)|exponential|f|weibull|l(ogistic|aplace)|gamma|beta)|_uniform)|variance|kurtosis|absolute_deviation|rand_(setall|phrase_to_seeds|ranf|ge(n_(no(ncen(tral_(t|f)|ral_chisquare)|rmal)|chisquare|t|i(nt|uniform|poisson|binomial(_negative)?)|exponential|f(uniform)?|gamma|beta)|t_seeds)))\\b",name:"support.function.stats.php"},{match:"(?i)\\bs(tream_(s(ocket_(s(hutdown|e(ndto|rver))|client|pair|enable_crypto|accept|recvfrom|get_name)|upports_lock|e(t_(chunk_size|timeout|write_buffer|read_buffer|blocking)|lect))|notification_callback|co(ntext_(set_(option|default|params)|create|get_(options|default|params))|py_to_stream)|is_local|encoding|filter_(prepend|append|re(gister|move))|wrapper_(unregister|re(store|gister))|re(solve_include_path|gister_wrapper)|get_(contents|transports|filters|wrappers|line|meta_data)|bucket_(new|prepend|append|make_writeable))|et_socket_blocking)\\b",name:"support.function.streamsfuncs.php"},{match:"(?i)\\b(s(scanf|ha1(_file)?|tr(s(tr|pn)|n(c(asecmp|mp)|atc(asecmp|mp))|c(spn|hr|oll|asecmp|mp)|t(o(upper|k|lower)|r)|i(str|p(slashes|cslashes|os|_tags))|_(s(huffle|plit)|ireplace|pad|word_count|r(ot13|ep(eat|lace))|getcsv)|p(os|brk)|len|r(chr|ipos|pos|ev))|imilar_text|oundex|ubstr(_(co(unt|mpare)|replace))?|printf|etlocale)|h(tml(specialchars(_decode)?|_entity_decode|entities)|e(x2bin|brev(c)?))|n(umber_format|l(2br|_langinfo))|c(h(op|unk_split|r)|o(nvert_(cyr_string|uu(decode|encode))|unt_chars)|r(ypt|c32))|trim|implode|ord|uc(first|words)|join|p(arse_str|rint(f)?)|e(cho|xplode)|v(sprintf|printf|fprintf)|quote(d_printable_(decode|encode)|meta)|fprintf|wordwrap|l(cfirst|trim|ocaleconv|evenshtein)|add(slashes|cslashes)|rtrim|get_html_translation_table|m(oney_format|d5(_file)?|etaphone)|bin2hex)\\b",name:"support.function.string.php"},{match:"(?i)\\bsybase_(se(t_message_handler|lect_db)|num_(fields|rows)|c(onnect|lose)|d(eadlock_retry_count|ata_seek)|unbuffered_query|pconnect|query|f(ield_seek|etch_(object|field|a(ssoc|rray)|row)|ree_result)|affected_rows|result|get_last_message|min_(server_severity|client_severity|error_severity|message_severity))\\b",name:"support.function.sybase.php"},{match:"(?i)\\b(taint|is_tainted|untaint)\\b",name:"support.function.taint.php"},{match:"(?i)\\b(tidy_(s(et(opt|_encoding)|ave_config)|c(onfig_count|lean_repair)|is_x(html|ml)|diagnose|parse_(string|file)|error_count|warning_count|load_config|access_count|re(set_config|pair_(string|file))|get(opt|_(status|h(tml(_ver)?|ead)|config|o(utput|pt_doc)|r(oot|elease)|body)))|ob_tidyhandler)\\b",name:"support.function.tidy.php"},{match:"(?i)\\btoken_(name|get_all)\\b",name:"support.function.tokenizer.php"},{match:"(?i)\\btrader_(s(t(och(f|rsi)?|ddev)|in(h)?|u(m|b)|et_(compat|unstable_period)|qrt|ar(ext)?|ma)|ht_(sine|trend(line|mode)|dcp(hase|eriod)|phasor)|natr|c(ci|o(s(h)?|rrel)|dl(s(ho(otingstar|rtline)|t(icksandwich|alledpattern)|pinningtop|eparatinglines)|h(i(kkake(mod)?|ghwave)|omingpigeon|a(ngingman|rami(cross)?|mmer))|c(o(ncealbabyswall|unterattack)|losingmarubozu)|t(hrusting|a(sukigap|kuri)|ristar)|i(n(neck|vertedhammer)|dentical3crows)|2crows|onneck|d(oji(star)?|arkcloudcover|ragonflydoji)|u(nique3river|psidegap2crows)|3(starsinsouth|inside|outside|whitesoldiers|linestrike|blackcrows)|piercing|e(ngulfing|vening(star|dojistar))|kicking(bylength)?|l(ongl(ine|eggeddoji)|adderbottom)|a(dvanceblock|bandonedbaby)|ri(sefall3methods|ckshawman)|g(apsidesidewhite|ravestonedoji)|xsidegap3methods|m(orning(star|dojistar)|a(t(hold|chinglow)|rubozu))|b(elthold|reakaway))|eil|mo)|t(sf|ypprice|3|ema|an(h)?|r(i(x|ma)|ange))|obv|d(iv|ema|x)|ultosc|p(po|lus_d(i|m))|e(rrno|xp|ma)|var|kama|floor|w(clprice|illr|ma)|l(n|inearreg(_(slope|intercept|angle))?|og10)|a(sin|cos|t(an|r)|d(osc|d|x(r)?)?|po|vgprice|roon(osc)?)|r(si|oc(p|r(100)?)?)|get_(compat|unstable_period)|m(i(n(index|us_d(i|m)|max(index)?)?|dp(oint|rice))|om|ult|edprice|fi|a(cd(ext|fix)?|vp|x(index)?|ma)?)|b(op|eta|bands))\\b",name:"support.function.trader.php"},{match:"(?i)\\b(http_build_query|url(decode|encode)|parse_url|rawurl(decode|encode)|get_(headers|meta_tags)|base64_(decode|encode))\\b",name:"support.function.url.php"},{match:"(?i)\\b(s(trval|e(ttype|rialize))|i(s(set|_(s(calar|tring)|nu(ll|meric)|callable|int(eger)?|object|double|float|long|array|re(source|al)|bool|arraykey|nonnull|dict|vec|keyset))|ntval|mport_request_variables)|d(oubleval|ebug_zval_dump)|unse(t|rialize)|print_r|empty|var_(dump|export)|floatval|get(type|_(defined_vars|resource_type))|boolval)\\b",name:"support.function.var.php"},{match:"(?i)\\bwddx_(serialize_va(lue|rs)|deserialize|packet_(start|end)|add_vars)\\b",name:"support.function.wddx.php"},{match:"(?i)\\bxhprof_(sample_(disable|enable)|disable|enable)\\b",name:"support.function.xhprof.php"},{match:"(?i)\\b(utf8_(decode|encode)|xml_(set_(start_namespace_decl_handler|notation_decl_handler|character_data_handler|object|default_handler|unparsed_entity_decl_handler|processing_instruction_handler|e(nd_namespace_decl_handler|lement_handler|xternal_entity_ref_handler))|parse(_into_struct|r_(set_option|create(_ns)?|free|get_option))?|error_string|get_(current_(column_number|line_number|byte_index)|error_code)))\\b",name:"support.function.xml.php"},{match:"(?i)\\bxmlrpc_(se(t_type|rver_(c(all_method|reate)|destroy|add_introspection_data|register_(introspection_callback|method)))|is_fault|decode(_request)?|parse_method_descriptions|encode(_request)?|get_type)\\b",name:"support.function.xmlrpc.php"},{match:"(?i)\\bxmlwriter_(s(tart_(c(omment|data)|d(td(_(e(ntity|lement)|attlist))?|ocument)|pi|element(_ns)?|attribute(_ns)?)|et_indent(_string)?)|text|o(utput_memory|pen_(uri|memory))|end_(c(omment|data)|d(td(_(e(ntity|lement)|attlist))?|ocument)|pi|element|attribute)|f(ull_end_element|lush)|write_(c(omment|data)|dtd(_(e(ntity|lement)|attlist))?|pi|element(_ns)?|attribute(_ns)?|raw))\\b",name:"support.function.xmlwriter.php"},{match:"(?i)\\bxslt_(set(opt|_(s(cheme_handler(s)?|ax_handler(s)?)|object|e(ncoding|rror_handler)|log|base))|create|process|err(no|or)|free|getopt|backend_(name|info|version))\\b",name:"support.function.xslt.php"},{match:"(?i)\\b(zlib_(decode|encode|get_coding_type)|readgzfile|gz(seek|c(ompress|lose)|tell|inflate|open|de(code|flate)|uncompress|p(uts|assthru)|e(ncode|of)|file|write|re(wind|ad)|get(s(s)?|c)))\\b",name:"support.function.zlib.php"},{match:"(?i)\\bis_int(eger)?\\b",name:"support.function.alias.php"}]},"user-function-call":{begin:"(?i)(?=[a-z_0-9\\\\]*[a-z_][a-z0-9_]*\\s*\\()",end:"(?i)[a-z_][a-z_0-9]*(?=\\s*\\()",endCaptures:{"0":{name:"entity.name.function.php"}},name:"meta.function-call.php",patterns:[{include:"#namespace"}]},var_basic:{patterns:[{captures:{"1":{name:"punctuation.definition.variable.php"}},match:"(?x)\n(\\$+)\n[a-zA-Z_\\x{7f}-\\x{ff}]\n[a-zA-Z0-9_\\x{7f}-\\x{ff}]*?\n\\b",name:"variable.other.php"}]},var_global:{captures:{"1":{name:"punctuation.definition.variable.php"}},match:"(\\$)((_(COOKIE|FILES|GET|POST|REQUEST))|arg(v|c))\\b",name:"variable.other.global.php"},var_global_safer:{captures:{"1":{name:"punctuation.definition.variable.php"}},match:"(\\$)((GLOBALS|_(ENV|SERVER|SESSION)))",name:"variable.other.global.safer.php"},"variable-name":{patterns:[{include:"#var_global"},{include:"#var_global_safer"},{captures:{"1":{name:"variable.other.php"},"2":{name:"punctuation.definition.variable.php"},"4":{name:"keyword.operator.class.php"},"5":{name:"variable.other.property.php"},"6":{name:"punctuation.section.array.begin.php"},"7":{name:"constant.numeric.index.php"},"8":{name:"variable.other.index.php"},"9":{name:"punctuation.definition.variable.php"},"10":{name:"string.unquoted.index.php"},"11":{name:"punctuation.section.array.end.php"}},comment:"Simple syntax: $foo, $foo[0], $foo[$bar], $foo->bar",match:"(?x)\n((\\$)(?[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*))\n(?:\n (->)(\\g)\n |\n (\\[)\n (?:(\\d+)|((\\$)\\g)|(\\w+))\n (\\])\n)?"},{captures:{"1":{name:"variable.other.php"},"2":{name:"punctuation.definition.variable.php"},"4":{name:"punctuation.definition.variable.php"}},comment:"Simple syntax with braces: \"foo${bar}baz\"",match:"(?x)\n((\\$\\{)(?[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)(\\}))"}]},variables:{patterns:[{include:"#var_global"},{include:"#var_global_safer"},{include:"#var_basic"},{begin:"(\\$\\{)(?=.*?\\})",beginCaptures:{"1":{name:"punctuation.definition.variable.php"}},end:"(\\})",endCaptures:{"1":{name:"punctuation.definition.variable.php"}},patterns:[{include:"#language"}]}]},xhp:{comment:"Avoid < operator expressions as best we can using Zertosh's regex",patterns:[{contentName:"source.xhp",begin:"(?<=\\(|\\{|\\[|,|&&|\\|\\||\\?|:|=|=>|\\Wreturn|^return|^)\\s*(?=<[_\\p{L}])",end:"(?=.)",applyEndPatternLast:1,patterns:[{include:"#xhp-tag-element-name"}]}]},"xhp-tag-element-name":{patterns:[{comment:"Tags that end > are trapped in #xhp-tag-termination",begin:"\\s*(<)([_\\p{L}](?:[:\\p{L}\\p{Mn}\\p{Mc}\\p{Nd}\\p{Nl}\\p{Pc}-])*+)(?=[/>\\s])(?)|(/>)|((?<=",beginCaptures:{"1":{name:"punctuation.definition.tag.xhp"},"2":{name:"entity.name.tag.open.xhp"}},endCaptures:{"1":{name:"entity.name.tag.close.xhp"},"2":{name:"punctuation.definition.tag.xhp"},"3":{name:"punctuation.definition.tag.xhp"},"4":{name:"invalid.illegal.termination.xhp"}},patterns:[{include:"#xhp-tag-termination"},{include:"#xhp-html-comments"},{include:"#xhp-tag-attributes"}]}]},"xhp-tag-termination":{patterns:[{comment:"uses non consuming search for ",begin:"(?",name:"comment.block.html",patterns:[{match:"\\G-?>",name:"invalid.illegal.characters-not-allowed-here.html"},{match:")",name:"invalid.illegal.characters-not-allowed-here.html"},{match:"--!>",name:"invalid.illegal.characters-not-allowed-here.html"}]},"core-minus-invalid":{comment:"This should be the root pattern array includes minus #tags-invalid",patterns:[{include:"#xml-processing"},{include:"#comment"},{include:"#doctype"},{include:"#cdata"},{include:"#tags-valid"},{include:"#entities"}]},doctype:{begin:"",endCaptures:{"0":{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.metadata.doctype.html",patterns:[{match:"\\G(?i:DOCTYPE)",name:"entity.name.tag.html"},{begin:"\"",end:"\"",name:"string.quoted.double.html"},{match:"[^\\s>]+",name:"entity.other.attribute-name.html"}]},entities:{patterns:[{captures:{"1":{name:"punctuation.definition.entity.html"},"912":{name:"punctuation.definition.entity.html"}},comment:"Yes this is a bit ridiculous, there are quite a lot of these",match:"(?x)\n\t\t\t\t\t\t(&)\t(?=[a-zA-Z])\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t(a(s(ymp(eq)?|cr|t)|n(d(slope|d|v|and)?|g(s(t|ph)|zarr|e|le|rt(vb(d)?)?|msd(a(h|c|d|e|f|a|g|b))?)?)|c(y|irc|d|ute|E)?|tilde|o(pf|gon)|uml|p(id|os|prox(eq)?|e|E|acir)?|elig|f(r)?|w(conint|int)|l(pha|e(ph|fsym))|acute|ring|grave|m(p|a(cr|lg))|breve)|A(s(sign|cr)|nd|MP|c(y|irc)|tilde|o(pf|gon)|uml|pplyFunction|fr|Elig|lpha|acute|ring|grave|macr|breve))\n\t\t\t\t\t\t | (B(scr|cy|opf|umpeq|e(cause|ta|rnoullis)|fr|a(ckslash|r(v|wed))|reve)|b(s(cr|im(e)?|ol(hsub|b)?|emi)|n(ot|e(quiv)?)|c(y|ong)|ig(s(tar|qcup)|c(irc|up|ap)|triangle(down|up)|o(times|dot|plus)|uplus|vee|wedge)|o(t(tom)?|pf|wtie|x(h(d|u|D|U)?|times|H(d|u|D|U)?|d(R|l|r|L)|u(R|l|r|L)|plus|D(R|l|r|L)|v(R|h|H|l|r|L)?|U(R|l|r|L)|V(R|h|H|l|r|L)?|minus|box))|Not|dquo|u(ll(et)?|mp(e(q)?|E)?)|prime|e(caus(e)?|t(h|ween|a)|psi|rnou|mptyv)|karow|fr|l(ock|k(1(2|4)|34)|a(nk|ck(square|triangle(down|left|right)?|lozenge)))|a(ck(sim(eq)?|cong|prime|epsilon)|r(vee|wed(ge)?))|r(eve|vbar)|brk(tbrk)?))\n\t\t\t\t\t\t | (c(s(cr|u(p(e)?|b(e)?))|h(cy|i|eck(mark)?)|ylcty|c(irc|ups(sm)?|edil|a(ps|ron))|tdot|ir(scir|c(eq|le(d(R|circ|S|dash|ast)|arrow(left|right)))?|e|fnint|E|mid)?|o(n(int|g(dot)?)|p(y(sr)?|f|rod)|lon(e(q)?)?|m(p(fn|le(xes|ment))?|ma(t)?))|dot|u(darr(l|r)|p(s|c(up|ap)|or|dot|brcap)?|e(sc|pr)|vee|wed|larr(p)?|r(vearrow(left|right)|ly(eq(succ|prec)|vee|wedge)|arr(m)?|ren))|e(nt(erdot)?|dil|mptyv)|fr|w(conint|int)|lubs(uit)?|a(cute|p(s|c(up|ap)|dot|and|brcup)?|r(on|et))|r(oss|arr))|C(scr|hi|c(irc|onint|edil|aron)|ircle(Minus|Times|Dot|Plus)|Hcy|o(n(tourIntegral|int|gruent)|unterClockwiseContourIntegral|p(f|roduct)|lon(e)?)|dot|up(Cap)?|OPY|e(nterDot|dilla)|fr|lo(seCurly(DoubleQuote|Quote)|ckwiseContourIntegral)|a(yleys|cute|p(italDifferentialD)?)|ross))\n\t\t\t\t\t\t | (d(s(c(y|r)|trok|ol)|har(l|r)|c(y|aron)|t(dot|ri(f)?)|i(sin|e|v(ide(ontimes)?|onx)?|am(s|ond(suit)?)?|gamma)|Har|z(cy|igrarr)|o(t(square|plus|eq(dot)?|minus)?|ublebarwedge|pf|wn(harpoon(left|right)|downarrows|arrow)|llar)|d(otseq|a(rr|gger))?|u(har|arr)|jcy|e(lta|g|mptyv)|f(isht|r)|wangle|lc(orn|rop)|a(sh(v)?|leth|rr|gger)|r(c(orn|rop)|bkarow)|b(karow|lac)|Arr)|D(s(cr|trok)|c(y|aron)|Scy|i(fferentialD|a(critical(Grave|Tilde|Do(t|ubleAcute)|Acute)|mond))|o(t(Dot|Equal)?|uble(Right(Tee|Arrow)|ContourIntegral|Do(t|wnArrow)|Up(DownArrow|Arrow)|VerticalBar|L(ong(RightArrow|Left(RightArrow|Arrow))|eft(RightArrow|Tee|Arrow)))|pf|wn(Right(TeeVector|Vector(Bar)?)|Breve|Tee(Arrow)?|arrow|Left(RightVector|TeeVector|Vector(Bar)?)|Arrow(Bar|UpArrow)?))|Zcy|el(ta)?|D(otrahd)?|Jcy|fr|a(shv|rr|gger)))\n\t\t\t\t\t\t | (e(s(cr|im|dot)|n(sp|g)|c(y|ir(c)?|olon|aron)|t(h|a)|o(pf|gon)|dot|u(ro|ml)|p(si(v|lon)?|lus|ar(sl)?)|e|D(ot|Dot)|q(s(im|lant(less|gtr))|c(irc|olon)|u(iv(DD)?|est|als)|vparsl)|f(Dot|r)|l(s(dot)?|inters|l)?|a(ster|cute)|r(Dot|arr)|g(s(dot)?|rave)?|x(cl|ist|p(onentiale|ectation))|m(sp(1(3|4))?|pty(set|v)?|acr))|E(s(cr|im)|c(y|irc|aron)|ta|o(pf|gon)|NG|dot|uml|TH|psilon|qu(ilibrium|al(Tilde)?)|fr|lement|acute|grave|x(ists|ponentialE)|m(pty(SmallSquare|VerySmallSquare)|acr)))\n\t\t\t\t\t\t | (f(scr|nof|cy|ilig|o(pf|r(k(v)?|all))|jlig|partint|emale|f(ilig|l(ig|lig)|r)|l(tns|lig|at)|allingdotseq|r(own|a(sl|c(1(2|8|3|4|5|6)|78|2(3|5)|3(8|4|5)|45|5(8|6)))))|F(scr|cy|illed(SmallSquare|VerySmallSquare)|o(uriertrf|pf|rAll)|fr))\n\t\t\t\t\t\t | (G(scr|c(y|irc|edil)|t|opf|dot|T|Jcy|fr|amma(d)?|reater(Greater|SlantEqual|Tilde|Equal(Less)?|FullEqual|Less)|g|breve)|g(s(cr|im(e|l)?)|n(sim|e(q(q)?)?|E|ap(prox)?)|c(y|irc)|t(c(c|ir)|dot|quest|lPar|r(sim|dot|eq(qless|less)|less|a(pprox|rr)))?|imel|opf|dot|jcy|e(s(cc|dot(o(l)?)?|l(es)?)?|q(slant|q)?|l)?|v(nE|ertneqq)|fr|E(l)?|l(j|E|a)?|a(cute|p|mma(d)?)|rave|g(g)?|breve))\n\t\t\t\t\t\t | (h(s(cr|trok|lash)|y(phen|bull)|circ|o(ok(leftarrow|rightarrow)|pf|arr|rbar|mtht)|e(llip|arts(uit)?|rcon)|ks(earow|warow)|fr|a(irsp|lf|r(dcy|r(cir|w)?)|milt)|bar|Arr)|H(s(cr|trok)|circ|ilbertSpace|o(pf|rizontalLine)|ump(DownHump|Equal)|fr|a(cek|t)|ARDcy))\n\t\t\t\t\t\t | (i(s(cr|in(s(v)?|dot|v|E)?)|n(care|t(cal|prod|e(rcal|gers)|larhk)?|odot|fin(tie)?)?|c(y|irc)?|t(ilde)?|i(nfin|i(nt|int)|ota)?|o(cy|ta|pf|gon)|u(kcy|ml)|jlig|prod|e(cy|xcl)|quest|f(f|r)|acute|grave|m(of|ped|a(cr|th|g(part|e|line))))|I(scr|n(t(e(rsection|gral))?|visible(Comma|Times))|c(y|irc)|tilde|o(ta|pf|gon)|dot|u(kcy|ml)|Ocy|Jlig|fr|Ecy|acute|grave|m(plies|a(cr|ginaryI))?))\n\t\t\t\t\t\t | (j(s(cr|ercy)|c(y|irc)|opf|ukcy|fr|math)|J(s(cr|ercy)|c(y|irc)|opf|ukcy|fr))\n\t\t\t\t\t\t | (k(scr|hcy|c(y|edil)|opf|jcy|fr|appa(v)?|green)|K(scr|c(y|edil)|Hcy|opf|Jcy|fr|appa))\n\t\t\t\t\t\t | (l(s(h|cr|trok|im(e|g)?|q(uo(r)?|b)|aquo)|h(ar(d|u(l)?)|blk)|n(sim|e(q(q)?)?|E|ap(prox)?)|c(y|ub|e(il|dil)|aron)|Barr|t(hree|c(c|ir)|imes|dot|quest|larr|r(i(e|f)?|Par))?|Har|o(ng(left(arrow|rightarrow)|rightarrow|mapsto)|times|z(enge|f)?|oparrow(left|right)|p(f|lus|ar)|w(ast|bar)|a(ng|rr)|brk)|d(sh|ca|quo(r)?|r(dhar|ushar))|ur(dshar|uhar)|jcy|par(lt)?|e(s(s(sim|dot|eq(qgtr|gtr)|approx|gtr)|cc|dot(o(r)?)?|g(es)?)?|q(slant|q)?|ft(harpoon(down|up)|threetimes|leftarrows|arrow(tail)?|right(squigarrow|harpoons|arrow(s)?))|g)?|v(nE|ertneqq)|f(isht|loor|r)|E(g)?|l(hard|corner|tri|arr)?|a(ng(d|le)?|cute|t(e(s)?|ail)?|p|emptyv|quo|rr(sim|hk|tl|pl|fs|lp|b(fs)?)?|gran|mbda)|r(har(d)?|corner|tri|arr|m)|g(E)?|m(idot|oust(ache)?)|b(arr|r(k(sl(d|u)|e)|ac(e|k))|brk)|A(tail|arr|rr))|L(s(h|cr|trok)|c(y|edil|aron)|t|o(ng(RightArrow|left(arrow|rightarrow)|rightarrow|Left(RightArrow|Arrow))|pf|wer(RightArrow|LeftArrow))|T|e(ss(Greater|SlantEqual|Tilde|EqualGreater|FullEqual|Less)|ft(Right(Vector|Arrow)|Ceiling|T(ee(Vector|Arrow)?|riangle(Bar|Equal)?)|Do(ubleBracket|wn(TeeVector|Vector(Bar)?))|Up(TeeVector|DownVector|Vector(Bar)?)|Vector(Bar)?|arrow|rightarrow|Floor|A(ngleBracket|rrow(RightArrow|Bar)?)))|Jcy|fr|l(eftarrow)?|a(ng|cute|placetrf|rr|mbda)|midot))\n\t\t\t\t\t\t | (M(scr|cy|inusPlus|opf|u|e(diumSpace|llintrf)|fr|ap)|m(s(cr|tpos)|ho|nplus|c(y|omma)|i(nus(d(u)?|b)?|cro|d(cir|dot|ast)?)|o(dels|pf)|dash|u(ltimap|map)?|p|easuredangle|DDot|fr|l(cp|dr)|a(cr|p(sto(down|up|left)?)?|l(t(ese)?|e)|rker)))\n\t\t\t\t\t\t | (n(s(hort(parallel|mid)|c(cue|e|r)?|im(e(q)?)?|u(cc(eq)?|p(set(eq(q)?)?|e|E)?|b(set(eq(q)?)?|e|E)?)|par|qsu(pe|be)|mid)|Rightarrow|h(par|arr|Arr)|G(t(v)?|g)|c(y|ong(dot)?|up|edil|a(p|ron))|t(ilde|lg|riangle(left(eq)?|right(eq)?)|gl)|i(s(d)?|v)?|o(t(ni(v(c|a|b))?|in(dot|v(c|a|b)|E)?)?|pf)|dash|u(m(sp|ero)?)?|jcy|p(olint|ar(sl|t|allel)?|r(cue|e(c(eq)?)?)?)|e(s(im|ear)|dot|quiv|ar(hk|r(ow)?)|xist(s)?|Arr)?|v(sim|infin|Harr|dash|Dash|l(t(rie)?|e|Arr)|ap|r(trie|Arr)|g(t|e))|fr|w(near|ar(hk|r(ow)?)|Arr)|V(dash|Dash)|l(sim|t(ri(e)?)?|dr|e(s(s)?|q(slant|q)?|ft(arrow|rightarrow))?|E|arr|Arr)|a(ng|cute|tur(al(s)?)?|p(id|os|prox|E)?|bla)|r(tri(e)?|ightarrow|arr(c|w)?|Arr)|g(sim|t(r)?|e(s|q(slant|q)?)?|E)|mid|L(t(v)?|eft(arrow|rightarrow)|l)|b(sp|ump(e)?))|N(scr|c(y|edil|aron)|tilde|o(nBreakingSpace|Break|t(R(ightTriangle(Bar|Equal)?|everseElement)|Greater(Greater|SlantEqual|Tilde|Equal|FullEqual|Less)?|S(u(cceeds(SlantEqual|Tilde|Equal)?|perset(Equal)?|bset(Equal)?)|quareSu(perset(Equal)?|bset(Equal)?))|Hump(DownHump|Equal)|Nested(GreaterGreater|LessLess)|C(ongruent|upCap)|Tilde(Tilde|Equal|FullEqual)?|DoubleVerticalBar|Precedes(SlantEqual|Equal)?|E(qual(Tilde)?|lement|xists)|VerticalBar|Le(ss(Greater|SlantEqual|Tilde|Equal|Less)?|ftTriangle(Bar|Equal)?))?|pf)|u|e(sted(GreaterGreater|LessLess)|wLine|gative(MediumSpace|Thi(nSpace|ckSpace)|VeryThinSpace))|Jcy|fr|acute))\n\t\t\t\t\t\t | (o(s(cr|ol|lash)|h(m|bar)|c(y|ir(c)?)|ti(lde|mes(as)?)|S|int|opf|d(sold|iv|ot|ash|blac)|uml|p(erp|lus|ar)|elig|vbar|f(cir|r)|l(c(ir|ross)|t|ine|arr)|a(st|cute)|r(slope|igof|or|d(er(of)?|f|m)?|v|arr)?|g(t|on|rave)|m(i(nus|cron|d)|ega|acr))|O(s(cr|lash)|c(y|irc)|ti(lde|mes)|opf|dblac|uml|penCurly(DoubleQuote|Quote)|ver(B(ar|rac(e|ket))|Parenthesis)|fr|Elig|acute|r|grave|m(icron|ega|acr)))\n\t\t\t\t\t\t | (p(s(cr|i)|h(i(v)?|one|mmat)|cy|i(tchfork|v)?|o(intint|und|pf)|uncsp|er(cnt|tenk|iod|p|mil)|fr|l(us(sim|cir|two|d(o|u)|e|acir|mn|b)?|an(ck(h)?|kv))|ar(s(im|l)|t|a(llel)?)?|r(sim|n(sim|E|ap)|cue|ime(s)?|o(d|p(to)?|f(surf|line|alar))|urel|e(c(sim|n(sim|eqq|approx)|curlyeq|eq|approx)?)?|E|ap)?|m)|P(s(cr|i)|hi|cy|i|o(incareplane|pf)|fr|lusMinus|artialD|r(ime|o(duct|portion(al)?)|ecedes(SlantEqual|Tilde|Equal)?)?))\n\t\t\t\t\t\t | (q(scr|int|opf|u(ot|est(eq)?|at(int|ernions))|prime|fr)|Q(scr|opf|UOT|fr))\n\t\t\t\t\t\t | (R(s(h|cr)|ho|c(y|edil|aron)|Barr|ight(Ceiling|T(ee(Vector|Arrow)?|riangle(Bar|Equal)?)|Do(ubleBracket|wn(TeeVector|Vector(Bar)?))|Up(TeeVector|DownVector|Vector(Bar)?)|Vector(Bar)?|arrow|Floor|A(ngleBracket|rrow(Bar|LeftArrow)?))|o(undImplies|pf)|uleDelayed|e(verse(UpEquilibrium|E(quilibrium|lement)))?|fr|EG|a(ng|cute|rr(tl)?)|rightarrow)|r(s(h|cr|q(uo(r)?|b)|aquo)|h(o(v)?|ar(d|u(l)?))|nmid|c(y|ub|e(il|dil)|aron)|Barr|t(hree|imes|ri(e|f|ltri)?)|i(singdotseq|ng|ght(squigarrow|harpoon(down|up)|threetimes|left(harpoons|arrows)|arrow(tail)?|rightarrows))|Har|o(times|p(f|lus|ar)|a(ng|rr)|brk)|d(sh|ca|quo(r)?|ldhar)|uluhar|p(polint|ar(gt)?)|e(ct|al(s|ine|part)?|g)|f(isht|loor|r)|l(har|arr|m)|a(ng(d|e|le)?|c(ute|e)|t(io(nals)?|ail)|dic|emptyv|quo|rr(sim|hk|c|tl|pl|fs|w|lp|ap|b(fs)?)?)|rarr|x|moust(ache)?|b(arr|r(k(sl(d|u)|e)|ac(e|k))|brk)|A(tail|arr|rr)))\n\t\t\t\t\t\t | (s(s(cr|tarf|etmn|mile)|h(y|c(hcy|y)|ort(parallel|mid)|arp)|c(sim|y|n(sim|E|ap)|cue|irc|polint|e(dil)?|E|a(p|ron))?|t(ar(f)?|r(ns|aight(phi|epsilon)))|i(gma(v|f)?|m(ne|dot|plus|e(q)?|l(E)?|rarr|g(E)?)?)|zlig|o(pf|ftcy|l(b(ar)?)?)|dot(e|b)?|u(ng|cc(sim|n(sim|eqq|approx)|curlyeq|eq|approx)?|p(s(im|u(p|b)|et(neq(q)?|eq(q)?)?)|hs(ol|ub)|1|n(e|E)|2|d(sub|ot)|3|plus|e(dot)?|E|larr|mult)?|m|b(s(im|u(p|b)|et(neq(q)?|eq(q)?)?)|n(e|E)|dot|plus|e(dot)?|E|rarr|mult)?)|pa(des(uit)?|r)|e(swar|ct|tm(n|inus)|ar(hk|r(ow)?)|xt|mi|Arr)|q(su(p(set(eq)?|e)?|b(set(eq)?|e)?)|c(up(s)?|ap(s)?)|u(f|ar(e|f))?)|fr(own)?|w(nwar|ar(hk|r(ow)?)|Arr)|larr|acute|rarr|m(t(e(s)?)?|i(d|le)|eparsl|a(shp|llsetminus))|bquo)|S(scr|hort(RightArrow|DownArrow|UpArrow|LeftArrow)|c(y|irc|edil|aron)?|tar|igma|H(cy|CHcy)|opf|u(c(hThat|ceeds(SlantEqual|Tilde|Equal)?)|p(set|erset(Equal)?)?|m|b(set(Equal)?)?)|OFTcy|q(uare(Su(perset(Equal)?|bset(Equal)?)|Intersection|Union)?|rt)|fr|acute|mallCircle))\n\t\t\t\t\t\t | (t(s(hcy|c(y|r)|trok)|h(i(nsp|ck(sim|approx))|orn|e(ta(sym|v)?|re(4|fore))|k(sim|ap))|c(y|edil|aron)|i(nt|lde|mes(d|b(ar)?)?)|o(sa|p(cir|f(ork)?|bot)?|ea)|dot|prime|elrec|fr|w(ixt|ohead(leftarrow|rightarrow))|a(u|rget)|r(i(sb|time|dot|plus|e|angle(down|q|left(eq)?|right(eq)?)?|minus)|pezium|ade)|brk)|T(s(cr|trok)|RADE|h(i(nSpace|ckSpace)|e(ta|refore))|c(y|edil|aron)|S(cy|Hcy)|ilde(Tilde|Equal|FullEqual)?|HORN|opf|fr|a(u|b)|ripleDot))\n\t\t\t\t\t\t | (u(scr|h(ar(l|r)|blk)|c(y|irc)|t(ilde|dot|ri(f)?)|Har|o(pf|gon)|d(har|arr|blac)|u(arr|ml)|p(si(h|lon)?|harpoon(left|right)|downarrow|uparrows|lus|arrow)|f(isht|r)|wangle|l(c(orn(er)?|rop)|tri)|a(cute|rr)|r(c(orn(er)?|rop)|tri|ing)|grave|m(l|acr)|br(cy|eve)|Arr)|U(scr|n(ion(Plus)?|der(B(ar|rac(e|ket))|Parenthesis))|c(y|irc)|tilde|o(pf|gon)|dblac|uml|p(si(lon)?|downarrow|Tee(Arrow)?|per(RightArrow|LeftArrow)|DownArrow|Equilibrium|arrow|Arrow(Bar|DownArrow)?)|fr|a(cute|rr(ocir)?)|ring|grave|macr|br(cy|eve)))\n\t\t\t\t\t\t | (v(s(cr|u(pn(e|E)|bn(e|E)))|nsu(p|b)|cy|Bar(v)?|zigzag|opf|dash|prop|e(e(eq|bar)?|llip|r(t|bar))|Dash|fr|ltri|a(ngrt|r(s(igma|u(psetneq(q)?|bsetneq(q)?))|nothing|t(heta|riangle(left|right))|p(hi|i|ropto)|epsilon|kappa|r(ho)?))|rtri|Arr)|V(scr|cy|opf|dash(l)?|e(e|r(yThinSpace|t(ical(Bar|Separator|Tilde|Line))?|bar))|Dash|vdash|fr|bar))\n\t\t\t\t\t\t | (w(scr|circ|opf|p|e(ierp|d(ge(q)?|bar))|fr|r(eath)?)|W(scr|circ|opf|edge|fr))\n\t\t\t\t\t\t | (X(scr|i|opf|fr)|x(s(cr|qcup)|h(arr|Arr)|nis|c(irc|up|ap)|i|o(time|dot|p(f|lus))|dtri|u(tri|plus)|vee|fr|wedge|l(arr|Arr)|r(arr|Arr)|map))\n\t\t\t\t\t\t | (y(scr|c(y|irc)|icy|opf|u(cy|ml)|en|fr|ac(y|ute))|Y(scr|c(y|irc)|opf|uml|Icy|Ucy|fr|acute|Acy))\n\t\t\t\t\t\t | (z(scr|hcy|c(y|aron)|igrarr|opf|dot|e(ta|etrf)|fr|w(nj|j)|acute)|Z(scr|c(y|aron)|Hcy|opf|dot|e(ta|roWidthSpace)|fr|acute))\n\t\t\t\t\t\t)\n\t\t\t\t\t\t(;)\n\t\t\t\t\t",name:"constant.character.entity.named.$2.html"},{captures:{"1":{name:"punctuation.definition.entity.html"},"3":{name:"punctuation.definition.entity.html"}},match:"(&)#[0-9]+(;)",name:"constant.character.entity.numeric.decimal.html"},{captures:{"1":{name:"punctuation.definition.entity.html"},"3":{name:"punctuation.definition.entity.html"}},match:"(&)#[xX][0-9a-fA-F]+(;)",name:"constant.character.entity.numeric.hexadecimal.html"},{match:"&(?=[a-zA-Z0-9]+;)",name:"invalid.illegal.ambiguous-ampersand.html"}]},math:{patterns:[{begin:"(?i)(<)(math)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?",beginCaptures:{"0":{name:"meta.tag.structure.$2.start.html"},"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"},"3":{patterns:[{include:"#attribute"}]},"5":{name:"punctuation.definition.tag.end.html"}},end:"(?i)()",endCaptures:{"0":{name:"meta.tag.structure.$2.end.html"},"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"},"3":{name:"punctuation.definition.tag.end.html"}},name:"meta.element.structure.$2.html",patterns:[{begin:"(?)\\G",end:">",endCaptures:{"0":{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.structure.start.html",patterns:[{include:"#attribute"}]},{include:"#tags"}]}],repository:{attribute:{patterns:[{begin:"(s(hift|ymmetric|cript(sizemultiplier|level|minsize)|t(ackalign|retchy)|ide|u(pscriptshift|bscriptshift)|e(parator(s)?|lection)|rc)|h(eight|ref)|n(otation|umalign)|c(haralign|olumn(spa(n|cing)|width|lines|align)|lose|rossout)|i(n(dent(shift(first|last)?|target|align(first|last)?)|fixlinebreakstyle)|d)|o(pen|verflow)|d(i(splay(style)?|r)|e(nomalign|cimalpoint|pth))|position|e(dge|qual(columns|rows))|voffset|f(orm|ence|rame(spacing)?)|width|l(space|ine(thickness|leading|break(style|multchar)?)|o(ngdivstyle|cation)|ength|quote|argeop)|a(c(cent(under)?|tiontype)|l(t(text|img(-(height|valign|width))?)|ign(mentscope)?))|r(space|ow(spa(n|cing)|lines|align)|quote)|groupalign|x(link:href|mlns)|m(in(size|labelspacing)|ovablelimits|a(th(size|color|variant|background)|xsize))|bevelled)(?![\\w:-])",beginCaptures:{"0":{name:"entity.other.attribute-name.html"}},end:"(?=\\s*+[^=\\s])",name:"meta.attribute.$1.html",patterns:[{include:"#attribute-interior"}]},{begin:"([^\\x{0020}\"'<>/=\\x{0000}-\\x{001F}\\x{007F}-\\x{009F}\\x{FDD0}-\\x{FDEF}\\x{FFFE}\\x{FFFF}\\x{1FFFE}\\x{1FFFF}\\x{2FFFE}\\x{2FFFF}\\x{3FFFE}\\x{3FFFF}\\x{4FFFE}\\x{4FFFF}\\x{5FFFE}\\x{5FFFF}\\x{6FFFE}\\x{6FFFF}\\x{7FFFE}\\x{7FFFF}\\x{8FFFE}\\x{8FFFF}\\x{9FFFE}\\x{9FFFF}\\x{AFFFE}\\x{AFFFF}\\x{BFFFE}\\x{BFFFF}\\x{CFFFE}\\x{CFFFF}\\x{DFFFE}\\x{DFFFF}\\x{EFFFE}\\x{EFFFF}\\x{FFFFE}\\x{FFFFF}\\x{10FFFE}\\x{10FFFF}]+)",beginCaptures:{"0":{name:"entity.other.attribute-name.html"}},comment:"Anything else that is valid",end:"(?=\\s*+[^=\\s])",name:"meta.attribute.unrecognized.$1.html",patterns:[{include:"#attribute-interior"}]},{match:"[^\\s>]+",name:"invalid.illegal.character-not-allowed-here.html"}]},tags:{patterns:[{include:"#comment"},{include:"#cdata"},{captures:{"0":{name:"meta.tag.structure.math.$2.void.html"},"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"},"3":{patterns:[{include:"#attribute"}]},"5":{name:"punctuation.definition.tag.end.html"}},match:"(?i)(<)(annotation|annotation-xml|semantics|menclose|merror|mfenced|mfrac|mpadded|mphantom|mroot|mrow|msqrt|mstyle|mmultiscripts|mover|mprescripts|msub|msubsup|msup|munder|munderover|none|mlabeledtr|mtable|mtd|mtr|mlongdiv|mscarries|mscarry|msgroup|msline|msrow|mstack|maction)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>))",name:"meta.element.structure.math.$2.html"},{begin:"(?i)(<)(annotation|annotation-xml|semantics|menclose|merror|mfenced|mfrac|mpadded|mphantom|mroot|mrow|msqrt|mstyle|mmultiscripts|mover|mprescripts|msub|msubsup|msup|munder|munderover|none|mlabeledtr|mtable|mtd|mtr|mlongdiv|mscarries|mscarry|msgroup|msline|msrow|mstack|maction)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?",beginCaptures:{"0":{name:"meta.tag.structure.math.$2.start.html"},"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"},"3":{patterns:[{include:"#attribute"}]},"5":{name:"punctuation.definition.tag.end.html"}},end:"(?i)()|(/>)|(?=)\\G",end:"(?=/>)|>",endCaptures:{"0":{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.structure.start.html",patterns:[{include:"#attribute"}]},{include:"#tags"}]},{captures:{"0":{name:"meta.tag.inline.math.$2.void.html"},"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"},"3":{patterns:[{include:"#attribute"}]},"5":{name:"punctuation.definition.tag.end.html"}},match:"(?i)(<)(mi|mn|mo|ms|mspace|mtext|maligngroup|malignmark)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>))",name:"meta.element.inline.math.$2.html"},{begin:"(?i)(<)(mi|mn|mo|ms|mspace|mtext|maligngroup|malignmark)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?",beginCaptures:{"0":{name:"meta.tag.inline.math.$2.start.html"},"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"},"3":{patterns:[{include:"#attribute"}]},"5":{name:"punctuation.definition.tag.end.html"}},end:"(?i)()|(/>)|(?=)\\G",end:"(?=/>)|>",endCaptures:{"0":{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.inline.start.html",patterns:[{include:"#attribute"}]},{include:"#tags"}]},{captures:{"0":{name:"meta.tag.object.math.$2.void.html"},"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"},"3":{patterns:[{include:"#attribute"}]},"5":{name:"punctuation.definition.tag.end.html"}},match:"(?i)(<)(mglyph)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>))",name:"meta.element.object.math.$2.html"},{begin:"(?i)(<)(mglyph)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?",beginCaptures:{"0":{name:"meta.tag.object.math.$2.start.html"},"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"},"3":{patterns:[{include:"#attribute"}]},"5":{name:"punctuation.definition.tag.end.html"}},end:"(?i)()|(/>)|(?=)\\G",end:"(?=/>)|>",endCaptures:{"0":{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.object.start.html",patterns:[{include:"#attribute"}]},{include:"#tags"}]},{captures:{"0":{name:"meta.tag.other.invalid.void.html"},"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"},"3":{name:"invalid.illegal.unrecognized-tag.html"},"4":{patterns:[{include:"#attribute"}]},"6":{name:"punctuation.definition.tag.end.html"}},match:"(?i)(<)(([\\w:]+))(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>))",name:"meta.element.other.invalid.html"},{begin:"(?i)(<)((\\w[^\\s>]*))(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?",beginCaptures:{"0":{name:"meta.tag.other.invalid.start.html"},"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"},"3":{name:"invalid.illegal.unrecognized-tag.html"},"4":{patterns:[{include:"#attribute"}]},"6":{name:"punctuation.definition.tag.end.html"}},end:"(?i)()|(/>)|(?=)\\G",end:"(?=/>)|>",endCaptures:{"0":{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.other.invalid.start.html",patterns:[{include:"#attribute"}]},{include:"#tags"}]},{include:"#tags-invalid"}]}}},svg:{patterns:[{begin:"(?i)(<)(svg)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?",beginCaptures:{"0":{name:"meta.tag.structure.$2.start.html"},"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"},"3":{patterns:[{include:"#attribute"}]},"5":{name:"punctuation.definition.tag.end.html"}},end:"(?i)()",endCaptures:{"0":{name:"meta.tag.structure.$2.end.html"},"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"},"3":{name:"punctuation.definition.tag.end.html"}},name:"meta.element.structure.$2.html",patterns:[{begin:"(?)\\G",end:">",endCaptures:{"0":{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.structure.start.html",patterns:[{include:"#attribute"}]},{include:"#tags"}]}],repository:{attribute:{patterns:[{begin:"(s(hape-rendering|ystemLanguage|cale|t(yle|itchTiles|op-(color|opacity)|dDeviation|em(h|v)|artOffset|r(i(ng|kethrough-(thickness|position))|oke(-(opacity|dash(offset|array)|width|line(cap|join)|miterlimit))?))|urfaceScale|p(e(cular(Constant|Exponent)|ed)|acing|readMethod)|eed|lope)|h(oriz-(origin-x|adv-x)|eight|anging|ref(lang)?)|y(1|2|ChannelSelector)?|n(umOctaves|ame)|c(y|o(ntentS(criptType|tyleType)|lor(-(interpolation(-filters)?|profile|rendering))?)|ursor|l(ip(-(path|rule)|PathUnits)?|ass)|a(p-height|lcMode)|x)|t(ype|o|ext(-(decoration|anchor|rendering)|Length)|a(rget(X|Y)?|b(index|leValues))|ransform)|i(n(tercept|2)?|d(eographic)?|mage-rendering)|z(oomAndPan)?|o(p(erator|acity)|ver(flow|line-(thickness|position))|ffset|r(i(ent(ation)?|gin)|der))|d(y|i(splay|visor|ffuseConstant|rection)|ominant-baseline|ur|e(scent|celerate)|x)?|u(1|n(i(code(-(range|bidi))?|ts-per-em)|derline-(thickness|position))|2)|p(ing|oint(s(At(X|Y|Z))?|er-events)|a(nose-1|t(h(Length)?|tern(ContentUnits|Transform|Units))|int-order)|r(imitiveUnits|eserveA(spectRatio|lpha)))|e(n(d|able-background)|dgeMode|levation|x(ternalResourcesRequired|ponent))|v(i(sibility|ew(Box|Target))|-(hanging|ideographic|alphabetic|mathematical)|e(ctor-effect|r(sion|t-(origin-(y|x)|adv-y)))|alues)|k(1|2|3|e(y(Splines|Times|Points)|rn(ing|el(Matrix|UnitLength)))|4)?|f(y|il(ter(Res|Units)?|l(-(opacity|rule))?)|o(nt-(s(t(yle|retch)|ize(-adjust)?)|variant|family|weight)|rmat)|lood-(color|opacity)|r(om)?|x)|w(idth(s)?|ord-spacing|riting-mode)|l(i(ghting-color|mitingConeAngle)|ocal|e(ngthAdjust|tter-spacing)|ang)|a(scent|cc(umulate|ent-height)|ttribute(Name|Type)|zimuth|dditive|utoReverse|l(ignment-baseline|phabetic|lowReorder)|rabic-form|mplitude)|r(y|otate|e(s(tart|ult)|ndering-intent|peat(Count|Dur)|quired(Extensions|Features)|f(X|Y|errerPolicy)|l)|adius|x)?|g(1|2|lyph(Ref|-(name|orientation-(horizontal|vertical)))|radient(Transform|Units))|x(1|2|ChannelSelector|-height|link:(show|href|t(ype|itle)|a(ctuate|rcrole)|role)|ml:(space|lang|base))?|m(in|ode|e(thod|dia)|a(sk(ContentUnits|Units)?|thematical|rker(Height|-(start|end|mid)|Units|Width)|x))|b(y|ias|egin|ase(Profile|line-shift|Frequency)|box))(?![\\w:-])",beginCaptures:{"0":{name:"entity.other.attribute-name.html"}},end:"(?=\\s*+[^=\\s])",name:"meta.attribute.$1.html",patterns:[{include:"#attribute-interior"}]},{begin:"([^\\x{0020}\"'<>/=\\x{0000}-\\x{001F}\\x{007F}-\\x{009F}\\x{FDD0}-\\x{FDEF}\\x{FFFE}\\x{FFFF}\\x{1FFFE}\\x{1FFFF}\\x{2FFFE}\\x{2FFFF}\\x{3FFFE}\\x{3FFFF}\\x{4FFFE}\\x{4FFFF}\\x{5FFFE}\\x{5FFFF}\\x{6FFFE}\\x{6FFFF}\\x{7FFFE}\\x{7FFFF}\\x{8FFFE}\\x{8FFFF}\\x{9FFFE}\\x{9FFFF}\\x{AFFFE}\\x{AFFFF}\\x{BFFFE}\\x{BFFFF}\\x{CFFFE}\\x{CFFFF}\\x{DFFFE}\\x{DFFFF}\\x{EFFFE}\\x{EFFFF}\\x{FFFFE}\\x{FFFFF}\\x{10FFFE}\\x{10FFFF}]+)",beginCaptures:{"0":{name:"entity.other.attribute-name.html"}},comment:"Anything else that is valid",end:"(?=\\s*+[^=\\s])",name:"meta.attribute.unrecognized.$1.html",patterns:[{include:"#attribute-interior"}]},{match:"[^\\s>]+",name:"invalid.illegal.character-not-allowed-here.html"}]},tags:{patterns:[{include:"#comment"},{include:"#cdata"},{captures:{"0":{name:"meta.tag.metadata.svg.$2.void.html"},"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"},"3":{patterns:[{include:"#attribute"}]},"5":{name:"punctuation.definition.tag.end.html"}},match:"(?i)(<)(color-profile|desc|metadata|script|style|title)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>))",name:"meta.element.metadata.svg.$2.html"},{begin:"(?i)(<)(color-profile|desc|metadata|script|style|title)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?",beginCaptures:{"0":{name:"meta.tag.metadata.svg.$2.start.html"},"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"},"3":{patterns:[{include:"#attribute"}]},"5":{name:"punctuation.definition.tag.end.html"}},end:"(?i)()|(/>)|(?=)\\G",end:"(?=/>)|>",endCaptures:{"0":{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.metadata.start.html",patterns:[{include:"#attribute"}]},{include:"#tags"}]},{captures:{"0":{name:"meta.tag.structure.svg.$2.void.html"},"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"},"3":{patterns:[{include:"#attribute"}]},"5":{name:"punctuation.definition.tag.end.html"}},match:"(?i)(<)(animateMotion|clipPath|defs|feComponentTransfer|feDiffuseLighting|feMerge|feSpecularLighting|filter|g|hatch|linearGradient|marker|mask|mesh|meshgradient|meshpatch|meshrow|pattern|radialGradient|switch|text|textPath)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>))",name:"meta.element.structure.svg.$2.html"},{begin:"(?i)(<)(animateMotion|clipPath|defs|feComponentTransfer|feDiffuseLighting|feMerge|feSpecularLighting|filter|g|hatch|linearGradient|marker|mask|mesh|meshgradient|meshpatch|meshrow|pattern|radialGradient|switch|text|textPath)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?",beginCaptures:{"0":{name:"meta.tag.structure.svg.$2.start.html"},"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"},"3":{patterns:[{include:"#attribute"}]},"5":{name:"punctuation.definition.tag.end.html"}},end:"(?i)()|(/>)|(?=)\\G",end:"(?=/>)|>",endCaptures:{"0":{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.structure.start.html",patterns:[{include:"#attribute"}]},{include:"#tags"}]},{captures:{"0":{name:"meta.tag.inline.svg.$2.void.html"},"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"},"3":{patterns:[{include:"#attribute"}]},"5":{name:"punctuation.definition.tag.end.html"}},match:"(?i)(<)(a|animate|discard|feBlend|feColorMatrix|feComposite|feConvolveMatrix|feDisplacementMap|feDistantLight|feDropShadow|feFlood|feFuncA|feFuncB|feFuncG|feFuncR|feGaussianBlur|feMergeNode|feMorphology|feOffset|fePointLight|feSpotLight|feTile|feTurbulence|hatchPath|mpath|set|solidcolor|stop|tspan)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>))",name:"meta.element.inline.svg.$2.html"},{begin:"(?i)(<)(a|animate|discard|feBlend|feColorMatrix|feComposite|feConvolveMatrix|feDisplacementMap|feDistantLight|feDropShadow|feFlood|feFuncA|feFuncB|feFuncG|feFuncR|feGaussianBlur|feMergeNode|feMorphology|feOffset|fePointLight|feSpotLight|feTile|feTurbulence|hatchPath|mpath|set|solidcolor|stop|tspan)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?",beginCaptures:{"0":{name:"meta.tag.inline.svg.$2.start.html"},"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"},"3":{patterns:[{include:"#attribute"}]},"5":{name:"punctuation.definition.tag.end.html"}},end:"(?i)()|(/>)|(?=)\\G",end:"(?=/>)|>",endCaptures:{"0":{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.inline.start.html",patterns:[{include:"#attribute"}]},{include:"#tags"}]},{captures:{"0":{name:"meta.tag.object.svg.$2.void.html"},"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"},"3":{patterns:[{include:"#attribute"}]},"5":{name:"punctuation.definition.tag.end.html"}},match:"(?i)(<)(circle|ellipse|feImage|foreignObject|image|line|path|polygon|polyline|rect|symbol|use|view)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>))",name:"meta.element.object.svg.$2.html"},{begin:"(?i)(<)(a|circle|ellipse|feImage|foreignObject|image|line|path|polygon|polyline|rect|symbol|use|view)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?",beginCaptures:{"0":{name:"meta.tag.object.svg.$2.start.html"},"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"},"3":{patterns:[{include:"#attribute"}]},"5":{name:"punctuation.definition.tag.end.html"}},end:"(?i)()|(/>)|(?=)\\G",end:"(?=/>)|>",endCaptures:{"0":{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.object.start.html",patterns:[{include:"#attribute"}]},{include:"#tags"}]},{captures:{"0":{name:"meta.tag.other.svg.$2.void.html"},"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"},"3":{name:"invalid.deprecated.html"},"4":{patterns:[{include:"#attribute"}]},"6":{name:"punctuation.definition.tag.end.html"}},match:"(?i)(<)((altGlyph|altGlyphDef|altGlyphItem|animateColor|animateTransform|cursor|font|font-face|font-face-format|font-face-name|font-face-src|font-face-uri|glyph|glyphRef|hkern|missing-glyph|tref|vkern))(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>))",name:"meta.element.other.svg.$2.html"},{begin:"(?i)(<)((altGlyph|altGlyphDef|altGlyphItem|animateColor|animateTransform|cursor|font|font-face|font-face-format|font-face-name|font-face-src|font-face-uri|glyph|glyphRef|hkern|missing-glyph|tref|vkern))(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?",beginCaptures:{"0":{name:"meta.tag.other.svg.$2.start.html"},"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"},"3":{name:"invalid.deprecated.html"},"4":{patterns:[{include:"#attribute"}]},"6":{name:"punctuation.definition.tag.end.html"}},end:"(?i)()|(/>)|(?=)\\G",end:"(?=/>)|>",endCaptures:{"0":{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.other.start.html",patterns:[{include:"#attribute"}]},{include:"#tags"}]},{captures:{"0":{name:"meta.tag.other.invalid.void.html"},"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"},"3":{name:"invalid.illegal.unrecognized-tag.html"},"4":{patterns:[{include:"#attribute"}]},"6":{name:"punctuation.definition.tag.end.html"}},match:"(?i)(<)(([\\w:]+))(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>))",name:"meta.element.other.invalid.html"},{begin:"(?i)(<)((\\w[^\\s>]*))(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?",beginCaptures:{"0":{name:"meta.tag.other.invalid.start.html"},"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"},"3":{name:"invalid.illegal.unrecognized-tag.html"},"4":{patterns:[{include:"#attribute"}]},"6":{name:"punctuation.definition.tag.end.html"}},end:"(?i)()|(/>)|(?=)\\G",end:"(?=/>)|>",endCaptures:{"0":{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.other.invalid.start.html",patterns:[{include:"#attribute"}]},{include:"#tags"}]},{include:"#tags-invalid"}]}}},"tags-invalid":{patterns:[{begin:"(]*))(?)",endCaptures:{"1":{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.other.$2.html",patterns:[{include:"#attribute"}]}]},"tags-valid":{patterns:[{begin:"(^[ \\t]+)?(?=<(?i:style)\\b(?!-))",beginCaptures:{"1":{name:"punctuation.whitespace.embedded.leading.html"}},end:"(?!\\G)([ \\t]*$\\n?)?",endCaptures:{"1":{name:"punctuation.whitespace.embedded.trailing.html"}},patterns:[{begin:"(?i)(<)(style)(?=\\s|/?>)",beginCaptures:{"0":{name:"meta.tag.metadata.style.start.html"},"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"}},end:"(?i)((<)/)(style)\\s*(>)",endCaptures:{"0":{name:"meta.tag.metadata.style.end.html"},"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"source.css-ignored-vscode"},"3":{name:"entity.name.tag.html"},"4":{name:"punctuation.definition.tag.end.html"}},name:"meta.embedded.block.html",patterns:[{begin:"\\G",captures:{"1":{name:"punctuation.definition.tag.end.html"}},end:"(>)",name:"meta.tag.metadata.style.start.html",patterns:[{include:"#attribute"}]},{begin:"(?!\\G)",end:"(?=)",endCaptures:{"0":{name:"meta.tag.metadata.script.end.html"},"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"},"3":{name:"punctuation.definition.tag.end.html"}},name:"meta.embedded.block.html",patterns:[{begin:"\\G",end:"(?=/)",patterns:[{begin:"(>)",beginCaptures:{"0":{name:"meta.tag.metadata.script.start.html"},"1":{name:"punctuation.definition.tag.end.html"}},end:"((<))(?=/(?i:script))",endCaptures:{"0":{name:"meta.tag.metadata.script.end.html"},"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"source.js-ignored-vscode"}},patterns:[{begin:"\\G",end:"(?=\t\t\t\t\t\t\t\t\t\t\t# Tag without type attribute\n\t\t\t\t\t\t\t\t\t\t\t\t | type(?=[\\s=])\n\t\t\t\t\t\t\t\t\t\t\t\t \t(?!\\s*=\\s*\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t''\t\t\t\t\t\t\t\t# Empty\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t | \"\"\t\t\t\t\t\t\t\t\t# Values\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t | ('|\"|)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttext/\t\t\t\t\t\t\t# Text mime-types\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tjavascript(1\\.[0-5])?\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t | x-javascript\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t | jscript\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t | livescript\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t | (x-)?ecmascript\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t | babel\t\t\t\t\t\t# Javascript variant currently\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t\t\t\t\t\t\t\t# recognized as such\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t | application/\t\t\t\t\t# Application mime-types\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(x-)?javascript\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t | (x-)?ecmascript\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t | module\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\\s\"'>]\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t)",name:"meta.tag.metadata.script.start.html",patterns:[{include:"#attribute"}]},{begin:"(?ix:\n\t\t\t\t\t\t\t\t\t\t\t\t(?=\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype\\s*=\\s*\n\t\t\t\t\t\t\t\t\t\t\t\t\t('|\"|)\n\t\t\t\t\t\t\t\t\t\t\t\t\ttext/\n\t\t\t\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tx-handlebars\n\t\t\t\t\t\t\t\t\t\t\t\t\t | (x-(handlebars-)?|ng-)?template\n\t\t\t\t\t\t\t\t\t\t\t\t\t | html\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t[\\s\"'>]\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t)",end:"((<))(?=/(?i:script))",endCaptures:{"0":{name:"meta.tag.metadata.script.end.html"},"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"text.html.basic"}},patterns:[{begin:"\\G",end:"(>)",endCaptures:{"1":{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.metadata.script.start.html",patterns:[{include:"#attribute"}]},{begin:"(?!\\G)",end:"(?=)",endCaptures:{"1":{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.metadata.script.start.html",patterns:[{include:"#attribute"}]},{begin:"(?!\\G)",end:"(?=)",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"}},end:"/?>",endCaptures:{"0":{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.metadata.$2.void.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)(noscript|title)(?=\\s|/?>)",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"}},end:">",endCaptures:{"0":{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.metadata.$2.start.html",patterns:[{include:"#attribute"}]},{begin:"(?i)()",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"}},end:">",endCaptures:{"0":{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.metadata.$2.end.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)(col|hr|input)(?=\\s|/?>)",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"}},end:"/?>",endCaptures:{"0":{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.structure.$2.void.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)(address|article|aside|blockquote|body|button|caption|colgroup|datalist|dd|details|dialog|div|dl|dt|fieldset|figcaption|figure|footer|form|head|header|hgroup|html|h[1-6]|label|legend|li|main|map|menu|meter|nav|ol|optgroup|option|output|p|pre|progress|section|select|slot|summary|table|tbody|td|template|textarea|tfoot|th|thead|tr|ul)(?=\\s|/?>)",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"}},end:">",endCaptures:{"0":{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.structure.$2.start.html",patterns:[{include:"#attribute"}]},{begin:"(?i)()",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"}},end:">",endCaptures:{"0":{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.structure.$2.end.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)(area|br|wbr)(?=\\s|/?>)",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"}},end:"/?>",endCaptures:{"0":{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.inline.$2.void.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)(a|abbr|b|bdi|bdo|cite|code|data|del|dfn|em|i|ins|kbd|mark|q|rp|rt|ruby|s|samp|small|span|strong|sub|sup|time|u|var)(?=\\s|/?>)",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"}},end:">",endCaptures:{"0":{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.inline.$2.start.html",patterns:[{include:"#attribute"}]},{begin:"(?i)()",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"}},end:">",endCaptures:{"0":{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.inline.$2.end.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)(embed|img|param|source|track)(?=\\s|/?>)",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"}},end:"/?>",endCaptures:{"0":{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.object.$2.void.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)(audio|canvas|iframe|object|picture|video)(?=\\s|/?>)",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"}},end:">",endCaptures:{"0":{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.object.$2.start.html",patterns:[{include:"#attribute"}]},{begin:"(?i)()",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"}},end:">",endCaptures:{"0":{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.object.$2.end.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)((basefont|isindex))(?=\\s|/?>)",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"},"3":{name:"invalid.deprecated.html"}},end:"/?>",endCaptures:{"0":{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.metadata.$2.void.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)((center|frameset|noembed|noframes))(?=\\s|/?>)",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"},"3":{name:"invalid.deprecated.html"}},end:">",endCaptures:{"0":{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.structure.$2.start.html",patterns:[{include:"#attribute"}]},{begin:"(?i)()",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"},"3":{name:"invalid.deprecated.html"}},end:">",endCaptures:{"0":{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.structure.$2.end.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)((acronym|big|blink|font|strike|tt|xmp))(?=\\s|/?>)",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"},"3":{name:"invalid.deprecated.html"}},end:">",endCaptures:{"0":{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.inline.$2.start.html",patterns:[{include:"#attribute"}]},{begin:"(?i)()",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"},"3":{name:"invalid.deprecated.html"}},end:">",endCaptures:{"0":{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.inline.$2.end.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)((frame))(?=\\s|/?>)",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"},"3":{name:"invalid.deprecated.html"}},end:"/?>",endCaptures:{"0":{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.object.$2.void.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)((applet))(?=\\s|/?>)",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"},"3":{name:"invalid.deprecated.html"}},end:">",endCaptures:{"0":{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.object.$2.start.html",patterns:[{include:"#attribute"}]},{begin:"(?i)()",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"},"3":{name:"invalid.deprecated.html"}},end:">",endCaptures:{"0":{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.object.$2.end.html",patterns:[{include:"#attribute"}]},{begin:"(?i)(<)((dir|keygen|listing|menuitem|plaintext|spacer))(?=\\s|/?>)",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"},"3":{name:"invalid.illegal.no-longer-supported.html"}},end:">",endCaptures:{"0":{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.other.$2.start.html",patterns:[{include:"#attribute"}]},{begin:"(?i)()",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"},"3":{name:"invalid.illegal.no-longer-supported.html"}},end:">",endCaptures:{"0":{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.other.$2.end.html",patterns:[{include:"#attribute"}]},{include:"#math"},{include:"#svg"},{begin:"(<)([a-zA-Z][.0-9_a-zA-Z\\x{00B7}\\x{00C0}-\\x{00D6}\\x{00D8}-\\x{00F6}\\x{00F8}-\\x{037D}\\x{037F}-\\x{1FFF}\\x{200C}-\\x{200D}\\x{203F}-\\x{2040}\\x{2070}-\\x{218F}\\x{2C00}-\\x{2FEF}\\x{3001}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFFD}\\x{10000}-\\x{EFFFF}]*-[\\-.0-9_a-zA-Z\\x{00B7}\\x{00C0}-\\x{00D6}\\x{00D8}-\\x{00F6}\\x{00F8}-\\x{037D}\\x{037F}-\\x{1FFF}\\x{200C}-\\x{200D}\\x{203F}-\\x{2040}\\x{2070}-\\x{218F}\\x{2C00}-\\x{2FEF}\\x{3001}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFFD}\\x{10000}-\\x{EFFFF}]*)(?=\\s|/?>)",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"}},end:"/?>",endCaptures:{"0":{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.custom.start.html",patterns:[{include:"#attribute"}]},{begin:"()",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"}},end:">",endCaptures:{"0":{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.custom.end.html",patterns:[{include:"#attribute"}]}]},"xml-processing":{begin:"(<\\?)(xml)",captures:{"1":{name:"punctuation.definition.tag.html"},"2":{name:"entity.name.tag.html"}},end:"(\\?>)",name:"meta.tag.metadata.processing.xml.html",patterns:[{include:"#attribute"}]}}}; + +export { html_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/http.tmLanguage-ddfca291.mjs b/docs/shiki/dist/languages/http.tmLanguage-ddfca291.mjs new file mode 100644 index 00000000..953da900 --- /dev/null +++ b/docs/shiki/dist/languages/http.tmLanguage-ddfca291.mjs @@ -0,0 +1,3 @@ +var http_tmLanguage = {scopeName:"source.http",fileTypes:["http","rest"],keyEquivalent:"^~H",name:"http",patterns:[{begin:"^\\s*(?=curl)",name:"http.request.curl",end:"^\\s*(\\#{3,}.*?)?\\s*$",endCaptures:{"0":{name:"comment.line.sharp.http"}},patterns:[{include:"source.shell"}]},{begin:"\\s*(?=(\\[|{[^{]))",name:"http.request.body.json",end:"^\\s*(\\#{3,}.*?)?\\s*$",endCaptures:{"0":{name:"comment.line.sharp.http"}},patterns:[{include:"source.json"}]},{begin:"^\\s*(?=<\\S)",name:"http.request.body.xml",end:"^\\s*(\\#{3,}.*?)?\\s*$",endCaptures:{"0":{name:"comment.line.sharp.http"}},patterns:[{include:"text.xml"}]},{begin:"\\s*(?=(query|mutation))",name:"http.request.body.graphql",end:"^\\s*(\\#{3,}.*?)?\\s*$",endCaptures:{"0":{name:"comment.line.sharp.http"}},patterns:[{include:"source.graphql"}]},{begin:"\\s*(?=(query|mutation))",name:"http.request.body.graphql",end:"^\\{\\s*$",patterns:[{include:"source.graphql"}]},{include:"#metadata"},{include:"#comments"},{captures:{"1":{name:"keyword.other.http"},"2":{name:"variable.other.http"},"3":{name:"string.other.http"}},match:"^\\s*(@)([^\\s=]+)\\s*=\\s*(.*?)\\s*$",name:"http.filevariable"},{captures:{"1":{name:"keyword.operator.http"},"2":{name:"variable.other.http"},"3":{name:"string.other.http"}},match:"^\\s*(\\?|&)([^=\\s]+)=(.*)$",name:"http.query"},{captures:{"1":{name:"entity.name.tag.http"},"2":{name:"keyword.other.http"},"3":{name:"string.other.http"}},match:"^([\\w\\-]+)\\s*(\\:)\\s*([^/].*?)\\s*$",name:"http.headers"},{include:"#request-line"},{include:"#response-line"}],repository:{metadata:{patterns:[{match:"^\\s*\\#{1,}\\s+(?:((@)name)\\s+([^\\s\\.]+))$",captures:{"1":{name:"entity.other.attribute-name"},"2":{name:"punctuation.definition.block.tag.metadata"},"3":{name:"entity.name.type.http"}},name:"comment.line.sharp.http"},{match:"^\\s*\\/{2,}\\s+(?:((@)name)\\s+([^\\s\\.]+))$",captures:{"1":{name:"entity.other.attribute-name"},"2":{name:"punctuation.definition.block.tag.metadata"},"3":{name:"entity.name.type.http"}},name:"comment.line.double-slash.http"},{match:"^\\s*\\#{1,}\\s+((@)note)\\s*$",captures:{"1":{name:"entity.other.attribute-name"},"2":{name:"punctuation.definition.block.tag.metadata"}},name:"comment.line.sharp.http"},{match:"^\\s*\\/{2,}\\s+((@)note)\\s*$",captures:{"1":{name:"entity.other.attribute-name"},"2":{name:"punctuation.definition.block.tag.metadata"}},name:"comment.line.double-slash.http"},{match:"^\\s*\\#{1,}\\s+(?:((@)prompt)\\s+([^\\s]+)(?:\\s+(.*))?\\s*)$",captures:{"1":{name:"entity.other.attribute-name"},"2":{name:"punctuation.definition.block.tag.metadata"},"3":{name:"variable.other.http"},"4":{name:"string.other.http"}},name:"comment.line.sharp.http"},{match:"^\\s*\\/{2,}\\s+(?:((@)prompt)\\s+([^\\s]+)(?:\\s+(.*))?\\s*)$",captures:{"1":{name:"entity.other.attribute-name"},"2":{name:"punctuation.definition.block.tag.metadata"},"3":{name:"variable.other.http"},"4":{name:"string.other.http"}},name:"comment.line.double-slash.http"}]},comments:{patterns:[{match:"^\\s*\\#{1,}.*$",name:"comment.line.sharp.http"},{match:"^\\s*\\/{2,}.*$",name:"comment.line.double-slash.http"}]},"request-line":{captures:{"1":{name:"keyword.control.http"},"2":{name:"const.language.http"},"3":{patterns:[{include:"#protocol"}]}},match:"(?i)^(?:(get|post|put|delete|patch|head|options|connect|trace)\\s+)?\\s*(.+?)(?:\\s+(HTTP\\/\\S+))?$",name:"http.requestline"},"response-line":{captures:{"1":{patterns:[{include:"#protocol"}]},"2":{name:"constant.numeric.http"},"3":{name:"string.other.http"}},match:"(?i)^\\s*(HTTP\\/\\S+)\\s([1-5][0-9][0-9])\\s(.*)$",name:"http.responseLine"},protocol:{patterns:[{captures:{"1":{name:"keyword.other.http"},"2":{name:"constant.numeric.http"}},name:"http.version",match:"(HTTP)/(\\d+.\\d+)"}]}}}; + +export { http_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/imba.tmLanguage-0a2d3e2e.mjs b/docs/shiki/dist/languages/imba.tmLanguage-0a2d3e2e.mjs new file mode 100644 index 00000000..3d51d1fd --- /dev/null +++ b/docs/shiki/dist/languages/imba.tmLanguage-0a2d3e2e.mjs @@ -0,0 +1,3 @@ +var imba_tmLanguage = {name:"imba",scopeName:"source.imba",fileTypes:["imba","imba2"],uuid:"ef98eb90-bf9b-11e4-bb52-0800200c9a67",patterns:[{include:"#root"},{name:"comment.line.shebang.imba",match:"\\A(#!).*(?=$)",captures:{"1":{name:"punctuation.definition.comment.imba"}}}],repository:{root:{patterns:[{include:"#block"}]},block:{patterns:[{include:"#style-declaration"},{include:"#object-keys"},{include:"#tag-literal"},{include:"#regex"},{include:"#keywords"},{include:"#comment"},{include:"#literal"},{include:"#plain-identifiers"},{include:"#plain-accessors"},{include:"#pairs"},{include:"#invalid-indentation"}]},expr:{patterns:[{include:"#style-declaration"},{include:"#object-keys"},{include:"#tag-literal"},{include:"#regex"},{include:"#keywords"},{include:"#comment"},{include:"#literal"},{include:"#plain-identifiers"},{include:"#plain-accessors"},{include:"#pairs"}]},literal:{patterns:[{include:"#number-with-unit-literal"},{include:"#numeric-literal"},{include:"#boolean-literal"},{include:"#null-literal"},{include:"#undefined-literal"},{include:"#numericConstant-literal"},{include:"#this-literal"},{include:"#global-literal"},{include:"#super-literal"},{include:"#type-literal"},{include:"#string"}]},pairs:{patterns:[{include:"#curly-braces"},{include:"#square-braces"},{include:"#round-braces"}]},"curly-braces":{begin:"\\s*(\\{)",beginCaptures:{"1":{name:"meta.brace.curly.imba"}},end:"\\}",endCaptures:{"0":{name:"meta.brace.curly.imba"}},patterns:[{include:"#expr"},{include:"#punctuation-comma"}]},"square-braces":{begin:"\\s*(\\[)",beginCaptures:{"1":{name:"meta.brace.square.imba"}},end:"\\]",endCaptures:{"0":{name:"meta.brace.square.imba"}},patterns:[{include:"#expr"},{include:"#punctuation-comma"}]},"round-braces":{begin:"\\s*(\\()",beginCaptures:{"1":{name:"meta.brace.round.imba"}},end:"\\)",endCaptures:{"0":{name:"meta.brace.round.imba"}},patterns:[{include:"#expr"},{include:"#punctuation-comma"}]},keywords:{patterns:[{name:"keyword.control.imba",match:"(if|elif|else|unless|switch|when|then|do|import|export|for own|for|while|until|return|try|catch|await|finally|throw|as|continue|break|extend|augment)(?![_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{name:"keyword.control.imba",match:"(?<=export\\s+)(default)(?![_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{name:"keyword.control.imba",match:"(?<=import\\s+)(type)(?=\\s+[\\w\\{\\$\\_])"},{name:"keyword.control.imba",match:"(extend)\\s+(?=class|tag)"},{name:"keyword.control.imba",match:"(?<=[\\*\\}\\w\\$]\\s+)(from)(?=\\s+[\\\"\\'])"},{name:"storage.type.function.imba",match:"(def|get|set)(?![_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{name:"storage.type.class.imba",match:"(tag|class|struct)(?![_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{name:"storage.type.imba",match:"(let|const|constructor)(?![_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{name:"storage.type.imba",match:"(prop|attr)(?![_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{name:"storage.modifier.imba",match:"(static)\\s+"},{include:"#ops"},{name:"keyword.operator.assignment.imba",match:"(=|\\|\\|=|\\?\\?=|\\&\\&=|\\+=|\\-=|\\*=|\\^=|\\%=)"},{name:"keyword.operator.imba",match:"(\\>\\=?|\\<\\=?)"},{name:"keyword.operator.imba",match:"(of|delete|\\!?isa|typeof|in|new)(?![_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"}]},ops:{patterns:[{name:"keyword.operator.spread.imba",match:"\\.\\.\\."},{name:"keyword.operator.assignment.compound.imba",match:"\\*=|(?>=|>>>=|\\|="},{name:"keyword.operator.bitwise.shift.imba",match:"<<|>>>|>>"},{name:"keyword.operator.comparison.imba",match:"===|!==|==|!=|~="},{name:"keyword.operator.relational.imba",match:"<=|>=|<>|<|>"},{match:"(\\!)\\s*(/)(?![/*])",captures:{"1":{name:"keyword.operator.logical.imba"},"2":{name:"keyword.operator.arithmetic.imba"}}},{name:"keyword.operator.logical.imba",match:"\\!|&&|\\|\\||\\?\\?|or\\b(?=\\s|$)|and\\b(?=\\s|$)"},{name:"keyword.operator.bitwise.imba",match:"\\&|~|\\^|\\|"},{name:"keyword.operator.assignment.imba",match:"\\="},{name:"keyword.operator.decrement.imba",match:"--"},{name:"keyword.operator.increment.imba",match:"\\+\\+"},{name:"keyword.operator.arithmetic.imba",match:"%|\\*|/|-|\\+"}]},"object-keys":{patterns:[{match:"[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?\\:",name:"meta.object-literal.key"}]},"invalid-indentation":{patterns:[{name:"invalid.whitespace",match:"^[\\ ]+"},{name:"invalid.whitespace",match:"^\\t+\\s+"}]},"style-property":{patterns:[{name:"meta.property-name.css",begin:"(?=(?:[\\@\\.]+[\\!\\<\\>]?)?[\\w\\-\\$]+(?:[\\@\\.]+[\\!\\<\\>]?[\\w\\-\\$]+)*(?:\\s*\\:))",beginCaptures:{"1":{name:"support.function.calc.css"},"2":{name:"punctuation.section.function.begin.bracket.round.css"}},end:"\\s*\\:",endCaptures:{"0":{name:"punctuation.separator.key-value.css"}},patterns:[{name:"support.type.property-name.variable.css",match:"(?:--|\\$)[\\w\\-\\$]+"},{name:"support.type.property-name.modifier.breakpoint.css",match:"\\@[\\!\\<\\>]?[0-9]+"},{name:"support.type.property-name.modifier.css",match:"\\@[\\w\\-\\$]+"},{name:"support.type.property-name.modifier.up.css",match:"\\.\\.[\\w\\-\\$]+"},{name:"support.type.property-name.modifier.is.css",match:"\\.[\\w\\-\\$]+"},{name:"support.type.property-name.css",match:"[\\w\\-\\$]+"}]}]},"style-expr":{patterns:[{match:"(\\b[0-9][0-9_]*)(\\w+|%)?",captures:{"1":{name:"constant.numeric.integer.decimal.css"},"2":{name:"keyword.other.unit.css"}}},{name:"support.constant.property-value.var.css",match:"--[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?"},{name:"support.constant.property-value.size.css",match:"(x+s|sm-|md-|lg-|sm|md|lg|x+l|hg|x+h)(?![\\w-])"},{name:"support.constant.property-value.css",match:"[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?"},{name:"meta.function.css",begin:"(\\()",beginCaptures:{"1":{name:"punctuation.section.function.begin.bracket.round.css"}},end:"\\)",patterns:[{include:"#style-expr"}]}]},"inline-styles":{patterns:[{include:"#style-property"},{include:"#css-property-values"},{include:"#style-expr"}]},"style-declaration":{name:"meta.style.imba",begin:"^(\\t*)(?:(global|local|export)\\s+)?(?:(scoped)\\s+)?(css)\\s",beginCaptures:{"2":{name:"keyword.control.export.imba"},"3":{name:"storage.modifier.imba"},"4":{name:"storage.type.style.imba"}},end:"^(?!(\\1\\t|\\s*$))",patterns:[{include:"#css-selector"},{include:"#css-comment"},{include:"#nested-css-selector"},{include:"#inline-styles"}]},"nested-style-declaration":{name:"meta.style.imba",begin:"^(\\t+)(?=[\\n^]*\\&)",end:"^(?!(\\1\\t|\\s*$))",patterns:[{include:"#nested-css-selector"},{include:"#inline-styles"}]},"css-size-keywords":[{name:"support.constant.size.property-value.css",match:"(x+s|sm-|md-|lg-|sm|md|lg|x+l|hg|x+h)(?![\\w-])"}],"css-color-keywords":{patterns:[{name:"support.constant.color.w3c-standard-color-name.css",match:"(?i)(?>>|>>|>|\\+|~"},{name:"keyword.other.parent-selector.css",match:"&"}]},"css-pseudo-classes":{name:"entity.other.attribute-name.pseudo-class.css",match:"(?xi)\n(:)(:*)\n(?: active|any-link|checked|default|defined|disabled|empty|enabled|first\n | (?:first|last|only)-(?:child|of-type)|focus|focus-visible|focus-within\n | fullscreen|host|hover|in-range|indeterminate|invalid|left|link\n | optional|out-of-range|placeholder-shown|read-only|read-write\n | required|right|root|scope|target|unresolved\n | valid|visited\n)(?![\\w-]|\\s*[;}])",captures:{"1":{name:"punctuation.definition.entity.css"},"2":{name:"invalid.illegal.colon.css"}}},"css-pseudo-elements":{name:"entity.other.attribute-name.pseudo-element.css",match:"(?xi)\n(?:\n (::?) # Elements using both : and :: notation\n (?: after\n | before\n | first-letter\n | first-line\n | (?:-(?:ah|apple|atsc|epub|hp|khtml|moz\n |ms|o|rim|ro|tc|wap|webkit|xv)\n | (?:mso|prince))\n -[a-z-]+\n )\n |\n (::) # Double-colon only\n (?: backdrop\n | content\n | grammar-error\n | marker\n | placeholder\n | selection\n | shadow\n | spelling-error\n )\n)\n(?![\\w-]|\\s*[;}])",captures:{"1":{name:"punctuation.definition.entity.css"},"2":{name:"punctuation.definition.entity.css"}}},"css-commas":{name:"punctuation.separator.list.comma.css",match:","},"css-comment":{patterns:[{name:"comment.line.imba",match:"\\#(\\s.+)?(\\n|$)"},{name:"comment.line.imba",match:"(^\\t+)(\\#(\\s.+)?(\\n|$))"}]},"css-escapes":{patterns:[{name:"constant.character.escape.codepoint.css",match:"\\\\[0-9a-fA-F]{1,6}"},{name:"constant.character.escape.newline.css",begin:"\\\\$\\s*",end:"^(?]?)?[\\w\\-\\$]+(?:[\\@\\.]+[\\!\\<\\>]?[\\w\\-\\$]+)*(?:\\s*\\:))",end:"(\\s*(?=(?:[\\@\\.]+[\\!\\<\\>]?)?[\\w\\-\\$]+(?:[\\@\\.]+[\\!\\<\\>]?[\\w\\-\\$]+)*(?:\\s*\\:))|\\s*$|(?=\\s+\\#\\s))",endCaptures:{"0":{name:"punctuation.separator.sel-properties.css"}},patterns:[{include:"#css-selector-innards"}]},"nested-css-selector":{name:"meta.selector.css",begin:"(^\\t+)(?!(?:[\\@\\.]+[\\!\\<\\>]?)?[\\w\\-\\$]+(?:[\\@\\.]+[\\!\\<\\>]?[\\w\\-\\$]+)*(?:\\s*\\:))",end:"(\\s*(?=(?:[\\@\\.]+[\\!\\<\\>]?)?[\\w\\-\\$]+(?:[\\@\\.]+[\\!\\<\\>]?[\\w\\-\\$]+)*(?:\\s*\\:))|\\s*$|(?=\\s+\\#\\s))",endCaptures:{"0":{name:"punctuation.separator.sel-properties.css"}},patterns:[{include:"#css-selector-innards"}]},"inline-css-selector":{name:"meta.selector.css",begin:"(^\\t+)(?!(?:[\\@\\.]+[\\!\\<\\>]?)?[\\w\\-\\$]+(?:[\\@\\.]+[\\!\\<\\>]?[\\w\\-\\$]+)*(?:\\s*\\:))",end:"(\\s*(?=(?:[\\@\\.]+[\\!\\<\\>]?)?[\\w\\-\\$]+(?:[\\@\\.]+[\\!\\<\\>]?[\\w\\-\\$]+)*(?:\\s*\\:)|\\)|\\])|\\s*$)",endCaptures:{"0":{name:"punctuation.separator.sel-properties.css"}},patterns:[{include:"#css-selector-innards"}]},"css-selector-innards":{patterns:[{include:"#css-commas"},{include:"#css-escapes"},{include:"#css-combinators"},{name:"entity.name.tag.wildcard.css",match:"\\*"},{name:"meta.attribute-selector.css",begin:"\\[",beginCaptures:{"0":{name:"punctuation.definition.entity.begin.bracket.square.css"}},end:"\\]",endCaptures:{"0":{name:"punctuation.definition.entity.end.bracket.square.css"}},patterns:[{include:"#string"},{match:"(?<=[\"'\\s]|^|\\*/)\\s*([iI])\\s*(?=[\\s\\]]|/\\*|$)",captures:{"1":{name:"storage.modifier.ignore-case.css"}}},{match:"(?x)(?<==)\\s*((?!/\\*)(?:[^\\\\\"'\\s\\]]|\\\\.)+)",captures:{"1":{name:"string.unquoted.attribute-value.css"}}},{include:"#css-escapes"},{name:"keyword.operator.pattern.css",match:"[~|^$*]?="},{name:"punctuation.separator.css",match:"\\|"},{match:"(?x)\n# Qualified namespace prefix\n( -?(?!\\d)(?:[\\w-]|[^\\\\x00-\\\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.))+\n| \\*\n)\n# Lookahead to ensure there's a valid identifier ahead\n(?=\n \\| (?!\\s|=|$|\\])\n (?: -?(?!\\d)\n | [\\\\\\w-]\n | [^\\\\x00-\\\\x7F]\n )\n)",captures:{"1":{name:"entity.other.namespace-prefix.css"}}},{match:"(?x)\n(-?(?!\\d)(?>[\\w-]|[^\\\\x00-\\\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.))+)\n\\s*\n(?=[~|^\\]$*=]|/\\*)",captures:{"1":{name:"entity.other.attribute-name.css"}}}]},{include:"#css-pseudo-classes"},{include:"#css-pseudo-elements"}]},"css-property-values":{patterns:[{include:"#css-commas"},{include:"#css-escapes"},{include:"#css-functions"},{include:"#css-numeric-values"},{include:"#css-size-keywords"},{include:"#css-color-keywords"},{include:"#string"},{name:"keyword.other.important.css",match:"!\\s*important(?![\\w-])"}]},"tag-literal":{patterns:[{name:"meta.tag.imba",begin:"(<)(?=[\\w\\{\\[\\.\\#\\$\\@])",beginCaptures:{"1":{name:"punctuation.section.tag.open.imba"}},end:"(>)",endCaptures:{"1":{name:"punctuation.section.tag.close.imba"}},patterns:[{include:"#tag-content"}],contentName:"meta.tag.attributes.imba"}]},"tag-content":{patterns:[{include:"#tag-name"},{include:"#tag-expr-name"},{include:"#tag-interpolated-content"},{include:"#tag-interpolated-parens"},{include:"#tag-interpolated-brackets"},{include:"#tag-event-handler"},{include:"#tag-classname"},{include:"#tag-ref"},{include:"#tag-attr-value"},{include:"#tag-attr-name"},{include:"#comment"}]},"tag-name":{patterns:[{name:"entity.name.tag.special.imba",match:"(?<=<)(self|global|slot)(?=[\\.\\[\\>\\s\\(])"}]},"tag-expr-name":{begin:"(?<=<)(?=[\\w\\{])",contentName:"entity.name.tag.imba",end:"(?=[\\.\\[\\>\\s\\(])",patterns:[{include:"#tag-interpolated-content"}]},"tag-interpolated-content":{name:"meta.tag.expression.imba",begin:"\\{",beginCaptures:{"0":{name:"punctuation.section.tag.imba"}},end:"\\}",endCaptures:{"0":{name:"punctuation.section.tag.imba"}},patterns:[{include:"#expression"}],contentName:"meta.embedded.line.imba"},"tag-interpolated-parens":{name:"meta.tag.expression.imba",begin:"\\(",beginCaptures:{"0":{name:"punctuation.section.tag.imba"}},end:"\\)",endCaptures:{"0":{name:"punctuation.section.tag.imba"}},patterns:[{include:"#expression"}],contentName:"meta.embedded.line.imba"},"tag-interpolated-brackets":{name:"meta.tag.expression.imba",begin:"\\[",beginCaptures:{"0":{name:"punctuation.section.tag.imba"}},end:"\\]",endCaptures:{"0":{name:"punctuation.section.tag.imba"}},patterns:[{include:"#inline-css-selector"},{include:"#inline-styles"}],contentName:"meta.embedded.line.imba"},"tag-classname":{begin:"\\.",patterns:[{include:"#tag-interpolated-content"}],end:"(?=[\\.\\[\\>\\s\\(\\=])",contentName:"entity.other.attribute-name.class.css"},"tag-ref":{match:"(\\$[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?)",name:"entity.other.attribute-name.reference.css"},"tag-event-handler":{begin:"(\\@[\\w$_]+(?:\\-[\\w$_]+)*)",beginCaptures:{"0":{name:"entity.other.event-name.imba"}},patterns:[{include:"#tag-interpolated-content"},{include:"#tag-interpolated-parens"},{name:"entity.other.event-modifier.imba",begin:"\\.",beginCaptures:{"0":{name:"punctuation.section.tag"}},patterns:[{include:"#tag-interpolated-parens"},{include:"#tag-interpolated-content"}],end:"(?=[\\.\\[\\>\\s\\=]|$)"}],end:"(?=[\\[\\>\\s\\=])",contentName:"entity.other.tag.event"},"tag-attr-name":{begin:"([\\w$_]+(?:\\-[\\w$_]+)*)",beginCaptures:{"0":{name:"entity.other.attribute-name.imba"}},end:"(?=[\\s\\.\\[\\>\\=])",contentName:"entity.other.attribute-name.imba"},"tag-attr-value":{begin:"(\\=)",beginCaptures:{"0":{name:"keyword.operator.tag.assignment"}},end:"(?=>|\\s)",contentName:"meta.tag.attribute-value.imba",patterns:[{include:"#expr"}]},expression:{patterns:[{begin:"\\(",beginCaptures:{"0":{name:"meta.brace.round.imba"}},end:"\\)",endCaptures:{"0":{name:"meta.brace.round.imba"}},patterns:[{include:"#expr"}]},{include:"#tag-literal"},{include:"#expressionWithoutIdentifiers"},{include:"#identifiers"},{include:"#expressionPunctuations"}]},expressionWithoutIdentifiers:{patterns:[{include:"#string"},{include:"#regex"},{include:"#comment"},{include:"#function-expression"},{include:"#class-expression"},{include:"#ternary-expression"},{include:"#new-expr"},{include:"#instanceof-expr"},{include:"#object-literal"},{include:"#expression-operators"},{include:"#literal"},{include:"#support-objects"}]},expressionPunctuations:{patterns:[{include:"#punctuation-comma"},{include:"#punctuation-accessor"}]},decorator:{name:"meta.decorator.imba",begin:"(?",patterns:[{include:"#type-brackets"}]},{begin:"\\(",end:"\\)",patterns:[{include:"#type-brackets"}]}]},"numeric-literal":{patterns:[{name:"constant.numeric.hex.imba",match:"\\b(?|&&|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([gimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",beginCaptures:{"1":{name:"punctuation.definition.string.begin.imba"}},end:"(/)([gimsuy]*)",endCaptures:{"1":{name:"punctuation.definition.string.end.imba"},"2":{name:"keyword.other.imba"}},patterns:[{include:"#regexp"}]},{name:"string.regexp.imba",begin:"((?",captures:{"0":{name:"keyword.other.back-reference.regexp"},"1":{name:"variable.other.regexp"}}},{name:"keyword.operator.quantifier.regexp",match:"[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??"},{name:"keyword.operator.or.regexp",match:"\\|"},{name:"meta.group.assertion.regexp",begin:"(\\()((\\?=)|(\\?!)|(\\?<=)|(\\?))?",beginCaptures:{"0":{name:"punctuation.definition.group.regexp"},"1":{name:"punctuation.definition.group.no-capture.regexp"},"2":{name:"variable.other.regexp"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.group.regexp"}},patterns:[{include:"#regexp"}]},{name:"constant.other.character-class.set.regexp",begin:"(\\[)(\\^)?",beginCaptures:{"1":{name:"punctuation.definition.character-class.regexp"},"2":{name:"keyword.operator.negation.regexp"}},end:"(\\])",endCaptures:{"1":{name:"punctuation.definition.character-class.regexp"}},patterns:[{name:"constant.other.character-class.range.regexp",match:"(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))",captures:{"1":{name:"constant.character.numeric.regexp"},"2":{name:"constant.character.control.regexp"},"3":{name:"constant.character.escape.backslash.regexp"},"4":{name:"constant.character.numeric.regexp"},"5":{name:"constant.character.control.regexp"},"6":{name:"constant.character.escape.backslash.regexp"}}},{include:"#regex-character-class"}]},{include:"#regex-character-class"}]},"regex-character-class":{patterns:[{name:"constant.other.character-class.regexp",match:"\\\\[wWsSdDtrnvf]|\\."},{name:"constant.character.numeric.regexp",match:"\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})"},{name:"constant.character.control.regexp",match:"\\\\c[A-Z]"},{name:"constant.character.escape.backslash.regexp",match:"\\\\."}]},comment:{patterns:[{name:"comment.block.documentation.imba",begin:"/\\*\\*(?!/)",beginCaptures:{"0":{name:"punctuation.definition.comment.imba"}},end:"\\*/",endCaptures:{"0":{name:"punctuation.definition.comment.imba"}},patterns:[{include:"#docblock"}]},{name:"comment.block.imba",begin:"(/\\*)(?:\\s*((@)internal)(?=\\s|(\\*/)))?",beginCaptures:{"1":{name:"punctuation.definition.comment.imba"},"2":{name:"storage.type.internaldeclaration.imba"},"3":{name:"punctuation.decorator.internaldeclaration.imba"}},end:"\\*/",endCaptures:{"0":{name:"punctuation.definition.comment.imba"}}},{name:"comment.block.imba",begin:"(###)",beginCaptures:{"1":{name:"punctuation.definition.comment.imba"}},end:"###(?:[ \\t]*\\n)",endCaptures:{"0":{name:"punctuation.definition.comment.imba"}}},{begin:"(^[ \\t]+)?((//|\\#\\s)(?:\\s*((@)internal)(?=\\s|$))?)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.imba"},"2":{name:"comment.line.double-slash.imba"},"3":{name:"punctuation.definition.comment.imba"},"4":{name:"storage.type.internaldeclaration.imba"},"5":{name:"punctuation.decorator.internaldeclaration.imba"}},end:"(?=$)",contentName:"comment.line.double-slash.imba"}]},"single-line-comment-consuming-line-ending":{begin:"(^[ \\t]+)?((//|\\#\\s)(?:\\s*((@)internal)(?=\\s|$))?)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.imba"},"2":{name:"comment.line.double-slash.imba"},"3":{name:"punctuation.definition.comment.imba"},"4":{name:"storage.type.internaldeclaration.imba"},"5":{name:"punctuation.decorator.internaldeclaration.imba"}},end:"(?=^)",contentName:"comment.line.double-slash.imba"},directives:{name:"comment.line.triple-slash.directive.imba",begin:"^(///)\\s*(?=<(reference|amd-dependency|amd-module)(\\s+(path|types|no-default-lib|lib|name)\\s*=\\s*((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)))+\\s*/>\\s*$)",beginCaptures:{"1":{name:"punctuation.definition.comment.imba"}},end:"(?=$)",patterns:[{name:"meta.tag.imba",begin:"(<)(reference|amd-dependency|amd-module)",beginCaptures:{"1":{name:"punctuation.definition.tag.directive.imba"},"2":{name:"entity.name.tag.directive.imba"}},end:"/>",endCaptures:{"0":{name:"punctuation.definition.tag.directive.imba"}},patterns:[{name:"entity.other.attribute-name.directive.imba",match:"path|types|no-default-lib|lib|name"},{name:"keyword.operator.assignment.imba",match:"="},{include:"#string"}]}]},docblock:{patterns:[{match:"(?x)\n((@)(?:access|api))\n\\s+\n(private|protected|public)\n\\b",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"constant.language.access-type.jsdoc"}}},{match:"(?x)\n((@)author)\n\\s+\n(\n [^@\\s<>*/]\n (?:[^@<>*/]|\\*[^/])*\n)\n(?:\n \\s*\n (<)\n ([^>\\s]+)\n (>)\n)?",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"entity.name.type.instance.jsdoc"},"4":{name:"punctuation.definition.bracket.angle.begin.jsdoc"},"5":{name:"constant.other.email.link.underline.jsdoc"},"6":{name:"punctuation.definition.bracket.angle.end.jsdoc"}}},{match:"(?x)\n((@)borrows) \\s+\n((?:[^@\\s*/]|\\*[^/])+) # \n\\s+ (as) \\s+ # as\n((?:[^@\\s*/]|\\*[^/])+) # ",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"entity.name.type.instance.jsdoc"},"4":{name:"keyword.operator.control.jsdoc"},"5":{name:"entity.name.type.instance.jsdoc"}}},{name:"meta.example.jsdoc",begin:"((@)example)\\s+",end:"(?=@|\\*/)",beginCaptures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"}},patterns:[{match:"^\\s\\*\\s+"},{contentName:"constant.other.description.jsdoc",begin:"\\G(<)caption(>)",beginCaptures:{"0":{name:"entity.name.tag.inline.jsdoc"},"1":{name:"punctuation.definition.bracket.angle.begin.jsdoc"},"2":{name:"punctuation.definition.bracket.angle.end.jsdoc"}},end:"()|(?=\\*/)",endCaptures:{"0":{name:"entity.name.tag.inline.jsdoc"},"1":{name:"punctuation.definition.bracket.angle.begin.jsdoc"},"2":{name:"punctuation.definition.bracket.angle.end.jsdoc"}}},{match:"[^\\s@*](?:[^*]|\\*[^/])*",captures:{"0":{name:"source.embedded.imba"}}}]},{match:"(?x) ((@)kind) \\s+ (class|constant|event|external|file|function|member|mixin|module|namespace|typedef) \\b",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"constant.language.symbol-type.jsdoc"}}},{match:"(?x)\n((@)see)\n\\s+\n(?:\n # URL\n (\n (?=https?://)\n (?:[^\\s*]|\\*[^/])+\n )\n |\n # JSDoc namepath\n (\n (?!\n # Avoid matching bare URIs (also acceptable as links)\n https?://\n |\n # Avoid matching {@inline tags}; we match those below\n (?:\\[[^\\[\\]]*\\])? # Possible description [preceding]{@tag}\n {@(?:link|linkcode|linkplain|tutorial)\\b\n )\n # Matched namepath\n (?:[^@\\s*/]|\\*[^/])+\n )\n)",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"variable.other.link.underline.jsdoc"},"4":{name:"entity.name.type.instance.jsdoc"}}},{match:"(?x)\n((@)template)\n\\s+\n# One or more valid identifiers\n(\n [A-Za-z_$] # First character: non-numeric word character\n [\\w$.\\[\\]]* # Rest of identifier\n (?: # Possible list of additional identifiers\n \\s* , \\s*\n [A-Za-z_$]\n [\\w$.\\[\\]]*\n )*\n)",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"variable.other.jsdoc"}}},{match:"(?x)\n(\n (@)\n (?:arg|argument|const|constant|member|namespace|param|var)\n)\n\\s+\n(\n [A-Za-z_$]\n [\\w$.\\[\\]]*\n)",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"variable.other.jsdoc"}}},{begin:"((@)typedef)\\s+(?={)",beginCaptures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{name:"entity.name.type.instance.jsdoc",match:"(?:[^@\\s*/]|\\*[^/])+"}]},{begin:"((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\s+(?={)",beginCaptures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{name:"variable.other.jsdoc",match:"([A-Za-z_$][\\w$.\\[\\]]*)"},{name:"variable.other.jsdoc",match:"(?x)\n(\\[)\\s*\n[\\w$]+\n(?:\n (?:\\[\\])? # Foo[ ].bar properties within an array\n \\. # Foo.Bar namespaced parameter\n [\\w$]+\n)*\n(?:\n \\s*\n (=) # [foo=bar] Default parameter value\n \\s*\n (\n # The inner regexes are to stop the match early at */ and to not stop at escaped quotes\n (?>\n \"(?:(?:\\*(?!/))|(?:\\\\(?!\"))|[^*\\\\])*?\" | # [foo=\"bar\"] Double-quoted\n '(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?' | # [foo='bar'] Single-quoted\n \\[ (?:(?:\\*(?!/))|[^*])*? \\] | # [foo=[1,2]] Array literal\n (?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])* # Everything else\n )*\n )\n)?\n\\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))",captures:{"1":{name:"punctuation.definition.optional-value.begin.bracket.square.jsdoc"},"2":{name:"keyword.operator.assignment.jsdoc"},"3":{name:"source.embedded.imba"},"4":{name:"punctuation.definition.optional-value.end.bracket.square.jsdoc"},"5":{name:"invalid.illegal.syntax.jsdoc"}}}]},{begin:"(?x)\n(\n (@)\n (?:define|enum|exception|export|extends|lends|implements|modifies\n |namespace|private|protected|returns?|suppress|this|throws|type\n |yields?)\n)\n\\s+(?={)",beginCaptures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"}]},{match:"(?x)\n(\n (@)\n (?:alias|augments|callback|constructs|emits|event|fires|exports?\n |extends|external|function|func|host|lends|listens|interface|memberof!?\n |method|module|mixes|mixin|name|requires|see|this|typedef|uses)\n)\n\\s+\n(\n (?:\n [^{}@\\s*] | \\*[^/]\n )+\n)",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"entity.name.type.instance.jsdoc"}}},{contentName:"variable.other.jsdoc",begin:"((@)(?:default(?:value)?|license|version))\\s+(([''\"]))",beginCaptures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"variable.other.jsdoc"},"4":{name:"punctuation.definition.string.begin.jsdoc"}},end:"(\\3)|(?=$|\\*/)",endCaptures:{"0":{name:"variable.other.jsdoc"},"1":{name:"punctuation.definition.string.end.jsdoc"}}},{match:"((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"variable.other.jsdoc"}}},{name:"storage.type.class.jsdoc",match:"(?x) (@) (?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles |callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright |default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception |exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func |function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc |inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method |mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects |override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected |public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary |suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation |version|virtual|writeOnce|yields?) \\b",captures:{"1":{name:"punctuation.definition.block.tag.jsdoc"}}},{include:"#inline-tags"},{match:"((@)(?:[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?))(?=\\s+)",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"}}}]},brackets:{patterns:[{begin:"{",end:"}|(?=\\*/)",patterns:[{include:"#brackets"}]},{begin:"\\[",end:"\\]|(?=\\*/)",patterns:[{include:"#brackets"}]}]},"inline-tags":{patterns:[{name:"constant.other.description.jsdoc",match:"(\\[)[^\\]]+(\\])(?={@(?:link|linkcode|linkplain|tutorial))",captures:{"1":{name:"punctuation.definition.bracket.square.begin.jsdoc"},"2":{name:"punctuation.definition.bracket.square.end.jsdoc"}}},{name:"entity.name.type.instance.jsdoc",begin:"({)((@)(?:link(?:code|plain)?|tutorial))\\s*",beginCaptures:{"1":{name:"punctuation.definition.bracket.curly.begin.jsdoc"},"2":{name:"storage.type.class.jsdoc"},"3":{name:"punctuation.definition.inline.tag.jsdoc"}},end:"}|(?=\\*/)",endCaptures:{"0":{name:"punctuation.definition.bracket.curly.end.jsdoc"}},patterns:[{match:"\\G((?=https?://)(?:[^|}\\s*]|\\*[/])+)(\\|)?",captures:{"1":{name:"variable.other.link.underline.jsdoc"},"2":{name:"punctuation.separator.pipe.jsdoc"}}},{match:"\\G((?:[^{}@\\s|*]|\\*[^/])+)(\\|)?",captures:{"1":{name:"variable.other.description.jsdoc"},"2":{name:"punctuation.separator.pipe.jsdoc"}}}]}]},jsdoctype:{patterns:[{name:"invalid.illegal.type.jsdoc",match:"\\G{(?:[^}*]|\\*[^/}])+$"},{contentName:"entity.name.type.instance.jsdoc",begin:"\\G({)",beginCaptures:{"0":{name:"entity.name.type.instance.jsdoc"},"1":{name:"punctuation.definition.bracket.curly.begin.jsdoc"}},end:"((}))\\s*|(?=\\*/)",endCaptures:{"1":{name:"entity.name.type.instance.jsdoc"},"2":{name:"punctuation.definition.bracket.curly.end.jsdoc"}},patterns:[{include:"#brackets"}]}]}}}; + +export { imba_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/ini.tmLanguage-dfc7b333.mjs b/docs/shiki/dist/languages/ini.tmLanguage-dfc7b333.mjs new file mode 100644 index 00000000..20ec06be --- /dev/null +++ b/docs/shiki/dist/languages/ini.tmLanguage-dfc7b333.mjs @@ -0,0 +1,3 @@ +var ini_tmLanguage = {information_for_contributors:["This file has been converted from https://github.com/textmate/ini.tmbundle/blob/master/Syntaxes/Ini.plist","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."],version:"https://github.com/textmate/ini.tmbundle/commit/2af0cbb0704940f967152616f2f1ff0aae6287a6",name:"ini",scopeName:"source.ini",patterns:[{begin:"(^[ \\t]+)?(?=#)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.ini"}},end:"(?!\\G)",patterns:[{begin:"#",beginCaptures:{"0":{name:"punctuation.definition.comment.ini"}},end:"\\n",name:"comment.line.number-sign.ini"}]},{begin:"(^[ \\t]+)?(?=;)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.ini"}},end:"(?!\\G)",patterns:[{begin:";",beginCaptures:{"0":{name:"punctuation.definition.comment.ini"}},end:"\\n",name:"comment.line.semicolon.ini"}]},{captures:{"1":{name:"keyword.other.definition.ini"},"2":{name:"punctuation.separator.key-value.ini"}},match:"\\b([a-zA-Z0-9_.-]+)\\b\\s*(=)"},{captures:{"1":{name:"punctuation.definition.entity.ini"},"3":{name:"punctuation.definition.entity.ini"}},match:"^(\\[)(.*?)(\\])",name:"entity.name.section.group-title.ini"},{begin:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.ini"}},end:"'",endCaptures:{"0":{name:"punctuation.definition.string.end.ini"}},name:"string.quoted.single.ini",patterns:[{match:"\\\\.",name:"constant.character.escape.ini"}]},{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.ini"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.ini"}},name:"string.quoted.double.ini"}]}; + +export { ini_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/java.tmLanguage-348e34fc.mjs b/docs/shiki/dist/languages/java.tmLanguage-348e34fc.mjs new file mode 100644 index 00000000..2eaa0275 --- /dev/null +++ b/docs/shiki/dist/languages/java.tmLanguage-348e34fc.mjs @@ -0,0 +1,3 @@ +var java_tmLanguage = {information_for_contributors:["This file has been converted from https://github.com/redhat-developer/vscode-java/blob/master/language-support/java/java.tmLanguage.json","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."],version:"https://github.com/redhat-developer/vscode-java/commit/5fb57e8e1c5d776b21be13cd7227b25b87edf4a6",name:"java",scopeName:"source.java",patterns:[{begin:"\\b(package)\\b\\s*",beginCaptures:{"1":{name:"keyword.other.package.java"}},end:"\\s*(;)",endCaptures:{"1":{name:"punctuation.terminator.java"}},name:"meta.package.java",contentName:"storage.modifier.package.java",patterns:[{include:"#comments"},{match:"(?<=\\.)\\s*\\.|\\.(?=\\s*;)",name:"invalid.illegal.character_not_allowed_here.java"},{match:"(?",endCaptures:{"0":{name:"punctuation.bracket.angle.java"}},patterns:[{match:"\\b(extends|super)\\b",name:"storage.modifier.$1.java"},{match:"(?>>?|~|\\^)",name:"keyword.operator.bitwise.java"},{match:"((&|\\^|\\||<<|>>>?)=)",name:"keyword.operator.assignment.bitwise.java"},{match:"(===?|!=|<=|>=|<>|<|>)",name:"keyword.operator.comparison.java"},{match:"([+*/%-]=)",name:"keyword.operator.assignment.arithmetic.java"},{match:"(=)",name:"keyword.operator.assignment.java"},{match:"(\\-\\-|\\+\\+)",name:"keyword.operator.increment-decrement.java"},{match:"(\\-|\\+|\\*|\\/|%)",name:"keyword.operator.arithmetic.java"},{match:"(!|&&|\\|\\|)",name:"keyword.operator.logical.java"},{match:"(\\||&)",name:"keyword.operator.bitwise.java"},{match:"\\b(const|goto)\\b",name:"keyword.reserved.java"}]},"lambda-expression":{patterns:[{match:"->",name:"storage.type.function.arrow.java"}]},"member-variables":{begin:"(?=private|protected|public|native|synchronized|abstract|threadsafe|transient|static|final)",end:"(?=\\=|;)",patterns:[{include:"#storage-modifiers"},{include:"#variables"},{include:"#primitive-arrays"},{include:"#object-types"}]},"method-call":{begin:"(\\.)\\s*([A-Za-z_$][\\w$]*)\\s*(\\()",beginCaptures:{"1":{name:"punctuation.separator.period.java"},"2":{name:"entity.name.function.java"},"3":{name:"punctuation.definition.parameters.begin.bracket.round.java"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.parameters.end.bracket.round.java"}},name:"meta.method-call.java",patterns:[{include:"#code"}]},methods:{begin:"(?!new)(?=[\\w<].*\\s+)(?=([^=/]|/(?!/))+\\()",end:"(})|(?=;)",endCaptures:{"1":{name:"punctuation.section.method.end.bracket.curly.java"}},name:"meta.method.java",patterns:[{include:"#storage-modifiers"},{begin:"(\\w+)\\s*(\\()",beginCaptures:{"1":{name:"entity.name.function.java"},"2":{name:"punctuation.definition.parameters.begin.bracket.round.java"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.parameters.end.bracket.round.java"}},name:"meta.method.identifier.java",patterns:[{include:"#parameters"},{include:"#parens"},{include:"#comments"}]},{include:"#generics"},{begin:"(?=\\w.*\\s+\\w+\\s*\\()",end:"(?=\\s+\\w+\\s*\\()",name:"meta.method.return-type.java",patterns:[{include:"#all-types"},{include:"#parens"},{include:"#comments"}]},{include:"#throws"},{begin:"{",beginCaptures:{"0":{name:"punctuation.section.method.begin.bracket.curly.java"}},end:"(?=})",contentName:"meta.method.body.java",patterns:[{include:"#code"}]},{include:"#comments"}]},module:{begin:"((open)\\s)?(module)\\s+(\\w+)",end:"}",beginCaptures:{"1":{name:"storage.modifier.java"},"3":{name:"storage.modifier.java"},"4":{name:"entity.name.type.module.java"}},endCaptures:{"0":{name:"punctuation.section.module.end.bracket.curly.java"}},name:"meta.module.java",patterns:[{begin:"{",beginCaptures:{"0":{name:"punctuation.section.module.begin.bracket.curly.java"}},end:"(?=})",contentName:"meta.module.body.java",patterns:[{include:"#comments"},{include:"#comments-javadoc"},{match:"\\b(requires|transitive|exports|opens|to|uses|provides|with)\\b",name:"keyword.module.java"}]}]},numbers:{patterns:[{match:"(?x)\n\\b(?)?(\\()",beginCaptures:{"1":{name:"storage.modifier.java"},"2":{name:"entity.name.type.record.java"},"3":{patterns:[{include:"#generics"}]},"4":{name:"punctuation.definition.parameters.begin.bracket.round.java"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.parameters.end.bracket.round.java"}},name:"meta.record.identifier.java",patterns:[{include:"#code"}]},{begin:"(implements)\\s",beginCaptures:{"1":{name:"storage.modifier.implements.java"}},end:"(?=\\s*\\{)",name:"meta.definition.class.implemented.interfaces.java",patterns:[{include:"#object-types-inherited"},{include:"#comments"}]},{include:"#record-body"}]},"record-body":{begin:"{",beginCaptures:{"0":{name:"punctuation.section.class.begin.bracket.curly.java"}},end:"(?=})",name:"meta.record.body.java",patterns:[{include:"#record-constructor"},{include:"#class-body"}]},"record-constructor":{begin:"(?!new)(?=[\\w<].*\\s+)(?=([^\\(=/]|/(?!/))+(?={))",end:"(})|(?=;)",endCaptures:{"1":{name:"punctuation.section.method.end.bracket.curly.java"}},name:"meta.method.java",patterns:[{include:"#storage-modifiers"},{begin:"(\\w+)",beginCaptures:{"1":{name:"entity.name.function.java"}},end:"(?=\\s*{)",name:"meta.method.identifier.java",patterns:[{include:"#comments"}]},{include:"#comments"},{begin:"{",beginCaptures:{"0":{name:"punctuation.section.method.begin.bracket.curly.java"}},end:"(?=})",contentName:"meta.method.body.java",patterns:[{include:"#code"}]}]},"static-initializer":{patterns:[{include:"#anonymous-block-and-instance-initializer"},{match:"static",name:"storage.modifier.java"}]},"storage-modifiers":{match:"\\b(public|private|protected|static|final|native|synchronized|abstract|threadsafe|transient|volatile|default|strictfp|sealed|non-sealed)\\b",name:"storage.modifier.java"},strings:{patterns:[{begin:"\"\"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.java"}},end:"\"\"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.java"}},name:"string.quoted.triple.java",patterns:[{match:"\\\\\"\"\"",name:"constant.character.escape.java"},{match:"\\\\.",name:"constant.character.escape.java"}]},{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.java"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.java"}},name:"string.quoted.double.java",patterns:[{match:"\\\\.",name:"constant.character.escape.java"}]},{begin:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.java"}},end:"'",endCaptures:{"0":{name:"punctuation.definition.string.end.java"}},name:"string.quoted.single.java",patterns:[{match:"\\\\.",name:"constant.character.escape.java"}]}]},throws:{begin:"throws",beginCaptures:{"0":{name:"storage.modifier.java"}},end:"(?={|;)",name:"meta.throwables.java",patterns:[{match:",",name:"punctuation.separator.delimiter.java"},{match:"[a-zA-Z$_][\\.a-zA-Z0-9$_]*",name:"storage.type.java"},{include:"#comments"}]},"try-catch-finally":{patterns:[{begin:"\\btry\\b",beginCaptures:{"0":{name:"keyword.control.try.java"}},end:"}",endCaptures:{"0":{name:"punctuation.section.try.end.bracket.curly.java"}},name:"meta.try.java",patterns:[{begin:"\\(",beginCaptures:{"0":{name:"punctuation.section.try.resources.begin.bracket.round.java"}},end:"\\)",endCaptures:{"0":{name:"punctuation.section.try.resources.end.bracket.round.java"}},name:"meta.try.resources.java",patterns:[{include:"#code"}]},{begin:"{",beginCaptures:{"0":{name:"punctuation.section.try.begin.bracket.curly.java"}},end:"(?=})",contentName:"meta.try.body.java",patterns:[{include:"#code"}]}]},{begin:"\\b(catch)\\b",beginCaptures:{"1":{name:"keyword.control.catch.java"}},end:"}",endCaptures:{"0":{name:"punctuation.section.catch.end.bracket.curly.java"}},name:"meta.catch.java",patterns:[{include:"#comments"},{begin:"\\(",beginCaptures:{"0":{name:"punctuation.definition.parameters.begin.bracket.round.java"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.parameters.end.bracket.round.java"}},contentName:"meta.catch.parameters.java",patterns:[{include:"#comments"},{include:"#storage-modifiers"},{begin:"[a-zA-Z$_][\\.a-zA-Z0-9$_]*",beginCaptures:{"0":{name:"storage.type.java"}},end:"(\\|)|(?=\\))",endCaptures:{"1":{name:"punctuation.catch.separator.java"}},patterns:[{include:"#comments"},{match:"\\w+",captures:{"0":{name:"variable.parameter.java"}}}]}]},{begin:"{",beginCaptures:{"0":{name:"punctuation.section.catch.begin.bracket.curly.java"}},end:"(?=})",contentName:"meta.catch.body.java",patterns:[{include:"#code"}]}]},{begin:"\\bfinally\\b",beginCaptures:{"0":{name:"keyword.control.finally.java"}},end:"}",endCaptures:{"0":{name:"punctuation.section.finally.end.bracket.curly.java"}},name:"meta.finally.java",patterns:[{begin:"{",beginCaptures:{"0":{name:"punctuation.section.finally.begin.bracket.curly.java"}},end:"(?=})",contentName:"meta.finally.body.java",patterns:[{include:"#code"}]}]}]},variables:{begin:"(?x)\n(?=\n \\b\n (\n (void|boolean|byte|char|short|int|float|long|double)\n |\n (?>(\\w+\\.)*[A-Z_]+\\w*) # e.g. `javax.ws.rs.Response`, or `String`\n )\n \\b\n \\s*\n (\n <[\\w<>,\\.?\\s\\[\\]]*> # e.g. `HashMap`, or `List`\n )?\n \\s*\n (\n (\\[\\])* # int[][]\n )?\n \\s+\n [A-Za-z_$][\\w$]* # At least one identifier after space\n ([\\w\\[\\],$][\\w\\[\\],\\s]*)? # possibly primitive array or additional identifiers\n \\s*(=|:|;)\n)",end:"(?=\\=|:|;)",name:"meta.definition.variable.java",patterns:[{match:"([A-Za-z$_][\\w$]*)(?=\\s*(\\[\\])*\\s*(;|:|=|,))",captures:{"1":{name:"variable.other.definition.java"}}},{include:"#all-types"},{include:"#code"}]},"variables-local":{begin:"(?=\\b(var)\\b\\s+[A-Za-z_$][\\w$]*\\s*(=|:|;))",end:"(?=\\=|:|;)",name:"meta.definition.variable.local.java",patterns:[{match:"\\bvar\\b",name:"storage.type.local.java"},{match:"([A-Za-z$_][\\w$]*)(?=\\s*(\\[\\])*\\s*(=|:|;))",captures:{"1":{name:"variable.other.definition.java"}}},{include:"#code"}]}}}; + +export { java_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/javascript.tmLanguage-c53ede72.mjs b/docs/shiki/dist/languages/javascript.tmLanguage-c53ede72.mjs new file mode 100644 index 00000000..221767b7 --- /dev/null +++ b/docs/shiki/dist/languages/javascript.tmLanguage-c53ede72.mjs @@ -0,0 +1,3 @@ +var javascript_tmLanguage = {information_for_contributors:["This file has been converted from https://github.com/microsoft/TypeScript-TmLanguage/blob/master/TypeScriptReact.tmLanguage","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."],version:"https://github.com/microsoft/TypeScript-TmLanguage/commit/8c7482b94b548eab56da64dbfb30b82589b3f747",name:"javascript",scopeName:"source.js",patterns:[{include:"#directives"},{include:"#statements"},{include:"#shebang"}],repository:{shebang:{name:"comment.line.shebang.js",match:"\\A(#!).*(?=$)",captures:{"1":{name:"punctuation.definition.comment.js"}}},statements:{patterns:[{include:"#declaration"},{include:"#control-statement"},{include:"#after-operator-block-as-object-literal"},{include:"#decl-block"},{include:"#label"},{include:"#expression"},{include:"#punctuation-semicolon"},{include:"#string"},{include:"#comment"}]},declaration:{patterns:[{include:"#decorator"},{include:"#var-expr"},{include:"#function-declaration"},{include:"#class-declaration"},{include:"#interface-declaration"},{include:"#enum-declaration"},{include:"#namespace-declaration"},{include:"#type-alias-declaration"},{include:"#import-equals-declaration"},{include:"#import-declaration"},{include:"#export-declaration"},{name:"storage.modifier.js",match:"(?)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))",beginCaptures:{"1":{name:"meta.definition.variable.js entity.name.function.js"},"2":{name:"keyword.operator.definiteassignment.js"}},end:"(?=$|^|[;,=}]|((?)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))",beginCaptures:{"1":{name:"meta.definition.variable.js variable.other.constant.js entity.name.function.js"}},end:"(?=$|^|[;,=}]|((?)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))",captures:{"1":{name:"storage.modifier.js"},"2":{name:"keyword.operator.rest.js"},"3":{name:"entity.name.function.js variable.language.this.js"},"4":{name:"entity.name.function.js"},"5":{name:"keyword.operator.optional.js"}}},{match:"(?x)(?:(?)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))",captures:{"1":{name:"meta.definition.property.js entity.name.function.js"},"2":{name:"keyword.operator.optional.js"},"3":{name:"keyword.operator.definiteassignment.js"}}},{name:"meta.definition.property.js variable.object.property.js",match:"\\#?[_$[:alpha:]][_$[:alnum:]]*"},{name:"keyword.operator.optional.js",match:"\\?"},{name:"keyword.operator.definiteassignment.js",match:"\\!"}]},"variable-initializer":{patterns:[{begin:"(?\\s*$)",beginCaptures:{"1":{name:"keyword.operator.assignment.js"}},end:"(?=$|^|[,);}\\]]|((?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{"1":{name:"storage.modifier.js"},"2":{name:"storage.modifier.js"},"3":{name:"storage.modifier.js"},"4":{name:"storage.modifier.async.js"},"5":{name:"keyword.operator.new.js"},"6":{name:"keyword.generator.asterisk.js"}},end:"(?=\\}|;|,|$)|(?<=\\})",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]},{name:"meta.method.declaration.js",begin:"(?x)(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{"1":{name:"storage.modifier.js"},"2":{name:"storage.modifier.js"},"3":{name:"storage.modifier.js"},"4":{name:"storage.modifier.async.js"},"5":{name:"storage.type.property.js"},"6":{name:"keyword.generator.asterisk.js"}},end:"(?=\\}|;|,|$)|(?<=\\})",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]}]},"object-literal-method-declaration":{name:"meta.method.declaration.js",begin:"(?x)(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{"1":{name:"storage.modifier.async.js"},"2":{name:"storage.type.property.js"},"3":{name:"keyword.generator.asterisk.js"}},end:"(?=\\}|;|,)|(?<=\\})",patterns:[{include:"#method-declaration-name"},{include:"#function-body"},{begin:"(?x)(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{"1":{name:"storage.modifier.async.js"},"2":{name:"storage.type.property.js"},"3":{name:"keyword.generator.asterisk.js"}},end:"(?=\\(|\\<)",patterns:[{include:"#method-declaration-name"}]}]},"method-declaration-name":{begin:"(?x)(?=((\\b(?)",captures:{"1":{name:"storage.modifier.async.js"},"2":{name:"variable.parameter.js"}}},{name:"meta.arrow.js",begin:"(?x) (?:\n (? is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n )\n)",beginCaptures:{"1":{name:"storage.modifier.async.js"}},end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",patterns:[{include:"#comment"},{include:"#type-parameters"},{include:"#function-parameters"},{include:"#arrow-return-type"},{include:"#possibly-arrow-return-type"}]},{name:"meta.arrow.js",begin:"=>",beginCaptures:{"0":{name:"storage.type.function.arrow.js"}},end:"((?<=\\}|\\S)(?)|((?!\\{)(?=\\S)))(?!\\/[\\/\\*])",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#decl-block"},{include:"#expression"}]}]},"indexer-declaration":{name:"meta.indexer.declaration.js",begin:"(?:(?]|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^yield|[^\\._$[:alnum:]]yield|^throw|[^\\._$[:alnum:]]throw|^in|[^\\._$[:alnum:]]in|^of|[^\\._$[:alnum:]]of|^typeof|[^\\._$[:alnum:]]typeof|&&|\\|\\||\\*)\\s*(\\{)",beginCaptures:{"1":{name:"punctuation.definition.block.js"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.block.js"}},patterns:[{include:"#object-member"}]},"object-literal":{name:"meta.objectliteral.js",begin:"\\{",beginCaptures:{"0":{name:"punctuation.definition.block.js"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.block.js"}},patterns:[{include:"#object-member"}]},"object-member":{patterns:[{include:"#comment"},{include:"#object-literal-method-declaration"},{name:"meta.object.member.js meta.object-literal.key.js",begin:"(?=\\[)",end:"(?=:)|((?<=[\\]])(?=\\s*[\\(\\<]))",patterns:[{include:"#comment"},{include:"#array-literal"}]},{name:"meta.object.member.js meta.object-literal.key.js",begin:"(?=[\\'\\\"\\`])",end:"(?=:)|((?<=[\\'\\\"\\`])(?=((\\s*[\\(\\<,}])|(\\s+(as|satisifies)\\s+))))",patterns:[{include:"#comment"},{include:"#string"}]},{name:"meta.object.member.js meta.object-literal.key.js",begin:"(?x)(?=(\\b(?)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))",captures:{"0":{name:"meta.object-literal.key.js"},"1":{name:"entity.name.function.js"}}},{name:"meta.object.member.js",match:"(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)",captures:{"0":{name:"meta.object-literal.key.js"}}},{name:"meta.object.member.js",begin:"\\.\\.\\.",beginCaptures:{"0":{name:"keyword.operator.spread.js"}},end:"(?=,|\\})",patterns:[{include:"#expression"}]},{name:"meta.object.member.js",match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=,|\\}|$|\\/\\/|\\/\\*)",captures:{"1":{name:"variable.other.readwrite.js"}}},{name:"meta.object.member.js",match:"(?]|\\|\\||\\&\\&|\\!\\=\\=|$|^|((?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{"1":{name:"storage.modifier.async.js"}},end:"(?<=\\))",patterns:[{include:"#type-parameters"},{begin:"\\(",beginCaptures:{"0":{name:"meta.brace.round.js"}},end:"\\)",endCaptures:{"0":{name:"meta.brace.round.js"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]}]},{begin:"(?<=:)\\s*(async)?\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{"1":{name:"storage.modifier.async.js"},"2":{name:"meta.brace.round.js"}},end:"\\)",endCaptures:{"0":{name:"meta.brace.round.js"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]},{begin:"(?<=:)\\s*(async)?\\s*(?=\\<\\s*$)",beginCaptures:{"1":{name:"storage.modifier.async.js"}},end:"(?<=\\>)",patterns:[{include:"#type-parameters"}]},{begin:"(?<=\\>)\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{"1":{name:"meta.brace.round.js"}},end:"\\)",endCaptures:{"0":{name:"meta.brace.round.js"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]},{include:"#possibly-arrow-return-type"},{include:"#expression"}]},{include:"#punctuation-comma"},{include:"#decl-block"}]},"ternary-expression":{begin:"(?!\\?\\.\\s*[^[:digit:]])(\\?)(?!\\?)",beginCaptures:{"1":{name:"keyword.operator.ternary.js"}},end:"\\s*(:)",endCaptures:{"1":{name:"keyword.operator.ternary.js"}},patterns:[{include:"#expression"}]},"function-call":{patterns:[{begin:"(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?\\())",end:"(?<=\\))(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?\\())",patterns:[{name:"meta.function-call.js",begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))",end:"(?=\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?\\())",patterns:[{include:"#function-call-target"}]},{include:"#comment"},{include:"#function-call-optionals"},{include:"#type-arguments"},{include:"#paren-expression"}]},{begin:"(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))",end:"(?<=\\>)(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))",patterns:[{name:"meta.function-call.js",begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))",end:"(?=(<\\s*[\\{\\[\\(]\\s*$))",patterns:[{include:"#function-call-target"}]},{include:"#comment"},{include:"#function-call-optionals"},{include:"#type-arguments"}]}]},"function-call-target":{patterns:[{include:"#support-function-call-identifiers"},{name:"entity.name.function.js",match:"(\\#?[_$[:alpha:]][_$[:alnum:]]*)"}]},"function-call-optionals":{patterns:[{name:"meta.function-call.js punctuation.accessor.optional.js",match:"\\?\\."},{name:"meta.function-call.js keyword.operator.definiteassignment.js",match:"\\!"}]},"support-function-call-identifiers":{patterns:[{include:"#literal"},{include:"#support-objects"},{include:"#object-identifiers"},{include:"#punctuation-accessor"},{name:"keyword.operator.expression.import.js",match:"(?:(?]|\\|\\||\\&\\&|\\!\\=\\=|$|((?]|\\|\\||\\&\\&|\\!\\=\\=|$|(===|!==|==|!=)|(([\\&\\~\\^\\|]\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s+instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{"1":{name:"storage.modifier.async.js"}},end:"(?<=\\))",patterns:[{include:"#paren-expression-possibly-arrow-with-typeparameters"}]},{begin:"(?<=[(=,]|=>|^return|[^\\._$[:alnum:]]return)\\s*(async)?(?=\\s*((((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\()|(<)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)))\\s*$)",beginCaptures:{"1":{name:"storage.modifier.async.js"}},end:"(?<=\\))",patterns:[{include:"#paren-expression-possibly-arrow-with-typeparameters"}]},{include:"#possibly-arrow-return-type"}]},"paren-expression-possibly-arrow-with-typeparameters":{patterns:[{include:"#type-parameters"},{begin:"\\(",beginCaptures:{"0":{name:"meta.brace.round.js"}},end:"\\)",endCaptures:{"0":{name:"meta.brace.round.js"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]}]},"expression-inside-possibly-arrow-parens":{patterns:[{include:"#expressionWithoutIdentifiers"},{include:"#comment"},{include:"#string"},{include:"#decorator"},{include:"#destructuring-parameter"},{match:"(?)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))",captures:{"1":{name:"storage.modifier.js"},"2":{name:"keyword.operator.rest.js"},"3":{name:"entity.name.function.js variable.language.this.js"},"4":{name:"entity.name.function.js"},"5":{name:"keyword.operator.optional.js"}}},{match:"(?x)(?:(?]|\\|\\||\\&\\&|\\!\\=\\=|$|((?>=|>>>=|\\|="},{name:"keyword.operator.bitwise.shift.js",match:"<<|>>>|>>"},{name:"keyword.operator.comparison.js",match:"===|!==|==|!="},{name:"keyword.operator.relational.js",match:"<=|>=|<>|<|>"},{match:"(?<=[_$[:alnum:]])(\\!)\\s*(?:(/=)|(?:(/)(?![/*])))",captures:{"1":{name:"keyword.operator.logical.js"},"2":{name:"keyword.operator.assignment.compound.js"},"3":{name:"keyword.operator.arithmetic.js"}}},{name:"keyword.operator.logical.js",match:"\\!|&&|\\|\\||\\?\\?"},{name:"keyword.operator.bitwise.js",match:"\\&|~|\\^|\\|"},{name:"keyword.operator.assignment.js",match:"\\="},{name:"keyword.operator.decrement.js",match:"--"},{name:"keyword.operator.increment.js",match:"\\+\\+"},{name:"keyword.operator.arithmetic.js",match:"%|\\*|/|-|\\+"},{begin:"(?<=[_$[:alnum:])\\]])\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)+(?:(/=)|(?:(/)(?![/*]))))",end:"(?:(/=)|(?:(/)(?!\\*([^\\*]|(\\*[^\\/]))*\\*\\/)))",endCaptures:{"1":{name:"keyword.operator.assignment.compound.js"},"2":{name:"keyword.operator.arithmetic.js"}},patterns:[{include:"#comment"}]},{match:"(?<=[_$[:alnum:])\\]])\\s*(?:(/=)|(?:(/)(?![/*])))",captures:{"1":{name:"keyword.operator.assignment.compound.js"},"2":{name:"keyword.operator.arithmetic.js"}}}]},"typeof-operator":{begin:"(?:&|{\\?]|(extends\\s+)|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",patterns:[{include:"#type-arguments"},{include:"#expression"}]},literal:{patterns:[{include:"#numeric-literal"},{include:"#boolean-literal"},{include:"#null-literal"},{include:"#undefined-literal"},{include:"#numericConstant-literal"},{include:"#array-literal"},{include:"#this-literal"},{include:"#super-literal"}]},"array-literal":{name:"meta.array.literal.js",begin:"\\s*(\\[)",beginCaptures:{"1":{name:"meta.brace.square.js"}},end:"\\]",endCaptures:{"0":{name:"meta.brace.square.js"}},patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},"numeric-literal":{patterns:[{name:"constant.numeric.hex.js",match:"\\b(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\())\n |\n (?:(EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\\b(?!\\$)))",captures:{"1":{name:"punctuation.accessor.js"},"2":{name:"punctuation.accessor.optional.js"},"3":{name:"support.variable.property.js"},"4":{name:"support.constant.js"}}},{match:"(?)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n))",captures:{"1":{name:"punctuation.accessor.js"},"2":{name:"punctuation.accessor.optional.js"},"3":{name:"entity.name.function.js"}}},{match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])",captures:{"1":{name:"punctuation.accessor.js"},"2":{name:"punctuation.accessor.optional.js"},"3":{name:"variable.other.constant.property.js"}}},{match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)",captures:{"1":{name:"punctuation.accessor.js"},"2":{name:"punctuation.accessor.optional.js"},"3":{name:"variable.other.property.js"}}},{name:"variable.other.constant.js",match:"([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])"},{name:"variable.other.readwrite.js",match:"[_$[:alpha:]][_$[:alnum:]]*"}]},"object-identifiers":{patterns:[{name:"support.class.js",match:"([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\\??\\.\\s*prototype\\b(?!\\$))"},{match:"(?x)(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(?:\n (\\#?[[:upper:]][_$[:digit:][:upper:]]*) |\n (\\#?[_$[:alpha:]][_$[:alnum:]]*)\n)(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)",captures:{"1":{name:"punctuation.accessor.js"},"2":{name:"punctuation.accessor.optional.js"},"3":{name:"variable.other.constant.object.property.js"},"4":{name:"variable.other.object.property.js"}}},{match:"(?x)(?:\n ([[:upper:]][_$[:digit:][:upper:]]*) |\n ([_$[:alpha:]][_$[:alnum:]]*)\n)(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)",captures:{"1":{name:"variable.other.constant.object.js"},"2":{name:"variable.other.object.js"}}}]},"type-annotation":{patterns:[{name:"meta.type.annotation.js",begin:"(:)(?=\\s*\\S)",beginCaptures:{"1":{name:"keyword.operator.type.annotation.js"}},end:"(?])|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))",patterns:[{include:"#type"}]},{name:"meta.type.annotation.js",begin:"(:)",beginCaptures:{"1":{name:"keyword.operator.type.annotation.js"}},end:"(?])|(?=^\\s*$)|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))",patterns:[{include:"#type"}]}]},"parameter-type-annotation":{patterns:[{name:"meta.type.annotation.js",begin:"(:)",beginCaptures:{"1":{name:"keyword.operator.type.annotation.js"}},end:"(?=[,)])|(?==[^>])",patterns:[{include:"#type"}]}]},"return-type":{patterns:[{name:"meta.return.type.js",begin:"(?<=\\))\\s*(:)(?=\\s*\\S)",beginCaptures:{"1":{name:"keyword.operator.type.annotation.js"}},end:"(?|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",patterns:[{include:"#arrow-return-type-body"}]},"possibly-arrow-return-type":{begin:"(?<=\\)|^)\\s*(:)(?=\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*=>)",beginCaptures:{"1":{name:"meta.arrow.js meta.return.type.arrow.js keyword.operator.type.annotation.js"}},end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",contentName:"meta.arrow.js meta.return.type.arrow.js",patterns:[{include:"#arrow-return-type-body"}]},"arrow-return-type-body":{patterns:[{begin:"(?<=[:])(?=\\s*\\{)",end:"(?<=\\})",patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},"type-parameters":{name:"meta.type.parameters.js",begin:"(<)",beginCaptures:{"1":{name:"punctuation.definition.typeparameters.begin.js"}},end:"(>)",endCaptures:{"1":{name:"punctuation.definition.typeparameters.end.js"}},patterns:[{include:"#comment"},{name:"storage.modifier.js",match:"(?)"}]},"type-arguments":{name:"meta.type.parameters.js",begin:"\\<",beginCaptures:{"0":{name:"punctuation.definition.typeparameters.begin.js"}},end:"\\>",endCaptures:{"0":{name:"punctuation.definition.typeparameters.end.js"}},patterns:[{include:"#type-arguments-body"}]},"type-arguments-body":{patterns:[{match:"(?)\n ))\n ))\n)) |\n(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))",captures:{"1":{name:"storage.modifier.js"},"2":{name:"keyword.operator.rest.js"},"3":{name:"entity.name.function.js variable.language.this.js"},"4":{name:"entity.name.function.js"},"5":{name:"keyword.operator.optional.js"}}},{match:"(?x)(?:(?)",patterns:[{include:"#comment"},{include:"#type-parameters"}]},{name:"meta.type.constructor.js",begin:"(?)\n ))\n )\n )\n)",end:"(?<=\\))",patterns:[{include:"#function-parameters"}]}]},"type-function-return-type":{patterns:[{name:"meta.type.function.return.js",begin:"(=>)(?=\\s*\\S)",beginCaptures:{"1":{name:"storage.type.function.arrow.js"}},end:"(?)(?:\\?]|//|$)",patterns:[{include:"#type-function-return-type-core"}]},{name:"meta.type.function.return.js",begin:"=>",beginCaptures:{"0":{name:"storage.type.function.arrow.js"}},end:"(?)(?]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))",patterns:[{include:"#type-function-return-type-core"}]}]},"type-function-return-type-core":{patterns:[{include:"#comment"},{begin:"(?<==>)(?=\\s*\\{)",end:"(?<=\\})",patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},"type-operators":{patterns:[{include:"#typeof-operator"},{include:"#type-infer"},{begin:"([&|])(?=\\s*\\{)",beginCaptures:{"0":{name:"keyword.operator.type.js"}},end:"(?<=\\})",patterns:[{include:"#type-object"}]},{begin:"[&|]",beginCaptures:{"0":{name:"keyword.operator.type.js"}},end:"(?=\\S)"},{name:"keyword.operator.expression.keyof.js",match:"(?)",endCaptures:{"1":{name:"meta.type.parameters.js punctuation.definition.typeparameters.end.js"}},contentName:"meta.type.parameters.js",patterns:[{include:"#type-arguments-body"}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)",beginCaptures:{"1":{name:"entity.name.type.js"},"2":{name:"meta.type.parameters.js punctuation.definition.typeparameters.begin.js"}},end:"(>)",endCaptures:{"1":{name:"meta.type.parameters.js punctuation.definition.typeparameters.end.js"}},contentName:"meta.type.parameters.js",patterns:[{include:"#type-arguments-body"}]},{match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))",captures:{"1":{name:"entity.name.type.module.js"},"2":{name:"punctuation.accessor.js"},"3":{name:"punctuation.accessor.optional.js"}}},{name:"entity.name.type.js",match:"[_$[:alpha:]][_$[:alnum:]]*"}]},"punctuation-comma":{name:"punctuation.separator.comma.js",match:","},"punctuation-semicolon":{name:"punctuation.terminator.statement.js",match:";"},"punctuation-accessor":{match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))",captures:{"1":{name:"punctuation.accessor.js"},"2":{name:"punctuation.accessor.optional.js"}}},string:{patterns:[{include:"#qstring-single"},{include:"#qstring-double"},{include:"#template"}]},"qstring-double":{name:"string.quoted.double.js",begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.js"}},end:"(\")|((?:[^\\\\\\n])$)",endCaptures:{"1":{name:"punctuation.definition.string.end.js"},"2":{name:"invalid.illegal.newline.js"}},patterns:[{include:"#string-character-escape"}]},"qstring-single":{name:"string.quoted.single.js",begin:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.js"}},end:"(\\')|((?:[^\\\\\\n])$)",endCaptures:{"1":{name:"punctuation.definition.string.end.js"},"2":{name:"invalid.illegal.newline.js"}},patterns:[{include:"#string-character-escape"}]},"string-character-escape":{name:"constant.character.escape.js",match:"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)"},template:{patterns:[{include:"#template-call"},{contentName:"string.template.js",begin:"([_$[:alpha:]][_$[:alnum:]]*)?(`)",beginCaptures:{"1":{name:"entity.name.function.tagged-template.js"},"2":{name:"string.template.js punctuation.definition.string.template.begin.js"}},end:"`",endCaptures:{"0":{name:"string.template.js punctuation.definition.string.template.end.js"}},patterns:[{include:"#template-substitution-element"},{include:"#string-character-escape"}]}]},"template-call":{patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*)(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?`)",end:"(?=`)",patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))",end:"(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?`)",patterns:[{include:"#support-function-call-identifiers"},{name:"entity.name.function.tagged-template.js",match:"([_$[:alpha:]][_$[:alnum:]]*)"}]},{include:"#type-arguments"}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*)?\\s*(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)`)",beginCaptures:{"1":{name:"entity.name.function.tagged-template.js"}},end:"(?=`)",patterns:[{include:"#type-arguments"}]}]},"template-substitution-element":{name:"meta.template.expression.js",begin:"\\$\\{",beginCaptures:{"0":{name:"punctuation.definition.template-expression.begin.js"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.template-expression.end.js"}},patterns:[{include:"#expression"}],contentName:"meta.embedded.line.js"},"type-string":{patterns:[{include:"#qstring-single"},{include:"#qstring-double"},{include:"#template-type"}]},"template-type":{patterns:[{include:"#template-call"},{contentName:"string.template.js",begin:"([_$[:alpha:]][_$[:alnum:]]*)?(`)",beginCaptures:{"1":{name:"entity.name.function.tagged-template.js"},"2":{name:"string.template.js punctuation.definition.string.template.begin.js"}},end:"`",endCaptures:{"0":{name:"string.template.js punctuation.definition.string.template.end.js"}},patterns:[{include:"#template-type-substitution-element"},{include:"#string-character-escape"}]}]},"template-type-substitution-element":{name:"meta.template.expression.js",begin:"\\$\\{",beginCaptures:{"0":{name:"punctuation.definition.template-expression.begin.js"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.template-expression.end.js"}},patterns:[{include:"#type"}],contentName:"meta.embedded.line.js"},regex:{patterns:[{name:"string.regexp.js",begin:"(?|&&|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",beginCaptures:{"1":{name:"punctuation.definition.string.begin.js"}},end:"(/)([dgimsuy]*)",endCaptures:{"1":{name:"punctuation.definition.string.end.js"},"2":{name:"keyword.other.js"}},patterns:[{include:"#regexp"}]},{name:"string.regexp.js",begin:"((?",captures:{"0":{name:"keyword.other.back-reference.regexp"},"1":{name:"variable.other.regexp"}}},{name:"keyword.operator.quantifier.regexp",match:"[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??"},{name:"keyword.operator.or.regexp",match:"\\|"},{name:"meta.group.assertion.regexp",begin:"(\\()((\\?=)|(\\?!)|(\\?<=)|(\\?))?",beginCaptures:{"0":{name:"punctuation.definition.group.regexp"},"1":{name:"punctuation.definition.group.no-capture.regexp"},"2":{name:"variable.other.regexp"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.group.regexp"}},patterns:[{include:"#regexp"}]},{name:"constant.other.character-class.set.regexp",begin:"(\\[)(\\^)?",beginCaptures:{"1":{name:"punctuation.definition.character-class.regexp"},"2":{name:"keyword.operator.negation.regexp"}},end:"(\\])",endCaptures:{"1":{name:"punctuation.definition.character-class.regexp"}},patterns:[{name:"constant.other.character-class.range.regexp",match:"(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))",captures:{"1":{name:"constant.character.numeric.regexp"},"2":{name:"constant.character.control.regexp"},"3":{name:"constant.character.escape.backslash.regexp"},"4":{name:"constant.character.numeric.regexp"},"5":{name:"constant.character.control.regexp"},"6":{name:"constant.character.escape.backslash.regexp"}}},{include:"#regex-character-class"}]},{include:"#regex-character-class"}]},"regex-character-class":{patterns:[{name:"constant.other.character-class.regexp",match:"\\\\[wWsSdDtrnvf]|\\."},{name:"constant.character.numeric.regexp",match:"\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})"},{name:"constant.character.control.regexp",match:"\\\\c[A-Z]"},{name:"constant.character.escape.backslash.regexp",match:"\\\\."}]},comment:{patterns:[{name:"comment.block.documentation.js",begin:"/\\*\\*(?!/)",beginCaptures:{"0":{name:"punctuation.definition.comment.js"}},end:"\\*/",endCaptures:{"0":{name:"punctuation.definition.comment.js"}},patterns:[{include:"#docblock"}]},{name:"comment.block.js",begin:"(/\\*)(?:\\s*((@)internal)(?=\\s|(\\*/)))?",beginCaptures:{"1":{name:"punctuation.definition.comment.js"},"2":{name:"storage.type.internaldeclaration.js"},"3":{name:"punctuation.decorator.internaldeclaration.js"}},end:"\\*/",endCaptures:{"0":{name:"punctuation.definition.comment.js"}}},{begin:"(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.js"},"2":{name:"comment.line.double-slash.js"},"3":{name:"punctuation.definition.comment.js"},"4":{name:"storage.type.internaldeclaration.js"},"5":{name:"punctuation.decorator.internaldeclaration.js"}},end:"(?=$)",contentName:"comment.line.double-slash.js"}]},"single-line-comment-consuming-line-ending":{begin:"(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.js"},"2":{name:"comment.line.double-slash.js"},"3":{name:"punctuation.definition.comment.js"},"4":{name:"storage.type.internaldeclaration.js"},"5":{name:"punctuation.decorator.internaldeclaration.js"}},end:"(?=^)",contentName:"comment.line.double-slash.js"},directives:{name:"comment.line.triple-slash.directive.js",begin:"^(///)\\s*(?=<(reference|amd-dependency|amd-module)(\\s+(path|types|no-default-lib|lib|name|resolution-mode)\\s*=\\s*((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)))+\\s*/>\\s*$)",beginCaptures:{"1":{name:"punctuation.definition.comment.js"}},end:"(?=$)",patterns:[{name:"meta.tag.js",begin:"(<)(reference|amd-dependency|amd-module)",beginCaptures:{"1":{name:"punctuation.definition.tag.directive.js"},"2":{name:"entity.name.tag.directive.js"}},end:"/>",endCaptures:{"0":{name:"punctuation.definition.tag.directive.js"}},patterns:[{name:"entity.other.attribute-name.directive.js",match:"path|types|no-default-lib|lib|name|resolution-mode"},{name:"keyword.operator.assignment.js",match:"="},{include:"#string"}]}]},docblock:{patterns:[{match:"(?x)\n((@)(?:access|api))\n\\s+\n(private|protected|public)\n\\b",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"constant.language.access-type.jsdoc"}}},{match:"(?x)\n((@)author)\n\\s+\n(\n [^@\\s<>*/]\n (?:[^@<>*/]|\\*[^/])*\n)\n(?:\n \\s*\n (<)\n ([^>\\s]+)\n (>)\n)?",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"entity.name.type.instance.jsdoc"},"4":{name:"punctuation.definition.bracket.angle.begin.jsdoc"},"5":{name:"constant.other.email.link.underline.jsdoc"},"6":{name:"punctuation.definition.bracket.angle.end.jsdoc"}}},{match:"(?x)\n((@)borrows) \\s+\n((?:[^@\\s*/]|\\*[^/])+) # \n\\s+ (as) \\s+ # as\n((?:[^@\\s*/]|\\*[^/])+) # ",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"entity.name.type.instance.jsdoc"},"4":{name:"keyword.operator.control.jsdoc"},"5":{name:"entity.name.type.instance.jsdoc"}}},{name:"meta.example.jsdoc",begin:"((@)example)\\s+",end:"(?=@|\\*/)",beginCaptures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"}},patterns:[{match:"^\\s\\*\\s+"},{contentName:"constant.other.description.jsdoc",begin:"\\G(<)caption(>)",beginCaptures:{"0":{name:"entity.name.tag.inline.jsdoc"},"1":{name:"punctuation.definition.bracket.angle.begin.jsdoc"},"2":{name:"punctuation.definition.bracket.angle.end.jsdoc"}},end:"()|(?=\\*/)",endCaptures:{"0":{name:"entity.name.tag.inline.jsdoc"},"1":{name:"punctuation.definition.bracket.angle.begin.jsdoc"},"2":{name:"punctuation.definition.bracket.angle.end.jsdoc"}}},{match:"[^\\s@*](?:[^*]|\\*[^/])*",captures:{"0":{name:"source.embedded.js"}}}]},{match:"(?x) ((@)kind) \\s+ (class|constant|event|external|file|function|member|mixin|module|namespace|typedef) \\b",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"constant.language.symbol-type.jsdoc"}}},{match:"(?x)\n((@)see)\n\\s+\n(?:\n # URL\n (\n (?=https?://)\n (?:[^\\s*]|\\*[^/])+\n )\n |\n # JSDoc namepath\n (\n (?!\n # Avoid matching bare URIs (also acceptable as links)\n https?://\n |\n # Avoid matching {@inline tags}; we match those below\n (?:\\[[^\\[\\]]*\\])? # Possible description [preceding]{@tag}\n {@(?:link|linkcode|linkplain|tutorial)\\b\n )\n # Matched namepath\n (?:[^@\\s*/]|\\*[^/])+\n )\n)",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"variable.other.link.underline.jsdoc"},"4":{name:"entity.name.type.instance.jsdoc"}}},{match:"(?x)\n((@)template)\n\\s+\n# One or more valid identifiers\n(\n [A-Za-z_$] # First character: non-numeric word character\n [\\w$.\\[\\]]* # Rest of identifier\n (?: # Possible list of additional identifiers\n \\s* , \\s*\n [A-Za-z_$]\n [\\w$.\\[\\]]*\n )*\n)",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"variable.other.jsdoc"}}},{begin:"(?x)((@)template)\\s+(?={)",beginCaptures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{name:"variable.other.jsdoc",match:"([A-Za-z_$][\\w$.\\[\\]]*)"}]},{match:"(?x)\n(\n (@)\n (?:arg|argument|const|constant|member|namespace|param|var)\n)\n\\s+\n(\n [A-Za-z_$]\n [\\w$.\\[\\]]*\n)",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"variable.other.jsdoc"}}},{begin:"((@)typedef)\\s+(?={)",beginCaptures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{name:"entity.name.type.instance.jsdoc",match:"(?:[^@\\s*/]|\\*[^/])+"}]},{begin:"((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\s+(?={)",beginCaptures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{name:"variable.other.jsdoc",match:"([A-Za-z_$][\\w$.\\[\\]]*)"},{name:"variable.other.jsdoc",match:"(?x)\n(\\[)\\s*\n[\\w$]+\n(?:\n (?:\\[\\])? # Foo[ ].bar properties within an array\n \\. # Foo.Bar namespaced parameter\n [\\w$]+\n)*\n(?:\n \\s*\n (=) # [foo=bar] Default parameter value\n \\s*\n (\n # The inner regexes are to stop the match early at */ and to not stop at escaped quotes\n (?>\n \"(?:(?:\\*(?!/))|(?:\\\\(?!\"))|[^*\\\\])*?\" | # [foo=\"bar\"] Double-quoted\n '(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?' | # [foo='bar'] Single-quoted\n \\[ (?:(?:\\*(?!/))|[^*])*? \\] | # [foo=[1,2]] Array literal\n (?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])* # Everything else\n )*\n )\n)?\n\\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))",captures:{"1":{name:"punctuation.definition.optional-value.begin.bracket.square.jsdoc"},"2":{name:"keyword.operator.assignment.jsdoc"},"3":{name:"source.embedded.js"},"4":{name:"punctuation.definition.optional-value.end.bracket.square.jsdoc"},"5":{name:"invalid.illegal.syntax.jsdoc"}}}]},{begin:"(?x)\n(\n (@)\n (?:define|enum|exception|export|extends|lends|implements|modifies\n |namespace|private|protected|returns?|satisfies|suppress|this|throws|type\n |yields?)\n)\n\\s+(?={)",beginCaptures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"}]},{match:"(?x)\n(\n (@)\n (?:alias|augments|callback|constructs|emits|event|fires|exports?\n |extends|external|function|func|host|lends|listens|interface|memberof!?\n |method|module|mixes|mixin|name|requires|see|this|typedef|uses)\n)\n\\s+\n(\n (?:\n [^{}@\\s*] | \\*[^/]\n )+\n)",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"entity.name.type.instance.jsdoc"}}},{contentName:"variable.other.jsdoc",begin:"((@)(?:default(?:value)?|license|version))\\s+(([''\"]))",beginCaptures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"variable.other.jsdoc"},"4":{name:"punctuation.definition.string.begin.jsdoc"}},end:"(\\3)|(?=$|\\*/)",endCaptures:{"0":{name:"variable.other.jsdoc"},"1":{name:"punctuation.definition.string.end.jsdoc"}}},{match:"((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"variable.other.jsdoc"}}},{name:"storage.type.class.jsdoc",match:"(?x) (@) (?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles |callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright |default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception |exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func |function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc |inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method |mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects |override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected |public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary |suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation |version|virtual|writeOnce|yields?) \\b",captures:{"1":{name:"punctuation.definition.block.tag.jsdoc"}}},{include:"#inline-tags"},{match:"((@)(?:[_$[:alpha:]][_$[:alnum:]]*))(?=\\s+)",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"}}}]},brackets:{patterns:[{begin:"{",end:"}|(?=\\*/)",patterns:[{include:"#brackets"}]},{begin:"\\[",end:"\\]|(?=\\*/)",patterns:[{include:"#brackets"}]}]},"inline-tags":{patterns:[{name:"constant.other.description.jsdoc",match:"(\\[)[^\\]]+(\\])(?={@(?:link|linkcode|linkplain|tutorial))",captures:{"1":{name:"punctuation.definition.bracket.square.begin.jsdoc"},"2":{name:"punctuation.definition.bracket.square.end.jsdoc"}}},{name:"entity.name.type.instance.jsdoc",begin:"({)((@)(?:link(?:code|plain)?|tutorial))\\s*",beginCaptures:{"1":{name:"punctuation.definition.bracket.curly.begin.jsdoc"},"2":{name:"storage.type.class.jsdoc"},"3":{name:"punctuation.definition.inline.tag.jsdoc"}},end:"}|(?=\\*/)",endCaptures:{"0":{name:"punctuation.definition.bracket.curly.end.jsdoc"}},patterns:[{match:"\\G((?=https?://)(?:[^|}\\s*]|\\*[/])+)(\\|)?",captures:{"1":{name:"variable.other.link.underline.jsdoc"},"2":{name:"punctuation.separator.pipe.jsdoc"}}},{match:"\\G((?:[^{}@\\s|*]|\\*[^/])+)(\\|)?",captures:{"1":{name:"variable.other.description.jsdoc"},"2":{name:"punctuation.separator.pipe.jsdoc"}}}]}]},jsdoctype:{patterns:[{contentName:"entity.name.type.instance.jsdoc",begin:"\\G({)",beginCaptures:{"0":{name:"entity.name.type.instance.jsdoc"},"1":{name:"punctuation.definition.bracket.curly.begin.jsdoc"}},end:"((}))\\s*|(?=\\*/)",endCaptures:{"1":{name:"entity.name.type.instance.jsdoc"},"2":{name:"punctuation.definition.bracket.curly.end.jsdoc"}},patterns:[{include:"#brackets"}]}]},jsx:{patterns:[{include:"#jsx-tag-without-attributes-in-expression"},{include:"#jsx-tag-in-expression"}]},"jsx-tag-without-attributes-in-expression":{begin:"(?:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s*(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))",end:"(?!(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))",patterns:[{include:"#jsx-tag-without-attributes"}]},"jsx-tag-without-attributes":{name:"meta.tag.without-attributes.js",begin:"(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?)",end:"()",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.js"},"2":{name:"entity.name.tag.namespace.js"},"3":{name:"punctuation.separator.namespace.js"},"4":{name:"entity.name.tag.js"},"5":{name:"support.class.component.js"},"6":{name:"punctuation.definition.tag.end.js"}},endCaptures:{"1":{name:"punctuation.definition.tag.begin.js"},"2":{name:"entity.name.tag.namespace.js"},"3":{name:"punctuation.separator.namespace.js"},"4":{name:"entity.name.tag.js"},"5":{name:"support.class.component.js"},"6":{name:"punctuation.definition.tag.end.js"}},contentName:"meta.jsx.children.js",patterns:[{include:"#jsx-children"}]},"jsx-tag-in-expression":{begin:"(?x)\n (?:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s*\n (?!<\\s*[_$[:alpha:]][_$[:alnum:]]*((\\s+extends\\s+[^=>])|,)) # look ahead is not type parameter of arrow\n (?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))",end:"(?!(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))",patterns:[{include:"#jsx-tag"}]},"jsx-tag":{name:"meta.tag.js",begin:"(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))",end:"(/>)|(?:())",endCaptures:{"1":{name:"punctuation.definition.tag.end.js"},"2":{name:"punctuation.definition.tag.begin.js"},"3":{name:"entity.name.tag.namespace.js"},"4":{name:"punctuation.separator.namespace.js"},"5":{name:"entity.name.tag.js"},"6":{name:"support.class.component.js"},"7":{name:"punctuation.definition.tag.end.js"}},patterns:[{begin:"(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?)",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.js"},"2":{name:"entity.name.tag.namespace.js"},"3":{name:"punctuation.separator.namespace.js"},"4":{name:"entity.name.tag.js"},"5":{name:"support.class.component.js"}},end:"(?=[/]?>)",patterns:[{include:"#comment"},{include:"#type-arguments"},{include:"#jsx-tag-attributes"}]},{begin:"(>)",beginCaptures:{"1":{name:"punctuation.definition.tag.end.js"}},end:"(?=)",patterns:[{include:"#comment"},{include:"#jsx-tag-attribute-name"},{include:"#jsx-tag-attribute-assignment"},{include:"#jsx-string-double-quoted"},{include:"#jsx-string-single-quoted"},{include:"#jsx-evaluated-code"},{include:"#jsx-tag-attributes-illegal"}]},"jsx-tag-attribute-name":{match:"(?x)\n \\s*\n (?:([_$[:alpha:]][-_$[:alnum:].]*)(:))?\n ([_$[:alpha:]][-_$[:alnum:]]*)\n (?=\\s|=|/?>|/\\*|//)",captures:{"1":{name:"entity.other.attribute-name.namespace.js"},"2":{name:"punctuation.separator.namespace.js"},"3":{name:"entity.other.attribute-name.js"}}},"jsx-tag-attribute-assignment":{name:"keyword.operator.assignment.js",match:"=(?=\\s*(?:'|\"|{|/\\*|//|\\n))"},"jsx-string-double-quoted":{name:"string.quoted.double.js",begin:"\"",end:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.js"}},endCaptures:{"0":{name:"punctuation.definition.string.end.js"}},patterns:[{include:"#jsx-entities"}]},"jsx-string-single-quoted":{name:"string.quoted.single.js",begin:"'",end:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.js"}},endCaptures:{"0":{name:"punctuation.definition.string.end.js"}},patterns:[{include:"#jsx-entities"}]},"jsx-tag-attributes-illegal":{name:"invalid.illegal.attribute.js",match:"\\S+"}}}; + +export { javascript_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/jinja-html.tmLanguage-138ee912.mjs b/docs/shiki/dist/languages/jinja-html.tmLanguage-138ee912.mjs new file mode 100644 index 00000000..1d3c04be --- /dev/null +++ b/docs/shiki/dist/languages/jinja-html.tmLanguage-138ee912.mjs @@ -0,0 +1,3 @@ +var jinjaHtml_tmLanguage = {name:"jinja-html",scopeName:"text.html.jinja",comment:"Jinja HTML Templates",firstLineMatch:"^{% extends [\"'][^\"']+[\"'] %}",foldingStartMarker:"(<(?i:(head|table|tr|div|style|script|ul|ol|form|dl))\\b.*?>|{%\\s*(block|filter|for|if|macro|raw))",foldingStopMarker:"(|{%\\s*(endblock|endfilter|endfor|endif|endmacro|endraw)\\s*%})",patterns:[{include:"source.jinja"},{include:"text.html.basic"}]}; + +export { jinjaHtml_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/jison.tmLanguage-dc776b31.mjs b/docs/shiki/dist/languages/jison.tmLanguage-dc776b31.mjs new file mode 100644 index 00000000..bfd2c04c --- /dev/null +++ b/docs/shiki/dist/languages/jison.tmLanguage-dc776b31.mjs @@ -0,0 +1,3 @@ +var jison_tmLanguage = {name:"jison",scopeName:"source.jison",fileTypes:["jison"],patterns:[{begin:"%%",end:"\\z",beginCaptures:{"0":{name:"meta.separator.section.jison"}},patterns:[{begin:"%%",end:"\\z",beginCaptures:{"0":{name:"meta.separator.section.jison"}},patterns:[{name:"meta.section.epilogue.jison",begin:"\\G",end:"\\z",contentName:"source.js.embedded.jison",patterns:[{include:"#epilogue_section"}]}]},{name:"meta.section.rules.jison",begin:"\\G",end:"(?=%%)",patterns:[{include:"#rules_section"}]}]},{name:"meta.section.declarations.jison",begin:"^",end:"(?=%%)",patterns:[{include:"#declarations_section"}]}],repository:{declarations_section:{patterns:[{include:"#comments"},{begin:"^\\s*(%lex)\\s*$",end:"^\\s*(/lex)\\b",beginCaptures:{"1":{name:"entity.name.tag.lexer.begin.jison"}},endCaptures:{"1":{name:"entity.name.tag.lexer.end.jison"}},patterns:[{begin:"%%",end:"(?=/lex)",beginCaptures:{"0":{name:"meta.separator.section.jisonlex"}},patterns:[{begin:"^%%",end:"(?=/lex)",beginCaptures:{"0":{name:"meta.separator.section.jisonlex"}},patterns:[{name:"meta.section.user-code.jisonlex",begin:"\\G",end:"(?=/lex)",contentName:"source.js.embedded.jisonlex",patterns:[{include:"source.jisonlex#user_code_section"}]}]},{name:"meta.section.rules.jisonlex",begin:"\\G",end:"^(?=%%|/lex)",patterns:[{include:"source.jisonlex#rules_section"}]}]},{name:"meta.section.definitions.jisonlex",begin:"^",end:"(?=%%|/lex)",patterns:[{include:"source.jisonlex#definitions_section"}]}]},{name:"meta.section.prologue.jison",begin:"(?=%\\{)",end:"(?<=%\\})",patterns:[{include:"#user_code_blocks"}]},{include:"#options_declarations"},{name:"keyword.other.declaration.$1.jison",match:"%(ebnf|left|nonassoc|parse-param|right|start)\\b"},{include:"#include_declarations"},{name:"meta.code.jison",begin:"%(code)\\b",end:"$",beginCaptures:{"0":{name:"keyword.other.declaration.$1.jison"}},patterns:[{include:"#comments"},{include:"#rule_actions"},{name:"keyword.other.code-qualifier.$1.jison",match:"(init|required)"},{include:"#quoted_strings"},{name:"string.unquoted.jison",match:"\\b[[:alpha:]_](?:[\\w-]*\\w)?\\b"}]},{name:"meta.parser-type.jison",begin:"%(parser-type)\\b",end:"$",beginCaptures:{"0":{name:"keyword.other.declaration.$1.jison"}},patterns:[{include:"#comments"},{include:"#quoted_strings"},{name:"string.unquoted.jison",match:"\\b[[:alpha:]_](?:[\\w-]*\\w)?\\b"}]},{name:"meta.token.jison",begin:"%(token)\\b",end:"$|(%%|;)",beginCaptures:{"0":{name:"keyword.other.declaration.$1.jison"}},endCaptures:{"1":{name:"punctuation.terminator.declaration.token.jison"}},patterns:[{include:"#comments"},{include:"#numbers"},{include:"#quoted_strings"},{name:"invalid.unimplemented.jison",match:"<[[:alpha:]_](?:[\\w-]*\\w)?>"},{name:"entity.other.token.jison",match:"\\S+"}]},{name:"keyword.other.declaration.$1.jison",match:"%(debug|import)\\b"},{name:"invalid.illegal.jison",match:"%prec\\b"},{name:"invalid.unimplemented.jison",match:"%[[:alpha:]_](?:[\\w-]*\\w)?\\b"},{include:"#numbers"},{include:"#quoted_strings"}]},rules_section:{patterns:[{include:"#comments"},{include:"#actions"},{include:"#include_declarations"},{name:"meta.rule.jison",begin:"\\b[[:alpha:]_](?:[\\w-]*\\w)?\\b",end:";",beginCaptures:{"0":{name:"entity.name.constant.rule-result.jison"}},endCaptures:{"0":{name:"punctuation.terminator.rule.jison"}},patterns:[{include:"#comments"},{name:"meta.rule-components.jison",begin:":",end:"(?=;)",beginCaptures:{"0":{name:"keyword.operator.rule-components.assignment.jison"}},patterns:[{include:"#comments"},{include:"#quoted_strings"},{match:"(\\[)([[:alpha:]_](?:[\\w-]*\\w)?)(\\])",captures:{"1":{name:"punctuation.definition.named-reference.begin.jison"},"2":{name:"entity.name.other.reference.jison"},"3":{name:"punctuation.definition.named-reference.end.jison"}}},{name:"meta.prec.jison",begin:"(%(prec))\\s*",end:"(?<=['\"])|(?=\\s)",beginCaptures:{"1":{name:"keyword.other.$2.jison"}},patterns:[{include:"#comments"},{include:"#quoted_strings"},{name:"constant.other.token.jison",begin:"(?=\\S)",end:"(?=\\s)"}]},{name:"keyword.operator.rule-components.separator.jison",match:"\\|"},{name:"keyword.other.$0.jison",match:"\\b(?:EOF|error)\\b"},{name:"keyword.other.empty.jison",match:"(?:%(?:e(?:mpty|psilon))|\\b[Ɛɛεϵ])\\b"},{include:"#rule_actions"}]}]}]},epilogue_section:{patterns:[{include:"#user_code_include_declarations"},{include:"source.js"}]},actions:{patterns:[{name:"meta.action.jison",begin:"\\{\\{",end:"\\}\\}",beginCaptures:{"0":{name:"punctuation.definition.action.begin.jison"}},endCaptures:{"0":{name:"punctuation.definition.action.end.jison"}},contentName:"source.js.embedded.jison",patterns:[{include:"source.js"}]},{name:"meta.action.jison",begin:"(?=%\\{)",end:"(?<=%\\})",patterns:[{include:"#user_code_blocks"}]}]},rule_actions:{patterns:[{include:"#actions"},{name:"meta.action.jison",begin:"\\{",end:"\\}",beginCaptures:{"0":{name:"punctuation.definition.action.begin.jison"}},endCaptures:{"0":{name:"punctuation.definition.action.end.jison"}},contentName:"source.js.embedded.jison",patterns:[{include:"source.js"}]},{include:"#include_declarations"},{name:"meta.action.jison",begin:"->|→",end:"$",beginCaptures:{"0":{name:"punctuation.definition.action.arrow.jison"}},contentName:"source.js.embedded.jison",patterns:[{include:"source.js"}]}]},comments:{patterns:[{name:"comment.line.double-slash.jison",begin:"//",end:"$",beginCaptures:{"0":{name:"punctuation.definition.comment.jison"}}},{name:"comment.block.jison",begin:"/\\*",end:"\\*/",beginCaptures:{"0":{name:"punctuation.definition.comment.begin.jison"}},endCaptures:{"0":{name:"punctuation.definition.comment.end.jison"}}}]},include_declarations:{patterns:[{name:"meta.include.jison",begin:"(%(include))\\s*",end:"(?<=['\"])|(?=\\s)",beginCaptures:{"1":{name:"keyword.other.declaration.$2.jison"}},patterns:[{include:"#include_paths"}]}]},user_code_include_declarations:{patterns:[{name:"meta.include.jison",begin:"^(%(include))\\s*",end:"(?<=['\"])|(?=\\s)",beginCaptures:{"1":{name:"keyword.other.declaration.$2.jison"}},patterns:[{include:"#include_paths"}]}]},include_paths:{patterns:[{include:"#quoted_strings"},{name:"string.unquoted.jison",begin:"(?=\\S)",end:"(?=\\s)",patterns:[{include:"source.js#string_escapes"}]}]},numbers:{patterns:[{match:"(0[Xx])([0-9A-Fa-f]+)",captures:{"1":{name:"storage.type.number.jison"},"2":{name:"constant.numeric.integer.hexadecimal.jison"}}},{name:"constant.numeric.integer.decimal.jison",match:"\\d+"}]},options_declarations:{patterns:[{name:"meta.options.jison",begin:"%options\\b",end:"^(?=\\S|\\s*$)",beginCaptures:{"0":{name:"keyword.other.options.jison"}},patterns:[{include:"#comments"},{name:"entity.name.constant.jison",match:"\\b[[:alpha:]_](?:[\\w-]*\\w)?\\b"},{begin:"(=)\\s*",end:"(?<=['\"])|(?=\\s)",beginCaptures:{"1":{name:"keyword.operator.option.assignment.jison"}},patterns:[{include:"#comments"},{name:"constant.language.boolean.$1.jison",match:"\\b(true|false)\\b"},{include:"#numbers"},{include:"#quoted_strings"},{name:"string.unquoted.jison",match:"\\S+"}]},{include:"#quoted_strings"}]}]},quoted_strings:{patterns:[{name:"string.quoted.double.jison",begin:"\"",end:"\"",patterns:[{include:"source.js#string_escapes"}]},{name:"string.quoted.single.jison",begin:"'",end:"'",patterns:[{include:"source.js#string_escapes"}]}]},user_code_blocks:{patterns:[{name:"meta.user-code-block.jison",begin:"%\\{",end:"%\\}",beginCaptures:{"0":{name:"punctuation.definition.user-code-block.begin.jison"}},endCaptures:{"0":{name:"punctuation.definition.user-code-block.end.jison"}},contentName:"source.js.embedded.jison",patterns:[{include:"source.js"}]}]}},injections:{"L:(meta.action.jison - (comment | string)), source.js.embedded.jison - (comment | string), source.js.embedded.source - (comment | string.quoted.double | string.quoted.single)":{patterns:[{name:"variable.language.semantic-value.jison",match:"\\${2}"},{name:"variable.language.result-location.jison",match:"@\\$"},{name:"variable.language.stack-index-0.jison",match:"##\\$|\\byysp\\b"},{name:"support.variable.token-reference.jison",match:"#\\S+#"},{name:"variable.language.result-id.jison",match:"#\\$"},{name:"support.variable.token-value.jison",match:"\\$(?:-?\\d+|[[:alpha:]_](?:[\\w-]*\\w)?)"},{name:"support.variable.token-location.jison",match:"@(?:-?\\d+|[[:alpha:]_](?:[\\w-]*\\w)?)"},{name:"support.variable.stack-index.jison",match:"##(?:-?\\d+|[[:alpha:]_](?:[\\w-]*\\w)?)"},{name:"support.variable.token-id.jison",match:"#(?:-?\\d+|[[:alpha:]_](?:[\\w-]*\\w)?)"},{name:"variable.language.jison",match:"\\byy(?:l(?:eng|ineno|oc|stack)|rulelength|s(?:tate|s?tack)|text|vstack)\\b"},{name:"keyword.other.jison",match:"\\byy(?:clearin|erro[kr])\\b"}]}}}; + +export { jison_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/json.tmLanguage-f0a34dd6.mjs b/docs/shiki/dist/languages/json.tmLanguage-f0a34dd6.mjs new file mode 100644 index 00000000..50a1f417 --- /dev/null +++ b/docs/shiki/dist/languages/json.tmLanguage-f0a34dd6.mjs @@ -0,0 +1,3 @@ +var json_tmLanguage = {information_for_contributors:["This file has been converted from https://github.com/microsoft/vscode-JSON.tmLanguage/blob/master/JSON.tmLanguage","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."],version:"https://github.com/microsoft/vscode-JSON.tmLanguage/commit/9bd83f1c252b375e957203f21793316203f61f70",name:"json",scopeName:"source.json",patterns:[{include:"#value"}],repository:{array:{begin:"\\[",beginCaptures:{"0":{name:"punctuation.definition.array.begin.json"}},end:"\\]",endCaptures:{"0":{name:"punctuation.definition.array.end.json"}},name:"meta.structure.array.json",patterns:[{include:"#value"},{match:",",name:"punctuation.separator.array.json"},{match:"[^\\s\\]]",name:"invalid.illegal.expected-array-separator.json"}]},comments:{patterns:[{begin:"/\\*\\*(?!/)",captures:{"0":{name:"punctuation.definition.comment.json"}},end:"\\*/",name:"comment.block.documentation.json"},{begin:"/\\*",captures:{"0":{name:"punctuation.definition.comment.json"}},end:"\\*/",name:"comment.block.json"},{captures:{"1":{name:"punctuation.definition.comment.json"}},match:"(//).*$\\n?",name:"comment.line.double-slash.js"}]},constant:{match:"\\b(?:true|false|null)\\b",name:"constant.language.json"},number:{match:"(?x) # turn on extended mode\n -? # an optional minus\n (?:\n 0 # a zero\n | # ...or...\n [1-9] # a 1-9 character\n \\d* # followed by zero or more digits\n )\n (?:\n (?:\n \\. # a period\n \\d+ # followed by one or more digits\n )?\n (?:\n [eE] # an e character\n [+-]? # followed by an option +/-\n \\d+ # followed by one or more digits\n )? # make exponent optional\n )? # make decimal portion optional",name:"constant.numeric.json"},object:{begin:"\\{",beginCaptures:{"0":{name:"punctuation.definition.dictionary.begin.json"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.dictionary.end.json"}},name:"meta.structure.dictionary.json",patterns:[{comment:"the JSON object key",include:"#objectkey"},{include:"#comments"},{begin:":",beginCaptures:{"0":{name:"punctuation.separator.dictionary.key-value.json"}},end:"(,)|(?=\\})",endCaptures:{"1":{name:"punctuation.separator.dictionary.pair.json"}},name:"meta.structure.dictionary.value.json",patterns:[{comment:"the JSON object value",include:"#value"},{match:"[^\\s,]",name:"invalid.illegal.expected-dictionary-separator.json"}]},{match:"[^\\s\\}]",name:"invalid.illegal.expected-dictionary-separator.json"}]},string:{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.json"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.json"}},name:"string.quoted.double.json",patterns:[{include:"#stringcontent"}]},objectkey:{begin:"\"",beginCaptures:{"0":{name:"punctuation.support.type.property-name.begin.json"}},end:"\"",endCaptures:{"0":{name:"punctuation.support.type.property-name.end.json"}},name:"string.json support.type.property-name.json",patterns:[{include:"#stringcontent"}]},stringcontent:{patterns:[{match:"(?x) # turn on extended mode\n \\\\ # a literal backslash\n (?: # ...followed by...\n [\"\\\\/bfnrt] # one of these characters\n | # ...or...\n u # a u\n [0-9a-fA-F]{4}) # and four hex digits",name:"constant.character.escape.json"},{match:"\\\\.",name:"invalid.illegal.unrecognized-string-escape.json"}]},value:{patterns:[{include:"#constant"},{include:"#number"},{include:"#string"},{include:"#array"},{include:"#object"},{include:"#comments"}]}}}; + +export { json_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/json5.tmLanguage-647a087f.mjs b/docs/shiki/dist/languages/json5.tmLanguage-647a087f.mjs new file mode 100644 index 00000000..afd96e4d --- /dev/null +++ b/docs/shiki/dist/languages/json5.tmLanguage-647a087f.mjs @@ -0,0 +1,3 @@ +var json5_tmLanguage = {scopeName:"source.json5",fileTypes:["json5"],name:"json5",patterns:[{include:"#comments"},{include:"#value"}],repository:{array:{begin:"\\[",beginCaptures:{"0":{name:"punctuation.definition.array.begin.json5"}},end:"\\]",endCaptures:{"0":{name:"punctuation.definition.array.end.json5"}},name:"meta.structure.array.json5",patterns:[{include:"#comments"},{include:"#value"},{match:",",name:"punctuation.separator.array.json5"},{match:"[^\\s\\]]",name:"invalid.illegal.expected-array-separator.json5"}]},constant:{match:"\\b(?:true|false|null|Infinity|NaN)\\b",name:"constant.language.json5"},infinity:{match:"(-)*\\b(?:Infinity|NaN)\\b",name:"constant.language.json5"},number:{patterns:[{comment:"handles hexadecimal numbers",match:"(0x)[0-9a-fA-f]*",name:"constant.hex.numeric.json5"},{comment:"handles integer and decimal numbers",match:"[+-.]?(?=[1-9]|0(?!\\d))\\d+(\\.\\d+)?([eE][+-]?\\d+)?",name:"constant.dec.numeric.json5"}]},object:{begin:"\\{",beginCaptures:{"0":{name:"punctuation.definition.dictionary.begin.json5"}},comment:"a json5 object",end:"\\}",endCaptures:{"0":{name:"punctuation.definition.dictionary.end.json5"}},name:"meta.structure.dictionary.json5",patterns:[{include:"#comments"},{comment:"the json5 object key",include:"#key"},{begin:":",beginCaptures:{"0":{name:"punctuation.separator.dictionary.key-value.json5"}},end:"(,)|(?=\\})",endCaptures:{"1":{name:"punctuation.separator.dictionary.pair.json5"}},name:"meta.structure.dictionary.value.json5",patterns:[{comment:"the json5 object value",include:"#value"},{match:"[^\\s,]",name:"invalid.illegal.expected-dictionary-separator.json5"}]},{match:"[^\\s\\}]",name:"invalid.illegal.expected-dictionary-separator.json5"}]},stringSingle:{begin:"[']",beginCaptures:{"0":{name:"punctuation.definition.string.begin.json5"}},end:"[']",endCaptures:{"0":{name:"punctuation.definition.string.end.json5"}},name:"string.quoted.json5",patterns:[{match:"(?x: # turn on extended mode\n \\\\ # a literal backslash\n (?: # ...followed by...\n [\"\\\\/bfnrt] # one of these characters\n | # ...or...\n u # a u\n [0-9a-fA-F]{4} # and four hex digits\n )\n )",name:"constant.character.escape.json5"},{match:"\\\\.",name:"invalid.illegal.unrecognized-string-escape.json5"}]},stringDouble:{begin:"[\"]",beginCaptures:{"0":{name:"punctuation.definition.string.begin.json5"}},end:"[\"]",endCaptures:{"0":{name:"punctuation.definition.string.end.json5"}},name:"string.quoted.json5",patterns:[{match:"(?x: # turn on extended mode\n \\\\ # a literal backslash\n (?: # ...followed by...\n [\"\\\\/bfnrt] # one of these characters\n | # ...or...\n u # a u\n [0-9a-fA-F]{4} # and four hex digits\n )\n )",name:"constant.character.escape.json5"},{match:"\\\\.",name:"invalid.illegal.unrecognized-string-escape.json5"}]},key:{name:"string.key.json5",patterns:[{include:"#stringSingle"},{include:"#stringDouble"},{match:"[a-zA-Z0-9_-]",name:"string.key.json5"}]},value:{comment:"the 'value' diagram at http://json.org",patterns:[{include:"#constant"},{include:"#infinity"},{include:"#number"},{include:"#stringSingle"},{include:"#stringDouble"},{include:"#array"},{include:"#object"}]},comments:{patterns:[{match:"/{2}.*",name:"comment.single.json5"},{begin:"/\\*\\*(?!/)",captures:{"0":{name:"punctuation.definition.comment.json5"}},end:"\\*/",name:"comment.block.documentation.json5"},{begin:"/\\*",captures:{"0":{name:"punctuation.definition.comment.json5"}},end:"\\*/",name:"comment.block.json5"}]}}}; + +export { json5_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/jsonc.tmLanguage-23a8af9f.mjs b/docs/shiki/dist/languages/jsonc.tmLanguage-23a8af9f.mjs new file mode 100644 index 00000000..026ccd70 --- /dev/null +++ b/docs/shiki/dist/languages/jsonc.tmLanguage-23a8af9f.mjs @@ -0,0 +1,3 @@ +var jsonc_tmLanguage = {information_for_contributors:["This file has been converted from https://github.com/microsoft/vscode-JSON.tmLanguage/blob/master/JSON.tmLanguage","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."],version:"https://github.com/microsoft/vscode-JSON.tmLanguage/commit/9bd83f1c252b375e957203f21793316203f61f70",name:"jsonc",scopeName:"source.json.comments",patterns:[{include:"#value"}],repository:{array:{begin:"\\[",beginCaptures:{"0":{name:"punctuation.definition.array.begin.json.comments"}},end:"\\]",endCaptures:{"0":{name:"punctuation.definition.array.end.json.comments"}},name:"meta.structure.array.json.comments",patterns:[{include:"#value"},{match:",",name:"punctuation.separator.array.json.comments"},{match:"[^\\s\\]]",name:"invalid.illegal.expected-array-separator.json.comments"}]},comments:{patterns:[{begin:"/\\*\\*(?!/)",captures:{"0":{name:"punctuation.definition.comment.json.comments"}},end:"\\*/",name:"comment.block.documentation.json.comments"},{begin:"/\\*",captures:{"0":{name:"punctuation.definition.comment.json.comments"}},end:"\\*/",name:"comment.block.json.comments"},{captures:{"1":{name:"punctuation.definition.comment.json.comments"}},match:"(//).*$\\n?",name:"comment.line.double-slash.js"}]},constant:{match:"\\b(?:true|false|null)\\b",name:"constant.language.json.comments"},number:{match:"(?x) # turn on extended mode\n -? # an optional minus\n (?:\n 0 # a zero\n | # ...or...\n [1-9] # a 1-9 character\n \\d* # followed by zero or more digits\n )\n (?:\n (?:\n \\. # a period\n \\d+ # followed by one or more digits\n )?\n (?:\n [eE] # an e character\n [+-]? # followed by an option +/-\n \\d+ # followed by one or more digits\n )? # make exponent optional\n )? # make decimal portion optional",name:"constant.numeric.json.comments"},object:{begin:"\\{",beginCaptures:{"0":{name:"punctuation.definition.dictionary.begin.json.comments"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.dictionary.end.json.comments"}},name:"meta.structure.dictionary.json.comments",patterns:[{comment:"the JSON object key",include:"#objectkey"},{include:"#comments"},{begin:":",beginCaptures:{"0":{name:"punctuation.separator.dictionary.key-value.json.comments"}},end:"(,)|(?=\\})",endCaptures:{"1":{name:"punctuation.separator.dictionary.pair.json.comments"}},name:"meta.structure.dictionary.value.json.comments",patterns:[{comment:"the JSON object value",include:"#value"},{match:"[^\\s,]",name:"invalid.illegal.expected-dictionary-separator.json.comments"}]},{match:"[^\\s\\}]",name:"invalid.illegal.expected-dictionary-separator.json.comments"}]},string:{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.json.comments"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.json.comments"}},name:"string.quoted.double.json.comments",patterns:[{include:"#stringcontent"}]},objectkey:{begin:"\"",beginCaptures:{"0":{name:"punctuation.support.type.property-name.begin.json.comments"}},end:"\"",endCaptures:{"0":{name:"punctuation.support.type.property-name.end.json.comments"}},name:"string.json.comments support.type.property-name.json.comments",patterns:[{include:"#stringcontent"}]},stringcontent:{patterns:[{match:"(?x) # turn on extended mode\n \\\\ # a literal backslash\n (?: # ...followed by...\n [\"\\\\/bfnrt] # one of these characters\n | # ...or...\n u # a u\n [0-9a-fA-F]{4}) # and four hex digits",name:"constant.character.escape.json.comments"},{match:"\\\\.",name:"invalid.illegal.unrecognized-string-escape.json.comments"}]},value:{patterns:[{include:"#constant"},{include:"#number"},{include:"#string"},{include:"#array"},{include:"#object"},{include:"#comments"}]}}}; + +export { jsonc_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/jsonl.tmLanguage-949e3102.mjs b/docs/shiki/dist/languages/jsonl.tmLanguage-949e3102.mjs new file mode 100644 index 00000000..a9a221d9 --- /dev/null +++ b/docs/shiki/dist/languages/jsonl.tmLanguage-949e3102.mjs @@ -0,0 +1,3 @@ +var jsonl_tmLanguage = {information_for_contributors:["This file has been converted from https://github.com/microsoft/vscode-JSON.tmLanguage/blob/master/JSON.tmLanguage","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."],version:"https://github.com/microsoft/vscode-JSON.tmLanguage/commit/9bd83f1c252b375e957203f21793316203f61f70",name:"jsonl",scopeName:"source.json.lines",patterns:[{include:"#value"}],repository:{array:{begin:"\\[",beginCaptures:{"0":{name:"punctuation.definition.array.begin.json.lines"}},end:"\\]",endCaptures:{"0":{name:"punctuation.definition.array.end.json.lines"}},name:"meta.structure.array.json.lines",patterns:[{include:"#value"},{match:",",name:"punctuation.separator.array.json.lines"},{match:"[^\\s\\]]",name:"invalid.illegal.expected-array-separator.json.lines"}]},comments:{patterns:[{begin:"/\\*\\*(?!/)",captures:{"0":{name:"punctuation.definition.comment.json.lines"}},end:"\\*/",name:"comment.block.documentation.json.lines"},{begin:"/\\*",captures:{"0":{name:"punctuation.definition.comment.json.lines"}},end:"\\*/",name:"comment.block.json.lines"},{captures:{"1":{name:"punctuation.definition.comment.json.lines"}},match:"(//).*$\\n?",name:"comment.line.double-slash.js"}]},constant:{match:"\\b(?:true|false|null)\\b",name:"constant.language.json.lines"},number:{match:"(?x) # turn on extended mode\n -? # an optional minus\n (?:\n 0 # a zero\n | # ...or...\n [1-9] # a 1-9 character\n \\d* # followed by zero or more digits\n )\n (?:\n (?:\n \\. # a period\n \\d+ # followed by one or more digits\n )?\n (?:\n [eE] # an e character\n [+-]? # followed by an option +/-\n \\d+ # followed by one or more digits\n )? # make exponent optional\n )? # make decimal portion optional",name:"constant.numeric.json.lines"},object:{begin:"\\{",beginCaptures:{"0":{name:"punctuation.definition.dictionary.begin.json.lines"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.dictionary.end.json.lines"}},name:"meta.structure.dictionary.json.lines",patterns:[{comment:"the JSON object key",include:"#objectkey"},{include:"#comments"},{begin:":",beginCaptures:{"0":{name:"punctuation.separator.dictionary.key-value.json.lines"}},end:"(,)|(?=\\})",endCaptures:{"1":{name:"punctuation.separator.dictionary.pair.json.lines"}},name:"meta.structure.dictionary.value.json.lines",patterns:[{comment:"the JSON object value",include:"#value"},{match:"[^\\s,]",name:"invalid.illegal.expected-dictionary-separator.json.lines"}]},{match:"[^\\s\\}]",name:"invalid.illegal.expected-dictionary-separator.json.lines"}]},string:{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.json.lines"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.json.lines"}},name:"string.quoted.double.json.lines",patterns:[{include:"#stringcontent"}]},objectkey:{begin:"\"",beginCaptures:{"0":{name:"punctuation.support.type.property-name.begin.json.lines"}},end:"\"",endCaptures:{"0":{name:"punctuation.support.type.property-name.end.json.lines"}},name:"string.json.lines support.type.property-name.json.lines",patterns:[{include:"#stringcontent"}]},stringcontent:{patterns:[{match:"(?x) # turn on extended mode\n \\\\ # a literal backslash\n (?: # ...followed by...\n [\"\\\\/bfnrt] # one of these characters\n | # ...or...\n u # a u\n [0-9a-fA-F]{4}) # and four hex digits",name:"constant.character.escape.json.lines"},{match:"\\\\.",name:"invalid.illegal.unrecognized-string-escape.json.lines"}]},value:{patterns:[{include:"#constant"},{include:"#number"},{include:"#string"},{include:"#array"},{include:"#object"},{include:"#comments"}]}}}; + +export { jsonl_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/jsonnet.tmLanguage-a6bacf25.mjs b/docs/shiki/dist/languages/jsonnet.tmLanguage-a6bacf25.mjs new file mode 100644 index 00000000..d425c54c --- /dev/null +++ b/docs/shiki/dist/languages/jsonnet.tmLanguage-a6bacf25.mjs @@ -0,0 +1,3 @@ +var jsonnet_tmLanguage = {$schema:"https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",name:"jsonnet",patterns:[{include:"#expression"},{include:"#keywords"}],repository:{"builtin-functions":{patterns:[{match:"\\bstd[.](acos|asin|atan|ceil|char|codepoint|cos|exp|exponent)\\b",name:"support.function.jsonnet"},{match:"\\bstd[.](filter|floor|force|length|log|makeArray|mantissa)\\b",name:"support.function.jsonnet"},{match:"\\bstd[.](objectFields|objectHas|pow|sin|sqrt|tan|type|thisFile)\\b",name:"support.function.jsonnet"},{match:"\\bstd[.](acos|asin|atan|ceil|char|codepoint|cos|exp|exponent)\\b",name:"support.function.jsonnet"},{match:"\\bstd[.](abs|assertEqual|escapeString(Bash|Dollars|Json|Python))\\b",name:"support.function.jsonnet"},{match:"\\bstd[.](filterMap|flattenArrays|foldl|foldr|format|join)\\b",name:"support.function.jsonnet"},{match:"\\bstd[.](lines|manifest(Ini|Python(Vars)?)|map|max|min|mod)\\b",name:"support.function.jsonnet"},{match:"\\bstd[.](set|set(Diff|Inter|Member|Union)|sort)\\b",name:"support.function.jsonnet"},{match:"\\bstd[.](range|split|stringChars|substr|toString|uniq)\\b",name:"support.function.jsonnet"}]},comment:{patterns:[{begin:"/\\*",end:"\\*/",name:"comment.block.jsonnet"},{match:"//.*$",name:"comment.line.jsonnet"},{match:"#.*$",name:"comment.block.jsonnet"}]},"double-quoted-strings":{begin:"\"",end:"\"",name:"string.quoted.double.jsonnet",patterns:[{match:"\\\\([\"\\\\/bfnrt]|(u[0-9a-fA-F]{4}))",name:"constant.character.escape.jsonnet"},{match:"\\\\[^\"\\\\/bfnrtu]",name:"invalid.illegal.jsonnet"}]},expression:{patterns:[{include:"#literals"},{include:"#comment"},{include:"#single-quoted-strings"},{include:"#double-quoted-strings"},{include:"#triple-quoted-strings"},{include:"#builtin-functions"},{include:"#functions"}]},functions:{patterns:[{begin:"\\b([a-zA-Z_][a-z0-9A-Z_]*)\\s*\\(",beginCaptures:{"1":{name:"entity.name.function.jsonnet"}},end:"\\)",name:"meta.function",patterns:[{include:"#expression"}]}]},keywords:{patterns:[{match:"[!:~\\+\\-&\\|\\^=<>\\*\\/%]",name:"keyword.operator.jsonnet"},{match:"\\$",name:"keyword.other.jsonnet"},{match:"\\b(self|super|import|importstr|local|tailstrict)\\b",name:"keyword.other.jsonnet"},{match:"\\b(if|then|else|for|in|error|assert)\\b",name:"keyword.control.jsonnet"},{match:"\\b(function)\\b",name:"storage.type.jsonnet"},{match:"[a-zA-Z_][a-z0-9A-Z_]*\\s*(:::|\\+:::)",name:"variable.parameter.jsonnet"},{match:"[a-zA-Z_][a-z0-9A-Z_]*\\s*(::|\\+::)",name:"entity.name.type"},{match:"[a-zA-Z_][a-z0-9A-Z_]*\\s*(:|\\+:)",name:"variable.parameter.jsonnet"}]},literals:{patterns:[{match:"\\b(true|false|null)\\b",name:"constant.language.jsonnet"},{match:"\\b(\\d+([Ee][+-]?\\d+)?)\\b",name:"constant.numeric.jsonnet"},{match:"\\b\\d+[.]\\d*([Ee][+-]?\\d+)?\\b",name:"constant.numeric.jsonnet"},{match:"\\b[.]\\d+([Ee][+-]?\\d+)?\\b",name:"constant.numeric.jsonnet"}]},"single-quoted-strings":{begin:"'",end:"'",name:"string.quoted.double.jsonnet",patterns:[{match:"\\\\(['\\\\/bfnrt]|(u[0-9a-fA-F]{4}))",name:"constant.character.escape.jsonnet"},{match:"\\\\[^'\\\\/bfnrtu]",name:"invalid.illegal.jsonnet"}]},"triple-quoted-strings":{patterns:[{begin:"\\|\\|\\|",end:"\\|\\|\\|",name:"string.quoted.triple.jsonnet"}]}},scopeName:"source.jsonnet"}; + +export { jsonnet_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/jssm.tmLanguage-5df9ad58.mjs b/docs/shiki/dist/languages/jssm.tmLanguage-5df9ad58.mjs new file mode 100644 index 00000000..612a3353 --- /dev/null +++ b/docs/shiki/dist/languages/jssm.tmLanguage-5df9ad58.mjs @@ -0,0 +1,3 @@ +var jssm_tmLanguage = {fileTypes:["jssm","jssm_state"],name:"jssm",patterns:[{begin:"/\\*",captures:{"0":{name:"punctuation.definition.comment.mn"}},comment:"block comment",end:"\\*/",name:"comment.block.jssm"},{begin:"//",comment:"block comment",end:"$",name:"comment.line.jssm"},{begin:"\\${",captures:{"0":{name:"entity.name.function"}},comment:"js outcalls",end:"}",name:"keyword.other"},{comment:"semver",match:"([0-9]*)(\\.)([0-9]*)(\\.)([0-9]*)",name:"constant.numeric"},{comment:"jssm language tokens",match:"graph_layout(\\s*)(:)",name:"constant.language.jssmLanguage"},{comment:"jssm language tokens",match:"machine_name(\\s*)(:)",name:"constant.language.jssmLanguage"},{comment:"jssm language tokens",match:"machine_version(\\s*)(:)",name:"constant.language.jssmLanguage"},{comment:"jssm language tokens",match:"jssm_version(\\s*)(:)",name:"constant.language.jssmLanguage"},{comment:"transitions",match:"<->",name:"keyword.control.transition.jssmArrow.legal_legal"},{comment:"transitions",match:"<-",name:"keyword.control.transition.jssmArrow.legal_none"},{comment:"transitions",match:"->",name:"keyword.control.transition.jssmArrow.none_legal"},{comment:"transitions",match:"<=>",name:"keyword.control.transition.jssmArrow.main_main"},{comment:"transitions",match:"=>",name:"keyword.control.transition.jssmArrow.none_main"},{comment:"transitions",match:"<=",name:"keyword.control.transition.jssmArrow.main_none"},{comment:"transitions",match:"<~>",name:"keyword.control.transition.jssmArrow.forced_forced"},{comment:"transitions",match:"~>",name:"keyword.control.transition.jssmArrow.none_forced"},{comment:"transitions",match:"<~",name:"keyword.control.transition.jssmArrow.forced_none"},{comment:"transitions",match:"<-=>",name:"keyword.control.transition.jssmArrow.legal_main"},{comment:"transitions",match:"<=->",name:"keyword.control.transition.jssmArrow.main_legal"},{comment:"transitions",match:"<-~>",name:"keyword.control.transition.jssmArrow.legal_forced"},{comment:"transitions",match:"<~->",name:"keyword.control.transition.jssmArrow.forced_legal"},{comment:"transitions",match:"<=~>",name:"keyword.control.transition.jssmArrow.main_forced"},{comment:"transitions",match:"<~=>",name:"keyword.control.transition.jssmArrow.forced_main"},{comment:"edge probability annotation",match:"([0-9]+)%",name:"constant.numeric.jssmProbability"},{comment:"action annotation",match:"\\'[^']*\\'",name:"constant.character.jssmAction"},{comment:"jssm label annotation",match:"\\\"[^\"]*\\\"",name:"entity.name.tag.jssmLabel.doublequoted"},{comment:"jssm label annotation",match:"([a-zA-Z0-9_.+&()#@!?,])",name:"entity.name.tag.jssmLabel.atom"}],scopeName:"source.jssm",uuid:"2bb22b55-e811-4383-9929-ae6d0ab92aca"}; + +export { jssm_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/jsx.tmLanguage-8607c961.mjs b/docs/shiki/dist/languages/jsx.tmLanguage-8607c961.mjs new file mode 100644 index 00000000..b6342bda --- /dev/null +++ b/docs/shiki/dist/languages/jsx.tmLanguage-8607c961.mjs @@ -0,0 +1,3 @@ +var jsx_tmLanguage = {information_for_contributors:["This file has been converted from https://github.com/microsoft/TypeScript-TmLanguage/blob/master/TypeScriptReact.tmLanguage","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."],version:"https://github.com/microsoft/TypeScript-TmLanguage/commit/8c7482b94b548eab56da64dbfb30b82589b3f747",name:"jsx",scopeName:"source.js.jsx",patterns:[{include:"#directives"},{include:"#statements"},{include:"#shebang"}],repository:{shebang:{name:"comment.line.shebang.js.jsx",match:"\\A(#!).*(?=$)",captures:{"1":{name:"punctuation.definition.comment.js.jsx"}}},statements:{patterns:[{include:"#declaration"},{include:"#control-statement"},{include:"#after-operator-block-as-object-literal"},{include:"#decl-block"},{include:"#label"},{include:"#expression"},{include:"#punctuation-semicolon"},{include:"#string"},{include:"#comment"}]},declaration:{patterns:[{include:"#decorator"},{include:"#var-expr"},{include:"#function-declaration"},{include:"#class-declaration"},{include:"#interface-declaration"},{include:"#enum-declaration"},{include:"#namespace-declaration"},{include:"#type-alias-declaration"},{include:"#import-equals-declaration"},{include:"#import-declaration"},{include:"#export-declaration"},{name:"storage.modifier.js.jsx",match:"(?)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))",beginCaptures:{"1":{name:"meta.definition.variable.js.jsx entity.name.function.js.jsx"},"2":{name:"keyword.operator.definiteassignment.js.jsx"}},end:"(?=$|^|[;,=}]|((?)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))",beginCaptures:{"1":{name:"meta.definition.variable.js.jsx variable.other.constant.js.jsx entity.name.function.js.jsx"}},end:"(?=$|^|[;,=}]|((?)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))",captures:{"1":{name:"storage.modifier.js.jsx"},"2":{name:"keyword.operator.rest.js.jsx"},"3":{name:"entity.name.function.js.jsx variable.language.this.js.jsx"},"4":{name:"entity.name.function.js.jsx"},"5":{name:"keyword.operator.optional.js.jsx"}}},{match:"(?x)(?:(?)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))",captures:{"1":{name:"meta.definition.property.js.jsx entity.name.function.js.jsx"},"2":{name:"keyword.operator.optional.js.jsx"},"3":{name:"keyword.operator.definiteassignment.js.jsx"}}},{name:"meta.definition.property.js.jsx variable.object.property.js.jsx",match:"\\#?[_$[:alpha:]][_$[:alnum:]]*"},{name:"keyword.operator.optional.js.jsx",match:"\\?"},{name:"keyword.operator.definiteassignment.js.jsx",match:"\\!"}]},"variable-initializer":{patterns:[{begin:"(?\\s*$)",beginCaptures:{"1":{name:"keyword.operator.assignment.js.jsx"}},end:"(?=$|^|[,);}\\]]|((?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{"1":{name:"storage.modifier.js.jsx"},"2":{name:"storage.modifier.js.jsx"},"3":{name:"storage.modifier.js.jsx"},"4":{name:"storage.modifier.async.js.jsx"},"5":{name:"keyword.operator.new.js.jsx"},"6":{name:"keyword.generator.asterisk.js.jsx"}},end:"(?=\\}|;|,|$)|(?<=\\})",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]},{name:"meta.method.declaration.js.jsx",begin:"(?x)(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{"1":{name:"storage.modifier.js.jsx"},"2":{name:"storage.modifier.js.jsx"},"3":{name:"storage.modifier.js.jsx"},"4":{name:"storage.modifier.async.js.jsx"},"5":{name:"storage.type.property.js.jsx"},"6":{name:"keyword.generator.asterisk.js.jsx"}},end:"(?=\\}|;|,|$)|(?<=\\})",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]}]},"object-literal-method-declaration":{name:"meta.method.declaration.js.jsx",begin:"(?x)(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{"1":{name:"storage.modifier.async.js.jsx"},"2":{name:"storage.type.property.js.jsx"},"3":{name:"keyword.generator.asterisk.js.jsx"}},end:"(?=\\}|;|,)|(?<=\\})",patterns:[{include:"#method-declaration-name"},{include:"#function-body"},{begin:"(?x)(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{"1":{name:"storage.modifier.async.js.jsx"},"2":{name:"storage.type.property.js.jsx"},"3":{name:"keyword.generator.asterisk.js.jsx"}},end:"(?=\\(|\\<)",patterns:[{include:"#method-declaration-name"}]}]},"method-declaration-name":{begin:"(?x)(?=((\\b(?)",captures:{"1":{name:"storage.modifier.async.js.jsx"},"2":{name:"variable.parameter.js.jsx"}}},{name:"meta.arrow.js.jsx",begin:"(?x) (?:\n (? is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n )\n)",beginCaptures:{"1":{name:"storage.modifier.async.js.jsx"}},end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",patterns:[{include:"#comment"},{include:"#type-parameters"},{include:"#function-parameters"},{include:"#arrow-return-type"},{include:"#possibly-arrow-return-type"}]},{name:"meta.arrow.js.jsx",begin:"=>",beginCaptures:{"0":{name:"storage.type.function.arrow.js.jsx"}},end:"((?<=\\}|\\S)(?)|((?!\\{)(?=\\S)))(?!\\/[\\/\\*])",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#decl-block"},{include:"#expression"}]}]},"indexer-declaration":{name:"meta.indexer.declaration.js.jsx",begin:"(?:(?]|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^yield|[^\\._$[:alnum:]]yield|^throw|[^\\._$[:alnum:]]throw|^in|[^\\._$[:alnum:]]in|^of|[^\\._$[:alnum:]]of|^typeof|[^\\._$[:alnum:]]typeof|&&|\\|\\||\\*)\\s*(\\{)",beginCaptures:{"1":{name:"punctuation.definition.block.js.jsx"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.block.js.jsx"}},patterns:[{include:"#object-member"}]},"object-literal":{name:"meta.objectliteral.js.jsx",begin:"\\{",beginCaptures:{"0":{name:"punctuation.definition.block.js.jsx"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.block.js.jsx"}},patterns:[{include:"#object-member"}]},"object-member":{patterns:[{include:"#comment"},{include:"#object-literal-method-declaration"},{name:"meta.object.member.js.jsx meta.object-literal.key.js.jsx",begin:"(?=\\[)",end:"(?=:)|((?<=[\\]])(?=\\s*[\\(\\<]))",patterns:[{include:"#comment"},{include:"#array-literal"}]},{name:"meta.object.member.js.jsx meta.object-literal.key.js.jsx",begin:"(?=[\\'\\\"\\`])",end:"(?=:)|((?<=[\\'\\\"\\`])(?=((\\s*[\\(\\<,}])|(\\s+(as|satisifies)\\s+))))",patterns:[{include:"#comment"},{include:"#string"}]},{name:"meta.object.member.js.jsx meta.object-literal.key.js.jsx",begin:"(?x)(?=(\\b(?)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))",captures:{"0":{name:"meta.object-literal.key.js.jsx"},"1":{name:"entity.name.function.js.jsx"}}},{name:"meta.object.member.js.jsx",match:"(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)",captures:{"0":{name:"meta.object-literal.key.js.jsx"}}},{name:"meta.object.member.js.jsx",begin:"\\.\\.\\.",beginCaptures:{"0":{name:"keyword.operator.spread.js.jsx"}},end:"(?=,|\\})",patterns:[{include:"#expression"}]},{name:"meta.object.member.js.jsx",match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=,|\\}|$|\\/\\/|\\/\\*)",captures:{"1":{name:"variable.other.readwrite.js.jsx"}}},{name:"meta.object.member.js.jsx",match:"(?]|\\|\\||\\&\\&|\\!\\=\\=|$|^|((?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{"1":{name:"storage.modifier.async.js.jsx"}},end:"(?<=\\))",patterns:[{include:"#type-parameters"},{begin:"\\(",beginCaptures:{"0":{name:"meta.brace.round.js.jsx"}},end:"\\)",endCaptures:{"0":{name:"meta.brace.round.js.jsx"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]}]},{begin:"(?<=:)\\s*(async)?\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{"1":{name:"storage.modifier.async.js.jsx"},"2":{name:"meta.brace.round.js.jsx"}},end:"\\)",endCaptures:{"0":{name:"meta.brace.round.js.jsx"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]},{begin:"(?<=:)\\s*(async)?\\s*(?=\\<\\s*$)",beginCaptures:{"1":{name:"storage.modifier.async.js.jsx"}},end:"(?<=\\>)",patterns:[{include:"#type-parameters"}]},{begin:"(?<=\\>)\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{"1":{name:"meta.brace.round.js.jsx"}},end:"\\)",endCaptures:{"0":{name:"meta.brace.round.js.jsx"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]},{include:"#possibly-arrow-return-type"},{include:"#expression"}]},{include:"#punctuation-comma"},{include:"#decl-block"}]},"ternary-expression":{begin:"(?!\\?\\.\\s*[^[:digit:]])(\\?)(?!\\?)",beginCaptures:{"1":{name:"keyword.operator.ternary.js.jsx"}},end:"\\s*(:)",endCaptures:{"1":{name:"keyword.operator.ternary.js.jsx"}},patterns:[{include:"#expression"}]},"function-call":{patterns:[{begin:"(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?\\())",end:"(?<=\\))(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?\\())",patterns:[{name:"meta.function-call.js.jsx",begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))",end:"(?=\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?\\())",patterns:[{include:"#function-call-target"}]},{include:"#comment"},{include:"#function-call-optionals"},{include:"#type-arguments"},{include:"#paren-expression"}]},{begin:"(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))",end:"(?<=\\>)(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))",patterns:[{name:"meta.function-call.js.jsx",begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))",end:"(?=(<\\s*[\\{\\[\\(]\\s*$))",patterns:[{include:"#function-call-target"}]},{include:"#comment"},{include:"#function-call-optionals"},{include:"#type-arguments"}]}]},"function-call-target":{patterns:[{include:"#support-function-call-identifiers"},{name:"entity.name.function.js.jsx",match:"(\\#?[_$[:alpha:]][_$[:alnum:]]*)"}]},"function-call-optionals":{patterns:[{name:"meta.function-call.js.jsx punctuation.accessor.optional.js.jsx",match:"\\?\\."},{name:"meta.function-call.js.jsx keyword.operator.definiteassignment.js.jsx",match:"\\!"}]},"support-function-call-identifiers":{patterns:[{include:"#literal"},{include:"#support-objects"},{include:"#object-identifiers"},{include:"#punctuation-accessor"},{name:"keyword.operator.expression.import.js.jsx",match:"(?:(?]|\\|\\||\\&\\&|\\!\\=\\=|$|((?]|\\|\\||\\&\\&|\\!\\=\\=|$|(===|!==|==|!=)|(([\\&\\~\\^\\|]\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s+instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{"1":{name:"storage.modifier.async.js.jsx"}},end:"(?<=\\))",patterns:[{include:"#paren-expression-possibly-arrow-with-typeparameters"}]},{begin:"(?<=[(=,]|=>|^return|[^\\._$[:alnum:]]return)\\s*(async)?(?=\\s*((((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\()|(<)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)))\\s*$)",beginCaptures:{"1":{name:"storage.modifier.async.js.jsx"}},end:"(?<=\\))",patterns:[{include:"#paren-expression-possibly-arrow-with-typeparameters"}]},{include:"#possibly-arrow-return-type"}]},"paren-expression-possibly-arrow-with-typeparameters":{patterns:[{include:"#type-parameters"},{begin:"\\(",beginCaptures:{"0":{name:"meta.brace.round.js.jsx"}},end:"\\)",endCaptures:{"0":{name:"meta.brace.round.js.jsx"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]}]},"expression-inside-possibly-arrow-parens":{patterns:[{include:"#expressionWithoutIdentifiers"},{include:"#comment"},{include:"#string"},{include:"#decorator"},{include:"#destructuring-parameter"},{match:"(?)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))",captures:{"1":{name:"storage.modifier.js.jsx"},"2":{name:"keyword.operator.rest.js.jsx"},"3":{name:"entity.name.function.js.jsx variable.language.this.js.jsx"},"4":{name:"entity.name.function.js.jsx"},"5":{name:"keyword.operator.optional.js.jsx"}}},{match:"(?x)(?:(?]|\\|\\||\\&\\&|\\!\\=\\=|$|((?>=|>>>=|\\|="},{name:"keyword.operator.bitwise.shift.js.jsx",match:"<<|>>>|>>"},{name:"keyword.operator.comparison.js.jsx",match:"===|!==|==|!="},{name:"keyword.operator.relational.js.jsx",match:"<=|>=|<>|<|>"},{match:"(?<=[_$[:alnum:]])(\\!)\\s*(?:(/=)|(?:(/)(?![/*])))",captures:{"1":{name:"keyword.operator.logical.js.jsx"},"2":{name:"keyword.operator.assignment.compound.js.jsx"},"3":{name:"keyword.operator.arithmetic.js.jsx"}}},{name:"keyword.operator.logical.js.jsx",match:"\\!|&&|\\|\\||\\?\\?"},{name:"keyword.operator.bitwise.js.jsx",match:"\\&|~|\\^|\\|"},{name:"keyword.operator.assignment.js.jsx",match:"\\="},{name:"keyword.operator.decrement.js.jsx",match:"--"},{name:"keyword.operator.increment.js.jsx",match:"\\+\\+"},{name:"keyword.operator.arithmetic.js.jsx",match:"%|\\*|/|-|\\+"},{begin:"(?<=[_$[:alnum:])\\]])\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)+(?:(/=)|(?:(/)(?![/*]))))",end:"(?:(/=)|(?:(/)(?!\\*([^\\*]|(\\*[^\\/]))*\\*\\/)))",endCaptures:{"1":{name:"keyword.operator.assignment.compound.js.jsx"},"2":{name:"keyword.operator.arithmetic.js.jsx"}},patterns:[{include:"#comment"}]},{match:"(?<=[_$[:alnum:])\\]])\\s*(?:(/=)|(?:(/)(?![/*])))",captures:{"1":{name:"keyword.operator.assignment.compound.js.jsx"},"2":{name:"keyword.operator.arithmetic.js.jsx"}}}]},"typeof-operator":{begin:"(?:&|{\\?]|(extends\\s+)|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",patterns:[{include:"#type-arguments"},{include:"#expression"}]},literal:{patterns:[{include:"#numeric-literal"},{include:"#boolean-literal"},{include:"#null-literal"},{include:"#undefined-literal"},{include:"#numericConstant-literal"},{include:"#array-literal"},{include:"#this-literal"},{include:"#super-literal"}]},"array-literal":{name:"meta.array.literal.js.jsx",begin:"\\s*(\\[)",beginCaptures:{"1":{name:"meta.brace.square.js.jsx"}},end:"\\]",endCaptures:{"0":{name:"meta.brace.square.js.jsx"}},patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},"numeric-literal":{patterns:[{name:"constant.numeric.hex.js.jsx",match:"\\b(?]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\())\n |\n (?:(EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\\b(?!\\$)))",captures:{"1":{name:"punctuation.accessor.js.jsx"},"2":{name:"punctuation.accessor.optional.js.jsx"},"3":{name:"support.variable.property.js.jsx"},"4":{name:"support.constant.js.jsx"}}},{match:"(?)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n))",captures:{"1":{name:"punctuation.accessor.js.jsx"},"2":{name:"punctuation.accessor.optional.js.jsx"},"3":{name:"entity.name.function.js.jsx"}}},{match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])",captures:{"1":{name:"punctuation.accessor.js.jsx"},"2":{name:"punctuation.accessor.optional.js.jsx"},"3":{name:"variable.other.constant.property.js.jsx"}}},{match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)",captures:{"1":{name:"punctuation.accessor.js.jsx"},"2":{name:"punctuation.accessor.optional.js.jsx"},"3":{name:"variable.other.property.js.jsx"}}},{name:"variable.other.constant.js.jsx",match:"([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])"},{name:"variable.other.readwrite.js.jsx",match:"[_$[:alpha:]][_$[:alnum:]]*"}]},"object-identifiers":{patterns:[{name:"support.class.js.jsx",match:"([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\\??\\.\\s*prototype\\b(?!\\$))"},{match:"(?x)(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(?:\n (\\#?[[:upper:]][_$[:digit:][:upper:]]*) |\n (\\#?[_$[:alpha:]][_$[:alnum:]]*)\n)(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)",captures:{"1":{name:"punctuation.accessor.js.jsx"},"2":{name:"punctuation.accessor.optional.js.jsx"},"3":{name:"variable.other.constant.object.property.js.jsx"},"4":{name:"variable.other.object.property.js.jsx"}}},{match:"(?x)(?:\n ([[:upper:]][_$[:digit:][:upper:]]*) |\n ([_$[:alpha:]][_$[:alnum:]]*)\n)(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)",captures:{"1":{name:"variable.other.constant.object.js.jsx"},"2":{name:"variable.other.object.js.jsx"}}}]},"type-annotation":{patterns:[{name:"meta.type.annotation.js.jsx",begin:"(:)(?=\\s*\\S)",beginCaptures:{"1":{name:"keyword.operator.type.annotation.js.jsx"}},end:"(?])|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))",patterns:[{include:"#type"}]},{name:"meta.type.annotation.js.jsx",begin:"(:)",beginCaptures:{"1":{name:"keyword.operator.type.annotation.js.jsx"}},end:"(?])|(?=^\\s*$)|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))",patterns:[{include:"#type"}]}]},"parameter-type-annotation":{patterns:[{name:"meta.type.annotation.js.jsx",begin:"(:)",beginCaptures:{"1":{name:"keyword.operator.type.annotation.js.jsx"}},end:"(?=[,)])|(?==[^>])",patterns:[{include:"#type"}]}]},"return-type":{patterns:[{name:"meta.return.type.js.jsx",begin:"(?<=\\))\\s*(:)(?=\\s*\\S)",beginCaptures:{"1":{name:"keyword.operator.type.annotation.js.jsx"}},end:"(?|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",patterns:[{include:"#arrow-return-type-body"}]},"possibly-arrow-return-type":{begin:"(?<=\\)|^)\\s*(:)(?=\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*=>)",beginCaptures:{"1":{name:"meta.arrow.js.jsx meta.return.type.arrow.js.jsx keyword.operator.type.annotation.js.jsx"}},end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",contentName:"meta.arrow.js.jsx meta.return.type.arrow.js.jsx",patterns:[{include:"#arrow-return-type-body"}]},"arrow-return-type-body":{patterns:[{begin:"(?<=[:])(?=\\s*\\{)",end:"(?<=\\})",patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},"type-parameters":{name:"meta.type.parameters.js.jsx",begin:"(<)",beginCaptures:{"1":{name:"punctuation.definition.typeparameters.begin.js.jsx"}},end:"(>)",endCaptures:{"1":{name:"punctuation.definition.typeparameters.end.js.jsx"}},patterns:[{include:"#comment"},{name:"storage.modifier.js.jsx",match:"(?)"}]},"type-arguments":{name:"meta.type.parameters.js.jsx",begin:"\\<",beginCaptures:{"0":{name:"punctuation.definition.typeparameters.begin.js.jsx"}},end:"\\>",endCaptures:{"0":{name:"punctuation.definition.typeparameters.end.js.jsx"}},patterns:[{include:"#type-arguments-body"}]},"type-arguments-body":{patterns:[{match:"(?)\n ))\n ))\n)) |\n(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))",captures:{"1":{name:"storage.modifier.js.jsx"},"2":{name:"keyword.operator.rest.js.jsx"},"3":{name:"entity.name.function.js.jsx variable.language.this.js.jsx"},"4":{name:"entity.name.function.js.jsx"},"5":{name:"keyword.operator.optional.js.jsx"}}},{match:"(?x)(?:(?)",patterns:[{include:"#comment"},{include:"#type-parameters"}]},{name:"meta.type.constructor.js.jsx",begin:"(?)\n ))\n )\n )\n)",end:"(?<=\\))",patterns:[{include:"#function-parameters"}]}]},"type-function-return-type":{patterns:[{name:"meta.type.function.return.js.jsx",begin:"(=>)(?=\\s*\\S)",beginCaptures:{"1":{name:"storage.type.function.arrow.js.jsx"}},end:"(?)(?:\\?]|//|$)",patterns:[{include:"#type-function-return-type-core"}]},{name:"meta.type.function.return.js.jsx",begin:"=>",beginCaptures:{"0":{name:"storage.type.function.arrow.js.jsx"}},end:"(?)(?]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))",patterns:[{include:"#type-function-return-type-core"}]}]},"type-function-return-type-core":{patterns:[{include:"#comment"},{begin:"(?<==>)(?=\\s*\\{)",end:"(?<=\\})",patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},"type-operators":{patterns:[{include:"#typeof-operator"},{include:"#type-infer"},{begin:"([&|])(?=\\s*\\{)",beginCaptures:{"0":{name:"keyword.operator.type.js.jsx"}},end:"(?<=\\})",patterns:[{include:"#type-object"}]},{begin:"[&|]",beginCaptures:{"0":{name:"keyword.operator.type.js.jsx"}},end:"(?=\\S)"},{name:"keyword.operator.expression.keyof.js.jsx",match:"(?)",endCaptures:{"1":{name:"meta.type.parameters.js.jsx punctuation.definition.typeparameters.end.js.jsx"}},contentName:"meta.type.parameters.js.jsx",patterns:[{include:"#type-arguments-body"}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)",beginCaptures:{"1":{name:"entity.name.type.js.jsx"},"2":{name:"meta.type.parameters.js.jsx punctuation.definition.typeparameters.begin.js.jsx"}},end:"(>)",endCaptures:{"1":{name:"meta.type.parameters.js.jsx punctuation.definition.typeparameters.end.js.jsx"}},contentName:"meta.type.parameters.js.jsx",patterns:[{include:"#type-arguments-body"}]},{match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))",captures:{"1":{name:"entity.name.type.module.js.jsx"},"2":{name:"punctuation.accessor.js.jsx"},"3":{name:"punctuation.accessor.optional.js.jsx"}}},{name:"entity.name.type.js.jsx",match:"[_$[:alpha:]][_$[:alnum:]]*"}]},"punctuation-comma":{name:"punctuation.separator.comma.js.jsx",match:","},"punctuation-semicolon":{name:"punctuation.terminator.statement.js.jsx",match:";"},"punctuation-accessor":{match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))",captures:{"1":{name:"punctuation.accessor.js.jsx"},"2":{name:"punctuation.accessor.optional.js.jsx"}}},string:{patterns:[{include:"#qstring-single"},{include:"#qstring-double"},{include:"#template"}]},"qstring-double":{name:"string.quoted.double.js.jsx",begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.js.jsx"}},end:"(\")|((?:[^\\\\\\n])$)",endCaptures:{"1":{name:"punctuation.definition.string.end.js.jsx"},"2":{name:"invalid.illegal.newline.js.jsx"}},patterns:[{include:"#string-character-escape"}]},"qstring-single":{name:"string.quoted.single.js.jsx",begin:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.js.jsx"}},end:"(\\')|((?:[^\\\\\\n])$)",endCaptures:{"1":{name:"punctuation.definition.string.end.js.jsx"},"2":{name:"invalid.illegal.newline.js.jsx"}},patterns:[{include:"#string-character-escape"}]},"string-character-escape":{name:"constant.character.escape.js.jsx",match:"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)"},template:{patterns:[{include:"#template-call"},{contentName:"string.template.js.jsx",begin:"([_$[:alpha:]][_$[:alnum:]]*)?(`)",beginCaptures:{"1":{name:"entity.name.function.tagged-template.js.jsx"},"2":{name:"string.template.js.jsx punctuation.definition.string.template.begin.js.jsx"}},end:"`",endCaptures:{"0":{name:"string.template.js.jsx punctuation.definition.string.template.end.js.jsx"}},patterns:[{include:"#template-substitution-element"},{include:"#string-character-escape"}]}]},"template-call":{patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*)(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?`)",end:"(?=`)",patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))",end:"(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?`)",patterns:[{include:"#support-function-call-identifiers"},{name:"entity.name.function.tagged-template.js.jsx",match:"([_$[:alpha:]][_$[:alnum:]]*)"}]},{include:"#type-arguments"}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*)?\\s*(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)`)",beginCaptures:{"1":{name:"entity.name.function.tagged-template.js.jsx"}},end:"(?=`)",patterns:[{include:"#type-arguments"}]}]},"template-substitution-element":{name:"meta.template.expression.js.jsx",begin:"\\$\\{",beginCaptures:{"0":{name:"punctuation.definition.template-expression.begin.js.jsx"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.template-expression.end.js.jsx"}},patterns:[{include:"#expression"}],contentName:"meta.embedded.line.js.jsx"},"type-string":{patterns:[{include:"#qstring-single"},{include:"#qstring-double"},{include:"#template-type"}]},"template-type":{patterns:[{include:"#template-call"},{contentName:"string.template.js.jsx",begin:"([_$[:alpha:]][_$[:alnum:]]*)?(`)",beginCaptures:{"1":{name:"entity.name.function.tagged-template.js.jsx"},"2":{name:"string.template.js.jsx punctuation.definition.string.template.begin.js.jsx"}},end:"`",endCaptures:{"0":{name:"string.template.js.jsx punctuation.definition.string.template.end.js.jsx"}},patterns:[{include:"#template-type-substitution-element"},{include:"#string-character-escape"}]}]},"template-type-substitution-element":{name:"meta.template.expression.js.jsx",begin:"\\$\\{",beginCaptures:{"0":{name:"punctuation.definition.template-expression.begin.js.jsx"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.template-expression.end.js.jsx"}},patterns:[{include:"#type"}],contentName:"meta.embedded.line.js.jsx"},regex:{patterns:[{name:"string.regexp.js.jsx",begin:"(?|&&|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",beginCaptures:{"1":{name:"punctuation.definition.string.begin.js.jsx"}},end:"(/)([dgimsuy]*)",endCaptures:{"1":{name:"punctuation.definition.string.end.js.jsx"},"2":{name:"keyword.other.js.jsx"}},patterns:[{include:"#regexp"}]},{name:"string.regexp.js.jsx",begin:"((?",captures:{"0":{name:"keyword.other.back-reference.regexp"},"1":{name:"variable.other.regexp"}}},{name:"keyword.operator.quantifier.regexp",match:"[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??"},{name:"keyword.operator.or.regexp",match:"\\|"},{name:"meta.group.assertion.regexp",begin:"(\\()((\\?=)|(\\?!)|(\\?<=)|(\\?))?",beginCaptures:{"0":{name:"punctuation.definition.group.regexp"},"1":{name:"punctuation.definition.group.no-capture.regexp"},"2":{name:"variable.other.regexp"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.group.regexp"}},patterns:[{include:"#regexp"}]},{name:"constant.other.character-class.set.regexp",begin:"(\\[)(\\^)?",beginCaptures:{"1":{name:"punctuation.definition.character-class.regexp"},"2":{name:"keyword.operator.negation.regexp"}},end:"(\\])",endCaptures:{"1":{name:"punctuation.definition.character-class.regexp"}},patterns:[{name:"constant.other.character-class.range.regexp",match:"(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))",captures:{"1":{name:"constant.character.numeric.regexp"},"2":{name:"constant.character.control.regexp"},"3":{name:"constant.character.escape.backslash.regexp"},"4":{name:"constant.character.numeric.regexp"},"5":{name:"constant.character.control.regexp"},"6":{name:"constant.character.escape.backslash.regexp"}}},{include:"#regex-character-class"}]},{include:"#regex-character-class"}]},"regex-character-class":{patterns:[{name:"constant.other.character-class.regexp",match:"\\\\[wWsSdDtrnvf]|\\."},{name:"constant.character.numeric.regexp",match:"\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})"},{name:"constant.character.control.regexp",match:"\\\\c[A-Z]"},{name:"constant.character.escape.backslash.regexp",match:"\\\\."}]},comment:{patterns:[{name:"comment.block.documentation.js.jsx",begin:"/\\*\\*(?!/)",beginCaptures:{"0":{name:"punctuation.definition.comment.js.jsx"}},end:"\\*/",endCaptures:{"0":{name:"punctuation.definition.comment.js.jsx"}},patterns:[{include:"#docblock"}]},{name:"comment.block.js.jsx",begin:"(/\\*)(?:\\s*((@)internal)(?=\\s|(\\*/)))?",beginCaptures:{"1":{name:"punctuation.definition.comment.js.jsx"},"2":{name:"storage.type.internaldeclaration.js.jsx"},"3":{name:"punctuation.decorator.internaldeclaration.js.jsx"}},end:"\\*/",endCaptures:{"0":{name:"punctuation.definition.comment.js.jsx"}}},{begin:"(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.js.jsx"},"2":{name:"comment.line.double-slash.js.jsx"},"3":{name:"punctuation.definition.comment.js.jsx"},"4":{name:"storage.type.internaldeclaration.js.jsx"},"5":{name:"punctuation.decorator.internaldeclaration.js.jsx"}},end:"(?=$)",contentName:"comment.line.double-slash.js.jsx"}]},"single-line-comment-consuming-line-ending":{begin:"(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.js.jsx"},"2":{name:"comment.line.double-slash.js.jsx"},"3":{name:"punctuation.definition.comment.js.jsx"},"4":{name:"storage.type.internaldeclaration.js.jsx"},"5":{name:"punctuation.decorator.internaldeclaration.js.jsx"}},end:"(?=^)",contentName:"comment.line.double-slash.js.jsx"},directives:{name:"comment.line.triple-slash.directive.js.jsx",begin:"^(///)\\s*(?=<(reference|amd-dependency|amd-module)(\\s+(path|types|no-default-lib|lib|name|resolution-mode)\\s*=\\s*((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)))+\\s*/>\\s*$)",beginCaptures:{"1":{name:"punctuation.definition.comment.js.jsx"}},end:"(?=$)",patterns:[{name:"meta.tag.js.jsx",begin:"(<)(reference|amd-dependency|amd-module)",beginCaptures:{"1":{name:"punctuation.definition.tag.directive.js.jsx"},"2":{name:"entity.name.tag.directive.js.jsx"}},end:"/>",endCaptures:{"0":{name:"punctuation.definition.tag.directive.js.jsx"}},patterns:[{name:"entity.other.attribute-name.directive.js.jsx",match:"path|types|no-default-lib|lib|name|resolution-mode"},{name:"keyword.operator.assignment.js.jsx",match:"="},{include:"#string"}]}]},docblock:{patterns:[{match:"(?x)\n((@)(?:access|api))\n\\s+\n(private|protected|public)\n\\b",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"constant.language.access-type.jsdoc"}}},{match:"(?x)\n((@)author)\n\\s+\n(\n [^@\\s<>*/]\n (?:[^@<>*/]|\\*[^/])*\n)\n(?:\n \\s*\n (<)\n ([^>\\s]+)\n (>)\n)?",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"entity.name.type.instance.jsdoc"},"4":{name:"punctuation.definition.bracket.angle.begin.jsdoc"},"5":{name:"constant.other.email.link.underline.jsdoc"},"6":{name:"punctuation.definition.bracket.angle.end.jsdoc"}}},{match:"(?x)\n((@)borrows) \\s+\n((?:[^@\\s*/]|\\*[^/])+) # \n\\s+ (as) \\s+ # as\n((?:[^@\\s*/]|\\*[^/])+) # ",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"entity.name.type.instance.jsdoc"},"4":{name:"keyword.operator.control.jsdoc"},"5":{name:"entity.name.type.instance.jsdoc"}}},{name:"meta.example.jsdoc",begin:"((@)example)\\s+",end:"(?=@|\\*/)",beginCaptures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"}},patterns:[{match:"^\\s\\*\\s+"},{contentName:"constant.other.description.jsdoc",begin:"\\G(<)caption(>)",beginCaptures:{"0":{name:"entity.name.tag.inline.jsdoc"},"1":{name:"punctuation.definition.bracket.angle.begin.jsdoc"},"2":{name:"punctuation.definition.bracket.angle.end.jsdoc"}},end:"()|(?=\\*/)",endCaptures:{"0":{name:"entity.name.tag.inline.jsdoc"},"1":{name:"punctuation.definition.bracket.angle.begin.jsdoc"},"2":{name:"punctuation.definition.bracket.angle.end.jsdoc"}}},{match:"[^\\s@*](?:[^*]|\\*[^/])*",captures:{"0":{name:"source.embedded.js.jsx"}}}]},{match:"(?x) ((@)kind) \\s+ (class|constant|event|external|file|function|member|mixin|module|namespace|typedef) \\b",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"constant.language.symbol-type.jsdoc"}}},{match:"(?x)\n((@)see)\n\\s+\n(?:\n # URL\n (\n (?=https?://)\n (?:[^\\s*]|\\*[^/])+\n )\n |\n # JSDoc namepath\n (\n (?!\n # Avoid matching bare URIs (also acceptable as links)\n https?://\n |\n # Avoid matching {@inline tags}; we match those below\n (?:\\[[^\\[\\]]*\\])? # Possible description [preceding]{@tag}\n {@(?:link|linkcode|linkplain|tutorial)\\b\n )\n # Matched namepath\n (?:[^@\\s*/]|\\*[^/])+\n )\n)",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"variable.other.link.underline.jsdoc"},"4":{name:"entity.name.type.instance.jsdoc"}}},{match:"(?x)\n((@)template)\n\\s+\n# One or more valid identifiers\n(\n [A-Za-z_$] # First character: non-numeric word character\n [\\w$.\\[\\]]* # Rest of identifier\n (?: # Possible list of additional identifiers\n \\s* , \\s*\n [A-Za-z_$]\n [\\w$.\\[\\]]*\n )*\n)",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"variable.other.jsdoc"}}},{begin:"(?x)((@)template)\\s+(?={)",beginCaptures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{name:"variable.other.jsdoc",match:"([A-Za-z_$][\\w$.\\[\\]]*)"}]},{match:"(?x)\n(\n (@)\n (?:arg|argument|const|constant|member|namespace|param|var)\n)\n\\s+\n(\n [A-Za-z_$]\n [\\w$.\\[\\]]*\n)",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"variable.other.jsdoc"}}},{begin:"((@)typedef)\\s+(?={)",beginCaptures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{name:"entity.name.type.instance.jsdoc",match:"(?:[^@\\s*/]|\\*[^/])+"}]},{begin:"((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\s+(?={)",beginCaptures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{name:"variable.other.jsdoc",match:"([A-Za-z_$][\\w$.\\[\\]]*)"},{name:"variable.other.jsdoc",match:"(?x)\n(\\[)\\s*\n[\\w$]+\n(?:\n (?:\\[\\])? # Foo[ ].bar properties within an array\n \\. # Foo.Bar namespaced parameter\n [\\w$]+\n)*\n(?:\n \\s*\n (=) # [foo=bar] Default parameter value\n \\s*\n (\n # The inner regexes are to stop the match early at */ and to not stop at escaped quotes\n (?>\n \"(?:(?:\\*(?!/))|(?:\\\\(?!\"))|[^*\\\\])*?\" | # [foo=\"bar\"] Double-quoted\n '(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?' | # [foo='bar'] Single-quoted\n \\[ (?:(?:\\*(?!/))|[^*])*? \\] | # [foo=[1,2]] Array literal\n (?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])* # Everything else\n )*\n )\n)?\n\\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))",captures:{"1":{name:"punctuation.definition.optional-value.begin.bracket.square.jsdoc"},"2":{name:"keyword.operator.assignment.jsdoc"},"3":{name:"source.embedded.js.jsx"},"4":{name:"punctuation.definition.optional-value.end.bracket.square.jsdoc"},"5":{name:"invalid.illegal.syntax.jsdoc"}}}]},{begin:"(?x)\n(\n (@)\n (?:define|enum|exception|export|extends|lends|implements|modifies\n |namespace|private|protected|returns?|satisfies|suppress|this|throws|type\n |yields?)\n)\n\\s+(?={)",beginCaptures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"}]},{match:"(?x)\n(\n (@)\n (?:alias|augments|callback|constructs|emits|event|fires|exports?\n |extends|external|function|func|host|lends|listens|interface|memberof!?\n |method|module|mixes|mixin|name|requires|see|this|typedef|uses)\n)\n\\s+\n(\n (?:\n [^{}@\\s*] | \\*[^/]\n )+\n)",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"entity.name.type.instance.jsdoc"}}},{contentName:"variable.other.jsdoc",begin:"((@)(?:default(?:value)?|license|version))\\s+(([''\"]))",beginCaptures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"variable.other.jsdoc"},"4":{name:"punctuation.definition.string.begin.jsdoc"}},end:"(\\3)|(?=$|\\*/)",endCaptures:{"0":{name:"variable.other.jsdoc"},"1":{name:"punctuation.definition.string.end.jsdoc"}}},{match:"((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"variable.other.jsdoc"}}},{name:"storage.type.class.jsdoc",match:"(?x) (@) (?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles |callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright |default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception |exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func |function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc |inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method |mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects |override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected |public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary |suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation |version|virtual|writeOnce|yields?) \\b",captures:{"1":{name:"punctuation.definition.block.tag.jsdoc"}}},{include:"#inline-tags"},{match:"((@)(?:[_$[:alpha:]][_$[:alnum:]]*))(?=\\s+)",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"}}}]},brackets:{patterns:[{begin:"{",end:"}|(?=\\*/)",patterns:[{include:"#brackets"}]},{begin:"\\[",end:"\\]|(?=\\*/)",patterns:[{include:"#brackets"}]}]},"inline-tags":{patterns:[{name:"constant.other.description.jsdoc",match:"(\\[)[^\\]]+(\\])(?={@(?:link|linkcode|linkplain|tutorial))",captures:{"1":{name:"punctuation.definition.bracket.square.begin.jsdoc"},"2":{name:"punctuation.definition.bracket.square.end.jsdoc"}}},{name:"entity.name.type.instance.jsdoc",begin:"({)((@)(?:link(?:code|plain)?|tutorial))\\s*",beginCaptures:{"1":{name:"punctuation.definition.bracket.curly.begin.jsdoc"},"2":{name:"storage.type.class.jsdoc"},"3":{name:"punctuation.definition.inline.tag.jsdoc"}},end:"}|(?=\\*/)",endCaptures:{"0":{name:"punctuation.definition.bracket.curly.end.jsdoc"}},patterns:[{match:"\\G((?=https?://)(?:[^|}\\s*]|\\*[/])+)(\\|)?",captures:{"1":{name:"variable.other.link.underline.jsdoc"},"2":{name:"punctuation.separator.pipe.jsdoc"}}},{match:"\\G((?:[^{}@\\s|*]|\\*[^/])+)(\\|)?",captures:{"1":{name:"variable.other.description.jsdoc"},"2":{name:"punctuation.separator.pipe.jsdoc"}}}]}]},jsdoctype:{patterns:[{contentName:"entity.name.type.instance.jsdoc",begin:"\\G({)",beginCaptures:{"0":{name:"entity.name.type.instance.jsdoc"},"1":{name:"punctuation.definition.bracket.curly.begin.jsdoc"}},end:"((}))\\s*|(?=\\*/)",endCaptures:{"1":{name:"entity.name.type.instance.jsdoc"},"2":{name:"punctuation.definition.bracket.curly.end.jsdoc"}},patterns:[{include:"#brackets"}]}]},jsx:{patterns:[{include:"#jsx-tag-without-attributes-in-expression"},{include:"#jsx-tag-in-expression"}]},"jsx-tag-without-attributes-in-expression":{begin:"(?:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s*(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))",end:"(?!(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))",patterns:[{include:"#jsx-tag-without-attributes"}]},"jsx-tag-without-attributes":{name:"meta.tag.without-attributes.js.jsx",begin:"(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?)",end:"()",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.js.jsx"},"2":{name:"entity.name.tag.namespace.js.jsx"},"3":{name:"punctuation.separator.namespace.js.jsx"},"4":{name:"entity.name.tag.js.jsx"},"5":{name:"support.class.component.js.jsx"},"6":{name:"punctuation.definition.tag.end.js.jsx"}},endCaptures:{"1":{name:"punctuation.definition.tag.begin.js.jsx"},"2":{name:"entity.name.tag.namespace.js.jsx"},"3":{name:"punctuation.separator.namespace.js.jsx"},"4":{name:"entity.name.tag.js.jsx"},"5":{name:"support.class.component.js.jsx"},"6":{name:"punctuation.definition.tag.end.js.jsx"}},contentName:"meta.jsx.children.js.jsx",patterns:[{include:"#jsx-children"}]},"jsx-tag-in-expression":{begin:"(?x)\n (?:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s*\n (?!<\\s*[_$[:alpha:]][_$[:alnum:]]*((\\s+extends\\s+[^=>])|,)) # look ahead is not type parameter of arrow\n (?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))",end:"(?!(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))",patterns:[{include:"#jsx-tag"}]},"jsx-tag":{name:"meta.tag.js.jsx",begin:"(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))",end:"(/>)|(?:())",endCaptures:{"1":{name:"punctuation.definition.tag.end.js.jsx"},"2":{name:"punctuation.definition.tag.begin.js.jsx"},"3":{name:"entity.name.tag.namespace.js.jsx"},"4":{name:"punctuation.separator.namespace.js.jsx"},"5":{name:"entity.name.tag.js.jsx"},"6":{name:"support.class.component.js.jsx"},"7":{name:"punctuation.definition.tag.end.js.jsx"}},patterns:[{begin:"(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?)",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.js.jsx"},"2":{name:"entity.name.tag.namespace.js.jsx"},"3":{name:"punctuation.separator.namespace.js.jsx"},"4":{name:"entity.name.tag.js.jsx"},"5":{name:"support.class.component.js.jsx"}},end:"(?=[/]?>)",patterns:[{include:"#comment"},{include:"#type-arguments"},{include:"#jsx-tag-attributes"}]},{begin:"(>)",beginCaptures:{"1":{name:"punctuation.definition.tag.end.js.jsx"}},end:"(?=)",patterns:[{include:"#comment"},{include:"#jsx-tag-attribute-name"},{include:"#jsx-tag-attribute-assignment"},{include:"#jsx-string-double-quoted"},{include:"#jsx-string-single-quoted"},{include:"#jsx-evaluated-code"},{include:"#jsx-tag-attributes-illegal"}]},"jsx-tag-attribute-name":{match:"(?x)\n \\s*\n (?:([_$[:alpha:]][-_$[:alnum:].]*)(:))?\n ([_$[:alpha:]][-_$[:alnum:]]*)\n (?=\\s|=|/?>|/\\*|//)",captures:{"1":{name:"entity.other.attribute-name.namespace.js.jsx"},"2":{name:"punctuation.separator.namespace.js.jsx"},"3":{name:"entity.other.attribute-name.js.jsx"}}},"jsx-tag-attribute-assignment":{name:"keyword.operator.assignment.js.jsx",match:"=(?=\\s*(?:'|\"|{|/\\*|//|\\n))"},"jsx-string-double-quoted":{name:"string.quoted.double.js.jsx",begin:"\"",end:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.js.jsx"}},endCaptures:{"0":{name:"punctuation.definition.string.end.js.jsx"}},patterns:[{include:"#jsx-entities"}]},"jsx-string-single-quoted":{name:"string.quoted.single.js.jsx",begin:"'",end:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.js.jsx"}},endCaptures:{"0":{name:"punctuation.definition.string.end.js.jsx"}},patterns:[{include:"#jsx-entities"}]},"jsx-tag-attributes-illegal":{name:"invalid.illegal.attribute.js.jsx",match:"\\S+"}}}; + +export { jsx_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/julia.tmLanguage-40aad3fa.mjs b/docs/shiki/dist/languages/julia.tmLanguage-40aad3fa.mjs new file mode 100644 index 00000000..1ef59479 --- /dev/null +++ b/docs/shiki/dist/languages/julia.tmLanguage-40aad3fa.mjs @@ -0,0 +1,3 @@ +var julia_tmLanguage = {information_for_contributors:["This file has been converted from https://github.com/JuliaEditorSupport/atom-language-julia/blob/master/grammars/julia_vscode.json","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."],version:"https://github.com/JuliaEditorSupport/atom-language-julia/commit/ccc0277c9ee9af34a0b50e5fa27a6f5191601b8c",name:"julia",scopeName:"source.julia",comment:"This grammar is used by Atom (Oniguruma), GitHub (PCRE), and VSCode (Oniguruma),\nso all regexps must be compatible with both engines.\n\nSpecs:\n- https://github.com/kkos/oniguruma/blob/master/doc/RE\n- https://www.pcre.org/current/doc/html/",patterns:[{include:"#operator"},{include:"#array"},{include:"#string"},{include:"#parentheses"},{include:"#bracket"},{include:"#function_decl"},{include:"#function_call"},{include:"#keyword"},{include:"#number"},{include:"#comment"},{include:"#type_decl"},{include:"#symbol"}],repository:{array:{patterns:[{begin:"\\[",beginCaptures:{"0":{name:"meta.bracket.julia"}},end:"(\\])((?:\\.)?'*)",endCaptures:{"1":{name:"meta.bracket.julia"},"2":{name:"keyword.operator.transpose.julia"}},name:"meta.array.julia",patterns:[{match:"\\bbegin\\b",name:"constant.numeric.julia"},{match:"\\bend\\b",name:"constant.numeric.julia"},{match:"\\bfor\\b",name:"keyword.control.julia"},{include:"$self"}]}]},parentheses:{patterns:[{begin:"\\(",beginCaptures:{"0":{name:"meta.bracket.julia"}},end:"(\\))((?:\\.)?'*)",endCaptures:{"1":{name:"meta.bracket.julia"},"2":{name:"keyword.operator.transpose.julia"}},patterns:[{include:"$self"}]}]},bracket:{patterns:[{match:"(?:\\(|\\)|\\[|\\]|\\{|\\}|,|;)(?!('|(?:\\.'))*\\.?')",name:"meta.bracket.julia"}]},comment_tags:{patterns:[{match:"\\bTODO\\b",name:"keyword.other.comment-annotation.julia"},{match:"\\bFIXME\\b",name:"keyword.other.comment-annotation.julia"},{match:"\\bCHANGED\\b",name:"keyword.other.comment-annotation.julia"},{match:"\\bXXX\\b",name:"keyword.other.comment-annotation.julia"}]},comment:{patterns:[{include:"#comment_block"},{begin:"#",beginCaptures:{"0":{name:"punctuation.definition.comment.julia"}},end:"\\n",name:"comment.line.number-sign.julia",patterns:[{include:"#comment_tags"}]}]},comment_block:{patterns:[{begin:"#=",beginCaptures:{"0":{name:"punctuation.definition.comment.begin.julia"}},end:"=#",endCaptures:{"0":{name:"punctuation.definition.comment.end.julia"}},name:"comment.block.number-sign-equals.julia",patterns:[{include:"#comment_tags"},{include:"#comment_block"}]}]},function_call:{patterns:[{begin:"((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)({(?:[^{}]|{(?:[^{}]|{[^{}]*})*})*})?\\.?(\\()",beginCaptures:{"1":{name:"support.function.julia"},"2":{name:"support.type.julia"},"3":{name:"meta.bracket.julia"}},end:"\\)(('|(\\.'))*\\.?')?",endCaptures:{"0":{name:"meta.bracket.julia"},"1":{name:"keyword.operator.transposed-func.julia"}},patterns:[{match:"\\bfor\\b",name:"keyword.control.julia"},{include:"$self"}]}]},function_decl:{patterns:[{captures:{"1":{name:"entity.name.function.julia"},"2":{name:"support.type.julia"}},match:"((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)({(?:[^{}]|{(?:[^{}]|{[^{}]*})*})*})?(?=\\([^#]*\\)(::[^\\s]+)?(\\s*\\bwhere\\b\\s+.+?)?\\s*?=(?![=>]))",comment:"first group is function name\nSecond group is type parameters (e.g. {T<:Number, S})\nThen open parens\nThen a lookahead ensures that we are followed by:\n - anything (function argumnets)\n - 0 or more spaces\n - Finally an equal sign\nNegative lookahead ensures we don't have another equal sign (not `==`)"},{captures:{"1":{name:"keyword.other.julia"},"2":{name:"keyword.operator.dots.julia"},"3":{name:"entity.name.function.julia"},"4":{name:"support.type.julia"}},match:"\\b(function|macro)(?:\\s+(?:(?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*(\\.))?((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)({(?:[^{}]|{(?:[^{}]|{[^{}]*})*})*})?|\\s*)(?=\\()",comment:"similar regex to previous, but with keyword not 1-line syntax"}]},keyword:{patterns:[{match:"\\b(?|<-|-->|=>)",name:"keyword.operator.arrow.julia"},{match:"(?::=|\\+=|-=|\\*=|//=|/=|\\.//=|\\./=|\\.\\*=|\\\\=|\\.\\\\=|\\^=|\\.\\^=|%=|\\.%=|÷=|\\.÷=|\\|=|&=|\\.&=|⊻=|\\.⊻=|\\$=|<<=|>>=|>>>=|=(?!=))",name:"keyword.operator.update.julia"},{match:"(?:<<|>>>|>>|\\.>>>|\\.>>|\\.<<)",name:"keyword.operator.shift.julia"},{match:"(?:\\s*(::|>:|<:)\\s*((?:(?:Union)?\\([^)]*\\)|[[:alpha:]_$∇][[:word:]⁺-ₜ!′\\.]*(?:(?:{(?:[^{}]|{(?:[^{}]|{[^{}]*})*})*})|(?:\".+?(?=|\\.>|\\.<=|\\.<|\\.≤|\\.≥|==|\\.!=|\\.=|\\.!|<:|>:|:>|(?)>=|(?|<|≥|≤)",name:"keyword.operator.relation.julia"},{match:"(?<=\\s)(?:\\?)(?=\\s)",name:"keyword.operator.ternary.julia"},{match:"(?<=\\s)(?:\\:)(?=\\s)",name:"keyword.operator.ternary.julia"},{match:"(?:\\|\\||&&|(?)",name:"keyword.operator.applies.julia"},{match:"(?:\\||\\.\\||\\&|\\.\\&|~|\\.~|⊻|\\.⊻)",name:"keyword.operator.bitwise.julia"},{match:"(?:\\+\\+|--|\\+|\\.\\+|-|\\.\\-|\\*|\\.\\*|//(?!=)|\\.//(?!=)|/|\\./|%|\\.%|\\\\|\\.\\\\|\\^|\\.\\^|÷|\\.÷|⋅|\\.⋅|∩|\\.∩|∪|\\.∪|×|√|∛)",name:"keyword.operator.arithmetic.julia"},{match:"(?:∘)",name:"keyword.operator.compose.julia"},{match:"(?:::|(?<=\\s)isa(?=\\s))",name:"keyword.operator.isa.julia"},{match:"(?:(?<=\\s)in(?=\\s))",name:"keyword.operator.relation.in.julia"},{match:"(?:\\.(?=(?:@|_|\\p{L}))|\\.\\.+)",name:"keyword.operator.dots.julia"},{match:"(?:\\$)(?=.+)",name:"keyword.operator.interpolation.julia"},{captures:{"2":{name:"keyword.operator.transposed-variable.julia"}},match:"((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)(('|(\\.'))*\\.?')"},{captures:{"1":{name:"bracket.end.julia"},"2":{name:"keyword.operator.transposed-matrix.julia"}},match:"(\\])((?:'|(?:\\.'))*\\.?')"},{captures:{"1":{name:"bracket.end.julia"},"2":{name:"keyword.operator.transposed-parens.julia"}},match:"(\\))((?:'|(?:\\.'))*\\.?')"}]},string:{patterns:[{begin:"(?:(@doc)\\s((?:doc)?\"\"\")|(doc\"\"\"))",beginCaptures:{"1":{name:"support.function.macro.julia"},"2":{name:"punctuation.definition.string.begin.julia"}},end:"(\"\"\") ?(->)?",endCaptures:{"1":{name:"punctuation.definition.string.end.julia"},"2":{name:"keyword.operator.arrow.julia"}},name:"string.docstring.julia",patterns:[{include:"#string_escaped_char"},{include:"#string_dollar_sign_interpolate"}]},{begin:"(i?cxx)(\"\"\")",beginCaptures:{"1":{name:"support.function.macro.julia"},"2":{name:"punctuation.definition.string.begin.julia"}},end:"\"\"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.julia"}},name:"embed.cxx.julia",contentName:"meta.embedded.inline.cpp",patterns:[{include:"source.cpp#root_context"},{include:"#string_dollar_sign_interpolate"}]},{begin:"(py)(\"\"\")",beginCaptures:{"1":{name:"support.function.macro.julia"},"2":{name:"punctuation.definition.string.begin.julia"}},end:"([\\s\\w]*)(\"\"\")",endCaptures:{"2":{name:"punctuation.definition.string.end.julia"}},name:"embed.python.julia",contentName:"meta.embedded.inline.python",patterns:[{include:"source.python"},{include:"#string_dollar_sign_interpolate"}]},{begin:"(js)(\"\"\")",beginCaptures:{"1":{name:"support.function.macro.julia"},"2":{name:"punctuation.definition.string.begin.julia"}},end:"\"\"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.julia"}},name:"embed.js.julia",contentName:"meta.embedded.inline.javascript",patterns:[{include:"source.js"},{include:"#string_dollar_sign_interpolate"}]},{begin:"(R)(\"\"\")",beginCaptures:{"1":{name:"support.function.macro.julia"},"2":{name:"punctuation.definition.string.begin.julia"}},end:"\"\"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.julia"}},name:"embed.R.julia",contentName:"meta.embedded.inline.r",patterns:[{include:"source.r"},{include:"#string_dollar_sign_interpolate"}]},{begin:"(raw)(\"\"\")",beginCaptures:{"1":{name:"support.function.macro.julia"},"2":{name:"punctuation.definition.string.begin.julia"}},end:"\"\"\"",name:"string.quoted.other.julia",endCaptures:{"0":{name:"punctuation.definition.string.end.julia"}}},{begin:"(raw)(\")",beginCaptures:{"1":{name:"support.function.macro.julia"},"2":{name:"punctuation.definition.string.begin.julia"}},end:"\"",name:"string.quoted.other.julia",endCaptures:{"0":{name:"punctuation.definition.string.end.julia"}}},{begin:"(sql)(\"\"\")",beginCaptures:{"1":{name:"support.function.macro.julia"},"2":{name:"punctuation.definition.string.begin.julia"}},end:"\"\"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.julia"}},name:"embed.sql.julia",contentName:"meta.embedded.inline.sql",patterns:[{include:"source.sql"},{include:"#string_dollar_sign_interpolate"}]},{begin:"var\"\"\"",end:"\"\"\"",name:"constant.other.symbol.julia"},{begin:"var\"",end:"\"",name:"constant.other.symbol.julia"},{begin:"^\\s?(doc)?(\"\"\")\\s?$",beginCaptures:{"1":{name:"support.function.macro.julia"},"2":{name:"punctuation.definition.string.begin.julia"}},end:"(\"\"\")",endCaptures:{"1":{name:"punctuation.definition.string.end.julia"}},name:"string.docstring.julia",comment:"This only matches docstrings that start and end with triple quotes on\ntheir own line in the void",patterns:[{include:"#string_escaped_char"},{include:"#string_dollar_sign_interpolate"}]},{begin:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.julia"}},end:"'(?!')",endCaptures:{"0":{name:"punctuation.definition.string.end.julia"}},name:"string.quoted.single.julia",patterns:[{include:"#string_escaped_char"}]},{begin:"\"\"\"",beginCaptures:{"0":{name:"punctuation.definition.string.multiline.begin.julia"}},end:"\"\"\"",endCaptures:{"0":{name:"punctuation.definition.string.multiline.end.julia"}},name:"string.quoted.triple.double.julia",comment:"multi-line string with triple double quotes",patterns:[{include:"#string_escaped_char"},{include:"#string_dollar_sign_interpolate"}]},{name:"string.quoted.double.julia",begin:"\"(?!\"\")",beginCaptures:{"0":{name:"punctuation.definition.string.begin.julia"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.julia"}},comment:"String with single pair of double quotes. Regex matches isolated double quote",patterns:[{include:"#string_escaped_char"},{include:"#string_dollar_sign_interpolate"}]},{begin:"r\"\"\"",beginCaptures:{"0":{name:"punctuation.definition.string.regexp.begin.julia"}},end:"(\"\"\")([imsx]{0,4})?",endCaptures:{"1":{name:"punctuation.definition.string.regexp.end.julia"},"2":{comment:"I took this scope name from python regex grammar",name:"keyword.other.option-toggle.regexp.julia"}},name:"string.regexp.julia",patterns:[{include:"#string_escaped_char"}]},{begin:"r\"",beginCaptures:{"0":{name:"punctuation.definition.string.regexp.begin.julia"}},end:"(\")([imsx]{0,4})?",endCaptures:{"1":{name:"punctuation.definition.string.regexp.end.julia"},"2":{comment:"I took this scope name from python regex grammar",name:"keyword.other.option-toggle.regexp.julia"}},name:"string.regexp.julia",patterns:[{include:"#string_escaped_char"}]},{begin:"(?!:_)(?:struct|mutable\\s+struct|abstract\\s+type|primitive\\s+type)\\s+((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)(\\s*(<:)\\s*(?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*(?:{.*})?)?",name:"meta.type.julia"}]}}}; + +export { julia_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/kotlin.tmLanguage-5cfeec6d.mjs b/docs/shiki/dist/languages/kotlin.tmLanguage-5cfeec6d.mjs new file mode 100644 index 00000000..7bafc88f --- /dev/null +++ b/docs/shiki/dist/languages/kotlin.tmLanguage-5cfeec6d.mjs @@ -0,0 +1,3 @@ +var kotlin_tmLanguage = {$schema:"https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",name:"kotlin",scopeName:"source.kotlin",patterns:[{include:"#import"},{include:"#package"},{include:"#code"}],fileTypes:["kt","kts"],repository:{"import":{begin:"\\b(import)\\b\\s*",beginCaptures:{"1":{name:"storage.type.import.kotlin"}},end:";|$",name:"meta.import.kotlin",contentName:"entity.name.package.kotlin",patterns:[{include:"#comments"},{include:"#hard-keywords"},{match:"\\*",name:"variable.language.wildcard.kotlin"}]},"package":{begin:"\\b(package)\\b\\s*",beginCaptures:{"1":{name:"storage.type.package.kotlin"}},end:";|$",name:"meta.package.kotlin",contentName:"entity.name.package.kotlin",patterns:[{include:"#comments"}]},code:{patterns:[{include:"#comments"},{include:"#keywords"},{include:"#annotation-simple"},{include:"#annotation-site-list"},{include:"#annotation-site"},{include:"#class-declaration"},{include:"#object-declaration"},{include:"#type-alias"},{include:"#function-declaration"},{include:"#variable-declaration"},{include:"#type-constraint"},{include:"#type-annotation"},{include:"#function-call"},{include:"#method-reference"},{include:"#key"},{include:"#string"},{include:"#string-empty"},{include:"#string-multiline"},{include:"#character"},{include:"#lambda-arrow"},{include:"#operators"},{include:"#self-reference"},{include:"#decimal-literal"},{include:"#hex-literal"},{include:"#binary-literal"},{include:"#boolean-literal"},{include:"#null-literal"}]},comments:{patterns:[{include:"#comment-line"},{include:"#comment-block"},{include:"#comment-javadoc"}]},"comment-line":{begin:"//",end:"$",name:"comment.line.double-slash.kotlin"},"comment-block":{begin:"/\\*(?!\\*)",end:"\\*/",name:"comment.block.kotlin"},"comment-javadoc":{patterns:[{begin:"/\\*\\*",end:"\\*/",name:"comment.block.javadoc.kotlin",patterns:[{match:"@(author|deprecated|return|see|serial|since|version)\\b",name:"keyword.other.documentation.javadoc.kotlin"},{match:"(@param)\\s+(\\S+)",captures:{"1":{name:"keyword.other.documentation.javadoc.kotlin"},"2":{name:"variable.parameter.kotlin"}}},{match:"(@(?:exception|throws))\\s+(\\S+)",captures:{"1":{name:"keyword.other.documentation.javadoc.kotlin"},"2":{name:"entity.name.type.class.kotlin"}}},{match:"{(@link)\\s+(\\S+)?#([\\w$]+\\s*\\([^\\(\\)]*\\)).*}",captures:{"1":{name:"keyword.other.documentation.javadoc.kotlin"},"2":{name:"entity.name.type.class.kotlin"},"3":{name:"variable.parameter.kotlin"}}}]}]},keywords:{patterns:[{include:"#prefix-modifiers"},{include:"#postfix-modifiers"},{include:"#soft-keywords"},{include:"#hard-keywords"},{include:"#control-keywords"}]},"prefix-modifiers":{match:"\\b(abstract|final|enum|open|annotation|sealed|data|override|final|lateinit|private|protected|public|internal|inner|companion|noinline|crossinline|vararg|reified|tailrec|operator|infix|inline|external|const|suspend|value)\\b",name:"storage.modifier.other.kotlin"},"postfix-modifiers":{match:"\\b(where|by|get|set)\\b",name:"storage.modifier.other.kotlin"},"soft-keywords":{match:"\\b(catch|finally|field)\\b",name:"keyword.soft.kotlin"},"hard-keywords":{match:"\\b(as|typeof|is|in)\\b",name:"keyword.hard.kotlin"},"control-keywords":{match:"\\b(if|else|while|do|when|try|throw|break|continue|return|for)\\b",name:"keyword.control.kotlin"},"annotation-simple":{match:"(?<([^<>]|\\g)+>)?",captures:{"1":{name:"storage.type.class.kotlin"},"2":{name:"entity.name.type.class.kotlin"},"3":{patterns:[{include:"#type-parameter"}]}}},"object-declaration":{match:"\\b(object)\\s+(\\b\\w+\\b|`[^`]+`)",captures:{"1":{name:"storage.type.object.kotlin"},"2":{name:"entity.name.type.object.kotlin"}}},"type-alias":{match:"\\b(typealias)\\s+(\\b\\w+\\b|`[^`]+`)\\s*(?<([^<>]|\\g)+>)?",captures:{"1":{name:"storage.type.alias.kotlin"},"2":{name:"entity.name.type.kotlin"},"3":{patterns:[{include:"#type-parameter"}]}}},"function-declaration":{match:"\\b(fun)\\b\\s*(?<([^<>]|\\g)+>)?\\s*(?:(\\w+)\\.)?(\\b\\w+\\b|`[^`]+`)",captures:{"1":{name:"storage.type.function.kotlin"},"2":{patterns:[{include:"#type-parameter"}]},"4":{name:"entity.name.type.class.extension.kotlin"},"5":{name:"entity.name.function.declaration.kotlin"}}},"variable-declaration":{match:"\\b(val|var)\\b\\s*(?<([^<>]|\\g)+>)?",captures:{"1":{name:"storage.type.variable.kotlin"},"2":{patterns:[{include:"#type-parameter"}]}}},"type-parameter":{patterns:[{match:"\\b\\w+\\b",name:"entity.name.type.kotlin"},{match:"\\b(in|out)\\b",name:"storage.modifier.kotlin"}]},"type-annotation":{match:"(?|(?[<(]([^<>()\"']|\\g)+[)>]))+",captures:{"0":{patterns:[{include:"#type-parameter"}]}}},"function-call":{match:"\\??\\.?(\\b\\w+\\b|`[^`]+`)\\s*(?<([^<>]|\\g)+>)?\\s*(?=[({])",captures:{"1":{name:"entity.name.function.call.kotlin"},"2":{patterns:[{include:"#type-parameter"}]}}},"method-reference":{match:"\\??::(\\b\\w+\\b|`[^`]+`)",captures:{"1":{name:"entity.name.function.reference.kotlin"}}},key:{match:"\\b(\\w=)\\s*(=)",captures:{"1":{name:"variable.parameter.kotlin"},"2":{name:"keyword.operator.assignment.kotlin"}}},"string-empty":{match:"(?",name:"storage.type.function.arrow.kotlin"},operators:{patterns:[{match:"(===?|\\!==?|<=|>=|<|>)",name:"keyword.operator.comparison.kotlin"},{match:"([+*/%-]=)",name:"keyword.operator.assignment.arithmetic.kotlin"},{match:"(=)",name:"keyword.operator.assignment.kotlin"},{match:"([+*/%-])",name:"keyword.operator.arithmetic.kotlin"},{match:"(!|&&|\\|\\|)",name:"keyword.operator.logical.kotlin"},{match:"(--|\\+\\+)",name:"keyword.operator.increment-decrement.kotlin"},{match:"(\\.\\.)",name:"keyword.operator.range.kotlin"}]},"self-reference":{match:"\\b(this|super)(@\\w+)?\\b",name:"variable.language.this.kotlin"}}}; + +export { kotlin_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/kusto.tmLanguage-e4114bbf.mjs b/docs/shiki/dist/languages/kusto.tmLanguage-e4114bbf.mjs new file mode 100644 index 00000000..aff8d897 --- /dev/null +++ b/docs/shiki/dist/languages/kusto.tmLanguage-e4114bbf.mjs @@ -0,0 +1,3 @@ +var kusto_tmLanguage = {$schema:"https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",scopeName:"source.kusto",fileTypes:["csl","kusto","kql"],name:"kusto",patterns:[{match:"\\b(by|from|of|to|step|with)\\b",name:"keyword.other.operator.kusto",comment:"Tabular operators: common helper operators"},{match:"\\b(let|set|alias|declare|pattern|query_parameters|restrict|access|set)\\b",name:"keyword.control.kusto",comment:"Query statements: https://docs.microsoft.com/en-us/azure/kusto/query/statements"},{match:"\\b(and|or|has_all|has_any|matches|regex)\\b",name:"keyword.other.operator.kusto",comment:"https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/datatypes-string-operators"},{match:"\\b(cluster|database)(?:\\s*\\(\\s*(.+?)\\s*\\))?(?!\\w)",captures:{"1":{name:"support.function.kusto"},"2":{patterns:[{include:"#Strings"}]}},name:"meta.special.database.kusto",comment:"https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/clusterfunction"},{match:"\\b(external_table|materialized_view|materialize|table|toscalar)\\b",name:"support.function.kusto",comment:"Special functions: https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/tablefunction"},{match:"(?]*([>\\]]))?(?:(\\[)[^\\]]*(\\]))?(\\{)",captures:{"1":{name:"keyword.control.cite.latex"},"2":{name:"punctuation.definition.keyword.latex"},"3":{patterns:[{include:"#autocites-arg"}]},"4":{name:"punctuation.definition.arguments.optional.begin.latex"},"5":{name:"punctuation.definition.arguments.optional.end.latex"},"6":{name:"punctuation.definition.arguments.optional.begin.latex"},"7":{name:"punctuation.definition.arguments.optional.end.latex"},"8":{name:"punctuation.definition.arguments.begin.latex"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.arguments.end.latex"}},name:"meta.citation.latex",patterns:[{captures:{"1":{name:"comment.line.percentage.tex"},"2":{name:"punctuation.definition.comment.tex"}},match:"((%).*)$"},{match:"[\\p{Alphabetic}\\p{Number}:.-]+",name:"constant.other.reference.citation.latex"}]},{begin:"((\\\\)bibentry)(\\{)",captures:{"1":{name:"keyword.control.cite.latex"},"2":{name:"punctuation.definition.keyword.latex"},"3":{name:"punctuation.definition.arguments.begin.latex"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.arguments.end.latex"}},name:"meta.citation.latex",patterns:[{match:"[\\p{Alphabetic}\\p{Number}:.]+",name:"constant.other.reference.citation.latex"}]},{begin:"((\\\\)(?:\\w*[rR]ef\\*?))(\\{)",beginCaptures:{"1":{name:"keyword.control.ref.latex"},"2":{name:"punctuation.definition.keyword.latex"},"3":{name:"punctuation.definition.arguments.begin.latex"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.arguments.end.latex"}},name:"meta.reference.label.latex",patterns:[{match:"[\\p{Alphabetic}\\p{Number}\\.,:/*!^_-]",name:"constant.other.reference.label.latex"}]},{include:"#definition-label"},{begin:"((\\\\)(?:verb|Verb|spverb)\\*?)\\s*((\\\\)scantokens)(\\{)",beginCaptures:{"1":{name:"support.function.verb.latex"},"2":{name:"punctuation.definition.function.latex"},"3":{name:"support.function.verb.latex"},"4":{name:"punctuation.definition.verb.latex"},"5":{name:"punctuation.definition.begin.latex"}},contentName:"markup.raw.verb.latex",end:"(\\})",endCaptures:{"1":{name:"punctuation.definition.end.latex"}},name:"meta.function.verb.latex",patterns:[{include:"$self"}]},{captures:{"1":{name:"support.function.verb.latex"},"2":{name:"punctuation.definition.function.latex"},"3":{name:"punctuation.definition.verb.latex"},"4":{name:"markup.raw.verb.latex"},"5":{name:"punctuation.definition.verb.latex"}},match:"((\\\\)(?:verb|Verb|spverb)\\*?)\\s*((?<=\\s)\\S|[^a-zA-Z])(.*?)(\\3|$)",name:"meta.function.verb.latex"},{captures:{"1":{name:"support.function.verb.latex"},"2":{name:"punctuation.definition.function.latex"},"3":{patterns:[{include:"#optional-arg"}]},"4":{name:"punctuation.definition.arguments.begin.latex"},"5":{name:"punctuation.definition.arguments.end.latex"},"6":{name:"punctuation.definition.verb.latex"},"7":{name:"markup.raw.verb.latex"},"8":{name:"punctuation.definition.verb.latex"},"9":{name:"punctuation.definition.verb.latex"},"10":{name:"markup.raw.verb.latex"},"11":{name:"punctuation.definition.verb.latex"}},match:"((\\\\)(?:mint|mintinline))((?:\\[[^\\[]*?\\])?)(\\{)[a-zA-Z]*(\\})(?:(?:([^a-zA-Z\\{])(.*?)(\\6))|(?:(\\{)(.*?)(\\})))",name:"meta.function.verb.latex"},{captures:{"1":{name:"support.function.verb.latex"},"2":{name:"punctuation.definition.function.latex"},"3":{patterns:[{include:"#optional-arg"}]},"4":{name:"punctuation.definition.verb.latex"},"5":{name:"markup.raw.verb.latex"},"6":{name:"punctuation.definition.verb.latex"},"7":{name:"punctuation.definition.verb.latex"},"8":{name:"markup.raw.verb.latex"},"9":{name:"punctuation.definition.verb.latex"}},match:"((\\\\)[a-z]+inline)((?:\\[[^\\[]*?\\])?)(?:(?:([^a-zA-Z\\{])(.*?)(\\4))|(?:(\\{)(.*?)(\\})))",name:"meta.function.verb.latex"},{captures:{"1":{name:"support.function.verb.latex"},"2":{name:"punctuation.definition.function.latex"},"3":{patterns:[{include:"#optional-arg"}]},"4":{name:"punctuation.definition.verb.latex"},"5":{name:"source.python",patterns:[{include:"source.python"}]},"6":{name:"punctuation.definition.verb.latex"},"7":{name:"punctuation.definition.verb.latex"},"8":{name:"source.python",patterns:[{include:"source.python"}]},"9":{name:"punctuation.definition.verb.latex"}},match:"((\\\\)(?:(?:py|pycon|pylab|pylabcon|sympy|sympycon)[cv]?|pyq|pycq|pyif))((?:\\[[^\\[]*?\\])?)(?:(?:([^a-zA-Z\\{])(.*?)(\\4))|(?:(\\{)(.*?)(\\})))",name:"meta.function.verb.latex"},{captures:{"1":{name:"support.function.verb.latex"},"2":{name:"punctuation.definition.function.latex"},"3":{patterns:[{include:"#optional-arg"}]},"4":{name:"punctuation.definition.verb.latex"},"5":{name:"source.julia",patterns:[{include:"source.julia"}]},"6":{name:"punctuation.definition.verb.latex"},"7":{name:"punctuation.definition.verb.latex"},"8":{name:"source.julia",patterns:[{include:"source.julia"}]},"9":{name:"punctuation.definition.verb.latex"}},match:"((\\\\)(?:jl|julia)[cv]?)((?:\\[[^\\[]*?\\])?)(?:(?:([^a-zA-Z\\{])(.*?)(\\4))|(?:(\\{)(.*?)(\\})))",name:"meta.function.verb.latex"},{match:"\\\\(?:newline|pagebreak|clearpage|linebreak|pause)(?:\\b)",name:"keyword.control.layout.latex"},{begin:"\\\\\\(",beginCaptures:{"0":{name:"punctuation.definition.string.begin.latex"}},end:"\\\\\\)",endCaptures:{"0":{name:"punctuation.definition.string.end.latex"}},name:"meta.math.block.latex support.class.math.block.environment.latex",patterns:[{include:"text.tex#math"},{include:"$base"}]},{begin:"(?)(\\{)\\$(\\})",name:"meta.column-specials.latex"},{include:"text.tex"}],repository:{"optional-arg":{patterns:[{captures:{"1":{name:"punctuation.definition.arguments.optional.begin.latex"},"2":{name:"variable.parameter.function.latex"},"3":{name:"punctuation.definition.arguments.optional.end.latex"}},match:"(\\[)([^\\[]*?)(\\])",name:"meta.parameter.optional.latex"}]},"multiline-optional-arg-no-highlight":{begin:"\\G\\[",beginCaptures:{"0":{name:"punctuation.definition.arguments.optional.begin.latex"}},end:"\\]",endCaptures:{"0":{name:"punctuation.definition.arguments.optional.end.latex"}},name:"meta.parameter.optional.latex",patterns:[{include:"$self"}]},"multiline-optional-arg":{begin:"\\G\\[",beginCaptures:{"0":{name:"punctuation.definition.arguments.optional.begin.latex"}},end:"\\]",endCaptures:{"0":{name:"punctuation.definition.arguments.optional.end.latex"}},name:"meta.parameter.optional.latex",contentName:"variable.parameter.function.latex",patterns:[{include:"$self"}]},"autocites-arg":{patterns:[{captures:{"1":{name:"punctuation.definition.arguments.optional.begin.latex"},"2":{name:"punctuation.definition.arguments.optional.end.latex"},"3":{name:"punctuation.definition.arguments.optional.begin.latex"},"4":{name:"punctuation.definition.arguments.optional.end.latex"},"5":{name:"punctuation.definition.arguments.begin.latex"},"6":{name:"constant.other.reference.citation.latex"},"7":{name:"punctuation.definition.arguments.end.latex"},"8":{patterns:[{include:"#autocites-arg"}]}},match:"(?:(\\()[^\\)]*(\\))){0,2}(?:(\\[)[^\\]]*(\\])){0,2}(\\{)([\\p{Alphabetic}\\p{Number}:.]+)(\\})(.*)"}]},"begin-env-tokenizer":{captures:{"1":{name:"support.function.be.latex"},"2":{name:"punctuation.definition.function.latex"},"3":{name:"punctuation.definition.arguments.begin.latex"},"4":{name:"variable.parameter.function.latex"},"5":{name:"punctuation.definition.arguments.end.latex"},"6":{name:"punctuation.definition.arguments.optional.begin.latex"},"7":{patterns:[{include:"$base"}]},"8":{name:"punctuation.definition.arguments.optional.end.latex"},"9":{name:"punctuation.definition.arguments.begin.latex"},"10":{name:"variable.parameter.function.latex"},"11":{name:"punctuation.definition.arguments.end.latex"}},match:"\\s*((\\\\)(?:begin|end))(\\{)([a-zA-Z]*\\*?)(\\})(?:(\\[)(.*)(\\]))?(?:(\\{)([^{}]*)(\\}))?"},"definition-label":{begin:"((\\\\)label)((?:\\[[^\\[]*?\\])*)(\\{)",beginCaptures:{"1":{name:"keyword.control.label.latex"},"2":{name:"punctuation.definition.keyword.latex"},"3":{patterns:[{include:"#optional-arg"}]},"4":{name:"punctuation.definition.arguments.begin.latex"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.arguments.end.latex"}},name:"meta.definition.label.latex",patterns:[{match:"[a-zA-Z0-9\\.,:/*!^_-]",name:"variable.parameter.definition.label.latex"}]}},scopeName:"text.tex.latex"}; + +export { latex_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/less.tmLanguage-3e196c19.mjs b/docs/shiki/dist/languages/less.tmLanguage-3e196c19.mjs new file mode 100644 index 00000000..39207620 --- /dev/null +++ b/docs/shiki/dist/languages/less.tmLanguage-3e196c19.mjs @@ -0,0 +1,3 @@ +var less_tmLanguage = {information_for_contributors:["This file has been converted from https://github.com/atom/language-less/blob/master/grammars/less.cson","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."],version:"https://github.com/atom/language-less/commit/87d4d59e8de6796b506b81a16e1dc1fafc99d30f",name:"less",scopeName:"source.css.less",patterns:[{include:"#strings"},{captures:{"1":{name:"entity.other.attribute-name.class.mixin.css"}},match:"(\\.[_a-zA-Z][a-zA-Z0-9_-]*(?=\\())"},{captures:{"1":{name:"entity.other.attribute-name.class.css"},"2":{name:"punctuation.definition.entity.css"},"4":{name:"variable.other.interpolation.less"}},match:"((\\.)([_a-zA-Z]|(@{[a-zA-Z0-9_-]+}))[a-zA-Z0-9_-]*)"},{captures:{"0":{name:"entity.other.attribute-name.parent-selector.css"},"1":{name:"punctuation.definition.entity.css"}},match:"(&)[a-zA-Z0-9_-]*"},{begin:"(format|local|url|attr|counter|counters)\\s*(\\()",beginCaptures:{"1":{name:"support.function.misc.css"},"2":{name:"punctuation.section.function.css"}},end:"\\)",endCaptures:{"0":{name:"punctuation.section.function.css"}},patterns:[{begin:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.css"}},end:"'",endCaptures:{"0":{name:"punctuation.definition.string.end.css"}},name:"string.quoted.single.css",patterns:[{match:"\\\\.",name:"constant.character.escape.css"}]},{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.css"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.css"}},name:"string.quoted.double.css",patterns:[{match:"\\\\(\\d{1,6}|.)",name:"constant.character.escape.css"}]},{match:"[^'\") \\t]+",name:"variable.parameter.misc.css"}]},{match:"(#)([0-9a-fA-F]{3}|[0-9a-fA-F]{6})\\b(?!.*?(?(['\"])(?:[^\\\\]|\\\\.)*?(\\6)))))?\\s*(\\])",name:"meta.attribute-selector.css"},{begin:"((@)import\\b)",beginCaptures:{"1":{name:"keyword.control.at-rule.import.less"},"2":{name:"punctuation.definition.keyword.less"}},end:";",endCaptures:{"0":{name:"punctuation.terminator.rule.css"}},name:"meta.at-rule.import.css",patterns:[{match:"(?<=\\(|,|\\s)\\b(reference|optional|once|multiple|less|inline)\\b(?=\\)|,)",name:"keyword.control.import.option.less"},{include:"#brace_round"},{include:"source.css#commas"},{include:"#strings"}]},{captures:{"1":{name:"keyword.control.at-rule.fontface.css"},"2":{name:"punctuation.definition.keyword.css"}},match:"^\\s*((@)font-face\\b)",name:"meta.at-rule.fontface.css"},{captures:{"1":{name:"keyword.control.at-rule.media.css"},"2":{name:"punctuation.definition.keyword.css"}},match:"^\\s*((@)media\\b)",name:"meta.at-rule.media.css"},{include:"source.css#media-features"},{match:"\\b(tv|tty|screen|projection|print|handheld|embossed|braille|aural|all)\\b",name:"support.constant.media-type.media.css"},{match:"\\b(portrait|landscape)\\b",name:"support.constant.property-value.media-property.media.css"},{captures:{"1":{name:"support.function.less"}},match:"(\\.[a-zA-Z0-9_-]+)\\s*(;|\\()"},{begin:"(^[ \\t]+)?(?=//)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.less"}},end:"(?!\\G)",patterns:[{begin:"//",beginCaptures:{"0":{name:"punctuation.definition.comment.less"}},end:"\\n",name:"comment.line.double-slash.less"}]},{match:"(@|\\-\\-)[\\w-]+(?=\\s*)",name:"variable.other.less",captures:{"1":{name:"punctuation.definition.variable.less"}}},{include:"#variable_interpolation"},{begin:"{",beginCaptures:{"0":{name:"punctuation.section.property-list.begin.bracket.curly.css"}},end:"}",endCaptures:{"0":{name:"punctuation.section.property-list.end.bracket.curly.css"}},name:"meta.property-list.css",patterns:[{include:"source.css#pseudo-elements"},{include:"source.css#pseudo-classes"},{include:"source.css#tag-names"},{include:"source.css#commas"},{include:"#variable_interpolation"},{include:"source.css#property-names"},{include:"#property_values"},{include:"$self"}]},{match:"\\!\\s*important",name:"keyword.other.important.css"},{match:"\\*|\\/|\\-|\\+|~|=|<=|>=|<|>",name:"keyword.operator.less"},{match:"\\b(not|and|when)\\b",name:"keyword.control.logical.operator.less"},{include:"source.css#tag-names"},{match:"(?|\\<|\\>\\=|\\<\\=|or|and|contains)(?:(?=\\s)|\\b)",captures:{"1":{name:"keyword.operator.expression.liquid"}}},language_constant:{match:"\\b(false|true|nil|blank)\\b|empty(?!\\?)",name:"constant.language.liquid"},attribute:{begin:"\\w+:",end:"(?=,|%}|}}|\\|)",beginCaptures:{"0":{name:"entity.other.attribute-name.liquid"}},patterns:[{include:"#value_expression"}]},attribute_liquid:{begin:"\\w+:",end:"(?=,|\\|)|$",beginCaptures:{"0":{name:"entity.other.attribute-name.liquid"}},patterns:[{include:"#value_expression"}]},filter:{match:"\\|\\s*((?![\\.0-9])[a-zA-Z0-9_-]+\\:?)\\s*",captures:{"1":{name:"support.function.liquid"}}},value_expression:{patterns:[{match:"(\\[)(\\|)(?=[^\\]]*)(?=\\])",captures:{"2":{name:"invalid.illegal.filter.liquid"},"3":{name:"invalid.illegal.filter.liquid"}}},{match:"(?<=\\s)(\\+|\\-|\\/|\\*)(?=\\s)",name:"invalid.illegal.filter.liquid"},{include:"#language_constant"},{include:"#operator"},{include:"#invalid_range"},{include:"#range"},{include:"#number"},{include:"#string"},{include:"#variable_lookup"}]},variable_lookup:{patterns:[{match:"\\b(additional_checkout_buttons|address|all_country_option_tags|all_products|article|articles|block|blog|blogs|canonical_url|cart|checkout|collection|collections|comment|content_for_additional_checkout_buttons|content_for_header|content_for_index|content_for_layout|country_option_tags|currency|current_page|current_tags|customer|customer_address|discount_allocation|discount_application|external_video|font|forloop|form|fulfillment|gift_card|handle|image|images|line_item|link|linklist|linklists|location|localization|metafield|model|model_source|order|page|page_description|page_image|page_title|pages|paginate|part|policy|powered_by_link|predictive_search|product|product_option|product_variant|recommendations|request|routes|script|scripts|search|section|selling_plan|selling_plan_allocation|selling_plan_group|settings|shipping_method|shop|shop_locale|store_availability|tablerow|tax_line|template|theme|transaction|unit_price_measurement|variant|video|video_source)\\b",name:"variable.language.liquid"},{match:"((?<=\\w\\:\\s)\\w+)",name:"variable.parameter.liquid"},{begin:"(?<=\\w)\\[",beginCaptures:{"0":{name:"punctuation.section.brackets.begin.liquid"}},end:"\\]",endCaptures:{"0":{name:"punctuation.section.brackets.end.liquid"}},name:"meta.brackets.liquid",patterns:[{include:"#string"}]},{match:"(?<=(\\w|\\])\\.)([-\\w]+\\??)",name:"variable.other.member.liquid"},{match:"(?<=\\w)\\.(?=\\w)",name:"punctuation.accessor.liquid"},{match:"(?i)[a-z_](\\w|(?:-(?!\\}\\})))*",name:"variable.other.liquid"}]}}}; + +export { liquid_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/lisp.tmLanguage-59b3584d.mjs b/docs/shiki/dist/languages/lisp.tmLanguage-59b3584d.mjs new file mode 100644 index 00000000..537ba6e2 --- /dev/null +++ b/docs/shiki/dist/languages/lisp.tmLanguage-59b3584d.mjs @@ -0,0 +1,3 @@ +var lisp_tmLanguage = {comment:"",fileTypes:["lisp","cl","l","mud","el"],foldingStartMarker:"\\(",foldingStopMarker:"\\)",keyEquivalent:"^~L",name:"lisp",patterns:[{captures:{"1":{name:"punctuation.definition.comment.lisp"}},match:"(;).*$\\n?",name:"comment.line.semicolon.lisp"},{captures:{"1":{name:"storage.type.function-type.lisp"},"2":{name:"entity.name.function.lisp"}},match:"(?:\\()((?i:defgeneric|define-compiler-macro|define-method-combination|define-modify-macro|define-setf-expander|defmacro|defmethod|defsetf|defun||define-\\S+))\\s+((?:\\w|[+\\-<>/*&=.?!$%:@\\[\\]^{}~#|])+)",name:"meta.function.lisp"},{match:"(?<=\\s)(?i:&allow-other-keys|&aux|&body|&environment|&key|&optional|&rest|&whole)(?=\\s+)",name:"meta.function-parameters.lisp"},{captures:{"1":{name:"storage.type.function-type.lisp"},"2":{name:"entity.name.type.lisp"}},match:"(?:\\()((?i:deftype|defstruct|define-condition|defpackage|defclass))\\s+((?:\\w|[+\\-<>/*&=.?!$%:@\\[\\]^{}~#|])+)"},{captures:{"1":{name:"storage.type.function-type.lisp"},"2":{name:"entity.name.variable.lisp"}},match:"(?:\\()((?i:defvar|defconstant|defparameter|define-symbol-macro))\\s+((?:\\w|[+\\-<>/*&=.?!$%:@\\[\\]^{}~#|])+)"},{captures:{"1":{name:"punctuation.definition.constant.lisp"}},match:"(#)(\\w|[\\\\+-=<>'\"&#])+",name:"constant.character.lisp"},{captures:{"1":{name:"punctuation.definition.variable.lisp"},"3":{name:"punctuation.definition.variable.lisp"}},match:"(?<=^|\\s|[()])(\\*)(\\S*)(\\*)(?=$|\\s|[()])",name:"variable.other.global.lisp"},{match:"(?<=^|\\s|[()]):(\\w|[+\\-<>/*&=.?!$%:@\\[\\]^{}~#|])*",name:"keyword.constant.lisp"},{match:"(?<=\\()(?i:\\*|\\*\\*|\\*\\*\\*|\\+|\\+\\+|\\+\\+\\+|\\-|/|//|///|/=|1\\+|1\\-|<|<=|=|>|>=|abort|abs|acons|acos|acosh|add-method|adjoin|adjust-array|adjustable-array-p|allocate-instance|alpha-char-p|alphanumericp|and|append|apply|apropos|apropos-list|aref|arithmetic-error|arithmetic-error-operands|arithmetic-error-operation|array|array-dimension|array-dimension-limit|array-dimensions|array-displacement|array-element-type|array-has-fill-pointer-p|array-in-bounds-p|array-rank|array-rank-limit|array-row-major-index|array-total-size|array-total-size-limit|arrayp|ash|asin|asinh|assert|assoc|assoc-if|assoc-if-not|atan|atanh|atom|base-char|base-string|bignum|bit|bit-and|bit-andc1|bit-andc2|bit-eqv|bit-ior|bit-nand|bit-nor|bit-not|bit-orc1|bit-orc2|bit-vector|bit-vector-p|bit-xor|block|boole|boole-1|boole-2|boole-and|boole-andc1|boole-andc2|boole-c1|boole-c2|boole-clr|boole-eqv|boole-ior|boole-nand|boole-nor|boole-orc1|boole-orc2|boole-set|boole-xor|boolean|both-case-p|boundp|break|broadcast-stream|broadcast-stream-streams|built-in-class|butlast|byte|byte-position|byte-size|caaaar|caaadr|caaar|caadar|caaddr|caadr|caar|cadaar|cadadr|cadar|caddar|cadddr|caddr|cadr|call-arguments-limit|call-method|call-next-method|car|case|catch|ccase|cdaaar|cdaadr|cdaar|cdadar|cdaddr|cdadr|cdar|cddaar|cddadr|cddar|cdddar|cddddr|cdddr|cddr|cdr|ceiling|cell-error|cell-error-name|cerror|change-class|char|char-code|char-code-limit|char-downcase|char-equal|char-greaterp|char-int|char-lessp|char-name|char-not-equal|char-not-greaterp|char-not-lessp|char-upcase|char/=|char<|char<=|char=|char>|char>=|character|characterp|check-type|cis|class|class-name|class-of|clear-input|clear-output|close|clrhash|code-char|coerce|compilation-speed|compile|compile-file|compile-file-pathname|compiled-function|compiled-function-p|compiler-macro|compiler-macro-function|complement|complex|complexp|compute-applicable-methods|compute-restarts|concatenate|concatenated-stream|concatenated-stream-streams|cond|condition|conjugate|cons|consp|constantly|constantp|continue|control-error|copy-alist|copy-list|copy-pprint-dispatch|copy-readtable|copy-seq|copy-structure|copy-symbol|copy-tree|cos|cosh|count|count-if|count-if-not|ctypecase|debug|decf|declaim|declaration|declare|decode-float|decode-universal-time|defclass|defconstant|defgeneric|define-compiler-macro|define-condition|define-method-combination|define-modify-macro|define-setf-expander|define-symbol-macro|defmacro|defmethod|defpackage|defparameter|defsetf|defstruct|deftype|defun|defvar|delete|delete-duplicates|delete-file|delete-if|delete-if-not|delete-package|denominator|deposit-field|describe|describe-object|destructuring-bind|digit-char|digit-char-p|directory|directory-namestring|disassemble|division-by-zero|do|do\\*|do-all-symbols|do-external-symbols|do-symbols|documentation|dolist|dotimes|double-float|double-float-epsilon|double-float-negative-epsilon|dpb|dribble|dynamic-extent|ecase|echo-stream|echo-stream-input-stream|echo-stream-output-stream|ed|eighth|elt|encode-universal-time|end-of-file|endp|enough-namestring|ensure-directories-exist|ensure-generic-function|eq|eql|equal|equalp|error|etypecase|eval|eval-when|evenp|every|exp|export|expt|extended-char|fboundp|fceiling|fdefinition|ffloor|fifth|file-author|file-error|file-error-pathname|file-length|file-namestring|file-position|file-stream|file-string-length|file-write-date|fill|fill-pointer|find|find-all-symbols|find-class|find-if|find-if-not|find-method|find-package|find-restart|find-symbol|finish-output|first|fixnum|flet|float|float-digits|float-precision|float-radix|float-sign|floating-point-inexact|floating-point-invalid-operation|floating-point-overflow|floating-point-underflow|floatp|floor|fmakunbound|force-output|format|formatter|fourth|fresh-line|fround|ftruncate|ftype|funcall|function|function-keywords|function-lambda-expression|functionp|gcd|generic-function|gensym|gentemp|get|get-decoded-time|get-dispatch-macro-character|get-internal-real-time|get-internal-run-time|get-macro-character|get-output-stream-string|get-properties|get-setf-expansion|get-universal-time|getf|gethash|go|graphic-char-p|handler-bind|handler-case|hash-table|hash-table-count|hash-table-p|hash-table-rehash-size|hash-table-rehash-threshold|hash-table-size|hash-table-test|host-namestring|identity|if|ignorable|ignore|ignore-errors|imagpart|import|in-package|incf|initialize-instance|inline|input-stream-p|inspect|integer|integer-decode-float|integer-length|integerp|interactive-stream-p|intern|internal-time-units-per-second|intersection|invalid-method-error|invoke-debugger|invoke-restart|invoke-restart-interactively|isqrt|keyword|keywordp|labels|lambda|lambda-list-keywords|lambda-parameters-limit|last|lcm|ldb|ldb-test|ldiff|least-negative-double-float|least-negative-long-float|least-negative-normalized-double-float|least-negative-normalized-long-float|least-negative-normalized-short-float|least-negative-normalized-single-float|least-negative-short-float|least-negative-single-float|least-positive-double-float|least-positive-long-float|least-positive-normalized-double-float|least-positive-normalized-long-float|least-positive-normalized-short-float|least-positive-normalized-single-float|least-positive-short-float|least-positive-single-float|length|let|let\\*|lisp-implementation-type|lisp-implementation-version|list|list\\*|list-all-packages|list-length|listen|listp|load|load-logical-pathname-translations|load-time-value|locally|log|logand|logandc1|logandc2|logbitp|logcount|logeqv|logical-pathname|logical-pathname-translations|logior|lognand|lognor|lognot|logorc1|logorc2|logtest|logxor|long-float|long-float-epsilon|long-float-negative-epsilon|long-site-name|loop|loop-finish|lower-case-p|machine-instance|machine-type|machine-version|macro-function|macroexpand|macroexpand-1|macrolet|make-array|make-broadcast-stream|make-concatenated-stream|make-condition|make-dispatch-macro-character|make-echo-stream|make-hash-table|make-instance|make-instances-obsolete|make-list|make-load-form|make-load-form-saving-slots|make-method|make-package|make-pathname|make-random-state|make-sequence|make-string|make-string-input-stream|make-string-output-stream|make-symbol|make-synonym-stream|make-two-way-stream|makunbound|map|map-into|mapc|mapcan|mapcar|mapcon|maphash|mapl|maplist|mask-field|max|member|member-if|member-if-not|merge|merge-pathnames|method|method-combination|method-combination-error|method-qualifiers|min|minusp|mismatch|mod|most-negative-double-float|most-negative-fixnum|most-negative-long-float|most-negative-short-float|most-negative-single-float|most-positive-double-float|most-positive-fixnum|most-positive-long-float|most-positive-short-float|most-positive-single-float|muffle-warning|multiple-value-bind|multiple-value-call|multiple-value-list|multiple-value-prog1|multiple-value-setq|multiple-values-limit|name-char|namestring|nbutlast|nconc|next-method-p|nil|nintersection|ninth|no-applicable-method|no-next-method|not|notany|notevery|notinline|nreconc|nreverse|nset-difference|nset-exclusive-or|nstring-capitalize|nstring-downcase|nstring-upcase|nsublis|nsubst|nsubst-if|nsubst-if-not|nsubstitute|nsubstitute-if|nsubstitute-if-not|nth|nth-value|nthcdr|null|number|numberp|numerator|nunion|oddp|open|open-stream-p|optimize|or|otherwise|output-stream-p|package|package-error|package-error-package|package-name|package-nicknames|package-shadowing-symbols|package-use-list|package-used-by-list|packagep|pairlis|parse-error|parse-integer|parse-namestring|pathname|pathname-device|pathname-directory|pathname-host|pathname-match-p|pathname-name|pathname-type|pathname-version|pathnamep|peek-char|phase|pi|plusp|pop|position|position-if|position-if-not|pprint|pprint-dispatch|pprint-exit-if-list-exhausted|pprint-fill|pprint-indent|pprint-linear|pprint-logical-block|pprint-newline|pprint-pop|pprint-tab|pprint-tabular|prin1|prin1-to-string|princ|princ-to-string|print|print-not-readable|print-not-readable-object|print-object|print-unreadable-object|probe-file|proclaim|prog|prog\\*|prog1|prog2|progn|program-error|progv|provide|psetf|psetq|push|pushnew|quote|random|random-state|random-state-p|rassoc|rassoc-if|rassoc-if-not|ratio|rational|rationalize|rationalp|read|read-byte|read-char|read-char-no-hang|read-delimited-list|read-from-string|read-line|read-preserving-whitespace|read-sequence|reader-error|readtable|readtable-case|readtablep|real|realp|realpart|reduce|reinitialize-instance|rem|remf|remhash|remove|remove-duplicates|remove-if|remove-if-not|remove-method|remprop|rename-file|rename-package|replace|require|rest|restart|restart-bind|restart-case|restart-name|return|return-from|revappend|reverse|room|rotatef|round|row-major-aref|rplaca|rplacd|safety|satisfies|sbit|scale-float|schar|search|second|sequence|serious-condition|set|set-difference|set-dispatch-macro-character|set-exclusive-or|set-macro-character|set-pprint-dispatch|set-syntax-from-char|setf|setq|seventh|shadow|shadowing-import|shared-initialize|shiftf|short-float|short-float-epsilon|short-float-negative-epsilon|short-site-name|signal|signed-byte|signum|simple-array|simple-base-string|simple-bit-vector|simple-bit-vector-p|simple-condition|simple-condition-format-arguments|simple-condition-format-control|simple-error|simple-string|simple-string-p|simple-type-error|simple-vector|simple-vector-p|simple-warning|sin|single-float|single-float-epsilon|single-float-negative-epsilon|sinh|sixth|sleep|slot-boundp|slot-exists-p|slot-makunbound|slot-missing|slot-unbound|slot-value|software-type|software-version|some|sort|space|special|special-operator-p|speed|sqrt|stable-sort|standard|standard-char|standard-char-p|standard-class|standard-generic-function|standard-method|standard-object|step|storage-condition|store-value|stream|stream-element-type|stream-error|stream-error-stream|stream-external-format|streamp|string|string-capitalize|string-downcase|string-equal|string-greaterp|string-left-trim|string-lessp|string-not-equal|string-not-greaterp|string-not-lessp|string-right-trim|string-stream|string-trim|string-upcase|string/=|string<|string<=|string=|string>|string>=|stringp|structure|structure-class|structure-object|style-warning|sublis|subseq|subsetp|subst|subst-if|subst-if-not|substitute|substitute-if|substitute-if-not|subtypep|svref|sxhash|symbol|symbol-function|symbol-macrolet|symbol-name|symbol-package|symbol-plist|symbol-value|symbolp|synonym-stream|synonym-stream-symbol|t|tagbody|tailp|tan|tanh|tenth|terpri|the|third|throw|time|trace|translate-logical-pathname|translate-pathname|tree-equal|truename|truncate|two-way-stream|two-way-stream-input-stream|two-way-stream-output-stream|type|type-error|type-error-datum|type-error-expected-type|type-of|typecase|typep|unbound-slot|unbound-slot-instance|unbound-variable|undefined-function|unexport|unintern|union|unless|unread-char|unsigned-byte|untrace|unuse-package|unwind-protect|update-instance-for-different-class|update-instance-for-redefined-class|upgraded-array-element-type|upgraded-complex-part-type|upper-case-p|use-package|use-value|user-homedir-pathname|values|values-list|variable|vector|vector-pop|vector-push|vector-push-extend|vectorp|warn|warning|when|wild-pathname-p|with-accessors|with-compilation-unit|with-condition-restarts|with-hash-table-iterator|with-input-from-string|with-open-file|with-open-stream|with-output-to-string|with-package-iterator|with-simple-restart|with-slots|with-standard-io-syntax|write|write-byte|write-char|write-line|write-sequence|write-string|write-to-string|y-or-n-p|yes-or-no-p|zerop|with-\\S+)(?=\\s+)",name:"keyword.control.lisp"},{match:"(?<=^|\\s|[()])(?i:nil|t)(?=$|\\s|[()])",name:"constant.language.lisp"},{match:"\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b",name:"constant.numeric.lisp"},{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.lisp"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.lisp"}},name:"string.quoted.double.lisp",patterns:[{match:"\\\\.",name:"constant.character.escape.lisp"}]}],scopeName:"source.lisp",uuid:"00D451C9-6B1D-11D9-8DFA-000D93589AF6"}; + +export { lisp_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/logo.tmLanguage-5c644d2d.mjs b/docs/shiki/dist/languages/logo.tmLanguage-5c644d2d.mjs new file mode 100644 index 00000000..598b21f6 --- /dev/null +++ b/docs/shiki/dist/languages/logo.tmLanguage-5c644d2d.mjs @@ -0,0 +1,3 @@ +var logo_tmLanguage = {comment:"Roughed out by Paul Bissex ",fileTypes:[],keyEquivalent:"^~L",name:"logo",patterns:[{match:"^to [\\w.]+",name:"entity.name.function.logo"},{match:"continue|do\\.until|do\\.while|end|for(each)?|if(else|falsetrue|)|repeat|stop|until",name:"keyword.control.logo"},{match:"\\b(\\.defmacro|\\.eq|\\.macro|\\.maybeoutput|\\.setbf|\\.setfirst|\\.setitem|\\.setsegmentsize|allopen|allowgetset|and|apply|arc|arctan|arity|array|arrayp|arraytolist|ascii|ashift|back|background|backslashedp|beforep|bitand|bitnot|bitor|bitxor|buried|buriedp|bury|buryall|buryname|butfirst|butfirsts|butlast|bye|cascade|case|caseignoredp|catch|char|clean|clearscreen|cleartext|close|closeall|combine|cond|contents|copydef|cos|count|crossmap|cursor|define|definedp|dequeue|difference|dribble|edall|edit|editfile|edn|edns|edpl|edpls|edps|emptyp|eofp|epspict|equalp|erall|erase|erasefile|ern|erns|erpl|erpls|erps|erract|error|exp|fence|filep|fill|filter|find|first|firsts|forever|form|forward|fput|fullprintp|fullscreen|fulltext|gc|gensym|global|goto|gprop|greaterp|heading|help|hideturtle|home|ignore|int|invoke|iseq|item|keyp|label|last|left|lessp|list|listp|listtoarray|ln|load|loadnoisily|loadpict|local|localmake|log10|lowercase|lput|lshift|macroexpand|macrop|make|map|map.se|mdarray|mditem|mdsetitem|member|memberp|minus|modulo|name|namelist|namep|names|nodes|nodribble|norefresh|not|numberp|openappend|openread|openupdate|openwrite|or|output|palette|parse|pause|pen|pencolor|pendown|pendownp|penerase|penmode|penpaint|penreverse|pensize|penup|pick|plist|plistp|plists|pllist|po|poall|pon|pons|pop|popl|popls|pops|pos|pot|pots|power|pprop|prefix|primitivep|print|printdepthlimit|printwidthlimit|procedurep|procedures|product|push|queue|quoted|quotient|radarctan|radcos|radsin|random|rawascii|readchar|readchars|reader|readlist|readpos|readrawline|readword|redefp|reduce|refresh|remainder|remdup|remove|remprop|repcount|rerandom|reverse|right|round|rseq|run|runparse|runresult|save|savel|savepict|screenmode|scrunch|sentence|setbackground|setcursor|seteditor|setheading|sethelploc|setitem|setlibloc|setmargins|setpalette|setpen|setpencolor|setpensize|setpos|setprefix|setread|setreadpos|setscrunch|settemploc|settextcolor|setwrite|setwritepos|setx|setxy|sety|shell|show|shownp|showturtle|sin|splitscreen|sqrt|standout|startup|step|stepped|steppedp|substringp|sum|tag|test|text|textscreen|thing|throw|towards|trace|traced|tracedp|transfer|turtlemode|type|unbury|unburyall|unburyname|unburyonedit|unstep|untrace|uppercase|usealternatenam|wait|while|window|word|wordp|wrap|writepos|writer|xcor|ycor)\\b",name:"keyword.other.logo"},{captures:{"1":{name:"punctuation.definition.variable.logo"}},match:"(\\:)(?:\\|[^|]*\\||[-\\w.]*)+",name:"variable.parameter.logo"},{match:"\"(?:\\|[^|]*\\||[-\\w.]*)+",name:"string.other.word.logo"},{begin:"(^[ \\t]+)?(?=;)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.logo"}},end:"(?!\\G)",patterns:[{begin:";",beginCaptures:{"0":{name:"punctuation.definition.comment.logo"}},end:"\\n",name:"comment.line.semicolon.logo"}]}],scopeName:"source.logo",uuid:"7613EC24-B0F9-4D01-8706-1D54098BFFD8"}; + +export { logo_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/lua.tmLanguage-3826d711.mjs b/docs/shiki/dist/languages/lua.tmLanguage-3826d711.mjs new file mode 100644 index 00000000..fab1b28f --- /dev/null +++ b/docs/shiki/dist/languages/lua.tmLanguage-3826d711.mjs @@ -0,0 +1,3 @@ +var lua_tmLanguage = {information_for_contributors:["This file has been converted from https://github.com/sumneko/lua.tmbundle/blob/master/Syntaxes/Lua.plist","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."],version:"https://github.com/sumneko/lua.tmbundle/commit/3a18700941737c3ab66ac5964696f141aee61800",name:"lua",scopeName:"source.lua",patterns:[{begin:"\\b(?:(local)\\s+)?(function)\\b(?![,:])",beginCaptures:{"1":{name:"keyword.local.lua"},"2":{name:"keyword.control.lua"}},end:"(?<=[\\)\\-{}\\[\\]\"'])",name:"meta.function.lua",patterns:[{include:"#comment"},{begin:"(\\()",beginCaptures:{"1":{name:"punctuation.definition.parameters.begin.lua"}},end:"(\\))|(?=[\\-\\.{}\\[\\]\"'])",endCaptures:{"1":{name:"punctuation.definition.parameters.finish.lua"}},name:"meta.parameter.lua",patterns:[{include:"#comment"},{match:"[a-zA-Z_][a-zA-Z0-9_]*",name:"variable.parameter.function.lua"},{match:",",name:"punctuation.separator.arguments.lua"},{begin:":",beginCaptures:{"0":{name:"punctuation.separator.arguments.lua"}},end:"(?=[\\),])",patterns:[{include:"#emmydoc.type"}]}]},{match:"\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b\\s*(?=:)",name:"entity.name.class.lua"},{match:"\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b",name:"entity.name.function.lua"}]},{match:"(?",captures:{"1":{name:"string.tag.lua"}}},{match:"\\<[a-zA-Z_\\*][a-zA-Z0-9_\\.\\*\\-]*\\>",name:"storage.type.generic.lua"},{match:"\\b(break|do|else|for|if|elseif|goto|return|then|repeat|while|until|end|in)\\b",name:"keyword.control.lua"},{match:"\\b(local|global)\\b",name:"keyword.local.lua"},{match:"\\b(function)\\b(?![,:])",name:"keyword.control.lua"},{match:"(?=?|(?|\\<",name:"keyword.operator.lua"}]},{begin:"(?<=---[ \\t]*)@see",beginCaptures:{"0":{name:"storage.type.annotation.lua"}},end:"(?=[\\n@#])",patterns:[{match:"\\b([a-zA-Z_\\*][a-zA-Z0-9_\\.\\*\\-]*)",name:"support.class.lua"},{match:"#",name:"keyword.operator.lua"}]},{begin:"(?<=---[ \\t]*)@diagnostic",beginCaptures:{"0":{name:"storage.type.annotation.lua"}},end:"(?=[\\n@#])",patterns:[{begin:"([a-zA-Z_\\-0-9]+)[ \\t]*(:)?",beginCaptures:{"1":{name:"keyword.other.unit"},"2":{name:"keyword.operator.unit"}},end:"(?=\\n)",patterns:[{match:"\\b([a-zA-Z_\\*][a-zA-Z0-9_\\-]*)",name:"support.class.lua"},{match:",",name:"keyword.operator.lua"}]}]},{begin:"(?<=---[ \\t]*)@module",beginCaptures:{"0":{name:"storage.type.annotation.lua"}},end:"(?=[\\n@#])",patterns:[{include:"#string"}]},{match:"(?<=---[ \\t]*)@(async|nodiscard)",name:"storage.type.annotation.lua"},{begin:"(?<=---)\\|\\s*[\\>\\+]?",beginCaptures:{"0":{name:"storage.type.annotation.lua"}},end:"(?=[\\n@#])",patterns:[{include:"#string"}]}]},"emmydoc.type":{patterns:[{begin:"\\bfun\\b",beginCaptures:{"0":{name:"keyword.control.lua"}},end:"(?=[\\s#])",patterns:[{match:"[\\(\\),:\\?][ \\t]*",name:"keyword.operator.lua"},{match:"([a-zA-Z_][a-zA-Z0-9_\\.\\*\\[\\]\\<\\>\\,\\-]*)(?",name:"storage.type.generic.lua"},{match:"\\basync\\b",name:"entity.name.tag.lua"},{match:"[\\{\\}\\:\\,\\?\\|\\`][ \\t]*",name:"keyword.operator.lua"},{begin:"(?=[a-zA-Z_\\.\\*\"'\\[])",end:"(?=[\\s\\)\\,\\?\\:\\}\\|#])",patterns:[{match:"([a-zA-Z0-9_\\.\\*\\[\\]\\<\\>\\,\\-]+)(?) ?",captures:{"2":{name:"punctuation.definition.quote.begin.markdown"}},name:"markup.quote.markdown",patterns:[{include:"#block"}],"while":"(^|\\G)\\s*(>) ?"},fenced_code_block_css:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(css|css.erb)((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.css",patterns:[{include:"source.css"}]}]},fenced_code_block_basic:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(html|htm|shtml|xhtml|inc|tmpl|tpl)((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.html",patterns:[{include:"text.html.basic"}]}]},fenced_code_block_ini:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(ini|conf)((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.ini",patterns:[{include:"source.ini"}]}]},fenced_code_block_java:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(java|bsh)((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.java",patterns:[{include:"source.java"}]}]},fenced_code_block_lua:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(lua)((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.lua",patterns:[{include:"source.lua"}]}]},fenced_code_block_makefile:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(Makefile|makefile|GNUmakefile|OCamlMakefile)((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.makefile",patterns:[{include:"source.makefile"}]}]},fenced_code_block_perl:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(perl|pl|pm|pod|t|PL|psgi|vcl)((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.perl",patterns:[{include:"source.perl"}]}]},fenced_code_block_r:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(R|r|s|S|Rprofile|\\{\\.r.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.r",patterns:[{include:"source.r"}]}]},fenced_code_block_ruby:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(ruby|rb|rbx|rjs|Rakefile|rake|cgi|fcgi|gemspec|irbrc|Capfile|ru|prawn|Cheffile|Gemfile|Guardfile|Hobofile|Vagrantfile|Appraisals|Rantfile|Berksfile|Berksfile.lock|Thorfile|Puppetfile)((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.ruby",patterns:[{include:"source.ruby"}]}]},fenced_code_block_php:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(php|php3|php4|php5|phpt|phtml|aw|ctp)((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.php",patterns:[{include:"text.html.basic"},{include:"source.php"}]}]},fenced_code_block_sql:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(sql|ddl|dml)((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.sql",patterns:[{include:"source.sql"}]}]},fenced_code_block_vs_net:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(vb)((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.vs_net",patterns:[{include:"source.asp.vb.net"}]}]},fenced_code_block_xml:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(xml|xsd|tld|jsp|pt|cpt|dtml|rss|opml)((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.xml",patterns:[{include:"text.xml"}]}]},fenced_code_block_xsl:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(xsl|xslt)((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.xsl",patterns:[{include:"text.xml.xsl"}]}]},fenced_code_block_yaml:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(yaml|yml)((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.yaml",patterns:[{include:"source.yaml"}]}]},fenced_code_block_dosbatch:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(bat|batch)((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.dosbatch",patterns:[{include:"source.batchfile"}]}]},fenced_code_block_clojure:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(clj|cljs|clojure)((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.clojure",patterns:[{include:"source.clojure"}]}]},fenced_code_block_coffee:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(coffee|Cakefile|coffee.erb)((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.coffee",patterns:[{include:"source.coffee"}]}]},fenced_code_block_c:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(c|h)((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.c",patterns:[{include:"source.c"}]}]},fenced_code_block_cpp:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(cpp|c\\+\\+|cxx)((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.cpp source.cpp",patterns:[{include:"source.cpp"}]}]},fenced_code_block_diff:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(patch|diff|rej)((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.diff",patterns:[{include:"source.diff"}]}]},fenced_code_block_dockerfile:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(dockerfile|Dockerfile)((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.dockerfile",patterns:[{include:"source.dockerfile"}]}]},fenced_code_block_git_commit:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(COMMIT_EDITMSG|MERGE_MSG)((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.git_commit",patterns:[{include:"text.git-commit"}]}]},fenced_code_block_git_rebase:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(git-rebase-todo)((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.git_rebase",patterns:[{include:"text.git-rebase"}]}]},fenced_code_block_go:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(go|golang)((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.go",patterns:[{include:"source.go"}]}]},fenced_code_block_groovy:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(groovy|gvy)((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.groovy",patterns:[{include:"source.groovy"}]}]},fenced_code_block_pug:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(jade|pug)((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.pug",patterns:[{include:"text.pug"}]}]},fenced_code_block_js:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(js|jsx|javascript|es6|mjs|cjs|dataviewjs|\\{\\.js.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.javascript",patterns:[{include:"source.js"}]}]},fenced_code_block_js_regexp:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(regexp)((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.js_regexp",patterns:[{include:"source.js.regexp"}]}]},fenced_code_block_json:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(json|json5|sublime-settings|sublime-menu|sublime-keymap|sublime-mousemap|sublime-theme|sublime-build|sublime-project|sublime-completions)((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.json",patterns:[{include:"source.json"}]}]},fenced_code_block_jsonc:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(jsonc)((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.jsonc",patterns:[{include:"source.json.comments"}]}]},fenced_code_block_less:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(less)((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.less",patterns:[{include:"source.css.less"}]}]},fenced_code_block_objc:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(objectivec|objective-c|mm|objc|obj-c|m|h)((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.objc",patterns:[{include:"source.objc"}]}]},fenced_code_block_swift:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(swift)((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.swift",patterns:[{include:"source.swift"}]}]},fenced_code_block_scss:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(scss)((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.scss",patterns:[{include:"source.css.scss"}]}]},fenced_code_block_perl6:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(perl6|p6|pl6|pm6|nqp)((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.perl6",patterns:[{include:"source.perl.6"}]}]},fenced_code_block_powershell:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(powershell|ps1|psm1|psd1)((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.powershell",patterns:[{include:"source.powershell"}]}]},fenced_code_block_python:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(python|py|py3|rpy|pyw|cpy|SConstruct|Sconstruct|sconstruct|SConscript|gyp|gypi|\\{\\.python.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.python",patterns:[{include:"source.python"}]}]},fenced_code_block_julia:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(julia|\\{\\.julia.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.julia",patterns:[{include:"source.julia"}]}]},fenced_code_block_regexp_python:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(re)((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.regexp_python",patterns:[{include:"source.regexp.python"}]}]},fenced_code_block_rust:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(rust|rs|\\{\\.rust.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.rust",patterns:[{include:"source.rust"}]}]},fenced_code_block_scala:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(scala|sbt)((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.scala",patterns:[{include:"source.scala"}]}]},fenced_code_block_shell:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(shell|sh|bash|zsh|bashrc|bash_profile|bash_login|profile|bash_logout|.textmate_init|\\{\\.bash.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.shellscript",patterns:[{include:"source.shell"}]}]},fenced_code_block_ts:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(typescript|ts)((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.typescript",patterns:[{include:"source.ts"}]}]},fenced_code_block_tsx:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(tsx)((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.typescriptreact",patterns:[{include:"source.tsx"}]}]},fenced_code_block_csharp:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(cs|csharp|c#)((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.csharp",patterns:[{include:"source.cs"}]}]},fenced_code_block_fsharp:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(fs|fsharp|f#)((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.fsharp",patterns:[{include:"source.fsharp"}]}]},fenced_code_block_dart:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(dart)((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.dart",patterns:[{include:"source.dart"}]}]},fenced_code_block_handlebars:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(handlebars|hbs)((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.handlebars",patterns:[{include:"text.html.handlebars"}]}]},fenced_code_block_markdown:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(markdown|md)((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.markdown",patterns:[{include:"text.html.markdown"}]}]},fenced_code_block_log:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(log)((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.log",patterns:[{include:"text.log"}]}]},fenced_code_block_erlang:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(erlang)((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.erlang",patterns:[{include:"source.erlang"}]}]},fenced_code_block_elixir:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(elixir)((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.elixir",patterns:[{include:"source.elixir"}]}]},fenced_code_block_latex:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(latex|tex)((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.latex",patterns:[{include:"text.tex.latex"}]}]},fenced_code_block_bibtex:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(bibtex)((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.bibtex",patterns:[{include:"text.bibtex"}]}]},fenced_code_block_twig:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(twig)((\\s+|:|,|\\{|\\?)[^`]*)?$)",name:"markup.fenced_code.block.markdown",end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language.markdown"},"5":{name:"fenced_code.block.language.attributes.markdown"}},endCaptures:{"3":{name:"punctuation.definition.markdown"}},patterns:[{begin:"(^|\\G)(\\s*)(.*)","while":"(^|\\G)(?!\\s*([`~]{3,})\\s*$)",contentName:"meta.embedded.block.twig",patterns:[{include:"source.twig"}]}]},fenced_code_block:{patterns:[{include:"#fenced_code_block_css"},{include:"#fenced_code_block_basic"},{include:"#fenced_code_block_ini"},{include:"#fenced_code_block_java"},{include:"#fenced_code_block_lua"},{include:"#fenced_code_block_makefile"},{include:"#fenced_code_block_perl"},{include:"#fenced_code_block_r"},{include:"#fenced_code_block_ruby"},{include:"#fenced_code_block_php"},{include:"#fenced_code_block_sql"},{include:"#fenced_code_block_vs_net"},{include:"#fenced_code_block_xml"},{include:"#fenced_code_block_xsl"},{include:"#fenced_code_block_yaml"},{include:"#fenced_code_block_dosbatch"},{include:"#fenced_code_block_clojure"},{include:"#fenced_code_block_coffee"},{include:"#fenced_code_block_c"},{include:"#fenced_code_block_cpp"},{include:"#fenced_code_block_diff"},{include:"#fenced_code_block_dockerfile"},{include:"#fenced_code_block_git_commit"},{include:"#fenced_code_block_git_rebase"},{include:"#fenced_code_block_go"},{include:"#fenced_code_block_groovy"},{include:"#fenced_code_block_pug"},{include:"#fenced_code_block_js"},{include:"#fenced_code_block_js_regexp"},{include:"#fenced_code_block_json"},{include:"#fenced_code_block_jsonc"},{include:"#fenced_code_block_less"},{include:"#fenced_code_block_objc"},{include:"#fenced_code_block_swift"},{include:"#fenced_code_block_scss"},{include:"#fenced_code_block_perl6"},{include:"#fenced_code_block_powershell"},{include:"#fenced_code_block_python"},{include:"#fenced_code_block_julia"},{include:"#fenced_code_block_regexp_python"},{include:"#fenced_code_block_rust"},{include:"#fenced_code_block_scala"},{include:"#fenced_code_block_shell"},{include:"#fenced_code_block_ts"},{include:"#fenced_code_block_tsx"},{include:"#fenced_code_block_csharp"},{include:"#fenced_code_block_fsharp"},{include:"#fenced_code_block_dart"},{include:"#fenced_code_block_handlebars"},{include:"#fenced_code_block_markdown"},{include:"#fenced_code_block_log"},{include:"#fenced_code_block_erlang"},{include:"#fenced_code_block_elixir"},{include:"#fenced_code_block_latex"},{include:"#fenced_code_block_bibtex"},{include:"#fenced_code_block_twig"},{include:"#fenced_code_block_unknown"}]},fenced_code_block_unknown:{begin:"(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?=([^`]*)?$)",beginCaptures:{"3":{name:"punctuation.definition.markdown"},"4":{name:"fenced_code.block.language"}},end:"(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",endCaptures:{"3":{name:"punctuation.definition.markdown"}},name:"markup.fenced_code.block.markdown"},heading:{match:"(?:^|\\G)[ ]{0,3}(#{1,6}\\s+(.*?)(\\s+#{1,6})?\\s*)$",captures:{"1":{patterns:[{match:"(#{6})\\s+(.*?)(?:\\s+(#+))?\\s*$",name:"heading.6.markdown",captures:{"1":{name:"punctuation.definition.heading.markdown"},"2":{name:"entity.name.section.markdown",patterns:[{include:"#inline"},{include:"text.html.derivative"}]},"3":{name:"punctuation.definition.heading.markdown"}}},{match:"(#{5})\\s+(.*?)(?:\\s+(#+))?\\s*$",name:"heading.5.markdown",captures:{"1":{name:"punctuation.definition.heading.markdown"},"2":{name:"entity.name.section.markdown",patterns:[{include:"#inline"},{include:"text.html.derivative"}]},"3":{name:"punctuation.definition.heading.markdown"}}},{match:"(#{4})\\s+(.*?)(?:\\s+(#+))?\\s*$",name:"heading.4.markdown",captures:{"1":{name:"punctuation.definition.heading.markdown"},"2":{name:"entity.name.section.markdown",patterns:[{include:"#inline"},{include:"text.html.derivative"}]},"3":{name:"punctuation.definition.heading.markdown"}}},{match:"(#{3})\\s+(.*?)(?:\\s+(#+))?\\s*$",name:"heading.3.markdown",captures:{"1":{name:"punctuation.definition.heading.markdown"},"2":{name:"entity.name.section.markdown",patterns:[{include:"#inline"},{include:"text.html.derivative"}]},"3":{name:"punctuation.definition.heading.markdown"}}},{match:"(#{2})\\s+(.*?)(?:\\s+(#+))?\\s*$",name:"heading.2.markdown",captures:{"1":{name:"punctuation.definition.heading.markdown"},"2":{name:"entity.name.section.markdown",patterns:[{include:"#inline"},{include:"text.html.derivative"}]},"3":{name:"punctuation.definition.heading.markdown"}}},{match:"(#{1})\\s+(.*?)(?:\\s+(#+))?\\s*$",name:"heading.1.markdown",captures:{"1":{name:"punctuation.definition.heading.markdown"},"2":{name:"entity.name.section.markdown",patterns:[{include:"#inline"},{include:"text.html.derivative"}]},"3":{name:"punctuation.definition.heading.markdown"}}}]}},name:"markup.heading.markdown",patterns:[{include:"#inline"}]},"heading-setext":{patterns:[{match:"^(={3,})(?=[ \\t]*$\\n?)",name:"markup.heading.setext.1.markdown"},{match:"^(-{3,})(?=[ \\t]*$\\n?)",name:"markup.heading.setext.2.markdown"}]},html:{patterns:[{begin:"(^|\\G)\\s*()",name:"comment.block.html"},{begin:"(?i)(^|\\G)\\s*(?=<(script|style|pre)(\\s|$|>)(?!.*?))",end:"(?i)(.*)(())",endCaptures:{"1":{patterns:[{include:"text.html.derivative"}]},"2":{name:"meta.tag.structure.$4.end.html"},"3":{name:"punctuation.definition.tag.begin.html"},"4":{name:"entity.name.tag.html"},"5":{name:"punctuation.definition.tag.end.html"}},patterns:[{begin:"(\\s*|$)",patterns:[{include:"text.html.derivative"}],"while":"(?i)^(?!.*)"}]},{begin:"(?i)(^|\\G)\\s*(?=))",patterns:[{include:"text.html.derivative"}],"while":"^(?!\\s*$)"},{begin:"(^|\\G)\\s*(?=(<[a-zA-Z0-9\\-](/?>|\\s.*?>)|)\\s*$)",patterns:[{include:"text.html.derivative"}],"while":"^(?!\\s*$)"}]},"link-def":{captures:{"1":{name:"punctuation.definition.constant.markdown"},"2":{name:"constant.other.reference.link.markdown"},"3":{name:"punctuation.definition.constant.markdown"},"4":{name:"punctuation.separator.key-value.markdown"},"5":{name:"punctuation.definition.link.markdown"},"6":{name:"markup.underline.link.markdown"},"7":{name:"punctuation.definition.link.markdown"},"8":{name:"markup.underline.link.markdown"},"9":{name:"string.other.link.description.title.markdown"},"10":{name:"punctuation.definition.string.begin.markdown"},"11":{name:"punctuation.definition.string.end.markdown"},"12":{name:"string.other.link.description.title.markdown"},"13":{name:"punctuation.definition.string.begin.markdown"},"14":{name:"punctuation.definition.string.end.markdown"},"15":{name:"string.other.link.description.title.markdown"},"16":{name:"punctuation.definition.string.begin.markdown"},"17":{name:"punctuation.definition.string.end.markdown"}},match:"(?x)\n \\s* # Leading whitespace\n (\\[)([^]]+?)(\\])(:) # Reference name\n [ \\t]* # Optional whitespace\n (?:(<)((?:\\\\[<>]|[^<>\\n])*)(>)|(\\S+?)) # The url\n [ \\t]* # Optional whitespace\n (?:\n ((\\().+?(\\))) # Match title in parens…\n | ((\").+?(\")) # or in double quotes…\n | ((').+?(')) # or in single quotes.\n )? # Title is optional\n \\s* # Optional whitespace\n $\n",name:"meta.link.reference.def.markdown"},list_paragraph:{begin:"(^|\\G)(?=\\S)(?![*+->]\\s|[0-9]+\\.\\s)",name:"meta.paragraph.markdown",patterns:[{include:"#inline"},{include:"text.html.derivative"},{include:"#heading-setext"}],"while":"(^|\\G)(?!\\s*$|#|[ ]{0,3}([-*_>][ ]{2,}){3,}[ \\t]*$\\n?|[ ]{0,3}[*+->]|[ ]{0,3}[0-9]+\\.)"},lists:{patterns:[{begin:"(^|\\G)([ ]{0,3})([*+-])([ \\t])",beginCaptures:{"3":{name:"punctuation.definition.list.begin.markdown"}},comment:"Currently does not support un-indented second lines.",name:"markup.list.unnumbered.markdown",patterns:[{include:"#block"},{include:"#list_paragraph"}],"while":"((^|\\G)([ ]{2,4}|\\t))|(^[ \\t]*$)"},{begin:"(^|\\G)([ ]{0,3})([0-9]+[\\.\\)])([ \\t])",beginCaptures:{"3":{name:"punctuation.definition.list.begin.markdown"}},name:"markup.list.numbered.markdown",patterns:[{include:"#block"},{include:"#list_paragraph"}],"while":"((^|\\G)([ ]{2,4}|\\t))|(^[ \\t]*$)"}]},paragraph:{begin:"(^|\\G)[ ]{0,3}(?=[^ \\t\\n])",name:"meta.paragraph.markdown",patterns:[{include:"#inline"},{include:"text.html.derivative"},{include:"#heading-setext"}],"while":"(^|\\G)((?=\\s*[-=]{3,}\\s*$)|[ ]{4,}(?=[^ \\t\\n]))"},raw_block:{begin:"(^|\\G)([ ]{4}|\\t)",name:"markup.raw.block.markdown","while":"(^|\\G)([ ]{4}|\\t)"},separator:{match:"(^|\\G)[ ]{0,3}([\\*\\-\\_])([ ]{0,2}\\2){2,}[ \\t]*$\\n?",name:"meta.separator.markdown"},frontMatter:{begin:"\\A-{3}\\s*$",contentName:"meta.embedded.block.frontmatter",patterns:[{include:"source.yaml"}],end:"(^|\\G)-{3}|\\.{3}\\s*$"},table:{name:"markup.table.markdown",begin:"(^|\\G)(\\|)(?=[^|].+\\|\\s*$)",beginCaptures:{"2":{name:"punctuation.definition.table.markdown"}},"while":"(^|\\G)(?=\\|)",patterns:[{match:"\\|",name:"punctuation.definition.table.markdown"},{match:"(?<=\\|)\\s*(:?-+:?)\\s*(?=\\|)",captures:{"1":{name:"punctuation.separator.table.markdown"}}},{match:"(?<=\\|)\\s*(?=\\S)((\\\\\\||[^|])+)(?<=\\S)\\s*(?=\\|)",captures:{"1":{patterns:[{include:"#inline"}]}}}]},inline:{patterns:[{include:"#ampersand"},{include:"#bracket"},{include:"#bold"},{include:"#italic"},{include:"#raw"},{include:"#strikethrough"},{include:"#escape"},{include:"#image-inline"},{include:"#image-ref"},{include:"#link-email"},{include:"#link-inet"},{include:"#link-inline"},{include:"#link-ref"},{include:"#link-ref-literal"},{include:"#link-ref-shortcut"}]},ampersand:{comment:"Markdown will convert this for us. We match it so that the HTML grammar will not mark it up as invalid.",match:"&(?!([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+);)",name:"meta.other.valid-ampersand.markdown"},bold:{begin:"(?x) (?(\\*\\*(?=\\w)|(?]*+> # HTML tags\n | (?`+)([^`]|(?!(?(?!`))`)*+\\k\n # Raw\n | \\\\[\\\\`*_{}\\[\\]()#.!+\\->]?+ # Escapes\n | \\[\n (\n (? # Named group\n [^\\[\\]\\\\] # Match most chars\n | \\\\. # Escaped chars\n | \\[ \\g*+ \\] # Nested brackets\n )*+\n \\]\n (\n ( # Reference Link\n [ ]? # Optional space\n \\[[^\\]]*+\\] # Ref name\n )\n | ( # Inline Link\n \\( # Opening paren\n [ \\t]*+ # Optional whitespace\n ? # URL\n [ \\t]*+ # Optional whitespace\n ( # Optional Title\n (?['\"])\n (.*?)\n \\k<title>\n )?\n \\)\n )\n )\n )\n | (?!(?<=\\S)\\k<open>). # Everything besides\n # style closer\n )++\n (?<=\\S)(?=__\\b|\\*\\*)\\k<open> # Close\n)\n",captures:{"1":{name:"punctuation.definition.bold.markdown"}},end:"(?<=\\S)(\\1)",name:"markup.bold.markdown",patterns:[{applyEndPatternLast:1,begin:"(?=<[^>]*?>)",end:"(?<=>)",patterns:[{include:"text.html.derivative"}]},{include:"#escape"},{include:"#ampersand"},{include:"#bracket"},{include:"#raw"},{include:"#bold"},{include:"#italic"},{include:"#image-inline"},{include:"#link-inline"},{include:"#link-inet"},{include:"#link-email"},{include:"#image-ref"},{include:"#link-ref-literal"},{include:"#link-ref"},{include:"#link-ref-shortcut"},{include:"#strikethrough"}]},bracket:{comment:"Markdown will convert this for us. We match it so that the HTML grammar will not mark it up as invalid.",match:"<(?![a-zA-Z/?\\$!])",name:"meta.other.valid-bracket.markdown"},"escape":{match:"\\\\[-`*_#+.!(){}\\[\\]\\\\>]",name:"constant.character.escape.markdown"},"image-inline":{captures:{"1":{name:"punctuation.definition.link.description.begin.markdown"},"2":{name:"string.other.link.description.markdown"},"4":{name:"punctuation.definition.link.description.end.markdown"},"5":{name:"punctuation.definition.metadata.markdown"},"7":{name:"punctuation.definition.link.markdown"},"8":{name:"markup.underline.link.image.markdown"},"9":{name:"punctuation.definition.link.markdown"},"10":{name:"markup.underline.link.image.markdown"},"12":{name:"string.other.link.description.title.markdown"},"13":{name:"punctuation.definition.string.begin.markdown"},"14":{name:"punctuation.definition.string.end.markdown"},"15":{name:"string.other.link.description.title.markdown"},"16":{name:"punctuation.definition.string.begin.markdown"},"17":{name:"punctuation.definition.string.end.markdown"},"18":{name:"string.other.link.description.title.markdown"},"19":{name:"punctuation.definition.string.begin.markdown"},"20":{name:"punctuation.definition.string.end.markdown"},"21":{name:"punctuation.definition.metadata.markdown"}},match:"(?x)\n (\\!\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])\n # Match the link text.\n (\\() # Opening paren for url\n # The url\n [ \\t]*\n (\n (<)((?:\\\\[<>]|[^<>\\n])*)(>)\n | ((?<url>(?>[^\\s()]+)|\\(\\g<url>*\\))*)\n )\n [ \\t]*\n (?:\n ((\\().+?(\\))) # Match title in parens…\n | ((\").+?(\")) # or in double quotes…\n | ((').+?(')) # or in single quotes.\n )? # Title is optional\n \\s* # Optional whitespace\n (\\))\n",name:"meta.image.inline.markdown"},"image-ref":{captures:{"1":{name:"punctuation.definition.link.description.begin.markdown"},"2":{name:"string.other.link.description.markdown"},"4":{name:"punctuation.definition.link.description.end.markdown"},"5":{name:"punctuation.definition.constant.markdown"},"6":{name:"constant.other.reference.link.markdown"},"7":{name:"punctuation.definition.constant.markdown"}},match:"(\\!\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])[ ]?(\\[)(.*?)(\\])",name:"meta.image.reference.markdown"},italic:{begin:"(?x) (?<open>(\\*(?=\\w)|(?<!\\w)\\*|(?<!\\w)\\b_))(?=\\S) # Open\n (?=\n (\n <[^>]*+> # HTML tags\n | (?<raw>`+)([^`]|(?!(?<!`)\\k<raw>(?!`))`)*+\\k<raw>\n # Raw\n | \\\\[\\\\`*_{}\\[\\]()#.!+\\->]?+ # Escapes\n | \\[\n (\n (?<square> # Named group\n [^\\[\\]\\\\] # Match most chars\n | \\\\. # Escaped chars\n | \\[ \\g<square>*+ \\] # Nested brackets\n )*+\n \\]\n (\n ( # Reference Link\n [ ]? # Optional space\n \\[[^\\]]*+\\] # Ref name\n )\n | ( # Inline Link\n \\( # Opening paren\n [ \\t]*+ # Optional whtiespace\n <?(.*?)>? # URL\n [ \\t]*+ # Optional whtiespace\n ( # Optional Title\n (?<title>['\"])\n (.*?)\n \\k<title>\n )?\n \\)\n )\n )\n )\n | \\k<open>\\k<open> # Must be bold closer\n | (?!(?<=\\S)\\k<open>). # Everything besides\n # style closer\n )++\n (?<=\\S)(?=_\\b|\\*)\\k<open> # Close\n )\n",captures:{"1":{name:"punctuation.definition.italic.markdown"}},end:"(?<=\\S)(\\1)((?!\\1)|(?=\\1\\1))",name:"markup.italic.markdown",patterns:[{applyEndPatternLast:1,begin:"(?=<[^>]*?>)",end:"(?<=>)",patterns:[{include:"text.html.derivative"}]},{include:"#escape"},{include:"#ampersand"},{include:"#bracket"},{include:"#raw"},{include:"#bold"},{include:"#image-inline"},{include:"#link-inline"},{include:"#link-inet"},{include:"#link-email"},{include:"#image-ref"},{include:"#link-ref-literal"},{include:"#link-ref"},{include:"#link-ref-shortcut"},{include:"#strikethrough"}]},"link-email":{captures:{"1":{name:"punctuation.definition.link.markdown"},"2":{name:"markup.underline.link.markdown"},"4":{name:"punctuation.definition.link.markdown"}},match:"(<)((?:mailto:)?[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*)(>)",name:"meta.link.email.lt-gt.markdown"},"link-inet":{captures:{"1":{name:"punctuation.definition.link.markdown"},"2":{name:"markup.underline.link.markdown"},"3":{name:"punctuation.definition.link.markdown"}},match:"(<)((?:https?|ftp)://.*?)(>)",name:"meta.link.inet.markdown"},"link-inline":{captures:{"1":{name:"punctuation.definition.link.title.begin.markdown"},"2":{name:"string.other.link.title.markdown",patterns:[{include:"#raw"},{include:"#bold"},{include:"#italic"},{include:"#strikethrough"},{include:"#image-inline"}]},"4":{name:"punctuation.definition.link.title.end.markdown"},"5":{name:"punctuation.definition.metadata.markdown"},"7":{name:"punctuation.definition.link.markdown"},"8":{name:"markup.underline.link.markdown"},"9":{name:"punctuation.definition.link.markdown"},"10":{name:"markup.underline.link.markdown"},"12":{name:"string.other.link.description.title.markdown"},"13":{name:"punctuation.definition.string.begin.markdown"},"14":{name:"punctuation.definition.string.end.markdown"},"15":{name:"string.other.link.description.title.markdown"},"16":{name:"punctuation.definition.string.begin.markdown"},"17":{name:"punctuation.definition.string.end.markdown"},"18":{name:"string.other.link.description.title.markdown"},"19":{name:"punctuation.definition.string.begin.markdown"},"20":{name:"punctuation.definition.string.end.markdown"},"21":{name:"punctuation.definition.metadata.markdown"}},match:"(?x)\n (\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])\n # Match the link text.\n (\\() # Opening paren for url\n # The url\n [ \\t]*\n (\n (<)((?:\\\\[<>]|[^<>\\n])*)(>)\n | ((?<url>(?>[^\\s()]+)|\\(\\g<url>*\\))*)\n )\n [ \\t]*\n # The title \n (?:\n ((\\()[^()]*(\\))) # Match title in parens…\n | ((\")[^\"]*(\")) # or in double quotes…\n | ((')[^']*(')) # or in single quotes.\n )? # Title is optional\n \\s* # Optional whitespace\n (\\))\n",name:"meta.link.inline.markdown"},"link-ref":{captures:{"1":{name:"punctuation.definition.link.title.begin.markdown"},"2":{name:"string.other.link.title.markdown",patterns:[{include:"#raw"},{include:"#bold"},{include:"#italic"},{include:"#strikethrough"},{include:"#image-inline"}]},"4":{name:"punctuation.definition.link.title.end.markdown"},"5":{name:"punctuation.definition.constant.begin.markdown"},"6":{name:"constant.other.reference.link.markdown"},"7":{name:"punctuation.definition.constant.end.markdown"}},match:"(?<![\\]\\\\])(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])(\\[)([^\\]]*+)(\\])",name:"meta.link.reference.markdown"},"link-ref-literal":{captures:{"1":{name:"punctuation.definition.link.title.begin.markdown"},"2":{name:"string.other.link.title.markdown"},"4":{name:"punctuation.definition.link.title.end.markdown"},"5":{name:"punctuation.definition.constant.begin.markdown"},"6":{name:"punctuation.definition.constant.end.markdown"}},match:"(?<![\\]\\\\])(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])[ ]?(\\[)(\\])",name:"meta.link.reference.literal.markdown"},"link-ref-shortcut":{captures:{"1":{name:"punctuation.definition.link.title.begin.markdown"},"2":{name:"string.other.link.title.markdown"},"3":{name:"punctuation.definition.link.title.end.markdown"}},match:"(?<![\\]\\\\])(\\[)(\\S+?)(\\])",name:"meta.link.reference.markdown"},raw:{captures:{"1":{name:"punctuation.definition.raw.markdown"},"3":{name:"punctuation.definition.raw.markdown"}},match:"(`+)((?:[^`]|(?!(?<!`)\\1(?!`))`)*+)(\\1)",name:"markup.inline.raw.string.markdown"},strikethrough:{captures:{"1":{name:"punctuation.definition.strikethrough.markdown"},"2":{patterns:[{applyEndPatternLast:1,begin:"(?=<[^>]*?>)",end:"(?<=>)",patterns:[{include:"text.html.derivative"}]},{include:"#escape"},{include:"#ampersand"},{include:"#bracket"},{include:"#raw"},{include:"#bold"},{include:"#italic"},{include:"#image-inline"},{include:"#link-inline"},{include:"#link-inet"},{include:"#link-email"},{include:"#image-ref"},{include:"#link-ref-literal"},{include:"#link-ref"},{include:"#link-ref-shortcut"}]},"3":{name:"punctuation.definition.strikethrough.markdown"}},match:"(?<!\\\\)(~{2,})((?:[^~]|(?!(?<![~\\\\])\\1(?!~))~)*+)(\\1)",name:"markup.strikethrough.markdown"}}}; + +export { markdown_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/marko.tmLanguage-f7cdd412.mjs b/docs/shiki/dist/languages/marko.tmLanguage-f7cdd412.mjs new file mode 100644 index 00000000..d1af2baa --- /dev/null +++ b/docs/shiki/dist/languages/marko.tmLanguage-f7cdd412.mjs @@ -0,0 +1,3 @@ +var marko_tmLanguage = {fileTypes:["marko"],name:"marko",patterns:[{begin:"^\\s*(style)\\s+(\\{)",beginCaptures:{"1":{name:"storage.type.marko.css"},"2":{name:"punctuation.section.scope.begin.marko.css"}},comment:"CSS style block, eg: style { color: green }",contentName:"source.css",end:"\\}",endCaptures:{"0":{name:"punctuation.section.scope.end.marko.css"}},name:"meta.embedded.css",patterns:[{include:"source.css"}]},{begin:"^\\s*(style)\\.(less)\\s+(\\{)",beginCaptures:{"1":{name:"storage.type.marko.css"},"2":{name:"storage.modifier.marko.css"},"3":{name:"punctuation.section.scope.begin.marko.css"}},comment:"Less style block, eg: style.less { color: green }",contentName:"source.less",end:"\\}",endCaptures:{"0":{name:"punctuation.section.scope.end.marko.css"}},name:"meta.embedded.less",patterns:[{include:"source.css.less"}]},{begin:"^\\s*(style)\\.(scss)\\s+(\\{)",beginCaptures:{"1":{name:"storage.type.marko.css"},"2":{name:"storage.modifier.marko.css"},"3":{name:"punctuation.section.scope.begin.marko.css"}},comment:"SCSS style block, eg: style.scss { color: green }",contentName:"source.scss",end:"\\}",endCaptures:{"0":{name:"punctuation.section.scope.end.marko.css"}},name:"meta.embedded.scss",patterns:[{include:"source.css.scss"}]},{begin:"^\\s*(?:(static )|(?=(?:class|import|export) ))",beginCaptures:{"1":{name:"keyword.control.static.marko"}},comment:"Top level blocks parsed as JavaScript",contentName:"source.js",end:"(?=\\n|$)",name:"meta.embedded.js",patterns:[{include:"#javascript-statement"}]},{include:"#content-concise-mode"}],repository:{attrs:{patterns:[{applyEndPatternLast:1,begin:"(?:\\s+|,)(?:(key|on[a-zA-Z0-9_$-]+|[a-zA-Z0-9_$]+Change|no-update(?:-body)?(?:-if)?)|([a-zA-Z0-9_$][a-zA-Z0-9_$-]*))(:[a-zA-Z0-9_$][a-zA-Z0-9_$-]*)?",beginCaptures:{"1":{name:"support.type.attribute-name.marko"},"2":{name:"entity.other.attribute-name.marko"},"3":{name:"support.function.attribute-name.marko"}},comment:"Attribute with optional value",end:"(?=.|$)",name:"meta.marko-attribute",patterns:[{include:"#html-args-or-method"},{applyEndPatternLast:1,begin:"\\s*(:?=)\\s*",beginCaptures:{"1":{patterns:[{include:"source.js"}]}},comment:"Attribute value",contentName:"source.js",end:"(?=.|$)",name:"meta.embedded.js",patterns:[{include:"#javascript-expression"}]}]},{applyEndPatternLast:1,begin:"(?:\\s+|,)\\.\\.\\.",beginCaptures:{"1":{name:"keyword.operator.spread.marko"}},comment:"A ...spread attribute",contentName:"source.js",end:"(?=.|$)",name:"meta.marko-spread-attribute",patterns:[{include:"#javascript-expression"}]},{begin:"\\s*(,(?!,))",captures:{"1":{patterns:[{include:"source.js"}]}},comment:"Consume any whitespace after a comma",end:"(?!\\S)"},{include:"#javascript-comment-multiline"},{include:"#invalid"}]},"concise-html-block":{begin:"\\s*(--+)\\s*$",beginCaptures:{"2":{name:"punctuation.section.scope.begin.marko"}},comment:"--- HTML block within concise mode content. ---",end:"\\1",endCaptures:{"1":{name:"punctuation.section.scope.end.marko"}},name:"meta.section.marko-html-block",patterns:[{include:"#content-html-mode"}]},"concise-html-line":{captures:{"1":{name:"punctuation.section.scope.begin.marko"},"2":{patterns:[{include:"#html-comments"},{include:"#tag-html"},{match:"\\\\.",name:"string"},{include:"#placeholder"},{match:".+?",name:"string"}]}},comment:"-- HTML line within concise mode content. (content-html-mode w/o scriptlet)",match:"\\s*(--+)(?=\\s+\\S)(.*$)",name:"meta.section.marko-html-line"},"concise-open-tag-content":{patterns:[{include:"#tag-before-attrs"},{begin:"\\s*\\[",beginCaptures:{"0":{name:"punctuation.section.scope.begin.marko"}},end:"]",endCaptures:{"0":{name:"punctuation.section.scope.end.marko"}},patterns:[{include:"#attrs"},{include:"#invalid"}]},{begin:"(?!^)(?= )",end:"(?=--)|(?<!,)(?=\\n)",patterns:[{include:"#attrs"},{include:"#invalid"}]}]},"concise-script-block":{begin:"(\\s+)(--+)\\s*$",beginCaptures:{"2":{name:"punctuation.section.scope.begin.marko"}},comment:"--- Embedded concise script content block. ---",end:"(\\2)|(?=^(?!\\1)\\s*\\S)",endCaptures:{"1":{name:"punctuation.section.scope.end.marko"}},name:"meta.section.marko-script-block",patterns:[{include:"#content-embedded-script"}]},"concise-script-line":{applyEndPatternLast:1,begin:"\\s*(--+)",beginCaptures:{"1":{name:"punctuation.section.scope.begin.marko"}},comment:"-- Embedded concise script content line.",end:"$",name:"meta.section.marko-script-line",patterns:[{include:"#content-embedded-script"}]},"concise-style-block":{begin:"(\\s+)(--+)\\s*$",beginCaptures:{"2":{name:"punctuation.section.scope.begin.marko"}},comment:"--- Embedded concise style content block. ---",contentName:"source.css",end:"(\\2)|(?=^(?!\\1)\\s*\\S)",endCaptures:{"1":{name:"punctuation.section.scope.end.marko"}},name:"meta.section.marko-style-block",patterns:[{include:"#content-embedded-style"}]},"concise-style-block-less":{begin:"(\\s+)(--+)\\s*$",beginCaptures:{"2":{name:"punctuation.section.scope.begin.marko"}},comment:"--- Embedded concise style content block. ---",contentName:"source.less",end:"(\\2)|(?=^(?!\\1)\\s*\\S)",endCaptures:{"1":{name:"punctuation.section.scope.end.marko"}},name:"meta.section.marko-style-block",patterns:[{include:"#content-embedded-style-less"}]},"concise-style-block-scss":{begin:"(\\s+)(--+)\\s*$",beginCaptures:{"2":{name:"punctuation.section.scope.begin.marko"}},comment:"--- Embedded concise style content block. ---",contentName:"source.scss",end:"(\\2)|(?=^(?!\\1)\\s*\\S)",endCaptures:{"1":{name:"punctuation.section.scope.end.marko"}},name:"meta.section.marko-style-block",patterns:[{include:"#content-embedded-style-scss"}]},"concise-style-line":{applyEndPatternLast:1,begin:"\\s*(--+)",beginCaptures:{"1":{name:"punctuation.section.scope.begin.marko"}},comment:"-- Embedded concise style content line.",contentName:"source.css",end:"$",name:"meta.section.marko-style-line",patterns:[{include:"#content-embedded-style"}]},"concise-style-line-less":{applyEndPatternLast:1,begin:"\\s*(--+)",beginCaptures:{"1":{name:"punctuation.section.scope.begin.marko"}},comment:"-- Embedded concise style content line.",contentName:"source.less",end:"$",name:"meta.section.marko-style-line",patterns:[{include:"#content-embedded-style-less"}]},"concise-style-line-scss":{applyEndPatternLast:1,begin:"\\s*(--+)",beginCaptures:{"1":{name:"punctuation.section.scope.begin.marko"}},comment:"-- Embedded concise style content line.",contentName:"source.scss",end:"$",name:"meta.section.marko-style-line",patterns:[{include:"#content-embedded-style-scss"}]},"content-concise-mode":{comment:"Concise mode content block.",name:"meta.marko-concise-content",patterns:[{include:"#scriptlet"},{include:"#javascript-comments"},{include:"#html-comments"},{include:"#concise-html-block"},{include:"#concise-html-line"},{include:"#tag-html"},{comment:"A concise html tag.",patterns:[{begin:"^(\\s*)(?=style\\.less\\b)",comment:"Concise style tag less",patterns:[{include:"#concise-open-tag-content"},{include:"#concise-style-block-less"},{include:"#concise-style-line-less"}],"while":"(?=^\\1\\s+(\\S|$))"},{begin:"^(\\s*)(?=style\\.scss\\b)",comment:"Concise style tag scss",patterns:[{include:"#concise-open-tag-content"},{include:"#concise-style-block-scss"},{include:"#concise-style-line-scss"}],"while":"(?=^\\1\\s+(\\S|$))"},{begin:"^(\\s*)(?=style\\b)",comment:"Concise style tag",patterns:[{include:"#concise-open-tag-content"},{include:"#concise-style-block"},{include:"#concise-style-line"}],"while":"(?=^\\1\\s+(\\S|$))"},{begin:"^(\\s*)(?=script\\b)",comment:"Concise script tag",patterns:[{include:"#concise-open-tag-content"},{include:"#concise-script-block"},{include:"#concise-script-line"}],"while":"(?=^\\1\\s+(\\S|$))"},{begin:"^(\\s*)(?=[a-zA-Z0-9_$@])",comment:"Normal concise tag",patterns:[{include:"#concise-open-tag-content"},{include:"#content-concise-mode"}],"while":"(?=^\\1\\s+(\\S|$))"}]},{include:"#invalid"}]},"content-embedded-script":{name:"meta.embedded.js",patterns:[{include:"#placeholder"},{include:"source.js"}]},"content-embedded-style":{name:"meta.embedded.css",patterns:[{include:"#placeholder"},{include:"source.css"}]},"content-embedded-style-less":{name:"meta.embedded.css.less",patterns:[{include:"#placeholder"},{include:"source.css.less"}]},"content-embedded-style-scss":{name:"meta.embedded.css.scss",patterns:[{include:"#placeholder"},{include:"source.css.scss"}]},"content-html-mode":{comment:"HTML mode content block.",patterns:[{include:"#scriptlet"},{include:"#html-comments"},{include:"#tag-html"},{match:"\\\\.",name:"string"},{include:"#placeholder"},{match:".+?",name:"string"}]},"html-args-or-method":{patterns:[{include:"#javascript-args"},{begin:"(?<=\\))\\s*(?=\\{)",comment:"Attribute method shorthand following parens",contentName:"source.js",end:"(?<=\\})",name:"meta.embedded.js",patterns:[{include:"source.js"}]}]},"html-comments":{patterns:[{begin:"\\s*(<!(--)?)",beginCaptures:{"1":{name:"punctuation.definition.comment.marko"}},comment:"HTML comments, doctypes & cdata",end:"\\2>",endCaptures:{"0":{name:"punctuation.definition.comment.marko"}},name:"comment.block.marko"},{begin:"\\s*(<html-comment>)",beginCaptures:{"1":{name:"punctuation.definition.comment.marko"}},comment:"Preserved HTML comment tag",end:"</html-comment>",endCaptures:{"0":{name:"punctuation.definition.comment.marko"}},name:"comment.block.marko"}]},invalid:{match:"[^\\s]",name:"invalid.illegal.character-not-allowed-here.marko"},"javascript-args":{begin:"(?=\\()",comment:"Javascript style arguments",contentName:"source.js",end:"(?<=\\))",name:"meta.embedded.js",patterns:[{include:"source.js"}]},"javascript-comment-line":{captures:{"0":{patterns:[{include:"source.js"}]}},comment:"JavaScript // single line comment",contentName:"source.js",match:"\\s*//.*$"},"javascript-comment-multiline":{begin:"\\s*(?=/\\*)",comment:"JavaScript /* block comment */",contentName:"source.js",end:"(?<=\\*/)",patterns:[{include:"source.js"}]},"javascript-comments":{patterns:[{include:"#javascript-comment-multiline"},{include:"#javascript-comment-line"}]},"javascript-enclosed":{comment:"Matches JavaScript content and ensures enclosed blocks are matched.",patterns:[{include:"#javascript-comments"},{include:"#javascript-args"},{begin:"(?={)",end:"(?<=})",patterns:[{include:"source.js"}]},{begin:"(?=\\[)",end:"(?<=])",patterns:[{include:"source.js"}]},{begin:"(?=\")",end:"(?<=\")",patterns:[{include:"source.js"}]},{begin:"(?=')",end:"(?<=')",patterns:[{include:"source.js"}]},{begin:"(?=`)",end:"(?<=`)",patterns:[{include:"source.js"}]},{begin:"/(?!<[\\]})A-Z0-9.<%]\\s*/)(?!/?>|$)",captures:{"0":{name:"string.regexp.js"}},contentName:"source.js",end:"/[gimsuy]*",patterns:[{include:"source.js#regexp"},{include:"source.js"}]},{begin:"(?x)\\s*(?:\n\t\t\t\t\t\t\t\t(?:\\b(?:new|typeof|instanceof|in)\\b)| # Keyword operators\n\t\t\t\t\t\t\t\t\\&\\&|\\|\\|| # Logical operators\n\t\t\t\t\t\t\t\t[\\^|&]| # Bitwise operators\n\t\t\t\t\t\t\t\t[!=]=|[!=]==|<|<[=<]|=>| # Comparison operators (Note you cannot use * or ? here)\n\t\t\t\t\t\t\t\t[?:]| # Ternary operators\n\t\t\t\t\t\t\t\t[-+*%](?!-) # Arithmetic operators\n\t\t\t\t\t\t\t)",captures:{"0":{patterns:[{include:"source.js"}]}},end:"(?=\\S)"}]},"javascript-expression":{patterns:[{include:"#javascript-enclosed"},{captures:{"0":{patterns:[{include:"source.js"}]}},comment:"Match identifiers and member expressions",match:"[0-9a-zA-Z$_.]+"}]},"javascript-statement":{patterns:[{include:"#javascript-enclosed"},{include:"source.js"}]},"open-tag-content":{patterns:[{include:"#tag-before-attrs"},{begin:"(?= )",comment:"Attributes begin after the first space within the tag name",end:"(?=/?>)",patterns:[{include:"#attrs"}]}]},placeholder:{begin:"\\$!?{",beginCaptures:{"0":{name:"punctuation.definition.template-expression.begin.js"}},comment:"${ } placeholder",contentName:"source.js",end:"}",endCaptures:{"0":{name:"punctuation.definition.template-expression.end.js"}},patterns:[{include:"source.js"}]},scriptlet:{begin:"^\\s*(\\$)\\s+",beginCaptures:{"1":{name:"keyword.control.scriptlet.marko"}},comment:"An inline JavaScript scriptlet.",contentName:"source.js",end:"$",name:"meta.embedded.js",patterns:[{include:"#javascript-statement"}]},"tag-before-attrs":{comment:"Everything in a tag before the attributes content",patterns:[{include:"#tag-name"},{comment:"Shorthand class or ID attribute",match:"[#.][a-zA-Z0-9_$][a-zA-Z0-9_$-]*",name:"entity.other.attribute-name.marko"},{begin:"/(?!/)",beginCaptures:{"0":{name:"punctuation.separator.key-value.marko"}},comment:"Variable for a tag",contentName:"source.js",end:"(?=:?\\=|\\s|>|$|\\||\\(|/)",name:"meta.embedded.js",patterns:[{comment:"Match identifiers",match:"[a-zA-Z$_][0-9a-zA-Z$_]*",name:"variable.other.constant.object.js"},{include:"source.js#object-binding-pattern"},{include:"source.js#array-binding-pattern"},{include:"source.js#var-single-variable"},{include:"#javascript-expression"}]},{applyEndPatternLast:1,begin:"\\s*(:?=)\\s*",beginCaptures:{"1":{patterns:[{include:"source.js"}]}},comment:"Default attribute value",contentName:"source.js",end:"(?=.|$)",name:"meta.embedded.js",patterns:[{include:"#javascript-expression"}]},{begin:"\\|",beginCaptures:{"0":{name:"punctuation.section.scope.begin.marko"}},comment:"Parameters for a tag",end:"\\|",endCaptures:{"0":{name:"punctuation.section.scope.end.marko"}},patterns:[{include:"source.js#function-parameters-body"},{include:"source.js"}]},{include:"#html-args-or-method"}]},"tag-html":{comment:"Matches an HTML tag and its contents",patterns:[{begin:"\\s*(<)(?=(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)\\b)",beginCaptures:{"1":{name:"punctuation.definition.tag.end.marko"}},comment:"HTML void elements",end:"/?>",endCaptures:{"0":{name:"punctuation.definition.tag.end.marko"}},patterns:[{include:"#open-tag-content"}]},{begin:"\\s*(<)(?=style\\.less\\b)",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.marko"}},comment:"HTML style tag with less",end:"/>|(?<=\\>)",endCaptures:{"0":{name:"punctuation.definition.tag.end.marko"}},patterns:[{include:"#open-tag-content"},{begin:">",beginCaptures:{"0":{name:"punctuation.definition.tag.end.marko"}},comment:"Style body content",contentName:"source.less",end:"\\s*(</)(style)?(>)",endCaptures:{"1":{name:"punctuation.definition.tag.end.marko"},"2":{patterns:[{include:"#tag-name"}]},"3":{name:"punctuation.definition.tag.end.marko"}},patterns:[{include:"#content-embedded-style-less"}]}]},{begin:"\\s*(<)(?=style\\.scss\\b)",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.marko"}},comment:"HTML style tag with scss",end:"/>|(?<=\\>)",endCaptures:{"0":{name:"punctuation.definition.tag.end.marko"}},patterns:[{include:"#open-tag-content"},{begin:">",beginCaptures:{"0":{name:"punctuation.definition.tag.end.marko"}},comment:"Style body content",contentName:"source.less",end:"\\s*(</)(style)?(>)",endCaptures:{"1":{name:"punctuation.definition.tag.end.marko"},"2":{patterns:[{include:"#tag-name"}]},"3":{name:"punctuation.definition.tag.end.marko"}},patterns:[{include:"#content-embedded-style-scss"}]}]},{begin:"\\s*(<)(?=style\\b)",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.marko"}},comment:"HTML style tag",end:"/>|(?<=\\>)",endCaptures:{"0":{name:"punctuation.definition.tag.end.marko"}},patterns:[{include:"#open-tag-content"},{begin:">",beginCaptures:{"0":{name:"punctuation.definition.tag.end.marko"}},comment:"Style body content",contentName:"source.css",end:"\\s*(</)(style)?(>)",endCaptures:{"1":{name:"punctuation.definition.tag.end.marko"},"2":{patterns:[{include:"#tag-name"}]},"3":{name:"punctuation.definition.tag.end.marko"}},patterns:[{include:"#content-embedded-style"}]}]},{begin:"\\s*(<)(?=script\\b)",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.marko"}},comment:"HTML script tag",end:"/>|(?<=\\>)",endCaptures:{"0":{name:"punctuation.definition.tag.end.marko"}},patterns:[{include:"#open-tag-content"},{begin:">",beginCaptures:{"0":{name:"punctuation.definition.tag.end.marko"}},comment:"Script body content",contentName:"source.js",end:"\\s*(</)(script)?(>)",endCaptures:{"1":{name:"punctuation.definition.tag.end.marko"},"2":{patterns:[{include:"#tag-name"}]},"3":{name:"punctuation.definition.tag.end.marko"}},patterns:[{include:"#content-embedded-script"}]}]},{begin:"\\s*(<)(?=[a-zA-Z0-9_$@])",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.marko"}},comment:"HTML normal tag",end:"/>|(?<=\\>)",endCaptures:{"0":{name:"punctuation.definition.tag.end.marko"}},patterns:[{include:"#open-tag-content"},{begin:">",beginCaptures:{"0":{name:"punctuation.definition.tag.end.marko"}},comment:"Body content",end:"\\s*(</)([a-zA-Z0-9_$:@-]+)?(.*?)(>)",endCaptures:{"1":{name:"punctuation.definition.tag.end.marko"},"2":{patterns:[{include:"#tag-name"}]},"3":{patterns:[{include:"#invalid"}]},"4":{name:"punctuation.definition.tag.end.marko"}},patterns:[{include:"#content-html-mode"}]}]}]},"tag-name":{patterns:[{begin:"\\${",beginCaptures:{"0":{name:"punctuation.definition.template-expression.begin.js"}},comment:"Dynamic tag.",end:"}",endCaptures:{"0":{name:"punctuation.definition.template-expression.end.js"}},patterns:[{include:"source.js"}]},{captures:{"1":{name:"entity.name.tag.marko"},"2":{name:"storage.type.marko.css"},"3":{patterns:[{comment:"Core tag.",match:"(attrs|return|import)(?=\\b)",name:"support.type.builtin.marko"},{comment:"Core tag.",match:"(for|if|while|else-if|else|macro|tag|await|let|const|effect|set|get|id|lifecycle)(?=\\b)",name:"support.function.marko"},{comment:"Attribute tag.",match:"@.+",name:"entity.other.attribute-name.marko"},{comment:"Native or userland tag.",match:".+",name:"entity.name.tag.marko"}]}},match:"(style)\\.([a-zA-Z0-9$_-]+(?:\\.[a-zA-Z0-9$_-]+)*)|([a-zA-Z0-9_$@][a-zA-Z0-9_$@:-]*)"}]}},scopeName:"text.marko",uuid:"46c8c3f8-cabe-466a-a633-5deafdc51253"}; + +export { marko_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/matlab.tmLanguage-bbd592ac.mjs b/docs/shiki/dist/languages/matlab.tmLanguage-bbd592ac.mjs new file mode 100644 index 00000000..449b9bd4 --- /dev/null +++ b/docs/shiki/dist/languages/matlab.tmLanguage-bbd592ac.mjs @@ -0,0 +1,3 @@ +var matlab_tmLanguage = {fileTypes:["m"],keyEquivalent:"^~M",name:"matlab",patterns:[{comment:"This and #all_after_command_dual are split out so #command_dual can be excluded in things like (), {}, []",include:"#all_before_command_dual"},{include:"#command_dual"},{include:"#all_after_command_dual"}],repository:{all_before_command_dual:{patterns:[{include:"#classdef"},{include:"#function"},{include:"#blocks"},{include:"#control_statements"},{include:"#global_persistent"},{include:"#parens"},{include:"#square_brackets"},{include:"#indexing_curly_brackets"},{include:"#curly_brackets"}]},all_after_command_dual:{patterns:[{include:"#string"},{include:"#line_continuation"},{include:"#comments"},{include:"#conjugate_transpose"},{include:"#transpose"},{include:"#constants"},{include:"#variables"},{include:"#numbers"},{include:"#operators"}]},blocks:{patterns:[{begin:"\\s*(?:^|[\\s,;])(for)\\b",beginCaptures:{"1":{name:"keyword.control.for.matlab"}},end:"\\s*(?:^|[\\s,;])(end)\\b",endCaptures:{"1":{name:"keyword.control.end.for.matlab"}},name:"meta.for.matlab",patterns:[{include:"$self"}]},{begin:"\\s*(?:^|[\\s,;])(if)\\b",beginCaptures:{"1":{name:"keyword.control.if.matlab"}},end:"\\s*(?:^|[\\s,;])(end)\\b",endCaptures:{"1":{name:"keyword.control.end.if.matlab"},"2":{patterns:[{include:"$self"}]}},name:"meta.if.matlab",patterns:[{captures:{"2":{name:"keyword.control.elseif.matlab"},"3":{patterns:[{include:"$self"}]}},end:"^",match:"(\\s*)(?:^|[\\s,;])(elseif)\\b(.*)$\\n?",name:"meta.elseif.matlab"},{captures:{"2":{name:"keyword.control.else.matlab"},"3":{patterns:[{include:"$self"}]}},end:"^",match:"(\\s*)(?:^|[\\s,;])(else)\\b(.*)?$\\n?",name:"meta.else.matlab"},{include:"$self"}]},{begin:"\\s*(?:^|[\\s,;])(parfor)\\b",beginCaptures:{"1":{name:"keyword.control.for.matlab"}},end:"\\s*(?:^|[\\s,;])(end)\\b",endCaptures:{"1":{name:"keyword.control.end.for.matlab"}},name:"meta.parfor.matlab",patterns:[{begin:"\\G(?!$)",end:"$\\n?",name:"meta.parfor-quantity.matlab",patterns:[{include:"$self"}]},{include:"$self"}]},{begin:"\\s*(?:^|[\\s,;])(spmd)\\b",beginCaptures:{"1":{name:"keyword.control.spmd.matlab"}},end:"\\s*(?:^|[\\s,;])(end)\\b",endCaptures:{"1":{name:"keyword.control.end.spmd.matlab"}},name:"meta.spmd.matlab",patterns:[{begin:"\\G(?!$)",end:"$\\n?",name:"meta.spmd-statement.matlab",patterns:[{include:"$self"}]},{include:"$self"}]},{begin:"\\s*(?:^|[\\s,;])(switch)\\b",beginCaptures:{"1":{name:"keyword.control.switch.matlab"}},end:"\\s*(?:^|[\\s,;])(end)\\b",endCaptures:{"1":{name:"keyword.control.end.switch.matlab"}},name:"meta.switch.matlab",patterns:[{captures:{"2":{name:"keyword.control.case.matlab"},"3":{patterns:[{include:"$self"}]}},end:"^",match:"(\\s*)(?:^|[\\s,;])(case)\\b(.*)$\\n?",name:"meta.case.matlab"},{captures:{"2":{name:"keyword.control.otherwise.matlab"},"3":{patterns:[{include:"$self"}]}},end:"^",match:"(\\s*)(?:^|[\\s,;])(otherwise)\\b(.*)?$\\n?",name:"meta.otherwise.matlab"},{include:"$self"}]},{begin:"\\s*(?:^|[\\s,;])(try)\\b",beginCaptures:{"1":{name:"keyword.control.try.matlab"}},end:"\\s*(?:^|[\\s,;])(end)\\b",endCaptures:{"1":{name:"keyword.control.end.try.matlab"}},name:"meta.try.matlab",patterns:[{captures:{"2":{name:"keyword.control.catch.matlab"},"3":{patterns:[{include:"$self"}]}},end:"^",match:"(\\s*)(?:^|[\\s,;])(catch)\\b(.*)?$\\n?",name:"meta.catch.matlab"},{include:"$self"}]},{begin:"\\s*(?:^|[\\s,;])(while)\\b",beginCaptures:{"1":{name:"keyword.control.while.matlab"}},end:"\\s*(?:^|[\\s,;])(end)\\b",endCaptures:{"1":{name:"keyword.control.end.while.matlab"}},name:"meta.while.matlab",patterns:[{include:"$self"}]}]},classdef:{patterns:[{begin:"(?x)\n\t\t\t\t\t\t\t(^\\s*)\t\t\t\t\t\t\t\t# Leading whitespace\n\t\t\t\t\t\t\t(classdef)\n\t\t\t\t\t\t\t\\b\\s*\n\t\t\t\t\t\t\t(.*)\n\t\t\t\t\t",beginCaptures:{"2":{name:"storage.type.class.matlab"},"3":{patterns:[{match:"(?x)\n\t\t\t\t\t\t\t\t\t\t(\t\t\t\t\t\t\t\t\t# Optional attributes\n\t\t\t\t\t\t\t\t\t\t\t \\( [^)]* \\)\n\t\t\t\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t\t\t\t\t\\s*\n\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t([a-zA-Z][a-zA-Z0-9_]*)\t\t\t# Class name\n\t\t\t\t\t\t\t\t\t\t\t(?:\t\t\t\t\t\t\t\t# Optional inheritance\n\t\t\t\t\t\t\t\t\t\t\t\t\\s*\n\t\t\t\t\t\t\t\t\t\t\t\t(<)\n\t\t\t\t\t\t\t\t\t\t\t\t\\s*\n\t\t\t\t\t\t\t\t\t\t\t\t([^%]*)\n\t\t\t\t\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\\s*($|(?=(%|...)).*)\n\t\t\t\t\t\t\t\t\t",captures:{"1":{patterns:[{match:"[a-zA-Z][a-zA-Z0-9_]*",name:"variable.parameter.class.matlab"},{begin:"=\\s*",end:",|(?=\\))",patterns:[{match:"true|false",name:"constant.language.boolean.matlab"},{include:"#string"}]}]},"2":{name:"meta.class-declaration.matlab"},"3":{name:"entity.name.section.class.matlab"},"4":{name:"keyword.operator.other.matlab"},"5":{patterns:[{match:"[a-zA-Z][a-zA-Z0-9_]*(\\.[a-zA-Z][a-zA-Z0-9_]*)*",name:"entity.other.inherited-class.matlab"},{match:"&",name:"keyword.operator.other.matlab"}]},"6":{patterns:[{include:"$self"}]}}}]}},end:"\\s*(?:^|[\\s,;])(end)\\b",endCaptures:{"1":{name:"keyword.control.end.class.matlab"}},name:"meta.class.matlab",patterns:[{begin:"(?x)\n\t\t\t\t\t\t\t\t\t(^\\s*)\t\t\t\t\t\t\t\t# Leading whitespace\n\t\t\t\t\t\t\t\t\t(properties)\\b([^%]*)\n\t\t\t\t\t\t\t\t\t\\s*\n\t\t\t\t\t\t\t\t\t(\t\t\t\t\t\t\t\t\t# Optional attributes\n\t\t\t\t\t\t\t\t\t\t\\( [^)]* \\)\n\t\t\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t\t\t\t\\s*($|(?=%))\n\t\t\t\t\t\t\t\t",beginCaptures:{"2":{name:"keyword.control.properties.matlab"},"3":{patterns:[{match:"[a-zA-Z][a-zA-Z0-9_]*",name:"variable.parameter.properties.matlab"},{begin:"=\\s*",end:",|(?=\\))",patterns:[{match:"true|false",name:"constant.language.boolean.matlab"},{match:"public|protected|private",name:"constant.language.access.matlab"}]}]}},end:"\\s*(?:^|[\\s,;])(end)\\b",endCaptures:{"1":{name:"keyword.control.end.properties.matlab"}},name:"meta.properties.matlab",patterns:[{include:"#validators"},{include:"$self"}]},{begin:"(?x)\n\t\t\t\t\t\t\t\t\t(^\\s*)\t\t\t\t\t\t\t\t# Leading whitespace\n\t\t\t\t\t\t\t\t\t(methods)\\b([^%]*)\n\t\t\t\t\t\t\t\t\t\\s*\n\t\t\t\t\t\t\t\t\t(\t\t\t\t\t\t\t\t\t# Optional attributes\n\t\t\t\t\t\t\t\t\t\t\\( [^)]* \\)\n\t\t\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t\t\t\t\\s*($|(?=%))\n\t\t\t\t\t\t\t\t",beginCaptures:{"2":{name:"keyword.control.methods.matlab"},"3":{patterns:[{match:"[a-zA-Z][a-zA-Z0-9_]*",name:"variable.parameter.methods.matlab"},{begin:"=\\s*",end:",|(?=\\))",patterns:[{match:"true|false",name:"constant.language.boolean.matlab"},{match:"public|protected|private",name:"constant.language.access.matlab"}]}]}},end:"\\s*(?:^|[\\s,;])(end)\\b",endCaptures:{"1":{name:"keyword.control.end.methods.matlab"}},name:"meta.methods.matlab",patterns:[{include:"$self"}]},{begin:"(?x)\n\t\t\t\t\t\t\t\t\t(^\\s*)\t\t\t\t\t\t\t\t# Leading whitespace\n\t\t\t\t\t\t\t\t\t(events)\\b([^%]*)\n\t\t\t\t\t\t\t\t\t\\s*\n\t\t\t\t\t\t\t\t\t(\t\t\t\t\t\t\t\t\t# Optional attributes\n\t\t\t\t\t\t\t\t\t\t\\( [^)]* \\)\n\t\t\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t\t\t\t\\s*($|(?=%))\n\t\t\t\t\t\t\t\t",beginCaptures:{"2":{name:"keyword.control.events.matlab"},"3":{patterns:[{match:"[a-zA-Z][a-zA-Z0-9_]*",name:"variable.parameter.events.matlab"},{begin:"=\\s*",end:",|(?=\\))",patterns:[{match:"true|false",name:"constant.language.boolean.matlab"},{match:"public|protected|private",name:"constant.language.access.matlab"}]}]}},end:"\\s*(?:^|[\\s,;])(end)\\b",endCaptures:{"1":{name:"keyword.control.end.events.matlab"}},name:"meta.events.matlab",patterns:[{include:"$self"}]},{begin:"(?x)\n\t\t\t\t\t\t\t\t\t(^\\s*)\t\t\t\t\t\t\t\t# Leading whitespace\n\t\t\t\t\t\t\t\t\t(enumeration)\\b([^%]*)\n\t\t\t\t\t\t\t\t\t\\s*($|(?=%))\n\t\t\t\t\t\t\t\t",beginCaptures:{"2":{name:"keyword.control.enumeration.matlab"}},end:"\\s*(?:^|[\\s,;])(end)\\b",endCaptures:{"1":{name:"keyword.control.end.enumeration.matlab"}},name:"meta.enumeration.matlab",patterns:[{include:"$self"}]},{include:"$self"}]}]},command_dual:{captures:{"1":{name:"string.interpolated.matlab"},"2":{name:"variable.other.command.matlab"},"28":{name:"comment.line.percentage.matlab"}},comment:" 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1516 17 18 19 20 21 22 23 24 25 26 27 28",match:"^\\s*((?# A> )([b-df-hk-moq-zA-HJ-MO-Z]\\w*|a|an|a([A-Za-mo-z0-9_]\\w*|n[A-Za-rt-z0-9_]\\w*|ns\\w+)|e|ep|e([A-Za-oq-z0-9_]\\w*|p[A-Za-rt-z0-9_]\\w*|ps\\w+)|in|i([A-Za-mo-z0-9_]\\w*|n[A-Za-eg-z0-9_]\\w*|nf\\w+)|I|In|I([A-Za-mo-z0-9_]\\w*|n[A-Za-eg-z0-9_]\\w*|nf\\w+)|j\\w+|N|Na|N([A-Zb-z0-9_]\\w*|a[A-MO-Za-z0-9_]\\w*|aN\\w+)|n|na|nar|narg|nargi|nargo|nargou|n([A-Zb-z0-9_]\\w*|a([A-Za-mo-qs-z0-9_]\\w*|n\\w+|r([A-Za-fh-z0-9_]\\w*|g([A-Za-hj-nq-z0-9_]\\w*|i([A-Za-mo-z0-9_]\\w*|n\\w+)|o([A-Za-tv-z0-9_]\\w*|u([A-Za-su-z]\\w*|t\\w+))))))|p|p[A-Za-hj-z0-9_]\\w*|pi\\w+)(?# <A )\\s+(((?# B> )([^\\s;,%()=.{&|~<>:+\\-*/\\\\@^'\"]|(?=')|(?=\"))(?# <B )|(?# C> )(\\.\\^|\\.\\*|\\./|\\.\\\\|\\.'|\\.\\(|&&|==|\\|\\||&(?=[^&])|\\|(?=[^\\|])|~=|<=|>=|~(?!=)|<(?!=)|>(?!=)|:|\\+|-|\\*|/|\\\\|@|\\^)(?# <C )(?# D> )([^\\s]|\\s*(?=%)|\\s+$|\\s+(,|;|\\)|}|\\]|&|\\||<|>|=|:|\\*|/|\\\\|\\^|@|(\\.[^\\d.]|\\.\\.[^.])))(?# <D )|(?# E> )(\\.[^^*/\\\\'(\\sA-Za-z])(?# <E ))(?# F> )([^%]|'[^']*'|\"[^\"]*\")*(?# <F )|(?# X> )(\\.(?=\\s)|\\.[A-Za-z]|(?={))(?# <X )(?# Y> )([^(=\\'\"%]|==|'[^']*'|\"[^\"]*\"|\\(|\\([^)%]*\\)|\\[|\\[[^\\]%]*\\]|{|{[^}%]*})*(\\.\\.\\.[^%]*)?((?=%)|$)(?# <Y )))(%.*)?$"},comment_block:{begin:"(^[\\s]*)%\\{[^\\n\\S]*+\\n",beginCaptures:{"1":{name:"punctuation.definition.comment.matlab"}},end:"^[\\s]*%\\}[^\\n\\S]*+(?:\\n|$)",name:"comment.block.percentage.matlab",patterns:[{include:"#comment_block"},{match:"^[^\\n]*\\n"}]},comments:{patterns:[{begin:"(^[ \\t]+)?(?=%%\\s)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.matlab"}},end:"(?!\\G)",patterns:[{begin:"%%",beginCaptures:{"0":{name:"punctuation.definition.comment.matlab"}},end:"\\n",name:"comment.line.double-percentage.matlab",patterns:[{begin:"\\G[^\\S\\n]*(?![\\n\\s])",contentName:"meta.cell.matlab",end:"(?=\\n)"}]}]},{include:"#comment_block"},{begin:"(^[ \\t]+)?(?=%)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.matlab"}},end:"(?!\\G)",patterns:[{begin:"%",beginCaptures:{"0":{name:"punctuation.definition.comment.matlab"}},end:"\\n",name:"comment.line.percentage.matlab"}]}]},control_statements:{captures:{"1":{name:"keyword.control.matlab"}},match:"\\s*(?:^|[\\s,;])(break|continue|return)\\b",name:"meta.control.matlab"},"function":{patterns:[{begin:"(?x)\n\t\t\t\t\t\t\t(^\\s*)\t\t\t\t\t\t\t\t\t\t\t\t# Leading whitespace\n\t\t\t\t\t\t\t(function)\n\t\t\t\t\t\t\t\\s+\n\t\t\t\t\t\t\t(?:\t\t\t\t\t\t\t\t\t\t\t\t\t# Optional\n\t\t\t\t\t\t\t\t(?:\n\t\t\t\t\t\t\t\t\t(\\[) ([^\\]]*) (\\])\n\t\t\t\t\t\t\t\t | ([a-zA-Z][a-zA-Z0-9_]*)\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\\s* = \\s*\n\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t\t([a-zA-Z][a-zA-Z0-9_]*(\\.[a-zA-Z][a-zA-Z0-9_]*)*)\t# Function name\n\t\t\t\t\t\t\t\\s*\t\t\t\t\t\t\t\t\t\t\t\t\t# Trailing space\n\t\t\t\t\t\t",beginCaptures:{"2":{name:"storage.type.function.matlab"},"3":{name:"punctuation.definition.arguments.begin.matlab"},"4":{patterns:[{match:"\\w+",name:"variable.parameter.output.matlab"}]},"5":{name:"punctuation.definition.arguments.end.matlab"},"6":{name:"variable.parameter.output.function.matlab"},"7":{name:"entity.name.function.matlab"}},end:"\\s*(?:^|[\\s,;])(end)\\b(\\s*\\n)?",endCaptures:{"1":{name:"keyword.control.end.function.matlab"}},name:"meta.function.matlab",patterns:[{begin:"\\G\\(",end:"\\)",name:"meta.arguments.function.matlab",patterns:[{include:"#line_continuation"},{match:"\\w+",name:"variable.parameter.input.matlab"}]},{begin:"(?x)\n\t\t\t\t\t\t\t\t\t(^\\s*)\t\t\t\t\t\t\t\t# Leading whitespace\n\t\t\t\t\t\t\t\t\t(arguments)\\b([^%]*)\n\t\t\t\t\t\t\t\t\t\\s*\n\t\t\t\t\t\t\t\t\t(\t\t\t\t\t\t\t\t\t# Optional attributes\n\t\t\t\t\t\t\t\t\t\t\\( [^)]* \\)\n\t\t\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t\t\t\t\\s*($|(?=%))\n\t\t\t\t\t\t\t\t",beginCaptures:{"2":{name:"keyword.control.arguments.matlab"},"3":{patterns:[{match:"[a-zA-Z][a-zA-Z0-9_]*",name:"variable.parameter.arguments.matlab"}]}},end:"\\s*(?:^|[\\s,;])(end)\\b",endCaptures:{"1":{name:"keyword.control.end.arguments.matlab"}},name:"meta.arguments.matlab",patterns:[{include:"#validators"},{include:"$self"}]},{include:"$self"}]}]},global_persistent:{captures:{"1":{name:"keyword.control.globalpersistent.matlab"}},match:"^\\s*(global|persistent)\\b",name:"meta.globalpersistent.matlab"},parens:{begin:"\\(",end:"(\\)|(?<!\\.\\.\\.).\\n)",comment:"We don't include $self here to avoid matching command syntax inside (), [], {}",patterns:[{include:"#end_in_parens"},{include:"#all_before_command_dual"},{include:"#all_after_command_dual"},{comment:"These block keywords pick up any such missed keywords when the block matching for things like (), if-end, etc. don't work. Useful for when someone has partially written",include:"#block_keywords"}]},square_brackets:{begin:"\\[",end:"\\]",comment:"We don't include $self here to avoid matching command syntax inside (), [], {}",patterns:[{include:"#all_before_command_dual"},{include:"#all_after_command_dual"},{comment:"These block keywords pick up any such missed keywords when the block matching for things like (), if-end, etc. don't work. Useful for when someone has partially written",include:"#block_keywords"}]},curly_brackets:{begin:"\\{",end:"\\}",comment:"We don't include $self here to avoid matching command syntax inside (), [], {}",patterns:[{include:"#end_in_parens"},{include:"#all_before_command_dual"},{include:"#all_after_command_dual"},{include:"#end_in_parens"},{comment:"These block keywords pick up any such missed keywords when the block matching for things like (), if-end, etc. don't work. Useful for when someone has partially written",include:"#block_keywords"}]},indexing_curly_brackets:{Comment:"Match identifier{idx, idx, } and stop at newline without ... This helps with partially written code like x{idx ",begin:"([a-zA-Z][a-zA-Z0-9_\\.]*\\s*)\\{",beginCaptures:{"1":{patterns:[{include:"$self"}]}},end:"(\\}|(?<!\\.\\.\\.).\\n)",comment:"We don't include $self here to avoid matching command syntax inside (), [], {}",patterns:[{include:"#end_in_parens"},{include:"#all_before_command_dual"},{include:"#all_after_command_dual"},{include:"#end_in_parens"},{comment:"These block keywords pick up any such missed keywords when the block matching for things like (), if-end, etc. don't work. Useful for when someone has partially written",include:"#block_keywords"}]},line_continuation:{captures:{"1":{name:"keyword.operator.symbols.matlab"},"2":{name:"comment.line.continuation.matlab"}},comment:"Line continuations",match:"(\\.\\.\\.)(.*)$",name:"meta.linecontinuation.matlab"},string:{patterns:[{captures:{"1":{name:"string.interpolated.matlab"},"2":{name:"punctuation.definition.string.begin.matlab"}},comment:"Shell command",match:"^\\s*((!).*$\\n?)"},{begin:"((?<=(\\[|\\(|\\{|=|\\s|;|:|,|~|<|>|&|\\||-|\\+|\\*|/|\\\\|\\.|\\^))|^)'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.matlab"}},comment:"Character vector literal (single-quoted)",end:"'(?=(\\[|\\(|\\{|\\]|\\)|\\}|=|~|<|>|&|\\||-|\\+|\\*|/|\\\\|\\.|\\^|\\s|;|:|,))",endCaptures:{"0":{name:"punctuation.definition.string.end.matlab"}},name:"string.quoted.single.matlab",patterns:[{match:"''",name:"constant.character.escape.matlab"},{match:"'(?=.)",name:"invalid.illegal.unescaped-quote.matlab"},{comment:"Operator symbols",match:"((\\%([\\+\\-0]?\\d{0,3}(\\.\\d{1,3})?)(c|d|e|E|f|g|G|s|((b|t)?(o|u|x|X))))|\\%\\%|\\\\(b|f|n|r|t|\\\\))",name:"constant.character.escape.matlab"}]},{begin:"((?<=(\\[|\\(|\\{|=|\\s|;|:|,|~|<|>|&|\\||-|\\+|\\*|/|\\\\|\\.|\\^))|^)\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.matlab"}},comment:"String literal (double-quoted)",end:"\"(?=(\\[|\\(|\\{|\\]|\\)|\\}|=|~|<|>|&|\\||-|\\+|\\*|/|\\\\|\\.|\\^|\\||\\s|;|:|,))",endCaptures:{"0":{name:"punctuation.definition.string.end.matlab"}},name:"string.quoted.double.matlab",patterns:[{match:"\"\"",name:"constant.character.escape.matlab"},{match:"\"(?=.)",name:"invalid.illegal.unescaped-quote.matlab"}]}]},conjugate_transpose:{match:"((?<=[^\\s])|(?<=\\])|(?<=\\))|(?<=\\}))'",name:"keyword.operator.transpose.matlab"},transpose:{match:"\\.'",name:"keyword.operator.transpose.matlab"},constants:{comment:"MATLAB Constants",match:"(?<!\\.)\\b(eps|false|Inf|inf|intmax|intmin|namelengthmax|NaN|nan|on|off|realmax|realmin|true|pi)\\b",name:"constant.language.matlab"},variables:{comment:"MATLAB variables",match:"(?<!\\.)\\b(nargin|nargout|varargin|varargout)\\b",name:"variable.other.function.matlab"},end_in_parens:{comment:"end as operator symbol",match:"\\bend\\b",name:"keyword.operator.symbols.matlab"},numbers:{comment:"Valid numbers: 1, .1, 1.1, .1e1, 1.1e1, 1e1, 1i, 1j, 1e2j",match:"(?<=[\\s\\-\\+\\*\\/\\\\=:\\[\\(\\{,]|^)\\d*\\.?\\d+([eE][+-]?\\d)?([0-9&&[^\\.]])*(i|j)?\\b",name:"constant.numeric.matlab"},operators:{comment:"Operator symbols",match:"(?<=\\s)(==|~=|>|>=|<|<=|&|&&|:|\\||\\|\\||\\+|-|\\*|\\.\\*|/|\\./|\\\\|\\.\\\\|\\^|\\.\\^)(?=\\s)",name:"keyword.operator.symbols.matlab"},validators:{comment:"Property and argument validation. Match an identifier allowing . and ?.",begin:"\\s*[;]?\\s*([a-zA-Z][a-zA-Z0-9_\\.\\?]*)",end:"([;\\n%=].*)",endCaptures:{"1":{patterns:[{comment:"Match comments",match:"([%].*)",captures:{"1":{patterns:[{include:"$self"}]}}},{comment:"Handle things like arg = val; nextArg",match:"(=[^;]*)",captures:{"1":{patterns:[{include:"$self"}]}}},{comment:"End of property/argument patterns which start a new property/argument. Look for beginning of identifier after semicolon. Otherwise treat as regular code.",match:"([\\n;]\\s*[a-zA-Z].*)",captures:{"1":{patterns:[{include:"#validators"}]}}},{include:"$self"}]}},patterns:[{include:"#line_continuation"},{comment:"Size declaration",match:"\\s*(\\([^\\)]*\\))",name:"storage.type.matlab"},{comment:"Type declaration",match:"([a-zA-Z][a-zA-Z0-9_\\.]*)",name:"storage.type.matlab"},{include:"#braced_validator_list"}]},braced_validator_list:{comment:"Validator functions. Treated as a recursive group to permit nested brackets, quotes, etc.",begin:"\\s*({)\\s*",beginCaptures:{"1":{name:"storage.type.matlab"}},end:"(})",endCaptures:{"1":{name:"storage.type.matlab"}},patterns:[{include:"#braced_validator_list"},{include:"#validator_strings"},{include:"#line_continuation"},{match:"([^{}}'\"\\.]+)",captures:{"1":{name:"storage.type.matlab"}}},{match:"\\.",name:"storage.type.matlab"}]},validator_strings:{comment:"Simplified string patterns nested inside validator functions which don't change scopes of matches.",patterns:[{patterns:[{begin:"((?<=(\\[|\\(|\\{|=|\\s|;|:|,|~|<|>|&|\\||-|\\+|\\*|/|\\\\|\\.|\\^))|^)'",comment:"Character vector literal (single-quoted)",end:"'(?=(\\[|\\(|\\{|\\]|\\)|\\}|=|~|<|>|&|\\||-|\\+|\\*|/|\\\\|\\.|\\^|\\s|;|:|,))",name:"storage.type.matlab",patterns:[{match:"''"},{match:"'(?=.)"},{match:"([^']+)"}]},{begin:"((?<=(\\[|\\(|\\{|=|\\s|;|:|,|~|<|>|&|\\||-|\\+|\\*|/|\\\\|\\.|\\^))|^)\"",comment:"String literal (double-quoted)",end:"\"(?=(\\[|\\(|\\{|\\]|\\)|\\}|=|~|<|>|&|\\||-|\\+|\\*|/|\\\\|\\.|\\^|\\||\\s|;|:|,))",name:"storage.type.matlab",patterns:[{match:"\"\""},{match:"\"(?=.)"},{match:"[^\"]+"}]}]}]}},scopeName:"source.matlab",uuid:"48F8858B-72FF-11D9-BFEE-000D93589AF6"}; + +export { matlab_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/mdx.tmLanguage-0e09f242.mjs b/docs/shiki/dist/languages/mdx.tmLanguage-0e09f242.mjs new file mode 100644 index 00000000..ccff3f19 --- /dev/null +++ b/docs/shiki/dist/languages/mdx.tmLanguage-0e09f242.mjs @@ -0,0 +1,3 @@ +var mdx_tmLanguage = {name:"mdx",uuid:"fe65e2cd-7c73-4a27-8b5e-5902893626aa",fileTypes:["mdx"],patterns:[{include:"#markdown-frontmatter"},{include:"#markdown-sections"}],repository:{"markdown-frontmatter":{patterns:[{include:"#extension-toml"},{include:"#extension-yaml"}]},"markdown-sections":{patterns:[{include:"#commonmark-block-quote"},{include:"#commonmark-code-fenced"},{include:"#extension-gfm-footnote-definition"},{include:"#commonmark-definition"},{include:"#commonmark-heading-atx"},{include:"#commonmark-thematic-break"},{include:"#commonmark-heading-setext"},{include:"#commonmark-list-item"},{include:"#extension-gfm-table"},{include:"#extension-math-flow"},{include:"#extension-mdx-esm"},{include:"#extension-mdx-expression-flow"},{include:"#extension-mdx-jsx-flow"},{include:"#commonmark-paragraph"}]},"markdown-string":{patterns:[{include:"#commonmark-character-escape"},{include:"#commonmark-character-reference"}]},"markdown-text":{patterns:[{include:"#commonmark-attention"},{include:"#commonmark-character-escape"},{include:"#commonmark-character-reference"},{include:"#commonmark-code-text"},{include:"#commonmark-hard-break-trailing"},{include:"#commonmark-hard-break-escape"},{include:"#commonmark-label-end"},{include:"#extension-gfm-footnote-call"},{include:"#commonmark-label-start"},{include:"#extension-gfm-autolink-literal"},{include:"#extension-gfm-strikethrough"},{include:"#extension-github-gemoji"},{include:"#extension-github-mention"},{include:"#extension-github-reference"},{include:"#extension-math-text"},{include:"#extension-mdx-expression-text"},{include:"#extension-mdx-jsx-text"}]},"commonmark-attention":{patterns:[{match:"(?<=\\S)\\*{3,}|\\*{3,}(?=\\S)",name:"string.other.strong.emphasis.asterisk.mdx"},{match:"(?<=[\\p{L}\\p{N}])_{3,}(?![\\p{L}\\p{N}])|(?<=\\p{P})_{3,}|(?<![\\p{L}\\p{N}]|\\p{P})_{3,}(?!\\s)",name:"string.other.strong.emphasis.underscore.mdx"},{match:"(?<=\\S)\\*{2}|\\*{2}(?=\\S)",name:"string.other.strong.asterisk.mdx"},{match:"(?<=[\\p{L}\\p{N}])_{2}(?![\\p{L}\\p{N}])|(?<=\\p{P})_{2}|(?<![\\p{L}\\p{N}]|\\p{P})_{2}(?!\\s)",name:"string.other.strong.underscore.mdx"},{match:"(?<=\\S)\\*|\\*(?=\\S)",name:"string.other.emphasis.asterisk.mdx"},{match:"(?<=[\\p{L}\\p{N}])_(?![\\p{L}\\p{N}])|(?<=\\p{P})_|(?<![\\p{L}\\p{N}]|\\p{P})_(?!\\s)",name:"string.other.emphasis.underscore.mdx"}]},"commonmark-block-quote":{begin:"(?:^|\\G)[\\t ]*(>)[ ]?",beginCaptures:{"0":{name:"markup.quote.mdx"},"1":{name:"punctuation.definition.quote.begin.mdx"}},patterns:[{include:"#markdown-sections"}],name:"markup.quote.mdx","while":"(?:^|\\G)[\\t ]*(>)[ ]?",whileCaptures:{"0":{name:"markup.quote.mdx"},"1":{name:"punctuation.definition.quote.begin.mdx"}}},"commonmark-character-escape":{match:"\\\\(?:[!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~])",name:"constant.language.character-escape.mdx"},"commonmark-character-reference":{patterns:[{include:"#whatwg-html-data-character-reference-named-terminated"},{match:"(&)(#)([Xx])([0-9A-Fa-f]{1,6})(;)",name:"constant.language.character-reference.numeric.hexadecimal.html",captures:{"1":{name:"punctuation.definition.character-reference.begin.html"},"2":{name:"punctuation.definition.character-reference.numeric.html"},"3":{name:"punctuation.definition.character-reference.numeric.hexadecimal.html"},"4":{name:"constant.numeric.integer.hexadecimal.html"},"5":{name:"punctuation.definition.character-reference.end.html"}}},{match:"(&)(#)([0-9]{1,7})(;)",name:"constant.language.character-reference.numeric.decimal.html",captures:{"1":{name:"punctuation.definition.character-reference.begin.html"},"2":{name:"punctuation.definition.character-reference.numeric.html"},"3":{name:"constant.numeric.integer.decimal.html"},"4":{name:"punctuation.definition.character-reference.end.html"}}}]},"commonmark-code-fenced":{patterns:[{include:"#commonmark-code-fenced-apib"},{include:"#commonmark-code-fenced-asciidoc"},{include:"#commonmark-code-fenced-c"},{include:"#commonmark-code-fenced-clojure"},{include:"#commonmark-code-fenced-coffee"},{include:"#commonmark-code-fenced-console"},{include:"#commonmark-code-fenced-cpp"},{include:"#commonmark-code-fenced-cs"},{include:"#commonmark-code-fenced-css"},{include:"#commonmark-code-fenced-diff"},{include:"#commonmark-code-fenced-dockerfile"},{include:"#commonmark-code-fenced-elixir"},{include:"#commonmark-code-fenced-elm"},{include:"#commonmark-code-fenced-erlang"},{include:"#commonmark-code-fenced-gitconfig"},{include:"#commonmark-code-fenced-go"},{include:"#commonmark-code-fenced-graphql"},{include:"#commonmark-code-fenced-haskell"},{include:"#commonmark-code-fenced-html"},{include:"#commonmark-code-fenced-ini"},{include:"#commonmark-code-fenced-java"},{include:"#commonmark-code-fenced-js"},{include:"#commonmark-code-fenced-json"},{include:"#commonmark-code-fenced-julia"},{include:"#commonmark-code-fenced-kotlin"},{include:"#commonmark-code-fenced-less"},{include:"#commonmark-code-fenced-less"},{include:"#commonmark-code-fenced-lua"},{include:"#commonmark-code-fenced-makefile"},{include:"#commonmark-code-fenced-md"},{include:"#commonmark-code-fenced-mdx"},{include:"#commonmark-code-fenced-objc"},{include:"#commonmark-code-fenced-perl"},{include:"#commonmark-code-fenced-php"},{include:"#commonmark-code-fenced-php"},{include:"#commonmark-code-fenced-python"},{include:"#commonmark-code-fenced-r"},{include:"#commonmark-code-fenced-raku"},{include:"#commonmark-code-fenced-ruby"},{include:"#commonmark-code-fenced-rust"},{include:"#commonmark-code-fenced-scala"},{include:"#commonmark-code-fenced-scss"},{include:"#commonmark-code-fenced-shell"},{include:"#commonmark-code-fenced-shell-session"},{include:"#commonmark-code-fenced-sql"},{include:"#commonmark-code-fenced-svg"},{include:"#commonmark-code-fenced-swift"},{include:"#commonmark-code-fenced-toml"},{include:"#commonmark-code-fenced-ts"},{include:"#commonmark-code-fenced-tsx"},{include:"#commonmark-code-fenced-vbnet"},{include:"#commonmark-code-fenced-xml"},{include:"#commonmark-code-fenced-yaml"},{include:"#commonmark-code-fenced-unknown"}]},"commonmark-code-fenced-unknown":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?:[^\\t\\n\\r` ])+)(?:[\\t ]+((?:[^\\n\\r`])+))?)?(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"markup.raw.code.fenced.mdx",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.other.mdx"},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?:[^\\t\\n\\r ])+)(?:[\\t ]+((?:[^\\n\\r])+))?)?(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"markup.raw.code.fenced.mdx",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.other.mdx"}]},"commonmark-code-text":{match:"(?<!`)(`+)(?!`)(.+?)(?<!`)(\\1)(?!`)",name:"markup.code.other.mdx",captures:{"1":{name:"string.other.begin.code.mdx"},"2":{name:"markup.raw.code.mdx markup.inline.raw.code.mdx"},"3":{name:"string.other.end.code.mdx"}}},"commonmark-definition":{match:"(?:^|\\G)[\\t ]*(\\[)((?:[^\\[\\\\\\]]|\\\\[\\[\\\\\\]]?)+?)(\\])(:)[ \\t]*(?:(<)((?:[^\\n<\\\\>]|\\\\[<\\\\>]?)*)(>)|(\\g<destination_raw>))(?:[\\t ]+(?:(\")((?:[^\"\\\\]|\\\\[\"\\\\]?)*)(\")|(')((?:[^'\\\\]|\\\\['\\\\]?)*)(')|(\\()((?:[^\\)\\\\]|\\\\[\\)\\\\]?)*)(\\))))?$(?<destination_raw>(?!\\<)(?:(?:[^\\p{Cc}\\ \\\\\\(\\)]|\\\\[\\(\\)\\\\]?)|\\(\\g<destination_raw>*\\))+){0}",name:"meta.link.reference.def.mdx",captures:{"1":{name:"string.other.begin.mdx"},"2":{name:"entity.name.identifier.mdx",patterns:[{include:"#markdown-string"}]},"3":{name:"string.other.end.mdx"},"4":{name:"punctuation.separator.key-value.mdx"},"5":{name:"string.other.begin.destination.mdx"},"6":{name:"string.other.link.destination.mdx",patterns:[{include:"#markdown-string"}]},"7":{name:"string.other.end.destination.mdx"},"8":{name:"string.other.link.destination.mdx",patterns:[{include:"#markdown-string"}]},"9":{name:"string.other.begin.mdx"},"10":{name:"string.quoted.double.mdx",patterns:[{include:"#markdown-string"}]},"11":{name:"string.other.end.mdx"},"12":{name:"string.other.begin.mdx"},"13":{name:"string.quoted.single.mdx",patterns:[{include:"#markdown-string"}]},"14":{name:"string.other.end.mdx"},"15":{name:"string.other.begin.mdx"},"16":{name:"string.quoted.paren.mdx",patterns:[{include:"#markdown-string"}]},"17":{name:"string.other.end.mdx"}}},"commonmark-hard-break-escape":{match:"\\\\$",name:"constant.language.character-escape.line-ending.mdx"},"commonmark-hard-break-trailing":{match:"( ){2,}$",name:"carriage-return constant.language.character-escape.line-ending.mdx"},"commonmark-heading-atx":{patterns:[{match:"(?:^|\\G)[\\t ]*(#{1}(?!#))(?:[ \\t]+([^\\r\\n]+?)(?:[ \\t]+(#+?))?)?[ \\t]*$",name:"markup.heading.atx.1.mdx",captures:{"1":{name:"punctuation.definition.heading.mdx"},"2":{name:"entity.name.section.mdx",patterns:[{include:"#markdown-text"}]},"3":{name:"punctuation.definition.heading.mdx"}}},{match:"(?:^|\\G)[\\t ]*(#{2}(?!#))(?:[ \\t]+([^\\r\\n]+?)(?:[ \\t]+(#+?))?)?[ \\t]*$",name:"markup.heading.atx.2.mdx",captures:{"1":{name:"punctuation.definition.heading.mdx"},"2":{name:"entity.name.section.mdx",patterns:[{include:"#markdown-text"}]},"3":{name:"punctuation.definition.heading.mdx"}}},{match:"(?:^|\\G)[\\t ]*(#{3}(?!#))(?:[ \\t]+([^\\r\\n]+?)(?:[ \\t]+(#+?))?)?[ \\t]*$",name:"markup.heading.atx.2.mdx",captures:{"1":{name:"punctuation.definition.heading.mdx"},"2":{name:"entity.name.section.mdx",patterns:[{include:"#markdown-text"}]},"3":{name:"punctuation.definition.heading.mdx"}}},{match:"(?:^|\\G)[\\t ]*(#{4}(?!#))(?:[ \\t]+([^\\r\\n]+?)(?:[ \\t]+(#+?))?)?[ \\t]*$",name:"markup.heading.atx.2.mdx",captures:{"1":{name:"punctuation.definition.heading.mdx"},"2":{name:"entity.name.section.mdx",patterns:[{include:"#markdown-text"}]},"3":{name:"punctuation.definition.heading.mdx"}}},{match:"(?:^|\\G)[\\t ]*(#{5}(?!#))(?:[ \\t]+([^\\r\\n]+?)(?:[ \\t]+(#+?))?)?[ \\t]*$",name:"markup.heading.atx.2.mdx",captures:{"1":{name:"punctuation.definition.heading.mdx"},"2":{name:"entity.name.section.mdx",patterns:[{include:"#markdown-text"}]},"3":{name:"punctuation.definition.heading.mdx"}}},{match:"(?:^|\\G)[\\t ]*(#{6}(?!#))(?:[ \\t]+([^\\r\\n]+?)(?:[ \\t]+(#+?))?)?[ \\t]*$",name:"markup.heading.atx.2.mdx",captures:{"1":{name:"punctuation.definition.heading.mdx"},"2":{name:"entity.name.section.mdx",patterns:[{include:"#markdown-text"}]},"3":{name:"punctuation.definition.heading.mdx"}}}]},"commonmark-heading-setext":{patterns:[{match:"(?:^|\\G)[\\t ]*(={1,})[ \\t]*$",name:"markup.heading.setext.1.mdx"},{match:"(?:^|\\G)[\\t ]*(-{1,})[ \\t]*$",name:"markup.heading.setext.2.mdx"}]},"commonmark-label-end":{patterns:[{match:"(\\])(\\()[\\t ]*(?:(?:(<)((?:[^\\n<\\\\>]|\\\\[<\\\\>]?)*)(>)|(\\g<destination_raw>))(?:[\\t ]+(?:(\")((?:[^\"\\\\]|\\\\[\"\\\\]?)*)(\")|(')((?:[^'\\\\]|\\\\['\\\\]?)*)(')|(\\()((?:[^\\)\\\\]|\\\\[\\)\\\\]?)*)(\\))))?)?[\\t ]*(\\))(?<destination_raw>(?!\\<)(?:(?:[^\\p{Cc}\\ \\\\\\(\\)]|\\\\[\\(\\)\\\\]?)|\\(\\g<destination_raw>*\\))+){0}",captures:{"1":{name:"string.other.end.mdx"},"2":{name:"string.other.begin.mdx"},"3":{name:"string.other.begin.destination.mdx"},"4":{name:"string.other.link.destination.mdx",patterns:[{include:"#markdown-string"}]},"5":{name:"string.other.end.destination.mdx"},"6":{name:"string.other.link.destination.mdx",patterns:[{include:"#markdown-string"}]},"7":{name:"string.other.begin.mdx"},"8":{name:"string.quoted.double.mdx",patterns:[{include:"#markdown-string"}]},"9":{name:"string.other.end.mdx"},"10":{name:"string.other.begin.mdx"},"11":{name:"string.quoted.single.mdx",patterns:[{include:"#markdown-string"}]},"12":{name:"string.other.end.mdx"},"13":{name:"string.other.begin.mdx"},"14":{name:"string.quoted.paren.mdx",patterns:[{include:"#markdown-string"}]},"15":{name:"string.other.end.mdx"},"16":{name:"string.other.end.mdx"}}},{match:"(\\])(\\[)((?:[^\\[\\\\\\]]|\\\\[\\[\\\\\\]]?)+?)(\\])",captures:{"1":{name:"string.other.end.mdx"},"2":{name:"string.other.begin.mdx"},"3":{name:"entity.name.identifier.mdx",patterns:[{include:"#markdown-string"}]},"4":{name:"string.other.end.mdx"}}},{match:"(\\])",captures:{"1":{name:"string.other.end.mdx"}}}]},"commonmark-label-start":{patterns:[{match:"\\!\\[(?!\\^)",name:"string.other.begin.image.mdx"},{match:"\\[",name:"string.other.begin.link.mdx"}]},"commonmark-list-item":{patterns:[{begin:"(?:^|\\G)[\\t ]*((?:[*+-]))(?:[ ]{4}(?![ ])|\\t)(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?",beginCaptures:{"1":{name:"variable.unordered.list.mdx"},"2":{name:"keyword.other.tasklist.mdx"}},patterns:[{include:"#markdown-sections"}],"while":"^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t)[ ]{1}"},{begin:"(?:^|\\G)[\\t ]*((?:[*+-]))(?:[ ]{3}(?![ ]))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?",beginCaptures:{"1":{name:"variable.unordered.list.mdx"},"2":{name:"keyword.other.tasklist.mdx"}},patterns:[{include:"#markdown-sections"}],"while":"^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t)"},{begin:"(?:^|\\G)[\\t ]*((?:[*+-]))(?:[ ]{2}(?![ ]))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?",beginCaptures:{"1":{name:"variable.unordered.list.mdx"},"2":{name:"keyword.other.tasklist.mdx"}},patterns:[{include:"#markdown-sections"}],"while":"^(?=[\\t ]*$)|(?:^|\\G)[ ]{3}"},{begin:"(?:^|\\G)[\\t ]*((?:[*+-]))(?:[ ]{1}|(?=\\n))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?",beginCaptures:{"1":{name:"variable.unordered.list.mdx"},"2":{name:"keyword.other.tasklist.mdx"}},patterns:[{include:"#markdown-sections"}],"while":"^(?=[\\t ]*$)|(?:^|\\G)[ ]{2}"},{begin:"(?:^|\\G)[\\t ]*([0-9]{9})((?:\\.|\\)))(?:[ ]{4}(?![ ])|\\t(?![\\t ]))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?",beginCaptures:{"1":{name:"string.other.number.mdx"},"2":{name:"variable.ordered.list.mdx"},"3":{name:"keyword.other.tasklist.mdx"}},patterns:[{include:"#markdown-sections"}],"while":"^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t){3}[ ]{2}"},{begin:"(?:^|\\G)[\\t ]*(?:([0-9]{9})((?:\\.|\\)))(?:[ ]{3}(?![ ]))|([0-9]{8})((?:\\.|\\)))(?:[ ]{4}(?![ ])))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?",beginCaptures:{"1":{name:"string.other.number.mdx"},"2":{name:"variable.ordered.list.mdx"},"3":{name:"string.other.number.mdx"},"4":{name:"variable.ordered.list.mdx"},"5":{name:"keyword.other.tasklist.mdx"}},patterns:[{include:"#markdown-sections"}],"while":"^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t){3}[ ]{1}"},{begin:"(?:^|\\G)[\\t ]*(?:([0-9]{9})((?:\\.|\\)))(?:[ ]{2}(?![ ]))|([0-9]{8})((?:\\.|\\)))(?:[ ]{3}(?![ ]))|([0-9]{7})((?:\\.|\\)))(?:[ ]{4}(?![ ])))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?",beginCaptures:{"1":{name:"string.other.number.mdx"},"2":{name:"variable.ordered.list.mdx"},"3":{name:"string.other.number.mdx"},"4":{name:"variable.ordered.list.mdx"},"5":{name:"string.other.number.mdx"},"6":{name:"variable.ordered.list.mdx"},"7":{name:"keyword.other.tasklist.mdx"}},patterns:[{include:"#markdown-sections"}],"while":"^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t){3}"},{begin:"(?:^|\\G)[\\t ]*(?:([0-9]{9})((?:\\.|\\)))(?:[ ]{1}|(?=[ \\t]*\\n))|([0-9]{8})((?:\\.|\\)))(?:[ ]{2}(?![ ]))|([0-9]{7})((?:\\.|\\)))(?:[ ]{3}(?![ ]))|([0-9]{6})((?:\\.|\\)))(?:[ ]{4}(?![ ])))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?",beginCaptures:{"1":{name:"string.other.number.mdx"},"2":{name:"variable.ordered.list.mdx"},"3":{name:"string.other.number.mdx"},"4":{name:"variable.ordered.list.mdx"},"5":{name:"string.other.number.mdx"},"6":{name:"variable.ordered.list.mdx"},"7":{name:"string.other.number.mdx"},"8":{name:"variable.ordered.list.mdx"},"9":{name:"keyword.other.tasklist.mdx"}},patterns:[{include:"#markdown-sections"}],"while":"^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t){2}[ ]{3}"},{begin:"(?:^|\\G)[\\t ]*(?:([0-9]{8})((?:\\.|\\)))(?:[ ]{1}|(?=[ \\t]*\\n))|([0-9]{7})((?:\\.|\\)))(?:[ ]{2}(?![ ]))|([0-9]{6})((?:\\.|\\)))(?:[ ]{3}(?![ ]))|([0-9]{5})((?:\\.|\\)))(?:[ ]{4}(?![ ])))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?",beginCaptures:{"1":{name:"string.other.number.mdx"},"2":{name:"variable.ordered.list.mdx"},"3":{name:"string.other.number.mdx"},"4":{name:"variable.ordered.list.mdx"},"5":{name:"string.other.number.mdx"},"6":{name:"variable.ordered.list.mdx"},"7":{name:"string.other.number.mdx"},"8":{name:"variable.ordered.list.mdx"},"9":{name:"keyword.other.tasklist.mdx"}},patterns:[{include:"#markdown-sections"}],"while":"^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t){2}[ ]{2}"},{begin:"(?:^|\\G)[\\t ]*(?:([0-9]{7})((?:\\.|\\)))(?:[ ]{1}|(?=[ \\t]*\\n))|([0-9]{6})((?:\\.|\\)))(?:[ ]{2}(?![ ]))|([0-9]{5})((?:\\.|\\)))(?:[ ]{3}(?![ ]))|([0-9]{4})((?:\\.|\\)))(?:[ ]{4}(?![ ])))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?",beginCaptures:{"1":{name:"string.other.number.mdx"},"2":{name:"variable.ordered.list.mdx"},"3":{name:"string.other.number.mdx"},"4":{name:"variable.ordered.list.mdx"},"5":{name:"string.other.number.mdx"},"6":{name:"variable.ordered.list.mdx"},"7":{name:"string.other.number.mdx"},"8":{name:"variable.ordered.list.mdx"},"9":{name:"keyword.other.tasklist.mdx"}},patterns:[{include:"#markdown-sections"}],"while":"^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t){2}[ ]{1}"},{begin:"(?:^|\\G)[\\t ]*(?:([0-9]{6})((?:\\.|\\)))(?:[ ]{1}|(?=[ \\t]*\\n))|([0-9]{5})((?:\\.|\\)))(?:[ ]{2}(?![ ]))|([0-9]{4})((?:\\.|\\)))(?:[ ]{3}(?![ ]))|([0-9]{3})((?:\\.|\\)))(?:[ ]{4}(?![ ])))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?",beginCaptures:{"1":{name:"string.other.number.mdx"},"2":{name:"variable.ordered.list.mdx"},"3":{name:"string.other.number.mdx"},"4":{name:"variable.ordered.list.mdx"},"5":{name:"string.other.number.mdx"},"6":{name:"variable.ordered.list.mdx"},"7":{name:"string.other.number.mdx"},"8":{name:"variable.ordered.list.mdx"},"9":{name:"keyword.other.tasklist.mdx"}},patterns:[{include:"#markdown-sections"}],"while":"^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t){2}"},{begin:"(?:^|\\G)[\\t ]*(?:([0-9]{5})((?:\\.|\\)))(?:[ ]{1}|(?=[ \\t]*\\n))|([0-9]{4})((?:\\.|\\)))(?:[ ]{2}(?![ ]))|([0-9]{3})((?:\\.|\\)))(?:[ ]{3}(?![ ]))|([0-9]{2})((?:\\.|\\)))(?:[ ]{4}(?![ ])))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?",beginCaptures:{"1":{name:"string.other.number.mdx"},"2":{name:"variable.ordered.list.mdx"},"3":{name:"string.other.number.mdx"},"4":{name:"variable.ordered.list.mdx"},"5":{name:"string.other.number.mdx"},"6":{name:"variable.ordered.list.mdx"},"7":{name:"string.other.number.mdx"},"8":{name:"variable.ordered.list.mdx"},"9":{name:"keyword.other.tasklist.mdx"}},patterns:[{include:"#markdown-sections"}],"while":"^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t)[ ]{3}"},{begin:"(?:^|\\G)[\\t ]*(?:([0-9]{4})((?:\\.|\\)))(?:[ ]{1}|(?=[ \\t]*\\n))|([0-9]{3})((?:\\.|\\)))(?:[ ]{2}(?![ ]))|([0-9]{2})((?:\\.|\\)))(?:[ ]{3}(?![ ]))|([0-9]{1})((?:\\.|\\)))(?:[ ]{4}(?![ ])))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?",beginCaptures:{"1":{name:"string.other.number.mdx"},"2":{name:"variable.ordered.list.mdx"},"3":{name:"string.other.number.mdx"},"4":{name:"variable.ordered.list.mdx"},"5":{name:"string.other.number.mdx"},"6":{name:"variable.ordered.list.mdx"},"7":{name:"string.other.number.mdx"},"8":{name:"variable.ordered.list.mdx"},"9":{name:"keyword.other.tasklist.mdx"}},patterns:[{include:"#markdown-sections"}],"while":"^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t)[ ]{2}"},{begin:"(?:^|\\G)[\\t ]*(?:([0-9]{3})((?:\\.|\\)))(?:[ ]{1}|(?=[ \\t]*\\n))|([0-9]{2})((?:\\.|\\)))(?:[ ]{2}(?![ ]))|([0-9]{1})((?:\\.|\\)))(?:[ ]{3}(?![ ])))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?",beginCaptures:{"1":{name:"string.other.number.mdx"},"2":{name:"variable.ordered.list.mdx"},"3":{name:"string.other.number.mdx"},"4":{name:"variable.ordered.list.mdx"},"5":{name:"string.other.number.mdx"},"6":{name:"variable.ordered.list.mdx"},"7":{name:"keyword.other.tasklist.mdx"}},patterns:[{include:"#markdown-sections"}],"while":"^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t)[ ]{1}"},{begin:"(?:^|\\G)[\\t ]*(?:([0-9]{2})((?:\\.|\\)))(?:[ ]{1}|(?=[ \\t]*\\n))|([0-9])((?:\\.|\\)))(?:[ ]{2}(?![ ])))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?",beginCaptures:{"1":{name:"string.other.number.mdx"},"2":{name:"variable.ordered.list.mdx"},"3":{name:"string.other.number.mdx"},"4":{name:"variable.ordered.list.mdx"},"5":{name:"keyword.other.tasklist.mdx"}},patterns:[{include:"#markdown-sections"}],"while":"^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t)"},{begin:"(?:^|\\G)[\\t ]*([0-9])((?:\\.|\\)))(?:[ ]{1}|(?=[ \\t]*\\n))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?",beginCaptures:{"1":{name:"string.other.number.mdx"},"2":{name:"variable.ordered.list.mdx"},"3":{name:"keyword.other.tasklist.mdx"}},patterns:[{include:"#markdown-sections"}],"while":"^(?=[\\t ]*$)|(?:^|\\G)[ ]{3}"}]},"commonmark-paragraph":{begin:"(?![\\t ]*$)",name:"meta.paragraph.mdx",patterns:[{include:"#markdown-text"}],"while":"(?:^|\\G)(?:[ ]{4}|\\t)"},"commonmark-thematic-break":{match:"(?:^|\\G)[\\t ]*([-*_])[ \\t]*(?:\\1[ \\t]*){2,}$",name:"meta.separator.mdx"},"extension-gfm-autolink-literal":{patterns:[{match:"(?<=^|[\\t\\n\\r \\(\\*\\_\\[\\]~])(?=(?i:www)\\.[^\\n\\r])(?:(?:[\\p{L}\\p{N}]|-|[\\._](?!(?:[!\"'\\)\\*,\\.:;<\\?_~]*(?:[\\s<]|\\][\\t\\n \\(\\[]))))+\\g<path>?)?(?<path>(?:(?:[^\\t\\n\\r !\"&'\\(\\)\\*,\\.:;<\\?\\]_~]|&(?![A-Za-z]*;(?:[!\"'\\)\\*,\\.:;<\\?_~]*(?:[\\s<]|\\][\\t\\n \\(\\[])))|[!\"'\\)\\*,\\.:;\\?_~](?!(?:[!\"'\\)\\*,\\.:;<\\?_~]*(?:[\\s<]|\\][\\t\\n \\(\\[]))))|\\(\\g<path>*\\))+){0}",name:"string.other.link.autolink.literal.www.mdx"},{match:"(?<=^|[^A-Za-z])(?i:https?://)(?=[\\p{L}\\p{N}])(?:(?:[\\p{L}\\p{N}]|-|[\\._](?!(?:[!\"'\\)\\*,\\.:;<\\?_~]*(?:[\\s<]|\\][\\t\\n \\(\\[]))))+\\g<path>?)?(?<path>(?:(?:[^\\t\\n\\r !\"&'\\(\\)\\*,\\.:;<\\?\\]_~]|&(?![A-Za-z]*;(?:[!\"'\\)\\*,\\.:;<\\?_~]*(?:[\\s<]|\\][\\t\\n \\(\\[])))|[!\"'\\)\\*,\\.:;\\?_~](?!(?:[!\"'\\)\\*,\\.:;<\\?_~]*(?:[\\s<]|\\][\\t\\n \\(\\[]))))|\\(\\g<path>*\\))+){0}",name:"string.other.link.autolink.literal.http.mdx"},{match:"(?<=^|[^A-Za-z/])(?i:mailto:|xmpp:)?(?:[0-9A-Za-z+\\-\\._])+@(?:(?:[0-9A-Za-z]|[-_](?!(?:[!\"'\\)\\*,\\.:;<\\?_~]*(?:[\\s<]|\\][\\t\\n \\(\\[]))))+(?:\\.(?!(?:[!\"'\\)\\*,\\.:;<\\?_~]*(?:[\\s<]|\\][\\t\\n \\(\\[])))))+(?:[A-Za-z]|[-_](?!(?:[!\"'\\)\\*,\\.:;<\\?_~]*(?:[\\s<]|\\][\\t\\n \\(\\[]))))+",name:"string.other.link.autolink.literal.email.mdx"}]},"extension-gfm-footnote-call":{match:"(\\[)(\\^)((?:[^\\t\\n\\r \\[\\\\\\]]|\\\\[\\[\\\\\\]]?)+)(\\])",captures:{"1":{name:"string.other.begin.link.mdx"},"2":{name:"string.other.begin.footnote.mdx"},"3":{name:"entity.name.identifier.mdx",patterns:[{include:"#markdown-string"}]},"4":{name:"string.other.end.footnote.mdx"}}},"extension-gfm-footnote-definition":{begin:"(?:^|\\G)[\\t ]*(\\[)(\\^)((?:[^\\t\\n\\r \\[\\\\\\]]|\\\\[\\[\\\\\\]]?)+)(\\])(:)[\\t ]*",beginCaptures:{"1":{name:"string.other.begin.link.mdx"},"2":{name:"string.other.begin.footnote.mdx"},"3":{name:"entity.name.identifier.mdx",patterns:[{include:"#markdown-string"}]},"4":{name:"string.other.end.footnote.mdx"}},patterns:[{include:"#markdown-sections"}],"while":"^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t)"},"extension-gfm-strikethrough":{match:"(?<=\\S)(?<!~)~{1,2}(?!~)|(?<!~)~{1,2}(?=\\S)(?!~)",name:"string.other.strikethrough.mdx"},"extension-gfm-table":{begin:"(?:^|\\G)[\\t ]*(?=\\|[^\\n\\r]+\\|[ \\t]*$)",patterns:[{match:"(?<=\\||(?:^|\\G))[\\t ]*((?:[^\\n\\r\\\\\\|]|\\\\[\\\\\\|]?)+?)[\\t ]*(?=\\||$)",captures:{"1":{patterns:[{include:"#markdown-text"}]}}},{match:"(?:\\|)",name:"markup.list.table-delimiter.mdx"}],end:"^(?=[\\t ]*$)"},"extension-github-gemoji":{match:"(:)((?:(?:(?:hand_with_index_finger_and_thumb_cros|mailbox_clo|fist_rai|confu)s|r(?:aised_hand_with_fingers_splay|e(?:gister|l(?:iev|ax)))|disappointed_reliev|confound|(?:a(?:ston|ngu)i|flu)sh|unamus|hush)e|(?:chart_with_(?:down|up)wards_tre|large_orange_diamo|small_(?:orang|blu)e_diamo|large_blue_diamo|parasol_on_grou|loud_sou|rewi)n|(?:rightwards_pushing_h|hourglass_flowing_s|leftwards_(?:pushing_)?h|(?:raised_back_of|palm_(?:down|up)|call_me)_h|(?:(?:(?:clippert|ascensi)on|norfolk)_is|christmas_is|desert_is|bouvet_is|new_zea|thai|eng|fin|ire)l|rightwards_h|pinching_h|writing_h|s(?:w(?:itzer|azi)|cot)l|magic_w|ok_h|icel)an|s(?:un_behind_(?:large|small|rain)_clou|hallow_pan_of_foo|tar_of_davi|leeping_be|kateboar|a(?:tisfie|uropo)|hiel|oun|qui)|(?:ear_with_hearing_a|pouring_liqu)i|(?:identification_c|(?:arrow_(?:back|for)|fast_for)w|credit_c|woman_be|biohaz|man_be|l(?:eop|iz))ar|m(?:usical_key|ortar_)boar|(?:drop_of_bl|canned_f)oo|c(?:apital_abc|upi)|person_bal|(?:black_bi|(?:cust|plac)a)r|(?:clip|key)boar|mermai|pea_po|worrie|po(?:la|u)n|threa|dv)d|(?:(?:(?:face_with_open_eyes_and_hand_over|face_with_diagonal|open|no)_mou|h(?:and_over_mou|yacin)|mammo)t|running_shirt_with_sas|(?:(?:fishing_pole_and_|blow)fi|(?:tropical_f|petri_d)i|(?:paint|tooth)bru|banglade|jellyfi)s|(?:camera_fl|wavy_d)as|triump|menora|pouc|blus|watc|das|has)h|(?:s(?:o(?:(?:uth_georgia_south_sandwich|lomon)_island|ck)|miling_face_with_three_heart|t_kitts_nevi|weat_drop|agittariu|c(?:orpiu|issor)|ymbol|hort)|twisted_rightwards_arrow|(?:northern_mariana|heard_mcdonald|(?:british_virgi|us_virgi|pitcair|cayma)n|turks_caicos|us_outlying|(?:falk|a)land|marshall|c(?:anary|ocos)|faroe)_island|(?:face_holding_back_tea|(?:c(?:ard_index_divid|rossed_fing)|pinched_fing)e|night_with_sta)r|(?:two_(?:wo)?men_holding|people_holding|heart|open)_hand|(?:sunrise_over_mountai|(?:congratul|united_n)atio|jea)n|(?:caribbean_)?netherland|(?:f(?:lower_playing_car|ace_in_clou)|crossed_swor|prayer_bea)d|(?:money_with_win|nest_with_eg|crossed_fla|hotsprin)g|revolving_heart|(?:high_brightne|(?:expression|wire)le|(?:tumbler|wine)_gla|milk_gla|compa|dre)s|performing_art|earth_america|orthodox_cros|l(?:ow_brightnes|a(?:tin_cros|o)|ung)|no_pedestrian|c(?:ontrol_kno|lu)b|b(?:ookmark_tab|rick|ean)|nesting_doll|cook_island|(?:fleur_de_l|tenn)i|(?:o(?:ncoming_b|phiuch|ctop)|hi(?:ppopotam|bisc)|trolleyb|m(?:(?:rs|x)_cla|auriti|inib)|belar|cact|abac|(?:cyp|tau)r)u|medal_sport|(?:chopstic|firewor)k|rhinocero|(?:p(?:aw_prin|eanu)|footprin)t|two_heart|princes|(?:hondur|baham)a|barbado|aquariu|c(?:ustom|hain)|maraca|comoro|flag|wale|hug|vh)s|(?:(?:diamond_shape_with_a_dot_ins|playground_sl)id|(?:(?:first_quarter|last_quarter|full|new)_moon_with|(?:zipper|money)_mouth|dotted_line|upside_down|c(?:rying_c|owboy_h)at|(?:disguis|nauseat)ed|neutral|monocle|panda|tired|woozy|clown|nerd|zany|fox)_fac|s(?:t(?:uck_out_tongue_winking_ey|eam_locomotiv)|(?:lightly_(?:frown|smil)|neez|h(?:ush|ak))ing_fac|(?:tudio_micropho|(?:hinto_shr|lot_mach)i|ierra_leo|axopho)n|mall_airplan|un_with_fac|a(?:luting_fac|tellit|k)|haved_ic|y(?:nagogu|ring)|n(?:owfl)?ak|urinam|pong)|(?:black_(?:medium_)?small|white_(?:(?:medium_)?small|large)|(?:black|white)_medium|black_large|orange|purple|yellow|b(?:rown|lue)|red)_squar|(?:(?:perso|woma)n_with_|man_with_)?probing_can|(?:p(?:ut_litter_in_its_pl|outing_f)|frowning_f|cold_f|wind_f|hot_f)ac|(?:arrows_c(?:ounterc)?lockwi|computer_mou|derelict_hou|carousel_hor|c(?:ity_sunri|hee)|heartpul|briefca|racehor|pig_no|lacros)s|(?:(?:face_with_head_band|ideograph_advant|adhesive_band|under|pack)a|currency_exchan|l(?:eft_l)?ugga|woman_jud|name_bad|man_jud|jud)g|face_with_peeking_ey|(?:(?:e(?:uropean_post_off|ar_of_r)|post_off)i|information_sour|ambulan)c|artificial_satellit|(?:busts?_in_silhouet|(?:vulcan_sal|parach)u|m(?:usical_no|ayot)|ro(?:ller_ska|set)|timor_les|ice_ska)t|(?:(?:incoming|red)_envelo|s(?:ao_tome_princi|tethosco)|(?:micro|tele)sco|citysca)p|(?:(?:(?:convenience|department)_st|musical_sc)o|f(?:light_depar|ramed_pic)tu|love_you_gestu|heart_on_fi|japanese_og|cote_divoi|perseve|singapo)r|b(?:ullettrain_sid|eliz|on)|(?:(?:female_|male_)?dete|radioa)ctiv|(?:christmas|deciduous|evergreen|tanabata|palm)_tre|(?:vibration_mo|cape_ver)d|(?:fortune_cook|neckt|self)i|(?:fork_and_)?knif|athletic_sho|(?:p(?:lead|arty)|drool|curs|melt|yawn|ly)ing_fac|vomiting_fac|(?:(?:c(?:urling_st|ycl)|meat_on_b|repeat_|headst)o|(?:fire_eng|tanger|ukra)i|rice_sce|(?:micro|i)pho|champag|pho)n|(?:cricket|video)_gam|(?:boxing_glo|oli)v|(?:d(?:ragon|izzy)|monkey)_fac|(?:m(?:artin|ozamb)iq|fond)u|wind_chim|test_tub|flat_sho|m(?:a(?:ns_sho|t)|icrob|oos|ut)|(?:handsh|fish_c|moon_c|cupc)ak|nail_car|zimbabw|ho(?:neybe|l)|ice_cub|airplan|pensiv|c(?:a(?:n(?:dl|o)|k)|o(?:ffe|oki))|tongu|purs|f(?:lut|iv)|d(?:at|ov)|n(?:iu|os)|kit|rag|ax)e|(?:(?:british_indian_ocean_territo|(?:plate_with_cutl|batt)e|medal_milita|low_batte|hunga|wea)r|family_(?:woman_(?:woman_(?:girl|boy)|girl|boy)|man_(?:woman_(?:girl|boy)|man_(?:girl|boy)|girl|boy))_bo|person_feeding_bab|woman_feeding_bab|s(?:u(?:spension_railwa|nn)|t(?:atue_of_libert|_barthelem|rawberr))|(?:m(?:ountain_cable|ilky_)|aerial_tram)wa|articulated_lorr|man_feeding_bab|mountain_railwa|partly_sunn|(?:vatican_c|infin)it|(?:outbox_tr|inbox_tr|birthd|motorw|paragu|urugu|norw|x_r)a|butterfl|ring_buo|t(?:urke|roph)|angr|fogg)y|(?:(?:perso|woma)n_in_motorized_wheelchai|(?:(?:notebook_with_decorative_c|four_leaf_cl)ov|(?:index_pointing_at_the_vie|white_flo)w|(?:face_with_thermome|non\\-potable_wa|woman_firefigh|desktop_compu|m(?:an_firefigh|otor_scoo)|(?:ro(?:ller_coa|o)|oy)s|potable_wa|kick_scoo|thermome|firefigh|helicop|ot)t|(?:woman_factory_wor|(?:woman_office|woman_health|health)_wor|man_(?:factory|office|health)_wor|(?:factory|office)_wor|rice_crac|black_jo|firecrac)k|telephone_receiv|(?:palms_up_toget|f(?:ire_extinguis|eat)|teac)h|(?:(?:open_)?file_fol|level_sli)d|police_offic|f(?:lying_sauc|arm)|woman_teach|roll_of_pap|(?:m(?:iddle_f|an_s)in|woman_sin|hambur|plun|dag)g|do_not_litt|wilted_flow|woman_farm|man_(?:teach|farm)|(?:bell_pe|hot_pe|fli)pp|l(?:o(?:udspeak|ve_lett|bst)|edg|add)|tokyo_tow|c(?:ucumb|lapp|anc)|b(?:e(?:ginn|av)|adg)|print|hamst)e|(?:perso|woma)n_in_manual_wheelchai|m(?:an(?:_in_motorized|(?:_in_man)?ual)|otorized)_wheelchai|(?:person_(?:white|curly|red)_|wheelc)hai|triangular_rule|(?:film_project|e(?:l_salv|cu)ad|elevat|tract|anch)o|s(?:traight_rul|pace_invad|crewdriv|nowboard|unflow|peak|wimm|ing|occ|how|urf|ki)e|r(?:ed_ca|unne|azo)|d(?:o(?:lla|o)|ee)|barbe)r|(?:(?:cloud_with_(?:lightning_and_)?ra|japanese_gobl|round_pushp|liechtenste|mandar|pengu|dolph|bahra|pushp|viol)i|(?:couple(?:_with_heart_wo|kiss_)man|construction_worker|(?:mountain_bik|bow|row)ing|lotus_position|(?:w(?:eight_lift|alk)|climb)ing|white_haired|curly_haired|raising_hand|super(?:villain|hero)|red_haired|basketball|s(?:(?:wimm|urf)ing|assy)|haircut|no_good|(?:vampir|massag)e|b(?:iking|ald)|zombie|fairy|mage|elf|ng)_(?:wo)?ma|(?:(?:couple_with_heart_man|isle_of)_m|(?:couplekiss_woman_|(?:b(?:ouncing_ball|lond_haired)|tipping_hand|pregnant|kneeling|deaf)_|frowning_|s(?:tanding|auna)_|po(?:uting_|lice)|running_|blonde_|o(?:lder|k)_)wom|(?:perso|woma)n_with_turb|(?:b(?:ouncing_ball|lond_haired)|tipping_hand|pregnant|kneeling|deaf)_m|f(?:olding_hand_f|rowning_m)|man_with_turb|(?:turkmen|afghan|pak)ist|s(?:tanding_m|(?:outh_s)?ud|auna_m)|po(?:uting_|lice)m|running_m|azerbaij|k(?:yrgyz|azakh)st|tajikist|uzbekist|o(?:lder_m|k_m|ce)|(?:orang|bh)ut|taiw|jord)a|s(?:mall_red_triangle_dow|(?:valbard_jan_may|int_maart|ev)e|afety_pi|top_sig|t_marti|(?:corpi|po|o)o|wede)|(?:heavy_(?:d(?:ivision|ollar)|equals|minus|plus)|no_entry|female|male)_sig|(?:arrow_(?:heading|double)_d|p(?:erson_with_cr|oint_d)|arrow_up_d|thumbsd)ow|(?:house_with_gard|l(?:ock_with_ink_p|eafy_gre)|dancing_(?:wo)?m|fountain_p|keycap_t|chick|ali|yem|od)e|(?:izakaya|jack_o)_lanter|(?:funeral_u|(?:po(?:stal_h|pc)|capric)o|unico)r|chess_paw|b(?:a(?:llo|c)o|eni|rai)|l(?:anter|io)|c(?:o(?:ff)?i|row)|melo|rame|oma|yar)n|(?:s(?:t(?:uck_out_tongue_closed_ey|_vincent_grenadin)|kull_and_crossbon|unglass|pad)|(?:french_souther|palestinia)n_territori|(?:face_with_spiral|kissing_smiling)_ey|united_arab_emirat|kissing_closed_ey|(?:clinking_|dark_sun|eye)glass|(?:no_mobile_|head)phon|womans_cloth|b(?:allet_sho|lueberri)|philippin|(?:no_bicyc|seychel)l|roll_ey|(?:cher|a)ri|p(?:ancak|isc)|maldiv|leav)es|(?:f(?:amily_(?:woman_(?:woman_)?|man_(?:woman_|man_)?)girl_gir|earfu)|(?:woman_playing_hand|m(?:an_playing_hand|irror_)|c(?:onfetti|rystal)_|volley|track|base|8)bal|(?:(?:m(?:ailbox_with_(?:no_)?m|onor)|cockt|e\\-m)a|(?:person|bride|woman)_with_ve|man_with_ve|light_ra|braz|ema)i|(?:transgender|baby)_symbo|passport_contro|(?:arrow_(?:down|up)_sm|rice_b|footb)al|(?:dromedary_cam|ferris_whe|love_hot|high_he|pretz|falaf|isra)e|page_with_cur|me(?:dical_symbo|ta)|(?:n(?:ewspaper_ro|o_be)|bellhop_be)l|rugby_footbal|s(?:chool_satche|(?:peak|ee)_no_evi|oftbal|crol|anda|nai|hel)|(?:peace|atom)_symbo|hear_no_evi|cora|hote|bage|labe|rof|ow)l|(?:(?:negative_squared_cross|heavy_exclamation|part_alternation)_mar|(?:eight_spoked_)?asteris|(?:ballot_box_with_che|(?:(?:mantelpiece|alarm|timer)_c|un)lo|(?:ha(?:(?:mmer_and|ir)_p|tch(?:ing|ed)_ch)|baby_ch|joyst)i|railway_tra|lipsti|peaco)c|heavy_check_mar|white_check_mar|tr(?:opical_drin|uc)|national_par|pickup_truc|diving_mas|floppy_dis|s(?:tar_struc|hamroc|kun|har)|chipmun|denmar|duc|hoo|lin)k|(?:leftwards_arrow_with_h|arrow_right_h|(?:o(?:range|pen)|closed|blue)_b)ook|(?:woman_playing_water_pol|m(?:an(?:_(?:playing_water_pol|with_gua_pi_ma|in_tuxed)|g)|ontenegr|o(?:roc|na)c|e(?:xic|tr|m))|(?:perso|woma)n_in_tuxed|(?:trinidad_toba|vir)g|water_buffal|b(?:urkina_fas|a(?:mbo|nj)|ent)|puerto_ric|water_pol|flaming|kangaro|(?:mosqu|burr)it|(?:avoc|torn)ad|curaca|lesoth|potat|ko(?:sov|k)|tomat|d(?:ang|od)|yo_y|hoch|t(?:ac|og)|zer)o|(?:c(?:entral_african|zech)|dominican)_republic|(?:eight_pointed_black_s|six_pointed_s|qa)tar|(?:business_suit_levitat|(?:classical_buil|breast_fee)d|(?:woman_cartwhee|m(?:an_(?:cartwhee|jugg)|en_wrest)|women_wrest|woman_jugg|face_exha|cartwhee|wrest|dump)l|c(?:hildren_cross|amp)|woman_facepalm|woman_shrugg|man_(?:facepalm|shrugg)|people_hugg|(?:person_fe|woman_da|man_da)nc|fist_oncom|horse_rac|(?:no_smo|thin)k|laugh|s(?:eedl|mok)|park|w(?:arn|edd))ing|f(?:a(?:mily(?:_(?:woman_(?:woman_(?:girl|boy)|girl|boy)|man_(?:woman_(?:girl|boy)|man_(?:girl|boy)|girl|boy)))?|ctory)|o(?:u(?:ntain|r)|ot|g)|r(?:owning)?|i(?:re|s[ht])|ly|u)|(?:(?:(?:information_desk|handball|bearded)_|(?:frowning|ok)_|juggling_|mer)pers|(?:previous_track|p(?:lay_or_p)?ause|black_square|white_square|next_track|r(?:ecord|adio)|eject)_butt|(?:wa[nx]ing_(?:crescent|gibbous)_m|bowl_with_sp|crescent_m|racc)o|(?:b(?:ouncing_ball|lond_haired)|tipping_hand|pregnant|kneeling|deaf)_pers|s(?:t(?:_pierre_miquel|op_butt|ati)|tanding_pers|peech_ballo|auna_pers)|r(?:eminder_r)?ibb|thought_ballo|watermel|badmint|c(?:amero|ray)|le(?:ban|m)|oni|bis)on|(?:heavy_heart_exclama|building_construc|heart_decora|exclama)tion|(?:(?:triangular_flag_on_po|(?:(?:woman_)?technolog|m(?:ountain_bicycl|an_technolog)|bicycl)i|(?:wo)?man_scienti|(?:wo)?man_arti|s(?:afety_ve|cienti)|empty_ne)s|(?:vertical_)?traffic_ligh|(?:rescue_worker_helm|military_helm|nazar_amul|city_suns|wastebask|dropl|t(?:rump|oil)|bouqu|buck|magn|secr)e|one_piece_swimsui|(?:(?:arrow_(?:low|upp)er|point)_r|bridge_at_n|copyr|mag_r)igh|(?:bullettrain_fro|(?:potted_pl|croiss|e(?:ggpl|leph))a)n|s(?:t(?:ar_and_cresc|ud)en|cream_ca|mi(?:ley?|rk)_ca|(?:peed|ail)boa|hir)|(?:arrow_(?:low|upp)er|point)_lef|woman_astronau|r(?:o(?:tating_ligh|cke)|eceip)|heart_eyes_ca|man_astronau|(?:woman_stud|circus_t|man_stud|trid)en|(?:ringed_pla|file_cabi)ne|nut_and_bol|(?:older_)?adul|k(?:i(?:ssing_ca|wi_frui)|uwai|no)|(?:pouting_c|c(?:ut_of_m|old_sw)e|womans_h|montserr|(?:(?:motor_|row)b|lab_c)o|heartbe|toph)a|(?:woman_pil|honey_p|man_pil|[cp]arr|teap|rob)o|hiking_boo|arrow_lef|fist_righ|flashligh|f(?:ist_lef|ee)|black_ca|astronau|(?:c(?:hest|oco)|dough)nu|innocen|joy_ca|artis|(?:acce|egy)p|co(?:me|a)|pilo)t|(?:heavy_multiplication_|t\\-re)x|(?:s(?:miling_face_with_te|piral_calend)|oncoming_police_c|chocolate_b|ra(?:ilway|cing)_c|police_c|polar_be|teddy_be|madagasc|blue_c|calend|myanm)ar|c(?:l(?:o(?:ud(?:_with_lightning)?|ck(?:1[0-2]?|[2-9]))|ap)?|o(?:uple(?:_with_heart|kiss)?|nstruction|mputer|ok|p|w)|a(?:r(?:d_index)?|mera)|r(?:icket|y)|h(?:art|ild))|(?:m(?:artial_arts_unifo|echanical_a)r|(?:cherry_)?blosso|b(?:aggage_clai|roo)|ice_?crea|facepal|mushroo|restroo|vietna|dru|yu)m|(?:woman_with_headscar|m(?:obile_phone_of|aple_lea)|fallen_lea|wol)f|(?:(?:closed_lock_with|old)_|field_hoc|ice_hoc|han|don)key|g(?:lobe_with_meridians|r(?:e(?:y_(?:exclama|ques)tion|e(?:n(?:_(?:square|circle|salad|apple|heart|book)|land)|ce)|y_heart|nada)|i(?:mac|nn)ing|apes)|u(?:inea_bissau|ernsey|am|n)|(?:(?:olfing|enie)_(?:wo)?|uards(?:wo)?)man|(?:inger_roo|oal_ne|hos)t|(?:uadeloup|ame_di|iraff|oos)e|ift_heart|i(?:braltar|rl)|(?:uatemal|(?:eorg|amb)i|orill|uyan|han)a|uide_dog|(?:oggl|lov)es|arlic|emini|uitar|abon|oat|ear|b)|construction_worker|(?:(?:envelope_with|bow_and)_ar|left_right_ar|raised_eyeb)row|(?:(?:oncoming_automob|crocod)i|right_anger_bubb|l(?:eft_speech_bubb|otion_bott|ady_beet)|congo_brazzavil|eye_speech_bubb|(?:large_blue|orange|purple|yellow|brown)_circ|(?:(?:european|japanese)_cas|baby_bot)t|b(?:alance_sca|eet)|s(?:ewing_need|weat_smi)|(?:black|white|red)_circ|(?:motor|re)cyc|pood|turt|tama|waff|musc|eag)le|first_quarter_moon|s(?:m(?:all_red_triangle|i(?:ley?|rk))|t(?:uck_out_tongue|ar)|hopping|leeping|p(?:arkle|ider)|unrise|nowman|chool|cream|k(?:ull|i)|weat|ix|a)|(?:(?:b(?:osnia_herzegovi|ana)|wallis_futu|(?:french_gui|botsw)a|argenti|st_hele)n|(?:(?:equatorial|papua_new)_guin|north_kor|eritr)e|t(?:ristan_da_cunh|ad)|(?:(?:(?:french_poly|indo)ne|tuni)s|(?:new_caledo|ma(?:urita|cedo)|lithua|(?:tanz|alb|rom)a|arme|esto)n|diego_garc|s(?:audi_arab|t_luc|lov(?:ak|en)|omal|erb)|e(?:arth_as|thiop)|m(?:icrone|alay)s|(?:austra|mongo)l|c(?:ambod|roat)|(?:bulga|alge)r|(?:colom|nami|zam)b|boliv|l(?:iber|atv))i|(?:wheel_of_dhar|cine|pana)m|(?:(?:(?:closed|beach|open)_)?umbrel|ceuta_melil|venezue|ang(?:uil|o)|koa)l|c(?:ongo_kinshas|anad|ub)|(?:western_saha|a(?:mpho|ndor)|zeb)r|american_samo|video_camer|m(?:o(?:vie_camer|ldov)|alt|eg)|(?:earth_af|costa_)ric|s(?:outh_afric|ri_lank|a(?:mo|nt))|bubble_te|(?:antarct|jama)ic|ni(?:caragu|geri|nj)|austri|pi(?:nat|zz)|arub|k(?:eny|aab)|indi|u7a7|l(?:lam|ib[ry])|dn)a|l(?:ast_quarter_moon|o(?:tus|ck)|ips|eo)|(?:hammer_and_wren|c(?:ockroa|hur)|facepun|wren|crut|pun)ch|s(?:nowman_with_snow|ignal_strength|weet_potato|miling_imp|p(?:ider_web|arkle[rs])|w(?:im_brief|an)|a(?:n(?:_marino|dwich)|lt)|topwatch|t(?:a(?:dium|r[2s])|ew)|l(?:e(?:epy|d)|oth)|hrimp|yria|carf|(?:hee|oa)p|ea[lt]|h(?:oe|i[pt])|o[bs])|(?:s(?:tuffed_flatbre|p(?:iral_notep|eaking_he))|(?:exploding_h|baguette_br|flatbr)e)ad|(?:arrow_(?:heading|double)_u|(?:p(?:lace_of_wor|assenger_)sh|film_str|tul)i|page_facing_u|biting_li|(?:billed_c|world_m)a|mouse_tra|(?:curly_lo|busst)o|thumbsu|lo(?:llip)?o|clam|im)p|(?:anatomical|light_blue|sparkling|kissing|mending|orange|purple|yellow|broken|b(?:rown|l(?:ack|ue))|pink)_heart|(?:(?:transgender|black)_fla|mechanical_le|(?:checkered|pirate)_fla|electric_plu|rainbow_fla|poultry_le|service_do|white_fla|luxembour|fried_eg|moneyba|h(?:edgeh|otd)o|shru)g|(?:cloud_with|mountain)_snow|(?:(?:antigua_barb|berm)u|(?:kh|ug)an|rwan)da|(?:3r|2n)d_place_medal|1(?:st_place_medal|234|00)|lotus_position|(?:w(?:eight_lift|alk)|climb)ing|(?:(?:cup_with_str|auto_ricksh)a|carpentry_sa|windo|jigsa)w|(?:(?:couch_and|diya)_la|f(?:ried_shri|uelpu))mp|(?:woman_mechan|man_mechan|alemb)ic|(?:european_un|accord|collis|reun)ion|(?:flight_arriv|hospit|portug|seneg|nep)al|card_file_box|(?:(?:oncoming_)?tax|m(?:o(?:unt_fuj|ya)|alaw)|s(?:paghett|ush|ar)|b(?:r(?:occol|une)|urund)|(?:djibou|kiriba)t|hait|fij)i|(?:shopping_c|white_he|bar_ch)art|d(?:isappointed|ominica|e(?:sert)?)|raising_hand|super(?:villain|hero)|b(?:e(?:verage_box|ers|d)|u(?:bbles|lb|g)|i(?:k(?:ini|e)|rd)|o(?:o(?:ks|t)|a[rt]|y)|read|a[cn]k)|ra(?:ised_hands|bbit2|t)|(?:hindu_tem|ap)ple|thong_sandal|a(?:r(?:row_(?:right|down|up)|t)|bc?|nt)?|r(?:a(?:i(?:sed_hand|nbow)|bbit|dio|m)|u(?:nning)?|epeat|i(?:ng|ce)|o(?:ck|se))|takeout_box|(?:flying_|mini)disc|(?:(?:interrob|yin_y)a|b(?:o(?:omera|wli)|angba)|(?:ping_p|hong_k)o|calli|mahjo)ng|b(?:a(?:llot_box|sket|th?|by)|o(?:o(?:k(?:mark)?|m)|w)|u(?:tter|s)|e(?:ll|er?|ar))?|heart_eyes|basketball|(?:paperclip|dancer|ticket)s|point_up_2|(?:wo)?man_cook|n(?:ew(?:spaper)?|o(?:tebook|_entry)|iger)|t(?:e(?:lephone|a)|o(?:oth|p)|r(?:oll)?|wo)|h(?:o(?:u(?:rglass|se)|rse)|a(?:mmer|nd)|eart)|paperclip|full_moon|(?:b(?:lack_ni|athtu|om)|her)b|(?:long|oil)_drum|pineapple|(?:clock(?:1[0-2]?|[2-9])3|u6e8)0|p(?:o(?:int_up|ut)|r(?:ince|ay)|i(?:ck|g)|en)|e(?:nvelope|ight|u(?:ro)?|gg|ar|ye|s)|m(?:o(?:u(?:ntain|se)|nkey|on)|echanic|a(?:ilbox|g|n)|irror)?|new_moon|d(?:iamonds|olls|art)|question|k(?:iss(?:ing)?|ey)|haircut|no_good|(?:vampir|massag)e|g(?:olf(?:ing)?|u(?:inea|ard)|e(?:nie|m)|ift|rin)|h(?:a(?:ndbag|msa)|ouses|earts|ut)|postbox|toolbox|(?:pencil|t(?:rain|iger)|whale|cat|dog)2|belgium|(?:volca|kimo)no|(?:vanuat|tuval|pala|naur|maca)u|tokelau|o(?:range|ne?|m|k)?|office|dancer|ticket|dragon|pencil|zombie|w(?:o(?:mens|rm|od)|ave|in[gk]|c)|m(?:o(?:sque|use2)|e(?:rman|ns)|a(?:li|sk))|jersey|tshirt|w(?:heel|oman)|dizzy|j(?:apan|oy)|t(?:rain|iger)|whale|fairy|a(?:nge[lr]|bcd|tm)|c(?:h(?:a(?:ir|d)|ile)|a(?:ndy|mel)|urry|rab|o(?:rn|ol|w2)|[dn])|p(?:ager|e(?:a(?:ch|r)|ru)|i(?:g2|ll|e)|oop)|n(?:otes|ine)|t(?:onga|hree|ent|ram|[mv])|f(?:erry|r(?:ies|ee|og)|ax)|u(?:7(?:533|981|121)|5(?:5b6|408|272)|6(?:307|70[89]))|mage|e(?:yes|nd)|i(?:ra[nq]|t)|cat|dog|elf|z(?:zz|ap)|yen|j(?:ar|p)|leg|id|u[kps]|ng|o[2x]|vs|kr|[\\+\\x2D]1|x|v)(:)",name:"string.emoji.mdx",captures:{"1":{name:"punctuation.definition.gemoji.begin.mdx"},"2":{name:"keyword.control.gemoji.mdx"},"3":{name:"punctuation.definition.gemoji.end.mdx"}}},"extension-github-mention":{match:"(?<![0-9A-Za-z_`])(@)((?:[0-9A-Za-z][0-9A-Za-z-]{0,38})(?:\\/(?:[0-9A-Za-z][0-9A-Za-z-]{0,38}))?)(?![0-9A-Za-z_`])",name:"string.mention.mdx",captures:{"1":{name:"punctuation.definition.mention.begin.mdx"},"2":{name:"string.other.link.mention.mdx"}}},"extension-github-reference":{patterns:[{match:"(?<![0-9A-Za-z_])(?:((?i:ghsa-|cve-))([A-Za-z0-9]+)|((?i:gh-|#))([0-9]+))(?![0-9A-Za-z_])",name:"string.reference.mdx",captures:{"1":{name:"punctuation.definition.reference.begin.mdx"},"2":{name:"string.other.link.reference.security-advisory.mdx"},"3":{name:"punctuation.definition.reference.begin.mdx"},"4":{name:"string.other.link.reference.issue-or-pr.mdx"}}},{match:"(?<![^\\t\\n\\r \\(@\\[\\{])((?:[0-9A-Za-z][0-9A-Za-z-]{0,38})(?:\\/(?:(?:\\.git[0-9A-Za-z_-]|\\.(?!git)|[0-9A-Za-z_-])+))?)(#)([0-9]+)(?![0-9A-Za-z_])",name:"string.reference.mdx",captures:{"1":{name:"string.other.link.reference.user.mdx"},"2":{name:"punctuation.definition.reference.begin.mdx"},"3":{name:"string.other.link.reference.issue-or-pr.mdx"}}}]},"extension-math-flow":{begin:"(?:^|\\G)[\\t ]*(\\${2,})([^\\n\\r\\$]*)$",beginCaptures:{"1":{name:"string.other.begin.math.flow.mdx"},"2":{patterns:[{include:"#markdown-string"}]}},contentName:"markup.raw.math.flow.mdx",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.math.flow.mdx"}},name:"markup.code.other.mdx"},"extension-math-text":{match:"(?<!\\$)(\\${2,})(?!\\$)(.+?)(?<!\\$)(\\1)(?!\\$)",captures:{"1":{name:"string.other.begin.math.mdx"},"2":{name:"markup.raw.math.mdx markup.inline.raw.math.mdx"},"3":{name:"string.other.end.math.mdx"}}},"extension-mdx-esm":{name:"meta.embedded.tsx",begin:"(?:^|\\G)(?=(?i:export|import)[ ])",end:"^(?=[\\t ]*$)",patterns:[{include:"source.tsx#statements"}]},"extension-mdx-expression-flow":{begin:"(?:^|\\G)[\\t ]*(\\{)",beginCaptures:{"1":{name:"string.other.begin.expression.mdx.js"}},contentName:"meta.embedded.tsx",end:"(\\})(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.begin.expression.mdx.js"}},patterns:[{include:"source.tsx#expression"}]},"extension-mdx-expression-text":{begin:"\\{",beginCaptures:{"0":{name:"string.other.begin.expression.mdx.js"}},contentName:"meta.embedded.tsx",end:"\\}",endCaptures:{"0":{name:"string.other.begin.expression.mdx.js"}},patterns:[{include:"source.tsx#expression"}]},"extension-mdx-jsx-flow":{begin:"(?<=^|\\G|\\>)[\\t ]*(<)(?=(?![\\t\\n\\r ]))(?:\\s*(/))?(?:\\s*(?:(?:((?:[_$[:alpha:]][-_$[:alnum:]]*))\\s*(:)\\s*((?:[_$[:alpha:]][-_$[:alnum:]]*)))|((?:(?:[_$[:alpha:]][_$[:alnum:]]*)(?:\\s*\\.\\s*(?:[_$[:alpha:]][-_$[:alnum:]]*))+))|((?:[_$[:upper:]][_$[:alnum:]]*))|((?:[_$[:alpha:]][-_$[:alnum:]]*)))(?=[\\s\\/\\>\\{]))?",beginCaptures:{"1":{name:"punctuation.definition.tag.end.jsx"},"2":{name:"punctuation.definition.tag.closing.jsx"},"3":{name:"entity.name.tag.namespace.jsx"},"4":{name:"punctuation.separator.namespace.jsx"},"5":{name:"entity.name.tag.local.jsx"},"6":{name:"support.class.component.jsx"},"7":{name:"support.class.component.jsx"},"8":{name:"entity.name.tag.jsx"}},patterns:[{include:"source.tsx#jsx-tag-attribute-name"},{include:"source.tsx#jsx-tag-attribute-assignment"},{include:"source.tsx#jsx-string-double-quoted"},{include:"source.tsx#jsx-string-single-quoted"},{include:"source.tsx#jsx-evaluated-code"},{include:"source.tsx#jsx-tag-attributes-illegal"}],end:"(?:(\\/)\\s*)?(>)",endCaptures:{"1":{name:"punctuation.definition.tag.self-closing.jsx"},"2":{name:"punctuation.definition.tag.end.jsx"}}},"extension-mdx-jsx-text":{begin:"(<)(?=(?![\\t\\n\\r ]))(?:\\s*(/))?(?:\\s*(?:(?:((?:[_$[:alpha:]][-_$[:alnum:]]*))\\s*(:)\\s*((?:[_$[:alpha:]][-_$[:alnum:]]*)))|((?:(?:[_$[:alpha:]][_$[:alnum:]]*)(?:\\s*\\.\\s*(?:[_$[:alpha:]][-_$[:alnum:]]*))+))|((?:[_$[:upper:]][_$[:alnum:]]*))|((?:[_$[:alpha:]][-_$[:alnum:]]*)))(?=[\\s\\/\\>\\{]))?",beginCaptures:{"1":{name:"punctuation.definition.tag.end.jsx"},"2":{name:"punctuation.definition.tag.closing.jsx"},"3":{name:"entity.name.tag.namespace.jsx"},"4":{name:"punctuation.separator.namespace.jsx"},"5":{name:"entity.name.tag.local.jsx"},"6":{name:"support.class.component.jsx"},"7":{name:"support.class.component.jsx"},"8":{name:"entity.name.tag.jsx"}},patterns:[{include:"source.tsx#jsx-tag-attribute-name"},{include:"source.tsx#jsx-tag-attribute-assignment"},{include:"source.tsx#jsx-string-double-quoted"},{include:"source.tsx#jsx-string-single-quoted"},{include:"source.tsx#jsx-evaluated-code"},{include:"source.tsx#jsx-tag-attributes-illegal"}],end:"(?:(\\/)\\s*)?(>)",endCaptures:{"1":{name:"punctuation.definition.tag.self-closing.jsx"},"2":{name:"punctuation.definition.tag.end.jsx"}}},"extension-toml":{begin:"\\A\\+{3}$",end:"^\\+{3}$",beginCaptures:{"0":{name:"string.other.begin.toml"}},endCaptures:{"0":{name:"string.other.end.toml"}},contentName:"meta.embedded.toml",patterns:[{include:"source.toml"}]},"extension-yaml":{begin:"\\A-{3}$",end:"^-{3}$",beginCaptures:{"0":{name:"string.other.begin.yaml"}},endCaptures:{"0":{name:"string.other.end.yaml"}},contentName:"meta.embedded.yaml",patterns:[{include:"source.yaml"}]},"whatwg-html-data-character-reference-named-terminated":{match:"(&)((?:C(?:(?:o(?:unterClockwiseCo)?|lockwiseCo)ntourIntegra|cedi)|(?:(?:Not(?:S(?:quareSu(?:per|b)set|u(?:cceeds|(?:per|b)set))|Precedes|Greater|Tilde|Less)|Not(?:Righ|Lef)tTriangle|(?:Not(?:(?:Succeed|Precede|Les)s|Greater)|(?:Precede|Succeed)s|Less)Slant|SquareSu(?:per|b)set|(?:Not(?:Greater|Tilde)|Tilde|Less)Full|RightTriangle|LeftTriangle|Greater(?:Slant|Full)|Precedes|Succeeds|Superset|NotHump|Subset|Tilde|Hump)Equ|int(?:er)?c|DotEqu)a|DoubleContourIntegra|(?:n(?:short)?parall|shortparall|p(?:arall|rur))e|(?:rightarrowta|l(?:eftarrowta|ced|ata|Ata)|sced|rata|perm|rced|rAta|ced)i|Proportiona|smepars|e(?:qvpars|pars|xc|um)|Integra|suphso|rarr[pt]|n(?:pars|tg)|l(?:arr[pt]|cei)|Rarrt|(?:hybu|fora)l|ForAl|[GKLNR-Tcknt]cedi|rcei|iexc|gime|fras|[uy]um|oso|dso|ium|Ium)l|D(?:o(?:uble(?:(?:L(?:ong(?:Left)?R|eftR)ight|L(?:ongL)?eft|UpDown|Right|Up)Arrow|Do(?:wnArrow|t))|wn(?:ArrowUpA|TeeA|a)rrow)|iacriticalDot|strok|ashv|cy)|(?:(?:(?:N(?:(?:otN)?estedGreater|ot(?:Greater|Less))|Less(?:Equal)?)Great|GreaterGreat|l[lr]corn|mark|east)e|Not(?:Double)?VerticalBa|(?:Not(?:Righ|Lef)tTriangleB|(?:(?:Righ|Lef)tDown|Right(?:Up)?|Left(?:Up)?)VectorB|RightTriangleB|Left(?:Triangle|Arrow)B|RightArrowB|V(?:er(?:ticalB|b)|b)|UpArrowB|l(?:ur(?:ds|u)h|dr(?:us|d)h|trP|owb|H)|profal|r(?:ulu|dld)h|b(?:igst|rvb)|(?:wed|ve[er])b|s(?:wn|es)w|n(?:wne|ese|sp|hp)|gtlP|d(?:oll|uh|H)|(?:hor|ov)b|u(?:dh|H)|r(?:lh|H)|ohb|hb|St)a|D(?:o(?:wn(?:(?:Left(?:Right|Tee)|RightTee)Vecto|(?:(?:Righ|Lef)tVector|Arrow)Ba)|ubleVerticalBa)|a(?:gge|r)|sc|f)|(?:(?:(?:Righ|Lef)tDown|(?:Righ|Lef)tUp)Tee|(?:Righ|Lef)tUpDown)Vecto|VerticalSeparato|(?:Left(?:Right|Tee)|RightTee)Vecto|less(?:eqq?)?gt|e(?:qslantgt|sc)|(?:RightF|LeftF|[lr]f)loo|u(?:[lr]corne|ar)|timesba|(?:plusa|cirs|apa)ci|U(?:arroci|f)|(?:dzigr|s(?:u(?:pl|br)|imr|[lr])|zigr|angz|nvH|l(?:tl|B)|r[Br])ar|UnderBa|(?:plus|harr|top|mid|of)ci|O(?:verBa|sc|f)|dd?agge|s(?:olba|sc)|g(?:t(?:rar|ci)|sc|f)|c(?:opys|u(?:po|ep)|sc|f)|(?:n(?:(?:v[lr]|w|r)A|l[Aa]|h[Aa]|eA)|x[hlr][Aa]|u(?:ua|da|A)|s[ew]A|rla|o[lr]a|rba|rAa|l[Ablr]a|h(?:oa|A)|era|d(?:ua|A)|cra|vA)r|o(?:lci|sc|ro|pa)|ropa|roar|l(?:o(?:pa|ar)|sc|Ar)|i(?:ma|s)c|ltci|dd?ar|a(?:ma|s)c|R(?:Bar|sc|f)|I(?:mac|f)|(?:u(?:ma|s)|oma|ema|Oma|Ema|[wyz]s|qs|ks|fs|Zs|Ys|Xs|Ws|Vs|Us|Ss|Qs|Ns|Ms|Ks|Is|Gs|Fs|Cs|Bs)c|Umac|x(?:sc|f)|v(?:sc|f)|rsc|n(?:ld|f)|m(?:sc|ld|ac|f)|rAr|h(?:sc|f)|b(?:sc|f)|psc|P(?:sc|f)|L(?:sc|ar|f)|jsc|J(?:sc|f)|E(?:sc|f)|[HT]sc|[yz]f|wf|tf|qf|pf|kf|jf|Zf|Yf|Xf|Wf|Vf|Tf|Sf|Qf|Nf|Mf|Kf|Hf|Gf|Ff|Cf|Bf)r|(?:Diacritical(?:Double)?A|[EINOSYZaisz]a)cute|(?:(?:N(?:egative(?:VeryThin|Thi(?:ck|n))|onBreaking)|NegativeMedium|ZeroWidth|VeryThin|Medium|Thi(?:ck|n))Spac|Filled(?:Very)?SmallSquar|Empty(?:Very)?SmallSquar|(?:N(?:ot(?:Succeeds|Greater|Tilde|Less)T|t)|DiacriticalT|VerticalT|PrecedesT|SucceedsT|NotEqualT|GreaterT|TildeT|EqualT|LessT|at|Ut|It)ild|(?:(?:DiacriticalG|[EIOUaiu]g)ra|(?:u|U)?bre|(?:o|e)?gra)v|(?:doublebar|curly|big|x)wedg|H(?:orizontalLin|ilbertSpac)|Double(?:Righ|Lef)tTe|(?:(?:measured|uw)ang|exponentia|dwang|ssmi|fema)l|(?:Poincarepla|reali|pho|oli)n|(?:black)?lozeng|(?:VerticalL|(?:prof|imag)l)in|SmallCircl|(?:black|dot)squar|rmoustach|l(?:moustach|angl)|(?:b(?:ack)?pr|(?:tri|xo)t|[qt]pr)im|[Tt]herefor|(?:DownB|[Gag]b)rev|(?:infint|nv[lr]tr)i|b(?:arwedg|owti)|an(?:dslop|gl)|(?:cu(?:rly)?v|rthr|lthr|b(?:ig|ar)v|xv)e|n(?:s(?:qsu[bp]|ccu)|prcu)|orslop|NewLin|maltes|Becaus|rangl|incar|(?:otil|Otil|t(?:ra|il))d|[inu]tild|s(?:mil|imn)|(?:sc|pr)cu|Wedg|Prim|Brev)e|(?:CloseCurly(?:Double)?Quo|OpenCurly(?:Double)?Quo|[ry]?acu)te|(?:Reverse(?:Up)?|Up)Equilibrium|C(?:apitalDifferentialD|(?:oproduc|(?:ircleD|enterD|d)o)t|on(?:grue|i)nt|conint|upCap|o(?:lone|pf)|OPY|hi)|(?:(?:(?:left)?rightsquig|(?:longleftr|twoheadr|nleftr|nLeftr|longr|hookr|nR|Rr)ight|(?:twohead|hook)left|longleft|updown|Updown|nright|Right|nleft|nLeft|down|up|Up)a|L(?:(?:ong(?:left)?righ|(?:ong)?lef)ta|eft(?:(?:right)?a|RightA|TeeA))|RightTeeA|LongLeftA|UpTeeA)rrow|(?:(?:RightArrow|Short|Upper|Lower)Left|(?:L(?:eftArrow|o(?:wer|ng))|LongLeft|Short|Upper)Right|ShortUp)Arrow|(?:b(?:lacktriangle(?:righ|lef)|ulle|no)|RightDoubleBracke|RightAngleBracke|Left(?:Doub|Ang)leBracke|(?:vartriangle|downharpoon|c(?:ircl|urv)earrow|upharpoon|looparrow)righ|(?:vartriangle|downharpoon|c(?:ircl|urv)earrow|upharpoon|looparrow|mapsto)lef|(?:UnderBrack|OverBrack|emptys|targ|Sups)e|diamondsui|c(?:ircledas|lubsui|are)|(?:spade|heart)sui|(?:(?:c(?:enter|t)|lmi|ino)d|(?:Triple|mD)D|n(?:otin|e)d|(?:ncong|doteq|su[bp]e|e[gl]s)d|l(?:ess|t)d|isind|c(?:ong|up|ap)?d|b(?:igod|N)|t(?:(?:ri)?d|opb)|s(?:ub|im)d|midd|g(?:tr?)?d|Lmid|DotD|(?:xo|ut|z)d|e(?:s?d|rD|fD|DD)|dtd|Zd|Id|Gd|Ed)o|realpar|i(?:magpar|iin)|S(?:uchTha|qr)|su[bp]mul|(?:(?:lt|i)que|gtque|(?:mid|low)a|e(?:que|xi))s|Produc|s(?:updo|e[cx])|r(?:parg|ec)|lparl|vangr|hamil|(?:homt|[lr]fis|ufis|dfis)h|phmma|t(?:wix|in)|quo|o(?:do|as)|fla|eDo)t|(?:(?:Square)?Intersecti|(?:straight|back|var)epsil|SquareUni|expectati|upsil|epsil|Upsil|eq?col|Epsil|(?:omic|Omic|rca|lca|eca|Sca|[NRTt]ca|Lca|Eca|[Zdz]ca|Dca)r|scar|ncar|herc|ccar|Ccar|iog|Iog)on|Not(?:S(?:quareSu(?:per|b)set|u(?:cceeds|(?:per|b)set))|Precedes|Greater|Tilde|Less)?|(?:(?:(?:Not(?:Reverse)?|Reverse)E|comp|E)leme|NotCongrue|(?:n[gl]|l)eqsla|geqsla|q(?:uat)?i|perc|iiii|coni|cwi|awi|oi)nt|(?:(?:rightleftharpo|leftrightharpo|quaterni)on|(?:(?:N(?:ot(?:NestedLess|Greater|Less)|estedLess)L|(?:eqslant|gtr(?:eqq?)?)l|LessL)e|Greater(?:Equal)?Le|cro)s|(?:rightright|leftleft|upup)arrow|rightleftarrow|(?:(?:(?:righ|lef)tthree|divideon|b(?:igo|ox)|[lr]o)t|InvisibleT)ime|downdownarrow|(?:(?:smallset|tri|dot|box)m|PlusM)inu|(?:RoundImpli|complex|Impli|Otim)e|C(?:ircle(?:Time|Minu|Plu)|ayley|ros)|(?:rationa|mode)l|NotExist|(?:(?:UnionP|MinusP|(?:b(?:ig[ou]|ox)|tri|s(?:u[bp]|im)|dot|xu|mn)p)l|(?:xo|u)pl|o(?:min|pl)|ropl|lopl|epl)u|otimesa|integer|e(?:linter|qual)|setminu|rarrbf|larrb?f|olcros|rarrf|mstpo|lesge|gesle|Exist|[lr]time|strn|napo|fltn|ccap|apo)s|(?:b(?:(?:lack|ig)triangledow|etwee)|(?:righ|lef)tharpoondow|(?:triangle|mapsto)dow|(?:nv|i)infi|ssetm|plusm|lagra|d(?:[lr]cor|isi)|c(?:ompf|aro)|s?frow|(?:hyph|curr)e|kgree|thor|ogo|ye)n|Not(?:Righ|Lef)tTriangle|(?:Up(?:Arrow)?|Short)DownArrow|(?:(?:n(?:triangle(?:righ|lef)t|succ|prec)|(?:trianglerigh|trianglelef|sqsu[bp]se|ques)t|backsim)e|lvertneq|gvertneq|(?:suc|pre)cneq|a(?:pprox|symp)e|(?:succ|prec|vee)e|circe)q|(?:UnderParenthes|OverParenthes|xn)is|(?:(?:Righ|Lef)tDown|Right(?:Up)?|Left(?:Up)?)Vector|D(?:o(?:wn(?:RightVector|LeftVector|Arrow|Tee)|t)|el|D)|l(?:eftrightarrows|br(?:k(?:sl[du]|e)|ac[ek])|tri[ef]|s(?:im[eg]|qb|h)|hard|a(?:tes|ngd|p)|o[pz]f|rm|gE|fr|eg|cy)|(?:NotHumpDownHum|(?:righ|lef)tharpoonu|big(?:(?:triangle|sqc)u|c[au])|HumpDownHum|m(?:apstou|lc)|(?:capbr|xsq)cu|smash|rarr[al]|(?:weie|sha)r|larrl|velli|(?:thin|punc)s|h(?:elli|airs)|(?:u[lr]c|vp)ro|d[lr]cro|c(?:upc[au]|apc[au])|thka|scna|prn?a|oper|n(?:ums|va|cu|bs)|ens|xc[au]|Ma)p|l(?:eftrightarrow|e(?:ftarrow|s(?:dot)?)?|moust|a(?:rrb?|te?|ng)|t(?:ri)?|sim|par|oz|l|g)|n(?:triangle(?:righ|lef)t|succ|prec)|SquareSu(?:per|b)set|(?:I(?:nvisibleComm|ot)|(?:varthe|iio)t|varkapp|(?:vars|S)igm|(?:diga|mco)mm|Cedill|lambd|Lambd|delt|Thet|omeg|Omeg|Kapp|Delt|nabl|zet|to[es]|rdc|ldc|iot|Zet|Bet|Et)a|b(?:lacktriangle|arwed|u(?:mpe?|ll)|sol|o(?:x[HVhv]|t)|brk|ne)|(?:trianglerigh|trianglelef|sqsu[bp]se|ques)t|RightT(?:riangl|e)e|(?:(?:varsu[bp]setn|su(?:psetn?|bsetn?))eq|nsu[bp]seteq|colone|(?:wedg|sim)e|nsime|lneq|gneq)q|DifferentialD|(?:(?:fall|ris)ingdots|(?:suc|pre)ccurly|ddots)eq|A(?:pplyFunction|ssign|(?:tild|grav|brev)e|acute|o(?:gon|pf)|lpha|(?:mac|sc|f)r|c(?:irc|y)|ring|Elig|uml|nd|MP)|(?:varsu[bp]setn|su(?:psetn?|bsetn?))eq|L(?:eft(?:T(?:riangl|e)e|Arrow)|l)|G(?:reaterEqual|amma)|E(?:xponentialE|quilibrium|sim|cy|TH|NG)|(?:(?:RightCeil|LeftCeil|varnoth|ar|Ur)in|(?:b(?:ack)?co|uri)n|vzigza|roan|loan|ffli|amal|sun|rin|n(?:tl|an)|Ran|Lan)g|(?:thick|succn?|precn?|less|g(?:tr|n)|ln|n)approx|(?:s(?:traightph|em)|(?:rtril|xu|u[lr]|xd|v[lr])tr|varph|l[lr]tr|b(?:sem|eps)|Ph)i|(?:circledd|osl|n(?:v[Dd]|V[Dd]|d)|hsl|V(?:vd|D)|Osl|v[Dd]|md)ash|(?:(?:RuleDelay|imp|cuw)e|(?:n(?:s(?:hort)?)?|short|rn)mi|D(?:Dotrah|iamon)|(?:i(?:nt)?pr|peri)o|odsol|llhar|c(?:opro|irmi)|(?:capa|anda|pou)n|Barwe|napi|api)d|(?:cu(?:rlyeq(?:suc|pre)|es)|telre|[ou]dbla|Udbla|Odbla|radi|lesc|gesc|dbla)c|(?:circled|big|eq|[is]|c|x|a|S|[hw]|W|H|G|E|C)circ|rightarrow|R(?:ightArrow|arr|e)|Pr(?:oportion)?|(?:longmapst|varpropt|p(?:lustw|ropt)|varrh|numer|(?:rsa|lsa|sb)qu|m(?:icr|h)|[lr]aqu|bdqu|eur)o|UnderBrace|ImaginaryI|B(?:ernoullis|a(?:ckslash|rv)|umpeq|cy)|(?:(?:Laplace|Mellin|zee)tr|Fo(?:uriertr|p)|(?:profsu|ssta)r|ordero|origo|[ps]op|nop|mop|i(?:op|mo)|h(?:op|al)|f(?:op|no)|dop|bop|Rop|Pop|Nop|Lop|Iop|Hop|Dop|[GJKMOQSTV-Zgjkoqvwyz]op|Bop)f|nsu[bp]seteq|t(?:ri(?:angleq|e)|imesd|he(?:tav|re4)|au)|O(?:verBrace|r)|(?:(?:pitchfo|checkma|t(?:opfo|b)|rob|rbb|l[bo]b)r|intlarh|b(?:brktbr|l(?:oc|an))|perten|NoBrea|rarrh|s[ew]arh|n[ew]arh|l(?:arrh|hbl)|uhbl|Hace)k|(?:NotCupC|(?:mu(?:lti)?|x)m|cupbrc)ap|t(?:riangle|imes|heta|opf?)|Precedes|Succeeds|Superset|NotEqual|(?:n(?:atural|exist|les)|s(?:qc[au]p|mte)|prime)s|c(?:ir(?:cled[RS]|[Ee])|u(?:rarrm|larrp|darr[lr]|ps)|o(?:mmat|pf)|aps|hi)|b(?:sol(?:hsu)?b|ump(?:eq|E)|ox(?:box|[Vv][HLRhlr]|[Hh][DUdu]|[DUdu][LRlr])|e(?:rnou|t[ah])|lk(?:34|1[24])|cy)|(?:l(?:esdot|squ|dqu)o|rsquo|rdquo|ngt)r|a(?:n(?:g(?:msda[a-h]|st|e)|d[dv])|st|p[Ee]|mp|fr|c[Edy])|(?:g(?:esdoto|E)|[lr]haru)l|(?:angrtvb|lrhar|nis)d|(?:(?:th(?:ic)?k|succn?|p(?:r(?:ecn?|n)?|lus)|rarr|l(?:ess|arr)|su[bp]|par|scn|g(?:tr|n)|ne|sc|n[glv]|ln|eq?)si|thetasy|ccupss|alefsy|botto)m|trpezium|(?:hks[ew]|dr?bk|bk)arow|(?:(?:[lr]a|d|c)empty|b(?:nequi|empty)|plank|nequi|odi)v|(?:(?:sc|rp|n)pol|point|fpart)int|(?:c(?:irf|wco)|awco)nint|PartialD|n(?:s(?:u[bp](?:set)?|c)|rarr|ot(?:ni|in)?|warr|e(?:arr)?|a(?:tur|p)|vlt|p(?:re?|ar)|um?|l[et]|ge|i)|n(?:atural|exist|les)|d(?:i(?:am(?:ond)?|v(?:ide)?)|tri|ash|ot|d)|backsim|l(?:esdot|squ|dqu)o|g(?:esdoto|E)|U(?:p(?:Arrow|si)|nion|arr)|angrtvb|p(?:l(?:anckh|us(?:d[ou]|[be]))|ar(?:sl|t)|r(?:od|nE|E)|erp|iv|m)|n(?:ot(?:niv[a-c]|in(?:v[a-c]|E))|rarr[cw]|s(?:u[bp][Ee]|c[er])|part|v(?:le|g[et])|g(?:es|E)|c(?:ap|y)|apE|lE|iv|Ll|Gg)|m(?:inus(?:du|b)|ale|cy|p)|rbr(?:k(?:sl[du]|e)|ac[ek])|(?:suphsu|tris|rcu|lcu)b|supdsub|(?:s[ew]a|n[ew]a)rrow|(?:b(?:ecaus|sim)|n(?:[lr]tri|bump)|csu[bp])e|equivDD|u(?:rcorn|lcorn|psi)|timesb|s(?:u(?:p(?:set)?|b(?:set)?)|q(?:su[bp]|u)|i(?:gma|m)|olb?|dot|mt|fr|ce?)|p(?:l(?:anck|us)|r(?:op|ec?)?|ara?|i)|o(?:times|r(?:d(?:er)?)?)|m(?:i(?:nusd?|d)|a(?:p(?:sto)?|lt)|u)|rmoust|g(?:e(?:s(?:dot|l)?|q)?|sim|n(?:ap|e)|t|l|g)|(?:spade|heart)s|c(?:u(?:rarr|larr|p)|o(?:m(?:ma|p)|lon|py|ng)|lubs|heck|cups|irc?|ent|ap)|colone|a(?:p(?:prox)?|n(?:g(?:msd|rt)?|d)|symp|f|c)|S(?:quare|u[bp]|c)|Subset|b(?:ecaus|sim)|vsu[bp]n[Ee]|s(?:u(?:psu[bp]|b(?:su[bp]|n[Ee]|E)|pn[Ee]|p[1-3E]|m)|q(?:u(?:ar[ef]|f)|su[bp]e)|igma[fv]|etmn|dot[be]|par|mid|hc?y|c[Ey])|f(?:rac(?:78|5[68]|45|3[458]|2[35]|1[2-68])|fr)|e(?:m(?:sp1[34]|ptyv)|psiv|c(?:irc|y)|t[ah]|ng|ll|fr|e)|(?:kappa|isins|vBar|fork|rho|phi|n[GL]t)v|divonx|V(?:dashl|ee)|gammad|G(?:ammad|cy|[Tgt])|[Ldhlt]strok|[HT]strok|(?:c(?:ylct|hc)|(?:s(?:oft|hch)|hard|S(?:OFT|HCH)|jser|J(?:ser|uk)|HARD|tsh|TSH|juk|iuk|I(?:uk|[EO])|zh|yi|nj|lj|k[hj]|gj|dj|ZH|Y[AIU]|NJ|LJ|K[HJ]|GJ|D[JSZ])c|ubrc|Ubrc|(?:yu|i[eo]|dz|v|p|f)c|TSc|SHc|CHc|Vc|Pc|Mc|Fc)y|(?:(?:wre|jm)at|dalet|a(?:ngs|le)p|imat|[lr]ds)h|[CLRUceglnou]acute|ff?llig|(?:f(?:fi|[ij])|sz|oe|ij|ae|OE|IJ)lig|r(?:a(?:tio|rr|ng)|tri|par|eal)|s[ew]arr|s(?:qc[au]p|mte)|prime|rarrb|i(?:n(?:fin|t)?|sin|t|i|c)|e(?:quiv|m(?:pty|sp)|p(?:si|ar)|cir|l|g)|kappa|isins|ncong|doteq|(?:wedg|sim)e|nsime|rsquo|rdquo|[lr]haru|V(?:dash|ert)|Tilde|lrhar|gamma|Equal|UpTee|n(?:[lr]tri|bump)|C(?:olon|up|ap)|v(?:arpi|ert)|u(?:psih|ml)|vnsu[bp]|r(?:tri[ef]|e(?:als|g)|a(?:rr[cw]|ng[de]|ce)|sh|lm|x)|rhard|sim[gl]E|i(?:sin[Ev]|mage|f[fr]|cy)|harrw|(?:n[gl]|l)eqq|g(?:sim[el]|tcc|e(?:qq|l)|nE|l[Eaj]|gg|ap)|ocirc|starf|utrif|d(?:trif|i(?:ams|e)|ashv|sc[ry]|fr|eg)|[du]har[lr]|T(?:HORN|a[bu])|(?:TRAD|[gl]vn)E|odash|[EUaeu]o(?:gon|pf)|alpha|[IJOUYgjuy]c(?:irc|y)|v(?:arr|ee)|succ|sim[gl]|harr|ln(?:ap|e)|lesg|(?:n[gl]|l)eq|ocir|star|utri|vBar|fork|su[bp]e|nsim|lneq|gneq|csu[bp]|zwn?j|yacy|x(?:opf|i)|scnE|o(?:r(?:d[fm]|v)|mid|lt|hm|gt|fr|cy|S)|scap|rsqb|ropf|ltcc|tsc[ry]|QUOT|[EOUYao]uml|rho|phi|n[GL]t|e[gl]s|ngt|I(?:nt|m)|nis|rfr|rcy|lnE|lEg|ufr|S(?:um|cy)|R(?:sh|ho)|psi|Ps?i|[NRTt]cy|L(?:sh|cy|[Tt])|kcy|Kcy|Hat|REG|[Zdz]cy|wr|lE|wp|Xi|Nu|Mu)(;)",name:"constant.language.character-reference.named.html",captures:{"1":{name:"punctuation.definition.character-reference.begin.html"},"2":{name:"keyword.control.character-reference.html"},"3":{name:"punctuation.definition.character-reference.end.html"}}},"commonmark-code-fenced-apib":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:api\\x2dblueprint|(?:.*\\.)?apib))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.apib",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.apib.mdx",patterns:[{include:"text.html.markdown.source.gfm.apib"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:api\\x2dblueprint|(?:.*\\.)?apib))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.apib",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.apib.mdx",patterns:[{include:"text.html.markdown.source.gfm.apib"}]}]},"commonmark-code-fenced-asciidoc":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?(?:adoc|asciidoc)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.asciidoc",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.asciidoc.mdx",patterns:[{include:"text.html.asciidoc"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?(?:adoc|asciidoc)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.asciidoc",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.asciidoc.mdx",patterns:[{include:"text.html.asciidoc"}]}]},"commonmark-code-fenced-c":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:dtrace|dtrace\\x2dscript|oncrpc|rpc|rpcgen|unified\\x2dparallel\\x2dc|x\\x2dbitmap|x\\x2dpixmap|xdr|(?:.*\\.)?(?:c|cats|h|idc|opencl|upc|xbm|xpm|xs)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.c",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.c.mdx",patterns:[{include:"source.c"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:dtrace|dtrace\\x2dscript|oncrpc|rpc|rpcgen|unified\\x2dparallel\\x2dc|x\\x2dbitmap|x\\x2dpixmap|xdr|(?:.*\\.)?(?:c|cats|h|idc|opencl|upc|xbm|xpm|xs)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.c",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.c.mdx",patterns:[{include:"source.c"}]}]},"commonmark-code-fenced-clojure":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:clojure|rouge|(?:.*\\.)?(?:boot|cl2|clj|cljc|cljs|cljs\\.hl|cljscm|cljx|edn|hic|rg|wisp)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.clojure",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.clojure.mdx",patterns:[{include:"source.clojure"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:clojure|rouge|(?:.*\\.)?(?:boot|cl2|clj|cljc|cljs|cljs\\.hl|cljscm|cljx|edn|hic|rg|wisp)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.clojure",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.clojure.mdx",patterns:[{include:"source.clojure"}]}]},"commonmark-code-fenced-coffee":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:coffee\\x2dscript|coffeescript|(?:.*\\.)?(?:_coffee|cjsx|coffee|cson|em|emberscript|iced)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.coffee",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.coffee.mdx",patterns:[{include:"source.coffee"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:coffee\\x2dscript|coffeescript|(?:.*\\.)?(?:_coffee|cjsx|coffee|cson|em|emberscript|iced)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.coffee",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.coffee.mdx",patterns:[{include:"source.coffee"}]}]},"commonmark-code-fenced-console":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:pycon|python\\x2dconsole))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.console",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.console.mdx",patterns:[{include:"text.python.console"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:pycon|python\\x2dconsole))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.console",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.console.mdx",patterns:[{include:"text.python.console"}]}]},"commonmark-code-fenced-cpp":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:ags|ags\\x2dscript|asymptote|c\\+\\+|edje\\x2ddata\\x2dcollection|game\\x2dmaker\\x2dlanguage|swig|(?:.*\\.)?(?:asc|ash|asy|c\\+\\+|cc|cp|cpp|cppm|cxx|edc|gml|h\\+\\+|hh|hpp|hxx|inl|ino|ipp|ixx|metal|re|tcc|tpp|txx)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.cpp",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.cpp.mdx",patterns:[{include:"source.c++"},{include:"source.cpp"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:ags|ags\\x2dscript|asymptote|c\\+\\+|edje\\x2ddata\\x2dcollection|game\\x2dmaker\\x2dlanguage|swig|(?:.*\\.)?(?:asc|ash|asy|c\\+\\+|cc|cp|cpp|cppm|cxx|edc|gml|h\\+\\+|hh|hpp|hxx|inl|ino|ipp|ixx|metal|re|tcc|tpp|txx)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.cpp",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.cpp.mdx",patterns:[{include:"source.c++"},{include:"source.cpp"}]}]},"commonmark-code-fenced-cs":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:beef|c#|cakescript|csharp|(?:.*\\.)?(?:bf|cake|cs|csx|eq|linq|uno)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.cs",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.cs.mdx",patterns:[{include:"source.cs"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:beef|c#|cakescript|csharp|(?:.*\\.)?(?:bf|cake|cs|csx|eq|linq|uno)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.cs",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.cs.mdx",patterns:[{include:"source.cs"}]}]},"commonmark-code-fenced-css":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?css))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.css",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.css.mdx",patterns:[{include:"source.css"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?css))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.css",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.css.mdx",patterns:[{include:"source.css"}]}]},"commonmark-code-fenced-diff":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:udiff|(?:.*\\.)?(?:diff|patch)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.diff",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.diff.mdx",patterns:[{include:"source.diff"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:udiff|(?:.*\\.)?(?:diff|patch)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.diff",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.diff.mdx",patterns:[{include:"source.diff"}]}]},"commonmark-code-fenced-dockerfile":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:containerfile|(?:.*\\.)?dockerfile))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.dockerfile",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.dockerfile.mdx",patterns:[{include:"source.dockerfile"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:containerfile|(?:.*\\.)?dockerfile))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.dockerfile",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.dockerfile.mdx",patterns:[{include:"source.dockerfile"}]}]},"commonmark-code-fenced-elixir":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:elixir|(?:.*\\.)?(?:ex|exs)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.elixir",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.elixir.mdx",patterns:[{include:"source.elixir"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:elixir|(?:.*\\.)?(?:ex|exs)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.elixir",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.elixir.mdx",patterns:[{include:"source.elixir"}]}]},"commonmark-code-fenced-elm":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?elm))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.elm",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.elm.mdx",patterns:[{include:"source.elm"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?elm))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.elm",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.elm.mdx",patterns:[{include:"source.elm"}]}]},"commonmark-code-fenced-erlang":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:erlang|(?:.*\\.)?(?:app|app\\.src|erl|es|escript|hrl|xrl|yrl)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.erlang",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.erlang.mdx",patterns:[{include:"source.erlang"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:erlang|(?:.*\\.)?(?:app|app\\.src|erl|es|escript|hrl|xrl|yrl)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.erlang",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.erlang.mdx",patterns:[{include:"source.erlang"}]}]},"commonmark-code-fenced-gitconfig":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:git\\x2dconfig|gitmodules|(?:.*\\.)?gitconfig))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.gitconfig",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.gitconfig.mdx",patterns:[{include:"source.gitconfig"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:git\\x2dconfig|gitmodules|(?:.*\\.)?gitconfig))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.gitconfig",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.gitconfig.mdx",patterns:[{include:"source.gitconfig"}]}]},"commonmark-code-fenced-go":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:golang|(?:.*\\.)?go))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.go",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.go.mdx",patterns:[{include:"source.go"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:golang|(?:.*\\.)?go))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.go",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.go.mdx",patterns:[{include:"source.go"}]}]},"commonmark-code-fenced-graphql":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?(?:gql|graphql|graphqls)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.graphql",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.graphql.mdx",patterns:[{include:"source.graphql"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?(?:gql|graphql|graphqls)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.graphql",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.graphql.mdx",patterns:[{include:"source.graphql"}]}]},"commonmark-code-fenced-haskell":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:c2hs|c2hs\\x2dhaskell|frege|haskell|(?:.*\\.)?(?:chs|dhall|hs|hs\\x2dboot|hsc)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.haskell",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.haskell.mdx",patterns:[{include:"source.haskell"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:c2hs|c2hs\\x2dhaskell|frege|haskell|(?:.*\\.)?(?:chs|dhall|hs|hs\\x2dboot|hsc)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.haskell",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.haskell.mdx",patterns:[{include:"source.haskell"}]}]},"commonmark-code-fenced-html":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:html|(?:.*\\.)?(?:hta|htm|html\\.hl|kit|mtml|xht|xhtml)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.html",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.html.mdx",patterns:[{include:"text.html.basic"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:html|(?:.*\\.)?(?:hta|htm|html\\.hl|kit|mtml|xht|xhtml)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.html",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.html.mdx",patterns:[{include:"text.html.basic"}]}]},"commonmark-code-fenced-ini":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:altium|altium\\x2ddesigner|dosini|(?:.*\\.)?(?:cnf|dof|ini|lektorproject|outjob|pcbdoc|prefs|prjpcb|properties|schdoc|url)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.ini",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.ini.mdx",patterns:[{include:"source.ini"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:altium|altium\\x2ddesigner|dosini|(?:.*\\.)?(?:cnf|dof|ini|lektorproject|outjob|pcbdoc|prefs|prjpcb|properties|schdoc|url)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.ini",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.ini.mdx",patterns:[{include:"source.ini"}]}]},"commonmark-code-fenced-java":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:chuck|unrealscript|(?:.*\\.)?(?:ck|jav|java|jsh|uc)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.java",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.java.mdx",patterns:[{include:"source.java"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:chuck|unrealscript|(?:.*\\.)?(?:ck|jav|java|jsh|uc)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.java",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.java.mdx",patterns:[{include:"source.java"}]}]},"commonmark-code-fenced-js":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:cycript|javascript\\+erb|json\\x2dwith\\x2dcomments|node|qt\\x2dscript|(?:.*\\.)?(?:_js|bones|cjs|code\\x2dsnippets|cy|es6|jake|javascript|js|js\\.erb|jsb|jscad|jsfl|jslib|jsm|json5|jsonc|jsonld|jspre|jss|jsx|mjs|njs|pac|sjs|ssjs|sublime\\x2dbuild|sublime\\x2dcommands|sublime\\x2dcompletions|sublime\\x2dkeymap|sublime\\x2dmacro|sublime\\x2dmenu|sublime\\x2dmousemap|sublime\\x2dproject|sublime\\x2dsettings|sublime\\x2dtheme|sublime\\x2dworkspace|sublime_metrics|sublime_session|xsjs|xsjslib)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.js",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.js.mdx",patterns:[{include:"source.js"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:cycript|javascript\\+erb|json\\x2dwith\\x2dcomments|node|qt\\x2dscript|(?:.*\\.)?(?:_js|bones|cjs|code\\x2dsnippets|cy|es6|jake|javascript|js|js\\.erb|jsb|jscad|jsfl|jslib|jsm|json5|jsonc|jsonld|jspre|jss|jsx|mjs|njs|pac|sjs|ssjs|sublime\\x2dbuild|sublime\\x2dcommands|sublime\\x2dcompletions|sublime\\x2dkeymap|sublime\\x2dmacro|sublime\\x2dmenu|sublime\\x2dmousemap|sublime\\x2dproject|sublime\\x2dsettings|sublime\\x2dtheme|sublime\\x2dworkspace|sublime_metrics|sublime_session|xsjs|xsjslib)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.js",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.js.mdx",patterns:[{include:"source.js"}]}]},"commonmark-code-fenced-json":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:ecere\\x2dprojects|ipython\\x2dnotebook|jupyter\\x2dnotebook|max|max/msp|maxmsp|oasv2\\x2djson|oasv3\\x2djson|(?:.*\\.)?(?:4dform|4dproject|avsc|epj|geojson|gltf|har|ice|ipynb|json|json|json|json\\x2dtmlanguage|jsonl|maxhelp|maxpat|maxproj|mcmeta|mxt|pat|tfstate|tfstate\\.backup|topojson|webapp|webmanifest|yy|yyp)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.json",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.json.mdx",patterns:[{include:"source.json"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:ecere\\x2dprojects|ipython\\x2dnotebook|jupyter\\x2dnotebook|max|max/msp|maxmsp|oasv2\\x2djson|oasv3\\x2djson|(?:.*\\.)?(?:4dform|4dproject|avsc|epj|geojson|gltf|har|ice|ipynb|json|json|json|json\\x2dtmlanguage|jsonl|maxhelp|maxpat|maxproj|mcmeta|mxt|pat|tfstate|tfstate\\.backup|topojson|webapp|webmanifest|yy|yyp)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.json",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.json.mdx",patterns:[{include:"source.json"}]}]},"commonmark-code-fenced-julia":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:julia|(?:.*\\.)?jl))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.julia",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.julia.mdx",patterns:[{include:"source.julia"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:julia|(?:.*\\.)?jl))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.julia",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.julia.mdx",patterns:[{include:"source.julia"}]}]},"commonmark-code-fenced-kotlin":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:kotlin|(?:.*\\.)?(?:kt|ktm|kts)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.kotlin",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.kotlin.mdx",patterns:[{include:"source.kotlin"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:kotlin|(?:.*\\.)?(?:kt|ktm|kts)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.kotlin",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.kotlin.mdx",patterns:[{include:"source.kotlin"}]}]},"commonmark-code-fenced-less":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:less\\x2dcss|(?:.*\\.)?less))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.less",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.less.mdx",patterns:[{include:"source.css.less"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:less\\x2dcss|(?:.*\\.)?less))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.less",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.less.mdx",patterns:[{include:"source.css.less"}]}]},"commonmark-code-fenced-lua":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?(?:fcgi|lua|nse|p8|pd_lua|rbxs|rockspec|wlua)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.lua",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.lua.mdx",patterns:[{include:"source.lua"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?(?:fcgi|lua|nse|p8|pd_lua|rbxs|rockspec|wlua)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.lua",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.lua.mdx",patterns:[{include:"source.lua"}]}]},"commonmark-code-fenced-makefile":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:bsdmake|mf|(?:.*\\.)?(?:mak|make|makefile|mk|mkfile)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.makefile",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.makefile.mdx",patterns:[{include:"source.makefile"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:bsdmake|mf|(?:.*\\.)?(?:mak|make|makefile|mk|mkfile)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.makefile",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.makefile.mdx",patterns:[{include:"source.makefile"}]}]},"commonmark-code-fenced-md":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:md|pandoc|rmarkdown|(?:.*\\.)?(?:livemd|markdown|mdown|mdwn|mkd|mkdn|mkdown|qmd|rmd|ronn|scd|workbook)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.md",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.md.mdx",patterns:[{include:"text.md"},{include:"source.gfm"},{include:"text.html.markdown"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:md|pandoc|rmarkdown|(?:.*\\.)?(?:livemd|markdown|mdown|mdwn|mkd|mkdn|mkdown|qmd|rmd|ronn|scd|workbook)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.md",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.md.mdx",patterns:[{include:"text.md"},{include:"source.gfm"},{include:"text.html.markdown"}]}]},"commonmark-code-fenced-mdx":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?mdx))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.mdx",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.mdx.mdx",patterns:[{include:"source.mdx"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?mdx))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.mdx",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.mdx.mdx",patterns:[{include:"source.mdx"}]}]},"commonmark-code-fenced-objc":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:obj\\x2dc|objc|objective\\x2dc|objectivec))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.objc",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.objc.mdx",patterns:[{include:"source.objc"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:obj\\x2dc|objc|objective\\x2dc|objectivec))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.objc",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.objc.mdx",patterns:[{include:"source.objc"}]}]},"commonmark-code-fenced-perl":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:cperl|(?:.*\\.)?(?:cgi|perl|ph|pl|plx|pm|psgi|t)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.perl",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.perl.mdx",patterns:[{include:"source.perl"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:cperl|(?:.*\\.)?(?:cgi|perl|ph|pl|plx|pm|psgi|t)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.perl",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.perl.mdx",patterns:[{include:"source.perl"}]}]},"commonmark-code-fenced-php":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:html\\+php|inc|php|(?:.*\\.)?(?:aw|ctp|php3|php4|php5|phps|phpt|phtml)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.php",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.php.mdx",patterns:[{include:"text.html.php"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:html\\+php|inc|php|(?:.*\\.)?(?:aw|ctp|php3|php4|php5|phps|phpt|phtml)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.php",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.php.mdx",patterns:[{include:"text.html.php"}]}]},"commonmark-code-fenced-python":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:bazel|easybuild|python|python3|rusthon|snakemake|starlark|xonsh|(?:.*\\.)?(?:bzl|eb|gyp|gypi|lmi|py|py3|pyde|pyi|pyp|pyt|pyw|rpy|sage|sagews|smk|snakefile|spec|tac|wsgi|xpy|xsh)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.python",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.python.mdx",patterns:[{include:"source.python"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:bazel|easybuild|python|python3|rusthon|snakemake|starlark|xonsh|(?:.*\\.)?(?:bzl|eb|gyp|gypi|lmi|py|py3|pyde|pyi|pyp|pyt|pyw|rpy|sage|sagews|smk|snakefile|spec|tac|wsgi|xpy|xsh)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.python",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.python.mdx",patterns:[{include:"source.python"}]}]},"commonmark-code-fenced-r":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:rscript|splus|(?:.*\\.)?(?:r|rd|rsx)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.r",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.r.mdx",patterns:[{include:"source.r"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:rscript|splus|(?:.*\\.)?(?:r|rd|rsx)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.r",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.r.mdx",patterns:[{include:"source.r"}]}]},"commonmark-code-fenced-raku":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:perl\\x2d6|perl6|pod\\x2d6|(?:.*\\.)?(?:6pl|6pm|nqp|p6|p6l|p6m|pl6|pm6|pod|pod6|raku|rakumod)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.raku",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.raku.mdx",patterns:[{include:"source.raku"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:perl\\x2d6|perl6|pod\\x2d6|(?:.*\\.)?(?:6pl|6pm|nqp|p6|p6l|p6m|pl6|pm6|pod|pod6|raku|rakumod)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.raku",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.raku.mdx",patterns:[{include:"source.raku"}]}]},"commonmark-code-fenced-ruby":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:jruby|macruby|(?:.*\\.)?(?:builder|druby|duby|eye|gemspec|god|jbuilder|mirah|mspec|pluginspec|podspec|prawn|rabl|rake|rb|rbi|rbuild|rbw|rbx|ru|ruby|thor|watchr)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.ruby",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.ruby.mdx",patterns:[{include:"source.ruby"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:jruby|macruby|(?:.*\\.)?(?:builder|druby|duby|eye|gemspec|god|jbuilder|mirah|mspec|pluginspec|podspec|prawn|rabl|rake|rb|rbi|rbuild|rbw|rbx|ru|ruby|thor|watchr)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.ruby",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.ruby.mdx",patterns:[{include:"source.ruby"}]}]},"commonmark-code-fenced-rust":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:rust|(?:.*\\.)?(?:rs|rs\\.in)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.rust",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.rust.mdx",patterns:[{include:"source.rust"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:rust|(?:.*\\.)?(?:rs|rs\\.in)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.rust",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.rust.mdx",patterns:[{include:"source.rust"}]}]},"commonmark-code-fenced-scala":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?(?:kojo|sbt|sc|scala)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.scala",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.scala.mdx",patterns:[{include:"source.scala"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?(?:kojo|sbt|sc|scala)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.scala",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.scala.mdx",patterns:[{include:"source.scala"}]}]},"commonmark-code-fenced-scss":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?scss))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.scss",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.scss.mdx",patterns:[{include:"source.css.scss"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?scss))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.scss",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.scss.mdx",patterns:[{include:"source.css.scss"}]}]},"commonmark-code-fenced-shell":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:abuild|alpine\\x2dabuild|apkbuild|gentoo\\x2debuild|gentoo\\x2declass|openrc|openrc\\x2drunscript|shell|shell\\x2dscript|(?:.*\\.)?(?:bash|bats|command|csh|ebuild|eclass|ksh|sh|sh\\.in|tcsh|tmux|tool|zsh|zsh\\x2dtheme)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.shell",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.shell.mdx",patterns:[{include:"source.shell"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:abuild|alpine\\x2dabuild|apkbuild|gentoo\\x2debuild|gentoo\\x2declass|openrc|openrc\\x2drunscript|shell|shell\\x2dscript|(?:.*\\.)?(?:bash|bats|command|csh|ebuild|eclass|ksh|sh|sh\\.in|tcsh|tmux|tool|zsh|zsh\\x2dtheme)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.shell",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.shell.mdx",patterns:[{include:"source.shell"}]}]},"commonmark-code-fenced-shell-session":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:bash\\x2dsession|console|shellsession|(?:.*\\.)?sh\\x2dsession))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.shell-session",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.shell-session.mdx",patterns:[{include:"text.shell-session"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:bash\\x2dsession|console|shellsession|(?:.*\\.)?sh\\x2dsession))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.shell-session",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.shell-session.mdx",patterns:[{include:"text.shell-session"}]}]},"commonmark-code-fenced-sql":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:plpgsql|sqlpl|(?:.*\\.)?(?:cql|db2|ddl|mysql|pgsql|prc|sql|sql|sql|tab|udf|viw)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.sql",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.sql.mdx",patterns:[{include:"source.sql"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:plpgsql|sqlpl|(?:.*\\.)?(?:cql|db2|ddl|mysql|pgsql|prc|sql|sql|sql|tab|udf|viw)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.sql",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.sql.mdx",patterns:[{include:"source.sql"}]}]},"commonmark-code-fenced-svg":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?svg))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.svg",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.svg.mdx",patterns:[{include:"text.xml.svg"},{include:"text.xml"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?svg))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.svg",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.svg.mdx",patterns:[{include:"text.xml.svg"},{include:"text.xml"}]}]},"commonmark-code-fenced-swift":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?swift))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.swift",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.swift.mdx",patterns:[{include:"source.swift"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?swift))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.swift",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.swift.mdx",patterns:[{include:"source.swift"}]}]},"commonmark-code-fenced-toml":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?toml))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.toml",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.toml.mdx",patterns:[{include:"source.toml"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?toml))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.toml",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.toml.mdx",patterns:[{include:"source.toml"}]}]},"commonmark-code-fenced-ts":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:typescript|(?:.*\\.)?(?:cts|mts|ts)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.ts",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.ts.mdx",patterns:[{include:"source.ts"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:typescript|(?:.*\\.)?(?:cts|mts|ts)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.ts",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.ts.mdx",patterns:[{include:"source.ts"}]}]},"commonmark-code-fenced-tsx":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?tsx))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.tsx",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.tsx.mdx",patterns:[{include:"source.tsx"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?tsx))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.tsx",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.tsx.mdx",patterns:[{include:"source.tsx"}]}]},"commonmark-code-fenced-vbnet":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:classic\\x2dvisual\\x2dbasic|fb|freebasic|realbasic|vb\\x2d\\.net|vb\\x2d6|vb\\.net|vb6|vbnet|vbscript|visual\\x2dbasic|visual\\x2dbasic\\x2d\\.net|visual\\x2dbasic\\x2d6|visual\\x2dbasic\\x2d6\\.0|visual\\x2dbasic\\x2dclassic|(?:.*\\.)?(?:bi|ctl|dsr|rbbas|rbfrm|rbmnu|rbres|rbtbar|rbuistate|vb|vbhtml|vbs)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.vbnet",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.vbnet.mdx",patterns:[{include:"source.vbnet"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:classic\\x2dvisual\\x2dbasic|fb|freebasic|realbasic|vb\\x2d\\.net|vb\\x2d6|vb\\.net|vb6|vbnet|vbscript|visual\\x2dbasic|visual\\x2dbasic\\x2d\\.net|visual\\x2dbasic\\x2d6|visual\\x2dbasic\\x2d6\\.0|visual\\x2dbasic\\x2dclassic|(?:.*\\.)?(?:bi|ctl|dsr|rbbas|rbfrm|rbmnu|rbres|rbtbar|rbuistate|vb|vbhtml|vbs)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.vbnet",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.vbnet.mdx",patterns:[{include:"source.vbnet"}]}]},"commonmark-code-fenced-xml":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:collada|eagle|labview|web\\x2dontology\\x2dlanguage|xpages|(?:.*\\.)?(?:adml|admx|ant|axaml|axml|brd|builds|ccproj|ccxml|clixml|cproject|cscfg|csdef|csproj|ct|dae|depproj|dita|ditamap|ditaval|dll\\.config|dotsettings|filters|fsproj|fxml|glade|gmx|grxml|hzp|iml|ivy|jelly|jsproj|kml|launch|lvclass|lvlib|lvproj|mdpolicy|mjml|mxml|natvis|ndproj|nproj|nuspec|odd|osm|owl|pkgproj|proj|props|ps1xml|psc1|pt|qhelp|rdf|resx|rss|sch|sch|scxml|sfproj|shproj|srdf|storyboard|sublime\\x2dsnippet|targets|tml|ui|urdf|ux|vbproj|vcxproj|vsixmanifest|vssettings|vstemplate|vxml|wixproj|wsdl|wsf|wxi|wxl|wxs|x3d|xacro|xaml|xib|xlf|xliff|xmi|xml|xml\\.dist|xmp|xpl|xproc|xproj|xsd|xsp\\x2dconfig|xsp\\.metadata|xspec|xul|zcml)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.xml",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.xml.mdx",patterns:[{include:"text.xml"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:collada|eagle|labview|web\\x2dontology\\x2dlanguage|xpages|(?:.*\\.)?(?:adml|admx|ant|axaml|axml|brd|builds|ccproj|ccxml|clixml|cproject|cscfg|csdef|csproj|ct|dae|depproj|dita|ditamap|ditaval|dll\\.config|dotsettings|filters|fsproj|fxml|glade|gmx|grxml|hzp|iml|ivy|jelly|jsproj|kml|launch|lvclass|lvlib|lvproj|mdpolicy|mjml|mxml|natvis|ndproj|nproj|nuspec|odd|osm|owl|pkgproj|proj|props|ps1xml|psc1|pt|qhelp|rdf|resx|rss|sch|sch|scxml|sfproj|shproj|srdf|storyboard|sublime\\x2dsnippet|targets|tml|ui|urdf|ux|vbproj|vcxproj|vsixmanifest|vssettings|vstemplate|vxml|wixproj|wsdl|wsf|wxi|wxl|wxs|x3d|xacro|xaml|xib|xlf|xliff|xmi|xml|xml\\.dist|xmp|xpl|xproc|xproj|xsd|xsp\\x2dconfig|xsp\\.metadata|xspec|xul|zcml)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.xml",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.xml.mdx",patterns:[{include:"text.xml"}]}]},"commonmark-code-fenced-yaml":{patterns:[{begin:"(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:jar\\x2dmanifest|kaitai\\x2dstruct|oasv2\\x2dyaml|oasv3\\x2dyaml|unity3d\\x2dasset|yaml|yml|(?:.*\\.)?(?:anim|asset|ksy|lkml|lookml|mat|meta|mir|prefab|raml|reek|rviz|sublime\\x2dsyntax|syntax|unity|yaml\\x2dtmlanguage|yaml\\.sed|yml\\.mysql)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.yaml",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.yaml.mdx",patterns:[{include:"source.yaml"}]},{begin:"(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:jar\\x2dmanifest|kaitai\\x2dstruct|oasv2\\x2dyaml|oasv3\\x2dyaml|unity3d\\x2dasset|yaml|yml|(?:.*\\.)?(?:anim|asset|ksy|lkml|lookml|mat|meta|mir|prefab|raml|reek|rviz|sublime\\x2dsyntax|syntax|unity|yaml\\x2dtmlanguage|yaml\\.sed|yml\\.mysql)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)",beginCaptures:{"1":{name:"string.other.begin.code.fenced.mdx"},"2":{name:"entity.name.function.mdx",patterns:[{include:"#markdown-string"}]},"3":{patterns:[{include:"#markdown-string"}]}},contentName:"meta.embedded.yaml",end:"(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)",endCaptures:{"1":{name:"string.other.end.code.fenced.mdx"}},name:"markup.code.yaml.mdx",patterns:[{include:"source.yaml"}]}]}},scopeName:"source.mdx"}; + +export { mdx_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/mermaid.tmLanguage-5db1f6a2.mjs b/docs/shiki/dist/languages/mermaid.tmLanguage-5db1f6a2.mjs new file mode 100644 index 00000000..f5ff39d5 --- /dev/null +++ b/docs/shiki/dist/languages/mermaid.tmLanguage-5db1f6a2.mjs @@ -0,0 +1,3 @@ +var mermaid_tmLanguage = {fileTypes:["mermaid"],patterns:[{include:"#mermaid"}],repository:{mermaid:{patterns:[{comment:"Class Diagram",begin:"^\\s*(classDiagram)",beginCaptures:{"1":{name:"keyword.control.mermaid"}},patterns:[{match:"\\%%.*",name:"comment"},{comment:"(class name) (\"multiplicity relationship\")? (relationship) (\"multiplicity relationship\")? (class name) :? (labelText)?",match:"([\\w-]+)\\s(\"(?:\\d+|\\*|0..\\d+|1..\\d+|1..\\*)\")?\\s?(--o|--\\*|\\<--|--\\>|<\\.\\.|\\.\\.\\>|\\<\\|\\.\\.|\\.\\.\\|\\>|\\<\\|--|--\\|>|--\\*|--|\\.\\.|\\*--|o--)\\s(\"(?:\\d+|\\*|0..\\d+|1..\\d+|1..\\*)\")?\\s?([\\w-]+)\\s?(:)?\\s(.*)$",captures:{"1":{name:"entity.name.type.class.mermaid"},"2":{name:"keyword.control.mermaid"},"3":{name:"keyword.control.mermaid"},"4":{name:"keyword.control.mermaid"},"5":{name:"entity.name.type.class.mermaid"},"6":{name:"keyword.control.mermaid"},"7":{name:"string"}}},{comment:"(class name) : (visibility)?(function)( (function param/generic param)? )(classifier)? (return/generic return)?$",match:"([\\w-]+)\\s?(:)\\s([\\+~#-])?([\\w-]+)(\\()([\\w-]+)?(~)?([\\w-]+)?(~)?\\s?([\\w-]+)?(\\))([*\\$])?\\s?([\\w-]+)?(~)?([\\w-]+)?(~)?$",captures:{"1":{name:"entity.name.type.class.mermaid"},"2":{name:"keyword.control.mermaid"},"3":{name:"keyword.control.mermaid"},"4":{name:"entity.name.function.mermaid"},"5":{name:"punctuation.parenthesis.open.mermaid"},"6":{name:"storage.type.mermaid"},"7":{name:"punctuation.definition.typeparameters.begin.mermaid"},"8":{name:"storage.type.mermaid"},"9":{name:"punctuation.definition.typeparameters.end.mermaid"},"10":{name:"entity.name.variable.parameter.mermaid"},"11":{name:"punctuation.parenthesis.closed.mermaid"},"12":{name:"keyword.control.mermaid"},"13":{name:"storage.type.mermaid"},"14":{name:"punctuation.definition.typeparameters.begin.mermaid"},"15":{name:"storage.type.mermaid"},"16":{name:"punctuation.definition.typeparameters.end.mermaid"}}},{comment:"(class name) : (visibility)?(datatype/generic data type) (attribute name)$",match:"([\\w-]+)\\s?(:)\\s([\\+~#-])?([\\w-]+)(~)?([\\w-]+)?(~)?\\s([\\w-]+)?$",captures:{"1":{name:"entity.name.type.class.mermaid"},"2":{name:"keyword.control.mermaid"},"3":{name:"keyword.control.mermaid"},"4":{name:"storage.type.mermaid"},"5":{name:"punctuation.definition.typeparameters.begin.mermaid"},"6":{name:"storage.type.mermaid"},"7":{name:"punctuation.definition.typeparameters.end.mermaid"},"8":{name:"entity.name.variable.field.mermaid"}}},{comment:"<<(Annotation)>> (class name)",match:"(<<)([\\w-]+)(>>)\\s?([\\w-]+)?",captures:{"1":{name:"punctuation.definition.typeparameters.begin.mermaid"},"2":{name:"storage.type.mermaid"},"3":{name:"punctuation.definition.typeparameters.end.mermaid"},"4":{name:"entity.name.type.class.mermaid"}}},{comment:"class (class name) ~?(generic type)?~? ({)",begin:"(class)\\s+([\\w-]+)(~)?([\\w-]+)?(~)?\\s?({)",beginCaptures:{"1":{name:"keyword.control.mermaid"},"2":{name:"entity.name.type.class.mermaid"},"3":{name:"punctuation.definition.typeparameters.begin.mermaid"},"4":{name:"storage.type.mermaid"},"5":{name:"punctuation.definition.typeparameters.end.mermaid"},"6":{name:"keyword.control.mermaid"}},patterns:[{match:"\\%%.*",name:"comment"},{comment:"(visibility)?(function)( (function param/generic param)? )(classifier)? (return/generic return)?$",begin:"\\s([\\+~#-])?([\\w-]+)(\\()",beginCaptures:{"1":{name:"keyword.control.mermaid"},"2":{name:"entity.name.function.mermaid"},"3":{name:"punctuation.parenthesis.open.mermaid"}},patterns:[{comment:"(TBD)",match:"\\s*,?\\s*([\\w-]+)?(~)?([\\w-]+)?(~)?\\s?([\\w-]+)?",captures:{"1":{name:"storage.type.mermaid"},"2":{name:"punctuation.definition.typeparameters.begin.mermaid"},"3":{name:"storage.type.mermaid"},"4":{name:"punctuation.definition.typeparameters.end.mermaid"},"5":{name:"entity.name.variable.parameter.mermaid"}}}],end:"(\\))([*\\$])?\\s?([\\w-]+)?(~)?([\\w-]+)?(~)?$",endCaptures:{"1":{name:"punctuation.parenthesis.closed.mermaid"},"2":{name:"keyword.control.mermaid"},"3":{name:"storage.type.mermaid"},"4":{name:"punctuation.definition.typeparameters.begin.mermaid"},"5":{name:"storage.type.mermaid"},"6":{name:"punctuation.definition.typeparameters.end.mermaid"}}},{comment:"(visibility)?(datatype/generic data type) (attribute name)$",match:"\\s([\\+~#-])?([\\w-]+)(~)?([\\w-]+)?(~)?\\s([\\w-]+)?$",captures:{"1":{name:"keyword.control.mermaid"},"2":{name:"storage.type.mermaid"},"3":{name:"punctuation.definition.typeparameters.begin.mermaid"},"4":{name:"storage.type.mermaid"},"5":{name:"punctuation.definition.typeparameters.end.mermaid"},"6":{name:"entity.name.variable.field.mermaid"}}},{comment:"<<(Annotation)>> (class name)",match:"(<<)([\\w-]+)(>>)\\s?([\\w-]+)?",captures:{"1":{name:"punctuation.definition.typeparameters.begin.mermaid"},"2":{name:"storage.type.mermaid"},"3":{name:"punctuation.definition.typeparameters.end.mermaid"},"4":{name:"entity.name.type.class.mermaid"}}}],end:"(})",endCaptures:{"1":{name:"keyword.control.mermaid"}}},{comment:"class (class name) ~?(generic type)?~?",match:"(class)\\s+([\\w-]+)(~)?([\\w-]+)?(~)?",captures:{"1":{name:"keyword.control.mermaid"},"2":{name:"entity.name.type.class.mermaid"},"3":{name:"punctuation.definition.typeparameters.begin.mermaid"},"4":{name:"storage.type.mermaid"},"5":{name:"punctuation.definition.typeparameters.end.mermaid"}}}],end:"(^|\\G)(?=\\s*[`:~]{3,}\\s*$)"},{comment:"Entity Relationship Diagram",begin:"^\\s*(erDiagram)",beginCaptures:{"1":{name:"keyword.control.mermaid"}},patterns:[{match:"\\%%.*",name:"comment"},{comment:"(entity)",match:"^\\s*([\\w-]+)$",name:"variable"},{comment:"(entity) {",begin:"\\s+([\\w-]+)\\s+({)",beginCaptures:{"1":{name:"variable"},"2":{name:"keyword.control.mermaid"}},patterns:[{comment:"(type) (name) (PK|FK)? (\"comment\")?",match:"\\s*([\\w-]+)\\s+([\\w-]+)\\s+(PK|FK)?\\s*(\"[\"\\($&%\\^/#.,?!;:*+=<>\\'\\\\\\-\\w\\s]*\")?\\s*",captures:{"1":{name:"storage.type.mermaid"},"2":{name:"variable"},"3":{name:"keyword.control.mermaid"},"4":{name:"string"}}}],end:"(})",endCaptures:{"1":{name:"keyword.control.mermaid"}}},{comment:"(entity) (relationship) (entity) : (label)",match:"\\s*([\\w-]+)\\s+((?:\\|o|\\|\\||}o|}\\|)(?:..|--)(?:o\\||\\|\\||o{|\\|{))\\s+([\\w-]+)\\s+(:)\\s+((?:\"[\\w\\s]*\")|(?:[\\w-]+))",captures:{"1":{name:"variable"},"2":{name:"keyword.control.mermaid"},"3":{name:"variable"},"4":{name:"keyword.control.mermaid"},"5":{name:"string"}}}],end:"(^|\\G)(?=\\s*[`:~]{3,}\\s*$)"},{comment:"Gantt Diagram",begin:"^\\s*(gantt)",beginCaptures:{"1":{name:"keyword.control.mermaid"}},patterns:[{match:"\\%%.*",name:"comment"},{match:"(dateFormat)\\s+([\\w\\-\\.]+)",captures:{"1":{name:"keyword.control.mermaid"},"2":{name:"entity.name.function.mermaid"}}},{match:"(axisFormat)\\s+([\\w\\%\\/\\\\\\-\\.]+)",captures:{"1":{name:"keyword.control.mermaid"},"2":{name:"entity.name.function.mermaid"}}},{match:"(title)\\s+(\\s*[\"\\(\\)$&%\\^/#.,?!;:*+=<>\\'\\\\\\-\\w\\s]*)",captures:{"1":{name:"keyword.control.mermaid"},"2":{name:"string"}}},{match:"(excludes)\\s+((?:[\\d\\-,\\s]+|monday|tuesday|wednesday|thursday|friday|saturday|sunday|weekends)+)",captures:{"1":{name:"keyword.control.mermaid"},"2":{name:"string"}}},{match:"^\\s+(todayMarker)\\s+(.*)$",captures:{"1":{name:"keyword.control.mermaid"},"2":{name:"string"}}},{match:"(section)\\s+(\\s*[\"\\(\\)$&%\\^/#.,?!;:*+=<>\\'\\\\\\-\\w\\s]*)",captures:{"1":{name:"keyword.control.mermaid"},"2":{name:"string"}}},{begin:"^\\s(.*)(:)",beginCaptures:{"1":{name:"string"},"2":{name:"keyword.control.mermaid"}},patterns:[{match:"(crit|done|active|after)",name:"entity.name.function.mermaid"},{match:"\\%%.*",name:"comment"}],end:"$"}],end:"(^|\\G)(?=\\s*[`:~]{3,}\\s*$)"},{comment:"Git Graph",begin:"^\\s*(gitGraph)",beginCaptures:{"1":{name:"keyword.control.mermaid"}},patterns:[{match:"\\%%.*",name:"comment"},{comment:"commit",begin:"\\s*(commit)",beginCaptures:{"1":{name:"keyword.control.mermaid"}},patterns:[{comment:"(id)(:) (\"id\")",match:"\\s*(id)(:)\\s?(\"[^\"\\n]*\")",captures:{"1":{name:"keyword.control.mermaid"},"2":{name:"keyword.control.mermaid"},"3":{name:"string"}}},{comment:"(type)(:) (COMMIT_TYPE)",match:"\\s*(type)(:)\\s?(NORMAL|REVERSE|HIGHLIGHT)",captures:{"1":{name:"keyword.control.mermaid"},"2":{name:"keyword.control.mermaid"},"3":{name:"entity.name.function.mermaid"}}},{comment:"(tag)(:) (\"tag\")",match:"\\s*(tag)(:)\\s?(\"[\\($&%\\^/#.,?!;:*+=<>\\'\\\\\\-\\w\\s]*\")",captures:{"1":{name:"keyword.control.mermaid"},"2":{name:"keyword.control.mermaid"},"3":{name:"string"}}}],end:"$"},{comment:"(checkout) (branch-name)",match:"\\s*(checkout)\\s*([^\\s\"]*)",captures:{"1":{name:"keyword.control.mermaid"},"2":{name:"variable"}}},{comment:"(branch) (branch-name) (order)?(:) (number)",match:"\\s*(branch)\\s*([^\\s\"]*)\\s*(?:(order)(:)\\s?(\\d+))?",captures:{"1":{name:"keyword.control.mermaid"},"2":{name:"variable"},"3":{name:"keyword.control.mermaid"},"4":{name:"keyword.control.mermaid"},"5":{name:"constant.numeric.decimal.mermaid"}}},{comment:"(merge) (branch-name) (tag: \"tag-name\")?",match:"\\s*(merge)\\s*([^\\s\"]*)\\s*(?:(tag)(:)\\s?(\"[^\"\\n]*\"))?",captures:{"1":{name:"keyword.control.mermaid"},"2":{name:"variable"},"3":{name:"keyword.control.mermaid"},"4":{name:"keyword.control.mermaid"},"5":{name:"string"}}},{comment:"(cherry-pick) (id)(:)(\"commit-id\")",match:"\\s*(cherry-pick)\\s+(id)(:)\\s*(\"[^\"\\n]*\")",captures:{"1":{name:"keyword.control.mermaid"},"2":{name:"keyword.control.mermaid"},"3":{name:"keyword.control.mermaid"},"4":{name:"string"}}}],end:"(^|\\G)(?=\\s*[`:~]{3,}\\s*$)"},{comment:"Graph",begin:"^\\s*(graph|flowchart)\\s+([\\p{Letter}\\ 0-9]+)",beginCaptures:{"1":{name:"keyword.control.mermaid"},"2":{name:"entity.name.function.mermaid"}},patterns:[{match:"\\%%.*",name:"comment"},{match:"\\b(subgraph)\\s+([\\p{Letter}\\ 0-9]+)",captures:{"1":{name:"keyword.control.mermaid"},"2":{name:"entity.name.function.mermaid"}},name:"meta.function.mermaid"},{match:"\\b(end|RB|BT|RL|TD|LR)\\b",name:"keyword.control.mermaid"},{comment:"(Entity)(Edge/Shape)(Text)(Edge/Shape)",begin:"(\\b(?:(?!--|==)[-\\w])+\\b\\s*)(\\(\\[|\\[\\[|\\[\\(|\\[|\\(+|\\>|\\{|\\(\\()",beginCaptures:{"1":{name:"variable"},"2":{name:"keyword.control.mermaid"},"3":{name:"string"}},patterns:[{comment:"(\"multi-line text\")",begin:"\\s*(\")",beginCaptures:{"1":{name:"string"}},patterns:[{comment:"capture inner text between quotes",begin:"([^\"]*)",beginCaptures:{"1":{name:"string"}},patterns:[{match:"([^\"]*)",captures:{"1":{name:"comment"}}}],end:"(?=\")"}],end:"(\")",endCaptures:{"1":{name:"string"}}},{comment:"(single line text)",match:"\\s*([$&%\\^/#.,?!;:*+<>_\\'\\\\\\w\\s]+)",captures:{"1":{name:"string"}}}],end:"(\\]\\)|\\]\\]|\\)\\]|\\]|\\)+|\\}|\\)\\))",endCaptures:{"1":{name:"keyword.control.mermaid"}}},{comment:"(Graph Link)(\"Multiline text\")(Graph Link)",begin:"\\s*((?:-{2,5}|={2,5})[xo>]?\\|)",beginCaptures:{"1":{name:"keyword.control.mermaid"}},patterns:[{comment:"(\"multi-line text\")",begin:"\\s*(\")",beginCaptures:{"1":{name:"string"}},patterns:[{comment:"capture inner text between quotes",begin:"([^\"]*)",beginCaptures:{"1":{name:"string"}},patterns:[{match:"([^\"]*)",captures:{"1":{name:"comment"}}}],end:"(?=\")"}],end:"(\")",endCaptures:{"1":{name:"string"}}},{comment:"(single line text)",match:"\\s*([$&%\\^/#.,?!;:*+<>_\\'\\\\\\w\\s]+)",captures:{"1":{name:"string"}}}],end:"(\\|)",endCaptures:{"1":{name:"keyword.control.mermaid"}}},{comment:"(Graph Link Start Arrow)(Text)(Graph Link End Arrow)",match:"\\s*([xo<]?(?:-{2,5}|={2,5}|-\\.{1,3}|-\\.))((?:(?!--|==)[\\w\\s*+%=\\\\/:\\.\\-'`,\"&^#$!?])*)((?:-{2,5}|={2,5}|\\.{1,3}-|\\.-)[xo>]?)",captures:{"1":{name:"keyword.control.mermaid"},"2":{name:"string"},"3":{name:"keyword.control.mermaid"}}},{comment:"(Graph Link)",match:"\\s*([ox<]?(?:-.{1,3}-|-{1,3}|={1,3})[ox>]?)",captures:{"1":{name:"keyword.control.mermaid"}}},{comment:"Entity",match:"(\\b(?:(?!--|==)[-\\w])+\\b\\s*)",name:"variable"},{comment:"(Class)(Node(s))(ClassName)",match:"\\s*(class)\\s+(\\b[-,\\w]+)\\s+(\\b\\w+\\b)",captures:{"1":{name:"keyword.control.mermaid"},"2":{name:"variable"},"3":{name:"string"}}},{comment:"(ClassDef)(ClassName)(Styles)",match:"\\s*(classDef)\\s+(\\b\\w+\\b)\\s+(\\b[-,:;#\\w]+)",captures:{"1":{name:"keyword.control.mermaid"},"2":{name:"variable"},"3":{name:"string"}}},{comment:"(Click)(Entity)(Link)?(Tooltip)",match:"\\s*(click)\\s+(\\b[-\\w]+\\b\\s*)(\\b\\w+\\b)?\\s(\"*.*\")",captures:{"1":{name:"keyword.control.mermaid"},"2":{name:"variable"},"3":{name:"variable"},"4":{name:"string"}}}],end:"(^|\\G)(?=\\s*[`:~]{3,}\\s*$)"},{comment:"Pie Chart",begin:"^\\s*(pie)",beginCaptures:{"1":{name:"keyword.control.mermaid"}},patterns:[{match:"\\%%.*",name:"comment"},{match:"(title)\\s+(\\s*[\"\\(\\)$&%\\^/#.,?!;:*+=<>\\'\\\\\\-\\w\\s]*)",captures:{"1":{name:"keyword.control.mermaid"},"2":{name:"string"}}},{begin:"\\s(.*)(:)",beginCaptures:{"1":{name:"string"},"2":{name:"keyword.control.mermaid"}},patterns:[{match:"\\%%.*",name:"comment"}],end:"$"}],end:"(^|\\G)(?=\\s*[`:~]{3,}\\s*$)"},{comment:"Sequence Diagram",begin:"^\\s*(sequenceDiagram)",beginCaptures:{"1":{name:"keyword.control.mermaid"}},patterns:[{match:"(\\%%|#).*",name:"comment"},{comment:"(title)(title text)",match:"(title)\\s*(:)?\\s+(\\s*[\"\\(\\)$&%\\^/#.,?!:*+=<>\\'\\\\\\-\\w\\s]*)",captures:{"1":{name:"keyword.control.mermaid"},"2":{name:"keyword.control.mermaid"},"3":{name:"string"}}},{comment:"(participant)(Actor)(as)?(Label)?",match:"\\s*(participant|actor)\\s+((?:(?! as )[\"\\(\\)$&%\\^/#.?!*=<>\\'\\\\\\w\\s])+)\\s*(as)?\\s([\"\\(\\)$&%\\^/#.,?!*=<>\\'\\\\\\w\\s]+)?",captures:{"1":{name:"keyword.control.mermaid"},"2":{name:"variable"},"3":{name:"keyword.control.mermaid"},"4":{name:"string"}}},{comment:"(activate/deactivate)(Actor)",match:"\\s*((?:de)?activate)\\s+(\\b[\"\\(\\)$&%\\^/#.?!*=<>\\'\\\\\\w\\s]+\\b\\s*)",captures:{"1":{name:"keyword.control.mermaid"},"2":{name:"variable"}}},{comment:"(Note)(direction)(Actor)(,)?(Actor)?(:)(Message)",match:"\\s*(Note)\\s+((?:left|right)\\sof|over)\\s+(\\b[\"\\(\\)$&%\\^/#.?!*=<>\\'\\\\\\w\\s]+\\b\\s*)(,)?(\\b[\"\\(\\)$&%\\^/#.?!*=<>\\'\\\\\\w\\s]+\\b\\s*)?(:)(?:\\s+([^;#]*))?",captures:{"1":{name:"keyword.control.mermaid"},"2":{name:"entity.name.function.mermaid"},"3":{name:"variable"},"4":{name:"keyword.control.mermaid"},"5":{name:"variable"},"6":{name:"keyword.control.mermaid"},"7":{name:"string"}}},{comment:"(loop)(loop text)",match:"\\s*(loop)(?:\\s+([^;#]*))?",captures:{"1":{name:"keyword.control.mermaid"},"2":{name:"string"}}},{comment:"(end)",match:"\\s*(end)",captures:{"1":{name:"keyword.control.mermaid"}}},{comment:"(alt/else/opt/par/and/autonumber)(text)",match:"\\s*(alt|else|opt|par|and|rect|autonumber)(?:\\s+([^#;]*))?",captures:{"1":{name:"keyword.control.mermaid"},"2":{name:"string"}}},{comment:"(Actor)(Arrow)(Actor)(:)(Message)",match:"\\s*(\\b[\"\\(\\)$&%\\^/#.?!*=<>\\'\\\\\\w\\s]+\\b)\\s*(-?-(?:\\>|x|\\))\\>?[+-]?)\\s*([\"\\(\\)$&%\\^/#.?!*=<>\\'\\\\\\w\\s]+\\b)\\s*(:)\\s*([^;#]*)",captures:{"1":{name:"variable"},"2":{name:"keyword.control.mermaid"},"3":{name:"variable"},"4":{name:"keyword.control.mermaid"},"5":{name:"string"}}}],end:"(^|\\G)(?=\\s*[`:~]{3,}\\s*$)"},{comment:"State Diagram",begin:"^\\s*(stateDiagram(?:-v2)?)",beginCaptures:{"1":{name:"keyword.control.mermaid"}},patterns:[{match:"\\%%.*",name:"comment"},{comment:"}",match:"\\s+(})\\s+",captures:{"1":{name:"keyword.control.mermaid"}}},{comment:"--",match:"\\s+(--)\\s+",captures:{"1":{name:"keyword.control.mermaid"}}},{comment:"(state)",match:"^\\s*([\\w-]+)$",name:"variable"},{comment:"(state) : (description)",match:"([\\w-]+)\\s+(:)\\s+(\\s*[-\\w\\s]+\\b)",captures:{"1":{name:"variable"},"2":{name:"keyword.control.mermaid"},"3":{name:"string"}}},{comment:"state",begin:"(state)",beginCaptures:{"1":{name:"keyword.control.mermaid"}},patterns:[{comment:"\"(description)\" as (state)",match:"\\s+(\"[-\\w\\s]+\\b\")\\s+(as)\\s+([\\w-]+)",captures:{"1":{name:"string"},"2":{name:"keyword.control.mermaid"},"3":{name:"variable"}}},{comment:"(state name) {",match:"\\s+([\\w-]+)\\s+({)",captures:{"1":{name:"variable"},"2":{name:"keyword.control.mermaid"}}},{comment:"(state name) <<fork|join>>",match:"\\s+([\\w-]+)\\s+(<<(?:fork|join)>>)",captures:{"1":{name:"variable"},"2":{name:"keyword.control.mermaid"}}}],end:"$"},{comment:"(state) -->",begin:"([\\w-]+)\\s+(-->)",beginCaptures:{"1":{name:"variable"},"2":{name:"keyword.control.mermaid"}},patterns:[{comment:"(state) (:)? (transition text)?",match:"\\s+([\\w-]+)\\s*(:)?\\s*([^\\n:]+)?",captures:{"1":{name:"variable"},"2":{name:"keyword.control.mermaid"},"3":{name:"string"}}},{comment:"[*] (:)? (transition text)?",match:"(\\[\\*\\])\\s*(:)?\\s*([^\\n:]+)?",captures:{"1":{name:"keyword.control.mermaid"},"2":{name:"keyword.control.mermaid"},"3":{name:"string"}}}],end:"$"},{comment:"[*] --> (state) (:)? (transition text)?",match:"(\\[\\*\\])\\s+(-->)\\s+([\\w-]+)\\s*(:)?\\s*([^\\n:]+)?",captures:{"1":{name:"keyword.control.mermaid"},"2":{name:"keyword.control.mermaid"},"3":{name:"variable"},"4":{name:"keyword.control.mermaid"},"5":{name:"string"}}},{comment:"note left|right of (state name)",match:"(note (?:left|right) of)\\s+([\\w-]+)\\s+(:)\\s*([^\\n:]+)",captures:{"1":{name:"keyword.control.mermaid"},"2":{name:"variable"},"3":{name:"keyword.control.mermaid"},"4":{name:"string"}}},{comment:"note left|right of (state name) (note text) end note",begin:"(note (?:left|right) of)\\s+([\\w-]+)(.|\\n)",beginCaptures:{"1":{name:"keyword.control.mermaid"},"2":{name:"variable"}},contentName:"string",end:"(end note)",endCaptures:{"1":{name:"keyword.control.mermaid"}}}],end:"(^|\\G)(?=\\s*[`:~]{3,}\\s*$)"},{comment:"User Journey",begin:"^\\s*(journey)",beginCaptures:{"1":{name:"keyword.control.mermaid"}},patterns:[{match:"\\%%.*",name:"comment"},{match:"(title|section)\\s+(\\s*[\"\\(\\)$&%\\^/#.,?!;:*+=<>\\'\\\\\\-\\w\\s]*)",captures:{"1":{name:"keyword.control.mermaid"},"2":{name:"string"}}},{begin:"\\s*([\"\\(\\)$&%\\^/.,?!*+=<>\\'\\\\\\-\\w\\s]*)\\s*(:)\\s*(\\d+)\\s*(:)",beginCaptures:{"1":{name:"string"},"2":{name:"keyword.control.mermaid"},"3":{name:"constant.numeric.decimal.mermaid"},"4":{name:"keyword.control.mermaid"}},patterns:[{comment:"(taskName)",match:"\\s*,?\\s*([^,#\\n]+)",captures:{"1":{name:"variable"}}}],end:"$"}],end:"(^|\\G)(?=\\s*[`:~]{3,}\\s*$)"}]}},scopeName:"source.mermaid",name:"mermaid"}; + +export { mermaid_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/mojo.tmLanguage-ce449c28.mjs b/docs/shiki/dist/languages/mojo.tmLanguage-ce449c28.mjs new file mode 100644 index 00000000..ccc3ba61 --- /dev/null +++ b/docs/shiki/dist/languages/mojo.tmLanguage-ce449c28.mjs @@ -0,0 +1,3 @@ +var mojo_tmLanguage = {information_for_contributors:["This file has been converted from https://github.com/MagicStack/MagicPython/blob/master/grammars/MagicPython.tmLanguage","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."],version:"https://github.com/MagicStack/MagicPython/commit/7d0f2b22a5ad8fccbd7341bc7b7a715169283044",name:"mojo",scopeName:"source.mojo",patterns:[{include:"#statement"},{include:"#expression"}],repository:{impossible:{comment:"This is a special rule that should be used where no match is desired. It is not a good idea to match something like '1{0}' because in some cases that can result in infinite loops in token generation. So the rule instead matches and impossible expression to allow a match to fail and move to the next token.",match:"$.^"},statement:{patterns:[{include:"#import"},{include:"#class-declaration"},{include:"#function-declaration"},{include:"#generator"},{include:"#statement-keyword"},{include:"#assignment-operator"},{include:"#decorator"},{include:"#docstring-statement"},{include:"#semicolon"}]},semicolon:{patterns:[{name:"invalid.deprecated.semicolon.python",match:"\\;$"}]},comments:{patterns:[{name:"comment.line.number-sign.python",contentName:"meta.typehint.comment.python",begin:"(?x)\n (?:\n \\# \\s* (type:)\n \\s*+ (?# we want `\\s*+` which is possessive quantifier since\n we do not actually want to backtrack when matching\n whitespace here)\n (?! $ | \\#)\n )\n",end:"(?:$|(?=\\#))",beginCaptures:{"0":{name:"meta.typehint.comment.python"},"1":{name:"comment.typehint.directive.notation.python"}},patterns:[{name:"comment.typehint.ignore.notation.python",match:"(?x)\n \\G ignore\n (?= \\s* (?: $ | \\#))\n"},{name:"comment.typehint.type.notation.python",match:"(?x)\n (?<!\\.)\\b(\n bool | bytes | float | int | object | str\n | List | Dict | Iterable | Sequence | Set\n | FrozenSet | Callable | Union | Tuple\n | Any | None\n )\\b\n"},{name:"comment.typehint.punctuation.notation.python",match:"([\\[\\]\\(\\),\\.\\=\\*]|(->))"},{name:"comment.typehint.variable.notation.python",match:"([[:alpha:]_]\\w*)"}]},{include:"#comments-base"}]},"docstring-statement":{begin:"^(?=\\s*[rR]?(\\'\\'\\'|\\\"\\\"\\\"|\\'|\\\"))",comment:"the string either terminates correctly or by the beginning of a new line (this is for single line docstrings that aren't terminated) AND it's not followed by another docstring",end:"((?<=\\1)|^)(?!\\s*[rR]?(\\'\\'\\'|\\\"\\\"\\\"|\\'|\\\"))",patterns:[{include:"#docstring"}]},docstring:{patterns:[{name:"string.quoted.docstring.multi.python",begin:"(\\'\\'\\'|\\\"\\\"\\\")",end:"(\\1)",beginCaptures:{"1":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"}},patterns:[{include:"#docstring-prompt"},{include:"#codetags"},{include:"#docstring-guts-unicode"}]},{name:"string.quoted.docstring.raw.multi.python",begin:"([rR])(\\'\\'\\'|\\\"\\\"\\\")",end:"(\\2)",beginCaptures:{"1":{name:"storage.type.string.python"},"2":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"}},patterns:[{include:"#string-consume-escape"},{include:"#docstring-prompt"},{include:"#codetags"}]},{name:"string.quoted.docstring.single.python",begin:"(\\'|\\\")",end:"(\\1)|(\\n)",beginCaptures:{"1":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#codetags"},{include:"#docstring-guts-unicode"}]},{name:"string.quoted.docstring.raw.single.python",begin:"([rR])(\\'|\\\")",end:"(\\2)|(\\n)",beginCaptures:{"1":{name:"storage.type.string.python"},"2":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#string-consume-escape"},{include:"#codetags"}]}]},"docstring-guts-unicode":{patterns:[{include:"#escape-sequence-unicode"},{include:"#escape-sequence"},{include:"#string-line-continuation"}]},"docstring-prompt":{match:"(?x)\n (?:\n (?:^|\\G) \\s* (?# '\\G' is necessary for ST)\n ((?:>>>|\\.\\.\\.) \\s) (?=\\s*\\S)\n )\n",captures:{"1":{name:"keyword.control.flow.python"}}},"statement-keyword":{patterns:[{name:"storage.type.function.python",match:"\\b((async\\s+)?\\s*def)\\b"},{name:"keyword.control.flow.python",comment:"if `as` is eventually followed by `:` or line continuation\nit's probably control flow like:\n with foo as bar, \\\n Foo as Bar:\n try:\n do_stuff()\n except Exception as e:\n pass\n",match:"\\b(?<!\\.)as\\b(?=.*[:\\\\])"},{name:"keyword.control.import.python",comment:"other legal use of `as` is in an import",match:"\\b(?<!\\.)as\\b"},{name:"keyword.control.flow.python",match:"(?x)\n \\b(?<!\\.)(\n async | continue | del | assert | break | finally | for\n | from | elif | else | if | except | pass | raise\n | return | try | while | with\n )\\b\n"},{name:"storage.modifier.declaration.python",match:"(?x)\n \\b(?<!\\.)(\n global | nonlocal\n )\\b\n"},{name:"storage.type.class.python",match:"\\b(?<!\\.)(class|struct)\\b"},{match:"(?x)\n ^\\s*(\n case | match\n )(?=\\s*([-+\\w\\d(\\[{'\":#]|$))\\b\n",captures:{"1":{name:"keyword.control.flow.python"}}},{match:"\\b(var|let|alias|owned|borrowed|inout) \\s*([[:alpha:]_]\\w*)\\b",captures:{"1":{name:"storage.modifier.declaration.python"},"2":{name:"variable.other.python"}}}]},"expression-bare":{comment:"valid Python expressions w/o comments and line continuation",patterns:[{include:"#backticks"},{include:"#illegal-anno"},{include:"#literal"},{include:"#regexp"},{include:"#string"},{include:"#lambda"},{include:"#generator"},{include:"#illegal-operator"},{include:"#operator"},{include:"#curly-braces"},{include:"#item-access"},{include:"#list"},{include:"#odd-function-call"},{include:"#round-braces"},{include:"#function-call"},{include:"#builtin-functions"},{include:"#builtin-types"},{include:"#builtin-exceptions"},{include:"#magic-names"},{include:"#special-names"},{include:"#illegal-names"},{include:"#special-variables"},{include:"#ellipsis"},{include:"#punctuation"},{include:"#line-continuation"}]},"expression-base":{comment:"valid Python expressions with comments and line continuation",patterns:[{include:"#comments"},{include:"#expression-bare"},{include:"#line-continuation"}]},expression:{comment:"All valid Python expressions",patterns:[{include:"#expression-base"},{include:"#member-access"},{comment:"Tokenize identifiers to help linters",match:"(?x) \\b ([[:alpha:]_]\\w*) \\b"}]},"member-access":{name:"meta.member.access.python",begin:"(\\.)\\s*(?!\\.)",end:"(?x)\n # stop when you've just read non-whitespace followed by non-word\n # i.e. when finished reading an identifier or function call\n (?<=\\S)(?=\\W) |\n # stop when seeing the start of something that's not a word,\n # i.e. when seeing a non-identifier\n (^|(?<=\\s))(?=[^\\\\\\w\\s]) |\n $\n",beginCaptures:{"1":{name:"punctuation.separator.period.python"}},patterns:[{include:"#function-call"},{include:"#member-access-base"},{include:"#member-access-attribute"}]},"member-access-base":{patterns:[{include:"#magic-names"},{include:"#illegal-names"},{include:"#illegal-object-name"},{include:"#special-names"},{include:"#line-continuation"},{include:"#item-access"}]},"member-access-attribute":{comment:"Highlight attribute access in otherwise non-specialized cases.",name:"meta.attribute.python",match:"(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n"},"special-names":{name:"constant.other.caps.python",match:"(?x)\n \\b\n # we want to see \"enough\", meaning 2 or more upper-case\n # letters in the beginning of the constant\n #\n # for more details refer to:\n # https://github.com/MagicStack/MagicPython/issues/42\n (\n _* [[:upper:]] [_\\d]* [[:upper:]]\n )\n [[:upper:]\\d]* (_\\w*)?\n \\b\n"},"curly-braces":{begin:"\\{",end:"\\}",beginCaptures:{"0":{name:"punctuation.definition.dict.begin.python"}},endCaptures:{"0":{name:"punctuation.definition.dict.end.python"}},patterns:[{name:"punctuation.separator.dict.python",match:":"},{include:"#expression"}]},list:{begin:"\\[",end:"\\]",beginCaptures:{"0":{name:"punctuation.definition.list.begin.python"}},endCaptures:{"0":{name:"punctuation.definition.list.end.python"}},patterns:[{include:"#expression"}]},"odd-function-call":{comment:"A bit obscured function call where there may have been an\narbitrary number of other operations to get the function.\nE.g. \"arr[idx](args)\"\n",begin:"(?x)\n (?<= \\] | \\) ) \\s*\n (?=\\()\n",end:"(\\))",endCaptures:{"1":{name:"punctuation.definition.arguments.end.python"}},patterns:[{include:"#function-arguments"}]},"round-braces":{begin:"\\(",end:"\\)",beginCaptures:{"0":{name:"punctuation.parenthesis.begin.python"}},endCaptures:{"0":{name:"punctuation.parenthesis.end.python"}},patterns:[{include:"#expression"}]},"line-continuation":{patterns:[{match:"(\\\\)\\s*(\\S.*$\\n?)",captures:{"1":{name:"punctuation.separator.continuation.line.python"},"2":{name:"invalid.illegal.line.continuation.python"}}},{begin:"(\\\\)\\s*$\\n?",end:"(?x)\n (?=^\\s*$)\n |\n (?! (\\s* [rR]? (\\'\\'\\'|\\\"\\\"\\\"|\\'|\\\"))\n |\n (\\G $) (?# '\\G' is necessary for ST)\n )\n",beginCaptures:{"1":{name:"punctuation.separator.continuation.line.python"}},patterns:[{include:"#regexp"},{include:"#string"}]}]},"assignment-operator":{name:"keyword.operator.assignment.python",match:"(?x)\n <<= | >>= | //= | \\*\\*=\n | \\+= | -= | /= | @=\n | \\*= | %= | ~= | \\^= | &= | \\|=\n | =(?!=)\n"},operator:{match:"(?x)\n \\b(?<!\\.)\n (?:\n (and | or | not | in | is) (?# 1)\n |\n (for | if | else | await | (?:yield(?:\\s+from)?)) (?# 2)\n )\n (?!\\s*:)\\b\n\n | (<< | >> | & | \\| | \\^ | ~) (?# 3)\n\n | (\\*\\* | \\* | \\+ | - | % | // | / | @) (?# 4)\n\n | (!= | == | >= | <= | < | >) (?# 5)\n\n | (:=) (?# 6)\n",captures:{"1":{name:"keyword.operator.logical.python"},"2":{name:"keyword.control.flow.python"},"3":{name:"keyword.operator.bitwise.python"},"4":{name:"keyword.operator.arithmetic.python"},"5":{name:"keyword.operator.comparison.python"},"6":{name:"keyword.operator.assignment.python"}}},punctuation:{patterns:[{name:"punctuation.separator.colon.python",match:":"},{name:"punctuation.separator.element.python",match:","}]},literal:{patterns:[{name:"constant.language.python",match:"\\b(True|False|None|NotImplemented|Ellipsis)\\b"},{include:"#number"}]},number:{name:"constant.numeric.python",patterns:[{include:"#number-float"},{include:"#number-dec"},{include:"#number-hex"},{include:"#number-oct"},{include:"#number-bin"},{include:"#number-long"},{name:"invalid.illegal.name.python",match:"\\b[0-9]+\\w+"}]},"number-float":{name:"constant.numeric.float.python",match:"(?x)\n (?<! \\w)(?:\n (?:\n \\.[0-9](?: _?[0-9] )*\n |\n [0-9](?: _?[0-9] )* \\. [0-9](?: _?[0-9] )*\n |\n [0-9](?: _?[0-9] )* \\.\n ) (?: [eE][+-]?[0-9](?: _?[0-9] )* )?\n |\n [0-9](?: _?[0-9] )* (?: [eE][+-]?[0-9](?: _?[0-9] )* )\n )([jJ])?\\b\n",captures:{"1":{name:"storage.type.imaginary.number.python"}}},"number-dec":{name:"constant.numeric.dec.python",match:"(?x)\n (?<![\\w\\.])(?:\n [1-9](?: _?[0-9] )*\n |\n 0+\n |\n [0-9](?: _?[0-9] )* ([jJ])\n |\n 0 ([0-9]+)(?![eE\\.])\n )\\b\n",captures:{"1":{name:"storage.type.imaginary.number.python"},"2":{name:"invalid.illegal.dec.python"}}},"number-hex":{name:"constant.numeric.hex.python",match:"(?x)\n (?<![\\w\\.])\n (0[xX]) (_?[0-9a-fA-F])+\n \\b\n",captures:{"1":{name:"storage.type.number.python"}}},"number-oct":{name:"constant.numeric.oct.python",match:"(?x)\n (?<![\\w\\.])\n (0[oO]) (_?[0-7])+\n \\b\n",captures:{"1":{name:"storage.type.number.python"}}},"number-bin":{name:"constant.numeric.bin.python",match:"(?x)\n (?<![\\w\\.])\n (0[bB]) (_?[01])+\n \\b\n",captures:{"1":{name:"storage.type.number.python"}}},"number-long":{name:"constant.numeric.bin.python",comment:"this is to support python2 syntax for long ints",match:"(?x)\n (?<![\\w\\.])\n ([1-9][0-9]* | 0) ([lL])\n \\b\n",captures:{"2":{name:"storage.type.number.python"}}},regexp:{patterns:[{include:"#regexp-single-three-line"},{include:"#regexp-double-three-line"},{include:"#regexp-single-one-line"},{include:"#regexp-double-one-line"}]},string:{patterns:[{include:"#string-quoted-multi-line"},{include:"#string-quoted-single-line"},{include:"#string-bin-quoted-multi-line"},{include:"#string-bin-quoted-single-line"},{include:"#string-raw-quoted-multi-line"},{include:"#string-raw-quoted-single-line"},{include:"#string-raw-bin-quoted-multi-line"},{include:"#string-raw-bin-quoted-single-line"},{include:"#fstring-fnorm-quoted-multi-line"},{include:"#fstring-fnorm-quoted-single-line"},{include:"#fstring-normf-quoted-multi-line"},{include:"#fstring-normf-quoted-single-line"},{include:"#fstring-raw-quoted-multi-line"},{include:"#fstring-raw-quoted-single-line"}]},"string-unicode-guts":{patterns:[{include:"#escape-sequence-unicode"},{include:"#string-entity"},{include:"#string-brace-formatting"}]},"string-consume-escape":{match:"\\\\['\"\\n\\\\]"},"string-raw-guts":{patterns:[{include:"#string-consume-escape"},{include:"#string-formatting"},{include:"#string-brace-formatting"}]},"string-raw-bin-guts":{patterns:[{include:"#string-consume-escape"},{include:"#string-formatting"}]},"string-entity":{patterns:[{include:"#escape-sequence"},{include:"#string-line-continuation"},{include:"#string-formatting"}]},"fstring-guts":{patterns:[{include:"#escape-sequence-unicode"},{include:"#escape-sequence"},{include:"#string-line-continuation"},{include:"#fstring-formatting"}]},"fstring-raw-guts":{patterns:[{include:"#string-consume-escape"},{include:"#fstring-formatting"}]},"fstring-illegal-single-brace":{comment:"it is illegal to have a multiline brace inside a single-line string",begin:"(\\{)(?=[^\\n}]*$\\n?)",end:"(\\})|(?=\\n)",beginCaptures:{"1":{name:"constant.character.format.placeholder.other.python"}},endCaptures:{"1":{name:"constant.character.format.placeholder.other.python"}},patterns:[{include:"#fstring-terminator-single"},{include:"#f-expression"}]},"fstring-illegal-multi-brace":{patterns:[{include:"#impossible"}]},"f-expression":{comment:"All valid Python expressions, except comments and line continuation",patterns:[{include:"#expression-bare"},{include:"#member-access"},{comment:"Tokenize identifiers to help linters",match:"(?x) \\b ([[:alpha:]_]\\w*) \\b"}]},"escape-sequence-unicode":{patterns:[{name:"constant.character.escape.python",match:"(?x)\n \\\\ (\n u[0-9A-Fa-f]{4}\n | U[0-9A-Fa-f]{8}\n | N\\{[\\w\\s]+?\\}\n )\n"}]},"escape-sequence":{name:"constant.character.escape.python",match:"(?x)\n \\\\ (\n x[0-9A-Fa-f]{2}\n | [0-7]{1,3}\n | [\\\\\"'abfnrtv]\n )\n"},"string-line-continuation":{name:"constant.language.python",match:"\\\\$"},"string-formatting":{name:"meta.format.percent.python",match:"(?x)\n (\n % (\\([\\w\\s]*\\))?\n [-+#0 ]*\n (\\d+|\\*)? (\\.(\\d+|\\*))?\n ([hlL])?\n [diouxXeEfFgGcrsab%]\n )\n",captures:{"1":{name:"constant.character.format.placeholder.other.python"}}},"string-brace-formatting":{patterns:[{name:"meta.format.brace.python",match:"(?x)\n (\n {{ | }}\n | (?:\n {\n \\w* (\\.[[:alpha:]_]\\w* | \\[[^\\]'\"]+\\])*\n (![rsa])?\n ( : \\w? [<>=^]? [-+ ]? \\#?\n \\d* ,? (\\.\\d+)? [bcdeEfFgGnosxX%]? )?\n })\n )\n",captures:{"1":{name:"constant.character.format.placeholder.other.python"},"3":{name:"storage.type.format.python"},"4":{name:"storage.type.format.python"}}},{name:"meta.format.brace.python",match:"(?x)\n (\n {\n \\w* (\\.[[:alpha:]_]\\w* | \\[[^\\]'\"]+\\])*\n (![rsa])?\n (:)\n [^'\"{}\\n]* (?:\n \\{ [^'\"}\\n]*? \\} [^'\"{}\\n]*\n )*\n }\n )\n",captures:{"1":{name:"constant.character.format.placeholder.other.python"},"3":{name:"storage.type.format.python"},"4":{name:"storage.type.format.python"}}}]},"fstring-formatting":{patterns:[{include:"#fstring-formatting-braces"},{include:"#fstring-formatting-singe-brace"}]},"fstring-formatting-singe-brace":{name:"invalid.illegal.brace.python",match:"(}(?!}))"},"import":{comment:"Import statements used to correctly mark `from`, `import`, and `as`\n",patterns:[{begin:"\\b(?<!\\.)(from)\\b(?=.+import)",end:"$|(?=import)",beginCaptures:{"1":{name:"keyword.control.import.python"}},patterns:[{name:"punctuation.separator.period.python",match:"\\.+"},{include:"#expression"}]},{begin:"\\b(?<!\\.)(import)\\b",end:"$",beginCaptures:{"1":{name:"keyword.control.import.python"}},patterns:[{name:"keyword.control.import.python",match:"\\b(?<!\\.)as\\b"},{include:"#expression"}]}]},"class-declaration":{patterns:[{name:"meta.class.python",begin:"(?x)\n \\s*(class|struct)\\s+\n (?=\n [[:alpha:]_]\\w* \\s* (:|\\()\n )\n",end:"(:)",beginCaptures:{"1":{name:"storage.type.class.python"}},endCaptures:{"1":{name:"punctuation.section.class.begin.python"}},patterns:[{include:"#class-name"},{include:"#class-inheritance"}]}]},"class-name":{patterns:[{include:"#illegal-object-name"},{include:"#builtin-possible-callables"},{name:"entity.name.type.class.python",match:"(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n"}]},"class-inheritance":{name:"meta.class.inheritance.python",begin:"(\\()",end:"(\\))",beginCaptures:{"1":{name:"punctuation.definition.inheritance.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.inheritance.end.python"}},patterns:[{name:"keyword.operator.unpacking.arguments.python",match:"(\\*\\*|\\*)"},{name:"punctuation.separator.inheritance.python",match:","},{name:"keyword.operator.assignment.python",match:"=(?!=)"},{name:"support.type.metaclass.python",match:"\\bmetaclass\\b"},{include:"#illegal-names"},{include:"#class-kwarg"},{include:"#call-wrapper-inheritance"},{include:"#expression-base"},{include:"#member-access-class"},{include:"#inheritance-identifier"}]},"class-kwarg":{match:"(?x)\n \\b ([[:alpha:]_]\\w*) \\s*(=)(?!=)\n",captures:{"1":{name:"entity.other.inherited-class.python variable.parameter.class.python"},"2":{name:"keyword.operator.assignment.python"}}},"inheritance-identifier":{match:"(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n",captures:{"1":{name:"entity.other.inherited-class.python"}}},"member-access-class":{name:"meta.member.access.python",begin:"(\\.)\\s*(?!\\.)",end:"(?<=\\S)(?=\\W)|$",beginCaptures:{"1":{name:"punctuation.separator.period.python"}},patterns:[{include:"#call-wrapper-inheritance"},{include:"#member-access-base"},{include:"#inheritance-identifier"}]},lambda:{patterns:[{match:"((?<=\\.)lambda|lambda(?=\\s*[\\.=]))",captures:{"1":{name:"keyword.control.flow.python"}}},{match:"\\b(lambda)\\s*?(?=[,\\n]|$)",captures:{"1":{name:"storage.type.function.lambda.python"}}},{name:"meta.lambda-function.python",begin:"(?x)\n \\b (lambda) \\b\n",end:"(:)|(\\n)",beginCaptures:{"1":{name:"storage.type.function.lambda.python"}},endCaptures:{"1":{name:"punctuation.section.function.lambda.begin.python"}},contentName:"meta.function.lambda.parameters.python",patterns:[{name:"keyword.operator.positional.parameter.python",match:"/"},{name:"keyword.operator.unpacking.parameter.python",match:"(\\*\\*|\\*)"},{include:"#lambda-nested-incomplete"},{include:"#illegal-names"},{match:"([[:alpha:]_]\\w*)\\s*(?:(,)|(?=:|$))",captures:{"1":{name:"variable.parameter.function.language.python"},"2":{name:"punctuation.separator.parameters.python"}}},{include:"#comments"},{include:"#backticks"},{include:"#illegal-anno"},{include:"#lambda-parameter-with-default"},{include:"#line-continuation"},{include:"#illegal-operator"}]}]},"lambda-incomplete":{name:"storage.type.function.lambda.python",match:"\\blambda(?=\\s*[,)])"},"lambda-nested-incomplete":{name:"storage.type.function.lambda.python",match:"\\blambda(?=\\s*[:,)])"},"lambda-parameter-with-default":{begin:"(?x)\n \\b\n ([[:alpha:]_]\\w*) \\s* (=)\n",end:"(,)|(?=:|$)",beginCaptures:{"1":{name:"variable.parameter.function.language.python"},"2":{name:"keyword.operator.python"}},endCaptures:{"1":{name:"punctuation.separator.parameters.python"}},patterns:[{include:"#expression"}]},generator:{comment:"Match \"for ... in\" construct used in generators and for loops to\ncorrectly identify the \"in\" as a control flow keyword.\n",begin:"\\bfor\\b",beginCaptures:{"0":{name:"keyword.control.flow.python"}},end:"\\bin\\b",endCaptures:{"0":{name:"keyword.control.flow.python"}},patterns:[{include:"#expression"}]},"function-declaration":{name:"meta.function.python",begin:"(?x)\n \\s*\n (?:\\b(async) \\s+)? \\b(def|fn)\\s+\n (?=\n [[:alpha:]_][[:word:]]* \\s* [\\(\\[]\n )\n",end:"(:|(?=[#'\"\\n]))",beginCaptures:{"1":{name:"storage.type.function.async.python"},"2":{name:"storage.type.function.python"}},endCaptures:{"1":{name:"punctuation.section.function.begin.python"}},patterns:[{include:"#function-def-name"},{include:"#parameters"},{include:"#meta_parameters"},{include:"#line-continuation"},{include:"#return-annotation"}]},"function-def-name":{patterns:[{include:"#illegal-object-name"},{include:"#builtin-possible-callables"},{name:"entity.name.function.python",match:"(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n"}]},parameters:{name:"meta.function.parameters.python",begin:"(\\()",end:"(\\))",beginCaptures:{"1":{name:"punctuation.definition.parameters.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.parameters.end.python"}},patterns:[{name:"keyword.operator.positional.parameter.python",match:"/"},{name:"keyword.operator.unpacking.parameter.python",match:"(\\*\\*|\\*)"},{include:"#lambda-incomplete"},{include:"#illegal-names"},{include:"#illegal-object-name"},{include:"#parameter-special"},{match:"(?x)\n ([[:alpha:]_]\\w*)\n \\s* (?: (,) | (?=[)#\\n=]))\n",captures:{"1":{name:"variable.parameter.function.language.python"},"2":{name:"punctuation.separator.parameters.python"}}},{include:"#comments"},{include:"#loose-default"},{include:"#annotated-parameter"}]},meta_parameters:{name:"meta.function.parameters.python",begin:"(\\[)",end:"(\\])",beginCaptures:{"1":{name:"punctuation.definition.parameters.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.parameters.end.python"}},patterns:[{begin:"(?x)\n \\b\n ([[:alpha:]_]\\w*) \\s* (:)\n",end:"(,)|(?=\\])",beginCaptures:{"1":{name:"variable.parameter.function.language.python"},"2":{name:"punctuation.separator.annotation.python"}},endCaptures:{"1":{name:"punctuation.separator.parameters.python"}},patterns:[{include:"#expression"}]},{include:"#comments"}]},"parameter-special":{match:"(?x)\n \\b ((self)|(cls)) \\b \\s*(?:(,)|(?=\\)))\n",captures:{"1":{name:"variable.parameter.function.language.python"},"2":{name:"variable.parameter.function.language.special.self.python"},"3":{name:"variable.parameter.function.language.special.cls.python"},"4":{name:"punctuation.separator.parameters.python"}}},"loose-default":{begin:"(=)",end:"(,)|(?=\\))",beginCaptures:{"1":{name:"keyword.operator.python"}},endCaptures:{"1":{name:"punctuation.separator.parameters.python"}},patterns:[{include:"#expression"}]},"annotated-parameter":{begin:"(?x)\n \\b\n ([[:alpha:]_]\\w*) \\s* (:)\n",end:"(,)|(?=\\))",beginCaptures:{"1":{name:"variable.parameter.function.language.python"},"2":{name:"punctuation.separator.annotation.python"}},endCaptures:{"1":{name:"punctuation.separator.parameters.python"}},patterns:[{include:"#expression"},{name:"keyword.operator.assignment.python",match:"=(?!=)"}]},"return-annotation":{begin:"(->)",end:"(?=:)",beginCaptures:{"1":{name:"punctuation.separator.annotation.result.python"}},patterns:[{include:"#expression"}]},"item-access":{patterns:[{name:"meta.item-access.python",begin:"(?x)\n \\b(?=\n [[:alpha:]_]\\w* \\s* \\[\n )\n",end:"(\\])",endCaptures:{"1":{name:"punctuation.definition.arguments.end.python"}},patterns:[{include:"#item-name"},{include:"#item-index"},{include:"#expression"}]}]},"item-name":{patterns:[{include:"#special-variables"},{include:"#builtin-functions"},{include:"#special-names"},{name:"meta.indexed-name.python",match:"(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n"}]},"item-index":{begin:"(\\[)",end:"(?=\\])",beginCaptures:{"1":{name:"punctuation.definition.arguments.begin.python"}},contentName:"meta.item-access.arguments.python",patterns:[{name:"punctuation.separator.slice.python",match:":"},{include:"#expression"}]},decorator:{name:"meta.function.decorator.python",begin:"(?x)\n ^\\s*\n ((@)) \\s* (?=[[:alpha:]_]\\w*)\n",end:"(?x)\n ( \\) )\n # trailing whitespace and comments are legal\n (?: (.*?) (?=\\s*(?:\\#|$)) )\n | (?=\\n|\\#)\n",beginCaptures:{"1":{name:"entity.name.function.decorator.python"},"2":{name:"punctuation.definition.decorator.python"}},endCaptures:{"1":{name:"punctuation.definition.arguments.end.python"},"2":{name:"invalid.illegal.decorator.python"}},patterns:[{include:"#decorator-name"},{include:"#function-arguments"}]},"decorator-name":{patterns:[{include:"#builtin-callables"},{include:"#illegal-object-name"},{name:"entity.name.function.decorator.python",match:"(?x)\n ([[:alpha:]_]\\w*) | (\\.)\n",captures:{"2":{name:"punctuation.separator.period.python"}}},{include:"#line-continuation"},{name:"invalid.illegal.decorator.python",match:"(?x)\n \\s* ([^([:alpha:]\\s_\\.#\\\\] .*?) (?=\\#|$)\n",captures:{"1":{name:"invalid.illegal.decorator.python"}}}]},"call-wrapper-inheritance":{comment:"same as a function call, but in inheritance context",name:"meta.function-call.python",begin:"(?x)\n \\b(?=\n ([[:alpha:]_]\\w*) \\s* (\\()\n )\n",end:"(\\))",endCaptures:{"1":{name:"punctuation.definition.arguments.end.python"}},patterns:[{include:"#inheritance-name"},{include:"#function-arguments"}]},"inheritance-name":{patterns:[{include:"#lambda-incomplete"},{include:"#builtin-possible-callables"},{include:"#inheritance-identifier"}]},"function-call":{name:"meta.function-call.python",comment:"Regular function call of the type \"name(args)\"",begin:"(?x)\n \\b(?=\n ([[:alpha:]_]\\w*) \\s* (\\()\n )\n",end:"(\\))",endCaptures:{"1":{name:"punctuation.definition.arguments.end.python"}},patterns:[{include:"#special-variables"},{include:"#function-name"},{include:"#function-arguments"}]},"function-name":{patterns:[{include:"#builtin-possible-callables"},{comment:"Some color schemas support meta.function-call.generic scope",name:"meta.function-call.generic.python",match:"(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n"}]},"function-arguments":{begin:"(\\()",end:"(?=\\))(?!\\)\\s*\\()",beginCaptures:{"1":{name:"punctuation.definition.arguments.begin.python"}},contentName:"meta.function-call.arguments.python",patterns:[{name:"punctuation.separator.arguments.python",match:"(,)"},{match:"(?x)\n (?:(?<=[,(])|^) \\s* (\\*{1,2})\n",captures:{"1":{name:"keyword.operator.unpacking.arguments.python"}}},{include:"#lambda-incomplete"},{include:"#illegal-names"},{match:"\\b([[:alpha:]_]\\w*)\\s*(=)(?!=)",captures:{"1":{name:"variable.parameter.function-call.python"},"2":{name:"keyword.operator.assignment.python"}}},{name:"keyword.operator.assignment.python",match:"=(?!=)"},{include:"#expression"},{match:"\\s*(\\))\\s*(\\()",captures:{"1":{name:"punctuation.definition.arguments.end.python"},"2":{name:"punctuation.definition.arguments.begin.python"}}}]},"builtin-callables":{patterns:[{include:"#illegal-names"},{include:"#illegal-object-name"},{include:"#builtin-exceptions"},{include:"#builtin-functions"},{include:"#builtin-types"}]},"builtin-possible-callables":{patterns:[{include:"#builtin-callables"},{include:"#magic-names"}]},"builtin-exceptions":{name:"support.type.exception.python",match:"(?x) (?<!\\.) \\b(\n (\n Arithmetic | Assertion | Attribute | Buffer | BlockingIO\n | BrokenPipe | ChildProcess\n | (Connection (Aborted | Refused | Reset)?)\n | EOF | Environment | FileExists | FileNotFound\n | FloatingPoint | IO | Import | Indentation | Index | Interrupted\n | IsADirectory | NotADirectory | Permission | ProcessLookup\n | Timeout\n | Key | Lookup | Memory | Name | NotImplemented | OS | Overflow\n | Reference | Runtime | Recursion | Syntax | System\n | Tab | Type | UnboundLocal | Unicode(Encode|Decode|Translate)?\n | Value | Windows | ZeroDivision | ModuleNotFound\n ) Error\n|\n ((Pending)?Deprecation | Runtime | Syntax | User | Future | Import\n | Unicode | Bytes | Resource\n )? Warning\n|\n SystemExit | Stop(Async)?Iteration\n | KeyboardInterrupt\n | GeneratorExit | (Base)?Exception\n)\\b\n"},"builtin-functions":{patterns:[{name:"support.function.builtin.python",match:"(?x)\n (?<!\\.) \\b(\n __import__ | abs | aiter | all | any | anext | ascii | bin\n | breakpoint | callable | chr | compile | copyright | credits\n | delattr | dir | divmod | enumerate | eval | exec | exit\n | filter | format | getattr | globals | hasattr | hash | help\n | hex | id | input | isinstance | issubclass | iter | len\n | license | locals | map | max | memoryview | min | next\n | oct | open | ord | pow | print | quit | range | reload | repr\n | reversed | round | setattr | sorted | sum | vars | zip\n )\\b\n"},{name:"variable.legacy.builtin.python",match:"(?x)\n (?<!\\.) \\b(\n file | reduce | intern | raw_input | unicode | cmp | basestring\n | execfile | long | xrange\n )\\b\n"}]},"builtin-types":{name:"support.type.python",match:"(?x)\n (?<!\\.) \\b(\n __mlir_attr | __mlir_op | __mlir_type | bool | bytearray | bytes | classmethod | complex | dict\n | float | frozenset | int | list | object | property\n | set | slice | staticmethod | str | tuple | type\n\n (?# Although 'super' is not a type, it's related to types,\n and is special enough to be highlighted differently from\n other built-ins)\n | super\n )\\b\n"},"magic-function-names":{comment:"these methods have magic interpretation by python and are generally called\nindirectly through syntactic constructs\n",match:"(?x)\n \\b(\n __(?:\n abs | add | aenter | aexit | aiter | and | anext\n | await | bool | call | ceil | class_getitem\n | cmp | coerce | complex | contains | copy\n | deepcopy | del | delattr | delete | delitem\n | delslice | dir | div | divmod | enter | eq\n | exit | float | floor | floordiv | format | ge\n | get | getattr | getattribute | getinitargs\n | getitem | getnewargs | getslice | getstate | gt\n | hash | hex | iadd | iand | idiv | ifloordiv |\n | ilshift | imod | imul | index | init\n | instancecheck | int | invert | ior | ipow\n | irshift | isub | iter | itruediv | ixor | le\n | len | long | lshift | lt | missing | mod | mul\n | ne | neg | new | next | nonzero | oct | or | pos\n | pow | radd | rand | rdiv | rdivmod | reduce\n | reduce_ex | repr | reversed | rfloordiv |\n | rlshift | rmod | rmul | ror | round | rpow\n | rrshift | rshift | rsub | rtruediv | rxor | set\n | setattr | setitem | set_name | setslice\n | setstate | sizeof | str | sub | subclasscheck\n | truediv | trunc | unicode | xor | matmul\n | rmatmul | imatmul | init_subclass | set_name\n | fspath | bytes | prepare | length_hint\n )__\n )\\b\n",captures:{"1":{name:"support.function.magic.python"}}},"magic-variable-names":{comment:"magic variables which a class/module may have.",match:"(?x)\n \\b(\n __(?:\n all | annotations | bases | builtins | class\n | struct\n | closure | code | debug | defaults | dict | doc | file | func\n | globals | kwdefaults | match_args | members | metaclass | methods\n | module | mro | mro_entries | name | qualname | post_init | self\n | signature | slots | subclasses | version | weakref | wrapped\n | classcell | spec | path | package | future | traceback\n )__\n )\\b\n",captures:{"1":{name:"support.variable.magic.python"}}},"magic-names":{patterns:[{include:"#magic-function-names"},{include:"#magic-variable-names"}]},"illegal-names":{match:"(?x)\n \\b(?:\n (\n and | assert | async | await | break | class | struct | continue | def\n | fn\n | del | elif | else | except | finally | for | from | global\n | if | in | is | (?<=\\.)lambda | lambda(?=\\s*[\\.=])\n | nonlocal | not | or | pass | raise | return | try | while | with\n | yield\n ) | (\n as | import\n )\n )\\b\n",captures:{"1":{name:"keyword.control.flow.python"},"2":{name:"keyword.control.import.python"}}},"special-variables":{match:"(?x)\n \\b (?<!\\.) (?:\n (self) | (cls)\n )\\b\n",captures:{"1":{name:"variable.language.special.self.python"},"2":{name:"variable.language.special.cls.python"}}},ellipsis:{name:"constant.other.ellipsis.python",match:"\\.\\.\\."},backticks:{name:"string.quoted.single.python",begin:"\\`",end:"(?:\\`|(?<!\\\\)(\\n))"},"illegal-operator":{patterns:[{name:"invalid.illegal.operator.python",match:"&&|\\|\\||--|\\+\\+"},{name:"invalid.illegal.operator.python",match:"[?$]"},{name:"invalid.illegal.operator.python",comment:"We don't want `!` to flash when we're typing `!=`",match:"!\\b"}]},"illegal-object-name":{comment:"It's illegal to name class or function \"True\"",name:"keyword.illegal.name.python",match:"\\b(True|False|None)\\b"},"illegal-anno":{name:"invalid.illegal.annotation.python",match:"->"},"regexp-base-expression":{patterns:[{include:"#regexp-quantifier"},{include:"#regexp-base-common"}]},"fregexp-base-expression":{patterns:[{include:"#fregexp-quantifier"},{include:"#fstring-formatting-braces"},{match:"\\{.*?\\}"},{include:"#regexp-base-common"}]},"fstring-formatting-braces":{patterns:[{comment:"empty braces are illegal",match:"({)(\\s*?)(})",captures:{"1":{name:"constant.character.format.placeholder.other.python"},"2":{name:"invalid.illegal.brace.python"},"3":{name:"constant.character.format.placeholder.other.python"}}},{name:"constant.character.escape.python",match:"({{|}})"}]},"regexp-base-common":{patterns:[{name:"support.other.match.any.regexp",match:"\\."},{name:"support.other.match.begin.regexp",match:"\\^"},{name:"support.other.match.end.regexp",match:"\\$"},{name:"keyword.operator.quantifier.regexp",match:"[+*?]\\??"},{name:"keyword.operator.disjunction.regexp",match:"\\|"},{include:"#regexp-escape-sequence"}]},"regexp-quantifier":{name:"keyword.operator.quantifier.regexp",match:"(?x)\n \\{(\n \\d+ | \\d+,(\\d+)? | ,\\d+\n )\\}\n"},"fregexp-quantifier":{name:"keyword.operator.quantifier.regexp",match:"(?x)\n \\{\\{(\n \\d+ | \\d+,(\\d+)? | ,\\d+\n )\\}\\}\n"},"regexp-backreference-number":{name:"meta.backreference.regexp",match:"(\\\\[1-9]\\d?)",captures:{"1":{name:"entity.name.tag.backreference.regexp"}}},"regexp-backreference":{name:"meta.backreference.named.regexp",match:"(?x)\n (\\() (\\?P= \\w+(?:\\s+[[:alnum:]]+)?) (\\))\n",captures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.begin.regexp"},"2":{name:"entity.name.tag.named.backreference.regexp"},"3":{name:"support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.end.regexp"}}},"regexp-flags":{name:"storage.modifier.flag.regexp",match:"\\(\\?[aiLmsux]+\\)"},"regexp-escape-special":{name:"support.other.escape.special.regexp",match:"\\\\([AbBdDsSwWZ])"},"regexp-escape-character":{name:"constant.character.escape.regexp",match:"(?x)\n \\\\ (\n x[0-9A-Fa-f]{2}\n | 0[0-7]{1,2}\n | [0-7]{3}\n )\n"},"regexp-escape-unicode":{name:"constant.character.unicode.regexp",match:"(?x)\n \\\\ (\n u[0-9A-Fa-f]{4}\n | U[0-9A-Fa-f]{8}\n )\n"},"regexp-escape-catchall":{name:"constant.character.escape.regexp",match:"\\\\(.|\\n)"},"regexp-escape-sequence":{patterns:[{include:"#regexp-escape-special"},{include:"#regexp-escape-character"},{include:"#regexp-escape-unicode"},{include:"#regexp-backreference-number"},{include:"#regexp-escape-catchall"}]},"regexp-charecter-set-escapes":{patterns:[{name:"constant.character.escape.regexp",match:"\\\\[abfnrtv\\\\]"},{include:"#regexp-escape-special"},{name:"constant.character.escape.regexp",match:"\\\\([0-7]{1,3})"},{include:"#regexp-escape-character"},{include:"#regexp-escape-unicode"},{include:"#regexp-escape-catchall"}]},codetags:{match:"(?:\\b(NOTE|XXX|HACK|FIXME|BUG|TODO)\\b)",captures:{"1":{name:"keyword.codetag.notation.python"}}},"comments-base":{name:"comment.line.number-sign.python",begin:"(\\#)",beginCaptures:{"1":{name:"punctuation.definition.comment.python"}},end:"($)",patterns:[{include:"#codetags"}]},"comments-string-single-three":{name:"comment.line.number-sign.python",begin:"(\\#)",beginCaptures:{"1":{name:"punctuation.definition.comment.python"}},end:"($|(?='''))",patterns:[{include:"#codetags"}]},"comments-string-double-three":{name:"comment.line.number-sign.python",begin:"(\\#)",beginCaptures:{"1":{name:"punctuation.definition.comment.python"}},end:"($|(?=\"\"\"))",patterns:[{include:"#codetags"}]},"single-one-regexp-expression":{patterns:[{include:"#regexp-base-expression"},{include:"#single-one-regexp-character-set"},{include:"#single-one-regexp-comments"},{include:"#regexp-flags"},{include:"#single-one-regexp-named-group"},{include:"#regexp-backreference"},{include:"#single-one-regexp-lookahead"},{include:"#single-one-regexp-lookahead-negative"},{include:"#single-one-regexp-lookbehind"},{include:"#single-one-regexp-lookbehind-negative"},{include:"#single-one-regexp-conditional"},{include:"#single-one-regexp-parentheses-non-capturing"},{include:"#single-one-regexp-parentheses"}]},"single-one-regexp-character-set":{patterns:[{match:"(?x)\n \\[ \\^? \\] (?! .*?\\])\n"},{name:"meta.character.set.regexp",begin:"(\\[)(\\^)?(\\])?",end:"(\\]|(?=\\'))|((?=(?<!\\\\)\\n))",beginCaptures:{"1":{name:"punctuation.character.set.begin.regexp constant.other.set.regexp"},"2":{name:"keyword.operator.negation.regexp"},"3":{name:"constant.character.set.regexp"}},endCaptures:{"1":{name:"punctuation.character.set.end.regexp constant.other.set.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#regexp-charecter-set-escapes"},{name:"constant.character.set.regexp",match:"[^\\n]"}]}]},"single-one-regexp-named-group":{name:"meta.named.regexp",begin:"(?x)\n (\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n",end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",beginCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},"2":{name:"entity.name.tag.named.group.regexp"}},endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-comments":{name:"comment.regexp",begin:"\\(\\?#",end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"punctuation.comment.begin.regexp"}},endCaptures:{"1":{name:"punctuation.comment.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#codetags"}]},"single-one-regexp-lookahead":{begin:"(\\()\\?=",end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"keyword.operator.lookahead.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-lookahead-negative":{begin:"(\\()\\?!",end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"keyword.operator.lookahead.negative.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-lookbehind":{begin:"(\\()\\?<=",end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"keyword.operator.lookbehind.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-lookbehind-negative":{begin:"(\\()\\?<!",end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"keyword.operator.lookbehind.negative.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-conditional":{begin:"(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)",end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"keyword.operator.conditional.regexp"},"1":{name:"punctuation.parenthesis.conditional.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-parentheses-non-capturing":{begin:"\\(\\?:",end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-parentheses":{begin:"\\(",end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-three-regexp-expression":{patterns:[{include:"#regexp-base-expression"},{include:"#single-three-regexp-character-set"},{include:"#single-three-regexp-comments"},{include:"#regexp-flags"},{include:"#single-three-regexp-named-group"},{include:"#regexp-backreference"},{include:"#single-three-regexp-lookahead"},{include:"#single-three-regexp-lookahead-negative"},{include:"#single-three-regexp-lookbehind"},{include:"#single-three-regexp-lookbehind-negative"},{include:"#single-three-regexp-conditional"},{include:"#single-three-regexp-parentheses-non-capturing"},{include:"#single-three-regexp-parentheses"},{include:"#comments-string-single-three"}]},"single-three-regexp-character-set":{patterns:[{match:"(?x)\n \\[ \\^? \\] (?! .*?\\])\n"},{name:"meta.character.set.regexp",begin:"(\\[)(\\^)?(\\])?",end:"(\\]|(?=\\'\\'\\'))",beginCaptures:{"1":{name:"punctuation.character.set.begin.regexp constant.other.set.regexp"},"2":{name:"keyword.operator.negation.regexp"},"3":{name:"constant.character.set.regexp"}},endCaptures:{"1":{name:"punctuation.character.set.end.regexp constant.other.set.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#regexp-charecter-set-escapes"},{name:"constant.character.set.regexp",match:"[^\\n]"}]}]},"single-three-regexp-named-group":{name:"meta.named.regexp",begin:"(?x)\n (\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n",end:"(\\)|(?=\\'\\'\\'))",beginCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},"2":{name:"entity.name.tag.named.group.regexp"}},endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-comments":{name:"comment.regexp",begin:"\\(\\?#",end:"(\\)|(?=\\'\\'\\'))",beginCaptures:{"0":{name:"punctuation.comment.begin.regexp"}},endCaptures:{"1":{name:"punctuation.comment.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#codetags"}]},"single-three-regexp-lookahead":{begin:"(\\()\\?=",end:"(\\)|(?=\\'\\'\\'))",beginCaptures:{"0":{name:"keyword.operator.lookahead.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-lookahead-negative":{begin:"(\\()\\?!",end:"(\\)|(?=\\'\\'\\'))",beginCaptures:{"0":{name:"keyword.operator.lookahead.negative.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-lookbehind":{begin:"(\\()\\?<=",end:"(\\)|(?=\\'\\'\\'))",beginCaptures:{"0":{name:"keyword.operator.lookbehind.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-lookbehind-negative":{begin:"(\\()\\?<!",end:"(\\)|(?=\\'\\'\\'))",beginCaptures:{"0":{name:"keyword.operator.lookbehind.negative.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-conditional":{begin:"(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)",end:"(\\)|(?=\\'\\'\\'))",beginCaptures:{"0":{name:"keyword.operator.conditional.regexp"},"1":{name:"punctuation.parenthesis.conditional.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-parentheses-non-capturing":{begin:"\\(\\?:",end:"(\\)|(?=\\'\\'\\'))",beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-parentheses":{begin:"\\(",end:"(\\)|(?=\\'\\'\\'))",beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"double-one-regexp-expression":{patterns:[{include:"#regexp-base-expression"},{include:"#double-one-regexp-character-set"},{include:"#double-one-regexp-comments"},{include:"#regexp-flags"},{include:"#double-one-regexp-named-group"},{include:"#regexp-backreference"},{include:"#double-one-regexp-lookahead"},{include:"#double-one-regexp-lookahead-negative"},{include:"#double-one-regexp-lookbehind"},{include:"#double-one-regexp-lookbehind-negative"},{include:"#double-one-regexp-conditional"},{include:"#double-one-regexp-parentheses-non-capturing"},{include:"#double-one-regexp-parentheses"}]},"double-one-regexp-character-set":{patterns:[{match:"(?x)\n \\[ \\^? \\] (?! .*?\\])\n"},{name:"meta.character.set.regexp",begin:"(\\[)(\\^)?(\\])?",end:"(\\]|(?=\"))|((?=(?<!\\\\)\\n))",beginCaptures:{"1":{name:"punctuation.character.set.begin.regexp constant.other.set.regexp"},"2":{name:"keyword.operator.negation.regexp"},"3":{name:"constant.character.set.regexp"}},endCaptures:{"1":{name:"punctuation.character.set.end.regexp constant.other.set.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#regexp-charecter-set-escapes"},{name:"constant.character.set.regexp",match:"[^\\n]"}]}]},"double-one-regexp-named-group":{name:"meta.named.regexp",begin:"(?x)\n (\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n",end:"(\\)|(?=\"))|((?=(?<!\\\\)\\n))",beginCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},"2":{name:"entity.name.tag.named.group.regexp"}},endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-comments":{name:"comment.regexp",begin:"\\(\\?#",end:"(\\)|(?=\"))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"punctuation.comment.begin.regexp"}},endCaptures:{"1":{name:"punctuation.comment.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#codetags"}]},"double-one-regexp-lookahead":{begin:"(\\()\\?=",end:"(\\)|(?=\"))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"keyword.operator.lookahead.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-lookahead-negative":{begin:"(\\()\\?!",end:"(\\)|(?=\"))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"keyword.operator.lookahead.negative.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-lookbehind":{begin:"(\\()\\?<=",end:"(\\)|(?=\"))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"keyword.operator.lookbehind.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-lookbehind-negative":{begin:"(\\()\\?<!",end:"(\\)|(?=\"))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"keyword.operator.lookbehind.negative.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-conditional":{begin:"(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)",end:"(\\)|(?=\"))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"keyword.operator.conditional.regexp"},"1":{name:"punctuation.parenthesis.conditional.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-parentheses-non-capturing":{begin:"\\(\\?:",end:"(\\)|(?=\"))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-parentheses":{begin:"\\(",end:"(\\)|(?=\"))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-three-regexp-expression":{patterns:[{include:"#regexp-base-expression"},{include:"#double-three-regexp-character-set"},{include:"#double-three-regexp-comments"},{include:"#regexp-flags"},{include:"#double-three-regexp-named-group"},{include:"#regexp-backreference"},{include:"#double-three-regexp-lookahead"},{include:"#double-three-regexp-lookahead-negative"},{include:"#double-three-regexp-lookbehind"},{include:"#double-three-regexp-lookbehind-negative"},{include:"#double-three-regexp-conditional"},{include:"#double-three-regexp-parentheses-non-capturing"},{include:"#double-three-regexp-parentheses"},{include:"#comments-string-double-three"}]},"double-three-regexp-character-set":{patterns:[{match:"(?x)\n \\[ \\^? \\] (?! .*?\\])\n"},{name:"meta.character.set.regexp",begin:"(\\[)(\\^)?(\\])?",end:"(\\]|(?=\"\"\"))",beginCaptures:{"1":{name:"punctuation.character.set.begin.regexp constant.other.set.regexp"},"2":{name:"keyword.operator.negation.regexp"},"3":{name:"constant.character.set.regexp"}},endCaptures:{"1":{name:"punctuation.character.set.end.regexp constant.other.set.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#regexp-charecter-set-escapes"},{name:"constant.character.set.regexp",match:"[^\\n]"}]}]},"double-three-regexp-named-group":{name:"meta.named.regexp",begin:"(?x)\n (\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n",end:"(\\)|(?=\"\"\"))",beginCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},"2":{name:"entity.name.tag.named.group.regexp"}},endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-comments":{name:"comment.regexp",begin:"\\(\\?#",end:"(\\)|(?=\"\"\"))",beginCaptures:{"0":{name:"punctuation.comment.begin.regexp"}},endCaptures:{"1":{name:"punctuation.comment.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#codetags"}]},"double-three-regexp-lookahead":{begin:"(\\()\\?=",end:"(\\)|(?=\"\"\"))",beginCaptures:{"0":{name:"keyword.operator.lookahead.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-lookahead-negative":{begin:"(\\()\\?!",end:"(\\)|(?=\"\"\"))",beginCaptures:{"0":{name:"keyword.operator.lookahead.negative.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-lookbehind":{begin:"(\\()\\?<=",end:"(\\)|(?=\"\"\"))",beginCaptures:{"0":{name:"keyword.operator.lookbehind.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-lookbehind-negative":{begin:"(\\()\\?<!",end:"(\\)|(?=\"\"\"))",beginCaptures:{"0":{name:"keyword.operator.lookbehind.negative.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-conditional":{begin:"(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)",end:"(\\)|(?=\"\"\"))",beginCaptures:{"0":{name:"keyword.operator.conditional.regexp"},"1":{name:"punctuation.parenthesis.conditional.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-parentheses-non-capturing":{begin:"\\(\\?:",end:"(\\)|(?=\"\"\"))",beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-parentheses":{begin:"\\(",end:"(\\)|(?=\"\"\"))",beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"regexp-single-one-line":{name:"string.regexp.quoted.single.python",begin:"\\b(([uU]r)|([bB]r)|(r[bB]?))(\\')",end:"(\\')|(?<!\\\\)(\\n)",beginCaptures:{"2":{name:"invalid.deprecated.prefix.python"},"3":{name:"storage.type.string.python"},"4":{name:"storage.type.string.python"},"5":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"regexp-single-three-line":{name:"string.regexp.quoted.multi.python",begin:"\\b(([uU]r)|([bB]r)|(r[bB]?))(\\'\\'\\')",end:"(\\'\\'\\')",beginCaptures:{"2":{name:"invalid.deprecated.prefix.python"},"3":{name:"storage.type.string.python"},"4":{name:"storage.type.string.python"},"5":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"}]},"regexp-double-one-line":{name:"string.regexp.quoted.single.python",begin:"\\b(([uU]r)|([bB]r)|(r[bB]?))(\")",end:"(\")|(?<!\\\\)(\\n)",beginCaptures:{"2":{name:"invalid.deprecated.prefix.python"},"3":{name:"storage.type.string.python"},"4":{name:"storage.type.string.python"},"5":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"regexp-double-three-line":{name:"string.regexp.quoted.multi.python",begin:"\\b(([uU]r)|([bB]r)|(r[bB]?))(\"\"\")",end:"(\"\"\")",beginCaptures:{"2":{name:"invalid.deprecated.prefix.python"},"3":{name:"storage.type.string.python"},"4":{name:"storage.type.string.python"},"5":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"}]},"string-raw-quoted-single-line":{name:"string.quoted.raw.single.python",begin:"\\b(([uU]R)|(R))((['\"]))",end:"(\\4)|((?<!\\\\)\\n)",beginCaptures:{"2":{name:"invalid.deprecated.prefix.python"},"3":{name:"storage.type.string.python"},"4":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#string-single-bad-brace1-formatting-raw"},{include:"#string-single-bad-brace2-formatting-raw"},{include:"#string-raw-guts"}]},"string-bin-quoted-single-line":{name:"string.quoted.binary.single.python",begin:"(\\b[bB])((['\"]))",end:"(\\2)|((?<!\\\\)\\n)",beginCaptures:{"1":{name:"storage.type.string.python"},"2":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#string-entity"}]},"string-raw-bin-quoted-single-line":{name:"string.quoted.raw.binary.single.python",begin:"(\\b(?:R[bB]|[bB]R))((['\"]))",end:"(\\2)|((?<!\\\\)\\n)",beginCaptures:{"1":{name:"storage.type.string.python"},"2":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#string-raw-bin-guts"}]},"string-quoted-single-line":{name:"string.quoted.single.python",begin:"(?:\\b([rR])(?=[uU]))?([uU])?((['\"]))",end:"(\\3)|((?<!\\\\)\\n)",beginCaptures:{"1":{name:"invalid.illegal.prefix.python"},"2":{name:"storage.type.string.python"},"3":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#string-single-bad-brace1-formatting-unicode"},{include:"#string-single-bad-brace2-formatting-unicode"},{include:"#string-unicode-guts"}]},"string-single-bad-brace1-formatting-unicode":{comment:"template using {% ... %}",begin:"(?x)\n (?= \\{%\n ( .*? (?!(['\"])|((?<!\\\\)\\n)) )\n %\\}\n )\n",end:"(?=(['\"])|((?<!\\\\)\\n))",patterns:[{include:"#escape-sequence-unicode"},{include:"#escape-sequence"},{include:"#string-line-continuation"}]},"string-single-bad-brace1-formatting-raw":{comment:"template using {% ... %}",begin:"(?x)\n (?= \\{%\n ( .*? (?!(['\"])|((?<!\\\\)\\n)) )\n %\\}\n )\n",end:"(?=(['\"])|((?<!\\\\)\\n))",patterns:[{include:"#string-consume-escape"}]},"string-single-bad-brace2-formatting-unicode":{comment:"odd format or format-like syntax",begin:"(?x)\n (?!\\{\\{)\n (?= \\{ (\n \\w*? (?!(['\"])|((?<!\\\\)\\n)) [^!:\\.\\[}\\w]\n )\n .*?(?!(['\"])|((?<!\\\\)\\n))\n \\}\n )\n",end:"(?=(['\"])|((?<!\\\\)\\n))",patterns:[{include:"#escape-sequence-unicode"},{include:"#string-entity"}]},"string-single-bad-brace2-formatting-raw":{comment:"odd format or format-like syntax",begin:"(?x)\n (?!\\{\\{)\n (?= \\{ (\n \\w*? (?!(['\"])|((?<!\\\\)\\n)) [^!:\\.\\[}\\w]\n )\n .*?(?!(['\"])|((?<!\\\\)\\n))\n \\}\n )\n",end:"(?=(['\"])|((?<!\\\\)\\n))",patterns:[{include:"#string-consume-escape"},{include:"#string-formatting"}]},"string-raw-quoted-multi-line":{name:"string.quoted.raw.multi.python",begin:"\\b(([uU]R)|(R))('''|\"\"\")",end:"(\\4)",beginCaptures:{"2":{name:"invalid.deprecated.prefix.python"},"3":{name:"storage.type.string.python"},"4":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#string-multi-bad-brace1-formatting-raw"},{include:"#string-multi-bad-brace2-formatting-raw"},{include:"#string-raw-guts"}]},"string-bin-quoted-multi-line":{name:"string.quoted.binary.multi.python",begin:"(\\b[bB])('''|\"\"\")",end:"(\\2)",beginCaptures:{"1":{name:"storage.type.string.python"},"2":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#string-entity"}]},"string-raw-bin-quoted-multi-line":{name:"string.quoted.raw.binary.multi.python",begin:"(\\b(?:R[bB]|[bB]R))('''|\"\"\")",end:"(\\2)",beginCaptures:{"1":{name:"storage.type.string.python"},"2":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#string-raw-bin-guts"}]},"string-quoted-multi-line":{name:"string.quoted.multi.python",begin:"(?:\\b([rR])(?=[uU]))?([uU])?('''|\"\"\")",end:"(\\3)",beginCaptures:{"1":{name:"invalid.illegal.prefix.python"},"2":{name:"storage.type.string.python"},"3":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#string-multi-bad-brace1-formatting-unicode"},{include:"#string-multi-bad-brace2-formatting-unicode"},{include:"#string-unicode-guts"}]},"string-multi-bad-brace1-formatting-unicode":{comment:"template using {% ... %}",begin:"(?x)\n (?= \\{%\n ( .*? (?!'''|\"\"\") )\n %\\}\n )\n",end:"(?='''|\"\"\")",patterns:[{include:"#escape-sequence-unicode"},{include:"#escape-sequence"},{include:"#string-line-continuation"}]},"string-multi-bad-brace1-formatting-raw":{comment:"template using {% ... %}",begin:"(?x)\n (?= \\{%\n ( .*? (?!'''|\"\"\") )\n %\\}\n )\n",end:"(?='''|\"\"\")",patterns:[{include:"#string-consume-escape"}]},"string-multi-bad-brace2-formatting-unicode":{comment:"odd format or format-like syntax",begin:"(?x)\n (?!\\{\\{)\n (?= \\{ (\n \\w*? (?!'''|\"\"\") [^!:\\.\\[}\\w]\n )\n .*?(?!'''|\"\"\")\n \\}\n )\n",end:"(?='''|\"\"\")",patterns:[{include:"#escape-sequence-unicode"},{include:"#string-entity"}]},"string-multi-bad-brace2-formatting-raw":{comment:"odd format or format-like syntax",begin:"(?x)\n (?!\\{\\{)\n (?= \\{ (\n \\w*? (?!'''|\"\"\") [^!:\\.\\[}\\w]\n )\n .*?(?!'''|\"\"\")\n \\}\n )\n",end:"(?='''|\"\"\")",patterns:[{include:"#string-consume-escape"},{include:"#string-formatting"}]},"fstring-fnorm-quoted-single-line":{name:"meta.fstring.python",begin:"(\\b[fF])([bBuU])?((['\"]))",end:"(\\3)|((?<!\\\\)\\n)",beginCaptures:{"1":{name:"string.interpolated.python string.quoted.single.python storage.type.string.python"},"2":{name:"invalid.illegal.prefix.python"},"3":{name:"punctuation.definition.string.begin.python string.interpolated.python string.quoted.single.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.single.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#fstring-guts"},{include:"#fstring-illegal-single-brace"},{include:"#fstring-single-brace"},{include:"#fstring-single-core"}]},"fstring-normf-quoted-single-line":{name:"meta.fstring.python",begin:"(\\b[bBuU])([fF])((['\"]))",end:"(\\3)|((?<!\\\\)\\n)",beginCaptures:{"1":{name:"invalid.illegal.prefix.python"},"2":{name:"string.interpolated.python string.quoted.single.python storage.type.string.python"},"3":{name:"punctuation.definition.string.begin.python string.quoted.single.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.single.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#fstring-guts"},{include:"#fstring-illegal-single-brace"},{include:"#fstring-single-brace"},{include:"#fstring-single-core"}]},"fstring-raw-quoted-single-line":{name:"meta.fstring.python",begin:"(\\b(?:[rR][fF]|[fF][rR]))((['\"]))",end:"(\\2)|((?<!\\\\)\\n)",beginCaptures:{"1":{name:"string.interpolated.python string.quoted.raw.single.python storage.type.string.python"},"2":{name:"punctuation.definition.string.begin.python string.quoted.raw.single.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.raw.single.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#fstring-raw-guts"},{include:"#fstring-illegal-single-brace"},{include:"#fstring-single-brace"},{include:"#fstring-raw-single-core"}]},"fstring-single-core":{name:"string.interpolated.python string.quoted.single.python",match:"(?x)\n (.+?)\n (\n (?# .* and .*? in multi-line match need special handling of\n newlines otherwise SublimeText and Atom will match slightly\n differently.\n\n The guard for newlines has to be separate from the\n lookahead because of special $ matching rule.)\n ($\\n?)\n |\n (?=[\\\\\\}\\{]|(['\"])|((?<!\\\\)\\n))\n )\n (?# due to how multiline regexps are matched we need a special case\n for matching a newline character)\n | \\n\n"},"fstring-raw-single-core":{name:"string.interpolated.python string.quoted.raw.single.python",match:"(?x)\n (.+?)\n (\n (?# .* and .*? in multi-line match need special handling of\n newlines otherwise SublimeText and Atom will match slightly\n differently.\n\n The guard for newlines has to be separate from the\n lookahead because of special $ matching rule.)\n ($\\n?)\n |\n (?=[\\\\\\}\\{]|(['\"])|((?<!\\\\)\\n))\n )\n (?# due to how multiline regexps are matched we need a special case\n for matching a newline character)\n | \\n\n"},"fstring-single-brace":{comment:"value interpolation using { ... }",begin:"(\\{)",end:"(?x)\n (\\})|(?=\\n)\n",beginCaptures:{"1":{name:"constant.character.format.placeholder.other.python"}},endCaptures:{"1":{name:"constant.character.format.placeholder.other.python"}},patterns:[{include:"#fstring-terminator-single"},{include:"#f-expression"}]},"fstring-terminator-single":{patterns:[{name:"storage.type.format.python",match:"(=(![rsa])?)(?=})"},{name:"storage.type.format.python",match:"(=?![rsa])(?=})"},{match:"(?x)\n ( (?: =?) (?: ![rsa])? )\n ( : \\w? [<>=^]? [-+ ]? \\#?\n \\d* ,? (\\.\\d+)? [bcdeEfFgGnosxX%]? )(?=})\n",captures:{"1":{name:"storage.type.format.python"},"2":{name:"storage.type.format.python"}}},{include:"#fstring-terminator-single-tail"}]},"fstring-terminator-single-tail":{begin:"((?:=?)(?:![rsa])?)(:)(?=.*?{)",end:"(?=})|(?=\\n)",beginCaptures:{"1":{name:"storage.type.format.python"},"2":{name:"storage.type.format.python"}},patterns:[{include:"#fstring-illegal-single-brace"},{include:"#fstring-single-brace"},{name:"storage.type.format.python",match:"([bcdeEfFgGnosxX%])(?=})"},{name:"storage.type.format.python",match:"(\\.\\d+)"},{name:"storage.type.format.python",match:"(,)"},{name:"storage.type.format.python",match:"(\\d+)"},{name:"storage.type.format.python",match:"(\\#)"},{name:"storage.type.format.python",match:"([-+ ])"},{name:"storage.type.format.python",match:"([<>=^])"},{name:"storage.type.format.python",match:"(\\w)"}]},"fstring-fnorm-quoted-multi-line":{name:"meta.fstring.python",begin:"(\\b[fF])([bBuU])?('''|\"\"\")",end:"(\\3)",beginCaptures:{"1":{name:"string.interpolated.python string.quoted.multi.python storage.type.string.python"},"2":{name:"invalid.illegal.prefix.python"},"3":{name:"punctuation.definition.string.begin.python string.interpolated.python string.quoted.multi.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.multi.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#fstring-guts"},{include:"#fstring-illegal-multi-brace"},{include:"#fstring-multi-brace"},{include:"#fstring-multi-core"}]},"fstring-normf-quoted-multi-line":{name:"meta.fstring.python",begin:"(\\b[bBuU])([fF])('''|\"\"\")",end:"(\\3)",beginCaptures:{"1":{name:"invalid.illegal.prefix.python"},"2":{name:"string.interpolated.python string.quoted.multi.python storage.type.string.python"},"3":{name:"punctuation.definition.string.begin.python string.quoted.multi.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.multi.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#fstring-guts"},{include:"#fstring-illegal-multi-brace"},{include:"#fstring-multi-brace"},{include:"#fstring-multi-core"}]},"fstring-raw-quoted-multi-line":{name:"meta.fstring.python",begin:"(\\b(?:[rR][fF]|[fF][rR]))('''|\"\"\")",end:"(\\2)",beginCaptures:{"1":{name:"string.interpolated.python string.quoted.raw.multi.python storage.type.string.python"},"2":{name:"punctuation.definition.string.begin.python string.quoted.raw.multi.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.raw.multi.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#fstring-raw-guts"},{include:"#fstring-illegal-multi-brace"},{include:"#fstring-multi-brace"},{include:"#fstring-raw-multi-core"}]},"fstring-multi-core":{name:"string.interpolated.python string.quoted.multi.python",match:"(?x)\n (.+?)\n (\n (?# .* and .*? in multi-line match need special handling of\n newlines otherwise SublimeText and Atom will match slightly\n differently.\n\n The guard for newlines has to be separate from the\n lookahead because of special $ matching rule.)\n ($\\n?)\n |\n (?=[\\\\\\}\\{]|'''|\"\"\")\n )\n (?# due to how multiline regexps are matched we need a special case\n for matching a newline character)\n | \\n\n"},"fstring-raw-multi-core":{name:"string.interpolated.python string.quoted.raw.multi.python",match:"(?x)\n (.+?)\n (\n (?# .* and .*? in multi-line match need special handling of\n newlines otherwise SublimeText and Atom will match slightly\n differently.\n\n The guard for newlines has to be separate from the\n lookahead because of special $ matching rule.)\n ($\\n?)\n |\n (?=[\\\\\\}\\{]|'''|\"\"\")\n )\n (?# due to how multiline regexps are matched we need a special case\n for matching a newline character)\n | \\n\n"},"fstring-multi-brace":{comment:"value interpolation using { ... }",begin:"(\\{)",end:"(?x)\n (\\})\n",beginCaptures:{"1":{name:"constant.character.format.placeholder.other.python"}},endCaptures:{"1":{name:"constant.character.format.placeholder.other.python"}},patterns:[{include:"#fstring-terminator-multi"},{include:"#f-expression"}]},"fstring-terminator-multi":{patterns:[{name:"storage.type.format.python",match:"(=(![rsa])?)(?=})"},{name:"storage.type.format.python",match:"(=?![rsa])(?=})"},{match:"(?x)\n ( (?: =?) (?: ![rsa])? )\n ( : \\w? [<>=^]? [-+ ]? \\#?\n \\d* ,? (\\.\\d+)? [bcdeEfFgGnosxX%]? )(?=})\n",captures:{"1":{name:"storage.type.format.python"},"2":{name:"storage.type.format.python"}}},{include:"#fstring-terminator-multi-tail"}]},"fstring-terminator-multi-tail":{begin:"((?:=?)(?:![rsa])?)(:)(?=.*?{)",end:"(?=})",beginCaptures:{"1":{name:"storage.type.format.python"},"2":{name:"storage.type.format.python"}},patterns:[{include:"#fstring-illegal-multi-brace"},{include:"#fstring-multi-brace"},{name:"storage.type.format.python",match:"([bcdeEfFgGnosxX%])(?=})"},{name:"storage.type.format.python",match:"(\\.\\d+)"},{name:"storage.type.format.python",match:"(,)"},{name:"storage.type.format.python",match:"(\\d+)"},{name:"storage.type.format.python",match:"(\\#)"},{name:"storage.type.format.python",match:"([-+ ])"},{name:"storage.type.format.python",match:"([<>=^])"},{name:"storage.type.format.python",match:"(\\w)"}]}}}; + +export { mojo_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/narrat.tmLanguage-2646344e.mjs b/docs/shiki/dist/languages/narrat.tmLanguage-2646344e.mjs new file mode 100644 index 00000000..5079c8a7 --- /dev/null +++ b/docs/shiki/dist/languages/narrat.tmLanguage-2646344e.mjs @@ -0,0 +1,3 @@ +var narrat_tmLanguage = {$schema:"https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",name:"narrat",patterns:[{include:"#comments"},{include:"#expression"}],repository:{expression:{patterns:[{include:"#keywords"},{include:"#commands"},{include:"#operators"},{include:"#primitives"},{include:"#strings"},{include:"#paren-expression"}]},keywords:{patterns:[{name:"keyword.control.narrat",match:"\\b(if|else|choice)\\b"},{name:"variable.value.narrat",match:"\\$[\\w|\\.]+\\b"},{name:"entity.name.function.narrat",match:"(?x) # Ignore comments\n ^\\w+ # Find label name\n (?=(\\s|\\w)*:) # Positive lookahead for ':'\n"},{name:"invalid.label.narrat",match:"(?x) # Ignore comments\n ^\\w+ # Find label name\n (?!(\\s|\\w)*:) # Negative lookahead for ':'\n"},{name:"entity.other.attribute-name",match:"(?<=\\w)[^^](\\b\\w+\\b)(?=(\\s|\\w)*:)"}]},commands:{patterns:[{name:"keyword.commands.variables.narrat",match:"\\b(set|var)\\b"},{name:"keyword.commands.text.narrat",match:"\\b(talk|think)\\b"},{name:"keyword.commands.flow.narrat",match:"\\b(jump|run|wait|return|save|save_prompt)"},{name:"keyword.commands.helpers.narrat",match:"\\b(log|clear_dialog)\\b"},{name:"keyword.commands.screens.narrat",match:"\\b(set_screen|empty_layer|set_button)"},{name:"keyword.commands.audio.narrat",match:"\\b(play|pause|stop)\\b"},{name:"keyword.commands.notifications.narrat",match:"\\b(notify|enable_notifications|disable_notifications)\\b"},{name:"keyword.commands.stats.narrat",match:"\\b(set_stat|get_stat_value|add_stat)"},{name:"keyword.commands.math.narrat",match:"\\b(neg|abs|random|random_float|random_from_args|min|max|clamp|floor|round|ceil|sqrt|^)\\b"},{name:"keyword.commands.string.narrat",match:"\\b(concat|join)\\b"},{name:"keyword.commands.text_field.narrat",match:"\\b(text_field)\\b"},{name:"keyword.commands.skills.narrat",match:"\\b(add_level|set_level|add_xp|roll|get_level|get_xp)\\b"},{name:"keyword.commands.inventory.narrat",match:"\\b(add_item|remove_item|enable_interaction|disable_interaction|has_item?|item_amount?)"},{name:"keyword.commands.quests.narrat",match:"\\b(start_quest|start_objective|complete_objective|complete_quest|quest_started?|objective_started?|quest_completed?|objective_completed?)"}]},operators:{patterns:[{name:"keyword.operator.logic.narrat",match:"(&&|\\|\\||!=|==|>=|<=|<|>|!|\\?)\\s"},{name:"keyword.operator.arithmetic.narrat",match:"(\\+|-|\\*|\\/)\\s"}]},interpolation:{patterns:[{name:"variable.interpolation.narrat",match:"(\\w|\\.)+"}]},strings:{name:"string.quoted.double.narrat",begin:"\"",end:"\"",patterns:[{name:"constant.character.escape.narrat",match:"\\\\."},{name:"expression.template",begin:"%{",end:"}",beginCaptures:{"0":{name:"punctuation.template.open"}},endCaptures:{"0":{name:"punctuation.template.close.narrat"}},patterns:[{include:"#expression"},{include:"#interpolation"}]}]},"paren-expression":{begin:"\\(",end:"\\)",beginCaptures:{"0":{name:"punctuation.paren.open"}},endCaptures:{"0":{name:"punctuation.paren.close"}},name:"expression.group",patterns:[{include:"#expression"}]},primitives:{patterns:[{name:"constant.numeric.narrat",match:"\\b\\d+\\b"},{name:"constant.language.true.narrat",match:"\\btrue\\b"},{name:"constant.language.false.narrat",match:"\\bfalse\\b"},{name:"constant.language.null.narrat",match:"\\bnull\\b"},{name:"constant.language.undefined.narrat",match:"\\bundefined\\b"}]},comments:{patterns:[{name:"comment.line.narrat",match:"\\/\\/.*$"}]}},scopeName:"source.narrat"}; + +export { narrat_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/nextflow.tmLanguage-7bff6c0e.mjs b/docs/shiki/dist/languages/nextflow.tmLanguage-7bff6c0e.mjs new file mode 100644 index 00000000..ccba89ba --- /dev/null +++ b/docs/shiki/dist/languages/nextflow.tmLanguage-7bff6c0e.mjs @@ -0,0 +1,3 @@ +var nextflow_tmLanguage = {$schema:"https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",name:"nextflow",scopeName:"source.nextflow",keyEquivalent:"^~N",patterns:[{include:"#nfl-rules"}],repository:{"nfl-rules":{patterns:[{include:"#process-def"},{include:"#workflow-def"},{include:"#code-block"},{include:"#include-statement"},{include:"#implicit-variables"},{comment:"method call and parens",begin:"(\\w*\\()",beginCaptures:{"1":{patterns:[{include:"source.nextflow-groovy"}]}},end:"\\)",patterns:[{include:"#nfl-rules"}]},{comment:"braces",begin:"{",end:"}",patterns:[{include:"#nfl-rules"}]},{include:"source.nextflow-groovy"}]},"process-def":{name:"process.nextflow",begin:"^\\s*(process)\\s+(\\w+|\"[^\"]+\"|'[^']+')\\s*{",beginCaptures:{"1":{name:"keyword.nextflow"},"2":{name:"function.nextflow"}},end:"}",patterns:[{include:"#process-body"}]},"process-body":{patterns:[{name:"entity.name.function.nextflow",match:"(?:accelerator|afterScript|beforeScript|cache|cpus|conda|container|containerOptions|clusterOptions|debug|disk|echo|errorStrategy|executor|ext|label|machineType|maxErrors|maxForks|maxRetries|memory|module|penv|pod|publishDir|queue|resourceLabels|scratch|stageInMode|stageOutMode|storeDir|tag|time)\\b"},{name:"constant.block.nextflow",match:"(?:input|output|when|script|shell|exec):"},{name:"entity.name.function.nextflow",match:"\\b(tuple|set|path|file|val|stdout)(\\(|\\s)"},{include:"#implicit-variables"},{comment:"method call and parens",begin:"(\\w*\\()",beginCaptures:{"1":{patterns:[{include:"source.nextflow-groovy"}]}},end:"\\)",patterns:[{include:"#process-body"}]},{comment:"braces",begin:"{",end:"}",patterns:[{include:"#process-body"}]},{include:"source.nextflow-groovy#comments"},{include:"source.nextflow-groovy#support-functions"},{include:"source.nextflow-groovy#keyword"},{include:"source.nextflow-groovy#values"},{include:"source.nextflow-groovy#anonymous-classes-and-new"},{include:"source.nextflow-groovy#types"},{include:"source.nextflow-groovy#parens"},{include:"source.nextflow-groovy#closures"},{include:"source.nextflow-groovy#braces"}]},"workflow-def":{name:"workflow.nextflow",begin:"^\\s*(workflow)(?:\\s+(\\w+|\"[^\"]+\"|'[^']+'))?\\s*{",beginCaptures:{"1":{name:"keyword.nextflow"},"2":{name:"constant.nextflow"}},end:"}",patterns:[{include:"#workflow-body"}]},"workflow-body":{patterns:[{include:"#implicit-variables"},{name:"constant.block.nextflow",match:"(?:take|main|emit):"},{name:"entity.name.function.nextflow",match:"(?<=[\\s\\.])(branch|buffer|close|collate|collect|collectFile|combine|concat|count|countBy|cross|distinct|dump|filter|first|flatMap|flatten|groupTuple|ifEmpty|join|last|map|max|merge|min|mix|multiMap|randomSample|reduce|set|splitCsv|splitFasta|splitFastq|splitText|sum|take|tap|toInteger|toList|toSortedList|transpose|unique|until|view)(?=[{\\(\\s])"},{comment:"Channel factory single line",match:"\\b((?:C|c)hannel\\.)((fromList|fromPath|fromFilePairs|fromSRA|from|of|empty|value|watchPath)\\W)?",captures:{"1":{name:"keyword.nextflow"},"2":{name:"entity.name.function.nextflow"}}},{comment:"Channel factory multi-line",begin:"\\b((?:C|c)hannel)\\s*$",beginCaptures:{"1":{name:"keyword.nextflow"}},end:"(^\\s*)(?:(\\.)(fromList|fromPath|fromFilePairs|fromSRA|from|of|empty|value|watchPath)\\W)?",endCaptures:{"1":{name:"keyword.nextflow"},"2":{name:"keyword.nextflow"},"3":{name:"entity.name.function.nextflow"}}},{comment:"method call and parens",begin:"(\\w*\\()",beginCaptures:{"1":{patterns:[{include:"source.nextflow-groovy"}]}},end:"\\)",patterns:[{include:"#workflow-body"}]},{comment:"braces",begin:"{",end:"}",patterns:[{include:"#workflow-body"}]},{include:"source.nextflow-groovy#comments"},{include:"source.nextflow-groovy#support-functions"},{include:"source.nextflow-groovy#keyword"},{include:"source.nextflow-groovy#values"},{include:"source.nextflow-groovy#anonymous-classes-and-new"},{include:"source.nextflow-groovy#types"},{include:"source.nextflow-groovy#parens"},{include:"source.nextflow-groovy#closures"},{include:"source.nextflow-groovy#braces"}]},"include-statement":{patterns:[{match:"^\\b(include)\\b",name:"keyword.nextflow"},{match:"\\b(from)\\b",name:"keyword.nextflow"}]},"implicit-variables":{patterns:[{match:"(?<=[^\\.\\w]|^)(params|nextflow|workflow|launchDir|moduleDir|projectDir|workDir)\\b",name:"variable.language.nextflow"}]}}}; + +export { nextflow_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/nginx.tmLanguage-d7d0f70f.mjs b/docs/shiki/dist/languages/nginx.tmLanguage-d7d0f70f.mjs new file mode 100644 index 00000000..fbb0c05c --- /dev/null +++ b/docs/shiki/dist/languages/nginx.tmLanguage-d7d0f70f.mjs @@ -0,0 +1,3 @@ +var nginx_tmLanguage = {fileTypes:["conf.erb","conf","ngx","nginx.conf","mime.types","fastcgi_params","scgi_params","uwsgi_params"],foldingStartMarker:"\\{\\s*$",foldingStopMarker:"^\\s*\\}",keyEquivalent:"^~N",name:"nginx",patterns:[{name:"comment.line.number-sign",match:"\\#.*"},{name:"meta.context.lua.nginx",begin:"\\b((?:content|rewrite|access|init_worker|init|set|log|balancer|ssl_(?:client_hello|session_fetch|certificate))_by_lua(?:_block)?)\\s*\\{",end:"\\}",beginCaptures:{"1":{name:"storage.type.directive.context.nginx"}},contentName:"meta.embedded.block.lua",patterns:[{include:"source.lua"}]},{name:"meta.context.lua.nginx",begin:"\\b((?:content|rewrite|access|init_worker|init|set|log|balancer|ssl_(?:client_hello|session_fetch|certificate))_by_lua)\\s*'",end:"'",beginCaptures:{"1":{name:"storage.type.directive.context.nginx"}},contentName:"meta.embedded.block.lua",patterns:[{include:"source.lua"}]},{name:"meta.context.events.nginx",begin:"\\b(events) +\\{",end:"\\}",beginCaptures:{"1":{name:"storage.type.directive.context.nginx"}},patterns:[{include:"$self"}]},{name:"meta.context.http.nginx",begin:"\\b(http) +\\{",end:"\\}",beginCaptures:{"1":{name:"storage.type.directive.context.nginx"}},patterns:[{include:"$self"}]},{name:"meta.context.mail.nginx",begin:"\\b(mail) +\\{",end:"\\}",beginCaptures:{"1":{name:"storage.type.directive.context.nginx"}},patterns:[{include:"$self"}]},{name:"meta.context.stream.nginx",begin:"\\b(stream) +\\{",end:"\\}",beginCaptures:{"1":{name:"storage.type.directive.context.nginx"}},patterns:[{include:"$self"}]},{name:"meta.context.server.nginx",begin:"\\b(server) +\\{",end:"\\}",beginCaptures:{"1":{name:"storage.type.directive.context.nginx"}},patterns:[{include:"$self"}]},{name:"meta.context.location.nginx",begin:"\\b(location) +([\\^]?~[\\*]?|=) +(.*?)\\{",end:"\\}",beginCaptures:{"1":{name:"storage.type.directive.context.nginx"},"2":{name:"keyword.operator.nginx"},"3":{name:"string.regexp.nginx"}},patterns:[{include:"$self"}]},{name:"meta.context.location.nginx",begin:"\\b(location) +(.*?)\\{",end:"\\}",beginCaptures:{"1":{name:"storage.type.directive.context.nginx"},"2":{name:"entity.name.context.location.nginx"}},patterns:[{include:"$self"}]},{name:"meta.context.limit_except.nginx",begin:"\\b(limit_except) +\\{",end:"\\}",beginCaptures:{"1":{name:"storage.type.directive.context.nginx"}},patterns:[{include:"$self"}]},{name:"meta.context.if.nginx",begin:"\\b(if) +\\(",end:"\\)",beginCaptures:{"1":{name:"keyword.control.nginx"}},patterns:[{include:"#if_condition"}]},{name:"meta.context.upstream.nginx",begin:"\\b(upstream) +(.*?)\\{",end:"\\}",beginCaptures:{"1":{name:"storage.type.directive.context.nginx"},"2":{name:"entity.name.context.location.nginx"}},patterns:[{include:"$self"}]},{name:"meta.context.types.nginx",begin:"\\b(types) +\\{",end:"\\}",beginCaptures:{"1":{name:"storage.type.directive.context.nginx"}},patterns:[{include:"$self"}]},{name:"meta.context.map.nginx",begin:"\\b(map) +(\\$)([A-Za-z0-9\\_]+) +(\\$)([A-Za-z0-9\\_]+) *\\{",end:"\\}",beginCaptures:{"1":{name:"storage.type.directive.context.nginx"},"2":{name:"punctuation.definition.variable.nginx"},"3":{name:"variable.parameter.nginx"},"4":{name:"punctuation.definition.variable.nginx"},"5":{name:"variable.other.nginx"}},patterns:[{include:"#values"},{name:"punctuation.terminator.nginx",match:";"},{name:"comment.line.number-sign",match:"\\#.*"}]},{name:"meta.block.nginx",begin:"\\{",end:"\\}",patterns:[{include:"$self"}]},{begin:"\\b(return)\\b",end:";",beginCaptures:{"1":{name:"keyword.control.nginx"}},patterns:[{include:"#values"}]},{begin:"\\b(rewrite)\\s+",end:"(last|break|redirect|permanent)?(;)",beginCaptures:{"1":{name:"keyword.directive.nginx"}},endCaptures:{"1":{name:"keyword.other.nginx"},"2":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"\\b(server)\\s+",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"}},endCaptures:{"1":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#server_parameters"}]},{begin:"\\b(internal|empty_gif|f4f|flv|hls|mp4|break|status|stub_status|ip_hash|ntlm|least_conn|upstream_conf|least_conn|zone_sync)\\b",end:"(;|$)",beginCaptures:{"1":{name:"keyword.directive.nginx"}},endCaptures:{"1":{name:"punctuation.terminator.nginx"}}},{begin:"([\"'\\s]|^)(accept_)(mutex|mutex_delay)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(debug_)(connection|points)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(error_)(log|page)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(ssl_)(engine|buffer_size|certificate|certificate_key|ciphers|client_certificate|conf_command|crl|dhparam|early_data|ecdh_curve|ocsp|ocsp_cache|ocsp_responder|password_file|prefer_server_ciphers|protocols|reject_handshake|session_cache|session_ticket_key|session_tickets|session_timeout|stapling|stapling_file|stapling_responder|stapling_verify|trusted_certificate|verify_client|verify_depth|alpn|handshake_timeout|preread)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(worker_)(aio_requests|connections|cpu_affinity|priority|processes|rlimit_core|rlimit_nofile|shutdown_timeout)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(auth_)(delay|basic|basic_user_file|jwt|jwt_claim_set|jwt_header_set|jwt_key_file|jwt_key_request|jwt_leeway|jwt_type|jwt_require|request|request_set|http|http_header|http_pass_client_cert|http_timeout)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(client_)(body_buffer_size|body_in_file_only|body_in_single_buffer|body_temp_path|body_timeout|header_buffer_size|header_timeout|max_body_size)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(keepalive_)(disable|requests|time|timeout)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(limit_)(rate|rate_after|conn|conn_dry_run|conn_log_level|conn_status|conn_zone|zone|req|req_dry_run|req_log_level|req_status|req_zone)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(lingering_)(close|time|timeout)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(log_)(not_found|subrequest|format)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(max_)(ranges|errors)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(msie_)(padding|refresh)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(open_)(file_cache|file_cache_errors|file_cache_min_uses|file_cache_valid|log_file_cache)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(send_)(lowat|timeout)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(server_)(name|name_in_redirect|names_hash_bucket_size|names_hash_max_size|tokens)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(tcp_)(nodelay|nopush)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(types_)(hash_bucket_size|hash_max_size)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(variables_)(hash_bucket_size|hash_max_size)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(add_)(before_body|after_body|header|trailer)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(status_)(zone|format)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(autoindex_)(exact_size|format|localtime)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(ancient_)(browser|browser_value)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(modern_)(browser|browser_value)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(charset_)(map|types)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(dav_)(access|methods)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(fastcgi_)(bind|buffer_size|buffering|buffers|busy_buffers_size|cache|cache_background_update|cache_bypass|cache_key|cache_lock|cache_lock_age|cache_lock_timeout|cache_max_range_offset|cache_methods|cache_min_uses|cache_path|cache_purge|cache_revalidate|cache_use_stale|cache_valid|catch_stderr|connect_timeout|force_ranges|hide_header|ignore_client_abort|ignore_headers|index|intercept_errors|keep_conn|limit_rate|max_temp_file_size|next_upstream|next_upstream_timeout|next_upstream_tries|no_cache|param|pass|pass_header|pass_request_body|pass_request_headers|read_timeout|request_buffering|send_lowat|send_timeout|socket_keepalive|split_path_info|store|store_access|temp_file_write_size|temp_path)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(geoip_)(country|city|org|proxy|proxy_recursive)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(grpc_)(bind|buffer_size|connect_timeout|hide_header|ignore_headers|intercept_errors|next_upstream|next_upstream_timeout|next_upstream_tries|pass|pass_header|read_timeout|send_timeout|set_header|socket_keepalive|ssl_certificate|ssl_certificate_key|ssl_ciphers|ssl_conf_command|ssl_crl|ssl_name|ssl_password_file|ssl_protocols|ssl_server_name|ssl_session_reuse|ssl_trusted_certificate|ssl_verify|ssl_verify_depth)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(gzip_)(buffers|comp_level|disable|http_version|min_length|proxied|types|vary|static)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(hls_)(buffers|forward_args|fragment|mp4_buffer_size|mp4_max_buffer_size)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(image_)(filter|filter_buffer|filter_interlace|filter_jpeg_quality|filter_sharpen|filter_transparency|filter_webp_quality)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(map_)(hash_bucket_size|hash_max_size)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(memcached_)(bind|buffer_size|connect_timeout|force_ranges|gzip_flag|next_upstream|next_upstream_timeout|next_upstream_tries|pass|read_timeout|send_timeout|socket_keepalive)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(mp4_)(buffer_size|max_buffer_size|limit_rate|limit_rate_after)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(perl_)(modules|require|set)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(proxy_)(bind|buffer_size|buffering|buffers|busy_buffers_size|cache|cache_background_update|cache_bypass|cache_convert_head|cache_key|cache_lock|cache_lock_age|cache_lock_timeout|cache_max_range_offset|cache_methods|cache_min_uses|cache_path|cache_purge|cache_revalidate|cache_use_stale|cache_valid|connect_timeout|cookie_domain|cookie_flags|cookie_path|force_ranges|headers_hash_bucket_size|headers_hash_max_size|hide_header|http_version|ignore_client_abort|ignore_headers|intercept_errors|limit_rate|max_temp_file_size|method|next_upstream|next_upstream_timeout|next_upstream_tries|no_cache|pass|pass_header|pass_request_body|pass_request_headers|read_timeout|redirect|request_buffering|send_lowat|send_timeout|set_body|set_header|socket_keepalive|ssl_certificate|ssl_certificate_key|ssl_ciphers|ssl_conf_command|ssl_crl|ssl_name|ssl_password_file|ssl_protocols|ssl_server_name|ssl_session_reuse|ssl_trusted_certificate|ssl_verify|ssl_verify_depth|store|store_access|temp_file_write_size|temp_path|buffer|pass_error_message|protocol|smtp_auth|timeout|protocol_timeout|download_rate|half_close|requests|responses|session_drop|ssl|upload_rate)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(real_)(ip_header|ip_recursive)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(referer_)(hash_bucket_size|hash_max_size)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(scgi_)(bind|buffer_size|buffering|buffers|busy_buffers_size|cache|cache_background_update|cache_bypass|cache_key|cache_lock|cache_lock_age|cache_lock_timeout|cache_max_range_offset|cache_methods|cache_min_uses|cache_path|cache_purge|cache_revalidate|cache_use_stale|cache_valid|connect_timeout|force_ranges|hide_header|ignore_client_abort|ignore_headers|intercept_errors|limit_rate|max_temp_file_size|next_upstream|next_upstream_timeout|next_upstream_tries|no_cache|param|pass|pass_header|pass_request_body|pass_request_headers|read_timeout|request_buffering|send_timeout|socket_keepalive|store|store_access|temp_file_write_size|temp_path)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(secure_)(link|link_md5|link_secret)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(session_)(log|log_format|log_zone)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(spdy_)(chunk_size|headers_comp)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(ssi_)(last_modified|min_file_chunk|silent_errors|types|value_length)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(sub_)(filter|filter_last_modified|filter_once|filter_types)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(health_)(check|check_timeout)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(userid_)(domain|expires|flags|mark|name|p3p|path|service)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(uwsgi_)(bind|buffer_size|buffering|buffers|busy_buffers_size|cache|cache_background_update|cache_bypass|cache_key|cache_lock|cache_lock_age|cache_lock_timeout|cache_max_range_offset|cache_methods|cache_min_uses|cache_path|cache_purge|cache_revalidate|cache_use_stale|cache_valid|connect_timeout|force_ranges|hide_header|ignore_client_abort|ignore_headers|intercept_errors|limit_rate|max_temp_file_size|modifier1|modifier2|next_upstream|next_upstream_timeout|next_upstream_tries|no_cache|param|pass|pass_header|pass_request_body|pass_request_headers|read_timeout|request_buffering|send_timeout|socket_keepalive|ssl_certificate|ssl_certificate_key|ssl_ciphers|ssl_conf_command|ssl_crl|ssl_name|ssl_password_file|ssl_protocols|ssl_server_name|ssl_session_reuse|ssl_trusted_certificate|ssl_verify|ssl_verify_depth|store|store_access|temp_file_write_size|temp_path)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(http2_)(body_preread_size|chunk_size|idle_timeout|max_concurrent_pushes|max_concurrent_streams|max_field_size|max_header_size|max_requests|push|push_preload|recv_buffer_size|recv_timeout)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(xslt_)(last_modified|param|string_param|stylesheet|types)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(imap_)(auth|capabilities|client_buffer)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(pop3_)(auth|capabilities)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(smtp_)(auth|capabilities|client_buffer|greeting_delay)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(preread_)(buffer_size|timeout)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(zone_)(sync_buffers|sync_connect_retry_interval|sync_connect_timeout|sync_interval|sync_recv_buffer_size|sync_server|sync_ssl|sync_ssl_certificate|sync_ssl_certificate_key|sync_ssl_ciphers|sync_ssl_conf_command|sync_ssl_crl|sync_ssl_name|sync_ssl_password_file|sync_ssl_protocols|sync_ssl_server_name|sync_ssl_trusted_certificate|sync_ssl_verify|sync_ssl_verify_depth|sync_timeout)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(js_)(body_filter|content|fetch_ciphers|fetch_protocols|fetch_trusted_certificate|fetch_verify_depth|header_filter|import|include|path|set|var|access|filter|preread)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"},"4":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"([\"'\\s]|^)(daemon|env|include|pid|use|user|aio|alias|directio|etag|listen|resolver|root|satisfy|sendfile|allow|deny|api|autoindex|charset|geo|gunzip|gzip|expires|index|keyval|mirror|perl|set|slice|ssi|ssl|zone|state|hash|keepalive|queue|random|sticky|match|userid|protocol|timeout|xclient|starttls|load_module|lock_file|master_process|multi_accept|pcre_jit|thread_pool|timer_resolution|working_directory|absolute_redirect|aio_write|chunked_transfer_encoding|connection_pool_size|default_type|directio_alignment|disable_symlinks|if_modified_since|ignore_invalid_headers|large_client_header_buffers|merge_slashes|output_buffers|port_in_redirect|postpone_output|read_ahead|recursive_error_pages|request_pool_size|reset_timedout_connection|resolver_timeout|sendfile_max_chunk|subrequest_output_buffer_size|try_files|underscores_in_headers|addition_types|override_charset|source_charset|create_full_put_path|min_delete_depth|f4f_buffer_size|gunzip_buffers|keyval_zone|access_log|mirror_request_body|random_index|set_real_ip_from|valid_referers|rewrite_log|uninitialized_variable_warn|split_clients|least_time|sticky_cookie_insert|xml_entities|google_perftools_profiles)([\"'\\s]|$)",end:";",beginCaptures:{"1":{name:"keyword.directive.nginx"},"2":{name:"keyword.directive.nginx"},"3":{name:"keyword.directive.nginx"}},endCaptures:{"0":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"\\b([a-zA-Z0-9\\_]+)\\s+",end:"(;|$)",beginCaptures:{"1":{name:"keyword.directive.unknown.nginx"}},endCaptures:{"1":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]},{begin:"\\b([a-z]+\\/[A-Za-z0-9\\-\\.\\+]+)\\b",end:"(;)",beginCaptures:{"1":{name:"constant.other.mediatype.nginx"}},endCaptures:{"1":{name:"punctuation.terminator.nginx"}},patterns:[{include:"#values"}]}],repository:{if_condition:{patterns:[{include:"#variables"},{name:"keyword.operator.nginx",match:"\\!?\\~\\*?\\s"},{name:"keyword.operator.nginx",match:"\\!?\\-[fdex]\\s"},{name:"keyword.operator.nginx",match:"\\!?=[^=]"},{include:"#regexp_and_string"}]},server_parameters:{patterns:[{match:"(?:^|\\s)(weight|max_conn|max_fails|fail_timeout|slow_start)(=)([0-9][0-9\\.]*[bBkKmMgGtTsShHdD]?)(?:\\s|;|$)",captures:{"1":{name:"variable.parameter.nginx"},"2":{name:"keyword.operator.nginx"},"3":{name:"constant.numeric.nginx"}}},{include:"#values"}]},variables:{patterns:[{match:"(\\$)([A-Za-z0-9\\_]+)\\b",captures:{"1":{name:"punctuation.definition.variable.nginx"},"2":{name:"variable.other.nginx"}}},{match:"(\\$\\{)([A-Za-z0-9\\_]+)(\\})",captures:{"1":{name:"punctuation.definition.variable.nginx"},"2":{name:"variable.other.nginx"},"3":{name:"punctuation.definition.variable.nginx"}}}]},regexp_and_string:{patterns:[{name:"string.regexp.nginx",match:"\\^.*?\\$"},{name:"string.quoted.double.nginx",begin:"\"",end:"\"",patterns:[{name:"constant.character.escape.nginx",match:"\\\\[\"'nt\\\\]"},{include:"#variables"}]},{name:"string.quoted.single.nginx",begin:"'",end:"'",patterns:[{name:"constant.character.escape.nginx",match:"\\\\[\"'nt\\\\]"},{include:"#variables"}]}]},values:{patterns:[{include:"#variables"},{name:"comment.line.number-sign",match:"\\#.*"},{match:"[\\t ](=?[0-9][0-9\\.]*[bBkKmMgGtTsShHdD]?)(?=[\\t ;])",captures:{"1":{name:"constant.numeric.nginx"}}},{name:"constant.language.nginx",match:"[\\t ](on|off|true|false)(?=[\\t ;])"},{name:"constant.language.nginx",match:"[\\t ](kqueue|rtsig|epoll|\\/dev\\/poll|select|poll|eventport|max|all|default_server|default|main|crit|error|debug|warn|notice|last)(?=[\\t ;])"},{name:"keyword.operator.nginx",match:"\\\\.*\\ |\\~\\*|\\~|\\!\\~\\*|\\!\\~"},{include:"#regexp_and_string"}]}},scopeName:"source.nginx",uuid:"0C04066A-12D2-43CA-8238-00A12CE4C12D"}; + +export { nginx_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/nim.tmLanguage-95389e93.mjs b/docs/shiki/dist/languages/nim.tmLanguage-95389e93.mjs new file mode 100644 index 00000000..fa7f7903 --- /dev/null +++ b/docs/shiki/dist/languages/nim.tmLanguage-95389e93.mjs @@ -0,0 +1,3 @@ +var nim_tmLanguage = {fileTypes:["nim"],keyEquivalent:"^~N",name:"nim",patterns:[{begin:"[ \\t]*##\\[",contentName:"comment.block.doc-comment.content.nim",end:"\\]##",name:"comment.block.doc-comment.nim",patterns:[{include:"#multilinedoccomment",name:"comment.block.doc-comment.nested.nim"}]},{begin:"[ \\t]*#\\[",contentName:"comment.block.content.nim",end:"\\]#",name:"comment.block.nim",patterns:[{include:"#multilinecomment",name:"comment.block.nested.nim"}]},{begin:"(^[ \\t]+)?(?=##)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.nim"}},end:"(?!\\G)",patterns:[{begin:"##",beginCaptures:{"0":{name:"punctuation.definition.comment.nim"}},end:"\\n",name:"comment.line.number-sign.doc-comment.nim"}]},{begin:"(^[ \\t]+)?(?=#[^\\[])",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.nim"}},end:"(?!\\G)",patterns:[{begin:"#",beginCaptures:{"0":{name:"punctuation.definition.comment.nim"}},end:"\\n",name:"comment.line.number-sign.nim"}]},{comment:"A nim procedure or method",name:"meta.proc.nim",patterns:[{begin:"\\b(proc|method|template|macro|iterator|converter|func)\\s+\\`?([^\\:\\{\\s\\`\\*\\(]*)\\`?(\\s*\\*)?\\s*(?=\\(|\\=|:|\\[|\\n|\\{)",captures:{"1":{name:"keyword.other"},"2":{name:"entity.name.function.nim"},"3":{name:"keyword.control.export"}},end:"\\)",patterns:[{include:"source.nim"}]}]},{begin:"discard \"\"\"",comment:"A discarded triple string literal comment",end:"\"\"\"(?!\")",name:"comment.line.discarded.nim"},{include:"#float_literal"},{include:"#integer_literal"},{comment:"Operator as function name",match:"(?<=\\`)[^\\` ]+(?=\\`)",name:"entity.name.function.nim"},{captures:{"1":{name:"keyword.control.export"}},comment:"Export qualifier.",match:"\\b\\s*(\\*)(?:\\s*(?=[,:])|\\s+(?=[=]))"},{comment:"Export qualifier following a type def.",match:"\\b([A-Z]\\w+)(\\*)",captures:{"1":{name:"support.type.nim"},"2":{name:"keyword.control.export"}}},{include:"#string_literal"},{comment:"Language Constants.",match:"\\b(true|false|Inf|NegInf|NaN|nil)\\b",name:"constant.language.nim"},{comment:"Keywords that affect program control flow or scope.",match:"\\b(block|break|case|continue|do|elif|else|end|except|finally|for|if|raise|return|try|when|while|yield)\\b",name:"keyword.control.nim"},{comment:"Keyword boolean operators for expressions.",match:"(\\b(and|in|is|isnot|not|notin|or|xor)\\b)",name:"keyword.boolean.nim"},{comment:"Generic operators for expressions.",match:"(=|\\+|-|\\*|/|<|>|@|\\$|~|&|%|!|\\?|\\^|\\.|:|\\\\)+",name:"keyword.operator.nim"},{comment:"Other keywords.",match:"(\\b(addr|as|asm|atomic|bind|cast|const|converter|concept|defer|discard|distinct|div|enum|export|from|import|include|let|mod|mixin|object|of|ptr|ref|shl|shr|static|type|using|var|tuple|iterator|macro|func|method|proc|template)\\b)",name:"keyword.other.nim"},{comment:"Invalid and unused keywords.",match:"(\\b(generic|interface|lambda|out|shared)\\b)",name:"invalid.illegal.invalid-keyword.nim"},{comment:"Common functions",match:"\\b(new|await|assert|echo|defined|declared|newException|countup|countdown|high|low)\\b",name:"keyword.other.common.function.nim"},{comment:"Built-in, concrete types.",match:"\\b(((uint|int)(8|16|32|64)?)|float(32|64)?|bool|string|auto|cstring|char|byte|tobject|typedesc|stmt|expr|any|untyped|typed)\\b",name:"storage.type.concrete.nim"},{comment:"Built-in, generic types.",match:"\\b(range|array|seq|set|pointer)\\b",name:"storage.type.generic.nim"},{comment:"Special types.",match:"\\b(openarray|varargs|void)\\b",name:"storage.type.generic.nim"},{comment:"Other constants.",match:"\\b[A-Z][A-Z0-9_]+\\b",name:"support.constant.nim"},{comment:"Other types.",match:"\\b[A-Z]\\w+\\b",name:"support.type.nim"},{comment:"Function call.",match:"\\b\\w+\\b(?=(\\[([a-zA-Z0-9_,]|\\s)+\\])?\\()",name:"support.function.any-method.nim"},{comment:"Function call (no parenthesis).",match:"(?!(openarray|varargs|void|range|array|seq|set|pointer|new|await|assert|echo|defined|declared|newException|countup|countdown|high|low|((uint|int)(8|16|32|64)?)|float(32|64)?|bool|string|auto|cstring|char|byte|tobject|typedesc|stmt|expr|any|untyped|typed|addr|as|asm|atomic|bind|cast|const|converter|concept|defer|discard|distinct|div|enum|export|from|import|include|let|mod|mixin|object|of|ptr|ref|shl|shr|static|type|using|var|tuple|iterator|macro|func|method|proc|template|and|in|is|isnot|not|notin|or|xor|proc|method|template|macro|iterator|converter|func|true|false|Inf|NegInf|NaN|nil|block|break|case|continue|do|elif|else|end|except|finally|for|if|raise|return|try|when|while|yield)\\b)\\w+\\s+(?!(and|in|is|isnot|not|notin|or|xor|[^a-zA-Z0-9_\"'`(-+]+)\\b)(?=[a-zA-Z0-9_\"'`(-+])",name:"support.function.any-method.nim"},{begin:"(^\\s*)?(?=\\{\\.emit: ?\"\"\")",beginCaptures:{"0":{name:"punctuation.whitespace.embedded.leading.nim"}},end:"(?!\\G)(\\s*$\\n?)?",endCaptures:{"0":{name:"punctuation.whitespace.embedded.trailing.nim"}},patterns:[{begin:"\\{\\.(emit:) ?(\"\"\")",captures:{"1":{name:"keyword.other.nim"},"2":{name:"punctuation.section.embedded.begin.nim"}},contentName:"source.c",end:"(\")\"\"(?!\")(\\.{0,1}\\})?",endCaptures:{"0":{name:"punctuation.section.embedded.end.nim"},"1":{name:"source.c"}},name:"meta.embedded.block.c",patterns:[{begin:"\\`",end:"\\`",name:"keyword.operator.nim"},{include:"source.c"}]}]},{begin:"\\{\\.",beginCaptures:{"0":{name:"punctuation.pragma.start.nim"}},end:"\\.?\\}",endCaptures:{"0":{name:"punctuation.pragma.end.nim"}},patterns:[{begin:"\\b([[:alpha:]]\\w*)(?:\\s|\\s*:)",beginCaptures:{"1":{name:"meta.preprocessor.pragma.nim"}},end:"(?=\\.?\\}|,)",patterns:[{include:"source.nim"}]},{begin:"\\b([[:alpha:]]\\w*)\\(",beginCaptures:{"1":{name:"meta.preprocessor.pragma.nim"}},end:"\\)",patterns:[{include:"source.nim"}]},{match:"\\b([[:alpha:]]\\w*)(?=\\.?\\}|,)",captures:{"1":{name:"meta.preprocessor.pragma.nim"}}},{begin:"\\b([[:alpha:]]\\w*)(\"\"\")",beginCaptures:{"1":{name:"meta.preprocessor.pragma.nim"},"2":{name:"punctuation.definition.string.begin.nim"}},end:"\"\"\"(?!\")",endCaptures:{"0":{name:"punctuation.definition.string.end.nim"}},name:"string.quoted.triple.raw.nim"},{begin:"\\b([[:alpha:]]\\w*)(\")",beginCaptures:{"1":{name:"meta.preprocessor.pragma.nim"},"2":{name:"punctuation.definition.string.begin.nim"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.nim"}},name:"string.quoted.double.raw.nim"},{begin:"\\b(hint\\[\\w+\\]):",beginCaptures:{"1":{name:"meta.preprocessor.pragma.nim"}},end:"(?=\\.?\\}|,)",patterns:[{include:"source.nim"}]},{match:",",name:"punctuation.separator.comma.nim"}]},{begin:"(^\\s*)?(?=asm \"\"\")",beginCaptures:{"0":{name:"punctuation.whitespace.embedded.leading.nim"}},end:"(?!\\G)(\\s*$\\n?)?",endCaptures:{"0":{name:"punctuation.whitespace.embedded.trailing.nim"}},patterns:[{begin:"(asm) (\"\"\")",captures:{"1":{name:"keyword.other.nim"},"2":{name:"punctuation.section.embedded.begin.nim"}},contentName:"source.asm",end:"(\")\"\"(?!\")",endCaptures:{"0":{name:"punctuation.section.embedded.end.nim"},"1":{name:"source.asm"}},name:"meta.embedded.block.asm",patterns:[{begin:"\\`",end:"\\`",name:"keyword.operator.nim"},{include:"source.asm"}]}]},{captures:{"1":{name:"storage.type.function.nim"},"2":{name:"keyword.operator.nim"}},comment:"tmpl specifier",match:"(tmpl(i)?)(?=( (html|xml|js|css|glsl|md))?\"\"\")"},{begin:"(^\\s*)?(?=html\"\"\")",beginCaptures:{"0":{name:"punctuation.whitespace.embedded.leading.nim"}},end:"(?!\\G)(\\s*$\\n?)?",endCaptures:{"0":{name:"punctuation.whitespace.embedded.trailing.nim"}},patterns:[{begin:"(html)(\"\"\")",captures:{"1":{name:"keyword.other.nim"},"2":{name:"punctuation.section.embedded.begin.nim"}},contentName:"text.html",end:"(\")\"\"(?!\")",endCaptures:{"0":{name:"punctuation.section.embedded.end.nim"},"1":{name:"text.html"}},name:"meta.embedded.block.html",patterns:[{begin:"(?<!\\$)(\\$)\\(",captures:{"1":{name:"keyword.operator.nim"}},end:"\\)",patterns:[{include:"source.nim"}]},{begin:"(?<!\\$)(\\$)\\{",captures:{"1":{name:"keyword.operator.nim"},"2":{name:"keyword.operator.nim"}},end:"\\}",patterns:[{include:"source.nim"}]},{begin:"(?<!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )",captures:{"1":{name:"keyword.operator.nim"},"2":{name:"keyword.operator.nim"}},end:"(\\{|\\n)",endCaptures:{"1":{name:"plain"}},patterns:[{include:"source.nim"}]},{match:"(?<!\\$)(\\$\\w+)",name:"keyword.operator.nim"},{include:"text.html.basic"}]}]},{begin:"(^\\s*)?(?=xml\"\"\")",beginCaptures:{"0":{name:"punctuation.whitespace.embedded.leading.nim"}},end:"(?!\\G)(\\s*$\\n?)?",endCaptures:{"0":{name:"punctuation.whitespace.embedded.trailing.nim"}},patterns:[{begin:"(xml)(\"\"\")",captures:{"1":{name:"keyword.other.nim"},"2":{name:"punctuation.section.embedded.begin.nim"}},contentName:"text.xml",end:"(\")\"\"(?!\")",endCaptures:{"0":{name:"punctuation.section.embedded.end.nim"},"1":{name:"text.xml"}},name:"meta.embedded.block.xml",patterns:[{begin:"(?<!\\$)(\\$)\\(",captures:{"1":{name:"keyword.operator.nim"}},end:"\\)",patterns:[{include:"source.nim"}]},{begin:"(?<!\\$)(\\$)\\{",captures:{"1":{name:"keyword.operator.nim"},"2":{name:"keyword.operator.nim"}},end:"\\}",patterns:[{include:"source.nim"}]},{begin:"(?<!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )",captures:{"1":{name:"keyword.operator.nim"},"2":{name:"keyword.operator.nim"}},end:"(\\{|\\n)",endCaptures:{"1":{name:"plain"}},patterns:[{include:"source.nim"}]},{match:"(?<!\\$)(\\$\\w+)",name:"keyword.operator.nim"},{include:"text.xml"}]}]},{begin:"(^\\s*)?(?=js\"\"\")",beginCaptures:{"0":{name:"punctuation.whitespace.embedded.leading.nim"}},end:"(?!\\G)(\\s*$\\n?)?",endCaptures:{"0":{name:"punctuation.whitespace.embedded.trailing.nim"}},patterns:[{begin:"(js)(\"\"\")",captures:{"1":{name:"keyword.other.nim"},"2":{name:"punctuation.section.embedded.begin.nim"}},contentName:"source.js",end:"(\")\"\"(?!\")",endCaptures:{"0":{name:"punctuation.section.embedded.end.nim"},"1":{name:"source.js"}},name:"meta.embedded.block.js",patterns:[{begin:"(?<!\\$)(\\$)\\(",captures:{"1":{name:"keyword.operator.nim"}},end:"\\)",patterns:[{include:"source.nim"}]},{begin:"(?<!\\$)(\\$)\\{",captures:{"1":{name:"keyword.operator.nim"},"2":{name:"keyword.operator.nim"}},end:"\\}",patterns:[{include:"source.nim"}]},{begin:"(?<!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )",captures:{"1":{name:"keyword.operator.nim"},"2":{name:"keyword.operator.nim"}},end:"(\\{|\\n)",endCaptures:{"1":{name:"plain"}},patterns:[{include:"source.nim"}]},{match:"(?<!\\$)(\\$\\w+)",name:"keyword.operator.nim"},{include:"source.js"}]}]},{begin:"(^\\s*)?(?=css\"\"\")",beginCaptures:{"0":{name:"punctuation.whitespace.embedded.leading.nim"}},end:"(?!\\G)(\\s*$\\n?)?",endCaptures:{"0":{name:"punctuation.whitespace.embedded.trailing.nim"}},patterns:[{begin:"(css)(\"\"\")",captures:{"1":{name:"keyword.other.nim"},"2":{name:"punctuation.section.embedded.begin.nim"}},contentName:"source.css",end:"(\")\"\"(?!\")",endCaptures:{"0":{name:"punctuation.section.embedded.end.nim"},"1":{name:"source.css"}},name:"meta.embedded.block.css",patterns:[{begin:"(?<!\\$)(\\$)\\(",captures:{"1":{name:"keyword.operator.nim"}},end:"\\)",patterns:[{include:"source.nim"}]},{begin:"(?<!\\$)(\\$)\\{",captures:{"1":{name:"keyword.operator.nim"},"2":{name:"keyword.operator.nim"}},end:"\\}",patterns:[{include:"source.nim"}]},{begin:"(?<!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )",captures:{"1":{name:"keyword.operator.nim"},"2":{name:"keyword.operator.nim"}},end:"(\\{|\\n)",endCaptures:{"1":{name:"plain"}},patterns:[{include:"source.nim"}]},{match:"(?<!\\$)(\\$\\w+)",name:"keyword.operator.nim"},{include:"source.css"}]}]},{begin:"(^\\s*)?(?=glsl\"\"\")",beginCaptures:{"0":{name:"punctuation.whitespace.embedded.leading.nim"}},end:"(?!\\G)(\\s*$\\n?)?",endCaptures:{"0":{name:"punctuation.whitespace.embedded.trailing.nim"}},patterns:[{begin:"(glsl)(\"\"\")",captures:{"1":{name:"keyword.other.nim"},"2":{name:"punctuation.section.embedded.begin.nim"}},contentName:"source.glsl",end:"(\")\"\"(?!\")",endCaptures:{"0":{name:"punctuation.section.embedded.end.nim"},"1":{name:"source.glsl"}},name:"meta.embedded.block.glsl",patterns:[{begin:"(?<!\\$)(\\$)\\(",captures:{"1":{name:"keyword.operator.nim"}},end:"\\)",patterns:[{include:"source.nim"}]},{begin:"(?<!\\$)(\\$)\\{",captures:{"1":{name:"keyword.operator.nim"},"2":{name:"keyword.operator.nim"}},end:"\\}",patterns:[{include:"source.nim"}]},{begin:"(?<!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )",captures:{"1":{name:"keyword.operator.nim"},"2":{name:"keyword.operator.nim"}},end:"(\\{|\\n)",endCaptures:{"1":{name:"plain"}},patterns:[{include:"source.nim"}]},{match:"(?<!\\$)(\\$\\w+)",name:"keyword.operator.nim"},{include:"source.glsl"}]}]},{begin:"(^\\s*)?(?=md\"\"\")",beginCaptures:{"0":{name:"punctuation.whitespace.embedded.leading.nim"}},end:"(?!\\G)(\\s*$\\n?)?",endCaptures:{"0":{name:"punctuation.whitespace.embedded.trailing.nim"}},patterns:[{begin:"(md)(\"\"\")",captures:{"1":{name:"keyword.other.nim"},"2":{name:"punctuation.section.embedded.begin.nim"}},contentName:"text.html.markdown",end:"(\")\"\"(?!\")",endCaptures:{"0":{name:"punctuation.section.embedded.end.nim"},"1":{name:"text.html.markdown"}},name:"meta.embedded.block.html.markdown",patterns:[{begin:"(?<!\\$)(\\$)\\(",captures:{"1":{name:"keyword.operator.nim"}},end:"\\)",patterns:[{include:"source.nim"}]},{begin:"(?<!\\$)(\\$)\\{",captures:{"1":{name:"keyword.operator.nim"},"2":{name:"keyword.operator.nim"}},end:"\\}",patterns:[{include:"source.nim"}]},{begin:"(?<!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )",captures:{"1":{name:"keyword.operator.nim"},"2":{name:"keyword.operator.nim"}},end:"(\\{|\\n)",endCaptures:{"1":{name:"plain"}},patterns:[{include:"source.nim"}]},{match:"(?<!\\$)(\\$\\w+)",name:"keyword.operator.nim"},{include:"text.html.markdown"}]}]}],repository:{multilinecomment:{begin:"#\\[",end:"\\]#",patterns:[{include:"#multilinecomment"}]},multilinedoccomment:{begin:"##\\[",end:"\\]##",patterns:[{include:"#multilinedoccomment"}]},char_escapes:{patterns:[{match:"\\\\[cC]|\\\\[rR]",name:"constant.character.escape.carriagereturn.nim"},{match:"\\\\[lL]|\\\\[nN]",name:"constant.character.escape.linefeed.nim"},{match:"\\\\[fF]",name:"constant.character.escape.formfeed.nim"},{match:"\\\\[tT]",name:"constant.character.escape.tabulator.nim"},{match:"\\\\[vV]",name:"constant.character.escape.verticaltabulator.nim"},{match:"\\\\\\\"",name:"constant.character.escape.double-quote.nim"},{match:"\\\\'",name:"constant.character.escape.single-quote.nim"},{match:"\\\\[0-9]+",name:"constant.character.escape.chardecimalvalue.nim"},{match:"\\\\[aA]",name:"constant.character.escape.alert.nim"},{match:"\\\\[bB]",name:"constant.character.escape.backspace.nim"},{match:"\\\\[eE]",name:"constant.character.escape.escape.nim"},{match:"\\\\[xX]\\h\\h",name:"constant.character.escape.hex.nim"},{match:"\\\\\\\\",name:"constant.character.escape.backslash.nim"}]},string_escapes:{patterns:[{match:"\\\\[pP]",name:"constant.character.escape.newline.nim"},{match:"\\\\[uU]\\h\\h\\h\\h",name:"constant.character.escape.hex.nim"},{match:"\\\\[uU]\\{\\h+\\}",name:"constant.character.escape.hex.nim"},{include:"#char_escapes"}]},raw_string_escapes:{match:"[^\"](\"\")",captures:{"1":{name:"constant.character.escape.double-quote.nim"}}},fmt_interpolation:{begin:"\\{",beginCaptures:{"0":{name:"punctuation.definition.template-expression.begin.nim"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.template-expression.end.nim"}},patterns:[{begin:":",end:"(?=\\})",name:"meta.template.format-specifier.nim"},{include:"source.nim"}],name:"meta.template.expression.nim"},string_literal:{patterns:[{include:"#fmt_string_triple"},{include:"#fmt_string_triple_operator"},{include:"#extended_string_quoted_triple_raw"},{include:"#string_quoted_triple_raw"},{include:"#fmt_string_operator"},{include:"#fmt_string"},{include:"#fmt_string_call"},{include:"#string_quoted_double_raw"},{include:"#extended_string_quoted_double_raw"},{include:"#string_quoted_single"},{include:"#string_quoted_triple"},{include:"#string_quoted_double"}]},fmt_string:{begin:"\\b(fmt)(\")",beginCaptures:{"1":{name:"support.function.any-method.nim"},"2":{name:"punctuation.definition.string.begin.nim"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.nim"}},name:"string.quoted.double.raw.nim",patterns:[{match:"(?<!\")\"(?!\")",name:"invalid.illegal.nim"},{include:"#raw_string_escapes"},{include:"#fmt_interpolation"}]},fmt_string_triple:{begin:"\\b(fmt)(\"\"\")",beginCaptures:{"1":{name:"support.function.any-method.nim"},"2":{name:"punctuation.definition.string.begin.nim"}},end:"\"\"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.nim"}},name:"string.quoted.triple.raw.nim",patterns:[{include:"#fmt_interpolation"}]},fmt_string_operator:{begin:"(&)(\")",beginCaptures:{"1":{name:"keyword.operator.nim"},"2":{name:"punctuation.definition.string.begin.nim"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.nim"}},name:"string.quoted.double.nim",patterns:[{match:"\"",name:"invalid.illegal.nim"},{include:"#string_escapes"},{include:"#fmt_interpolation"}]},fmt_string_triple_operator:{begin:"(&)(\"\"\")",beginCaptures:{"1":{name:"keyword.operator.nim"},"2":{name:"punctuation.definition.string.begin.nim"}},end:"\"\"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.nim"}},name:"string.quoted.triple.raw.nim",patterns:[{include:"#fmt_interpolation"}]},fmt_string_call:{begin:"(fmt)\\((?=\")",beginCaptures:{"1":{name:"support.function.any-method.nim"}},end:"\\)",patterns:[{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.nim"}},end:"\"(?=\\))",endCaptures:{"0":{name:"punctuation.definition.string.end.nim"}},name:"string.quoted.double.nim",patterns:[{match:"\"",name:"invalid.illegal.nim"},{include:"#string_escapes"},{include:"#fmt_interpolation"}]}]},string_quoted_double:{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.nim"}},comment:"Double Quoted String",end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.nim"}},name:"string.quoted.double.nim",patterns:[{include:"#string_escapes"}]},string_quoted_double_raw:{begin:"\\br\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.nim"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.nim"}},name:"string.quoted.double.raw.nim",patterns:[{include:"#raw_string_escapes"}]},extended_string_quoted_double_raw:{begin:"\\b(\\w+)(\")",beginCaptures:{"1":{name:"support.function.any-method.nim"},"2":{name:"punctuation.definition.string.begin.nim"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.nim"}},name:"string.quoted.double.raw.nim",patterns:[{include:"#raw_string_escapes"}]},string_quoted_single:{begin:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.nim"}},comment:"Single quoted character literal",end:"'",endCaptures:{"0":{name:"punctuation.definition.string.end.nim"}},name:"string.quoted.single.nim",patterns:[{include:"#char_escapes"},{match:"([^']{2,}?)",name:"invalid.illegal.character.nim"}]},string_quoted_triple:{begin:"\"\"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.nim"}},comment:"Triple Quoted String",end:"\"\"\"(?!\")",endCaptures:{"0":{name:"punctuation.definition.string.end.nim"}},name:"string.quoted.triple.nim"},string_quoted_triple_raw:{begin:"r\"\"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.nim"}},comment:"Raw Triple Quoted String",end:"\"\"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.nim"}},name:"string.quoted.triple.raw.nim"},extended_string_quoted_triple_raw:{begin:"\\b(\\w+)(\"\"\")",beginCaptures:{"1":{name:"support.function.any-method.nim"},"2":{name:"punctuation.definition.string.begin.nim"}},end:"\"\"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.nim"}},name:"string.quoted.triple.raw.nim"},float_literal:{patterns:[{match:"\\b\\d[_\\d]*((\\.\\d[_\\d]*([eE][\\+\\-]?\\d[_\\d]*)?)|([eE][\\+\\-]?\\d[_\\d]*))('([fF](32|64|128)|[fFdD]))?",name:"constant.numeric.float.decimal.nim"},{match:"\\b0[xX]\\h[_\\h]*'([fF](32|64|128)|[fFdD])",name:"constant.numeric.float.hexadecimal.nim"},{match:"\\b0o[0-7][_0-7]*'([fF](32|64|128)|[fFdD])",name:"constant.numeric.float.octal.nim"},{match:"\\b0(b|B)[01][_01]*'([fF](32|64|128)|[fFdD])",name:"constant.numeric.float.binary.nim"},{match:"\\b(\\d[_\\d]*)'([fF](32|64|128)|[fFdD])",name:"constant.numeric.float.decimal.nim"}]},integer_literal:{patterns:[{match:"\\b(0[xX]\\h[_\\h]*)('(([iIuU](8|16|32|64))|[uU]))?",name:"constant.numeric.integer.hexadecimal.nim"},{match:"\\b(0o[0-7][_0-7]*)('(([iIuU](8|16|32|64))|[uU]))?",name:"constant.numeric.integer.octal.nim"},{match:"\\b(0(b|B)[01][_01]*)('(([iIuU](8|16|32|64))|[uU]))?",name:"constant.numeric.integer.binary.nim"},{match:"\\b(\\d[_\\d]*)('(([iIuU](8|16|32|64))|[uU]))?",name:"constant.numeric.integer.decimal.nim"}]}},scopeName:"source.nim",uuid:"6DD62CE8-B129-4554-BD8E-CE5DB490E5A4"}; + +export { nim_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/nix.tmLanguage-ce2318ba.mjs b/docs/shiki/dist/languages/nix.tmLanguage-ce2318ba.mjs new file mode 100644 index 00000000..813ac161 --- /dev/null +++ b/docs/shiki/dist/languages/nix.tmLanguage-ce2318ba.mjs @@ -0,0 +1,3 @@ +var nix_tmLanguage = {fileTypes:["nix"],name:"nix",patterns:[{include:"#expression"}],repository:{"attribute-bind":{patterns:[{include:"#attribute-name"},{include:"#attribute-bind-from-equals"}]},"attribute-bind-from-equals":{begin:"\\=",beginCaptures:{"0":{name:"keyword.operator.bind.nix"}},end:"\\;",endCaptures:{"0":{name:"punctuation.terminator.bind.nix"}},patterns:[{include:"#expression"}]},"attribute-inherit":{begin:"\\binherit\\b",beginCaptures:{"0":{name:"keyword.other.inherit.nix"}},end:"\\;",endCaptures:{"0":{name:"punctuation.terminator.inherit.nix"}},patterns:[{begin:"\\(",beginCaptures:{"0":{name:"punctuation.section.function.arguments.nix"}},end:"(?=\\;)",patterns:[{begin:"\\)",beginCaptures:{"0":{name:"punctuation.section.function.arguments.nix"}},end:"(?=\\;)",patterns:[{include:"#bad-reserved"},{include:"#attribute-name-single"},{include:"#others"}]},{include:"#expression"}]},{begin:"(?=[a-zA-Z\\_])",end:"(?=\\;)",patterns:[{include:"#bad-reserved"},{include:"#attribute-name-single"},{include:"#others"}]},{include:"#others"}]},"attribute-name":{patterns:[{match:"\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*",name:"entity.other.attribute-name.multipart.nix"},{match:"\\."},{include:"#string-quoted"},{include:"#interpolation"}]},"attribute-name-single":{match:"\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*",name:"entity.other.attribute-name.single.nix"},"attrset-contents":{patterns:[{include:"#attribute-inherit"},{include:"#bad-reserved"},{include:"#attribute-bind"},{include:"#others"}]},"attrset-definition":{begin:"(?=\\{)",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{begin:"(\\{)",beginCaptures:{"0":{name:"punctuation.definition.attrset.nix"}},end:"(\\})",endCaptures:{"0":{name:"punctuation.definition.attrset.nix"}},patterns:[{include:"#attrset-contents"}]},{begin:"(?<=\\})",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#expression-cont"}]}]},"attrset-definition-brace-opened":{patterns:[{begin:"(?<=\\})",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#expression-cont"}]},{begin:"(?=.?)",end:"\\}",endCaptures:{"0":{name:"punctuation.definition.attrset.nix"}},patterns:[{include:"#attrset-contents"}]}]},"attrset-for-sure":{patterns:[{begin:"(?=\\brec\\b)",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{begin:"\\brec\\b",beginCaptures:{"0":{name:"keyword.other.nix"}},end:"(?=\\{)",patterns:[{include:"#others"}]},{include:"#attrset-definition"},{include:"#others"}]},{begin:"(?=\\{\\s*(\\}|[^,?]*(=|;)))",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#attrset-definition"},{include:"#others"}]}]},"attrset-or-function":{begin:"\\{",beginCaptures:{"0":{name:"punctuation.definition.attrset-or-function.nix"}},end:"(?=([\\])};]|\\b(else|then)\\b))",patterns:[{begin:"(?=(\\s*\\}|\\\"|\\binherit\\b|\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*(\\s*\\.|\\s*=[^=])))",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#attrset-definition-brace-opened"}]},{begin:"(?=(\\.\\.\\.|\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*\\s*[,?]))",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#function-definition-brace-opened"}]},{include:"#bad-reserved"},{begin:"\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*",beginCaptures:{"0":{name:"variable.parameter.function.maybe.nix"}},end:"(?=([\\])};]|\\b(else|then)\\b))",patterns:[{begin:"(?=\\.)",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#attrset-definition-brace-opened"}]},{begin:"\\s*(\\,)",beginCaptures:{"1":{name:"keyword.operator.nix"}},end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#function-definition-brace-opened"}]},{begin:"(?=\\=)",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#attribute-bind-from-equals"},{include:"#attrset-definition-brace-opened"}]},{begin:"(?=\\?)",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#function-parameter-default"},{begin:"\\,",beginCaptures:{"0":{name:"keyword.operator.nix"}},end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#function-definition-brace-opened"}]}]},{include:"#others"}]},{include:"#others"}]},"bad-reserved":{match:"\\b(if|then|else|assert|with|let|in|rec|inherit)\\b",name:"invalid.illegal.reserved.nix"},comment:{patterns:[{begin:"/\\*([^*]|\\*[^\\/])*",end:"\\*\\/",name:"comment.block.nix",patterns:[{include:"#comment-remark"}]},{begin:"\\#",end:"$",name:"comment.line.number-sign.nix",patterns:[{include:"#comment-remark"}]}]},"comment-remark":{captures:{"1":{name:"markup.bold.comment.nix"}},match:"(TODO|FIXME|BUG|\\!\\!\\!):?"},constants:{patterns:[{begin:"\\b(builtins|true|false|null)\\b",beginCaptures:{"0":{name:"constant.language.nix"}},end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#expression-cont"}]},{begin:"\\b(scopedImport|import|isNull|abort|throw|baseNameOf|dirOf|removeAttrs|map|toString|derivationStrict|derivation)\\b",beginCaptures:{"0":{name:"support.function.nix"}},end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#expression-cont"}]},{begin:"\\b[0-9]+\\b",beginCaptures:{"0":{name:"constant.numeric.nix"}},end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#expression-cont"}]}]},expression:{patterns:[{include:"#parens-and-cont"},{include:"#list-and-cont"},{include:"#string"},{include:"#interpolation"},{include:"#with-assert"},{include:"#function-for-sure"},{include:"#attrset-for-sure"},{include:"#attrset-or-function"},{include:"#let"},{include:"#if"},{include:"#operator-unary"},{include:"#constants"},{include:"#bad-reserved"},{include:"#parameter-name-and-cont"},{include:"#others"}]},"expression-cont":{begin:"(?=.?)",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#parens"},{include:"#list"},{include:"#string"},{include:"#interpolation"},{include:"#function-for-sure"},{include:"#attrset-for-sure"},{include:"#attrset-or-function"},{match:"(\\bor\\b|\\.|==|!=|!|\\<\\=|\\<|\\>\\=|\\>|&&|\\|\\||-\\>|//|\\?|\\+\\+|-|\\*|/(?=([^*]|$))|\\+)",name:"keyword.operator.nix"},{include:"#constants"},{include:"#bad-reserved"},{include:"#parameter-name"},{include:"#others"}]},"function-body":{begin:"(@\\s*([a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*)\\s*)?(\\:)",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#expression"}]},"function-body-from-colon":{begin:"(\\:)",beginCaptures:{"0":{name:"punctuation.definition.function.nix"}},end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#expression"}]},"function-contents":{patterns:[{include:"#bad-reserved"},{include:"#function-parameter"},{include:"#others"}]},"function-definition":{begin:"(?=.?)",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#function-body-from-colon"},{begin:"(?=.?)",end:"(?=\\:)",patterns:[{begin:"(\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*)",beginCaptures:{"0":{name:"variable.parameter.function.4.nix"}},end:"(?=\\:)",patterns:[{begin:"\\@",end:"(?=\\:)",patterns:[{include:"#function-header-until-colon-no-arg"},{include:"#others"}]},{include:"#others"}]},{begin:"(?=\\{)",end:"(?=\\:)",patterns:[{include:"#function-header-until-colon-with-arg"}]}]},{include:"#others"}]},"function-definition-brace-opened":{begin:"(?=.?)",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#function-body-from-colon"},{begin:"(?=.?)",end:"(?=\\:)",patterns:[{include:"#function-header-close-brace-with-arg"},{begin:"(?=.?)",end:"(?=\\})",patterns:[{include:"#function-contents"}]}]},{include:"#others"}]},"function-for-sure":{patterns:[{begin:"(?=(\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*\\s*[:@]|\\{[^}]*\\}\\s*:|\\{[^#}\"'/=]*[,\\?]))",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#function-definition"}]}]},"function-header-close-brace-no-arg":{begin:"\\}",beginCaptures:{"0":{name:"punctuation.definition.entity.function.nix"}},end:"(?=\\:)",patterns:[{include:"#others"}]},"function-header-close-brace-with-arg":{begin:"\\}",beginCaptures:{"0":{name:"punctuation.definition.entity.function.nix"}},end:"(?=\\:)",patterns:[{include:"#function-header-terminal-arg"},{include:"#others"}]},"function-header-open-brace":{begin:"\\{",beginCaptures:{"0":{name:"punctuation.definition.entity.function.2.nix"}},end:"(?=\\})",patterns:[{include:"#function-contents"}]},"function-header-terminal-arg":{begin:"(?=@)",end:"(?=\\:)",patterns:[{begin:"\\@",end:"(?=\\:)",patterns:[{begin:"(\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*)",end:"(?=\\:)",name:"variable.parameter.function.3.nix"},{include:"#others"}]},{include:"#others"}]},"function-header-until-colon-no-arg":{begin:"(?=\\{)",end:"(?=\\:)",patterns:[{include:"#function-header-open-brace"},{include:"#function-header-close-brace-no-arg"}]},"function-header-until-colon-with-arg":{begin:"(?=\\{)",end:"(?=\\:)",patterns:[{include:"#function-header-open-brace"},{include:"#function-header-close-brace-with-arg"}]},"function-parameter":{patterns:[{begin:"(\\.\\.\\.)",end:"(,|(?=\\}))",name:"keyword.operator.nix",patterns:[{include:"#others"}]},{begin:"\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*",beginCaptures:{"0":{name:"variable.parameter.function.1.nix"}},end:"(,|(?=\\}))",endCaptures:{"0":{name:"keyword.operator.nix"}},patterns:[{include:"#whitespace"},{include:"#comment"},{include:"#function-parameter-default"},{include:"#expression"}]},{include:"#others"}]},"function-parameter-default":{begin:"\\?",beginCaptures:{"0":{name:"keyword.operator.nix"}},end:"(?=[,}])",patterns:[{include:"#expression"}]},"if":{begin:"(?=\\bif\\b)",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{begin:"\\bif\\b",beginCaptures:{"0":{name:"keyword.other.nix"}},end:"\\bth(?=en\\b)",endCaptures:{"0":{name:"keyword.other.nix"}},patterns:[{include:"#expression"}]},{begin:"(?<=th)en\\b",beginCaptures:{"0":{name:"keyword.other.nix"}},end:"\\bel(?=se\\b)",endCaptures:{"0":{name:"keyword.other.nix"}},patterns:[{include:"#expression"}]},{begin:"(?<=el)se\\b",beginCaptures:{"0":{name:"keyword.other.nix"}},end:"(?=([\\])};,]|\\b(else|then)\\b))",endCaptures:{"0":{name:"keyword.other.nix"}},patterns:[{include:"#expression"}]}]},illegal:{match:".",name:"invalid.illegal"},interpolation:{begin:"\\$\\{",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.nix"}},end:"\\}",endCaptures:{"0":{name:"punctuation.section.embedded.end.nix"}},name:"markup.italic",patterns:[{include:"#expression"}]},"let":{begin:"(?=\\blet\\b)",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{begin:"\\blet\\b",beginCaptures:{"0":{name:"keyword.other.nix"}},end:"(?=([\\])};,]|\\b(in|else|then)\\b))",patterns:[{begin:"(?=\\{)",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{begin:"\\{",end:"\\}",patterns:[{include:"#attrset-contents"}]},{begin:"(^|(?<=\\}))",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#expression-cont"}]},{include:"#others"}]},{include:"#attrset-contents"},{include:"#others"}]},{begin:"\\bin\\b",beginCaptures:{"0":{name:"keyword.other.nix"}},end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#expression"}]}]},list:{begin:"\\[",beginCaptures:{"0":{name:"punctuation.definition.list.nix"}},end:"\\]",endCaptures:{"0":{name:"punctuation.definition.list.nix"}},patterns:[{include:"#expression"}]},"list-and-cont":{begin:"(?=\\[)",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#list"},{include:"#expression-cont"}]},"operator-unary":{match:"(!|-)",name:"keyword.operator.unary.nix"},others:{patterns:[{include:"#whitespace"},{include:"#comment"},{include:"#illegal"}]},"parameter-name":{captures:{"0":{name:"variable.parameter.name.nix"}},match:"\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*"},"parameter-name-and-cont":{begin:"\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*",beginCaptures:{"0":{name:"variable.parameter.name.nix"}},end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#expression-cont"}]},parens:{begin:"\\(",beginCaptures:{"0":{name:"punctuation.definition.expression.nix"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.expression.nix"}},patterns:[{include:"#expression"}]},"parens-and-cont":{begin:"(?=\\()",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#parens"},{include:"#expression-cont"}]},string:{patterns:[{begin:"(?=\\'\\')",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{begin:"\\'\\'",beginCaptures:{"0":{name:"punctuation.definition.string.other.start.nix"}},end:"\\'\\'(?!\\$|\\'|\\\\.)",endCaptures:{"0":{name:"punctuation.definition.string.other.end.nix"}},name:"string.quoted.other.nix",patterns:[{match:"\\'\\'(\\$|\\'|\\\\.)",name:"constant.character.escape.nix"},{include:"#interpolation"}]},{include:"#expression-cont"}]},{begin:"(?=\\\")",end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#string-quoted"},{include:"#expression-cont"}]},{begin:"([a-zA-Z0-9\\.\\_\\-\\+]*(\\/[a-zA-Z0-9\\.\\_\\-\\+]+)+)",beginCaptures:{"0":{name:"string.unquoted.path.nix"}},end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#expression-cont"}]},{begin:"(\\<[a-zA-Z0-9\\.\\_\\-\\+]+(\\/[a-zA-Z0-9\\.\\_\\-\\+]+)*\\>)",beginCaptures:{"0":{name:"string.unquoted.spath.nix"}},end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#expression-cont"}]},{begin:"([a-zA-Z][a-zA-Z0-9\\+\\-\\.]*\\:[a-zA-Z0-9\\%\\/\\?\\:\\@\\&\\=\\+\\$\\,\\-\\_\\.\\!\\~\\*\\']+)",beginCaptures:{"0":{name:"string.unquoted.url.nix"}},end:"(?=([\\])};,]|\\b(else|then)\\b))",patterns:[{include:"#expression-cont"}]}]},"string-quoted":{begin:"\\\"",beginCaptures:{"0":{name:"punctuation.definition.string.double.start.nix"}},end:"\\\"",endCaptures:{"0":{name:"punctuation.definition.string.double.end.nix"}},name:"string.quoted.double.nix",patterns:[{match:"\\\\.",name:"constant.character.escape.nix"},{include:"#interpolation"}]},whitespace:{match:"\\s+"},"with-assert":{begin:"\\b(with|assert)\\b",beginCaptures:{"0":{name:"keyword.other.nix"}},end:"\\;",patterns:[{include:"#expression"}]}},scopeName:"source.nix",uuid:"0514fd5f-acb6-436d-b42c-7643e6d36c8f"}; + +export { nix_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/objective-c.tmLanguage-f57e891e.mjs b/docs/shiki/dist/languages/objective-c.tmLanguage-f57e891e.mjs new file mode 100644 index 00000000..bde37d76 --- /dev/null +++ b/docs/shiki/dist/languages/objective-c.tmLanguage-f57e891e.mjs @@ -0,0 +1,3 @@ +var objectiveC_tmLanguage = {information_for_contributors:["This file has been converted from https://github.com/jeff-hykin/better-objc-syntax/blob/master/autogenerated/objc.tmLanguage.json","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."],version:"https://github.com/jeff-hykin/better-objc-syntax/commit/119b75fb1f4d3e8726fa62588e3b935e0b719294",name:"objective-c",scopeName:"source.objc",patterns:[{include:"#anonymous_pattern_1"},{include:"#anonymous_pattern_2"},{include:"#anonymous_pattern_3"},{include:"#anonymous_pattern_4"},{include:"#anonymous_pattern_5"},{include:"#apple_foundation_functional_macros"},{include:"#anonymous_pattern_7"},{include:"#anonymous_pattern_8"},{include:"#anonymous_pattern_9"},{include:"#anonymous_pattern_10"},{include:"#anonymous_pattern_11"},{include:"#anonymous_pattern_12"},{include:"#anonymous_pattern_13"},{include:"#anonymous_pattern_14"},{include:"#anonymous_pattern_15"},{include:"#anonymous_pattern_16"},{include:"#anonymous_pattern_17"},{include:"#anonymous_pattern_18"},{include:"#anonymous_pattern_19"},{include:"#anonymous_pattern_20"},{include:"#anonymous_pattern_21"},{include:"#anonymous_pattern_22"},{include:"#anonymous_pattern_23"},{include:"#anonymous_pattern_24"},{include:"#anonymous_pattern_25"},{include:"#anonymous_pattern_26"},{include:"#anonymous_pattern_27"},{include:"#anonymous_pattern_28"},{include:"#anonymous_pattern_29"},{include:"#anonymous_pattern_30"},{include:"#bracketed_content"},{include:"#c_lang"}],repository:{anonymous_pattern_1:{begin:"((@)(interface|protocol))(?!.+;)\\s+([A-Za-z_][A-Za-z0-9_]*)\\s*((:)(?:\\s*)([A-Za-z][A-Za-z0-9]*))?(\\s|\\n)?",captures:{"1":{name:"storage.type.objc"},"2":{name:"punctuation.definition.storage.type.objc"},"4":{name:"entity.name.type.objc"},"6":{name:"punctuation.definition.entity.other.inherited-class.objc"},"7":{name:"entity.other.inherited-class.objc"},"8":{name:"meta.divider.objc"},"9":{name:"meta.inherited-class.objc"}},contentName:"meta.scope.interface.objc",end:"((@)end)\\b",name:"meta.interface-or-protocol.objc",patterns:[{include:"#interface_innards"}]},anonymous_pattern_10:{captures:{"1":{name:"punctuation.definition.keyword.objc"}},match:"(@)(defs|encode)\\b",name:"keyword.other.objc"},anonymous_pattern_11:{match:"\\bid\\b",name:"storage.type.id.objc"},anonymous_pattern_12:{match:"\\b(IBOutlet|IBAction|BOOL|SEL|id|unichar|IMP|Class|instancetype)\\b",name:"storage.type.objc"},anonymous_pattern_13:{captures:{"1":{name:"punctuation.definition.storage.type.objc"}},match:"(@)(class|protocol)\\b",name:"storage.type.objc"},anonymous_pattern_14:{begin:"((@)selector)\\s*(\\()",beginCaptures:{"1":{name:"storage.type.objc"},"2":{name:"punctuation.definition.storage.type.objc"},"3":{name:"punctuation.definition.storage.type.objc"}},contentName:"meta.selector.method-name.objc",end:"(\\))",endCaptures:{"1":{name:"punctuation.definition.storage.type.objc"}},name:"meta.selector.objc",patterns:[{captures:{"1":{name:"punctuation.separator.arguments.objc"}},match:"\\b(?:[a-zA-Z_:][\\w]*)+",name:"support.function.any-method.name-of-parameter.objc"}]},anonymous_pattern_15:{captures:{"1":{name:"punctuation.definition.storage.modifier.objc"}},match:"(@)(synchronized|public|package|private|protected)\\b",name:"storage.modifier.objc"},anonymous_pattern_16:{match:"\\b(YES|NO|Nil|nil)\\b",name:"constant.language.objc"},anonymous_pattern_17:{match:"\\bNSApp\\b",name:"support.variable.foundation.objc"},anonymous_pattern_18:{captures:{"1":{name:"punctuation.whitespace.support.function.cocoa.leopard.objc"},"2":{name:"support.function.cocoa.leopard.objc"}},match:"(\\s*)\\b(NS(Rect(ToCGRect|FromCGRect)|MakeCollectable|S(tringFromProtocol|ize(ToCGSize|FromCGSize))|Draw(NinePartImage|ThreePartImage)|P(oint(ToCGPoint|FromCGPoint)|rotocolFromString)|EventMaskFromType|Value))\\b"},anonymous_pattern_19:{captures:{"1":{name:"punctuation.whitespace.support.function.leading.cocoa.objc"},"2":{name:"support.function.cocoa.objc"}},match:"(\\s*)\\b(NS(R(ound(DownToMultipleOfPageSize|UpToMultipleOfPageSize)|un(CriticalAlertPanel(RelativeToWindow)?|InformationalAlertPanel(RelativeToWindow)?|AlertPanel(RelativeToWindow)?)|e(set(MapTable|HashTable)|c(ycleZone|t(Clip(List)?|F(ill(UsingOperation|List(UsingOperation|With(Grays|Colors(UsingOperation)?))?)?|romString))|ordAllocationEvent)|turnAddress|leaseAlertPanel|a(dPixel|l(MemoryAvailable|locateCollectable))|gisterServicesProvider)|angeFromString)|Get(SizeAndAlignment|CriticalAlertPanel|InformationalAlertPanel|UncaughtExceptionHandler|FileType(s)?|WindowServerMemory|AlertPanel)|M(i(n(X|Y)|d(X|Y))|ouseInRect|a(p(Remove|Get|Member|Insert(IfAbsent|KnownAbsent)?)|ke(R(ect|ange)|Size|Point)|x(Range|X|Y)))|B(itsPer(SampleFromDepth|PixelFromDepth)|e(stDepth|ep|gin(CriticalAlertSheet|InformationalAlertSheet|AlertSheet)))|S(ho(uldRetainWithZone|w(sServicesMenuItem|AnimationEffect))|tringFrom(R(ect|ange)|MapTable|S(ize|elector)|HashTable|Class|Point)|izeFromString|e(t(ShowsServicesMenuItem|ZoneName|UncaughtExceptionHandler|FocusRingStyle)|lectorFromString|archPathForDirectoriesInDomains)|wap(Big(ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(ToHost|LongToHost))|Short|Host(ShortTo(Big|Little)|IntTo(Big|Little)|DoubleTo(Big|Little)|FloatTo(Big|Little)|Long(To(Big|Little)|LongTo(Big|Little)))|Int|Double|Float|L(ittle(ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(ToHost|LongToHost))|ong(Long)?)))|H(ighlightRect|o(stByteOrder|meDirectory(ForUser)?)|eight|ash(Remove|Get|Insert(IfAbsent|KnownAbsent)?)|FSType(CodeFromFileType|OfFile))|N(umberOfColorComponents|ext(MapEnumeratorPair|HashEnumeratorItem))|C(o(n(tainsRect|vert(GlyphsToPackedGlyphs|Swapped(DoubleToHost|FloatToHost)|Host(DoubleToSwapped|FloatToSwapped)))|unt(MapTable|HashTable|Frames|Windows(ForContext)?)|py(M(emoryPages|apTableWithZone)|Bits|HashTableWithZone|Object)|lorSpaceFromDepth|mpare(MapTables|HashTables))|lassFromString|reate(MapTable(WithZone)?|HashTable(WithZone)?|Zone|File(namePboardType|ContentsPboardType)))|TemporaryDirectory|I(s(ControllerMarker|EmptyRect|FreedObject)|n(setRect|crementExtraRefCount|te(r(sect(sRect|ionR(ect|ange))|faceStyleForKey)|gralRect)))|Zone(Realloc|Malloc|Name|Calloc|Fr(omPointer|ee))|O(penStepRootDirectory|ffsetRect)|D(i(sableScreenUpdates|videRect)|ottedFrameRect|e(c(imal(Round|Multiply|S(tring|ubtract)|Normalize|Co(py|mpa(ct|re))|IsNotANumber|Divide|Power|Add)|rementExtraRefCountWasZero)|faultMallocZone|allocate(MemoryPages|Object))|raw(Gr(oove|ayBezel)|B(itmap|utton)|ColorTiledRects|TiledRects|DarkBezel|W(hiteBezel|indowBackground)|LightBezel))|U(serName|n(ionR(ect|ange)|registerServicesProvider)|pdateDynamicServices)|Java(Bundle(Setup|Cleanup)|Setup(VirtualMachine)?|Needs(ToLoadClasses|VirtualMachine)|ClassesF(orBundle|romPath)|ObjectNamedInPath|ProvidesClasses)|P(oint(InRect|FromString)|erformService|lanarFromDepth|ageSize)|E(n(d(MapTableEnumeration|HashTableEnumeration)|umerate(MapTable|HashTable)|ableScreenUpdates)|qual(R(ects|anges)|Sizes|Points)|raseRect|xtraRefCount)|F(ileTypeForHFSTypeCode|ullUserName|r(ee(MapTable|HashTable)|ame(Rect(WithWidth(UsingOperation)?)?|Address)))|Wi(ndowList(ForContext)?|dth)|Lo(cationInRange|g(v|PageSize)?)|A(ccessibility(R(oleDescription(ForUIElement)?|aiseBadArgumentException)|Unignored(Children(ForOnlyChild)?|Descendant|Ancestor)|PostNotification|ActionDescription)|pplication(Main|Load)|vailableWindowDepths|ll(MapTable(Values|Keys)|HashTableObjects|ocate(MemoryPages|Collectable|Object)))))\\b"},anonymous_pattern_2:{begin:"((@)(implementation))\\s+([A-Za-z_][A-Za-z0-9_]*)\\s*(?::\\s*([A-Za-z][A-Za-z0-9]*))?",captures:{"1":{name:"storage.type.objc"},"2":{name:"punctuation.definition.storage.type.objc"},"4":{name:"entity.name.type.objc"},"5":{name:"entity.other.inherited-class.objc"}},contentName:"meta.scope.implementation.objc",end:"((@)end)\\b",name:"meta.implementation.objc",patterns:[{include:"#implementation_innards"}]},anonymous_pattern_20:{match:"\\bNS(RuleEditor|G(arbageCollector|radient)|MapTable|HashTable|Co(ndition|llectionView(Item)?)|T(oolbarItemGroup|extInputClient|r(eeNode|ackingArea))|InvocationOperation|Operation(Queue)?|D(ictionaryController|ockTile)|P(ointer(Functions|Array)|athC(o(ntrol(Delegate)?|mponentCell)|ell(Delegate)?)|r(intPanelAccessorizing|edicateEditor(RowTemplate)?))|ViewController|FastEnumeration|Animat(ionContext|ablePropertyContainer))\\b",name:"support.class.cocoa.leopard.objc"},anonymous_pattern_21:{match:"\\bNS(R(u(nLoop|ler(Marker|View))|e(sponder|cursiveLock|lativeSpecifier)|an(domSpecifier|geSpecifier))|G(etCommand|lyph(Generator|Storage|Info)|raphicsContext)|XML(Node|D(ocument|TD(Node)?)|Parser|Element)|M(iddleSpecifier|ov(ie(View)?|eCommand)|utable(S(tring|et)|C(haracterSet|opying)|IndexSet|D(ictionary|ata)|URLRequest|ParagraphStyle|A(ttributedString|rray))|e(ssagePort(NameServer)?|nu(Item(Cell)?|View)?|t(hodSignature|adata(Item|Query(ResultGroup|AttributeValueTuple)?)))|a(ch(BootstrapServer|Port)|trix))|B(itmapImageRep|ox|u(ndle|tton(Cell)?)|ezierPath|rowser(Cell)?)|S(hadow|c(anner|r(ipt(SuiteRegistry|C(o(ercionHandler|mmand(Description)?)|lassDescription)|ObjectSpecifier|ExecutionContext|WhoseTest)|oll(er|View)|een))|t(epper(Cell)?|atus(Bar|Item)|r(ing|eam))|imple(HorizontalTypesetter|CString)|o(cketPort(NameServer)?|und|rtDescriptor)|p(e(cifierTest|ech(Recognizer|Synthesizer)|ll(Server|Checker))|litView)|e(cureTextField(Cell)?|t(Command)?|archField(Cell)?|rializer|gmentedC(ontrol|ell))|lider(Cell)?|avePanel)|H(ost|TTP(Cookie(Storage)?|URLResponse)|elpManager)|N(ib(Con(nector|trolConnector)|OutletConnector)?|otification(Center|Queue)?|u(ll|mber(Formatter)?)|etService(Browser)?|ameSpecifier)|C(ha(ngeSpelling|racterSet)|o(n(stantString|nection|trol(ler)?|ditionLock)|d(ing|er)|unt(Command|edSet)|pying|lor(Space|P(ick(ing(Custom|Default)|er)|anel)|Well|List)?|m(p(oundPredicate|arisonPredicate)|boBox(Cell)?))|u(stomImageRep|rsor)|IImageRep|ell|l(ipView|o(seCommand|neCommand)|assDescription)|a(ched(ImageRep|URLResponse)|lendar(Date)?)|reateCommand)|T(hread|ypesetter|ime(Zone|r)|o(olbar(Item(Validations)?)?|kenField(Cell)?)|ext(Block|Storage|Container|Tab(le(Block)?)?|Input|View|Field(Cell)?|List|Attachment(Cell)?)?|a(sk|b(le(Header(Cell|View)|Column|View)|View(Item)?))|reeController)|I(n(dex(S(pecifier|et)|Path)|put(Manager|S(tream|erv(iceProvider|er(MouseTracker)?)))|vocation)|gnoreMisspelledWords|mage(Rep|Cell|View)?)|O(ut(putStream|lineView)|pen(GL(Context|Pixel(Buffer|Format)|View)|Panel)|bj(CTypeSerializationCallBack|ect(Controller)?))|D(i(st(antObject(Request)?|ributed(NotificationCenter|Lock))|ctionary|rectoryEnumerator)|ocument(Controller)?|e(serializer|cimalNumber(Behaviors|Handler)?|leteCommand)|at(e(Components|Picker(Cell)?|Formatter)?|a)|ra(wer|ggingInfo))|U(ser(InterfaceValidations|Defaults(Controller)?)|RL(Re(sponse|quest)|Handle(Client)?|C(onnection|ache|redential(Storage)?)|Download(Delegate)?|Prot(ocol(Client)?|ectionSpace)|AuthenticationChallenge(Sender)?)?|n(iqueIDSpecifier|doManager|archiver))|P(ipe|o(sitionalSpecifier|pUpButton(Cell)?|rt(Message|NameServer|Coder)?)|ICTImageRep|ersistentDocument|DFImageRep|a(steboard|nel|ragraphStyle|geLayout)|r(int(Info|er|Operation|Panel)|o(cessInfo|tocolChecker|perty(Specifier|ListSerialization)|gressIndicator|xy)|edicate))|E(numerator|vent|PSImageRep|rror|x(ception|istsCommand|pression))|V(iew(Animation)?|al(idated(ToobarItem|UserInterfaceItem)|ue(Transformer)?))|Keyed(Unarchiver|Archiver)|Qui(ckDrawView|tCommand)|F(ile(Manager|Handle|Wrapper)|o(nt(Manager|Descriptor|Panel)?|rm(Cell|atter)))|W(hoseSpecifier|indow(Controller)?|orkspace)|L(o(c(k(ing)?|ale)|gicalTest)|evelIndicator(Cell)?|ayoutManager)|A(ssertionHandler|nimation|ctionCell|ttributedString|utoreleasePool|TSTypesetter|ppl(ication|e(Script|Event(Manager|Descriptor)))|ffineTransform|lert|r(chiver|ray(Controller)?)))\\b",name:"support.class.cocoa.objc"},anonymous_pattern_22:{match:"\\bNS(R(oundingMode|ule(Editor(RowType|NestingMode)|rOrientation)|e(questUserAttentionType|lativePosition))|G(lyphInscription|radientDrawingOptions)|XML(NodeKind|D(ocumentContentKind|TDNodeKind)|ParserError)|M(ultibyteGlyphPacking|apTableOptions)|B(itmapFormat|oxType|ezierPathElement|ackgroundStyle|rowserDropOperation)|S(tr(ing(CompareOptions|DrawingOptions|EncodingConversionOptions)|eam(Status|Event))|p(eechBoundary|litViewDividerStyle)|e(archPathD(irectory|omainMask)|gmentS(tyle|witchTracking))|liderType|aveOptions)|H(TTPCookieAcceptPolicy|ashTableOptions)|N(otification(SuspensionBehavior|Coalescing)|umberFormatter(RoundingMode|Behavior|Style|PadPosition)|etService(sError|Options))|C(haracterCollection|o(lor(RenderingIntent|SpaceModel|PanelMode)|mp(oundPredicateType|arisonPredicateModifier))|ellStateValue|al(culationError|endarUnit))|T(ypesetterControlCharacterAction|imeZoneNameStyle|e(stComparisonOperation|xt(Block(Dimension|V(erticalAlignment|alueType)|Layer)|TableLayoutAlgorithm|FieldBezelStyle))|ableView(SelectionHighlightStyle|ColumnAutoresizingStyle)|rackingAreaOptions)|I(n(sertionPosition|te(rfaceStyle|ger))|mage(RepLoadStatus|Scaling|CacheMode|FrameStyle|LoadStatus|Alignment))|Ope(nGLPixelFormatAttribute|rationQueuePriority)|Date(Picker(Mode|Style)|Formatter(Behavior|Style))|U(RL(RequestCachePolicy|HandleStatus|C(acheStoragePolicy|redentialPersistence))|Integer)|P(o(stingStyle|int(ingDeviceType|erFunctionsOptions)|pUpArrowPosition)|athStyle|r(int(ing(Orientation|PaginationMode)|erTableStatus|PanelOptions)|opertyList(MutabilityOptions|Format)|edicateOperatorType))|ExpressionType|KeyValue(SetMutationKind|Change)|QTMovieLoopMode|F(indPanel(SubstringMatchType|Action)|o(nt(RenderingMode|FamilyClass)|cusRingPlacement))|W(hoseSubelementIdentifier|ind(ingRule|ow(B(utton|ackingLocation)|SharingType|CollectionBehavior)))|L(ine(MovementDirection|SweepDirection|CapStyle|JoinStyle)|evelIndicatorStyle)|Animation(BlockingMode|Curve))\\b",name:"support.type.cocoa.leopard.objc"},anonymous_pattern_23:{match:"\\bC(I(Sampler|Co(ntext|lor)|Image(Accumulator)?|PlugIn(Registration)?|Vector|Kernel|Filter(Generator|Shape)?)|A(Renderer|MediaTiming(Function)?|BasicAnimation|ScrollLayer|Constraint(LayoutManager)?|T(iledLayer|extLayer|rans(ition|action))|OpenGLLayer|PropertyAnimation|KeyframeAnimation|Layer|A(nimation(Group)?|ction)))\\b",name:"support.class.quartz.objc"},anonymous_pattern_24:{match:"\\bC(G(Float|Point|Size|Rect)|IFormat|AConstraintAttribute)\\b",name:"support.type.quartz.objc"},anonymous_pattern_25:{match:"\\bNS(R(ect(Edge)?|ange)|G(lyph(Relation|LayoutMode)?|radientType)|M(odalSession|a(trixMode|p(Table|Enumerator)))|B(itmapImageFileType|orderType|uttonType|ezelStyle|ackingStoreType|rowserColumnResizingType)|S(cr(oll(er(Part|Arrow)|ArrowPosition)|eenAuxiliaryOpaque)|tringEncoding|ize|ocketNativeHandle|election(Granularity|Direction|Affinity)|wapped(Double|Float)|aveOperationType)|Ha(sh(Table|Enumerator)|ndler(2)?)|C(o(ntrol(Size|Tint)|mp(ositingOperation|arisonResult))|ell(State|Type|ImagePosition|Attribute))|T(hreadPrivate|ypesetterGlyphInfo|i(ckMarkPosition|tlePosition|meInterval)|o(ol(TipTag|bar(SizeMode|DisplayMode))|kenStyle)|IFFCompression|ext(TabType|Alignment)|ab(State|leViewDropOperation|ViewType)|rackingRectTag)|ImageInterpolation|Zone|OpenGL(ContextAuxiliary|PixelFormatAuxiliary)|D(ocumentChangeType|atePickerElementFlags|ra(werState|gOperation))|UsableScrollerParts|P(oint|r(intingPageOrder|ogressIndicator(Style|Th(ickness|readInfo))))|EventType|KeyValueObservingOptions|Fo(nt(SymbolicTraits|TraitMask|Action)|cusRingType)|W(indow(OrderingMode|Depth)|orkspace(IconCreationOptions|LaunchOptions)|ritingDirection)|L(ineBreakMode|ayout(Status|Direction))|A(nimation(Progress|Effect)|ppl(ication(TerminateReply|DelegateReply|PrintReply)|eEventManagerSuspensionID)|ffineTransformStruct|lertStyle))\\b",name:"support.type.cocoa.objc"},anonymous_pattern_26:{match:"\\bNS(NotFound|Ordered(Ascending|Descending|Same))\\b",name:"support.constant.cocoa.objc"},anonymous_pattern_27:{match:"\\bNS(MenuDidBeginTracking|ViewDidUpdateTrackingAreas)?Notification\\b",name:"support.constant.notification.cocoa.leopard.objc"},anonymous_pattern_28:{match:"\\bNS(Menu(Did(RemoveItem|SendAction|ChangeItem|EndTracking|AddItem)|WillSendAction)|S(ystemColorsDidChange|plitView(DidResizeSubviews|WillResizeSubviews))|C(o(nt(extHelpModeDid(Deactivate|Activate)|rolT(intDidChange|extDid(BeginEditing|Change|EndEditing)))|lor(PanelColorDidChange|ListDidChange)|mboBox(Selection(IsChanging|DidChange)|Will(Dismiss|PopUp)))|lassDescriptionNeededForClass)|T(oolbar(DidRemoveItem|WillAddItem)|ext(Storage(DidProcessEditing|WillProcessEditing)|Did(BeginEditing|Change|EndEditing)|View(DidChange(Selection|TypingAttributes)|WillChangeNotifyingTextView))|ableView(Selection(IsChanging|DidChange)|ColumnDid(Resize|Move)))|ImageRepRegistryDidChange|OutlineView(Selection(IsChanging|DidChange)|ColumnDid(Resize|Move)|Item(Did(Collapse|Expand)|Will(Collapse|Expand)))|Drawer(Did(Close|Open)|Will(Close|Open))|PopUpButton(CellWillPopUp|WillPopUp)|View(GlobalFrameDidChange|BoundsDidChange|F(ocusDidChange|rameDidChange))|FontSetChanged|W(indow(Did(Resi(ze|gn(Main|Key))|M(iniaturize|ove)|Become(Main|Key)|ChangeScreen(|Profile)|Deminiaturize|Update|E(ndSheet|xpose))|Will(M(iniaturize|ove)|BeginSheet|Close))|orkspace(SessionDid(ResignActive|BecomeActive)|Did(Mount|TerminateApplication|Unmount|PerformFileOperation|Wake|LaunchApplication)|Will(Sleep|Unmount|PowerOff|LaunchApplication)))|A(ntialiasThresholdChanged|ppl(ication(Did(ResignActive|BecomeActive|Hide|ChangeScreenParameters|U(nhide|pdate)|FinishLaunching)|Will(ResignActive|BecomeActive|Hide|Terminate|U(nhide|pdate)|FinishLaunching))|eEventManagerWillProcessFirstEvent)))Notification\\b",name:"support.constant.notification.cocoa.objc"},anonymous_pattern_29:{match:"\\bNS(RuleEditor(RowType(Simple|Compound)|NestingMode(Si(ngle|mple)|Compound|List))|GradientDraws(BeforeStartingLocation|AfterEndingLocation)|M(inusSetExpressionType|a(chPortDeallocate(ReceiveRight|SendRight|None)|pTable(StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality)))|B(oxCustom|undleExecutableArchitecture(X86|I386|PPC(64)?)|etweenPredicateOperatorType|ackgroundStyle(Raised|Dark|L(ight|owered)))|S(tring(DrawingTruncatesLastVisibleLine|EncodingConversion(ExternalRepresentation|AllowLossy))|ubqueryExpressionType|p(e(ech(SentenceBoundary|ImmediateBoundary|WordBoundary)|llingState(GrammarFlag|SpellingFlag))|litViewDividerStyleThi(n|ck))|e(rvice(RequestTimedOutError|M(iscellaneousError|alformedServiceDictionaryError)|InvalidPasteboardDataError|ErrorM(inimum|aximum)|Application(NotFoundError|LaunchFailedError))|gmentStyle(Round(Rect|ed)|SmallSquare|Capsule|Textured(Rounded|Square)|Automatic)))|H(UDWindowMask|ashTable(StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality))|N(oModeColorPanel|etServiceNoAutoRename)|C(hangeRedone|o(ntainsPredicateOperatorType|l(orRenderingIntent(RelativeColorimetric|Saturation|Default|Perceptual|AbsoluteColorimetric)|lectorDisabledOption))|ellHit(None|ContentArea|TrackableArea|EditableTextArea))|T(imeZoneNameStyle(S(hort(Standard|DaylightSaving)|tandard)|DaylightSaving)|extFieldDatePickerStyle|ableViewSelectionHighlightStyle(Regular|SourceList)|racking(Mouse(Moved|EnteredAndExited)|CursorUpdate|InVisibleRect|EnabledDuringMouseDrag|A(ssumeInside|ctive(In(KeyWindow|ActiveApp)|WhenFirstResponder|Always))))|I(n(tersectSetExpressionType|dexedColorSpaceModel)|mageScale(None|Proportionally(Down|UpOrDown)|AxesIndependently))|Ope(nGLPFAAllowOfflineRenderers|rationQueue(DefaultMaxConcurrentOperationCount|Priority(High|Normal|Very(High|Low)|Low)))|D(iacriticInsensitiveSearch|ownloadsDirectory)|U(nionSetExpressionType|TF(16(BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)|32(BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)))|P(ointerFunctions(Ma(chVirtualMemory|llocMemory)|Str(ongMemory|uctPersonality)|C(StringPersonality|opyIn)|IntegerPersonality|ZeroingWeakMemory|O(paque(Memory|Personality)|bjectP(ointerPersonality|ersonality)))|at(hStyle(Standard|NavigationBar|PopUp)|ternColorSpaceModel)|rintPanelShows(Scaling|Copies|Orientation|P(a(perSize|ge(Range|SetupAccessory))|review)))|Executable(RuntimeMismatchError|NotLoadableError|ErrorM(inimum|aximum)|L(inkError|oadError)|ArchitectureMismatchError)|KeyValueObservingOption(Initial|Prior)|F(i(ndPanelSubstringMatchType(StartsWith|Contains|EndsWith|FullWord)|leRead(TooLargeError|UnknownStringEncodingError))|orcedOrderingSearch)|Wi(ndow(BackingLocation(MainMemory|Default|VideoMemory)|Sharing(Read(Only|Write)|None)|CollectionBehavior(MoveToActiveSpace|CanJoinAllSpaces|Default))|dthInsensitiveSearch)|AggregateExpressionType)\\b",name:"support.constant.cocoa.leopard.objc"},anonymous_pattern_3:{begin:"@\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.objc"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.objc"}},name:"string.quoted.double.objc",patterns:[{include:"#string_escaped_char"},{match:"(?x)%\n\t\t\t\t\t\t(\\d+\\$)? # field (argument #)\n\t\t\t\t\t\t[#0\\- +']* # flags\n\t\t\t\t\t\t((-?\\d+)|\\*(-?\\d+\\$)?)? # minimum field width\n\t\t\t\t\t\t(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)? # precision\n\t\t\t\t\t\t[@] # conversion type\n\t\t\t\t\t",name:"constant.other.placeholder.objc"},{include:"#string_placeholder"}]},anonymous_pattern_30:{match:"\\bNS(R(GB(ModeColorPanel|ColorSpaceModel)|ight(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|T(ext(Movement|Alignment)|ab(sBezelBorder|StopType))|ArrowFunctionKey)|ound(RectBezelStyle|Bankers|ed(BezelStyle|TokenStyle|DisclosureBezelStyle)|Down|Up|Plain|Line(CapStyle|JoinStyle))|un(StoppedResponse|ContinuesResponse|AbortedResponse)|e(s(izableWindowMask|et(CursorRectsRunLoopOrdering|FunctionKey))|ce(ssedBezelStyle|iver(sCantHandleCommandScriptError|EvaluationScriptError))|turnTextMovement|doFunctionKey|quiredArgumentsMissingScriptError|l(evancyLevelIndicatorStyle|ative(Before|After))|gular(SquareBezelStyle|ControlSize)|moveTraitFontAction)|a(n(domSubelement|geDateMode)|tingLevelIndicatorStyle|dio(ModeMatrix|Button)))|G(IFFileType|lyph(Below|Inscribe(B(elow|ase)|Over(strike|Below)|Above)|Layout(WithPrevious|A(tAPoint|gainstAPoint))|A(ttribute(BidiLevel|Soft|Inscribe|Elastic)|bove))|r(ooveBorder|eaterThan(Comparison|OrEqualTo(Comparison|PredicateOperatorType)|PredicateOperatorType)|a(y(ModeColorPanel|ColorSpaceModel)|dient(None|Con(cave(Strong|Weak)|vex(Strong|Weak)))|phiteControlTint)))|XML(N(o(tationDeclarationKind|de(CompactEmptyElement|IsCDATA|OptionsNone|Use(SingleQuotes|DoubleQuotes)|Pre(serve(NamespaceOrder|C(haracterReferences|DATA)|DTD|Prefixes|E(ntities|mptyElements)|Quotes|Whitespace|A(ttributeOrder|ll))|ttyPrint)|ExpandEmptyElement))|amespaceKind)|CommentKind|TextKind|InvalidKind|D(ocument(X(MLKind|HTMLKind|Include)|HTMLKind|T(idy(XML|HTML)|extKind)|IncludeContentTypeDeclaration|Validate|Kind)|TDKind)|P(arser(GTRequiredError|XMLDeclNot(StartedError|FinishedError)|Mi(splaced(XMLDeclarationError|CDATAEndStringError)|xedContentDeclNot(StartedError|FinishedError))|S(t(andaloneValueError|ringNot(StartedError|ClosedError))|paceRequiredError|eparatorRequiredError)|N(MTOKENRequiredError|o(t(ationNot(StartedError|FinishedError)|WellBalancedError)|DTDError)|amespaceDeclarationError|AMERequiredError)|C(haracterRef(In(DTDError|PrologError|EpilogError)|AtEOFError)|o(nditionalSectionNot(StartedError|FinishedError)|mment(NotFinishedError|ContainsDoubleHyphenError))|DATANotFinishedError)|TagNameMismatchError|In(ternalError|valid(HexCharacterRefError|C(haracter(RefError|InEntityError|Error)|onditionalSectionError)|DecimalCharacterRefError|URIError|Encoding(NameError|Error)))|OutOfMemoryError|D(ocumentStartError|elegateAbortedParseError|OCTYPEDeclNotFinishedError)|U(RI(RequiredError|FragmentError)|n(declaredEntityError|parsedEntityError|knownEncodingError|finishedTagError))|P(CDATARequiredError|ublicIdentifierRequiredError|arsedEntityRef(MissingSemiError|NoNameError|In(Internal(SubsetError|Error)|PrologError|EpilogError)|AtEOFError)|r(ocessingInstructionNot(StartedError|FinishedError)|ematureDocumentEndError))|E(n(codingNotSupportedError|tity(Ref(In(DTDError|PrologError|EpilogError)|erence(MissingSemiError|WithoutNameError)|LoopError|AtEOFError)|BoundaryError|Not(StartedError|FinishedError)|Is(ParameterError|ExternalError)|ValueRequiredError))|qualExpectedError|lementContentDeclNot(StartedError|FinishedError)|xt(ernalS(tandaloneEntityError|ubsetNotFinishedError)|raContentError)|mptyDocumentError)|L(iteralNot(StartedError|FinishedError)|T(RequiredError|SlashRequiredError)|essThanSymbolInAttributeError)|Attribute(RedefinedError|HasNoValueError|Not(StartedError|FinishedError)|ListNot(StartedError|FinishedError)))|rocessingInstructionKind)|E(ntity(GeneralKind|DeclarationKind|UnparsedKind|P(ar(sedKind|ameterKind)|redefined))|lement(Declaration(MixedKind|UndefinedKind|E(lementKind|mptyKind)|Kind|AnyKind)|Kind))|Attribute(N(MToken(sKind|Kind)|otationKind)|CDATAKind|ID(Ref(sKind|Kind)|Kind)|DeclarationKind|En(tit(yKind|iesKind)|umerationKind)|Kind))|M(i(n(XEdge|iaturizableWindowMask|YEdge|uteCalendarUnit)|terLineJoinStyle|ddleSubelement|xedState)|o(nthCalendarUnit|deSwitchFunctionKey|use(Moved(Mask)?|E(ntered(Mask)?|ventSubtype|xited(Mask)?))|veToBezierPathElement|mentary(ChangeButton|Push(Button|InButton)|Light(Button)?))|enuFunctionKey|a(c(intoshInterfaceStyle|OSRomanStringEncoding)|tchesPredicateOperatorType|ppedRead|x(XEdge|YEdge))|ACHOperatingSystem)|B(MPFileType|o(ttomTabsBezelBorder|ldFontMask|rderlessWindowMask|x(Se(condary|parator)|OldStyle|Primary))|uttLineCapStyle|e(zelBorder|velLineJoinStyle|low(Bottom|Top)|gin(sWith(Comparison|PredicateOperatorType)|FunctionKey))|lueControlTint|ack(spaceCharacter|tabTextMovement|ingStore(Retained|Buffered|Nonretained)|TabCharacter|wardsSearch|groundTab)|r(owser(NoColumnResizing|UserColumnResizing|AutoColumnResizing)|eakFunctionKey))|S(h(ift(JISStringEncoding|KeyMask)|ow(ControlGlyphs|InvisibleGlyphs)|adowlessSquareBezelStyle)|y(s(ReqFunctionKey|tem(D(omainMask|efined(Mask)?)|FunctionKey))|mbolStringEncoding)|c(a(nnedOption|le(None|ToFit|Proportionally))|r(oll(er(NoPart|Increment(Page|Line|Arrow)|Decrement(Page|Line|Arrow)|Knob(Slot)?|Arrows(M(inEnd|axEnd)|None|DefaultSetting))|Wheel(Mask)?|LockFunctionKey)|eenChangedEventType))|t(opFunctionKey|r(ingDrawing(OneShot|DisableScreenFontSubstitution|Uses(DeviceMetrics|FontLeading|LineFragmentOrigin))|eam(Status(Reading|NotOpen|Closed|Open(ing)?|Error|Writing|AtEnd)|Event(Has(BytesAvailable|SpaceAvailable)|None|OpenCompleted|E(ndEncountered|rrorOccurred)))))|i(ngle(DateMode|UnderlineStyle)|ze(DownFontAction|UpFontAction))|olarisOperatingSystem|unOSOperatingSystem|pecialPageOrder|e(condCalendarUnit|lect(By(Character|Paragraph|Word)|i(ng(Next|Previous)|onAffinity(Downstream|Upstream))|edTab|FunctionKey)|gmentSwitchTracking(Momentary|Select(One|Any)))|quareLineCapStyle|witchButton|ave(ToOperation|Op(tions(Yes|No|Ask)|eration)|AsOperation)|mall(SquareBezelStyle|C(ontrolSize|apsFontMask)|IconButtonBezelStyle))|H(ighlightModeMatrix|SBModeColorPanel|o(ur(Minute(SecondDatePickerElementFlag|DatePickerElementFlag)|CalendarUnit)|rizontalRuler|meFunctionKey)|TTPCookieAcceptPolicy(Never|OnlyFromMainDocumentDomain|Always)|e(lp(ButtonBezelStyle|KeyMask|FunctionKey)|avierFontAction)|PUXOperatingSystem)|Year(MonthDa(yDatePickerElementFlag|tePickerElementFlag)|CalendarUnit)|N(o(n(StandardCharacterSetFontMask|ZeroWindingRule|activatingPanelMask|LossyASCIIStringEncoding)|Border|t(ification(SuspensionBehavior(Hold|Coalesce|D(eliverImmediately|rop))|NoCoalescing|CoalescingOn(Sender|Name)|DeliverImmediately|PostToAllSessions)|PredicateType|EqualToPredicateOperatorType)|S(cr(iptError|ollerParts)|ubelement|pecifierError)|CellMask|T(itle|opLevelContainersSpecifierError|abs(BezelBorder|NoBorder|LineBorder))|I(nterfaceStyle|mage)|UnderlineStyle|FontChangeAction)|u(ll(Glyph|CellType)|m(eric(Search|PadKeyMask)|berFormatter(Round(Half(Down|Up|Even)|Ceiling|Down|Up|Floor)|Behavior(10|Default)|S(cientificStyle|pellOutStyle)|NoStyle|CurrencyStyle|DecimalStyle|P(ercentStyle|ad(Before(Suffix|Prefix)|After(Suffix|Prefix))))))|e(t(Services(BadArgumentError|NotFoundError|C(ollisionError|ancelledError)|TimeoutError|InvalidError|UnknownError|ActivityInProgress)|workDomainMask)|wlineCharacter|xt(StepInterfaceStyle|FunctionKey))|EXTSTEPStringEncoding|a(t(iveShortGlyphPacking|uralTextAlignment)|rrowFontMask))|C(hange(ReadOtherContents|GrayCell(Mask)?|BackgroundCell(Mask)?|Cleared|Done|Undone|Autosaved)|MYK(ModeColorPanel|ColorSpaceModel)|ircular(BezelStyle|Slider)|o(n(stantValueExpressionType|t(inuousCapacityLevelIndicatorStyle|entsCellMask|ain(sComparison|erSpecifierError)|rol(Glyph|KeyMask))|densedFontMask)|lor(Panel(RGBModeMask|GrayModeMask|HSBModeMask|C(MYKModeMask|olorListModeMask|ustomPaletteModeMask|rayonModeMask)|WheelModeMask|AllModesMask)|ListModeColorPanel)|reServiceDirectory|m(p(osite(XOR|Source(In|O(ut|ver)|Atop)|Highlight|C(opy|lear)|Destination(In|O(ut|ver)|Atop)|Plus(Darker|Lighter))|ressedFontMask)|mandKeyMask))|u(stom(SelectorPredicateOperatorType|PaletteModeColorPanel)|r(sor(Update(Mask)?|PointingDevice)|veToBezierPathElement))|e(nterT(extAlignment|abStopType)|ll(State|H(ighlighted|as(Image(Horizontal|OnLeftOrBottom)|OverlappingImage))|ChangesContents|Is(Bordered|InsetButton)|Disabled|Editable|LightsBy(Gray|Background|Contents)|AllowsMixedState))|l(ipPagination|o(s(ePathBezierPathElement|ableWindowMask)|ckAndCalendarDatePickerStyle)|ear(ControlTint|DisplayFunctionKey|LineFunctionKey))|a(seInsensitive(Search|PredicateOption)|n(notCreateScriptCommandError|cel(Button|TextMovement))|chesDirectory|lculation(NoError|Overflow|DivideByZero|Underflow|LossOfPrecision)|rriageReturnCharacter)|r(itical(Request|AlertStyle)|ayonModeColorPanel))|T(hick(SquareBezelStyle|erSquareBezelStyle)|ypesetter(Behavior|HorizontalTabAction|ContainerBreakAction|ZeroAdvancementAction|OriginalBehavior|ParagraphBreakAction|WhitespaceAction|L(ineBreakAction|atestBehavior))|i(ckMark(Right|Below|Left|Above)|tledWindowMask|meZoneDatePickerElementFlag)|o(olbarItemVisibilityPriority(Standard|High|User|Low)|pTabsBezelBorder|ggleButton)|IFF(Compression(N(one|EXT)|CCITTFAX(3|4)|OldJPEG|JPEG|PackBits|LZW)|FileType)|e(rminate(Now|Cancel|Later)|xt(Read(InapplicableDocumentTypeError|WriteErrorM(inimum|aximum))|Block(M(i(nimum(Height|Width)|ddleAlignment)|a(rgin|ximum(Height|Width)))|B(o(ttomAlignment|rder)|aselineAlignment)|Height|TopAlignment|P(ercentageValueType|adding)|Width|AbsoluteValueType)|StorageEdited(Characters|Attributes)|CellType|ured(RoundedBezelStyle|BackgroundWindowMask|SquareBezelStyle)|Table(FixedLayoutAlgorithm|AutomaticLayoutAlgorithm)|Field(RoundedBezel|SquareBezel|AndStepperDatePickerStyle)|WriteInapplicableDocumentTypeError|ListPrependEnclosingMarker))|woByteGlyphPacking|ab(Character|TextMovement|le(tP(oint(Mask|EventSubtype)?|roximity(Mask|EventSubtype)?)|Column(NoResizing|UserResizingMask|AutoresizingMask)|View(ReverseSequentialColumnAutoresizingStyle|GridNone|S(olid(HorizontalGridLineMask|VerticalGridLineMask)|equentialColumnAutoresizingStyle)|NoColumnAutoresizing|UniformColumnAutoresizingStyle|FirstColumnOnlyAutoresizingStyle|LastColumnOnlyAutoresizingStyle)))|rackModeMatrix)|I(n(sert(CharFunctionKey|FunctionKey|LineFunctionKey)|t(Type|ernalS(criptError|pecifierError))|dexSubelement|validIndexSpecifierError|formational(Request|AlertStyle)|PredicateOperatorType)|talicFontMask|SO(2022JPStringEncoding|Latin(1StringEncoding|2StringEncoding))|dentityMappingCharacterCollection|llegalTextMovement|mage(R(ight|ep(MatchesDevice|LoadStatus(ReadingHeader|Completed|InvalidData|Un(expectedEOF|knownType)|WillNeedAllData)))|Below|C(ellType|ache(BySize|Never|Default|Always))|Interpolation(High|None|Default|Low)|O(nly|verlaps)|Frame(Gr(oove|ayBezel)|Button|None|Photo)|L(oadStatus(ReadError|C(ompleted|ancelled)|InvalidData|UnexpectedEOF)|eft)|A(lign(Right|Bottom(Right|Left)?|Center|Top(Right|Left)?|Left)|bove)))|O(n(State|eByteGlyphPacking|OffButton|lyScrollerArrows)|ther(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|TextMovement)|SF1OperatingSystem|pe(n(GL(GO(Re(setLibrary|tainRenderers)|ClearFormatCache|FormatCacheSize)|PFA(R(obust|endererID)|M(inimumPolicy|ulti(sample|Screen)|PSafe|aximumPolicy)|BackingStore|S(creenMask|te(ncilSize|reo)|ingleRenderer|upersample|ample(s|Buffers|Alpha))|NoRecovery|C(o(lor(Size|Float)|mpliant)|losestPolicy)|OffScreen|D(oubleBuffer|epthSize)|PixelBuffer|VirtualScreenCount|FullScreen|Window|A(cc(umSize|elerated)|ux(Buffers|DepthStencil)|l(phaSize|lRenderers))))|StepUnicodeReservedBase)|rationNotSupportedForKeyS(criptError|pecifierError))|ffState|KButton|rPredicateType|bjC(B(itfield|oolType)|S(hortType|tr(ingType|uctType)|electorType)|NoType|CharType|ObjectType|DoubleType|UnionType|PointerType|VoidType|FloatType|Long(Type|longType)|ArrayType))|D(i(s(c(losureBezelStyle|reteCapacityLevelIndicatorStyle)|playWindowRunLoopOrdering)|acriticInsensitivePredicateOption|rect(Selection|PredicateModifier))|o(c(ModalWindowMask|ument(Directory|ationDirectory))|ubleType|wn(TextMovement|ArrowFunctionKey))|e(s(cendingPageOrder|ktopDirectory)|cimalTabStopType|v(ice(NColorSpaceModel|IndependentModifierFlagsMask)|eloper(Directory|ApplicationDirectory))|fault(ControlTint|TokenStyle)|lete(Char(acter|FunctionKey)|FunctionKey|LineFunctionKey)|moApplicationDirectory)|a(yCalendarUnit|teFormatter(MediumStyle|Behavior(10|Default)|ShortStyle|NoStyle|FullStyle|LongStyle))|ra(wer(Clos(ingState|edState)|Open(ingState|State))|gOperation(Generic|Move|None|Copy|Delete|Private|Every|Link|All)))|U(ser(CancelledError|D(irectory|omainMask)|FunctionKey)|RL(Handle(NotLoaded|Load(Succeeded|InProgress|Failed))|CredentialPersistence(None|Permanent|ForSession))|n(scaledWindowMask|cachedRead|i(codeStringEncoding|talicFontMask|fiedTitleAndToolbarWindowMask)|d(o(CloseGroupingRunLoopOrdering|FunctionKey)|e(finedDateComponent|rline(Style(Single|None|Thick|Double)|Pattern(Solid|D(ot|ash(Dot(Dot)?)?)))))|known(ColorSpaceModel|P(ointingDevice|ageOrder)|KeyS(criptError|pecifierError))|boldFontMask)|tilityWindowMask|TF8StringEncoding|p(dateWindowsRunLoopOrdering|TextMovement|ArrowFunctionKey))|J(ustifiedTextAlignment|PEG(2000FileType|FileType)|apaneseEUC(GlyphPacking|StringEncoding))|P(o(s(t(Now|erFontMask|WhenIdle|ASAP)|iti(on(Replace|Be(fore|ginning)|End|After)|ve(IntType|DoubleType|FloatType)))|pUp(NoArrow|ArrowAt(Bottom|Center))|werOffEventType|rtraitOrientation)|NGFileType|ush(InCell(Mask)?|OnPushOffButton)|e(n(TipMask|UpperSideMask|PointingDevice|LowerSideMask)|riodic(Mask)?)|P(S(caleField|tatus(Title|Field)|aveButton)|N(ote(Title|Field)|ame(Title|Field))|CopiesField|TitleField|ImageButton|OptionsButton|P(a(perFeedButton|ge(Range(To|From)|ChoiceMatrix))|reviewButton)|LayoutButton)|lainTextTokenStyle|a(useFunctionKey|ragraphSeparatorCharacter|ge(DownFunctionKey|UpFunctionKey))|r(int(ing(ReplyLater|Success|Cancelled|Failure)|ScreenFunctionKey|erTable(NotFound|OK|Error)|FunctionKey)|o(p(ertyList(XMLFormat|MutableContainers(AndLeaves)?|BinaryFormat|Immutable|OpenStepFormat)|rietaryStringEncoding)|gressIndicator(BarStyle|SpinningStyle|Preferred(SmallThickness|Thickness|LargeThickness|AquaThickness)))|e(ssedTab|vFunctionKey))|L(HeightForm|CancelButton|TitleField|ImageButton|O(KButton|rientationMatrix)|UnitsButton|PaperNameButton|WidthForm))|E(n(terCharacter|d(sWith(Comparison|PredicateOperatorType)|FunctionKey))|v(e(nOddWindingRule|rySubelement)|aluatedObjectExpressionType)|qualTo(Comparison|PredicateOperatorType)|ra(serPointingDevice|CalendarUnit|DatePickerElementFlag)|x(clude(10|QuickDrawElementsIconCreationOption)|pandedFontMask|ecuteFunctionKey))|V(i(ew(M(in(XMargin|YMargin)|ax(XMargin|YMargin))|HeightSizable|NotSizable|WidthSizable)|aPanelFontAction)|erticalRuler|a(lidationErrorM(inimum|aximum)|riableExpressionType))|Key(SpecifierEvaluationScriptError|Down(Mask)?|Up(Mask)?|PathExpressionType|Value(MinusSetMutation|SetSetMutation|Change(Re(placement|moval)|Setting|Insertion)|IntersectSetMutation|ObservingOption(New|Old)|UnionSetMutation|ValidationError))|QTMovie(NormalPlayback|Looping(BackAndForthPlayback|Playback))|F(1(1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|7FunctionKey|i(nd(PanelAction(Replace(A(ndFind|ll(InSelection)?))?|S(howFindPanel|e(tFindString|lectAll(InSelection)?))|Next|Previous)|FunctionKey)|tPagination|le(Read(No(SuchFileError|PermissionError)|CorruptFileError|In(validFileNameError|applicableStringEncodingError)|Un(supportedSchemeError|knownError))|HandlingPanel(CancelButton|OKButton)|NoSuchFileError|ErrorM(inimum|aximum)|Write(NoPermissionError|In(validFileNameError|applicableStringEncodingError)|OutOfSpaceError|Un(supportedSchemeError|knownError))|LockingError)|xedPitchFontMask)|2(1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|o(nt(Mo(noSpaceTrait|dernSerifsClass)|BoldTrait|S(ymbolicClass|criptsClass|labSerifsClass|ansSerifClass)|C(o(ndensedTrait|llectionApplicationOnlyMask)|larendonSerifsClass)|TransitionalSerifsClass|I(ntegerAdvancementsRenderingMode|talicTrait)|O(ldStyleSerifsClass|rnamentalsClass)|DefaultRenderingMode|U(nknownClass|IOptimizedTrait)|Panel(S(hadowEffectModeMask|t(andardModesMask|rikethroughEffectModeMask)|izeModeMask)|CollectionModeMask|TextColorEffectModeMask|DocumentColorEffectModeMask|UnderlineEffectModeMask|FaceModeMask|All(ModesMask|EffectsModeMask))|ExpandedTrait|VerticalTrait|F(amilyClassMask|reeformSerifsClass)|Antialiased(RenderingMode|IntegerAdvancementsRenderingMode))|cusRing(Below|Type(None|Default|Exterior)|Only|Above)|urByteGlyphPacking|rm(attingError(M(inimum|aximum))?|FeedCharacter))|8FunctionKey|unction(ExpressionType|KeyMask)|3(1FunctionKey|2FunctionKey|3FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey)|9FunctionKey|4FunctionKey|P(RevertButton|S(ize(Title|Field)|etButton)|CurrentField|Preview(Button|Field))|l(oat(ingPointSamplesBitmapFormat|Type)|agsChanged(Mask)?)|axButton|5FunctionKey|6FunctionKey)|W(heelModeColorPanel|indow(s(NTOperatingSystem|CP125(1StringEncoding|2StringEncoding|3StringEncoding|4StringEncoding|0StringEncoding)|95(InterfaceStyle|OperatingSystem))|M(iniaturizeButton|ovedEventType)|Below|CloseButton|ToolbarButton|ZoomButton|Out|DocumentIconButton|ExposedEventType|Above)|orkspaceLaunch(NewInstance|InhibitingBackgroundOnly|Default|PreferringClassic|WithoutA(ctivation|ddingToRecents)|A(sync|nd(Hide(Others)?|Print)|llowingClassicStartup))|eek(day(CalendarUnit|OrdinalCalendarUnit)|CalendarUnit)|a(ntsBidiLevels|rningAlertStyle)|r(itingDirection(RightToLeft|Natural|LeftToRight)|apCalendarComponents))|L(i(stModeMatrix|ne(Moves(Right|Down|Up|Left)|B(order|reakBy(C(harWrapping|lipping)|Truncating(Middle|Head|Tail)|WordWrapping))|S(eparatorCharacter|weep(Right|Down|Up|Left))|ToBezierPathElement|DoesntMove|arSlider)|teralSearch|kePredicateOperatorType|ghterFontAction|braryDirectory)|ocalDomainMask|e(ssThan(Comparison|OrEqualTo(Comparison|PredicateOperatorType)|PredicateOperatorType)|ft(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|T(ext(Movement|Alignment)|ab(sBezelBorder|StopType))|ArrowFunctionKey))|a(yout(RightToLeft|NotDone|CantFit|OutOfGlyphs|Done|LeftToRight)|ndscapeOrientation)|ABColorSpaceModel)|A(sc(iiWithDoubleByteEUCGlyphPacking|endingPageOrder)|n(y(Type|PredicateModifier|EventMask)|choredSearch|imation(Blocking|Nonblocking(Threaded)?|E(ffect(DisappearingItemDefault|Poof)|ase(In(Out)?|Out))|Linear)|dPredicateType)|t(Bottom|tachmentCharacter|omicWrite|Top)|SCIIStringEncoding|d(obe(GB1CharacterCollection|CNS1CharacterCollection|Japan(1CharacterCollection|2CharacterCollection)|Korea1CharacterCollection)|dTraitFontAction|minApplicationDirectory)|uto(saveOperation|Pagination)|pp(lication(SupportDirectory|D(irectory|e(fined(Mask)?|legateReply(Success|Cancel|Failure)|activatedEventType))|ActivatedEventType)|KitDefined(Mask)?)|l(ternateKeyMask|pha(ShiftKeyMask|NonpremultipliedBitmapFormat|FirstBitmapFormat)|ert(SecondButtonReturn|ThirdButtonReturn|OtherReturn|DefaultReturn|ErrorReturn|FirstButtonReturn|AlternateReturn)|l(ScrollerParts|DomainsMask|PredicateModifier|LibrariesDirectory|ApplicationsDirectory))|rgument(sWrongScriptError|EvaluationScriptError)|bove(Bottom|Top)|WTEventType))\\b",name:"support.constant.cocoa.objc"},anonymous_pattern_4:{begin:"\\b(id)\\s*(?=<)",beginCaptures:{"1":{name:"storage.type.objc"}},end:"(?<=>)",name:"meta.id-with-protocol.objc",patterns:[{include:"#protocol_list"}]},anonymous_pattern_5:{match:"\\b(NS_DURING|NS_HANDLER|NS_ENDHANDLER)\\b",name:"keyword.control.macro.objc"},anonymous_pattern_7:{captures:{"1":{name:"punctuation.definition.keyword.objc"}},match:"(@)(try|catch|finally|throw)\\b",name:"keyword.control.exception.objc"},anonymous_pattern_8:{captures:{"1":{name:"punctuation.definition.keyword.objc"}},match:"(@)(synchronized)\\b",name:"keyword.control.synchronize.objc"},anonymous_pattern_9:{captures:{"1":{name:"punctuation.definition.keyword.objc"}},match:"(@)(required|optional)\\b",name:"keyword.control.protocol-specification.objc"},apple_foundation_functional_macros:{begin:"(\\b(?:API_AVAILABLE|API_DEPRECATED|API_UNAVAILABLE|NS_AVAILABLE|NS_AVAILABLE_MAC|NS_AVAILABLE_IOS|NS_DEPRECATED|NS_DEPRECATED_MAC|NS_DEPRECATED_IOS|NS_SWIFT_NAME))(?:(?:\\s)+)?(\\()",end:"\\)",beginCaptures:{"1":{name:"entity.name.function.preprocessor.apple-foundation.objc"},"2":{name:"punctuation.section.macro.arguments.begin.bracket.round.apple-foundation.objc"}},endCaptures:{"0":{name:"punctuation.section.macro.arguments.end.bracket.round.apple-foundation.objc"}},name:"meta.preprocessor.macro.callable.apple-foundation.objc",patterns:[{include:"#c_lang"}]},bracketed_content:{begin:"\\[",beginCaptures:{"0":{name:"punctuation.section.scope.begin.objc"}},end:"\\]",endCaptures:{"0":{name:"punctuation.section.scope.end.objc"}},name:"meta.bracketed.objc",patterns:[{begin:"(?=predicateWithFormat:)(?<=NSPredicate )(predicateWithFormat:)",beginCaptures:{"1":{name:"support.function.any-method.objc"},"2":{name:"punctuation.separator.arguments.objc"}},end:"(?=\\])",name:"meta.function-call.predicate.objc",patterns:[{captures:{"1":{name:"punctuation.separator.arguments.objc"}},match:"\\bargument(Array|s)(:)",name:"support.function.any-method.name-of-parameter.objc"},{captures:{"1":{name:"punctuation.separator.arguments.objc"}},match:"\\b\\w+(:)",name:"invalid.illegal.unknown-method.objc"},{begin:"@\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.objc"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.objc"}},name:"string.quoted.double.objc",patterns:[{match:"\\b(AND|OR|NOT|IN)\\b",name:"keyword.operator.logical.predicate.cocoa.objc"},{match:"\\b(ALL|ANY|SOME|NONE)\\b",name:"constant.language.predicate.cocoa.objc"},{match:"\\b(NULL|NIL|SELF|TRUE|YES|FALSE|NO|FIRST|LAST|SIZE)\\b",name:"constant.language.predicate.cocoa.objc"},{match:"\\b(MATCHES|CONTAINS|BEGINSWITH|ENDSWITH|BETWEEN)\\b",name:"keyword.operator.comparison.predicate.cocoa.objc"},{match:"\\bC(ASEINSENSITIVE|I)\\b",name:"keyword.other.modifier.predicate.cocoa.objc"},{match:"\\b(ANYKEY|SUBQUERY|CAST|TRUEPREDICATE|FALSEPREDICATE)\\b",name:"keyword.other.predicate.cocoa.objc"},{match:"\\\\(\\\\|[abefnrtv'\"?]|[0-3]\\d{,2}|[4-7]\\d?|x[a-zA-Z0-9]+)",name:"constant.character.escape.objc"},{match:"\\\\.",name:"invalid.illegal.unknown-escape.objc"}]},{include:"#special_variables"},{include:"#c_functions"},{include:"$base"}]},{begin:"(?=\\w)(?<=[\\w\\])\"] )(\\w+(?:(:)|(?=\\])))",beginCaptures:{"1":{name:"support.function.any-method.objc"},"2":{name:"punctuation.separator.arguments.objc"}},end:"(?=\\])",name:"meta.function-call.objc",patterns:[{captures:{"1":{name:"punctuation.separator.arguments.objc"}},match:"\\b\\w+(:)",name:"support.function.any-method.name-of-parameter.objc"},{include:"#special_variables"},{include:"#c_functions"},{include:"$base"}]},{include:"#special_variables"},{include:"#c_functions"},{include:"$self"}]},c_functions:{patterns:[{captures:{"1":{name:"punctuation.whitespace.support.function.leading.objc"},"2":{name:"support.function.C99.objc"}},match:"(\\s*)\\b(hypot(f|l)?|s(scanf|ystem|nprintf|ca(nf|lb(n(f|l)?|ln(f|l)?))|i(n(h(f|l)?|f|l)?|gn(al|bit))|tr(s(tr|pn)|nc(py|at|mp)|c(spn|hr|oll|py|at|mp)|to(imax|d|u(l(l)?|max)|k|f|l(d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(jmp|vbuf|locale|buf)|qrt(f|l)?|w(scanf|printf)|rand)|n(e(arbyint(f|l)?|xt(toward(f|l)?|after(f|l)?))|an(f|l)?)|c(s(in(h(f|l)?|f|l)?|qrt(f|l)?)|cos(h(f)?|f|l)?|imag(f|l)?|t(ime|an(h(f|l)?|f|l)?)|o(s(h(f|l)?|f|l)?|nj(f|l)?|pysign(f|l)?)|p(ow(f|l)?|roj(f|l)?)|e(il(f|l)?|xp(f|l)?)|l(o(ck|g(f|l)?)|earerr)|a(sin(h(f|l)?|f|l)?|cos(h(f|l)?|f|l)?|tan(h(f|l)?|f|l)?|lloc|rg(f|l)?|bs(f|l)?)|real(f|l)?|brt(f|l)?)|t(ime|o(upper|lower)|an(h(f|l)?|f|l)?|runc(f|l)?|gamma(f|l)?|mp(nam|file))|i(s(space|n(ormal|an)|cntrl|inf|digit|u(nordered|pper)|p(unct|rint)|finite|w(space|c(ntrl|type)|digit|upper|p(unct|rint)|lower|al(num|pha)|graph|xdigit|blank)|l(ower|ess(equal|greater)?)|al(num|pha)|gr(eater(equal)?|aph)|xdigit|blank)|logb(f|l)?|max(div|abs))|di(v|fftime)|_Exit|unget(c|wc)|p(ow(f|l)?|ut(s|c(har)?|wc(har)?)|error|rintf)|e(rf(c(f|l)?|f|l)?|x(it|p(2(f|l)?|f|l|m1(f|l)?)?))|v(s(scanf|nprintf|canf|printf|w(scanf|printf))|printf|f(scanf|printf|w(scanf|printf))|w(scanf|printf)|a_(start|copy|end|arg))|qsort|f(s(canf|e(tpos|ek))|close|tell|open|dim(f|l)?|p(classify|ut(s|c|w(s|c))|rintf)|e(holdexcept|set(e(nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(aiseexcept|ror)|get(e(nv|xceptflag)|round))|flush|w(scanf|ide|printf|rite)|loor(f|l)?|abs(f|l)?|get(s|c|pos|w(s|c))|re(open|e|ad|xp(f|l)?)|m(in(f|l)?|od(f|l)?|a(f|l|x(f|l)?)?))|l(d(iv|exp(f|l)?)|o(ngjmp|cal(time|econv)|g(1(p(f|l)?|0(f|l)?)|2(f|l)?|f|l|b(f|l)?)?)|abs|l(div|abs|r(int(f|l)?|ound(f|l)?))|r(int(f|l)?|ound(f|l)?)|gamma(f|l)?)|w(scanf|c(s(s(tr|pn)|nc(py|at|mp)|c(spn|hr|oll|py|at|mp)|to(imax|d|u(l(l)?|max)|k|f|l(d|l)?|mbs)|pbrk|ftime|len|r(chr|tombs)|xfrm)|to(b|mb)|rtomb)|printf|mem(set|c(hr|py|mp)|move))|a(s(sert|ctime|in(h(f|l)?|f|l)?)|cos(h(f|l)?|f|l)?|t(o(i|f|l(l)?)|exit|an(h(f|l)?|2(f|l)?|f|l)?)|b(s|ort))|g(et(s|c(har)?|env|wc(har)?)|mtime)|r(int(f|l)?|ound(f|l)?|e(name|alloc|wind|m(ove|quo(f|l)?|ainder(f|l)?))|a(nd|ise))|b(search|towc)|m(odf(f|l)?|em(set|c(hr|py|mp)|move)|ktime|alloc|b(s(init|towcs|rtowcs)|towc|len|r(towc|len))))\\b"},{captures:{"1":{name:"punctuation.whitespace.function-call.leading.objc"},"2":{name:"support.function.any-method.objc"},"3":{name:"punctuation.definition.parameters.objc"}},match:"(?x) (?: (?= \\s ) (?:(?<=else|new|return) | (?<!\\w)) (\\s+))?\n \t\t\t(\\b \n \t\t\t\t(?!(while|for|do|if|else|switch|catch|enumerate|return|r?iterate)\\s*\\()(?:(?!NS)[A-Za-z_][A-Za-z0-9_]*+\\b | :: )++ # actual name\n \t\t\t)\n \t\t\t \\s*(\\()",name:"meta.function-call.objc"}]},c_lang:{patterns:[{include:"#preprocessor-rule-enabled"},{include:"#preprocessor-rule-disabled"},{include:"#preprocessor-rule-conditional"},{include:"#comments"},{include:"#switch_statement"},{match:"\\b(break|continue|do|else|for|goto|if|_Pragma|return|while)\\b",name:"keyword.control.objc"},{include:"#storage_types"},{match:"typedef",name:"keyword.other.typedef.objc"},{match:"\\bin\\b",name:"keyword.other.in.objc"},{match:"\\b(const|extern|register|restrict|static|volatile|inline|__block)\\b",name:"storage.modifier.objc"},{match:"\\bk[A-Z]\\w*\\b",name:"constant.other.variable.mac-classic.objc"},{match:"\\bg[A-Z]\\w*\\b",name:"variable.other.readwrite.global.mac-classic.objc"},{match:"\\bs[A-Z]\\w*\\b",name:"variable.other.readwrite.static.mac-classic.objc"},{match:"\\b(NULL|true|false|TRUE|FALSE)\\b",name:"constant.language.objc"},{include:"#operators"},{include:"#numbers"},{include:"#strings"},{include:"#special_variables"},{begin:"(?x)\n^\\s* ((\\#)\\s*define) \\s+\t# define\n((?<id>[a-zA-Z_$][\\w$]*))\t # macro name\n(?:\n (\\()\n\t(\n\t \\s* \\g<id> \\s*\t\t # first argument\n\t ((,) \\s* \\g<id> \\s*)* # additional arguments\n\t (?:\\.\\.\\.)?\t\t\t# varargs ellipsis?\n\t)\n (\\))\n)?",beginCaptures:{"1":{name:"keyword.control.directive.define.objc"},"2":{name:"punctuation.definition.directive.objc"},"3":{name:"entity.name.function.preprocessor.objc"},"5":{name:"punctuation.definition.parameters.begin.objc"},"6":{name:"variable.parameter.preprocessor.objc"},"8":{name:"punctuation.separator.parameters.objc"},"9":{name:"punctuation.definition.parameters.end.objc"}},end:"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.macro.objc",patterns:[{include:"#preprocessor-rule-define-line-contents"}]},{begin:"^\\s*((#)\\s*(error|warning))\\b\\s*",beginCaptures:{"1":{name:"keyword.control.directive.diagnostic.$3.objc"},"2":{name:"punctuation.definition.directive.objc"}},end:"(?<!\\\\)(?=\\n)",name:"meta.preprocessor.diagnostic.objc",patterns:[{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.objc"}},end:"\"|(?<!\\\\)(?=\\s*\\n)",endCaptures:{"0":{name:"punctuation.definition.string.end.objc"}},name:"string.quoted.double.objc",patterns:[{include:"#line_continuation_character"}]},{begin:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.objc"}},end:"'|(?<!\\\\)(?=\\s*\\n)",endCaptures:{"0":{name:"punctuation.definition.string.end.objc"}},name:"string.quoted.single.objc",patterns:[{include:"#line_continuation_character"}]},{begin:"[^'\"]",end:"(?<!\\\\)(?=\\s*\\n)",name:"string.unquoted.single.objc",patterns:[{include:"#line_continuation_character"},{include:"#comments"}]}]},{begin:"^\\s*((#)\\s*(include(?:_next)?|import))\\b\\s*",beginCaptures:{"1":{name:"keyword.control.directive.$3.objc"},"2":{name:"punctuation.definition.directive.objc"}},end:"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.include.objc",patterns:[{include:"#line_continuation_character"},{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.objc"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.objc"}},name:"string.quoted.double.include.objc"},{begin:"<",beginCaptures:{"0":{name:"punctuation.definition.string.begin.objc"}},end:">",endCaptures:{"0":{name:"punctuation.definition.string.end.objc"}},name:"string.quoted.other.lt-gt.include.objc"}]},{include:"#pragma-mark"},{begin:"^\\s*((#)\\s*line)\\b",beginCaptures:{"1":{name:"keyword.control.directive.line.objc"},"2":{name:"punctuation.definition.directive.objc"}},end:"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objc",patterns:[{include:"#strings"},{include:"#numbers"},{include:"#line_continuation_character"}]},{begin:"^\\s*(?:((#)\\s*undef))\\b",beginCaptures:{"1":{name:"keyword.control.directive.undef.objc"},"2":{name:"punctuation.definition.directive.objc"}},end:"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objc",patterns:[{match:"[a-zA-Z_$][\\w$]*",name:"entity.name.function.preprocessor.objc"},{include:"#line_continuation_character"}]},{begin:"^\\s*(?:((#)\\s*pragma))\\b",beginCaptures:{"1":{name:"keyword.control.directive.pragma.objc"},"2":{name:"punctuation.definition.directive.objc"}},end:"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.pragma.objc",patterns:[{include:"#strings"},{match:"[a-zA-Z_$][\\w\\-$]*",name:"entity.other.attribute-name.pragma.preprocessor.objc"},{include:"#numbers"},{include:"#line_continuation_character"}]},{match:"\\b(u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t)\\b",name:"support.type.sys-types.objc"},{match:"\\b(pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t)\\b",name:"support.type.pthread.objc"},{match:"(?x) \\b\n(int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t\n|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t\n|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t\n|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t\n|uintmax_t|uintmax_t)\n\\b",name:"support.type.stdint.objc"},{match:"\\b(noErr|kNilOptions|kInvalidID|kVariableLengthArray)\\b",name:"support.constant.mac-classic.objc"},{match:"(?x) \\b\n(AbsoluteTime|Boolean|Byte|ByteCount|ByteOffset|BytePtr|CompTimeValue|ConstLogicalAddress|ConstStrFileNameParam\n|ConstStringPtr|Duration|Fixed|FixedPtr|Float32|Float32Point|Float64|Float80|Float96|FourCharCode|Fract|FractPtr\n|Handle|ItemCount|LogicalAddress|OptionBits|OSErr|OSStatus|OSType|OSTypePtr|PhysicalAddress|ProcessSerialNumber\n|ProcessSerialNumberPtr|ProcHandle|Ptr|ResType|ResTypePtr|ShortFixed|ShortFixedPtr|SignedByte|SInt16|SInt32|SInt64\n|SInt8|Size|StrFileName|StringHandle|StringPtr|TimeBase|TimeRecord|TimeScale|TimeValue|TimeValue64|UInt16|UInt32\n|UInt64|UInt8|UniChar|UniCharCount|UniCharCountPtr|UniCharPtr|UnicodeScalarValue|UniversalProcHandle|UniversalProcPtr\n|UnsignedFixed|UnsignedFixedPtr|UnsignedWide|UTF16Char|UTF32Char|UTF8Char)\n\\b",name:"support.type.mac-classic.objc"},{match:"\\b([A-Za-z0-9_]+_t)\\b",name:"support.type.posix-reserved.objc"},{include:"#block"},{include:"#parens"},{name:"meta.function.objc",begin:"(?<!\\w)(?!\\s*(?:not|compl|sizeof|not_eq|bitand|xor|bitor|and|or|and_eq|xor_eq|or_eq|alignof|alignas|_Alignof|_Alignas|while|for|do|if|else|goto|switch|return|break|case|continue|default|void|char|short|int|signed|unsigned|long|float|double|bool|_Bool|_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|NULL|true|false|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t|struct|union|enum|typedef|auto|register|static|extern|thread_local|inline|_Noreturn|const|volatile|restrict|_Atomic)\\s*\\()(?=[a-zA-Z_]\\w*\\s*\\()",end:"(?<=\\))",patterns:[{include:"#function-innards"}]},{include:"#line_continuation_character"},{name:"meta.bracket.square.access.objc",begin:"([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))?(\\[)(?!\\])",beginCaptures:{"1":{name:"variable.object.objc"},"2":{name:"punctuation.definition.begin.bracket.square.objc"}},end:"\\]",endCaptures:{"0":{name:"punctuation.definition.end.bracket.square.objc"}},patterns:[{include:"#function-call-innards"}]},{name:"storage.modifier.array.bracket.square.objc",match:"\\[\\s*\\]"},{match:";",name:"punctuation.terminator.statement.objc"},{match:",",name:"punctuation.separator.delimiter.objc"}],repository:{probably_a_parameter:{match:"(?<=(?:[a-zA-Z_0-9] |[&*>\\]\\)]))\\s*([a-zA-Z_]\\w*)\\s*(?=(?:\\[\\]\\s*)?(?:,|\\)))",captures:{"1":{name:"variable.parameter.probably.objc"}}},"access-method":{name:"meta.function-call.member.objc",begin:"([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))\\s*(?:(\\.)|(->))((?:(?:[a-zA-Z_][a-zA-Z_0-9]*)\\s*(?:(?:\\.)|(?:->)))*)\\s*([a-zA-Z_][a-zA-Z_0-9]*)(\\()",beginCaptures:{"1":{name:"variable.object.objc"},"2":{name:"punctuation.separator.dot-access.objc"},"3":{name:"punctuation.separator.pointer-access.objc"},"4":{patterns:[{match:"\\.",name:"punctuation.separator.dot-access.objc"},{match:"->",name:"punctuation.separator.pointer-access.objc"},{match:"[a-zA-Z_][a-zA-Z_0-9]*",name:"variable.object.objc"},{name:"everything.else.objc",match:".+"}]},"5":{name:"entity.name.function.member.objc"},"6":{name:"punctuation.section.arguments.begin.bracket.round.function.member.objc"}},end:"\\)",endCaptures:{"0":{name:"punctuation.section.arguments.end.bracket.round.function.member.objc"}},patterns:[{include:"#function-call-innards"}]},block:{patterns:[{begin:"{",beginCaptures:{"0":{name:"punctuation.section.block.begin.bracket.curly.objc"}},end:"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)",endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.objc"}},name:"meta.block.objc",patterns:[{include:"#block_innards"}]}]},block_innards:{patterns:[{include:"#preprocessor-rule-enabled-block"},{include:"#preprocessor-rule-disabled-block"},{include:"#preprocessor-rule-conditional-block"},{include:"#method_access"},{include:"#member_access"},{include:"#c_function_call"},{name:"meta.initialization.objc",begin:"(?x)\n(?:\n (?:\n\t(?=\\s)(?<!else|new|return)\n\t(?<=\\w) \\s+(and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas) # or word + space before name\n )\n)\n(\n (?:[A-Za-z_][A-Za-z0-9_]*+ | :: )++ # actual name\n |\n (?:(?<=operator) (?:[-*&<>=+!]+ | \\(\\) | \\[\\]))\n)\n\\s*(\\() # opening bracket",beginCaptures:{"1":{name:"variable.other.objc"},"2":{name:"punctuation.section.parens.begin.bracket.round.initialization.objc"}},end:"\\)",endCaptures:{"0":{name:"punctuation.section.parens.end.bracket.round.initialization.objc"}},patterns:[{include:"#function-call-innards"}]},{begin:"{",beginCaptures:{"0":{name:"punctuation.section.block.begin.bracket.curly.objc"}},end:"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)",endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.objc"}},patterns:[{include:"#block_innards"}]},{include:"#parens-block"},{include:"$base"}]},c_function_call:{begin:"(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(?=\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)",end:"(?<=\\))(?!\\w)",name:"meta.function-call.objc",patterns:[{include:"#function-call-innards"}]},comments:{patterns:[{captures:{"1":{name:"meta.toc-list.banner.block.objc"}},match:"^/\\* =(\\s*.*?)\\s*= \\*/$\\n?",name:"comment.block.objc"},{begin:"/\\*",beginCaptures:{"0":{name:"punctuation.definition.comment.begin.objc"}},end:"\\*/",endCaptures:{"0":{name:"punctuation.definition.comment.end.objc"}},name:"comment.block.objc"},{captures:{"1":{name:"meta.toc-list.banner.line.objc"}},match:"^// =(\\s*.*?)\\s*=\\s*$\\n?",name:"comment.line.banner.objc"},{begin:"(^[ \\t]+)?(?=//)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.objc"}},end:"(?!\\G)",patterns:[{begin:"//",beginCaptures:{"0":{name:"punctuation.definition.comment.objc"}},end:"(?=\\n)",name:"comment.line.double-slash.objc",patterns:[{include:"#line_continuation_character"}]}]}]},disabled:{begin:"^\\s*#\\s*if(n?def)?\\b.*$",end:"^\\s*#\\s*endif\\b",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},line_continuation_character:{patterns:[{match:"(\\\\)\\n",captures:{"1":{name:"constant.character.escape.line-continuation.objc"}}}]},parens:{name:"meta.parens.objc",begin:"\\(",beginCaptures:{"0":{name:"punctuation.section.parens.begin.bracket.round.objc"}},end:"\\)",endCaptures:{"0":{name:"punctuation.section.parens.end.bracket.round.objc"}},patterns:[{include:"$base"}]},"parens-block":{name:"meta.parens.block.objc",begin:"\\(",beginCaptures:{"0":{name:"punctuation.section.parens.begin.bracket.round.objc"}},end:"\\)",endCaptures:{"0":{name:"punctuation.section.parens.end.bracket.round.objc"}},patterns:[{include:"#block_innards"},{match:"(?-mix:(?<!:):(?!:))",name:"punctuation.range-based.objc"}]},"pragma-mark":{captures:{"1":{name:"meta.preprocessor.pragma.objc"},"2":{name:"keyword.control.directive.pragma.pragma-mark.objc"},"3":{name:"punctuation.definition.directive.objc"},"4":{name:"entity.name.tag.pragma-mark.objc"}},match:"^\\s*(((#)\\s*pragma\\s+mark)\\s+(.*))",name:"meta.section.objc"},operators:{patterns:[{match:"(?<![\\w$])(sizeof)(?![\\w$])",name:"keyword.operator.sizeof.objc"},{match:"--",name:"keyword.operator.decrement.objc"},{match:"\\+\\+",name:"keyword.operator.increment.objc"},{match:"%=|\\+=|-=|\\*=|(?<!\\()/=",name:"keyword.operator.assignment.compound.objc"},{match:"&=|\\^=|<<=|>>=|\\|=",name:"keyword.operator.assignment.compound.bitwise.objc"},{match:"<<|>>",name:"keyword.operator.bitwise.shift.objc"},{match:"!=|<=|>=|==|<|>",name:"keyword.operator.comparison.objc"},{match:"&&|!|\\|\\|",name:"keyword.operator.logical.objc"},{match:"&|\\||\\^|~",name:"keyword.operator.objc"},{match:"=",name:"keyword.operator.assignment.objc"},{match:"%|\\*|/|-|\\+",name:"keyword.operator.objc"},{begin:"(\\?)",beginCaptures:{"1":{name:"keyword.operator.ternary.objc"}},end:"(:)",endCaptures:{"1":{name:"keyword.operator.ternary.objc"}},patterns:[{include:"#function-call-innards"},{include:"$base"}]}]},strings:{patterns:[{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.objc"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.objc"}},name:"string.quoted.double.objc",patterns:[{include:"#string_escaped_char"},{include:"#string_placeholder"},{include:"#line_continuation_character"}]},{begin:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.objc"}},end:"'",endCaptures:{"0":{name:"punctuation.definition.string.end.objc"}},name:"string.quoted.single.objc",patterns:[{include:"#string_escaped_char"},{include:"#line_continuation_character"}]}]},string_escaped_char:{patterns:[{match:"(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3]\\d{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )",name:"constant.character.escape.objc"},{match:"\\\\.",name:"invalid.illegal.unknown-escape.objc"}]},string_placeholder:{patterns:[{match:"(?x) %\n(\\d+\\$)?\t\t\t\t\t\t # field (argument #)\n[#0\\- +']*\t\t\t\t\t\t # flags\n[,;:_]?\t\t\t\t\t\t\t # separator character (AltiVec)\n((-?\\d+)|\\*(-?\\d+\\$)?)?\t\t # minimum field width\n(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?\t# precision\n(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n[diouxXDOUeEfFgGaACcSspn%]\t\t # conversion type",name:"constant.other.placeholder.objc"},{match:"(%)(?!\"\\s*(PRI|SCN))",captures:{"1":{name:"invalid.illegal.placeholder.objc"}}}]},storage_types:{patterns:[{match:"(?-mix:(?<!\\w)(?:void|char|short|int|signed|unsigned|long|float|double|bool|_Bool)(?!\\w))",name:"storage.type.built-in.primitive.objc"},{match:"(?-mix:(?<!\\w)(?:_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t)(?!\\w))",name:"storage.type.built-in.objc"},{match:"(?-mix:\\b(asm|__asm__|enum|struct|union)\\b)",name:"storage.type.$1.objc"}]},vararg_ellipses:{match:"(?<!\\.)\\.\\.\\.(?!\\.)",name:"punctuation.vararg-ellipses.objc"},"preprocessor-rule-conditional":{patterns:[{begin:"^\\s*((#)\\s*if(?:n?def)?\\b)",beginCaptures:{"0":{name:"meta.preprocessor.objc"},"1":{name:"keyword.control.directive.conditional.objc"},"2":{name:"punctuation.definition.directive.objc"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{"0":{name:"meta.preprocessor.objc"},"1":{name:"keyword.control.directive.conditional.objc"},"2":{name:"punctuation.definition.directive.objc"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objc",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#preprocessor-rule-enabled-elif"},{include:"#preprocessor-rule-enabled-else"},{include:"#preprocessor-rule-disabled-elif"},{begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{"1":{name:"keyword.control.directive.conditional.objc"},"2":{name:"punctuation.definition.directive.objc"}},end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objc",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"$base"}]},{match:"^\\s*#\\s*(else|elif|endif)\\b",captures:{"0":{name:"invalid.illegal.stray-$1.objc"}}}]},"preprocessor-rule-conditional-block":{patterns:[{begin:"^\\s*((#)\\s*if(?:n?def)?\\b)",beginCaptures:{"0":{name:"meta.preprocessor.objc"},"1":{name:"keyword.control.directive.conditional.objc"},"2":{name:"punctuation.definition.directive.objc"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{"0":{name:"meta.preprocessor.objc"},"1":{name:"keyword.control.directive.conditional.objc"},"2":{name:"punctuation.definition.directive.objc"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objc",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#preprocessor-rule-enabled-elif-block"},{include:"#preprocessor-rule-enabled-else-block"},{include:"#preprocessor-rule-disabled-elif"},{begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{"1":{name:"keyword.control.directive.conditional.objc"},"2":{name:"punctuation.definition.directive.objc"}},end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objc",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#block_innards"}]},{match:"^\\s*#\\s*(else|elif|endif)\\b",captures:{"0":{name:"invalid.illegal.stray-$1.objc"}}}]},"preprocessor-rule-conditional-line":{patterns:[{match:"(?:\\bdefined\\b\\s*$)|(?:\\bdefined\\b(?=\\s*\\(*\\s*(?:(?!defined\\b)[a-zA-Z_$][\\w$]*\\b)\\s*\\)*\\s*(?:\\n|//|/\\*|\\?|\\:|&&|\\|\\||\\\\\\s*\\n)))",name:"keyword.control.directive.conditional.objc"},{match:"\\bdefined\\b",name:"invalid.illegal.macro-name.objc"},{include:"#comments"},{include:"#strings"},{include:"#numbers"},{begin:"\\?",beginCaptures:{"0":{name:"keyword.operator.ternary.objc"}},end:":",endCaptures:{"0":{name:"keyword.operator.ternary.objc"}},patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#operators"},{match:"\\b(NULL|true|false|TRUE|FALSE)\\b",name:"constant.language.objc"},{match:"[a-zA-Z_$][\\w$]*",name:"entity.name.function.preprocessor.objc"},{include:"#line_continuation_character"},{begin:"\\(",beginCaptures:{"0":{name:"punctuation.section.parens.begin.bracket.round.objc"}},end:"\\)|(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",endCaptures:{"0":{name:"punctuation.section.parens.end.bracket.round.objc"}},patterns:[{include:"#preprocessor-rule-conditional-line"}]}]},"preprocessor-rule-disabled":{patterns:[{begin:"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{"0":{name:"meta.preprocessor.objc"},"1":{name:"keyword.control.directive.conditional.objc"},"2":{name:"punctuation.definition.directive.objc"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{"0":{name:"meta.preprocessor.objc"},"1":{name:"keyword.control.directive.conditional.objc"},"2":{name:"punctuation.definition.directive.objc"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",name:"meta.preprocessor.objc",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments"},{include:"#preprocessor-rule-enabled-elif"},{include:"#preprocessor-rule-enabled-else"},{include:"#preprocessor-rule-disabled-elif"},{begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{"0":{name:"meta.preprocessor.objc"},"1":{name:"keyword.control.directive.conditional.objc"},"2":{name:"punctuation.definition.directive.objc"}},end:"(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))",patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objc",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"$base"}]},{contentName:"comment.block.preprocessor.if-branch.objc",begin:"\\n",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]}]}]},"preprocessor-rule-disabled-block":{patterns:[{begin:"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{"0":{name:"meta.preprocessor.objc"},"1":{name:"keyword.control.directive.conditional.objc"},"2":{name:"punctuation.definition.directive.objc"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{"0":{name:"meta.preprocessor.objc"},"1":{name:"keyword.control.directive.conditional.objc"},"2":{name:"punctuation.definition.directive.objc"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",name:"meta.preprocessor.objc",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments"},{include:"#preprocessor-rule-enabled-elif-block"},{include:"#preprocessor-rule-enabled-else-block"},{include:"#preprocessor-rule-disabled-elif"},{begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{"0":{name:"meta.preprocessor.objc"},"1":{name:"keyword.control.directive.conditional.objc"},"2":{name:"punctuation.definition.directive.objc"}},end:"(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))",patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objc",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#block_innards"}]},{contentName:"comment.block.preprocessor.if-branch.in-block.objc",begin:"\\n",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]}]}]},"preprocessor-rule-disabled-elif":{begin:"^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{"0":{name:"meta.preprocessor.objc"},"1":{name:"keyword.control.directive.conditional.objc"},"2":{name:"punctuation.definition.directive.objc"}},end:"(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))",patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objc",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments"},{contentName:"comment.block.preprocessor.elif-branch.objc",begin:"\\n",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]}]},"preprocessor-rule-enabled":{patterns:[{begin:"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{"0":{name:"meta.preprocessor.objc"},"1":{name:"keyword.control.directive.conditional.objc"},"2":{name:"punctuation.definition.directive.objc"},"3":{name:"constant.numeric.preprocessor.objc"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{"0":{name:"meta.preprocessor.objc"},"1":{name:"keyword.control.directive.conditional.objc"},"2":{name:"punctuation.definition.directive.objc"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",name:"meta.preprocessor.objc",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments"},{contentName:"comment.block.preprocessor.else-branch.objc",begin:"^\\s*((#)\\s*else\\b)",beginCaptures:{"0":{name:"meta.preprocessor.objc"},"1":{name:"keyword.control.directive.conditional.objc"},"2":{name:"punctuation.definition.directive.objc"}},end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{contentName:"comment.block.preprocessor.if-branch.objc",begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{"0":{name:"meta.preprocessor.objc"},"1":{name:"keyword.control.directive.conditional.objc"},"2":{name:"punctuation.definition.directive.objc"}},end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"\\n",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"$base"}]}]}]},"preprocessor-rule-enabled-block":{patterns:[{begin:"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{"0":{name:"meta.preprocessor.objc"},"1":{name:"keyword.control.directive.conditional.objc"},"2":{name:"punctuation.definition.directive.objc"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{"0":{name:"meta.preprocessor.objc"},"1":{name:"keyword.control.directive.conditional.objc"},"2":{name:"punctuation.definition.directive.objc"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",name:"meta.preprocessor.objc",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments"},{contentName:"comment.block.preprocessor.else-branch.in-block.objc",begin:"^\\s*((#)\\s*else\\b)",beginCaptures:{"0":{name:"meta.preprocessor.objc"},"1":{name:"keyword.control.directive.conditional.objc"},"2":{name:"punctuation.definition.directive.objc"}},end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{contentName:"comment.block.preprocessor.if-branch.in-block.objc",begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{"0":{name:"meta.preprocessor.objc"},"1":{name:"keyword.control.directive.conditional.objc"},"2":{name:"punctuation.definition.directive.objc"}},end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"\\n",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#block_innards"}]}]}]},"preprocessor-rule-enabled-elif":{begin:"^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{"0":{name:"meta.preprocessor.objc"},"1":{name:"keyword.control.directive.conditional.objc"},"2":{name:"punctuation.definition.directive.objc"}},end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objc",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments"},{begin:"\\n",end:"(?=^\\s*((#)\\s*(?:endif)\\b))",patterns:[{contentName:"comment.block.preprocessor.elif-branch.objc",begin:"^\\s*((#)\\s*(else)\\b)",beginCaptures:{"0":{name:"meta.preprocessor.objc"},"1":{name:"keyword.control.directive.conditional.objc"},"2":{name:"punctuation.definition.directive.objc"}},end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{contentName:"comment.block.preprocessor.elif-branch.objc",begin:"^\\s*((#)\\s*(elif)\\b)",beginCaptures:{"0":{name:"meta.preprocessor.objc"},"1":{name:"keyword.control.directive.conditional.objc"},"2":{name:"punctuation.definition.directive.objc"}},end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{include:"$base"}]}]},"preprocessor-rule-enabled-elif-block":{begin:"^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{"0":{name:"meta.preprocessor.objc"},"1":{name:"keyword.control.directive.conditional.objc"},"2":{name:"punctuation.definition.directive.objc"}},end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objc",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments"},{begin:"\\n",end:"(?=^\\s*((#)\\s*(?:endif)\\b))",patterns:[{contentName:"comment.block.preprocessor.elif-branch.in-block.objc",begin:"^\\s*((#)\\s*(else)\\b)",beginCaptures:{"0":{name:"meta.preprocessor.objc"},"1":{name:"keyword.control.directive.conditional.objc"},"2":{name:"punctuation.definition.directive.objc"}},end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{contentName:"comment.block.preprocessor.elif-branch.objc",begin:"^\\s*((#)\\s*(elif)\\b)",beginCaptures:{"0":{name:"meta.preprocessor.objc"},"1":{name:"keyword.control.directive.conditional.objc"},"2":{name:"punctuation.definition.directive.objc"}},end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{include:"#block_innards"}]}]},"preprocessor-rule-enabled-else":{begin:"^\\s*((#)\\s*else\\b)",beginCaptures:{"0":{name:"meta.preprocessor.objc"},"1":{name:"keyword.control.directive.conditional.objc"},"2":{name:"punctuation.definition.directive.objc"}},end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{include:"$base"}]},"preprocessor-rule-enabled-else-block":{begin:"^\\s*((#)\\s*else\\b)",beginCaptures:{"0":{name:"meta.preprocessor.objc"},"1":{name:"keyword.control.directive.conditional.objc"},"2":{name:"punctuation.definition.directive.objc"}},end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{include:"#block_innards"}]},"preprocessor-rule-define-line-contents":{patterns:[{include:"#vararg_ellipses"},{begin:"{",beginCaptures:{"0":{name:"punctuation.section.block.begin.bracket.curly.objc"}},end:"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)",endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.objc"}},name:"meta.block.objc",patterns:[{include:"#preprocessor-rule-define-line-blocks"}]},{match:"\\(",name:"punctuation.section.parens.begin.bracket.round.objc"},{match:"\\)",name:"punctuation.section.parens.end.bracket.round.objc"},{begin:"(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas|asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void)\\s*\\()\n(?=\n (?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name\n |\n (?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)",end:"(?<=\\))(?!\\w)|(?<!\\\\)(?=\\s*\\n)",name:"meta.function.objc",patterns:[{include:"#preprocessor-rule-define-line-functions"}]},{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.objc"}},end:"\"|(?<!\\\\)(?=\\s*\\n)",endCaptures:{"0":{name:"punctuation.definition.string.end.objc"}},name:"string.quoted.double.objc",patterns:[{include:"#string_escaped_char"},{include:"#string_placeholder"},{include:"#line_continuation_character"}]},{begin:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.objc"}},end:"'|(?<!\\\\)(?=\\s*\\n)",endCaptures:{"0":{name:"punctuation.definition.string.end.objc"}},name:"string.quoted.single.objc",patterns:[{include:"#string_escaped_char"},{include:"#line_continuation_character"}]},{include:"#method_access"},{include:"#member_access"},{include:"$base"}]},"preprocessor-rule-define-line-blocks":{patterns:[{begin:"{",beginCaptures:{"0":{name:"punctuation.section.block.begin.bracket.curly.objc"}},end:"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)",endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.objc"}},patterns:[{include:"#preprocessor-rule-define-line-blocks"},{include:"#preprocessor-rule-define-line-contents"}]},{include:"#preprocessor-rule-define-line-contents"}]},"preprocessor-rule-define-line-functions":{patterns:[{include:"#comments"},{include:"#storage_types"},{include:"#vararg_ellipses"},{include:"#method_access"},{include:"#member_access"},{include:"#operators"},{begin:"(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()",beginCaptures:{"1":{name:"entity.name.function.objc"},"2":{name:"punctuation.section.arguments.begin.bracket.round.objc"}},end:"(\\))|(?<!\\\\)(?=\\s*\\n)",endCaptures:{"1":{name:"punctuation.section.arguments.end.bracket.round.objc"}},patterns:[{include:"#preprocessor-rule-define-line-functions"}]},{begin:"\\(",beginCaptures:{"0":{name:"punctuation.section.parens.begin.bracket.round.objc"}},end:"(\\))|(?<!\\\\)(?=\\s*\\n)",endCaptures:{"1":{name:"punctuation.section.parens.end.bracket.round.objc"}},patterns:[{include:"#preprocessor-rule-define-line-functions"}]},{include:"#preprocessor-rule-define-line-contents"}]},"function-innards":{patterns:[{include:"#comments"},{include:"#storage_types"},{include:"#operators"},{include:"#vararg_ellipses"},{name:"meta.function.definition.parameters.objc",begin:"(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()",beginCaptures:{"1":{name:"entity.name.function.objc"},"2":{name:"punctuation.section.parameters.begin.bracket.round.objc"}},end:"\\)",endCaptures:{"0":{name:"punctuation.section.parameters.end.bracket.round.objc"}},patterns:[{include:"#probably_a_parameter"},{include:"#function-innards"}]},{begin:"\\(",beginCaptures:{"0":{name:"punctuation.section.parens.begin.bracket.round.objc"}},end:"\\)",endCaptures:{"0":{name:"punctuation.section.parens.end.bracket.round.objc"}},patterns:[{include:"#function-innards"}]},{include:"$base"}]},"function-call-innards":{patterns:[{include:"#comments"},{include:"#storage_types"},{include:"#method_access"},{include:"#member_access"},{include:"#operators"},{begin:"(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()",beginCaptures:{"1":{name:"entity.name.function.objc"},"2":{name:"punctuation.section.arguments.begin.bracket.round.objc"}},end:"\\)",endCaptures:{"0":{name:"punctuation.section.arguments.end.bracket.round.objc"}},patterns:[{include:"#function-call-innards"}]},{begin:"\\(",beginCaptures:{"0":{name:"punctuation.section.parens.begin.bracket.round.objc"}},end:"\\)",endCaptures:{"0":{name:"punctuation.section.parens.end.bracket.round.objc"}},patterns:[{include:"#function-call-innards"}]},{include:"#block_innards"}]},default_statement:{name:"meta.conditional.case.objc",begin:"((?<!\\w)default(?!\\w))",beginCaptures:{"1":{name:"keyword.control.default.objc"}},end:"(:)",endCaptures:{"1":{name:"punctuation.separator.case.default.objc"}},patterns:[{include:"#conditional_context"}]},case_statement:{name:"meta.conditional.case.objc",begin:"((?<!\\w)case(?!\\w))",beginCaptures:{"1":{name:"keyword.control.case.objc"}},end:"(:)",endCaptures:{"1":{name:"punctuation.separator.case.objc"}},patterns:[{include:"#conditional_context"}]},switch_statement:{name:"meta.block.switch.objc",begin:"(((?<!\\w)switch(?!\\w)))",beginCaptures:{"1":{name:"meta.head.switch.objc"},"2":{name:"keyword.control.switch.objc"}},end:"(?:(?<=\\})|(?=[;>\\[\\]=]))",patterns:[{name:"meta.head.switch.objc",begin:"\\G ?",end:"((?:\\{|(?=;)))",endCaptures:{"1":{name:"punctuation.section.block.begin.bracket.curly.switch.objc"}},patterns:[{include:"#switch_conditional_parentheses"},{include:"$base"}]},{name:"meta.body.switch.objc",begin:"(?<=\\{)",end:"(\\})",endCaptures:{"1":{name:"punctuation.section.block.end.bracket.curly.switch.objc"}},patterns:[{include:"#default_statement"},{include:"#case_statement"},{include:"$base"},{include:"#block_innards"}]},{name:"meta.tail.switch.objc",begin:"(?<=})[\\s\\n]*",end:"[\\s\\n]*(?=;)",patterns:[{include:"$base"}]}]},switch_conditional_parentheses:{name:"meta.conditional.switch.objc",begin:"(\\()",beginCaptures:{"1":{name:"punctuation.section.parens.begin.bracket.round.conditional.switch.objc"}},end:"(\\))",endCaptures:{"1":{name:"punctuation.section.parens.end.bracket.round.conditional.switch.objc"}},patterns:[{include:"#conditional_context"}]},static_assert:{begin:"(static_assert|_Static_assert)\\s*(\\()",beginCaptures:{"1":{name:"keyword.other.static_assert.objc"},"2":{name:"punctuation.section.arguments.begin.bracket.round.objc"}},end:"(\\))",endCaptures:{"1":{name:"punctuation.section.arguments.end.bracket.round.objc"}},patterns:[{name:"meta.static_assert.message.objc",begin:"(,)\\s*(?=(?:L|u8|u|U\\s*\\\")?)",beginCaptures:{"1":{name:"punctuation.separator.delimiter.objc"}},end:"(?=\\))",patterns:[{include:"#string_context"},{include:"#string_context_c"}]},{include:"#function_call_context"}]},conditional_context:{patterns:[{include:"$base"},{include:"#block_innards"}]},member_access:{match:"((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?-mix:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*(\\b(?!(?:void|char|short|int|signed|unsigned|long|float|double|bool|_Bool|_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t))[a-zA-Z_]\\w*\\b(?!\\())",captures:{"1":{patterns:[{include:"#special_variables"},{name:"variable.other.object.access.objc",match:"(.+)"}]},"2":{name:"punctuation.separator.dot-access.objc"},"3":{name:"punctuation.separator.pointer-access.objc"},"4":{patterns:[{include:"#member_access"},{include:"#method_access"},{match:"((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))",captures:{"1":{patterns:[{include:"#special_variables"},{name:"variable.other.object.access.objc",match:"(.+)"}]},"2":{name:"punctuation.separator.dot-access.objc"},"3":{name:"punctuation.separator.pointer-access.objc"}}}]},"5":{name:"variable.other.member.objc"}}},method_access:{contentName:"meta.function-call.member.objc",begin:"((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?-mix:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*([a-zA-Z_]\\w*)(\\()",beginCaptures:{"1":{patterns:[{include:"#special_variables"},{name:"variable.other.object.access.objc",match:"(.+)"}]},"2":{name:"punctuation.separator.dot-access.objc"},"3":{name:"punctuation.separator.pointer-access.objc"},"4":{patterns:[{include:"#member_access"},{include:"#method_access"},{match:"((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))",captures:{"1":{patterns:[{include:"#special_variables"},{name:"variable.other.object.access.objc",match:"(.+)"}]},"2":{name:"punctuation.separator.dot-access.objc"},"3":{name:"punctuation.separator.pointer-access.objc"}}}]},"5":{name:"entity.name.function.member.objc"},"6":{name:"punctuation.section.arguments.begin.bracket.round.function.member.objc"}},end:"(\\))",endCaptures:{"1":{name:"punctuation.section.arguments.end.bracket.round.function.member.objc"}},patterns:[{include:"#function-call-innards"}]},numbers:{begin:"(?<!\\w)(?=\\d|\\.\\d)",end:"(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))",patterns:[{match:"(\\G0[xX])(?:([0-9a-fA-F](?:(?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?((?:(?<=[0-9a-fA-F])\\.|\\.(?=[0-9a-fA-F])))(?:([0-9a-fA-F](?:(?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?(?:((?<!')([pP])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:([lLfF](?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))",captures:{"1":{name:"keyword.other.unit.hexadecimal.objc"},"2":{name:"constant.numeric.hexadecimal.objc",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objc"}]},"3":{name:"punctuation.separator.constant.numeric.objc"},"4":{name:"constant.numeric.hexadecimal.objc"},"5":{name:"constant.numeric.hexadecimal.objc",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objc"}]},"6":{name:"punctuation.separator.constant.numeric.objc"},"8":{name:"keyword.other.unit.exponent.hexadecimal.objc"},"9":{name:"keyword.operator.plus.exponent.hexadecimal.objc"},"10":{name:"keyword.operator.minus.exponent.hexadecimal.objc"},"11":{name:"constant.numeric.exponent.hexadecimal.objc",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objc"}]},"12":{name:"keyword.other.unit.suffix.floating-point.objc"}}},{match:"(\\G(?=[0-9.])(?!0[xXbB]))(?:([0-9](?:(?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?((?:(?<=[0-9])\\.|\\.(?=[0-9])))(?:([0-9](?:(?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?(?:((?<!')([eE])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:([lLfF](?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))",captures:{"2":{name:"constant.numeric.decimal.objc",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objc"}]},"3":{name:"punctuation.separator.constant.numeric.objc"},"4":{name:"constant.numeric.decimal.point.objc"},"5":{name:"constant.numeric.decimal.objc",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objc"}]},"6":{name:"punctuation.separator.constant.numeric.objc"},"8":{name:"keyword.other.unit.exponent.decimal.objc"},"9":{name:"keyword.operator.plus.exponent.decimal.objc"},"10":{name:"keyword.operator.minus.exponent.decimal.objc"},"11":{name:"constant.numeric.exponent.decimal.objc",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objc"}]},"12":{name:"keyword.other.unit.suffix.floating-point.objc"}}},{match:"(\\G0[bB])([01](?:(?:[01]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))",captures:{"1":{name:"keyword.other.unit.binary.objc"},"2":{name:"constant.numeric.binary.objc",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objc"}]},"3":{name:"punctuation.separator.constant.numeric.objc"},"4":{name:"keyword.other.unit.suffix.integer.objc"}}},{match:"(\\G0)((?:(?:[0-7]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))+)(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))",captures:{"1":{name:"keyword.other.unit.octal.objc"},"2":{name:"constant.numeric.octal.objc",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objc"}]},"3":{name:"punctuation.separator.constant.numeric.objc"},"4":{name:"keyword.other.unit.suffix.integer.objc"}}},{match:"(\\G0[xX])([0-9a-fA-F](?:(?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)(?:((?<!')([pP])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))",captures:{"1":{name:"keyword.other.unit.hexadecimal.objc"},"2":{name:"constant.numeric.hexadecimal.objc",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objc"}]},"3":{name:"punctuation.separator.constant.numeric.objc"},"5":{name:"keyword.other.unit.exponent.hexadecimal.objc"},"6":{name:"keyword.operator.plus.exponent.hexadecimal.objc"},"7":{name:"keyword.operator.minus.exponent.hexadecimal.objc"},"8":{name:"constant.numeric.exponent.hexadecimal.objc",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objc"}]},"9":{name:"keyword.other.unit.suffix.integer.objc"}}},{match:"(\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:(?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)(?:((?<!')([eE])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))",captures:{"2":{name:"constant.numeric.decimal.objc",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objc"}]},"3":{name:"punctuation.separator.constant.numeric.objc"},"5":{name:"keyword.other.unit.exponent.decimal.objc"},"6":{name:"keyword.operator.plus.exponent.decimal.objc"},"7":{name:"keyword.operator.minus.exponent.decimal.objc"},"8":{name:"constant.numeric.exponent.decimal.objc",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objc"}]},"9":{name:"keyword.other.unit.suffix.integer.objc"}}},{match:"(?:(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))+",name:"invalid.illegal.constant.numeric.objc"}]}}},comment:{patterns:[{begin:"/\\*",captures:{"0":{name:"punctuation.definition.comment.objc"}},end:"\\*/",name:"comment.block.objc"},{begin:"(^[ \\t]+)?(?=//)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.objc"}},end:"(?!\\G)",patterns:[{begin:"//",beginCaptures:{"0":{name:"punctuation.definition.comment.objc"}},end:"\\n",name:"comment.line.double-slash.objc",patterns:[{match:"(?>\\\\\\s*\\n)",name:"punctuation.separator.continuation.objc"}]}]}]},disabled:{begin:"^\\s*#\\s*if(n?def)?\\b.*$",comment:"eat nested preprocessor if(def)s",end:"^\\s*#\\s*endif\\b.*$",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},implementation_innards:{patterns:[{include:"#preprocessor-rule-enabled-implementation"},{include:"#preprocessor-rule-disabled-implementation"},{include:"#preprocessor-rule-other-implementation"},{include:"#property_directive"},{include:"#method_super"},{include:"$base"}]},interface_innards:{patterns:[{include:"#preprocessor-rule-enabled-interface"},{include:"#preprocessor-rule-disabled-interface"},{include:"#preprocessor-rule-other-interface"},{include:"#properties"},{include:"#protocol_list"},{include:"#method"},{include:"$base"}]},method:{begin:"^(-|\\+)\\s*",end:"(?=\\{|#)|;",name:"meta.function.objc",patterns:[{begin:"(\\()",beginCaptures:{"1":{name:"punctuation.definition.type.begin.objc"}},end:"(\\))\\s*(\\w+\\b)",endCaptures:{"1":{name:"punctuation.definition.type.end.objc"},"2":{name:"entity.name.function.objc"}},name:"meta.return-type.objc",patterns:[{include:"#protocol_list"},{include:"#protocol_type_qualifier"},{include:"$base"}]},{match:"\\b\\w+(?=:)",name:"entity.name.function.name-of-parameter.objc"},{begin:"((:))\\s*(\\()",beginCaptures:{"1":{name:"entity.name.function.name-of-parameter.objc"},"2":{name:"punctuation.separator.arguments.objc"},"3":{name:"punctuation.definition.type.begin.objc"}},end:"(\\))\\s*(\\w+\\b)?",endCaptures:{"1":{name:"punctuation.definition.type.end.objc"},"2":{name:"variable.parameter.function.objc"}},name:"meta.argument-type.objc",patterns:[{include:"#protocol_list"},{include:"#protocol_type_qualifier"},{include:"$base"}]},{include:"#comment"}]},method_super:{begin:"^(?=-|\\+)",end:"(?<=\\})|(?=#)",name:"meta.function-with-body.objc",patterns:[{include:"#method"},{include:"$base"}]},"pragma-mark":{captures:{"1":{name:"meta.preprocessor.objc"},"2":{name:"keyword.control.import.pragma.objc"},"3":{name:"meta.toc-list.pragma-mark.objc"}},match:"^\\s*(#\\s*(pragma\\s+mark)\\s+(.*))",name:"meta.section.objc"},"preprocessor-rule-disabled-implementation":{begin:"^\\s*(#(if)\\s+(0)\\b).*",captures:{"1":{name:"meta.preprocessor.objc"},"2":{name:"keyword.control.import.if.objc"},"3":{name:"constant.numeric.preprocessor.objc"}},end:"^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{begin:"^\\s*(#\\s*(else)\\b)",captures:{"1":{name:"meta.preprocessor.objc"},"2":{name:"keyword.control.import.else.objc"}},end:"(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{include:"#interface_innards"}]},{begin:"",end:"(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))",name:"comment.block.preprocessor.if-branch.objc",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]}]},"preprocessor-rule-disabled-interface":{begin:"^\\s*(#(if)\\s+(0)\\b).*",captures:{"1":{name:"meta.preprocessor.objc"},"2":{name:"keyword.control.import.if.objc"},"3":{name:"constant.numeric.preprocessor.objc"}},end:"^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{begin:"^\\s*(#\\s*(else)\\b)",captures:{"1":{name:"meta.preprocessor.objc"},"2":{name:"keyword.control.import.else.objc"}},end:"(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{include:"#interface_innards"}]},{begin:"",end:"(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))",name:"comment.block.preprocessor.if-branch.objc",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]}]},"preprocessor-rule-enabled-implementation":{begin:"^\\s*(#(if)\\s+(0*1)\\b)",captures:{"1":{name:"meta.preprocessor.objc"},"2":{name:"keyword.control.import.if.objc"},"3":{name:"constant.numeric.preprocessor.objc"}},end:"^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{begin:"^\\s*(#\\s*(else)\\b).*",captures:{"1":{name:"meta.preprocessor.objc"},"2":{name:"keyword.control.import.else.objc"}},contentName:"comment.block.preprocessor.else-branch.objc",end:"(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"",end:"(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{include:"#implementation_innards"}]}]},"preprocessor-rule-enabled-interface":{begin:"^\\s*(#(if)\\s+(0*1)\\b)",captures:{"1":{name:"meta.preprocessor.objc"},"2":{name:"keyword.control.import.if.objc"},"3":{name:"constant.numeric.preprocessor.objc"}},end:"^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{begin:"^\\s*(#\\s*(else)\\b).*",captures:{"1":{name:"meta.preprocessor.objc"},"2":{name:"keyword.control.import.else.objc"}},contentName:"comment.block.preprocessor.else-branch.objc",end:"(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"",end:"(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{include:"#interface_innards"}]}]},"preprocessor-rule-other-implementation":{begin:"^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))",captures:{"1":{name:"meta.preprocessor.objc"},"2":{name:"keyword.control.import.objc"}},end:"^\\s*(#\\s*(endif)\\b).*?(?:(?=(?://|/\\*))|$)",patterns:[{include:"#implementation_innards"}]},"preprocessor-rule-other-interface":{begin:"^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))",captures:{"1":{name:"meta.preprocessor.objc"},"2":{name:"keyword.control.import.objc"}},end:"^\\s*(#\\s*(endif)\\b).*?(?:(?=(?://|/\\*))|$)",patterns:[{include:"#interface_innards"}]},properties:{patterns:[{begin:"((@)property)\\s*(\\()",beginCaptures:{"1":{name:"keyword.other.property.objc"},"2":{name:"punctuation.definition.keyword.objc"},"3":{name:"punctuation.section.scope.begin.objc"}},end:"(\\))",endCaptures:{"1":{name:"punctuation.section.scope.end.objc"}},name:"meta.property-with-attributes.objc",patterns:[{match:"\\b(getter|setter|readonly|readwrite|assign|retain|copy|nonatomic|atomic|strong|weak|nonnull|nullable|null_resettable|null_unspecified|class|direct)\\b",name:"keyword.other.property.attribute.objc"}]},{captures:{"1":{name:"keyword.other.property.objc"},"2":{name:"punctuation.definition.keyword.objc"}},match:"((@)property)\\b",name:"meta.property.objc"}]},property_directive:{captures:{"1":{name:"punctuation.definition.keyword.objc"}},match:"(@)(dynamic|synthesize)\\b",name:"keyword.other.property.directive.objc"},protocol_list:{begin:"(<)",beginCaptures:{"1":{name:"punctuation.section.scope.begin.objc"}},end:"(>)",endCaptures:{"1":{name:"punctuation.section.scope.end.objc"}},name:"meta.protocol-list.objc",patterns:[{match:"\\bNS(GlyphStorage|M(utableCopying|enuItem)|C(hangeSpelling|o(ding|pying|lorPicking(Custom|Default)))|T(oolbarItemValidations|ext(Input|AttachmentCell))|I(nputServ(iceProvider|erMouseTracker)|gnoreMisspelledWords)|Obj(CTypeSerializationCallBack|ect)|D(ecimalNumberBehaviors|raggingInfo)|U(serInterfaceValidations|RL(HandleClient|DownloadDelegate|ProtocolClient|AuthenticationChallengeSender))|Validated(ToobarItem|UserInterfaceItem)|Locking)\\b",name:"support.other.protocol.objc"}]},protocol_type_qualifier:{match:"\\b(in|out|inout|oneway|bycopy|byref|nonnull|nullable|_Nonnull|_Nullable|_Null_unspecified)\\b",name:"storage.modifier.protocol.objc"},special_variables:{patterns:[{match:"\\b_cmd\\b",name:"variable.other.selector.objc"},{match:"\\b(self|super)\\b",name:"variable.language.objc"}]},string_escaped_char:{patterns:[{match:"(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3]\\d{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )",name:"constant.character.escape.objc"},{match:"\\\\.",name:"invalid.illegal.unknown-escape.objc"}]},string_placeholder:{patterns:[{match:"(?x) %\n(\\d+\\$)?\t\t\t\t\t\t # field (argument #)\n[#0\\- +']*\t\t\t\t\t\t # flags\n[,;:_]?\t\t\t\t\t\t\t # separator character (AltiVec)\n((-?\\d+)|\\*(-?\\d+\\$)?)?\t\t # minimum field width\n(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?\t# precision\n(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n[diouxXDOUeEfFgGaACcSspn%]\t\t # conversion type",name:"constant.other.placeholder.objc"},{match:"(%)(?!\"\\s*(PRI|SCN))",captures:{"1":{name:"invalid.illegal.placeholder.objc"}}}]}}}; + +export { objectiveC_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/objective-cpp.tmLanguage-f80072f8.mjs b/docs/shiki/dist/languages/objective-cpp.tmLanguage-f80072f8.mjs new file mode 100644 index 00000000..bfd44313 --- /dev/null +++ b/docs/shiki/dist/languages/objective-cpp.tmLanguage-f80072f8.mjs @@ -0,0 +1,3 @@ +var objectiveCpp_tmLanguage = {information_for_contributors:["This file has been converted from https://github.com/jeff-hykin/better-objcpp-syntax/blob/master/autogenerated/objcpp.tmLanguage.json","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."],version:"https://github.com/jeff-hykin/better-objcpp-syntax/commit/5a7eb15eee382dd5aa388bc04fdb60a0d2128e14",name:"objective-cpp",scopeName:"source.objcpp",patterns:[{include:"#cpp_lang"},{include:"#anonymous_pattern_1"},{include:"#anonymous_pattern_2"},{include:"#anonymous_pattern_3"},{include:"#anonymous_pattern_4"},{include:"#anonymous_pattern_5"},{include:"#apple_foundation_functional_macros"},{include:"#anonymous_pattern_7"},{include:"#anonymous_pattern_8"},{include:"#anonymous_pattern_9"},{include:"#anonymous_pattern_10"},{include:"#anonymous_pattern_11"},{include:"#anonymous_pattern_12"},{include:"#anonymous_pattern_13"},{include:"#anonymous_pattern_14"},{include:"#anonymous_pattern_15"},{include:"#anonymous_pattern_16"},{include:"#anonymous_pattern_17"},{include:"#anonymous_pattern_18"},{include:"#anonymous_pattern_19"},{include:"#anonymous_pattern_20"},{include:"#anonymous_pattern_21"},{include:"#anonymous_pattern_22"},{include:"#anonymous_pattern_23"},{include:"#anonymous_pattern_24"},{include:"#anonymous_pattern_25"},{include:"#anonymous_pattern_26"},{include:"#anonymous_pattern_27"},{include:"#anonymous_pattern_28"},{include:"#anonymous_pattern_29"},{include:"#anonymous_pattern_30"},{include:"#bracketed_content"},{include:"#c_lang"}],repository:{anonymous_pattern_1:{begin:"((@)(interface|protocol))(?!.+;)\\s+([A-Za-z_][A-Za-z0-9_]*)\\s*((:)(?:\\s*)([A-Za-z][A-Za-z0-9]*))?(\\s|\\n)?",captures:{"1":{name:"storage.type.objcpp"},"2":{name:"punctuation.definition.storage.type.objcpp"},"4":{name:"entity.name.type.objcpp"},"6":{name:"punctuation.definition.entity.other.inherited-class.objcpp"},"7":{name:"entity.other.inherited-class.objcpp"},"8":{name:"meta.divider.objcpp"},"9":{name:"meta.inherited-class.objcpp"}},contentName:"meta.scope.interface.objcpp",end:"((@)end)\\b",name:"meta.interface-or-protocol.objcpp",patterns:[{include:"#interface_innards"}]},anonymous_pattern_10:{captures:{"1":{name:"punctuation.definition.keyword.objcpp"}},match:"(@)(defs|encode)\\b",name:"keyword.other.objcpp"},anonymous_pattern_11:{match:"\\bid\\b",name:"storage.type.id.objcpp"},anonymous_pattern_12:{match:"\\b(IBOutlet|IBAction|BOOL|SEL|id|unichar|IMP|Class|instancetype)\\b",name:"storage.type.objcpp"},anonymous_pattern_13:{captures:{"1":{name:"punctuation.definition.storage.type.objcpp"}},match:"(@)(class|protocol)\\b",name:"storage.type.objcpp"},anonymous_pattern_14:{begin:"((@)selector)\\s*(\\()",beginCaptures:{"1":{name:"storage.type.objcpp"},"2":{name:"punctuation.definition.storage.type.objcpp"},"3":{name:"punctuation.definition.storage.type.objcpp"}},contentName:"meta.selector.method-name.objcpp",end:"(\\))",endCaptures:{"1":{name:"punctuation.definition.storage.type.objcpp"}},name:"meta.selector.objcpp",patterns:[{captures:{"1":{name:"punctuation.separator.arguments.objcpp"}},match:"\\b(?:[a-zA-Z_:][\\w]*)+",name:"support.function.any-method.name-of-parameter.objcpp"}]},anonymous_pattern_15:{captures:{"1":{name:"punctuation.definition.storage.modifier.objcpp"}},match:"(@)(synchronized|public|package|private|protected)\\b",name:"storage.modifier.objcpp"},anonymous_pattern_16:{match:"\\b(YES|NO|Nil|nil)\\b",name:"constant.language.objcpp"},anonymous_pattern_17:{match:"\\bNSApp\\b",name:"support.variable.foundation.objcpp"},anonymous_pattern_18:{captures:{"1":{name:"punctuation.whitespace.support.function.cocoa.leopard.objcpp"},"2":{name:"support.function.cocoa.leopard.objcpp"}},match:"(\\s*)\\b(NS(Rect(ToCGRect|FromCGRect)|MakeCollectable|S(tringFromProtocol|ize(ToCGSize|FromCGSize))|Draw(NinePartImage|ThreePartImage)|P(oint(ToCGPoint|FromCGPoint)|rotocolFromString)|EventMaskFromType|Value))\\b"},anonymous_pattern_19:{captures:{"1":{name:"punctuation.whitespace.support.function.leading.cocoa.objcpp"},"2":{name:"support.function.cocoa.objcpp"}},match:"(\\s*)\\b(NS(R(ound(DownToMultipleOfPageSize|UpToMultipleOfPageSize)|un(CriticalAlertPanel(RelativeToWindow)?|InformationalAlertPanel(RelativeToWindow)?|AlertPanel(RelativeToWindow)?)|e(set(MapTable|HashTable)|c(ycleZone|t(Clip(List)?|F(ill(UsingOperation|List(UsingOperation|With(Grays|Colors(UsingOperation)?))?)?|romString))|ordAllocationEvent)|turnAddress|leaseAlertPanel|a(dPixel|l(MemoryAvailable|locateCollectable))|gisterServicesProvider)|angeFromString)|Get(SizeAndAlignment|CriticalAlertPanel|InformationalAlertPanel|UncaughtExceptionHandler|FileType(s)?|WindowServerMemory|AlertPanel)|M(i(n(X|Y)|d(X|Y))|ouseInRect|a(p(Remove|Get|Member|Insert(IfAbsent|KnownAbsent)?)|ke(R(ect|ange)|Size|Point)|x(Range|X|Y)))|B(itsPer(SampleFromDepth|PixelFromDepth)|e(stDepth|ep|gin(CriticalAlertSheet|InformationalAlertSheet|AlertSheet)))|S(ho(uldRetainWithZone|w(sServicesMenuItem|AnimationEffect))|tringFrom(R(ect|ange)|MapTable|S(ize|elector)|HashTable|Class|Point)|izeFromString|e(t(ShowsServicesMenuItem|ZoneName|UncaughtExceptionHandler|FocusRingStyle)|lectorFromString|archPathForDirectoriesInDomains)|wap(Big(ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(ToHost|LongToHost))|Short|Host(ShortTo(Big|Little)|IntTo(Big|Little)|DoubleTo(Big|Little)|FloatTo(Big|Little)|Long(To(Big|Little)|LongTo(Big|Little)))|Int|Double|Float|L(ittle(ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(ToHost|LongToHost))|ong(Long)?)))|H(ighlightRect|o(stByteOrder|meDirectory(ForUser)?)|eight|ash(Remove|Get|Insert(IfAbsent|KnownAbsent)?)|FSType(CodeFromFileType|OfFile))|N(umberOfColorComponents|ext(MapEnumeratorPair|HashEnumeratorItem))|C(o(n(tainsRect|vert(GlyphsToPackedGlyphs|Swapped(DoubleToHost|FloatToHost)|Host(DoubleToSwapped|FloatToSwapped)))|unt(MapTable|HashTable|Frames|Windows(ForContext)?)|py(M(emoryPages|apTableWithZone)|Bits|HashTableWithZone|Object)|lorSpaceFromDepth|mpare(MapTables|HashTables))|lassFromString|reate(MapTable(WithZone)?|HashTable(WithZone)?|Zone|File(namePboardType|ContentsPboardType)))|TemporaryDirectory|I(s(ControllerMarker|EmptyRect|FreedObject)|n(setRect|crementExtraRefCount|te(r(sect(sRect|ionR(ect|ange))|faceStyleForKey)|gralRect)))|Zone(Realloc|Malloc|Name|Calloc|Fr(omPointer|ee))|O(penStepRootDirectory|ffsetRect)|D(i(sableScreenUpdates|videRect)|ottedFrameRect|e(c(imal(Round|Multiply|S(tring|ubtract)|Normalize|Co(py|mpa(ct|re))|IsNotANumber|Divide|Power|Add)|rementExtraRefCountWasZero)|faultMallocZone|allocate(MemoryPages|Object))|raw(Gr(oove|ayBezel)|B(itmap|utton)|ColorTiledRects|TiledRects|DarkBezel|W(hiteBezel|indowBackground)|LightBezel))|U(serName|n(ionR(ect|ange)|registerServicesProvider)|pdateDynamicServices)|Java(Bundle(Setup|Cleanup)|Setup(VirtualMachine)?|Needs(ToLoadClasses|VirtualMachine)|ClassesF(orBundle|romPath)|ObjectNamedInPath|ProvidesClasses)|P(oint(InRect|FromString)|erformService|lanarFromDepth|ageSize)|E(n(d(MapTableEnumeration|HashTableEnumeration)|umerate(MapTable|HashTable)|ableScreenUpdates)|qual(R(ects|anges)|Sizes|Points)|raseRect|xtraRefCount)|F(ileTypeForHFSTypeCode|ullUserName|r(ee(MapTable|HashTable)|ame(Rect(WithWidth(UsingOperation)?)?|Address)))|Wi(ndowList(ForContext)?|dth)|Lo(cationInRange|g(v|PageSize)?)|A(ccessibility(R(oleDescription(ForUIElement)?|aiseBadArgumentException)|Unignored(Children(ForOnlyChild)?|Descendant|Ancestor)|PostNotification|ActionDescription)|pplication(Main|Load)|vailableWindowDepths|ll(MapTable(Values|Keys)|HashTableObjects|ocate(MemoryPages|Collectable|Object)))))\\b"},anonymous_pattern_2:{begin:"((@)(implementation))\\s+([A-Za-z_][A-Za-z0-9_]*)\\s*(?::\\s*([A-Za-z][A-Za-z0-9]*))?",captures:{"1":{name:"storage.type.objcpp"},"2":{name:"punctuation.definition.storage.type.objcpp"},"4":{name:"entity.name.type.objcpp"},"5":{name:"entity.other.inherited-class.objcpp"}},contentName:"meta.scope.implementation.objcpp",end:"((@)end)\\b",name:"meta.implementation.objcpp",patterns:[{include:"#implementation_innards"}]},anonymous_pattern_20:{match:"\\bNS(RuleEditor|G(arbageCollector|radient)|MapTable|HashTable|Co(ndition|llectionView(Item)?)|T(oolbarItemGroup|extInputClient|r(eeNode|ackingArea))|InvocationOperation|Operation(Queue)?|D(ictionaryController|ockTile)|P(ointer(Functions|Array)|athC(o(ntrol(Delegate)?|mponentCell)|ell(Delegate)?)|r(intPanelAccessorizing|edicateEditor(RowTemplate)?))|ViewController|FastEnumeration|Animat(ionContext|ablePropertyContainer))\\b",name:"support.class.cocoa.leopard.objcpp"},anonymous_pattern_21:{match:"\\bNS(R(u(nLoop|ler(Marker|View))|e(sponder|cursiveLock|lativeSpecifier)|an(domSpecifier|geSpecifier))|G(etCommand|lyph(Generator|Storage|Info)|raphicsContext)|XML(Node|D(ocument|TD(Node)?)|Parser|Element)|M(iddleSpecifier|ov(ie(View)?|eCommand)|utable(S(tring|et)|C(haracterSet|opying)|IndexSet|D(ictionary|ata)|URLRequest|ParagraphStyle|A(ttributedString|rray))|e(ssagePort(NameServer)?|nu(Item(Cell)?|View)?|t(hodSignature|adata(Item|Query(ResultGroup|AttributeValueTuple)?)))|a(ch(BootstrapServer|Port)|trix))|B(itmapImageRep|ox|u(ndle|tton(Cell)?)|ezierPath|rowser(Cell)?)|S(hadow|c(anner|r(ipt(SuiteRegistry|C(o(ercionHandler|mmand(Description)?)|lassDescription)|ObjectSpecifier|ExecutionContext|WhoseTest)|oll(er|View)|een))|t(epper(Cell)?|atus(Bar|Item)|r(ing|eam))|imple(HorizontalTypesetter|CString)|o(cketPort(NameServer)?|und|rtDescriptor)|p(e(cifierTest|ech(Recognizer|Synthesizer)|ll(Server|Checker))|litView)|e(cureTextField(Cell)?|t(Command)?|archField(Cell)?|rializer|gmentedC(ontrol|ell))|lider(Cell)?|avePanel)|H(ost|TTP(Cookie(Storage)?|URLResponse)|elpManager)|N(ib(Con(nector|trolConnector)|OutletConnector)?|otification(Center|Queue)?|u(ll|mber(Formatter)?)|etService(Browser)?|ameSpecifier)|C(ha(ngeSpelling|racterSet)|o(n(stantString|nection|trol(ler)?|ditionLock)|d(ing|er)|unt(Command|edSet)|pying|lor(Space|P(ick(ing(Custom|Default)|er)|anel)|Well|List)?|m(p(oundPredicate|arisonPredicate)|boBox(Cell)?))|u(stomImageRep|rsor)|IImageRep|ell|l(ipView|o(seCommand|neCommand)|assDescription)|a(ched(ImageRep|URLResponse)|lendar(Date)?)|reateCommand)|T(hread|ypesetter|ime(Zone|r)|o(olbar(Item(Validations)?)?|kenField(Cell)?)|ext(Block|Storage|Container|Tab(le(Block)?)?|Input|View|Field(Cell)?|List|Attachment(Cell)?)?|a(sk|b(le(Header(Cell|View)|Column|View)|View(Item)?))|reeController)|I(n(dex(S(pecifier|et)|Path)|put(Manager|S(tream|erv(iceProvider|er(MouseTracker)?)))|vocation)|gnoreMisspelledWords|mage(Rep|Cell|View)?)|O(ut(putStream|lineView)|pen(GL(Context|Pixel(Buffer|Format)|View)|Panel)|bj(CTypeSerializationCallBack|ect(Controller)?))|D(i(st(antObject(Request)?|ributed(NotificationCenter|Lock))|ctionary|rectoryEnumerator)|ocument(Controller)?|e(serializer|cimalNumber(Behaviors|Handler)?|leteCommand)|at(e(Components|Picker(Cell)?|Formatter)?|a)|ra(wer|ggingInfo))|U(ser(InterfaceValidations|Defaults(Controller)?)|RL(Re(sponse|quest)|Handle(Client)?|C(onnection|ache|redential(Storage)?)|Download(Delegate)?|Prot(ocol(Client)?|ectionSpace)|AuthenticationChallenge(Sender)?)?|n(iqueIDSpecifier|doManager|archiver))|P(ipe|o(sitionalSpecifier|pUpButton(Cell)?|rt(Message|NameServer|Coder)?)|ICTImageRep|ersistentDocument|DFImageRep|a(steboard|nel|ragraphStyle|geLayout)|r(int(Info|er|Operation|Panel)|o(cessInfo|tocolChecker|perty(Specifier|ListSerialization)|gressIndicator|xy)|edicate))|E(numerator|vent|PSImageRep|rror|x(ception|istsCommand|pression))|V(iew(Animation)?|al(idated(ToobarItem|UserInterfaceItem)|ue(Transformer)?))|Keyed(Unarchiver|Archiver)|Qui(ckDrawView|tCommand)|F(ile(Manager|Handle|Wrapper)|o(nt(Manager|Descriptor|Panel)?|rm(Cell|atter)))|W(hoseSpecifier|indow(Controller)?|orkspace)|L(o(c(k(ing)?|ale)|gicalTest)|evelIndicator(Cell)?|ayoutManager)|A(ssertionHandler|nimation|ctionCell|ttributedString|utoreleasePool|TSTypesetter|ppl(ication|e(Script|Event(Manager|Descriptor)))|ffineTransform|lert|r(chiver|ray(Controller)?)))\\b",name:"support.class.cocoa.objcpp"},anonymous_pattern_22:{match:"\\bNS(R(oundingMode|ule(Editor(RowType|NestingMode)|rOrientation)|e(questUserAttentionType|lativePosition))|G(lyphInscription|radientDrawingOptions)|XML(NodeKind|D(ocumentContentKind|TDNodeKind)|ParserError)|M(ultibyteGlyphPacking|apTableOptions)|B(itmapFormat|oxType|ezierPathElement|ackgroundStyle|rowserDropOperation)|S(tr(ing(CompareOptions|DrawingOptions|EncodingConversionOptions)|eam(Status|Event))|p(eechBoundary|litViewDividerStyle)|e(archPathD(irectory|omainMask)|gmentS(tyle|witchTracking))|liderType|aveOptions)|H(TTPCookieAcceptPolicy|ashTableOptions)|N(otification(SuspensionBehavior|Coalescing)|umberFormatter(RoundingMode|Behavior|Style|PadPosition)|etService(sError|Options))|C(haracterCollection|o(lor(RenderingIntent|SpaceModel|PanelMode)|mp(oundPredicateType|arisonPredicateModifier))|ellStateValue|al(culationError|endarUnit))|T(ypesetterControlCharacterAction|imeZoneNameStyle|e(stComparisonOperation|xt(Block(Dimension|V(erticalAlignment|alueType)|Layer)|TableLayoutAlgorithm|FieldBezelStyle))|ableView(SelectionHighlightStyle|ColumnAutoresizingStyle)|rackingAreaOptions)|I(n(sertionPosition|te(rfaceStyle|ger))|mage(RepLoadStatus|Scaling|CacheMode|FrameStyle|LoadStatus|Alignment))|Ope(nGLPixelFormatAttribute|rationQueuePriority)|Date(Picker(Mode|Style)|Formatter(Behavior|Style))|U(RL(RequestCachePolicy|HandleStatus|C(acheStoragePolicy|redentialPersistence))|Integer)|P(o(stingStyle|int(ingDeviceType|erFunctionsOptions)|pUpArrowPosition)|athStyle|r(int(ing(Orientation|PaginationMode)|erTableStatus|PanelOptions)|opertyList(MutabilityOptions|Format)|edicateOperatorType))|ExpressionType|KeyValue(SetMutationKind|Change)|QTMovieLoopMode|F(indPanel(SubstringMatchType|Action)|o(nt(RenderingMode|FamilyClass)|cusRingPlacement))|W(hoseSubelementIdentifier|ind(ingRule|ow(B(utton|ackingLocation)|SharingType|CollectionBehavior)))|L(ine(MovementDirection|SweepDirection|CapStyle|JoinStyle)|evelIndicatorStyle)|Animation(BlockingMode|Curve))\\b",name:"support.type.cocoa.leopard.objcpp"},anonymous_pattern_23:{match:"\\bC(I(Sampler|Co(ntext|lor)|Image(Accumulator)?|PlugIn(Registration)?|Vector|Kernel|Filter(Generator|Shape)?)|A(Renderer|MediaTiming(Function)?|BasicAnimation|ScrollLayer|Constraint(LayoutManager)?|T(iledLayer|extLayer|rans(ition|action))|OpenGLLayer|PropertyAnimation|KeyframeAnimation|Layer|A(nimation(Group)?|ction)))\\b",name:"support.class.quartz.objcpp"},anonymous_pattern_24:{match:"\\bC(G(Float|Point|Size|Rect)|IFormat|AConstraintAttribute)\\b",name:"support.type.quartz.objcpp"},anonymous_pattern_25:{match:"\\bNS(R(ect(Edge)?|ange)|G(lyph(Relation|LayoutMode)?|radientType)|M(odalSession|a(trixMode|p(Table|Enumerator)))|B(itmapImageFileType|orderType|uttonType|ezelStyle|ackingStoreType|rowserColumnResizingType)|S(cr(oll(er(Part|Arrow)|ArrowPosition)|eenAuxiliaryOpaque)|tringEncoding|ize|ocketNativeHandle|election(Granularity|Direction|Affinity)|wapped(Double|Float)|aveOperationType)|Ha(sh(Table|Enumerator)|ndler(2)?)|C(o(ntrol(Size|Tint)|mp(ositingOperation|arisonResult))|ell(State|Type|ImagePosition|Attribute))|T(hreadPrivate|ypesetterGlyphInfo|i(ckMarkPosition|tlePosition|meInterval)|o(ol(TipTag|bar(SizeMode|DisplayMode))|kenStyle)|IFFCompression|ext(TabType|Alignment)|ab(State|leViewDropOperation|ViewType)|rackingRectTag)|ImageInterpolation|Zone|OpenGL(ContextAuxiliary|PixelFormatAuxiliary)|D(ocumentChangeType|atePickerElementFlags|ra(werState|gOperation))|UsableScrollerParts|P(oint|r(intingPageOrder|ogressIndicator(Style|Th(ickness|readInfo))))|EventType|KeyValueObservingOptions|Fo(nt(SymbolicTraits|TraitMask|Action)|cusRingType)|W(indow(OrderingMode|Depth)|orkspace(IconCreationOptions|LaunchOptions)|ritingDirection)|L(ineBreakMode|ayout(Status|Direction))|A(nimation(Progress|Effect)|ppl(ication(TerminateReply|DelegateReply|PrintReply)|eEventManagerSuspensionID)|ffineTransformStruct|lertStyle))\\b",name:"support.type.cocoa.objcpp"},anonymous_pattern_26:{match:"\\bNS(NotFound|Ordered(Ascending|Descending|Same))\\b",name:"support.constant.cocoa.objcpp"},anonymous_pattern_27:{match:"\\bNS(MenuDidBeginTracking|ViewDidUpdateTrackingAreas)?Notification\\b",name:"support.constant.notification.cocoa.leopard.objcpp"},anonymous_pattern_28:{match:"\\bNS(Menu(Did(RemoveItem|SendAction|ChangeItem|EndTracking|AddItem)|WillSendAction)|S(ystemColorsDidChange|plitView(DidResizeSubviews|WillResizeSubviews))|C(o(nt(extHelpModeDid(Deactivate|Activate)|rolT(intDidChange|extDid(BeginEditing|Change|EndEditing)))|lor(PanelColorDidChange|ListDidChange)|mboBox(Selection(IsChanging|DidChange)|Will(Dismiss|PopUp)))|lassDescriptionNeededForClass)|T(oolbar(DidRemoveItem|WillAddItem)|ext(Storage(DidProcessEditing|WillProcessEditing)|Did(BeginEditing|Change|EndEditing)|View(DidChange(Selection|TypingAttributes)|WillChangeNotifyingTextView))|ableView(Selection(IsChanging|DidChange)|ColumnDid(Resize|Move)))|ImageRepRegistryDidChange|OutlineView(Selection(IsChanging|DidChange)|ColumnDid(Resize|Move)|Item(Did(Collapse|Expand)|Will(Collapse|Expand)))|Drawer(Did(Close|Open)|Will(Close|Open))|PopUpButton(CellWillPopUp|WillPopUp)|View(GlobalFrameDidChange|BoundsDidChange|F(ocusDidChange|rameDidChange))|FontSetChanged|W(indow(Did(Resi(ze|gn(Main|Key))|M(iniaturize|ove)|Become(Main|Key)|ChangeScreen(|Profile)|Deminiaturize|Update|E(ndSheet|xpose))|Will(M(iniaturize|ove)|BeginSheet|Close))|orkspace(SessionDid(ResignActive|BecomeActive)|Did(Mount|TerminateApplication|Unmount|PerformFileOperation|Wake|LaunchApplication)|Will(Sleep|Unmount|PowerOff|LaunchApplication)))|A(ntialiasThresholdChanged|ppl(ication(Did(ResignActive|BecomeActive|Hide|ChangeScreenParameters|U(nhide|pdate)|FinishLaunching)|Will(ResignActive|BecomeActive|Hide|Terminate|U(nhide|pdate)|FinishLaunching))|eEventManagerWillProcessFirstEvent)))Notification\\b",name:"support.constant.notification.cocoa.objcpp"},anonymous_pattern_29:{match:"\\bNS(RuleEditor(RowType(Simple|Compound)|NestingMode(Si(ngle|mple)|Compound|List))|GradientDraws(BeforeStartingLocation|AfterEndingLocation)|M(inusSetExpressionType|a(chPortDeallocate(ReceiveRight|SendRight|None)|pTable(StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality)))|B(oxCustom|undleExecutableArchitecture(X86|I386|PPC(64)?)|etweenPredicateOperatorType|ackgroundStyle(Raised|Dark|L(ight|owered)))|S(tring(DrawingTruncatesLastVisibleLine|EncodingConversion(ExternalRepresentation|AllowLossy))|ubqueryExpressionType|p(e(ech(SentenceBoundary|ImmediateBoundary|WordBoundary)|llingState(GrammarFlag|SpellingFlag))|litViewDividerStyleThi(n|ck))|e(rvice(RequestTimedOutError|M(iscellaneousError|alformedServiceDictionaryError)|InvalidPasteboardDataError|ErrorM(inimum|aximum)|Application(NotFoundError|LaunchFailedError))|gmentStyle(Round(Rect|ed)|SmallSquare|Capsule|Textured(Rounded|Square)|Automatic)))|H(UDWindowMask|ashTable(StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality))|N(oModeColorPanel|etServiceNoAutoRename)|C(hangeRedone|o(ntainsPredicateOperatorType|l(orRenderingIntent(RelativeColorimetric|Saturation|Default|Perceptual|AbsoluteColorimetric)|lectorDisabledOption))|ellHit(None|ContentArea|TrackableArea|EditableTextArea))|T(imeZoneNameStyle(S(hort(Standard|DaylightSaving)|tandard)|DaylightSaving)|extFieldDatePickerStyle|ableViewSelectionHighlightStyle(Regular|SourceList)|racking(Mouse(Moved|EnteredAndExited)|CursorUpdate|InVisibleRect|EnabledDuringMouseDrag|A(ssumeInside|ctive(In(KeyWindow|ActiveApp)|WhenFirstResponder|Always))))|I(n(tersectSetExpressionType|dexedColorSpaceModel)|mageScale(None|Proportionally(Down|UpOrDown)|AxesIndependently))|Ope(nGLPFAAllowOfflineRenderers|rationQueue(DefaultMaxConcurrentOperationCount|Priority(High|Normal|Very(High|Low)|Low)))|D(iacriticInsensitiveSearch|ownloadsDirectory)|U(nionSetExpressionType|TF(16(BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)|32(BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)))|P(ointerFunctions(Ma(chVirtualMemory|llocMemory)|Str(ongMemory|uctPersonality)|C(StringPersonality|opyIn)|IntegerPersonality|ZeroingWeakMemory|O(paque(Memory|Personality)|bjectP(ointerPersonality|ersonality)))|at(hStyle(Standard|NavigationBar|PopUp)|ternColorSpaceModel)|rintPanelShows(Scaling|Copies|Orientation|P(a(perSize|ge(Range|SetupAccessory))|review)))|Executable(RuntimeMismatchError|NotLoadableError|ErrorM(inimum|aximum)|L(inkError|oadError)|ArchitectureMismatchError)|KeyValueObservingOption(Initial|Prior)|F(i(ndPanelSubstringMatchType(StartsWith|Contains|EndsWith|FullWord)|leRead(TooLargeError|UnknownStringEncodingError))|orcedOrderingSearch)|Wi(ndow(BackingLocation(MainMemory|Default|VideoMemory)|Sharing(Read(Only|Write)|None)|CollectionBehavior(MoveToActiveSpace|CanJoinAllSpaces|Default))|dthInsensitiveSearch)|AggregateExpressionType)\\b",name:"support.constant.cocoa.leopard.objcpp"},anonymous_pattern_3:{begin:"@\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.objcpp"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.double.objcpp",patterns:[{include:"#string_escaped_char"},{match:"(?x)%\n\t\t\t\t\t\t(\\d+\\$)? # field (argument #)\n\t\t\t\t\t\t[#0\\- +']* # flags\n\t\t\t\t\t\t((-?\\d+)|\\*(-?\\d+\\$)?)? # minimum field width\n\t\t\t\t\t\t(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)? # precision\n\t\t\t\t\t\t[@] # conversion type\n\t\t\t\t\t",name:"constant.other.placeholder.objcpp"},{include:"#string_placeholder"}]},anonymous_pattern_30:{match:"\\bNS(R(GB(ModeColorPanel|ColorSpaceModel)|ight(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|T(ext(Movement|Alignment)|ab(sBezelBorder|StopType))|ArrowFunctionKey)|ound(RectBezelStyle|Bankers|ed(BezelStyle|TokenStyle|DisclosureBezelStyle)|Down|Up|Plain|Line(CapStyle|JoinStyle))|un(StoppedResponse|ContinuesResponse|AbortedResponse)|e(s(izableWindowMask|et(CursorRectsRunLoopOrdering|FunctionKey))|ce(ssedBezelStyle|iver(sCantHandleCommandScriptError|EvaluationScriptError))|turnTextMovement|doFunctionKey|quiredArgumentsMissingScriptError|l(evancyLevelIndicatorStyle|ative(Before|After))|gular(SquareBezelStyle|ControlSize)|moveTraitFontAction)|a(n(domSubelement|geDateMode)|tingLevelIndicatorStyle|dio(ModeMatrix|Button)))|G(IFFileType|lyph(Below|Inscribe(B(elow|ase)|Over(strike|Below)|Above)|Layout(WithPrevious|A(tAPoint|gainstAPoint))|A(ttribute(BidiLevel|Soft|Inscribe|Elastic)|bove))|r(ooveBorder|eaterThan(Comparison|OrEqualTo(Comparison|PredicateOperatorType)|PredicateOperatorType)|a(y(ModeColorPanel|ColorSpaceModel)|dient(None|Con(cave(Strong|Weak)|vex(Strong|Weak)))|phiteControlTint)))|XML(N(o(tationDeclarationKind|de(CompactEmptyElement|IsCDATA|OptionsNone|Use(SingleQuotes|DoubleQuotes)|Pre(serve(NamespaceOrder|C(haracterReferences|DATA)|DTD|Prefixes|E(ntities|mptyElements)|Quotes|Whitespace|A(ttributeOrder|ll))|ttyPrint)|ExpandEmptyElement))|amespaceKind)|CommentKind|TextKind|InvalidKind|D(ocument(X(MLKind|HTMLKind|Include)|HTMLKind|T(idy(XML|HTML)|extKind)|IncludeContentTypeDeclaration|Validate|Kind)|TDKind)|P(arser(GTRequiredError|XMLDeclNot(StartedError|FinishedError)|Mi(splaced(XMLDeclarationError|CDATAEndStringError)|xedContentDeclNot(StartedError|FinishedError))|S(t(andaloneValueError|ringNot(StartedError|ClosedError))|paceRequiredError|eparatorRequiredError)|N(MTOKENRequiredError|o(t(ationNot(StartedError|FinishedError)|WellBalancedError)|DTDError)|amespaceDeclarationError|AMERequiredError)|C(haracterRef(In(DTDError|PrologError|EpilogError)|AtEOFError)|o(nditionalSectionNot(StartedError|FinishedError)|mment(NotFinishedError|ContainsDoubleHyphenError))|DATANotFinishedError)|TagNameMismatchError|In(ternalError|valid(HexCharacterRefError|C(haracter(RefError|InEntityError|Error)|onditionalSectionError)|DecimalCharacterRefError|URIError|Encoding(NameError|Error)))|OutOfMemoryError|D(ocumentStartError|elegateAbortedParseError|OCTYPEDeclNotFinishedError)|U(RI(RequiredError|FragmentError)|n(declaredEntityError|parsedEntityError|knownEncodingError|finishedTagError))|P(CDATARequiredError|ublicIdentifierRequiredError|arsedEntityRef(MissingSemiError|NoNameError|In(Internal(SubsetError|Error)|PrologError|EpilogError)|AtEOFError)|r(ocessingInstructionNot(StartedError|FinishedError)|ematureDocumentEndError))|E(n(codingNotSupportedError|tity(Ref(In(DTDError|PrologError|EpilogError)|erence(MissingSemiError|WithoutNameError)|LoopError|AtEOFError)|BoundaryError|Not(StartedError|FinishedError)|Is(ParameterError|ExternalError)|ValueRequiredError))|qualExpectedError|lementContentDeclNot(StartedError|FinishedError)|xt(ernalS(tandaloneEntityError|ubsetNotFinishedError)|raContentError)|mptyDocumentError)|L(iteralNot(StartedError|FinishedError)|T(RequiredError|SlashRequiredError)|essThanSymbolInAttributeError)|Attribute(RedefinedError|HasNoValueError|Not(StartedError|FinishedError)|ListNot(StartedError|FinishedError)))|rocessingInstructionKind)|E(ntity(GeneralKind|DeclarationKind|UnparsedKind|P(ar(sedKind|ameterKind)|redefined))|lement(Declaration(MixedKind|UndefinedKind|E(lementKind|mptyKind)|Kind|AnyKind)|Kind))|Attribute(N(MToken(sKind|Kind)|otationKind)|CDATAKind|ID(Ref(sKind|Kind)|Kind)|DeclarationKind|En(tit(yKind|iesKind)|umerationKind)|Kind))|M(i(n(XEdge|iaturizableWindowMask|YEdge|uteCalendarUnit)|terLineJoinStyle|ddleSubelement|xedState)|o(nthCalendarUnit|deSwitchFunctionKey|use(Moved(Mask)?|E(ntered(Mask)?|ventSubtype|xited(Mask)?))|veToBezierPathElement|mentary(ChangeButton|Push(Button|InButton)|Light(Button)?))|enuFunctionKey|a(c(intoshInterfaceStyle|OSRomanStringEncoding)|tchesPredicateOperatorType|ppedRead|x(XEdge|YEdge))|ACHOperatingSystem)|B(MPFileType|o(ttomTabsBezelBorder|ldFontMask|rderlessWindowMask|x(Se(condary|parator)|OldStyle|Primary))|uttLineCapStyle|e(zelBorder|velLineJoinStyle|low(Bottom|Top)|gin(sWith(Comparison|PredicateOperatorType)|FunctionKey))|lueControlTint|ack(spaceCharacter|tabTextMovement|ingStore(Retained|Buffered|Nonretained)|TabCharacter|wardsSearch|groundTab)|r(owser(NoColumnResizing|UserColumnResizing|AutoColumnResizing)|eakFunctionKey))|S(h(ift(JISStringEncoding|KeyMask)|ow(ControlGlyphs|InvisibleGlyphs)|adowlessSquareBezelStyle)|y(s(ReqFunctionKey|tem(D(omainMask|efined(Mask)?)|FunctionKey))|mbolStringEncoding)|c(a(nnedOption|le(None|ToFit|Proportionally))|r(oll(er(NoPart|Increment(Page|Line|Arrow)|Decrement(Page|Line|Arrow)|Knob(Slot)?|Arrows(M(inEnd|axEnd)|None|DefaultSetting))|Wheel(Mask)?|LockFunctionKey)|eenChangedEventType))|t(opFunctionKey|r(ingDrawing(OneShot|DisableScreenFontSubstitution|Uses(DeviceMetrics|FontLeading|LineFragmentOrigin))|eam(Status(Reading|NotOpen|Closed|Open(ing)?|Error|Writing|AtEnd)|Event(Has(BytesAvailable|SpaceAvailable)|None|OpenCompleted|E(ndEncountered|rrorOccurred)))))|i(ngle(DateMode|UnderlineStyle)|ze(DownFontAction|UpFontAction))|olarisOperatingSystem|unOSOperatingSystem|pecialPageOrder|e(condCalendarUnit|lect(By(Character|Paragraph|Word)|i(ng(Next|Previous)|onAffinity(Downstream|Upstream))|edTab|FunctionKey)|gmentSwitchTracking(Momentary|Select(One|Any)))|quareLineCapStyle|witchButton|ave(ToOperation|Op(tions(Yes|No|Ask)|eration)|AsOperation)|mall(SquareBezelStyle|C(ontrolSize|apsFontMask)|IconButtonBezelStyle))|H(ighlightModeMatrix|SBModeColorPanel|o(ur(Minute(SecondDatePickerElementFlag|DatePickerElementFlag)|CalendarUnit)|rizontalRuler|meFunctionKey)|TTPCookieAcceptPolicy(Never|OnlyFromMainDocumentDomain|Always)|e(lp(ButtonBezelStyle|KeyMask|FunctionKey)|avierFontAction)|PUXOperatingSystem)|Year(MonthDa(yDatePickerElementFlag|tePickerElementFlag)|CalendarUnit)|N(o(n(StandardCharacterSetFontMask|ZeroWindingRule|activatingPanelMask|LossyASCIIStringEncoding)|Border|t(ification(SuspensionBehavior(Hold|Coalesce|D(eliverImmediately|rop))|NoCoalescing|CoalescingOn(Sender|Name)|DeliverImmediately|PostToAllSessions)|PredicateType|EqualToPredicateOperatorType)|S(cr(iptError|ollerParts)|ubelement|pecifierError)|CellMask|T(itle|opLevelContainersSpecifierError|abs(BezelBorder|NoBorder|LineBorder))|I(nterfaceStyle|mage)|UnderlineStyle|FontChangeAction)|u(ll(Glyph|CellType)|m(eric(Search|PadKeyMask)|berFormatter(Round(Half(Down|Up|Even)|Ceiling|Down|Up|Floor)|Behavior(10|Default)|S(cientificStyle|pellOutStyle)|NoStyle|CurrencyStyle|DecimalStyle|P(ercentStyle|ad(Before(Suffix|Prefix)|After(Suffix|Prefix))))))|e(t(Services(BadArgumentError|NotFoundError|C(ollisionError|ancelledError)|TimeoutError|InvalidError|UnknownError|ActivityInProgress)|workDomainMask)|wlineCharacter|xt(StepInterfaceStyle|FunctionKey))|EXTSTEPStringEncoding|a(t(iveShortGlyphPacking|uralTextAlignment)|rrowFontMask))|C(hange(ReadOtherContents|GrayCell(Mask)?|BackgroundCell(Mask)?|Cleared|Done|Undone|Autosaved)|MYK(ModeColorPanel|ColorSpaceModel)|ircular(BezelStyle|Slider)|o(n(stantValueExpressionType|t(inuousCapacityLevelIndicatorStyle|entsCellMask|ain(sComparison|erSpecifierError)|rol(Glyph|KeyMask))|densedFontMask)|lor(Panel(RGBModeMask|GrayModeMask|HSBModeMask|C(MYKModeMask|olorListModeMask|ustomPaletteModeMask|rayonModeMask)|WheelModeMask|AllModesMask)|ListModeColorPanel)|reServiceDirectory|m(p(osite(XOR|Source(In|O(ut|ver)|Atop)|Highlight|C(opy|lear)|Destination(In|O(ut|ver)|Atop)|Plus(Darker|Lighter))|ressedFontMask)|mandKeyMask))|u(stom(SelectorPredicateOperatorType|PaletteModeColorPanel)|r(sor(Update(Mask)?|PointingDevice)|veToBezierPathElement))|e(nterT(extAlignment|abStopType)|ll(State|H(ighlighted|as(Image(Horizontal|OnLeftOrBottom)|OverlappingImage))|ChangesContents|Is(Bordered|InsetButton)|Disabled|Editable|LightsBy(Gray|Background|Contents)|AllowsMixedState))|l(ipPagination|o(s(ePathBezierPathElement|ableWindowMask)|ckAndCalendarDatePickerStyle)|ear(ControlTint|DisplayFunctionKey|LineFunctionKey))|a(seInsensitive(Search|PredicateOption)|n(notCreateScriptCommandError|cel(Button|TextMovement))|chesDirectory|lculation(NoError|Overflow|DivideByZero|Underflow|LossOfPrecision)|rriageReturnCharacter)|r(itical(Request|AlertStyle)|ayonModeColorPanel))|T(hick(SquareBezelStyle|erSquareBezelStyle)|ypesetter(Behavior|HorizontalTabAction|ContainerBreakAction|ZeroAdvancementAction|OriginalBehavior|ParagraphBreakAction|WhitespaceAction|L(ineBreakAction|atestBehavior))|i(ckMark(Right|Below|Left|Above)|tledWindowMask|meZoneDatePickerElementFlag)|o(olbarItemVisibilityPriority(Standard|High|User|Low)|pTabsBezelBorder|ggleButton)|IFF(Compression(N(one|EXT)|CCITTFAX(3|4)|OldJPEG|JPEG|PackBits|LZW)|FileType)|e(rminate(Now|Cancel|Later)|xt(Read(InapplicableDocumentTypeError|WriteErrorM(inimum|aximum))|Block(M(i(nimum(Height|Width)|ddleAlignment)|a(rgin|ximum(Height|Width)))|B(o(ttomAlignment|rder)|aselineAlignment)|Height|TopAlignment|P(ercentageValueType|adding)|Width|AbsoluteValueType)|StorageEdited(Characters|Attributes)|CellType|ured(RoundedBezelStyle|BackgroundWindowMask|SquareBezelStyle)|Table(FixedLayoutAlgorithm|AutomaticLayoutAlgorithm)|Field(RoundedBezel|SquareBezel|AndStepperDatePickerStyle)|WriteInapplicableDocumentTypeError|ListPrependEnclosingMarker))|woByteGlyphPacking|ab(Character|TextMovement|le(tP(oint(Mask|EventSubtype)?|roximity(Mask|EventSubtype)?)|Column(NoResizing|UserResizingMask|AutoresizingMask)|View(ReverseSequentialColumnAutoresizingStyle|GridNone|S(olid(HorizontalGridLineMask|VerticalGridLineMask)|equentialColumnAutoresizingStyle)|NoColumnAutoresizing|UniformColumnAutoresizingStyle|FirstColumnOnlyAutoresizingStyle|LastColumnOnlyAutoresizingStyle)))|rackModeMatrix)|I(n(sert(CharFunctionKey|FunctionKey|LineFunctionKey)|t(Type|ernalS(criptError|pecifierError))|dexSubelement|validIndexSpecifierError|formational(Request|AlertStyle)|PredicateOperatorType)|talicFontMask|SO(2022JPStringEncoding|Latin(1StringEncoding|2StringEncoding))|dentityMappingCharacterCollection|llegalTextMovement|mage(R(ight|ep(MatchesDevice|LoadStatus(ReadingHeader|Completed|InvalidData|Un(expectedEOF|knownType)|WillNeedAllData)))|Below|C(ellType|ache(BySize|Never|Default|Always))|Interpolation(High|None|Default|Low)|O(nly|verlaps)|Frame(Gr(oove|ayBezel)|Button|None|Photo)|L(oadStatus(ReadError|C(ompleted|ancelled)|InvalidData|UnexpectedEOF)|eft)|A(lign(Right|Bottom(Right|Left)?|Center|Top(Right|Left)?|Left)|bove)))|O(n(State|eByteGlyphPacking|OffButton|lyScrollerArrows)|ther(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|TextMovement)|SF1OperatingSystem|pe(n(GL(GO(Re(setLibrary|tainRenderers)|ClearFormatCache|FormatCacheSize)|PFA(R(obust|endererID)|M(inimumPolicy|ulti(sample|Screen)|PSafe|aximumPolicy)|BackingStore|S(creenMask|te(ncilSize|reo)|ingleRenderer|upersample|ample(s|Buffers|Alpha))|NoRecovery|C(o(lor(Size|Float)|mpliant)|losestPolicy)|OffScreen|D(oubleBuffer|epthSize)|PixelBuffer|VirtualScreenCount|FullScreen|Window|A(cc(umSize|elerated)|ux(Buffers|DepthStencil)|l(phaSize|lRenderers))))|StepUnicodeReservedBase)|rationNotSupportedForKeyS(criptError|pecifierError))|ffState|KButton|rPredicateType|bjC(B(itfield|oolType)|S(hortType|tr(ingType|uctType)|electorType)|NoType|CharType|ObjectType|DoubleType|UnionType|PointerType|VoidType|FloatType|Long(Type|longType)|ArrayType))|D(i(s(c(losureBezelStyle|reteCapacityLevelIndicatorStyle)|playWindowRunLoopOrdering)|acriticInsensitivePredicateOption|rect(Selection|PredicateModifier))|o(c(ModalWindowMask|ument(Directory|ationDirectory))|ubleType|wn(TextMovement|ArrowFunctionKey))|e(s(cendingPageOrder|ktopDirectory)|cimalTabStopType|v(ice(NColorSpaceModel|IndependentModifierFlagsMask)|eloper(Directory|ApplicationDirectory))|fault(ControlTint|TokenStyle)|lete(Char(acter|FunctionKey)|FunctionKey|LineFunctionKey)|moApplicationDirectory)|a(yCalendarUnit|teFormatter(MediumStyle|Behavior(10|Default)|ShortStyle|NoStyle|FullStyle|LongStyle))|ra(wer(Clos(ingState|edState)|Open(ingState|State))|gOperation(Generic|Move|None|Copy|Delete|Private|Every|Link|All)))|U(ser(CancelledError|D(irectory|omainMask)|FunctionKey)|RL(Handle(NotLoaded|Load(Succeeded|InProgress|Failed))|CredentialPersistence(None|Permanent|ForSession))|n(scaledWindowMask|cachedRead|i(codeStringEncoding|talicFontMask|fiedTitleAndToolbarWindowMask)|d(o(CloseGroupingRunLoopOrdering|FunctionKey)|e(finedDateComponent|rline(Style(Single|None|Thick|Double)|Pattern(Solid|D(ot|ash(Dot(Dot)?)?)))))|known(ColorSpaceModel|P(ointingDevice|ageOrder)|KeyS(criptError|pecifierError))|boldFontMask)|tilityWindowMask|TF8StringEncoding|p(dateWindowsRunLoopOrdering|TextMovement|ArrowFunctionKey))|J(ustifiedTextAlignment|PEG(2000FileType|FileType)|apaneseEUC(GlyphPacking|StringEncoding))|P(o(s(t(Now|erFontMask|WhenIdle|ASAP)|iti(on(Replace|Be(fore|ginning)|End|After)|ve(IntType|DoubleType|FloatType)))|pUp(NoArrow|ArrowAt(Bottom|Center))|werOffEventType|rtraitOrientation)|NGFileType|ush(InCell(Mask)?|OnPushOffButton)|e(n(TipMask|UpperSideMask|PointingDevice|LowerSideMask)|riodic(Mask)?)|P(S(caleField|tatus(Title|Field)|aveButton)|N(ote(Title|Field)|ame(Title|Field))|CopiesField|TitleField|ImageButton|OptionsButton|P(a(perFeedButton|ge(Range(To|From)|ChoiceMatrix))|reviewButton)|LayoutButton)|lainTextTokenStyle|a(useFunctionKey|ragraphSeparatorCharacter|ge(DownFunctionKey|UpFunctionKey))|r(int(ing(ReplyLater|Success|Cancelled|Failure)|ScreenFunctionKey|erTable(NotFound|OK|Error)|FunctionKey)|o(p(ertyList(XMLFormat|MutableContainers(AndLeaves)?|BinaryFormat|Immutable|OpenStepFormat)|rietaryStringEncoding)|gressIndicator(BarStyle|SpinningStyle|Preferred(SmallThickness|Thickness|LargeThickness|AquaThickness)))|e(ssedTab|vFunctionKey))|L(HeightForm|CancelButton|TitleField|ImageButton|O(KButton|rientationMatrix)|UnitsButton|PaperNameButton|WidthForm))|E(n(terCharacter|d(sWith(Comparison|PredicateOperatorType)|FunctionKey))|v(e(nOddWindingRule|rySubelement)|aluatedObjectExpressionType)|qualTo(Comparison|PredicateOperatorType)|ra(serPointingDevice|CalendarUnit|DatePickerElementFlag)|x(clude(10|QuickDrawElementsIconCreationOption)|pandedFontMask|ecuteFunctionKey))|V(i(ew(M(in(XMargin|YMargin)|ax(XMargin|YMargin))|HeightSizable|NotSizable|WidthSizable)|aPanelFontAction)|erticalRuler|a(lidationErrorM(inimum|aximum)|riableExpressionType))|Key(SpecifierEvaluationScriptError|Down(Mask)?|Up(Mask)?|PathExpressionType|Value(MinusSetMutation|SetSetMutation|Change(Re(placement|moval)|Setting|Insertion)|IntersectSetMutation|ObservingOption(New|Old)|UnionSetMutation|ValidationError))|QTMovie(NormalPlayback|Looping(BackAndForthPlayback|Playback))|F(1(1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|7FunctionKey|i(nd(PanelAction(Replace(A(ndFind|ll(InSelection)?))?|S(howFindPanel|e(tFindString|lectAll(InSelection)?))|Next|Previous)|FunctionKey)|tPagination|le(Read(No(SuchFileError|PermissionError)|CorruptFileError|In(validFileNameError|applicableStringEncodingError)|Un(supportedSchemeError|knownError))|HandlingPanel(CancelButton|OKButton)|NoSuchFileError|ErrorM(inimum|aximum)|Write(NoPermissionError|In(validFileNameError|applicableStringEncodingError)|OutOfSpaceError|Un(supportedSchemeError|knownError))|LockingError)|xedPitchFontMask)|2(1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|o(nt(Mo(noSpaceTrait|dernSerifsClass)|BoldTrait|S(ymbolicClass|criptsClass|labSerifsClass|ansSerifClass)|C(o(ndensedTrait|llectionApplicationOnlyMask)|larendonSerifsClass)|TransitionalSerifsClass|I(ntegerAdvancementsRenderingMode|talicTrait)|O(ldStyleSerifsClass|rnamentalsClass)|DefaultRenderingMode|U(nknownClass|IOptimizedTrait)|Panel(S(hadowEffectModeMask|t(andardModesMask|rikethroughEffectModeMask)|izeModeMask)|CollectionModeMask|TextColorEffectModeMask|DocumentColorEffectModeMask|UnderlineEffectModeMask|FaceModeMask|All(ModesMask|EffectsModeMask))|ExpandedTrait|VerticalTrait|F(amilyClassMask|reeformSerifsClass)|Antialiased(RenderingMode|IntegerAdvancementsRenderingMode))|cusRing(Below|Type(None|Default|Exterior)|Only|Above)|urByteGlyphPacking|rm(attingError(M(inimum|aximum))?|FeedCharacter))|8FunctionKey|unction(ExpressionType|KeyMask)|3(1FunctionKey|2FunctionKey|3FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey)|9FunctionKey|4FunctionKey|P(RevertButton|S(ize(Title|Field)|etButton)|CurrentField|Preview(Button|Field))|l(oat(ingPointSamplesBitmapFormat|Type)|agsChanged(Mask)?)|axButton|5FunctionKey|6FunctionKey)|W(heelModeColorPanel|indow(s(NTOperatingSystem|CP125(1StringEncoding|2StringEncoding|3StringEncoding|4StringEncoding|0StringEncoding)|95(InterfaceStyle|OperatingSystem))|M(iniaturizeButton|ovedEventType)|Below|CloseButton|ToolbarButton|ZoomButton|Out|DocumentIconButton|ExposedEventType|Above)|orkspaceLaunch(NewInstance|InhibitingBackgroundOnly|Default|PreferringClassic|WithoutA(ctivation|ddingToRecents)|A(sync|nd(Hide(Others)?|Print)|llowingClassicStartup))|eek(day(CalendarUnit|OrdinalCalendarUnit)|CalendarUnit)|a(ntsBidiLevels|rningAlertStyle)|r(itingDirection(RightToLeft|Natural|LeftToRight)|apCalendarComponents))|L(i(stModeMatrix|ne(Moves(Right|Down|Up|Left)|B(order|reakBy(C(harWrapping|lipping)|Truncating(Middle|Head|Tail)|WordWrapping))|S(eparatorCharacter|weep(Right|Down|Up|Left))|ToBezierPathElement|DoesntMove|arSlider)|teralSearch|kePredicateOperatorType|ghterFontAction|braryDirectory)|ocalDomainMask|e(ssThan(Comparison|OrEqualTo(Comparison|PredicateOperatorType)|PredicateOperatorType)|ft(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|T(ext(Movement|Alignment)|ab(sBezelBorder|StopType))|ArrowFunctionKey))|a(yout(RightToLeft|NotDone|CantFit|OutOfGlyphs|Done|LeftToRight)|ndscapeOrientation)|ABColorSpaceModel)|A(sc(iiWithDoubleByteEUCGlyphPacking|endingPageOrder)|n(y(Type|PredicateModifier|EventMask)|choredSearch|imation(Blocking|Nonblocking(Threaded)?|E(ffect(DisappearingItemDefault|Poof)|ase(In(Out)?|Out))|Linear)|dPredicateType)|t(Bottom|tachmentCharacter|omicWrite|Top)|SCIIStringEncoding|d(obe(GB1CharacterCollection|CNS1CharacterCollection|Japan(1CharacterCollection|2CharacterCollection)|Korea1CharacterCollection)|dTraitFontAction|minApplicationDirectory)|uto(saveOperation|Pagination)|pp(lication(SupportDirectory|D(irectory|e(fined(Mask)?|legateReply(Success|Cancel|Failure)|activatedEventType))|ActivatedEventType)|KitDefined(Mask)?)|l(ternateKeyMask|pha(ShiftKeyMask|NonpremultipliedBitmapFormat|FirstBitmapFormat)|ert(SecondButtonReturn|ThirdButtonReturn|OtherReturn|DefaultReturn|ErrorReturn|FirstButtonReturn|AlternateReturn)|l(ScrollerParts|DomainsMask|PredicateModifier|LibrariesDirectory|ApplicationsDirectory))|rgument(sWrongScriptError|EvaluationScriptError)|bove(Bottom|Top)|WTEventType))\\b",name:"support.constant.cocoa.objcpp"},anonymous_pattern_4:{begin:"\\b(id)\\s*(?=<)",beginCaptures:{"1":{name:"storage.type.objcpp"}},end:"(?<=>)",name:"meta.id-with-protocol.objcpp",patterns:[{include:"#protocol_list"}]},anonymous_pattern_5:{match:"\\b(NS_DURING|NS_HANDLER|NS_ENDHANDLER)\\b",name:"keyword.control.macro.objcpp"},anonymous_pattern_7:{captures:{"1":{name:"punctuation.definition.keyword.objcpp"}},match:"(@)(try|catch|finally|throw)\\b",name:"keyword.control.exception.objcpp"},anonymous_pattern_8:{captures:{"1":{name:"punctuation.definition.keyword.objcpp"}},match:"(@)(synchronized)\\b",name:"keyword.control.synchronize.objcpp"},anonymous_pattern_9:{captures:{"1":{name:"punctuation.definition.keyword.objcpp"}},match:"(@)(required|optional)\\b",name:"keyword.control.protocol-specification.objcpp"},apple_foundation_functional_macros:{begin:"(\\b(?:API_AVAILABLE|API_DEPRECATED|API_UNAVAILABLE|NS_AVAILABLE|NS_AVAILABLE_MAC|NS_AVAILABLE_IOS|NS_DEPRECATED|NS_DEPRECATED_MAC|NS_DEPRECATED_IOS|NS_SWIFT_NAME))(?:(?:\\s)+)?(\\()",end:"\\)",beginCaptures:{"1":{name:"entity.name.function.preprocessor.apple-foundation.objcpp"},"2":{name:"punctuation.section.macro.arguments.begin.bracket.round.apple-foundation.objcpp"}},endCaptures:{"0":{name:"punctuation.section.macro.arguments.end.bracket.round.apple-foundation.objcpp"}},name:"meta.preprocessor.macro.callable.apple-foundation.objcpp",patterns:[{include:"#c_lang"}]},bracketed_content:{begin:"\\[",beginCaptures:{"0":{name:"punctuation.section.scope.begin.objcpp"}},end:"\\]",endCaptures:{"0":{name:"punctuation.section.scope.end.objcpp"}},name:"meta.bracketed.objcpp",patterns:[{begin:"(?=predicateWithFormat:)(?<=NSPredicate )(predicateWithFormat:)",beginCaptures:{"1":{name:"support.function.any-method.objcpp"},"2":{name:"punctuation.separator.arguments.objcpp"}},end:"(?=\\])",name:"meta.function-call.predicate.objcpp",patterns:[{captures:{"1":{name:"punctuation.separator.arguments.objcpp"}},match:"\\bargument(Array|s)(:)",name:"support.function.any-method.name-of-parameter.objcpp"},{captures:{"1":{name:"punctuation.separator.arguments.objcpp"}},match:"\\b\\w+(:)",name:"invalid.illegal.unknown-method.objcpp"},{begin:"@\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.objcpp"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.double.objcpp",patterns:[{match:"\\b(AND|OR|NOT|IN)\\b",name:"keyword.operator.logical.predicate.cocoa.objcpp"},{match:"\\b(ALL|ANY|SOME|NONE)\\b",name:"constant.language.predicate.cocoa.objcpp"},{match:"\\b(NULL|NIL|SELF|TRUE|YES|FALSE|NO|FIRST|LAST|SIZE)\\b",name:"constant.language.predicate.cocoa.objcpp"},{match:"\\b(MATCHES|CONTAINS|BEGINSWITH|ENDSWITH|BETWEEN)\\b",name:"keyword.operator.comparison.predicate.cocoa.objcpp"},{match:"\\bC(ASEINSENSITIVE|I)\\b",name:"keyword.other.modifier.predicate.cocoa.objcpp"},{match:"\\b(ANYKEY|SUBQUERY|CAST|TRUEPREDICATE|FALSEPREDICATE)\\b",name:"keyword.other.predicate.cocoa.objcpp"},{match:"\\\\(\\\\|[abefnrtv'\"?]|[0-3]\\d{,2}|[4-7]\\d?|x[a-zA-Z0-9]+)",name:"constant.character.escape.objcpp"},{match:"\\\\.",name:"invalid.illegal.unknown-escape.objcpp"}]},{include:"#special_variables"},{include:"#c_functions"},{include:"$base"}]},{begin:"(?=\\w)(?<=[\\w\\])\"] )(\\w+(?:(:)|(?=\\])))",beginCaptures:{"1":{name:"support.function.any-method.objcpp"},"2":{name:"punctuation.separator.arguments.objcpp"}},end:"(?=\\])",name:"meta.function-call.objcpp",patterns:[{captures:{"1":{name:"punctuation.separator.arguments.objcpp"}},match:"\\b\\w+(:)",name:"support.function.any-method.name-of-parameter.objcpp"},{include:"#special_variables"},{include:"#c_functions"},{include:"$base"}]},{include:"#special_variables"},{include:"#c_functions"},{include:"$self"}]},c_functions:{patterns:[{captures:{"1":{name:"punctuation.whitespace.support.function.leading.objcpp"},"2":{name:"support.function.C99.objcpp"}},match:"(\\s*)\\b(hypot(f|l)?|s(scanf|ystem|nprintf|ca(nf|lb(n(f|l)?|ln(f|l)?))|i(n(h(f|l)?|f|l)?|gn(al|bit))|tr(s(tr|pn)|nc(py|at|mp)|c(spn|hr|oll|py|at|mp)|to(imax|d|u(l(l)?|max)|k|f|l(d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(jmp|vbuf|locale|buf)|qrt(f|l)?|w(scanf|printf)|rand)|n(e(arbyint(f|l)?|xt(toward(f|l)?|after(f|l)?))|an(f|l)?)|c(s(in(h(f|l)?|f|l)?|qrt(f|l)?)|cos(h(f)?|f|l)?|imag(f|l)?|t(ime|an(h(f|l)?|f|l)?)|o(s(h(f|l)?|f|l)?|nj(f|l)?|pysign(f|l)?)|p(ow(f|l)?|roj(f|l)?)|e(il(f|l)?|xp(f|l)?)|l(o(ck|g(f|l)?)|earerr)|a(sin(h(f|l)?|f|l)?|cos(h(f|l)?|f|l)?|tan(h(f|l)?|f|l)?|lloc|rg(f|l)?|bs(f|l)?)|real(f|l)?|brt(f|l)?)|t(ime|o(upper|lower)|an(h(f|l)?|f|l)?|runc(f|l)?|gamma(f|l)?|mp(nam|file))|i(s(space|n(ormal|an)|cntrl|inf|digit|u(nordered|pper)|p(unct|rint)|finite|w(space|c(ntrl|type)|digit|upper|p(unct|rint)|lower|al(num|pha)|graph|xdigit|blank)|l(ower|ess(equal|greater)?)|al(num|pha)|gr(eater(equal)?|aph)|xdigit|blank)|logb(f|l)?|max(div|abs))|di(v|fftime)|_Exit|unget(c|wc)|p(ow(f|l)?|ut(s|c(har)?|wc(har)?)|error|rintf)|e(rf(c(f|l)?|f|l)?|x(it|p(2(f|l)?|f|l|m1(f|l)?)?))|v(s(scanf|nprintf|canf|printf|w(scanf|printf))|printf|f(scanf|printf|w(scanf|printf))|w(scanf|printf)|a_(start|copy|end|arg))|qsort|f(s(canf|e(tpos|ek))|close|tell|open|dim(f|l)?|p(classify|ut(s|c|w(s|c))|rintf)|e(holdexcept|set(e(nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(aiseexcept|ror)|get(e(nv|xceptflag)|round))|flush|w(scanf|ide|printf|rite)|loor(f|l)?|abs(f|l)?|get(s|c|pos|w(s|c))|re(open|e|ad|xp(f|l)?)|m(in(f|l)?|od(f|l)?|a(f|l|x(f|l)?)?))|l(d(iv|exp(f|l)?)|o(ngjmp|cal(time|econv)|g(1(p(f|l)?|0(f|l)?)|2(f|l)?|f|l|b(f|l)?)?)|abs|l(div|abs|r(int(f|l)?|ound(f|l)?))|r(int(f|l)?|ound(f|l)?)|gamma(f|l)?)|w(scanf|c(s(s(tr|pn)|nc(py|at|mp)|c(spn|hr|oll|py|at|mp)|to(imax|d|u(l(l)?|max)|k|f|l(d|l)?|mbs)|pbrk|ftime|len|r(chr|tombs)|xfrm)|to(b|mb)|rtomb)|printf|mem(set|c(hr|py|mp)|move))|a(s(sert|ctime|in(h(f|l)?|f|l)?)|cos(h(f|l)?|f|l)?|t(o(i|f|l(l)?)|exit|an(h(f|l)?|2(f|l)?|f|l)?)|b(s|ort))|g(et(s|c(har)?|env|wc(har)?)|mtime)|r(int(f|l)?|ound(f|l)?|e(name|alloc|wind|m(ove|quo(f|l)?|ainder(f|l)?))|a(nd|ise))|b(search|towc)|m(odf(f|l)?|em(set|c(hr|py|mp)|move)|ktime|alloc|b(s(init|towcs|rtowcs)|towc|len|r(towc|len))))\\b"},{captures:{"1":{name:"punctuation.whitespace.function-call.leading.objcpp"},"2":{name:"support.function.any-method.objcpp"},"3":{name:"punctuation.definition.parameters.objcpp"}},match:"(?x) (?: (?= \\s ) (?:(?<=else|new|return) | (?<!\\w)) (\\s+))?\n \t\t\t(\\b \n \t\t\t\t(?!(while|for|do|if|else|switch|catch|enumerate|return|r?iterate)\\s*\\()(?:(?!NS)[A-Za-z_][A-Za-z0-9_]*+\\b | :: )++ # actual name\n \t\t\t)\n \t\t\t \\s*(\\()",name:"meta.function-call.objcpp"}]},c_lang:{patterns:[{include:"#preprocessor-rule-enabled"},{include:"#preprocessor-rule-disabled"},{include:"#preprocessor-rule-conditional"},{include:"#comments"},{include:"#switch_statement"},{match:"\\b(break|continue|do|else|for|goto|if|_Pragma|return|while)\\b",name:"keyword.control.objcpp"},{include:"#storage_types"},{match:"typedef",name:"keyword.other.typedef.objcpp"},{match:"\\bin\\b",name:"keyword.other.in.objcpp"},{match:"\\b(const|extern|register|restrict|static|volatile|inline|__block)\\b",name:"storage.modifier.objcpp"},{match:"\\bk[A-Z]\\w*\\b",name:"constant.other.variable.mac-classic.objcpp"},{match:"\\bg[A-Z]\\w*\\b",name:"variable.other.readwrite.global.mac-classic.objcpp"},{match:"\\bs[A-Z]\\w*\\b",name:"variable.other.readwrite.static.mac-classic.objcpp"},{match:"\\b(NULL|true|false|TRUE|FALSE)\\b",name:"constant.language.objcpp"},{include:"#operators"},{include:"#numbers"},{include:"#strings"},{include:"#special_variables"},{begin:"(?x)\n^\\s* ((\\#)\\s*define) \\s+\t# define\n((?<id>[a-zA-Z_$][\\w$]*))\t # macro name\n(?:\n (\\()\n\t(\n\t \\s* \\g<id> \\s*\t\t # first argument\n\t ((,) \\s* \\g<id> \\s*)* # additional arguments\n\t (?:\\.\\.\\.)?\t\t\t# varargs ellipsis?\n\t)\n (\\))\n)?",beginCaptures:{"1":{name:"keyword.control.directive.define.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"},"3":{name:"entity.name.function.preprocessor.objcpp"},"5":{name:"punctuation.definition.parameters.begin.objcpp"},"6":{name:"variable.parameter.preprocessor.objcpp"},"8":{name:"punctuation.separator.parameters.objcpp"},"9":{name:"punctuation.definition.parameters.end.objcpp"}},end:"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.macro.objcpp",patterns:[{include:"#preprocessor-rule-define-line-contents"}]},{begin:"^\\s*((#)\\s*(error|warning))\\b\\s*",beginCaptures:{"1":{name:"keyword.control.directive.diagnostic.$3.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"(?<!\\\\)(?=\\n)",name:"meta.preprocessor.diagnostic.objcpp",patterns:[{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.objcpp"}},end:"\"|(?<!\\\\)(?=\\s*\\n)",endCaptures:{"0":{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.double.objcpp",patterns:[{include:"#line_continuation_character"}]},{begin:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.objcpp"}},end:"'|(?<!\\\\)(?=\\s*\\n)",endCaptures:{"0":{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.single.objcpp",patterns:[{include:"#line_continuation_character"}]},{begin:"[^'\"]",end:"(?<!\\\\)(?=\\s*\\n)",name:"string.unquoted.single.objcpp",patterns:[{include:"#line_continuation_character"},{include:"#comments"}]}]},{begin:"^\\s*((#)\\s*(include(?:_next)?|import))\\b\\s*",beginCaptures:{"1":{name:"keyword.control.directive.$3.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.include.objcpp",patterns:[{include:"#line_continuation_character"},{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.objcpp"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.double.include.objcpp"},{begin:"<",beginCaptures:{"0":{name:"punctuation.definition.string.begin.objcpp"}},end:">",endCaptures:{"0":{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.other.lt-gt.include.objcpp"}]},{include:"#pragma-mark"},{begin:"^\\s*((#)\\s*line)\\b",beginCaptures:{"1":{name:"keyword.control.directive.line.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#strings"},{include:"#numbers"},{include:"#line_continuation_character"}]},{begin:"^\\s*(?:((#)\\s*undef))\\b",beginCaptures:{"1":{name:"keyword.control.directive.undef.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{match:"[a-zA-Z_$][\\w$]*",name:"entity.name.function.preprocessor.objcpp"},{include:"#line_continuation_character"}]},{begin:"^\\s*(?:((#)\\s*pragma))\\b",beginCaptures:{"1":{name:"keyword.control.directive.pragma.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.pragma.objcpp",patterns:[{include:"#strings"},{match:"[a-zA-Z_$][\\w\\-$]*",name:"entity.other.attribute-name.pragma.preprocessor.objcpp"},{include:"#numbers"},{include:"#line_continuation_character"}]},{match:"\\b(u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t)\\b",name:"support.type.sys-types.objcpp"},{match:"\\b(pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t)\\b",name:"support.type.pthread.objcpp"},{match:"(?x) \\b\n(int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t\n|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t\n|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t\n|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t\n|uintmax_t|uintmax_t)\n\\b",name:"support.type.stdint.objcpp"},{match:"\\b(noErr|kNilOptions|kInvalidID|kVariableLengthArray)\\b",name:"support.constant.mac-classic.objcpp"},{match:"(?x) \\b\n(AbsoluteTime|Boolean|Byte|ByteCount|ByteOffset|BytePtr|CompTimeValue|ConstLogicalAddress|ConstStrFileNameParam\n|ConstStringPtr|Duration|Fixed|FixedPtr|Float32|Float32Point|Float64|Float80|Float96|FourCharCode|Fract|FractPtr\n|Handle|ItemCount|LogicalAddress|OptionBits|OSErr|OSStatus|OSType|OSTypePtr|PhysicalAddress|ProcessSerialNumber\n|ProcessSerialNumberPtr|ProcHandle|Ptr|ResType|ResTypePtr|ShortFixed|ShortFixedPtr|SignedByte|SInt16|SInt32|SInt64\n|SInt8|Size|StrFileName|StringHandle|StringPtr|TimeBase|TimeRecord|TimeScale|TimeValue|TimeValue64|UInt16|UInt32\n|UInt64|UInt8|UniChar|UniCharCount|UniCharCountPtr|UniCharPtr|UnicodeScalarValue|UniversalProcHandle|UniversalProcPtr\n|UnsignedFixed|UnsignedFixedPtr|UnsignedWide|UTF16Char|UTF32Char|UTF8Char)\n\\b",name:"support.type.mac-classic.objcpp"},{match:"\\b([A-Za-z0-9_]+_t)\\b",name:"support.type.posix-reserved.objcpp"},{include:"#block"},{include:"#parens"},{name:"meta.function.objcpp",begin:"(?<!\\w)(?!\\s*(?:not|compl|sizeof|not_eq|bitand|xor|bitor|and|or|and_eq|xor_eq|or_eq|alignof|alignas|_Alignof|_Alignas|while|for|do|if|else|goto|switch|return|break|case|continue|default|void|char|short|int|signed|unsigned|long|float|double|bool|_Bool|_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|NULL|true|false|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t|struct|union|enum|typedef|auto|register|static|extern|thread_local|inline|_Noreturn|const|volatile|restrict|_Atomic)\\s*\\()(?=[a-zA-Z_]\\w*\\s*\\()",end:"(?<=\\))",patterns:[{include:"#function-innards"}]},{include:"#line_continuation_character"},{name:"meta.bracket.square.access.objcpp",begin:"([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))?(\\[)(?!\\])",beginCaptures:{"1":{name:"variable.object.objcpp"},"2":{name:"punctuation.definition.begin.bracket.square.objcpp"}},end:"\\]",endCaptures:{"0":{name:"punctuation.definition.end.bracket.square.objcpp"}},patterns:[{include:"#function-call-innards"}]},{name:"storage.modifier.array.bracket.square.objcpp",match:"\\[\\s*\\]"},{match:";",name:"punctuation.terminator.statement.objcpp"},{match:",",name:"punctuation.separator.delimiter.objcpp"}],repository:{probably_a_parameter:{match:"(?<=(?:[a-zA-Z_0-9] |[&*>\\]\\)]))\\s*([a-zA-Z_]\\w*)\\s*(?=(?:\\[\\]\\s*)?(?:,|\\)))",captures:{"1":{name:"variable.parameter.probably.objcpp"}}},"access-method":{name:"meta.function-call.member.objcpp",begin:"([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))\\s*(?:(\\.)|(->))((?:(?:[a-zA-Z_][a-zA-Z_0-9]*)\\s*(?:(?:\\.)|(?:->)))*)\\s*([a-zA-Z_][a-zA-Z_0-9]*)(\\()",beginCaptures:{"1":{name:"variable.object.objcpp"},"2":{name:"punctuation.separator.dot-access.objcpp"},"3":{name:"punctuation.separator.pointer-access.objcpp"},"4":{patterns:[{match:"\\.",name:"punctuation.separator.dot-access.objcpp"},{match:"->",name:"punctuation.separator.pointer-access.objcpp"},{match:"[a-zA-Z_][a-zA-Z_0-9]*",name:"variable.object.objcpp"},{name:"everything.else.objcpp",match:".+"}]},"5":{name:"entity.name.function.member.objcpp"},"6":{name:"punctuation.section.arguments.begin.bracket.round.function.member.objcpp"}},end:"\\)",endCaptures:{"0":{name:"punctuation.section.arguments.end.bracket.round.function.member.objcpp"}},patterns:[{include:"#function-call-innards"}]},block:{patterns:[{begin:"{",beginCaptures:{"0":{name:"punctuation.section.block.begin.bracket.curly.objcpp"}},end:"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)",endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.objcpp"}},name:"meta.block.objcpp",patterns:[{include:"#block_innards"}]}]},block_innards:{patterns:[{include:"#preprocessor-rule-enabled-block"},{include:"#preprocessor-rule-disabled-block"},{include:"#preprocessor-rule-conditional-block"},{include:"#method_access"},{include:"#member_access"},{include:"#c_function_call"},{name:"meta.initialization.objcpp",begin:"(?x)\n(?:\n (?:\n\t(?=\\s)(?<!else|new|return)\n\t(?<=\\w) \\s+(and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas) # or word + space before name\n )\n)\n(\n (?:[A-Za-z_][A-Za-z0-9_]*+ | :: )++ # actual name\n |\n (?:(?<=operator) (?:[-*&<>=+!]+ | \\(\\) | \\[\\]))\n)\n\\s*(\\() # opening bracket",beginCaptures:{"1":{name:"variable.other.objcpp"},"2":{name:"punctuation.section.parens.begin.bracket.round.initialization.objcpp"}},end:"\\)",endCaptures:{"0":{name:"punctuation.section.parens.end.bracket.round.initialization.objcpp"}},patterns:[{include:"#function-call-innards"}]},{begin:"{",beginCaptures:{"0":{name:"punctuation.section.block.begin.bracket.curly.objcpp"}},end:"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)",endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.objcpp"}},patterns:[{include:"#block_innards"}]},{include:"#parens-block"},{include:"$base"}]},c_function_call:{begin:"(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(?=\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)",end:"(?<=\\))(?!\\w)",name:"meta.function-call.objcpp",patterns:[{include:"#function-call-innards"}]},comments:{patterns:[{captures:{"1":{name:"meta.toc-list.banner.block.objcpp"}},match:"^/\\* =(\\s*.*?)\\s*= \\*/$\\n?",name:"comment.block.objcpp"},{begin:"/\\*",beginCaptures:{"0":{name:"punctuation.definition.comment.begin.objcpp"}},end:"\\*/",endCaptures:{"0":{name:"punctuation.definition.comment.end.objcpp"}},name:"comment.block.objcpp"},{captures:{"1":{name:"meta.toc-list.banner.line.objcpp"}},match:"^// =(\\s*.*?)\\s*=\\s*$\\n?",name:"comment.line.banner.objcpp"},{begin:"(^[ \\t]+)?(?=//)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.objcpp"}},end:"(?!\\G)",patterns:[{begin:"//",beginCaptures:{"0":{name:"punctuation.definition.comment.objcpp"}},end:"(?=\\n)",name:"comment.line.double-slash.objcpp",patterns:[{include:"#line_continuation_character"}]}]}]},disabled:{begin:"^\\s*#\\s*if(n?def)?\\b.*$",end:"^\\s*#\\s*endif\\b",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},line_continuation_character:{patterns:[{match:"(\\\\)\\n",captures:{"1":{name:"constant.character.escape.line-continuation.objcpp"}}}]},parens:{name:"meta.parens.objcpp",begin:"\\(",beginCaptures:{"0":{name:"punctuation.section.parens.begin.bracket.round.objcpp"}},end:"\\)",endCaptures:{"0":{name:"punctuation.section.parens.end.bracket.round.objcpp"}},patterns:[{include:"$base"}]},"parens-block":{name:"meta.parens.block.objcpp",begin:"\\(",beginCaptures:{"0":{name:"punctuation.section.parens.begin.bracket.round.objcpp"}},end:"\\)",endCaptures:{"0":{name:"punctuation.section.parens.end.bracket.round.objcpp"}},patterns:[{include:"#block_innards"},{match:"(?-mix:(?<!:):(?!:))",name:"punctuation.range-based.objcpp"}]},"pragma-mark":{captures:{"1":{name:"meta.preprocessor.pragma.objcpp"},"2":{name:"keyword.control.directive.pragma.pragma-mark.objcpp"},"3":{name:"punctuation.definition.directive.objcpp"},"4":{name:"entity.name.tag.pragma-mark.objcpp"}},match:"^\\s*(((#)\\s*pragma\\s+mark)\\s+(.*))",name:"meta.section.objcpp"},operators:{patterns:[{match:"(?<![\\w$])(sizeof)(?![\\w$])",name:"keyword.operator.sizeof.objcpp"},{match:"--",name:"keyword.operator.decrement.objcpp"},{match:"\\+\\+",name:"keyword.operator.increment.objcpp"},{match:"%=|\\+=|-=|\\*=|(?<!\\()/=",name:"keyword.operator.assignment.compound.objcpp"},{match:"&=|\\^=|<<=|>>=|\\|=",name:"keyword.operator.assignment.compound.bitwise.objcpp"},{match:"<<|>>",name:"keyword.operator.bitwise.shift.objcpp"},{match:"!=|<=|>=|==|<|>",name:"keyword.operator.comparison.objcpp"},{match:"&&|!|\\|\\|",name:"keyword.operator.logical.objcpp"},{match:"&|\\||\\^|~",name:"keyword.operator.objcpp"},{match:"=",name:"keyword.operator.assignment.objcpp"},{match:"%|\\*|/|-|\\+",name:"keyword.operator.objcpp"},{begin:"(\\?)",beginCaptures:{"1":{name:"keyword.operator.ternary.objcpp"}},end:"(:)",endCaptures:{"1":{name:"keyword.operator.ternary.objcpp"}},patterns:[{include:"#function-call-innards"},{include:"$base"}]}]},strings:{patterns:[{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.objcpp"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.double.objcpp",patterns:[{include:"#string_escaped_char"},{include:"#string_placeholder"},{include:"#line_continuation_character"}]},{begin:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.objcpp"}},end:"'",endCaptures:{"0":{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.single.objcpp",patterns:[{include:"#string_escaped_char"},{include:"#line_continuation_character"}]}]},string_escaped_char:{patterns:[{match:"(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3]\\d{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )",name:"constant.character.escape.objcpp"},{match:"\\\\.",name:"invalid.illegal.unknown-escape.objcpp"}]},string_placeholder:{patterns:[{match:"(?x) %\n(\\d+\\$)?\t\t\t\t\t\t # field (argument #)\n[#0\\- +']*\t\t\t\t\t\t # flags\n[,;:_]?\t\t\t\t\t\t\t # separator character (AltiVec)\n((-?\\d+)|\\*(-?\\d+\\$)?)?\t\t # minimum field width\n(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?\t# precision\n(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n[diouxXDOUeEfFgGaACcSspn%]\t\t # conversion type",name:"constant.other.placeholder.objcpp"},{match:"(%)(?!\"\\s*(PRI|SCN))",captures:{"1":{name:"invalid.illegal.placeholder.objcpp"}}}]},storage_types:{patterns:[{match:"(?-mix:(?<!\\w)(?:void|char|short|int|signed|unsigned|long|float|double|bool|_Bool)(?!\\w))",name:"storage.type.built-in.primitive.objcpp"},{match:"(?-mix:(?<!\\w)(?:_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t)(?!\\w))",name:"storage.type.built-in.objcpp"},{match:"(?-mix:\\b(asm|__asm__|enum|struct|union)\\b)",name:"storage.type.$1.objcpp"}]},vararg_ellipses:{match:"(?<!\\.)\\.\\.\\.(?!\\.)",name:"punctuation.vararg-ellipses.objcpp"},"preprocessor-rule-conditional":{patterns:[{begin:"^\\s*((#)\\s*if(?:n?def)?\\b)",beginCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#preprocessor-rule-enabled-elif"},{include:"#preprocessor-rule-enabled-else"},{include:"#preprocessor-rule-disabled-elif"},{begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"$base"}]},{match:"^\\s*#\\s*(else|elif|endif)\\b",captures:{"0":{name:"invalid.illegal.stray-$1.objcpp"}}}]},"preprocessor-rule-conditional-block":{patterns:[{begin:"^\\s*((#)\\s*if(?:n?def)?\\b)",beginCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#preprocessor-rule-enabled-elif-block"},{include:"#preprocessor-rule-enabled-else-block"},{include:"#preprocessor-rule-disabled-elif"},{begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#block_innards"}]},{match:"^\\s*#\\s*(else|elif|endif)\\b",captures:{"0":{name:"invalid.illegal.stray-$1.objcpp"}}}]},"preprocessor-rule-conditional-line":{patterns:[{match:"(?:\\bdefined\\b\\s*$)|(?:\\bdefined\\b(?=\\s*\\(*\\s*(?:(?!defined\\b)[a-zA-Z_$][\\w$]*\\b)\\s*\\)*\\s*(?:\\n|//|/\\*|\\?|\\:|&&|\\|\\||\\\\\\s*\\n)))",name:"keyword.control.directive.conditional.objcpp"},{match:"\\bdefined\\b",name:"invalid.illegal.macro-name.objcpp"},{include:"#comments"},{include:"#strings"},{include:"#numbers"},{begin:"\\?",beginCaptures:{"0":{name:"keyword.operator.ternary.objcpp"}},end:":",endCaptures:{"0":{name:"keyword.operator.ternary.objcpp"}},patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#operators"},{match:"\\b(NULL|true|false|TRUE|FALSE)\\b",name:"constant.language.objcpp"},{match:"[a-zA-Z_$][\\w$]*",name:"entity.name.function.preprocessor.objcpp"},{include:"#line_continuation_character"},{begin:"\\(",beginCaptures:{"0":{name:"punctuation.section.parens.begin.bracket.round.objcpp"}},end:"\\)|(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",endCaptures:{"0":{name:"punctuation.section.parens.end.bracket.round.objcpp"}},patterns:[{include:"#preprocessor-rule-conditional-line"}]}]},"preprocessor-rule-disabled":{patterns:[{begin:"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments"},{include:"#preprocessor-rule-enabled-elif"},{include:"#preprocessor-rule-enabled-else"},{include:"#preprocessor-rule-disabled-elif"},{begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))",patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"$base"}]},{contentName:"comment.block.preprocessor.if-branch.objcpp",begin:"\\n",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]}]}]},"preprocessor-rule-disabled-block":{patterns:[{begin:"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments"},{include:"#preprocessor-rule-enabled-elif-block"},{include:"#preprocessor-rule-enabled-else-block"},{include:"#preprocessor-rule-disabled-elif"},{begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))",patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#block_innards"}]},{contentName:"comment.block.preprocessor.if-branch.in-block.objcpp",begin:"\\n",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]}]}]},"preprocessor-rule-disabled-elif":{begin:"^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))",patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments"},{contentName:"comment.block.preprocessor.elif-branch.objcpp",begin:"\\n",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]}]},"preprocessor-rule-enabled":{patterns:[{begin:"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"},"3":{name:"constant.numeric.preprocessor.objcpp"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments"},{contentName:"comment.block.preprocessor.else-branch.objcpp",begin:"^\\s*((#)\\s*else\\b)",beginCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{contentName:"comment.block.preprocessor.if-branch.objcpp",begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"\\n",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"$base"}]}]}]},"preprocessor-rule-enabled-block":{patterns:[{begin:"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments"},{contentName:"comment.block.preprocessor.else-branch.in-block.objcpp",begin:"^\\s*((#)\\s*else\\b)",beginCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{contentName:"comment.block.preprocessor.if-branch.in-block.objcpp",begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"\\n",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#block_innards"}]}]}]},"preprocessor-rule-enabled-elif":{begin:"^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments"},{begin:"\\n",end:"(?=^\\s*((#)\\s*(?:endif)\\b))",patterns:[{contentName:"comment.block.preprocessor.elif-branch.objcpp",begin:"^\\s*((#)\\s*(else)\\b)",beginCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{contentName:"comment.block.preprocessor.elif-branch.objcpp",begin:"^\\s*((#)\\s*(elif)\\b)",beginCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{include:"$base"}]}]},"preprocessor-rule-enabled-elif-block":{begin:"^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments"},{begin:"\\n",end:"(?=^\\s*((#)\\s*(?:endif)\\b))",patterns:[{contentName:"comment.block.preprocessor.elif-branch.in-block.objcpp",begin:"^\\s*((#)\\s*(else)\\b)",beginCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{contentName:"comment.block.preprocessor.elif-branch.objcpp",begin:"^\\s*((#)\\s*(elif)\\b)",beginCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{include:"#block_innards"}]}]},"preprocessor-rule-enabled-else":{begin:"^\\s*((#)\\s*else\\b)",beginCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{include:"$base"}]},"preprocessor-rule-enabled-else-block":{begin:"^\\s*((#)\\s*else\\b)",beginCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{include:"#block_innards"}]},"preprocessor-rule-define-line-contents":{patterns:[{include:"#vararg_ellipses"},{begin:"{",beginCaptures:{"0":{name:"punctuation.section.block.begin.bracket.curly.objcpp"}},end:"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)",endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.objcpp"}},name:"meta.block.objcpp",patterns:[{include:"#preprocessor-rule-define-line-blocks"}]},{match:"\\(",name:"punctuation.section.parens.begin.bracket.round.objcpp"},{match:"\\)",name:"punctuation.section.parens.end.bracket.round.objcpp"},{begin:"(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas|asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void)\\s*\\()\n(?=\n (?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name\n |\n (?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)",end:"(?<=\\))(?!\\w)|(?<!\\\\)(?=\\s*\\n)",name:"meta.function.objcpp",patterns:[{include:"#preprocessor-rule-define-line-functions"}]},{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.objcpp"}},end:"\"|(?<!\\\\)(?=\\s*\\n)",endCaptures:{"0":{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.double.objcpp",patterns:[{include:"#string_escaped_char"},{include:"#string_placeholder"},{include:"#line_continuation_character"}]},{begin:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.objcpp"}},end:"'|(?<!\\\\)(?=\\s*\\n)",endCaptures:{"0":{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.single.objcpp",patterns:[{include:"#string_escaped_char"},{include:"#line_continuation_character"}]},{include:"#method_access"},{include:"#member_access"},{include:"$base"}]},"preprocessor-rule-define-line-blocks":{patterns:[{begin:"{",beginCaptures:{"0":{name:"punctuation.section.block.begin.bracket.curly.objcpp"}},end:"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)",endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.objcpp"}},patterns:[{include:"#preprocessor-rule-define-line-blocks"},{include:"#preprocessor-rule-define-line-contents"}]},{include:"#preprocessor-rule-define-line-contents"}]},"preprocessor-rule-define-line-functions":{patterns:[{include:"#comments"},{include:"#storage_types"},{include:"#vararg_ellipses"},{include:"#method_access"},{include:"#member_access"},{include:"#operators"},{begin:"(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()",beginCaptures:{"1":{name:"entity.name.function.objcpp"},"2":{name:"punctuation.section.arguments.begin.bracket.round.objcpp"}},end:"(\\))|(?<!\\\\)(?=\\s*\\n)",endCaptures:{"1":{name:"punctuation.section.arguments.end.bracket.round.objcpp"}},patterns:[{include:"#preprocessor-rule-define-line-functions"}]},{begin:"\\(",beginCaptures:{"0":{name:"punctuation.section.parens.begin.bracket.round.objcpp"}},end:"(\\))|(?<!\\\\)(?=\\s*\\n)",endCaptures:{"1":{name:"punctuation.section.parens.end.bracket.round.objcpp"}},patterns:[{include:"#preprocessor-rule-define-line-functions"}]},{include:"#preprocessor-rule-define-line-contents"}]},"function-innards":{patterns:[{include:"#comments"},{include:"#storage_types"},{include:"#operators"},{include:"#vararg_ellipses"},{name:"meta.function.definition.parameters.objcpp",begin:"(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()",beginCaptures:{"1":{name:"entity.name.function.objcpp"},"2":{name:"punctuation.section.parameters.begin.bracket.round.objcpp"}},end:"\\)",endCaptures:{"0":{name:"punctuation.section.parameters.end.bracket.round.objcpp"}},patterns:[{include:"#probably_a_parameter"},{include:"#function-innards"}]},{begin:"\\(",beginCaptures:{"0":{name:"punctuation.section.parens.begin.bracket.round.objcpp"}},end:"\\)",endCaptures:{"0":{name:"punctuation.section.parens.end.bracket.round.objcpp"}},patterns:[{include:"#function-innards"}]},{include:"$base"}]},"function-call-innards":{patterns:[{include:"#comments"},{include:"#storage_types"},{include:"#method_access"},{include:"#member_access"},{include:"#operators"},{begin:"(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()",beginCaptures:{"1":{name:"entity.name.function.objcpp"},"2":{name:"punctuation.section.arguments.begin.bracket.round.objcpp"}},end:"\\)",endCaptures:{"0":{name:"punctuation.section.arguments.end.bracket.round.objcpp"}},patterns:[{include:"#function-call-innards"}]},{begin:"\\(",beginCaptures:{"0":{name:"punctuation.section.parens.begin.bracket.round.objcpp"}},end:"\\)",endCaptures:{"0":{name:"punctuation.section.parens.end.bracket.round.objcpp"}},patterns:[{include:"#function-call-innards"}]},{include:"#block_innards"}]},default_statement:{name:"meta.conditional.case.objcpp",begin:"((?<!\\w)default(?!\\w))",beginCaptures:{"1":{name:"keyword.control.default.objcpp"}},end:"(:)",endCaptures:{"1":{name:"punctuation.separator.case.default.objcpp"}},patterns:[{include:"#conditional_context"}]},case_statement:{name:"meta.conditional.case.objcpp",begin:"((?<!\\w)case(?!\\w))",beginCaptures:{"1":{name:"keyword.control.case.objcpp"}},end:"(:)",endCaptures:{"1":{name:"punctuation.separator.case.objcpp"}},patterns:[{include:"#conditional_context"}]},switch_statement:{name:"meta.block.switch.objcpp",begin:"(((?<!\\w)switch(?!\\w)))",beginCaptures:{"1":{name:"meta.head.switch.objcpp"},"2":{name:"keyword.control.switch.objcpp"}},end:"(?:(?<=\\})|(?=[;>\\[\\]=]))",patterns:[{name:"meta.head.switch.objcpp",begin:"\\G ?",end:"((?:\\{|(?=;)))",endCaptures:{"1":{name:"punctuation.section.block.begin.bracket.curly.switch.objcpp"}},patterns:[{include:"#switch_conditional_parentheses"},{include:"$base"}]},{name:"meta.body.switch.objcpp",begin:"(?<=\\{)",end:"(\\})",endCaptures:{"1":{name:"punctuation.section.block.end.bracket.curly.switch.objcpp"}},patterns:[{include:"#default_statement"},{include:"#case_statement"},{include:"$base"},{include:"#block_innards"}]},{name:"meta.tail.switch.objcpp",begin:"(?<=})[\\s\\n]*",end:"[\\s\\n]*(?=;)",patterns:[{include:"$base"}]}]},switch_conditional_parentheses:{name:"meta.conditional.switch.objcpp",begin:"(\\()",beginCaptures:{"1":{name:"punctuation.section.parens.begin.bracket.round.conditional.switch.objcpp"}},end:"(\\))",endCaptures:{"1":{name:"punctuation.section.parens.end.bracket.round.conditional.switch.objcpp"}},patterns:[{include:"#conditional_context"}]},static_assert:{begin:"(static_assert|_Static_assert)\\s*(\\()",beginCaptures:{"1":{name:"keyword.other.static_assert.objcpp"},"2":{name:"punctuation.section.arguments.begin.bracket.round.objcpp"}},end:"(\\))",endCaptures:{"1":{name:"punctuation.section.arguments.end.bracket.round.objcpp"}},patterns:[{name:"meta.static_assert.message.objcpp",begin:"(,)\\s*(?=(?:L|u8|u|U\\s*\\\")?)",beginCaptures:{"1":{name:"punctuation.separator.delimiter.objcpp"}},end:"(?=\\))",patterns:[{include:"#string_context"},{include:"#string_context_c"}]},{include:"#function_call_context"}]},conditional_context:{patterns:[{include:"$base"},{include:"#block_innards"}]},member_access:{match:"((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?-mix:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*(\\b(?!(?:void|char|short|int|signed|unsigned|long|float|double|bool|_Bool|_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t))[a-zA-Z_]\\w*\\b(?!\\())",captures:{"1":{patterns:[{include:"#special_variables"},{name:"variable.other.object.access.objcpp",match:"(.+)"}]},"2":{name:"punctuation.separator.dot-access.objcpp"},"3":{name:"punctuation.separator.pointer-access.objcpp"},"4":{patterns:[{include:"#member_access"},{include:"#method_access"},{match:"((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))",captures:{"1":{patterns:[{include:"#special_variables"},{name:"variable.other.object.access.objcpp",match:"(.+)"}]},"2":{name:"punctuation.separator.dot-access.objcpp"},"3":{name:"punctuation.separator.pointer-access.objcpp"}}}]},"5":{name:"variable.other.member.objcpp"}}},method_access:{contentName:"meta.function-call.member.objcpp",begin:"((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?-mix:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*([a-zA-Z_]\\w*)(\\()",beginCaptures:{"1":{patterns:[{include:"#special_variables"},{name:"variable.other.object.access.objcpp",match:"(.+)"}]},"2":{name:"punctuation.separator.dot-access.objcpp"},"3":{name:"punctuation.separator.pointer-access.objcpp"},"4":{patterns:[{include:"#member_access"},{include:"#method_access"},{match:"((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))",captures:{"1":{patterns:[{include:"#special_variables"},{name:"variable.other.object.access.objcpp",match:"(.+)"}]},"2":{name:"punctuation.separator.dot-access.objcpp"},"3":{name:"punctuation.separator.pointer-access.objcpp"}}}]},"5":{name:"entity.name.function.member.objcpp"},"6":{name:"punctuation.section.arguments.begin.bracket.round.function.member.objcpp"}},end:"(\\))",endCaptures:{"1":{name:"punctuation.section.arguments.end.bracket.round.function.member.objcpp"}},patterns:[{include:"#function-call-innards"}]},numbers:{begin:"(?<!\\w)(?=\\d|\\.\\d)",end:"(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))",patterns:[{match:"(\\G0[xX])(?:([0-9a-fA-F](?:(?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?((?:(?<=[0-9a-fA-F])\\.|\\.(?=[0-9a-fA-F])))(?:([0-9a-fA-F](?:(?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?(?:((?<!')([pP])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:([lLfF](?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))",captures:{"1":{name:"keyword.other.unit.hexadecimal.objcpp"},"2":{name:"constant.numeric.hexadecimal.objcpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objcpp"}]},"3":{name:"punctuation.separator.constant.numeric.objcpp"},"4":{name:"constant.numeric.hexadecimal.objcpp"},"5":{name:"constant.numeric.hexadecimal.objcpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objcpp"}]},"6":{name:"punctuation.separator.constant.numeric.objcpp"},"8":{name:"keyword.other.unit.exponent.hexadecimal.objcpp"},"9":{name:"keyword.operator.plus.exponent.hexadecimal.objcpp"},"10":{name:"keyword.operator.minus.exponent.hexadecimal.objcpp"},"11":{name:"constant.numeric.exponent.hexadecimal.objcpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objcpp"}]},"12":{name:"keyword.other.unit.suffix.floating-point.objcpp"}}},{match:"(\\G(?=[0-9.])(?!0[xXbB]))(?:([0-9](?:(?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?((?:(?<=[0-9])\\.|\\.(?=[0-9])))(?:([0-9](?:(?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?(?:((?<!')([eE])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:([lLfF](?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))",captures:{"2":{name:"constant.numeric.decimal.objcpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objcpp"}]},"3":{name:"punctuation.separator.constant.numeric.objcpp"},"4":{name:"constant.numeric.decimal.point.objcpp"},"5":{name:"constant.numeric.decimal.objcpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objcpp"}]},"6":{name:"punctuation.separator.constant.numeric.objcpp"},"8":{name:"keyword.other.unit.exponent.decimal.objcpp"},"9":{name:"keyword.operator.plus.exponent.decimal.objcpp"},"10":{name:"keyword.operator.minus.exponent.decimal.objcpp"},"11":{name:"constant.numeric.exponent.decimal.objcpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objcpp"}]},"12":{name:"keyword.other.unit.suffix.floating-point.objcpp"}}},{match:"(\\G0[bB])([01](?:(?:[01]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))",captures:{"1":{name:"keyword.other.unit.binary.objcpp"},"2":{name:"constant.numeric.binary.objcpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objcpp"}]},"3":{name:"punctuation.separator.constant.numeric.objcpp"},"4":{name:"keyword.other.unit.suffix.integer.objcpp"}}},{match:"(\\G0)((?:(?:[0-7]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))+)(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))",captures:{"1":{name:"keyword.other.unit.octal.objcpp"},"2":{name:"constant.numeric.octal.objcpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objcpp"}]},"3":{name:"punctuation.separator.constant.numeric.objcpp"},"4":{name:"keyword.other.unit.suffix.integer.objcpp"}}},{match:"(\\G0[xX])([0-9a-fA-F](?:(?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)(?:((?<!')([pP])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))",captures:{"1":{name:"keyword.other.unit.hexadecimal.objcpp"},"2":{name:"constant.numeric.hexadecimal.objcpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objcpp"}]},"3":{name:"punctuation.separator.constant.numeric.objcpp"},"5":{name:"keyword.other.unit.exponent.hexadecimal.objcpp"},"6":{name:"keyword.operator.plus.exponent.hexadecimal.objcpp"},"7":{name:"keyword.operator.minus.exponent.hexadecimal.objcpp"},"8":{name:"constant.numeric.exponent.hexadecimal.objcpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objcpp"}]},"9":{name:"keyword.other.unit.suffix.integer.objcpp"}}},{match:"(\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:(?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)(?:((?<!')([eE])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))",captures:{"2":{name:"constant.numeric.decimal.objcpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objcpp"}]},"3":{name:"punctuation.separator.constant.numeric.objcpp"},"5":{name:"keyword.other.unit.exponent.decimal.objcpp"},"6":{name:"keyword.operator.plus.exponent.decimal.objcpp"},"7":{name:"keyword.operator.minus.exponent.decimal.objcpp"},"8":{name:"constant.numeric.exponent.decimal.objcpp",patterns:[{match:"(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])",name:"punctuation.separator.constant.numeric.objcpp"}]},"9":{name:"keyword.other.unit.suffix.integer.objcpp"}}},{match:"(?:(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))+",name:"invalid.illegal.constant.numeric.objcpp"}]}}},comment:{patterns:[{begin:"/\\*",captures:{"0":{name:"punctuation.definition.comment.objcpp"}},end:"\\*/",name:"comment.block.objcpp"},{begin:"(^[ \\t]+)?(?=//)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.objcpp"}},end:"(?!\\G)",patterns:[{begin:"//",beginCaptures:{"0":{name:"punctuation.definition.comment.objcpp"}},end:"\\n",name:"comment.line.double-slash.objcpp",patterns:[{match:"(?>\\\\\\s*\\n)",name:"punctuation.separator.continuation.objcpp"}]}]}]},cpp_lang:{patterns:[{include:"#special_block"},{include:"#strings"},{match:"\\b(friend|explicit|virtual|override|final|noexcept)\\b",name:"storage.modifier.objcpp"},{match:"\\b(private:|protected:|public:)",name:"storage.type.modifier.access.objcpp"},{match:"\\b(catch|try|throw|using)\\b",name:"keyword.control.objcpp"},{match:"\\bdelete\\b(\\s*\\[\\])?|\\bnew\\b(?!])",name:"keyword.control.objcpp"},{match:"\\b(f|m)[A-Z]\\w*\\b",name:"variable.other.readwrite.member.objcpp"},{match:"\\bthis\\b",name:"variable.language.this.objcpp"},{match:"\\bnullptr\\b",name:"constant.language.objcpp"},{include:"#template_definition"},{match:"\\btemplate\\b\\s*",name:"storage.type.template.objcpp"},{match:"\\b(const_cast|dynamic_cast|reinterpret_cast|static_cast)\\b\\s*",name:"keyword.operator.cast.objcpp"},{name:"punctuation.separator.namespace.access.objcpp",match:"((?:[a-zA-Z_][a-zA-Z_0-9]*::)*)([a-zA-Z_][a-zA-Z_0-9]*)(::)",captures:{"1":{name:"entity.scope.objcpp"},"2":{name:"entity.scope.name.objcpp"},"3":{name:"punctuation.separator.namespace.access.objcpp"}}},{match:"\\b(and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\b",name:"keyword.operator.objcpp"},{match:"\\b(decltype|wchar_t|char16_t|char32_t)\\b",name:"storage.type.objcpp"},{match:"\\b(constexpr|export|mutable|typename|thread_local)\\b",name:"storage.modifier.objcpp"},{begin:"(?x)\n(?:\n ^ | # beginning of line\n (?:(?<!else|new|=)) # or word + space before name\n)\n((?:[A-Za-z_][A-Za-z0-9_]*::)*+~[A-Za-z_][A-Za-z0-9_]*) # actual name\n\\s*(\\() # opening bracket",beginCaptures:{"1":{name:"entity.name.function.objcpp"},"2":{name:"punctuation.definition.parameters.begin.objcpp"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.parameters.end.objcpp"}},name:"meta.function.destructor.objcpp",patterns:[{include:"$base"}]},{begin:"(?x)\n(?:\n ^ | # beginning of line\n (?:(?<!else|new|=)) # or word + space before name\n)\n((?:[A-Za-z_][A-Za-z0-9_]*::)*+~[A-Za-z_][A-Za-z0-9_]*) # actual name\n\\s*(\\() # opening bracket",beginCaptures:{"1":{name:"entity.name.function.objcpp"},"2":{name:"punctuation.definition.parameters.begin.objcpp"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.parameters.end.objcpp"}},name:"meta.function.destructor.prototype.objcpp",patterns:[{include:"$base"}]},{include:"#c_lang"}],repository:{template_definition:{begin:"\\b(template)\\s*(<)\\s*",beginCaptures:{"1":{name:"storage.type.template.objcpp"},"2":{name:"meta.template.angle-brackets.start.objcpp"}},end:">",endCaptures:{"0":{name:"meta.template.angle-brackets.end.objcpp"}},name:"template.definition.objcpp",patterns:[{include:"#template_definition_argument"}]},template_definition_argument:{match:"\\s*(?:([a-zA-Z_][a-zA-Z_0-9]*\\s*)|((?:[a-zA-Z_][a-zA-Z_0-9]*\\s+)*)([a-zA-Z_][a-zA-Z_0-9]*)|([a-zA-Z_][a-zA-Z_0-9]*)\\s*(\\.\\.\\.)\\s*([a-zA-Z_][a-zA-Z_0-9]*)|((?:[a-zA-Z_][a-zA-Z_0-9]*\\s+)*)([a-zA-Z_][a-zA-Z_0-9]*)\\s*(=)\\s*(\\w+))(,|(?=>))",captures:{"1":{name:"storage.type.template.objcpp"},"2":{name:"storage.type.template.objcpp"},"3":{name:"entity.name.type.template.objcpp"},"4":{name:"storage.type.template.objcpp"},"5":{name:"meta.template.operator.ellipsis.objcpp"},"6":{name:"entity.name.type.template.objcpp"},"7":{name:"storage.type.template.objcpp"},"8":{name:"entity.name.type.template.objcpp"},"9":{name:"keyword.operator.assignment.objcpp"},"10":{name:"constant.language.objcpp"},"11":{name:"meta.template.operator.comma.objcpp"}}},angle_brackets:{begin:"<",end:">",name:"meta.angle-brackets.objcpp",patterns:[{include:"#angle_brackets"},{include:"$base"}]},block:{begin:"\\{",beginCaptures:{"0":{name:"punctuation.section.block.begin.bracket.curly.objcpp"}},end:"\\}",endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.objcpp"}},name:"meta.block.objcpp",patterns:[{captures:{"1":{name:"support.function.any-method.objcpp"},"2":{name:"punctuation.definition.parameters.objcpp"}},match:"(?x)\n(\n (?!while|for|do|if|else|switch|catch|enumerate|return|r?iterate)\n (?:\\b[A-Za-z_][A-Za-z0-9_]*+\\b|::)*+ # actual name\n)\n\\s*(\\() # opening bracket",name:"meta.function-call.objcpp"},{include:"$base"}]},constructor:{patterns:[{begin:"(?x)\n(?:^\\s*) # beginning of line\n((?!while|for|do|if|else|switch|catch|enumerate|r?iterate)[A-Za-z_][A-Za-z0-9_:]*) # actual name\n\\s*(\\() # opening bracket",beginCaptures:{"1":{name:"entity.name.function.constructor.objcpp"},"2":{name:"punctuation.definition.parameters.begin.objcpp"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.parameters.end.objcpp"}},name:"meta.function.constructor.objcpp",patterns:[{include:"#probably_a_parameter"},{include:"#function-innards"}]},{begin:"(?x)\n(:)\n(\n (?=\n \\s*[A-Za-z_][A-Za-z0-9_:]* # actual name\n \\s* (\\() # opening bracket\n )\n)",beginCaptures:{"1":{name:"punctuation.definition.parameters.objcpp"}},end:"(?=\\{)",name:"meta.function.constructor.initializer-list.objcpp",patterns:[{include:"$base"}]}]},special_block:{patterns:[{begin:"\\b(using)\\b\\s*(namespace)\\b\\s*((?:[_A-Za-z][_A-Za-z0-9]*\\b(::)?)*)",beginCaptures:{"1":{name:"keyword.control.objcpp"},"2":{name:"storage.type.namespace.objcpp"},"3":{name:"entity.name.type.objcpp"}},end:";",endCaptures:{"0":{name:"punctuation.terminator.statement.objcpp"}},name:"meta.using-namespace-declaration.objcpp"},{begin:"\\b(namespace)\\b\\s*([_A-Za-z][_A-Za-z0-9]*\\b)?+",beginCaptures:{"1":{name:"storage.type.namespace.objcpp"},"2":{name:"entity.name.type.objcpp"}},captures:{"1":{name:"keyword.control.namespace.$2.objcpp"}},end:"(?<=\\})|(?=(;|,|\\(|\\)|>|\\[|\\]|=))",name:"meta.namespace-block.objcpp",patterns:[{begin:"\\{",beginCaptures:{"0":{name:"punctuation.definition.scope.objcpp"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.scope.objcpp"}},patterns:[{include:"#special_block"},{include:"#constructor"},{include:"$base"}]},{include:"$base"}]},{begin:"\\b(?:(class)|(struct))\\b\\s*([_A-Za-z][_A-Za-z0-9]*\\b)?+(\\s*:\\s*(public|protected|private)\\s*([_A-Za-z][_A-Za-z0-9]*\\b)((\\s*,\\s*(public|protected|private)\\s*[_A-Za-z][_A-Za-z0-9]*\\b)*))?",beginCaptures:{"1":{name:"storage.type.class.objcpp"},"2":{name:"storage.type.struct.objcpp"},"3":{name:"entity.name.type.objcpp"},"5":{name:"storage.type.modifier.access.objcpp"},"6":{name:"entity.name.type.inherited.objcpp"},"7":{patterns:[{match:"(public|protected|private)",name:"storage.type.modifier.access.objcpp"},{match:"[_A-Za-z][_A-Za-z0-9]*",name:"entity.name.type.inherited.objcpp"}]}},end:"(?<=\\})|(?=(;|\\(|\\)|>|\\[|\\]|=))",name:"meta.class-struct-block.objcpp",patterns:[{include:"#angle_brackets"},{begin:"\\{",beginCaptures:{"0":{name:"punctuation.section.block.begin.bracket.curly.objcpp"}},end:"(\\})(\\s*\\n)?",endCaptures:{"1":{name:"punctuation.section.block.end.bracket.curly.objcpp"},"2":{name:"invalid.illegal.you-forgot-semicolon.objcpp"}},patterns:[{include:"#special_block"},{include:"#constructor"},{include:"$base"}]},{include:"$base"}]},{begin:"\\b(extern)(?=\\s*\")",beginCaptures:{"1":{name:"storage.modifier.objcpp"}},end:"(?<=\\})|(?=\\w)|(?=\\s*#\\s*endif\\b)",name:"meta.extern-block.objcpp",patterns:[{begin:"\\{",beginCaptures:{"0":{name:"punctuation.section.block.begin.bracket.curly.objcpp"}},end:"\\}|(?=\\s*#\\s*endif\\b)",endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.objcpp"}},patterns:[{include:"#special_block"},{include:"$base"}]},{include:"$base"}]}]},strings:{patterns:[{begin:"(u|u8|U|L)?\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.objcpp"},"1":{name:"meta.encoding.objcpp"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.double.objcpp",patterns:[{match:"\\\\u\\h{4}|\\\\U\\h{8}",name:"constant.character.escape.objcpp"},{match:"\\\\['\"?\\\\abfnrtv]",name:"constant.character.escape.objcpp"},{match:"\\\\[0-7]{1,3}",name:"constant.character.escape.objcpp"},{match:"\\\\x\\h+",name:"constant.character.escape.objcpp"},{include:"#string_placeholder"}]},{begin:"(u|u8|U|L)?R\"(?:([^ ()\\\\\\t]{0,16})|([^ ()\\\\\\t]*))\\(",beginCaptures:{"0":{name:"punctuation.definition.string.begin.objcpp"},"1":{name:"meta.encoding.objcpp"},"3":{name:"invalid.illegal.delimiter-too-long.objcpp"}},end:"\\)\\2(\\3)\"",endCaptures:{"0":{name:"punctuation.definition.string.end.objcpp"},"1":{name:"invalid.illegal.delimiter-too-long.objcpp"}},name:"string.quoted.double.raw.objcpp"}]}}},cpp_lang_newish:{patterns:[{include:"#special_block"},{match:"(?-mix:##[a-zA-Z_]\\w*(?!\\w))",name:"variable.other.macro.argument.objcpp"},{include:"#strings"},{match:"(?<!\\w)((?:inline|constexpr|mutable|friend|explicit|virtual))(?!\\w)",name:"storage.modifier.specificer.functional.pre-parameters.$1.objcpp"},{match:"(?<!\\w)((?:final|override|volatile|const|noexcept))(?!\\w)(?=\\s*(?:(?:(?:(?:\\{|;))|[\\n\\r])))",name:"storage.modifier.specifier.functional.post-parameters.$1.objcpp"},{match:"(?<!\\w)((?:const|static|volatile|register|restrict|extern))(?!\\w)",name:"storage.modifier.specifier.$1.objcpp"},{match:"(?<!\\w)((?:private|protected|public)) *:",name:"storage.type.modifier.access.control.$1.objcpp"},{match:"(?<!\\w)(?:throw|try|catch)(?!\\w)",name:"keyword.control.exception.$1.objcpp"},{match:"(?<!\\w)(using|typedef)(?!\\w)",name:"keyword.other.$1.objcpp"},{include:"#memory_operators"},{match:"\\bthis\\b",name:"variable.language.this.objcpp"},{include:"#constants"},{include:"#template_definition"},{match:"\\btemplate\\b\\s*",name:"storage.type.template.objcpp"},{match:"\\b(const_cast|dynamic_cast|reinterpret_cast|static_cast)\\b\\s*",name:"keyword.operator.cast.$1.objcpp"},{include:"#scope_resolution"},{match:"\\b(decltype|wchar_t|char16_t|char32_t)\\b",name:"storage.type.objcpp"},{match:"\\b(constexpr|export|mutable|typename|thread_local)\\b",name:"storage.modifier.objcpp"},{begin:"(?x)\n(?:\n ^ | # beginning of line\n (?:(?<!else|new|=)) # or word + space before name\n)\n((?:[A-Za-z_][A-Za-z0-9_]*::)*+~[A-Za-z_][A-Za-z0-9_]*) # actual name\n\\s*(\\() # opening bracket",beginCaptures:{"1":{name:"entity.name.function.destructor.objcpp"},"2":{name:"punctuation.definition.parameters.begin.destructor.objcpp"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.parameters.end.destructor.objcpp"}},name:"meta.function.destructor.objcpp",patterns:[{include:"$base"}]},{begin:"(?x)\n(?:\n ^ | # beginning of line\n (?:(?<!else|new|=)) # or word + space before name\n)\n((?:[A-Za-z_][A-Za-z0-9_]*::)*+~[A-Za-z_][A-Za-z0-9_]*) # actual name\n\\s*(\\() # opening bracket",beginCaptures:{"1":{name:"entity.name.function.objcpp"},"2":{name:"punctuation.definition.parameters.begin.objcpp"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.parameters.end.objcpp"}},name:"meta.function.destructor.prototype.objcpp",patterns:[{include:"$base"}]},{include:"#preprocessor-rule-enabled"},{include:"#preprocessor-rule-disabled"},{include:"#preprocessor-rule-conditional"},{include:"#comments-c"},{match:"\\b(break|case|continue|default|do|else|for|goto|if|_Pragma|return|switch|while)\\b",name:"keyword.control.$1.objcpp"},{include:"#storage_types_c"},{match:"\\b(const|extern|register|restrict|static|volatile|inline)\\b",name:"storage.modifier.objcpp"},{include:"#operators"},{include:"#operator_overload"},{include:"#number_literal"},{include:"#strings-c"},{begin:"(?x)\n^\\s* ((\\#)\\s*define) \\s+\t# define\n((?<id>[a-zA-Z_$][\\w$]*))\t # macro name\n(?:\n (\\()\n\t(\n\t \\s* \\g<id> \\s*\t\t # first argument\n\t ((,) \\s* \\g<id> \\s*)* # additional arguments\n\t (?:\\.\\.\\.)?\t\t\t# varargs ellipsis?\n\t)\n (\\))\n)?",beginCaptures:{"1":{name:"keyword.control.directive.define.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"},"3":{name:"entity.name.function.preprocessor.objcpp"},"5":{name:"punctuation.definition.parameters.begin.objcpp"},"6":{name:"variable.parameter.preprocessor.objcpp"},"8":{name:"punctuation.separator.parameters.objcpp"},"9":{name:"punctuation.definition.parameters.end.objcpp"}},end:"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.macro.objcpp",patterns:[{include:"#preprocessor-rule-define-line-contents"}]},{begin:"^\\s*((#)\\s*(error|warning))\\b\\s*",beginCaptures:{"1":{name:"keyword.control.directive.diagnostic.$3.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"(?<!\\\\)(?=\\n)",name:"meta.preprocessor.diagnostic.objcpp",patterns:[{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.objcpp"}},end:"\"|(?<!\\\\)(?=\\s*\\n)",endCaptures:{"0":{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.double.objcpp",patterns:[{include:"#line_continuation_character"}]},{begin:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.objcpp"}},end:"'|(?<!\\\\)(?=\\s*\\n)",endCaptures:{"0":{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.single.objcpp",patterns:[{include:"#line_continuation_character"}]},{begin:"[^'\"]",end:"(?<!\\\\)(?=\\s*\\n)",name:"string.unquoted.single.objcpp",patterns:[{include:"#line_continuation_character"},{include:"#comments-c"}]}]},{begin:"^\\s*((#)\\s*(include(?:_next)?|import))\\b\\s*",beginCaptures:{"1":{name:"keyword.control.directive.$3.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.include.objcpp",patterns:[{include:"#line_continuation_character"},{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.objcpp"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.double.include.objcpp"},{begin:"<",beginCaptures:{"0":{name:"punctuation.definition.string.begin.objcpp"}},end:">",endCaptures:{"0":{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.other.lt-gt.include.objcpp"}]},{include:"#pragma-mark"},{begin:"^\\s*((#)\\s*line)\\b",beginCaptures:{"1":{name:"keyword.control.directive.line.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#strings-c"},{include:"#number_literal"},{include:"#line_continuation_character"}]},{begin:"^\\s*(?:((#)\\s*undef))\\b",beginCaptures:{"1":{name:"keyword.control.directive.undef.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{match:"[a-zA-Z_$][\\w$]*",name:"entity.name.function.preprocessor.objcpp"},{include:"#line_continuation_character"}]},{begin:"^\\s*(?:((#)\\s*pragma))\\b",beginCaptures:{"1":{name:"keyword.control.directive.pragma.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"(?=(?://|/\\*))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.pragma.objcpp",patterns:[{include:"#strings-c"},{match:"[a-zA-Z_$][\\w\\-$]*",name:"entity.other.attribute-name.pragma.preprocessor.objcpp"},{include:"#number_literal"},{include:"#line_continuation_character"}]},{match:"\\b(u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t)\\b",name:"support.type.sys-types.objcpp"},{match:"\\b(pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t)\\b",name:"support.type.pthread.objcpp"},{match:"(?x) \\b\n(int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t\n|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t\n|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t\n|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t\n|uintmax_t|uintmax_t)\n\\b",name:"support.type.stdint.objcpp"},{match:"(?<!\\w)[a-zA-Z_](?:\\w)*_t(?!\\w)",name:"support.type.posix-reserved.objcpp"},{include:"#block-c"},{include:"#parens-c"},{begin:"(?<!\\w)(?!\\s*(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|auto|void|char|short|int|signed|unsigned|long|float|double|bool|wchar_t|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|NULL|true|false|nullptr|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\s*\\()(?=[a-zA-Z_]\\w*\\s*\\()",end:"(?<=\\))",name:"meta.function.definition.objcpp",patterns:[{include:"#function-innards-c"}]},{include:"#line_continuation_character"},{name:"meta.bracket.square.access.objcpp",begin:"([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))?(\\[)(?!\\])",beginCaptures:{"1":{name:"variable.other.object.objcpp"},"2":{name:"punctuation.definition.begin.bracket.square.objcpp"}},end:"\\]",endCaptures:{"0":{name:"punctuation.definition.end.bracket.square.objcpp"}},patterns:[{include:"#function-call-innards-c"}]},{name:"storage.modifier.array.bracket.square.objcpp",match:"(?-mix:(?<!delete))\\\\[\\\\s*\\\\]"},{match:";",name:"punctuation.terminator.statement.objcpp"},{match:",",name:"punctuation.separator.delimiter.objcpp"}],repository:{literal_numeric_seperator:{match:"(?<!')'(?!')",name:"punctuation.separator.constant.numeric.objcpp"},number_literal:{match:"((?<!\\w)(?:(?:(?:(0[xX])(?:([0-9a-fA-F](?:(?:(?:[0-9a-fA-F]|((?<!')'(?!')))))*))?((?:(?:(?<=[0-9a-fA-F])\\.|\\.(?=[0-9a-fA-F]))))(?:([0-9a-fA-F](?:(?:(?:[0-9a-fA-F]|((?<!')'(?!')))))*))?(?:([pP])(\\+)?(\\-)?((?:[0-9](?:(?:(?:[0-9]|(?:(?<!')'(?!')))))*)))?|(?:([0-9](?:(?:(?:[0-9]|((?<!')'(?!')))))*))?((?:(?:(?<=[0-9])\\.|\\.(?=[0-9]))))(?:([0-9](?:(?:(?:[0-9]|((?<!')'(?!')))))*))?(?:([eE])(\\+)?(\\-)?((?:[0-9](?:(?:(?:[0-9]|(?:(?<!')'(?!')))))*)))?)(?:([lLfF](?!\\w)))?|(?:(?:(?:(?:(?:(0[bB])((?:(?:(?:[01]|((?<!')'(?!')))))+)|(0)((?:(?:(?:[0-7]|((?<!')'(?!')))))+)))|(0[xX])([0-9a-fA-F](?:(?:(?:[0-9a-fA-F]|((?<!')'(?!')))))*)(?:([pP])(\\+)?(\\-)?((?:[0-9](?:(?:(?:[0-9]|(?:(?<!')'(?!')))))*)))?))|([0-9](?:(?:(?:[0-9]|((?<!')'(?!')))))*)(?:([eE])(\\+)?(\\-)?((?:[0-9](?:(?:(?:[0-9]|(?:(?<!')'(?!')))))*)))?)(?:((?:(?:(?:(?:(?:(?:(?:(?:(?:(?:(?:(?:LL[uU]|ll[uU]))|[uU]LL))|[uU]ll))|ll))|LL))|[uUlL]))(?!\\w)))?))(\\w*))",captures:{"2":{name:"keyword.other.unit.hexadecimal.objcpp"},"3":{name:"constant.numeric.hexadecimal.objcpp",patterns:[{include:"#literal_numeric_seperator"}]},"4":{name:"punctuation.separator.constant.numeric.objcpp"},"5":{name:"constant.numeric.hexadecimal.objcpp"},"6":{name:"constant.numeric.hexadecimal.objcpp",patterns:[{include:"#literal_numeric_seperator"}]},"7":{name:"punctuation.separator.constant.numeric.objcpp"},"8":{name:"keyword.other.unit.exponent.hexadecimal.objcpp"},"9":{name:"keyword.operator.plus.exponent.hexadecimal.objcpp"},"10":{name:"keyword.operator.minus.exponent.hexadecimal.objcpp"},"11":{name:"constant.numeric.exponent.hexadecimal.objcpp",patterns:[{include:"#literal_numeric_seperator"}]},"12":{name:"constant.numeric.decimal.objcpp",patterns:[{include:"#literal_numeric_seperator"}]},"13":{name:"punctuation.separator.constant.numeric.objcpp"},"14":{name:"constant.numeric.decimal.point.objcpp"},"15":{name:"constant.numeric.decimal.objcpp",patterns:[{include:"#literal_numeric_seperator"}]},"16":{name:"punctuation.separator.constant.numeric.objcpp"},"17":{name:"keyword.other.unit.exponent.decimal.objcpp"},"18":{name:"keyword.operator.plus.exponent.decimal.objcpp"},"19":{name:"keyword.operator.minus.exponent.decimal.objcpp"},"20":{name:"constant.numeric.exponent.decimal.objcpp",patterns:[{include:"#literal_numeric_seperator"}]},"21":{name:"keyword.other.unit.suffix.floating-point.objcpp"},"22":{name:"keyword.other.unit.binary.objcpp"},"23":{name:"constant.numeric.binary.objcpp",patterns:[{include:"#literal_numeric_seperator"}]},"24":{name:"punctuation.separator.constant.numeric.objcpp"},"25":{name:"keyword.other.unit.octal.objcpp"},"26":{name:"constant.numeric.octal.objcpp",patterns:[{include:"#literal_numeric_seperator"}]},"27":{name:"punctuation.separator.constant.numeric.objcpp"},"28":{name:"keyword.other.unit.hexadecimal.objcpp"},"29":{name:"constant.numeric.hexadecimal.objcpp",patterns:[{include:"#literal_numeric_seperator"}]},"30":{name:"punctuation.separator.constant.numeric.objcpp"},"31":{name:"keyword.other.unit.exponent.hexadecimal.objcpp"},"32":{name:"keyword.operator.plus.exponent.hexadecimal.objcpp"},"33":{name:"keyword.operator.minus.exponent.hexadecimal.objcpp"},"34":{name:"constant.numeric.exponent.hexadecimal.objcpp",patterns:[{include:"#literal_numeric_seperator"}]},"35":{name:"constant.numeric.decimal.objcpp",patterns:[{include:"#literal_numeric_seperator"}]},"36":{name:"punctuation.separator.constant.numeric.objcpp"},"37":{name:"keyword.other.unit.exponent.decimal.objcpp"},"38":{name:"keyword.operator.plus.exponent.decimal.objcpp"},"39":{name:"keyword.operator.minus.exponent.decimal.objcpp"},"40":{name:"constant.numeric.exponent.decimal.objcpp",patterns:[{include:"#literal_numeric_seperator"}]},"41":{name:"keyword.other.unit.suffix.integer.objcpp"},"42":{name:"keyword.other.unit.user-defined.objcpp"}}},constants:{match:"(?<!\\w)(?:NULL|true|false|nullptr)(?!\\w)",name:"constant.language.objcpp"},storage_types_c:{patterns:[{match:"(?<!\\w)(?:auto|void|char|short|int|signed|unsigned|long|float|double|bool|wchar_t)(?!\\w)",name:"storage.type.primitive.objcpp"},{match:"(?<!\\w)(?:u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t)(?!\\w)",name:"storage.type.objcpp"},{match:"(?<!\\w)(asm|__asm__|enum|union|struct)(?!\\w)",name:"storage.type.$1.objcpp"}]},memory_operators:{match:"(?<!\\w)(?:(?:(delete)\\s*(\\[\\])|(delete))|(new))(?!\\w)",captures:{"1":{name:"keyword.operator.memory.delete.array.objcpp"},"2":{name:"keyword.operator.memory.delete.array.bracket.objcpp"},"3":{name:"keyword.operator.memory.delete.objcpp"},"4":{name:"keyword.operator.memory.new.objcpp"}},name:"keyword.operator.memory.objcpp"},template_call_innards:{match:"<(?:[\\s<>,\\w])*>\\s*",captures:{"0":{name:"meta.template.call.objcpp",patterns:[{include:"#storage_types_c"},{include:"#constants"},{include:"#scope_resolution"},{match:"(?<!\\w)[a-zA-Z_]\\w*(?!\\w)",name:"storage.type.user-defined.objcpp"},{include:"#operators"},{include:"#number_literal"},{include:"#strings"},{match:",",name:"punctuation.separator.comma.template.argument.objcpp"}]}}},template_definition:{name:"meta.template.definition.objcpp",begin:"(?-mix:(?<!\\w)(template)\\s*(<))",beginCaptures:{"1":{name:"storage.type.template.objcpp"},"2":{name:"punctuation.section.angle-brackets.start.template.definition.objcpp"}},end:"(?-mix:(>))",endCaptures:{"1":{name:"punctuation.section.angle-brackets.end.template.definition.objcpp"}},patterns:[{include:"#scope_resolution"},{include:"#template_definition_argument"},{include:"#template_call_innards"}]},template_definition_argument:{match:"((?:(?:(?:(?:(?:(?:\\s*([a-zA-Z_]\\w*)|((?:[a-zA-Z_]\\w*\\s+)+)([a-zA-Z_]\\w*)))|([a-zA-Z_]\\w*)\\s*(\\.\\.\\.)\\s*([a-zA-Z_]\\w*)))|((?:[a-zA-Z_]\\w*\\s+)*)([a-zA-Z_]\\w*)\\s*([=])\\s*(\\w+)))\\s*(?:(?:(,)|(?=>))))",captures:{"2":{name:"storage.type.template.argument.$1.objcpp"},"3":{name:"storage.type.template.argument.$2.objcpp"},"4":{name:"entity.name.type.template.objcpp"},"5":{name:"storage.type.template.objcpp"},"6":{name:"keyword.operator.ellipsis.template.definition.objcpp"},"7":{name:"entity.name.type.template.objcpp"},"8":{name:"storage.type.template.objcpp"},"9":{name:"entity.name.type.template.objcpp"},"10":{name:"keyword.operator.assignment.objcpp"},"11":{name:"constant.other.objcpp"},"12":{name:"punctuation.separator.comma.template.argument.objcpp"}}},scope_resolution:{match:"((?:[a-zA-Z_]\\w*\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?::)*\\s*)([a-zA-Z_]\\w*)\\s*((?:<(?:[\\s<>,\\w])*>\\s*))?(::)",captures:{"1":{patterns:[{include:"#scope_resolution"}]},"2":{name:"entity.name.namespace.scope-resolution.objcpp"},"3":{patterns:[{include:"#template_call_innards"}]},"4":{name:"punctuation.separator.namespace.access.objcpp"}},name:"meta.scope-resolution.objcpp"},angle_brackets:{begin:"<",end:">",name:"meta.angle-brackets.objcpp",patterns:[{include:"#angle_brackets"},{include:"$base"}]},block:{begin:"\\{",beginCaptures:{"0":{name:"punctuation.section.block.begin.bracket.curly.objcpp"}},end:"\\}",endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.objcpp"}},name:"meta.block.objcpp",patterns:[{captures:{"1":{name:"support.function.any-method.objcpp"},"2":{name:"punctuation.definition.parameters.objcpp"}},match:"(?x)\n(\n (?!while|for|do|if|else|switch|catch|return)\n (?:\\b[A-Za-z_][A-Za-z0-9_]*+\\b|::)*+ # actual name\n)\n\\s*(\\() # opening bracket",name:"meta.function-call.objcpp"},{include:"$base"}]},constructor:{patterns:[{begin:"(?x)\n(?:^\\s*) # beginning of line\n((?!while|for|do|if|else|switch|catch)[A-Za-z_][A-Za-z0-9_:]*) # actual name\n\\s*(\\() # opening bracket",beginCaptures:{"1":{name:"entity.name.function.constructor.objcpp"},"2":{name:"punctuation.definition.parameters.begin.constructor.objcpp"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.parameters.end.constructor.objcpp"}},name:"meta.function.constructor.objcpp",patterns:[{include:"#probably_a_parameter"},{include:"#function-innards-c"}]},{begin:"(?x)\n(:)\n(\n (?=\n \\s*[A-Za-z_][A-Za-z0-9_:]* # actual name\n \\s* (\\() # opening bracket\n )\n)",beginCaptures:{"1":{name:"punctuation.definition.initializer-list.parameters.objcpp"}},end:"(?=\\{)",name:"meta.function.constructor.initializer-list.objcpp",patterns:[{include:"$base"}]}]},special_block:{patterns:[{comment:"https://en.cppreference.com/w/cpp/language/namespace",begin:"\\b(using)\\s+(namespace)\\s+(?:((?:[a-zA-Z_]\\w*\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?::)*)\\s*)?((?<!\\w)[a-zA-Z_]\\w*(?!\\w))(?=;|\\n)",beginCaptures:{"1":{name:"keyword.other.using.directive.objcpp"},"2":{name:"keyword.other.namespace.directive.objcpp storage.type.namespace.directive.objcpp"},"3":{patterns:[{include:"#scope_resolution"}]},"4":{name:"entity.name.namespace.objcpp"}},end:";",endCaptures:{"0":{name:"punctuation.terminator.statement.objcpp"}},name:"meta.using-namespace-declaration.objcpp"},{begin:"(?<!\\w)(namespace)\\s+(?:(?:((?:[a-zA-Z_]\\w*\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?::)*[a-zA-Z_]\\w*)|(?={)))",beginCaptures:{"1":{name:"keyword.other.namespace.definition.objcpp storage.type.namespace.definition.objcpp"},"2":{patterns:[{match:"(?-mix:(?<!\\w)[a-zA-Z_]\\w*(?!\\w))",name:"entity.name.type.objcpp"},{match:"::",name:"punctuation.separator.namespace.access.objcpp"}]}},end:"(?<=\\})|(?=(;|,|\\(|\\)|>|\\[|\\]|=))",name:"meta.namespace-block.objcpp",patterns:[{begin:"\\{",beginCaptures:{"0":{name:"punctuation.definition.scope.objcpp"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.scope.objcpp"}},patterns:[{include:"#special_block"},{include:"#constructor"},{include:"$base"}]},{include:"$base"}]},{begin:"\\b(?:(class)|(struct))\\b\\s*([_A-Za-z][_A-Za-z0-9]*\\b)?+(\\s*:\\s*(public|protected|private)\\s*([_A-Za-z][_A-Za-z0-9]*\\b)((\\s*,\\s*(public|protected|private)\\s*[_A-Za-z][_A-Za-z0-9]*\\b)*))?",beginCaptures:{"1":{name:"storage.type.class.objcpp"},"2":{name:"storage.type.struct.objcpp"},"3":{name:"entity.name.type.objcpp"},"5":{name:"storage.type.modifier.access.objcpp"},"6":{name:"entity.name.type.inherited.objcpp"},"7":{patterns:[{match:"(public|protected|private)",name:"storage.type.modifier.access.objcpp"},{match:"[_A-Za-z][_A-Za-z0-9]*",name:"entity.name.type.inherited.objcpp"}]}},end:"(?<=\\})|(;)|(?=(\\(|\\)|>|\\[|\\]|=))",endCaptures:{"1":{name:"punctuation.terminator.statement.objcpp"}},name:"meta.class-struct-block.objcpp",patterns:[{include:"#angle_brackets"},{begin:"\\{",beginCaptures:{"0":{name:"punctuation.section.block.begin.bracket.curly.objcpp"}},end:"(\\})(\\s*\\n)?",endCaptures:{"1":{name:"punctuation.section.block.end.bracket.curly.objcpp"},"2":{name:"invalid.illegal.you-forgot-semicolon.objcpp"}},patterns:[{include:"#special_block"},{include:"#constructor"},{include:"$base"}]},{include:"$base"}]},{begin:"\\b(extern)(?=\\s*\")",beginCaptures:{"1":{name:"storage.modifier.objcpp"}},end:"(?<=\\})|(?=\\w)|(?=\\s*#\\s*endif\\b)",name:"meta.extern-block.objcpp",patterns:[{begin:"\\{",beginCaptures:{"0":{name:"punctuation.section.block.begin.bracket.curly.objcpp"}},end:"\\}|(?=\\s*#\\s*endif\\b)",endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.objcpp"}},patterns:[{include:"#special_block"},{include:"$base"}]},{include:"$base"}]}]},strings:{patterns:[{begin:"(u|u8|U|L)?\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.objcpp"},"1":{name:"meta.encoding.objcpp"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.double.objcpp",patterns:[{match:"\\\\u\\h{4}|\\\\U\\h{8}",name:"constant.character.escape.objcpp"},{match:"\\\\['\"?\\\\abfnrtv]",name:"constant.character.escape.objcpp"},{match:"\\\\[0-7]{1,3}",name:"constant.character.escape.objcpp"},{match:"\\\\x\\h+",name:"constant.character.escape.objcpp"},{include:"#string_placeholder-c"}]},{begin:"(u|u8|U|L)?R\"(?:([^ ()\\\\\\t]{0,16})|([^ ()\\\\\\t]*))\\(",beginCaptures:{"0":{name:"punctuation.definition.string.begin.objcpp"},"1":{name:"meta.encoding.objcpp"},"3":{name:"invalid.illegal.delimiter-too-long.objcpp"}},end:"\\)\\2(\\3)\"",endCaptures:{"0":{name:"punctuation.definition.string.end.objcpp"},"1":{name:"invalid.illegal.delimiter-too-long.objcpp"}},name:"string.quoted.double.raw.objcpp"}]},probably_a_parameter:{match:"(?:(?:([a-zA-Z_]\\w*)\\s*(?==)|(?<=\\w\\s|\\*\\/|[&*>\\]\\)])\\s*([a-zA-Z_]\\w*)\\s*(?=(?:\\[\\]\\s*)?(?:(?:,|\\))))))",captures:{"1":{name:"variable.parameter.probably.defaulted.objcpp"},"2":{name:"variable.parameter.probably.objcpp"}}},operator_overload:{begin:"((?:[a-zA-Z_]\\w*\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?::)*)\\s*(operator)((?:(?:\\s*(?:\\+\\+|\\-\\-|\\(\\)|\\[\\]|\\->|\\+\\+|\\-\\-|\\+|\\-|!|~|\\*|&|\\->\\*|\\*|\\/|%|\\+|\\-|<<|>>|<=>|<|<=|>|>=|==|!=|&|\\^|\\||&&|\\|\\||=|\\+=|\\-=|\\*=|\\/=|%=|<<=|>>=|&=|\\^=|\\|=|,)|\\s+(?:(?:(?:new|new\\[\\]|delete|delete\\[\\])|(?:[a-zA-Z_]\\w*\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?::)*[a-zA-Z_]\\w*\\s*(?:&)?)))))\\s*(\\()",beginCaptures:{"1":{name:"entity.scope.objcpp"},"2":{name:"keyword.other.operator.overload.objcpp"},"3":{name:"entity.name.operator.overloadee.objcpp"},"4":{name:"punctuation.section.parameters.begin.bracket.round.objcpp"}},end:"\\)",endCaptures:{"0":{name:"punctuation.section.parameters.end.bracket.round.objcpp"}},name:"meta.function.definition.parameters.operator-overload.objcpp",patterns:[{include:"#probably_a_parameter"},{include:"#function-innards-c"}]},"access-method":{name:"meta.function-call.member.objcpp",begin:"([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))\\s*(?:(\\.)|(->))((?:(?:[a-zA-Z_][a-zA-Z_0-9]*)\\s*(?:(?:\\.)|(?:->)))*)\\s*([a-zA-Z_][a-zA-Z_0-9]*)(\\()",beginCaptures:{"1":{name:"variable.other.object.objcpp"},"2":{name:"punctuation.separator.dot-access.objcpp"},"3":{name:"punctuation.separator.pointer-access.objcpp"},"4":{patterns:[{match:"\\.",name:"punctuation.separator.dot-access.objcpp"},{match:"->",name:"punctuation.separator.pointer-access.objcpp"},{match:"[a-zA-Z_][a-zA-Z_0-9]*",name:"variable.other.object.objcpp"},{name:"everything.else.objcpp",match:".+"}]},"5":{name:"entity.name.function.member.objcpp"},"6":{name:"punctuation.section.arguments.begin.bracket.round.function.member.objcpp"}},end:"\\)",endCaptures:{"0":{name:"punctuation.section.arguments.end.bracket.round.function.member.objcpp"}},patterns:[{include:"#function-call-innards-c"}]},"access-member":{name:"variable.other.object.access.objcpp",match:"(?:(?:([a-zA-Z_]\\w*)|(?<=\\]|\\))))\\s*(?:(?:((?:(?:\\.|\\.\\*)))|((?:(?:->|->\\*)))))\\s*((?:[a-zA-Z_]\\w*\\s*(?:(?:\\.|->))\\s*)*)\\b(?!(?:auto|void|char|short|int|signed|unsigned|long|float|double|bool|wchar_t|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t))([a-zA-Z_]\\w*)\\b(?!\\()",captures:{"1":{name:"variable.other.object.objcpp"},"2":{name:"punctuation.separator.dot-access.objcpp"},"3":{name:"punctuation.separator.pointer-access.objcpp"},"4":{patterns:[{match:"\\.",name:"punctuation.separator.dot-access.objcpp"},{match:"->",name:"punctuation.separator.pointer-access.objcpp"},{match:"[a-zA-Z_]\\w*",name:"variable.other.object.objcpp"},{match:".+",name:"everything.else.objcpp"}]},"5":{name:"variable.other.member.objcpp"}}},"block-c":{patterns:[{begin:"{",beginCaptures:{"0":{name:"punctuation.section.block.begin.bracket.curly.objcpp"}},end:"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)",endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.objcpp"}},name:"meta.block.objcpp",patterns:[{include:"#block_innards-c"}]}]},"block_innards-c":{patterns:[{include:"#preprocessor-rule-enabled-block"},{include:"#preprocessor-rule-disabled-block"},{include:"#preprocessor-rule-conditional-block"},{include:"#access-method"},{include:"#access-member"},{include:"#c_function_call"},{name:"meta.initialization.objcpp",begin:"(?x)\n(?:\n (?:\n\t(?=\\s)(?<!else|new|return)\n\t(?<=\\w) \\s+(and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas) # or word + space before name\n )\n)\n(\n (?:[A-Za-z_][A-Za-z0-9_]*+ | :: )++ # actual name\n |\n (?:(?<=operator) (?:[-*&<>=+!]+ | \\(\\) | \\[\\]))\n)\n\\s*(\\() # opening bracket",beginCaptures:{"1":{name:"variable.other.objcpp"},"2":{name:"punctuation.section.parens.begin.bracket.round.initialization.objcpp"}},end:"\\)",endCaptures:{"0":{name:"punctuation.section.parens.end.bracket.round.initialization.objcpp"}},patterns:[{include:"#function-call-innards-c"}]},{begin:"{",beginCaptures:{"0":{name:"punctuation.section.block.begin.bracket.curly.objcpp"}},end:"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)",endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.objcpp"}},patterns:[{include:"#block_innards-c"}]},{include:"#parens-block-c"},{include:"$base"}]},c_function_call:{begin:"(?x)\n(?!(?:while|for|do|if|else|switch|catch|return|typeid|alignof|alignas|sizeof|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(?=\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?\\( # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)",end:"(?<=\\))(?!\\w)",name:"meta.function-call.objcpp",patterns:[{include:"#function-call-innards-c"}]},"comments-c":{patterns:[{captures:{"1":{name:"meta.toc-list.banner.block.objcpp"}},match:"^/\\* =(\\s*.*?)\\s*= \\*/$\\n?",name:"comment.block.objcpp"},{begin:"/\\*",beginCaptures:{"0":{name:"punctuation.definition.comment.begin.objcpp"}},end:"\\*/",endCaptures:{"0":{name:"punctuation.definition.comment.end.objcpp"}},name:"comment.block.objcpp"},{captures:{"1":{name:"meta.toc-list.banner.line.objcpp"}},match:"^// =(\\s*.*?)\\s*=\\s*$\\n?",name:"comment.line.banner.objcpp"},{begin:"(^[ \\t]+)?(?=//)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.objcpp"}},end:"(?!\\G)",patterns:[{begin:"//",beginCaptures:{"0":{name:"punctuation.definition.comment.objcpp"}},end:"(?=\\n)",name:"comment.line.double-slash.objcpp",patterns:[{include:"#line_continuation_character"}]}]}]},disabled:{begin:"^\\s*#\\s*if(n?def)?\\b.*$",end:"^\\s*#\\s*endif\\b",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},line_continuation_character:{patterns:[{match:"(\\\\)\\n",captures:{"1":{name:"constant.character.escape.line-continuation.objcpp"}}}]},"parens-c":{name:"punctuation.section.parens-c\b.objcpp",begin:"\\(",beginCaptures:{"0":{name:"punctuation.section.parens.begin.bracket.round.objcpp"}},end:"\\)",endCaptures:{"0":{name:"punctuation.section.parens.end.bracket.round.objcpp"}},patterns:[{include:"$base"}]},"parens-block-c":{name:"meta.block.parens.objcpp",begin:"\\(",beginCaptures:{"0":{name:"punctuation.section.parens.begin.bracket.round.objcpp"}},end:"\\)",endCaptures:{"0":{name:"punctuation.section.parens.end.bracket.round.objcpp"}},patterns:[{include:"#block_innards-c"},{match:"(?<!:):(?!:)",name:"punctuation.range-based.objcpp"}]},"pragma-mark":{captures:{"1":{name:"meta.preprocessor.pragma.objcpp"},"2":{name:"keyword.control.directive.pragma.pragma-mark.objcpp"},"3":{name:"punctuation.definition.directive.objcpp"},"4":{name:"entity.name.tag.pragma-mark.objcpp"}},match:"^\\s*(((#)\\s*pragma\\s+mark)\\s+(.*))",name:"meta.section.objcpp"},operators:{patterns:[{match:"(?-mix:(?<!\\w)((?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept))(?!\\w))",name:"keyword.operator.$1.objcpp"},{match:"--",name:"keyword.operator.decrement.objcpp"},{match:"\\+\\+",name:"keyword.operator.increment.objcpp"},{match:"%=|\\+=|-=|\\*=|(?<!\\()/=",name:"keyword.operator.assignment.compound.objcpp"},{match:"&=|\\^=|<<=|>>=|\\|=",name:"keyword.operator.assignment.compound.bitwise.objcpp"},{match:"<<|>>",name:"keyword.operator.bitwise.shift.objcpp"},{match:"!=|<=|>=|==|<|>",name:"keyword.operator.comparison.objcpp"},{match:"&&|!|\\|\\|",name:"keyword.operator.logical.objcpp"},{match:"&|\\||\\^|~",name:"keyword.operator.objcpp"},{match:"=",name:"keyword.operator.assignment.objcpp"},{match:"%|\\*|/|-|\\+",name:"keyword.operator.objcpp"},{begin:"\\?",beginCaptures:{"0":{name:"keyword.operator.ternary.objcpp"}},end:":",applyEndPatternLast:true,endCaptures:{"0":{name:"keyword.operator.ternary.objcpp"}},patterns:[{include:"#access-method"},{include:"#access-member"},{include:"#c_function_call"},{include:"$base"}]}]},"strings-c":{patterns:[{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.objcpp"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.double.objcpp",patterns:[{include:"#string_escaped_char-c"},{include:"#string_placeholder-c"},{include:"#line_continuation_character"}]},{begin:"(?-mix:(?<![\\da-fA-F])')",beginCaptures:{"0":{name:"punctuation.definition.string.begin.objcpp"}},end:"'",endCaptures:{"0":{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.single.objcpp",patterns:[{include:"#string_escaped_char-c"},{include:"#line_continuation_character"}]}]},"string_escaped_char-c":{patterns:[{match:"(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3]\\d{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )",name:"constant.character.escape.objcpp"},{match:"\\\\.",name:"invalid.illegal.unknown-escape.objcpp"}]},"string_placeholder-c":{patterns:[{match:"(?x) %\n(\\d+\\$)?\t\t\t\t\t\t # field (argument #)\n[#0\\- +']*\t\t\t\t\t\t # flags\n[,;:_]?\t\t\t\t\t\t\t # separator character (AltiVec)\n((-?\\d+)|\\*(-?\\d+\\$)?)?\t\t # minimum field width\n(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?\t# precision\n(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n[diouxXDOUeEfFgGaACcSspn%]\t\t # conversion type",name:"constant.other.placeholder.objcpp"}]},"vararg_ellipses-c":{match:"(?<!\\.)\\.\\.\\.(?!\\.)",name:"punctuation.vararg-ellipses.objcpp"},"preprocessor-rule-conditional":{patterns:[{begin:"^\\s*((#)\\s*if(?:n?def)?\\b)",beginCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#preprocessor-rule-enabled-elif"},{include:"#preprocessor-rule-enabled-else"},{include:"#preprocessor-rule-disabled-elif"},{begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"$base"}]},{match:"^\\s*#\\s*(else|elif|endif)\\b",captures:{"0":{name:"invalid.illegal.stray-$1.objcpp"}}}]},"preprocessor-rule-conditional-block":{patterns:[{begin:"^\\s*((#)\\s*if(?:n?def)?\\b)",beginCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#preprocessor-rule-enabled-elif-block"},{include:"#preprocessor-rule-enabled-else-block"},{include:"#preprocessor-rule-disabled-elif"},{begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#block_innards-c"}]},{match:"^\\s*#\\s*(else|elif|endif)\\b",captures:{"0":{name:"invalid.illegal.stray-$1.objcpp"}}}]},"preprocessor-rule-conditional-line":{patterns:[{match:"(?:\\bdefined\\b\\s*$)|(?:\\bdefined\\b(?=\\s*\\(*\\s*(?:(?!defined\\b)[a-zA-Z_$][\\w$]*\\b)\\s*\\)*\\s*(?:\\n|//|/\\*|\\?|\\:|&&|\\|\\||\\\\\\s*\\n)))",name:"keyword.control.directive.conditional.objcpp"},{match:"\\bdefined\\b",name:"invalid.illegal.macro-name.objcpp"},{include:"#comments-c"},{include:"#strings-c"},{include:"#number_literal"},{begin:"\\?",beginCaptures:{"0":{name:"keyword.operator.ternary.objcpp"}},end:":",endCaptures:{"0":{name:"keyword.operator.ternary.objcpp"}},patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#operators"},{include:"#constants"},{match:"[a-zA-Z_$][\\w$]*",name:"entity.name.function.preprocessor.objcpp"},{include:"#line_continuation_character"},{begin:"\\(",beginCaptures:{"0":{name:"punctuation.section.parens.begin.bracket.round.objcpp"}},end:"\\)|(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",endCaptures:{"0":{name:"punctuation.section.parens.end.bracket.round.objcpp"}},patterns:[{include:"#preprocessor-rule-conditional-line"}]}]},"preprocessor-rule-disabled":{patterns:[{begin:"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments-c"},{include:"#preprocessor-rule-enabled-elif"},{include:"#preprocessor-rule-enabled-else"},{include:"#preprocessor-rule-disabled-elif"},{begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))",patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"$base"}]},{begin:"\\n",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",contentName:"comment.block.preprocessor.if-branch.objcpp",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]}]}]},"preprocessor-rule-disabled-block":{patterns:[{begin:"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments-c"},{include:"#preprocessor-rule-enabled-elif-block"},{include:"#preprocessor-rule-enabled-else-block"},{include:"#preprocessor-rule-disabled-elif"},{begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))",patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#block_innards-c"}]},{begin:"\\n",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",contentName:"comment.block.preprocessor.if-branch.in-block.objcpp",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]}]}]},"preprocessor-rule-disabled-elif":{begin:"^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))",patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments-c"},{begin:"\\n",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",contentName:"comment.block.preprocessor.elif-branch.objcpp",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]}]},"preprocessor-rule-enabled":{patterns:[{begin:"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"},"3":{name:"constant.numeric.preprocessor.objcpp"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments-c"},{begin:"^\\s*((#)\\s*else\\b)",beginCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*endif\\b))",contentName:"comment.block.preprocessor.else-branch.objcpp",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",contentName:"comment.block.preprocessor.if-branch.objcpp",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"\\n",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"$base"}]}]}]},"preprocessor-rule-enabled-block":{patterns:[{begin:"^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"^\\s*((#)\\s*endif\\b)",endCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments-c"},{begin:"^\\s*((#)\\s*else\\b)",beginCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*endif\\b))",contentName:"comment.block.preprocessor.else-branch.in-block.objcpp",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"^\\s*((#)\\s*elif\\b)",beginCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",contentName:"comment.block.preprocessor.if-branch.in-block.objcpp",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"\\n",end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",patterns:[{include:"#block_innards-c"}]}]}]},"preprocessor-rule-enabled-elif":{begin:"^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments-c"},{begin:"\\n",end:"(?=^\\s*((#)\\s*(?:endif)\\b))",patterns:[{begin:"^\\s*((#)\\s*(else)\\b)",beginCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*endif\\b))",contentName:"comment.block.preprocessor.elif-branch.objcpp",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"^\\s*((#)\\s*(elif)\\b)",beginCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",contentName:"comment.block.preprocessor.elif-branch.objcpp",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{include:"$base"}]}]},"preprocessor-rule-enabled-elif-block":{begin:"^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))",beginCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{begin:"\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))",end:"(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)",name:"meta.preprocessor.objcpp",patterns:[{include:"#preprocessor-rule-conditional-line"}]},{include:"#comments-c"},{begin:"\\n",end:"(?=^\\s*((#)\\s*(?:endif)\\b))",patterns:[{begin:"^\\s*((#)\\s*(else)\\b)",beginCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*endif\\b))",contentName:"comment.block.preprocessor.elif-branch.in-block.objcpp",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"^\\s*((#)\\s*(elif)\\b)",beginCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",contentName:"comment.block.preprocessor.elif-branch.objcpp",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{include:"#block_innards-c"}]}]},"preprocessor-rule-enabled-else":{begin:"^\\s*((#)\\s*else\\b)",beginCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{include:"$base"}]},"preprocessor-rule-enabled-else-block":{begin:"^\\s*((#)\\s*else\\b)",beginCaptures:{"0":{name:"meta.preprocessor.objcpp"},"1":{name:"keyword.control.directive.conditional.objcpp"},"2":{name:"punctuation.definition.directive.objcpp"}},end:"(?=^\\s*((#)\\s*endif\\b))",patterns:[{include:"#block_innards-c"}]},"preprocessor-rule-define-line-contents":{patterns:[{include:"#vararg_ellipses-c"},{match:"(?-mix:##?[a-zA-Z_]\\w*(?!\\w))",name:"variable.other.macro.argument.objcpp"},{begin:"{",beginCaptures:{"0":{name:"punctuation.section.block.begin.bracket.curly.objcpp"}},end:"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)",endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.objcpp"}},name:"meta.block.objcpp",patterns:[{include:"#preprocessor-rule-define-line-blocks"}]},{match:"\\(",name:"punctuation.section.parens.begin.bracket.round.objcpp"},{match:"\\)",name:"punctuation.section.parens.end.bracket.round.objcpp"},{begin:"(?x)\n(?!(?:while|for|do|if|else|switch|catch|return|typeid|alignof|alignas|sizeof|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas|asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void)\\s*\\()\n(?=\n (?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name\n |\n (?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)",end:"(?<=\\))(?!\\w)|(?<!\\\\)(?=\\s*\\n)",name:"meta.function.objcpp",patterns:[{include:"#preprocessor-rule-define-line-functions"}]},{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.objcpp"}},end:"\"|(?<!\\\\)(?=\\s*\\n)",endCaptures:{"0":{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.double.objcpp",patterns:[{include:"#string_escaped_char-c"},{include:"#string_placeholder-c"},{include:"#line_continuation_character"}]},{begin:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.objcpp"}},end:"'|(?<!\\\\)(?=\\s*\\n)",endCaptures:{"0":{name:"punctuation.definition.string.end.objcpp"}},name:"string.quoted.single.objcpp",patterns:[{include:"#string_escaped_char-c"},{include:"#line_continuation_character"}]},{include:"#access-method"},{include:"#access-member"},{include:"$base"}]},"preprocessor-rule-define-line-blocks":{patterns:[{begin:"{",beginCaptures:{"0":{name:"punctuation.section.block.begin.bracket.curly.objcpp"}},end:"}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)",endCaptures:{"0":{name:"punctuation.section.block.end.bracket.curly.objcpp"}},patterns:[{include:"#preprocessor-rule-define-line-blocks"},{include:"#preprocessor-rule-define-line-contents"}]},{include:"#preprocessor-rule-define-line-contents"}]},"preprocessor-rule-define-line-functions":{patterns:[{include:"#comments-c"},{include:"#storage_types_c"},{include:"#vararg_ellipses-c"},{include:"#access-method"},{include:"#access-member"},{include:"#operators"},{begin:"(?x)\n(?!(?:while|for|do|if|else|switch|catch|return|typeid|alignof|alignas|sizeof|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()",beginCaptures:{"1":{name:"entity.name.function.objcpp"},"2":{name:"punctuation.section.arguments.begin.bracket.round.objcpp"}},end:"(\\))|(?<!\\\\)(?=\\s*\\n)",endCaptures:{"1":{name:"punctuation.section.arguments.end.bracket.round.objcpp"}},patterns:[{include:"#preprocessor-rule-define-line-functions"}]},{begin:"\\(",beginCaptures:{"0":{name:"punctuation.section.parens.begin.bracket.round.objcpp"}},end:"(\\))|(?<!\\\\)(?=\\s*\\n)",endCaptures:{"1":{name:"punctuation.section.parens.end.bracket.round.objcpp"}},patterns:[{include:"#preprocessor-rule-define-line-functions"}]},{include:"#preprocessor-rule-define-line-contents"}]},"function-innards-c":{patterns:[{include:"#comments-c"},{include:"#storage_types_c"},{include:"#operators"},{include:"#vararg_ellipses-c"},{name:"meta.function.definition.parameters.objcpp",begin:"(?x)\n(?!(?:while|for|do|if|else|switch|catch|return|typeid|alignof|alignas|sizeof|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()",beginCaptures:{"1":{name:"entity.name.function.objcpp"},"2":{name:"punctuation.section.parameters.begin.bracket.round.objcpp"}},end:"\\)|:",endCaptures:{"0":{name:"punctuation.section.parameters.end.bracket.round.objcpp"}},patterns:[{include:"#probably_a_parameter"},{include:"#function-innards-c"}]},{begin:"\\(",beginCaptures:{"0":{name:"punctuation.section.parens.begin.bracket.round.objcpp"}},end:"\\)",endCaptures:{"0":{name:"punctuation.section.parens.end.bracket.round.objcpp"}},patterns:[{include:"#function-innards-c"}]},{include:"$base"}]},"function-call-innards-c":{patterns:[{include:"#comments-c"},{include:"#storage_types_c"},{include:"#access-method"},{include:"#access-member"},{include:"#operators"},{begin:"(?x)\n(?!(?:while|for|do|if|else|switch|catch|return|typeid|alignof|alignas|sizeof|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:new)\\s*((?:(?:<(?:[\\s<>,\\w])*>\\s*))?) # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()",beginCaptures:{"1":{name:"keyword.operator.memory.new.objcpp"},"2":{patterns:[{include:"#template_call_innards"}]},"3":{name:"punctuation.section.arguments.begin.bracket.round.objcpp"}},end:"\\)",endCaptures:{"0":{name:"punctuation.section.arguments.end.bracket.round.objcpp"}},patterns:[{include:"#function-call-innards-c"}]},{begin:"(?<!\\w)(?!\\s*(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|auto|void|char|short|int|signed|unsigned|long|float|double|bool|wchar_t|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|NULL|true|false|nullptr|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\s*\\()((?:[a-zA-Z_]\\w*\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?::)*)\\s*([a-zA-Z_]\\w*)\\s*(?:((?:<(?:[\\s<>,\\w])*>\\s*)))?(\\()",beginCaptures:{"1":{patterns:[{include:"#scope_resolution"}]},"2":{name:"entity.name.function.call.objcpp"},"3":{patterns:[{include:"#template_call_innards"}]},"4":{name:"punctuation.section.arguments.begin.bracket.round.objcpp"}},end:"\\)",endCaptures:{"0":{name:"punctuation.section.arguments.end.bracket.round.objcpp"}},patterns:[{include:"#function-call-innards-c"}]},{begin:"\\(",beginCaptures:{"0":{name:"punctuation.section.parens.begin.bracket.round.objcpp"}},end:"\\)",endCaptures:{"0":{name:"punctuation.section.parens.end.bracket.round.objcpp"}},patterns:[{include:"#function-call-innards-c"}]},{include:"#block_innards-c"}]}}},disabled:{begin:"^\\s*#\\s*if(n?def)?\\b.*$",comment:"eat nested preprocessor if(def)s",end:"^\\s*#\\s*endif\\b.*$",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},implementation_innards:{patterns:[{include:"#preprocessor-rule-enabled-implementation"},{include:"#preprocessor-rule-disabled-implementation"},{include:"#preprocessor-rule-other-implementation"},{include:"#property_directive"},{include:"#method_super"},{include:"$base"}]},interface_innards:{patterns:[{include:"#preprocessor-rule-enabled-interface"},{include:"#preprocessor-rule-disabled-interface"},{include:"#preprocessor-rule-other-interface"},{include:"#properties"},{include:"#protocol_list"},{include:"#method"},{include:"$base"}]},method:{begin:"^(-|\\+)\\s*",end:"(?=\\{|#)|;",name:"meta.function.objcpp",patterns:[{begin:"(\\()",beginCaptures:{"1":{name:"punctuation.definition.type.begin.objcpp"}},end:"(\\))\\s*(\\w+\\b)",endCaptures:{"1":{name:"punctuation.definition.type.end.objcpp"},"2":{name:"entity.name.function.objcpp"}},name:"meta.return-type.objcpp",patterns:[{include:"#protocol_list"},{include:"#protocol_type_qualifier"},{include:"$base"}]},{match:"\\b\\w+(?=:)",name:"entity.name.function.name-of-parameter.objcpp"},{begin:"((:))\\s*(\\()",beginCaptures:{"1":{name:"entity.name.function.name-of-parameter.objcpp"},"2":{name:"punctuation.separator.arguments.objcpp"},"3":{name:"punctuation.definition.type.begin.objcpp"}},end:"(\\))\\s*(\\w+\\b)?",endCaptures:{"1":{name:"punctuation.definition.type.end.objcpp"},"2":{name:"variable.parameter.function.objcpp"}},name:"meta.argument-type.objcpp",patterns:[{include:"#protocol_list"},{include:"#protocol_type_qualifier"},{include:"$base"}]},{include:"#comment"}]},method_super:{begin:"^(?=-|\\+)",end:"(?<=\\})|(?=#)",name:"meta.function-with-body.objcpp",patterns:[{include:"#method"},{include:"$base"}]},"pragma-mark":{captures:{"1":{name:"meta.preprocessor.objcpp"},"2":{name:"keyword.control.import.pragma.objcpp"},"3":{name:"meta.toc-list.pragma-mark.objcpp"}},match:"^\\s*(#\\s*(pragma\\s+mark)\\s+(.*))",name:"meta.section.objcpp"},"preprocessor-rule-disabled-implementation":{begin:"^\\s*(#(if)\\s+(0)\\b).*",captures:{"1":{name:"meta.preprocessor.objcpp"},"2":{name:"keyword.control.import.if.objcpp"},"3":{name:"constant.numeric.preprocessor.objcpp"}},end:"^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{begin:"^\\s*(#\\s*(else)\\b)",captures:{"1":{name:"meta.preprocessor.objcpp"},"2":{name:"keyword.control.import.else.objcpp"}},end:"(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{include:"#interface_innards"}]},{begin:"",end:"(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))",name:"comment.block.preprocessor.if-branch.objcpp",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]}]},"preprocessor-rule-disabled-interface":{begin:"^\\s*(#(if)\\s+(0)\\b).*",captures:{"1":{name:"meta.preprocessor.objcpp"},"2":{name:"keyword.control.import.if.objcpp"},"3":{name:"constant.numeric.preprocessor.objcpp"}},end:"^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{begin:"^\\s*(#\\s*(else)\\b)",captures:{"1":{name:"meta.preprocessor.objcpp"},"2":{name:"keyword.control.import.else.objcpp"}},end:"(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{include:"#interface_innards"}]},{begin:"",end:"(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))",name:"comment.block.preprocessor.if-branch.objcpp",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]}]},"preprocessor-rule-enabled-implementation":{begin:"^\\s*(#(if)\\s+(0*1)\\b)",captures:{"1":{name:"meta.preprocessor.objcpp"},"2":{name:"keyword.control.import.if.objcpp"},"3":{name:"constant.numeric.preprocessor.objcpp"}},end:"^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{begin:"^\\s*(#\\s*(else)\\b).*",captures:{"1":{name:"meta.preprocessor.objcpp"},"2":{name:"keyword.control.import.else.objcpp"}},contentName:"comment.block.preprocessor.else-branch.objcpp",end:"(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"",end:"(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{include:"#implementation_innards"}]}]},"preprocessor-rule-enabled-interface":{begin:"^\\s*(#(if)\\s+(0*1)\\b)",captures:{"1":{name:"meta.preprocessor.objcpp"},"2":{name:"keyword.control.import.if.objcpp"},"3":{name:"constant.numeric.preprocessor.objcpp"}},end:"^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{begin:"^\\s*(#\\s*(else)\\b).*",captures:{"1":{name:"meta.preprocessor.objcpp"},"2":{name:"keyword.control.import.else.objcpp"}},contentName:"comment.block.preprocessor.else-branch.objcpp",end:"(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{include:"#disabled"},{include:"#pragma-mark"}]},{begin:"",end:"(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))",patterns:[{include:"#interface_innards"}]}]},"preprocessor-rule-other-implementation":{begin:"^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))",captures:{"1":{name:"meta.preprocessor.objcpp"},"2":{name:"keyword.control.import.objcpp"}},end:"^\\s*(#\\s*(endif)\\b).*?(?:(?=(?://|/\\*))|$)",patterns:[{include:"#implementation_innards"}]},"preprocessor-rule-other-interface":{begin:"^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))",captures:{"1":{name:"meta.preprocessor.objcpp"},"2":{name:"keyword.control.import.objcpp"}},end:"^\\s*(#\\s*(endif)\\b).*?(?:(?=(?://|/\\*))|$)",patterns:[{include:"#interface_innards"}]},properties:{patterns:[{begin:"((@)property)\\s*(\\()",beginCaptures:{"1":{name:"keyword.other.property.objcpp"},"2":{name:"punctuation.definition.keyword.objcpp"},"3":{name:"punctuation.section.scope.begin.objcpp"}},end:"(\\))",endCaptures:{"1":{name:"punctuation.section.scope.end.objcpp"}},name:"meta.property-with-attributes.objcpp",patterns:[{match:"\\b(getter|setter|readonly|readwrite|assign|retain|copy|nonatomic|atomic|strong|weak|nonnull|nullable|null_resettable|null_unspecified|class|direct)\\b",name:"keyword.other.property.attribute.objcpp"}]},{captures:{"1":{name:"keyword.other.property.objcpp"},"2":{name:"punctuation.definition.keyword.objcpp"}},match:"((@)property)\\b",name:"meta.property.objcpp"}]},property_directive:{captures:{"1":{name:"punctuation.definition.keyword.objcpp"}},match:"(@)(dynamic|synthesize)\\b",name:"keyword.other.property.directive.objcpp"},protocol_list:{begin:"(<)",beginCaptures:{"1":{name:"punctuation.section.scope.begin.objcpp"}},end:"(>)",endCaptures:{"1":{name:"punctuation.section.scope.end.objcpp"}},name:"meta.protocol-list.objcpp",patterns:[{match:"\\bNS(GlyphStorage|M(utableCopying|enuItem)|C(hangeSpelling|o(ding|pying|lorPicking(Custom|Default)))|T(oolbarItemValidations|ext(Input|AttachmentCell))|I(nputServ(iceProvider|erMouseTracker)|gnoreMisspelledWords)|Obj(CTypeSerializationCallBack|ect)|D(ecimalNumberBehaviors|raggingInfo)|U(serInterfaceValidations|RL(HandleClient|DownloadDelegate|ProtocolClient|AuthenticationChallengeSender))|Validated(ToobarItem|UserInterfaceItem)|Locking)\\b",name:"support.other.protocol.objcpp"}]},protocol_type_qualifier:{match:"\\b(in|out|inout|oneway|bycopy|byref|nonnull|nullable|_Nonnull|_Nullable|_Null_unspecified)\\b",name:"storage.modifier.protocol.objcpp"},special_variables:{patterns:[{match:"\\b_cmd\\b",name:"variable.other.selector.objcpp"},{match:"\\b(self|super)\\b",name:"variable.language.objcpp"}]},string_escaped_char:{patterns:[{match:"(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3]\\d{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )",name:"constant.character.escape.objcpp"},{match:"\\\\.",name:"invalid.illegal.unknown-escape.objcpp"}]},string_placeholder:{patterns:[{match:"(?x) %\n(\\d+\\$)?\t\t\t\t\t\t # field (argument #)\n[#0\\- +']*\t\t\t\t\t\t # flags\n[,;:_]?\t\t\t\t\t\t\t # separator character (AltiVec)\n((-?\\d+)|\\*(-?\\d+\\$)?)?\t\t # minimum field width\n(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?\t# precision\n(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n[diouxXDOUeEfFgGaACcSspn%]\t\t # conversion type",name:"constant.other.placeholder.objcpp"},{match:"(%)(?!\"\\s*(PRI|SCN))",captures:{"1":{name:"invalid.illegal.placeholder.objcpp"}}}]}}}; + +export { objectiveCpp_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/ocaml.tmLanguage-d9b75886.mjs b/docs/shiki/dist/languages/ocaml.tmLanguage-d9b75886.mjs new file mode 100644 index 00000000..c397a234 --- /dev/null +++ b/docs/shiki/dist/languages/ocaml.tmLanguage-d9b75886.mjs @@ -0,0 +1,3 @@ +var ocaml_tmLanguage = {name:"ocaml",scopeName:"source.ocaml",fileTypes:[".ml",".mli"],patterns:[{include:"#comment"},{include:"#pragma"},{include:"#decl"}],repository:{attribute:{begin:"(\\[)[[:space:]]*((?<![#\\-:!?.@*/&%^+<=>|~$])@{1,3}(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"\\]",beginCaptures:{"1":{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"},"2":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},endCaptures:{"0":{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"}},patterns:[{include:"#attributePayload"}]},attributeIdentifier:{match:"((?<![#\\-:!?.@*/&%^+<=>|~$])%(?![#\\-:!?.@*/&%^+<=>|~$]))((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))",captures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},"2":{name:"punctuation.definition.tag"}}},attributePayload:{patterns:[{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]%|^%))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"((?<![#\\-:!?.@*/&%^+<=>|~$])[:\\?](?![#\\-:!?.@*/&%^+<=>|~$]))|(?<=[[:space:]])|(?=\\])",endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{include:"#pathModuleExtended"},{include:"#pathRecord"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"(?=\\])",patterns:[{include:"#signature"},{include:"#type"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]\\?|^\\?))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"(?=\\])",patterns:[{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]\\?|^\\?))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"(?=\\])|\\bwhen\\b",endCaptures:{"1":{}},patterns:[{include:"#pattern"}]},{begin:"(?:(?<=(?:[^[:word:]]when|^when))(?![[:word:]]))",end:"(?=\\])",patterns:[{include:"#term"}]}]},{include:"#term"}]},bindClassTerm:{patterns:[{begin:"(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]class|^class|[^[:word:]]type|^type))(?![[:word:]]))",end:"(?<![#\\-:!?.@*/&%^+<=>|~$])(:)|(=)(?![#\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},"2":{name:"support.type strong"}},patterns:[{begin:"(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]class|^class|[^[:word:]]type|^type))(?![[:word:]]))",end:"(?=(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)[[:space:]]*,|[^[:space:][:lower:]%])|(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)|(?=\\btype\\b)",endCaptures:{"0":{name:"entity.name.function strong emphasis"}},patterns:[{include:"#attributeIdentifier"}]},{begin:"\\[",end:"\\]",captures:{"0":{name:"punctuation.definition.tag"}},patterns:[{include:"#type"}]},{include:"#bindTermArgs"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"(?<![#\\-:!?.@*/&%^+<=>|~$])=(?![#\\-:!?.@*/&%^+<=>|~$])|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|val)\\b)",endCaptures:{"0":{name:"support.type strong"}},patterns:[{include:"#literalClassType"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"\\band\\b|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"}},patterns:[{include:"#term"}]}]},bindClassType:{patterns:[{begin:"(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]class|^class|[^[:word:]]type|^type))(?![[:word:]]))",end:"(?<![#\\-:!?.@*/&%^+<=>|~$])(:)|(=)(?![#\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},"2":{name:"support.type strong"}},patterns:[{begin:"(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]class|^class|[^[:word:]]type|^type))(?![[:word:]]))",end:"(?=(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)[[:space:]]*,|[^[:space:][:lower:]%])|(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)|(?=\\btype\\b)",endCaptures:{"0":{name:"entity.name.function strong emphasis"}},patterns:[{include:"#attributeIdentifier"}]},{begin:"\\[",end:"\\]",captures:{"0":{name:"punctuation.definition.tag"}},patterns:[{include:"#type"}]},{include:"#bindTermArgs"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"(?<![#\\-:!?.@*/&%^+<=>|~$])=(?![#\\-:!?.@*/&%^+<=>|~$])|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|val)\\b)",endCaptures:{"0":{name:"support.type strong"}},patterns:[{include:"#literalClassType"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"\\band\\b|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"}},patterns:[{include:"#literalClassType"}]}]},bindConstructor:{patterns:[{begin:"(?:(?<=(?:[^[:word:]]exception|^exception))(?![[:word:]]))|(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]\\+=|^\\+=|[^#\\-:!?.@*/&%^+<=>|~$]=|^=|[^#\\-:!?.@*/&%^+<=>|~$]\\||^\\|))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"(:)|(\\bof\\b)|((?<![#\\-:!?.@*/&%^+<=>|~$])\\|(?![#\\-:!?.@*/&%^+<=>|~$]))|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},"2":{name:"punctuation.definition.tag"},"3":{name:"support.type strong"}},patterns:[{include:"#attributeIdentifier"},{match:"\\.\\.",name:"variable.other.class.js message.error variable.interpolation string.regexp"},{match:"\\b(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)\\b(?![[:space:]]*(?:\\.|\\([^\\*]))",name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"},{include:"#type"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))|(?:(?<=(?:[^[:word:]]of|^of))(?![[:word:]]))",end:"(?<![#\\-:!?.@*/&%^+<=>|~$])\\|(?![#\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{"0":{name:"support.type strong"}},patterns:[{include:"#type"}]}]},bindSignature:{patterns:[{include:"#comment"},{begin:"(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))",end:"(?<![#\\-:!?.@*/&%^+<=>|~$])=(?![#\\-:!?.@*/&%^+<=>|~$])",endCaptures:{"0":{name:"support.type strong"}},patterns:[{include:"#comment"},{include:"#pathModuleExtended"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"\\band\\b|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"}},patterns:[{include:"#signature"}]}]},bindStructure:{patterns:[{include:"#comment"},{begin:"(?:(?<=(?:[^[:word:]]and|^and))(?![[:word:]]))|(?=[[:upper:]])",end:"(?<![#\\-:!?.@*/&%^+<=>|~$])(:(?!=))|(:?=)(?![#\\-:!?.@*/&%^+<=>|~$])|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|open|type|val)\\b)",endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},"2":{name:"support.type strong"}},patterns:[{include:"#comment"},{match:"\\bmodule\\b",name:"markup.inserted constant.language support.constant.property-value entity.name.filename"},{match:"(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)",name:"entity.name.function strong emphasis"},{begin:"\\((?!\\))",end:"\\)",captures:{"0":{name:"punctuation.definition.tag"}},patterns:[{include:"#comment"},{begin:"(?<![#\\-:!?.@*/&%^+<=>|~$]):(?![#\\-:!?.@*/&%^+<=>|~$])",end:"(?=\\))",beginCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"}},patterns:[{include:"#signature"}]},{include:"#variableModule"}]},{include:"#literalUnit"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"\\b(and)\\b|((?<![#\\-:!?.@*/&%^+<=>|~$])=(?![#\\-:!?.@*/&%^+<=>|~$]))|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"},"2":{name:"support.type strong"}},patterns:[{include:"#signature"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:=|^:=|[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"\\b(?:(and)|(with))\\b|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"},"2":{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"}},patterns:[{include:"#structure"}]}]},bindTerm:{patterns:[{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]!|^!))(?![#\\-:!?.@*/&%^+<=>|~$]))|(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]external|^external|[^[:word:]]let|^let|[^[:word:]]method|^method|[^[:word:]]val|^val))(?![[:word:]]))",end:"(\\bmodule\\b)|(\\bopen\\b)|(?<![#\\-:!?.@*/&%^+<=>|~$])(:)|((?<![#\\-:!?.@*/&%^+<=>|~$])=(?![#\\-:!?.@*/&%^+<=>|~$]))(?![#\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{"1":{name:"markup.inserted constant.language support.constant.property-value entity.name.filename"},"2":{name:"variable.other.class.js message.error variable.interpolation string.regexp"},"3":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},"4":{name:"support.type strong"}},patterns:[{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]!|^!))(?![#\\-:!?.@*/&%^+<=>|~$]))|(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]external|^external|[^[:word:]]let|^let|[^[:word:]]method|^method|[^[:word:]]val|^val))(?![[:word:]]))",end:"(?=\\b(?:module|open)\\b)|(?=(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)[[:space:]]*,|[^[:space:][:lower:]%])|(\\brec\\b)|((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))",endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp"},"2":{name:"entity.name.function strong emphasis"}},patterns:[{include:"#attributeIdentifier"},{include:"#comment"}]},{begin:"(?:(?<=(?:[^[:word:]]rec|^rec))(?![[:word:]]))",end:"((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))|(?=[^[:space:][:alpha:]])",endCaptures:{"0":{name:"entity.name.function strong emphasis"}},patterns:[{include:"#bindTermArgs"}]},{include:"#bindTermArgs"}]},{begin:"(?:(?<=(?:[^[:word:]]module|^module))(?![[:word:]]))",end:"(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",patterns:[{include:"#declModule"}]},{begin:"(?:(?<=(?:[^[:word:]]open|^open))(?![[:word:]]))",end:"(?=\\bin\\b)|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",patterns:[{include:"#pathModuleSimple"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"(?<![#\\-:!?.@*/&%^+<=>|~$])=(?![#\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{"0":{name:"support.type strong"}},patterns:[{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"\\btype\\b|(?=[^[:space:]])",endCaptures:{"0":{name:"keyword.control"}}},{begin:"(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))",end:"(?<![#\\-:!?.@*/&%^+<=>|~$])\\.(?![#\\-:!?.@*/&%^+<=>|~$])",endCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{include:"#pattern"}]},{include:"#type"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"\\band\\b|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"}},patterns:[{include:"#term"}]}]},bindTermArgs:{patterns:[{begin:"~|\\?",end:":|(?=[^[:space:]])",applyEndPatternLast:true,beginCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},endCaptures:{"0":{name:"keyword"}},patterns:[{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]~|^~|[^#\\-:!?.@*/&%^+<=>|~$]\\?|^\\?))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)|(?<=\\))",endCaptures:{"0":{name:"markup.inserted constant.language support.constant.property-value entity.name.filename"}},patterns:[{include:"#comment"},{begin:"\\((?!\\*)",end:"\\)",captures:{"0":{name:"punctuation.definition.tag"}},patterns:[{begin:"(?<=\\()",end:":|=",endCaptures:{"0":{name:"keyword"}},patterns:[{match:"(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)",name:"markup.inserted constant.language support.constant.property-value entity.name.filename"}]},{begin:"(?<=:)",end:"=|(?=\\))",endCaptures:{"0":{name:"keyword"}},patterns:[{include:"#type"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"(?=\\))",patterns:[{include:"#term"}]}]}]}]},{include:"#pattern"}]},bindType:{patterns:[{begin:"(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]type|^type))(?![[:word:]]))",end:"(?<![#\\-:!?.@*/&%^+<=>|~$])\\+=|=(?![#\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{"0":{name:"support.type strong"}},patterns:[{include:"#attributeIdentifier"},{include:"#pathType"},{match:"(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)",name:"entity.name.function strong"},{include:"#type"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]\\+=|^\\+=|[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"\\band\\b|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",endCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"}},patterns:[{include:"#bindConstructor"}]}]},comment:{patterns:[{include:"#attribute"},{include:"#extension"},{include:"#commentBlock"},{include:"#commentDoc"}]},commentBlock:{begin:"\\(\\*(?!\\*[^\\)])",end:"\\*\\)",name:"comment constant.regexp meta.separator.markdown",contentName:"emphasis",patterns:[{include:"#commentBlock"},{include:"#commentDoc"}]},commentDoc:{begin:"\\(\\*\\*",end:"\\*\\)",name:"comment constant.regexp meta.separator.markdown",patterns:[{match:"\\*"},{include:"#comment"}]},decl:{patterns:[{include:"#declClass"},{include:"#declException"},{include:"#declInclude"},{include:"#declModule"},{include:"#declOpen"},{include:"#declTerm"},{include:"#declType"}]},declClass:{begin:"\\bclass\\b",end:";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",beginCaptures:{"0":{name:"entity.name.class constant.numeric markup.underline"}},endCaptures:{"0":{name:"punctuation.definition.tag"}},patterns:[{include:"#comment"},{include:"#pragma"},{begin:"(?:(?<=(?:[^[:word:]]class|^class))(?![[:word:]]))",end:"\\btype\\b|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|val)\\b)",beginCaptures:{"0":{name:"entity.name.class constant.numeric markup.underline"}},endCaptures:{"0":{name:"keyword"}},patterns:[{include:"#bindClassTerm"}]},{begin:"(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))",end:"(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",patterns:[{include:"#bindClassType"}]}]},declException:{begin:"\\bexception\\b",end:";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",beginCaptures:{"0":{name:"keyword markup.underline"}},endCaptures:{"0":{name:"punctuation.definition.tag"}},patterns:[{include:"#attributeIdentifier"},{include:"#comment"},{include:"#pragma"},{include:"#bindConstructor"}]},declInclude:{begin:"\\binclude\\b",end:";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",beginCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},endCaptures:{"0":{name:"punctuation.definition.tag"}},patterns:[{include:"#attributeIdentifier"},{include:"#comment"},{include:"#pragma"},{include:"#signature"}]},declModule:{begin:"(?:(?<=(?:[^[:word:]]module|^module))(?![[:word:]]))|\\bmodule\\b",end:";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",beginCaptures:{"0":{name:"markup.inserted constant.language support.constant.property-value entity.name.filename markup.underline"}},endCaptures:{"0":{name:"punctuation.definition.tag"}},patterns:[{include:"#comment"},{include:"#pragma"},{begin:"(?:(?<=(?:[^[:word:]]module|^module))(?![[:word:]]))",end:"(\\btype\\b)|(?=[[:upper:]])",endCaptures:{"0":{name:"keyword"}},patterns:[{include:"#attributeIdentifier"},{include:"#comment"},{match:"\\brec\\b",name:"variable.other.class.js message.error variable.interpolation string.regexp"}]},{begin:"(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))",end:"(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",patterns:[{include:"#bindSignature"}]},{begin:"(?=[[:upper:]])",end:"(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",patterns:[{include:"#bindStructure"}]}]},declOpen:{begin:"\\bopen\\b",end:";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",beginCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},endCaptures:{"0":{name:"punctuation.definition.tag"}},patterns:[{include:"#attributeIdentifier"},{include:"#comment"},{include:"#pragma"},{include:"#pathModuleExtended"}]},declTerm:{begin:"\\b(?:(external|val)|(method)|(let))\\b(!?)",end:";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",beginCaptures:{"1":{name:"support.type markup.underline"},"2":{name:"storage.type markup.underline"},"3":{name:"keyword.control markup.underline"},"4":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},endCaptures:{"0":{name:"punctuation.definition.tag"}},patterns:[{include:"#comment"},{include:"#pragma"},{include:"#bindTerm"}]},declType:{begin:"(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))|\\btype\\b",end:";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",beginCaptures:{"0":{name:"keyword markup.underline"}},endCaptures:{"0":{name:"punctuation.definition.tag"}},patterns:[{include:"#comment"},{include:"#pragma"},{include:"#bindType"}]},extension:{begin:"(\\[)((?<![#\\-:!?.@*/&%^+<=>|~$])%{1,3}(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"\\]",beginCaptures:{"1":{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"},"2":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},endCaptures:{"0":{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"}},patterns:[{include:"#attributePayload"}]},literal:{patterns:[{include:"#termConstructor"},{include:"#literalArray"},{include:"#literalBoolean"},{include:"#literalCharacter"},{include:"#literalList"},{include:"#literalNumber"},{include:"#literalObjectTerm"},{include:"#literalString"},{include:"#literalRecord"},{include:"#literalUnit"}]},literalArray:{begin:"\\[\\|",end:"\\|\\]",captures:{"0":{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"}},patterns:[{include:"#term"}]},literalBoolean:{match:"\\bfalse|true\\b",name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"},literalCharacter:{begin:"(?<![[:word:]])'",end:"'",name:"markup.punctuation.quote.beginning",patterns:[{include:"#literalCharacterEscape"}]},literalCharacterEscape:{match:"\\\\(?:[\\\\\"'ntbr]|[[:digit:]][[:digit:]][[:digit:]]|x[[:xdigit:]][[:xdigit:]]|o[0-3][0-7][0-7])"},literalClassType:{patterns:[{include:"#comment"},{begin:"\\bobject\\b",end:"\\bend\\b",captures:{"0":{name:"punctuation.definition.tag emphasis"}},patterns:[{begin:"\\binherit\\b",end:";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",beginCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},endCaptures:{"0":{name:"punctuation.definition.tag"}},patterns:[{begin:"\\bas\\b",end:";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",beginCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{include:"#variablePattern"}]},{include:"#type"}]},{include:"#pattern"},{include:"#declTerm"}]},{begin:"\\[",end:"\\]"}]},literalList:{patterns:[{begin:"\\[",end:"\\]",captures:{"0":{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"}},patterns:[{include:"#term"}]}]},literalNumber:{match:"(?<![[:alpha:]])[[:digit:]][[:digit:]]*(\\.[[:digit:]][[:digit:]]*)?",name:"constant.numeric"},literalObjectTerm:{patterns:[{include:"#comment"},{begin:"\\bobject\\b",end:"\\bend\\b",captures:{"0":{name:"punctuation.definition.tag emphasis"}},patterns:[{begin:"\\binherit\\b",end:";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",beginCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},endCaptures:{"0":{name:"punctuation.definition.tag"}},patterns:[{begin:"\\bas\\b",end:";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",beginCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{include:"#variablePattern"}]},{include:"#term"}]},{include:"#pattern"},{include:"#declTerm"}]},{begin:"\\[",end:"\\]"}]},literalRecord:{begin:"\\{",end:"\\}",captures:{"0":{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong strong"}},patterns:[{begin:"(?<=\\{|;)",end:"(:)|(=)|(;)|(with)|(?=\\})",endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},"2":{name:"support.type strong"},"3":{name:"variable.other.class.js message.error variable.interpolation string.regexp"},"4":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{include:"#comment"},{include:"#pathModulePrefixSimple"},{match:"(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)",name:"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"}]},{begin:"(?:(?<=(?:[^[:word:]]with|^with))(?![[:word:]]))",end:"(:)|(=)|(;)|(?=\\})",endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},"2":{name:"support.type strong"},"3":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{match:"(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)",name:"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"(;)|(=)|(?=\\})",endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp"},"2":{name:"support.type strong"}},patterns:[{include:"#type"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:";|(?=\\})",endCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{include:"#term"}]}]},literalString:{patterns:[{begin:"\"",end:"\"",name:"string beginning.punctuation.definition.quote.markdown",patterns:[{include:"#literalStringEscape"}]},{begin:"(\\{)([_[:lower:]]*?)(\\|)",end:"(\\|)(\\2)(\\})",name:"string beginning.punctuation.definition.quote.markdown",patterns:[{include:"#literalStringEscape"}]}]},literalStringEscape:{match:"\\\\(?:[\\\\\"ntbr]|[[:digit:]][[:digit:]][[:digit:]]|x[[:xdigit:]][[:xdigit:]]|o[0-3][0-7][0-7])"},literalUnit:{match:"\\(\\)",name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"},pathModuleExtended:{patterns:[{include:"#pathModulePrefixExtended"},{match:"(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)",name:"entity.name.class constant.numeric"}]},pathModulePrefixExtended:{begin:"(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\.|$|\\()",end:"(?![[:space:]\\.]|$|\\()",beginCaptures:{"0":{name:"entity.name.class constant.numeric"}},patterns:[{include:"#comment"},{begin:"\\(",end:"\\)",captures:{"0":{name:"keyword.control"}},patterns:[{match:"((?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\)))",name:"string.other.link variable.language variable.parameter emphasis"},{include:"#structure"}]},{begin:"(?<![#\\-:!?.@*/&%^+<=>|~$])\\.(?![#\\-:!?.@*/&%^+<=>|~$])",end:"((?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\.|$))|((?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*(?:$|\\()))|((?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\)))|(?![[:space:]\\.[:upper:]]|$|\\()",beginCaptures:{"0":{name:"keyword strong"}},endCaptures:{"1":{name:"entity.name.class constant.numeric"},"2":{name:"entity.name.function strong"},"3":{name:"string.other.link variable.language variable.parameter emphasis"}}}]},pathModulePrefixExtendedParens:{begin:"\\(",end:"\\)",captures:{"0":{name:"keyword.control"}},patterns:[{match:"((?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\)))",name:"string.other.link variable.language variable.parameter emphasis"},{include:"#structure"}]},pathModulePrefixSimple:{begin:"(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\.)",end:"(?![[:space:]\\.])",beginCaptures:{"0":{name:"entity.name.class constant.numeric"}},patterns:[{include:"#comment"},{begin:"(?<![#\\-:!?.@*/&%^+<=>|~$])\\.(?![#\\-:!?.@*/&%^+<=>|~$])",end:"((?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\.))|((?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*))|(?![[:space:]\\.[:upper:]])",beginCaptures:{"0":{name:"keyword strong"}},endCaptures:{"1":{name:"entity.name.class constant.numeric"},"2":{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"}}}]},pathModuleSimple:{patterns:[{include:"#pathModulePrefixSimple"},{match:"(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)",name:"entity.name.class constant.numeric"}]},pathRecord:{patterns:[{begin:"(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)",end:"(?=[^[:space:]\\.])(?!\\(\\*)",patterns:[{include:"#comment"},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]\\.|^\\.))(?![#\\-:!?.@*/&%^+<=>|~$]))|(?<![#\\-:!?.@*/&%^+<=>|~$])\\.(?![#\\-:!?.@*/&%^+<=>|~$])",end:"((?<![#\\-:!?.@*/&%^+<=>|~$])\\.(?![#\\-:!?.@*/&%^+<=>|~$]))|((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|mutable|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))|(?<=\\))|(?<=\\])",beginCaptures:{"0":{name:"keyword strong"}},endCaptures:{"1":{name:"keyword strong"},"2":{name:"markup.inserted constant.language support.constant.property-value entity.name.filename"}},patterns:[{include:"#comment"},{include:"#pathModulePrefixSimple"},{begin:"\\((?!\\*)",end:"\\)",captures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{include:"#term"}]},{begin:"\\[",end:"\\]",captures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{include:"#pattern"}]}]}]}]},pattern:{patterns:[{include:"#comment"},{include:"#patternArray"},{include:"#patternLazy"},{include:"#patternList"},{include:"#patternMisc"},{include:"#patternModule"},{include:"#patternRecord"},{include:"#literal"},{include:"#patternParens"},{include:"#patternType"},{include:"#variablePattern"},{include:"#termOperator"}]},patternArray:{begin:"\\[\\|",end:"\\|\\]",captures:{"0":{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"}},patterns:[{include:"#pattern"}]},patternLazy:{match:"lazy",name:"variable.other.class.js message.error variable.interpolation string.regexp"},patternList:{begin:"\\[",end:"\\]",captures:{"0":{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"}},patterns:[{include:"#pattern"}]},patternMisc:{match:"((?<![#\\-:!?.@*/&%^+<=>|~$]),(?![#\\-:!?.@*/&%^+<=>|~$]))|([#\\-:!?.@*/&%^+<=>|~$]+)|\\b(as)\\b",captures:{"1":{name:"string.regexp strong"},"2":{name:"variable.other.class.js message.error variable.interpolation string.regexp"},"3":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}}},patternModule:{begin:"\\bmodule\\b",end:"(?=\\))",beginCaptures:{"0":{name:"markup.inserted constant.language support.constant.property-value entity.name.filename"}},patterns:[{include:"#declModule"}]},patternParens:{begin:"\\((?!\\))",end:"\\)",captures:{"0":{name:"punctuation.definition.tag"}},patterns:[{include:"#comment"},{begin:"(?<![#\\-:!?.@*/&%^+<=>|~$]):(?![#\\-:!?.@*/&%^+<=>|~$])",end:"(?=\\))",beginCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"}},patterns:[{include:"#type"}]},{include:"#pattern"}]},patternRecord:{begin:"\\{",end:"\\}",captures:{"0":{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong strong"}},patterns:[{begin:"(?<=\\{|;)",end:"(:)|(=)|(;)|(with)|(?=\\})",endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},"2":{name:"support.type strong"},"3":{name:"variable.other.class.js message.error variable.interpolation string.regexp"},"4":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{include:"#comment"},{include:"#pathModulePrefixSimple"},{match:"(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)",name:"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"}]},{begin:"(?:(?<=(?:[^[:word:]]with|^with))(?![[:word:]]))",end:"(:)|(=)|(;)|(?=\\})",endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},"2":{name:"support.type strong"},"3":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{match:"(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)",name:"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"(;)|(=)|(?=\\})",endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp"},"2":{name:"support.type strong"}},patterns:[{include:"#type"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:";|(?=\\})",endCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{include:"#pattern"}]}]},patternType:{begin:"\\btype\\b",end:"(?=\\))",beginCaptures:{"0":{name:"keyword"}},patterns:[{include:"#declType"}]},pragma:{begin:"(?<![#\\-:!?.@*/&%^+<=>|~$])#(?![#\\-:!?.@*/&%^+<=>|~$])",end:"(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",beginCaptures:{"0":{name:"punctuation.definition.tag"}},patterns:[{include:"#comment"},{include:"#literalNumber"},{include:"#literalString"}]},signature:{patterns:[{include:"#comment"},{include:"#signatureLiteral"},{include:"#signatureFunctor"},{include:"#pathModuleExtended"},{include:"#signatureParens"},{include:"#signatureRecovered"},{include:"#signatureConstraints"}]},signatureConstraints:{begin:"\\bwith\\b",end:"(?=\\))|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",beginCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"}},patterns:[{begin:"(?:(?<=(?:[^[:word:]]with|^with))(?![[:word:]]))",end:"\\b(?:(module)|(type))\\b",endCaptures:{"1":{name:"markup.inserted constant.language support.constant.property-value entity.name.filename"},"2":{name:"keyword"}}},{include:"#declModule"},{include:"#declType"}]},signatureFunctor:{patterns:[{begin:"\\bfunctor\\b",end:"(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",beginCaptures:{"0":{name:"keyword"}},patterns:[{begin:"(?:(?<=(?:[^[:word:]]functor|^functor))(?![[:word:]]))",end:"(\\(\\))|(\\((?!\\)))",endCaptures:{"1":{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"},"2":{name:"punctuation.definition.tag"}}},{begin:"(?<=\\()",end:"(:)|(\\))",endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},"2":{name:"punctuation.definition.tag"}},patterns:[{include:"#variableModule"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"\\)",endCaptures:{"0":{name:"punctuation.definition.tag"}},patterns:[{include:"#signature"}]},{begin:"(?<=\\))",end:"(\\()|((?<![#\\-:!?.@*/&%^+<=>|~$])->(?![#\\-:!?.@*/&%^+<=>|~$]))",endCaptures:{"1":{name:"punctuation.definition.tag"},"2":{name:"support.type strong"}}},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]->|^->))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",patterns:[{include:"#signature"}]}]},{match:"(?<![#\\-:!?.@*/&%^+<=>|~$])->(?![#\\-:!?.@*/&%^+<=>|~$])",name:"support.type strong"}]},signatureLiteral:{begin:"\\bsig\\b",end:"\\bend\\b",captures:{"0":{name:"punctuation.definition.tag emphasis"}},patterns:[{include:"#comment"},{include:"#pragma"},{include:"#decl"}]},signatureParens:{begin:"\\((?!\\))",end:"\\)",captures:{"0":{name:"punctuation.definition.tag"}},patterns:[{include:"#comment"},{begin:"(?<![#\\-:!?.@*/&%^+<=>|~$]):(?![#\\-:!?.@*/&%^+<=>|~$])",end:"(?=\\))",beginCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"}},patterns:[{include:"#signature"}]},{include:"#signature"}]},signatureRecovered:{patterns:[{begin:"\\(|(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:|[^#\\-:!?.@*/&%^+<=>|~$]->|^->))(?![#\\-:!?.@*/&%^+<=>|~$]))|(?:(?<=(?:[^[:word:]]include|^include|[^[:word:]]open|^open))(?![[:word:]]))",end:"\\bmodule\\b|(?!$|[[:space:]]|\\bmodule\\b)",endCaptures:{"0":{name:"markup.inserted constant.language support.constant.property-value entity.name.filename"}}},{begin:"(?:(?<=(?:[^[:word:]]module|^module))(?![[:word:]]))",end:"(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",patterns:[{begin:"(?:(?<=(?:[^[:word:]]module|^module))(?![[:word:]]))",end:"\\btype\\b",endCaptures:{"0":{name:"keyword"}}},{begin:"(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))",end:"\\bof\\b",endCaptures:{"0":{name:"punctuation.definition.tag"}}},{begin:"(?:(?<=(?:[^[:word:]]of|^of))(?![[:word:]]))",end:"(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",patterns:[{include:"#signature"}]}]}]},structure:{patterns:[{include:"#comment"},{include:"#structureLiteral"},{include:"#structureFunctor"},{include:"#pathModuleExtended"},{include:"#structureParens"}]},structureFunctor:{patterns:[{begin:"\\bfunctor\\b",end:"(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",beginCaptures:{"0":{name:"keyword"}},patterns:[{begin:"(?:(?<=(?:[^[:word:]]functor|^functor))(?![[:word:]]))",end:"(\\(\\))|(\\((?!\\)))",endCaptures:{"1":{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"},"2":{name:"punctuation.definition.tag"}}},{begin:"(?<=\\()",end:"(:)|(\\))",endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},"2":{name:"punctuation.definition.tag"}},patterns:[{include:"#variableModule"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"\\)",endCaptures:{"0":{name:"punctuation.definition.tag"}},patterns:[{include:"#signature"}]},{begin:"(?<=\\))",end:"(\\()|((?<![#\\-:!?.@*/&%^+<=>|~$])->(?![#\\-:!?.@*/&%^+<=>|~$]))",endCaptures:{"1":{name:"punctuation.definition.tag"},"2":{name:"support.type strong"}}},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]->|^->))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",patterns:[{include:"#structure"}]}]},{match:"(?<![#\\-:!?.@*/&%^+<=>|~$])->(?![#\\-:!?.@*/&%^+<=>|~$])",name:"support.type strong"}]},structureLiteral:{begin:"\\bstruct\\b",end:"\\bend\\b",captures:{"0":{name:"punctuation.definition.tag emphasis"}},patterns:[{include:"#comment"},{include:"#pragma"},{include:"#decl"}]},structureParens:{begin:"\\(",end:"\\)",captures:{"0":{name:"punctuation.definition.tag"}},patterns:[{include:"#structureUnpack"},{include:"#structure"}]},structureUnpack:{begin:"\\bval\\b",end:"(?=\\))",beginCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}}},term:{patterns:[{include:"#termLet"},{include:"#termAtomic"}]},termAtomic:{patterns:[{include:"#comment"},{include:"#termConditional"},{include:"#termConstructor"},{include:"#termDelim"},{include:"#termFor"},{include:"#termFunction"},{include:"#literal"},{include:"#termMatch"},{include:"#termMatchRule"},{include:"#termPun"},{include:"#termOperator"},{include:"#termTry"},{include:"#termWhile"},{include:"#pathRecord"}]},termConditional:{match:"\\b(?:if|then|else)\\b",name:"keyword.control"},termConstructor:{patterns:[{include:"#pathModulePrefixSimple"},{match:"(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)",name:"constant.language constant.numeric entity.other.attribute-name.id.css strong"}]},termDelim:{patterns:[{begin:"\\((?!\\))",end:"\\)",captures:{"0":{name:"punctuation.definition.tag"}},patterns:[{include:"#term"}]},{begin:"\\bbegin\\b",end:"\\bend\\b",captures:{"0":{name:"punctuation.definition.tag"}},patterns:[{include:"#attributeIdentifier"},{include:"#term"}]}]},termFor:{patterns:[{begin:"\\bfor\\b",end:"\\bdone\\b",beginCaptures:{"0":{name:"keyword.control"}},endCaptures:{"0":{name:"keyword.control"}},patterns:[{begin:"(?:(?<=(?:[^[:word:]]for|^for))(?![[:word:]]))",end:"(?<![#\\-:!?.@*/&%^+<=>|~$])=(?![#\\-:!?.@*/&%^+<=>|~$])",endCaptures:{"0":{name:"support.type strong"}},patterns:[{include:"#pattern"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"\\b(?:downto|to)\\b",endCaptures:{"0":{name:"keyword.control"}},patterns:[{include:"#term"}]},{begin:"(?:(?<=(?:[^[:word:]]to|^to))(?![[:word:]]))",end:"\\bdo\\b",endCaptures:{"0":{name:"keyword.control"}},patterns:[{include:"#term"}]},{begin:"(?:(?<=(?:[^[:word:]]do|^do))(?![[:word:]]))",end:"(?=\\bdone\\b)",patterns:[{include:"#term"}]}]}]},termFunction:{match:"\\b(?:(fun)|(function))\\b",captures:{"1":{name:"storage.type"},"2":{name:"storage.type"}}},termLet:{patterns:[{begin:"(?:(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=|[^#\\-:!?.@*/&%^+<=>|~$]->|^->))(?![#\\-:!?.@*/&%^+<=>|~$]))|(?<=;|\\())(?=[[:space:]]|\\blet\\b)|(?:(?<=(?:[^[:word:]]begin|^begin|[^[:word:]]do|^do|[^[:word:]]else|^else|[^[:word:]]in|^in|[^[:word:]]struct|^struct|[^[:word:]]then|^then|[^[:word:]]try|^try))(?![[:word:]]))|(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]@@|^@@))(?![#\\-:!?.@*/&%^+<=>|~$]))[[:space:]]+",end:"\\b(?:(and)|(let))\\b|(?=[^[:space:]])(?!\\(\\*)",endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"},"2":{name:"storage.type markup.underline"}},patterns:[{include:"#comment"}]},{begin:"(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]let|^let))(?![[:word:]]))|(let)",end:"\\b(?:(and)|(in))\\b|(?=\\}|\\)|\\]|\\b(?:end|class|exception|external|include|inherit|initializer|let|method|module|open|type|val)\\b)",beginCaptures:{"1":{name:"storage.type markup.underline"}},endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp markup.underline"},"2":{name:"storage.type markup.underline"}},patterns:[{include:"#bindTerm"}]}]},termMatch:{begin:"\\bmatch\\b",end:"\\bwith\\b",captures:{"0":{name:"keyword.control"}},patterns:[{include:"#term"}]},termMatchRule:{patterns:[{begin:"(?:(?<=(?:[^[:word:]]fun|^fun|[^[:word:]]function|^function|[^[:word:]]with|^with))(?![[:word:]]))",end:"(?<![#\\-:!?.@*/&%^+<=>|~$])(\\|)|(->)(?![#\\-:!?.@*/&%^+<=>|~$])",endCaptures:{"1":{name:"support.type strong"},"2":{name:"support.type strong"}},patterns:[{include:"#comment"},{include:"#attributeIdentifier"},{include:"#pattern"}]},{begin:"(?:(?<=(?:[^\\[#\\-:!?.@*/&%^+<=>|~$]\\||^\\|))(?![#\\-:!?.@*/&%^+<=>|~$]))|(?<![#\\-:!?.@*/&%^+<=>|~$])\\|(?![#\\-:!?.@*/&%^+<=>|~$])",end:"(?<![#\\-:!?.@*/&%^+<=>|~$])(\\|)|(->)(?![#\\-:!?.@*/&%^+<=>|~$])",beginCaptures:{"0":{name:"support.type strong"}},endCaptures:{"1":{name:"support.type strong"},"2":{name:"support.type strong"}},patterns:[{include:"#pattern"},{begin:"\\bwhen\\b",end:"(?=(?<![#\\-:!?.@*/&%^+<=>|~$])->(?![#\\-:!?.@*/&%^+<=>|~$]))",beginCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{include:"#term"}]}]}]},termOperator:{patterns:[{begin:"(?<![#\\-:!?.@*/&%^+<=>|~$])#(?![#\\-:!?.@*/&%^+<=>|~$])",end:"(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)",beginCaptures:{"0":{name:"keyword"}},endCaptures:{"0":{name:"entity.name.function"}}},{match:"<-",captures:{"0":{name:"keyword.control strong"}}},{match:"(,|[#\\-:!?.@*/&%^+<=>|~$]+)|(;)",captures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp"},"2":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}}},{match:"\\b(?:and|assert|asr|land|lazy|lsr|lxor|mod|new|or)\\b",name:"variable.other.class.js message.error variable.interpolation string.regexp"}]},termPun:{begin:"(?<![#\\-:!?.@*/&%^+<=>|~$])\\?|~(?![#\\-:!?.@*/&%^+<=>|~$])",end:":|(?=[^[:space:]:])",applyEndPatternLast:true,beginCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},endCaptures:{"0":{name:"keyword"}},patterns:[{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]\\?|^\\?|[^#\\-:!?.@*/&%^+<=>|~$]~|^~))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)",endCaptures:{"0":{name:"markup.inserted constant.language support.constant.property-value entity.name.filename"}}}]},termTry:{begin:"\\btry\\b",end:"\\bwith\\b",captures:{"0":{name:"keyword.control"}},patterns:[{include:"#term"}]},termWhile:{patterns:[{begin:"\\bwhile\\b",end:"\\bdone\\b",beginCaptures:{"0":{name:"keyword.control"}},endCaptures:{"0":{name:"keyword.control"}},patterns:[{begin:"(?:(?<=(?:[^[:word:]]while|^while))(?![[:word:]]))",end:"\\bdo\\b",endCaptures:{"0":{name:"keyword.control"}},patterns:[{include:"#term"}]},{begin:"(?:(?<=(?:[^[:word:]]do|^do))(?![[:word:]]))",end:"(?=\\bdone\\b)",patterns:[{include:"#term"}]}]}]},type:{patterns:[{include:"#comment"},{match:"\\bnonrec\\b",name:"variable.other.class.js message.error variable.interpolation string.regexp"},{include:"#pathModulePrefixExtended"},{include:"#typeLabel"},{include:"#typeObject"},{include:"#typeOperator"},{include:"#typeParens"},{include:"#typePolymorphicVariant"},{include:"#typeRecord"},{include:"#typeConstructor"}]},typeConstructor:{patterns:[{begin:"(_)|((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))|(')((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))|(?<=[^\\*]\\)|\\])",end:"(?=\\((?!\\*)|\\*|:|,|=|\\.|>|-|\\{|\\[|\\+|\\}|\\)|\\]|;|\\|)|((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))[:space:]*(?!\\(\\*|[[:word:]])|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)",beginCaptures:{"1":{name:"comment constant.regexp meta.separator.markdown"},"3":{name:"string.other.link variable.language variable.parameter emphasis strong emphasis"},"4":{name:"keyword.control emphasis"}},endCaptures:{"1":{name:"entity.name.function strong"}},patterns:[{include:"#comment"},{include:"#pathModulePrefixExtended"}]}]},typeLabel:{patterns:[{begin:"(\\??)((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))[[:space:]]*((?<![#\\-:!?.@*/&%^+<=>|~$]):(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"(?=(?<![#\\-:!?.@*/&%^+<=>|~$])->(?![#\\-:!?.@*/&%^+<=>|~$]))",captures:{"1":{name:"keyword strong emphasis"},"2":{name:"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"},"3":{name:"keyword"}},patterns:[{include:"#type"}]}]},typeModule:{begin:"\\bmodule\\b",end:"(?=\\))",beginCaptures:{"0":{name:"markup.inserted constant.language support.constant.property-value entity.name.filename"}},patterns:[{include:"#pathModuleExtended"},{include:"#signatureConstraints"}]},typeObject:{begin:"<",end:">",captures:{"0":{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong strong"}},patterns:[{begin:"(?<=<|;)",end:"(:)|(?=>)",endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},"3":{name:"variable.other.class.js message.error variable.interpolation string.regexp"},"4":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{include:"#comment"},{include:"#pathModulePrefixSimple"},{match:"(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)",name:"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"(;)|(?=>)",endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp"},"2":{name:"support.type strong"}},patterns:[{include:"#type"}]}]},typeOperator:{patterns:[{match:",|;|[#\\-:!?.@*/&%^+<=>|~$]+",name:"variable.other.class.js message.error variable.interpolation string.regexp strong"}]},typeParens:{begin:"\\(",end:"\\)",captures:{"0":{name:"punctuation.definition.tag"}},patterns:[{match:",",name:"variable.other.class.js message.error variable.interpolation string.regexp"},{include:"#typeModule"},{include:"#type"}]},typePolymorphicVariant:{begin:"\\[",end:"\\]",patterns:[]},typeRecord:{begin:"\\{",end:"\\}",captures:{"0":{name:"constant.language constant.numeric entity.other.attribute-name.id.css strong strong"}},patterns:[{begin:"(?<=\\{|;)",end:"(:)|(=)|(;)|(with)|(?=\\})",endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},"2":{name:"support.type strong"},"3":{name:"variable.other.class.js message.error variable.interpolation string.regexp"},"4":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{include:"#comment"},{include:"#pathModulePrefixSimple"},{match:"(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)",name:"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"}]},{begin:"(?:(?<=(?:[^[:word:]]with|^with))(?![[:word:]]))",end:"(:)|(=)|(;)|(?=\\})",endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp strong"},"2":{name:"support.type strong"},"3":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{match:"(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)",name:"markup.inserted constant.language support.constant.property-value entity.name.filename emphasis"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:"(;)|(=)|(?=\\})",endCaptures:{"1":{name:"variable.other.class.js message.error variable.interpolation string.regexp"},"2":{name:"support.type strong"}},patterns:[{include:"#type"}]},{begin:"(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))",end:";|(?=\\})",endCaptures:{"0":{name:"variable.other.class.js message.error variable.interpolation string.regexp"}},patterns:[{include:"#type"}]}]},variableModule:{match:"(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)",captures:{"0":{name:"string.other.link variable.language variable.parameter emphasis"}}},variablePattern:{match:"(\\b_\\b)|((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))",captures:{"1":{name:"comment constant.regexp meta.separator.markdown"},"2":{name:"string.other.link variable.language variable.parameter emphasis"}}}}}; + +export { ocaml_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/pascal.tmLanguage-1d94501b.mjs b/docs/shiki/dist/languages/pascal.tmLanguage-1d94501b.mjs new file mode 100644 index 00000000..36ca1db5 --- /dev/null +++ b/docs/shiki/dist/languages/pascal.tmLanguage-1d94501b.mjs @@ -0,0 +1,3 @@ +var pascal_tmLanguage = {fileTypes:["pas","p","pp","dfm","fmx","dpr","dpk","lfm","lpr"],keyEquivalent:"^~P",name:"pascal",patterns:[{match:"\\b(?i:(absolute|abstract|all|and_then|array|as|asm|attribute|begin|bindable|case|class|const|contains|default|div|else|end|except|export|exports|external|far|file|finalization|finally|forward|generic|goto|if|implements|import|in|index|inherited|initialization|interrupt|is|label|library|mod|module|name|near|not|object|of|on|only|operator|or_else|otherwise|out|override|package|packed|pow|private|program|protected|public|published|interface|implementation|qualified|read|record|resident|requires|resourcestring|restricted|segment|set|shl|shr|specialize|stored|strict|then|threadvar|to|try|type|unit|uses|var|view|virtual|dynamic|overload|reintroduce|with|write|xor))\\b",name:"keyword.pascal"},{captures:{"1":{name:"storage.type.prototype.pascal"},"2":{name:"entity.name.function.prototype.pascal"}},match:"\\b(?i:(function|procedure|constructor|destructor))\\b\\s+(\\w+(\\.\\w+)?)(\\(.*?\\))?;\\s*(?=(?i:attribute|forward|external))",name:"meta.function.prototype.pascal"},{captures:{"1":{name:"storage.type.function.pascal"},"2":{name:"entity.name.function.pascal"}},match:"\\b(?i:(function|procedure|constructor|destructor|property|read|write))\\b\\s+(\\w+(\\.\\w+)?)",name:"meta.function.pascal"},{match:"\\b(?i:(self|result))\\b",name:"token.variable"},{match:"\\b(?i:(and|or))\\b",name:"keyword.operator.pascal"},{match:"\\b(?i:(break|continue|exit|abort|while|do|downto|for|raise|repeat|until))\\b",name:"keyword.control.pascal"},{begin:"\\{\\$",captures:{"0":{name:"string.regexp"}},end:"\\}",name:"string.regexp"},{match:"\\b(?i:(ansichar|ansistring|boolean|byte|cardinal|char|comp|currency|double|dword|extended|file|integer|int64|longint|longword|nativeint|nativeuint|olevariant|pansichar|pchar|pwidechar|pointer|real|shortint|shortstring|single|smallint|string|uint64|variant|widechar|widestring|word|wordbool))\\b",name:"storage.support.type.pascal"},{match:"\\b(\\d+)|(\\d*\\.\\d+([eE][\\-+]?\\d+)?)\\b",name:"constant.numeric.pascal"},{match:"\\$[0-9a-fA-F]{1,16}\\b",name:"constant.numeric.hex.pascal"},{match:"\\b(?i:(true|false|nil))\\b",name:"constant.language.pascal"},{match:"\\b(?i:(Assert))\\b",name:"keyword.control"},{begin:"(^[ \\t]+)?(?=//)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.pascal"}},end:"(?!\\G)",patterns:[{begin:"//",beginCaptures:{"0":{name:"punctuation.definition.comment.pascal"}},end:"\\n",name:"comment.line.double-slash.pascal.two"}]},{begin:"\\(\\*",captures:{"0":{name:"punctuation.definition.comment.pascal"}},end:"\\*\\)",name:"comment.block.pascal.one"},{begin:"\\{(?!\\$)",captures:{"0":{name:"punctuation.definition.comment.pascal"}},end:"\\}",name:"comment.block.pascal.two"},{begin:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.pascal"}},end:"'",endCaptures:{"0":{name:"punctuation.definition.string.end.pascal"}},name:"string.quoted.single.pascal",patterns:[{match:"''",name:"constant.character.escape.apostrophe.pascal"}]},{match:"\\#\\d+",name:"string.other.pascal"}],scopeName:"source.pascal",uuid:"F42FA544-6B1C-11D9-9517-000D93589AF6"}; + +export { pascal_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/perl.tmLanguage-9ababd67.mjs b/docs/shiki/dist/languages/perl.tmLanguage-9ababd67.mjs new file mode 100644 index 00000000..08f1491d --- /dev/null +++ b/docs/shiki/dist/languages/perl.tmLanguage-9ababd67.mjs @@ -0,0 +1,3 @@ +var perl_tmLanguage = {information_for_contributors:["This file has been converted from https://github.com/textmate/perl.tmbundle/blob/master/Syntaxes/Perl.plist","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."],version:"https://github.com/textmate/perl.tmbundle/commit/a85927a902d6e5d7805f56a653f324d34dfad53a",name:"perl",scopeName:"source.perl",comment:"\n\tTODO:\tInclude RegExp syntax\n",patterns:[{include:"#line_comment"},{begin:"^(?==[a-zA-Z]+)",end:"^(=cut\\b.*$)",endCaptures:{"1":{patterns:[{include:"#pod"}]}},name:"comment.block.documentation.perl",patterns:[{include:"#pod"}]},{include:"#variable"},{applyEndPatternLast:1,begin:"\\b(?=qr\\s*[^\\s\\w])",comment:"string.regexp.compile.perl",end:"((([egimosxradlupcn]*)))(?=(\\s+\\S|\\s*[;\\,\\#\\{\\}\\)]|\\s*$))",endCaptures:{"1":{name:"string.regexp.compile.perl"},"2":{name:"punctuation.definition.string.perl"},"3":{name:"keyword.control.regexp-option.perl"}},patterns:[{begin:"(qr)\\s*\\{",captures:{"0":{name:"punctuation.definition.string.perl"},"1":{name:"support.function.perl"}},end:"\\}",name:"string.regexp.compile.nested_braces.perl",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_braces_interpolated"}]},{begin:"(qr)\\s*\\[",captures:{"0":{name:"punctuation.definition.string.perl"},"1":{name:"support.function.perl"}},end:"\\]",name:"string.regexp.compile.nested_brackets.perl",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_brackets_interpolated"}]},{begin:"(qr)\\s*<",captures:{"0":{name:"punctuation.definition.string.perl"},"1":{name:"support.function.perl"}},end:">",name:"string.regexp.compile.nested_ltgt.perl",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_ltgt_interpolated"}]},{begin:"(qr)\\s*\\(",captures:{"0":{name:"punctuation.definition.string.perl"},"1":{name:"support.function.perl"}},end:"\\)",name:"string.regexp.compile.nested_parens.perl",patterns:[{comment:"This is to prevent thinks like qr/foo$/ to treat $/ as a variable",match:"\\$(?=[^\\s\\w\\\\'\\{\\[\\(\\<])"},{include:"#escaped_char"},{include:"#variable"},{include:"#nested_parens_interpolated"}]},{begin:"(qr)\\s*'",captures:{"0":{name:"punctuation.definition.string.perl"},"1":{name:"support.function.perl"}},end:"'",name:"string.regexp.compile.single-quote.perl",patterns:[{include:"#escaped_char"}]},{begin:"(qr)\\s*([^\\s\\w'\\{\\[\\(\\<])",captures:{"0":{name:"punctuation.definition.string.perl"},"1":{name:"support.function.perl"}},end:"\\2",name:"string.regexp.compile.simple-delimiter.perl",patterns:[{comment:"This is to prevent thinks like qr/foo$/ to treat $/ as a variable",match:"\\$(?=[^\\s\\w'\\{\\[\\(\\<])",name:"keyword.control.anchor.perl"},{include:"#escaped_char"},{include:"#variable"},{include:"#nested_parens_interpolated"}]}]},{applyEndPatternLast:1,begin:"(?<!\\{|\\+|\\-)\\b(?=m\\s*[^\\sa-zA-Z0-9])",comment:"string.regexp.find-m.perl",end:"((([egimosxradlupcn]*)))(?=(\\s+\\S|\\s*[;\\,\\#\\{\\}\\)]|\\s*$))",endCaptures:{"1":{name:"string.regexp.find-m.perl"},"2":{name:"punctuation.definition.string.perl"},"3":{name:"keyword.control.regexp-option.perl"}},patterns:[{begin:"(m)\\s*\\{",captures:{"0":{name:"punctuation.definition.string.perl"},"1":{name:"support.function.perl"}},end:"\\}",name:"string.regexp.find-m.nested_braces.perl",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_braces_interpolated"}]},{begin:"(m)\\s*\\[",captures:{"0":{name:"punctuation.definition.string.perl"},"1":{name:"support.function.perl"}},end:"\\]",name:"string.regexp.find-m.nested_brackets.perl",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_brackets_interpolated"}]},{begin:"(m)\\s*<",captures:{"0":{name:"punctuation.definition.string.perl"},"1":{name:"support.function.perl"}},end:">",name:"string.regexp.find-m.nested_ltgt.perl",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_ltgt_interpolated"}]},{begin:"(m)\\s*\\(",captures:{"0":{name:"punctuation.definition.string.perl"},"1":{name:"support.function.perl"}},end:"\\)",name:"string.regexp.find-m.nested_parens.perl",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_parens_interpolated"}]},{begin:"(m)\\s*'",captures:{"0":{name:"punctuation.definition.string.perl"},"1":{name:"support.function.perl"}},end:"'",name:"string.regexp.find-m.single-quote.perl",patterns:[{include:"#escaped_char"}]},{begin:"\\G(?<!\\{|\\+|\\-)(m)(?!_)\\s*([^\\sa-zA-Z0-9'\\{\\[\\(\\<])",captures:{"0":{name:"punctuation.definition.string.perl"},"1":{name:"support.function.perl"}},end:"\\2",name:"string.regexp.find-m.simple-delimiter.perl",patterns:[{comment:"This is to prevent thinks like qr/foo$/ to treat $/ as a variable",match:"\\$(?=[^\\sa-zA-Z0-9'\\{\\[\\(\\<])",name:"keyword.control.anchor.perl"},{include:"#escaped_char"},{include:"#variable"},{begin:"\\[",beginCaptures:{"1":{name:"punctuation.definition.character-class.begin.perl"}},end:"\\]",endCaptures:{"1":{name:"punctuation.definition.character-class.end.perl"}},name:"constant.other.character-class.set.perl",patterns:[{comment:"This is to prevent thinks like qr/foo$/ to treat $/ as a variable",match:"\\$(?=[^\\s\\w'\\{\\[\\(\\<])",name:"keyword.control.anchor.perl"},{include:"#escaped_char"}]},{include:"#nested_parens_interpolated"}]}]},{applyEndPatternLast:1,begin:"\\b(?=(?<!\\&)(s)(\\s+\\S|\\s*[;\\,\\{\\}\\(\\)\\[<]|$))",comment:"string.regexp.replace.perl",end:"((([egimosxradlupcn]*)))(?=(\\s+\\S|\\s*[;\\,\\{\\}\\)\\]>]|\\s*$))",endCaptures:{"1":{name:"string.regexp.replace.perl"},"2":{name:"punctuation.definition.string.perl"},"3":{name:"keyword.control.regexp-option.perl"}},patterns:[{begin:"(s)\\s*\\{",captures:{"0":{name:"punctuation.definition.string.perl"},"1":{name:"support.function.perl"}},end:"\\}",name:"string.regexp.nested_braces.perl",patterns:[{include:"#escaped_char"},{include:"#nested_braces"}]},{begin:"(s)\\s*\\[",captures:{"0":{name:"punctuation.definition.string.perl"},"1":{name:"support.function.perl"}},end:"\\]",name:"string.regexp.nested_brackets.perl",patterns:[{include:"#escaped_char"},{include:"#nested_brackets"}]},{begin:"(s)\\s*<",captures:{"0":{name:"punctuation.definition.string.perl"},"1":{name:"support.function.perl"}},end:">",name:"string.regexp.nested_ltgt.perl",patterns:[{include:"#escaped_char"},{include:"#nested_ltgt"}]},{begin:"(s)\\s*\\(",captures:{"0":{name:"punctuation.definition.string.perl"},"1":{name:"support.function.perl"}},end:"\\)",name:"string.regexp.nested_parens.perl",patterns:[{include:"#escaped_char"},{include:"#nested_parens"}]},{begin:"\\{",captures:{"0":{name:"punctuation.definition.string.perl"}},end:"\\}",name:"string.regexp.format.nested_braces.perl",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_braces_interpolated"}]},{begin:"\\[",captures:{"0":{name:"punctuation.definition.string.perl"}},end:"\\]",name:"string.regexp.format.nested_brackets.perl",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_brackets_interpolated"}]},{begin:"<",captures:{"0":{name:"punctuation.definition.string.perl"}},end:">",name:"string.regexp.format.nested_ltgt.perl",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_ltgt_interpolated"}]},{begin:"\\(",captures:{"0":{name:"punctuation.definition.string.perl"}},end:"\\)",name:"string.regexp.format.nested_parens.perl",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_parens_interpolated"}]},{begin:"'",captures:{"0":{name:"punctuation.definition.string.perl"}},end:"'",name:"string.regexp.format.single_quote.perl",patterns:[{match:"\\\\['\\\\]",name:"constant.character.escape.perl"}]},{begin:"([^\\s\\w\\[({<;])",captures:{"0":{name:"punctuation.definition.string.perl"}},end:"\\1",name:"string.regexp.format.simple_delimiter.perl",patterns:[{include:"#escaped_char"},{include:"#variable"}]},{match:"\\s+"}]},{begin:"\\b(?=s([^\\sa-zA-Z0-9\\[({<]).*\\1([egimosxradlupcn]*)([\\}\\)\\;\\,]|\\s+))",comment:"string.regexp.replaceXXX",end:"((([egimosxradlupcn]*)))(?=([\\}\\)\\;\\,]|\\s+|\\s*$))",endCaptures:{"1":{name:"string.regexp.replace.perl"},"2":{name:"punctuation.definition.string.perl"},"3":{name:"keyword.control.regexp-option.perl"}},patterns:[{begin:"(s\\s*)([^\\sa-zA-Z0-9\\[({<])",captures:{"0":{name:"punctuation.definition.string.perl"},"1":{name:"support.function.perl"}},end:"(?=\\2)",name:"string.regexp.replaceXXX.simple_delimiter.perl",patterns:[{include:"#escaped_char"}]},{begin:"'",captures:{"0":{name:"punctuation.definition.string.perl"}},end:"'",name:"string.regexp.replaceXXX.format.single_quote.perl",patterns:[{match:"\\\\['\\\\]",name:"constant.character.escape.perl.perl"}]},{begin:"([^\\sa-zA-Z0-9\\[({<])",captures:{"0":{name:"punctuation.definition.string.perl"}},end:"\\1",name:"string.regexp.replaceXXX.format.simple_delimiter.perl",patterns:[{include:"#escaped_char"},{include:"#variable"}]}]},{begin:"\\b(?=(?<!\\\\)s\\s*([^\\s\\w\\[({<>]))",comment:"string.regexp.replace.extended",end:"((([egimosradlupc]*x[egimosradlupc]*)))\\b",endCaptures:{"1":{name:"string.regexp.replace.perl"},"2":{name:"punctuation.definition.string.perl"},"3":{name:"keyword.control.regexp-option.perl"}},patterns:[{begin:"(s)\\s*(.)",captures:{"0":{name:"punctuation.definition.string.perl"},"1":{name:"support.function.perl"}},end:"(?=\\2)",name:"string.regexp.replace.extended.simple_delimiter.perl",patterns:[{include:"#escaped_char"}]},{begin:"'",captures:{"0":{name:"punctuation.definition.string.perl"}},end:"'(?=[egimosradlupc]*x[egimosradlupc]*)\\b",name:"string.regexp.replace.extended.simple_delimiter.perl",patterns:[{include:"#escaped_char"}]},{begin:"(.)",captures:{"0":{name:"punctuation.definition.string.perl"}},end:"\\1(?=[egimosradlupc]*x[egimosradlupc]*)\\b",name:"string.regexp.replace.extended.simple_delimiter.perl",patterns:[{include:"#escaped_char"},{include:"#variable"}]}]},{begin:"(?<=\\(|\\{|~|&|\\||if|unless|^)\\s*((\\/))",beginCaptures:{"1":{name:"string.regexp.find.perl"},"2":{name:"punctuation.definition.string.perl"}},contentName:"string.regexp.find.perl",end:"((\\1([egimosxradlupcn]*)))(?=(\\s+\\S|\\s*[;\\,\\#\\{\\}\\)]|\\s*$))",endCaptures:{"1":{name:"string.regexp.find.perl"},"2":{name:"punctuation.definition.string.perl"},"3":{name:"keyword.control.regexp-option.perl"}},patterns:[{comment:"This is to prevent thinks like /foo$/ to treat $/ as a variable",match:"\\$(?=\\/)",name:"keyword.control.anchor.perl"},{include:"#escaped_char"},{include:"#variable"}]},{captures:{"1":{name:"constant.other.key.perl"}},match:"\\b(\\w+)\\s*(?==>)"},{match:"(?<={)\\s*\\w+\\s*(?=})",name:"constant.other.bareword.perl"},{captures:{"1":{name:"keyword.control.perl"},"2":{name:"entity.name.type.class.perl"}},match:"^\\s*(package)\\s+([^\\s;]+)",name:"meta.class.perl"},{captures:{"1":{name:"storage.type.sub.perl"},"2":{name:"entity.name.function.perl"},"3":{name:"storage.type.method.perl"}},match:"\\b(sub)(?:\\s+([-a-zA-Z0-9_]+))?\\s*(?:\\([\\$\\@\\*;]*\\))?[^\\w\\{]",name:"meta.function.perl"},{captures:{"1":{name:"entity.name.function.perl"},"2":{name:"punctuation.definition.parameters.perl"},"3":{name:"variable.parameter.function.perl"}},match:"^\\s*(BEGIN|UNITCHECK|CHECK|INIT|END|DESTROY)\\b",name:"meta.function.perl"},{begin:"^(?=(\\t| {4}))",end:"(?=[^\\t\\s])",name:"meta.leading-tabs",patterns:[{captures:{"1":{name:"meta.odd-tab"},"2":{name:"meta.even-tab"}},match:"(\\t| {4})(\\t| {4})?"}]},{captures:{"1":{name:"support.function.perl"},"2":{name:"punctuation.definition.string.perl"},"5":{name:"punctuation.definition.string.perl"},"8":{name:"punctuation.definition.string.perl"}},match:"\\b(tr|y)\\s*([^A-Za-z0-9\\s])(.*?)(?<!\\\\)(\\\\{2})*(\\2)(.*?)(?<!\\\\)(\\\\{2})*(\\2)",name:"string.regexp.replace.perl"},{match:"\\b(__FILE__|__LINE__|__PACKAGE__|__SUB__)\\b",name:"constant.language.perl"},{begin:"\\b(__DATA__|__END__)\\n?",beginCaptures:{"1":{name:"constant.language.perl"}},contentName:"comment.block.documentation.perl",end:"\\z",patterns:[{include:"#pod"}]},{match:"(?<!->)\\b(continue|default|die|do|else|elsif|exit|for|foreach|given|goto|if|last|next|redo|return|select|unless|until|wait|when|while|switch|case|require|use|eval)\\b",name:"keyword.control.perl"},{match:"\\b(my|our|local)\\b",name:"storage.modifier.perl"},{match:"(?<!\\w)\\-[rwxoRWXOezsfdlpSbctugkTBMAC]\\b",name:"keyword.operator.filetest.perl"},{match:"\\b(and|or|xor|as|not)\\b",name:"keyword.operator.logical.perl"},{match:"(<=>|=>|->)",name:"keyword.operator.comparison.perl"},{include:"#heredoc"},{begin:"\\bqq\\s*([^\\(\\{\\[\\<\\w\\s])",beginCaptures:{"0":{name:"punctuation.definition.string.begin.perl"}},end:"\\1",endCaptures:{"0":{name:"punctuation.definition.string.end.perl"}},name:"string.quoted.other.qq.perl",patterns:[{include:"#escaped_char"},{include:"#variable"}]},{begin:"\\bqx\\s*([^'\\(\\{\\[\\<\\w\\s])",beginCaptures:{"0":{name:"punctuation.definition.string.begin.perl"}},end:"\\1",endCaptures:{"0":{name:"punctuation.definition.string.end.perl"}},name:"string.interpolated.qx.perl",patterns:[{include:"#escaped_char"},{include:"#variable"}]},{begin:"\\bqx\\s*'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.perl"}},end:"'",endCaptures:{"0":{name:"punctuation.definition.string.end.perl"}},name:"string.interpolated.qx.single-quote.perl",patterns:[{include:"#escaped_char"}]},{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.perl"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.perl"}},name:"string.quoted.double.perl",patterns:[{include:"#escaped_char"},{include:"#variable"}]},{begin:"(?<!->)\\bqw?\\s*([^\\(\\{\\[\\<\\w\\s])",beginCaptures:{"0":{name:"punctuation.definition.string.begin.perl"}},end:"\\1",endCaptures:{"0":{name:"punctuation.definition.string.end.perl"}},name:"string.quoted.other.q.perl"},{begin:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.perl"}},end:"'",endCaptures:{"0":{name:"punctuation.definition.string.end.perl"}},name:"string.quoted.single.perl",patterns:[{match:"\\\\['\\\\]",name:"constant.character.escape.perl"}]},{begin:"`",beginCaptures:{"0":{name:"punctuation.definition.string.begin.perl"}},end:"`",endCaptures:{"0":{name:"punctuation.definition.string.end.perl"}},name:"string.interpolated.perl",patterns:[{include:"#escaped_char"},{include:"#variable"}]},{begin:"(?<!->)\\bqq\\s*\\(",beginCaptures:{"0":{name:"punctuation.definition.string.begin.perl"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.string.end.perl"}},name:"string.quoted.other.qq-paren.perl",patterns:[{include:"#escaped_char"},{include:"#nested_parens_interpolated"},{include:"#variable"}]},{begin:"\\bqq\\s*\\{",beginCaptures:{"0":{name:"punctuation.definition.string.begin.perl"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.string.end.perl"}},name:"string.quoted.other.qq-brace.perl",patterns:[{include:"#escaped_char"},{include:"#nested_braces_interpolated"},{include:"#variable"}]},{begin:"\\bqq\\s*\\[",beginCaptures:{"0":{name:"punctuation.definition.string.begin.perl"}},end:"\\]",endCaptures:{"0":{name:"punctuation.definition.string.end.perl"}},name:"string.quoted.other.qq-bracket.perl",patterns:[{include:"#escaped_char"},{include:"#nested_brackets_interpolated"},{include:"#variable"}]},{begin:"\\bqq\\s*\\<",beginCaptures:{"0":{name:"punctuation.definition.string.begin.perl"}},end:"\\>",endCaptures:{"0":{name:"punctuation.definition.string.end.perl"}},name:"string.quoted.other.qq-ltgt.perl",patterns:[{include:"#escaped_char"},{include:"#nested_ltgt_interpolated"},{include:"#variable"}]},{begin:"(?<!->)\\bqx\\s*\\(",beginCaptures:{"0":{name:"punctuation.definition.string.begin.perl"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.string.end.perl"}},name:"string.interpolated.qx-paren.perl",patterns:[{include:"#escaped_char"},{include:"#nested_parens_interpolated"},{include:"#variable"}]},{begin:"\\bqx\\s*\\{",beginCaptures:{"0":{name:"punctuation.definition.string.begin.perl"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.string.end.perl"}},name:"string.interpolated.qx-brace.perl",patterns:[{include:"#escaped_char"},{include:"#nested_braces_interpolated"},{include:"#variable"}]},{begin:"\\bqx\\s*\\[",beginCaptures:{"0":{name:"punctuation.definition.string.begin.perl"}},end:"\\]",endCaptures:{"0":{name:"punctuation.definition.string.end.perl"}},name:"string.interpolated.qx-bracket.perl",patterns:[{include:"#escaped_char"},{include:"#nested_brackets_interpolated"},{include:"#variable"}]},{begin:"\\bqx\\s*\\<",beginCaptures:{"0":{name:"punctuation.definition.string.begin.perl"}},end:"\\>",endCaptures:{"0":{name:"punctuation.definition.string.end.perl"}},name:"string.interpolated.qx-ltgt.perl",patterns:[{include:"#escaped_char"},{include:"#nested_ltgt_interpolated"},{include:"#variable"}]},{begin:"(?<!->)\\bqw?\\s*\\(",beginCaptures:{"0":{name:"punctuation.definition.string.begin.perl"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.string.end.perl"}},name:"string.quoted.other.q-paren.perl",patterns:[{include:"#nested_parens"}]},{begin:"\\bqw?\\s*\\{",beginCaptures:{"0":{name:"punctuation.definition.string.begin.perl"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.string.end.perl"}},name:"string.quoted.other.q-brace.perl",patterns:[{include:"#nested_braces"}]},{begin:"\\bqw?\\s*\\[",beginCaptures:{"0":{name:"punctuation.definition.string.begin.perl"}},end:"\\]",endCaptures:{"0":{name:"punctuation.definition.string.end.perl"}},name:"string.quoted.other.q-bracket.perl",patterns:[{include:"#nested_brackets"}]},{begin:"\\bqw?\\s*\\<",beginCaptures:{"0":{name:"punctuation.definition.string.begin.perl"}},end:"\\>",endCaptures:{"0":{name:"punctuation.definition.string.end.perl"}},name:"string.quoted.other.q-ltgt.perl",patterns:[{include:"#nested_ltgt"}]},{begin:"^__\\w+__",beginCaptures:{"0":{name:"punctuation.definition.string.begin.perl"}},end:"$",endCaptures:{"0":{name:"punctuation.definition.string.end.perl"}},name:"string.unquoted.program-block.perl"},{begin:"\\b(format)\\s+(\\w+)\\s*=",beginCaptures:{"1":{name:"support.function.perl"},"2":{name:"entity.name.function.format.perl"}},end:"^\\.\\s*$",name:"meta.format.perl",patterns:[{include:"#line_comment"},{include:"#variable"}]},{captures:{"1":{name:"support.function.perl"},"2":{name:"entity.name.function.perl"}},match:"\\b(x)\\s*(\\d+)\\b"},{match:"\\b(ARGV|DATA|ENV|SIG|STDERR|STDIN|STDOUT|atan2|bind|binmode|bless|caller|chdir|chmod|chomp|chop|chown|chr|chroot|close|closedir|cmp|connect|cos|crypt|dbmclose|dbmopen|defined|delete|dump|each|endgrent|endhostent|endnetent|endprotoent|endpwent|endservent|eof|eq|eval|exec|exists|exp|fcntl|fileno|flock|fork|formline|ge|getc|getgrent|getgrgid|getgrnam|gethostbyaddr|gethostbyname|gethostent|getlogin|getnetbyaddr|getnetbyname|getnetent|getpeername|getpgrp|getppid|getpriority|getprotobyname|getprotobynumber|getprotoent|getpwent|getpwnam|getpwuid|getservbyname|getservbyport|getservent|getsockname|getsockopt|glob|gmtime|grep|gt|hex|import|index|int|ioctl|join|keys|kill|lc|lcfirst|le|length|link|listen|local|localtime|log|lstat|lt|m|map|mkdir|msgctl|msgget|msgrcv|msgsnd|ne|no|oct|open|opendir|ord|pack|pipe|pop|pos|print|printf|push|quotemeta|rand|read|readdir|readlink|recv|ref|rename|reset|reverse|rewinddir|rindex|rmdir|s|say|scalar|seek|seekdir|semctl|semget|semop|send|setgrent|sethostent|setnetent|setpgrp|setpriority|setprotoent|setpwent|setservent|setsockopt|shift|shmctl|shmget|shmread|shmwrite|shutdown|sin|sleep|socket|socketpair|sort|splice|split|sprintf|sqrt|srand|stat|study|substr|symlink|syscall|sysopen|sysread|system|syswrite|tell|telldir|tie|tied|time|times|tr|truncate|uc|ucfirst|umask|undef|unlink|unpack|unshift|untie|utime|values|vec|waitpid|wantarray|warn|write|y)\\b",name:"support.function.perl"},{captures:{"1":{name:"punctuation.section.scope.begin.perl"},"2":{name:"punctuation.section.scope.end.perl"}},comment:"Match empty brackets for ↩ snippet",match:"(\\{)(\\})"},{captures:{"1":{name:"punctuation.section.scope.begin.perl"},"2":{name:"punctuation.section.scope.end.perl"}},comment:"Match empty parenthesis for ↩ snippet",match:"(\\()(\\))"}],repository:{escaped_char:{patterns:[{match:"\\\\\\d+",name:"constant.character.escape.perl"},{match:"\\\\c[^\\s\\\\]",name:"constant.character.escape.perl"},{match:"\\\\g(?:\\{(?:\\w*|-\\d+)\\}|\\d+)",name:"constant.character.escape.perl"},{match:"\\\\k(?:\\{\\w*\\}|<\\w*>|'\\w*')",name:"constant.character.escape.perl"},{match:"\\\\N\\{[^\\}]*\\}",name:"constant.character.escape.perl"},{match:"\\\\o\\{\\d*\\}",name:"constant.character.escape.perl"},{match:"\\\\(?:p|P)(?:\\{\\w*\\}|P)",name:"constant.character.escape.perl"},{match:"\\\\x(?:[0-9a-zA-Z]{2}|\\{\\w*\\})?",name:"constant.character.escape.perl"},{match:"\\\\.",name:"constant.character.escape.perl"}]},heredoc:{patterns:[{begin:"((((<<(~)?) *')(HTML)(')))(.*)\\n?",beginCaptures:{"1":{name:"string.unquoted.heredoc.raw.perl"},"2":{name:"punctuation.definition.string.begin.perl"},"3":{name:"punctuation.definition.delimiter.begin.perl"},"7":{name:"punctuation.definition.delimiter.end.perl"},"8":{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.raw.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{"2":{name:"string.unquoted.heredoc.raw.perl"},"3":{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.html",patterns:[{begin:"^",end:"\\n",name:"text.html.basic",patterns:[{include:"text.html.basic"}]}]},{begin:"((((<<(~)?) *')(XML)(')))(.*)\\n?",beginCaptures:{"1":{name:"string.unquoted.heredoc.raw.perl"},"2":{name:"punctuation.definition.string.begin.perl"},"3":{name:"punctuation.definition.delimiter.begin.perl"},"7":{name:"punctuation.definition.delimiter.end.perl"},"8":{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.raw.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{"2":{name:"string.unquoted.heredoc.raw.perl"},"3":{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.xml",patterns:[{begin:"^",end:"\\n",name:"text.xml",patterns:[{include:"text.xml"}]}]},{begin:"((((<<(~)?) *')(CSS)(')))(.*)\\n?",beginCaptures:{"1":{name:"string.unquoted.heredoc.raw.perl"},"2":{name:"punctuation.definition.string.begin.perl"},"3":{name:"punctuation.definition.delimiter.begin.perl"},"7":{name:"punctuation.definition.delimiter.end.perl"},"8":{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.raw.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{"2":{name:"string.unquoted.heredoc.raw.perl"},"3":{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.css",patterns:[{begin:"^",end:"\\n",name:"source.css",patterns:[{include:"source.css"}]}]},{begin:"((((<<(~)?) *')(JAVASCRIPT)(')))(.*)\\n?",beginCaptures:{"1":{name:"string.unquoted.heredoc.raw.perl"},"2":{name:"punctuation.definition.string.begin.perl"},"3":{name:"punctuation.definition.delimiter.begin.perl"},"7":{name:"punctuation.definition.delimiter.end.perl"},"8":{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.raw.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{"2":{name:"string.unquoted.heredoc.raw.perl"},"3":{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.js",patterns:[{begin:"^",end:"\\n",name:"source.js",patterns:[{include:"source.js"}]}]},{begin:"((((<<(~)?) *')(SQL)(')))(.*)\\n?",beginCaptures:{"1":{name:"string.unquoted.heredoc.raw.perl"},"2":{name:"punctuation.definition.string.begin.perl"},"3":{name:"punctuation.definition.delimiter.begin.perl"},"7":{name:"punctuation.definition.delimiter.end.perl"},"8":{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.raw.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{"2":{name:"string.unquoted.heredoc.raw.perl"},"3":{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.sql",patterns:[{begin:"^",end:"\\n",name:"source.sql",patterns:[{include:"source.sql"}]}]},{begin:"((((<<(~)?) *')(POSTSCRIPT)(')))(.*)\\n?",beginCaptures:{"1":{name:"string.unquoted.heredoc.raw.perl"},"2":{name:"punctuation.definition.string.begin.perl"},"3":{name:"punctuation.definition.delimiter.begin.perl"},"7":{name:"punctuation.definition.delimiter.end.perl"},"8":{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.raw.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{"2":{name:"string.unquoted.heredoc.raw.perl"},"3":{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.postscript",patterns:[{begin:"^",end:"\\n",name:"source.postscript",patterns:[{include:"source.postscript"}]}]},{begin:"((((<<(~)?) *')([^']*)(')))(.*)\\n?",beginCaptures:{"1":{name:"string.unquoted.heredoc.raw.perl"},"2":{name:"punctuation.definition.string.begin.perl"},"3":{name:"punctuation.definition.delimiter.begin.perl"},"7":{name:"punctuation.definition.delimiter.end.perl"},"8":{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.raw.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{"2":{name:"string.unquoted.heredoc.raw.perl"},"3":{name:"punctuation.definition.string.end.perl"}}},{begin:"((((<<(~)?) *\\\\)((?![=\\d\\$\\( ])[^;,'\"`\\s\\)]*)()))(.*)\\n?",beginCaptures:{"1":{name:"string.unquoted.heredoc.raw.perl"},"2":{name:"punctuation.definition.string.begin.perl"},"3":{name:"punctuation.definition.delimiter.begin.perl"},"7":{name:"punctuation.definition.delimiter.end.perl"},"8":{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.raw.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{"2":{name:"string.unquoted.heredoc.raw.perl"},"3":{name:"punctuation.definition.string.end.perl"}}},{begin:"((((<<(~)?) *\")(HTML)(\")))(.*)\\n?",beginCaptures:{"1":{name:"string.unquoted.heredoc.interpolated.perl"},"2":{name:"punctuation.definition.string.begin.perl"},"3":{name:"punctuation.definition.delimiter.begin.perl"},"7":{name:"punctuation.definition.delimiter.end.perl"},"8":{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.interpolated.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{"2":{name:"string.unquoted.heredoc.interpolated.perl"},"3":{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.html",patterns:[{begin:"^",end:"\\n",name:"text.html.basic",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"text.html.basic"}]}]},{begin:"((((<<(~)?) *\")(XML)(\")))(.*)\\n?",beginCaptures:{"1":{name:"string.unquoted.heredoc.interpolated.perl"},"2":{name:"punctuation.definition.string.begin.perl"},"3":{name:"punctuation.definition.delimiter.begin.perl"},"7":{name:"punctuation.definition.delimiter.end.perl"},"8":{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.interpolated.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{"2":{name:"string.unquoted.heredoc.interpolated.perl"},"3":{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.xml",patterns:[{begin:"^",end:"\\n",name:"text.xml",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"text.xml"}]}]},{begin:"((((<<(~)?) *\")(CSS)(\")))(.*)\\n?",beginCaptures:{"1":{name:"string.unquoted.heredoc.interpolated.perl"},"2":{name:"punctuation.definition.string.begin.perl"},"3":{name:"punctuation.definition.delimiter.begin.perl"},"7":{name:"punctuation.definition.delimiter.end.perl"},"8":{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.interpolated.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{"2":{name:"string.unquoted.heredoc.interpolated.perl"},"3":{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.css",patterns:[{begin:"^",end:"\\n",name:"source.css",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"source.css"}]}]},{begin:"((((<<(~)?) *\")(JAVASCRIPT)(\")))(.*)\\n?",beginCaptures:{"1":{name:"string.unquoted.heredoc.interpolated.perl"},"2":{name:"punctuation.definition.string.begin.perl"},"3":{name:"punctuation.definition.delimiter.begin.perl"},"7":{name:"punctuation.definition.delimiter.end.perl"},"8":{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.interpolated.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{"2":{name:"string.unquoted.heredoc.interpolated.perl"},"3":{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.js",patterns:[{begin:"^",end:"\\n",name:"source.js",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"source.js"}]}]},{begin:"((((<<(~)?) *\")(SQL)(\")))(.*)\\n?",beginCaptures:{"1":{name:"string.unquoted.heredoc.interpolated.perl"},"2":{name:"punctuation.definition.string.begin.perl"},"3":{name:"punctuation.definition.delimiter.begin.perl"},"7":{name:"punctuation.definition.delimiter.end.perl"},"8":{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.interpolated.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{"2":{name:"string.unquoted.heredoc.interpolated.perl"},"3":{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.sql",patterns:[{begin:"^",end:"\\n",name:"source.sql",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"source.sql"}]}]},{begin:"((((<<(~)?) *\")(POSTSCRIPT)(\")))(.*)\\n?",beginCaptures:{"1":{name:"string.unquoted.heredoc.interpolated.perl"},"2":{name:"punctuation.definition.string.begin.perl"},"3":{name:"punctuation.definition.delimiter.begin.perl"},"7":{name:"punctuation.definition.delimiter.end.perl"},"8":{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.interpolated.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{"2":{name:"string.unquoted.heredoc.interpolated.perl"},"3":{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.postscript",patterns:[{begin:"^",end:"\\n",name:"source.postscript",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"source.postscript"}]}]},{begin:"((((<<(~)?) *\")([^\"]*)(\")))(.*)\\n?",beginCaptures:{"1":{name:"string.unquoted.heredoc.interpolated.perl"},"2":{name:"punctuation.definition.string.begin.perl"},"3":{name:"punctuation.definition.delimiter.begin.perl"},"7":{name:"punctuation.definition.delimiter.end.perl"},"8":{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.interpolated.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{"2":{name:"string.unquoted.heredoc.interpolated.perl"},"3":{name:"punctuation.definition.string.end.perl"}},patterns:[{include:"#escaped_char"},{include:"#variable"}]},{begin:"((((<<(~)?) *)(HTML)()))(.*)\\n?",beginCaptures:{"1":{name:"string.unquoted.heredoc.interpolated.perl"},"2":{name:"punctuation.definition.string.begin.perl"},"3":{name:"punctuation.definition.delimiter.begin.perl"},"7":{name:"punctuation.definition.delimiter.end.perl"},"8":{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.interpolated.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{"2":{name:"string.unquoted.heredoc.interpolated.perl"},"3":{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.html",patterns:[{begin:"^",end:"\\n",name:"text.html.basic",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"text.html.basic"}]}]},{begin:"((((<<(~)?) *)(XML)()))(.*)\\n?",beginCaptures:{"1":{name:"string.unquoted.heredoc.interpolated.perl"},"2":{name:"punctuation.definition.string.begin.perl"},"3":{name:"punctuation.definition.delimiter.begin.perl"},"7":{name:"punctuation.definition.delimiter.end.perl"},"8":{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.interpolated.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{"2":{name:"string.unquoted.heredoc.interpolated.perl"},"3":{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.xml",patterns:[{begin:"^",end:"\\n",name:"text.xml",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"text.xml"}]}]},{begin:"((((<<(~)?) *)(CSS)()))(.*)\\n?",beginCaptures:{"1":{name:"string.unquoted.heredoc.interpolated.perl"},"2":{name:"punctuation.definition.string.begin.perl"},"3":{name:"punctuation.definition.delimiter.begin.perl"},"7":{name:"punctuation.definition.delimiter.end.perl"},"8":{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.interpolated.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{"2":{name:"string.unquoted.heredoc.interpolated.perl"},"3":{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.css",patterns:[{begin:"^",end:"\\n",name:"source.css",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"source.css"}]}]},{begin:"((((<<(~)?) *)(JAVASCRIPT)()))(.*)\\n?",beginCaptures:{"1":{name:"string.unquoted.heredoc.interpolated.perl"},"2":{name:"punctuation.definition.string.begin.perl"},"3":{name:"punctuation.definition.delimiter.begin.perl"},"7":{name:"punctuation.definition.delimiter.end.perl"},"8":{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.interpolated.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{"2":{name:"string.unquoted.heredoc.interpolated.perl"},"3":{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.js",patterns:[{begin:"^",end:"\\n",name:"source.js",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"source.js"}]}]},{begin:"((((<<(~)?) *)(SQL)()))(.*)\\n?",beginCaptures:{"1":{name:"string.unquoted.heredoc.interpolated.perl"},"2":{name:"punctuation.definition.string.begin.perl"},"3":{name:"punctuation.definition.delimiter.begin.perl"},"7":{name:"punctuation.definition.delimiter.end.perl"},"8":{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.interpolated.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{"2":{name:"string.unquoted.heredoc.interpolated.perl"},"3":{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.sql",patterns:[{begin:"^",end:"\\n",name:"source.sql",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"source.sql"}]}]},{begin:"((((<<(~)?) *)(POSTSCRIPT)()))(.*)\\n?",beginCaptures:{"1":{name:"string.unquoted.heredoc.interpolated.perl"},"2":{name:"punctuation.definition.string.begin.perl"},"3":{name:"punctuation.definition.delimiter.begin.perl"},"7":{name:"punctuation.definition.delimiter.end.perl"},"8":{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.interpolated.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{"2":{name:"string.unquoted.heredoc.interpolated.perl"},"3":{name:"punctuation.definition.string.end.perl"}},name:"meta.embedded.block.postscript",patterns:[{begin:"^",end:"\\n",name:"source.postscript",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"source.postscript"}]}]},{begin:"((((<<(~)?) *)((?![=\\d\\$\\( ])[^;,'\"`\\s\\)]*)()))(.*)\\n?",beginCaptures:{"1":{name:"string.unquoted.heredoc.interpolated.perl"},"2":{name:"punctuation.definition.string.begin.perl"},"3":{name:"punctuation.definition.delimiter.begin.perl"},"7":{name:"punctuation.definition.delimiter.end.perl"},"8":{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.interpolated.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{"2":{name:"string.unquoted.heredoc.interpolated.perl"},"3":{name:"punctuation.definition.string.end.perl"}},patterns:[{include:"#escaped_char"},{include:"#variable"}]},{begin:"((((<<(~)?) *`)([^`]*)(`)))(.*)\\n?",beginCaptures:{"1":{name:"string.unquoted.heredoc.interpolated.perl"},"2":{name:"punctuation.definition.string.begin.perl"},"3":{name:"punctuation.definition.delimiter.begin.perl"},"7":{name:"punctuation.definition.delimiter.end.perl"},"8":{patterns:[{include:"$self"}]}},contentName:"string.unquoted.heredoc.shell.perl",end:"^((?!\\5)\\s+)?((\\6))$",endCaptures:{"2":{name:"string.unquoted.heredoc.interpolated.perl"},"3":{name:"punctuation.definition.string.end.perl"}},patterns:[{include:"#escaped_char"},{include:"#variable"}]}]},line_comment:{patterns:[{begin:"(^[ \\t]+)?(?=#)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.perl"}},end:"(?!\\G)",patterns:[{begin:"#",beginCaptures:{"0":{name:"punctuation.definition.comment.perl"}},end:"\\n",name:"comment.line.number-sign.perl"}]}]},nested_braces:{begin:"\\{",captures:{"1":{name:"punctuation.section.scope.perl"}},end:"\\}",patterns:[{include:"#escaped_char"},{include:"#nested_braces"}]},nested_braces_interpolated:{begin:"\\{",captures:{"1":{name:"punctuation.section.scope.perl"}},end:"\\}",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_braces_interpolated"}]},nested_brackets:{begin:"\\[",captures:{"1":{name:"punctuation.section.scope.perl"}},end:"\\]",patterns:[{include:"#escaped_char"},{include:"#nested_brackets"}]},nested_brackets_interpolated:{begin:"\\[",captures:{"1":{name:"punctuation.section.scope.perl"}},end:"\\]",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_brackets_interpolated"}]},nested_ltgt:{begin:"<",captures:{"1":{name:"punctuation.section.scope.perl"}},end:">",patterns:[{include:"#nested_ltgt"}]},nested_ltgt_interpolated:{begin:"<",captures:{"1":{name:"punctuation.section.scope.perl"}},end:">",patterns:[{include:"#variable"},{include:"#nested_ltgt_interpolated"}]},nested_parens:{begin:"\\(",captures:{"1":{name:"punctuation.section.scope.perl"}},end:"\\)",patterns:[{include:"#escaped_char"},{include:"#nested_parens"}]},nested_parens_interpolated:{begin:"\\(",captures:{"1":{name:"punctuation.section.scope.perl"}},end:"\\)",patterns:[{comment:"This is to prevent thinks like qr/foo$/ to treat $/ as a variable",match:"\\$(?=[^\\s\\w'\\{\\[\\(\\<])",name:"keyword.control.anchor.perl"},{include:"#escaped_char"},{include:"#variable"},{include:"#nested_parens_interpolated"}]},pod:{patterns:[{match:"^=(pod|back|cut)\\b",name:"storage.type.class.pod.perl"},{begin:"^(=begin)\\s+(html)\\s*$",beginCaptures:{"1":{name:"storage.type.class.pod.perl"},"2":{name:"variable.other.pod.perl"}},contentName:"text.embedded.html.basic",end:"^(=end)\\s+(html)|^(?==cut)",endCaptures:{"1":{name:"storage.type.class.pod.perl"},"2":{name:"variable.other.pod.perl"}},name:"meta.embedded.pod.perl",patterns:[{include:"text.html.basic"}]},{captures:{"1":{name:"storage.type.class.pod.perl"},"2":{name:"variable.other.pod.perl",patterns:[{include:"#pod-formatting"}]}},match:"^(=(?:head[1-4]|item|over|encoding|begin|end|for))\\b\\s*(.*)"},{include:"#pod-formatting"}]},"pod-formatting":{patterns:[{captures:{"1":{name:"markup.italic.pod.perl"},"2":{name:"markup.italic.pod.perl"}},match:"I(?:<([^<>]+)>|<+(\\s+(?:(?<!\\s)>|[^>])+\\s+)>+)",name:"entity.name.type.instance.pod.perl"},{captures:{"1":{name:"markup.bold.pod.perl"},"2":{name:"markup.bold.pod.perl"}},match:"B(?:<([^<>]+)>|<+(\\s+(?:(?<!\\s)>|[^>])+\\s+)>+)",name:"entity.name.type.instance.pod.perl"},{captures:{"1":{name:"markup.raw.pod.perl"},"2":{name:"markup.raw.pod.perl"}},match:"C(?:<([^<>]+)>|<+(\\\\s+(?:(?<!\\\\s)>|[^>])+\\\\s+)>+)",name:"entity.name.type.instance.pod.perl"},{captures:{"1":{name:"markup.underline.link.hyperlink.pod.perl"}},match:"L<([^>]+)>",name:"entity.name.type.instance.pod.perl"},{match:"[EFSXZ]<[^>]*>",name:"entity.name.type.instance.pod.perl"}]},variable:{patterns:[{captures:{"1":{name:"punctuation.definition.variable.perl"}},match:"(\\$)&(?![A-Za-z0-9_])",name:"variable.other.regexp.match.perl"},{captures:{"1":{name:"punctuation.definition.variable.perl"}},match:"(\\$)`(?![A-Za-z0-9_])",name:"variable.other.regexp.pre-match.perl"},{captures:{"1":{name:"punctuation.definition.variable.perl"}},match:"(\\$)'(?![A-Za-z0-9_])",name:"variable.other.regexp.post-match.perl"},{captures:{"1":{name:"punctuation.definition.variable.perl"}},match:"(\\$)\\+(?![A-Za-z0-9_])",name:"variable.other.regexp.last-paren-match.perl"},{captures:{"1":{name:"punctuation.definition.variable.perl"}},match:"(\\$)\"(?![A-Za-z0-9_])",name:"variable.other.readwrite.list-separator.perl"},{captures:{"1":{name:"punctuation.definition.variable.perl"}},match:"(\\$)0(?![A-Za-z0-9_])",name:"variable.other.predefined.program-name.perl"},{captures:{"1":{name:"punctuation.definition.variable.perl"}},match:"(\\$)[_ab\\*\\.\\/\\|,\\\\;#%=\\-~^:?!\\$<>\\(\\)\\[\\]@](?![A-Za-z0-9_])",name:"variable.other.predefined.perl"},{captures:{"1":{name:"punctuation.definition.variable.perl"}},match:"(\\$)[0-9]+(?![A-Za-z0-9_])",name:"variable.other.subpattern.perl"},{captures:{"1":{name:"punctuation.definition.variable.perl"}},match:"([\\$\\@\\%](#)?)([a-zA-Zx7f-xff\\$]|::)([a-zA-Z0-9_x7f-xff\\$]|::)*\\b",name:"variable.other.readwrite.global.perl"},{captures:{"1":{name:"punctuation.definition.variable.perl"},"2":{name:"punctuation.definition.variable.perl"}},match:"(\\$\\{)(?:[a-zA-Zx7f-xff\\$]|::)(?:[a-zA-Z0-9_x7f-xff\\$]|::)*(\\})",name:"variable.other.readwrite.global.perl"},{captures:{"1":{name:"punctuation.definition.variable.perl"}},match:"([\\$\\@\\%](#)?)[0-9_]\\b",name:"variable.other.readwrite.global.special.perl"}]}}}; + +export { perl_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/php.tmLanguage-11848870.mjs b/docs/shiki/dist/languages/php.tmLanguage-11848870.mjs new file mode 100644 index 00000000..d3d5e6a3 --- /dev/null +++ b/docs/shiki/dist/languages/php.tmLanguage-11848870.mjs @@ -0,0 +1,3 @@ +var php_tmLanguage = {information_for_contributors:["This file has been converted from https://github.com/KapitanOczywisty/language-php/blob/master/grammars/php.cson","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."],version:"https://github.com/KapitanOczywisty/language-php/commit/5e8f000cb5a20f44f7a7a89d07ad0774031c53f3",scopeName:"source.php",patterns:[{include:"#attribute"},{include:"#comments"},{match:"(?i)(?:^|(?<=<\\?php))\\s*(namespace)\\s+([a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)(?=\\s*;)",name:"meta.namespace.php",captures:{"1":{name:"keyword.other.namespace.php"},"2":{name:"entity.name.type.namespace.php",patterns:[{match:"\\\\",name:"punctuation.separator.inheritance.php"}]}}},{begin:"(?i)(?:^|(?<=<\\?php))\\s*(namespace)\\s+",beginCaptures:{"1":{name:"keyword.other.namespace.php"}},end:"(?<=})|(?=\\?>)",name:"meta.namespace.php",patterns:[{include:"#comments"},{match:"(?i)[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+",name:"entity.name.type.namespace.php",captures:{"0":{patterns:[{match:"\\\\",name:"punctuation.separator.inheritance.php"}]}}},{begin:"{",beginCaptures:{"0":{name:"punctuation.definition.namespace.begin.bracket.curly.php"}},end:"}|(?=\\?>)",endCaptures:{"0":{name:"punctuation.definition.namespace.end.bracket.curly.php"}},patterns:[{include:"$self"}]},{match:"[^\\s]+",name:"invalid.illegal.identifier.php"}]},{match:"\\s+(?=use\\b)"},{begin:"(?i)\\buse\\b",beginCaptures:{"0":{name:"keyword.other.use.php"}},end:"(?<=})|(?=;)|(?=\\?>)",name:"meta.use.php",patterns:[{match:"\\b(const|function)\\b",name:"storage.type.${1:/downcase}.php"},{begin:"{",beginCaptures:{"0":{name:"punctuation.definition.use.begin.bracket.curly.php"}},end:"}",endCaptures:{"0":{name:"punctuation.definition.use.end.bracket.curly.php"}},patterns:[{include:"#scope-resolution"},{match:"(?xi)\n\\b(as)\n\\s+(final|abstract|public|private|protected|static)\n\\s+([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)",captures:{"1":{name:"keyword.other.use-as.php"},"2":{name:"storage.modifier.php"},"3":{name:"entity.other.alias.php"}}},{match:"(?xi)\n\\b(as)\n\\s+([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)",captures:{"1":{name:"keyword.other.use-as.php"},"2":{patterns:[{match:"^(?:final|abstract|public|private|protected|static)$",name:"storage.modifier.php"},{match:".+",name:"entity.other.alias.php"}]}}},{match:"(?i)\\b(insteadof)\\s+([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)",captures:{"1":{name:"keyword.other.use-insteadof.php"},"2":{name:"support.class.php"}}},{match:";",name:"punctuation.terminator.expression.php"},{include:"#use-inner"}]},{include:"#use-inner"}]},{begin:"(?ix)\n\\b(trait)\\s+([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)",beginCaptures:{"1":{name:"storage.type.trait.php"},"2":{name:"entity.name.type.trait.php"}},end:"}|(?=\\?>)",endCaptures:{"0":{name:"punctuation.definition.trait.end.bracket.curly.php"}},name:"meta.trait.php",patterns:[{include:"#comments"},{begin:"{",beginCaptures:{"0":{name:"punctuation.definition.trait.begin.bracket.curly.php"}},end:"(?=}|\\?>)",contentName:"meta.trait.body.php",patterns:[{include:"$self"}]}]},{begin:"(?ix)\n\\b(interface)\\s+([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)",beginCaptures:{"1":{name:"storage.type.interface.php"},"2":{name:"entity.name.type.interface.php"}},end:"}|(?=\\?>)",endCaptures:{"0":{name:"punctuation.definition.interface.end.bracket.curly.php"}},name:"meta.interface.php",patterns:[{include:"#comments"},{include:"#interface-extends"},{begin:"{",beginCaptures:{"0":{name:"punctuation.definition.interface.begin.bracket.curly.php"}},end:"(?=}|\\?>)",contentName:"meta.interface.body.php",patterns:[{include:"#class-constant"},{include:"$self"}]}]},{begin:"(?ix)\n\\b(enum)\\s+([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)\n(?: \\s* (:) \\s* (int | string) \\b )?",beginCaptures:{"1":{name:"storage.type.enum.php"},"2":{name:"entity.name.type.enum.php"},"3":{name:"keyword.operator.return-value.php"},"4":{name:"keyword.other.type.php"}},end:"}|(?=\\?>)",endCaptures:{"0":{name:"punctuation.definition.enum.end.bracket.curly.php"}},name:"meta.enum.php",patterns:[{include:"#comments"},{include:"#class-implements"},{begin:"{",beginCaptures:{"0":{name:"punctuation.definition.enum.begin.bracket.curly.php"}},end:"(?=}|\\?>)",contentName:"meta.enum.body.php",patterns:[{match:"(?i)\\b(case)\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)",captures:{"1":{name:"storage.modifier.php"},"2":{name:"constant.enum.php"}}},{include:"#class-constant"},{include:"$self"}]}]},{begin:"(?ix)\n(?:\n \\b((?:(?:final|abstract|readonly)\\s+)*)(class)\\s+([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)\n |\\b(new)\\b\\s*(\\#\\[.*\\])?\\s*(?:(readonly)\\s+)?\\b(class)\\b # anonymous class\n)",beginCaptures:{"1":{patterns:[{match:"final|abstract",name:"storage.modifier.${0:/downcase}.php"},{match:"readonly",name:"storage.modifier.php"}]},"2":{name:"storage.type.class.php"},"3":{name:"entity.name.type.class.php"},"4":{name:"keyword.other.new.php"},"5":{patterns:[{include:"#attribute"}]},"6":{name:"storage.modifier.php"},"7":{name:"storage.type.class.php"}},end:"}|(?=\\?>)",endCaptures:{"0":{name:"punctuation.definition.class.end.bracket.curly.php"}},name:"meta.class.php",patterns:[{begin:"(?<=class)\\s*(\\()",beginCaptures:{"1":{name:"punctuation.definition.arguments.begin.bracket.round.php"}},end:"\\)|(?=\\?>)",endCaptures:{"0":{name:"punctuation.definition.arguments.end.bracket.round.php"}},name:"meta.function-call.php",patterns:[{include:"#named-arguments"},{include:"$self"}]},{include:"#comments"},{include:"#class-extends"},{include:"#class-implements"},{begin:"{",beginCaptures:{"0":{name:"punctuation.definition.class.begin.bracket.curly.php"}},end:"(?=}|\\?>)",contentName:"meta.class.body.php",patterns:[{include:"#class-constant"},{include:"$self"}]}]},{include:"#match_statement"},{include:"#switch_statement"},{match:"\\s*\\b(yield\\s+from)\\b",captures:{"1":{name:"keyword.control.yield-from.php"}}},{match:"(?x)\n\\b(\n break|case|continue|declare|default|die|do|\n else(if)?|end(declare|for(each)?|if|switch|while)|exit|\n for(each)?|if|return|switch|use|while|yield\n)\\b",captures:{"1":{name:"keyword.control.${1:/downcase}.php"}}},{begin:"(?i)\\b((?:require|include)(?:_once)?)(\\s+|(?=\\())",beginCaptures:{"1":{name:"keyword.control.import.include.php"}},end:"(?=\\s|;|$|\\?>)",name:"meta.include.php",patterns:[{include:"$self"}]},{begin:"\\b(catch)\\s*(\\()",beginCaptures:{"1":{name:"keyword.control.exception.catch.php"},"2":{name:"punctuation.definition.parameters.begin.bracket.round.php"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.parameters.end.bracket.round.php"}},name:"meta.catch.php",patterns:[{match:"(?xi)\n([a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ (?: \\s*\\|\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)*) # union or single exception class\n\\s*\n((\\$+)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)? # Variable",captures:{"1":{patterns:[{match:"\\|",name:"punctuation.separator.delimiter.php"},{begin:"(?i)(?=[\\\\a-z_\\x{7f}-\\x{10ffff}])",end:"(?xi)\n( [a-z_\\x{7f}-\\x{10ffff}] [a-z0-9_\\x{7f}-\\x{10ffff}]* )\n(?![a-z0-9_\\x{7f}-\\x{10ffff}\\\\])",endCaptures:{"1":{name:"support.class.exception.php"}},patterns:[{include:"#namespace"}]}]},"2":{name:"variable.other.php"},"3":{name:"punctuation.definition.variable.php"}}}]},{match:"\\b(catch|try|throw|exception|finally)\\b",name:"keyword.control.exception.php"},{begin:"(?i)\\b(function)\\s*(?=&?\\s*\\()",beginCaptures:{"1":{name:"storage.type.function.php"}},end:"(?=\\s*{)",name:"meta.function.closure.php",patterns:[{include:"#comments"},{begin:"(&)?\\s*(\\()",beginCaptures:{"1":{name:"storage.modifier.reference.php"},"2":{name:"punctuation.definition.parameters.begin.bracket.round.php"}},contentName:"meta.function.parameters.php",end:"\\)",endCaptures:{"0":{name:"punctuation.definition.parameters.end.bracket.round.php"}},patterns:[{include:"#function-parameters"}]},{begin:"(?i)(use)\\s*(\\()",beginCaptures:{"1":{name:"keyword.other.function.use.php"},"2":{name:"punctuation.definition.parameters.begin.bracket.round.php"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.parameters.end.bracket.round.php"}},name:"meta.function.closure.use.php",patterns:[{match:",",name:"punctuation.separator.delimiter.php"},{captures:{"1":{name:"variable.other.php"},"2":{name:"storage.modifier.reference.php"},"3":{name:"punctuation.definition.variable.php"}},match:"(?i)((?:(&)\\s*)?(\\$+)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)\\s*(?=,|\\))"}]},{match:"(?xi)\n(:)\\s*\n(\n # nullable type\n (?:\\?\\s*)? [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ |\n # union, intersection or DNF type\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n (?: \\s*[|&]\\s*\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n )+\n)\n(?=\\s*(?:{|/[/*]|\\#|$))",captures:{"1":{name:"keyword.operator.return-value.php"},"2":{patterns:[{include:"#php-types"}]}}}]},{begin:"(?i)\\b(fn)\\s*(?=&?\\s*\\()",beginCaptures:{"1":{name:"storage.type.function.php"}},end:"=>",endCaptures:{"0":{name:"punctuation.definition.arrow.php"}},name:"meta.function.closure.php",patterns:[{begin:"(?:(&)\\s*)?(\\()",beginCaptures:{"1":{name:"storage.modifier.reference.php"},"2":{name:"punctuation.definition.parameters.begin.bracket.round.php"}},contentName:"meta.function.parameters.php",end:"\\)",endCaptures:{"0":{name:"punctuation.definition.parameters.end.bracket.round.php"}},patterns:[{include:"#function-parameters"}]},{match:"(?xi)\n(:)\\s*\n(\n # nullable type\n (?:\\?\\s*)? [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ |\n # union, intersection or DNF type\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n (?: \\s*[|&]\\s*\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n )+\n)\n(?=\\s*(?:=>|/[/*]|\\#|$))",captures:{"1":{name:"keyword.operator.return-value.php"},"2":{patterns:[{include:"#php-types"}]}}}]},{begin:"(?x)\n((?:(?:final|abstract|public|private|protected)\\s+)*)\n(function)\\s+(__construct)\n\\s*(\\()",beginCaptures:{"1":{patterns:[{match:"final|abstract|public|private|protected",name:"storage.modifier.php"}]},"2":{name:"storage.type.function.php"},"3":{name:"support.function.constructor.php"},"4":{name:"punctuation.definition.parameters.begin.bracket.round.php"}},contentName:"meta.function.parameters.php",end:"(?xi)\n(\\)) \\s* ( : \\s*\n (?:\\?\\s*)? (?!\\s) [a-z0-9_\\x{7f}-\\x{10ffff}\\\\\\s\\|&()]+ (?<!\\s)\n)?\n(?=\\s*(?:{|/[/*]|\\#|$|;))",endCaptures:{"1":{name:"punctuation.definition.parameters.end.bracket.round.php"},"2":{name:"invalid.illegal.return-type.php"}},name:"meta.function.php",patterns:[{include:"#comments"},{match:",",name:"punctuation.separator.delimiter.php"},{begin:"(?xi)\n((?:(?:public|private|protected|readonly)(?:\\s+|(?=\\?)))++)\n(?: (\n # nullable type\n (?:\\?\\s*)? [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ |\n # union, intersection or DNF type\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n (?: \\s*[|&]\\s*\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n )+\n) \\s+ )?\n((?:(&)\\s*)?(\\$)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*) # Variable name with possible reference",beginCaptures:{"1":{patterns:[{match:"public|private|protected|readonly",name:"storage.modifier.php"}]},"2":{patterns:[{include:"#php-types"}]},"3":{name:"variable.other.php"},"4":{name:"storage.modifier.reference.php"},"5":{name:"punctuation.definition.variable.php"}},end:"(?=\\s*(?:,|\\)|/[/*]|\\#))",name:"meta.function.parameter.promoted-property.php",patterns:[{begin:"=",beginCaptures:{"0":{name:"keyword.operator.assignment.php"}},end:"(?=\\s*(?:,|\\)|/[/*]|\\#))",patterns:[{include:"#parameter-default-types"}]}]},{include:"#function-parameters"}]},{begin:"(?x)\n((?:(?:final|abstract|public|private|protected|static)\\s+)*)\n(function)\\s+\n(?i:\n (__(?:call|construct|debugInfo|destruct|get|set|isset|unset|toString|\n clone|set_state|sleep|wakeup|autoload|invoke|callStatic|serialize|unserialize))\n |(?:(&)?\\s*([a-zA-Z_\\x{7f}-\\x{10ffff}][a-zA-Z0-9_\\x{7f}-\\x{10ffff}]*))\n)\n\\s*(\\()",beginCaptures:{"1":{patterns:[{match:"final|abstract|public|private|protected|static",name:"storage.modifier.php"}]},"2":{name:"storage.type.function.php"},"3":{name:"support.function.magic.php"},"4":{name:"storage.modifier.reference.php"},"5":{name:"entity.name.function.php"},"6":{name:"punctuation.definition.parameters.begin.bracket.round.php"}},contentName:"meta.function.parameters.php",end:"(?xi)\n(\\)) (?: \\s* (:) \\s* (\n # nullable type\n (?:\\?\\s*)? [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ |\n # union, intersection or DNF type\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n (?: \\s*[|&]\\s*\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n )+\n) )?\n(?=\\s*(?:{|/[/*]|\\#|$|;))",endCaptures:{"1":{name:"punctuation.definition.parameters.end.bracket.round.php"},"2":{name:"keyword.operator.return-value.php"},"3":{patterns:[{match:"\\b(static)\\b",name:"storage.type.php"},{match:"\\b(never)\\b",name:"keyword.other.type.never.php"},{include:"#php-types"}]}},name:"meta.function.php",patterns:[{include:"#function-parameters"}]},{match:"(?xi)\n((?:(?:public|private|protected|static|readonly)(?:\\s+|(?=\\?)))++) # At least one modifier\n(\n # nullable type\n (?:\\?\\s*)? [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ |\n # union, intersection or DNF type\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n (?: \\s*[|&]\\s*\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n )+\n)?\n\\s+ ((\\$)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*) # Variable name",captures:{"1":{patterns:[{match:"public|private|protected|static|readonly",name:"storage.modifier.php"}]},"2":{patterns:[{include:"#php-types"}]},"3":{name:"variable.other.php"},"4":{name:"punctuation.definition.variable.php"}}},{include:"#invoke-call"},{include:"#scope-resolution"},{include:"#variables"},{include:"#strings"},{captures:{"1":{name:"support.function.construct.php"},"2":{name:"punctuation.definition.array.begin.bracket.round.php"},"3":{name:"punctuation.definition.array.end.bracket.round.php"}},match:"(array)(\\()(\\))",name:"meta.array.empty.php"},{begin:"(array)\\s*(\\()",beginCaptures:{"1":{name:"support.function.construct.php"},"2":{name:"punctuation.definition.array.begin.bracket.round.php"}},end:"\\)|(?=\\?>)",endCaptures:{"0":{name:"punctuation.definition.array.end.bracket.round.php"}},name:"meta.array.php",patterns:[{include:"$self"}]},{match:"(?i)(\\()\\s*(array|real|double|float|int(?:eger)?|bool(?:ean)?|string|object|binary|unset)\\s*(\\))",captures:{"1":{name:"punctuation.definition.storage-type.begin.bracket.round.php"},"2":{name:"storage.type.php"},"3":{name:"punctuation.definition.storage-type.end.bracket.round.php"}}},{match:"(?i)\\b(array|real|double|float|int(eger)?|bool(ean)?|string|class|var|function|interface|trait|parent|self|object|mixed)\\b",name:"storage.type.php"},{match:"(?i)\\b(global|abstract|const|final|private|protected|public|static)\\b",name:"storage.modifier.php"},{include:"#object"},{match:";",name:"punctuation.terminator.expression.php"},{match:":",name:"punctuation.terminator.statement.php"},{include:"#heredoc"},{include:"#numbers"},{match:"(?i)\\bclone\\b",name:"keyword.other.clone.php"},{match:"\\.\\.\\.",name:"keyword.operator.spread.php"},{match:"\\.=?",name:"keyword.operator.string.php"},{match:"=>",name:"keyword.operator.key.php"},{captures:{"1":{name:"keyword.operator.assignment.php"},"2":{name:"storage.modifier.reference.php"},"3":{name:"storage.modifier.reference.php"}},match:"(?i)(\\=)(&)|(&)(?=[$a-z_])"},{match:"@",name:"keyword.operator.error-control.php"},{match:"===|==|!==|!=|<>",name:"keyword.operator.comparison.php"},{match:"=|\\+=|\\-=|\\*\\*?=|/=|%=|&=|\\|=|\\^=|<<=|>>=|\\?\\?=",name:"keyword.operator.assignment.php"},{match:"<=>|<=|>=|<|>",name:"keyword.operator.comparison.php"},{match:"\\-\\-|\\+\\+",name:"keyword.operator.increment-decrement.php"},{match:"\\-|\\+|\\*\\*?|/|%",name:"keyword.operator.arithmetic.php"},{match:"(?i)(!|&&|\\|\\|)|\\b(and|or|xor|as)\\b",name:"keyword.operator.logical.php"},{include:"#function-call"},{match:"<<|>>|~|\\^|&|\\|",name:"keyword.operator.bitwise.php"},{begin:"(?i)\\b(instanceof)\\s+(?=[\\\\$a-z_])",beginCaptures:{"1":{name:"keyword.operator.type.php"}},end:"(?i)(?=[^\\\\$a-z0-9_\\x{7f}-\\x{10ffff}])",patterns:[{include:"#class-name"},{include:"#variable-name"}]},{include:"#instantiation"},{captures:{"1":{name:"keyword.control.goto.php"},"2":{name:"support.other.php"}},match:"(?i)(goto)\\s+([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)"},{captures:{"1":{name:"entity.name.goto-label.php"}},match:"(?i)^\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*(?<!default))\\s*:(?!:)"},{include:"#string-backtick"},{include:"#ternary_shorthand"},{include:"#null_coalescing"},{include:"#ternary_expression"},{begin:"{",beginCaptures:{"0":{name:"punctuation.definition.begin.bracket.curly.php"}},end:"}|(?=\\?>)",endCaptures:{"0":{name:"punctuation.definition.end.bracket.curly.php"}},patterns:[{include:"$self"}]},{begin:"\\[",beginCaptures:{"0":{name:"punctuation.section.array.begin.php"}},end:"\\]|(?=\\?>)",endCaptures:{"0":{name:"punctuation.section.array.end.php"}},patterns:[{include:"$self"}]},{begin:"\\(",beginCaptures:{"0":{name:"punctuation.definition.begin.bracket.round.php"}},end:"\\)|(?=\\?>)",endCaptures:{"0":{name:"punctuation.definition.end.bracket.round.php"}},patterns:[{include:"$self"}]},{include:"#constants"},{match:",",name:"punctuation.separator.delimiter.php"}],repository:{"attribute-name":{patterns:[{begin:"(?i)(?=\\\\?[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*\\\\)",end:"(?xi)\n( [a-z_\\x{7f}-\\x{10ffff}] [a-z0-9_\\x{7f}-\\x{10ffff}]* )?\n(?![a-z0-9_\\x{7f}-\\x{10ffff}\\\\])",endCaptures:{"1":{name:"support.attribute.php"}},patterns:[{include:"#namespace"}]},{match:"(?xi)\n(\\\\)?\\b(Attribute|SensitiveParameter|AllowDynamicProperties|ReturnTypeWillChange)\\b",name:"support.attribute.builtin.php",captures:{"1":{name:"punctuation.separator.inheritance.php"}}},{begin:"(?i)(?=[\\\\a-z_\\x{7f}-\\x{10ffff}])",end:"(?xi)\n( [a-z_\\x{7f}-\\x{10ffff}] [a-z0-9_\\x{7f}-\\x{10ffff}]* )?\n(?![a-z0-9_\\x{7f}-\\x{10ffff}\\\\])",endCaptures:{"1":{name:"support.attribute.php"}},patterns:[{include:"#namespace"}]}]},attribute:{begin:"\\#\\[",end:"\\]",name:"meta.attribute.php",patterns:[{match:",",name:"punctuation.separator.delimiter.php"},{begin:"([a-zA-Z0-9_\\x{7f}-\\x{10ffff}\\\\]+)\\s*(\\()",beginCaptures:{"1":{patterns:[{include:"#attribute-name"}]},"2":{name:"punctuation.definition.arguments.begin.bracket.round.php"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.arguments.end.bracket.round.php"}},patterns:[{include:"#named-arguments"},{include:"$self"}]},{include:"#attribute-name"}]},"class-builtin":{patterns:[{match:"(?xi)\n(\\\\)?\\b\n(Attribute|(APC|Append)Iterator|Array(Access|Iterator|Object)\n|Bad(Function|Method)CallException\n|(Caching|CallbackFilter)Iterator|Collator|Collectable|Cond|Countable|CURLFile\n|Date(Interval|Period|Time(Interface|Immutable|Zone)?)?|Directory(Iterator)?|DomainException\n|DOM(Attr|CdataSection|CharacterData|Comment|Document(Fragment)?|Element|EntityReference\n |Implementation|NamedNodeMap|Node(list)?|ProcessingInstruction|Text|XPath)\n|(Error)?Exception|EmptyIterator\n|finfo\n|Ev(Check|Child|Embed|Fork|Idle|Io|Loop|Periodic|Prepare|Signal|Stat|Timer|Watcher)?\n|Event(Base|Buffer(Event)?|SslContext|Http(Request|Connection)?|Config|DnsBase|Util|Listener)?\n|FANNConnection|(Filter|Filesystem)Iterator\n|Gender\\\\Gender|GlobIterator|Gmagick(Draw|Pixel)?\n|Haru(Annotation|Destination|Doc|Encoder|Font|Image|Outline|Page)\n|Http((Inflate|Deflate)?Stream|Message|Request(Pool)?|Response|QueryString)\n|HRTime\\\\(PerformanceCounter|StopWatch)\n|Intl(Calendar|((CodePoint|RuleBased)?Break|Parts)?Iterator|DateFormatter|TimeZone)\n|Imagick(Draw|Pixel(Iterator)?)?\n|InfiniteIterator|InvalidArgumentException|Iterator(Aggregate|Iterator)?\n|JsonSerializable\n|KTaglib_(MPEG_(File|AudioProperties)|Tag|ID3v2_(Tag|(AttachedPicture)?Frame))\n|Lapack|(Length|Locale|Logic)Exception|LimitIterator|Lua(Closure)?\n|Mongo(BinData|Client|Code|Collection|CommandCursor|Cursor(Exception)?|Date|DB(Ref)?|DeleteBatch\n |Grid(FS(Cursor|File)?)|Id|InsertBatch|Int(32|64)|Log|Pool|Regex|ResultException|Timestamp\n |UpdateBatch|Write(Batch|ConcernException))?\n|Memcache(d)?|MessageFormatter|MultipleIterator|Mutex\n|mysqli(_(driver|stmt|warning|result))?\n|MysqlndUh(Connection|PreparedStatement)\n|NoRewindIterator|Normalizer|NumberFormatter\n|OCI-(Collection|Lob)|OuterIterator|(OutOf(Bounds|Range)|Overflow)Exception\n|ParentIterator|PDO(Statement)?|Phar(Data|FileInfo)?|php_user_filter|Pool\n|QuickHash(Int(Set|StringHash)|StringIntHash)\n|Recursive(Array|Caching|Directory|Fallback|Filter|Iterator|Regex|Tree)?Iterator\n|Reflection(Class|Function(Abstract)?|Method|Object|Parameter|Property|(Zend)?Extension)?\n|RangeException|Reflector|RegexIterator|ResourceBundle|RuntimeException|RRD(Creator|Graph|Updater)\n|SAM(Connection|Message)|SCA(_(SoapProxy|LocalProxy))?\n|SDO_(DAS_(ChangeSummary|Data(Factory|Object)|Relational|Setting|XML(_Document)?)\n |Data(Factory|Object)|Exception|List|Model_(Property|ReflectionDataObject|Type)|Sequence)\n|SeekableIterator|Serializable|SessionHandler(Interface)?|SimpleXML(Iterator|Element)|SNMP\n|Soap(Client|Fault|Header|Param|Server|Var)\n|SphinxClient|Spoofchecker\n|Spl(DoublyLinkedList|Enum|File(Info|Object)|FixedArray|(Max|Min)?Heap|Observer|ObjectStorage\n |(Priority)?Queue|Stack|Subject|Type|TempFileObject)\n|SQLite(3(Result|Stmt)?|Database|Result|Unbuffered)\n|stdClass|streamWrapper|SVM(Model)?|Swish(Result(s)?|Search)?|Sync(Event|Mutex|ReaderWriter|Semaphore)\n|Thread(ed)?|tidy(Node)?|TokyoTyrant(Table|Iterator|Query)?|Transliterator|Traversable\n|UConverter|(Underflow|UnexpectedValue)Exception\n|V8Js(Exception)?|Varnish(Admin|Log|Stat)\n|Worker|Weak(Map|Ref)\n|XML(Diff\\\\(Base|DOM|File|Memory)|Reader|Writer)|XsltProcessor\n|Yaf_(Route_(Interface|Map|Regex|Rewrite|Simple|Supervar)\n |Action_Abstract|Application|Config_(Simple|Ini|Abstract)|Controller_Abstract\n |Dispatcher|Exception|Loader|Plugin_Abstract|Registry|Request_(Abstract|Simple|Http)\n |Response_Abstract|Router|Session|View_(Simple|Interface))\n|Yar_(Client(_Exception)?|Concurrent_Client|Server(_Exception)?)\n|ZipArchive|ZMQ(Context|Device|Poll|Socket)?)\n\\b",name:"support.class.builtin.php",captures:{"1":{name:"punctuation.separator.inheritance.php"}}}]},"class-name":{patterns:[{begin:"(?i)(?=\\\\?[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*\\\\)",end:"(?xi)\n( [a-z_\\x{7f}-\\x{10ffff}] [a-z0-9_\\x{7f}-\\x{10ffff}]* )?\n(?![a-z0-9_\\x{7f}-\\x{10ffff}\\\\])",endCaptures:{"1":{name:"support.class.php"}},patterns:[{include:"#namespace"}]},{include:"#class-builtin"},{begin:"(?i)(?=[\\\\a-z_\\x{7f}-\\x{10ffff}])",end:"(?xi)\n( [a-z_\\x{7f}-\\x{10ffff}] [a-z0-9_\\x{7f}-\\x{10ffff}]* )?\n(?![a-z0-9_\\x{7f}-\\x{10ffff}\\\\])",endCaptures:{"1":{name:"support.class.php"}},patterns:[{include:"#namespace"}]}]},"inheritance-single":{patterns:[{begin:"(?i)(?=\\\\?[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*\\\\)",end:"(?i)([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)?(?=[^a-z0-9_\\x{7f}-\\x{10ffff}\\\\])",endCaptures:{"1":{name:"entity.other.inherited-class.php"}},patterns:[{include:"#namespace"}]},{include:"#class-builtin"},{include:"#namespace"},{match:"(?i)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*",name:"entity.other.inherited-class.php"}]},"class-extends":{patterns:[{begin:"(?i)(extends)\\s+",beginCaptures:{"1":{name:"storage.modifier.extends.php"}},end:"(?i)(?=[^A-Za-z0-9_\\x{7f}-\\x{10ffff}\\\\])",patterns:[{include:"#comments"},{include:"#inheritance-single"}]}]},"interface-extends":{patterns:[{begin:"(?i)(extends)\\s+",beginCaptures:{"1":{name:"storage.modifier.extends.php"}},end:"(?i)(?={)",patterns:[{include:"#comments"},{match:",",name:"punctuation.separator.classes.php"},{include:"#inheritance-single"}]}]},"class-implements":{patterns:[{begin:"(?i)(implements)\\s+",beginCaptures:{"1":{name:"storage.modifier.implements.php"}},end:"(?i)(?={)",patterns:[{include:"#comments"},{match:",",name:"punctuation.separator.classes.php"},{include:"#inheritance-single"}]}]},"class-constant":{patterns:[{match:"(?i)\\b(const)\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)",captures:{"1":{name:"storage.modifier.php"},"2":{name:"constant.other.php"}}}]},comments:{patterns:[{begin:"/\\*\\*(?=\\s)",beginCaptures:{"0":{name:"punctuation.definition.comment.php"}},end:"\\*/",endCaptures:{"0":{name:"punctuation.definition.comment.php"}},name:"comment.block.documentation.phpdoc.php",patterns:[{include:"#php_doc"}]},{begin:"/\\*",captures:{"0":{name:"punctuation.definition.comment.php"}},end:"\\*/",name:"comment.block.php"},{begin:"(^\\s+)?(?=//)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.php"}},end:"(?!\\G)",patterns:[{begin:"//",beginCaptures:{"0":{name:"punctuation.definition.comment.php"}},end:"\\n|(?=\\?>)",name:"comment.line.double-slash.php"}]},{begin:"(^\\s+)?(?=#)(?!#\\[)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.php"}},end:"(?!\\G)",patterns:[{begin:"#",beginCaptures:{"0":{name:"punctuation.definition.comment.php"}},end:"\\n|(?=\\?>)",name:"comment.line.number-sign.php"}]}]},constants:{patterns:[{match:"(?i)\\b(TRUE|FALSE|NULL|__(FILE|DIR|FUNCTION|CLASS|METHOD|LINE|NAMESPACE)__|ON|OFF|YES|NO|NL|BR|TAB)\\b",name:"constant.language.php"},{match:"(?x)\n(\\\\)?\\b\n(DEFAULT_INCLUDE_PATH\n|EAR_(INSTALL|EXTENSION)_DIR\n|E_(ALL|COMPILE_(ERROR|WARNING)|CORE_(ERROR|WARNING)|DEPRECATED|ERROR|NOTICE\n |PARSE|RECOVERABLE_ERROR|STRICT|USER_(DEPRECATED|ERROR|NOTICE|WARNING)|WARNING)\n|PHP_(ROUND_HALF_(DOWN|EVEN|ODD|UP)|(MAJOR|MINOR|RELEASE)_VERSION|MAXPATHLEN\n |BINDIR|SHLIB_SUFFIX|SYSCONFDIR|SAPI|CONFIG_FILE_(PATH|SCAN_DIR)\n |INT_(MAX|SIZE)|ZTS|OS|OUTPUT_HANDLER_(START|CONT|END)|DEBUG|DATADIR\n |URL_(SCHEME|HOST|USER|PORT|PASS|PATH|QUERY|FRAGMENT)|PREFIX\n |EXTRA_VERSION|EXTENSION_DIR|EOL|VERSION(_ID)?\n |WINDOWS_(NT_(SERVER|DOMAIN_CONTROLLER|WORKSTATION)\n |VERSION_(MAJOR|MINOR)|BUILD|SUITEMASK|SP_(MAJOR|MINOR)\n |PRODUCTTYPE|PLATFORM)\n |LIBDIR|LOCALSTATEDIR)\n|STD(ERR|IN|OUT)|ZEND_(DEBUG_BUILD|THREAD_SAFE))\n\\b",name:"support.constant.core.php",captures:{"1":{name:"punctuation.separator.inheritance.php"}}},{match:"(?x)\n(\\\\)?\\b\n(__COMPILER_HALT_OFFSET__|AB(MON_(1|2|3|4|5|6|7|8|9|10|11|12)|DAY[1-7])\n|AM_STR|ASSERT_(ACTIVE|BAIL|CALLBACK_QUIET_EVAL|WARNING)|ALT_DIGITS\n|CASE_(UPPER|LOWER)|CHAR_MAX|CONNECTION_(ABORTED|NORMAL|TIMEOUT)|CODESET|COUNT_(NORMAL|RECURSIVE)\n|CREDITS_(ALL|DOCS|FULLPAGE|GENERAL|GROUP|MODULES|QA|SAPI)\n|CRYPT_(BLOWFISH|EXT_DES|MD5|SHA(256|512)|SALT_LENGTH|STD_DES)|CURRENCY_SYMBOL\n|D_(T_)?FMT|DATE_(ATOM|COOKIE|ISO8601|RFC(822|850|1036|1123|2822|3339)|RSS|W3C)\n|DAY_[1-7]|DECIMAL_POINT|DIRECTORY_SEPARATOR\n|ENT_(COMPAT|IGNORE|(NO)?QUOTES)|EXTR_(IF_EXISTS|OVERWRITE|PREFIX_(ALL|IF_EXISTS|INVALID|SAME)|REFS|SKIP)\n|ERA(_(D_(T_)?FMT)|T_FMT|YEAR)?|FRAC_DIGITS|GROUPING|HASH_HMAC|HTML_(ENTITIES|SPECIALCHARS)\n|INF|INFO_(ALL|CREDITS|CONFIGURATION|ENVIRONMENT|GENERAL|LICENSEMODULES|VARIABLES)\n|INI_(ALL|CANNER_(NORMAL|RAW)|PERDIR|SYSTEM|USER)|INT_(CURR_SYMBOL|FRAC_DIGITS)\n|LC_(ALL|COLLATE|CTYPE|MESSAGES|MONETARY|NUMERIC|TIME)|LOCK_(EX|NB|SH|UN)\n|LOG_(ALERT|AUTH(PRIV)?|CRIT|CRON|CONS|DAEMON|DEBUG|EMERG|ERR|INFO|LOCAL[1-7]|LPR|KERN|MAIL\n |NEWS|NODELAY|NOTICE|NOWAIT|ODELAY|PID|PERROR|WARNING|SYSLOG|UCP|USER)\n|M_(1_PI|SQRT(1_2|2|3|PI)|2_(SQRT)?PI|PI(_(2|4))?|E(ULER)?|LN(10|2|PI)|LOG(10|2)E)\n|MON_(1|2|3|4|5|6|7|8|9|10|11|12|DECIMAL_POINT|GROUPING|THOUSANDS_SEP)\n|N_(CS_PRECEDES|SEP_BY_SPACE|SIGN_POSN)|NAN|NEGATIVE_SIGN|NO(EXPR|STR)\n|P_(CS_PRECEDES|SEP_BY_SPACE|SIGN_POSN)|PM_STR|POSITIVE_SIGN\n|PATH(_SEPARATOR|INFO_(EXTENSION|(BASE|DIR|FILE)NAME))|RADIXCHAR\n|SEEK_(CUR|END|SET)|SORT_(ASC|DESC|LOCALE_STRING|REGULAR|STRING)|STR_PAD_(BOTH|LEFT|RIGHT)\n|T_FMT(_AMPM)?|THOUSEP|THOUSANDS_SEP\n|UPLOAD_ERR_(CANT_WRITE|EXTENSION|(FORM|INI)_SIZE|NO_(FILE|TMP_DIR)|OK|PARTIAL)\n|YES(EXPR|STR))\n\\b",name:"support.constant.std.php",captures:{"1":{name:"punctuation.separator.inheritance.php"}}},{match:"(?x)\n(\\\\)?\\b\n(GLOB_(MARK|BRACE|NO(SORT|CHECK|ESCAPE)|ONLYDIR|ERR|AVAILABLE_FLAGS)\n|XML_(SAX_IMPL|(DTD|DOCUMENT(_(FRAG|TYPE))?|HTML_DOCUMENT|NOTATION|NAMESPACE_DECL|PI|COMMENT|DATA_SECTION|TEXT)_NODE\n |OPTION_(SKIP_(TAGSTART|WHITE)|CASE_FOLDING|TARGET_ENCODING)\n |ERROR_((BAD_CHAR|(ATTRIBUTE_EXTERNAL|BINARY|PARAM|RECURSIVE)_ENTITY)_REF|MISPLACED_XML_PI|SYNTAX|NONE\n |NO_(MEMORY|ELEMENTS)|TAG_MISMATCH|INCORRECT_ENCODING|INVALID_TOKEN|DUPLICATE_ATTRIBUTE\n |UNCLOSED_(CDATA_SECTION|TOKEN)|UNDEFINED_ENTITY|UNKNOWN_ENCODING|JUNK_AFTER_DOC_ELEMENT\n |PARTIAL_CHAR|EXTERNAL_ENTITY_HANDLING|ASYNC_ENTITY)\n |ENTITY_(((REF|DECL)_)?NODE)|ELEMENT(_DECL)?_NODE|LOCAL_NAMESPACE|ATTRIBUTE_(NMTOKEN(S)?|NOTATION|NODE)\n |CDATA|ID(REF(S)?)?|DECL_NODE|ENTITY|ENUMERATION)\n|MHASH_(RIPEMD(128|160|256|320)|GOST|MD(2|4|5)|SHA(1|224|256|384|512)|SNEFRU256|HAVAL(128|160|192|224|256)\n |CRC23(B)?|TIGER(128|160)?|WHIRLPOOL|ADLER32)\n|MYSQL_(BOTH|NUM|CLIENT_(SSL|COMPRESS|IGNORE_SPACE|INTERACTIVE|ASSOC))\n|MYSQLI_(REPORT_(STRICT|INDEX|OFF|ERROR|ALL)|REFRESH_(GRANT|MASTER|BACKUP_LOG|STATUS|SLAVE|HOSTS|THREADS|TABLES|LOG)\n |READ_DEFAULT_(FILE|GROUP)|(GROUP|MULTIPLE_KEY|BINARY|BLOB)_FLAG|BOTH\n |STMT_ATTR_(CURSOR_TYPE|UPDATE_MAX_LENGTH|PREFETCH_ROWS)|STORE_RESULT\n |SERVER_QUERY_(NO_((GOOD_)?INDEX_USED)|WAS_SLOW)|SET_(CHARSET_NAME|FLAG)\n |NO_(DEFAULT_VALUE_FLAG|DATA)|NOT_NULL_FLAG|NUM(_FLAG)?\n |CURSOR_TYPE_(READ_ONLY|SCROLLABLE|NO_CURSOR|FOR_UPDATE)\n |CLIENT_(SSL|NO_SCHEMA|COMPRESS|IGNORE_SPACE|INTERACTIVE|FOUND_ROWS)\n |TYPE_(GEOMETRY|((MEDIUM|LONG|TINY)_)?BLOB|BIT|SHORT|STRING|SET|YEAR|NULL|NEWDECIMAL|NEWDATE|CHAR\n |TIME(STAMP)?|TINY|INT24|INTERVAL|DOUBLE|DECIMAL|DATE(TIME)?|ENUM|VAR_STRING|FLOAT|LONG(LONG)?)\n |TIME_STAMP_FLAG|INIT_COMMAND|ZEROFILL_FLAG|ON_UPDATE_NOW_FLAG\n |OPT_(NET_((CMD|READ)_BUFFER_SIZE)|CONNECT_TIMEOUT|INT_AND_FLOAT_NATIVE|LOCAL_INFILE)\n |DEBUG_TRACE_ENABLED|DATA_TRUNCATED|USE_RESULT|(ENUM|(PART|PRI|UNIQUE)_KEY|UNSIGNED)_FLAG\n |ASSOC|ASYNC|AUTO_INCREMENT_FLAG)\n|MCRYPT_(RC(2|6)|RIJNDAEL_(128|192|256)|RAND|GOST|XTEA|MODE_(STREAM|NOFB|CBC|CFB|OFB|ECB)|MARS\n |BLOWFISH(_COMPAT)?|SERPENT|SKIPJACK|SAFER(64|128|PLUS)|CRYPT|CAST_(128|256)|TRIPLEDES|THREEWAY\n |TWOFISH|IDEA|(3)?DES|DECRYPT|DEV_(U)?RANDOM|PANAMA|ENCRYPT|ENIGNA|WAKE|LOKI97|ARCFOUR(_IV)?)\n|STREAM_(REPORT_ERRORS|MUST_SEEK|MKDIR_RECURSIVE|BUFFER_(NONE|FULL|LINE)|SHUT_(RD)?WR\n |SOCK_(RDM|RAW|STREAM|SEQPACKET|DGRAM)|SERVER_(BIND|LISTEN)\n |NOTIFY_(REDIRECTED|RESOLVE|MIME_TYPE_IS|SEVERITY_(INFO|ERR|WARN)|COMPLETED|CONNECT|PROGRESS\n |FILE_SIZE_IS|FAILURE|AUTH_(REQUIRED|RESULT))\n |CRYPTO_METHOD_((SSLv2(3)?|SSLv3|TLS)_(CLIENT|SERVER))|CLIENT_((ASYNC_)?CONNECT|PERSISTENT)\n |CAST_(AS_STREAM|FOR_SELECT)|(IGNORE|IS)_URL|IPPROTO_(RAW|TCP|ICMP|IP|UDP)|OOB\n |OPTION_(READ_(BUFFER|TIMEOUT)|BLOCKING|WRITE_BUFFER)|URL_STAT_(LINK|QUIET)|USE_PATH\n |PEEK|PF_(INET(6)?|UNIX)|ENFORCE_SAFE_MODE|FILTER_(ALL|READ|WRITE))\n|SUNFUNCS_RET_(DOUBLE|STRING|TIMESTAMP)\n|SQLITE_(READONLY|ROW|MISMATCH|MISUSE|BOTH|BUSY|SCHEMA|NOMEM|NOTFOUND|NOTADB|NOLFS|NUM|CORRUPT\n |CONSTRAINT|CANTOPEN|TOOBIG|INTERRUPT|INTERNAL|IOERR|OK|DONE|PROTOCOL|PERM|ERROR|EMPTY\n |FORMAT|FULL|LOCKED|ABORT|ASSOC|AUTH)\n|SQLITE3_(BOTH|BLOB|NUM|NULL|TEXT|INTEGER|OPEN_(READ(ONLY|WRITE)|CREATE)|FLOAT_ASSOC)\n|CURL(M_(BAD_((EASY)?HANDLE)|CALL_MULTI_PERFORM|INTERNAL_ERROR|OUT_OF_MEMORY|OK)\n |MSG_DONE|SSH_AUTH_(HOST|NONE|DEFAULT|PUBLICKEY|PASSWORD|KEYBOARD)\n |CLOSEPOLICY_(SLOWEST|CALLBACK|OLDEST|LEAST_(RECENTLY_USED|TRAFFIC)\n |INFO_(REDIRECT_(COUNT|TIME)|REQUEST_SIZE|SSL_VERIFYRESULT|STARTTRANSFER_TIME\n |(SIZE|SPEED)_(DOWNLOAD|UPLOAD)|HTTP_CODE|HEADER_(OUT|SIZE)|NAMELOOKUP_TIME\n |CONNECT_TIME|CONTENT_(TYPE|LENGTH_(DOWNLOAD|UPLOAD))|CERTINFO|TOTAL_TIME\n |PRIVATE|PRETRANSFER_TIME|EFFECTIVE_URL|FILETIME)\n |OPT_(RESUME_FROM|RETURNTRANSFER|REDIR_PROTOCOLS|REFERER|READ(DATA|FUNCTION)|RANGE|RANDOM_FILE\n |MAX(CONNECTS|REDIRS)|BINARYTRANSFER|BUFFERSIZE\n |SSH_(HOST_PUBLIC_KEY_MD5|(PRIVATE|PUBLIC)_KEYFILE)|AUTH_TYPES)\n |SSL(CERT(TYPE|PASSWD)?|ENGINE(_DEFAULT)?|VERSION|KEY(TYPE|PASSWD)?)\n |SSL_(CIPHER_LIST|VERIFY(HOST|PEER))\n |STDERR|HTTP(GET|HEADER|200ALIASES|_VERSION|PROXYTUNNEL|AUTH)\n |HEADER(FUNCTION)?|NO(BODY|SIGNAL|PROGRESS)|NETRC|CRLF|CONNECTTIMEOUT(_MS)?\n |COOKIE(SESSION|JAR|FILE)?|CUSTOMREQUEST|CERTINFO|CLOSEPOLICY|CA(INFO|PATH)|TRANSFERTEXT\n |TCP_NODELAY|TIME(CONDITION|OUT(_MS)?|VALUE)|INTERFACE|INFILE(SIZE)?|IPRESOLVE\n |DNS_(CACHE_TIMEOUT|USE_GLOBAL_CACHE)|URL|USER(AGENT|PWD)|UNRESTRICTED_AUTH|UPLOAD\n |PRIVATE|PROGRESSFUNCTION|PROXY(TYPE|USERPWD|PORT|AUTH)?|PROTOCOLS|PORT\n |POST(REDIR|QUOTE|FIELDS)?|PUT|EGDSOCKET|ENCODING|VERBOSE|KRB4LEVEL|KEYPASSWD|QUOTE|FRESH_CONNECT\n |FTP(APPEND|LISTONLY|PORT|SSLAUTH)\n |FTP_(SSL|SKIP_PASV_IP|CREATE_MISSING_DIRS|USE_EP(RT|SV)|FILEMETHOD)\n |FILE(TIME)?|FORBID_REUSE|FOLLOWLOCATION|FAILONERROR|WRITE(FUNCTION|HEADER)|LOW_SPEED_(LIMIT|TIME)\n |AUTOREFERER)\n |PROXY_(HTTP|SOCKS(4|5))|PROTO_(SCP|SFTP|HTTP(S)?|TELNET|TFTP|DICT|FTP(S)?|FILE|LDAP(S)?|ALL)\n |E_((RECV|READ)_ERROR|GOT_NOTHING|MALFORMAT_USER\n |BAD_(CONTENT_ENCODING|CALLING_ORDER|PASSWORD_ENTERED|FUNCTION_ARGUMENT)\n |SSH|SSL_(CIPHER|CONNECT_ERROR|CERTPROBLEM|CACERT|PEER_CERTIFICATE|ENGINE_(NOTFOUND|SETFAILED))\n |SHARE_IN_USE|SEND_ERROR|HTTP_(RANGE_ERROR|NOT_FOUND|PORT_FAILED|POST_ERROR)\n |COULDNT_(RESOLVE_(HOST|PROXY)|CONNECT)|TOO_MANY_REDIRECTS|TELNET_OPTION_SYNTAX|OBSOLETE\n |OUT_OF_MEMORY|OPERATION|TIMEOUTED|OK|URL_MALFORMAT(_USER)?|UNSUPPORTED_PROTOCOL\n |UNKNOWN_TELNET_OPTION|PARTIAL_FILE\n |FTP_(BAD_DOWNLOAD_RESUME|SSL_FAILED|COULDNT_(RETR_FILE|GET_SIZE|STOR_FILE|SET_(BINARY|ASCII)|USE_REST)\n |CANT_(GET_HOST|RECONNECT)|USER_PASSWORD_INCORRECT|PORT_FAILED|QUOTE_ERROR|WRITE_ERROR\n |WEIRD_((PASS|PASV|SERVER|USER)_REPLY|227_FORMAT)|ACCESS_DENIED)\n |FILESIZE_EXCEEDED|FILE_COULDNT_READ_FILE|FUNCTION_NOT_FOUND|FAILED_INIT|WRITE_ERROR|LIBRARY_NOT_FOUND\n |LDAP_(SEARCH_FAILED|CANNOT_BIND|INVALID_URL)|ABORTED_BY_CALLBACK)\n |VERSION_NOW\n |FTP(METHOD_(MULTI|SINGLE|NO)CWD|SSL_(ALL|NONE|CONTROL|TRY)|AUTH_(DEFAULT|SSL|TLS))\n |AUTH_(ANY(SAFE)?|BASIC|DIGEST|GSSNEGOTIATE|NTLM))\n|CURL_(HTTP_VERSION_(1_(0|1)|NONE)|NETRC_(REQUIRED|IGNORED|OPTIONAL)|TIMECOND_(IF(UN)?MODSINCE|LASTMOD)\n |IPRESOLVE_(V(4|6)|WHATEVER)|VERSION_(SSL|IPV6|KERBEROS4|LIBZ))\n|IMAGETYPE_(GIF|XBM|BMP|SWF|COUNT|TIFF_(MM|II)|ICO|IFF|UNKNOWN|JB2|JPX|JP2|JPC|JPEG(2000)?|PSD|PNG|WBMP)\n|INPUT_(REQUEST|GET|SERVER|SESSION|COOKIE|POST|ENV)|ICONV_(MIME_DECODE_(STRICT|CONTINUE_ON_ERROR)|IMPL|VERSION)\n|DNS_(MX|SRV|SOA|HINFO|NS|NAPTR|CNAME|TXT|PTR|ANY|ALL|AAAA|A(6)?)\n|DOM(STRING_SIZE_ERR)\n|DOM_((SYNTAX|HIERARCHY_REQUEST|NO_(MODIFICATION_ALLOWED|DATA_ALLOWED)|NOT_(FOUND|SUPPORTED)|NAMESPACE\n |INDEX_SIZE|USE_ATTRIBUTE|VALID_(MODIFICATION|STATE|CHARACTER|ACCESS)|PHP|VALIDATION|WRONG_DOCUMENT)_ERR)\n|JSON_(HEX_(TAG|QUOT|AMP|APOS)|NUMERIC_CHECK|ERROR_(SYNTAX|STATE_MISMATCH|NONE|CTRL_CHAR|DEPTH|UTF8)|FORCE_OBJECT)\n|PREG_((D_UTF8(_OFFSET)?|NO|INTERNAL|(BACKTRACK|RECURSION)_LIMIT)_ERROR|GREP_INVERT\n |SPLIT_(NO_EMPTY|(DELIM|OFFSET)_CAPTURE)|SET_ORDER|OFFSET_CAPTURE|PATTERN_ORDER)\n|PSFS_(PASS_ON|ERR_FATAL|FEED_ME|FLAG_(NORMAL|FLUSH_(CLOSE|INC)))\n|PCRE_VERSION|POSIX_((F|R|W|X)_OK|S_IF(REG|BLK|SOCK|CHR|IFO))\n|FNM_(NOESCAPE|CASEFOLD|PERIOD|PATHNAME)\n|FILTER_(REQUIRE_(SCALAR|ARRAY)|NULL_ON_FAILURE|CALLBACK|DEFAULT|UNSAFE_RAW\n |SANITIZE_(MAGIC_QUOTES|STRING|STRIPPED|SPECIAL_CHARS|NUMBER_(INT|FLOAT)|URL\n |EMAIL|ENCODED|FULL_SPCIAL_CHARS)\n |VALIDATE_(REGEXP|BOOLEAN|INT|IP|URL|EMAIL|FLOAT)\n |FORCE_ARRAY\n |FLAG_(SCHEME_REQUIRED|STRIP_(BACKTICK|HIGH|LOW)|HOST_REQUIRED|NONE|NO_(RES|PRIV)_RANGE|ENCODE_QUOTES\n |IPV(4|6)|PATH_REQUIRED|EMPTY_STRING_NULL|ENCODE_(HIGH|LOW|AMP)|QUERY_REQUIRED\n |ALLOW_(SCIENTIFIC|HEX|THOUSAND|OCTAL|FRACTION)))\n|FILE_(BINARY|SKIP_EMPTY_LINES|NO_DEFAULT_CONTEXT|TEXT|IGNORE_NEW_LINES|USE_INCLUDE_PATH|APPEND)\n|FILEINFO_(RAW|MIME(_(ENCODING|TYPE))?|SYMLINK|NONE|CONTINUE|DEVICES|PRESERVE_ATIME)\n|FORCE_(DEFLATE|GZIP)\n|LIBXML_(XINCLUDE|NSCLEAN|NO(XMLDECL|BLANKS|NET|CDATA|ERROR|EMPTYTAG|ENT|WARNING)\n |COMPACT|DTD(VALID|LOAD|ATTR)|((DOTTED|LOADED)_)?VERSION|PARSEHUGE|ERR_(NONE|ERROR|FATAL|WARNING)))\n\\b",name:"support.constant.ext.php",captures:{"1":{name:"punctuation.separator.inheritance.php"}}},{match:"(?x)\n(\\\\)?\\b\n(T_(RETURN|REQUIRE(_ONCE)?|GOTO|GLOBAL|(MINUS|MOD|MUL|XOR)_EQUAL|METHOD_C|ML_COMMENT|BREAK\n |BOOL_CAST|BOOLEAN_(AND|OR)|BAD_CHARACTER|SR(_EQUAL)?|STRING(_CAST|VARNAME)?|START_HEREDOC|STATIC\n |SWITCH|SL(_EQUAL)?|HALT_COMPILER|NS_(C|SEPARATOR)|NUM_STRING|NEW|NAMESPACE|CHARACTER|COMMENT\n |CONSTANT(_ENCAPSED_STRING)?|CONCAT_EQUAL|CONTINUE|CURLY_OPEN|CLOSE_TAG|CLONE|CLASS(_C)?\n |CASE|CATCH|TRY|THROW|IMPLEMENTS|ISSET|IS_((GREATER|SMALLER)_OR_EQUAL|(NOT_)?(IDENTICAL|EQUAL))\n |INSTANCEOF|INCLUDE(_ONCE)?|INC|INT_CAST|INTERFACE|INLINE_HTML|IF|OR_EQUAL|OBJECT_(CAST|OPERATOR)\n |OPEN_TAG(_WITH_ECHO)?|OLD_FUNCTION|DNUMBER|DIR|DIV_EQUAL|DOC_COMMENT|DOUBLE_(ARROW|CAST|COLON)\n |DOLLAR_OPEN_CURLY_BRACES|DO|DEC|DECLARE|DEFAULT|USE|UNSET(_CAST)?|PRINT|PRIVATE|PROTECTED|PUBLIC\n |PLUS_EQUAL|PAAMAYIM_NEKUDOTAYIM|EXTENDS|EXIT|EMPTY|ENCAPSED_AND_WHITESPACE\n |END(SWITCH|IF|DECLARE|FOR(EACH)?|WHILE)|END_HEREDOC|ECHO|EVAL|ELSE(IF)?|VAR(IABLE)?|FINAL|FILE\n |FOR(EACH)?|FUNC_C|FUNCTION|WHITESPACE|WHILE|LNUMBER|LIST|LINE|LOGICAL_(AND|OR|XOR)\n |ARRAY_(CAST)?|ABSTRACT|AS|AND_EQUAL))\n\\b",name:"support.constant.parser-token.php",captures:{"1":{name:"punctuation.separator.inheritance.php"}}},{match:"(?i)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*",name:"constant.other.php"}]},"function-parameters":{patterns:[{include:"#attribute"},{include:"#comments"},{match:",",name:"punctuation.separator.delimiter.php"},{match:"(?xi)\n(?: (\n # nullable type\n (?:\\?\\s*)? [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ |\n # union, intersection or DNF type\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n (?: \\s*[|&]\\s*\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n )+\n) \\s+ )?\n((?:(&)\\s*)?(\\.\\.\\.)(\\$)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*) # Variable name with possible reference\n(?=\\s*(?:,|\\)|/[/*]|\\#|$)) # A closing parentheses (end of argument list) or a comma or a comment",captures:{"1":{patterns:[{include:"#php-types"}]},"2":{name:"variable.other.php"},"3":{name:"storage.modifier.reference.php"},"4":{name:"keyword.operator.variadic.php"},"5":{name:"punctuation.definition.variable.php"}},name:"meta.function.parameter.variadic.php"},{begin:"(?xi)\n(\n # nullable type\n (?:\\?\\s*)? [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ |\n # union, intersection or DNF type\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n (?: \\s*[|&]\\s*\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n )+\n)\n\\s+ ((?:(&)\\s*)?(\\$)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*) # Variable name with possible reference",beginCaptures:{"1":{patterns:[{include:"#php-types"}]},"2":{name:"variable.other.php"},"3":{name:"storage.modifier.reference.php"},"4":{name:"punctuation.definition.variable.php"}},end:"(?=\\s*(?:,|\\)|/[/*]|\\#))",name:"meta.function.parameter.typehinted.php",patterns:[{begin:"=",beginCaptures:{"0":{name:"keyword.operator.assignment.php"}},end:"(?=\\s*(?:,|\\)|/[/*]|\\#))",patterns:[{include:"#parameter-default-types"}]}]},{match:"(?xi)\n((?:(&)\\s*)?(\\$)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*) # Variable name with possible reference\n(?=\\s*(?:,|\\)|/[/*]|\\#|$)) # A closing parentheses (end of argument list) or a comma or a comment",captures:{"1":{name:"variable.other.php"},"2":{name:"storage.modifier.reference.php"},"3":{name:"punctuation.definition.variable.php"}},name:"meta.function.parameter.no-default.php"},{begin:"(?xi)\n((?:(&)\\s*)?(\\$)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*) # Variable name with possible reference\n\\s*(=)\\s*",beginCaptures:{"1":{name:"variable.other.php"},"2":{name:"storage.modifier.reference.php"},"3":{name:"punctuation.definition.variable.php"},"4":{name:"keyword.operator.assignment.php"}},end:"(?=\\s*(?:,|\\)|/[/*]|\\#))",name:"meta.function.parameter.default.php",patterns:[{include:"#parameter-default-types"}]}]},"named-arguments":{match:"(?i)(?<=^|\\(|,)\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)\\s*(:)(?!:)",captures:{"1":{name:"entity.name.variable.parameter.php"},"2":{name:"punctuation.separator.colon.php"}}},"function-call":{patterns:[{begin:"(?x)\n(\n \\\\?(?<![a-zA-Z0-9_\\x{7f}-\\x{10ffff}]) # Optional root namespace\n [a-zA-Z_\\x{7f}-\\x{10ffff}][a-zA-Z0-9_\\x{7f}-\\x{10ffff}]* # First namespace\n (?:\\\\[a-zA-Z_\\x{7f}-\\x{10ffff}][a-zA-Z0-9_\\x{7f}-\\x{10ffff}]*)+ # Additional namespaces\n)\\s*(\\()",beginCaptures:{"1":{patterns:[{include:"#namespace"},{match:"(?i)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*",name:"entity.name.function.php"}]},"2":{name:"punctuation.definition.arguments.begin.bracket.round.php"}},end:"\\)|(?=\\?>)",endCaptures:{"0":{name:"punctuation.definition.arguments.end.bracket.round.php"}},name:"meta.function-call.php",patterns:[{include:"#named-arguments"},{include:"$self"}]},{begin:"(\\\\)?(?<![a-zA-Z0-9_\\x{7f}-\\x{10ffff}])([a-zA-Z_\\x{7f}-\\x{10ffff}][a-zA-Z0-9_\\x{7f}-\\x{10ffff}]*)\\s*(\\()",beginCaptures:{"1":{patterns:[{include:"#namespace"}]},"2":{patterns:[{include:"#support"},{match:"(?i)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*",name:"entity.name.function.php"}]},"3":{name:"punctuation.definition.arguments.begin.bracket.round.php"}},end:"\\)|(?=\\?>)",endCaptures:{"0":{name:"punctuation.definition.arguments.end.bracket.round.php"}},name:"meta.function-call.php",patterns:[{include:"#named-arguments"},{include:"$self"}]},{match:"(?i)\\b(print|echo)\\b",name:"support.function.construct.output.php"}]},heredoc:{patterns:[{begin:"(?i)(?=<<<\\s*(\"?)([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)(\\1)\\s*$)",end:"(?!\\G)",name:"string.unquoted.heredoc.php",patterns:[{include:"#heredoc_interior"}]},{begin:"(?=<<<\\s*'([a-zA-Z_]+[a-zA-Z0-9_]*)'\\s*$)",end:"(?!\\G)",name:"string.unquoted.nowdoc.php",patterns:[{include:"#nowdoc_interior"}]}]},heredoc_interior:{patterns:[{begin:"(<<<)\\s*(\"?)(HTML)(\\2)(\\s*)$",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.php"},"1":{name:"punctuation.definition.string.php"},"3":{name:"keyword.operator.heredoc.php"},"5":{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"text.html",end:"^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{"0":{name:"punctuation.section.embedded.end.php"},"1":{name:"keyword.operator.heredoc.php"}},name:"meta.embedded.html",patterns:[{include:"#interpolation"},{include:"text.html.basic"}]},{begin:"(<<<)\\s*(\"?)(XML)(\\2)(\\s*)$",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.php"},"1":{name:"punctuation.definition.string.php"},"3":{name:"keyword.operator.heredoc.php"},"5":{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"text.xml",end:"^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{"0":{name:"punctuation.section.embedded.end.php"},"1":{name:"keyword.operator.heredoc.php"}},name:"meta.embedded.xml",patterns:[{include:"#interpolation"},{include:"text.xml"}]},{begin:"(<<<)\\s*(\"?)([DS]QL)(\\2)(\\s*)$",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.php"},"1":{name:"punctuation.definition.string.php"},"3":{name:"keyword.operator.heredoc.php"},"5":{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"source.sql",end:"^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{"0":{name:"punctuation.section.embedded.end.php"},"1":{name:"keyword.operator.heredoc.php"}},name:"meta.embedded.sql",patterns:[{include:"#interpolation"},{include:"source.sql"}]},{begin:"(<<<)\\s*(\"?)(JAVASCRIPT|JS)(\\2)(\\s*)$",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.php"},"1":{name:"punctuation.definition.string.php"},"3":{name:"keyword.operator.heredoc.php"},"5":{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"source.js",end:"^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{"0":{name:"punctuation.section.embedded.end.php"},"1":{name:"keyword.operator.heredoc.php"}},name:"meta.embedded.js",patterns:[{include:"#interpolation"},{include:"source.js"}]},{begin:"(<<<)\\s*(\"?)(JSON)(\\2)(\\s*)$",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.php"},"1":{name:"punctuation.definition.string.php"},"3":{name:"keyword.operator.heredoc.php"},"5":{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"source.json",end:"^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{"0":{name:"punctuation.section.embedded.end.php"},"1":{name:"keyword.operator.heredoc.php"}},name:"meta.embedded.json",patterns:[{include:"#interpolation"},{include:"source.json"}]},{begin:"(<<<)\\s*(\"?)(CSS)(\\2)(\\s*)$",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.php"},"1":{name:"punctuation.definition.string.php"},"3":{name:"keyword.operator.heredoc.php"},"5":{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"source.css",end:"^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{"0":{name:"punctuation.section.embedded.end.php"},"1":{name:"keyword.operator.heredoc.php"}},name:"meta.embedded.css",patterns:[{include:"#interpolation"},{include:"source.css"}]},{begin:"(<<<)\\s*(\"?)(REGEXP?)(\\2)(\\s*)$",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.php"},"1":{name:"punctuation.definition.string.php"},"3":{name:"keyword.operator.heredoc.php"},"5":{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"string.regexp.heredoc.php",end:"^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{"0":{name:"punctuation.section.embedded.end.php"},"1":{name:"keyword.operator.heredoc.php"}},patterns:[{include:"#interpolation"},{match:"(\\\\){1,2}[.$^\\[\\]{}]",name:"constant.character.escape.regex.php"},{captures:{"1":{name:"punctuation.definition.arbitrary-repitition.php"},"3":{name:"punctuation.definition.arbitrary-repitition.php"}},match:"({)\\d+(,\\d+)?(})",name:"string.regexp.arbitrary-repitition.php"},{begin:"\\[(?:\\^?\\])?",captures:{"0":{name:"punctuation.definition.character-class.php"}},end:"\\]",name:"string.regexp.character-class.php",patterns:[{match:"\\\\[\\\\'\\[\\]]",name:"constant.character.escape.php"}]},{match:"[$^+*]",name:"keyword.operator.regexp.php"},{begin:"(?i)(?<=^|\\s)(#)\\s(?=[[a-z0-9_\\x{7f}-\\x{10ffff},. \\t?!-][^\\x{00}-\\x{7f}]]*$)",beginCaptures:{"1":{name:"punctuation.definition.comment.php"}},end:"$",endCaptures:{"0":{name:"punctuation.definition.comment.php"}},name:"comment.line.number-sign.php"}]},{begin:"(<<<)\\s*(\"?)(BLADE)(\\2)(\\s*)$",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.php"},"1":{name:"punctuation.definition.string.php"},"3":{name:"keyword.operator.heredoc.php"},"5":{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"text.html.php.blade",end:"^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{"0":{name:"punctuation.section.embedded.end.php"},"1":{name:"keyword.operator.heredoc.php"}},name:"meta.embedded.php.blade",patterns:[{include:"#interpolation"}]},{begin:"(?i)(<<<)\\s*(\"?)([a-z_\\x{7f}-\\x{10ffff}]+[a-z0-9_\\x{7f}-\\x{10ffff}]*)(\\2)(\\s*)",beginCaptures:{"1":{name:"punctuation.definition.string.php"},"3":{name:"keyword.operator.heredoc.php"},"5":{name:"invalid.illegal.trailing-whitespace.php"}},end:"^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{"1":{name:"keyword.operator.heredoc.php"}},patterns:[{include:"#interpolation"}]}]},nowdoc_interior:{patterns:[{begin:"(<<<)\\s*'(HTML)'(\\s*)$",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.php"},"1":{name:"punctuation.definition.string.php"},"2":{name:"keyword.operator.nowdoc.php"},"3":{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"text.html",end:"^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{"0":{name:"punctuation.section.embedded.end.php"},"1":{name:"keyword.operator.nowdoc.php"}},name:"meta.embedded.html",patterns:[{include:"text.html.basic"}]},{begin:"(<<<)\\s*'(XML)'(\\s*)$",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.php"},"1":{name:"punctuation.definition.string.php"},"2":{name:"keyword.operator.nowdoc.php"},"3":{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"text.xml",end:"^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{"0":{name:"punctuation.section.embedded.end.php"},"1":{name:"keyword.operator.nowdoc.php"}},name:"meta.embedded.xml",patterns:[{include:"text.xml"}]},{begin:"(<<<)\\s*'([DS]QL)'(\\s*)$",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.php"},"1":{name:"punctuation.definition.string.php"},"2":{name:"keyword.operator.nowdoc.php"},"3":{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"source.sql",end:"^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{"0":{name:"punctuation.section.embedded.end.php"},"1":{name:"keyword.operator.nowdoc.php"}},name:"meta.embedded.sql",patterns:[{include:"source.sql"}]},{begin:"(<<<)\\s*'(JAVASCRIPT|JS)'(\\s*)$",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.php"},"1":{name:"punctuation.definition.string.php"},"2":{name:"keyword.operator.nowdoc.php"},"3":{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"source.js",end:"^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{"0":{name:"punctuation.section.embedded.end.php"},"1":{name:"keyword.operator.nowdoc.php"}},name:"meta.embedded.js",patterns:[{include:"source.js"}]},{begin:"(<<<)\\s*'(JSON)'(\\s*)$",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.php"},"1":{name:"punctuation.definition.string.php"},"2":{name:"keyword.operator.nowdoc.php"},"3":{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"source.json",end:"^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{"0":{name:"punctuation.section.embedded.end.php"},"1":{name:"keyword.operator.nowdoc.php"}},name:"meta.embedded.json",patterns:[{include:"source.json"}]},{begin:"(<<<)\\s*'(CSS)'(\\s*)$",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.php"},"1":{name:"punctuation.definition.string.php"},"2":{name:"keyword.operator.nowdoc.php"},"3":{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"source.css",end:"^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{"0":{name:"punctuation.section.embedded.end.php"},"1":{name:"keyword.operator.nowdoc.php"}},name:"meta.embedded.css",patterns:[{include:"source.css"}]},{begin:"(<<<)\\s*'(REGEXP?)'(\\s*)$",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.php"},"1":{name:"punctuation.definition.string.php"},"2":{name:"keyword.operator.nowdoc.php"},"3":{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"string.regexp.nowdoc.php",end:"^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{"0":{name:"punctuation.section.embedded.end.php"},"1":{name:"keyword.operator.nowdoc.php"}},patterns:[{match:"(\\\\){1,2}[.$^\\[\\]{}]",name:"constant.character.escape.regex.php"},{captures:{"1":{name:"punctuation.definition.arbitrary-repitition.php"},"3":{name:"punctuation.definition.arbitrary-repitition.php"}},match:"({)\\d+(,\\d+)?(})",name:"string.regexp.arbitrary-repitition.php"},{begin:"\\[(?:\\^?\\])?",captures:{"0":{name:"punctuation.definition.character-class.php"}},end:"\\]",name:"string.regexp.character-class.php",patterns:[{match:"\\\\[\\\\'\\[\\]]",name:"constant.character.escape.php"}]},{match:"[$^+*]",name:"keyword.operator.regexp.php"},{begin:"(?i)(?<=^|\\s)(#)\\s(?=[[a-z0-9_\\x{7f}-\\x{10ffff},. \\t?!-][^\\x{00}-\\x{7f}]]*$)",beginCaptures:{"1":{name:"punctuation.definition.comment.php"}},end:"$",endCaptures:{"0":{name:"punctuation.definition.comment.php"}},name:"comment.line.number-sign.php"}]},{begin:"(<<<)\\s*'(BLADE)'(\\s*)$",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.php"},"1":{name:"punctuation.definition.string.php"},"2":{name:"keyword.operator.nowdoc.php"},"3":{name:"invalid.illegal.trailing-whitespace.php"}},contentName:"text.html.php.blade",end:"^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{"0":{name:"punctuation.section.embedded.end.php"},"1":{name:"keyword.operator.nowdoc.php"}},name:"meta.embedded.php.blade"},{begin:"(?i)(<<<)\\s*'([a-z_\\x{7f}-\\x{10ffff}]+[a-z0-9_\\x{7f}-\\x{10ffff}]*)'(\\s*)",beginCaptures:{"1":{name:"punctuation.definition.string.php"},"2":{name:"keyword.operator.nowdoc.php"},"3":{name:"invalid.illegal.trailing-whitespace.php"}},end:"^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])",endCaptures:{"1":{name:"keyword.operator.nowdoc.php"}}}]},instantiation:{begin:"(?i)(new)\\s+(?!class\\b)",beginCaptures:{"1":{name:"keyword.other.new.php"}},end:"(?i)(?=[^a-z0-9_\\x{7f}-\\x{10ffff}\\\\])",patterns:[{match:"(?i)(parent|static|self)(?![a-z0-9_\\x{7f}-\\x{10ffff}])",name:"storage.type.php"},{include:"#class-name"},{include:"#variable-name"}]},interpolation:{patterns:[{match:"\\\\[0-7]{1,3}",name:"constant.character.escape.octal.php"},{match:"\\\\x[0-9A-Fa-f]{1,2}",name:"constant.character.escape.hex.php"},{match:"\\\\u{[0-9A-Fa-f]+}",name:"constant.character.escape.unicode.php"},{match:"\\\\[nrtvef$\\\\]",name:"constant.character.escape.php"},{begin:"{(?=\\$.*?})",beginCaptures:{"0":{name:"punctuation.definition.variable.php"}},end:"}",endCaptures:{"0":{name:"punctuation.definition.variable.php"}},patterns:[{include:"$self"}]},{include:"#variable-name"}]},interpolation_double_quoted:{patterns:[{match:"\\\\\"",name:"constant.character.escape.php"},{include:"#interpolation"}]},"invoke-call":{captures:{"1":{name:"variable.other.php"},"2":{name:"punctuation.definition.variable.php"}},match:"(?i)((\\$+)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)(?=\\s*\\()",name:"meta.function-call.invoke.php"},namespace:{begin:"(?i)(?:(namespace)|[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)?(\\\\)",beginCaptures:{"1":{name:"variable.language.namespace.php"},"2":{name:"punctuation.separator.inheritance.php"}},end:"(?i)(?![a-z0-9_\\x{7f}-\\x{10ffff}]*\\\\)",name:"support.other.namespace.php",patterns:[{match:"\\\\",name:"punctuation.separator.inheritance.php"}]},numbers:{patterns:[{match:"0[xX][0-9a-fA-F]+(?:_[0-9a-fA-F]+)*",name:"constant.numeric.hex.php"},{match:"0[bB][01]+(?:_[01]+)*",name:"constant.numeric.binary.php"},{match:"0[oO][0-7]+(?:_[0-7]+)*",name:"constant.numeric.octal.php"},{match:"0(?:_?[0-7]+)+",name:"constant.numeric.octal.php"},{match:"(?x)\n(?:\n (?:[0-9]+(?:_[0-9]+)*)?(\\.)[0-9]+(?:_[0-9]+)*(?:[eE][+-]?[0-9]+(?:_[0-9]+)*)?| # .3\n [0-9]+(?:_[0-9]+)*(\\.)(?:[0-9]+(?:_[0-9]+)*)?(?:[eE][+-]?[0-9]+(?:_[0-9]+)*)?| # 3.\n [0-9]+(?:_[0-9]+)*[eE][+-]?[0-9]+(?:_[0-9]+)* # 2e-3\n)",name:"constant.numeric.decimal.php",captures:{"1":{name:"punctuation.separator.decimal.period.php"},"2":{name:"punctuation.separator.decimal.period.php"}}},{match:"0|[1-9](?:_?[0-9]+)*",name:"constant.numeric.decimal.php"}]},object:{patterns:[{begin:"(\\??->)\\s*(\\$?{)",beginCaptures:{"1":{name:"keyword.operator.class.php"},"2":{name:"punctuation.definition.variable.php"}},end:"}",endCaptures:{"0":{name:"punctuation.definition.variable.php"}},patterns:[{include:"$self"}]},{begin:"(?i)(\\??->)\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)\\s*(\\()",beginCaptures:{"1":{name:"keyword.operator.class.php"},"2":{name:"entity.name.function.php"},"3":{name:"punctuation.definition.arguments.begin.bracket.round.php"}},end:"\\)|(?=\\?>)",endCaptures:{"0":{name:"punctuation.definition.arguments.end.bracket.round.php"}},name:"meta.method-call.php",patterns:[{include:"#named-arguments"},{include:"$self"}]},{captures:{"1":{name:"keyword.operator.class.php"},"2":{name:"variable.other.property.php"},"3":{name:"punctuation.definition.variable.php"}},match:"(?i)(\\??->)\\s*((\\$+)?[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)?"}]},"php-types":{patterns:[{match:"\\?",name:"keyword.operator.nullable-type.php"},{match:"[|&]",name:"punctuation.separator.delimiter.php"},{match:"(?i)\\b(null|int|float|bool|string|array|object|callable|iterable|true|false|mixed|void)\\b",name:"keyword.other.type.php"},{match:"(?i)\\b(parent|self)\\b",name:"storage.type.php"},{match:"\\(",name:"punctuation.definition.type.begin.bracket.round.php"},{match:"\\)",name:"punctuation.definition.type.end.bracket.round.php"},{include:"#class-name"}]},"parameter-default-types":{patterns:[{include:"#strings"},{include:"#numbers"},{include:"#string-backtick"},{include:"#variables"},{match:"=>",name:"keyword.operator.key.php"},{match:"=",name:"keyword.operator.assignment.php"},{match:"&(?=\\s*\\$)",name:"storage.modifier.reference.php"},{begin:"(array)\\s*(\\()",beginCaptures:{"1":{name:"support.function.construct.php"},"2":{name:"punctuation.definition.array.begin.bracket.round.php"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.array.end.bracket.round.php"}},name:"meta.array.php",patterns:[{include:"#parameter-default-types"}]},{begin:"\\[",beginCaptures:{"0":{name:"punctuation.section.array.begin.php"}},end:"\\]|(?=\\?>)",endCaptures:{"0":{name:"punctuation.section.array.end.php"}},patterns:[{include:"$self"}]},{include:"#instantiation"},{begin:"(?xi)\n(?=[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+\n (::)\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)?\n)",end:"(?i)(::)\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)?",endCaptures:{"1":{name:"keyword.operator.class.php"},"2":{name:"constant.other.class.php"}},patterns:[{include:"#class-name"}]},{include:"#constants"}]},php_doc:{patterns:[{match:"^(?!\\s*\\*).*?(?:(?=\\*\\/)|$\\n?)",name:"invalid.illegal.missing-asterisk.phpdoc.php"},{captures:{"1":{name:"keyword.other.phpdoc.php"},"3":{name:"storage.modifier.php"},"4":{name:"invalid.illegal.wrong-access-type.phpdoc.php"}},match:"^\\s*\\*\\s*(@access)\\s+((public|private|protected)|(.+))\\s*$"},{captures:{"1":{name:"keyword.other.phpdoc.php"},"2":{name:"markup.underline.link.php"}},match:"(@xlink)\\s+(.+)\\s*$"},{begin:"(@(?:global|param|property(-(read|write))?|return|throws|var))\\s+(?=[?A-Za-z_\\x{7f}-\\x{10ffff}\\\\]|\\()",beginCaptures:{"1":{name:"keyword.other.phpdoc.php"}},end:"(?=\\s|\\*/)",contentName:"meta.other.type.phpdoc.php",patterns:[{include:"#php_doc_types_array_multiple"},{include:"#php_doc_types_array_single"},{include:"#php_doc_types"}]},{match:"(?x)\n@\n(\n api|abstract|author|category|copyright|example|global|inherit[Dd]oc|internal|\n license|link|method|property(-(read|write))?|package|param|return|see|since|source|\n static|subpackage|throws|todo|var|version|uses|deprecated|final|ignore\n)\\b",name:"keyword.other.phpdoc.php"},{captures:{"1":{name:"keyword.other.phpdoc.php"}},match:"{(@(link|inherit[Dd]oc)).+?}",name:"meta.tag.inline.phpdoc.php"}]},php_doc_types:{match:"(?i)\\??[a-z_\\x{7f}-\\x{10ffff}\\\\][a-z0-9_\\x{7f}-\\x{10ffff}\\\\]*([|&]\\??[a-z_\\x{7f}-\\x{10ffff}\\\\][a-z0-9_\\x{7f}-\\x{10ffff}\\\\]*)*",captures:{"0":{patterns:[{match:"\\?",name:"keyword.operator.nullable-type.php"},{match:"(?x)\\b\n(string|integer|int|boolean|bool|float|double|object|mixed\n|array|resource|void|null|callback|false|true|self|static)\\b",name:"keyword.other.type.php"},{include:"#class-name"},{match:"[|&]",name:"punctuation.separator.delimiter.php"},{match:"\\(",name:"punctuation.definition.type.begin.bracket.round.php"},{match:"\\)",name:"punctuation.definition.type.end.bracket.round.php"}]}}},php_doc_types_array_multiple:{begin:"\\(",beginCaptures:{"0":{name:"punctuation.definition.type.begin.bracket.round.phpdoc.php"}},end:"(\\))(\\[\\])|(?=\\*/)",endCaptures:{"1":{name:"punctuation.definition.type.end.bracket.round.phpdoc.php"},"2":{name:"keyword.other.array.phpdoc.php"}},patterns:[{include:"#php_doc_types_array_multiple"},{include:"#php_doc_types_array_single"},{include:"#php_doc_types"},{match:"[|&]",name:"punctuation.separator.delimiter.php"}]},php_doc_types_array_single:{match:"(?i)([a-z_\\x{7f}-\\x{10ffff}\\\\][a-z0-9_\\x{7f}-\\x{10ffff}\\\\]*)(\\[\\])",captures:{"1":{patterns:[{include:"#php_doc_types"}]},"2":{name:"keyword.other.array.phpdoc.php"}}},"regex-double-quoted":{begin:"\"/(?=(\\\\.|[^\"/])++/[imsxeADSUXu]*\")",beginCaptures:{"0":{name:"punctuation.definition.string.begin.php"}},end:"(/)([imsxeADSUXu]*)(\")",endCaptures:{"0":{name:"punctuation.definition.string.end.php"}},name:"string.regexp.double-quoted.php",patterns:[{match:"(\\\\){1,2}[.$^\\[\\]{}]",name:"constant.character.escape.regex.php"},{include:"#interpolation_double_quoted"},{captures:{"1":{name:"punctuation.definition.arbitrary-repetition.php"},"3":{name:"punctuation.definition.arbitrary-repetition.php"}},match:"({)\\d+(,\\d+)?(})",name:"string.regexp.arbitrary-repetition.php"},{begin:"\\[(?:\\^?\\])?",captures:{"0":{name:"punctuation.definition.character-class.php"}},end:"\\]",name:"string.regexp.character-class.php",patterns:[{include:"#interpolation_double_quoted"}]},{match:"[$^+*]",name:"keyword.operator.regexp.php"}]},"regex-single-quoted":{begin:"'/(?=(\\\\(?:\\\\(?:\\\\[\\\\']?|[^'])|.)|[^'/])++/[imsxeADSUXu]*')",beginCaptures:{"0":{name:"punctuation.definition.string.begin.php"}},end:"(/)([imsxeADSUXu]*)(')",endCaptures:{"0":{name:"punctuation.definition.string.end.php"}},name:"string.regexp.single-quoted.php",patterns:[{include:"#single_quote_regex_escape"},{captures:{"1":{name:"punctuation.definition.arbitrary-repetition.php"},"3":{name:"punctuation.definition.arbitrary-repetition.php"}},match:"({)\\d+(,\\d+)?(})",name:"string.regexp.arbitrary-repetition.php"},{begin:"\\[(?:\\^?\\])?",captures:{"0":{name:"punctuation.definition.character-class.php"}},end:"\\]",name:"string.regexp.character-class.php"},{match:"[$^+*]",name:"keyword.operator.regexp.php"}]},"scope-resolution":{patterns:[{match:"([A-Za-z_\\x{7f}-\\x{10ffff}\\\\][A-Za-z0-9_\\x{7f}-\\x{10ffff}\\\\]*)(?=\\s*::)",captures:{"1":{patterns:[{match:"\\b(self|static|parent)\\b",name:"storage.type.php"},{include:"#class-name"},{include:"#variable-name"}]}}},{begin:"(?i)(::)\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)\\s*(\\()",beginCaptures:{"1":{name:"keyword.operator.class.php"},"2":{name:"entity.name.function.php"},"3":{name:"punctuation.definition.arguments.begin.bracket.round.php"}},end:"\\)|(?=\\?>)",endCaptures:{"0":{name:"punctuation.definition.arguments.end.bracket.round.php"}},name:"meta.method-call.static.php",patterns:[{include:"#named-arguments"},{include:"$self"}]},{match:"(?i)(::)\\s*(class)\\b",captures:{"1":{name:"keyword.operator.class.php"},"2":{name:"keyword.other.class.php"}}},{match:"(?xi)\n(::)\\s*\n(?:\n ((\\$+)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*) # Variable\n |\n ([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*) # Constant\n)?",captures:{"1":{name:"keyword.operator.class.php"},"2":{name:"variable.other.class.php"},"3":{name:"punctuation.definition.variable.php"},"4":{name:"constant.other.class.php"}}}]},single_quote_regex_escape:{match:"\\\\(?:\\\\(?:\\\\[\\\\']?|[^'])|.)",name:"constant.character.escape.php"},"sql-string-double-quoted":{begin:"\"\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER|AND|WITH)\\b)",beginCaptures:{"0":{name:"punctuation.definition.string.begin.php"}},contentName:"source.sql.embedded.php",end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.php"}},name:"string.quoted.double.sql.php",patterns:[{match:"(#)(\\\\\"|[^\"])*(?=\"|$)",name:"comment.line.number-sign.sql",captures:{"1":{name:"punctuation.definition.comment.sql"}}},{match:"(--)(\\\\\"|[^\"])*(?=\"|$)",name:"comment.line.double-dash.sql",captures:{"1":{name:"punctuation.definition.comment.sql"}}},{match:"\\\\[\\\\\"`']",name:"constant.character.escape.php"},{match:"'(?=((\\\\')|[^'\"])*(\"|$))",name:"string.quoted.single.unclosed.sql"},{match:"`(?=((\\\\`)|[^`\"])*(\"|$))",name:"string.quoted.other.backtick.unclosed.sql"},{begin:"'",end:"'",name:"string.quoted.single.sql",patterns:[{include:"#interpolation_double_quoted"}]},{begin:"`",end:"`",name:"string.quoted.other.backtick.sql",patterns:[{include:"#interpolation_double_quoted"}]},{include:"#interpolation_double_quoted"},{include:"source.sql"}]},"sql-string-single-quoted":{begin:"'\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER|AND|WITH)\\b)",beginCaptures:{"0":{name:"punctuation.definition.string.begin.php"}},contentName:"source.sql.embedded.php",end:"'",endCaptures:{"0":{name:"punctuation.definition.string.end.php"}},name:"string.quoted.single.sql.php",patterns:[{match:"(#)(\\\\'|[^'])*(?='|$)",name:"comment.line.number-sign.sql",captures:{"1":{name:"punctuation.definition.comment.sql"}}},{match:"(--)(\\\\'|[^'])*(?='|$)",name:"comment.line.double-dash.sql",captures:{"1":{name:"punctuation.definition.comment.sql"}}},{match:"\\\\[\\\\'`\"]",name:"constant.character.escape.php"},{match:"`(?=((\\\\`)|[^`'])*('|$))",name:"string.quoted.other.backtick.unclosed.sql"},{match:"\"(?=((\\\\\")|[^\"'])*('|$))",name:"string.quoted.double.unclosed.sql"},{include:"source.sql"}]},"string-backtick":{begin:"`",beginCaptures:{"0":{name:"punctuation.definition.string.begin.php"}},end:"`",endCaptures:{"0":{name:"punctuation.definition.string.end.php"}},name:"string.interpolated.php",patterns:[{match:"\\\\`",name:"constant.character.escape.php"},{include:"#interpolation"}]},"string-double-quoted":{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.php"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.php"}},name:"string.quoted.double.php",patterns:[{include:"#interpolation_double_quoted"}]},"string-single-quoted":{begin:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.php"}},end:"'",endCaptures:{"0":{name:"punctuation.definition.string.end.php"}},name:"string.quoted.single.php",patterns:[{match:"\\\\[\\\\']",name:"constant.character.escape.php"}]},strings:{patterns:[{include:"#regex-double-quoted"},{include:"#sql-string-double-quoted"},{include:"#string-double-quoted"},{include:"#regex-single-quoted"},{include:"#sql-string-single-quoted"},{include:"#string-single-quoted"}]},support:{patterns:[{match:"(?xi)\n\\b\napc_(\n store|sma_info|compile_file|clear_cache|cas|cache_info|inc|dec|define_constants|delete(_file)?|\n exists|fetch|load_constants|add|bin_(dump|load)(file)?\n)\\b",name:"support.function.apc.php"},{match:"(?xi)\\b\n(\n shuffle|sizeof|sort|next|nat(case)?sort|count|compact|current|in_array|usort|uksort|uasort|\n pos|prev|end|each|extract|ksort|key(_exists)?|krsort|list|asort|arsort|rsort|reset|range|\n array(_(shift|sum|splice|search|slice|chunk|change_key_case|count_values|column|combine|\n (diff|intersect)(_(u)?(key|assoc))?|u(diff|intersect)(_(u)?assoc)?|unshift|unique|\n pop|push|pad|product|values|keys|key_exists|filter|fill(_keys)?|flip|walk(_recursive)?|\n reduce|replace(_recursive)?|reverse|rand|multisort|merge(_recursive)?|map)?)\n)\\b",name:"support.function.array.php"},{match:"(?xi)\\b\n(\n show_source|sys_getloadavg|sleep|highlight_(file|string)|constant|connection_(aborted|status)|\n time_(nanosleep|sleep_until)|ignore_user_abort|die|define(d)?|usleep|uniqid|unpack|__halt_compiler|\n php_(check_syntax|strip_whitespace)|pack|eval|exit|get_browser\n)\\b",name:"support.function.basic_functions.php"},{match:"(?i)\\bbc(scale|sub|sqrt|comp|div|pow(mod)?|add|mod|mul)\\b",name:"support.function.bcmath.php"},{match:"(?i)\\bblenc_encrypt\\b",name:"support.function.blenc.php"},{match:"(?i)\\bbz(compress|close|open|decompress|errstr|errno|error|flush|write|read)\\b",name:"support.function.bz2.php"},{match:"(?xi)\\b\n(\n (French|Gregorian|Jewish|Julian)ToJD|cal_(to_jd|info|days_in_month|from_jd)|unixtojd|\n jdto(unix|jewish)|easter_(date|days)|JD(MonthName|To(Gregorian|Julian|French)|DayOfWeek)\n)\\b",name:"support.function.calendar.php"},{match:"(?xi)\\b\n(\n class_alias|all_user_method(_array)?|is_(a|subclass_of)|__autoload|(class|interface|method|property|trait)_exists|\n get_(class(_(vars|methods))?|(called|parent)_class|object_vars|declared_(classes|interfaces|traits))\n)\\b",name:"support.function.classobj.php"},{match:"(?xi)\\b\n(\n com_(create_guid|print_typeinfo|event_sink|load_typelib|get_active_object|message_pump)|\n variant_(sub|set(_type)?|not|neg|cast|cat|cmp|int|idiv|imp|or|div|date_(from|to)_timestamp|\n pow|eqv|fix|and|add|abs|round|get_type|xor|mod|mul)\n)\\b",name:"support.function.com.php"},{match:"(?i)\\b(isset|unset|eval|empty|list)\\b",name:"support.function.construct.php"},{match:"(?i)\\b(print|echo)\\b",name:"support.function.construct.output.php"},{match:"(?i)\\bctype_(space|cntrl|digit|upper|punct|print|lower|alnum|alpha|graph|xdigit)\\b",name:"support.function.ctype.php"},{match:"(?xi)\\b\ncurl_(\n share_(close|init|setopt)|strerror|setopt(_array)?|copy_handle|close|init|unescape|pause|escape|\n errno|error|exec|version|file_create|reset|getinfo|\n multi_(strerror|setopt|select|close|init|info_read|(add|remove)_handle|getcontent|exec)\n)\\b",name:"support.function.curl.php"},{match:"(?xi)\\b\n(\n strtotime|str[fp]time|checkdate|time|timezone_name_(from_abbr|get)|idate|\n timezone_((location|offset|transitions|version)_get|(abbreviations|identifiers)_list|open)|\n date(_(sun(rise|set)|sun_info|sub|create(_(immutable_)?from_format)?|timestamp_(get|set)|timezone_(get|set)|time_set|\n isodate_set|interval_(create_from_date_string|format)|offset_get|diff|default_timezone_(get|set)|date_set|\n parse(_from_format)?|format|add|get_last_errors|modify))?|\n localtime|get(date|timeofday)|gm(strftime|date|mktime)|microtime|mktime\n)\\b",name:"support.function.datetime.php"},{match:"(?i)\\bdba_(sync|handlers|nextkey|close|insert|optimize|open|delete|popen|exists|key_split|firstkey|fetch|list|replace)\\b",name:"support.function.dba.php"},{match:"(?i)\\bdbx_(sort|connect|compare|close|escape_string|error|query|fetch_row)\\b",name:"support.function.dbx.php"},{match:"(?i)\\b(scandir|chdir|chroot|closedir|opendir|dir|rewinddir|readdir|getcwd)\\b",name:"support.function.dir.php"},{match:"(?xi)\\b\neio_(\n sync(fs)?|sync_file_range|symlink|stat(vfs)?|sendfile|set_min_parallel|set_max_(idle|poll_(reqs|time)|parallel)|\n seek|n(threads|op|pending|reqs|ready)|chown|chmod|custom|close|cancel|truncate|init|open|dup2|unlink|utime|poll|\n event_loop|f(sync|stat(vfs)?|chown|chmod|truncate|datasync|utime|allocate)|write|lstat|link|rename|realpath|\n read(ahead|dir|link)?|rmdir|get_(event_stream|last_error)|grp(_(add|cancel|limit))?|mknod|mkdir|busy\n)\\b",name:"support.function.eio.php"},{match:"(?xi)\\b\nenchant_(\n dict_(store_replacement|suggest|check|is_in_session|describe|quick_check|add_to_(personal|session)|get_error)|\n broker_(set_ordering|init|dict_exists|describe|free(_dict)?|list_dicts|request_(pwl_)?dict|get_error)\n)\\b",name:"support.function.enchant.php"},{match:"(?i)\\b(split(i)?|sql_regcase|ereg(i)?(_replace)?)\\b",name:"support.function.ereg.php"},{match:"(?i)\\b((restore|set)_(error_handler|exception_handler)|trigger_error|debug_(print_)?backtrace|user_error|error_(log|reporting|get_last))\\b",name:"support.function.errorfunc.php"},{match:"(?i)\\b(shell_exec|system|passthru|proc_(nice|close|terminate|open|get_status)|escapeshell(arg|cmd)|exec)\\b",name:"support.function.exec.php"},{match:"(?i)\\b(exif_(thumbnail|tagname|imagetype|read_data)|read_exif_data)\\b",name:"support.function.exif.php"},{match:"(?xi)\\b\nfann_(\n (duplicate|length|merge|shuffle|subset)_train_data|scale_(train(_data)?|(input|output)(_train_data)?)|\n set_(scaling_params|sarprop_(step_error_(shift|threshold_factor)|temperature|weight_decay_shift)|\n cascade_(num_candidate_groups|candidate_(change_fraction|limit|stagnation_epochs)|\n output_(change_fraction|stagnation_epochs)|weight_multiplier|activation_(functions|steepnesses)|\n (max|min)_(cand|out)_epochs)|\n callback|training_algorithm|train_(error|stop)_function|(input|output)_scaling_params|error_log|\n quickprop_(decay|mu)|weight(_array)?|learning_(momentum|rate)|bit_fail_limit|\n activation_(function|steepness)(_(hidden|layer|output))?|\n rprop_((decrease|increase)_factor|delta_(max|min|zero)))|\n save(_train)?|num_(input|output)_train_data|copy|clear_scaling_params|cascadetrain_on_(file|data)|\n create_((sparse|shortcut|standard)(_array)?|train(_from_callback)?|from_file)|\n test(_data)?|train(_(on_(file|data)|epoch))?|init_weights|descale_(input|output|train)|destroy(_train)?|\n print_error|run|reset_(MSE|err(no|str))|read_train_from_file|randomize_weights|\n get_(sarprop_(step_error_(shift|threshold_factor)|temperature|weight_decay_shift)|num_(input|output|layers)|\n network_type|MSE|connection_(array|rate)|bias_array|bit_fail(_limit)?|\n cascade_(num_(candidates|candidate_groups)|(candidate|output)_(change_fraction|limit|stagnation_epochs)|\n weight_multiplier|activation_(functions|steepnesses)(_count)?|(max|min)_(cand|out)_epochs)|\n total_(connections|neurons)|training_algorithm|train_(error|stop)_function|err(no|str)|\n quickprop_(decay|mu)|learning_(momentum|rate)|layer_array|activation_(function|steepness)|\n rprop_((decrease|increase)_factor|delta_(max|min|zero)))\n)\\b",name:"support.function.fann.php"},{match:"(?xi)\\b\n(\n symlink|stat|set_file_buffer|chown|chgrp|chmod|copy|clearstatcache|touch|tempnam|tmpfile|\n is_(dir|(uploaded_)?file|executable|link|readable|writ(e)?able)|disk_(free|total)_space|diskfreespace|\n dirname|delete|unlink|umask|pclose|popen|pathinfo|parse_ini_(file|string)|fscanf|fstat|fseek|fnmatch|\n fclose|ftell|ftruncate|file(size|[acm]time|type|inode|owner|perms|group)?|file_(exists|(get|put)_contents)|\n f(open|puts|putcsv|passthru|eof|flush|write|lock|read|gets(s)?|getc(sv)?)|lstat|lchown|lchgrp|link(info)?|\n rename|rewind|read(file|link)|realpath(_cache_(get|size))?|rmdir|glob|move_uploaded_file|mkdir|basename\n)\\b",name:"support.function.file.php"},{match:"(?i)\\b(finfo_(set_flags|close|open|file|buffer)|mime_content_type)\\b",name:"support.function.fileinfo.php"},{match:"(?i)\\bfilter_(has_var|input(_array)?|id|var(_array)?|list)\\b",name:"support.function.filter.php"},{match:"(?i)\\bfastcgi_finish_request\\b",name:"support.function.fpm.php"},{match:"(?i)\\b(call_user_(func|method)(_array)?|create_function|unregister_tick_function|forward_static_call(_array)?|function_exists|func_(num_args|get_arg(s)?)|register_(shutdown|tick)_function|get_defined_functions)\\b",name:"support.function.funchand.php"},{match:"(?i)\\b((n)?gettext|textdomain|d((n)?gettext|c(n)?gettext)|bind(textdomain|_textdomain_codeset))\\b",name:"support.function.gettext.php"},{match:"(?xi)\\b\ngmp_(\n scan[01]|strval|sign|sub|setbit|sqrt(rem)?|hamdist|neg|nextprime|com|clrbit|cmp|testbit|\n intval|init|invert|import|or|div(exact)?|div_(q|qr|r)|jacobi|popcount|pow(m)?|perfect_square|\n prob_prime|export|fact|legendre|and|add|abs|root(rem)?|random(_(bits|range))?|gcd(ext)?|xor|mod|mul\n)\\b",name:"support.function.gmp.php"},{match:"(?i)\\bhash(_(hmac(_file)?|copy|init|update(_(file|stream))?|pbkdf2|equals|file|final|algos))?\\b",name:"support.function.hash.php"},{match:"(?xi)\\b\n(\n http_(support|send_(status|stream|content_(disposition|type)|data|file|last_modified)|head|\n negotiate_(charset|content_type|language)|chunked_decode|cache_(etag|last_modified)|throttle|\n inflate|deflate|date|post_(data|fields)|put_(data|file|stream)|persistent_handles_(count|clean|ident)|\n parse_(cookie|headers|message|params)|redirect|request(_(method_(exists|name|(un)?register)|body_encode))?|\n get(_request_(headers|body(_stream)?))?|match_(etag|modified|request_header)|build_(cookie|str|url))|\n ob_(etag|deflate|inflate)handler\n)\\b",name:"support.function.http.php"},{match:"(?i)\\b(iconv(_(str(pos|len|rpos)|substr|(get|set)_encoding|mime_(decode(_headers)?|encode)))?|ob_iconv_handler)\\b",name:"support.function.iconv.php"},{match:"(?i)\\biis_((start|stop)_(service|server)|set_(script_map|server_rights|dir_security|app_settings)|(add|remove)_server|get_(script_map|service_state|server_(rights|by_(comment|path))|dir_security))\\b",name:"support.function.iisfunc.php"},{match:"(?xi)\\b\n(\n iptc(embed|parse)|(jpeg|png)2wbmp|gd_info|getimagesize(fromstring)?|\n image(s[xy]|scale|(char|string)(up)?|set(style|thickness|tile|interpolation|pixel|brush)|savealpha|\n convolution|copy(resampled|resized|merge(gray)?)?|colors(forindex|total)|\n color(set|closest(alpha|hwb)?|transparent|deallocate|(allocate|exact|resolve)(alpha)?|at|match)|\n crop(auto)?|create(truecolor|from(string|jpeg|png|wbmp|webp|gif|gd(2(part)?)?|xpm|xbm))?|\n types|ttf(bbox|text)|truecolortopalette|istruecolor|interlace|2wbmp|destroy|dashedline|jpeg|\n _type_to_(extension|mime_type)|ps(slantfont|text|(encode|extend|free|load)font|bbox)|png|polygon|\n palette(copy|totruecolor)|ellipse|ft(text|bbox)|filter|fill|filltoborder|\n filled(arc|ellipse|polygon|rectangle)|font(height|width)|flip|webp|wbmp|line|loadfont|layereffect|\n antialias|affine(matrix(concat|get))?|alphablending|arc|rotate|rectangle|gif|gd(2)?|gammacorrect|\n grab(screen|window)|xbm)\n)\\b",name:"support.function.image.php"},{match:"(?xi)\\b\n(\n sys_get_temp_dir|set_(time_limit|include_path|magic_quotes_runtime)|cli_(get|set)_process_title|\n ini_(alter|get(_all)?|restore|set)|zend_(thread_id|version|logo_guid)|dl|php(credits|info|version)|\n php_(sapi_name|ini_(scanned_files|loaded_file)|uname|logo_guid)|putenv|extension_loaded|version_compare|\n assert(_options)?|restore_include_path|gc_(collect_cycles|disable|enable(d)?)|getopt|\n get_(cfg_var|current_user|defined_constants|extension_funcs|include_path|included_files|loaded_extensions|\n magic_quotes_(gpc|runtime)|required_files|resources)|\n get(env|lastmod|rusage|my(inode|[gup]id))|\n memory_get_(peak_)?usage|main|magic_quotes_runtime\n)\\b",name:"support.function.info.php"},{match:"(?xi)\\b\nibase_(\n set_event_handler|service_(attach|detach)|server_info|num_(fields|params)|name_result|connect|\n commit(_ret)?|close|trans|delete_user|drop_db|db_info|pconnect|param_info|prepare|err(code|msg)|\n execute|query|field_info|fetch_(assoc|object|row)|free_(event_handler|query|result)|wait_event|\n add_user|affected_rows|rollback(_ret)?|restore|gen_id|modify_user|maintain_db|backup|\n blob_(cancel|close|create|import|info|open|echo|add|get)\n)\\b",name:"support.function.interbase.php"},{match:"(?xi)\\b\n(\n normalizer_(normalize|is_normalized)|idn_to_(unicode|utf8|ascii)|\n numfmt_(set_(symbol|(text_)?attribute|pattern)|create|(parse|format)(_currency)?|\n get_(symbol|(text_)?attribute|pattern|error_(code|message)|locale))|\n collator_(sort(_with_sort_keys)?|set_(attribute|strength)|compare|create|asort|\n get_(strength|sort_key|error_(code|message)|locale|attribute))|\n transliterator_(create(_(inverse|from_rules))?|transliterate|list_ids|get_error_(code|message))|\n intl(cal|tz)_get_error_(code|message)|intl_(is_failure|error_name|get_error_(code|message))|\n datefmt_(set_(calendar|lenient|pattern|timezone(_id)?)|create|is_lenient|parse|format(_object)?|localtime|\n get_(calendar(_object)?|time(type|zone(_id)?)|datetype|pattern|error_(code|message)|locale))|\n locale_(set_default|compose|canonicalize|parse|filter_matches|lookup|accept_from_http|\n get_(script|display_(script|name|variant|language|region)|default|primary_language|keywords|all_variants|region))|\n resourcebundle_(create|count|locales|get(_(error_(code|message)))?)|\n grapheme_(str(i?str|r?i?pos|len)|substr|extract)|\n msgfmt_(set_pattern|create|(format|parse)(_message)?|get_(pattern|error_(code|message)|locale))\n)\\b",name:"support.function.intl.php"},{match:"(?i)\\bjson_(decode|encode|last_error(_msg)?)\\b",name:"support.function.json.php"},{match:"(?xi)\\b\nldap_(\n start|tls|sort|search|sasl_bind|set_(option|rebind_proc)|(first|next)_(attribute|entry|reference)|\n connect|control_paged_result(_response)?|count_entries|compare|close|t61_to_8859|8859_to_t61|\n dn2ufn|delete|unbind|parse_(reference|result)|escape|errno|err2str|error|explode_dn|bind|\n free_result|list|add|rename|read|get_(option|dn|entries|values(_len)?|attributes)|modify(_batch)?|\n mod_(add|del|replace)\n)\\b",name:"support.function.ldap.php"},{match:"(?i)\\blibxml_(set_(streams_context|external_entity_loader)|clear_errors|disable_entity_loader|use_internal_errors|get_(errors|last_error))\\b",name:"support.function.libxml.php"},{match:"(?i)\\b(ezmlm_hash|mail)\\b",name:"support.function.mail.php"},{match:"(?xi)\\b\n(\n (a)?(cos|sin|tan)(h)?|sqrt|srand|hypot|hexdec|ceil|is_(nan|(in)?finite)|octdec|dec(hex|oct|bin)|deg2rad|\n pi|pow|exp(m1)?|floor|fmod|lcg_value|log(1(p|0))?|atan2|abs|round|rand|rad2deg|getrandmax|\n mt_(srand|rand|getrandmax)|max|min|bindec|base_convert\n)\\b",name:"support.function.math.php"},{match:"(?xi)\\b\nmb_(\n str(cut|str|to(lower|upper)|istr|ipos|imwidth|pos|width|len|rchr|richr|ripos|rpos)|\n substitute_character|substr(_count)?|split|send_mail|http_(input|output)|check_encoding|\n convert_(case|encoding|kana|variables)|internal_encoding|output_handler|decode_(numericentity|mimeheader)|\n detect_(encoding|order)|parse_str|preferred_mime_name|encoding_aliases|encode_(numericentity|mimeheader)|\n ereg(i(_replace)?)?|ereg_(search(_(get(pos|regs)|init|regs|(set)?pos))?|replace(_callback)?|match)|\n list_encodings|language|regex_(set_options|encoding)|get_info\n)\\b",name:"support.function.mbstring.php"},{match:"(?xi)\\b\n(\n mcrypt_(\n cfb|create_iv|cbc|ofb|decrypt|encrypt|ecb|list_(algorithms|modes)|generic(_((de)?init|end))?|\n enc_(self_test|is_block_(algorithm|algorithm_mode|mode)|\n get_(supported_key_sizes|(block|iv|key)_size|(algorithms|modes)_name))|\n get_(cipher_name|(block|iv|key)_size)|\n module_(close|self_test|is_block_(algorithm|algorithm_mode|mode)|open|\n get_(supported_key_sizes|algo_(block|key)_size)))|\n mdecrypt_generic\n)\\b",name:"support.function.mcrypt.php"},{match:"(?i)\\bmemcache_debug\\b",name:"support.function.memcache.php"},{match:"(?i)\\bmhash(_(count|keygen_s2k|get_(hash_name|block_size)))?\\b",name:"support.function.mhash.php"},{match:"(?i)\\b(log_(cmd_(insert|delete|update)|killcursor|write_batch|reply|getmore)|bson_(decode|encode))\\b",name:"support.function.mongo.php"},{match:"(?xi)\\b\nmysql_(\n stat|set_charset|select_db|num_(fields|rows)|connect|client_encoding|close|create_db|escape_string|\n thread_id|tablename|insert_id|info|data_seek|drop_db|db_(name|query)|unbuffered_query|pconnect|ping|\n errno|error|query|field_(seek|name|type|table|flags|len)|fetch_(object|field|lengths|assoc|array|row)|\n free_result|list_(tables|dbs|processes|fields)|affected_rows|result|real_escape_string|\n get_(client|host|proto|server)_info\n)\\b",name:"support.function.mysql.php"},{match:"(?xi)\\b\nmysqli_(\n ssl_set|store_result|stat|send_(query|long_data)|set_(charset|opt|local_infile_(default|handler))|\n stmt_(store_result|send_long_data|next_result|close|init|data_seek|prepare|execute|fetch|free_result|\n attr_(get|set)|result_metadata|reset|get_(result|warnings)|more_results|bind_(param|result))|\n select_db|slave_query|savepoint|next_result|change_user|character_set_name|connect|commit|\n client_encoding|close|thread_safe|init|options|(enable|disable)_(reads_from_master|rpl_parse)|\n dump_debug_info|debug|data_seek|use_result|ping|poll|param_count|prepare|escape_string|execute|\n embedded_server_(start|end)|kill|query|field_seek|free_result|autocommit|rollback|report|refresh|\n fetch(_(object|fields|field(_direct)?|assoc|all|array|row))?|rpl_(parse_enabled|probe|query_type)|\n release_savepoint|reap_async_query|real_(connect|escape_string|query)|more_results|multi_query|\n get_(charset|connection_stats|client_(stats|info|version)|cache_stats|warnings|links_stats|metadata)|\n master_query|bind_(param|result)|begin_transaction\n)\\b",name:"support.function.mysqli.php"},{match:"(?i)\\bmysqlnd_memcache_(set|get_config)\\b",name:"support.function.mysqlnd-memcache.php"},{match:"(?i)\\bmysqlnd_ms_(set_(user_pick_server|qos)|dump_servers|query_is_select|fabric_select_(shard|global)|get_(stats|last_(used_connection|gtid))|xa_(commit|rollback|gc|begin)|match_wild)\\b",name:"support.function.mysqlnd-ms.php"},{match:"(?i)\\bmysqlnd_qc_(set_(storage_handler|cache_condition|is_select|user_handlers)|clear_cache|get_(normalized_query_trace_log|core_stats|cache_info|query_trace_log|available_handlers))\\b",name:"support.function.mysqlnd-qc.php"},{match:"(?i)\\bmysqlnd_uh_(set_(statement|connection)_proxy|convert_to_mysqlnd)\\b",name:"support.function.mysqlnd-uh.php"},{match:"(?xi)\\b\n(\n syslog|socket_(set_(blocking|timeout)|get_status)|set(raw)?cookie|http_response_code|openlog|\n headers_(list|sent)|header(_(register_callback|remove))?|checkdnsrr|closelog|inet_(ntop|pton)|ip2long|\n openlog|dns_(check_record|get_(record|mx))|define_syslog_variables|(p)?fsockopen|long2ip|\n get(servby(name|port)|host(name|by(name(l)?|addr))|protoby(name|number)|mxrr)\n)\\b",name:"support.function.network.php"},{match:"(?i)\\bnsapi_(virtual|response_headers|request_headers)\\b",name:"support.function.nsapi.php"},{match:"(?xi)\\b\n(\n oci(statementtype|setprefetch|serverversion|savelob(file)?|numcols|new(collection|cursor|descriptor)|nlogon|\n column(scale|size|name|type(raw)?|isnull|precision)|coll(size|trim|assign(elem)?|append|getelem|max)|commit|\n closelob|cancel|internaldebug|definebyname|plogon|parse|error|execute|fetch(statement|into)?|\n free(statement|collection|cursor|desc)|write(temporarylob|lobtofile)|loadlob|log(on|off)|rowcount|rollback|\n result|bindbyname)|\n oci_(statement_type|set_(client_(info|identifier)|prefetch|edition|action|module_name)|server_version|\n num_(fields|rows)|new_(connect|collection|cursor|descriptor)|connect|commit|client_version|close|cancel|\n internal_debug|define_by_name|pconnect|password_change|parse|error|execute|bind_(array_)?by_name|\n field_(scale|size|name|type(_raw)?|is_null|precision)|fetch(_(object|assoc|all|array|row))?|\n free_(statement|descriptor)|lob_(copy|is_equal)|rollback|result|get_implicit_resultset)\n)\\b",name:"support.function.oci8.php"},{match:"(?i)\\bopcache_(compile_file|invalidate|reset|get_(status|configuration))\\b",name:"support.function.opcache.php"},{match:"(?xi)\\b\nopenssl_(\n sign|spki_(new|export(_challenge)?|verify)|seal|csr_(sign|new|export(_to_file)?|get_(subject|public_key))|\n cipher_iv_length|open|dh_compute_key|digest|decrypt|public_(decrypt|encrypt)|encrypt|error_string|\n pkcs12_(export(_to_file)?|read)|pkcs7_(sign|decrypt|encrypt|verify)|verify|free_key|random_pseudo_bytes|\n pkey_(new|export(_to_file)?|free|get_(details|public|private))|private_(decrypt|encrypt)|pbkdf2|\n get_((cipher|md)_methods|cert_locations|(public|private)key)|\n x509_(check_private_key|checkpurpose|parse|export(_to_file)?|fingerprint|free|read)\n)\\b",name:"support.function.openssl.php"},{match:"(?xi)\\b\n(\n output_(add_rewrite_var|reset_rewrite_vars)|flush|\n ob_(start|clean|implicit_flush|end_(clean|flush)|flush|list_handlers|gzhandler|\n get_(status|contents|clean|flush|length|level))\n)\\b",name:"support.function.output.php"},{match:"(?i)\\bpassword_(hash|needs_rehash|verify|get_info)\\b",name:"support.function.password.php"},{match:"(?xi)\\b\npcntl_(\n strerror|signal(_dispatch)?|sig(timedwait|procmask|waitinfo)|setpriority|errno|exec|fork|\n w(stopsig|termsig|if(stopped|signaled|exited))|wait(pid)?|alarm|getpriority|get_last_error\n)\\b",name:"support.function.pcntl.php"},{match:"(?xi)\\b\npg_(\n socket|send_(prepare|execute|query(_params)?)|set_(client_encoding|error_verbosity)|select|host|\n num_(fields|rows)|consume_input|connection_(status|reset|busy)|connect(_poll)?|convert|copy_(from|to)|\n client_encoding|close|cancel_query|tty|transaction_status|trace|insert|options|delete|dbname|untrace|\n unescape_bytea|update|pconnect|ping|port|put_line|parameter_status|prepare|version|query(_params)?|\n escape_(string|identifier|literal|bytea)|end_copy|execute|flush|free_result|last_(notice|error|oid)|\n field_(size|num|name|type(_oid)?|table|is_null|prtlen)|affected_rows|result_(status|seek|error(_field)?)|\n fetch_(object|assoc|all(_columns)?|array|row|result)|get_(notify|pid|result)|meta_data|\n lo_(seek|close|create|tell|truncate|import|open|unlink|export|write|read(_all)?)|\n)\\b",name:"support.function.pgsql.php"},{match:"(?i)\\b(virtual|getallheaders|apache_((get|set)env|note|child_terminate|lookup_uri|response_headers|reset_timeout|request_headers|get_(version|modules)))\\b",name:"support.function.php_apache.php"},{match:"(?i)\\bdom_import_simplexml\\b",name:"support.function.php_dom.php"},{match:"(?xi)\\b\nftp_(\n ssl_connect|systype|site|size|set_option|nlist|nb_(continue|f?(put|get))|ch(dir|mod)|connect|cdup|close|\n delete|put|pwd|pasv|exec|quit|f(put|get)|login|alloc|rename|raw(list)?|rmdir|get(_option)?|mdtm|mkdir\n)\\b",name:"support.function.php_ftp.php"},{match:"(?xi)\\b\nimap_(\n (create|delete|list|rename|scan)(mailbox)?|status|sort|subscribe|set_quota|set(flag_full|acl)|search|savebody|\n num_(recent|msg)|check|close|clearflag_full|thread|timeout|open|header(info)?|headers|append|alerts|reopen|\n 8bit|unsubscribe|undelete|utf7_(decode|encode)|utf8|uid|ping|errors|expunge|qprint|gc|\n fetch(structure|header|text|mime|body)|fetch_overview|lsub|list(scan|subscribed)|last_error|\n rfc822_(parse_(headers|adrlist)|write_address)|get(subscribed|acl|mailboxes)|get_quota(root)?|\n msgno|mime_header_decode|mail_(copy|compose|move)|mail|mailboxmsginfo|binary|body(struct)?|base64\n)\\b",name:"support.function.php_imap.php"},{match:"(?xi)\\b\nmssql_(\n select_db|num_(fields|rows)|next_result|connect|close|init|data_seek|pconnect|execute|query|\n field_(seek|name|type|length)|fetch_(object|field|assoc|array|row|batch)|free_(statement|result)|\n rows_affected|result|guid_string|get_last_message|min_(error|message)_severity|bind\n)\\b",name:"support.function.php_mssql.php"},{match:"(?xi)\\b\nodbc_(\n statistics|specialcolumns|setoption|num_(fields|rows)|next_result|connect|columns|columnprivileges|commit|\n cursor|close(_all)?|tables|tableprivileges|do|data_source|pconnect|primarykeys|procedures|procedurecolumns|\n prepare|error(msg)?|exec(ute)?|field_(scale|num|name|type|precision|len)|foreignkeys|free_result|\n fetch_(into|object|array|row)|longreadlen|autocommit|rollback|result(_all)?|gettypeinfo|binmode\n)\\b",name:"support.function.php_odbc.php"},{match:"(?i)\\bpreg_(split|quote|filter|last_error|replace(_callback)?|grep|match(_all)?)\\b",name:"support.function.php_pcre.php"},{match:"(?i)\\b(spl_(classes|object_hash|autoload(_(call|unregister|extensions|functions|register))?)|class_(implements|uses|parents)|iterator_(count|to_array|apply))\\b",name:"support.function.php_spl.php"},{match:"(?i)\\bzip_(close|open|entry_(name|compressionmethod|compressedsize|close|open|filesize|read)|read)\\b",name:"support.function.php_zip.php"},{match:"(?xi)\\b\nposix_(\n strerror|set(s|e?u|[ep]?g)id|ctermid|ttyname|times|isatty|initgroups|uname|errno|kill|access|\n get(sid|cwd|uid|pid|ppid|pwnam|pwuid|pgid|pgrp|euid|egid|login|rlimit|gid|grnam|groups|grgid)|\n get_last_error|mknod|mkfifo\n)\\b",name:"support.function.posix.php"},{match:"(?i)\\bset(thread|proc)title\\b",name:"support.function.proctitle.php"},{match:"(?xi)\\b\npspell_(\n store_replacement|suggest|save_wordlist|new(_(config|personal))?|check|clear_session|\n config_(save_repl|create|ignore|(data|dict)_dir|personal|runtogether|repl|mode)|add_to_(session|personal)\n)\\b",name:"support.function.pspell.php"},{match:"(?i)\\breadline(_(completion_function|clear_history|callback_(handler_(install|remove)|read_char)|info|on_new_line|write_history|list_history|add_history|redisplay|read_history))?\\b",name:"support.function.readline.php"},{match:"(?i)\\brecode(_(string|file))?\\b",name:"support.function.recode.php"},{match:"(?i)\\brrd(c_disconnect|_(create|tune|info|update|error|version|first|fetch|last(update)?|restore|graph|xport))\\b",name:"support.function.rrd.php"},{match:"(?xi)\\b\n(\n shm_((get|has|remove|put)_var|detach|attach|remove)|sem_(acquire|release|remove|get)|ftok|\n msg_((get|remove|set|stat)_queue|send|queue_exists|receive)\n)\\b",name:"support.function.sem.php"},{match:"(?xi)\\b\nsession_(\n status|start|set_(save_handler|cookie_params)|save_path|name|commit|cache_(expire|limiter)|\n is_registered|id|destroy|decode|unset|unregister|encode|write_close|abort|reset|register(_shutdown)?|\n regenerate_id|get_cookie_params|module_name\n)\\b",name:"support.function.session.php"},{match:"(?i)\\bshmop_(size|close|open|delete|write|read)\\b",name:"support.function.shmop.php"},{match:"(?i)\\bsimplexml_(import_dom|load_(string|file))\\b",name:"support.function.simplexml.php"},{match:"(?xi)\\b\n(\n snmp(walk(oid)?|realwalk|get(next)?|set)|\n snmp_(set_(valueretrieval|quick_print|enum_print|oid_(numeric_print|output_format))|read_mib|\n get_(valueretrieval|quick_print))|\n snmp[23]_(set|walk|real_walk|get(next)?)\n)\\b",name:"support.function.snmp.php"},{match:"(?i)\\b(is_soap_fault|use_soap_error_handler)\\b",name:"support.function.soap.php"},{match:"(?xi)\\b\nsocket_(\n shutdown|strerror|send(to|msg)?|set_((non)?block|option)|select|connect|close|clear_error|bind|\n create(_(pair|listen))?|cmsg_space|import_stream|write|listen|last_error|accept|recv(from|msg)?|\n read|get(peer|sock)name|get_option\n)\\b",name:"support.function.sockets.php"},{match:"(?xi)\\b\nsqlite_(\n single_query|seek|has_(more|prev)|num_(fields|rows)|next|changes|column|current|close|\n create_(aggregate|function)|open|unbuffered_query|udf_(decode|encode)_binary|popen|prev|\n escape_string|error_string|exec|valid|key|query|field_name|factory|\n fetch_(string|single|column_types|object|all|array)|lib(encoding|version)|\n last_(insert_rowid|error)|array_query|rewind|busy_timeout\n)\\b",name:"support.function.sqlite.php"},{match:"(?xi)\\b\nsqlsrv_(\n send_stream_data|server_info|has_rows|num_(fields|rows)|next_result|connect|configure|commit|\n client_info|close|cancel|prepare|errors|execute|query|field_metadata|fetch(_(array|object))?|\n free_stmt|rows_affected|rollback|get_(config|field)|begin_transaction\n)\\b",name:"support.function.sqlsrv.php"},{match:"(?xi)\\b\nstats_(\n harmonic_mean|covariance|standard_deviation|skew|\n cdf_(noncentral_(chisquare|f)|negative_binomial|chisquare|cauchy|t|uniform|poisson|exponential|f|weibull|\n logistic|laplace|gamma|binomial|beta)|\n stat_(noncentral_t|correlation|innerproduct|independent_t|powersum|percentile|paired_t|gennch|binomial_coef)|\n dens_(normal|negative_binomial|chisquare|cauchy|t|pmf_(hypergeometric|poisson|binomial)|exponential|f|\n weibull|logistic|laplace|gamma|beta)|\n den_uniform|variance|kurtosis|absolute_deviation|\n rand_(setall|phrase_to_seeds|ranf|get_seeds|\n gen_(noncentral_[ft]|noncenral_chisquare|normal|chisquare|t|int|\n i(uniform|poisson|binomial(_negative)?)|exponential|f(uniform)?|gamma|beta))\n)\\b",name:"support.function.stats.php"},{match:"(?xi)\\b\n(\n set_socket_blocking|\n stream_(socket_(shutdown|sendto|server|client|pair|enable_crypto|accept|recvfrom|get_name)|\n set_(chunk_size|timeout|(read|write)_buffer|blocking)|select|notification_callback|supports_lock|\n context_(set_(option|default|params)|create|get_(options|default|params))|copy_to_stream|is_local|\n encoding|filter_(append|prepend|register|remove)|wrapper_((un)?register|restore)|\n resolve_include_path|register_wrapper|get_(contents|transports|filters|wrappers|line|meta_data)|\n bucket_(new|prepend|append|make_writeable)\n )\n)\\b",name:"support.function.streamsfuncs.php"},{match:"(?xi)\\b\n(\n money_format|md5(_file)?|metaphone|bin2hex|sscanf|sha1(_file)?|\n str(str|c?spn|n(at)?(case)?cmp|chr|coll|(case)?cmp|to(upper|lower)|tok|tr|istr|pos|pbrk|len|rchr|ri?pos|rev)|\n str_(getcsv|ireplace|pad|repeat|replace|rot13|shuffle|split|word_count)|\n strip(c?slashes|os)|strip_tags|similar_text|soundex|substr(_(count|compare|replace))?|setlocale|\n html(specialchars(_decode)?|entities)|html_entity_decode|hex2bin|hebrev(c)?|number_format|nl2br|nl_langinfo|\n chop|chunk_split|chr|convert_(cyr_string|uu(decode|encode))|count_chars|crypt|crc32|trim|implode|ord|\n uc(first|words)|join|parse_str|print(f)?|echo|explode|v?[fs]?printf|quoted_printable_(decode|encode)|\n quotemeta|wordwrap|lcfirst|[lr]trim|localeconv|levenshtein|addc?slashes|get_html_translation_table\n)\\b",name:"support.function.string.php"},{match:"(?xi)\\b\nsybase_(\n set_message_handler|select_db|num_(fields|rows)|connect|close|deadlock_retry_count|data_seek|\n unbuffered_query|pconnect|query|field_seek|fetch_(object|field|assoc|array|row)|free_result|\n affected_rows|result|get_last_message|min_(client|error|message|server)_severity\n)\\b",name:"support.function.sybase.php"},{match:"(?i)\\b(taint|is_tainted|untaint)\\b",name:"support.function.taint.php"},{match:"(?xi)\\b\n(\n tidy_((get|set)opt|set_encoding|save_config|config_count|clean_repair|is_(xhtml|xml)|diagnose|\n (access|error|warning)_count|load_config|reset_config|(parse|repair)_(string|file)|\n get_(status|html(_ver)?|head|config|output|opt_doc|root|release|body))|\n ob_tidyhandler\n)\\b",name:"support.function.tidy.php"},{match:"(?i)\\btoken_(name|get_all)\\b",name:"support.function.tokenizer.php"},{match:"(?xi)\\b\ntrader_(\n stoch(f|r|rsi)?|stddev|sin(h)?|sum|sub|set_(compat|unstable_period)|sqrt|sar(ext)?|sma|\n ht_(sine|trend(line|mode)|dc(period|phase)|phasor)|natr|cci|cos(h)?|correl|\n cdl(shootingstar|shortline|sticksandwich|stalledpattern|spinningtop|separatinglines|\n hikkake(mod)?|highwave|homingpigeon|hangingman|harami(cross)?|hammer|concealbabyswall|\n counterattack|closingmarubozu|thrusting|tasukigap|takuri|tristar|inneck|invertedhammer|\n identical3crows|2crows|onneck|doji(star)?|darkcloudcover|dragonflydoji|unique3river|\n upsidegap2crows|3(starsinsouth|inside|outside|whitesoldiers|linestrike|blackcrows)|\n piercing|engulfing|evening(doji)?star|kicking(bylength)?|longline|longleggeddoji|\n ladderbottom|advanceblock|abandonedbaby|risefall3methods|rickshawman|gapsidesidewhite|\n gravestonedoji|xsidegap3methods|morning(doji)?star|mathold|matchinglow|marubozu|\n belthold|breakaway)|\n ceil|cmo|tsf|typprice|t3|tema|tan(h)?|trix|trima|trange|obv|div|dema|dx|ultosc|ppo|\n plus_d[im]|errno|exp|ema|var|kama|floor|wclprice|willr|wma|ln|log10|bop|beta|bbands|\n linearreg(_(slope|intercept|angle))?|asin|acos|atan|atr|adosc|ad|add|adx(r)?|apo|avgprice|\n aroon(osc)?|rsi|roc|rocp|rocr(100)?|get_(compat|unstable_period)|min(index)?|minus_d[im]|\n minmax(index)?|mid(point|price)|mom|mult|medprice|mfi|macd(ext|fix)?|mavp|max(index)?|ma(ma)?\n)\\b",name:"support.function.trader.php"},{match:"(?i)\\buopz_(copy|compose|implement|overload|delete|undefine|extend|function|flags|restore|rename|redefine|backup)\\b",name:"support.function.uopz.php"},{match:"(?i)\\b(http_build_query|(raw)?url(decode|encode)|parse_url|get_(headers|meta_tags)|base64_(decode|encode))\\b",name:"support.function.url.php"},{match:"(?xi)\\b\n(\n strval|settype|serialize|(bool|double|float)val|debug_zval_dump|intval|import_request_variables|isset|\n is_(scalar|string|null|numeric|callable|int(eger)?|object|double|float|long|array|resource|real|bool)|\n unset|unserialize|print_r|empty|var_(dump|export)|gettype|get_(defined_vars|resource_type)\n)\\b",name:"support.function.var.php"},{match:"(?i)\\bwddx_(serialize_(value|vars)|deserialize|packet_(start|end)|add_vars)\\b",name:"support.function.wddx.php"},{match:"(?i)\\bxhprof_(sample_)?(disable|enable)\\b",name:"support.function.xhprof.php"},{match:"(?xi)\n\\b\n(\n utf8_(decode|encode)|\n xml_(set_((notation|(end|start)_namespace|unparsed_entity)_decl_handler|\n (character_data|default|element|external_entity_ref|processing_instruction)_handler|object)|\n parse(_into_struct)?|parser_((get|set)_option|create(_ns)?|free)|error_string|\n get_(current_((column|line)_number|byte_index)|error_code))\n)\\b",name:"support.function.xml.php"},{match:"(?xi)\\b\nxmlrpc_(\n server_(call_method|create|destroy|add_introspection_data|register_(introspection_callback|method))|\n is_fault|decode(_request)?|parse_method_descriptions|encode(_request)?|(get|set)_type\n)\\b",name:"support.function.xmlrpc.php"},{match:"(?xi)\\b\nxmlwriter_(\n (end|start|write)_(comment|cdata|dtd(_(attlist|entity|element))?|document|pi|attribute|element)|\n (start|write)_(attribute|element)_ns|write_raw|set_indent(_string)?|text|output_memory|open_(memory|uri)|\n full_end_element|flush|\n)\\b",name:"support.function.xmlwriter.php"},{match:"(?xi)\\b\n(\n zlib_(decode|encode|get_coding_type)|readgzfile|\n gz(seek|compress|close|tell|inflate|open|decode|deflate|uncompress|puts|passthru|encode|eof|file|\n write|rewind|read|getc|getss?)\n)\\b",name:"support.function.zlib.php"},{match:"(?i)\\bis_int(eger)?\\b",name:"support.function.alias.php"}]},switch_statement:{patterns:[{match:"\\s+(?=switch\\b)"},{begin:"\\bswitch\\b(?!\\s*\\(.*\\)\\s*:)",beginCaptures:{"0":{name:"keyword.control.switch.php"}},end:"}|(?=\\?>)",endCaptures:{"0":{name:"punctuation.definition.section.switch-block.end.bracket.curly.php"}},name:"meta.switch-statement.php",patterns:[{begin:"\\(",beginCaptures:{"0":{name:"punctuation.definition.switch-expression.begin.bracket.round.php"}},end:"\\)|(?=\\?>)",endCaptures:{"0":{name:"punctuation.definition.switch-expression.end.bracket.round.php"}},patterns:[{include:"$self"}]},{begin:"{",beginCaptures:{"0":{name:"punctuation.definition.section.switch-block.begin.bracket.curly.php"}},end:"(?=}|\\?>)",patterns:[{include:"$self"}]}]}]},match_statement:{patterns:[{match:"\\s+(?=match\\b)"},{begin:"\\bmatch\\b",beginCaptures:{"0":{name:"keyword.control.match.php"}},end:"}|(?=\\?>)",endCaptures:{"0":{name:"punctuation.definition.section.match-block.end.bracket.curly.php"}},name:"meta.match-statement.php",patterns:[{begin:"\\(",beginCaptures:{"0":{name:"punctuation.definition.match-expression.begin.bracket.round.php"}},end:"\\)|(?=\\?>)",endCaptures:{"0":{name:"punctuation.definition.match-expression.end.bracket.round.php"}},patterns:[{include:"$self"}]},{begin:"{",beginCaptures:{"0":{name:"punctuation.definition.section.match-block.begin.bracket.curly.php"}},end:"(?=}|\\?>)",patterns:[{match:"=>",name:"keyword.definition.arrow.php"},{include:"$self"}]}]}]},"use-inner":{patterns:[{include:"#comments"},{begin:"(?i)\\b(as)\\s+",beginCaptures:{"1":{name:"keyword.other.use-as.php"}},end:"(?i)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*",endCaptures:{"0":{name:"entity.other.alias.php"}}},{include:"#class-name"},{match:",",name:"punctuation.separator.delimiter.php"}]},var_basic:{patterns:[{match:"(?i)(\\$+)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*",name:"variable.other.php",captures:{"1":{name:"punctuation.definition.variable.php"}}}]},var_global:{captures:{"1":{name:"punctuation.definition.variable.php"}},match:"(\\$)((_(COOKIE|FILES|GET|POST|REQUEST))|arg(v|c))\\b",name:"variable.other.global.php"},var_global_safer:{captures:{"1":{name:"punctuation.definition.variable.php"}},match:"(\\$)((GLOBALS|_(ENV|SERVER|SESSION)))",name:"variable.other.global.safer.php"},var_language:{match:"(\\$)this\\b",name:"variable.language.this.php",captures:{"1":{name:"punctuation.definition.variable.php"}}},"variable-name":{patterns:[{include:"#var_global"},{include:"#var_global_safer"},{captures:{"1":{name:"variable.other.php"},"2":{name:"punctuation.definition.variable.php"},"4":{name:"keyword.operator.class.php"},"5":{name:"variable.other.property.php"},"6":{name:"punctuation.section.array.begin.php"},"7":{name:"constant.numeric.index.php"},"8":{name:"variable.other.index.php"},"9":{name:"punctuation.definition.variable.php"},"10":{name:"string.unquoted.index.php"},"11":{name:"punctuation.section.array.end.php"}},match:"(?xi)\n((\\$)(?<name>[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*))\\s*\n(?:\n (\\??->)\\s*(\\g<name>)\n |\n (\\[)(?:(\\d+)|((\\$)\\g<name>)|([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*))(\\])\n)?"},{captures:{"1":{name:"variable.other.php"},"2":{name:"punctuation.definition.variable.php"},"4":{name:"punctuation.definition.variable.php"}},match:"(?i)((\\${)(?<name>[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)(}))"}]},variables:{patterns:[{include:"#var_language"},{include:"#var_global"},{include:"#var_global_safer"},{include:"#var_basic"},{begin:"\\${(?=.*?})",beginCaptures:{"0":{name:"punctuation.definition.variable.php"}},end:"}",endCaptures:{"0":{name:"punctuation.definition.variable.php"}},patterns:[{include:"$self"}]}]},ternary_shorthand:{match:"\\?:",name:"keyword.operator.ternary.php"},ternary_expression:{begin:"\\?",beginCaptures:{"0":{name:"keyword.operator.ternary.php"}},end:"(?<!:):(?!:)",endCaptures:{"0":{name:"keyword.operator.ternary.php"}},patterns:[{match:"(?i)^\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)\\s*(?=:(?!:))",captures:{"1":{patterns:[{include:"$self"}]}}},{include:"$self"}]},null_coalescing:{match:"\\?\\?",name:"keyword.operator.null-coalescing.php"}},name:"php"}; + +export { php_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/plsql.tmLanguage-7b7b1b95.mjs b/docs/shiki/dist/languages/plsql.tmLanguage-7b7b1b95.mjs new file mode 100644 index 00000000..bb2e94a6 --- /dev/null +++ b/docs/shiki/dist/languages/plsql.tmLanguage-7b7b1b95.mjs @@ -0,0 +1,3 @@ +var plsql_tmLanguage = {fileTypes:["sql","ddl","dml","pkh","pks","pkb","pck","pls","plb"],foldingStartMarker:"(?i)^\\s*(begin|if|loop)\\b",foldingStopMarker:"(?i)^\\s*(end)\\b",keyEquivalent:"^~S",name:"plsql",patterns:[{begin:"/\\*",end:"\\*/",name:"comment.block.oracle"},{match:"--.*$",name:"comment.line.double-dash.oracle"},{match:"(?i)(?:^\\s*)rem(?:\\s+.*$)",name:"comment.line.sqlplus.oracle"},{match:"(?i)(?:^\\s*)prompt(?:\\s+.*$)",name:"comment.line.sqlplus-prompt.oracle"},{captures:{"1":{name:"keyword.other.oracle"},"2":{name:"keyword.other.oracle"}},match:"(?i)^\\s*(create)(\\s+or\\s+replace)?\\s+",name:"meta.create.oracle"},{captures:{"1":{name:"keyword.other.oracle"},"2":{name:"keyword.other.oracle"},"3":{name:"entity.name.type.oracle"}},match:"(?i)\\b(package)(\\s+body)?\\s+(\\S+)",name:"meta.package.oracle"},{captures:{"1":{name:"keyword.other.oracle"},"2":{name:"entity.name.type.oracle"}},match:"(?i)\\b(type)\\s+\"([^\"]+)\"",name:"meta.type.oracle"},{captures:{"1":{name:"keyword.other.oracle"},"2":{name:"entity.name.function.oracle"}},match:"(?i)^\\s*(function|procedure)\\s+\"?([-a-z0-9_]+)\"?",name:"meta.procedure.oracle"},{match:"[!<>:]?=|<>|<|>|\\+|(?<!\\.)\\*|-|(?<!^)/|\\|\\|",name:"keyword.operator.oracle"},{match:"(?i)\\b(true|false|null|is\\s+(not\\s+)?null)\\b",name:"constant.language.oracle"},{match:"\\b\\d+(\\.\\d+)?\\b",name:"constant.numeric.oracle"},{match:"(?i)\\b(if|elsif|else|end\\s+if|loop|end\\s+loop|for|while|case|end\\s+case|continue|return|goto)\\b",name:"keyword.control.oracle"},{match:"(?i)\\b(or|and|not|like)\\b",name:"keyword.other.oracle"},{match:"(?i)\\b(%(isopen|found|notfound|rowcount)|commit|rollback|sqlerrm)\\b",name:"support.function.oracle"},{match:"(?i)\\b(sql|sqlcode)\\b",name:"variable.language.oracle"},{match:"(?i)\\b(ascii|asciistr|chr|compose|concat|convert|decompose|dump|initcap|instr|instrb|instrc|instr2|instr4|unistr|length|lengthb|lengthc|length2|length4|lower|lpad|ltrim|nchr|replace|rpad|rtrim|soundex|substr|translate|trim|upper|vsize)\\b",name:"support.function.builtin.char.oracle"},{match:"(?i)\\b(add_months|current_date|current_timestamp|dbtimezone|last_day|localtimestamp|months_between|new_time|next_day|round|sessiontimezone|sysdate|tz_offset|systimestamp)\\b",name:"support.function.builtin.date.oracle"},{match:"(?i)\\b(avg|count|sum|max|min|median|corr|corr_\\w+|covar_(pop|samp)|cume_dist|dense_rank|first|group_id|grouping|grouping_id|last|percentile_cont|percentile_disc|percent_rank|rank|regr_\\w+|row_number|stats_binomial_test|stats_crosstab|stats_f_test|stats_ks_test|stats_mode|stats_mw_test|stats_one_way_anova|stats_t_test_\\w+|stats_wsr_test|stddev|stddev_pop|stddev_samp|var_pop|var_samp|variance)\\b",name:"support.function.builtin.aggregate.oracle"},{match:"(?i)\\b(bfilename|cardinality|coalesce|decode|empty_(blob|clob)|lag|lead|listagg|lnnvl|nanvl|nullif|nvl|nvl2|sys_(context|guid|typeid|connect_by_path|extract_utc)|uid|(current\\s+)?user|userenv|cardinality|(bulk\\s+)?collect|powermultiset(_by_cardinality)?|ora_hash|standard_hash|execute\\s+immediate|alter\\s+session)\\b",name:"support.function.builtin.advanced.oracle"},{match:"(?i)\\b(bin_to_num|cast|chartorowid|from_tz|hextoraw|numtodsinterval|numtoyminterval|rawtohex|rawtonhex|to_char|to_clob|to_date|to_dsinterval|to_lob|to_multi_byte|to_nclob|to_number|to_single_byte|to_timestamp|to_timestamp_tz|to_yminterval|scn_to_timestamp|timestamp_to_scn|rowidtochar|rowidtonchar|to_binary_double|to_binary_float|to_blob|to_nchar|con_dbid_to_id|con_guid_to_id|con_name_to_id|con_uid_to_id)\\b",name:"support.function.builtin.convert.oracle"},{match:"(?i)\\b(abs|acos|asin|atan|atan2|bit_(and|or|xor)|ceil|cos|cosh|exp|extract|floor|greatest|least|ln|log|mod|power|remainder|round|sign|sin|sinh|sqrt|tan|tanh|trunc)\\b",name:"support.function.builtin.math.oracle"},{match:"(?i)\\b(\\.(count|delete|exists|extend|first|last|limit|next|prior|trim|reverse))\\b",name:"support.function.builtin.collection.oracle"},{match:"(?i)\\b(cluster_details|cluster_distance|cluster_id|cluster_probability|cluster_set|feature_details|feature_id|feature_set|feature_value|prediction|prediction_bounds|prediction_cost|prediction_details|prediction_probability|prediction_set)\\b",name:"support.function.builtin.data_mining.oracle"},{match:"(?i)\\b(appendchildxml|deletexml|depth|extract|existsnode|extractvalue|insertchildxml|insertxmlbefore|xmlcast|xmldiff|xmlelement|xmlexists|xmlisvalid|insertchildxmlafter|insertchildxmlbefore|path|sys_dburigen|sys_xmlagg|sys_xmlgen|updatexml|xmlagg|xmlcdata|xmlcolattval|xmlcomment|xmlconcat|xmlforest|xmlparse|xmlpi|xmlquery|xmlroot|xmlsequence|xmlserialize|xmltable|xmltransform)\\b",name:"support.function.builtin.xml.oracle"},{match:"(?i)\\b(pragma\\s+(autonomous_transaction|serially_reusable|restrict_references|exception_init|inline))\\b",name:"keyword.other.pragma.oracle"},{match:"(?i)\\b(p(i|o|io)_[-a-z0-9_]+)\\b",name:"variable.parameter.oracle"},{match:"(?i)\\b(l_[-a-z0-9_]+)\\b",name:"variable.other.oracle"},{match:"(?i):\\b(new|old)\\b",name:"variable.trigger.oracle"},{match:"(?i)\\b(connect\\s+by\\s+(nocycle\\s+)?(prior|level)|connect_by_(root|icycle)|level|start\\s+with)\\b",name:"keyword.hierarchical.sql.oracle"},{match:"(?i)\\b(language|name|java|c)\\b",name:"keyword.wrapper.oracle"},{match:"(?i)\\b(end|then|deterministic|exception|when|declare|begin|in|out|nocopy|is|as|exit|open|fetch|into|close|subtype|type|rowtype|default|exclusive|mode|lock|record|index\\s+by|result_cache|constant|comment|\\.(nextval|currval))\\b",name:"keyword.other.oracle"},{match:"(?i)\\b(grant|revoke|alter|drop|force|add|check|constraint|primary\\s+key|foreign\\s+key|references|unique(\\s+index)?|column|sequence|increment\\s+by|cache|(materialized\\s+)?view|trigger|storage|tablespace|pct(free|used)|(init|max)trans|logging)\\b",name:"keyword.other.ddl.oracle"},{match:"(?i)\\b(with|select|from|where|order\\s+(siblings\\s+)?by|group\\s+by|rollup|cube|((left|right|cross|natural)\\s+(outer\\s+)?)?join|on|asc|desc|update|set|insert|into|values|delete|distinct|union|minus|intersect|having|limit|table|between|like|of|row|(range|rows)\\s+between|nulls\\s+first|nulls\\s+last|before|after|all|any|exists|rownum|cursor|returning|over|partition\\s+by|merge|using|matched|pivot|unpivot)\\b",name:"keyword.other.sql.oracle"},{match:"(?i)\\b(define|whenever\\s+sqlerror|exec|timing\\s+start|timing\\s+stop)\\b",name:"keyword.other.sqlplus.oracle"},{match:"(?i)\\b(access_into_null|case_not_found|collection_is_null|cursor_already_open|dup_val_on_index|invalid_cursor|invalid_number|login_denied|no_data_found|not_logged_on|program_error|rowtype_mismatch|self_is_null|storage_error|subscript_beyond_count|subscript_outside_limit|sys_invalid_rowid|timeout_on_resource|too_many_rows|value_error|zero_divide|others)\\b",name:"support.type.exception.oracle"},{captures:{"3":{name:"support.class.oracle"}},match:"(?i)\\b((dbms|utl|owa|apex)_\\w+\\.(\\w+))\\b",name:"support.function.oracle"},{captures:{"3":{name:"support.class.oracle"}},match:"(?i)\\b((htf|htp)\\.(\\w+))\\b",name:"support.function.oracle"},{captures:{"3":{name:"support.class.user-defined.oracle"}},match:"(?i)\\b((\\w+_pkg|pkg_\\w+)\\.(\\w+))\\b",name:"support.function.user-defined.oracle"},{match:"(?i)\\b(raise|raise_application_error)\\b",name:"support.function.oracle"},{begin:"'",end:"'",name:"string.quoted.single.oracle"},{begin:"\"",end:"\"",name:"string.quoted.double.oracle"},{match:"(?i)\\b(char|varchar|varchar2|nchar|nvarchar2|boolean|date|timestamp(\\s+with(\\s+local)?\\s+time\\s+zone)?|interval\\s*day(\\(\\d*\\))?\\s*to\\s*month|interval\\s*year(\\(\\d*\\))?\\s*to\\s*second(\\(\\d*\\))?|xmltype|blob|clob|nclob|bfile|long|long\\s+raw|raw|number|integer|decimal|smallint|float|binary_(float|double|integer)|pls_(float|double|integer)|rowid|urowid|vararray|natural|naturaln|positive|positiven|signtype|simple_(float|double|integer))\\b",name:"storage.type.oracle"}],scopeName:"source.plsql.oracle",uuid:"28DCE4DD-F5E1-4ED3-8847-64DA6B1F9163"}; + +export { plsql_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/postcss.tmLanguage-e1ce9483.mjs b/docs/shiki/dist/languages/postcss.tmLanguage-e1ce9483.mjs new file mode 100644 index 00000000..30773292 --- /dev/null +++ b/docs/shiki/dist/languages/postcss.tmLanguage-e1ce9483.mjs @@ -0,0 +1,3 @@ +var postcss_tmLanguage = {patterns:[{patterns:[{include:"#comment-tag"}],begin:"/\\*",name:"comment.block.postcss",end:"\\*/"},{include:"#double-slash"},{include:"#double-quoted"},{include:"#single-quoted"},{include:"#interpolation"},{include:"#placeholder-selector"},{include:"#variable"},{include:"#variable-root-css"},{include:"#numeric"},{include:"#unit"},{include:"#flag"},{include:"#dotdotdot"},{captures:{"0":{name:"keyword.control.at-rule.css.postcss"}},begin:"@include",name:"support.function.name.postcss.library",end:"(?=\\n|\\(|{|;)"},{captures:{"0":{name:"keyword.control.at-rule.css.postcss"}},patterns:[{name:"entity.name.function",match:"[\\w-]+"}],begin:"@mixin|@function",name:"support.function.name.postcss.no-completions",end:"$\\n?|(?=\\(|{)"},{name:"string.quoted.double.css.postcss",match:"(?<=@import)\\s[\\w/.*-]+"},{begin:"@",name:"keyword.control.at-rule.css.postcss",end:"$\\n?|\\s(?!(all|braille|embossed|handheld|print|projection|screen|speech|tty|tv|if|only|not)(\\s|,))|(?=;)"},{patterns:[{include:"#interpolation"},{include:"#pseudo-class"}],begin:"#",name:"entity.other.attribute-name.id.css.postcss",end:"$\\n?|(?=\\s|,|;|\\(|\\)|\\.|\\[|{|>)"},{patterns:[{include:"#interpolation"},{include:"#pseudo-class"}],begin:"\\.|(?<=&)(-|_)",name:"entity.other.attribute-name.class.css.postcss",end:"$\\n?|(?=\\s|,|;|\\(|\\)|\\[|{|>)"},{patterns:[{include:"#double-quoted"},{include:"#single-quoted"},{name:"keyword.other.regex.postcss",match:"\\^|\\$|\\*|~"}],begin:"\\[",name:"entity.other.attribute-selector.postcss",end:"\\]"},{name:"entity.other.attribute-name.pseudo-class.css.postcss",match:"(?<=\\]|\\)|not\\(|\\*|>|>\\s):[a-z:-]+|(::|:-)[a-z:-]+"},{patterns:[{include:"#double-slash"},{include:"#double-quoted"},{include:"#single-quoted"},{include:"#interpolation"},{include:"#variable"},{include:"#rgb-value"},{include:"#numeric"},{include:"#unit"},{include:"#flag"},{include:"#function"},{include:"#function-content"},{include:"#function-content-var"},{include:"#operator"},{include:"#parent-selector"},{include:"#property-value"}],begin:":",name:"meta.property-list.css.postcss",end:"$\\n?|(?=;|\\s\\(|and\\(|{|}|\\),)"},{include:"#rgb-value"},{include:"#function"},{include:"#function-content"},{patterns:[{include:"#interpolation"},{include:"#pseudo-class"}],begin:"(?<!\\-|\\()\\b(a|abbr|acronym|address|applet|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|datalist|dd|del|details|dfn|dialog|div|dl|dt|em|embed|eventsource|fieldset|figure|figcaption|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|label|legend|li|link|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|picture|pre|progress|q|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video|main|svg|rect|ruby|center|circle|ellipse|line|polyline|polygon|path|text|u|x)\\b(?!-|\\)|:\\s)|&",name:"entity.name.tag.css.postcss.symbol",end:"(?=\\s|,|;|\\(|\\)|\\.|\\[|{|>|-|_)"},{include:"#operator"},{name:"support.type.property-name.css.postcss",match:"[a-z-]+((?=:|#{))"},{include:"#reserved-words"},{include:"#property-value"}],name:"postcss",repository:{"reserved-words":{name:"support.type.property-name.css.postcss",match:"\\b(false|from|in|not|null|through|to|true)\\b"},"double-quoted":{patterns:[{include:"#quoted-interpolation"}],begin:"\"",name:"string.quoted.double.css.postcss",end:"\""},operator:{name:"keyword.operator.postcss",match:"\\+|\\s-\\s|\\s-(?=\\$)|(?<=\\()-(?=\\$)|\\s-(?=\\()|\\*|/|%|=|!|<|>|~"},"function-content":{name:"string.quoted.double.css.postcss",match:"(?<=url\\(|format\\(|attr\\().+?(?=\\))"},"double-slash":{patterns:[{include:"#comment-tag"}],begin:"//",name:"comment.line.postcss",end:"$"},numeric:{name:"constant.numeric.css.postcss",match:"(-|\\.)?[0-9]+(\\.[0-9]+)?"},"variable-root-css":{name:"variable.parameter.postcss",match:"(?<!&)--[\\w-]+"},"function":{name:"support.function.name.postcss",match:"(?<=[\\s|\\(|,|:])(?!url|format|attr)[\\w-][\\w-]*(?=\\()"},"rgb-value":{name:"constant.other.color.rgb-value.css.postcss",match:"(#)([0-9a-fA-F]{3}|[0-9a-fA-F]{6})\\b"},"comment-tag":{patterns:[{name:"comment.tag.postcss",match:"[\\w-]+"}],begin:"{{",name:"comment.tags.postcss",end:"}}"},interpolation:{patterns:[{include:"#variable"},{include:"#numeric"},{include:"#operator"},{include:"#unit"},{include:"#double-quoted"},{include:"#single-quoted"}],begin:"#{",name:"support.function.interpolation.postcss",end:"}"},unit:{name:"keyword.other.unit.css.postcss",match:"(?<=[\\d]|})(ch|cm|deg|dpcm|dpi|dppx|em|ex|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vw|%)"},"function-content-var":{name:"variable.parameter.postcss",match:"(?<=var\\()[\\w-]+(?=\\))"},dotdotdot:{name:"variable.other",match:"\\.{3}"},variable:{name:"variable.parameter.postcss",match:"\\$[\\w-]+"},"single-quoted":{patterns:[{include:"#quoted-interpolation"}],begin:"'",name:"string.quoted.single.css.postcss",end:"'"},"quoted-interpolation":{patterns:[{include:"#variable"},{include:"#numeric"},{include:"#operator"},{include:"#unit"}],begin:"#{",name:"support.function.interpolation.postcss",end:"}"},"pseudo-class":{name:"entity.other.attribute-name.pseudo-class.css.postcss",match:":[a-z:-]+"},"property-value":{name:"meta.property-value.css.postcss, support.constant.property-value.css.postcss",match:"[\\w-]+"},"placeholder-selector":{begin:"(?<!\\d)%(?!\\d)",name:"entity.other.attribute-name.placeholder-selector.postcss",end:"$\\n?|\\s|(?=;|{)"},flag:{name:"keyword.other.important.css.postcss",match:"!(important|default|optional|global)"},"parent-selector":{name:"entity.name.tag.css.postcss",match:"&"}},foldingStartMarker:"/\\*|^#|^\\*|^\\b|^\\.",foldingStopMarker:"\\*/|^\\s*$",fileTypes:["pcss","postcss"],uuid:"90DAEA60-88AA-11E2-9E96-0800200C9A66",scopeName:"source.css.postcss"}; + +export { postcss_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/powerquery.tmLanguage-5e63151a.mjs b/docs/shiki/dist/languages/powerquery.tmLanguage-5e63151a.mjs new file mode 100644 index 00000000..5ab851ea --- /dev/null +++ b/docs/shiki/dist/languages/powerquery.tmLanguage-5e63151a.mjs @@ -0,0 +1,3 @@ +var powerquery_tmLanguage = {name:"powerquery",scopeName:"source.powerquery",fileTypes:["pq","pqm"],uuid:"41968B57-12E6-4AC5-92A4-A837010E8B0A",patterns:[{include:"#Noise"},{include:"#LiteralExpression"},{include:"#Keywords"},{include:"#ImplicitVariable"},{include:"#IntrinsicVariable"},{include:"#Operators"},{include:"#DotOperators"},{include:"#TypeName"},{include:"#RecordExpression"},{include:"#Punctuation"},{include:"#QuotedIdentifier"},{include:"#Identifier"}],repository:{Keywords:{match:"\\b(?:(and|or|not)|(if|then|else)|(try|otherwise)|(as|each|in|is|let|meta|type|error)|(section|shared))\\b",captures:{"1":{name:"keyword.operator.word.logical.powerquery"},"2":{name:"keyword.control.conditional.powerquery"},"3":{name:"keyword.control.exception.powerquery"},"4":{name:"keyword.other.powerquery"},"5":{name:"keyword.powerquery"}}},TypeName:{match:"\\b(?:(optional|nullable)|(action|any|anynonnull|binary|date|datetime|datetimezone|duration|function|list|logical|none|null|number|record|table|text|type))\\b",captures:{"1":{name:"storage.modifier.powerquery"},"2":{name:"storage.type.powerquery"}}},LiteralExpression:{patterns:[{include:"#String"},{include:"#NumericConstant"},{include:"#LogicalConstant"},{include:"#NullConstant"},{include:"#FloatNumber"},{include:"#DecimalNumber"},{include:"#HexNumber"},{include:"#IntNumber"}]},Noise:{patterns:[{include:"#BlockComment"},{include:"#LineComment"},{include:"#Whitespace"}]},Whitespace:{match:"\\s+"},BlockComment:{begin:"/\\*",end:"\\*/",name:"comment.block.powerquery"},LineComment:{match:"//.*",name:"comment.line.double-slash.powerquery"},"String":{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.powerquery"}},end:"\"(?!\")",endCaptures:{"0":{name:"punctuation.definition.string.end.powerquery"}},patterns:[{match:"\"\"",name:"constant.character.escape.quote.powerquery"},{include:"#EscapeSequence"}],name:"string.quoted.double.powerquery"},QuotedIdentifier:{begin:"#\"",beginCaptures:{"0":{name:"punctuation.definition.quotedidentifier.begin.powerquery"}},end:"\"(?!\")",endCaptures:{"0":{name:"punctuation.definition.quotedidentifier.end.powerquery"}},patterns:[{match:"\"\"",name:"constant.character.escape.quote.powerquery"},{include:"#EscapeSequence"}],name:"entity.name.powerquery"},EscapeSequence:{begin:"#\\(",beginCaptures:{"0":{name:"punctuation.definition.escapesequence.begin.powerquery"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.escapesequence.end.powerquery"}},patterns:[{match:"(#|\\h{4}|\\h{8}|cr|lf|tab)(?:,(#|\\h{4}|\\h{8}|cr|lf|tab))*"},{match:"[^\\)]",name:"invalid.illegal.escapesequence.powerquery"}],name:"constant.character.escapesequence.powerquery"},LogicalConstant:{match:"\\b(true|false)\\b",name:"constant.language.logical.powerquery"},NullConstant:{match:"\\b(null)\\b",name:"constant.language.null.powerquery"},NumericConstant:{match:"(?<![\\d\\w])(#infinity|#nan)\\b",captures:{"1":{name:"constant.language.numeric.float.powerquery"}}},HexNumber:{match:"0(x|X)\\h+",name:"constant.numeric.integer.hexadecimal.powerquery"},IntNumber:{match:"\\b(\\d+)\\b",captures:{"1":{name:"constant.numeric.integer.powerquery"}}},DecimalNumber:{match:"(?<![\\d\\w])(\\d*\\.\\d+)\\b",name:"constant.numeric.decimal.powerquery"},FloatNumber:{match:"(\\d*\\.)?\\d+(e|E)(\\+|-)?\\d+",name:"constant.numeric.float.powerquery"},InclusiveIdentifier:{match:"@",captures:{"0":{name:"inclusiveidentifier.powerquery"}}},Identifier:{match:"(?x:(?<![\\._\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Nd}\\p{Pc}\\p{Mn}\\p{Mc}\\p{Cf}])(@?)([_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}][_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Nd}\\p{Pc}\\p{Mn}\\p{Mc}\\p{Cf}]*(?:\\.[_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}][_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Nd}\\p{Pc}\\p{Mn}\\p{Mc}\\p{Cf}])*)\\b)",captures:{"1":{name:"keyword.operator.inclusiveidentifier.powerquery"},"2":{name:"entity.name.powerquery"}}},Operators:{match:"(=>)|(=)|(<>|<|>|<=|>=)|(&)|(\\+|-|\\*|\\/)|(!)|(\\?)",captures:{"1":{name:"keyword.operator.function.powerquery"},"2":{name:"keyword.operator.assignment-or-comparison.powerquery"},"3":{name:"keyword.operator.comparison.powerquery"},"4":{name:"keyword.operator.combination.powerquery"},"5":{name:"keyword.operator.arithmetic.powerquery"},"6":{name:"keyword.operator.sectionaccess.powerquery"},"7":{name:"keyword.operator.optional.powerquery"}}},DotOperators:{match:"(?<!\\.)(?:(\\.\\.\\.)|(\\.\\.))(?!\\.)",captures:{"1":{name:"keyword.operator.ellipsis.powerquery"},"2":{name:"keyword.operator.list.powerquery"}}},RecordExpression:{begin:"\\[",beginCaptures:{"0":{name:"punctuation.section.brackets.begin.powerquery"}},end:"\\]",endCaptures:{"0":{name:"punctuation.section.brackets.end.powerquery"}},patterns:[{include:"$self"}],contentName:"meta.recordexpression.powerquery"},Punctuation:{match:"(,)|(\\()|(\\))|({)|(})",captures:{"1":{name:"punctuation.separator.powerquery"},"2":{name:"punctuation.section.parens.begin.powerquery"},"3":{name:"punctuation.section.parens.end.powerquery"},"4":{name:"punctuation.section.braces.begin.powerquery"},"5":{name:"punctuation.section.braces.end.powerquery"}}},ImplicitVariable:{match:"\\b_\\b",name:"keyword.operator.implicitvariable.powerquery"},IntrinsicVariable:{match:"(?<![\\d\\w])(#sections|#shared)\\b",captures:{"1":{name:"constant.language.intrinsicvariable.powerquery"}}}}}; + +export { powerquery_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/powershell.tmLanguage-0b9e2100.mjs b/docs/shiki/dist/languages/powershell.tmLanguage-0b9e2100.mjs new file mode 100644 index 00000000..34ec35dc --- /dev/null +++ b/docs/shiki/dist/languages/powershell.tmLanguage-0b9e2100.mjs @@ -0,0 +1,3 @@ +var powershell_tmLanguage = {information_for_contributors:["This file has been converted from https://github.com/PowerShell/EditorSyntax/blob/master/PowerShellSyntax.tmLanguage","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."],version:"https://github.com/PowerShell/EditorSyntax/commit/742f0b5d4b60f5930c0b47fcc1f646860521296e",name:"powershell",scopeName:"source.powershell",patterns:[{begin:"<#",beginCaptures:{"0":{name:"punctuation.definition.comment.block.begin.powershell"}},end:"#>",endCaptures:{"0":{name:"punctuation.definition.comment.block.end.powershell"}},name:"comment.block.powershell",patterns:[{include:"#commentEmbeddedDocs"}]},{match:"[2-6]>&1|>>|>|<<|<|>|>\\||[1-6]>|[1-6]>>",name:"keyword.operator.redirection.powershell"},{include:"#commands"},{include:"#commentLine"},{include:"#variable"},{include:"#subexpression"},{include:"#function"},{include:"#attribute"},{include:"#UsingDirective"},{include:"#type"},{include:"#hashtable"},{include:"#doubleQuotedString"},{include:"#scriptblock"},{comment:"Needed to parse stuff correctly in 'argument mode'. (See about_parsing.)",include:"#doubleQuotedStringEscapes"},{begin:"['\\x{2018}-\\x{201B}]",beginCaptures:{"0":{name:"punctuation.definition.string.begin.powershell"}},end:"['\\x{2018}-\\x{201B}]",applyEndPatternLast:true,endCaptures:{"0":{name:"punctuation.definition.string.end.powershell"}},name:"string.quoted.single.powershell",patterns:[{match:"['\\x{2018}-\\x{201B}]{2}",name:"constant.character.escape.powershell"}]},{begin:"(@[\"\\x{201C}-\\x{201E}])\\s*$",beginCaptures:{"1":{name:"punctuation.definition.string.begin.powershell"}},end:"^[\"\\x{201C}-\\x{201E}]@",endCaptures:{"0":{name:"punctuation.definition.string.end.powershell"}},name:"string.quoted.double.heredoc.powershell",patterns:[{include:"#variableNoProperty"},{include:"#doubleQuotedStringEscapes"},{include:"#interpolation"}]},{begin:"(@['\\x{2018}-\\x{201B}])\\s*$",beginCaptures:{"1":{name:"punctuation.definition.string.begin.powershell"}},end:"^['\\x{2018}-\\x{201B}]@",endCaptures:{"0":{name:"punctuation.definition.string.end.powershell"}},name:"string.quoted.single.heredoc.powershell"},{include:"#numericConstant"},{begin:"(@)(\\()",beginCaptures:{"1":{name:"keyword.other.array.begin.powershell"},"2":{name:"punctuation.section.group.begin.powershell"}},end:"\\)",endCaptures:{"0":{name:"punctuation.section.group.end.powershell"}},name:"meta.group.array-expression.powershell",patterns:[{include:"$self"}]},{begin:"((\\$))(\\()",beginCaptures:{"1":{name:"keyword.other.substatement.powershell"},"2":{name:"punctuation.definition.subexpression.powershell"},"3":{name:"punctuation.section.group.begin.powershell"}},comment:"TODO: move to repo; make recursive.",end:"\\)",endCaptures:{"0":{name:"punctuation.section.group.end.powershell"}},name:"meta.group.complex.subexpression.powershell",patterns:[{include:"$self"}]},{match:"(\\b(([A-Za-z0-9\\-_\\.]+)\\.(?i:exe|com|cmd|bat))\\b)",name:"support.function.powershell"},{match:"(?<!\\w|-|\\.)((?i:begin|break|catch|clean|continue|data|default|define|do|dynamicparam|else|elseif|end|exit|finally|for|from|if|in|inlinescript|parallel|param|process|return|sequence|switch|throw|trap|try|until|var|while)|%|\\?)(?!\\w)",name:"keyword.control.powershell"},{match:"(?<!\\w|-|[^\\)]\\.)((?i:(foreach|where)(?!-object))|%|\\?)(?!\\w)",name:"keyword.control.powershell"},{begin:"(?<!\\w)(--%)(?!\\w)",beginCaptures:{"1":{name:"keyword.control.powershell"}},end:"$",patterns:[{match:".+",name:"string.unquoted.powershell"}],comment:"This should be moved to the repository at some point."},{comment:"This should only be relevant inside a class but will require a rework of how classes are matched. This is a temp fix.",match:"(?<!\\w)((?i:hidden|static))(?!\\w)",name:"storage.modifier.powershell"},{captures:{"1":{name:"storage.type.powershell"},"2":{name:"entity.name.function"}},comment:"capture should be entity.name.type, but it doesn't provide a good color in the default schema.",match:"(?<!\\w|-)((?i:class)|%|\\?)(?:\\s)+((?:\\p{L}|\\d|_|-|)+)\\b"},{match:"(?<!\\w)-(?i:is(?:not)?|as)\\b",name:"keyword.operator.comparison.powershell"},{match:"(?<!\\w)-(?i:[ic]?(?:eq|ne|[gl][te]|(?:not)?(?:like|match|contains|in)|replace))(?!\\p{L})",name:"keyword.operator.comparison.powershell"},{match:"(?<!\\w)-(?i:join|split)(?!\\p{L})|!",name:"keyword.operator.unary.powershell"},{match:"(?<!\\w)-(?i:and|or|not|xor)(?!\\p{L})|!",name:"keyword.operator.logical.powershell"},{match:"(?<!\\w)-(?i:band|bor|bnot|bxor|shl|shr)(?!\\p{L})",name:"keyword.operator.bitwise.powershell"},{match:"(?<!\\w)-(?i:f)(?!\\p{L})",name:"keyword.operator.string-format.powershell"},{match:"[+%*/-]?=|[+/*%-]",name:"keyword.operator.assignment.powershell"},{match:"\\|{2}|&{2}|;",name:"punctuation.terminator.statement.powershell"},{match:"&|(?<!\\w)\\.(?= )|`|,|\\|",name:"keyword.operator.other.powershell"},{comment:"This is very imprecise, is there a syntax for 'must come after...' ",match:"(?<!\\s|^)\\.\\.(?=\\-?\\d|\\(|\\$)",name:"keyword.operator.range.powershell"}],repository:{commentLine:{begin:"(?<![`\\\\-])(#)#*",captures:{"1":{name:"punctuation.definition.comment.powershell"}},end:"$\\n?",name:"comment.line.powershell",patterns:[{include:"#commentEmbeddedDocs"},{include:"#RequiresDirective"}]},attribute:{begin:"(\\[)\\s*\\b(?i)(cmdletbinding|alias|outputtype|parameter|validatenotnull|validatenotnullorempty|validatecount|validateset|allownull|allowemptycollection|allowemptystring|validatescript|validaterange|validatepattern|validatelength|supportswildcards)\\b",beginCaptures:{"1":{name:"punctuation.section.bracket.begin.powershell"},"2":{name:"support.function.attribute.powershell"}},end:"(\\])",endCaptures:{"1":{name:"punctuation.section.bracket.end.powershell"}},name:"meta.attribute.powershell",patterns:[{begin:"\\(",beginCaptures:{"0":{name:"punctuation.section.group.begin.powershell"}},end:"\\)",endCaptures:{"0":{name:"punctuation.section.group.end.powershell"}},patterns:[{include:"$self"},{match:"(?i)\\b(mandatory|valuefrompipeline|valuefrompipelinebypropertyname|valuefromremainingarguments|position|parametersetname|defaultparametersetname|supportsshouldprocess|supportspaging|positionalbinding|helpuri|confirmimpact|helpmessage)\\b(?:\\s+)?(=)?",captures:{"1":{name:"variable.parameter.attribute.powershell"},"2":{name:"keyword.operator.assignment.powershell"}}}]}]},commands:{patterns:[{comment:"Verb-Noun pattern:",match:"(?:(\\p{L}|\\d|_|-|\\\\|\\:)*\\\\)?\\b(?i:Add|Approve|Assert|Backup|Block|Build|Checkpoint|Clear|Close|Compare|Complete|Compress|Confirm|Connect|Convert|ConvertFrom|ConvertTo|Copy|Debug|Deny|Deploy|Disable|Disconnect|Dismount|Edit|Enable|Enter|Exit|Expand|Export|Find|Format|Get|Grant|Group|Hide|Import|Initialize|Install|Invoke|Join|Limit|Lock|Measure|Merge|Mount|Move|New|Open|Optimize|Out|Ping|Pop|Protect|Publish|Push|Read|Receive|Redo|Register|Remove|Rename|Repair|Request|Reset|Resize|Resolve|Restart|Restore|Resume|Revoke|Save|Search|Select|Send|Set|Show|Skip|Split|Start|Step|Stop|Submit|Suspend|Switch|Sync|Test|Trace|Unblock|Undo|Uninstall|Unlock|Unprotect|Unpublish|Unregister|Update|Use|Wait|Watch|Write)\\-.+?(?:\\.(?i:exe|cmd|bat|ps1))?\\b",name:"support.function.powershell"},{comment:"Builtin cmdlets with reserved verbs",match:"(?<!\\w)(?i:foreach-object)(?!\\w)",name:"support.function.powershell"},{comment:"Builtin cmdlets with reserved verbs",match:"(?<!\\w)(?i:where-object)(?!\\w)",name:"support.function.powershell"},{comment:"Builtin cmdlets with reserved verbs",match:"(?<!\\w)(?i:sort-object)(?!\\w)",name:"support.function.powershell"},{comment:"Builtin cmdlets with reserved verbs",match:"(?<!\\w)(?i:tee-object)(?!\\w)",name:"support.function.powershell"}]},commentEmbeddedDocs:{patterns:[{captures:{"1":{name:"constant.string.documentation.powershell"},"2":{name:"keyword.operator.documentation.powershell"}},comment:"these embedded doc keywords do not support arguments, must be the only thing on the line",match:"(?:^|\\G)(?i:\\s*(\\.)(COMPONENT|DESCRIPTION|EXAMPLE|FUNCTIONALITY|INPUTS|LINK|NOTES|OUTPUTS|ROLE|SYNOPSIS))\\s*$",name:"comment.documentation.embedded.powershell"},{captures:{"1":{name:"constant.string.documentation.powershell"},"2":{name:"keyword.operator.documentation.powershell"},"3":{name:"keyword.operator.documentation.powershell"}},comment:"these embedded doc keywords require arguments though the type required may be inconsistent, they may not all be able to use the same argument match",match:"(?:^|\\G)(?i:\\s*(\\.)(EXTERNALHELP|FORWARDHELP(?:CATEGORY|TARGETNAME)|PARAMETER|REMOTEHELPRUNSPACE))\\s+(.+?)\\s*$",name:"comment.documentation.embedded.powershell"}]},doubleQuotedStringEscapes:{patterns:[{match:"`[`0abefnrtv'\"\\x{2018}-\\x{201E}$]",name:"constant.character.escape.powershell"},{include:"#unicodeEscape"}]},unicodeEscape:{comment:"`u{xxxx} added in PowerShell 6.0",patterns:[{match:"`u\\{(?:(?:10)?([0-9a-fA-F]){1,4}|0?\\g<1>{1,5})}",name:"constant.character.escape.powershell"},{match:"`u(?:\\{[0-9a-fA-F]{,6}.)?",name:"invalid.character.escape.powershell"}]},"function":{begin:"^(?:\\s*+)(?i)(function|filter|configuration|workflow)\\s+(?:(global|local|script|private):)?((?:\\p{L}|\\d|_|-|\\.)+)",beginCaptures:{"0":{name:"meta.function.powershell"},"1":{name:"storage.type.powershell"},"2":{name:"storage.modifier.scope.powershell"},"3":{name:"entity.name.function.powershell"}},end:"(?=\\{|\\()",patterns:[{include:"#commentLine"}]},subexpression:{begin:"\\(",beginCaptures:{"0":{name:"punctuation.section.group.begin.powershell"}},end:"\\)",endCaptures:{"0":{name:"punctuation.section.group.end.powershell"}},name:"meta.group.simple.subexpression.powershell",patterns:[{include:"$self"}]},interpolation:{begin:"(((\\$)))((\\())",beginCaptures:{"1":{name:"keyword.other.substatement.powershell"},"2":{name:"punctuation.definition.substatement.powershell"},"3":{name:"punctuation.section.embedded.substatement.begin.powershell"},"4":{name:"punctuation.section.group.begin.powershell"},"5":{name:"punctuation.section.embedded.substatement.begin.powershell"}},contentName:"interpolated.complex.source.powershell",end:"(\\))",endCaptures:{"0":{name:"punctuation.section.group.end.powershell"},"1":{name:"punctuation.section.embedded.substatement.end.powershell"}},name:"meta.embedded.substatement.powershell",patterns:[{include:"$self"}]},numericConstant:{patterns:[{captures:{"1":{name:"constant.numeric.hex.powershell"},"2":{name:"keyword.other.powershell"}},match:"(?<!\\w)([-+]?0(?:x|X)[0-9a-fA-F_]+(?:U|u|L|l|UL|Ul|uL|ul|LU|Lu|lU|lu)?)((?i:[kmgtp]b)?)\\b"},{captures:{"1":{name:"constant.numeric.integer.powershell"},"2":{name:"keyword.other.powershell"}},match:"(?<!\\w)([-+]?(?:[0-9_]+)?\\.[0-9_]+(?:(?:e|E)[0-9]+)?(?:F|f|D|d|M|m)?)((?i:[kmgtp]b)?)\\b"},{captures:{"1":{name:"constant.numeric.octal.powershell"},"2":{name:"keyword.other.powershell"}},match:"(?<!\\w)([-+]?0(?:b|B)[01_]+(?:U|u|L|l|UL|Ul|uL|ul|LU|Lu|lU|lu)?)((?i:[kmgtp]b)?)\\b"},{captures:{"1":{name:"constant.numeric.integer.powershell"},"2":{name:"keyword.other.powershell"}},match:"(?<!\\w)([-+]?[0-9_]+(?:e|E)(?:[0-9_])?+(?:F|f|D|d|M|m)?)((?i:[kmgtp]b)?)\\b"},{captures:{"1":{name:"constant.numeric.integer.powershell"},"2":{name:"keyword.other.powershell"}},match:"(?<!\\w)([-+]?[0-9_]+\\.(?:e|E)(?:[0-9_])?+(?:F|f|D|d|M|m)?)((?i:[kmgtp]b)?)\\b"},{captures:{"1":{name:"constant.numeric.integer.powershell"},"2":{name:"keyword.other.powershell"}},match:"(?<!\\w)([-+]?[0-9_]+[\\.]?(?:F|f|D|d|M|m))((?i:[kmgtp]b)?)\\b"},{captures:{"1":{name:"constant.numeric.integer.powershell"},"2":{name:"keyword.other.powershell"}},match:"(?<!\\w)([-+]?[0-9_]+[\\.]?(?:U|u|L|l|UL|Ul|uL|ul|LU|Lu|lU|lu)?)((?i:[kmgtp]b)?)\\b"}]},scriptblock:{begin:"\\{",beginCaptures:{"0":{name:"punctuation.section.braces.begin.powershell"}},end:"\\}",endCaptures:{"0":{name:"punctuation.section.braces.end.powershell"}},name:"meta.scriptblock.powershell",patterns:[{include:"$self"}]},type:{begin:"\\[",beginCaptures:{"0":{name:"punctuation.section.bracket.begin.powershell"}},end:"\\]",endCaptures:{"0":{name:"punctuation.section.bracket.end.powershell"}},patterns:[{match:"(?!\\d+|\\.)(?:\\p{L}|\\p{N}|\\.)+",name:"storage.type.powershell"},{include:"$self"}]},variable:{patterns:[{captures:{"0":{name:"constant.language.powershell"},"1":{name:"punctuation.definition.variable.powershell"}},comment:"These are special constants.",match:"(\\$)(?i:(False|Null|True))\\b"},{captures:{"0":{name:"support.constant.variable.powershell"},"1":{name:"punctuation.definition.variable.powershell"},"3":{name:"variable.other.member.powershell"}},comment:"These are the other built-in constants.",match:"(\\$)(?i:(Error|ExecutionContext|Host|Home|PID|PsHome|PsVersionTable|ShellID))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?\\b"},{captures:{"0":{name:"support.variable.automatic.powershell"},"1":{name:"punctuation.definition.variable.powershell"},"3":{name:"variable.other.member.powershell"}},comment:"Automatic variables are not constants, but they are read-only. In monokai (default) color schema support.variable doesn't have color, so we use constant.",match:"(\\$)((?:[$^?])|(?i:_|Args|ConsoleFileName|Event|EventArgs|EventSubscriber|ForEach|Input|LastExitCode|Matches|MyInvocation|NestedPromptLevel|Profile|PSBoundParameters|PsCmdlet|PsCulture|PSDebugContext|PSItem|PSCommandPath|PSScriptRoot|PsUICulture|Pwd|Sender|SourceArgs|SourceEventArgs|StackTrace|Switch|This)\\b)((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?"},{captures:{"0":{name:"variable.language.powershell"},"1":{name:"punctuation.definition.variable.powershell"},"3":{name:"variable.other.member.powershell"}},comment:"Style preference variables as language variables so that they stand out.",match:"(\\$)(?i:(ConfirmPreference|DebugPreference|ErrorActionPreference|ErrorView|FormatEnumerationLimit|InformationPreference|LogCommandHealthEvent|LogCommandLifecycleEvent|LogEngineHealthEvent|LogEngineLifecycleEvent|LogProviderHealthEvent|LogProviderLifecycleEvent|MaximumAliasCount|MaximumDriveCount|MaximumErrorCount|MaximumFunctionCount|MaximumHistoryCount|MaximumVariableCount|OFS|OutputEncoding|PSCulture|PSDebugContext|PSDefaultParameterValues|PSEmailServer|PSItem|PSModuleAutoLoadingPreference|PSModuleAutoloadingPreference|PSSenderInfo|PSSessionApplicationName|PSSessionConfigurationName|PSSessionOption|ProgressPreference|VerbosePreference|WarningPreference|WhatIfPreference))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?\\b"},{captures:{"0":{name:"variable.other.readwrite.powershell"},"1":{name:"punctuation.definition.variable.powershell"},"2":{name:"storage.modifier.scope.powershell"},"4":{name:"variable.other.member.powershell"}},match:"(?i:(\\$|@)(global|local|private|script|using|workflow):((?:\\p{L}|\\d|_)+))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?"},{captures:{"0":{name:"variable.other.readwrite.powershell"},"1":{name:"punctuation.definition.variable.powershell"},"2":{name:"punctuation.section.braces.begin.powershell"},"3":{name:"storage.modifier.scope.powershell"},"5":{name:"punctuation.section.braces.end.powershell"},"6":{name:"variable.other.member.powershell"}},match:"(?i:(\\$)(\\{)(global|local|private|script|using|workflow):([^}]*[^}`])(\\}))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?"},{captures:{"0":{name:"variable.other.readwrite.powershell"},"1":{name:"punctuation.definition.variable.powershell"},"2":{name:"support.variable.drive.powershell"},"4":{name:"variable.other.member.powershell"}},match:"(?i:(\\$|@)((?:\\p{L}|\\d|_)+:)?((?:\\p{L}|\\d|_)+))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?"},{captures:{"0":{name:"variable.other.readwrite.powershell"},"1":{name:"punctuation.definition.variable.powershell"},"2":{name:"punctuation.section.braces.begin.powershell"},"3":{name:"support.variable.drive.powershell"},"5":{name:"punctuation.section.braces.end.powershell"},"6":{name:"variable.other.member.powershell"}},match:"(?i:(\\$)(\\{)((?:\\p{L}|\\d|_)+:)?([^}]*[^}`])(\\}))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?"}]},UsingDirective:{match:"(?<!\\w)(?i:(using))\\s+(?i:(namespace|module))\\s+(?i:((?:\\w+(?:\\.)?)+))",captures:{"1":{name:"keyword.control.using.powershell"},"2":{name:"keyword.other.powershell"},"3":{name:"variable.parameter.powershell"}}},RequiresDirective:{begin:"(?<=#)(?i:(requires))\\s",beginCaptures:{"0":{name:"keyword.control.requires.powershell"}},end:"$",name:"meta.requires.powershell",patterns:[{match:"\\-(?i:Modules|PSSnapin|RunAsAdministrator|ShellId|Version|Assembly|PSEdition)",name:"keyword.other.powershell"},{match:"(?<!-)\\b\\p{L}+|\\d+(?:\\.\\d+)*",name:"variable.parameter.powershell"},{include:"#hashtable"}]},variableNoProperty:{patterns:[{captures:{"0":{name:"constant.language.powershell"},"1":{name:"punctuation.definition.variable.powershell"}},comment:"These are special constants.",match:"(\\$)(?i:(False|Null|True))\\b"},{captures:{"0":{name:"support.constant.variable.powershell"},"1":{name:"punctuation.definition.variable.powershell"},"3":{name:"variable.other.member.powershell"}},comment:"These are the other built-in constants.",match:"(\\$)(?i:(Error|ExecutionContext|Host|Home|PID|PsHome|PsVersionTable|ShellID))\\b"},{captures:{"0":{name:"support.variable.automatic.powershell"},"1":{name:"punctuation.definition.variable.powershell"},"3":{name:"variable.other.member.powershell"}},comment:"Automatic variables are not constants, but they are read-only...",match:"(\\$)((?:[$^?])|(?i:_|Args|ConsoleFileName|Event|EventArgs|EventSubscriber|ForEach|Input|LastExitCode|Matches|MyInvocation|NestedPromptLevel|Profile|PSBoundParameters|PsCmdlet|PsCulture|PSDebugContext|PSItem|PSCommandPath|PSScriptRoot|PsUICulture|Pwd|Sender|SourceArgs|SourceEventArgs|StackTrace|Switch|This)\\b)"},{captures:{"0":{name:"variable.language.powershell"},"1":{name:"punctuation.definition.variable.powershell"},"3":{name:"variable.other.member.powershell"}},comment:"Style preference variables as language variables so that they stand out.",match:"(\\$)(?i:(ConfirmPreference|DebugPreference|ErrorActionPreference|ErrorView|FormatEnumerationLimit|InformationPreference|LogCommandHealthEvent|LogCommandLifecycleEvent|LogEngineHealthEvent|LogEngineLifecycleEvent|LogProviderHealthEvent|LogProviderLifecycleEvent|MaximumAliasCount|MaximumDriveCount|MaximumErrorCount|MaximumFunctionCount|MaximumHistoryCount|MaximumVariableCount|OFS|OutputEncoding|PSCulture|PSDebugContext|PSDefaultParameterValues|PSEmailServer|PSItem|PSModuleAutoLoadingPreference|PSModuleAutoloadingPreference|PSSenderInfo|PSSessionApplicationName|PSSessionConfigurationName|PSSessionOption|ProgressPreference|VerbosePreference|WarningPreference|WhatIfPreference))\\b"},{captures:{"0":{name:"variable.other.readwrite.powershell"},"1":{name:"punctuation.definition.variable.powershell"},"2":{name:"storage.modifier.scope.powershell"},"4":{name:"variable.other.member.powershell"}},match:"(?i:(\\$)(global|local|private|script|using|workflow):((?:\\p{L}|\\d|_)+))"},{captures:{"0":{name:"variable.other.readwrite.powershell"},"1":{name:"punctuation.definition.variable.powershell"},"2":{name:"storage.modifier.scope.powershell"},"4":{name:"keyword.other.powershell"},"5":{name:"variable.other.member.powershell"}},match:"(?i:(\\$)(\\{)(global|local|private|script|using|workflow):([^}]*[^}`])(\\}))"},{captures:{"0":{name:"variable.other.readwrite.powershell"},"1":{name:"punctuation.definition.variable.powershell"},"2":{name:"support.variable.drive.powershell"},"4":{name:"variable.other.member.powershell"}},match:"(?i:(\\$)((?:\\p{L}|\\d|_)+:)?((?:\\p{L}|\\d|_)+))"},{captures:{"0":{name:"variable.other.readwrite.powershell"},"1":{name:"punctuation.definition.variable.powershell"},"2":{name:"punctuation.section.braces.begin"},"3":{name:"support.variable.drive.powershell"},"5":{name:"punctuation.section.braces.end"}},match:"(?i:(\\$)(\\{)((?:\\p{L}|\\d|_)+:)?([^}]*[^}`])(\\}))"}]},hashtable:{begin:"(@)(\\{)",beginCaptures:{"1":{name:"keyword.other.hashtable.begin.powershell"},"2":{name:"punctuation.section.braces.begin.powershell"}},end:"(\\})",endCaptures:{"1":{name:"punctuation.section.braces.end.powershell"}},name:"meta.hashtable.powershell",patterns:[{captures:{"1":{name:"punctuation.definition.string.begin.powershell"},"2":{name:"variable.other.readwrite.powershell"},"3":{name:"punctuation.definition.string.end.powershell"},"4":{name:"keyword.operator.assignment.powershell"}},match:"\\b((?:\\'|\\\")?)(\\w+)((?:\\'|\\\")?)(?:\\s+)?(=)(?:\\s+)?",name:"meta.hashtable.assignment.powershell"},{include:"#scriptblock"},{include:"$self"}]},doubleQuotedString:{begin:"[\"\\x{201C}-\\x{201E}]",beginCaptures:{"0":{name:"punctuation.definition.string.begin.powershell"}},end:"[\"\\x{201C}-\\x{201E}]",applyEndPatternLast:true,endCaptures:{"0":{name:"punctuation.definition.string.end.powershell"}},name:"string.quoted.double.powershell",patterns:[{match:"(?i)\\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,64}\\b"},{include:"#variableNoProperty"},{include:"#doubleQuotedStringEscapes"},{match:"[\"\\x{201C}-\\x{201E}]{2}",name:"constant.character.escape.powershell"},{include:"#interpolation"},{match:"`\\s*$",name:"keyword.other.powershell"}]}}}; + +export { powershell_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/prisma.tmLanguage-c4dcb630.mjs b/docs/shiki/dist/languages/prisma.tmLanguage-c4dcb630.mjs new file mode 100644 index 00000000..9d15eb9a --- /dev/null +++ b/docs/shiki/dist/languages/prisma.tmLanguage-c4dcb630.mjs @@ -0,0 +1,3 @@ +var prisma_tmLanguage = {$schema:"https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",name:"prisma",scopeName:"source.prisma",fileTypes:["prisma"],patterns:[{include:"#triple_comment"},{include:"#double_comment"},{include:"#model_block_definition"},{include:"#config_block_definition"},{include:"#enum_block_definition"},{include:"#type_definition"}],repository:{model_block_definition:{begin:"^\\s*(model|type|view)\\s+([A-Za-z][\\w]*)\\s*({)",name:"source.prisma.embedded.source",beginCaptures:{"1":{name:"storage.type.model.prisma"},"2":{name:"entity.name.type.model.prisma"},"3":{name:"punctuation.definition.tag.prisma"}},patterns:[{include:"#triple_comment"},{include:"#double_comment"},{include:"#field_definition"}],end:"\\s*\\}",endCaptures:{"0":{name:"punctuation.definition.tag.prisma"}}},enum_block_definition:{begin:"^\\s*(enum)\\s+([A-Za-z][\\w]*)\\s+({)",name:"source.prisma.embedded.source",beginCaptures:{"1":{name:"storage.type.enum.prisma"},"2":{name:"entity.name.type.enum.prisma"},"3":{name:"punctuation.definition.tag.prisma"}},patterns:[{include:"#triple_comment"},{include:"#double_comment"},{include:"#enum_value_definition"}],end:"\\s*\\}",endCaptures:{"0":{name:"punctuation.definition.tag.prisma"}}},config_block_definition:{begin:"^\\s*(generator|datasource)\\s+([A-Za-z][\\w]*)\\s+({)",name:"source.prisma.embedded.source",beginCaptures:{"1":{name:"storage.type.config.prisma"},"2":{name:"entity.name.type.config.prisma"},"3":{name:"punctuation.definition.tag.prisma"}},patterns:[{include:"#triple_comment"},{include:"#double_comment"},{include:"#assignment"}],end:"\\s*\\}",endCaptures:{"1":{name:"punctuation.definition.tag.prisma"}}},assignment:{patterns:[{begin:"^\\s*(\\w+)\\s*(=)\\s*",beginCaptures:{"1":{name:"variable.other.assignment.prisma"},"2":{name:"keyword.operator.terraform"}},patterns:[{include:"#value"},{include:"#double_comment_inline"}],end:"\\n"}]},field_definition:{name:"scalar.field",patterns:[{match:"^\\s*(\\w+)(\\s*:)?\\s+((?!(?:Int|String|DateTime|Bytes|Decimal|Float|Json|Boolean)\\b)\\b\\w+)?(Int|String|DateTime|Bytes|Decimal|Float|Json|Boolean)?(\\[\\])?(\\?)?(\\!)?",captures:{"1":{name:"variable.other.assignment.prisma"},"2":{name:"invalid.illegal.colon.prisma"},"3":{name:"variable.language.relations.prisma"},"4":{name:"support.type.primitive.prisma"},"5":{name:"keyword.operator.list_type.prisma"},"6":{name:"keyword.operator.optional_type.prisma"},"7":{name:"invalid.illegal.required_type.prisma"}}},{include:"#attribute_with_arguments"},{include:"#attribute"}]},type_definition:{patterns:[{match:"^\\s*(type)\\s+(\\w+)\\s*=\\s*(\\w+)",captures:{"1":{name:"storage.type.type.prisma"},"2":{name:"entity.name.type.type.prisma"},"3":{name:"support.type.primitive.prisma"}}},{include:"#attribute_with_arguments"},{include:"#attribute"}]},enum_value_definition:{patterns:[{match:"^\\s*(\\w+)\\s*",captures:{"1":{name:"variable.other.assignment.prisma"}}},{include:"#attribute_with_arguments"},{include:"#attribute"}]},attribute_with_arguments:{name:"source.prisma.attribute.with_arguments",begin:"(@@?[\\w\\.]+)(\\()",beginCaptures:{"1":{name:"entity.name.function.attribute.prisma"},"2":{name:"punctuation.definition.tag.prisma"}},patterns:[{include:"#named_argument"},{include:"#value"}],end:"\\)",endCaptures:{"0":{name:"punctuation.definition.tag.prisma"}}},attribute:{name:"source.prisma.attribute",match:"(@@?[\\w\\.]+)",captures:{"1":{name:"entity.name.function.attribute.prisma"}}},array:{name:"source.prisma.array",begin:"\\[",beginCaptures:{"1":{name:"punctuation.definition.tag.prisma"}},patterns:[{include:"#value"}],end:"\\]",endCaptures:{"1":{name:"punctuation.definition.tag.prisma"}}},value:{name:"source.prisma.value",patterns:[{include:"#array"},{include:"#functional"},{include:"#literal"}]},functional:{name:"source.prisma.functional",begin:"(\\w+)(\\()",beginCaptures:{"1":{name:"support.function.functional.prisma"},"2":{name:"punctuation.definition.tag.prisma"}},patterns:[{include:"#value"}],end:"\\)",endCaptures:{"0":{name:"punctuation.definition.tag.prisma"}}},literal:{name:"source.prisma.literal",patterns:[{include:"#boolean"},{include:"#number"},{include:"#double_quoted_string"},{include:"#identifier"}]},identifier:{patterns:[{match:"\\b(\\w)+\\b",name:"support.constant.constant.prisma"}]},map_key:{name:"source.prisma.key",patterns:[{match:"(\\w+)\\s*(:)\\s*",captures:{"1":{name:"variable.parameter.key.prisma"},"2":{name:"punctuation.definition.separator.key-value.prisma"}}}]},named_argument:{name:"source.prisma.named_argument",patterns:[{include:"#map_key"},{include:"#value"}]},triple_comment:{begin:"///",end:"$\\n?",name:"comment.prisma"},double_comment:{begin:"//",end:"$\\n?",name:"comment.prisma"},double_comment_inline:{match:"//[^\\n]*",name:"comment.prisma"},boolean:{match:"\\b(true|false)\\b",name:"constant.language.boolean.prisma"},number:{match:"((0(x|X)[0-9a-fA-F]*)|(\\+|-)?\\b(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)([LlFfUuDdg]|UL|ul)?\\b",name:"constant.numeric.prisma"},double_quoted_string:{begin:"\"",beginCaptures:{"0":{name:"string.quoted.double.start.prisma"}},end:"\"",endCaptures:{"0":{name:"string.quoted.double.end.prisma"}},patterns:[{include:"#string_interpolation"},{match:"([\\w\\-\\/\\._\\\\%@:\\?=]+)",name:"string.quoted.double.prisma"}],name:"unnamed"},string_interpolation:{patterns:[{begin:"\\$\\{",beginCaptures:{"0":{name:"keyword.control.interpolation.start.prisma"}},end:"\\s*\\}",endCaptures:{"0":{name:"keyword.control.interpolation.end.prisma"}},name:"source.tag.embedded.source.prisma",patterns:[{include:"#value"}]}]}}}; + +export { prisma_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/prolog.tmLanguage-cf9cb4e0.mjs b/docs/shiki/dist/languages/prolog.tmLanguage-cf9cb4e0.mjs new file mode 100644 index 00000000..fda70bb3 --- /dev/null +++ b/docs/shiki/dist/languages/prolog.tmLanguage-cf9cb4e0.mjs @@ -0,0 +1,3 @@ +var prolog_tmLanguage = {comment:"This Source Code Form is subject to the terms of the Mozilla Public License,\nv. 2.0. If a copy of the MPL was not distributed with this file, You can obtain\none at http://mozilla.org/MPL/2.0/.",name:"prolog",scopeName:"source.prolog",fileTypes:["pl","pro"],uuid:"df89928b-6612-475a-b414-f319d9b98664",patterns:[{include:"#comments"},{name:"meta.clause.body.prolog",begin:"(?<=:-)\\s*",end:"(\\.)",endCaptures:{"1":{name:"keyword.control.clause.bodyend.prolog"}},patterns:[{include:"#comments"},{include:"#builtin"},{include:"#controlandkeywords"},{include:"#atom"},{include:"#variable"},{include:"#constants"},{name:"meta.clause.body.prolog",match:"."}]},{name:"meta.clause.head.prolog",begin:"^\\s*([a-z][a-zA-Z0-9_]*)(\\(?)(?=.*:-.*)",beginCaptures:{"1":{name:"entity.name.function.clause.prolog"},"2":{name:"punctuation.definition.parameters.begin"}},end:"((\\)?))\\s*(:-)",endCaptures:{"1":{name:"punctuation.definition.parameters.end"},"3":{name:"keyword.control.clause.bodybegin.prolog"}},patterns:[{include:"#atom"},{include:"#variable"},{include:"#constants"}]},{name:"meta.dcg.head.prolog",begin:"^\\s*([a-z][a-zA-Z0-9_]*)(\\(?)(?=.*-->.*)",beginCaptures:{"1":{name:"entity.name.function.dcg.prolog"},"2":{name:"punctuation.definition.parameters.begin"}},end:"((\\)?))\\s*(-->)",endCaptures:{"1":{name:"punctuation.definition.parameters.end"},"3":{name:"keyword.control.dcg.bodybegin.prolog"}},patterns:[{include:"#atom"},{include:"#variable"},{include:"#constants"}]},{name:"meta.dcg.body.prolog",begin:"(?<=-->)\\s*",end:"(\\.)",endCaptures:{"1":{name:"keyword.control.dcg.bodyend.prolog"}},patterns:[{include:"#comments"},{include:"#controlandkeywords"},{include:"#atom"},{include:"#variable"},{include:"#constants"},{name:"meta.dcg.body.prolog",match:"."}]},{name:"meta.fact.prolog",begin:"^\\s*([a-zA-Z][a-zA-Z0-9_]*)(\\(?)(?!.*(:-|-->).*)",beginCaptures:{"1":{name:"entity.name.function.fact.prolog"},"2":{name:"punctuation.definition.parameters.begin"}},end:"((\\)?))\\s*(\\.)(?!\\d+)",endCaptures:{"1":{name:"punctuation.definition.parameters.end"},"3":{name:"keyword.control.fact.end.prolog"}},patterns:[{include:"#comments"},{include:"#atom"},{include:"#variable"},{include:"#constants"}]}],repository:{atom:{patterns:[{name:"constant.other.atom.simple.prolog",match:"(?<![a-zA-Z0-9_])[a-z][a-zA-Z0-9_]*(?!\\s*\\(|[a-zA-Z0-9_])"},{name:"constant.other.atom.quoted.prolog",match:"'.*?'"},{name:"constant.other.atom.emptylist.prolog",match:"\\[\\]"}]},builtin:{patterns:[{name:"keyword.other",match:"\\b(op|nl|fail|dynamic|discontiguous|initialization|meta_predicate|module_transparent|multifile|public|thread_local|thread_initialization|volatile)\\b"},{name:"support.function.builtin.prolog",match:"\\b(abolish|abort|abs|absolute_file_name|access_file|acos|acosh|acyclic_term|add_import_module|append|apropos|arg|asin|asinh|assert|asserta|assertz|at_end_of_stream|at_halt|atan|atanh|atom|atom_chars|atom_codes|atom_concat|atom_length|atom_number|atom_prefix|atom_string|atom_to_stem_list|atom_to_term|atomic|atomic_concat|atomic_list_concat|atomics_to_string|attach_packs|attr_portray_hook|attr_unify_hook|attribute_goals|attvar|autoload|autoload_path|b_getval|b_set_dict|b_setval|bagof|begin_tests|between|blob|break|byte_count|call_dcg|call_residue_vars|callable|cancel_halt|catch|ceil|ceiling|char_code|char_conversion|char_type|character_count|chdir|chr_leash|chr_notrace|chr_show_store|chr_trace|clause|clause_property|close|close_dde_conversation|close_table|code_type|collation_key|compare|compare_strings|compile_aux_clauses|compile_predicates|compiling|compound|compound_name_arguments|compound_name_arity|consult|context_module|copy_predicate_clauses|copy_stream_data|copy_term|copy_term_nat|copysign|cos|cosh|cputime|create_prolog_flag|current_arithmetic_function|current_atom|current_blob|current_char_conversion|current_engine|current_flag|current_format_predicate|current_functor|current_input|current_key|current_locale|current_module|current_op|current_output|current_predicate|current_prolog_flag|current_signal|current_stream|current_trie|cyclic_term|date_time_stamp|date_time_value|day_of_the_week|dcg_translate_rule|dde_current_connection|dde_current_service|dde_execute|dde_poke|dde_register_service|dde_request|dde_unregister_service|debug|debugging|default_module|del_attr|del_attrs|del_dict|delete_directory|delete_file|delete_import_module|deterministic|dict_create|dict_pairs|dif|directory_files|divmod|doc_browser|doc_collect|doc_load_library|doc_server|double_metaphone|downcase_atom|dtd|dtd_property|duplicate_term|dwim_match|dwim_predicate|e|edit|encoding|engine_create|engine_fetch|engine_next|engine_next_reified|engine_post|engine_self|engine_yield|ensure_loaded|epsilon|erase|erf|erfc|eval|exception|exists_directory|exists_file|exists_source|exp|expand_answer|expand_file_name|expand_file_search_path|expand_goal|expand_query|expand_term|explain|fast_read|fast_term_serialized|fast_write|file_base_name|file_directory_name|file_name_extension|file_search_path|fill_buffer|find_chr_constraint|findall|findnsols|flag|float|float_fractional_part|float_integer_part|floor|flush_output|forall|format|format_predicate|format_time|free_dtd|free_sgml_parser|free_table|freeze|frozen|functor|garbage_collect|garbage_collect_atoms|garbage_collect_clauses|gdebug|get|get_attr|get_attrs|get_byte|get_char|get_code|get_dict|get_flag|get_sgml_parser|get_single_char|get_string_code|get_table_attribute|get_time|getbit|getenv|goal_expansion|ground|gspy|gtrace|guitracer|gxref|gzopen|halt|help|import_module|in_pce_thread|in_pce_thread_sync|in_table|include|inf|instance|integer|iri_xml_namespace|is_absolute_file_name|is_dict|is_engine|is_list|is_stream|is_thread|keysort|known_licenses|leash|length|lgamma|library_directory|license|line_count|line_position|list_strings|listing|load_dtd|load_files|load_html|load_rdf|load_sgml|load_structure|load_test_files|load_xml|locale_create|locale_destroy|locale_property|locale_sort|log|lsb|make|make_directory|make_library_index|max|memberchk|message_hook|message_property|message_queue_create|message_queue_destroy|message_queue_property|message_to_string|min|module|module_property|msb|msort|mutex_create|mutex_destroy|mutex_lock|mutex_property|mutex_statistics|mutex_trylock|mutex_unlock|name|nan|nb_current|nb_delete|nb_getval|nb_link_dict|nb_linkarg|nb_linkval|nb_set_dict|nb_setarg|nb_setval|new_dtd|new_order_table|new_sgml_parser|new_table|nl|nodebug|noguitracer|nonvar|noprotocol|normalize_space|nospy|nospyall|notrace|nth_clause|nth_integer_root_and_remainder|number|number_chars|number_codes|number_string|numbervars|odbc_close_statement|odbc_connect|odbc_current_connection|odbc_current_table|odbc_data_source|odbc_debug|odbc_disconnect|odbc_driver_connect|odbc_end_transaction|odbc_execute|odbc_fetch|odbc_free_statement|odbc_get_connection|odbc_prepare|odbc_query|odbc_set_connection|odbc_statistics|odbc_table_column|odbc_table_foreign_key|odbc_table_primary_key|odbc_type|on_signal|op|open|open_dde_conversation|open_dtd|open_null_stream|open_resource|open_string|open_table|order_table_mapping|parse_time|passed|pce_dispatch|pdt_install_console|peek_byte|peek_char|peek_code|peek_string|phrase|plus|popcount|porter_stem|portray|portray_clause|powm|predicate_property|predsort|prefix_string|print|print_message|print_message_lines|process_rdf|profile|profiler|project_attributes|prolog|prolog_choice_attribute|prolog_current_choice|prolog_current_frame|prolog_cut_to|prolog_debug|prolog_exception_hook|prolog_file_type|prolog_frame_attribute|prolog_ide|prolog_list_goal|prolog_load_context|prolog_load_file|prolog_nodebug|prolog_skip_frame|prolog_skip_level|prolog_stack_property|prolog_to_os_filename|prolog_trace_interception|prompt|protocol|protocola|protocolling|put|put_attr|put_attrs|put_byte|put_char|put_code|put_dict|qcompile|qsave_program|random|random_float|random_property|rational|rationalize|rdf_write_xml|read|read_clause|read_history|read_link|read_pending_chars|read_pending_codes|read_string|read_table_fields|read_table_record|read_table_record_data|read_term|read_term_from_atom|recorda|recorded|recordz|redefine_system_predicate|reexport|reload_library_index|rename_file|require|reset|reset_profiler|resource|retract|retractall|round|run_tests|running_tests|same_file|same_term|see|seeing|seek|seen|select_dict|set_end_of_stream|set_flag|set_input|set_locale|set_module|set_output|set_prolog_IO|set_prolog_flag|set_prolog_stack|set_random|set_sgml_parser|set_stream|set_stream_position|set_test_options|setarg|setenv|setlocale|setof|sgml_parse|shell|shift|show_coverage|show_profile|sign|sin|sinh|size_file|skip|sleep|sort|source_exports|source_file|source_file_property|source_location|split_string|spy|sqrt|stamp_date_time|statistics|stream_pair|stream_position_data|stream_property|string|string_chars|string_code|string_codes|string_concat|string_length|string_lower|string_upper|strip_module|style_check|sub_atom|sub_atom_icasechk|sub_string|subsumes_term|succ|suite|swritef|tab|table_previous_record|table_start_of_record|table_version|table_window|tan|tanh|tell|telling|term_attvars|term_expansion|term_hash|term_string|term_subsumer|term_to_atom|term_variables|test|test_report|text_to_string|thread_at_exit|thread_create|thread_detach|thread_exit|thread_get_message|thread_join|thread_message_hook|thread_peek_message|thread_property|thread_self|thread_send_message|thread_setconcurrency|thread_signal|thread_statistics|throw|time|time_file|tmp_file|tmp_file_stream|tokenize_atom|told|trace|tracing|trie_destroy|trie_gen|trie_insert|trie_insert_new|trie_lookup|trie_new|trie_property|trie_term|trim_stacks|truncate|tty_get_capability|tty_goto|tty_put|tty_size|ttyflush|unaccent_atom|unifiable|unify_with_occurs_check|unix|unknown|unload_file|unsetenv|upcase_atom|use_module|var|var_number|var_property|variant_hash|version|visible|wait_for_input|when|wildcard_match|win_add_dll_directory|win_exec|win_folder|win_has_menu|win_insert_menu|win_insert_menu_item|win_registry_get_value|win_remove_dll_directory|win_shell|win_window_pos|window_title|with_mutex|with_output_to|working_directory|write|write_canonical|write_length|write_term|writef|writeln|writeq|xml_is_dom|xml_to_rdf|zopen)\\b"}]},comments:{patterns:[{name:"comment.line.percent-sign.prolog",match:"%.*"},{name:"comment.block.prolog",begin:"/\\*",end:"\\*/",captures:{"0":{name:"punctuation.definition.comment.prolog"}}}]},constants:{patterns:[{name:"constant.numeric.integer.prolog",match:"(?<![a-zA-Z]|/)(\\d+|(\\d+\\.\\d+))"},{name:"string.quoted.double.prolog",match:"\".*?\""}]},controlandkeywords:{patterns:[{name:"meta.if.prolog",begin:"(->)",beginCaptures:{"1":{name:"keyword.control.if.prolog"}},end:"(;)",endCaptures:{"1":{name:"keyword.control.else.prolog"}},patterns:[{include:"$self"},{include:"#builtin"},{include:"#comments"},{include:"#atom"},{include:"#variable"},{name:"meta.if.body.prolog",match:"."}]},{name:"keyword.control.cut.prolog",match:"!"},{name:"keyword.operator.prolog",match:"(\\s(is)\\s)|=:=|=\\.\\.|=?\\\\?=|\\\\\\+|@?>|@?=?<|\\+|\\*|\\-"}]},variable:{patterns:[{name:"variable.parameter.uppercase.prolog",match:"(?<![a-zA-Z0-9_])[A-Z][a-zA-Z0-9_]*"},{name:"variable.language.anonymous.prolog",match:"(?<!\\w)_"}]}}}; + +export { prolog_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/proto.tmLanguage-791e2569.mjs b/docs/shiki/dist/languages/proto.tmLanguage-791e2569.mjs new file mode 100644 index 00000000..3354e59f --- /dev/null +++ b/docs/shiki/dist/languages/proto.tmLanguage-791e2569.mjs @@ -0,0 +1,3 @@ +var proto_tmLanguage = {name:"proto",scopeName:"source.proto",fileTypes:["proto"],patterns:[{include:"#comments"},{include:"#syntax"},{include:"#package"},{include:"#import"},{include:"#optionStmt"},{include:"#message"},{include:"#enum"},{include:"#service"}],repository:{comments:{patterns:[{name:"comment.block.proto",begin:"/\\*",end:"\\*/"},{name:"comment.line.double-slash.proto",begin:"//",end:"$\\n?"}]},syntax:{match:"\\s*(syntax)\\s*(=)\\s*(\"proto[23]\")\\s*(;)",captures:{"1":{name:"keyword.other.proto"},"2":{name:"keyword.operator.assignment.proto"},"3":{name:"string.quoted.double.proto.syntax"},"4":{name:"punctuation.terminator.proto"}}},"package":{match:"\\s*(package)\\s+([\\w.]+)\\s*(;)",captures:{"1":{name:"keyword.other.proto"},"2":{name:"string.unquoted.proto.package"},"3":{name:"punctuation.terminator.proto"}}},"import":{match:"\\s*(import)\\s+(weak|public)?\\s*(\"[^\"]+\")\\s*(;)",captures:{"1":{name:"keyword.other.proto"},"2":{name:"keyword.other.proto"},"3":{name:"string.quoted.double.proto.import"},"4":{name:"punctuation.terminator.proto"}}},optionStmt:{begin:"(option)\\s+(\\w+|\\(\\w+(\\.\\w+)*\\))(\\.\\w+)*\\s*(=)",beginCaptures:{"1":{name:"keyword.other.proto"},"2":{name:"support.other.proto"},"3":{name:"support.other.proto"},"4":{name:"support.other.proto"},"5":{name:"keyword.operator.assignment.proto"}},end:"(;)",endCaptures:{"1":{name:"punctuation.terminator.proto"}},patterns:[{include:"#constants"},{include:"#number"},{include:"#string"},{include:"#subMsgOption"}]},subMsgOption:{begin:"\\{",end:"\\}",patterns:[{include:"#kv"},{include:"#comments"}]},kv:{begin:"(\\w+)\\s*(:)",beginCaptures:{"1":{name:"keyword.other.proto"},"2":{name:"punctuation.separator.key-value.proto"}},end:"(;)|,|(?=[}/_a-zA-Z])",endCaptures:{"1":{name:"punctuation.terminator.proto"}},patterns:[{include:"#constants"},{include:"#number"},{include:"#string"},{include:"#subMsgOption"}]},fieldOptions:{begin:"\\[",end:"\\]",patterns:[{include:"#constants"},{include:"#number"},{include:"#string"},{include:"#subMsgOption"},{include:"#optionName"}]},optionName:{match:"(\\w+|\\(\\w+(\\.\\w+)*\\))(\\.\\w+)*",captures:{"1":{name:"support.other.proto"},"2":{name:"support.other.proto"},"3":{name:"support.other.proto"}}},message:{begin:"(message|extend)(\\s+)([A-Za-z_][A-Za-z0-9_.]*)(\\s*)(\\{)?",beginCaptures:{"1":{name:"keyword.other.proto"},"3":{name:"entity.name.class.message.proto"}},end:"\\}",patterns:[{include:"#reserved"},{include:"$self"},{include:"#enum"},{include:"#optionStmt"},{include:"#comments"},{include:"#oneof"},{include:"#field"},{include:"#mapfield"}]},reserved:{begin:"(reserved)\\s+",beginCaptures:{"1":{name:"keyword.other.proto"}},end:"(;)",endCaptures:{"1":{name:"punctuation.terminator.proto"}},patterns:[{match:"(\\d+)(\\s+(to)\\s+(\\d+))?",captures:{"1":{name:"constant.numeric.proto"},"3":{name:"keyword.other.proto"},"4":{name:"constant.numeric.proto"}}},{include:"#string"}]},field:{begin:"\\s*(optional|repeated|required)?\\s*\\b([\\w.]+)\\s+(\\w+)\\s*(=)\\s*(0[xX][0-9a-fA-F]+|[0-9]+)",beginCaptures:{"1":{name:"storage.modifier.proto"},"2":{name:"storage.type.proto"},"3":{name:"variable.other.proto"},"4":{name:"keyword.operator.assignment.proto"},"5":{name:"constant.numeric.proto"}},end:"(;)",endCaptures:{"1":{name:"punctuation.terminator.proto"}},patterns:[{include:"#fieldOptions"}]},mapfield:{begin:"\\s*(map)\\s*(<)\\s*([\\w.]+)\\s*,\\s*([\\w.]+)\\s*(>)\\s+(\\w+)\\s*(=)\\s*(\\d+)",beginCaptures:{"1":{name:"storage.type.proto"},"2":{name:"punctuation.definition.typeparameters.begin.proto"},"3":{name:"storage.type.proto"},"4":{name:"storage.type.proto"},"5":{name:"punctuation.definition.typeparameters.end.proto"},"6":{name:"variable.other.proto"},"7":{name:"keyword.operator.assignment.proto"},"8":{name:"constant.numeric.proto"}},end:"(;)",endCaptures:{"1":{name:"punctuation.terminator.proto"}},patterns:[{include:"#fieldOptions"}]},oneof:{begin:"(oneof)\\s+([A-Za-z][A-Za-z0-9_]*)\\s*\\{?",beginCaptures:{"1":{name:"keyword.other.proto"},"2":{name:"variable.other.proto"}},end:"\\}",patterns:[{include:"#optionStmt"},{include:"#comments"},{include:"#field"}]},"enum":{begin:"(enum)(\\s+)([A-Za-z][A-Za-z0-9_]*)(\\s*)(\\{)?",beginCaptures:{"1":{name:"keyword.other.proto"},"3":{name:"entity.name.class.proto"}},end:"\\}",patterns:[{include:"#reserved"},{include:"#optionStmt"},{include:"#comments"},{begin:"([A-Za-z][A-Za-z0-9_]*)\\s*(=)\\s*(0[xX][0-9a-fA-F]+|[0-9]+)",beginCaptures:{"1":{name:"variable.other.proto"},"2":{name:"keyword.operator.assignment.proto"},"3":{name:"constant.numeric.proto"}},end:"(;)",endCaptures:{"1":{name:"punctuation.terminator.proto"}},patterns:[{include:"#fieldOptions"}]}]},service:{begin:"(service)\\s+([A-Za-z][A-Za-z0-9_.]*)\\s*\\{?",beginCaptures:{"1":{name:"keyword.other.proto"},"2":{name:"entity.name.class.message.proto"}},end:"\\}",patterns:[{include:"#comments"},{include:"#optionStmt"},{include:"#method"}]},method:{begin:"(rpc)\\s+([A-Za-z][A-Za-z0-9_]*)",beginCaptures:{"1":{name:"keyword.other.proto"},"2":{name:"entity.name.function"}},end:"\\}|(;)",endCaptures:{"1":{name:"punctuation.terminator.proto"}},patterns:[{include:"#comments"},{include:"#optionStmt"},{include:"#rpcKeywords"},{include:"#ident"}]},rpcKeywords:{match:"\\b(stream|returns)\\b",name:"keyword.other.proto"},ident:{match:"[A-Za-z][A-Za-z0-9_]*",name:"entity.name.class.proto"},constants:{match:"\\b(true|false|max|[A-Z_]+)\\b",name:"constant.language.proto"},storagetypes:{match:"\\b(double|float|int32|int64|uint32|uint64|sint32|sint64|fixed32|fixed64|sfixed32|sfixed64|bool|string|bytes)\\b",name:"storage.type.proto"},string:{match:"('([^']|\\')*')|(\"([^\"]|\\\")*\")",name:"string.quoted.double.proto"},number:{name:"constant.numeric.proto",match:"\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)\\b"}}}; + +export { proto_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/pug.tmLanguage-a02607f0.mjs b/docs/shiki/dist/languages/pug.tmLanguage-a02607f0.mjs new file mode 100644 index 00000000..33bf0057 --- /dev/null +++ b/docs/shiki/dist/languages/pug.tmLanguage-a02607f0.mjs @@ -0,0 +1,3 @@ +var pug_tmLanguage = {information_for_contributors:["This file has been converted from https://github.com/davidrios/pug-tmbundle/blob/master/Syntaxes/Pug.JSON-tmLanguage","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."],version:"https://github.com/davidrios/pug-tmbundle/commit/ae1dd60ca4aa4b45617f236d584216cd8d19eecf",name:"pug",scopeName:"text.pug",patterns:[{match:"^(!!!|doctype)(\\s*[a-zA-Z0-9-_]+)?",name:"meta.tag.sgml.doctype.html",comment:"Doctype declaration."},{begin:"^(\\s*)//-",end:"^(?!(\\1\\s)|\\s*$)",name:"comment.unbuffered.block.pug",comment:"Unbuffered (pug-only) comments."},{begin:"^(\\s*)//",end:"^(?!(\\1\\s)|\\s*$)",name:"string.comment.buffered.block.pug",comment:"Buffered (html) comments.",patterns:[{captures:{"1":{name:"invalid.illegal.comment.comment.block.pug"}},match:"^\\s*(//)(?!-)",name:"string.comment.buffered.block.pug",comment:"Buffered comments inside buffered comments will generate invalid html."}]},{begin:"<!--",end:"--\\s*>",name:"comment.unbuffered.block.pug",patterns:[{match:"--",name:"invalid.illegal.comment.comment.block.pug"}]},{begin:"^(\\s*)-$",end:"^(?!(\\1\\s)|\\s*$)",name:"source.js",comment:"Unbuffered code block.",patterns:[{include:"source.js"}]},{begin:"^(\\s*)(script)((\\.$)|(?=[^\\n]*((text|application)/javascript|module).*\\.$))",beginCaptures:{"2":{name:"entity.name.tag.pug"}},end:"^(?!(\\1\\s)|\\s*$)",name:"meta.tag.other",comment:"Script tag with JavaScript code.",patterns:[{begin:"\\G(?=\\()",end:"$",patterns:[{include:"#tag_attributes"}]},{begin:"\\G(?=[.#])",end:"$",patterns:[{include:"#complete_tag"}]},{include:"source.js"}]},{begin:"^(\\s*)(style)((\\.$)|(?=[.#(].*\\.$))",beginCaptures:{"2":{name:"entity.name.tag.pug"}},end:"^(?!(\\1\\s)|\\s*$)",name:"meta.tag.other",comment:"Style tag with CSS code.",patterns:[{begin:"\\G(?=\\()",end:"$",patterns:[{include:"#tag_attributes"}]},{begin:"\\G(?=[.#])",end:"$",patterns:[{include:"#complete_tag"}]},{include:"source.css"}]},{begin:"^(\\s*):(sass)(?=\\(|$)",beginCaptures:{"2":{name:"constant.language.name.sass.filter.pug"}},end:"^(?!(\\1\\s)|\\s*$)",name:"source.sass.filter.pug",patterns:[{include:"#tag_attributes"},{include:"source.sass"}]},{begin:"^(\\s*):(scss)(?=\\(|$)",beginCaptures:{"2":{name:"constant.language.name.scss.filter.pug"}},end:"^(?!(\\1\\s)|\\s*$)",name:"source.css.scss.filter.pug",patterns:[{include:"#tag_attributes"},{include:"source.css.scss"}]},{begin:"^(\\s*):(less)(?=\\(|$)",beginCaptures:{"2":{name:"constant.language.name.less.filter.pug"}},end:"^(?!(\\1\\s)|\\s*$)",name:"source.less.filter.pug",patterns:[{include:"#tag_attributes"},{include:"source.less"}]},{begin:"^(\\s*):(stylus)(?=\\(|$)",beginCaptures:{"2":{name:"constant.language.name.stylus.filter.pug"}},end:"^(?!(\\1\\s)|\\s*$)",patterns:[{include:"#tag_attributes"},{include:"source.stylus"}]},{begin:"^(\\s*):(coffee(-?script)?)(?=\\(|$)",beginCaptures:{"2":{name:"constant.language.name.coffeescript.filter.pug"}},end:"^(?!(\\1\\s)|\\s*$)",name:"source.coffeescript.filter.pug",patterns:[{include:"#tag_attributes"},{include:"source.coffee"}]},{begin:"^(\\s*):(uglify-js)(?=\\(|$)",beginCaptures:{"2":{name:"constant.language.name.js.filter.pug"}},end:"^(?!(\\1\\s)|\\s*$)",name:"source.js.filter.pug",patterns:[{include:"#tag_attributes"},{include:"source.js"}]},{begin:"^(\\s*)((:(?=.))|(:$))",beginCaptures:{"4":{name:"invalid.illegal.empty.generic.filter.pug"}},end:"^(?!(\\1\\s)|\\s*$)",comment:"Generic Pug filter.",patterns:[{begin:"\\G(?<=:)(?=.)",end:"$",name:"name.generic.filter.pug",patterns:[{match:"\\G\\(",name:"invalid.illegal.name.generic.filter.pug"},{match:"[\\w-]",name:"constant.language.name.generic.filter.pug"},{include:"#tag_attributes"},{match:"\\W",name:"invalid.illegal.name.generic.filter.pug"}]}]},{begin:"^(\\s*)(?:(?=\\.$)|(?:(?=[\\w.#].*?\\.$)(?=(?:(?:(?:(?:(?:#[\\w-]+)|(?:\\.[\\w-]+))|(?:(?:[#!]\\{[^}]*\\})|(?:\\w(?:(?:[\\w:-]+[\\w-])|(?:[\\w-]*)))))(?:(?:#[\\w-]+)|(?:\\.[\\w-]+)|(?:\\((?:[^()\\'\\\"]*(?:(?:\\'(?:[^\\']|(?:(?<!\\\\)\\\\\\'))*\\')|(?:\\\"(?:[^\\\"]|(?:(?<!\\\\)\\\\\\\"))*\\\")))*[^()]*\\))*)*)(?:(?:(?::\\s+)|(?<=\\)))(?:(?:(?:(?:#[\\w-]+)|(?:\\.[\\w-]+))|(?:(?:[#!]\\{[^}]*\\})|(?:\\w(?:(?:[\\w:-]+[\\w-])|(?:[\\w-]*)))))(?:(?:#[\\w-]+)|(?:\\.[\\w-]+)|(?:\\((?:[^()\\'\\\"]*(?:(?:\\'(?:[^\\']|(?:(?<!\\\\)\\\\\\'))*\\')|(?:\\\"(?:[^\\\"]|(?:(?<!\\\\)\\\\\\\"))*\\\")))*[^()]*\\))*)*))*)\\.$)(?:(?:(#[\\w-]+)|(\\.[\\w-]+))|((?:[#!]\\{[^}]*\\})|(?:\\w(?:(?:[\\w:-]+[\\w-])|(?:[\\w-]*)))))))",beginCaptures:{"2":{name:"meta.selector.css entity.other.attribute-name.id.css.pug"},"3":{name:"meta.selector.css entity.other.attribute-name.class.css.pug"},"4":{name:"meta.tag.other entity.name.tag.pug"}},end:"^(?!(\\1\\s)|\\s*$)",comment:"Generated from dot_block_tag.py",patterns:[{match:"\\.$",name:"storage.type.function.pug.dot-block-dot"},{include:"#tag_attributes"},{include:"#complete_tag"},{begin:"^(?=.)",end:"$",name:"text.block.pug",patterns:[{include:"#inline_pug"},{include:"#embedded_html"},{include:"#html_entity"},{include:"#interpolated_value"},{include:"#interpolated_error"}]}]},{begin:"^\\s*",end:"$",comment:"All constructs that generally span a single line starting with any number of white-spaces.",patterns:[{include:"#inline_pug"},{include:"#blocks_and_includes"},{include:"#unbuffered_code"},{include:"#mixin_definition"},{include:"#mixin_call"},{include:"#flow_control"},{include:"#flow_control_each"},{include:"#case_conds"},{begin:"\\|",end:"$",name:"text.block.pipe.pug",comment:"Tag pipe text line.",patterns:[{include:"#inline_pug"},{include:"#embedded_html"},{include:"#html_entity"},{include:"#interpolated_value"},{include:"#interpolated_error"}]},{include:"#printed_expression"},{begin:"\\G(?=(#[^\\{\\w-])|[^\\w.#])",end:"$",comment:"Line starting with characters incompatible with tag name/id/class is standalone text.",patterns:[{begin:"</?(?=[!#])",end:">|$",patterns:[{include:"#inline_pug"},{include:"#interpolated_value"},{include:"#interpolated_error"}]},{include:"#inline_pug"},{include:"#embedded_html"},{include:"#html_entity"},{include:"#interpolated_value"},{include:"#interpolated_error"}]},{include:"#complete_tag"}]}],repository:{blocks_and_includes:{captures:{"1":{name:"storage.type.import.include.pug"},"4":{name:"variable.control.import.include.pug"}},match:"(extends|include|yield|append|prepend|block( (append|prepend))?)\\s+(.*)$",name:"meta.first-class.pug",comment:"Template blocks and includes."},unbuffered_code:{begin:"(-|(([a-zA-Z0-9_]+)\\s+=))",beginCaptures:{"3":{name:"variable.parameter.javascript.embedded.pug"}},end:"(?=\\])|(({\\s*)?$)",name:"source.js",comment:"name = function() {}",patterns:[{include:"#js_brackets"},{include:"#babel_parens"},{include:"source.js"}]},mixin_definition:{match:"(mixin\\s+)([\\w-]+)(?:(\\()\\s*((?:[a-zA-Z_]\\w*\\s*)(?:,\\s*[a-zA-Z_]\\w*\\s*)*)(\\)))?$",captures:{"1":{name:"storage.type.function.pug"},"2":{name:"meta.tag.other entity.name.function.pug"},"3":{name:"punctuation.definition.parameters.begin.js"},"4":{name:"variable.parameter.function.js"},"5":{name:"punctuation.definition.parameters.begin.js"}}},mixin_call:{begin:"((?:mixin\\s+)|\\+)([\\w-]+)",beginCaptures:{"1":{name:"storage.type.function.pug"},"2":{name:"meta.tag.other entity.name.function.pug"}},end:"(?!\\()|$",patterns:[{begin:"(?<!\\))\\(",end:"\\)",name:"args.mixin.pug",patterns:[{include:"#js_parens"},{match:"([^\\s(),=/]+)\\s*=\\s*",captures:{"1":{name:"meta.tag.other entity.other.attribute-name.tag.pug"}}},{include:"source.js"}]},{include:"#tag_attributes"}]},flow_control:{begin:"(for|if|else if|else|until|while|unless|case)(\\s+|$)",captures:{"1":{name:"storage.type.function.pug"}},end:"$",name:"meta.control.flow.pug",comment:"Pug control flow.",patterns:[{begin:"",end:"$",name:"js.embedded.control.flow.pug",patterns:[{include:"source.js"}]}]},flow_control_each:{begin:"(each)(\\s+|$)",captures:{"1":{name:"storage.type.function.pug"}},end:"$",name:"meta.control.flow.pug.each",patterns:[{match:"([\\w$_]+)(?:\\s*,\\s*([\\w$_]+))?",name:"variable.other.pug.each-var"},{begin:"",end:"$",name:"js.embedded.control.flow.pug",patterns:[{include:"source.js"}]}]},case_when_paren:{begin:"\\(",end:"\\)",name:"js.when.control.flow.pug",patterns:[{include:"#case_when_paren"},{match:":",name:"invalid.illegal.name.tag.pug"},{include:"source.js"}]},case_conds:{begin:"(default|when)((\\s+|(?=:))|$)",captures:{"1":{name:"storage.type.function.pug"}},end:"$",name:"meta.control.flow.pug",comment:"Pug case conditionals.",patterns:[{begin:"\\G(?!:)",end:"(?=:\\s+)|$",name:"js.embedded.control.flow.pug",patterns:[{include:"#case_when_paren"},{include:"source.js"}]},{begin:":\\s+",end:"$",name:"tag.case.control.flow.pug",patterns:[{include:"#complete_tag"}]}]},complete_tag:{begin:"(?=[\\w.#])|(:\\s*)",end:"(\\.?$)|(?=:.)",endCaptures:{"1":{name:"storage.type.function.pug.dot-block-dot"}},patterns:[{include:"#blocks_and_includes"},{include:"#unbuffered_code"},{include:"#mixin_call"},{include:"#flow_control"},{include:"#flow_control_each"},{match:"(?<=:)\\w.*$",name:"invalid.illegal.name.tag.pug"},{include:"#tag_name"},{include:"#tag_id"},{include:"#tag_classes"},{include:"#tag_attributes"},{include:"#tag_mixin_attributes"},{match:"((\\.)\\s+$)|((:)\\s*$)",captures:{"2":{name:"invalid.illegal.end.tag.pug"},"4":{name:"invalid.illegal.end.tag.pug"}}},{include:"#printed_expression"},{include:"#tag_text"}]},tag_name:{begin:"([#!]\\{(?=.*?\\}))|(\\w(([\\w:-]+[\\w-])|([\\w-]*)))",end:"(\\G(?<!\\5[^\\w-]))|\\}|$",name:"meta.tag.other entity.name.tag.pug",patterns:[{begin:"\\G(?<=\\{)",end:"(?=\\})",name:"meta.tag.other entity.name.tag.pug",patterns:[{match:"{",name:"invalid.illegal.tag.pug"},{include:"source.js"}]}]},tag_id:{match:"#[\\w-]+",name:"meta.selector.css entity.other.attribute-name.id.css.pug"},tag_classes:{match:"\\.([^\\w-])?[\\w-]*",captures:{"1":{name:"invalid.illegal.tag.pug"}},name:"meta.selector.css entity.other.attribute-name.class.css.pug"},tag_attributes:{begin:"(\\(\\s*)",captures:{"1":{name:"constant.name.attribute.tag.pug"}},end:"(\\))",name:"meta.tag.other",patterns:[{include:"#tag_attribute_name_paren"},{include:"#tag_attribute_name"},{match:"!(?!=)",name:"invalid.illegal.tag.pug"},{begin:"=\\s*",end:"$|(?=,|(?:\\s+[^!%&*\\-+~|<>?/])|\\))",name:"attribute_value",patterns:[{include:"#js_parens"},{include:"#js_brackets"},{include:"#js_braces"},{include:"source.js"}]},{begin:"(?<=[%&*\\-+~|<>:?/])\\s+",end:"$|(?=,|(?:\\s+[^!%&*\\-+~|<>?/])|\\))",name:"attribute_value2",patterns:[{include:"#js_parens"},{include:"#js_brackets"},{include:"#js_braces"},{include:"source.js"}]}]},tag_attribute_name:{match:"([^\\s(),=/!]+)\\s*",captures:{"1":{name:"entity.other.attribute-name.tag.pug"}}},tag_attribute_name_paren:{begin:"\\(\\s*",end:"\\)",name:"entity.other.attribute-name.tag.pug",patterns:[{include:"#tag_attribute_name_paren"},{include:"#tag_attribute_name"}]},tag_mixin_attributes:{begin:"(&attributes\\()",captures:{"1":{name:"entity.name.function.pug"}},end:"(\\))",name:"meta.tag.other",patterns:[{match:"attributes(?=\\))",name:"storage.type.keyword.pug"},{include:"source.js"}]},tag_text:{begin:"(?=.)",end:"$",patterns:[{include:"#inline_pug"},{include:"#embedded_html"},{include:"#html_entity"},{include:"#interpolated_value"},{include:"#interpolated_error"}]},inline_pug_text:{begin:"",end:"(?=\\])",patterns:[{begin:"\\[",end:"\\]",patterns:[{include:"#inline_pug_text"}]},{include:"#inline_pug"},{include:"#embedded_html"},{include:"#html_entity"},{include:"#interpolated_value"},{include:"#interpolated_error"}]},inline_pug:{begin:"(?<!\\\\)(#\\[)",captures:{"1":{name:"entity.name.function.pug"},"2":{name:"entity.name.function.pug"}},end:"(\\])",name:"inline.pug",patterns:[{include:"#inline_pug"},{include:"#mixin_call"},{begin:"(?<!\\])(?=[\\w.#])|(:\\s*)",end:"(?=\\]|(:.)|=|\\s)",name:"tag.inline.pug",patterns:[{include:"#tag_name"},{include:"#tag_id"},{include:"#tag_classes"},{include:"#tag_attributes"},{include:"#tag_mixin_attributes"},{include:"#inline_pug"},{match:"\\[",name:"invalid.illegal.tag.pug"}]},{include:"#unbuffered_code"},{include:"#printed_expression"},{match:"\\[",name:"invalid.illegal.tag.pug"},{include:"#inline_pug_text"}]},html_entity:{patterns:[{match:"(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)",name:"constant.character.entity.html.text.pug"},{match:"[<>&]",name:"invalid.illegal.html_entity.text.pug"}]},interpolated_value:{begin:"(?<!\\\\)[#!]\\{(?=.*?\\})",end:"\\}",name:"string.interpolated.pug",patterns:[{match:"{",name:"invalid.illegal.tag.pug"},{include:"source.js"}]},interpolated_error:{match:"(?<!\\\\)[#!]\\{(?=[^}]*$)",name:"invalid.illegal.tag.pug"},printed_expression:{begin:"(!?\\=)\\s*",captures:{"1":{name:"constant"}},end:"(?=\\])|$",name:"source.js",patterns:[{include:"#js_brackets"},{include:"source.js"}]},embedded_html:{begin:"(?=<[^>]*>)",end:"$|(?=>)",name:"html",patterns:[{include:"text.html.basic"},{include:"#interpolated_value"},{include:"#interpolated_error"}]},js_parens:{begin:"\\(",end:"\\)",patterns:[{include:"#js_parens"},{include:"source.js"}]},js_brackets:{begin:"\\[",end:"\\]",patterns:[{include:"#js_brackets"},{include:"source.js"}]},js_braces:{begin:"\\{",end:"\\}",patterns:[{include:"#js_braces"},{include:"source.js"}]},babel_parens:{begin:"\\(",end:"\\)|(({\\s*)?$)",patterns:[{include:"#babel_parens"},{include:"source.js"}]}}}; + +export { pug_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/puppet.tmLanguage-f4a3eca0.mjs b/docs/shiki/dist/languages/puppet.tmLanguage-f4a3eca0.mjs new file mode 100644 index 00000000..01ee9dce --- /dev/null +++ b/docs/shiki/dist/languages/puppet.tmLanguage-f4a3eca0.mjs @@ -0,0 +1,3 @@ +var puppet_tmLanguage = {scopeName:"source.puppet",fileTypes:["pp"],foldingStartMarker:"(^\\s*/\\*|(\\{|\\[|\\()\\s*$)",foldingStopMarker:"(\\*/|^\\s*(\\}|\\]|\\)))",name:"puppet",patterns:[{include:"#line_comment"},{include:"#constants"},{begin:"^\\s*/\\*",end:"\\*/",name:"comment.block.puppet"},{begin:"\\b(node)\\b",captures:{"1":{name:"storage.type.puppet"},"2":{name:"entity.name.type.class.puppet"}},end:"(?={)",name:"meta.definition.class.puppet",patterns:[{match:"\\bdefault\\b",name:"keyword.puppet"},{include:"#strings"},{include:"#regex-literal"}]},{begin:"\\b(class)\\s+((?#Qualified Resource Name)(?:[a-z][a-z0-9_]*)?(?:::[a-z][a-z0-9_]*)+|(?#Bareword Resource Name)[a-z][a-z0-9_]*)\\s*",captures:{"1":{name:"storage.type.puppet"},"2":{name:"entity.name.type.class.puppet"}},end:"(?={)",name:"meta.definition.class.puppet",patterns:[{begin:"\\b(inherits)\\b\\s+",captures:{"1":{name:"storage.modifier.puppet"}},end:"(?=\\(|{)",name:"meta.definition.class.inherits.puppet",patterns:[{match:"\\b((?:[-_A-Za-z0-9\".]+::)*[-_A-Za-z0-9\".]+)\\b",name:"support.type.puppet"}]},{include:"#line_comment"},{include:"#resource-parameters"},{include:"#parameter-default-types"}]},{begin:"^\\s*(plan)\\s+((?#Qualified Resource Name)(?:[a-z][a-z0-9_]*)?(?:::[a-z][a-z0-9_]*)+|(?#Bareword Resource Name)[a-z][a-z0-9_]*)\\s*",captures:{"1":{name:"storage.type.puppet"},"2":{name:"entity.name.type.plan.puppet"}},end:"(?={)",name:"meta.definition.plan.puppet",patterns:[{include:"#line_comment"},{include:"#resource-parameters"},{include:"#parameter-default-types"}]},{begin:"^\\s*(define|function)\\s+((?#Bareword Resource Name)[a-z][a-z0-9_]*|(?#Qualified Resource Name)(?:[a-z][a-z0-9_]*)?(?:::[a-z][a-z0-9_]*)+)\\s*(\\()",captures:{"1":{name:"storage.type.function.puppet"},"2":{name:"entity.name.function.puppet"}},end:"(?={)",name:"meta.function.puppet",patterns:[{include:"#line_comment"},{include:"#resource-parameters"},{include:"#parameter-default-types"}]},{match:"\\b(case|else|elsif|if|unless)(?!::)\\b",captures:{"1":{name:"keyword.control.puppet"}}},{include:"#keywords"},{include:"#resource-definition"},{include:"#heredoc"},{include:"#strings"},{include:"#puppet-datatypes"},{include:"#array"},{match:"((\\$?)\"?[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*\"?):(?=\\s+|$)",name:"entity.name.section.puppet"},{include:"#numbers"},{include:"#variable"},{begin:"\\b(import|include|contain|require)\\s+(?!.*=>)",beginCaptures:{"1":{name:"keyword.control.import.include.puppet"}},end:"(?=\\s|$)",contentName:"variable.parameter.include.puppet",name:"meta.include.puppet"},{match:"\\b\\w+\\s*(?==>)\\s*",name:"constant.other.key.puppet"},{match:"(?<={)\\s*\\w+\\s*(?=})",name:"constant.other.bareword.puppet"},{match:"\\b(alert|crit|debug|defined|emerg|err|escape|fail|failed|file|generate|gsub|info|notice|package|realize|search|tag|tagged|template|warning)\\b(?!.*{)",name:"support.function.puppet"},{match:"=>",name:"punctuation.separator.key-value.puppet"},{match:"->",name:"keyword.control.orderarrow.puppet"},{match:"~>",name:"keyword.control.notifyarrow.puppet"},{include:"#regex-literal"}],repository:{constants:{patterns:[{match:"\\b(absent|directory|false|file|present|running|stopped|true)\\b(?!.*{)",name:"constant.language.puppet"}]},"double-quoted-string":{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.puppet"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.puppet"}},name:"string.quoted.double.interpolated.puppet",patterns:[{include:"#escaped_char"},{include:"#interpolated_puppet"}]},interpolated_puppet:{patterns:[{begin:"(\\${)(\\d+)",beginCaptures:{"1":{name:"punctuation.section.embedded.begin.puppet"},"2":{name:"source.puppet variable.other.readwrite.global.pre-defined.puppet"}},end:"}",endCaptures:{"0":{name:"punctuation.section.embedded.end.puppet"}},contentName:"source.puppet",name:"meta.embedded.line.puppet",patterns:[{include:"$self"}]},{begin:"(\\${)(_[a-zA-Z0-9_]*)",beginCaptures:{"1":{name:"punctuation.section.embedded.begin.puppet"},"2":{name:"source.puppet variable.other.readwrite.global.puppet"}},end:"}",endCaptures:{"0":{name:"punctuation.section.embedded.end.puppet"}},contentName:"source.puppet",name:"meta.embedded.line.puppet",patterns:[{include:"$self"}]},{begin:"(\\${)(([a-z][a-z0-9_]*)?(?:::[a-z][a-z0-9_]*)*)",beginCaptures:{"1":{name:"punctuation.section.embedded.begin.puppet"},"2":{name:"source.puppet variable.other.readwrite.global.puppet"}},end:"}",endCaptures:{"0":{name:"punctuation.section.embedded.end.puppet"}},contentName:"source.puppet",name:"meta.embedded.line.puppet",patterns:[{include:"$self"}]},{begin:"\\${",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.puppet"}},end:"}",endCaptures:{"0":{name:"punctuation.section.embedded.end.puppet"}},contentName:"source.puppet",name:"meta.embedded.line.puppet",patterns:[{include:"$self"}]}]},escaped_char:{match:"\\\\.",name:"constant.character.escape.puppet"},line_comment:{patterns:[{captures:{"1":{name:"comment.line.number-sign.puppet"},"2":{name:"punctuation.definition.comment.puppet"}},match:"^((#).*$\\n?)",name:"meta.comment.full-line.puppet"},{captures:{"1":{name:"punctuation.definition.comment.puppet"}},match:"(#).*$\\n?",name:"comment.line.number-sign.puppet"}]},nested_braces:{begin:"\\{",captures:{"1":{name:"punctuation.section.scope.puppet"}},end:"\\}",patterns:[{include:"#escaped_char"},{include:"#nested_braces"}]},nested_braces_interpolated:{begin:"\\{",captures:{"1":{name:"punctuation.section.scope.puppet"}},end:"\\}",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_braces_interpolated"}]},nested_brackets:{begin:"\\[",captures:{"1":{name:"punctuation.section.scope.puppet"}},end:"\\]",patterns:[{include:"#escaped_char"},{include:"#nested_brackets"}]},nested_brackets_interpolated:{begin:"\\[",captures:{"1":{name:"punctuation.section.scope.puppet"}},end:"\\]",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_brackets_interpolated"}]},nested_parens:{begin:"\\(",captures:{"1":{name:"punctuation.section.scope.puppet"}},end:"\\)",patterns:[{include:"#escaped_char"},{include:"#nested_parens"}]},nested_parens_interpolated:{begin:"\\(",captures:{"1":{name:"punctuation.section.scope.puppet"}},end:"\\)",patterns:[{include:"#escaped_char"},{include:"#variable"},{include:"#nested_parens_interpolated"}]},"parameter-default-types":{patterns:[{include:"#strings"},{include:"#numbers"},{include:"#variable"},{include:"#hash"},{include:"#array"},{include:"#function_call"},{include:"#constants"},{include:"#puppet-datatypes"}]},"resource-parameters":{patterns:[{captures:{"1":{name:"variable.other.puppet"},"2":{name:"punctuation.definition.variable.puppet"}},match:"((\\$+)[a-zA-Z_][a-zA-Z0-9_]*)\\s*(?=,|\\))",name:"meta.function.argument.puppet"},{begin:"((\\$+)[a-zA-Z_][a-zA-Z0-9_]*)(?:\\s*(=)\\s*)\\s*",captures:{"1":{name:"variable.other.puppet"},"2":{name:"punctuation.definition.variable.puppet"},"3":{name:"keyword.operator.assignment.puppet"}},end:"(?=,|\\))",name:"meta.function.argument.puppet",patterns:[{include:"#parameter-default-types"}]}]},array:{begin:"(\\[)",beginCaptures:{"1":{name:"punctuation.definition.array.begin.puppet"}},end:"\\]",endCaptures:{"0":{name:"punctuation.definition.array.end.puppet"}},name:"meta.array.puppet",patterns:[{match:"\\s*,\\s*"},{include:"#parameter-default-types"},{include:"#line_comment"}]},hash:{begin:"\\{",beginCaptures:{"0":{name:"punctuation.definition.hash.begin.puppet"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.hash.end.puppet"}},name:"meta.hash.puppet",patterns:[{match:"\\b\\w+\\s*(?==>)\\s*",name:"constant.other.key.puppet"},{include:"#parameter-default-types"},{include:"#line_comment"}]},"single-quoted-string":{begin:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.puppet"}},end:"'",endCaptures:{"0":{name:"punctuation.definition.string.end.puppet"}},name:"string.quoted.single.puppet",patterns:[{include:"#escaped_char"}]},strings:{patterns:[{include:"#double-quoted-string"},{include:"#single-quoted-string"}]},keywords:{match:"\\b(undef)\\b",captures:{"1":{name:"keyword.puppet"}}},numbers:{patterns:[{comment:"HEX 0x 0-f",match:"(?<!\\w|\\d)([-+]?)(?i:0x)(?i:[0-9a-f])+(?!\\w|\\d)",name:"constant.numeric.hexadecimal.puppet"},{comment:"INTEGERS [(+|-)] digits [e [(+|-)] digits]",match:"(?<!\\w|\\.)([-+]?)(?<!\\d)\\d+(?i:e(\\+|-){0,1}\\d+){0,1}(?!\\w|\\d|\\.)",name:"constant.numeric.integer.puppet"},{comment:"FLOAT [(+|-)] digits . digits [e [(+|-)] digits]",match:"(?<!\\w)([-+]?)\\d+\\.\\d+(?i:e(\\+|-){0,1}\\d+){0,1}(?!\\w|\\d)",name:"constant.numeric.integer.puppet"}]},"resource-definition":{begin:"(?:^|\\b)((?#Toplevel Bareword)::[a-z][a-z0-9_]*|(?#Bareword Resource Name)[a-z][a-z0-9_]*|(?#Qualified Resource Name)(?:[a-z][a-z0-9_]*)?(?:::[a-z][a-z0-9_]*)+)\\s*({)\\s*",beginCaptures:{"1":{name:"meta.definition.resource.puppet storage.type.puppet"}},end:":",contentName:"entity.name.section.puppet",patterns:[{include:"#strings"},{include:"#variable"},{include:"#array"}]},variable:{patterns:[{match:"(\\$)(\\d+)",name:"variable.other.readwrite.global.pre-defined.puppet",captures:{"1":{name:"punctuation.definition.variable.puppet"}}},{match:"(\\$)_[a-zA-Z0-9_]*",name:"variable.other.readwrite.global.puppet",captures:{"1":{name:"punctuation.definition.variable.puppet"}}},{match:"(\\$)(([a-z][a-zA-Z0-9_]*)?(?:::[a-z][a-zA-Z0-9_]*)*)",name:"variable.other.readwrite.global.puppet",captures:{"1":{name:"punctuation.definition.variable.puppet"}}}]},function_call:{begin:"([a-zA-Z_][a-zA-Z0-9_]*)(\\()",end:"\\)",name:"meta.function-call.puppet",patterns:[{include:"#parameter-default-types"},{match:",",name:"punctuation.separator.parameters.puppet"}]},"puppet-datatypes":{patterns:[{comment:"Puppet Data type",match:"(?<![a-zA-Z\\$])([A-Z][a-zA-Z0-9_]*)(?![a-zA-Z0-9_])",name:"storage.type.puppet"}]},"regex-literal":{match:"(\\/)(.+?)(?:[^\\\\]\\/)",name:"string.regexp.literal.puppet",comment:"Puppet Regular expression literal without interpolation"},heredoc:{patterns:[{begin:"@\\([[:blank:]]*\"([^:\\/) \\t]+)\"[[:blank:]]*(:[[:blank:]]*[a-z][a-zA-Z0-9_+]*[[:blank:]]*)?(\\/[[:blank:]]*[tsrnL$]*)?[[:blank:]]*\\)",beginCaptures:{"0":{name:"punctuation.definition.string.begin.puppet"}},end:"^[[:blank:]]*(\\|[[:blank:]]*-|\\||-)?[[:blank:]]*\\1",endCaptures:{"0":{name:"punctuation.definition.string.end.puppet"}},name:"string.interpolated.heredoc.puppet",patterns:[{include:"#escaped_char"},{include:"#interpolated_puppet"}]},{begin:"@\\([[:blank:]]*([^:\\/) \\t]+)[[:blank:]]*(:[[:blank:]]*[a-z][a-zA-Z0-9_+]*[[:blank:]]*)?(\\/[[:blank:]]*[tsrnL$]*)?[[:blank:]]*\\)",beginCaptures:{"0":{name:"punctuation.definition.string.begin.puppet"}},end:"^[[:blank:]]*(\\|[[:blank:]]*-|\\||-)?[[:blank:]]*\\1",endCaptures:{"0":{name:"punctuation.definition.string.end.puppet"}},name:"string.unquoted.heredoc.puppet"}]}}}; + +export { puppet_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/purescript.tmLanguage-a543cff2.mjs b/docs/shiki/dist/languages/purescript.tmLanguage-a543cff2.mjs new file mode 100644 index 00000000..210e697c --- /dev/null +++ b/docs/shiki/dist/languages/purescript.tmLanguage-a543cff2.mjs @@ -0,0 +1,3 @@ +var purescript_tmLanguage = {fileTypes:["purs"],name:"purescript",scopeName:"source.purescript",macros:{functionNameOne:"[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*",classNameOne:"[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*",functionName:"(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*",className:"[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*",operatorChar:"[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]",operator:"[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]+",operatorFun:"(?:\\((?!--+\\))[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]+\\))",character:"(?:[ -\\[\\]-~]|(\\\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\"'\\&]))|(\\\\o[0-7]+)|(\\\\x[0-9A-Fa-f]+)|(\\^[A-Z@\\[\\]\\\\\\^_]))",classConstraint:"(?:(?:([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)\\s+)(?:(?<classConstraint>(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)(?:\\s*(?:\\s+)\\s*\\g<classConstraint>)?)))",functionTypeDeclaration:"([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\\s*(::|∷)",ctorArgs:"(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:(?:[\\w()'→⇒\\[\\],]|->|=>)+\\s*)+)",ctor:"(?:(?:\\b([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)\\s+)(?:(?<ctorArgs>(?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:(?:[\\w()'→⇒\\[\\],]|->|=>)+\\s*)+))(?:\\s*(?:\\s+)\\s*\\g<ctorArgs>)?)?))",typeDecl:".+?",indentChar:"[ \\t]",indentBlockEnd:"^(?!\\1[ \\t]|[ \\t]*$)",maybeBirdTrack:"^"},patterns:[{name:"keyword.operator.function.infix.purescript",match:"(`)(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(`)",captures:{"1":{name:"punctuation.definition.entity.purescript"},"2":{name:"punctuation.definition.entity.purescript"}}},{name:"meta.declaration.module.purescript",begin:"^\\s*\\b(module)(?!')\\b",end:"(where)",beginCaptures:{"1":{name:"keyword.other.purescript"}},endCaptures:{"1":{name:"keyword.other.purescript"}},patterns:[{include:"#comments"},{include:"#module_name"},{include:"#module_exports"},{name:"invalid.purescript",match:"[a-z]+"}]},{name:"meta.declaration.typeclass.purescript",begin:"^\\s*\\b(class)(?!')\\b",end:"\\b(where)\\b|$",beginCaptures:{"1":{name:"storage.type.class.purescript"}},endCaptures:{"1":{name:"keyword.other.purescript"}},patterns:[{include:"#type_signature"}]},{name:"meta.declaration.instance.purescript",begin:"^\\s*\\b(else\\s+)?(derive\\s+)?(newtype\\s+)?(instance)(?!')\\b",end:"\\b(where)\\b|$",contentName:"meta.type-signature.purescript",beginCaptures:{"1":{name:"keyword.other.purescript"},"2":{name:"keyword.other.purescript"},"3":{name:"keyword.other.purescript"},"4":{name:"keyword.other.purescript"}},endCaptures:{"1":{name:"keyword.other.purescript"}},patterns:[{include:"#type_signature"}]},{name:"meta.foreign.data.purescript",begin:"^(\\s*)(foreign)\\s+(import)\\s+(data)\\s+([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)",end:"^(?!\\1[ \\t]|[ \\t]*$)",contentName:"meta.kind-signature.purescript",beginCaptures:{"2":{name:"keyword.other.purescript"},"3":{name:"keyword.other.purescript"},"4":{name:"keyword.other.purescript"},"5":{name:"entity.name.type.purescript"},"6":{name:"keyword.other.double-colon.purescript"}},patterns:[{include:"#double_colon"},{include:"#kind_signature"}]},{name:"meta.foreign.purescript",begin:"^(\\s*)(foreign)\\s+(import)\\s+([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)",end:"^(?!\\1[ \\t]|[ \\t]*$)",contentName:"meta.type-signature.purescript",beginCaptures:{"2":{name:"keyword.other.purescript"},"3":{name:"keyword.other.purescript"},"4":{name:"entity.name.function.purescript"}},patterns:[{include:"#double_colon"},{include:"#type_signature"}]},{name:"meta.import.purescript",begin:"^\\s*\\b(import)(?!')\\b",end:"($|(?=--))",beginCaptures:{"1":{name:"keyword.other.purescript"}},patterns:[{include:"#module_name"},{include:"#module_exports"},{match:"\\b(as|hiding)\\b",captures:{"1":{name:"keyword.other.purescript"}}}]},{name:"meta.declaration.type.data.purescript",begin:"^(\\s)*(data|newtype)\\s+(.+?)\\s*(?=\\=|$)",end:"^(?!\\1[ \\t]|[ \\t]*$)",beginCaptures:{"2":{name:"storage.type.data.purescript"},"3":{name:"meta.type-signature.purescript",patterns:[{include:"#type_signature"}]}},patterns:[{include:"#comments"},{match:"=",captures:{"0":{name:"keyword.operator.assignment.purescript"}}},{match:"(?:(?:\\b([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)\\s+)(?:(?<ctorArgs>(?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:(?:[\\w()'→⇒\\[\\],]|->|=>)+\\s*)+))(?:\\s*(?:\\s+)\\s*\\g<ctorArgs>)?)?))",captures:{"1":{patterns:[{include:"#data_ctor"}]},"2":{name:"meta.type-signature.purescript",patterns:[{include:"#type_signature"}]}}},{match:"\\|",captures:{"0":{name:"punctuation.separator.pipe.purescript"}}},{include:"#record_types"}]},{name:"meta.declaration.type.type.purescript",begin:"^(\\s)*(type)\\s+(.+?)\\s*(?=\\=|$)",end:"^(?!\\1[ \\t]|[ \\t]*$)",contentName:"meta.type-signature.purescript",beginCaptures:{"2":{name:"storage.type.data.purescript"},"3":{name:"meta.type-signature.purescript",patterns:[{include:"#type_signature"}]}},patterns:[{match:"=",captures:{"0":{name:"keyword.operator.assignment.purescript"}}},{include:"#type_signature"},{include:"#record_types"},{include:"#comments"}]},{name:"keyword.other.purescript",match:"^\\s*\\b(derive|where|data|type|newtype|infix[lr]?|foreign(\\s+import)?(\\s+data)?)(?!')\\b"},{name:"entity.name.function.typed-hole.purescript",match:"\\?(?:[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)"},{name:"storage.type.purescript",match:"^\\s*\\b(data|type|newtype)(?!')\\b"},{name:"keyword.control.purescript",match:"\\b(do|ado|if|then|else|case|of|let|in)(?!('|\\s*(:|=)))\\b"},{name:"constant.numeric.hex.purescript",match:"\\b(?<!\\$)0(x|X)[0-9a-fA-F]+\\b(?!\\$)"},{name:"constant.numeric.decimal.purescript",match:"(?x)\n(?<!\\$)(?:\n (?:\\b[0-9]+(\\.)[0-9]+[eE][+-]?[0-9]+\\b)| # 1.1E+3\n (?:\\b[0-9]+[eE][+-]?[0-9]+\\b)| # 1E+3\n (?:\\b[0-9]+(\\.)[0-9]+\\b)| # 1.1\n (?:\\b[0-9]+\\b(?!\\.)) # 1\n)(?!\\$)",captures:{"0":{name:"constant.numeric.decimal.purescript"},"1":{name:"meta.delimiter.decimal.period.purescript"},"2":{name:"meta.delimiter.decimal.period.purescript"},"3":{name:"meta.delimiter.decimal.period.purescript"},"4":{name:"meta.delimiter.decimal.period.purescript"},"5":{name:"meta.delimiter.decimal.period.purescript"},"6":{name:"meta.delimiter.decimal.period.purescript"}}},{name:"constant.language.boolean.purescript",match:"\\b(true|false)\\b"},{name:"constant.numeric.purescript",match:"\\b(([0-9]+_?)*[0-9]+|0([xX][0-9a-fA-F]+|[oO][0-7]+))\\b"},{name:"string.quoted.triple.purescript",begin:"\"\"\"",end:"\"\"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.purescript"}},endCaptures:{"0":{name:"punctuation.definition.string.end.purescript"}}},{name:"string.quoted.double.purescript",begin:"\"",end:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.purescript"}},endCaptures:{"0":{name:"punctuation.definition.string.end.purescript"}},patterns:[{include:"#characters"},{begin:"\\\\\\s",end:"\\\\",beginCaptures:{"0":{name:"markup.other.escape.newline.begin.purescript"}},endCaptures:{"0":{name:"markup.other.escape.newline.end.purescript"}},patterns:[{match:"\\S+",name:"invalid.illegal.character-not-allowed-here.purescript"}]}]},{name:"markup.other.escape.newline.purescript",match:"\\\\$"},{name:"string.quoted.single.purescript",match:"(')((?:[ -\\[\\]-~]|(\\\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\"'\\&]))|(\\\\o[0-7]+)|(\\\\x[0-9A-Fa-f]+)|(\\^[A-Z@\\[\\]\\\\\\^_])))(')",captures:{"1":{name:"punctuation.definition.string.begin.purescript"},"2":{patterns:[{include:"#characters"}]},"7":{name:"punctuation.definition.string.end.purescript"}}},{include:"#function_type_declaration"},{match:"\\((?<paren>(?:[^()]|\\(\\g<paren>\\))*)(::|∷)(?<paren2>(?:[^()]|\\(\\g<paren2>\\))*)\\)",captures:{"1":{patterns:[{include:"$self"}]},"2":{name:"keyword.other.double-colon.purescript"},"3":{name:"meta.type-signature.purescript",patterns:[{include:"#type_signature"}]}}},{begin:"^(\\s*)(?:(::|∷))",beginCaptures:{"2":{name:"keyword.other.double-colon.purescript"}},end:"^(?!\\1[ \\t]*|[ \\t]*$)",patterns:[{include:"#type_signature"}]},{include:"#data_ctor"},{include:"#comments"},{include:"#infix_op"},{name:"keyword.other.arrow.purescript",match:"\\<-|-\\>"},{name:"keyword.operator.purescript",match:"[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]+"},{name:"punctuation.separator.comma.purescript",match:","}],repository:{block_comment:{patterns:[{name:"comment.block.documentation.purescript",begin:"\\{-\\s*\\|",end:"-\\}",applyEndPatternLast:1,beginCaptures:{"0":{name:"punctuation.definition.comment.documentation.purescript"}},endCaptures:{"0":{name:"punctuation.definition.comment.documentation.purescript"}},patterns:[{include:"#block_comment"}]},{name:"comment.block.purescript",begin:"\\{-",end:"-\\}",applyEndPatternLast:1,beginCaptures:{"0":{name:"punctuation.definition.comment.purescript"}},patterns:[{include:"#block_comment"}]}]},record_types:{patterns:[{name:"meta.type.record.purescript",begin:"\\{",beginCaptures:{"0":{name:"keyword.operator.type.record.begin.purescript"}},end:"\\}",endCaptures:{"0":{name:"keyword.operator.type.record.end.purescript"}},patterns:[{name:"punctuation.separator.comma.purescript",match:","},{include:"#record_field_declaration"},{include:"#comments"}]}]},comments:{patterns:[{begin:"(^[ \\t]+)?(?=--+\\s+\\|)",end:"(?!\\G)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.purescript"}},patterns:[{name:"comment.line.double-dash.documentation.purescript",begin:"(--+)\\s+(\\|)",end:"\\n",beginCaptures:{"1":{name:"punctuation.definition.comment.purescript"},"2":{name:"punctuation.definition.comment.documentation.purescript"}}}]},{begin:"(^[ \\t]+)?(?=--+(?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]))",end:"(?!\\G)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.purescript"}},patterns:[{name:"comment.line.double-dash.purescript",begin:"--",end:"\\n",beginCaptures:{"0":{name:"punctuation.definition.comment.purescript"}}}]},{include:"#block_comment"}]},characters:{patterns:[{match:"(?:[ -\\[\\]-~]|(\\\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\"'\\&]))|(\\\\o[0-7]+)|(\\\\x[0-9A-Fa-f]+)|(\\^[A-Z@\\[\\]\\\\\\^_]))",captures:{"1":{name:"constant.character.escape.purescript"},"2":{name:"constant.character.escape.octal.purescript"},"3":{name:"constant.character.escape.hexadecimal.purescript"},"4":{name:"constant.character.escape.control.purescript"}}}]},infix_op:{patterns:[{name:"entity.name.function.infix.purescript",match:"(?:\\((?!--+\\))[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]+\\))"}]},module_exports:{patterns:[{name:"meta.declaration.exports.purescript",begin:"\\(",end:"\\)",patterns:[{include:"#comments"},{name:"entity.name.function.purescript",match:"\\b(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*"},{include:"#type_name"},{name:"punctuation.separator.comma.purescript",match:","},{include:"#infix_op"},{name:"meta.other.constructor-list.purescript",match:"\\(.*?\\)"}]}]},module_name:{patterns:[{name:"support.other.module.purescript",match:"(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)*[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.?"}]},function_type_declaration:{patterns:[{name:"meta.function.type-declaration.purescript",begin:"^(\\s*)([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\\s*(?:(::|∷)(?!.*<-))",end:"^(?!\\1[ \\t]|[ \\t]*$)",contentName:"meta.type-signature.purescript",beginCaptures:{"2":{name:"entity.name.function.purescript"},"3":{name:"keyword.other.double-colon.purescript"}},patterns:[{include:"#double_colon"},{include:"#type_signature"}]}]},record_field_declaration:{patterns:[{name:"meta.record-field.type-declaration.purescript",begin:"([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\\s*(::|∷)",end:"(?=([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\\s*(::|∷)|})",contentName:"meta.type-signature.purescript",beginCaptures:{"1":{patterns:[{name:"entity.other.attribute-name.purescript",match:"(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*"}]},"2":{name:"keyword.other.double-colon.purescript"}},patterns:[{include:"#type_signature"},{include:"#record_types"}]}]},kind_signature:{patterns:[{name:"keyword.other.star.purescript",match:"\\*"},{name:"keyword.other.exclaimation-point.purescript",match:"!"},{name:"keyword.other.pound-sign.purescript",match:"#"},{name:"keyword.other.arrow.purescript",match:"->|→"}]},type_signature:{patterns:[{name:"meta.class-constraints.purescript",match:"(?:(?:\\()(?:(?<classConstraints>(?:(?:(?:([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)\\s+)(?:(?<classConstraint>(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)(?:\\s*(?:\\s+)\\s*\\g<classConstraint>)?))))(?:\\s*(?:,)\\s*\\g<classConstraints>)?))(?:\\))(?:\\s*(=>|<=|⇐|⇒)))",captures:{"1":{patterns:[{include:"#class_constraint"}]},"4":{name:"keyword.other.big-arrow.purescript"}}},{name:"meta.class-constraints.purescript",match:"((?:(?:([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)\\s+)(?:(?<classConstraint>(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)(?:\\s*(?:\\s+)\\s*\\g<classConstraint>)?))))\\s*(=>|<=|⇐|⇒)",captures:{"1":{patterns:[{include:"#class_constraint"}]},"4":{name:"keyword.other.big-arrow.purescript"}}},{name:"keyword.other.arrow.purescript",match:"->|→"},{name:"keyword.other.big-arrow.purescript",match:"=>|⇒"},{name:"keyword.other.big-arrow-left.purescript",match:"<=|⇐"},{name:"keyword.other.forall.purescript",match:"forall|∀"},{include:"#generic_type"},{include:"#type_name"},{include:"#comments"}]},type_name:{patterns:[{name:"entity.name.type.purescript",match:"\\b[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*"}]},data_ctor:{patterns:[{name:"entity.name.tag.purescript",match:"\\b[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*"}]},generic_type:{patterns:[{name:"variable.other.generic-type.purescript",match:"\\b(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*"}]},double_colon:{patterns:[{name:"keyword.other.double-colon.purescript",match:"(?:::|∷)"}]},class_constraint:{patterns:[{name:"meta.class-constraint.purescript",match:"(?:(?:([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)\\s+)(?:(?<classConstraint>(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)(?:\\s*(?:\\s+)\\s*\\g<classConstraint>)?)))",captures:{"1":{patterns:[{name:"entity.name.type.purescript",match:"\\b[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*"}]},"2":{patterns:[{include:"#type_name"},{include:"#generic_type"}]}}}]}}}; + +export { purescript_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/python.tmLanguage-1cba37cc.mjs b/docs/shiki/dist/languages/python.tmLanguage-1cba37cc.mjs new file mode 100644 index 00000000..848b407a --- /dev/null +++ b/docs/shiki/dist/languages/python.tmLanguage-1cba37cc.mjs @@ -0,0 +1,3 @@ +var python_tmLanguage = {information_for_contributors:["This file has been converted from https://github.com/MagicStack/MagicPython/blob/master/grammars/MagicPython.tmLanguage","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."],version:"https://github.com/MagicStack/MagicPython/commit/7d0f2b22a5ad8fccbd7341bc7b7a715169283044",name:"python",scopeName:"source.python",patterns:[{include:"#statement"},{include:"#expression"}],repository:{impossible:{comment:"This is a special rule that should be used where no match is desired. It is not a good idea to match something like '1{0}' because in some cases that can result in infinite loops in token generation. So the rule instead matches and impossible expression to allow a match to fail and move to the next token.",match:"$.^"},statement:{patterns:[{include:"#import"},{include:"#class-declaration"},{include:"#function-declaration"},{include:"#generator"},{include:"#statement-keyword"},{include:"#assignment-operator"},{include:"#decorator"},{include:"#docstring-statement"},{include:"#semicolon"}]},semicolon:{patterns:[{name:"invalid.deprecated.semicolon.python",match:"\\;$"}]},comments:{patterns:[{name:"comment.line.number-sign.python",contentName:"meta.typehint.comment.python",begin:"(?x)\n (?:\n \\# \\s* (type:)\n \\s*+ (?# we want `\\s*+` which is possessive quantifier since\n we do not actually want to backtrack when matching\n whitespace here)\n (?! $ | \\#)\n )\n",end:"(?:$|(?=\\#))",beginCaptures:{"0":{name:"meta.typehint.comment.python"},"1":{name:"comment.typehint.directive.notation.python"}},patterns:[{name:"comment.typehint.ignore.notation.python",match:"(?x)\n \\G ignore\n (?= \\s* (?: $ | \\#))\n"},{name:"comment.typehint.type.notation.python",match:"(?x)\n (?<!\\.)\\b(\n bool | bytes | float | int | object | str\n | List | Dict | Iterable | Sequence | Set\n | FrozenSet | Callable | Union | Tuple\n | Any | None\n )\\b\n"},{name:"comment.typehint.punctuation.notation.python",match:"([\\[\\]\\(\\),\\.\\=\\*]|(->))"},{name:"comment.typehint.variable.notation.python",match:"([[:alpha:]_]\\w*)"}]},{include:"#comments-base"}]},"docstring-statement":{begin:"^(?=\\s*[rR]?(\\'\\'\\'|\\\"\\\"\\\"|\\'|\\\"))",comment:"the string either terminates correctly or by the beginning of a new line (this is for single line docstrings that aren't terminated) AND it's not followed by another docstring",end:"((?<=\\1)|^)(?!\\s*[rR]?(\\'\\'\\'|\\\"\\\"\\\"|\\'|\\\"))",patterns:[{include:"#docstring"}]},docstring:{patterns:[{name:"string.quoted.docstring.multi.python",begin:"(\\'\\'\\'|\\\"\\\"\\\")",end:"(\\1)",beginCaptures:{"1":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"}},patterns:[{include:"#docstring-prompt"},{include:"#codetags"},{include:"#docstring-guts-unicode"}]},{name:"string.quoted.docstring.raw.multi.python",begin:"([rR])(\\'\\'\\'|\\\"\\\"\\\")",end:"(\\2)",beginCaptures:{"1":{name:"storage.type.string.python"},"2":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"}},patterns:[{include:"#string-consume-escape"},{include:"#docstring-prompt"},{include:"#codetags"}]},{name:"string.quoted.docstring.single.python",begin:"(\\'|\\\")",end:"(\\1)|(\\n)",beginCaptures:{"1":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#codetags"},{include:"#docstring-guts-unicode"}]},{name:"string.quoted.docstring.raw.single.python",begin:"([rR])(\\'|\\\")",end:"(\\2)|(\\n)",beginCaptures:{"1":{name:"storage.type.string.python"},"2":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#string-consume-escape"},{include:"#codetags"}]}]},"docstring-guts-unicode":{patterns:[{include:"#escape-sequence-unicode"},{include:"#escape-sequence"},{include:"#string-line-continuation"}]},"docstring-prompt":{match:"(?x)\n (?:\n (?:^|\\G) \\s* (?# '\\G' is necessary for ST)\n ((?:>>>|\\.\\.\\.) \\s) (?=\\s*\\S)\n )\n",captures:{"1":{name:"keyword.control.flow.python"}}},"statement-keyword":{patterns:[{name:"storage.type.function.python",match:"\\b((async\\s+)?\\s*def)\\b"},{name:"keyword.control.flow.python",comment:"if `as` is eventually followed by `:` or line continuation\nit's probably control flow like:\n with foo as bar, \\\n Foo as Bar:\n try:\n do_stuff()\n except Exception as e:\n pass\n",match:"\\b(?<!\\.)as\\b(?=.*[:\\\\])"},{name:"keyword.control.import.python",comment:"other legal use of `as` is in an import",match:"\\b(?<!\\.)as\\b"},{name:"keyword.control.flow.python",match:"(?x)\n \\b(?<!\\.)(\n async | continue | del | assert | break | finally | for\n | from | elif | else | if | except | pass | raise\n | return | try | while | with\n )\\b\n"},{name:"storage.modifier.declaration.python",match:"(?x)\n \\b(?<!\\.)(\n global | nonlocal\n )\\b\n"},{name:"storage.type.class.python",match:"\\b(?<!\\.)(class)\\b"},{match:"(?x)\n ^\\s*(\n case | match\n )(?=\\s*([-+\\w\\d(\\[{'\":#]|$))\\b\n",captures:{"1":{name:"keyword.control.flow.python"}}}]},"expression-bare":{comment:"valid Python expressions w/o comments and line continuation",patterns:[{include:"#backticks"},{include:"#illegal-anno"},{include:"#literal"},{include:"#regexp"},{include:"#string"},{include:"#lambda"},{include:"#generator"},{include:"#illegal-operator"},{include:"#operator"},{include:"#curly-braces"},{include:"#item-access"},{include:"#list"},{include:"#odd-function-call"},{include:"#round-braces"},{include:"#function-call"},{include:"#builtin-functions"},{include:"#builtin-types"},{include:"#builtin-exceptions"},{include:"#magic-names"},{include:"#special-names"},{include:"#illegal-names"},{include:"#special-variables"},{include:"#ellipsis"},{include:"#punctuation"},{include:"#line-continuation"}]},"expression-base":{comment:"valid Python expressions with comments and line continuation",patterns:[{include:"#comments"},{include:"#expression-bare"},{include:"#line-continuation"}]},expression:{comment:"All valid Python expressions",patterns:[{include:"#expression-base"},{include:"#member-access"},{comment:"Tokenize identifiers to help linters",match:"(?x) \\b ([[:alpha:]_]\\w*) \\b"}]},"member-access":{name:"meta.member.access.python",begin:"(\\.)\\s*(?!\\.)",end:"(?x)\n # stop when you've just read non-whitespace followed by non-word\n # i.e. when finished reading an identifier or function call\n (?<=\\S)(?=\\W) |\n # stop when seeing the start of something that's not a word,\n # i.e. when seeing a non-identifier\n (^|(?<=\\s))(?=[^\\\\\\w\\s]) |\n $\n",beginCaptures:{"1":{name:"punctuation.separator.period.python"}},patterns:[{include:"#function-call"},{include:"#member-access-base"},{include:"#member-access-attribute"}]},"member-access-base":{patterns:[{include:"#magic-names"},{include:"#illegal-names"},{include:"#illegal-object-name"},{include:"#special-names"},{include:"#line-continuation"},{include:"#item-access"}]},"member-access-attribute":{comment:"Highlight attribute access in otherwise non-specialized cases.",name:"meta.attribute.python",match:"(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n"},"special-names":{name:"constant.other.caps.python",match:"(?x)\n \\b\n # we want to see \"enough\", meaning 2 or more upper-case\n # letters in the beginning of the constant\n #\n # for more details refer to:\n # https://github.com/MagicStack/MagicPython/issues/42\n (\n _* [[:upper:]] [_\\d]* [[:upper:]]\n )\n [[:upper:]\\d]* (_\\w*)?\n \\b\n"},"curly-braces":{begin:"\\{",end:"\\}",beginCaptures:{"0":{name:"punctuation.definition.dict.begin.python"}},endCaptures:{"0":{name:"punctuation.definition.dict.end.python"}},patterns:[{name:"punctuation.separator.dict.python",match:":"},{include:"#expression"}]},list:{begin:"\\[",end:"\\]",beginCaptures:{"0":{name:"punctuation.definition.list.begin.python"}},endCaptures:{"0":{name:"punctuation.definition.list.end.python"}},patterns:[{include:"#expression"}]},"odd-function-call":{comment:"A bit obscured function call where there may have been an\narbitrary number of other operations to get the function.\nE.g. \"arr[idx](args)\"\n",begin:"(?x)\n (?<= \\] | \\) ) \\s*\n (?=\\()\n",end:"(\\))",endCaptures:{"1":{name:"punctuation.definition.arguments.end.python"}},patterns:[{include:"#function-arguments"}]},"round-braces":{begin:"\\(",end:"\\)",beginCaptures:{"0":{name:"punctuation.parenthesis.begin.python"}},endCaptures:{"0":{name:"punctuation.parenthesis.end.python"}},patterns:[{include:"#expression"}]},"line-continuation":{patterns:[{match:"(\\\\)\\s*(\\S.*$\\n?)",captures:{"1":{name:"punctuation.separator.continuation.line.python"},"2":{name:"invalid.illegal.line.continuation.python"}}},{begin:"(\\\\)\\s*$\\n?",end:"(?x)\n (?=^\\s*$)\n |\n (?! (\\s* [rR]? (\\'\\'\\'|\\\"\\\"\\\"|\\'|\\\"))\n |\n (\\G $) (?# '\\G' is necessary for ST)\n )\n",beginCaptures:{"1":{name:"punctuation.separator.continuation.line.python"}},patterns:[{include:"#regexp"},{include:"#string"}]}]},"assignment-operator":{name:"keyword.operator.assignment.python",match:"(?x)\n <<= | >>= | //= | \\*\\*=\n | \\+= | -= | /= | @=\n | \\*= | %= | ~= | \\^= | &= | \\|=\n | =(?!=)\n"},operator:{match:"(?x)\n \\b(?<!\\.)\n (?:\n (and | or | not | in | is) (?# 1)\n |\n (for | if | else | await | (?:yield(?:\\s+from)?)) (?# 2)\n )\n (?!\\s*:)\\b\n\n | (<< | >> | & | \\| | \\^ | ~) (?# 3)\n\n | (\\*\\* | \\* | \\+ | - | % | // | / | @) (?# 4)\n\n | (!= | == | >= | <= | < | >) (?# 5)\n\n | (:=) (?# 6)\n",captures:{"1":{name:"keyword.operator.logical.python"},"2":{name:"keyword.control.flow.python"},"3":{name:"keyword.operator.bitwise.python"},"4":{name:"keyword.operator.arithmetic.python"},"5":{name:"keyword.operator.comparison.python"},"6":{name:"keyword.operator.assignment.python"}}},punctuation:{patterns:[{name:"punctuation.separator.colon.python",match:":"},{name:"punctuation.separator.element.python",match:","}]},literal:{patterns:[{name:"constant.language.python",match:"\\b(True|False|None|NotImplemented|Ellipsis)\\b"},{include:"#number"}]},number:{name:"constant.numeric.python",patterns:[{include:"#number-float"},{include:"#number-dec"},{include:"#number-hex"},{include:"#number-oct"},{include:"#number-bin"},{include:"#number-long"},{name:"invalid.illegal.name.python",match:"\\b[0-9]+\\w+"}]},"number-float":{name:"constant.numeric.float.python",match:"(?x)\n (?<! \\w)(?:\n (?:\n \\.[0-9](?: _?[0-9] )*\n |\n [0-9](?: _?[0-9] )* \\. [0-9](?: _?[0-9] )*\n |\n [0-9](?: _?[0-9] )* \\.\n ) (?: [eE][+-]?[0-9](?: _?[0-9] )* )?\n |\n [0-9](?: _?[0-9] )* (?: [eE][+-]?[0-9](?: _?[0-9] )* )\n )([jJ])?\\b\n",captures:{"1":{name:"storage.type.imaginary.number.python"}}},"number-dec":{name:"constant.numeric.dec.python",match:"(?x)\n (?<![\\w\\.])(?:\n [1-9](?: _?[0-9] )*\n |\n 0+\n |\n [0-9](?: _?[0-9] )* ([jJ])\n |\n 0 ([0-9]+)(?![eE\\.])\n )\\b\n",captures:{"1":{name:"storage.type.imaginary.number.python"},"2":{name:"invalid.illegal.dec.python"}}},"number-hex":{name:"constant.numeric.hex.python",match:"(?x)\n (?<![\\w\\.])\n (0[xX]) (_?[0-9a-fA-F])+\n \\b\n",captures:{"1":{name:"storage.type.number.python"}}},"number-oct":{name:"constant.numeric.oct.python",match:"(?x)\n (?<![\\w\\.])\n (0[oO]) (_?[0-7])+\n \\b\n",captures:{"1":{name:"storage.type.number.python"}}},"number-bin":{name:"constant.numeric.bin.python",match:"(?x)\n (?<![\\w\\.])\n (0[bB]) (_?[01])+\n \\b\n",captures:{"1":{name:"storage.type.number.python"}}},"number-long":{name:"constant.numeric.bin.python",comment:"this is to support python2 syntax for long ints",match:"(?x)\n (?<![\\w\\.])\n ([1-9][0-9]* | 0) ([lL])\n \\b\n",captures:{"2":{name:"storage.type.number.python"}}},regexp:{patterns:[{include:"#regexp-single-three-line"},{include:"#regexp-double-three-line"},{include:"#regexp-single-one-line"},{include:"#regexp-double-one-line"}]},string:{patterns:[{include:"#string-quoted-multi-line"},{include:"#string-quoted-single-line"},{include:"#string-bin-quoted-multi-line"},{include:"#string-bin-quoted-single-line"},{include:"#string-raw-quoted-multi-line"},{include:"#string-raw-quoted-single-line"},{include:"#string-raw-bin-quoted-multi-line"},{include:"#string-raw-bin-quoted-single-line"},{include:"#fstring-fnorm-quoted-multi-line"},{include:"#fstring-fnorm-quoted-single-line"},{include:"#fstring-normf-quoted-multi-line"},{include:"#fstring-normf-quoted-single-line"},{include:"#fstring-raw-quoted-multi-line"},{include:"#fstring-raw-quoted-single-line"}]},"string-unicode-guts":{patterns:[{include:"#escape-sequence-unicode"},{include:"#string-entity"},{include:"#string-brace-formatting"}]},"string-consume-escape":{match:"\\\\['\"\\n\\\\]"},"string-raw-guts":{patterns:[{include:"#string-consume-escape"},{include:"#string-formatting"},{include:"#string-brace-formatting"}]},"string-raw-bin-guts":{patterns:[{include:"#string-consume-escape"},{include:"#string-formatting"}]},"string-entity":{patterns:[{include:"#escape-sequence"},{include:"#string-line-continuation"},{include:"#string-formatting"}]},"fstring-guts":{patterns:[{include:"#escape-sequence-unicode"},{include:"#escape-sequence"},{include:"#string-line-continuation"},{include:"#fstring-formatting"}]},"fstring-raw-guts":{patterns:[{include:"#string-consume-escape"},{include:"#fstring-formatting"}]},"fstring-illegal-single-brace":{comment:"it is illegal to have a multiline brace inside a single-line string",begin:"(\\{)(?=[^\\n}]*$\\n?)",end:"(\\})|(?=\\n)",beginCaptures:{"1":{name:"constant.character.format.placeholder.other.python"}},endCaptures:{"1":{name:"constant.character.format.placeholder.other.python"}},patterns:[{include:"#fstring-terminator-single"},{include:"#f-expression"}]},"fstring-illegal-multi-brace":{patterns:[{include:"#impossible"}]},"f-expression":{comment:"All valid Python expressions, except comments and line continuation",patterns:[{include:"#expression-bare"},{include:"#member-access"},{comment:"Tokenize identifiers to help linters",match:"(?x) \\b ([[:alpha:]_]\\w*) \\b"}]},"escape-sequence-unicode":{patterns:[{name:"constant.character.escape.python",match:"(?x)\n \\\\ (\n u[0-9A-Fa-f]{4}\n | U[0-9A-Fa-f]{8}\n | N\\{[\\w\\s]+?\\}\n )\n"}]},"escape-sequence":{name:"constant.character.escape.python",match:"(?x)\n \\\\ (\n x[0-9A-Fa-f]{2}\n | [0-7]{1,3}\n | [\\\\\"'abfnrtv]\n )\n"},"string-line-continuation":{name:"constant.language.python",match:"\\\\$"},"string-formatting":{name:"meta.format.percent.python",match:"(?x)\n (\n % (\\([\\w\\s]*\\))?\n [-+#0 ]*\n (\\d+|\\*)? (\\.(\\d+|\\*))?\n ([hlL])?\n [diouxXeEfFgGcrsab%]\n )\n",captures:{"1":{name:"constant.character.format.placeholder.other.python"}}},"string-brace-formatting":{patterns:[{name:"meta.format.brace.python",match:"(?x)\n (\n {{ | }}\n | (?:\n {\n \\w* (\\.[[:alpha:]_]\\w* | \\[[^\\]'\"]+\\])*\n (![rsa])?\n ( : \\w? [<>=^]? [-+ ]? \\#?\n \\d* ,? (\\.\\d+)? [bcdeEfFgGnosxX%]? )?\n })\n )\n",captures:{"1":{name:"constant.character.format.placeholder.other.python"},"3":{name:"storage.type.format.python"},"4":{name:"storage.type.format.python"}}},{name:"meta.format.brace.python",match:"(?x)\n (\n {\n \\w* (\\.[[:alpha:]_]\\w* | \\[[^\\]'\"]+\\])*\n (![rsa])?\n (:)\n [^'\"{}\\n]* (?:\n \\{ [^'\"}\\n]*? \\} [^'\"{}\\n]*\n )*\n }\n )\n",captures:{"1":{name:"constant.character.format.placeholder.other.python"},"3":{name:"storage.type.format.python"},"4":{name:"storage.type.format.python"}}}]},"fstring-formatting":{patterns:[{include:"#fstring-formatting-braces"},{include:"#fstring-formatting-singe-brace"}]},"fstring-formatting-singe-brace":{name:"invalid.illegal.brace.python",match:"(}(?!}))"},"import":{comment:"Import statements used to correctly mark `from`, `import`, and `as`\n",patterns:[{begin:"\\b(?<!\\.)(from)\\b(?=.+import)",end:"$|(?=import)",beginCaptures:{"1":{name:"keyword.control.import.python"}},patterns:[{name:"punctuation.separator.period.python",match:"\\.+"},{include:"#expression"}]},{begin:"\\b(?<!\\.)(import)\\b",end:"$",beginCaptures:{"1":{name:"keyword.control.import.python"}},patterns:[{name:"keyword.control.import.python",match:"\\b(?<!\\.)as\\b"},{include:"#expression"}]}]},"class-declaration":{patterns:[{name:"meta.class.python",begin:"(?x)\n \\s*(class)\\s+\n (?=\n [[:alpha:]_]\\w* \\s* (:|\\()\n )\n",end:"(:)",beginCaptures:{"1":{name:"storage.type.class.python"}},endCaptures:{"1":{name:"punctuation.section.class.begin.python"}},patterns:[{include:"#class-name"},{include:"#class-inheritance"}]}]},"class-name":{patterns:[{include:"#illegal-object-name"},{include:"#builtin-possible-callables"},{name:"entity.name.type.class.python",match:"(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n"}]},"class-inheritance":{name:"meta.class.inheritance.python",begin:"(\\()",end:"(\\))",beginCaptures:{"1":{name:"punctuation.definition.inheritance.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.inheritance.end.python"}},patterns:[{name:"keyword.operator.unpacking.arguments.python",match:"(\\*\\*|\\*)"},{name:"punctuation.separator.inheritance.python",match:","},{name:"keyword.operator.assignment.python",match:"=(?!=)"},{name:"support.type.metaclass.python",match:"\\bmetaclass\\b"},{include:"#illegal-names"},{include:"#class-kwarg"},{include:"#call-wrapper-inheritance"},{include:"#expression-base"},{include:"#member-access-class"},{include:"#inheritance-identifier"}]},"class-kwarg":{match:"(?x)\n \\b ([[:alpha:]_]\\w*) \\s*(=)(?!=)\n",captures:{"1":{name:"entity.other.inherited-class.python variable.parameter.class.python"},"2":{name:"keyword.operator.assignment.python"}}},"inheritance-identifier":{match:"(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n",captures:{"1":{name:"entity.other.inherited-class.python"}}},"member-access-class":{name:"meta.member.access.python",begin:"(\\.)\\s*(?!\\.)",end:"(?<=\\S)(?=\\W)|$",beginCaptures:{"1":{name:"punctuation.separator.period.python"}},patterns:[{include:"#call-wrapper-inheritance"},{include:"#member-access-base"},{include:"#inheritance-identifier"}]},lambda:{patterns:[{match:"((?<=\\.)lambda|lambda(?=\\s*[\\.=]))",captures:{"1":{name:"keyword.control.flow.python"}}},{match:"\\b(lambda)\\s*?(?=[,\\n]|$)",captures:{"1":{name:"storage.type.function.lambda.python"}}},{name:"meta.lambda-function.python",begin:"(?x)\n \\b (lambda) \\b\n",end:"(:)|(\\n)",beginCaptures:{"1":{name:"storage.type.function.lambda.python"}},endCaptures:{"1":{name:"punctuation.section.function.lambda.begin.python"}},contentName:"meta.function.lambda.parameters.python",patterns:[{name:"keyword.operator.positional.parameter.python",match:"/"},{name:"keyword.operator.unpacking.parameter.python",match:"(\\*\\*|\\*)"},{include:"#lambda-nested-incomplete"},{include:"#illegal-names"},{match:"([[:alpha:]_]\\w*)\\s*(?:(,)|(?=:|$))",captures:{"1":{name:"variable.parameter.function.language.python"},"2":{name:"punctuation.separator.parameters.python"}}},{include:"#comments"},{include:"#backticks"},{include:"#illegal-anno"},{include:"#lambda-parameter-with-default"},{include:"#line-continuation"},{include:"#illegal-operator"}]}]},"lambda-incomplete":{name:"storage.type.function.lambda.python",match:"\\blambda(?=\\s*[,)])"},"lambda-nested-incomplete":{name:"storage.type.function.lambda.python",match:"\\blambda(?=\\s*[:,)])"},"lambda-parameter-with-default":{begin:"(?x)\n \\b\n ([[:alpha:]_]\\w*) \\s* (=)\n",end:"(,)|(?=:|$)",beginCaptures:{"1":{name:"variable.parameter.function.language.python"},"2":{name:"keyword.operator.python"}},endCaptures:{"1":{name:"punctuation.separator.parameters.python"}},patterns:[{include:"#expression"}]},generator:{comment:"Match \"for ... in\" construct used in generators and for loops to\ncorrectly identify the \"in\" as a control flow keyword.\n",begin:"\\bfor\\b",beginCaptures:{"0":{name:"keyword.control.flow.python"}},end:"\\bin\\b",endCaptures:{"0":{name:"keyword.control.flow.python"}},patterns:[{include:"#expression"}]},"function-declaration":{name:"meta.function.python",begin:"(?x)\n \\s*\n (?:\\b(async) \\s+)? \\b(def)\\s+\n (?=\n [[:alpha:]_][[:word:]]* \\s* \\(\n )\n",end:"(:|(?=[#'\"\\n]))",beginCaptures:{"1":{name:"storage.type.function.async.python"},"2":{name:"storage.type.function.python"}},endCaptures:{"1":{name:"punctuation.section.function.begin.python"}},patterns:[{include:"#function-def-name"},{include:"#parameters"},{include:"#line-continuation"},{include:"#return-annotation"}]},"function-def-name":{patterns:[{include:"#illegal-object-name"},{include:"#builtin-possible-callables"},{name:"entity.name.function.python",match:"(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n"}]},parameters:{name:"meta.function.parameters.python",begin:"(\\()",end:"(\\))",beginCaptures:{"1":{name:"punctuation.definition.parameters.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.parameters.end.python"}},patterns:[{name:"keyword.operator.positional.parameter.python",match:"/"},{name:"keyword.operator.unpacking.parameter.python",match:"(\\*\\*|\\*)"},{include:"#lambda-incomplete"},{include:"#illegal-names"},{include:"#illegal-object-name"},{include:"#parameter-special"},{match:"(?x)\n ([[:alpha:]_]\\w*)\n \\s* (?: (,) | (?=[)#\\n=]))\n",captures:{"1":{name:"variable.parameter.function.language.python"},"2":{name:"punctuation.separator.parameters.python"}}},{include:"#comments"},{include:"#loose-default"},{include:"#annotated-parameter"}]},"parameter-special":{match:"(?x)\n \\b ((self)|(cls)) \\b \\s*(?:(,)|(?=\\)))\n",captures:{"1":{name:"variable.parameter.function.language.python"},"2":{name:"variable.parameter.function.language.special.self.python"},"3":{name:"variable.parameter.function.language.special.cls.python"},"4":{name:"punctuation.separator.parameters.python"}}},"loose-default":{begin:"(=)",end:"(,)|(?=\\))",beginCaptures:{"1":{name:"keyword.operator.python"}},endCaptures:{"1":{name:"punctuation.separator.parameters.python"}},patterns:[{include:"#expression"}]},"annotated-parameter":{begin:"(?x)\n \\b\n ([[:alpha:]_]\\w*) \\s* (:)\n",end:"(,)|(?=\\))",beginCaptures:{"1":{name:"variable.parameter.function.language.python"},"2":{name:"punctuation.separator.annotation.python"}},endCaptures:{"1":{name:"punctuation.separator.parameters.python"}},patterns:[{include:"#expression"},{name:"keyword.operator.assignment.python",match:"=(?!=)"}]},"return-annotation":{begin:"(->)",end:"(?=:)",beginCaptures:{"1":{name:"punctuation.separator.annotation.result.python"}},patterns:[{include:"#expression"}]},"item-access":{patterns:[{name:"meta.item-access.python",begin:"(?x)\n \\b(?=\n [[:alpha:]_]\\w* \\s* \\[\n )\n",end:"(\\])",endCaptures:{"1":{name:"punctuation.definition.arguments.end.python"}},patterns:[{include:"#item-name"},{include:"#item-index"},{include:"#expression"}]}]},"item-name":{patterns:[{include:"#special-variables"},{include:"#builtin-functions"},{include:"#special-names"},{name:"meta.indexed-name.python",match:"(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n"}]},"item-index":{begin:"(\\[)",end:"(?=\\])",beginCaptures:{"1":{name:"punctuation.definition.arguments.begin.python"}},contentName:"meta.item-access.arguments.python",patterns:[{name:"punctuation.separator.slice.python",match:":"},{include:"#expression"}]},decorator:{name:"meta.function.decorator.python",begin:"(?x)\n ^\\s*\n ((@)) \\s* (?=[[:alpha:]_]\\w*)\n",end:"(?x)\n ( \\) )\n # trailing whitespace and comments are legal\n (?: (.*?) (?=\\s*(?:\\#|$)) )\n | (?=\\n|\\#)\n",beginCaptures:{"1":{name:"entity.name.function.decorator.python"},"2":{name:"punctuation.definition.decorator.python"}},endCaptures:{"1":{name:"punctuation.definition.arguments.end.python"},"2":{name:"invalid.illegal.decorator.python"}},patterns:[{include:"#decorator-name"},{include:"#function-arguments"}]},"decorator-name":{patterns:[{include:"#builtin-callables"},{include:"#illegal-object-name"},{name:"entity.name.function.decorator.python",match:"(?x)\n ([[:alpha:]_]\\w*) | (\\.)\n",captures:{"2":{name:"punctuation.separator.period.python"}}},{include:"#line-continuation"},{name:"invalid.illegal.decorator.python",match:"(?x)\n \\s* ([^([:alpha:]\\s_\\.#\\\\] .*?) (?=\\#|$)\n",captures:{"1":{name:"invalid.illegal.decorator.python"}}}]},"call-wrapper-inheritance":{comment:"same as a function call, but in inheritance context",name:"meta.function-call.python",begin:"(?x)\n \\b(?=\n ([[:alpha:]_]\\w*) \\s* (\\()\n )\n",end:"(\\))",endCaptures:{"1":{name:"punctuation.definition.arguments.end.python"}},patterns:[{include:"#inheritance-name"},{include:"#function-arguments"}]},"inheritance-name":{patterns:[{include:"#lambda-incomplete"},{include:"#builtin-possible-callables"},{include:"#inheritance-identifier"}]},"function-call":{name:"meta.function-call.python",comment:"Regular function call of the type \"name(args)\"",begin:"(?x)\n \\b(?=\n ([[:alpha:]_]\\w*) \\s* (\\()\n )\n",end:"(\\))",endCaptures:{"1":{name:"punctuation.definition.arguments.end.python"}},patterns:[{include:"#special-variables"},{include:"#function-name"},{include:"#function-arguments"}]},"function-name":{patterns:[{include:"#builtin-possible-callables"},{comment:"Some color schemas support meta.function-call.generic scope",name:"meta.function-call.generic.python",match:"(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n"}]},"function-arguments":{begin:"(\\()",end:"(?=\\))(?!\\)\\s*\\()",beginCaptures:{"1":{name:"punctuation.definition.arguments.begin.python"}},contentName:"meta.function-call.arguments.python",patterns:[{name:"punctuation.separator.arguments.python",match:"(,)"},{match:"(?x)\n (?:(?<=[,(])|^) \\s* (\\*{1,2})\n",captures:{"1":{name:"keyword.operator.unpacking.arguments.python"}}},{include:"#lambda-incomplete"},{include:"#illegal-names"},{match:"\\b([[:alpha:]_]\\w*)\\s*(=)(?!=)",captures:{"1":{name:"variable.parameter.function-call.python"},"2":{name:"keyword.operator.assignment.python"}}},{name:"keyword.operator.assignment.python",match:"=(?!=)"},{include:"#expression"},{match:"\\s*(\\))\\s*(\\()",captures:{"1":{name:"punctuation.definition.arguments.end.python"},"2":{name:"punctuation.definition.arguments.begin.python"}}}]},"builtin-callables":{patterns:[{include:"#illegal-names"},{include:"#illegal-object-name"},{include:"#builtin-exceptions"},{include:"#builtin-functions"},{include:"#builtin-types"}]},"builtin-possible-callables":{patterns:[{include:"#builtin-callables"},{include:"#magic-names"}]},"builtin-exceptions":{name:"support.type.exception.python",match:"(?x) (?<!\\.) \\b(\n (\n Arithmetic | Assertion | Attribute | Buffer | BlockingIO\n | BrokenPipe | ChildProcess\n | (Connection (Aborted | Refused | Reset)?)\n | EOF | Environment | FileExists | FileNotFound\n | FloatingPoint | IO | Import | Indentation | Index | Interrupted\n | IsADirectory | NotADirectory | Permission | ProcessLookup\n | Timeout\n | Key | Lookup | Memory | Name | NotImplemented | OS | Overflow\n | Reference | Runtime | Recursion | Syntax | System\n | Tab | Type | UnboundLocal | Unicode(Encode|Decode|Translate)?\n | Value | Windows | ZeroDivision | ModuleNotFound\n ) Error\n|\n ((Pending)?Deprecation | Runtime | Syntax | User | Future | Import\n | Unicode | Bytes | Resource\n )? Warning\n|\n SystemExit | Stop(Async)?Iteration\n | KeyboardInterrupt\n | GeneratorExit | (Base)?Exception\n)\\b\n"},"builtin-functions":{patterns:[{name:"support.function.builtin.python",match:"(?x)\n (?<!\\.) \\b(\n __import__ | abs | aiter | all | any | anext | ascii | bin\n | breakpoint | callable | chr | compile | copyright | credits\n | delattr | dir | divmod | enumerate | eval | exec | exit\n | filter | format | getattr | globals | hasattr | hash | help\n | hex | id | input | isinstance | issubclass | iter | len\n | license | locals | map | max | memoryview | min | next\n | oct | open | ord | pow | print | quit | range | reload | repr\n | reversed | round | setattr | sorted | sum | vars | zip\n )\\b\n"},{name:"variable.legacy.builtin.python",match:"(?x)\n (?<!\\.) \\b(\n file | reduce | intern | raw_input | unicode | cmp | basestring\n | execfile | long | xrange\n )\\b\n"}]},"builtin-types":{name:"support.type.python",match:"(?x)\n (?<!\\.) \\b(\n bool | bytearray | bytes | classmethod | complex | dict\n | float | frozenset | int | list | object | property\n | set | slice | staticmethod | str | tuple | type\n\n (?# Although 'super' is not a type, it's related to types,\n and is special enough to be highlighted differently from\n other built-ins)\n | super\n )\\b\n"},"magic-function-names":{comment:"these methods have magic interpretation by python and are generally called\nindirectly through syntactic constructs\n",match:"(?x)\n \\b(\n __(?:\n abs | add | aenter | aexit | aiter | and | anext\n | await | bool | call | ceil | class_getitem\n | cmp | coerce | complex | contains | copy\n | deepcopy | del | delattr | delete | delitem\n | delslice | dir | div | divmod | enter | eq\n | exit | float | floor | floordiv | format | ge\n | get | getattr | getattribute | getinitargs\n | getitem | getnewargs | getslice | getstate | gt\n | hash | hex | iadd | iand | idiv | ifloordiv |\n | ilshift | imod | imul | index | init\n | instancecheck | int | invert | ior | ipow\n | irshift | isub | iter | itruediv | ixor | le\n | len | long | lshift | lt | missing | mod | mul\n | ne | neg | new | next | nonzero | oct | or | pos\n | pow | radd | rand | rdiv | rdivmod | reduce\n | reduce_ex | repr | reversed | rfloordiv |\n | rlshift | rmod | rmul | ror | round | rpow\n | rrshift | rshift | rsub | rtruediv | rxor | set\n | setattr | setitem | set_name | setslice\n | setstate | sizeof | str | sub | subclasscheck\n | truediv | trunc | unicode | xor | matmul\n | rmatmul | imatmul | init_subclass | set_name\n | fspath | bytes | prepare | length_hint\n )__\n )\\b\n",captures:{"1":{name:"support.function.magic.python"}}},"magic-variable-names":{comment:"magic variables which a class/module may have.",match:"(?x)\n \\b(\n __(?:\n all | annotations | bases | builtins | class\n | closure | code | debug | defaults | dict | doc | file | func\n | globals | kwdefaults | match_args | members | metaclass | methods\n | module | mro | mro_entries | name | qualname | post_init | self\n | signature | slots | subclasses | version | weakref | wrapped\n | classcell | spec | path | package | future | traceback\n )__\n )\\b\n",captures:{"1":{name:"support.variable.magic.python"}}},"magic-names":{patterns:[{include:"#magic-function-names"},{include:"#magic-variable-names"}]},"illegal-names":{match:"(?x)\n \\b(?:\n (\n and | assert | async | await | break | class | continue | def\n | del | elif | else | except | finally | for | from | global\n | if | in | is | (?<=\\.)lambda | lambda(?=\\s*[\\.=])\n | nonlocal | not | or | pass | raise | return | try | while | with\n | yield\n ) | (\n as | import\n )\n )\\b\n",captures:{"1":{name:"keyword.control.flow.python"},"2":{name:"keyword.control.import.python"}}},"special-variables":{match:"(?x)\n \\b (?<!\\.) (?:\n (self) | (cls)\n )\\b\n",captures:{"1":{name:"variable.language.special.self.python"},"2":{name:"variable.language.special.cls.python"}}},ellipsis:{name:"constant.other.ellipsis.python",match:"\\.\\.\\."},backticks:{name:"invalid.deprecated.backtick.python",begin:"\\`",end:"(?:\\`|(?<!\\\\)(\\n))",patterns:[{include:"#expression"}]},"illegal-operator":{patterns:[{name:"invalid.illegal.operator.python",match:"&&|\\|\\||--|\\+\\+"},{name:"invalid.illegal.operator.python",match:"[?$]"},{name:"invalid.illegal.operator.python",comment:"We don't want `!` to flash when we're typing `!=`",match:"!\\b"}]},"illegal-object-name":{comment:"It's illegal to name class or function \"True\"",name:"keyword.illegal.name.python",match:"\\b(True|False|None)\\b"},"illegal-anno":{name:"invalid.illegal.annotation.python",match:"->"},"regexp-base-expression":{patterns:[{include:"#regexp-quantifier"},{include:"#regexp-base-common"}]},"fregexp-base-expression":{patterns:[{include:"#fregexp-quantifier"},{include:"#fstring-formatting-braces"},{match:"\\{.*?\\}"},{include:"#regexp-base-common"}]},"fstring-formatting-braces":{patterns:[{comment:"empty braces are illegal",match:"({)(\\s*?)(})",captures:{"1":{name:"constant.character.format.placeholder.other.python"},"2":{name:"invalid.illegal.brace.python"},"3":{name:"constant.character.format.placeholder.other.python"}}},{name:"constant.character.escape.python",match:"({{|}})"}]},"regexp-base-common":{patterns:[{name:"support.other.match.any.regexp",match:"\\."},{name:"support.other.match.begin.regexp",match:"\\^"},{name:"support.other.match.end.regexp",match:"\\$"},{name:"keyword.operator.quantifier.regexp",match:"[+*?]\\??"},{name:"keyword.operator.disjunction.regexp",match:"\\|"},{include:"#regexp-escape-sequence"}]},"regexp-quantifier":{name:"keyword.operator.quantifier.regexp",match:"(?x)\n \\{(\n \\d+ | \\d+,(\\d+)? | ,\\d+\n )\\}\n"},"fregexp-quantifier":{name:"keyword.operator.quantifier.regexp",match:"(?x)\n \\{\\{(\n \\d+ | \\d+,(\\d+)? | ,\\d+\n )\\}\\}\n"},"regexp-backreference-number":{name:"meta.backreference.regexp",match:"(\\\\[1-9]\\d?)",captures:{"1":{name:"entity.name.tag.backreference.regexp"}}},"regexp-backreference":{name:"meta.backreference.named.regexp",match:"(?x)\n (\\() (\\?P= \\w+(?:\\s+[[:alnum:]]+)?) (\\))\n",captures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.begin.regexp"},"2":{name:"entity.name.tag.named.backreference.regexp"},"3":{name:"support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.end.regexp"}}},"regexp-flags":{name:"storage.modifier.flag.regexp",match:"\\(\\?[aiLmsux]+\\)"},"regexp-escape-special":{name:"support.other.escape.special.regexp",match:"\\\\([AbBdDsSwWZ])"},"regexp-escape-character":{name:"constant.character.escape.regexp",match:"(?x)\n \\\\ (\n x[0-9A-Fa-f]{2}\n | 0[0-7]{1,2}\n | [0-7]{3}\n )\n"},"regexp-escape-unicode":{name:"constant.character.unicode.regexp",match:"(?x)\n \\\\ (\n u[0-9A-Fa-f]{4}\n | U[0-9A-Fa-f]{8}\n )\n"},"regexp-escape-catchall":{name:"constant.character.escape.regexp",match:"\\\\(.|\\n)"},"regexp-escape-sequence":{patterns:[{include:"#regexp-escape-special"},{include:"#regexp-escape-character"},{include:"#regexp-escape-unicode"},{include:"#regexp-backreference-number"},{include:"#regexp-escape-catchall"}]},"regexp-charecter-set-escapes":{patterns:[{name:"constant.character.escape.regexp",match:"\\\\[abfnrtv\\\\]"},{include:"#regexp-escape-special"},{name:"constant.character.escape.regexp",match:"\\\\([0-7]{1,3})"},{include:"#regexp-escape-character"},{include:"#regexp-escape-unicode"},{include:"#regexp-escape-catchall"}]},codetags:{match:"(?:\\b(NOTE|XXX|HACK|FIXME|BUG|TODO)\\b)",captures:{"1":{name:"keyword.codetag.notation.python"}}},"comments-base":{name:"comment.line.number-sign.python",begin:"(\\#)",beginCaptures:{"1":{name:"punctuation.definition.comment.python"}},end:"($)",patterns:[{include:"#codetags"}]},"comments-string-single-three":{name:"comment.line.number-sign.python",begin:"(\\#)",beginCaptures:{"1":{name:"punctuation.definition.comment.python"}},end:"($|(?='''))",patterns:[{include:"#codetags"}]},"comments-string-double-three":{name:"comment.line.number-sign.python",begin:"(\\#)",beginCaptures:{"1":{name:"punctuation.definition.comment.python"}},end:"($|(?=\"\"\"))",patterns:[{include:"#codetags"}]},"single-one-regexp-expression":{patterns:[{include:"#regexp-base-expression"},{include:"#single-one-regexp-character-set"},{include:"#single-one-regexp-comments"},{include:"#regexp-flags"},{include:"#single-one-regexp-named-group"},{include:"#regexp-backreference"},{include:"#single-one-regexp-lookahead"},{include:"#single-one-regexp-lookahead-negative"},{include:"#single-one-regexp-lookbehind"},{include:"#single-one-regexp-lookbehind-negative"},{include:"#single-one-regexp-conditional"},{include:"#single-one-regexp-parentheses-non-capturing"},{include:"#single-one-regexp-parentheses"}]},"single-one-regexp-character-set":{patterns:[{match:"(?x)\n \\[ \\^? \\] (?! .*?\\])\n"},{name:"meta.character.set.regexp",begin:"(\\[)(\\^)?(\\])?",end:"(\\]|(?=\\'))|((?=(?<!\\\\)\\n))",beginCaptures:{"1":{name:"punctuation.character.set.begin.regexp constant.other.set.regexp"},"2":{name:"keyword.operator.negation.regexp"},"3":{name:"constant.character.set.regexp"}},endCaptures:{"1":{name:"punctuation.character.set.end.regexp constant.other.set.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#regexp-charecter-set-escapes"},{name:"constant.character.set.regexp",match:"[^\\n]"}]}]},"single-one-regexp-named-group":{name:"meta.named.regexp",begin:"(?x)\n (\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n",end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",beginCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},"2":{name:"entity.name.tag.named.group.regexp"}},endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-comments":{name:"comment.regexp",begin:"\\(\\?#",end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"punctuation.comment.begin.regexp"}},endCaptures:{"1":{name:"punctuation.comment.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#codetags"}]},"single-one-regexp-lookahead":{begin:"(\\()\\?=",end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"keyword.operator.lookahead.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-lookahead-negative":{begin:"(\\()\\?!",end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"keyword.operator.lookahead.negative.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-lookbehind":{begin:"(\\()\\?<=",end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"keyword.operator.lookbehind.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-lookbehind-negative":{begin:"(\\()\\?<!",end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"keyword.operator.lookbehind.negative.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-conditional":{begin:"(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)",end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"keyword.operator.conditional.regexp"},"1":{name:"punctuation.parenthesis.conditional.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-parentheses-non-capturing":{begin:"\\(\\?:",end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-parentheses":{begin:"\\(",end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-three-regexp-expression":{patterns:[{include:"#regexp-base-expression"},{include:"#single-three-regexp-character-set"},{include:"#single-three-regexp-comments"},{include:"#regexp-flags"},{include:"#single-three-regexp-named-group"},{include:"#regexp-backreference"},{include:"#single-three-regexp-lookahead"},{include:"#single-three-regexp-lookahead-negative"},{include:"#single-three-regexp-lookbehind"},{include:"#single-three-regexp-lookbehind-negative"},{include:"#single-three-regexp-conditional"},{include:"#single-three-regexp-parentheses-non-capturing"},{include:"#single-three-regexp-parentheses"},{include:"#comments-string-single-three"}]},"single-three-regexp-character-set":{patterns:[{match:"(?x)\n \\[ \\^? \\] (?! .*?\\])\n"},{name:"meta.character.set.regexp",begin:"(\\[)(\\^)?(\\])?",end:"(\\]|(?=\\'\\'\\'))",beginCaptures:{"1":{name:"punctuation.character.set.begin.regexp constant.other.set.regexp"},"2":{name:"keyword.operator.negation.regexp"},"3":{name:"constant.character.set.regexp"}},endCaptures:{"1":{name:"punctuation.character.set.end.regexp constant.other.set.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#regexp-charecter-set-escapes"},{name:"constant.character.set.regexp",match:"[^\\n]"}]}]},"single-three-regexp-named-group":{name:"meta.named.regexp",begin:"(?x)\n (\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n",end:"(\\)|(?=\\'\\'\\'))",beginCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},"2":{name:"entity.name.tag.named.group.regexp"}},endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-comments":{name:"comment.regexp",begin:"\\(\\?#",end:"(\\)|(?=\\'\\'\\'))",beginCaptures:{"0":{name:"punctuation.comment.begin.regexp"}},endCaptures:{"1":{name:"punctuation.comment.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#codetags"}]},"single-three-regexp-lookahead":{begin:"(\\()\\?=",end:"(\\)|(?=\\'\\'\\'))",beginCaptures:{"0":{name:"keyword.operator.lookahead.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-lookahead-negative":{begin:"(\\()\\?!",end:"(\\)|(?=\\'\\'\\'))",beginCaptures:{"0":{name:"keyword.operator.lookahead.negative.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-lookbehind":{begin:"(\\()\\?<=",end:"(\\)|(?=\\'\\'\\'))",beginCaptures:{"0":{name:"keyword.operator.lookbehind.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-lookbehind-negative":{begin:"(\\()\\?<!",end:"(\\)|(?=\\'\\'\\'))",beginCaptures:{"0":{name:"keyword.operator.lookbehind.negative.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-conditional":{begin:"(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)",end:"(\\)|(?=\\'\\'\\'))",beginCaptures:{"0":{name:"keyword.operator.conditional.regexp"},"1":{name:"punctuation.parenthesis.conditional.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-parentheses-non-capturing":{begin:"\\(\\?:",end:"(\\)|(?=\\'\\'\\'))",beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-parentheses":{begin:"\\(",end:"(\\)|(?=\\'\\'\\'))",beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"double-one-regexp-expression":{patterns:[{include:"#regexp-base-expression"},{include:"#double-one-regexp-character-set"},{include:"#double-one-regexp-comments"},{include:"#regexp-flags"},{include:"#double-one-regexp-named-group"},{include:"#regexp-backreference"},{include:"#double-one-regexp-lookahead"},{include:"#double-one-regexp-lookahead-negative"},{include:"#double-one-regexp-lookbehind"},{include:"#double-one-regexp-lookbehind-negative"},{include:"#double-one-regexp-conditional"},{include:"#double-one-regexp-parentheses-non-capturing"},{include:"#double-one-regexp-parentheses"}]},"double-one-regexp-character-set":{patterns:[{match:"(?x)\n \\[ \\^? \\] (?! .*?\\])\n"},{name:"meta.character.set.regexp",begin:"(\\[)(\\^)?(\\])?",end:"(\\]|(?=\"))|((?=(?<!\\\\)\\n))",beginCaptures:{"1":{name:"punctuation.character.set.begin.regexp constant.other.set.regexp"},"2":{name:"keyword.operator.negation.regexp"},"3":{name:"constant.character.set.regexp"}},endCaptures:{"1":{name:"punctuation.character.set.end.regexp constant.other.set.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#regexp-charecter-set-escapes"},{name:"constant.character.set.regexp",match:"[^\\n]"}]}]},"double-one-regexp-named-group":{name:"meta.named.regexp",begin:"(?x)\n (\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n",end:"(\\)|(?=\"))|((?=(?<!\\\\)\\n))",beginCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},"2":{name:"entity.name.tag.named.group.regexp"}},endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-comments":{name:"comment.regexp",begin:"\\(\\?#",end:"(\\)|(?=\"))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"punctuation.comment.begin.regexp"}},endCaptures:{"1":{name:"punctuation.comment.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#codetags"}]},"double-one-regexp-lookahead":{begin:"(\\()\\?=",end:"(\\)|(?=\"))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"keyword.operator.lookahead.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-lookahead-negative":{begin:"(\\()\\?!",end:"(\\)|(?=\"))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"keyword.operator.lookahead.negative.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-lookbehind":{begin:"(\\()\\?<=",end:"(\\)|(?=\"))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"keyword.operator.lookbehind.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-lookbehind-negative":{begin:"(\\()\\?<!",end:"(\\)|(?=\"))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"keyword.operator.lookbehind.negative.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-conditional":{begin:"(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)",end:"(\\)|(?=\"))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"keyword.operator.conditional.regexp"},"1":{name:"punctuation.parenthesis.conditional.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-parentheses-non-capturing":{begin:"\\(\\?:",end:"(\\)|(?=\"))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-parentheses":{begin:"\\(",end:"(\\)|(?=\"))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-three-regexp-expression":{patterns:[{include:"#regexp-base-expression"},{include:"#double-three-regexp-character-set"},{include:"#double-three-regexp-comments"},{include:"#regexp-flags"},{include:"#double-three-regexp-named-group"},{include:"#regexp-backreference"},{include:"#double-three-regexp-lookahead"},{include:"#double-three-regexp-lookahead-negative"},{include:"#double-three-regexp-lookbehind"},{include:"#double-three-regexp-lookbehind-negative"},{include:"#double-three-regexp-conditional"},{include:"#double-three-regexp-parentheses-non-capturing"},{include:"#double-three-regexp-parentheses"},{include:"#comments-string-double-three"}]},"double-three-regexp-character-set":{patterns:[{match:"(?x)\n \\[ \\^? \\] (?! .*?\\])\n"},{name:"meta.character.set.regexp",begin:"(\\[)(\\^)?(\\])?",end:"(\\]|(?=\"\"\"))",beginCaptures:{"1":{name:"punctuation.character.set.begin.regexp constant.other.set.regexp"},"2":{name:"keyword.operator.negation.regexp"},"3":{name:"constant.character.set.regexp"}},endCaptures:{"1":{name:"punctuation.character.set.end.regexp constant.other.set.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#regexp-charecter-set-escapes"},{name:"constant.character.set.regexp",match:"[^\\n]"}]}]},"double-three-regexp-named-group":{name:"meta.named.regexp",begin:"(?x)\n (\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n",end:"(\\)|(?=\"\"\"))",beginCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},"2":{name:"entity.name.tag.named.group.regexp"}},endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-comments":{name:"comment.regexp",begin:"\\(\\?#",end:"(\\)|(?=\"\"\"))",beginCaptures:{"0":{name:"punctuation.comment.begin.regexp"}},endCaptures:{"1":{name:"punctuation.comment.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#codetags"}]},"double-three-regexp-lookahead":{begin:"(\\()\\?=",end:"(\\)|(?=\"\"\"))",beginCaptures:{"0":{name:"keyword.operator.lookahead.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-lookahead-negative":{begin:"(\\()\\?!",end:"(\\)|(?=\"\"\"))",beginCaptures:{"0":{name:"keyword.operator.lookahead.negative.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-lookbehind":{begin:"(\\()\\?<=",end:"(\\)|(?=\"\"\"))",beginCaptures:{"0":{name:"keyword.operator.lookbehind.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-lookbehind-negative":{begin:"(\\()\\?<!",end:"(\\)|(?=\"\"\"))",beginCaptures:{"0":{name:"keyword.operator.lookbehind.negative.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-conditional":{begin:"(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)",end:"(\\)|(?=\"\"\"))",beginCaptures:{"0":{name:"keyword.operator.conditional.regexp"},"1":{name:"punctuation.parenthesis.conditional.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-parentheses-non-capturing":{begin:"\\(\\?:",end:"(\\)|(?=\"\"\"))",beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-parentheses":{begin:"\\(",end:"(\\)|(?=\"\"\"))",beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"regexp-single-one-line":{name:"string.regexp.quoted.single.python",begin:"\\b(([uU]r)|([bB]r)|(r[bB]?))(\\')",end:"(\\')|(?<!\\\\)(\\n)",beginCaptures:{"2":{name:"invalid.deprecated.prefix.python"},"3":{name:"storage.type.string.python"},"4":{name:"storage.type.string.python"},"5":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"regexp-single-three-line":{name:"string.regexp.quoted.multi.python",begin:"\\b(([uU]r)|([bB]r)|(r[bB]?))(\\'\\'\\')",end:"(\\'\\'\\')",beginCaptures:{"2":{name:"invalid.deprecated.prefix.python"},"3":{name:"storage.type.string.python"},"4":{name:"storage.type.string.python"},"5":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"}]},"regexp-double-one-line":{name:"string.regexp.quoted.single.python",begin:"\\b(([uU]r)|([bB]r)|(r[bB]?))(\")",end:"(\")|(?<!\\\\)(\\n)",beginCaptures:{"2":{name:"invalid.deprecated.prefix.python"},"3":{name:"storage.type.string.python"},"4":{name:"storage.type.string.python"},"5":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"regexp-double-three-line":{name:"string.regexp.quoted.multi.python",begin:"\\b(([uU]r)|([bB]r)|(r[bB]?))(\"\"\")",end:"(\"\"\")",beginCaptures:{"2":{name:"invalid.deprecated.prefix.python"},"3":{name:"storage.type.string.python"},"4":{name:"storage.type.string.python"},"5":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"}]},"string-raw-quoted-single-line":{name:"string.quoted.raw.single.python",begin:"\\b(([uU]R)|(R))((['\"]))",end:"(\\4)|((?<!\\\\)\\n)",beginCaptures:{"2":{name:"invalid.deprecated.prefix.python"},"3":{name:"storage.type.string.python"},"4":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#string-single-bad-brace1-formatting-raw"},{include:"#string-single-bad-brace2-formatting-raw"},{include:"#string-raw-guts"}]},"string-bin-quoted-single-line":{name:"string.quoted.binary.single.python",begin:"(\\b[bB])((['\"]))",end:"(\\2)|((?<!\\\\)\\n)",beginCaptures:{"1":{name:"storage.type.string.python"},"2":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#string-entity"}]},"string-raw-bin-quoted-single-line":{name:"string.quoted.raw.binary.single.python",begin:"(\\b(?:R[bB]|[bB]R))((['\"]))",end:"(\\2)|((?<!\\\\)\\n)",beginCaptures:{"1":{name:"storage.type.string.python"},"2":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#string-raw-bin-guts"}]},"string-quoted-single-line":{name:"string.quoted.single.python",begin:"(?:\\b([rR])(?=[uU]))?([uU])?((['\"]))",end:"(\\3)|((?<!\\\\)\\n)",beginCaptures:{"1":{name:"invalid.illegal.prefix.python"},"2":{name:"storage.type.string.python"},"3":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#string-single-bad-brace1-formatting-unicode"},{include:"#string-single-bad-brace2-formatting-unicode"},{include:"#string-unicode-guts"}]},"string-single-bad-brace1-formatting-unicode":{comment:"template using {% ... %}",begin:"(?x)\n (?= \\{%\n ( .*? (?!(['\"])|((?<!\\\\)\\n)) )\n %\\}\n )\n",end:"(?=(['\"])|((?<!\\\\)\\n))",patterns:[{include:"#escape-sequence-unicode"},{include:"#escape-sequence"},{include:"#string-line-continuation"}]},"string-single-bad-brace1-formatting-raw":{comment:"template using {% ... %}",begin:"(?x)\n (?= \\{%\n ( .*? (?!(['\"])|((?<!\\\\)\\n)) )\n %\\}\n )\n",end:"(?=(['\"])|((?<!\\\\)\\n))",patterns:[{include:"#string-consume-escape"}]},"string-single-bad-brace2-formatting-unicode":{comment:"odd format or format-like syntax",begin:"(?x)\n (?!\\{\\{)\n (?= \\{ (\n \\w*? (?!(['\"])|((?<!\\\\)\\n)) [^!:\\.\\[}\\w]\n )\n .*?(?!(['\"])|((?<!\\\\)\\n))\n \\}\n )\n",end:"(?=(['\"])|((?<!\\\\)\\n))",patterns:[{include:"#escape-sequence-unicode"},{include:"#string-entity"}]},"string-single-bad-brace2-formatting-raw":{comment:"odd format or format-like syntax",begin:"(?x)\n (?!\\{\\{)\n (?= \\{ (\n \\w*? (?!(['\"])|((?<!\\\\)\\n)) [^!:\\.\\[}\\w]\n )\n .*?(?!(['\"])|((?<!\\\\)\\n))\n \\}\n )\n",end:"(?=(['\"])|((?<!\\\\)\\n))",patterns:[{include:"#string-consume-escape"},{include:"#string-formatting"}]},"string-raw-quoted-multi-line":{name:"string.quoted.raw.multi.python",begin:"\\b(([uU]R)|(R))('''|\"\"\")",end:"(\\4)",beginCaptures:{"2":{name:"invalid.deprecated.prefix.python"},"3":{name:"storage.type.string.python"},"4":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#string-multi-bad-brace1-formatting-raw"},{include:"#string-multi-bad-brace2-formatting-raw"},{include:"#string-raw-guts"}]},"string-bin-quoted-multi-line":{name:"string.quoted.binary.multi.python",begin:"(\\b[bB])('''|\"\"\")",end:"(\\2)",beginCaptures:{"1":{name:"storage.type.string.python"},"2":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#string-entity"}]},"string-raw-bin-quoted-multi-line":{name:"string.quoted.raw.binary.multi.python",begin:"(\\b(?:R[bB]|[bB]R))('''|\"\"\")",end:"(\\2)",beginCaptures:{"1":{name:"storage.type.string.python"},"2":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#string-raw-bin-guts"}]},"string-quoted-multi-line":{name:"string.quoted.multi.python",begin:"(?:\\b([rR])(?=[uU]))?([uU])?('''|\"\"\")",end:"(\\3)",beginCaptures:{"1":{name:"invalid.illegal.prefix.python"},"2":{name:"storage.type.string.python"},"3":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#string-multi-bad-brace1-formatting-unicode"},{include:"#string-multi-bad-brace2-formatting-unicode"},{include:"#string-unicode-guts"}]},"string-multi-bad-brace1-formatting-unicode":{comment:"template using {% ... %}",begin:"(?x)\n (?= \\{%\n ( .*? (?!'''|\"\"\") )\n %\\}\n )\n",end:"(?='''|\"\"\")",patterns:[{include:"#escape-sequence-unicode"},{include:"#escape-sequence"},{include:"#string-line-continuation"}]},"string-multi-bad-brace1-formatting-raw":{comment:"template using {% ... %}",begin:"(?x)\n (?= \\{%\n ( .*? (?!'''|\"\"\") )\n %\\}\n )\n",end:"(?='''|\"\"\")",patterns:[{include:"#string-consume-escape"}]},"string-multi-bad-brace2-formatting-unicode":{comment:"odd format or format-like syntax",begin:"(?x)\n (?!\\{\\{)\n (?= \\{ (\n \\w*? (?!'''|\"\"\") [^!:\\.\\[}\\w]\n )\n .*?(?!'''|\"\"\")\n \\}\n )\n",end:"(?='''|\"\"\")",patterns:[{include:"#escape-sequence-unicode"},{include:"#string-entity"}]},"string-multi-bad-brace2-formatting-raw":{comment:"odd format or format-like syntax",begin:"(?x)\n (?!\\{\\{)\n (?= \\{ (\n \\w*? (?!'''|\"\"\") [^!:\\.\\[}\\w]\n )\n .*?(?!'''|\"\"\")\n \\}\n )\n",end:"(?='''|\"\"\")",patterns:[{include:"#string-consume-escape"},{include:"#string-formatting"}]},"fstring-fnorm-quoted-single-line":{name:"meta.fstring.python",begin:"(\\b[fF])([bBuU])?((['\"]))",end:"(\\3)|((?<!\\\\)\\n)",beginCaptures:{"1":{name:"string.interpolated.python string.quoted.single.python storage.type.string.python"},"2":{name:"invalid.illegal.prefix.python"},"3":{name:"punctuation.definition.string.begin.python string.interpolated.python string.quoted.single.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.single.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#fstring-guts"},{include:"#fstring-illegal-single-brace"},{include:"#fstring-single-brace"},{include:"#fstring-single-core"}]},"fstring-normf-quoted-single-line":{name:"meta.fstring.python",begin:"(\\b[bBuU])([fF])((['\"]))",end:"(\\3)|((?<!\\\\)\\n)",beginCaptures:{"1":{name:"invalid.illegal.prefix.python"},"2":{name:"string.interpolated.python string.quoted.single.python storage.type.string.python"},"3":{name:"punctuation.definition.string.begin.python string.quoted.single.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.single.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#fstring-guts"},{include:"#fstring-illegal-single-brace"},{include:"#fstring-single-brace"},{include:"#fstring-single-core"}]},"fstring-raw-quoted-single-line":{name:"meta.fstring.python",begin:"(\\b(?:[rR][fF]|[fF][rR]))((['\"]))",end:"(\\2)|((?<!\\\\)\\n)",beginCaptures:{"1":{name:"string.interpolated.python string.quoted.raw.single.python storage.type.string.python"},"2":{name:"punctuation.definition.string.begin.python string.quoted.raw.single.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.raw.single.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#fstring-raw-guts"},{include:"#fstring-illegal-single-brace"},{include:"#fstring-single-brace"},{include:"#fstring-raw-single-core"}]},"fstring-single-core":{name:"string.interpolated.python string.quoted.single.python",match:"(?x)\n (.+?)\n (\n (?# .* and .*? in multi-line match need special handling of\n newlines otherwise SublimeText and Atom will match slightly\n differently.\n\n The guard for newlines has to be separate from the\n lookahead because of special $ matching rule.)\n ($\\n?)\n |\n (?=[\\\\\\}\\{]|(['\"])|((?<!\\\\)\\n))\n )\n (?# due to how multiline regexps are matched we need a special case\n for matching a newline character)\n | \\n\n"},"fstring-raw-single-core":{name:"string.interpolated.python string.quoted.raw.single.python",match:"(?x)\n (.+?)\n (\n (?# .* and .*? in multi-line match need special handling of\n newlines otherwise SublimeText and Atom will match slightly\n differently.\n\n The guard for newlines has to be separate from the\n lookahead because of special $ matching rule.)\n ($\\n?)\n |\n (?=[\\\\\\}\\{]|(['\"])|((?<!\\\\)\\n))\n )\n (?# due to how multiline regexps are matched we need a special case\n for matching a newline character)\n | \\n\n"},"fstring-single-brace":{comment:"value interpolation using { ... }",begin:"(\\{)",end:"(?x)\n (\\})|(?=\\n)\n",beginCaptures:{"1":{name:"constant.character.format.placeholder.other.python"}},endCaptures:{"1":{name:"constant.character.format.placeholder.other.python"}},patterns:[{include:"#fstring-terminator-single"},{include:"#f-expression"}]},"fstring-terminator-single":{patterns:[{name:"storage.type.format.python",match:"(=(![rsa])?)(?=})"},{name:"storage.type.format.python",match:"(=?![rsa])(?=})"},{match:"(?x)\n ( (?: =?) (?: ![rsa])? )\n ( : \\w? [<>=^]? [-+ ]? \\#?\n \\d* ,? (\\.\\d+)? [bcdeEfFgGnosxX%]? )(?=})\n",captures:{"1":{name:"storage.type.format.python"},"2":{name:"storage.type.format.python"}}},{include:"#fstring-terminator-single-tail"}]},"fstring-terminator-single-tail":{begin:"((?:=?)(?:![rsa])?)(:)(?=.*?{)",end:"(?=})|(?=\\n)",beginCaptures:{"1":{name:"storage.type.format.python"},"2":{name:"storage.type.format.python"}},patterns:[{include:"#fstring-illegal-single-brace"},{include:"#fstring-single-brace"},{name:"storage.type.format.python",match:"([bcdeEfFgGnosxX%])(?=})"},{name:"storage.type.format.python",match:"(\\.\\d+)"},{name:"storage.type.format.python",match:"(,)"},{name:"storage.type.format.python",match:"(\\d+)"},{name:"storage.type.format.python",match:"(\\#)"},{name:"storage.type.format.python",match:"([-+ ])"},{name:"storage.type.format.python",match:"([<>=^])"},{name:"storage.type.format.python",match:"(\\w)"}]},"fstring-fnorm-quoted-multi-line":{name:"meta.fstring.python",begin:"(\\b[fF])([bBuU])?('''|\"\"\")",end:"(\\3)",beginCaptures:{"1":{name:"string.interpolated.python string.quoted.multi.python storage.type.string.python"},"2":{name:"invalid.illegal.prefix.python"},"3":{name:"punctuation.definition.string.begin.python string.interpolated.python string.quoted.multi.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.multi.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#fstring-guts"},{include:"#fstring-illegal-multi-brace"},{include:"#fstring-multi-brace"},{include:"#fstring-multi-core"}]},"fstring-normf-quoted-multi-line":{name:"meta.fstring.python",begin:"(\\b[bBuU])([fF])('''|\"\"\")",end:"(\\3)",beginCaptures:{"1":{name:"invalid.illegal.prefix.python"},"2":{name:"string.interpolated.python string.quoted.multi.python storage.type.string.python"},"3":{name:"punctuation.definition.string.begin.python string.quoted.multi.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.multi.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#fstring-guts"},{include:"#fstring-illegal-multi-brace"},{include:"#fstring-multi-brace"},{include:"#fstring-multi-core"}]},"fstring-raw-quoted-multi-line":{name:"meta.fstring.python",begin:"(\\b(?:[rR][fF]|[fF][rR]))('''|\"\"\")",end:"(\\2)",beginCaptures:{"1":{name:"string.interpolated.python string.quoted.raw.multi.python storage.type.string.python"},"2":{name:"punctuation.definition.string.begin.python string.quoted.raw.multi.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.raw.multi.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#fstring-raw-guts"},{include:"#fstring-illegal-multi-brace"},{include:"#fstring-multi-brace"},{include:"#fstring-raw-multi-core"}]},"fstring-multi-core":{name:"string.interpolated.python string.quoted.multi.python",match:"(?x)\n (.+?)\n (\n (?# .* and .*? in multi-line match need special handling of\n newlines otherwise SublimeText and Atom will match slightly\n differently.\n\n The guard for newlines has to be separate from the\n lookahead because of special $ matching rule.)\n ($\\n?)\n |\n (?=[\\\\\\}\\{]|'''|\"\"\")\n )\n (?# due to how multiline regexps are matched we need a special case\n for matching a newline character)\n | \\n\n"},"fstring-raw-multi-core":{name:"string.interpolated.python string.quoted.raw.multi.python",match:"(?x)\n (.+?)\n (\n (?# .* and .*? in multi-line match need special handling of\n newlines otherwise SublimeText and Atom will match slightly\n differently.\n\n The guard for newlines has to be separate from the\n lookahead because of special $ matching rule.)\n ($\\n?)\n |\n (?=[\\\\\\}\\{]|'''|\"\"\")\n )\n (?# due to how multiline regexps are matched we need a special case\n for matching a newline character)\n | \\n\n"},"fstring-multi-brace":{comment:"value interpolation using { ... }",begin:"(\\{)",end:"(?x)\n (\\})\n",beginCaptures:{"1":{name:"constant.character.format.placeholder.other.python"}},endCaptures:{"1":{name:"constant.character.format.placeholder.other.python"}},patterns:[{include:"#fstring-terminator-multi"},{include:"#f-expression"}]},"fstring-terminator-multi":{patterns:[{name:"storage.type.format.python",match:"(=(![rsa])?)(?=})"},{name:"storage.type.format.python",match:"(=?![rsa])(?=})"},{match:"(?x)\n ( (?: =?) (?: ![rsa])? )\n ( : \\w? [<>=^]? [-+ ]? \\#?\n \\d* ,? (\\.\\d+)? [bcdeEfFgGnosxX%]? )(?=})\n",captures:{"1":{name:"storage.type.format.python"},"2":{name:"storage.type.format.python"}}},{include:"#fstring-terminator-multi-tail"}]},"fstring-terminator-multi-tail":{begin:"((?:=?)(?:![rsa])?)(:)(?=.*?{)",end:"(?=})",beginCaptures:{"1":{name:"storage.type.format.python"},"2":{name:"storage.type.format.python"}},patterns:[{include:"#fstring-illegal-multi-brace"},{include:"#fstring-multi-brace"},{name:"storage.type.format.python",match:"([bcdeEfFgGnosxX%])(?=})"},{name:"storage.type.format.python",match:"(\\.\\d+)"},{name:"storage.type.format.python",match:"(,)"},{name:"storage.type.format.python",match:"(\\d+)"},{name:"storage.type.format.python",match:"(\\#)"},{name:"storage.type.format.python",match:"([-+ ])"},{name:"storage.type.format.python",match:"([<>=^])"},{name:"storage.type.format.python",match:"(\\w)"}]}}}; + +export { python_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/r.tmLanguage-d2ebe5ba.mjs b/docs/shiki/dist/languages/r.tmLanguage-d2ebe5ba.mjs new file mode 100644 index 00000000..d1bd1708 --- /dev/null +++ b/docs/shiki/dist/languages/r.tmLanguage-d2ebe5ba.mjs @@ -0,0 +1,3 @@ +var r_tmLanguage = {information_for_contributors:["This file has been converted from https://github.com/Ikuyadeu/vscode-R/blob/master/syntax/r.json","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."],version:"https://github.com/Ikuyadeu/vscode-R/commit/ff60e426f66503f3c9533c7a62a8fd3f9f6c53df",name:"r",scopeName:"source.r",patterns:[{include:"#roxygen"},{include:"#comments"},{include:"#constants"},{include:"#keywords"},{include:"#storage-type"},{include:"#strings"},{include:"#brackets"},{include:"#function-declarations"},{include:"#lambda-functions"},{include:"#builtin-functions"},{include:"#function-calls"},{include:"#general-variables"}],repository:{comments:{patterns:[{captures:{"1":{name:"comment.line.pragma.r"},"2":{name:"entity.name.pragma.name.r"}},match:"^(#pragma[ \\t]+mark)[ \\t](.*)",name:"comment.line.pragma-mark.r"},{begin:"(^[ \\t]+)?(?=#)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.r"}},end:"(?!\\G)",patterns:[{begin:"#",beginCaptures:{"0":{name:"punctuation.definition.comment.r"}},end:"\\n",name:"comment.line.number-sign.r"}]}]},constants:{patterns:[{match:"\\b(pi|letters|LETTERS|month\\.abb|month\\.name)\\b",name:"support.constant.misc.r"},{match:"\\b(TRUE|FALSE|NULL|NA|NA_integer_|NA_real_|NA_complex_|NA_character_|Inf|NaN)\\b",name:"constant.language.r"},{match:"\\b0(x|X)[0-9a-fA-F]+i\\b",name:"constant.numeric.imaginary.hexadecimal.r"},{match:"\\b[0-9]+\\.?[0-9]*(?:(e|E)(\\+|-)?[0-9]+)?i\\b",name:"constant.numeric.imaginary.decimal.r"},{match:"\\.[0-9]+(?:(e|E)(\\+|-)?[0-9]+)?i\\b",name:"constant.numeric.imaginary.decimal.r"},{match:"\\b0(x|X)[0-9a-fA-F]+L\\b",name:"constant.numeric.integer.hexadecimal.r"},{match:"\\b(?:[0-9]+\\.?[0-9]*)(?:(e|E)(\\+|-)?[0-9]+)?L\\b",name:"constant.numeric.integer.decimal.r"},{match:"\\b0(x|X)[0-9a-fA-F]+\\b",name:"constant.numeric.float.hexadecimal.r"},{match:"\\b[0-9]+\\.?[0-9]*(?:(e|E)(\\+|-)?[0-9]+)?\\b",name:"constant.numeric.float.decimal.r"},{match:"\\.[0-9]+(?:(e|E)(\\+|-)?[0-9]+)?\\b",name:"constant.numeric.float.decimal.r"}]},"general-variables":{patterns:[{captures:{"1":{name:"variable.parameter.r"},"2":{name:"keyword.operator.assignment.r"}},match:"([[:alpha:].][[:alnum:]._]*)\\s*(=)(?=[^=])"},{captures:{"1":{name:"variable.parameter.r"},"2":{name:"keyword.operator.assignment.r"}},match:"(`[^`]+`)\\s*(=)(?=[^=])"},{match:"\\b([\\d_][[:alnum:]._]+)\\b",name:"invalid.illegal.variable.other.r"},{match:"\\b([[:alnum:]_]+)(?=::)",name:"entity.namespace.r"},{match:"\\b([[:alnum:]._]+)\\b",name:"variable.other.r"},{match:"(`[^`]+`)",name:"variable.other.r"}]},keywords:{patterns:[{match:"\\b(break|next|repeat|else|in)\\b",name:"keyword.control.r"},{match:"\\b(ifelse|if|for|return|switch|while|invisible)\\b(?=\\s*\\()",name:"keyword.control.r"},{match:"(\\-|\\+|\\*|\\/|%\\/%|%%|%\\*%|%o%|%x%|\\^)",name:"keyword.operator.arithmetic.r"},{match:"(:=|<-|<<-|->|->>)",name:"keyword.operator.assignment.r"},{match:"(==|<=|>=|!=|<>|<|>|%in%)",name:"keyword.operator.comparison.r"},{match:"(!|&{1,2}|[|]{1,2})",name:"keyword.operator.logical.r"},{match:"(\\|>)",name:"keyword.operator.pipe.r"},{match:"(%between%|%chin%|%like%|%\\+%|%\\+replace%|%:%|%do%|%dopar%|%>%|%<>%|%T>%|%\\$%)",name:"keyword.operator.other.r"},{match:"(\\.\\.\\.|\\$|:|\\~|@)",name:"keyword.other.r"}]},"storage-type":{patterns:[{match:"\\b(character|complex|double|expression|integer|list|logical|numeric|single|raw)\\b(?=\\s*\\()",name:"storage.type.r"}]},strings:{patterns:[{begin:"[rR]\"(-*)\\[",beginCaptures:{"0":{name:"punctuation.definition.string.raw.begin.r"}},end:"\\]\\1\"",endCaptures:{"0":{name:"punctuation.definition.string.raw.end.r"}},name:"string.quoted.double.raw.r"},{begin:"[rR]'(-*)\\[",beginCaptures:{"0":{name:"punctuation.definition.string.raw.begin.r"}},end:"\\]\\1'",endCaptures:{"0":{name:"punctuation.definition.string.raw.end.r"}},name:"string.quoted.single.raw.r"},{begin:"[rR]\"(-*)\\{",beginCaptures:{"0":{name:"punctuation.definition.string.raw.begin.r"}},end:"\\}\\1\"",endCaptures:{"0":{name:"punctuation.definition.string.raw.end.r"}},name:"string.quoted.double.raw.r"},{begin:"[rR]'(-*)\\{",beginCaptures:{"0":{name:"punctuation.definition.string.raw.begin.r"}},end:"\\}\\1'",endCaptures:{"0":{name:"punctuation.definition.string.raw.end.r"}},name:"string.quoted.single.raw.r"},{begin:"[rR]\"(-*)\\(",beginCaptures:{"0":{name:"punctuation.definition.string.raw.begin.r"}},end:"\\)\\1\"",endCaptures:{"0":{name:"punctuation.definition.string.raw.end.r"}},name:"string.quoted.double.raw.r"},{begin:"[rR]'(-*)\\(",beginCaptures:{"0":{name:"punctuation.definition.string.raw.begin.r"}},end:"\\)\\1'",endCaptures:{"0":{name:"punctuation.definition.string.raw.end.r"}},name:"string.quoted.single.raw.r"},{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.r"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.r"}},name:"string.quoted.double.r",patterns:[{match:"\\\\.",name:"constant.character.escape.r"}]},{begin:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.r"}},end:"'",endCaptures:{"0":{name:"punctuation.definition.string.end.r"}},name:"string.quoted.single.r",patterns:[{match:"\\\\.",name:"constant.character.escape.r"}]}]},brackets:{patterns:[{begin:"\\(",beginCaptures:{"0":{name:"punctuation.section.parens.begin.r"}},end:"\\)",endCaptures:{"0":{name:"punctuation.section.parens.end.r"}},patterns:[{include:"source.r"}]},{begin:"\\[(?!\\[)",beginCaptures:{"0":{name:"punctuation.section.brackets.single.begin.r"}},end:"\\]",endCaptures:{"0":{name:"punctuation.section.brackets.single.end.r"}},patterns:[{include:"source.r"}]},{begin:"\\[\\[",beginCaptures:{"0":{name:"punctuation.section.brackets.double.begin.r"}},end:"\\]\\]",endCaptures:{"0":{name:"punctuation.section.brackets.double.end.r"}},contentName:"meta.item-access.arguments.r",patterns:[{include:"source.r"}]},{begin:"\\{",beginCaptures:{"0":{name:"punctuation.section.braces.begin.r"}},end:"\\}",endCaptures:{"0":{name:"punctuation.section.braces.end.r"}},patterns:[{include:"source.r"}]}]},"function-declarations":{patterns:[{match:"((?:`[^`\\\\]*(?:\\\\.[^`\\\\]*)*`)|(?:[[:alpha:].][[:alnum:]._]*))\\s*(<?<-|=(?!=))\\s*(function|\\\\)(?!\\w)",captures:{"1":{name:"entity.name.function.r"},"2":{name:"keyword.operator.assignment.r"},"3":{name:"keyword.control.r"}},name:"meta.function.r",patterns:[{include:"#lambda-functions"}]}]},"lambda-functions":{patterns:[{begin:"\\b(function)\\s*(\\()",beginCaptures:{"1":{name:"keyword.control.r"},"2":{name:"punctuation.section.parens.begin.r"}},end:"\\)",endCaptures:{"0":{name:"punctuation.section.parens.end.r"}},name:"meta.function.r",contentName:"meta.function.parameters.r",patterns:[{include:"#comments"},{match:"(?:[a-zA-Z._][\\w.]*|`[^`]+`)",name:"variable.other.r"},{begin:"(?==)",end:"(?=[,)])",patterns:[{include:"source.r"}]},{match:",",name:"punctuation.separator.parameters.r"}]}]},"function-calls":{begin:"(?:\\b|(?=\\.))((?:[a-zA-Z._][\\w.]*|`[^`]+`))\\s*(\\()",beginCaptures:{"1":{name:"variable.function.r"},"2":{name:"punctuation.section.parens.begin.r"}},contentName:"meta.function-call.arguments.r",end:"(\\))",endCaptures:{"1":{name:"punctuation.section.parens.end.r"}},name:"meta.function-call.r",patterns:[{include:"#function-parameters"}]},"function-parameters":{patterns:[{name:"meta.function-call.r",contentName:"meta.function-call.parameters.r"},{match:"(?:[a-zA-Z._][\\w.]*|`[^`]+`)(?=\\s[^=])",name:"variable.other.r"},{begin:"(?==)",end:"(?=[,)])",patterns:[{include:"source.r"}]},{match:",",name:"punctuation.separator.parameters.r"},{include:"source.r"}]},roxygen:{patterns:[{begin:"^\\s*(#')\\s*",beginCaptures:{"1":{name:"punctuation.definition.comment.r"}},end:"$\\n?",name:"comment.line.roxygen.r",patterns:[{captures:{"1":{name:"keyword.other.r"},"2":{name:"variable.parameter.r"}},match:"(@param)\\s*((?:[a-zA-Z._][\\w.]*|`[^`]+`))"},{match:"@[a-zA-Z0-9]+",name:"keyword.other.r"}]}]},"builtin-functions":{patterns:[{match:"\\b(abbreviate|abs|acos|acosh|addNA|addTaskCallback|agrep|agrepl|alist|all|all\\.equal|all\\.equal.character|all\\.equal.default|all\\.equal.environment|all\\.equal.envRefClass|all\\.equal.factor|all\\.equal.formula|all\\.equal.language|all\\.equal.list|all\\.equal.numeric|all\\.equal.POSIXt|all\\.equal.raw|all\\.names|all\\.vars|any|anyDuplicated|anyDuplicated\\.array|anyDuplicated\\.data.frame|anyDuplicated\\.default|anyDuplicated\\.matrix|anyNA|anyNA\\.numeric_version|anyNA\\.POSIXlt|aperm|aperm\\.default|aperm\\.table|append|apply|Arg|args|array|arrayInd|as\\.array|as\\.array.default|as\\.call|as\\.character|as\\.character.condition|as\\.character.Date|as\\.character.default|as\\.character.error|as\\.character.factor|as\\.character.hexmode|as\\.character.numeric_version|as\\.character.octmode|as\\.character.POSIXt|as\\.character.srcref|as\\.complex|as\\.data.frame|as\\.data.frame.array|as\\.data.frame.AsIs|as\\.data.frame.character|as\\.data.frame.complex|as\\.data.frame.data.frame|as\\.data.frame.Date|as\\.data.frame.default|as\\.data.frame.difftime|as\\.data.frame.factor|as\\.data.frame.integer|as\\.data.frame.list|as\\.data.frame.logical|as\\.data.frame.matrix|as\\.data.frame.model.matrix|as\\.data.frame.noquote|as\\.data.frame.numeric|as\\.data.frame.numeric_version|as\\.data.frame.ordered|as\\.data.frame.POSIXct|as\\.data.frame.POSIXlt|as\\.data.frame.raw|as\\.data.frame.table|as\\.data.frame.ts|as\\.data.frame.vector|as\\.Date|as\\.Date.character|as\\.Date.date|as\\.Date.dates|as\\.Date.default|as\\.Date.factor|as\\.Date.numeric|as\\.Date.POSIXct|as\\.Date.POSIXlt|as\\.difftime|as\\.double|as\\.double.difftime|as\\.double.POSIXlt|as\\.environment|as\\.expression|as\\.expression.default|as\\.factor|as\\.function|as\\.function.default|as\\.hexmode|as\\.integer|as\\.list|as\\.list.data.frame|as\\.list.Date|as\\.list.default|as\\.list.environment|as\\.list.factor|as\\.list.function|as\\.list.numeric_version|as\\.list.POSIXct|as\\.logical|as\\.logical.factor|as\\.matrix|as\\.matrix.data.frame|as\\.matrix.default|as\\.matrix.noquote|as\\.matrix.POSIXlt|as\\.name|as\\.null|as\\.null.default|as\\.numeric|as\\.numeric_version|as\\.octmode|as\\.ordered|as\\.package_version|as\\.pairlist|as\\.POSIXct|as\\.POSIXct.date|as\\.POSIXct.Date|as\\.POSIXct.dates|as\\.POSIXct.default|as\\.POSIXct.numeric|as\\.POSIXct.POSIXlt|as\\.POSIXlt|as\\.POSIXlt.character|as\\.POSIXlt.date|as\\.POSIXlt.Date|as\\.POSIXlt.dates|as\\.POSIXlt.default|as\\.POSIXlt.factor|as\\.POSIXlt.numeric|as\\.POSIXlt.POSIXct|as\\.qr|as\\.raw|as\\.single|as\\.single.default|as\\.symbol|as\\.table|as\\.table.default|as\\.vector|as\\.vector.factor|asin|asinh|asNamespace|asS3|asS4|assign|atan|atan2|atanh|attach|attachNamespace|attr|attr\\.all.equal|attributes|autoload|autoloader|backsolve|baseenv|basename|besselI|besselJ|besselK|besselY|beta|bindingIsActive|bindingIsLocked|bindtextdomain|bitwAnd|bitwNot|bitwOr|bitwShiftL|bitwShiftR|bitwXor|body|bquote|break|browser|browserCondition|browserSetDebug|browserText|builtins|by|by\\.data.frame|by\\.default|bzfile|c|c\\.Date|c\\.difftime|c\\.noquote|c\\.numeric_version|c\\.POSIXct|c\\.POSIXlt|c\\.warnings|call|callCC|capabilities|casefold|cat|cbind|cbind\\.data.frame|ceiling|char\\.expand|character|charmatch|charToRaw|chartr|check_tzones|chkDots|chol|chol\\.default|chol2inv|choose|class|clearPushBack|close|close\\.connection|close\\.srcfile|close\\.srcfilealias|closeAllConnections|col|colMeans|colnames|colSums|commandArgs|comment|complex|computeRestarts|conditionCall|conditionCall\\.condition|conditionMessage|conditionMessage\\.condition|conflicts|Conj|contributors|cos|cosh|cospi|crossprod|Cstack_info|cummax|cummin|cumprod|cumsum|curlGetHeaders|cut|cut\\.Date|cut\\.default|cut\\.POSIXt|data\\.class|data\\.frame|data\\.matrix|date|debug|debuggingState|debugonce|default\\.stringsAsFactors|delayedAssign|deparse|det|detach|determinant|determinant\\.matrix|dget|diag|diff|diff\\.Date|diff\\.default|diff\\.difftime|diff\\.POSIXt|difftime|digamma|dim|dim\\.data.frame|dimnames|dimnames\\.data.frame|dir|dir\\.create|dir\\.exists|dirname|do\\.call|dontCheck|double|dput|dQuote|drop|droplevels|droplevels\\.data.frame|droplevels\\.factor|dump|duplicated|duplicated\\.array|duplicated\\.data.frame|duplicated\\.default|duplicated\\.matrix|duplicated\\.numeric_version|duplicated\\.POSIXlt|duplicated\\.warnings|dyn\\.load|dyn\\.unload|dynGet|eapply|eigen|emptyenv|enc2native|enc2utf8|encodeString|Encoding|endsWith|enquote|env\\.profile|environment|environmentIsLocked|environmentName|eval|eval\\.parent|evalq|exists|exp|expand\\.grid|expm1|expression|extSoftVersion|factor|factorial|fifo|file|file\\.access|file\\.append|file\\.choose|file\\.copy|file\\.create|file\\.exists|file\\.info|file\\.link|file\\.mode|file\\.mtime|file\\.path|file\\.remove|file\\.rename|file\\.show|file\\.size|file\\.symlink|Filter|Find|find\\.package|findInterval|findPackageEnv|findRestart|floor|flush|flush\\.connection|for|force|forceAndCall|formals|format|format\\.AsIs|format\\.data.frame|format\\.Date|format\\.default|format\\.difftime|format\\.factor|format\\.hexmode|format\\.info|format\\.libraryIQR|format\\.numeric_version|format\\.octmode|format\\.packageInfo|format\\.POSIXct|format\\.POSIXlt|format\\.pval|format\\.summaryDefault|formatC|formatDL|forwardsolve|function|gamma|gc|gc\\.time|gcinfo|gctorture|gctorture2|get|get0|getAllConnections|getCallingDLL|getCallingDLLe|getConnection|getDLLRegisteredRoutines|getDLLRegisteredRoutines\\.character|getDLLRegisteredRoutines\\.DLLInfo|getElement|geterrmessage|getExportedValue|getHook|getLoadedDLLs|getNamespace|getNamespaceExports|getNamespaceImports|getNamespaceInfo|getNamespaceName|getNamespaceUsers|getNamespaceVersion|getNativeSymbolInfo|getOption|getRversion|getSrcLines|getTaskCallbackNames|gettext|gettextf|getwd|gl|globalenv|gregexpr|grep|grepl|grepRaw|grouping|gsub|gzcon|gzfile|I|iconv|iconvlist|icuGetCollate|icuSetCollate|identical|identity|if|ifelse|Im|importIntoEnv|inherits|integer|interaction|interactive|intersect|intToBits|intToUtf8|inverse\\.rle|invisible|invokeRestart|invokeRestartInteractively|is\\.array|is\\.atomic|is\\.call|is\\.character|is\\.complex|is\\.data.frame|is\\.double|is\\.element|is\\.environment|is\\.expression|is\\.factor|is\\.finite|is\\.function|is\\.infinite|is\\.integer|is\\.language|is\\.list|is\\.loaded|is\\.logical|is\\.matrix|is\\.na|is\\.na.data.frame|is\\.na.numeric_version|is\\.na.POSIXlt|is\\.name|is\\.nan|is\\.null|is\\.numeric|is\\.numeric_version|is\\.numeric.Date|is\\.numeric.difftime|is\\.numeric.POSIXt|is\\.object|is\\.ordered|is\\.package_version|is\\.pairlist|is\\.primitive|is\\.qr|is\\.R|is\\.raw|is\\.recursive|is\\.single|is\\.symbol|is\\.table|is\\.unsorted|is\\.vector|isatty|isBaseNamespace|isdebugged|isIncomplete|isNamespace|isNamespaceLoaded|ISOdate|ISOdatetime|isOpen|isRestart|isS4|isSeekable|isSymmetric|isSymmetric\\.matrix|isTRUE|jitter|julian|julian\\.Date|julian\\.POSIXt|kappa|kappa\\.default|kappa\\.lm|kappa\\.qr|kronecker|l10n_info|La_library|La_version|La\\.svd|labels|labels\\.default|lapply|lazyLoad|lazyLoadDBexec|lazyLoadDBfetch|lbeta|lchoose|length|length\\.POSIXlt|lengths|levels|levels\\.default|lfactorial|lgamma|libcurlVersion|library|library\\.dynam|library\\.dynam.unload|licence|license|list|list\\.dirs|list\\.files|list2env|load|loadedNamespaces|loadingNamespaceInfo|loadNamespace|local|lockBinding|lockEnvironment|log|log10|log1p|log2|logb|logical|lower\\.tri|ls|make\\.names|make\\.unique|makeActiveBinding|Map|mapply|margin\\.table|mat\\.or.vec|match|match\\.arg|match\\.call|match\\.fun|Math\\.data.frame|Math\\.Date|Math\\.difftime|Math\\.factor|Math\\.POSIXt|matrix|max|max\\.col|mean|mean\\.Date|mean\\.default|mean\\.difftime|mean\\.POSIXct|mean\\.POSIXlt|mem\\.limits|memCompress|memDecompress|memory\\.profile|merge|merge\\.data.frame|merge\\.default|message|mget|min|missing|Mod|mode|months|months\\.Date|months\\.POSIXt|names|names\\.POSIXlt|namespaceExport|namespaceImport|namespaceImportClasses|namespaceImportFrom|namespaceImportMethods|nargs|nchar|ncol|NCOL|Negate|new\\.env|next|NextMethod|ngettext|nlevels|noquote|norm|normalizePath|nrow|NROW|numeric|numeric_version|nzchar|objects|oldClass|OlsonNames|on\\.exit|open|open\\.connection|open\\.srcfile|open\\.srcfilealias|open\\.srcfilecopy|Ops\\.data.frame|Ops\\.Date|Ops\\.difftime|Ops\\.factor|Ops\\.numeric_version|Ops\\.ordered|Ops\\.POSIXt|options|order|ordered|outer|package_version|packageEvent|packageHasNamespace|packageStartupMessage|packBits|pairlist|parent\\.env|parent\\.frame|parse|parseNamespaceFile|paste|paste0|path\\.expand|path\\.package|pcre_config|pipe|pmatch|pmax|pmax\\.int|pmin|pmin\\.int|polyroot|pos\\.to.env|Position|pretty|pretty\\.default|prettyNum|print|print\\.AsIs|print\\.by|print\\.condition|print\\.connection|print\\.data.frame|print\\.Date|print\\.default|print\\.difftime|print\\.Dlist|print\\.DLLInfo|print\\.DLLInfoList|print\\.DLLRegisteredRoutines|print\\.eigen|print\\.factor|print\\.function|print\\.hexmode|print\\.libraryIQR|print\\.listof|print\\.NativeRoutineList|print\\.noquote|print\\.numeric_version|print\\.octmode|print\\.packageInfo|print\\.POSIXct|print\\.POSIXlt|print\\.proc_time|print\\.restart|print\\.rle|print\\.simple.list|print\\.srcfile|print\\.srcref|print\\.summary.table|print\\.summaryDefault|print\\.table|print\\.warnings|prmatrix|proc\\.time|prod|prop\\.table|provideDimnames|psigamma|pushBack|pushBackLength|q|qr|qr\\.coef|qr\\.default|qr\\.fitted|qr\\.Q|qr\\.qty|qr\\.qy|qr\\.R|qr\\.resid|qr\\.solve|qr\\.X|quarters|quarters\\.Date|quarters\\.POSIXt|quit|quote|R_system_version|R\\.home|R\\.Version|range|range\\.default|rank|rapply|raw|rawConnection|rawConnectionValue|rawShift|rawToBits|rawToChar|rbind|rbind\\.data.frame|rcond|Re|read\\.dcf|readBin|readChar|readline|readLines|readRDS|readRenviron|Recall|Reduce|reg\\.finalizer|regexec|regexpr|registerS3method|registerS3methods|regmatches|remove|removeTaskCallback|rep|rep_len|rep\\.Date|rep\\.factor|rep\\.int|rep\\.numeric_version|rep\\.POSIXct|rep\\.POSIXlt|repeat|replace|replicate|require|requireNamespace|restartDescription|restartFormals|retracemem|return|returnValue|rev|rev\\.default|rle|rm|RNGkind|RNGversion|round|round\\.Date|round\\.POSIXt|row|row\\.names|row\\.names.data.frame|row\\.names.default|rowMeans|rownames|rowsum|rowsum\\.data.frame|rowsum\\.default|rowSums|sample|sample\\.int|sapply|save|save\\.image|saveRDS|scale|scale\\.default|scan|search|searchpaths|seek|seek\\.connection|seq|seq_along|seq_len|seq\\.Date|seq\\.default|seq\\.int|seq\\.POSIXt|sequence|serialize|set\\.seed|setdiff|setequal|setHook|setNamespaceInfo|setSessionTimeLimit|setTimeLimit|setwd|showConnections|shQuote|sign|signalCondition|signif|simpleCondition|simpleError|simpleMessage|simpleWarning|simplify2array|sin|single|sinh|sink|sink\\.number|sinpi|slice\\.index|socketConnection|socketSelect|solve|solve\\.default|solve\\.qr|sort|sort\\.default|sort\\.int|sort\\.list|sort\\.POSIXlt|source|split|split\\.data.frame|split\\.Date|split\\.default|split\\.POSIXct|sprintf|sqrt|sQuote|srcfile|srcfilealias|srcfilecopy|srcref|standardGeneric|startsWith|stderr|stdin|stdout|stop|stopifnot|storage\\.mode|strftime|strptime|strrep|strsplit|strtoi|strtrim|structure|strwrap|sub|subset|subset\\.data.frame|subset\\.default|subset\\.matrix|substitute|substr|substring|sum|summary|summary\\.connection|summary\\.data.frame|Summary\\.data.frame|summary\\.Date|Summary\\.Date|summary\\.default|Summary\\.difftime|summary\\.factor|Summary\\.factor|summary\\.matrix|Summary\\.numeric_version|Summary\\.ordered|summary\\.POSIXct|Summary\\.POSIXct|summary\\.POSIXlt|Summary\\.POSIXlt|summary\\.proc_time|summary\\.srcfile|summary\\.srcref|summary\\.table|suppressMessages|suppressPackageStartupMessages|suppressWarnings|svd|sweep|switch|sys\\.call|sys\\.calls|Sys\\.chmod|Sys\\.Date|sys\\.frame|sys\\.frames|sys\\.function|Sys\\.getenv|Sys\\.getlocale|Sys\\.getpid|Sys\\.glob|Sys\\.info|sys\\.load.image|Sys\\.localeconv|sys\\.nframe|sys\\.on.exit|sys\\.parent|sys\\.parents|Sys\\.readlink|sys\\.save.image|Sys\\.setenv|Sys\\.setFileTime|Sys\\.setlocale|Sys\\.sleep|sys\\.source|sys\\.status|Sys\\.time|Sys\\.timezone|Sys\\.umask|Sys\\.unsetenv|Sys\\.which|system|system\\.file|system\\.time|system2|t|t\\.data.frame|t\\.default|table|tabulate|tan|tanh|tanpi|tapply|taskCallbackManager|tcrossprod|tempdir|tempfile|testPlatformEquivalence|textConnection|textConnectionValue|tolower|topenv|toString|toString\\.default|toupper|trace|traceback|tracemem|tracingState|transform|transform\\.data.frame|transform\\.default|trigamma|trimws|trunc|trunc\\.Date|trunc\\.POSIXt|truncate|truncate\\.connection|try|tryCatch|typeof|unclass|undebug|union|unique|unique\\.array|unique\\.data.frame|unique\\.default|unique\\.matrix|unique\\.numeric_version|unique\\.POSIXlt|unique\\.warnings|units|units\\.difftime|unix\\.time|unlink|unlist|unloadNamespace|unlockBinding|unname|unserialize|unsplit|untrace|untracemem|unz|upper\\.tri|url|UseMethod|utf8ToInt|validEnc|validUTF8|vapply|vector|Vectorize|warning|warnings|weekdays|weekdays\\.Date|weekdays\\.POSIXt|which|which\\.max|which\\.min|while|with|with\\.default|withAutoprint|withCallingHandlers|within|within\\.data.frame|within\\.list|withRestarts|withVisible|write|write\\.dcf|writeBin|writeChar|writeLines|xor|xor\\.hexmode|xor\\.octmode|xpdrows\\.data.frame|xtfrm|xtfrm\\.AsIs|xtfrm\\.Date|xtfrm\\.default|xtfrm\\.difftime|xtfrm\\.factor|xtfrm\\.numeric_version|xtfrm\\.POSIXct|xtfrm\\.POSIXlt|xtfrm\\.Surv|xzfile|zapsmall)\\s*(\\()",captures:{"1":{name:"support.function.r"}}},{match:"\\b(abline|arrows|assocplot|axis|Axis|axis\\.Date|Axis\\.Date|Axis\\.default|axis\\.POSIXct|Axis\\.POSIXt|Axis\\.table|axTicks|barplot|barplot\\.default|box|boxplot|boxplot\\.default|boxplot\\.formula|boxplot\\.matrix|bxp|cdplot|cdplot\\.default|cdplot\\.formula|clip|close\\.screen|co\\.intervals|contour|contour\\.default|coplot|curve|dotchart|erase\\.screen|filled\\.contour|fourfoldplot|frame|grconvertX|grconvertY|grid|hist|hist\\.Date|hist\\.default|hist\\.POSIXt|identify|identify\\.default|image|image\\.default|layout|layout\\.show|lcm|legend|lines|lines\\.default|lines\\.formula|lines\\.histogram|lines\\.table|locator|matlines|matplot|matpoints|mosaicplot|mosaicplot\\.default|mosaicplot\\.formula|mtext|pairs|pairs\\.default|pairs\\.formula|panel\\.smooth|par|persp|persp\\.default|pie|piechart|plot|plot\\.data.frame|plot\\.default|plot\\.design|plot\\.factor|plot\\.formula|plot\\.function|plot\\.histogram|plot\\.new|plot\\.raster|plot\\.table|plot\\.window|plot\\.xy|plotHclust|points|points\\.default|points\\.formula|points\\.table|polygon|polypath|rasterImage|rect|rug|screen|segments|smoothScatter|spineplot|spineplot\\.default|spineplot\\.formula|split\\.screen|stars|stem|strheight|stripchart|stripchart\\.default|stripchart\\.formula|strwidth|sunflowerplot|sunflowerplot\\.default|sunflowerplot\\.formula|symbols|text|text\\.default|text\\.formula|title|xinch|xspline|xyinch|yinch)\\s*(\\()",captures:{"1":{name:"support.function.r"}}},{match:"\\b(adjustcolor|anyNA\\.raster|as\\.graphicsAnnot|as\\.matrix.raster|as\\.raster|as\\.raster.array|as\\.raster.character|as\\.raster.logical|as\\.raster.matrix|as\\.raster.numeric|as\\.raster.raster|as\\.raster.raw|axisTicks|bitmap|bmp|boxplot\\.stats|c2to3|cairo_pdf|cairo_ps|cairoVersion|check_for_XQuartz|check_gs_type|check\\.options|checkFont|checkFont\\.CIDFont|checkFont\\.default|checkFont\\.Type1Font|checkFontInUse|checkIntFormat|checkQuartzFont|checkX11Font|chromaticAdaptation|chull|CIDFont|cm|cm\\.colors|col2rgb|colorConverter|colorRamp|colorRampPalette|colors|colours|contourLines|convertColor|densCols|dev\\.capabilities|dev\\.capture|dev\\.control|dev\\.copy|dev\\.copy2eps|dev\\.copy2pdf|dev\\.cur|dev\\.displaylist|dev\\.flush|dev\\.hold|dev\\.interactive|dev\\.list|dev\\.new|dev\\.next|dev\\.off|dev\\.prev|dev\\.print|dev\\.set|dev\\.size|dev2bitmap|devAskNewPage|deviceIsInteractive|embedFonts|extendrange|getGraphicsEvent|getGraphicsEventEnv|graphics\\.off|gray|gray\\.colors|grey|grey\\.colors|grSoftVersion|guessEncoding|hcl|heat\\.colors|hsv|initPSandPDFfonts|is\\.na.raster|is\\.raster|isPDF|jpeg|make\\.rgb|matchEncoding|matchEncoding\\.CIDFont|matchEncoding\\.Type1Font|matchFont|n2mfrow|nclass\\.FD|nclass\\.scott|nclass\\.Sturges|Ops\\.raster|palette|pdf|pdf\\.options|pdfFonts|pictex|png|postscript|postscriptFonts|prettyDate|print\\.colorConverter|print\\.raster|print\\.recordedplot|print\\.RGBcolorConverter|printFont|printFont\\.CIDFont|printFont\\.Type1Font|printFonts|ps\\.options|quartz|quartz\\.options|quartz\\.save|quartzFont|quartzFonts|rainbow|recordGraphics|recordPalette|recordPlot|replayPlot|restoreRecordedPlot|rgb|rgb2hsv|savePlot|seqDtime|setEPS|setFonts|setGraphicsEventEnv|setGraphicsEventHandlers|setPS|setQuartzFonts|setX11Fonts|svg|terrain\\.colors|tiff|topo\\.colors|trans3d|trunc_POSIXt|Type1Font|x11|X11|X11\\.options|X11Font|X11FontError|X11Fonts|xfig|xy\\.coords|xyTable|xyz\\.coords)\\s*(\\()",captures:{"1":{name:"support.function.r"}}},{match:"\\b(addNextMethod|allGenerics|allNames|Arith|as|asMethodDefinition|assignClassDef|assignMethodsMetaData|balanceMethodsList|bind_activation|cacheGenericsMetaData|cacheMetaData|cacheMethod|cacheOnAssign|callGeneric|callNextMethod|canCoerce|cbind|cbind2|checkAtAssignment|checkSlotAssignment|classesToAM|classGeneratorFunction|classLabel|classMetaName|className|coerce|Compare|completeClassDefinition|completeExtends|completeSubclasses|Complex|conformMethod|defaultDumpName|defaultPrototype|dispatchIsInternal|doPrimitiveMethod|dumpMethod|dumpMethods|el|elNamed|empty\\.dump|emptyMethodsList|envRefInferField|envRefSetField|evalOnLoad|evalqOnLoad|evalSource|existsFunction|existsMethod|extends|externalRefMethod|finalDefaultMethod|findClass|findFunction|findMethod|findMethods|findMethodSignatures|findUnique|fixPre1\\.8|formalArgs|fromNextMethod|functionBody|generic\\.skeleton|genericForBasic|getAccess|getAllMethods|getAllSuperClasses|getClass|getClassDef|getClasses|getClassName|getClassPackage|getDataPart|getExtends|getFunction|getGeneric|getGenericFromCall|getGenerics|getGroup|getGroupMembers|getLoadActions|getMethod|getMethods|getMethodsAndAccessors|getMethodsForDispatch|getMethodsMetaData|getPackageName|getProperties|getPrototype|getRefClass|getRefSuperClasses|getSlots|getSubclasses|getValidity|getVirtual|hasArg|hasLoadAction|hasMethod|hasMethods|implicitGeneric|inBasicFuns|inferProperties|inheritedSlotNames|inheritedSubMethodLists|initFieldArgs|initialize|initMethodDispatch|initRefFields|insertClassMethods|insertMethod|insertMethodInEmptyList|insertSource|installClassMethod|is|isBaseFun|isClass|isClassDef|isClassUnion|isGeneric|isGrammarSymbol|isGroup|isMixin|isRematched|isS3Generic|isSealedClass|isSealedMethod|isVirtualClass|isXS3Class|kronecker|languageEl|linearizeMlist|listFromMethods|listFromMlist|loadMethod|Logic|makeClassMethod|makeClassRepresentation|makeEnvRefMethods|makeExtends|makeGeneric|makeMethodsList|makePrototypeFromClassDef|makeStandardGeneric|matchDefaults|matchSignature|Math|Math2|mergeMethods|metaNameUndo|method\\.skeleton|MethodAddCoerce|methodSignatureMatrix|MethodsList|MethodsListSelect|methodsPackageMetaName|missingArg|mlistMetaName|multipleClasses|new|newBasic|newClassRepresentation|newEmptyObject|Ops|outerLabels|packageSlot|possibleExtends|print\\.MethodsList|printClassRepresentation|printPropertiesList|prohibitGeneric|promptClass|promptMethods|prototype|Quote|rbind|rbind2|reconcilePropertiesAndPrototype|refClassFields|refClassInformation|refClassMethods|refClassPrompt|refObjectClass|registerImplicitGenerics|rematchDefinition|removeClass|removeGeneric|removeMethod|removeMethods|removeMethodsObject|representation|requireMethods|resetClass|resetGeneric|S3Class|S3forS4Methods|S3Part|sealClass|seemsS4Object|selectMethod|selectSuperClasses|setAs|setCacheOnAssign|setClass|setClassUnion|setDataPart|setGeneric|setGenericImplicit|setGroupGeneric|setIs|setLoadAction|setLoadActions|setMethod|setNames|setOldClass|setPackageName|setPrimitiveMethods|setRefClass|setReplaceMethod|setValidity|show|showClass|showClassMethod|showDefault|showExtends|showExtraSlots|showMethods|showMlist|showRefClassDef|signature|SignatureMethod|sigToEnv|slot|slotNames|slotsFromS3|substituteDirect|substituteFunctionArgs|Summary|superClassDepth|superClassMethodName|tableNames|testInheritedMethods|testVirtual|traceOff|traceOn|tryNew|unRematchDefinition|useMTable|validObject|validSlotNames)\\s*(\\()",captures:{"1":{name:"support.function.r"}}},{match:"\\b(acf|acf2AR|add\\.name|add1|add1\\.default|add1\\.glm|add1\\.lm|add1\\.mlm|addmargins|aggregate|aggregate\\.data.frame|aggregate\\.default|aggregate\\.formula|aggregate\\.ts|AIC|AIC\\.default|AIC\\.logLik|alias|alias\\.formula|alias\\.lm|anova|anova\\.glm|anova\\.glmlist|anova\\.lm|anova\\.lmlist|anova\\.loess|anova\\.mlm|anova\\.mlmlist|anova\\.nls|anovalist\\.nls|ansari\\.test|ansari\\.test.default|ansari\\.test.formula|aov|approx|approxfun|ar|ar\\.burg|ar\\.burg.default|ar\\.burg.mts|ar\\.mle|ar\\.ols|ar\\.yw|ar\\.yw.default|ar\\.yw.mts|arima|arima\\.sim|arima0|arima0\\.diag|ARMAacf|ARMAtoMA|as\\.data.frame.aovproj|as\\.data.frame.ftable|as\\.data.frame.logLik|as\\.dendrogram|as\\.dendrogram.dendrogram|as\\.dendrogram.hclust|as\\.dist|as\\.dist.default|as\\.formula|as\\.hclust|as\\.hclust.default|as\\.hclust.dendrogram|as\\.hclust.twins|as\\.matrix.dist|as\\.matrix.ftable|as\\.stepfun|as\\.stepfun.default|as\\.stepfun.isoreg|as\\.table.ftable|as\\.ts|as\\.ts.default|asOneSidedFormula|ave|bandwidth\\.kernel|bartlett\\.test|bartlett\\.test.default|bartlett\\.test.formula|BIC|BIC\\.default|BIC\\.logLik|binom\\.test|binomial|biplot|biplot\\.default|biplot\\.prcomp|biplot\\.princomp|Box\\.test|bw_pair_cnts|bw\\.bcv|bw\\.nrd|bw\\.nrd0|bw\\.SJ|bw\\.ucv|C|cancor|case\\.names|case\\.names.default|case\\.names.lm|cbind\\.ts|ccf|check_exact|chisq\\.test|cmdscale|coef|coef\\.aov|coef\\.Arima|coef\\.default|coef\\.listof|coef\\.maov|coef\\.nls|coefficients|complete\\.cases|confint|confint\\.default|confint\\.glm|confint\\.lm|confint\\.nls|constrOptim|contr\\.helmert|contr\\.poly|contr\\.SAS|contr\\.sum|contr\\.treatment|contrasts|convolve|cooks\\.distance|cooks\\.distance.glm|cooks\\.distance.lm|cophenetic|cophenetic\\.default|cophenetic\\.dendrogram|cor|cor\\.test|cor\\.test.default|cor\\.test.formula|cov|cov\\.wt|cov2cor|covratio|cpgram|cut\\.dendrogram|cutree|cycle|cycle\\.default|cycle\\.ts|D|dbeta|dbinom|dcauchy|dchisq|decompose|delete\\.response|deltat|deltat\\.default|dendrapply|density|density\\.default|deriv|deriv\\.default|deriv\\.formula|deriv3|deriv3\\.default|deriv3\\.formula|deviance|deviance\\.default|deviance\\.glm|deviance\\.lm|deviance\\.mlm|deviance\\.nls|dexp|df|df\\.kernel|df\\.residual|df\\.residual.default|df\\.residual.nls|dfbeta|dfbeta\\.lm|dfbetas|dfbetas\\.lm|dffits|dgamma|dgeom|dhyper|diff\\.ts|diffinv|diffinv\\.default|diffinv\\.ts|diffinv\\.vector|dist|dlnorm|dlogis|dmultinom|dnbinom|dnorm|dpois|drop\\.name|drop\\.terms|drop1|drop1\\.default|drop1\\.glm|drop1\\.lm|drop1\\.mlm|dsignrank|dt|dummy\\.coef|dummy\\.coef.aovlist|dummy\\.coef.lm|dunif|dweibull|dwilcox|ecdf|eff\\.aovlist|effects|effects\\.glm|effects\\.lm|embed|end|end\\.default|estVar|estVar\\.mlm|estVar\\.SSD|expand\\.model.frame|extractAIC|extractAIC\\.aov|extractAIC\\.coxph|extractAIC\\.glm|extractAIC\\.lm|extractAIC\\.negbin|extractAIC\\.survreg|factanal|factanal\\.fit.mle|factor\\.name|family|family\\.glm|family\\.lm|fft|filter|fisher\\.test|fitted|fitted\\.default|fitted\\.isoreg|fitted\\.kmeans|fitted\\.nls|fitted\\.smooth.spline|fitted\\.values|fivenum|fligner\\.test|fligner\\.test.default|fligner\\.test.formula|format_perc|format\\.dist|format\\.ftable|format\\.perc|formula|formula\\.character|formula\\.data.frame|formula\\.default|formula\\.formula|formula\\.glm|formula\\.lm|formula\\.nls|formula\\.terms|frequency|frequency\\.default|friedman\\.test|friedman\\.test.default|friedman\\.test.formula|ftable|ftable\\.default|ftable\\.formula|Gamma|gaussian|get_all_vars|getCall|getCall\\.default|getInitial|getInitial\\.default|getInitial\\.formula|getInitial\\.selfStart|glm|glm\\.control|glm\\.fit|hasTsp|hat|hatvalues|hatvalues\\.lm|hatvalues\\.smooth.spline|hclust|heatmap|HL|HoltWinters|hyman_filter|identify\\.hclust|influence|influence\\.glm|influence\\.lm|influence\\.measures|integrate|interaction\\.plot|inverse\\.gaussian|IQR|is\\.empty.model|is\\.leaf|is\\.mts|is\\.stepfun|is\\.ts|is\\.tskernel|isoreg|KalmanForecast|KalmanLike|KalmanRun|KalmanSmooth|kernapply|kernapply\\.default|kernapply\\.ts|kernapply\\.tskernel|kernapply\\.vector|kernel|kmeans|knots|knots\\.stepfun|kruskal\\.test|kruskal\\.test.default|kruskal\\.test.formula|ks\\.test|ksmooth|labels\\.dendrogram|labels\\.dist|labels\\.lm|labels\\.terms|lag|lag\\.default|lag\\.plot|line|lines\\.isoreg|lines\\.stepfun|lines\\.ts|lm|lm\\.fit|lm\\.influence|lm\\.wfit|loadings|loess|loess\\.control|loess\\.smooth|logLik|logLik\\.Arima|logLik\\.glm|logLik\\.lm|logLik\\.logLik|logLik\\.nls|loglin|lowess|ls\\.diag|ls\\.print|lsfit|mad|mahalanobis|make\\.link|make\\.tables.aovproj|make\\.tables.aovprojlist|makeARIMA|makepredictcall|makepredictcall\\.default|makepredictcall\\.poly|manova|mantelhaen\\.test|mauchly\\.test|mauchly\\.test.mlm|mauchly\\.test.SSD|mcnemar\\.test|median|median\\.default|medpolish|merge\\.dendrogram|midcache\\.dendrogram|model\\.extract|model\\.frame|model\\.frame.aovlist|model\\.frame.default|model\\.frame.glm|model\\.frame.lm|model\\.matrix|model\\.matrix.default|model\\.matrix.lm|model\\.offset|model\\.response|model\\.tables|model\\.tables.aov|model\\.tables.aovlist|model\\.weights|monthplot|monthplot\\.default|monthplot\\.stl|monthplot\\.StructTS|monthplot\\.ts|mood\\.test|mood\\.test.default|mood\\.test.formula|mvfft|n\\.knots|na\\.action|na\\.action.default|na\\.contiguous|na\\.contiguous.default|na\\.exclude|na\\.exclude.data.frame|na\\.exclude.default|na\\.fail|na\\.fail.default|na\\.omit|na\\.omit.data.frame|na\\.omit.default|na\\.omit.ts|na\\.pass|napredict|napredict\\.default|napredict\\.exclude|naprint|naprint\\.default|naprint\\.exclude|naprint\\.omit|naresid|naresid\\.default|naresid\\.exclude|nextn|nleaves|nlm|nlminb|nls|nls_port_fit|nls\\.control|nlsModel|nlsModel\\.plinear|NLSstAsymptotic|NLSstAsymptotic\\.sortedXyData|NLSstClosestX|NLSstClosestX\\.sortedXyData|NLSstLfAsymptote|NLSstLfAsymptote\\.sortedXyData|NLSstRtAsymptote|NLSstRtAsymptote\\.sortedXyData|nobs|nobs\\.default|nobs\\.dendrogram|nobs\\.glm|nobs\\.lm|nobs\\.logLik|nobs\\.nls|numericDeriv|offset|oneway\\.test|Ops\\.ts|optim|optimHess|optimise|optimize|order\\.dendrogram|p\\.adjust|pacf|pacf\\.default|pairwise\\.prop.test|pairwise\\.t.test|pairwise\\.table|pairwise\\.wilcox.test|pbeta|pbinom|pbirthday|pcauchy|pchisq|pexp|pf|pgamma|pgeom|phyper|Pillai|plclust|plnorm|plogis|plot\\.acf|plot\\.decomposed.ts|plot\\.dendrogram|plot\\.density|plot\\.ecdf|plot\\.hclust|plot\\.HoltWinters|plot\\.isoreg|plot\\.lm|plot\\.medpolish|plot\\.mlm|plot\\.ppr|plot\\.prcomp|plot\\.princomp|plot\\.profile.nls|plot\\.spec|plot\\.spec.coherency|plot\\.spec.phase|plot\\.stepfun|plot\\.stl|plot\\.ts|plot\\.tskernel|plot\\.TukeyHSD|plotNode|plotNodeLimit|pnbinom|pnorm|pointwise|poisson|poisson\\.test|poly|polym|port_get_named_v|port_msg|power|power\\.anova.test|power\\.prop.test|power\\.t.test|PP\\.test|ppoints|ppois|ppr|ppr\\.default|ppr\\.formula|prcomp|prcomp\\.default|prcomp\\.formula|predict|predict\\.ar|predict\\.Arima|predict\\.arima0|predict\\.glm|predict\\.HoltWinters|predict\\.lm|predict\\.loess|predict\\.mlm|predict\\.nls|predict\\.poly|predict\\.ppr|predict\\.prcomp|predict\\.princomp|predict\\.smooth.spline|predict\\.smooth.spline.fit|predict\\.StructTS|predLoess|preplot|princomp|princomp\\.default|princomp\\.formula|print\\.acf|print\\.anova|print\\.aov|print\\.aovlist|print\\.ar|print\\.Arima|print\\.arima0|print\\.dendrogram|print\\.density|print\\.dist|print\\.dummy_coef|print\\.dummy_coef_list|print\\.ecdf|print\\.factanal|print\\.family|print\\.formula|print\\.ftable|print\\.glm|print\\.hclust|print\\.HoltWinters|print\\.htest|print\\.infl|print\\.integrate|print\\.isoreg|print\\.kmeans|print\\.lm|print\\.loadings|print\\.loess|print\\.logLik|print\\.medpolish|print\\.mtable|print\\.nls|print\\.pairwise.htest|print\\.power.htest|print\\.ppr|print\\.prcomp|print\\.princomp|print\\.smooth.spline|print\\.stepfun|print\\.stl|print\\.StructTS|print\\.summary.aov|print\\.summary.aovlist|print\\.summary.ecdf|print\\.summary.glm|print\\.summary.lm|print\\.summary.loess|print\\.summary.manova|print\\.summary.nls|print\\.summary.ppr|print\\.summary.prcomp|print\\.summary.princomp|print\\.tables_aov|print\\.terms|print\\.ts|print\\.tskernel|print\\.TukeyHSD|print\\.tukeyline|print\\.tukeysmooth|print\\.xtabs|printCoefmat|profile|profile\\.nls|profiler|profiler\\.nls|proj|proj\\.aov|proj\\.aovlist|proj\\.default|proj\\.lm|proj\\.matrix|promax|prop\\.test|prop\\.trend.test|psignrank|pt|ptukey|punif|pweibull|pwilcox|qbeta|qbinom|qbirthday|qcauchy|qchisq|qexp|qf|qgamma|qgeom|qhyper|qlnorm|qlogis|qnbinom|qnorm|qpois|qqline|qqnorm|qqnorm\\.default|qqplot|qr\\.lm|qsignrank|qt|qtukey|quade\\.test|quade\\.test.default|quade\\.test.formula|quantile|quantile\\.default|quantile\\.ecdf|quantile\\.POSIXt|quasi|quasibinomial|quasipoisson|qunif|qweibull|qwilcox|r2dtable|Rank|rbeta|rbinom|rcauchy|rchisq|read\\.ftable|rect\\.hclust|reformulate|regularize\\.values|relevel|relevel\\.default|relevel\\.factor|relevel\\.ordered|reorder|reorder\\.default|reorder\\.dendrogram|replications|reshape|resid|residuals|residuals\\.default|residuals\\.glm|residuals\\.HoltWinters|residuals\\.isoreg|residuals\\.lm|residuals\\.nls|residuals\\.smooth.spline|residuals\\.tukeyline|rev\\.dendrogram|rexp|rf|rgamma|rgeom|rhyper|rlnorm|rlogis|rmultinom|rnbinom|rnorm|Roy|rpois|rsignrank|rstandard|rstandard\\.glm|rstandard\\.lm|rstudent|rstudent\\.glm|rstudent\\.lm|rt|runif|runmed|rweibull|rwilcox|rWishart|safe_pchisq|safe_pf|scatter\\.smooth|screeplot|screeplot\\.default|sd|se\\.aov|se\\.aovlist|se\\.contrast|se\\.contrast.aov|se\\.contrast.aovlist|selfStart|selfStart\\.default|selfStart\\.formula|setNames|shapiro\\.test|sigma|sigma\\.default|sigma\\.mlm|simpleLoess|simulate|simulate\\.lm|smooth|smooth\\.spline|smoothEnds|sortedXyData|sortedXyData\\.default|spec\\.ar|spec\\.pgram|spec\\.taper|spectrum|sphericity|spl_coef_conv|spline|splinefun|splinefunH|splinefunH0|SSasymp|SSasympOff|SSasympOrig|SSbiexp|SSD|SSD\\.mlm|SSfol|SSfpl|SSgompertz|SSlogis|SSmicmen|SSweibull|start|start\\.default|stat\\.anova|step|stepfun|stl|str\\.dendrogram|str\\.logLik|StructTS|summary\\.aov|summary\\.aovlist|summary\\.ecdf|summary\\.glm|summary\\.infl|summary\\.lm|summary\\.loess|summary\\.manova|summary\\.mlm|summary\\.nls|summary\\.ppr|summary\\.prcomp|summary\\.princomp|summary\\.stepfun|summary\\.stl|summary\\.tukeysmooth|supsmu|symnum|t\\.test|t\\.test.default|t\\.test.formula|t\\.ts|termplot|terms|terms\\.aovlist|terms\\.default|terms\\.formula|terms\\.terms|Thin\\.col|Thin\\.row|time|time\\.default|time\\.ts|toeplitz|Tr|ts|ts\\.intersect|ts\\.plot|ts\\.union|tsdiag|tsdiag\\.Arima|tsdiag\\.arima0|tsdiag\\.StructTS|tsp|tsSmooth|tsSmooth\\.StructTS|TukeyHSD|TukeyHSD\\.aov|uniroot|update|update\\.default|update\\.formula|var|var\\.test|var\\.test.default|var\\.test.formula|variable\\.names|variable\\.names.default|variable\\.names.lm|varimax|vcov|vcov\\.Arima|vcov\\.glm|vcov\\.lm|vcov\\.mlm|vcov\\.nls|vcov\\.summary.glm|vcov\\.summary.lm|weighted\\.mean|weighted\\.mean.Date|weighted\\.mean.default|weighted\\.mean.difftime|weighted\\.mean.POSIXct|weighted\\.mean.POSIXlt|weighted\\.residuals|weights|weights\\.default|weights\\.glm|weights\\.nls|wilcox\\.test|wilcox\\.test.default|wilcox\\.test.formula|Wilks|window|window\\.default|window\\.ts|write\\.ftable|xtabs)\\s*(\\()",captures:{"1":{name:"support.function.r"}}},{match:"\\b(adist|alarm|apropos|aregexec|argNames|argsAnywhere|as\\.bibentry|as\\.bibentry.bibentry|as\\.bibentry.citation|as\\.character.person|as\\.character.roman|as\\.person|as\\.person.default|as\\.personList|as\\.personList.default|as\\.personList.person|as\\.relistable|as\\.roman|aspell|aspell_find_dictionaries|aspell_find_program|aspell_inspect_context|aspell_package|aspell_package_C_files|aspell_package_description|aspell_package_pot_files|aspell_package_R_files|aspell_package_Rd_files|aspell_package_vignettes|aspell_R_C_files|aspell_R_manuals|aspell_R_R_files|aspell_R_Rd_files|aspell_R_vignettes|aspell_write_personal_dictionary_file|assignInMyNamespace|assignInNamespace|attachedPackageCompletions|available\\.packages|bibentry|blank_out_ignores_in_lines|blank_out_regexp_matches|browseEnv|browseURL|browseVignettes|bug\\.report|bug\\.report.info|c\\.bibentry|c\\.person|capture\\.output|changedFiles|check_for_XQuartz|checkCRAN|chooseBioCmirror|chooseCRANmirror|citation|cite|citeNatbib|citEntry|citFooter|citHeader|close\\.socket|close\\.txtProgressBar|combn|compareVersion|contrib\\.url|correctFilenameToken|count\\.fields|CRAN\\.packages|create\\.post|data|data\\.entry|dataentry|de|de\\.ncols|de\\.restore|de\\.setup|debugcall|debugger|defaultUserAgent|demo|download\\.file|download\\.packages|dump\\.frames|edit|edit\\.data.frame|edit\\.default|edit\\.matrix|edit\\.vignette|emacs|example|expr2token|file_test|file\\.edit|fileCompletionPreferred|fileCompletions|fileSnapshot|filter_packages_by_depends_predicates|find|find_files_in_directories|findExactMatches|findFuzzyMatches|findGeneric|findLineNum|findMatches|fix|fixInNamespace|flush\\.console|fnLineNum|format\\.aspell|format\\.bibentry|format\\.citation|format\\.news_db|format\\.object_size|format\\.person|format\\.roman|formatOL|formatUL|functionArgs|fuzzyApropos|get_parse_data_for_message_strings|getAnywhere|getCRANmirrors|getDependencies|getFromNamespace|getIsFirstArg|getKnownS3generics|getParseData|getParseText|getRcode|getRcode\\.vignette|getS3method|getSrcDirectory|getSrcfile|getSrcFilename|getSrcLocation|getSrcref|getTxtProgressBar|glob2rx|globalVariables|hasName|head|head\\.data.frame|head\\.default|head\\.ftable|head\\.function|head\\.matrix|head\\.table|help|help\\.request|help\\.search|help\\.start|helpCompletions|history|hsearch_db|hsearch_db_concepts|hsearch_db_keywords|index\\.search|inFunction|install\\.packages|installed\\.packages|is\\.relistable|isBasePkg|isInsideQuotes|isS3method|isS3stdGeneric|keywordCompletions|limitedLabels|loadedPackageCompletions|loadhistory|localeToCharset|ls\\.str|lsf\\.str|maintainer|make_sysdata_rda|make\\.packages.html|make\\.socket|makeRegexpSafe|makeRweaveLatexCodeRunner|makeUserAgent|matchAvailableTopics|memory\\.limit|memory\\.size|menu|merge_demo_index|merge_vignette_index|methods|mirror2html|modifyList|new\\.packages|news|normalCompletions|nsl|object\\.size|offline_help_helper|old\\.packages|Ops\\.roman|package\\.skeleton|packageDescription|packageName|packageStatus|packageVersion|page|person|personList|pico|print\\.aspell|print\\.aspell_inspect_context|print\\.bibentry|print\\.Bibtex|print\\.browseVignettes|print\\.changedFiles|print\\.citation|print\\.fileSnapshot|print\\.findLineNumResult|print\\.getAnywhere|print\\.help_files_with_topic|print\\.hsearch|print\\.hsearch_db|print\\.Latex|print\\.ls_str|print\\.MethodsFunction|print\\.news_db|print\\.object_size|print\\.packageDescription|print\\.packageIQR|print\\.packageStatus|print\\.person|print\\.roman|print\\.sessionInfo|print\\.socket|print\\.summary.packageStatus|print\\.vignette|printhsearchInternal|process\\.events|prompt|prompt\\.data.frame|prompt\\.default|promptData|promptImport|promptPackage|rc\\.getOption|rc\\.options|rc\\.settings|rc\\.status|read\\.csv|read\\.csv2|read\\.delim|read\\.delim2|read\\.DIF|read\\.fortran|read\\.fwf|read\\.socket|read\\.table|readCitationFile|recover|registerNames|regquote|relist|relist\\.default|relist\\.factor|relist\\.list|relist\\.matrix|remove\\.packages|removeSource|rep\\.bibentry|rep\\.roman|resolvePkgType|Rprof|Rprof_memory_summary|Rprofmem|RShowDoc|RSiteSearch|rtags|rtags\\.file|Rtangle|RtangleFinish|RtangleRuncode|RtangleSetup|RtangleWritedoc|RweaveChunkPrefix|RweaveEvalWithOpt|RweaveLatex|RweaveLatexFinish|RweaveLatexOptions|RweaveLatexRuncode|RweaveLatexSetup|RweaveLatexWritedoc|RweaveTryStop|savehistory|select\\.list|sessionInfo|setBreakpoint|setIsFirstArg|setRepositories|setTxtProgressBar|shorten\\.to.string|simplifyRepos|sort\\.bibentry|specialCompletions|specialFunctionArgs|specialOpCompletionsHelper|specialOpLocs|stack|stack\\.data.frame|stack\\.default|Stangle|str|str\\.data.frame|str\\.Date|str\\.default|str\\.POSIXt|strcapture|strextract|strOptions|substr_with_tabs|summary\\.aspell|summary\\.packageStatus|summaryRprof|suppressForeignCheck|Sweave|SweaveGetSyntax|SweaveHooks|SweaveParseOptions|SweaveReadFile|SweaveSyntConv|tail|tail\\.data.frame|tail\\.default|tail\\.ftable|tail\\.function|tail\\.matrix|tail\\.table|tar|timestamp|toBibtex|toBibtex\\.bibentry|toBibtex\\.person|toLatex|toLatex\\.sessionInfo|topicName|txtProgressBar|type\\.convert|undebugcall|unique\\.bibentry|unlist\\.relistable|unstack|unstack\\.data.frame|unstack\\.default|untar|untar2|unzip|update\\.packages|update\\.packageStatus|upgrade|upgrade\\.packageStatus|url\\.show|URLdecode|URLencode|vi|View|vignette|write\\.csv|write\\.csv2|write\\.etags|write\\.socket|write\\.table|wsbrowser|xedit|xemacs|zip)\\s*(\\()",captures:{"1":{name:"support.function.r"}}}]}}}; + +export { r_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/raku.tmLanguage-21107e05.mjs b/docs/shiki/dist/languages/raku.tmLanguage-21107e05.mjs new file mode 100644 index 00000000..991c9e04 --- /dev/null +++ b/docs/shiki/dist/languages/raku.tmLanguage-21107e05.mjs @@ -0,0 +1,3 @@ +var raku_tmLanguage = {information_for_contributors:["This file has been converted from https://github.com/textmate/perl.tmbundle/blob/master/Syntaxes/Perl%206.tmLanguage","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."],version:"https://github.com/textmate/perl.tmbundle/commit/d9841a0878239fa43f88c640f8d458590f97e8f5",name:"raku",scopeName:"source.perl.6",patterns:[{begin:"^=begin",end:"^=end",name:"comment.block.perl"},{begin:"(^[ \\t]+)?(?=#)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.perl"}},end:"(?!\\G)",patterns:[{begin:"#",beginCaptures:{"0":{name:"punctuation.definition.comment.perl"}},end:"\\n",name:"comment.line.number-sign.perl"}]},{captures:{"1":{name:"storage.type.class.perl.6"},"3":{name:"entity.name.type.class.perl.6"}},match:"(class|enum|grammar|knowhow|module|package|role|slang|subset)(\\s+)(((?:::|')?(?:([a-zA-Z_\\x{C0}-\\x{FF}\\$])([a-zA-Z0-9_\\x{C0}-\\x{FF}\\\\$]|[\\-'][a-zA-Z0-9_\\x{C0}-\\x{FF}\\$])*))+)",name:"meta.class.perl.6"},{begin:"(?<=\\s)'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.perl"}},end:"'",endCaptures:{"0":{name:"punctuation.definition.string.end.perl"}},name:"string.quoted.single.perl",patterns:[{match:"\\\\['\\\\]",name:"constant.character.escape.perl"}]},{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.perl"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.perl"}},name:"string.quoted.double.perl",patterns:[{match:"\\\\[abtnfre\"\\\\]",name:"constant.character.escape.perl"}]},{begin:"q(q|to|heredoc)*\\s*:?(q|to|heredoc)*\\s*/(.+)/",end:"\\3",name:"string.quoted.single.heredoc.perl"},{begin:"(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*{{",end:"}}",name:"string.quoted.double.heredoc.brace.perl",patterns:[{include:"#qq_brace_string_content"}]},{begin:"(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*\\(\\(",end:"\\)\\)",name:"string.quoted.double.heredoc.paren.perl",patterns:[{include:"#qq_paren_string_content"}]},{begin:"(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*\\[\\[",end:"\\]\\]",name:"string.quoted.double.heredoc.bracket.perl",patterns:[{include:"#qq_bracket_string_content"}]},{begin:"(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*{",end:"}",name:"string.quoted.single.heredoc.brace.perl",patterns:[{include:"#qq_brace_string_content"}]},{begin:"(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*/",end:"/",name:"string.quoted.single.heredoc.slash.perl",patterns:[{include:"#qq_slash_string_content"}]},{begin:"(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*\\(",end:"\\)",name:"string.quoted.single.heredoc.paren.perl",patterns:[{include:"#qq_paren_string_content"}]},{begin:"(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*\\[",end:"\\]",name:"string.quoted.single.heredoc.bracket.perl",patterns:[{include:"#qq_bracket_string_content"}]},{begin:"(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*'",end:"'",name:"string.quoted.single.heredoc.single.perl",patterns:[{include:"#qq_single_string_content"}]},{begin:"(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*\"",end:"\"",name:"string.quoted.single.heredoc.double.perl",patterns:[{include:"#qq_double_string_content"}]},{match:"\\b\\$\\w+\\b",name:"variable.other.perl"},{match:"\\b(macro|sub|submethod|method|multi|proto|only|rule|token|regex|category)\\b",name:"storage.type.declare.routine.perl"},{match:"\\b(self)\\b",name:"variable.language.perl"},{match:"\\b(use|require)\\b",name:"keyword.other.include.perl"},{match:"\\b(if|else|elsif|unless)\\b",name:"keyword.control.conditional.perl"},{match:"\\b(let|my|our|state|temp|has|constant)\\b",name:"storage.type.variable.perl"},{match:"\\b(for|loop|repeat|while|until|gather|given)\\b",name:"keyword.control.repeat.perl"},{match:"\\b(take|do|when|next|last|redo|return|contend|maybe|defer|default|exit|make|continue|break|goto|leave|async|lift)\\b",name:"keyword.control.flowcontrol.perl"},{match:"\\b(is|as|but|trusts|of|returns|handles|where|augment|supersede)\\b",name:"storage.modifier.type.constraints.perl"},{match:"\\b(BEGIN|CHECK|INIT|START|FIRST|ENTER|LEAVE|KEEP|UNDO|NEXT|LAST|PRE|POST|END|CATCH|CONTROL|TEMP)\\b",name:"meta.function.perl"},{match:"\\b(die|fail|try|warn)\\b",name:"keyword.control.control-handlers.perl"},{match:"\\b(prec|irs|ofs|ors|export|deep|binary|unary|reparsed|rw|parsed|cached|readonly|defequiv|will|ref|copy|inline|tighter|looser|equiv|assoc|required)\\b",name:"storage.modifier.perl"},{match:"\\b(NaN|Inf)\\b",name:"constant.numeric.perl"},{match:"\\b(oo|fatal)\\b",name:"keyword.other.pragma.perl"},{match:"\\b(Object|Any|Junction|Whatever|Capture|MatchSignature|Proxy|Matcher|Package|Module|ClassGrammar|Scalar|Array|Hash|KeyHash|KeySet|KeyBagPair|List|Seq|Range|Set|Bag|Mapping|Void|UndefFailure|Exception|Code|Block|Routine|Sub|MacroMethod|Submethod|Regex|Str|str|Blob|Char|ByteCodepoint|Grapheme|StrPos|StrLen|Version|NumComplex|num|complex|Bit|bit|bool|True|FalseIncreasing|Decreasing|Ordered|Callable|AnyCharPositional|Associative|Ordering|KeyExtractorComparator|OrderingPair|IO|KitchenSink|RoleInt|int|int1|int2|int4|int8|int16|int32|int64Rat|rat|rat1|rat2|rat4|rat8|rat16|rat32|rat64Buf|buf|buf1|buf2|buf4|buf8|buf16|buf32|buf64UInt|uint|uint1|uint2|uint4|uint8|uint16|uint32uint64|Abstraction|utf8|utf16|utf32)\\b",name:"support.type.perl6"},{match:"\\b(div|xx|x|mod|also|leg|cmp|before|after|eq|ne|le|lt|not|gt|ge|eqv|ff|fff|and|andthen|or|xor|orelse|extra|lcm|gcd)\\b",name:"keyword.operator.perl"},{match:"(\\$|@|%|&)(\\*|:|!|\\^|~|=|\\?|(<(?=.+>)))?([a-zA-Z_\\x{C0}-\\x{FF}\\$])([a-zA-Z0-9_\\x{C0}-\\x{FF}\\$]|[\\-'][a-zA-Z0-9_\\x{C0}-\\x{FF}\\$])*",name:"variable.other.identifier.perl.6"},{match:"\\b(eager|hyper|substr|index|rindex|grep|map|sort|join|lines|hints|chmod|split|reduce|min|max|reverse|truncate|zip|cat|roundrobin|classify|first|sum|keys|values|pairs|defined|delete|exists|elems|end|kv|any|all|one|wrap|shape|key|value|name|pop|push|shift|splice|unshift|floor|ceiling|abs|exp|log|log10|rand|sign|sqrt|sin|cos|tan|round|strand|roots|cis|unpolar|polar|atan2|pick|chop|p5chop|chomp|p5chomp|lc|lcfirst|uc|ucfirst|capitalize|normalize|pack|unpack|quotemeta|comb|samecase|sameaccent|chars|nfd|nfc|nfkd|nfkc|printf|sprintf|caller|evalfile|run|runinstead|nothing|want|bless|chr|ord|gmtime|time|eof|localtime|gethost|getpw|chroot|getlogin|getpeername|kill|fork|wait|perl|graphs|codes|bytes|clone|print|open|read|write|readline|say|seek|close|opendir|readdir|slurp|spurt|shell|run|pos|fmt|vec|link|unlink|symlink|uniq|pair|asin|atan|sec|cosec|cotan|asec|acosec|acotan|sinh|cosh|tanh|asinh|done|acos|acosh|atanh|sech|cosech|cotanh|sech|acosech|acotanh|asech|ok|nok|plan_ok|dies_ok|lives_ok|skip|todo|pass|flunk|force_todo|use_ok|isa_ok|diag|is_deeply|isnt|like|skip_rest|unlike|cmp_ok|eval_dies_ok|nok_error|eval_lives_ok|approx|is_approx|throws_ok|version_lt|plan|EVAL|succ|pred|times|nonce|once|signature|new|connect|operator|undef|undefine|sleep|from|to|infix|postfix|prefix|circumfix|postcircumfix|minmax|lazy|count|unwrap|getc|pi|e|context|void|quasi|body|each|contains|rewinddir|subst|can|isa|flush|arity|assuming|rewind|callwith|callsame|nextwith|nextsame|attr|eval_elsewhere|none|srand|trim|trim_start|trim_end|lastcall|WHAT|WHERE|HOW|WHICH|VAR|WHO|WHENCE|ACCEPTS|REJECTS|not|true|iterator|by|re|im|invert|flip|gist|flat|tree|is-prime|throws_like|trans)\\b",name:"support.function.perl"}],repository:{qq_brace_string_content:{begin:"{",end:"}",patterns:[{include:"#qq_brace_string_content"}]},qq_bracket_string_content:{begin:"\\[",end:"\\]",patterns:[{include:"#qq_bracket_string_content"}]},qq_double_string_content:{begin:"\"",end:"\"",patterns:[{include:"#qq_double_string_content"}]},qq_paren_string_content:{begin:"\\(",end:"\\)",patterns:[{include:"#qq_paren_string_content"}]},qq_single_string_content:{begin:"'",end:"'",patterns:[{include:"#qq_single_string_content"}]},qq_slash_string_content:{begin:"\\\\/",end:"\\\\/",patterns:[{include:"#qq_slash_string_content"}]}}}; + +export { raku_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/razor.tmLanguage-00b7c492.mjs b/docs/shiki/dist/languages/razor.tmLanguage-00b7c492.mjs new file mode 100644 index 00000000..6add4e36 --- /dev/null +++ b/docs/shiki/dist/languages/razor.tmLanguage-00b7c492.mjs @@ -0,0 +1,3 @@ +var razor_tmLanguage = {name:"razor",scopeName:"text.aspnetcorerazor",fileTypes:["razor","cshtml"],patterns:[{include:"#razor-control-structures"},{include:"text.html.basic"}],repository:{"razor-control-structures":{patterns:[{include:"#razor-comment"},{include:"#razor-codeblock"},{include:"#explicit-razor-expression"},{include:"#escaped-transition"},{include:"#directives"},{include:"#transitioned-csharp-control-structures"},{include:"#implicit-expression"}]},"optionally-transitioned-razor-control-structures":{patterns:[{include:"#razor-comment"},{include:"#razor-codeblock"},{include:"#explicit-razor-expression"},{include:"#escaped-transition"},{include:"#directives"},{include:"#optionally-transitioned-csharp-control-structures"},{include:"#implicit-expression"}]},"escaped-transition":{name:"constant.character.escape.razor.transition",match:"@@"},transition:{match:"@",name:"keyword.control.cshtml.transition"},"razor-codeblock":{name:"meta.structure.razor.codeblock",begin:"(@)(\\{)",beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.directive.codeblock.open"}},contentName:"source.cs",patterns:[{include:"#razor-codeblock-body"}],end:"(\\})",endCaptures:{"1":{name:"keyword.control.razor.directive.codeblock.close"}}},"razor-codeblock-body":{patterns:[{include:"#text-tag"},{include:"#wellformed-html"},{include:"#razor-single-line-markup"},{include:"#optionally-transitioned-razor-control-structures"},{include:"source.cs"}]},"razor-single-line-markup":{match:"(\\@\\:)([^$]*)$",captures:{"1":{name:"keyword.control.razor.singleLineMarkup"},"2":{patterns:[{include:"#razor-control-structures"},{include:"text.html.basic"}]}}},"text-tag":{begin:"(<text\\s*>)",beginCaptures:{"1":{name:"keyword.control.cshtml.transition.textTag.open"}},patterns:[{include:"#wellformed-html"},{include:"$self"}],end:"(</text>)",endCaptures:{"1":{name:"keyword.control.cshtml.transition.textTag.close"}}},"razor-comment":{name:"meta.comment.razor",begin:"(@)(\\*)",beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.comment.star"}},contentName:"comment.block.razor",end:"(\\*)(@)",endCaptures:{"1":{name:"keyword.control.razor.comment.star"},"2":{patterns:[{include:"#transition"}]}}},"wellformed-html":{patterns:[{include:"#void-tag"},{include:"#non-void-tag"}]},"void-tag":{name:"meta.tag.structure.$3.void.html",begin:"(?i)(<)(!)?(area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)(?=\\s|/?>)",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"constant.character.escape.razor.tagHelperOptOut"},"3":{name:"entity.name.tag.html"}},patterns:[{include:"text.html.basic#attribute"}],end:"/?>",endCaptures:{"0":{name:"punctuation.definition.tag.end.html"}}},"non-void-tag":{begin:"(?=<(!)?([^/\\s>]+)(\\s|/?>))",end:"(</)(\\2)\\s*(>)|(/>)",endCaptures:{"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"},"3":{name:"punctuation.definition.tag.end.html"},"4":{name:"punctuation.definition.tag.end.html"}},patterns:[{begin:"(<)(!)?([^/\\s>]+)(?=\\s|/?>)",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"constant.character.escape.razor.tagHelperOptOut"},"3":{name:"entity.name.tag.html"}},end:"(?=/?>)",patterns:[{include:"#razor-control-structures"},{include:"text.html.basic#attribute"}]},{begin:">",beginCaptures:{"0":{name:"punctuation.definition.tag.end.html"}},end:"(?=</)",patterns:[{include:"#wellformed-html"},{include:"$self"}]}]},"explicit-razor-expression":{name:"meta.expression.explicit.cshtml",begin:"(@)\\(",beginCaptures:{"0":{name:"keyword.control.cshtml"},"1":{patterns:[{include:"#transition"}]}},patterns:[{include:"source.cs#expression"}],end:"\\)",endCaptures:{"0":{name:"keyword.control.cshtml"}}},"implicit-expression":{name:"meta.expression.implicit.cshtml",contentName:"source.cs",begin:"(?<![[:alpha:][:alnum:]])(@)",beginCaptures:{"1":{patterns:[{include:"#transition"}]}},patterns:[{include:"#await-prefix"},{include:"#implicit-expression-body"}],end:"(?=[\\s<>\\{\\}\\)\\]'\"])"},"implicit-expression-body":{patterns:[{include:"#implicit-expression-invocation-start"},{include:"#implicit-expression-accessor-start"}],end:"(?=[\\s<>\\{\\}\\)\\]'\"])"},"implicit-expression-invocation-start":{begin:"([_[:alpha:]][_[:alnum:]]*)(?=\\()",beginCaptures:{"1":{name:"entity.name.function.cs"}},patterns:[{include:"#implicit-expression-continuation"}],end:"(?=[\\s<>\\{\\}\\)\\]'\"])"},"implicit-expression-accessor-start":{begin:"([_[:alpha:]][_[:alnum:]]*)",beginCaptures:{"1":{name:"variable.other.object.cs"}},patterns:[{include:"#implicit-expression-continuation"}],end:"(?=[\\s<>\\{\\}\\)\\]'\"])"},"implicit-expression-continuation":{patterns:[{include:"#balanced-parenthesis-csharp"},{include:"#balanced-brackets-csharp"},{include:"#implicit-expression-invocation"},{include:"#implicit-expression-accessor"},{include:"#implicit-expression-extension"}],end:"(?=[\\s<>\\{\\}\\)\\]'\"])"},"implicit-expression-accessor":{match:"(?<=\\.)[_[:alpha:]][_[:alnum:]]*",name:"variable.other.object.property.cs"},"implicit-expression-invocation":{match:"(?<=\\.)[_[:alpha:]][_[:alnum:]]*(?=\\()",name:"entity.name.function.cs"},"implicit-expression-operator":{patterns:[{include:"#implicit-expression-dot-operator"},{include:"#implicit-expression-null-conditional-operator"},{include:"#implicit-expression-null-forgiveness-operator"}]},"implicit-expression-dot-operator":{match:"(\\.)(?=[_[:alpha:]][_[:alnum:]]*)",captures:{"1":{name:"punctuation.accessor.cs"}}},"implicit-expression-null-conditional-operator":{match:"(\\?)(?=[.\\[])",captures:{"1":{name:"keyword.operator.null-conditional.cs"}}},"implicit-expression-null-forgiveness-operator":{match:"(\\!)(?=(?:\\.[_[:alpha:]][_[:alnum:]]*)|\\?|[\\[\\(])",captures:{"1":{name:"keyword.operator.logical.cs"}}},"balanced-parenthesis-csharp":{begin:"(\\()",beginCaptures:{"1":{name:"punctuation.parenthesis.open.cs"}},name:"razor.test.balanced.parenthesis",patterns:[{include:"source.cs"}],end:"(\\))",endCaptures:{"1":{name:"punctuation.parenthesis.close.cs"}}},"balanced-brackets-csharp":{begin:"(\\[)",beginCaptures:{"1":{name:"punctuation.squarebracket.open.cs"}},name:"razor.test.balanced.brackets",patterns:[{include:"source.cs"}],end:"(\\])",endCaptures:{"1":{name:"punctuation.squarebracket.close.cs"}}},directives:{patterns:[{include:"#code-directive"},{include:"#functions-directive"},{include:"#page-directive"},{include:"#addTagHelper-directive"},{include:"#removeTagHelper-directive"},{include:"#tagHelperPrefix-directive"},{include:"#model-directive"},{include:"#inherits-directive"},{include:"#implements-directive"},{include:"#namespace-directive"},{include:"#inject-directive"},{include:"#attribute-directive"},{include:"#section-directive"},{include:"#layout-directive"},{include:"#using-directive"}]},"code-directive":{begin:"(@)(code)((?=\\{)|\\s+)",beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.directive.code"}},patterns:[{include:"#directive-codeblock"}],end:"(?<=})|\\s"},"functions-directive":{begin:"(@)(functions)((?=\\{)|\\s+)",beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.directive.functions"}},patterns:[{include:"#directive-codeblock"}],end:"(?<=})|\\s"},"directive-codeblock":{begin:"(\\{)",beginCaptures:{"1":{name:"keyword.control.razor.directive.codeblock.open"}},name:"meta.structure.razor.directive.codeblock",contentName:"source.cs",patterns:[{include:"source.cs#class-or-struct-members"}],end:"(\\})",endCaptures:{"1":{name:"keyword.control.razor.directive.codeblock.close"}}},"page-directive":{name:"meta.directive",match:"(@)(page)\\s+([^$]+)?",captures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.directive.page"},"3":{patterns:[{include:"source.cs#string-literal"}]}}},"addTagHelper-directive":{name:"meta.directive",match:"(@)(addTagHelper)\\s+([^$]+)?",captures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.directive.addTagHelper"},"3":{patterns:[{include:"#tagHelper-directive-argument"}]}}},"removeTagHelper-directive":{name:"meta.directive",match:"(@)(removeTagHelper)\\s+([^$]+)?",captures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.directive.removeTagHelper"},"3":{patterns:[{include:"#tagHelper-directive-argument"}]}}},"tagHelperPrefix-directive":{name:"meta.directive",match:"(@)(tagHelperPrefix)\\s+([^$]+)?",captures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.directive.tagHelperPrefix"},"3":{patterns:[{include:"#tagHelper-directive-argument"}]}}},"tagHelper-directive-argument":{patterns:[{include:"source.cs#string-literal"},{include:"#unquoted-string-argument"}]},"unquoted-string-argument":{name:"string.quoted.double.cs",match:"[^$]+"},"model-directive":{name:"meta.directive",match:"(@)(model)\\s+([^$]+)?",captures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.directive.model"},"3":{patterns:[{include:"source.cs#type"}]}}},"inherits-directive":{name:"meta.directive",match:"(@)(inherits)\\s+([^$]+)?",captures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.directive.inherits"},"3":{patterns:[{include:"source.cs#type"}]}}},"implements-directive":{name:"meta.directive",match:"(@)(implements)\\s+([^$]+)?",captures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.directive.implements"},"3":{patterns:[{include:"source.cs#type"}]}}},"layout-directive":{name:"meta.directive",match:"(@)(layout)\\s+([^$]+)?",captures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.directive.layout"},"3":{patterns:[{include:"source.cs#type"}]}}},"namespace-directive":{name:"meta.directive",match:"(@)(namespace)\\s+([^\\s]+)?",captures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.directive.namespace"},"3":{patterns:[{include:"#namespace-directive-argument"}]}}},"namespace-directive-argument":{match:"([_[:alpha:]][_[:alnum:]]*)(\\.)?",captures:{"1":{name:"entity.name.type.namespace.cs"},"2":{name:"punctuation.accessor.cs"}}},"inject-directive":{name:"meta.directive",match:"(@)(inject)\\s*([\\S\\s]+?)?\\s*([_[:alpha:]][_[:alnum:]]*)?\\s*(?=$)",captures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.directive.inject"},"3":{patterns:[{include:"source.cs#type"}]},"4":{name:"entity.name.variable.property.cs"}}},"attribute-directive":{name:"meta.directive",begin:"(@)(attribute)\\b\\s+",beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.directive.attribute"}},patterns:[{include:"source.cs#attribute-section"}],end:"(?<=\\])|$"},"section-directive":{name:"meta.directive.block",begin:"(@)(section)\\b\\s+([_[:alpha:]][_[:alnum:]]*)?",beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.razor.directive.section"},"3":{name:"variable.other.razor.directive.sectionName"}},patterns:[{include:"#directive-markupblock"}],end:"(?<=})"},"directive-markupblock":{name:"meta.structure.razor.directive.markblock",begin:"(\\{)",beginCaptures:{"1":{name:"keyword.control.razor.directive.codeblock.open"}},patterns:[{include:"$self"}],end:"(\\})",endCaptures:{"1":{name:"keyword.control.razor.directive.codeblock.close"}}},"using-directive":{name:"meta.directive",match:"(@)(using)\\b\\s+(?!\\(|\\s)(.+?)?(;)?$",captures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.other.using.cs"},"3":{patterns:[{include:"#using-static-directive"},{include:"#using-alias-directive"},{include:"#using-standard-directive"}]},"4":{name:"keyword.control.razor.optionalSemicolon"}}},"using-static-directive":{match:"(static)\\b\\s+(.+)",captures:{"1":{name:"keyword.other.static.cs"},"2":{patterns:[{include:"source.cs#type"}]}}},"using-alias-directive":{match:"([_[:alpha:]][_[:alnum:]]*)\\b\\s*(=)\\s*(.+)\\s*",captures:{"1":{name:"entity.name.type.alias.cs"},"2":{name:"keyword.operator.assignment.cs"},"3":{patterns:[{include:"source.cs#type"}]}}},"using-standard-directive":{match:"([_[:alpha:]][_[:alnum:]]*)\\s*",captures:{"1":{name:"entity.name.type.namespace.cs"}}},"optionally-transitioned-csharp-control-structures":{patterns:[{include:"#using-statement-with-optional-transition"},{include:"#if-statement-with-optional-transition"},{include:"#else-part"},{include:"#foreach-statement-with-optional-transition"},{include:"#for-statement-with-optional-transition"},{include:"#while-statement"},{include:"#switch-statement-with-optional-transition"},{include:"#lock-statement-with-optional-transition"},{include:"#do-statement-with-optional-transition"},{include:"#try-statement-with-optional-transition"}]},"transitioned-csharp-control-structures":{patterns:[{include:"#using-statement"},{include:"#if-statement"},{include:"#else-part"},{include:"#foreach-statement"},{include:"#for-statement"},{include:"#while-statement"},{include:"#switch-statement"},{include:"#lock-statement"},{include:"#do-statement"},{include:"#try-statement"}]},"using-statement":{name:"meta.statement.using.razor",begin:"(?:(@))(using)\\b\\s*(?=\\()",beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.other.using.cs"}},patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}],end:"(?<=})"},"using-statement-with-optional-transition":{name:"meta.statement.using.razor",begin:"(?:^\\s*|(@))(using)\\b\\s*(?=\\()",beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.other.using.cs"}},patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}],end:"(?<=})"},"if-statement":{name:"meta.statement.if.razor",begin:"(?:(@))(if)\\b\\s*(?=\\()",beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.conditional.if.cs"}},patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}],end:"(?<=})"},"if-statement-with-optional-transition":{name:"meta.statement.if.razor",begin:"(?:^\\s*|(@))(if)\\b\\s*(?=\\()",beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.conditional.if.cs"}},patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}],end:"(?<=})"},"else-part":{name:"meta.statement.else.razor",begin:"(?:^|(?<=}))\\s*(else)\\b\\s*?(?: (if))?\\s*?(?=[\\n\\(\\{])",beginCaptures:{"1":{name:"keyword.control.conditional.else.cs"},"2":{name:"keyword.control.conditional.if.cs"}},patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}],end:"(?<=})"},"for-statement":{name:"meta.statement.for.razor",begin:"(?:(@))(for)\\b\\s*(?=\\()",beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.loop.for.cs"}},patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}],end:"(?<=})"},"for-statement-with-optional-transition":{name:"meta.statement.for.razor",begin:"(?:^\\s*|(@))(for)\\b\\s*(?=\\()",beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.loop.for.cs"}},patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}],end:"(?<=})"},"foreach-statement":{name:"meta.statement.foreach.razor",begin:"(?:(@)(await\\s+)?)(foreach)\\b\\s*(?=\\()",beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{patterns:[{include:"#await-prefix"}]},"3":{name:"keyword.control.loop.foreach.cs"}},patterns:[{include:"#foreach-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}],end:"(?<=})"},"foreach-statement-with-optional-transition":{name:"meta.statement.foreach.razor",begin:"(?:^\\s*|(@)(await\\s+)?)(foreach)\\b\\s*(?=\\()",beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{patterns:[{include:"#await-prefix"}]},"3":{name:"keyword.control.loop.foreach.cs"}},patterns:[{include:"#foreach-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}],end:"(?<=})"},"foreach-condition":{begin:"\\(",beginCaptures:{"0":{name:"punctuation.parenthesis.open.cs"}},end:"\\)",endCaptures:{"0":{name:"punctuation.parenthesis.close.cs"}},patterns:[{match:"(?x)\n(?:\n (\\bvar\\b)|\n (?<type-name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name-and-type-args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type-args>\\s*<(?:[^<>]|\\g<type-args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name-and-type-args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n )\n)\\s+\n(\\g<identifier>)\\s+\n\\b(in)\\b",captures:{"1":{name:"keyword.other.var.cs"},"2":{patterns:[{include:"source.cs#type"}]},"7":{name:"entity.name.variable.local.cs"},"8":{name:"keyword.control.loop.in.cs"}}},{match:"(?x) # match foreach (var (x, y) in ...)\n(?:\\b(var)\\b\\s*)?\n(?<tuple>\\((?:[^\\(\\)]|\\g<tuple>)+\\))\\s+\n\\b(in)\\b",captures:{"1":{name:"keyword.other.var.cs"},"2":{patterns:[{include:"source.cs#tuple-declaration-deconstruction-element-list"}]},"3":{name:"keyword.control.loop.in.cs"}}},{include:"source.cs#expression"}]},"do-statement":{name:"meta.statement.do.razor",begin:"(?:(@))(do)\\b\\s",beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.loop.do.cs"}},patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}],end:"(?<=})"},"do-statement-with-optional-transition":{name:"meta.statement.do.razor",begin:"(?:^\\s*|(@))(do)\\b\\s",beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.loop.do.cs"}},patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}],end:"(?<=})"},"while-statement":{name:"meta.statement.while.razor",begin:"(?:(@)|^\\s*|(?<=})\\s*)(while)\\b\\s*(?=\\()",beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.loop.while.cs"}},patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}],end:"(?<=})|(;)",endCaptures:{"1":{name:"punctuation.terminator.statement.cs"}}},"switch-statement":{name:"meta.statement.switch.razor",begin:"(?:(@))(switch)\\b\\s*(?=\\()",beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.switch.cs"}},patterns:[{include:"#csharp-condition"},{include:"#switch-code-block"},{include:"#razor-codeblock-body"}],end:"(?<=})"},"switch-statement-with-optional-transition":{name:"meta.statement.switch.razor",begin:"(?:^\\s*|(@))(switch)\\b\\s*(?=\\()",beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.switch.cs"}},patterns:[{include:"#csharp-condition"},{include:"#switch-code-block"},{include:"#razor-codeblock-body"}],end:"(?<=})"},"switch-code-block":{name:"meta.structure.razor.csharp.codeblock.switch",begin:"(\\{)",beginCaptures:{"1":{name:"punctuation.curlybrace.open.cs"}},patterns:[{include:"source.cs#switch-label"},{include:"#razor-codeblock-body"}],end:"(\\})",endCaptures:{"1":{name:"punctuation.curlybrace.close.cs"}}},"lock-statement":{name:"meta.statement.lock.razor",begin:"(?:(@))(lock)\\b\\s*(?=\\()",beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.other.lock.cs"}},patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}],end:"(?<=})"},"lock-statement-with-optional-transition":{name:"meta.statement.lock.razor",begin:"(?:^\\s*|(@))(lock)\\b\\s*(?=\\()",beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.other.lock.cs"}},patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}],end:"(?<=})"},"try-statement":{patterns:[{include:"#try-block"},{include:"#catch-clause"},{include:"#finally-clause"}]},"try-statement-with-optional-transition":{patterns:[{include:"#try-block-with-optional-transition"},{include:"#catch-clause"},{include:"#finally-clause"}]},"try-block":{name:"meta.statement.try.razor",begin:"(?:(@))(try)\\b\\s*",beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.try.cs"}},patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}],end:"(?<=})"},"try-block-with-optional-transition":{name:"meta.statement.try.razor",begin:"(?:^\\s*|(@))(try)\\b\\s*",beginCaptures:{"1":{patterns:[{include:"#transition"}]},"2":{name:"keyword.control.try.cs"}},patterns:[{include:"#csharp-condition"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}],end:"(?<=})"},"catch-clause":{name:"meta.statement.catch.razor",begin:"(?:^|(?<=}))\\s*(catch)\\b\\s*?(?=[\\n\\(\\{])",beginCaptures:{"1":{name:"keyword.control.try.catch.cs"}},patterns:[{include:"#catch-condition"},{include:"source.cs#when-clause"},{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}],end:"(?<=})"},"catch-condition":{begin:"\\(",beginCaptures:{"0":{name:"punctuation.parenthesis.open.cs"}},end:"\\)",endCaptures:{"0":{name:"punctuation.parenthesis.close.cs"}},patterns:[{match:"(?x)\n(?<type-name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name-and-type-args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type-args>\\s*<(?:[^<>]|\\g<type-args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name-and-type-args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)\\s*\n(?:(\\g<identifier>)\\b)?",captures:{"1":{patterns:[{include:"source.cs#type"}]},"6":{name:"entity.name.variable.local.cs"}}}]},"finally-clause":{name:"meta.statement.finally.razor",begin:"(?:^|(?<=}))\\s*(finally)\\b\\s*?(?=[\\n\\{])",beginCaptures:{"1":{name:"keyword.control.try.finally.cs"}},patterns:[{include:"#csharp-code-block"},{include:"#razor-codeblock-body"}],end:"(?<=})"},"await-prefix":{name:"keyword.other.await.cs",match:"(await)\\s+"},"csharp-code-block":{name:"meta.structure.razor.csharp.codeblock",begin:"(\\{)",beginCaptures:{"1":{name:"punctuation.curlybrace.open.cs"}},patterns:[{include:"#razor-codeblock-body"}],end:"(\\})",endCaptures:{"1":{name:"punctuation.curlybrace.close.cs"}}},"csharp-condition":{begin:"(\\()",beginCaptures:{"1":{name:"punctuation.parenthesis.open.cs"}},patterns:[{include:"source.cs#local-variable-declaration"},{include:"source.cs#expression"},{include:"source.cs#punctuation-comma"},{include:"source.cs#punctuation-semicolon"}],end:"(\\))",endCaptures:{"1":{name:"punctuation.parenthesis.close.cs"}}}}}; + +export { razor_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/reg.tmLanguage-c66b7785.mjs b/docs/shiki/dist/languages/reg.tmLanguage-c66b7785.mjs new file mode 100644 index 00000000..63bb5a91 --- /dev/null +++ b/docs/shiki/dist/languages/reg.tmLanguage-c66b7785.mjs @@ -0,0 +1,3 @@ +var reg_tmLanguage = {fileTypes:["reg","REG"],name:"reg",patterns:[{match:"Windows Registry Editor Version 5\\.00|REGEDIT4",name:"keyword.control.import.reg"},{captures:{"1":{name:"punctuation.definition.comment.reg"}},match:"(;).*$",name:"comment.line.semicolon.reg"},{captures:{"1":{name:"punctuation.definition.section.reg"},"2":{name:"entity.section.reg"},"3":{name:"punctuation.definition.section.reg"}},match:"^\\s*(\\[(?!-))(.*?)(\\])",name:"entity.name.function.section.add.reg"},{captures:{"1":{name:"punctuation.definition.section.reg"},"2":{name:"entity.section.reg"},"3":{name:"punctuation.definition.section.reg"}},match:"^\\s*(\\[-)(.*?)(\\])",name:"entity.name.function.section.delete.reg"},{captures:{"2":{name:"punctuation.definition.quote.reg"},"3":{name:"support.function.regname.ini"},"4":{name:"punctuation.definition.quote.reg"},"5":{name:"punctuation.definition.equals.reg"},"7":{name:"keyword.operator.arithmetic.minus.reg"},"9":{name:"punctuation.definition.quote.reg"},"10":{name:"string.name.regdata.reg"},"11":{name:"punctuation.definition.quote.reg"},"13":{name:"support.type.dword.reg"},"14":{name:"keyword.operator.arithmetic.colon.reg"},"15":{name:"constant.numeric.dword.reg"},"17":{name:"support.type.dword.reg"},"18":{name:"keyword.operator.arithmetic.parenthesis.reg"},"19":{name:"keyword.operator.arithmetic.parenthesis.reg"},"20":{name:"constant.numeric.hex.size.reg"},"21":{name:"keyword.operator.arithmetic.parenthesis.reg"},"22":{name:"keyword.operator.arithmetic.colon.reg"},"23":{name:"constant.numeric.hex.reg"},"24":{name:"keyword.operator.arithmetic.linecontinuation.reg"},"25":{name:"comment.declarationline.semicolon.reg"}},match:"^(\\s*([\"']?)(.+?)([\"']?)\\s*(=))?\\s*((-)|(([\"'])(.*?)([\"']))|(((?i:dword))(\\:)\\s*([\\dabcdefABCDEF]{1,8}))|(((?i:hex))((\\()([\\d]*)(\\)))?(\\:)(.*?)(\\\\?)))\\s*(;.*)?$",name:"meta.declaration.reg"},{match:"[0-9]+",name:"constant.numeric.reg"},{match:"[a-fA-F]+",name:"constant.numeric.hex.reg"},{match:",+",name:"constant.numeric.hex.comma.reg"},{match:"\\\\",name:"keyword.operator.arithmetic.linecontinuation.reg"}],scopeName:"source.reg",uuid:"B7773F5B-C43A-4BB9-843A-4AC119250EBD"}; + +export { reg_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/rel.tmLanguage-ec666bfd.mjs b/docs/shiki/dist/languages/rel.tmLanguage-ec666bfd.mjs new file mode 100644 index 00000000..dc0e7bd4 --- /dev/null +++ b/docs/shiki/dist/languages/rel.tmLanguage-ec666bfd.mjs @@ -0,0 +1,3 @@ +var rel_tmLanguage = {$schema:"https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",name:"rel",patterns:[{include:"#strings"},{include:"#comment"},{include:"#single-line-comment-consuming-line-ending"},{include:"#deprecated-temporary"},{include:"#operators"},{include:"#symbols"},{include:"#keywords"},{include:"#otherkeywords"},{include:"#types"},{include:"#constants"}],repository:{strings:{name:"string.quoted.double.rel",begin:"\"",end:"\"",patterns:[{name:"constant.character.escape.rel",match:"\\\\."}]},comment:{patterns:[{name:"comment.block.documentation.rel",begin:"/\\*\\*(?!/)",beginCaptures:{"0":{name:"punctuation.definition.comment.rel"}},end:"\\*/",endCaptures:{"0":{name:"punctuation.definition.comment.rel"}},patterns:[{include:"#docblock"}]},{name:"comment.block.rel",begin:"(/\\*)(?:\\s*((@)internal)(?=\\s|(\\*/)))?",beginCaptures:{"1":{name:"punctuation.definition.comment.rel"},"2":{name:"storage.type.internaldeclaration.rel"},"3":{name:"punctuation.decorator.internaldeclaration.rel"}},end:"\\*/",endCaptures:{"0":{name:"punctuation.definition.comment.rel"}}},{name:"comment.block.documentation.rel",begin:"doc\"\"\"",end:"\"\"\""},{begin:"(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.rel"},"2":{name:"comment.line.double-slash.rel"},"3":{name:"punctuation.definition.comment.rel"},"4":{name:"storage.type.internaldeclaration.rel"},"5":{name:"punctuation.decorator.internaldeclaration.rel"}},end:"(?=$)",contentName:"comment.line.double-slash.rel"}]},"single-line-comment-consuming-line-ending":{begin:"(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.rel"},"2":{name:"comment.line.double-slash.rel"},"3":{name:"punctuation.definition.comment.rel"},"4":{name:"storage.type.internaldeclaration.rel"},"5":{name:"punctuation.decorator.internaldeclaration.rel"}},end:"(?=^)",contentName:"comment.line.double-slash.rel"},"deprecated-temporary":{patterns:[{name:"keyword.other.rel",match:"@inspect"}]},operators:{patterns:[{name:"keyword.other.rel",match:"(\\b(if|then|else|and|or|not|eq|neq|lt|lt_eq|gt|gt_eq)\\b)|(\\+|\\-|\\*|\\/|÷|\\^|\\%|\\=|\\!\\=|≠|\\<|\\<\\=|≤|\\>|\\>\\=|≥|\\&)|\\s+(end)"}]},symbols:{patterns:[{name:"variable.parameter.rel",match:"(:[\\[_$[:alpha:]](\\]|[_$[:alnum:]]*))"}]},keywords:{patterns:[{name:"keyword.control.rel",match:"(\\b(def|entity|bound|include|ic|forall|exists|∀|∃|return|module|^end)\\b)|(((\\<)?\\|(\\>)?)|∀|∃)"}]},otherkeywords:{patterns:[{name:"keyword.other.rel",match:"\\s*(@inline)\\s*|\\s*(@auto_number)\\s*|\\s*(function)\\s|(\\b(implies|select|from|∈|where|for|in)\\b)|(((\\<)?\\|(\\>)?)|∈)"}]},types:{patterns:[{name:"entity.name.type.rel",match:"(\\b(Symbol|Char|Bool|Rational|FixedDecimal|Float16|Float32|Float64|Int8|Int16|Int32|Int64|Int128|UInt8|UInt16|UInt32|UInt64|UInt128|Date|DateTime|Day|Week|Month|Year|Nanosecond|Microsecond|Millisecond|Second|Minute|Hour|FilePos|HashValue|AutoNumberValue)\\b)"}]},constants:{patterns:[{name:"constant.language.rel",match:"(\\b(true|false)\\b)"}]}},scopeName:"source.rel"}; + +export { rel_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/riscv.tmLanguage-3f2cee90.mjs b/docs/shiki/dist/languages/riscv.tmLanguage-3f2cee90.mjs new file mode 100644 index 00000000..43cc250d --- /dev/null +++ b/docs/shiki/dist/languages/riscv.tmLanguage-3f2cee90.mjs @@ -0,0 +1,3 @@ +var riscv_tmLanguage = {fileTypes:["S","s","riscv","asm"],keyEquivalent:"^~M",name:"riscv",patterns:[{comment:"ok actually this are instructions, but one also could call them funtions…",match:"\\b(la|lb|lh|lw|ld|nop|li|mv|not|neg|negw|sext\\.w|seqz|snez|sltz|sgtz|beqz|bnez|blez|bgez|bltz|bgtz|bgt|ble|bgtu|bleu|j|jal|jr|ret|call|tail|fence|csr[r|w|s|c]|csr[w|s|c]i)\\b",name:"support.function.pseudo.riscv"},{match:"\\b(add|addw|auipc|lui|jalr|beq|bne|blt|bge|bltu|bgeu|lb|lh|lw|ld|lbu|lhu|sb|sh|sw|sd|addi|addiw|slti|sltiu|xori|ori|andi|slli|slliw|srli|srliw|srai|sraiw|sub|subw|sll|sllw|slt|sltu|xor|srl|srlw|sra|sraw|or|and|fence|fence\\.i|csrrw|csrrs|csrrc|csrrwi|csrrsi|csrrci)\\b",name:"support.function.riscv"},{comment:"priviledged instructions",match:"\\b(ecall|ebreak|sfence\\.vma|mret|sret|uret|wfi)\\b",name:"support.function.riscv.privileged"},{comment:"M extension (multiplication and division)",match:"\\b(mul|mulh|mulhsu|mulhu|div|divu|rem|remu|mulw|divw|divuw|remw|remuw)\\b",name:"support.function.riscv.m"},{comment:"C extension (compressed instructions)",match:"\\b(c\\.addi4spn|c\\.fld|c\\.lq|c\\.lw|c\\.flw|c\\.ld|c\\.fsd|c\\.sq|c\\.sw|c\\.fsw|c\\.sd|c\\.nop|c\\.addi|c\\.jal|c\\.addiw|c\\.li|c\\.addi16sp|c\\.lui|c\\.srli|c\\.srli64|c\\.srai|c\\.srai64|c\\.andi|c\\.sub|c\\.xor|c\\.or|c\\.and|c\\.subw|c\\.addw|c\\.j|c\\.beqz|c\\.bnez)\\b",name:"support.function.riscv.c"},{comment:"A extension (atomic instructions)",match:"\\b(lr\\.[w|d]|sc\\.[w|d]|amoswap\\.[w|d]|amoadd\\.[w|d]|amoxor\\.[w|d]|amoand\\.[w|d]|amoor\\.[w|d]|amomin\\.[w|d]|amomax\\.[w|d]|amominu\\.[w|d]|amomaxu\\.[w|d])\\b",name:"support.function.riscv.a"},{comment:"F extension (single precision floating point)",match:"\\b(flw|fsw|fmadd\\.s|fmsub\\.s|fnmsub\\.s|fnmadd\\.s|fadd\\.s|fsub\\.s|fmul\\.s|fdiv\\.s|fsqrt\\.s|fsgnj\\.s|fsgnjn\\.s|fsgnjx\\.s|fmin\\.s|fmax\\.s|fcvt\\.w\\.s|fcvt\\.wu\\.s|fmv\\.x\\.w|feq\\.s|flt\\.s|fle\\.s|fclass\\.s|fcvt\\.s\\.w|fcvt\\.s\\.wu|fmv\\.w\\.x|fcvt\\.l\\.s|fcvt\\.lu\\.s|fcvt\\.s\\.l|fcvt\\.s\\.lu)\\b",name:"support.function.riscv.f"},{comment:"D extension (double precision floating point)",match:"\\b(fld|fsd|fmadd\\.d|fmsub\\.d|fnmsub\\.d|fnmadd\\.d|fadd\\.d|fsub\\.d|fmul\\.d|fdiv\\.d|fsqrt\\.d|fsgnj\\.d|fsgnjn\\.d|fsgnjx\\.d|fmin\\.d|fmax\\.d|fcvt\\.s\\.d|fcvt\\.d\\.s|feq\\.d|flt\\.d|fle\\.d|fclass\\.d|fcvt\\.w\\.d|fcvt\\.wu\\.d|fcvt\\.d\\.w|fcvt\\.d\\.wu|fcvt\\.l\\.d|fcvt\\.lu\\.d|fmv\\.x\\.d|fcvt\\.d\\.l|fcvt\\.d\\.lu|fmv\\.d\\.x)\\b",name:"support.function.riscv.d"},{match:"\\.(skip|ascii|asciiz|byte|[2|4|8]byte|data|double|float|half|kdata|ktext|space|text|word|dword|dtprelword|dtpreldword|set\\s*(noat|at)|[s|u]leb128|string|incbin|zero|rodata|comm|common)\\b",name:"storage.type.riscv"},{match:"\\.(balign|align|p2align|extern|globl|global|local|pushsection|section|bss|insn|option|type|equ|macro|endm|file|ident)\\b",name:"storage.modifier.riscv"},{captures:{"1":{name:"entity.name.function.label.riscv"}},match:"\\b([A-Za-z0-9_]+):",name:"meta.function.label.riscv"},{captures:{"1":{name:"punctuation.definition.variable.riscv"}},match:"\\b(x([0-9]|1[0-9]|2[0-9]|3[0-1]))\\b",name:"variable.other.register.usable.by-number.riscv"},{captures:{"1":{name:"punctuation.definition.variable.riscv"}},match:"\\b(zero|ra|sp|gp|tp|t[0-6]|a[0-7]|s[0-9]|fp|s1[0-1])\\b",name:"variable.other.register.usable.by-name.riscv"},{captures:{"1":{name:"punctuation.definition.variable.riscv"}},match:"\\b(([umsh]|vs)status|([umsh]|vs)ie|([ums]|vs)tvec|([ums]|vs)scratch|([ums]|vs)epc|([ums]|vs)cause|([umsh]|vs)tval|([umsh]|vs)ip|fflags|frm|fcsr|m?cycleh?|timeh?|m?instreth?|m?hpmcounter([3-9]|[12][0-9]|3[01])h?|[msh][ei]deleg|[msh]counteren|v?satp|hgeie|hgeip|[hm]tinst|hvip|hgatp|htimedeltah?|mvendorid|marchid|mimpid|mhartid|misa|mstatush|mtval2|pmpcfg[0-3]|pmpaddr([0-9]|1[0-5])|mcountinhibit|mhpmevent([3-9]|[12][0-9]|3[01])|tselect|tdata[1-3]|dcsr|dpc|dscratch[0-1])\\b",name:"variable.other.csr.names.riscv"},{captures:{"1":{name:"punctuation.definition.variable.riscv"}},match:"\\bf([0-9]|1[0-9]|2[0-9]|3[0-1])\\b",name:"variable.other.register.usable.floating-point.riscv"},{match:"\\b\\d+\\.\\d+\\b",name:"constant.numeric.float.riscv"},{match:"\\b(\\d+|0(x|X)[a-fA-F0-9]+)\\b",name:"constant.numeric.integer.riscv"},{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.riscv"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.riscv"}},name:"string.quoted.double.riscv",patterns:[{match:"\\\\[rnt\\\\\"]",name:"constant.character.escape.riscv"}]},{begin:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.riscv"}},end:"'",endCaptures:{"0":{name:"punctuation.definition.string.end.riscv"}},name:"string.quoted.single.riscv",patterns:[{match:"\\\\[rnt\\\\\"]",name:"constant.character.escape.riscv"}]},{begin:"\\/\\*",end:"\\*\\/",name:"comment.block"},{begin:"\\/\\/",end:"\\n",name:"comment.line.double-slash"},{begin:"(?x)\n ^\\s*\\#\\s*(define)\\s+ # define\n ((?<id>[a-zA-Z_][a-zA-Z0-9_]*)) # macro name\n (?: # and optionally:\n (\\() # an open parenthesis\n (\n \\s* \\g<id> \\s* # first argument\n ((,) \\s* \\g<id> \\s*)* # additional arguments\n (?:\\.\\.\\.)? # varargs ellipsis?\n )\n (\\)) # a close parenthesis\n )?\n ",beginCaptures:{"1":{name:"keyword.control.import.define.c"},"2":{name:"entity.name.function.preprocessor.c"},"4":{name:"punctuation.definition.parameters.c"},"5":{name:"variable.parameter.preprocessor.c"},"7":{name:"punctuation.separator.parameters.c"},"8":{name:"punctuation.definition.parameters.c"}},end:"(?=(?://|/\\*))|$",name:"meta.preprocessor.macro.c",patterns:[{match:"(?>\\\\\\s*\\n)",name:"punctuation.separator.continuation.c"},{include:"$base"}]},{begin:"^\\s*#\\s*(error|warning)\\b",captures:{"1":{name:"keyword.control.import.error.c"}},end:"$",name:"meta.preprocessor.diagnostic.c",patterns:[{match:"(?>\\\\\\s*\\n)",name:"punctuation.separator.continuation.c"}]},{begin:"^\\s*#\\s*(include|import)\\b\\s+",captures:{"1":{name:"keyword.control.import.include.c"}},end:"(?=(?://|/\\*))|$",name:"meta.preprocessor.c.include",patterns:[{match:"(?>\\\\\\s*\\n)",name:"punctuation.separator.continuation.c"},{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.c"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.c"}},name:"string.quoted.double.include.c"},{begin:"<",beginCaptures:{"0":{name:"punctuation.definition.string.begin.c"}},end:">",endCaptures:{"0":{name:"punctuation.definition.string.end.c"}},name:"string.quoted.other.lt-gt.include.c"}]},{begin:"^\\s*#\\s*(define|defined|elif|else|if|ifdef|ifndef|line|pragma|undef|endif)\\b",captures:{"1":{name:"keyword.control.import.c"}},end:"(?=(?://|/\\*))|$",name:"meta.preprocessor.c",patterns:[{match:"(?>\\\\\\s*\\n)",name:"punctuation.separator.continuation.c"}]},{begin:"(^[ \\t]+)?(?=#)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.riscv"}},end:"(?!\\G)",patterns:[{begin:"#|(\\/\\/)",beginCaptures:{"0":{name:"punctuation.definition.comment.riscv"}},end:"\\n",name:"comment.line.number-sign.riscv"}]}],scopeName:"source.riscv",uuid:"003223C7-B8D1-4B7F-BF91-5E0062B19B53"}; + +export { riscv_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/rst.tmLanguage-ef4c4c8c.mjs b/docs/shiki/dist/languages/rst.tmLanguage-ef4c4c8c.mjs new file mode 100644 index 00000000..45ea7c70 --- /dev/null +++ b/docs/shiki/dist/languages/rst.tmLanguage-ef4c4c8c.mjs @@ -0,0 +1,3 @@ +var rst_tmLanguage = {information_for_contributors:["This file has been converted from https://github.com/trond-snekvik/vscode-rst/blob/master/syntaxes/rst.tmLanguage.json","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."],version:"https://github.com/trond-snekvik/vscode-rst/commit/4f6f1a8f94e0d16e30dddc9c4e359d062b715408",scopeName:"source.rst",patterns:[{include:"#body"}],repository:{body:{patterns:[{include:"#title"},{include:"#inline-markup"},{include:"#anchor"},{include:"#line-block"},{include:"#replace-include"},{include:"#footnote"},{include:"#substitution"},{include:"#blocks"},{include:"#table"},{include:"#simple-table"},{include:"#options-list"}]},title:{match:"^(\\*{3,}|#{3,}|\\={3,}|~{3,}|\\+{3,}|-{3,}|`{3,}|\\^{3,}|:{3,}|\"{3,}|_{3,}|'{3,})$",name:"markup.heading"},"inline-markup":{patterns:[{include:"#escaped"},{include:"#ignore"},{include:"#ref"},{include:"#literal"},{include:"#monospaced"},{include:"#citation"},{include:"#bold"},{include:"#italic"},{include:"#list"},{include:"#macro"},{include:"#reference"},{include:"#footnote-ref"}]},ignore:{patterns:[{match:"'[`*]+'"},{match:"<[`*]+>"},{match:"{[`*]+}"},{match:"\\([`*]+\\)"},{match:"\\[[`*]+\\]"},{match:"\"[`*]+\""}]},table:{begin:"^\\s*\\+[=+-]+\\+\\s*$",end:"^(?![+|])",beginCaptures:{"0":{name:"keyword.control.table"}},patterns:[{match:"[=+|-]",name:"keyword.control.table"}]},"simple-table":{match:"^[=\\s]+$",name:"keyword.control.table"},ref:{begin:"(:ref:)`",end:"`|^\\s*$",name:"entity.name.tag",beginCaptures:{"1":{name:"keyword.control"}},patterns:[{match:"<.*?>",name:"markup.underline.link"}]},reference:{match:"[\\w-]*[a-zA-Z\\d-]__?\\b",name:"entity.name.tag"},macro:{match:"\\|[^\\|]+\\|",name:"entity.name.tag"},literal:{match:"(:\\S+:)(`.*?`\\\\?)",captures:{"1":{name:"keyword.control"},"2":{name:"entity.name.tag"}}},monospaced:{begin:"(?<=[\\s\"'(\\[{<]|^)``[^\\s`]",end:"``|^\\s*$",name:"string.interpolated"},citation:{begin:"(?<=[\\s\"'(\\[{<]|^)`[^\\s`]",end:"`_{,2}|^\\s*$",name:"entity.name.tag",applyEndPatternLast:0},bold:{begin:"(?<=[\\s\"'(\\[{<]|^)\\*{2}[^\\s*]",end:"\\*{2}|^\\s*$",name:"markup.bold"},italic:{begin:"(?<=[\\s\"'(\\[{<]|^)\\*[^\\s*]",end:"\\*|^\\s*$",name:"markup.italic"},escaped:{match:"\\\\.",name:"constant.character.escape"},list:{match:"^\\s*(\\d+\\.|\\* -|[a-zA-Z#]\\.|[iIvVxXmMcC]+\\.|\\(\\d+\\)|\\d+\\)|[*+-])\\s+",name:"keyword.control"},"line-block":{match:"^\\|\\s+",name:"keyword.control"},"raw-html":{begin:"^(\\s*)(\\.{2}\\s+raw\\s*::)\\s+(html)\\s*$","while":"^\\1(?=\\s)|^\\s*$",beginCaptures:{"2":{name:"keyword.control"},"3":{name:"variable.parameter.html"}},patterns:[{include:"#block-param"},{include:"text.html.derivative"}]},anchor:{match:"^\\.{2}\\s+(_[^:]+:)\\s*",name:"entity.name.tag.anchor"},"replace-include":{match:"^\\s*(\\.{2})\\s+(\\|[^\\|]+\\|)\\s+(replace::)",captures:{"1":{name:"keyword.control"},"2":{name:"entity.name.tag"},"3":{name:"keyword.control"}}},footnote:{match:"^\\s*\\.{2}\\s+\\[(?:[\\w\\.-]+|[#*]|#\\w+)\\]\\s+",name:"entity.name.tag"},"footnote-ref":{match:"\\[(?:[\\w\\.-]+|[#*])\\]_",name:"entity.name.tag"},substitution:{match:"^\\.{2}\\s*\\|([^|]+)\\|",name:"entity.name.tag"},"options-list":{match:"^((?:-\\w|--[\\w-]+|/\\w+)(?:,? ?[\\w-]+)*)(?: |\\t|$)",name:"variable.parameter"},blocks:{patterns:[{include:"#domains"},{include:"#doctest"},{include:"#code-block-cpp"},{include:"#code-block-py"},{include:"#code-block-console"},{include:"#code-block-javascript"},{include:"#code-block-yaml"},{include:"#code-block-cmake"},{include:"#code-block-kconfig"},{include:"#code-block-ruby"},{include:"#code-block-dts"},{include:"#code-block"},{include:"#doctest-block"},{include:"#raw-html"},{include:"#block"},{include:"#literal-block"},{include:"#block-comment"}]},"block-comment":{begin:"^(\\s*)\\.{2}(\\s+|$)",end:"^(?=\\S)|^\\s*$",name:"comment.block",patterns:[{begin:"^\\s{3,}(?=\\S)","while":"^\\s{3}.*|^\\s*$",name:"comment.block"}]},"literal-block":{begin:"^(\\s*)(.*)(::)\\s*$","while":"^\\1(?=\\s)|^\\s*$",beginCaptures:{"2":{patterns:[{include:"#inline-markup"}]},"3":{name:"keyword.control"}}},block:{begin:"^(\\s*)(\\.{2}\\s+\\S+::)(.*)","while":"^\\1(?=\\s)|^\\s*$",beginCaptures:{"2":{name:"keyword.control"},"3":{name:"variable"}},patterns:[{include:"#block-param"},{include:"#body"}]},"block-param":{patterns:[{match:"(:param\\s+(.+?):)(?:\\s|$)",captures:{"1":{name:"keyword.control"},"2":{name:"variable.parameter"}}},{match:"(:.+?:)(?:$|\\s+(.*))",captures:{"1":{name:"keyword.control"},"2":{patterns:[{match:"\\b(0x[a-fA-F\\d]+|\\d+)\\b",name:"constant.numeric"},{include:"#inline-markup"}]}}}]},domains:{patterns:[{include:"#domain-cpp"},{include:"#domain-py"},{include:"#domain-auto"},{include:"#domain-js"}]},"domain-cpp":{begin:"^(\\s*)(\\.{2}\\s+(?:cpp|c):(?:class|struct|function|member|var|type|enum|enum-struct|enum-class|enumerator|union|concept)::)\\s*(?:(@\\w+)|(.*))","while":"^\\1(?=\\s)|^\\s*$",beginCaptures:{"2":{name:"keyword.control"},"3":{name:"entity.name.tag"},"4":{patterns:[{include:"source.cpp"}]}},patterns:[{include:"#block-param"},{include:"#body"}]},"domain-py":{begin:"^(\\s*)(\\.{2}\\s+py:(?:module|function|data|exception|class|attribute|property|method|staticmethod|classmethod|decorator|decoratormethod)::)\\s*(.*)","while":"^\\1(?=\\s)|^\\s*$",beginCaptures:{"2":{name:"keyword.control"},"3":{patterns:[{include:"source.python"}]}},patterns:[{include:"#block-param"},{include:"#body"}]},"domain-auto":{begin:"^(\\s*)(\\.{2}\\s+auto(?:class|module|exception|function|decorator|data|method|attribute|property)::)\\s*(.*)","while":"^\\1(?=\\s)|^\\s*$",beginCaptures:{"2":{name:"keyword.control.py"},"3":{patterns:[{include:"source.python"}]}},patterns:[{include:"#block-param"},{include:"#body"}]},"domain-js":{begin:"^(\\s*)(\\.{2}\\s+js:\\w+::)\\s*(.*)",end:"^(?!\\1[ \\t]|$)",beginCaptures:{"2":{name:"keyword.control"},"3":{patterns:[{include:"source.js"}]}},patterns:[{include:"#block-param"},{include:"#body"}]},doctest:{begin:"^(>>>)\\s*(.*)",end:"^\\s*$",beginCaptures:{"1":{name:"keyword.control"},"2":{patterns:[{include:"source.python"}]}}},"code-block-cpp":{begin:"^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(c|c\\+\\+|cpp|C|C\\+\\+|CPP|Cpp)\\s*$","while":"^\\1(?=\\s)|^\\s*$",beginCaptures:{"2":{name:"keyword.control"},"4":{name:"variable.parameter.codeblock.cpp"}},patterns:[{include:"#block-param"},{include:"source.cpp"}]},"code-block-console":{begin:"^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(console|shell|bash)\\s*$","while":"^\\1(?=\\s)|^\\s*$",beginCaptures:{"2":{name:"keyword.control"},"4":{name:"variable.parameter.codeblock.console"}},patterns:[{include:"#block-param"},{include:"source.shell"}]},"code-block-py":{begin:"^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(python)\\s*$","while":"^\\1(?=\\s)|^\\s*$",beginCaptures:{"2":{name:"keyword.control"},"4":{name:"variable.parameter.codeblock.py"}},patterns:[{include:"#block-param"},{include:"source.python"}]},"code-block-javascript":{begin:"^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(javascript)\\s*$","while":"^\\1(?=\\s)|^\\s*$",beginCaptures:{"2":{name:"keyword.control"},"4":{name:"variable.parameter.codeblock.js"}},patterns:[{include:"#block-param"},{include:"source.js"}]},"code-block-yaml":{begin:"^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(ya?ml)\\s*$","while":"^\\1(?=\\s)|^\\s*$",beginCaptures:{"2":{name:"keyword.control"},"4":{name:"variable.parameter.codeblock.yaml"}},patterns:[{include:"#block-param"},{include:"source.yaml"}]},"code-block-cmake":{begin:"^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(cmake)\\s*$","while":"^\\1(?=\\s)|^\\s*$",beginCaptures:{"2":{name:"keyword.control"},"4":{name:"variable.parameter.codeblock.cmake"}},patterns:[{include:"#block-param"},{include:"source.cmake"}]},"code-block-kconfig":{begin:"^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*([kK]config)\\s*$","while":"^\\1(?=\\s)|^\\s*$",beginCaptures:{"2":{name:"keyword.control"},"4":{name:"variable.parameter.codeblock.kconfig"}},patterns:[{include:"#block-param"},{include:"source.kconfig"}]},"code-block-ruby":{begin:"^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(ruby)\\s*$","while":"^\\1(?=\\s)|^\\s*$",beginCaptures:{"2":{name:"keyword.control"},"4":{name:"variable.parameter.codeblock.ruby"}},patterns:[{include:"#block-param"},{include:"source.ruby"}]},"code-block-dts":{begin:"^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(dts|DTS|devicetree)\\s*$","while":"^\\1(?=\\s)|^\\s*$",beginCaptures:{"2":{name:"keyword.control"},"4":{name:"variable.parameter.codeblock.dts"}},patterns:[{include:"#block-param"},{include:"source.dts"}]},"code-block":{begin:"^(\\s*)(\\.{2}\\s+(code|code-block)::)","while":"^\\1(?=\\s)|^\\s*$",beginCaptures:{"2":{name:"keyword.control"}},patterns:[{include:"#block-param"}]},"doctest-block":{begin:"^(\\s*)(\\.{2}\\s+doctest::)\\s*$","while":"^\\1(?=\\s)|^\\s*$",beginCaptures:{"2":{name:"keyword.control"}},patterns:[{include:"#block-param"},{include:"source.python"}]}},name:"rst"}; + +export { rst_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/ruby.tmLanguage-15dc1407.mjs b/docs/shiki/dist/languages/ruby.tmLanguage-15dc1407.mjs new file mode 100644 index 00000000..634c838d --- /dev/null +++ b/docs/shiki/dist/languages/ruby.tmLanguage-15dc1407.mjs @@ -0,0 +1,3 @@ +var ruby_tmLanguage = {information_for_contributors:["This file has been converted from https://github.com/textmate/ruby.tmbundle/blob/master/Syntaxes/Ruby.plist","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."],version:"https://github.com/textmate/ruby.tmbundle/commit/efcb8941c701343f1b2e9fb105c678152fea6892",name:"ruby",scopeName:"source.ruby",comment:"\n\tTODO: unresolved issues\n\n\ttext:\n\t\"p <<end\n\tprint me!\n\tend\"\n\tsymptoms:\n\tnot recognized as a heredoc\n\tsolution:\n\tthere is no way to distinguish perfectly between the << operator and the start\n\tof a heredoc. Currently, we require assignment to recognize a heredoc. More\n\trefinement is possible.\n\t• Heredocs with indented terminators (<<-) are always distinguishable, however.\n\t• Nested heredocs are not really supportable at present\n\n\ttext:\n\tprint <<-'THERE' \n\tThis is single quoted. \n\tThe above used #{Time.now} \n\tTHERE \n\tsymtoms:\n\tFrom Programming Ruby p306; should be a non-interpolated heredoc.\n\t\n text:\n val?(a):p(b)\n val?'a':'b'\n symptoms:\n ':p' is recognized as a symbol.. its 2 things ':' and 'p'.\n :'b' has same problem.\n solution:\n ternary operator rule, precedence stuff, symbol rule.\n but also consider 'a.b?(:c)' ??\n",patterns:[{captures:{"1":{name:"keyword.control.class.ruby"},"2":{name:"entity.name.type.class.ruby"},"3":{name:"keyword.operator.other.ruby"},"4":{name:"entity.other.inherited-class.ruby"},"5":{name:"keyword.operator.other.ruby"},"6":{name:"variable.other.object.ruby"}},match:"^\\s*(class)\\s+(?:([.a-zA-Z0-9_:]+)(?:\\s*(<)\\s*([.a-zA-Z0-9_:]+))?|(<<)\\s*([.a-zA-Z0-9_:]+))",name:"meta.class.ruby"},{captures:{"1":{name:"keyword.control.module.ruby"},"2":{name:"entity.name.type.module.ruby"},"3":{name:"entity.other.inherited-class.module.first.ruby"},"4":{name:"punctuation.separator.inheritance.ruby"},"5":{name:"entity.other.inherited-class.module.second.ruby"},"6":{name:"punctuation.separator.inheritance.ruby"},"7":{name:"entity.other.inherited-class.module.third.ruby"},"8":{name:"punctuation.separator.inheritance.ruby"}},match:"^\\s*(module)\\s+(([A-Z]\\w*(::))?([A-Z]\\w*(::))?([A-Z]\\w*(::))*[A-Z]\\w*)",name:"meta.module.ruby"},{comment:"else if is a common mistake carried over from other languages. it works if you put in a second end, but it’s never what you want.",match:"(?<!\\.)\\belse(\\s)+if\\b",name:"invalid.deprecated.ruby"},{captures:{"1":{name:"punctuation.definition.constant.ruby"}},comment:"symbols as hash key (1.9 syntax)",match:"(?>[a-zA-Z_]\\w*(?>[?!])?)(:)(?!:)",name:"constant.other.symbol.hashkey.ruby"},{captures:{"1":{name:"punctuation.definition.constant.ruby"}},comment:"symbols as hash key (1.8 syntax)",match:"(?<!:)(:)(?>[a-zA-Z_]\\w*(?>[?!])?)(?=\\s*=>)",name:"constant.other.symbol.hashkey.ruby"},{comment:"everything being a reserved word, not a value and needing a 'end' is a..",match:"(?<!\\.)\\b(BEGIN|begin|case|class|else|elsif|END|end|ensure|for|if|in|module|rescue|then|unless|until|when|while)\\b(?![?!])",name:"keyword.control.ruby"},{comment:"contextual smart pair support for block parameters",match:"(?<!\\.)\\bdo\\b",name:"keyword.control.start-block.ruby"},{comment:"contextual smart pair support",match:"(?<=\\{)(\\s+)",name:"meta.syntax.ruby.start-block"},{match:"(?<!\\.)\\b(alias|alias_method|block_given[?]|break|defined[?]|iterator[?]|next|redo|retry|return|super|undef|yield)(\\b|(?<=[?]))(?![?!])",name:"keyword.control.pseudo-method.ruby"},{match:"\\b(nil|true|false)\\b(?![?!])",name:"constant.language.ruby"},{match:"\\b(__(dir|FILE|LINE)__)\\b(?![?!])",name:"variable.language.ruby"},{begin:"^__END__\\n",captures:{"0":{name:"string.unquoted.program-block.ruby"}},comment:"__END__ marker",contentName:"text.plain",end:"(?=not)impossible",patterns:[{begin:"(?=<?xml|<(?i:html\\b)|!DOCTYPE (?i:html\\b))",end:"(?=not)impossible",name:"text.html.embedded.ruby",patterns:[{include:"text.html.basic"}]}]},{match:"\\b(self)\\b(?![?!])",name:"variable.language.self.ruby"},{comment:" everything being a method but having a special function is a..",match:"\\b(initialize|new|loop|include|extend|prepend|fail|raise|attr_reader|attr_writer|attr_accessor|attr|catch|throw|private|private_class_method|module_function|public|public_class_method|protected|refine|using)\\b(?![?!])",name:"keyword.other.special-method.ruby"},{begin:"\\b(?<!\\.|::)(require|require_relative)\\b",captures:{"1":{name:"keyword.other.special-method.ruby"}},end:"$|(?=#|\\})",name:"meta.require.ruby",patterns:[{include:"$self"}]},{captures:{"1":{name:"punctuation.definition.variable.ruby"}},match:"(@)[a-zA-Z_]\\w*",name:"variable.other.readwrite.instance.ruby"},{captures:{"1":{name:"punctuation.definition.variable.ruby"}},match:"(@@)[a-zA-Z_]\\w*",name:"variable.other.readwrite.class.ruby"},{captures:{"1":{name:"punctuation.definition.variable.ruby"}},match:"(\\$)[a-zA-Z_]\\w*",name:"variable.other.readwrite.global.ruby"},{captures:{"1":{name:"punctuation.definition.variable.ruby"}},match:"(\\$)(!|@|&|`|'|\\+|\\d+|~|=|/|\\\\|,|;|\\.|<|>|_|\\*|\\$|\\?|:|\"|-[0adFiIlpvw])",name:"variable.other.readwrite.global.pre-defined.ruby"},{begin:"\\b(ENV)\\[",beginCaptures:{"1":{name:"variable.other.constant.ruby"}},end:"\\]",name:"meta.environment-variable.ruby",patterns:[{include:"$self"}]},{match:"\\b[A-Z]\\w*(?=((\\.|::)[A-Za-z]|\\[))",name:"support.class.ruby"},{match:"\\b(abort|at_exit|autoload[?]?|binding|callcc|caller|caller_locations|chomp|chop|eval|exec|exit|exit!|fork|format|gets|global_variables|gsub|lambda|load|local_variables|open|p|print|printf|proc|putc|puts|rand|readline|readlines|select|set_trace_func|sleep|spawn|sprintf|srand|sub|syscall|system|test|trace_var|trap|untrace_var|warn)(\\b|(?<=[?!]))(?![?!])",name:"support.function.kernel.ruby"},{match:"\\b[A-Z]\\w*\\b",name:"variable.other.constant.ruby"},{begin:"(?x)\n\t\t\t (?=def\\b) # an optimization to help Oniguruma fail fast\n\t\t\t (?<=^|\\s)(def)\\s+ # the def keyword\n\t\t\t ( (?>[a-zA-Z_]\\w*(?>\\.|::))? # a method name prefix\n\t\t\t (?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))? # the method name\n\t\t\t |===?|!=|!~|>[>=]?|<=>|<[<=]?|[%&`/\\|^]|\\*\\*?|=?~|[-+]@?|\\[\\]=?) ) # …or an operator method\n\t\t\t \\s*(\\() # the openning parenthesis for arguments\n\t\t\t ",beginCaptures:{"1":{name:"keyword.control.def.ruby"},"2":{name:"entity.name.function.ruby"},"3":{name:"punctuation.definition.parameters.ruby"}},comment:"the method pattern comes from the symbol pattern, see there for a explaination",end:"\\)",endCaptures:{"0":{name:"punctuation.definition.parameters.ruby"}},name:"meta.function.method.with-arguments.ruby",patterns:[{begin:"(?=[&*_a-zA-Z])",end:"(?=[,)])",patterns:[{captures:{"1":{name:"storage.type.variable.ruby"},"2":{name:"constant.other.symbol.hashkey.parameter.function.ruby"},"3":{name:"punctuation.definition.constant.ruby"},"4":{name:"variable.parameter.function.ruby"}},match:"\\G([&*]?)(?:([_a-zA-Z]\\w*(:))|([_a-zA-Z]\\w*))"},{include:"#parens"},{include:"#braces"},{include:"$self"}]}],repository:{braces:{begin:"\\{",beginCaptures:{"0":{name:"punctuation.section.function.begin.ruby"}},end:"\\}",endCaptures:{"0":{name:"punctuation.section.function.end.ruby"}},patterns:[{include:"#parens"},{include:"#braces"},{include:"$self"}]},parens:{begin:"\\(",beginCaptures:{"0":{name:"punctuation.section.function.begin.ruby"}},end:"\\)",endCaptures:{"0":{name:"punctuation.section.function.end.ruby"}},patterns:[{include:"#parens"},{include:"#braces"},{include:"$self"}]}}},{begin:"(?x)\n\t\t\t (?=def\\b) # an optimization to help Oniguruma fail fast\n\t\t\t (?<=^|\\s)(def)\\s+ # the def keyword\n\t\t\t ( (?>[a-zA-Z_]\\w*(?>\\.|::))? # a method name prefix\n\t\t\t (?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))? # the method name\n\t\t\t |===?|!=|!~|>[>=]?|<=>|<[<=]?|[%&`/\\|^]|\\*\\*?|=?~|[-+]@?|\\[\\]=?) ) # …or an operator method\n\t\t\t [ \\t] # the space separating the arguments\n\t\t\t (?=[ \\t]*[^\\s#;]) # make sure arguments and not a comment follow\n\t\t\t ",beginCaptures:{"1":{name:"keyword.control.def.ruby"},"2":{name:"entity.name.function.ruby"}},comment:"same as the previous rule, but without parentheses around the arguments",end:"$",name:"meta.function.method.with-arguments.ruby",patterns:[{begin:"(?![\\s,])",end:"(?=,|$)",patterns:[{captures:{"1":{name:"storage.type.variable.ruby"},"2":{name:"constant.other.symbol.hashkey.parameter.function.ruby"},"3":{name:"punctuation.definition.constant.ruby"},"4":{name:"variable.parameter.function.ruby"}},match:"\\G([&*]?)(?:([_a-zA-Z]\\w*(:))|([_a-zA-Z]\\w*))",name:"variable.parameter.function.ruby"},{include:"$self"}]}]},{captures:{"1":{name:"keyword.control.def.ruby"},"3":{name:"entity.name.function.ruby"}},comment:" the optional name is just to catch the def also without a method-name",match:"(?x)\n\t\t\t (?=def\\b) # an optimization to help Oniguruma fail fast\n\t\t\t (?<=^|\\s)(def)\\b # the def keyword\n\t\t\t ( \\s+ # an optional group of whitespace followed by…\n\t\t\t ( (?>[a-zA-Z_]\\w*(?>\\.|::))? # a method name prefix\n\t\t\t (?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))? # the method name\n\t\t\t |===?|!=|!~|>[>=]?|<=>|<[<=]?|[%&`/\\|^]|\\*\\*?|=?~|[-+]@?|\\[\\]=?) ) )? # …or an operator method\n\t\t\t ",name:"meta.function.method.without-arguments.ruby"},{match:"\\b\\d(?>_?\\d)*(?=\\.\\d|[eE])(\\.\\d(?>_?\\d)*)?([eE][-+]?\\d(?>_?\\d)*)?r?i?\\b",name:"constant.numeric.float.ruby"},{match:"\\b(0|(0[dD]\\d|[1-9])(?>_?\\d)*)r?i?\\b",name:"constant.numeric.integer.ruby"},{match:"\\b0[xX]\\h(?>_?\\h)*r?i?\\b",name:"constant.numeric.hex.ruby"},{match:"\\b0[bB][01](?>_?[01])*r?i?\\b",name:"constant.numeric.binary.ruby"},{match:"\\b0([oO]?[0-7](?>_?[0-7])*)?r?i?\\b",name:"constant.numeric.octal.ruby"},{begin:":'",captures:{"0":{name:"punctuation.definition.constant.ruby"}},end:"'",name:"constant.other.symbol.single-quoted.ruby",patterns:[{match:"\\\\['\\\\]",name:"constant.character.escape.ruby"}]},{begin:":\"",captures:{"0":{name:"punctuation.definition.constant.ruby"}},end:"\"",name:"constant.other.symbol.double-quoted.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{comment:"Needs higher precedence than regular expressions.",match:"(?<!\\()/=",name:"keyword.operator.assignment.augmented.ruby"},{begin:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},comment:"single quoted string (does not allow interpolation)",end:"'",endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.single.ruby",patterns:[{match:"\\\\'|\\\\\\\\",name:"constant.character.escape.ruby"}]},{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},comment:"double quoted string (allows for interpolation)",end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.double.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:"`",beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},comment:"execute string (allows for interpolation)",end:"`",endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.interpolated.ruby",patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{include:"#percent_literals"},{begin:"(?x)\n\t\t\t (?:\n\t\t\t ^ # beginning of line\n\t\t\t | (?<= # or look-behind on:\n\t\t\t [=>~(?:\\[,|&;]\n\t\t\t | [\\s;]if\\s\t\t\t# keywords\n\t\t\t | [\\s;]elsif\\s\n\t\t\t | [\\s;]while\\s\n\t\t\t | [\\s;]unless\\s\n\t\t\t | [\\s;]when\\s\n\t\t\t | [\\s;]assert_match\\s\n\t\t\t | [\\s;]or\\s\t\t\t# boolean opperators\n\t\t\t | [\\s;]and\\s\n\t\t\t | [\\s;]not\\s\n\t\t\t | [\\s.]index\\s\t\t\t# methods\n\t\t\t | [\\s.]scan\\s\n\t\t\t | [\\s.]sub\\s\n\t\t\t | [\\s.]sub!\\s\n\t\t\t | [\\s.]gsub\\s\n\t\t\t | [\\s.]gsub!\\s\n\t\t\t | [\\s.]match\\s\n\t\t\t )\n\t\t\t | (?<= # or a look-behind with line anchor:\n\t\t\t ^when\\s # duplication necessary due to limits of regex\n\t\t\t | ^if\\s\n\t\t\t | ^elsif\\s\n\t\t\t | ^while\\s\n\t\t\t | ^unless\\s\n\t\t\t )\n\t\t\t )\n\t\t\t \\s*((/))(?![*+{}?])\n\t\t\t",captures:{"1":{name:"string.regexp.classic.ruby"},"2":{name:"punctuation.definition.string.ruby"}},comment:"regular expressions (normal)\n\t\t\twe only start a regexp if the character before it (excluding whitespace)\n\t\t\tis what we think is before a regexp\n\t\t\t",contentName:"string.regexp.classic.ruby",end:"((/[eimnosux]*))",patterns:[{include:"#regex_sub"}]},{captures:{"1":{name:"punctuation.definition.constant.ruby"}},comment:"symbols",match:"(?<!:)(:)(?>[a-zA-Z_]\\w*(?>[?!]|=(?![>=]))?|===?|>[>=]?|<=>|<[<=]?|[%&`/\\|]|\\*\\*?|=?~|[-+]@?|\\[\\]=?|(@@?|\\$)[a-zA-Z_]\\w*)",name:"constant.other.symbol.ruby"},{begin:"^=begin",captures:{"0":{name:"punctuation.definition.comment.ruby"}},comment:"multiline comments",end:"^=end",name:"comment.block.documentation.ruby"},{begin:"(^[ \\t]+)?(?=#)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.ruby"}},end:"(?!\\G)",patterns:[{begin:"#",beginCaptures:{"0":{name:"punctuation.definition.comment.ruby"}},end:"\\n",name:"comment.line.number-sign.ruby"}]},{comment:"\n\t\t\tmatches questionmark-letters.\n\n\t\t\texamples (1st alternation = hex):\n\t\t\t?\\x1 ?\\x61\n\n\t\t\texamples (2nd alternation = octal):\n\t\t\t?\\0 ?\\07 ?\\017\n\n\t\t\texamples (3rd alternation = escaped):\n\t\t\t?\\n ?\\b\n\n\t\t\texamples (4th alternation = meta-ctrl):\n\t\t\t?\\C-a ?\\M-a ?\\C-\\M-\\C-\\M-a\n\n\t\t\texamples (4th alternation = normal):\n\t\t\t?a ?A ?0 \n\t\t\t?* ?\" ?( \n\t\t\t?. ?#\n\t\t\t\n\t\t\t\n\t\t\tthe negative lookbehind prevents against matching\n\t\t\tp(42.tainted?)\n\t\t\t",match:"(?<!\\w)\\?(\\\\(x\\h{1,2}(?!\\h)\\b|0[0-7]{0,2}(?![0-7])\\b|[^x0MC])|(\\\\[MC]-)+\\w|[^\\s\\\\])",name:"constant.numeric.ruby"},{begin:"(?=(?><<[-~](\"?)((?:[_\\w]+_|)HTML)\\b\\1))",comment:"Heredoc with embedded html",end:"(?!\\G)",name:"meta.embedded.block.html",patterns:[{begin:"(?><<[-~](\"?)((?:[_\\w]+_|)HTML)\\b\\1)",beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"text.html",end:"\\s*\\2$\\n?",endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"text.html.basic"},{include:"#escaped_char"}]}]},{begin:"(?=(?><<[-~](\"?)((?:[_\\w]+_|)XML)\\b\\1))",comment:"Heredoc with embedded xml",end:"(?!\\G)",name:"meta.embedded.block.xml",patterns:[{begin:"(?><<[-~](\"?)((?:[_\\w]+_|)XML)\\b\\1)",beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"text.xml",end:"\\s*\\2$\\n?",endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"text.xml"},{include:"#escaped_char"}]}]},{begin:"(?=(?><<[-~](\"?)((?:[_\\w]+_|)SQL)\\b\\1))",comment:"Heredoc with embedded sql",end:"(?!\\G)",name:"meta.embedded.block.sql",patterns:[{begin:"(?><<[-~](\"?)((?:[_\\w]+_|)SQL)\\b\\1)",beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.sql",end:"\\s*\\2$\\n?",endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.sql"},{include:"#escaped_char"}]}]},{begin:"(?=(?><<[-~](\"?)((?:[_\\w]+_|)CSS)\\b\\1))",comment:"Heredoc with embedded css",end:"(?!\\G)",name:"meta.embedded.block.css",patterns:[{begin:"(?><<[-~](\"?)((?:[_\\w]+_|)CSS)\\b\\1)",beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.css",end:"\\s*\\2$\\n?",endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.css"},{include:"#escaped_char"}]}]},{begin:"(?=(?><<[-~](\"?)((?:[_\\w]+_|)CPP)\\b\\1))",comment:"Heredoc with embedded c++",end:"(?!\\G)",name:"meta.embedded.block.c++",patterns:[{begin:"(?><<[-~](\"?)((?:[_\\w]+_|)CPP)\\b\\1)",beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.c++",end:"\\s*\\2$\\n?",endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.c++"},{include:"#escaped_char"}]}]},{begin:"(?=(?><<[-~](\"?)((?:[_\\w]+_|)C)\\b\\1))",comment:"Heredoc with embedded c",end:"(?!\\G)",name:"meta.embedded.block.c",patterns:[{begin:"(?><<[-~](\"?)((?:[_\\w]+_|)C)\\b\\1)",beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.c",end:"\\s*\\2$\\n?",endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.c"},{include:"#escaped_char"}]}]},{begin:"(?=(?><<[-~](\"?)((?:[_\\w]+_|)(?:JS|JAVASCRIPT))\\b\\1))",comment:"Heredoc with embedded javascript",end:"(?!\\G)",name:"meta.embedded.block.js",patterns:[{begin:"(?><<[-~](\"?)((?:[_\\w]+_|)(?:JS|JAVASCRIPT))\\b\\1)",beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.js",end:"\\s*\\2$\\n?",endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.js"},{include:"#escaped_char"}]}]},{begin:"(?=(?><<[-~](\"?)((?:[_\\w]+_|)JQUERY)\\b\\1))",comment:"Heredoc with embedded jQuery javascript",end:"(?!\\G)",name:"meta.embedded.block.js.jquery",patterns:[{begin:"(?><<[-~](\"?)((?:[_\\w]+_|)JQUERY)\\b\\1)",beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.js.jquery",end:"\\s*\\2$\\n?",endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.js.jquery"},{include:"#escaped_char"}]}]},{begin:"(?=(?><<[-~](\"?)((?:[_\\w]+_|)(?:SH|SHELL))\\b\\1))",comment:"Heredoc with embedded shell",end:"(?!\\G)",name:"meta.embedded.block.shell",patterns:[{begin:"(?><<[-~](\"?)((?:[_\\w]+_|)(?:SH|SHELL))\\b\\1)",beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.shell",end:"\\s*\\2$\\n?",endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.shell"},{include:"#escaped_char"}]}]},{begin:"(?=(?><<[-~](\"?)((?:[_\\w]+_|)LUA)\\b\\1))",comment:"Heredoc with embedded lua",end:"(?!\\G)",name:"meta.embedded.block.lua",patterns:[{begin:"(?><<[-~](\"?)((?:[_\\w]+_|)LUA)\\b\\1)",beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.lua",end:"\\s*\\2$\\n?",endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.lua"},{include:"#escaped_char"}]}]},{begin:"(?=(?><<[-~](\"?)((?:[_\\w]+_|)RUBY)\\b\\1))",comment:"Heredoc with embedded ruby",end:"(?!\\G)",name:"meta.embedded.block.ruby",patterns:[{begin:"(?><<[-~](\"?)((?:[_\\w]+_|)RUBY)\\b\\1)",beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},contentName:"source.ruby",end:"\\s*\\2$\\n?",endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"source.ruby"},{include:"#escaped_char"}]}]},{begin:"(?>=\\s*<<(\\w+))",beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:"^\\1$",endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:"(?><<[-~](\\w+))",beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},comment:"heredoc with indented terminator",end:"\\s*\\1$",endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.unquoted.heredoc.ruby",patterns:[{include:"#heredoc"},{include:"#interpolated_ruby"},{include:"#escaped_char"}]},{begin:"(?<=\\{|do|\\{\\s|do\\s)(\\|)",captures:{"1":{name:"punctuation.separator.arguments.ruby"}},end:"(?<!\\|)(\\|)(?!\\|)",patterns:[{include:"$self"},{match:"[_a-zA-Z][_a-zA-Z0-9]*",name:"variable.other.block.ruby"},{match:",",name:"punctuation.separator.variable.ruby"}]},{match:"=>",name:"punctuation.separator.key-value"},{match:"->",name:"support.function.kernel.lambda.ruby"},{match:"<<=|%=|&{1,2}=|\\*=|\\*\\*=|\\+=|-=|\\^=|\\|{1,2}=|<<",name:"keyword.operator.assignment.augmented.ruby"},{match:"<=>|<(?!<|=)|>(?!<|=|>)|<=|>=|===|==|=~|!=|!~|(?<=[ \\t])\\?",name:"keyword.operator.comparison.ruby"},{match:"(?<!\\.)\\b(and|not|or)\\b(?![?!])",name:"keyword.operator.logical.ruby"},{comment:"Make sure this goes after assignment and comparison",match:"(?<=^|[ \\t])!|&&|\\|\\||\\^",name:"keyword.operator.logical.ruby"},{captures:{"1":{name:"punctuation.separator.method.ruby"}},comment:"Safe navigation operator - Added in 2.3",match:"(&\\.)\\s*(?![A-Z])"},{match:"(%|&|\\*\\*|\\*|\\+|-|/)",name:"keyword.operator.arithmetic.ruby"},{match:"=",name:"keyword.operator.assignment.ruby"},{match:"\\||~|>>",name:"keyword.operator.other.ruby"},{match:";",name:"punctuation.separator.statement.ruby"},{match:",",name:"punctuation.separator.object.ruby"},{captures:{"1":{name:"punctuation.separator.namespace.ruby"}},comment:"Mark as namespace separator if double colons followed by capital letter",match:"(::)\\s*(?=[A-Z])"},{captures:{"1":{name:"punctuation.separator.method.ruby"}},comment:"Mark as method separator if double colons not followed by capital letter",match:"(\\.|::)\\s*(?![A-Z])"},{comment:"Must come after method and constant separators to prefer double colons",match:":",name:"punctuation.separator.other.ruby"},{match:"\\{",name:"punctuation.section.scope.begin.ruby"},{match:"\\}",name:"punctuation.section.scope.end.ruby"},{match:"\\[",name:"punctuation.section.array.begin.ruby"},{match:"\\]",name:"punctuation.section.array.end.ruby"},{match:"\\(|\\)",name:"punctuation.section.function.ruby"}],repository:{escaped_char:{match:"\\\\(?:[0-7]{1,3}|x[\\da-fA-F]{1,2}|.)",name:"constant.character.escape.ruby"},heredoc:{begin:"^<<[-~]?\\w+",end:"$",patterns:[{include:"$self"}]},interpolated_ruby:{patterns:[{begin:"#\\{",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.ruby"}},contentName:"source.ruby",end:"(\\})",endCaptures:{"0":{name:"punctuation.section.embedded.end.ruby"},"1":{name:"source.ruby"}},name:"meta.embedded.line.ruby",patterns:[{include:"#nest_curly_and_self"},{include:"$self"}],repository:{nest_curly_and_self:{patterns:[{begin:"\\{",captures:{"0":{name:"punctuation.section.scope.ruby"}},end:"\\}",patterns:[{include:"#nest_curly_and_self"}]},{include:"$self"}]}}},{captures:{"1":{name:"punctuation.definition.variable.ruby"}},match:"(#@)[a-zA-Z_]\\w*",name:"variable.other.readwrite.instance.ruby"},{captures:{"1":{name:"punctuation.definition.variable.ruby"}},match:"(#@@)[a-zA-Z_]\\w*",name:"variable.other.readwrite.class.ruby"},{captures:{"1":{name:"punctuation.definition.variable.ruby"}},match:"(#\\$)[a-zA-Z_]\\w*",name:"variable.other.readwrite.global.ruby"}]},percent_literals:{patterns:[{begin:"%i(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"meta.array.symbol.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"},{include:"#symbol"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"},{include:"#symbol"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"},{include:"#symbol"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"},{include:"#symbol"}]},{include:"#symbol"}],repository:{angles:{patterns:[{captures:{"0":{name:"constant.character.escape.ruby"}},match:"\\\\<|\\\\>",name:"constant.other.symbol.ruby"},{begin:"<",captures:{"0":{name:"constant.other.symbol.ruby"}},end:">",patterns:[{include:"#angles"},{include:"#symbol"}]}]},braces:{patterns:[{captures:{"0":{name:"constant.character.escape.ruby"}},match:"\\\\\\{|\\\\\\}",name:"constant.other.symbol.ruby"},{begin:"\\{",captures:{"0":{name:"constant.other.symbol.ruby"}},end:"\\}",patterns:[{include:"#braces"},{include:"#symbol"}]}]},brackets:{patterns:[{captures:{"0":{name:"constant.character.escape.ruby"}},match:"\\\\\\[|\\\\\\]",name:"constant.other.symbol.ruby"},{begin:"\\[",captures:{"0":{name:"constant.other.symbol.ruby"}},end:"\\]",patterns:[{include:"#brackets"},{include:"#symbol"}]}]},parens:{patterns:[{captures:{"0":{name:"constant.character.escape.ruby"}},match:"\\\\\\(|\\\\\\)",name:"constant.other.symbol.ruby"},{begin:"\\(",captures:{"0":{name:"constant.other.symbol.ruby"}},end:"\\)",patterns:[{include:"#parens"},{include:"#symbol"}]}]},symbol:{patterns:[{captures:{"0":{name:"constant.character.escape.ruby"}},match:"\\\\\\\\|\\\\[ ]",name:"constant.other.symbol.ruby"},{match:"\\S\\w*",name:"constant.other.symbol.ruby"}]}}},{begin:"%I(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"meta.array.symbol.interpolated.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"},{include:"#symbol"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"},{include:"#symbol"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"},{include:"#symbol"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"},{include:"#symbol"}]},{include:"#symbol"}],repository:{angles:{patterns:[{begin:"<",captures:{"0":{name:"constant.other.symbol.ruby"}},end:">",patterns:[{include:"#angles"},{include:"#symbol"}]}]},braces:{patterns:[{begin:"\\{",captures:{"0":{name:"constant.other.symbol.ruby"}},end:"\\}",patterns:[{include:"#braces"},{include:"#symbol"}]}]},brackets:{patterns:[{begin:"\\[",captures:{"0":{name:"constant.other.symbol.ruby"}},end:"\\]",patterns:[{include:"#brackets"},{include:"#symbol"}]}]},parens:{patterns:[{begin:"\\(",captures:{"0":{name:"constant.other.symbol.ruby"}},end:"\\)",patterns:[{include:"#parens"},{include:"#symbol"}]}]},symbol:{patterns:[{begin:"(?=\\\\|#\\{)",end:"(?!\\G)",name:"constant.other.symbol.ruby",patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"}]},{match:"\\S\\w*",name:"constant.other.symbol.ruby"}]}}},{begin:"%q(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"}]}],repository:{angles:{patterns:[{match:"\\\\<|\\\\>|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"<",end:">",patterns:[{include:"#angles"}]}]},braces:{patterns:[{match:"\\\\\\{|\\\\\\}|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"\\{",end:"\\}",patterns:[{include:"#braces"}]}]},brackets:{patterns:[{match:"\\\\\\[|\\\\\\]|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"\\[",end:"\\]",patterns:[{include:"#brackets"}]}]},parens:{patterns:[{match:"\\\\\\(|\\\\\\)|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"\\(",end:"\\)",patterns:[{include:"#parens"}]}]}}},{begin:"%Q?(?:([(\\[{<])|([^\\w\\s=]|_))",beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.quoted.other.interpolated.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"}]},{include:"#escaped_char"},{include:"#interpolated_ruby"}],repository:{angles:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"<",end:">",patterns:[{include:"#angles"}]}]},braces:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"\\{",end:"\\}",patterns:[{include:"#braces"}]}]},brackets:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"\\[",end:"\\]",patterns:[{include:"#brackets"}]}]},parens:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"\\(",end:"\\)",patterns:[{include:"#parens"}]}]}}},{begin:"%r(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:"([)\\]}>]\\2|\\1\\2)[eimnosux]*",endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.regexp.percent.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"}]},{include:"#regex_sub"}],repository:{angles:{patterns:[{include:"#regex_sub"},{begin:"<",end:">",patterns:[{include:"#angles"}]}]},braces:{patterns:[{include:"#regex_sub"},{begin:"\\{",end:"\\}",patterns:[{include:"#braces"}]}]},brackets:{patterns:[{include:"#regex_sub"},{begin:"\\[",end:"\\]",patterns:[{include:"#brackets"}]}]},parens:{patterns:[{include:"#regex_sub"},{begin:"\\(",end:"\\)",patterns:[{include:"#parens"}]}]}}},{begin:"%s(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{"0":{name:"punctuation.definition.constant.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{"0":{name:"punctuation.definition.constant.end.ruby"}},name:"constant.other.symbol.percent.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"}]}],repository:{angles:{patterns:[{match:"\\\\<|\\\\>|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"<",end:">",patterns:[{include:"#angles"}]}]},braces:{patterns:[{match:"\\\\\\{|\\\\\\}|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"\\{",end:"\\}",patterns:[{include:"#braces"}]}]},brackets:{patterns:[{match:"\\\\\\[|\\\\\\]|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"\\[",end:"\\]",patterns:[{include:"#brackets"}]}]},parens:{patterns:[{match:"\\\\\\(|\\\\\\)|\\\\\\\\",name:"constant.character.escape.ruby"},{begin:"\\(",end:"\\)",patterns:[{include:"#parens"}]}]}}},{begin:"%w(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"meta.array.string.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"},{include:"#string"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"},{include:"#string"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"},{include:"#string"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"},{include:"#string"}]},{include:"#string"}],repository:{angles:{patterns:[{captures:{"0":{name:"constant.character.escape.ruby"}},match:"\\\\<|\\\\>",name:"string.other.ruby"},{begin:"<",captures:{"0":{name:"string.other.ruby"}},end:">",patterns:[{include:"#angles"},{include:"#string"}]}]},braces:{patterns:[{captures:{"0":{name:"constant.character.escape.ruby"}},match:"\\\\\\{|\\\\\\}",name:"string.other.ruby"},{begin:"\\{",captures:{"0":{name:"string.other.ruby"}},end:"\\}",patterns:[{include:"#braces"},{include:"#string"}]}]},brackets:{patterns:[{captures:{"0":{name:"constant.character.escape.ruby"}},match:"\\\\\\[|\\\\\\]",name:"string.other.ruby"},{begin:"\\[",captures:{"0":{name:"string.other.ruby"}},end:"\\]",patterns:[{include:"#brackets"},{include:"#string"}]}]},parens:{patterns:[{captures:{"0":{name:"constant.character.escape.ruby"}},match:"\\\\\\(|\\\\\\)",name:"string.other.ruby"},{begin:"\\(",captures:{"0":{name:"string.other.ruby"}},end:"\\)",patterns:[{include:"#parens"},{include:"#string"}]}]},string:{patterns:[{captures:{"0":{name:"constant.character.escape.ruby"}},match:"\\\\\\\\|\\\\[ ]",name:"string.other.ruby"},{match:"\\S\\w*",name:"string.other.ruby"}]}}},{begin:"%W(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{"0":{name:"punctuation.section.array.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{"0":{name:"punctuation.section.array.end.ruby"}},name:"meta.array.string.interpolated.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"},{include:"#string"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"},{include:"#string"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"},{include:"#string"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"},{include:"#string"}]},{include:"#string"}],repository:{angles:{patterns:[{begin:"<",captures:{"0":{name:"string.other.ruby"}},end:">",patterns:[{include:"#angles"},{include:"#string"}]}]},braces:{patterns:[{begin:"\\{",captures:{"0":{name:"string.other.ruby"}},end:"\\}",patterns:[{include:"#braces"},{include:"#string"}]}]},brackets:{patterns:[{begin:"\\[",captures:{"0":{name:"string.other.ruby"}},end:"\\]",patterns:[{include:"#brackets"},{include:"#string"}]}]},parens:{patterns:[{begin:"\\(",captures:{"0":{name:"string.other.ruby"}},end:"\\)",patterns:[{include:"#parens"},{include:"#string"}]}]},string:{patterns:[{begin:"(?=\\\\|#\\{)",end:"(?!\\G)",name:"string.other.ruby",patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"}]},{match:"\\S\\w*",name:"string.other.ruby"}]}}},{begin:"%x(?:([(\\[{<])|([^\\w\\s]|_))",beginCaptures:{"0":{name:"punctuation.definition.string.begin.ruby"}},end:"[)\\]}>]\\2|\\1\\2",endCaptures:{"0":{name:"punctuation.definition.string.end.ruby"}},name:"string.interpolated.percent.ruby",patterns:[{begin:"\\G(?<=\\()(?!\\))",end:"(?=\\))",patterns:[{include:"#parens"}]},{begin:"\\G(?<=\\[)(?!\\])",end:"(?=\\])",patterns:[{include:"#brackets"}]},{begin:"\\G(?<=\\{)(?!\\})",end:"(?=\\})",patterns:[{include:"#braces"}]},{begin:"\\G(?<=<)(?!>)",end:"(?=>)",patterns:[{include:"#angles"}]},{include:"#escaped_char"},{include:"#interpolated_ruby"}],repository:{angles:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"<",end:">",patterns:[{include:"#angles"}]}]},braces:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"\\{",end:"\\}",patterns:[{include:"#braces"}]}]},brackets:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"\\[",end:"\\]",patterns:[{include:"#brackets"}]}]},parens:{patterns:[{include:"#escaped_char"},{include:"#interpolated_ruby"},{begin:"\\(",end:"\\)",patterns:[{include:"#parens"}]}]}}}]},regex_sub:{patterns:[{include:"#interpolated_ruby"},{include:"#escaped_char"},{captures:{"1":{name:"punctuation.definition.quantifier.begin.ruby"},"3":{name:"punctuation.definition.quantifier.end.ruby"}},match:"(\\{)\\d+(,\\d+)?(\\})",name:"keyword.operator.quantifier.ruby"},{begin:"\\[\\^?",beginCaptures:{"0":{name:"punctuation.definition.character-class.begin.ruby"}},end:"\\]",endCaptures:{"0":{name:"punctuation.definition.character-class.end.ruby"}},name:"constant.other.character-class.set.ruby",patterns:[{include:"#escaped_char"}]},{begin:"\\(\\?#",beginCaptures:{"0":{name:"punctuation.definition.comment.begin.ruby"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.comment.end.ruby"}},name:"comment.line.number-sign.ruby",patterns:[{include:"#escaped_char"}]},{begin:"\\(",captures:{"0":{name:"punctuation.definition.group.ruby"}},end:"\\)",name:"meta.group.regexp.ruby",patterns:[{include:"#regex_sub"}]},{begin:"(?<=^|\\s)(#)\\s(?=[[a-zA-Z0-9,. \\t?!-][^\\x{00}-\\x{7F}]]*$)",beginCaptures:{"1":{name:"punctuation.definition.comment.ruby"}},comment:"We are restrictive in what we allow to go after the comment character to avoid false positives, since the availability of comments depend on regexp flags.",end:"$\\n?",name:"comment.line.number-sign.ruby"}]}}}; + +export { ruby_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/rust.tmLanguage-7f99b044.mjs b/docs/shiki/dist/languages/rust.tmLanguage-7f99b044.mjs new file mode 100644 index 00000000..60397584 --- /dev/null +++ b/docs/shiki/dist/languages/rust.tmLanguage-7f99b044.mjs @@ -0,0 +1,3 @@ +var rust_tmLanguage = {information_for_contributors:["This file has been converted from https://github.com/dustypomerleau/rust-syntax/blob/master/syntaxes/rust.tmLanguage.json","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."],version:"https://github.com/dustypomerleau/rust-syntax/commit/20462d50ff97338f42c6b64c3f421c634fd60734",name:"rust",scopeName:"source.rust",patterns:[{comment:"boxed slice literal",begin:"(<)(\\[)",beginCaptures:{"1":{name:"punctuation.brackets.angle.rust"},"2":{name:"punctuation.brackets.square.rust"}},end:">",endCaptures:{"0":{name:"punctuation.brackets.angle.rust"}},patterns:[{include:"#block-comments"},{include:"#comments"},{include:"#gtypes"},{include:"#lvariables"},{include:"#lifetimes"},{include:"#punctuation"},{include:"#types"}]},{comment:"macro type metavariables",name:"meta.macro.metavariable.type.rust",match:"(\\$)((crate)|([A-Z][A-Za-z0-9_]*))((:)(block|expr|ident|item|lifetime|literal|meta|path?|stmt|tt|ty|vis))?",captures:{"1":{name:"keyword.operator.macro.dollar.rust"},"3":{name:"keyword.other.crate.rust"},"4":{name:"entity.name.type.metavariable.rust"},"6":{name:"keyword.operator.key-value.rust"},"7":{name:"variable.other.metavariable.specifier.rust"}},patterns:[{include:"#keywords"}]},{comment:"macro metavariables",name:"meta.macro.metavariable.rust",match:"(\\$)([a-z][A-Za-z0-9_]*)((:)(block|expr|ident|item|lifetime|literal|meta|path?|stmt|tt|ty|vis))?",captures:{"1":{name:"keyword.operator.macro.dollar.rust"},"2":{name:"variable.other.metavariable.name.rust"},"4":{name:"keyword.operator.key-value.rust"},"5":{name:"variable.other.metavariable.specifier.rust"}},patterns:[{include:"#keywords"}]},{comment:"macro rules",name:"meta.macro.rules.rust",match:"\\b(macro_rules!)\\s+(([a-z0-9_]+)|([A-Z][a-z0-9_]*))\\s+(\\{)",captures:{"1":{name:"entity.name.function.macro.rules.rust"},"3":{name:"entity.name.function.macro.rust"},"4":{name:"entity.name.type.macro.rust"},"5":{name:"punctuation.brackets.curly.rust"}}},{comment:"attributes",name:"meta.attribute.rust",begin:"(#)(\\!?)(\\[)",beginCaptures:{"1":{name:"punctuation.definition.attribute.rust"},"2":{name:"keyword.operator.attribute.inner.rust"},"3":{name:"punctuation.brackets.attribute.rust"}},end:"\\]",endCaptures:{"0":{name:"punctuation.brackets.attribute.rust"}},patterns:[{include:"#block-comments"},{include:"#comments"},{include:"#keywords"},{include:"#lifetimes"},{include:"#punctuation"},{include:"#strings"},{include:"#gtypes"},{include:"#types"}]},{comment:"modules",match:"(mod)\\s+((?:r#(?!crate|[Ss]elf|super))?[a-z][A-Za-z0-9_]*)",captures:{"1":{name:"storage.type.rust"},"2":{name:"entity.name.module.rust"}}},{comment:"external crate imports",name:"meta.import.rust",begin:"\\b(extern)\\s+(crate)",beginCaptures:{"1":{name:"storage.type.rust"},"2":{name:"keyword.other.crate.rust"}},end:";",endCaptures:{"0":{name:"punctuation.semi.rust"}},patterns:[{include:"#block-comments"},{include:"#comments"},{include:"#keywords"},{include:"#punctuation"}]},{comment:"use statements",name:"meta.use.rust",begin:"\\b(use)\\s",beginCaptures:{"1":{name:"keyword.other.rust"}},end:";",endCaptures:{"0":{name:"punctuation.semi.rust"}},patterns:[{include:"#block-comments"},{include:"#comments"},{include:"#keywords"},{include:"#namespaces"},{include:"#punctuation"},{include:"#types"},{include:"#lvariables"}]},{include:"#block-comments"},{include:"#comments"},{include:"#lvariables"},{include:"#constants"},{include:"#gtypes"},{include:"#functions"},{include:"#types"},{include:"#keywords"},{include:"#lifetimes"},{include:"#macros"},{include:"#namespaces"},{include:"#punctuation"},{include:"#strings"},{include:"#variables"}],repository:{comments:{patterns:[{comment:"documentation comments",name:"comment.line.documentation.rust",match:"^\\s*///.*"},{comment:"line comments",name:"comment.line.double-slash.rust",match:"\\s*//.*"}]},"block-comments":{patterns:[{comment:"empty block comments",name:"comment.block.rust",match:"/\\*\\*/"},{comment:"block documentation comments",name:"comment.block.documentation.rust",begin:"/\\*\\*",end:"\\*/",patterns:[{include:"#block-comments"}]},{comment:"block comments",name:"comment.block.rust",begin:"/\\*(?!\\*)",end:"\\*/",patterns:[{include:"#block-comments"}]}]},constants:{patterns:[{comment:"ALL CAPS constants",name:"constant.other.caps.rust",match:"\\b[A-Z]{2}[A-Z0-9_]*\\b"},{comment:"constant declarations",match:"\\b(const)\\s+([A-Z][A-Za-z0-9_]*)\\b",captures:{"1":{name:"storage.type.rust"},"2":{name:"constant.other.caps.rust"}}},{comment:"decimal integers and floats",name:"constant.numeric.decimal.rust",match:"\\b\\d[\\d_]*(\\.?)[\\d_]*(?:(E)([+-])([\\d_]+))?(f32|f64|i128|i16|i32|i64|i8|isize|u128|u16|u32|u64|u8|usize)?\\b",captures:{"1":{name:"punctuation.separator.dot.decimal.rust"},"2":{name:"keyword.operator.exponent.rust"},"3":{name:"keyword.operator.exponent.sign.rust"},"4":{name:"constant.numeric.decimal.exponent.mantissa.rust"},"5":{name:"entity.name.type.numeric.rust"}}},{comment:"hexadecimal integers",name:"constant.numeric.hex.rust",match:"\\b0x[\\da-fA-F_]+(i128|i16|i32|i64|i8|isize|u128|u16|u32|u64|u8|usize)?\\b",captures:{"1":{name:"entity.name.type.numeric.rust"}}},{comment:"octal integers",name:"constant.numeric.oct.rust",match:"\\b0o[0-7_]+(i128|i16|i32|i64|i8|isize|u128|u16|u32|u64|u8|usize)?\\b",captures:{"1":{name:"entity.name.type.numeric.rust"}}},{comment:"binary integers",name:"constant.numeric.bin.rust",match:"\\b0b[01_]+(i128|i16|i32|i64|i8|isize|u128|u16|u32|u64|u8|usize)?\\b",captures:{"1":{name:"entity.name.type.numeric.rust"}}},{comment:"booleans",name:"constant.language.bool.rust",match:"\\b(true|false)\\b"}]},escapes:{comment:"escapes: ASCII, byte, Unicode, quote, regex",name:"constant.character.escape.rust",match:"(\\\\)(?:(?:(x[0-7][0-7a-fA-F])|(u(\\{)[\\da-fA-F]{4,6}(\\}))|.))",captures:{"1":{name:"constant.character.escape.backslash.rust"},"2":{name:"constant.character.escape.bit.rust"},"3":{name:"constant.character.escape.unicode.rust"},"4":{name:"constant.character.escape.unicode.punctuation.rust"},"5":{name:"constant.character.escape.unicode.punctuation.rust"}}},functions:{patterns:[{comment:"pub as a function",match:"\\b(pub)(\\()",captures:{"1":{name:"keyword.other.rust"},"2":{name:"punctuation.brackets.round.rust"}}},{comment:"function definition",name:"meta.function.definition.rust",begin:"\\b(fn)\\s+((?:r#(?!crate|[Ss]elf|super))?[A-Za-z0-9_]+)((\\()|(<))",beginCaptures:{"1":{name:"keyword.other.fn.rust"},"2":{name:"entity.name.function.rust"},"4":{name:"punctuation.brackets.round.rust"},"5":{name:"punctuation.brackets.angle.rust"}},end:"\\{|;",endCaptures:{"0":{name:"punctuation.brackets.curly.rust"}},patterns:[{include:"#block-comments"},{include:"#comments"},{include:"#keywords"},{include:"#lvariables"},{include:"#constants"},{include:"#gtypes"},{include:"#functions"},{include:"#lifetimes"},{include:"#macros"},{include:"#namespaces"},{include:"#punctuation"},{include:"#strings"},{include:"#types"},{include:"#variables"}]},{comment:"function/method calls, chaining",name:"meta.function.call.rust",begin:"((?:r#(?!crate|[Ss]elf|super))?[A-Za-z0-9_]+)(\\()",beginCaptures:{"1":{name:"entity.name.function.rust"},"2":{name:"punctuation.brackets.round.rust"}},end:"\\)",endCaptures:{"0":{name:"punctuation.brackets.round.rust"}},patterns:[{include:"#block-comments"},{include:"#comments"},{include:"#keywords"},{include:"#lvariables"},{include:"#constants"},{include:"#gtypes"},{include:"#functions"},{include:"#lifetimes"},{include:"#macros"},{include:"#namespaces"},{include:"#punctuation"},{include:"#strings"},{include:"#types"},{include:"#variables"}]},{comment:"function/method calls with turbofish",name:"meta.function.call.rust",begin:"((?:r#(?!crate|[Ss]elf|super))?[A-Za-z0-9_]+)(?=::<.*>\\()",beginCaptures:{"1":{name:"entity.name.function.rust"}},end:"\\)",endCaptures:{"0":{name:"punctuation.brackets.round.rust"}},patterns:[{include:"#block-comments"},{include:"#comments"},{include:"#keywords"},{include:"#lvariables"},{include:"#constants"},{include:"#gtypes"},{include:"#functions"},{include:"#lifetimes"},{include:"#macros"},{include:"#namespaces"},{include:"#punctuation"},{include:"#strings"},{include:"#types"},{include:"#variables"}]}]},keywords:{patterns:[{comment:"control flow keywords",name:"keyword.control.rust",match:"\\b(await|break|continue|do|else|for|if|loop|match|return|try|while|yield)\\b"},{comment:"storage keywords",name:"keyword.other.rust storage.type.rust",match:"\\b(extern|let|macro|mod)\\b"},{comment:"const keyword",name:"storage.modifier.rust",match:"\\b(const)\\b"},{comment:"type keyword",name:"keyword.declaration.type.rust storage.type.rust",match:"\\b(type)\\b"},{comment:"enum keyword",name:"keyword.declaration.enum.rust storage.type.rust",match:"\\b(enum)\\b"},{comment:"trait keyword",name:"keyword.declaration.trait.rust storage.type.rust",match:"\\b(trait)\\b"},{comment:"struct keyword",name:"keyword.declaration.struct.rust storage.type.rust",match:"\\b(struct)\\b"},{comment:"storage modifiers",name:"storage.modifier.rust",match:"\\b(abstract|static)\\b"},{comment:"other keywords",name:"keyword.other.rust",match:"\\b(as|async|become|box|dyn|move|final|impl|in|override|priv|pub|ref|typeof|union|unsafe|unsized|use|virtual|where)\\b"},{comment:"fn",name:"keyword.other.fn.rust",match:"\\bfn\\b"},{comment:"crate",name:"keyword.other.crate.rust",match:"\\bcrate\\b"},{comment:"mut",name:"storage.modifier.mut.rust",match:"\\bmut\\b"},{comment:"logical operators",name:"keyword.operator.logical.rust",match:"(\\^|\\||\\|\\||&&|<<|>>|!)(?!=)"},{comment:"logical AND, borrow references",name:"keyword.operator.borrow.and.rust",match:"&(?![&=])"},{comment:"assignment operators",name:"keyword.operator.assignment.rust",match:"(\\+=|-=|\\*=|/=|%=|\\^=|&=|\\|=|<<=|>>=)"},{comment:"single equal",name:"keyword.operator.assignment.equal.rust",match:"(?<![<>])=(?!=|>)"},{comment:"comparison operators",name:"keyword.operator.comparison.rust",match:"(=(=)?(?!>)|!=|<=|(?<!=)>=)"},{comment:"math operators",name:"keyword.operator.math.rust",match:"(([+%]|(\\*(?!\\w)))(?!=))|(-(?!>))|(/(?!/))"},{comment:"less than, greater than (special case)",match:"(?:\\b|(?:(\\))|(\\])|(\\})))[ \\t]+([<>])[ \\t]+(?:\\b|(?:(\\()|(\\[)|(\\{)))",captures:{"1":{name:"punctuation.brackets.round.rust"},"2":{name:"punctuation.brackets.square.rust"},"3":{name:"punctuation.brackets.curly.rust"},"4":{name:"keyword.operator.comparison.rust"},"5":{name:"punctuation.brackets.round.rust"},"6":{name:"punctuation.brackets.square.rust"},"7":{name:"punctuation.brackets.curly.rust"}}},{comment:"namespace operator",name:"keyword.operator.namespace.rust",match:"::"},{comment:"dereference asterisk",match:"(\\*)(?=\\w+)",captures:{"1":{name:"keyword.operator.dereference.rust"}}},{comment:"subpattern binding",name:"keyword.operator.subpattern.rust",match:"@"},{comment:"dot access",name:"keyword.operator.access.dot.rust",match:"\\.(?!\\.)"},{comment:"ranges, range patterns",name:"keyword.operator.range.rust",match:"\\.{2}(=|\\.)?"},{comment:"colon",name:"keyword.operator.key-value.rust",match:":(?!:)"},{comment:"dashrocket, skinny arrow",name:"keyword.operator.arrow.skinny.rust",match:"->"},{comment:"hashrocket, fat arrow",name:"keyword.operator.arrow.fat.rust",match:"=>"},{comment:"dollar macros",name:"keyword.operator.macro.dollar.rust",match:"\\$"},{comment:"question mark operator, questionably sized, macro kleene matcher",name:"keyword.operator.question.rust",match:"\\?"}]},interpolations:{comment:"curly brace interpolations",name:"meta.interpolation.rust",match:"({)[^\"{}]*(})",captures:{"1":{name:"punctuation.definition.interpolation.rust"},"2":{name:"punctuation.definition.interpolation.rust"}}},lifetimes:{patterns:[{comment:"named lifetime parameters",match:"(['])([a-zA-Z_][0-9a-zA-Z_]*)(?!['])\\b",captures:{"1":{name:"punctuation.definition.lifetime.rust"},"2":{name:"entity.name.type.lifetime.rust"}}},{comment:"borrowing references to named lifetimes",match:"(\\&)(['])([a-zA-Z_][0-9a-zA-Z_]*)(?!['])\\b",captures:{"1":{name:"keyword.operator.borrow.rust"},"2":{name:"punctuation.definition.lifetime.rust"},"3":{name:"entity.name.type.lifetime.rust"}}}]},macros:{patterns:[{comment:"macros",name:"meta.macro.rust",match:"(([a-z_][A-Za-z0-9_]*!)|([A-Z_][A-Za-z0-9_]*!))",captures:{"2":{name:"entity.name.function.macro.rust"},"3":{name:"entity.name.type.macro.rust"}}}]},namespaces:{patterns:[{comment:"namespace (non-type, non-function path segment)",match:"(?<![A-Za-z0-9_])([a-z0-9_]+)((?<!super|self)::)",captures:{"1":{name:"entity.name.namespace.rust"},"2":{name:"keyword.operator.namespace.rust"}}}]},types:{patterns:[{comment:"numeric types",match:"(?<![A-Za-z])(f32|f64|i128|i16|i32|i64|i8|isize|u128|u16|u32|u64|u8|usize)\\b",captures:{"1":{name:"entity.name.type.numeric.rust"}}},{comment:"parameterized types",begin:"\\b([A-Z][A-Za-z0-9]*)(<)",beginCaptures:{"1":{name:"entity.name.type.rust"},"2":{name:"punctuation.brackets.angle.rust"}},end:">",endCaptures:{"0":{name:"punctuation.brackets.angle.rust"}},patterns:[{include:"#block-comments"},{include:"#comments"},{include:"#keywords"},{include:"#lvariables"},{include:"#lifetimes"},{include:"#punctuation"},{include:"#types"},{include:"#variables"}]},{comment:"primitive types",name:"entity.name.type.primitive.rust",match:"\\b(bool|char|str)\\b"},{comment:"trait declarations",match:"\\b(trait)\\s+([A-Z][A-Za-z0-9]*)\\b",captures:{"1":{name:"keyword.declaration.trait.rust storage.type.rust"},"2":{name:"entity.name.type.trait.rust"}}},{comment:"struct declarations",match:"\\b(struct)\\s+([A-Z][A-Za-z0-9]*)\\b",captures:{"1":{name:"keyword.declaration.struct.rust storage.type.rust"},"2":{name:"entity.name.type.struct.rust"}}},{comment:"enum declarations",match:"\\b(enum)\\s+([A-Z][A-Za-z0-9_]*)\\b",captures:{"1":{name:"keyword.declaration.enum.rust storage.type.rust"},"2":{name:"entity.name.type.enum.rust"}}},{comment:"type declarations",match:"\\b(type)\\s+([A-Z][A-Za-z0-9_]*)\\b",captures:{"1":{name:"keyword.declaration.type.rust storage.type.rust"},"2":{name:"entity.name.type.declaration.rust"}}},{comment:"types",name:"entity.name.type.rust",match:"\\b[A-Z][A-Za-z0-9]*\\b(?!!)"}]},gtypes:{patterns:[{comment:"option types",name:"entity.name.type.option.rust",match:"\\b(Some|None)\\b"},{comment:"result types",name:"entity.name.type.result.rust",match:"\\b(Ok|Err)\\b"}]},punctuation:{patterns:[{comment:"comma",name:"punctuation.comma.rust",match:","},{comment:"curly braces",name:"punctuation.brackets.curly.rust",match:"[{}]"},{comment:"parentheses, round brackets",name:"punctuation.brackets.round.rust",match:"[()]"},{comment:"semicolon",name:"punctuation.semi.rust",match:";"},{comment:"square brackets",name:"punctuation.brackets.square.rust",match:"[\\[\\]]"},{comment:"angle brackets",name:"punctuation.brackets.angle.rust",match:"(?<!=)[<>]"}]},strings:{patterns:[{comment:"double-quoted strings and byte strings",name:"string.quoted.double.rust",begin:"(b?)(\")",beginCaptures:{"1":{name:"string.quoted.byte.raw.rust"},"2":{name:"punctuation.definition.string.rust"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.rust"}},patterns:[{include:"#escapes"},{include:"#interpolations"}]},{comment:"double-quoted raw strings and raw byte strings",name:"string.quoted.double.rust",begin:"(b?r)(#*)(\")",beginCaptures:{"1":{name:"string.quoted.byte.raw.rust"},"2":{name:"punctuation.definition.string.raw.rust"},"3":{name:"punctuation.definition.string.rust"}},end:"(\")(\\2)",endCaptures:{"1":{name:"punctuation.definition.string.rust"},"2":{name:"punctuation.definition.string.raw.rust"}}},{comment:"characters and bytes",name:"string.quoted.single.char.rust",begin:"(b)?(')",beginCaptures:{"1":{name:"string.quoted.byte.raw.rust"},"2":{name:"punctuation.definition.char.rust"}},end:"'",endCaptures:{"0":{name:"punctuation.definition.char.rust"}},patterns:[{include:"#escapes"}]}]},lvariables:{patterns:[{comment:"self",name:"variable.language.self.rust",match:"\\b[Ss]elf\\b"},{comment:"super",name:"variable.language.super.rust",match:"\\bsuper\\b"}]},variables:{patterns:[{comment:"variables",name:"variable.other.rust",match:"\\b(?<!(?<!\\.)\\.)(?:r#(?!(crate|[Ss]elf|super)))?[a-z0-9_]+\\b"}]}}}; + +export { rust_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/sas.tmLanguage-7595cb9a.mjs b/docs/shiki/dist/languages/sas.tmLanguage-7595cb9a.mjs new file mode 100644 index 00000000..51634047 --- /dev/null +++ b/docs/shiki/dist/languages/sas.tmLanguage-7595cb9a.mjs @@ -0,0 +1,3 @@ +var sas_tmLanguage = {comment:"A work in progress--improves over the existing in that it populates symbols, and handles comments more gracefully.",fileTypes:["sas"],foldingStartMarker:"(?i:(proc|data|%macro).*;$)",foldingStopMarker:"(?i:(run|quit|%mend)\\s?);",name:"sas",patterns:[{include:"#starComment"},{include:"#blockComment"},{include:"#macro"},{include:"#constant"},{include:"#quote"},{include:"#operator"},{begin:"\\b(?i:(data))\\s+",beginCaptures:{"1":{name:"keyword.other.sas"}},comment:"Begins a DATA step and provides names for any output SAS data sets, views, or programs.",end:"(;)",patterns:[{include:"#blockComment"},{include:"#dataSet"},{captures:{"1":{name:"keyword.other.sas"},"2":{name:"keyword.other.sas"}},match:"(?i:(?:(stack|pgm|view|source)\\s?=\\s?)|(debug|nesting|nolist))"}]},{begin:"\\b(?i:(set|update|modify|merge))\\s+",beginCaptures:{"1":{name:"support.function.sas"},"2":{name:"entity.name.class.sas"},"3":{name:"entity.name.class.sas"}},comment:"DATA set File-Handling Statements for DATA step",end:"(;)",patterns:[{include:"#blockComment"},{include:"#dataSet"}]},{match:"(?i:\\b(if|while|until|for|do|end|then|else|run|quit|cancel|options)\\b)",name:"keyword.control.sas"},{captures:{"1":{name:"support.class.sas"},"3":{name:"entity.name.function.sas"}},match:"(?i:(%(bquote|do|else|end|eval|global|goto|if|inc|include|index|input|length|let|list|local|lowcase|macro|mend|nrbquote|nrquote|nrstr|put|qscan|qsysfunc|quote|run|scan|str|substr|syscall|sysevalf|sysexec|sysfunc|sysrc|then|to|unquote|upcase|until|while|window)\\b))\\s*(\\w*)",name:"keyword.other.sas"},{begin:"(?i:\\b(proc\\s*(sql))\\b)",beginCaptures:{"1":{name:"support.function.sas"},"2":{name:"support.class.sas"}},comment:"Looks like for this to work there must be a *name* as well as the patterns/include bit.",end:"(?i:\\b(quit)\\s*;)",endCaptures:{"1":{name:"keyword.control.sas"}},name:"meta.sql.sas",patterns:[{include:"#starComment"},{include:"#blockComment"},{include:"source.sql"}]},{match:"(?i:\\b(by|label|format)\\b)",name:"keyword.datastep.sas"},{captures:{"1":{name:"support.function.sas"},"2":{name:"support.class.sas"}},match:"(?i:\\b(proc (\\w+))\\b)",name:"meta.function-call.sas"},{match:"(?i:\\b(_n_|_error_)\\b)",name:"variable.language.sas"},{captures:{"1":{name:"support.class.sas"}},match:"\\b(?i:(_all_|_character_|_cmd_|_freq_|_i_|_infile_|_last_|_msg_|_null_|_numeric_|_temporary_|_type_|abort|abs|addr|adjrsq|airy|alpha|alter|altlog|altprint|and|arcos|array|arsin|as|atan|attrc|attrib|attrn|authserver|autoexec|awscontrol|awsdef|awsmenu|awsmenumerge|awstitle|backward|band|base|betainv|between|blocksize|blshift|bnot|bor|brshift|bufno|bufsize|bxor|by|byerr|byline|byte|calculated|call|cards|cards4|case|catcache|cbufno|cdf|ceil|center|cexist|change|chisq|cinv|class|cleanup|close|cnonct|cntllev|coalesce|codegen|col|collate|collin|column|comamid|comaux1|comaux2|comdef|compbl|compound|compress|config|continue|convert|cos|cosh|cpuid|create|cross|crosstab|css|curobs|cv|daccdb|daccdbsl|daccsl|daccsyd|dacctab|dairy|datalines|datalines4|date|datejul|datepart|datetime|day|dbcslang|dbcstype|dclose|ddm|delete|delimiter|depdb|depdbsl|depsl|depsyd|deptab|dequote|descending|descript|design=|device|dflang|dhms|dif|digamma|dim|dinfo|display|distinct|dkricond|dkrocond|dlm|dnum|do|dopen|doptname|doptnum|dread|drop|dropnote|dsname|dsnferr|echo|else|emaildlg|emailid|emailpw|emailserver|emailsys|encrypt|end|endsas|engine|eof|eov|erf|erfc|error|errorcheck|errors|exist|exp|fappend|fclose|fcol|fdelete|feedback|fetch|fetchobs|fexist|fget|file|fileclose|fileexist|filefmt|filename|fileref|filevar|finfo|finv|fipname|fipnamel|fipstate|first|firstobs|floor|fmterr|fmtsearch|fnonct|fnote|font|fontalias|footnote[1-9]?|fopen|foptname|foptnum|force|formatted|formchar|formdelim|formdlim|forward|fpoint|fpos|fput|fread|frewind|frlen|from|fsep|full|fullstimer|fuzz|fwrite|gaminv|gamma|getoption|getvarc|getvarn|go|goto|group|gwindow|hbar|hbound|helpenv|helploc|hms|honorappearance|hosthelp|hostprint|hour|hpct|html|hvar|ibessel|ibr|id|if|index|indexc|indexw|infile|informat|initcmd|initstmt|inner|input|inputc|inputn|inr|insert|int|intck|intnx|into|intrr|invaliddata|irr|is|jbessel|join|juldate|keep|kentb|kurtosis|label|lag|last|lbound|leave|left|length|levels|lgamma|lib|libname|library|libref|line|linesize|link|list|log|log10|log2|logpdf|logpmf|logsdf|lostcard|lowcase|lrecl|ls|macro|macrogen|maps|mautosource|max|maxdec|maxr|mdy|mean|measures|median|memtype|merge|merror|min|minute|missing|missover|mlogic|mod|mode|model|modify|month|mopen|mort|mprint|mrecall|msglevel|msymtabmax|mvarsize|myy|n|nest|netpv|new|news|nmiss|no|nobatch|nobs|nocaps|nocardimage|nocenter|nocharcode|nocmdmac|nocol|nocum|nodate|nodbcs|nodetails|nodmr|nodms|nodmsbatch|nodup|nodupkey|noduplicates|noechoauto|noequals|noerrorabend|noexitwindows|nofullstimer|noicon|noimplmac|noint|nolist|noloadlist|nomiss|nomlogic|nomprint|nomrecall|nomsgcase|nomstored|nomultenvappl|nonotes|nonumber|noobs|noovp|nopad|nopercent|noprint|noprintinit|normal|norow|norsasuser|nosetinit|nosource|nosource2|nosplash|nosymbolgen|note|notes|notitle|notitles|notsorted|noverbose|noxsync|noxwait|npv|null|number|numkeys|nummousekeys|nway|obs|ods|on|open|option|order|ordinal|otherwise|out|outer|outp=|output|over|ovp|p(1|5|10|25|50|75|90|95|99)|pad|pad2|page|pageno|pagesize|paired|parm|parmcards|path|pathdll|pathname|pdf|peek|peekc|pfkey|pmf|point|poisson|poke|position|printer|probbeta|probbnml|probchi|probf|probgam|probhypr|probit|probnegb|probnorm|probsig|probt|procleave|project|prt|propcase|prxmatch|prxparse|prxchange|prxposn|ps|put|putc|putn|pw|pwreq|qtr|quote|r|ranbin|rancau|ranexp|rangam|range|ranks|rannor|ranpoi|rantbl|rantri|ranuni|read|recfm|register|regr|remote|remove|rename|repeat|replace|resolve|retain|return|reuse|reverse|rewind|right|round|rsquare|rtf|rtrace|rtraceloc|s|s2|samploc|sasautos|sascontrol|sasfrscr|sashelp|sasmsg|sasmstore|sasscript|sasuser|saving|scan|sdf|second|select|selection|separated|seq|serror|set|setcomm|setot|sign|simple|sin|sinh|siteinfo|skewness|skip|sle|sls|sortedby|sortpgm|sortseq|sortsize|soundex|source2|spedis|splashlocation|split|spool|sqrt|start|std|stderr|stdin|stfips|stimer|stname|stnamel|stop|stopover|strip|subgroup|subpopn|substr|sum|sumwgt|symbol|symbolgen|symget|symput|sysget|sysin|sysleave|sysmsg|sysparm|sysprint|sysprintfont|sysprod|sysrc|system|t|table|tables|tan|tanh|tapeclose|tbufsize|terminal|test|then|time|timepart|tinv|title[1-9]?|tnonct|to|today|tol|tooldef|totper|transformout|translate|trantab|tranwrd|trigamma|trim|trimn|trunc|truncover|type|unformatted|uniform|union|until|upcase|update|user|usericon|uss|validate|value|var|varfmt|varinfmt|varlabel|varlen|varname|varnum|varray|varrayx|vartype|verify|vformat|vformatd|vformatdx|vformatn|vformatnx|vformatw|vformatwx|vformatx|vinarray|vinarrayx|vinformat|vinformatd|vinformatdx|vinformatn|vinformatnx|vinformatw|vinformatwx|vinformatx|vlabel|vlabelx|vlength|vlengthx|vname|vnamex|vnferr|vtype|vtypex|weekday|weight|when|where|while|wincharset|window|work|workinit|workterm|write|wsum|wsumx|x|xsync|xwait|year|yearcutoff|yes|yyq|zipfips|zipname|zipnamel|zipstate))\\b",name:"support.function.sas"}],repository:{blockComment:{patterns:[{begin:"\\/\\*",end:"\\*\\/",name:"comment.block.slashstar.sas"}]},constant:{patterns:[{comment:"numeric constant",match:"(?<![&\\}])\\b[0-9]*\\.?[0-9]+([eEdD][-+]?[0-9]+)?\\b",name:"constant.numeric.sas"},{comment:"single quote numeric-type constant",match:"(')([^']+)(')(dt|[dt])",name:"constant.numeric.quote.single.sas"},{comment:"double quote numeric-type constant",match:"(\")([^\"]+)(\")(dt|[dt])",name:"constant.numeric.quote.double.sas"}]},dataSet:{patterns:[{begin:"((\\w+)\\.)?(\\w+)\\s?\\(",beginCaptures:{"2":{name:"entity.name.class.libref.sas"},"3":{name:"entity.name.class.dsname.sas"}},comment:"data set with options",end:"\\)",patterns:[{include:"#dataSetOptions"},{include:"#blockComment"},{include:"#macro"},{include:"#constant"},{include:"#quote"},{include:"#operator"}]},{captures:{"2":{name:"entity.name.class.libref.sas"},"3":{name:"entity.name.class.dsname.sas"}},comment:"data set without options",match:"\\b((\\w+)\\.)?(\\w+)\\b"}]},dataSetOptions:{patterns:[{match:"(?<=\\s|\\(|\\))(?i:ALTER|BUFNO|BUFSIZE|CNTLLEV|COMPRESS|DLDMGACTION|ENCRYPT|ENCRYPTKEY|EXTENDOBSCOUNTER|GENMAX|GENNUM|INDEX|LABEL|OBSBUF|OUTREP|PW|PWREQ|READ|REPEMPTY|REPLACE|REUSE|ROLE|SORTEDBY|SPILL|TOBSNO|TYPE|WRITE|FILECLOSE|FIRSTOBS|IN|OBS|POINTOBS|WHERE|WHEREUP|IDXNAME|IDXWHERE|DROP|KEEP|RENAME)\\s?=",name:"keyword.other.sas"}]},macro:{patterns:[{match:"(&+(?i:[a-z_]([a-z0-9_]+)?)(\\.+)?)\\b",name:"variable.other.macro.sas"}]},operator:{patterns:[{match:"([\\+\\-\\*\\^\\/])",name:"keyword.operator.arithmetic.sas"},{match:"\\b(?i:(eq|ne|gt|lt|ge|le|in|not|&|and|or|min|max))\\b",name:"keyword.operator.comparison.sas"},{match:"([¬<>^~]?=(:)?|>|<|\\||!|¦|¬|^|~|<>|><|\\|\\|)",name:"keyword.operator.sas"}]},quote:{patterns:[{begin:"(?<!%)(')",comment:"single quoted string block",end:"(')([bx])?",name:"string.quoted.single.sas"},{begin:"(\")",comment:"double quoted string block",end:"(\")([bx])?",name:"string.quoted.double.sas"}]},starComment:{patterns:[{include:"#blockcomment"},{begin:"(?<=;)[\\s%]*\\*",end:";",name:"comment.line.inline.star.sas"},{begin:"^[\\s%]*\\*",end:";",name:"comment.line.start.sas"}]}},scopeName:"source.sas",uuid:"7e721b1e-6265-4865-bc4b-308d49affba1"}; + +export { sas_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/sass.tmLanguage-cfe72fe3.mjs b/docs/shiki/dist/languages/sass.tmLanguage-cfe72fe3.mjs new file mode 100644 index 00000000..e4962d61 --- /dev/null +++ b/docs/shiki/dist/languages/sass.tmLanguage-cfe72fe3.mjs @@ -0,0 +1,3 @@ +var sass_tmLanguage = {fileTypes:["sass"],foldingStartMarker:"/\\*|^#|^\\*|^\\b|*#?region|^\\.",foldingStopMarker:"\\*/|*#?endregion|^\\s*$",name:"sass",patterns:[{begin:"^(\\s*)(/\\*)",end:"(\\*/)|^(?!\\s\\1)",name:"comment.block.sass",patterns:[{include:"#comment-tag"},{include:"#comment-param"}]},{match:"^[\\t ]*/?//[\\t ]*[SRI][\\t ]*$",name:"keyword.other.sass.formatter.action"},{begin:"^[\\t ]*//[\\t ]*(import)[\\t ]*(css-variables)[\\t ]*(from)",end:"$\\n?",name:"comment.import.css.variables",captures:{"1":{name:"keyword.control"},"2":{name:"variable"},"3":{name:"keyword.control"}},patterns:[{include:"#import-quotes"}]},{include:"#double-slash"},{include:"#double-quoted"},{include:"#single-quoted"},{include:"#interpolation"},{include:"#curly-brackets"},{include:"#placeholder-selector"},{begin:"\\$[a-zA-Z0-9_-]+(?=:)",end:"$\\n?|(?=\\)\\s\\)|\\)\\n)",name:"sass.script.maps",captures:{"0":{name:"variable.other.name"}},patterns:[{include:"#double-slash"},{include:"#double-quoted"},{include:"#single-quoted"},{include:"#interpolation"},{include:"#variable"},{include:"#rgb-value"},{include:"#numeric"},{include:"#unit"},{include:"#flag"},{include:"#comma"},{include:"#function"},{include:"#function-content"},{include:"#operator"},{include:"#reserved-words"},{include:"#parent-selector"},{include:"#property-value"},{include:"#semicolon"},{include:"#dotdotdot"}]},{include:"#variable-root"},{include:"#numeric"},{include:"#unit"},{include:"#flag"},{include:"#comma"},{include:"#semicolon"},{include:"#dotdotdot"},{begin:"@include|\\+(?!\\W|\\d)",end:"(?=\\n|\\()",name:"support.function.name.sass.library",captures:{"0":{name:"keyword.control.at-rule.css.sass"}}},{begin:"^(@use)",end:"(?=\\n)",name:"sass.use",captures:{"0":{name:"keyword.control.at-rule.css.sass.use"}},patterns:[{match:"as|with",name:"support.type.css.sass"},{include:"#numeric"},{include:"#unit"},{include:"#variable-root"},{include:"#rgb-value"},{include:"#comma"},{include:"#parenthesis-open"},{include:"#parenthesis-close"},{include:"#colon"},{include:"#import-quotes"}]},{begin:"^@import(.*?)( as.*)?$",end:"(?=\\n)",name:"keyword.control.at-rule.use",captures:{"1":{name:"constant.character.css.sass"},"2":{name:"invalid"}}},{begin:"@mixin|^[\\t ]*=|@function",end:"$\\n?|(?=\\()",name:"support.function.name.sass",captures:{"0":{name:"keyword.control.at-rule.css.sass"}},patterns:[{match:"[\\w-]+",name:"entity.name.function"}]},{begin:"@",end:"$\\n?|\\s(?!(all|braille|embossed|handheld|print|projection|screen|speech|tty|tv|if|only|not)(\\s|,))",name:"keyword.control.at-rule.css.sass"},{begin:"(?<!\\-|\\()\\b(a|abbr|acronym|address|applet|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|datalist|dd|del|details|dfn|dialog|div|dl|dt|em|embed|eventsource|fieldset|figure|figcaption|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|label|legend|li|link|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|picture|pre|progress|q|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video|main|svg|rect|ruby|center|circle|ellipse|line|polyline|polygon|path|text|u|slot)\\b(?!-|\\)|:\\s)|&",end:"$\\n?|(?=\\s|,|\\(|\\)|\\.|\\#|\\[|>|-|_)",name:"entity.name.tag.css.sass.symbol",patterns:[{include:"#interpolation"},{include:"#pseudo-class"}]},{begin:"#",end:"$\\n?|(?=\\s|,|\\(|\\)|\\.|\\[|>)",name:"entity.other.attribute-name.id.css.sass",patterns:[{include:"#interpolation"},{include:"#pseudo-class"}]},{begin:"\\.|(?<=&)(-|_)",end:"$\\n?|(?=\\s|,|\\(|\\)|\\[|>)",name:"entity.other.attribute-name.class.css.sass",patterns:[{include:"#interpolation"},{include:"#pseudo-class"}]},{begin:"\\[",end:"\\]",name:"entity.other.attribute-selector.sass",patterns:[{include:"#double-quoted"},{include:"#single-quoted"},{match:"\\^|\\$|\\*|~",name:"keyword.other.regex.sass"}]},{match:"^((?<=\\]|\\)|not\\(|\\*|>|>\\s)|\n*):[a-z:-]+|(::|:-)[a-z:-]+",name:"entity.other.attribute-name.pseudo-class.css.sass"},{include:"#module"},{match:"[\\w-]*\\(",name:"entity.name.function"},{match:"\\)",name:"entity.name.function.close"},{begin:":",end:"$\\n?|(?=\\s\\(|and\\(|\\),)",name:"meta.property-list.css.sass.prop",patterns:[{match:"(?<=:)[a-z-]+\\s",name:"support.type.property-name.css.sass.prop.name"},{include:"#double-slash"},{include:"#double-quoted"},{include:"#single-quoted"},{include:"#interpolation"},{include:"#curly-brackets"},{include:"#variable"},{include:"#rgb-value"},{include:"#numeric"},{include:"#unit"},{include:"#module"},{match:"--.+?(?=\\))",name:"variable.css"},{match:"[\\w-]*\\(",name:"entity.name.function"},{match:"\\)",name:"entity.name.function.close"},{include:"#flag"},{include:"#comma"},{include:"#semicolon"},{include:"#function"},{include:"#function-content"},{include:"#operator"},{include:"#parent-selector"},{include:"#property-value"}]},{include:"#rgb-value"},{include:"#function"},{include:"#function-content"},{begin:"(?<=})(?!\\n|\\(|\\)|[a-zA-Z0-9_-]+:)",end:"\\s|(?=,|\\.|\\[|\\)|\\n)",name:"entity.name.tag.css.sass",patterns:[{include:"#interpolation"},{include:"#pseudo-class"}]},{include:"#operator"},{match:"[a-z-]+((?=:|#{))",name:"support.type.property-name.css.sass.prop.name"},{include:"#reserved-words"},{include:"#property-value"}],repository:{module:{match:"([\\w-]+?)(\\.)",name:"constant.character.module",captures:{"1":{name:"constant.character.module.name"},"2":{name:"constant.numeric.module.dot"}}},comma:{match:"\\band\\b|\\bor\\b|,",name:"comment.punctuation.comma.sass"},"comment-tag":{begin:"(?<={{)",end:"(?=}})",name:"comment.tag.sass"},"comment-param":{match:"\\@(\\w+)",name:"storage.type.class.jsdoc"},"curly-brackets":{match:"{|}",name:"invalid"},dotdotdot:{match:"\\.\\.\\.",name:"variable.other"},"double-slash":{begin:"//",end:"$\\n?",name:"comment.line.sass",patterns:[{include:"#comment-tag"}]},"double-quoted":{begin:"\"",end:"\"",name:"string.quoted.double.css.sass",patterns:[{include:"#quoted-interpolation"}]},flag:{match:"!(important|default|optional|global)",name:"keyword.other.important.css.sass"},"function":{match:"(?<=[\\s|\\(|,|:])(?!url|format|attr)[a-zA-Z0-9_-][\\w-]*(?=\\()",name:"support.function.name.sass"},"function-content":{begin:"(?<=url\\(|format\\(|attr\\()",end:".(?=\\))",name:"string.quoted.double.css.sass"},"parenthesis-open":{match:"\\(",name:"entity.name.function.parenthesis.open"},"parenthesis-close":{match:"\\)",name:"entity.name.function.parenthesis.close"},colon:{match:":",name:"meta.property-list.css.sass.colon"},interpolation:{begin:"#{",end:"}",name:"support.function.interpolation.sass",patterns:[{include:"#variable"},{include:"#numeric"},{include:"#operator"},{include:"#unit"},{include:"#comma"},{include:"#double-quoted"},{include:"#single-quoted"}]},numeric:{match:"(-|\\.)?[0-9]+(\\.[0-9]+)?",name:"constant.numeric.css.sass"},operator:{match:"\\+|\\s-\\s|\\s-(?=\\$)|(?<=\\()-(?=\\$)|\\s-(?=\\()|\\*|/|%|=|!|<|>|~",name:"keyword.operator.sass"},"parent-selector":{match:"&",name:"entity.name.tag.css.sass"},"placeholder-selector":{begin:"(?<!\\d)%(?!\\d)",end:"$\\n?|\\s",name:"entity.other.inherited-class.placeholder-selector.css.sass"},"property-value":{match:"[a-zA-Z0-9_-]+",name:"meta.property-value.css.sass support.constant.property-value.css.sass"},"pseudo-class":{match:":[a-z:-]+",name:"entity.other.attribute-name.pseudo-class.css.sass"},"quoted-interpolation":{begin:"#{",end:"}",name:"support.function.interpolation.sass",patterns:[{include:"#variable"},{include:"#numeric"},{include:"#operator"},{include:"#unit"},{include:"#comma"}]},"reserved-words":{match:"\\b(false|from|in|not|null|through|to|true)\\b",name:"support.type.property-name.css.sass"},"rgb-value":{match:"(#)([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})\\b",name:"constant.language.color.rgb-value.css.sass"},semicolon:{match:";",name:"invalid"},"single-quoted":{begin:"'",end:"'",name:"string.quoted.single.css.sass",patterns:[{include:"#quoted-interpolation"}]},unit:{match:"(?<=[\\d]|})(ch|cm|deg|dpcm|dpi|dppx|em|ex|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vw|fr|%)",name:"keyword.control.unit.css.sass"},"variable-root":{match:"\\$[a-zA-Z0-9_-]+",name:"variable.other.root"},variable:{match:"\\$[a-zA-Z0-9_-]+",name:"variable.other.value"},"import-quotes":{match:"[\"']?\\.{0,2}[\\w/]+[\"']?",name:"constant.character.css.sass"}},scopeName:"source.sass"}; + +export { sass_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/scala.tmLanguage-78b9a846.mjs b/docs/shiki/dist/languages/scala.tmLanguage-78b9a846.mjs new file mode 100644 index 00000000..aada0989 --- /dev/null +++ b/docs/shiki/dist/languages/scala.tmLanguage-78b9a846.mjs @@ -0,0 +1,3 @@ +var scala_tmLanguage = {fileTypes:["scala"],firstLineMatch:"^#!/.*\\b\\w*scala\\b",foldingStartMarker:"/\\*\\*|\\{\\s*$",foldingStopMarker:"\\*\\*/|^\\s*\\}",keyEquivalent:"^~S",repository:{"empty-parentheses":{match:"(\\(\\))",captures:{"1":{name:"meta.bracket.scala"}},name:"meta.parentheses.scala"},imports:{end:"(?<=[\\n;])",begin:"\\b(import)\\s+",beginCaptures:{"1":{name:"keyword.other.import.scala"}},patterns:[{include:"#comments"},{match:"\\b(given)\\b",name:"keyword.other.import.given.scala"},{match:"[A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?",name:"entity.name.class.import.scala"},{match:"(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+))",name:"entity.name.import.scala"},{match:"\\.",name:"punctuation.definition.import"},{end:"}",begin:"{",beginCaptures:{"0":{name:"meta.bracket.scala"}},patterns:[{match:"(?x)(given\\s)?\\s*(?:([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?)|(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)))\\s*(=>)\\s*(?:([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?)|(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)))\\s*",captures:{"1":{name:"keyword.other.import.given.scala"},"2":{name:"entity.name.class.import.renamed-from.scala"},"3":{name:"entity.name.import.renamed-from.scala"},"4":{name:"keyword.other.arrow.scala"},"5":{name:"entity.name.class.import.renamed-to.scala"},"6":{name:"entity.name.import.renamed-to.scala"}}},{match:"\\b(given)\\b",name:"keyword.other.import.given.scala"},{match:"(given\\s+)?(?:([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?)|(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)))",captures:{"1":{name:"keyword.other.import.given.scala"},"2":{name:"entity.name.class.import.scala"},"3":{name:"entity.name.import.scala"}}}],endCaptures:{"0":{name:"meta.bracket.scala"}},name:"meta.import.selector.scala"}],name:"meta.import.scala"},exports:{end:"(?<=[\\n;])",begin:"\\b(export)\\s+",beginCaptures:{"1":{name:"keyword.other.export.scala"}},patterns:[{include:"#comments"},{match:"\\b(given)\\b",name:"keyword.other.export.given.scala"},{match:"[A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?",name:"entity.name.class.export.scala"},{match:"(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+))",name:"entity.name.export.scala"},{match:"\\.",name:"punctuation.definition.export"},{end:"}",begin:"{",beginCaptures:{"0":{name:"meta.bracket.scala"}},patterns:[{match:"(?x)(given\\s)?\\s*(?:([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?)|(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)))\\s*(=>)\\s*(?:([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?)|(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)))\\s*",captures:{"1":{name:"keyword.other.export.given.scala"},"2":{name:"entity.name.class.export.renamed-from.scala"},"3":{name:"entity.name.export.renamed-from.scala"},"4":{name:"keyword.other.arrow.scala"},"5":{name:"entity.name.class.export.renamed-to.scala"},"6":{name:"entity.name.export.renamed-to.scala"}}},{match:"\\b(given)\\b",name:"keyword.other.export.given.scala"},{match:"(given\\s+)?(?:([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?)|(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)))",captures:{"1":{name:"keyword.other.export.given.scala"},"2":{name:"entity.name.class.export.scala"},"3":{name:"entity.name.export.scala"}}}],endCaptures:{"0":{name:"meta.bracket.scala"}},name:"meta.export.selector.scala"}],name:"meta.export.scala"},constants:{patterns:[{match:"\\b(false|null|true)\\b",name:"constant.language.scala"},{match:"\\b(0[xX][0-9a-fA-F_]*)\\b",name:"constant.numeric.scala"},{match:"\\b(([0-9][0-9_]*(\\.[0-9][0-9_]*)?)([eE](\\+|-)?[0-9][0-9_]*)?|[0-9][0-9_]*)[LlFfDd]?\\b",name:"constant.numeric.scala"},{match:"(\\.[0-9][0-9_]*)([eE](\\+|-)?[0-9][0-9_]*)?[LlFfDd]?\\b",name:"constant.numeric.scala"},{match:"\\b(this|super)\\b",name:"variable.language.scala"}]},"script-header":{match:"^#!(.*)$",captures:{"1":{name:"string.unquoted.shebang.scala"}},name:"comment.block.shebang.scala"},code:{patterns:[{include:"#using-directive"},{include:"#script-header"},{include:"#storage-modifiers"},{include:"#declarations"},{include:"#inheritance"},{include:"#extension"},{include:"#imports"},{include:"#exports"},{include:"#comments"},{include:"#strings"},{include:"#initialization"},{include:"#xml-literal"},{include:"#keywords"},{include:"#using"},{include:"#constants"},{include:"#singleton-type"},{include:"#inline"},{include:"#scala-quoted-or-symbol"},{include:"#char-literal"},{include:"#empty-parentheses"},{include:"#parameter-list"},{include:"#qualifiedClassName"},{include:"#backQuotedVariable"},{include:"#curly-braces"},{include:"#meta-brackets"},{include:"#meta-bounds"},{include:"#meta-colons"}]},strings:{patterns:[{end:"\"\"\"(?!\")",begin:"\"\"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.scala"}},patterns:[{match:"\\\\\\\\|\\\\u[0-9A-Fa-f]{4}",name:"constant.character.escape.scala"}],endCaptures:{"0":{name:"punctuation.definition.string.end.scala"}},name:"string.quoted.triple.scala"},{begin:"\\b(raw)(\"\"\")",end:"(\"\"\")(?!\")|\\$\n|(\\$[^\\$\"_{A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}])",beginCaptures:{"1":{name:"keyword.interpolation.scala"},"2":{name:"string.quoted.triple.interpolated.scala punctuation.definition.string.begin.scala"}},patterns:[{match:"\\$[\\$\"]",name:"constant.character.escape.scala"},{include:"#string-interpolation"},{match:".",name:"string.quoted.triple.interpolated.scala"}],endCaptures:{"1":{name:"string.quoted.triple.interpolated.scala punctuation.definition.string.end.scala"},"2":{name:"invalid.illegal.unrecognized-string-escape.scala"}}},{begin:"\\b((?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?))(\"\"\")",end:"(\"\"\")(?!\")|\\$\n|(\\$[^\\$\"_{A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}])",beginCaptures:{"1":{name:"keyword.interpolation.scala"},"2":{name:"string.quoted.triple.interpolated.scala punctuation.definition.string.begin.scala"}},patterns:[{include:"#string-interpolation"},{match:"\\\\\\\\|\\\\u[0-9A-Fa-f]{4}",name:"constant.character.escape.scala"},{match:".",name:"string.quoted.triple.interpolated.scala"}],endCaptures:{"1":{name:"string.quoted.triple.interpolated.scala punctuation.definition.string.end.scala"},"2":{name:"invalid.illegal.unrecognized-string-escape.scala"}}},{end:"\"",begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.scala"}},patterns:[{match:"\\\\(?:[btnfr\\\\\"']|[0-7]{1,3}|u[0-9A-Fa-f]{4})",name:"constant.character.escape.scala"},{match:"\\\\.",name:"invalid.illegal.unrecognized-string-escape.scala"}],endCaptures:{"0":{name:"punctuation.definition.string.end.scala"}},name:"string.quoted.double.scala"},{begin:"\\b(raw)(\")",end:"(\")|\\$\n|(\\$[^\\$\"_{A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}])",beginCaptures:{"1":{name:"keyword.interpolation.scala"},"2":{name:"string.quoted.double.interpolated.scala punctuation.definition.string.begin.scala"}},patterns:[{match:"\\$[\\$\"]",name:"constant.character.escape.scala"},{include:"#string-interpolation"},{match:".",name:"string.quoted.double.interpolated.scala"}],endCaptures:{"1":{name:"string.quoted.double.interpolated.scala punctuation.definition.string.end.scala"},"2":{name:"invalid.illegal.unrecognized-string-escape.scala"}}},{begin:"\\b((?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?))(\")",end:"(\")|\\$\n|(\\$[^\\$\"_{A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}])",beginCaptures:{"1":{name:"keyword.interpolation.scala"},"2":{name:"string.quoted.double.interpolated.scala punctuation.definition.string.begin.scala"}},patterns:[{match:"\\$[\\$\"]",name:"constant.character.escape.scala"},{include:"#string-interpolation"},{match:"\\\\(?:[btnfr\\\\\"']|[0-7]{1,3}|u[0-9A-Fa-f]{4})",name:"constant.character.escape.scala"},{match:"\\\\.",name:"invalid.illegal.unrecognized-string-escape.scala"},{match:".",name:"string.quoted.double.interpolated.scala"}],endCaptures:{"1":{name:"string.quoted.double.interpolated.scala punctuation.definition.string.end.scala"},"2":{name:"invalid.illegal.unrecognized-string-escape.scala"}}}]},using:{patterns:[{match:"(?<=\\()\\s*(using)\\s",captures:{"1":{name:"keyword.declaration.scala"}}}]},"string-interpolation":{patterns:[{name:"constant.character.escape.interpolation.scala",match:"\\$\\$"},{name:"meta.template.expression.scala",match:"(\\$)([A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\p{Lo}\\p{Nl}\\p{Ll}0-9]*)",captures:{"1":{name:"punctuation.definition.template-expression.begin.scala"}}},{name:"meta.template.expression.scala",begin:"\\$\\{",beginCaptures:{"0":{name:"punctuation.definition.template-expression.begin.scala"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.template-expression.end.scala"}},patterns:[{include:"#code"}],contentName:"meta.embedded.line.scala"}]},"xml-entity":{match:"(&)([:a-zA-Z_][:a-zA-Z0-9_.-]*|#[0-9]+|#x[0-9a-fA-F]+)(;)",captures:{"1":{name:"punctuation.definition.constant.xml"},"3":{name:"punctuation.definition.constant.xml"}},name:"constant.character.entity.xml"},"xml-singlequotedString":{end:"'",begin:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.xml"}},patterns:[{include:"#xml-entity"}],endCaptures:{"0":{name:"punctuation.definition.string.end.xml"}},name:"string.quoted.single.xml"},"meta-colons":{patterns:[{match:"(?<!:):(?!:)",name:"meta.colon.scala"}],comment:"For themes: Matching type colons"},keywords:{patterns:[{match:"\\b(return|throw)\\b",name:"keyword.control.flow.jump.scala"},{match:"\\b(classOf|isInstanceOf|asInstanceOf)\\b",name:"support.function.type-of.scala"},{match:"\\b(else|if|then|do|while|for|yield|match|case)\\b",name:"keyword.control.flow.scala"},{match:"^\\s*(end)\\s+(if|while|for|match)(?=\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)",name:"keyword.control.flow.end.scala"},{match:"^\\s*(end)\\s+(val)(?=\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)",name:"keyword.declaration.stable.end.scala"},{match:"^\\s*(end)\\s+(var)(?=\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)",name:"keyword.declaration.volatile.end.scala"},{match:"^\\s*(end)\\s+(?:(new|extension)|([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?))(?=\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)",captures:{"1":{name:"keyword.declaration.end.scala"},"2":{name:"keyword.declaration.end.scala"},"3":{name:"entity.name.type.declaration"}}},{match:"\\b(catch|finally|try)\\b",name:"keyword.control.exception.scala"},{match:"^\\s*(end)\\s+(try)(?=\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)",name:"keyword.control.exception.end.scala"},{match:"^\\s*(end)\\s+(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+))?(?=\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)",captures:{"1":{name:"keyword.declaration.end.scala"},"2":{name:"entity.name.declaration"}}},{match:"(==?|!=|<=|>=|<>|<|>)",name:"keyword.operator.comparison.scala"},{match:"(\\-|\\+|\\*|/(?![/*])|%|~)",name:"keyword.operator.arithmetic.scala"},{match:"(?<![!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]|_)(!|&&|\\|\\|)(?![!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}])",name:"keyword.operator.logical.scala"},{match:"(<-|←|->|→|=>|⇒|\\?|\\:+|@|\\|)+",name:"keyword.operator.scala"}]},"singleton-type":{match:"\\.(type)(?![A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[0-9])",captures:{"1":{name:"keyword.type.scala"}}},inline:{patterns:[{match:"\\b(inline)(?=\\s+((?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`)\\s*:)",name:"storage.modifier.other"},{match:"\\b(inline)\\b(?=(?:.(?!\\b(?:val|def|given)\\b))*\\b(if|match)\\b)",name:"keyword.control.flow.scala"}]},"scala-quoted-or-symbol":{patterns:[{match:"(')((?>(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)))(?!')",captures:{"1":{name:"keyword.control.flow.staging.scala constant.other.symbol.scala"},"2":{name:"constant.other.symbol.scala"}}},{match:"'(?=\\s*\\{(?!'))",name:"keyword.control.flow.staging.scala"},{match:"'(?=\\s*\\[(?!'))",name:"keyword.control.flow.staging.scala"},{match:"\\$(?=\\s*\\{)",name:"keyword.control.flow.staging.scala"}]},"xml-doublequotedString":{end:"\"",begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.xml"}},patterns:[{include:"#xml-entity"}],endCaptures:{"0":{name:"punctuation.definition.string.end.xml"}},name:"string.quoted.double.xml"},declarations:{patterns:[{match:"\\b(def)\\b\\s*(?!//|/\\*)((?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`))?",captures:{"1":{name:"keyword.declaration.scala"},"2":{name:"entity.name.function.declaration"}}},{match:"\\b(trait)\\b\\s*(?!//|/\\*)((?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`))?",captures:{"1":{name:"keyword.declaration.scala"},"2":{name:"entity.name.class.declaration"}}},{match:"\\b(?:(case)\\s+)?(class|object|enum)\\b\\s*(?!//|/\\*)((?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`))?",captures:{"1":{name:"keyword.declaration.scala"},"2":{name:"keyword.declaration.scala"},"3":{name:"entity.name.class.declaration"}}},{match:"(?<!\\.)\\b(type)\\b\\s*(?!//|/\\*)((?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`))?",captures:{"1":{name:"keyword.declaration.scala"},"2":{name:"entity.name.type.declaration"}}},{match:"\\b(?:(val)|(var))\\b\\s*(?!//|/\\*)(?=(?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`)?\\()",captures:{"1":{name:"keyword.declaration.stable.scala"},"2":{name:"keyword.declaration.volatile.scala"}}},{match:"\\b(val)\\b\\s*(?!//|/\\*)((?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`)(?:\\s*,\\s*(?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`))*)?",captures:{"1":{name:"keyword.declaration.stable.scala"},"2":{name:"variable.stable.declaration.scala"}}},{match:"\\b(var)\\b\\s*(?!//|/\\*)((?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`)(?:\\s*,\\s*(?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`))*)?",captures:{"1":{name:"keyword.declaration.volatile.scala"},"2":{name:"variable.volatile.declaration.scala"}}},{match:"\\b(package)\\s+(object)\\b\\s*(?!//|/\\*)((?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`))?",captures:{"1":{name:"keyword.other.scoping.scala"},"2":{name:"keyword.declaration.scala"},"3":{name:"entity.name.class.declaration"}}},{end:"(?<=[\\n;])",begin:"\\b(package)\\s+",beginCaptures:{"1":{name:"keyword.other.import.scala"}},patterns:[{include:"#comments"},{match:"(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+))",name:"entity.name.package.scala"},{match:"\\.",name:"punctuation.definition.package"}],name:"meta.package.scala"},{match:"\\b(given)\\b\\s*([_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|`[^`]+`)?",captures:{"1":{name:"keyword.declaration.scala"},"2":{name:"entity.name.given.declaration"}}}]},"char-literal":{end:"'|$",begin:"'",beginCaptures:{"0":{name:"punctuation.definition.character.begin.scala"}},patterns:[{match:"\\\\(?:[btnfr\\\\\"']|[0-7]{1,3}|u[0-9A-Fa-f]{4})",name:"constant.character.escape.scala"},{match:"\\\\.",name:"invalid.illegal.unrecognized-character-escape.scala"},{match:"[^']{2,}",name:"invalid.illegal.character-literal-too-long"},{match:"(?<!')[^']",name:"invalid.illegal.character-literal-too-long"}],endCaptures:{"0":{name:"punctuation.definition.character.end.scala"}},name:"string.quoted.other constant.character.literal.scala"},initialization:{match:"\\b(new)\\b",captures:{"1":{name:"keyword.declaration.scala"}}},"curly-braces":{begin:"\\{",end:"\\}",beginCaptures:{"0":{name:"punctuation.section.block.begin.scala"}},endCaptures:{"0":{name:"punctuation.section.block.end.scala"}},patterns:[{include:"#code"}]},"meta-brackets":{patterns:[{match:"\\{",comment:"The punctuation.section.*.begin is needed for return snippet in source bundle",name:"punctuation.section.block.begin.scala"},{match:"\\}",comment:"The punctuation.section.*.end is needed for return snippet in source bundle",name:"punctuation.section.block.end.scala"},{match:"{|}|\\(|\\)|\\[|\\]",name:"meta.bracket.scala"}],comment:"For themes: Brackets look nice when colored."},qualifiedClassName:{match:"(\\b([A-Z][\\w]*)(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?)",captures:{"1":{name:"entity.name.class"}}},backQuotedVariable:{match:"`[^`]+`"},"storage-modifiers":{patterns:[{match:"\\b(private\\[\\S+\\]|protected\\[\\S+\\]|private|protected)\\b",name:"storage.modifier.access"},{match:"\\b(synchronized|@volatile|abstract|final|lazy|sealed|implicit|override|@transient|@native)\\b",name:"storage.modifier.other"},{match:"(?<=^|\\s)\\b(transparent|opaque|infix|open|inline)\\b(?=[a-z\\s]*\\b(def|val|var|given|type|class|trait|object|enum)\\b)",name:"storage.modifier.other"}]},"meta-bounds":{match:"<%|=:=|<:<|<%<|>:|<:",comment:"For themes: Matching view bounds",name:"meta.bounds.scala"},"using-directive":{end:"\\n",begin:"^\\s*(//>)\\s*(using)[^\\S\\n]+(?:(\\S+))?",beginCaptures:{"1":{name:"punctuation.definition.comment.scala"},"2":{name:"keyword.other.import.scala"},"3":{patterns:[{match:"[A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)",name:"entity.name.import.scala"},{match:"\\.",name:"punctuation.definition.import"}]}},patterns:[{include:"#constants"},{include:"#strings"},{match:"[^\\s,]+",name:"string.quoted.double.scala"}],name:"comment.line.shebang.scala"},comments:{patterns:[{include:"#block-comments"},{end:"(?!\\G)",begin:"(^[ \\t]+)?(?=//)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.scala"}},patterns:[{end:"\\n",begin:"//",beginCaptures:{"0":{name:"punctuation.definition.comment.scala"}},name:"comment.line.double-slash.scala"}]}]},"block-comments":{patterns:[{match:"/\\*\\*/",captures:{"0":{name:"punctuation.definition.comment.scala"}},name:"comment.block.empty.scala"},{end:"\\*/",begin:"^\\s*(/\\*\\*)(?!/)",beginCaptures:{"1":{name:"punctuation.definition.comment.scala"}},patterns:[{match:"(@param)\\s+(\\S+)",captures:{"1":{name:"keyword.other.documentation.scaladoc.scala"},"2":{name:"variable.parameter.scala"}}},{match:"(@(?:tparam|throws))\\s+(\\S+)",captures:{"1":{name:"keyword.other.documentation.scaladoc.scala"},"2":{name:"entity.name.class"}}},{match:"@(return|see|note|example|constructor|usecase|author|version|since|todo|deprecated|migration|define|inheritdoc)\\b",name:"keyword.other.documentation.scaladoc.scala"},{match:"(\\[\\[)([^\\]]+)(\\]\\])",captures:{"1":{name:"punctuation.definition.documentation.link.scala"},"2":{name:"string.other.link.title.markdown"},"3":{name:"punctuation.definition.documentation.link.scala"}}},{include:"#block-comments"}],endCaptures:{"0":{name:"punctuation.definition.comment.scala"}},name:"comment.block.documentation.scala"},{end:"\\*/",begin:"/\\*",captures:{"0":{name:"punctuation.definition.comment.scala"}},patterns:[{include:"#block-comments"}],name:"comment.block.scala"}]},"xml-embedded-content":{patterns:[{end:"}",begin:"{",patterns:[{include:"#code"}],captures:{"0":{name:"meta.bracket.scala"}},name:"meta.source.embedded.scala"},{match:" (?:([-_a-zA-Z0-9]+)((:)))?([_a-zA-Z-]+)=",captures:{"1":{name:"entity.other.attribute-name.namespace.xml"},"2":{name:"entity.other.attribute-name.xml"},"3":{name:"punctuation.separator.namespace.xml"},"4":{name:"entity.other.attribute-name.localname.xml"}}},{include:"#xml-doublequotedString"},{include:"#xml-singlequotedString"}]},inheritance:{patterns:[{match:"\\b(extends|with|derives)\\b\\s*([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|`[^`]+`|(?=\\([^\\)]+=>)|(?=(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+))|(?=\"))?",captures:{"1":{name:"keyword.declaration.scala"},"2":{name:"entity.name.class"}}}]},extension:{patterns:[{match:"^\\s*(extension)\\s+(?=[\\[\\(])",captures:{"1":{name:"keyword.declaration.scala"}}}]},"parameter-list":{patterns:[{match:"(?<=[^\\._$a-zA-Z0-9])(`[^`]+`|[_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?)\\s*(:)\\s+",captures:{"1":{name:"variable.parameter.scala"},"2":{name:"meta.colon.scala"}}}]},"xml-literal":{patterns:[{end:"(>(<))/(?:([-_a-zA-Z0-9]+)((:)))?([-_a-zA-Z0-9:]*[_a-zA-Z0-9])(>)",begin:"(<)((?:([_a-zA-Z0-9][_a-zA-Z0-9]*)((:)))?([_a-zA-Z0-9][-_a-zA-Z0-9:]*))(?=(\\s[^>]*)?></\\2>)",beginCaptures:{"1":{name:"punctuation.definition.tag.xml"},"3":{name:"entity.name.tag.namespace.xml"},"4":{name:"entity.name.tag.xml"},"5":{name:"punctuation.separator.namespace.xml"},"6":{name:"entity.name.tag.localname.xml"}},patterns:[{include:"#xml-embedded-content"}],comment:"We do not allow a tag name to start with a - since this would likely conflict with the <- operator. This is not very common for tag names anyway. Also code such as -- if (val <val2 || val> val3) will falsly be recognized as an xml tag. The solution is to put a space on either side of the comparison operator",endCaptures:{"1":{name:"punctuation.definition.tag.xml"},"2":{name:"meta.scope.between-tag-pair.xml"},"3":{name:"entity.name.tag.namespace.xml"},"4":{name:"entity.name.tag.xml"},"5":{name:"punctuation.separator.namespace.xml"},"6":{name:"entity.name.tag.localname.xml"},"7":{name:"punctuation.definition.tag.xml"}},name:"meta.tag.no-content.xml"},{end:"(/?>)",begin:"(</?)(?:([_a-zA-Z0-9][-_a-zA-Z0-9]*)((:)))?([_a-zA-Z0-9][-_a-zA-Z0-9:]*)(?=[^>]*?>)",patterns:[{include:"#xml-embedded-content"}],captures:{"1":{name:"punctuation.definition.tag.xml"},"2":{name:"entity.name.tag.namespace.xml"},"3":{name:"entity.name.tag.xml"},"4":{name:"punctuation.separator.namespace.xml"},"5":{name:"entity.name.tag.localname.xml"}},name:"meta.tag.xml"},{include:"#xml-entity"}]}},uuid:"158C0929-299A-40C8-8D89-316BE0C446E8",patterns:[{include:"#code"}],name:"scala",scopeName:"source.scala"}; + +export { scala_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/scheme.tmLanguage-d7ec01c9.mjs b/docs/shiki/dist/languages/scheme.tmLanguage-d7ec01c9.mjs new file mode 100644 index 00000000..168128a8 --- /dev/null +++ b/docs/shiki/dist/languages/scheme.tmLanguage-d7ec01c9.mjs @@ -0,0 +1,3 @@ +var scheme_tmLanguage = {comment:"\n\t\tThe foldings do not currently work the way I want them to. This\n\t\tmay be a limitation of the way they are applied rather than the\n\t\tregexps in use. Nonetheless, the foldings will end on the last\n\t\tidentically indented blank line following an s-expression. Not\n\t\tideal perhaps, but it works. Also, the #illegal pattern never\n\t\tmatches an unpaired ( as being illegal. Why?! -- Rob Rix\n\t\t\n\t\tOk, hopefully this grammar works better on quoted stuff now. It\n\t\tmay break for fancy macros, but should generally work pretty\n\t\tsmoothly. -- Jacob Rus\n\t\t\n\t\tI have attempted to get this under control but because of the way folding\n\t\tand indentation interact in Textmate, I am not sure if it is possible. In the\n\t\tmeantime, I have implemented Python-style folding anchored at newlines.\n\t\tAdditionally, I have made some minor improvements to the numeric constant\n\t\thighlighting. Next up is square bracket expressions, I guess, but that\n\t\tshould be trivial. -- ozy`\n\t",fileTypes:["scm","ss","sch","rkt"],keyEquivalent:"^~S",name:"scheme",patterns:[{include:"#comment"},{include:"#block-comment"},{include:"#sexp"},{include:"#string"},{include:"#language-functions"},{include:"#quote"},{include:"#illegal"}],repository:{comment:{begin:"(^[ \\t]+)?(?=;)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.scheme"}},end:"(?!\\G)",patterns:[{begin:";",beginCaptures:{"0":{name:"punctuation.definition.comment.scheme"}},end:"\\n",name:"comment.line.semicolon.scheme"}]},"block-comment":{begin:"\\#\\|",contentName:"comment",end:"\\|\\#",name:"comment",patterns:[{include:"#block-comment",name:"comment"}]},constants:{patterns:[{match:"#[t|f]",name:"constant.language.boolean.scheme"},{match:"(?<=[\\(\\s])((#e|#i)?[0-9]+(\\.[0-9]+)?|(#x)[0-9a-fA-F]+|(#o)[0-7]+|(#b)[01]+)(?=[\\s;()'\",\\[\\]])",name:"constant.numeric.scheme"}]},illegal:{match:"[()\\[\\]]",name:"invalid.illegal.parenthesis.scheme"},"language-functions":{patterns:[{match:"(?x)\n\t\t\t\t\t\t(?<=(\\s|\\(|\\[)) # preceded by space or ( \n\t\t\t\t\t\t( do|or|and|else|quasiquote|begin|if|case|set!|\n\t\t\t\t\t\t cond|let|unquote|define|let\\*|unquote-splicing|delay|\n\t\t\t\t\t\t letrec)\n\t\t\t\t\t\t(?=(\\s|\\())",name:"keyword.control.scheme"},{comment:"\n\t\t\t\t\t\tThese functions run a test, and return a boolean\n\t\t\t\t\t\tanswer.\n\t\t\t\t\t",match:"(?x)\n\t\t\t\t\t\t(?<=(\\s|\\()) # preceded by space or (\n\t\t\t\t\t\t( char-alphabetic|char-lower-case|char-numeric|\n\t\t\t\t\t\t char-ready|char-upper-case|char-whitespace|\n\t\t\t\t\t\t (?:char|string)(?:-ci)?(?:=|<=?|>=?)|\n\t\t\t\t\t\t atom|boolean|bound-identifier=|char|complex|\n\t\t\t\t\t\t identifier|integer|symbol|free-identifier=|inexact|\n\t\t\t\t\t\t eof-object|exact|list|(?:input|output)-port|pair|\n\t\t\t\t\t\t real|rational|zero|vector|negative|odd|null|string|\n\t\t\t\t\t\t eq|equal|eqv|even|number|positive|procedure\n\t\t\t\t\t\t)\n\t\t\t\t\t\t(\\?)\t\t# name ends with ? sign\n\t\t\t\t\t\t(?=(\\s|\\()) # followed by space or (\n\t\t\t\t\t",name:"support.function.boolean-test.scheme"},{comment:"\n\t\t\t\t\t\tThese functions change one type into another.\n\t\t\t\t\t",match:"(?x)\n\t\t\t\t\t\t(?<=(\\s|\\()) # preceded by space or (\n\t\t\t\t\t\t( char->integer|exact->inexact|inexact->exact|\n\t\t\t\t\t\t integer->char|symbol->string|list->vector|\n\t\t\t\t\t\t list->string|identifier->symbol|vector->list|\n\t\t\t\t\t\t string->list|string->number|string->symbol|\n\t\t\t\t\t\t number->string\n\t\t\t\t\t\t)\n\t\t\t\t\t\t(?=(\\s|\\()) # followed by space or (\t\t\t\t\t\n\t\t\t\t\t",name:"support.function.convert-type.scheme"},{comment:"\n\t\t\t\t\t\tThese functions are potentially dangerous because\n\t\t\t\t\t\tthey have side-effects which could affect other\n\t\t\t\t\t\tparts of the program.\n\t\t\t\t\t",match:"(?x)\n\t\t\t\t\t\t(?<=(\\s|\\()) # preceded by space or (\n\t\t\t\t\t\t( set-(?:car|cdr)|\t\t\t\t # set car/cdr\n\t\t\t\t\t\t (?:vector|string)-(?:fill|set) # fill/set string/vector\n\t\t\t\t\t\t)\n\t\t\t\t\t\t(!)\t\t\t# name ends with ! sign\n\t\t\t\t\t\t(?=(\\s|\\()) # followed by space or (\n\t\t\t\t\t",name:"support.function.with-side-effects.scheme"},{comment:"\n\t\t\t\t\t\t+, -, *, /, =, >, etc. \n\t\t\t\t\t",match:"(?x)\n\t\t\t\t\t\t(?<=(\\s|\\()) # preceded by space or (\n\t\t\t\t\t\t( >=?|<=?|=|[*/+-])\n\t\t\t\t\t\t(?=(\\s|\\()) # followed by space or (\n\t\t\t\t\t\t",name:"keyword.operator.arithmetic.scheme"},{match:"(?x)\n\t\t\t\t\t\t(?<=(\\s|\\()) # preceded by space or (\n\t\t\t\t\t\t( append|apply|approximate|\n\t\t\t\t\t\t call-with-current-continuation|call/cc|catch|\n\t\t\t\t\t\t construct-identifier|define-syntax|display|foo|\n\t\t\t\t\t\t for-each|force|format|cd|gen-counter|gen-loser|\n\t\t\t\t\t\t generate-identifier|last-pair|length|let-syntax|\n\t\t\t\t\t\t letrec-syntax|list|list-ref|list-tail|load|log|\n\t\t\t\t\t\t macro|magnitude|map|map-streams|max|member|memq|\n\t\t\t\t\t\t memv|min|newline|nil|not|peek-char|rationalize|\n\t\t\t\t\t\t read|read-char|return|reverse|sequence|substring|\n\t\t\t\t\t\t syntax|syntax-rules|transcript-off|transcript-on|\n\t\t\t\t\t\t truncate|unwrap-syntax|values-list|write|write-char|\n\t\t\t\t\t\t \n\t\t\t\t\t\t # cons, car, cdr, etc\n\t\t\t\t\t\t cons|c(a|d){1,4}r| \n \n\t\t\t\t\t\t # unary math operators\n\t\t\t\t\t\t abs|acos|angle|asin|assoc|assq|assv|atan|ceiling|\n\t\t\t\t\t\t cos|floor|round|sin|sqrt|tan|\n\t\t\t\t\t\t (?:real|imag)-part|numerator|denominator\n \n\t\t\t\t\t\t # other math operators\n\t\t\t\t\t\t modulo|exp|expt|remainder|quotient|lcm|\n \n\t\t\t\t\t\t # ports / files\n\t\t\t\t\t\t call-with-(?:input|output)-file|\n\t\t\t\t\t\t (?:close|current)-(?:input|output)-port|\n\t\t\t\t\t\t with-(?:input|output)-from-file|\n\t\t\t\t\t\t open-(?:input|output)-file|\n\t\t\t\t\t\t \n\t\t\t\t\t\t # char-«foo»\n\t\t\t\t\t\t char-(?:downcase|upcase|ready)|\n\t\t\t\t\t\t \n\t\t\t\t\t\t # make-«foo»\n\t\t\t\t\t\t make-(?:polar|promise|rectangular|string|vector)\n\t\t\t\t\t\t \n\t\t\t\t\t\t # string-«foo», vector-«foo»\n\t\t\t\t\t\t string(?:-(?:append|copy|length|ref))?|\n\t\t\t\t\t\t vector(?:-length|-ref)\n\t\t\t\t\t\t)\n\t\t\t\t\t\t(?=(\\s|\\()) # followed by space or (\n\t\t\t\t\t",name:"support.function.general.scheme"}]},quote:{comment:"\n\t\t\t\tWe need to be able to quote any kind of item, which creates\n\t\t\t\ta tiny bit of complexity in our grammar. It is hopefully\n\t\t\t\tnot overwhelming complexity.\n\t\t\t\t\n\t\t\t\tNote: the first two matches are special cases. quoted\n\t\t\t\tsymbols, and quoted empty lists are considered constant.other\n\t\t\t\t\n\t\t\t",patterns:[{captures:{"1":{name:"punctuation.section.quoted.symbol.scheme"}},match:"(?x)\n\t\t\t\t\t\t(')\\s*\n\t\t\t\t\t\t([[:alnum:]][[:alnum:]!$%&*+-./:<=>?@^_~]*)\n\t\t\t\t\t",name:"constant.other.symbol.scheme"},{captures:{"1":{name:"punctuation.section.quoted.empty-list.scheme"},"2":{name:"meta.expression.scheme"},"3":{name:"punctuation.section.expression.begin.scheme"},"4":{name:"punctuation.section.expression.end.scheme"}},match:"(?x)\n\t\t\t\t\t\t(')\\s*\n\t\t\t\t\t\t((\\()\\s*(\\)))\n\t\t\t\t\t",name:"constant.other.empty-list.schem"},{begin:"(')\\s*",beginCaptures:{"1":{name:"punctuation.section.quoted.scheme"}},comment:"quoted double-quoted string or s-expression",end:"(?=[\\s()])|(?<=\\n)",name:"string.other.quoted-object.scheme",patterns:[{include:"#quoted"}]}]},"quote-sexp":{begin:"(?<=\\()\\s*(quote)\\s+",beginCaptures:{"1":{name:"keyword.control.quote.scheme"}},comment:"\n\t\t\t\tSomething quoted with (quote «thing»). In this case «thing»\n\t\t\t\twill not be evaluated, so we are considering it a string.\n\t\t\t",contentName:"string.other.quote.scheme",end:"(?=[\\s)])|(?<=\\n)",patterns:[{include:"#quoted"}]},quoted:{patterns:[{include:"#string"},{begin:"(\\()",beginCaptures:{"1":{name:"punctuation.section.expression.begin.scheme"}},end:"(\\))",endCaptures:{"1":{name:"punctuation.section.expression.end.scheme"}},name:"meta.expression.scheme",patterns:[{include:"#quoted"}]},{include:"#quote"},{include:"#illegal"}]},sexp:{begin:"(\\()",beginCaptures:{"1":{name:"punctuation.section.expression.begin.scheme"}},end:"(\\))(\\n)?",endCaptures:{"1":{name:"punctuation.section.expression.end.scheme"},"2":{name:"meta.after-expression.scheme"}},name:"meta.expression.scheme",patterns:[{include:"#comment"},{begin:"(?x)\n\t\t\t\t\t\t(?<=\\() # preceded by (\n\t\t\t\t\t\t(define)\\s+ # define\n\t\t\t\t\t\t(\\() # list of parameters\n\t\t\t\t\t\t ([[:alnum:]][[:alnum:]!$%&*+-./:<=>?@^_~]*)\n\t\t\t\t\t\t ((\\s+\n\t\t\t\t\t\t ([[:alnum:]][[:alnum:]!$%&*+-./:<=>?@^_~]*|[._])\n\t\t\t\t\t\t )*\n\t\t\t\t\t\t )\\s*\n\t\t\t\t\t\t(\\))\n\t\t\t\t\t",captures:{"1":{name:"keyword.control.scheme"},"2":{name:"punctuation.definition.function.scheme"},"3":{name:"entity.name.function.scheme"},"4":{name:"variable.parameter.function.scheme"},"7":{name:"punctuation.definition.function.scheme"}},end:"(?=\\))",name:"meta.declaration.procedure.scheme",patterns:[{include:"#comment"},{include:"#sexp"},{include:"#illegal"}]},{begin:"(?x)\n\t\t\t\t\t\t(?<=\\() # preceded by (\n\t\t\t\t\t\t(lambda)\\s+\n\t\t\t\t\t\t(\\() # opening paren\n\t\t\t\t\t\t((?:\n\t\t\t\t\t\t ([[:alnum:]][[:alnum:]!$%&*+-./:<=>?@^_~]*|[._])\n\t\t\t\t\t\t \\s+\n\t\t\t\t\t\t)*(?:\n\t\t\t\t\t\t ([[:alnum:]][[:alnum:]!$%&*+-./:<=>?@^_~]*|[._])\n\t\t\t\t\t\t)?)\n\t\t\t\t\t\t(\\)) # closing paren\n\t\t\t\t\t",captures:{"1":{name:"keyword.control.scheme"},"2":{name:"punctuation.definition.variable.scheme"},"3":{name:"variable.parameter.scheme"},"6":{name:"punctuation.definition.variable.scheme"}},comment:"\n\t\t\t\t\t\tNot sure this one is quite correct. That \\s* is\n\t\t\t\t\t\tparticularly troubling\n\t\t\t\t\t",end:"(?=\\))",name:"meta.declaration.procedure.scheme",patterns:[{include:"#comment"},{include:"#sexp"},{include:"#illegal"}]},{begin:"(?<=\\()(define)\\s([[:alnum:]][[:alnum:]!$%&*+-./:<=>?@^_~]*)\\s*.*?",captures:{"1":{name:"keyword.control.scheme"},"2":{name:"variable.other.scheme"}},end:"(?=\\))",name:"meta.declaration.variable.scheme",patterns:[{include:"#comment"},{include:"#sexp"},{include:"#illegal"}]},{include:"#quote-sexp"},{include:"#quote"},{include:"#language-functions"},{include:"#string"},{include:"#constants"},{match:"(?<=[\\(\\s])(#\\\\)(space|newline|tab)(?=[\\s\\)])",name:"constant.character.named.scheme"},{match:"(?<=[\\(\\s])(#\\\\)x[0-9A-F]{2,4}(?=[\\s\\)])",name:"constant.character.hex-literal.scheme"},{match:"(?<=[\\(\\s])(#\\\\).(?=[\\s\\)])",name:"constant.character.escape.scheme"},{comment:"\n\t\t\t\t\t\tthe . in (a . b) which conses together two elements\n\t\t\t\t\t\ta and b. (a b c) == (a . (b . (c . nil)))\n\t\t\t\t\t",match:"(?<=[ ()])\\.(?=[ ()])",name:"punctuation.separator.cons.scheme"},{include:"#sexp"},{include:"#illegal"}]},string:{begin:"(\")",beginCaptures:{"1":{name:"punctuation.definition.string.begin.scheme"}},end:"(\")",endCaptures:{"1":{name:"punctuation.definition.string.end.scheme"}},name:"string.quoted.double.scheme",patterns:[{match:"\\\\.",name:"constant.character.escape.scheme"}]}},scopeName:"source.scheme",uuid:"3EC2CFD0-909C-4692-AC29-1A60ADBC161E"}; + +export { scheme_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/scss.tmLanguage-3e3c6b2d.mjs b/docs/shiki/dist/languages/scss.tmLanguage-3e3c6b2d.mjs new file mode 100644 index 00000000..123b3a50 --- /dev/null +++ b/docs/shiki/dist/languages/scss.tmLanguage-3e3c6b2d.mjs @@ -0,0 +1,3 @@ +var scss_tmLanguage = {information_for_contributors:["This file has been converted from https://github.com/atom/language-sass/blob/master/grammars/scss.cson","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."],version:"https://github.com/atom/language-sass/commit/f52ab12f7f9346cc2568129d8c4419bd3d506b47",name:"scss",scopeName:"source.css.scss",patterns:[{include:"#variable_setting"},{include:"#at_rule_forward"},{include:"#at_rule_use"},{include:"#at_rule_include"},{include:"#at_rule_import"},{include:"#general"},{include:"#flow_control"},{include:"#rules"},{include:"#property_list"},{include:"#at_rule_mixin"},{include:"#at_rule_media"},{include:"#at_rule_function"},{include:"#at_rule_charset"},{include:"#at_rule_option"},{include:"#at_rule_namespace"},{include:"#at_rule_fontface"},{include:"#at_rule_page"},{include:"#at_rule_keyframes"},{include:"#at_rule_at_root"},{include:"#at_rule_supports"},{match:";",name:"punctuation.terminator.rule.css"}],repository:{at_rule_charset:{begin:"\\s*((@)charset\\b)\\s*",captures:{"1":{name:"keyword.control.at-rule.charset.scss"},"2":{name:"punctuation.definition.keyword.scss"}},end:"\\s*((?=;|$))",name:"meta.at-rule.charset.scss",patterns:[{include:"#variable"},{include:"#string_single"},{include:"#string_double"}]},at_rule_content:{begin:"\\s*((@)content\\b)\\s*",captures:{"1":{name:"keyword.control.content.scss"}},end:"\\s*((?=;))",name:"meta.content.scss",patterns:[{include:"#variable"},{include:"#selectors"},{include:"#property_values"}]},at_rule_each:{begin:"\\s*((@)each\\b)\\s*",captures:{"1":{name:"keyword.control.each.scss"},"2":{name:"punctuation.definition.keyword.scss"}},end:"\\s*((?=}))",name:"meta.at-rule.each.scss",patterns:[{match:"\\b(in|,)\\b",name:"keyword.control.operator"},{include:"#variable"},{include:"#property_values"},{include:"$self"}]},at_rule_else:{begin:"\\s*((@)else(\\s*(if)?))\\s*",captures:{"1":{name:"keyword.control.else.scss"},"2":{name:"punctuation.definition.keyword.scss"}},end:"\\s*(?={)",name:"meta.at-rule.else.scss",patterns:[{include:"#conditional_operators"},{include:"#variable"},{include:"#property_values"}]},at_rule_extend:{begin:"\\s*((@)extend\\b)\\s*",captures:{"1":{name:"keyword.control.at-rule.extend.scss"},"2":{name:"punctuation.definition.keyword.scss"}},end:"\\s*(?=;)",name:"meta.at-rule.extend.scss",patterns:[{include:"#variable"},{include:"#selectors"},{include:"#property_values"}]},at_rule_fontface:{patterns:[{begin:"^\\s*((@)font-face\\b)",beginCaptures:{"1":{name:"keyword.control.at-rule.fontface.scss"},"2":{name:"punctuation.definition.keyword.scss"}},end:"\\s*(?={)",name:"meta.at-rule.fontface.scss",patterns:[{include:"#function_attributes"}]}]},at_rule_for:{begin:"\\s*((@)for\\b)\\s*",captures:{"1":{name:"keyword.control.for.scss"},"2":{name:"punctuation.definition.keyword.scss"}},end:"\\s*(?={)",name:"meta.at-rule.for.scss",patterns:[{match:"(==|!=|<=|>=|<|>|from|to|through)",name:"keyword.control.operator"},{include:"#variable"},{include:"#property_values"},{include:"$self"}]},at_rule_forward:{begin:"\\s*((@)forward\\b)\\s*",captures:{"1":{name:"keyword.control.at-rule.forward.scss"},"2":{name:"punctuation.definition.keyword.scss"}},end:"\\s*(?=;)",name:"meta.at-rule.forward.scss",patterns:[{match:"\\b(as|hide|show)\\b",name:"keyword.control.operator"},{match:"\\b([\\w-]+)(\\*)",captures:{"1":{name:"entity.other.attribute-name.module.scss"},"2":{name:"punctuation.definition.wildcard.scss"}}},{match:"\\b[\\w-]+\\b",name:"entity.name.function.scss"},{include:"#variable"},{include:"#string_single"},{include:"#string_double"},{include:"#comment_line"},{include:"#comment_block"}]},at_rule_function:{patterns:[{begin:"\\s*((@)function\\b)\\s*",captures:{"1":{name:"keyword.control.at-rule.function.scss"},"2":{name:"punctuation.definition.keyword.scss"},"3":{name:"entity.name.function.scss"}},end:"\\s*(?={)",name:"meta.at-rule.function.scss",patterns:[{include:"#function_attributes"}]},{captures:{"1":{name:"keyword.control.at-rule.function.scss"},"2":{name:"punctuation.definition.keyword.scss"},"3":{name:"entity.name.function.scss"}},match:"\\s*((@)function\\b)\\s*",name:"meta.at-rule.function.scss"}]},at_rule_if:{begin:"\\s*((@)if\\b)\\s*",captures:{"1":{name:"keyword.control.if.scss"},"2":{name:"punctuation.definition.keyword.scss"}},end:"\\s*(?={)",name:"meta.at-rule.if.scss",patterns:[{include:"#conditional_operators"},{include:"#variable"},{include:"#property_values"}]},at_rule_import:{begin:"\\s*((@)import\\b)\\s*",captures:{"1":{name:"keyword.control.at-rule.import.scss"},"2":{name:"punctuation.definition.keyword.scss"}},end:"\\s*((?=;)|(?=}))",name:"meta.at-rule.import.scss",patterns:[{include:"#variable"},{include:"#string_single"},{include:"#string_double"},{include:"#functions"},{include:"#comment_line"}]},at_rule_include:{patterns:[{begin:"(?<=@include)\\s+(?:([\\w-]+)\\s*(\\.))?([\\w-]+)\\s*(\\()",beginCaptures:{"1":{name:"variable.scss"},"2":{name:"punctuation.access.module.scss"},"3":{name:"entity.name.function.scss"},"4":{name:"punctuation.definition.parameters.begin.bracket.round.scss"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.parameters.end.bracket.round.scss"}},name:"meta.at-rule.include.scss",patterns:[{include:"#function_attributes"}]},{match:"(?<=@include)\\s+(?:([\\w-]+)\\s*(\\.))?([\\w-]+)",captures:{"0":{name:"meta.at-rule.include.scss"},"1":{name:"variable.scss"},"2":{name:"punctuation.access.module.scss"},"3":{name:"entity.name.function.scss"}}},{match:"((@)include)\\b",captures:{"0":{name:"meta.at-rule.include.scss"},"1":{name:"keyword.control.at-rule.include.scss"},"2":{name:"punctuation.definition.keyword.scss"}}}]},at_rule_keyframes:{begin:"(?<=^|\\s)(@)(?:-(?:webkit|moz)-)?keyframes\\b",beginCaptures:{"0":{name:"keyword.control.at-rule.keyframes.scss"},"1":{name:"punctuation.definition.keyword.scss"}},end:"(?<=})",name:"meta.at-rule.keyframes.scss",patterns:[{match:"(?<=@keyframes)\\s+((?:[_A-Za-z][-\\w]|-[_A-Za-z])[-\\w]*)",captures:{"1":{name:"entity.name.function.scss"}}},{begin:"(?<=@keyframes)\\s+(\")",beginCaptures:{"1":{name:"punctuation.definition.string.begin.scss"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.scss"}},name:"string.quoted.double.scss",contentName:"entity.name.function.scss",patterns:[{match:"\\\\(\\h{1,6}|.)",name:"constant.character.escape.scss"},{include:"#interpolation"}]},{begin:"(?<=@keyframes)\\s+(')",beginCaptures:{"1":{name:"punctuation.definition.string.begin.scss"}},end:"'",endCaptures:{"0":{name:"punctuation.definition.string.end.scss"}},name:"string.quoted.single.scss",contentName:"entity.name.function.scss",patterns:[{match:"\\\\(\\h{1,6}|.)",name:"constant.character.escape.scss"},{include:"#interpolation"}]},{begin:"{",beginCaptures:{"0":{name:"punctuation.section.keyframes.begin.scss"}},end:"}",endCaptures:{"0":{name:"punctuation.section.keyframes.end.scss"}},patterns:[{match:"\\b(?:(?:100|[1-9]\\d|\\d)%|from|to)(?=\\s*{)",name:"entity.other.attribute-name.scss"},{include:"#flow_control"},{include:"#interpolation"},{include:"#property_list"},{include:"#rules"}]}]},at_rule_media:{patterns:[{begin:"^\\s*((@)media)\\b",beginCaptures:{"1":{name:"keyword.control.at-rule.media.scss"},"2":{name:"punctuation.definition.keyword.scss"}},end:"\\s*(?={)",name:"meta.at-rule.media.scss",patterns:[{include:"#comment_docblock"},{include:"#comment_block"},{include:"#comment_line"},{match:"\\b(only)\\b",name:"keyword.control.operator.css.scss"},{begin:"\\(",beginCaptures:{"0":{name:"punctuation.definition.media-query.begin.bracket.round.scss"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.media-query.end.bracket.round.scss"}},name:"meta.property-list.media-query.scss",patterns:[{begin:"(?<![-a-z])(?=[-a-z])",end:"$|(?![-a-z])",name:"meta.property-name.media-query.scss",patterns:[{include:"source.css#media-features"},{include:"source.css#property-names"}]},{begin:"(:)\\s*(?!(\\s*{))",beginCaptures:{"1":{name:"punctuation.separator.key-value.scss"}},end:"\\s*(;|(?=}|\\)))",endCaptures:{"1":{name:"punctuation.terminator.rule.scss"}},contentName:"meta.property-value.media-query.scss",patterns:[{include:"#general"},{include:"#property_values"}]}]},{include:"#variable"},{include:"#conditional_operators"},{include:"source.css#media-types"}]}]},at_rule_mixin:{patterns:[{begin:"(?<=@mixin)\\s+([\\w-]+)\\s*(\\()",beginCaptures:{"1":{name:"entity.name.function.scss"},"2":{name:"punctuation.definition.parameters.begin.bracket.round.scss"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.parameters.end.bracket.round.scss"}},name:"meta.at-rule.mixin.scss",patterns:[{include:"#function_attributes"}]},{match:"(?<=@mixin)\\s+([\\w-]+)",captures:{"1":{name:"entity.name.function.scss"}},name:"meta.at-rule.mixin.scss"},{match:"((@)mixin)\\b",captures:{"1":{name:"keyword.control.at-rule.mixin.scss"},"2":{name:"punctuation.definition.keyword.scss"}},name:"meta.at-rule.mixin.scss"}]},at_rule_namespace:{patterns:[{begin:"(?<=@namespace)\\s+(?=url)",end:"(?=;|$)",name:"meta.at-rule.namespace.scss",patterns:[{include:"#property_values"},{include:"#string_single"},{include:"#string_double"}]},{begin:"(?<=@namespace)\\s+([\\w-]*)",captures:{"1":{name:"entity.name.namespace-prefix.scss"}},end:"(?=;|$)",name:"meta.at-rule.namespace.scss",patterns:[{include:"#variables"},{include:"#property_values"},{include:"#string_single"},{include:"#string_double"}]},{match:"((@)namespace)\\b",captures:{"1":{name:"keyword.control.at-rule.namespace.scss"},"2":{name:"punctuation.definition.keyword.scss"}},name:"meta.at-rule.namespace.scss"}]},at_rule_option:{captures:{"1":{name:"keyword.control.at-rule.charset.scss"},"2":{name:"punctuation.definition.keyword.scss"}},match:"^\\s*((@)option\\b)\\s*",name:"meta.at-rule.option.scss"},at_rule_page:{patterns:[{begin:"^\\s*((@)page)(?=:|\\s)\\s*([-:\\w]*)",captures:{"1":{name:"keyword.control.at-rule.page.scss"},"2":{name:"punctuation.definition.keyword.scss"},"3":{name:"entity.name.function.scss"}},end:"\\s*(?={)",name:"meta.at-rule.page.scss"}]},at_rule_return:{begin:"\\s*((@)(return)\\b)",captures:{"1":{name:"keyword.control.return.scss"},"2":{name:"punctuation.definition.keyword.scss"}},end:"\\s*((?=;))",name:"meta.at-rule.return.scss",patterns:[{include:"#variable"},{include:"#property_values"}]},at_rule_at_root:{begin:"\\s*((@)(at-root))(\\s+|$)",end:"\\s*(?={)",beginCaptures:{"1":{name:"keyword.control.at-rule.at-root.scss"},"2":{name:"punctuation.definition.keyword.scss"}},name:"meta.at-rule.at-root.scss",patterns:[{include:"#function_attributes"},{include:"#functions"},{include:"#selectors"}]},at_rule_supports:{begin:"(?<=^|\\s)(@)supports\\b",captures:{"0":{name:"keyword.control.at-rule.supports.scss"},"1":{name:"punctuation.definition.keyword.scss"}},end:"(?={)|$",name:"meta.at-rule.supports.scss",patterns:[{include:"#logical_operators"},{include:"#properties"},{match:"\\(",name:"punctuation.definition.condition.begin.bracket.round.scss"},{match:"\\)",name:"punctuation.definition.condition.end.bracket.round.scss"}]},at_rule_use:{begin:"\\s*((@)use\\b)\\s*",captures:{"1":{name:"keyword.control.at-rule.use.scss"},"2":{name:"punctuation.definition.keyword.scss"}},end:"\\s*(?=;)",name:"meta.at-rule.use.scss",patterns:[{match:"\\b(as|with)\\b",name:"keyword.control.operator"},{match:"\\b[\\w-]+\\b",name:"variable.scss"},{match:"\\*",name:"variable.language.expanded-namespace.scss"},{include:"#string_single"},{include:"#string_double"},{include:"#comment_line"},{include:"#comment_block"},{begin:"\\(",beginCaptures:{"0":{name:"punctuation.definition.parameters.begin.bracket.round.scss"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.parameters.end.bracket.round.scss"}},patterns:[{include:"#function_attributes"}]}]},at_rule_warn:{begin:"\\s*((@)(warn|debug|error)\\b)\\s*",captures:{"1":{name:"keyword.control.warn.scss"},"2":{name:"punctuation.definition.keyword.scss"}},end:"\\s*(?=;)",name:"meta.at-rule.warn.scss",patterns:[{include:"#variable"},{include:"#string_double"},{include:"#string_single"}]},at_rule_while:{begin:"\\s*((@)while\\b)\\s*",captures:{"1":{name:"keyword.control.while.scss"},"2":{name:"punctuation.definition.keyword.scss"}},end:"\\s*(?=})",name:"meta.at-rule.while.scss",patterns:[{include:"#conditional_operators"},{include:"#variable"},{include:"#property_values"},{include:"$self"}]},comment_docblock:{name:"comment.block.documentation.scss",begin:"///",beginCaptures:{"0":{name:"punctuation.definition.comment.scss"}},end:"(?=$)",patterns:[{include:"source.sassdoc"}]},comment_block:{begin:"/\\*",beginCaptures:{"0":{name:"punctuation.definition.comment.scss"}},end:"\\*/",endCaptures:{"0":{name:"punctuation.definition.comment.scss"}},name:"comment.block.scss"},comment_line:{begin:"//",beginCaptures:{"0":{name:"punctuation.definition.comment.scss"}},end:"\\n",name:"comment.line.scss"},constant_default:{match:"!default",name:"keyword.other.default.scss"},constant_functions:{begin:"(?:([\\w-]+)(\\.))?([\\w-]+)(\\()",beginCaptures:{"1":{name:"variable.scss"},"2":{name:"punctuation.access.module.scss"},"3":{name:"support.function.misc.scss"},"4":{name:"punctuation.section.function.scss"}},end:"(\\))",endCaptures:{"1":{name:"punctuation.section.function.scss"}},patterns:[{include:"#parameters"}]},constant_important:{match:"!important",name:"keyword.other.important.scss"},constant_mathematical_symbols:{match:"\\b(\\+|-|\\*|/)\\b",name:"support.constant.mathematical-symbols.scss"},constant_optional:{match:"!optional",name:"keyword.other.optional.scss"},constant_sass_functions:{begin:"(headings|stylesheet-url|rgba?|hsla?|ie-hex-str|red|green|blue|alpha|opacity|hue|saturation|lightness|prefixed|prefix|-moz|-svg|-css2|-pie|-webkit|-ms|font-(?:files|url)|grid-image|image-(?:width|height|url|color)|sprites?|sprite-(?:map|map-name|file|url|position)|inline-(?:font-files|image)|opposite-position|grad-point|grad-end-position|color-stops|color-stops-in-percentages|grad-color-stops|(?:radial|linear)-(?:gradient|svg-gradient)|opacify|fade-?in|transparentize|fade-?out|lighten|darken|saturate|desaturate|grayscale|adjust-(?:hue|lightness|saturation|color)|scale-(?:lightness|saturation|color)|change-color|spin|complement|invert|mix|-compass-(?:list|space-list|slice|nth|list-size)|blank|compact|nth|first-value-of|join|length|append|nest|append-selector|headers|enumerate|range|percentage|unitless|unit|if|type-of|comparable|elements-of-type|quote|unquote|escape|e|sin|cos|tan|abs|round|ceil|floor|pi|translate(?:X|Y))(\\()",beginCaptures:{"1":{name:"support.function.misc.scss"},"2":{name:"punctuation.section.function.scss"}},end:"(\\))",endCaptures:{"1":{name:"punctuation.section.function.scss"}},patterns:[{include:"#parameters"}]},flow_control:{patterns:[{include:"#at_rule_if"},{include:"#at_rule_else"},{include:"#at_rule_warn"},{include:"#at_rule_for"},{include:"#at_rule_while"},{include:"#at_rule_each"},{include:"#at_rule_return"}]},function_attributes:{patterns:[{match:":",name:"punctuation.separator.key-value.scss"},{include:"#general"},{include:"#property_values"},{match:"[={}\\?;@]",name:"invalid.illegal.scss"}]},functions:{patterns:[{begin:"([\\w-]{1,})(\\()\\s*",beginCaptures:{"1":{name:"support.function.misc.scss"},"2":{name:"punctuation.section.function.scss"}},end:"(\\))",endCaptures:{"1":{name:"punctuation.section.function.scss"}},patterns:[{include:"#parameters"}]},{match:"([\\w-]{1,})",name:"support.function.misc.scss"}]},general:{patterns:[{include:"#variable"},{include:"#comment_docblock"},{include:"#comment_block"},{include:"#comment_line"}]},interpolation:{begin:"#{",beginCaptures:{"0":{name:"punctuation.definition.interpolation.begin.bracket.curly.scss"}},end:"}",endCaptures:{"0":{name:"punctuation.definition.interpolation.end.bracket.curly.scss"}},name:"variable.interpolation.scss",patterns:[{include:"#variable"},{include:"#property_values"}]},conditional_operators:{patterns:[{include:"#comparison_operators"},{include:"#logical_operators"}]},comparison_operators:{match:"==|!=|<=|>=|<|>",name:"keyword.operator.comparison.scss"},logical_operators:{match:"\\b(not|or|and)\\b",name:"keyword.operator.logical.scss"},map:{begin:"\\(",beginCaptures:{"0":{name:"punctuation.definition.map.begin.bracket.round.scss"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.map.end.bracket.round.scss"}},name:"meta.definition.variable.map.scss",patterns:[{include:"#comment_docblock"},{include:"#comment_block"},{include:"#comment_line"},{match:"\\b([\\w-]+)\\s*(:)",captures:{"1":{name:"support.type.map.key.scss"},"2":{name:"punctuation.separator.key-value.scss"}}},{match:",",name:"punctuation.separator.delimiter.scss"},{include:"#map"},{include:"#variable"},{include:"#property_values"}]},operators:{match:"[-+*/](?!\\s*[-+*/])",name:"keyword.operator.css"},parameters:{patterns:[{include:"#variable"},{begin:"\\(",beginCaptures:{"0":{name:"punctuation.definition.begin.bracket.round.scss"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.end.bracket.round.scss"}},patterns:[{include:"#function_attributes"}]},{include:"#property_values"},{include:"#comment_block"},{match:"[^'\",) \\t]+",name:"variable.parameter.url.scss"},{match:",",name:"punctuation.separator.delimiter.scss"}]},properties:{patterns:[{begin:"(?<![-a-z])(?=[-a-z])",end:"$|(?![-a-z])",name:"meta.property-name.scss",patterns:[{include:"source.css#property-names"},{include:"#at_rule_include"}]},{begin:"(:)\\s*(?!(\\s*{))",beginCaptures:{"1":{name:"punctuation.separator.key-value.scss"}},end:"\\s*(;|(?=}|\\)))",endCaptures:{"1":{name:"punctuation.terminator.rule.scss"}},contentName:"meta.property-value.scss",patterns:[{include:"#general"},{include:"#property_values"}]}]},property_list:{begin:"{",beginCaptures:{"0":{name:"punctuation.section.property-list.begin.bracket.curly.scss"}},end:"}",endCaptures:{"0":{name:"punctuation.section.property-list.end.bracket.curly.scss"}},name:"meta.property-list.scss",patterns:[{include:"#flow_control"},{include:"#rules"},{include:"#properties"},{include:"$self"}]},property_values:{patterns:[{include:"#string_single"},{include:"#string_double"},{include:"#constant_functions"},{include:"#constant_sass_functions"},{include:"#constant_important"},{include:"#constant_default"},{include:"#constant_optional"},{include:"source.css#numeric-values"},{include:"source.css#property-keywords"},{include:"source.css#color-keywords"},{include:"source.css#property-names"},{include:"#constant_mathematical_symbols"},{include:"#operators"},{begin:"\\(",beginCaptures:{"0":{name:"punctuation.definition.begin.bracket.round.scss"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.end.bracket.round.scss"}},patterns:[{include:"#general"},{include:"#property_values"}]}]},rules:{patterns:[{include:"#general"},{include:"#at_rule_extend"},{include:"#at_rule_content"},{include:"#at_rule_include"},{include:"#at_rule_media"},{include:"#selectors"}]},selector_attribute:{match:"(?xi)\n(\\[)\n\\s*\n(\n (?:\n [-a-zA-Z_0-9]|[^\\x00-\\x7F] # Valid identifier characters\n | \\\\(?:[0-9a-fA-F]{1,6}|.) # Escape sequence\n | \\#\\{ # Interpolation (escaped to avoid Coffeelint errors)\n | \\.?\\$ # Possible start of interpolation variable\n | } # Possible end of interpolation\n )+?\n)\n(?:\n \\s*([~|^$*]?=)\\s*\n (?:\n (\n (?:\n [-a-zA-Z_0-9]|[^\\x00-\\x7F] # Valid identifier characters\n | \\\\(?:[0-9a-fA-F]{1,6}|.) # Escape sequence\n | \\#\\{ # Interpolation (escaped to avoid Coffeelint errors)\n | \\.?\\$ # Possible start of interpolation variable\n | } # Possible end of interpolation\n )+\n )\n |\n ((\")(.*?)(\"))\n |\n ((')(.*?)('))\n )\n)?\n\\s*\n(\\])",name:"meta.attribute-selector.scss",captures:{"1":{name:"punctuation.definition.attribute-selector.begin.bracket.square.scss"},"2":{name:"entity.other.attribute-name.attribute.scss",patterns:[{include:"#interpolation"},{match:"\\\\([0-9a-fA-F]{1,6}|.)",name:"constant.character.escape.scss"},{match:"\\$|}",name:"invalid.illegal.scss"}]},"3":{name:"keyword.operator.scss"},"4":{name:"string.unquoted.attribute-value.scss",patterns:[{include:"#interpolation"},{match:"\\\\([0-9a-fA-F]{1,6}|.)",name:"constant.character.escape.scss"},{match:"\\$|}",name:"invalid.illegal.scss"}]},"5":{name:"string.quoted.double.attribute-value.scss"},"6":{name:"punctuation.definition.string.begin.scss"},"7":{patterns:[{include:"#interpolation"},{match:"\\\\([0-9a-fA-F]{1,6}|.)",name:"constant.character.escape.scss"},{match:"\\$|}",name:"invalid.illegal.scss"}]},"8":{name:"punctuation.definition.string.end.scss"},"9":{name:"string.quoted.single.attribute-value.scss"},"10":{name:"punctuation.definition.string.begin.scss"},"11":{patterns:[{include:"#interpolation"},{match:"\\\\([0-9a-fA-F]{1,6}|.)",name:"constant.character.escape.scss"},{match:"\\$|}",name:"invalid.illegal.scss"}]},"12":{name:"punctuation.definition.string.end.scss"},"13":{name:"punctuation.definition.attribute-selector.end.bracket.square.scss"}}},selector_class:{match:"(?x)\n(\\.) # Valid class-name\n(\n (?: [-a-zA-Z_0-9]|[^\\x00-\\x7F] # Valid identifier characters\n | \\\\(?:[0-9a-fA-F]{1,6}|.) # Escape sequence\n | \\#\\{ # Interpolation (escaped to avoid Coffeelint errors)\n | \\.?\\$ # Possible start of interpolation variable\n | } # Possible end of interpolation\n )+\n) # Followed by either:\n(?= $ # - End of the line\n | [\\s,\\#)\\[:{>+~|] # - Another selector\n | \\.[^$] # - Class selector, negating module variable\n | /\\* # - A block comment\n | ; # - A semicolon\n)",name:"entity.other.attribute-name.class.css",captures:{"1":{name:"punctuation.definition.entity.css"},"2":{patterns:[{include:"#interpolation"},{match:"\\\\([0-9a-fA-F]{1,6}|.)",name:"constant.character.escape.scss"},{match:"\\$|}",name:"invalid.illegal.scss"}]}}},selector_custom:{match:"\\b([a-zA-Z0-9]+(-[a-zA-Z0-9]+)+)(?=\\.|\\s++[^:]|\\s*[,\\[{]|:(link|visited|hover|active|focus|target|lang|disabled|enabled|checked|indeterminate|root|nth-(child|last-child|of-type|last-of-type)|first-child|last-child|first-of-type|last-of-type|only-child|only-of-type|empty|not|valid|invalid)(\\([0-9A-Za-z]*\\))?)",name:"entity.name.tag.custom.scss"},selector_id:{match:"(?x)\n(\\#) # Valid id-name\n(\n (?: [-a-zA-Z_0-9]|[^\\x00-\\x7F] # Valid identifier characters\n | \\\\(?:[0-9a-fA-F]{1,6}|.) # Escape sequence\n | \\#\\{ # Interpolation (escaped to avoid Coffeelint errors)\n | \\.?\\$ # Possible start of interpolation variable\n | } # Possible end of interpolation\n )+\n) # Followed by either:\n(?= $ # - End of the line\n | [\\s,\\#)\\[:{>+~|] # - Another selector\n | \\.[^$] # - Class selector, negating module variable\n | /\\* # - A block comment\n)",name:"entity.other.attribute-name.id.css",captures:{"1":{name:"punctuation.definition.entity.css"},"2":{patterns:[{include:"#interpolation"},{match:"\\\\([0-9a-fA-F]{1,6}|.)",name:"constant.character.escape.scss"},{match:"\\$|}",name:"invalid.illegal.identifier.scss"}]}}},selector_placeholder:{match:"(?x)\n(%) # Valid placeholder-name\n(\n (?: [-a-zA-Z_0-9]|[^\\x00-\\x7F] # Valid identifier characters\n | \\\\(?:[0-9a-fA-F]{1,6}|.) # Escape sequence\n | \\#\\{ # Interpolation (escaped to avoid Coffeelint errors)\n | \\.\\$ # Possible start of interpolation module scope variable\n | \\$ # Possible start of interpolation variable\n | } # Possible end of interpolation\n )+\n) # Followed by either:\n(?= ; # - End of statement\n | $ # - End of the line\n | [\\s,\\#)\\[:{>+~|] # - Another selector\n | \\.[^$] # - Class selector, negating module variable\n | /\\* # - A block comment\n)",name:"entity.other.attribute-name.placeholder.css",captures:{"1":{name:"punctuation.definition.entity.css"},"2":{patterns:[{include:"#interpolation"},{match:"\\\\([0-9a-fA-F]{1,6}|.)",name:"constant.character.escape.scss"},{match:"\\$|}",name:"invalid.illegal.identifier.scss"}]}}},parent_selector_suffix:{match:"(?x)\n(?<=&)\n(\n (?: [-a-zA-Z_0-9]|[^\\x00-\\x7F] # Valid identifier characters\n | \\\\(?:[0-9a-fA-F]{1,6}|.) # Escape sequence\n | \\#\\{ # Interpolation (escaped to avoid Coffeelint errors)\n | \\$ # Possible start of interpolation variable\n | } # Possible end of interpolation\n )+\n) # Followed by either:\n(?= $ # - End of the line\n | [\\s,.\\#)\\[:{>+~|] # - Another selector\n | /\\* # - A block comment\n)",name:"entity.other.attribute-name.parent-selector-suffix.css",captures:{"1":{name:"punctuation.definition.entity.css"},"2":{patterns:[{include:"#interpolation"},{match:"\\\\([0-9a-fA-F]{1,6}|.)",name:"constant.character.escape.scss"},{match:"\\$|}",name:"invalid.illegal.identifier.scss"}]}}},selector_pseudo_class:{patterns:[{begin:"((:)\\bnth-(?:child|last-child|of-type|last-of-type))(\\()",beginCaptures:{"1":{name:"entity.other.attribute-name.pseudo-class.css"},"2":{name:"punctuation.definition.entity.css"},"3":{name:"punctuation.definition.pseudo-class.begin.bracket.round.css"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.pseudo-class.end.bracket.round.css"}},patterns:[{include:"#interpolation"},{match:"\\d+",name:"constant.numeric.css"},{match:"(?<=\\d)n\\b|\\b(n|even|odd)\\b",name:"constant.other.scss"},{match:"\\w+",name:"invalid.illegal.scss"}]},{include:"source.css#pseudo-classes"},{include:"source.css#pseudo-elements"},{include:"source.css#functional-pseudo-classes"}]},selectors:{patterns:[{include:"source.css#tag-names"},{include:"#selector_custom"},{include:"#selector_class"},{include:"#selector_id"},{include:"#selector_pseudo_class"},{include:"#tag_wildcard"},{include:"#tag_parent_reference"},{include:"source.css#pseudo-elements"},{include:"#selector_attribute"},{include:"#selector_placeholder"},{include:"#parent_selector_suffix"}]},string_double:{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.scss"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.scss"}},name:"string.quoted.double.scss",patterns:[{match:"\\\\(\\h{1,6}|.)",name:"constant.character.escape.scss"},{include:"#interpolation"}]},string_single:{begin:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.scss"}},end:"'",endCaptures:{"0":{name:"punctuation.definition.string.end.scss"}},name:"string.quoted.single.scss",patterns:[{match:"\\\\(\\h{1,6}|.)",name:"constant.character.escape.scss"},{include:"#interpolation"}]},tag_parent_reference:{match:"&",name:"entity.name.tag.reference.scss"},tag_wildcard:{match:"\\*",name:"entity.name.tag.wildcard.scss"},variable:{patterns:[{include:"#variables"},{include:"#interpolation"}]},variable_setting:{begin:"(?=\\$[\\w-]+\\s*:)",end:";",endCaptures:{"0":{name:"punctuation.terminator.rule.scss"}},contentName:"meta.definition.variable.scss",patterns:[{match:"\\$[\\w-]+(?=\\s*:)",name:"variable.scss"},{begin:":",beginCaptures:{"0":{name:"punctuation.separator.key-value.scss"}},end:"(?=;)",patterns:[{include:"#comment_docblock"},{include:"#comment_block"},{include:"#comment_line"},{include:"#map"},{include:"#property_values"},{include:"#variable"},{match:",",name:"punctuation.separator.delimiter.scss"}]}]},variables:{patterns:[{match:"\\b([\\w-]+)(\\.)(\\$[\\w-]+)\\b",captures:{"1":{name:"variable.scss"},"2":{name:"punctuation.access.module.scss"},"3":{name:"variable.scss"}}},{match:"(\\$|\\-\\-)[A-Za-z0-9_-]+\\b",name:"variable.scss"}]}}}; + +export { scss_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/shaderlab.tmLanguage-21a55f92.mjs b/docs/shiki/dist/languages/shaderlab.tmLanguage-21a55f92.mjs new file mode 100644 index 00000000..ea3b2ec5 --- /dev/null +++ b/docs/shiki/dist/languages/shaderlab.tmLanguage-21a55f92.mjs @@ -0,0 +1,3 @@ +var shaderlab_tmLanguage = {information_for_contributors:["This file has been converted from https://github.com/tgjones/shaders-tmLanguage/blob/master/grammars/shaderlab.json","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."],version:"https://github.com/tgjones/shaders-tmLanguage/commit/c72c8b39380ba5a86c58ceed053b5d965ebf38b3",name:"shaderlab",scopeName:"source.shaderlab",patterns:[{name:"comment.line.double-slash.shaderlab",begin:"//",end:"$"},{name:"support.type.basic.shaderlab",match:"\\b(?i:Range|Float|Int|Color|Vector|2D|3D|Cube|Any)\\b"},{include:"#numbers"},{name:"storage.type.structure.shaderlab",match:"\\b(?i:Shader|Properties|SubShader|Pass|Category)\\b"},{name:"support.type.propertyname.shaderlab",match:"\\b(?i:Name|Tags|Fallback|CustomEditor|Cull|ZWrite|ZTest|Offset|Blend|BlendOp|ColorMask|AlphaToMask|LOD|Lighting|Stencil|Ref|ReadMask|WriteMask|Comp|CompBack|CompFront|Fail|ZFail|UsePass|GrabPass|Dependency|Material|Diffuse|Ambient|Shininess|Specular|Emission|Fog|Mode|Density|SeparateSpecular|SetTexture|Combine|ConstantColor|Matrix|AlphaTest|ColorMaterial|BindChannels|Bind)\\b"},{name:"support.constant.property-value.shaderlab",match:"\\b(?i:Back|Front|On|Off|[RGBA]{1,3}|AmbientAndDiffuse|Emission)\\b"},{name:"support.constant.property-value.comparisonfunction.shaderlab",match:"\\b(?i:Less|Greater|LEqual|GEqual|Equal|NotEqual|Always|Never)\\b"},{name:"support.constant.property-value.stenciloperation.shaderlab",match:"\\b(?i:Keep|Zero|Replace|IncrSat|DecrSat|Invert|IncrWrap|DecrWrap)\\b"},{name:"support.constant.property-value.texturecombiners.shaderlab",match:"\\b(?i:Previous|Primary|Texture|Constant|Lerp|Double|Quad|Alpha)\\b"},{name:"support.constant.property-value.fog.shaderlab",match:"\\b(?i:Global|Linear|Exp2|Exp)\\b"},{name:"support.constant.property-value.bindchannels.shaderlab",match:"\\b(?i:Vertex|Normal|Tangent|TexCoord0|TexCoord1)\\b"},{name:"support.constant.property-value.blendoperations.shaderlab",match:"\\b(?i:Add|Sub|RevSub|Min|Max|LogicalClear|LogicalSet|LogicalCopyInverted|LogicalCopy|LogicalNoop|LogicalInvert|LogicalAnd|LogicalNand|LogicalOr|LogicalNor|LogicalXor|LogicalEquiv|LogicalAndReverse|LogicalAndInverted|LogicalOrReverse|LogicalOrInverted)\\b"},{name:"support.constant.property-value.blendfactors.shaderlab",match:"\\b(?i:One|Zero|SrcColor|SrcAlpha|DstColor|DstAlpha|OneMinusSrcColor|OneMinusSrcAlpha|OneMinusDstColor|OneMinusDstAlpha)\\b"},{name:"support.variable.reference.shaderlab",match:"\\[([a-zA-Z_][a-zA-Z0-9_]*)\\](?!\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\(\")"},{name:"meta.attribute.shaderlab",begin:"(\\[)",end:"(\\])",patterns:[{name:"support.type.attributename.shaderlab",match:"\\G([a-zA-Z]+)\\b"},{include:"#numbers"}]},{name:"support.variable.declaration.shaderlab",match:"\\b([a-zA-Z_][a-zA-Z0-9_]*)\\s*\\("},{name:"meta.cgblock",begin:"\\b(CGPROGRAM|CGINCLUDE)\\b",beginCaptures:{"1":{name:"keyword.other"}},end:"\\b(ENDCG)\\b",endCaptures:{"1":{name:"keyword.other"}},patterns:[{include:"#hlsl-embedded"}]},{name:"meta.hlslblock",begin:"\\b(HLSLPROGRAM|HLSLINCLUDE)\\b",beginCaptures:{"1":{name:"keyword.other"}},end:"\\b(ENDHLSL)\\b",endCaptures:{"1":{name:"keyword.other"}},patterns:[{include:"#hlsl-embedded"}]},{name:"string.quoted.double.shaderlab",begin:"\"",end:"\""}],repository:{numbers:{patterns:[{name:"constant.numeric.shaderlab",match:"\\b([0-9]+\\.?[0-9]*)\\b"}]},"hlsl-embedded":{patterns:[{include:"source.hlsl"},{name:"storage.type.basic.shaderlab",match:"\\b(fixed([1-4](x[1-4])?)?)\\b"},{name:"support.variable.transformations.shaderlab",match:"\\b(UNITY_MATRIX_MVP|UNITY_MATRIX_MV|UNITY_MATRIX_M|UNITY_MATRIX_V|UNITY_MATRIX_P|UNITY_MATRIX_VP|UNITY_MATRIX_T_MV|UNITY_MATRIX_I_V|UNITY_MATRIX_IT_MV|_Object2World|_World2Object|unity_ObjectToWorld|unity_WorldToObject)\\b"},{name:"support.variable.camera.shaderlab",match:"\\b(_WorldSpaceCameraPos|_ProjectionParams|_ScreenParams|_ZBufferParams|unity_OrthoParams|unity_CameraProjection|unity_CameraInvProjection|unity_CameraWorldClipPlanes)\\b"},{name:"support.variable.time.shaderlab",match:"\\b(_Time|_SinTime|_CosTime|unity_DeltaTime)\\b"},{name:"support.variable.lighting.shaderlab",match:"\\b(_LightColor0|_WorldSpaceLightPos0|_LightMatrix0|unity_4LightPosX0|unity_4LightPosY0|unity_4LightPosZ0|unity_4LightAtten0|unity_LightColor|_LightColor|unity_LightPosition|unity_LightAtten|unity_SpotDirection)\\b"},{name:"support.variable.fog.shaderlab",match:"\\b(unity_AmbientSky|unity_AmbientEquator|unity_AmbientGround|UNITY_LIGHTMODEL_AMBIENT|unity_FogColor|unity_FogParams)\\b"},{name:"support.variable.various.shaderlab",match:"\\b(unity_LODFade)\\b"},{name:"support.variable.preprocessor.targetplatform.shaderlab",match:"\\b(SHADER_API_D3D9|SHADER_API_D3D11|SHADER_API_GLCORE|SHADER_API_OPENGL|SHADER_API_GLES|SHADER_API_GLES3|SHADER_API_METAL|SHADER_API_D3D11_9X|SHADER_API_PSSL|SHADER_API_XBOXONE|SHADER_API_PSP2|SHADER_API_WIIU|SHADER_API_MOBILE|SHADER_API_GLSL)\\b"},{name:"support.variable.preprocessor.targetmodel.shaderlab",match:"\\b(SHADER_TARGET)\\b"},{name:"support.variable.preprocessor.unityversion.shaderlab",match:"\\b(UNITY_VERSION)\\b"},{name:"support.variable.preprocessor.platformdifference.shaderlab",match:"\\b(UNITY_BRANCH|UNITY_FLATTEN|UNITY_NO_SCREENSPACE_SHADOWS|UNITY_NO_LINEAR_COLORSPACE|UNITY_NO_RGBM|UNITY_NO_DXT5nm|UNITY_FRAMEBUFFER_FETCH_AVAILABLE|UNITY_USE_RGBA_FOR_POINT_SHADOWS|UNITY_ATTEN_CHANNEL|UNITY_HALF_TEXEL_OFFSET|UNITY_UV_STARTS_AT_TOP|UNITY_MIGHT_NOT_HAVE_DEPTH_Texture|UNITY_NEAR_CLIP_VALUE|UNITY_VPOS_TYPE|UNITY_CAN_COMPILE_TESSELLATION|UNITY_COMPILER_HLSL|UNITY_COMPILER_HLSL2GLSL|UNITY_COMPILER_CG|UNITY_REVERSED_Z)\\b"},{name:"support.variable.preprocessor.texture2D.shaderlab",match:"\\b(UNITY_PASS_FORWARDBASE|UNITY_PASS_FORWARDADD|UNITY_PASS_DEFERRED|UNITY_PASS_SHADOWCASTER|UNITY_PASS_PREPASSBASE|UNITY_PASS_PREPASSFINAL)\\b"},{name:"support.class.structures.shaderlab",match:"\\b(appdata_base|appdata_tan|appdata_full|appdata_img)\\b"},{name:"support.class.surface.shaderlab",match:"\\b(SurfaceOutputStandardSpecular|SurfaceOutputStandard|SurfaceOutput|Input)\\b"}]}}}; + +export { shaderlab_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/shellscript.tmLanguage-c9d85e8e.mjs b/docs/shiki/dist/languages/shellscript.tmLanguage-c9d85e8e.mjs new file mode 100644 index 00000000..a0a5812c --- /dev/null +++ b/docs/shiki/dist/languages/shellscript.tmLanguage-c9d85e8e.mjs @@ -0,0 +1,3 @@ +var shellscript_tmLanguage = {information_for_contributors:["This file has been converted from https://github.com/jeff-hykin/better-shell-syntax/blob/master/autogenerated/shell.tmLanguage.json","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."],version:"https://github.com/jeff-hykin/better-shell-syntax/commit/ce62ea59e8e522f8a07d8d8a2d1f992c6c600b91",name:"shellscript",scopeName:"source.shell",patterns:[{include:"#initial_context"}],repository:{alias_statement:{begin:"(alias)[ \\t]*+[ \\t]*+(?:((?<=^|;|&|[ \\t])(?:readonly|declare|typeset|export|local)(?=[ \\t]|;|&|$))[ \\t]*+)?((?<!\\w)[a-zA-Z_0-9-]+(?!\\w))(?:(\\[)((?:(?:(?:\\$)?(?<!\\w)[a-zA-Z_0-9-]+(?!\\w)|@)|\\*))(\\]))?(?:(?:(\\=)|(\\+\\=))|(\\-\\=))",end:"(?:(?= |\\t|$)|(?:(?:(?:(?:(;)|(&&))|(\\|\\|))|(&))|\\n))",beginCaptures:{"1":{name:"storage.type.alias.shell"},"2":{name:"storage.modifier.$2.shell"},"3":{name:"variable.other.assignment.shell"},"4":{name:"punctuation.definition.array.access.shell"},"5":{name:"variable.other.assignment.shell"},"6":{name:"punctuation.definition.array.access.shell"},"7":{name:"keyword.operator.assignment.shell"},"8":{name:"keyword.operator.assignment.compound.shell"},"9":{name:"keyword.operator.assignment.compound.shell"}},endCaptures:{"1":{name:"punctuation.terminator.statement.semicolon.shell"},"2":{name:"punctuation.separator.statement.and.shell"},"3":{name:"punctuation.separator.statement.or.shell"},"4":{name:"punctuation.separator.statement.background.shell"}},name:"meta.expression.assignment.shell",patterns:[{include:"#normal_statement_context"}]},argument:{begin:"[ \\t]++(?!(?:&|\\||\\(|\\[|#|\\n|$|;))",end:"(?= |\\t|;|\\||&|$|\\n|\\)|\\`)",beginCaptures:{},endCaptures:{},name:"meta.argument.shell",patterns:[{include:"#argument_context"},{include:"#line_continuation"}]},argument_context:{patterns:[{match:"[ \\t]*+([^ \t\n'&;<>\\(\\)\\$`\\\\\"\\|]+(?!>))",captures:{"1":{name:"string.unquoted.argument.shell",patterns:[{match:"\\*",name:"variable.language.special.wildcard.shell"},{include:"#variable"},{include:"#numeric_literal"},{match:"(?<!\\w)(\\b(?:true|false)\\b)(?!\\w)",captures:{"1":{name:"constant.language.$1.shell"}}}]}}},{include:"#normal_statement_context"}]},assignment:{patterns:[{begin:"[ \\t]*+(?:((?<=^|;|&|[ \\t])(?:readonly|declare|typeset|export|local)(?=[ \\t]|;|&|$))[ \\t]*+)?((?<!\\w)[a-zA-Z_0-9-]+(?!\\w))(?:(\\[)((?:(?:(?:\\$)?(?<!\\w)[a-zA-Z_0-9-]+(?!\\w)|@)|\\*))(\\]))?(?:(?:(\\=)|(\\+\\=))|(\\-\\=))[ \\t]*+(\\()",end:"\\)",beginCaptures:{"1":{name:"storage.modifier.$1.shell"},"2":{name:"variable.other.assignment.shell"},"3":{name:"punctuation.definition.array.access.shell"},"4":{name:"variable.other.assignment.shell"},"5":{name:"punctuation.definition.array.access.shell"},"6":{name:"keyword.operator.assignment.shell"},"7":{name:"keyword.operator.assignment.compound.shell"},"8":{name:"keyword.operator.assignment.compound.shell"},"9":{name:"punctuation.shell"}},endCaptures:{"0":{name:"punctuation.shell"}},name:"meta.expression.assignment.shell",patterns:[{include:"#comment"},{include:"#argument_context"}]},{begin:"[ \\t]*+(?:((?<=^|;|&|[ \\t])(?:readonly|declare|typeset|export|local)(?=[ \\t]|;|&|$))[ \\t]*+)?((?<!\\w)[a-zA-Z_0-9-]+(?!\\w))(?:(\\[)((?:(?:(?:\\$)?(?<!\\w)[a-zA-Z_0-9-]+(?!\\w)|@)|\\*))(\\]))?(?:(?:(\\=)|(\\+\\=))|(\\-\\=))",end:"(?:(?= |\\t|$)|(?:(?:(?:(?:(;)|(&&))|(\\|\\|))|(&))|\\n))",beginCaptures:{"1":{name:"storage.modifier.$1.shell"},"2":{name:"variable.other.assignment.shell"},"3":{name:"punctuation.definition.array.access.shell"},"4":{name:"variable.other.assignment.shell"},"5":{name:"punctuation.definition.array.access.shell"},"6":{name:"keyword.operator.assignment.shell"},"7":{name:"keyword.operator.assignment.compound.shell"},"8":{name:"keyword.operator.assignment.compound.shell"}},endCaptures:{"1":{name:"punctuation.terminator.statement.semicolon.shell"},"2":{name:"punctuation.separator.statement.and.shell"},"3":{name:"punctuation.separator.statement.or.shell"},"4":{name:"punctuation.separator.statement.background.shell"}},name:"meta.expression.assignment.shell",patterns:[{include:"#comment"},{include:"#argument_context"}]}]},basic_command_name:{match:"(?!(?:!|&|\\||\\(|\\)|\\{|\\[|<|>|#|\\n|$|;|[ \\t]))(?!foreach\\b(?!\\/)|select\\b(?!\\/)|repeat\\b(?!\\/)|until\\b(?!\\/)|while\\b(?!\\/)|case\\b(?!\\/)|done\\b(?!\\/)|elif\\b(?!\\/)|else\\b(?!\\/)|esac\\b(?!\\/)|then\\b(?!\\/)|for\\b(?!\\/)|end\\b(?!\\/)|in\\b(?!\\/)|fi\\b(?!\\/)|do\\b(?!\\/)|if\\b(?!\\/))(?:((?<=^|;|&|[ \\t])(?:readonly|declare|typeset|export|local)(?=[ \\t]|;|&|$))|((?!\"|'|\\\\\\n?$)[^!'\" \\t\\n\\r]+?))(?:(?= |\\t)|(?=;|\\||&|\\n|\\)|\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\))",captures:{"1":{name:"storage.modifier.$1.shell"},"2":{name:"entity.name.function.call.shell entity.name.command.shell",patterns:[{match:"(?<!\\w)(?:continue|return|break)(?!\\w)",name:"keyword.control.$0.shell"},{match:"(?<!\\w)(?:unfunction|continue|autoload|unsetopt|bindkey|builtin|getopts|command|declare|unalias|history|unlimit|typeset|suspend|source|printf|unhash|disown|ulimit|return|which|alias|break|false|print|shift|times|umask|umask|unset|read|type|exec|eval|wait|echo|dirs|jobs|kill|hash|stat|exit|test|trap|true|let|set|pwd|cd|fg|bg|fc|:|\\.)(?!\\/)(?!\\w)",name:"support.function.builtin.shell"},{include:"#variable"}]}},name:"meta.statement.command.name.basic.shell"},block_comment:{begin:"\\s*+(\\/\\*)",end:"\\*\\/",beginCaptures:{"1":{name:"punctuation.definition.comment.begin.shell"}},endCaptures:{"0":{name:"punctuation.definition.comment.end.shell"}},name:"comment.block.shell"},boolean:{match:"\\b(?:true|false)\\b",name:"constant.language.$0.shell"},"case-clause":{patterns:[{begin:"(?=\\S)",end:";;",endCaptures:{"0":{name:"punctuation.terminator.case-clause.shell"}},name:"meta.scope.case-clause.shell",patterns:[{begin:"\\(|(?=\\S)",beginCaptures:{"0":{name:"punctuation.definition.case-pattern.shell"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.case-pattern.shell"}},name:"meta.scope.case-pattern.shell",patterns:[{match:"\\|",name:"punctuation.separator.pipe-sign.shell"},{include:"#string"},{include:"#variable"},{include:"#interpolation"},{include:"#pathname"}]},{begin:"(?<=\\))",end:"(?=;;)",name:"meta.scope.case-clause-body.shell",patterns:[{include:"#initial_context"}]}]}]},comment:{match:"(?:^|[ \\t]++)(?:((#!).*)|((#).*))",captures:{"1":{name:"comment.line.number-sign.shell meta.shebang.shell"},"2":{name:"punctuation.definition.comment.shebang.shell"},"3":{name:"comment.line.number-sign.shell"},"4":{name:"punctuation.definition.comment.shell"}}},comments:{patterns:[{include:"#block_comment"},{include:"#line_comment"}]},"compound-command":{patterns:[{begin:"\\[{1,2}",beginCaptures:{"0":{name:"punctuation.definition.logical-expression.shell"}},end:"\\]{1,2}",endCaptures:{"0":{name:"punctuation.definition.logical-expression.shell"}},name:"meta.scope.logical-expression.shell",patterns:[{include:"#logical-expression"},{include:"#initial_context"}]},{begin:"\\({2}",beginCaptures:{"0":{name:"punctuation.definition.string.begin.shell"}},end:"\\){2}",endCaptures:{"0":{name:"punctuation.definition.string.end.shell"}},name:"string.other.math.shell",patterns:[{include:"#math"}]},{begin:"\\(",beginCaptures:{"0":{name:"punctuation.definition.subshell.shell"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.subshell.shell"}},name:"meta.scope.subshell.shell",patterns:[{include:"#initial_context"}]},{begin:"(?<=\\s|^){(?=\\s|$)",beginCaptures:{"0":{name:"punctuation.definition.group.shell"}},end:"(?<=^|;)\\s*(})",endCaptures:{"1":{name:"punctuation.definition.group.shell"}},name:"meta.scope.group.shell",patterns:[{include:"#initial_context"}]}]},continuation_of_double_quoted_command_name:{begin:"\\G(?<=\")",end:"\"",beginCaptures:{},endCaptures:{"0":{name:"string.quoted.double.shell punctuation.definition.string.end.shell entity.name.function.call.shell entity.name.command.shell"}},contentName:"meta.statement.command.name.continuation string.quoted.double entity.name.function.call entity.name.command",patterns:[{match:"\\\\[\\$\\n`\"\\\\]",name:"constant.character.escape.shell"},{include:"#variable"},{include:"#interpolation"}]},continuation_of_single_quoted_command_name:{begin:"\\G(?<=')",end:"'",beginCaptures:{},endCaptures:{"0":{name:"string.quoted.single.shell punctuation.definition.string.end.shell entity.name.function.call.shell entity.name.command.shell"}},contentName:"meta.statement.command.name.continuation string.quoted.single entity.name.function.call entity.name.command"},custom_command_names:{patterns:[]},custom_commands:{patterns:[]},double_quote_context:{patterns:[{match:"\\\\[\\$`\"\\\\\\n]",name:"constant.character.escape.shell"},{include:"#variable"},{include:"#interpolation"}]},double_quote_escape_char:{match:"\\\\[\\$`\"\\\\\\n]",name:"constant.character.escape.shell"},function_definition:{begin:"[ \\t]*+(?:(\\bfunction\\b)[ \\t]*+([^ \\t\\n\\r\\(\\)=]+)(?:(\\()[ \\t]*+(\\)))?|([^ \\t\\n\\r\\(\\)=]+)[ \\t]*+(\\()[ \\t]*+(\\)))",end:"(?<=\\}|\\))",beginCaptures:{"1":{name:"storage.type.function.shell"},"2":{name:"entity.name.function.shell"},"3":{name:"punctuation.definition.arguments.shell"},"4":{name:"punctuation.definition.arguments.shell"},"5":{name:"entity.name.function.shell"},"6":{name:"punctuation.definition.arguments.shell"},"7":{name:"punctuation.definition.arguments.shell"}},endCaptures:{},name:"meta.function.shell",patterns:[{match:"\\G(?:\\t| |\\n)"},{begin:"\\{",end:"\\}",beginCaptures:{"0":{name:"punctuation.definition.group.shell punctuation.section.function.definition.shell"}},endCaptures:{"0":{name:"punctuation.definition.group.shell punctuation.section.function.definition.shell"}},name:"meta.function.body.shell",patterns:[{include:"#initial_context"}]},{begin:"\\(",end:"\\)",beginCaptures:{"0":{name:"punctuation.definition.group.shell punctuation.section.function.definition.shell"}},endCaptures:{"0":{name:"punctuation.definition.group.shell punctuation.section.function.definition.shell"}},name:"meta.function.body.shell",patterns:[{include:"#initial_context"}]}],applyEndPatternLast:1},heredoc:{patterns:[{begin:"((?<!<)<<-)[ \\t]*+(\"|')[ \\t]*+((?<!\\w)[a-zA-Z_0-9-]+(?!\\w))(?=\\s|;|&|<|\"|')(?:\\2)(.*)",end:"^\\t*(?:\\3)(?=\\s|;|&|$)",beginCaptures:{"1":{name:"keyword.operator.heredoc.shell"},"2":{},"3":{name:"punctuation.definition.string.heredoc.shell"},"4":{patterns:[{include:"#normal_statement_context"}]}},endCaptures:{"0":{name:"punctuation.definition.string.heredoc.shell"}},contentName:"string.quoted.heredoc.indent",patterns:[]},{begin:"((?<!<)<<(?!<))[ \\t]*+(\"|')[ \\t]*+((?<!\\w)[a-zA-Z_0-9-]+(?!\\w))(?=\\s|;|&|<|\"|')(?:\\2)(.*)",end:"^(?:\\3)(?=\\s|;|&|$)",beginCaptures:{"1":{name:"keyword.operator.heredoc.shell"},"2":{},"3":{name:"punctuation.definition.string.heredoc.shell"},"4":{patterns:[{include:"#normal_statement_context"}]}},endCaptures:{"0":{name:"punctuation.definition.string.heredoc.shell"}},contentName:"string.quoted.heredoc.no-indent",patterns:[]},{begin:"((?<!<)<<-)[ \\t]*+((?<!\\w)[a-zA-Z_0-9-]+(?!\\w))(?=\\s|;|&|<|\"|')(.*)",end:"^\\t*(?:\\2)(?=\\s|;|&|$)",beginCaptures:{"1":{name:"keyword.operator.heredoc.shell"},"2":{name:"punctuation.definition.string.heredoc.shell"},"3":{patterns:[{include:"#normal_statement_context"}]}},endCaptures:{"0":{name:"punctuation.definition.string.heredoc.shell"}},contentName:"string.unquoted.heredoc.indent",patterns:[{include:"#double_quote_escape_char"},{include:"#variable"},{include:"#interpolation"}]},{begin:"((?<!<)<<(?!<))[ \\t]*+((?<!\\w)[a-zA-Z_0-9-]+(?!\\w))(?=\\s|;|&|<|\"|')(.*)",end:"^(?:\\2)(?=\\s|;|&|$)",beginCaptures:{"1":{name:"keyword.operator.heredoc.shell"},"2":{name:"punctuation.definition.string.heredoc.shell"},"3":{patterns:[{include:"#normal_statement_context"}]}},endCaptures:{"0":{name:"punctuation.definition.string.heredoc.shell"}},contentName:"string.unquoted.heredoc.no-indent",patterns:[{include:"#double_quote_escape_char"},{include:"#variable"},{include:"#interpolation"}]}]},herestring:{patterns:[{begin:"(<<<)\\s*(('))",beginCaptures:{"1":{name:"keyword.operator.herestring.shell"},"2":{name:"string.quoted.single.shell"},"3":{name:"punctuation.definition.string.begin.shell"}},end:"(')",endCaptures:{"0":{name:"string.quoted.single.shell"},"1":{name:"punctuation.definition.string.end.shell"}},name:"meta.herestring.shell",contentName:"string.quoted.single.shell"},{begin:"(<<<)\\s*((\"))",beginCaptures:{"1":{name:"keyword.operator.herestring.shell"},"2":{name:"string.quoted.double.shell"},"3":{name:"punctuation.definition.string.begin.shell"}},end:"(\")",endCaptures:{"0":{name:"string.quoted.double.shell"},"1":{name:"punctuation.definition.string.end.shell"}},name:"meta.herestring.shell",contentName:"string.quoted.double.shell",patterns:[{include:"#double_quote_context"}]},{captures:{"1":{name:"keyword.operator.herestring.shell"},"2":{name:"string.unquoted.herestring.shell",patterns:[{include:"#initial_context"}]}},match:"(<<<)\\s*(([^\\s)\\\\]|\\\\.)+)",name:"meta.herestring.shell"}]},initial_context:{patterns:[{include:"#comment"},{include:"#pipeline"},{include:"#normal_statement_seperator"},{include:"#logical_expression_double"},{include:"#logical_expression_single"},{include:"#misc_ranges"},{include:"#loop"},{include:"#function_definition"},{include:"#variable"},{include:"#interpolation"},{include:"#heredoc"},{include:"#herestring"},{include:"#redirection"},{include:"#pathname"},{include:"#keyword"},{include:"#alias_statement"},{include:"#normal_statement"},{include:"#string"},{include:"#support"}]},inline_comment:{match:"(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/))",captures:{"1":{name:"comment.block.shell punctuation.definition.comment.begin.shell"},"2":{name:"comment.block.shell"},"3":{patterns:[{match:"\\*\\/",name:"comment.block.shell punctuation.definition.comment.end.shell"},{match:"\\*",name:"comment.block.shell"}]}}},interpolation:{patterns:[{begin:"\\$\\({2}",beginCaptures:{"0":{name:"punctuation.definition.evaluation.arithmetic.begin.shell"}},end:"\\)\\s*\\)",endCaptures:{"0":{name:"punctuation.definition.evaluation.arithmetic.end.shell"}},name:"string.other.math.shell",patterns:[{include:"#math"}]},{begin:"`",beginCaptures:{"0":{name:"punctuation.definition.evaluation.backticks.shell"}},end:"`",endCaptures:{"0":{name:"punctuation.definition.evaluation.backticks.shell"}},name:"string.interpolated.backtick.shell",patterns:[{match:"\\\\[`\\\\$]",name:"constant.character.escape.shell"},{begin:"(?<=\\W)(?=#)(?!#{)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.shell"}},end:"(?!\\G)",patterns:[{begin:"#",beginCaptures:{"0":{name:"punctuation.definition.comment.shell"}},end:"(?=`)",name:"comment.line.number-sign.shell"}]},{include:"#initial_context"}]},{begin:"\\$\\(",beginCaptures:{"0":{name:"punctuation.definition.evaluation.parens.begin.shell"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.evaluation.parens.end.shell"}},name:"string.interpolated.dollar.shell",patterns:[{include:"#initial_context"}]}]},keyword:{patterns:[{match:"(?<=^|;|&| |\\t)(?:continue|foreach|return|select|repeat|break|until|while|case|done|elif|else|esac|then|for|end|do|if|fi|in)(?= |\\t|;|&|$)",name:"keyword.control.$0.shell"}]},line_comment:{begin:"\\s*+(\\/\\/)",end:"(?<=\\n)(?<!\\\\\\n)",beginCaptures:{"1":{name:"punctuation.definition.comment.shell"}},endCaptures:{},name:"comment.line.double-slash.shell",patterns:[{include:"#line_continuation_character"}]},line_continuation:{match:"\\\\(?=\\n)",name:"constant.character.escape.line-continuation.shell"},"logical-expression":{patterns:[{comment:"do we want a special rule for ( expr )?",match:"=[=~]?|!=?|<|>|&&|\\|\\|",name:"keyword.operator.logical.shell"},{match:"(?<!\\S)-(nt|ot|ef|eq|ne|l[te]|g[te]|[a-hknoprstuwxzOGLSN])\\b",name:"keyword.operator.logical.shell"}]},logical_expression_context:{patterns:[{include:"#regex_comparison"},{include:"#logical-expression"},{include:"#logical_expression_single"},{include:"#logical_expression_double"},{include:"#comment"},{include:"#boolean"},{include:"#redirect_number"},{include:"#numeric_literal"},{include:"#pipeline"},{include:"#normal_statement_seperator"},{include:"#string"},{include:"#variable"},{include:"#interpolation"},{include:"#heredoc"},{include:"#herestring"},{include:"#pathname"},{include:"#keyword"},{include:"#support"}]},logical_expression_double:{begin:"\\[\\[",end:"\\]\\]",beginCaptures:{"0":{name:"punctuation.definition.logical-expression.shell"}},endCaptures:{"0":{name:"punctuation.definition.logical-expression.shell"}},name:"meta.scope.logical-expression.shell",patterns:[{include:"#logical_expression_context"}]},logical_expression_single:{begin:"\\[",end:"\\]",beginCaptures:{"0":{name:"punctuation.definition.logical-expression.shell"}},endCaptures:{"0":{name:"punctuation.definition.logical-expression.shell"}},name:"meta.scope.logical-expression.shell",patterns:[{include:"#logical_expression_context"}]},loop:{patterns:[{begin:"(?<=^|;|&|\\s)(for)\\s+(?=\\({2})",beginCaptures:{"1":{name:"keyword.control.shell"}},end:"(?<=^|;|&|\\s)done(?=\\s|;|&|$|\\))",endCaptures:{"0":{name:"keyword.control.shell"}},name:"meta.scope.for-loop.shell",patterns:[{include:"#initial_context"}]},{begin:"(?<=^|;|&|\\s)(for)\\s+(.+?)\\s+(in)(?=\\s|;|&|$)",beginCaptures:{"1":{name:"keyword.control.shell"},"2":{name:"variable.other.loop.shell",patterns:[{include:"#string"}]},"3":{name:"keyword.control.shell"}},end:"(?<=^|;|&|\\s)done(?=\\s|;|&|$|\\))",endCaptures:{"0":{name:"keyword.control.shell"}},name:"meta.scope.for-in-loop.shell",patterns:[{include:"#initial_context"}]},{begin:"(?<=^|;|&|\\s)(while|until)(?=\\s|;|&|$)",beginCaptures:{"1":{name:"keyword.control.shell"}},end:"(?<=^|;|&|\\s)done(?=\\s|;|&|$|\\))",endCaptures:{"0":{name:"keyword.control.shell"}},name:"meta.scope.while-loop.shell",patterns:[{include:"#initial_context"}]},{begin:"(?<=^|;|&|\\s)(select)\\s+((?:[^\\s\\\\]|\\\\.)+)(?=\\s|;|&|$)",beginCaptures:{"1":{name:"keyword.control.shell"},"2":{name:"variable.other.loop.shell"}},end:"(?<=^|;|&|\\s)(done)(?=\\s|;|&|$|\\))",endCaptures:{"1":{name:"keyword.control.shell"}},name:"meta.scope.select-block.shell",patterns:[{include:"#initial_context"}]},{begin:"(?<=^|;|&|\\s)case(?=\\s|;|&|$)",beginCaptures:{"0":{name:"keyword.control.shell"}},end:"(?<=^|;|&|\\s)esac(?=\\s|;|&|$)",endCaptures:{"0":{name:"keyword.control.shell"}},name:"meta.scope.case-block.shell",patterns:[{begin:"(?<=^|;|&|\\s)in(?=\\s|;|&|$)",beginCaptures:{"0":{name:"keyword.control.shell"}},end:"(?<=^|;|&|\\s)(?=esac(\\s|;|&|$))",name:"meta.scope.case-body.shell",patterns:[{include:"#comment"},{include:"#case-clause"}]},{include:"#initial_context"}]},{begin:"(?<=^|;|&|\\s)if(?=\\s|;|&|$)",beginCaptures:{"0":{name:"keyword.control.shell"}},end:"(?<=^|;|&|\\s)fi(?=\\s|;|&|$)",endCaptures:{"0":{name:"keyword.control.shell"}},name:"meta.scope.if-block.shell",patterns:[{include:"#initial_context"}]}]},math:{patterns:[{include:"#variable"},{match:"\\+{1,2}|-{1,2}|!|~|\\*{1,2}|/|%|<[<=]?|>[>=]?|==|!=|^|\\|{1,2}|&{1,2}|\\?|\\:|,|=|[*/%+\\-&^|]=|<<=|>>=",name:"keyword.operator.arithmetic.shell"},{match:"0[xX][0-9A-Fa-f]+",name:"constant.numeric.hex.shell"},{match:"0\\d+",name:"constant.numeric.octal.shell"},{match:"\\d{1,2}#[0-9a-zA-Z@_]+",name:"constant.numeric.other.shell"},{match:"\\d+",name:"constant.numeric.integer.shell"}]},misc_ranges:{patterns:[{include:"#logical_expression_single"},{include:"#logical_expression_double"},{begin:"\\(\\(",end:"\\)\\)",beginCaptures:{"0":{name:"punctuation.section.arithmetic.shell"}},endCaptures:{"0":{name:"punctuation.section.arithmetic.shell"}},name:"meta.arithmetic.shell",patterns:[{include:"#math"}]},{begin:"(?<!=)\\(",end:"\\)",beginCaptures:{"0":{name:"punctuation.definition.subshell"}},endCaptures:{"0":{name:"punctuation.definition.subshell"}},name:"meta.scope.subshell",patterns:[{include:"#initial_context"}]},{begin:"(?<![^ \\t])({)",end:"}",beginCaptures:{"1":{name:"punctuation.definition.group.shell"}},endCaptures:{"0":{name:"punctuation.definition.group.shell"}},name:"meta.scope.group.shell",patterns:[{include:"#initial_context"}]}]},modifiers:{match:"(?<=^|;|&|[ \\t])(?:readonly|declare|typeset|export|local)(?=[ \\t]|;|&|$)",name:"storage.modifier.$0.shell"},normal_statement:{begin:"(?!^[ \\t]*+$)(?:(?<=^until | until |\\tuntil |^while | while |\\twhile |^elif | elif |\\telif |^else | else |\\telse |^then | then |\\tthen |^do | do |\\tdo |^if | if |\\tif )|(?<=(?:^|;|\\||&|!|\\(|\\{|\\`)))[ \\t]*+(?!nocorrect\\W|nocorrect\\$|function\\W|function\\$|foreach\\W|foreach\\$|repeat\\W|repeat\\$|logout\\W|logout\\$|coproc\\W|coproc\\$|select\\W|select\\$|while\\W|while\\$|pushd\\W|pushd\\$|until\\W|until\\$|case\\W|case\\$|done\\W|done\\$|elif\\W|elif\\$|else\\W|else\\$|esac\\W|esac\\$|popd\\W|popd\\$|then\\W|then\\$|time\\W|time\\$|for\\W|for\\$|end\\W|end\\$|fi\\W|fi\\$|do\\W|do\\$|in\\W|in\\$|if\\W|if\\$)",end:"(?=;|\\||&|\\n|\\)|\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\)",beginCaptures:{},endCaptures:{},name:"meta.statement.shell",patterns:[{include:"#function_definition"},{include:"#assignment"},{begin:"[ \\t]*+(?!(?:!|&|\\||\\(|\\)|\\{|\\[|<|>|#|\\n|$|;|[ \\t]))(?!foreach\\b(?!\\/)|select\\b(?!\\/)|repeat\\b(?!\\/)|until\\b(?!\\/)|while\\b(?!\\/)|case\\b(?!\\/)|done\\b(?!\\/)|elif\\b(?!\\/)|else\\b(?!\\/)|esac\\b(?!\\/)|then\\b(?!\\/)|for\\b(?!\\/)|end\\b(?!\\/)|in\\b(?!\\/)|fi\\b(?!\\/)|do\\b(?!\\/)|if\\b(?!\\/))(?!\\\\\\n?$)",end:"(?=;|\\||&|\\n|\\)|\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\)",beginCaptures:{},endCaptures:{},name:"meta.statement.command.shell",patterns:[{begin:"\\G",end:"(?= |\\t|;|\\||&|$|\\n|\\)|\\`)",beginCaptures:{},endCaptures:{},name:"meta.statement.command.name.shell",patterns:[{include:"#modifiers"},{match:"(?<!\\w)(?:continue|return|break)(?!\\w)",name:"entity.name.function.call.shell entity.name.command.shell keyword.control.$0.shell"},{match:"(?<!\\w)(?:unfunction|continue|autoload|unsetopt|bindkey|builtin|getopts|command|declare|unalias|history|unlimit|typeset|suspend|source|printf|unhash|disown|ulimit|return|which|alias|break|false|print|shift|times|umask|umask|unset|read|type|exec|eval|wait|echo|dirs|jobs|kill|hash|stat|exit|test|trap|true|let|set|pwd|cd|fg|bg|fc|:|\\.)(?!\\/)(?!\\w)",name:"entity.name.function.call.shell entity.name.command.shell support.function.builtin.shell"},{include:"#variable"},{match:"(?<=\\G|'|\"|\\}|\\))([^ \\n\\t\\r\"'=;&\\|`\\)\\{]+)",captures:{"1":{name:"entity.name.function.call.shell entity.name.command.shell"}}},{begin:"(?:\\G|(?<! |\\t|;|\\||&|\\n|\\{|#))((?:\\$)?)((?:(\")|(')))",end:"(?<!\\G)(?<=(?:\\2))",beginCaptures:{"1":{name:"meta.statement.command.name.quoted.shell punctuation.definition.string.shell entity.name.function.call.shell entity.name.command.shell"},"2":{},"3":{name:"meta.statement.command.name.quoted.shell string.quoted.double.shell punctuation.definition.string.begin.shell entity.name.function.call.shell entity.name.command.shell"},"4":{name:"meta.statement.command.name.quoted.shell string.quoted.single.shell punctuation.definition.string.begin.shell entity.name.function.call.shell entity.name.command.shell"}},endCaptures:{},patterns:[{include:"#continuation_of_single_quoted_command_name"},{include:"#continuation_of_double_quoted_command_name"}]},{include:"#line_continuation"}]},{include:"#line_continuation"},{include:"#option"},{include:"#argument"},{include:"#statement_context"},{include:"#string"}]},{include:"#line_continuation"},{include:"#normal_statement_context"}]},normal_statement_context:{patterns:[{include:"#comment"},{include:"#pipeline"},{include:"#normal_statement_seperator"},{include:"#misc_ranges"},{include:"#boolean"},{include:"#redirect_number"},{include:"#numeric_literal"},{include:"#string"},{include:"#variable"},{include:"#interpolation"},{include:"#heredoc"},{include:"#herestring"},{include:"#redirection"},{include:"#pathname"},{include:"#keyword"},{include:"#support"}]},normal_statement_seperator:{match:"(?:(?:(?:(?:(;)|(&&))|(\\|\\|))|(&))|\\n)",captures:{"1":{name:"punctuation.terminator.statement.semicolon.shell"},"2":{name:"punctuation.separator.statement.and.shell"},"3":{name:"punctuation.separator.statement.or.shell"},"4":{name:"punctuation.separator.statement.background.shell"}}},numeric_literal:{match:"[ \\t]*+(?<==| |\\t|^|\\{|\\(|\\[)(?:(?:(?:(?:(0[xX][0-9A-Fa-f]+)|(0\\d+))|(\\d{1,2}#[0-9a-zA-Z@_]+))|(-?\\d+\\.\\d+))|(-?\\d+))(?!>)",captures:{"1":{name:"constant.numeric.shell constant.numeric.hex.shell"},"2":{name:"constant.numeric.shell constant.numeric.octal.shell"},"3":{name:"constant.numeric.shell constant.numeric.other.shell"},"4":{name:"constant.numeric.shell constant.numeric.integer.shell"},"5":{name:"constant.numeric.shell constant.numeric.integer.shell"}}},option:{begin:"[ \\t]++(-)((?!(?:!|&|\\||\\(|\\)|\\{|\\[|<|>|#|\\n|$|;|[ \\t])))",end:"(?:(?=[ \\t])|(?=;|\\||&|\\n|\\)|\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\))",beginCaptures:{"1":{name:"string.unquoted.argument.shell constant.other.option.dash.shell"},"2":{name:"string.unquoted.argument.shell constant.other.option.shell"}},endCaptures:{},contentName:"string.unquoted.argument constant.other.option",patterns:[{include:"#option_context"}]},option_context:{patterns:[{include:"#misc_ranges"},{include:"#string"},{include:"#variable"},{include:"#interpolation"},{include:"#heredoc"},{include:"#herestring"},{include:"#redirection"},{include:"#pathname"},{include:"#keyword"},{include:"#support"}]},pathname:{patterns:[{match:"(?<=\\s|:|=|^)~",name:"keyword.operator.tilde.shell"},{match:"\\*|\\?",name:"keyword.operator.glob.shell"},{begin:"([?*+@!])(\\()",beginCaptures:{"1":{name:"keyword.operator.extglob.shell"},"2":{name:"punctuation.definition.extglob.shell"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.extglob.shell"}},name:"meta.structure.extglob.shell",patterns:[{include:"#initial_context"}]}]},pipeline:{patterns:[{match:"(?<=^|;|&|\\s)(time)(?=\\s|;|&|$)",name:"keyword.other.shell"},{match:"[|!]",name:"keyword.operator.pipe.shell"}]},redirect_number:{match:"(?<=[ \\t])(?:(1)|(2)|(\\d+))(?=>)",captures:{"1":{name:"keyword.operator.redirect.stdout.shell"},"2":{name:"keyword.operator.redirect.stderr.shell"},"3":{name:"keyword.operator.redirect.$3.shell"}}},redirection:{patterns:[{begin:"[><]\\(",beginCaptures:{"0":{name:"punctuation.definition.string.begin.shell"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.string.end.shell"}},name:"string.interpolated.process-substitution.shell",patterns:[{include:"#initial_context"}]},{match:"(?<![<>])(&>|\\d*>&\\d*|\\d*(>>|>|<)|\\d*<&|\\d*<>)(?![<>])",name:"keyword.operator.redirect.shell"}]},regex_comparison:{match:"\\=~",name:"keyword.operator.logical.regex.shell"},regexp:{patterns:[{match:".+"}]},simple_options:{match:"(?:[ \\t]++\\-\\w+)*",captures:{"0":{patterns:[{match:"[ \\t]++(\\-)(\\w+)",captures:{"1":{name:"string.unquoted.argument.shell constant.other.option.dash.shell"},"2":{name:"string.unquoted.argument.shell constant.other.option.shell"}}}]}}},start_of_command:{match:"[ \\t]*+(?!(?:!|&|\\||\\(|\\)|\\{|\\[|<|>|#|\\n|$|;|[ \\t]))(?!foreach\\b(?!\\/)|select\\b(?!\\/)|repeat\\b(?!\\/)|until\\b(?!\\/)|while\\b(?!\\/)|case\\b(?!\\/)|done\\b(?!\\/)|elif\\b(?!\\/)|else\\b(?!\\/)|esac\\b(?!\\/)|then\\b(?!\\/)|for\\b(?!\\/)|end\\b(?!\\/)|in\\b(?!\\/)|fi\\b(?!\\/)|do\\b(?!\\/)|if\\b(?!\\/))(?!\\\\\\n?$)"},start_of_double_quoted_command_name:{match:"(?!(?:!|&|\\||\\(|\\)|\\{|\\[|<|>|#|\\n|$|;|[ \\t]))(?:[ \\t]*+([^ \t\n'&;<>\\(\\)\\$`\\\\\"\\|]+(?!>)))?(?:(?:\\$\")|\")",captures:{"1":{name:"entity.name.function.call.shell entity.name.command.shell",patterns:[{match:"\\*",name:"variable.language.special.wildcard.shell"},{include:"#variable"},{include:"#numeric_literal"},{match:"(?<!\\w)(\\b(?:true|false)\\b)(?!\\w)",captures:{"1":{name:"constant.language.$1.shell"}}}]}},name:"meta.statement.command.name.quoted.shell string.quoted.double.shell punctuation.definition.string.begin.shell entity.name.function.call.shell entity.name.command.shell"},start_of_single_quoted_command_name:{match:"(?!(?:!|&|\\||\\(|\\)|\\{|\\[|<|>|#|\\n|$|;|[ \\t]))(?:[ \\t]*+([^ \t\n'&;<>\\(\\)\\$`\\\\\"\\|]+(?!>)))?(?:(?:\\$')|')",captures:{"1":{name:"entity.name.function.call.shell entity.name.command.shell",patterns:[{match:"\\*",name:"variable.language.special.wildcard.shell"},{include:"#variable"},{include:"#numeric_literal"},{match:"(?<!\\w)(\\b(?:true|false)\\b)(?!\\w)",captures:{"1":{name:"constant.language.$1.shell"}}}]}},name:"meta.statement.command.name.quoted.shell string.quoted.single.shell punctuation.definition.string.begin.shell entity.name.function.call.shell entity.name.command.shell"},string:{patterns:[{match:"\\\\.",name:"constant.character.escape.shell"},{begin:"'",end:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.shell"}},endCaptures:{"0":{name:"punctuation.definition.string.end.shell"}},name:"string.quoted.single.shell"},{begin:"\\$?\"",end:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.shell"}},endCaptures:{"0":{name:"punctuation.definition.string.end.shell"}},name:"string.quoted.double.shell",patterns:[{match:"\\\\[\\$\\n`\"\\\\]",name:"constant.character.escape.shell"},{include:"#variable"},{include:"#interpolation"}]},{begin:"\\$'",end:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.shell"}},endCaptures:{"0":{name:"punctuation.definition.string.end.shell"}},name:"string.quoted.single.dollar.shell",patterns:[{match:"\\\\(?:a|b|e|f|n|r|t|v|\\\\|')",name:"constant.character.escape.ansi-c.shell"},{match:"\\\\[0-9]{3}\"",name:"constant.character.escape.octal.shell"},{match:"\\\\x[0-9a-fA-F]{2}\"",name:"constant.character.escape.hex.shell"},{match:"\\\\c.\"",name:"constant.character.escape.control-char.shell"}]}]},support:{patterns:[{match:"(?<=^|;|&|\\s)(?::|\\.)(?=\\s|;|&|$)",name:"support.function.builtin.shell"}]},variable:{patterns:[{match:"(\\$)(\\@(?!\\w))",captures:{"1":{name:"punctuation.definition.variable.shell variable.parameter.positional.all.shell"},"2":{name:"variable.parameter.positional.all.shell"}}},{match:"(\\$)([0-9](?!\\w))",captures:{"1":{name:"punctuation.definition.variable.shell variable.parameter.positional.shell"},"2":{name:"variable.parameter.positional.shell"}}},{match:"(\\$)([-*#?$!0_](?!\\w))",captures:{"1":{name:"punctuation.definition.variable.shell variable.language.special.shell"},"2":{name:"variable.language.special.shell"}}},{begin:"(\\$)(\\{)[ \\t]*+(?=\\d)",end:"\\}",beginCaptures:{"1":{name:"punctuation.definition.variable.shell variable.parameter.positional.shell"},"2":{name:"punctuation.section.bracket.curly.variable.begin.shell punctuation.definition.variable.shell variable.parameter.positional.shell"}},endCaptures:{"0":{name:"punctuation.section.bracket.curly.variable.end.shell punctuation.definition.variable.shell variable.parameter.positional.shell"}},contentName:"meta.parameter-expansion",patterns:[{match:"!|:[-=?]?|\\*|@|##|#|%%|%|\\/",name:"keyword.operator.expansion.shell"},{match:"(\\[)[^\\]]+(\\])",captures:{"1":{name:"punctuation.section.array.shell"},"2":{name:"punctuation.section.array.shell"}}},{match:"[0-9]+",name:"variable.parameter.positional.shell"},{match:"(?<!\\w)[a-zA-Z_0-9-]+(?!\\w)",name:"variable.other.normal.shell"},{include:"#variable"},{include:"#string"}]},{begin:"(\\$)(\\{)",end:"\\}",beginCaptures:{"1":{name:"punctuation.definition.variable.shell"},"2":{name:"punctuation.section.bracket.curly.variable.begin.shell punctuation.definition.variable.shell"}},endCaptures:{"0":{name:"punctuation.section.bracket.curly.variable.end.shell punctuation.definition.variable.shell"}},contentName:"meta.parameter-expansion",patterns:[{match:"!|:[-=?]?|\\*|@|##|#|%%|%|\\/",name:"keyword.operator.expansion.shell"},{match:"(\\[)[^\\]]+(\\])",captures:{"1":{name:"punctuation.section.array.shell"},"2":{name:"punctuation.section.array.shell"}}},{match:"(?<!\\w)[a-zA-Z_0-9-]+(?!\\w)",name:"variable.other.normal.shell"},{include:"#variable"},{include:"#string"}]},{match:"(\\$)(\\w+(?!\\w))",captures:{"1":{name:"punctuation.definition.variable.shell variable.other.normal.shell"},"2":{name:"variable.other.normal.shell"}}}]}}}; + +export { shellscript_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/shellsession.tmLanguage-4020d968.mjs b/docs/shiki/dist/languages/shellsession.tmLanguage-4020d968.mjs new file mode 100644 index 00000000..2ad100b8 --- /dev/null +++ b/docs/shiki/dist/languages/shellsession.tmLanguage-4020d968.mjs @@ -0,0 +1,3 @@ +var shellsession_tmLanguage = {name:"shellsession",scopeName:"text.shell-session",patterns:[{match:"(?x) ^ (?: ( (?:\\(\\S+\\)\\s*)? (?: sh\\S*? | \\w+\\S+[@:]\\S+(?:\\s+\\S+)? | \\[\\S+?[@:][^\\n]+?\\].*? ) ) \\s* )? ( [>$#%❯➜] | \\p{Greek} ) \\s+ (.*) $",captures:{"1":{name:"entity.other.prompt-prefix.shell-session"},"2":{name:"punctuation.separator.prompt.shell-session"},"3":{name:"source.shell",patterns:[{include:"source.shell"}]}}},{name:"meta.output.shell-session",match:"^.+$"}],fileTypes:["sh-session"]}; + +export { shellsession_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/smalltalk.tmLanguage-d20d7968.mjs b/docs/shiki/dist/languages/smalltalk.tmLanguage-d20d7968.mjs new file mode 100644 index 00000000..ebcb4032 --- /dev/null +++ b/docs/shiki/dist/languages/smalltalk.tmLanguage-d20d7968.mjs @@ -0,0 +1,3 @@ +var smalltalk_tmLanguage = {information_for_contributors:["This file has been converted from https://github.com/textmate/smalltalk.tmbundle/blob/master/Syntaxes/SmallTalk.tmLanguage","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."],name:"smalltalk",foldingStartMarker:"\\[",foldingStopMarker:"^\\s*\\]|^\\s\\]",keyEquivalent:"^~S",fileTypes:["st"],patterns:[{match:"\\$.",name:"constant.character.smalltalk"},{match:"\\b(class)\\b",name:"storage.type.$1.smalltalk"},{match:"\\b(extend|super|self)\\b",name:"storage.modifier.$1.smalltalk"},{match:"\\b(yourself|new|Smalltalk)\\b",name:"keyword.control.$1.smalltalk"},{match:":=",name:"keyword.operator.assignment.smalltalk"},{comment:"Parse the variable declaration like: |a b c|",match:"/^:\\w*\\s*\\|/",name:"constant.other.block.smalltalk"},{captures:{"1":{name:"punctuation.definition.instance-variables.begin.smalltalk"},"2":{patterns:[{match:"\\w+",name:"support.type.variable.declaration.smalltalk"}]},"3":{name:"punctuation.definition.instance-variables.end.smalltalk"}},match:"(\\|)(\\s*\\w[\\w ]*)(\\|)"},{captures:{"1":{patterns:[{match:":\\w+",name:"entity.name.function.block.smalltalk"}]}},comment:"Parse the blocks like: [ :a :b | ...... ]",match:"\\[((\\s+|:\\w+)*)\\|"},{include:"#numeric"},{match:"<(?!<|=)|>(?!<|=|>)|<=|>=|=|==|~=|~~|>>|\\^",name:"keyword.operator.comparison.smalltalk"},{match:"(\\*|\\+|\\-|/|\\\\)",name:"keyword.operator.arithmetic.smalltalk"},{match:"(?<=[ \\t])!+|\\bnot\\b|&|\\band\\b|\\||\\bor\\b",name:"keyword.operator.logical.smalltalk"},{comment:"Fake reserved word -> main Smalltalk messages",match:"(?<!\\.)\\b(ensure|resume|retry|signal)\\b(?![?!])",name:"keyword.control.smalltalk"},{comment:"Fake conditionals. Smalltalk Methods.",match:"ifCurtailed:|ifTrue:|ifFalse:|whileFalse:|whileTrue:",name:"keyword.control.conditionals.smalltalk"},{captures:{"1":{name:"entity.other.inherited-class.smalltalk"},"3":{name:"keyword.control.smalltalk"},"4":{name:"entity.name.type.class.smalltalk"}},match:"(\\w+)(\\s+(subclass:))\\s*(\\w*)",name:"meta.class.smalltalk"},{begin:"\"",beginCaptures:[{name:"punctuation.definition.comment.begin.smalltalk"}],end:"\"",endCaptures:[{name:"punctuation.definition.comment.end.smalltalk"}],name:"comment.block.smalltalk"},{match:"\\b(true|false)\\b",name:"constant.language.boolean.smalltalk"},{match:"\\b(nil)\\b",name:"constant.language.nil.smalltalk"},{captures:{"1":{name:"punctuation.definition.constant.smalltalk"}},comment:"messages/methods",match:"(?>[a-zA-Z_]\\w*(?>[?!])?)(:)(?!:)",name:"constant.other.messages.smalltalk"},{captures:{"1":{name:"punctuation.definition.constant.smalltalk"}},comment:"symbols",match:"(#)[a-zA-Z_][a-zA-Z0-9_:]*",name:"constant.other.symbol.smalltalk"},{begin:"#\\[",beginCaptures:[{name:"punctuation.definition.constant.begin.smalltalk"}],end:"\\]",endCaptures:[{name:"punctuation.definition.constant.end.smalltalk"}],name:"meta.array.byte.smalltalk",patterns:[{match:"[0-9]+(r[a-zA-Z0-9]+)?",name:"constant.numeric.integer.smalltalk"},{match:"[^\\s\\]]+",name:"invalid.illegal.character-not-allowed-here.smalltalk"}]},{begin:"#\\(",beginCaptures:[{name:"punctuation.definition.constant.begin.smalltalk"}],comment:"Array Constructor",end:"\\)",endCaptures:[{name:"punctuation.definition.constant.end.smalltalk"}],name:"constant.other.array.smalltalk"},{begin:"'",beginCaptures:[{name:"punctuation.definition.string.begin.smalltalk"}],end:"'",endCaptures:[{name:"punctuation.definition.string.end.smalltalk"}],name:"string.quoted.single.smalltalk"},{match:"\\b[A-Z]\\w*\\b",name:"variable.other.constant.smalltalk"}],repository:{numeric:{patterns:[{match:"(?<!\\w)[0-9]+\\.[0-9]+s[0-9]*",name:"constant.numeric.float.scaled.smalltalk"},{match:"(?<!\\w)[0-9]+\\.[0-9]+([edq]-?[0-9]+)?",name:"constant.numeric.float.smalltalk"},{match:"(?<!\\w)-?[0-9]+r[a-zA-Z0-9]+",name:"constant.numeric.integer.radix.smalltalk"},{match:"(?<!\\w)-?[0-9]+([edq]-?[0-9]+)?",name:"constant.numeric.integer.smalltalk"}]}},scopeName:"source.smalltalk",uuid:"1ED64A34-BCB1-44E1-A0FE-84053003E232"}; + +export { smalltalk_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/solidity.tmLanguage-5eda4445.mjs b/docs/shiki/dist/languages/solidity.tmLanguage-5eda4445.mjs new file mode 100644 index 00000000..e1067158 --- /dev/null +++ b/docs/shiki/dist/languages/solidity.tmLanguage-5eda4445.mjs @@ -0,0 +1,3 @@ +var solidity_tmLanguage = {fileTypes:["sol"],name:"solidity",patterns:[{include:"#natspec"},{include:"#declaration-userType"},{include:"#comment"},{include:"#operator"},{include:"#global"},{include:"#control"},{include:"#constant"},{include:"#primitive"},{include:"#type-primitive"},{include:"#type-modifier-extended-scope"},{include:"#declaration"},{include:"#function-call"},{include:"#assembly"},{include:"#punctuation"}],repository:{natspec:{patterns:[{begin:"/\\*\\*",end:"\\*/",name:"comment.block.documentation",patterns:[{include:"#natspec-tags"}]},{begin:"///",end:"$",name:"comment.block.documentation",patterns:[{include:"#natspec-tags"}]}]},"natspec-tags":{patterns:[{include:"#comment-todo"},{include:"#natspec-tag-title"},{include:"#natspec-tag-author"},{include:"#natspec-tag-notice"},{include:"#natspec-tag-dev"},{include:"#natspec-tag-param"},{include:"#natspec-tag-return"},{include:"#natspec-tag-custom"},{include:"#natspec-tag-inheritdoc"}]},"natspec-tag-title":{match:"(@title)\\b",name:"storage.type.title.natspec"},"natspec-tag-author":{match:"(@author)\\b",name:"storage.type.author.natspec"},"natspec-tag-notice":{match:"(@notice)\\b",name:"storage.type.dev.natspec"},"natspec-tag-custom":{match:"(@custom:\\w*)\\b",name:"storage.type.dev.natspec"},"natspec-tag-inheritdoc":{match:"(@inheritdoc)\\b",name:"storage.type.author.natspec"},"natspec-tag-dev":{match:"(@dev)\\b",name:"storage.type.dev.natspec"},"natspec-tag-param":{match:"(@param)(\\s+([A-Za-z_]\\w*))?\\b",captures:{"1":{name:"storage.type.param.natspec"},"3":{name:"variable.other.natspec"}}},"natspec-tag-return":{match:"(@return)(\\s+([A-Za-z_]\\w*))?\\b",captures:{"1":{name:"storage.type.return.natspec"},"3":{name:"variable.other.natspec"}}},comment:{patterns:[{include:"#comment-line"},{include:"#comment-block"}]},"comment-todo":{match:"(?i)\\b(FIXME|TODO|CHANGED|XXX|IDEA|HACK|NOTE|REVIEW|NB|BUG|QUESTION|COMBAK|TEMP|SUPPRESS|LINT|\\w+-disable|\\w+-suppress)\\b(?-i)",name:"keyword.comment.todo"},"comment-line":{begin:"(?<!tp:)//",end:"$",name:"comment.line",patterns:[{include:"#comment-todo"}]},"comment-block":{begin:"/\\*",end:"\\*/",name:"comment.block",patterns:[{include:"#comment-todo"}]},operator:{patterns:[{include:"#operator-logic"},{include:"#operator-mapping"},{include:"#operator-arithmetic"},{include:"#operator-binary"},{include:"#operator-assignment"}]},"operator-logic":{match:"(==|\\!=|<(?!<)|<=|>(?!>)|>=|\\&\\&|\\|\\||\\:(?!=)|\\?|\\!)",name:"keyword.operator.logic"},"operator-mapping":{match:"(=>)",name:"keyword.operator.mapping"},"operator-arithmetic":{match:"(\\+|\\-|\\/|\\*)",name:"keyword.operator.arithmetic"},"operator-binary":{match:"(\\^|\\&|\\||<<|>>)",name:"keyword.operator.binary"},"operator-assignment":{match:"(\\:?=)",name:"keyword.operator.assignment"},control:{patterns:[{include:"#control-flow"},{include:"#control-using"},{include:"#control-import"},{include:"#control-pragma"},{include:"#control-underscore"},{include:"#control-unchecked"},{include:"#control-other"}]},"control-flow":{patterns:[{match:"\\b(if|else|for|while|do|break|continue|try|catch|finally|throw|return|global)\\b",name:"keyword.control.flow"},{begin:"\\b(returns)\\b",beginCaptures:{"1":{name:"keyword.control.flow.return"}},end:"(?=\\))",patterns:[{include:"#declaration-function-parameters"}]}]},"control-using":{patterns:[{match:"\\b(using)\\b\\s+\\b([A-Za-z\\d_]+)\\b\\s+\\b(for)\\b\\s+\\b([A-Za-z\\d_]+)",captures:{"1":{name:"keyword.control.using"},"2":{name:"entity.name.type.library"},"3":{name:"keyword.control.for"},"4":{name:"entity.name.type"}}},{match:"\\b(using)\\b",name:"keyword.control.using"}]},"control-import":{patterns:[{begin:"\\b(import)\\b",beginCaptures:{"1":{name:"keyword.control.import"}},end:"(?=\\;)",patterns:[{begin:"((?=\\{))",end:"((?=\\}))",patterns:[{match:"\\b(\\w+)\\b",name:"entity.name.type.interface"}]},{match:"\\b(from)\\b",name:"keyword.control.import.from"},{include:"#string"},{include:"#punctuation"}]},{match:"\\b(import)\\b",name:"keyword.control.import"}]},"control-unchecked":{match:"\\b(unchecked)\\b",name:"keyword.control.unchecked"},"control-pragma":{match:"\\b(pragma)(?:\\s+([A-Za-z_]\\w+)\\s+([^\\s]+))?\\b",captures:{"1":{name:"keyword.control.pragma"},"2":{name:"entity.name.tag.pragma"},"3":{name:"constant.other.pragma"}}},"control-underscore":{match:"\\b(_)\\b",name:"constant.other.underscore"},"control-other":{match:"\\b(new|delete|emit)\\b",name:"keyword.control"},constant:{patterns:[{include:"#constant-boolean"},{include:"#constant-time"},{include:"#constant-currency"}]},"constant-boolean":{match:"\\b(true|false)\\b",name:"constant.language.boolean"},"constant-time":{match:"\\b(seconds|minutes|hours|days|weeks|years)\\b",name:"constant.language.time"},"constant-currency":{match:"\\b(ether|wei|gwei|finney|szabo)\\b",name:"constant.language.currency"},number:{patterns:[{include:"#number-decimal"},{include:"#number-hex"},{include:"#number-scientific"}]},"number-decimal":{match:"\\b([0-9_]+(\\.[0-9_]+)?)\\b",name:"constant.numeric.decimal"},"number-hex":{match:"\\b(0[xX][a-fA-F0-9]+)\\b",name:"constant.numeric.hexadecimal"},"number-scientific":{match:"\\b(?:0\\.(?:0[0-9]|[0-9][0-9_]?)|[0-9][0-9_]*(?:\\.\\d{1,2})?)(?:e[+-]?[0-9_]+)?",name:"constant.numeric.scientific"},string:{patterns:[{match:"\\\"(?:\\\\\"|[^\\\"])*\\\"",name:"string.quoted.double"},{match:"\\'(?:\\\\'|[^\\'])*\\'",name:"string.quoted.single"}]},primitive:{patterns:[{include:"#number-decimal"},{include:"#number-hex"},{include:"#number-scientific"},{include:"#string"}]},"type-primitive":{patterns:[{begin:"\\b(address|string\\d*|bytes\\d*|int\\d*|uint\\d*|bool|hash\\d*)\\b(?:\\[\\])(\\()",beginCaptures:{"1":{name:"support.type.primitive"}},end:"(\\))",patterns:[{include:"#primitive"},{include:"#punctuation"},{include:"#global"},{include:"#variable"}]},{match:"\\b(address|string\\d*|bytes\\d*|int\\d*|uint\\d*|bool|hash\\d*)\\b",name:"support.type.primitive"}]},global:{patterns:[{include:"#global-variables"},{include:"#global-functions"}]},"global-variables":{patterns:[{match:"\\b(this)\\b",name:"variable.language.this"},{match:"\\b(super)\\b",name:"variable.language.super"},{match:"\\b(abi)\\b",name:"variable.language.builtin.abi"},{match:"\\b(msg\\.sender|msg|block|tx|now)\\b",name:"variable.language.transaction"},{match:"\\b(tx\\.origin|tx\\.gasprice|msg\\.data|msg\\.sig|msg\\.value)\\b",name:"variable.language.transaction"}]},"global-functions":{patterns:[{match:"\\b(require|assert|revert)\\b",name:"keyword.control.exceptions"},{match:"\\b(selfdestruct|suicide)\\b",name:"keyword.control.contract"},{match:"\\b(addmod|mulmod|keccak256|sha256|sha3|ripemd160|ecrecover)\\b",name:"support.function.math"},{match:"\\b(unicode)\\b",name:"support.function.string"},{match:"\\b(blockhash|gasleft)\\b",name:"variable.language.transaction"},{match:"\\b(type)\\b",name:"variable.language.type"}]},"type-modifier-access":{match:"\\b(internal|external|private|public)\\b",name:"storage.type.modifier.access"},"type-modifier-payable":{match:"\\b(nonpayable|payable)\\b",name:"storage.type.modifier.payable"},"type-modifier-constant":{match:"\\b(constant)\\b",name:"storage.type.modifier.readonly"},"type-modifier-immutable":{match:"\\b(immutable)\\b",name:"storage.type.modifier.readonly"},"type-modifier-extended-scope":{match:"\\b(pure|view|inherited|indexed|storage|memory|virtual|calldata|override|abstract)\\b",name:"storage.type.modifier.extendedscope"},variable:{patterns:[{match:"\\b(\\_\\w+)\\b",captures:{"1":{name:"variable.parameter.function"}}},{match:"(?:\\.)(\\w+)\\b",captures:{"1":{name:"support.variable.property"}}},{match:"\\b(\\w+)\\b",captures:{"1":{name:"variable.parameter.other"}}}]},"modifier-call":{patterns:[{include:"#function-call"},{match:"\\b(\\w+)\\b",name:"entity.name.function.modifier"}]},declaration:{patterns:[{include:"#declaration-contract"},{include:"#declaration-userType"},{include:"#declaration-interface"},{include:"#declaration-library"},{include:"#declaration-function"},{include:"#declaration-modifier"},{include:"#declaration-constructor"},{include:"#declaration-event"},{include:"#declaration-storage"},{include:"#declaration-error"}]},"declaration-storage-field":{patterns:[{include:"#comment"},{include:"#control"},{include:"#type-primitive"},{include:"#type-modifier-access"},{include:"#type-modifier-immutable"},{include:"#type-modifier-extend-scope"},{include:"#type-modifier-payable"},{include:"#type-modifier-constant"},{include:"#primitive"},{include:"#constant"},{include:"#operator"},{include:"#punctuation"}]},"declaration-storage":{patterns:[{include:"#declaration-storage-mapping"},{include:"#declaration-struct"},{include:"#declaration-enum"},{include:"#declaration-storage-field"}]},"declaration-userType":{match:"\\b(type)\\b\\s+(\\w+)\\b\\s+\\b(is)\\b",captures:{"1":{name:"storage.type.userType"},"2":{name:"entity.name.type.userType"},"3":{name:"storage.modifier.is"}}},"declaration-contract":{patterns:[{begin:"\\b(contract)\\b\\s+(\\w+)\\b\\s+\\b(is)\\b\\s+",end:"(?=\\{)",beginCaptures:{"1":{name:"storage.type.contract"},"2":{name:"entity.name.type.contract"},"3":{name:"storage.modifier.is"}},patterns:[{match:"\\b(\\w+)\\b",name:"entity.name.type.contract.extend"}]},{match:"\\b(contract)(\\s+([A-Za-z_]\\w*))?\\b",captures:{"1":{name:"storage.type.contract"},"2":{name:"entity.name.type.contract"}}}]},"declaration-interface":{patterns:[{begin:"\\b(interface)\\b\\s+(\\w+)\\b\\s+\\b(is)\\b\\s+",end:"(?=\\{)",beginCaptures:{"1":{name:"storage.type.interface"},"2":{name:"entity.name.type.interface"},"3":{name:"storage.modifier.is"}},patterns:[{match:"\\b(\\w+)\\b",name:"entity.name.type.interface.extend"}]},{match:"\\b(interface)(\\s+([A-Za-z_]\\w*))?\\b",captures:{"1":{name:"storage.type.interface"},"2":{name:"entity.name.type.interface"}}}]},"declaration-library":{match:"\\b(library)(\\s+([A-Za-z_]\\w*))?\\b",captures:{"1":{name:"storage.type.library"},"3":{name:"entity.name.type.library"}}},"declaration-struct":{patterns:[{match:"\\b(struct)(\\s+([A-Za-z_]\\w*))?\\b",captures:{"1":{name:"storage.type.struct"},"3":{name:"entity.name.type.struct"}}},{begin:"\\b(struct)\\b\\s*(\\w+)?\\b\\s*(?=\\{)",beginCaptures:{"1":{name:"storage.type.struct"},"2":{name:"entity.name.type.struct"}},end:"(?=\\})",patterns:[{include:"#type-primitive"},{include:"#variable"},{include:"#punctuation"},{include:"#comment"}]}]},"declaration-event":{patterns:[{begin:"\\b(event)\\b(?:\\s+(\\w+)\\b)?",end:"(?=\\))",beginCaptures:{"1":{name:"storage.type.event"},"2":{name:"entity.name.type.event"}},patterns:[{include:"#type-primitive"},{match:"\\b(?:(indexed)\\s)?(\\w+)(?:,\\s*|)",captures:{"1":{name:"storage.type.modifier.indexed"},"2":{name:"variable.parameter.event"}}},{include:"#punctuation"}]},{match:"\\b(event)(\\s+([A-Za-z_]\\w*))?\\b",captures:{"1":{name:"storage.type.event"},"3":{name:"entity.name.type.event"}}}]},"declaration-constructor":{patterns:[{begin:"\\b(constructor)\\b",beginCaptures:{"1":{name:"storage.type.constructor"}},end:"(?=\\{)",patterns:[{begin:"\\G\\s*(?=\\()",end:"(?=\\))",patterns:[{include:"#declaration-function-parameters"}]},{begin:"(?<=\\))",end:"(?=\\{)",patterns:[{include:"#type-modifier-access"},{include:"#function-call"}]}]},{match:"\\b(constructor)\\b",captures:{"1":{name:"storage.type.constructor"}}}]},"declaration-enum":{patterns:[{begin:"\\b(enum)\\s+(\\w+)\\b",beginCaptures:{"1":{name:"storage.type.enum"},"2":{name:"entity.name.type.enum"}},end:"(?=\\})",patterns:[{match:"\\b(\\w+)\\b",name:"variable.other.enummember"},{include:"#punctuation"},{include:"#comment"}]},{match:"\\b(enum)(\\s+([A-Za-z_]\\w*))?\\b",captures:{"1":{name:"storage.type.enum"},"3":{name:"entity.name.type.enum"}}}]},"declaration-function-parameters":{begin:"\\G\\s*(?=\\()",end:"(?=\\))",patterns:[{include:"#type-primitive"},{include:"#type-modifier-extended-scope"},{match:"\\b([A-Z]\\w*)\\b",captures:{"1":{name:"storage.type.struct"}}},{include:"#variable"},{include:"#punctuation"},{include:"#comment"}]},"declaration-function":{patterns:[{begin:"\\b(function)\\s+(\\w+)\\b",beginCaptures:{"1":{name:"storage.type.function"},"2":{name:"entity.name.function"}},end:"(?=\\{|;)",patterns:[{include:"#natspec"},{include:"#global"},{include:"#declaration-function-parameters"},{include:"#type-modifier-access"},{include:"#type-modifier-payable"},{include:"#type-modifier-immutable"},{include:"#type-modifier-extended-scope"},{include:"#control-flow"},{include:"#function-call"},{include:"#modifier-call"},{include:"#punctuation"}]},{match:"\\b(function)\\s+([A-Za-z_]\\w*)\\b",captures:{"1":{name:"storage.type.function"},"2":{name:"entity.name.function"}}}]},"declaration-modifier":{patterns:[{begin:"\\b(modifier)\\b\\s*(\\w+)",beginCaptures:{"1":{name:"storage.type.function.modifier"},"2":{name:"entity.name.function.modifier"}},end:"(?=\\{)",patterns:[{include:"#declaration-function-parameters"},{begin:"(?<=\\))",end:"(?=\\{)",patterns:[{include:"#declaration-function-parameters"},{include:"#type-modifier-access"},{include:"#type-modifier-payable"},{include:"#type-modifier-immutable"},{include:"#type-modifier-extended-scope"},{include:"#function-call"},{include:"#modifier-call"},{include:"#control-flow"}]}]},{match:"\\b(modifier)(\\s+([A-Za-z_]\\w*))?\\b",captures:{"1":{name:"storage.type.modifier"},"3":{name:"entity.name.function"}}}]},"declaration-storage-mapping":{patterns:[{begin:"\\b(mapping)\\b",beginCaptures:{"1":{name:"storage.type.mapping"}},end:"(?=\\))",patterns:[{include:"#declaration-storage-mapping"},{include:"#type-primitive"},{include:"#punctuation"},{include:"#operator"}]},{match:"\\b(mapping)\\b",name:"storage.type.mapping"}]},"declaration-error":{match:"\\b(error)(\\s+([A-Za-z_]\\w*))?\\b",captures:{"1":{name:"storage.type.error"},"3":{name:"entity.name.type.error"}}},"function-call":{match:"\\b([A-Za-z_]\\w*)\\s*(\\()",captures:{"1":{name:"entity.name.function"},"2":{name:"punctuation.parameters.begin"}}},assembly:{patterns:[{match:"\\b(assembly)\\b",name:"keyword.control.assembly"},{match:"\\b(let)\\b",name:"storage.type.assembly"}]},punctuation:{patterns:[{match:";",name:"punctuation.terminator.statement"},{match:"\\.",name:"punctuation.accessor"},{match:",",name:"punctuation.separator"},{match:"\\{",name:"punctuation.brace.curly.begin"},{match:"\\}",name:"punctuation.brace.curly.end"},{match:"\\[",name:"punctuation.brace.square.begin"},{match:"\\]",name:"punctuation.brace.square.end"},{match:"\\(",name:"punctuation.parameters.begin"},{match:"\\)",name:"punctuation.parameters.end"}]}},scopeName:"source.solidity",uuid:"ad87d2cd-8575-4afe-984e-9421a3788933"}; + +export { solidity_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/sparql.tmLanguage-e2d30fe9.mjs b/docs/shiki/dist/languages/sparql.tmLanguage-e2d30fe9.mjs new file mode 100644 index 00000000..04f6d821 --- /dev/null +++ b/docs/shiki/dist/languages/sparql.tmLanguage-e2d30fe9.mjs @@ -0,0 +1,3 @@ +var sparql_tmLanguage = {name:"sparql",scopeName:"source.sparql",fileTypes:["rq","sparql","sq"],patterns:[{include:"source.turtle"},{include:"#query-keyword-operators"},{include:"#functions"},{include:"#variables"},{include:"#expression-operators"}],repository:{"query-keyword-operators":{name:"keyword.control.sparql",match:"\\b(?i:define|select|distinct|reduced|from|named|construct|ask|describe|where|graph|having|bind|as|filter|optional|union|order|by|group|limit|offset|values|insert data|delete data|with|delete|insert|clear|silent|default|all|create|drop|copy|move|add|to|using|service|not exists|exists|not in|in|minus|load)\\b"},functions:{name:"support.function.sparql",match:"\\b(?i:concat|regex|asc|desc|bound|isiri|isuri|isblank|isliteral|isnumeric|str|lang|datatype|sameterm|langmatches|avg|count|group_concat|separator|max|min|sample|sum|iri|uri|bnode|strdt|uuid|struuid|strlang|strlen|substr|ucase|lcase|strstarts|strends|contains|strbefore|strafter|encode_for_uri|replace|abs|round|ceil|floor|rand|now|year|month|day|hours|minutes|seconds|timezone|tz|md5|sha1|sha256|sha384|sha512|coalesce|if)\\b"},variables:{name:"constant.variable.sparql.turtle",match:"(?<!\\w)[?$]\\w+"},"expression-operators":{name:"support.class.sparql",match:"(?:\\|\\||&&|=|!=|<|>|<=|>=|\\*|/|\\+|-|\\||\\^|\\?|\\!)"}}}; + +export { sparql_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/splunk.tmLanguage-334fbd1e.mjs b/docs/shiki/dist/languages/splunk.tmLanguage-334fbd1e.mjs new file mode 100644 index 00000000..4c46915d --- /dev/null +++ b/docs/shiki/dist/languages/splunk.tmLanguage-334fbd1e.mjs @@ -0,0 +1,3 @@ +var splunk_tmLanguage = {fileTypes:["splunk","spl"],name:"splunk",patterns:[{comment:"Splunk Built-in functions",match:"(?<=(\\||\\[))([\\s]*)\\b(abstract|accum|addcoltotals|addinfo|addtotals|analyzefields|anomalies|anomalousvalue|append|appendcols|appendpipe|arules|associate|audit|autoregress|bucket|bucketdir|chart|cluster|collect|concurrency|contingency|convert|correlate|crawl|datamodel|dbinspect|dbxquery|dbxlookup|dedup|delete|delta|diff|dispatch|erex|eval|eventcount|eventstats|extract|fieldformat|fields|fieldsummary|file|filldown|fillnull|findtypes|folderize|foreach|format|from|gauge|gentimes|geostats|head|highlight|history|input|inputcsv|inputlookup|iplocation|join|kmeans|kvform|loadjob|localize|localop|lookup|makecontinuous|makemv|makeresults|map|metadata|metasearch|multikv|multisearch|mvcombine|mvexpand|nomv|outlier|outputcsv|outputlookup|outputtext|overlap|pivot|predict|rangemap|rare|regex|relevancy|reltime|rename|replace|rest|return|reverse|rex|rtorder|run|savedsearch|script|scrub|search|searchtxn|selfjoin|sendemail|set|setfields|sichart|sirare|sistats|sitimechart|sitop|sort|spath|stats|strcat|streamstats|table|tags|tail|timechart|top|transaction|transpose|trendline|tscollect|tstats|typeahead|typelearner|typer|uniq|untable|where|x11|xmlkv|xmlunescape|xpath|xyseries)\\b(?=[\\s])",name:"support.class.splunk_search"},{comment:"Splunk Eval functions",match:"\\b(abs|acos|acosh|asin|asinh|atan|atan2|atanh|case|cidrmatch|ceiling|coalesce|commands|cos|cosh|exact|exp|floor|hypot|if|in|isbool|isint|isnotnull|isnull|isnum|isstr|len|like|ln|log|lower|ltrim|match|max|md5|min|mvappend|mvcount|mvdedup|mvfilter|mvfind|mvindex|mvjoin|mvrange|mvsort|mvzip|now|null|nullif|pi|pow|printf|random|relative_time|replace|round|rtrim|searchmatch|sha1|sha256|sha512|sigfig|sin|sinh|spath|split|sqrt|strftime|strptime|substr|tan|tanh|time|tonumber|tostring|trim|typeof|upper|urldecode|validate)(?=\\()\\b",name:"support.function.splunk_search"},{comment:"Splunk Transforming functions",match:"\\b(avg|count|distinct_count|estdc|estdc_error|eval|max|mean|median|min|mode|percentile|range|stdev|stdevp|sum|sumsq|var|varp|first|last|list|values|earliest|earliest_time|latest|latest_time|per_day|per_hour|per_minute|per_second|rate)\\b",name:"support.function.splunk_search"},{comment:"Splunk Macro Names",match:"(?<=\\`)[\\w]+(?=\\(|\\`)",name:"entity.name.function.splunk_search"},{comment:"Digits",match:"\\b(\\d+)\\b",name:"constant.numeric.splunk_search"},{comment:"Escape Characters",match:"(\\\\\\\\|\\\\\\||\\\\\\*|\\\\\\=)",name:"contant.character.escape.splunk_search"},{comment:"Splunk Operators",match:"(\\|,)",name:"keyword.operator.splunk_search"},{comment:"Splunk Language Constants",match:"(?i)\\b(as|by|or|and|over|where|output|outputnew)\\b|(?-i)\\b(NOT|true|false)\\b",name:"constant.language.splunk_search"},{comment:"Splunk Macro Parameters",match:"(?<=\\(|,|[^=]\\s{300})([^\\(\\)\\\",=]+)(?=\\)|,)",name:"variable.parameter.splunk_search"},{comment:"Splunk Variables",match:"([\\w\\.]+)(\\[\\]|\\{\\})?([\\s]*)(?=\\=)",name:"variable.splunk_search"},{comment:"Comparison or assignment",match:"=",name:"keyword.operator.splunk_search"},{begin:"(?<!\\\\)\"",end:"(?<!\\\\)\"",name:"string.quoted.double.splunk_search"},{begin:"(?<!\\\\)'",end:"(?<!\\\\)'",name:"string.quoted.single.splunk_search"},{begin:"query=\\\"",end:"(?<!\\\\)\"",name:"meta.embedded.block.sql"},{begin:"(?<!\\\\)```",end:"(?<!\\\\)```",name:"comment.block.splunk_search"},{begin:"`comment\\(",end:"\\)`",name:"comment.block.splunk_search"}],scopeName:"source.splunk_search"}; + +export { splunk_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/sql.tmLanguage-e83fef9a.mjs b/docs/shiki/dist/languages/sql.tmLanguage-e83fef9a.mjs new file mode 100644 index 00000000..c4c37fd9 --- /dev/null +++ b/docs/shiki/dist/languages/sql.tmLanguage-e83fef9a.mjs @@ -0,0 +1,3 @@ +var sql_tmLanguage = {information_for_contributors:["This file has been converted from https://github.com/microsoft/vscode-mssql/blob/master/syntaxes/SQL.plist","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."],version:"https://github.com/microsoft/vscode-mssql/commit/9cb3529a978ddf599bf5bdd228f21bbcfe2914f5",name:"sql",scopeName:"source.sql",patterns:[{match:"((?<!@)@)\\b(\\w+)\\b",name:"text.variable"},{match:"(\\[)[^\\]]*(\\])",name:"text.bracketed"},{include:"#comments"},{captures:{"1":{name:"keyword.other.create.sql"},"2":{name:"keyword.other.sql"},"5":{name:"entity.name.function.sql"}},match:"(?i:^\\s*(create(?:\\s+or\\s+replace)?)\\s+(aggregate|conversion|database|domain|function|group|(unique\\s+)?index|language|operator class|operator|rule|schema|sequence|table|tablespace|trigger|type|user|view)\\s+)(['\"`]?)(\\w+)\\4",name:"meta.create.sql"},{captures:{"1":{name:"keyword.other.create.sql"},"2":{name:"keyword.other.sql"}},match:"(?i:^\\s*(drop)\\s+(aggregate|conversion|database|domain|function|group|index|language|operator class|operator|rule|schema|sequence|table|tablespace|trigger|type|user|view))",name:"meta.drop.sql"},{captures:{"1":{name:"keyword.other.create.sql"},"2":{name:"keyword.other.table.sql"},"3":{name:"entity.name.function.sql"},"4":{name:"keyword.other.cascade.sql"}},match:"(?i:\\s*(drop)\\s+(table)\\s+(\\w+)(\\s+cascade)?\\b)",name:"meta.drop.sql"},{captures:{"1":{name:"keyword.other.create.sql"},"2":{name:"keyword.other.table.sql"}},match:"(?i:^\\s*(alter)\\s+(aggregate|conversion|database|domain|function|group|index|language|operator class|operator|proc(edure)?|rule|schema|sequence|table|tablespace|trigger|type|user|view)\\s+)",name:"meta.alter.sql"},{captures:{"1":{name:"storage.type.sql"},"2":{name:"storage.type.sql"},"3":{name:"constant.numeric.sql"},"4":{name:"storage.type.sql"},"5":{name:"constant.numeric.sql"},"6":{name:"storage.type.sql"},"7":{name:"constant.numeric.sql"},"8":{name:"constant.numeric.sql"},"9":{name:"storage.type.sql"},"10":{name:"constant.numeric.sql"},"11":{name:"storage.type.sql"},"12":{name:"storage.type.sql"},"13":{name:"storage.type.sql"},"14":{name:"constant.numeric.sql"},"15":{name:"storage.type.sql"}},match:"(?xi)\n\n\t\t\t\t# normal stuff, capture 1\n\t\t\t\t \\b(bigint|bigserial|bit|boolean|box|bytea|cidr|circle|date|double\\sprecision|inet|int|integer|line|lseg|macaddr|money|oid|path|point|polygon|real|serial|smallint|sysdate|text)\\b\n\n\t\t\t\t# numeric suffix, capture 2 + 3i\n\t\t\t\t|\\b(bit\\svarying|character\\s(?:varying)?|tinyint|var\\schar|float|interval)\\((\\d+)\\)\n\n\t\t\t\t# optional numeric suffix, capture 4 + 5i\n\t\t\t\t|\\b(char|number|varchar\\d?)\\b(?:\\((\\d+)\\))?\n\n\t\t\t\t# special case, capture 6 + 7i + 8i\n\t\t\t\t|\\b(numeric|decimal)\\b(?:\\((\\d+),(\\d+)\\))?\n\n\t\t\t\t# special case, captures 9, 10i, 11\n\t\t\t\t|\\b(times?)\\b(?:\\((\\d+)\\))?(\\swith(?:out)?\\stime\\szone\\b)?\n\n\t\t\t\t# special case, captures 12, 13, 14i, 15\n\t\t\t\t|\\b(timestamp)(?:(s|tz))?\\b(?:\\((\\d+)\\))?(\\s(with|without)\\stime\\szone\\b)?\n\n\t\t\t"},{match:"(?i:\\b((?:primary|foreign)\\s+key|references|on\\sdelete(\\s+cascade)?|nocheck|check|constraint|collate|default)\\b)",name:"storage.modifier.sql"},{match:"\\b\\d+\\b",name:"constant.numeric.sql"},{match:"(?i:\\b(select(\\s+(all|distinct))?|insert\\s+(ignore\\s+)?into|update|delete|from|set|where|group\\s+by|or|like|and|union(\\s+all)?|having|order\\s+by|limit|cross\\s+join|join|straight_join|(inner|(left|right|full)(\\s+outer)?)\\s+join|natural(\\s+(inner|(left|right|full)(\\s+outer)?))?\\s+join)\\b)",name:"keyword.other.DML.sql"},{match:"(?i:\\b(on|off|((is\\s+)?not\\s+)?null)\\b)",name:"keyword.other.DDL.create.II.sql"},{match:"(?i:\\bvalues\\b)",name:"keyword.other.DML.II.sql"},{match:"(?i:\\b(begin(\\s+work)?|start\\s+transaction|commit(\\s+work)?|rollback(\\s+work)?)\\b)",name:"keyword.other.LUW.sql"},{match:"(?i:\\b(grant(\\swith\\sgrant\\soption)?|revoke)\\b)",name:"keyword.other.authorization.sql"},{match:"(?i:\\bin\\b)",name:"keyword.other.data-integrity.sql"},{match:"(?i:^\\s*(comment\\s+on\\s+(table|column|aggregate|constraint|database|domain|function|index|operator|rule|schema|sequence|trigger|type|view))\\s+.*?\\s+(is)\\s+)",name:"keyword.other.object-comments.sql"},{match:"(?i)\\bAS\\b",name:"keyword.other.alias.sql"},{match:"(?i)\\b(DESC|ASC)\\b",name:"keyword.other.order.sql"},{match:"\\*",name:"keyword.operator.star.sql"},{match:"[!<>]?=|<>|<|>",name:"keyword.operator.comparison.sql"},{match:"-|\\+|/",name:"keyword.operator.math.sql"},{match:"\\|\\|",name:"keyword.operator.concatenator.sql"},{match:"(?i)\\b(approx_count_distinct|approx_percentile_cont|approx_percentile_disc|avg|checksum_agg|count|count_big|group|grouping|grouping_id|max|min|sum|stdev|stdevp|var|varp)\\b\\s*\\(",captures:{"1":{name:"support.function.aggregate.sql"}}},{match:"(?i)\\b(cume_dist|first_value|lag|last_value|lead|percent_rank|percentile_cont|percentile_disc)\\b\\s*\\(",captures:{"1":{name:"support.function.analytic.sql"}}},{match:"(?i)\\b(bit_count|get_bit|left_shift|right_shift|set_bit)\\b\\s*\\(",captures:{"1":{name:"support.function.bitmanipulation.sql"}}},{match:"(?i)\\b(cast|convert|parse|try_cast|try_convert|try_parse)\\b\\s*\\(",captures:{"1":{name:"support.function.conversion.sql"}}},{match:"(?i)\\b(collationproperty|tertiary_weights)\\b\\s*\\(",captures:{"1":{name:"support.function.collation.sql"}}},{match:"(?i)\\b(asymkey_id|asymkeyproperty|certproperty|cert_id|crypt_gen_random|decryptbyasymkey|decryptbycert|decryptbykey|decryptbykeyautoasymkey|decryptbykeyautocert|decryptbypassphrase|encryptbyasymkey|encryptbycert|encryptbykey|encryptbypassphrase|hashbytes|is_objectsigned|key_guid|key_id|key_name|signbyasymkey|signbycert|symkeyproperty|verifysignedbycert|verifysignedbyasymkey)\\b\\s*\\(",captures:{"1":{name:"support.function.cryptographic.sql"}}},{match:"(?i)\\b(cursor_status)\\b\\s*\\(",captures:{"1":{name:"support.function.cursor.sql"}}},{match:"(?i)\\b(sysdatetime|sysdatetimeoffset|sysutcdatetime|current_time(stamp)?|getdate|getutcdate|datename|datepart|day|month|year|datefromparts|datetime2fromparts|datetimefromparts|datetimeoffsetfromparts|smalldatetimefromparts|timefromparts|datediff|dateadd|datetrunc|eomonth|switchoffset|todatetimeoffset|isdate|date_bucket)\\b\\s*\\(",captures:{"1":{name:"support.function.datetime.sql"}}},{match:"(?i)\\b(datalength|ident_current|ident_incr|ident_seed|identity|sql_variant_property)\\b\\s*\\(",captures:{"1":{name:"support.function.datatype.sql"}}},{match:"(?i)\\b(coalesce|nullif)\\b\\s*\\(",captures:{"1":{name:"support.function.expression.sql"}}},{match:"(?<!@)@@(?i)\\b(cursor_rows|connections|cpu_busy|datefirst|dbts|error|fetch_status|identity|idle|io_busy|langid|language|lock_timeout|max_connections|max_precision|nestlevel|options|packet_errors|pack_received|pack_sent|procid|remserver|rowcount|servername|servicename|spid|textsize|timeticks|total_errors|total_read|total_write|trancount|version)\\b\\s*\\(",captures:{"1":{name:"support.function.globalvar.sql"}}},{match:"(?i)\\b(json|isjson|json_object|json_array|json_value|json_query|json_modify|json_path_exists)\\b\\s*\\(",captures:{"1":{name:"support.function.json.sql"}}},{match:"(?i)\\b(choose|iif|greatest|least)\\b\\s*\\(",captures:{"1":{name:"support.function.logical.sql"}}},{match:"(?i)\\b(abs|acos|asin|atan|atn2|ceiling|cos|cot|degrees|exp|floor|log|log10|pi|power|radians|rand|round|sign|sin|sqrt|square|tan)\\b\\s*\\(",captures:{"1":{name:"support.function.mathematical.sql"}}},{match:"(?i)\\b(app_name|applock_mode|applock_test|assemblyproperty|col_length|col_name|columnproperty|database_principal_id|databasepropertyex|db_id|db_name|file_id|file_idex|file_name|filegroup_id|filegroup_name|filegroupproperty|fileproperty|fulltextcatalogproperty|fulltextserviceproperty|index_col|indexkey_property|indexproperty|object_definition|object_id|object_name|object_schema_name|objectproperty|objectpropertyex|original_db_name|parsename|schema_id|schema_name|scope_identity|serverproperty|stats_date|type_id|type_name|typeproperty)\\b\\s*\\(",captures:{"1":{name:"support.function.metadata.sql"}}},{match:"(?i)\\b(rank|dense_rank|ntile|row_number)\\b\\s*\\(",captures:{"1":{name:"support.function.ranking.sql"}}},{match:"(?i)\\b(generate_series|opendatasource|openjson|openrowset|openquery|openxml|predict|string_split)\\b\\s*\\(",captures:{"1":{name:"support.function.rowset.sql"}}},{match:"(?i)\\b(certencoded|certprivatekey|current_user|database_principal_id|has_perms_by_name|is_member|is_rolemember|is_srvrolemember|original_login|permissions|pwdcompare|pwdencrypt|schema_id|schema_name|session_user|suser_id|suser_sid|suser_sname|system_user|suser_name|user_id|user_name)\\b\\s*\\(",captures:{"1":{name:"support.function.security.sql"}}},{match:"(?i)\\b(ascii|char|charindex|concat|difference|format|left|len|lower|ltrim|nchar|nodes|patindex|quotename|replace|replicate|reverse|right|rtrim|soundex|space|str|string_agg|string_escape|string_split|stuff|substring|translate|trim|unicode|upper)\\b\\s*\\(",captures:{"1":{name:"support.function.string.sql"}}},{match:"(?i)\\b(binary_checksum|checksum|compress|connectionproperty|context_info|current_request_id|current_transaction_id|decompress|error_line|error_message|error_number|error_procedure|error_severity|error_state|formatmessage|get_filestream_transaction_context|getansinull|host_id|host_name|isnull|isnumeric|min_active_rowversion|newid|newsequentialid|rowcount_big|session_context|session_id|xact_state)\\b\\s*\\(",captures:{"1":{name:"support.function.system.sql"}}},{match:"(?i)\\b(patindex|textptr|textvalid)\\b\\s*\\(",captures:{"1":{name:"support.function.textimage.sql"}}},{captures:{"1":{name:"constant.other.database-name.sql"},"2":{name:"constant.other.table-name.sql"}},match:"(\\w+?)\\.(\\w+)"},{include:"#strings"},{include:"#regexps"},{match:"\\b(?i)(abort|abort_after_wait|absent|absolute|accent_sensitivity|acceptable_cursopt|acp|action|activation|add|address|admin|aes_128|aes_192|aes_256|affinity|after|aggregate|algorithm|all_constraints|all_errormsgs|all_indexes|all_levels|all_results|allow_connections|allow_dup_row|allow_encrypted_value_modifications|allow_page_locks|allow_row_locks|allow_snapshot_isolation|alter|altercolumn|always|anonymous|ansi_defaults|ansi_null_default|ansi_null_dflt_off|ansi_null_dflt_on|ansi_nulls|ansi_padding|ansi_warnings|appdomain|append|application|apply|arithabort|arithignore|array|assembly|asymmetric|asynchronous_commit|at|atan2|atomic|attach|attach_force_rebuild_log|attach_rebuild_log|audit|auth_realm|authentication|auto|auto_cleanup|auto_close|auto_create_statistics|auto_drop|auto_shrink|auto_update_statistics|auto_update_statistics_async|automated_backup_preference|automatic|autopilot|availability|availability_mode|backup|backup_priority|base64|basic|batches|batchsize|before|between|bigint|binary|binding|bit|block|blockers|blocksize|bmk|both|break|broker|broker_instance|bucket_count|buffer|buffercount|bulk_logged|by|call|caller|card|case|catalog|catch|cert|certificate|change_retention|change_tracking|change_tracking_context|changes|char|character|character_set|check_expiration|check_policy|checkconstraints|checkindex|checkpoint|checksum|cleanup_policy|clear|clear_port|close|clustered|codepage|collection|column_encryption_key|column_master_key|columnstore|columnstore_archive|colv_80_to_100|colv_100_to_80|commit_differential_base|committed|compatibility_level|compress_all_row_groups|compression|compression_delay|concat_null_yields_null|concatenate|configuration|connect|containment|continue|continue_after_error|contract|contract_name|control|conversation|conversation_group_id|conversation_handle|copy|copy_only|count_rows|counter|create(\\\\s+or\\\\s+alter)?|credential|cross|cryptographic|cryptographic_provider|cube|cursor|cursor_close_on_commit|cursor_default|data|data_compression|data_flush_interval_seconds|data_mirroring|data_purity|data_source|database|database_name|database_snapshot|datafiletype|date_correlation_optimization|date|datefirst|dateformat|date_format|datetime|datetime2|datetimeoffset|day(s)?|db_chaining|dbid|dbidexec|dbo_only|deadlock_priority|deallocate|dec|decimal|declare|decrypt|decrypt_a|decryption|default_database|default_fulltext_language|default_language|default_logon_domain|default_schema|definition|delay|delayed_durability|delimitedtext|density_vector|dependent|des|description|desired_state|desx|differential|digest|disable|disable_broker|disable_def_cnst_chk|disabled|disk|distinct|distributed|distribution|drop|drop_existing|dts_buffers|dump|durability|dynamic|edition|elements|else|emergency|empty|enable|enable_broker|enabled|encoding|encrypted|encrypted_value|encryption|encryption_type|end|endpoint|endpoint_url|enhancedintegrity|entry|error_broker_conversations|errorfile|estimateonly|event|except|exec|executable|execute|exists|expand|expiredate|expiry_date|explicit|external|external_access|failover|failover_mode|failure_condition_level|fast|fast_forward|fastfirstrow|federated_service_account|fetch|field_terminator|fieldterminator|file|filelistonly|filegroup|filegrowth|filename|filestream|filestream_log|filestream_on|filetable|file_format|filter|first_row|fips_flagger|fire_triggers|first|firstrow|float|flush_interval_seconds|fmtonly|following|for|force|force_failover_allow_data_loss|force_service_allow_data_loss|forced|forceplan|formatfile|format_options|format_type|formsof|forward_only|free_cursors|free_exec_context|fullscan|fulltext|fulltextall|fulltextkey|function|generated|get|geography|geometry|global|go|goto|governor|guid|hadoop|hardening|hash|hashed|header_limit|headeronly|health_check_timeout|hidden|hierarchyid|histogram|histogram_steps|hits_cursors|hits_exec_context|hour(s)?|http|identity|identity_value|if|ifnull|ignore|ignore_constraints|ignore_dup_key|ignore_dup_row|ignore_triggers|image|immediate|implicit_transactions|include|include_null_values|incremental|index|inflectional|init|initiator|insensitive|insert|instead|int|integer|integrated|intersect|intermediate|interval_length_minutes|into|inuse_cursors|inuse_exec_context|io|is|isabout|iso_week|isolation|job_tracker_location|json|keep|keep_nulls|keep_replication|keepdefaults|keepfixed|keepidentity|keepnulls|kerberos|key|key_path|key_source|key_store_provider_name|keyset|kill|kilobytes_per_batch|labelonly|langid|language|last|lastrow|leading|legacy_cardinality_estimation|length|level|lifetime|lineage_80_to_100|lineage_100_to_80|listener_ip|listener_port|load|loadhistory|lob_compaction|local|local_service_name|locate|location|lock_escalation|lock_timeout|lockres|log|login|login_type|loop|manual|mark_in_use_for_removal|masked|master|matched|max_queue_readers|max_duration|max_outstanding_io_per_volume|maxdop|maxerrors|maxlength|maxtransfersize|max_plans_per_query|max_storage_size_mb|mediadescription|medianame|mediapassword|memogroup|memory_optimized|merge|message|message_forward_size|message_forwarding|microsecond|millisecond|minute(s)?|mirror_address|misses_cursors|misses_exec_context|mixed|modify|money|month|move|multi_user|must_change|name|namespace|nanosecond|native|native_compilation|nchar|ncharacter|nested_triggers|never|new_account|new_broker|newname|next|no|no_browsetable|no_checksum|no_compression|no_infomsgs|no_triggers|no_truncate|nocount|noexec|noexpand|noformat|noinit|nolock|nonatomic|nonclustered|nondurable|none|norecompute|norecovery|noreset|norewind|noskip|not|notification|nounload|now|nowait|ntext|ntlm|nulls|numeric|numeric_roundabort|nvarchar|object|objid|oem|offline|old_account|online|operation_mode|open|openjson|optimistic|option|orc|out|outer|output|over|override|owner|ownership|pad_index|page|page_checksum|page_verify|pagecount|paglock|param|parameter_sniffing|parameter_type_expansion|parameterization|parquet|parseonly|partial|partition|partner|password|path|pause|percentage|permission_set|persisted|period|physical_only|plan_forcing_mode|policy|pool|population|ports|preceding|precision|predicate|presume_abort|primary|primary_role|print|prior|priority |priority_level|private|proc(edure)?|procedure_name|profile|provider|quarter|query_capture_mode|query_governor_cost_limit|query_optimizer_hotfixes|query_store|queue|quoted_identifier|raiserror|range|raw|rcfile|rc2|rc4|rc4_128|rdbms|read_committed_snapshot|read|read_only|read_write|readcommitted|readcommittedlock|readonly|readpast|readuncommitted|readwrite|real|rebuild|receive|recmodel_70backcomp|recompile|reconfigure|recovery|recursive|recursive_triggers|redo_queue|reject_sample_value|reject_type|reject_value|relative|remote|remote_data_archive|remote_proc_transactions|remote_service_name|remove|removed_cursors|removed_exec_context|reorganize|repeat|repeatable|repeatableread|replace|replica|replicated|replnick_100_to_80|replnickarray_80_to_100|replnickarray_100_to_80|required|required_cursopt|resample|reset|resource|resource_manager_location|respect|restart|restore|restricted_user|resume|retaindays|retention|return|revert|rewind|rewindonly|returns|robust|role|rollup|root|round_robin|route|row|rowdump|rowguidcol|rowlock|row_terminator|rows|rows_per_batch|rowsets_only|rowterminator|rowversion|rsa_1024|rsa_2048|rsa_3072|rsa_4096|rsa_512|safe|safety|sample|save|scalar|schema|schemabinding|scoped|scroll|scroll_locks|sddl|second|secexpr|seconds|secondary|secondary_only|secondary_role|secret|security|securityaudit|selective|self|send|sent|sequence|serde_method|serializable|server|service|service_broker|service_name|service_objective|session_timeout|session|sessions|seterror|setopts|sets|shard_map_manager|shard_map_name|sharded|shared_memory|show_statistics|showplan_all|showplan_text|showplan_xml|showplan_xml_with_recompile|shrinkdb|shutdown|sid|signature|simple|single_blob|single_clob|single_nclob|single_user|singleton|site|size|size_based_cleanup_mode|skip|smalldatetime|smallint|smallmoney|snapshot|snapshot_import|snapshotrestorephase|soap|softnuma|sort_in_tempdb|sorted_data|sorted_data_reorg|spatial|sql|sql_bigint|sql_binary|sql_bit|sql_char|sql_date|sql_decimal|sql_double|sql_float|sql_guid|sql_handle|sql_longvarbinary|sql_longvarchar|sql_numeric|sql_real|sql_smallint|sql_time|sql_timestamp|sql_tinyint|sql_tsi_day|sql_tsi_frac_second|sql_tsi_hour|sql_tsi_minute|sql_tsi_month|sql_tsi_quarter|sql_tsi_second|sql_tsi_week|sql_tsi_year|sql_type_date|sql_type_time|sql_type_timestamp|sql_varbinary|sql_varchar|sql_variant|sql_wchar|sql_wlongvarchar|ssl|ssl_port|standard|standby|start|start_date|started|stat_header|state|statement|static|statistics|statistics_incremental|statistics_norecompute|statistics_only|statman|stats|stats_stream|status|stop|stop_on_error|stopat|stopatmark|stopbeforemark|stoplist|stopped|string_delimiter|subject|supplemental_logging|supported|suspend|symmetric|synchronous_commit|synonym|sysname|system|system_time|system_versioning|table|tableresults|tablock|tablockx|take|tape|target|target_index|target_partition|target_recovery_time|tcp|temporal_history_retention|text|textimage_on|then|thesaurus|throw|time|timeout|timestamp|tinyint|to|top|torn_page_detection|track_columns_updated|trailing|tran|transaction|transfer|transform_noise_words|triple_des|triple_des_3key|truncate|trustworthy|try|tsql|two_digit_year_cutoff|type|type_desc|type_warning|tzoffset|uid|unbounded|uncommitted|unique|uniqueidentifier|unlimited|unload|unlock|unsafe|updlock|url|use|useplan|useroptions|use_type_default|using|utcdatetime|valid_xml|validation|value|values|varbinary|varchar|verbose|verifyonly|version|view_metadata|virtual_device|visiblity|wait_at_low_priority|waitfor|webmethod|week|weekday|weight|well_formed_xml|when|while|widechar|widechar_ansi|widenative|window|windows|with|within|within group|witness|without|without_array_wrapper|workload|wsdl|xact_abort|xlock|xml|xmlschema|xquery|xsinil|year|zone)\\b",name:"keyword.other.sql"},{captures:{"1":{name:"punctuation.section.scope.begin.sql"},"2":{name:"punctuation.section.scope.end.sql"}},comment:"Allow for special ↩ behavior",match:"(\\()(\\))",name:"meta.block.sql"}],repository:{comments:{patterns:[{begin:"(^[ \\t]+)?(?=--)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.sql"}},end:"(?!\\G)",patterns:[{begin:"--",beginCaptures:{"0":{name:"punctuation.definition.comment.sql"}},end:"\\n",name:"comment.line.double-dash.sql"}]},{begin:"(^[ \\t]+)?(?=#)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.sql"}},end:"(?!\\G)",patterns:[]},{include:"#comment-block"}]},"comment-block":{begin:"/\\*",captures:{"0":{name:"punctuation.definition.comment.sql"}},end:"\\*/",name:"comment.block",patterns:[{include:"#comment-block"}]},regexps:{patterns:[{begin:"/(?=\\S.*/)",beginCaptures:{"0":{name:"punctuation.definition.string.begin.sql"}},end:"/",endCaptures:{"0":{name:"punctuation.definition.string.end.sql"}},name:"string.regexp.sql",patterns:[{include:"#string_interpolation"},{match:"\\\\/",name:"constant.character.escape.slash.sql"}]},{begin:"%r\\{",beginCaptures:{"0":{name:"punctuation.definition.string.begin.sql"}},comment:"We should probably handle nested bracket pairs!?! -- Allan",end:"\\}",endCaptures:{"0":{name:"punctuation.definition.string.end.sql"}},name:"string.regexp.modr.sql",patterns:[{include:"#string_interpolation"}]}]},string_escape:{match:"\\\\.",name:"constant.character.escape.sql"},string_interpolation:{captures:{"1":{name:"punctuation.definition.string.begin.sql"},"3":{name:"punctuation.definition.string.end.sql"}},match:"(#\\{)([^\\}]*)(\\})",name:"string.interpolated.sql"},strings:{patterns:[{captures:{"2":{name:"punctuation.definition.string.begin.sql"},"3":{name:"punctuation.definition.string.end.sql"}},comment:"this is faster than the next begin/end rule since sub-pattern will match till end-of-line and SQL files tend to have very long lines.",match:"(N)?(')[^']*(')",name:"string.quoted.single.sql"},{begin:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.sql"}},end:"'",endCaptures:{"0":{name:"punctuation.definition.string.end.sql"}},name:"string.quoted.single.sql",patterns:[{include:"#string_escape"}]},{captures:{"1":{name:"punctuation.definition.string.begin.sql"},"2":{name:"punctuation.definition.string.end.sql"}},comment:"this is faster than the next begin/end rule since sub-pattern will match till end-of-line and SQL files tend to have very long lines.",match:"(`)[^`\\\\]*(`)",name:"string.quoted.other.backtick.sql"},{begin:"`",beginCaptures:{"0":{name:"punctuation.definition.string.begin.sql"}},end:"`",endCaptures:{"0":{name:"punctuation.definition.string.end.sql"}},name:"string.quoted.other.backtick.sql",patterns:[{include:"#string_escape"}]},{captures:{"1":{name:"punctuation.definition.string.begin.sql"},"2":{name:"punctuation.definition.string.end.sql"}},comment:"this is faster than the next begin/end rule since sub-pattern will match till end-of-line and SQL files tend to have very long lines.",match:"(\")[^\"#]*(\")",name:"string.quoted.double.sql"},{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.sql"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.sql"}},name:"string.quoted.double.sql",patterns:[{include:"#string_interpolation"}]},{begin:"%\\{",beginCaptures:{"0":{name:"punctuation.definition.string.begin.sql"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.string.end.sql"}},name:"string.other.quoted.brackets.sql",patterns:[{include:"#string_interpolation"}]}]}}}; + +export { sql_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/ssh-config.tmLanguage-2afa8259.mjs b/docs/shiki/dist/languages/ssh-config.tmLanguage-2afa8259.mjs new file mode 100644 index 00000000..5071f253 --- /dev/null +++ b/docs/shiki/dist/languages/ssh-config.tmLanguage-2afa8259.mjs @@ -0,0 +1,3 @@ +var sshConfig_tmLanguage = {fileTypes:["ssh_config",".ssh/config","sshd_config"],name:"ssh-config",patterns:[{match:"\\b(A(cceptEnv|dd(ressFamily|KeysToAgent)|llow(AgentForwarding|Groups|StreamLocalForwarding|TcpForwarding|Users)|uth(enticationMethods|orized((Keys(Command(User)?|File)|Principals(Command(User)?|File)))))|B(anner|atchMode|ind(Address|Interface))|C(anonical(Domains|ize(FallbackLocal|Hostname|MaxDots|PermittedCNAMEs))|ertificateFile|hallengeResponseAuthentication|heckHostIP|hrootDirectory|iphers?|learAllForwardings|ientAlive(CountMax|Interval)|ompression(Level)?|onnect(Timeout|ionAttempts)|ontrolMaster|ontrolPath|ontrolPersist)|D(eny(Groups|Users)|isableForwarding|ynamicForward)|E(nableSSHKeysign|scapeChar|xitOnForwardFailure|xposeAuthInfo)|F(ingerprintHash|orceCommand|orward(Agent|X11(Timeout|Trusted)?))|G(atewayPorts|SSAPI(Authentication|CleanupCredentials|ClientIdentity|DelegateCredentials|KeyExchange|RenewalForcesRekey|ServerIdentity|StrictAcceptorCheck|TrustDns)|atewayPorts|lobalKnownHostsFile)|H(ashKnownHosts|ost(based(AcceptedKeyTypes|Authentication|KeyTypes|UsesNameFromPacketOnly)|Certificate|Key(Agent|Algorithms|Alias)?|Name))|I(dentit(iesOnly|y(Agent|File))|gnore(Rhosts|Unknown|UserKnownHosts)|nclude|PQoS)|K(bdInteractive(Authentication|Devices)|erberos(Authentication|GetAFSToken|OrLocalPasswd|TicketCleanup)|exAlgorithms)|L(istenAddress|ocal(Command|Forward)|oginGraceTime|ogLevel)|M(ACs|atch|ax(AuthTries|Sessions|Startups))|N(oHostAuthenticationForLocalhost|umberOfPasswordPrompts)|P(KCS11Provider|asswordAuthentication|ermit(EmptyPasswords|LocalCommand|Open|RootLogin|TTY|Tunnel|User(Environment|RC))|idFile|ort|referredAuthentications|rint(LastLog|Motd)|rotocol|roxy(Command|Jump|UseFdpass)|ubkey(AcceptedKeyTypes|Authentication))|R(Domain|SAAuthentication|ekeyLimit|emote(Command|Forward)|equestTTY|evoked(HostKeys|Keys)|hostsRSAAuthentication)|S(endEnv|erverAlive(CountMax|Interval)|treamLocalBind(Mask|Unlink)|trict(HostKeyChecking|Modes)|ubsystem|yslogFacility)|T(CPKeepAlive|rustedUserCAKeys|unnel(Device)?)|U(pdateHostKeys|se(BlacklistedKeys|DNS|Keychain|PAM|PrivilegedPort|r(KnownHostsFile)?))|V(erifyHostKeyDNS|ersionAddendum|isualHostKey)|X(11(DisplayOffset|Forwarding|UseLocalhost)|AuthLocation))\\b",name:"keyword.other.ssh-config"},{begin:"(^[ \\t]+)?(?=#)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.ssh-config"}},end:"(?!\\G)",patterns:[{begin:"#",beginCaptures:{"0":{name:"punctuation.definition.comment.ssh-config"}},end:"\\n",name:"comment.line.number-sign.ssh-config"}]},{begin:"(^[ \\t]+)?(?=//)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.ssh-config"}},end:"(?!\\G)",patterns:[{begin:"//",beginCaptures:{"0":{name:"punctuation.definition.comment.ssh-config"}},end:"\\n",name:"comment.line.double-slash.ssh-config"}]},{captures:{"1":{name:"storage.type.ssh-config"},"2":{name:"entity.name.section.ssh-config"},"3":{name:"meta.toc-list.ssh-config"}},match:"(?:^| |\\t)(Host)\\s+((.*))$"},{match:"\\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b",name:"constant.numeric.ssh-config"},{match:"\\b[0-9]+\\b",name:"constant.numeric.ssh-config"},{match:"\\b(yes|no)\\b",name:"constant.language.ssh-config"},{match:"\\b[A-Z_]+\\b",name:"constant.language.ssh-config"}],scopeName:"source.ssh-config",uuid:"B273855C-59D3-4DF3-9B7C-E68E0057D315"}; + +export { sshConfig_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/stata.tmLanguage-ef6f2eba.mjs b/docs/shiki/dist/languages/stata.tmLanguage-ef6f2eba.mjs new file mode 100644 index 00000000..bdcbc40a --- /dev/null +++ b/docs/shiki/dist/languages/stata.tmLanguage-ef6f2eba.mjs @@ -0,0 +1,3 @@ +var stata_tmLanguage = {scopeName:"source.stata",name:"stata",fileTypes:["do","ado","mata"],foldingStartMarker:"\\{\\s*$",foldingStopMarker:"^\\s*\\}",patterns:[{include:"#ascii-regex-functions"},{include:"#unicode-regex-functions"},{include:"#constants"},{include:"#functions"},{include:"#comments"},{include:"#subscripts"},{include:"#operators"},{include:"#macro-local"},{include:"#macro-global"},{include:"#string-compound"},{include:"#string-regular"},{include:"#builtin_variables"},{include:"#macro-commands"},{comment:"keywords that delimit flow conditionals",name:"keyword.control.conditional.stata",match:"\\b(if|else if|else)\\b"},{captures:{"1":{name:"storage.type.scalar.stata"}},match:"^\\s*(sca(lar|la|l)?(\\s+de(fine|fin|fi|f)?)?)\\s+(?!(drop|dir?|l(ist|is|i)?)\\s+)"},{begin:"\\b(mer(ge|g)?)\\s+(1|m|n)(:)(1|m|n)",beginCaptures:{"1":{name:"keyword.control.flow.stata"},"3":{patterns:[{include:"#constants"},{match:"m|n",name:""}]},"4":{name:"punctuation.separator.key-value"},"5":{patterns:[{include:"#constants"},{match:"m|n",name:""}]}},end:"using",patterns:[{include:"#builtin_variables"},{include:"#macro-local"},{include:"#macro-global"},{include:"#comments"}]},{match:"\\b(foreach)\\s+((?!in|of).+)\\s+(in|of var(list|lis|li|l)?|of new(list|lis|li|l)?|of num(list|lis|li|l)?)\\b",captures:{"1":{name:"keyword.control.flow.stata"},"2":{patterns:[{include:"#macro-local-identifiers"},{include:"#macro-local"},{include:"#macro-global"}]},"3":{name:"keyword.control.flow.stata"}}},{begin:"\\b(foreach)\\s+((?!in|of).+)\\s+(of loc(al|a)?|of glo(bal|ba|b)?)\\b\\s*",beginCaptures:{"1":{name:"keyword.control.flow.stata"},"2":{patterns:[{include:"#macro-local-identifiers"},{include:"#macro-local"},{include:"#macro-global"}]},"3":{name:"keyword.control.flow.stata"}},end:"(?=\\s*\\{)",patterns:[{include:"#macro-local-identifiers"},{include:"#macro-local"},{include:"#macro-global"}]},{begin:"\\b(forvalues|forvalue|forvalu|forval|forva|forv)\\s*",end:"\\s*(=)\\s*([^\\{]+)\\s*|(?=\\n)",beginCaptures:{"1":{name:"keyword.control.flow.stata"}},endCaptures:{"1":{name:"keyword.operator.assignment.stata"},"2":{patterns:[{include:"#constants"},{include:"#operators"},{include:"#macro-local"},{include:"#macro-global"}]}},patterns:[{include:"#macro-local-identifiers"},{include:"#macro-local"},{include:"#macro-global"}]},{comment:"keywords that delimit loops",name:"keyword.control.flow.stata",match:"\\b(while|continue)\\b"},{captures:{"1":{name:"keyword.other.stata"}},comment:"keywords that haven't fit into other groups (yet).",match:"\\b(as|ass|asse|asser|assert)\\b"},{match:"\\b(by(sort|sor|so|s)?|statsby|rolling|bootstrap|jackknife|permute|simulate|svy|mi est(imate|imat|ima|im|i)?|nestreg|stepwise|xi|fp|mfp|vers(ion|io|i)?)\\b",name:"storage.type.function.stata",comment:"prefixes that require a colon"},{comment:"prefixes that don't need a colon",name:"keyword.control.flow.stata",match:"\\b(qui(etly|etl|et|e)?|n(oisily|oisil|oisi|ois|oi|o)?|cap(ture|tur|tu|t)?)\\b:?"},{match:"\\s*(pr(ogram|ogra|ogr|og|o)?)\\s+((di(r)?|drop|l(ist|is|i)?)\\s+)([\\w&&[^0-9]]\\w{0,31})",captures:{"1":{name:"storage.type.function.stata"},"3":{name:"storage.type.function.stata"},"7":{name:"entity.name.function.stata"}}},{begin:"^\\s*(pr(ogram|ogra|ogr|og|o)?)\\s+(de(fine|fin|fi|f)?\\s+)?",beginCaptures:{"1":{name:"storage.type.function.stata"},"3":{name:"storage.type.function.stata"}},end:"(?=,|\\n|/)",patterns:[{include:"#macro-local"},{include:"#macro-global"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"entity.name.function.stata"},{match:"[^A-za-z_0-9,\\n/ ]+",name:"invalid.illegal.name.stata"}]},{match:"\\b(form(at|a)?)\\s*([\\w&&[^0-9]]\\w{0,31})*\\s*(%)(-)?(0)?([0-9]+)(.)([0-9]+)(e|f|g)(c)?",captures:{"1":"keyword.functions.data.stata.test"}},{include:"#braces-with-error"},{begin:"(?=syntax)",end:"\\n",patterns:[{comment:"color before the comma",begin:"syntax",beginCaptures:{"0":{name:"keyword.functions.program.stata"}},end:"(?=,|\\n)",patterns:[{begin:"///",end:"\\n",name:"comment.block.stata"},{match:"\\[",name:"punctuation.definition.parameters.begin.stata"},{match:"\\]",name:"punctuation.definition.parameters.end.stata"},{match:"\\b(varlist|varname|newvarlist|newvarname|namelist|name|anything)\\b",name:"entity.name.type.class.stata"},{match:"\\b((if|in|using|fweight|aweight|pweight|iweight))\\b(/)?",captures:{"2":{name:"entity.name.type.class.stata"},"3":{name:"keyword.operator.arithmetic.stata"}}},{match:"(/)?(exp)",captures:{"1":{name:"keyword.operator.arithmetic.stata"},"2":{name:"entity.name.type.class.stata"}}},{include:"#constants"},{include:"#operators"},{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#builtin_variables"}]},{comment:"things to color after the comma",begin:",",beginCaptures:{"0":{name:"punctuation.definition.variable.begin.stata"}},end:"(?=\\n)",patterns:[{begin:"///",end:"\\n",name:"comment.block.stata"},{comment:"color options with parentheses",begin:"([^\\s\\[\\]]+)(\\()",beginCaptures:{"1":{patterns:[{include:"#macro-local-identifiers"},{include:"#macro-local"},{include:"#macro-global"}],comment:"these are the names that become macros"},"2":{name:"keyword.operator.parentheses.stata"}},end:"\\)",endCaptures:{"0":{name:"keyword.operator.parentheses.stata"}},patterns:[{comment:"the first word is often a type",match:"\\b(integer|intege|integ|inte|int|real|string|strin|stri|str)\\b",captures:{"0":{name:"support.type.stata"}}},{include:"#constants"},{include:"#operators"},{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#builtin_variables"}]},{include:"#macro-local-identifiers"},{include:"#constants"},{include:"#operators"},{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#builtin_variables"}]}]},{captures:{"1":{name:"keyword.functions.data.stata"}},comment:"one-word commands",match:"\\b(sa(v|ve)|saveold|destring|tostring|u(se|s)?|note(s)?|form(at|a)?)\\b"},{match:"\\b(exit|end)\\b",name:"keyword.functions.data.stata",comment:"programming commands"},{match:"\\b(replace)\\s+([^=]+)\\s*((==)|(=))",captures:{"1":{name:"keyword.functions.data.stata"},"2":{patterns:[{include:"#macro-local"}]},"4":{name:"invalid.illegal.name.stata"},"5":{name:"keyword.operator.assignment.stata"}}},{match:"\\b(g(enerate|enerat|enera|ener|ene|en|e)?|egen)\\s+((byte|int|long|float|double|str[1-9]?[0-9]?[0-9]?[0-9]?|strL)\\s+)?([^=\\s]+)\\s*((==)|(=))",captures:{"1":{name:"keyword.functions.data.stata"},"3":{name:"support.type.stata"},"5":{patterns:[{include:"#reserved-names"},{include:"#macro-local"}]},"7":{name:"invalid.illegal.name.stata"},"8":{name:"keyword.operator.assignment.stata"}}},{match:"\\b(set ty(pe|p)?)\\s+((byte|int|long|float|double|str[1-9]?[0-9]?[0-9]?[0-9]?|strL)?\\s+)\\b",captures:{"1":{name:"keyword.functions.data.stata"},"3":{name:"support.type.stata"}}},{match:"\\b(la(bel|be|b)?)\\s+(var(iable|iabl|iab|ia|i)?)\\s+([\\w&&[^0-9]]\\w{0,31})\\s+(`\")(.+)(\"')",captures:{"1":{name:"keyword.functions.data.stata"},"3":{name:"keyword.functions.data.stata"},"6":{name:"punctuation.definition.string.begin.stata"},"7":{patterns:[{include:"#string-compound"},{include:"#macro-local-escaped"},{include:"#macro-global-escaped"},{include:"#macro-local"},{include:"#macro-global"},{match:"[^`\\$]{81,}",name:"invalid.illegal.name.stata"},{match:".",name:"string.quoted.double.compound.stata"}]},"8":{name:"punctuation.definition.string.begin.stata"}}},{match:"\\b(la(bel|be|b)?)\\s+(var(iable|iabl|iab|ia|i)?)\\s+([\\w&&[^0-9]]\\w{0,31})\\s+(\")(.+)(\")",captures:{"1":{name:"keyword.functions.data.stata"},"3":{name:"keyword.functions.data.stata"},"6":{name:"punctuation.definition.string.begin.stata"},"7":{patterns:[{include:"#macro-local-escaped"},{include:"#macro-global-escaped"},{include:"#macro-local"},{include:"#macro-global"},{match:"[^`\\$]{81,}",name:"invalid.illegal.name.stata"},{match:".",name:"string.quoted.double.stata"}]},"8":{name:"punctuation.definition.string.begin.stata"}}},{match:"\\b(la(bel|be|b)?)\\s+(da(ta|t)?|var(iable|iabl|iab|ia|i)?|de(f|fi|fin|fine)?|val(ues|ue|u)?|di(r)?|l(ist|is|i)?|copy|drop|save|lang(uage|uag|ua|u)?)\\b",captures:{"1":{name:"keyword.functions.data.stata"},"3":{name:"keyword.functions.data.stata"}}},{begin:"\\b(drop|keep)\\b(?!\\s+(if|in)\\b)",beginCaptures:{"1":{name:"keyword.functions.data.stata"}},end:"\\n",patterns:[{match:"\\b(if|in)\\b",name:"invalid.illegal.name.stata"},{include:"#comments"},{include:"#macro-local"},{include:"#macro-global"},{include:"#operators"}]},{match:"\\b(drop|keep)\\s+(if|in)\\b",captures:{"1":{name:"keyword.functions.data.stata"},"2":{name:"keyword.functions.data.stata"}}},{begin:"^\\s*mata:?\\s*$",comment:"won't match single-line Mata statements",end:"^\\s*end\\s*$\\n?",name:"meta.embedded.block.mata",patterns:[{match:"(?<![^$\\s])(version|pragma|if|else|for|while|do|break|continue|goto|return)(?=\\s)",name:"keyword.control.mata"},{captures:{"1":{name:"storage.type.eltype.mata"},"4":{name:"storage.type.orgtype.mata"}},match:"\\b(transmorphic|string|numeric|real|complex|(pointer(\\([^)]+\\))?))\\s+(matrix|vector|rowvector|colvector|scalar)\\b",name:"storage.type.mata"},{comment:"need to end with whitespace character here or last group doesn't match",match:"\\b(transmorphic|string|numeric|real|complex|(pointer(\\([^)]+\\))?))\\s",name:"storage.type.eltype.mata"},{match:"\\b(matrix|vector|rowvector|colvector|scalar)\\b",name:"storage.type.orgtype.mata"},{match:"\\!|\\+\\+|\\-\\-|\\&|\\'|\\?|\\\\|\\:\\:|\\,|\\.\\.|\\||\\=|\\=\\=|\\>\\=|\\<\\=|\\<|\\>|\\!\\=|\\#|\\+|\\-|\\*|\\^|\\/",name:"keyword.operator.mata"},{include:"$self"}]},{begin:"\\b(odbc)\\b",beginCaptures:{"0":{name:"keyword.control.flow.stata"}},end:"\\n",patterns:[{begin:"///",end:"\\n",name:"comment.block.stata"},{begin:"(exec?)(\\(\")",beginCaptures:{"1":{name:"support.function.builtin.stata"},"2":{name:"punctuation.definition.parameters.begin.stata"}},end:"\"\\)",endCaptures:{"0":{name:"punctuation.definition.parameters.end.stata"}},patterns:[{include:"source.sql"}]},{include:"$self"}]},{include:"#commands-other"}],repository:{functions:{patterns:[{begin:"\\b((abbrev|abs|acos|acosh|asin|asinh|atan|atan2|atanh|autocode|betaden|binomial|binomialp|binomialtail|binormalbofd|byteorder|c|cauchy|cauchyden|cauchytail|Cdhms|ceil|char|chi2|chi2den|chi2tail|Chms|cholesky|chop|clip|clock|Clock|cloglog|Cmdyhms|cofC|Cofc|cofd|Cofd|coleqnumb|collatorlocale|collatorversion|colnfreeparms|colnumb|colsof|comb|cond|corr|cos|cosh|daily|date|day|det|dgammapda|dgammapdada|dgammapdadx|dgammapdx|dgammapdxdx|dhms|diag|diag0cnt|digamma|dofb|dofc|dofC|dofh|dofm|dofq|dofw|dofy|dow|doy|dunnettprob|e|el|epsdouble|epsfloat|exp|exponential|exponentialden|exponentialtail|F|Fden|fileexists|fileread|filereaderror|filewrite|float|floor|fmtwidth|Ftail|gammaden|gammap|gammaptail|get|hadamard|halfyear|halfyearly|hh|hhC|hms|hofd|hours|hypergeometric|hypergeometricp|I|ibeta|ibetatail|igaussian|igaussianden|igaussiantail|indexnot|inlist|inrange|int|inv|invbinomial|invbinomialtail|invcauchy|invcauchytail|invchi2|invchi2tail|invcloglog|invdunnettprob|invexponential|invexponentialtail|invF|invFtail|invgammap|invgammaptail|invibeta|invibetatail|invigaussian|invigaussiantail|invlaplace|invlaplacetail|invlogistic|invlogistictail|invlogit|invnbinomial|invnbinomialtail|invnchi2|invnchi2tail|invnF|invnFtail|invnibeta|invnormal|invnt|invnttail|invpoisson|invpoissontail|invsym|invt|invttail|invtukeyprob|invweibull|invweibullph|invweibullphtail|invweibulltail|irecode|issymmetric|itrim|J|laplace|laplaceden|laplacetail|length|ln|lncauchyden|lnfactorial|lngamma|lnigammaden|lnigaussianden|lniwishartden|lnlaplaceden|lnmvnormalden|lnnormal|lnnormalden|lnwishartden|log|log10|logistic|logisticden|logistictail|logit|lower|ltrim|matmissing|matrix|matuniform|max|maxbyte|maxdouble|maxfloat|maxint|maxlong|mdy|mdyhms|mi|min|minbyte|mindouble|minfloat|minint|minlong|minutes|missing|mm|mmC|mod|mofd|month|monthly|mreldif|msofhours|msofminutes|msofseconds|nbetaden|nbinomial|nbinomialp|nbinomialtail|nchi2|nchi2den|nchi2tail|nF|nFden|nFtail|nibeta|normal|normalden|npnchi2|npnF|npnt|nt|ntden|nttail|nullmat|plural|poisson|poissonp|poissontail|proper|qofd|quarter|quarterly|r|rbeta|rbinomial|rcauchy|rchi2|real|recode|regexs|reldif|replay|return|reverse|rexponential|rgamma|rhypergeometric|rigaussian|rlaplace|rlogistic|rnbinomial|rnormal|round|roweqnumb|rownfreeparms|rownumb|rowsof|rpoisson|rt|rtrim|runiform|runiformint|rweibull|rweibullph|s|scalar|seconds|sign|sin|sinh|smallestdouble|soundex|sqrt|ss|ssC|string|stritrim|strlen|strlower|strltrim|strmatch|strofreal|strpos|strproper|strreverse|strrpos|strrtrim|strtoname|strtrim|strupper|subinstr|subinword|substr|sum|sweep|t|tan|tanh|tc|tC|td|tden|th|tin|tm|tobytes|tq|trace|trigamma|trim|trunc|ttail|tukeyprob|tw|twithin|uchar|udstrlen|udsubstr|uisdigit|uisletter|upper|ustrcompare|ustrcompareex|ustrfix|ustrfrom|ustrinvalidcnt|ustrleft|ustrlen|ustrlower|ustrltrim|ustrnormalize|ustrpos|ustrregexs|ustrreverse|ustrright|ustrrpos|ustrrtrim|ustrsortkey|ustrsortkeyex|ustrtitle|ustrto|ustrtohex|ustrtoname|ustrtrim|ustrunescape|ustrupper|ustrword|ustrwordcount|usubinstr|usubstr|vec|vecdiag|week|weekly|weibull|weibullden|weibullph|weibullphden|weibullphtail|weibulltail|wofd|word|wordbreaklocale|wordcount|year|yearly|yh|ym|yofd|yq|yw)|([\\w&&[^0-9]]\\w{0,31}))(\\()",beginCaptures:{"2":{name:"support.function.builtin.stata"},"3":{name:"support.function.custom.stata"},"4":{name:"punctuation.definition.parameters.begin.stata"}},end:"(\\))",endCaptures:{"1":{name:"punctuation.definition.parameters.end.stata"}},patterns:[{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{begin:"\\(",end:"\\)",beginCaptures:{"0":{name:"keyword.operator.parentheses.stata"}},endCaptures:{"0":{name:"keyword.operator.parentheses.stata"}},patterns:[{include:"#ascii-regex-functions"},{include:"#unicode-regex-functions"},{include:"#functions"},{include:"#subscripts"},{include:"#constants"},{include:"#comments"},{include:"#operators"},{include:"#macro-local"},{include:"#macro-global"},{include:"#string-compound"},{include:"#string-regular"},{include:"#builtin_variables"},{include:"#macro-commands"},{include:"#braces-without-error"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"}]},{include:"#ascii-regex-functions"},{include:"#unicode-regex-functions"},{include:"#functions"},{include:"#subscripts"},{include:"#constants"},{include:"#comments"},{include:"#operators"},{include:"#macro-local"},{include:"#macro-global"},{include:"#string-compound"},{include:"#string-regular"},{include:"#builtin_variables"},{include:"#macro-commands"},{include:"#braces-without-error"}]}]},builtin_types:{patterns:[{match:"\\b(byte|int|long|float|double|str[1-9]?[0-9]?[0-9]?[0-9]?|strL)\\b",name:"support.type.stata"}]},builtin_variables:{patterns:[{match:"\\b(_b|_coef|_cons|_n|_N|_rc|_se)\\b",name:"variable.object.stata"}]},"braces-without-error":{patterns:[{begin:"\\{",beginCaptures:{"0":{name:"keyword.control.block.begin.stata"}},end:"\\}",endCaptures:{"0":{name:"keyword.control.block.end.stata"}}}]},"braces-with-error":{patterns:[{comment:"correct with nothing else on the line but whitespace; before and after; before; after; correct",begin:"(\\{)\\s*([^\\n]*)(?=\\n)",beginCaptures:{"1":{name:"keyword.control.block.begin.stata"},"2":{patterns:[{include:"#comments"},{match:"[^\\n]+",name:"illegal.invalid.name.stata"}]}},end:"^\\s*(\\})\\s*$|^\\s*([^\\*\"\\}]+)\\s+(\\})\\s*([^\\*\"\\}/\\n]+)|^\\s*([^\"\\*\\}]+)\\s+(\\})|\\s*(\\})\\s*([^\"\\*\\}/\\n]+)|(\\})$",endCaptures:{"1":{name:"keyword.control.block.end.stata"},"2":{name:"invalid.illegal.name.stata"},"3":{name:"keyword.control.block.end.stata"},"4":{name:"invalid.illegal.name.stata"},"5":{name:"invalid.illegal.name.stata"},"6":{name:"keyword.control.block.end.stata"},"7":{name:"keyword.control.block.end.stata"},"8":{name:"invalid.illegal.name.stata"},"9":{name:"keyword.control.block.end.stata"}},patterns:[{include:"$self"}]}]},"commands-other":{patterns:[{comment:"Add on commands",match:"\\b(reghdfe|ivreghdfe|ivreg2|outreg|gcollapse|gcontract|gegen|gisid|glevelsof|gquantiles)\\b",name:"keyword.control.flow.stata"},{comment:"Built in commands",match:"\\b(about|ac|acprplot|ado|adopath|adoupdate|alpha|ameans|an|ano|anov|anova|anova_terms|anovadef|aorder|ap|app|appe|appen|append|arch|arch_dr|arch_estat|arch_p|archlm|areg|areg_p|args|arima|arima_dr|arima_estat|arima_p|asmprobit|asmprobit_estat|asmprobit_lf|asmprobit_mfx__dlg|asmprobit_p|avplot|avplots|bcskew0|bgodfrey|binreg|bip0_lf|biplot|bipp_lf|bipr_lf|bipr_p|biprobit|bitest|bitesti|bitowt|blogit|bmemsize|boot|bootsamp|boxco_l|boxco_p|boxcox|boxcox_p|bprobit|br|break|brier|bro|brow|brows|browse|brr|brrstat|bs|bsampl_w|bsample|bsqreg|bstat|bstrap|ca|ca_estat|ca_p|cabiplot|camat|canon|canon_estat|canon_p|caprojection|cat|cc|cchart|cci|cd|censobs_table|centile|cf|char|chdir|checkdlgfiles|checkestimationsample|checkhlpfiles|checksum|chelp|ci|cii|cl|class|classutil|clear|cli|clis|clist|clog|clog_lf|clog_p|clogi|clogi_sw|clogit|clogit_lf|clogit_p|clogitp|clogl_sw|cloglog|clonevar|clslistarray|cluster|cluster_measures|cluster_stop|cluster_tree|cluster_tree_8|clustermat|cmdlog|cnr|cnre|cnreg|cnreg_p|cnreg_sw|cnsreg|codebook|collaps4|collapse|colormult_nb|colormult_nw|compare|compress|conf|confi|confir|confirm|conren|cons|const|constr|constra|constrai|constrain|constraint|contract|copy|copyright|copysource|cor|corc|corr|corr2data|corr_anti|corr_kmo|corr_smc|corre|correl|correla|correlat|correlate|corrgram|cou|coun|count|cprplot|crc|cret|cretu|cretur|creturn|cross|cs|cscript|cscript_log|csi|ct|ct_is|ctset|ctst_st|cttost|cumsp|cumul|cusum|cutil|d|datasig|datasign|datasigna|datasignat|datasignatu|datasignatur|datasignature|datetof|db|dbeta|de|dec|deco|decod|decode|deff|des|desc|descr|descri|describ|describe|dfbeta|dfgls|dfuller|di|di_g|dir|dirstats|dis|discard|disp|disp_res|disp_s|displ|displa|display|do|doe|doed|doedi|doedit|dotplot|dprobit|drawnorm|ds|ds_util|dstdize|duplicates|durbina|dwstat|dydx|ed|edi|edit|eivreg|emdef|en|enc|enco|encod|encode|eq|erase|ereg|ereg_lf|ereg_p|ereg_sw|ereghet|ereghet_glf|ereghet_glf_sh|ereghet_gp|ereghet_ilf|ereghet_ilf_sh|ereghet_ip|eret|eretu|eretur|ereturn|err|erro|error|est|est_cfexist|est_cfname|est_clickable|est_expand|est_hold|est_table|est_unhold|est_unholdok|estat|estat_default|estat_summ|estat_vce_only|esti|estimates|etodow|etof|etomdy|expand|expandcl|fac|fact|facto|factor|factor_estat|factor_p|factor_pca_rotated|factor_rotate|factormat|fcast|fcast_compute|fcast_graph|fdades|fdadesc|fdadescr|fdadescri|fdadescrib|fdadescribe|fdasav|fdasave|fdause|fh_st|file|filefilter|fillin|find_hlp_file|findfile|findit|fit|fl|fli|flis|flist|fpredict|frac_adj|frac_chk|frac_cox|frac_ddp|frac_dis|frac_dv|frac_in|frac_mun|frac_pp|frac_pq|frac_pv|frac_wgt|frac_xo|fracgen|fracplot|fracpoly|fracpred|fron_ex|fron_hn|fron_p|fron_tn|fron_tn2|frontier|ftodate|ftoe|ftomdy|ftowdate|gamhet_glf|gamhet_gp|gamhet_ilf|gamhet_ip|gamma|gamma_d2|gamma_p|gamma_sw|gammahet|gdi_hexagon|gdi_spokes|genrank|genstd|genvmean|gettoken|gladder|glim_l01|glim_l02|glim_l03|glim_l04|glim_l05|glim_l06|glim_l07|glim_l08|glim_l09|glim_l10|glim_l11|glim_l12|glim_lf|glim_mu|glim_nw1|glim_nw2|glim_nw3|glim_p|glim_v1|glim_v2|glim_v3|glim_v4|glim_v5|glim_v6|glim_v7|glm|glm_p|glm_sw|glmpred|glogit|glogit_p|gmeans|gnbre_lf|gnbreg|gnbreg_p|gomp_lf|gompe_sw|gomper_p|gompertz|gompertzhet|gomphet_glf|gomphet_glf_sh|gomphet_gp|gomphet_ilf|gomphet_ilf_sh|gomphet_ip|gphdot|gphpen|gphprint|gprefs|gprobi_p|gprobit|gr|gr7|gr_copy|gr_current|gr_db|gr_describe|gr_dir|gr_draw|gr_draw_replay|gr_drop|gr_edit|gr_editviewopts|gr_example|gr_example2|gr_export|gr_print|gr_qscheme|gr_query|gr_read|gr_rename|gr_replay|gr_save|gr_set|gr_setscheme|gr_table|gr_undo|gr_use|graph|grebar|greigen|grmeanby|gs_fileinfo|gs_filetype|gs_graphinfo|gs_stat|gsort|gwood|h|hareg|hausman|haver|he|heck_d2|heckma_p|heckman|heckp_lf|heckpr_p|heckprob|hel|help|hereg|hetpr_lf|hetpr_p|hetprob|hettest|hexdump|hilite|hist|histogram|hlogit|hlu|hmeans|hotel|hotelling|hprobit|hreg|hsearch|icd9|icd9_ff|icd9p|iis|impute|imtest|inbase|include|inf|infi|infil|infile|infix|inp|inpu|input|ins|insheet|insp|inspe|inspec|inspect|integ|inten|intreg|intreg_p|intrg2_ll|intrg_ll|intrg_ll2|ipolate|iqreg|ir|irf|irf_create|irfm|iri|is_svy|is_svysum|isid|istdize|ivprobit|ivprobit_p|ivreg|ivreg_footnote|ivtob_lf|ivtobit|ivtobit_p|jacknife|jknife|jkstat|joinby|kalarma1|kap|kapmeier|kappa|kapwgt|kdensity|ksm|ksmirnov|ktau|kwallis|labelbook|ladder|levelsof|leverage|lfit|lfit_p|li|lincom|line|linktest|lis|list|lloghet_glf|lloghet_glf_sh|lloghet_gp|lloghet_ilf|lloghet_ilf_sh|lloghet_ip|llogi_sw|llogis_p|llogist|llogistic|llogistichet|lnorm_lf|lnorm_sw|lnorma_p|lnormal|lnormalhet|lnormhet_glf|lnormhet_glf_sh|lnormhet_gp|lnormhet_ilf|lnormhet_ilf_sh|lnormhet_ip|lnskew0|loadingplot|(?<!\\.)log|logi|logis_lf|logistic|logistic_p|logit|logit_estat|logit_p|loglogs|logrank|loneway|lookfor|lookup|lowess|lpredict|lrecomp|lroc|lrtest|ls|lsens|lsens_x|lstat|ltable|ltriang|lv|lvr2plot|m|ma|mac|macr|macro|makecns|man|manova|manovatest|mantel|mark|markin|markout|marksample|mat|mat_capp|mat_order|mat_put_rr|mat_rapp|mata|mata_clear|mata_describe|mata_drop|mata_matdescribe|mata_matsave|mata_matuse|mata_memory|mata_mlib|mata_mosave|mata_rename|mata_which|matalabel|matcproc|matlist|matname|matr|matri|matrix|matrix_input__dlg|matstrik|mcc|mcci|md0_|md1_|md1debug_|md2_|md2debug_|mds|mds_estat|mds_p|mdsconfig|mdslong|mdsmat|mdsshepard|mdytoe|mdytof|me_derd|mean|means|median|memory|memsize|mfp|mfx|mhelp|mhodds|minbound|mixed_ll|mixed_ll_reparm|mkassert|mkdir|mkmat|mkspline|ml|ml_adjs|ml_bhhhs|ml_c_d|ml_check|ml_clear|ml_cnt|ml_debug|ml_defd|ml_e0|ml_e0_bfgs|ml_e0_cycle|ml_e0_dfp|ml_e0i|ml_e1|ml_e1_bfgs|ml_e1_bhhh|ml_e1_cycle|ml_e1_dfp|ml_e2|ml_e2_cycle|ml_ebfg0|ml_ebfr0|ml_ebfr1|ml_ebh0q|ml_ebhh0|ml_ebhr0|ml_ebr0i|ml_ecr0i|ml_edfp0|ml_edfr0|ml_edfr1|ml_edr0i|ml_eds|ml_eer0i|ml_egr0i|ml_elf|ml_elf_bfgs|ml_elf_bhhh|ml_elf_cycle|ml_elf_dfp|ml_elfi|ml_elfs|ml_enr0i|ml_enrr0|ml_erdu0|ml_erdu0_bfgs|ml_erdu0_bhhh|ml_erdu0_bhhhq|ml_erdu0_cycle|ml_erdu0_dfp|ml_erdu0_nrbfgs|ml_exde|ml_footnote|ml_geqnr|ml_grad0|ml_graph|ml_hbhhh|ml_hd0|ml_hold|ml_init|ml_inv|ml_log|ml_max|ml_mlout|ml_mlout_8|ml_model|ml_nb0|ml_opt|ml_p|ml_plot|ml_query|ml_rdgrd|ml_repor|ml_s_e|ml_score|ml_searc|ml_technique|ml_unhold|mleval|mlf_|mlmatbysum|mlmatsum|mlog|mlogi|mlogit|mlogit_footnote|mlogit_p|mlopts|mlsum|mlvecsum|mnl0_|mor|more|mov|move|mprobit|mprobit_lf|mprobit_p|mrdu0_|mrdu1_|mvdecode|mvencode|mvreg|mvreg_estat|nbreg|nbreg_al|nbreg_lf|nbreg_p|nbreg_sw|nestreg|net|newey|newey_p|news|nl|nlcom|nlcom_p|nlexp2|nlexp2a|nlexp3|nlgom3|nlgom4|nlinit|nllog3|nllog4|nlog_rd|nlogit|nlogit_p|nlogitgen|nlogittree|nlpred|nobreak|notes_dlg|nptrend|numlabel|numlist|old_ver|olo|olog|ologi|ologi_sw|ologit|ologit_p|ologitp|on|one|onew|onewa|oneway|op_colnm|op_comp|op_diff|op_inv|op_str|opr|opro|oprob|oprob_sw|oprobi|oprobi_p|oprobit|oprobitp|opts_exclusive|order|orthog|orthpoly|ou|out|outf|outfi|outfil|outfile|outs|outsh|outshe|outshee|outsheet|ovtest|pac|palette|parse_dissim|pause|pca|pca_display|pca_estat|pca_p|pca_rotate|pcamat|pchart|pchi|pcorr|pctile|pentium|pergram|personal|peto_st|pkcollapse|pkcross|pkequiv|pkexamine|pkshape|pksumm|plugin|pnorm|poisgof|poiss_lf|poiss_sw|poisso_p|poisson|poisson_estat|post|postclose|postfile|postutil|pperron|prais|prais_e|prais_e2|prais_p|predict|predictnl|preserve|print|prob|probi|probit|probit_estat|probit_p|proc_time|procoverlay|procrustes|procrustes_estat|procrustes_p|profiler|prop|proportion|prtest|prtesti|pwcorr|pwd|qs|qby|qbys|qchi|qladder|qnorm|qqplot|qreg|qreg_c|qreg_p|qreg_sw|qu|quadchk|quantile|que|quer|query|range|ranksum|ratio|rchart|rcof|recast|recode|reg|reg3|reg3_p|regdw|regr|regre|regre_p2|regres|regres_p|regress|regress_estat|regriv_p|remap|ren|rena|renam|rename|renpfix|repeat|reshape|restore|ret|retu|retur|return|rmdir|robvar|roccomp|rocf_lf|rocfit|rocgold|rocplot|roctab|rologit|rologit_p|rot|rota|rotat|rotate|rotatemat|rreg|rreg_p|ru|run|runtest|rvfplot|rvpplot|safesum|sample|sampsi|savedresults|sc|scatter|scm_mine|sco|scob_lf|scob_p|scobi_sw|scobit|scor|score|scoreplot|scoreplot_help|scree|screeplot|screeplot_help|sdtest|sdtesti|se|search|separate|seperate|serrbar|serset|set|set_defaults|sfrancia|sh|she|shel|shell|shewhart|signestimationsample|signrank|signtest|simul|sktest|sleep|slogit|slogit_d2|slogit_p|smooth|snapspan|so|sor|sort|spearman|spikeplot|spikeplt|spline_x|split|sqreg|sqreg_p|sret|sretu|sretur|sreturn|ssc|st|st_ct|st_hc|st_hcd|st_hcd_sh|st_is|st_issys|st_note|st_promo|st_set|st_show|st_smpl|st_subid|stack|stbase|stci|stcox|stcox_estat|stcox_fr|stcox_fr_ll|stcox_p|stcox_sw|stcoxkm|stcstat|stcurv|stcurve|stdes|stem|stepwise|stfill|stgen|stir|stjoin|stmc|stmh|stphplot|stphtest|stptime|strate|streg|streg_sw|streset|sts|stset|stsplit|stsum|sttocc|sttoct|stvary|su|suest|sum|summ|summa|summar|summari|summariz|summarize|sunflower|sureg|survcurv|survsum|svar|svar_p|svmat|svy_disp|svy_dreg|svy_est|svy_est_7|svy_estat|svy_get|svy_gnbreg_p|svy_head|svy_header|svy_heckman_p|svy_heckprob_p|svy_intreg_p|svy_ivreg_p|svy_logistic_p|svy_logit_p|svy_mlogit_p|svy_nbreg_p|svy_ologit_p|svy_oprobit_p|svy_poisson_p|svy_probit_p|svy_regress_p|svy_sub|svy_sub_7|svy_x|svy_x_7|svy_x_p|svydes|svygen|svygnbreg|svyheckman|svyheckprob|svyintreg|svyintrg|svyivreg|svylc|svylog_p|svylogit|svymarkout|svymean|svymlog|svymlogit|svynbreg|svyolog|svyologit|svyoprob|svyoprobit|svyopts|svypois|svypoisson|svyprobit|svyprobt|svyprop|svyratio|svyreg|svyreg_p|svyregress|svyset|svytab|svytest|svytotal|sw|swilk|symmetry|symmi|symplot|sysdescribe|sysdir|sysuse|szroeter|ta|tab|tab1|tab2|tab_or|tabd|tabdi|tabdis|tabdisp|tabi|table|tabodds|tabstat|tabu|tabul|tabula|tabulat|tabulate|te|tes|test|testnl|testparm|teststd|tetrachoric|time_it|timer|tis|tob|tobi|tobit|tobit_p|tobit_sw|token|tokeni|tokeniz|tokenize|total|translate|translator|transmap|treat_ll|treatr_p|treatreg|trim|trnb_cons|trnb_mean|trpoiss_d2|trunc_ll|truncr_p|truncreg|tsappend|tset|tsfill|tsline|tsline_ex|tsreport|tsrevar|tsrline|tsset|tssmooth|tsunab|ttest|ttesti|tut_chk|tut_wait|tutorial|tw|tware_st|two|twoway|twoway__fpfit_serset|twoway__function_gen|twoway__histogram_gen|twoway__ipoint_serset|twoway__ipoints_serset|twoway__kdensity_gen|twoway__lfit_serset|twoway__normgen_gen|twoway__pci_serset|twoway__qfit_serset|twoway__scatteri_serset|twoway__sunflower_gen|twoway_ksm_serset|ty|typ|type|typeof|unab|unabbrev|unabcmd|update|uselabel|var|var_mkcompanion|var_p|varbasic|varfcast|vargranger|varirf|varirf_add|varirf_cgraph|varirf_create|varirf_ctable|varirf_describe|varirf_dir|varirf_drop|varirf_erase|varirf_graph|varirf_ograph|varirf_rename|varirf_set|varirf_table|varlmar|varnorm|varsoc|varstable|varstable_w|varstable_w2|varwle|vec|vec_fevd|vec_mkphi|vec_p|vec_p_w|vecirf_create|veclmar|veclmar_w|vecnorm|vecnorm_w|vecrank|vecstable|verinst|vers|versi|versio|version|view|viewsource|vif|vwls|wdatetof|webdescribe|webseek|webuse|wh|whelp|whi|which|wilc_st|wilcoxon|win|wind|windo|window|winexec|wntestb|wntestq|xchart|xcorr|xi|xmlsav|xmlsave|xmluse|xpose|xsh|xshe|xshel|xshell|xt_iis|xt_tis|xtab_p|xtabond|xtbin_p|xtclog|xtcloglog|xtcloglog_d2|xtcloglog_pa_p|xtcloglog_re_p|xtcnt_p|xtcorr|xtdata|xtdes|xtfront_p|xtfrontier|xtgee|xtgee_elink|xtgee_estat|xtgee_makeivar|xtgee_p|xtgee_plink|xtgls|xtgls_p|xthaus|xthausman|xtht_p|xthtaylor|xtile|xtint_p|xtintreg|xtintreg_d2|xtintreg_p|xtivreg|xtline|xtline_ex|xtlogit|xtlogit_d2|xtlogit_fe_p|xtlogit_pa_p|xtlogit_re_p|xtmixed|xtmixed_estat|xtmixed_p|xtnb_fe|xtnb_lf|xtnbreg|xtnbreg_pa_p|xtnbreg_refe_p|xtpcse|xtpcse_p|xtpois|xtpoisson|xtpoisson_d2|xtpoisson_pa_p|xtpoisson_refe_p|xtpred|xtprobit|xtprobit_d2|xtprobit_re_p|xtps_fe|xtps_lf|xtps_ren|xtps_ren_8|xtrar_p|xtrc|xtrc_p|xtrchh|xtrefe_p|yx|yxview__barlike_draw|yxview_area_draw|yxview_bar_draw|yxview_dot_draw|yxview_dropline_draw|yxview_function_draw|yxview_iarrow_draw|yxview_ilabels_draw|yxview_normal_draw|yxview_pcarrow_draw|yxview_pcbarrow_draw|yxview_pccapsym_draw|yxview_pcscatter_draw|yxview_pcspike_draw|yxview_rarea_draw|yxview_rbar_draw|yxview_rbarm_draw|yxview_rcap_draw|yxview_rcapsym_draw|yxview_rconnected_draw|yxview_rline_draw|yxview_rscatter_draw|yxview_rspike_draw|yxview_spike_draw|yxview_sunflower_draw|zap_s|zinb|zinb_llf|zinb_plf|zip|zip_llf|zip_p|zip_plf|zt_ct_5|zt_hc_5|zt_hcd_5|zt_is_5|zt_iss_5|zt_sho_5|zt_smp_5|ztnb|ztnb_p|ztp|ztp_p|prtab|prchange|eststo|estout|esttab|estadd|estpost|ivregress|xtreg|xtreg_be|xtreg_fe|xtreg_ml|xtreg_pa_p|xtreg_re|xtregar|xtrere_p|xtset|xtsf_ll|xtsf_llti|xtsum|xttab|xttest0|xttobit|xttobit_p|xttrans)\\b",name:"keyword.control.flow.stata"}]},comments:{patterns:[{include:"#comments-double-slash"},{include:"#comments-star"},{include:"#comments-block"},{include:"#comments-triple-slash"}]},"comments-block":{patterns:[{begin:"/\\*",beginCaptures:{"0":{name:"punctuation.definition.comment.begin.stata"}},end:"(\\*/\\s+\\*[^\\n]*)|(\\*/(?!\\*))",endCaptures:{"0":{name:"punctuation.definition.comment.end.stata"}},name:"comment.block.stata",patterns:[{match:"\\*/\\*",comment:"this ends and restarts a comment block. but need to catch this so that it doesn't start _another_ level of comment blocks"},{include:"#docblockr-comment"},{include:"#comments-block"},{include:"#docstring"}]}]},"comments-star":{patterns:[{captures:{"0":{name:"punctuation.definition.comment.stata"}},begin:"^\\s*(\\*)",name:"comment.line.star.stata",end:"(?=\\n)",comment:"TODO! need to except out the occasion that a * comes after a /// on the previous line. May be easiest to join with the comment.line.triple-slash.stata below",patterns:[{include:"#docblockr-comment"},{begin:"///",end:"\\n",name:"comment.line-continuation.stata"},{include:"#comments"}]}]},"comments-triple-slash":{patterns:[{captures:{"0":{name:"punctuation.definition.comment.stata"}},begin:"(^///|(?<=\\s)///)",end:"(?=\\n)",name:"comment.line.triple-slash.stata",patterns:[{include:"#docblockr-comment"}]}]},"comments-double-slash":{patterns:[{captures:{"0":{name:"punctuation.definition.comment.stata"}},begin:"(^//|(?<=\\s)//)(?!/)",end:"(?=\\n)",name:"comment.line.double-slash.stata",patterns:[{include:"#docblockr-comment"}]}]},"docblockr-comment":{patterns:[{match:"(?<!\\w)(@(error|ERROR|Error))\\b",captures:{"1":{name:"invalid.illegal.name.stata"}}},{match:"(?<!\\w)(@\\w+)\\b",captures:{"1":{name:"keyword.docblockr.stata"}}}]},docstring:{patterns:[{begin:"'''",beginCaptures:{"0":{name:"punctuation.definition.string.begin.stata"}},end:"'''",endCaptures:{"0":{name:"punctuation.definition.string.begin.stata"}},name:"string.quoted.docstring.stata"},{begin:"\"\"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.stata"}},end:"\"\"\"",endCaptures:{"0":{name:"punctuation.definition.string.begin.stata"}},name:"string.quoted.docstring.stata"}]},"macro-commands":{patterns:[{begin:"\\b(loc(al|a)?)\\s+([\\w'`\\$\\(\\)\\{\\}]+)\\s*(?=:|=)",beginCaptures:{"1":{name:"keyword.macro.stata"},"3":{patterns:[{include:"#macro-local-identifiers"},{include:"#macro-local"},{include:"#macro-global"}]}},end:"\\n",patterns:[{begin:"=",beginCaptures:{"0":{name:"keyword.operator.arithmetic.stata"}},end:"(?=\\n)",patterns:[{include:"$self"}]},{begin:":",beginCaptures:{"0":{name:"keyword.operator.arithmetic.stata"}},end:"(?=\\n)",patterns:[{include:"#macro-extended-functions"}]}]},{begin:"\\b(gl(obal|oba|ob|o)?)\\s+(?=[\\w`\\$])",beginCaptures:{"1":{name:"keyword.macro.stata"}},end:"(\\})|(?=\\\"|\\s|\\n|/|,|=)",patterns:[{include:"#reserved-names"},{match:"[\\w&&[^0-9_]]\\w{0,31}",name:"entity.name.type.class.stata"},{include:"#macro-local"},{include:"#macro-global"}]},{begin:"\\b(loc(al|a)?)\\s+(\\+\\+|\\-\\-)?(?=[\\w`\\$])",beginCaptures:{"1":{name:"keyword.macro.stata"},"3":{name:"keyword.operator.arithmetic.stata"}},end:"(?=\\\"|\\s|\\n|/|,|=)",patterns:[{include:"#macro-local-identifiers"},{include:"#macro-local"},{include:"#macro-global"}]},{begin:"\\b(tempvar|tempname|tempfile)\\s*(?=\\s)",beginCaptures:{"1":{name:"keyword.macro.stata"}},end:"\\n",patterns:[{begin:"///",end:"\\n",name:"comment.block.stata"},{include:"#macro-local-identifiers"},{include:"#macro-local"},{include:"#macro-global"}]},{begin:"\\b(ma(cro|cr|c)?)\\s+(drop|l(ist|is|i)?)\\s*(?=\\s)",beginCaptures:{"0":{name:"keyword.macro.stata"}},end:"\\n",patterns:[{begin:"///",end:"\\n",name:"comment.block.stata"},{match:"\\*",name:"keyword.operator.arithmetic.stata"},{include:"#constants"},{include:"#macro-global"},{include:"#macro-local"},{include:"#comments"},{match:"\\w{1,31}",name:"entity.name.type.class.stata"}]}]},"macro-extended-functions":{patterns:[{match:"\\b(properties)\\b",name:"keyword.macro.extendedfcn.stata"},{match:"\\b(t(ype|yp|y)?|f(ormat|orma|orm|or|o)?|val(ue|u)?\\s+l(able|abl|ab|a)?|var(iable|iabl|iab|ia|i)?\\s+l(abel|abe|ab|a)?|data\\s+l(able|abl|ab|a)?|sort(edby|edb|ed|e)?|lab(el|e)?|maxlength|constraint|char)\\b",name:"keyword.macro.extendedfcn.stata"},{match:"\\b(permname)\\b",name:"keyword.macro.extendedfcn.stata"},{match:"\\b(adosubdir|dir|files?|dirs?|other|sysdir)\\b",name:"keyword.macro.extendedfcn.stata"},{match:"\\b(env(ironment|ironmen|ironme|ironm|iron|iro|ir|i)?)\\b",name:"keyword.macro.extendedfcn.stata"},{match:"\\b(all\\s+(globals|scalars|matrices)|((numeric|string)\\s+scalars))\\b",name:"keyword.macro.extendedfcn.stata"},{match:"\\b(list)\\s+(uniq|dups|sort|clean|retok(enize|eniz|eni|en|e)?|sizeof)\\s+(\\w{1,32})",captures:{"1":{name:"keyword.macro.extendedfcn.stata"},"2":{name:"keyword.macro.extendedfcn.stata"},"3":{name:"entity.name.type.class.stata"}}},{match:"\\b(list)\\s+(\\w{1,32})\\s+(\\||&|\\-|===|==|in)\\s+(\\w{1,32})",captures:{"1":{name:"keyword.macro.extendedfcn.stata"},"2":{name:"entity.name.type.class.stata"},"3":{name:"keyword.operator.list.stata"},"4":{name:"entity.name.type.class.stata"}}},{match:"\\b(list\\s+posof)\\s+(\")(\\w+)(\")\\s+(in)\\s+(\\w{1,32})",captures:{"1":{name:"keyword.macro.extendedfcn.stata"},"2":{name:"punctuation.definition.string.begin.stata"},"3":{name:"string.quoted.double.stata"},"4":{name:"punctuation.definition.string.end.stata"},"5":{name:"keyword.macro.extendedfcn.stata"},"6":{name:"entity.name.type.class.stata"}}},{match:"\\b(rown(ames|ame|am|a)?|coln(ames|ame|am|a)?|rowf(ullnames|ullname|ullnam|ullna|ulln|ull|ul|u)?|colf(ullnames|ullname|ullnam|ullna|ulln|ull|ul|u)?|roweq?|coleq?|rownumb|colnumb|roweqnumb|coleqnumb|rownfreeparms|colnfreeparms|rownlfs|colnlfs|rowsof|colsof|rowvarlist|colvarlist|rowlfnames|collfnames)\\b",name:"keyword.macro.extendedfcn.stata"},{match:"\\b(tsnorm)\\b",name:"keyword.macro.extendedfcn.stata"},{match:"\\b((copy|(ud|u)?strlen)\\s+(loc(al|a)?|gl(obal|oba|ob|o)?))\\s+([^']+)",captures:{"1":{name:"keyword.macro.extendedfcn.stata"},"7":{patterns:[{include:"#macro-local"},{include:"#macro-global"}]}}},{match:"\\b(word\\s+count)",captures:{"1":{name:"keyword.macro.extendedfcn.stata"}}},{match:"(word|piece)\\s+([\\s`'\\w]+)\\s+(of)",captures:{"1":{name:"keyword.macro.extendedfcn.stata"},"2":{patterns:[{include:"#macro-local"},{include:"#constants"}]},"3":{name:"keyword.macro.extendedfcn.stata"}}},{begin:"\\b(subinstr\\s+(loc(al|a)?|gl(obal|oba|ob|o)?))\\s+(\\w{1,32})",end:"(?=//|\\n)",beginCaptures:{"1":{name:"keyword.macro.extendedfcn.stata"},"5":{name:"entity.name.type.class.stata"}},patterns:[{include:"#macro-local"},{include:"#macro-global"},{include:"#string-compound"},{include:"#string-regular"},{match:"(count|coun|cou|co|c)(\\()(local|loca|loc|global|globa|glob|glo|gl)\\s+(\\w{1,32})(\\))",captures:{"1":{name:"support.function.builtin.stata"},"2":{name:"punctuation.definition.parameters.begin.stata"},"3":{name:"keyword.macro.extendedfcn.stata"},"4":{name:"entity.name.type.class.stata"},"5":{name:"punctuation.definition.parameters.end.stata"}}}]},{include:"#comments"},{include:"#macro-local"},{include:"#macro-global"},{include:"$self"}]},"macro-local-escaped":{patterns:[{comment:"appropriately color macros that have embedded escaped `,', and $ characters for lazy evaluation",begin:"\\\\`(?!\")",beginCaptures:{"0":{name:"punctuation.definition.string.begin.stata"}},end:"\\\\'|'",endCaptures:{"0":{name:"punctuation.definition.string.end.stata"}},patterns:[{include:"#macro-local"},{include:"#macro-global"},{match:"\\w{1,31}",name:"entity.name.type.class.stata"}]}]},"macro-local":{patterns:[{begin:"(`)(=)",beginCaptures:{"1":{name:"punctuation.definition.string.begin.stata"},"2":{name:"keyword.operator.comparison.stata"}},end:"'",endCaptures:{"0":{name:"punctuation.definition.string.end.stata"}},patterns:[{include:"$self"}]},{begin:"(`)(:)",beginCaptures:{"1":{name:"punctuation.definition.string.begin.stata"},"2":{name:"keyword.operator.comparison.stata"}},end:"'",endCaptures:{"0":{name:"punctuation.definition.string.end.stata"}},contentName:"meta.macro-extended-function.stata",patterns:[{include:"#macro-local"},{include:"#macro-extended-functions"},{include:"#constants"},{include:"#string-compound"},{include:"#string-regular"}]},{begin:"(`)(macval)(\\()",beginCaptures:{"1":{name:"punctuation.definition.string.begin.stata"},"2":{name:"support.function.builtin.stata"},"3":{name:"punctuation.definition.parameters.begin.stata"}},end:"(\\))(')",endCaptures:{"1":{name:"punctuation.definition.parameters.begin.stata"},"2":{name:"punctuation.definition.string.end.stata"}},contentName:"meta.macro-extended-function.stata",patterns:[{include:"#macro-local"},{include:"#macro-global"},{match:"\\w{1,31}",name:"entity.name.type.class.stata"}]},{begin:"`(?!\")",beginCaptures:{"0":{name:"punctuation.definition.string.begin.stata"}},end:"'",endCaptures:{"0":{name:"punctuation.definition.string.end.stata"}},patterns:[{match:"\\+\\+|\\-\\-",name:"keyword.operator.arithmetic.stata"},{include:"#macro-local"},{include:"#macro-global"},{include:"#comments-block"},{begin:"[^\\w]",end:"\\n|(?=')",name:"comment.line.stata"},{match:"\\w{1,31}",name:"entity.name.type.class.stata"}]}]},"macro-global-escaped":{patterns:[{begin:"(\\\\\\$)(\\\\\\{)?",beginCaptures:{"0":{name:"punctuation.definition.string.begin.stata"}},end:"(\\\\\\})|(?=\\\"|\\s|\\n|/|,)",endCaptures:{"1":{name:"punctuation.definition.string.end.stata"}},patterns:[{include:"#macro-local"},{include:"#macro-global"},{match:"[\\w&&[^0-9_]]\\w{0,31}|_\\w{1,31}",name:"entity.name.type.class.stata"}]}]},"macro-global":{patterns:[{begin:"(\\$)(\\{)",beginCaptures:{"0":{name:"punctuation.definition.string.begin.stata"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.string.end.stata"}},patterns:[{include:"#macro-local"},{include:"#macro-global"},{include:"#comments-block"},{begin:"[^\\w]",end:"\\n|(?=})",name:"comment.line.stata"},{match:"\\w{1,32}",name:"entity.name.type.class.stata"}]},{begin:"\\$",beginCaptures:{"0":{name:"punctuation.definition.string.begin.stata"}},end:"(?!\\w)",endCaptures:{"1":{name:"punctuation.definition.string.end.stata"}},patterns:[{include:"#macro-local"},{include:"#macro-global"},{match:"[\\w&&[^0-9_]]\\w{0,31}|_\\w{1,31}",name:"entity.name.type.class.stata"}]}]},constants:{patterns:[{include:"#factorvariables"},{match:"\\b(?i:(\\d+\\.\\d*(e[\\-\\+]?\\d+)?))(?=[^a-zA-Z_])",name:"constant.numeric.float.stata"},{match:"(?<=[^0-9a-zA-Z_])(?i:(\\.\\d+(e[\\-\\+]?\\d+)?))",name:"constant.numeric.float.stata"},{match:"\\b(?i:(\\d+e[\\-\\+]?\\d+))",name:"constant.numeric.float.stata"},{match:"\\b(\\d+)\\b",name:"constant.numeric.integer.decimal.stata"},{match:"(?<![\\w])(\\.(?![\\./]))(?![\\w])",name:"constant.language.missing.stata"},{match:"\\b_all\\b",name:"constant.language.allvars.stata"}]},factorvariables:{patterns:[{match:"\\b(i|c|o)\\.(?=[\\w&&[^0-9]]|\\([\\w&&[^0-9]])",name:"constant.language.factorvars.stata"},{match:"\\b(i?b)((\\d+)|n)\\.(?=[\\w&&[^0-9]]|\\([\\w&&[^0-9]])",captures:{"0":{name:"constant.language.factorvars.stata"},"3":{patterns:[{include:"#constants"}]}}},{match:"\\b(i?b)(\\()(#\\d+|first|last|freq)(\\))\\.(?=[\\w&&[^0-9]]|\\([\\w&&[^0-9]])",captures:{"0":{name:"constant.language.factorvars.stata"},"2":{name:"keyword.operator.parentheses.stata"},"3":{patterns:[{include:"#constants"},{include:"#operators"}]},"4":{name:"keyword.operator.parentheses.stata"}}},{match:"\\b(i?o?)(\\d+)\\.(?=[\\w&&[^0-9]]|\\([\\w&&[^0-9]])",captures:{"0":{name:"constant.language.factorvars.stata"},"2":{patterns:[{include:"#constants"}]}}},{match:"\\b(i?o?)(\\()(.*?)(\\))(\\.)(?=[\\w&&[^0-9]]|\\([\\w&&[^0-9]])",captures:{"1":{name:"constant.language.factorvars.stata"},"2":{name:"keyword.operator.parentheses.stata"},"3":{patterns:[{include:"$self"}]},"4":{name:"keyword.operator.parentheses.stata"},"5":{name:"constant.language.factorvars.stata"}}}]},operators:{patterns:[{match:"\\+\\+|\\-\\-|\\+|\\-|\\*|\\^",name:"keyword.operator.arithmetic.stata",comment:"++ and -- must come first to support ligatures"},{comment:"match division operator but not path separator",match:"(?<![\\w.&&[^0-9]])/(?![\\w.&&[^0-9]]|$)",name:"keyword.operator.arithmetic.stata"},{comment:"match division operator but not path separator",match:"(?<![\\w.&&[^0-9]])\\\\(?![\\w.&&[^0-9]]|$)",name:"keyword.operator.matrix.addrow.stata"},{match:"\\|\\|",name:"keyword.operator.graphcombine.stata"},{match:"\\&|\\|",name:"keyword.operator.logical.stata"},{match:"(?:<=|>=|:=|==|!=|~=|<|>|=|!!|!)",name:"keyword.operator.comparison.stata"},{match:"\\(|\\)",name:"keyword.operator.parentheses.stata"},{match:"(##|#)",name:"keyword.operator.factor-variables.stata"},{match:"%",name:"keyword.operator.format.stata"},{match:":",name:"punctuation.separator.key-value"},{match:"\\[",name:"punctuation.definition.parameters.begin.stata"},{match:"\\]",name:"punctuation.definition.parameters.end.stata"},{match:",",name:"punctuation.definition.variable.begin.stata"},{match:";",name:"keyword.operator.delimiter.stata"}]},"string-compound":{patterns:[{begin:"`\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.stata"}},end:"\"'|(?=\n)",endCaptures:{"0":{name:"punctuation.definition.string.end.stata"}},name:"string.quoted.double.compound.stata",patterns:[{match:"\"",name:"string.quoted.double.compound.stata",comment:"This must come before #string-regular and #string-compound to accurately color `\"\"\"' in strings"},{match:"```(?=[^']*\")",name:"meta.markdown.code.block.stata",comment:"see https://github.com/kylebarron/language-stata/issues/53"},{include:"#string-regular"},{include:"#string-compound"},{include:"#macro-local-escaped"},{include:"#macro-global-escaped"},{include:"#macro-local"},{include:"#macro-global"}]}]},"string-regular":{patterns:[{begin:"(?<!`)\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.stata"}},end:"(\")(')?|(?=\n)",endCaptures:{"1":{name:"punctuation.definition.string.end.stata"},"2":{name:"invalid.illegal.punctuation.stata"}},name:"string.quoted.double.stata",patterns:[{match:"```(?=[^']*\")",name:"meta.markdown.code.block.stata",comment:"see https://github.com/kylebarron/language-stata/issues/53"},{include:"#macro-local-escaped"},{include:"#macro-global-escaped"},{include:"#macro-local"},{include:"#macro-global"}]}]},subscripts:{patterns:[{comment:"highlight expressions, like [_n], when using subscripts on a variable",begin:"(?<=[\\w'])(\\[)",beginCaptures:{"1":{name:"punctuation.definition.parameters.begin.stata"}},end:"(\\])",endCaptures:{"1":{name:"punctuation.definition.parameters.end.stata"}},name:"meta.subscripts.stata",patterns:[{include:"#macro-local"},{include:"#macro-global"},{include:"#builtin_variables"},{include:"#operators"},{include:"#constants"},{include:"#functions"}]}]},"reserved-names":{patterns:[{match:"\\b(_all|_b|byte|_coef|_cons|double|float|if|in|int|long|_n|_N|_pi|_pred|_rc|_skip|str[0-9]+|strL|using|with)\\b",name:"invalid.illegal.name.stata"},{match:"[^\\w'`\\$\\(\\)\\s]",name:"invalid.illegal.name.stata"},{match:"[0-9][\\w]{31,}",name:"invalid.illegal.name.stata"},{match:"\\w{33,}",name:"invalid.illegal.name.stata"}]},"macro-local-identifiers":{patterns:[{match:"[^\\w'`\\$\\(\\)\\s]",name:"invalid.illegal.name.stata"},{match:"\\w{32,}",name:"invalid.illegal.name.stata"},{match:"\\w{1,31}",name:"entity.name.type.class.stata"}]},"ascii-regex-functions":{patterns:[{comment:"color regexm with regular quotes i.e. \" ",match:"\\b(regexm)(\\()([^,]+)(,)\\s*(\")([^\"]+)(\"(')?)\\s*(\\))",captures:{"1":{name:"support.function.builtin.stata"},"2":{name:"punctuation.definition.parameters.begin.stata"},"3":{patterns:[{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#functions"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{include:"#comments-triple-slash"}]},"4":{name:"punctuation.definition.variable.begin.stata"},"5":{name:"punctuation.definition.string.begin.stata"},"6":{patterns:[{include:"#ascii-regex-internals"}]},"7":{name:"punctuation.definition.string.end.stata"},"8":{name:"invalid.illegal.punctuation.stata"},"9":{name:"punctuation.definition.parameters.end.stata"}}},{comment:"color regexm with compound quotes",match:"\\b(regexm)(\\()([^,]+)(,)\\s*(`\")([^\"]+)(\"')\\s*(\\))",captures:{"1":{name:"support.function.builtin.stata"},"2":{name:"punctuation.definition.parameters.begin.stata"},"3":{patterns:[{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#functions"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{include:"#comments-triple-slash"}]},"4":{name:"punctuation.definition.variable.begin.stata"},"5":{name:"punctuation.definition.string.begin.stata"},"6":{patterns:[{include:"#ascii-regex-internals"}]},"7":{name:"punctuation.definition.string.end.stata"},"8":{name:"punctuation.definition.parameters.end.stata"}}},{comment:"color regexr with regular quotes i.e. \" ",match:"\\b(regexr)(\\()([^,]+)(,)\\s*(\")([^\"]+)(\"(')?)\\s*([^\\)]*)(\\))",captures:{"1":{name:"support.function.builtin.stata"},"2":{name:"punctuation.definition.parameters.begin.stata"},"3":{patterns:[{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#functions"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{include:"#comments"}]},"4":{name:"punctuation.definition.variable.begin.stata"},"5":{name:"punctuation.definition.string.begin.stata"},"6":{patterns:[{include:"#ascii-regex-internals"}]},"7":{name:"punctuation.definition.string.end.stata"},"8":{name:"invalid.illegal.punctuation.stata"},"9":{patterns:[{match:",",name:"punctuation.definition.variable.begin.stata"},{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#functions"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{include:"#comments-triple-slash"}]},"10":{name:"punctuation.definition.parameters.end.stata"}}},{comment:"color regexr with compound quotes i.e. `\"text\"' ",match:"\\b(regexr)(\\()([^,]+)(,)\\s*(`\")([^\"]+)(\"')\\s*([^\\)]*)(\\))",captures:{"1":{name:"support.function.builtin.stata"},"2":{name:"punctuation.definition.parameters.begin.stata"},"3":{patterns:[{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#functions"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{include:"#comments"}]},"4":{name:"punctuation.definition.variable.begin.stata"},"5":{name:"punctuation.definition.string.begin.stata"},"6":{patterns:[{include:"#ascii-regex-internals"}]},"7":{name:"punctuation.definition.string.end.stata"},"8":{patterns:[{match:",",name:"punctuation.definition.variable.begin.stata"},{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#functions"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{include:"#comments-triple-slash"}]},"9":{name:"punctuation.definition.parameters.end.stata"}}}]},"ascii-regex-internals":{patterns:[{match:"\\^",name:"keyword.control.anchor.stata"},{match:"\\$(?![a-zA-Z_\\{])",name:"keyword.control.anchor.stata",comment:"matched when not a global, but must be ascii"},{match:"[\\?\\+\\*]",name:"keyword.control.quantifier.stata"},{match:"\\|",name:"keyword.control.or.stata"},{begin:"(\\()(?=\\?|\\*|\\+)",beginCaptures:{"1":{name:"keyword.operator.group.stata"}},end:"\\)",endCaptures:{"0":{name:"keyword.operator.group.stata"}},contentName:"invalid.illegal.regexm.stata"},{begin:"(\\()",beginCaptures:{"1":{name:"keyword.operator.group.stata"}},end:"(\\))",endCaptures:{"1":{name:"keyword.operator.group.stata"}},patterns:[{include:"#ascii-regex-internals"}]},{include:"#ascii-regex-character-class"},{include:"#macro-local"},{include:"#macro-global"},{comment:"NOTE: Error if I have .+ No idea why but it works fine it seems with just .",match:".",name:"string.quoted.stata"}]},"ascii-regex-character-class":{patterns:[{match:"\\\\[\\*\\+\\?\\-\\.\\^\\$\\|\\[\\]\\(\\)\\\\]",name:"constant.character.escape.backslash.stata"},{match:"\\.",name:"constant.character.character-class.stata"},{match:"\\\\.",name:"illegal.invalid.character-class.stata"},{begin:"(\\[)(\\^)?",beginCaptures:{"1":{name:"punctuation.definition.character-class.stata"},"2":{name:"keyword.operator.negation.stata"}},end:"(\\])",endCaptures:{"1":{name:"punctuation.definition.character-class.stata"}},name:"constant.other.character-class.set.stata",patterns:[{include:"#ascii-regex-character-class"},{captures:{"2":{name:"constant.character.escape.backslash.stata"},"4":{name:"constant.character.escape.backslash.stata"}},match:"((\\\\.)|.)\\-((\\\\.)|[^\\]])",name:"constant.other.character-class.range.stata"}]}]},"unicode-regex-functions":{patterns:[{comment:"color regexm with regular quotes i.e. \" ",match:"\\b(ustrregexm)(\\()([^,]+)(,)\\s*(\")([^\"]+)(\"(')?)([,0-9\\s]*)?\\s*(\\))",captures:{"1":{name:"support.function.builtin.stata"},"2":{name:"punctuation.definition.parameters.begin.stata"},"3":{patterns:[{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#functions"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{include:"#comments-triple-slash"}]},"4":{name:"punctuation.definition.variable.begin.stata"},"5":{name:"punctuation.definition.string.begin.stata"},"6":{patterns:[{include:"#unicode-regex-internals"}]},"7":{name:"punctuation.definition.string.end.stata"},"8":{name:"invalid.illegal.punctuation.stata"},"9":{patterns:[{include:"#constants"},{match:",",name:"punctuation.definition.variable.begin.stata"}]},"10":{name:"punctuation.definition.parameters.end.stata"}}},{comment:"color regexm with compound quotes",match:"\\b(ustrregexm)(\\()([^,]+)(,)\\s*(`\")([^\"]+)(\"')([,0-9\\s]*)?\\s*(\\))",captures:{"1":{name:"support.function.builtin.stata"},"2":{name:"punctuation.definition.parameters.begin.stata"},"3":{patterns:[{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#functions"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{include:"#comments-triple-slash"}]},"4":{name:"punctuation.definition.variable.begin.stata"},"5":{name:"punctuation.definition.string.begin.stata"},"6":{patterns:[{include:"#unicode-regex-internals"}]},"7":{name:"punctuation.definition.string.end.stata"},"8":{patterns:[{include:"#constants"},{match:",",name:"punctuation.definition.variable.begin.stata"}]},"9":{name:"punctuation.definition.parameters.end.stata"}}},{comment:"color regexr with regular quotes i.e. \" ",match:"\\b(ustrregexrf|ustrregexra)(\\()([^,]+)(,)\\s*(\")([^\"]+)(\"(')?)\\s*([^\\)]*)(\\))",captures:{"1":{name:"support.function.builtin.stata"},"2":{name:"punctuation.definition.parameters.begin.stata"},"3":{patterns:[{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#functions"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{include:"#comments"}]},"4":{name:"punctuation.definition.variable.begin.stata"},"5":{name:"punctuation.definition.string.begin.stata"},"6":{patterns:[{include:"#unicode-regex-internals"}]},"7":{name:"punctuation.definition.string.end.stata"},"8":{name:"invalid.illegal.punctuation.stata"},"9":{patterns:[{match:",",name:"punctuation.definition.variable.begin.stata"},{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#functions"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{include:"#comments-triple-slash"},{include:"#constants"}]},"10":{name:"punctuation.definition.parameters.end.stata"}}},{comment:"color regexr with compound quotes i.e. `\"text\"' ",match:"\\b(ustrregexrf|ustrregexra)(\\()([^,]+)(,)\\s*(`\")([^\"]+)(\"')\\s*([^\\)]*)(\\))",captures:{"1":{name:"support.function.builtin.stata"},"2":{name:"punctuation.definition.parameters.begin.stata"},"3":{patterns:[{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#functions"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{include:"#comments"}]},"4":{name:"punctuation.definition.variable.begin.stata"},"5":{name:"punctuation.definition.string.begin.stata"},"6":{patterns:[{include:"#unicode-regex-internals"}]},"7":{name:"punctuation.definition.string.end.stata"},"8":{patterns:[{match:",",name:"punctuation.definition.variable.begin.stata"},{include:"#string-compound"},{include:"#string-regular"},{include:"#macro-local"},{include:"#macro-global"},{include:"#functions"},{match:"[\\w&&[^0-9]]\\w{0,31}",name:"variable.parameter.function.stata"},{include:"#comments-triple-slash"},{include:"#constants"}]},"9":{name:"punctuation.definition.parameters.end.stata"}}}]},"unicode-regex-internals":{patterns:[{match:"\\\\[bBAZzG]|\\^",name:"keyword.control.anchor.stata"},{match:"\\$(?![[\\w&&[^0-9_]][\\w]{0,31}|_[\\w]{1,31}\\{])",name:"keyword.control.anchor.stata",comment:"matched when not a global"},{match:"\\\\[1-9][0-9]?",name:"keyword.other.back-reference.stata"},{match:"[?+*][?+]?|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??",name:"keyword.operator.quantifier.stata"},{match:"\\|",name:"keyword.operator.or.stata"},{begin:"\\((?!\\?\\#|\\?=|\\?!|\\?<=|\\?<!)",end:"\\)",name:"keyword.operator.group.stata",patterns:[{include:"#unicode-regex-internals"}]},{begin:"\\(\\?\\#",end:"\\)",name:"comment.block.stata"},{comment:"We are restrictive in what we allow to go after the comment character to avoid false positives, since the availability of comments depend on regexp flags.",match:"(?<=^|\\s)#\\s[[a-zA-Z0-9,. \\t?!-:][^\\x{00}-\\x{7F}]]*$",name:"comment.line.number-sign.stata"},{match:"\\(\\?[iLmsux]+\\)",name:"keyword.other.option-toggle.stata"},{begin:"(\\()((\\?=)|(\\?!)|(\\?<=)|(\\?<!))",beginCaptures:{"1":{name:"keyword.operator.group.stata"},"2":{name:"punctuation.definition.group.assertion.stata"},"3":{name:"keyword.assertion.look-ahead.stata"},"4":{name:"keyword.assertion.negative-look-ahead.stata"},"5":{name:"keyword.assertion.look-behind.stata"},"6":{name:"keyword.assertion.negative-look-behind.stata"}},end:"(\\))",endCaptures:{"1":{name:"keyword.operator.group.stata"}},name:"meta.group.assertion.stata",patterns:[{include:"#unicode-regex-internals"}]},{begin:"(\\()(\\?\\(([1-9][0-9]?|[a-zA-Z_][a-zA-Z_0-9]*)\\))",beginCaptures:{"1":{name:"punctuation.definition.group.stata"},"2":{name:"punctuation.definition.group.assertion.conditional.stata"},"3":{name:"entity.name.section.back-reference.stata"}},comment:"we can make this more sophisticated to match the | character that separates yes-pattern from no-pattern, but it's not really necessary.",end:"(\\))",name:"meta.group.assertion.conditional.stata",patterns:[{include:"#unicode-regex-internals"}]},{include:"#unicode-regex-character-class"},{include:"#macro-local"},{include:"#macro-global"},{comment:"NOTE: Error if I have .+ No idea why but it works fine it seems with just .",match:".",name:"string.quoted.stata"}]},"unicode-regex-character-class":{patterns:[{match:"\\\\[wWsSdD]|\\.",name:"constant.character.character-class.stata"},{match:"\\\\.",name:"constant.character.escape.backslash.stata"},{begin:"(\\[)(\\^)?",beginCaptures:{"1":{name:"punctuation.definition.character-class.stata"},"2":{name:"keyword.operator.negation.stata"}},end:"(\\])",endCaptures:{"1":{name:"punctuation.definition.character-class.stata"}},name:"constant.other.character-class.set.stata",patterns:[{include:"#unicode-regex-character-class"},{captures:{"2":{name:"constant.character.escape.backslash.stata"},"4":{name:"constant.character.escape.backslash.stata"}},match:"((\\\\.)|.)\\-((\\\\.)|[^\\]])",name:"constant.other.character-class.range.stata"}]}]}}}; + +export { stata_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/stylus.tmLanguage-0e5d68da.mjs b/docs/shiki/dist/languages/stylus.tmLanguage-0e5d68da.mjs new file mode 100644 index 00000000..398b4650 --- /dev/null +++ b/docs/shiki/dist/languages/stylus.tmLanguage-0e5d68da.mjs @@ -0,0 +1,3 @@ +var stylus_tmLanguage = {name:"stylus",scopeName:"source.stylus",fileTypes:["styl","stylus","css.styl","css.stylus"],patterns:[{include:"#comment"},{include:"#at_rule"},{include:"#language_keywords"},{include:"#language_constants"},{include:"#variable_declaration"},{include:"#function"},{include:"#selector"},{include:"#declaration"},{captures:{"1":{name:"punctuation.section.property-list.begin.css"},"2":{name:"punctuation.section.property-list.end.css"}},match:"(\\{)(\\})",name:"meta.brace.curly.css"},{match:"\\{|\\}",name:"meta.brace.curly.css"},{include:"#numeric"},{include:"#string"},{include:"#operator"}],repository:{comment:{patterns:[{include:"#comment_block"},{include:"#comment_line"}]},comment_block:{begin:"/\\*",beginCaptures:{"0":{name:"punctuation.definition.comment.begin.css"}},end:"\\*/",endCaptures:{"0":{name:"punctuation.definition.comment.end.css"}},name:"comment.block.css"},comment_line:{begin:"(^[ \\t]+)?(?=//)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.stylus"}},end:"(?!\\G)",patterns:[{begin:"//",beginCaptures:{"0":{name:"punctuation.definition.comment.stylus"}},end:"(?=\\n)",name:"comment.line.double-slash.stylus"}]},selector:{patterns:[{match:"(?:(?=\\w)(?<![\\w-]))(a|abbr|acronym|address|area|article|aside|audio|b|base|bdi|bdo|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|data|datalist|dd|del|details|dfn|dialog|div|dl|dt|em|embed|eventsource|fieldset|figure|figcaption|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|main|map|mark|math|menu|menuitem|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|picture|pre|progress|q|rb|rp|rt|rtc|ruby|s|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|svg|table|tbody|td|template|textarea|tfoot|th|thead|time|title|tr|track|tt|u|ul|var|video|wbr)(?:(?<=\\w)(?![\\w-]))",name:"entity.name.tag.css"},{match:"(?:(?=\\w)(?<![\\w-]))(vkern|view|use|tspan|tref|title|textPath|text|symbol|switch|svg|style|stop|set|script|rect|radialGradient|polyline|polygon|pattern|path|mpath|missing-glyph|metadata|mask|marker|linearGradient|line|image|hkern|glyphRef|glyph|g|foreignObject|font-face-uri|font-face-src|font-face-name|font-face-format|font-face|font|filter|feTurbulence|feTile|feSpotLight|feSpecularLighting|fePointLight|feOffset|feMorphology|feMergeNode|feMerge|feImage|feGaussianBlur|feFuncR|feFuncG|feFuncB|feFuncA|feFlood|feDistantLight|feDisplacementMap|feDiffuseLighting|feConvolveMatrix|feComposite|feComponentTransfer|feColorMatrix|feBlend|ellipse|desc|defs|cursor|color-profile|clipPath|circle|animateTransform|animateMotion|animateColor|animate|altGlyphItem|altGlyphDef|altGlyph|a)(?:(?<=\\w)(?![\\w-]))",name:"entity.name.tag.svg.css"},{match:"\\s*(\\,)\\s*",name:"meta.selector.stylus"},{match:"\\*",name:"meta.selector.stylus"},{match:"\\s*(\\&)([a-zA-Z0-9_-]+)\\s*",captures:{"2":{name:"entity.other.attribute-name.parent-selector-suffix.stylus"}},name:"meta.selector.stylus"},{match:"\\s*(\\&)\\s*",name:"meta.selector.stylus"},{captures:{"1":{name:"punctuation.definition.entity.css"}},match:"(\\.)[a-zA-Z0-9_-]+",name:"entity.other.attribute-name.class.css"},{captures:{"1":{name:"punctuation.definition.entity.css"}},match:"(#)[a-zA-Z][a-zA-Z0-9_-]*",name:"entity.other.attribute-name.id.css"},{captures:{"1":{name:"punctuation.definition.entity.css"}},match:"(:+)(after|before|content|first-letter|first-line|host|(-(moz|webkit|ms)-)?selection)\\b",name:"entity.other.attribute-name.pseudo-element.css"},{captures:{"1":{name:"punctuation.definition.entity.css"}},match:"(:)((first|last)-child|(first|last|only)-of-type|empty|root|target|first|left|right)\\b",name:"entity.other.attribute-name.pseudo-class.css"},{captures:{"1":{name:"punctuation.definition.entity.css"}},match:"(:)(checked|enabled|default|disabled|indeterminate|invalid|optional|required|valid)\\b",name:"entity.other.attribute-name.pseudo-class.ui-state.css"},{begin:"((:)not)(\\()",beginCaptures:{"1":{name:"entity.other.attribute-name.pseudo-class.css"},"2":{name:"punctuation.definition.entity.css"},"3":{name:"punctuation.section.function.css"}},end:"\\)",endCaptures:{"0":{name:"punctuation.section.function.css"}},patterns:[{include:"#selector"}]},{captures:{"1":{name:"entity.other.attribute-name.pseudo-class.css"},"2":{name:"punctuation.definition.entity.css"},"3":{name:"punctuation.section.function.css"},"4":{name:"constant.numeric.css"},"5":{name:"punctuation.section.function.css"}},match:"((:)nth-(?:(?:last-)?child|(?:last-)?of-type))(\\()(\\-?(?:\\d+n?|n)(?:\\+\\d+)?|even|odd)(\\))"},{match:"((:)dir)\\s*(?:(\\()(ltr|rtl)?(\\)))?",captures:{"1":{name:"entity.other.attribute-name.pseudo-class.css"},"2":{name:"puncutation.definition.entity.css"},"3":{name:"punctuation.section.function.css"},"4":{name:"constant.language.css"},"5":{name:"punctuation.section.function.css"}}},{match:"((:)lang)\\s*(?:(\\()(\\w+(-\\w+)?)?(\\)))?",captures:{"1":{name:"entity.other.attribute-name.pseudo-class.css"},"2":{name:"puncutation.definition.entity.css"},"3":{name:"punctuation.section.function.css"},"4":{name:"constant.language.css"},"6":{name:"punctuation.section.function.css"}}},{captures:{"1":{name:"punctuation.definition.entity.css"}},match:"(:)(active|hover|link|visited|focus)\\b",name:"entity.other.attribute-name.pseudo-class.css"},{captures:{"1":{name:"punctuation.definition.entity.css"}},match:"(::)(shadow)\\b",name:"entity.other.attribute-name.pseudo-class.css"},{captures:{"1":{name:"punctuation.definition.entity.css"},"2":{name:"entity.other.attribute-name.attribute.css"},"3":{name:"punctuation.separator.operator.css"},"4":{name:"string.unquoted.attribute-value.css"},"5":{name:"string.quoted.double.attribute-value.css"},"6":{name:"punctuation.definition.string.begin.css"},"7":{name:"punctuation.definition.string.end.css"},"8":{name:"punctuation.definition.entity.css"}},match:"(?i)(\\[)\\s*(-?[_a-z\\\\[[:^ascii:]]][_a-z0-9\\-\\\\[[:^ascii:]]]*)(?:\\s*([~|^$*]?=)\\s*(?:(-?[_a-z\\\\[[:^ascii:]]][_a-z0-9\\-\\\\[[:^ascii:]]]*)|((?>(['\"])(?:[^\\\\]|\\\\.)*?(\\6)))))?\\s*(\\])",name:"meta.attribute-selector.css"},{include:"#interpolation"},{include:"#variable"}]},variable_declaration:{begin:"^[^\\S\\n]*(\\$?[a-zA-Z_-][a-zA-Z0-9_-]*)[^\\S\\n]*(\\=|\\?\\=|\\:\\=)",beginCaptures:{"1":{name:"variable.stylus"},"2":{name:"keyword.operator.stylus"}},end:"(\\n)|(;)|(?=\\})",endCaptures:{"2":{name:"punctuation.terminator.rule.css"}},patterns:[{include:"#property_values"}]},declaration:{begin:"((?<=^)[^\\S\\n]+)|((?<=;)[^\\S\\n]*)|((?<=\\{)[^\\S\\n]*)",end:"(?=\\n)|(;)|(?=\\})|(\\n)",endCaptures:{"2":{name:"punctuation.terminator.rule.css"}},name:"meta.property-list.css",patterns:[{match:"(?x) (?<![\\w-])\n--\n(?:[-a-zA-Z_] | [^\\x00-\\x7F]) # First letter\n(?:[-a-zA-Z0-9_] | [^\\x00-\\x7F] # Remainder of identifier\n |\\\\(?:[0-9a-fA-F]{1,6}|.)\n)*",name:"variable.css"},{include:"#language_keywords"},{include:"#language_constants"},{match:"(?:(?<=^)[^\\S\\n]+(\\n))"},{match:"\\G\\s*(counter-reset|counter-increment)(?:(:)|[^\\S\\n])[^\\S\\n]*([a-zA-Z_-][a-zA-Z0-9_-]*)",captures:{"1":{name:"support.type.property-name.css"},"2":{name:"punctuation.separator.key-value.css"},"3":{name:"variable.section.css"}},name:"meta.property.counter.css"},{begin:"\\G\\s*(filter)(?:(:)|[^\\S\\n])[^\\S\\n]*",beginCaptures:{"1":{name:"support.type.property-name.css"},"2":{name:"punctuation.separator.key-value.css"}},end:"(?=\\n|;|\\}|$)",name:"meta.property.filter.css",patterns:[{include:"#function"},{include:"#property_values"}]},{include:"#property"},{include:"#interpolation"},{include:"$self"}]},property:{begin:"(?x:\\G\\s*(?:\n (-webkit-[-A-Za-z]+|-moz-[-A-Za-z]+|-o-[-A-Za-z]+|-ms-[-A-Za-z]+|-khtml-[-A-Za-z]+|zoom|z-index|y|x|wrap|word-wrap|word-spacing|word-break|word|width|widows|white-space-collapse|white-space|white|weight|volume|voice-volume|voice-stress|voice-rate|voice-pitch-range|voice-pitch|voice-family|voice-duration|voice-balance|voice|visibility|vertical-align|variant|user-select|up|unicode-bidi|unicode-range|unicode|trim|transition-timing-function|transition-property|transition-duration|transition-delay|transition|transform|touch-action|top-width|top-style|top-right-radius|top-left-radius|top-color|top|timing-function|text-wrap|text-transform|text-shadow|text-replace|text-rendering|text-overflow|text-outline|text-justify|text-indent|text-height|text-emphasis|text-decoration|text-align-last|text-align|text|target-position|target-new|target-name|target|table-layout|tab-size|style-type|style-position|style-image|style|string-set|stretch|stress|stacking-strategy|stacking-shift|stacking-ruby|stacking|src|speed|speech-rate|speech|speak-punctuation|speak-numeral|speak-header|speak|span|spacing|space-collapse|space|sizing|size-adjust|size|shadow|respond-to|rule-width|rule-style|rule-color|rule|ruby-span|ruby-position|ruby-overhang|ruby-align|ruby|rows|rotation-point|rotation|role|right-width|right-style|right-color|right|richness|rest-before|rest-after|rest|resource|resize|reset|replace|repeat|rendering-intent|rate|radius|quotes|punctuation-trim|punctuation|property|profile|presentation-level|presentation|position|pointer-events|point|play-state|play-during|play-count|pitch-range|pitch|phonemes|pause-before|pause-after|pause|page-policy|page-break-inside|page-break-before|page-break-after|page|padding-top|padding-right|padding-left|padding-bottom|padding|pack|overhang|overflow-y|overflow-x|overflow-style|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|origin|orientation|orient|ordinal-group|order|opacity|offset|numeral|new|nav-up|nav-right|nav-left|nav-index|nav-down|nav|name|move-to|model|mix-blend-mode|min-width|min-height|min|max-width|max-height|max|marquee-style|marquee-speed|marquee-play-count|marquee-direction|marquee|marks|mark-before|mark-after|mark|margin-top|margin-right|margin-left|margin-bottom|margin|mask-image|list-style-type|list-style-position|list-style-image|list-style|list|lines|line-stacking-strategy|line-stacking-shift|line-stacking-ruby|line-stacking|line-height|line-break|level|letter-spacing|length|left-width|left-style|left-color|left|label|justify-content|justify|iteration-count|inline-box-align|initial-value|initial-size|initial-before-align|initial-before-adjust|initial-after-align|initial-after-adjust|index|indent|increment|image-resolution|image-orientation|image|icon|hyphens|hyphenate-resource|hyphenate-lines|hyphenate-character|hyphenate-before|hyphenate-after|hyphenate|height|header|hanging-punctuation|gap|grid|grid-area|grid-auto-columns|grid-auto-flow|grid-auto-rows|grid-column|grid-column-end|grid-column-start|grid-row|grid-row-end|grid-row-start|grid-template|grid-template-areas|grid-template-columns|grid-template-rows|row-gap|gap|font-kerning|font-language-override|font-weight|font-variant-caps|font-variant|font-style|font-synthesis|font-stretch|font-size-adjust|font-size|font-family|font|float-offset|float|flex-wrap|flex-shrink|flex-grow|flex-group|flex-flow|flex-direction|flex-basis|flex|fit-position|fit|fill|filter|family|empty-cells|emphasis|elevation|duration|drop-initial-value|drop-initial-size|drop-initial-before-align|drop-initial-before-adjust|drop-initial-after-align|drop-initial-after-adjust|drop|down|dominant-baseline|display-role|display-model|display|direction|delay|decoration-break|decoration|cursor|cue-before|cue-after|cue|crop|counter-reset|counter-increment|counter|count|content|columns|column-width|column-span|column-rule-width|column-rule-style|column-rule-color|column-rule|column-gap|column-fill|column-count|column-break-before|column-break-after|column|color-profile|color|collapse|clip|clear|character|caption-side|break-inside|break-before|break-after|break|box-sizing|box-shadow|box-pack|box-orient|box-ordinal-group|box-lines|box-flex-group|box-flex|box-direction|box-decoration-break|box-align|box|bottom-width|bottom-style|bottom-right-radius|bottom-left-radius|bottom-color|bottom|border-width|border-top-width|border-top-style|border-top-right-radius|border-top-left-radius|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-radius|border-length|border-left-width|border-left-style|border-left-color|border-left|border-image|border-color|border-collapse|border-bottom-width|border-bottom-style|border-bottom-right-radius|border-bottom-left-radius|border-bottom-color|border-bottom|border|bookmark-target|bookmark-level|bookmark-label|bookmark|binding|bidi|before|baseline-shift|baseline|balance|background-blend-mode|background-size|background-repeat|background-position|background-origin|background-image|background-color|background-clip|background-break|background-attachment|background|azimuth|attachment|appearance|animation-timing-function|animation-play-state|animation-name|animation-iteration-count|animation-duration|animation-direction|animation-delay|animation-fill-mode|animation|alignment-baseline|alignment-adjust|alignment|align-self|align-last|align-items|align-content|align|after|adjust|will-change)|\n (writing-mode|text-anchor|stroke-width|stroke-opacity|stroke-miterlimit|stroke-linejoin|stroke-linecap|stroke-dashoffset|stroke-dasharray|stroke|stop-opacity|stop-color|shape-rendering|marker-start|marker-mid|marker-end|lighting-color|kerning|image-rendering|glyph-orientation-vertical|glyph-orientation-horizontal|flood-opacity|flood-color|fill-rule|fill-opacity|fill|enable-background|color-rendering|color-interpolation-filters|color-interpolation|clip-rule|clip-path)|\n ([a-zA-Z_-][a-zA-Z0-9_-]*)\n)(?!([^\\S\\n]*&)|([^\\S\\n]*\\{))(?=:|([^\\S\\n]+[^\\s])))",beginCaptures:{"1":{name:"support.type.property-name.css"},"2":{name:"support.type.property-name.svg.css"},"3":{name:"support.function.mixin.stylus"}},end:"(;)|(?=\\n|\\}|$)",endCaptures:{"1":{name:"punctuation.terminator.rule.css"}},patterns:[{include:"#property_value"}]},property_value:{begin:"\\G(?:(:)|(\\s))(\\s*)(?!&)",beginCaptures:{"1":{name:"punctuation.separator.key-value.css"},"2":{name:"punctuation.separator.key-value.css"}},end:"(?=\\n|;|\\})",endCaptures:{"1":{name:"punctuation.terminator.rule.css"}},name:"meta.property-value.css",patterns:[{include:"#property_values"},{match:"[^\\n]+?"}]},property_values:{patterns:[{include:"#function"},{include:"#comment"},{include:"#language_keywords"},{include:"#language_constants"},{match:"(?:(?=\\w)(?<![\\w-]))(wrap-reverse|wrap|whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|unicase|underline|ultra-expanded|ultra-condensed|transparent|transform|top|titling-caps|thin|thick|text-top|text-bottom|text|tb-rl|table-row-group|table-row|table-header-group|table-footer-group|table-column-group|table-column|table-cell|table|sw-resize|super|strict|stretch|step-start|step-end|static|square|space-between|space-around|space|solid|soft-light|small-caps|separate|semi-expanded|semi-condensed|se-resize|scroll|screen|saturation|s-resize|running|rtl|row-reverse|row-resize|row|round|right|ridge|reverse|repeat-y|repeat-x|repeat|relative|progressive|progress|pre-wrap|pre-line|pre|pointer|petite-caps|paused|pan-x|pan-left|pan-right|pan-y|pan-up|pan-down|padding-box|overline|overlay|outside|outset|optimizeSpeed|optimizeLegibility|opacity|oblique|nw-resize|nowrap|not-allowed|normal|none|no-repeat|no-drop|newspaper|ne-resize|n-resize|multiply|move|middle|medium|max-height|manipulation|main-size|luminosity|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|local|list-item|linear(?!-)|line-through|line-edge|line|lighter|lighten|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline-block|inline|inherit|infinite|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|hue|horizontal|hidden|help|hard-light|hand|groove|geometricPrecision|forwards|flex-start|flex-end|flex|fixed|extra-expanded|extra-condensed|expanded|exclusion|ellipsis|ease-out|ease-in-out|ease-in|ease|e-resize|double|dotted|distribute-space|distribute-letter|distribute-all-lines|distribute|disc|disabled|difference|default|decimal|dashed|darken|currentColor|crosshair|cover|content-box|contain|condensed|column-reverse|column|color-dodge|color-burn|color|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|border-box|bolder|bold|block|bidi-override|below|baseline|balance|backwards|auto|antialiased|always|alternate-reverse|alternate|all-small-caps|all-scroll|all-petite-caps|all|absolute)(?:(?<=\\w)(?![\\w-]))",name:"support.constant.property-value.css"},{match:"(?:(?=\\w)(?<![\\w-]))(start|sRGB|square|round|optimizeSpeed|optimizeQuality|nonzero|miter|middle|linearRGB|geometricPrecision |evenodd |end |crispEdges|butt|bevel)(?:(?<=\\w)(?![\\w-]))",name:"support.constant.property-value.svg.css"},{include:"#font_name"},{include:"#numeric"},{include:"#color"},{include:"#string"},{match:"\\!\\s*important",name:"keyword.other.important.css"},{include:"#operator"},{include:"#stylus_keywords"},{include:"#property_variable"}]},numeric:{patterns:[{captures:{"1":{name:"keyword.other.unit.css"}},match:"(?x) (?<!\\w|-)(?:(?:-|\\+)?(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+)) ((?:px|pt|ch|cm|mm|in|r?em|ex|pc|deg|g?rad|dpi|dpcm|dppx|fr|ms|s|turn|vh|vmax|vmin|vw)\\b|%)?",name:"constant.numeric.css"}]},color:{patterns:[{begin:"\\b(rgb|rgba|hsl|hsla)(\\()",beginCaptures:{"1":{name:"support.function.color.css"},"2":{name:"punctuation.section.function.css"}},end:"(\\))",endCaptures:{"1":{name:"punctuation.section.function.css"}},name:"meta.function.color.css",patterns:[{match:"\\s*(,)\\s*",name:"punctuation.separator.parameter.css"},{include:"#numeric"},{include:"#property_variable"}]},{captures:{"1":{name:"punctuation.definition.constant.css"}},match:"(#)([0-9a-fA-F]{3}|[0-9a-fA-F]{6})\\b",name:"constant.other.color.rgb-value.css"},{comment:"http://www.w3.org/TR/CSS21/syndata.html#value-def-color",match:"\\b(aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)\\b",name:"support.constant.color.w3c-standard-color-name.css"},{comment:"http://www.w3.org/TR/css3-color/#svg-color",match:"\\b(aliceblue|antiquewhite|aquamarine|azure|beige|bisque|blanchedalmond|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|gainsboro|ghostwhite|gold|goldenrod|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|limegreen|linen|magenta|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|oldlace|olivedrab|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|thistle|tomato|turquoise|violet|wheat|whitesmoke|yellowgreen)\\b",name:"support.constant.color.w3c-extended-color-name.css"}]},string:{patterns:[{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.css"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.css"}},name:"string.quoted.double.css",patterns:[{match:"\\\\([a-fA-F0-9]{1,6}|.)",name:"constant.character.escape.css"}]},{begin:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.css"}},end:"'",endCaptures:{"0":{name:"punctuation.definition.string.end.css"}},name:"string.quoted.single.css",patterns:[{match:"\\\\([a-fA-F0-9]{1,6}|.)",name:"constant.character.escape.css"}]}]},at_rule:{patterns:[{begin:"\\s*((@)(import|require))\\b\\s*",beginCaptures:{"1":{name:"keyword.control.at-rule.import.stylus"},"2":{name:"punctuation.definition.keyword.stylus"}},end:"\\s*((?=;|$|\\n))",endCaptures:{"1":{name:"punctuation.terminator.rule.css"}},name:"meta.at-rule.import.css",patterns:[{include:"#string"}]},{begin:"\\s*((@)(extend[s]?)\\b)\\s*",beginCaptures:{"1":{name:"keyword.control.at-rule.extend.stylus"},"2":{name:"punctuation.definition.keyword.stylus"}},end:"\\s*((?=;|$|\\n))",endCaptures:{"1":{name:"punctuation.terminator.rule.css"}},name:"meta.at-rule.extend.css",patterns:[{include:"#selector"}]},{match:"^\\s*((@)font-face)\\b",captures:{"1":{name:"keyword.control.at-rule.fontface.stylus"},"2":{name:"punctuation.definition.keyword.stylus"}},name:"meta.at-rule.fontface.stylus"},{match:"^\\s*((@)css)\\b",captures:{"1":{name:"keyword.control.at-rule.css.stylus"},"2":{name:"punctuation.definition.keyword.stylus"}},name:"meta.at-rule.css.stylus"},{begin:"\\s*((@)charset)\\b\\s*",beginCaptures:{"1":{name:"keyword.control.at-rule.charset.stylus"},"2":{name:"punctuation.definition.keyword.stylus"}},end:"\\s*((?=;|$|\\n))",name:"meta.at-rule.charset.stylus",patterns:[{include:"#string"}]},{begin:"\\s*((@)keyframes)\\b\\s+([a-zA-Z_-][a-zA-Z0-9_-]*)",beginCaptures:{"1":{name:"keyword.control.at-rule.keyframes.stylus"},"2":{name:"punctuation.definition.keyword.stylus"},"3":{name:"entity.name.function.keyframe.stylus"}},end:"\\s*((?=\\{|$|\\n))",name:"meta.at-rule.keyframes.stylus"},{begin:"(?=(\\b(\\d+%|from\\b|to\\b)))",end:"(?=(\\{|\\n))",name:"meta.at-rule.keyframes.stylus",patterns:[{match:"(\\b(\\d+%|from\\b|to\\b))",name:"entity.other.attribute-name.stylus"}]},{match:"^\\s*((@)media)\\b",captures:{"1":{name:"keyword.control.at-rule.media.stylus"},"2":{name:"punctuation.definition.keyword.stylus"}},name:"meta.at-rule.media.stylus"},{match:"(?:(?=\\w)(?<![\\w-]))(width|scan|resolution|orientation|monochrome|min-width|min-resolution|min-monochrome|min-height|min-device-width|min-device-height|min-device-aspect-ratio|min-color-index|min-color|min-aspect-ratio|max-width|max-resolution|max-monochrome|max-height|max-device-width|max-device-height|max-device-aspect-ratio|max-color-index|max-color|max-aspect-ratio|height|grid|device-width|device-height|device-aspect-ratio|color-index|color|aspect-ratio)(?:(?<=\\w)(?![\\w-]))",name:"support.type.property-name.media-feature.media.css"},{match:"(?:(?=\\w)(?<![\\w-]))(tv|tty|screen|projection|print|handheld|embossed|braille|aural|all)(?:(?<=\\w)(?![\\w-]))",name:"support.constant.media-type.media.css"},{match:"(?:(?=\\w)(?<![\\w-]))(portrait|landscape)(?:(?<=\\w)(?![\\w-]))",name:"support.constant.property-value.media-property.media.css"}]},operator:{patterns:[{match:"((?:\\?|:|!|~|\\+|(\\s-\\s)|(?:\\*)?\\*|\\/|%|(\\.)?\\.\\.|<|>|(?:=|:|\\?|\\+|-|\\*|\\/|%|<|>)?=|!=)|\\b(?:in|is(?:nt)?|(?<!:)not|or|and)\\b)",name:"keyword.operator.stylus"},{include:"#char_escape"}]},font_name:{match:"(\\b(?i:arial|century|comic|courier|cursive|fantasy|futura|garamond|georgia|helvetica|impact|lucida|monospace|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif)\\b)",name:"support.constant.font-name.css"},variable:{match:"(\\$[a-zA-Z_-][a-zA-Z0-9_-]*)",name:"variable.stylus"},property_variable:{patterns:[{include:"#variable"},{match:"(?<!^)(\\@[a-zA-Z_-][a-zA-Z0-9_-]*)",name:"variable.property.stylus"}]},"function":{begin:"(?=[a-zA-Z_-][a-zA-Z0-9_-]*\\()",end:"(\\))",endCaptures:{"1":{name:"punctuation.section.function.css"}},patterns:[{begin:"(format|url|local)(\\()",beginCaptures:{"1":{name:"support.function.misc.css"},"2":{name:"punctuation.section.function.css"}},end:"(?=\\))",name:"meta.function.misc.css",patterns:[{match:"(?<=\\()[^\\)\\s]*(?=\\))",name:"string.css"},{include:"#string"},{include:"#variable"},{include:"#operator"},{match:"\\s*"}]},{match:"(counter)(\\()([a-zA-Z_-][a-zA-Z0-9_-]*)(?=\\))",captures:{"1":{name:"support.function.misc.counter.css"},"2":{name:"punctuation.section.function.css"},"3":{name:"variable.section.css"}},name:"meta.function.misc.counter.css"},{begin:"(counters)(\\()",beginCaptures:{"1":{name:"support.function.misc.counters.css"},"2":{name:"punctuation.section.function.css"}},end:"(?=\\))",name:"meta.function.misc.counters.css",patterns:[{match:"\\G[a-zA-Z_-][a-zA-Z0-9_-]*",name:"variable.section.css"},{match:"\\s*(,)\\s*",name:"punctuation.separator.parameter.css"},{include:"#string"},{include:"#interpolation"}]},{begin:"(attr)(\\()",beginCaptures:{"1":{name:"support.function.misc.attr.css"},"2":{name:"punctuation.section.function.css"}},end:"(?=\\))",name:"meta.function.misc.attr.css",patterns:[{match:"\\G[a-zA-Z_-][a-zA-Z0-9_-]*",name:"entity.other.attribute-name.attribute.css"},{match:"(?<=[a-zA-Z0-9_-])\\s*\\b(string|color|url|integer|number|length|em|ex|px|rem|vw|vh|vmin|vmax|mm|cm|in|pt|pc|angle|deg|grad|rad|time|s|ms|frequency|Hz|kHz|%)\\b",name:"support.type.attr.css"},{match:"\\s*(,)\\s*",name:"punctuation.separator.parameter.css"},{include:"#string"},{include:"#interpolation"}]},{begin:"(calc)(\\()",beginCaptures:{"1":{name:"support.function.misc.calc.css"},"2":{name:"punctuation.section.function.css"}},end:"(?=\\))",name:"meta.function.misc.calc.css",patterns:[{include:"#property_values"}]},{begin:"(cubic-bezier)(\\()",beginCaptures:{"1":{name:"support.function.timing.cubic-bezier.css"},"2":{name:"punctuation.section.function.css"}},end:"(?=\\))",name:"meta.function.timing.cubic-bezier.css",patterns:[{match:"\\s*(,)\\s*",name:"punctuation.separator.parameter.css"},{include:"#numeric"},{include:"#interpolation"}]},{begin:"(steps)(\\()",beginCaptures:{"1":{name:"support.function.timing.steps.css"},"2":{name:"punctuation.section.function.css"}},end:"(?=\\))",name:"meta.function.timing.steps.css",patterns:[{match:"\\s*(,)\\s*",name:"punctuation.separator.parameter.css"},{include:"#numeric"},{match:"\\b(start|end)\\b",name:"support.constant.timing.steps.direction.css"},{include:"#interpolation"}]},{begin:"(linear-gradient|radial-gradient|repeating-linear-gradient|repeating-radial-gradient)(\\()",beginCaptures:{"1":{name:"support.function.gradient.css"},"2":{name:"punctuation.section.function.css"}},end:"(?=\\))",name:"meta.function.gradient.css",patterns:[{match:"\\s*(,)\\s*",name:"punctuation.separator.parameter.css"},{include:"#numeric"},{include:"#color"},{match:"\\b(to|bottom|right|left|top|circle|ellipse|center|closest-side|closest-corner|farthest-side|farthest-corner|at)\\b",name:"support.constant.gradient.css"},{include:"#interpolation"}]},{begin:"(blur|brightness|contrast|grayscale|hue-rotate|invert|opacity|saturate|sepia)(\\()",beginCaptures:{"1":{name:"support.function.filter.css"},"2":{name:"punctuation.section.function.css"}},end:"(?=\\))",name:"meta.function.filter.css",patterns:[{include:"#numeric"},{include:"#property_variable"},{include:"#interpolation"}]},{begin:"(drop-shadow)(\\()",beginCaptures:{"1":{name:"support.function.filter.drop-shadow.css"},"2":{name:"punctuation.section.function.css"}},end:"(?=\\))",name:"meta.function.filter.drop-shadow.css",patterns:[{include:"#numeric"},{include:"#color"},{include:"#property_variable"},{include:"#interpolation"}]},{begin:"(matrix|matrix3d|perspective|rotate|rotate3d|rotate[Xx]|rotate[yY]|rotate[zZ]|scale|scale3d|scale[xX]|scale[yY]|scale[zZ]|skew|skew[xX]|skew[yY]|translate|translate3d|translate[xX]|translate[yY]|translate[zZ])(\\()",beginCaptures:{"1":{name:"support.function.transform.css"},"2":{name:"punctuation.section.function.css"}},end:"(?=\\))",name:"meta.function.transform.css",patterns:[{include:"#numeric"},{include:"#property_variable"},{include:"#interpolation"}]},{match:"(url|local|format|counter|counters|attr|calc)(?=\\()",name:"support.function.misc.css"},{match:"(cubic-bezier|steps)(?=\\()",name:"support.function.timing.css"},{match:"(linear-gradient|radial-gradient|repeating-linear-gradient|repeating-radial-gradient)(?=\\()",name:"support.function.gradient.css"},{match:"(blur|brightness|contrast|drop-shadow|grayscale|hue-rotate|invert|opacity|saturate|sepia)(?=\\()",name:"support.function.filter.css"},{match:"(matrix|matrix3d|perspective|rotate|rotate3d|rotate[Xx]|rotate[yY]|rotate[zZ]|scale|scale3d|scale[xX]|scale[yY]|scale[zZ]|skew|skew[xX]|skew[yY]|translate|translate3d|translate[xX]|translate[yY]|translate[zZ])(?=\\()",name:"support.function.transform.css"},{begin:"([a-zA-Z_-][a-zA-Z0-9_-]*)(\\()",beginCaptures:{"1":{name:"entity.name.function.stylus"},"2":{name:"punctuation.section.function.css"}},end:"(?=\\))",name:"meta.function.stylus",patterns:[{name:"variable.argument.stylus",match:"(?x)\n--\n(?:[-a-zA-Z_] | [^\\x00-\\x7F]) # First letter\n(?:[-a-zA-Z0-9_] | [^\\x00-\\x7F] # Remainder of identifier\n |\\\\(?:[0-9a-fA-F]{1,6}|.)\n)*"},{match:"\\s*(,)\\s*",name:"punctuation.separator.parameter.css"},{include:"#interpolation"},{include:"#property_values"}]},{match:"\\(",name:"punctuation.section.function.css"}]},interpolation:{name:"meta.interpolation.stylus",begin:"(?:(\\{)[^\\S\\n]*)(?=[^;=]*[^\\S\\n]*\\})",beginCaptures:{"1":{name:"meta.brace.curly"}},end:"(?:[^\\S\\n]*(\\}))|\\n|$",endCaptures:{"1":{name:"meta.brace.curly"}},patterns:[{include:"#variable"},{include:"#numeric"},{include:"#string"},{include:"#operator"}]},char_escape:{name:"constant.character.escape.stylus",match:"\\\\(.)"},language_constants:{match:"\\b(true|false|null)\\b",name:"constant.language.stylus"},language_keywords:{patterns:[{match:"(\\b|\\s)(return|else|for|unless|if|else)\\b",name:"keyword.control.stylus"},{match:"(\\b|\\s)(!important|in|is defined|is a)\\b",name:"keyword.other.stylus"},{match:"\\barguments\\b",name:"variable.language.stylus"}]}}}; + +export { stylus_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/svelte.tmLanguage-6f52fc6f.mjs b/docs/shiki/dist/languages/svelte.tmLanguage-6f52fc6f.mjs new file mode 100644 index 00000000..a9cd6aa2 --- /dev/null +++ b/docs/shiki/dist/languages/svelte.tmLanguage-6f52fc6f.mjs @@ -0,0 +1,3 @@ +var svelte_tmLanguage = {name:"svelte",scopeName:"source.svelte",fileTypes:["svelte"],uuid:"7582b62f-51d9-4a84-8c8d-fc189530faf6",injections:{"L:(meta.script.svelte | meta.style.svelte) (meta.lang.js | meta.lang.javascript) - (meta source)":{patterns:[{begin:"(?<=>)(?!</)",end:"(?=</)",name:"meta.embedded.block.svelte",contentName:"source.js",patterns:[{include:"source.js"}]}]},"L:(meta.script.svelte | meta.style.svelte) (meta.lang.ts | meta.lang.typescript) - (meta source)":{patterns:[{begin:"(?<=>)(?!</)",end:"(?=</)",name:"meta.embedded.block.svelte",contentName:"source.ts",patterns:[{include:"source.ts"}]}]},"L:(meta.script.svelte | meta.style.svelte) meta.lang.coffee - (meta source)":{patterns:[{begin:"(?<=>)(?!</)",end:"(?=</)",name:"meta.embedded.block.svelte",contentName:"source.coffee",patterns:[{include:"source.coffee"}]}]},"L:meta.script.svelte - meta.lang - (meta source)":{patterns:[{begin:"(?<=>)(?!</)",end:"(?=</)",name:"meta.embedded.block.svelte",contentName:"source.js",patterns:[{include:"source.js"}]}]},"L:meta.style.svelte meta.lang.stylus - (meta source)":{patterns:[{begin:"(?<=>)(?!</)",end:"(?=</)",name:"meta.embedded.block.svelte",contentName:"source.stylus",patterns:[{include:"source.stylus"}]}]},"L:meta.style.svelte meta.lang.sass - (meta source)":{patterns:[{begin:"(?<=>)(?!</)",end:"(?=</)",name:"meta.embedded.block.svelte",contentName:"source.sass",patterns:[{include:"source.sass"}]}]},"L:meta.style.svelte meta.lang.css - (meta source)":{patterns:[{begin:"(?<=>)(?!</)",end:"(?=</)",name:"meta.embedded.block.svelte",contentName:"source.css",patterns:[{include:"source.css"}]}]},"L:meta.style.svelte meta.lang.scss - (meta source)":{patterns:[{begin:"(?<=>)(?!</)",end:"(?=</)",name:"meta.embedded.block.svelte",contentName:"source.css.scss",patterns:[{include:"source.css.scss"}]}]},"L:meta.style.svelte meta.lang.less - (meta source)":{patterns:[{begin:"(?<=>)(?!</)",end:"(?=</)",name:"meta.embedded.block.svelte",contentName:"source.css.less",patterns:[{include:"source.css.less"}]}]},"L:meta.style.svelte meta.lang.postcss - (meta source)":{patterns:[{begin:"(?<=>)(?!</)",end:"(?=</)",name:"meta.embedded.block.svelte",contentName:"source.css.postcss",patterns:[{include:"source.css.postcss"}]}]},"L:meta.style.svelte - meta.lang - (meta source)":{patterns:[{begin:"(?<=>)(?!</)",end:"(?=</)",name:"meta.embedded.block.svelte",contentName:"source.css",patterns:[{include:"source.css"}]}]},"L:meta.template.svelte meta.lang.pug - (meta source)":{patterns:[{begin:"(?<=>)(?!</)",end:"(?=</)",name:"meta.embedded.block.svelte",contentName:"text.pug",patterns:[{include:"text.pug"}]}]},"L:meta.template.svelte - meta.lang - (meta source)":{patterns:[{begin:"(?<=>)\\s",end:"(?=</template)",patterns:[{include:"#scope"}]}]},"L:(source.ts, source.js, source.coffee)":{patterns:[{match:"(?<![_$./'\"[:alnum:]])\\$(?=[_[:alpha:]][_$[:alnum:]]*)",name:"punctuation.definition.variable.svelte"},{match:"(?<![_$./'\"[:alnum:]])(\\$\\$)(?=props|restProps|slots)",name:"punctuation.definition.variable.svelte"}]}},patterns:[{include:"#scope"}],repository:{scope:{patterns:[{include:"#comments"},{include:"#special-tags"},{include:"#tags"},{include:"#interpolation"},{begin:"(?<=>|})",end:"(?=<|{)",name:"text.svelte"}]},comments:{begin:"<!--",end:"-->",captures:{"0":{name:"punctuation.definition.comment.svelte"}},name:"comment.block.svelte",patterns:[{begin:"(@)(component)",beginCaptures:{"1":{name:"punctuation.definition.keyword.svelte"},"2":{name:"storage.type.class.component.svelte keyword.declaration.class.component.svelte"}},end:"(?=-->)",contentName:"comment.block.documentation.svelte",patterns:[{match:".*?(?=-->)",captures:{"0":{patterns:[{include:"text.html.markdown"}]}}},{include:"text.html.markdown"}]},{match:"\\G-?>|<!--(?!>)|<!-(?=-->)|--!>",name:"invalid.illegal.characters-not-allowed-here.svelte"}]},destructuring:{patterns:[{begin:"(?={)",end:"(?<=})",name:"meta.embedded.expression.svelte source.ts",patterns:[{include:"source.ts#object-binding-pattern"}]},{begin:"(?=\\[)",end:"(?<=\\])",name:"meta.embedded.expression.svelte source.ts",patterns:[{include:"source.ts#array-binding-pattern"}]}]},"destructuring-const":{patterns:[{begin:"(?={)",end:"(?<=})",name:"meta.embedded.expression.svelte source.ts",patterns:[{include:"source.ts#object-binding-pattern-const"}]},{begin:"(?=\\[)",end:"(?<=\\])",name:"meta.embedded.expression.svelte source.ts",patterns:[{include:"source.ts#array-binding-pattern-const"}]}]},interpolation:{patterns:[{begin:"\\{",end:"\\}",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.svelte"}},endCaptures:{"0":{name:"punctuation.section.embedded.end.svelte"}},contentName:"meta.embedded.expression.svelte source.ts",patterns:[{begin:"\\G\\s*(?={)",end:"(?<=})",patterns:[{include:"source.ts#object-literal"}]},{include:"source.ts"}]}]},"special-tags":{patterns:[{include:"#special-tags-void"},{include:"#special-tags-block-begin"},{include:"#special-tags-block-end"}]},"special-tags-keywords":{match:"([#@/:])(else\\s+if|[a-z]*)",captures:{"1":{name:"punctuation.definition.keyword.svelte"},"2":{patterns:[{match:"if|else\\s+if|else",name:"keyword.control.conditional.svelte"},{match:"each|key",name:"keyword.control.svelte"},{match:"await|then|catch",name:"keyword.control.flow.svelte"},{match:"html",name:"keyword.other.svelte"},{match:"debug",name:"keyword.other.debugger.svelte"},{match:"const",name:"storage.type.svelte"}]}}},"special-tags-modes":{patterns:[{begin:"(?<=(if|key|then|catch|html).*?)\\G",end:"(?=})",name:"meta.embedded.expression.svelte source.ts",patterns:[{include:"source.ts"}]},{begin:"(?<=const.*?)\\G",end:"(?=})",patterns:[{include:"#destructuring-const"},{begin:"\\G\\s*([_$[:alpha:]][_$[:alnum:]]+)\\s*",end:"(?=\\=)",beginCaptures:{"1":{name:"variable.other.constant.svelte"}}},{begin:"(?=\\=)",name:"meta.embedded.expression.svelte source.ts",end:"(?=})",patterns:[{include:"source.ts"}]}]},{begin:"(?<=each.*?)\\G",end:"(?=})",patterns:[{begin:"\\G\\s*?(?=\\S)",end:"(?=(?:^\\s*|\\s+)(as))",contentName:"meta.embedded.expression.svelte source.ts",patterns:[{include:"source.ts"}]},{begin:"(as)",beginCaptures:{"1":{name:"keyword.control.as.svelte"}},end:"(?=})",patterns:[{include:"#destructuring"},{begin:"\\(",end:"\\)|(?=})",captures:{"0":{name:"meta.brace.round.svelte"}},contentName:"meta.embedded.expression.svelte source.ts",patterns:[{include:"source.ts"}]},{match:"(\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s*)",captures:{"1":{name:"meta.embedded.expression.svelte source.ts",patterns:[{include:"source.ts"}]}}},{match:",",name:"punctuation.separator.svelte"}]}]},{begin:"(?<=await.*?)\\G",end:"(?=})",patterns:[{begin:"\\G\\s*?(?=\\S)",end:"\\s+(then)|(?=})",endCaptures:{"1":{name:"keyword.control.flow.svelte"}},contentName:"meta.embedded.expression.svelte source.ts",patterns:[{include:"source.ts"}]},{begin:"(?<=then\\b)",end:"(?=})",contentName:"meta.embedded.expression.svelte source.ts",patterns:[{include:"source.ts"}]}]},{begin:"(?<=debug.*?)\\G",end:"(?=})",patterns:[{match:"[_$[:alpha:]][_$[:alnum:]]*",captures:{"0":{name:"meta.embedded.expression.svelte source.ts",patterns:[{include:"source.ts"}]}}},{match:",",name:"punctuation.separator.svelte"}]}]},"special-tags-void":{begin:"({)\\s*((?:[@:])(else\\s+if|[a-z]*))",beginCaptures:{"1":{name:"punctuation.definition.block.begin.svelte"},"2":{patterns:[{include:"#special-tags-keywords"}]}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.block.end.svelte"}},name:"meta.special.$3.svelte",patterns:[{include:"#special-tags-modes"}]},"special-tags-block-begin":{begin:"({)\\s*(#([a-z]*))",end:"(})",name:"meta.special.$3.svelte meta.special.start.svelte",beginCaptures:{"1":{name:"punctuation.definition.block.begin.svelte"},"2":{patterns:[{include:"#special-tags-keywords"}]}},endCaptures:{"0":{name:"punctuation.definition.block.end.svelte"}},patterns:[{include:"#special-tags-modes"}]},"special-tags-block-end":{begin:"({)\\s*(/([a-z]*))",end:"(})",name:"meta.special.$3.svelte meta.special.end.svelte",beginCaptures:{"1":{name:"punctuation.definition.block.begin.svelte"},"2":{patterns:[{include:"#special-tags-keywords"}]}},endCaptures:{"1":{name:"punctuation.definition.block.end.svelte"}}},attributes:{patterns:[{include:"#attributes-directives"},{include:"#attributes-keyvalue"},{include:"#attributes-interpolated"}]},"attributes-interpolated":{begin:"(?<!:|=)\\s*({)",end:"(\\})",captures:{"1":{name:"entity.other.attribute-name.svelte"}},contentName:"meta.embedded.expression.svelte source.ts",patterns:[{include:"source.ts"}]},"attributes-keyvalue":{begin:"((?:--)?[_$[:alpha:]][_\\-$[:alnum:]]*)",beginCaptures:{"0":{patterns:[{match:"--.*",name:"support.type.property-name.svelte"},{match:".*",name:"entity.other.attribute-name.svelte"}]}},end:"(?=\\s*+[^=\\s])",name:"meta.attribute.$1.svelte",patterns:[{begin:"=",beginCaptures:{"0":{name:"punctuation.separator.key-value.svelte"}},end:"(?<=[^\\s=])(?!\\s*=)|(?=/?>)",patterns:[{include:"#attributes-value"}]}]},"attributes-value":{patterns:[{include:"#interpolation"},{match:"(?:(['\"])([0-9._]+[\\w%]{,4})(\\1))|(?:([0-9._]+[\\w%]{,4})(?=\\s|/?>))",captures:{"1":{name:"punctuation.definition.string.begin.svelte"},"2":{name:"constant.numeric.decimal.svelte"},"3":{name:"punctuation.definition.string.end.svelte"},"4":{name:"constant.numeric.decimal.svelte"}}},{match:"([^\\s\"'=<>`/]|/(?!>))+",name:"string.unquoted.svelte",patterns:[{include:"#interpolation"}]},{begin:"(['\"])",end:"\\1",beginCaptures:{"0":{name:"punctuation.definition.string.begin.svelte"}},endCaptures:{"0":{name:"punctuation.definition.string.end.svelte"}},name:"string.quoted.svelte",patterns:[{include:"#interpolation"}]}]},"attributes-directives-keywords":{patterns:[{match:"on|use|bind",name:"keyword.control.svelte"},{match:"transition|in|out|animate",name:"keyword.other.animation.svelte"},{match:"let",name:"storage.type.svelte"},{match:"class|style",name:"entity.other.attribute-name.svelte"}]},"attributes-directives-types":{patterns:[{match:"(?<=(on):).*$",name:"entity.name.type.svelte"},{match:"(?<=(bind):).*$",name:"variable.parameter.svelte"},{match:"(?<=(use|transition|in|out|animate):).*$",name:"variable.function.svelte"},{match:"(?<=(let|class|style):).*$",name:"variable.parameter.svelte"}]},"attributes-directives-types-assigned":{patterns:[{match:"(?<=(bind):)this$",name:"variable.language.svelte"},{match:"(?<=(bind):).*$",name:"entity.name.type.svelte"},{match:"(?<=(class):).*$",name:"entity.other.attribute-name.class.svelte"},{match:"(?<=(style):).*$",name:"support.type.property-name.svelte"},{include:"#attributes-directives-types"}]},"attributes-directives":{begin:"(?<!<)(on|use|bind|transition|in|out|animate|let|class|style)(:)(?:((?:--)?[_$[:alpha:]][_\\-$[:alnum:]]*(?=\\s*=))|((?:--)?[_$[:alpha:]][_\\-$[:alnum:]]*))((\\|\\w+)*)",beginCaptures:{"1":{patterns:[{include:"#attributes-directives-keywords"}]},"2":{name:"punctuation.definition.keyword.svelte"},"3":{patterns:[{include:"#attributes-directives-types-assigned"}]},"4":{patterns:[{include:"#attributes-directives-types"}]},"5":{patterns:[{match:"\\w+",name:"support.function.svelte"},{match:"\\|",name:"punctuation.separator.svelte"}]}},end:"(?=\\s*+[^=\\s])",name:"meta.directive.$1.svelte",patterns:[{begin:"=",beginCaptures:{"0":{name:"punctuation.separator.key-value.svelte"}},end:"(?<=[^\\s=])(?!\\s*=)|(?=/?>)",patterns:[{include:"#attributes-value"}]}]},"attributes-generics":{begin:"(generics)(=)([\"'])",beginCaptures:{"1":{name:"entity.other.attribute-name.svelte"},"2":{name:"punctuation.separator.key-value.svelte"},"3":{name:"punctuation.definition.string.begin.svelte"}},end:"(\\3)",endCaptures:{"1":{name:"punctuation.definition.string.end.svelte"}},contentName:"meta.embedded.expression.svelte source.ts",patterns:[{include:"#type-parameters"}]},"type-parameters":{name:"meta.type.parameters.ts",patterns:[{include:"source.ts#comment"},{name:"storage.modifier.ts",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends|in|out|const)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{include:"source.ts#type"},{include:"source.ts#punctuation-comma"},{name:"keyword.operator.assignment.ts",match:"(=)(?!>)"}]},tags:{patterns:[{include:"#tags-lang"},{include:"#tags-void"},{include:"#tags-general-end"},{include:"#tags-general-start"}]},"tags-name":{patterns:[{match:"(svelte)(:)([a-z][\\w0-9:-]*)",captures:{"1":{name:"keyword.control.svelte"},"2":{name:"punctuation.definition.keyword.svelte"},"3":{name:"entity.name.tag.svelte"}}},{match:"slot",name:"keyword.control.svelte"},{match:"[A-Z][a-zA-Z0-9_]*",name:"support.class.component.svelte"},{match:"[a-z][\\w0-9:]*-[\\w0-9:-]*",name:"meta.tag.custom.svelte entity.name.tag.svelte"},{match:"[a-z][\\w0-9:-]*",name:"entity.name.tag.svelte"}]},"tags-start-attributes":{begin:"\\G",end:"(?=/?>)",name:"meta.tag.start.svelte",patterns:[{include:"#attributes"}]},"tags-lang-start-attributes":{begin:"\\G",end:"(?=/>)|>",endCaptures:{"0":{name:"punctuation.definition.tag.end.svelte"}},name:"meta.tag.start.svelte",patterns:[{include:"#attributes-generics"},{include:"#attributes"}]},"tags-start-node":{match:"(<)([^/\\s>/]*)",captures:{"1":{name:"punctuation.definition.tag.begin.svelte"},"2":{patterns:[{include:"#tags-name"}]}},name:"meta.tag.start.svelte"},"tags-end-node":{match:"(</)(.*?)\\s*(>)|(/>)",captures:{"1":{name:"meta.tag.end.svelte punctuation.definition.tag.begin.svelte"},"2":{name:"meta.tag.end.svelte",patterns:[{include:"#tags-name"}]},"3":{name:"meta.tag.end.svelte punctuation.definition.tag.end.svelte"},"4":{name:"meta.tag.start.svelte punctuation.definition.tag.end.svelte"}}},"tags-lang":{begin:"<(script|style|template)",end:"</\\1\\s*>|/>",beginCaptures:{"0":{patterns:[{include:"#tags-start-node"}]}},endCaptures:{"0":{patterns:[{include:"#tags-end-node"}]}},name:"meta.$1.svelte",patterns:[{begin:"\\G(?=\\s*[^>]*?(type|lang)\\s*=\\s*(['\"]|)(?:text/)?(\\w+)\\2)",end:"(?=</|/>)",name:"meta.lang.$3.svelte",patterns:[{include:"#tags-lang-start-attributes"}]},{include:"#tags-lang-start-attributes"}]},"tags-void":{begin:"(<)(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)(?=\\s|/?>)",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.svelte"},"2":{name:"entity.name.tag.svelte"}},end:"/?>",endCaptures:{"0":{name:"punctuation.definition.tag.begin.svelte"}},name:"meta.tag.void.svelte",patterns:[{include:"#attributes"}]},"tags-general-start":{begin:"(<)([^/\\s>/]*)",end:"(/?>)",beginCaptures:{"0":{patterns:[{include:"#tags-start-node"}]}},endCaptures:{"1":{name:"meta.tag.start.svelte punctuation.definition.tag.end.svelte"}},name:"meta.scope.tag.$2.svelte",patterns:[{include:"#tags-start-attributes"}]},"tags-general-end":{begin:"(</)([^/\\s>]*)",end:"(>)",beginCaptures:{"1":{name:"meta.tag.end.svelte punctuation.definition.tag.begin.svelte"},"2":{name:"meta.tag.end.svelte",patterns:[{include:"#tags-name"}]}},endCaptures:{"1":{name:"meta.tag.end.svelte punctuation.definition.tag.end.svelte"}},name:"meta.scope.tag.$2.svelte"}}}; + +export { svelte_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/swift.tmLanguage-0bb34705.mjs b/docs/shiki/dist/languages/swift.tmLanguage-0bb34705.mjs new file mode 100644 index 00000000..ec949efd --- /dev/null +++ b/docs/shiki/dist/languages/swift.tmLanguage-0bb34705.mjs @@ -0,0 +1,3 @@ +var swift_tmLanguage = {information_for_contributors:["This file has been converted from https://github.com/textmate/swift.tmbundle/blob/master/Syntaxes/Swift.tmLanguage","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."],version:"https://github.com/textmate/swift.tmbundle/commit/7a35637eb70aef3114b091c4ff6fbf6a2faa881b",name:"swift",scopeName:"source.swift",comment:"See swift.tmbundle/grammar-test.swift for test cases.",patterns:[{include:"#root"}],repository:{"async-throws":{captures:{"1":{name:"invalid.illegal.await-must-precede-throws.swift"},"2":{name:"keyword.control.exception.swift"},"3":{name:"keyword.control.async.swift"}},match:"\\b(?:(throws\\s+async|rethrows\\s+async)|(throws|rethrows)|(async))\\b"},attributes:{patterns:[{begin:"((@)available)(\\()",beginCaptures:{"1":{name:"storage.modifier.attribute.swift"},"2":{name:"punctuation.definition.attribute.swift"},"3":{name:"punctuation.definition.arguments.begin.swift"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.arguments.end.swift"}},name:"meta.attribute.available.swift",patterns:[{captures:{"1":{name:"keyword.other.platform.os.swift"},"2":{name:"constant.numeric.swift"}},match:"\\b(swift|(?:iOS|macOS|OSX|watchOS|tvOS|UIKitForMac)(?:ApplicationExtension)?)\\b(?:\\s+([0-9]+(?:\\.[0-9]+)*\\b))?"},{begin:"\\b(introduced|deprecated|obsoleted)\\s*(:)\\s*",beginCaptures:{"1":{name:"keyword.other.swift"},"2":{name:"punctuation.separator.key-value.swift"}},end:"(?!\\G)",patterns:[{match:"\\b[0-9]+(?:\\.[0-9]+)*\\b",name:"constant.numeric.swift"}]},{begin:"\\b(message|renamed)\\s*(:)\\s*(?=\")",beginCaptures:{"1":{name:"keyword.other.swift"},"2":{name:"punctuation.separator.key-value.swift"}},end:"(?!\\G)",patterns:[{include:"#literals"}]},{captures:{"1":{name:"keyword.other.platform.all.swift"},"2":{name:"keyword.other.swift"},"3":{name:"invalid.illegal.character-not-allowed-here.swift"}},match:"(?:(\\*)|\\b(deprecated|unavailable|noasync)\\b)\\s*(.*?)(?=[,)])"}]},{begin:"((@)objc)(\\()",beginCaptures:{"1":{name:"storage.modifier.attribute.swift"},"2":{name:"punctuation.definition.attribute.swift"},"3":{name:"punctuation.definition.arguments.begin.swift"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.arguments.end.swift"}},name:"meta.attribute.objc.swift",patterns:[{captures:{"1":{name:"invalid.illegal.missing-colon-after-selector-piece.swift"}},match:"\\w*(?::(?:\\w*:)*(\\w*))?",name:"entity.name.function.swift"}]},{begin:"(@)(?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>)",beginCaptures:{"0":{name:"storage.modifier.attribute.swift"},"1":{name:"punctuation.definition.attribute.swift"},"2":{name:"punctuation.definition.identifier.swift"},"3":{name:"punctuation.definition.identifier.swift"}},comment:"any other attribute",end:"(?!\\G\\()",name:"meta.attribute.swift",patterns:[{begin:"\\(",beginCaptures:{"0":{name:"punctuation.definition.arguments.begin.swift"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.arguments.end.swift"}},name:"meta.arguments.attribute.swift",patterns:[{include:"#expressions"}]}]}]},"builtin-functions":{patterns:[{comment:"Member functions in the standard library in Swift 3 which may be used with trailing closures and no parentheses",match:"(?<=\\.)(?:s(?:ort(?:ed)?|plit)|contains|index|partition|f(?:i(?:lter|rst)|orEach|latMap)|with(?:MutableCharacters|CString|U(?:nsafe(?:Mutable(?:BufferPointer|Pointer(?:s|To(?:Header|Elements)))|BufferPointer)|TF8Buffer))|m(?:in|a(?:p|x)))(?=\\s*[({])\\b",name:"support.function.swift"},{comment:"Member functions in the standard library in Swift 3",match:"(?<=\\.)(?:s(?:ymmetricDifference|t(?:oreBytes|arts|ride)|ortInPlace|u(?:ccessor|ffix|btract(?:ing|InPlace|WithOverflow)?)|quareRoot|amePosition)|h(?:oldsUnique(?:Reference|OrPinnedReference)|as(?:Suffix|Prefix))|ne(?:gate(?:d)?|xt)|c(?:o(?:untByEnumerating|py(?:Bytes)?)|lamp(?:ed)?|reate)|t(?:o(?:IntMax|Opaque|UIntMax)|ake(?:RetainedValue|UnretainedValue)|r(?:uncatingRemainder|a(?:nscodedLength|ilSurrogate)))|i(?:s(?:MutableAndUniquelyReferenced(?:OrPinned)?|S(?:trictSu(?:perset(?:Of)?|bset(?:Of)?)|u(?:perset(?:Of)?|bset(?:Of)?))|Continuation|T(?:otallyOrdered|railSurrogate)|Disjoint(?:With)?|Unique(?:Reference|lyReferenced(?:OrPinned)?)|Equal|Le(?:ss(?:ThanOrEqualTo)?|adSurrogate))|n(?:sert(?:ContentsOf)?|tersect(?:ion|InPlace)?|itialize(?:Memory|From)?|dex(?:Of|ForKey)))|o(?:verlaps|bjectAt)|d(?:i(?:stance(?:To)?|vide(?:d|WithOverflow)?)|e(?:s(?:cendant|troy)|code(?:CString)?|initialize|alloc(?:ate(?:Capacity)?)?)|rop(?:First|Last))|u(?:n(?:ion(?:InPlace)?|derestimateCount|wrappedOrError)|p(?:date(?:Value)?|percased))|join(?:ed|WithSeparator)|p(?:op(?:First|Last)|ass(?:Retained|Unretained)|re(?:decessor|fix))|e(?:scape(?:d)?|n(?:code|umerate(?:d)?)|lementsEqual|xclusiveOr(?:InPlace)?)|f(?:orm(?:Remainder|S(?:ymmetricDifference|quareRoot)|TruncatingRemainder|In(?:tersection|dex)|Union)|latten|rom(?:CString(?:RepairingIllFormedUTF8)?|Opaque))|w(?:i(?:thMemoryRebound|dth)|rite(?:To)?)|l(?:o(?:wercased|ad)|e(?:adSurrogate|xicographical(?:Compare|lyPrecedes)))|a(?:ss(?:ign(?:BackwardFrom|From)?|umingMemoryBound)|d(?:d(?:ing(?:Product)?|Product|WithOverflow)?|vanced(?:By)?)|utorelease|ppend(?:ContentsOf)?|lloc(?:ate)?|bs)|r(?:ound(?:ed)?|e(?:serveCapacity|tain|duce|place(?:Range|Subrange)?|verse(?:d)?|quest(?:NativeBuffer|UniqueMutableBackingBuffer)|lease|m(?:ove(?:Range|Subrange|Value(?:ForKey)?|First|Last|A(?:tIndex|ll))?|ainder(?:WithOverflow)?)))|ge(?:nerate|t(?:Objects|Element))|m(?:in(?:imum(?:Magnitude)?|Element)|ove(?:Initialize(?:Memory|BackwardFrom|From)?|Assign(?:From)?)?|ultipl(?:y(?:WithOverflow)?|ied)|easure|a(?:ke(?:Iterator|Description)|x(?:imum(?:Magnitude)?|Element)))|bindMemory)(?=\\s*\\()",name:"support.function.swift"},{comment:"Member functions in the standard library in Swift 2 only",match:"(?<=\\.)(?:s(?:uperclassMirror|amePositionIn|tartsWith)|nextObject|c(?:haracterAtIndex|o(?:untByEnumeratingWithState|pyWithZone)|ustom(?:Mirror|PlaygroundQuickLook))|is(?:EmptyInput|ASCII)|object(?:Enumerator|ForKey|AtIndex)|join|put|keyEnumerator|withUnsafeMutablePointerToValue|length|getMirror|m(?:oveInitializeAssignFrom|ember))(?=\\s*\\()",name:"support.function.swift"}]},"builtin-global-functions":{patterns:[{begin:"\\b(type)(\\()\\s*(of)(:)",beginCaptures:{"1":{name:"support.function.dynamic-type.swift"},"2":{name:"punctuation.definition.arguments.begin.swift"},"3":{name:"support.variable.parameter.swift"},"4":{name:"punctuation.separator.argument-label.begin.swift"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.arguments.end.swift"}},patterns:[{include:"#expressions"}]},{comment:"Global functions available in Swift 3 which may be used with trailing closures and no parentheses",match:"\\b(?:anyGenerator|autoreleasepool)(?=\\s*[({])\\b",name:"support.function.swift"},{comment:"Global functions available in Swift 3",match:"\\b(?:s(?:tride(?:of(?:Value)?)?|izeof(?:Value)?|equence|wap)|numericCast|transcode|is(?:UniquelyReferenced(?:NonObjC)?|KnownUniquelyReferenced)|zip|d(?:ump|ebugPrint)|unsafe(?:BitCast|Downcast|Unwrap|Address(?:Of)?)|pr(?:int|econdition(?:Failure)?)|fatalError|with(?:Unsafe(?:MutablePointer|Pointer)|ExtendedLifetime|VaList)|a(?:ssert(?:ionFailure)?|lignof(?:Value)?|bs)|re(?:peatElement|adLine)|getVaList|m(?:in|ax))(?=\\s*\\()",name:"support.function.swift"},{comment:"Global functions available in Swift 2 only",match:"\\b(?:s(?:ort|uffix|pli(?:ce|t))|insert|overlaps|d(?:istance|rop(?:First|Last))|join|prefix|extend|withUnsafe(?:MutablePointers|Pointers)|lazy|advance|re(?:flect|move(?:Range|Last|A(?:tIndex|ll))))(?=\\s*\\()",name:"support.function.swift"}]},"builtin-properties":{patterns:[{comment:"The simpler (?<=\\bProcess\\.|\\bCommandLine\\.) breaks VS Code / Atom, see https://github.com/textmate/swift.tmbundle/issues/29",match:"(?<=^Process\\.|\\WProcess\\.|^CommandLine\\.|\\WCommandLine\\.)(arguments|argc|unsafeArgv)",name:"support.variable.swift"},{comment:"Properties in the standard library in Swift 3",match:"(?<=\\.)(?:s(?:t(?:artIndex|ri(?:ngValue|de))|i(?:ze|gn(?:BitIndex|ificand(?:Bit(?:Count|Pattern)|Width)?|alingNaN)?)|u(?:perclassMirror|mmary|bscriptBaseAddress))|h(?:eader|as(?:hValue|PointerRepresentation))|n(?:ulTerminatedUTF8|ext(?:Down|Up)|a(?:n|tiveOwner))|c(?:haracters|ount(?:TrailingZeros)?|ustom(?:Mirror|PlaygroundQuickLook)|apacity)|i(?:s(?:S(?:ign(?:Minus|aling(?:NaN)?)|ubnormal)|N(?:ormal|aN)|Canonical|Infinite|Zero|Empty|Finite|ASCII)|n(?:dices|finity)|dentity)|owner|de(?:scription|bugDescription)|u(?:n(?:safelyUnwrapped|icodeScalar(?:s)?|derestimatedCount)|tf(?:16|8(?:Start|C(?:String|odeUnitCount))?)|intValue|ppercaseString|lp(?:OfOne)?)|p(?:i|ointee)|e(?:ndIndex|lements|xponent(?:Bit(?:Count|Pattern))?)|value(?:s)?|keys|quietNaN|f(?:irst(?:ElementAddress(?:IfContiguous)?)?|loatingPointClass)|l(?:ittleEndian|owercaseString|eastNo(?:nzeroMagnitude|rmalMagnitude)|a(?:st|zy))|a(?:l(?:ignment|l(?:ocatedElementCount|Zeros))|rray(?:PropertyIsNativeTypeChecked)?)|ra(?:dix|wValue)|greatestFiniteMagnitude|m(?:in|emory|ax)|b(?:yteS(?:ize|wapped)|i(?:nade|tPattern|gEndian)|uffer|ase(?:Address)?))\\b",name:"support.variable.swift"},{comment:"Properties in the standard library in Swift 2 only",match:"(?<=\\.)(?:boolValue|disposition|end|objectIdentifier|quickLookObject|start|valueType)\\b",name:"support.variable.swift"},{comment:"Enum cases in the standard library - note that there is some overlap between these and the properties",match:"(?<=\\.)(?:s(?:calarValue|i(?:ze|gnalingNaN)|o(?:und|me)|uppressed|prite|et)|n(?:one|egative(?:Subnormal|Normal|Infinity|Zero))|c(?:ol(?:or|lection)|ustomized)|t(?:o(?:NearestOr(?:Even|AwayFromZero)|wardZero)|uple|ext)|i(?:nt|mage)|optional|d(?:ictionary|o(?:uble|wn))|u(?:Int|p|rl)|p(?:o(?:sitive(?:Subnormal|Normal|Infinity|Zero)|int)|lus)|e(?:rror|mptyInput)|view|quietNaN|float|a(?:ttributedString|wayFromZero)|r(?:ectangle|ange)|generated|minus|b(?:ool|ezierPath))\\b",name:"support.variable.swift"}]},"builtin-types":{comment:"Types provided in the standard library",patterns:[{include:"#builtin-class-type"},{include:"#builtin-enum-type"},{include:"#builtin-protocol-type"},{include:"#builtin-struct-type"},{include:"#builtin-typealias"},{match:"\\bAny\\b",name:"support.type.any.swift"}],repository:{"builtin-class-type":{comment:"Builtin class types",match:"\\b(Managed(Buffer|ProtoBuffer)|NonObjectiveCBase|AnyGenerator)\\b",name:"support.class.swift"},"builtin-enum-type":{patterns:[{comment:"CommandLine is an enum, but it acts like a constant",match:"\\b(?:CommandLine|Process(?=\\.))\\b",name:"support.constant.swift"},{comment:"The return type of a function that never returns",match:"\\bNever\\b",name:"support.constant.never.swift"},{comment:"Enum types in the standard library in Swift 3",match:"\\b(?:ImplicitlyUnwrappedOptional|Representation|MemoryLayout|FloatingPointClassification|SetIndexRepresentation|SetIteratorRepresentation|FloatingPointRoundingRule|UnicodeDecodingResult|Optional|DictionaryIndexRepresentation|AncestorRepresentation|DisplayStyle|PlaygroundQuickLook|Never|FloatingPointSign|Bit|DictionaryIteratorRepresentation)\\b",name:"support.type.swift"},{comment:"Enum types in the standard library in Swift 2 only",match:"\\b(?:MirrorDisposition|QuickLookObject)\\b",name:"support.type.swift"}]},"builtin-protocol-type":{patterns:[{comment:"Protocols in the standard library in Swift 3",match:"\\b(?:Ra(?:n(?:domAccess(?:Collection|Indexable)|geReplaceable(?:Collection|Indexable))|wRepresentable)|M(?:irrorPath|utable(?:Collection|Indexable))|Bi(?:naryFloatingPoint|twiseOperations|directional(?:Collection|Indexable))|S(?:tr(?:ideable|eamable)|igned(?:Number|Integer)|e(?:tAlgebra|quence))|Hashable|C(?:o(?:llection|mparable)|ustom(?:Reflectable|StringConvertible|DebugStringConvertible|PlaygroundQuickLookable|LeafReflectable)|VarArg)|TextOutputStream|I(?:n(?:teger(?:Arithmetic)?|dexable(?:Base)?)|teratorProtocol)|OptionSet|Un(?:signedInteger|icodeCodec)|E(?:quatable|rror|xpressibleBy(?:BooleanLiteral|String(?:Interpolation|Literal)|NilLiteral|IntegerLiteral|DictionaryLiteral|UnicodeScalarLiteral|ExtendedGraphemeClusterLiteral|FloatLiteral|ArrayLiteral))|FloatingPoint|L(?:osslessStringConvertible|azy(?:SequenceProtocol|CollectionProtocol))|A(?:nyObject|bsoluteValuable))\\b",name:"support.type.swift"},{comment:"Protocols in the standard library in Swift 2 only",match:"\\b(?:Ran(?:domAccessIndexType|geReplaceableCollectionType)|GeneratorType|M(?:irror(?:Type|PathType)|utable(?:Sliceable|CollectionType))|B(?:i(?:twiseOperationsType|directionalIndexType)|oolean(?:Type|LiteralConvertible))|S(?:tring(?:InterpolationConvertible|LiteralConvertible)|i(?:nkType|gned(?:NumberType|IntegerType))|e(?:tAlgebraType|quenceType)|liceable)|NilLiteralConvertible|C(?:ollectionType|VarArgType)|Inte(?:rvalType|ger(?:Type|LiteralConvertible|ArithmeticType))|O(?:utputStreamType|ptionSetType)|DictionaryLiteralConvertible|Un(?:signedIntegerType|icode(?:ScalarLiteralConvertible|CodecType))|E(?:rrorType|xten(?:sibleCollectionType|dedGraphemeClusterLiteralConvertible))|F(?:orwardIndexType|loat(?:ingPointType|LiteralConvertible))|A(?:nyCollectionType|rrayLiteralConvertible))\\b",name:"support.type.swift"}]},"builtin-struct-type":{patterns:[{comment:"Structs in the standard library in Swift 3",match:"\\b(?:R(?:e(?:peat(?:ed)?|versed(?:RandomAccess(?:Collection|Index)|Collection|Index))|an(?:domAccessSlice|ge(?:Replaceable(?:RandomAccessSlice|BidirectionalSlice|Slice)|Generator)?))|Generator(?:Sequence|OfOne)|M(?:irror|utable(?:Ran(?:domAccessSlice|geReplaceable(?:RandomAccessSlice|BidirectionalSlice|Slice))|BidirectionalSlice|Slice)|anagedBufferPointer)|B(?:idirectionalSlice|ool)|S(?:t(?:aticString|ri(?:ng|deT(?:hrough(?:Generator|Iterator)?|o(?:Generator|Iterator)?)))|et(?:I(?:ndex|terator))?|lice)|HalfOpenInterval|C(?:haracter(?:View)?|o(?:ntiguousArray|untable(?:Range|ClosedRange)|llectionOfOne)|OpaquePointer|losed(?:Range(?:I(?:ndex|terator))?|Interval)|VaListPointer)|I(?:n(?:t(?:16|8|32|64)?|d(?:ices|ex(?:ing(?:Generator|Iterator))?))|terator(?:Sequence|OverOne)?)|Zip2(?:Sequence|Iterator)|O(?:paquePointer|bjectIdentifier)|D(?:ictionary(?:I(?:ndex|terator)|Literal)?|ouble|efault(?:RandomAccessIndices|BidirectionalIndices|Indices))|U(?:n(?:safe(?:RawPointer|Mutable(?:RawPointer|BufferPointer|Pointer)|BufferPointer(?:Generator|Iterator)?|Pointer)|icodeScalar(?:View)?|foldSequence|managed)|TF(?:16(?:View)?|8(?:View)?|32)|Int(?:16|8|32|64)?)|Join(?:Generator|ed(?:Sequence|Iterator))|PermutationGenerator|E(?:numerate(?:Generator|Sequence|d(?:Sequence|Iterator))|mpty(?:Generator|Collection|Iterator))|Fl(?:oat(?:80)?|atten(?:Generator|BidirectionalCollection(?:Index)?|Sequence|Collection(?:Index)?|Iterator))|L(?:egacyChildren|azy(?:RandomAccessCollection|Map(?:RandomAccessCollection|Generator|BidirectionalCollection|Sequence|Collection|Iterator)|BidirectionalCollection|Sequence|Collection|Filter(?:Generator|BidirectionalCollection|Sequence|Collection|I(?:ndex|terator))))|A(?:ny(?:RandomAccessCollection|Generator|BidirectionalCollection|Sequence|Hashable|Collection|I(?:ndex|terator))|utoreleasingUnsafeMutablePointer|rray(?:Slice)?))\\b",name:"support.type.swift"},{comment:"Structs in the standard library in Swift 2 only",match:"\\b(?:R(?:everse(?:RandomAccess(?:Collection|Index)|Collection|Index)|awByte)|Map(?:Generator|Sequence|Collection)|S(?:inkOf|etGenerator)|Zip2Generator|DictionaryGenerator|Filter(?:Generator|Sequence|Collection(?:Index)?)|LazyForwardCollection|Any(?:RandomAccessIndex|BidirectionalIndex|Forward(?:Collection|Index)))\\b",name:"support.type.swift"}]},"builtin-typealias":{patterns:[{comment:"Typealiases in the standard library in Swift 3",match:"\\b(?:Raw(?:Significand|Exponent|Value)|B(?:ooleanLiteralType|uffer|ase)|S(?:t(?:orage|r(?:i(?:ngLiteralType|de)|eam(?:1|2)))|ubSequence)|NativeBuffer|C(?:hild(?:ren)?|Bool|S(?:hort|ignedChar)|odeUnit|Char(?:16|32)?|Int|Double|Unsigned(?:Short|Char|Int|Long(?:Long)?)|Float|WideChar|Long(?:Long)?)|I(?:n(?:t(?:Max|egerLiteralType)|d(?:ices|ex(?:Distance)?))|terator)|Distance|U(?:n(?:icodeScalar(?:Type|Index|View|LiteralType)|foldFirstSequence)|TF(?:16(?:Index|View)|8Index)|IntMax)|E(?:lement(?:s)?|x(?:tendedGraphemeCluster(?:Type|LiteralType)|ponent))|V(?:oid|alue)|Key|Float(?:32|LiteralType|64)|AnyClass)\\b",name:"support.type.swift"},{comment:"Typealiases in the standard library in Swift 2 only",match:"\\b(?:Generator|PlaygroundQuickLook|UWord|Word)\\b",name:"support.type.swift"}]}}},"code-block":{begin:"\\{",beginCaptures:{"0":{name:"punctuation.section.scope.begin.swift"}},end:"\\}",endCaptures:{"0":{name:"punctuation.section.scope.end.swift"}},patterns:[{include:"$self"}]},comments:{patterns:[{captures:{"1":{name:"punctuation.definition.comment.swift"}},match:"\\A^(#!).*$\\n?",name:"comment.line.number-sign.swift"},{begin:"/\\*\\*(?!/)",beginCaptures:{"0":{name:"punctuation.definition.comment.begin.swift"}},end:"\\*/",endCaptures:{"0":{name:"punctuation.definition.comment.end.swift"}},name:"comment.block.documentation.swift",patterns:[{include:"#nested"}]},{begin:"/\\*:",beginCaptures:{"0":{name:"punctuation.definition.comment.begin.swift"}},end:"\\*/",endCaptures:{"0":{name:"punctuation.definition.comment.end.swift"}},name:"comment.block.documentation.playground.swift",patterns:[{include:"#nested"}]},{begin:"/\\*",beginCaptures:{"0":{name:"punctuation.definition.comment.begin.swift"}},end:"\\*/",endCaptures:{"0":{name:"punctuation.definition.comment.end.swift"}},name:"comment.block.swift",patterns:[{include:"#nested"}]},{match:"\\*/",name:"invalid.illegal.unexpected-end-of-block-comment.swift"},{begin:"(^[ \\t]+)?(?=//)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.swift"}},end:"(?!\\G)",patterns:[{begin:"///",beginCaptures:{"0":{name:"punctuation.definition.comment.swift"}},end:"^",name:"comment.line.triple-slash.documentation.swift"},{begin:"//:",beginCaptures:{"0":{name:"punctuation.definition.comment.swift"}},end:"^",name:"comment.line.double-slash.documentation.swift"},{begin:"//",beginCaptures:{"0":{name:"punctuation.definition.comment.swift"}},end:"^",name:"comment.line.double-slash.swift"}]}],repository:{nested:{begin:"/\\*",end:"\\*/",patterns:[{include:"#nested"}]}}},"compiler-control":{patterns:[{begin:"^\\s*(#)(if|elseif)\\s+(false)\\b.*?(?=$|//|/\\*)",beginCaptures:{"0":{name:"meta.preprocessor.conditional.swift"},"1":{name:"punctuation.definition.preprocessor.swift"},"2":{name:"keyword.control.preprocessor.conditional.swift"},"3":{name:"constant.language.boolean.swift"}},contentName:"comment.block.preprocessor.swift",end:"(?=^\\s*(#(elseif|else|endif)\\b))"},{begin:"^\\s*(#)(if|elseif)\\s+",captures:{"1":{name:"punctuation.definition.preprocessor.swift"},"2":{name:"keyword.control.preprocessor.conditional.swift"}},end:"(?=\\s*(?://|/\\*))|$",name:"meta.preprocessor.conditional.swift",patterns:[{match:"(&&|\\|\\|)",name:"keyword.operator.logical.swift"},{match:"\\b(true|false)\\b",name:"constant.language.boolean.swift"},{captures:{"1":{name:"keyword.other.condition.swift"},"2":{name:"punctuation.definition.parameters.begin.swift"},"3":{name:"support.constant.platform.architecture.swift"},"4":{name:"punctuation.definition.parameters.end.swift"}},match:"\\b(arch)\\s*(\\()\\s*(?:(arm|arm64|powerpc64|powerpc64le|i386|x86_64|s390x)|\\w+)\\s*(\\))"},{captures:{"1":{name:"keyword.other.condition.swift"},"2":{name:"punctuation.definition.parameters.begin.swift"},"3":{name:"support.constant.platform.os.swift"},"4":{name:"punctuation.definition.parameters.end.swift"}},match:"\\b(os)\\s*(\\()\\s*(?:(macOS|OSX|iOS|tvOS|watchOS|Android|Linux|FreeBSD|Windows|PS4)|\\w+)\\s*(\\))"},{captures:{"1":{name:"keyword.other.condition.swift"},"2":{name:"punctuation.definition.parameters.begin.swift"},"3":{name:"entity.name.type.module.swift"},"4":{name:"punctuation.definition.parameters.end.swift"}},match:"\\b(canImport)\\s*(\\()([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)(\\))"},{begin:"\\b(targetEnvironment)\\s*(\\()",beginCaptures:{"1":{name:"keyword.other.condition.swift"},"2":{name:"punctuation.definition.parameters.begin.swift"}},end:"(\\))|$",endCaptures:{"1":{name:"punctuation.definition.parameters.end.swift"}},patterns:[{match:"\\b(simulator|UIKitForMac)\\b",name:"support.constant.platform.environment.swift"}]},{begin:"\\b(swift|compiler)\\s*(\\()",beginCaptures:{"1":{name:"keyword.other.condition.swift"},"2":{name:"punctuation.definition.parameters.begin.swift"}},end:"(\\))|$",endCaptures:{"1":{name:"punctuation.definition.parameters.end.swift"}},patterns:[{match:">=|<",name:"keyword.operator.comparison.swift"},{match:"\\b[0-9]+(?:\\.[0-9]+)*\\b",name:"constant.numeric.swift"}]}]},{captures:{"1":{name:"punctuation.definition.preprocessor.swift"},"2":{name:"keyword.control.preprocessor.conditional.swift"},"3":{patterns:[{match:"\\S+",name:"invalid.illegal.character-not-allowed-here.swift"}]}},match:"^\\s*(#)(else|endif)(.*?)(?=$|//|/\\*)",name:"meta.preprocessor.conditional.swift"},{captures:{"1":{name:"punctuation.definition.preprocessor.swift"},"2":{name:"keyword.control.preprocessor.sourcelocation.swift"},"4":{name:"punctuation.definition.parameters.begin.swift"},"5":{patterns:[{begin:"(file)\\s*(:)\\s*(?=\")",beginCaptures:{"1":{name:"support.variable.parameter.swift"},"2":{name:"punctuation.separator.key-value.swift"}},end:"(?!\\G)",patterns:[{include:"#literals"}]},{captures:{"1":{name:"support.variable.parameter.swift"},"2":{name:"punctuation.separator.key-value.swift"},"3":{name:"constant.numeric.integer.swift"}},match:"(line)\\s*(:)\\s*([0-9]+)"},{match:",",name:"punctuation.separator.parameters.swift"},{match:"\\S+",name:"invalid.illegal.character-not-allowed-here.swift"}]},"6":{name:"punctuation.definition.parameters.begin.swift"},"7":{patterns:[{match:"\\S+",name:"invalid.illegal.character-not-allowed-here.swift"}]}},match:"^\\s*(#)(sourceLocation)((\\()([^)]*)(\\)))(.*?)(?=$|//|/\\*)",name:"meta.preprocessor.sourcelocation.swift"}]},declarations:{patterns:[{include:"#function"},{include:"#function-initializer"},{include:"#typed-variable-declaration"},{include:"#import"},{include:"#operator"},{include:"#precedencegroup"},{include:"#protocol"},{include:"#type"},{include:"#extension"},{include:"#typealias"}],repository:{"available-types":{patterns:[{include:"#comments"},{include:"#builtin-types"},{include:"#attributes"},{match:"\\basync\\b",name:"keyword.control.async.swift"},{match:"\\b(?:throws|rethrows)\\b",name:"keyword.control.exception.swift"},{match:"\\bsome\\b",name:"keyword.operator.type.opaque.swift"},{match:"\\bany\\b",name:"keyword.operator.type.existential.swift"},{match:"\\b(?:inout|isolated)\\b",name:"storage.modifier.swift"},{match:"\\bSelf\\b",name:"variable.language.swift"},{captures:{"1":{name:"keyword.operator.type.function.swift"}},match:"(?<![/=\\-+!*%<>&|\\^~.])(->)(?![/=\\-+!*%<>&|\\^~.])"},{captures:{"1":{name:"keyword.operator.type.composition.swift"}},comment:"Swift 3: A & B",match:"(?<![/=\\-+!*%<>&|\\^~.])(&)(?![/=\\-+!*%<>&|\\^~.])"},{match:"[?!]",name:"keyword.operator.type.optional.swift"},{match:"\\.\\.\\.",name:"keyword.operator.function.variadic-parameter.swift"},{comment:"Swift 2: protocol<A, B>",match:"\\bprotocol\\b",name:"keyword.operator.type.composition.swift"},{match:"(?<=\\.)(?:Protocol|Type)\\b",name:"keyword.operator.type.metatype.swift"},{include:"#tuple-type"},{include:"#collection-type"},{include:"#generic-argument-clause"}],repository:{"collection-type":{begin:"\\[",beginCaptures:{"0":{name:"punctuation.section.collection-type.begin.swift"}},comment:"array and dictionary types [Value] and [Key: Value]",end:"\\]|(?=[>){}])",endCaptures:{"0":{name:"punctuation.section.collection-type.end.swift"}},patterns:[{include:"#available-types"},{begin:":",beginCaptures:{"0":{name:"punctuation.separator.key-value.swift"}},end:"(?=\\]|[>){}])",patterns:[{match:":",name:"invalid.illegal.extra-colon-in-dictionary-type.swift"},{include:"#available-types"}]}]},"tuple-type":{begin:"\\(",beginCaptures:{"0":{name:"punctuation.section.tuple-type.begin.swift"}},end:"\\)|(?=[>\\]{}])",endCaptures:{"0":{name:"punctuation.section.tuple-type.end.swift"}},patterns:[{include:"#available-types"}]}}},extension:{begin:"\\b(extension)\\s+((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))",beginCaptures:{"1":{name:"storage.type.$1.swift"},"2":{name:"entity.name.type.swift",patterns:[{include:"#available-types"}]},"3":{name:"punctuation.definition.identifier.swift"},"4":{name:"punctuation.definition.identifier.swift"}},end:"(?<=\\})",name:"meta.definition.type.$1.swift",patterns:[{include:"#comments"},{comment:"SE-0143: Conditional Conformances",include:"#generic-where-clause"},{include:"#inheritance-clause"},{begin:"\\{",beginCaptures:{"0":{name:"punctuation.definition.type.begin.swift"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.type.end.swift"}},name:"meta.definition.type.body.swift",patterns:[{include:"$self"}]}]},"function":{begin:"(?x)\n\t\t\t\t\t\t\\b\n\t\t\t\t\t\t(?:(nonisolated)\\s+)?\n\t\t\t\t\t\t(func)\n\t\t\t\t\t\t\\s+\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t(?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>)\n\t\t\t\t\t\t | (?:\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?<oph>\t\t\t\t\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t\t[/=\\-+!*%<>&|^~?]\n\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\\g<oph>\n\t\t\t\t\t\t\t\t\t | (?<opc>\t\t\t\t\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t\t\t[\\x{0300}-\\x{036F}]\n\t\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t)*\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t | ( \\. ( \\g<oph> | \\g<opc> | \\. )+ )\t\t\t# Dot operators\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\\s*\n\t\t\t\t\t\t(?=\\(|<)\n\t\t\t\t\t",beginCaptures:{"1":{name:"storage.modifier.swift"},"2":{name:"storage.type.function.swift"},"3":{name:"entity.name.function.swift"},"4":{name:"punctuation.definition.identifier.swift"},"5":{name:"punctuation.definition.identifier.swift"}},end:"(?<=\\})|$(?# functions in protocol declarations or generated interfaces have no body)",name:"meta.definition.function.swift",patterns:[{include:"#comments"},{include:"#generic-parameter-clause"},{include:"#parameter-clause"},{include:"#function-result"},{include:"#async-throws"},{comment:"Swift 3: generic constraints after the parameters and return type",include:"#generic-where-clause"},{begin:"(\\{)",beginCaptures:{"1":{name:"punctuation.section.function.begin.swift"}},end:"(\\})",endCaptures:{"1":{name:"punctuation.section.function.end.swift"}},name:"meta.definition.function.body.swift",patterns:[{include:"$self"}]}]},"function-initializer":{begin:"(?<!\\.)\\b(init[?!]*(?# only one is valid, but we want the in⇥ snippet to produce something that looks good))\\s*(?=\\(|<)",beginCaptures:{"1":{name:"storage.type.function.swift",patterns:[{match:"(?<=[?!])[?!]+",name:"invalid.illegal.character-not-allowed-here.swift"}]}},end:"(?<=\\})|$",name:"meta.definition.function.initializer.swift",patterns:[{include:"#comments"},{include:"#generic-parameter-clause"},{include:"#parameter-clause"},{include:"#async-throws"},{comment:"Swift 3: generic constraints after the parameters and return type",include:"#generic-where-clause"},{begin:"(\\{)",beginCaptures:{"1":{name:"punctuation.section.function.begin.swift"}},end:"(\\})",endCaptures:{"1":{name:"punctuation.section.function.end.swift"}},name:"meta.definition.function.body.swift",patterns:[{include:"$self"}]}]},"function-result":{begin:"(?<![/=\\-+!*%<>&|\\^~.])(->)(?![/=\\-+!*%<>&|\\^~.])\\s*",beginCaptures:{"1":{name:"keyword.operator.function-result.swift"}},end:"(?!\\G)(?=\\{|\\bwhere\\b|;)|$",name:"meta.function-result.swift",patterns:[{include:"#available-types"}]},"generic-argument-clause":{begin:"<",beginCaptures:{"0":{name:"punctuation.separator.generic-argument-clause.begin.swift"}},end:">|(?=[)\\]{}])",endCaptures:{"0":{name:"punctuation.separator.generic-argument-clause.end.swift"}},name:"meta.generic-argument-clause.swift",patterns:[{include:"#available-types"}]},"generic-parameter-clause":{begin:"<",beginCaptures:{"0":{name:"punctuation.separator.generic-parameter-clause.begin.swift"}},end:">|(?=[^\\w\\d:<>\\s,=&`])(?# characters besides these are never valid in a generic param list -- even if it's not really a valid clause, we should stop trying to parse it if we see one of them.)",endCaptures:{"0":{name:"punctuation.separator.generic-parameter-clause.end.swift"}},name:"meta.generic-parameter-clause.swift",patterns:[{include:"#comments"},{comment:"Swift 2: constraints inside the generic param list",include:"#generic-where-clause"},{captures:{"1":{name:"variable.language.generic-parameter.swift"}},match:"\\b((?!\\d)\\w[\\w\\d]*)\\b"},{match:",",name:"punctuation.separator.generic-parameters.swift"},{begin:"(:)\\s*",beginCaptures:{"1":{name:"punctuation.separator.generic-parameter-constraint.swift"}},end:"(?=[,>]|(?!\\G)\\bwhere\\b)",name:"meta.generic-parameter-constraint.swift",patterns:[{begin:"\\G",end:"(?=[,>]|(?!\\G)\\bwhere\\b)",name:"entity.other.inherited-class.swift",patterns:[{include:"#type-identifier"}]}]}]},"generic-where-clause":{begin:"\\b(where)\\b\\s*",beginCaptures:{"1":{name:"keyword.other.generic-constraint-introducer.swift"}},end:"(?!\\G)$|(?=[>{};\\n]|//|/\\*)",name:"meta.generic-where-clause.swift",patterns:[{include:"#comments"},{include:"#requirement-list"}],repository:{"requirement-list":{begin:"\\G|,\\s*",end:"(?=[,>{};\\n]|//|/\\*)",patterns:[{include:"#comments"},{include:"#constraint"},{include:"#available-types"},{begin:"(?<![/=\\-+!*%<>&|\\^~.])(==)(?![/=\\-+!*%<>&|\\^~.])",beginCaptures:{"1":{name:"keyword.operator.generic-constraint.same-type.swift"}},end:"(?=\\s*[,>{};\\n]|//|/\\*)",name:"meta.generic-where-clause.same-type-requirement.swift",patterns:[{include:"#available-types"}]},{begin:"(?<![/=\\-+!*%<>&|\\^~.])(:)(?![/=\\-+!*%<>&|\\^~.])",beginCaptures:{"1":{name:"keyword.operator.generic-constraint.conforms-to.swift"}},end:"(?=\\s*[,>{};\\n]|//|/\\*)",name:"meta.generic-where-clause.conformance-requirement.swift",patterns:[{begin:"\\G\\s*",contentName:"entity.other.inherited-class.swift",end:"(?=\\s*[,>{};\\n]|//|/\\*)",patterns:[{include:"#available-types"}]}]}]}}},"import":{begin:"(?<!\\.)\\b(import)\\s+",beginCaptures:{"1":{name:"keyword.control.import.swift"}},end:"(;)|$\\n?|(?=//|/\\*)",endCaptures:{"1":{name:"punctuation.terminator.statement.swift"}},name:"meta.import.swift",patterns:[{begin:"\\G(?!;|$|//|/\\*)(?:(typealias|struct|class|actor|enum|protocol|var|func)\\s+)?",beginCaptures:{"1":{name:"storage.modifier.swift"}},end:"(?=;|$|//|/\\*)",patterns:[{captures:{"1":{name:"punctuation.definition.identifier.swift"},"2":{name:"punctuation.definition.identifier.swift"}},match:"(?x)\n\t\t\t\t\t\t\t\t\t\t(?<=\\G|\\.)\n\t\t\t\t\t\t\t\t\t\t(?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>)\n\t\t\t\t\t\t\t\t\t",name:"entity.name.type.swift"},{match:"(?x)\n\t\t\t\t\t\t\t\t\t\t(?<=\\G|\\.)\n\t\t\t\t\t\t\t\t\t\t\\$[0-9]+\n\t\t\t\t\t\t\t\t\t",name:"entity.name.type.swift"},{captures:{"1":{patterns:[{match:"\\.",name:"invalid.illegal.dot-not-allowed-here.swift"}]}},match:"(?x)\n\t\t\t\t\t\t\t\t\t\t(?<=\\G|\\.)\n\t\t\t\t\t\t\t\t\t\t(?:\n\t\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t\t(?<oph>\t\t\t\t\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t\t\t\t\t[/=\\-+!*%<>&|^~?]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\\g<oph>\n\t\t\t\t\t\t\t\t\t\t\t\t | (?<opc>\t\t\t\t\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\\x{0300}-\\x{036F}]\n\t\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t)*\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t | ( \\. ( \\g<oph> | \\g<opc> | \\. )+ )\t\t\t# Dot operators\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t(?=\\.|;|$|//|/\\*|\\s)\n\t\t\t\t\t\t\t\t\t",name:"entity.name.type.swift"},{match:"\\.",name:"punctuation.separator.import.swift"},{begin:"(?!\\s*(;|$|//|/\\*))",end:"(?=\\s*(;|$|//|/\\*))",name:"invalid.illegal.character-not-allowed-here.swift"}]}]},"inheritance-clause":{begin:"(:)(?=\\s*\\{)|(:)\\s*",beginCaptures:{"1":{name:"invalid.illegal.empty-inheritance-clause.swift"},"2":{name:"punctuation.separator.inheritance-clause.swift"}},end:"(?!\\G)$|(?=[={}]|(?!\\G)\\bwhere\\b)",name:"meta.inheritance-clause.swift",patterns:[{begin:"\\bclass\\b",beginCaptures:{"0":{name:"storage.type.class.swift"}},end:"(?=[={}]|(?!\\G)\\bwhere\\b)",patterns:[{include:"#comments"},{include:"#more-types"}]},{begin:"\\G",end:"(?!\\G)$|(?=[={}]|(?!\\G)\\bwhere\\b)",patterns:[{include:"#comments"},{include:"#inherited-type"},{include:"#more-types"}]}],repository:{"inherited-type":{begin:"(?=[`\\p{L}_])",end:"(?!\\G)",name:"entity.other.inherited-class.swift",patterns:[{include:"#type-identifier"}]},"more-types":{begin:",\\s*",end:"(?!\\G)(?!//|/\\*)|(?=[,={}]|(?!\\G)\\bwhere\\b)",name:"meta.inheritance-list.more-types",patterns:[{include:"#comments"},{include:"#inherited-type"},{include:"#more-types"}]}}},operator:{begin:"(?x)\n\t\t\t\t\t\t(?:\n\t\t\t\t\t\t\t\\b(prefix|infix|postfix)\n\t\t\t\t\t\t\t\\s+\n\t\t\t\t\t\t)?\n\t\t\t\t\t\t\\b\n\t\t\t\t\t\t(operator)\n\t\t\t\t\t\t\\s+\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t(?<oph>\t\t\t\t\t\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t[/=\\-+!*%<>&|^~?]\n\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\\g<oph>\n\t\t\t\t\t\t\t\t | \\.\t\t\t\t\t\t\t\t\t# Invalid dot\n\t\t\t\t\t\t\t\t | (?<opc>\t\t\t\t\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t\t[\\x{0300}-\\x{036F}]\n\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)*+\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t | ( \\. ( \\g<oph> | \\g<opc> | \\. )++ )\t\t\t# Dot operators\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\\s*\n\t\t\t\t\t",beginCaptures:{"1":{name:"storage.modifier.swift"},"2":{name:"storage.type.function.operator.swift"},"3":{name:"entity.name.function.operator.swift"},"4":{patterns:[{match:"\\.",name:"invalid.illegal.dot-not-allowed-here.swift"}]}},end:"(;)|$\\n?|(?=//|/\\*)",endCaptures:{"1":{name:"punctuation.terminator.statement.swift"}},name:"meta.definition.operator.swift",patterns:[{include:"#swift2"},{include:"#swift3"},{match:"((?!$|;|//|/\\*)\\S)+",name:"invalid.illegal.character-not-allowed-here.swift"}],repository:{swift2:{begin:"\\G(\\{)",beginCaptures:{"1":{name:"punctuation.definition.operator.begin.swift"}},end:"(\\})",endCaptures:{"1":{name:"punctuation.definition.operator.end.swift"}},patterns:[{include:"#comments"},{captures:{"1":{name:"storage.modifier.swift"},"2":{name:"keyword.other.operator.associativity.swift"}},match:"\\b(associativity)\\s+(left|right)\\b"},{captures:{"1":{name:"storage.modifier.swift"},"2":{name:"constant.numeric.integer.swift"}},match:"\\b(precedence)\\s+([0-9]+)\\b"},{captures:{"1":{name:"storage.modifier.swift"}},match:"\\b(assignment)\\b"}]},swift3:{captures:{"2":{name:"entity.other.inherited-class.swift",patterns:[{include:"#types-precedencegroup"}]},"3":{name:"punctuation.definition.identifier.swift"},"4":{name:"punctuation.definition.identifier.swift"}},match:"\\G(:)\\s*((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))"}}},"parameter-clause":{begin:"(\\()",beginCaptures:{"1":{name:"punctuation.definition.parameters.begin.swift"}},end:"(\\))(?:\\s*(async)\\b)?",endCaptures:{"1":{name:"punctuation.definition.parameters.end.swift"},"2":{name:"keyword.control.async.swift"}},name:"meta.parameter-clause.swift",patterns:[{include:"#parameter-list"}]},"parameter-list":{patterns:[{captures:{"1":{name:"entity.name.function.swift"},"2":{name:"punctuation.definition.identifier.swift"},"3":{name:"punctuation.definition.identifier.swift"},"4":{name:"variable.parameter.function.swift"},"5":{name:"punctuation.definition.identifier.swift"},"6":{name:"punctuation.definition.identifier.swift"}},comment:"External parameter labels are considered part of the function name",match:"((?<q1>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q1>))\\s+((?<q2>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q2>))(?=\\s*:)"},{captures:{"1":{name:"variable.parameter.function.swift"},"2":{name:"entity.name.function.swift"},"3":{name:"punctuation.definition.identifier.swift"},"4":{name:"punctuation.definition.identifier.swift"}},comment:"If no external label is given, the name is both the external label and the internal variable name",match:"(((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>)))(?=\\s*:)"},{begin:":\\s*(?!\\s)",end:"(?=[,)])",patterns:[{include:"#available-types"},{match:":",name:"invalid.illegal.extra-colon-in-parameter-list.swift"},{begin:"=",beginCaptures:{"0":{name:"keyword.operator.assignment.swift"}},comment:"a parameter's default value",end:"(?=[,)])",patterns:[{include:"#expressions"}]}]}]},precedencegroup:{begin:"\\b(precedencegroup)\\s+((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))\\s*(?=\\{)",beginCaptures:{"1":{name:"storage.type.precedencegroup.swift"},"2":{name:"entity.name.type.precedencegroup.swift"},"3":{name:"punctuation.definition.identifier.swift"},"4":{name:"punctuation.definition.identifier.swift"}},end:"(?!\\G)",name:"meta.definition.precedencegroup.swift",patterns:[{begin:"\\{",beginCaptures:{"0":{name:"punctuation.definition.precedencegroup.begin.swift"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.precedencegroup.end.swift"}},patterns:[{include:"#comments"},{captures:{"1":{name:"storage.modifier.swift"},"2":{name:"entity.other.inherited-class.swift",patterns:[{include:"#types-precedencegroup"}]},"3":{name:"punctuation.definition.identifier.swift"},"4":{name:"punctuation.definition.identifier.swift"}},match:"\\b(higherThan|lowerThan)\\s*:\\s*((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))"},{captures:{"1":{name:"storage.modifier.swift"},"2":{name:"keyword.other.operator.associativity.swift"}},match:"\\b(associativity)\\b(?:\\s*:\\s*(right|left|none)\\b)?"},{captures:{"1":{name:"storage.modifier.swift"},"2":{name:"constant.language.boolean.swift"}},match:"\\b(assignment)\\b(?:\\s*:\\s*(true|false)\\b)?"}]}]},protocol:{begin:"\\b(protocol)\\s+((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))",beginCaptures:{"1":{name:"storage.type.$1.swift"},"2":{name:"entity.name.type.$1.swift"},"3":{name:"punctuation.definition.identifier.swift"},"4":{name:"punctuation.definition.identifier.swift"}},end:"(?<=\\})",name:"meta.definition.type.protocol.swift",patterns:[{include:"#comments"},{include:"#inheritance-clause"},{comment:"SE-0142: Permit where clauses to constrain associated types",include:"#generic-where-clause"},{begin:"\\{",beginCaptures:{"0":{name:"punctuation.definition.type.begin.swift"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.type.end.swift"}},name:"meta.definition.type.body.swift",patterns:[{include:"#protocol-method"},{include:"#protocol-initializer"},{include:"#associated-type"},{include:"$self"}]}],repository:{"associated-type":{begin:"\\b(associatedtype)\\s+((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))\\s*",beginCaptures:{"1":{name:"keyword.other.declaration-specifier.swift"},"2":{name:"variable.language.associatedtype.swift"},"3":{name:"punctuation.definition.identifier.swift"},"4":{name:"punctuation.definition.identifier.swift"}},end:"(?!\\G)$|(?=[;}]|$)",name:"meta.definition.associatedtype.swift",patterns:[{include:"#inheritance-clause"},{comment:"SE-0142: Permit where clauses to constrain associated types",include:"#generic-where-clause"},{include:"#typealias-assignment"}]},"protocol-initializer":{begin:"(?<!\\.)\\b(init[?!]*(?# only one is valid, but we want the in⇥ snippet to produce something that looks good))\\s*(?=\\(|<)",beginCaptures:{"1":{name:"storage.type.function.swift",patterns:[{match:"(?<=[?!])[?!]+",name:"invalid.illegal.character-not-allowed-here.swift"}]}},end:"$|(?=;|//|/\\*|\\})",name:"meta.definition.function.initializer.swift",patterns:[{include:"#comments"},{include:"#generic-parameter-clause"},{include:"#parameter-clause"},{include:"#async-throws"},{comment:"Swift 3: generic constraints after the parameters and return type",include:"#generic-where-clause"},{begin:"\\{",beginCaptures:{"0":{name:"punctuation.section.function.begin.swift"}},end:"\\}",endCaptures:{"0":{name:"punctuation.section.function.end.swift"}},name:"invalid.illegal.function-body-not-allowed-in-protocol.swift",patterns:[{include:"$self"}]}]},"protocol-method":{begin:"(?x)\n\t\t\t\t\t\t\t\t\\b\n\t\t\t\t\t\t\t\t(func)\n\t\t\t\t\t\t\t\t\\s+\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>)\n\t\t \t\t\t\t\t\t | (?:\n\t\t \t\t\t\t\t\t\t\t(\n\t\t \t\t\t\t\t\t\t\t\t(?<oph>\t\t\t\t\t\t\t\t# operator-head\n\t\t \t\t\t\t\t\t\t\t\t\t[/=\\-+!*%<>&|^~?]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t \t\t\t\t\t\t\t\t\t)\n\t\t \t\t\t\t\t\t\t\t\t(\n\t\t \t\t\t\t\t\t\t\t\t\t\\g<oph>\n\t\t \t\t\t\t\t\t\t\t\t | (?<opc>\t\t\t\t\t\t\t\t# operator-character\n\t\t \t\t\t\t\t\t\t\t\t\t\t[\\x{0300}-\\x{036F}]\n\t\t \t\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t \t\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t \t\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t \t\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t \t\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t \t\t\t\t\t\t\t\t\t\t)\n\t\t \t\t\t\t\t\t\t\t\t)*\n\t\t \t\t\t\t\t\t\t\t)\n\t\t \t\t\t\t\t\t\t | ( \\. ( \\g<oph> | \\g<opc> | \\. )+ )\t\t\t# Dot operators\n\t\t \t\t\t\t\t\t\t)\n\t\t \t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\\s*\n\t\t\t\t\t\t\t\t(?=\\(|<)\n\t\t\t\t\t\t\t",beginCaptures:{"1":{name:"storage.type.function.swift"},"2":{name:"entity.name.function.swift"},"3":{name:"punctuation.definition.identifier.swift"},"4":{name:"punctuation.definition.identifier.swift"}},end:"$|(?=;|//|/\\*|\\})",name:"meta.definition.function.swift",patterns:[{include:"#comments"},{include:"#generic-parameter-clause"},{include:"#parameter-clause"},{include:"#function-result"},{include:"#async-throws"},{comment:"Swift 3: generic constraints after the parameters and return type",include:"#generic-where-clause"},{begin:"\\{",beginCaptures:{"0":{name:"punctuation.section.function.begin.swift"}},end:"\\}",endCaptures:{"0":{name:"punctuation.section.function.end.swift"}},name:"invalid.illegal.function-body-not-allowed-in-protocol.swift",patterns:[{include:"$self"}]}]}}},type:{patterns:[{begin:"\\b(class(?!\\s+(?:func|var|let)\\b)|struct|actor)\\s+((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))",beginCaptures:{"1":{name:"storage.type.$1.swift"},"2":{name:"entity.name.type.$1.swift"},"3":{name:"punctuation.definition.identifier.swift"},"4":{name:"punctuation.definition.identifier.swift"}},end:"(?<=\\})",name:"meta.definition.type.$1.swift",patterns:[{include:"#comments"},{include:"#generic-parameter-clause"},{comment:"Swift 3: generic constraints after the generic param list",include:"#generic-where-clause"},{include:"#inheritance-clause"},{begin:"\\{",beginCaptures:{"0":{name:"punctuation.definition.type.begin.swift"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.type.end.swift"}},name:"meta.definition.type.body.swift",patterns:[{include:"$self"}]}]},{include:"#type-enum"}]},"type-enum":{begin:"\\b(enum)\\s+((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))",beginCaptures:{"1":{name:"storage.type.$1.swift"},"2":{name:"entity.name.type.$1.swift"},"3":{name:"punctuation.definition.identifier.swift"},"4":{name:"punctuation.definition.identifier.swift"}},end:"(?<=\\})",name:"meta.definition.type.$1.swift",patterns:[{include:"#comments"},{include:"#generic-parameter-clause"},{comment:"Swift 3: generic constraints after the generic param list",include:"#generic-where-clause"},{include:"#inheritance-clause"},{begin:"\\{",beginCaptures:{"0":{name:"punctuation.definition.type.begin.swift"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.type.end.swift"}},name:"meta.definition.type.body.swift",patterns:[{include:"#enum-case-clause"},{include:"$self"}]}],repository:{"associated-values":{begin:"\\G\\(",beginCaptures:{"0":{name:"punctuation.definition.parameters.begin.swift"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.parameters.end.swift"}},patterns:[{include:"#comments"},{begin:"(?x)\n\t\t\t\t\t\t\t\t\t\t(?:(_)|((?<q1>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*\\k<q1>))\n\t\t\t\t\t\t\t\t\t\t\\s+\n\t\t\t\t\t\t\t\t\t\t(((?<q2>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*\\k<q2>))\n\t\t\t\t\t\t\t\t\t\t\\s*(:)",beginCaptures:{"1":{name:"entity.name.function.swift"},"2":{name:"invalid.illegal.distinct-labels-not-allowed.swift"},"5":{name:"variable.parameter.function.swift"},"7":{name:"punctuation.separator.argument-label.swift"}},end:"(?=[,)\\]])",patterns:[{include:"#available-types"}]},{begin:"(((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*\\k<q>))\\s*(:)",beginCaptures:{"1":{name:"entity.name.function.swift"},"2":{name:"variable.parameter.function.swift"},"4":{name:"punctuation.separator.argument-label.swift"}},end:"(?=[,)\\]])",patterns:[{include:"#available-types"}]},{begin:"(?![,)\\]])(?=\\S)",comment:"an element without a label (i.e. anything else)",end:"(?=[,)\\]])",patterns:[{include:"#available-types"},{match:":",name:"invalid.illegal.extra-colon-in-parameter-list.swift"}]}]},"enum-case":{begin:"(?x)((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))\\s*",beginCaptures:{"1":{name:"constant.other.swift"}},end:"(?<=\\))|(?![=(])",patterns:[{include:"#comments"},{include:"#associated-values"},{include:"#raw-value-assignment"}]},"enum-case-clause":{begin:"\\b(case)\\b\\s*",beginCaptures:{"1":{name:"storage.type.enum.case.swift"}},end:"(?=[;}])|(?!\\G)(?!//|/\\*)(?=[^\\s,])",patterns:[{include:"#comments"},{include:"#enum-case"},{include:"#more-cases"}]},"more-cases":{begin:",\\s*",end:"(?!\\G)(?!//|/\\*)(?=[;}]|[^\\s,])",name:"meta.enum-case.more-cases",patterns:[{include:"#comments"},{include:"#enum-case"},{include:"#more-cases"}]},"raw-value-assignment":{begin:"(=)\\s*",beginCaptures:{"1":{name:"keyword.operator.assignment.swift"}},end:"(?!\\G)",patterns:[{include:"#comments"},{include:"#literals"}]}}},"type-identifier":{begin:"((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))\\s*",beginCaptures:{"1":{name:"meta.type-name.swift",patterns:[{include:"#builtin-types"}]},"2":{name:"punctuation.definition.identifier.swift"},"3":{name:"punctuation.definition.identifier.swift"}},end:"(?!<)",patterns:[{begin:"(?=<)",end:"(?!\\G)",patterns:[{include:"#generic-argument-clause"}]}]},typealias:{begin:"\\b(typealias)\\s+((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))\\s*",beginCaptures:{"1":{name:"keyword.other.declaration-specifier.swift"},"2":{name:"entity.name.type.typealias.swift"},"3":{name:"punctuation.definition.identifier.swift"},"4":{name:"punctuation.definition.identifier.swift"}},end:"(?!\\G)$|(?=;|//|/\\*|$)",name:"meta.definition.typealias.swift",patterns:[{begin:"\\G(?=<)",end:"(?!\\G)",patterns:[{include:"#generic-parameter-clause"}]},{include:"#typealias-assignment"}]},"typealias-assignment":{begin:"(=)\\s*",beginCaptures:{"1":{name:"keyword.operator.assignment.swift"}},end:"(?!\\G)$|(?=;|//|/\\*|$)",patterns:[{include:"#available-types"}]},"typed-variable-declaration":{begin:"(?x)\n\t\t\t\t\t\t\\b(?:(async)\\s+)?(let|var)\\b\\s+\n\t\t\t\t\t\t(?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>)\\s*\n\t\t\t\t\t\t:\n\t\t\t\t\t",beginCaptures:{"1":{name:"keyword.control.async.swift"},"2":{name:"keyword.other.declaration-specifier.swift"}},end:"(?=$|[={])",patterns:[{include:"#available-types"}]},"types-precedencegroup":{patterns:[{comment:"Precedence groups in the standard library",match:"\\b(?:BitwiseShift|Assignment|RangeFormation|Casting|Addition|NilCoalescing|Comparison|LogicalConjunction|LogicalDisjunction|Default|Ternary|Multiplication|FunctionArrow)Precedence\\b",name:"support.type.swift"}]}}},expressions:{patterns:[{include:"#comments"},{include:"#code-block"},{include:"#attributes"},{include:"#closure-parameter"},{include:"#literals"},{include:"#operators"},{include:"#builtin-types"},{include:"#builtin-functions"},{include:"#builtin-global-functions"},{include:"#builtin-properties"},{include:"#compound-name"},{include:"#keywords"},{include:"#function-call-expression"},{include:"#subscript-expression"},{include:"#parenthesized-expression"},{include:"#member-reference"},{include:"#availability-condition"},{match:"\\b_\\b",name:"support.variable.discard-value.swift"}],repository:{"availability-condition":{begin:"\\B(#(?:un)?available)(\\()",beginCaptures:{"1":{name:"support.function.availability-condition.swift"},"2":{name:"punctuation.definition.arguments.begin.swift"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.arguments.end.swift"}},patterns:[{captures:{"1":{name:"keyword.other.platform.os.swift"},"2":{name:"constant.numeric.swift"}},match:"\\s*\\b((?:iOS|macOS|OSX|watchOS|tvOS|UIKitForMac)(?:ApplicationExtension)?)\\b(?:\\s+([0-9]+(?:\\.[0-9]+)*\\b))"},{captures:{"1":{name:"keyword.other.platform.all.swift"},"2":{name:"invalid.illegal.character-not-allowed-here.swift"}},match:"(\\*)\\s*(.*?)(?=[,)])"},{match:"[^\\s,)]+",name:"invalid.illegal.character-not-allowed-here.swift"}]},"closure-parameter":{match:"\\$[0-9]+",name:"variable.language.closure-parameter.swift"},"compound-name":{captures:{"1":{name:"entity.name.function.compound-name.swift"},"2":{name:"punctuation.definition.entity.swift"},"3":{name:"punctuation.definition.entity.swift"},"4":{patterns:[{captures:{"1":{name:"punctuation.definition.entity.swift"},"2":{name:"punctuation.definition.entity.swift"}},match:"(?<q>`?)(?!_:)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>):",name:"entity.name.function.compound-name.swift"}]}},comment:"a reference to a function with disambiguating argument labels, such as foo(_:), foo(bar:), etc.",match:"(?x)\n\t\t\t\t\t\t((?<q1>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q1>)) \t\t# function name\n\t\t\t\t\t\t\\(\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t((?<q2>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q2>)) \t# argument label\n\t\t\t\t\t\t\t\t\t:\t\t\t\t\t\t\t\t\t\t\t\t# colon\n\t\t\t\t\t\t\t\t)+\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\\)\n\t\t\t\t\t"},"expression-element-list":{patterns:[{include:"#comments"},{begin:"((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))\\s*(:)",beginCaptures:{"1":{name:"support.function.any-method.swift"},"2":{name:"punctuation.definition.identifier.swift"},"3":{name:"punctuation.definition.identifier.swift"},"4":{name:"punctuation.separator.argument-label.swift"}},comment:"an element with a label",end:"(?=[,)\\]])",patterns:[{include:"#expressions"}]},{begin:"(?![,)\\]])(?=\\S)",comment:"an element without a label (i.e. anything else)",end:"(?=[,)\\]])",patterns:[{include:"#expressions"}]}]},"function-call-expression":{patterns:[{begin:"((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))\\s*(\\()",beginCaptures:{"1":{name:"support.function.any-method.swift"},"2":{name:"punctuation.definition.identifier.swift"},"3":{name:"punctuation.definition.identifier.swift"},"4":{name:"punctuation.definition.arguments.begin.swift"}},comment:"foo(args) -- a call whose callee is a highlightable name",end:"\\)",endCaptures:{"0":{name:"punctuation.definition.arguments.end.swift"}},name:"meta.function-call.swift",patterns:[{include:"#expression-element-list"}]},{begin:"(?<=[`\\])}>\\p{L}_\\p{N}\\p{M}])\\s*(\\()",beginCaptures:{"1":{name:"punctuation.definition.arguments.begin.swift"}},comment:"[Int](args) -- a call whose callee is a more complicated expression",end:"\\)",endCaptures:{"0":{name:"punctuation.definition.arguments.end.swift"}},name:"meta.function-call.swift",patterns:[{include:"#expression-element-list"}]}]},"member-reference":{patterns:[{captures:{"1":{name:"variable.other.swift"},"2":{name:"punctuation.definition.identifier.swift"},"3":{name:"punctuation.definition.identifier.swift"}},match:"(?<=\\.)((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))"}]},"parenthesized-expression":{begin:"\\(",beginCaptures:{"0":{name:"punctuation.section.tuple.begin.swift"}},comment:"correctly matching closure expressions is too hard (depends on trailing \"in\") so we just tack on some basics to the end of parenthesized-expression",end:"(\\))\\s*((?:\\b(?:async|throws|rethrows)\\s)*)",endCaptures:{"1":{name:"punctuation.section.tuple.end.swift"},"2":{patterns:[{match:"\\brethrows\\b",name:"invalid.illegal.rethrows-only-allowed-on-function-declarations.swift"},{include:"#async-throws"}]}},patterns:[{include:"#expression-element-list"}]},"subscript-expression":{begin:"(?<=[`\\p{L}_\\p{N}\\p{M}])\\s*(\\[)",beginCaptures:{"1":{name:"punctuation.definition.arguments.begin.swift"}},end:"\\]",endCaptures:{"0":{name:"punctuation.definition.arguments.end.swift"}},name:"meta.subscript-expression.swift",patterns:[{include:"#expression-element-list"}]}}},keywords:{patterns:[{match:"(?<!\\.)\\b(?:if|else|guard|where|switch|case|default|fallthrough)\\b",name:"keyword.control.branch.swift"},{match:"(?<!\\.)\\b(?:continue|break|fallthrough|return)\\b",name:"keyword.control.transfer.swift"},{match:"(?<!\\.)\\b(?:while|for|in)\\b",name:"keyword.control.loop.swift"},{captures:{"1":{name:"keyword.control.loop.swift"},"2":{name:"punctuation.whitespace.trailing.repeat.swift"}},comment:"extra scopes for repeat-while snippet",match:"(?<!\\.)\\b(repeat)\\b(\\s*)"},{match:"(?<!\\.)\\bdefer\\b",name:"keyword.control.defer.swift"},{captures:{"1":{name:"invalid.illegal.try-must-precede-await.swift"},"2":{name:"keyword.control.await.swift"}},match:"(?<!\\.)\\b(?:(await\\s+try)|(await)\\b)"},{match:"(?<!\\.)\\b(?:catch|throws?|rethrows|try)\\b|\\btry[?!]\\B",name:"keyword.control.exception.swift"},{captures:{"1":{name:"keyword.control.exception.swift"},"2":{name:"punctuation.whitespace.trailing.do.swift"}},comment:"extra scopes for do-catch snippet",match:"(?<!\\.)\\b(do)\\b(\\s*)"},{captures:{"1":{name:"keyword.control.async.swift"},"2":{name:"storage.modifier.swift"},"3":{name:"keyword.other.declaration-specifier.swift"}},match:"(?<!\\.)\\b(?:(?:(async)|(nonisolated))\\s+)?(let|var)\\b"},{match:"(?<!\\.)\\b(?:associatedtype|operator|typealias)\\b",name:"keyword.other.declaration-specifier.swift"},{match:"(?<!\\.)\\b(class|enum|extension|precedencegroup|protocol|struct|actor)\\b",name:"storage.type.$1.swift"},{match:"(?<!\\.)\\b(?:inout|static|final|lazy|mutating|nonmutating|optional|indirect|required|override|dynamic|convenience|infix|prefix|postfix)\\b",name:"storage.modifier.swift"},{match:"\\binit[?!]|\\binit\\b|(?<!\\.)\\b(?:func|deinit|subscript|didSet|get|set|willSet)\\b",name:"storage.type.function.swift"},{match:"(?<!\\.)\\b(?:fileprivate|private|internal|public|open)\\b",name:"keyword.other.declaration-specifier.accessibility.swift"},{comment:"matches weak, unowned, unowned(safe), unowned(unsafe)",match:"(?<!\\.)\\bunowned\\((?:safe|unsafe)\\)|(?<!\\.)\\b(?:weak|unowned)\\b",name:"keyword.other.capture-specifier.swift"},{captures:{"1":{name:"keyword.operator.type.swift"},"2":{name:"keyword.operator.type.metatype.swift"}},match:"(?<=\\.)(?:(dynamicType|self)|(Protocol|Type))\\b"},{match:"(?<!\\.)\\b(?:super|self|Self)\\b",name:"variable.language.swift"},{match:"\\B(?:#file|#filePath|#fileID|#line|#column|#function|#dsohandle)\\b|\\b(?:__FILE__|__LINE__|__COLUMN__|__FUNCTION__|__DSO_HANDLE__)\\b",name:"support.variable.swift"},{match:"(?<!\\.)\\bimport\\b",name:"keyword.control.import.swift"}]},literals:{patterns:[{include:"#boolean"},{include:"#numeric"},{include:"#string"},{match:"\\bnil\\b",name:"constant.language.nil.swift"},{comment:"object \"literals\" used in playgrounds",match:"\\B#(colorLiteral|imageLiteral|fileLiteral)\\b",name:"support.function.object-literal.swift"},{match:"\\B#keyPath\\b",name:"support.function.key-path.swift"},{begin:"\\B(#selector)(\\()(?:\\s*(getter|setter)\\s*(:))?",beginCaptures:{"1":{name:"support.function.selector-reference.swift"},"2":{name:"punctuation.definition.arguments.begin.swift"},"3":{name:"support.variable.parameter.swift"},"4":{name:"punctuation.separator.argument-label.swift"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.arguments.end.swift"}},patterns:[{include:"#expressions"}]}],repository:{boolean:{match:"\\b(true|false)\\b",name:"constant.language.boolean.swift"},numeric:{patterns:[{comment:"0.1, -4_2.5, 6.022e23, 10E-5",match:"(\\B\\-|\\b)(?<![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)[0-9][0-9_]*(?=\\.[0-9]|[eE])(?:\\.[0-9][0-9_]*)?(?:[eE][-+]?[0-9][0-9_]*)?\\b(?!\\.[0-9])",name:"constant.numeric.float.decimal.swift"},{comment:"-0x1.ap2_3, 0x31p-4",match:"(\\B\\-|\\b)(?<![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)(0x[0-9a-fA-F][0-9a-fA-F_]*)(?:\\.[0-9a-fA-F][0-9a-fA-F_]*)?[pP][-+]?[0-9][0-9_]*\\b(?!\\.[0-9])",name:"constant.numeric.float.hexadecimal.swift"},{comment:"0x1p, 0x1p_2, 0x1.5pa, 0x1.1p+1f, 0x1pz",match:"(\\B\\-|\\b)(?<![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)(0x[0-9a-fA-F][0-9a-fA-F_]*)(?:\\.[0-9a-fA-F][0-9a-fA-F_]*)?(?:[pP][-+]?\\w*)\\b(?!\\.[0-9])",name:"invalid.illegal.numeric.float.invalid-exponent.swift"},{comment:"0x1.5w (note that 0x1.f may be a valid expression)",match:"(\\B\\-|\\b)(?<![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)(0x[0-9a-fA-F][0-9a-fA-F_]*)\\.[0-9][\\w.]*",name:"invalid.illegal.numeric.float.missing-exponent.swift"},{comment:"-.5, .2f (note that 1.-.5 may be a valid expression)",match:"(?<=\\s|^)\\-?\\.[0-9][\\w.]*",name:"invalid.illegal.numeric.float.missing-leading-zero.swift"},{comment:"0b_0_1, 0x_1p+3q",match:"(\\B\\-|\\b)0[box]_[0-9a-fA-F_]*(?:[pPeE][+-]?\\w+)?[\\w.]+",name:"invalid.illegal.numeric.leading-underscore.swift"},{comment:"tuple positional member: not really a numeric literal, but not invalid",match:"(?<=[\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)[0-9]+\\b"},{comment:"0b010, 0b1_0",match:"(\\B\\-|\\b)(?<![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)0b[01][01_]*\\b(?!\\.[0-9])",name:"constant.numeric.integer.binary.swift"},{comment:"0o1, 0o7_3",match:"(\\B\\-|\\b)(?<![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)0o[0-7][0-7_]*\\b(?!\\.[0-9])",name:"constant.numeric.integer.octal.swift"},{comment:"02, 3_456",match:"(\\B\\-|\\b)(?<![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)[0-9][0-9_]*\\b(?!\\.[0-9])",name:"constant.numeric.integer.decimal.swift"},{comment:"0x4, 0xF_7",match:"(\\B\\-|\\b)(?<![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)0x[0-9a-fA-F][0-9a-fA-F_]*\\b(?!\\.[0-9])",name:"constant.numeric.integer.hexadecimal.swift"},{match:"(\\B\\-|\\b)[0-9][\\w.]*",name:"invalid.illegal.numeric.other.swift"}]},string:{patterns:[{begin:"\"\"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.swift"}},comment:"SE-0168: Multi-Line String Literals",end:"\"\"\"(#*)",endCaptures:{"0":{name:"punctuation.definition.string.end.swift"},"1":{name:"invalid.illegal.extra-closing-delimiter.swift"}},name:"string.quoted.double.block.swift",patterns:[{match:"\\G.+(?=\"\"\")|\\G.+",name:"invalid.illegal.content-after-opening-delimiter.swift"},{match:"\\\\\\s*\\n",name:"constant.character.escape.newline.swift"},{include:"#string-guts"},{comment:"Allow \\(\"\"\"...\"\"\") to appear inside a block string",match:"\\S((?!\\\\\\().)*(?=\"\"\")",name:"invalid.illegal.content-before-closing-delimiter.swift"}]},{begin:"#\"\"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.swift"}},end:"\"\"\"#(#*)",endCaptures:{"0":{name:"punctuation.definition.string.end.swift"},"1":{name:"invalid.illegal.extra-closing-delimiter.swift"}},name:"string.quoted.double.block.raw.swift",patterns:[{match:"\\G.+(?=\"\"\")|\\G.+",name:"invalid.illegal.content-after-opening-delimiter.swift"},{match:"\\\\#\\s*\\n",name:"constant.character.escape.newline.swift"},{include:"#raw-string-guts"},{comment:"Allow \\(\"\"\"...\"\"\") to appear inside a block string",match:"\\S((?!\\\\#\\().)*(?=\"\"\")",name:"invalid.illegal.content-before-closing-delimiter.swift"}]},{begin:"(##+)\"\"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.swift"}},end:"\"\"\"\\1(#*)",endCaptures:{"0":{name:"punctuation.definition.string.end.swift"},"1":{name:"invalid.illegal.extra-closing-delimiter.swift"}},name:"string.quoted.double.block.raw.swift",patterns:[{match:"\\G.+(?=\"\"\")|\\G.+",name:"invalid.illegal.content-after-opening-delimiter.swift"}]},{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.swift"}},end:"\"(#*)",endCaptures:{"0":{name:"punctuation.definition.string.end.swift"},"1":{name:"invalid.illegal.extra-closing-delimiter.swift"}},name:"string.quoted.double.single-line.swift",patterns:[{match:"\\r|\\n",name:"invalid.illegal.returns-not-allowed.swift"},{include:"#string-guts"}]},{begin:"(##+)\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.raw.swift"}},comment:"SE-0168: raw string literals (more than one #, grammar limitations prevent us from supporting escapes)",end:"\"\\1(#*)",endCaptures:{"0":{name:"punctuation.definition.string.end.raw.swift"},"1":{name:"invalid.illegal.extra-closing-delimiter.swift"}},name:"string.quoted.double.single-line.raw.swift",patterns:[{match:"\\r|\\n",name:"invalid.illegal.returns-not-allowed.swift"}]},{begin:"#\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.raw.swift"}},comment:"SE-0168: raw string literals (one #, escapes supported)",end:"\"#(#*)",endCaptures:{"0":{name:"punctuation.definition.string.end.raw.swift"},"1":{name:"invalid.illegal.extra-closing-delimiter.swift"}},name:"string.quoted.double.single-line.raw.swift",patterns:[{match:"\\r|\\n",name:"invalid.illegal.returns-not-allowed.swift"},{include:"#raw-string-guts"}]}],repository:{"raw-string-guts":{comment:"the same as #string-guts but with # in escapes",patterns:[{match:"\\\\#[0\\\\tnr\"']",name:"constant.character.escape.swift"},{match:"\\\\#u\\{[0-9a-fA-F]{1,8}\\}",name:"constant.character.escape.unicode.swift"},{begin:"\\\\#\\(",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.swift"}},contentName:"source.swift",end:"(\\))",endCaptures:{"0":{name:"punctuation.section.embedded.end.swift"},"1":{name:"source.swift"}},name:"meta.embedded.line.swift",patterns:[{include:"$self"},{begin:"\\(",comment:"Nested parens",end:"\\)"}]},{match:"\\\\#.",name:"invalid.illegal.escape-not-recognized"}]},"string-guts":{patterns:[{match:"\\\\[0\\\\tnr\"']",name:"constant.character.escape.swift"},{match:"\\\\u\\{[0-9a-fA-F]{1,8}\\}",name:"constant.character.escape.unicode.swift"},{begin:"\\\\\\(",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.swift"}},contentName:"source.swift",end:"(\\))",endCaptures:{"0":{name:"punctuation.section.embedded.end.swift"},"1":{name:"source.swift"}},name:"meta.embedded.line.swift",patterns:[{include:"$self"},{begin:"\\(",comment:"Nested parens",end:"\\)"}]},{match:"\\\\.",name:"invalid.illegal.escape-not-recognized"}]}}}}},operators:{patterns:[{comment:"Type casting",match:"\\b(is\\b|as([!?]\\B|\\b))",name:"keyword.operator.type-casting.swift"},{begin:"(?x)\n\t\t\t\t\t\t(?=\n\t\t\t\t\t\t\t(?<oph>\t\t\t\t\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t[/=\\-+!*%<>&|^~?]\n\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t | \\.\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\\g<oph>\t\t\t\t\t\t\t# operator-head\n\t\t\t\t\t\t\t | \\.\n\t\t\t\t\t\t\t | [\\x{0300}-\\x{036F}]\t\t\t\t# operator-character\n\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t",comment:"This rule helps us speed up the matching.",end:"(?!\\G)",patterns:[{captures:{"0":{patterns:[{match:"\\G(\\+\\+|\\-\\-)$",name:"keyword.operator.increment-or-decrement.swift"},{match:"\\G(\\+|\\-)$",name:"keyword.operator.arithmetic.unary.swift"},{match:"\\G!$",name:"keyword.operator.logical.not.swift"},{match:"\\G~$",name:"keyword.operator.bitwise.not.swift"},{match:".+",name:"keyword.operator.custom.prefix.swift"}]}},comment:"Prefix unary operator",match:"(?x)\n\t\t\t\t\t\t\t\t\\G\t\t\t\t\t\t\t\t\t\t# Matching from the beginning ensures\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# that we start with operator-head\n\t\t\t\t\t\t\t\t(?<=^|[\\s(\\[{,;:])\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?!(//|/\\*|\\*/))\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t[/=\\-+!*%<>&|^~?]\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t | [\\x{0300}-\\x{036F}]\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)++\n\t\t\t\t\t\t\t\t(?![\\s)\\]},;:]|\\z)\n\t\t\t\t\t\t\t"},{captures:{"0":{patterns:[{match:"\\G(\\+\\+|\\-\\-)$",name:"keyword.operator.increment-or-decrement.swift"},{match:"\\G!$",name:"keyword.operator.increment-or-decrement.swift"},{match:".+",name:"keyword.operator.custom.postfix.swift"}]}},comment:"Postfix unary operator",match:"(?x)\n\t\t\t\t\t\t\t\t\\G\t\t\t\t\t\t\t\t\t\t# Matching from the beginning ensures\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# that we start with operator-head\n\t\t\t\t\t\t\t\t(?<!^|[\\s(\\[{,;:])\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?!(//|/\\*|\\*/))\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t[/=\\-+!*%<>&|^~?]\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t | [\\x{0300}-\\x{036F}]\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)++\n\t\t\t\t\t\t\t\t(?=[\\s)\\]},;:]|\\z)\n\t\t\t\t\t\t\t"},{captures:{"0":{patterns:[{match:"\\G=$",name:"keyword.operator.assignment.swift"},{match:"\\G(\\+|\\-|\\*|/|%|<<|>>|&|\\^|\\||&&|\\|\\|)=$",name:"keyword.operator.assignment.compound.swift"},{match:"\\G(\\+|\\-|\\*|/)$",name:"keyword.operator.arithmetic.swift"},{match:"\\G&(\\+|\\-|\\*)$",name:"keyword.operator.arithmetic.overflow.swift"},{match:"\\G%$",name:"keyword.operator.arithmetic.remainder.swift"},{match:"\\G(==|!=|>|<|>=|<=|~=)$",name:"keyword.operator.comparison.swift"},{match:"\\G\\?\\?$",name:"keyword.operator.coalescing.swift"},{match:"\\G(&&|\\|\\|)$",name:"keyword.operator.logical.swift"},{match:"\\G(&|\\||\\^|<<|>>)$",name:"keyword.operator.bitwise.swift"},{match:"\\G(===|!==)$",name:"keyword.operator.bitwise.swift"},{match:"\\G\\?$",name:"keyword.operator.ternary.swift"},{match:".+",name:"keyword.operator.custom.infix.swift"}]}},comment:"Infix operator",match:"(?x)\n\t\t\t\t\t\t\t\t\\G\t\t\t\t\t\t\t\t\t\t# Matching from the beginning ensures\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# that we start with operator-head\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?!(//|/\\*|\\*/))\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t[/=\\-+!*%<>&|^~?]\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t | [\\x{0300}-\\x{036F}]\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)++\n\t\t\t\t\t\t\t"},{captures:{"0":{patterns:[{match:".+",name:"keyword.operator.custom.prefix.dot.swift"}]}},comment:"Dot prefix unary operator",match:"(?x)\n\t\t\t\t\t\t\t\t\\G\t\t\t\t\t\t\t\t\t\t# Matching from the beginning ensures\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# that we start with operator-head\n\t\t\t\t\t\t\t\t(?<=^|[\\s(\\[{,;:])\n\t\t\t\t\t\t\t\t\\.\t\t\t\t\t\t\t\t\t\t# dot\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?!(//|/\\*|\\*/))\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\\.\t\t\t\t\t\t\t\t# dot\n\t\t\t\t\t\t\t\t\t | [/=\\-+!*%<>&|^~?]\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t | [\\x{0300}-\\x{036F}]\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)++\n\t\t\t\t\t\t\t\t(?![\\s)\\]},;:]|\\z)\n\t\t\t\t\t\t\t"},{captures:{"0":{patterns:[{match:".+",name:"keyword.operator.custom.postfix.dot.swift"}]}},comment:"Dot postfix unary operator",match:"(?x)\n\t\t\t\t\t\t\t\t\\G\t\t\t\t\t\t\t\t\t\t# Matching from the beginning ensures\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# that we start with operator-head\n\t\t\t\t\t\t\t\t(?<!^|[\\s(\\[{,;:])\n\t\t\t\t\t\t\t\t\\.\t\t\t\t\t\t\t\t\t\t# dot\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?!(//|/\\*|\\*/))\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\\.\t\t\t\t\t\t\t\t# dot\n\t\t\t\t\t\t\t\t\t | [/=\\-+!*%<>&|^~?]\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t | [\\x{0300}-\\x{036F}]\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)++\n\t\t\t\t\t\t\t\t(?=[\\s)\\]},;:]|\\z)\n\t\t\t\t\t\t\t"},{captures:{"0":{patterns:[{match:"\\G\\.\\.[.<]$",name:"keyword.operator.range.swift"},{match:".+",name:"keyword.operator.custom.infix.dot.swift"}]}},comment:"Dot infix operator",match:"(?x)\n\t\t\t\t\t\t\t\t\\G\t\t\t\t\t\t\t\t\t\t# Matching from the beginning ensures\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# that we start with operator-head\n\t\t\t\t\t\t\t\t\\.\t\t\t\t\t\t\t\t\t\t# dot\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?!(//|/\\*|\\*/))\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\\.\t\t\t\t\t\t\t\t# dot\n\t\t\t\t\t\t\t\t\t | [/=\\-+!*%<>&|^~?]\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t | [\\x{0300}-\\x{036F}]\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)++\n\t\t\t\t\t\t\t"}]},{match:":",name:"keyword.operator.ternary.swift"}]},root:{patterns:[{include:"#compiler-control"},{include:"#declarations"},{include:"#expressions"}]}}}; + +export { swift_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/system-verilog.tmLanguage-5011d5c2.mjs b/docs/shiki/dist/languages/system-verilog.tmLanguage-5011d5c2.mjs new file mode 100644 index 00000000..03143079 --- /dev/null +++ b/docs/shiki/dist/languages/system-verilog.tmLanguage-5011d5c2.mjs @@ -0,0 +1,3 @@ +var systemVerilog_tmLanguage = {fileTypes:["sv","SV","v","V","svh","SVH","vh","VH"],hidden:true,name:"system-verilog",patterns:[{begin:"\\s*\\b(function|task)\\b(\\s+automatic)?",beginCaptures:{"1":{name:"keyword.control.systemverilog"},"2":{name:"keyword.control.systemverilog"}},end:";",patterns:[{match:"\\b([a-zA-Z_][a-zA-Z0-9_]*\\s+)?([a-zA-Z_][a-zA-Z0-9_:]*)\\s*(?=\\(|;)",captures:{"1":{name:"storage.type.systemverilog"},"2":{name:"entity.name.function.systemverilog"}}},{include:"#port-dir"},{include:"#base-grammar"}],name:"meta.function.systemverilog"},{match:"\\s*\\b(task)\\s+(automatic)?\\s*(\\w+)\\s*;",captures:{"1":{name:"keyword.control.systemverilog"},"2":{name:"keyword.control.systemverilog"},"3":{name:"entity.name.function.systemverilog"}},name:"meta.task.simple.systemverilog"},{begin:"\\s*\\b(typedef\\s+(struct|enum|union)\\b)\\s*(packed)?\\s*([a-zA-Z_][a-zA-Z0-9_]*)?",beginCaptures:{"1":{name:"keyword.control.systemverilog"},"2":{name:"keyword.control.systemverilog"},"3":{name:"keyword.control.systemverilog"},"4":{name:"storage.type.systemverilog"}},end:"(})\\s*([a-zA-Z_][a-zA-Z0-9_]*)\\s*;",endCaptures:{"1":{name:"keyword.operator.other.systemverilog"},"2":{name:"entity.name.function.systemverilog"}},patterns:[{include:"#struct-anonymous"},{include:"#base-grammar"}],name:"meta.typedef.struct.systemverilog"},{match:"\\s*\\b(typedef\\s+class)\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\s*;",captures:{"1":{name:"keyword.control.systemverilog"},"2":{name:"entity.name.declaration.systemverilog"}},name:"meta.typedef.class.systemverilog"},{begin:"\\s*\\b(typedef)\\b",beginCaptures:{"1":{name:"keyword.control.systemverilog"}},end:"([a-zA-Z_][a-zA-Z0-9_]*)\\s*(?=(\\[[a-zA-Z0-9_:\\$\\-\\+]*\\])?;)",endCaptures:{"1":{name:"entity.name.function.systemverilog"}},patterns:[{match:"\\b([a-zA-Z_]\\w*)\\s*(#)\\(",captures:{"1":{name:"storage.type.userdefined.systemverilog"},"2":{name:"keyword.operator.param.systemverilog"}},name:"meta.typedef.class.systemverilog"},{include:"#base-grammar"},{include:"#module-binding"}],name:"meta.typedef.simple.systemverilog"},{begin:"\\s*(module)\\s+\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b",beginCaptures:{"1":{name:"keyword.control.systemverilog"},"2":{name:"entity.name.type.module.systemverilog"}},end:";",endCaptures:{"1":{name:"entity.name.function.systemverilog"}},patterns:[{include:"#port-dir"},{match:"\\s*(parameter)",name:"keyword.other.systemverilog"},{include:"#base-grammar"},{include:"#ifmodport"},{match:"\\$\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b",name:"support.function.systemverilog"}],name:"meta.module.systemverilog"},{captures:{"1":{name:"keyword.control.systemverilog"},"2":{name:"entity.name.function.systemverilog"}},match:"\\b(sequence)\\s+([a-zA-Z_][a-zA-Z0-9_]*)",name:"meta.sequence.systemverilog"},{match:"\\b(bind)\\s+([a-zA-Z_][a-zA-Z0-9_\\.]*)\\b",captures:{"1":{name:"keyword.control.systemverilog"}}},{captures:{"0":{name:"meta.section.begin.systemverilog"},"1":{name:"keyword.other.block.systemverilog"},"3":{name:"keyword.operator.systemverilog"},"4":{name:"entity.name.section.systemverilog"}},match:"\\s*(begin|fork)\\s*((:)\\s*([a-zA-Z_][a-zA-Z0-9_]*))\\b",name:"meta.definition.systemverilog"},{match:"\\b(asset|cover)\\s(property)\\s+(\\w+)",captures:{"1":{name:"keyword.sva.systemverilog"},"2":{name:"entity.name.sva.systemverilog"}}},{match:"\\b(\\w+)\\s*(:)\\s*(assert)\\b",captures:{"1":{name:"entity.name.sva.systemverilog"},"2":{name:"keyword.operator.systemverilog"},"3":{name:"keyword.sva.systemverilog"}}},{begin:"\\s*(//)\\s*(psl)\\s+((\\w+)\\s*(:))?\\s*(default|assert|assume)",beginCaptures:{"0":{name:"meta.psl.systemverilog"},"1":{name:"comment.line.double-slash.systemverilog"},"2":{name:"keyword.psl.systemverilog"},"4":{name:"entity.psl.name.systemverilog"},"5":{name:"keyword.operator.systemverilog"},"6":{name:"keyword.psl.systemverilog"}},end:";",patterns:[{match:"\\b(never|always|default|clock|within|rose|fell|stable|until|before|next|eventually|abort|posedge)\\b",name:"keyword.psl.systemverilog"},{include:"#operators"},{include:"#functions"},{include:"#constants"}],name:"meta.psl.systemverilog"},{begin:"\\s*(/\\*)\\s*(psl)",beginCaptures:{"0":{name:"meta.psl.systemverilog"},"1":{name:"comment.block.systemverilog"},"2":{name:"keyword.psl.systemverilog"}},end:"(\\*/)",endCaptures:{"1":{name:"comment.block.systemverilog"}},patterns:[{match:"^\\s*((\\w+)\\s*(:))?\\s*(default|assert|assume)",captures:{"0":{name:"meta.psl.systemverilog"},"2":{name:"entity.psl.name.systemverilog"},"3":{name:"keyword.operator.systemverilog"},"4":{name:"keyword.psl.systemverilog"}}},{match:"\\b(asset|cover)\\s+(property)\\s+(\\w+)",captures:{"1":{name:"keyword.psl.systemverilog"},"2":{name:"entity.psl.name.systemverilog"}}},{match:"\\b(never|always|default|clock|within|rose|fell|stable|until|before|next|eventually|abort|posedge|negedge)\\b",name:"keyword.psl.systemverilog"},{include:"#operators"},{include:"#functions"},{include:"#constants"}],name:"meta.psl.systemverilog"},{match:"\\s*\\b(automatic|cell|config|deassign|defparam|design|disable|edge|endconfig|endgenerate|endspecify|endtable|event|generate|genvar|ifnone|incdir|instance|liblist|library|macromodule|negedge|noshowcancelled|posedge|pulsestyle_onevent|pulsestyle_ondetect|scalared|showcancelled|specify|specparam|table|use|vectored)\\b",captures:{"1":{name:"keyword.other.systemverilog"}}},{match:"\\s*\\b(initial|always|wait|force|release|assign|always_comb|always_ff|always_latch|forever|repeat|while|for|if|iff|else|case|casex|casez|default|endcase|return|break|continue|do|foreach|with|inside|dist|clocking|cover|coverpoint|property|bins|binsof|illegal_bins|ignore_bins|randcase|modport|matches|solve|static|assert|assume|before|expect|cross|ref|first_match|srandom|struct|packed|final|chandle|alias|tagged|extern|throughout|timeprecision|timeunit|priority|type|union|uwire|wait_order|triggered|randsequence|import|export|context|pure|intersect|wildcard|within|new|typedef|enum|this|super|begin|fork|forkjoin|unique|unique0|priority)\\b",captures:{"1":{name:"keyword.control.systemverilog"}}},{match:"\\s*\\b(end|endtask|endmodule|endfunction|endprimitive|endclass|endpackage|endsequence|endprogram|endclocking|endproperty|endgroup|endinterface|join|join_any|join_none)\\b(\\s*(:)\\s*(\\w+))?",captures:{"1":{name:"keyword.control.systemverilog"},"3":{name:"keyword.operator.systemverilog"},"4":{name:"entity.label.systemverilog"}},name:"meta.object.end.systemverilog"},{match:"\\b(std)\\b::",name:"support.class.systemverilog"},{captures:{"1":{name:"constant.other.define.systemverilog"},"2":{name:"entity.name.type.define.systemverilog"}},match:"^\\s*(`define)\\s+([a-zA-Z_][a-zA-Z0-9_]*)",name:"meta.define.systemverilog"},{captures:{"1":{name:"constant.other.undef.systemverilog"},"2":{name:"entity.name.type.undef.systemverilog"}},match:"^\\s*(`undef)\\s+([a-zA-Z_][a-zA-Z0-9_]*)",name:"meta.undef.systemverilog"},{include:"#comments"},{captures:{"1":{name:"keyword.control.systemverilog"},"2":{name:"entity.name.type.class.systemverilog"}},match:"\\s*(primitive|package|constraint|interface|covergroup|program)\\s+\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b",name:"meta.definition.systemverilog"},{captures:{"2":{name:"entity.name.type.class.systemverilog"},"3":{name:"keyword.operator.other.systemverilog"},"4":{name:"keyword.control.systemverilog"}},match:"(([a-zA-Z_][a-zA-Z0-9_]*)\\s*(:))?\\s*(coverpoint|cross)\\s+([a-zA-Z_][a-zA-Z0-9_]*)",name:"meta.definition.systemverilog"},{captures:{"1":{name:"keyword.control.systemverilog"},"2":{name:"keyword.control.systemverilog"},"3":{name:"entity.name.type.class.systemverilog"}},match:"\\b(virtual\\s+)?(class)\\s+\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b",name:"meta.definition.class.systemverilog"},{captures:{"1":{name:"keyword.control.systemverilog"},"2":{name:"entity.other.inherited-class.systemverilog"}},match:"\\b(extends)\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\b",name:"meta.definition.systemverilog"},{include:"#all-types"},{include:"#operators"},{include:"#port-dir"},{match:"\\b(and|nand|nor|or|xor|xnor|buf|not|bufif[01]|notif[01]|r?[npc]mos|tran|r?tranif[01]|pullup|pulldown)\\b",name:"support.type.systemverilog"},{include:"#strings"},{match:"\\$\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b",name:"support.function.systemverilog"},{match:"\\b([a-zA-Z_][a-zA-Z0-9_]*)(')(?=\\()",name:"meta.cast.systemverilog",captures:{"1":{name:"storage.type.systemverilog"},"2":{name:"keyword.operator.cast.systemverilog"}}},{match:"^\\s*(localparam|parameter)\\s+([A-Z_][A-Z0-9_]*)\\b\\s*(?=(=))",name:"meta.param.systemverilog",captures:{"1":{name:"keyword.other.systemverilog"},"2":{name:"constant.other.systemverilog"}}},{match:"^\\s*(localparam|parameter)\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\b\\s*(?=(=))",name:"meta.param.systemverilog",captures:{"1":{name:"keyword.other.systemverilog"}}},{match:"^\\s*(local\\s+|protected\\s+|localparam\\s+|parameter\\s+)?(const\\s+|virtual\\s+)?(rand\\s+|randc\\s+)?(([a-zA-Z_][a-zA-Z0-9_]*)(::))?([a-zA-Z_][a-zA-Z0-9_]*)\\b\\s*(?=(#\\s*\\([\\w,]+\\)\\s*)?([a-zA-Z][a-zA-Z0-9_\\s\\[\\]']*)(;|,|=|'\\{))",name:"meta.userdefined.systemverilog",captures:{"1":{name:"keyword.other.systemverilog"},"2":{name:"keyword.other.systemverilog"},"3":{name:"storage.type.rand.systemverilog"},"5":{name:"support.type.scope.systemverilog"},"6":{name:"keyword.operator.scope.systemverilog"},"7":{name:"storage.type.userdefined.systemverilog"}}},{match:"\\s*\\b(option)\\.",captures:{"1":{name:"keyword.cover.systemverilog"}}},{match:"\\s*\\b(local|const|protected|virtual|localparam|parameter)\\b",captures:{"1":{name:"keyword.other.systemverilog"}}},{match:"\\s*\\b(rand|randc)\\b",name:"storage.type.rand.systemverilog"},{begin:"^(\\s*(bind)\\s+([a-zA-Z_][\\w\\.]*))?\\s*([a-zA-Z_][a-zA-Z0-9_]*)\\s*(?=#[^#])",beginCaptures:{"2":{name:"keyword.control.systemverilog"},"4":{name:"storage.module.systemverilog"}},end:"(?=;|=|:)",patterns:[{include:"#module-binding"},{include:"#module-param"},{include:"#comments"},{include:"#operators"},{include:"#constants"},{include:"#strings"},{match:"\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b(?=\\s*(\\(|$))",name:"entity.name.type.module.systemverilog"}],name:"meta.module.inst.param.systemverilog"},{begin:"\\b([a-zA-Z_][a-zA-Z0-9_]*)\\s+(?!intersect|and|or|throughout|within)([a-zA-Z_][a-zA-Z0-9_]*)\\s*(\\[(\\d+)(\\:(\\d+))?\\])?\\s*(\\(|$)",beginCaptures:{"1":{name:"storage.module.systemverilog"},"2":{name:"entity.name.type.module.systemverilog"},"4":{name:"constant.numeric.systemverilog"},"6":{name:"constant.numeric.systemverilog"}},end:";",patterns:[{include:"#module-binding"},{include:"#comments"},{include:"#strings"},{include:"#operators"},{include:"#constants"}],name:"meta.module.inst.systemverilog"},{name:"meta.struct.assign.systemverilog",begin:"\\b\\s+(<?=)\\s*(\\'{)",beginCaptures:{"1":{name:"keyword.operator.other.systemverilog"},"2":{name:"keyword.operator.other.systemverilog"},"3":{name:"keyword.operator.other.systemverilog"}},end:";",patterns:[{match:"\\b(\\w+)\\s*(:)(?!:)",captures:{"1":{name:"support.function.field.systemverilog"},"2":{name:"keyword.operator.other.systemverilog"}}},{include:"#comments"},{include:"#strings"},{include:"#operators"},{include:"#constants"},{include:"#storage-scope-systemverilog"}]},{include:"#storage-scope-systemverilog"},{include:"#functions"},{include:"#constants"}],repository:{functions:{match:"\\b(\\w+)(?=\\s*\\()",name:"support.function.generic.systemverilog"},"all-types":{patterns:[{include:"#storage-type-systemverilog"},{include:"#storage-modifier-systemverilog"}]},constants:{patterns:[{match:"(\\b\\d+)?'(s?[bB]\\s*[0-1xXzZ?][0-1_xXzZ?]*|s?[oO]\\s*[0-7xXzZ?][0-7_xXzZ?]*|s?[dD]\\s*[0-9xXzZ?][0-9_xXzZ?]*|s?[hH]\\s*[0-9a-fA-FxXzZ?][0-9a-fA-F_xXzZ?]*)((e|E)(\\+|-)?[0-9]+)?(?!'|\\w)",name:"constant.numeric.systemverilog"},{match:"'[01xXzZ]",name:"constant.numeric.bit.systemverilog"},{match:"\\b((\\d[\\d_]*)(e|E)(\\+|-)?[0-9]+)\\b",name:"constant.numeric.exp.systemverilog"},{match:"\\b(\\d[\\d_]*)\\b",name:"constant.numeric.decimal.systemverilog"},{match:"\\b(\\d+(fs|ps|ns|us|ms|s)?)\\b",name:"constant.numeric.time.systemverilog"},{match:"\\b([A-Z][A-Z0-9_]*)\\b",name:"constant.other.net.systemverilog"},{match:"(`ifdef|`ifndef|`default_nettype)\\s+(\\w+)",captures:{"1":{name:"constant.other.preprocessor.systemverilog"},"2":{name:"support.variable.systemverilog"}}},{match:"`(celldefine|else|elsif|endcelldefine|endif|include|line|nounconnected_drive|resetall|timescale|unconnected_drive|undef|begin_\\w+|end_\\w+|remove_\\w+|restore_\\w+)\\b",name:"constant.other.preprocessor.systemverilog"},{match:"`\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b",name:"constant.other.define.systemverilog"},{match:"\\b(null)\\b",name:"support.constant.systemverilog"}]},operators:{patterns:[{match:"(=|==|===|!=|!==|<=|>=|<|>)",name:"keyword.operator.comparison.systemverilog"},{match:"(\\-|\\+|\\*|\\/|%)",name:"keyword.operator.arithmetic.systemverilog"},{match:"(!|&&|\\|\\||\\bor\\b)",name:"keyword.operator.logical.systemverilog"},{match:"(&|\\||\\^|~|{|'{|}|<<|>>|\\?|:)",name:"keyword.operator.bitwise.systemverilog"},{match:"(#|@)",name:"keyword.operator.other.systemverilog"}]},comments:{patterns:[{begin:"/\\*",captures:{"0":{name:"punctuation.definition.comment.systemverilog"}},end:"\\*/",name:"comment.block.systemverilog"},{captures:{"1":{name:"punctuation.definition.comment.systemverilog"}},match:"(//).*$\\n?",name:"comment.line.double-slash.systemverilog"}]},"port-dir":{patterns:[{match:"\\s*\\b(output|input|inout|ref)\\s+(([a-zA-Z_][a-zA-Z0-9_]*)(::))?([a-zA-Z_][a-zA-Z0-9_]*)?\\s+(?=\\[[a-zA-Z0-9_\\-\\+]*:[a-zA-Z0-9_\\-\\+]*\\]\\s+[a-zA-Z_][a-zA-Z0-9_\\s]*)",captures:{"1":{name:"support.type.systemverilog"},"3":{name:"support.type.scope.systemverilog"},"4":{name:"keyword.operator.scope.systemverilog"},"5":{name:"storage.type.interface.systemverilog"}}},{match:"\\s*\\b(output|input|inout|ref)\\s+(([a-zA-Z_][a-zA-Z0-9_]*)(::))?([a-zA-Z_][a-zA-Z0-9_]*)?\\s+(?=[a-zA-Z_][a-zA-Z0-9_\\s]*)",captures:{"1":{name:"support.type.systemverilog"},"3":{name:"support.type.scope.systemverilog"},"4":{name:"keyword.operator.scope.systemverilog"},"5":{name:"storage.type.interface.systemverilog"}}},{match:"\\s*\\b(output|input|inout|ref)\\b",name:"support.type.systemverilog"}]},"base-grammar":{patterns:[{include:"#all-types"},{include:"#comments"},{include:"#operators"},{include:"#constants"},{include:"#strings"},{match:"^\\s*([a-zA-Z_][a-zA-Z0-9_]*)\\s+[a-zA-Z_][a-zA-Z0-9_,=\\s]*",captures:{"1":{name:"storage.type.interface.systemverilog"}}},{include:"#storage-scope-systemverilog"}]},"storage-type-systemverilog":{patterns:[{match:"\\s*\\b(var|wire|tri|tri[01]|supply[01]|wand|triand|wor|trior|trireg|reg|integer|int|longint|shortint|logic|bit|byte|shortreal|string|time|realtime|real|process|void)\\b",name:"storage.type.systemverilog"},{match:"\\s*\\b(uvm_transaction|uvm_component|uvm_monitor|uvm_driver|uvm_test|uvm_env|uvm_object|uvm_agent|uvm_sequence_base|uvm_sequence|uvm_sequence_item|uvm_sequence_state|uvm_sequencer|uvm_sequencer_base|uvm_component_registry|uvm_analysis_imp|uvm_analysis_port|uvm_analysis_export|uvm_config_db|uvm_active_passive_enum|uvm_phase|uvm_verbosity|uvm_tlm_analysis_fifo|uvm_tlm_fifo|uvm_report_server|uvm_objection|uvm_recorder|uvm_domain|uvm_reg_field|uvm_reg|uvm_reg_block|uvm_bitstream_t|uvm_radix_enum|uvm_printer|uvm_packer|uvm_comparer|uvm_scope_stack)\\b",name:"storage.type.uvm.systemverilog"}]},"storage-scope-systemverilog":{match:"\\b([a-zA-Z_][a-zA-Z0-9_]*)(::)",captures:{"1":{name:"support.type.systemverilog"},"2":{name:"keyword.operator.scope.systemverilog"}},name:"meta.scope.systemverilog"},"storage-modifier-systemverilog":{match:"\\b(signed|unsigned|small|medium|large|supply[01]|strong[01]|pull[01]|weak[01]|highz[01])\\b",name:"storage.modifier.systemverilog"},ifmodport:{match:"\\b([a-zA-Z_][a-zA-Z0-9_]*)\\.([a-zA-Z_][a-zA-Z0-9_]*)\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\b",captures:{"1":{name:"storage.type.interface.systemverilog"},"2":{name:"support.modport.systemverilog"}}},strings:{patterns:[{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.systemverilog"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.systemverilog"}},name:"string.quoted.double.systemverilog",patterns:[{match:"\\\\.",name:"constant.character.escape.systemverilog"},{match:"(?x)%\n (\\d+\\$)? # field (argument #)\n [#0\\- +']* # flags\n [,;:_]? # separator character (AltiVec)\n ((-?\\d+)|\\*(-?\\d+\\$)?)? # minimum field width\n (\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)? # precision\n (hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n [bdiouxXhHDOUeEfFgGaACcSspnmt%] # conversion type\n ",name:"constant.other.placeholder.systemverilog"},{match:"%",name:"invalid.illegal.placeholder.systemverilog"}]}]},"module-binding":{begin:"\\.([a-zA-Z_][a-zA-Z0-9_]*)\\s*\\(",beginCaptures:{"1":{name:"support.function.port.systemverilog"}},end:"\\)",patterns:[{include:"#constants"},{include:"#comments"},{include:"#operators"},{include:"#strings"},{include:"#constants"},{match:"\\b([a-zA-Z_]\\w*)(::)",captures:{"1":{name:"support.type.scope.systemverilog"},"2":{name:"keyword.operator.scope.systemverilog"}}},{match:"\\b([a-zA-Z_]\\w*)(')",captures:{"1":{name:"storage.type.interface.systemverilog"},"2":{name:"keyword.operator.cast.systemverilog"}}},{match:"\\$\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b",name:"support.function.systemverilog"},{match:"\\b(virtual)\\b",name:"keyword.control.systemverilog"}],match:"\\.([a-zA-Z_][a-zA-Z0-9_]*)\\s*",captures:{"1":{name:"support.function.port.implicit.systemverilog"}}},"module-param":{name:"meta.module-param.systemverilog",begin:"(#)\\s*\\(",beginCaptures:{"1":{name:"keyword.operator.param.systemverilog"}},end:"\\)",patterns:[{include:"#comments"},{include:"#constants"},{include:"#operators"},{include:"#strings"},{include:"#module-binding"},{match:"\\b(virtual)\\b",name:"keyword.control.systemverilog"}]},"struct-anonymous":{begin:"\\s*\\b(struct|union)\\s*(packed)?\\s*",beginCaptures:{"1":{name:"keyword.control.systemverilog"},"2":{name:"keyword.control.systemverilog"}},end:"(})\\s*([a-zA-Z_]\\w*)\\s*;",endCaptures:{"1":{name:"keyword.operator.other.systemverilog"}},patterns:[{include:"#base-grammar"}],name:"meta.struct.anonymous.systemverilog"}},scopeName:"source.systemverilog",uuid:"789be04c-8b74-352e-8f37-63d336001277"}; + +export { systemVerilog_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/tasl.tmLanguage-7f0a372b.mjs b/docs/shiki/dist/languages/tasl.tmLanguage-7f0a372b.mjs new file mode 100644 index 00000000..9b9e0d66 --- /dev/null +++ b/docs/shiki/dist/languages/tasl.tmLanguage-7f0a372b.mjs @@ -0,0 +1,3 @@ +var tasl_tmLanguage = {$schema:"https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",scopeName:"source.tasl",name:"tasl",fileTypes:["tasl"],patterns:[{include:"#comment"},{include:"#namespace"},{include:"#type"},{include:"#class"},{include:"#edge"}],repository:{comment:{match:"(#).*$",name:"comment.line.number-sign.tasl",captures:{"1":{name:"punctuation.definition.comment.tasl"}}},namespace:{match:"(?:^\\s*)(namespace)\\b(.*)",captures:{"1":{name:"keyword.control.tasl.namespace"},"2":{patterns:[{include:"#namespaceURI"},{match:"[a-zA-Z][a-zA-Z0-9]*\\b",name:"entity.name"}]}}},type:{begin:"(?:^\\s*)(type)\\b",beginCaptures:{"1":{name:"keyword.control.tasl.type"}},end:"$",patterns:[{include:"#expression"}]},"class":{begin:"(?:^\\s*)(class)\\b",beginCaptures:{"1":{name:"keyword.control.tasl.class"}},end:"$",patterns:[{include:"#key"},{include:"#export"},{include:"#expression"}]},edge:{begin:"(?:^\\s*)(edge)\\b",beginCaptures:{"1":{name:"keyword.control.tasl.edge"}},end:"$",patterns:[{include:"#key"},{include:"#export"},{match:"=/",name:"punctuation.separator.tasl.edge.source"},{match:"/=>",name:"punctuation.separator.tasl.edge.target"},{match:"=>",name:"punctuation.separator.tasl.edge"},{include:"#expression"}]},"export":{match:"::",name:"keyword.operator.tasl.export"},expression:{patterns:[{include:"#literal"},{include:"#uri"},{include:"#product"},{include:"#coproduct"},{include:"#reference"},{include:"#optional"},{include:"#identifier"}]},literal:{patterns:[{include:"#datatype"}]},uri:{match:"<>",name:"variable.other.constant"},product:{begin:"{",beginCaptures:{"0":{name:"punctuation.definition.block.tasl.product"}},end:"}",endCaptures:{"0":{name:"punctuation.definition.block.tasl.product"}},patterns:[{include:"#comment"},{include:"#term"},{include:"#component"}]},component:{begin:"->",end:"$",beginCaptures:{"0":{name:"punctuation.separator.tasl.component"}},patterns:[{include:"#expression"}]},coproduct:{begin:"\\[",beginCaptures:{"0":{name:"punctuation.definition.block.tasl.coproduct"}},end:"\\]",endCaptures:{"0":{name:"punctuation.definition.block.tasl.coproduct"}},patterns:[{include:"#comment"},{include:"#term"},{include:"#option"}]},option:{begin:"<-",end:"$",beginCaptures:{"0":{name:"punctuation.separator.tasl.option"}},patterns:[{include:"#expression"}]},reference:{match:"(\\*)\\s*(.*)",captures:{"1":{name:"markup.bold keyword.operator"},"2":{patterns:[{include:"#key"}]}}},identifier:{match:"([a-zA-Z][a-zA-Z0-9]*)\\b",captures:{"1":{name:"variable"}}},optional:{begin:"\\?",beginCaptures:{"0":{name:"keyword.operator"}},end:"$",patterns:[{include:"#expression"}]},namespaceURI:{match:"[a-z]+:[a-zA-Z0-9-._~:\\/?#\\[\\]@!$&'()*+,;%=]+",name:"markup.underline.link"},key:{match:"[a-zA-Z][a-zA-Z0-9]*:(?:[A-Za-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9A-Fa-f]{2})+",name:"markup.bold entity.name.class"},datatype:{match:"[a-zA-Z][a-zA-Z0-9]*:(?:[A-Za-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9A-Fa-f]{2})+",name:"string.regexp"},term:{match:"[a-zA-Z][a-zA-Z0-9]*:(?:[A-Za-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9A-Fa-f]{2})+",name:"entity.other.tasl.key"}}}; + +export { tasl_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/tcl.tmLanguage-c8c905c3.mjs b/docs/shiki/dist/languages/tcl.tmLanguage-c8c905c3.mjs new file mode 100644 index 00000000..bb35342f --- /dev/null +++ b/docs/shiki/dist/languages/tcl.tmLanguage-c8c905c3.mjs @@ -0,0 +1,3 @@ +var tcl_tmLanguage = {fileTypes:["tcl"],foldingStartMarker:"\\{\\s*$",foldingStopMarker:"^\\s*\\}",keyEquivalent:"^~T",name:"tcl",patterns:[{begin:"(?<=^|;)\\s*((#))",beginCaptures:{"1":{name:"comment.line.number-sign.tcl"},"2":{name:"punctuation.definition.comment.tcl"}},contentName:"comment.line.number-sign.tcl",end:"\\n",patterns:[{match:"(\\\\\\\\|\\\\\\n)"}]},{captures:{"1":{name:"keyword.control.tcl"}},match:"(?<=^|[\\[{;])\\s*(if|while|for|catch|default|return|break|continue|switch|exit|foreach|try|throw)\\b"},{captures:{"1":{name:"keyword.control.tcl"}},match:"(?<=^|})\\s*(then|elseif|else)\\b"},{captures:{"1":{name:"keyword.other.tcl"},"2":{name:"entity.name.function.tcl"}},match:"(?<=^|{)\\s*(proc)\\s+([^\\s]+)"},{captures:{"1":{name:"keyword.other.tcl"}},match:"(?<=^|[\\[{;])\\s*(after|append|array|auto_execok|auto_import|auto_load|auto_mkindex|auto_mkindex_old|auto_qualify|auto_reset|bgerror|binary|cd|clock|close|concat|dde|encoding|eof|error|eval|exec|expr|fblocked|fconfigure|fcopy|file|fileevent|filename|flush|format|gets|glob|global|history|http|incr|info|interp|join|lappend|library|lindex|linsert|list|llength|load|lrange|lreplace|lsearch|lset|lsort|memory|msgcat|namespace|open|package|parray|pid|pkg::create|pkg_mkIndex|proc|puts|pwd|re_syntax|read|registry|rename|resource|scan|seek|set|socket|SafeBase|source|split|string|subst|Tcl|tcl_endOfWord|tcl_findLibrary|tcl_startOfNextWord|tcl_startOfPreviousWord|tcl_wordBreakAfter|tcl_wordBreakBefore|tcltest|tclvars|tell|time|trace|unknown|unset|update|uplevel|upvar|variable|vwait)\\b"},{begin:"(?<=^|[\\[{;])\\s*(regexp|regsub)\\b\\s*",beginCaptures:{"1":{name:"keyword.other.tcl"}},comment:"special-case regexp/regsub keyword in order to handle the expression",end:"[\\n;\\]]",patterns:[{match:"\\\\(?:.|\\n)",name:"constant.character.escape.tcl"},{comment:"switch for regexp",match:"-\\w+\\s*"},{applyEndPatternLast:1,begin:"--\\s*",comment:"end of switches",end:"",patterns:[{include:"#regexp"}]},{include:"#regexp"}]},{include:"#escape"},{include:"#variable"},{include:"#operator"},{include:"#numeric"},{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.tcl"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.tcl"}},name:"string.quoted.double.tcl",patterns:[{include:"#escape"},{include:"#variable"},{include:"#embedded"}]}],repository:{"bare-string":{begin:"(?:^|(?<=\\s))\"",comment:"matches a single quote-enclosed word without scoping",end:"\"([^\\s\\]]*)",endCaptures:{"1":{name:"invalid.illegal.tcl"}},patterns:[{include:"#escape"},{include:"#variable"}]},braces:{begin:"(?:^|(?<=\\s))\\{",comment:"matches a single brace-enclosed word",end:"\\}([^\\s\\]]*)",endCaptures:{"1":{name:"invalid.illegal.tcl"}},patterns:[{match:"\\\\[{}\\n]",name:"constant.character.escape.tcl"},{include:"#inner-braces"}]},embedded:{begin:"\\[",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.tcl"}},end:"\\]",endCaptures:{"0":{name:"punctuation.section.embedded.end.tcl"}},name:"source.tcl.embedded",patterns:[{include:"source.tcl"}]},"escape":{match:"\\\\(\\d{1,3}|x[a-fA-F0-9]+|u[a-fA-F0-9]{1,4}|.|\\n)",name:"constant.character.escape.tcl"},"inner-braces":{begin:"\\{",comment:"matches a nested brace in a brace-enclosed word",end:"\\}",patterns:[{match:"\\\\[{}\\n]",name:"constant.character.escape.tcl"},{include:"#inner-braces"}]},regexp:{begin:"(?=\\S)(?![\\n;\\]])",comment:"matches a single word, named as a regexp, then swallows the rest of the command",end:"(?=[\\n;\\]])",patterns:[{begin:"(?=[^ \\t\\n;])",end:"(?=[ \\t\\n;])",name:"string.regexp.tcl",patterns:[{include:"#braces"},{include:"#bare-string"},{include:"#escape"},{include:"#variable"}]},{begin:"[ \\t]",comment:"swallow the rest of the command",end:"(?=[\\n;\\]])",patterns:[{include:"#variable"},{include:"#embedded"},{include:"#escape"},{include:"#braces"},{include:"#string"}]}]},string:{applyEndPatternLast:1,begin:"(?:^|(?<=\\s))(?=\")",comment:"matches a single quote-enclosed word with scoping",end:"",name:"string.quoted.double.tcl",patterns:[{include:"#bare-string"}]},variable:{captures:{"1":{name:"punctuation.definition.variable.tcl"}},match:"(\\$)((?:[a-zA-Z0-9_]|::)+(\\([^\\)]+\\))?|\\{[^\\}]*\\})",name:"support.function.tcl"},numeric:{match:"(?<![a-zA-Z])([+-]?([0-9]*[.])?[0-9]+f?)(?![\\.a-zA-Z])",name:"constant.numeric.tcl"},operator:{match:"(?<= |\\d)(-|\\+|~|&{1,2}|\\|{1,2}|<{1,2}|>{1,2}|\\*{1,2}|!|%|\\/|<=|>=|={1,2}|!=|\\^)(?= |\\d)",name:"keyword.operator.tcl"}},scopeName:"source.tcl",uuid:"62E11136-D9E5-461C-BE98-54E3A2A9E5E3"}; + +export { tcl_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/tex.tmLanguage-6bcf6d22.mjs b/docs/shiki/dist/languages/tex.tmLanguage-6bcf6d22.mjs new file mode 100644 index 00000000..4eb5dafb --- /dev/null +++ b/docs/shiki/dist/languages/tex.tmLanguage-6bcf6d22.mjs @@ -0,0 +1,3 @@ +var tex_tmLanguage = {name:"tex",patterns:[{captures:{"1":{name:"punctuation.definition.keyword.tex"}},match:"(\\\\)(backmatter|csname|else|endcsname|fi|frontmatter|mainmatter|unless|if(case|cat|csname|defined|dim|eof|false|fontchar|hbox|hmode|inner|mmode|num|odd|true|vbox|vmode|void|x)?)(?![a-zA-Z@])",name:"keyword.control.tex"},{captures:{"1":{name:"keyword.control.catcode.tex"},"2":{name:"punctuation.definition.keyword.tex"},"3":{name:"punctuation.separator.key-value.tex"},"4":{name:"constant.numeric.category.tex"}},match:"((\\\\)catcode)`(?:\\\\)?.(=)(\\d+)",name:"meta.catcode.tex"},{begin:"(^[ \\t]+)?(?=%)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.tex"}},end:"(?!\\G)",patterns:[{begin:"%:?",beginCaptures:{"0":{name:"punctuation.definition.comment.tex"}},end:"$\\n?",name:"comment.line.percentage.tex"},{begin:"^(%!TEX) (\\S*) =",beginCaptures:{"1":{name:"punctuation.definition.comment.tex"}},end:"$\\n?",name:"comment.line.percentage.directive.tex"}]},{match:"[\\[\\]]",name:"punctuation.definition.brackets.tex"},{begin:"(\\$\\$|\\$)",beginCaptures:{"1":{name:"punctuation.definition.string.begin.tex"}},end:"(\\1)",endCaptures:{"1":{name:"punctuation.definition.string.end.tex"}},name:"meta.math.block.tex support.class.math.block.tex",patterns:[{match:"\\\\\\$",name:"constant.character.escape.tex"},{include:"#math"},{include:"$self"}]},{match:"\\\\\\\\",name:"keyword.control.newline.tex"},{captures:{"1":{name:"punctuation.definition.function.tex"}},match:"(\\\\)(?:[\\p{Alphabetic}@]+|[,;])",name:"support.function.general.tex"},{captures:{"1":{name:"punctuation.definition.keyword.tex"}},match:"(\\\\)[^a-zA-Z@]",name:"constant.character.escape.tex"}],repository:{math:{patterns:[{begin:"((\\\\)(?:text|mbox))(\\{)",beginCaptures:{"1":{name:"constant.other.math.tex"},"2":{name:"punctuation.definition.function.tex"},"3":{name:"punctuation.definition.arguments.begin.tex meta.text.normal.tex"}},contentName:"meta.text.normal.tex",end:"\\}",endCaptures:{"0":{name:"punctuation.definition.arguments.end.tex meta.text.normal.tex"}},patterns:[{include:"#math"},{include:"$base"}]},{match:"\\\\{|\\\\}",name:"punctuation.math.bracket.pair.tex"},{match:"\\\\(left|right|((big|bigg|Big|Bigg)[lr]?))([\\(\\[\\<\\>\\]\\)\\.\\|]|\\\\[{}|]|\\\\[lr]?[Vv]ert|\\\\[lr]angle)",name:"punctuation.math.bracket.pair.big.tex"},{captures:{"1":{name:"punctuation.definition.constant.math.tex"}},match:"(\\\\)(s(s(earrow|warrow|lash)|h(ort(downarrow|uparrow|parallel|leftarrow|rightarrow|mid)|arp)|tar|i(gma|m(eq)?)|u(cc(sim|n(sim|approx)|curlyeq|eq|approx)?|pset(neq(q)?|plus(eq)?|eq(q)?)?|rd|m|bset(neq(q)?|plus(eq)?|eq(q)?)?)|p(hericalangle|adesuit)|e(tminus|arrow)|q(su(pset(eq)?|bset(eq)?)|c(up|ap)|uare)|warrow|m(ile|all(s(etminus|mile)|frown)))|h(slash|ook(leftarrow|rightarrow)|eartsuit|bar)|R(sh|ightarrow|e|bag)|Gam(e|ma)|n(s(hort(parallel|mid)|im|u(cc(eq)?|pseteq(q)?|bseteq))|Rightarrow|n(earrow|warrow)|cong|triangle(left(eq(slant)?)?|right(eq(slant)?)?)|i(plus)?|u|p(lus|arallel|rec(eq)?)|e(q|arrow|g|xists)|v(dash|Dash)|warrow|le(ss|q(slant|q)?|ft(arrow|rightarrow))|a(tural|bla)|VDash|rightarrow|g(tr|eq(slant|q)?)|mid|Left(arrow|rightarrow))|c(hi|irc(eq|le(d(circ|S|dash|ast)|arrow(left|right)))?|o(ng|prod|lon|mplement)|dot(s|p)?|u(p|r(vearrow(left|right)|ly(eq(succ|prec)|vee(downarrow|uparrow)?|wedge(downarrow|uparrow)?)))|enterdot|lubsuit|ap)|Xi|Maps(to(char)?|from(char)?)|B(ox|umpeq|bbk)|t(h(ick(sim|approx)|e(ta|refore))|imes|op|wohead(leftarrow|rightarrow)|a(u|lloblong)|riangle(down|q|left(eq(slant)?)?|right(eq(slant)?)?)?)|i(n(t(er(cal|leave))?|plus|fty)?|ota|math)|S(igma|u(pset|bset))|zeta|o(slash|times|int|dot|plus|vee|wedge|lessthan|greaterthan|m(inus|ega)|b(slash|long|ar))|d(i(v(ideontimes)?|a(g(down|up)|mond(suit)?)|gamma)|o(t(plus|eq(dot)?)|ublebarwedge|wn(harpoon(left|right)|downarrows|arrow))|d(ots|agger)|elta|a(sh(v|leftarrow|rightarrow)|leth|gger))|Y(down|up|left|right)|C(up|ap)|u(n(lhd|rhd)|p(silon|harpoon(left|right)|downarrow|uparrows|lus|arrow)|lcorner|rcorner)|jmath|Theta|Im|p(si|hi|i(tchfork)?|erp|ar(tial|allel)|r(ime|o(d|pto)|ec(sim|n(sim|approx)|curlyeq|eq|approx)?)|m)|e(t(h|a)|psilon|q(slant(less|gtr)|circ|uiv)|ll|xists|mptyset)|Omega|D(iamond|ownarrow|elta)|v(d(ots|ash)|ee(bar)?|Dash|ar(s(igma|u(psetneq(q)?|bsetneq(q)?))|nothing|curly(vee|wedge)|t(heta|imes|riangle(left|right)?)|o(slash|circle|times|dot|plus|vee|wedge|lessthan|ast|greaterthan|minus|b(slash|ar))|p(hi|i|ropto)|epsilon|kappa|rho|bigcirc))|kappa|Up(silon|downarrow|arrow)|Join|f(orall|lat|a(t(s(emi|lash)|bslash)|llingdotseq)|rown)|P(si|hi|i)|w(p|edge|r)|l(hd|n(sim|eq(q)?|approx)|ceil|times|ightning|o(ng(left(arrow|rightarrow)|rightarrow|maps(to|from))|zenge|oparrow(left|right))|dot(s|p)|e(ss(sim|dot|eq(qgtr|gtr)|approx|gtr)|q(slant|q)?|ft(slice|harpoon(down|up)|threetimes|leftarrows|arrow(t(ail|riangle))?|right(squigarrow|harpoons|arrow(s|triangle|eq)?))|adsto)|vertneqq|floor|l(c(orner|eil)|floor|l|bracket)?|a(ngle|mbda)|rcorner|bag)|a(s(ymp|t)|ngle|pprox(eq)?|l(pha|eph)|rrownot|malg)|V(dash|vdash)|r(h(o|d)|ceil|times|i(singdotseq|ght(s(quigarrow|lice)|harpoon(down|up)|threetimes|left(harpoons|arrows)|arrow(t(ail|riangle))?|rightarrows))|floor|angle|r(ceil|parenthesis|floor|bracket)|bag)|g(n(sim|eq(q)?|approx)|tr(sim|dot|eq(qless|less)|less|approx)|imel|eq(slant|q)?|vertneqq|amma|g(g)?)|Finv|xi|m(ho|i(nuso|d)|o(o|dels)|u(ltimap)?|p|e(asuredangle|rge)|aps(to|from(char)?))|b(i(n(dnasrepma|ampersand)|g(s(tar|qc(up|ap))|nplus|c(irc|u(p|rly(vee|wedge))|ap)|triangle(down|up)|interleave|o(times|dot|plus)|uplus|parallel|vee|wedge|box))|o(t|wtie|x(slash|circle|times|dot|plus|empty|ast|minus|b(slash|ox|ar)))|u(llet|mpeq)|e(cause|t(h|ween|a))|lack(square|triangle(down|left|right)?|lozenge)|a(ck(s(im(eq)?|lash)|prime|epsilon)|r(o|wedge))|bslash)|L(sh|ong(left(arrow|rightarrow)|rightarrow|maps(to|from))|eft(arrow|rightarrow)|leftarrow|ambda|bag)|Arrownot)(?![a-zA-Z])",name:"constant.character.math.tex"},{captures:{"1":{name:"punctuation.definition.constant.math.tex"}},match:"(\\\\)(sum|prod|coprod|int|oint|bigcap|bigcup|bigsqcup|bigvee|bigwedge|bigodot|bigotimes|bogoplus|biguplus)\\b",name:"constant.character.math.tex"},{captures:{"1":{name:"punctuation.definition.constant.math.tex"}},match:"(\\\\)(arccos|arcsin|arctan|arg|cos|cosh|cot|coth|csc|deg|det|dim|exp|gcd|hom|inf|ker|lg|lim|liminf|limsup|ln|log|max|min|pr|sec|sin|sinh|sup|tan|tanh)\\b",name:"constant.other.math.tex"},{begin:"((\\\\)Sexpr(\\{))",beginCaptures:{"1":{name:"support.function.sexpr.math.tex"},"2":{name:"punctuation.definition.function.math.tex"},"3":{name:"punctuation.section.embedded.begin.math.tex"}},contentName:"support.function.sexpr.math.tex",end:"(((\\})))",endCaptures:{"1":{name:"support.function.sexpr.math.tex"},"2":{name:"punctuation.section.embedded.end.math.tex"},"3":{name:"source.r"}},name:"meta.embedded.line.r",patterns:[{begin:"\\G(?!\\})",end:"(?=\\})",name:"source.r",patterns:[{include:"source.r"}]}]},{captures:{"1":{name:"punctuation.definition.constant.math.tex"}},match:"(\\\\)(?!begin\\{|verb)([A-Za-z]+)",name:"constant.other.general.math.tex"},{match:"(?<!\\\\)\\{",name:"punctuation.math.begin.bracket.curly.tex"},{match:"(?<!\\\\)\\}",name:"punctuation.math.end.bracket.curly.tex"},{match:"(?<!\\\\)\\(",name:"punctuation.math.begin.bracket.round.tex"},{match:"(?<!\\\\)\\)",name:"punctuation.math.end.bracket.round.tex"},{match:"(([0-9]*[\\.][0-9]+)|[0-9]+)",name:"constant.numeric.math.tex"},{match:"[\\+\\*/_\\^-]",name:"punctuation.math.operator.tex"}]},braces:{begin:"(?<!\\\\)\\{",beginCaptures:{"0":{name:"punctuation.group.begin.tex"}},end:"(?<!\\\\)\\}",endCaptures:{"0":{name:"punctuation.group.end.tex"}},name:"meta.group.braces.tex",patterns:[{include:"#braces"}]}},scopeName:"text.tex"}; + +export { tex_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/toml.tmLanguage-1b8531c7.mjs b/docs/shiki/dist/languages/toml.tmLanguage-1b8531c7.mjs new file mode 100644 index 00000000..2efb8d52 --- /dev/null +++ b/docs/shiki/dist/languages/toml.tmLanguage-1b8531c7.mjs @@ -0,0 +1,3 @@ +var toml_tmLanguage = {fileTypes:["toml"],keyEquivalent:"^~T",name:"toml",patterns:[{include:"#comments"},{include:"#groups"},{include:"#key_pair"},{include:"#invalid"}],repository:{comments:{begin:"(^[ \\t]+)?(?=#)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.toml"}},end:"(?!\\G)",patterns:[{begin:"#",beginCaptures:{"0":{name:"punctuation.definition.comment.toml"}},end:"\\n",name:"comment.line.number-sign.toml"}]},groups:{patterns:[{captures:{"1":{name:"punctuation.definition.section.begin.toml"},"2":{patterns:[{match:"[^\\s.]+",name:"entity.name.section.toml"}]},"3":{name:"punctuation.definition.section.begin.toml"}},match:"^\\s*(\\[)([^\\[\\]]*)(\\])",name:"meta.group.toml"},{captures:{"1":{name:"punctuation.definition.section.begin.toml"},"2":{patterns:[{match:"[^\\s.]+",name:"entity.name.section.toml"}]},"3":{name:"punctuation.definition.section.begin.toml"}},match:"^\\s*(\\[\\[)([^\\[\\]]*)(\\]\\])",name:"meta.group.double.toml"}]},invalid:{match:"\\S+(\\s*(?=\\S))?",name:"invalid.illegal.not-allowed-here.toml"},key_pair:{patterns:[{begin:"([A-Za-z0-9_-]+)\\s*(=)\\s*",captures:{"1":{name:"variable.other.key.toml"},"2":{name:"punctuation.separator.key-value.toml"}},end:"(?<=\\S)(?<!=)|$",patterns:[{include:"#primatives"}]},{begin:"((\")(.*?)(\"))\\s*(=)\\s*",captures:{"1":{name:"variable.other.key.toml"},"2":{name:"punctuation.definition.variable.begin.toml"},"3":{patterns:[{match:"\\\\([btnfr\"\\\\]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})",name:"constant.character.escape.toml"},{match:"\\\\[^btnfr\"\\\\]",name:"invalid.illegal.escape.toml"},{match:"\"",name:"invalid.illegal.not-allowed-here.toml"}]},"4":{name:"punctuation.definition.variable.end.toml"},"5":{name:"punctuation.separator.key-value.toml"}},end:"(?<=\\S)(?<!=)|$",patterns:[{include:"#primatives"}]},{begin:"((')([^']*)('))\\s*(=)\\s*",captures:{"1":{name:"variable.other.key.toml"},"2":{name:"punctuation.definition.variable.begin.toml"},"4":{name:"punctuation.definition.variable.end.toml"},"5":{name:"punctuation.separator.key-value.toml"}},end:"(?<=\\S)(?<!=)|$",patterns:[{include:"#primatives"}]},{begin:"(?x)\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t(?:\n\t\t\t\t\t\t\t\t\t[A-Za-z0-9_-]+\t\t\t\t# Bare key\n\t\t\t\t\t\t\t\t | \" (?:[^\"\\\\]|\\\\.)* \"\t\t# Double quoted key\n\t\t\t\t\t\t\t\t | ' [^']* '\t\t# Sindle quoted key\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t(?:\n\t\t\t\t\t\t\t\t\t\\s* \\. \\s*\t\t\t\t\t# Dot\n\t\t\t\t\t\t\t\t | (?= \\s* =)\t\t\t\t\t# or look-ahead for equals\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t){2,}\t\t\t\t\t\t\t\t# Ensure at least one dot\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\\s*(=)\\s*\n\t\t\t\t\t",captures:{"1":{name:"variable.other.key.toml",patterns:[{match:"\\.",name:"punctuation.separator.variable.toml"},{captures:{"1":{name:"punctuation.definition.variable.begin.toml"},"2":{patterns:[{match:"\\\\([btnfr\"\\\\]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})",name:"constant.character.escape.toml"},{match:"\\\\[^btnfr\"\\\\]",name:"invalid.illegal.escape.toml"}]},"3":{name:"punctuation.definition.variable.end.toml"}},match:"(\")((?:[^\"\\\\]|\\\\.)*)(\")"},{captures:{"1":{name:"punctuation.definition.variable.begin.toml"},"2":{name:"punctuation.definition.variable.end.toml"}},match:"(')[^']*(')"}]},"3":{name:"punctuation.separator.key-value.toml"}},comment:"Dotted key",end:"(?<=\\S)(?<!=)|$",patterns:[{include:"#primatives"}]}]},primatives:{patterns:[{begin:"\\G\"\"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.toml"}},end:"\"{3,5}",endCaptures:{"0":{name:"punctuation.definition.string.end.toml"}},name:"string.quoted.triple.double.toml",patterns:[{match:"\\\\([btnfr\"\\\\]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})",name:"constant.character.escape.toml"},{match:"\\\\[^btnfr\"\\\\\\n]",name:"invalid.illegal.escape.toml"}]},{begin:"\\G\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.toml"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.toml"}},name:"string.quoted.double.toml",patterns:[{match:"\\\\([btnfr\"\\\\]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})",name:"constant.character.escape.toml"},{match:"\\\\[^btnfr\"\\\\]",name:"invalid.illegal.escape.toml"}]},{begin:"\\G'''",beginCaptures:{"0":{name:"punctuation.definition.string.begin.toml"}},end:"'{3,5}",endCaptures:{"0":{name:"punctuation.definition.string.end.toml"}},name:"string.quoted.triple.single.toml"},{begin:"\\G'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.toml"}},end:"'",endCaptures:{"0":{name:"punctuation.definition.string.end.toml"}},name:"string.quoted.single.toml"},{match:"\\G(?x)\n\t\t\t\t\t\t[0-9]{4}\n\t\t\t\t\t\t-\n\t\t\t\t\t\t(0[1-9]|1[012])\n\t\t\t\t\t\t-\n\t\t\t\t\t\t(?!00|3[2-9])[0-3][0-9]\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t[Tt ]\n\t\t\t\t\t\t\t(?!2[5-9])[0-2][0-9]\n\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t[0-5][0-9]\n\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t(?!6[1-9])[0-6][0-9]\n\t\t\t\t\t\t\t(\\.[0-9]+)?\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\tZ\n\t\t\t\t\t\t\t | [+-](?!2[5-9])[0-2][0-9]:[0-5][0-9]\n\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t)?\n\t\t\t\t\t",name:"constant.other.date.toml"},{match:"\\G(?x)\n\t\t\t\t\t\t(?!2[5-9])[0-2][0-9]\n\t\t\t\t\t\t:\n\t\t\t\t\t\t[0-5][0-9]\n\t\t\t\t\t\t:\n\t\t\t\t\t\t(?!6[1-9])[0-6][0-9]\n\t\t\t\t\t\t(\\.[0-9]+)?\n\t\t\t\t\t",name:"constant.other.time.toml"},{match:"\\G(true|false)",name:"constant.language.boolean.toml"},{match:"\\G0x\\h(\\h|_\\h)*",name:"constant.numeric.hex.toml"},{match:"\\G0o[0-7]([0-7]|_[0-7])*",name:"constant.numeric.octal.toml"},{match:"\\G0b[01]([01]|_[01])*",name:"constant.numeric.binary.toml"},{match:"\\G[+-]?(inf|nan)",name:"constant.numeric.toml"},{match:"(?x)\n\t\t\t\t\t\t\\G\n\t\t\t\t\t\t(\n\t\t\t\t\t\t [+-]?\n\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t0\n\t\t\t\t\t\t\t | ([1-9](([0-9]|_[0-9])+)?)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t\t(?=[.eE])\n\t\t\t\t\t\t(\n\t\t\t\t\t\t \\.\n\t\t\t\t\t\t ([0-9](([0-9]|_[0-9])+)?)\n\t\t\t\t\t\t)?\n\t\t\t\t\t\t(\n\t\t\t\t\t\t [eE]\n\t\t\t\t\t\t ([+-]?[0-9](([0-9]|_[0-9])+)?)\n\t\t\t\t\t\t)?\n\t\t\t\t\t",name:"constant.numeric.float.toml"},{match:"(?x)\n\t\t\t\t\t\t\\G\n\t\t\t\t\t\t(\n\t\t\t\t\t\t [+-]?\n\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t0\n\t\t\t\t\t\t\t | ([1-9](([0-9]|_[0-9])+)?)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t",name:"constant.numeric.integer.toml"},{begin:"\\G\\[",beginCaptures:{"0":{name:"punctuation.definition.array.begin.toml"}},end:"\\]",endCaptures:{"0":{name:"punctuation.definition.array.end.toml"}},name:"meta.array.toml",patterns:[{begin:"(?=[\"'']|[+-]?[0-9]|[+-]?(inf|nan)|true|false|\\[|\\{)",end:",|(?=])",endCaptures:{"0":{name:"punctuation.separator.array.toml"}},patterns:[{include:"#primatives"},{include:"#comments"},{include:"#invalid"}]},{include:"#comments"},{include:"#invalid"}]},{begin:"\\G\\{",beginCaptures:{"0":{name:"punctuation.definition.inline-table.begin.toml"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.inline-table.end.toml"}},name:"meta.inline-table.toml",patterns:[{begin:"(?=\\S)",end:",|(?=})",endCaptures:{"0":{name:"punctuation.separator.inline-table.toml"}},patterns:[{include:"#key_pair"}]},{include:"#comments"}]}]}},scopeName:"source.toml",uuid:"7DEF2EDB-5BB7-4DD2-9E78-3541A26B7923"}; + +export { toml_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/tsx.tmLanguage-267e2f5a.mjs b/docs/shiki/dist/languages/tsx.tmLanguage-267e2f5a.mjs new file mode 100644 index 00000000..24d4d49d --- /dev/null +++ b/docs/shiki/dist/languages/tsx.tmLanguage-267e2f5a.mjs @@ -0,0 +1,3 @@ +var tsx_tmLanguage = {information_for_contributors:["This file has been converted from https://github.com/microsoft/TypeScript-TmLanguage/blob/master/TypeScriptReact.tmLanguage","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."],version:"https://github.com/microsoft/TypeScript-TmLanguage/commit/8c7482b94b548eab56da64dbfb30b82589b3f747",name:"tsx",scopeName:"source.tsx",patterns:[{include:"#directives"},{include:"#statements"},{include:"#shebang"}],repository:{shebang:{name:"comment.line.shebang.tsx",match:"\\A(#!).*(?=$)",captures:{"1":{name:"punctuation.definition.comment.tsx"}}},statements:{patterns:[{include:"#declaration"},{include:"#control-statement"},{include:"#after-operator-block-as-object-literal"},{include:"#decl-block"},{include:"#label"},{include:"#expression"},{include:"#punctuation-semicolon"},{include:"#string"},{include:"#comment"}]},declaration:{patterns:[{include:"#decorator"},{include:"#var-expr"},{include:"#function-declaration"},{include:"#class-declaration"},{include:"#interface-declaration"},{include:"#enum-declaration"},{include:"#namespace-declaration"},{include:"#type-alias-declaration"},{include:"#import-equals-declaration"},{include:"#import-declaration"},{include:"#export-declaration"},{name:"storage.modifier.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(declare|export)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"}]},"control-statement":{patterns:[{include:"#switch-statement"},{include:"#for-loop"},{name:"keyword.control.trycatch.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(catch|finally|throw|try)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(break|continue|goto)\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",captures:{"1":{name:"keyword.control.loop.tsx"},"2":{name:"entity.name.label.tsx"}}},{name:"keyword.control.loop.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(break|continue|do|goto|while)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(return)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{"0":{name:"keyword.control.flow.tsx"}},end:"(?=[;}]|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",patterns:[{include:"#expression"}]},{name:"keyword.control.switch.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(case|default|switch)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{include:"#if-statement"},{name:"keyword.control.conditional.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(else|if)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{name:"keyword.control.with.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(with)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{name:"keyword.control.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(package)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{name:"keyword.other.debugger.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(debugger)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"}]},label:{patterns:[{begin:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)(?=\\s*\\{)",beginCaptures:{"1":{name:"entity.name.label.tsx"},"2":{name:"punctuation.separator.label.tsx"}},end:"(?<=\\})",patterns:[{include:"#decl-block"}]},{match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)",captures:{"1":{name:"entity.name.label.tsx"},"2":{name:"punctuation.separator.label.tsx"}}}]},expression:{patterns:[{include:"#expressionWithoutIdentifiers"},{include:"#identifiers"},{include:"#expressionPunctuations"}]},expressionWithoutIdentifiers:{patterns:[{include:"#jsx"},{include:"#string"},{include:"#regex"},{include:"#comment"},{include:"#function-expression"},{include:"#class-expression"},{include:"#arrow-function"},{include:"#paren-expression-possibly-arrow"},{include:"#cast"},{include:"#ternary-expression"},{include:"#new-expr"},{include:"#instanceof-expr"},{include:"#object-literal"},{include:"#expression-operators"},{include:"#function-call"},{include:"#literal"},{include:"#support-objects"},{include:"#paren-expression"}]},expressionPunctuations:{patterns:[{include:"#punctuation-comma"},{include:"#punctuation-accessor"}]},decorator:{name:"meta.decorator.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))\\@",beginCaptures:{"0":{name:"punctuation.decorator.tsx"}},end:"(?=\\s)",patterns:[{include:"#expression"}]},"var-expr":{patterns:[{name:"meta.var.expr.tsx",begin:"(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))",end:"(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=^|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?<!^let|[^\\._$[:alnum:]]let|^var|[^\\._$[:alnum:]]var)(?=\\s*$)))",patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*",beginCaptures:{"1":{name:"keyword.control.export.tsx"},"2":{name:"storage.modifier.tsx"},"3":{name:"storage.type.tsx"}},end:"(?=\\S)"},{include:"#destructuring-variable"},{include:"#var-single-variable"},{include:"#variable-initializer"},{include:"#comment"},{begin:"(,)\\s*(?=$|\\/\\/)",beginCaptures:{"1":{name:"punctuation.separator.comma.tsx"}},end:"(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{include:"#destructuring-variable"},{include:"#var-single-variable"},{include:"#punctuation-comma"}]},{include:"#punctuation-comma"}]},{name:"meta.var.expr.tsx",begin:"(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))",beginCaptures:{"1":{name:"keyword.control.export.tsx"},"2":{name:"storage.modifier.tsx"},"3":{name:"storage.type.tsx"}},end:"(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=^|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?<!^const|[^\\._$[:alnum:]]const)(?=\\s*$)))",patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*",beginCaptures:{"1":{name:"keyword.control.export.tsx"},"2":{name:"storage.modifier.tsx"},"3":{name:"storage.type.tsx"}},end:"(?=\\S)"},{include:"#destructuring-const"},{include:"#var-single-const"},{include:"#variable-initializer"},{include:"#comment"},{begin:"(,)\\s*(?=$|\\/\\/)",beginCaptures:{"1":{name:"punctuation.separator.comma.tsx"}},end:"(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{include:"#destructuring-const"},{include:"#var-single-const"},{include:"#punctuation-comma"}]},{include:"#punctuation-comma"}]},{name:"meta.var.expr.tsx",begin:"(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))",beginCaptures:{"1":{name:"keyword.control.export.tsx"},"2":{name:"storage.modifier.tsx"},"3":{name:"storage.type.tsx"}},end:"(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?<!^using|[^\\._$[:alnum:]]using|^await\\s+using|[^\\._$[:alnum:]]await\\s+using)(?=\\s*$)))",patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*",beginCaptures:{"1":{name:"keyword.control.export.tsx"},"2":{name:"storage.modifier.tsx"},"3":{name:"storage.type.tsx"}},end:"(?=\\S)"},{include:"#var-single-const"},{include:"#variable-initializer"},{include:"#comment"},{begin:"(,)\\s*((?!\\S)|(?=\\/\\/))",beginCaptures:{"1":{name:"punctuation.separator.comma.tsx"}},end:"(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{include:"#var-single-const"},{include:"#punctuation-comma"}]},{include:"#punctuation-comma"}]}]},"var-single-variable":{patterns:[{name:"meta.var-single-variable.expr.tsx",begin:"(?x)([_$[:alpha:]][_$[:alnum:]]*)(\\!)?(?=\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))",beginCaptures:{"1":{name:"meta.definition.variable.tsx entity.name.function.tsx"},"2":{name:"keyword.operator.definiteassignment.tsx"}},end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))",patterns:[{include:"#var-single-variable-type-annotation"}]},{name:"meta.var-single-variable.expr.tsx",begin:"([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])(\\!)?",beginCaptures:{"1":{name:"meta.definition.variable.tsx variable.other.constant.tsx"},"2":{name:"keyword.operator.definiteassignment.tsx"}},end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))",patterns:[{include:"#var-single-variable-type-annotation"}]},{name:"meta.var-single-variable.expr.tsx",begin:"([_$[:alpha:]][_$[:alnum:]]*)(\\!)?",beginCaptures:{"1":{name:"meta.definition.variable.tsx variable.other.readwrite.tsx"},"2":{name:"keyword.operator.definiteassignment.tsx"}},end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))",patterns:[{include:"#var-single-variable-type-annotation"}]}]},"var-single-const":{patterns:[{name:"meta.var-single-variable.expr.tsx",begin:"(?x)([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))",beginCaptures:{"1":{name:"meta.definition.variable.tsx variable.other.constant.tsx entity.name.function.tsx"}},end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))",patterns:[{include:"#var-single-variable-type-annotation"}]},{name:"meta.var-single-variable.expr.tsx",begin:"([_$[:alpha:]][_$[:alnum:]]*)",beginCaptures:{"1":{name:"meta.definition.variable.tsx variable.other.constant.tsx"}},end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))",patterns:[{include:"#var-single-variable-type-annotation"}]}]},"var-single-variable-type-annotation":{patterns:[{include:"#type-annotation"},{include:"#string"},{include:"#comment"}]},"destructuring-variable":{patterns:[{name:"meta.object-binding-pattern-variable.tsx",begin:"(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\{)",end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",patterns:[{include:"#object-binding-pattern"},{include:"#type-annotation"},{include:"#comment"}]},{name:"meta.array-binding-pattern-variable.tsx",begin:"(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\[)",end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",patterns:[{include:"#array-binding-pattern"},{include:"#type-annotation"},{include:"#comment"}]}]},"destructuring-const":{patterns:[{name:"meta.object-binding-pattern-variable.tsx",begin:"(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\{)",end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",patterns:[{include:"#object-binding-pattern-const"},{include:"#type-annotation"},{include:"#comment"}]},{name:"meta.array-binding-pattern-variable.tsx",begin:"(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\[)",end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",patterns:[{include:"#array-binding-pattern-const"},{include:"#type-annotation"},{include:"#comment"}]}]},"object-binding-element":{patterns:[{include:"#comment"},{begin:"(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))",end:"(?=,|\\})",patterns:[{include:"#object-binding-element-propertyName"},{include:"#binding-element"}]},{include:"#object-binding-pattern"},{include:"#destructuring-variable-rest"},{include:"#variable-initializer"},{include:"#punctuation-comma"}]},"object-binding-element-const":{patterns:[{include:"#comment"},{begin:"(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))",end:"(?=,|\\})",patterns:[{include:"#object-binding-element-propertyName"},{include:"#binding-element-const"}]},{include:"#object-binding-pattern-const"},{include:"#destructuring-variable-rest-const"},{include:"#variable-initializer"},{include:"#punctuation-comma"}]},"object-binding-element-propertyName":{begin:"(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))",end:"(:)",endCaptures:{"0":{name:"punctuation.destructuring.tsx"}},patterns:[{include:"#string"},{include:"#array-literal"},{include:"#numeric-literal"},{name:"variable.object.property.tsx",match:"([_$[:alpha:]][_$[:alnum:]]*)"}]},"binding-element":{patterns:[{include:"#comment"},{include:"#string"},{include:"#numeric-literal"},{include:"#regex"},{include:"#object-binding-pattern"},{include:"#array-binding-pattern"},{include:"#destructuring-variable-rest"},{include:"#variable-initializer"}]},"binding-element-const":{patterns:[{include:"#comment"},{include:"#string"},{include:"#numeric-literal"},{include:"#regex"},{include:"#object-binding-pattern-const"},{include:"#array-binding-pattern-const"},{include:"#destructuring-variable-rest-const"},{include:"#variable-initializer"}]},"destructuring-variable-rest":{match:"(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)",captures:{"1":{name:"keyword.operator.rest.tsx"},"2":{name:"meta.definition.variable.tsx variable.other.readwrite.tsx"}}},"destructuring-variable-rest-const":{match:"(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)",captures:{"1":{name:"keyword.operator.rest.tsx"},"2":{name:"meta.definition.variable.tsx variable.other.constant.tsx"}}},"object-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\{)",beginCaptures:{"1":{name:"keyword.operator.rest.tsx"},"2":{name:"punctuation.definition.binding-pattern.object.tsx"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.binding-pattern.object.tsx"}},patterns:[{include:"#object-binding-element"}]},"object-binding-pattern-const":{begin:"(?:(\\.\\.\\.)\\s*)?(\\{)",beginCaptures:{"1":{name:"keyword.operator.rest.tsx"},"2":{name:"punctuation.definition.binding-pattern.object.tsx"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.binding-pattern.object.tsx"}},patterns:[{include:"#object-binding-element-const"}]},"array-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{"1":{name:"keyword.operator.rest.tsx"},"2":{name:"punctuation.definition.binding-pattern.array.tsx"}},end:"\\]",endCaptures:{"0":{name:"punctuation.definition.binding-pattern.array.tsx"}},patterns:[{include:"#binding-element"},{include:"#punctuation-comma"}]},"array-binding-pattern-const":{begin:"(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{"1":{name:"keyword.operator.rest.tsx"},"2":{name:"punctuation.definition.binding-pattern.array.tsx"}},end:"\\]",endCaptures:{"0":{name:"punctuation.definition.binding-pattern.array.tsx"}},patterns:[{include:"#binding-element-const"},{include:"#punctuation-comma"}]},"parameter-name":{patterns:[{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)",captures:{"1":{name:"storage.modifier.tsx"}}},{match:"(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))",captures:{"1":{name:"storage.modifier.tsx"},"2":{name:"keyword.operator.rest.tsx"},"3":{name:"entity.name.function.tsx variable.language.this.tsx"},"4":{name:"entity.name.function.tsx"},"5":{name:"keyword.operator.optional.tsx"}}},{match:"(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)",captures:{"1":{name:"storage.modifier.tsx"},"2":{name:"keyword.operator.rest.tsx"},"3":{name:"variable.parameter.tsx variable.language.this.tsx"},"4":{name:"variable.parameter.tsx"},"5":{name:"keyword.operator.optional.tsx"}}}]},"destructuring-parameter":{patterns:[{name:"meta.parameter.object-binding-pattern.tsx",begin:"(?<!=|:)\\s*(?:(\\.\\.\\.)\\s*)?(\\{)",beginCaptures:{"1":{name:"keyword.operator.rest.tsx"},"2":{name:"punctuation.definition.binding-pattern.object.tsx"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.binding-pattern.object.tsx"}},patterns:[{include:"#parameter-object-binding-element"}]},{name:"meta.paramter.array-binding-pattern.tsx",begin:"(?<!=|:)\\s*(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{"1":{name:"keyword.operator.rest.tsx"},"2":{name:"punctuation.definition.binding-pattern.array.tsx"}},end:"\\]",endCaptures:{"0":{name:"punctuation.definition.binding-pattern.array.tsx"}},patterns:[{include:"#parameter-binding-element"},{include:"#punctuation-comma"}]}]},"parameter-object-binding-element":{patterns:[{include:"#comment"},{begin:"(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))",end:"(?=,|\\})",patterns:[{include:"#object-binding-element-propertyName"},{include:"#parameter-binding-element"},{include:"#paren-expression"}]},{include:"#parameter-object-binding-pattern"},{include:"#destructuring-parameter-rest"},{include:"#variable-initializer"},{include:"#punctuation-comma"}]},"parameter-binding-element":{patterns:[{include:"#comment"},{include:"#string"},{include:"#numeric-literal"},{include:"#regex"},{include:"#parameter-object-binding-pattern"},{include:"#parameter-array-binding-pattern"},{include:"#destructuring-parameter-rest"},{include:"#variable-initializer"}]},"destructuring-parameter-rest":{match:"(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)",captures:{"1":{name:"keyword.operator.rest.tsx"},"2":{name:"variable.parameter.tsx"}}},"parameter-object-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\{)",beginCaptures:{"1":{name:"keyword.operator.rest.tsx"},"2":{name:"punctuation.definition.binding-pattern.object.tsx"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.binding-pattern.object.tsx"}},patterns:[{include:"#parameter-object-binding-element"}]},"parameter-array-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{"1":{name:"keyword.operator.rest.tsx"},"2":{name:"punctuation.definition.binding-pattern.array.tsx"}},end:"\\]",endCaptures:{"0":{name:"punctuation.definition.binding-pattern.array.tsx"}},patterns:[{include:"#parameter-binding-element"},{include:"#punctuation-comma"}]},"field-declaration":{name:"meta.field.declaration.tsx",begin:"(?x)(?<!\\()(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)\\s+)?(?=\\s*((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|(\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|\\}|$))",beginCaptures:{"1":{name:"storage.modifier.tsx"}},end:"(?x)(?=\\}|;|,|$|(^(?!\\s*((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|(\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|$))))|(?<=\\})",patterns:[{include:"#variable-initializer"},{include:"#type-annotation"},{include:"#string"},{include:"#array-literal"},{include:"#numeric-literal"},{include:"#comment"},{match:"(?x)(\\#?[_$[:alpha:]][_$[:alnum:]]*)(?:(\\?)|(\\!))?(?=\\s*\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))",captures:{"1":{name:"meta.definition.property.tsx entity.name.function.tsx"},"2":{name:"keyword.operator.optional.tsx"},"3":{name:"keyword.operator.definiteassignment.tsx"}}},{name:"meta.definition.property.tsx variable.object.property.tsx",match:"\\#?[_$[:alpha:]][_$[:alnum:]]*"},{name:"keyword.operator.optional.tsx",match:"\\?"},{name:"keyword.operator.definiteassignment.tsx",match:"\\!"}]},"variable-initializer":{patterns:[{begin:"(?<!=|!)(=)(?!=)(?=\\s*\\S)(?!\\s*.*=>\\s*$)",beginCaptures:{"1":{name:"keyword.operator.assignment.tsx"}},end:"(?=$|^|[,);}\\]]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",patterns:[{include:"#expression"}]},{begin:"(?<!=|!)(=)(?!=)",beginCaptures:{"1":{name:"keyword.operator.assignment.tsx"}},end:"(?=[,);}\\]]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))|(?=^\\s*$)|(?<![\\|\\&\\+\\-\\*\\/])(?<=\\S)(?<!=)(?=\\s*$)",patterns:[{include:"#expression"}]}]},"function-declaration":{name:"meta.function.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\s*",beginCaptures:{"1":{name:"keyword.control.export.tsx"},"2":{name:"storage.modifier.tsx"},"3":{name:"storage.modifier.async.tsx"},"4":{name:"storage.type.function.tsx"},"5":{name:"keyword.generator.asterisk.tsx"},"6":{name:"meta.definition.function.tsx entity.name.function.tsx"}},end:"(?=;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|(?<=\\})",patterns:[{include:"#function-name"},{include:"#function-body"}]},"function-expression":{name:"meta.function.expression.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\s*",beginCaptures:{"1":{name:"storage.modifier.async.tsx"},"2":{name:"storage.type.function.tsx"},"3":{name:"keyword.generator.asterisk.tsx"},"4":{name:"meta.definition.function.tsx entity.name.function.tsx"}},end:"(?=;)|(?<=\\})",patterns:[{include:"#function-name"},{include:"#single-line-comment-consuming-line-ending"},{include:"#function-body"}]},"function-name":{name:"meta.definition.function.tsx entity.name.function.tsx",match:"[_$[:alpha:]][_$[:alnum:]]*"},"function-body":{patterns:[{include:"#comment"},{include:"#type-parameters"},{include:"#function-parameters"},{include:"#return-type"},{include:"#type-function-return-type"},{include:"#decl-block"},{name:"keyword.generator.asterisk.tsx",match:"\\*"}]},"method-declaration":{patterns:[{name:"meta.method.declaration.tsx",begin:"(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?\\s*\\b(constructor)\\b(?!:)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{"1":{name:"storage.modifier.tsx"},"2":{name:"storage.modifier.tsx"},"3":{name:"storage.modifier.tsx"},"4":{name:"storage.modifier.async.tsx"},"5":{name:"storage.type.tsx"}},end:"(?=\\}|;|,|$)|(?<=\\})",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]},{name:"meta.method.declaration.tsx",begin:"(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:(?:\\s*\\b(new)\\b(?!:)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|(?:(\\*)\\s*)?)(?=\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{"1":{name:"storage.modifier.tsx"},"2":{name:"storage.modifier.tsx"},"3":{name:"storage.modifier.tsx"},"4":{name:"storage.modifier.async.tsx"},"5":{name:"keyword.operator.new.tsx"},"6":{name:"keyword.generator.asterisk.tsx"}},end:"(?=\\}|;|,|$)|(?<=\\})",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]},{name:"meta.method.declaration.tsx",begin:"(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{"1":{name:"storage.modifier.tsx"},"2":{name:"storage.modifier.tsx"},"3":{name:"storage.modifier.tsx"},"4":{name:"storage.modifier.async.tsx"},"5":{name:"storage.type.property.tsx"},"6":{name:"keyword.generator.asterisk.tsx"}},end:"(?=\\}|;|,|$)|(?<=\\})",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]}]},"object-literal-method-declaration":{name:"meta.method.declaration.tsx",begin:"(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{"1":{name:"storage.modifier.async.tsx"},"2":{name:"storage.type.property.tsx"},"3":{name:"keyword.generator.asterisk.tsx"}},end:"(?=\\}|;|,)|(?<=\\})",patterns:[{include:"#method-declaration-name"},{include:"#function-body"},{begin:"(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{"1":{name:"storage.modifier.async.tsx"},"2":{name:"storage.type.property.tsx"},"3":{name:"keyword.generator.asterisk.tsx"}},end:"(?=\\(|\\<)",patterns:[{include:"#method-declaration-name"}]}]},"method-declaration-name":{begin:"(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??)\\s*[\\(\\<])",end:"(?=\\(|\\<)",patterns:[{include:"#string"},{include:"#array-literal"},{include:"#numeric-literal"},{name:"meta.definition.method.tsx entity.name.function.tsx",match:"[_$[:alpha:]][_$[:alnum:]]*"},{name:"keyword.operator.optional.tsx",match:"\\?"}]},"arrow-function":{patterns:[{name:"meta.arrow.tsx",match:"(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(\\basync)\\s+)?([_$[:alpha:]][_$[:alnum:]]*)\\s*(?==>)",captures:{"1":{name:"storage.modifier.async.tsx"},"2":{name:"variable.parameter.tsx"}}},{name:"meta.arrow.tsx",begin:"(?x) (?:\n (?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(\\basync)\n)? ((?<![})!\\]])\\s*\n (?=\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n )\n)",beginCaptures:{"1":{name:"storage.modifier.async.tsx"}},end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",patterns:[{include:"#comment"},{include:"#type-parameters"},{include:"#function-parameters"},{include:"#arrow-return-type"},{include:"#possibly-arrow-return-type"}]},{name:"meta.arrow.tsx",begin:"=>",beginCaptures:{"0":{name:"storage.type.function.arrow.tsx"}},end:"((?<=\\}|\\S)(?<!=>)|((?!\\{)(?=\\S)))(?!\\/[\\/\\*])",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#decl-block"},{include:"#expression"}]}]},"indexer-declaration":{name:"meta.indexer.declaration.tsx",begin:"(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)\\s*)?\\s*(\\[)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=:)",beginCaptures:{"1":{name:"storage.modifier.tsx"},"2":{name:"meta.brace.square.tsx"},"3":{name:"variable.parameter.tsx"}},end:"(\\])\\s*(\\?\\s*)?|$",endCaptures:{"1":{name:"meta.brace.square.tsx"},"2":{name:"keyword.operator.optional.tsx"}},patterns:[{include:"#type-annotation"}]},"indexer-mapped-type-declaration":{name:"meta.indexer.mappedtype.declaration.tsx",begin:"(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([+-])?(readonly)\\s*)?\\s*(\\[)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s+(in)\\s+",beginCaptures:{"1":{name:"keyword.operator.type.modifier.tsx"},"2":{name:"storage.modifier.tsx"},"3":{name:"meta.brace.square.tsx"},"4":{name:"entity.name.type.tsx"},"5":{name:"keyword.operator.expression.in.tsx"}},end:"(\\])([+-])?\\s*(\\?\\s*)?|$",endCaptures:{"1":{name:"meta.brace.square.tsx"},"2":{name:"keyword.operator.type.modifier.tsx"},"3":{name:"keyword.operator.optional.tsx"}},patterns:[{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+",captures:{"1":{name:"keyword.control.as.tsx"}}},{include:"#type"}]},"function-parameters":{name:"meta.parameters.tsx",begin:"\\(",beginCaptures:{"0":{name:"punctuation.definition.parameters.begin.tsx"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.parameters.end.tsx"}},patterns:[{include:"#function-parameters-body"}]},"function-parameters-body":{patterns:[{include:"#comment"},{include:"#string"},{include:"#decorator"},{include:"#destructuring-parameter"},{include:"#parameter-name"},{include:"#parameter-type-annotation"},{include:"#variable-initializer"},{name:"punctuation.separator.parameter.tsx",match:","}]},"class-declaration":{name:"meta.class.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(?:(abstract)\\s+)?\\b(class)\\b(?=\\s+|/[/*])",beginCaptures:{"1":{name:"keyword.control.export.tsx"},"2":{name:"storage.modifier.tsx"},"3":{name:"storage.modifier.tsx"},"4":{name:"storage.type.class.tsx"}},end:"(?<=\\})",patterns:[{include:"#class-declaration-or-expression-patterns"}]},"class-expression":{name:"meta.class.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(class)\\b(?=\\s+|[<{]|\\/[\\/*])",beginCaptures:{"1":{name:"storage.modifier.tsx"},"2":{name:"storage.type.class.tsx"}},end:"(?<=\\})",patterns:[{include:"#class-declaration-or-expression-patterns"}]},"class-declaration-or-expression-patterns":{patterns:[{include:"#comment"},{include:"#class-or-interface-heritage"},{match:"[_$[:alpha:]][_$[:alnum:]]*",captures:{"0":{name:"entity.name.type.class.tsx"}}},{include:"#type-parameters"},{include:"#class-or-interface-body"}]},"interface-declaration":{name:"meta.interface.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(?:(abstract)\\s+)?\\b(interface)\\b(?=\\s+|/[/*])",beginCaptures:{"1":{name:"keyword.control.export.tsx"},"2":{name:"storage.modifier.tsx"},"3":{name:"storage.modifier.tsx"},"4":{name:"storage.type.interface.tsx"}},end:"(?<=\\})",patterns:[{include:"#comment"},{include:"#class-or-interface-heritage"},{match:"[_$[:alpha:]][_$[:alnum:]]*",captures:{"0":{name:"entity.name.type.interface.tsx"}}},{include:"#type-parameters"},{include:"#class-or-interface-body"}]},"class-or-interface-heritage":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(extends|implements)\\b)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{"1":{name:"storage.modifier.tsx"}},end:"(?=\\{)",patterns:[{include:"#comment"},{include:"#class-or-interface-heritage"},{include:"#type-parameters"},{include:"#expressionWithoutIdentifiers"},{match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))(?=\\s*[_$[:alpha:]][_$[:alnum:]]*(\\s*\\??\\.\\s*[_$[:alpha:]][_$[:alnum:]]*)*\\s*)",captures:{"1":{name:"entity.name.type.module.tsx"},"2":{name:"punctuation.accessor.tsx"},"3":{name:"punctuation.accessor.optional.tsx"}}},{match:"([_$[:alpha:]][_$[:alnum:]]*)",captures:{"1":{name:"entity.other.inherited-class.tsx"}}},{include:"#expressionPunctuations"}]},"class-or-interface-body":{begin:"\\{",beginCaptures:{"0":{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.block.tsx"}},patterns:[{include:"#comment"},{include:"#decorator"},{begin:"(?<=:)\\s*",end:"(?=\\s|[;),}\\]:\\-\\+]|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",patterns:[{include:"#expression"}]},{include:"#method-declaration"},{include:"#indexer-declaration"},{include:"#field-declaration"},{include:"#string"},{include:"#type-annotation"},{include:"#variable-initializer"},{include:"#access-modifier"},{include:"#property-accessor"},{include:"#async-modifier"},{include:"#after-operator-block-as-object-literal"},{include:"#decl-block"},{include:"#expression"},{include:"#punctuation-comma"},{include:"#punctuation-semicolon"}]},"access-modifier":{name:"storage.modifier.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(abstract|declare|override|public|protected|private|readonly|static)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},"property-accessor":{name:"storage.type.property.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(accessor|get|set)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},"async-modifier":{name:"storage.modifier.async.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(async)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},"enum-declaration":{name:"meta.enum.declaration.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:\\b(const)\\s+)?\\b(enum)\\s+([_$[:alpha:]][_$[:alnum:]]*)",beginCaptures:{"1":{name:"keyword.control.export.tsx"},"2":{name:"storage.modifier.tsx"},"3":{name:"storage.modifier.tsx"},"4":{name:"storage.type.enum.tsx"},"5":{name:"entity.name.type.enum.tsx"}},end:"(?<=\\})",patterns:[{include:"#comment"},{begin:"\\{",beginCaptures:{"0":{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.block.tsx"}},patterns:[{include:"#comment"},{begin:"([_$[:alpha:]][_$[:alnum:]]*)",beginCaptures:{"0":{name:"variable.other.enummember.tsx"}},end:"(?=,|\\}|$)",patterns:[{include:"#comment"},{include:"#variable-initializer"}]},{begin:"(?=((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\])))",end:"(?=,|\\}|$)",patterns:[{include:"#string"},{include:"#array-literal"},{include:"#comment"},{include:"#variable-initializer"}]},{include:"#punctuation-comma"}]}]},"namespace-declaration":{name:"meta.namespace.declaration.tsx",begin:"(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(namespace|module)\\s+(?=[_$[:alpha:]\"'`]))",beginCaptures:{"1":{name:"keyword.control.export.tsx"},"2":{name:"storage.modifier.tsx"},"3":{name:"storage.type.namespace.tsx"}},end:"(?<=\\})|(?=;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",patterns:[{include:"#comment"},{include:"#string"},{name:"entity.name.type.module.tsx",match:"([_$[:alpha:]][_$[:alnum:]]*)"},{include:"#punctuation-accessor"},{include:"#decl-block"}]},"type-alias-declaration":{name:"meta.type.declaration.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(type)\\b\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*",beginCaptures:{"1":{name:"keyword.control.export.tsx"},"2":{name:"storage.modifier.tsx"},"3":{name:"storage.type.type.tsx"},"4":{name:"entity.name.type.alias.tsx"}},end:"(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",patterns:[{include:"#comment"},{include:"#type-parameters"},{begin:"(=)\\s*(intrinsic)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{"1":{name:"keyword.operator.assignment.tsx"},"2":{name:"keyword.control.intrinsic.tsx"}},end:"(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",patterns:[{include:"#type"}]},{begin:"(=)\\s*",beginCaptures:{"1":{name:"keyword.operator.assignment.tsx"}},end:"(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",patterns:[{include:"#type"}]}]},"import-equals-declaration":{patterns:[{name:"meta.import-equals.external.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*(=)\\s*(require)\\s*(\\()",beginCaptures:{"1":{name:"keyword.control.export.tsx"},"2":{name:"storage.modifier.tsx"},"3":{name:"keyword.control.import.tsx"},"4":{name:"keyword.control.type.tsx"},"5":{name:"variable.other.readwrite.alias.tsx"},"6":{name:"keyword.operator.assignment.tsx"},"7":{name:"keyword.control.require.tsx"},"8":{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{"0":{name:"meta.brace.round.tsx"}},patterns:[{include:"#comment"},{include:"#string"}]},{name:"meta.import-equals.internal.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*(=)\\s*(?!require\\b)",beginCaptures:{"1":{name:"keyword.control.export.tsx"},"2":{name:"storage.modifier.tsx"},"3":{name:"keyword.control.import.tsx"},"4":{name:"keyword.control.type.tsx"},"5":{name:"variable.other.readwrite.alias.tsx"},"6":{name:"keyword.operator.assignment.tsx"}},end:"(?=;|$|^)",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))",captures:{"1":{name:"entity.name.type.module.tsx"},"2":{name:"punctuation.accessor.tsx"},"3":{name:"punctuation.accessor.optional.tsx"}}},{name:"variable.other.readwrite.tsx",match:"([_$[:alpha:]][_$[:alnum:]]*)"}]}]},"import-declaration":{name:"meta.import.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type)(?!\\s+from))?(?!\\s*[:\\(])(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{"1":{name:"keyword.control.export.tsx"},"2":{name:"storage.modifier.tsx"},"3":{name:"keyword.control.import.tsx"},"4":{name:"keyword.control.type.tsx"}},end:"(?<!^import|[^\\._$[:alnum:]]import)(?=;|$|^)",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{include:"#string"},{begin:"(?<=^import|[^\\._$[:alnum:]]import)(?!\\s*[\"'])",end:"\\bfrom\\b",endCaptures:{"0":{name:"keyword.control.from.tsx"}},patterns:[{include:"#import-export-declaration"}]},{include:"#import-export-declaration"}]},"export-declaration":{patterns:[{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)\\s+(as)\\s+(namespace)\\s+([_$[:alpha:]][_$[:alnum:]]*)",captures:{"1":{name:"keyword.control.export.tsx"},"2":{name:"keyword.control.as.tsx"},"3":{name:"storage.type.namespace.tsx"},"4":{name:"entity.name.type.module.tsx"}}},{name:"meta.export.default.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)(?:\\s+(type))?(?:(?:\\s*(=))|(?:\\s+(default)(?=\\s+)))",beginCaptures:{"1":{name:"keyword.control.export.tsx"},"2":{name:"keyword.control.type.tsx"},"3":{name:"keyword.operator.assignment.tsx"},"4":{name:"keyword.control.default.tsx"}},end:"(?=$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",patterns:[{include:"#interface-declaration"},{include:"#expression"}]},{name:"meta.export.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)(?:\\s+(type))?\\b(?!(\\$)|(\\s*:))((?=\\s*[\\{*])|((?=\\s*[_$[:alpha:]][_$[:alnum:]]*(\\s|,))(?!\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))",beginCaptures:{"1":{name:"keyword.control.export.tsx"},"2":{name:"keyword.control.type.tsx"}},end:"(?=$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",patterns:[{include:"#import-export-declaration"}]}]},"import-export-declaration":{patterns:[{include:"#comment"},{include:"#string"},{include:"#import-export-block"},{name:"keyword.control.from.tsx",match:"\\bfrom\\b"},{include:"#import-export-assert-clause"},{include:"#import-export-clause"}]},"import-export-assert-clause":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(assert)\\s*(\\{)",beginCaptures:{"1":{name:"keyword.control.assert.tsx"},"2":{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.block.tsx"}},patterns:[{include:"#comment"},{include:"#string"},{name:"meta.object-literal.key.tsx",match:"(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)"},{name:"punctuation.separator.key-value.tsx",match:":"}]},"import-export-block":{name:"meta.block.tsx",begin:"\\{",beginCaptures:{"0":{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.block.tsx"}},patterns:[{include:"#import-export-clause"}]},"import-export-clause":{patterns:[{include:"#comment"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(?:(\\btype)\\s+)?(?:(\\bdefault)|(\\*)|(\\b[_$[:alpha:]][_$[:alnum:]]*)))\\s+(as)\\s+(?:(default(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|([_$[:alpha:]][_$[:alnum:]]*))",captures:{"1":{name:"keyword.control.type.tsx"},"2":{name:"keyword.control.default.tsx"},"3":{name:"constant.language.import-export-all.tsx"},"4":{name:"variable.other.readwrite.tsx"},"5":{name:"keyword.control.as.tsx"},"6":{name:"keyword.control.default.tsx"},"7":{name:"variable.other.readwrite.alias.tsx"}}},{include:"#punctuation-comma"},{name:"constant.language.import-export-all.tsx",match:"\\*"},{name:"keyword.control.default.tsx",match:"\\b(default)\\b"},{match:"(?:(\\btype)\\s+)?([_$[:alpha:]][_$[:alnum:]]*)",captures:{"1":{name:"keyword.control.type.tsx"},"2":{name:"variable.other.readwrite.alias.tsx"}}}]},"switch-statement":{name:"switch-statement.expr.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=\\bswitch\\s*\\()",end:"\\}",endCaptures:{"0":{name:"punctuation.definition.block.tsx"}},patterns:[{include:"#comment"},{name:"switch-expression.expr.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(switch)\\s*(\\()",beginCaptures:{"1":{name:"keyword.control.switch.tsx"},"2":{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{"0":{name:"meta.brace.round.tsx"}},patterns:[{include:"#expression"}]},{name:"switch-block.expr.tsx",begin:"\\{",beginCaptures:{"0":{name:"punctuation.definition.block.tsx"}},end:"(?=\\})",patterns:[{name:"case-clause.expr.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(case|default(?=:))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{"1":{name:"keyword.control.switch.tsx"}},end:"(?=:)",patterns:[{include:"#expression"}]},{begin:"(:)\\s*(\\{)",beginCaptures:{"1":{name:"case-clause.expr.tsx punctuation.definition.section.case-statement.tsx"},"2":{name:"meta.block.tsx punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{"0":{name:"meta.block.tsx punctuation.definition.block.tsx"}},contentName:"meta.block.tsx",patterns:[{include:"#statements"}]},{match:"(:)",captures:{"0":{name:"case-clause.expr.tsx punctuation.definition.section.case-statement.tsx"}}},{include:"#statements"}]}]},"for-loop":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))for(?=((\\s+|(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*))await)?\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)?(\\())",beginCaptures:{"0":{name:"keyword.control.loop.tsx"}},end:"(?<=\\))",patterns:[{include:"#comment"},{name:"keyword.control.loop.tsx",match:"await"},{begin:"\\(",beginCaptures:{"0":{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{"0":{name:"meta.brace.round.tsx"}},patterns:[{include:"#var-expr"},{include:"#expression"},{include:"#punctuation-semicolon"}]}]},"if-statement":{patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=\\bif\\s*(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))\\s*(?!\\{))",end:"(?=;|$|\\})",patterns:[{include:"#comment"},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(if)\\s*(\\()",beginCaptures:{"1":{name:"keyword.control.conditional.tsx"},"2":{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{"0":{name:"meta.brace.round.tsx"}},patterns:[{include:"#expression"}]},{name:"string.regexp.tsx",begin:"(?<=\\))\\s*\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",beginCaptures:{"0":{name:"punctuation.definition.string.begin.tsx"}},end:"(/)([dgimsuy]*)",endCaptures:{"1":{name:"punctuation.definition.string.end.tsx"},"2":{name:"keyword.other.tsx"}},patterns:[{include:"#regexp"}]},{include:"#statements"}]}]},"decl-block":{name:"meta.block.tsx",begin:"\\{",beginCaptures:{"0":{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.block.tsx"}},patterns:[{include:"#statements"}]},"after-operator-block-as-object-literal":{name:"meta.objectliteral.tsx",begin:"(?<!\\+\\+|--)(?<=[:=(,\\[?+!>]|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^yield|[^\\._$[:alnum:]]yield|^throw|[^\\._$[:alnum:]]throw|^in|[^\\._$[:alnum:]]in|^of|[^\\._$[:alnum:]]of|^typeof|[^\\._$[:alnum:]]typeof|&&|\\|\\||\\*)\\s*(\\{)",beginCaptures:{"1":{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.block.tsx"}},patterns:[{include:"#object-member"}]},"object-literal":{name:"meta.objectliteral.tsx",begin:"\\{",beginCaptures:{"0":{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.block.tsx"}},patterns:[{include:"#object-member"}]},"object-member":{patterns:[{include:"#comment"},{include:"#object-literal-method-declaration"},{name:"meta.object.member.tsx meta.object-literal.key.tsx",begin:"(?=\\[)",end:"(?=:)|((?<=[\\]])(?=\\s*[\\(\\<]))",patterns:[{include:"#comment"},{include:"#array-literal"}]},{name:"meta.object.member.tsx meta.object-literal.key.tsx",begin:"(?=[\\'\\\"\\`])",end:"(?=:)|((?<=[\\'\\\"\\`])(?=((\\s*[\\(\\<,}])|(\\s+(as|satisifies)\\s+))))",patterns:[{include:"#comment"},{include:"#string"}]},{name:"meta.object.member.tsx meta.object-literal.key.tsx",begin:"(?x)(?=(\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$)))",end:"(?=:)|(?=\\s*([\\(\\<,}])|(\\s+as|satisifies\\s+))",patterns:[{include:"#comment"},{include:"#numeric-literal"}]},{name:"meta.method.declaration.tsx",begin:"(?<=[\\]\\'\\\"\\`])(?=\\s*[\\(\\<])",end:"(?=\\}|;|,)|(?<=\\})",patterns:[{include:"#function-body"}]},{name:"meta.object.member.tsx",match:"(?![_$[:alpha:]])([[:digit:]]+)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)",captures:{"0":{name:"meta.object-literal.key.tsx"},"1":{name:"constant.numeric.decimal.tsx"}}},{name:"meta.object.member.tsx",match:"(?x)(?:([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/)*\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))",captures:{"0":{name:"meta.object-literal.key.tsx"},"1":{name:"entity.name.function.tsx"}}},{name:"meta.object.member.tsx",match:"(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)",captures:{"0":{name:"meta.object-literal.key.tsx"}}},{name:"meta.object.member.tsx",begin:"\\.\\.\\.",beginCaptures:{"0":{name:"keyword.operator.spread.tsx"}},end:"(?=,|\\})",patterns:[{include:"#expression"}]},{name:"meta.object.member.tsx",match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=,|\\}|$|\\/\\/|\\/\\*)",captures:{"1":{name:"variable.other.readwrite.tsx"}}},{name:"meta.object.member.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*([,}]|$))",captures:{"1":{name:"keyword.control.as.tsx"},"2":{name:"storage.modifier.tsx"}}},{name:"meta.object.member.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(as)|(satisfies))\\s+",beginCaptures:{"1":{name:"keyword.control.as.tsx"},"2":{name:"keyword.control.satisfies.tsx"}},end:"(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|^|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as|satisifies)\\s+))",patterns:[{include:"#type"}]},{name:"meta.object.member.tsx",begin:"(?=[_$[:alpha:]][_$[:alnum:]]*\\s*=)",end:"(?=,|\\}|$|\\/\\/|\\/\\*)",patterns:[{include:"#expression"}]},{name:"meta.object.member.tsx",begin:":",beginCaptures:{"0":{name:"meta.object-literal.key.tsx punctuation.separator.key-value.tsx"}},end:"(?=,|\\})",patterns:[{begin:"(?<=:)\\s*(async)?(?=\\s*(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{"1":{name:"storage.modifier.async.tsx"}},end:"(?<=\\))",patterns:[{include:"#type-parameters"},{begin:"\\(",beginCaptures:{"0":{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{"0":{name:"meta.brace.round.tsx"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]}]},{begin:"(?<=:)\\s*(async)?\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{"1":{name:"storage.modifier.async.tsx"},"2":{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{"0":{name:"meta.brace.round.tsx"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]},{begin:"(?<=:)\\s*(async)?\\s*(?=\\<\\s*$)",beginCaptures:{"1":{name:"storage.modifier.async.tsx"}},end:"(?<=\\>)",patterns:[{include:"#type-parameters"}]},{begin:"(?<=\\>)\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{"1":{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{"0":{name:"meta.brace.round.tsx"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]},{include:"#possibly-arrow-return-type"},{include:"#expression"}]},{include:"#punctuation-comma"},{include:"#decl-block"}]},"ternary-expression":{begin:"(?!\\?\\.\\s*[^[:digit:]])(\\?)(?!\\?)",beginCaptures:{"1":{name:"keyword.operator.ternary.tsx"}},end:"\\s*(:)",endCaptures:{"1":{name:"keyword.operator.ternary.tsx"}},patterns:[{include:"#expression"}]},"function-call":{patterns:[{begin:"(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())",end:"(?<=\\))(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())",patterns:[{name:"meta.function-call.tsx",begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))",end:"(?=\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())",patterns:[{include:"#function-call-target"}]},{include:"#comment"},{include:"#function-call-optionals"},{include:"#type-arguments"},{include:"#paren-expression"}]},{begin:"(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))",end:"(?<=\\>)(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))",patterns:[{name:"meta.function-call.tsx",begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))",end:"(?=(<\\s*[\\{\\[\\(]\\s*$))",patterns:[{include:"#function-call-target"}]},{include:"#comment"},{include:"#function-call-optionals"},{include:"#type-arguments"}]}]},"function-call-target":{patterns:[{include:"#support-function-call-identifiers"},{name:"entity.name.function.tsx",match:"(\\#?[_$[:alpha:]][_$[:alnum:]]*)"}]},"function-call-optionals":{patterns:[{name:"meta.function-call.tsx punctuation.accessor.optional.tsx",match:"\\?\\."},{name:"meta.function-call.tsx keyword.operator.definiteassignment.tsx",match:"\\!"}]},"support-function-call-identifiers":{patterns:[{include:"#literal"},{include:"#support-objects"},{include:"#object-identifiers"},{include:"#punctuation-accessor"},{name:"keyword.operator.expression.import.tsx",match:"(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*[\\(]\\s*[\\\"\\'\\`]))"}]},"new-expr":{name:"new.expr.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(new)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{"1":{name:"keyword.operator.new.tsx"}},end:"(?<=\\))|(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))new(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))function((\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\s*[\\(]))))",patterns:[{include:"#expression"}]},"instanceof-expr":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(instanceof)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{"1":{name:"keyword.operator.expression.instanceof.tsx"}},end:"(?<=\\))|(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|(===|!==|==|!=)|(([\\&\\~\\^\\|]\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s+instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))function((\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\s*[\\(]))))",patterns:[{include:"#type"}]},"paren-expression-possibly-arrow":{patterns:[{begin:"(?<=[(=,])\\s*(async)?(?=\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{"1":{name:"storage.modifier.async.tsx"}},end:"(?<=\\))",patterns:[{include:"#paren-expression-possibly-arrow-with-typeparameters"}]},{begin:"(?<=[(=,]|=>|^return|[^\\._$[:alnum:]]return)\\s*(async)?(?=\\s*((((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\()|(<)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)))\\s*$)",beginCaptures:{"1":{name:"storage.modifier.async.tsx"}},end:"(?<=\\))",patterns:[{include:"#paren-expression-possibly-arrow-with-typeparameters"}]},{include:"#possibly-arrow-return-type"}]},"paren-expression-possibly-arrow-with-typeparameters":{patterns:[{include:"#type-parameters"},{begin:"\\(",beginCaptures:{"0":{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{"0":{name:"meta.brace.round.tsx"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]}]},"expression-inside-possibly-arrow-parens":{patterns:[{include:"#expressionWithoutIdentifiers"},{include:"#comment"},{include:"#string"},{include:"#decorator"},{include:"#destructuring-parameter"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)",captures:{"1":{name:"storage.modifier.tsx"}}},{match:"(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))",captures:{"1":{name:"storage.modifier.tsx"},"2":{name:"keyword.operator.rest.tsx"},"3":{name:"entity.name.function.tsx variable.language.this.tsx"},"4":{name:"entity.name.function.tsx"},"5":{name:"keyword.operator.optional.tsx"}}},{match:"(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*[:,]|$)",captures:{"1":{name:"storage.modifier.tsx"},"2":{name:"keyword.operator.rest.tsx"},"3":{name:"variable.parameter.tsx variable.language.this.tsx"},"4":{name:"variable.parameter.tsx"},"5":{name:"keyword.operator.optional.tsx"}}},{include:"#type-annotation"},{include:"#variable-initializer"},{name:"punctuation.separator.parameter.tsx",match:","},{include:"#identifiers"},{include:"#expressionPunctuations"}]},"paren-expression":{begin:"\\(",beginCaptures:{"0":{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{"0":{name:"meta.brace.round.tsx"}},patterns:[{include:"#expression"}]},cast:{patterns:[{include:"#jsx"}]},"expression-operators":{patterns:[{name:"keyword.control.flow.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(await)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(yield)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?=\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*\\*)",beginCaptures:{"1":{name:"keyword.control.flow.tsx"}},end:"\\*",endCaptures:{"0":{name:"keyword.generator.asterisk.tsx"}},patterns:[{include:"#comment"}]},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(yield)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s*(\\*))?",captures:{"1":{name:"keyword.control.flow.tsx"},"2":{name:"keyword.generator.asterisk.tsx"}}},{name:"keyword.operator.expression.delete.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))delete(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{name:"keyword.operator.expression.in.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))in(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()"},{name:"keyword.operator.expression.of.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))of(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()"},{name:"keyword.operator.expression.instanceof.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{name:"keyword.operator.new.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))new(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{include:"#typeof-operator"},{name:"keyword.operator.expression.void.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))void(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*($|[;,:})\\]]))",captures:{"1":{name:"keyword.control.as.tsx"},"2":{name:"storage.modifier.tsx"}}},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(as)|(satisfies))\\s+",beginCaptures:{"1":{name:"keyword.control.as.tsx"},"2":{name:"keyword.control.satisfies.tsx"}},end:"(?=^|[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as|satisfies)\\s+)|(\\s+\\<))",patterns:[{include:"#type"}]},{name:"keyword.operator.spread.tsx",match:"\\.\\.\\."},{name:"keyword.operator.assignment.compound.tsx",match:"\\*=|(?<!\\()/=|%=|\\+=|\\-="},{name:"keyword.operator.assignment.compound.bitwise.tsx",match:"\\&=|\\^=|<<=|>>=|>>>=|\\|="},{name:"keyword.operator.bitwise.shift.tsx",match:"<<|>>>|>>"},{name:"keyword.operator.comparison.tsx",match:"===|!==|==|!="},{name:"keyword.operator.relational.tsx",match:"<=|>=|<>|<|>"},{match:"(?<=[_$[:alnum:]])(\\!)\\s*(?:(/=)|(?:(/)(?![/*])))",captures:{"1":{name:"keyword.operator.logical.tsx"},"2":{name:"keyword.operator.assignment.compound.tsx"},"3":{name:"keyword.operator.arithmetic.tsx"}}},{name:"keyword.operator.logical.tsx",match:"\\!|&&|\\|\\||\\?\\?"},{name:"keyword.operator.bitwise.tsx",match:"\\&|~|\\^|\\|"},{name:"keyword.operator.assignment.tsx",match:"\\="},{name:"keyword.operator.decrement.tsx",match:"--"},{name:"keyword.operator.increment.tsx",match:"\\+\\+"},{name:"keyword.operator.arithmetic.tsx",match:"%|\\*|/|-|\\+"},{begin:"(?<=[_$[:alnum:])\\]])\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)+(?:(/=)|(?:(/)(?![/*]))))",end:"(?:(/=)|(?:(/)(?!\\*([^\\*]|(\\*[^\\/]))*\\*\\/)))",endCaptures:{"1":{name:"keyword.operator.assignment.compound.tsx"},"2":{name:"keyword.operator.arithmetic.tsx"}},patterns:[{include:"#comment"}]},{match:"(?<=[_$[:alnum:])\\]])\\s*(?:(/=)|(?:(/)(?![/*])))",captures:{"1":{name:"keyword.operator.assignment.compound.tsx"},"2":{name:"keyword.operator.arithmetic.tsx"}}}]},"typeof-operator":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))typeof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{"0":{name:"keyword.operator.expression.typeof.tsx"}},end:"(?=[,);}\\]=>:&|{\\?]|(extends\\s+)|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",patterns:[{include:"#type-arguments"},{include:"#expression"}]},literal:{patterns:[{include:"#numeric-literal"},{include:"#boolean-literal"},{include:"#null-literal"},{include:"#undefined-literal"},{include:"#numericConstant-literal"},{include:"#array-literal"},{include:"#this-literal"},{include:"#super-literal"}]},"array-literal":{name:"meta.array.literal.tsx",begin:"\\s*(\\[)",beginCaptures:{"1":{name:"meta.brace.square.tsx"}},end:"\\]",endCaptures:{"0":{name:"meta.brace.square.tsx"}},patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},"numeric-literal":{patterns:[{name:"constant.numeric.hex.tsx",match:"\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$)",captures:{"1":{name:"storage.type.numeric.bigint.tsx"}}},{name:"constant.numeric.binary.tsx",match:"\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$)",captures:{"1":{name:"storage.type.numeric.bigint.tsx"}}},{name:"constant.numeric.octal.tsx",match:"\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$)",captures:{"1":{name:"storage.type.numeric.bigint.tsx"}}},{match:"(?x)\n(?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$)",captures:{"0":{name:"constant.numeric.decimal.tsx"},"1":{name:"meta.delimiter.decimal.period.tsx"},"2":{name:"storage.type.numeric.bigint.tsx"},"3":{name:"meta.delimiter.decimal.period.tsx"},"4":{name:"storage.type.numeric.bigint.tsx"},"5":{name:"meta.delimiter.decimal.period.tsx"},"6":{name:"storage.type.numeric.bigint.tsx"},"7":{name:"storage.type.numeric.bigint.tsx"},"8":{name:"meta.delimiter.decimal.period.tsx"},"9":{name:"storage.type.numeric.bigint.tsx"},"10":{name:"meta.delimiter.decimal.period.tsx"},"11":{name:"storage.type.numeric.bigint.tsx"},"12":{name:"meta.delimiter.decimal.period.tsx"},"13":{name:"storage.type.numeric.bigint.tsx"},"14":{name:"storage.type.numeric.bigint.tsx"}}}]},"boolean-literal":{patterns:[{name:"constant.language.boolean.true.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))true(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{name:"constant.language.boolean.false.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))false(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"}]},"null-literal":{name:"constant.language.null.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))null(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},"this-literal":{name:"variable.language.this.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))this\\b(?!\\$)"},"super-literal":{name:"variable.language.super.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))super\\b(?!\\$)"},"undefined-literal":{name:"constant.language.undefined.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))undefined(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},"numericConstant-literal":{patterns:[{name:"constant.language.nan.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))NaN(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{name:"constant.language.infinity.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Infinity(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"}]},"support-objects":{patterns:[{name:"variable.language.arguments.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(arguments)\\b(?!\\$)"},{name:"support.class.promise.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(Promise)\\b(?!\\$)"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(import)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(meta)\\b(?!\\$)",captures:{"1":{name:"keyword.control.import.tsx"},"2":{name:"punctuation.accessor.tsx"},"3":{name:"punctuation.accessor.optional.tsx"},"4":{name:"support.variable.property.importmeta.tsx"}}},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(new)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(target)\\b(?!\\$)",captures:{"1":{name:"keyword.operator.new.tsx"},"2":{name:"punctuation.accessor.tsx"},"3":{name:"punctuation.accessor.optional.tsx"},"4":{name:"support.variable.property.target.tsx"}}},{match:"(?x) (?:(\\.)|(\\?\\.(?!\\s*[[:digit:]]))) \\s* (?:\n (?:(constructor|length|prototype|__proto__)\\b(?!\\$|\\s*(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\())\n |\n (?:(EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\\b(?!\\$)))",captures:{"1":{name:"punctuation.accessor.tsx"},"2":{name:"punctuation.accessor.optional.tsx"},"3":{name:"support.variable.property.tsx"},"4":{name:"support.constant.tsx"}}},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(exports)|(module)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))(exports|id|filename|loaded|parent|children))?)\\b(?!\\$)",captures:{"1":{name:"support.type.object.module.tsx"},"2":{name:"support.type.object.module.tsx"},"3":{name:"punctuation.accessor.tsx"},"4":{name:"punctuation.accessor.optional.tsx"},"5":{name:"support.type.object.module.tsx"}}}]},identifiers:{patterns:[{include:"#object-identifiers"},{match:"(?x)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*)?([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n))",captures:{"1":{name:"punctuation.accessor.tsx"},"2":{name:"punctuation.accessor.optional.tsx"},"3":{name:"entity.name.function.tsx"}}},{match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])",captures:{"1":{name:"punctuation.accessor.tsx"},"2":{name:"punctuation.accessor.optional.tsx"},"3":{name:"variable.other.constant.property.tsx"}}},{match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)",captures:{"1":{name:"punctuation.accessor.tsx"},"2":{name:"punctuation.accessor.optional.tsx"},"3":{name:"variable.other.property.tsx"}}},{name:"variable.other.constant.tsx",match:"([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])"},{name:"variable.other.readwrite.tsx",match:"[_$[:alpha:]][_$[:alnum:]]*"}]},"object-identifiers":{patterns:[{name:"support.class.tsx",match:"([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\\??\\.\\s*prototype\\b(?!\\$))"},{match:"(?x)(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(?:\n (\\#?[[:upper:]][_$[:digit:][:upper:]]*) |\n (\\#?[_$[:alpha:]][_$[:alnum:]]*)\n)(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)",captures:{"1":{name:"punctuation.accessor.tsx"},"2":{name:"punctuation.accessor.optional.tsx"},"3":{name:"variable.other.constant.object.property.tsx"},"4":{name:"variable.other.object.property.tsx"}}},{match:"(?x)(?:\n ([[:upper:]][_$[:digit:][:upper:]]*) |\n ([_$[:alpha:]][_$[:alnum:]]*)\n)(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)",captures:{"1":{name:"variable.other.constant.object.tsx"},"2":{name:"variable.other.object.tsx"}}}]},"type-annotation":{patterns:[{name:"meta.type.annotation.tsx",begin:"(:)(?=\\s*\\S)",beginCaptures:{"1":{name:"keyword.operator.type.annotation.tsx"}},end:"(?<![:|&])(?!\\s*[|&]\\s+)((?=^|[,);\\}\\]]|//)|(?==[^>])|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))",patterns:[{include:"#type"}]},{name:"meta.type.annotation.tsx",begin:"(:)",beginCaptures:{"1":{name:"keyword.operator.type.annotation.tsx"}},end:"(?<![:|&])((?=[,);\\}\\]]|\\/\\/)|(?==[^>])|(?=^\\s*$)|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))",patterns:[{include:"#type"}]}]},"parameter-type-annotation":{patterns:[{name:"meta.type.annotation.tsx",begin:"(:)",beginCaptures:{"1":{name:"keyword.operator.type.annotation.tsx"}},end:"(?=[,)])|(?==[^>])",patterns:[{include:"#type"}]}]},"return-type":{patterns:[{name:"meta.return.type.tsx",begin:"(?<=\\))\\s*(:)(?=\\s*\\S)",beginCaptures:{"1":{name:"keyword.operator.type.annotation.tsx"}},end:"(?<![:|&])(?=$|^|[{};,]|//)",patterns:[{include:"#return-type-core"}]},{name:"meta.return.type.tsx",begin:"(?<=\\))\\s*(:)",beginCaptures:{"1":{name:"keyword.operator.type.annotation.tsx"}},end:"(?<![:|&])((?=[{};,]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))",patterns:[{include:"#return-type-core"}]}]},"return-type-core":{patterns:[{include:"#comment"},{begin:"(?<=[:|&])(?=\\s*\\{)",end:"(?<=\\})",patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},"arrow-return-type":{name:"meta.return.type.arrow.tsx",begin:"(?<=\\))\\s*(:)",beginCaptures:{"1":{name:"keyword.operator.type.annotation.tsx"}},end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",patterns:[{include:"#arrow-return-type-body"}]},"possibly-arrow-return-type":{begin:"(?<=\\)|^)\\s*(:)(?=\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*=>)",beginCaptures:{"1":{name:"meta.arrow.tsx meta.return.type.arrow.tsx keyword.operator.type.annotation.tsx"}},end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",contentName:"meta.arrow.tsx meta.return.type.arrow.tsx",patterns:[{include:"#arrow-return-type-body"}]},"arrow-return-type-body":{patterns:[{begin:"(?<=[:])(?=\\s*\\{)",end:"(?<=\\})",patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},"type-parameters":{name:"meta.type.parameters.tsx",begin:"(<)",beginCaptures:{"1":{name:"punctuation.definition.typeparameters.begin.tsx"}},end:"(>)",endCaptures:{"1":{name:"punctuation.definition.typeparameters.end.tsx"}},patterns:[{include:"#comment"},{name:"storage.modifier.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends|in|out|const)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{include:"#type"},{include:"#punctuation-comma"},{name:"keyword.operator.assignment.tsx",match:"(=)(?!>)"}]},"type-arguments":{name:"meta.type.parameters.tsx",begin:"\\<",beginCaptures:{"0":{name:"punctuation.definition.typeparameters.begin.tsx"}},end:"\\>",endCaptures:{"0":{name:"punctuation.definition.typeparameters.end.tsx"}},patterns:[{include:"#type-arguments-body"}]},"type-arguments-body":{patterns:[{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(_)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",captures:{"0":{name:"keyword.operator.type.tsx"}}},{include:"#type"},{include:"#punctuation-comma"}]},type:{patterns:[{include:"#comment"},{include:"#type-string"},{include:"#numeric-literal"},{include:"#type-primitive"},{include:"#type-builtin-literals"},{include:"#type-parameters"},{include:"#type-tuple"},{include:"#type-object"},{include:"#type-operators"},{include:"#type-conditional"},{include:"#type-fn-type-parameters"},{include:"#type-paren-or-function-parameters"},{include:"#type-function-return-type"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*",captures:{"1":{name:"storage.modifier.tsx"}}},{include:"#type-name"}]},"type-primitive":{name:"support.type.primitive.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(string|number|bigint|boolean|symbol|any|void|never|unknown)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},"type-builtin-literals":{name:"support.type.builtin.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},"type-tuple":{name:"meta.type.tuple.tsx",begin:"\\[",beginCaptures:{"0":{name:"meta.brace.square.tsx"}},end:"\\]",endCaptures:{"0":{name:"meta.brace.square.tsx"}},patterns:[{name:"keyword.operator.rest.tsx",match:"\\.\\.\\."},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)",captures:{"1":{name:"entity.name.label.tsx"},"2":{name:"keyword.operator.optional.tsx"},"3":{name:"punctuation.separator.label.tsx"}}},{include:"#type"},{include:"#punctuation-comma"}]},"type-object":{name:"meta.object.type.tsx",begin:"\\{",beginCaptures:{"0":{name:"punctuation.definition.block.tsx"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.block.tsx"}},patterns:[{include:"#comment"},{include:"#method-declaration"},{include:"#indexer-declaration"},{include:"#indexer-mapped-type-declaration"},{include:"#field-declaration"},{include:"#type-annotation"},{begin:"\\.\\.\\.",beginCaptures:{"0":{name:"keyword.operator.spread.tsx"}},end:"(?=\\}|;|,|$)|(?<=\\})",patterns:[{include:"#type"}]},{include:"#punctuation-comma"},{include:"#punctuation-semicolon"},{include:"#type"}]},"type-conditional":{patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends)\\s+",beginCaptures:{"1":{name:"storage.modifier.tsx"}},end:"(?<=:)",patterns:[{begin:"\\?",beginCaptures:{"0":{name:"keyword.operator.ternary.tsx"}},end:":",endCaptures:{"0":{name:"keyword.operator.ternary.tsx"}},patterns:[{include:"#type"}]},{include:"#type"}]}]},"type-paren-or-function-parameters":{name:"meta.type.paren.cover.tsx",begin:"\\(",beginCaptures:{"0":{name:"meta.brace.round.tsx"}},end:"\\)",endCaptures:{"0":{name:"meta.brace.round.tsx"}},patterns:[{match:"(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=\\s*(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))",captures:{"1":{name:"storage.modifier.tsx"},"2":{name:"keyword.operator.rest.tsx"},"3":{name:"entity.name.function.tsx variable.language.this.tsx"},"4":{name:"entity.name.function.tsx"},"5":{name:"keyword.operator.optional.tsx"}}},{match:"(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=:)",captures:{"1":{name:"storage.modifier.tsx"},"2":{name:"keyword.operator.rest.tsx"},"3":{name:"variable.parameter.tsx variable.language.this.tsx"},"4":{name:"variable.parameter.tsx"},"5":{name:"keyword.operator.optional.tsx"}}},{include:"#type-annotation"},{name:"punctuation.separator.parameter.tsx",match:","},{include:"#type"}]},"type-fn-type-parameters":{patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b(?=\\s*\\<)",beginCaptures:{"1":{name:"meta.type.constructor.tsx storage.modifier.tsx"},"2":{name:"meta.type.constructor.tsx keyword.control.new.tsx"}},end:"(?<=>)",patterns:[{include:"#comment"},{include:"#type-parameters"}]},{name:"meta.type.constructor.tsx",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b\\s*(?=\\()",beginCaptures:{"1":{name:"storage.modifier.tsx"},"2":{name:"keyword.control.new.tsx"}},end:"(?<=\\))",patterns:[{include:"#function-parameters"}]},{name:"meta.type.function.tsx",begin:"(?x)(\n (?=\n [(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n )\n )\n)",end:"(?<=\\))",patterns:[{include:"#function-parameters"}]}]},"type-function-return-type":{patterns:[{name:"meta.type.function.return.tsx",begin:"(=>)(?=\\s*\\S)",beginCaptures:{"1":{name:"storage.type.function.arrow.tsx"}},end:"(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>:\\?]|//|$)",patterns:[{include:"#type-function-return-type-core"}]},{name:"meta.type.function.return.tsx",begin:"=>",beginCaptures:{"0":{name:"storage.type.function.arrow.tsx"}},end:"(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;:\\?>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))",patterns:[{include:"#type-function-return-type-core"}]}]},"type-function-return-type-core":{patterns:[{include:"#comment"},{begin:"(?<==>)(?=\\s*\\{)",end:"(?<=\\})",patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},"type-operators":{patterns:[{include:"#typeof-operator"},{include:"#type-infer"},{begin:"([&|])(?=\\s*\\{)",beginCaptures:{"0":{name:"keyword.operator.type.tsx"}},end:"(?<=\\})",patterns:[{include:"#type-object"}]},{begin:"[&|]",beginCaptures:{"0":{name:"keyword.operator.type.tsx"}},end:"(?=\\S)"},{name:"keyword.operator.expression.keyof.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))keyof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{name:"keyword.operator.ternary.tsx",match:"(\\?|\\:)"},{name:"keyword.operator.expression.import.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*\\()"}]},"type-infer":{patterns:[{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(infer)\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s+(extends)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))?",name:"meta.type.infer.tsx",captures:{"1":{name:"keyword.operator.expression.infer.tsx"},"2":{name:"entity.name.type.tsx"},"3":{name:"keyword.operator.expression.extends.tsx"}}}]},"type-predicate-operator":{patterns:[{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s(is)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",captures:{"1":{name:"keyword.operator.type.asserts.tsx"},"2":{name:"variable.parameter.tsx variable.language.this.tsx"},"3":{name:"variable.parameter.tsx"},"4":{name:"keyword.operator.expression.is.tsx"}}},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",captures:{"1":{name:"keyword.operator.type.asserts.tsx"},"2":{name:"variable.parameter.tsx variable.language.this.tsx"},"3":{name:"variable.parameter.tsx"}}},{name:"keyword.operator.type.asserts.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{name:"keyword.operator.expression.is.tsx",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"}]},"type-name":{patterns:[{begin:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(<)",captures:{"1":{name:"entity.name.type.module.tsx"},"2":{name:"punctuation.accessor.tsx"},"3":{name:"punctuation.accessor.optional.tsx"},"4":{name:"meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx"}},end:"(>)",endCaptures:{"1":{name:"meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx"}},contentName:"meta.type.parameters.tsx",patterns:[{include:"#type-arguments-body"}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)",beginCaptures:{"1":{name:"entity.name.type.tsx"},"2":{name:"meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx"}},end:"(>)",endCaptures:{"1":{name:"meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx"}},contentName:"meta.type.parameters.tsx",patterns:[{include:"#type-arguments-body"}]},{match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))",captures:{"1":{name:"entity.name.type.module.tsx"},"2":{name:"punctuation.accessor.tsx"},"3":{name:"punctuation.accessor.optional.tsx"}}},{name:"entity.name.type.tsx",match:"[_$[:alpha:]][_$[:alnum:]]*"}]},"punctuation-comma":{name:"punctuation.separator.comma.tsx",match:","},"punctuation-semicolon":{name:"punctuation.terminator.statement.tsx",match:";"},"punctuation-accessor":{match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))",captures:{"1":{name:"punctuation.accessor.tsx"},"2":{name:"punctuation.accessor.optional.tsx"}}},string:{patterns:[{include:"#qstring-single"},{include:"#qstring-double"},{include:"#template"}]},"qstring-double":{name:"string.quoted.double.tsx",begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.tsx"}},end:"(\")|((?:[^\\\\\\n])$)",endCaptures:{"1":{name:"punctuation.definition.string.end.tsx"},"2":{name:"invalid.illegal.newline.tsx"}},patterns:[{include:"#string-character-escape"}]},"qstring-single":{name:"string.quoted.single.tsx",begin:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.tsx"}},end:"(\\')|((?:[^\\\\\\n])$)",endCaptures:{"1":{name:"punctuation.definition.string.end.tsx"},"2":{name:"invalid.illegal.newline.tsx"}},patterns:[{include:"#string-character-escape"}]},"string-character-escape":{name:"constant.character.escape.tsx",match:"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)"},template:{patterns:[{include:"#template-call"},{contentName:"string.template.tsx",begin:"([_$[:alpha:]][_$[:alnum:]]*)?(`)",beginCaptures:{"1":{name:"entity.name.function.tagged-template.tsx"},"2":{name:"string.template.tsx punctuation.definition.string.template.begin.tsx"}},end:"`",endCaptures:{"0":{name:"string.template.tsx punctuation.definition.string.template.end.tsx"}},patterns:[{include:"#template-substitution-element"},{include:"#string-character-escape"}]}]},"template-call":{patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*)(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)",end:"(?=`)",patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))",end:"(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)",patterns:[{include:"#support-function-call-identifiers"},{name:"entity.name.function.tagged-template.tsx",match:"([_$[:alpha:]][_$[:alnum:]]*)"}]},{include:"#type-arguments"}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*)?\\s*(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)`)",beginCaptures:{"1":{name:"entity.name.function.tagged-template.tsx"}},end:"(?=`)",patterns:[{include:"#type-arguments"}]}]},"template-substitution-element":{name:"meta.template.expression.tsx",begin:"\\$\\{",beginCaptures:{"0":{name:"punctuation.definition.template-expression.begin.tsx"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.template-expression.end.tsx"}},patterns:[{include:"#expression"}],contentName:"meta.embedded.line.tsx"},"type-string":{patterns:[{include:"#qstring-single"},{include:"#qstring-double"},{include:"#template-type"}]},"template-type":{patterns:[{include:"#template-call"},{contentName:"string.template.tsx",begin:"([_$[:alpha:]][_$[:alnum:]]*)?(`)",beginCaptures:{"1":{name:"entity.name.function.tagged-template.tsx"},"2":{name:"string.template.tsx punctuation.definition.string.template.begin.tsx"}},end:"`",endCaptures:{"0":{name:"string.template.tsx punctuation.definition.string.template.end.tsx"}},patterns:[{include:"#template-type-substitution-element"},{include:"#string-character-escape"}]}]},"template-type-substitution-element":{name:"meta.template.expression.tsx",begin:"\\$\\{",beginCaptures:{"0":{name:"punctuation.definition.template-expression.begin.tsx"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.template-expression.end.tsx"}},patterns:[{include:"#type"}],contentName:"meta.embedded.line.tsx"},regex:{patterns:[{name:"string.regexp.tsx",begin:"(?<!\\+\\+|--|})(?<=[=(:,\\[?+!]|^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case|=>|&&|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",beginCaptures:{"1":{name:"punctuation.definition.string.begin.tsx"}},end:"(/)([dgimsuy]*)",endCaptures:{"1":{name:"punctuation.definition.string.end.tsx"},"2":{name:"keyword.other.tsx"}},patterns:[{include:"#regexp"}]},{name:"string.regexp.tsx",begin:"((?<![_$[:alnum:])\\]]|\\+\\+|--|}|\\*\\/)|((?<=^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case))\\s*)\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",beginCaptures:{"0":{name:"punctuation.definition.string.begin.tsx"}},end:"(/)([dgimsuy]*)",endCaptures:{"1":{name:"punctuation.definition.string.end.tsx"},"2":{name:"keyword.other.tsx"}},patterns:[{include:"#regexp"}]}]},regexp:{patterns:[{name:"keyword.control.anchor.regexp",match:"\\\\[bB]|\\^|\\$"},{match:"\\\\[1-9]\\d*|\\\\k<([a-zA-Z_$][\\w$]*)>",captures:{"0":{name:"keyword.other.back-reference.regexp"},"1":{name:"variable.other.regexp"}}},{name:"keyword.operator.quantifier.regexp",match:"[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??"},{name:"keyword.operator.or.regexp",match:"\\|"},{name:"meta.group.assertion.regexp",begin:"(\\()((\\?=)|(\\?!)|(\\?<=)|(\\?<!))",beginCaptures:{"1":{name:"punctuation.definition.group.regexp"},"2":{name:"punctuation.definition.group.assertion.regexp"},"3":{name:"meta.assertion.look-ahead.regexp"},"4":{name:"meta.assertion.negative-look-ahead.regexp"},"5":{name:"meta.assertion.look-behind.regexp"},"6":{name:"meta.assertion.negative-look-behind.regexp"}},end:"(\\))",endCaptures:{"1":{name:"punctuation.definition.group.regexp"}},patterns:[{include:"#regexp"}]},{name:"meta.group.regexp",begin:"\\((?:(\\?:)|(?:\\?<([a-zA-Z_$][\\w$]*)>))?",beginCaptures:{"0":{name:"punctuation.definition.group.regexp"},"1":{name:"punctuation.definition.group.no-capture.regexp"},"2":{name:"variable.other.regexp"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.group.regexp"}},patterns:[{include:"#regexp"}]},{name:"constant.other.character-class.set.regexp",begin:"(\\[)(\\^)?",beginCaptures:{"1":{name:"punctuation.definition.character-class.regexp"},"2":{name:"keyword.operator.negation.regexp"}},end:"(\\])",endCaptures:{"1":{name:"punctuation.definition.character-class.regexp"}},patterns:[{name:"constant.other.character-class.range.regexp",match:"(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))",captures:{"1":{name:"constant.character.numeric.regexp"},"2":{name:"constant.character.control.regexp"},"3":{name:"constant.character.escape.backslash.regexp"},"4":{name:"constant.character.numeric.regexp"},"5":{name:"constant.character.control.regexp"},"6":{name:"constant.character.escape.backslash.regexp"}}},{include:"#regex-character-class"}]},{include:"#regex-character-class"}]},"regex-character-class":{patterns:[{name:"constant.other.character-class.regexp",match:"\\\\[wWsSdDtrnvf]|\\."},{name:"constant.character.numeric.regexp",match:"\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})"},{name:"constant.character.control.regexp",match:"\\\\c[A-Z]"},{name:"constant.character.escape.backslash.regexp",match:"\\\\."}]},comment:{patterns:[{name:"comment.block.documentation.tsx",begin:"/\\*\\*(?!/)",beginCaptures:{"0":{name:"punctuation.definition.comment.tsx"}},end:"\\*/",endCaptures:{"0":{name:"punctuation.definition.comment.tsx"}},patterns:[{include:"#docblock"}]},{name:"comment.block.tsx",begin:"(/\\*)(?:\\s*((@)internal)(?=\\s|(\\*/)))?",beginCaptures:{"1":{name:"punctuation.definition.comment.tsx"},"2":{name:"storage.type.internaldeclaration.tsx"},"3":{name:"punctuation.decorator.internaldeclaration.tsx"}},end:"\\*/",endCaptures:{"0":{name:"punctuation.definition.comment.tsx"}}},{begin:"(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.tsx"},"2":{name:"comment.line.double-slash.tsx"},"3":{name:"punctuation.definition.comment.tsx"},"4":{name:"storage.type.internaldeclaration.tsx"},"5":{name:"punctuation.decorator.internaldeclaration.tsx"}},end:"(?=$)",contentName:"comment.line.double-slash.tsx"}]},"single-line-comment-consuming-line-ending":{begin:"(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.tsx"},"2":{name:"comment.line.double-slash.tsx"},"3":{name:"punctuation.definition.comment.tsx"},"4":{name:"storage.type.internaldeclaration.tsx"},"5":{name:"punctuation.decorator.internaldeclaration.tsx"}},end:"(?=^)",contentName:"comment.line.double-slash.tsx"},directives:{name:"comment.line.triple-slash.directive.tsx",begin:"^(///)\\s*(?=<(reference|amd-dependency|amd-module)(\\s+(path|types|no-default-lib|lib|name|resolution-mode)\\s*=\\s*((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)))+\\s*/>\\s*$)",beginCaptures:{"1":{name:"punctuation.definition.comment.tsx"}},end:"(?=$)",patterns:[{name:"meta.tag.tsx",begin:"(<)(reference|amd-dependency|amd-module)",beginCaptures:{"1":{name:"punctuation.definition.tag.directive.tsx"},"2":{name:"entity.name.tag.directive.tsx"}},end:"/>",endCaptures:{"0":{name:"punctuation.definition.tag.directive.tsx"}},patterns:[{name:"entity.other.attribute-name.directive.tsx",match:"path|types|no-default-lib|lib|name|resolution-mode"},{name:"keyword.operator.assignment.tsx",match:"="},{include:"#string"}]}]},docblock:{patterns:[{match:"(?x)\n((@)(?:access|api))\n\\s+\n(private|protected|public)\n\\b",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"constant.language.access-type.jsdoc"}}},{match:"(?x)\n((@)author)\n\\s+\n(\n [^@\\s<>*/]\n (?:[^@<>*/]|\\*[^/])*\n)\n(?:\n \\s*\n (<)\n ([^>\\s]+)\n (>)\n)?",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"entity.name.type.instance.jsdoc"},"4":{name:"punctuation.definition.bracket.angle.begin.jsdoc"},"5":{name:"constant.other.email.link.underline.jsdoc"},"6":{name:"punctuation.definition.bracket.angle.end.jsdoc"}}},{match:"(?x)\n((@)borrows) \\s+\n((?:[^@\\s*/]|\\*[^/])+) # <that namepath>\n\\s+ (as) \\s+ # as\n((?:[^@\\s*/]|\\*[^/])+) # <this namepath>",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"entity.name.type.instance.jsdoc"},"4":{name:"keyword.operator.control.jsdoc"},"5":{name:"entity.name.type.instance.jsdoc"}}},{name:"meta.example.jsdoc",begin:"((@)example)\\s+",end:"(?=@|\\*/)",beginCaptures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"}},patterns:[{match:"^\\s\\*\\s+"},{contentName:"constant.other.description.jsdoc",begin:"\\G(<)caption(>)",beginCaptures:{"0":{name:"entity.name.tag.inline.jsdoc"},"1":{name:"punctuation.definition.bracket.angle.begin.jsdoc"},"2":{name:"punctuation.definition.bracket.angle.end.jsdoc"}},end:"(</)caption(>)|(?=\\*/)",endCaptures:{"0":{name:"entity.name.tag.inline.jsdoc"},"1":{name:"punctuation.definition.bracket.angle.begin.jsdoc"},"2":{name:"punctuation.definition.bracket.angle.end.jsdoc"}}},{match:"[^\\s@*](?:[^*]|\\*[^/])*",captures:{"0":{name:"source.embedded.tsx"}}}]},{match:"(?x) ((@)kind) \\s+ (class|constant|event|external|file|function|member|mixin|module|namespace|typedef) \\b",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"constant.language.symbol-type.jsdoc"}}},{match:"(?x)\n((@)see)\n\\s+\n(?:\n # URL\n (\n (?=https?://)\n (?:[^\\s*]|\\*[^/])+\n )\n |\n # JSDoc namepath\n (\n (?!\n # Avoid matching bare URIs (also acceptable as links)\n https?://\n |\n # Avoid matching {@inline tags}; we match those below\n (?:\\[[^\\[\\]]*\\])? # Possible description [preceding]{@tag}\n {@(?:link|linkcode|linkplain|tutorial)\\b\n )\n # Matched namepath\n (?:[^@\\s*/]|\\*[^/])+\n )\n)",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"variable.other.link.underline.jsdoc"},"4":{name:"entity.name.type.instance.jsdoc"}}},{match:"(?x)\n((@)template)\n\\s+\n# One or more valid identifiers\n(\n [A-Za-z_$] # First character: non-numeric word character\n [\\w$.\\[\\]]* # Rest of identifier\n (?: # Possible list of additional identifiers\n \\s* , \\s*\n [A-Za-z_$]\n [\\w$.\\[\\]]*\n )*\n)",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"variable.other.jsdoc"}}},{begin:"(?x)((@)template)\\s+(?={)",beginCaptures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{name:"variable.other.jsdoc",match:"([A-Za-z_$][\\w$.\\[\\]]*)"}]},{match:"(?x)\n(\n (@)\n (?:arg|argument|const|constant|member|namespace|param|var)\n)\n\\s+\n(\n [A-Za-z_$]\n [\\w$.\\[\\]]*\n)",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"variable.other.jsdoc"}}},{begin:"((@)typedef)\\s+(?={)",beginCaptures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{name:"entity.name.type.instance.jsdoc",match:"(?:[^@\\s*/]|\\*[^/])+"}]},{begin:"((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\s+(?={)",beginCaptures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{name:"variable.other.jsdoc",match:"([A-Za-z_$][\\w$.\\[\\]]*)"},{name:"variable.other.jsdoc",match:"(?x)\n(\\[)\\s*\n[\\w$]+\n(?:\n (?:\\[\\])? # Foo[ ].bar properties within an array\n \\. # Foo.Bar namespaced parameter\n [\\w$]+\n)*\n(?:\n \\s*\n (=) # [foo=bar] Default parameter value\n \\s*\n (\n # The inner regexes are to stop the match early at */ and to not stop at escaped quotes\n (?>\n \"(?:(?:\\*(?!/))|(?:\\\\(?!\"))|[^*\\\\])*?\" | # [foo=\"bar\"] Double-quoted\n '(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?' | # [foo='bar'] Single-quoted\n \\[ (?:(?:\\*(?!/))|[^*])*? \\] | # [foo=[1,2]] Array literal\n (?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])* # Everything else\n )*\n )\n)?\n\\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))",captures:{"1":{name:"punctuation.definition.optional-value.begin.bracket.square.jsdoc"},"2":{name:"keyword.operator.assignment.jsdoc"},"3":{name:"source.embedded.tsx"},"4":{name:"punctuation.definition.optional-value.end.bracket.square.jsdoc"},"5":{name:"invalid.illegal.syntax.jsdoc"}}}]},{begin:"(?x)\n(\n (@)\n (?:define|enum|exception|export|extends|lends|implements|modifies\n |namespace|private|protected|returns?|satisfies|suppress|this|throws|type\n |yields?)\n)\n\\s+(?={)",beginCaptures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"}]},{match:"(?x)\n(\n (@)\n (?:alias|augments|callback|constructs|emits|event|fires|exports?\n |extends|external|function|func|host|lends|listens|interface|memberof!?\n |method|module|mixes|mixin|name|requires|see|this|typedef|uses)\n)\n\\s+\n(\n (?:\n [^{}@\\s*] | \\*[^/]\n )+\n)",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"entity.name.type.instance.jsdoc"}}},{contentName:"variable.other.jsdoc",begin:"((@)(?:default(?:value)?|license|version))\\s+(([''\"]))",beginCaptures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"variable.other.jsdoc"},"4":{name:"punctuation.definition.string.begin.jsdoc"}},end:"(\\3)|(?=$|\\*/)",endCaptures:{"0":{name:"variable.other.jsdoc"},"1":{name:"punctuation.definition.string.end.jsdoc"}}},{match:"((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"variable.other.jsdoc"}}},{name:"storage.type.class.jsdoc",match:"(?x) (@) (?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles |callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright |default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception |exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func |function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc |inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method |mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects |override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected |public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary |suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation |version|virtual|writeOnce|yields?) \\b",captures:{"1":{name:"punctuation.definition.block.tag.jsdoc"}}},{include:"#inline-tags"},{match:"((@)(?:[_$[:alpha:]][_$[:alnum:]]*))(?=\\s+)",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"}}}]},brackets:{patterns:[{begin:"{",end:"}|(?=\\*/)",patterns:[{include:"#brackets"}]},{begin:"\\[",end:"\\]|(?=\\*/)",patterns:[{include:"#brackets"}]}]},"inline-tags":{patterns:[{name:"constant.other.description.jsdoc",match:"(\\[)[^\\]]+(\\])(?={@(?:link|linkcode|linkplain|tutorial))",captures:{"1":{name:"punctuation.definition.bracket.square.begin.jsdoc"},"2":{name:"punctuation.definition.bracket.square.end.jsdoc"}}},{name:"entity.name.type.instance.jsdoc",begin:"({)((@)(?:link(?:code|plain)?|tutorial))\\s*",beginCaptures:{"1":{name:"punctuation.definition.bracket.curly.begin.jsdoc"},"2":{name:"storage.type.class.jsdoc"},"3":{name:"punctuation.definition.inline.tag.jsdoc"}},end:"}|(?=\\*/)",endCaptures:{"0":{name:"punctuation.definition.bracket.curly.end.jsdoc"}},patterns:[{match:"\\G((?=https?://)(?:[^|}\\s*]|\\*[/])+)(\\|)?",captures:{"1":{name:"variable.other.link.underline.jsdoc"},"2":{name:"punctuation.separator.pipe.jsdoc"}}},{match:"\\G((?:[^{}@\\s|*]|\\*[^/])+)(\\|)?",captures:{"1":{name:"variable.other.description.jsdoc"},"2":{name:"punctuation.separator.pipe.jsdoc"}}}]}]},jsdoctype:{patterns:[{contentName:"entity.name.type.instance.jsdoc",begin:"\\G({)",beginCaptures:{"0":{name:"entity.name.type.instance.jsdoc"},"1":{name:"punctuation.definition.bracket.curly.begin.jsdoc"}},end:"((}))\\s*|(?=\\*/)",endCaptures:{"1":{name:"entity.name.type.instance.jsdoc"},"2":{name:"punctuation.definition.bracket.curly.end.jsdoc"}},patterns:[{include:"#brackets"}]}]},jsx:{patterns:[{include:"#jsx-tag-without-attributes-in-expression"},{include:"#jsx-tag-in-expression"}]},"jsx-tag-without-attributes-in-expression":{begin:"(?<!\\+\\+|--)(?<=[({\\[,?=>:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s*(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>))",end:"(?!(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>))",patterns:[{include:"#jsx-tag-without-attributes"}]},"jsx-tag-without-attributes":{name:"meta.tag.without-attributes.tsx",begin:"(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>)",end:"(</)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>)",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.tsx"},"2":{name:"entity.name.tag.namespace.tsx"},"3":{name:"punctuation.separator.namespace.tsx"},"4":{name:"entity.name.tag.tsx"},"5":{name:"support.class.component.tsx"},"6":{name:"punctuation.definition.tag.end.tsx"}},endCaptures:{"1":{name:"punctuation.definition.tag.begin.tsx"},"2":{name:"entity.name.tag.namespace.tsx"},"3":{name:"punctuation.separator.namespace.tsx"},"4":{name:"entity.name.tag.tsx"},"5":{name:"support.class.component.tsx"},"6":{name:"punctuation.definition.tag.end.tsx"}},contentName:"meta.jsx.children.tsx",patterns:[{include:"#jsx-children"}]},"jsx-tag-in-expression":{begin:"(?x)\n (?<!\\+\\+|--)(?<=[({\\[,?=>:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s*\n (?!<\\s*[_$[:alpha:]][_$[:alnum:]]*((\\s+extends\\s+[^=>])|,)) # look ahead is not type parameter of arrow\n (?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))",end:"(?!(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))",patterns:[{include:"#jsx-tag"}]},"jsx-tag":{name:"meta.tag.tsx",begin:"(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))",end:"(/>)|(?:(</)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>))",endCaptures:{"1":{name:"punctuation.definition.tag.end.tsx"},"2":{name:"punctuation.definition.tag.begin.tsx"},"3":{name:"entity.name.tag.namespace.tsx"},"4":{name:"punctuation.separator.namespace.tsx"},"5":{name:"entity.name.tag.tsx"},"6":{name:"support.class.component.tsx"},"7":{name:"punctuation.definition.tag.end.tsx"}},patterns:[{begin:"(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>)",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.tsx"},"2":{name:"entity.name.tag.namespace.tsx"},"3":{name:"punctuation.separator.namespace.tsx"},"4":{name:"entity.name.tag.tsx"},"5":{name:"support.class.component.tsx"}},end:"(?=[/]?>)",patterns:[{include:"#comment"},{include:"#type-arguments"},{include:"#jsx-tag-attributes"}]},{begin:"(>)",beginCaptures:{"1":{name:"punctuation.definition.tag.end.tsx"}},end:"(?=</)",contentName:"meta.jsx.children.tsx",patterns:[{include:"#jsx-children"}]}]},"jsx-children":{patterns:[{include:"#jsx-tag-without-attributes"},{include:"#jsx-tag"},{include:"#jsx-evaluated-code"},{include:"#jsx-entities"}]},"jsx-evaluated-code":{contentName:"meta.embedded.expression.tsx",begin:"\\{",end:"\\}",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.tsx"}},endCaptures:{"0":{name:"punctuation.section.embedded.end.tsx"}},patterns:[{include:"#expression"}]},"jsx-entities":{patterns:[{name:"constant.character.entity.tsx",match:"(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)",captures:{"1":{name:"punctuation.definition.entity.tsx"},"3":{name:"punctuation.definition.entity.tsx"}}}]},"jsx-tag-attributes":{name:"meta.tag.attributes.tsx",begin:"\\s+",end:"(?=[/]?>)",patterns:[{include:"#comment"},{include:"#jsx-tag-attribute-name"},{include:"#jsx-tag-attribute-assignment"},{include:"#jsx-string-double-quoted"},{include:"#jsx-string-single-quoted"},{include:"#jsx-evaluated-code"},{include:"#jsx-tag-attributes-illegal"}]},"jsx-tag-attribute-name":{match:"(?x)\n \\s*\n (?:([_$[:alpha:]][-_$[:alnum:].]*)(:))?\n ([_$[:alpha:]][-_$[:alnum:]]*)\n (?=\\s|=|/?>|/\\*|//)",captures:{"1":{name:"entity.other.attribute-name.namespace.tsx"},"2":{name:"punctuation.separator.namespace.tsx"},"3":{name:"entity.other.attribute-name.tsx"}}},"jsx-tag-attribute-assignment":{name:"keyword.operator.assignment.tsx",match:"=(?=\\s*(?:'|\"|{|/\\*|//|\\n))"},"jsx-string-double-quoted":{name:"string.quoted.double.tsx",begin:"\"",end:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.tsx"}},endCaptures:{"0":{name:"punctuation.definition.string.end.tsx"}},patterns:[{include:"#jsx-entities"}]},"jsx-string-single-quoted":{name:"string.quoted.single.tsx",begin:"'",end:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.tsx"}},endCaptures:{"0":{name:"punctuation.definition.string.end.tsx"}},patterns:[{include:"#jsx-entities"}]},"jsx-tag-attributes-illegal":{name:"invalid.illegal.attribute.tsx",match:"\\S+"}}}; + +export { tsx_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/turtle.tmLanguage-030a353f.mjs b/docs/shiki/dist/languages/turtle.tmLanguage-030a353f.mjs new file mode 100644 index 00000000..786fe8d1 --- /dev/null +++ b/docs/shiki/dist/languages/turtle.tmLanguage-030a353f.mjs @@ -0,0 +1,3 @@ +var turtle_tmLanguage = {name:"turtle",scopeName:"source.turtle",fileTypes:["turtle","ttl","acl"],patterns:[{include:"#rule-constraint"},{include:"#iriref"},{include:"#prefix"},{include:"#prefixed-name"},{include:"#comment"},{include:"#special-predicate"},{include:"#literals"},{include:"#language-tag"}],uuid:"230498230498sdfkj8909-34df-23dfs",repository:{prefix:{name:"keyword.operator.turtle",match:"(?i:@?base|@?prefix)\\s"},iriref:{name:"entity.name.type.iriref.turtle",match:"<[^\\x20-\\x20<>\"{}|^`\\\\]*>"},"prefixed-name":{name:"constant.complex.turtle",match:"(\\w*:)(\\w*)",captures:{"1":{name:"storage.type.PNAME_NS.turtle"},"2":{name:"support.variable.PN_LOCAL.turtle"}}},comment:{name:"comment.line.number-sign.turtle",match:"#.*$"},"special-predicate":{name:"meta.specialPredicate.turtle",match:"\\s(a)\\s",captures:{"1":{name:"keyword.control.turtle"}}},literals:{patterns:[{include:"#string"},{include:"#numeric"},{include:"#boolean"}]},string:{patterns:[{include:"#triple-squote-string-literal"},{include:"#triple-dquote-string-literal"},{include:"#single-squote-string-literal"},{include:"#single-dquote-string-literal"},{include:"#triple-tick-string-literal"}]},"single-squote-string-literal":{name:"string.quoted.single.turtle",begin:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.turtle"}},end:"'",endCaptures:{"1":{name:"punctuation.definition.string.end.turtle"},"2":{name:"invalid.illegal.newline.turtle"}},patterns:[{include:"#string-character-escape"}]},"single-dquote-string-literal":{name:"string.quoted.double.turtle",begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.turtle"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.turtle"}},patterns:[{include:"#string-character-escape"}]},"triple-squote-string-literal":{name:"string.quoted.triple.turtle",begin:"'''",end:"'''",beginCaptures:{"0":{name:"punctuation.definition.string.begin.turtle"}},endCaptures:{"0":{name:"punctuation.definition.string.end.turtle"}},patterns:[{include:"#string-character-escape"}]},"triple-dquote-string-literal":{name:"string.quoted.triple.turtle",begin:"\"\"\"",end:"\"\"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.turtle"}},endCaptures:{"0":{name:"punctuation.definition.string.end.turtle"}},patterns:[{include:"#string-character-escape"}]},"triple-tick-string-literal":{name:"string.quoted.triple.turtle",begin:"```",end:"```",beginCaptures:{"0":{name:"punctuation.definition.string.begin.turtle"}},endCaptures:{"0":{name:"punctuation.definition.string.end.turtle"}},patterns:[{include:"#string-character-escape"}]},"string-character-escape":{name:"constant.character.escape.turtle",match:"\\\\(x\\h{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)"},numeric:{patterns:[{include:"#integer"}]},integer:{name:"constant.numeric.turtle",match:"[+-]?(?:\\d+|[0-9]+\\.[0-9]*|\\.[0-9]+(?:[eE][+-]?\\d+)?)"},boolean:{name:"constant.language.sparql",match:"\\b(?i:true|false)\\b"},"language-tag":{name:"meta.string-literal-language-tag.turtle",match:"@(\\w+)",captures:{"1":{name:"entity.name.class.turtle"}}},"rule-constraint":{name:"meta.rule-constraint.turtle",begin:"(rule:content) (\"\"\")",beginCaptures:{"1":{patterns:[{include:"#prefixed-name"}]},"2":{name:"string.quoted.triple.turtle"}},end:"\"\"\"",endCaptures:{"0":{name:"string.quoted.triple.turtle"}},patterns:[{include:"source.srs"}]}}}; + +export { turtle_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/twig.tmLanguage-b8077558.mjs b/docs/shiki/dist/languages/twig.tmLanguage-b8077558.mjs new file mode 100644 index 00000000..d14dfebc --- /dev/null +++ b/docs/shiki/dist/languages/twig.tmLanguage-b8077558.mjs @@ -0,0 +1,3 @@ +var twig_tmLanguage = {fileTypes:["twig","html.twig"],firstLineMatch:"<!(?i:DOCTYPE)|<(?i:html)|<\\?(?i:php)|\\{\\{|\\{%|\\{#",foldingStartMarker:"(?x)\n (<(?i:body|div|dl|fieldset|form|head|li|ol|script|select|style|table|tbody|tfoot|thead|tr|ul)\\b.*?>\n |<!--(?!.*--\\s*>)\n |^<!--\\ \\#tminclude\\ (?>.*?-->)$\n |\\{%\\s+(autoescape|block|embed|filter|for|if|macro|raw|sandbox|set|spaceless|trans|verbatim)\n )",foldingStopMarker:"(?x)\n (</(?i:body|div|dl|fieldset|form|head|li|ol|script|select|style|table|tbody|tfoot|thead|tr|ul)>\n |^(?!.*?<!--).*?--\\s*>\n |^<!--\\ end\\ tminclude\\ -->$\n |\\{%\\s+end(autoescape|block|embed|filter|for|if|macro|raw|sandbox|set|spaceless|trans|verbatim)\n )",keyEquivalent:"^~T",name:"twig",patterns:[{begin:"(<)([a-zA-Z0-9:]++)(?=[^>]*></\\2>)",beginCaptures:{"1":{name:"punctuation.definition.tag.html"},"2":{name:"entity.name.tag.html"}},end:"(>(<)/)(\\2)(>)",endCaptures:{"1":{name:"punctuation.definition.tag.html"},"2":{name:"meta.scope.between-tag-pair.html"},"3":{name:"entity.name.tag.html"},"4":{name:"punctuation.definition.tag.html"}},name:"meta.tag.any.html",patterns:[{include:"#tag-stuff"}]},{begin:"(<\\?)(xml)",captures:{"1":{name:"punctuation.definition.tag.html"},"2":{name:"entity.name.tag.xml.html"}},end:"(\\?>)",name:"meta.tag.preprocessor.xml.html",patterns:[{include:"#tag-generic-attribute"},{include:"#string-double-quoted"},{include:"#string-single-quoted"}]},{begin:"<!--",captures:{"0":{name:"punctuation.definition.comment.html"}},end:"--\\s*>",name:"comment.block.html",patterns:[{match:"--",name:"invalid.illegal.bad-comments-or-CDATA.html"},{include:"#embedded-code"}]},{begin:"<!",captures:{"0":{name:"punctuation.definition.tag.html"}},end:">",name:"meta.tag.sgml.html",patterns:[{begin:"(?i:DOCTYPE)",captures:{"1":{name:"entity.name.tag.doctype.html"}},end:"(?=>)",name:"meta.tag.sgml.doctype.html",patterns:[{match:"\"[^\">]*\"",name:"string.quoted.double.doctype.identifiers-and-DTDs.html"}]},{begin:"\\[CDATA\\[",end:"]](?=>)",name:"constant.other.inline-data.html"},{match:"(\\s*)(?!--|>)\\S(\\s*)",name:"invalid.illegal.bad-comments-or-CDATA.html"}]},{include:"#embedded-code"},{begin:"(?:^\\s+)?(<)((?i:style))\\b(?![^>]*/>)",captures:{"1":{name:"punctuation.definition.tag.html"},"2":{name:"entity.name.tag.style.html"},"3":{name:"punctuation.definition.tag.html"}},end:"(</)((?i:style))(>)(?:\\s*\\n)?",name:"source.css.embedded.html",patterns:[{include:"#tag-stuff"},{begin:"(>)",beginCaptures:{"1":{name:"punctuation.definition.tag.html"}},end:"(?=</(?i:style))",patterns:[{include:"#embedded-code"},{include:"source.css"}]}]},{begin:"(?:^\\s+)?(<)((?i:script))\\b(?![^>]*/>)",beginCaptures:{"1":{name:"punctuation.definition.tag.html"},"2":{name:"entity.name.tag.script.html"}},end:"(?<=</(script|SCRIPT))(>)(?:\\s*\\n)?",endCaptures:{"2":{name:"punctuation.definition.tag.html"}},name:"source.js.embedded.html",patterns:[{include:"#tag-stuff"},{begin:"(?<!</(?:script|SCRIPT))(>)",captures:{"1":{name:"punctuation.definition.tag.html"},"2":{name:"entity.name.tag.script.html"}},end:"(</)((?i:script))",patterns:[{captures:{"1":{name:"punctuation.definition.comment.js"}},match:"(//).*?((?=</script)|$\\n?)",name:"comment.line.double-slash.js"},{begin:"/\\*",captures:{"0":{name:"punctuation.definition.comment.js"}},end:"\\*/|(?=</script)",name:"comment.block.js"},{include:"#php"},{include:"#twig-print-tag"},{include:"#twig-statement-tag"},{include:"#twig-comment-tag"},{include:"source.js"}]}]},{begin:"(?ix) # Enable free spacing mode, case insensitive\n # Make sure our opening js tag has word boundaries\n (?<=\\{\\%\\sjs\\s\\%\\}|\\{\\%\\sincludejs\\s\\%\\})\n ",comment:"Add JS support to set tags that use the pattern \"css\" in their name",end:"(?ix)(?=\\{\\%\\sendjs\\s\\%\\}|\\{\\%\\sendincludejs\\s\\%\\})",name:"source.js.embedded.twig",patterns:[{include:"source.js"}]},{begin:"(?ix) # Enable free spacing mode, case insensitive\n (?<=\\{\\%\\scss\\s\\%\\}|\\{\\%\\sincludecss\\s\\%\\}|\\{\\%\\sincludehirescss\\s\\%\\})\n ",comment:"Add CSS support to set tags that use the pattern \"css\" in their name",end:"(?ix)(?=\\{\\%\\sendcss\\s\\%\\}|\\{\\%\\sendincludecss\\s\\%\\}|\\{\\%\\sendincludehirescss\\s\\%\\})",name:"source.css.embedded.twig",patterns:[{include:"source.css"}]},{begin:"(</?)((?i:body|head|html)\\b)",captures:{"1":{name:"punctuation.definition.tag.html"},"2":{name:"entity.name.tag.structure.any.html"}},end:"(>)",name:"meta.tag.structure.any.html",patterns:[{include:"#tag-stuff"}]},{begin:"(</?)((?i:address|blockquote|dd|div|dl|dt|fieldset|form|frame|frameset|h1|h2|h3|h4|h5|h6|iframe|noframes|object|ol|p|ul|applet|center|dir|hr|menu|pre)\\b)",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.block.any.html"}},end:"(>)",endCaptures:{"1":{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.block.any.html",patterns:[{include:"#tag-stuff"}]},{begin:"(</?)((?i:a|abbr|acronym|area|b|base|basefont|bdo|big|br|button|caption|cite|code|col|colgroup|del|dfn|em|font|head|html|i|img|input|ins|isindex|kbd|label|legend|li|link|map|meta|noscript|optgroup|option|param|q|s|samp|script|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|title|tr|tt|u|var)\\b)",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.inline.any.html"}},end:"((?: ?/)?>)",endCaptures:{"1":{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.inline.any.html",patterns:[{include:"#tag-stuff"}]},{begin:"(</?)([a-zA-Z0-9:]+)",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.other.html"}},end:"(>)",endCaptures:{"1":{name:"punctuation.definition.tag.end.html"}},name:"meta.tag.other.html",patterns:[{include:"#tag-stuff"}]},{include:"#entities"},{match:"<>",name:"invalid.illegal.incomplete.html"},{match:"<",name:"invalid.illegal.bad-angle-bracket.html"},{include:"#twig-print-tag"},{include:"#twig-statement-tag"},{include:"#twig-comment-tag"}],repository:{"embedded-code":{patterns:[{include:"#ruby"},{include:"#php"},{include:"#twig-print-tag"},{include:"#twig-statement-tag"},{include:"#twig-comment-tag"},{include:"#python"}]},entities:{patterns:[{captures:{"1":{name:"punctuation.definition.entity.html"},"3":{name:"punctuation.definition.entity.html"}},match:"(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)",name:"constant.character.entity.html"},{match:"&",name:"invalid.illegal.bad-ampersand.html"}]},"twig-print-tag":{begin:"\\{\\{-?",beginCaptures:{"0":{name:"punctuation.section.tag.twig"}},end:"-?\\}\\}",endCaptures:{"0":{name:"punctuation.section.tag.twig"}},name:"meta.tag.template.value.twig",patterns:[{include:"#twig-constants"},{include:"#twig-operators"},{include:"#twig-functions-warg"},{include:"#twig-functions"},{include:"#twig-macros"},{include:"#twig-objects"},{include:"#twig-properties"},{include:"#twig-filters-warg"},{include:"#twig-filters"},{include:"#twig-filters-warg-ud"},{include:"#twig-filters-ud"},{include:"#twig-strings"},{include:"#twig-arrays"},{include:"#twig-hashes"}]},"twig-statement-tag":{begin:"\\{%-?",beginCaptures:{"0":{name:"punctuation.section.tag.twig"}},end:"-?%\\}",endCaptures:{"0":{name:"punctuation.section.tag.twig"}},name:"meta.tag.template.block.twig",patterns:[{include:"#twig-constants"},{include:"#twig-keywords"},{include:"#twig-operators"},{include:"#twig-functions-warg"},{include:"#twig-functions"},{include:"#twig-macros"},{include:"#twig-filters-warg"},{include:"#twig-filters"},{include:"#twig-filters-warg-ud"},{include:"#twig-filters-ud"},{include:"#twig-objects"},{include:"#twig-properties"},{include:"#twig-strings"},{include:"#twig-arrays"},{include:"#twig-hashes"}]},"twig-comment-tag":{begin:"\\{#-?",beginCaptures:{"0":{name:"punctuation.definition.comment.begin.twig"}},end:"-?#\\}",endCaptures:{"0":{name:"punctuation.definition.comment.end.twig"}},name:"comment.block.twig"},"twig-constants":{patterns:[{match:"(?i)(?<=[\\s\\[\\(\\{:,])(?:true|false|null|none)(?=[\\s\\)\\]\\}\\,])",name:"constant.language.twig"},{match:"(?<=[\\s\\[\\(\\{:,]|\\.\\.|\\*\\*)[0-9]+(?:\\.[0-9]+)?(?=[\\s\\)\\]\\}\\,]|\\.\\.|\\*\\*)",name:"constant.numeric.twig"}]},"twig-operators":{patterns:[{captures:{"1":{name:"keyword.operator.arithmetic.twig"}},match:"(?<=\\s)(\\+|-|//?|%|\\*\\*?)(?=\\s)"},{captures:{"1":{name:"keyword.operator.assignment.twig"}},match:"(?<=\\s)(=|~)(?=\\s)"},{captures:{"1":{name:"keyword.operator.bitwise.twig"}},match:"(?<=\\s)(b-(?:and|or|xor))(?=\\s)"},{captures:{"1":{name:"keyword.operator.comparison.twig"}},match:"(?<=\\s)((?:!|=)=|<=?|>=?|(?:not )?in|is(?: not)?|(?:ends|starts) with|matches)(?=\\s)"},{captures:{"1":{name:"keyword.operator.logical.twig"}},match:"(?<=\\s)(\\?|:|and|not|or)(?=\\s)"},{captures:{"0":{name:"keyword.operator.other.twig"}},match:"(?<=[a-zA-Z0-9_\\x{7f}-\\x{ff}\\]\\)'\"])\\.\\.(?=[a-zA-Z0-9_\\x{7f}-\\x{ff}'\"])"},{captures:{"0":{name:"keyword.operator.other.twig"}},match:"(?<=[a-zA-Z0-9_\\x{7f}-\\x{ff}\\]\\}\\)'\"])\\|(?=[a-zA-Z_\\x{7f}-\\x{ff}])"}]},"twig-objects":{captures:{"1":{name:"variable.other.twig"}},match:"(?<=[\\s\\{\\[\\(:,])([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)(?=[\\s\\}\\[\\]\\(\\)\\.\\|,:])"},"twig-properties":{patterns:[{captures:{"1":{name:"punctuation.separator.property.twig"},"2":{name:"variable.other.property.twig"}},match:"(?x)\n (?<=[a-zA-Z0-9_\\x{7f}-\\x{ff}])\n (\\.)([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n (?=[\\.\\s\\|\\[\\)\\]\\}:,])\n "},{begin:"(?x)\n (?<=[a-zA-Z0-9_\\x{7f}-\\x{ff}])\n (\\.)([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n (\\()\n ",beginCaptures:{"1":{name:"punctuation.separator.property.twig"},"2":{name:"variable.other.property.twig"},"3":{name:"punctuation.definition.parameters.begin.twig"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.parameters.end.twig"}},patterns:[{include:"#twig-constants"},{include:"#twig-functions-warg"},{include:"#twig-functions"},{include:"#twig-macros"},{include:"#twig-objects"},{include:"#twig-properties"},{include:"#twig-filters-warg"},{include:"#twig-filters"},{include:"#twig-filters-warg-ud"},{include:"#twig-filters-ud"},{include:"#twig-strings"},{include:"#twig-arrays"}],contentName:"meta.function.arguments.twig"},{captures:{"1":{name:"punctuation.section.array.begin.twig"},"2":{name:"variable.other.property.twig"},"3":{name:"punctuation.section.array.end.twig"},"4":{name:"punctuation.section.array.begin.twig"},"5":{name:"variable.other.property.twig"},"6":{name:"punctuation.section.array.end.twig"},"7":{name:"punctuation.section.array.begin.twig"},"8":{name:"variable.other.property.twig"},"9":{name:"punctuation.section.array.end.twig"}},match:"(?x)\n (?<=[a-zA-Z0-9_\\x{7f}-\\x{ff}\\]])\n (?:\n (\\[)('[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*')(\\])\n |(\\[)(\"[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*\")(\\])\n |(\\[)([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)(\\])\n )\n "}]},"twig-strings":{patterns:[{begin:"(?:(?<!\\\\)|(?<=\\\\\\\\))'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.twig"}},end:"(?:(?<!\\\\)|(?<=\\\\\\\\))'",endCaptures:{"0":{name:"punctuation.definition.string.end.twig"}},name:"string.quoted.single.twig"},{begin:"(?:(?<!\\\\)|(?<=\\\\\\\\))\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.twig"}},end:"(?:(?<!\\\\)|(?<=\\\\\\\\))\"",endCaptures:{"0":{name:"punctuation.definition.string.end.twig"}},name:"string.quoted.double.twig"}]},"twig-arrays":{begin:"(?<=[\\s\\(\\{\\[:,])\\[",beginCaptures:{"0":{name:"punctuation.section.array.begin.twig"}},end:"\\]",endCaptures:{"0":{name:"punctuation.section.array.end.twig"}},patterns:[{include:"#twig-arrays"},{include:"#twig-hashes"},{include:"#twig-constants"},{include:"#twig-strings"},{include:"#twig-functions-warg"},{include:"#twig-functions"},{include:"#twig-macros"},{include:"#twig-objects"},{include:"#twig-properties"},{include:"#twig-filters-warg"},{include:"#twig-filters"},{include:"#twig-filters-warg-ud"},{include:"#twig-filters-ud"},{match:",",name:"punctuation.separator.object.twig"}],name:"meta.array.twig"},"twig-hashes":{begin:"(?<=[\\s\\(\\{\\[:,])\\{",beginCaptures:{"0":{name:"punctuation.section.hash.begin.twig"}},end:"\\}",endCaptures:{"0":{name:"punctuation.section.hash.end.twig"}},patterns:[{include:"#twig-hashes"},{include:"#twig-arrays"},{include:"#twig-constants"},{include:"#twig-strings"},{include:"#twig-functions-warg"},{include:"#twig-functions"},{include:"#twig-macros"},{include:"#twig-objects"},{include:"#twig-properties"},{include:"#twig-filters-warg"},{include:"#twig-filters"},{include:"#twig-filters-warg-ud"},{include:"#twig-filters-ud"},{match:":",name:"punctuation.separator.key-value.twig"},{match:",",name:"punctuation.separator.object.twig"}],name:"meta.hash.twig"},"twig-keywords":{match:"(?<=\\s)((?:end)?(?:autoescape|block|embed|filter|for|if|macro|raw|sandbox|set|spaceless|trans|verbatim)|as|do|else|elseif|extends|flush|from|ignore missing|import|include|only|use|with)(?=\\s)",name:"keyword.control.twig"},"twig-functions-warg":{begin:"(?<=[\\s\\(\\[\\{:,])(attribute|block|constant|cycle|date|divisible by|dump|include|max|min|parent|random|range|same as|source|template_from_string)(\\()",beginCaptures:{"1":{name:"support.function.twig"},"2":{name:"punctuation.definition.parameters.begin.twig"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.parameters.end.twig"}},patterns:[{include:"#twig-constants"},{include:"#twig-functions-warg"},{include:"#twig-functions"},{include:"#twig-macros"},{include:"#twig-objects"},{include:"#twig-properties"},{include:"#twig-filters-warg"},{include:"#twig-filters"},{include:"#twig-filters-warg-ud"},{include:"#twig-filters-ud"},{include:"#twig-strings"},{include:"#twig-arrays"}],contentName:"meta.function.arguments.twig"},"twig-functions":{captures:{"1":{name:"support.function.twig"}},match:"(?<=is\\s)(defined|empty|even|iterable|odd)"},"twig-macros":{begin:"(?x)\n (?<=[\\s\\(\\[\\{:,])\n ([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n (?:\n (\\.)([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n )?\n (\\()\n ",beginCaptures:{"1":{name:"meta.function-call.twig"},"2":{name:"punctuation.separator.property.twig"},"3":{name:"variable.other.property.twig"},"4":{name:"punctuation.definition.parameters.begin.twig"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.parameters.end.twig"}},patterns:[{include:"#twig-constants"},{include:"#twig-operators"},{include:"#twig-functions-warg"},{include:"#twig-functions"},{include:"#twig-macros"},{include:"#twig-objects"},{include:"#twig-properties"},{include:"#twig-filters-warg"},{include:"#twig-filters"},{include:"#twig-filters-warg-ud"},{include:"#twig-filters-ud"},{include:"#twig-strings"},{include:"#twig-arrays"},{include:"#twig-hashes"}],contentName:"meta.function.arguments.twig"},"twig-filters-warg":{begin:"(?<=(?:[a-zA-Z0-9_\\x{7f}-\\x{ff}\\]\\)\\'\\\"]\\|)|\\{%\\sfilter\\s)(batch|convert_encoding|date|date_modify|default|e(?:scape)?|format|join|merge|number_format|replace|round|slice|split|trim)(\\()",beginCaptures:{"1":{name:"support.function.twig"},"2":{name:"punctuation.definition.parameters.begin.twig"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.parameters.end.twig"}},patterns:[{include:"#twig-constants"},{include:"#twig-functions-warg"},{include:"#twig-functions"},{include:"#twig-macros"},{include:"#twig-objects"},{include:"#twig-properties"},{include:"#twig-filters-warg"},{include:"#twig-filters"},{include:"#twig-filters-warg-ud"},{include:"#twig-filters-ud"},{include:"#twig-strings"},{include:"#twig-arrays"},{include:"#twig-hashes"}],contentName:"meta.function.arguments.twig"},"twig-filters":{captures:{"1":{name:"support.function.twig"}},match:"(?<=(?:[a-zA-Z0-9_\\x{7f}-\\x{ff}\\]\\)\\'\\\"]\\|)|\\{%\\sfilter\\s)(abs|capitalize|e(?:scape)?|first|join|(?:json|url)_encode|keys|last|length|lower|nl2br|number_format|raw|reverse|round|sort|striptags|title|trim|upper)(?=[\\s\\|\\]\\}\\):,]|\\.\\.|\\*\\*)"},"twig-filters-warg-ud":{begin:"(?<=(?:[a-zA-Z0-9_\\x{7f}-\\x{ff}\\]\\)\\'\\\"]\\|)|\\{%\\sfilter\\s)([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)(\\()",beginCaptures:{"1":{name:"meta.function-call.other.twig"},"2":{name:"punctuation.definition.parameters.begin.twig"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.parameters.end.twig"}},patterns:[{include:"#twig-constants"},{include:"#twig-functions-warg"},{include:"#twig-functions"},{include:"#twig-macros"},{include:"#twig-objects"},{include:"#twig-properties"},{include:"#twig-filters-warg"},{include:"#twig-filters"},{include:"#twig-filters-warg-ud"},{include:"#twig-filters-ud"},{include:"#twig-strings"},{include:"#twig-arrays"},{include:"#twig-hashes"}],contentName:"meta.function.arguments.twig"},"twig-filters-ud":{captures:{"1":{name:"meta.function-call.other.twig"}},match:"(?<=(?:[a-zA-Z0-9_\\x{7f}-\\x{ff}\\]\\)\\'\\\"]\\|)|\\{%\\sfilter\\s)([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)"},php:{begin:"(?=(^\\s*)?<\\?)",end:"(?!(^\\s*)?<\\?)",patterns:[{include:"source.php"}]},python:{begin:"(?:^\\s*)<\\?python(?!.*\\?>)",end:"\\?>(?:\\s*$\\n)?",name:"source.python.embedded.html",patterns:[{include:"source.python"}]},ruby:{patterns:[{begin:"<%+#",captures:{"0":{name:"punctuation.definition.comment.erb"}},end:"%>",name:"comment.block.erb"},{begin:"<%+(?!>)=?",captures:{"0":{name:"punctuation.section.embedded.ruby"}},end:"-?%>",name:"source.ruby.embedded.html",patterns:[{captures:{"1":{name:"punctuation.definition.comment.ruby"}},match:"(#).*?(?=-?%>)",name:"comment.line.number-sign.ruby"},{include:"source.ruby"}]},{begin:"<\\?r(?!>)=?",captures:{"0":{name:"punctuation.section.embedded.ruby.nitro"}},end:"-?\\?>",name:"source.ruby.nitro.embedded.html",patterns:[{captures:{"1":{name:"punctuation.definition.comment.ruby.nitro"}},match:"(#).*?(?=-?\\?>)",name:"comment.line.number-sign.ruby.nitro"},{include:"source.ruby"}]}]},"string-double-quoted":{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.html"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.html"}},name:"string.quoted.double.html",patterns:[{include:"#embedded-code"},{include:"#entities"}]},"string-single-quoted":{begin:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.html"}},end:"'",endCaptures:{"0":{name:"punctuation.definition.string.end.html"}},name:"string.quoted.single.html",patterns:[{include:"#embedded-code"},{include:"#entities"}]},"tag-generic-attribute":{match:"\\b([a-zA-Z\\-:]+)",name:"entity.other.attribute-name.html"},"tag-id-attribute":{begin:"\\b(id)\\b\\s*(=)",captures:{"1":{name:"entity.other.attribute-name.id.html"},"2":{name:"punctuation.separator.key-value.html"}},end:"(?<='|\")",name:"meta.attribute-with-value.id.html",patterns:[{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.html"}},contentName:"meta.toc-list.id.html",end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.html"}},name:"string.quoted.double.html",patterns:[{include:"#embedded-code"},{include:"#entities"}]},{begin:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.html"}},contentName:"meta.toc-list.id.html",end:"'",endCaptures:{"0":{name:"punctuation.definition.string.end.html"}},name:"string.quoted.single.html",patterns:[{include:"#embedded-code"},{include:"#entities"}]}]},"tag-stuff":{patterns:[{include:"#tag-id-attribute"},{include:"#tag-generic-attribute"},{include:"#string-double-quoted"},{include:"#string-single-quoted"},{include:"#embedded-code"}]}},scopeName:"text.html.twig",uuid:"C220B028-86FF-44CB-8A59-27937FC83730"}; + +export { twig_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/typescript.tmLanguage-de4b3b68.mjs b/docs/shiki/dist/languages/typescript.tmLanguage-de4b3b68.mjs new file mode 100644 index 00000000..54fbb9e0 --- /dev/null +++ b/docs/shiki/dist/languages/typescript.tmLanguage-de4b3b68.mjs @@ -0,0 +1,3 @@ +var typescript_tmLanguage = {information_for_contributors:["This file has been converted from https://github.com/microsoft/TypeScript-TmLanguage/blob/master/TypeScript.tmLanguage","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."],version:"https://github.com/microsoft/TypeScript-TmLanguage/commit/8c7482b94b548eab56da64dbfb30b82589b3f747",name:"typescript",scopeName:"source.ts",patterns:[{include:"#directives"},{include:"#statements"},{include:"#shebang"}],repository:{shebang:{name:"comment.line.shebang.ts",match:"\\A(#!).*(?=$)",captures:{"1":{name:"punctuation.definition.comment.ts"}}},statements:{patterns:[{include:"#declaration"},{include:"#control-statement"},{include:"#after-operator-block-as-object-literal"},{include:"#decl-block"},{include:"#label"},{include:"#expression"},{include:"#punctuation-semicolon"},{include:"#string"},{include:"#comment"}]},declaration:{patterns:[{include:"#decorator"},{include:"#var-expr"},{include:"#function-declaration"},{include:"#class-declaration"},{include:"#interface-declaration"},{include:"#enum-declaration"},{include:"#namespace-declaration"},{include:"#type-alias-declaration"},{include:"#import-equals-declaration"},{include:"#import-declaration"},{include:"#export-declaration"},{name:"storage.modifier.ts",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(declare|export)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"}]},"control-statement":{patterns:[{include:"#switch-statement"},{include:"#for-loop"},{name:"keyword.control.trycatch.ts",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(catch|finally|throw|try)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(break|continue|goto)\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",captures:{"1":{name:"keyword.control.loop.ts"},"2":{name:"entity.name.label.ts"}}},{name:"keyword.control.loop.ts",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(break|continue|do|goto|while)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(return)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{"0":{name:"keyword.control.flow.ts"}},end:"(?=[;}]|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",patterns:[{include:"#expression"}]},{name:"keyword.control.switch.ts",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(case|default|switch)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{include:"#if-statement"},{name:"keyword.control.conditional.ts",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(else|if)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{name:"keyword.control.with.ts",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(with)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{name:"keyword.control.ts",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(package)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{name:"keyword.other.debugger.ts",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(debugger)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"}]},label:{patterns:[{begin:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)(?=\\s*\\{)",beginCaptures:{"1":{name:"entity.name.label.ts"},"2":{name:"punctuation.separator.label.ts"}},end:"(?<=\\})",patterns:[{include:"#decl-block"}]},{match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)",captures:{"1":{name:"entity.name.label.ts"},"2":{name:"punctuation.separator.label.ts"}}}]},expression:{patterns:[{include:"#expressionWithoutIdentifiers"},{include:"#identifiers"},{include:"#expressionPunctuations"}]},expressionWithoutIdentifiers:{patterns:[{include:"#string"},{include:"#regex"},{include:"#comment"},{include:"#function-expression"},{include:"#class-expression"},{include:"#arrow-function"},{include:"#paren-expression-possibly-arrow"},{include:"#cast"},{include:"#ternary-expression"},{include:"#new-expr"},{include:"#instanceof-expr"},{include:"#object-literal"},{include:"#expression-operators"},{include:"#function-call"},{include:"#literal"},{include:"#support-objects"},{include:"#paren-expression"}]},expressionPunctuations:{patterns:[{include:"#punctuation-comma"},{include:"#punctuation-accessor"}]},decorator:{name:"meta.decorator.ts",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))\\@",beginCaptures:{"0":{name:"punctuation.decorator.ts"}},end:"(?=\\s)",patterns:[{include:"#expression"}]},"var-expr":{patterns:[{name:"meta.var.expr.ts",begin:"(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))",end:"(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=^|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?<!^let|[^\\._$[:alnum:]]let|^var|[^\\._$[:alnum:]]var)(?=\\s*$)))",patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*",beginCaptures:{"1":{name:"keyword.control.export.ts"},"2":{name:"storage.modifier.ts"},"3":{name:"storage.type.ts"}},end:"(?=\\S)"},{include:"#destructuring-variable"},{include:"#var-single-variable"},{include:"#variable-initializer"},{include:"#comment"},{begin:"(,)\\s*(?=$|\\/\\/)",beginCaptures:{"1":{name:"punctuation.separator.comma.ts"}},end:"(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{include:"#destructuring-variable"},{include:"#var-single-variable"},{include:"#punctuation-comma"}]},{include:"#punctuation-comma"}]},{name:"meta.var.expr.ts",begin:"(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))",beginCaptures:{"1":{name:"keyword.control.export.ts"},"2":{name:"storage.modifier.ts"},"3":{name:"storage.type.ts"}},end:"(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=^|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?<!^const|[^\\._$[:alnum:]]const)(?=\\s*$)))",patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*",beginCaptures:{"1":{name:"keyword.control.export.ts"},"2":{name:"storage.modifier.ts"},"3":{name:"storage.type.ts"}},end:"(?=\\S)"},{include:"#destructuring-const"},{include:"#var-single-const"},{include:"#variable-initializer"},{include:"#comment"},{begin:"(,)\\s*(?=$|\\/\\/)",beginCaptures:{"1":{name:"punctuation.separator.comma.ts"}},end:"(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{include:"#destructuring-const"},{include:"#var-single-const"},{include:"#punctuation-comma"}]},{include:"#punctuation-comma"}]},{name:"meta.var.expr.ts",begin:"(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))",beginCaptures:{"1":{name:"keyword.control.export.ts"},"2":{name:"storage.modifier.ts"},"3":{name:"storage.type.ts"}},end:"(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?<!^using|[^\\._$[:alnum:]]using|^await\\s+using|[^\\._$[:alnum:]]await\\s+using)(?=\\s*$)))",patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*",beginCaptures:{"1":{name:"keyword.control.export.ts"},"2":{name:"storage.modifier.ts"},"3":{name:"storage.type.ts"}},end:"(?=\\S)"},{include:"#var-single-const"},{include:"#variable-initializer"},{include:"#comment"},{begin:"(,)\\s*((?!\\S)|(?=\\/\\/))",beginCaptures:{"1":{name:"punctuation.separator.comma.ts"}},end:"(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{include:"#var-single-const"},{include:"#punctuation-comma"}]},{include:"#punctuation-comma"}]}]},"var-single-variable":{patterns:[{name:"meta.var-single-variable.expr.ts",begin:"(?x)([_$[:alpha:]][_$[:alnum:]]*)(\\!)?(?=\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))",beginCaptures:{"1":{name:"meta.definition.variable.ts entity.name.function.ts"},"2":{name:"keyword.operator.definiteassignment.ts"}},end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))",patterns:[{include:"#var-single-variable-type-annotation"}]},{name:"meta.var-single-variable.expr.ts",begin:"([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])(\\!)?",beginCaptures:{"1":{name:"meta.definition.variable.ts variable.other.constant.ts"},"2":{name:"keyword.operator.definiteassignment.ts"}},end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))",patterns:[{include:"#var-single-variable-type-annotation"}]},{name:"meta.var-single-variable.expr.ts",begin:"([_$[:alpha:]][_$[:alnum:]]*)(\\!)?",beginCaptures:{"1":{name:"meta.definition.variable.ts variable.other.readwrite.ts"},"2":{name:"keyword.operator.definiteassignment.ts"}},end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))",patterns:[{include:"#var-single-variable-type-annotation"}]}]},"var-single-const":{patterns:[{name:"meta.var-single-variable.expr.ts",begin:"(?x)([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))",beginCaptures:{"1":{name:"meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts"}},end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))",patterns:[{include:"#var-single-variable-type-annotation"}]},{name:"meta.var-single-variable.expr.ts",begin:"([_$[:alpha:]][_$[:alnum:]]*)",beginCaptures:{"1":{name:"meta.definition.variable.ts variable.other.constant.ts"}},end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))",patterns:[{include:"#var-single-variable-type-annotation"}]}]},"var-single-variable-type-annotation":{patterns:[{include:"#type-annotation"},{include:"#string"},{include:"#comment"}]},"destructuring-variable":{patterns:[{name:"meta.object-binding-pattern-variable.ts",begin:"(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\{)",end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",patterns:[{include:"#object-binding-pattern"},{include:"#type-annotation"},{include:"#comment"}]},{name:"meta.array-binding-pattern-variable.ts",begin:"(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\[)",end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",patterns:[{include:"#array-binding-pattern"},{include:"#type-annotation"},{include:"#comment"}]}]},"destructuring-const":{patterns:[{name:"meta.object-binding-pattern-variable.ts",begin:"(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\{)",end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",patterns:[{include:"#object-binding-pattern-const"},{include:"#type-annotation"},{include:"#comment"}]},{name:"meta.array-binding-pattern-variable.ts",begin:"(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\[)",end:"(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",patterns:[{include:"#array-binding-pattern-const"},{include:"#type-annotation"},{include:"#comment"}]}]},"object-binding-element":{patterns:[{include:"#comment"},{begin:"(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))",end:"(?=,|\\})",patterns:[{include:"#object-binding-element-propertyName"},{include:"#binding-element"}]},{include:"#object-binding-pattern"},{include:"#destructuring-variable-rest"},{include:"#variable-initializer"},{include:"#punctuation-comma"}]},"object-binding-element-const":{patterns:[{include:"#comment"},{begin:"(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))",end:"(?=,|\\})",patterns:[{include:"#object-binding-element-propertyName"},{include:"#binding-element-const"}]},{include:"#object-binding-pattern-const"},{include:"#destructuring-variable-rest-const"},{include:"#variable-initializer"},{include:"#punctuation-comma"}]},"object-binding-element-propertyName":{begin:"(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))",end:"(:)",endCaptures:{"0":{name:"punctuation.destructuring.ts"}},patterns:[{include:"#string"},{include:"#array-literal"},{include:"#numeric-literal"},{name:"variable.object.property.ts",match:"([_$[:alpha:]][_$[:alnum:]]*)"}]},"binding-element":{patterns:[{include:"#comment"},{include:"#string"},{include:"#numeric-literal"},{include:"#regex"},{include:"#object-binding-pattern"},{include:"#array-binding-pattern"},{include:"#destructuring-variable-rest"},{include:"#variable-initializer"}]},"binding-element-const":{patterns:[{include:"#comment"},{include:"#string"},{include:"#numeric-literal"},{include:"#regex"},{include:"#object-binding-pattern-const"},{include:"#array-binding-pattern-const"},{include:"#destructuring-variable-rest-const"},{include:"#variable-initializer"}]},"destructuring-variable-rest":{match:"(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)",captures:{"1":{name:"keyword.operator.rest.ts"},"2":{name:"meta.definition.variable.ts variable.other.readwrite.ts"}}},"destructuring-variable-rest-const":{match:"(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)",captures:{"1":{name:"keyword.operator.rest.ts"},"2":{name:"meta.definition.variable.ts variable.other.constant.ts"}}},"object-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\{)",beginCaptures:{"1":{name:"keyword.operator.rest.ts"},"2":{name:"punctuation.definition.binding-pattern.object.ts"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.binding-pattern.object.ts"}},patterns:[{include:"#object-binding-element"}]},"object-binding-pattern-const":{begin:"(?:(\\.\\.\\.)\\s*)?(\\{)",beginCaptures:{"1":{name:"keyword.operator.rest.ts"},"2":{name:"punctuation.definition.binding-pattern.object.ts"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.binding-pattern.object.ts"}},patterns:[{include:"#object-binding-element-const"}]},"array-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{"1":{name:"keyword.operator.rest.ts"},"2":{name:"punctuation.definition.binding-pattern.array.ts"}},end:"\\]",endCaptures:{"0":{name:"punctuation.definition.binding-pattern.array.ts"}},patterns:[{include:"#binding-element"},{include:"#punctuation-comma"}]},"array-binding-pattern-const":{begin:"(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{"1":{name:"keyword.operator.rest.ts"},"2":{name:"punctuation.definition.binding-pattern.array.ts"}},end:"\\]",endCaptures:{"0":{name:"punctuation.definition.binding-pattern.array.ts"}},patterns:[{include:"#binding-element-const"},{include:"#punctuation-comma"}]},"parameter-name":{patterns:[{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)",captures:{"1":{name:"storage.modifier.ts"}}},{match:"(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))",captures:{"1":{name:"storage.modifier.ts"},"2":{name:"keyword.operator.rest.ts"},"3":{name:"entity.name.function.ts variable.language.this.ts"},"4":{name:"entity.name.function.ts"},"5":{name:"keyword.operator.optional.ts"}}},{match:"(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)",captures:{"1":{name:"storage.modifier.ts"},"2":{name:"keyword.operator.rest.ts"},"3":{name:"variable.parameter.ts variable.language.this.ts"},"4":{name:"variable.parameter.ts"},"5":{name:"keyword.operator.optional.ts"}}}]},"destructuring-parameter":{patterns:[{name:"meta.parameter.object-binding-pattern.ts",begin:"(?<!=|:)\\s*(?:(\\.\\.\\.)\\s*)?(\\{)",beginCaptures:{"1":{name:"keyword.operator.rest.ts"},"2":{name:"punctuation.definition.binding-pattern.object.ts"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.binding-pattern.object.ts"}},patterns:[{include:"#parameter-object-binding-element"}]},{name:"meta.paramter.array-binding-pattern.ts",begin:"(?<!=|:)\\s*(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{"1":{name:"keyword.operator.rest.ts"},"2":{name:"punctuation.definition.binding-pattern.array.ts"}},end:"\\]",endCaptures:{"0":{name:"punctuation.definition.binding-pattern.array.ts"}},patterns:[{include:"#parameter-binding-element"},{include:"#punctuation-comma"}]}]},"parameter-object-binding-element":{patterns:[{include:"#comment"},{begin:"(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))",end:"(?=,|\\})",patterns:[{include:"#object-binding-element-propertyName"},{include:"#parameter-binding-element"},{include:"#paren-expression"}]},{include:"#parameter-object-binding-pattern"},{include:"#destructuring-parameter-rest"},{include:"#variable-initializer"},{include:"#punctuation-comma"}]},"parameter-binding-element":{patterns:[{include:"#comment"},{include:"#string"},{include:"#numeric-literal"},{include:"#regex"},{include:"#parameter-object-binding-pattern"},{include:"#parameter-array-binding-pattern"},{include:"#destructuring-parameter-rest"},{include:"#variable-initializer"}]},"destructuring-parameter-rest":{match:"(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)",captures:{"1":{name:"keyword.operator.rest.ts"},"2":{name:"variable.parameter.ts"}}},"parameter-object-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\{)",beginCaptures:{"1":{name:"keyword.operator.rest.ts"},"2":{name:"punctuation.definition.binding-pattern.object.ts"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.binding-pattern.object.ts"}},patterns:[{include:"#parameter-object-binding-element"}]},"parameter-array-binding-pattern":{begin:"(?:(\\.\\.\\.)\\s*)?(\\[)",beginCaptures:{"1":{name:"keyword.operator.rest.ts"},"2":{name:"punctuation.definition.binding-pattern.array.ts"}},end:"\\]",endCaptures:{"0":{name:"punctuation.definition.binding-pattern.array.ts"}},patterns:[{include:"#parameter-binding-element"},{include:"#punctuation-comma"}]},"field-declaration":{name:"meta.field.declaration.ts",begin:"(?x)(?<!\\()(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)\\s+)?(?=\\s*((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|(\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|\\}|$))",beginCaptures:{"1":{name:"storage.modifier.ts"}},end:"(?x)(?=\\}|;|,|$|(^(?!\\s*((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|(\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|$))))|(?<=\\})",patterns:[{include:"#variable-initializer"},{include:"#type-annotation"},{include:"#string"},{include:"#array-literal"},{include:"#numeric-literal"},{include:"#comment"},{match:"(?x)(\\#?[_$[:alpha:]][_$[:alnum:]]*)(?:(\\?)|(\\!))?(?=\\s*\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))",captures:{"1":{name:"meta.definition.property.ts entity.name.function.ts"},"2":{name:"keyword.operator.optional.ts"},"3":{name:"keyword.operator.definiteassignment.ts"}}},{name:"meta.definition.property.ts variable.object.property.ts",match:"\\#?[_$[:alpha:]][_$[:alnum:]]*"},{name:"keyword.operator.optional.ts",match:"\\?"},{name:"keyword.operator.definiteassignment.ts",match:"\\!"}]},"variable-initializer":{patterns:[{begin:"(?<!=|!)(=)(?!=)(?=\\s*\\S)(?!\\s*.*=>\\s*$)",beginCaptures:{"1":{name:"keyword.operator.assignment.ts"}},end:"(?=$|^|[,);}\\]]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))",patterns:[{include:"#expression"}]},{begin:"(?<!=|!)(=)(?!=)",beginCaptures:{"1":{name:"keyword.operator.assignment.ts"}},end:"(?=[,);}\\]]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))|(?=^\\s*$)|(?<![\\|\\&\\+\\-\\*\\/])(?<=\\S)(?<!=)(?=\\s*$)",patterns:[{include:"#expression"}]}]},"function-declaration":{name:"meta.function.ts",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\s*",beginCaptures:{"1":{name:"keyword.control.export.ts"},"2":{name:"storage.modifier.ts"},"3":{name:"storage.modifier.async.ts"},"4":{name:"storage.type.function.ts"},"5":{name:"keyword.generator.asterisk.ts"},"6":{name:"meta.definition.function.ts entity.name.function.ts"}},end:"(?=;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|(?<=\\})",patterns:[{include:"#function-name"},{include:"#function-body"}]},"function-expression":{name:"meta.function.expression.ts",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\s*",beginCaptures:{"1":{name:"storage.modifier.async.ts"},"2":{name:"storage.type.function.ts"},"3":{name:"keyword.generator.asterisk.ts"},"4":{name:"meta.definition.function.ts entity.name.function.ts"}},end:"(?=;)|(?<=\\})",patterns:[{include:"#function-name"},{include:"#single-line-comment-consuming-line-ending"},{include:"#function-body"}]},"function-name":{name:"meta.definition.function.ts entity.name.function.ts",match:"[_$[:alpha:]][_$[:alnum:]]*"},"function-body":{patterns:[{include:"#comment"},{include:"#type-parameters"},{include:"#function-parameters"},{include:"#return-type"},{include:"#type-function-return-type"},{include:"#decl-block"},{name:"keyword.generator.asterisk.ts",match:"\\*"}]},"method-declaration":{patterns:[{name:"meta.method.declaration.ts",begin:"(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?\\s*\\b(constructor)\\b(?!:)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{"1":{name:"storage.modifier.ts"},"2":{name:"storage.modifier.ts"},"3":{name:"storage.modifier.ts"},"4":{name:"storage.modifier.async.ts"},"5":{name:"storage.type.ts"}},end:"(?=\\}|;|,|$)|(?<=\\})",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]},{name:"meta.method.declaration.ts",begin:"(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:(?:\\s*\\b(new)\\b(?!:)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|(?:(\\*)\\s*)?)(?=\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{"1":{name:"storage.modifier.ts"},"2":{name:"storage.modifier.ts"},"3":{name:"storage.modifier.ts"},"4":{name:"storage.modifier.async.ts"},"5":{name:"keyword.operator.new.ts"},"6":{name:"keyword.generator.asterisk.ts"}},end:"(?=\\}|;|,|$)|(?<=\\})",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]},{name:"meta.method.declaration.ts",begin:"(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{"1":{name:"storage.modifier.ts"},"2":{name:"storage.modifier.ts"},"3":{name:"storage.modifier.ts"},"4":{name:"storage.modifier.async.ts"},"5":{name:"storage.type.property.ts"},"6":{name:"keyword.generator.asterisk.ts"}},end:"(?=\\}|;|,|$)|(?<=\\})",patterns:[{include:"#method-declaration-name"},{include:"#function-body"}]}]},"object-literal-method-declaration":{name:"meta.method.declaration.ts",begin:"(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{"1":{name:"storage.modifier.async.ts"},"2":{name:"storage.type.property.ts"},"3":{name:"keyword.generator.asterisk.ts"}},end:"(?=\\}|;|,)|(?<=\\})",patterns:[{include:"#method-declaration-name"},{include:"#function-body"},{begin:"(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])",beginCaptures:{"1":{name:"storage.modifier.async.ts"},"2":{name:"storage.type.property.ts"},"3":{name:"keyword.generator.asterisk.ts"}},end:"(?=\\(|\\<)",patterns:[{include:"#method-declaration-name"}]}]},"method-declaration-name":{begin:"(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??)\\s*[\\(\\<])",end:"(?=\\(|\\<)",patterns:[{include:"#string"},{include:"#array-literal"},{include:"#numeric-literal"},{name:"meta.definition.method.ts entity.name.function.ts",match:"[_$[:alpha:]][_$[:alnum:]]*"},{name:"keyword.operator.optional.ts",match:"\\?"}]},"arrow-function":{patterns:[{name:"meta.arrow.ts",match:"(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(\\basync)\\s+)?([_$[:alpha:]][_$[:alnum:]]*)\\s*(?==>)",captures:{"1":{name:"storage.modifier.async.ts"},"2":{name:"variable.parameter.ts"}}},{name:"meta.arrow.ts",begin:"(?x) (?:\n (?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(\\basync)\n)? ((?<![})!\\]])\\s*\n (?=\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n )\n)",beginCaptures:{"1":{name:"storage.modifier.async.ts"}},end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",patterns:[{include:"#comment"},{include:"#type-parameters"},{include:"#function-parameters"},{include:"#arrow-return-type"},{include:"#possibly-arrow-return-type"}]},{name:"meta.arrow.ts",begin:"=>",beginCaptures:{"0":{name:"storage.type.function.arrow.ts"}},end:"((?<=\\}|\\S)(?<!=>)|((?!\\{)(?=\\S)))(?!\\/[\\/\\*])",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#decl-block"},{include:"#expression"}]}]},"indexer-declaration":{name:"meta.indexer.declaration.ts",begin:"(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)\\s*)?\\s*(\\[)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=:)",beginCaptures:{"1":{name:"storage.modifier.ts"},"2":{name:"meta.brace.square.ts"},"3":{name:"variable.parameter.ts"}},end:"(\\])\\s*(\\?\\s*)?|$",endCaptures:{"1":{name:"meta.brace.square.ts"},"2":{name:"keyword.operator.optional.ts"}},patterns:[{include:"#type-annotation"}]},"indexer-mapped-type-declaration":{name:"meta.indexer.mappedtype.declaration.ts",begin:"(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([+-])?(readonly)\\s*)?\\s*(\\[)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s+(in)\\s+",beginCaptures:{"1":{name:"keyword.operator.type.modifier.ts"},"2":{name:"storage.modifier.ts"},"3":{name:"meta.brace.square.ts"},"4":{name:"entity.name.type.ts"},"5":{name:"keyword.operator.expression.in.ts"}},end:"(\\])([+-])?\\s*(\\?\\s*)?|$",endCaptures:{"1":{name:"meta.brace.square.ts"},"2":{name:"keyword.operator.type.modifier.ts"},"3":{name:"keyword.operator.optional.ts"}},patterns:[{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+",captures:{"1":{name:"keyword.control.as.ts"}}},{include:"#type"}]},"function-parameters":{name:"meta.parameters.ts",begin:"\\(",beginCaptures:{"0":{name:"punctuation.definition.parameters.begin.ts"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.parameters.end.ts"}},patterns:[{include:"#function-parameters-body"}]},"function-parameters-body":{patterns:[{include:"#comment"},{include:"#string"},{include:"#decorator"},{include:"#destructuring-parameter"},{include:"#parameter-name"},{include:"#parameter-type-annotation"},{include:"#variable-initializer"},{name:"punctuation.separator.parameter.ts",match:","}]},"class-declaration":{name:"meta.class.ts",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(?:(abstract)\\s+)?\\b(class)\\b(?=\\s+|/[/*])",beginCaptures:{"1":{name:"keyword.control.export.ts"},"2":{name:"storage.modifier.ts"},"3":{name:"storage.modifier.ts"},"4":{name:"storage.type.class.ts"}},end:"(?<=\\})",patterns:[{include:"#class-declaration-or-expression-patterns"}]},"class-expression":{name:"meta.class.ts",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(class)\\b(?=\\s+|[<{]|\\/[\\/*])",beginCaptures:{"1":{name:"storage.modifier.ts"},"2":{name:"storage.type.class.ts"}},end:"(?<=\\})",patterns:[{include:"#class-declaration-or-expression-patterns"}]},"class-declaration-or-expression-patterns":{patterns:[{include:"#comment"},{include:"#class-or-interface-heritage"},{match:"[_$[:alpha:]][_$[:alnum:]]*",captures:{"0":{name:"entity.name.type.class.ts"}}},{include:"#type-parameters"},{include:"#class-or-interface-body"}]},"interface-declaration":{name:"meta.interface.ts",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(?:(abstract)\\s+)?\\b(interface)\\b(?=\\s+|/[/*])",beginCaptures:{"1":{name:"keyword.control.export.ts"},"2":{name:"storage.modifier.ts"},"3":{name:"storage.modifier.ts"},"4":{name:"storage.type.interface.ts"}},end:"(?<=\\})",patterns:[{include:"#comment"},{include:"#class-or-interface-heritage"},{match:"[_$[:alpha:]][_$[:alnum:]]*",captures:{"0":{name:"entity.name.type.interface.ts"}}},{include:"#type-parameters"},{include:"#class-or-interface-body"}]},"class-or-interface-heritage":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(extends|implements)\\b)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{"1":{name:"storage.modifier.ts"}},end:"(?=\\{)",patterns:[{include:"#comment"},{include:"#class-or-interface-heritage"},{include:"#type-parameters"},{include:"#expressionWithoutIdentifiers"},{match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))(?=\\s*[_$[:alpha:]][_$[:alnum:]]*(\\s*\\??\\.\\s*[_$[:alpha:]][_$[:alnum:]]*)*\\s*)",captures:{"1":{name:"entity.name.type.module.ts"},"2":{name:"punctuation.accessor.ts"},"3":{name:"punctuation.accessor.optional.ts"}}},{match:"([_$[:alpha:]][_$[:alnum:]]*)",captures:{"1":{name:"entity.other.inherited-class.ts"}}},{include:"#expressionPunctuations"}]},"class-or-interface-body":{begin:"\\{",beginCaptures:{"0":{name:"punctuation.definition.block.ts"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.block.ts"}},patterns:[{include:"#comment"},{include:"#decorator"},{begin:"(?<=:)\\s*",end:"(?=\\s|[;),}\\]:\\-\\+]|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",patterns:[{include:"#expression"}]},{include:"#method-declaration"},{include:"#indexer-declaration"},{include:"#field-declaration"},{include:"#string"},{include:"#type-annotation"},{include:"#variable-initializer"},{include:"#access-modifier"},{include:"#property-accessor"},{include:"#async-modifier"},{include:"#after-operator-block-as-object-literal"},{include:"#decl-block"},{include:"#expression"},{include:"#punctuation-comma"},{include:"#punctuation-semicolon"}]},"access-modifier":{name:"storage.modifier.ts",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(abstract|declare|override|public|protected|private|readonly|static)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},"property-accessor":{name:"storage.type.property.ts",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(accessor|get|set)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},"async-modifier":{name:"storage.modifier.async.ts",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(async)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},"enum-declaration":{name:"meta.enum.declaration.ts",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:\\b(const)\\s+)?\\b(enum)\\s+([_$[:alpha:]][_$[:alnum:]]*)",beginCaptures:{"1":{name:"keyword.control.export.ts"},"2":{name:"storage.modifier.ts"},"3":{name:"storage.modifier.ts"},"4":{name:"storage.type.enum.ts"},"5":{name:"entity.name.type.enum.ts"}},end:"(?<=\\})",patterns:[{include:"#comment"},{begin:"\\{",beginCaptures:{"0":{name:"punctuation.definition.block.ts"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.block.ts"}},patterns:[{include:"#comment"},{begin:"([_$[:alpha:]][_$[:alnum:]]*)",beginCaptures:{"0":{name:"variable.other.enummember.ts"}},end:"(?=,|\\}|$)",patterns:[{include:"#comment"},{include:"#variable-initializer"}]},{begin:"(?=((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\])))",end:"(?=,|\\}|$)",patterns:[{include:"#string"},{include:"#array-literal"},{include:"#comment"},{include:"#variable-initializer"}]},{include:"#punctuation-comma"}]}]},"namespace-declaration":{name:"meta.namespace.declaration.ts",begin:"(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(namespace|module)\\s+(?=[_$[:alpha:]\"'`]))",beginCaptures:{"1":{name:"keyword.control.export.ts"},"2":{name:"storage.modifier.ts"},"3":{name:"storage.type.namespace.ts"}},end:"(?<=\\})|(?=;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",patterns:[{include:"#comment"},{include:"#string"},{name:"entity.name.type.module.ts",match:"([_$[:alpha:]][_$[:alnum:]]*)"},{include:"#punctuation-accessor"},{include:"#decl-block"}]},"type-alias-declaration":{name:"meta.type.declaration.ts",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(type)\\b\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*",beginCaptures:{"1":{name:"keyword.control.export.ts"},"2":{name:"storage.modifier.ts"},"3":{name:"storage.type.type.ts"},"4":{name:"entity.name.type.alias.ts"}},end:"(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",patterns:[{include:"#comment"},{include:"#type-parameters"},{begin:"(=)\\s*(intrinsic)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{"1":{name:"keyword.operator.assignment.ts"},"2":{name:"keyword.control.intrinsic.ts"}},end:"(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",patterns:[{include:"#type"}]},{begin:"(=)\\s*",beginCaptures:{"1":{name:"keyword.operator.assignment.ts"}},end:"(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",patterns:[{include:"#type"}]}]},"import-equals-declaration":{patterns:[{name:"meta.import-equals.external.ts",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*(=)\\s*(require)\\s*(\\()",beginCaptures:{"1":{name:"keyword.control.export.ts"},"2":{name:"storage.modifier.ts"},"3":{name:"keyword.control.import.ts"},"4":{name:"keyword.control.type.ts"},"5":{name:"variable.other.readwrite.alias.ts"},"6":{name:"keyword.operator.assignment.ts"},"7":{name:"keyword.control.require.ts"},"8":{name:"meta.brace.round.ts"}},end:"\\)",endCaptures:{"0":{name:"meta.brace.round.ts"}},patterns:[{include:"#comment"},{include:"#string"}]},{name:"meta.import-equals.internal.ts",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*(=)\\s*(?!require\\b)",beginCaptures:{"1":{name:"keyword.control.export.ts"},"2":{name:"storage.modifier.ts"},"3":{name:"keyword.control.import.ts"},"4":{name:"keyword.control.type.ts"},"5":{name:"variable.other.readwrite.alias.ts"},"6":{name:"keyword.operator.assignment.ts"}},end:"(?=;|$|^)",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))",captures:{"1":{name:"entity.name.type.module.ts"},"2":{name:"punctuation.accessor.ts"},"3":{name:"punctuation.accessor.optional.ts"}}},{name:"variable.other.readwrite.ts",match:"([_$[:alpha:]][_$[:alnum:]]*)"}]}]},"import-declaration":{name:"meta.import.ts",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type)(?!\\s+from))?(?!\\s*[:\\(])(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{"1":{name:"keyword.control.export.ts"},"2":{name:"storage.modifier.ts"},"3":{name:"keyword.control.import.ts"},"4":{name:"keyword.control.type.ts"}},end:"(?<!^import|[^\\._$[:alnum:]]import)(?=;|$|^)",patterns:[{include:"#single-line-comment-consuming-line-ending"},{include:"#comment"},{include:"#string"},{begin:"(?<=^import|[^\\._$[:alnum:]]import)(?!\\s*[\"'])",end:"\\bfrom\\b",endCaptures:{"0":{name:"keyword.control.from.ts"}},patterns:[{include:"#import-export-declaration"}]},{include:"#import-export-declaration"}]},"export-declaration":{patterns:[{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)\\s+(as)\\s+(namespace)\\s+([_$[:alpha:]][_$[:alnum:]]*)",captures:{"1":{name:"keyword.control.export.ts"},"2":{name:"keyword.control.as.ts"},"3":{name:"storage.type.namespace.ts"},"4":{name:"entity.name.type.module.ts"}}},{name:"meta.export.default.ts",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)(?:\\s+(type))?(?:(?:\\s*(=))|(?:\\s+(default)(?=\\s+)))",beginCaptures:{"1":{name:"keyword.control.export.ts"},"2":{name:"keyword.control.type.ts"},"3":{name:"keyword.operator.assignment.ts"},"4":{name:"keyword.control.default.ts"}},end:"(?=$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",patterns:[{include:"#interface-declaration"},{include:"#expression"}]},{name:"meta.export.ts",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)(?:\\s+(type))?\\b(?!(\\$)|(\\s*:))((?=\\s*[\\{*])|((?=\\s*[_$[:alpha:]][_$[:alnum:]]*(\\s|,))(?!\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))",beginCaptures:{"1":{name:"keyword.control.export.ts"},"2":{name:"keyword.control.type.ts"}},end:"(?=$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",patterns:[{include:"#import-export-declaration"}]}]},"import-export-declaration":{patterns:[{include:"#comment"},{include:"#string"},{include:"#import-export-block"},{name:"keyword.control.from.ts",match:"\\bfrom\\b"},{include:"#import-export-assert-clause"},{include:"#import-export-clause"}]},"import-export-assert-clause":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(assert)\\s*(\\{)",beginCaptures:{"1":{name:"keyword.control.assert.ts"},"2":{name:"punctuation.definition.block.ts"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.block.ts"}},patterns:[{include:"#comment"},{include:"#string"},{name:"meta.object-literal.key.ts",match:"(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)"},{name:"punctuation.separator.key-value.ts",match:":"}]},"import-export-block":{name:"meta.block.ts",begin:"\\{",beginCaptures:{"0":{name:"punctuation.definition.block.ts"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.block.ts"}},patterns:[{include:"#import-export-clause"}]},"import-export-clause":{patterns:[{include:"#comment"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(?:(\\btype)\\s+)?(?:(\\bdefault)|(\\*)|(\\b[_$[:alpha:]][_$[:alnum:]]*)))\\s+(as)\\s+(?:(default(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|([_$[:alpha:]][_$[:alnum:]]*))",captures:{"1":{name:"keyword.control.type.ts"},"2":{name:"keyword.control.default.ts"},"3":{name:"constant.language.import-export-all.ts"},"4":{name:"variable.other.readwrite.ts"},"5":{name:"keyword.control.as.ts"},"6":{name:"keyword.control.default.ts"},"7":{name:"variable.other.readwrite.alias.ts"}}},{include:"#punctuation-comma"},{name:"constant.language.import-export-all.ts",match:"\\*"},{name:"keyword.control.default.ts",match:"\\b(default)\\b"},{match:"(?:(\\btype)\\s+)?([_$[:alpha:]][_$[:alnum:]]*)",captures:{"1":{name:"keyword.control.type.ts"},"2":{name:"variable.other.readwrite.alias.ts"}}}]},"switch-statement":{name:"switch-statement.expr.ts",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=\\bswitch\\s*\\()",end:"\\}",endCaptures:{"0":{name:"punctuation.definition.block.ts"}},patterns:[{include:"#comment"},{name:"switch-expression.expr.ts",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(switch)\\s*(\\()",beginCaptures:{"1":{name:"keyword.control.switch.ts"},"2":{name:"meta.brace.round.ts"}},end:"\\)",endCaptures:{"0":{name:"meta.brace.round.ts"}},patterns:[{include:"#expression"}]},{name:"switch-block.expr.ts",begin:"\\{",beginCaptures:{"0":{name:"punctuation.definition.block.ts"}},end:"(?=\\})",patterns:[{name:"case-clause.expr.ts",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(case|default(?=:))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{"1":{name:"keyword.control.switch.ts"}},end:"(?=:)",patterns:[{include:"#expression"}]},{begin:"(:)\\s*(\\{)",beginCaptures:{"1":{name:"case-clause.expr.ts punctuation.definition.section.case-statement.ts"},"2":{name:"meta.block.ts punctuation.definition.block.ts"}},end:"\\}",endCaptures:{"0":{name:"meta.block.ts punctuation.definition.block.ts"}},contentName:"meta.block.ts",patterns:[{include:"#statements"}]},{match:"(:)",captures:{"0":{name:"case-clause.expr.ts punctuation.definition.section.case-statement.ts"}}},{include:"#statements"}]}]},"for-loop":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))for(?=((\\s+|(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*))await)?\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)?(\\())",beginCaptures:{"0":{name:"keyword.control.loop.ts"}},end:"(?<=\\))",patterns:[{include:"#comment"},{name:"keyword.control.loop.ts",match:"await"},{begin:"\\(",beginCaptures:{"0":{name:"meta.brace.round.ts"}},end:"\\)",endCaptures:{"0":{name:"meta.brace.round.ts"}},patterns:[{include:"#var-expr"},{include:"#expression"},{include:"#punctuation-semicolon"}]}]},"if-statement":{patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=\\bif\\s*(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))\\s*(?!\\{))",end:"(?=;|$|\\})",patterns:[{include:"#comment"},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(if)\\s*(\\()",beginCaptures:{"1":{name:"keyword.control.conditional.ts"},"2":{name:"meta.brace.round.ts"}},end:"\\)",endCaptures:{"0":{name:"meta.brace.round.ts"}},patterns:[{include:"#expression"}]},{name:"string.regexp.ts",begin:"(?<=\\))\\s*\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",beginCaptures:{"0":{name:"punctuation.definition.string.begin.ts"}},end:"(/)([dgimsuy]*)",endCaptures:{"1":{name:"punctuation.definition.string.end.ts"},"2":{name:"keyword.other.ts"}},patterns:[{include:"#regexp"}]},{include:"#statements"}]}]},"decl-block":{name:"meta.block.ts",begin:"\\{",beginCaptures:{"0":{name:"punctuation.definition.block.ts"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.block.ts"}},patterns:[{include:"#statements"}]},"after-operator-block-as-object-literal":{name:"meta.objectliteral.ts",begin:"(?<!\\+\\+|--)(?<=[:=(,\\[?+!>]|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^yield|[^\\._$[:alnum:]]yield|^throw|[^\\._$[:alnum:]]throw|^in|[^\\._$[:alnum:]]in|^of|[^\\._$[:alnum:]]of|^typeof|[^\\._$[:alnum:]]typeof|&&|\\|\\||\\*)\\s*(\\{)",beginCaptures:{"1":{name:"punctuation.definition.block.ts"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.block.ts"}},patterns:[{include:"#object-member"}]},"object-literal":{name:"meta.objectliteral.ts",begin:"\\{",beginCaptures:{"0":{name:"punctuation.definition.block.ts"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.block.ts"}},patterns:[{include:"#object-member"}]},"object-member":{patterns:[{include:"#comment"},{include:"#object-literal-method-declaration"},{name:"meta.object.member.ts meta.object-literal.key.ts",begin:"(?=\\[)",end:"(?=:)|((?<=[\\]])(?=\\s*[\\(\\<]))",patterns:[{include:"#comment"},{include:"#array-literal"}]},{name:"meta.object.member.ts meta.object-literal.key.ts",begin:"(?=[\\'\\\"\\`])",end:"(?=:)|((?<=[\\'\\\"\\`])(?=((\\s*[\\(\\<,}])|(\\s+(as|satisifies)\\s+))))",patterns:[{include:"#comment"},{include:"#string"}]},{name:"meta.object.member.ts meta.object-literal.key.ts",begin:"(?x)(?=(\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$)))",end:"(?=:)|(?=\\s*([\\(\\<,}])|(\\s+as|satisifies\\s+))",patterns:[{include:"#comment"},{include:"#numeric-literal"}]},{name:"meta.method.declaration.ts",begin:"(?<=[\\]\\'\\\"\\`])(?=\\s*[\\(\\<])",end:"(?=\\}|;|,)|(?<=\\})",patterns:[{include:"#function-body"}]},{name:"meta.object.member.ts",match:"(?![_$[:alpha:]])([[:digit:]]+)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)",captures:{"0":{name:"meta.object-literal.key.ts"},"1":{name:"constant.numeric.decimal.ts"}}},{name:"meta.object.member.ts",match:"(?x)(?:([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/)*\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))",captures:{"0":{name:"meta.object-literal.key.ts"},"1":{name:"entity.name.function.ts"}}},{name:"meta.object.member.ts",match:"(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)",captures:{"0":{name:"meta.object-literal.key.ts"}}},{name:"meta.object.member.ts",begin:"\\.\\.\\.",beginCaptures:{"0":{name:"keyword.operator.spread.ts"}},end:"(?=,|\\})",patterns:[{include:"#expression"}]},{name:"meta.object.member.ts",match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=,|\\}|$|\\/\\/|\\/\\*)",captures:{"1":{name:"variable.other.readwrite.ts"}}},{name:"meta.object.member.ts",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*([,}]|$))",captures:{"1":{name:"keyword.control.as.ts"},"2":{name:"storage.modifier.ts"}}},{name:"meta.object.member.ts",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(as)|(satisfies))\\s+",beginCaptures:{"1":{name:"keyword.control.as.ts"},"2":{name:"keyword.control.satisfies.ts"}},end:"(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|^|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as|satisifies)\\s+))",patterns:[{include:"#type"}]},{name:"meta.object.member.ts",begin:"(?=[_$[:alpha:]][_$[:alnum:]]*\\s*=)",end:"(?=,|\\}|$|\\/\\/|\\/\\*)",patterns:[{include:"#expression"}]},{name:"meta.object.member.ts",begin:":",beginCaptures:{"0":{name:"meta.object-literal.key.ts punctuation.separator.key-value.ts"}},end:"(?=,|\\})",patterns:[{begin:"(?<=:)\\s*(async)?(?=\\s*(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{"1":{name:"storage.modifier.async.ts"}},end:"(?<=\\))",patterns:[{include:"#type-parameters"},{begin:"\\(",beginCaptures:{"0":{name:"meta.brace.round.ts"}},end:"\\)",endCaptures:{"0":{name:"meta.brace.round.ts"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]}]},{begin:"(?<=:)\\s*(async)?\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{"1":{name:"storage.modifier.async.ts"},"2":{name:"meta.brace.round.ts"}},end:"\\)",endCaptures:{"0":{name:"meta.brace.round.ts"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]},{begin:"(?<=:)\\s*(async)?\\s*(?=\\<\\s*$)",beginCaptures:{"1":{name:"storage.modifier.async.ts"}},end:"(?<=\\>)",patterns:[{include:"#type-parameters"}]},{begin:"(?<=\\>)\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{"1":{name:"meta.brace.round.ts"}},end:"\\)",endCaptures:{"0":{name:"meta.brace.round.ts"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]},{include:"#possibly-arrow-return-type"},{include:"#expression"}]},{include:"#punctuation-comma"},{include:"#decl-block"}]},"ternary-expression":{begin:"(?!\\?\\.\\s*[^[:digit:]])(\\?)(?!\\?)",beginCaptures:{"1":{name:"keyword.operator.ternary.ts"}},end:"\\s*(:)",endCaptures:{"1":{name:"keyword.operator.ternary.ts"}},patterns:[{include:"#expression"}]},"function-call":{patterns:[{begin:"(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())",end:"(?<=\\))(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())",patterns:[{name:"meta.function-call.ts",begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))",end:"(?=\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())",patterns:[{include:"#function-call-target"}]},{include:"#comment"},{include:"#function-call-optionals"},{include:"#type-arguments"},{include:"#paren-expression"}]},{begin:"(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))",end:"(?<=\\>)(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))",patterns:[{name:"meta.function-call.ts",begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))",end:"(?=(<\\s*[\\{\\[\\(]\\s*$))",patterns:[{include:"#function-call-target"}]},{include:"#comment"},{include:"#function-call-optionals"},{include:"#type-arguments"}]}]},"function-call-target":{patterns:[{include:"#support-function-call-identifiers"},{name:"entity.name.function.ts",match:"(\\#?[_$[:alpha:]][_$[:alnum:]]*)"}]},"function-call-optionals":{patterns:[{name:"meta.function-call.ts punctuation.accessor.optional.ts",match:"\\?\\."},{name:"meta.function-call.ts keyword.operator.definiteassignment.ts",match:"\\!"}]},"support-function-call-identifiers":{patterns:[{include:"#literal"},{include:"#support-objects"},{include:"#object-identifiers"},{include:"#punctuation-accessor"},{name:"keyword.operator.expression.import.ts",match:"(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*[\\(]\\s*[\\\"\\'\\`]))"}]},"new-expr":{name:"new.expr.ts",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(new)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{"1":{name:"keyword.operator.new.ts"}},end:"(?<=\\))|(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))new(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))function((\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\s*[\\(]))))",patterns:[{include:"#expression"}]},"instanceof-expr":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(instanceof)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{"1":{name:"keyword.operator.expression.instanceof.ts"}},end:"(?<=\\))|(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|(===|!==|==|!=)|(([\\&\\~\\^\\|]\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s+instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))function((\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\s*[\\(]))))",patterns:[{include:"#type"}]},"paren-expression-possibly-arrow":{patterns:[{begin:"(?<=[(=,])\\s*(async)?(?=\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",beginCaptures:{"1":{name:"storage.modifier.async.ts"}},end:"(?<=\\))",patterns:[{include:"#paren-expression-possibly-arrow-with-typeparameters"}]},{begin:"(?<=[(=,]|=>|^return|[^\\._$[:alnum:]]return)\\s*(async)?(?=\\s*((((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\()|(<)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)))\\s*$)",beginCaptures:{"1":{name:"storage.modifier.async.ts"}},end:"(?<=\\))",patterns:[{include:"#paren-expression-possibly-arrow-with-typeparameters"}]},{include:"#possibly-arrow-return-type"}]},"paren-expression-possibly-arrow-with-typeparameters":{patterns:[{include:"#type-parameters"},{begin:"\\(",beginCaptures:{"0":{name:"meta.brace.round.ts"}},end:"\\)",endCaptures:{"0":{name:"meta.brace.round.ts"}},patterns:[{include:"#expression-inside-possibly-arrow-parens"}]}]},"expression-inside-possibly-arrow-parens":{patterns:[{include:"#expressionWithoutIdentifiers"},{include:"#comment"},{include:"#string"},{include:"#decorator"},{include:"#destructuring-parameter"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)",captures:{"1":{name:"storage.modifier.ts"}}},{match:"(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))",captures:{"1":{name:"storage.modifier.ts"},"2":{name:"keyword.operator.rest.ts"},"3":{name:"entity.name.function.ts variable.language.this.ts"},"4":{name:"entity.name.function.ts"},"5":{name:"keyword.operator.optional.ts"}}},{match:"(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*[:,]|$)",captures:{"1":{name:"storage.modifier.ts"},"2":{name:"keyword.operator.rest.ts"},"3":{name:"variable.parameter.ts variable.language.this.ts"},"4":{name:"variable.parameter.ts"},"5":{name:"keyword.operator.optional.ts"}}},{include:"#type-annotation"},{include:"#variable-initializer"},{name:"punctuation.separator.parameter.ts",match:","},{include:"#identifiers"},{include:"#expressionPunctuations"}]},"paren-expression":{begin:"\\(",beginCaptures:{"0":{name:"meta.brace.round.ts"}},end:"\\)",endCaptures:{"0":{name:"meta.brace.round.ts"}},patterns:[{include:"#expression"}]},cast:{patterns:[{name:"cast.expr.ts",match:"\\s*(<)\\s*(const)\\s*(>)",captures:{"1":{name:"meta.brace.angle.ts"},"2":{name:"storage.modifier.ts"},"3":{name:"meta.brace.angle.ts"}}},{name:"cast.expr.ts",begin:"(?:(?<!\\+\\+|--)(?<=^return|[^\\._$[:alnum:]]return|^throw|[^\\._$[:alnum:]]throw|^yield|[^\\._$[:alnum:]]yield|^await|[^\\._$[:alnum:]]await|^default|[^\\._$[:alnum:]]default|[=(,:>*?\\&\\|\\^]|[^_$[:alnum:]](?:\\+\\+|\\-\\-)|[^\\+]\\+|[^\\-]\\-))\\s*(<)(?!<?\\=)(?!\\s*$)",beginCaptures:{"1":{name:"meta.brace.angle.ts"}},end:"(\\>)",endCaptures:{"1":{name:"meta.brace.angle.ts"}},patterns:[{include:"#type"}]},{name:"cast.expr.ts",begin:"(?:(?<=^))\\s*(<)(?=[_$[:alpha:]][_$[:alnum:]]*\\s*>)",beginCaptures:{"1":{name:"meta.brace.angle.ts"}},end:"(\\>)",endCaptures:{"1":{name:"meta.brace.angle.ts"}},patterns:[{include:"#type"}]}]},"expression-operators":{patterns:[{name:"keyword.control.flow.ts",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(await)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(yield)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?=\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*\\*)",beginCaptures:{"1":{name:"keyword.control.flow.ts"}},end:"\\*",endCaptures:{"0":{name:"keyword.generator.asterisk.ts"}},patterns:[{include:"#comment"}]},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(yield)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s*(\\*))?",captures:{"1":{name:"keyword.control.flow.ts"},"2":{name:"keyword.generator.asterisk.ts"}}},{name:"keyword.operator.expression.delete.ts",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))delete(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{name:"keyword.operator.expression.in.ts",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))in(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()"},{name:"keyword.operator.expression.of.ts",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))of(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()"},{name:"keyword.operator.expression.instanceof.ts",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{name:"keyword.operator.new.ts",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))new(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{include:"#typeof-operator"},{name:"keyword.operator.expression.void.ts",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))void(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*($|[;,:})\\]]))",captures:{"1":{name:"keyword.control.as.ts"},"2":{name:"storage.modifier.ts"}}},{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(as)|(satisfies))\\s+",beginCaptures:{"1":{name:"keyword.control.as.ts"},"2":{name:"keyword.control.satisfies.ts"}},end:"(?=^|[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as|satisfies)\\s+)|(\\s+\\<))",patterns:[{include:"#type"}]},{name:"keyword.operator.spread.ts",match:"\\.\\.\\."},{name:"keyword.operator.assignment.compound.ts",match:"\\*=|(?<!\\()/=|%=|\\+=|\\-="},{name:"keyword.operator.assignment.compound.bitwise.ts",match:"\\&=|\\^=|<<=|>>=|>>>=|\\|="},{name:"keyword.operator.bitwise.shift.ts",match:"<<|>>>|>>"},{name:"keyword.operator.comparison.ts",match:"===|!==|==|!="},{name:"keyword.operator.relational.ts",match:"<=|>=|<>|<|>"},{match:"(?<=[_$[:alnum:]])(\\!)\\s*(?:(/=)|(?:(/)(?![/*])))",captures:{"1":{name:"keyword.operator.logical.ts"},"2":{name:"keyword.operator.assignment.compound.ts"},"3":{name:"keyword.operator.arithmetic.ts"}}},{name:"keyword.operator.logical.ts",match:"\\!|&&|\\|\\||\\?\\?"},{name:"keyword.operator.bitwise.ts",match:"\\&|~|\\^|\\|"},{name:"keyword.operator.assignment.ts",match:"\\="},{name:"keyword.operator.decrement.ts",match:"--"},{name:"keyword.operator.increment.ts",match:"\\+\\+"},{name:"keyword.operator.arithmetic.ts",match:"%|\\*|/|-|\\+"},{begin:"(?<=[_$[:alnum:])\\]])\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)+(?:(/=)|(?:(/)(?![/*]))))",end:"(?:(/=)|(?:(/)(?!\\*([^\\*]|(\\*[^\\/]))*\\*\\/)))",endCaptures:{"1":{name:"keyword.operator.assignment.compound.ts"},"2":{name:"keyword.operator.arithmetic.ts"}},patterns:[{include:"#comment"}]},{match:"(?<=[_$[:alnum:])\\]])\\s*(?:(/=)|(?:(/)(?![/*])))",captures:{"1":{name:"keyword.operator.assignment.compound.ts"},"2":{name:"keyword.operator.arithmetic.ts"}}}]},"typeof-operator":{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))typeof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",beginCaptures:{"0":{name:"keyword.operator.expression.typeof.ts"}},end:"(?=[,);}\\]=>:&|{\\?]|(extends\\s+)|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))",patterns:[{include:"#type-arguments"},{include:"#expression"}]},literal:{patterns:[{include:"#numeric-literal"},{include:"#boolean-literal"},{include:"#null-literal"},{include:"#undefined-literal"},{include:"#numericConstant-literal"},{include:"#array-literal"},{include:"#this-literal"},{include:"#super-literal"}]},"array-literal":{name:"meta.array.literal.ts",begin:"\\s*(\\[)",beginCaptures:{"1":{name:"meta.brace.square.ts"}},end:"\\]",endCaptures:{"0":{name:"meta.brace.square.ts"}},patterns:[{include:"#expression"},{include:"#punctuation-comma"}]},"numeric-literal":{patterns:[{name:"constant.numeric.hex.ts",match:"\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$)",captures:{"1":{name:"storage.type.numeric.bigint.ts"}}},{name:"constant.numeric.binary.ts",match:"\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$)",captures:{"1":{name:"storage.type.numeric.bigint.ts"}}},{name:"constant.numeric.octal.ts",match:"\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$)",captures:{"1":{name:"storage.type.numeric.bigint.ts"}}},{match:"(?x)\n(?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$)",captures:{"0":{name:"constant.numeric.decimal.ts"},"1":{name:"meta.delimiter.decimal.period.ts"},"2":{name:"storage.type.numeric.bigint.ts"},"3":{name:"meta.delimiter.decimal.period.ts"},"4":{name:"storage.type.numeric.bigint.ts"},"5":{name:"meta.delimiter.decimal.period.ts"},"6":{name:"storage.type.numeric.bigint.ts"},"7":{name:"storage.type.numeric.bigint.ts"},"8":{name:"meta.delimiter.decimal.period.ts"},"9":{name:"storage.type.numeric.bigint.ts"},"10":{name:"meta.delimiter.decimal.period.ts"},"11":{name:"storage.type.numeric.bigint.ts"},"12":{name:"meta.delimiter.decimal.period.ts"},"13":{name:"storage.type.numeric.bigint.ts"},"14":{name:"storage.type.numeric.bigint.ts"}}}]},"boolean-literal":{patterns:[{name:"constant.language.boolean.true.ts",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))true(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{name:"constant.language.boolean.false.ts",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))false(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"}]},"null-literal":{name:"constant.language.null.ts",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))null(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},"this-literal":{name:"variable.language.this.ts",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))this\\b(?!\\$)"},"super-literal":{name:"variable.language.super.ts",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))super\\b(?!\\$)"},"undefined-literal":{name:"constant.language.undefined.ts",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))undefined(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},"numericConstant-literal":{patterns:[{name:"constant.language.nan.ts",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))NaN(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{name:"constant.language.infinity.ts",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Infinity(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"}]},"support-objects":{patterns:[{name:"variable.language.arguments.ts",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(arguments)\\b(?!\\$)"},{name:"support.class.promise.ts",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(Promise)\\b(?!\\$)"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(import)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(meta)\\b(?!\\$)",captures:{"1":{name:"keyword.control.import.ts"},"2":{name:"punctuation.accessor.ts"},"3":{name:"punctuation.accessor.optional.ts"},"4":{name:"support.variable.property.importmeta.ts"}}},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(new)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(target)\\b(?!\\$)",captures:{"1":{name:"keyword.operator.new.ts"},"2":{name:"punctuation.accessor.ts"},"3":{name:"punctuation.accessor.optional.ts"},"4":{name:"support.variable.property.target.ts"}}},{match:"(?x) (?:(\\.)|(\\?\\.(?!\\s*[[:digit:]]))) \\s* (?:\n (?:(constructor|length|prototype|__proto__)\\b(?!\\$|\\s*(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\())\n |\n (?:(EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\\b(?!\\$)))",captures:{"1":{name:"punctuation.accessor.ts"},"2":{name:"punctuation.accessor.optional.ts"},"3":{name:"support.variable.property.ts"},"4":{name:"support.constant.ts"}}},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(exports)|(module)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))(exports|id|filename|loaded|parent|children))?)\\b(?!\\$)",captures:{"1":{name:"support.type.object.module.ts"},"2":{name:"support.type.object.module.ts"},"3":{name:"punctuation.accessor.ts"},"4":{name:"punctuation.accessor.optional.ts"},"5":{name:"support.type.object.module.ts"}}}]},identifiers:{patterns:[{include:"#object-identifiers"},{match:"(?x)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*)?([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n))",captures:{"1":{name:"punctuation.accessor.ts"},"2":{name:"punctuation.accessor.optional.ts"},"3":{name:"entity.name.function.ts"}}},{match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])",captures:{"1":{name:"punctuation.accessor.ts"},"2":{name:"punctuation.accessor.optional.ts"},"3":{name:"variable.other.constant.property.ts"}}},{match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)",captures:{"1":{name:"punctuation.accessor.ts"},"2":{name:"punctuation.accessor.optional.ts"},"3":{name:"variable.other.property.ts"}}},{name:"variable.other.constant.ts",match:"([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])"},{name:"variable.other.readwrite.ts",match:"[_$[:alpha:]][_$[:alnum:]]*"}]},"object-identifiers":{patterns:[{name:"support.class.ts",match:"([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\\??\\.\\s*prototype\\b(?!\\$))"},{match:"(?x)(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(?:\n (\\#?[[:upper:]][_$[:digit:][:upper:]]*) |\n (\\#?[_$[:alpha:]][_$[:alnum:]]*)\n)(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)",captures:{"1":{name:"punctuation.accessor.ts"},"2":{name:"punctuation.accessor.optional.ts"},"3":{name:"variable.other.constant.object.property.ts"},"4":{name:"variable.other.object.property.ts"}}},{match:"(?x)(?:\n ([[:upper:]][_$[:digit:][:upper:]]*) |\n ([_$[:alpha:]][_$[:alnum:]]*)\n)(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)",captures:{"1":{name:"variable.other.constant.object.ts"},"2":{name:"variable.other.object.ts"}}}]},"type-annotation":{patterns:[{name:"meta.type.annotation.ts",begin:"(:)(?=\\s*\\S)",beginCaptures:{"1":{name:"keyword.operator.type.annotation.ts"}},end:"(?<![:|&])(?!\\s*[|&]\\s+)((?=^|[,);\\}\\]]|//)|(?==[^>])|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))",patterns:[{include:"#type"}]},{name:"meta.type.annotation.ts",begin:"(:)",beginCaptures:{"1":{name:"keyword.operator.type.annotation.ts"}},end:"(?<![:|&])((?=[,);\\}\\]]|\\/\\/)|(?==[^>])|(?=^\\s*$)|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))",patterns:[{include:"#type"}]}]},"parameter-type-annotation":{patterns:[{name:"meta.type.annotation.ts",begin:"(:)",beginCaptures:{"1":{name:"keyword.operator.type.annotation.ts"}},end:"(?=[,)])|(?==[^>])",patterns:[{include:"#type"}]}]},"return-type":{patterns:[{name:"meta.return.type.ts",begin:"(?<=\\))\\s*(:)(?=\\s*\\S)",beginCaptures:{"1":{name:"keyword.operator.type.annotation.ts"}},end:"(?<![:|&])(?=$|^|[{};,]|//)",patterns:[{include:"#return-type-core"}]},{name:"meta.return.type.ts",begin:"(?<=\\))\\s*(:)",beginCaptures:{"1":{name:"keyword.operator.type.annotation.ts"}},end:"(?<![:|&])((?=[{};,]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))",patterns:[{include:"#return-type-core"}]}]},"return-type-core":{patterns:[{include:"#comment"},{begin:"(?<=[:|&])(?=\\s*\\{)",end:"(?<=\\})",patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},"arrow-return-type":{name:"meta.return.type.arrow.ts",begin:"(?<=\\))\\s*(:)",beginCaptures:{"1":{name:"keyword.operator.type.annotation.ts"}},end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",patterns:[{include:"#arrow-return-type-body"}]},"possibly-arrow-return-type":{begin:"(?<=\\)|^)\\s*(:)(?=\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*=>)",beginCaptures:{"1":{name:"meta.arrow.ts meta.return.type.arrow.ts keyword.operator.type.annotation.ts"}},end:"(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))",contentName:"meta.arrow.ts meta.return.type.arrow.ts",patterns:[{include:"#arrow-return-type-body"}]},"arrow-return-type-body":{patterns:[{begin:"(?<=[:])(?=\\s*\\{)",end:"(?<=\\})",patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},"type-parameters":{name:"meta.type.parameters.ts",begin:"(<)",beginCaptures:{"1":{name:"punctuation.definition.typeparameters.begin.ts"}},end:"(>)",endCaptures:{"1":{name:"punctuation.definition.typeparameters.end.ts"}},patterns:[{include:"#comment"},{name:"storage.modifier.ts",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends|in|out|const)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{include:"#type"},{include:"#punctuation-comma"},{name:"keyword.operator.assignment.ts",match:"(=)(?!>)"}]},"type-arguments":{name:"meta.type.parameters.ts",begin:"\\<",beginCaptures:{"0":{name:"punctuation.definition.typeparameters.begin.ts"}},end:"\\>",endCaptures:{"0":{name:"punctuation.definition.typeparameters.end.ts"}},patterns:[{include:"#type-arguments-body"}]},"type-arguments-body":{patterns:[{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(_)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",captures:{"0":{name:"keyword.operator.type.ts"}}},{include:"#type"},{include:"#punctuation-comma"}]},type:{patterns:[{include:"#comment"},{include:"#type-string"},{include:"#numeric-literal"},{include:"#type-primitive"},{include:"#type-builtin-literals"},{include:"#type-parameters"},{include:"#type-tuple"},{include:"#type-object"},{include:"#type-operators"},{include:"#type-conditional"},{include:"#type-fn-type-parameters"},{include:"#type-paren-or-function-parameters"},{include:"#type-function-return-type"},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*",captures:{"1":{name:"storage.modifier.ts"}}},{include:"#type-name"}]},"type-primitive":{name:"support.type.primitive.ts",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(string|number|bigint|boolean|symbol|any|void|never|unknown)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},"type-builtin-literals":{name:"support.type.builtin.ts",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},"type-tuple":{name:"meta.type.tuple.ts",begin:"\\[",beginCaptures:{"0":{name:"meta.brace.square.ts"}},end:"\\]",endCaptures:{"0":{name:"meta.brace.square.ts"}},patterns:[{name:"keyword.operator.rest.ts",match:"\\.\\.\\."},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)",captures:{"1":{name:"entity.name.label.ts"},"2":{name:"keyword.operator.optional.ts"},"3":{name:"punctuation.separator.label.ts"}}},{include:"#type"},{include:"#punctuation-comma"}]},"type-object":{name:"meta.object.type.ts",begin:"\\{",beginCaptures:{"0":{name:"punctuation.definition.block.ts"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.block.ts"}},patterns:[{include:"#comment"},{include:"#method-declaration"},{include:"#indexer-declaration"},{include:"#indexer-mapped-type-declaration"},{include:"#field-declaration"},{include:"#type-annotation"},{begin:"\\.\\.\\.",beginCaptures:{"0":{name:"keyword.operator.spread.ts"}},end:"(?=\\}|;|,|$)|(?<=\\})",patterns:[{include:"#type"}]},{include:"#punctuation-comma"},{include:"#punctuation-semicolon"},{include:"#type"}]},"type-conditional":{patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends)\\s+",beginCaptures:{"1":{name:"storage.modifier.ts"}},end:"(?<=:)",patterns:[{begin:"\\?",beginCaptures:{"0":{name:"keyword.operator.ternary.ts"}},end:":",endCaptures:{"0":{name:"keyword.operator.ternary.ts"}},patterns:[{include:"#type"}]},{include:"#type"}]}]},"type-paren-or-function-parameters":{name:"meta.type.paren.cover.ts",begin:"\\(",beginCaptures:{"0":{name:"meta.brace.round.ts"}},end:"\\)",endCaptures:{"0":{name:"meta.brace.round.ts"}},patterns:[{match:"(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=\\s*(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))",captures:{"1":{name:"storage.modifier.ts"},"2":{name:"keyword.operator.rest.ts"},"3":{name:"entity.name.function.ts variable.language.this.ts"},"4":{name:"entity.name.function.ts"},"5":{name:"keyword.operator.optional.ts"}}},{match:"(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=:)",captures:{"1":{name:"storage.modifier.ts"},"2":{name:"keyword.operator.rest.ts"},"3":{name:"variable.parameter.ts variable.language.this.ts"},"4":{name:"variable.parameter.ts"},"5":{name:"keyword.operator.optional.ts"}}},{include:"#type-annotation"},{name:"punctuation.separator.parameter.ts",match:","},{include:"#type"}]},"type-fn-type-parameters":{patterns:[{begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b(?=\\s*\\<)",beginCaptures:{"1":{name:"meta.type.constructor.ts storage.modifier.ts"},"2":{name:"meta.type.constructor.ts keyword.control.new.ts"}},end:"(?<=>)",patterns:[{include:"#comment"},{include:"#type-parameters"}]},{name:"meta.type.constructor.ts",begin:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b\\s*(?=\\()",beginCaptures:{"1":{name:"storage.modifier.ts"},"2":{name:"keyword.control.new.ts"}},end:"(?<=\\))",patterns:[{include:"#function-parameters"}]},{name:"meta.type.function.ts",begin:"(?x)(\n (?=\n [(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n )\n )\n)",end:"(?<=\\))",patterns:[{include:"#function-parameters"}]}]},"type-function-return-type":{patterns:[{name:"meta.type.function.return.ts",begin:"(=>)(?=\\s*\\S)",beginCaptures:{"1":{name:"storage.type.function.arrow.ts"}},end:"(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>:\\?]|//|$)",patterns:[{include:"#type-function-return-type-core"}]},{name:"meta.type.function.return.ts",begin:"=>",beginCaptures:{"0":{name:"storage.type.function.arrow.ts"}},end:"(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;:\\?>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))",patterns:[{include:"#type-function-return-type-core"}]}]},"type-function-return-type-core":{patterns:[{include:"#comment"},{begin:"(?<==>)(?=\\s*\\{)",end:"(?<=\\})",patterns:[{include:"#type-object"}]},{include:"#type-predicate-operator"},{include:"#type"}]},"type-operators":{patterns:[{include:"#typeof-operator"},{include:"#type-infer"},{begin:"([&|])(?=\\s*\\{)",beginCaptures:{"0":{name:"keyword.operator.type.ts"}},end:"(?<=\\})",patterns:[{include:"#type-object"}]},{begin:"[&|]",beginCaptures:{"0":{name:"keyword.operator.type.ts"}},end:"(?=\\S)"},{name:"keyword.operator.expression.keyof.ts",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))keyof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{name:"keyword.operator.ternary.ts",match:"(\\?|\\:)"},{name:"keyword.operator.expression.import.ts",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*\\()"}]},"type-infer":{patterns:[{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(infer)\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s+(extends)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))?",name:"meta.type.infer.ts",captures:{"1":{name:"keyword.operator.expression.infer.ts"},"2":{name:"entity.name.type.ts"},"3":{name:"keyword.operator.expression.extends.ts"}}}]},"type-predicate-operator":{patterns:[{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s(is)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",captures:{"1":{name:"keyword.operator.type.asserts.ts"},"2":{name:"variable.parameter.ts variable.language.this.ts"},"3":{name:"variable.parameter.ts"},"4":{name:"keyword.operator.expression.is.ts"}}},{match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",captures:{"1":{name:"keyword.operator.type.asserts.ts"},"2":{name:"variable.parameter.ts variable.language.this.ts"},"3":{name:"variable.parameter.ts"}}},{name:"keyword.operator.type.asserts.ts",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{name:"keyword.operator.expression.is.ts",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"}]},"type-name":{patterns:[{begin:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(<)",captures:{"1":{name:"entity.name.type.module.ts"},"2":{name:"punctuation.accessor.ts"},"3":{name:"punctuation.accessor.optional.ts"},"4":{name:"meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts"}},end:"(>)",endCaptures:{"1":{name:"meta.type.parameters.ts punctuation.definition.typeparameters.end.ts"}},contentName:"meta.type.parameters.ts",patterns:[{include:"#type-arguments-body"}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)",beginCaptures:{"1":{name:"entity.name.type.ts"},"2":{name:"meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts"}},end:"(>)",endCaptures:{"1":{name:"meta.type.parameters.ts punctuation.definition.typeparameters.end.ts"}},contentName:"meta.type.parameters.ts",patterns:[{include:"#type-arguments-body"}]},{match:"([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))",captures:{"1":{name:"entity.name.type.module.ts"},"2":{name:"punctuation.accessor.ts"},"3":{name:"punctuation.accessor.optional.ts"}}},{name:"entity.name.type.ts",match:"[_$[:alpha:]][_$[:alnum:]]*"}]},"punctuation-comma":{name:"punctuation.separator.comma.ts",match:","},"punctuation-semicolon":{name:"punctuation.terminator.statement.ts",match:";"},"punctuation-accessor":{match:"(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))",captures:{"1":{name:"punctuation.accessor.ts"},"2":{name:"punctuation.accessor.optional.ts"}}},string:{patterns:[{include:"#qstring-single"},{include:"#qstring-double"},{include:"#template"}]},"qstring-double":{name:"string.quoted.double.ts",begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.ts"}},end:"(\")|((?:[^\\\\\\n])$)",endCaptures:{"1":{name:"punctuation.definition.string.end.ts"},"2":{name:"invalid.illegal.newline.ts"}},patterns:[{include:"#string-character-escape"}]},"qstring-single":{name:"string.quoted.single.ts",begin:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.ts"}},end:"(\\')|((?:[^\\\\\\n])$)",endCaptures:{"1":{name:"punctuation.definition.string.end.ts"},"2":{name:"invalid.illegal.newline.ts"}},patterns:[{include:"#string-character-escape"}]},"string-character-escape":{name:"constant.character.escape.ts",match:"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)"},template:{patterns:[{include:"#template-call"},{contentName:"string.template.ts",begin:"([_$[:alpha:]][_$[:alnum:]]*)?(`)",beginCaptures:{"1":{name:"entity.name.function.tagged-template.ts"},"2":{name:"string.template.ts punctuation.definition.string.template.begin.ts"}},end:"`",endCaptures:{"0":{name:"string.template.ts punctuation.definition.string.template.end.ts"}},patterns:[{include:"#template-substitution-element"},{include:"#string-character-escape"}]}]},"template-call":{patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*)(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)",end:"(?=`)",patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))",end:"(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)",patterns:[{include:"#support-function-call-identifiers"},{name:"entity.name.function.tagged-template.ts",match:"([_$[:alpha:]][_$[:alnum:]]*)"}]},{include:"#type-arguments"}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*)?\\s*(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)`)",beginCaptures:{"1":{name:"entity.name.function.tagged-template.ts"}},end:"(?=`)",patterns:[{include:"#type-arguments"}]}]},"template-substitution-element":{name:"meta.template.expression.ts",begin:"\\$\\{",beginCaptures:{"0":{name:"punctuation.definition.template-expression.begin.ts"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.template-expression.end.ts"}},patterns:[{include:"#expression"}],contentName:"meta.embedded.line.ts"},"type-string":{patterns:[{include:"#qstring-single"},{include:"#qstring-double"},{include:"#template-type"}]},"template-type":{patterns:[{include:"#template-call"},{contentName:"string.template.ts",begin:"([_$[:alpha:]][_$[:alnum:]]*)?(`)",beginCaptures:{"1":{name:"entity.name.function.tagged-template.ts"},"2":{name:"string.template.ts punctuation.definition.string.template.begin.ts"}},end:"`",endCaptures:{"0":{name:"string.template.ts punctuation.definition.string.template.end.ts"}},patterns:[{include:"#template-type-substitution-element"},{include:"#string-character-escape"}]}]},"template-type-substitution-element":{name:"meta.template.expression.ts",begin:"\\$\\{",beginCaptures:{"0":{name:"punctuation.definition.template-expression.begin.ts"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.template-expression.end.ts"}},patterns:[{include:"#type"}],contentName:"meta.embedded.line.ts"},regex:{patterns:[{name:"string.regexp.ts",begin:"(?<!\\+\\+|--|})(?<=[=(:,\\[?+!]|^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case|=>|&&|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",beginCaptures:{"1":{name:"punctuation.definition.string.begin.ts"}},end:"(/)([dgimsuy]*)",endCaptures:{"1":{name:"punctuation.definition.string.end.ts"},"2":{name:"keyword.other.ts"}},patterns:[{include:"#regexp"}]},{name:"string.regexp.ts",begin:"((?<![_$[:alnum:])\\]]|\\+\\+|--|}|\\*\\/)|((?<=^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case))\\s*)\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",beginCaptures:{"0":{name:"punctuation.definition.string.begin.ts"}},end:"(/)([dgimsuy]*)",endCaptures:{"1":{name:"punctuation.definition.string.end.ts"},"2":{name:"keyword.other.ts"}},patterns:[{include:"#regexp"}]}]},regexp:{patterns:[{name:"keyword.control.anchor.regexp",match:"\\\\[bB]|\\^|\\$"},{match:"\\\\[1-9]\\d*|\\\\k<([a-zA-Z_$][\\w$]*)>",captures:{"0":{name:"keyword.other.back-reference.regexp"},"1":{name:"variable.other.regexp"}}},{name:"keyword.operator.quantifier.regexp",match:"[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??"},{name:"keyword.operator.or.regexp",match:"\\|"},{name:"meta.group.assertion.regexp",begin:"(\\()((\\?=)|(\\?!)|(\\?<=)|(\\?<!))",beginCaptures:{"1":{name:"punctuation.definition.group.regexp"},"2":{name:"punctuation.definition.group.assertion.regexp"},"3":{name:"meta.assertion.look-ahead.regexp"},"4":{name:"meta.assertion.negative-look-ahead.regexp"},"5":{name:"meta.assertion.look-behind.regexp"},"6":{name:"meta.assertion.negative-look-behind.regexp"}},end:"(\\))",endCaptures:{"1":{name:"punctuation.definition.group.regexp"}},patterns:[{include:"#regexp"}]},{name:"meta.group.regexp",begin:"\\((?:(\\?:)|(?:\\?<([a-zA-Z_$][\\w$]*)>))?",beginCaptures:{"0":{name:"punctuation.definition.group.regexp"},"1":{name:"punctuation.definition.group.no-capture.regexp"},"2":{name:"variable.other.regexp"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.group.regexp"}},patterns:[{include:"#regexp"}]},{name:"constant.other.character-class.set.regexp",begin:"(\\[)(\\^)?",beginCaptures:{"1":{name:"punctuation.definition.character-class.regexp"},"2":{name:"keyword.operator.negation.regexp"}},end:"(\\])",endCaptures:{"1":{name:"punctuation.definition.character-class.regexp"}},patterns:[{name:"constant.other.character-class.range.regexp",match:"(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))",captures:{"1":{name:"constant.character.numeric.regexp"},"2":{name:"constant.character.control.regexp"},"3":{name:"constant.character.escape.backslash.regexp"},"4":{name:"constant.character.numeric.regexp"},"5":{name:"constant.character.control.regexp"},"6":{name:"constant.character.escape.backslash.regexp"}}},{include:"#regex-character-class"}]},{include:"#regex-character-class"}]},"regex-character-class":{patterns:[{name:"constant.other.character-class.regexp",match:"\\\\[wWsSdDtrnvf]|\\."},{name:"constant.character.numeric.regexp",match:"\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})"},{name:"constant.character.control.regexp",match:"\\\\c[A-Z]"},{name:"constant.character.escape.backslash.regexp",match:"\\\\."}]},comment:{patterns:[{name:"comment.block.documentation.ts",begin:"/\\*\\*(?!/)",beginCaptures:{"0":{name:"punctuation.definition.comment.ts"}},end:"\\*/",endCaptures:{"0":{name:"punctuation.definition.comment.ts"}},patterns:[{include:"#docblock"}]},{name:"comment.block.ts",begin:"(/\\*)(?:\\s*((@)internal)(?=\\s|(\\*/)))?",beginCaptures:{"1":{name:"punctuation.definition.comment.ts"},"2":{name:"storage.type.internaldeclaration.ts"},"3":{name:"punctuation.decorator.internaldeclaration.ts"}},end:"\\*/",endCaptures:{"0":{name:"punctuation.definition.comment.ts"}}},{begin:"(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.ts"},"2":{name:"comment.line.double-slash.ts"},"3":{name:"punctuation.definition.comment.ts"},"4":{name:"storage.type.internaldeclaration.ts"},"5":{name:"punctuation.decorator.internaldeclaration.ts"}},end:"(?=$)",contentName:"comment.line.double-slash.ts"}]},"single-line-comment-consuming-line-ending":{begin:"(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.ts"},"2":{name:"comment.line.double-slash.ts"},"3":{name:"punctuation.definition.comment.ts"},"4":{name:"storage.type.internaldeclaration.ts"},"5":{name:"punctuation.decorator.internaldeclaration.ts"}},end:"(?=^)",contentName:"comment.line.double-slash.ts"},directives:{name:"comment.line.triple-slash.directive.ts",begin:"^(///)\\s*(?=<(reference|amd-dependency|amd-module)(\\s+(path|types|no-default-lib|lib|name|resolution-mode)\\s*=\\s*((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)))+\\s*/>\\s*$)",beginCaptures:{"1":{name:"punctuation.definition.comment.ts"}},end:"(?=$)",patterns:[{name:"meta.tag.ts",begin:"(<)(reference|amd-dependency|amd-module)",beginCaptures:{"1":{name:"punctuation.definition.tag.directive.ts"},"2":{name:"entity.name.tag.directive.ts"}},end:"/>",endCaptures:{"0":{name:"punctuation.definition.tag.directive.ts"}},patterns:[{name:"entity.other.attribute-name.directive.ts",match:"path|types|no-default-lib|lib|name|resolution-mode"},{name:"keyword.operator.assignment.ts",match:"="},{include:"#string"}]}]},docblock:{patterns:[{match:"(?x)\n((@)(?:access|api))\n\\s+\n(private|protected|public)\n\\b",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"constant.language.access-type.jsdoc"}}},{match:"(?x)\n((@)author)\n\\s+\n(\n [^@\\s<>*/]\n (?:[^@<>*/]|\\*[^/])*\n)\n(?:\n \\s*\n (<)\n ([^>\\s]+)\n (>)\n)?",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"entity.name.type.instance.jsdoc"},"4":{name:"punctuation.definition.bracket.angle.begin.jsdoc"},"5":{name:"constant.other.email.link.underline.jsdoc"},"6":{name:"punctuation.definition.bracket.angle.end.jsdoc"}}},{match:"(?x)\n((@)borrows) \\s+\n((?:[^@\\s*/]|\\*[^/])+) # <that namepath>\n\\s+ (as) \\s+ # as\n((?:[^@\\s*/]|\\*[^/])+) # <this namepath>",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"entity.name.type.instance.jsdoc"},"4":{name:"keyword.operator.control.jsdoc"},"5":{name:"entity.name.type.instance.jsdoc"}}},{name:"meta.example.jsdoc",begin:"((@)example)\\s+",end:"(?=@|\\*/)",beginCaptures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"}},patterns:[{match:"^\\s\\*\\s+"},{contentName:"constant.other.description.jsdoc",begin:"\\G(<)caption(>)",beginCaptures:{"0":{name:"entity.name.tag.inline.jsdoc"},"1":{name:"punctuation.definition.bracket.angle.begin.jsdoc"},"2":{name:"punctuation.definition.bracket.angle.end.jsdoc"}},end:"(</)caption(>)|(?=\\*/)",endCaptures:{"0":{name:"entity.name.tag.inline.jsdoc"},"1":{name:"punctuation.definition.bracket.angle.begin.jsdoc"},"2":{name:"punctuation.definition.bracket.angle.end.jsdoc"}}},{match:"[^\\s@*](?:[^*]|\\*[^/])*",captures:{"0":{name:"source.embedded.ts"}}}]},{match:"(?x) ((@)kind) \\s+ (class|constant|event|external|file|function|member|mixin|module|namespace|typedef) \\b",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"constant.language.symbol-type.jsdoc"}}},{match:"(?x)\n((@)see)\n\\s+\n(?:\n # URL\n (\n (?=https?://)\n (?:[^\\s*]|\\*[^/])+\n )\n |\n # JSDoc namepath\n (\n (?!\n # Avoid matching bare URIs (also acceptable as links)\n https?://\n |\n # Avoid matching {@inline tags}; we match those below\n (?:\\[[^\\[\\]]*\\])? # Possible description [preceding]{@tag}\n {@(?:link|linkcode|linkplain|tutorial)\\b\n )\n # Matched namepath\n (?:[^@\\s*/]|\\*[^/])+\n )\n)",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"variable.other.link.underline.jsdoc"},"4":{name:"entity.name.type.instance.jsdoc"}}},{match:"(?x)\n((@)template)\n\\s+\n# One or more valid identifiers\n(\n [A-Za-z_$] # First character: non-numeric word character\n [\\w$.\\[\\]]* # Rest of identifier\n (?: # Possible list of additional identifiers\n \\s* , \\s*\n [A-Za-z_$]\n [\\w$.\\[\\]]*\n )*\n)",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"variable.other.jsdoc"}}},{begin:"(?x)((@)template)\\s+(?={)",beginCaptures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{name:"variable.other.jsdoc",match:"([A-Za-z_$][\\w$.\\[\\]]*)"}]},{match:"(?x)\n(\n (@)\n (?:arg|argument|const|constant|member|namespace|param|var)\n)\n\\s+\n(\n [A-Za-z_$]\n [\\w$.\\[\\]]*\n)",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"variable.other.jsdoc"}}},{begin:"((@)typedef)\\s+(?={)",beginCaptures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{name:"entity.name.type.instance.jsdoc",match:"(?:[^@\\s*/]|\\*[^/])+"}]},{begin:"((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\s+(?={)",beginCaptures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{name:"variable.other.jsdoc",match:"([A-Za-z_$][\\w$.\\[\\]]*)"},{name:"variable.other.jsdoc",match:"(?x)\n(\\[)\\s*\n[\\w$]+\n(?:\n (?:\\[\\])? # Foo[ ].bar properties within an array\n \\. # Foo.Bar namespaced parameter\n [\\w$]+\n)*\n(?:\n \\s*\n (=) # [foo=bar] Default parameter value\n \\s*\n (\n # The inner regexes are to stop the match early at */ and to not stop at escaped quotes\n (?>\n \"(?:(?:\\*(?!/))|(?:\\\\(?!\"))|[^*\\\\])*?\" | # [foo=\"bar\"] Double-quoted\n '(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?' | # [foo='bar'] Single-quoted\n \\[ (?:(?:\\*(?!/))|[^*])*? \\] | # [foo=[1,2]] Array literal\n (?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])* # Everything else\n )*\n )\n)?\n\\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))",captures:{"1":{name:"punctuation.definition.optional-value.begin.bracket.square.jsdoc"},"2":{name:"keyword.operator.assignment.jsdoc"},"3":{name:"source.embedded.ts"},"4":{name:"punctuation.definition.optional-value.end.bracket.square.jsdoc"},"5":{name:"invalid.illegal.syntax.jsdoc"}}}]},{begin:"(?x)\n(\n (@)\n (?:define|enum|exception|export|extends|lends|implements|modifies\n |namespace|private|protected|returns?|satisfies|suppress|this|throws|type\n |yields?)\n)\n\\s+(?={)",beginCaptures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"}]},{match:"(?x)\n(\n (@)\n (?:alias|augments|callback|constructs|emits|event|fires|exports?\n |extends|external|function|func|host|lends|listens|interface|memberof!?\n |method|module|mixes|mixin|name|requires|see|this|typedef|uses)\n)\n\\s+\n(\n (?:\n [^{}@\\s*] | \\*[^/]\n )+\n)",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"entity.name.type.instance.jsdoc"}}},{contentName:"variable.other.jsdoc",begin:"((@)(?:default(?:value)?|license|version))\\s+(([''\"]))",beginCaptures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"variable.other.jsdoc"},"4":{name:"punctuation.definition.string.begin.jsdoc"}},end:"(\\3)|(?=$|\\*/)",endCaptures:{"0":{name:"variable.other.jsdoc"},"1":{name:"punctuation.definition.string.end.jsdoc"}}},{match:"((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"},"3":{name:"variable.other.jsdoc"}}},{name:"storage.type.class.jsdoc",match:"(?x) (@) (?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles |callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright |default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception |exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func |function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc |inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method |mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects |override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected |public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary |suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation |version|virtual|writeOnce|yields?) \\b",captures:{"1":{name:"punctuation.definition.block.tag.jsdoc"}}},{include:"#inline-tags"},{match:"((@)(?:[_$[:alpha:]][_$[:alnum:]]*))(?=\\s+)",captures:{"1":{name:"storage.type.class.jsdoc"},"2":{name:"punctuation.definition.block.tag.jsdoc"}}}]},brackets:{patterns:[{begin:"{",end:"}|(?=\\*/)",patterns:[{include:"#brackets"}]},{begin:"\\[",end:"\\]|(?=\\*/)",patterns:[{include:"#brackets"}]}]},"inline-tags":{patterns:[{name:"constant.other.description.jsdoc",match:"(\\[)[^\\]]+(\\])(?={@(?:link|linkcode|linkplain|tutorial))",captures:{"1":{name:"punctuation.definition.bracket.square.begin.jsdoc"},"2":{name:"punctuation.definition.bracket.square.end.jsdoc"}}},{name:"entity.name.type.instance.jsdoc",begin:"({)((@)(?:link(?:code|plain)?|tutorial))\\s*",beginCaptures:{"1":{name:"punctuation.definition.bracket.curly.begin.jsdoc"},"2":{name:"storage.type.class.jsdoc"},"3":{name:"punctuation.definition.inline.tag.jsdoc"}},end:"}|(?=\\*/)",endCaptures:{"0":{name:"punctuation.definition.bracket.curly.end.jsdoc"}},patterns:[{match:"\\G((?=https?://)(?:[^|}\\s*]|\\*[/])+)(\\|)?",captures:{"1":{name:"variable.other.link.underline.jsdoc"},"2":{name:"punctuation.separator.pipe.jsdoc"}}},{match:"\\G((?:[^{}@\\s|*]|\\*[^/])+)(\\|)?",captures:{"1":{name:"variable.other.description.jsdoc"},"2":{name:"punctuation.separator.pipe.jsdoc"}}}]}]},jsdoctype:{patterns:[{contentName:"entity.name.type.instance.jsdoc",begin:"\\G({)",beginCaptures:{"0":{name:"entity.name.type.instance.jsdoc"},"1":{name:"punctuation.definition.bracket.curly.begin.jsdoc"}},end:"((}))\\s*|(?=\\*/)",endCaptures:{"1":{name:"entity.name.type.instance.jsdoc"},"2":{name:"punctuation.definition.bracket.curly.end.jsdoc"}},patterns:[{include:"#brackets"}]}]}}}; + +export { typescript_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/v.tmLanguage-53fdea6f.mjs b/docs/shiki/dist/languages/v.tmLanguage-53fdea6f.mjs new file mode 100644 index 00000000..9cee2eda --- /dev/null +++ b/docs/shiki/dist/languages/v.tmLanguage-53fdea6f.mjs @@ -0,0 +1,3 @@ +var v_tmLanguage = {name:"v",scopeName:"source.v",fileTypes:[".v",".vh",".vsh",".vv","v.mod"],patterns:[{include:"#comments"},{include:"#function-decl"},{include:"#as-is"},{include:"#attributes"},{include:"#assignment"},{include:"#module-decl"},{include:"#import-decl"},{include:"#hash-decl"},{include:"#brackets"},{include:"#builtin-fix"},{include:"#escaped-fix"},{include:"#operators"},{include:"#function-limited-overload-decl"},{include:"#function-extend-decl"},{include:"#function-exist"},{include:"#generic"},{include:"#constants"},{include:"#type"},{include:"#enum"},{include:"#interface"},{include:"#struct"},{include:"#keywords"},{include:"#storage"},{include:"#numbers"},{include:"#strings"},{include:"#types"},{include:"#punctuations"},{include:"#variable-assign"},{include:"#function-decl"}],repository:{"as-is":{begin:"\\s+(as|is)\\s+",beginCaptures:{"1":{name:"keyword.$1.v"}},end:"([\\w.]*)",endCaptures:{"1":{name:"entity.name.alias.v"}}},assignment:{name:"meta.definition.variable.v",match:"\\s+((?:\\:|\\+|\\-|\\*|/|\\%|\\&|\\||\\^)?=)\\s+",captures:{"1":{patterns:[{include:"#operators"}]}}},attributes:{name:"meta.definition.attribute.v",match:"^\\s*((\\[)(deprecated|unsafe|console|heap|manualfree|typedef|live|inline|flag|ref_only|direct_array_access|callconv)(\\]))",captures:{"1":{name:"meta.function.attribute.v"},"2":{name:"punctuation.definition.begin.bracket.square.v"},"3":{name:"storage.modifier.attribute.v"},"4":{name:"punctuation.definition.end.bracket.square.v"}}},"variable-assign":{match:"[a-zA-Z_]\\w*(?:,\\s*[a-zA-Z_]\\w*)*(?=\\s*(?:=|:=))",captures:{"0":{patterns:[{match:"[a-zA-Z_]\\w*",name:"variable.other.assignment.v"},{include:"#punctuation"}]}}},"module-decl":{name:"meta.module.v",begin:"^\\s*(module)\\s+",beginCaptures:{"1":{name:"keyword.module.v"}},end:"([\\w.]+)",endCaptures:{"1":{name:"entity.name.module.v"}}},"import-decl":{name:"meta.import.v",begin:"^\\s*(import)\\s+",beginCaptures:{"1":{name:"keyword.import.v"}},end:"([\\w.]+)",endCaptures:{"1":{name:"entity.name.import.v"}}},"hash-decl":{name:"markup.bold.v",begin:"^\\s*(#)",end:"$"},brackets:{patterns:[{begin:"{",beginCaptures:{"0":{name:"punctuation.definition.bracket.curly.begin.v"}},end:"}",endCaptures:{"0":{name:"punctuation.definition.bracket.curly.end.v"}},patterns:[{include:"$self"}]},{begin:"\\(",beginCaptures:{"0":{name:"punctuation.definition.bracket.round.begin.v"}},end:"\\)",endCaptures:{"0":{name:"punctuation.definition.bracket.round.end.v"}},patterns:[{include:"$self"}]},{begin:"\\[",beginCaptures:{"0":{name:"punctuation.definition.bracket.square.begin.v"}},end:"\\]",endCaptures:{"0":{name:"punctuation.definition.bracket.square.end.v"}},patterns:[{include:"$self"}]}]},"builtin-fix":{patterns:[{patterns:[{name:"storage.modifier.v",match:"(const)(?=\\s*\\()"},{name:"keyword.$1.v",match:"\\b(fn|type|enum|struct|union|interface|map|assert|sizeof|typeof|__offsetof)\\b(?=\\s*\\()"}]},{patterns:[{name:"keyword.control.v",match:"(\\$if|\\$else)(?=\\s*\\()"},{name:"keyword.control.v",match:"\\b(as|in|is|or|break|continue|default|unsafe|match|if|else|for|go|spawn|goto|defer|return|shared|select|rlock|lock|atomic|asm)\\b(?=\\s*\\()"}]},{patterns:[{match:"(?<!.)(i?(?:8|16|nt|64|128)|u?(?:16|32|64|128)|f?(?:32|64))(?=\\s*\\()",captures:{"1":{name:"storage.type.numeric.v"}},name:"meta.expr.numeric.cast.v"},{match:"(bool|byte|byteptr|charptr|voidptr|string|rune|size_t|[ui]size)(?=\\s*\\()",captures:{"1":{name:"storage.type.$1.v"}},name:"meta.expr.bool.cast.v"}]}]},comments:{patterns:[{name:"comment.block.documentation.v",begin:"/\\*",beginCaptures:{"0":{name:"punctuation.definition.comment.begin.v"}},end:"\\*/",endCaptures:{"0":{name:"punctuation.definition.comment.end.v"}},patterns:[{include:"#comments"}]},{name:"comment.line.double-slash.v",begin:"//",beginCaptures:{"0":{name:"punctuation.definition.comment.begin.v"}},end:"$"}]},constants:{name:"constant.language.v",match:"\\b(true|false|none)\\b"},generic:{patterns:[{name:"meta.definition.generic.v",match:"(?<=[\\w\\s+])(\\<)(\\w+)(\\>)",captures:{"1":{name:"punctuation.definition.bracket.angle.begin.v"},"2":{patterns:[{include:"#illegal-name"},{match:"\\w+",name:"entity.name.generic.v"}]},"3":{name:"punctuation.definition.bracket.angle.end.v"}}}]},"function-decl":{name:"meta.definition.function.v",match:"^(\\bpub\\b\\s+)?(\\bfn\\b)\\s+(?:\\([^\\)]+\\)\\s+)?(?:(?:C\\.)?)(\\w+)\\s*((?<=[\\w\\s+])(\\<)(\\w+)(\\>))?",captures:{"1":{name:"storage.modifier.v"},"2":{name:"keyword.fn.v"},"3":{name:"entity.name.function.v"},"4":{patterns:[{include:"#generic"}]}}},"function-extend-decl":{name:"meta.definition.function.v",match:"^\\s*(pub)?\\s*(fn)\\s*(\\()([^\\)]*)(\\))\\s*(?:(?:C\\.)?)(\\w+)\\s*((?<=[\\w\\s+])(\\<)(\\w+)(\\>))?",captures:{"1":{name:"storage.modifier.v"},"2":{name:"keyword.fn.v"},"3":{name:"punctuation.definition.bracket.round.begin.v"},"4":{patterns:[{include:"#brackets"},{include:"#storage"},{include:"#generic"},{include:"#types"},{include:"#punctuation"}]},"5":{name:"punctuation.definition.bracket.round.end.v"},"6":{patterns:[{include:"#illegal-name"},{match:"\\w+",name:"entity.name.function.v"}]},"7":{patterns:[{include:"#generic"}]}}},"function-limited-overload-decl":{name:"meta.definition.function.v",match:"^\\s*(pub)?\\s*(fn)\\s*(\\()([^\\)]*)(\\))\\s*([\\+\\-\\*\\/])?\\s*(\\()([^\\)]*)(\\))\\s*(?:(?:C\\.)?)(\\w+)",captures:{"1":{name:"storage.modifier.v"},"2":{name:"keyword.fn.v"},"3":{name:"punctuation.definition.bracket.round.begin.v"},"4":{patterns:[{include:"#brackets"},{include:"#storage"},{include:"#generic"},{include:"#types"},{include:"#punctuation"}]},"5":{name:"punctuation.definition.bracket.round.end.v"},"6":{patterns:[{include:"#operators"}]},"7":{name:"punctuation.definition.bracket.round.begin.v"},"8":{patterns:[{include:"#brackets"},{include:"#storage"},{include:"#generic"},{include:"#types"},{include:"#punctuation"}]},"9":{name:"punctuation.definition.bracket.round.end.v"},"10":{patterns:[{include:"#illegal-name"},{match:"\\w+",name:"entity.name.function.v"}]}}},"function-exist":{name:"meta.support.function.v",match:"(\\w+)((?<=[\\w\\s+])(\\<)(\\w+)(\\>))?(?=\\s*\\()",captures:{"0":{name:"meta.function.call.v"},"1":{patterns:[{include:"#illegal-name"},{match:"\\w+",name:"entity.name.function.v"}]},"2":{patterns:[{include:"#generic"}]}}},type:{name:"meta.definition.type.v",match:"^\\s*(?:(pub)?\\s+)?(type)\\s+(\\w*)\\s+(?:\\w+\\.+)?(\\w*)",captures:{"1":{name:"storage.modifier.$1.v"},"2":{name:"storage.type.type.v"},"3":{patterns:[{include:"#illegal-name"},{include:"#types"},{name:"entity.name.type.v",match:"\\w+"}]},"4":{patterns:[{include:"#illegal-name"},{include:"#types"},{name:"entity.name.type.v",match:"\\w+"}]}}},"enum":{name:"meta.definition.enum.v",match:"^\\s*(?:(pub)?\\s+)?(enum)\\s+(?:\\w+\\.)?(\\w*)",captures:{"1":{name:"storage.modifier.$1.v"},"2":{name:"storage.type.enum.v"},"3":{name:"entity.name.enum.v"}}},"interface":{name:"meta.definition.interface.v",match:"^\\s*(?:(pub)?\\s+)?(interface)\\s+(\\w*)",captures:{"1":{name:"storage.modifier.$1.v"},"2":{name:"keyword.interface.v"},"3":{patterns:[{include:"#illegal-name"},{name:"entity.name.interface.v",match:"\\w+"}]}}},struct:{patterns:[{name:"meta.definition.struct.v",begin:"^\\s*(?:(mut|pub(?:\\s+mut)?|__global)\\s+)?(struct|union)\\s+([\\w.]+)\\s*|({)",beginCaptures:{"1":{name:"storage.modifier.$1.v"},"2":{name:"storage.type.struct.v"},"3":{name:"entity.name.type.v"},"4":{name:"punctuation.definition.bracket.curly.begin.v"}},end:"\\s*|(})",endCaptures:{"1":{name:"punctuation.definition.bracket.curly.end.v"}},patterns:[{include:"#struct-access-modifier"},{match:"\\b(\\w+)\\s+([\\w\\[\\]\\*&.]+)(?:\\s*(=)\\s*((?:.(?=$|//|/\\*))*+))?",captures:{"1":{name:"variable.other.property.v"},"2":{patterns:[{include:"#numbers"},{include:"#brackets"},{include:"#types"},{match:"\\w+",name:"storage.type.other.v"}]},"3":{name:"keyword.operator.assignment.v"},"4":{patterns:[{include:"$self"}]}}},{include:"#types"},{include:"$self"}]},{name:"meta.definition.struct.v",match:"^\\s*(?:(mut|pub(?:\\s+mut)?|__global))\\s+?(struct)\\s+(?:\\s+([\\w.]+))?",captures:{"1":{name:"storage.modifier.$1.v"},"2":{name:"storage.type.struct.v"},"3":{name:"entity.name.struct.v"}}}]},"struct-access-modifier":{match:"(?<=\\s|^)(mut|pub(?:\\s+mut)?|__global)(:|\\b)",captures:{"1":{name:"storage.modifier.$1.v"},"2":{name:"punctuation.separator.struct.key-value.v"}}},punctuation:{patterns:[{name:"punctuation.delimiter.period.dot.v",match:"\\."},{name:"punctuation.delimiter.comma.v",match:","},{name:"punctuation.separator.key-value.colon.v",match:":"},{name:"punctuation.definition.other.semicolon.v",match:";"},{name:"punctuation.definition.other.questionmark.v",match:"\\?"},{name:"punctuation.hash.v",match:"#"}]},keywords:{patterns:[{name:"keyword.control.v",match:"(\\$if|\\$else)"},{name:"keyword.control.v",match:"(?<!@)\\b(as|it|is|in|or|break|continue|default|unsafe|match|if|else|for|go|spawn|goto|defer|return|shared|select|rlock|lock|atomic|asm)\\b"},{name:"keyword.$1.v",match:"(?<!@)\\b(fn|type|typeof|enum|struct|interface|map|assert|sizeof|__offsetof)\\b"}]},storage:{name:"storage.modifier.v",match:"\\b(const|mut|pub)\\b"},types:{patterns:[{name:"storage.type.numeric.v",match:"(?<!\\.)\\b(i(8|16|nt|64|128)|u(8|16|32|64|128)|f(32|64))\\b"},{name:"storage.type.$1.v",match:"(?<!\\.)\\b(bool|byte|byteptr|charptr|voidptr|string|ustring|rune)\\b"}]},operators:{patterns:[{name:"keyword.operator.arithmetic.v",match:"(\\+|\\-|\\*|\\/|\\%|\\+\\+|\\-\\-|\\>\\>|\\<\\<)"},{name:"keyword.operator.relation.v",match:"(\\=\\=|\\!\\=|\\>|\\<|\\>\\=|\\<\\=)"},{name:"keyword.operator.assignment.v",match:"(\\:\\=|\\=|\\+\\=|\\-\\=|\\*\\=|\\/\\=|\\%\\=|\\&\\=|\\|\\=|\\^\\=|\\~\\=|\\&\\&\\=|\\|\\|\\=|\\>\\>\\=|\\<\\<\\=)"},{name:"keyword.operator.bitwise.v",match:"(\\&|\\||\\^|\\~|<(?!<)|>(?!>))"},{name:"keyword.operator.logical.v",match:"(\\&\\&|\\|\\||\\!)"},{name:"keyword.operator.optional.v",match:"\\?"}]},numbers:{patterns:[{name:"constant.numeric.exponential.v",match:"([0-9]+(_?))+(\\.)([0-9]+[eE][-+]?[0-9]+)"},{name:"constant.numeric.float.v",match:"([0-9]+(_?))+(\\.)([0-9]+)"},{name:"constant.numeric.binary.v",match:"(?:0b)(?:(?:[0-1]+)(?:_?))+"},{name:"constant.numeric.octal.v",match:"(?:0o)(?:(?:[0-7]+)(?:_?))+"},{name:"constant.numeric.hex.v",match:"(?:0x)(?:(?:[0-9a-fA-F]+)(?:_?))+"},{name:"constant.numeric.integer.v",match:"(?:(?:[0-9]+)(?:[_]?))+"}]},punctuations:{patterns:[{name:"punctuation.accessor.v",match:"(?:\\.)"},{name:"punctuation.separator.comma.v",match:"(?:,)"}]},strings:{patterns:[{begin:"`",end:"`",name:"string.quoted.rune.v",patterns:[{include:"#string-escaped-char"},{include:"#string-interpolation"},{include:"#string-placeholder"}]},{begin:"(r)'",beginCaptures:{"1":{name:"storage.type.string.v"}},end:"'",name:"string.quoted.raw.v",patterns:[{include:"#string-interpolation"},{include:"#string-placeholder"}]},{begin:"(r)\"",beginCaptures:{"1":{name:"storage.type.string.v"}},end:"\"",name:"string.quoted.raw.v",patterns:[{include:"#string-interpolation"},{include:"#string-placeholder"}]},{begin:"(c?)'",beginCaptures:{"1":{name:"storage.type.string.v"}},end:"'",name:"string.quoted.v",patterns:[{include:"#string-escaped-char"},{include:"#string-interpolation"},{include:"#string-placeholder"}]},{begin:"(c?)\"",beginCaptures:{"1":{name:"storage.type.string.v"}},end:"\"",name:"string.quoted.v",patterns:[{include:"#string-escaped-char"},{include:"#string-interpolation"},{include:"#string-placeholder"}]}]},"string-escaped-char":{patterns:[{name:"constant.character.escape.v",match:"\\\\([0-7]{3}|[\\$abfnrtv\\\\'\"]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})"},{name:"invalid.illegal.unknown-escape.v",match:"\\\\[^0-7\\$xuUabfnrtv\\'\"]"}]},"string-interpolation":{name:"meta.string.interpolation.v",match:"(\\$([\\w.]+|\\{.*?\\}))",captures:{"1":{patterns:[{name:"invalid.illegal.v",match:"\\$\\d[\\.\\w]+"},{name:"variable.other.interpolated.v",match:"\\$([\\.\\w]+|\\{.*?\\})"}]}}},"string-placeholder":{match:"%(\\[\\d+\\])?([\\+#\\-0\\x20]{,2}((\\d+|\\*)?(\\.?(\\d+|\\*|(\\[\\d+\\])\\*?)?(\\[\\d+\\])?)?))?[vT%tbcdoqxXUbeEfFgGsp]",name:"constant.other.placeholder.v"},"illegal-name":{match:"\\d\\w+",name:"invalid.illegal.v"}}}; + +export { v_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/vb.tmLanguage-a3ae732c.mjs b/docs/shiki/dist/languages/vb.tmLanguage-a3ae732c.mjs new file mode 100644 index 00000000..4b527986 --- /dev/null +++ b/docs/shiki/dist/languages/vb.tmLanguage-a3ae732c.mjs @@ -0,0 +1,3 @@ +var vb_tmLanguage = {information_for_contributors:["This file has been converted from https://github.com/textmate/asp.vb.net.tmbundle/blob/master/Syntaxes/ASP%20VB.net.plist","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."],version:"https://github.com/textmate/asp.vb.net.tmbundle/commit/72d44550b3286d0382d7be0624140cf97857ff69",name:"vb",scopeName:"source.asp.vb.net",comment:"Modified from the original ASP bundle. Originally modified by Thomas Aylott subtleGradient.com",patterns:[{match:"\\n",name:"meta.ending-space"},{include:"#round-brackets"},{begin:"^(?=\\t)",end:"(?=[^\\t])",name:"meta.leading-space",patterns:[{captures:{"1":{name:"meta.odd-tab.tabs"},"2":{name:"meta.even-tab.tabs"}},match:"(\\t)(\\t)?"}]},{begin:"^(?= )",end:"(?=[^ ])",name:"meta.leading-space",patterns:[{captures:{"1":{name:"meta.odd-tab.spaces"},"2":{name:"meta.even-tab.spaces"}},match:"( )( )?"}]},{captures:{"1":{name:"storage.type.function.asp"},"2":{name:"entity.name.function.asp"},"3":{name:"punctuation.definition.parameters.asp"},"4":{name:"variable.parameter.function.asp"},"5":{name:"punctuation.definition.parameters.asp"}},match:"^\\s*((?i:function|sub))\\s*([a-zA-Z_]\\w*)\\s*(\\()([^)]*)(\\)).*\\n?",name:"meta.function.asp"},{begin:"(^[ \\t]+)?(?=')",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.asp"}},end:"(?!\\G)",patterns:[{begin:"'",beginCaptures:{"0":{name:"punctuation.definition.comment.asp"}},end:"\\n",name:"comment.line.apostrophe.asp"}]},{match:"(?i:\\b(If|Then|Else|ElseIf|Else If|End If|While|Wend|For|To|Each|Case|Select|End Select|Return|Continue|Do|Until|Loop|Next|With|Exit Do|Exit For|Exit Function|Exit Property|Exit Sub|IIf)\\b)",name:"keyword.control.asp"},{match:"(?i:\\b(Mod|And|Not|Or|Xor|as)\\b)",name:"keyword.operator.asp"},{captures:{"1":{name:"storage.type.asp"},"2":{name:"variable.other.bfeac.asp"},"3":{name:"meta.separator.comma.asp"}},match:"(?i:(dim)\\s*(?:(\\b[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\b)\\s*(,?)))",name:"variable.other.dim.asp"},{match:"(?i:\\s*\\b(Call|Class|Const|Dim|Redim|Function|Sub|Private Sub|Public Sub|End Sub|End Function|End Class|End Property|Public Property|Private Property|Set|Let|Get|New|Randomize|Option Explicit|On Error Resume Next|On Error GoTo)\\b\\s*)",name:"storage.type.asp"},{match:"(?i:\\b(Private|Public|Default)\\b)",name:"storage.modifier.asp"},{match:"(?i:\\s*\\b(Empty|False|Nothing|Null|True)\\b)",name:"constant.language.asp"},{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.asp"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.asp"}},name:"string.quoted.double.asp",patterns:[{match:"\"\"",name:"constant.character.escape.apostrophe.asp"}]},{captures:{"1":{name:"punctuation.definition.variable.asp"}},match:"(\\$)[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\b\\s*",name:"variable.other.asp"},{match:"(?i:\\b(Application|ObjectContext|Request|Response|Server|Session)\\b)",name:"support.class.asp"},{match:"(?i:\\b(Contents|StaticObjects|ClientCertificate|Cookies|Form|QueryString|ServerVariables)\\b)",name:"support.class.collection.asp"},{match:"(?i:\\b(TotalBytes|Buffer|CacheControl|Charset|ContentType|Expires|ExpiresAbsolute|IsClientConnected|PICS|Status|ScriptTimeout|CodePage|LCID|SessionID|Timeout)\\b)",name:"support.constant.asp"},{match:"(?i:\\b(Lock|Unlock|SetAbort|SetComplete|BinaryRead|AddHeader|AppendToLog|BinaryWrite|Clear|End|Flush|Redirect|Write|CreateObject|HTMLEncode|MapPath|URLEncode|Abandon|Convert|Regex)\\b)",name:"support.function.asp"},{match:"(?i:\\b(Application_OnEnd|Application_OnStart|OnTransactionAbort|OnTransactionCommit|Session_OnEnd|Session_OnStart)\\b)",name:"support.function.event.asp"},{match:"(?i:(?<=as )(\\b[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\b))",name:"support.type.vb.asp"},{match:"(?i:\\b(Array|Add|Asc|Atn|CBool|CByte|CCur|CDate|CDbl|Chr|CInt|CLng|Conversions|Cos|CreateObject|CSng|CStr|Date|DateAdd|DateDiff|DatePart|DateSerial|DateValue|Day|Derived|Math|Escape|Eval|Exists|Exp|Filter|FormatCurrency|FormatDateTime|FormatNumber|FormatPercent|GetLocale|GetObject|GetRef|Hex|Hour|InputBox|InStr|InStrRev|Int|Fix|IsArray|IsDate|IsEmpty|IsNull|IsNumeric|IsObject|Item|Items|Join|Keys|LBound|LCase|Left|Len|LoadPicture|Log|LTrim|RTrim|Trim|Maths|Mid|Minute|Month|MonthName|MsgBox|Now|Oct|Remove|RemoveAll|Replace|RGB|Right|Rnd|Round|ScriptEngine|ScriptEngineBuildVersion|ScriptEngineMajorVersion|ScriptEngineMinorVersion|Second|SetLocale|Sgn|Sin|Space|Split|Sqr|StrComp|String|StrReverse|Tan|Time|Timer|TimeSerial|TimeValue|TypeName|UBound|UCase|Unescape|VarType|Weekday|WeekdayName|Year)\\b)",name:"support.function.vb.asp"},{match:"-?\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f)?\\b",name:"constant.numeric.asp"},{match:"(?i:\\b(vbtrue|vbfalse|vbcr|vbcrlf|vbformfeed|vblf|vbnewline|vbnullchar|vbnullstring|int32|vbtab|vbverticaltab|vbbinarycompare|vbtextcomparevbsunday|vbmonday|vbtuesday|vbwednesday|vbthursday|vbfriday|vbsaturday|vbusesystemdayofweek|vbfirstjan1|vbfirstfourdays|vbfirstfullweek|vbgeneraldate|vblongdate|vbshortdate|vblongtime|vbshorttime|vbobjecterror|vbEmpty|vbNull|vbInteger|vbLong|vbSingle|vbDouble|vbCurrency|vbDate|vbString|vbObject|vbError|vbBoolean|vbVariant|vbDataObject|vbDecimal|vbByte|vbArray)\\b)",name:"support.type.vb.asp"},{captures:{"1":{name:"entity.name.function.asp"}},match:"(?i:(\\b[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\b)(?=\\(\\)?))",name:"support.function.asp"},{match:"(?i:((?<=(\\+|=|-|\\&|\\\\|/|<|>|\\(|,))\\s*\\b([a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?)\\b(?!(\\(|\\.))|\\b([a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?)\\b(?=\\s*(\\+|=|-|\\&|\\\\|/|<|>|\\(|\\)))))",name:"variable.other.asp"},{match:"!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|/=|%=|\\+=|\\-=|&=|\\^=|\\b(in|instanceof|new|delete|typeof|void)\\b",name:"keyword.operator.js"}],repository:{"round-brackets":{begin:"\\(",beginCaptures:{"0":{name:"punctuation.section.round-brackets.begin.asp"}},end:"\\)",endCaptures:{"0":{name:"punctuation.section.round-brackets.end.asp"}},name:"meta.round-brackets",patterns:[{include:"source.asp.vb.net"}]}}}; + +export { vb_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/verilog.tmLanguage-c4c95c8d.mjs b/docs/shiki/dist/languages/verilog.tmLanguage-c4c95c8d.mjs new file mode 100644 index 00000000..aa2d2b50 --- /dev/null +++ b/docs/shiki/dist/languages/verilog.tmLanguage-c4c95c8d.mjs @@ -0,0 +1,3 @@ +var verilog_tmLanguage = {fileTypes:["v","vh"],keyEquivalent:"^~V",name:"verilog",patterns:[{include:"#comments"},{include:"#module_pattern"},{include:"#keywords"},{include:"#constants"},{include:"#strings"},{include:"#operators"}],repository:{comments:{patterns:[{begin:"(^[ \\t]+)?(?=//)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.verilog"}},end:"(?!\\G)",patterns:[{begin:"//",beginCaptures:{"0":{name:"punctuation.definition.comment.verilog"}},end:"\\n",name:"comment.line.double-slash.verilog"}]},{begin:"/\\*",end:"\\*/",name:"comment.block.c-style.verilog"}]},constants:{patterns:[{match:"`(?!(celldefine|endcelldefine|default_nettype|define|undef|ifdef|ifndef|else|endif|include|resetall|timescale|unconnected_drive|nounconnected_drive))[a-z_A-Z][a-zA-Z0-9_$]*",name:"variable.other.constant.verilog"},{match:"[0-9]*'[bBoOdDhH][a-fA-F0-9_xXzZ]+\\b",name:"constant.numeric.sized_integer.verilog"},{captures:{"1":{name:"constant.numeric.integer.verilog"},"2":{name:"punctuation.separator.range.verilog"},"3":{name:"constant.numeric.integer.verilog"}},match:"\\b(\\d+)(:)(\\d+)\\b",name:"meta.block.numeric.range.verilog"},{match:"\\b\\d[\\d_]*(?i:e\\d+)?\\b",name:"constant.numeric.integer.verilog"},{match:"\\b\\d+\\.\\d+(?i:e\\d+)?\\b",name:"constant.numeric.real.verilog"},{match:"#\\d+",name:"constant.numeric.delay.verilog"},{match:"\\b[01xXzZ]+\\b",name:"constant.numeric.logic.verilog"}]},instantiation_patterns:{patterns:[{include:"#keywords"},{begin:"^\\s*([a-zA-Z][a-zA-Z0-9_]*)\\s+([a-zA-Z][a-zA-Z0-9_]*)(?<!begin|if)\\s*(?=\\(|$)",beginCaptures:{"1":{name:"entity.name.tag.module.reference.verilog"},"2":{name:"entity.name.tag.module.identifier.verilog"}},end:";",endCaptures:{"0":{name:"punctuation.terminator.expression.verilog"}},name:"meta.block.instantiation.parameterless.verilog",patterns:[{include:"#comments"},{include:"#constants"},{include:"#strings"}]},{begin:"^\\s*([a-zA-Z][a-zA-Z0-9_]*)\\s*(#)(?=\\s*\\()",beginCaptures:{"1":{name:"entity.name.tag.module.reference.verilog"}},end:";",endCaptures:{"0":{name:"punctuation.terminator.expression.verilog"}},name:"meta.block.instantiation.with.parameters.verilog",patterns:[{include:"#parenthetical_list"},{match:"[a-zA-Z][a-zA-Z0-9_]*",name:"entity.name.tag.module.identifier.verilog"}]}]},keywords:{patterns:[{match:"\\b(always|and|assign|attribute|begin|buf|bufif0|bufif1|case[xz]?|cmos|deassign|default|defparam|disable|edge|else|end(attribute|case|function|generate|module|primitive|specify|table|task)?|event|for|force|forever|fork|function|generate|genvar|highz(01)|if(none)?|initial|inout|input|integer|join|localparam|medium|module|large|macromodule|nand|negedge|nmos|nor|not|notif(01)|or|output|parameter|pmos|posedge|primitive|pull0|pull1|pulldown|pullup|rcmos|real|realtime|reg|release|repeat|rnmos|rpmos|rtran|rtranif(01)|scalared|signed|small|specify|specparam|strength|strong0|strong1|supply0|supply1|table|task|time|tran|tranif(01)|tri(01)?|tri(and|or|reg)|unsigned|vectored|wait|wand|weak(01)|while|wire|wor|xnor|xor)\\b",name:"keyword.other.verilog"},{match:"^\\s*`((cell)?define|default_(decay_time|nettype|trireg_strength)|delay_mode_(path|unit|zero)|ifdef|ifndef|include|end(if|celldefine)|else|(no)?unconnected_drive|resetall|timescale|undef)\\b",name:"keyword.other.compiler.directive.verilog"},{match:"\\$(f(open|close)|readmem(b|h)|timeformat|printtimescale|stop|finish|(s|real)?time|realtobits|bitstoreal|rtoi|itor|(f)?(display|write(h|b)))\\b",name:"support.function.system.console.tasks.verilog"},{match:"\\$(random|dist_(chi_square|erlang|exponential|normal|poisson|t|uniform))\\b",name:"support.function.system.random_number.tasks.verilog"},{match:"\\$((a)?sync\\$((n)?and|(n)or)\\$(array|plane))\\b",name:"support.function.system.pld_modeling.tasks.verilog"},{match:"\\$(q_(initialize|add|remove|full|exam))\\b",name:"support.function.system.stochastic.tasks.verilog"},{match:"\\$(hold|nochange|period|recovery|setup(hold)?|skew|width)\\b",name:"support.function.system.timing.tasks.verilog"},{match:"\\$(dump(file|vars|off|on|all|limit|flush))\\b",name:"support.function.system.vcd.tasks.verilog"},{match:"\\$(countdrivers|list|input|scope|showscopes|(no)?(key|log)|reset(_count|_value)?|(inc)?save|restart|showvars|getpattern|sreadmem(b|h)|scale)",name:"support.function.non-standard.tasks.verilog"}]},module_pattern:{patterns:[{begin:"\\b(module)\\s+([a-zA-Z][a-zA-Z0-9_]*)",beginCaptures:{"1":{name:"storage.type.module.verilog"},"2":{name:"entity.name.type.module.verilog"}},end:"\\bendmodule\\b",endCaptures:{"0":{name:"storage.type.module.verilog"}},name:"meta.block.module.verilog",patterns:[{include:"#comments"},{include:"#keywords"},{include:"#constants"},{include:"#strings"},{include:"#instantiation_patterns"},{include:"#operators"}]}]},operators:{patterns:[{match:"\\+|-|\\*|/|%|(<|>)=?|(!|=)?==?|!|&&?|\\|\\|?|\\^?~|~\\^?",name:"keyword.operator.verilog"}]},parenthetical_list:{patterns:[{begin:"\\(",beginCaptures:{"0":{name:"punctuation.section.list.verilog"}},end:"\\)",endCaptures:{"0":{name:"punctuation.section.list.verilog"}},name:"meta.block.parenthetical_list.verilog",patterns:[{include:"#parenthetical_list"},{include:"#comments"},{include:"#keywords"},{include:"#constants"},{include:"#strings"}]}]},strings:{patterns:[{begin:"\"",end:"\"",name:"string.quoted.double.verilog",patterns:[{match:"\\\\.",name:"constant.character.escape.verilog"}]}]}},scopeName:"source.verilog",uuid:"7F4396B3-A33E-44F0-8502-98CA6C25971F"}; + +export { verilog_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/vhdl.tmLanguage-f7adf5df.mjs b/docs/shiki/dist/languages/vhdl.tmLanguage-f7adf5df.mjs new file mode 100644 index 00000000..535ab05d --- /dev/null +++ b/docs/shiki/dist/languages/vhdl.tmLanguage-f7adf5df.mjs @@ -0,0 +1,3 @@ +var vhdl_tmLanguage = {fileTypes:["vhd","vhdl","vho","vht"],name:"vhdl",patterns:[{include:"#block_processing"},{include:"#cleanup"}],repository:{architecture_pattern:{patterns:[{begin:"(?x)\n\n\t\t\t\t\t\t# The word architecture $1\n\t\t\t\t\t\t\\b((?i:architecture))\\s+\n\t\t\t\t\t\t\n\t\t\t\t\t\t# Followed up by a valid $3 or invalid identifier $4\n\t\t\t\t\t\t(([a-zA-z][a-zA-z0-9_]*)|(.+))(?=\\s)\\s+\n\n\t\t\t\t\t\t# The word of $5\n\t\t\t\t\t\t((?i:of))\\s+\n\n\t\t\t\t\t\t# Followed by a valid $7 or invalid identifier $8\n\t\t\t\t\t\t(([a-zA-Z][a-zA-Z0-9_]*)|(.+?))(?=\\s*(?i:is))\\b\n\t\t\t\t\t",beginCaptures:{"1":{name:"keyword.language.vhdl"},"3":{name:"entity.name.type.architecture.begin.vhdl"},"4":{name:"invalid.illegal.invalid.identifier.vhdl"},"5":{name:"keyword.language.vhdl"},"7":{name:"entity.name.type.entity.reference.vhdl"},"8":{name:"invalid.illegal.invalid.identifier.vhdl"}},end:"(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end))\n\n\t\t\t\t\t\t# Optional word architecture $3\n\t\t\t\t\t\t(\\s+((?i:architecture)))?\n\n\t\t\t\t\t\t# Optional same identifier $6 or illegal identifier $7\n\t\t\t\t\t\t(\\s+((\\3)|(.+?)))?\n\n\t\t\t\t\t\t# This will cause the previous to capture until just before the ; or $\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t",endCaptures:{"1":{name:"keyword.language.vhdl"},"3":{name:"keyword.language.vhdl"},"6":{name:"entity.name.type.architecture.end.vhdl"},"7":{name:"invalid.illegal.mismatched.identifier.vhdl"}},name:"support.block.architecture",patterns:[{include:"#function_definition_pattern"},{include:"#procedure_definition_pattern"},{include:"#component_pattern"},{include:"#if_pattern"},{include:"#process_pattern"},{include:"#type_pattern"},{include:"#record_pattern"},{include:"#for_pattern"},{include:"#entity_instantiation_pattern"},{include:"#component_instantiation_pattern"},{include:"#cleanup"}]}]},attribute_list:{patterns:[{begin:"\\'\\(",beginCaptures:{"0":{name:"punctuation.vhdl"}},end:"\\)",endCaptures:{"0":{name:"punctuation.vhdl"}},patterns:[{include:"#parenthetical_list"},{include:"#cleanup"}]}]},block_processing:{patterns:[{include:"#package_pattern"},{include:"#package_body_pattern"},{include:"#entity_pattern"},{include:"#architecture_pattern"}]},case_pattern:{patterns:[{begin:"(?x)\n\t\t\t\t\t\t# Beginning of line ...\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# Optional identifier ... $3 or invalid identifier $4\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t ([a-zA-Z][a-zA-Z0-9_]*)\n\t\t\t\t\t\t\t\t|(.+?)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\\s*:\\s*\n\t\t\t\t\t\t)?\n\n\t\t\t\t\t\t# The word case $5\n\t\t\t\t\t\t\\b((?i:case))\\b\n\t\t\t\t\t",beginCaptures:{"3":{name:"entity.name.tag.case.begin.vhdl"},"4":{name:"invalid.illegal.invalid.identifier.vhdl"},"5":{name:"keyword.language.vhdl"}},end:"(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end))\\s*\n\n\t\t\t\t\t\t# The word case $4 or invalid word $5\n\t\t\t\t\t\t(\\s+(((?i:case))|(.*?)))\n\n\t\t\t\t\t\t# Optional identifier from before $8 or illegal $9\n\t\t\t\t\t\t(\\s+((\\2)|(.*?)))?\n\n\t\t\t\t\t\t# Ending with a semicolon\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t",endCaptures:{"1":{name:"keyword.language.vhdl"},"4":{name:"keyword.language.vhdl"},"5":{name:"invalid.illegal.case.required.vhdl"},"8":{name:"entity.name.tag.case.end.vhdl"},"9":{name:"invalid.illegal.mismatched.identifier.vhdl"}},patterns:[{include:"#control_patterns"},{include:"#cleanup"}]}]},cleanup:{patterns:[{include:"#comments"},{include:"#constants_numeric"},{include:"#strings"},{include:"#attribute_list"},{include:"#syntax_highlighting"}]},comments:{patterns:[{match:"--.*$\\n?",name:"comment.line.double-dash.vhdl"}]},component_instantiation_pattern:{patterns:[{begin:"(?x)\n\t\t\t\t\t\t# From the beginning of the line ...\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# Match a valid identifier $1\n\t\t\t\t\t\t([a-zA-Z][a-zA-Z0-9_]*)\n\n\t\t\t\t\t\t# Colon! $2\n\t\t\t\t\t\t\\s*(:)\\s*\n\n\t\t\t\t\t\t# Another valid identifier $3\n\t\t\t\t\t\t([a-zA-Z][a-zA-Z0-9_]*)\\b\n\n\t\t\t\t\t\t# Make sure we are just the other word, or the beginning of\n\t\t\t\t\t\t# a generic or port mapping\n\t\t\t\t\t\t(?=\\s*($|generic|port))\n\t\t\t\t\t",beginCaptures:{"1":{name:"entity.name.section.component_instantiation.vhdl"},"2":{name:"punctuation.vhdl"},"3":{name:"entity.name.tag.component.reference.vhdl"}},end:";",endCaptures:{"0":{name:"punctuation.vhdl"}},patterns:[{include:"#parenthetical_list"},{include:"#cleanup"}]}]},component_pattern:{patterns:[{begin:"(?x)\n\t\t\t\t\t\t# From the beginning of the line ...\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# The word component $1\n\t\t\t\t\t\t\\b((?i:component))\\s+\n\n\t\t\t\t\t\t# A valid identifier $3 or invalid identifier $4\n\t\t\t\t\t\t(([a-zA-Z_][a-zA-Z0-9_]*)\\s*|(.+?))(?=\\b(?i:is|port)\\b|$|--)\n\n\t\t\t\t\t\t# Optional word is $6\n\t\t\t\t\t\t(\\b((?i:is\\b)))?\n\t\t\t\t\t",beginCaptures:{"1":{name:"keyword.language.vhdl"},"3":{name:"entity.name.type.component.begin.vhdl"},"4":{name:"invalid.illegal.invalid.identifier.vhdl"},"6":{name:"keyword.language.vhdl"}},end:"(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end))\\s+\n\n\t\t\t\t\t\t# The word component $3 or illegal word $4\n\t\t\t\t\t\t(((?i:component\\b))|(.+?))(?=\\s*|;)\n\t\t\t\t\t\t\n\t\t\t\t\t\t# Optional identifier $7 or illegal mismatched $8\n\t\t\t\t\t\t(\\s+((\\3)|(.+?)))?(?=\\s*;)\n\t\t\t\t\t",endCaptures:{"1":{name:"keyword.language.vhdl"},"3":{name:"keyword.language.vhdl"},"4":{name:"invalid.illegal.component.keyword.required.vhdl"},"7":{name:"entity.name.type.component.end.vhdl"},"8":{name:"invalid.illegal.mismatched.identifier.vhdl"}},patterns:[{include:"#generic_list_pattern"},{include:"#port_list_pattern"},{include:"#comments"}]}]},constants_numeric:{patterns:[{match:"\\b([+\\-]?[\\d_]+\\.[\\d_]+([eE][+\\-]?[\\d_]+)?)\\b",name:"constant.numeric.floating_point.vhdl"},{match:"\\b\\d+#[\\h_]+#\\b",name:"constant.numeric.base_pound_number_pound.vhdl"},{match:"\\b[\\d_]+([eE][\\d_]+)?\\b",name:"constant.numeric.integer.vhdl"},{match:"[xX]\"[0-9a-fA-F_uUxXzZwWlLhH\\-]+\"",name:"constant.numeric.quoted.double.string.hex.vhdl"},{match:"[oO]\"[0-7_uUxXzZwWlLhH\\-]+\"",name:"constant.numeric.quoted.double.string.octal.vhdl"},{match:"[bB]?\"[01_uUxXzZwWlLhH\\-]+\"",name:"constant.numeric.quoted.double.string.binary.vhdl"},{captures:{"1":{name:"invalid.illegal.quoted.double.string.vhdl"}},match:"([bBoOxX]\".+?\")",name:"constant.numeric.quoted.double.string.illegal.vhdl"},{match:"'[01uUxXzZwWlLhH\\-]'",name:"constant.numeric.quoted.single.std_logic"}]},control_patterns:{patterns:[{include:"#case_pattern"},{include:"#if_pattern"},{include:"#for_pattern"},{include:"#while_pattern"}]},entity_instantiation_pattern:{patterns:[{begin:"(?x)\n\t\t\t\t\t\t# From the beginning of the line\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# Component identifier or illegal identifier $1\n\t\t\t\t\t\t([a-zA-Z][a-zA-Z0-9_]*)\n\n\t\t\t\t\t\t# Colon! $2\n\t\t\t\t\t\t\\s*(:)\\s*\n\n\t\t\t\t\t\t# Optional word use $4\n\t\t\t\t\t\t(((?i:use))\\s+)?\n\n\t\t\t\t\t\t# Required word entity $5\n\t\t\t\t\t\t((?i:entity))\\s+\n\n\t\t\t\t\t\t# Optional library unit identifier $8 for invalid identifier $9 followed by a dot $10\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t(([a-zA-Z][a-zA-Z0-9_]*)|(.+?))\n\t\t\t\t\t\t\t(\\.)\n\t\t\t\t\t\t)?\n\n\t\t\t\t\t\t# Entity name reference $12 or illegal identifier $13\n\t\t\t\t\t\t(([a-zA-Z][a-zA-Z0-9_]*)|(.+?))\n\n\t\t\t\t\t\t# Check to see if we are being followed by either open paren, end of line, or port or generic words\n\t\t\t\t\t\t(?=\\s*(\\(|$|(?i:port|generic)))\n\n\t\t\t\t\t\t# Optional architecture elaboration\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# Open paren $16\n\t\t\t\t\t\t\t\\s*(\\()\\s*\n\n\t\t\t\t\t\t\t# Arch identifier $18 or invalid identifier $19\n\t\t\t\t\t\t\t(([a-zA-Z][a-zA-Z0-9_]*)|(.+?))(?=\\s*\\))\n\n\t\t\t\t\t\t\t# Close paren $21\n\t\t\t\t\t\t\t\\s*(\\))\n\t\t\t\t\t\t)?\n\t\t\t\t\t",beginCaptures:{"1":{name:"entity.name.section.entity_instantiation.vhdl"},"2":{name:"punctuation.vhdl"},"4":{name:"keyword.language.vhdl"},"5":{name:"keyword.language.vhdl"},"8":{name:"entity.name.tag.library.reference.vhdl"},"9":{name:"invalid.illegal.invalid.identifier.vhdl"},"10":{name:"punctuation.vhdl"},"12":{name:"entity.name.tag.entity.reference.vhdl"},"13":{name:"invalid.illegal.invalid.identifier.vhdl"},"16":{name:"punctuation.vhdl"},"18":{name:"entity.name.tag.architecture.reference.vhdl"},"19":{name:"invalid.illegal.invalid.identifier.vhdl"},"21":{name:"punctuation.vhdl"}},end:";",endCaptures:{"0":{name:"punctuation.vhdl"}},patterns:[{include:"#parenthetical_list"},{include:"#cleanup"}]}]},entity_pattern:{patterns:[{begin:"(?x)\n\t\t\t\t\t\t# From the beginning of the line ...\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# The word entity $1\n\t\t\t\t\t\t((?i:entity\\b))\\s+\n\n\t\t\t\t\t\t# The identifier $3 or an invalid identifier $4\n\t\t\t\t\t\t(([a-zA-Z][a-zA-Z\\d_]*)|(.+?))(?=\\s)\n\t\t\t\t\t",beginCaptures:{"1":{name:"keyword.language.vhdl"},"3":{name:"entity.name.type.entity.begin.vhdl"},"4":{name:"invalid.illegal.invalid.identifier.vhdl"}},end:"(?x)\n\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end\\b))\n\n\t\t\t\t\t\t# Optional word entity $3\n\t\t\t\t\t\t(\\s+((?i:entity)))?\n\n\t\t\t\t\t\t# Optional identifier match $6 or indentifier mismatch $7\n\t\t\t\t\t\t(\\s+((\\3)|(.+?)))?\n\t\t\t\t\t\t\n\t\t\t\t\t\t# Make sure there is a semicolon following\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t",endCaptures:{"1":{name:"keyword.language.vhdl"},"3":{name:"keyword.language.vhdl"},"6":{name:"entity.name.type.entity.end.vhdl"},"7":{name:"invalid.illegal.mismatched.identifier.vhdl"}},patterns:[{include:"#comments"},{include:"#generic_list_pattern"},{include:"#port_list_pattern"},{include:"#cleanup"}]}]},for_pattern:{patterns:[{begin:"(?x)\n\t\t\t\t\t\t# From the beginning of the line\n\t\t\t\t\t\t^\\s*\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# Check for an identifier $2\n\t\t\t\t\t\t\t([a-zA-Z][a-zA-Z0-9_]*)\n\n\t\t\t\t\t\t\t# Followed by a colon $3\n\t\t\t\t\t\t\t\\s*(:)\\s*\n\t\t\t\t\t\t)?\n\n\t\t\t\t\t\t# Make sure the next word is not wait\n\t\t\t\t\t\t(?!(?i:wait\\s*))\n\n\t\t\t\t\t\t# The for keyword $4\n\t\t\t\t\t\t\\b((?i:for))\\b\n\n\t\t\t\t\t\t# Make sure the next word is not all\n\t\t\t\t\t\t(?!\\s*(?i:all))\n\n\t\t\t\t\t",beginCaptures:{"2":{name:"entity.name.tag.for.generate.begin.vhdl"},"3":{name:"punctuation.vhdl"},"4":{name:"keyword.language.vhdl"}},end:"(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end))\\s+\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# Followed by generate or loop $3\n\t\t\t\t\t\t\t ((?i:generate|loop))\n\n\t\t\t\t\t\t\t# But it really is required $4\n\t\t\t\t\t\t\t|(\\S+)\n\t\t\t\t\t\t)\\b\n\n\t\t\t\t\t\t# The matching identifier $7 or an invalid identifier $8\n\t\t\t\t\t\t(\\s+((\\2)|(.+?)))?\n\n\t\t\t\t\t\t# Only space and a semicolon left\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t",endCaptures:{"1":{name:"keyword.language.vhdl"},"3":{name:"keyword.language.vhdl"},"4":{name:"invalid.illegal.loop.or.generate.required.vhdl"},"7":{name:"entity.name.tag.for.generate.end.vhdl"},"8":{name:"invalid.illegal.mismatched.identifier.vhdl"}},patterns:[{include:"#control_patterns"},{include:"#entity_instantiation_pattern"},{include:"#component_pattern"},{include:"#component_instantiation_pattern"},{include:"#process_pattern"},{include:"#cleanup"}]}]},function_definition_pattern:{patterns:[{begin:"(?x)\n\t\t\t\t\t\t# From the beginning of the line\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# The word function $1\n\t\t\t\t\t\t((?i:impure)?\\s*(?i:function))\\s+\n\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# A valid normal identifier $3\n\t\t\t\t\t\t\t ([a-zA-Z][a-zA-Z\\d_]*)\n\t\t\t\t\t\t\t# A valid string quoted identifier $4\n\t\t\t\t\t\t\t|(\"\\S+\")\n\t\t\t\t\t\t\t# A valid backslash escaped identifier $5\n\t\t\t\t\t\t\t|(\\\\.+\\\\)\n\t\t\t\t\t\t\t# An invalid identifier $5\n\t\t\t\t\t\t\t|(.+?)\n\t\t\t\t\t\t)\n\n\t\t\t\t\t\t# Check to make sure we have a list or we return\n\t\t\t\t\t\t(?=\\s*\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t \\(\n\t\t\t\t\t\t\t\t|(?i:\\breturn\\b)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t",beginCaptures:{"1":{name:"keyword.language.vhdl"},"3":{name:"entity.name.function.function.begin.vhdl"},"4":{name:"entity.name.function.function.begin.vhdl"},"5":{name:"entity.name.function.function.begin.vhdl"},"6":{name:"invalid.illegal.invalid.identifier.vhdl"}},end:"(?x)\n\t\t\t\t\t\t# From the beginning of the line\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t((?i:end))\n\n\t\t\t\t\t\t# Optional word function $3\n\t\t\t\t\t\t(\\s+((?i:function)))?\n\n\t\t\t\t\t\t# Optional matched identifier $6 or mismatched identifier $7\n\t\t\t\t\t\t(\\s+((\\3|\\4|\\5)|(.+?)))?\n\n\t\t\t\t\t\t# Ending with whitespace and semicolon\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t",endCaptures:{"1":{name:"keyword.language.vhdl"},"3":{name:"keyword.language.vhdl"},"6":{name:"entity.name.function.function.end.vhdl"},"7":{name:"invalid.illegal.mismatched.identifier.vhdl"}},patterns:[{include:"#control_patterns"},{include:"#parenthetical_list"},{include:"#type_pattern"},{include:"#record_pattern"},{include:"#cleanup"}]}]},function_prototype_pattern:{patterns:[{begin:"(?x)\n\t\t\t\t\t\t# From the beginning of the line\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# The word function $1\n\t\t\t\t\t\t((?i:impure)?\\s*(?i:function))\\s+\n\t\t\t\t\t\t\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# A valid normal identifier $3\n\t\t\t\t\t\t\t ([a-zA-Z][a-zA-Z\\d_]*)\n\t\t\t\t\t\t\t# A valid quoted identifier $4\n\t\t\t\t\t\t\t|(\"\\S+\")\n\t\t\t\t\t\t\t# A valid backslash escaped identifier $5\n\t\t\t\t\t\t\t|(\\\\.+\\\\)\n\t\t\t\t\t\t\t# An invalid identifier $6\n\t\t\t\t\t\t\t|(.+?)\n\t\t\t\t\t\t)\n\n\t\t\t\t\t\t# Check to make sure we have a list or we return\n\t\t\t\t\t\t(?=\\s*\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t \\(\n\t\t\t\t\t\t\t\t|(?i:\\breturn\\b)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t",beginCaptures:{"1":{name:"keyword.language.vhdl"},"3":{name:"entity.name.function.function.prototype.vhdl"},"4":{name:"entity.name.function.function.prototype.vhdl"},"5":{name:"entity.name.function.function.prototype.vhdl"},"6":{name:"invalid.illegal.function.name.vhdl"}},end:"(?<=;)",patterns:[{begin:"\\b(?i:return)(?=\\s+[^;]+\\s*;)",beginCaptures:{"0":{name:"keyword.language.vhdl"}},end:"\\;",endCaptures:{"0":{name:"punctuation.terminator.function_prototype.vhdl"}},patterns:[{include:"#parenthetical_list"},{include:"#cleanup"}]},{include:"#parenthetical_list"},{include:"#cleanup"}]}]},generic_list_pattern:{patterns:[{begin:"\\b(?i:generic)\\b",beginCaptures:{"0":{name:"keyword.language.vhdl"}},end:";",endCaptures:{"0":{name:"punctuation.vhdl"}},patterns:[{include:"#parenthetical_list"}]}]},if_pattern:{patterns:[{begin:"(?x)\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# Optional identifier $2\n\t\t\t\t\t\t\t([a-zA-Z][a-zA-Z0-9_]*)\n\n\t\t\t\t\t\t\t# Followed by a colon $3\n\t\t\t\t\t\t\t\\s*(:)\\s*\n\t\t\t\t\t\t)?\n\n\t\t\t\t\t\t# Keyword if $4\n\t\t\t\t\t\t\\b((?i:if))\\b\n\t\t\t\t\t",beginCaptures:{"2":{name:"entity.name.tag.if.generate.begin.vhdl"},"3":{name:"punctuation.vhdl"},"4":{name:"keyword.language.vhdl"}},end:"(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end))\\s+\n\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t# Optional generate or if keyword $4\n\t\t\t\t\t\t\t\t ((?i:generate|if))\n\n\t\t\t\t\t\t\t\t# Keyword if or generate required $5\n\t\t\t\t\t\t\t\t|(\\S+)\n\t\t\t\t\t\t\t)\\b\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\\s+\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t# Optional matching identifier $8\n\t\t\t\t\t\t\t\t\t (\\2)\n\n\t\t\t\t\t\t\t\t\t# Mismatched identifier $9\n\t\t\t\t\t\t\t\t\t|(.+?)\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t)?\n\n\t\t\t\t\t\t# Followed by a semicolon\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t",endCaptures:{"1":{name:"keyword.language.vhdl"},"4":{name:"keyword.language.vhdl"},"5":{name:"invalid.illegal.if.or.generate.required.vhdl"},"8":{name:"entity.name.tag.if.generate.end.vhdl"},"9":{name:"invalid.illegal.mismatched.identifier.vhdl"}},patterns:[{include:"#control_patterns"},{include:"#process_pattern"},{include:"#entity_instantiation_pattern"},{include:"#component_pattern"},{include:"#component_instantiation_pattern"},{include:"#cleanup"}]}]},keywords:{patterns:[{match:"'(?i:active|ascending|base|delayed|driving|event|high|image|instance|instance_name|last|last_value|left|leftof|length|low|path|path_name|pos|pred|quiet|range|reverse|reverse_range|right|rightof|simple|simple_name|stable|succ|transaction|val|value)\\b",name:"keyword.attributes.vhdl"},{match:"\\b(?i:abs|access|after|alias|all|and|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|context|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|mod|nand|new|next|nor|not|null|of|on|open|or|others|out|package|port|postponed|procedure|process|protected|pure|range|record|register|reject|rem|report|return|rol|ror|select|severity|shared|signal|sla|sll|sra|srl|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with|xnor|xor)\\b",name:"keyword.language.vhdl"},{match:"\\b(?i:std|ieee|work|standard|textio|std_logic_1164|std_logic_arith|std_logic_misc|std_logic_signed|std_logic_textio|std_logic_unsigned|numeric_bit|numeric_std|math_complex|math_real|vital_primitives|vital_timing)\\b",name:"standard.library.language.vhdl"},{match:"(\\+|\\-|<=|=|=>|:=|>=|>|<|/|\\||&|(\\*{1,2}))",name:"keyword.operator.vhdl"}]},package_body_pattern:{patterns:[{begin:"(?x)\n\t\t\t\t\t\t# The word package $1\n\t\t\t\t\t\t\\b((?i:package))\\s+\n\n\t\t\t\t\t\t# ... but we want to be a package body $2\n\t\t\t\t\t\t((?i:body))\\s+\n\n\t\t\t\t\t\t# The valid identifier $4 or the invalid one $5\n\t\t\t\t\t\t(([a-zA-Z][a-zA-Z\\d_]*)|(.+?))\\s+\n\n\t\t\t\t\t\t# ... and we end it with an is $6\n\t\t\t\t\t\t((?i:is))\\b\n\t\t\t\t\t",beginCaptures:{"1":{name:"keyword.language.vhdl"},"2":{name:"keyword.language.vhdl"},"4":{name:"entity.name.section.package_body.begin.vhdl"},"5":{name:"invalid.illegal.invalid.identifier.vhdl"},"6":{name:"keyword.language.vhdl"}},end:"(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end\\b))\n\n\t\t\t\t\t\t# Optional word package $3 body $4\n\t\t\t\t\t\t(\\s+((?i:package))\\s+((?i:body)))?\n\n\t\t\t\t\t\t# Optional identifier $7 or mismatched identifier $8\n\t\t\t\t\t\t(\\s+((\\4)|(.+?)))?(?=\\s*;)",endCaptures:{"1":{name:"keyword.language.vhdl"},"3":{name:"keyword.language.vhdl"},"4":{name:"keyword.language.vhdl"},"7":{name:"entity.name.section.package_body.end.vhdl"},"8":{name:"invalid.illegal.mismatched.identifier.vhdl"}},patterns:[{include:"#protected_body_pattern"},{include:"#function_definition_pattern"},{include:"#procedure_definition_pattern"},{include:"#type_pattern"},{include:"#subtype_pattern"},{include:"#record_pattern"},{include:"#cleanup"}]}]},package_pattern:{patterns:[{begin:"(?x)\n\t\t\t\t\t\t# The word package $1\n\t\t\t\t\t\t\\b((?i:package))\\s+\n\n\t\t\t\t\t\t# ... but we do not want to be a package body\n\t\t\t\t\t\t(?!(?i:body))\n\n\t\t\t\t\t\t# The valid identifier $3 or the invalid one $4\n\t\t\t\t\t\t(([a-zA-Z][a-zA-Z\\d_]*)|(.+?))\\s+\n\n\t\t\t\t\t\t# ... and we end it with an is $5\n\t\t\t\t\t\t((?i:is))\\b\n\t\t\t\t\t",beginCaptures:{"1":{name:"keyword.language.vhdl"},"3":{name:"entity.name.section.package.begin.vhdl"},"4":{name:"invalid.illegal.invalid.identifier.vhdl"},"5":{name:"keyword.language.vhdl"}},end:"(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end\\b))\n\n\t\t\t\t\t\t# Optional word package $3\n\t\t\t\t\t\t(\\s+((?i:package)))?\n\n\t\t\t\t\t\t# Optional identifier $6 or mismatched identifier $7\n\t\t\t\t\t\t(\\s+((\\2)|(.+?)))?(?=\\s*;)",endCaptures:{"1":{name:"keyword.language.vhdl"},"3":{name:"keyword.language.vhdl"},"6":{name:"entity.name.section.package.end.vhdl"},"7":{name:"invalid.illegal.mismatched.identifier.vhdl"}},patterns:[{include:"#protected_pattern"},{include:"#function_prototype_pattern"},{include:"#procedure_prototype_pattern"},{include:"#type_pattern"},{include:"#subtype_pattern"},{include:"#record_pattern"},{include:"#component_pattern"},{include:"#cleanup"}]}]},protected_body_pattern:{patterns:[{begin:"(?x)\n\t\t\t\t\t\t\\b((?i:type))\\s+\n\n\t\t\t\t\t\t# The valid identifier $2 or the invalid one $3\n\t\t\t\t\t\t(([a-zA-Z][a-zA-Z\\d_]*)|(.+?))\\s+\n\n\t\t\t\t\t\t\\b((?i:is\\s+protected\\s+body))\\s+\n\t\t\t\t\t",beginCaptures:{"1":{name:"keyword.language.vhdl"},"3":{name:"entity.name.section.protected_body.begin.vhdl"},"4":{name:"invalid.illegal.invalid.identifier.vhdl"},"5":{name:"keyword.language.vhdl"}},end:"(?x)\n\t\t\t\t\t\t\\b((?i:end\\s+protected\\s+body))\n\n\t\t\t\t\t\t# Optional identifier\n\t\t\t\t\t\t(\\s+((\\3)|(.+?)))?\n\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t\t",endCaptures:{"1":{name:"keyword.language.vhdl"},"4":{name:"entity.name.section.protected_body.end.vhdl"},"5":{name:"invalid.illegal.mismatched.identifier.vhdl"}},patterns:[{include:"#function_definition_pattern"},{include:"#procedure_definition_pattern"},{include:"#type_pattern"},{include:"#subtype_pattern"},{include:"#record_pattern"},{include:"#cleanup"}]}]},protected_pattern:{patterns:[{begin:"(?x)\n\t\t\t\t\t\t\\b((?i:type))\\s+\n\n\t\t\t\t\t\t# The valid identifier $2 or the invalid one $3\n\t\t\t\t\t\t(([a-zA-Z][a-zA-Z\\d_]*)|(.+?))\\s+\n\n\t\t\t\t\t\t\\b((?i:is\\s+protected))\\s+\n\n\t\t\t\t\t\t# Not body\n\t\t\t\t\t\t(?!(?i:body))\n\t\t\t\t\t",beginCaptures:{"1":{name:"keyword.language.vhdls"},"3":{name:"entity.name.section.protected.begin.vhdl"},"4":{name:"invalid.illegal.invalid.identifier.vhdl"},"5":{name:"keyword.language.vhdl"}},end:"(?x)\n\t\t\t\t\t\t\\b((?i:end\\s+protected))\n\n\t\t\t\t\t\t# Optional identifier\n\t\t\t\t\t\t(\\s+((\\3)|(.+?)))?\n\n\t\t\t\t\t\t# Not body\n\t\t\t\t\t\t(?!(?i:body))\n\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t",endCaptures:{"1":{name:"keyword.language.vhdl"},"4":{name:"entity.name.section.protected.end.vhdl"},"5":{name:"invalid.illegal.mismatched.identifier.vhdl"}},patterns:[{include:"#function_prototype_pattern"},{include:"#procedure_prototype_pattern"},{include:"#type_pattern"},{include:"#subtype_pattern"},{include:"#record_pattern"},{include:"#component_pattern"},{include:"#cleanup"}]}]},parenthetical_list:{patterns:[{begin:"\\(",beginCaptures:{"0":{name:"punctuation.vhdl"}},end:"(?<=\\))",patterns:[{begin:"(?=['\"a-zA-Z0-9])",end:"(;|\\)|,)",endCaptures:{"0":{name:"punctuation.vhdl"}},name:"source.vhdl",patterns:[{include:"#comments"},{include:"#parenthetical_pair"},{include:"#cleanup"}]},{match:"\\)",name:"invalid.illegal.unexpected.parenthesis.vhdl"},{include:"#cleanup"}]}]},parenthetical_pair:{patterns:[{begin:"\\(",beginCaptures:{"0":{name:"punctuation.vhdl"}},end:"\\)",endCaptures:{"0":{name:"punctuation.vhdl"}},patterns:[{include:"#parenthetical_pair"},{include:"#cleanup"}]}]},port_list_pattern:{patterns:[{begin:"\\b(?i:port)\\b",beginCaptures:{"0":{name:"keyword.language.vhdl"}},end:"(?<=\\))\\s*;",endCaptures:{"0":{name:"punctuation.vhdl"}},patterns:[{include:"#parenthetical_list"}]}]},procedure_definition_pattern:{patterns:[{begin:"(?x)\n\t\t\t\t\t\t# From the beginning of the line\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# The word function $1\n\t\t\t\t\t\t((?i:procedure))\\s+\n\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# A valid normal identifier $3\n\t\t\t\t\t\t\t ([a-zA-Z][a-zA-Z\\d_]*)\n\t\t\t\t\t\t\t# A valid quoted identifier $4\n\t\t\t\t\t\t\t|(\"\\S+\")\n\t\t\t\t\t\t\t# An invalid identifier $5\n\t\t\t\t\t\t\t|(.+?)\n\t\t\t\t\t\t)\n\n\t\t\t\t\t\t# Check to make sure we have a list is\n\t\t\t\t\t\t(?=\\s*(\\(|(?i:is)))\n\t\t\t\t\t",beginCaptures:{"1":{name:"keyword.language.vhdl"},"3":{name:"entity.name.function.procedure.begin.vhdl"},"4":{name:"entity.name.function.procedure.begin.vhdl"},"5":{name:"invalid.illegal.invalid.identifier.vhdl"}},end:"(?x)\n\t\t\t\t\t\t# From the beginning of the line\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t((?i:end))\n\n\t\t\t\t\t\t# Optional word function $3\n\t\t\t\t\t\t(\\s+((?i:procedure)))?\n\n\t\t\t\t\t\t# Optional matched identifier $6 or mismatched identifier $7\n\t\t\t\t\t\t(\\s+((\\3|\\4)|(.+?)))?\n\n\t\t\t\t\t\t# Ending with whitespace and semicolon\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t",endCaptures:{"1":{name:"keyword.language.vhdl"},"3":{name:"keyword.language.vhdl"},"6":{name:"entity.name.function.procedure.end.vhdl"},"7":{name:"invalid.illegal.mismatched.identifier.vhdl"}},patterns:[{include:"#parenthetical_list"},{include:"#control_patterns"},{include:"#type_pattern"},{include:"#record_pattern"},{include:"#cleanup"}]}]},procedure_prototype_pattern:{patterns:[{begin:"(?x)\n\t\t\t\t\t\t\\b((?i:procedure))\\s+\n\t\t\t\t\t\t(([a-zA-Z][a-zA-Z0-9_]*)|(.+?))\n\t\t\t\t\t\t(?=\\s*(\\(|;))\n\t\t\t\t\t",beginCaptures:{"1":{name:"keyword.language.vhdl"},"3":{name:"entity.name.function.procedure.begin.vhdl"},"4":{name:"invalid.illegal.invalid.identifier.vhdl"}},end:";",endCaptures:{"0":{name:"punctual.vhdl"}},patterns:[{include:"#parenthetical_list"}]}]},process_pattern:{patterns:[{begin:"(?x)\n\t\t\t\t\t\t# From the beginning of the line\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# Optional identifier $2\n\t\t\t\t\t\t\t([a-zA-Z][a-zA-Z0-9_]*)\n\n\t\t\t\t\t\t\t# Colon $3\n\t\t\t\t\t\t\t\\s*(:)\\s*\n\t\t\t\t\t\t)?\n\n\t\t\t\t\t\t# The word process #4\n\t\t\t\t\t\t((?i:process\\b))\n\t\t\t\t\t",beginCaptures:{"2":{name:"entity.name.section.process.begin.vhdl"},"3":{name:"punctuation.vhdl"},"4":{name:"keyword.language.vhdl"}},end:"(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t((?i:end))\n\n\t\t\t\t\t\t# Optional word process $3\n\t\t\t\t\t\t(\\s+((?i:process)))\n\n\t\t\t\t\t\t# Optional identifier $6 or invalid identifier $7\n\t\t\t\t\t\t(\\s+((\\2)|(.+?)))?\n\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t",endCaptures:{"1":{name:"keyword.language.vhdl"},"3":{name:"keyword.language.vhdl"},"6":{name:"entity.name.section.process.end.vhdl"},"7":{name:"invalid.illegal.invalid.identifier.vhdl"}},patterns:[{include:"#control_patterns"},{include:"#cleanup"}]}]},punctuation:{patterns:[{match:"(\\.|,|:|;|\\(|\\))",name:"punctuation.vhdl"}]},record_pattern:{patterns:[{begin:"\\b(?i:record)\\b",beginCaptures:{"0":{name:"keyword.language.vhdl"}},end:"(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end))\n\n\t\t\t\t\t\t# The word record $2\n\t\t\t\t\t\t\\s+((?i:record))\n\n\t\t\t\t\t\t# Optional identifier $5 or invalid identifier $6\n\t\t\t\t\t\t(\\s+(([a-zA-Z][a-zA-Z\\d_]*)|(.*?)))?\n\n\t\t\t\t\t\t# Only whitespace and semicolons can be left\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t",endCaptures:{"1":{name:"keyword.language.vhdl"},"2":{name:"keyword.language.vhdl"},"5":{name:"entity.name.type.record.vhdl"},"6":{name:"invalid.illegal.invalid.identifier.vhdl"}},patterns:[{include:"#cleanup"}]},{include:"#cleanup"}]},strings:{patterns:[{match:"'.'",name:"string.quoted.single.vhdl"},{begin:"\"",end:"\"",name:"string.quoted.double.vhdl",patterns:[{match:"\\\\.",name:"constant.character.escape.vhdl"}]},{begin:"\\\\",end:"\\\\",name:"string.other.backslash.vhdl"}]},subtype_pattern:{patterns:[{begin:"(?x)\n\t\t\t\t\t\t# The word subtype $1\n\t\t\t\t\t\t\\b((?i:subtype))\\s+\n\n\t\t\t\t\t\t# Valid identifier $3 or invalid identifier $4\n\t\t\t\t\t\t(([a-zA-Z][a-zA-Z0-9_]*)|(.+?))\\s+\n\n\t\t\t\t\t\t# The word is $5\n\t\t\t\t\t\t((?i:is))\\b\n\t\t\t\t\t",beginCaptures:{"1":{name:"keyword.language.vhdl"},"3":{name:"entity.name.type.subtype.vhdl"},"4":{name:"invalid.illegal.invalid.identifier.vhdl"},"5":{name:"keyword.language.vhdl"}},end:";",endCaptures:{"0":{name:"punctuation.vhdl"}},patterns:[{include:"#cleanup"}]}]},support_constants:{patterns:[{match:"\\b(?i:math_1_over_e|math_1_over_pi|math_1_over_sqrt_2|math_2_pi|math_3_pi_over_2|math_deg_to_rad|math_e|math_log10_of_e|math_log2_of_e|math_log_of_10|math_log_of_2|math_pi|math_pi_over_2|math_pi_over_3|math_pi_over_4|math_rad_to_deg|math_sqrt_2|math_sqrt_pi)\\b",name:"support.constant.ieee.math_real.vhdl"},{match:"\\b(?i:math_cbase_1|math_cbase_j|math_czero|positive_real|principal_value)\\b",name:"support.constant.ieee.math_complex.vhdl"},{match:"\\b(?i:true|false)\\b",name:"support.constant.std.standard.vhdl"}]},support_functions:{patterns:[{match:"\\b(?i:finish|stop|resolution_limit)\\b",name:"support.function.std.env.vhdl"},{match:"\\b(?i:readline|read|writeline|write|endfile|endline)\\b",name:"support.function.std.textio.vhdl"},{match:"\\b(?i:rising_edge|falling_edge|to_bit|to_bitvector|to_stdulogic|to_stdlogicvector|to_stdulogicvector|is_x)\\b",name:"support.function.ieee.std_logic_1164.vhdl"},{match:"\\b(?i:shift_left|shift_right|rotate_left|rotate_right|resize|to_integer|to_unsigned|to_signed)\\b",name:"support.function.ieee.numeric_std.vhdl"},{match:"\\b(?i:arccos(h?)|arcsin(h?)|arctan|arctanh|cbrt|ceil|cos|cosh|exp|floor|log10|log2|log|realmax|realmin|round|sign|sin|sinh|sqrt|tan|tanh|trunc)\\b",name:"support.function.ieee.math_real.vhdl"},{match:"\\b(?i:arg|cmplx|complex_to_polar|conj|get_principal_value|polar_to_complex)\\b",name:"support.function.ieee.math_complex.vhdl"}]},support_types:{patterns:[{match:"\\b(?i:boolean|bit|character|severity_level|integer|real|time|delay_length|now|natural|positive|string|bit_vector|file_open_kind|file_open_status|fs|ps|ns|us|ms|sec|min|hr|severity_level|note|warning|error|failure)\\b",name:"support.type.std.standard.vhdl"},{match:"\\b(?i:line|text|side|width|input|output)\\b",name:"support.type.std.textio.vhdl"},{match:"\\b(?i:std_logic|std_ulogic|std_logic_vector|std_ulogic_vector)\\b",name:"support.type.ieee.std_logic_1164.vhdl"},{match:"\\b(?i:signed|unsigned)\\b",name:"support.type.ieee.numeric_std.vhdl"},{match:"\\b(?i:complex|complex_polar)\\b",name:"support.type.ieee.math_complex.vhdl"}]},syntax_highlighting:{patterns:[{include:"#keywords"},{include:"#punctuation"},{include:"#support_constants"},{include:"#support_types"},{include:"#support_functions"}]},type_pattern:{patterns:[{begin:"(?x)\n\t\t\t\t\t\t# The word type $1\n\t\t\t\t\t\t\\b((?i:type))\\s+\n\n\t\t\t\t\t\t# Valid identifier $3 or invalid identifier $4\n\t\t\t\t\t\t(([a-zA-Z][a-zA-Z0-9_]*)|(.+?))\n\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# A semicolon is coming up if we are incomplete\n\t\t\t\t\t\t\t (?=\\s*;)\n\n\t\t\t\t\t\t\t# Or the word is comes up $7\n\t\t\t\t\t\t\t|(\\s+((?i:is)))\n\t\t\t\t\t\t)\\b\n\t\t\t\t\t",beginCaptures:{"1":{name:"keyword.language.vhdl"},"3":{name:"entity.name.type.type.vhdl"},"4":{name:"invalid.illegal.invalid.identifier.vhdl"},"7":{name:"keyword.language.vhdl"}},end:";",endCaptures:{"0":{name:"punctuation.vhdl"}},patterns:[{include:"#record_pattern"},{include:"#cleanup"}]}]},while_pattern:{patterns:[{begin:"(?x)\n\t\t\t\t\t\t# From the beginning of the line\n\t\t\t\t\t\t^\\s*\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# Check for an identifier $2\n\t\t\t\t\t\t\t([a-zA-Z][a-zA-Z0-9_]*)\n\n\t\t\t\t\t\t\t# Followed by a colon $3\n\t\t\t\t\t\t\t\\s*(:)\\s*\n\t\t\t\t\t\t)?\n\n\t\t\t\t\t\t# The for keyword $4\n\t\t\t\t\t\t\\b((?i:while))\\b\n\t\t\t\t\t",beginCaptures:{"2":{name:""},"3":{name:"punctuation.vhdl"},"4":{name:"keyword.language.vhdl"}},end:"(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end))\\s+\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# Followed by keyword loop $3\n\t\t\t\t\t\t\t ((?i:loop))\n\n\t\t\t\t\t\t\t# But it really is required $4\n\t\t\t\t\t\t\t|(\\S+)\n\t\t\t\t\t\t)\\b\n\n\t\t\t\t\t\t# The matching identifier $7 or an invalid identifier $8\n\t\t\t\t\t\t(\\s+((\\2)|(.+?)))?\n\n\t\t\t\t\t\t# Only space and a semicolon left\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t",endCaptures:{"1":{name:"keyword.language.vhdl"},"3":{name:"keyword.language.vhdl"},"4":{name:"invalid.illegal.loop.keyword.required.vhdl"},"7":{name:"entity.name.tag.while.loop.vhdl"},"8":{name:"invalid.illegal.mismatched.identifier"}},patterns:[{include:"#control_patterns"},{include:"#cleanup"}]}]}},scopeName:"source.vhdl"}; + +export { vhdl_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/viml.tmLanguage-7f1108c7.mjs b/docs/shiki/dist/languages/viml.tmLanguage-7f1108c7.mjs new file mode 100644 index 00000000..cf11f5c1 --- /dev/null +++ b/docs/shiki/dist/languages/viml.tmLanguage-7f1108c7.mjs @@ -0,0 +1,3 @@ +var viml_tmLanguage = {repository:{commands:{patterns:[{name:"storage.other.command.viml",match:"\\bcom(\\s|\\!)"},{name:"storage.other.command.viml",match:"\\bau(\\s|\\!)"},{name:"storage.other.command.bang.viml",match:"-bang"},{name:"storage.other.command.args.viml",match:"-nargs=[*+0-9]+"},{name:"storage.other.command.completion.viml",match:"-complete=\\S+"},{begin:"(aug(roup)?)",end:"(augroup\\sEND|$)",name:"support.function.augroup.viml"}]},comment:{patterns:[{begin:"((\\s+)?\"\"\")",end:"^(?!\")",name:"comment.block.documentation.viml"},{match:"^\"\\svim:.*",name:"comment.block.modeline.viml"},{name:"comment.line.viml",begin:"(\\s+\"\\s+)(?!\")",end:"$",patterns:[{match:"\\{\\{\\{\\d?$",name:"comment.line.foldmarker.viml"},{match:"\\}\\}\\}\\d?",name:"comment.line.foldmarker.viml"}]},{name:"comment.line.viml",begin:"^(\\s+)?\"",end:"$",patterns:[{match:"\\{\\{\\{\\d?$",name:"comment.line.foldmarker.viml"},{match:"\\}\\}\\}\\d?",name:"comment.line.foldmarker.viml"}]}]},entity:{patterns:[{name:"entity.name.function.viml",match:"(([absg]\\:)?[a-zA-Z0-9_#.]{2,})\\b(?=\\()"}]},map:{patterns:[{begin:"(\\<)",beginCaptures:{"1":{name:"punctuation.definition.map.viml"}},end:"(\\>|\\s)",endCaptures:{"1":{name:"punctuation.definition.map.viml"}},patterns:[{name:"constant.character.map.rhs.viml",match:"(?<=:\\s)(.+)"},{name:"constant.character.map.special.viml",match:"(?i:(bang|buffer|expr|nop|plug|sid|silent))"},{name:"constant.character.map.key.viml",match:"(?i:([adcms]-\\w))"},{name:"constant.character.map.key.fn.viml",match:"(?i:(F[0-9]+))"},{name:"constant.character.map.viml",match:"(?i:(bs|bar|cr|del|down|esc|left|right|space|tab|up|leader))"}]},{name:"storage.type.map.viml",match:"(\\b([cinostvx]?(nore)?map)\\b)"}]},operators:{patterns:[{name:"keyword.operator.viml",match:"([#+?!=~\\\\])"},{name:"keyword.operator.viml",match:" ([:\\-.]|[&|]{2})( |$)"},{name:"keyword.operator.viml",match:"([.]{3})"},{name:"keyword.operator.viml",match:"( [<>] )"},{name:"keyword.operator.viml",match:"(>=)"}]},option:{patterns:[{name:"support.type.option.viml",match:"&?\\b(al|aleph|anti|antialias|arab|arabic|arshape|arabicshape|ari|allowrevins|akm|altkeymap|ambw|ambiwidth|acd|autochdir|ai|autoindent|ar|autoread|aw|autowrite|awa|autowriteall|bg|background|bs|backspace|bk|backup|bkc|backupcopy|bdir|backupdir|bex|backupext|bsk|backupskip|bdlay|balloondelay|beval|ballooneval|bevalterm|balloonevalterm|bexpr|balloonexpr|bo|belloff|bin|binary|bomb|brk|breakat|bri|breakindent|briopt|breakindentopt|bsdir|browsedir|bh|bufhidden|bl|buflisted|bt|buftype|cmp|casemap|cd|cdpath|cedit|ccv|charconvert|cin|cindent|cink|cinkeys|cino|cinoptions|cinw|cinwords|cb|clipboard|ch|cmdheight|cwh|cmdwinheight|cc|colorcolumn|co|columns|com|comments|cms|commentstring|cp|compatible|cpt|complete|cocu|concealcursor|cole|conceallevel|cfu|completefunc|cot|completeopt|cf|confirm|ci|copyindent|cpo|cpoptions|cm|cryptmethod|cspc|cscopepathcomp|csprg|cscopeprg|csqf|cscopequickfix|csre|cscoperelative|cst|cscopetag|csto|cscopetagorder|csverb|cscopeverbose|crb|cursorbind|cuc|cursorcolumn|cul|cursorline|debug|def|define|deco|delcombine|dict|dictionary|diff|dex|diffexpr|dip|diffopt|dg|digraph|dir|directory|dy|display|ead|eadirection|ed|edcompatible|emo|emoji|enc|encoding|eol|endofline|ea|equalalways|ep|equalprg|eb|errorbells|ef|errorfile|efm|errorformat|ek|esckeys|ei|eventignore|et|expandtab|ex|exrc|fenc|fileencoding|fencs|fileencodings|ff|fileformat|ffs|fileformats|fic|fileignorecase|ft|filetype|fcs|fillchars|fixeol|fixendofline|fk|fkmap|fcl|foldclose|fdc|foldcolumn|fen|foldenable|fde|foldexpr|fdi|foldignore|fdl|foldlevel|fdls|foldlevelstart|fmr|foldmarker|fdm|foldmethod|fml|foldminlines|fdn|foldnestmax|fdo|foldopen|fdt|foldtext|fex|formatexpr|fo|formatoptions|flp|formatlistpat|fp|formatprg|fs|fsync|gd|gdefault|gfm|grepformat|gp|grepprg|gcr|guicursor|gfn|guifont|gfs|guifontset|gfw|guifontwide|ghr|guiheadroom|go|guioptions|guipty|gtl|guitablabel|gtt|guitabtooltip|hf|helpfile|hh|helpheight|hlg|helplang|hid|hidden|hl|highlight|hi|history|hk|hkmap|hkp|hkmapp|hls|hlsearch|icon|iconstring|ic|ignorecase|imaf|imactivatefunc|imak|imactivatekey|imc|imcmdline|imd|imdisable|imi|iminsert|ims|imsearch|imsf|imstatusfunc|imst|imstyle|inc|include|inex|includeexpr|is|incsearch|inde|indentexpr|indk|indentkeys|inf|infercase|im|insertmode|isf|isfname|isi|isident|isk|iskeyword|isp|isprint|js|joinspaces|key|kmp|keymap|km|keymodel|kp|keywordprg|lmap|langmap|lm|langmenu|lnr|langnoremap|lrm|langremap|ls|laststatus|lz|lazyredraw|lbr|linebreak|lines|lsp|linespace|lisp|lw|lispwords|list|lcs|listchars|lpl|loadplugins|luadll|macatsui|magic|mef|makeef|menc|makeencoding|mp|makeprg|mps|matchpairs|mat|matchtime|mco|maxcombine|mfd|maxfuncdepth|mmd|maxmapdepth|mm|maxmem|mmp|maxmempattern|mmt|maxmemtot|mis|menuitems|msm|mkspellmem|ml|modeline|mls|modelines|ma|modifiable|mod|modified|more|mouse|mousef|mousefocus|mh|mousehide|mousem|mousemodel|mouses|mouseshape|mouset|mousetime|mzschemedll|mzschemegcdll|mzq|mzquantum|nf|nrformats|nu|number|nuw|numberwidth|ofu|omnifunc|odev|opendevice|opfunc|operatorfunc|pp|packpath|para|paragraphs|paste|pt|pastetoggle|pex|patchexpr|pm|patchmode|pa|path|perldll|pi|preserveindent|pvh|previewheight|pvw|previewwindow|pdev|printdevice|penc|printencoding|pexpr|printexpr|pfn|printfont|pheader|printheader|pmbcs|printmbcharset|pmbfn|printmbfont|popt|printoptions|prompt|ph|pumheight|pythonthreedll|pythondll|pyx|pyxversion|qe|quoteescape|ro|readonly|rdt|redrawtime|re|regexpengine|rnu|relativenumber|remap|rop|renderoptions|report|rs|restorescreen|ri|revins|rl|rightleft|rlc|rightleftcmd|rubydll|ru|ruler|ruf|rulerformat|rtp|runtimepath|scr|scroll|scb|scrollbind|sj|scrolljump|so|scrolloff|sbo|scrollopt|sect|sections|secure|sel|selection|slm|selectmode|ssop|sessionoptions|sh|shell|shcf|shellcmdflag|sp|shellpipe|shq|shellquote|srr|shellredir|ssl|shellslash|stmp|shelltemp|st|shelltype|sxq|shellxquote|sxe|shellxescape|sr|shiftround|sw|shiftwidth|shm|shortmess|sn|shortname|sbr|showbreak|sc|showcmd|sft|showfulltag|sm|showmatch|smd|showmode|stal|showtabline|ss|sidescroll|siso|sidescrolloff|scl|signcolumn|scs|smartcase|si|smartindent|sta|smarttab|sts|softtabstop|spell|spc|spellcapcheck|spf|spellfile|spl|spelllang|sps|spellsuggest|sb|splitbelow|spr|splitright|sol|startofline|stl|statusline|su|suffixes|sua|suffixesadd|swf|swapfile|sws|swapsync|swb|switchbuf|smc|synmaxcol|syn|syntax|tal|tabline|tpm|tabpagemax|ts|tabstop|tbs|tagbsearch|tc|tagcase|tl|taglength|tr|tagrelative|tag|tags|tgst|tagstack|tcldll|term|tbidi|termbidi|tenc|termencoding|tgc|termguicolors|tk|termkey|tms|termsize|terse|ta|textauto|tx|textmode|tw|textwidth|tsr|thesaurus|top|tildeop|to|timeout|tm|timeoutlen|title|titlelen|titleold|titlestring|tb|toolbar|tbis|toolbariconsize|ttimeout|ttm|ttimeoutlen|tbi|ttybuiltin|tf|ttyfast|ttym|ttymouse|tsl|ttyscroll|tty|ttytype|udir|undodir|udf|undofile|ul|undolevels|ur|undoreload|uc|updatecount|ut|updatetime|vbs|verbose|vfile|verbosefile|vdir|viewdir|vop|viewoptions|vi|viminfo|vif|viminfofile|ve|virtualedit|vb|visualbell|warn|wiv|weirdinvert|ww|whichwrap|wc|wildchar|wcm|wildcharm|wig|wildignore|wic|wildignorecase|wmnu|wildmenu|wim|wildmode|wop|wildoptions|wak|winaltkeys|wi|window|wh|winheight|wfh|winfixheight|wfw|winfixwidth|wmh|winminheight|wmw|winminwidth|winptydll|wiw|winwidth|wrap|wm|wrapmargin|ws|wrapscan|write|wa|writeany|wb|writebackup|wd|writedelay)\\b"},{name:"support.type.option.viml",match:"&?\\b(aleph|allowrevins|altkeymap|ambiwidth|autochdir|arabic|arabicshape|autoindent|autoread|autowrite|autowriteall|background|backspace|backup|backupcopy|backupdir|backupext|backupskip|balloondelay|ballooneval|balloonexpr|belloff|binary|bomb|breakat|breakindent|breakindentopt|browsedir|bufhidden|buflisted|buftype|casemap|cdpath|cedit|charconvert|cindent|cinkeys|cinoptions|cinwords|clipboard|cmdheight|cmdwinheight|colorcolumn|columns|comments|commentstring|complete|completefunc|completeopt|concealcursor|conceallevel|confirm|copyindent|cpoptions|cscopepathcomp|cscopeprg|cscopequickfix|cscoperelative|cscopetag|cscopetagorder|cscopeverbose|cursorbind|cursorcolumn|cursorline|debug|define|delcombine|dictionary|diff|diffexpr|diffopt|digraph|directory|display|eadirection|encoding|endofline|equalalways|equalprg|errorbells|errorfile|errorformat|eventignore|expandtab|exrc|fileencoding|fileencodings|fileformat|fileformats|fileignorecase|filetype|fillchars|fixendofline|fkmap|foldclose|foldcolumn|foldenable|foldexpr|foldignore|foldlevel|foldlevelstart|foldmarker|foldmethod|foldminlines|foldnestmax|foldopen|foldtext|formatexpr|formatlistpat|formatoptions|formatprg|fsync|gdefault|grepformat|grepprg|guicursor|guifont|guifontset|guifontwide|guioptions|guitablabel|guitabtooltip|helpfile|helpheight|helplang|hidden|hlsearch|history|hkmap|hkmapp|icon|iconstring|ignorecase|imcmdline|imdisable|iminsert|imsearch|include|includeexpr|incsearch|indentexpr|indentkeys|infercase|insertmode|isfname|isident|iskeyword|isprint|joinspaces|keymap|keymodel|keywordprg|langmap|langmenu|langremap|laststatus|lazyredraw|linebreak|lines|linespace|lisp|lispwords|list|listchars|loadplugins|magic|makeef|makeprg|matchpairs|matchtime|maxcombine|maxfuncdepth|maxmapdepth|maxmem|maxmempattern|maxmemtot|menuitems|mkspellmem|modeline|modelines|modifiable|modified|more|mouse|mousefocus|mousehide|mousemodel|mouseshape|mousetime|nrformats|number|numberwidth|omnifunc|opendevice|operatorfunc|packpath|paragraphs|paste|pastetoggle|patchexpr|patchmode|path|perldll|preserveindent|previewheight|previewwindow|printdevice|printencoding|printexpr|printfont|printheader|printmbcharset|printmbfont|printoptions|prompt|pumheight|pythondll|pythonthreedll|quoteescape|readonly|redrawtime|regexpengine|relativenumber|remap|report|revins|rightleft|rightleftcmd|rubydll|ruler|rulerformat|runtimepath|scroll|scrollbind|scrolljump|scrolloff|scrollopt|sections|secure|selection|selectmode|sessionoptions|shada|shell|shellcmdflag|shellpipe|shellquote|shellredir|shellslash|shelltemp|shellxescape|shellxquote|shiftround|shiftwidth|shortmess|showbreak|showcmd|showfulltag|showmatch|showmode|showtabline|sidescroll|sidescrolloff|signcolumn|smartcase|smartindent|smarttab|softtabstop|spell|spellcapcheck|spellfile|spelllang|spellsuggest|splitbelow|splitright|startofline|statusline|suffixes|suffixesadd|swapfile|switchbuf|synmaxcol|syntax|tabline|tabpagemax|tabstop|tagbsearch|tagcase|taglength|tagrelative|tags|tagstack|term|termbidi|terse|textwidth|thesaurus|tildeop|timeout|timeoutlen|title|titlelen|titleold|titlestring|ttimeout|ttimeoutlen|ttytype|undodir|undofile|undolevels|undoreload|updatecount|updatetime|verbose|verbosefile|viewdir|viewoptions|virtualedit|visualbell|warn|whichwrap|wildchar|wildcharm|wildignore|wildignorecase|wildmenu|wildmode|wildoptions|winaltkeys|window|winheight|winfixheight|winfixwidth|winminheight|winminwidth|winwidth|wrap|wrapmargin|wrapscan|write|writeany|writebackup|writedelay)\\b"},{name:"support.type.option.shortname.viml",match:"&?\\b(al|ari|akm|ambw|acd|arab|arshape|ai|ar|aw|awa|bg|bs|bk|bkc|bdir|bex|bsk|bdlay|beval|bexpr|bo|bin|bomb|brk|bri|briopt|bsdir|bh|bl|bt|cmp|cd|cedit|ccv|cin|cink|cino|cinw|cb|ch|cwh|cc|co|com|cms|cpt|cfu|cot|cocu|cole|cf|ci|cpo|cspc|csprg|csqf|csre|cst|csto|cpo|crb|cuc|cul|debug|def|deco|dict|diff|dex|dip|dg|dir|dy|ead|enc|eol|ea|ep|eb|ef|efm|ei|et|ex|fenc|fencs|ff|ffs|fic|ft|fcs|fixeol|fk|fcl|fdc|fen|fde|fdi|fdl|fdls|fmr|fdm|fml|fdn|fdo|fdt|fex|flp|fo|fp|fs|gd|gfm|gp|gcr|gfn|gfs|gfw|go|gtl|gtt|hf|hh|hlg|hid|hls|hi|hk|hkp|icon|iconstring|ic|imc|imd|imi|ims|inc|inex|is|inde|indk|inf|im|isf|isi|isk|isp|js|kmp|km|kp|lmap|lm|lrm|ls|lz|lbr|lines|lsp|lisp|lw|list|lcs|lpl|magic|mef|mp|mps|mat|mco|mfd|mmd|mm|mmp|mmt|mis|msm|ml|mls|ma|mod|more|mouse|mousef|mh|mousem|mouses|mouset|nf|nu|nuw|ofu|odev|opfunc|pp|para|paste|pt|pex|pm|pa|perldll|pi|pvh|pvw|pdev|penc|pexpr|pfn|pheader|pmbcs|pmbfn|popt|prompt|ph|pythondll|pythonthreedlll|qe|ro|rdt|re|rnu|remap|report|ri|rl|rlc|rubydll|ru|ruf|rtp|scr|scb|sj|so|sbo|sect|secure|sel|slm|ssop|sd|sh|shcf|sp|shq|srr|ssl|stmp|sxe|sxq|sr|sw|shm|sbr|sc|sft|sm|smd|stal|ss|siso|scl|scs|si|sta|sts|spell|spc|spf|spl|sps|sb|spr|sol|stl|su|sua|swf|swb|smc|syn|tal|tpm|ts|tbs|tc|tl|tr|tag|tgst|term|tbidi|terse|tw|tsr|top|to|tm|title|titlelen|titleold|titlestring|ttimeout|ttm|tty|udir|udf|ul|ur|uc|ut|vbs|vfile|vdir|vop|ve|vb|warn|ww|wc|wcm|wig|wic|wmnu|wim|wop|wak|wi|wh|wfh|wfw|wmh|wmw|wiw|wrap|wm|ws|write|wa|wb|wd)\\b"},{name:"support.type.option.off.viml",match:"\\b(noanti|noantialias|noarab|noarabic|noarshape|noarabicshape|noari|noallowrevins|noakm|noaltkeymap|noacd|noautochdir|noai|noautoindent|noar|noautoread|noaw|noautowrite|noawa|noautowriteall|nobk|nobackup|nobeval|noballooneval|nobevalterm|noballoonevalterm|nobin|nobinary|nobomb|nobri|nobreakindent|nobl|nobuflisted|nocin|nocindent|nocp|nocompatible|nocf|noconfirm|noci|nocopyindent|nocsre|nocscoperelative|nocst|nocscopetag|nocsverb|nocscopeverbose|nocrb|nocursorbind|nocuc|nocursorcolumn|nocul|nocursorline|nodeco|nodelcombine|nodiff|nodg|nodigraph|noed|noedcompatible|noemo|noemoji|noeol|noendofline|noea|noequalalways|noeb|noerrorbells|noek|noesckeys|noet|noexpandtab|noex|noexrc|nofic|nofileignorecase|nofixeol|nofixendofline|nofk|nofkmap|nofen|nofoldenable|nofs|nofsync|nogd|nogdefault|noguipty|nohid|nohidden|nohk|nohkmap|nohkp|nohkmapp|nohls|nohlsearch|noicon|noic|noignorecase|noimc|noimcmdline|noimd|noimdisable|nois|noincsearch|noinf|noinfercase|noim|noinsertmode|nojs|nojoinspaces|nolnr|nolangnoremap|nolrm|nolangremap|nolz|nolazyredraw|nolbr|nolinebreak|nolisp|nolist|nolpl|noloadplugins|nomacatsui|nomagic|noml|nomodeline|noma|nomodifiable|nomod|nomodified|nomore|nomousef|nomousefocus|nomh|nomousehide|nonu|nonumber|noodev|noopendevice|nopaste|nopi|nopreserveindent|nopvw|nopreviewwindow|noprompt|noro|noreadonly|nornu|norelativenumber|nors|norestorescreen|nori|norevins|norl|norightleft|noru|noruler|noscb|noscrollbind|nosecure|nossl|noshellslash|nostmp|noshelltemp|nosr|noshiftround|nosn|noshortname|nosc|noshowcmd|nosft|noshowfulltag|nosm|noshowmatch|nosmd|noshowmode|noscs|nosmartcase|nosi|nosmartindent|nosta|nosmarttab|nospell|nosb|nosplitbelow|nospr|nosplitright|nosol|nostartofline|noswf|noswapfile|notbs|notagbsearch|notr|notagrelative|notgst|notagstack|notbidi|notermbidi|notgc|notermguicolors|noterse|nota|notextauto|notx|notextmode|notop|notildeop|noto|notimeout|notitle|nottimeout|notbi|nottybuiltin|notf|nottyfast|noudf|noundofile|novb|novisualbell|nowarn|nowiv|noweirdinvert|nowic|nowildignorecase|nowmnu|nowildmenu|nowfh|nowinfixheight|nowfw|nowinfixwidth|nowrapscan|nowrap|nows|nowrite|nowa|nowriteany|nowb|nowritebackup)\\b"}]},punctuation:{patterns:[{name:"punctuation.parens.viml",match:"([()])"},{name:"punctuation.comma.viml",match:"([,])"}]},strings:{patterns:[{name:"string.quoted.double.viml",begin:"\"",end:"(\"|$)",patterns:[]},{name:"string.quoted.single.viml",begin:"'",end:"('|$)",patterns:[]},{match:"/(\\\\\\\\|\\\\/|[^\\n/])*/",name:"string.regexp.viml"}]},support:{patterns:[{name:"support.function.viml",match:"(add|call|delete|empty|extend|get|has|isdirectory|join|printf)(?=\\()"},{name:"support.function.viml",match:"\\b(echo(m|hl)?|exe(cute)?|redir|redraw|sleep|so(urce)?|wincmd|setf)\\b"},{name:"support.type.builtin.vim-variable.viml",match:"(v\\:(beval_col|beval_bufnr|beval_lnum|beval_text|beval_winnr|char|charconvert_from|charconvert_to|cmdarg|cmdbang|count|count1|ctype|dying|errmsg|exception|fcs_reason|fcs_choice|fname_in|fname_out|fname_new|fname_diff|folddashes|foldlevel|foldend|foldstart|insertmode|key|lang|lc_time|lnum|mouse_win|mouse_lnum|mouse_col|oldfiles|operator|prevcount|profiling|progname|register|scrollstart|servername|searchforward|shell_error|statusmsg|swapname|swapchoice|swapcommand|termresponse|this_session|throwpoint|val|version|warningmsg|windowid))"},{name:"support.type.builtin.viml",match:"(&(cpo|isk|omnifunc|paste|previewwindow|rtp|tags|term|wrap))"},{name:"support.type.builtin.viml",match:"(&(shell(cmdflag|redir)?))"},{name:"support.variable.args.viml",match:"\\<args\\>"},{name:"support.type.syntax.viml",match:"\\b(None|ErrorMsg|WarningMsg)\\b"},{name:"support.type.event.viml",match:"\\b(BufNewFile|BufReadPre|BufRead|BufReadPost|BufReadCmd|FileReadPre|FileReadPost|FileReadCmd|FilterReadPre|FilterReadPost|StdinReadPre|StdinReadPost|BufWrite|BufWritePre|BufWritePost|BufWriteCmd|FileWritePre|FileWritePost|FileWriteCmd|FileAppendPre|FileAppendPost|FileAppendCmd|FilterWritePre|FilterWritePost|BufAdd|BufCreate|BufDelete|BufWipeout|BufFilePre|BufFilePost|BufEnter|BufLeave|BufWinEnter|BufWinLeave|BufUnload|BufHidden|BufNew|SwapExists|TermOpen|TermClose|FileType|Syntax|OptionSet|VimEnter|GUIEnter|GUIFailed|TermResponse|QuitPre|VimLeavePre|VimLeave|DirChanged|FileChangedShell|FileChangedShellPost|FileChangedRO|ShellCmdPost|ShellFilterPost|CmdUndefined|FuncUndefined|SpellFileMissing|SourcePre|SourceCmd|VimResized|FocusGained|FocusLost|CursorHold|CursorHoldI|CursorMoved|CursorMovedI|WinNew|WinEnter|WinLeave|TabEnter|TabLeave|TabNew|TabNewEntered|TabClosed|CmdlineEnter|CmdlineLeave|CmdwinEnter|CmdwinLeave|InsertEnter|InsertChange|InsertLeave|InsertCharPre|TextYankPost|TextChanged|TextChangedI|ColorScheme|RemoteReply|QuickFixCmdPre|QuickFixCmdPost|SessionLoadPost|MenuPopup|CompleteDone|User)\\b"},{name:"support.type.syntax-group.viml",match:"\\b(Comment|Constant|String|Character|Number|Boolean|Float|Identifier|Function|Statement|Conditional|Repeat|Label|Operator|Keyword|Exception|PreProc|Include|Define|Macro|PreCondit|Type|StorageClass|Structure|Typedef|Special|SpecialChar|Tag|Delimiter|SpecialComment|Debug|Underlined|Ignore|Error|Todo)\\b"}]},syntax:{patterns:[{name:"keyword.control.syntax.viml",match:"syn(tax)? case (ignore|match)"},{name:"keyword.control.syntax.viml",match:"syn(tax)? (clear|enable|include|off|on|manual|sync)"},{name:"keyword.other.syntax.viml",match:"\\b(contained|display|excludenl|fold|keepend|oneline|skipnl|skipwhite|transparent)\\b"},{name:"keyword.other.syntax.viml",match:"\\b(add|containedin|contains|matchgroup|nextgroup)\\="},{captures:{"1":{name:"keyword.other.syntax-range.viml"},"3":{name:"string.regexp.viml"}},match:"((start|skip|end)\\=)(\\+\\S+\\+\\s)?"},{captures:{"0":{name:"support.type.syntax.viml"},"1":{name:"storage.syntax.viml"},"3":{name:"variable.other.syntax-scope.viml"},"4":{name:"storage.modifier.syntax.viml"}},match:"(syn|syntax)\\s+(cluster|keyword|match|region)(\\s+\\w+\\s+)(contained)?",patterns:[]},{captures:{"1":{name:"storage.highlight.viml"},"2":{name:"storage.modifier.syntax.viml"},"3":{name:"support.function.highlight.viml"},"4":{name:"variable.other.viml"},"5":{name:"variable.other.viml"}},match:"(hi|highlight)(?:\\s+)(def|default)(?:\\s+)(link)(?:\\s+)(\\w+)(?:\\s+)(\\w+)",patterns:[]}]},keyword:{patterns:[{name:"keyword.control.viml",match:"\\b(if|while|for|return|au(g|group)|else(if|)?|do|in)\\b"},{name:"keyword.control.viml",match:"\\b(end|endif|endfor|endwhile)\\s|$"},{name:"keyword.control.viml",match:"\\b(break|continue|try|catch|endtry|finally|finish|throw|range)\\b"},{name:"keyword.function.viml",match:"\\b(fun|func|function|endfunction|endfunc)\\b"},{name:"keyword.other.viml",match:"\\b(normal|silent)\\b"},{include:"#operators"}]},storage:{patterns:[{match:"\\b(call|let|unlet)\\b",name:"storage.viml"},{match:"\\b(abort|autocmd)\\b",name:"storage.viml"},{match:"\\b(set(l|local)?)\\b",name:"storage.viml"},{match:"\\b(com(mand)?)\\b",name:"storage.viml"},{match:"\\b(color(scheme)?)\\b",name:"storage.viml"},{match:"\\b(Plug|Plugin)\\b",name:"storage.plugin.viml"}]},variable:{patterns:[{name:"variable.other.link.viml",match:"https?://\\S+"},{name:"variable.parameter.viml",match:"(?<=\\()([a-zA-Z]+)(?=\\))"},{name:"variable.other.viml",match:"\\b([absgl]:[a-zA-Z0-9_.#]+)\\b(?!\\()"}]},constant:{patterns:[{name:"constant.language.boolean.viml",match:"\\b(true|false)\\b"},{name:"constant.numeric.viml",match:"\\b([0-9]+)\\b"}]}},$schema:"https://raw.githubusercontent.com/dunstontc/textmate/master/schema/tmLanguage.schema.json",name:"viml",scopeName:"source.viml",patterns:[{include:"#comment"},{include:"#constant"},{include:"#entity"},{include:"#keyword"},{include:"#punctuation"},{include:"#storage"},{include:"#strings"},{include:"#support"},{include:"#variable"},{include:"#syntax"},{include:"#commands"},{include:"#option"},{include:"#map"}]}; + +export { viml_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/vue-html.tmLanguage-5594a20c.mjs b/docs/shiki/dist/languages/vue-html.tmLanguage-5594a20c.mjs new file mode 100644 index 00000000..a1875c95 --- /dev/null +++ b/docs/shiki/dist/languages/vue-html.tmLanguage-5594a20c.mjs @@ -0,0 +1,3 @@ +var vueHtml_tmLanguage = {name:"vue-html",scopeName:"text.html.vue-html",fileTypes:[],uuid:"ca2e4260-5d62-45bf-8cf1-d8b5cc19c8f8",patterns:[{include:"source.vue#vue-interpolations"},{name:"meta.tag.any.html",begin:"(<)([A-Z][a-zA-Z0-9:-]*)(?=[^>]*></\\2>)",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"support.class.component.html"}},end:"(>)(<)(/)(\\2)(>)",endCaptures:{"1":{name:"punctuation.definition.tag.end.html"},"2":{name:"punctuation.definition.tag.begin.html meta.scope.between-tag-pair.html"},"3":{name:"punctuation.definition.tag.begin.html"},"4":{name:"support.class.component.html"},"5":{name:"punctuation.definition.tag.end.html"}},patterns:[{include:"#tag-stuff"}]},{name:"meta.tag.any.html",begin:"(<)([a-z][a-zA-Z0-9:-]*)(?=[^>]*></\\2>)",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.html"}},end:"(>)(<)(/)(\\2)(>)",endCaptures:{"1":{name:"punctuation.definition.tag.end.html"},"2":{name:"punctuation.definition.tag.begin.html meta.scope.between-tag-pair.html"},"3":{name:"punctuation.definition.tag.begin.html"},"4":{name:"entity.name.tag.html"},"5":{name:"punctuation.definition.tag.end.html"}},patterns:[{include:"#tag-stuff"}]},{name:"meta.tag.preprocessor.xml.html",begin:"(<\\?)(xml)",end:"(\\?>)",captures:{"1":{name:"punctuation.definition.tag.html"},"2":{name:"entity.name.tag.xml.html"}},patterns:[{include:"#tag-generic-attribute"},{include:"#string-double-quoted"},{include:"#string-single-quoted"}]},{name:"comment.block.html",begin:"<!--",end:"-->",captures:{"0":{name:"punctuation.definition.comment.html"}}},{name:"meta.tag.sgml.html",begin:"<!",end:">",captures:{"0":{name:"punctuation.definition.tag.html"}},patterns:[{name:"meta.tag.sgml.doctype.html",begin:"(?i:DOCTYPE)",end:"(?=>)",captures:{"1":{name:"entity.name.tag.doctype.html"}},patterns:[{name:"string.quoted.double.doctype.identifiers-and-DTDs.html",match:"\"[^\">]*\""}]},{name:"constant.other.inline-data.html",begin:"\\[CDATA\\[",end:"]](?=>)"},{name:"invalid.illegal.bad-comments-or-CDATA.html",match:"(\\s*)(?!--|>)\\S(\\s*)"}]},{name:"meta.tag.block.any.html",begin:"(</?)([A-Z][a-zA-Z0-9:-]*\\b)",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"support.class.component.html"}},end:"(>)",endCaptures:{"1":{name:"punctuation.definition.tag.end.html"}},patterns:[{include:"#tag-stuff"}]},{name:"meta.tag.block.any.html",begin:"(</?)([a-z][a-zA-Z0-9:-]*\\b)",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.block.any.html"}},end:"(>)",endCaptures:{"1":{name:"punctuation.definition.tag.end.html"}},patterns:[{include:"#tag-stuff"}]},{name:"meta.tag.structure.any.html",begin:"(</?)((?i:body|head|html)\\b)",end:"(>)",endCaptures:{"1":{name:"punctuation.definition.tag.end.html"}},captures:{"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.structure.any.html"}},patterns:[{include:"#tag-stuff"}]},{name:"meta.tag.block.any.html",begin:"(</?)((?i:address|blockquote|dd|div|dl|dt|fieldset|form|frame|frameset|h1|h2|h3|h4|h5|h6|iframe|noframes|object|ol|p|ul|applet|center|dir|hr|menu|pre)(?!-)\\b)",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.block.any.html"}},end:"(>)",endCaptures:{"1":{name:"punctuation.definition.tag.end.html"}},patterns:[{include:"#tag-stuff"}]},{name:"meta.tag.inline.any.html",begin:"(</?)((?i:a|abbr|acronym|area|b|base|basefont|bdo|big|br|button|caption|cite|code|col|colgroup|del|dfn|em|font|head|html|i|img|input|ins|isindex|kbd|label|legend|li|link|map|meta|noscript|optgroup|option|param|q|s|samp|script|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|title|tr|tt|u|var)(?!-)\\b)",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.inline.any.html"}},end:"(/?>)",endCaptures:{"1":{name:"punctuation.definition.tag.end.html"}},patterns:[{include:"#tag-stuff"}]},{name:"meta.tag.other.html",begin:"(</?)([a-zA-Z0-9:-]+)",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.html"},"2":{name:"entity.name.tag.other.html"}},end:"(/?>)",endCaptures:{"1":{name:"punctuation.definition.tag.end.html"}},patterns:[{include:"#tag-stuff"}]},{include:"#entities"},{name:"invalid.illegal.incomplete.html",match:"<>"},{name:"invalid.illegal.bad-angle-bracket.html",match:"<"}],repository:{entities:{patterns:[{name:"constant.character.entity.html",match:"(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)",captures:{"1":{name:"punctuation.definition.entity.html"},"3":{name:"punctuation.definition.entity.html"}}},{name:"invalid.illegal.bad-ampersand.html",match:"&"}]},"string-double-quoted":{name:"string.quoted.double.html",begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.html"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.html"}},patterns:[{include:"source.vue#vue-interpolations"},{include:"#entities"}]},"string-single-quoted":{name:"string.quoted.single.html",begin:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.html"}},end:"'",endCaptures:{"0":{name:"punctuation.definition.string.end.html"}},patterns:[{include:"source.vue#vue-interpolations"},{include:"#entities"}]},"tag-generic-attribute":{name:"entity.other.attribute-name.html",match:"(?<=[^=])\\b([a-zA-Z0-9:\\-_]+)"},"tag-id-attribute":{name:"meta.attribute-with-value.id.html",begin:"\\b(id)\\b\\s*(=)",end:"(?!\\G)(?<='|\"|[^\\s<>/])",captures:{"1":{name:"entity.other.attribute-name.id.html"},"2":{name:"punctuation.separator.key-value.html"}},patterns:[{name:"string.quoted.double.html",contentName:"meta.toc-list.id.html",begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.html"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.html"}},patterns:[{include:"source.vue#vue-interpolations"},{include:"#entities"}]},{name:"string.quoted.single.html",contentName:"meta.toc-list.id.html",begin:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.html"}},end:"'",endCaptures:{"0":{name:"punctuation.definition.string.end.html"}},patterns:[{include:"source.vue#vue-interpolations"},{include:"#entities"}]},{name:"string.unquoted.html",match:"(?<==)(?:[^\\s<>/'\"]|/(?!>))+",captures:{"0":{name:"meta.toc-list.id.html"}}}]},"tag-stuff":{patterns:[{include:"#vue-directives"},{include:"#tag-id-attribute"},{include:"#tag-generic-attribute"},{include:"#string-double-quoted"},{include:"#string-single-quoted"},{include:"#unquoted-attribute"}]},"unquoted-attribute":{name:"string.unquoted.html",match:"(?<==)(?:[^\\s<>/'\"]|/(?!>))+"},"vue-directives":{name:"meta.directive.vue",begin:"(?:\\b(v-)|(:|@|#))([a-zA-Z0-9\\-_]+)(?:\\:([a-zA-Z\\-_]+))?(?:\\.([a-zA-Z\\-_]+))*\\s*(=)",end:"(?<='|\")|(?=[\\s<>`])",captures:{"1":{name:"entity.other.attribute-name.html"},"2":{name:"punctuation.separator.key-value.html"},"3":{name:"entity.other.attribute-name.html"},"4":{name:"entity.other.attribute-name.html"},"5":{name:"entity.other.attribute-name.html"},"6":{name:"punctuation.separator.key-value.html"}},patterns:[{name:"source.directive.vue",begin:"`",beginCaptures:{"0":{name:"punctuation.definition.string.begin.html"}},end:"`",endCaptures:{"0":{name:"punctuation.definition.string.end.html"}},patterns:[{include:"source.js#expression"}]},{name:"source.directive.vue",begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.html"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.html"}},patterns:[{include:"source.js#expression"}]},{name:"source.directive.vue",begin:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.html"}},end:"'",endCaptures:{"0":{name:"punctuation.definition.string.end.html"}},patterns:[{include:"source.js#expression"}]}]}}}; + +export { vueHtml_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/vue.tmLanguage-d5fd1824.mjs b/docs/shiki/dist/languages/vue.tmLanguage-d5fd1824.mjs new file mode 100644 index 00000000..5e097db1 --- /dev/null +++ b/docs/shiki/dist/languages/vue.tmLanguage-d5fd1824.mjs @@ -0,0 +1,3 @@ +var vue_tmLanguage = {$schema:"https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",name:"vue",scopeName:"source.vue",patterns:[{include:"text.html.basic#comment"},{include:"#self-closing-tag"},{begin:"(<)",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.html.vue"}},end:"(>)",endCaptures:{"1":{name:"punctuation.definition.tag.end.html.vue"}},patterns:[{begin:"([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)md\\b\\2)",beginCaptures:{"1":{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{"1":{name:"punctuation.definition.tag.begin.html.vue"},"2":{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"text.html.markdown",patterns:[{include:"text.html.markdown"}]}]},{begin:"([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)html\\b\\2)",beginCaptures:{"1":{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{"1":{name:"punctuation.definition.tag.begin.html.vue"},"2":{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"text.html.derivative",patterns:[{include:"#html-stuff"}]}]},{begin:"([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)pug\\b\\2)",beginCaptures:{"1":{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{"1":{name:"punctuation.definition.tag.begin.html.vue"},"2":{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"text.pug",patterns:[{include:"text.pug"}]}]},{begin:"([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)stylus\\b\\2)",beginCaptures:{"1":{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{"1":{name:"punctuation.definition.tag.begin.html.vue"},"2":{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.stylus",patterns:[{include:"source.stylus"}]}]},{begin:"([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)postcss\\b\\2)",beginCaptures:{"1":{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{"1":{name:"punctuation.definition.tag.begin.html.vue"},"2":{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.postcss",patterns:[{include:"source.postcss"}]}]},{begin:"([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)sass\\b\\2)",beginCaptures:{"1":{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{"1":{name:"punctuation.definition.tag.begin.html.vue"},"2":{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.sass",patterns:[{include:"source.sass"}]}]},{begin:"([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)css\\b\\2)",beginCaptures:{"1":{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{"1":{name:"punctuation.definition.tag.begin.html.vue"},"2":{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.css",patterns:[{include:"source.css"}]}]},{begin:"([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)scss\\b\\2)",beginCaptures:{"1":{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{"1":{name:"punctuation.definition.tag.begin.html.vue"},"2":{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.css.scss",patterns:[{include:"source.css.scss"}]}]},{begin:"([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)less\\b\\2)",beginCaptures:{"1":{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{"1":{name:"punctuation.definition.tag.begin.html.vue"},"2":{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.css.less",patterns:[{include:"source.css.less"}]}]},{begin:"([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)js\\b\\2)",beginCaptures:{"1":{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{"1":{name:"punctuation.definition.tag.begin.html.vue"},"2":{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.js",patterns:[{include:"source.js"}]}]},{begin:"([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)ts\\b\\2)",beginCaptures:{"1":{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{"1":{name:"punctuation.definition.tag.begin.html.vue"},"2":{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.ts",patterns:[{include:"source.ts"}]}]},{begin:"([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)jsx\\b\\2)",beginCaptures:{"1":{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{"1":{name:"punctuation.definition.tag.begin.html.vue"},"2":{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.js.jsx",patterns:[{include:"source.js.jsx"}]}]},{begin:"([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)tsx\\b\\2)",beginCaptures:{"1":{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{"1":{name:"punctuation.definition.tag.begin.html.vue"},"2":{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.tsx",patterns:[{include:"source.tsx"}]}]},{begin:"([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)json\\b\\2)",beginCaptures:{"1":{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{"1":{name:"punctuation.definition.tag.begin.html.vue"},"2":{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.json",patterns:[{include:"source.json"}]}]},{begin:"([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)jsonc\\b\\2)",beginCaptures:{"1":{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{"1":{name:"punctuation.definition.tag.begin.html.vue"},"2":{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.json.comments",patterns:[{include:"source.json.comments"}]}]},{begin:"([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)json5\\b\\2)",beginCaptures:{"1":{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{"1":{name:"punctuation.definition.tag.begin.html.vue"},"2":{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.json5",patterns:[{include:"source.json5"}]}]},{begin:"([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)yaml\\b\\2)",beginCaptures:{"1":{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{"1":{name:"punctuation.definition.tag.begin.html.vue"},"2":{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.yaml",patterns:[{include:"source.yaml"}]}]},{begin:"([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)toml\\b\\2)",beginCaptures:{"1":{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{"1":{name:"punctuation.definition.tag.begin.html.vue"},"2":{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.toml",patterns:[{include:"source.toml"}]}]},{begin:"([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)(gql|graphql)\\b\\2)",beginCaptures:{"1":{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{"1":{name:"punctuation.definition.tag.begin.html.vue"},"2":{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.graphql",patterns:[{include:"source.graphql"}]}]},{begin:"([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)vue\\b\\2)",beginCaptures:{"1":{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{"1":{name:"punctuation.definition.tag.begin.html.vue"},"2":{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"source.vue",patterns:[{include:"source.vue"}]}]},{begin:"(template)\\b",beginCaptures:{"1":{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{"1":{name:"punctuation.definition.tag.begin.html.vue"},"2":{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/template\\b)",name:"text.html.derivative",patterns:[{include:"#html-stuff"}]}]},{begin:"(script)\\b",beginCaptures:{"1":{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{"1":{name:"punctuation.definition.tag.begin.html.vue"},"2":{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/script\\b)",name:"source.js",patterns:[{include:"source.js"}]}]},{begin:"(style)\\b",beginCaptures:{"1":{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{"1":{name:"punctuation.definition.tag.begin.html.vue"},"2":{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/style\\b)",name:"source.css",patterns:[{include:"source.css"}]}]},{begin:"([a-zA-Z0-9:-]+)",beginCaptures:{"1":{name:"entity.name.tag.$1.html.vue"}},end:"(</)(\\1)\\s*(?=>)",endCaptures:{"1":{name:"punctuation.definition.tag.begin.html.vue"},"2":{name:"entity.name.tag.$2.html.vue"}},patterns:[{include:"#tag-stuff"},{begin:"(?<=>)",end:"(?=<\\/)",name:"text"}]}]}],repository:{"self-closing-tag":{begin:"(<)([a-zA-Z0-9:-]+)(?=([^>]+/>))",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.html.vue"},"2":{name:"entity.name.tag.$2.html.vue"}},end:"(/>)",endCaptures:{"1":{name:"punctuation.definition.tag.end.html.vue"}},name:"self-closing-tag",patterns:[{include:"#tag-stuff"}]},"template-tag":{patterns:[{include:"#template-tag-1"},{include:"#template-tag-2"}]},"template-tag-1":{begin:"(<)(template)\\b(>)",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.html.vue"},"2":{name:"entity.name.tag.$2.html.vue"},"3":{name:"punctuation.definition.tag.end.html.vue"}},end:"(/?>)",endCaptures:{"1":{name:"punctuation.definition.tag.end.html.vue"}},name:"meta.template-tag.start",patterns:[{begin:"\\G",end:"(?=/>)|((</)(template)\\b)",endCaptures:{"2":{name:"punctuation.definition.tag.begin.html.vue"},"3":{name:"entity.name.tag.$3.html.vue"}},name:"meta.template-tag.end",patterns:[{include:"#html-stuff"}]}]},"template-tag-2":{begin:"(<)(template)\\b",beginCaptures:{"1":{name:"punctuation.definition.tag.begin.html.vue"},"2":{name:"entity.name.tag.$2.html.vue"}},end:"(/?>)",endCaptures:{"1":{name:"punctuation.definition.tag.end.html.vue"}},name:"meta.template-tag.start",patterns:[{begin:"\\G",end:"(?=/>)|((</)(template)\\b)",endCaptures:{"2":{name:"punctuation.definition.tag.begin.html.vue"},"3":{name:"entity.name.tag.$3.html.vue"}},name:"meta.template-tag.end",patterns:[{include:"#tag-stuff"},{include:"#html-stuff"}]}]},"html-stuff":{patterns:[{include:"#template-tag"},{include:"text.html.derivative"},{include:"text.html.basic"}]},"tag-stuff":{begin:"\\G",end:"(?=/>)|(>)",endCaptures:{"1":{name:"punctuation.definition.tag.end.html.vue"}},name:"meta.tag-stuff",patterns:[{include:"#vue-directives"},{include:"text.html.basic#attribute"}]},"vue-directives":{patterns:[{include:"#vue-directives-control"},{include:"#vue-directives-style-attr"},{include:"#vue-directives-original"},{include:"#vue-directives-generic-attr"}]},"vue-directives-original":{begin:"(?:\\b(v-)|(:)|(@)|(#))(\\[?)([\\w\\-]*)(\\]?)(?:\\.([\\w\\-]*))*",beginCaptures:{"1":{name:"entity.other.attribute-name.html.vue"},"2":{name:"punctuation.attribute-shorthand.bind.html.vue"},"3":{name:"punctuation.attribute-shorthand.event.html.vue"},"4":{name:"punctuation.attribute-shorthand.slot.html.vue"},"5":{name:"punctuation.separator.key-value.html.vue"},"6":{name:"entity.other.attribute-name.html.vue"},"7":{name:"punctuation.separator.key-value.html.vue"},"8":{name:"entity.other.attribute-name.html.vue"},"9":{name:"punctuation.separator.key-value.html.vue"}},end:"(?=\\s*+[^=\\s])",endCaptures:{"1":{name:"punctuation.definition.string.end.html.vue"}},name:"meta.attribute.directive.vue",patterns:[{include:"#vue-directives-expression"}]},"vue-directives-control":{begin:"(v-for)|(v-if|v-else-if|v-else)",captures:{"1":{name:"keyword.control.loop.vue"},"2":{name:"keyword.control.conditional.vue"}},end:"(?=\\s*+[^=\\s])",name:"meta.attribute.directive.control.vue",patterns:[{include:"#vue-directives-expression"}]},"vue-directives-expression":{patterns:[{begin:"(=)\\s*('|\"|`)",beginCaptures:{"1":{name:"punctuation.separator.key-value.html.vue"},"2":{name:"punctuation.definition.string.begin.html.vue"}},end:"(\\2)",endCaptures:{"1":{name:"punctuation.definition.string.end.html.vue"}},patterns:[{begin:"(?<=('|\"|`))",end:"(?=\\1)",name:"source.ts.embedded.html.vue",patterns:[{include:"source.ts"}]}]},{begin:"(=)\\s*(?=[^'\"`])",beginCaptures:{"1":{name:"punctuation.separator.key-value.html.vue"}},end:"(?=(\\s|>|\\/>))",patterns:[{begin:"(?=[^'\"`])",end:"(?=(\\s|>|\\/>))",name:"source.ts.embedded.html.vue",patterns:[{include:"source.ts"}]}]}]},"vue-directives-style-attr":{begin:"\\b(style)\\s*(=)",captures:{"1":{name:"entity.other.attribute-name.html.vue"},"2":{name:"punctuation.separator.key-value.html.vue"}},end:"(?<='|\")",name:"meta.attribute.style.vue",patterns:[{comment:"Copy from source.css#rule-list-innards",begin:"('|\")",beginCaptures:{"1":{name:"punctuation.definition.string.begin.html.vue"}},end:"(\\1)",endCaptures:{"1":{name:"punctuation.definition.string.end.html.vue"}},name:"source.css.embedded.html.vue",patterns:[{include:"source.css#comment-block"},{include:"source.css#escapes"},{include:"source.css#font-features"},{match:"(?x) (?<![\\w-])\n--\n(?:[-a-zA-Z_] | [^\\x00-\\x7F]) # First letter\n(?:[-a-zA-Z0-9_] | [^\\x00-\\x7F] # Remainder of identifier\n |\\\\(?:[0-9a-fA-F]{1,6}|.)\n)*",name:"variable.css"},{begin:"(?<![-a-zA-Z])(?=[-a-zA-Z])",end:"$|(?![-a-zA-Z])",name:"meta.property-name.css",patterns:[{include:"source.css#property-names"}]},{comment:"Modify end to fix #199. TODO: handle ' character.",begin:"(:)\\s*",beginCaptures:{"1":{name:"punctuation.separator.key-value.css"}},end:"\\s*(;)|\\s*(?='|\")",endCaptures:{"1":{name:"punctuation.terminator.rule.css"}},contentName:"meta.property-value.css",patterns:[{include:"source.css#comment-block"},{include:"source.css#property-values"}]},{match:";",name:"punctuation.terminator.rule.css"}]}]},"vue-directives-generic-attr":{begin:"\\b(generic)\\s*(=)",captures:{"1":{name:"entity.other.attribute-name.html.vue"},"2":{name:"punctuation.separator.key-value.html.vue"}},end:"(?<='|\")",name:"meta.attribute.generic.vue",patterns:[{begin:"('|\")",beginCaptures:{"1":{name:"punctuation.definition.string.begin.html.vue"}},end:"(\\1)",endCaptures:{"1":{name:"punctuation.definition.string.end.html.vue"}},name:"meta.type.parameters.vue",comment:"https://github.com/microsoft/vscode/blob/fd4346210f59135fad81a8b8c4cea7bf5a9ca6b4/extensions/typescript-basics/syntaxes/TypeScript.tmLanguage.json#L4002-L4020",patterns:[{include:"source.ts#comment"},{name:"storage.modifier.ts",match:"(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends|in|out)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))"},{include:"source.ts#type"},{include:"source.ts#punctuation-comma"},{name:"keyword.operator.assignment.ts",match:"(=)(?!>)"}]}]},"vue-interpolations":{patterns:[{begin:"(\\{\\{)",beginCaptures:{"1":{name:"punctuation.definition.interpolation.begin.html.vue"}},end:"(\\}\\})",endCaptures:{"1":{name:"punctuation.definition.interpolation.end.html.vue"}},name:"expression.embedded.vue",patterns:[{begin:"\\G",end:"(?=\\}\\})",name:"source.ts.embedded.html.vue",patterns:[{include:"source.ts"}]}]}]}}}; + +export { vue_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/vyper.tmLanguage-e575ccf0.mjs b/docs/shiki/dist/languages/vyper.tmLanguage-e575ccf0.mjs new file mode 100644 index 00000000..58c8ac5c --- /dev/null +++ b/docs/shiki/dist/languages/vyper.tmLanguage-e575ccf0.mjs @@ -0,0 +1,3 @@ +var vyper_tmLanguage = {information_for_contributors:["This file has been converted from https://github.com/MagicStack/MagicPython/blob/master/grammars/MagicPython.tmLanguage","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."],version:"https://github.com/MagicStack/MagicPython/commit/b2b4f4ae7b4e6284e80bda8080106b93bd588f9e",name:"vyper",scopeName:"source.vyper",patterns:[{include:"#statement"},{include:"#expression"},{include:"#reserved-names-vyper"}],repository:{impossible:{comment:"This is a special rule that should be used where no match is desired. It is not a good idea to match something like '1{0}' because in some cases that can result in infinite loops in token generation. So the rule instead matches and impossible expression to allow a match to fail and move to the next token.",match:"$.^"},statement:{patterns:[{include:"#import"},{include:"#class-declaration"},{include:"#function-declaration"},{include:"#generator"},{include:"#statement-keyword"},{include:"#assignment-operator"},{include:"#decorator"},{include:"#docstring-statement"},{include:"#semicolon"}]},semicolon:{patterns:[{name:"invalid.deprecated.semicolon.python",match:"\\;$"}]},comments:{patterns:[{name:"comment.line.number-sign.python",contentName:"meta.typehint.comment.python",begin:"(?x)\n (?:\n \\# \\s* (type:)\n \\s*+ (?# we want `\\s*+` which is possessive quantifier since\n we do not actually want to backtrack when matching\n whitespace here)\n (?! $ | \\#)\n )\n",end:"(?:$|(?=\\#))",beginCaptures:{"0":{name:"meta.typehint.comment.python"},"1":{name:"comment.typehint.directive.notation.python"}},patterns:[{name:"comment.typehint.ignore.notation.python",match:"(?x)\n \\G ignore\n (?= \\s* (?: $ | \\#))\n"},{name:"comment.typehint.type.notation.python",match:"(?x)\n (?<!\\.)\\b(\n bool | bytes | float | int | object | str\n | List | Dict | Iterable | Sequence | Set\n | FrozenSet | Callable | Union | Tuple\n | Any | None\n )\\b\n"},{name:"comment.typehint.punctuation.notation.python",match:"([\\[\\]\\(\\),\\.\\=\\*]|(->))"},{name:"comment.typehint.variable.notation.python",match:"([[:alpha:]_]\\w*)"}]},{include:"#comments-base"}]},"docstring-statement":{begin:"^(?=\\s*[rR]?(\\'\\'\\'|\\\"\\\"\\\"|\\'|\\\"))",comment:"the string either terminates correctly or by the beginning of a new line (this is for single line docstrings that aren't terminated) AND it's not followed by another docstring",end:"((?<=\\1)|^)(?!\\s*[rR]?(\\'\\'\\'|\\\"\\\"\\\"|\\'|\\\"))",patterns:[{include:"#docstring"}]},docstring:{patterns:[{name:"string.quoted.docstring.multi.python",begin:"(\\'\\'\\'|\\\"\\\"\\\")",end:"(\\1)",beginCaptures:{"1":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"}},patterns:[{include:"#docstring-prompt"},{include:"#codetags"},{include:"#docstring-guts-unicode"}]},{name:"string.quoted.docstring.raw.multi.python",begin:"([rR])(\\'\\'\\'|\\\"\\\"\\\")",end:"(\\2)",beginCaptures:{"1":{name:"storage.type.string.python"},"2":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"}},patterns:[{include:"#string-consume-escape"},{include:"#docstring-prompt"},{include:"#codetags"}]},{name:"string.quoted.docstring.single.python",begin:"(\\'|\\\")",end:"(\\1)|(\\n)",beginCaptures:{"1":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#codetags"},{include:"#docstring-guts-unicode"}]},{name:"string.quoted.docstring.raw.single.python",begin:"([rR])(\\'|\\\")",end:"(\\2)|(\\n)",beginCaptures:{"1":{name:"storage.type.string.python"},"2":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#string-consume-escape"},{include:"#codetags"}]}]},"docstring-guts-unicode":{patterns:[{include:"#escape-sequence-unicode"},{include:"#escape-sequence"},{include:"#string-line-continuation"}]},"docstring-prompt":{match:"(?x)\n (?:\n (?:^|\\G) \\s* (?# '\\G' is necessary for ST)\n ((?:>>>|\\.\\.\\.) \\s) (?=\\s*\\S)\n )\n",captures:{"1":{name:"keyword.control.flow.python"}}},"statement-keyword":{patterns:[{name:"storage.type.function.python",match:"\\b((async\\s+)?\\s*def)\\b"},{name:"keyword.control.flow.python",comment:"if `as` is eventually followed by `:` or line continuation\nit's probably control flow like:\n with foo as bar, \\\n Foo as Bar:\n try:\n do_stuff()\n except Exception as e:\n pass\n",match:"\\b(?<!\\.)as\\b(?=.*[:\\\\])"},{name:"keyword.control.import.python",comment:"other legal use of `as` is in an import",match:"\\b(?<!\\.)as\\b"},{name:"keyword.control.flow.python",match:"(?x)\n \\b(?<!\\.)(\n async | continue | del | assert | break | finally | for\n | from | elif | else | if | except | pass | raise\n | return | try | while | with\n )\\b\n"},{name:"storage.modifier.declaration.python",match:"(?x)\n \\b(?<!\\.)(\n global | nonlocal\n )\\b\n"},{name:"storage.type.class.python",match:"\\b(?<!\\.)(class)\\b"}]},"expression-bare":{comment:"valid Python expressions w/o comments and line continuation",patterns:[{include:"#backticks"},{include:"#illegal-anno"},{include:"#literal"},{include:"#regexp"},{include:"#string"},{include:"#lambda"},{include:"#generator"},{include:"#illegal-operator"},{include:"#operator"},{include:"#curly-braces"},{include:"#item-access"},{include:"#list"},{include:"#odd-function-call"},{include:"#round-braces"},{include:"#function-call"},{include:"#builtin-functions"},{include:"#builtin-types"},{include:"#builtin-exceptions"},{include:"#magic-names"},{include:"#special-names"},{include:"#illegal-names"},{include:"#special-variables"},{include:"#ellipsis"},{include:"#punctuation"},{include:"#line-continuation"},{include:"#special-variables-types"}]},"expression-base":{comment:"valid Python expressions with comments and line continuation",patterns:[{include:"#comments"},{include:"#expression-bare"},{include:"#line-continuation"}]},expression:{comment:"All valid Python expressions",patterns:[{include:"#expression-base"},{include:"#member-access"},{comment:"Tokenize identifiers to help linters",match:"(?x) \\b ([[:alpha:]_]\\w*) \\b"}]},"member-access":{name:"meta.member.access.python",begin:"(\\.)\\s*(?!\\.)",end:"(?x)\n # stop when you've just read non-whitespace followed by non-word\n # i.e. when finished reading an identifier or function call\n (?<=\\S)(?=\\W) |\n # stop when seeing the start of something that's not a word,\n # i.e. when seeing a non-identifier\n (^|(?<=\\s))(?=[^\\\\\\w\\s]) |\n $\n",beginCaptures:{"1":{name:"punctuation.separator.period.python"}},patterns:[{include:"#function-call"},{include:"#member-access-base"},{include:"#member-access-attribute"}]},"member-access-base":{patterns:[{include:"#magic-names"},{include:"#illegal-names"},{include:"#illegal-object-name"},{include:"#special-names"},{include:"#line-continuation"},{include:"#item-access"},{include:"#special-variables-types"}]},"member-access-attribute":{comment:"Highlight attribute access in otherwise non-specialized cases.",name:"meta.attribute.python",match:"(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n"},"special-names":{name:"constant.other.caps.python",match:"(?x)\n \\b\n # we want to see \"enough\", meaning 2 or more upper-case\n # letters in the beginning of the constant\n #\n # for more details refer to:\n # https://github.com/MagicStack/MagicPython/issues/42\n (\n _* [[:upper:]] [_\\d]* [[:upper:]]\n )\n [[:upper:]\\d]* (_\\w*)?\n \\b\n"},"curly-braces":{begin:"\\{",end:"\\}",beginCaptures:{"0":{name:"punctuation.definition.dict.begin.python"}},endCaptures:{"0":{name:"punctuation.definition.dict.end.python"}},patterns:[{name:"punctuation.separator.dict.python",match:":"},{include:"#expression"}]},list:{begin:"\\[",end:"\\]",beginCaptures:{"0":{name:"punctuation.definition.list.begin.python"}},endCaptures:{"0":{name:"punctuation.definition.list.end.python"}},patterns:[{include:"#expression"}]},"odd-function-call":{comment:"A bit obscured function call where there may have been an\narbitrary number of other operations to get the function.\nE.g. \"arr[idx](args)\"\n",begin:"(?x)\n (?<= \\] | \\) ) \\s*\n (?=\\()\n",end:"(\\))",endCaptures:{"1":{name:"punctuation.definition.arguments.end.python"}},patterns:[{include:"#function-arguments"}]},"round-braces":{begin:"\\(",end:"\\)",beginCaptures:{"0":{name:"punctuation.parenthesis.begin.python"}},endCaptures:{"0":{name:"punctuation.parenthesis.end.python"}},patterns:[{include:"#expression"}]},"line-continuation":{patterns:[{match:"(\\\\)\\s*(\\S.*$\\n?)",captures:{"1":{name:"punctuation.separator.continuation.line.python"},"2":{name:"invalid.illegal.line.continuation.python"}}},{begin:"(\\\\)\\s*$\\n?",end:"(?x)\n (?=^\\s*$)\n |\n (?! (\\s* [rR]? (\\'\\'\\'|\\\"\\\"\\\"|\\'|\\\"))\n |\n (\\G $) (?# '\\G' is necessary for ST)\n )\n",beginCaptures:{"1":{name:"punctuation.separator.continuation.line.python"}},patterns:[{include:"#regexp"},{include:"#string"}]}]},"assignment-operator":{name:"keyword.operator.assignment.python",match:"(?x)\n <<= | >>= | //= | \\*\\*=\n | \\+= | -= | /= | @=\n | \\*= | %= | ~= | \\^= | &= | \\|=\n | =(?!=)\n"},operator:{match:"(?x)\n \\b(?<!\\.)\n (?:\n (and | or | not | in | is) (?# 1)\n |\n (for | if | else | await | (?:yield(?:\\s+from)?)) (?# 2)\n )\n (?!\\s*:)\\b\n\n | (<< | >> | & | \\| | \\^ | ~) (?# 3)\n\n | (\\*\\* | \\* | \\+ | - | % | // | / | @) (?# 4)\n\n | (!= | == | >= | <= | < | >) (?# 5)\n",captures:{"1":{name:"keyword.operator.logical.python"},"2":{name:"keyword.control.flow.python"},"3":{name:"keyword.operator.bitwise.python"},"4":{name:"keyword.operator.arithmetic.python"},"5":{name:"keyword.operator.comparison.python"}}},punctuation:{patterns:[{name:"punctuation.separator.colon.python",match:":"},{name:"punctuation.separator.element.python",match:","}]},literal:{patterns:[{name:"constant.language.python",match:"\\b(True|False|None|NotImplemented|Ellipsis)\\b"},{include:"#number"}]},number:{name:"constant.numeric.python",patterns:[{include:"#number-float"},{include:"#number-dec"},{include:"#number-hex"},{include:"#number-oct"},{include:"#number-bin"},{include:"#number-long"},{name:"invalid.illegal.name.python",match:"\\b[0-9]+\\w+"}]},"number-float":{name:"constant.numeric.float.python",match:"(?x)\n (?<! \\w)(?:\n (?:\n \\.[0-9](?: _?[0-9] )*\n |\n [0-9](?: _?[0-9] )* \\. [0-9](?: _?[0-9] )*\n |\n [0-9](?: _?[0-9] )* \\.\n ) (?: [eE][+-]?[0-9](?: _?[0-9] )* )?\n |\n [0-9](?: _?[0-9] )* (?: [eE][+-]?[0-9](?: _?[0-9] )* )\n )([jJ])?\\b\n",captures:{"1":{name:"storage.type.imaginary.number.python"}}},"number-dec":{name:"constant.numeric.dec.python",match:"(?x)\n (?<![\\w\\.])(?:\n [1-9](?: _?[0-9] )*\n |\n 0+\n |\n [0-9](?: _?[0-9] )* ([jJ])\n |\n 0 ([0-9]+)(?![eE\\.])\n )\\b\n",captures:{"1":{name:"storage.type.imaginary.number.python"},"2":{name:"invalid.illegal.dec.python"}}},"number-hex":{name:"constant.numeric.hex.python",match:"(?x)\n (?<![\\w\\.])\n (0[xX]) (_?[0-9a-fA-F])+\n \\b\n",captures:{"1":{name:"storage.type.number.python"}}},"number-oct":{name:"constant.numeric.oct.python",match:"(?x)\n (?<![\\w\\.])\n (0[oO]) (_?[0-7])+\n \\b\n",captures:{"1":{name:"storage.type.number.python"}}},"number-bin":{name:"constant.numeric.bin.python",match:"(?x)\n (?<![\\w\\.])\n (0[bB]) (_?[01])+\n \\b\n",captures:{"1":{name:"storage.type.number.python"}}},"number-long":{name:"constant.numeric.bin.python",comment:"this is to support python2 syntax for long ints",match:"(?x)\n (?<![\\w\\.])\n ([1-9][0-9]* | 0) ([lL])\n \\b\n",captures:{"2":{name:"storage.type.number.python"}}},regexp:{patterns:[{include:"#regexp-single-three-line"},{include:"#regexp-double-three-line"},{include:"#regexp-single-one-line"},{include:"#regexp-double-one-line"},{include:"#fregexp-single-three-line"},{include:"#fregexp-double-three-line"},{include:"#fregexp-single-one-line"},{include:"#fregexp-double-one-line"}]},string:{patterns:[{include:"#string-quoted-multi-line"},{include:"#string-quoted-single-line"},{include:"#string-bin-quoted-multi-line"},{include:"#string-bin-quoted-single-line"},{include:"#string-raw-quoted-multi-line"},{include:"#string-raw-quoted-single-line"},{include:"#string-raw-bin-quoted-multi-line"},{include:"#string-raw-bin-quoted-single-line"},{include:"#fstring-fnorm-quoted-multi-line"},{include:"#fstring-fnorm-quoted-single-line"},{include:"#fstring-normf-quoted-multi-line"},{include:"#fstring-normf-quoted-single-line"},{include:"#fstring-raw-quoted-multi-line"},{include:"#fstring-raw-quoted-single-line"}]},"string-unicode-guts":{patterns:[{include:"#escape-sequence-unicode"},{include:"#string-entity"},{include:"#string-brace-formatting"}]},"string-consume-escape":{match:"\\\\['\"\\n\\\\]"},"string-raw-guts":{patterns:[{include:"#string-consume-escape"},{include:"#string-formatting"},{include:"#string-brace-formatting"}]},"string-raw-bin-guts":{patterns:[{include:"#string-consume-escape"},{include:"#string-formatting"}]},"string-entity":{patterns:[{include:"#escape-sequence"},{include:"#string-line-continuation"},{include:"#string-formatting"}]},"fstring-guts":{patterns:[{include:"#escape-sequence-unicode"},{include:"#escape-sequence"},{include:"#string-line-continuation"},{include:"#fstring-formatting"}]},"fstring-raw-guts":{patterns:[{include:"#string-consume-escape"},{include:"#fstring-formatting"}]},"fstring-illegal-single-brace":{comment:"it is illegal to have a multiline brace inside a single-line string",begin:"(\\{)(?=[^\\n}]*$\\n?)",end:"(\\})|(?=\\n)",beginCaptures:{"1":{name:"constant.character.format.placeholder.other.python"}},endCaptures:{"1":{name:"constant.character.format.placeholder.other.python"}},patterns:[{include:"#fstring-terminator-single"},{include:"#f-expression"}]},"fstring-illegal-multi-brace":{patterns:[{include:"#impossible"}]},"f-expression":{comment:"All valid Python expressions, except comments and line continuation",patterns:[{include:"#expression-bare"},{include:"#member-access"},{comment:"Tokenize identifiers to help linters",match:"(?x) \\b ([[:alpha:]_]\\w*) \\b"}]},"escape-sequence-unicode":{patterns:[{name:"constant.character.escape.python",match:"(?x)\n \\\\ (\n u[0-9A-Fa-f]{4}\n | U[0-9A-Fa-f]{8}\n | N\\{[\\w\\s]+?\\}\n )\n"}]},"escape-sequence":{name:"constant.character.escape.python",match:"(?x)\n \\\\ (\n x[0-9A-Fa-f]{2}\n | [0-7]{1,3}\n | [\\\\\"'abfnrtv]\n )\n"},"string-line-continuation":{name:"constant.language.python",match:"\\\\$"},"string-formatting":{name:"meta.format.percent.python",match:"(?x)\n (\n % (\\([\\w\\s]*\\))?\n [-+#0 ]*\n (\\d+|\\*)? (\\.(\\d+|\\*))?\n ([hlL])?\n [diouxXeEfFgGcrsab%]\n )\n",captures:{"1":{name:"constant.character.format.placeholder.other.python"}}},"string-brace-formatting":{patterns:[{name:"meta.format.brace.python",match:"(?x)\n (\n {{ | }}\n | (?:\n {\n \\w* (\\.[[:alpha:]_]\\w* | \\[[^\\]'\"]+\\])*\n (![rsa])?\n ( : \\w? [<>=^]? [-+ ]? \\#?\n \\d* ,? (\\.\\d+)? [bcdeEfFgGnosxX%]? )?\n })\n )\n",captures:{"1":{name:"constant.character.format.placeholder.other.python"},"3":{name:"storage.type.format.python"},"4":{name:"storage.type.format.python"}}},{name:"meta.format.brace.python",match:"(?x)\n (\n {\n \\w* (\\.[[:alpha:]_]\\w* | \\[[^\\]'\"]+\\])*\n (![rsa])?\n (:)\n [^'\"{}\\n]* (?:\n \\{ [^'\"}\\n]*? \\} [^'\"{}\\n]*\n )*\n }\n )\n",captures:{"1":{name:"constant.character.format.placeholder.other.python"},"3":{name:"storage.type.format.python"},"4":{name:"storage.type.format.python"}}}]},"fstring-formatting":{patterns:[{include:"#fstring-formatting-braces"},{include:"#fstring-formatting-singe-brace"}]},"fstring-formatting-singe-brace":{name:"invalid.illegal.brace.python",match:"(}(?!}))"},"import":{comment:"Import statements used to correctly mark `from`, `import`, and `as`\n",patterns:[{begin:"\\b(?<!\\.)(from)\\b(?=.+import)",end:"$|(?=import)",beginCaptures:{"1":{name:"keyword.control.import.python"}},patterns:[{name:"punctuation.separator.period.python",match:"\\.+"},{include:"#expression"}]},{begin:"\\b(?<!\\.)(import)\\b",end:"$",beginCaptures:{"1":{name:"keyword.control.import.python"}},patterns:[{name:"keyword.control.import.python",match:"\\b(?<!\\.)as\\b"},{include:"#expression"}]}]},"class-declaration":{patterns:[{name:"meta.class.python",begin:"(?x)\n \\s*(class)\\s+\n (?=\n [[:alpha:]_]\\w* \\s* (:|\\()\n )\n",end:"(:)",beginCaptures:{"1":{name:"storage.type.class.python"}},endCaptures:{"1":{name:"punctuation.section.class.begin.python"}},patterns:[{include:"#class-name"},{include:"#class-inheritance"}]}]},"class-name":{patterns:[{include:"#illegal-object-name"},{include:"#builtin-possible-callables"},{name:"entity.name.type.class.python",match:"(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n"}]},"class-inheritance":{name:"meta.class.inheritance.python",begin:"(\\()",end:"(\\))",beginCaptures:{"1":{name:"punctuation.definition.inheritance.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.inheritance.end.python"}},patterns:[{name:"keyword.operator.unpacking.arguments.python",match:"(\\*\\*|\\*)"},{name:"punctuation.separator.inheritance.python",match:","},{name:"keyword.operator.assignment.python",match:"=(?!=)"},{name:"support.type.metaclass.python",match:"\\bmetaclass\\b"},{include:"#illegal-names"},{include:"#class-kwarg"},{include:"#call-wrapper-inheritance"},{include:"#expression-base"},{include:"#member-access-class"},{include:"#inheritance-identifier"}]},"class-kwarg":{match:"(?x)\n \\b ([[:alpha:]_]\\w*) \\s*(=)(?!=)\n",captures:{"1":{name:"entity.other.inherited-class.python variable.parameter.class.python"},"2":{name:"keyword.operator.assignment.python"}}},"inheritance-identifier":{match:"(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n",captures:{"1":{name:"entity.other.inherited-class.python"}}},"member-access-class":{name:"meta.member.access.python",begin:"(\\.)\\s*(?!\\.)",end:"(?<=\\S)(?=\\W)|$",beginCaptures:{"1":{name:"punctuation.separator.period.python"}},patterns:[{include:"#call-wrapper-inheritance"},{include:"#member-access-base"},{include:"#inheritance-identifier"}]},lambda:{patterns:[{match:"((?<=\\.)lambda|lambda(?=\\s*[\\.=]))",captures:{"1":{name:"keyword.control.flow.python"}}},{match:"\\b(lambda)\\s*?(?=[,\\n]|$)",captures:{"1":{name:"storage.type.function.lambda.python"}}},{name:"meta.lambda-function.python",begin:"(?x)\n \\b (lambda) \\b\n",end:"(:)|(\\n)",beginCaptures:{"1":{name:"storage.type.function.lambda.python"}},endCaptures:{"1":{name:"punctuation.section.function.lambda.begin.python"}},contentName:"meta.function.lambda.parameters.python",patterns:[{name:"keyword.operator.unpacking.parameter.python",match:"(\\*\\*|\\*)"},{include:"#lambda-nested-incomplete"},{include:"#illegal-names"},{match:"([[:alpha:]_]\\w*)\\s*(?:(,)|(?=:|$))",captures:{"1":{name:"variable.parameter.function.language.python"},"2":{name:"punctuation.separator.parameters.python"}}},{include:"#comments"},{include:"#backticks"},{include:"#illegal-anno"},{include:"#lambda-parameter-with-default"},{include:"#line-continuation"},{include:"#illegal-operator"}]}]},"lambda-incomplete":{name:"storage.type.function.lambda.python",match:"\\blambda(?=\\s*[,)])"},"lambda-nested-incomplete":{name:"storage.type.function.lambda.python",match:"\\blambda(?=\\s*[:,)])"},"lambda-parameter-with-default":{begin:"(?x)\n \\b\n ([[:alpha:]_]\\w*) \\s* (=)\n",end:"(,)|(?=:|$)",beginCaptures:{"1":{name:"variable.parameter.function.language.python"},"2":{name:"keyword.operator.python"}},endCaptures:{"1":{name:"punctuation.separator.parameters.python"}},patterns:[{include:"#expression"}]},generator:{comment:"Match \"for ... in\" construct used in generators and for loops to\ncorrectly identify the \"in\" as a control flow keyword.\n",begin:"\\bfor\\b",beginCaptures:{"0":{name:"keyword.control.flow.python"}},end:"\\bin\\b",endCaptures:{"0":{name:"keyword.control.flow.python"}},patterns:[{include:"#expression"}]},"function-declaration":{name:"meta.function.python",begin:"(?x)\n \\s*\n (?:\\b(async) \\s+)? \\b(def)\\s+\n (?=\n [[:alpha:]_][[:word:]]* \\s* \\(\n )\n",end:"(:|(?=[#'\"\\n]))",beginCaptures:{"1":{name:"storage.type.function.async.python"},"2":{name:"storage.type.function.python"}},endCaptures:{"1":{name:"punctuation.section.function.begin.python"}},patterns:[{include:"#function-def-name"},{include:"#parameters"},{include:"#line-continuation"},{include:"#return-annotation"}]},"function-def-name":{patterns:[{name:"entity.name.function.fallback.vyper",match:"(?x)\n \\b (__default__) \\b\n"},{name:"entity.name.function.constructor.vyper",match:"(?x)\n \\b (__init__) \\b\n"},{include:"#illegal-object-name"},{include:"#builtin-possible-callables"},{name:"entity.name.function.python",match:"(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n"}]},parameters:{name:"meta.function.parameters.python",begin:"(\\()",end:"(\\))",beginCaptures:{"1":{name:"punctuation.definition.parameters.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.parameters.end.python"}},patterns:[{name:"keyword.operator.unpacking.parameter.python",match:"(\\*\\*|\\*)"},{include:"#lambda-incomplete"},{include:"#illegal-names"},{include:"#illegal-object-name"},{include:"#parameter-special"},{match:"(?x)\n ([[:alpha:]_]\\w*)\n \\s* (?: (,) | (?=[)#\\n=]))\n",captures:{"1":{name:"variable.parameter.function.language.python"},"2":{name:"punctuation.separator.parameters.python"}}},{include:"#comments"},{include:"#loose-default"},{include:"#annotated-parameter"}]},"parameter-special":{match:"(?x)\n \\b ((self)|(cls)) \\b \\s*(?:(,)|(?=\\)))\n",captures:{"1":{name:"variable.parameter.function.language.python"},"2":{name:"variable.parameter.function.language.special.self.python"},"3":{name:"variable.parameter.function.language.special.cls.python"},"4":{name:"punctuation.separator.parameters.python"}}},"loose-default":{begin:"(=)",end:"(,)|(?=\\))",beginCaptures:{"1":{name:"keyword.operator.python"}},endCaptures:{"1":{name:"punctuation.separator.parameters.python"}},patterns:[{include:"#expression"}]},"annotated-parameter":{begin:"(?x)\n \\b\n ([[:alpha:]_]\\w*) \\s* (:)\n",end:"(,)|(?=\\))",beginCaptures:{"1":{name:"variable.parameter.function.language.python"},"2":{name:"punctuation.separator.annotation.python"}},endCaptures:{"1":{name:"punctuation.separator.parameters.python"}},patterns:[{include:"#expression"},{name:"keyword.operator.assignment.python",match:"=(?!=)"}]},"return-annotation":{begin:"(->)",end:"(?=:)",beginCaptures:{"1":{name:"punctuation.separator.annotation.result.python"}},patterns:[{include:"#expression"}]},"item-access":{patterns:[{name:"meta.item-access.python",begin:"(?x)\n \\b(?=\n [[:alpha:]_]\\w* \\s* \\[\n )\n",end:"(\\])",endCaptures:{"1":{name:"punctuation.definition.arguments.end.python"}},patterns:[{include:"#item-name"},{include:"#item-index"},{include:"#expression"}]}]},"item-name":{patterns:[{include:"#special-variables"},{include:"#builtin-functions"},{include:"#special-names"},{name:"meta.indexed-name.python",match:"(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n"},{include:"#special-variables-types"}]},"item-index":{begin:"(\\[)",end:"(?=\\])",beginCaptures:{"1":{name:"punctuation.definition.arguments.begin.python"}},contentName:"meta.item-access.arguments.python",patterns:[{name:"punctuation.separator.slice.python",match:":"},{include:"#expression"}]},decorator:{name:"meta.function.decorator.python",begin:"(?x)\n ^\\s*\n ((@)) \\s* (?=[[:alpha:]_]\\w*)\n",end:"(?x)\n ( \\) )\n # trailing whitespace and comments are legal\n (?: (.*?) (?=\\s*(?:\\#|$)) )\n | (?=\\n|\\#)\n",beginCaptures:{"1":{name:"entity.name.function.decorator.python"},"2":{name:"punctuation.definition.decorator.python"}},endCaptures:{"1":{name:"punctuation.definition.arguments.end.python"},"2":{name:"invalid.illegal.decorator.python"}},patterns:[{include:"#decorator-name"},{include:"#function-arguments"}]},"decorator-name":{patterns:[{include:"#builtin-callables"},{include:"#illegal-object-name"},{name:"entity.name.function.decorator.python",match:"(?x)\n ([[:alpha:]_]\\w*) | (\\.)\n",captures:{"2":{name:"punctuation.separator.period.python"}}},{include:"#line-continuation"},{name:"invalid.illegal.decorator.python",match:"(?x)\n \\s* ([^([:alpha:]\\s_\\.#\\\\] .*?) (?=\\#|$)\n",captures:{"1":{name:"invalid.illegal.decorator.python"}}}]},"call-wrapper-inheritance":{comment:"same as a function call, but in inheritance context",name:"meta.function-call.python",begin:"(?x)\n \\b(?=\n ([[:alpha:]_]\\w*) \\s* (\\()\n )\n",end:"(\\))",endCaptures:{"1":{name:"punctuation.definition.arguments.end.python"}},patterns:[{include:"#inheritance-name"},{include:"#function-arguments"}]},"inheritance-name":{patterns:[{include:"#lambda-incomplete"},{include:"#builtin-possible-callables"},{include:"#inheritance-identifier"}]},"function-call":{name:"meta.function-call.python",comment:"Regular function call of the type \"name(args)\"",begin:"(?x)\n \\b(?=\n ([[:alpha:]_]\\w*) \\s* (\\()\n )\n",end:"(\\))",endCaptures:{"1":{name:"punctuation.definition.arguments.end.python"}},patterns:[{include:"#special-variables"},{include:"#function-name"},{include:"#function-arguments"}]},"function-name":{patterns:[{include:"#builtin-possible-callables"},{comment:"Some color schemas support meta.function-call.generic scope",name:"meta.function-call.generic.python",match:"(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n"}]},"function-arguments":{begin:"(\\()",end:"(?=\\))(?!\\)\\s*\\()",beginCaptures:{"1":{name:"punctuation.definition.arguments.begin.python"}},contentName:"meta.function-call.arguments.python",patterns:[{name:"punctuation.separator.arguments.python",match:"(,)"},{match:"(?x)\n (?:(?<=[,(])|^) \\s* (\\*{1,2})\n",captures:{"1":{name:"keyword.operator.unpacking.arguments.python"}}},{include:"#lambda-incomplete"},{include:"#illegal-names"},{match:"\\b([[:alpha:]_]\\w*)\\s*(=)(?!=)",captures:{"1":{name:"variable.parameter.function-call.python"},"2":{name:"keyword.operator.assignment.python"}}},{name:"keyword.operator.assignment.python",match:"=(?!=)"},{include:"#expression"},{match:"\\s*(\\))\\s*(\\()",captures:{"1":{name:"punctuation.definition.arguments.end.python"},"2":{name:"punctuation.definition.arguments.begin.python"}}}]},"builtin-callables":{patterns:[{include:"#illegal-names"},{include:"#illegal-object-name"},{include:"#builtin-exceptions"},{include:"#builtin-functions"},{include:"#builtin-types"}]},"builtin-possible-callables":{patterns:[{include:"#builtin-callables"},{include:"#magic-names"}]},"builtin-exceptions":{name:"support.type.exception.python",match:"(?x) (?<!\\.) \\b(\n (\n Arithmetic | Assertion | Attribute | Buffer | BlockingIO\n | BrokenPipe | ChildProcess\n | (Connection (Aborted | Refused | Reset)?)\n | EOF | Environment | FileExists | FileNotFound\n | FloatingPoint | IO | Import | Indentation | Index | Interrupted\n | IsADirectory | NotADirectory | Permission | ProcessLookup\n | Timeout\n | Key | Lookup | Memory | Name | NotImplemented | OS | Overflow\n | Reference | Runtime | Recursion | Syntax | System\n | Tab | Type | UnboundLocal | Unicode(Encode|Decode|Translate)?\n | Value | Windows | ZeroDivision | ModuleNotFound\n ) Error\n|\n ((Pending)?Deprecation | Runtime | Syntax | User | Future | Import\n | Unicode | Bytes | Resource\n )? Warning\n|\n SystemExit | Stop(Async)?Iteration\n | KeyboardInterrupt\n | GeneratorExit | (Base)?Exception\n)\\b\n"},"builtin-functions":{patterns:[{name:"support.function.builtin.python",match:"(?x)\n (?<!\\.) \\b(\n __import__ | abs | all | any | ascii | bin | breakpoint | callable\n | chr | compile | copyright | credits | delattr | dir | divmod\n | enumerate | eval | exec | exit | filter | format | getattr\n | globals | hasattr | hash | help | hex | id | input\n | isinstance | issubclass | iter | len | license | locals | map\n | max | memoryview | min | next | oct | open | ord | pow | print\n | quit | range | reload | repr | reversed | round\n | setattr | sorted | sum | vars | zip\n )\\b\n"},{name:"variable.legacy.builtin.python",match:"(?x)\n (?<!\\.) \\b(\n file | reduce | intern | raw_input | unicode | cmp | basestring\n | execfile | long | xrange\n )\\b\n"},{name:"support.function.builtin.vyper",match:"(?x)\n (?<!\\.) \\b(\n _abi_encode | floor | ceil | convert | slice | len | concat | sha256 | method_id | keccak256 | ecrecover | ecadd | ecmul | extract32 | as_wei_value | raw_call | blockhash | bitwise_and | bitwise_or | bitwise_xor | bitwise_not | uint256_addmod | uint256_mulmod | pow_mod256 | sqrt | shift | create_forwarder_to | min | max | empty | abs )\\b\n"},{name:"support.function.builtin.lowlevel.vyper",match:"(?x)\n (?<!\\.) \\b(\n send | selfdestruct | raw_call | raw_log | create_forwarder_to )\\b\n"},{name:"support.type.event.vyper",match:"(?x)\n (?<!\\.) \\b(\n event )\\b\n"},{name:"support.type.reference.vyper",match:"(?x)\n (?<!\\.) \\b(\n map | struct | HashMap )\\b\n"},{name:"support.function.builtin.modifiers.safe.vyper",match:"(?x)\n (?<!\\.) \\b(\n private | nonreentrant | constant | event | internal | view | pure )\\b\n"},{name:"support.function.builtin.modifiers.unsafe.vyper",match:"(?x)\n (?<!\\.) \\b(\n public | payable | modifying | external )\\b\n"}]},"builtin-types":{patterns:[{name:"support.type.python",match:"(?x)\n (?<!\\.) \\b(\n bool | bytearray | bytes | classmethod | complex | dict\n | float | frozenset | int | list | object | property\n | set | slice | staticmethod | str | tuple | type\n\n (?# Although 'super' is not a type, it's related to types,\n and is special enough to be highlighted differently from\n other built-ins)\n | super\n )\\b\n"},{name:"support.type.basetype.vyper",match:"(?x)\n (?<!\\.) \\b(\n bytes32 | bytearray | wei_value | timestamp | int256 | uint8 | uint256 | decimal | timedelta | string | int128 | address | bool | bytes )\\b\n"},{name:"support.type.keywords.vyper",match:"(?x)\n (?<!\\.) \\b(\n finney | gwei | range | def | ____init____ | timedelta | babbage | zero_address | raise | external | empty_bytes32 | assert | continue | wei | ada | min_int256 | min_int128 | chainid | max_decimal | default | indexed | selfdestruct | lovelace | immutable | throw | kwei | max_int128 | while | constant | ___default___ | balance | twei | codesize | false | max_int256 | _default_ | init | mwei | if | ____default____ | true | payable | internal | until | this | nonpayable | pass | public | nonreentrant | blockhash | max_uint256 | shannon | none | units | _init_ | ___init___ | is_contract | for | zero_wei | min_decimal | szabo | timestamp | ether | pwei | send )\\b\n"},{name:"support.type.unit.vyper",match:"(?x)\n (?<!\\.) \\b(\n shannon | finney | gwei | twei | kwei | wei | lovelace | ether | szabo | pwei | babbage | mwei | ada \n\n (?# Although 'super' is not a type, it's related to types,\n and is special enough to be highlighted differently from\n other built-ins)\n | super\n )\\b\n"},{name:"support.type.constant.vyper",match:"(?x)\n (?<!\\.) \\b(\n ZERO_ADDRESS | EMPTY_BYTES32 | MAX_INT128 | MIN_INT128 | MAX_DECIMAL | MIN_DECIMAL | MAX_UINT256 \n\n (?# Although 'super' is not a type, it's related to types,\n and is special enough to be highlighted differently from\n other built-ins)\n | super\n )\\b\n"},{name:"entity.other.inherited-class.interface.vyper",match:"(?x)\n (?<!\\.) \\b(\n implements )\\b\n"}]},"magic-function-names":{comment:"these methods have magic interpretation by python and are generally called\nindirectly through syntactic constructs\n",match:"(?x)\n \\b(\n __(?:\n abs | add | aenter | aexit | aiter | and | anext | await\n | bool | call | ceil | cmp | coerce | complex | contains\n | copy | deepcopy | del | delattr | delete | delitem\n | delslice | dir | div | divmod | enter | eq | exit | float\n | floor | floordiv | format | ge | get | getattr\n | getattribute | getinitargs | getitem | getnewargs\n | getslice | getstate | gt | hash | hex | iadd | iand | idiv\n | ifloordiv | ilshift | imod | imul | index | init\n | instancecheck | int | invert | ior | ipow | irshift | isub\n | iter | itruediv | ixor | le | len | long | lshift | lt\n | missing | mod | mul | ne | neg | new | next | nonzero | oct | or\n | pos | pow | radd | rand | rdiv | rdivmod | reduce\n | reduce_ex | repr | reversed | rfloordiv | rlshift | rmod\n | rmul | ror | round | rpow | rrshift | rshift | rsub\n | rtruediv | rxor | set | setattr | setitem | setslice\n | setstate | sizeof | str | sub | subclasscheck | truediv\n | trunc | unicode | xor | matmul | rmatmul | imatmul\n | init_subclass | set_name | fspath | bytes | prepare\n )__\n )\\b\n",captures:{"1":{name:"support.function.magic.python"}}},"magic-variable-names":{comment:"magic variables which a class/module may have.",match:"(?x)\n \\b(\n __(?:\n all | bases | builtins | class | class_getitem | code | debug\n | defaults | dict | doc | file | func | kwdefaults | members\n | metaclass | methods | module | mro | mro_entries | name\n | qualname | post_init | self | signature | slots | subclasses\n | version | weakref | wrapped | annotations | classcell\n | spec | path | package | future | traceback\n )__\n )\\b\n",captures:{"1":{name:"support.variable.magic.python"}}},"magic-names":{patterns:[{include:"#magic-function-names"},{include:"#magic-variable-names"}]},"illegal-names":{match:"(?x)\n \\b(?:\n (\n and | assert | async | await | break | class | continue | def\n | del | elif | else | except | finally | for | from | global\n | if | in | is | (?<=\\.)lambda | lambda(?=\\s*[\\.=])\n | nonlocal | not | or | pass | raise | return | try | while | with\n | yield\n ) | (\n as | import\n )\n )\\b\n",captures:{"1":{name:"keyword.control.flow.python"},"2":{name:"keyword.control.import.python"}}},"special-variables":{match:"(?x)\n \\b (?<!\\.) (?:\n (self) | (cls)\n )\\b\n",captures:{"1":{name:"variable.language.special.self.python"},"2":{name:"variable.language.special.cls.python"}}},ellipsis:{name:"constant.other.ellipsis.python",match:"\\.\\.\\."},backticks:{name:"invalid.deprecated.backtick.python",begin:"\\`",end:"(?:\\`|(?<!\\\\)(\\n))",patterns:[{include:"#expression"}]},"illegal-operator":{patterns:[{name:"invalid.illegal.operator.python",match:"&&|\\|\\||--|\\+\\+"},{name:"invalid.illegal.operator.python",match:"[?$]"},{name:"invalid.illegal.operator.python",comment:"We don't want `!` to flash when we're typing `!=`",match:"!\\b"}]},"illegal-object-name":{comment:"It's illegal to name class or function \"True\"",name:"keyword.illegal.name.python",match:"\\b(True|False|None)\\b"},"illegal-anno":{name:"invalid.illegal.annotation.python",match:"->"},"regexp-base-expression":{patterns:[{include:"#regexp-quantifier"},{include:"#regexp-base-common"}]},"fregexp-base-expression":{patterns:[{include:"#fregexp-quantifier"},{include:"#fstring-formatting-braces"},{match:"\\{.*?\\}"},{include:"#regexp-base-common"}]},"fstring-formatting-braces":{patterns:[{comment:"empty braces are illegal",match:"({)(\\s*?)(})",captures:{"1":{name:"constant.character.format.placeholder.other.python"},"2":{name:"invalid.illegal.brace.python"},"3":{name:"constant.character.format.placeholder.other.python"}}},{name:"constant.character.escape.python",match:"({{|}})"}]},"regexp-base-common":{patterns:[{name:"support.other.match.any.regexp",match:"\\."},{name:"support.other.match.begin.regexp",match:"\\^"},{name:"support.other.match.end.regexp",match:"\\$"},{name:"keyword.operator.quantifier.regexp",match:"[+*?]\\??"},{name:"keyword.operator.disjunction.regexp",match:"\\|"},{include:"#regexp-escape-sequence"}]},"regexp-quantifier":{name:"keyword.operator.quantifier.regexp",match:"(?x)\n \\{(\n \\d+ | \\d+,(\\d+)? | ,\\d+\n )\\}\n"},"fregexp-quantifier":{name:"keyword.operator.quantifier.regexp",match:"(?x)\n \\{\\{(\n \\d+ | \\d+,(\\d+)? | ,\\d+\n )\\}\\}\n"},"regexp-backreference-number":{name:"meta.backreference.regexp",match:"(\\\\[1-9]\\d?)",captures:{"1":{name:"entity.name.tag.backreference.regexp"}}},"regexp-backreference":{name:"meta.backreference.named.regexp",match:"(?x)\n (\\() (\\?P= \\w+(?:\\s+[[:alnum:]]+)?) (\\))\n",captures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.begin.regexp"},"2":{name:"entity.name.tag.named.backreference.regexp"},"3":{name:"support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.end.regexp"}}},"regexp-flags":{name:"storage.modifier.flag.regexp",match:"\\(\\?[aiLmsux]+\\)"},"regexp-escape-special":{name:"support.other.escape.special.regexp",match:"\\\\([AbBdDsSwWZ])"},"regexp-escape-character":{name:"constant.character.escape.regexp",match:"(?x)\n \\\\ (\n x[0-9A-Fa-f]{2}\n | 0[0-7]{1,2}\n | [0-7]{3}\n )\n"},"regexp-escape-unicode":{name:"constant.character.unicode.regexp",match:"(?x)\n \\\\ (\n u[0-9A-Fa-f]{4}\n | U[0-9A-Fa-f]{8}\n )\n"},"regexp-escape-catchall":{name:"constant.character.escape.regexp",match:"\\\\(.|\\n)"},"regexp-escape-sequence":{patterns:[{include:"#regexp-escape-special"},{include:"#regexp-escape-character"},{include:"#regexp-escape-unicode"},{include:"#regexp-backreference-number"},{include:"#regexp-escape-catchall"}]},"regexp-charecter-set-escapes":{patterns:[{name:"constant.character.escape.regexp",match:"\\\\[abfnrtv\\\\]"},{include:"#regexp-escape-special"},{name:"constant.character.escape.regexp",match:"\\\\([0-7]{1,3})"},{include:"#regexp-escape-character"},{include:"#regexp-escape-unicode"},{include:"#regexp-escape-catchall"}]},codetags:{match:"(?:\\b(NOTE|XXX|HACK|FIXME|BUG|TODO)\\b)",captures:{"1":{name:"keyword.codetag.notation.python"}}},"comments-base":{name:"comment.line.number-sign.python",begin:"(\\#)",beginCaptures:{"1":{name:"punctuation.definition.comment.python"}},end:"($)",patterns:[{include:"#codetags"}]},"comments-string-single-three":{name:"comment.line.number-sign.python",begin:"(\\#)",beginCaptures:{"1":{name:"punctuation.definition.comment.python"}},end:"($|(?='''))",patterns:[{include:"#codetags"}]},"comments-string-double-three":{name:"comment.line.number-sign.python",begin:"(\\#)",beginCaptures:{"1":{name:"punctuation.definition.comment.python"}},end:"($|(?=\"\"\"))",patterns:[{include:"#codetags"}]},"single-one-regexp-expression":{patterns:[{include:"#regexp-base-expression"},{include:"#single-one-regexp-character-set"},{include:"#single-one-regexp-comments"},{include:"#regexp-flags"},{include:"#single-one-regexp-named-group"},{include:"#regexp-backreference"},{include:"#single-one-regexp-lookahead"},{include:"#single-one-regexp-lookahead-negative"},{include:"#single-one-regexp-lookbehind"},{include:"#single-one-regexp-lookbehind-negative"},{include:"#single-one-regexp-conditional"},{include:"#single-one-regexp-parentheses-non-capturing"},{include:"#single-one-regexp-parentheses"}]},"single-one-regexp-character-set":{patterns:[{match:"(?x)\n \\[ \\^? \\] (?! .*?\\])\n"},{name:"meta.character.set.regexp",begin:"(\\[)(\\^)?(\\])?",end:"(\\]|(?=\\'))|((?=(?<!\\\\)\\n))",beginCaptures:{"1":{name:"punctuation.character.set.begin.regexp constant.other.set.regexp"},"2":{name:"keyword.operator.negation.regexp"},"3":{name:"constant.character.set.regexp"}},endCaptures:{"1":{name:"punctuation.character.set.end.regexp constant.other.set.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#regexp-charecter-set-escapes"},{name:"constant.character.set.regexp",match:"[^\\n]"}]}]},"single-one-regexp-named-group":{name:"meta.named.regexp",begin:"(?x)\n (\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n",end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",beginCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},"2":{name:"entity.name.tag.named.group.regexp"}},endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-comments":{name:"comment.regexp",begin:"\\(\\?#",end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"punctuation.comment.begin.regexp"}},endCaptures:{"1":{name:"punctuation.comment.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#codetags"}]},"single-one-regexp-lookahead":{begin:"(\\()\\?=",end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"keyword.operator.lookahead.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-lookahead-negative":{begin:"(\\()\\?!",end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"keyword.operator.lookahead.negative.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-lookbehind":{begin:"(\\()\\?<=",end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"keyword.operator.lookbehind.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-lookbehind-negative":{begin:"(\\()\\?<!",end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"keyword.operator.lookbehind.negative.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-conditional":{begin:"(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)",end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"keyword.operator.conditional.regexp"},"1":{name:"punctuation.parenthesis.conditional.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-parentheses-non-capturing":{begin:"\\(\\?:",end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-one-regexp-parentheses":{begin:"\\(",end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"single-three-regexp-expression":{patterns:[{include:"#regexp-base-expression"},{include:"#single-three-regexp-character-set"},{include:"#single-three-regexp-comments"},{include:"#regexp-flags"},{include:"#single-three-regexp-named-group"},{include:"#regexp-backreference"},{include:"#single-three-regexp-lookahead"},{include:"#single-three-regexp-lookahead-negative"},{include:"#single-three-regexp-lookbehind"},{include:"#single-three-regexp-lookbehind-negative"},{include:"#single-three-regexp-conditional"},{include:"#single-three-regexp-parentheses-non-capturing"},{include:"#single-three-regexp-parentheses"},{include:"#comments-string-single-three"}]},"single-three-regexp-character-set":{patterns:[{match:"(?x)\n \\[ \\^? \\] (?! .*?\\])\n"},{name:"meta.character.set.regexp",begin:"(\\[)(\\^)?(\\])?",end:"(\\]|(?=\\'\\'\\'))",beginCaptures:{"1":{name:"punctuation.character.set.begin.regexp constant.other.set.regexp"},"2":{name:"keyword.operator.negation.regexp"},"3":{name:"constant.character.set.regexp"}},endCaptures:{"1":{name:"punctuation.character.set.end.regexp constant.other.set.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#regexp-charecter-set-escapes"},{name:"constant.character.set.regexp",match:"[^\\n]"}]}]},"single-three-regexp-named-group":{name:"meta.named.regexp",begin:"(?x)\n (\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n",end:"(\\)|(?=\\'\\'\\'))",beginCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},"2":{name:"entity.name.tag.named.group.regexp"}},endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-comments":{name:"comment.regexp",begin:"\\(\\?#",end:"(\\)|(?=\\'\\'\\'))",beginCaptures:{"0":{name:"punctuation.comment.begin.regexp"}},endCaptures:{"1":{name:"punctuation.comment.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#codetags"}]},"single-three-regexp-lookahead":{begin:"(\\()\\?=",end:"(\\)|(?=\\'\\'\\'))",beginCaptures:{"0":{name:"keyword.operator.lookahead.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-lookahead-negative":{begin:"(\\()\\?!",end:"(\\)|(?=\\'\\'\\'))",beginCaptures:{"0":{name:"keyword.operator.lookahead.negative.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-lookbehind":{begin:"(\\()\\?<=",end:"(\\)|(?=\\'\\'\\'))",beginCaptures:{"0":{name:"keyword.operator.lookbehind.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-lookbehind-negative":{begin:"(\\()\\?<!",end:"(\\)|(?=\\'\\'\\'))",beginCaptures:{"0":{name:"keyword.operator.lookbehind.negative.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-conditional":{begin:"(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)",end:"(\\)|(?=\\'\\'\\'))",beginCaptures:{"0":{name:"keyword.operator.conditional.regexp"},"1":{name:"punctuation.parenthesis.conditional.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-parentheses-non-capturing":{begin:"\\(\\?:",end:"(\\)|(?=\\'\\'\\'))",beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"single-three-regexp-parentheses":{begin:"\\(",end:"(\\)|(?=\\'\\'\\'))",beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"},{include:"#comments-string-single-three"}]},"double-one-regexp-expression":{patterns:[{include:"#regexp-base-expression"},{include:"#double-one-regexp-character-set"},{include:"#double-one-regexp-comments"},{include:"#regexp-flags"},{include:"#double-one-regexp-named-group"},{include:"#regexp-backreference"},{include:"#double-one-regexp-lookahead"},{include:"#double-one-regexp-lookahead-negative"},{include:"#double-one-regexp-lookbehind"},{include:"#double-one-regexp-lookbehind-negative"},{include:"#double-one-regexp-conditional"},{include:"#double-one-regexp-parentheses-non-capturing"},{include:"#double-one-regexp-parentheses"}]},"double-one-regexp-character-set":{patterns:[{match:"(?x)\n \\[ \\^? \\] (?! .*?\\])\n"},{name:"meta.character.set.regexp",begin:"(\\[)(\\^)?(\\])?",end:"(\\]|(?=\"))|((?=(?<!\\\\)\\n))",beginCaptures:{"1":{name:"punctuation.character.set.begin.regexp constant.other.set.regexp"},"2":{name:"keyword.operator.negation.regexp"},"3":{name:"constant.character.set.regexp"}},endCaptures:{"1":{name:"punctuation.character.set.end.regexp constant.other.set.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#regexp-charecter-set-escapes"},{name:"constant.character.set.regexp",match:"[^\\n]"}]}]},"double-one-regexp-named-group":{name:"meta.named.regexp",begin:"(?x)\n (\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n",end:"(\\)|(?=\"))|((?=(?<!\\\\)\\n))",beginCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},"2":{name:"entity.name.tag.named.group.regexp"}},endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-comments":{name:"comment.regexp",begin:"\\(\\?#",end:"(\\)|(?=\"))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"punctuation.comment.begin.regexp"}},endCaptures:{"1":{name:"punctuation.comment.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#codetags"}]},"double-one-regexp-lookahead":{begin:"(\\()\\?=",end:"(\\)|(?=\"))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"keyword.operator.lookahead.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-lookahead-negative":{begin:"(\\()\\?!",end:"(\\)|(?=\"))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"keyword.operator.lookahead.negative.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-lookbehind":{begin:"(\\()\\?<=",end:"(\\)|(?=\"))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"keyword.operator.lookbehind.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-lookbehind-negative":{begin:"(\\()\\?<!",end:"(\\)|(?=\"))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"keyword.operator.lookbehind.negative.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-conditional":{begin:"(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)",end:"(\\)|(?=\"))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"keyword.operator.conditional.regexp"},"1":{name:"punctuation.parenthesis.conditional.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-parentheses-non-capturing":{begin:"\\(\\?:",end:"(\\)|(?=\"))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-one-regexp-parentheses":{begin:"\\(",end:"(\\)|(?=\"))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"double-three-regexp-expression":{patterns:[{include:"#regexp-base-expression"},{include:"#double-three-regexp-character-set"},{include:"#double-three-regexp-comments"},{include:"#regexp-flags"},{include:"#double-three-regexp-named-group"},{include:"#regexp-backreference"},{include:"#double-three-regexp-lookahead"},{include:"#double-three-regexp-lookahead-negative"},{include:"#double-three-regexp-lookbehind"},{include:"#double-three-regexp-lookbehind-negative"},{include:"#double-three-regexp-conditional"},{include:"#double-three-regexp-parentheses-non-capturing"},{include:"#double-three-regexp-parentheses"},{include:"#comments-string-double-three"}]},"double-three-regexp-character-set":{patterns:[{match:"(?x)\n \\[ \\^? \\] (?! .*?\\])\n"},{name:"meta.character.set.regexp",begin:"(\\[)(\\^)?(\\])?",end:"(\\]|(?=\"\"\"))",beginCaptures:{"1":{name:"punctuation.character.set.begin.regexp constant.other.set.regexp"},"2":{name:"keyword.operator.negation.regexp"},"3":{name:"constant.character.set.regexp"}},endCaptures:{"1":{name:"punctuation.character.set.end.regexp constant.other.set.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#regexp-charecter-set-escapes"},{name:"constant.character.set.regexp",match:"[^\\n]"}]}]},"double-three-regexp-named-group":{name:"meta.named.regexp",begin:"(?x)\n (\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n",end:"(\\)|(?=\"\"\"))",beginCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},"2":{name:"entity.name.tag.named.group.regexp"}},endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-comments":{name:"comment.regexp",begin:"\\(\\?#",end:"(\\)|(?=\"\"\"))",beginCaptures:{"0":{name:"punctuation.comment.begin.regexp"}},endCaptures:{"1":{name:"punctuation.comment.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#codetags"}]},"double-three-regexp-lookahead":{begin:"(\\()\\?=",end:"(\\)|(?=\"\"\"))",beginCaptures:{"0":{name:"keyword.operator.lookahead.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-lookahead-negative":{begin:"(\\()\\?!",end:"(\\)|(?=\"\"\"))",beginCaptures:{"0":{name:"keyword.operator.lookahead.negative.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-lookbehind":{begin:"(\\()\\?<=",end:"(\\)|(?=\"\"\"))",beginCaptures:{"0":{name:"keyword.operator.lookbehind.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-lookbehind-negative":{begin:"(\\()\\?<!",end:"(\\)|(?=\"\"\"))",beginCaptures:{"0":{name:"keyword.operator.lookbehind.negative.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-conditional":{begin:"(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)",end:"(\\)|(?=\"\"\"))",beginCaptures:{"0":{name:"keyword.operator.conditional.regexp"},"1":{name:"punctuation.parenthesis.conditional.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-parentheses-non-capturing":{begin:"\\(\\?:",end:"(\\)|(?=\"\"\"))",beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"double-three-regexp-parentheses":{begin:"\\(",end:"(\\)|(?=\"\"\"))",beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"},{include:"#comments-string-double-three"}]},"regexp-single-one-line":{name:"string.regexp.quoted.single.python",begin:"\\b(([uU]r)|([bB]r)|(r[bB]?))(\\')",end:"(\\')|(?<!\\\\)(\\n)",beginCaptures:{"2":{name:"invalid.deprecated.prefix.python"},"3":{name:"storage.type.string.python"},"4":{name:"storage.type.string.python"},"5":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-regexp-expression"}]},"regexp-single-three-line":{name:"string.regexp.quoted.multi.python",begin:"\\b(([uU]r)|([bB]r)|(r[bB]?))(\\'\\'\\')",end:"(\\'\\'\\')",beginCaptures:{"2":{name:"invalid.deprecated.prefix.python"},"3":{name:"storage.type.string.python"},"4":{name:"storage.type.string.python"},"5":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-regexp-expression"}]},"regexp-double-one-line":{name:"string.regexp.quoted.single.python",begin:"\\b(([uU]r)|([bB]r)|(r[bB]?))(\")",end:"(\")|(?<!\\\\)(\\n)",beginCaptures:{"2":{name:"invalid.deprecated.prefix.python"},"3":{name:"storage.type.string.python"},"4":{name:"storage.type.string.python"},"5":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-regexp-expression"}]},"regexp-double-three-line":{name:"string.regexp.quoted.multi.python",begin:"\\b(([uU]r)|([bB]r)|(r[bB]?))(\"\"\")",end:"(\"\"\")",beginCaptures:{"2":{name:"invalid.deprecated.prefix.python"},"3":{name:"storage.type.string.python"},"4":{name:"storage.type.string.python"},"5":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-regexp-expression"}]},"single-one-fregexp-expression":{patterns:[{include:"#fregexp-base-expression"},{include:"#single-one-regexp-character-set"},{include:"#single-one-regexp-comments"},{include:"#regexp-flags"},{include:"#single-one-regexp-named-group"},{include:"#regexp-backreference"},{include:"#single-one-fregexp-lookahead"},{include:"#single-one-fregexp-lookahead-negative"},{include:"#single-one-fregexp-lookbehind"},{include:"#single-one-fregexp-lookbehind-negative"},{include:"#single-one-fregexp-conditional"},{include:"#single-one-fregexp-parentheses-non-capturing"},{include:"#single-one-fregexp-parentheses"}]},"single-one-fregexp-named-group":{name:"meta.named.regexp",begin:"(?x)\n (\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n",end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",beginCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},"2":{name:"entity.name.tag.named.group.regexp"}},endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-fregexp-expression"}]},"single-one-fregexp-lookahead":{begin:"(\\()\\?=",end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"keyword.operator.lookahead.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-fregexp-expression"}]},"single-one-fregexp-lookahead-negative":{begin:"(\\()\\?!",end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"keyword.operator.lookahead.negative.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-fregexp-expression"}]},"single-one-fregexp-lookbehind":{begin:"(\\()\\?<=",end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"keyword.operator.lookbehind.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-fregexp-expression"}]},"single-one-fregexp-lookbehind-negative":{begin:"(\\()\\?<!",end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"keyword.operator.lookbehind.negative.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-fregexp-expression"}]},"single-one-fregexp-conditional":{begin:"(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)",end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"keyword.operator.conditional.regexp"},"1":{name:"punctuation.parenthesis.conditional.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-fregexp-expression"}]},"single-one-fregexp-parentheses-non-capturing":{begin:"\\(\\?:",end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-fregexp-expression"}]},"single-one-fregexp-parentheses":{begin:"\\(",end:"(\\)|(?=\\'))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-fregexp-expression"}]},"single-three-fregexp-expression":{patterns:[{include:"#fregexp-base-expression"},{include:"#single-three-regexp-character-set"},{include:"#single-three-regexp-comments"},{include:"#regexp-flags"},{include:"#single-three-regexp-named-group"},{include:"#regexp-backreference"},{include:"#single-three-fregexp-lookahead"},{include:"#single-three-fregexp-lookahead-negative"},{include:"#single-three-fregexp-lookbehind"},{include:"#single-three-fregexp-lookbehind-negative"},{include:"#single-three-fregexp-conditional"},{include:"#single-three-fregexp-parentheses-non-capturing"},{include:"#single-three-fregexp-parentheses"},{include:"#comments-string-single-three"}]},"single-three-fregexp-named-group":{name:"meta.named.regexp",begin:"(?x)\n (\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n",end:"(\\)|(?=\\'\\'\\'))",beginCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},"2":{name:"entity.name.tag.named.group.regexp"}},endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-fregexp-expression"},{include:"#comments-string-single-three"}]},"single-three-fregexp-lookahead":{begin:"(\\()\\?=",end:"(\\)|(?=\\'\\'\\'))",beginCaptures:{"0":{name:"keyword.operator.lookahead.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-fregexp-expression"},{include:"#comments-string-single-three"}]},"single-three-fregexp-lookahead-negative":{begin:"(\\()\\?!",end:"(\\)|(?=\\'\\'\\'))",beginCaptures:{"0":{name:"keyword.operator.lookahead.negative.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-fregexp-expression"},{include:"#comments-string-single-three"}]},"single-three-fregexp-lookbehind":{begin:"(\\()\\?<=",end:"(\\)|(?=\\'\\'\\'))",beginCaptures:{"0":{name:"keyword.operator.lookbehind.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-fregexp-expression"},{include:"#comments-string-single-three"}]},"single-three-fregexp-lookbehind-negative":{begin:"(\\()\\?<!",end:"(\\)|(?=\\'\\'\\'))",beginCaptures:{"0":{name:"keyword.operator.lookbehind.negative.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-fregexp-expression"},{include:"#comments-string-single-three"}]},"single-three-fregexp-conditional":{begin:"(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)",end:"(\\)|(?=\\'\\'\\'))",beginCaptures:{"0":{name:"keyword.operator.conditional.regexp"},"1":{name:"punctuation.parenthesis.conditional.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-fregexp-expression"},{include:"#comments-string-single-three"}]},"single-three-fregexp-parentheses-non-capturing":{begin:"\\(\\?:",end:"(\\)|(?=\\'\\'\\'))",beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-fregexp-expression"},{include:"#comments-string-single-three"}]},"single-three-fregexp-parentheses":{begin:"\\(",end:"(\\)|(?=\\'\\'\\'))",beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-fregexp-expression"},{include:"#comments-string-single-three"}]},"double-one-fregexp-expression":{patterns:[{include:"#fregexp-base-expression"},{include:"#double-one-regexp-character-set"},{include:"#double-one-regexp-comments"},{include:"#regexp-flags"},{include:"#double-one-regexp-named-group"},{include:"#regexp-backreference"},{include:"#double-one-fregexp-lookahead"},{include:"#double-one-fregexp-lookahead-negative"},{include:"#double-one-fregexp-lookbehind"},{include:"#double-one-fregexp-lookbehind-negative"},{include:"#double-one-fregexp-conditional"},{include:"#double-one-fregexp-parentheses-non-capturing"},{include:"#double-one-fregexp-parentheses"}]},"double-one-fregexp-named-group":{name:"meta.named.regexp",begin:"(?x)\n (\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n",end:"(\\)|(?=\"))|((?=(?<!\\\\)\\n))",beginCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},"2":{name:"entity.name.tag.named.group.regexp"}},endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-fregexp-expression"}]},"double-one-fregexp-lookahead":{begin:"(\\()\\?=",end:"(\\)|(?=\"))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"keyword.operator.lookahead.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-fregexp-expression"}]},"double-one-fregexp-lookahead-negative":{begin:"(\\()\\?!",end:"(\\)|(?=\"))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"keyword.operator.lookahead.negative.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-fregexp-expression"}]},"double-one-fregexp-lookbehind":{begin:"(\\()\\?<=",end:"(\\)|(?=\"))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"keyword.operator.lookbehind.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-fregexp-expression"}]},"double-one-fregexp-lookbehind-negative":{begin:"(\\()\\?<!",end:"(\\)|(?=\"))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"keyword.operator.lookbehind.negative.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-fregexp-expression"}]},"double-one-fregexp-conditional":{begin:"(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)",end:"(\\)|(?=\"))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"keyword.operator.conditional.regexp"},"1":{name:"punctuation.parenthesis.conditional.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-fregexp-expression"}]},"double-one-fregexp-parentheses-non-capturing":{begin:"\\(\\?:",end:"(\\)|(?=\"))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-fregexp-expression"}]},"double-one-fregexp-parentheses":{begin:"\\(",end:"(\\)|(?=\"))|((?=(?<!\\\\)\\n))",beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-fregexp-expression"}]},"double-three-fregexp-expression":{patterns:[{include:"#fregexp-base-expression"},{include:"#double-three-regexp-character-set"},{include:"#double-three-regexp-comments"},{include:"#regexp-flags"},{include:"#double-three-regexp-named-group"},{include:"#regexp-backreference"},{include:"#double-three-fregexp-lookahead"},{include:"#double-three-fregexp-lookahead-negative"},{include:"#double-three-fregexp-lookbehind"},{include:"#double-three-fregexp-lookbehind-negative"},{include:"#double-three-fregexp-conditional"},{include:"#double-three-fregexp-parentheses-non-capturing"},{include:"#double-three-fregexp-parentheses"},{include:"#comments-string-double-three"}]},"double-three-fregexp-named-group":{name:"meta.named.regexp",begin:"(?x)\n (\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n",end:"(\\)|(?=\"\"\"))",beginCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp"},"2":{name:"entity.name.tag.named.group.regexp"}},endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-fregexp-expression"},{include:"#comments-string-double-three"}]},"double-three-fregexp-lookahead":{begin:"(\\()\\?=",end:"(\\)|(?=\"\"\"))",beginCaptures:{"0":{name:"keyword.operator.lookahead.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-fregexp-expression"},{include:"#comments-string-double-three"}]},"double-three-fregexp-lookahead-negative":{begin:"(\\()\\?!",end:"(\\)|(?=\"\"\"))",beginCaptures:{"0":{name:"keyword.operator.lookahead.negative.regexp"},"1":{name:"punctuation.parenthesis.lookahead.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-fregexp-expression"},{include:"#comments-string-double-three"}]},"double-three-fregexp-lookbehind":{begin:"(\\()\\?<=",end:"(\\)|(?=\"\"\"))",beginCaptures:{"0":{name:"keyword.operator.lookbehind.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-fregexp-expression"},{include:"#comments-string-double-three"}]},"double-three-fregexp-lookbehind-negative":{begin:"(\\()\\?<!",end:"(\\)|(?=\"\"\"))",beginCaptures:{"0":{name:"keyword.operator.lookbehind.negative.regexp"},"1":{name:"punctuation.parenthesis.lookbehind.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-fregexp-expression"},{include:"#comments-string-double-three"}]},"double-three-fregexp-conditional":{begin:"(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)",end:"(\\)|(?=\"\"\"))",beginCaptures:{"0":{name:"keyword.operator.conditional.regexp"},"1":{name:"punctuation.parenthesis.conditional.begin.regexp"}},endCaptures:{"1":{name:"keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-fregexp-expression"},{include:"#comments-string-double-three"}]},"double-three-fregexp-parentheses-non-capturing":{begin:"\\(\\?:",end:"(\\)|(?=\"\"\"))",beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp"}},endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-fregexp-expression"},{include:"#comments-string-double-three"}]},"double-three-fregexp-parentheses":{begin:"\\(",end:"(\\)|(?=\"\"\"))",beginCaptures:{"0":{name:"support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp"}},endCaptures:{"1":{name:"support.other.parenthesis.regexp punctuation.parenthesis.end.regexp"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-fregexp-expression"},{include:"#comments-string-double-three"}]},"fregexp-single-one-line":{name:"string.interpolated.python string.regexp.quoted.single.python",begin:"\\b(([uU]r)|([fF]r)|(r[fF]?))(\\')",end:"(\\')|(?<!\\\\)(\\n)",beginCaptures:{"2":{name:"invalid.deprecated.prefix.python"},"3":{name:"storage.type.string.python"},"4":{name:"storage.type.string.python"},"5":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-one-fregexp-expression"}]},"fregexp-single-three-line":{name:"string.interpolated.python string.regexp.quoted.multi.python",begin:"\\b(([uU]r)|([fF]r)|(r[fF]?))(\\'\\'\\')",end:"(\\'\\'\\')",beginCaptures:{"2":{name:"invalid.deprecated.prefix.python"},"3":{name:"storage.type.string.python"},"4":{name:"storage.type.string.python"},"5":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#single-three-fregexp-expression"}]},"fregexp-double-one-line":{name:"string.interpolated.python string.regexp.quoted.single.python",begin:"\\b(([uU]r)|([fF]r)|(r[fF]?))(\")",end:"(\")|(?<!\\\\)(\\n)",beginCaptures:{"2":{name:"invalid.deprecated.prefix.python"},"3":{name:"storage.type.string.python"},"4":{name:"storage.type.string.python"},"5":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-one-fregexp-expression"}]},"fregexp-double-three-line":{name:"string.interpolated.python string.regexp.quoted.multi.python",begin:"\\b(([uU]r)|([fF]r)|(r[fF]?))(\"\"\")",end:"(\"\"\")",beginCaptures:{"2":{name:"invalid.deprecated.prefix.python"},"3":{name:"storage.type.string.python"},"4":{name:"storage.type.string.python"},"5":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#double-three-fregexp-expression"}]},"string-raw-quoted-single-line":{name:"string.quoted.raw.single.python",begin:"\\b(([uU]R)|(R))((['\"]))",end:"(\\4)|((?<!\\\\)\\n)",beginCaptures:{"2":{name:"invalid.deprecated.prefix.python"},"3":{name:"storage.type.string.python"},"4":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#string-single-bad-brace1-formatting-raw"},{include:"#string-single-bad-brace2-formatting-raw"},{include:"#string-raw-guts"}]},"string-bin-quoted-single-line":{name:"string.quoted.binary.single.python",begin:"(\\b[bB])((['\"]))",end:"(\\2)|((?<!\\\\)\\n)",beginCaptures:{"1":{name:"storage.type.string.python"},"2":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#string-entity"}]},"string-raw-bin-quoted-single-line":{name:"string.quoted.raw.binary.single.python",begin:"(\\b(?:R[bB]|[bB]R))((['\"]))",end:"(\\2)|((?<!\\\\)\\n)",beginCaptures:{"1":{name:"storage.type.string.python"},"2":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#string-raw-bin-guts"}]},"string-quoted-single-line":{name:"string.quoted.single.python",begin:"(?:\\b([rR])(?=[uU]))?([uU])?((['\"]))",end:"(\\3)|((?<!\\\\)\\n)",beginCaptures:{"1":{name:"invalid.illegal.prefix.python"},"2":{name:"storage.type.string.python"},"3":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#string-single-bad-brace1-formatting-unicode"},{include:"#string-single-bad-brace2-formatting-unicode"},{include:"#string-unicode-guts"}]},"string-single-bad-brace1-formatting-unicode":{comment:"template using {% ... %}",begin:"(?x)\n (?= \\{%\n ( .*? (?!(['\"])|((?<!\\\\)\\n)) )\n %\\}\n )\n",end:"(?=(['\"])|((?<!\\\\)\\n))",patterns:[{include:"#escape-sequence-unicode"},{include:"#escape-sequence"},{include:"#string-line-continuation"}]},"string-single-bad-brace1-formatting-raw":{comment:"template using {% ... %}",begin:"(?x)\n (?= \\{%\n ( .*? (?!(['\"])|((?<!\\\\)\\n)) )\n %\\}\n )\n",end:"(?=(['\"])|((?<!\\\\)\\n))",patterns:[{include:"#string-consume-escape"}]},"string-single-bad-brace2-formatting-unicode":{comment:"odd format or format-like syntax",begin:"(?x)\n (?!\\{\\{)\n (?= \\{ (\n \\w*? (?!(['\"])|((?<!\\\\)\\n)) [^!:\\.\\[}\\w]\n )\n .*?(?!(['\"])|((?<!\\\\)\\n))\n \\}\n )\n",end:"(?=(['\"])|((?<!\\\\)\\n))",patterns:[{include:"#escape-sequence-unicode"},{include:"#string-entity"}]},"string-single-bad-brace2-formatting-raw":{comment:"odd format or format-like syntax",begin:"(?x)\n (?!\\{\\{)\n (?= \\{ (\n \\w*? (?!(['\"])|((?<!\\\\)\\n)) [^!:\\.\\[}\\w]\n )\n .*?(?!(['\"])|((?<!\\\\)\\n))\n \\}\n )\n",end:"(?=(['\"])|((?<!\\\\)\\n))",patterns:[{include:"#string-consume-escape"},{include:"#string-formatting"}]},"string-raw-quoted-multi-line":{name:"string.quoted.raw.multi.python",begin:"\\b(([uU]R)|(R))('''|\"\"\")",end:"(\\4)",beginCaptures:{"2":{name:"invalid.deprecated.prefix.python"},"3":{name:"storage.type.string.python"},"4":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#string-multi-bad-brace1-formatting-raw"},{include:"#string-multi-bad-brace2-formatting-raw"},{include:"#string-raw-guts"}]},"string-bin-quoted-multi-line":{name:"string.quoted.binary.multi.python",begin:"(\\b[bB])('''|\"\"\")",end:"(\\2)",beginCaptures:{"1":{name:"storage.type.string.python"},"2":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#string-entity"}]},"string-raw-bin-quoted-multi-line":{name:"string.quoted.raw.binary.multi.python",begin:"(\\b(?:R[bB]|[bB]R))('''|\"\"\")",end:"(\\2)",beginCaptures:{"1":{name:"storage.type.string.python"},"2":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#string-raw-bin-guts"}]},"string-quoted-multi-line":{name:"string.quoted.multi.python",begin:"(?:\\b([rR])(?=[uU]))?([uU])?('''|\"\"\")",end:"(\\3)",beginCaptures:{"1":{name:"invalid.illegal.prefix.python"},"2":{name:"storage.type.string.python"},"3":{name:"punctuation.definition.string.begin.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#string-multi-bad-brace1-formatting-unicode"},{include:"#string-multi-bad-brace2-formatting-unicode"},{include:"#string-unicode-guts"}]},"string-multi-bad-brace1-formatting-unicode":{comment:"template using {% ... %}",begin:"(?x)\n (?= \\{%\n ( .*? (?!'''|\"\"\") )\n %\\}\n )\n",end:"(?='''|\"\"\")",patterns:[{include:"#escape-sequence-unicode"},{include:"#escape-sequence"},{include:"#string-line-continuation"}]},"string-multi-bad-brace1-formatting-raw":{comment:"template using {% ... %}",begin:"(?x)\n (?= \\{%\n ( .*? (?!'''|\"\"\") )\n %\\}\n )\n",end:"(?='''|\"\"\")",patterns:[{include:"#string-consume-escape"}]},"string-multi-bad-brace2-formatting-unicode":{comment:"odd format or format-like syntax",begin:"(?x)\n (?!\\{\\{)\n (?= \\{ (\n \\w*? (?!'''|\"\"\") [^!:\\.\\[}\\w]\n )\n .*?(?!'''|\"\"\")\n \\}\n )\n",end:"(?='''|\"\"\")",patterns:[{include:"#escape-sequence-unicode"},{include:"#string-entity"}]},"string-multi-bad-brace2-formatting-raw":{comment:"odd format or format-like syntax",begin:"(?x)\n (?!\\{\\{)\n (?= \\{ (\n \\w*? (?!'''|\"\"\") [^!:\\.\\[}\\w]\n )\n .*?(?!'''|\"\"\")\n \\}\n )\n",end:"(?='''|\"\"\")",patterns:[{include:"#string-consume-escape"},{include:"#string-formatting"}]},"fstring-fnorm-quoted-single-line":{name:"meta.fstring.python",begin:"(\\b[fF])([bBuU])?((['\"]))",end:"(\\3)|((?<!\\\\)\\n)",beginCaptures:{"1":{name:"string.interpolated.python string.quoted.single.python storage.type.string.python"},"2":{name:"invalid.illegal.prefix.python"},"3":{name:"punctuation.definition.string.begin.python string.interpolated.python string.quoted.single.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.single.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#fstring-guts"},{include:"#fstring-illegal-single-brace"},{include:"#fstring-single-brace"},{include:"#fstring-single-core"}]},"fstring-normf-quoted-single-line":{name:"meta.fstring.python",begin:"(\\b[bBuU])([fF])((['\"]))",end:"(\\3)|((?<!\\\\)\\n)",beginCaptures:{"1":{name:"invalid.illegal.prefix.python"},"2":{name:"string.interpolated.python string.quoted.single.python storage.type.string.python"},"3":{name:"punctuation.definition.string.begin.python string.quoted.single.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.single.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#fstring-guts"},{include:"#fstring-illegal-single-brace"},{include:"#fstring-single-brace"},{include:"#fstring-single-core"}]},"fstring-raw-quoted-single-line":{name:"meta.fstring.python",begin:"(\\b(?:[R][fF]|[fF][R]))((['\"]))",end:"(\\2)|((?<!\\\\)\\n)",beginCaptures:{"1":{name:"string.interpolated.python string.quoted.raw.single.python storage.type.string.python"},"2":{name:"punctuation.definition.string.begin.python string.quoted.raw.single.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.raw.single.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#fstring-raw-guts"},{include:"#fstring-illegal-single-brace"},{include:"#fstring-single-brace"},{include:"#fstring-raw-single-core"}]},"fstring-single-core":{name:"string.interpolated.python string.quoted.single.python",match:"(?x)\n (.+?)\n (\n (?# .* and .*? in multi-line match need special handling of\n newlines otherwise SublimeText and Atom will match slightly\n differently.\n\n The guard for newlines has to be separate from the\n lookahead because of special $ matching rule.)\n ($\\n?)\n |\n (?=[\\\\\\}\\{]|(['\"])|((?<!\\\\)\\n))\n )\n (?# due to how multiline regexps are matched we need a special case\n for matching a newline character)\n | \\n\n"},"fstring-raw-single-core":{name:"string.interpolated.python string.quoted.raw.single.python",match:"(?x)\n (.+?)\n (\n (?# .* and .*? in multi-line match need special handling of\n newlines otherwise SublimeText and Atom will match slightly\n differently.\n\n The guard for newlines has to be separate from the\n lookahead because of special $ matching rule.)\n ($\\n?)\n |\n (?=[\\\\\\}\\{]|(['\"])|((?<!\\\\)\\n))\n )\n (?# due to how multiline regexps are matched we need a special case\n for matching a newline character)\n | \\n\n"},"fstring-single-brace":{comment:"value interpolation using { ... }",begin:"(\\{)",end:"(?x)\n (\\})|(?=\\n)\n",beginCaptures:{"1":{name:"constant.character.format.placeholder.other.python"}},endCaptures:{"1":{name:"constant.character.format.placeholder.other.python"}},patterns:[{include:"#fstring-terminator-single"},{include:"#f-expression"}]},"fstring-terminator-single":{patterns:[{name:"storage.type.format.python",match:"(![rsa])(?=})"},{match:"(?x)\n (![rsa])?\n ( : \\w? [<>=^]? [-+ ]? \\#?\n \\d* ,? (\\.\\d+)? [bcdeEfFgGnosxX%]? )(?=})\n",captures:{"1":{name:"storage.type.format.python"},"2":{name:"storage.type.format.python"}}},{include:"#fstring-terminator-single-tail"}]},"fstring-terminator-single-tail":{begin:"(![rsa])?(:)(?=.*?{)",end:"(?=})|(?=\\n)",beginCaptures:{"1":{name:"storage.type.format.python"},"2":{name:"storage.type.format.python"}},patterns:[{include:"#fstring-illegal-single-brace"},{include:"#fstring-single-brace"},{name:"storage.type.format.python",match:"([bcdeEfFgGnosxX%])(?=})"},{name:"storage.type.format.python",match:"(\\.\\d+)"},{name:"storage.type.format.python",match:"(,)"},{name:"storage.type.format.python",match:"(\\d+)"},{name:"storage.type.format.python",match:"(\\#)"},{name:"storage.type.format.python",match:"([-+ ])"},{name:"storage.type.format.python",match:"([<>=^])"},{name:"storage.type.format.python",match:"(\\w)"}]},"fstring-fnorm-quoted-multi-line":{name:"meta.fstring.python",begin:"(\\b[fF])([bBuU])?('''|\"\"\")",end:"(\\3)",beginCaptures:{"1":{name:"string.interpolated.python string.quoted.multi.python storage.type.string.python"},"2":{name:"invalid.illegal.prefix.python"},"3":{name:"punctuation.definition.string.begin.python string.interpolated.python string.quoted.multi.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.multi.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#fstring-guts"},{include:"#fstring-illegal-multi-brace"},{include:"#fstring-multi-brace"},{include:"#fstring-multi-core"}]},"fstring-normf-quoted-multi-line":{name:"meta.fstring.python",begin:"(\\b[bBuU])([fF])('''|\"\"\")",end:"(\\3)",beginCaptures:{"1":{name:"invalid.illegal.prefix.python"},"2":{name:"string.interpolated.python string.quoted.multi.python storage.type.string.python"},"3":{name:"punctuation.definition.string.begin.python string.quoted.multi.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.multi.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#fstring-guts"},{include:"#fstring-illegal-multi-brace"},{include:"#fstring-multi-brace"},{include:"#fstring-multi-core"}]},"fstring-raw-quoted-multi-line":{name:"meta.fstring.python",begin:"(\\b(?:[R][fF]|[fF][R]))('''|\"\"\")",end:"(\\2)",beginCaptures:{"1":{name:"string.interpolated.python string.quoted.raw.multi.python storage.type.string.python"},"2":{name:"punctuation.definition.string.begin.python string.quoted.raw.multi.python"}},endCaptures:{"1":{name:"punctuation.definition.string.end.python string.interpolated.python string.quoted.raw.multi.python"},"2":{name:"invalid.illegal.newline.python"}},patterns:[{include:"#fstring-raw-guts"},{include:"#fstring-illegal-multi-brace"},{include:"#fstring-multi-brace"},{include:"#fstring-raw-multi-core"}]},"fstring-multi-core":{name:"string.interpolated.python string.quoted.multi.python",match:"(?x)\n (.+?)\n (\n (?# .* and .*? in multi-line match need special handling of\n newlines otherwise SublimeText and Atom will match slightly\n differently.\n\n The guard for newlines has to be separate from the\n lookahead because of special $ matching rule.)\n ($\\n?)\n |\n (?=[\\\\\\}\\{]|'''|\"\"\")\n )\n (?# due to how multiline regexps are matched we need a special case\n for matching a newline character)\n | \\n\n"},"fstring-raw-multi-core":{name:"string.interpolated.python string.quoted.raw.multi.python",match:"(?x)\n (.+?)\n (\n (?# .* and .*? in multi-line match need special handling of\n newlines otherwise SublimeText and Atom will match slightly\n differently.\n\n The guard for newlines has to be separate from the\n lookahead because of special $ matching rule.)\n ($\\n?)\n |\n (?=[\\\\\\}\\{]|'''|\"\"\")\n )\n (?# due to how multiline regexps are matched we need a special case\n for matching a newline character)\n | \\n\n"},"fstring-multi-brace":{comment:"value interpolation using { ... }",begin:"(\\{)",end:"(?x)\n (\\})\n",beginCaptures:{"1":{name:"constant.character.format.placeholder.other.python"}},endCaptures:{"1":{name:"constant.character.format.placeholder.other.python"}},patterns:[{include:"#fstring-terminator-multi"},{include:"#f-expression"}]},"fstring-terminator-multi":{patterns:[{name:"storage.type.format.python",match:"(![rsa])(?=})"},{match:"(?x)\n (![rsa])?\n ( : \\w? [<>=^]? [-+ ]? \\#?\n \\d* ,? (\\.\\d+)? [bcdeEfFgGnosxX%]? )(?=})\n",captures:{"1":{name:"storage.type.format.python"},"2":{name:"storage.type.format.python"}}},{include:"#fstring-terminator-multi-tail"}]},"fstring-terminator-multi-tail":{begin:"(![rsa])?(:)(?=.*?{)",end:"(?=})",beginCaptures:{"1":{name:"storage.type.format.python"},"2":{name:"storage.type.format.python"}},patterns:[{include:"#fstring-illegal-multi-brace"},{include:"#fstring-multi-brace"},{name:"storage.type.format.python",match:"([bcdeEfFgGnosxX%])(?=})"},{name:"storage.type.format.python",match:"(\\.\\d+)"},{name:"storage.type.format.python",match:"(,)"},{name:"storage.type.format.python",match:"(\\d+)"},{name:"storage.type.format.python",match:"(\\#)"},{name:"storage.type.format.python",match:"([-+ ])"},{name:"storage.type.format.python",match:"([<>=^])"},{name:"storage.type.format.python",match:"(\\w)"}]},"special-variables-types":{patterns:[{name:"variable.language.special.log.vyper",match:"(?x)\n (?<!\\.) \\b(\n log )\\b\n"},{name:"variable.language.special.msg.vyper",match:"(?x)\n (?<!\\.) \\b(\n msg )\\b\n"},{name:"variable.language.special.block.vyper",match:"(?x)\n (?<!\\.) \\b(\n block )\\b\n"}]},"reserved-names-vyper":{name:"name.reserved.vyper",match:"(?x)\n \\b (finney | gwei | range | def | ____init____ | timedelta | babbage | zero_address | raise | external | empty_bytes32 | assert | continue | wei | ada | min_int256 | min_int128 | chainid | max_decimal | default | indexed | selfdestruct | lovelace | immutable | throw | kwei | max_int128 | while | constant | ___default___ | balance | twei | codesize | false | max_int256 | _default_ | init | mwei | if | ____default____ | true | payable | internal | until | this | nonpayable | pass | public | nonreentrant | blockhash | max_uint256 | shannon | none | units | _init_ | ___init___ | is_contract | for | zero_wei | min_decimal | szabo | timestamp | ether | pwei | send) \\b\n"}}}; + +export { vyper_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/wasm.tmLanguage-54c35f12.mjs b/docs/shiki/dist/languages/wasm.tmLanguage-54c35f12.mjs new file mode 100644 index 00000000..f2e912dc --- /dev/null +++ b/docs/shiki/dist/languages/wasm.tmLanguage-54c35f12.mjs @@ -0,0 +1,3 @@ +var wasm_tmLanguage = {name:"wasm",scopeName:"source.wat",patterns:[{include:"#comments"},{include:"#strings"},{include:"#instructions"},{include:"#types"},{include:"#modules"},{include:"#constants"},{include:"#invalid"}],repository:{comments:{patterns:[{comment:"Line comment",name:"comment.line.wat",match:"(;;).*$",captures:{"1":{name:"punctuation.definition.comment.wat"}}},{comment:"Block comment",name:"comment.block.wat",begin:"\\(;",beginCaptures:{"0":{name:"punctuation.definition.comment.wat"}},end:";\\)",endCaptures:{"0":{name:"punctuation.definition.comment.wat"}}}]},strings:{comment:"String literal",name:"string.quoted.double.wat",begin:"\"",end:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin"}},endCaptures:{"0":{name:"punctuation.definition.string.end"}},patterns:[{name:"constant.character.escape.wat",match:"\\\\(n|t|\\\\|'|\"|[0-9a-fA-F]{2})"}]},instructions:{patterns:[{comment:"Non-trapping float-to-int conversions",patterns:[{comment:"Conversion instruction [nontrapping-float-to-int-conversions]",name:"keyword.operator.word.wat",match:"\\b(i32|i64)\\.trunc_sat_f(?:32|64)_[su]\\b",captures:{"1":{name:"support.class.wat"}}}]},{comment:"Sign-extension operators",patterns:[{comment:"Numeric instruction (i32) [sign-extension-ops]",name:"keyword.operator.word.wat",match:"\\b(i32)\\.(?:extend(?:8|16)_s)\\b",captures:{"1":{name:"support.class.wat"}}},{comment:"Numeric instruction (i64) [sign-extension-ops]",name:"keyword.operator.word.wat",match:"\\b(i64)\\.(?:extend(?:8|16|32)_s)\\b",captures:{"1":{name:"support.class.wat"}}}]},{comment:"Bulk memory operations",patterns:[{comment:"Memory instruction [bulk-memory-operations]",name:"keyword.operator.word.wat",match:"\\b(memory)\\.(?:copy|fill|init|drop)\\b",captures:{"1":{name:"support.class.wat"}}}]},{comment:"Fixed-width SIMD",patterns:[{comment:"Vector instruction (v128) [simd]",name:"keyword.operator.word.wat",match:"\\b(v128)\\.(?:const|and|or|xor|not|andnot|bitselect|load|store)\\b",captures:{"1":{name:"support.class.wat"}}},{comment:"Vector instruction (i8x16) [simd]",name:"keyword.operator.word.wat",match:"\\b(i8x16)\\.(?:splat|replace_lane|add|sub|mul|neg|shl|shr_[su]|eq|ne|lt_[su]|le_[su]|gt_[su]|ge_[su]|min_[su]|max_[su]|any_true|all_true|extract_lane_[su]|add_saturate_[su]|sub_saturate_[su]|avgr_u|narrow_i16x8_[su])\\b",captures:{"1":{name:"support.class.wat"}}},{comment:"Vector instruction (i16x8) [simd]",name:"keyword.operator.word.wat",match:"\\b(i16x8)\\.(?:splat|replace_lane|add|sub|mul|neg|shl|shr_[su]|eq|ne|lt_[su]|le_[su]|gt_[su]|ge_[su]|min_[su]|max_[su]|any_true|all_true|extract_lane_[su]|add_saturate_[su]|sub_saturate_[su]|avgr_u|load8x8_[su]|narrow_i32x4_[su]|widen_(low|high)_i8x16_[su])\\b",captures:{"1":{name:"support.class.wat"}}},{comment:"Vector instruction (i32x4) [simd]",name:"keyword.operator.word.wat",match:"\\b(i32x4)\\.(?:splat|replace_lane|add|sub|mul|neg|shl|shr_[su]|eq|ne|lt_[su]|le_[su]|gt_[su]|ge_[su]|min_[su]|max_[su]|any_true|all_true|extract_lane|load16x4_[su]|trunc_sat_f32x4_[su]|widen_(low|high)_i16x8_[su])\\b",captures:{"1":{name:"support.class.wat"}}},{comment:"Vector instruction (i64x2) [simd]",name:"keyword.operator.word.wat",match:"\\b(i64x2)\\.(?:splat|replace_lane|add|sub|mul|neg|shl|shr_[su]|extract_lane|load32x2_[su])\\b",captures:{"1":{name:"support.class.wat"}}},{comment:"Vector instruction (f32x4) [simd]",name:"keyword.operator.word.wat",match:"\\b(f32x4)\\.(?:splat|replace_lane|add|sub|mul|neg|extract_lane|eq|ne|lt|le|gt|ge|abs|min|max|div|sqrt|convert_i32x4_[su])\\b",captures:{"1":{name:"support.class.wat"}}},{comment:"Vector instruction (f64x2) [simd]",name:"keyword.operator.word.wat",match:"\\b(f64x2)\\.(?:splat|replace_lane|add|sub|mul|neg|extract_lane|eq|ne|lt|le|gt|ge|abs|min|max|div|sqrt)\\b",captures:{"1":{name:"support.class.wat"}}},{comment:"Vector instruction (v8x16) [simd]",name:"keyword.operator.word.wat",match:"\\b(v8x16)\\.(?:load_splat|shuffle|swizzle)\\b",captures:{"1":{name:"support.class.wat"}}},{comment:"Vector instruction (v16x8) [simd]",name:"keyword.operator.word.wat",match:"\\b(v16x8)\\.load_splat\\b",captures:{"1":{name:"support.class.wat"}}},{comment:"Vector instruction (v32x4) [simd]",name:"keyword.operator.word.wat",match:"\\b(v32x4)\\.load_splat\\b",captures:{"1":{name:"support.class.wat"}}},{comment:"Vector instruction (v64x2) [simd]",name:"keyword.operator.word.wat",match:"\\b(v64x2)\\.load_splat\\b",captures:{"1":{name:"support.class.wat"}}}]},{comment:"Threads",patterns:[{comment:"Atomic instruction (i32) [threads]",name:"keyword.operator.word.wat",match:"\\b(i32)\\.(atomic)\\.(?:load(?:8_u|16_u)?|store(?:8|16)?|wait|(rmw)\\.(?:add|sub|and|or|xor|xchg|cmpxchg)|(rmw8|rmw16)\\.(?:add_u|sub_u|and_u|or_u|xor_u|xchg_u|cmpxchg_u))\\b",captures:{"1":{name:"support.class.wat"},"2":{name:"support.class.wat"},"3":{name:"support.class.wat"},"4":{name:"support.class.wat"}}},{comment:"Atomic instruction (i64) [threads]",name:"keyword.operator.word.wat",match:"\\b(i64)\\.(atomic)\\.(?:load(?:8_u|16_u|32_u)?|store(?:8|16|32)?|wait|(rmw)\\.(?:add|sub|and|or|xor|xchg|cmpxchg)|(rmw8|rmw16|rmw32)\\.(?:add_u|sub_u|and_u|or_u|xor_u|xchg_u|cmpxchg_u))\\b",captures:{"1":{name:"support.class.wat"},"2":{name:"support.class.wat"},"3":{name:"support.class.wat"},"4":{name:"support.class.wat"}}},{comment:"Atomic instruction [threads]",name:"keyword.operator.word.wat",match:"\\b(atomic)\\.(?:notify|fence)\\b",captures:{"1":{name:"support.class.wat"}}},{comment:"Shared modifier [threads]",name:"storage.modifier.wat",match:"\\bshared\\b"}]},{comment:"Reference types",patterns:[{comment:"Reference instruction [reference-types]",name:"keyword.operator.word.wat",match:"\\b(ref)\\.(?:null|is_null|func|extern)\\b",captures:{"1":{name:"support.class.wat"}}},{comment:"Table instruction [reference-types]",name:"keyword.operator.word.wat",match:"\\b(table)\\.(?:get|size|grow|fill|init|copy)\\b",captures:{"1":{name:"support.class.wat"}}},{comment:"Type name [reference-types]",name:"entity.name.type.wat",match:"\\b(?:externref|funcref|nullref)\\b"}]},{comment:"Tail Call",patterns:[{comment:"Control instruction [tail-call]",name:"keyword.control.wat",match:"\\breturn_call(?:_indirect)?\\b"}]},{comment:"Exception handling",patterns:[{comment:"Control instruction [exception-handling]",name:"keyword.control.wat",match:"\\b(?:try|catch|throw|rethrow|br_on_exn)\\b"},{comment:"Module element [exception-handling]",name:"storage.type.wat",match:"(?<=\\()event\\b"}]},{comment:"Binaryen extensions",patterns:[{comment:"Pseudo stack instruction [binaryen]",name:"keyword.operator.word.wat",match:"\\b(i32|i64|f32|f64|externref|funcref|nullref|exnref)\\.(?:push|pop)\\b",captures:{"1":{name:"support.class.wat"}}}]},{comment:"MVP",patterns:[{comment:"Memory instruction (i32) [mvp]",name:"keyword.operator.word.wat",match:"\\b(i32)\\.(?:load|load(?:8|16)(?:_[su])?|store(?:8|16)?)\\b",captures:{"1":{name:"support.class.type.wat"}}},{comment:"Memory instruction (i64) [mvp]",name:"keyword.operator.word.wat",match:"\\b(i64)\\.(?:load|load(?:8|16|32)(?:_[su])?|store(?:8|16|32)?)\\b",captures:{"1":{name:"support.class.type.wat"}}},{comment:"Memory instruction (f32/f64) [mvp]",name:"keyword.operator.word.wat",match:"\\b(f32|f64)\\.(?:load|store)\\b",captures:{"1":{name:"support.class.type.wat"}}},{comment:"Memory instruction [mvp]",name:"keyword.operator.word.wat",match:"\\b(memory)\\.(?:size|grow)\\b",captures:{"1":{name:"support.class.memory.wat"}}},{comment:"Memory instruction attribute [mvp]",match:"\\b(offset|align)=\\b",captures:{"1":{name:"entity.other.attribute-name.wat"}}},{comment:"Variable instruction (local) [mvp]",name:"keyword.operator.word.wat",match:"\\b(local)\\.(?:get|set|tee)\\b",captures:{"1":{name:"support.class.local.wat"}}},{comment:"Variable instruction (global) [mvp]",name:"keyword.operator.word.wat",match:"\\b(global)\\.(?:get|set)\\b",captures:{"1":{name:"support.class.global.wat"}}},{comment:"Numeric instruction (i32/i64) [mvp]",name:"keyword.operator.word.wat",match:"\\b(i32|i64)\\.(const|eqz|eq|ne|lt_[su]|gt_[su]|le_[su]|ge_[su]|clz|ctz|popcnt|add|sub|mul|div_[su]|rem_[su]|and|or|xor|shl|shr_[su]|rotl|rotr)\\b",captures:{"1":{name:"support.class.type.wat"}}},{comment:"Numeric instruction (f32/f64) [mvp]",name:"keyword.operator.word.wat",match:"\\b(f32|f64)\\.(const|eq|ne|lt|gt|le|ge|abs|neg|ceil|floor|trunc|nearest|sqrt|add|sub|mul|div|min|max|copysign)\\b",captures:{"1":{name:"support.class.type.wat"}}},{comment:"Conversion instruction (i32) [mvp]",name:"keyword.operator.word.wat",match:"\\b(i32)\\.(wrap_i64|trunc_(f32|f64)_[su]|reinterpret_f32)\\b",captures:{"1":{name:"support.class.type.wat"}}},{comment:"Conversion instruction (i64) [mvp]",name:"keyword.operator.word.wat",match:"\\b(i64)\\.(extend_i32_[su]|trunc_f(32|64)_[su]|reinterpret_f64)\\b",captures:{"1":{name:"support.class.type.wat"}}},{comment:"Conversion instruction (f32) [mvp]",name:"keyword.operator.word.wat",match:"\\b(f32)\\.(convert_i(32|64)_[su]|demote_f64|reinterpret_i32)\\b",captures:{"1":{name:"support.class.type.wat"}}},{comment:"Conversion instruction (f64) [mvp]",name:"keyword.operator.word.wat",match:"\\b(f64)\\.(convert_i(32|64)_[su]|promote_f32|reinterpret_i64)\\b",captures:{"1":{name:"support.class.type.wat"}}},{comment:"Control instruction [mvp]",name:"keyword.control.wat",match:"\\b(?:unreachable|nop|block|loop|if|then|else|end|br|br_if|br_table|return|call|call_indirect)\\b"},{comment:"Parametric instruction [mvp]",name:"keyword.operator.word.wat",match:"\\b(?:drop|select)\\b"}]},{comment:"GC Instructions",patterns:[{comment:"Reference Instructions [GC]",name:"keyword.operator.word.wat",match:"\\b(ref)\\.(?:eq|test|cast)\\b",captures:{"1":{name:"support.class.wat"}}},{comment:"Struct Instructions [GC]",name:"keyword.operator.word.wat",match:"\\b(struct)\\.(?:new_canon|new_canon_default|get|get_s|get_u|set)\\b",captures:{"1":{name:"support.class.wat"}}},{comment:"Array Instructions [GC]",name:"keyword.operator.word.wat",match:"\\b(array)\\.(?:new_canon|new_canon_default|get|get_s|get_u|set|len|new_canon_fixed|new_canon_data|new_canon_elem)\\b",captures:{"1":{name:"support.class.wat"}}},{comment:"i31 Instructions [GC]",name:"keyword.operator.word.wat",match:"\\b(i31)\\.(?:new|get_s|get_u)\\b",captures:{"1":{name:"support.class.wat"}}},{comment:"Branch Instructions [GC]",name:"keyword.operator.word.wat",match:"\\b(?:br_on_non_null|br_on_cast|br_on_cast_fail)\\b",captures:{"1":{name:"support.class.wat"}}},{comment:"Reference Instructions [GC]",name:"keyword.operator.word.wat",match:"\\b(extern)\\.(?:internalize|externalize)\\b",captures:{"1":{name:"support.class.wat"}}}]}]},types:{patterns:[{comment:"Fixed-width SIMD",patterns:[{comment:"Type name [simd]",name:"entity.name.type.wat",match:"\\bv128\\b(?!\\.)"}]},{comment:"Reference types",patterns:[{comment:"Type name [reference-types]",name:"entity.name.type.wat",match:"\\b(?:externref|funcref|nullref)\\b(?!\\.)"}]},{comment:"Exception handling",patterns:[{comment:"Type name [exception-handling]",name:"entity.name.type.wat",match:"\\bexnref\\b(?!\\.)"}]},{comment:"MVP",patterns:[{comment:"Type name [mvp]",name:"entity.name.type.wat",match:"\\b(?:i32|i64|f32|f64)\\b(?!\\.)"}]},{comment:"GC Types",patterns:[{comment:"Type name [GC]",name:"entity.name.type.wat",match:"\\b(?:i8|i16|ref|funcref|externref|anyref|eqref|i31ref|nullfuncref|nullexternref|structref|arrayref|nullref)\\b(?!\\.)"}]},{comment:"GC Heap Types",patterns:[{comment:"Type name [GC]",name:"entity.name.type.wat",match:"\\b(?:type|func|extern|any|eq|nofunc|noextern|struct|array|none)\\b(?!\\.)"}]},{comment:"GC Structured and sub Types",patterns:[{comment:"Type name [GC]",name:"entity.name.type.wat",match:"\\b(?:struct|array|sub|final|rec|field|mut)\\b(?!\\.)"}]}]},modules:{patterns:[{comment:"Bulk memory operations",patterns:[{comment:"Passive modifier [bulk-memory-operations]",match:"(?<=\\(data)\\s+(passive)\\b",captures:{"1":{name:"storage.modifier.wat"}}}]},{comment:"MVP",patterns:[{comment:"Module element [mvp]",name:"storage.type.wat",match:"(?<=\\()(?:module|import|export|memory|data|table|elem|start|func|type|param|result|global|local)\\b"},{comment:"Mutable global modifier [mvp]",name:"storage.modifier.wat",match:"(?<=\\()\\s*(mut)\\b",captures:{"1":{name:"storage.modifier.wat"}}},{comment:"Function name [mvp]",match:"(?<=\\(func|\\(start|call|return_call|ref\\.func)\\s+(\\$[0-9A-Za-z!#$%&'*+\\-./:<=>?@\\\\^_`|~]*)",captures:{"1":{name:"entity.name.function.wat"}}},{comment:"Function name(s) (elem) [mvp]",begin:"\\)\\s+(\\$[0-9A-Za-z!#$%&'*+\\-./:<=>?@\\\\^_`|~]*)",beginCaptures:{"1":{name:"entity.name.function.wat"}},end:"\\)",patterns:[{name:"entity.name.function.wat",match:"(?<=\\s)\\$[0-9A-Za-z!#$%&'*+\\-./:<=>?@\\\\^_`|~]*"}]},{comment:"Function type [mvp]",match:"(?<=\\(type)\\s+(\\$[0-9A-Za-z!#$%&'*+\\-./:<=>?@\\\\^_`|~]*)",captures:{"1":{name:"support.type.function.wat"}}},{comment:"Variable name or branch label [mvp]",name:"variable.other.wat",match:"\\$[0-9A-Za-z!#$%&'*+\\-./:<=>?@\\\\^_`|~]*\\b"}]}]},constants:{patterns:[{comment:"Fixed-width SIMD",patterns:[{comment:"Vector literal (i8x16) [simd]",name:"constant.numeric.vector.wat",match:"\\b(i8x16)(?:\\s+0x[0-9a-fA-F]{1,2}){16}\\b",captures:{"1":{name:"support.type.wat"}}},{comment:"Vector literal (i16x8) [simd]",name:"constant.numeric.vector.wat",match:"\\b(i16x8)(?:\\s+0x[0-9a-fA-F]{1,4}){8}\\b",captures:{"1":{name:"support.type.wat"}}},{comment:"Vector literal (i32x4) [simd]",name:"constant.numeric.vector.wat",match:"\\b(i32x4)(?:\\s+0x[0-9a-fA-F]{1,8}){4}\\b",captures:{"1":{name:"support.type.wat"}}},{comment:"Vector literal (i64x2) [simd]",name:"constant.numeric.vector.wat",match:"\\b(i64x2)(?:\\s+0x[0-9a-fA-F]{1,16}){2}\\b",captures:{"1":{name:"support.type.wat"}}}]},{comment:"MVP",patterns:[{comment:"Floating point literal",name:"constant.numeric.float.wat",match:"[+-]?\\b[0-9][0-9]*(?:\\.[0-9][0-9]*)?(?:[eE][+-]?[0-9]+)?\\b"},{comment:"Floating point hexadecimal literal",name:"constant.numeric.float.wat",match:"[+-]?\\b0x([0-9a-fA-F]*\\.[0-9a-fA-F]+|[0-9a-fA-F]+\\.?)[Pp][+-]?[0-9]+\\b"},{comment:"Floating point infinity",name:"constant.numeric.float.wat",match:"[+-]?\\binf\\b"},{comment:"Floating point literal (NaN)",name:"constant.numeric.float.wat",match:"[+-]?\\bnan:0x[0-9a-fA-F][0-9a-fA-F]*\\b"},{comment:"Integer literal",name:"constant.numeric.integer.wat",match:"[+-]?\\b(?:0x[0-9a-fA-F][0-9a-fA-F]*|\\d[\\d]*)\\b"}]}]},invalid:{patterns:[{name:"invalid.wat",match:"[^\\s()]+"}]}}}; + +export { wasm_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/wenyan.tmLanguage-7d801efd.mjs b/docs/shiki/dist/languages/wenyan.tmLanguage-7d801efd.mjs new file mode 100644 index 00000000..ab299010 --- /dev/null +++ b/docs/shiki/dist/languages/wenyan.tmLanguage-7d801efd.mjs @@ -0,0 +1,3 @@ +var wenyan_tmLanguage = {$schema:"https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",scopeName:"source.wenyan",name:"wenyan",patterns:[{include:"#keywords"},{include:"#constants"},{include:"#operators"},{include:"#symbols"},{include:"#expression"},{include:"#comment-blocks"},{include:"#comment-lines"}],repository:{expression:{patterns:[{include:"#variables"}]},keywords:{patterns:[{name:"storage.type",match:"數|列|言|術|爻|物|元"},{name:"keyword.control",match:"乃行是術曰|若其不然者|乃歸空無|欲行是術|乃止是遍|若其然者|其物如是|乃得矣|之術也|必先得|是術曰|恆為是|之物也|乃得|是謂|云云|中之|為是|乃止|若非|或若|之長|其餘"},{name:"keyword.control",match:"或云|蓋謂"},{name:"keyword.operator",match:"中有陽乎|中無陰乎|所餘幾何|不等於|不大於|不小於|等於|大於|小於|加|減|乘|除|變|以|於"},{name:"keyword.other",match:"不知何禍歟|不復存矣|姑妄行此|如事不諧|名之曰|吾嘗觀|之禍歟|乃作罷|吾有|今有|物之|書之|以施|昔之|是矣|之書|方悟|之義|嗚呼|之禍|有|施|曰|噫|取|今|夫|中|豈"},{name:"keyword.control",match:"也|凡|遍|若|者|之|充|銜"}]},"comment-lines":{name:"comment.line",begin:"注曰|疏曰|批曰",end:"$",patterns:[{name:"constant.character",match:"\\\\."}]},"comment-blocks":{name:"comment.block",begin:"(注曰|疏曰|批曰)。?(「「|『)",end:"(」」|』)",patterns:[{name:"constant.character",match:"\\\\."}]},constants:{patterns:[{name:"constant.numeric",match:"負|·|又|零|〇|一|二|三|四|五|六|七|八|九|十|百|千|萬|億|兆|京|垓|秭|穰|溝|澗|正|載|極|分|釐|毫|絲|忽|微|纖|沙|塵|埃|渺|漠"},{name:"constant.language",match:"其|陰|陽"},{name:"string.quoted",begin:"「「|『",end:"」」|』",patterns:[{name:"constant.character",match:"\\\\."}]}]},symbols:{patterns:[{name:"punctuation.separator",match:"。|、"}]},variables:{name:"variable.other",begin:"「",end:"」",patterns:[{name:"constant.character",match:"\\\\."}]}}}; + +export { wenyan_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/wgsl.tmLanguage-06067c64.mjs b/docs/shiki/dist/languages/wgsl.tmLanguage-06067c64.mjs new file mode 100644 index 00000000..c4e2933f --- /dev/null +++ b/docs/shiki/dist/languages/wgsl.tmLanguage-06067c64.mjs @@ -0,0 +1,3 @@ +var wgsl_tmLanguage = {name:"wgsl",scopeName:"source.wgsl",patterns:[{include:"#line_comments"},{include:"#block_comments"},{include:"#keywords"},{include:"#attributes"},{include:"#functions"},{include:"#function_calls"},{include:"#constants"},{include:"#types"},{include:"#variables"},{include:"#punctuation"}],repository:{line_comments:{comment:"single line comment",name:"comment.line.double-slash.wgsl",match:"\\s*//.*"},block_comments:{patterns:[{comment:"empty block comments",name:"comment.block.wgsl",match:"/\\*\\*/"},{comment:"block documentation comments",name:"comment.block.documentation.wgsl",begin:"/\\*\\*",end:"\\*/",patterns:[{include:"#block_comments"}]},{comment:"block comments",name:"comment.block.wgsl",begin:"/\\*(?!\\*)",end:"\\*/",patterns:[{include:"#block_comments"}]}]},attributes:{patterns:[{comment:"attribute declaration",name:"meta.attribute.wgsl",match:"(@)([A-Za-z_]+)",captures:{"1":{name:"keyword.operator.attribute.at"},"2":{name:"entity.name.attribute.wgsl"}}}]},functions:{patterns:[{comment:"function definition",name:"meta.function.definition.wgsl",begin:"\\b(fn)\\s+([A-Za-z0-9_]+)((\\()|(<))",beginCaptures:{"1":{name:"keyword.other.fn.wgsl"},"2":{name:"entity.name.function.wgsl"},"4":{name:"punctuation.brackets.round.wgsl"}},end:"\\{",endCaptures:{"0":{name:"punctuation.brackets.curly.wgsl"}},patterns:[{include:"#line_comments"},{include:"#block_comments"},{include:"#keywords"},{include:"#attributes"},{include:"#function_calls"},{include:"#constants"},{include:"#types"},{include:"#variables"},{include:"#punctuation"}]}]},function_calls:{patterns:[{comment:"function/method calls",name:"meta.function.call.wgsl",begin:"([A-Za-z0-9_]+)(\\()",beginCaptures:{"1":{name:"entity.name.function.wgsl"},"2":{name:"punctuation.brackets.round.wgsl"}},end:"\\)",endCaptures:{"0":{name:"punctuation.brackets.round.wgsl"}},patterns:[{include:"#line_comments"},{include:"#block_comments"},{include:"#keywords"},{include:"#attributes"},{include:"#function_calls"},{include:"#constants"},{include:"#types"},{include:"#variables"},{include:"#punctuation"}]}]},constants:{patterns:[{comment:"decimal float literal",name:"constant.numeric.float.wgsl",match:"(-?\\b[0-9][0-9]*\\.[0-9][0-9]*)([eE][+-]?[0-9]+)?\\b"},{comment:"int literal",name:"constant.numeric.decimal.wgsl",match:"-?\\b0x[0-9a-fA-F]+\\b|\\b0\\b|-?\\b[1-9][0-9]*\\b"},{comment:"uint literal",name:"constant.numeric.decimal.wgsl",match:"\\b0x[0-9a-fA-F]+u\\b|\\b0u\\b|\\b[1-9][0-9]*u\\b"},{comment:"boolean constant",name:"constant.language.boolean.wgsl",match:"\\b(true|false)\\b"}]},types:{comment:"types",name:"storage.type.wgsl",patterns:[{comment:"scalar Types",name:"storage.type.wgsl",match:"\\b(bool|i32|u32|f32)\\b"},{comment:"reserved scalar Types",name:"storage.type.wgsl",match:"\\b(i64|u64|f64)\\b"},{comment:"vector type aliasses",name:"storage.type.wgsl",match:"\\b(vec2i|vec3i|vec4i|vec2u|vec3u|vec4u|vec2f|vec3f|vec4f|vec2h|vec3h|vec4h)\\b"},{comment:"matrix type aliasses",name:"storage.type.wgsl",match:"\\b(mat2x2f|mat2x3f|mat2x4f|mat3x2f|mat3x3f|mat3x4f|mat4x2f|mat4x3f|mat4x4f|mat2x2h|mat2x3h|mat2x4h|mat3x2h|mat3x3h|mat3x4h|mat4x2h|mat4x3h|mat4x4h)\\b"},{comment:"vector/matrix types",name:"storage.type.wgsl",match:"\\b(vec[2-4]|mat[2-4]x[2-4])\\b"},{comment:"atomic types",name:"storage.type.wgsl",match:"\\b(atomic)\\b"},{comment:"array types",name:"storage.type.wgsl",match:"\\b(array)\\b"},{comment:"Custom type",name:"entity.name.type.wgsl",match:"\\b([A-Z][A-Za-z0-9]*)\\b"}]},variables:{patterns:[{comment:"variables",name:"variable.other.wgsl",match:"\\b(?<!(?<!\\.)\\.)(?:r#(?!(crate|[Ss]elf|super)))?[a-z0-9_]+\\b"}]},punctuation:{patterns:[{comment:"comma",name:"punctuation.comma.wgsl",match:","},{comment:"curly braces",name:"punctuation.brackets.curly.wgsl",match:"[{}]"},{comment:"parentheses, round brackets",name:"punctuation.brackets.round.wgsl",match:"[()]"},{comment:"semicolon",name:"punctuation.semi.wgsl",match:";"},{comment:"square brackets",name:"punctuation.brackets.square.wgsl",match:"[\\[\\]]"},{comment:"angle brackets",name:"punctuation.brackets.angle.wgsl",match:"(?<![=-])[<>]"}]},keywords:{patterns:[{comment:"other keywords",name:"keyword.control.wgsl",match:"\\b(bitcast|block|break|case|continue|continuing|default|discard|else|elseif|enable|fallthrough|for|function|if|loop|private|read|read_write|return|storage|switch|uniform|while|workgroup|write)\\b"},{comment:"reserved keywords",name:"keyword.control.wgsl",match:"\\b(asm|const|do|enum|handle|mat|premerge|regardless|typedef|unless|using|vec|void)\\b"},{comment:"storage keywords",name:"keyword.other.wgsl storage.type.wgsl",match:"\\b(let|var)\\b"},{comment:"type keyword",name:"keyword.declaration.type.wgsl storage.type.wgsl",match:"\\b(type)\\b"},{comment:"enum keyword",name:"keyword.declaration.enum.wgsl storage.type.wgsl",match:"\\b(enum)\\b"},{comment:"struct keyword",name:"keyword.declaration.struct.wgsl storage.type.wgsl",match:"\\b(struct)\\b"},{comment:"fn",name:"keyword.other.fn.wgsl",match:"\\bfn\\b"},{comment:"logical operators",name:"keyword.operator.logical.wgsl",match:"(\\^|\\||\\|\\||&&|<<|>>|!)(?!=)"},{comment:"logical AND, borrow references",name:"keyword.operator.borrow.and.wgsl",match:"&(?![&=])"},{comment:"assignment operators",name:"keyword.operator.assignment.wgsl",match:"(\\+=|-=|\\*=|/=|%=|\\^=|&=|\\|=|<<=|>>=)"},{comment:"single equal",name:"keyword.operator.assignment.equal.wgsl",match:"(?<![<>])=(?!=|>)"},{comment:"comparison operators",name:"keyword.operator.comparison.wgsl",match:"(=(=)?(?!>)|!=|<=|(?<!=)>=)"},{comment:"math operators",name:"keyword.operator.math.wgsl",match:"(([+%]|(\\*(?!\\w)))(?!=))|(-(?!>))|(/(?!/))"},{comment:"dot access",name:"keyword.operator.access.dot.wgsl",match:"\\.(?!\\.)"},{comment:"dashrocket, skinny arrow",name:"keyword.operator.arrow.skinny.wgsl",match:"->"}]}}}; + +export { wgsl_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/wolfram.tmLanguage-e933012c.mjs b/docs/shiki/dist/languages/wolfram.tmLanguage-e933012c.mjs new file mode 100644 index 00000000..480bcce0 --- /dev/null +++ b/docs/shiki/dist/languages/wolfram.tmLanguage-e933012c.mjs @@ -0,0 +1,3 @@ +var wolfram_tmLanguage = {name:"wolfram",scopeName:"source.wolfram",fileTypes:["wl","m","wls","wlt","mt"],patterns:[{include:"#main"}],repository:{main:{patterns:[{include:"#shebang"},{include:"#simple-toplevel-definitions"},{include:"#expressions"}]},shebang:{name:"comment.line.shebang.wolfram",match:"\\A(#!).*(?=$)",captures:{"1":{name:"punctuation.definition.comment.wolfram"}}},"simple-toplevel-definitions":{patterns:[{match:"^\\s*(Attributes|Format|Options)\\s*(\\[)(`?(?:(?:[$[:alpha:]][$[:alnum:]]*)`)*)((?:[$[:alpha:]][$[:alnum:]]*))(\\])\\s*(:=|=(?!!|=|\\.))",captures:{"1":{name:"support.function.builtin.wolfram"},"2":{name:"punctuation.section.brackets.begin.wolfram"},"3":{name:"meta.function.wolfram entity.name.Context.wolfram"},"4":{name:"meta.function.wolfram entity.name.function.wolfram"},"5":{name:"punctuation.section.brackets.end.wolfram"},"6":{name:"keyword.operator.assignment.wolfram"}}},{match:"^\\s*(`?(?:(?:[$[:alpha:]][$[:alnum:]]*)`)*)((?:[$[:alpha:]][$[:alnum:]]*))(?=\\s*(\\[(?>[^\\[\\]]+|\\g<-1>)*\\])\\s*(?:/;.*)?(?::=|=(?!!|=|\\.)))",captures:{"1":{name:"meta.function.wolfram entity.name.Context.wolfram"},"2":{name:"meta.function.wolfram entity.name.function.wolfram"}}},{match:"^\\s*(`?(?:(?:[$[:alpha:]][$[:alnum:]]*)`)*)((?:[$[:alpha:]][$[:alnum:]]*))(?=\\s*(?:/;.*)?(?::=|=(?!!|=|\\.)))",captures:{"1":{name:"meta.function.wolfram entity.name.Context.wolfram"},"2":{name:"meta.function.wolfram entity.name.constant.wolfram"}}}]},expressions:{patterns:[{include:"#comments"},{include:"#escaped_character_symbols"},{include:"#escaped_characters"},{include:"#out"},{include:"#slot"},{include:"#literals"},{include:"#groups"},{include:"#stringifying-operators"},{include:"#operators"},{include:"#pattern-operators"},{include:"#symbols"},{match:"(?:!|&|'|\\*|\\+|,|-|\\.|/|:|;|<|=|>|\\?|@|\\\\|\\^|\\||~)",name:"invalid.illegal"}]},comments:{patterns:[{name:"comment.block",begin:"\\(\\*",beginCaptures:{"0":{name:"punctuation.definition.comment.wolfram"}},end:"\\*\\)",endCaptures:{"0":{name:"punctuation.definition.comment.wolfram"}},patterns:[{include:"#comments"}]},{match:"\\*\\)",name:"invalid.illegal.stray-comment-end.wolfram"}]},escaped_character_symbols:{patterns:[{match:"System`\\\\\\[(?:F(?:ormalA|ormalAlpha|ormalB|ormalBeta|ormalC|ormalCapitalA|ormalCapitalAlpha|ormalCapitalB|ormalCapitalBeta|ormalCapitalC|ormalCapitalChi|ormalCapitalD|ormalCapitalDelta|ormalCapitalDigamma|ormalCapitalE|ormalCapitalEpsilon|ormalCapitalEta|ormalCapitalF|ormalCapitalG|ormalCapitalGamma|ormalCapitalH|ormalCapitalI|ormalCapitalIota|ormalCapitalJ|ormalCapitalK|ormalCapitalKappa|ormalCapitalKoppa|ormalCapitalL|ormalCapitalLambda|ormalCapitalM|ormalCapitalMu|ormalCapitalN|ormalCapitalNu|ormalCapitalO|ormalCapitalOmega|ormalCapitalOmicron|ormalCapitalP|ormalCapitalPhi|ormalCapitalPi|ormalCapitalPsi|ormalCapitalQ|ormalCapitalR|ormalCapitalRho|ormalCapitalS|ormalCapitalSampi|ormalCapitalSigma|ormalCapitalStigma|ormalCapitalT|ormalCapitalTau|ormalCapitalTheta|ormalCapitalU|ormalCapitalUpsilon|ormalCapitalV|ormalCapitalW|ormalCapitalX|ormalCapitalXi|ormalCapitalY|ormalCapitalZ|ormalCapitalZeta|ormalChi|ormalCurlyCapitalUpsilon|ormalCurlyEpsilon|ormalCurlyKappa|ormalCurlyPhi|ormalCurlyPi|ormalCurlyRho|ormalCurlyTheta|ormalD|ormalDelta|ormalDigamma|ormalE|ormalEpsilon|ormalEta|ormalF|ormalFinalSigma|ormalG|ormalGamma|ormalH|ormalI|ormalIota|ormalJ|ormalK|ormalKappa|ormalKoppa|ormalL|ormalLambda|ormalM|ormalMu|ormalN|ormalNu|ormalO|ormalOmega|ormalOmicron|ormalP|ormalPhi|ormalPi|ormalPsi|ormalQ|ormalR|ormalRho|ormalS|ormalSampi|ormalScriptA|ormalScriptB|ormalScriptC|ormalScriptCapitalA|ormalScriptCapitalB|ormalScriptCapitalC|ormalScriptCapitalD|ormalScriptCapitalE|ormalScriptCapitalF|ormalScriptCapitalG|ormalScriptCapitalH|ormalScriptCapitalI|ormalScriptCapitalJ|ormalScriptCapitalK|ormalScriptCapitalL|ormalScriptCapitalM|ormalScriptCapitalN|ormalScriptCapitalO|ormalScriptCapitalP|ormalScriptCapitalQ|ormalScriptCapitalR|ormalScriptCapitalS|ormalScriptCapitalT|ormalScriptCapitalU|ormalScriptCapitalV|ormalScriptCapitalW|ormalScriptCapitalX|ormalScriptCapitalY|ormalScriptCapitalZ|ormalScriptD|ormalScriptE|ormalScriptF|ormalScriptG|ormalScriptH|ormalScriptI|ormalScriptJ|ormalScriptK|ormalScriptL|ormalScriptM|ormalScriptN|ormalScriptO|ormalScriptP|ormalScriptQ|ormalScriptR|ormalScriptS|ormalScriptT|ormalScriptU|ormalScriptV|ormalScriptW|ormalScriptX|ormalScriptY|ormalScriptZ|ormalSigma|ormalStigma|ormalT|ormalTau|ormalTheta|ormalU|ormalUpsilon|ormalV|ormalW|ormalX|ormalXi|ormalY|ormalZ|ormalZeta))\\](?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`\\\\\\[(?:S(?:ystemsModelDelay))\\](?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"\\\\\\[(?:F(?:ormalA|ormalAlpha|ormalB|ormalBeta|ormalC|ormalCapitalA|ormalCapitalAlpha|ormalCapitalB|ormalCapitalBeta|ormalCapitalC|ormalCapitalChi|ormalCapitalD|ormalCapitalDelta|ormalCapitalDigamma|ormalCapitalE|ormalCapitalEpsilon|ormalCapitalEta|ormalCapitalF|ormalCapitalG|ormalCapitalGamma|ormalCapitalH|ormalCapitalI|ormalCapitalIota|ormalCapitalJ|ormalCapitalK|ormalCapitalKappa|ormalCapitalKoppa|ormalCapitalL|ormalCapitalLambda|ormalCapitalM|ormalCapitalMu|ormalCapitalN|ormalCapitalNu|ormalCapitalO|ormalCapitalOmega|ormalCapitalOmicron|ormalCapitalP|ormalCapitalPhi|ormalCapitalPi|ormalCapitalPsi|ormalCapitalQ|ormalCapitalR|ormalCapitalRho|ormalCapitalS|ormalCapitalSampi|ormalCapitalSigma|ormalCapitalStigma|ormalCapitalT|ormalCapitalTau|ormalCapitalTheta|ormalCapitalU|ormalCapitalUpsilon|ormalCapitalV|ormalCapitalW|ormalCapitalX|ormalCapitalXi|ormalCapitalY|ormalCapitalZ|ormalCapitalZeta|ormalChi|ormalCurlyCapitalUpsilon|ormalCurlyEpsilon|ormalCurlyKappa|ormalCurlyPhi|ormalCurlyPi|ormalCurlyRho|ormalCurlyTheta|ormalD|ormalDelta|ormalDigamma|ormalE|ormalEpsilon|ormalEta|ormalF|ormalFinalSigma|ormalG|ormalGamma|ormalH|ormalI|ormalIota|ormalJ|ormalK|ormalKappa|ormalKoppa|ormalL|ormalLambda|ormalM|ormalMu|ormalN|ormalNu|ormalO|ormalOmega|ormalOmicron|ormalP|ormalPhi|ormalPi|ormalPsi|ormalQ|ormalR|ormalRho|ormalS|ormalSampi|ormalScriptA|ormalScriptB|ormalScriptC|ormalScriptCapitalA|ormalScriptCapitalB|ormalScriptCapitalC|ormalScriptCapitalD|ormalScriptCapitalE|ormalScriptCapitalF|ormalScriptCapitalG|ormalScriptCapitalH|ormalScriptCapitalI|ormalScriptCapitalJ|ormalScriptCapitalK|ormalScriptCapitalL|ormalScriptCapitalM|ormalScriptCapitalN|ormalScriptCapitalO|ormalScriptCapitalP|ormalScriptCapitalQ|ormalScriptCapitalR|ormalScriptCapitalS|ormalScriptCapitalT|ormalScriptCapitalU|ormalScriptCapitalV|ormalScriptCapitalW|ormalScriptCapitalX|ormalScriptCapitalY|ormalScriptCapitalZ|ormalScriptD|ormalScriptE|ormalScriptF|ormalScriptG|ormalScriptH|ormalScriptI|ormalScriptJ|ormalScriptK|ormalScriptL|ormalScriptM|ormalScriptN|ormalScriptO|ormalScriptP|ormalScriptQ|ormalScriptR|ormalScriptS|ormalScriptT|ormalScriptU|ormalScriptV|ormalScriptW|ormalScriptX|ormalScriptY|ormalScriptZ|ormalSigma|ormalStigma|ormalT|ormalTau|ormalTheta|ormalU|ormalUpsilon|ormalV|ormalW|ormalX|ormalXi|ormalY|ormalZ|ormalZeta))\\](?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"\\\\\\[(?:S(?:ystemsModelDelay))\\](?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"\\\\\\[(?:D(?:egree))\\](?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"\\\\\\[(?:E(?:xponentialE))\\](?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"\\\\\\[(?:I(?:maginaryI|maginaryJ|nfinity))\\](?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"\\\\\\[(?:P(?:i))\\](?![`$[:alnum:]])",name:"constant.language.wolfram"}]},escaped_characters:{patterns:[{match:"\\\\[!%&()*+/@^_` ]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:A(?:kuz|ndy))\\]",name:"donothighlight.constant.character.escape.undocumented"},{match:"\\\\\\[(?:C(?:ontinuedFractionK|url))\\]",name:"donothighlight.constant.character.escape.undocumented"},{match:"\\\\\\[(?:D(?:ivergence|ivisionSlash))\\]",name:"donothighlight.constant.character.escape.undocumented"},{match:"\\\\\\[(?:E(?:xpectationE))\\]",name:"donothighlight.constant.character.escape.undocumented"},{match:"\\\\\\[(?:F(?:reeformPrompt))\\]",name:"donothighlight.constant.character.escape.undocumented"},{match:"\\\\\\[(?:G(?:radient))\\]",name:"donothighlight.constant.character.escape.undocumented"},{match:"\\\\\\[(?:L(?:aplacian))\\]",name:"donothighlight.constant.character.escape.undocumented"},{match:"\\\\\\[(?:M(?:inus|oon))\\]",name:"donothighlight.constant.character.escape.undocumented"},{match:"\\\\\\[(?:N(?:umberComma))\\]",name:"donothighlight.constant.character.escape.undocumented"},{match:"\\\\\\[(?:P(?:ageBreakAbove|ageBreakBelow|robabilityPr))\\]",name:"donothighlight.constant.character.escape.undocumented"},{match:"\\\\\\[(?:S(?:pooky|tepperDown|tepperLeft|tepperRight|tepperUp|un))\\]",name:"donothighlight.constant.character.escape.undocumented"},{match:"\\\\\\[(?:U(?:nknownGlyph))\\]",name:"donothighlight.constant.character.escape.undocumented"},{match:"\\\\\\[(?:V(?:illa))\\]",name:"donothighlight.constant.character.escape.undocumented"},{match:"\\\\\\[(?:W(?:olframAlphaPrompt))\\]",name:"donothighlight.constant.character.escape.undocumented"},{match:"\\\\\\[(?:C(?:OMPATIBILITYKanjiSpace|OMPATIBILITYNoBreak))\\]",name:"invalid.illegal.unsupported"},{match:"\\\\\\[(?:I(?:nlinePart))\\]",name:"invalid.illegal.unsupported"},{match:"\\\\\\[(?:A(?:Acute|Bar|Cup|DoubleDot|E|Grave|Hat|Ring|Tilde|leph|liasDelimiter|liasIndicator|lignmentMarker|lpha|ltKey|nd|ngle|ngstrom|pplication|quariusSign|riesSign|scendingEllipsis|utoLeftMatch|utoOperand|utoPlaceholder|utoRightMatch|utoSpace))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:B(?:ackslash|eamedEighthNote|eamedSixteenthNote|ecause|et|eta|lackBishop|lackKing|lackKnight|lackPawn|lackQueen|lackRook|reve|ullet))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:C(?:Acute|Cedilla|Hacek|ancerSign|ap|apitalAAcute|apitalABar|apitalACup|apitalADoubleDot|apitalAE|apitalAGrave|apitalAHat|apitalARing|apitalATilde|apitalAlpha|apitalBeta|apitalCAcute|apitalCCedilla|apitalCHacek|apitalChi|apitalDHacek|apitalDelta|apitalDifferentialD|apitalDigamma|apitalEAcute|apitalEBar|apitalECup|apitalEDoubleDot|apitalEGrave|apitalEHacek|apitalEHat|apitalEpsilon|apitalEta|apitalEth|apitalGamma|apitalIAcute|apitalICup|apitalIDoubleDot|apitalIGrave|apitalIHat|apitalIota|apitalKappa|apitalKoppa|apitalLSlash|apitalLambda|apitalMu|apitalNHacek|apitalNTilde|apitalNu|apitalOAcute|apitalODoubleAcute|apitalODoubleDot|apitalOE|apitalOGrave|apitalOHat|apitalOSlash|apitalOTilde|apitalOmega|apitalOmicron|apitalPhi|apitalPi|apitalPsi|apitalRHacek|apitalRho|apitalSHacek|apitalSampi|apitalSigma|apitalStigma|apitalTHacek|apitalTau|apitalTheta|apitalThorn|apitalUAcute|apitalUDoubleAcute|apitalUDoubleDot|apitalUGrave|apitalUHat|apitalURing|apitalUpsilon|apitalXi|apitalYAcute|apitalZHacek|apitalZeta|apricornSign|edilla|ent|enterDot|enterEllipsis|heckedBox|heckmark|heckmarkedBox|hi|ircleDot|ircleMinus|irclePlus|ircleTimes|lockwiseContourIntegral|loseCurlyDoubleQuote|loseCurlyQuote|loverLeaf|lubSuit|olon|ommandKey|onditioned|ongruent|onjugate|onjugateTranspose|onstantC|ontinuation|ontourIntegral|ontrolKey|oproduct|opyright|ounterClockwiseContourIntegral|ross|ubeRoot|up|upCap|urlyCapitalUpsilon|urlyEpsilon|urlyKappa|urlyPhi|urlyPi|urlyRho|urlyTheta|urrency))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:D(?:Hacek|agger|alet|ash|egree|el|eleteKey|elta|escendingEllipsis|iameter|iamond|iamondSuit|ifferenceDelta|ifferentialD|igamma|irectedEdge|iscreteRatio|iscreteShift|iscretionaryHyphen|iscretionaryLineSeparator|iscretionaryPageBreakAbove|iscretionaryPageBreakBelow|iscretionaryParagraphSeparator|istributed|ivide|ivides|otEqual|otlessI|otlessJ|ottedSquare|oubleContourIntegral|oubleDagger|oubleDot|oubleDownArrow|oubleLeftArrow|oubleLeftRightArrow|oubleLeftTee|oubleLongLeftArrow|oubleLongLeftRightArrow|oubleLongRightArrow|oublePrime|oubleRightArrow|oubleRightTee|oubleStruckA|oubleStruckB|oubleStruckC|oubleStruckCapitalA|oubleStruckCapitalB|oubleStruckCapitalC|oubleStruckCapitalD|oubleStruckCapitalE|oubleStruckCapitalF|oubleStruckCapitalG|oubleStruckCapitalH|oubleStruckCapitalI|oubleStruckCapitalJ|oubleStruckCapitalK|oubleStruckCapitalL|oubleStruckCapitalM|oubleStruckCapitalN|oubleStruckCapitalO|oubleStruckCapitalP|oubleStruckCapitalQ|oubleStruckCapitalR|oubleStruckCapitalS|oubleStruckCapitalT|oubleStruckCapitalU|oubleStruckCapitalV|oubleStruckCapitalW|oubleStruckCapitalX|oubleStruckCapitalY|oubleStruckCapitalZ|oubleStruckD|oubleStruckE|oubleStruckEight|oubleStruckF|oubleStruckFive|oubleStruckFour|oubleStruckG|oubleStruckH|oubleStruckI|oubleStruckJ|oubleStruckK|oubleStruckL|oubleStruckM|oubleStruckN|oubleStruckNine|oubleStruckO|oubleStruckOne|oubleStruckP|oubleStruckQ|oubleStruckR|oubleStruckS|oubleStruckSeven|oubleStruckSix|oubleStruckT|oubleStruckThree|oubleStruckTwo|oubleStruckU|oubleStruckV|oubleStruckW|oubleStruckX|oubleStruckY|oubleStruckZ|oubleStruckZero|oubleUpArrow|oubleUpDownArrow|oubleVerticalBar|oubledGamma|oubledPi|ownArrow|ownArrowBar|ownArrowUpArrow|ownBreve|ownExclamation|ownLeftRightVector|ownLeftTeeVector|ownLeftVector|ownLeftVectorBar|ownPointer|ownQuestion|ownRightTeeVector|ownRightVector|ownRightVectorBar|ownTee|ownTeeArrow))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:E(?:Acute|Bar|Cup|DoubleDot|Grave|Hacek|Hat|arth|ighthNote|lement|llipsis|mptyCircle|mptyDiamond|mptyDownTriangle|mptyRectangle|mptySet|mptySmallCircle|mptySmallSquare|mptySquare|mptyUpTriangle|mptyVerySmallSquare|nterKey|ntityEnd|ntityStart|psilon|qual|qualTilde|quilibrium|quivalent|rrorIndicator|scapeKey|ta|th|uro|xists|xponentialE))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:F(?:iLigature|illedCircle|illedDiamond|illedDownTriangle|illedLeftTriangle|illedRectangle|illedRightTriangle|illedSmallCircle|illedSmallSquare|illedSquare|illedUpTriangle|illedVerySmallSquare|inalSigma|irstPage|ivePointedStar|lLigature|lat|lorin|orAll|ormalA|ormalAlpha|ormalB|ormalBeta|ormalC|ormalCapitalA|ormalCapitalAlpha|ormalCapitalB|ormalCapitalBeta|ormalCapitalC|ormalCapitalChi|ormalCapitalD|ormalCapitalDelta|ormalCapitalDigamma|ormalCapitalE|ormalCapitalEpsilon|ormalCapitalEta|ormalCapitalF|ormalCapitalG|ormalCapitalGamma|ormalCapitalH|ormalCapitalI|ormalCapitalIota|ormalCapitalJ|ormalCapitalK|ormalCapitalKappa|ormalCapitalKoppa|ormalCapitalL|ormalCapitalLambda|ormalCapitalM|ormalCapitalMu|ormalCapitalN|ormalCapitalNu|ormalCapitalO|ormalCapitalOmega|ormalCapitalOmicron|ormalCapitalP|ormalCapitalPhi|ormalCapitalPi|ormalCapitalPsi|ormalCapitalQ|ormalCapitalR|ormalCapitalRho|ormalCapitalS|ormalCapitalSampi|ormalCapitalSigma|ormalCapitalStigma|ormalCapitalT|ormalCapitalTau|ormalCapitalTheta|ormalCapitalU|ormalCapitalUpsilon|ormalCapitalV|ormalCapitalW|ormalCapitalX|ormalCapitalXi|ormalCapitalY|ormalCapitalZ|ormalCapitalZeta|ormalChi|ormalCurlyCapitalUpsilon|ormalCurlyEpsilon|ormalCurlyKappa|ormalCurlyPhi|ormalCurlyPi|ormalCurlyRho|ormalCurlyTheta|ormalD|ormalDelta|ormalDigamma|ormalE|ormalEpsilon|ormalEta|ormalF|ormalFinalSigma|ormalG|ormalGamma|ormalH|ormalI|ormalIota|ormalJ|ormalK|ormalKappa|ormalKoppa|ormalL|ormalLambda|ormalM|ormalMu|ormalN|ormalNu|ormalO|ormalOmega|ormalOmicron|ormalP|ormalPhi|ormalPi|ormalPsi|ormalQ|ormalR|ormalRho|ormalS|ormalSampi|ormalScriptA|ormalScriptB|ormalScriptC|ormalScriptCapitalA|ormalScriptCapitalB|ormalScriptCapitalC|ormalScriptCapitalD|ormalScriptCapitalE|ormalScriptCapitalF|ormalScriptCapitalG|ormalScriptCapitalH|ormalScriptCapitalI|ormalScriptCapitalJ|ormalScriptCapitalK|ormalScriptCapitalL|ormalScriptCapitalM|ormalScriptCapitalN|ormalScriptCapitalO|ormalScriptCapitalP|ormalScriptCapitalQ|ormalScriptCapitalR|ormalScriptCapitalS|ormalScriptCapitalT|ormalScriptCapitalU|ormalScriptCapitalV|ormalScriptCapitalW|ormalScriptCapitalX|ormalScriptCapitalY|ormalScriptCapitalZ|ormalScriptD|ormalScriptE|ormalScriptF|ormalScriptG|ormalScriptH|ormalScriptI|ormalScriptJ|ormalScriptK|ormalScriptL|ormalScriptM|ormalScriptN|ormalScriptO|ormalScriptP|ormalScriptQ|ormalScriptR|ormalScriptS|ormalScriptT|ormalScriptU|ormalScriptV|ormalScriptW|ormalScriptX|ormalScriptY|ormalScriptZ|ormalSigma|ormalStigma|ormalT|ormalTau|ormalTheta|ormalU|ormalUpsilon|ormalV|ormalW|ormalX|ormalXi|ormalY|ormalZ|ormalZeta|reakedSmiley|unction))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:G(?:amma|eminiSign|imel|othicA|othicB|othicC|othicCapitalA|othicCapitalB|othicCapitalC|othicCapitalD|othicCapitalE|othicCapitalF|othicCapitalG|othicCapitalH|othicCapitalI|othicCapitalJ|othicCapitalK|othicCapitalL|othicCapitalM|othicCapitalN|othicCapitalO|othicCapitalP|othicCapitalQ|othicCapitalR|othicCapitalS|othicCapitalT|othicCapitalU|othicCapitalV|othicCapitalW|othicCapitalX|othicCapitalY|othicCapitalZ|othicD|othicE|othicEight|othicF|othicFive|othicFour|othicG|othicH|othicI|othicJ|othicK|othicL|othicM|othicN|othicNine|othicO|othicOne|othicP|othicQ|othicR|othicS|othicSeven|othicSix|othicT|othicThree|othicTwo|othicU|othicV|othicW|othicX|othicY|othicZ|othicZero|rayCircle|raySquare|reaterEqual|reaterEqualLess|reaterFullEqual|reaterGreater|reaterLess|reaterSlantEqual|reaterTilde))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:H(?:Bar|acek|appySmiley|eartSuit|ermitianConjugate|orizontalLine|umpDownHump|umpEqual|yphen))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:I(?:Acute|Cup|DoubleDot|Grave|Hat|maginaryI|maginaryJ|mplicitPlus|mplies|ndentingNewLine|nfinity|ntegral|ntersection|nvisibleApplication|nvisibleComma|nvisiblePostfixScriptBase|nvisiblePrefixScriptBase|nvisibleSpace|nvisibleTimes|ota))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:J(?:upiter))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:K(?:appa|ernelIcon|eyBar|oppa))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:L(?:Slash|ambda|astPage|eftAngleBracket|eftArrow|eftArrowBar|eftArrowRightArrow|eftAssociation|eftBracketingBar|eftCeiling|eftDoubleBracket|eftDoubleBracketingBar|eftDownTeeVector|eftDownVector|eftDownVectorBar|eftFloor|eftGuillemet|eftModified|eftPointer|eftRightArrow|eftRightVector|eftSkeleton|eftTee|eftTeeArrow|eftTeeVector|eftTriangle|eftTriangleBar|eftTriangleEqual|eftUpDownVector|eftUpTeeVector|eftUpVector|eftUpVectorBar|eftVector|eftVectorBar|eoSign|essEqual|essEqualGreater|essFullEqual|essGreater|essLess|essSlantEqual|essTilde|etterSpace|ibraSign|ightBulb|imit|ineSeparator|ongDash|ongEqual|ongLeftArrow|ongLeftRightArrow|ongRightArrow|owerLeftArrow|owerRightArrow))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:M(?:ars|athematicaIcon|axLimit|easuredAngle|ediumSpace|ercury|ho|icro|inLimit|inusPlus|od1Key|od2Key|u))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:N(?:Hacek|Tilde|and|atural|egativeMediumSpace|egativeThickSpace|egativeThinSpace|egativeVeryThinSpace|eptune|estedGreaterGreater|estedLessLess|eutralSmiley|ewLine|oBreak|onBreakingSpace|or|ot|otCongruent|otCupCap|otDoubleVerticalBar|otElement|otEqual|otEqualTilde|otExists|otGreater|otGreaterEqual|otGreaterFullEqual|otGreaterGreater|otGreaterLess|otGreaterSlantEqual|otGreaterTilde|otHumpDownHump|otHumpEqual|otLeftTriangle|otLeftTriangleBar|otLeftTriangleEqual|otLess|otLessEqual|otLessFullEqual|otLessGreater|otLessLess|otLessSlantEqual|otLessTilde|otNestedGreaterGreater|otNestedLessLess|otPrecedes|otPrecedesEqual|otPrecedesSlantEqual|otPrecedesTilde|otReverseElement|otRightTriangle|otRightTriangleBar|otRightTriangleEqual|otSquareSubset|otSquareSubsetEqual|otSquareSuperset|otSquareSupersetEqual|otSubset|otSubsetEqual|otSucceeds|otSucceedsEqual|otSucceedsSlantEqual|otSucceedsTilde|otSuperset|otSupersetEqual|otTilde|otTildeEqual|otTildeFullEqual|otTildeTilde|otVerticalBar|u|ull|umberSign))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:O(?:Acute|DoubleAcute|DoubleDot|E|Grave|Hat|Slash|Tilde|mega|micron|penCurlyDoubleQuote|penCurlyQuote|ptionKey|r|verBrace|verBracket|verParenthesis))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:P(?:aragraph|aragraphSeparator|artialD|ermutationProduct|erpendicular|hi|i|iecewise|iscesSign|laceholder|lusMinus|luto|recedes|recedesEqual|recedesSlantEqual|recedesTilde|rime|roduct|roportion|roportional|si))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:Q(?:uarterNote))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:R(?:Hacek|awAmpersand|awAt|awBackquote|awBackslash|awColon|awComma|awDash|awDollar|awDot|awDoubleQuote|awEqual|awEscape|awExclamation|awGreater|awLeftBrace|awLeftBracket|awLeftParenthesis|awLess|awNumberSign|awPercent|awPlus|awQuestion|awQuote|awReturn|awRightBrace|awRightBracket|awRightParenthesis|awSemicolon|awSlash|awSpace|awStar|awTab|awTilde|awUnderscore|awVerticalBar|awWedge|egisteredTrademark|eturnIndicator|eturnKey|everseDoublePrime|everseElement|everseEquilibrium|eversePrime|everseUpEquilibrium|ho|ightAngle|ightAngleBracket|ightArrow|ightArrowBar|ightArrowLeftArrow|ightAssociation|ightBracketingBar|ightCeiling|ightDoubleBracket|ightDoubleBracketingBar|ightDownTeeVector|ightDownVector|ightDownVectorBar|ightFloor|ightGuillemet|ightModified|ightPointer|ightSkeleton|ightTee|ightTeeArrow|ightTeeVector|ightTriangle|ightTriangleBar|ightTriangleEqual|ightUpDownVector|ightUpTeeVector|ightUpVector|ightUpVectorBar|ightVector|ightVectorBar|oundImplies|oundSpaceIndicator|ule|uleDelayed|upee))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:S(?:Hacek|Z|adSmiley|agittariusSign|ampi|aturn|corpioSign|criptA|criptB|criptC|criptCapitalA|criptCapitalB|criptCapitalC|criptCapitalD|criptCapitalE|criptCapitalF|criptCapitalG|criptCapitalH|criptCapitalI|criptCapitalJ|criptCapitalK|criptCapitalL|criptCapitalM|criptCapitalN|criptCapitalO|criptCapitalP|criptCapitalQ|criptCapitalR|criptCapitalS|criptCapitalT|criptCapitalU|criptCapitalV|criptCapitalW|criptCapitalX|criptCapitalY|criptCapitalZ|criptD|criptDotlessI|criptDotlessJ|criptE|criptEight|criptF|criptFive|criptFour|criptG|criptH|criptI|criptJ|criptK|criptL|criptM|criptN|criptNine|criptO|criptOne|criptP|criptQ|criptR|criptS|criptSeven|criptSix|criptT|criptThree|criptTwo|criptU|criptV|criptW|criptX|criptY|criptZ|criptZero|ection|electionPlaceholder|hah|harp|hiftKey|hortDownArrow|hortLeftArrow|hortRightArrow|hortUpArrow|igma|ixPointedStar|keletonIndicator|mallCircle|paceIndicator|paceKey|padeSuit|panFromAbove|panFromBoth|panFromLeft|phericalAngle|qrt|quare|quareIntersection|quareSubset|quareSubsetEqual|quareSuperset|quareSupersetEqual|quareUnion|tar|terling|tigma|ubset|ubsetEqual|ucceeds|ucceedsEqual|ucceedsSlantEqual|ucceedsTilde|uchThat|um|uperset|upersetEqual|ystemEnterKey|ystemsModelDelay))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:T(?:Hacek|abKey|au|aurusSign|ensorProduct|ensorWedge|herefore|heta|hickSpace|hinSpace|horn|ilde|ildeEqual|ildeFullEqual|ildeTilde|imes|rademark|ranspose|ripleDot|woWayRule))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:U(?:Acute|DoubleAcute|DoubleDot|Grave|Hat|Ring|nderBrace|nderBracket|nderParenthesis|ndirectedEdge|nion|nionPlus|pArrow|pArrowBar|pArrowDownArrow|pDownArrow|pEquilibrium|pPointer|pTee|pTeeArrow|pperLeftArrow|pperRightArrow|psilon|ranus))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:V(?:ectorGreater|ectorGreaterEqual|ectorLess|ectorLessEqual|ee|enus|erticalBar|erticalEllipsis|erticalLine|erticalSeparator|erticalTilde|eryThinSpace|irgoSign))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:W(?:arningSign|atchIcon|edge|eierstrassP|hiteBishop|hiteKing|hiteKnight|hitePawn|hiteQueen|hiteRook|olf|olframLanguageLogo|olframLanguageLogoCircle))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:X(?:i|nor|or))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:Y(?:Acute|DoubleDot|en))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:Z(?:Hacek|eta))\\]",name:"donothighlight.constant.character.escape"},{match:"\\\\\\[(?:[$[:alpha:]][$[:alnum:]]*)?\\]?",name:"invalid.illegal.BadLongName"},{match:"\\\\(?:[$[:alpha:]][$[:alnum:]]*)\\]",name:"invalid.illegal.BadLongName"},{match:"\\\\:\\h{4}",name:"donothighlight.constant.character.escape"},{match:"\\\\:\\h{1,3}",name:"invalid.illegal"},{match:"\\\\\\.\\h{2}",name:"donothighlight.constant.character.escape"},{match:"\\\\\\.\\h{1}",name:"invalid.illegal"},{match:"\\\\\\|0\\h{5}",name:"donothighlight.constant.character.escape"},{match:"\\\\\\|10\\h{4}",name:"donothighlight.constant.character.escape"},{match:"\\\\\\|\\h{1,6}",name:"invalid.illegal"},{match:"\\\\[0-7]{3}",name:"donothighlight.constant.character.escape"},{match:"\\\\[0-7]{1,2}",name:"invalid.illegal"},{match:"\\\\$",name:"donothighlight.constant.character.escape punctuation.separator.continuation"},{match:"\\\\.",name:"invalid.illegal"}]},string_escaped_characters:{patterns:[{match:"\\\\[bfnrt\\\"\\\\<>]",name:"donothighlight.constant.character.escape"},{include:"#escaped_characters"}]},literals:{patterns:[{include:"#numbers"},{include:"#strings"}]},numbers:{patterns:[{match:"2\\^\\^(?:(?:0|1)+(?:\\.(?!\\.)(?:0|1)*)?+|\\.(?!\\.)(?:0|1)+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))(?:\\*\\^(?:-|\\+)?+\\d+)",name:"constant.numeric.wolfram"},{match:"2\\^\\^(?:(?:0|1)+(?:\\.(?!\\.)(?:0|1)*)?+|\\.(?!\\.)(?:0|1)+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))\\*\\^",name:"invalid.illegal"},{match:"2\\^\\^(?:(?:0|1)+(?:\\.(?!\\.)(?:0|1)*)?+|\\.(?!\\.)(?:0|1)+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))",name:"constant.numeric.wolfram"},{match:"2\\^\\^(?:(?:0|1)+(?:\\.(?!\\.)(?:0|1)*)?+|\\.(?!\\.)(?:0|1)+)``",name:"invalid.illegal"},{match:"2\\^\\^(?:(?:0|1)+(?:\\.(?!\\.)(?:0|1)*)?+|\\.(?!\\.)(?:0|1)+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)(?:\\*\\^(?:-|\\+)?+\\d+)",name:"constant.numeric.wolfram"},{match:"2\\^\\^(?:(?:0|1)+(?:\\.(?!\\.)(?:0|1)*)?+|\\.(?!\\.)(?:0|1)+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)\\*\\^",name:"invalid.illegal"},{match:"2\\^\\^(?:(?:0|1)+(?:\\.(?!\\.)(?:0|1)*)?+|\\.(?!\\.)(?:0|1)+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)",name:"constant.numeric.wolfram"},{match:"2\\^\\^(?:(?:0|1)+(?:\\.(?!\\.)(?:0|1)*)?+|\\.(?!\\.)(?:0|1)+)(?:\\*\\^(?:-|\\+)?+\\d+)",name:"constant.numeric.wolfram"},{match:"2\\^\\^(?:(?:0|1)+(?:\\.(?!\\.)(?:0|1)*)?+|\\.(?!\\.)(?:0|1)+)\\*\\^",name:"invalid.illegal"},{match:"2\\^\\^(?:(?:0|1)+(?:\\.(?!\\.)(?:0|1)*)?+|\\.(?!\\.)(?:0|1)+)",name:"constant.numeric.wolfram"},{match:"2\\^\\^",name:"invalid.illegal"},{match:"8\\^\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\.(?!\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\.(?!\\.)(?:0|1|2|3|4|5|6|7)+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))(?:\\*\\^(?:-|\\+)?+\\d+)",name:"constant.numeric.wolfram"},{match:"8\\^\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\.(?!\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\.(?!\\.)(?:0|1|2|3|4|5|6|7)+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))\\*\\^",name:"invalid.illegal"},{match:"8\\^\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\.(?!\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\.(?!\\.)(?:0|1|2|3|4|5|6|7)+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))",name:"constant.numeric.wolfram"},{match:"8\\^\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\.(?!\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\.(?!\\.)(?:0|1|2|3|4|5|6|7)+)``",name:"invalid.illegal"},{match:"8\\^\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\.(?!\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\.(?!\\.)(?:0|1|2|3|4|5|6|7)+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)(?:\\*\\^(?:-|\\+)?+\\d+)",name:"constant.numeric.wolfram"},{match:"8\\^\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\.(?!\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\.(?!\\.)(?:0|1|2|3|4|5|6|7)+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)\\*\\^",name:"invalid.illegal"},{match:"8\\^\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\.(?!\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\.(?!\\.)(?:0|1|2|3|4|5|6|7)+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)",name:"constant.numeric.wolfram"},{match:"8\\^\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\.(?!\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\.(?!\\.)(?:0|1|2|3|4|5|6|7)+)(?:\\*\\^(?:-|\\+)?+\\d+)",name:"constant.numeric.wolfram"},{match:"8\\^\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\.(?!\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\.(?!\\.)(?:0|1|2|3|4|5|6|7)+)\\*\\^",name:"invalid.illegal"},{match:"8\\^\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\.(?!\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\.(?!\\.)(?:0|1|2|3|4|5|6|7)+)",name:"constant.numeric.wolfram"},{match:"8\\^\\^",name:"invalid.illegal"},{match:"16\\^\\^(?:\\h+(?:\\.(?!\\.)\\h*)?+|\\.(?!\\.)\\h+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))(?:\\*\\^(?:-|\\+)?+\\d+)",name:"constant.numeric.wolfram"},{match:"16\\^\\^(?:\\h+(?:\\.(?!\\.)\\h*)?+|\\.(?!\\.)\\h+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))\\*\\^",name:"invalid.illegal"},{match:"16\\^\\^(?:\\h+(?:\\.(?!\\.)\\h*)?+|\\.(?!\\.)\\h+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))",name:"constant.numeric.wolfram"},{match:"16\\^\\^(?:\\h+(?:\\.(?!\\.)\\h*)?+|\\.(?!\\.)\\h+)``",name:"invalid.illegal"},{match:"16\\^\\^(?:\\h+(?:\\.(?!\\.)\\h*)?+|\\.(?!\\.)\\h+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)(?:\\*\\^(?:-|\\+)?+\\d+)",name:"constant.numeric.wolfram"},{match:"16\\^\\^(?:\\h+(?:\\.(?!\\.)\\h*)?+|\\.(?!\\.)\\h+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)\\*\\^",name:"invalid.illegal"},{match:"16\\^\\^(?:\\h+(?:\\.(?!\\.)\\h*)?+|\\.(?!\\.)\\h+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)",name:"constant.numeric.wolfram"},{match:"16\\^\\^(?:\\h+(?:\\.(?!\\.)\\h*)?+|\\.(?!\\.)\\h+)(?:\\*\\^(?:-|\\+)?+\\d+)",name:"constant.numeric.wolfram"},{match:"16\\^\\^(?:\\h+(?:\\.(?!\\.)\\h*)?+|\\.(?!\\.)\\h+)\\*\\^",name:"invalid.illegal"},{match:"16\\^\\^(?:\\h+(?:\\.(?!\\.)\\h*)?+|\\.(?!\\.)\\h+)",name:"constant.numeric.wolfram"},{match:"16\\^\\^",name:"invalid.illegal"},{match:"(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))(?:\\*\\^(?:-|\\+)?+\\d+)",name:"constant.numeric.wolfram"},{match:"(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))\\*\\^",name:"invalid.illegal"},{match:"(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))",name:"constant.numeric.wolfram"},{match:"(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)``",name:"invalid.illegal"},{match:"(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)(?:\\*\\^(?:-|\\+)?+\\d+)",name:"constant.numeric.wolfram"},{match:"(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)\\*\\^",name:"invalid.illegal"},{match:"(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)",name:"constant.numeric.wolfram"},{match:"(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)(?:\\*\\^(?:-|\\+)?+\\d+)",name:"constant.numeric.wolfram"},{match:"(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)\\*\\^",name:"invalid.illegal"},{match:"(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)",name:"constant.numeric.wolfram"}]},strings:{patterns:[{name:"string.quoted.double",begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end"}},patterns:[{include:"#string_escaped_characters"}]}]},"stringifying-operators":{patterns:[{match:"(>>>)(?=\\s*\")",captures:{"1":{name:"keyword.operator.PutAppend.wolfram"}}},{match:"(>>>)\\s*(\\w+)",captures:{"1":{name:"keyword.operator.PutAppend.wolfram"},"2":{name:"string.unquoted.wolfram"}}},{match:">>>",name:"invalid.illegal"},{match:"(::)(?=\\s*\")",captures:{"1":{name:"keyword.operator.MessageName.wolfram"}}},{match:"(::)([[:alpha:]][[:alnum:]]*)",captures:{"1":{name:"keyword.operator.MessageName.wolfram"},"2":{name:"string.unquoted.wolfram"}}},{match:"::",name:"invalid.illegal"},{match:"(<<)(?=\\s*\")",captures:{"1":{name:"keyword.operator.Get.wolfram"}}},{match:"(<<)\\s*([`[:alpha:]][`[:alnum:]]*)",captures:{"1":{name:"keyword.operator.Get.wolfram"},"2":{name:"string.unquoted.wolfram"}}},{match:"<<",name:"invalid.illegal"},{match:"(>>)(?=\\s*\")",captures:{"1":{name:"keyword.operator.Put.wolfram"}}},{match:"(>>)\\s*(\\w*)",captures:{"1":{name:"keyword.operator.Put.wolfram"},"2":{name:"string.unquoted.wolfram"}}},{match:">>",name:"invalid.illegal"}]},operators:{patterns:[{match:"(?:\\^:=)",name:"keyword.operator.assignment.UpSetDelayed.wolfram"},{match:"(?:\\^:)",name:"invalid.illegal"},{match:"(?:===)",name:"keyword.operator.SameQ.wolfram"},{match:"(?:=!=|\\.\\.\\.|//\\.|@@@|<->|//@)",name:"keyword.operator.wolfram"},{match:"(?:\\|->)",name:"keyword.operator.Function.wolfram"},{match:"(?://=)",name:"keyword.operator.assignment.ApplyTo.wolfram"},{match:"(?:--|\\+\\+)",name:"keyword.operator.arithmetic.wolfram"},{match:"(?:\\|\\||&&)",name:"keyword.operator.logical.wolfram"},{match:"(?::=)",name:"keyword.operator.assignment.SetDelayed.wolfram"},{match:"(?:\\^=)",name:"keyword.operator.assignment.UpSet.wolfram"},{match:"(?:/=)",name:"keyword.operator.assignment.DivideBy.wolfram"},{match:"(?:\\+=)",name:"keyword.operator.assignment.AddTo.wolfram"},{match:"(?:=\\s+\\.(?![0-9]))",name:"invalid.whitespace.Unset.wolfram"},{match:"(?:=\\.(?![0-9]))",name:"keyword.operator.assignment.Unset.wolfram"},{match:"(?:\\*=)",name:"keyword.operator.assignment.TimesBy.wolfram"},{match:"(?:-=)",name:"keyword.operator.assignment.SubtractFrom.wolfram"},{match:"(?:/:)",name:"keyword.operator.assignment.Tag.wolfram"},{match:"(?:;;)$",name:"invalid.endofline.Span.wolfram"},{match:"(?:;;)",name:"keyword.operator.Span.wolfram"},{match:"(?:!=)",name:"keyword.operator.Unequal.wolfram"},{match:"(?:==)",name:"keyword.operator.Equal.wolfram"},{match:"(?:!!)",name:"keyword.operator.BangBang.wolfram"},{match:"(?:\\?\\?)",name:"invalid.illegal.Information.wolfram"},{match:"(?:<=|>=|\\.\\.|:>|<>|->|/@|/;|/\\.|//|/\\*|@@|@\\*|~~|\\*\\*)",name:"keyword.operator.wolfram"},{match:"(?:-|\\+|/|\\*)",name:"keyword.operator.arithmetic.wolfram"},{match:"(?:=)",name:"keyword.operator.assignment.Set.wolfram"},{match:"(?:<)",name:"keyword.operator.Less.wolfram"},{match:"(?:\\|)",name:"keyword.operator.Alternatives.wolfram"},{match:"(?:!)",name:"keyword.operator.Bang.wolfram"},{match:"(?:;)",name:"keyword.operator.CompoundExpression.wolfram punctuation.terminator"},{match:"(?:,)",name:"keyword.operator.Comma.wolfram punctuation.separator"},{match:"^(?:\\?)",name:"invalid.startofline.Information.wolfram"},{match:"(?:\\?)",name:"keyword.operator.PatternTest.wolfram"},{match:"(?:')",name:"keyword.operator.Derivative.wolfram"},{match:"(?:&)",name:"keyword.operator.Function.wolfram"},{match:"(?:>|\\^|\\.|:|@|~)",name:"keyword.operator.wolfram"}]},symbols:{patterns:[{match:"System`(?:A(?:ASTriangle|PIFunction|RCHProcess|RIMAProcess|RMAProcess|RProcess|SATriangle|belianGroup|bort|bortKernels|bortProtect|bs|bsArg|bsArgPlot|bsoluteCorrelation|bsoluteCorrelationFunction|bsoluteCurrentValue|bsoluteDashing|bsoluteFileName|bsoluteOptions|bsolutePointSize|bsoluteThickness|bsoluteTime|bsoluteTiming|ccountingForm|ccumulate|ccuracy|cousticAbsorbingValue|cousticImpedanceValue|cousticNormalVelocityValue|cousticPDEComponent|cousticPressureCondition|cousticRadiationValue|cousticSoundHardValue|cousticSoundSoftCondition|ctionMenu|ctivate|cyclicGraphQ|ddSides|ddTo|ddUsers|djacencyGraph|djacencyList|djacencyMatrix|djacentMeshCells|djugate|djustTimeSeriesForecast|djustmentBox|dministrativeDivisionData|ffineHalfSpace|ffineSpace|ffineStateSpaceModel|ffineTransform|irPressureData|irSoundAttenuation|irTemperatureData|ircraftData|irportData|iryAi|iryAiPrime|iryAiZero|iryBi|iryBiPrime|iryBiZero|lgebraicIntegerQ|lgebraicNumber|lgebraicNumberDenominator|lgebraicNumberNorm|lgebraicNumberPolynomial|lgebraicNumberTrace|lgebraicUnitQ|llTrue|lphaChannel|lphabet|lphabeticOrder|lphabeticSort|lternatingFactorial|lternatingGroup|lternatives|mbientLight|mbiguityList|natomyData|natomyPlot3D|natomyStyling|nd|ndersonDarlingTest|ngerJ|ngleBracket|nglePath|nglePath3D|ngleVector|ngularGauge|nimate|nimator|nnotate|nnotation|nnotationDelete|nnotationKeys|nnotationValue|nnuity|nnuityDue|nnulus|nomalyDetection|nomalyDetectorFunction|ntihermitian|ntihermitianMatrixQ|ntisymmetric|ntisymmetricMatrixQ|ntonyms|nyOrder|nySubset|nyTrue|part|partSquareFree|ppellF1|ppend|ppendTo|pply|pplySides|pplyTo|rcCos|rcCosh|rcCot|rcCoth|rcCsc|rcCsch|rcCurvature|rcLength|rcSec|rcSech|rcSin|rcSinDistribution|rcSinh|rcTan|rcTanh|rea|rg|rgMax|rgMin|rgumentsOptions|rithmeticGeometricMean|rray|rrayComponents|rrayDepth|rrayFilter|rrayFlatten|rrayMesh|rrayPad|rrayPlot|rrayPlot3D|rrayQ|rrayResample|rrayReshape|rrayRules|rrays|rrow|rrowheads|ssert|ssociateTo|ssociation|ssociationMap|ssociationQ|ssociationThread|ssuming|symptotic|symptoticDSolveValue|symptoticEqual|symptoticEquivalent|symptoticExpectation|symptoticGreater|symptoticGreaterEqual|symptoticIntegrate|symptoticLess|symptoticLessEqual|symptoticOutputTracker|symptoticProbability|symptoticProduct|symptoticRSolveValue|symptoticSolve|symptoticSum|tomQ|ttributes|udio|udioAmplify|udioBlockMap|udioCapture|udioChannelCombine|udioChannelMix|udioChannelSeparate|udioChannels|udioData|udioDelay|udioDelete|udioDistance|udioFade|udioFrequencyShift|udioGenerator|udioInsert|udioIntervals|udioJoin|udioLength|udioLocalMeasurements|udioLoudness|udioMeasurements|udioNormalize|udioOverlay|udioPad|udioPan|udioPartition|udioPitchShift|udioPlot|udioQ|udioReplace|udioResample|udioReverb|udioReverse|udioSampleRate|udioSpectralMap|udioSpectralTransformation|udioSplit|udioTimeStretch|udioTrim|udioType|ugmentedPolyhedron|ugmentedSymmetricPolynomial|uthenticationDialog|utoRefreshed|utoSubmitting|utocorrelationTest))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:B(?:SplineBasis|SplineCurve|SplineFunction|SplineSurface|abyMonsterGroupB|ackslash|all|and|andpassFilter|andstopFilter|arChart|arChart3D|arLegend|arabasiAlbertGraphDistribution|arcodeImage|arcodeRecognize|aringhausHenzeTest|arlowProschanImportance|arnesG|artlettHannWindow|artlettWindow|aseDecode|aseEncode|aseForm|atesDistribution|attleLemarieWavelet|ecause|eckmannDistribution|eep|egin|eginDialogPacket|eginPackage|ellB|ellY|enfordDistribution|eniniDistribution|enktanderGibratDistribution|enktanderWeibullDistribution|ernoulliB|ernoulliDistribution|ernoulliGraphDistribution|ernoulliProcess|ernsteinBasis|esselFilterModel|esselI|esselJ|esselJZero|esselK|esselY|esselYZero|eta|etaBinomialDistribution|etaDistribution|etaNegativeBinomialDistribution|etaPrimeDistribution|etaRegularized|etween|etweennessCentrality|eveledPolyhedron|ezierCurve|ezierFunction|ilateralFilter|ilateralLaplaceTransform|ilateralZTransform|inCounts|inLists|inarize|inaryDeserialize|inaryDistance|inaryImageQ|inaryRead|inaryReadList|inarySerialize|inaryWrite|inomial|inomialDistribution|inomialProcess|inormalDistribution|iorthogonalSplineWavelet|ipartiteGraphQ|iquadraticFilterModel|irnbaumImportance|irnbaumSaundersDistribution|itAnd|itClear|itGet|itLength|itNot|itOr|itSet|itShiftLeft|itShiftRight|itXor|iweightLocation|iweightMidvariance|lackmanHarrisWindow|lackmanNuttallWindow|lackmanWindow|lank|lankNullSequence|lankSequence|lend|lock|lockMap|lockRandom|lomqvistBeta|lomqvistBetaTest|lur|lurring|odePlot|ohmanWindow|oole|ooleanConsecutiveFunction|ooleanConvert|ooleanCountingFunction|ooleanFunction|ooleanGraph|ooleanMaxterms|ooleanMinimize|ooleanMinterms|ooleanQ|ooleanRegion|ooleanTable|ooleanVariables|orderDimensions|orelTannerDistribution|ottomHatTransform|oundaryDiscretizeGraphics|oundaryDiscretizeRegion|oundaryMesh|oundaryMeshRegion|oundaryMeshRegionQ|oundedRegionQ|oundingRegion|oxData|oxMatrix|oxObject|oxWhiskerChart|racketingBar|rayCurtisDistance|readthFirstScan|reak|ridgeData|rightnessEqualize|roadcastStationData|rownForsytheTest|rownianBridgeProcess|ubbleChart|ubbleChart3D|uckyballGraph|uildingData|ulletGauge|usinessDayQ|utterflyGraph|utterworthFilterModel|utton|uttonBar|uttonBox|uttonNotebook|yteArray|yteArrayFormat|yteArrayFormatQ|yteArrayQ|yteArrayToString|yteCount))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:C(?:|DF|DFDeploy|DFWavelet|Form|MYKColor|SGRegion|SGRegionQ|SGRegionTree|alendarConvert|alendarData|allPacket|allout|anberraDistance|ancel|ancelButton|andlestickChart|anonicalGraph|anonicalName|anonicalWarpingCorrespondence|anonicalWarpingDistance|anonicalizePolygon|anonicalizePolyhedron|anonicalizeRegion|antorMesh|antorStaircase|ap|apForm|apitalDifferentialD|apitalize|apsuleShape|aputoD|arlemanLinearize|arlsonRC|arlsonRD|arlsonRE|arlsonRF|arlsonRG|arlsonRJ|arlsonRK|arlsonRM|armichaelLambda|aseSensitive|ases|ashflow|asoratian|atalanNumber|atch|atenate|auchyDistribution|auchyMatrix|auchyWindow|ayleyGraph|eiling|ell|ellGroup|ellGroupData|ellObject|ellPrint|ells|ellularAutomaton|ensoredDistribution|ensoring|enterArray|enterDot|enteredInterval|entralFeature|entralMoment|entralMomentGeneratingFunction|epstrogram|epstrogramArray|epstrumArray|hampernowneNumber|hanVeseBinarize|haracterCounts|haracterName|haracterRange|haracteristicFunction|haracteristicPolynomial|haracters|hebyshev1FilterModel|hebyshev2FilterModel|hebyshevT|hebyshevU|heck|heckAbort|heckArguments|heckbox|heckboxBar|hemicalData|hessboardDistance|hiDistribution|hiSquareDistribution|hineseRemainder|hoiceButtons|hoiceDialog|holeskyDecomposition|hop|hromaticPolynomial|hromaticityPlot|hromaticityPlot3D|ircle|ircleDot|ircleMinus|irclePlus|irclePoints|ircleThrough|ircleTimes|irculantGraph|ircularArcThrough|ircularOrthogonalMatrixDistribution|ircularQuaternionMatrixDistribution|ircularRealMatrixDistribution|ircularSymplecticMatrixDistribution|ircularUnitaryMatrixDistribution|ircumsphere|ityData|lassifierFunction|lassifierMeasurements|lassifierMeasurementsObject|lassify|lear|learAll|learAttributes|learCookies|learPermissions|learSystemCache|lebschGordan|lickPane|lickToCopy|lip|lock|lockGauge|lose|loseKernels|losenessCentrality|losing|loudAccountData|loudConnect|loudDeploy|loudDirectory|loudDisconnect|loudEvaluate|loudExport|loudFunction|loudGet|loudImport|loudLoggingData|loudObject|loudObjects|loudPublish|loudPut|loudSave|loudShare|loudSubmit|loudSymbol|loudUnshare|lusterClassify|lusteringComponents|lusteringMeasurements|lusteringTree|oefficient|oefficientArrays|oefficientList|oefficientRules|oifletWavelet|ollect|ollinearPoints|olon|olorBalance|olorCombine|olorConvert|olorData|olorDataFunction|olorDetect|olorDistance|olorNegate|olorProfileData|olorQ|olorQuantize|olorReplace|olorSeparate|olorSetter|olorSlider|olorToneMapping|olorize|olorsNear|olumn|ometData|ommonName|ommonUnits|ommonest|ommonestFilter|ommunityGraphPlot|ompanyData|ompatibleUnitQ|ompile|ompiledFunction|omplement|ompleteGraph|ompleteGraphQ|ompleteIntegral|ompleteKaryTree|omplex|omplexArrayPlot|omplexContourPlot|omplexExpand|omplexListPlot|omplexPlot|omplexPlot3D|omplexRegionPlot|omplexStreamPlot|omplexVectorPlot|omponentMeasurements|omposeList|omposeSeries|ompositeQ|omposition|ompoundElement|ompoundExpression|ompoundPoissonDistribution|ompoundPoissonProcess|ompoundRenewalProcess|ompress|oncaveHullMesh|ondition|onditionalExpression|onditioned|one|onfirm|onfirmAssert|onfirmBy|onfirmMatch|onformAudio|onformImages|ongruent|onicGradientFilling|onicHullRegion|onicOptimization|onjugate|onjugateTranspose|onjunction|onnectLibraryCallbackFunction|onnectedComponents|onnectedGraphComponents|onnectedGraphQ|onnectedMeshComponents|onnesWindow|onoverTest|onservativeConvectionPDETerm|onstantArray|onstantImage|onstantRegionQ|onstellationData|onstruct|ontainsAll|ontainsAny|ontainsExactly|ontainsNone|ontainsOnly|ontext|ontextToFileName|ontexts|ontinue|ontinuedFraction|ontinuedFractionK|ontinuousMarkovProcess|ontinuousTask|ontinuousTimeModelQ|ontinuousWaveletData|ontinuousWaveletTransform|ontourDetect|ontourPlot|ontourPlot3D|ontraharmonicMean|ontrol|ontrolActive|ontrollabilityGramian|ontrollabilityMatrix|ontrollableDecomposition|ontrollableModelQ|ontrollerInformation|ontrollerManipulate|ontrollerState|onvectionPDETerm|onvergents|onvexHullMesh|onvexHullRegion|onvexOptimization|onvexPolygonQ|onvexPolyhedronQ|onvexRegionQ|onvolve|onwayGroupCo1|onwayGroupCo2|onwayGroupCo3|oordinateBoundingBox|oordinateBoundingBoxArray|oordinateBounds|oordinateBoundsArray|oordinateChartData|oordinateTransform|oordinateTransformData|oplanarPoints|oprimeQ|oproduct|opulaDistribution|opyDatabin|opyDirectory|opyFile|opyToClipboard|oreNilpotentDecomposition|ornerFilter|orrelation|orrelationDistance|orrelationFunction|orrelationTest|os|osIntegral|osh|oshIntegral|osineDistance|osineWindow|ot|oth|oulombF|oulombG|oulombH1|oulombH2|ount|ountDistinct|ountDistinctBy|ountRoots|ountryData|ounts|ountsBy|ovariance|ovarianceFunction|oxIngersollRossProcess|oxModel|oxModelFit|oxianDistribution|ramerVonMisesTest|reateArchive|reateDatabin|reateDialog|reateDirectory|reateDocument|reateFile|reateManagedLibraryExpression|reateNotebook|reatePacletArchive|reatePalette|reatePermissionsGroup|reateUUID|reateWindow|riticalSection|riticalityFailureImportance|riticalitySuccessImportance|ross|rossMatrix|rossingCount|rossingDetect|rossingPolygon|sc|sch|ube|ubeRoot|uboid|umulant|umulantGeneratingFunction|umulativeFeatureImpactPlot|up|upCap|url|urrencyConvert|urrentDate|urrentImage|urrentValue|urvatureFlowFilter|ycleGraph|ycleIndexPolynomial|ycles|yclicGroup|yclotomic|ylinder|ylindricalDecomposition|ylindricalDecompositionFunction))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:D(?:|Eigensystem|Eigenvalues|GaussianWavelet|MSList|MSString|Solve|SolveValue|agumDistribution|amData|amerauLevenshteinDistance|arker|ashing|ataDistribution|atabin|atabinAdd|atabinUpload|atabins|ataset|ateBounds|ateDifference|ateHistogram|ateList|ateListLogPlot|ateListPlot|ateListStepPlot|ateObject|ateObjectQ|ateOverlapsQ|atePattern|atePlus|ateRange|ateScale|ateSelect|ateString|ateValue|ateWithinQ|ated|atedUnit|aubechiesWavelet|avisDistribution|awsonF|ayCount|ayHemisphere|ayMatchQ|ayName|ayNightTerminator|ayPlus|ayRange|ayRound|aylightQ|eBruijnGraph|eBruijnSequence|ecapitalize|ecimalForm|eclarePackage|ecompose|ecrement|ecrypt|edekindEta|eepSpaceProbeData|efault|efaultButton|efaultValues|efer|efineInputStreamMethod|efineOutputStreamMethod|efineResourceFunction|efinition|egreeCentrality|egreeGraphDistribution|el|elaunayMesh|elayed|elete|eleteAdjacentDuplicates|eleteAnomalies|eleteBorderComponents|eleteCases|eleteDirectory|eleteDuplicates|eleteDuplicatesBy|eleteFile|eleteMissing|eleteObject|eletePermissionsKey|eleteSmallComponents|eleteStopwords|elimitedSequence|endrogram|enominator|ensityHistogram|ensityPlot|ensityPlot3D|eploy|epth|epthFirstScan|erivative|erivativeFilter|erivativePDETerm|esignMatrix|et|eviceClose|eviceConfigure|eviceExecute|eviceExecuteAsynchronous|eviceObject|eviceOpen|eviceRead|eviceReadBuffer|eviceReadLatest|eviceReadList|eviceReadTimeSeries|eviceStreams|eviceWrite|eviceWriteBuffer|evices|iagonal|iagonalMatrix|iagonalMatrixQ|iagonalizableMatrixQ|ialog|ialogInput|ialogNotebook|ialogReturn|iamond|iamondMatrix|iceDissimilarity|ictionaryLookup|ictionaryWordQ|ifferenceDelta|ifferenceQuotient|ifferenceRoot|ifferenceRootReduce|ifferences|ifferentialD|ifferentialRoot|ifferentialRootReduce|ifferentiatorFilter|iffusionPDETerm|igitCount|igitQ|ihedralAngle|ihedralGroup|ilation|imensionReduce|imensionReducerFunction|imensionReduction|imensionalCombinations|imensionalMeshComponents|imensions|iracComb|iracDelta|irectedEdge|irectedGraph|irectedGraphQ|irectedInfinity|irectionalLight|irective|irectory|irectoryName|irectoryQ|irectoryStack|irichletBeta|irichletCharacter|irichletCondition|irichletConvolve|irichletDistribution|irichletEta|irichletL|irichletLambda|irichletTransform|irichletWindow|iscreteAsymptotic|iscreteChirpZTransform|iscreteConvolve|iscreteDelta|iscreteHadamardTransform|iscreteIndicator|iscreteInputOutputModel|iscreteLQEstimatorGains|iscreteLQRegulatorGains|iscreteLimit|iscreteLyapunovSolve|iscreteMarkovProcess|iscreteMaxLimit|iscreteMinLimit|iscretePlot|iscretePlot3D|iscreteRatio|iscreteRiccatiSolve|iscreteShift|iscreteTimeModelQ|iscreteUniformDistribution|iscreteWaveletData|iscreteWaveletPacketTransform|iscreteWaveletTransform|iscretizeGraphics|iscretizeRegion|iscriminant|isjointQ|isjunction|isk|iskMatrix|iskSegment|ispatch|isplayEndPacket|isplayForm|isplayPacket|istanceMatrix|istanceTransform|istribute|istributeDefinitions|istributed|istributionChart|istributionFitTest|istributionParameterAssumptions|istributionParameterQ|iv|ivide|ivideBy|ivideSides|ivisible|ivisorSigma|ivisorSum|ivisors|o|ocumentGenerator|ocumentGeneratorInformation|ocumentGenerators|ocumentNotebook|odecahedron|ominantColors|ominatorTreeGraph|ominatorVertexList|ot|otEqual|oubleBracketingBar|oubleDownArrow|oubleLeftArrow|oubleLeftRightArrow|oubleLeftTee|oubleLongLeftArrow|oubleLongLeftRightArrow|oubleLongRightArrow|oubleRightArrow|oubleRightTee|oubleUpArrow|oubleUpDownArrow|oubleVerticalBar|ownArrow|ownArrowBar|ownArrowUpArrow|ownLeftRightVector|ownLeftTeeVector|ownLeftVector|ownLeftVectorBar|ownRightTeeVector|ownRightVector|ownRightVectorBar|ownTee|ownTeeArrow|ownValues|ownsample|razinInverse|rop|ropShadowing|t|ualPlanarGraph|ualPolyhedron|ualSystemsModel|umpSave|uplicateFreeQ|uration|ynamic|ynamicGeoGraphics|ynamicModule|ynamicSetting|ynamicWrapper))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:E(?:arthImpactData|arthquakeData|ccentricityCentrality|choEvaluation|choFunction|choLabel|dgeAdd|dgeBetweennessCentrality|dgeChromaticNumber|dgeConnectivity|dgeContract|dgeCount|dgeCoverQ|dgeCycleMatrix|dgeDelete|dgeDetect|dgeForm|dgeIndex|dgeList|dgeQ|dgeRules|dgeTaggedGraph|dgeTaggedGraphQ|dgeTags|dgeTransitiveGraphQ|dgeWeightedGraphQ|ditDistance|ffectiveInterest|igensystem|igenvalues|igenvectorCentrality|igenvectors|lement|lementData|liminate|llipsoid|llipticE|llipticExp|llipticExpPrime|llipticF|llipticFilterModel|llipticK|llipticLog|llipticNomeQ|llipticPi|llipticTheta|llipticThetaPrime|mbedCode|mbeddedHTML|mbeddedService|mitSound|mpiricalDistribution|mptyGraphQ|mptyRegion|nclose|ncode|ncrypt|ncryptedObject|nd|ndDialogPacket|ndPackage|ngineeringForm|nterExpressionPacket|nterTextPacket|ntity|ntityClass|ntityClassList|ntityCopies|ntityGroup|ntityInstance|ntityList|ntityPrefetch|ntityProperties|ntityProperty|ntityPropertyClass|ntityRegister|ntityStores|ntityTypeName|ntityUnregister|ntityValue|ntropy|ntropyFilter|nvironment|qual|qualTilde|qualTo|quilibrium|quirippleFilterKernel|quivalent|rf|rfc|rfi|rlangB|rlangC|rlangDistribution|rosion|rrorBox|stimatedBackground|stimatedDistribution|stimatedPointNormals|stimatedProcess|stimatorGains|stimatorRegulator|uclideanDistance|ulerAngles|ulerCharacteristic|ulerE|ulerMatrix|ulerPhi|ulerianGraphQ|valuate|valuatePacket|valuationBox|valuationCell|valuationData|valuationNotebook|valuationObject|venQ|ventData|ventHandler|ventSeries|xactBlackmanWindow|xactNumberQ|xampleData|xcept|xists|xoplanetData|xp|xpGammaDistribution|xpIntegralE|xpIntegralEi|xpToTrig|xpand|xpandAll|xpandDenominator|xpandFileName|xpandNumerator|xpectation|xponent|xponentialDistribution|xponentialGeneratingFunction|xponentialMovingAverage|xponentialPowerDistribution|xport|xportByteArray|xportForm|xportString|xpressionCell|xpressionGraph|xtendedGCD|xternalBundle|xtract|xtractArchive|xtractPacletArchive|xtremeValueDistribution))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:F(?:ARIMAProcess|RatioDistribution|aceAlign|aceForm|acialFeatures|actor|actorInteger|actorList|actorSquareFree|actorSquareFreeList|actorTerms|actorTermsList|actorial|actorial2|actorialMoment|actorialMomentGeneratingFunction|actorialPower|ailure|ailureDistribution|ailureQ|areySequence|eatureImpactPlot|eatureNearest|eatureSpacePlot|eatureSpacePlot3D|eatureValueDependencyPlot|eatureValueImpactPlot|eedbackLinearize|etalGrowthData|ibonacci|ibonorial|ile|ileBaseName|ileByteCount|ileDate|ileExistsQ|ileExtension|ileFormat|ileFormatQ|ileHash|ileNameDepth|ileNameDrop|ileNameJoin|ileNameSetter|ileNameSplit|ileNameTake|ileNames|ilePrint|ileSize|ileSystemMap|ileSystemScan|ileTemplate|ileTemplateApply|ileType|illedCurve|illedTorus|illingTransform|ilterRules|inancialBond|inancialData|inancialDerivative|inancialIndicator|ind|indAnomalies|indArgMax|indArgMin|indClique|indClusters|indCookies|indCurvePath|indCycle|indDevices|indDistribution|indDistributionParameters|indDivisions|indEdgeColoring|indEdgeCover|indEdgeCut|indEdgeIndependentPaths|indEulerianCycle|indFaces|indFile|indFit|indFormula|indFundamentalCycles|indGeneratingFunction|indGeoLocation|indGeometricTransform|indGraphCommunities|indGraphIsomorphism|indGraphPartition|indHamiltonianCycle|indHamiltonianPath|indHiddenMarkovStates|indIndependentEdgeSet|indIndependentVertexSet|indInstance|indIntegerNullVector|indIsomorphicSubgraph|indKClan|indKClique|indKClub|indKPlex|indLibrary|indLinearRecurrence|indList|indMatchingColor|indMaxValue|indMaximum|indMaximumCut|indMaximumFlow|indMeshDefects|indMinValue|indMinimum|indMinimumCostFlow|indMinimumCut|indPath|indPeaks|indPermutation|indPlanarColoring|indPostmanTour|indProcessParameters|indRegionTransform|indRepeat|indRoot|indSequenceFunction|indShortestPath|indShortestTour|indSpanningTree|indSubgraphIsomorphism|indThreshold|indTransientRepeat|indVertexColoring|indVertexCover|indVertexCut|indVertexIndependentPaths|inishDynamic|initeAbelianGroupCount|initeGroupCount|initeGroupData|irst|irstCase|irstPassageTimeDistribution|irstPosition|ischerGroupFi22|ischerGroupFi23|ischerGroupFi24Prime|isherHypergeometricDistribution|isherRatioTest|isherZDistribution|it|ittedModel|ixedOrder|ixedPoint|ixedPointList|latShading|latTopWindow|latten|lattenAt|lightData|lipView|loor|lowPolynomial|old|oldList|oldPair|oldPairList|oldWhile|oldWhileList|or|orAll|ormBox|ormFunction|ormObject|ormPage|ormat|ormulaData|ormulaLookup|ortranForm|ourier|ourierCoefficient|ourierCosCoefficient|ourierCosSeries|ourierCosTransform|ourierDCT|ourierDCTFilter|ourierDCTMatrix|ourierDST|ourierDSTMatrix|ourierMatrix|ourierSequenceTransform|ourierSeries|ourierSinCoefficient|ourierSinSeries|ourierSinTransform|ourierTransform|ourierTrigSeries|oxH|ractionBox|ractionalBrownianMotionProcess|ractionalD|ractionalGaussianNoiseProcess|ractionalPart|rameBox|ramed|rechetDistribution|reeQ|renetSerretSystem|requencySamplingFilterKernel|resnelC|resnelF|resnelG|resnelS|robeniusNumber|robeniusSolve|romAbsoluteTime|romCharacterCode|romCoefficientRules|romContinuedFraction|romDMS|romDateString|romDigits|romEntity|romJulianDate|romLetterNumber|romPolarCoordinates|romRomanNumeral|romSphericalCoordinates|romUnixTime|rontEndExecute|rontEndToken|rontEndTokenExecute|ullDefinition|ullForm|ullGraphics|ullInformationOutputRegulator|ullRegion|ullSimplify|unction|unctionAnalytic|unctionBijective|unctionContinuous|unctionConvexity|unctionDiscontinuities|unctionDomain|unctionExpand|unctionInjective|unctionInterpolation|unctionMeromorphic|unctionMonotonicity|unctionPeriod|unctionRange|unctionSign|unctionSingularities|unctionSurjective|ussellVeselyImportance))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:G(?:ARCHProcess|CD|aborFilter|aborMatrix|aborWavelet|ainMargins|ainPhaseMargins|alaxyData|amma|ammaDistribution|ammaRegularized|ather|atherBy|aussianFilter|aussianMatrix|aussianOrthogonalMatrixDistribution|aussianSymplecticMatrixDistribution|aussianUnitaryMatrixDistribution|aussianWindow|egenbauerC|eneralizedLinearModelFit|enerateAsymmetricKeyPair|enerateDocument|enerateHTTPResponse|enerateSymmetricKey|eneratingFunction|enericCylindricalDecomposition|enomeData|enomeLookup|eoAntipode|eoArea|eoBoundary|eoBoundingBox|eoBounds|eoBoundsRegion|eoBoundsRegionBoundary|eoBubbleChart|eoCircle|eoContourPlot|eoDensityPlot|eoDestination|eoDirection|eoDisk|eoDisplacement|eoDistance|eoDistanceList|eoElevationData|eoEntities|eoGraphPlot|eoGraphics|eoGridDirectionDifference|eoGridPosition|eoGridUnitArea|eoGridUnitDistance|eoGridVector|eoGroup|eoHemisphere|eoHemisphereBoundary|eoHistogram|eoIdentify|eoImage|eoLength|eoListPlot|eoMarker|eoNearest|eoPath|eoPolygon|eoPosition|eoPositionENU|eoPositionXYZ|eoProjectionData|eoRegionValuePlot|eoSmoothHistogram|eoStreamPlot|eoStyling|eoVariant|eoVector|eoVectorENU|eoVectorPlot|eoVectorXYZ|eoVisibleRegion|eoVisibleRegionBoundary|eoWithinQ|eodesicClosing|eodesicDilation|eodesicErosion|eodesicOpening|eodesicPolyhedron|eodesyData|eogravityModelData|eologicalPeriodData|eomagneticModelData|eometricBrownianMotionProcess|eometricDistribution|eometricMean|eometricMeanFilter|eometricOptimization|eometricTransformation|estureHandler|et|etEnvironment|lobalClusteringCoefficient|low|ompertzMakehamDistribution|oochShading|oodmanKruskalGamma|oodmanKruskalGammaTest|oto|ouraudShading|rad|radientFilter|radientFittedMesh|radientOrientationFilter|rammarApply|rammarRules|rammarToken|raph|raph3D|raphAssortativity|raphAutomorphismGroup|raphCenter|raphComplement|raphData|raphDensity|raphDiameter|raphDifference|raphDisjointUnion|raphDistance|raphDistanceMatrix|raphEmbedding|raphHub|raphIntersection|raphJoin|raphLinkEfficiency|raphPeriphery|raphPlot|raphPlot3D|raphPower|raphProduct|raphPropertyDistribution|raphQ|raphRadius|raphReciprocity|raphSum|raphUnion|raphics|raphics3D|raphicsColumn|raphicsComplex|raphicsGrid|raphicsGroup|raphicsRow|rayLevel|reater|reaterEqual|reaterEqualLess|reaterEqualThan|reaterFullEqual|reaterGreater|reaterLess|reaterSlantEqual|reaterThan|reaterTilde|reenFunction|rid|ridBox|ridGraph|roebnerBasis|roupBy|roupCentralizer|roupElementFromWord|roupElementPosition|roupElementQ|roupElementToWord|roupElements|roupGenerators|roupMultiplicationTable|roupOrbits|roupOrder|roupSetwiseStabilizer|roupStabilizer|roupStabilizerChain|roupings|rowCutComponents|udermannian|uidedFilter|umbelDistribution))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:H(?:ITSCentrality|TTPErrorResponse|TTPRedirect|TTPRequest|TTPRequestData|TTPResponse|aarWavelet|adamardMatrix|alfLine|alfNormalDistribution|alfPlane|alfSpace|alftoneShading|amiltonianGraphQ|ammingDistance|ammingWindow|ankelH1|ankelH2|ankelMatrix|ankelTransform|annPoissonWindow|annWindow|aradaNortonGroupHN|araryGraph|armonicMean|armonicMeanFilter|armonicNumber|ash|atchFilling|atchShading|aversine|azardFunction|ead|eatFluxValue|eatInsulationValue|eatOutflowValue|eatRadiationValue|eatSymmetryValue|eatTemperatureCondition|eatTransferPDEComponent|eatTransferValue|eavisideLambda|eavisidePi|eavisideTheta|eldGroupHe|elmholtzPDEComponent|ermiteDecomposition|ermiteH|ermitian|ermitianMatrixQ|essenbergDecomposition|eunB|eunBPrime|eunC|eunCPrime|eunD|eunDPrime|eunG|eunGPrime|eunT|eunTPrime|exahedron|iddenMarkovProcess|ighlightGraph|ighlightImage|ighlightMesh|ighlighted|ighpassFilter|igmanSimsGroupHS|ilbertCurve|ilbertFilter|ilbertMatrix|istogram|istogram3D|istogramDistribution|istogramList|istogramTransform|istogramTransformInterpolation|istoricalPeriodData|itMissTransform|jorthDistribution|odgeDual|oeffdingD|oeffdingDTest|old|oldComplete|oldForm|oldPattern|orizontalGauge|ornerForm|ostLookup|otellingTSquareDistribution|oytDistribution|ue|umanGrowthData|umpDownHump|umpEqual|urwitzLerchPhi|urwitzZeta|yperbolicDistribution|ypercubeGraph|yperexponentialDistribution|yperfactorial|ypergeometric0F1|ypergeometric0F1Regularized|ypergeometric1F1|ypergeometric1F1Regularized|ypergeometric2F1|ypergeometric2F1Regularized|ypergeometricDistribution|ypergeometricPFQ|ypergeometricPFQRegularized|ypergeometricU|yperlink|yperplane|ypoexponentialDistribution|ypothesisTestData))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:I(?:PAddress|conData|conize|cosahedron|dentity|dentityMatrix|f|fCompiled|gnoringInactive|m|mage|mage3D|mage3DProjection|mage3DSlices|mageAccumulate|mageAdd|mageAdjust|mageAlign|mageApply|mageApplyIndexed|mageAspectRatio|mageAssemble|mageCapture|mageChannels|mageClip|mageCollage|mageColorSpace|mageCompose|mageConvolve|mageCooccurrence|mageCorners|mageCorrelate|mageCorrespondingPoints|mageCrop|mageData|mageDeconvolve|mageDemosaic|mageDifference|mageDimensions|mageDisplacements|mageDistance|mageEffect|mageExposureCombine|mageFeatureTrack|mageFileApply|mageFileFilter|mageFileScan|mageFilter|mageFocusCombine|mageForestingComponents|mageForwardTransformation|mageHistogram|mageIdentify|mageInstanceQ|mageKeypoints|mageLevels|mageLines|mageMarker|mageMeasurements|mageMesh|mageMultiply|magePad|magePartition|magePeriodogram|magePerspectiveTransformation|mageQ|mageRecolor|mageReflect|mageResize|mageRestyle|mageRotate|mageSaliencyFilter|mageScaled|mageScan|mageSubtract|mageTake|mageTransformation|mageTrim|mageType|mageValue|mageValuePositions|mageVectorscopePlot|mageWaveformPlot|mplicitD|mplicitRegion|mplies|mport|mportByteArray|mportString|mprovementImportance|nactivate|nactive|ncidenceGraph|ncidenceList|ncidenceMatrix|ncrement|ndefiniteMatrixQ|ndependenceTest|ndependentEdgeSetQ|ndependentPhysicalQuantity|ndependentUnit|ndependentUnitDimension|ndependentVertexSetQ|ndexEdgeTaggedGraph|ndexGraph|ndexed|nexactNumberQ|nfiniteLine|nfiniteLineThrough|nfinitePlane|nfix|nflationAdjust|nformation|nhomogeneousPoissonProcess|nner|nnerPolygon|nnerPolyhedron|npaint|nput|nputField|nputForm|nputNamePacket|nputNotebook|nputPacket|nputStream|nputString|nputStringPacket|nsert|nsertLinebreaks|nset|nsphere|nstall|nstallService|ntegerDigits|ntegerExponent|ntegerLength|ntegerName|ntegerPart|ntegerPartitions|ntegerQ|ntegerReverse|ntegerString|ntegrate|nteractiveTradingChart|nternallyBalancedDecomposition|nterpolatingFunction|nterpolatingPolynomial|nterpolation|nterpretation|nterpretationBox|nterpreter|nterquartileRange|nterrupt|ntersectingQ|ntersection|nterval|ntervalIntersection|ntervalMemberQ|ntervalSlider|ntervalUnion|nverse|nverseBetaRegularized|nverseBilateralLaplaceTransform|nverseBilateralZTransform|nverseCDF|nverseChiSquareDistribution|nverseContinuousWaveletTransform|nverseDistanceTransform|nverseEllipticNomeQ|nverseErf|nverseErfc|nverseFourier|nverseFourierCosTransform|nverseFourierSequenceTransform|nverseFourierSinTransform|nverseFourierTransform|nverseFunction|nverseGammaDistribution|nverseGammaRegularized|nverseGaussianDistribution|nverseGudermannian|nverseHankelTransform|nverseHaversine|nverseJacobiCD|nverseJacobiCN|nverseJacobiCS|nverseJacobiDC|nverseJacobiDN|nverseJacobiDS|nverseJacobiNC|nverseJacobiND|nverseJacobiNS|nverseJacobiSC|nverseJacobiSD|nverseJacobiSN|nverseLaplaceTransform|nverseMellinTransform|nversePermutation|nverseRadon|nverseRadonTransform|nverseSeries|nverseShortTimeFourier|nverseSpectrogram|nverseSurvivalFunction|nverseTransformedRegion|nverseWaveletTransform|nverseWeierstrassP|nverseWishartMatrixDistribution|nverseZTransform|nvisible|rreduciblePolynomialQ|slandData|solatingInterval|somorphicGraphQ|somorphicSubgraphQ|sotopeData|tem|toProcess))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:J(?:accardDissimilarity|acobiAmplitude|acobiCD|acobiCN|acobiCS|acobiDC|acobiDN|acobiDS|acobiEpsilon|acobiNC|acobiND|acobiNS|acobiP|acobiSC|acobiSD|acobiSN|acobiSymbol|acobiZN|acobiZeta|ankoGroupJ1|ankoGroupJ2|ankoGroupJ3|ankoGroupJ4|arqueBeraALMTest|ohnsonDistribution|oin|oinAcross|oinForm|oinedCurve|ordanDecomposition|ordanModelDecomposition|uliaSetBoettcher|uliaSetIterationCount|uliaSetPlot|uliaSetPoints|ulianDate))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:K(?:CoreComponents|Distribution|EdgeConnectedComponents|EdgeConnectedGraphQ|VertexConnectedComponents|VertexConnectedGraphQ|agiChart|aiserBesselWindow|aiserWindow|almanEstimator|almanFilter|arhunenLoeveDecomposition|aryTree|atzCentrality|elvinBei|elvinBer|elvinKei|elvinKer|endallTau|endallTauTest|ernelMixtureDistribution|ernelObject|ernels|ey|eyComplement|eyDrop|eyDropFrom|eyExistsQ|eyFreeQ|eyIntersection|eyMap|eyMemberQ|eySelect|eySort|eySortBy|eyTake|eyUnion|eyValueMap|eyValuePattern|eys|illProcess|irchhoffGraph|irchhoffMatrix|leinInvariantJ|napsackSolve|nightTourGraph|notData|nownUnitQ|ochCurve|olmogorovSmirnovTest|roneckerDelta|roneckerModelDecomposition|roneckerProduct|roneckerSymbol|uiperTest|umaraswamyDistribution|urtosis|uwaharaFilter))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:L(?:ABColor|CHColor|CM|QEstimatorGains|QGRegulator|QOutputRegulatorGains|QRegulatorGains|UDecomposition|UVColor|abel|abeled|aguerreL|akeData|ambdaComponents|ameC|ameCPrime|ameEigenvalueA|ameEigenvalueB|ameS|ameSPrime|aminaData|anczosWindow|andauDistribution|anguageData|anguageIdentify|aplaceDistribution|aplaceTransform|aplacian|aplacianFilter|aplacianGaussianFilter|aplacianPDETerm|ast|atitude|atitudeLongitude|atticeData|atticeReduce|aunchKernels|ayeredGraphPlot|ayeredGraphPlot3D|eafCount|eapVariant|eapYearQ|earnDistribution|earnedDistribution|eastSquares|eastSquaresFilterKernel|eftArrow|eftArrowBar|eftArrowRightArrow|eftDownTeeVector|eftDownVector|eftDownVectorBar|eftRightArrow|eftRightVector|eftTee|eftTeeArrow|eftTeeVector|eftTriangle|eftTriangleBar|eftTriangleEqual|eftUpDownVector|eftUpTeeVector|eftUpVector|eftUpVectorBar|eftVector|eftVectorBar|egended|egendreP|egendreQ|ength|engthWhile|erchPhi|ess|essEqual|essEqualGreater|essEqualThan|essFullEqual|essGreater|essLess|essSlantEqual|essThan|essTilde|etterCounts|etterNumber|etterQ|evel|eveneTest|eviCivitaTensor|evyDistribution|exicographicOrder|exicographicSort|ibraryDataType|ibraryFunction|ibraryFunctionError|ibraryFunctionInformation|ibraryFunctionLoad|ibraryFunctionUnload|ibraryLoad|ibraryUnload|iftingFilterData|iftingWaveletTransform|ighter|ikelihood|imit|indleyDistribution|ine|ineBreakChart|ineGraph|ineIntegralConvolutionPlot|ineLegend|inearFractionalOptimization|inearFractionalTransform|inearGradientFilling|inearGradientImage|inearModelFit|inearOptimization|inearRecurrence|inearSolve|inearSolveFunction|inearizingTransformationData|inkActivate|inkClose|inkConnect|inkCreate|inkInterrupt|inkLaunch|inkObject|inkPatterns|inkRankCentrality|inkRead|inkReadyQ|inkWrite|inks|iouvilleLambda|ist|istAnimate|istContourPlot|istContourPlot3D|istConvolve|istCorrelate|istCurvePathPlot|istDeconvolve|istDensityPlot|istDensityPlot3D|istFourierSequenceTransform|istInterpolation|istLineIntegralConvolutionPlot|istLinePlot|istLinePlot3D|istLogLinearPlot|istLogLogPlot|istLogPlot|istPicker|istPickerBox|istPlay|istPlot|istPlot3D|istPointPlot3D|istPolarPlot|istQ|istSliceContourPlot3D|istSliceDensityPlot3D|istSliceVectorPlot3D|istStepPlot|istStreamDensityPlot|istStreamPlot|istStreamPlot3D|istSurfacePlot3D|istVectorDensityPlot|istVectorDisplacementPlot|istVectorDisplacementPlot3D|istVectorPlot|istVectorPlot3D|istZTransform|ocalAdaptiveBinarize|ocalCache|ocalClusteringCoefficient|ocalEvaluate|ocalObject|ocalObjects|ocalSubmit|ocalSymbol|ocalTime|ocalTimeZone|ocationEquivalenceTest|ocationTest|ocator|ocatorPane|og|og10|og2|ogBarnesG|ogGamma|ogGammaDistribution|ogIntegral|ogLikelihood|ogLinearPlot|ogLogPlot|ogLogisticDistribution|ogMultinormalDistribution|ogNormalDistribution|ogPlot|ogRankTest|ogSeriesDistribution|ogicalExpand|ogisticDistribution|ogisticSigmoid|ogitModelFit|ongLeftArrow|ongLeftRightArrow|ongRightArrow|ongest|ongestCommonSequence|ongestCommonSequencePositions|ongestCommonSubsequence|ongestCommonSubsequencePositions|ongestOrderedSequence|ongitude|ookup|oopFreeGraphQ|owerCaseQ|owerLeftArrow|owerRightArrow|owerTriangularMatrix|owerTriangularMatrixQ|owerTriangularize|owpassFilter|ucasL|uccioSamiComponents|unarEclipse|yapunovSolve|yonsGroupLy))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:M(?:AProcess|achineNumberQ|agnify|ailReceiverFunction|ajority|akeBoxes|akeExpression|anagedLibraryExpressionID|anagedLibraryExpressionQ|andelbrotSetBoettcher|andelbrotSetDistance|andelbrotSetIterationCount|andelbrotSetMemberQ|andelbrotSetPlot|angoldtLambda|anhattanDistance|anipulate|anipulator|annWhitneyTest|annedSpaceMissionData|antissaExponent|ap|apAll|apApply|apAt|apIndexed|apThread|archenkoPasturDistribution|arcumQ|ardiaCombinedTest|ardiaKurtosisTest|ardiaSkewnessTest|arginalDistribution|arkovProcessProperties|assConcentrationCondition|assFluxValue|assImpermeableBoundaryValue|assOutflowValue|assSymmetryValue|assTransferValue|assTransportPDEComponent|atchQ|atchingDissimilarity|aterialShading|athMLForm|athematicalFunctionData|athieuC|athieuCPrime|athieuCharacteristicA|athieuCharacteristicB|athieuCharacteristicExponent|athieuGroupM11|athieuGroupM12|athieuGroupM22|athieuGroupM23|athieuGroupM24|athieuS|athieuSPrime|atrices|atrixExp|atrixForm|atrixFunction|atrixLog|atrixNormalDistribution|atrixPlot|atrixPower|atrixPropertyDistribution|atrixQ|atrixRank|atrixTDistribution|ax|axDate|axDetect|axFilter|axLimit|axMemoryUsed|axStableDistribution|axValue|aximalBy|aximize|axwellDistribution|cLaughlinGroupMcL|ean|eanClusteringCoefficient|eanDegreeConnectivity|eanDeviation|eanFilter|eanGraphDistance|eanNeighborDegree|eanShift|eanShiftFilter|edian|edianDeviation|edianFilter|edicalTestData|eijerG|eijerGReduce|eixnerDistribution|ellinConvolve|ellinTransform|emberQ|emoryAvailable|emoryConstrained|emoryInUse|engerMesh|enuPacket|enuView|erge|ersennePrimeExponent|ersennePrimeExponentQ|eshCellCount|eshCellIndex|eshCells|eshConnectivityGraph|eshCoordinates|eshPrimitives|eshRegion|eshRegionQ|essage|essageDialog|essageList|essageName|essagePacket|essages|eteorShowerData|exicanHatWavelet|eyerWavelet|in|inDate|inDetect|inFilter|inLimit|inMax|inStableDistribution|inValue|ineralData|inimalBy|inimalPolynomial|inimalStateSpaceModel|inimize|inimumTimeIncrement|inkowskiQuestionMark|inorPlanetData|inors|inus|inusPlus|issing|issingQ|ittagLefflerE|ixedFractionParts|ixedGraphQ|ixedMagnitude|ixedRadix|ixedRadixQuantity|ixedUnit|ixtureDistribution|od|odelPredictiveController|odularInverse|odularLambda|odule|oebiusMu|oment|omentConvert|omentEvaluate|omentGeneratingFunction|omentOfInertia|onitor|onomialList|onsterGroupM|oonPhase|oonPosition|orletWavelet|orphologicalBinarize|orphologicalBranchPoints|orphologicalComponents|orphologicalEulerNumber|orphologicalGraph|orphologicalPerimeter|orphologicalTransform|ortalityData|ost|ountainData|ouseAnnotation|ouseAppearance|ousePosition|ouseover|ovieData|ovingAverage|ovingMap|ovingMedian|oyalDistribution|ulticolumn|ultigraphQ|ultinomial|ultinomialDistribution|ultinormalDistribution|ultiplicativeOrder|ultiplySides|ultivariateHypergeometricDistribution|ultivariatePoissonDistribution|ultivariateTDistribution))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:N(?:|ArgMax|ArgMin|Cache|CaputoD|DEigensystem|DEigenvalues|DSolve|DSolveValue|Expectation|FractionalD|Integrate|MaxValue|Maximize|MinValue|Minimize|Probability|Product|Roots|Solve|SolveValues|Sum|akagamiDistribution|ameQ|ames|and|earest|earestFunction|earestMeshCells|earestNeighborGraph|earestTo|ebulaData|eedlemanWunschSimilarity|eeds|egative|egativeBinomialDistribution|egativeDefiniteMatrixQ|egativeMultinomialDistribution|egativeSemidefiniteMatrixQ|egativelyOrientedPoints|eighborhoodData|eighborhoodGraph|est|estGraph|estList|estWhile|estWhileList|estedGreaterGreater|estedLessLess|eumannValue|evilleThetaC|evilleThetaD|evilleThetaN|evilleThetaS|extCell|extDate|extPrime|icholsPlot|ightHemisphere|onCommutativeMultiply|onNegative|onPositive|oncentralBetaDistribution|oncentralChiSquareDistribution|oncentralFRatioDistribution|oncentralStudentTDistribution|ondimensionalizationTransform|oneTrue|onlinearModelFit|onlinearStateSpaceModel|onlocalMeansFilter|or|orlundB|orm|ormal|ormalDistribution|ormalMatrixQ|ormalize|ormalizedSquaredEuclideanDistance|ot|otCongruent|otCupCap|otDoubleVerticalBar|otElement|otEqualTilde|otExists|otGreater|otGreaterEqual|otGreaterFullEqual|otGreaterGreater|otGreaterLess|otGreaterSlantEqual|otGreaterTilde|otHumpDownHump|otHumpEqual|otLeftTriangle|otLeftTriangleBar|otLeftTriangleEqual|otLess|otLessEqual|otLessFullEqual|otLessGreater|otLessLess|otLessSlantEqual|otLessTilde|otNestedGreaterGreater|otNestedLessLess|otPrecedes|otPrecedesEqual|otPrecedesSlantEqual|otPrecedesTilde|otReverseElement|otRightTriangle|otRightTriangleBar|otRightTriangleEqual|otSquareSubset|otSquareSubsetEqual|otSquareSuperset|otSquareSupersetEqual|otSubset|otSubsetEqual|otSucceeds|otSucceedsEqual|otSucceedsSlantEqual|otSucceedsTilde|otSuperset|otSupersetEqual|otTilde|otTildeEqual|otTildeFullEqual|otTildeTilde|otVerticalBar|otebook|otebookApply|otebookClose|otebookDelete|otebookDirectory|otebookEvaluate|otebookFileName|otebookFind|otebookGet|otebookImport|otebookInformation|otebookLocate|otebookObject|otebookOpen|otebookPrint|otebookPut|otebookRead|otebookSave|otebookSelection|otebookTemplate|otebookWrite|otebooks|othing|uclearExplosionData|uclearReactorData|ullSpace|umberCompose|umberDecompose|umberDigit|umberExpand|umberFieldClassNumber|umberFieldDiscriminant|umberFieldFundamentalUnits|umberFieldIntegralBasis|umberFieldNormRepresentatives|umberFieldRegulator|umberFieldRootsOfUnity|umberFieldSignature|umberForm|umberLinePlot|umberQ|umerator|umeratorDenominator|umericQ|umericalOrder|umericalSort|uttallWindow|yquistPlot))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:O(?:|NanGroupON|bservabilityGramian|bservabilityMatrix|bservableDecomposition|bservableModelQ|ceanData|ctahedron|ddQ|ff|ffset|n|nce|pacity|penAppend|penRead|penWrite|pener|penerView|pening|perate|ptimumFlowData|ptionValue|ptional|ptionalElement|ptions|ptionsPattern|r|rder|rderDistribution|rderedQ|rdering|rderingBy|rderlessPatternSequence|rnsteinUhlenbeckProcess|rthogonalMatrixQ|rthogonalize|uter|uterPolygon|uterPolyhedron|utputControllabilityMatrix|utputControllableModelQ|utputForm|utputNamePacket|utputResponse|utputStream|verBar|verDot|verHat|verTilde|verVector|verflow|verlay|verscript|verscriptBox|wenT|wnValues))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:P(?:DF|ERTDistribution|IDTune|acletDataRebuild|acletDirectoryLoad|acletDirectoryUnload|acletDisable|acletEnable|acletFind|acletFindRemote|acletInstall|acletInstallSubmit|acletNewerQ|acletObject|acletSiteObject|acletSiteRegister|acletSiteUnregister|acletSiteUpdate|acletSites|acletUninstall|adLeft|adRight|addedForm|adeApproximant|ageRankCentrality|airedBarChart|airedHistogram|airedSmoothHistogram|airedTTest|airedZTest|aletteNotebook|alindromeQ|ane|aneSelector|anel|arabolicCylinderD|arallelArray|arallelAxisPlot|arallelCombine|arallelDo|arallelEvaluate|arallelKernels|arallelMap|arallelNeeds|arallelProduct|arallelSubmit|arallelSum|arallelTable|arallelTry|arallelepiped|arallelize|arallelogram|arameterMixtureDistribution|arametricConvexOptimization|arametricFunction|arametricNDSolve|arametricNDSolveValue|arametricPlot|arametricPlot3D|arametricRegion|arentBox|arentCell|arentDirectory|arentNotebook|aretoDistribution|aretoPickandsDistribution|arkData|art|artOfSpeech|artialCorrelationFunction|articleAcceleratorData|articleData|artition|artitionsP|artitionsQ|arzenWindow|ascalDistribution|aste|asteButton|athGraph|athGraphQ|attern|atternSequence|atternTest|aulWavelet|auliMatrix|ause|eakDetect|eanoCurve|earsonChiSquareTest|earsonCorrelationTest|earsonDistribution|ercentForm|erfectNumber|erfectNumberQ|erimeter|eriodicBoundaryCondition|eriodogram|eriodogramArray|ermanent|ermissionsGroup|ermissionsGroupMemberQ|ermissionsGroups|ermissionsKey|ermissionsKeys|ermutationCycles|ermutationCyclesQ|ermutationGroup|ermutationLength|ermutationList|ermutationListQ|ermutationMatrix|ermutationMax|ermutationMin|ermutationOrder|ermutationPower|ermutationProduct|ermutationReplace|ermutationSupport|ermutations|ermute|eronaMalikFilter|ersonData|etersenGraph|haseMargins|hongShading|hysicalSystemData|ick|ieChart|ieChart3D|iecewise|iecewiseExpand|illaiTrace|illaiTraceTest|ingTime|ixelValue|ixelValuePositions|laced|laceholder|lanarAngle|lanarFaceList|lanarGraph|lanarGraphQ|lanckRadiationLaw|laneCurveData|lanetData|lanetaryMoonData|lantData|lay|lot|lot3D|luralize|lus|lusMinus|ochhammer|oint|ointFigureChart|ointLegend|ointLight|ointSize|oissonConsulDistribution|oissonDistribution|oissonPDEComponent|oissonProcess|oissonWindow|olarPlot|olyGamma|olyLog|olyaAeppliDistribution|olygon|olygonAngle|olygonCoordinates|olygonDecomposition|olygonalNumber|olyhedron|olyhedronAngle|olyhedronCoordinates|olyhedronData|olyhedronDecomposition|olyhedronGenus|olynomialExpressionQ|olynomialExtendedGCD|olynomialGCD|olynomialLCM|olynomialMod|olynomialQ|olynomialQuotient|olynomialQuotientRemainder|olynomialReduce|olynomialRemainder|olynomialSumOfSquaresList|opupMenu|opupView|opupWindow|osition|ositionIndex|ositionLargest|ositionSmallest|ositive|ositiveDefiniteMatrixQ|ositiveSemidefiniteMatrixQ|ositivelyOrientedPoints|ossibleZeroQ|ostfix|ower|owerDistribution|owerExpand|owerMod|owerModList|owerRange|owerSpectralDensity|owerSymmetricPolynomial|owersRepresentations|reDecrement|reIncrement|recedenceForm|recedes|recedesEqual|recedesSlantEqual|recedesTilde|recision|redict|redictorFunction|redictorMeasurements|redictorMeasurementsObject|reemptProtect|refix|repend|rependTo|reviousCell|reviousDate|riceGraphDistribution|rime|rimeNu|rimeOmega|rimePi|rimePowerQ|rimeQ|rimeZetaP|rimitivePolynomialQ|rimitiveRoot|rimitiveRootList|rincipalComponents|rintTemporary|rintableASCIIQ|rintout3D|rism|rivateKey|robability|robabilityDistribution|robabilityPlot|robabilityScalePlot|robitModelFit|rocessConnection|rocessInformation|rocessObject|rocessParameterAssumptions|rocessParameterQ|rocessStatus|rocesses|roduct|roductDistribution|roductLog|rogressIndicator|rojection|roportion|roportional|rotect|roteinData|runing|seudoInverse|sychrometricPropertyData|ublicKey|ulsarData|ut|utAppend|yramid))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:Q(?:Binomial|Factorial|Gamma|HypergeometricPFQ|Pochhammer|PolyGamma|RDecomposition|nDispersion|uadraticIrrationalQ|uadraticOptimization|uantile|uantilePlot|uantity|uantityArray|uantityDistribution|uantityForm|uantityMagnitude|uantityQ|uantityUnit|uantityVariable|uantityVariableCanonicalUnit|uantityVariableDimensions|uantityVariableIdentifier|uantityVariablePhysicalQuantity|uartileDeviation|uartileSkewness|uartiles|uery|ueueProperties|ueueingNetworkProcess|ueueingProcess|uiet|uietEcho|uotient|uotientRemainder))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:R(?:GBColor|Solve|SolveValue|adialAxisPlot|adialGradientFilling|adialGradientImage|adialityCentrality|adicalBox|adioButton|adioButtonBar|adon|adonTransform|amanujanTau|amanujanTauL|amanujanTauTheta|amanujanTauZ|amp|andomChoice|andomColor|andomComplex|andomDate|andomEntity|andomFunction|andomGeneratorState|andomGeoPosition|andomGraph|andomImage|andomInteger|andomPermutation|andomPoint|andomPolygon|andomPolyhedron|andomPrime|andomReal|andomSample|andomTime|andomVariate|andomWalkProcess|andomWord|ange|angeFilter|ankedMax|ankedMin|arerProbability|aster|aster3D|asterize|ational|ationalExpressionQ|ationalize|atios|awBoxes|awData|ayleighDistribution|e|eIm|eImPlot|eactionPDETerm|ead|eadByteArray|eadLine|eadList|eadString|ealAbs|ealDigits|ealExponent|ealSign|eap|econstructionMesh|ectangle|ectangleChart|ectangleChart3D|ectangularRepeatingElement|ecurrenceFilter|ecurrenceTable|educe|efine|eflectionMatrix|eflectionTransform|efresh|egion|egionBinarize|egionBoundary|egionBounds|egionCentroid|egionCongruent|egionConvert|egionDifference|egionDilation|egionDimension|egionDisjoint|egionDistance|egionDistanceFunction|egionEmbeddingDimension|egionEqual|egionErosion|egionFit|egionImage|egionIntersection|egionMeasure|egionMember|egionMemberFunction|egionMoment|egionNearest|egionNearestFunction|egionPlot|egionPlot3D|egionProduct|egionQ|egionResize|egionSimilar|egionSymmetricDifference|egionUnion|egionWithin|egularExpression|egularPolygon|egularlySampledQ|elationGraph|eleaseHold|eliabilityDistribution|eliefImage|eliefPlot|emove|emoveAlphaChannel|emoveBackground|emoveDiacritics|emoveInputStreamMethod|emoveOutputStreamMethod|emoveUsers|enameDirectory|enameFile|enewalProcess|enkoChart|epairMesh|epeated|epeatedNull|epeatedTiming|epeatingElement|eplace|eplaceAll|eplaceAt|eplaceImageValue|eplaceList|eplacePart|eplacePixelValue|eplaceRepeated|esamplingAlgorithmData|escale|escalingTransform|esetDirectory|esidue|esidueSum|esolve|esourceData|esourceObject|esourceSearch|esponseForm|est|estricted|esultant|eturn|eturnExpressionPacket|eturnPacket|eturnTextPacket|everse|everseBiorthogonalSplineWavelet|everseElement|everseEquilibrium|everseGraph|everseSort|everseSortBy|everseUpEquilibrium|evolutionPlot3D|iccatiSolve|iceDistribution|idgeFilter|iemannR|iemannSiegelTheta|iemannSiegelZ|iemannXi|iffle|ightArrow|ightArrowBar|ightArrowLeftArrow|ightComposition|ightCosetRepresentative|ightDownTeeVector|ightDownVector|ightDownVectorBar|ightTee|ightTeeArrow|ightTeeVector|ightTriangle|ightTriangleBar|ightTriangleEqual|ightUpDownVector|ightUpTeeVector|ightUpVector|ightUpVectorBar|ightVector|ightVectorBar|iskAchievementImportance|iskReductionImportance|obustConvexOptimization|ogersTanimotoDissimilarity|ollPitchYawAngles|ollPitchYawMatrix|omanNumeral|oot|ootApproximant|ootIntervals|ootLocusPlot|ootMeanSquare|ootOfUnityQ|ootReduce|ootSum|oots|otate|otateLeft|otateRight|otationMatrix|otationTransform|ound|ow|owBox|owReduce|udinShapiro|udvalisGroupRu|ule|uleDelayed|ulePlot|un|unProcess|unThrough|ussellRaoDissimilarity))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:S(?:ARIMAProcess|ARMAProcess|ASTriangle|SSTriangle|ameAs|ameQ|ampledSoundFunction|ampledSoundList|atelliteData|atisfiabilityCount|atisfiabilityInstances|atisfiableQ|ave|avitzkyGolayMatrix|awtoothWave|cale|caled|calingMatrix|calingTransform|can|cheduledTask|churDecomposition|cientificForm|corerGi|corerGiPrime|corerHi|corerHiPrime|ec|ech|echDistribution|econdOrderConeOptimization|ectorChart|ectorChart3D|eedRandom|elect|electComponents|electFirst|electedCells|electedNotebook|electionCreateCell|electionEvaluate|electionEvaluateCreateCell|electionMove|emanticImport|emanticImportString|emanticInterpretation|emialgebraicComponentInstances|emidefiniteOptimization|endMail|endMessage|equence|equenceAlignment|equenceCases|equenceCount|equenceFold|equenceFoldList|equencePosition|equenceReplace|equenceSplit|eries|eriesCoefficient|eriesData|erviceConnect|erviceDisconnect|erviceExecute|erviceObject|essionSubmit|essionTime|et|etAccuracy|etAlphaChannel|etAttributes|etCloudDirectory|etCookies|etDelayed|etDirectory|etEnvironment|etFileDate|etOptions|etPermissions|etPrecision|etSelectedNotebook|etSharedFunction|etSharedVariable|etStreamPosition|etSystemOptions|etUsers|etter|etterBar|etting|hallow|hannonWavelet|hapiroWilkTest|hare|harpen|hearingMatrix|hearingTransform|hellRegion|henCastanMatrix|hiftRegisterSequence|hiftedGompertzDistribution|hort|hortDownArrow|hortLeftArrow|hortRightArrow|hortTimeFourier|hortTimeFourierData|hortUpArrow|hortest|hortestPathFunction|how|iderealTime|iegelTheta|iegelTukeyTest|ierpinskiCurve|ierpinskiMesh|ign|ignTest|ignature|ignedRankTest|ignedRegionDistance|impleGraph|impleGraphQ|implePolygonQ|implePolyhedronQ|implex|implify|in|inIntegral|inc|inghMaddalaDistribution|ingularValueDecomposition|ingularValueList|ingularValuePlot|inh|inhIntegral|ixJSymbol|keleton|keletonTransform|kellamDistribution|kewNormalDistribution|kewness|kip|liceContourPlot3D|liceDensityPlot3D|liceDistribution|liceVectorPlot3D|lideView|lider|lider2D|liderBox|lot|lotSequence|mallCircle|mithDecomposition|mithDelayCompensator|mithWatermanSimilarity|moothDensityHistogram|moothHistogram|moothHistogram3D|moothKernelDistribution|nDispersion|ocketConnect|ocketListen|ocketListener|ocketObject|ocketOpen|ocketReadMessage|ocketReadyQ|ocketWaitAll|ocketWaitNext|ockets|okalSneathDissimilarity|olarEclipse|olarSystemFeatureData|olarTime|olidAngle|olidData|olidRegionQ|olve|olveAlways|olveValues|ort|ortBy|ound|oundNote|ourcePDETerm|ow|paceCurveData|pacer|pan|parseArray|parseArrayQ|patialGraphDistribution|patialMedian|peak|pearmanRankTest|pearmanRho|peciesData|pectralLineData|pectrogram|pectrogramArray|pecularity|peechSynthesize|pellingCorrectionList|phere|pherePoints|phericalBesselJ|phericalBesselY|phericalHankelH1|phericalHankelH2|phericalHarmonicY|phericalPlot3D|phericalShell|pheroidalEigenvalue|pheroidalJoiningFactor|pheroidalPS|pheroidalPSPrime|pheroidalQS|pheroidalQSPrime|pheroidalRadialFactor|pheroidalS1|pheroidalS1Prime|pheroidalS2|pheroidalS2Prime|plicedDistribution|plit|plitBy|pokenString|potLight|qrt|qrtBox|quare|quareFreeQ|quareIntersection|quareMatrixQ|quareRepeatingElement|quareSubset|quareSubsetEqual|quareSuperset|quareSupersetEqual|quareUnion|quareWave|quaredEuclideanDistance|quaresR|tableDistribution|tack|tackBegin|tackComplete|tackInhibit|tackedDateListPlot|tackedListPlot|tadiumShape|tandardAtmosphereData|tandardDeviation|tandardDeviationFilter|tandardForm|tandardOceanData|tandardize|tandbyDistribution|tar|tarClusterData|tarData|tarGraph|tartProcess|tateFeedbackGains|tateOutputEstimator|tateResponse|tateSpaceModel|tateSpaceTransform|tateTransformationLinearize|tationaryDistribution|tationaryWaveletPacketTransform|tationaryWaveletTransform|tatusArea|tatusCentrality|tieltjesGamma|tippleShading|tirlingS1|tirlingS2|toppingPowerData|tratonovichProcess|treamDensityPlot|treamPlot|treamPlot3D|treamPosition|treams|tringCases|tringContainsQ|tringCount|tringDelete|tringDrop|tringEndsQ|tringExpression|tringExtract|tringForm|tringFormat|tringFormatQ|tringFreeQ|tringInsert|tringJoin|tringLength|tringMatchQ|tringPadLeft|tringPadRight|tringPart|tringPartition|tringPosition|tringQ|tringRepeat|tringReplace|tringReplaceList|tringReplacePart|tringReverse|tringRiffle|tringRotateLeft|tringRotateRight|tringSkeleton|tringSplit|tringStartsQ|tringTake|tringTakeDrop|tringTemplate|tringToByteArray|tringToStream|tringTrim|tripBoxes|tructuralImportance|truveH|truveL|tudentTDistribution|tyle|tyleBox|tyleData|ubMinus|ubPlus|ubStar|ubValues|ubdivide|ubfactorial|ubgraph|ubresultantPolynomialRemainders|ubresultantPolynomials|ubresultants|ubscript|ubscriptBox|ubsequences|ubset|ubsetEqual|ubsetMap|ubsetQ|ubsets|ubstitutionSystem|ubsuperscript|ubsuperscriptBox|ubtract|ubtractFrom|ubtractSides|ucceeds|ucceedsEqual|ucceedsSlantEqual|ucceedsTilde|uccess|uchThat|um|umConvergence|unPosition|unrise|unset|uperDagger|uperMinus|uperPlus|uperStar|upernovaData|uperscript|uperscriptBox|uperset|upersetEqual|urd|urfaceArea|urfaceData|urvivalDistribution|urvivalFunction|urvivalModel|urvivalModelFit|uzukiDistribution|uzukiGroupSuz|watchLegend|witch|ymbol|ymbolName|ymletWavelet|ymmetric|ymmetricGroup|ymmetricKey|ymmetricMatrixQ|ymmetricPolynomial|ymmetricReduction|ymmetrize|ymmetrizedArray|ymmetrizedArrayRules|ymmetrizedDependentComponents|ymmetrizedIndependentComponents|ymmetrizedReplacePart|ynonyms|yntaxInformation|yntaxLength|yntaxPacket|yntaxQ|ystemDialogInput|ystemInformation|ystemOpen|ystemOptions|ystemProcessData|ystemProcesses|ystemsConnectionsModel|ystemsModelControllerData|ystemsModelDelay|ystemsModelDelayApproximate|ystemsModelDelete|ystemsModelDimensions|ystemsModelExtract|ystemsModelFeedbackConnect|ystemsModelLinearity|ystemsModelMerge|ystemsModelOrder|ystemsModelParallelConnect|ystemsModelSeriesConnect|ystemsModelStateFeedbackConnect|ystemsModelVectorRelativeOrders))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:T(?:Test|abView|able|ableForm|agBox|agSet|agSetDelayed|agUnset|ake|akeDrop|akeLargest|akeLargestBy|akeList|akeSmallest|akeSmallestBy|akeWhile|ally|an|anh|askAbort|askExecute|askObject|askRemove|askResume|askSuspend|askWait|asks|autologyQ|eXForm|elegraphProcess|emplateApply|emplateBox|emplateExpression|emplateIf|emplateObject|emplateSequence|emplateSlot|emplateWith|emporalData|ensorContract|ensorDimensions|ensorExpand|ensorProduct|ensorRank|ensorReduce|ensorSymmetry|ensorTranspose|ensorWedge|erminatedEvaluation|estReport|estReportObject|estResultObject|etrahedron|ext|extCell|extData|extGrid|extPacket|extRecognize|extSentences|extString|extTranslation|extWords|exture|herefore|hermodynamicData|hermometerGauge|hickness|hinning|hompsonGroupTh|hread|hreeJSymbol|hreshold|hrough|hrow|hueMorse|humbnail|ideData|ilde|ildeEqual|ildeFullEqual|ildeTilde|imeConstrained|imeObject|imeObjectQ|imeRemaining|imeSeries|imeSeriesAggregate|imeSeriesForecast|imeSeriesInsert|imeSeriesInvertibility|imeSeriesMap|imeSeriesMapThread|imeSeriesModel|imeSeriesModelFit|imeSeriesResample|imeSeriesRescale|imeSeriesShift|imeSeriesThread|imeSeriesWindow|imeSystemConvert|imeUsed|imeValue|imeZoneConvert|imeZoneOffset|imelinePlot|imes|imesBy|iming|itsGroupT|oBoxes|oCharacterCode|oContinuousTimeModel|oDiscreteTimeModel|oEntity|oExpression|oInvertibleTimeSeries|oLowerCase|oNumberField|oPolarCoordinates|oRadicals|oRules|oSphericalCoordinates|oString|oUpperCase|oeplitzMatrix|ogether|oggler|ogglerBar|ooltip|oonShading|opHatTransform|opologicalSort|orus|orusGraph|otal|otalVariationFilter|ouchPosition|r|race|raceDialog|racePrint|raceScan|racyWidomDistribution|radingChart|raditionalForm|ransferFunctionCancel|ransferFunctionExpand|ransferFunctionFactor|ransferFunctionModel|ransferFunctionPoles|ransferFunctionTransform|ransferFunctionZeros|ransformationFunction|ransformationMatrix|ransformedDistribution|ransformedField|ransformedProcess|ransformedRegion|ransitiveClosureGraph|ransitiveReductionGraph|ranslate|ranslationTransform|ransliterate|ranspose|ravelDirections|ravelDirectionsData|ravelDistance|ravelDistanceList|ravelTime|reeForm|reeGraph|reeGraphQ|reePlot|riangle|riangleWave|riangularDistribution|riangulateMesh|rigExpand|rigFactor|rigFactorList|rigReduce|rigToExp|rigger|rimmedMean|rimmedVariance|ropicalStormData|rueQ|runcatedDistribution|runcatedPolyhedron|sallisQExponentialDistribution|sallisQGaussianDistribution|ube|ukeyLambdaDistribution|ukeyWindow|unnelData|uples|uranGraph|uringMachine|uttePolynomial|woWayRule|ypeHint))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:U(?:RL|RLBuild|RLDecode|RLDispatcher|RLDownload|RLEncode|RLExecute|RLExpand|RLParse|RLQueryDecode|RLQueryEncode|RLRead|RLResponseTime|RLShorten|RLSubmit|nateQ|ncompress|nderBar|nderflow|nderoverscript|nderoverscriptBox|nderscript|nderscriptBox|nderseaFeatureData|ndirectedEdge|ndirectedGraph|ndirectedGraphQ|nequal|nequalTo|nevaluated|niformDistribution|niformGraphDistribution|niformPolyhedron|niformSumDistribution|ninstall|nion|nionPlus|nique|nitBox|nitConvert|nitDimensions|nitRootTest|nitSimplify|nitStep|nitTriangle|nitVector|nitaryMatrixQ|nitize|niverseModelData|niversityData|nixTime|nprotect|nsameQ|nset|nsetShared|ntil|pArrow|pArrowBar|pArrowDownArrow|pDownArrow|pEquilibrium|pSet|pSetDelayed|pTee|pTeeArrow|pTo|pValues|pdate|pperCaseQ|pperLeftArrow|pperRightArrow|pperTriangularMatrix|pperTriangularMatrixQ|pperTriangularize|psample|singFrontEnd))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:V(?:alueQ|alues|ariables|ariance|arianceEquivalenceTest|arianceGammaDistribution|arianceTest|ectorAngle|ectorDensityPlot|ectorDisplacementPlot|ectorDisplacementPlot3D|ectorGreater|ectorGreaterEqual|ectorLess|ectorLessEqual|ectorPlot|ectorPlot3D|ectorQ|ectors|ee|erbatim|erificationTest|ertexAdd|ertexChromaticNumber|ertexComponent|ertexConnectivity|ertexContract|ertexCorrelationSimilarity|ertexCosineSimilarity|ertexCount|ertexCoverQ|ertexDegree|ertexDelete|ertexDiceSimilarity|ertexEccentricity|ertexInComponent|ertexInComponentGraph|ertexInDegree|ertexIndex|ertexJaccardSimilarity|ertexList|ertexOutComponent|ertexOutComponentGraph|ertexOutDegree|ertexQ|ertexReplace|ertexTransitiveGraphQ|ertexWeightedGraphQ|erticalBar|erticalGauge|erticalSeparator|erticalSlider|erticalTilde|oiceStyleData|oigtDistribution|olcanoData|olume|onMisesDistribution|oronoiMesh))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:W(?:aitAll|aitNext|akebyDistribution|alleniusHypergeometricDistribution|aringYuleDistribution|arpingCorrespondence|arpingDistance|atershedComponents|atsonUSquareTest|attsStrogatzGraphDistribution|avePDEComponent|aveletBestBasis|aveletFilterCoefficients|aveletImagePlot|aveletListPlot|aveletMapIndexed|aveletMatrixPlot|aveletPhi|aveletPsi|aveletScalogram|aveletThreshold|eakStationarity|eaklyConnectedComponents|eaklyConnectedGraphComponents|eaklyConnectedGraphQ|eatherData|eatherForecastData|eberE|edge|eibullDistribution|eierstrassE1|eierstrassE2|eierstrassE3|eierstrassEta1|eierstrassEta2|eierstrassEta3|eierstrassHalfPeriodW1|eierstrassHalfPeriodW2|eierstrassHalfPeriodW3|eierstrassHalfPeriods|eierstrassInvariantG2|eierstrassInvariantG3|eierstrassInvariants|eierstrassP|eierstrassPPrime|eierstrassSigma|eierstrassZeta|eightedAdjacencyGraph|eightedAdjacencyMatrix|eightedData|eightedGraphQ|elchWindow|heelGraph|henEvent|hich|hile|hiteNoiseProcess|hittakerM|hittakerW|ienerFilter|ienerProcess|ignerD|ignerSemicircleDistribution|ikipediaData|ilksW|ilksWTest|indDirectionData|indSpeedData|indVectorData|indingCount|indingPolygon|insorizedMean|insorizedVariance|ishartMatrixDistribution|ith|olframAlpha|olframLanguageData|ordCloud|ordCount|ordCounts|ordData|ordDefinition|ordFrequency|ordFrequencyData|ordList|ordStem|ordTranslation|rite|riteLine|riteString|ronskian))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:X(?:MLElement|MLObject|MLTemplate|YZColor|nor|or))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:Y(?:uleDissimilarity))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:Z(?:IPCodeData|Test|Transform|ernikeR|eroSymmetric|eta|etaZero|ipfDistribution))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"System`(?:A(?:cceptanceThreshold|ccuracyGoal|ctiveStyle|ddOnHelpPath|djustmentBoxOptions|lignment|lignmentPoint|llowGroupClose|llowInlineCells|llowLooseGrammar|llowReverseGroupClose|llowScriptLevelChange|llowVersionUpdate|llowedCloudExtraParameters|llowedCloudParameterExtensions|llowedDimensions|llowedFrequencyRange|llowedHeads|lternativeHypothesis|ltitudeMethod|mbiguityFunction|natomySkinStyle|nchoredSearch|nimationDirection|nimationRate|nimationRepetitions|nimationRunTime|nimationRunning|nimationTimeIndex|nnotationRules|ntialiasing|ppearance|ppearanceElements|ppearanceRules|spectRatio|ssociationFormat|ssumptions|synchronous|ttachedCell|udioChannelAssignment|udioEncoding|udioInputDevice|udioLabel|udioOutputDevice|uthentication|utoAction|utoCopy|utoDelete|utoGeneratedPackage|utoIndent|utoItalicWords|utoMultiplicationSymbol|utoOpenNotebooks|utoOpenPalettes|utoOperatorRenderings|utoRemove|utoScroll|utoSpacing|utoloadPath|utorunSequencing|xes|xesEdge|xesLabel|xesOrigin|xesStyle))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:B(?:ackground|arOrigin|arSpacing|aseStyle|aselinePosition|inaryFormat|ookmarks|ooleanStrings|oundaryStyle|oxBaselineShift|oxFormFormatTypes|oxFrame|oxMargins|oxRatios|oxStyle|oxed|ubbleScale|ubbleSizes|uttonBoxOptions|uttonData|uttonFunction|uttonMinHeight|uttonSource|yteOrdering))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:C(?:alendarType|alloutMarker|alloutStyle|aptureRunning|aseOrdering|elestialSystem|ellAutoOverwrite|ellBaseline|ellBracketOptions|ellChangeTimes|ellContext|ellDingbat|ellDingbatMargin|ellDynamicExpression|ellEditDuplicate|ellEpilog|ellEvaluationDuplicate|ellEvaluationFunction|ellEventActions|ellFrame|ellFrameColor|ellFrameLabelMargins|ellFrameLabels|ellFrameMargins|ellGrouping|ellGroupingRules|ellHorizontalScrolling|ellID|ellLabel|ellLabelAutoDelete|ellLabelMargins|ellLabelPositioning|ellLabelStyle|ellLabelTemplate|ellMargins|ellOpen|ellProlog|ellSize|ellTags|haracterEncoding|haracterEncodingsPath|hartBaseStyle|hartElementFunction|hartElements|hartLabels|hartLayout|hartLegends|hartStyle|lassPriors|lickToCopyEnabled|lipPlanes|lipPlanesStyle|lipRange|lippingStyle|losingAutoSave|loudBase|loudObjectNameFormat|loudObjectURLType|lusterDissimilarityFunction|odeAssistOptions|olorCoverage|olorFunction|olorFunctionBinning|olorFunctionScaling|olorRules|olorSelectorSettings|olorSpace|olumnAlignments|olumnLines|olumnSpacings|olumnWidths|olumnsEqual|ombinerFunction|ommonDefaultFormatTypes|ommunityBoundaryStyle|ommunityLabels|ommunityRegionStyle|ompilationOptions|ompilationTarget|ompiled|omplexityFunction|ompressionLevel|onfidenceLevel|onfidenceRange|onfidenceTransform|onfigurationPath|onstants|ontentPadding|ontentSelectable|ontentSize|ontinuousAction|ontourLabels|ontourShading|ontourStyle|ontours|ontrolPlacement|ontrolType|ontrollerLinking|ontrollerMethod|ontrollerPath|ontrolsRendering|onversionRules|ookieFunction|oordinatesToolOptions|opyFunction|opyable|ornerNeighbors|ounterAssignments|ounterFunction|ounterIncrements|ounterStyleMenuListing|ovarianceEstimatorFunction|reateCellID|reateIntermediateDirectories|riterionFunction|ubics|urveClosed))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:D(?:ataRange|ataReversed|atasetTheme|ateFormat|ateFunction|ateGranularity|ateReduction|ateTicksFormat|ayCountConvention|efaultDuplicateCellStyle|efaultDuration|efaultElement|efaultFontProperties|efaultFormatType|efaultInlineFormatType|efaultNaturalLanguage|efaultNewCellStyle|efaultNewInlineCellStyle|efaultNotebook|efaultOptions|efaultPrintPrecision|efaultStyleDefinitions|einitialization|eletable|eleteContents|eletionWarning|elimiterAutoMatching|elimiterFlashTime|elimiterMatching|elimiters|eliveryFunction|ependentVariables|eployed|escriptorStateSpace|iacriticalPositioning|ialogProlog|ialogSymbols|igitBlock|irectedEdges|irection|iscreteVariables|ispersionEstimatorFunction|isplayAllSteps|isplayFunction|istanceFunction|istributedContexts|ithering|ividers|ockedCell|ockedCells|ynamicEvaluationTimeout|ynamicModuleValues|ynamicUpdating))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:E(?:clipseType|dgeCapacity|dgeCost|dgeLabelStyle|dgeLabels|dgeShapeFunction|dgeStyle|dgeValueRange|dgeValueSizes|dgeWeight|ditCellTagsSettings|ditable|lidedForms|nabled|pilog|pilogFunction|scapeRadius|valuatable|valuationCompletionAction|valuationElements|valuationMonitor|valuator|valuatorNames|ventLabels|xcludePods|xcludedContexts|xcludedForms|xcludedLines|xcludedPhysicalQuantities|xclusions|xclusionsStyle|xponentFunction|xponentPosition|xponentStep|xponentialFamily|xportAutoReplacements|xpressionUUID|xtension|xtentElementFunction|xtentMarkers|xtentSize|xternalDataCharacterEncoding|xternalOptions|xternalTypeSignature))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:F(?:aceGrids|aceGridsStyle|ailureAction|eatureNames|eatureTypes|eedbackSector|eedbackSectorStyle|eedbackType|ieldCompletionFunction|ieldHint|ieldHintStyle|ieldMasked|ieldSize|ileNameDialogSettings|ileNameForms|illing|illingStyle|indSettings|itRegularization|ollowRedirects|ontColor|ontFamily|ontSize|ontSlant|ontSubstitutions|ontTracking|ontVariations|ontWeight|orceVersionInstall|ormBoxOptions|ormLayoutFunction|ormProtectionMethod|ormatType|ormatTypeAutoConvert|ourierParameters|ractionBoxOptions|ractionLine|rame|rameBoxOptions|rameLabel|rameMargins|rameRate|rameStyle|rameTicks|rameTicksStyle|rontEndEventActions|unctionSpace))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:G(?:apPenalty|augeFaceElementFunction|augeFaceStyle|augeFrameElementFunction|augeFrameSize|augeFrameStyle|augeLabels|augeMarkers|augeStyle|aussianIntegers|enerateConditions|eneratedCell|eneratedDocumentBinding|eneratedParameters|eneratedQuantityMagnitudes|eneratorDescription|eneratorHistoryLength|eneratorOutputType|eoArraySize|eoBackground|eoCenter|eoGridLines|eoGridLinesStyle|eoGridRange|eoGridRangePadding|eoLabels|eoLocation|eoModel|eoProjection|eoRange|eoRangePadding|eoResolution|eoScaleBar|eoServer|eoStylingImageFunction|eoZoomLevel|radient|raphHighlight|raphHighlightStyle|raphLayerStyle|raphLayers|raphLayout|ridCreationSettings|ridDefaultElement|ridFrame|ridFrameMargins|ridLines|ridLinesStyle|roupActionBase|roupPageBreakWithin))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:H(?:eaderAlignment|eaderBackground|eaderDisplayFunction|eaderLines|eaderSize|eaderStyle|eads|elpBrowserSettings|iddenItems|olidayCalendar|yperlinkAction|yphenation))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:I(?:conRules|gnoreCase|gnoreDiacritics|gnorePunctuation|mageCaptureFunction|mageFormattingWidth|mageLabels|mageLegends|mageMargins|magePadding|magePreviewFunction|mageRegion|mageResolution|mageSize|mageSizeAction|mageSizeMultipliers|magingDevice|mportAutoReplacements|mportOptions|ncludeConstantBasis|ncludeDefinitions|ncludeDirectories|ncludeFileExtension|ncludeGeneratorTasks|ncludeInflections|ncludeMetaInformation|ncludePods|ncludeQuantities|ncludeSingularSolutions|ncludeWindowTimes|ncludedContexts|ndeterminateThreshold|nflationMethod|nheritScope|nitialSeeding|nitialization|nitializationCell|nitializationCellEvaluation|nitializationCellWarning|nputAliases|nputAssumptions|nputAutoReplacements|nsertResults|nsertionFunction|nteractive|nterleaving|nterpolationOrder|nterpolationPoints|nterpretationBoxOptions|nterpretationFunction|ntervalMarkers|ntervalMarkersStyle|nverseFunctions|temAspectRatio|temDisplayFunction|temSize|temStyle))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:J(?:oined))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:K(?:eepExistingVersion|eyCollisionFunction|eypointStrength))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:L(?:abelStyle|abelVisibility|abelingFunction|abelingSize|anguage|anguageCategory|ayerSizeFunction|eaderSize|earningRate|egendAppearance|egendFunction|egendLabel|egendLayout|egendMargins|egendMarkerSize|egendMarkers|ighting|ightingAngle|imitsPositioning|imitsPositioningTokens|ineBreakWithin|ineIndent|ineIndentMaxFraction|ineIntegralConvolutionScale|ineSpacing|inearOffsetFunction|inebreakAdjustments|inkFunction|inkProtocol|istFormat|istPickerBoxOptions|ocalizeVariables|ocatorAutoCreate|ocatorRegion|ooping))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:M(?:agnification|ailAddressValidation|ailResponseFunction|ailSettings|asking|atchLocalNames|axCellMeasure|axColorDistance|axDuration|axExtraBandwidths|axExtraConditions|axFeatureDisplacement|axFeatures|axItems|axIterations|axMixtureKernels|axOverlapFraction|axPlotPoints|axRecursion|axStepFraction|axStepSize|axSteps|emoryConstraint|enuCommandKey|enuSortingValue|enuStyle|esh|eshCellHighlight|eshCellLabel|eshCellMarker|eshCellShapeFunction|eshCellStyle|eshFunctions|eshQualityGoal|eshRefinementFunction|eshShading|eshStyle|etaInformation|ethod|inColorDistance|inIntervalSize|inPointSeparation|issingBehavior|issingDataMethod|issingDataRules|issingString|issingStyle|odal|odulus|ultiaxisArrangement|ultiedgeStyle|ultilaunchWarning|ultilineFunction|ultiselection))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:N(?:icholsGridLines|ominalVariables|onConstants|ormFunction|ormalized|ormalsFunction|otebookAutoSave|otebookBrowseDirectory|otebookConvertSettings|otebookDynamicExpression|otebookEventActions|otebookPath|otebooksMenu|otificationFunction|ullRecords|ullWords|umberFormat|umberMarks|umberMultiplier|umberPadding|umberPoint|umberSeparator|umberSigns|yquistGridLines))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:O(?:pacityFunction|pacityFunctionScaling|peratingSystem|ptionInspectorSettings|utputAutoOverwrite|utputSizeLimit|verlaps|verscriptBoxOptions|verwriteTarget))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:P(?:IDDerivativeFilter|IDFeedforward|acletSite|adding|addingSize|ageBreakAbove|ageBreakBelow|ageBreakWithin|ageFooterLines|ageFooters|ageHeaderLines|ageHeaders|ageTheme|ageWidth|alettePath|aneled|aragraphIndent|aragraphSpacing|arallelization|arameterEstimator|artBehavior|artitionGranularity|assEventsDown|assEventsUp|asteBoxFormInlineCells|ath|erformanceGoal|ermissions|haseRange|laceholderReplace|layRange|lotLabel|lotLabels|lotLayout|lotLegends|lotMarkers|lotPoints|lotRange|lotRangeClipping|lotRangePadding|lotRegion|lotStyle|lotTheme|odStates|odWidth|olarAxes|olarAxesOrigin|olarGridLines|olarTicks|oleZeroMarkers|recisionGoal|referencesPath|reprocessingRules|reserveColor|reserveImageOptions|rincipalValue|rintAction|rintPrecision|rintingCopies|rintingOptions|rintingPageRange|rintingStartingPageNumber|rintingStyleEnvironment|rintout3DPreviewer|rivateCellOptions|rivateEvaluationOptions|rivateFontOptions|rivateNotebookOptions|rivatePaths|rocessDirectory|rocessEnvironment|rocessEstimator|rogressReporting|rolog|ropagateAborts))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:Q(?:uartics))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:R(?:adicalBoxOptions|andomSeeding|asterSize|eImLabels|eImStyle|ealBlockDiagonalForm|ecognitionPrior|ecordLists|ecordSeparators|eferenceLineStyle|efreshRate|egionBoundaryStyle|egionFillingStyle|egionFunction|egionSize|egularization|enderingOptions|equiredPhysicalQuantities|esampling|esamplingMethod|esolveContextAliases|estartInterval|eturnReceiptFunction|evolutionAxis|otateLabel|otationAction|oundingRadius|owAlignments|owLines|owMinHeight|owSpacings|owsEqual|ulerUnits|untimeAttributes|untimeOptions))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:S(?:ameTest|ampleDepth|ampleRate|amplingPeriod|aveConnection|aveDefinitions|aveable|caleDivisions|caleOrigin|calePadding|caleRangeStyle|caleRanges|calingFunctions|cientificNotationThreshold|creenStyleEnvironment|criptBaselineShifts|criptLevel|criptMinSize|criptSizeMultipliers|crollPosition|crollbars|crollingOptions|ectorOrigin|ectorSpacing|electable|elfLoopStyle|eriesTermGoal|haringList|howAutoSpellCheck|howAutoStyles|howCellBracket|howCellLabel|howCellTags|howClosedCellArea|howContents|howCursorTracker|howGroupOpener|howPageBreaks|howSelection|howShortBoxForm|howSpecialCharacters|howStringCharacters|hrinkingDelay|ignPadding|ignificanceLevel|imilarityRules|ingleLetterItalics|liderBoxOptions|ortedBy|oundVolume|pacings|panAdjustments|panCharacterRounding|panLineThickness|panMaxSize|panMinSize|panSymmetric|pecificityGoal|pellingCorrection|pellingDictionaries|pellingDictionariesPath|pellingOptions|phericalRegion|plineClosed|plineDegree|plineKnots|plineWeights|qrtBoxOptions|tabilityMargins|tabilityMarginsStyle|tandardized|tartingStepSize|tateSpaceRealization|tepMonitor|trataVariables|treamColorFunction|treamColorFunctionScaling|treamMarkers|treamPoints|treamScale|treamStyle|trictInequalities|tripOnInput|tripWrapperBoxes|tructuredSelection|tyleBoxAutoDelete|tyleDefinitions|tyleHints|tyleMenuListing|tyleNameDialogSettings|tyleSheetPath|ubscriptBoxOptions|ubsuperscriptBoxOptions|ubtitleEncoding|uperscriptBoxOptions|urdForm|ynchronousInitialization|ynchronousUpdating|yntaxForm|ystemHelpPath|ystemsModelLabels))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:T(?:abFilling|abSpacings|ableAlignments|ableDepth|ableDirections|ableHeadings|ableSpacing|agBoxOptions|aggingRules|argetFunctions|argetUnits|emplateBoxOptions|emporalRegularity|estID|extAlignment|extClipboardType|extJustification|extureCoordinateFunction|extureCoordinateScaling|icks|icksStyle|imeConstraint|imeDirection|imeFormat|imeGoal|imeSystem|imeZone|okenWords|olerance|ooltipDelay|ooltipStyle|otalWidth|ouchscreenAutoZoom|ouchscreenControlPlacement|raceAbove|raceBackward|raceDepth|raceForward|raceOff|raceOn|raceOriginal|rackedSymbols|rackingFunction|raditionalFunctionNotation|ransformationClass|ransformationFunctions|ransitionDirection|ransitionDuration|ransitionEffect|ranslationOptions|ravelMethod|rendStyle|rig))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:U(?:nderoverscriptBoxOptions|nderscriptBoxOptions|ndoOptions|ndoTrackedVariables|nitSystem|nityDimensions|nsavedVariables|pdateInterval|pdatePacletSites|tilityFunction))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:V(?:alidationLength|alidationSet|alueDimensions|arianceEstimatorFunction|ectorAspectRatio|ectorColorFunction|ectorColorFunctionScaling|ectorMarkers|ectorPoints|ectorRange|ectorScaling|ectorSizes|ectorStyle|erifyConvergence|erifySecurityCertificates|erifySolutions|erifyTestAssumptions|ersionedPreferences|ertexCapacity|ertexColors|ertexCoordinates|ertexDataCoordinates|ertexLabelStyle|ertexLabels|ertexNormals|ertexShape|ertexShapeFunction|ertexSize|ertexStyle|ertexTextureCoordinates|ertexWeight|ideoEncoding|iewAngle|iewCenter|iewMatrix|iewPoint|iewProjection|iewRange|iewVector|iewVertical|isible))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:W(?:aveletScale|eights|hitePoint|indowClickSelect|indowElements|indowFloating|indowFrame|indowFrameElements|indowMargins|indowOpacity|indowSize|indowStatusArea|indowTitle|indowToolbars|ordOrientation|ordSearch|ordSelectionFunction|ordSeparators|ordSpacings|orkingPrecision|rapAround))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:Z(?:eroTest|eroWidthTimes))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:A(?:bove|fter|lgebraics|ll|nonymous|utomatic|xis))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:B(?:ack|ackward|aseline|efore|elow|lack|lue|old|ooleans|ottom|oxes|rown|yte))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:C(?:atalan|ellStyle|enter|haracter|omplexInfinity|omplexes|onstant|yan))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:D(?:ashed|efaultAxesStyle|efaultBaseStyle|efaultBoxStyle|efaultFaceGridsStyle|efaultFieldHintStyle|efaultFrameStyle|efaultFrameTicksStyle|efaultGridLinesStyle|efaultLabelStyle|efaultMenuStyle|efaultTicksStyle|efaultTooltipStyle|egree|elimiter|igitCharacter|otDashed|otted))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:E(?:|ndOfBuffer|ndOfFile|ndOfLine|ndOfString|ulerGamma|xpression))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:F(?:alse|lat|ontProperties|orward|orwardBackward|riday|ront|rontEndDynamicExpression|ull))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:G(?:eneral|laisher|oldenAngle|oldenRatio|ray|reen))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:H(?:ere|exadecimalCharacter|oldAll|oldAllComplete|oldFirst|oldRest))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:I(?:|ndeterminate|nfinity|nherited|nteger|ntegers|talic))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:K(?:hinchin))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:L(?:arge|arger|eft|etterCharacter|ightBlue|ightBrown|ightCyan|ightGray|ightGreen|ightMagenta|ightOrange|ightPink|ightPurple|ightRed|ightYellow|istable|ocked))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:M(?:achinePrecision|agenta|anual|edium|eshCellCentroid|eshCellMeasure|eshCellQuality|onday))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:N(?:HoldAll|HoldFirst|HoldRest|egativeIntegers|egativeRationals|egativeReals|oWhitespace|onNegativeIntegers|onNegativeRationals|onNegativeReals|onPositiveIntegers|onPositiveRationals|onPositiveReals|one|ow|ull|umber|umberString|umericFunction))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:O(?:neIdentity|range|rderless))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:P(?:i|ink|lain|ositiveIntegers|ositiveRationals|ositiveReals|rimes|rotected|unctuationCharacter|urple))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:R(?:ationals|eadProtected|eal|eals|ecord|ed|ight))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:S(?:aturday|equenceHold|mall|maller|panFromAbove|panFromBoth|panFromLeft|tartOfLine|tartOfString|tring|truckthrough|tub|unday))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:T(?:emporary|hick|hin|hursday|iny|oday|omorrow|op|ransparent|rue|uesday))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:U(?:ndefined|nderlined))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:W(?:ednesday|hite|hitespace|hitespaceCharacter|ord|ordBoundary|ordCharacter))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:Y(?:ellow|esterday))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:\\$(?:Aborted|ActivationKey|AllowDataUpdates|AllowInternet|AssertFunction|Assumptions|AudioInputDevices|AudioOutputDevices|BaseDirectory|BasePacletsDirectory|BatchInput|BatchOutput|ByteOrdering|CacheBaseDirectory|Canceled|CharacterEncoding|CharacterEncodings|CloudAccountName|CloudBase|CloudConnected|CloudCreditsAvailable|CloudEvaluation|CloudExpressionBase|CloudObjectNameFormat|CloudObjectURLType|CloudRootDirectory|CloudSymbolBase|CloudUserID|CloudUserUUID|CloudVersion|CommandLine|CompilationTarget|Context|ContextAliases|ContextPath|ControlActiveSetting|Cookies|CreationDate|CurrentLink|CurrentTask|DateStringFormat|DefaultAudioInputDevice|DefaultAudioOutputDevice|DefaultFrontEnd|DefaultImagingDevice|DefaultKernels|DefaultLocalBase|DefaultLocalKernel|Display|DisplayFunction|DistributedContexts|DynamicEvaluation|Echo|EmbedCodeEnvironments|EmbeddableServices|Epilog|EvaluationCloudBase|EvaluationCloudObject|EvaluationEnvironment|ExportFormats|Failed|FontFamilies|FrontEnd|FrontEndSession|GeoLocation|GeoLocationCity|GeoLocationCountry|GeoLocationSource|HomeDirectory|IgnoreEOF|ImageFormattingWidth|ImageResolution|ImagingDevice|ImagingDevices|ImportFormats|InitialDirectory|Input|InputFileName|InputStreamMethods|Inspector|InstallationDirectory|InterpreterTypes|IterationLimit|KernelCount|KernelID|Language|LibraryPath|LicenseExpirationDate|LicenseID|LicenseServer|Linked|LocalBase|LocalSymbolBase|MachineAddresses|MachineDomains|MachineEpsilon|MachineID|MachineName|MachinePrecision|MachineType|MaxExtraPrecision|MaxMachineNumber|MaxNumber|MaxPiecewiseCases|MaxPrecision|MaxRootDegree|MessageGroups|MessageList|MessagePrePrint|Messages|MinMachineNumber|MinNumber|MinPrecision|MobilePhone|ModuleNumber|NetworkConnected|NewMessage|NewSymbol|NotebookInlineStorageLimit|Notebooks|NumberMarks|OperatingSystem|Output|OutputSizeLimit|OutputStreamMethods|Packages|ParentLink|ParentProcessID|PasswordFile|Path|PathnameSeparator|PerformanceGoal|Permissions|PlotTheme|Printout3DPreviewer|ProcessID|ProcessorCount|ProcessorType|ProgressReporting|RandomGeneratorState|RecursionLimit|ReleaseNumber|RequesterAddress|RequesterCloudUserID|RequesterCloudUserUUID|RequesterWolframID|RequesterWolframUUID|RootDirectory|ScriptCommandLine|ScriptInputString|Services|SessionID|SharedFunctions|SharedVariables|SoundDisplayFunction|SynchronousEvaluation|System|SystemCharacterEncoding|SystemID|SystemShell|SystemTimeZone|SystemWordLength|TemplatePath|TemporaryDirectory|TimeUnit|TimeZone|TimeZoneEntity|TimedOut|UnitSystem|Urgent|UserAgentString|UserBaseDirectory|UserBasePacletsDirectory|UserDocumentsDirectory|UserURLBase|Username|Version|VersionNumber|WolframDocumentsDirectory|WolframID|WolframUUID))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"System`(?:A(?:bortScheduledTask|ctive|lgebraicRules|lternateImage|natomyForm|nimationCycleOffset|nimationCycleRepetitions|nimationDisplayTime|spectRatioFixed|stronomicalData|synchronousTaskObject|synchronousTasks|udioDevice|udioLooping))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:B(?:uttonEvaluator|uttonExpandable|uttonFrame|uttonMargins|uttonNote|uttonStyle))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:C(?:DFInformation|hebyshevDistance|lassifierInformation|lipFill|olorOutput|olumnForm|ompose|onstantArrayLayer|onstantPlusLayer|onstantTimesLayer|onstrainedMax|onstrainedMin|ontourGraphics|ontourLines|onversionOptions|reateScheduledTask|reateTemporary|urry))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:D(?:atabinRemove|ate|ebug|efaultColor|efaultFont|ensityGraphics|isplay|isplayString|otPlusLayer|ragAndDrop))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:E(?:dgeLabeling|dgeRenderingFunction|valuateScheduledTask|xpectedValue))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:F(?:actorComplete|ontForm|ormTheme|romDate|ullOptions))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:G(?:raphStyle|raphicsArray|raphicsSpacing|ridBaseline))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:H(?:TMLSave|eldPart|iddenSurface|omeDirectory))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:I(?:mageRotated|nstanceNormalizationLayer))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:L(?:UBackSubstitution|egendreType|ightSources|inearProgramming|inkOpen|iteral|ongestMatch))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:M(?:eshRange|oleculeEquivalentQ))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:N(?:etInformation|etSharedArray|extScheduledTaskTime|otebookCreate))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:O(?:penTemporary))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:P(?:IDData|ackingMethod|ersistentValue|ixelConstrained|lot3Matrix|lotDivision|lotJoined|olygonIntersections|redictorInformation|roperties|roperty|ropertyList|ropertyValue))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:R(?:andom|asterArray|ecognitionThreshold|elease|emoteKernelObject|emoveAsynchronousTask|emoveProperty|emoveScheduledTask|enderAll|eplaceHeldPart|esetScheduledTask|esumePacket|unScheduledTask))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:S(?:cheduledTaskActiveQ|cheduledTaskInformation|cheduledTaskObject|cheduledTasks|creenRectangle|electionAnimate|equenceAttentionLayer|equenceForm|etProperty|hading|hortestMatch|ingularValues|kinStyle|ocialMediaData|tartAsynchronousTask|tartScheduledTask|tateDimensions|topAsynchronousTask|topScheduledTask|tructuredArray|tyleForm|tylePrint|ubscripted|urfaceColor|urfaceGraphics|uspendPacket|ystemModelProgressReporting))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:T(?:eXSave|extStyle|imeWarpingCorrespondence|imeWarpingDistance|oDate|oFileName|oHeldExpression))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:U(?:RLFetch|RLFetchAsynchronous|RLSave|RLSaveAsynchronous))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:V(?:ectorScale|ertexCoordinateRules|ertexLabeling|ertexRenderingFunction))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:W(?:aitAsynchronousTask|indowMovable))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:\\$(?:AsynchronousTask|ConfiguredKernels|DefaultFont|EntityStores|FormatType|HTTPCookies|InstallationDate|MachineDomain|ProductInformation|ProgramName|RandomState|ScheduledTask|SummaryBoxDataSizeLimit|TemporaryPrefix|TextStyle|TopDirectory|UserAddOnsDirectory))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"System`(?:A(?:ctionDelay|ctionMenuBox|ctionMenuBoxOptions|ctiveItem|lgebraicRulesData|lignmentMarker|llowAdultContent|llowChatServices|llowIncomplete|nalytic|nimatorBox|nimatorBoxOptions|nimatorElements|ppendCheck|rgumentCountQ|rrow3DBox|rrowBox|uthenticate|utoEvaluateEvents|utoIndentSpacings|utoMatch|utoNumberFormatting|utoQuoteCharacters|utoScaling|utoStyleOptions|utoStyleWords|utomaticImageSize|xis3DBox|xis3DBoxOptions|xisBox|xisBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:B(?:SplineCurve3DBox|SplineCurve3DBoxOptions|SplineCurveBox|SplineCurveBoxOptions|SplineSurface3DBox|SplineSurface3DBoxOptions|ackFaceColor|ackFaceGlowColor|ackFaceOpacity|ackFaceSpecularColor|ackFaceSpecularExponent|ackFaceSurfaceAppearance|ackFaceTexture|ackgroundAppearance|ackgroundTasksSettings|acksubstitution|eveled|ezierCurve3DBox|ezierCurve3DBoxOptions|ezierCurveBox|ezierCurveBoxOptions|lankForm|ounds|ox|oxDimensions|oxForm|oxID|oxRotation|oxRotationPoint|ra|raKet|rowserCategory|uttonCell|uttonContents|uttonStyleMenuListing))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:C(?:acheGraphics|achedValue|ardinalBSplineBasis|ellBoundingBox|ellContents|ellElementSpacings|ellElementsBoundingBox|ellFrameStyle|ellInsertionPointCell|ellTrayPosition|ellTrayWidgets|hangeOptions|hannelDatabin|hannelListenerWait|hannelPreSendFunction|hartElementData|hartElementDataFunction|heckAll|heckboxBox|heckboxBoxOptions|ircleBox|lipboardNotebook|lockwiseContourIntegral|losed|losingEvent|loudConnections|loudObjectInformation|loudObjectInformationData|loudUserID|oarse|oefficientDomain|olonForm|olorSetterBox|olorSetterBoxOptions|olumnBackgrounds|ompilerEnvironmentAppend|ompletionsListPacket|omponentwiseContextMenu|ompressedData|oneBox|onicHullRegion3DBox|onicHullRegion3DBoxOptions|onicHullRegionBox|onicHullRegionBoxOptions|onnect|ontentsBoundingBox|ontextMenu|ontinuation|ontourIntegral|ontourSmoothing|ontrolAlignment|ontrollerDuration|ontrollerInformationData|onvertToPostScript|onvertToPostScriptPacket|ookies|opyTag|ounterBox|ounterBoxOptions|ounterClockwiseContourIntegral|ounterEvaluator|ounterStyle|uboidBox|uboidBoxOptions|urlyDoubleQuote|urlyQuote|ylinderBox|ylinderBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:D(?:OSTextFormat|ampingFactor|ataCompression|atasetDisplayPanel|ateDelimiters|ebugTag|ecimal|efault2DTool|efault3DTool|efaultAttachedCellStyle|efaultControlPlacement|efaultDockedCellStyle|efaultInputFormatType|efaultOutputFormatType|efaultStyle|efaultTextFormatType|efaultTextInlineFormatType|efaultValue|efineExternal|egreeLexicographic|egreeReverseLexicographic|eleteWithContents|elimitedArray|estroyAfterEvaluation|eviceOpenQ|ialogIndent|ialogLevel|ifferenceOrder|igitBlockMinimum|isableConsolePrintPacket|iskBox|iskBoxOptions|ispatchQ|isplayRules|isplayTemporary|istributionDomain|ivergence|ocumentGeneratorInformationData|omainRegistrationInformation|oubleContourIntegral|oublyInfinite|own|rawBackFaces|rawFrontFaces|rawHighlighted|ualLinearProgramming|umpGet|ynamicBox|ynamicBoxOptions|ynamicLocation|ynamicModuleBox|ynamicModuleBoxOptions|ynamicModuleParent|ynamicName|ynamicNamespace|ynamicReference|ynamicWrapperBox|ynamicWrapperBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:E(?:ditButtonSettings|liminationOrder|llipticReducedHalfPeriods|mbeddingObject|mphasizeSyntaxErrors|mpty|nableConsolePrintPacket|ndAdd|ngineEnvironment|nter|qualColumns|qualRows|quatedTo|rrorBoxOptions|rrorNorm|rrorPacket|rrorsDialogSettings|valuated|valuationMode|valuationOrder|valuationRateLimit|ventEvaluator|ventHandlerTag|xactRootIsolation|xitDialog|xpectationE|xportPacket|xpressionPacket|xternalCall|xternalFunctionName))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:F(?:EDisableConsolePrintPacket|EEnableConsolePrintPacket|ail|ileInformation|ileName|illForm|illedCurveBox|illedCurveBoxOptions|ine|itAll|lashSelection|ont|ontName|ontOpacity|ontPostScriptName|ontReencoding|ormatRules|ormatValues|rameInset|rameless|rontEndObject|rontEndResource|rontEndResourceString|rontEndStackSize|rontEndValueCache|rontEndVersion|rontFaceColor|rontFaceGlowColor|rontFaceOpacity|rontFaceSpecularColor|rontFaceSpecularExponent|rontFaceSurfaceAppearance|rontFaceTexture|ullAxes))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:G(?:eneratedCellStyles|eneric|eometricTransformation3DBox|eometricTransformation3DBoxOptions|eometricTransformationBox|eometricTransformationBoxOptions|estureHandlerTag|etContext|etFileName|etLinebreakInformationPacket|lobalPreferences|lobalSession|raphLayerLabels|raphRoot|raphics3DBox|raphics3DBoxOptions|raphicsBaseline|raphicsBox|raphicsBoxOptions|raphicsComplex3DBox|raphicsComplex3DBoxOptions|raphicsComplexBox|raphicsComplexBoxOptions|raphicsContents|raphicsData|raphicsGridBox|raphicsGroup3DBox|raphicsGroup3DBoxOptions|raphicsGroupBox|raphicsGroupBoxOptions|raphicsGrouping|raphicsStyle|reekStyle|ridBoxAlignment|ridBoxBackground|ridBoxDividers|ridBoxFrame|ridBoxItemSize|ridBoxItemStyle|ridBoxOptions|ridBoxSpacings|ridElementStyleOptions|roupOpenerColor|roupOpenerInsideFrame|roupTogetherGrouping|roupTogetherNestedGrouping))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:H(?:eadCompose|eaders|elpBrowserLookup|elpBrowserNotebook|elpViewerSettings|essian|exahedronBox|exahedronBoxOptions|ighlightString|omePage|orizontal|orizontalForm|orizontalScrollPosition|yperlinkCreationSettings|yphenationOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:I(?:conizedObject|gnoreSpellCheck|mageCache|mageCacheValid|mageEditMode|mageMarkers|mageOffset|mageRangeCache|mageSizeCache|mageSizeRaw|nactiveStyle|ncludeSingularTerm|ndent|ndentMaxFraction|ndentingNewlineSpacings|ndexCreationOptions|ndexTag|nequality|nexactNumbers|nformationData|nformationDataGrid|nlineCounterAssignments|nlineCounterIncrements|nlineRules|nputFieldBox|nputFieldBoxOptions|nputGrouping|nputSettings|nputToBoxFormPacket|nsertionPointObject|nset3DBox|nset3DBoxOptions|nsetBox|nsetBoxOptions|ntegral|nterlaced|nterpolationPrecision|nterpretTemplate|nterruptSettings|nto|nvisibleApplication|nvisibleTimes|temBox|temBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:J(?:acobian|oinedCurveBox|oinedCurveBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:K(?:|ernelExecute|et))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:L(?:abeledSlider|ambertW|anguageOptions|aunch|ayoutInformation|exicographic|icenseID|ine3DBox|ine3DBoxOptions|ineBox|ineBoxOptions|ineBreak|ineWrapParts|inearFilter|inebreakSemicolonWeighting|inkConnectedQ|inkError|inkFlush|inkHost|inkMode|inkOptions|inkReadHeld|inkService|inkWriteHeld|istPickerBoxBackground|isten|iteralSearch|ocalizeDefinitions|ocatorBox|ocatorBoxOptions|ocatorCentering|ocatorPaneBox|ocatorPaneBoxOptions|ongEqual|ongForm|oopback))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:M(?:achineID|achineName|acintoshSystemPageSetup|ainSolve|aintainDynamicCaches|akeRules|atchLocalNameQ|aterial|athMLText|athematicaNotation|axBend|axPoints|enu|enuAppearance|enuEvaluator|enuItem|enuList|ergeDifferences|essageObject|essageOptions|essagesNotebook|etaCharacters|ethodOptions|inRecursion|inSize|ode|odular|onomialOrder|ouseAppearanceTag|ouseButtons|ousePointerNote|ultiLetterItalics|ultiLetterStyle|ultiplicity|ultiscriptBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:N(?:BernoulliB|ProductFactors|SumTerms|Values|amespaceBox|amespaceBoxOptions|estedScriptRules|etworkPacketRecordingDuring|ext|onAssociative|ormalGrouping|otebookDefault|otebookInterfaceObject))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:O(?:LEData|bjectExistsQ|pen|penFunctionInspectorPacket|penSpecialOptions|penerBox|penerBoxOptions|ptionQ|ptionValueBox|ptionValueBoxOptions|ptionsPacket|utputFormData|utputGrouping|utputMathEditExpression|ver|verlayBox|verlayBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:P(?:ackPaclet|ackage|acletDirectoryAdd|acletDirectoryRemove|acletInformation|acletObjectQ|acletUpdate|ageHeight|alettesMenuSettings|aneBox|aneBoxOptions|aneSelectorBox|aneSelectorBoxOptions|anelBox|anelBoxOptions|aperWidth|arameter|arameterVariables|arentConnect|arentForm|arentList|arenthesize|artialD|asteAutoQuoteCharacters|ausedTime|eriodicInterpolation|erpendicular|ickMode|ickedElements|ivoting|lotRangeClipPlanesStyle|oint3DBox|oint3DBoxOptions|ointBox|ointBoxOptions|olygon3DBox|olygon3DBoxOptions|olygonBox|olygonBoxOptions|olygonHoleScale|olygonScale|olyhedronBox|olyhedronBoxOptions|olynomialForm|olynomials|opupMenuBox|opupMenuBoxOptions|ostScript|recedence|redictionRoot|referencesSettings|revious|rimaryPlaceholder|rintForm|rismBox|rismBoxOptions|rivateFrontEndOptions|robabilityPr|rocessStateDomain|rocessTimeDomain|rogressIndicatorBox|rogressIndicatorBoxOptions|romptForm|yramidBox|yramidBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:R(?:adioButtonBox|adioButtonBoxOptions|andomSeed|angeSpecification|aster3DBox|aster3DBoxOptions|asterBox|asterBoxOptions|ationalFunctions|awArray|awMedium|ebuildPacletData|ectangleBox|ecurringDigitsForm|eferenceMarkerStyle|eferenceMarkers|einstall|emoved|epeatedString|esourceAcquire|esourceSubmissionObject|eturnCreatesNewCell|eturnEntersInput|eturnInputFormPacket|otationBox|otationBoxOptions|oundImplies|owBackgrounds|owHeights|uleCondition|uleForm))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:S(?:aveAutoDelete|caledMousePosition|cheduledTaskInformationData|criptForm|criptRules|ectionGrouping|electWithContents|election|electionCell|electionCellCreateCell|electionCellDefaultStyle|electionCellParentStyle|electionPlaceholder|elfLoops|erviceResponse|etOptionsPacket|etSecuredAuthenticationKey|etbacks|etterBox|etterBoxOptions|howAutoConvert|howCodeAssist|howControls|howGroupOpenCloseIcon|howInvisibleCharacters|howPredictiveInterface|howSyntaxStyles|hrinkWrapBoundingBox|ingleEvaluation|ingleLetterStyle|lider2DBox|lider2DBoxOptions|ocket|olveDelayed|oundAndGraphics|pace|paceForm|panningCharacters|phereBox|phereBoxOptions|tartupSound|tringBreak|tringByteCount|tripStyleOnPaste|trokeForm|tructuredArrayHeadQ|tyleKeyMapping|tyleNames|urfaceAppearance|yntax|ystemException|ystemGet|ystemInformationData|ystemStub|ystemTest))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:T(?:ab|abViewBox|abViewBoxOptions|ableViewBox|ableViewBoxAlignment|ableViewBoxBackground|ableViewBoxHeaders|ableViewBoxItemSize|ableViewBoxItemStyle|ableViewBoxOptions|agBoxNote|agStyle|emplateEvaluate|emplateSlotSequence|emplateUnevaluated|emplateVerbatim|emporaryVariable|ensorQ|etrahedronBox|etrahedronBoxOptions|ext3DBox|ext3DBoxOptions|extBand|extBoundingBox|extBox|extForm|extLine|extParagraph|hisLink|itleGrouping|oColor|oggle|oggleFalse|ogglerBox|ogglerBoxOptions|ooBig|ooltipBox|ooltipBoxOptions|otalHeight|raceAction|raceInternal|raceLevel|rackCellChangeTimes|raditionalNotation|raditionalOrder|ransparentColor|rapEnterKey|rapSelection|ubeBSplineCurveBox|ubeBSplineCurveBoxOptions|ubeBezierCurveBox|ubeBezierCurveBoxOptions|ubeBox|ubeBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:U(?:ntrackedVariables|p|seGraphicsRange|serDefinedWavelet|sing))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:V(?:2Get|alueBox|alueBoxOptions|alueForm|aluesData|ectorGlyphData|erbose|ertical|erticalForm|iewPointSelectorSettings|iewPort|irtualGroupData|isibleCell))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:W(?:aitUntil|ebPageMetaInformation|holeCellGroupOpener|indowPersistentStyles|indowSelected|indowWidth|olframAlphaDate|olframAlphaQuantity|olframAlphaResult|olframCloudSettings))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:\\$(?:ActivationGroupID|ActivationUserRegistered|AddOnsDirectory|BoxForms|CloudConnection|CloudVersionNumber|CloudWolframEngineVersionNumber|ConditionHold|DefaultMailbox|DefaultPath|FinancialDataSource|GeoEntityTypes|GeoLocationPrecision|HTMLExportRules|HTTPRequest|LaunchDirectory|LicenseProcesses|LicenseSubprocesses|LicenseType|LinkSupported|LoadedFiles|MaxLicenseProcesses|MaxLicenseSubprocesses|MinorReleaseNumber|NetworkLicense|Off|OutputForms|PatchLevelID|PermissionsGroupBase|PipeSupported|PreferencesDirectory|PrintForms|PrintLiteral|RegisteredDeviceClasses|RegisteredUserName|SecuredAuthenticationKeyTokens|SetParentLink|SoundDisplay|SuppressInputFormHeads|SystemMemory|TraceOff|TraceOn|TracePattern|TracePostAction|TracePreAction|UserAgentLanguages|UserAgentMachine|UserAgentName|UserAgentOperatingSystem|UserAgentVersion|UserName))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"System`(?:A(?:ctiveClassification|ctiveClassificationObject|ctivePrediction|ctivePredictionObject|ddToSearchIndex|ggregatedEntityClass|ggregationLayer|ngleBisector|nimatedImage|nimationVideo|nomalyDetector|ppendLayer|pplication|pplyReaction|round|roundReplace|rrayReduce|sk|skAppend|skConfirm|skDisplay|skFunction|skState|skTemplateDisplay|skedQ|skedValue|ssessmentFunction|ssessmentResultObject|ssumeDeterministic|stroAngularSeparation|stroBackground|stroCenter|stroDistance|stroGraphics|stroGridLines|stroGridLinesStyle|stroPosition|stroProjection|stroRange|stroRangePadding|stroReferenceFrame|stroStyling|stroZoomLevel|tom|tomCoordinates|tomCount|tomDiagramCoordinates|tomLabelStyle|tomLabels|tomList|ttachCell|ttentionLayer|udioAnnotate|udioAnnotationLookup|udioIdentify|udioInstanceQ|udioPause|udioPlay|udioRecord|udioStop|udioStream|udioStreams|udioTrackApply|udioTrackSelection|utocomplete|utocompletionFunction|xiomaticTheory|xisLabel|xisObject|xisStyle))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:B(?:asicRecurrentLayer|atchNormalizationLayer|atchSize|ayesianMaximization|ayesianMaximizationObject|ayesianMinimization|ayesianMinimizationObject|esagL|innedVariogramList|inomialPointProcess|ioSequence|ioSequenceBackTranslateList|ioSequenceComplement|ioSequenceInstances|ioSequenceModify|ioSequencePlot|ioSequenceQ|ioSequenceReverseComplement|ioSequenceTranscribe|ioSequenceTranslate|itRate|lockDiagonalMatrix|lockLowerTriangularMatrix|lockUpperTriangularMatrix|lockchainAddressData|lockchainBase|lockchainBlockData|lockchainContractValue|lockchainData|lockchainGet|lockchainKeyEncode|lockchainPut|lockchainTokenData|lockchainTransaction|lockchainTransactionData|lockchainTransactionSign|lockchainTransactionSubmit|ond|ondCount|ondLabelStyle|ondLabels|ondList|ondQ|uildCompiledComponent))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:C(?:TCLossLayer|achePersistence|anvas|ast|ategoricalDistribution|atenateLayer|auchyPointProcess|hannelBase|hannelBrokerAction|hannelHistoryLength|hannelListen|hannelListener|hannelListeners|hannelObject|hannelReceiverFunction|hannelSend|hannelSubscribers|haracterNormalize|hemicalConvert|hemicalFormula|hemicalInstance|hemicalReaction|loudExpression|loudExpressions|loudRenderingMethod|ombinatorB|ombinatorC|ombinatorI|ombinatorK|ombinatorS|ombinatorW|ombinatorY|ombinedEntityClass|ompiledCodeFunction|ompiledComponent|ompiledExpressionDeclaration|ompiledLayer|ompilerCallback|ompilerEnvironment|ompilerEnvironmentAppendTo|ompilerEnvironmentObject|ompilerOptions|omplementedEntityClass|omputeUncertainty|onfirmQuiet|onformationMethod|onnectSystemModelComponents|onnectSystemModelController|onnectedMoleculeComponents|onnectedMoleculeQ|onnectionSettings|ontaining|ontentDetectorFunction|ontentFieldOptions|ontentLocationFunction|ontentObject|ontrastiveLossLayer|onvolutionLayer|reateChannel|reateCloudExpression|reateCompilerEnvironment|reateDataStructure|reateDataSystemModel|reateLicenseEntitlement|reateSearchIndex|reateSystemModel|reateTypeInstance|rossEntropyLossLayer|urrentNotebookImage|urrentScreenImage|urryApplied))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:D(?:SolveChangeVariables|ataStructure|ataStructureQ|atabaseConnect|atabaseDisconnect|atabaseReference|atabinSubmit|ateInterval|eclareCompiledComponent|econvolutionLayer|ecryptFile|eleteChannel|eleteCloudExpression|eleteElements|eleteSearchIndex|erivedKey|iggleGatesPointProcess|iggleGrattonPointProcess|igitalSignature|isableFormatting|ocumentWeightingRules|otLayer|ownValuesFunction|ropoutLayer|ynamicImage))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:E(?:choTiming|lementwiseLayer|mbeddedSQLEntityClass|mbeddedSQLExpression|mbeddingLayer|mptySpaceF|ncryptFile|ntityFunction|ntityStore|stimatedPointProcess|stimatedVariogramModel|valuationEnvironment|valuationPrivileges|xpirationDate|xpressionTree|xtendedEntityClass|xternalEvaluate|xternalFunction|xternalIdentifier|xternalObject|xternalSessionObject|xternalSessions|xternalStorageBase|xternalStorageDownload|xternalStorageGet|xternalStorageObject|xternalStoragePut|xternalStorageUpload|xternalValue|xtractLayer))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:F(?:aceRecognize|eatureDistance|eatureExtract|eatureExtraction|eatureExtractor|eatureExtractorFunction|ileConvert|ileFormatProperties|ileNameToFormatList|ileSystemTree|ilteredEntityClass|indChannels|indEquationalProof|indExternalEvaluators|indGeometricConjectures|indImageText|indIsomers|indMoleculeSubstructure|indPointProcessParameters|indSystemModelEquilibrium|indTextualAnswer|lattenLayer|orAllType|ormControl|orwardCloudCredentials|oxHReduce|rameListVideo|romRawPointer|unctionCompile|unctionCompileExport|unctionCompileExportByteArray|unctionCompileExportLibrary|unctionCompileExportString|unctionDeclaration|unctionLayer|unctionPoles))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:G(?:alleryView|atedRecurrentLayer|enerateDerivedKey|enerateDigitalSignature|enerateFileSignature|enerateSecuredAuthenticationKey|eneratedAssetFormat|eneratedAssetLocation|eoGraphValuePlot|eoOrientationData|eometricAssertion|eometricScene|eometricStep|eometricStylingRules|eometricTest|ibbsPointProcess|raphTree|ridVideo))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:H(?:andlerFunctions|andlerFunctionsKeys|ardcorePointProcess|istogramPointDensity))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:I(?:gnoreIsotopes|gnoreStereochemistry|mageAugmentationLayer|mageBoundingBoxes|mageCases|mageContainsQ|mageContents|mageGraphics|magePosition|magePyramid|magePyramidApply|mageStitch|mportedObject|ncludeAromaticBonds|ncludeHydrogens|ncludeRelatedTables|nertEvaluate|nertExpression|nfiniteFuture|nfinitePast|nhomogeneousPoissonPointProcess|nitialEvaluationHistory|nitializationObject|nitializationObjects|nitializationValue|nitialize|nputPorts|ntegrateChangeVariables|nterfaceSwitched|ntersectedEntityClass|nverseImagePyramid))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:K(?:ernelConfiguration|ernelFunction))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:L(?:earningRateMultipliers|ibraryFunctionDeclaration|icenseEntitlementObject|icenseEntitlements|icensingSettings|inearLayer|iteralType|oadCompiledComponent|ocalResponseNormalizationLayer|ongShortTermMemoryLayer|ossFunction))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:M(?:IMETypeToFormatList|ailExecute|ailFolder|ailItem|ailSearch|ailServerConnect|ailServerConnection|aternPointProcess|axDisplayedChildren|axTrainingRounds|axWordGap|eanAbsoluteLossLayer|eanAround|eanPointDensity|eanSquaredLossLayer|ergingFunction|idpoint|issingValuePattern|issingValueSynthesis|olecule|oleculeAlign|oleculeContainsQ|oleculeDraw|oleculeFreeQ|oleculeGraph|oleculeMatchQ|oleculeMaximumCommonSubstructure|oleculeModify|oleculeName|oleculePattern|oleculePlot|oleculePlot3D|oleculeProperty|oleculeQ|oleculeRecognize|oleculeSubstructureCount|oleculeValue))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:N(?:BodySimulation|BodySimulationData|earestNeighborG|estTree|etAppend|etArray|etArrayLayer|etBidirectionalOperator|etChain|etDecoder|etDelete|etDrop|etEncoder|etEvaluationMode|etExternalObject|etExtract|etFlatten|etFoldOperator|etGANOperator|etGraph|etInitialize|etInsert|etInsertSharedArrays|etJoin|etMapOperator|etMapThreadOperator|etMeasurements|etModel|etNestOperator|etPairEmbeddingOperator|etPort|etPortGradient|etPrepend|etRename|etReplace|etReplacePart|etStateObject|etTake|etTrain|etTrainResultsObject|etUnfold|etworkPacketCapture|etworkPacketRecording|etworkPacketTrace|eymanScottPointProcess|ominalScale|ormalizationLayer|umericArray|umericArrayQ|umericArrayType))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:O(?:peratorApplied|rderingLayer|rdinalScale|utputPorts|verlayVideo))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:P(?:acletSymbol|addingLayer|agination|airCorrelationG|arametricRampLayer|arentEdgeLabel|arentEdgeLabelFunction|arentEdgeLabelStyle|arentEdgeShapeFunction|arentEdgeStyle|arentEdgeStyleFunction|artLayer|artProtection|atternFilling|atternReaction|enttinenPointProcess|erpendicularBisector|ersistenceLocation|ersistenceTime|ersistentObject|ersistentObjects|ersistentSymbol|itchRecognize|laceholderLayer|laybackSettings|ointCountDistribution|ointDensity|ointDensityFunction|ointProcessEstimator|ointProcessFitTest|ointProcessParameterAssumptions|ointProcessParameterQ|ointStatisticFunction|ointValuePlot|oissonPointProcess|oolingLayer|rependLayer|roofObject|ublisherID))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:Q(?:uestionGenerator|uestionInterface|uestionObject|uestionSelector))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:R(?:andomArrayLayer|andomInstance|andomPointConfiguration|andomTree|eactionBalance|eactionBalancedQ|ecalibrationFunction|egisterExternalEvaluator|elationalDatabase|emoteAuthorizationCaching|emoteBatchJobAbort|emoteBatchJobObject|emoteBatchJobs|emoteBatchMapSubmit|emoteBatchSubmissionEnvironment|emoteBatchSubmit|emoteConnect|emoteConnectionObject|emoteEvaluate|emoteFile|emoteInputFiles|emoteProviderSettings|emoteRun|emoteRunProcess|emovalConditions|emoveAudioStream|emoveChannelListener|emoveChannelSubscribers|emoveVideoStream|eplicateLayer|eshapeLayer|esizeLayer|esourceFunction|esourceRegister|esourceRemove|esourceSubmit|esourceSystemBase|esourceSystemPath|esourceUpdate|esourceVersion|everseApplied|ipleyK|ipleyRassonRegion|ootTree|ulesTree))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:S(?:ameTestProperties|ampledEntityClass|earchAdjustment|earchIndexObject|earchIndices|earchQueryString|earchResultObject|ecuredAuthenticationKey|ecuredAuthenticationKeys|ecurityCertificate|equenceIndicesLayer|equenceLastLayer|equenceMostLayer|equencePredict|equencePredictorFunction|equenceRestLayer|equenceReverseLayer|erviceRequest|erviceSubmit|etFileFormatProperties|etSystemModel|lideShowVideo|moothPointDensity|nippet|nippetsVideo|nubPolyhedron|oftmaxLayer|olidBoundaryLoadValue|olidDisplacementCondition|olidFixedCondition|olidMechanicsPDEComponent|olidMechanicsStrain|olidMechanicsStress|ortedEntityClass|ourceLink|patialBinnedPointData|patialBoundaryCorrection|patialEstimate|patialEstimatorFunction|patialJ|patialNoiseLevel|patialObservationRegionQ|patialPointData|patialPointSelect|patialRandomnessTest|patialTransformationLayer|patialTrendFunction|peakerMatchQ|peechCases|peechInterpreter|peechRecognize|plice|tartExternalSession|tartWebSession|tereochemistryElements|traussHardcorePointProcess|traussPointProcess|ubsetCases|ubsetCount|ubsetPosition|ubsetReplace|ubtitleTrackSelection|ummationLayer|ymmetricDifference|ynthesizeMissingValues|ystemCredential|ystemCredentialData|ystemCredentialKey|ystemCredentialKeys|ystemCredentialStoreObject|ystemInstall|ystemModel|ystemModelExamples|ystemModelLinearize|ystemModelMeasurements|ystemModelParametricSimulate|ystemModelPlot|ystemModelReliability|ystemModelSimulate|ystemModelSimulateSensitivity|ystemModelSimulationData|ystemModeler|ystemModels))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:T(?:ableView|argetDevice|argetSystem|ernaryListPlot|ernaryPlotCorners|extCases|extContents|extElement|extPosition|extSearch|extSearchReport|extStructure|homasPointProcess|hreaded|hreadingLayer|ickDirection|ickLabelOrientation|ickLabelPositioning|ickLabels|ickLengths|ickPositions|oRawPointer|otalLayer|ourVideo|rainImageContentDetector|rainTextContentDetector|rainingProgressCheckpointing|rainingProgressFunction|rainingProgressMeasurements|rainingProgressReporting|rainingStoppingCriterion|rainingUpdateSchedule|ransposeLayer|ree|reeCases|reeChildren|reeCount|reeData|reeDelete|reeDepth|reeElementCoordinates|reeElementLabel|reeElementLabelFunction|reeElementLabelStyle|reeElementShape|reeElementShapeFunction|reeElementSize|reeElementSizeFunction|reeElementStyle|reeElementStyleFunction|reeExpression|reeExtract|reeFold|reeInsert|reeLayout|reeLeafCount|reeLeafQ|reeLeaves|reeLevel|reeMap|reeMapAt|reeOutline|reePosition|reeQ|reeReplacePart|reeRules|reeScan|reeSelect|reeSize|reeTraversalOrder|riangleCenter|riangleConstruct|riangleMeasurement|ypeDeclaration|ypeEvaluate|ypeOf|ypeSpecifier|yped))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:U(?:RLDownloadSubmit|nconstrainedParameters|nionedEntityClass|niqueElements|nitVectorLayer|nlabeledTree|nmanageObject|nregisterExternalEvaluator|pdateSearchIndex|seEmbeddedLibrary))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:V(?:alenceErrorHandling|alenceFilling|aluePreprocessingFunction|andermondeMatrix|arianceGammaPointProcess|ariogramFunction|ariogramModel|ectorAround|erifyDerivedKey|erifyDigitalSignature|erifyFileSignature|erifyInterpretation|ideo|ideoCapture|ideoCombine|ideoDelete|ideoExtractFrames|ideoFrameList|ideoFrameMap|ideoGenerator|ideoInsert|ideoIntervals|ideoJoin|ideoMap|ideoMapList|ideoMapTimeSeries|ideoPadding|ideoPause|ideoPlay|ideoQ|ideoRecord|ideoReplace|ideoScreenCapture|ideoSplit|ideoStop|ideoStream|ideoStreams|ideoTimeStretch|ideoTrackSelection|ideoTranscode|ideoTransparency|ideoTrim))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:W(?:ebAudioSearch|ebColumn|ebElementObject|ebExecute|ebImage|ebImageSearch|ebItem|ebRow|ebSearch|ebSessionObject|ebSessions|ebWindowObject|ikidataData|ikidataSearch|ikipediaSearch|ithCleanup|ithLock))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:Z(?:oomCenter|oomFactor))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:\\$(?:AllowExternalChannelFunctions|AudioDecoders|AudioEncoders|BlockchainBase|ChannelBase|CompilerEnvironment|CookieStore|CryptographicEllipticCurveNames|CurrentWebSession|DataStructures|DefaultNetworkInterface|DefaultProxyRules|DefaultRemoteBatchSubmissionEnvironment|DefaultRemoteKernel|DefaultSystemCredentialStore|ExternalIdentifierTypes|ExternalStorageBase|GeneratedAssetLocation|IncomingMailSettings|Initialization|InitializationContexts|MaxDisplayedChildren|NetworkInterfaces|NoValue|PersistenceBase|PersistencePath|PreInitialization|PublisherID|ResourceSystemBase|ResourceSystemPath|SSHAuthentication|ServiceCreditsAvailable|SourceLink|SubtitleDecoders|SubtitleEncoders|SystemCredentialStore|TargetSystems|TestFileName|VideoDecoders|VideoEncoders|VoiceStyles))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"System`(?:E(?:cho|xit))(?![`$[:alnum:]])",name:"invalid.session.wolfram"},{match:"System`(?:I(?:n|nString))(?![`$[:alnum:]])",name:"invalid.session.wolfram"},{match:"System`(?:O(?:ut))(?![`$[:alnum:]])",name:"invalid.session.wolfram"},{match:"System`(?:P(?:rint))(?![`$[:alnum:]])",name:"invalid.session.wolfram"},{match:"System`(?:Q(?:uit))(?![`$[:alnum:]])",name:"invalid.session.wolfram"},{match:"System`(?:\\$(?:HistoryLength|Line|Post|Pre|PrePrint|PreRead|SyntaxHandler))(?![`$[:alnum:]])",name:"invalid.session.wolfram"},{match:"System`(?:[$[:alpha:]][$[:alnum:]]*)(?![`$[:alnum:]])",name:"invalid.illegal.system.wolfram"},{match:"(?:[$[:alpha:]][$[:alnum:]]*)(?:`(?:[$[:alpha:]][$[:alnum:]]*))+(?=\\s*(\\[(?!\\s*\\[)|@(?!@)))",name:"variable.function.wolfram"},{match:"(?:[$[:alpha:]][$[:alnum:]]*)(?:`(?:[$[:alpha:]][$[:alnum:]]*))+",name:"symbol.unrecognized.wolfram"},{match:"(?:[$[:alpha:]][$[:alnum:]]*)`",name:"invalid.illegal.wolfram"},{match:"(?:`(?:[$[:alpha:]][$[:alnum:]]*))+(?=\\s*(\\[(?!\\s*\\[)|@(?!@)))",name:"variable.function.wolfram"},{match:"(?:`(?:[$[:alpha:]][$[:alnum:]]*))+",name:"symbol.unrecognized.wolfram"},{match:"`",name:"invalid.illegal.wolfram"},{match:"(?:A(?:ASTriangle|PIFunction|RCHProcess|RIMAProcess|RMAProcess|RProcess|SATriangle|belianGroup|bort|bortKernels|bortProtect|bs|bsArg|bsArgPlot|bsoluteCorrelation|bsoluteCorrelationFunction|bsoluteCurrentValue|bsoluteDashing|bsoluteFileName|bsoluteOptions|bsolutePointSize|bsoluteThickness|bsoluteTime|bsoluteTiming|ccountingForm|ccumulate|ccuracy|cousticAbsorbingValue|cousticImpedanceValue|cousticNormalVelocityValue|cousticPDEComponent|cousticPressureCondition|cousticRadiationValue|cousticSoundHardValue|cousticSoundSoftCondition|ctionMenu|ctivate|cyclicGraphQ|ddSides|ddTo|ddUsers|djacencyGraph|djacencyList|djacencyMatrix|djacentMeshCells|djugate|djustTimeSeriesForecast|djustmentBox|dministrativeDivisionData|ffineHalfSpace|ffineSpace|ffineStateSpaceModel|ffineTransform|irPressureData|irSoundAttenuation|irTemperatureData|ircraftData|irportData|iryAi|iryAiPrime|iryAiZero|iryBi|iryBiPrime|iryBiZero|lgebraicIntegerQ|lgebraicNumber|lgebraicNumberDenominator|lgebraicNumberNorm|lgebraicNumberPolynomial|lgebraicNumberTrace|lgebraicUnitQ|llTrue|lphaChannel|lphabet|lphabeticOrder|lphabeticSort|lternatingFactorial|lternatingGroup|lternatives|mbientLight|mbiguityList|natomyData|natomyPlot3D|natomyStyling|nd|ndersonDarlingTest|ngerJ|ngleBracket|nglePath|nglePath3D|ngleVector|ngularGauge|nimate|nimator|nnotate|nnotation|nnotationDelete|nnotationKeys|nnotationValue|nnuity|nnuityDue|nnulus|nomalyDetection|nomalyDetectorFunction|ntihermitian|ntihermitianMatrixQ|ntisymmetric|ntisymmetricMatrixQ|ntonyms|nyOrder|nySubset|nyTrue|part|partSquareFree|ppellF1|ppend|ppendTo|pply|pplySides|pplyTo|rcCos|rcCosh|rcCot|rcCoth|rcCsc|rcCsch|rcCurvature|rcLength|rcSec|rcSech|rcSin|rcSinDistribution|rcSinh|rcTan|rcTanh|rea|rg|rgMax|rgMin|rgumentsOptions|rithmeticGeometricMean|rray|rrayComponents|rrayDepth|rrayFilter|rrayFlatten|rrayMesh|rrayPad|rrayPlot|rrayPlot3D|rrayQ|rrayResample|rrayReshape|rrayRules|rrays|rrow|rrowheads|ssert|ssociateTo|ssociation|ssociationMap|ssociationQ|ssociationThread|ssuming|symptotic|symptoticDSolveValue|symptoticEqual|symptoticEquivalent|symptoticExpectation|symptoticGreater|symptoticGreaterEqual|symptoticIntegrate|symptoticLess|symptoticLessEqual|symptoticOutputTracker|symptoticProbability|symptoticProduct|symptoticRSolveValue|symptoticSolve|symptoticSum|tomQ|ttributes|udio|udioAmplify|udioBlockMap|udioCapture|udioChannelCombine|udioChannelMix|udioChannelSeparate|udioChannels|udioData|udioDelay|udioDelete|udioDistance|udioFade|udioFrequencyShift|udioGenerator|udioInsert|udioIntervals|udioJoin|udioLength|udioLocalMeasurements|udioLoudness|udioMeasurements|udioNormalize|udioOverlay|udioPad|udioPan|udioPartition|udioPitchShift|udioPlot|udioQ|udioReplace|udioResample|udioReverb|udioReverse|udioSampleRate|udioSpectralMap|udioSpectralTransformation|udioSplit|udioTimeStretch|udioTrim|udioType|ugmentedPolyhedron|ugmentedSymmetricPolynomial|uthenticationDialog|utoRefreshed|utoSubmitting|utocorrelationTest))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:B(?:SplineBasis|SplineCurve|SplineFunction|SplineSurface|abyMonsterGroupB|ackslash|all|and|andpassFilter|andstopFilter|arChart|arChart3D|arLegend|arabasiAlbertGraphDistribution|arcodeImage|arcodeRecognize|aringhausHenzeTest|arlowProschanImportance|arnesG|artlettHannWindow|artlettWindow|aseDecode|aseEncode|aseForm|atesDistribution|attleLemarieWavelet|ecause|eckmannDistribution|eep|egin|eginDialogPacket|eginPackage|ellB|ellY|enfordDistribution|eniniDistribution|enktanderGibratDistribution|enktanderWeibullDistribution|ernoulliB|ernoulliDistribution|ernoulliGraphDistribution|ernoulliProcess|ernsteinBasis|esselFilterModel|esselI|esselJ|esselJZero|esselK|esselY|esselYZero|eta|etaBinomialDistribution|etaDistribution|etaNegativeBinomialDistribution|etaPrimeDistribution|etaRegularized|etween|etweennessCentrality|eveledPolyhedron|ezierCurve|ezierFunction|ilateralFilter|ilateralLaplaceTransform|ilateralZTransform|inCounts|inLists|inarize|inaryDeserialize|inaryDistance|inaryImageQ|inaryRead|inaryReadList|inarySerialize|inaryWrite|inomial|inomialDistribution|inomialProcess|inormalDistribution|iorthogonalSplineWavelet|ipartiteGraphQ|iquadraticFilterModel|irnbaumImportance|irnbaumSaundersDistribution|itAnd|itClear|itGet|itLength|itNot|itOr|itSet|itShiftLeft|itShiftRight|itXor|iweightLocation|iweightMidvariance|lackmanHarrisWindow|lackmanNuttallWindow|lackmanWindow|lank|lankNullSequence|lankSequence|lend|lock|lockMap|lockRandom|lomqvistBeta|lomqvistBetaTest|lur|lurring|odePlot|ohmanWindow|oole|ooleanConsecutiveFunction|ooleanConvert|ooleanCountingFunction|ooleanFunction|ooleanGraph|ooleanMaxterms|ooleanMinimize|ooleanMinterms|ooleanQ|ooleanRegion|ooleanTable|ooleanVariables|orderDimensions|orelTannerDistribution|ottomHatTransform|oundaryDiscretizeGraphics|oundaryDiscretizeRegion|oundaryMesh|oundaryMeshRegion|oundaryMeshRegionQ|oundedRegionQ|oundingRegion|oxData|oxMatrix|oxObject|oxWhiskerChart|racketingBar|rayCurtisDistance|readthFirstScan|reak|ridgeData|rightnessEqualize|roadcastStationData|rownForsytheTest|rownianBridgeProcess|ubbleChart|ubbleChart3D|uckyballGraph|uildingData|ulletGauge|usinessDayQ|utterflyGraph|utterworthFilterModel|utton|uttonBar|uttonBox|uttonNotebook|yteArray|yteArrayFormat|yteArrayFormatQ|yteArrayQ|yteArrayToString|yteCount))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:C(?:|DF|DFDeploy|DFWavelet|Form|MYKColor|SGRegion|SGRegionQ|SGRegionTree|alendarConvert|alendarData|allPacket|allout|anberraDistance|ancel|ancelButton|andlestickChart|anonicalGraph|anonicalName|anonicalWarpingCorrespondence|anonicalWarpingDistance|anonicalizePolygon|anonicalizePolyhedron|anonicalizeRegion|antorMesh|antorStaircase|ap|apForm|apitalDifferentialD|apitalize|apsuleShape|aputoD|arlemanLinearize|arlsonRC|arlsonRD|arlsonRE|arlsonRF|arlsonRG|arlsonRJ|arlsonRK|arlsonRM|armichaelLambda|aseSensitive|ases|ashflow|asoratian|atalanNumber|atch|atenate|auchyDistribution|auchyMatrix|auchyWindow|ayleyGraph|eiling|ell|ellGroup|ellGroupData|ellObject|ellPrint|ells|ellularAutomaton|ensoredDistribution|ensoring|enterArray|enterDot|enteredInterval|entralFeature|entralMoment|entralMomentGeneratingFunction|epstrogram|epstrogramArray|epstrumArray|hampernowneNumber|hanVeseBinarize|haracterCounts|haracterName|haracterRange|haracteristicFunction|haracteristicPolynomial|haracters|hebyshev1FilterModel|hebyshev2FilterModel|hebyshevT|hebyshevU|heck|heckAbort|heckArguments|heckbox|heckboxBar|hemicalData|hessboardDistance|hiDistribution|hiSquareDistribution|hineseRemainder|hoiceButtons|hoiceDialog|holeskyDecomposition|hop|hromaticPolynomial|hromaticityPlot|hromaticityPlot3D|ircle|ircleDot|ircleMinus|irclePlus|irclePoints|ircleThrough|ircleTimes|irculantGraph|ircularArcThrough|ircularOrthogonalMatrixDistribution|ircularQuaternionMatrixDistribution|ircularRealMatrixDistribution|ircularSymplecticMatrixDistribution|ircularUnitaryMatrixDistribution|ircumsphere|ityData|lassifierFunction|lassifierMeasurements|lassifierMeasurementsObject|lassify|lear|learAll|learAttributes|learCookies|learPermissions|learSystemCache|lebschGordan|lickPane|lickToCopy|lip|lock|lockGauge|lose|loseKernels|losenessCentrality|losing|loudAccountData|loudConnect|loudDeploy|loudDirectory|loudDisconnect|loudEvaluate|loudExport|loudFunction|loudGet|loudImport|loudLoggingData|loudObject|loudObjects|loudPublish|loudPut|loudSave|loudShare|loudSubmit|loudSymbol|loudUnshare|lusterClassify|lusteringComponents|lusteringMeasurements|lusteringTree|oefficient|oefficientArrays|oefficientList|oefficientRules|oifletWavelet|ollect|ollinearPoints|olon|olorBalance|olorCombine|olorConvert|olorData|olorDataFunction|olorDetect|olorDistance|olorNegate|olorProfileData|olorQ|olorQuantize|olorReplace|olorSeparate|olorSetter|olorSlider|olorToneMapping|olorize|olorsNear|olumn|ometData|ommonName|ommonUnits|ommonest|ommonestFilter|ommunityGraphPlot|ompanyData|ompatibleUnitQ|ompile|ompiledFunction|omplement|ompleteGraph|ompleteGraphQ|ompleteIntegral|ompleteKaryTree|omplex|omplexArrayPlot|omplexContourPlot|omplexExpand|omplexListPlot|omplexPlot|omplexPlot3D|omplexRegionPlot|omplexStreamPlot|omplexVectorPlot|omponentMeasurements|omposeList|omposeSeries|ompositeQ|omposition|ompoundElement|ompoundExpression|ompoundPoissonDistribution|ompoundPoissonProcess|ompoundRenewalProcess|ompress|oncaveHullMesh|ondition|onditionalExpression|onditioned|one|onfirm|onfirmAssert|onfirmBy|onfirmMatch|onformAudio|onformImages|ongruent|onicGradientFilling|onicHullRegion|onicOptimization|onjugate|onjugateTranspose|onjunction|onnectLibraryCallbackFunction|onnectedComponents|onnectedGraphComponents|onnectedGraphQ|onnectedMeshComponents|onnesWindow|onoverTest|onservativeConvectionPDETerm|onstantArray|onstantImage|onstantRegionQ|onstellationData|onstruct|ontainsAll|ontainsAny|ontainsExactly|ontainsNone|ontainsOnly|ontext|ontextToFileName|ontexts|ontinue|ontinuedFraction|ontinuedFractionK|ontinuousMarkovProcess|ontinuousTask|ontinuousTimeModelQ|ontinuousWaveletData|ontinuousWaveletTransform|ontourDetect|ontourPlot|ontourPlot3D|ontraharmonicMean|ontrol|ontrolActive|ontrollabilityGramian|ontrollabilityMatrix|ontrollableDecomposition|ontrollableModelQ|ontrollerInformation|ontrollerManipulate|ontrollerState|onvectionPDETerm|onvergents|onvexHullMesh|onvexHullRegion|onvexOptimization|onvexPolygonQ|onvexPolyhedronQ|onvexRegionQ|onvolve|onwayGroupCo1|onwayGroupCo2|onwayGroupCo3|oordinateBoundingBox|oordinateBoundingBoxArray|oordinateBounds|oordinateBoundsArray|oordinateChartData|oordinateTransform|oordinateTransformData|oplanarPoints|oprimeQ|oproduct|opulaDistribution|opyDatabin|opyDirectory|opyFile|opyToClipboard|oreNilpotentDecomposition|ornerFilter|orrelation|orrelationDistance|orrelationFunction|orrelationTest|os|osIntegral|osh|oshIntegral|osineDistance|osineWindow|ot|oth|oulombF|oulombG|oulombH1|oulombH2|ount|ountDistinct|ountDistinctBy|ountRoots|ountryData|ounts|ountsBy|ovariance|ovarianceFunction|oxIngersollRossProcess|oxModel|oxModelFit|oxianDistribution|ramerVonMisesTest|reateArchive|reateDatabin|reateDialog|reateDirectory|reateDocument|reateFile|reateManagedLibraryExpression|reateNotebook|reatePacletArchive|reatePalette|reatePermissionsGroup|reateUUID|reateWindow|riticalSection|riticalityFailureImportance|riticalitySuccessImportance|ross|rossMatrix|rossingCount|rossingDetect|rossingPolygon|sc|sch|ube|ubeRoot|uboid|umulant|umulantGeneratingFunction|umulativeFeatureImpactPlot|up|upCap|url|urrencyConvert|urrentDate|urrentImage|urrentValue|urvatureFlowFilter|ycleGraph|ycleIndexPolynomial|ycles|yclicGroup|yclotomic|ylinder|ylindricalDecomposition|ylindricalDecompositionFunction))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:D(?:|Eigensystem|Eigenvalues|GaussianWavelet|MSList|MSString|Solve|SolveValue|agumDistribution|amData|amerauLevenshteinDistance|arker|ashing|ataDistribution|atabin|atabinAdd|atabinUpload|atabins|ataset|ateBounds|ateDifference|ateHistogram|ateList|ateListLogPlot|ateListPlot|ateListStepPlot|ateObject|ateObjectQ|ateOverlapsQ|atePattern|atePlus|ateRange|ateScale|ateSelect|ateString|ateValue|ateWithinQ|ated|atedUnit|aubechiesWavelet|avisDistribution|awsonF|ayCount|ayHemisphere|ayMatchQ|ayName|ayNightTerminator|ayPlus|ayRange|ayRound|aylightQ|eBruijnGraph|eBruijnSequence|ecapitalize|ecimalForm|eclarePackage|ecompose|ecrement|ecrypt|edekindEta|eepSpaceProbeData|efault|efaultButton|efaultValues|efer|efineInputStreamMethod|efineOutputStreamMethod|efineResourceFunction|efinition|egreeCentrality|egreeGraphDistribution|el|elaunayMesh|elayed|elete|eleteAdjacentDuplicates|eleteAnomalies|eleteBorderComponents|eleteCases|eleteDirectory|eleteDuplicates|eleteDuplicatesBy|eleteFile|eleteMissing|eleteObject|eletePermissionsKey|eleteSmallComponents|eleteStopwords|elimitedSequence|endrogram|enominator|ensityHistogram|ensityPlot|ensityPlot3D|eploy|epth|epthFirstScan|erivative|erivativeFilter|erivativePDETerm|esignMatrix|et|eviceClose|eviceConfigure|eviceExecute|eviceExecuteAsynchronous|eviceObject|eviceOpen|eviceRead|eviceReadBuffer|eviceReadLatest|eviceReadList|eviceReadTimeSeries|eviceStreams|eviceWrite|eviceWriteBuffer|evices|iagonal|iagonalMatrix|iagonalMatrixQ|iagonalizableMatrixQ|ialog|ialogInput|ialogNotebook|ialogReturn|iamond|iamondMatrix|iceDissimilarity|ictionaryLookup|ictionaryWordQ|ifferenceDelta|ifferenceQuotient|ifferenceRoot|ifferenceRootReduce|ifferences|ifferentialD|ifferentialRoot|ifferentialRootReduce|ifferentiatorFilter|iffusionPDETerm|igitCount|igitQ|ihedralAngle|ihedralGroup|ilation|imensionReduce|imensionReducerFunction|imensionReduction|imensionalCombinations|imensionalMeshComponents|imensions|iracComb|iracDelta|irectedEdge|irectedGraph|irectedGraphQ|irectedInfinity|irectionalLight|irective|irectory|irectoryName|irectoryQ|irectoryStack|irichletBeta|irichletCharacter|irichletCondition|irichletConvolve|irichletDistribution|irichletEta|irichletL|irichletLambda|irichletTransform|irichletWindow|iscreteAsymptotic|iscreteChirpZTransform|iscreteConvolve|iscreteDelta|iscreteHadamardTransform|iscreteIndicator|iscreteInputOutputModel|iscreteLQEstimatorGains|iscreteLQRegulatorGains|iscreteLimit|iscreteLyapunovSolve|iscreteMarkovProcess|iscreteMaxLimit|iscreteMinLimit|iscretePlot|iscretePlot3D|iscreteRatio|iscreteRiccatiSolve|iscreteShift|iscreteTimeModelQ|iscreteUniformDistribution|iscreteWaveletData|iscreteWaveletPacketTransform|iscreteWaveletTransform|iscretizeGraphics|iscretizeRegion|iscriminant|isjointQ|isjunction|isk|iskMatrix|iskSegment|ispatch|isplayEndPacket|isplayForm|isplayPacket|istanceMatrix|istanceTransform|istribute|istributeDefinitions|istributed|istributionChart|istributionFitTest|istributionParameterAssumptions|istributionParameterQ|iv|ivide|ivideBy|ivideSides|ivisible|ivisorSigma|ivisorSum|ivisors|o|ocumentGenerator|ocumentGeneratorInformation|ocumentGenerators|ocumentNotebook|odecahedron|ominantColors|ominatorTreeGraph|ominatorVertexList|ot|otEqual|oubleBracketingBar|oubleDownArrow|oubleLeftArrow|oubleLeftRightArrow|oubleLeftTee|oubleLongLeftArrow|oubleLongLeftRightArrow|oubleLongRightArrow|oubleRightArrow|oubleRightTee|oubleUpArrow|oubleUpDownArrow|oubleVerticalBar|ownArrow|ownArrowBar|ownArrowUpArrow|ownLeftRightVector|ownLeftTeeVector|ownLeftVector|ownLeftVectorBar|ownRightTeeVector|ownRightVector|ownRightVectorBar|ownTee|ownTeeArrow|ownValues|ownsample|razinInverse|rop|ropShadowing|t|ualPlanarGraph|ualPolyhedron|ualSystemsModel|umpSave|uplicateFreeQ|uration|ynamic|ynamicGeoGraphics|ynamicModule|ynamicSetting|ynamicWrapper))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:E(?:arthImpactData|arthquakeData|ccentricityCentrality|choEvaluation|choFunction|choLabel|dgeAdd|dgeBetweennessCentrality|dgeChromaticNumber|dgeConnectivity|dgeContract|dgeCount|dgeCoverQ|dgeCycleMatrix|dgeDelete|dgeDetect|dgeForm|dgeIndex|dgeList|dgeQ|dgeRules|dgeTaggedGraph|dgeTaggedGraphQ|dgeTags|dgeTransitiveGraphQ|dgeWeightedGraphQ|ditDistance|ffectiveInterest|igensystem|igenvalues|igenvectorCentrality|igenvectors|lement|lementData|liminate|llipsoid|llipticE|llipticExp|llipticExpPrime|llipticF|llipticFilterModel|llipticK|llipticLog|llipticNomeQ|llipticPi|llipticTheta|llipticThetaPrime|mbedCode|mbeddedHTML|mbeddedService|mitSound|mpiricalDistribution|mptyGraphQ|mptyRegion|nclose|ncode|ncrypt|ncryptedObject|nd|ndDialogPacket|ndPackage|ngineeringForm|nterExpressionPacket|nterTextPacket|ntity|ntityClass|ntityClassList|ntityCopies|ntityGroup|ntityInstance|ntityList|ntityPrefetch|ntityProperties|ntityProperty|ntityPropertyClass|ntityRegister|ntityStores|ntityTypeName|ntityUnregister|ntityValue|ntropy|ntropyFilter|nvironment|qual|qualTilde|qualTo|quilibrium|quirippleFilterKernel|quivalent|rf|rfc|rfi|rlangB|rlangC|rlangDistribution|rosion|rrorBox|stimatedBackground|stimatedDistribution|stimatedPointNormals|stimatedProcess|stimatorGains|stimatorRegulator|uclideanDistance|ulerAngles|ulerCharacteristic|ulerE|ulerMatrix|ulerPhi|ulerianGraphQ|valuate|valuatePacket|valuationBox|valuationCell|valuationData|valuationNotebook|valuationObject|venQ|ventData|ventHandler|ventSeries|xactBlackmanWindow|xactNumberQ|xampleData|xcept|xists|xoplanetData|xp|xpGammaDistribution|xpIntegralE|xpIntegralEi|xpToTrig|xpand|xpandAll|xpandDenominator|xpandFileName|xpandNumerator|xpectation|xponent|xponentialDistribution|xponentialGeneratingFunction|xponentialMovingAverage|xponentialPowerDistribution|xport|xportByteArray|xportForm|xportString|xpressionCell|xpressionGraph|xtendedGCD|xternalBundle|xtract|xtractArchive|xtractPacletArchive|xtremeValueDistribution))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:F(?:ARIMAProcess|RatioDistribution|aceAlign|aceForm|acialFeatures|actor|actorInteger|actorList|actorSquareFree|actorSquareFreeList|actorTerms|actorTermsList|actorial|actorial2|actorialMoment|actorialMomentGeneratingFunction|actorialPower|ailure|ailureDistribution|ailureQ|areySequence|eatureImpactPlot|eatureNearest|eatureSpacePlot|eatureSpacePlot3D|eatureValueDependencyPlot|eatureValueImpactPlot|eedbackLinearize|etalGrowthData|ibonacci|ibonorial|ile|ileBaseName|ileByteCount|ileDate|ileExistsQ|ileExtension|ileFormat|ileFormatQ|ileHash|ileNameDepth|ileNameDrop|ileNameJoin|ileNameSetter|ileNameSplit|ileNameTake|ileNames|ilePrint|ileSize|ileSystemMap|ileSystemScan|ileTemplate|ileTemplateApply|ileType|illedCurve|illedTorus|illingTransform|ilterRules|inancialBond|inancialData|inancialDerivative|inancialIndicator|ind|indAnomalies|indArgMax|indArgMin|indClique|indClusters|indCookies|indCurvePath|indCycle|indDevices|indDistribution|indDistributionParameters|indDivisions|indEdgeColoring|indEdgeCover|indEdgeCut|indEdgeIndependentPaths|indEulerianCycle|indFaces|indFile|indFit|indFormula|indFundamentalCycles|indGeneratingFunction|indGeoLocation|indGeometricTransform|indGraphCommunities|indGraphIsomorphism|indGraphPartition|indHamiltonianCycle|indHamiltonianPath|indHiddenMarkovStates|indIndependentEdgeSet|indIndependentVertexSet|indInstance|indIntegerNullVector|indIsomorphicSubgraph|indKClan|indKClique|indKClub|indKPlex|indLibrary|indLinearRecurrence|indList|indMatchingColor|indMaxValue|indMaximum|indMaximumCut|indMaximumFlow|indMeshDefects|indMinValue|indMinimum|indMinimumCostFlow|indMinimumCut|indPath|indPeaks|indPermutation|indPlanarColoring|indPostmanTour|indProcessParameters|indRegionTransform|indRepeat|indRoot|indSequenceFunction|indShortestPath|indShortestTour|indSpanningTree|indSubgraphIsomorphism|indThreshold|indTransientRepeat|indVertexColoring|indVertexCover|indVertexCut|indVertexIndependentPaths|inishDynamic|initeAbelianGroupCount|initeGroupCount|initeGroupData|irst|irstCase|irstPassageTimeDistribution|irstPosition|ischerGroupFi22|ischerGroupFi23|ischerGroupFi24Prime|isherHypergeometricDistribution|isherRatioTest|isherZDistribution|it|ittedModel|ixedOrder|ixedPoint|ixedPointList|latShading|latTopWindow|latten|lattenAt|lightData|lipView|loor|lowPolynomial|old|oldList|oldPair|oldPairList|oldWhile|oldWhileList|or|orAll|ormBox|ormFunction|ormObject|ormPage|ormat|ormulaData|ormulaLookup|ortranForm|ourier|ourierCoefficient|ourierCosCoefficient|ourierCosSeries|ourierCosTransform|ourierDCT|ourierDCTFilter|ourierDCTMatrix|ourierDST|ourierDSTMatrix|ourierMatrix|ourierSequenceTransform|ourierSeries|ourierSinCoefficient|ourierSinSeries|ourierSinTransform|ourierTransform|ourierTrigSeries|oxH|ractionBox|ractionalBrownianMotionProcess|ractionalD|ractionalGaussianNoiseProcess|ractionalPart|rameBox|ramed|rechetDistribution|reeQ|renetSerretSystem|requencySamplingFilterKernel|resnelC|resnelF|resnelG|resnelS|robeniusNumber|robeniusSolve|romAbsoluteTime|romCharacterCode|romCoefficientRules|romContinuedFraction|romDMS|romDateString|romDigits|romEntity|romJulianDate|romLetterNumber|romPolarCoordinates|romRomanNumeral|romSphericalCoordinates|romUnixTime|rontEndExecute|rontEndToken|rontEndTokenExecute|ullDefinition|ullForm|ullGraphics|ullInformationOutputRegulator|ullRegion|ullSimplify|unction|unctionAnalytic|unctionBijective|unctionContinuous|unctionConvexity|unctionDiscontinuities|unctionDomain|unctionExpand|unctionInjective|unctionInterpolation|unctionMeromorphic|unctionMonotonicity|unctionPeriod|unctionRange|unctionSign|unctionSingularities|unctionSurjective|ussellVeselyImportance))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:G(?:ARCHProcess|CD|aborFilter|aborMatrix|aborWavelet|ainMargins|ainPhaseMargins|alaxyData|amma|ammaDistribution|ammaRegularized|ather|atherBy|aussianFilter|aussianMatrix|aussianOrthogonalMatrixDistribution|aussianSymplecticMatrixDistribution|aussianUnitaryMatrixDistribution|aussianWindow|egenbauerC|eneralizedLinearModelFit|enerateAsymmetricKeyPair|enerateDocument|enerateHTTPResponse|enerateSymmetricKey|eneratingFunction|enericCylindricalDecomposition|enomeData|enomeLookup|eoAntipode|eoArea|eoBoundary|eoBoundingBox|eoBounds|eoBoundsRegion|eoBoundsRegionBoundary|eoBubbleChart|eoCircle|eoContourPlot|eoDensityPlot|eoDestination|eoDirection|eoDisk|eoDisplacement|eoDistance|eoDistanceList|eoElevationData|eoEntities|eoGraphPlot|eoGraphics|eoGridDirectionDifference|eoGridPosition|eoGridUnitArea|eoGridUnitDistance|eoGridVector|eoGroup|eoHemisphere|eoHemisphereBoundary|eoHistogram|eoIdentify|eoImage|eoLength|eoListPlot|eoMarker|eoNearest|eoPath|eoPolygon|eoPosition|eoPositionENU|eoPositionXYZ|eoProjectionData|eoRegionValuePlot|eoSmoothHistogram|eoStreamPlot|eoStyling|eoVariant|eoVector|eoVectorENU|eoVectorPlot|eoVectorXYZ|eoVisibleRegion|eoVisibleRegionBoundary|eoWithinQ|eodesicClosing|eodesicDilation|eodesicErosion|eodesicOpening|eodesicPolyhedron|eodesyData|eogravityModelData|eologicalPeriodData|eomagneticModelData|eometricBrownianMotionProcess|eometricDistribution|eometricMean|eometricMeanFilter|eometricOptimization|eometricTransformation|estureHandler|et|etEnvironment|lobalClusteringCoefficient|low|ompertzMakehamDistribution|oochShading|oodmanKruskalGamma|oodmanKruskalGammaTest|oto|ouraudShading|rad|radientFilter|radientFittedMesh|radientOrientationFilter|rammarApply|rammarRules|rammarToken|raph|raph3D|raphAssortativity|raphAutomorphismGroup|raphCenter|raphComplement|raphData|raphDensity|raphDiameter|raphDifference|raphDisjointUnion|raphDistance|raphDistanceMatrix|raphEmbedding|raphHub|raphIntersection|raphJoin|raphLinkEfficiency|raphPeriphery|raphPlot|raphPlot3D|raphPower|raphProduct|raphPropertyDistribution|raphQ|raphRadius|raphReciprocity|raphSum|raphUnion|raphics|raphics3D|raphicsColumn|raphicsComplex|raphicsGrid|raphicsGroup|raphicsRow|rayLevel|reater|reaterEqual|reaterEqualLess|reaterEqualThan|reaterFullEqual|reaterGreater|reaterLess|reaterSlantEqual|reaterThan|reaterTilde|reenFunction|rid|ridBox|ridGraph|roebnerBasis|roupBy|roupCentralizer|roupElementFromWord|roupElementPosition|roupElementQ|roupElementToWord|roupElements|roupGenerators|roupMultiplicationTable|roupOrbits|roupOrder|roupSetwiseStabilizer|roupStabilizer|roupStabilizerChain|roupings|rowCutComponents|udermannian|uidedFilter|umbelDistribution))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:H(?:ITSCentrality|TTPErrorResponse|TTPRedirect|TTPRequest|TTPRequestData|TTPResponse|aarWavelet|adamardMatrix|alfLine|alfNormalDistribution|alfPlane|alfSpace|alftoneShading|amiltonianGraphQ|ammingDistance|ammingWindow|ankelH1|ankelH2|ankelMatrix|ankelTransform|annPoissonWindow|annWindow|aradaNortonGroupHN|araryGraph|armonicMean|armonicMeanFilter|armonicNumber|ash|atchFilling|atchShading|aversine|azardFunction|ead|eatFluxValue|eatInsulationValue|eatOutflowValue|eatRadiationValue|eatSymmetryValue|eatTemperatureCondition|eatTransferPDEComponent|eatTransferValue|eavisideLambda|eavisidePi|eavisideTheta|eldGroupHe|elmholtzPDEComponent|ermiteDecomposition|ermiteH|ermitian|ermitianMatrixQ|essenbergDecomposition|eunB|eunBPrime|eunC|eunCPrime|eunD|eunDPrime|eunG|eunGPrime|eunT|eunTPrime|exahedron|iddenMarkovProcess|ighlightGraph|ighlightImage|ighlightMesh|ighlighted|ighpassFilter|igmanSimsGroupHS|ilbertCurve|ilbertFilter|ilbertMatrix|istogram|istogram3D|istogramDistribution|istogramList|istogramTransform|istogramTransformInterpolation|istoricalPeriodData|itMissTransform|jorthDistribution|odgeDual|oeffdingD|oeffdingDTest|old|oldComplete|oldForm|oldPattern|orizontalGauge|ornerForm|ostLookup|otellingTSquareDistribution|oytDistribution|ue|umanGrowthData|umpDownHump|umpEqual|urwitzLerchPhi|urwitzZeta|yperbolicDistribution|ypercubeGraph|yperexponentialDistribution|yperfactorial|ypergeometric0F1|ypergeometric0F1Regularized|ypergeometric1F1|ypergeometric1F1Regularized|ypergeometric2F1|ypergeometric2F1Regularized|ypergeometricDistribution|ypergeometricPFQ|ypergeometricPFQRegularized|ypergeometricU|yperlink|yperplane|ypoexponentialDistribution|ypothesisTestData))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:I(?:PAddress|conData|conize|cosahedron|dentity|dentityMatrix|f|fCompiled|gnoringInactive|m|mage|mage3D|mage3DProjection|mage3DSlices|mageAccumulate|mageAdd|mageAdjust|mageAlign|mageApply|mageApplyIndexed|mageAspectRatio|mageAssemble|mageCapture|mageChannels|mageClip|mageCollage|mageColorSpace|mageCompose|mageConvolve|mageCooccurrence|mageCorners|mageCorrelate|mageCorrespondingPoints|mageCrop|mageData|mageDeconvolve|mageDemosaic|mageDifference|mageDimensions|mageDisplacements|mageDistance|mageEffect|mageExposureCombine|mageFeatureTrack|mageFileApply|mageFileFilter|mageFileScan|mageFilter|mageFocusCombine|mageForestingComponents|mageForwardTransformation|mageHistogram|mageIdentify|mageInstanceQ|mageKeypoints|mageLevels|mageLines|mageMarker|mageMeasurements|mageMesh|mageMultiply|magePad|magePartition|magePeriodogram|magePerspectiveTransformation|mageQ|mageRecolor|mageReflect|mageResize|mageRestyle|mageRotate|mageSaliencyFilter|mageScaled|mageScan|mageSubtract|mageTake|mageTransformation|mageTrim|mageType|mageValue|mageValuePositions|mageVectorscopePlot|mageWaveformPlot|mplicitD|mplicitRegion|mplies|mport|mportByteArray|mportString|mprovementImportance|nactivate|nactive|ncidenceGraph|ncidenceList|ncidenceMatrix|ncrement|ndefiniteMatrixQ|ndependenceTest|ndependentEdgeSetQ|ndependentPhysicalQuantity|ndependentUnit|ndependentUnitDimension|ndependentVertexSetQ|ndexEdgeTaggedGraph|ndexGraph|ndexed|nexactNumberQ|nfiniteLine|nfiniteLineThrough|nfinitePlane|nfix|nflationAdjust|nformation|nhomogeneousPoissonProcess|nner|nnerPolygon|nnerPolyhedron|npaint|nput|nputField|nputForm|nputNamePacket|nputNotebook|nputPacket|nputStream|nputString|nputStringPacket|nsert|nsertLinebreaks|nset|nsphere|nstall|nstallService|ntegerDigits|ntegerExponent|ntegerLength|ntegerName|ntegerPart|ntegerPartitions|ntegerQ|ntegerReverse|ntegerString|ntegrate|nteractiveTradingChart|nternallyBalancedDecomposition|nterpolatingFunction|nterpolatingPolynomial|nterpolation|nterpretation|nterpretationBox|nterpreter|nterquartileRange|nterrupt|ntersectingQ|ntersection|nterval|ntervalIntersection|ntervalMemberQ|ntervalSlider|ntervalUnion|nverse|nverseBetaRegularized|nverseBilateralLaplaceTransform|nverseBilateralZTransform|nverseCDF|nverseChiSquareDistribution|nverseContinuousWaveletTransform|nverseDistanceTransform|nverseEllipticNomeQ|nverseErf|nverseErfc|nverseFourier|nverseFourierCosTransform|nverseFourierSequenceTransform|nverseFourierSinTransform|nverseFourierTransform|nverseFunction|nverseGammaDistribution|nverseGammaRegularized|nverseGaussianDistribution|nverseGudermannian|nverseHankelTransform|nverseHaversine|nverseJacobiCD|nverseJacobiCN|nverseJacobiCS|nverseJacobiDC|nverseJacobiDN|nverseJacobiDS|nverseJacobiNC|nverseJacobiND|nverseJacobiNS|nverseJacobiSC|nverseJacobiSD|nverseJacobiSN|nverseLaplaceTransform|nverseMellinTransform|nversePermutation|nverseRadon|nverseRadonTransform|nverseSeries|nverseShortTimeFourier|nverseSpectrogram|nverseSurvivalFunction|nverseTransformedRegion|nverseWaveletTransform|nverseWeierstrassP|nverseWishartMatrixDistribution|nverseZTransform|nvisible|rreduciblePolynomialQ|slandData|solatingInterval|somorphicGraphQ|somorphicSubgraphQ|sotopeData|tem|toProcess))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:J(?:accardDissimilarity|acobiAmplitude|acobiCD|acobiCN|acobiCS|acobiDC|acobiDN|acobiDS|acobiEpsilon|acobiNC|acobiND|acobiNS|acobiP|acobiSC|acobiSD|acobiSN|acobiSymbol|acobiZN|acobiZeta|ankoGroupJ1|ankoGroupJ2|ankoGroupJ3|ankoGroupJ4|arqueBeraALMTest|ohnsonDistribution|oin|oinAcross|oinForm|oinedCurve|ordanDecomposition|ordanModelDecomposition|uliaSetBoettcher|uliaSetIterationCount|uliaSetPlot|uliaSetPoints|ulianDate))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:K(?:CoreComponents|Distribution|EdgeConnectedComponents|EdgeConnectedGraphQ|VertexConnectedComponents|VertexConnectedGraphQ|agiChart|aiserBesselWindow|aiserWindow|almanEstimator|almanFilter|arhunenLoeveDecomposition|aryTree|atzCentrality|elvinBei|elvinBer|elvinKei|elvinKer|endallTau|endallTauTest|ernelMixtureDistribution|ernelObject|ernels|ey|eyComplement|eyDrop|eyDropFrom|eyExistsQ|eyFreeQ|eyIntersection|eyMap|eyMemberQ|eySelect|eySort|eySortBy|eyTake|eyUnion|eyValueMap|eyValuePattern|eys|illProcess|irchhoffGraph|irchhoffMatrix|leinInvariantJ|napsackSolve|nightTourGraph|notData|nownUnitQ|ochCurve|olmogorovSmirnovTest|roneckerDelta|roneckerModelDecomposition|roneckerProduct|roneckerSymbol|uiperTest|umaraswamyDistribution|urtosis|uwaharaFilter))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:L(?:ABColor|CHColor|CM|QEstimatorGains|QGRegulator|QOutputRegulatorGains|QRegulatorGains|UDecomposition|UVColor|abel|abeled|aguerreL|akeData|ambdaComponents|ameC|ameCPrime|ameEigenvalueA|ameEigenvalueB|ameS|ameSPrime|aminaData|anczosWindow|andauDistribution|anguageData|anguageIdentify|aplaceDistribution|aplaceTransform|aplacian|aplacianFilter|aplacianGaussianFilter|aplacianPDETerm|ast|atitude|atitudeLongitude|atticeData|atticeReduce|aunchKernels|ayeredGraphPlot|ayeredGraphPlot3D|eafCount|eapVariant|eapYearQ|earnDistribution|earnedDistribution|eastSquares|eastSquaresFilterKernel|eftArrow|eftArrowBar|eftArrowRightArrow|eftDownTeeVector|eftDownVector|eftDownVectorBar|eftRightArrow|eftRightVector|eftTee|eftTeeArrow|eftTeeVector|eftTriangle|eftTriangleBar|eftTriangleEqual|eftUpDownVector|eftUpTeeVector|eftUpVector|eftUpVectorBar|eftVector|eftVectorBar|egended|egendreP|egendreQ|ength|engthWhile|erchPhi|ess|essEqual|essEqualGreater|essEqualThan|essFullEqual|essGreater|essLess|essSlantEqual|essThan|essTilde|etterCounts|etterNumber|etterQ|evel|eveneTest|eviCivitaTensor|evyDistribution|exicographicOrder|exicographicSort|ibraryDataType|ibraryFunction|ibraryFunctionError|ibraryFunctionInformation|ibraryFunctionLoad|ibraryFunctionUnload|ibraryLoad|ibraryUnload|iftingFilterData|iftingWaveletTransform|ighter|ikelihood|imit|indleyDistribution|ine|ineBreakChart|ineGraph|ineIntegralConvolutionPlot|ineLegend|inearFractionalOptimization|inearFractionalTransform|inearGradientFilling|inearGradientImage|inearModelFit|inearOptimization|inearRecurrence|inearSolve|inearSolveFunction|inearizingTransformationData|inkActivate|inkClose|inkConnect|inkCreate|inkInterrupt|inkLaunch|inkObject|inkPatterns|inkRankCentrality|inkRead|inkReadyQ|inkWrite|inks|iouvilleLambda|ist|istAnimate|istContourPlot|istContourPlot3D|istConvolve|istCorrelate|istCurvePathPlot|istDeconvolve|istDensityPlot|istDensityPlot3D|istFourierSequenceTransform|istInterpolation|istLineIntegralConvolutionPlot|istLinePlot|istLinePlot3D|istLogLinearPlot|istLogLogPlot|istLogPlot|istPicker|istPickerBox|istPlay|istPlot|istPlot3D|istPointPlot3D|istPolarPlot|istQ|istSliceContourPlot3D|istSliceDensityPlot3D|istSliceVectorPlot3D|istStepPlot|istStreamDensityPlot|istStreamPlot|istStreamPlot3D|istSurfacePlot3D|istVectorDensityPlot|istVectorDisplacementPlot|istVectorDisplacementPlot3D|istVectorPlot|istVectorPlot3D|istZTransform|ocalAdaptiveBinarize|ocalCache|ocalClusteringCoefficient|ocalEvaluate|ocalObject|ocalObjects|ocalSubmit|ocalSymbol|ocalTime|ocalTimeZone|ocationEquivalenceTest|ocationTest|ocator|ocatorPane|og|og10|og2|ogBarnesG|ogGamma|ogGammaDistribution|ogIntegral|ogLikelihood|ogLinearPlot|ogLogPlot|ogLogisticDistribution|ogMultinormalDistribution|ogNormalDistribution|ogPlot|ogRankTest|ogSeriesDistribution|ogicalExpand|ogisticDistribution|ogisticSigmoid|ogitModelFit|ongLeftArrow|ongLeftRightArrow|ongRightArrow|ongest|ongestCommonSequence|ongestCommonSequencePositions|ongestCommonSubsequence|ongestCommonSubsequencePositions|ongestOrderedSequence|ongitude|ookup|oopFreeGraphQ|owerCaseQ|owerLeftArrow|owerRightArrow|owerTriangularMatrix|owerTriangularMatrixQ|owerTriangularize|owpassFilter|ucasL|uccioSamiComponents|unarEclipse|yapunovSolve|yonsGroupLy))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:M(?:AProcess|achineNumberQ|agnify|ailReceiverFunction|ajority|akeBoxes|akeExpression|anagedLibraryExpressionID|anagedLibraryExpressionQ|andelbrotSetBoettcher|andelbrotSetDistance|andelbrotSetIterationCount|andelbrotSetMemberQ|andelbrotSetPlot|angoldtLambda|anhattanDistance|anipulate|anipulator|annWhitneyTest|annedSpaceMissionData|antissaExponent|ap|apAll|apApply|apAt|apIndexed|apThread|archenkoPasturDistribution|arcumQ|ardiaCombinedTest|ardiaKurtosisTest|ardiaSkewnessTest|arginalDistribution|arkovProcessProperties|assConcentrationCondition|assFluxValue|assImpermeableBoundaryValue|assOutflowValue|assSymmetryValue|assTransferValue|assTransportPDEComponent|atchQ|atchingDissimilarity|aterialShading|athMLForm|athematicalFunctionData|athieuC|athieuCPrime|athieuCharacteristicA|athieuCharacteristicB|athieuCharacteristicExponent|athieuGroupM11|athieuGroupM12|athieuGroupM22|athieuGroupM23|athieuGroupM24|athieuS|athieuSPrime|atrices|atrixExp|atrixForm|atrixFunction|atrixLog|atrixNormalDistribution|atrixPlot|atrixPower|atrixPropertyDistribution|atrixQ|atrixRank|atrixTDistribution|ax|axDate|axDetect|axFilter|axLimit|axMemoryUsed|axStableDistribution|axValue|aximalBy|aximize|axwellDistribution|cLaughlinGroupMcL|ean|eanClusteringCoefficient|eanDegreeConnectivity|eanDeviation|eanFilter|eanGraphDistance|eanNeighborDegree|eanShift|eanShiftFilter|edian|edianDeviation|edianFilter|edicalTestData|eijerG|eijerGReduce|eixnerDistribution|ellinConvolve|ellinTransform|emberQ|emoryAvailable|emoryConstrained|emoryInUse|engerMesh|enuPacket|enuView|erge|ersennePrimeExponent|ersennePrimeExponentQ|eshCellCount|eshCellIndex|eshCells|eshConnectivityGraph|eshCoordinates|eshPrimitives|eshRegion|eshRegionQ|essage|essageDialog|essageList|essageName|essagePacket|essages|eteorShowerData|exicanHatWavelet|eyerWavelet|in|inDate|inDetect|inFilter|inLimit|inMax|inStableDistribution|inValue|ineralData|inimalBy|inimalPolynomial|inimalStateSpaceModel|inimize|inimumTimeIncrement|inkowskiQuestionMark|inorPlanetData|inors|inus|inusPlus|issing|issingQ|ittagLefflerE|ixedFractionParts|ixedGraphQ|ixedMagnitude|ixedRadix|ixedRadixQuantity|ixedUnit|ixtureDistribution|od|odelPredictiveController|odularInverse|odularLambda|odule|oebiusMu|oment|omentConvert|omentEvaluate|omentGeneratingFunction|omentOfInertia|onitor|onomialList|onsterGroupM|oonPhase|oonPosition|orletWavelet|orphologicalBinarize|orphologicalBranchPoints|orphologicalComponents|orphologicalEulerNumber|orphologicalGraph|orphologicalPerimeter|orphologicalTransform|ortalityData|ost|ountainData|ouseAnnotation|ouseAppearance|ousePosition|ouseover|ovieData|ovingAverage|ovingMap|ovingMedian|oyalDistribution|ulticolumn|ultigraphQ|ultinomial|ultinomialDistribution|ultinormalDistribution|ultiplicativeOrder|ultiplySides|ultivariateHypergeometricDistribution|ultivariatePoissonDistribution|ultivariateTDistribution))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:N(?:|ArgMax|ArgMin|Cache|CaputoD|DEigensystem|DEigenvalues|DSolve|DSolveValue|Expectation|FractionalD|Integrate|MaxValue|Maximize|MinValue|Minimize|Probability|Product|Roots|Solve|SolveValues|Sum|akagamiDistribution|ameQ|ames|and|earest|earestFunction|earestMeshCells|earestNeighborGraph|earestTo|ebulaData|eedlemanWunschSimilarity|eeds|egative|egativeBinomialDistribution|egativeDefiniteMatrixQ|egativeMultinomialDistribution|egativeSemidefiniteMatrixQ|egativelyOrientedPoints|eighborhoodData|eighborhoodGraph|est|estGraph|estList|estWhile|estWhileList|estedGreaterGreater|estedLessLess|eumannValue|evilleThetaC|evilleThetaD|evilleThetaN|evilleThetaS|extCell|extDate|extPrime|icholsPlot|ightHemisphere|onCommutativeMultiply|onNegative|onPositive|oncentralBetaDistribution|oncentralChiSquareDistribution|oncentralFRatioDistribution|oncentralStudentTDistribution|ondimensionalizationTransform|oneTrue|onlinearModelFit|onlinearStateSpaceModel|onlocalMeansFilter|or|orlundB|orm|ormal|ormalDistribution|ormalMatrixQ|ormalize|ormalizedSquaredEuclideanDistance|ot|otCongruent|otCupCap|otDoubleVerticalBar|otElement|otEqualTilde|otExists|otGreater|otGreaterEqual|otGreaterFullEqual|otGreaterGreater|otGreaterLess|otGreaterSlantEqual|otGreaterTilde|otHumpDownHump|otHumpEqual|otLeftTriangle|otLeftTriangleBar|otLeftTriangleEqual|otLess|otLessEqual|otLessFullEqual|otLessGreater|otLessLess|otLessSlantEqual|otLessTilde|otNestedGreaterGreater|otNestedLessLess|otPrecedes|otPrecedesEqual|otPrecedesSlantEqual|otPrecedesTilde|otReverseElement|otRightTriangle|otRightTriangleBar|otRightTriangleEqual|otSquareSubset|otSquareSubsetEqual|otSquareSuperset|otSquareSupersetEqual|otSubset|otSubsetEqual|otSucceeds|otSucceedsEqual|otSucceedsSlantEqual|otSucceedsTilde|otSuperset|otSupersetEqual|otTilde|otTildeEqual|otTildeFullEqual|otTildeTilde|otVerticalBar|otebook|otebookApply|otebookClose|otebookDelete|otebookDirectory|otebookEvaluate|otebookFileName|otebookFind|otebookGet|otebookImport|otebookInformation|otebookLocate|otebookObject|otebookOpen|otebookPrint|otebookPut|otebookRead|otebookSave|otebookSelection|otebookTemplate|otebookWrite|otebooks|othing|uclearExplosionData|uclearReactorData|ullSpace|umberCompose|umberDecompose|umberDigit|umberExpand|umberFieldClassNumber|umberFieldDiscriminant|umberFieldFundamentalUnits|umberFieldIntegralBasis|umberFieldNormRepresentatives|umberFieldRegulator|umberFieldRootsOfUnity|umberFieldSignature|umberForm|umberLinePlot|umberQ|umerator|umeratorDenominator|umericQ|umericalOrder|umericalSort|uttallWindow|yquistPlot))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:O(?:|NanGroupON|bservabilityGramian|bservabilityMatrix|bservableDecomposition|bservableModelQ|ceanData|ctahedron|ddQ|ff|ffset|n|nce|pacity|penAppend|penRead|penWrite|pener|penerView|pening|perate|ptimumFlowData|ptionValue|ptional|ptionalElement|ptions|ptionsPattern|r|rder|rderDistribution|rderedQ|rdering|rderingBy|rderlessPatternSequence|rnsteinUhlenbeckProcess|rthogonalMatrixQ|rthogonalize|uter|uterPolygon|uterPolyhedron|utputControllabilityMatrix|utputControllableModelQ|utputForm|utputNamePacket|utputResponse|utputStream|verBar|verDot|verHat|verTilde|verVector|verflow|verlay|verscript|verscriptBox|wenT|wnValues))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:P(?:DF|ERTDistribution|IDTune|acletDataRebuild|acletDirectoryLoad|acletDirectoryUnload|acletDisable|acletEnable|acletFind|acletFindRemote|acletInstall|acletInstallSubmit|acletNewerQ|acletObject|acletSiteObject|acletSiteRegister|acletSiteUnregister|acletSiteUpdate|acletSites|acletUninstall|adLeft|adRight|addedForm|adeApproximant|ageRankCentrality|airedBarChart|airedHistogram|airedSmoothHistogram|airedTTest|airedZTest|aletteNotebook|alindromeQ|ane|aneSelector|anel|arabolicCylinderD|arallelArray|arallelAxisPlot|arallelCombine|arallelDo|arallelEvaluate|arallelKernels|arallelMap|arallelNeeds|arallelProduct|arallelSubmit|arallelSum|arallelTable|arallelTry|arallelepiped|arallelize|arallelogram|arameterMixtureDistribution|arametricConvexOptimization|arametricFunction|arametricNDSolve|arametricNDSolveValue|arametricPlot|arametricPlot3D|arametricRegion|arentBox|arentCell|arentDirectory|arentNotebook|aretoDistribution|aretoPickandsDistribution|arkData|art|artOfSpeech|artialCorrelationFunction|articleAcceleratorData|articleData|artition|artitionsP|artitionsQ|arzenWindow|ascalDistribution|aste|asteButton|athGraph|athGraphQ|attern|atternSequence|atternTest|aulWavelet|auliMatrix|ause|eakDetect|eanoCurve|earsonChiSquareTest|earsonCorrelationTest|earsonDistribution|ercentForm|erfectNumber|erfectNumberQ|erimeter|eriodicBoundaryCondition|eriodogram|eriodogramArray|ermanent|ermissionsGroup|ermissionsGroupMemberQ|ermissionsGroups|ermissionsKey|ermissionsKeys|ermutationCycles|ermutationCyclesQ|ermutationGroup|ermutationLength|ermutationList|ermutationListQ|ermutationMatrix|ermutationMax|ermutationMin|ermutationOrder|ermutationPower|ermutationProduct|ermutationReplace|ermutationSupport|ermutations|ermute|eronaMalikFilter|ersonData|etersenGraph|haseMargins|hongShading|hysicalSystemData|ick|ieChart|ieChart3D|iecewise|iecewiseExpand|illaiTrace|illaiTraceTest|ingTime|ixelValue|ixelValuePositions|laced|laceholder|lanarAngle|lanarFaceList|lanarGraph|lanarGraphQ|lanckRadiationLaw|laneCurveData|lanetData|lanetaryMoonData|lantData|lay|lot|lot3D|luralize|lus|lusMinus|ochhammer|oint|ointFigureChart|ointLegend|ointLight|ointSize|oissonConsulDistribution|oissonDistribution|oissonPDEComponent|oissonProcess|oissonWindow|olarPlot|olyGamma|olyLog|olyaAeppliDistribution|olygon|olygonAngle|olygonCoordinates|olygonDecomposition|olygonalNumber|olyhedron|olyhedronAngle|olyhedronCoordinates|olyhedronData|olyhedronDecomposition|olyhedronGenus|olynomialExpressionQ|olynomialExtendedGCD|olynomialGCD|olynomialLCM|olynomialMod|olynomialQ|olynomialQuotient|olynomialQuotientRemainder|olynomialReduce|olynomialRemainder|olynomialSumOfSquaresList|opupMenu|opupView|opupWindow|osition|ositionIndex|ositionLargest|ositionSmallest|ositive|ositiveDefiniteMatrixQ|ositiveSemidefiniteMatrixQ|ositivelyOrientedPoints|ossibleZeroQ|ostfix|ower|owerDistribution|owerExpand|owerMod|owerModList|owerRange|owerSpectralDensity|owerSymmetricPolynomial|owersRepresentations|reDecrement|reIncrement|recedenceForm|recedes|recedesEqual|recedesSlantEqual|recedesTilde|recision|redict|redictorFunction|redictorMeasurements|redictorMeasurementsObject|reemptProtect|refix|repend|rependTo|reviousCell|reviousDate|riceGraphDistribution|rime|rimeNu|rimeOmega|rimePi|rimePowerQ|rimeQ|rimeZetaP|rimitivePolynomialQ|rimitiveRoot|rimitiveRootList|rincipalComponents|rintTemporary|rintableASCIIQ|rintout3D|rism|rivateKey|robability|robabilityDistribution|robabilityPlot|robabilityScalePlot|robitModelFit|rocessConnection|rocessInformation|rocessObject|rocessParameterAssumptions|rocessParameterQ|rocessStatus|rocesses|roduct|roductDistribution|roductLog|rogressIndicator|rojection|roportion|roportional|rotect|roteinData|runing|seudoInverse|sychrometricPropertyData|ublicKey|ulsarData|ut|utAppend|yramid))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:Q(?:Binomial|Factorial|Gamma|HypergeometricPFQ|Pochhammer|PolyGamma|RDecomposition|nDispersion|uadraticIrrationalQ|uadraticOptimization|uantile|uantilePlot|uantity|uantityArray|uantityDistribution|uantityForm|uantityMagnitude|uantityQ|uantityUnit|uantityVariable|uantityVariableCanonicalUnit|uantityVariableDimensions|uantityVariableIdentifier|uantityVariablePhysicalQuantity|uartileDeviation|uartileSkewness|uartiles|uery|ueueProperties|ueueingNetworkProcess|ueueingProcess|uiet|uietEcho|uotient|uotientRemainder))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:R(?:GBColor|Solve|SolveValue|adialAxisPlot|adialGradientFilling|adialGradientImage|adialityCentrality|adicalBox|adioButton|adioButtonBar|adon|adonTransform|amanujanTau|amanujanTauL|amanujanTauTheta|amanujanTauZ|amp|andomChoice|andomColor|andomComplex|andomDate|andomEntity|andomFunction|andomGeneratorState|andomGeoPosition|andomGraph|andomImage|andomInteger|andomPermutation|andomPoint|andomPolygon|andomPolyhedron|andomPrime|andomReal|andomSample|andomTime|andomVariate|andomWalkProcess|andomWord|ange|angeFilter|ankedMax|ankedMin|arerProbability|aster|aster3D|asterize|ational|ationalExpressionQ|ationalize|atios|awBoxes|awData|ayleighDistribution|e|eIm|eImPlot|eactionPDETerm|ead|eadByteArray|eadLine|eadList|eadString|ealAbs|ealDigits|ealExponent|ealSign|eap|econstructionMesh|ectangle|ectangleChart|ectangleChart3D|ectangularRepeatingElement|ecurrenceFilter|ecurrenceTable|educe|efine|eflectionMatrix|eflectionTransform|efresh|egion|egionBinarize|egionBoundary|egionBounds|egionCentroid|egionCongruent|egionConvert|egionDifference|egionDilation|egionDimension|egionDisjoint|egionDistance|egionDistanceFunction|egionEmbeddingDimension|egionEqual|egionErosion|egionFit|egionImage|egionIntersection|egionMeasure|egionMember|egionMemberFunction|egionMoment|egionNearest|egionNearestFunction|egionPlot|egionPlot3D|egionProduct|egionQ|egionResize|egionSimilar|egionSymmetricDifference|egionUnion|egionWithin|egularExpression|egularPolygon|egularlySampledQ|elationGraph|eleaseHold|eliabilityDistribution|eliefImage|eliefPlot|emove|emoveAlphaChannel|emoveBackground|emoveDiacritics|emoveInputStreamMethod|emoveOutputStreamMethod|emoveUsers|enameDirectory|enameFile|enewalProcess|enkoChart|epairMesh|epeated|epeatedNull|epeatedTiming|epeatingElement|eplace|eplaceAll|eplaceAt|eplaceImageValue|eplaceList|eplacePart|eplacePixelValue|eplaceRepeated|esamplingAlgorithmData|escale|escalingTransform|esetDirectory|esidue|esidueSum|esolve|esourceData|esourceObject|esourceSearch|esponseForm|est|estricted|esultant|eturn|eturnExpressionPacket|eturnPacket|eturnTextPacket|everse|everseBiorthogonalSplineWavelet|everseElement|everseEquilibrium|everseGraph|everseSort|everseSortBy|everseUpEquilibrium|evolutionPlot3D|iccatiSolve|iceDistribution|idgeFilter|iemannR|iemannSiegelTheta|iemannSiegelZ|iemannXi|iffle|ightArrow|ightArrowBar|ightArrowLeftArrow|ightComposition|ightCosetRepresentative|ightDownTeeVector|ightDownVector|ightDownVectorBar|ightTee|ightTeeArrow|ightTeeVector|ightTriangle|ightTriangleBar|ightTriangleEqual|ightUpDownVector|ightUpTeeVector|ightUpVector|ightUpVectorBar|ightVector|ightVectorBar|iskAchievementImportance|iskReductionImportance|obustConvexOptimization|ogersTanimotoDissimilarity|ollPitchYawAngles|ollPitchYawMatrix|omanNumeral|oot|ootApproximant|ootIntervals|ootLocusPlot|ootMeanSquare|ootOfUnityQ|ootReduce|ootSum|oots|otate|otateLeft|otateRight|otationMatrix|otationTransform|ound|ow|owBox|owReduce|udinShapiro|udvalisGroupRu|ule|uleDelayed|ulePlot|un|unProcess|unThrough|ussellRaoDissimilarity))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:S(?:ARIMAProcess|ARMAProcess|ASTriangle|SSTriangle|ameAs|ameQ|ampledSoundFunction|ampledSoundList|atelliteData|atisfiabilityCount|atisfiabilityInstances|atisfiableQ|ave|avitzkyGolayMatrix|awtoothWave|cale|caled|calingMatrix|calingTransform|can|cheduledTask|churDecomposition|cientificForm|corerGi|corerGiPrime|corerHi|corerHiPrime|ec|ech|echDistribution|econdOrderConeOptimization|ectorChart|ectorChart3D|eedRandom|elect|electComponents|electFirst|electedCells|electedNotebook|electionCreateCell|electionEvaluate|electionEvaluateCreateCell|electionMove|emanticImport|emanticImportString|emanticInterpretation|emialgebraicComponentInstances|emidefiniteOptimization|endMail|endMessage|equence|equenceAlignment|equenceCases|equenceCount|equenceFold|equenceFoldList|equencePosition|equenceReplace|equenceSplit|eries|eriesCoefficient|eriesData|erviceConnect|erviceDisconnect|erviceExecute|erviceObject|essionSubmit|essionTime|et|etAccuracy|etAlphaChannel|etAttributes|etCloudDirectory|etCookies|etDelayed|etDirectory|etEnvironment|etFileDate|etOptions|etPermissions|etPrecision|etSelectedNotebook|etSharedFunction|etSharedVariable|etStreamPosition|etSystemOptions|etUsers|etter|etterBar|etting|hallow|hannonWavelet|hapiroWilkTest|hare|harpen|hearingMatrix|hearingTransform|hellRegion|henCastanMatrix|hiftRegisterSequence|hiftedGompertzDistribution|hort|hortDownArrow|hortLeftArrow|hortRightArrow|hortTimeFourier|hortTimeFourierData|hortUpArrow|hortest|hortestPathFunction|how|iderealTime|iegelTheta|iegelTukeyTest|ierpinskiCurve|ierpinskiMesh|ign|ignTest|ignature|ignedRankTest|ignedRegionDistance|impleGraph|impleGraphQ|implePolygonQ|implePolyhedronQ|implex|implify|in|inIntegral|inc|inghMaddalaDistribution|ingularValueDecomposition|ingularValueList|ingularValuePlot|inh|inhIntegral|ixJSymbol|keleton|keletonTransform|kellamDistribution|kewNormalDistribution|kewness|kip|liceContourPlot3D|liceDensityPlot3D|liceDistribution|liceVectorPlot3D|lideView|lider|lider2D|liderBox|lot|lotSequence|mallCircle|mithDecomposition|mithDelayCompensator|mithWatermanSimilarity|moothDensityHistogram|moothHistogram|moothHistogram3D|moothKernelDistribution|nDispersion|ocketConnect|ocketListen|ocketListener|ocketObject|ocketOpen|ocketReadMessage|ocketReadyQ|ocketWaitAll|ocketWaitNext|ockets|okalSneathDissimilarity|olarEclipse|olarSystemFeatureData|olarTime|olidAngle|olidData|olidRegionQ|olve|olveAlways|olveValues|ort|ortBy|ound|oundNote|ourcePDETerm|ow|paceCurveData|pacer|pan|parseArray|parseArrayQ|patialGraphDistribution|patialMedian|peak|pearmanRankTest|pearmanRho|peciesData|pectralLineData|pectrogram|pectrogramArray|pecularity|peechSynthesize|pellingCorrectionList|phere|pherePoints|phericalBesselJ|phericalBesselY|phericalHankelH1|phericalHankelH2|phericalHarmonicY|phericalPlot3D|phericalShell|pheroidalEigenvalue|pheroidalJoiningFactor|pheroidalPS|pheroidalPSPrime|pheroidalQS|pheroidalQSPrime|pheroidalRadialFactor|pheroidalS1|pheroidalS1Prime|pheroidalS2|pheroidalS2Prime|plicedDistribution|plit|plitBy|pokenString|potLight|qrt|qrtBox|quare|quareFreeQ|quareIntersection|quareMatrixQ|quareRepeatingElement|quareSubset|quareSubsetEqual|quareSuperset|quareSupersetEqual|quareUnion|quareWave|quaredEuclideanDistance|quaresR|tableDistribution|tack|tackBegin|tackComplete|tackInhibit|tackedDateListPlot|tackedListPlot|tadiumShape|tandardAtmosphereData|tandardDeviation|tandardDeviationFilter|tandardForm|tandardOceanData|tandardize|tandbyDistribution|tar|tarClusterData|tarData|tarGraph|tartProcess|tateFeedbackGains|tateOutputEstimator|tateResponse|tateSpaceModel|tateSpaceTransform|tateTransformationLinearize|tationaryDistribution|tationaryWaveletPacketTransform|tationaryWaveletTransform|tatusArea|tatusCentrality|tieltjesGamma|tippleShading|tirlingS1|tirlingS2|toppingPowerData|tratonovichProcess|treamDensityPlot|treamPlot|treamPlot3D|treamPosition|treams|tringCases|tringContainsQ|tringCount|tringDelete|tringDrop|tringEndsQ|tringExpression|tringExtract|tringForm|tringFormat|tringFormatQ|tringFreeQ|tringInsert|tringJoin|tringLength|tringMatchQ|tringPadLeft|tringPadRight|tringPart|tringPartition|tringPosition|tringQ|tringRepeat|tringReplace|tringReplaceList|tringReplacePart|tringReverse|tringRiffle|tringRotateLeft|tringRotateRight|tringSkeleton|tringSplit|tringStartsQ|tringTake|tringTakeDrop|tringTemplate|tringToByteArray|tringToStream|tringTrim|tripBoxes|tructuralImportance|truveH|truveL|tudentTDistribution|tyle|tyleBox|tyleData|ubMinus|ubPlus|ubStar|ubValues|ubdivide|ubfactorial|ubgraph|ubresultantPolynomialRemainders|ubresultantPolynomials|ubresultants|ubscript|ubscriptBox|ubsequences|ubset|ubsetEqual|ubsetMap|ubsetQ|ubsets|ubstitutionSystem|ubsuperscript|ubsuperscriptBox|ubtract|ubtractFrom|ubtractSides|ucceeds|ucceedsEqual|ucceedsSlantEqual|ucceedsTilde|uccess|uchThat|um|umConvergence|unPosition|unrise|unset|uperDagger|uperMinus|uperPlus|uperStar|upernovaData|uperscript|uperscriptBox|uperset|upersetEqual|urd|urfaceArea|urfaceData|urvivalDistribution|urvivalFunction|urvivalModel|urvivalModelFit|uzukiDistribution|uzukiGroupSuz|watchLegend|witch|ymbol|ymbolName|ymletWavelet|ymmetric|ymmetricGroup|ymmetricKey|ymmetricMatrixQ|ymmetricPolynomial|ymmetricReduction|ymmetrize|ymmetrizedArray|ymmetrizedArrayRules|ymmetrizedDependentComponents|ymmetrizedIndependentComponents|ymmetrizedReplacePart|ynonyms|yntaxInformation|yntaxLength|yntaxPacket|yntaxQ|ystemDialogInput|ystemInformation|ystemOpen|ystemOptions|ystemProcessData|ystemProcesses|ystemsConnectionsModel|ystemsModelControllerData|ystemsModelDelay|ystemsModelDelayApproximate|ystemsModelDelete|ystemsModelDimensions|ystemsModelExtract|ystemsModelFeedbackConnect|ystemsModelLinearity|ystemsModelMerge|ystemsModelOrder|ystemsModelParallelConnect|ystemsModelSeriesConnect|ystemsModelStateFeedbackConnect|ystemsModelVectorRelativeOrders))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:T(?:Test|abView|able|ableForm|agBox|agSet|agSetDelayed|agUnset|ake|akeDrop|akeLargest|akeLargestBy|akeList|akeSmallest|akeSmallestBy|akeWhile|ally|an|anh|askAbort|askExecute|askObject|askRemove|askResume|askSuspend|askWait|asks|autologyQ|eXForm|elegraphProcess|emplateApply|emplateBox|emplateExpression|emplateIf|emplateObject|emplateSequence|emplateSlot|emplateWith|emporalData|ensorContract|ensorDimensions|ensorExpand|ensorProduct|ensorRank|ensorReduce|ensorSymmetry|ensorTranspose|ensorWedge|erminatedEvaluation|estReport|estReportObject|estResultObject|etrahedron|ext|extCell|extData|extGrid|extPacket|extRecognize|extSentences|extString|extTranslation|extWords|exture|herefore|hermodynamicData|hermometerGauge|hickness|hinning|hompsonGroupTh|hread|hreeJSymbol|hreshold|hrough|hrow|hueMorse|humbnail|ideData|ilde|ildeEqual|ildeFullEqual|ildeTilde|imeConstrained|imeObject|imeObjectQ|imeRemaining|imeSeries|imeSeriesAggregate|imeSeriesForecast|imeSeriesInsert|imeSeriesInvertibility|imeSeriesMap|imeSeriesMapThread|imeSeriesModel|imeSeriesModelFit|imeSeriesResample|imeSeriesRescale|imeSeriesShift|imeSeriesThread|imeSeriesWindow|imeSystemConvert|imeUsed|imeValue|imeZoneConvert|imeZoneOffset|imelinePlot|imes|imesBy|iming|itsGroupT|oBoxes|oCharacterCode|oContinuousTimeModel|oDiscreteTimeModel|oEntity|oExpression|oInvertibleTimeSeries|oLowerCase|oNumberField|oPolarCoordinates|oRadicals|oRules|oSphericalCoordinates|oString|oUpperCase|oeplitzMatrix|ogether|oggler|ogglerBar|ooltip|oonShading|opHatTransform|opologicalSort|orus|orusGraph|otal|otalVariationFilter|ouchPosition|r|race|raceDialog|racePrint|raceScan|racyWidomDistribution|radingChart|raditionalForm|ransferFunctionCancel|ransferFunctionExpand|ransferFunctionFactor|ransferFunctionModel|ransferFunctionPoles|ransferFunctionTransform|ransferFunctionZeros|ransformationFunction|ransformationMatrix|ransformedDistribution|ransformedField|ransformedProcess|ransformedRegion|ransitiveClosureGraph|ransitiveReductionGraph|ranslate|ranslationTransform|ransliterate|ranspose|ravelDirections|ravelDirectionsData|ravelDistance|ravelDistanceList|ravelTime|reeForm|reeGraph|reeGraphQ|reePlot|riangle|riangleWave|riangularDistribution|riangulateMesh|rigExpand|rigFactor|rigFactorList|rigReduce|rigToExp|rigger|rimmedMean|rimmedVariance|ropicalStormData|rueQ|runcatedDistribution|runcatedPolyhedron|sallisQExponentialDistribution|sallisQGaussianDistribution|ube|ukeyLambdaDistribution|ukeyWindow|unnelData|uples|uranGraph|uringMachine|uttePolynomial|woWayRule|ypeHint))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:U(?:RL|RLBuild|RLDecode|RLDispatcher|RLDownload|RLEncode|RLExecute|RLExpand|RLParse|RLQueryDecode|RLQueryEncode|RLRead|RLResponseTime|RLShorten|RLSubmit|nateQ|ncompress|nderBar|nderflow|nderoverscript|nderoverscriptBox|nderscript|nderscriptBox|nderseaFeatureData|ndirectedEdge|ndirectedGraph|ndirectedGraphQ|nequal|nequalTo|nevaluated|niformDistribution|niformGraphDistribution|niformPolyhedron|niformSumDistribution|ninstall|nion|nionPlus|nique|nitBox|nitConvert|nitDimensions|nitRootTest|nitSimplify|nitStep|nitTriangle|nitVector|nitaryMatrixQ|nitize|niverseModelData|niversityData|nixTime|nprotect|nsameQ|nset|nsetShared|ntil|pArrow|pArrowBar|pArrowDownArrow|pDownArrow|pEquilibrium|pSet|pSetDelayed|pTee|pTeeArrow|pTo|pValues|pdate|pperCaseQ|pperLeftArrow|pperRightArrow|pperTriangularMatrix|pperTriangularMatrixQ|pperTriangularize|psample|singFrontEnd))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:V(?:alueQ|alues|ariables|ariance|arianceEquivalenceTest|arianceGammaDistribution|arianceTest|ectorAngle|ectorDensityPlot|ectorDisplacementPlot|ectorDisplacementPlot3D|ectorGreater|ectorGreaterEqual|ectorLess|ectorLessEqual|ectorPlot|ectorPlot3D|ectorQ|ectors|ee|erbatim|erificationTest|ertexAdd|ertexChromaticNumber|ertexComponent|ertexConnectivity|ertexContract|ertexCorrelationSimilarity|ertexCosineSimilarity|ertexCount|ertexCoverQ|ertexDegree|ertexDelete|ertexDiceSimilarity|ertexEccentricity|ertexInComponent|ertexInComponentGraph|ertexInDegree|ertexIndex|ertexJaccardSimilarity|ertexList|ertexOutComponent|ertexOutComponentGraph|ertexOutDegree|ertexQ|ertexReplace|ertexTransitiveGraphQ|ertexWeightedGraphQ|erticalBar|erticalGauge|erticalSeparator|erticalSlider|erticalTilde|oiceStyleData|oigtDistribution|olcanoData|olume|onMisesDistribution|oronoiMesh))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:W(?:aitAll|aitNext|akebyDistribution|alleniusHypergeometricDistribution|aringYuleDistribution|arpingCorrespondence|arpingDistance|atershedComponents|atsonUSquareTest|attsStrogatzGraphDistribution|avePDEComponent|aveletBestBasis|aveletFilterCoefficients|aveletImagePlot|aveletListPlot|aveletMapIndexed|aveletMatrixPlot|aveletPhi|aveletPsi|aveletScalogram|aveletThreshold|eakStationarity|eaklyConnectedComponents|eaklyConnectedGraphComponents|eaklyConnectedGraphQ|eatherData|eatherForecastData|eberE|edge|eibullDistribution|eierstrassE1|eierstrassE2|eierstrassE3|eierstrassEta1|eierstrassEta2|eierstrassEta3|eierstrassHalfPeriodW1|eierstrassHalfPeriodW2|eierstrassHalfPeriodW3|eierstrassHalfPeriods|eierstrassInvariantG2|eierstrassInvariantG3|eierstrassInvariants|eierstrassP|eierstrassPPrime|eierstrassSigma|eierstrassZeta|eightedAdjacencyGraph|eightedAdjacencyMatrix|eightedData|eightedGraphQ|elchWindow|heelGraph|henEvent|hich|hile|hiteNoiseProcess|hittakerM|hittakerW|ienerFilter|ienerProcess|ignerD|ignerSemicircleDistribution|ikipediaData|ilksW|ilksWTest|indDirectionData|indSpeedData|indVectorData|indingCount|indingPolygon|insorizedMean|insorizedVariance|ishartMatrixDistribution|ith|olframAlpha|olframLanguageData|ordCloud|ordCount|ordCounts|ordData|ordDefinition|ordFrequency|ordFrequencyData|ordList|ordStem|ordTranslation|rite|riteLine|riteString|ronskian))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:X(?:MLElement|MLObject|MLTemplate|YZColor|nor|or))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:Y(?:uleDissimilarity))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:Z(?:IPCodeData|Test|Transform|ernikeR|eroSymmetric|eta|etaZero|ipfDistribution))(?![`$[:alnum:]])",name:"support.function.builtin.wolfram"},{match:"(?:A(?:cceptanceThreshold|ccuracyGoal|ctiveStyle|ddOnHelpPath|djustmentBoxOptions|lignment|lignmentPoint|llowGroupClose|llowInlineCells|llowLooseGrammar|llowReverseGroupClose|llowScriptLevelChange|llowVersionUpdate|llowedCloudExtraParameters|llowedCloudParameterExtensions|llowedDimensions|llowedFrequencyRange|llowedHeads|lternativeHypothesis|ltitudeMethod|mbiguityFunction|natomySkinStyle|nchoredSearch|nimationDirection|nimationRate|nimationRepetitions|nimationRunTime|nimationRunning|nimationTimeIndex|nnotationRules|ntialiasing|ppearance|ppearanceElements|ppearanceRules|spectRatio|ssociationFormat|ssumptions|synchronous|ttachedCell|udioChannelAssignment|udioEncoding|udioInputDevice|udioLabel|udioOutputDevice|uthentication|utoAction|utoCopy|utoDelete|utoGeneratedPackage|utoIndent|utoItalicWords|utoMultiplicationSymbol|utoOpenNotebooks|utoOpenPalettes|utoOperatorRenderings|utoRemove|utoScroll|utoSpacing|utoloadPath|utorunSequencing|xes|xesEdge|xesLabel|xesOrigin|xesStyle))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:B(?:ackground|arOrigin|arSpacing|aseStyle|aselinePosition|inaryFormat|ookmarks|ooleanStrings|oundaryStyle|oxBaselineShift|oxFormFormatTypes|oxFrame|oxMargins|oxRatios|oxStyle|oxed|ubbleScale|ubbleSizes|uttonBoxOptions|uttonData|uttonFunction|uttonMinHeight|uttonSource|yteOrdering))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:C(?:alendarType|alloutMarker|alloutStyle|aptureRunning|aseOrdering|elestialSystem|ellAutoOverwrite|ellBaseline|ellBracketOptions|ellChangeTimes|ellContext|ellDingbat|ellDingbatMargin|ellDynamicExpression|ellEditDuplicate|ellEpilog|ellEvaluationDuplicate|ellEvaluationFunction|ellEventActions|ellFrame|ellFrameColor|ellFrameLabelMargins|ellFrameLabels|ellFrameMargins|ellGrouping|ellGroupingRules|ellHorizontalScrolling|ellID|ellLabel|ellLabelAutoDelete|ellLabelMargins|ellLabelPositioning|ellLabelStyle|ellLabelTemplate|ellMargins|ellOpen|ellProlog|ellSize|ellTags|haracterEncoding|haracterEncodingsPath|hartBaseStyle|hartElementFunction|hartElements|hartLabels|hartLayout|hartLegends|hartStyle|lassPriors|lickToCopyEnabled|lipPlanes|lipPlanesStyle|lipRange|lippingStyle|losingAutoSave|loudBase|loudObjectNameFormat|loudObjectURLType|lusterDissimilarityFunction|odeAssistOptions|olorCoverage|olorFunction|olorFunctionBinning|olorFunctionScaling|olorRules|olorSelectorSettings|olorSpace|olumnAlignments|olumnLines|olumnSpacings|olumnWidths|olumnsEqual|ombinerFunction|ommonDefaultFormatTypes|ommunityBoundaryStyle|ommunityLabels|ommunityRegionStyle|ompilationOptions|ompilationTarget|ompiled|omplexityFunction|ompressionLevel|onfidenceLevel|onfidenceRange|onfidenceTransform|onfigurationPath|onstants|ontentPadding|ontentSelectable|ontentSize|ontinuousAction|ontourLabels|ontourShading|ontourStyle|ontours|ontrolPlacement|ontrolType|ontrollerLinking|ontrollerMethod|ontrollerPath|ontrolsRendering|onversionRules|ookieFunction|oordinatesToolOptions|opyFunction|opyable|ornerNeighbors|ounterAssignments|ounterFunction|ounterIncrements|ounterStyleMenuListing|ovarianceEstimatorFunction|reateCellID|reateIntermediateDirectories|riterionFunction|ubics|urveClosed))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:D(?:ataRange|ataReversed|atasetTheme|ateFormat|ateFunction|ateGranularity|ateReduction|ateTicksFormat|ayCountConvention|efaultDuplicateCellStyle|efaultDuration|efaultElement|efaultFontProperties|efaultFormatType|efaultInlineFormatType|efaultNaturalLanguage|efaultNewCellStyle|efaultNewInlineCellStyle|efaultNotebook|efaultOptions|efaultPrintPrecision|efaultStyleDefinitions|einitialization|eletable|eleteContents|eletionWarning|elimiterAutoMatching|elimiterFlashTime|elimiterMatching|elimiters|eliveryFunction|ependentVariables|eployed|escriptorStateSpace|iacriticalPositioning|ialogProlog|ialogSymbols|igitBlock|irectedEdges|irection|iscreteVariables|ispersionEstimatorFunction|isplayAllSteps|isplayFunction|istanceFunction|istributedContexts|ithering|ividers|ockedCell|ockedCells|ynamicEvaluationTimeout|ynamicModuleValues|ynamicUpdating))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:E(?:clipseType|dgeCapacity|dgeCost|dgeLabelStyle|dgeLabels|dgeShapeFunction|dgeStyle|dgeValueRange|dgeValueSizes|dgeWeight|ditCellTagsSettings|ditable|lidedForms|nabled|pilog|pilogFunction|scapeRadius|valuatable|valuationCompletionAction|valuationElements|valuationMonitor|valuator|valuatorNames|ventLabels|xcludePods|xcludedContexts|xcludedForms|xcludedLines|xcludedPhysicalQuantities|xclusions|xclusionsStyle|xponentFunction|xponentPosition|xponentStep|xponentialFamily|xportAutoReplacements|xpressionUUID|xtension|xtentElementFunction|xtentMarkers|xtentSize|xternalDataCharacterEncoding|xternalOptions|xternalTypeSignature))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:F(?:aceGrids|aceGridsStyle|ailureAction|eatureNames|eatureTypes|eedbackSector|eedbackSectorStyle|eedbackType|ieldCompletionFunction|ieldHint|ieldHintStyle|ieldMasked|ieldSize|ileNameDialogSettings|ileNameForms|illing|illingStyle|indSettings|itRegularization|ollowRedirects|ontColor|ontFamily|ontSize|ontSlant|ontSubstitutions|ontTracking|ontVariations|ontWeight|orceVersionInstall|ormBoxOptions|ormLayoutFunction|ormProtectionMethod|ormatType|ormatTypeAutoConvert|ourierParameters|ractionBoxOptions|ractionLine|rame|rameBoxOptions|rameLabel|rameMargins|rameRate|rameStyle|rameTicks|rameTicksStyle|rontEndEventActions|unctionSpace))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:G(?:apPenalty|augeFaceElementFunction|augeFaceStyle|augeFrameElementFunction|augeFrameSize|augeFrameStyle|augeLabels|augeMarkers|augeStyle|aussianIntegers|enerateConditions|eneratedCell|eneratedDocumentBinding|eneratedParameters|eneratedQuantityMagnitudes|eneratorDescription|eneratorHistoryLength|eneratorOutputType|eoArraySize|eoBackground|eoCenter|eoGridLines|eoGridLinesStyle|eoGridRange|eoGridRangePadding|eoLabels|eoLocation|eoModel|eoProjection|eoRange|eoRangePadding|eoResolution|eoScaleBar|eoServer|eoStylingImageFunction|eoZoomLevel|radient|raphHighlight|raphHighlightStyle|raphLayerStyle|raphLayers|raphLayout|ridCreationSettings|ridDefaultElement|ridFrame|ridFrameMargins|ridLines|ridLinesStyle|roupActionBase|roupPageBreakWithin))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:H(?:eaderAlignment|eaderBackground|eaderDisplayFunction|eaderLines|eaderSize|eaderStyle|eads|elpBrowserSettings|iddenItems|olidayCalendar|yperlinkAction|yphenation))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:I(?:conRules|gnoreCase|gnoreDiacritics|gnorePunctuation|mageCaptureFunction|mageFormattingWidth|mageLabels|mageLegends|mageMargins|magePadding|magePreviewFunction|mageRegion|mageResolution|mageSize|mageSizeAction|mageSizeMultipliers|magingDevice|mportAutoReplacements|mportOptions|ncludeConstantBasis|ncludeDefinitions|ncludeDirectories|ncludeFileExtension|ncludeGeneratorTasks|ncludeInflections|ncludeMetaInformation|ncludePods|ncludeQuantities|ncludeSingularSolutions|ncludeWindowTimes|ncludedContexts|ndeterminateThreshold|nflationMethod|nheritScope|nitialSeeding|nitialization|nitializationCell|nitializationCellEvaluation|nitializationCellWarning|nputAliases|nputAssumptions|nputAutoReplacements|nsertResults|nsertionFunction|nteractive|nterleaving|nterpolationOrder|nterpolationPoints|nterpretationBoxOptions|nterpretationFunction|ntervalMarkers|ntervalMarkersStyle|nverseFunctions|temAspectRatio|temDisplayFunction|temSize|temStyle))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:J(?:oined))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:K(?:eepExistingVersion|eyCollisionFunction|eypointStrength))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:L(?:abelStyle|abelVisibility|abelingFunction|abelingSize|anguage|anguageCategory|ayerSizeFunction|eaderSize|earningRate|egendAppearance|egendFunction|egendLabel|egendLayout|egendMargins|egendMarkerSize|egendMarkers|ighting|ightingAngle|imitsPositioning|imitsPositioningTokens|ineBreakWithin|ineIndent|ineIndentMaxFraction|ineIntegralConvolutionScale|ineSpacing|inearOffsetFunction|inebreakAdjustments|inkFunction|inkProtocol|istFormat|istPickerBoxOptions|ocalizeVariables|ocatorAutoCreate|ocatorRegion|ooping))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:M(?:agnification|ailAddressValidation|ailResponseFunction|ailSettings|asking|atchLocalNames|axCellMeasure|axColorDistance|axDuration|axExtraBandwidths|axExtraConditions|axFeatureDisplacement|axFeatures|axItems|axIterations|axMixtureKernels|axOverlapFraction|axPlotPoints|axRecursion|axStepFraction|axStepSize|axSteps|emoryConstraint|enuCommandKey|enuSortingValue|enuStyle|esh|eshCellHighlight|eshCellLabel|eshCellMarker|eshCellShapeFunction|eshCellStyle|eshFunctions|eshQualityGoal|eshRefinementFunction|eshShading|eshStyle|etaInformation|ethod|inColorDistance|inIntervalSize|inPointSeparation|issingBehavior|issingDataMethod|issingDataRules|issingString|issingStyle|odal|odulus|ultiaxisArrangement|ultiedgeStyle|ultilaunchWarning|ultilineFunction|ultiselection))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:N(?:icholsGridLines|ominalVariables|onConstants|ormFunction|ormalized|ormalsFunction|otebookAutoSave|otebookBrowseDirectory|otebookConvertSettings|otebookDynamicExpression|otebookEventActions|otebookPath|otebooksMenu|otificationFunction|ullRecords|ullWords|umberFormat|umberMarks|umberMultiplier|umberPadding|umberPoint|umberSeparator|umberSigns|yquistGridLines))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:O(?:pacityFunction|pacityFunctionScaling|peratingSystem|ptionInspectorSettings|utputAutoOverwrite|utputSizeLimit|verlaps|verscriptBoxOptions|verwriteTarget))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:P(?:IDDerivativeFilter|IDFeedforward|acletSite|adding|addingSize|ageBreakAbove|ageBreakBelow|ageBreakWithin|ageFooterLines|ageFooters|ageHeaderLines|ageHeaders|ageTheme|ageWidth|alettePath|aneled|aragraphIndent|aragraphSpacing|arallelization|arameterEstimator|artBehavior|artitionGranularity|assEventsDown|assEventsUp|asteBoxFormInlineCells|ath|erformanceGoal|ermissions|haseRange|laceholderReplace|layRange|lotLabel|lotLabels|lotLayout|lotLegends|lotMarkers|lotPoints|lotRange|lotRangeClipping|lotRangePadding|lotRegion|lotStyle|lotTheme|odStates|odWidth|olarAxes|olarAxesOrigin|olarGridLines|olarTicks|oleZeroMarkers|recisionGoal|referencesPath|reprocessingRules|reserveColor|reserveImageOptions|rincipalValue|rintAction|rintPrecision|rintingCopies|rintingOptions|rintingPageRange|rintingStartingPageNumber|rintingStyleEnvironment|rintout3DPreviewer|rivateCellOptions|rivateEvaluationOptions|rivateFontOptions|rivateNotebookOptions|rivatePaths|rocessDirectory|rocessEnvironment|rocessEstimator|rogressReporting|rolog|ropagateAborts))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:Q(?:uartics))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:R(?:adicalBoxOptions|andomSeeding|asterSize|eImLabels|eImStyle|ealBlockDiagonalForm|ecognitionPrior|ecordLists|ecordSeparators|eferenceLineStyle|efreshRate|egionBoundaryStyle|egionFillingStyle|egionFunction|egionSize|egularization|enderingOptions|equiredPhysicalQuantities|esampling|esamplingMethod|esolveContextAliases|estartInterval|eturnReceiptFunction|evolutionAxis|otateLabel|otationAction|oundingRadius|owAlignments|owLines|owMinHeight|owSpacings|owsEqual|ulerUnits|untimeAttributes|untimeOptions))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:S(?:ameTest|ampleDepth|ampleRate|amplingPeriod|aveConnection|aveDefinitions|aveable|caleDivisions|caleOrigin|calePadding|caleRangeStyle|caleRanges|calingFunctions|cientificNotationThreshold|creenStyleEnvironment|criptBaselineShifts|criptLevel|criptMinSize|criptSizeMultipliers|crollPosition|crollbars|crollingOptions|ectorOrigin|ectorSpacing|electable|elfLoopStyle|eriesTermGoal|haringList|howAutoSpellCheck|howAutoStyles|howCellBracket|howCellLabel|howCellTags|howClosedCellArea|howContents|howCursorTracker|howGroupOpener|howPageBreaks|howSelection|howShortBoxForm|howSpecialCharacters|howStringCharacters|hrinkingDelay|ignPadding|ignificanceLevel|imilarityRules|ingleLetterItalics|liderBoxOptions|ortedBy|oundVolume|pacings|panAdjustments|panCharacterRounding|panLineThickness|panMaxSize|panMinSize|panSymmetric|pecificityGoal|pellingCorrection|pellingDictionaries|pellingDictionariesPath|pellingOptions|phericalRegion|plineClosed|plineDegree|plineKnots|plineWeights|qrtBoxOptions|tabilityMargins|tabilityMarginsStyle|tandardized|tartingStepSize|tateSpaceRealization|tepMonitor|trataVariables|treamColorFunction|treamColorFunctionScaling|treamMarkers|treamPoints|treamScale|treamStyle|trictInequalities|tripOnInput|tripWrapperBoxes|tructuredSelection|tyleBoxAutoDelete|tyleDefinitions|tyleHints|tyleMenuListing|tyleNameDialogSettings|tyleSheetPath|ubscriptBoxOptions|ubsuperscriptBoxOptions|ubtitleEncoding|uperscriptBoxOptions|urdForm|ynchronousInitialization|ynchronousUpdating|yntaxForm|ystemHelpPath|ystemsModelLabels))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:T(?:abFilling|abSpacings|ableAlignments|ableDepth|ableDirections|ableHeadings|ableSpacing|agBoxOptions|aggingRules|argetFunctions|argetUnits|emplateBoxOptions|emporalRegularity|estID|extAlignment|extClipboardType|extJustification|extureCoordinateFunction|extureCoordinateScaling|icks|icksStyle|imeConstraint|imeDirection|imeFormat|imeGoal|imeSystem|imeZone|okenWords|olerance|ooltipDelay|ooltipStyle|otalWidth|ouchscreenAutoZoom|ouchscreenControlPlacement|raceAbove|raceBackward|raceDepth|raceForward|raceOff|raceOn|raceOriginal|rackedSymbols|rackingFunction|raditionalFunctionNotation|ransformationClass|ransformationFunctions|ransitionDirection|ransitionDuration|ransitionEffect|ranslationOptions|ravelMethod|rendStyle|rig))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:U(?:nderoverscriptBoxOptions|nderscriptBoxOptions|ndoOptions|ndoTrackedVariables|nitSystem|nityDimensions|nsavedVariables|pdateInterval|pdatePacletSites|tilityFunction))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:V(?:alidationLength|alidationSet|alueDimensions|arianceEstimatorFunction|ectorAspectRatio|ectorColorFunction|ectorColorFunctionScaling|ectorMarkers|ectorPoints|ectorRange|ectorScaling|ectorSizes|ectorStyle|erifyConvergence|erifySecurityCertificates|erifySolutions|erifyTestAssumptions|ersionedPreferences|ertexCapacity|ertexColors|ertexCoordinates|ertexDataCoordinates|ertexLabelStyle|ertexLabels|ertexNormals|ertexShape|ertexShapeFunction|ertexSize|ertexStyle|ertexTextureCoordinates|ertexWeight|ideoEncoding|iewAngle|iewCenter|iewMatrix|iewPoint|iewProjection|iewRange|iewVector|iewVertical|isible))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:W(?:aveletScale|eights|hitePoint|indowClickSelect|indowElements|indowFloating|indowFrame|indowFrameElements|indowMargins|indowOpacity|indowSize|indowStatusArea|indowTitle|indowToolbars|ordOrientation|ordSearch|ordSelectionFunction|ordSeparators|ordSpacings|orkingPrecision|rapAround))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:Z(?:eroTest|eroWidthTimes))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:A(?:bove|fter|lgebraics|ll|nonymous|utomatic|xis))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:B(?:ack|ackward|aseline|efore|elow|lack|lue|old|ooleans|ottom|oxes|rown|yte))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:C(?:atalan|ellStyle|enter|haracter|omplexInfinity|omplexes|onstant|yan))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:D(?:ashed|efaultAxesStyle|efaultBaseStyle|efaultBoxStyle|efaultFaceGridsStyle|efaultFieldHintStyle|efaultFrameStyle|efaultFrameTicksStyle|efaultGridLinesStyle|efaultLabelStyle|efaultMenuStyle|efaultTicksStyle|efaultTooltipStyle|egree|elimiter|igitCharacter|otDashed|otted))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:E(?:|ndOfBuffer|ndOfFile|ndOfLine|ndOfString|ulerGamma|xpression))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:F(?:alse|lat|ontProperties|orward|orwardBackward|riday|ront|rontEndDynamicExpression|ull))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:G(?:eneral|laisher|oldenAngle|oldenRatio|ray|reen))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:H(?:ere|exadecimalCharacter|oldAll|oldAllComplete|oldFirst|oldRest))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:I(?:|ndeterminate|nfinity|nherited|nteger|ntegers|talic))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:K(?:hinchin))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:L(?:arge|arger|eft|etterCharacter|ightBlue|ightBrown|ightCyan|ightGray|ightGreen|ightMagenta|ightOrange|ightPink|ightPurple|ightRed|ightYellow|istable|ocked))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:M(?:achinePrecision|agenta|anual|edium|eshCellCentroid|eshCellMeasure|eshCellQuality|onday))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:N(?:HoldAll|HoldFirst|HoldRest|egativeIntegers|egativeRationals|egativeReals|oWhitespace|onNegativeIntegers|onNegativeRationals|onNegativeReals|onPositiveIntegers|onPositiveRationals|onPositiveReals|one|ow|ull|umber|umberString|umericFunction))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:O(?:neIdentity|range|rderless))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:P(?:i|ink|lain|ositiveIntegers|ositiveRationals|ositiveReals|rimes|rotected|unctuationCharacter|urple))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:R(?:ationals|eadProtected|eal|eals|ecord|ed|ight))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:S(?:aturday|equenceHold|mall|maller|panFromAbove|panFromBoth|panFromLeft|tartOfLine|tartOfString|tring|truckthrough|tub|unday))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:T(?:emporary|hick|hin|hursday|iny|oday|omorrow|op|ransparent|rue|uesday))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:U(?:ndefined|nderlined))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:W(?:ednesday|hite|hitespace|hitespaceCharacter|ord|ordBoundary|ordCharacter))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:Y(?:ellow|esterday))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:\\$(?:Aborted|ActivationKey|AllowDataUpdates|AllowInternet|AssertFunction|Assumptions|AudioInputDevices|AudioOutputDevices|BaseDirectory|BasePacletsDirectory|BatchInput|BatchOutput|ByteOrdering|CacheBaseDirectory|Canceled|CharacterEncoding|CharacterEncodings|CloudAccountName|CloudBase|CloudConnected|CloudCreditsAvailable|CloudEvaluation|CloudExpressionBase|CloudObjectNameFormat|CloudObjectURLType|CloudRootDirectory|CloudSymbolBase|CloudUserID|CloudUserUUID|CloudVersion|CommandLine|CompilationTarget|Context|ContextAliases|ContextPath|ControlActiveSetting|Cookies|CreationDate|CurrentLink|CurrentTask|DateStringFormat|DefaultAudioInputDevice|DefaultAudioOutputDevice|DefaultFrontEnd|DefaultImagingDevice|DefaultKernels|DefaultLocalBase|DefaultLocalKernel|Display|DisplayFunction|DistributedContexts|DynamicEvaluation|Echo|EmbedCodeEnvironments|EmbeddableServices|Epilog|EvaluationCloudBase|EvaluationCloudObject|EvaluationEnvironment|ExportFormats|Failed|FontFamilies|FrontEnd|FrontEndSession|GeoLocation|GeoLocationCity|GeoLocationCountry|GeoLocationSource|HomeDirectory|IgnoreEOF|ImageFormattingWidth|ImageResolution|ImagingDevice|ImagingDevices|ImportFormats|InitialDirectory|Input|InputFileName|InputStreamMethods|Inspector|InstallationDirectory|InterpreterTypes|IterationLimit|KernelCount|KernelID|Language|LibraryPath|LicenseExpirationDate|LicenseID|LicenseServer|Linked|LocalBase|LocalSymbolBase|MachineAddresses|MachineDomains|MachineEpsilon|MachineID|MachineName|MachinePrecision|MachineType|MaxExtraPrecision|MaxMachineNumber|MaxNumber|MaxPiecewiseCases|MaxPrecision|MaxRootDegree|MessageGroups|MessageList|MessagePrePrint|Messages|MinMachineNumber|MinNumber|MinPrecision|MobilePhone|ModuleNumber|NetworkConnected|NewMessage|NewSymbol|NotebookInlineStorageLimit|Notebooks|NumberMarks|OperatingSystem|Output|OutputSizeLimit|OutputStreamMethods|Packages|ParentLink|ParentProcessID|PasswordFile|Path|PathnameSeparator|PerformanceGoal|Permissions|PlotTheme|Printout3DPreviewer|ProcessID|ProcessorCount|ProcessorType|ProgressReporting|RandomGeneratorState|RecursionLimit|ReleaseNumber|RequesterAddress|RequesterCloudUserID|RequesterCloudUserUUID|RequesterWolframID|RequesterWolframUUID|RootDirectory|ScriptCommandLine|ScriptInputString|Services|SessionID|SharedFunctions|SharedVariables|SoundDisplayFunction|SynchronousEvaluation|System|SystemCharacterEncoding|SystemID|SystemShell|SystemTimeZone|SystemWordLength|TemplatePath|TemporaryDirectory|TimeUnit|TimeZone|TimeZoneEntity|TimedOut|UnitSystem|Urgent|UserAgentString|UserBaseDirectory|UserBasePacletsDirectory|UserDocumentsDirectory|UserURLBase|Username|Version|VersionNumber|WolframDocumentsDirectory|WolframID|WolframUUID))(?![`$[:alnum:]])",name:"constant.language.wolfram"},{match:"(?:A(?:bortScheduledTask|ctive|lgebraicRules|lternateImage|natomyForm|nimationCycleOffset|nimationCycleRepetitions|nimationDisplayTime|spectRatioFixed|stronomicalData|synchronousTaskObject|synchronousTasks|udioDevice|udioLooping))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:B(?:uttonEvaluator|uttonExpandable|uttonFrame|uttonMargins|uttonNote|uttonStyle))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:C(?:DFInformation|hebyshevDistance|lassifierInformation|lipFill|olorOutput|olumnForm|ompose|onstantArrayLayer|onstantPlusLayer|onstantTimesLayer|onstrainedMax|onstrainedMin|ontourGraphics|ontourLines|onversionOptions|reateScheduledTask|reateTemporary|urry))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:D(?:atabinRemove|ate|ebug|efaultColor|efaultFont|ensityGraphics|isplay|isplayString|otPlusLayer|ragAndDrop))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:E(?:dgeLabeling|dgeRenderingFunction|valuateScheduledTask|xpectedValue))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:F(?:actorComplete|ontForm|ormTheme|romDate|ullOptions))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:G(?:raphStyle|raphicsArray|raphicsSpacing|ridBaseline))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:H(?:TMLSave|eldPart|iddenSurface|omeDirectory))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:I(?:mageRotated|nstanceNormalizationLayer))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:L(?:UBackSubstitution|egendreType|ightSources|inearProgramming|inkOpen|iteral|ongestMatch))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:M(?:eshRange|oleculeEquivalentQ))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:N(?:etInformation|etSharedArray|extScheduledTaskTime|otebookCreate))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:O(?:penTemporary))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:P(?:IDData|ackingMethod|ersistentValue|ixelConstrained|lot3Matrix|lotDivision|lotJoined|olygonIntersections|redictorInformation|roperties|roperty|ropertyList|ropertyValue))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:R(?:andom|asterArray|ecognitionThreshold|elease|emoteKernelObject|emoveAsynchronousTask|emoveProperty|emoveScheduledTask|enderAll|eplaceHeldPart|esetScheduledTask|esumePacket|unScheduledTask))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:S(?:cheduledTaskActiveQ|cheduledTaskInformation|cheduledTaskObject|cheduledTasks|creenRectangle|electionAnimate|equenceAttentionLayer|equenceForm|etProperty|hading|hortestMatch|ingularValues|kinStyle|ocialMediaData|tartAsynchronousTask|tartScheduledTask|tateDimensions|topAsynchronousTask|topScheduledTask|tructuredArray|tyleForm|tylePrint|ubscripted|urfaceColor|urfaceGraphics|uspendPacket|ystemModelProgressReporting))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:T(?:eXSave|extStyle|imeWarpingCorrespondence|imeWarpingDistance|oDate|oFileName|oHeldExpression))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:U(?:RLFetch|RLFetchAsynchronous|RLSave|RLSaveAsynchronous))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:V(?:ectorScale|ertexCoordinateRules|ertexLabeling|ertexRenderingFunction))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:W(?:aitAsynchronousTask|indowMovable))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:\\$(?:AsynchronousTask|ConfiguredKernels|DefaultFont|EntityStores|FormatType|HTTPCookies|InstallationDate|MachineDomain|ProductInformation|ProgramName|RandomState|ScheduledTask|SummaryBoxDataSizeLimit|TemporaryPrefix|TextStyle|TopDirectory|UserAddOnsDirectory))(?![`$[:alnum:]])",name:"invalid.deprecated.wolfram"},{match:"(?:A(?:ctionDelay|ctionMenuBox|ctionMenuBoxOptions|ctiveItem|lgebraicRulesData|lignmentMarker|llowAdultContent|llowChatServices|llowIncomplete|nalytic|nimatorBox|nimatorBoxOptions|nimatorElements|ppendCheck|rgumentCountQ|rrow3DBox|rrowBox|uthenticate|utoEvaluateEvents|utoIndentSpacings|utoMatch|utoNumberFormatting|utoQuoteCharacters|utoScaling|utoStyleOptions|utoStyleWords|utomaticImageSize|xis3DBox|xis3DBoxOptions|xisBox|xisBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:B(?:SplineCurve3DBox|SplineCurve3DBoxOptions|SplineCurveBox|SplineCurveBoxOptions|SplineSurface3DBox|SplineSurface3DBoxOptions|ackFaceColor|ackFaceGlowColor|ackFaceOpacity|ackFaceSpecularColor|ackFaceSpecularExponent|ackFaceSurfaceAppearance|ackFaceTexture|ackgroundAppearance|ackgroundTasksSettings|acksubstitution|eveled|ezierCurve3DBox|ezierCurve3DBoxOptions|ezierCurveBox|ezierCurveBoxOptions|lankForm|ounds|ox|oxDimensions|oxForm|oxID|oxRotation|oxRotationPoint|ra|raKet|rowserCategory|uttonCell|uttonContents|uttonStyleMenuListing))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:C(?:acheGraphics|achedValue|ardinalBSplineBasis|ellBoundingBox|ellContents|ellElementSpacings|ellElementsBoundingBox|ellFrameStyle|ellInsertionPointCell|ellTrayPosition|ellTrayWidgets|hangeOptions|hannelDatabin|hannelListenerWait|hannelPreSendFunction|hartElementData|hartElementDataFunction|heckAll|heckboxBox|heckboxBoxOptions|ircleBox|lipboardNotebook|lockwiseContourIntegral|losed|losingEvent|loudConnections|loudObjectInformation|loudObjectInformationData|loudUserID|oarse|oefficientDomain|olonForm|olorSetterBox|olorSetterBoxOptions|olumnBackgrounds|ompilerEnvironmentAppend|ompletionsListPacket|omponentwiseContextMenu|ompressedData|oneBox|onicHullRegion3DBox|onicHullRegion3DBoxOptions|onicHullRegionBox|onicHullRegionBoxOptions|onnect|ontentsBoundingBox|ontextMenu|ontinuation|ontourIntegral|ontourSmoothing|ontrolAlignment|ontrollerDuration|ontrollerInformationData|onvertToPostScript|onvertToPostScriptPacket|ookies|opyTag|ounterBox|ounterBoxOptions|ounterClockwiseContourIntegral|ounterEvaluator|ounterStyle|uboidBox|uboidBoxOptions|urlyDoubleQuote|urlyQuote|ylinderBox|ylinderBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:D(?:OSTextFormat|ampingFactor|ataCompression|atasetDisplayPanel|ateDelimiters|ebugTag|ecimal|efault2DTool|efault3DTool|efaultAttachedCellStyle|efaultControlPlacement|efaultDockedCellStyle|efaultInputFormatType|efaultOutputFormatType|efaultStyle|efaultTextFormatType|efaultTextInlineFormatType|efaultValue|efineExternal|egreeLexicographic|egreeReverseLexicographic|eleteWithContents|elimitedArray|estroyAfterEvaluation|eviceOpenQ|ialogIndent|ialogLevel|ifferenceOrder|igitBlockMinimum|isableConsolePrintPacket|iskBox|iskBoxOptions|ispatchQ|isplayRules|isplayTemporary|istributionDomain|ivergence|ocumentGeneratorInformationData|omainRegistrationInformation|oubleContourIntegral|oublyInfinite|own|rawBackFaces|rawFrontFaces|rawHighlighted|ualLinearProgramming|umpGet|ynamicBox|ynamicBoxOptions|ynamicLocation|ynamicModuleBox|ynamicModuleBoxOptions|ynamicModuleParent|ynamicName|ynamicNamespace|ynamicReference|ynamicWrapperBox|ynamicWrapperBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:E(?:ditButtonSettings|liminationOrder|llipticReducedHalfPeriods|mbeddingObject|mphasizeSyntaxErrors|mpty|nableConsolePrintPacket|ndAdd|ngineEnvironment|nter|qualColumns|qualRows|quatedTo|rrorBoxOptions|rrorNorm|rrorPacket|rrorsDialogSettings|valuated|valuationMode|valuationOrder|valuationRateLimit|ventEvaluator|ventHandlerTag|xactRootIsolation|xitDialog|xpectationE|xportPacket|xpressionPacket|xternalCall|xternalFunctionName))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:F(?:EDisableConsolePrintPacket|EEnableConsolePrintPacket|ail|ileInformation|ileName|illForm|illedCurveBox|illedCurveBoxOptions|ine|itAll|lashSelection|ont|ontName|ontOpacity|ontPostScriptName|ontReencoding|ormatRules|ormatValues|rameInset|rameless|rontEndObject|rontEndResource|rontEndResourceString|rontEndStackSize|rontEndValueCache|rontEndVersion|rontFaceColor|rontFaceGlowColor|rontFaceOpacity|rontFaceSpecularColor|rontFaceSpecularExponent|rontFaceSurfaceAppearance|rontFaceTexture|ullAxes))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:G(?:eneratedCellStyles|eneric|eometricTransformation3DBox|eometricTransformation3DBoxOptions|eometricTransformationBox|eometricTransformationBoxOptions|estureHandlerTag|etContext|etFileName|etLinebreakInformationPacket|lobalPreferences|lobalSession|raphLayerLabels|raphRoot|raphics3DBox|raphics3DBoxOptions|raphicsBaseline|raphicsBox|raphicsBoxOptions|raphicsComplex3DBox|raphicsComplex3DBoxOptions|raphicsComplexBox|raphicsComplexBoxOptions|raphicsContents|raphicsData|raphicsGridBox|raphicsGroup3DBox|raphicsGroup3DBoxOptions|raphicsGroupBox|raphicsGroupBoxOptions|raphicsGrouping|raphicsStyle|reekStyle|ridBoxAlignment|ridBoxBackground|ridBoxDividers|ridBoxFrame|ridBoxItemSize|ridBoxItemStyle|ridBoxOptions|ridBoxSpacings|ridElementStyleOptions|roupOpenerColor|roupOpenerInsideFrame|roupTogetherGrouping|roupTogetherNestedGrouping))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:H(?:eadCompose|eaders|elpBrowserLookup|elpBrowserNotebook|elpViewerSettings|essian|exahedronBox|exahedronBoxOptions|ighlightString|omePage|orizontal|orizontalForm|orizontalScrollPosition|yperlinkCreationSettings|yphenationOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:I(?:conizedObject|gnoreSpellCheck|mageCache|mageCacheValid|mageEditMode|mageMarkers|mageOffset|mageRangeCache|mageSizeCache|mageSizeRaw|nactiveStyle|ncludeSingularTerm|ndent|ndentMaxFraction|ndentingNewlineSpacings|ndexCreationOptions|ndexTag|nequality|nexactNumbers|nformationData|nformationDataGrid|nlineCounterAssignments|nlineCounterIncrements|nlineRules|nputFieldBox|nputFieldBoxOptions|nputGrouping|nputSettings|nputToBoxFormPacket|nsertionPointObject|nset3DBox|nset3DBoxOptions|nsetBox|nsetBoxOptions|ntegral|nterlaced|nterpolationPrecision|nterpretTemplate|nterruptSettings|nto|nvisibleApplication|nvisibleTimes|temBox|temBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:J(?:acobian|oinedCurveBox|oinedCurveBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:K(?:|ernelExecute|et))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:L(?:abeledSlider|ambertW|anguageOptions|aunch|ayoutInformation|exicographic|icenseID|ine3DBox|ine3DBoxOptions|ineBox|ineBoxOptions|ineBreak|ineWrapParts|inearFilter|inebreakSemicolonWeighting|inkConnectedQ|inkError|inkFlush|inkHost|inkMode|inkOptions|inkReadHeld|inkService|inkWriteHeld|istPickerBoxBackground|isten|iteralSearch|ocalizeDefinitions|ocatorBox|ocatorBoxOptions|ocatorCentering|ocatorPaneBox|ocatorPaneBoxOptions|ongEqual|ongForm|oopback))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:M(?:achineID|achineName|acintoshSystemPageSetup|ainSolve|aintainDynamicCaches|akeRules|atchLocalNameQ|aterial|athMLText|athematicaNotation|axBend|axPoints|enu|enuAppearance|enuEvaluator|enuItem|enuList|ergeDifferences|essageObject|essageOptions|essagesNotebook|etaCharacters|ethodOptions|inRecursion|inSize|ode|odular|onomialOrder|ouseAppearanceTag|ouseButtons|ousePointerNote|ultiLetterItalics|ultiLetterStyle|ultiplicity|ultiscriptBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:N(?:BernoulliB|ProductFactors|SumTerms|Values|amespaceBox|amespaceBoxOptions|estedScriptRules|etworkPacketRecordingDuring|ext|onAssociative|ormalGrouping|otebookDefault|otebookInterfaceObject))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:O(?:LEData|bjectExistsQ|pen|penFunctionInspectorPacket|penSpecialOptions|penerBox|penerBoxOptions|ptionQ|ptionValueBox|ptionValueBoxOptions|ptionsPacket|utputFormData|utputGrouping|utputMathEditExpression|ver|verlayBox|verlayBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:P(?:ackPaclet|ackage|acletDirectoryAdd|acletDirectoryRemove|acletInformation|acletObjectQ|acletUpdate|ageHeight|alettesMenuSettings|aneBox|aneBoxOptions|aneSelectorBox|aneSelectorBoxOptions|anelBox|anelBoxOptions|aperWidth|arameter|arameterVariables|arentConnect|arentForm|arentList|arenthesize|artialD|asteAutoQuoteCharacters|ausedTime|eriodicInterpolation|erpendicular|ickMode|ickedElements|ivoting|lotRangeClipPlanesStyle|oint3DBox|oint3DBoxOptions|ointBox|ointBoxOptions|olygon3DBox|olygon3DBoxOptions|olygonBox|olygonBoxOptions|olygonHoleScale|olygonScale|olyhedronBox|olyhedronBoxOptions|olynomialForm|olynomials|opupMenuBox|opupMenuBoxOptions|ostScript|recedence|redictionRoot|referencesSettings|revious|rimaryPlaceholder|rintForm|rismBox|rismBoxOptions|rivateFrontEndOptions|robabilityPr|rocessStateDomain|rocessTimeDomain|rogressIndicatorBox|rogressIndicatorBoxOptions|romptForm|yramidBox|yramidBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:R(?:adioButtonBox|adioButtonBoxOptions|andomSeed|angeSpecification|aster3DBox|aster3DBoxOptions|asterBox|asterBoxOptions|ationalFunctions|awArray|awMedium|ebuildPacletData|ectangleBox|ecurringDigitsForm|eferenceMarkerStyle|eferenceMarkers|einstall|emoved|epeatedString|esourceAcquire|esourceSubmissionObject|eturnCreatesNewCell|eturnEntersInput|eturnInputFormPacket|otationBox|otationBoxOptions|oundImplies|owBackgrounds|owHeights|uleCondition|uleForm))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:S(?:aveAutoDelete|caledMousePosition|cheduledTaskInformationData|criptForm|criptRules|ectionGrouping|electWithContents|election|electionCell|electionCellCreateCell|electionCellDefaultStyle|electionCellParentStyle|electionPlaceholder|elfLoops|erviceResponse|etOptionsPacket|etSecuredAuthenticationKey|etbacks|etterBox|etterBoxOptions|howAutoConvert|howCodeAssist|howControls|howGroupOpenCloseIcon|howInvisibleCharacters|howPredictiveInterface|howSyntaxStyles|hrinkWrapBoundingBox|ingleEvaluation|ingleLetterStyle|lider2DBox|lider2DBoxOptions|ocket|olveDelayed|oundAndGraphics|pace|paceForm|panningCharacters|phereBox|phereBoxOptions|tartupSound|tringBreak|tringByteCount|tripStyleOnPaste|trokeForm|tructuredArrayHeadQ|tyleKeyMapping|tyleNames|urfaceAppearance|yntax|ystemException|ystemGet|ystemInformationData|ystemStub|ystemTest))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:T(?:ab|abViewBox|abViewBoxOptions|ableViewBox|ableViewBoxAlignment|ableViewBoxBackground|ableViewBoxHeaders|ableViewBoxItemSize|ableViewBoxItemStyle|ableViewBoxOptions|agBoxNote|agStyle|emplateEvaluate|emplateSlotSequence|emplateUnevaluated|emplateVerbatim|emporaryVariable|ensorQ|etrahedronBox|etrahedronBoxOptions|ext3DBox|ext3DBoxOptions|extBand|extBoundingBox|extBox|extForm|extLine|extParagraph|hisLink|itleGrouping|oColor|oggle|oggleFalse|ogglerBox|ogglerBoxOptions|ooBig|ooltipBox|ooltipBoxOptions|otalHeight|raceAction|raceInternal|raceLevel|rackCellChangeTimes|raditionalNotation|raditionalOrder|ransparentColor|rapEnterKey|rapSelection|ubeBSplineCurveBox|ubeBSplineCurveBoxOptions|ubeBezierCurveBox|ubeBezierCurveBoxOptions|ubeBox|ubeBoxOptions))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:U(?:ntrackedVariables|p|seGraphicsRange|serDefinedWavelet|sing))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:V(?:2Get|alueBox|alueBoxOptions|alueForm|aluesData|ectorGlyphData|erbose|ertical|erticalForm|iewPointSelectorSettings|iewPort|irtualGroupData|isibleCell))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:W(?:aitUntil|ebPageMetaInformation|holeCellGroupOpener|indowPersistentStyles|indowSelected|indowWidth|olframAlphaDate|olframAlphaQuantity|olframAlphaResult|olframCloudSettings))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:\\$(?:ActivationGroupID|ActivationUserRegistered|AddOnsDirectory|BoxForms|CloudConnection|CloudVersionNumber|CloudWolframEngineVersionNumber|ConditionHold|DefaultMailbox|DefaultPath|FinancialDataSource|GeoEntityTypes|GeoLocationPrecision|HTMLExportRules|HTTPRequest|LaunchDirectory|LicenseProcesses|LicenseSubprocesses|LicenseType|LinkSupported|LoadedFiles|MaxLicenseProcesses|MaxLicenseSubprocesses|MinorReleaseNumber|NetworkLicense|Off|OutputForms|PatchLevelID|PermissionsGroupBase|PipeSupported|PreferencesDirectory|PrintForms|PrintLiteral|RegisteredDeviceClasses|RegisteredUserName|SecuredAuthenticationKeyTokens|SetParentLink|SoundDisplay|SuppressInputFormHeads|SystemMemory|TraceOff|TraceOn|TracePattern|TracePostAction|TracePreAction|UserAgentLanguages|UserAgentMachine|UserAgentName|UserAgentOperatingSystem|UserAgentVersion|UserName))(?![`$[:alnum:]])",name:"support.function.undocumented.wolfram"},{match:"(?:A(?:ctiveClassification|ctiveClassificationObject|ctivePrediction|ctivePredictionObject|ddToSearchIndex|ggregatedEntityClass|ggregationLayer|ngleBisector|nimatedImage|nimationVideo|nomalyDetector|ppendLayer|pplication|pplyReaction|round|roundReplace|rrayReduce|sk|skAppend|skConfirm|skDisplay|skFunction|skState|skTemplateDisplay|skedQ|skedValue|ssessmentFunction|ssessmentResultObject|ssumeDeterministic|stroAngularSeparation|stroBackground|stroCenter|stroDistance|stroGraphics|stroGridLines|stroGridLinesStyle|stroPosition|stroProjection|stroRange|stroRangePadding|stroReferenceFrame|stroStyling|stroZoomLevel|tom|tomCoordinates|tomCount|tomDiagramCoordinates|tomLabelStyle|tomLabels|tomList|ttachCell|ttentionLayer|udioAnnotate|udioAnnotationLookup|udioIdentify|udioInstanceQ|udioPause|udioPlay|udioRecord|udioStop|udioStream|udioStreams|udioTrackApply|udioTrackSelection|utocomplete|utocompletionFunction|xiomaticTheory|xisLabel|xisObject|xisStyle))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:B(?:asicRecurrentLayer|atchNormalizationLayer|atchSize|ayesianMaximization|ayesianMaximizationObject|ayesianMinimization|ayesianMinimizationObject|esagL|innedVariogramList|inomialPointProcess|ioSequence|ioSequenceBackTranslateList|ioSequenceComplement|ioSequenceInstances|ioSequenceModify|ioSequencePlot|ioSequenceQ|ioSequenceReverseComplement|ioSequenceTranscribe|ioSequenceTranslate|itRate|lockDiagonalMatrix|lockLowerTriangularMatrix|lockUpperTriangularMatrix|lockchainAddressData|lockchainBase|lockchainBlockData|lockchainContractValue|lockchainData|lockchainGet|lockchainKeyEncode|lockchainPut|lockchainTokenData|lockchainTransaction|lockchainTransactionData|lockchainTransactionSign|lockchainTransactionSubmit|ond|ondCount|ondLabelStyle|ondLabels|ondList|ondQ|uildCompiledComponent))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:C(?:TCLossLayer|achePersistence|anvas|ast|ategoricalDistribution|atenateLayer|auchyPointProcess|hannelBase|hannelBrokerAction|hannelHistoryLength|hannelListen|hannelListener|hannelListeners|hannelObject|hannelReceiverFunction|hannelSend|hannelSubscribers|haracterNormalize|hemicalConvert|hemicalFormula|hemicalInstance|hemicalReaction|loudExpression|loudExpressions|loudRenderingMethod|ombinatorB|ombinatorC|ombinatorI|ombinatorK|ombinatorS|ombinatorW|ombinatorY|ombinedEntityClass|ompiledCodeFunction|ompiledComponent|ompiledExpressionDeclaration|ompiledLayer|ompilerCallback|ompilerEnvironment|ompilerEnvironmentAppendTo|ompilerEnvironmentObject|ompilerOptions|omplementedEntityClass|omputeUncertainty|onfirmQuiet|onformationMethod|onnectSystemModelComponents|onnectSystemModelController|onnectedMoleculeComponents|onnectedMoleculeQ|onnectionSettings|ontaining|ontentDetectorFunction|ontentFieldOptions|ontentLocationFunction|ontentObject|ontrastiveLossLayer|onvolutionLayer|reateChannel|reateCloudExpression|reateCompilerEnvironment|reateDataStructure|reateDataSystemModel|reateLicenseEntitlement|reateSearchIndex|reateSystemModel|reateTypeInstance|rossEntropyLossLayer|urrentNotebookImage|urrentScreenImage|urryApplied))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:D(?:SolveChangeVariables|ataStructure|ataStructureQ|atabaseConnect|atabaseDisconnect|atabaseReference|atabinSubmit|ateInterval|eclareCompiledComponent|econvolutionLayer|ecryptFile|eleteChannel|eleteCloudExpression|eleteElements|eleteSearchIndex|erivedKey|iggleGatesPointProcess|iggleGrattonPointProcess|igitalSignature|isableFormatting|ocumentWeightingRules|otLayer|ownValuesFunction|ropoutLayer|ynamicImage))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:E(?:choTiming|lementwiseLayer|mbeddedSQLEntityClass|mbeddedSQLExpression|mbeddingLayer|mptySpaceF|ncryptFile|ntityFunction|ntityStore|stimatedPointProcess|stimatedVariogramModel|valuationEnvironment|valuationPrivileges|xpirationDate|xpressionTree|xtendedEntityClass|xternalEvaluate|xternalFunction|xternalIdentifier|xternalObject|xternalSessionObject|xternalSessions|xternalStorageBase|xternalStorageDownload|xternalStorageGet|xternalStorageObject|xternalStoragePut|xternalStorageUpload|xternalValue|xtractLayer))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:F(?:aceRecognize|eatureDistance|eatureExtract|eatureExtraction|eatureExtractor|eatureExtractorFunction|ileConvert|ileFormatProperties|ileNameToFormatList|ileSystemTree|ilteredEntityClass|indChannels|indEquationalProof|indExternalEvaluators|indGeometricConjectures|indImageText|indIsomers|indMoleculeSubstructure|indPointProcessParameters|indSystemModelEquilibrium|indTextualAnswer|lattenLayer|orAllType|ormControl|orwardCloudCredentials|oxHReduce|rameListVideo|romRawPointer|unctionCompile|unctionCompileExport|unctionCompileExportByteArray|unctionCompileExportLibrary|unctionCompileExportString|unctionDeclaration|unctionLayer|unctionPoles))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:G(?:alleryView|atedRecurrentLayer|enerateDerivedKey|enerateDigitalSignature|enerateFileSignature|enerateSecuredAuthenticationKey|eneratedAssetFormat|eneratedAssetLocation|eoGraphValuePlot|eoOrientationData|eometricAssertion|eometricScene|eometricStep|eometricStylingRules|eometricTest|ibbsPointProcess|raphTree|ridVideo))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:H(?:andlerFunctions|andlerFunctionsKeys|ardcorePointProcess|istogramPointDensity))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:I(?:gnoreIsotopes|gnoreStereochemistry|mageAugmentationLayer|mageBoundingBoxes|mageCases|mageContainsQ|mageContents|mageGraphics|magePosition|magePyramid|magePyramidApply|mageStitch|mportedObject|ncludeAromaticBonds|ncludeHydrogens|ncludeRelatedTables|nertEvaluate|nertExpression|nfiniteFuture|nfinitePast|nhomogeneousPoissonPointProcess|nitialEvaluationHistory|nitializationObject|nitializationObjects|nitializationValue|nitialize|nputPorts|ntegrateChangeVariables|nterfaceSwitched|ntersectedEntityClass|nverseImagePyramid))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:K(?:ernelConfiguration|ernelFunction))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:L(?:earningRateMultipliers|ibraryFunctionDeclaration|icenseEntitlementObject|icenseEntitlements|icensingSettings|inearLayer|iteralType|oadCompiledComponent|ocalResponseNormalizationLayer|ongShortTermMemoryLayer|ossFunction))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:M(?:IMETypeToFormatList|ailExecute|ailFolder|ailItem|ailSearch|ailServerConnect|ailServerConnection|aternPointProcess|axDisplayedChildren|axTrainingRounds|axWordGap|eanAbsoluteLossLayer|eanAround|eanPointDensity|eanSquaredLossLayer|ergingFunction|idpoint|issingValuePattern|issingValueSynthesis|olecule|oleculeAlign|oleculeContainsQ|oleculeDraw|oleculeFreeQ|oleculeGraph|oleculeMatchQ|oleculeMaximumCommonSubstructure|oleculeModify|oleculeName|oleculePattern|oleculePlot|oleculePlot3D|oleculeProperty|oleculeQ|oleculeRecognize|oleculeSubstructureCount|oleculeValue))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:N(?:BodySimulation|BodySimulationData|earestNeighborG|estTree|etAppend|etArray|etArrayLayer|etBidirectionalOperator|etChain|etDecoder|etDelete|etDrop|etEncoder|etEvaluationMode|etExternalObject|etExtract|etFlatten|etFoldOperator|etGANOperator|etGraph|etInitialize|etInsert|etInsertSharedArrays|etJoin|etMapOperator|etMapThreadOperator|etMeasurements|etModel|etNestOperator|etPairEmbeddingOperator|etPort|etPortGradient|etPrepend|etRename|etReplace|etReplacePart|etStateObject|etTake|etTrain|etTrainResultsObject|etUnfold|etworkPacketCapture|etworkPacketRecording|etworkPacketTrace|eymanScottPointProcess|ominalScale|ormalizationLayer|umericArray|umericArrayQ|umericArrayType))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:O(?:peratorApplied|rderingLayer|rdinalScale|utputPorts|verlayVideo))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:P(?:acletSymbol|addingLayer|agination|airCorrelationG|arametricRampLayer|arentEdgeLabel|arentEdgeLabelFunction|arentEdgeLabelStyle|arentEdgeShapeFunction|arentEdgeStyle|arentEdgeStyleFunction|artLayer|artProtection|atternFilling|atternReaction|enttinenPointProcess|erpendicularBisector|ersistenceLocation|ersistenceTime|ersistentObject|ersistentObjects|ersistentSymbol|itchRecognize|laceholderLayer|laybackSettings|ointCountDistribution|ointDensity|ointDensityFunction|ointProcessEstimator|ointProcessFitTest|ointProcessParameterAssumptions|ointProcessParameterQ|ointStatisticFunction|ointValuePlot|oissonPointProcess|oolingLayer|rependLayer|roofObject|ublisherID))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:Q(?:uestionGenerator|uestionInterface|uestionObject|uestionSelector))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:R(?:andomArrayLayer|andomInstance|andomPointConfiguration|andomTree|eactionBalance|eactionBalancedQ|ecalibrationFunction|egisterExternalEvaluator|elationalDatabase|emoteAuthorizationCaching|emoteBatchJobAbort|emoteBatchJobObject|emoteBatchJobs|emoteBatchMapSubmit|emoteBatchSubmissionEnvironment|emoteBatchSubmit|emoteConnect|emoteConnectionObject|emoteEvaluate|emoteFile|emoteInputFiles|emoteProviderSettings|emoteRun|emoteRunProcess|emovalConditions|emoveAudioStream|emoveChannelListener|emoveChannelSubscribers|emoveVideoStream|eplicateLayer|eshapeLayer|esizeLayer|esourceFunction|esourceRegister|esourceRemove|esourceSubmit|esourceSystemBase|esourceSystemPath|esourceUpdate|esourceVersion|everseApplied|ipleyK|ipleyRassonRegion|ootTree|ulesTree))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:S(?:ameTestProperties|ampledEntityClass|earchAdjustment|earchIndexObject|earchIndices|earchQueryString|earchResultObject|ecuredAuthenticationKey|ecuredAuthenticationKeys|ecurityCertificate|equenceIndicesLayer|equenceLastLayer|equenceMostLayer|equencePredict|equencePredictorFunction|equenceRestLayer|equenceReverseLayer|erviceRequest|erviceSubmit|etFileFormatProperties|etSystemModel|lideShowVideo|moothPointDensity|nippet|nippetsVideo|nubPolyhedron|oftmaxLayer|olidBoundaryLoadValue|olidDisplacementCondition|olidFixedCondition|olidMechanicsPDEComponent|olidMechanicsStrain|olidMechanicsStress|ortedEntityClass|ourceLink|patialBinnedPointData|patialBoundaryCorrection|patialEstimate|patialEstimatorFunction|patialJ|patialNoiseLevel|patialObservationRegionQ|patialPointData|patialPointSelect|patialRandomnessTest|patialTransformationLayer|patialTrendFunction|peakerMatchQ|peechCases|peechInterpreter|peechRecognize|plice|tartExternalSession|tartWebSession|tereochemistryElements|traussHardcorePointProcess|traussPointProcess|ubsetCases|ubsetCount|ubsetPosition|ubsetReplace|ubtitleTrackSelection|ummationLayer|ymmetricDifference|ynthesizeMissingValues|ystemCredential|ystemCredentialData|ystemCredentialKey|ystemCredentialKeys|ystemCredentialStoreObject|ystemInstall|ystemModel|ystemModelExamples|ystemModelLinearize|ystemModelMeasurements|ystemModelParametricSimulate|ystemModelPlot|ystemModelReliability|ystemModelSimulate|ystemModelSimulateSensitivity|ystemModelSimulationData|ystemModeler|ystemModels))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:T(?:ableView|argetDevice|argetSystem|ernaryListPlot|ernaryPlotCorners|extCases|extContents|extElement|extPosition|extSearch|extSearchReport|extStructure|homasPointProcess|hreaded|hreadingLayer|ickDirection|ickLabelOrientation|ickLabelPositioning|ickLabels|ickLengths|ickPositions|oRawPointer|otalLayer|ourVideo|rainImageContentDetector|rainTextContentDetector|rainingProgressCheckpointing|rainingProgressFunction|rainingProgressMeasurements|rainingProgressReporting|rainingStoppingCriterion|rainingUpdateSchedule|ransposeLayer|ree|reeCases|reeChildren|reeCount|reeData|reeDelete|reeDepth|reeElementCoordinates|reeElementLabel|reeElementLabelFunction|reeElementLabelStyle|reeElementShape|reeElementShapeFunction|reeElementSize|reeElementSizeFunction|reeElementStyle|reeElementStyleFunction|reeExpression|reeExtract|reeFold|reeInsert|reeLayout|reeLeafCount|reeLeafQ|reeLeaves|reeLevel|reeMap|reeMapAt|reeOutline|reePosition|reeQ|reeReplacePart|reeRules|reeScan|reeSelect|reeSize|reeTraversalOrder|riangleCenter|riangleConstruct|riangleMeasurement|ypeDeclaration|ypeEvaluate|ypeOf|ypeSpecifier|yped))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:U(?:RLDownloadSubmit|nconstrainedParameters|nionedEntityClass|niqueElements|nitVectorLayer|nlabeledTree|nmanageObject|nregisterExternalEvaluator|pdateSearchIndex|seEmbeddedLibrary))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:V(?:alenceErrorHandling|alenceFilling|aluePreprocessingFunction|andermondeMatrix|arianceGammaPointProcess|ariogramFunction|ariogramModel|ectorAround|erifyDerivedKey|erifyDigitalSignature|erifyFileSignature|erifyInterpretation|ideo|ideoCapture|ideoCombine|ideoDelete|ideoExtractFrames|ideoFrameList|ideoFrameMap|ideoGenerator|ideoInsert|ideoIntervals|ideoJoin|ideoMap|ideoMapList|ideoMapTimeSeries|ideoPadding|ideoPause|ideoPlay|ideoQ|ideoRecord|ideoReplace|ideoScreenCapture|ideoSplit|ideoStop|ideoStream|ideoStreams|ideoTimeStretch|ideoTrackSelection|ideoTranscode|ideoTransparency|ideoTrim))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:W(?:ebAudioSearch|ebColumn|ebElementObject|ebExecute|ebImage|ebImageSearch|ebItem|ebRow|ebSearch|ebSessionObject|ebSessions|ebWindowObject|ikidataData|ikidataSearch|ikipediaSearch|ithCleanup|ithLock))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:Z(?:oomCenter|oomFactor))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:\\$(?:AllowExternalChannelFunctions|AudioDecoders|AudioEncoders|BlockchainBase|ChannelBase|CompilerEnvironment|CookieStore|CryptographicEllipticCurveNames|CurrentWebSession|DataStructures|DefaultNetworkInterface|DefaultProxyRules|DefaultRemoteBatchSubmissionEnvironment|DefaultRemoteKernel|DefaultSystemCredentialStore|ExternalIdentifierTypes|ExternalStorageBase|GeneratedAssetLocation|IncomingMailSettings|Initialization|InitializationContexts|MaxDisplayedChildren|NetworkInterfaces|NoValue|PersistenceBase|PersistencePath|PreInitialization|PublisherID|ResourceSystemBase|ResourceSystemPath|SSHAuthentication|ServiceCreditsAvailable|SourceLink|SubtitleDecoders|SubtitleEncoders|SystemCredentialStore|TargetSystems|TestFileName|VideoDecoders|VideoEncoders|VoiceStyles))(?![`$[:alnum:]])",name:"support.function.experimental.wolfram"},{match:"(?:A(?:llFalse|nyFalse))(?![`$[:alnum:]])",name:"invalid.bad.wolfram"},{match:"(?:B(?:oolean))(?![`$[:alnum:]])",name:"invalid.bad.wolfram"},{match:"(?:C(?:loudbase|omplexQ))(?![`$[:alnum:]])",name:"invalid.bad.wolfram"},{match:"(?:D(?:ataSet))(?![`$[:alnum:]])",name:"invalid.bad.wolfram"},{match:"(?:E(?:xpandFilename|xportPacket))(?![`$[:alnum:]])",name:"invalid.bad.wolfram"},{match:"(?:F(?:ailed|alseQ))(?![`$[:alnum:]])",name:"invalid.bad.wolfram"},{match:"(?:I(?:nterpolationFunction|nterpolationPolynomial))(?![`$[:alnum:]])",name:"invalid.bad.wolfram"},{match:"(?:M(?:atch))(?![`$[:alnum:]])",name:"invalid.bad.wolfram"},{match:"(?:O(?:ptionPattern|ptionsQ))(?![`$[:alnum:]])",name:"invalid.bad.wolfram"},{match:"(?:R(?:ationalQ|ealQ))(?![`$[:alnum:]])",name:"invalid.bad.wolfram"},{match:"(?:S(?:tringMatch|ymbolQ))(?![`$[:alnum:]])",name:"invalid.bad.wolfram"},{match:"(?:U(?:nSameQ|rlExecute))(?![`$[:alnum:]])",name:"invalid.bad.wolfram"},{match:"(?:\\$(?:PathNameSeparator|RegisteredUsername))(?![`$[:alnum:]])",name:"invalid.bad.wolfram"},{match:"(?:E(?:cho|xit))(?![`$[:alnum:]])",name:"invalid.session.wolfram"},{match:"(?:I(?:n|nString))(?![`$[:alnum:]])",name:"invalid.session.wolfram"},{match:"(?:O(?:ut))(?![`$[:alnum:]])",name:"invalid.session.wolfram"},{match:"(?:P(?:rint))(?![`$[:alnum:]])",name:"invalid.session.wolfram"},{match:"(?:Q(?:uit))(?![`$[:alnum:]])",name:"invalid.session.wolfram"},{match:"(?:\\$(?:HistoryLength|Line|Post|Pre|PrePrint|PreRead|SyntaxHandler))(?![`$[:alnum:]])",name:"invalid.session.wolfram"},{match:"(?:[$[:alpha:]][$[:alnum:]]*)(?=\\s*(\\[(?!\\s*\\[)|@(?!@)))",name:"variable.function.wolfram"},{match:"(?:[$[:alpha:]][$[:alnum:]]*)",name:"symbol.unrecognized.wolfram"}]},groups:{patterns:[{match:"\\\\\\)",name:"invalid.illegal.stray-linearsyntaxparens-end.wolfram"},{match:"\\)",name:"invalid.illegal.stray-parens-end.wolfram"},{match:"\\[\\s+\\[",name:"invalid.whitespace.Part.wolfram"},{match:"\\]\\s+\\]",name:"invalid.whitespace.Part.wolfram"},{match:"\\]\\]",name:"invalid.illegal.stray-parts-end.wolfram"},{match:"\\]",name:"invalid.illegal.stray-brackets-end.wolfram"},{match:"\\}",name:"invalid.illegal.stray-braces-end.wolfram"},{match:"\\|>",name:"invalid.illegal.stray-associations-end.wolfram"},{include:"#linearsyntaxparen-group"},{include:"#paren-group"},{include:"#part-group"},{include:"#bracket-group"},{include:"#brace-group"},{include:"#association-group"}]},"linearsyntaxparen-group":{name:"meta.linearsyntaxparens.wolfram",begin:"\\\\\\(",beginCaptures:{"0":{name:"punctuation.section.linearsyntaxparens.begin.wolfram"}},end:"\\\\\\)",endCaptures:{"0":{name:"punctuation.section.linearsyntaxparens.end.wolfram"}},patterns:[{include:"#expressions"}]},"paren-group":{name:"meta.parens.wolfram",begin:"\\(",beginCaptures:{"0":{name:"punctuation.section.parens.begin.wolfram"}},end:"\\)",endCaptures:{"0":{name:"punctuation.section.parens.end.wolfram"}},patterns:[{include:"#expressions"}]},"part-group":{name:"meta.parts.wolfram",begin:"\\[\\[",beginCaptures:{"0":{name:"punctuation.section.parts.begin.wolfram"}},end:"\\]\\]",endCaptures:{"0":{name:"punctuation.section.parts.end.wolfram"}},patterns:[{include:"#expressions"}]},"bracket-group":{name:"meta.brackets.wolfram",begin:"::\\[|\\[",beginCaptures:{"0":{name:"punctuation.section.brackets.begin.wolfram"}},end:"\\]",endCaptures:{"0":{name:"punctuation.section.brackets.end.wolfram"}},patterns:[{include:"#expressions"}]},"brace-group":{name:"meta.braces.wolfram",begin:"\\{",beginCaptures:{"0":{name:"punctuation.section.braces.begin.wolfram"}},end:"\\}",endCaptures:{"0":{name:"punctuation.section.braces.end.wolfram"}},patterns:[{include:"#expressions"}]},"association-group":{name:"meta.associations.wolfram",begin:"<\\|",beginCaptures:{"0":{name:"punctuation.section.associations.begin.wolfram"}},end:"\\|>",endCaptures:{"0":{name:"punctuation.section.associations.end.wolfram"}},patterns:[{include:"#expressions"}]},"pattern-operators":{patterns:[{match:"___",name:"keyword.operator.BlankNullSequence.wolfram"},{match:"__",name:"keyword.operator.BlankSequence.wolfram"},{match:"_\\.",name:"keyword.operator.Optional.wolfram"},{match:"_",name:"keyword.operator.Blank.wolfram"}]},out:{patterns:[{match:"%\\d+",name:"keyword.other.Out.wolfram"},{match:"%+",name:"keyword.other.Out.wolfram"}]},slot:{patterns:[{match:"#[[:alpha:]][[:alnum:]]*",name:"keyword.other.Slot.wolfram"},{match:"##\\d*",name:"keyword.other.SlotSequence.wolfram"},{match:"#\\d*",name:"keyword.other.Slot.wolfram"}]}}}; + +export { wolfram_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/xml.tmLanguage-42b5ff0e.mjs b/docs/shiki/dist/languages/xml.tmLanguage-42b5ff0e.mjs new file mode 100644 index 00000000..7e8c02ba --- /dev/null +++ b/docs/shiki/dist/languages/xml.tmLanguage-42b5ff0e.mjs @@ -0,0 +1,3 @@ +var xml_tmLanguage = {information_for_contributors:["This file has been converted from https://github.com/atom/language-xml/blob/master/grammars/xml.cson","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."],version:"https://github.com/atom/language-xml/commit/7bc75dfe779ad5b35d9bf4013d9181864358cb49",name:"xml",scopeName:"text.xml",patterns:[{begin:"(<\\?)\\s*([-_a-zA-Z0-9]+)",captures:{"1":{name:"punctuation.definition.tag.xml"},"2":{name:"entity.name.tag.xml"}},end:"(\\?>)",name:"meta.tag.preprocessor.xml",patterns:[{match:" ([a-zA-Z-]+)",name:"entity.other.attribute-name.xml"},{include:"#doublequotedString"},{include:"#singlequotedString"}]},{begin:"(<!)(DOCTYPE)\\s+([:a-zA-Z_][:a-zA-Z0-9_.-]*)",captures:{"1":{name:"punctuation.definition.tag.xml"},"2":{name:"keyword.other.doctype.xml"},"3":{name:"variable.language.documentroot.xml"}},end:"\\s*(>)",name:"meta.tag.sgml.doctype.xml",patterns:[{include:"#internalSubset"}]},{include:"#comments"},{begin:"(<)((?:([-_a-zA-Z0-9]+)(:))?([-_a-zA-Z0-9:]+))(?=(\\s[^>]*)?></\\2>)",beginCaptures:{"1":{name:"punctuation.definition.tag.xml"},"2":{name:"entity.name.tag.xml"},"3":{name:"entity.name.tag.namespace.xml"},"4":{name:"punctuation.separator.namespace.xml"},"5":{name:"entity.name.tag.localname.xml"}},end:"(>)(</)((?:([-_a-zA-Z0-9]+)(:))?([-_a-zA-Z0-9:]+))(>)",endCaptures:{"1":{name:"punctuation.definition.tag.xml"},"2":{name:"punctuation.definition.tag.xml"},"3":{name:"entity.name.tag.xml"},"4":{name:"entity.name.tag.namespace.xml"},"5":{name:"punctuation.separator.namespace.xml"},"6":{name:"entity.name.tag.localname.xml"},"7":{name:"punctuation.definition.tag.xml"}},name:"meta.tag.no-content.xml",patterns:[{include:"#tagStuff"}]},{begin:"(</?)(?:([-\\w\\.]+)((:)))?([-\\w\\.:]+)",captures:{"1":{name:"punctuation.definition.tag.xml"},"2":{name:"entity.name.tag.namespace.xml"},"3":{name:"entity.name.tag.xml"},"4":{name:"punctuation.separator.namespace.xml"},"5":{name:"entity.name.tag.localname.xml"}},end:"(/?>)",name:"meta.tag.xml",patterns:[{include:"#tagStuff"}]},{include:"#entity"},{include:"#bare-ampersand"},{begin:"<%@",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.xml"}},end:"%>",endCaptures:{"0":{name:"punctuation.section.embedded.end.xml"}},name:"source.java-props.embedded.xml",patterns:[{match:"page|include|taglib",name:"keyword.other.page-props.xml"}]},{begin:"<%[!=]?(?!--)",beginCaptures:{"0":{name:"punctuation.section.embedded.begin.xml"}},end:"(?!--)%>",endCaptures:{"0":{name:"punctuation.section.embedded.end.xml"}},name:"source.java.embedded.xml",patterns:[{include:"source.java"}]},{begin:"<!\\[CDATA\\[",beginCaptures:{"0":{name:"punctuation.definition.string.begin.xml"}},end:"]]>",endCaptures:{"0":{name:"punctuation.definition.string.end.xml"}},name:"string.unquoted.cdata.xml"}],repository:{EntityDecl:{begin:"(<!)(ENTITY)\\s+(%\\s+)?([:a-zA-Z_][:a-zA-Z0-9_.-]*)(\\s+(?:SYSTEM|PUBLIC)\\s+)?",captures:{"1":{name:"punctuation.definition.tag.xml"},"2":{name:"keyword.other.entity.xml"},"3":{name:"punctuation.definition.entity.xml"},"4":{name:"variable.language.entity.xml"},"5":{name:"keyword.other.entitytype.xml"}},end:"(>)",patterns:[{include:"#doublequotedString"},{include:"#singlequotedString"}]},"bare-ampersand":{match:"&",name:"invalid.illegal.bad-ampersand.xml"},doublequotedString:{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.xml"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.xml"}},name:"string.quoted.double.xml",patterns:[{include:"#entity"},{include:"#bare-ampersand"}]},entity:{captures:{"1":{name:"punctuation.definition.constant.xml"},"3":{name:"punctuation.definition.constant.xml"}},match:"(&)([:a-zA-Z_][:a-zA-Z0-9_.-]*|#[0-9]+|#x[0-9a-fA-F]+)(;)",name:"constant.character.entity.xml"},internalSubset:{begin:"(\\[)",captures:{"1":{name:"punctuation.definition.constant.xml"}},end:"(\\])",name:"meta.internalsubset.xml",patterns:[{include:"#EntityDecl"},{include:"#parameterEntity"},{include:"#comments"}]},parameterEntity:{captures:{"1":{name:"punctuation.definition.constant.xml"},"3":{name:"punctuation.definition.constant.xml"}},match:"(%)([:a-zA-Z_][:a-zA-Z0-9_.-]*)(;)",name:"constant.character.parameter-entity.xml"},singlequotedString:{begin:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.xml"}},end:"'",endCaptures:{"0":{name:"punctuation.definition.string.end.xml"}},name:"string.quoted.single.xml",patterns:[{include:"#entity"},{include:"#bare-ampersand"}]},tagStuff:{patterns:[{captures:{"1":{name:"entity.other.attribute-name.namespace.xml"},"2":{name:"entity.other.attribute-name.xml"},"3":{name:"punctuation.separator.namespace.xml"},"4":{name:"entity.other.attribute-name.localname.xml"}},match:"(?:^|\\s+)(?:([-\\w.]+)((:)))?([-\\w.:]+)\\s*="},{include:"#doublequotedString"},{include:"#singlequotedString"}]},comments:{patterns:[{begin:"<%--",captures:{"0":{name:"punctuation.definition.comment.xml"},end:"--%>",name:"comment.block.xml"}},{begin:"<!--",captures:{"0":{name:"punctuation.definition.comment.xml"}},end:"-->",name:"comment.block.xml",patterns:[{begin:"--(?!>)",captures:{"0":{name:"invalid.illegal.bad-comments-or-CDATA.xml"}}}]}]}}}; + +export { xml_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/xsl.tmLanguage-b431c449.mjs b/docs/shiki/dist/languages/xsl.tmLanguage-b431c449.mjs new file mode 100644 index 00000000..07704a92 --- /dev/null +++ b/docs/shiki/dist/languages/xsl.tmLanguage-b431c449.mjs @@ -0,0 +1,3 @@ +var xsl_tmLanguage = {information_for_contributors:["This file has been converted from https://github.com/atom/language-xml/blob/master/grammars/xsl.cson","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."],version:"https://github.com/atom/language-xml/commit/507de2ee7daca60cf02e9e21fbeb92bbae73e280",name:"xsl",scopeName:"text.xml.xsl",patterns:[{begin:"(<)(xsl)((:))(template)",captures:{"1":{name:"punctuation.definition.tag.xml"},"2":{name:"entity.name.tag.namespace.xml"},"3":{name:"entity.name.tag.xml"},"4":{name:"punctuation.separator.namespace.xml"},"5":{name:"entity.name.tag.localname.xml"}},end:"(>)",name:"meta.tag.xml.template",patterns:[{captures:{"1":{name:"entity.other.attribute-name.namespace.xml"},"2":{name:"entity.other.attribute-name.xml"},"3":{name:"punctuation.separator.namespace.xml"},"4":{name:"entity.other.attribute-name.localname.xml"}},match:" (?:([-_a-zA-Z0-9]+)((:)))?([a-zA-Z-]+)"},{include:"#doublequotedString"},{include:"#singlequotedString"}]},{include:"text.xml"}],repository:{doublequotedString:{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.xml"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.xml"}},name:"string.quoted.double.xml"},singlequotedString:{begin:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.xml"}},end:"'",endCaptures:{"0":{name:"punctuation.definition.string.end.xml"}},name:"string.quoted.single.xml"}}}; + +export { xsl_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/yaml.tmLanguage-875d6de7.mjs b/docs/shiki/dist/languages/yaml.tmLanguage-875d6de7.mjs new file mode 100644 index 00000000..2e310b59 --- /dev/null +++ b/docs/shiki/dist/languages/yaml.tmLanguage-875d6de7.mjs @@ -0,0 +1,3 @@ +var yaml_tmLanguage = {information_for_contributors:["This file has been converted from https://github.com/textmate/yaml.tmbundle/blob/master/Syntaxes/YAML.tmLanguage","If you want to provide a fix or improvement, please create a pull request against the original repository.","Once accepted there, we are happy to receive an update request."],version:"https://github.com/textmate/yaml.tmbundle/commit/e54ceae3b719506dba7e481a77cea4a8b576ae46",name:"yaml",scopeName:"source.yaml",patterns:[{include:"#comment"},{include:"#property"},{include:"#directive"},{match:"^---",name:"entity.other.document.begin.yaml"},{match:"^\\.{3}",name:"entity.other.document.end.yaml"},{include:"#node"}],repository:{"block-collection":{patterns:[{include:"#block-sequence"},{include:"#block-mapping"}]},"block-mapping":{patterns:[{include:"#block-pair"}]},"block-node":{patterns:[{include:"#prototype"},{include:"#block-scalar"},{include:"#block-collection"},{include:"#flow-scalar-plain-out"},{include:"#flow-node"}]},"block-pair":{patterns:[{begin:"\\?",beginCaptures:{"1":{name:"punctuation.definition.key-value.begin.yaml"}},end:"(?=\\?)|^ *(:)|(:)",endCaptures:{"1":{name:"punctuation.separator.key-value.mapping.yaml"},"2":{name:"invalid.illegal.expected-newline.yaml"}},name:"meta.block-mapping.yaml",patterns:[{include:"#block-node"}]},{begin:"(?x)\n (?=\n (?x:\n [^\\s[-?:,\\[\\]{}#&*!|>'\"%@`]]\n | [?:-] \\S\n )\n (\n [^\\s:]\n | : \\S\n | \\s+ (?![#\\s])\n )*\n \\s*\n :\n\t\t\t\t\t\t\t(\\s|$)\n )\n ",end:"(?x)\n (?=\n \\s* $\n | \\s+ \\#\n | \\s* : (\\s|$)\n )\n ",patterns:[{include:"#flow-scalar-plain-out-implicit-type"},{begin:"(?x)\n [^\\s[-?:,\\[\\]{}#&*!|>'\"%@`]]\n | [?:-] \\S\n ",beginCaptures:{"0":{name:"entity.name.tag.yaml"}},contentName:"entity.name.tag.yaml",end:"(?x)\n (?=\n \\s* $\n | \\s+ \\#\n | \\s* : (\\s|$)\n )\n ",name:"string.unquoted.plain.out.yaml"}]},{match:":(?=\\s|$)",name:"punctuation.separator.key-value.mapping.yaml"}]},"block-scalar":{begin:"(?:(\\|)|(>))([1-9])?([-+])?(.*\\n?)",beginCaptures:{"1":{name:"keyword.control.flow.block-scalar.literal.yaml"},"2":{name:"keyword.control.flow.block-scalar.folded.yaml"},"3":{name:"constant.numeric.indentation-indicator.yaml"},"4":{name:"storage.modifier.chomping-indicator.yaml"},"5":{patterns:[{include:"#comment"},{match:".+",name:"invalid.illegal.expected-comment-or-newline.yaml"}]}},end:"^(?=\\S)|(?!\\G)",patterns:[{begin:"^([ ]+)(?! )",end:"^(?!\\1|\\s*$)",name:"string.unquoted.block.yaml"}]},"block-sequence":{match:"(-)(?!\\S)",name:"punctuation.definition.block.sequence.item.yaml"},comment:{begin:"(?:(^[ \\t]*)|[ \\t]+)(?=#\\p{Print}*$)",beginCaptures:{"1":{name:"punctuation.whitespace.comment.leading.yaml"}},end:"(?!\\G)",patterns:[{begin:"#",beginCaptures:{"0":{name:"punctuation.definition.comment.yaml"}},end:"\\n",name:"comment.line.number-sign.yaml"}]},directive:{begin:"^%",beginCaptures:{"0":{name:"punctuation.definition.directive.begin.yaml"}},end:"(?=$|[ \\t]+($|#))",name:"meta.directive.yaml",patterns:[{captures:{"1":{name:"keyword.other.directive.yaml.yaml"},"2":{name:"constant.numeric.yaml-version.yaml"}},match:"\\G(YAML)[ \\t]+(\\d+\\.\\d+)"},{captures:{"1":{name:"keyword.other.directive.tag.yaml"},"2":{name:"storage.type.tag-handle.yaml"},"3":{name:"support.type.tag-prefix.yaml"}},match:"(?x)\n \\G\n (TAG)\n (?:[ \\t]+\n ((?:!(?:[0-9A-Za-z\\-]*!)?))\n (?:[ \\t]+ (\n ! (?x: %[0-9A-Fa-f]{2} | [0-9A-Za-z\\-#;/?:@&=+$,_.!~*'()\\[\\]] )*\n | (?![,!\\[\\]{}]) (?x: %[0-9A-Fa-f]{2} | [0-9A-Za-z\\-#;/?:@&=+$,_.!~*'()\\[\\]] )+\n )\n )?\n )?\n "},{captures:{"1":{name:"support.other.directive.reserved.yaml"},"2":{name:"string.unquoted.directive-name.yaml"},"3":{name:"string.unquoted.directive-parameter.yaml"}},match:"(?x) \\G (\\w+) (?:[ \\t]+ (\\w+) (?:[ \\t]+ (\\w+))? )?"},{match:"\\S+",name:"invalid.illegal.unrecognized.yaml"}]},"flow-alias":{captures:{"1":{name:"keyword.control.flow.alias.yaml"},"2":{name:"punctuation.definition.alias.yaml"},"3":{name:"variable.other.alias.yaml"},"4":{name:"invalid.illegal.character.anchor.yaml"}},match:"((\\*))([^\\s\\[\\]/{/},]+)([^\\s\\]},]\\S*)?"},"flow-collection":{patterns:[{include:"#flow-sequence"},{include:"#flow-mapping"}]},"flow-mapping":{begin:"\\{",beginCaptures:{"0":{name:"punctuation.definition.mapping.begin.yaml"}},end:"\\}",endCaptures:{"0":{name:"punctuation.definition.mapping.end.yaml"}},name:"meta.flow-mapping.yaml",patterns:[{include:"#prototype"},{match:",",name:"punctuation.separator.mapping.yaml"},{include:"#flow-pair"}]},"flow-node":{patterns:[{include:"#prototype"},{include:"#flow-alias"},{include:"#flow-collection"},{include:"#flow-scalar"}]},"flow-pair":{patterns:[{begin:"\\?",beginCaptures:{"0":{name:"punctuation.definition.key-value.begin.yaml"}},end:"(?=[},\\]])",name:"meta.flow-pair.explicit.yaml",patterns:[{include:"#prototype"},{include:"#flow-pair"},{include:"#flow-node"},{begin:":(?=\\s|$|[\\[\\]{},])",beginCaptures:{"0":{name:"punctuation.separator.key-value.mapping.yaml"}},end:"(?=[},\\]])",patterns:[{include:"#flow-value"}]}]},{begin:"(?x)\n (?=\n (?:\n [^\\s[-?:,\\[\\]{}#&*!|>'\"%@`]]\n | [?:-] [^\\s[\\[\\]{},]]\n )\n (\n [^\\s:[\\[\\]{},]]\n | : [^\\s[\\[\\]{},]]\n | \\s+ (?![#\\s])\n )*\n \\s*\n :\n\t\t\t\t\t\t\t(\\s|$)\n )\n ",end:"(?x)\n (?=\n \\s* $\n | \\s+ \\#\n | \\s* : (\\s|$)\n | \\s* : [\\[\\]{},]\n | \\s* [\\[\\]{},]\n )\n ",name:"meta.flow-pair.key.yaml",patterns:[{include:"#flow-scalar-plain-in-implicit-type"},{begin:"(?x)\n [^\\s[-?:,\\[\\]{}#&*!|>'\"%@`]]\n | [?:-] [^\\s[\\[\\]{},]]\n ",beginCaptures:{"0":{name:"entity.name.tag.yaml"}},contentName:"entity.name.tag.yaml",end:"(?x)\n (?=\n \\s* $\n | \\s+ \\#\n | \\s* : (\\s|$)\n | \\s* : [\\[\\]{},]\n | \\s* [\\[\\]{},]\n )\n ",name:"string.unquoted.plain.in.yaml"}]},{include:"#flow-node"},{begin:":(?=\\s|$|[\\[\\]{},])",captures:{"0":{name:"punctuation.separator.key-value.mapping.yaml"}},end:"(?=[},\\]])",name:"meta.flow-pair.yaml",patterns:[{include:"#flow-value"}]}]},"flow-scalar":{patterns:[{include:"#flow-scalar-double-quoted"},{include:"#flow-scalar-single-quoted"},{include:"#flow-scalar-plain-in"}]},"flow-scalar-double-quoted":{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.yaml"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.yaml"}},name:"string.quoted.double.yaml",patterns:[{match:"\\\\([0abtnvfre \"/\\\\N_Lp]|x\\d\\d|u\\d{4}|U\\d{8})",name:"constant.character.escape.yaml"},{match:"\\\\\\n",name:"constant.character.escape.double-quoted.newline.yaml"}]},"flow-scalar-plain-in":{patterns:[{include:"#flow-scalar-plain-in-implicit-type"},{begin:"(?x)\n [^\\s[-?:,\\[\\]{}#&*!|>'\"%@`]]\n | [?:-] [^\\s[\\[\\]{},]]\n ",end:"(?x)\n (?=\n \\s* $\n | \\s+ \\#\n | \\s* : (\\s|$)\n | \\s* : [\\[\\]{},]\n | \\s* [\\[\\]{},]\n )\n ",name:"string.unquoted.plain.in.yaml"}]},"flow-scalar-plain-in-implicit-type":{patterns:[{captures:{"1":{name:"constant.language.null.yaml"},"2":{name:"constant.language.boolean.yaml"},"3":{name:"constant.numeric.integer.yaml"},"4":{name:"constant.numeric.float.yaml"},"5":{name:"constant.other.timestamp.yaml"},"6":{name:"constant.language.value.yaml"},"7":{name:"constant.language.merge.yaml"}},match:"(?x)\n (?x:\n (null|Null|NULL|~)\n | (y|Y|yes|Yes|YES|n|N|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFF)\n | (\n (?:\n [-+]? 0b [0-1_]+ # (base 2)\n | [-+]? 0 [0-7_]+ # (base 8)\n | [-+]? (?: 0|[1-9][0-9_]*) # (base 10)\n | [-+]? 0x [0-9a-fA-F_]+ # (base 16)\n | [-+]? [1-9] [0-9_]* (?: :[0-5]?[0-9])+ # (base 60)\n )\n )\n | (\n (?x:\n [-+]? (?: [0-9] [0-9_]*)? \\. [0-9.]* (?: [eE] [-+] [0-9]+)? # (base 10)\n | [-+]? [0-9] [0-9_]* (?: :[0-5]?[0-9])+ \\. [0-9_]* # (base 60)\n | [-+]? \\. (?: inf|Inf|INF) # (infinity)\n | \\. (?: nan|NaN|NAN) # (not a number)\n )\n )\n | (\n (?x:\n \\d{4} - \\d{2} - \\d{2} # (y-m-d)\n | \\d{4} # (year)\n - \\d{1,2} # (month)\n - \\d{1,2} # (day)\n (?: [Tt] | [ \\t]+) \\d{1,2} # (hour)\n : \\d{2} # (minute)\n : \\d{2} # (second)\n (?: \\.\\d*)? # (fraction)\n (?:\n (?:[ \\t]*) Z\n | [-+] \\d{1,2} (?: :\\d{1,2})?\n )? # (time zone)\n )\n )\n | (=)\n | (<<)\n )\n (?:\n (?=\n \\s* $\n | \\s+ \\#\n | \\s* : (\\s|$)\n | \\s* : [\\[\\]{},]\n | \\s* [\\[\\]{},]\n )\n )\n "}]},"flow-scalar-plain-out":{patterns:[{include:"#flow-scalar-plain-out-implicit-type"},{begin:"(?x)\n [^\\s[-?:,\\[\\]{}#&*!|>'\"%@`]]\n | [?:-] \\S\n ",end:"(?x)\n (?=\n \\s* $\n | \\s+ \\#\n | \\s* : (\\s|$)\n )\n ",name:"string.unquoted.plain.out.yaml"}]},"flow-scalar-plain-out-implicit-type":{patterns:[{captures:{"1":{name:"constant.language.null.yaml"},"2":{name:"constant.language.boolean.yaml"},"3":{name:"constant.numeric.integer.yaml"},"4":{name:"constant.numeric.float.yaml"},"5":{name:"constant.other.timestamp.yaml"},"6":{name:"constant.language.value.yaml"},"7":{name:"constant.language.merge.yaml"}},match:"(?x)\n (?x:\n (null|Null|NULL|~)\n | (y|Y|yes|Yes|YES|n|N|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFF)\n | (\n (?:\n [-+]? 0b [0-1_]+ # (base 2)\n | [-+]? 0 [0-7_]+ # (base 8)\n | [-+]? (?: 0|[1-9][0-9_]*) # (base 10)\n | [-+]? 0x [0-9a-fA-F_]+ # (base 16)\n | [-+]? [1-9] [0-9_]* (?: :[0-5]?[0-9])+ # (base 60)\n )\n )\n | (\n (?x:\n [-+]? (?: [0-9] [0-9_]*)? \\. [0-9.]* (?: [eE] [-+] [0-9]+)? # (base 10)\n | [-+]? [0-9] [0-9_]* (?: :[0-5]?[0-9])+ \\. [0-9_]* # (base 60)\n | [-+]? \\. (?: inf|Inf|INF) # (infinity)\n | \\. (?: nan|NaN|NAN) # (not a number)\n )\n )\n | (\n (?x:\n \\d{4} - \\d{2} - \\d{2} # (y-m-d)\n | \\d{4} # (year)\n - \\d{1,2} # (month)\n - \\d{1,2} # (day)\n (?: [Tt] | [ \\t]+) \\d{1,2} # (hour)\n : \\d{2} # (minute)\n : \\d{2} # (second)\n (?: \\.\\d*)? # (fraction)\n (?:\n (?:[ \\t]*) Z\n | [-+] \\d{1,2} (?: :\\d{1,2})?\n )? # (time zone)\n )\n )\n | (=)\n | (<<)\n )\n (?x:\n (?=\n \\s* $\n | \\s+ \\#\n | \\s* : (\\s|$)\n )\n )\n "}]},"flow-scalar-single-quoted":{begin:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.yaml"}},end:"'(?!')",endCaptures:{"0":{name:"punctuation.definition.string.end.yaml"}},name:"string.quoted.single.yaml",patterns:[{match:"''",name:"constant.character.escape.single-quoted.yaml"}]},"flow-sequence":{begin:"\\[",beginCaptures:{"0":{name:"punctuation.definition.sequence.begin.yaml"}},end:"\\]",endCaptures:{"0":{name:"punctuation.definition.sequence.end.yaml"}},name:"meta.flow-sequence.yaml",patterns:[{include:"#prototype"},{match:",",name:"punctuation.separator.sequence.yaml"},{include:"#flow-pair"},{include:"#flow-node"}]},"flow-value":{patterns:[{begin:"\\G(?![},\\]])",end:"(?=[},\\]])",name:"meta.flow-pair.value.yaml",patterns:[{include:"#flow-node"}]}]},node:{patterns:[{include:"#block-node"}]},property:{begin:"(?=!|&)",end:"(?!\\G)",name:"meta.property.yaml",patterns:[{captures:{"1":{name:"keyword.control.property.anchor.yaml"},"2":{name:"punctuation.definition.anchor.yaml"},"3":{name:"entity.name.type.anchor.yaml"},"4":{name:"invalid.illegal.character.anchor.yaml"}},match:"\\G((&))([^\\s\\[\\]/{/},]+)(\\S+)?"},{match:"(?x)\n \\G\n (?:\n ! < (?: %[0-9A-Fa-f]{2} | [0-9A-Za-z\\-#;/?:@&=+$,_.!~*'()\\[\\]] )+ >\n | (?:!(?:[0-9A-Za-z\\-]*!)?) (?: %[0-9A-Fa-f]{2} | [0-9A-Za-z\\-#;/?:@&=+$_.~*'()] )+\n | !\n )\n (?=\\ |\\t|$)\n ",name:"storage.type.tag-handle.yaml"},{match:"\\S+",name:"invalid.illegal.tag-handle.yaml"}]},prototype:{patterns:[{include:"#comment"},{include:"#property"}]}}}; + +export { yaml_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/zenscript.tmLanguage-46b17e39.mjs b/docs/shiki/dist/languages/zenscript.tmLanguage-46b17e39.mjs new file mode 100644 index 00000000..2b2c7817 --- /dev/null +++ b/docs/shiki/dist/languages/zenscript.tmLanguage-46b17e39.mjs @@ -0,0 +1,3 @@ +var zenscript_tmLanguage = {fileTypes:["zs"],name:"zenscript",patterns:[{comment:"numbers",name:"constant.numeric.zenscript",match:"\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)([LlFfUuDd]|UL|ul)?\\b"},{comment:"prefixedNumbers",name:"constant.numeric.zenscript",match:"\\b\\-?(0b|0x|0o|0B|0X|0O)(0|[1-9a-fA-F][0-9a-fA-F_]*)[a-zA-Z_]*\\b"},{include:"#code"},{comment:"arrays",name:"storage.type.object.array.zenscript",match:"\\b((?:[a-z]\\w*\\.)*[A-Z]+\\w*)(?=\\[)"}],repository:{code:{patterns:[{include:"#class"},{include:"#functions"},{include:"#dots"},{include:"#quotes"},{include:"#brackets"},{include:"#comments"},{include:"#var"},{include:"#keywords"},{include:"#constants"},{include:"#operators"}]},"class":{comment:"class",name:"meta.class.zenscript",match:"(zenClass)\\s+(\\w+)",captures:{"1":{name:"storage.type.zenscript"},"2":{name:"entity.name.type.class.zenscript"}}},functions:{comment:"functions",name:"meta.function.zenscript",match:"function\\s+([A-Za-z_$][\\w$]*)\\s*(?=\\()",captures:{"0":{name:"storage.type.function.zenscript"},"1":{name:"entity.name.function.zenscript"}}},dots:{comment:"dots",name:"plain.text.zenscript",match:"\\b(\\w+)(\\.)(\\w+)((\\.)(\\w+))*",captures:{"1":{name:"storage.type.zenscript"},"2":{name:"keyword.control.zenscript"},"5":{name:"keyword.control.zenscript"}}},quotes:{patterns:[{begin:"\"",beginCaptures:{"0":{name:"punctuation.definition.string.begin.zenscript"}},end:"\"",endCaptures:{"0":{name:"punctuation.definition.string.end.zenscript"}},name:"string.quoted.double.zenscript",patterns:[{match:"\\\\.",name:"constant.character.escape.zenscript"}]},{begin:"'",beginCaptures:{"0":{name:"punctuation.definition.string.begin.zenscript"}},end:"'",endCaptures:{"0":{name:"punctuation.definition.string.end.zenscript"}},name:"string.quoted.single.zenscript",patterns:[{match:"\\\\.",name:"constant.character.escape.zenscript"}]}]},brackets:{patterns:[{comment:"items and blocks",name:"keyword.other.zenscript",match:"(<)\\b(.*?)(:(.*?(:(\\*|\\d+)?)?)?)(>)",captures:{"1":{name:"keyword.control.zenscript"},"2":{name:"keyword.other.zenscript"},"3":{name:"keyword.control.zenscript"},"4":{name:"variable.other.zenscript"},"5":{name:"keyword.control.zenscript"},"6":{name:"constant.numeric.zenscript"},"7":{name:"keyword.control.zenscript"}}}]},comments:{patterns:[{comment:"inline comments",name:"comment.line.double=slash",match:"//[^\n]*"},{comment:"block comments",name:"comment.block",begin:"\\/\\*",beginCaptures:{"0":{name:"comment.block"}},end:"\\*\\/",endCaptures:{"0":{name:"comment.block"}}}]},"var":{comment:"var",match:"\\b(val|var)\\b",name:"storage.type"},keywords:{patterns:[{comment:"statement keywords",name:"keyword.control.zenscript",match:"\\b(instanceof|get|implements|set|import|function|override|const|if|else|do|while|for|throw|panic|lock|try|catch|finally|return|break|continue|switch|case|default|in|is|as|match|throws|super|new)\\b"},{comment:"storage keywords",name:"storage.type.zenscript",match:"\\b(zenClass|zenConstructor|alias|class|interface|enum|struct|expand|variant|set|void|bool|byte|sbyte|short|ushort|int|uint|long|ulong|usize|float|double|char|string)\\b"},{comment:"modifier keywords",name:"storage.modifier.zenscript",match:"\\b(variant|abstract|final|private|public|export|internal|static|protected|implicit|virtual|extern|immutable)\\b"},{comment:"annotation keywords",name:"entity.other.attribute-name",match:"\\b(Native|Precondition)\\b"},{comment:"language keywords",name:"constant.language",match:"\\b(null|true|false)\\b"}]},operators:{patterns:[{comment:"math operators",name:"keyword.control",match:"\\b(\\.|\\.\\.|\\.\\.\\.|,|\\+|\\+=|\\+\\+|-|-=|--|~|~=|\\*|\\*=|/|/=|%|%=|\\||\\|=|\\|\\||&|&=|&&|\\^|\\^=|\\?|\\?\\.|\\?\\?|<|<=|<<|<<=|>|>=|>>|>>=|>>>|>>>=|=>|=|==|===|!|!=|!==|\\$|`)\\b"},{comment:"colons",name:"keyword.control",match:"\\b(;|:)\\b"}]}},scopeName:"source.zenscript"}; + +export { zenscript_tmLanguage as default }; diff --git a/docs/shiki/dist/languages/zig.tmLanguage-f1960962.mjs b/docs/shiki/dist/languages/zig.tmLanguage-f1960962.mjs new file mode 100644 index 00000000..8c70fb08 --- /dev/null +++ b/docs/shiki/dist/languages/zig.tmLanguage-f1960962.mjs @@ -0,0 +1,3 @@ +var zig_tmLanguage = {$schema:"https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",name:"zig",scopeName:"source.zig",fileTypes:["zig","zon"],patterns:[{include:"#comments"},{include:"#strings"},{include:"#keywords"},{include:"#operators"},{include:"#numbers"},{include:"#support"},{include:"#variables"}],repository:{variables:{patterns:[{name:"meta.function.declaration.zig",patterns:[{match:"\\b(fn)\\s+([A-Z][a-zA-Z0-9]*)\\b",captures:{"1":{name:"storage.type.function.zig"},"2":{name:"entity.name.type.zig"}}},{match:"\\b(fn)\\s+([_a-zA-Z][_a-zA-Z0-9]*)\\b",captures:{"1":{name:"storage.type.function.zig"},"2":{name:"entity.name.function.zig"}}},{begin:"\\b(fn)\\s+@\"",end:"\"",name:"entity.name.function.string.zig",beginCaptures:{"1":{name:"storage.type.function.zig"}},patterns:[{include:"#stringcontent"}]},{name:"keyword.default.zig",match:"\\b(const|var|fn)\\b"}]},{name:"meta.function.call.zig",patterns:[{match:"([A-Z][a-zA-Z0-9]*)(?=\\s*\\()",name:"entity.name.type.zig"},{match:"([_a-zA-Z][_a-zA-Z0-9]*)(?=\\s*\\()",name:"entity.name.function.zig"}]},{name:"meta.variable.zig",patterns:[{match:"\\b[_a-zA-Z][_a-zA-Z0-9]*\\b",name:"variable.zig"},{begin:"@\"",end:"\"",name:"variable.string.zig",patterns:[{include:"#stringcontent"}]}]}]},keywords:{patterns:[{match:"\\binline\\b(?!\\s*\\bfn\\b)",name:"keyword.control.repeat.zig"},{match:"\\b(while|for)\\b",name:"keyword.control.repeat.zig"},{name:"keyword.storage.zig",match:"\\b(extern|packed|export|pub|noalias|inline|comptime|volatile|align|linksection|threadlocal|allowzero|noinline|callconv)\\b"},{name:"keyword.structure.zig",match:"\\b(struct|enum|union|opaque)\\b"},{name:"keyword.statement.zig",match:"\\b(asm|unreachable)\\b"},{name:"keyword.control.flow.zig",match:"\\b(break|return|continue|defer|errdefer)\\b"},{name:"keyword.control.async.zig",match:"\\b(await|resume|suspend|async|nosuspend)\\b"},{name:"keyword.control.trycatch.zig",match:"\\b(try|catch)\\b"},{name:"keyword.control.conditional.zig",match:"\\b(if|else|switch|orelse)\\b"},{name:"keyword.constant.default.zig",match:"\\b(null|undefined)\\b"},{name:"keyword.constant.bool.zig",match:"\\b(true|false)\\b"},{name:"keyword.default.zig",match:"\\b(usingnamespace|test|and|or)\\b"},{name:"keyword.type.zig",match:"\\b(bool|void|noreturn|type|error|anyerror|anyframe|anytype|anyopaque)\\b"},{name:"keyword.type.integer.zig",match:"\\b(f16|f32|f64|f80|f128|u\\d+|i\\d+|isize|usize|comptime_int|comptime_float)\\b"},{name:"keyword.type.c.zig",match:"\\b(c_char|c_short|c_ushort|c_int|c_uint|c_long|c_ulong|c_longlong|c_ulonglong|c_longdouble)\\b"}]},operators:{patterns:[{name:"keyword.operator.c-pointer.zig",match:"\\[*c\\]"},{name:"keyword.operator.comparison.zig",match:"(\\b(and|or)\\b)|(==|!=)"},{name:"keyword.operator.arithmetic.zig",match:"(-%?|\\+%?|\\*%?|/|%)=?"},{name:"keyword.operator.bitwise.zig",match:"(<<%?|>>|!|&|\\^|\\|)=?"},{name:"keyword.operator.special.zig",match:"(==|\\+\\+|\\*\\*|->)"}]},comments:{patterns:[{name:"comment.line.documentation.zig",begin:"//[!/](?=[^/])",end:"$",patterns:[{include:"#commentContents"}]},{name:"comment.line.double-slash.zig",begin:"//",end:"$",patterns:[{include:"#commentContents"}]}]},commentContents:{patterns:[{match:"\\b(TODO|FIXME|XXX|NOTE)\\b:?",name:"keyword.todo.zig"}]},strings:{patterns:[{name:"string.quoted.double.zig",begin:"\"",end:"\"",patterns:[{include:"#stringcontent"}]},{name:"string.multiline.zig",begin:"\\\\\\\\",end:"$"},{name:"string.quoted.single.zig",match:"'([^'\\\\]|\\\\(x\\h{2}|[0-2][0-7]{,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.))'"}]},stringcontent:{patterns:[{name:"constant.character.escape.zig",match:"\\\\([nrt'\"\\\\]|(x[0-9a-fA-F]{2})|(u\\{[0-9a-fA-F]+\\}))"},{name:"invalid.illegal.unrecognized-string-escape.zig",match:"\\\\."}]},numbers:{patterns:[{name:"constant.numeric.hexfloat.zig",match:"\\b0x[0-9a-fA-F][0-9a-fA-F_]*(\\.[0-9a-fA-F][0-9a-fA-F_]*)?([pP][+-]?[0-9a-fA-F_]+)?\\b"},{name:"constant.numeric.float.zig",match:"\\b[0-9][0-9_]*(\\.[0-9][0-9_]*)?([eE][+-]?[0-9_]+)?\\b"},{name:"constant.numeric.decimal.zig",match:"\\b[0-9][0-9_]*\\b"},{name:"constant.numeric.hexadecimal.zig",match:"\\b0x[a-fA-F0-9_]+\\b"},{name:"constant.numeric.octal.zig",match:"\\b0o[0-7_]+\\b"},{name:"constant.numeric.binary.zig",match:"\\b0b[01_]+\\b"},{name:"constant.numeric.invalid.zig",match:"\\b[0-9](([eEpP][+-])|[0-9a-zA-Z_])*(\\.(([eEpP][+-])|[0-9a-zA-Z_])*)?([eEpP][+-])?[0-9a-zA-Z_]*\\b"}]},support:{patterns:[{comment:"Built-in functions",name:"support.function.builtin.zig",match:"@[_a-zA-Z][_a-zA-Z0-9]*"}]}}}; + +export { zig_tmLanguage as default }; diff --git a/docs/shiki/dist/onig.wasm b/docs/shiki/dist/onig.wasm new file mode 100644 index 00000000..6edbc886 Binary files /dev/null and b/docs/shiki/dist/onig.wasm differ diff --git a/docs/shiki/dist/themes/css-variables-05f06e1d.mjs b/docs/shiki/dist/themes/css-variables-05f06e1d.mjs new file mode 100644 index 00000000..4ae50e7d --- /dev/null +++ b/docs/shiki/dist/themes/css-variables-05f06e1d.mjs @@ -0,0 +1,3 @@ +var cssVariables = {name:"css-variables",type:"css",colors:{"editor.foreground":"#000001","editor.background":"#000002","terminal.ansiBlack":"#A00000","terminal.ansiRed":"#A00001","terminal.ansiGreen":"#A00002","terminal.ansiYellow":"#A00003","terminal.ansiBlue":"#A00004","terminal.ansiMagenta":"#A00005","terminal.ansiCyan":"#A00006","terminal.ansiWhite":"#A00007","terminal.ansiBrightBlack":"#A00008","terminal.ansiBrightRed":"#A00009","terminal.ansiBrightGreen":"#A00010","terminal.ansiBrightYellow":"#A00011","terminal.ansiBrightBlue":"#A00012","terminal.ansiBrightMagenta":"#A00013","terminal.ansiBrightCyan":"#A00014","terminal.ansiBrightWhite":"#A00015"},tokenColors:[{settings:{foreground:"#000001"}},{scope:["keyword.operator.accessor","meta.group.braces.round.function.arguments","meta.template.expression","markup.fenced_code meta.embedded.block"],settings:{foreground:"#000001"}},{scope:"emphasis",settings:{fontStyle:"italic"}},{scope:["strong","markup.heading.markdown","markup.bold.markdown"],settings:{fontStyle:"bold"}},{scope:["markup.italic.markdown"],settings:{fontStyle:"italic"}},{scope:"meta.link.inline.markdown",settings:{fontStyle:"underline",foreground:"#000004"}},{scope:["string","markup.fenced_code","markup.inline"],settings:{foreground:"#000005"}},{scope:["comment","string.quoted.docstring.multi"],settings:{foreground:"#000006"}},{scope:["constant.numeric","constant.language","constant.other.placeholder","constant.character.format.placeholder","variable.language.this","variable.other.object","variable.other.class","variable.other.constant","meta.property-name","meta.property-value","support"],settings:{foreground:"#000004"}},{scope:["keyword","storage.modifier","storage.type","storage.control.clojure","entity.name.function.clojure","entity.name.tag.yaml","support.function.node","support.type.property-name.json","punctuation.separator.key-value","punctuation.definition.template-expression"],settings:{foreground:"#000007"}},{scope:"variable.parameter.function",settings:{foreground:"#000008"}},{scope:["support.function","entity.name.type","entity.other.inherited-class","meta.function-call","meta.instance.constructor","entity.other.attribute-name","entity.name.function","constant.keyword.clojure"],settings:{foreground:"#000009"}},{scope:["entity.name.tag","string.quoted","string.regexp","string.interpolated","string.template","string.unquoted.plain.out.yaml","keyword.other.template"],settings:{foreground:"#000010"}},{scope:["punctuation.definition.arguments","punctuation.definition.dict","punctuation.separator","meta.function-call.arguments"],settings:{foreground:"#000011"}},{name:"[Custom] Markdown links",scope:["markup.underline.link","punctuation.definition.metadata.markdown"],settings:{foreground:"#000012"}},{name:"[Custom] Markdown list",scope:["beginning.punctuation.definition.list.markdown"],settings:{foreground:"#000005"}},{name:"[Custom] Markdown punctuation definition brackets",scope:["punctuation.definition.string.begin.markdown","punctuation.definition.string.end.markdown","string.other.link.title.markdown","string.other.link.description.markdown"],settings:{foreground:"#000007"}}]}; + +export { cssVariables as default }; diff --git a/docs/shiki/dist/themes/dark-plus-3b14211e.mjs b/docs/shiki/dist/themes/dark-plus-3b14211e.mjs new file mode 100644 index 00000000..a2e95eeb --- /dev/null +++ b/docs/shiki/dist/themes/dark-plus-3b14211e.mjs @@ -0,0 +1,3 @@ +var darkPlus = {$schema:"vscode://schemas/color-theme",name:"dark-plus",tokenColors:[{settings:{foreground:"#D4D4D4"}},{scope:["meta.embedded","source.groovy.embedded","string meta.image.inline.markdown"],settings:{foreground:"#D4D4D4"}},{scope:"emphasis",settings:{fontStyle:"italic"}},{scope:"strong",settings:{fontStyle:"bold"}},{scope:"header",settings:{foreground:"#000080"}},{scope:"comment",settings:{foreground:"#6A9955"}},{scope:"constant.language",settings:{foreground:"#569cd6"}},{scope:["constant.numeric","variable.other.enummember","keyword.operator.plus.exponent","keyword.operator.minus.exponent"],settings:{foreground:"#b5cea8"}},{scope:"constant.regexp",settings:{foreground:"#646695"}},{scope:"entity.name.tag",settings:{foreground:"#569cd6"}},{scope:"entity.name.tag.css",settings:{foreground:"#d7ba7d"}},{scope:"entity.other.attribute-name",settings:{foreground:"#9cdcfe"}},{scope:["entity.other.attribute-name.class.css","entity.other.attribute-name.class.mixin.css","entity.other.attribute-name.id.css","entity.other.attribute-name.parent-selector.css","entity.other.attribute-name.pseudo-class.css","entity.other.attribute-name.pseudo-element.css","source.css.less entity.other.attribute-name.id","entity.other.attribute-name.scss"],settings:{foreground:"#d7ba7d"}},{scope:"invalid",settings:{foreground:"#f44747"}},{scope:"markup.underline",settings:{fontStyle:"underline"}},{scope:"markup.bold",settings:{fontStyle:"bold",foreground:"#569cd6"}},{scope:"markup.heading",settings:{fontStyle:"bold",foreground:"#569cd6"}},{scope:"markup.italic",settings:{fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{scope:"markup.inserted",settings:{foreground:"#b5cea8"}},{scope:"markup.deleted",settings:{foreground:"#ce9178"}},{scope:"markup.changed",settings:{foreground:"#569cd6"}},{scope:"punctuation.definition.quote.begin.markdown",settings:{foreground:"#6A9955"}},{scope:"punctuation.definition.list.begin.markdown",settings:{foreground:"#6796e6"}},{scope:"markup.inline.raw",settings:{foreground:"#ce9178"}},{name:"brackets of XML/HTML tags",scope:"punctuation.definition.tag",settings:{foreground:"#808080"}},{scope:["meta.preprocessor","entity.name.function.preprocessor"],settings:{foreground:"#569cd6"}},{scope:"meta.preprocessor.string",settings:{foreground:"#ce9178"}},{scope:"meta.preprocessor.numeric",settings:{foreground:"#b5cea8"}},{scope:"meta.structure.dictionary.key.python",settings:{foreground:"#9cdcfe"}},{scope:"meta.diff.header",settings:{foreground:"#569cd6"}},{scope:"storage",settings:{foreground:"#569cd6"}},{scope:"storage.type",settings:{foreground:"#569cd6"}},{scope:["storage.modifier","keyword.operator.noexcept"],settings:{foreground:"#569cd6"}},{scope:["string","meta.embedded.assembly"],settings:{foreground:"#ce9178"}},{scope:"string.tag",settings:{foreground:"#ce9178"}},{scope:"string.value",settings:{foreground:"#ce9178"}},{scope:"string.regexp",settings:{foreground:"#d16969"}},{name:"String interpolation",scope:["punctuation.definition.template-expression.begin","punctuation.definition.template-expression.end","punctuation.section.embedded"],settings:{foreground:"#569cd6"}},{name:"Reset JavaScript string interpolation expression",scope:["meta.template.expression"],settings:{foreground:"#d4d4d4"}},{scope:["support.type.vendored.property-name","support.type.property-name","variable.css","variable.scss","variable.other.less","source.coffee.embedded"],settings:{foreground:"#9cdcfe"}},{scope:"keyword",settings:{foreground:"#569cd6"}},{scope:"keyword.control",settings:{foreground:"#569cd6"}},{scope:"keyword.operator",settings:{foreground:"#d4d4d4"}},{scope:["keyword.operator.new","keyword.operator.expression","keyword.operator.cast","keyword.operator.sizeof","keyword.operator.alignof","keyword.operator.typeid","keyword.operator.alignas","keyword.operator.instanceof","keyword.operator.logical.python","keyword.operator.wordlike"],settings:{foreground:"#569cd6"}},{scope:"keyword.other.unit",settings:{foreground:"#b5cea8"}},{scope:["punctuation.section.embedded.begin.php","punctuation.section.embedded.end.php"],settings:{foreground:"#569cd6"}},{scope:"support.function.git-rebase",settings:{foreground:"#9cdcfe"}},{scope:"constant.sha.git-rebase",settings:{foreground:"#b5cea8"}},{name:"coloring of the Java import and package identifiers",scope:["storage.modifier.import.java","variable.language.wildcard.java","storage.modifier.package.java"],settings:{foreground:"#d4d4d4"}},{name:"this.self",scope:"variable.language",settings:{foreground:"#569cd6"}},{name:"Function declarations",scope:["entity.name.function","support.function","support.constant.handlebars","source.powershell variable.other.member","entity.name.operator.custom-literal"],settings:{foreground:"#DCDCAA"}},{name:"Types declaration and references",scope:["support.class","support.type","entity.name.type","entity.name.namespace","entity.other.attribute","entity.name.scope-resolution","entity.name.class","storage.type.numeric.go","storage.type.byte.go","storage.type.boolean.go","storage.type.string.go","storage.type.uintptr.go","storage.type.error.go","storage.type.rune.go","storage.type.cs","storage.type.generic.cs","storage.type.modifier.cs","storage.type.variable.cs","storage.type.annotation.java","storage.type.generic.java","storage.type.java","storage.type.object.array.java","storage.type.primitive.array.java","storage.type.primitive.java","storage.type.token.java","storage.type.groovy","storage.type.annotation.groovy","storage.type.parameters.groovy","storage.type.generic.groovy","storage.type.object.array.groovy","storage.type.primitive.array.groovy","storage.type.primitive.groovy"],settings:{foreground:"#4EC9B0"}},{name:"Types declaration and references, TS grammar specific",scope:["meta.type.cast.expr","meta.type.new.expr","support.constant.math","support.constant.dom","support.constant.json","entity.other.inherited-class"],settings:{foreground:"#4EC9B0"}},{name:"Control flow / Special keywords",scope:["keyword.control","source.cpp keyword.operator.new","keyword.operator.delete","keyword.other.using","keyword.other.operator","entity.name.operator"],settings:{foreground:"#C586C0"}},{name:"Variable and parameter name",scope:["variable","meta.definition.variable.name","support.variable","entity.name.variable","constant.other.placeholder"],settings:{foreground:"#9CDCFE"}},{name:"Constants and enums",scope:["variable.other.constant","variable.other.enummember"],settings:{foreground:"#4FC1FF"}},{name:"Object keys, TS grammar specific",scope:["meta.object-literal.key"],settings:{foreground:"#9CDCFE"}},{name:"CSS property value",scope:["support.constant.property-value","support.constant.font-name","support.constant.media-type","support.constant.media","constant.other.color.rgb-value","constant.other.rgb-value","support.constant.color"],settings:{foreground:"#CE9178"}},{name:"Regular expression groups",scope:["punctuation.definition.group.regexp","punctuation.definition.group.assertion.regexp","punctuation.definition.character-class.regexp","punctuation.character.set.begin.regexp","punctuation.character.set.end.regexp","keyword.operator.negation.regexp","support.other.parenthesis.regexp"],settings:{foreground:"#CE9178"}},{scope:["constant.character.character-class.regexp","constant.other.character-class.set.regexp","constant.other.character-class.regexp","constant.character.set.regexp"],settings:{foreground:"#d16969"}},{scope:["keyword.operator.or.regexp","keyword.control.anchor.regexp"],settings:{foreground:"#DCDCAA"}},{scope:"keyword.operator.quantifier.regexp",settings:{foreground:"#d7ba7d"}},{scope:["constant.character","constant.other.option"],settings:{foreground:"#569cd6"}},{scope:"constant.character.escape",settings:{foreground:"#d7ba7d"}},{scope:"entity.name.label",settings:{foreground:"#C8C8C8"}}],semanticTokenColors:{newOperator:"#C586C0",stringLiteral:"#ce9178",customLiteral:"#DCDCAA",numberLiteral:"#b5cea8"},colors:{"checkbox.border":"#6B6B6B","editor.background":"#1E1E1E","editor.foreground":"#D4D4D4","editor.inactiveSelectionBackground":"#3A3D41","editorIndentGuide.background":"#404040","editorIndentGuide.activeBackground":"#707070","editor.selectionHighlightBackground":"#ADD6FF26","list.dropBackground":"#383B3D","activityBarBadge.background":"#007ACC","sideBarTitle.foreground":"#BBBBBB","input.placeholderForeground":"#A6A6A6","menu.background":"#252526","menu.foreground":"#CCCCCC","menu.separatorBackground":"#454545","menu.border":"#454545","statusBarItem.remoteForeground":"#FFF","statusBarItem.remoteBackground":"#16825D","ports.iconRunningProcessForeground":"#369432","sideBarSectionHeader.background":"#0000","sideBarSectionHeader.border":"#ccc3","tab.lastPinnedBorder":"#ccc3","list.activeSelectionIconForeground":"#FFF","terminal.inactiveSelectionBackground":"#3A3D41","widget.border":"#303031"}}; + +export { darkPlus as default }; diff --git a/docs/shiki/dist/themes/dracula-22fc157d.mjs b/docs/shiki/dist/themes/dracula-22fc157d.mjs new file mode 100644 index 00000000..bdbe3444 --- /dev/null +++ b/docs/shiki/dist/themes/dracula-22fc157d.mjs @@ -0,0 +1,3 @@ +var dracula = {$schema:"vscode://schemas/color-theme",name:"dracula",author:"Zeno Rocha",maintainers:["Derek P Sifford <dereksifford@gmail.com>"],semanticClass:"theme.dracula",semanticHighlighting:true,dracula:{base:["#282A36","#F8F8F2","#44475A","#6272A4","#8BE9FD","#50FA7B","#FFB86C","#FF79C6","#BD93F9","#FF5555","#F1FA8C"],ansi:["#21222C","#FF5555","#50FA7B","#F1FA8C","#BD93F9","#FF79C6","#8BE9FD","#F8F8F2","#6272A4","#FF6E6E","#69FF94","#FFFFA5","#D6ACFF","#FF92DF","#A4FFFF","#FFFFFF"],brightOther:["#E9F284","#8BE9FE"],other:["#44475A75","#FFFFFF1A","#FFFFFF","#44475A70","#424450","#343746","#21222C","#191A21"]},colors:{"terminal.background":"#282A36","terminal.foreground":"#F8F8F2","terminal.ansiBrightBlack":"#6272A4","terminal.ansiBrightRed":"#FF6E6E","terminal.ansiBrightGreen":"#69FF94","terminal.ansiBrightYellow":"#FFFFA5","terminal.ansiBrightBlue":"#D6ACFF","terminal.ansiBrightMagenta":"#FF92DF","terminal.ansiBrightCyan":"#A4FFFF","terminal.ansiBrightWhite":"#FFFFFF","terminal.ansiBlack":"#21222C","terminal.ansiRed":"#FF5555","terminal.ansiGreen":"#50FA7B","terminal.ansiYellow":"#F1FA8C","terminal.ansiBlue":"#BD93F9","terminal.ansiMagenta":"#FF79C6","terminal.ansiCyan":"#8BE9FD","terminal.ansiWhite":"#F8F8F2",focusBorder:"#6272A4",foreground:"#F8F8F2","selection.background":"#BD93F9",errorForeground:"#FF5555","button.background":"#44475A","button.foreground":"#F8F8F2","button.secondaryBackground":"#282A36","button.secondaryForeground":"#F8F8F2","button.secondaryHoverBackground":"#343746","dropdown.background":"#343746","dropdown.border":"#191A21","dropdown.foreground":"#F8F8F2","input.background":"#282A36","input.foreground":"#F8F8F2","input.border":"#191A21","input.placeholderForeground":"#6272A4","inputOption.activeBorder":"#BD93F9","inputValidation.infoBorder":"#FF79C6","inputValidation.warningBorder":"#FFB86C","inputValidation.errorBorder":"#FF5555","badge.foreground":"#F8F8F2","badge.background":"#44475A","progressBar.background":"#FF79C6","list.activeSelectionBackground":"#44475A","list.activeSelectionForeground":"#F8F8F2","list.dropBackground":"#44475A","list.focusBackground":"#44475A75","list.highlightForeground":"#8BE9FD","list.hoverBackground":"#44475A75","list.inactiveSelectionBackground":"#44475A75","list.warningForeground":"#FFB86C","list.errorForeground":"#FF5555","activityBar.background":"#343746","activityBar.inactiveForeground":"#6272A4","activityBar.foreground":"#F8F8F2","activityBar.activeBorder":"#FF79C680","activityBar.activeBackground":"#BD93F910","activityBarBadge.background":"#FF79C6","activityBarBadge.foreground":"#F8F8F2","sideBar.background":"#21222C","sideBarTitle.foreground":"#F8F8F2","sideBarSectionHeader.background":"#282A36","sideBarSectionHeader.border":"#191A21","editorGroup.border":"#BD93F9","editorGroup.dropBackground":"#44475A70","editorGroupHeader.tabsBackground":"#191A21","tab.activeBackground":"#282A36","tab.activeForeground":"#F8F8F2","tab.border":"#191A21","tab.activeBorderTop":"#FF79C680","tab.inactiveBackground":"#21222C","tab.inactiveForeground":"#6272A4","editor.foreground":"#F8F8F2","editor.background":"#282A36","editorLineNumber.foreground":"#6272A4","editor.selectionBackground":"#44475A","editor.selectionHighlightBackground":"#424450","editor.foldBackground":"#21222C80","editor.wordHighlightBackground":"#8BE9FD50","editor.wordHighlightStrongBackground":"#50FA7B50","editor.findMatchBackground":"#FFB86C80","editor.findMatchHighlightBackground":"#FFFFFF40","editor.findRangeHighlightBackground":"#44475A75","editor.hoverHighlightBackground":"#8BE9FD50","editor.lineHighlightBorder":"#44475A","editorLink.activeForeground":"#8BE9FD","editor.rangeHighlightBackground":"#BD93F915","editor.snippetTabstopHighlightBackground":"#282A36","editor.snippetTabstopHighlightBorder":"#6272A4","editor.snippetFinalTabstopHighlightBackground":"#282A36","editor.snippetFinalTabstopHighlightBorder":"#50FA7B","editorWhitespace.foreground":"#FFFFFF1A","editorIndentGuide.background":"#FFFFFF1A","editorIndentGuide.activeBackground":"#FFFFFF45","editorRuler.foreground":"#FFFFFF1A","editorCodeLens.foreground":"#6272A4","editorBracketHighlight.foreground1":"#F8F8F2","editorBracketHighlight.foreground2":"#FF79C6","editorBracketHighlight.foreground3":"#8BE9FD","editorBracketHighlight.foreground4":"#50FA7B","editorBracketHighlight.foreground5":"#BD93F9","editorBracketHighlight.foreground6":"#FFB86C","editorBracketHighlight.unexpectedBracket.foreground":"#FF5555","editorOverviewRuler.border":"#191A21","editorOverviewRuler.selectionHighlightForeground":"#FFB86C","editorOverviewRuler.wordHighlightForeground":"#8BE9FD","editorOverviewRuler.wordHighlightStrongForeground":"#50FA7B","editorOverviewRuler.modifiedForeground":"#8BE9FD80","editorOverviewRuler.addedForeground":"#50FA7B80","editorOverviewRuler.deletedForeground":"#FF555580","editorOverviewRuler.errorForeground":"#FF555580","editorOverviewRuler.warningForeground":"#FFB86C80","editorOverviewRuler.infoForeground":"#8BE9FD80","editorError.foreground":"#FF5555","editorWarning.foreground":"#8BE9FD","editorGutter.modifiedBackground":"#8BE9FD80","editorGutter.addedBackground":"#50FA7B80","editorGutter.deletedBackground":"#FF555580","gitDecoration.modifiedResourceForeground":"#8BE9FD","gitDecoration.deletedResourceForeground":"#FF5555","gitDecoration.untrackedResourceForeground":"#50FA7B","gitDecoration.ignoredResourceForeground":"#6272A4","gitDecoration.conflictingResourceForeground":"#FFB86C","diffEditor.insertedTextBackground":"#50FA7B20","diffEditor.removedTextBackground":"#FF555550","inlineChat.regionHighlight":"#343746","editorWidget.background":"#21222C","editorSuggestWidget.background":"#21222C","editorSuggestWidget.foreground":"#F8F8F2","editorSuggestWidget.selectedBackground":"#44475A","editorHoverWidget.background":"#282A36","editorHoverWidget.border":"#6272A4","editorMarkerNavigation.background":"#21222C","peekView.border":"#44475A","peekViewEditor.background":"#282A36","peekViewEditor.matchHighlightBackground":"#F1FA8C80","peekViewResult.background":"#21222C","peekViewResult.fileForeground":"#F8F8F2","peekViewResult.lineForeground":"#F8F8F2","peekViewResult.matchHighlightBackground":"#F1FA8C80","peekViewResult.selectionBackground":"#44475A","peekViewResult.selectionForeground":"#F8F8F2","peekViewTitle.background":"#191A21","peekViewTitleDescription.foreground":"#6272A4","peekViewTitleLabel.foreground":"#F8F8F2","merge.currentHeaderBackground":"#50FA7B90","merge.incomingHeaderBackground":"#BD93F990","editorOverviewRuler.currentContentForeground":"#50FA7B","editorOverviewRuler.incomingContentForeground":"#BD93F9","panel.background":"#282A36","panel.border":"#BD93F9","panelTitle.activeBorder":"#FF79C6","panelTitle.activeForeground":"#F8F8F2","panelTitle.inactiveForeground":"#6272A4","statusBar.background":"#191A21","statusBar.foreground":"#F8F8F2","statusBar.debuggingBackground":"#FF5555","statusBar.debuggingForeground":"#191A21","statusBar.noFolderBackground":"#191A21","statusBar.noFolderForeground":"#F8F8F2","statusBarItem.prominentBackground":"#FF5555","statusBarItem.prominentHoverBackground":"#FFB86C","statusBarItem.remoteForeground":"#282A36","statusBarItem.remoteBackground":"#BD93F9","titleBar.activeBackground":"#21222C","titleBar.activeForeground":"#F8F8F2","titleBar.inactiveBackground":"#191A21","titleBar.inactiveForeground":"#6272A4","extensionButton.prominentForeground":"#F8F8F2","extensionButton.prominentBackground":"#50FA7B90","extensionButton.prominentHoverBackground":"#50FA7B60","pickerGroup.border":"#BD93F9","pickerGroup.foreground":"#8BE9FD","debugToolBar.background":"#21222C","walkThrough.embeddedEditorBackground":"#21222C","settings.headerForeground":"#F8F8F2","settings.modifiedItemIndicator":"#FFB86C","settings.dropdownBackground":"#21222C","settings.dropdownForeground":"#F8F8F2","settings.dropdownBorder":"#191A21","settings.checkboxBackground":"#21222C","settings.checkboxForeground":"#F8F8F2","settings.checkboxBorder":"#191A21","settings.textInputBackground":"#21222C","settings.textInputForeground":"#F8F8F2","settings.textInputBorder":"#191A21","settings.numberInputBackground":"#21222C","settings.numberInputForeground":"#F8F8F2","settings.numberInputBorder":"#191A21","breadcrumb.foreground":"#6272A4","breadcrumb.background":"#282A36","breadcrumb.focusForeground":"#F8F8F2","breadcrumb.activeSelectionForeground":"#F8F8F2","breadcrumbPicker.background":"#191A21","listFilterWidget.background":"#343746","listFilterWidget.outline":"#424450","listFilterWidget.noMatchesOutline":"#FF5555"},tokenColors:[{scope:["emphasis"],settings:{fontStyle:"italic"}},{scope:["strong"],settings:{fontStyle:"bold"}},{scope:["header"],settings:{foreground:"#BD93F9"}},{scope:["meta.diff","meta.diff.header"],settings:{foreground:"#6272A4"}},{scope:["markup.inserted"],settings:{foreground:"#50FA7B"}},{scope:["markup.deleted"],settings:{foreground:"#FF5555"}},{scope:["markup.changed"],settings:{foreground:"#FFB86C"}},{scope:["invalid"],settings:{foreground:"#FF5555",fontStyle:"underline italic"}},{scope:["invalid.deprecated"],settings:{foreground:"#F8F8F2",fontStyle:"underline italic"}},{scope:["entity.name.filename"],settings:{foreground:"#F1FA8C"}},{scope:["markup.error"],settings:{foreground:"#FF5555"}},{name:"Underlined markup",scope:["markup.underline"],settings:{fontStyle:"underline"}},{name:"Bold markup",scope:["markup.bold"],settings:{fontStyle:"bold",foreground:"#FFB86C"}},{name:"Markup headings",scope:["markup.heading"],settings:{fontStyle:"bold",foreground:"#BD93F9"}},{name:"Markup italic",scope:["markup.italic"],settings:{foreground:"#F1FA8C",fontStyle:"italic"}},{name:"Bullets, lists (prose)",scope:["beginning.punctuation.definition.list.markdown","beginning.punctuation.definition.quote.markdown","punctuation.definition.link.restructuredtext"],settings:{foreground:"#8BE9FD"}},{name:"Inline code (prose)",scope:["markup.inline.raw","markup.raw.restructuredtext"],settings:{foreground:"#50FA7B"}},{name:"Links (prose)",scope:["markup.underline.link","markup.underline.link.image"],settings:{foreground:"#8BE9FD"}},{name:"Link text, image alt text (prose)",scope:["meta.link.reference.def.restructuredtext","punctuation.definition.directive.restructuredtext","string.other.link.description","string.other.link.title"],settings:{foreground:"#FF79C6"}},{name:"Blockquotes (prose)",scope:["entity.name.directive.restructuredtext","markup.quote"],settings:{foreground:"#F1FA8C",fontStyle:"italic"}},{name:"Horizontal rule (prose)",scope:["meta.separator.markdown"],settings:{foreground:"#6272A4"}},{name:"Code blocks",scope:["fenced_code.block.language","markup.raw.inner.restructuredtext","markup.fenced_code.block.markdown punctuation.definition.markdown"],settings:{foreground:"#50FA7B"}},{name:"Prose constants",scope:["punctuation.definition.constant.restructuredtext"],settings:{foreground:"#BD93F9"}},{name:"Braces in markdown headings",scope:["markup.heading.markdown punctuation.definition.string.begin","markup.heading.markdown punctuation.definition.string.end"],settings:{foreground:"#BD93F9"}},{name:"Braces in markdown paragraphs",scope:["meta.paragraph.markdown punctuation.definition.string.begin","meta.paragraph.markdown punctuation.definition.string.end"],settings:{foreground:"#F8F8F2"}},{name:"Braces in markdown blockquotes",scope:["markup.quote.markdown meta.paragraph.markdown punctuation.definition.string.begin","markup.quote.markdown meta.paragraph.markdown punctuation.definition.string.end"],settings:{foreground:"#F1FA8C"}},{name:"User-defined class names",scope:["entity.name.type.class","entity.name.class"],settings:{foreground:"#8BE9FD",fontStyle:"normal"}},{name:"this, super, self, etc.",scope:["keyword.expressions-and-types.swift","keyword.other.this","variable.language","variable.language punctuation.definition.variable.php","variable.other.readwrite.instance.ruby","variable.parameter.function.language.special"],settings:{foreground:"#BD93F9",fontStyle:"italic"}},{name:"Inherited classes",scope:["entity.other.inherited-class"],settings:{fontStyle:"italic",foreground:"#8BE9FD"}},{name:"Comments",scope:["comment","punctuation.definition.comment","unused.comment","wildcard.comment"],settings:{foreground:"#6272A4"}},{name:"JSDoc-style keywords",scope:["comment keyword.codetag.notation","comment.block.documentation keyword","comment.block.documentation storage.type.class"],settings:{foreground:"#FF79C6"}},{name:"JSDoc-style types",scope:["comment.block.documentation entity.name.type"],settings:{foreground:"#8BE9FD",fontStyle:"italic"}},{name:"JSDoc-style type brackets",scope:["comment.block.documentation entity.name.type punctuation.definition.bracket"],settings:{foreground:"#8BE9FD"}},{name:"JSDoc-style comment parameters",scope:["comment.block.documentation variable"],settings:{foreground:"#FFB86C",fontStyle:"italic"}},{name:"Constants",scope:["constant","variable.other.constant"],settings:{foreground:"#BD93F9"}},{name:"Constant escape sequences",scope:["constant.character.escape","constant.character.string.escape","constant.regexp"],settings:{foreground:"#FF79C6"}},{name:"HTML tags",scope:["entity.name.tag"],settings:{foreground:"#FF79C6"}},{name:"CSS attribute parent selectors ('&')",scope:["entity.other.attribute-name.parent-selector"],settings:{foreground:"#FF79C6"}},{name:"HTML/CSS attribute names",scope:["entity.other.attribute-name"],settings:{foreground:"#50FA7B",fontStyle:"italic"}},{name:"Function names",scope:["entity.name.function","meta.function-call.object","meta.function-call.php","meta.function-call.static","meta.method-call.java meta.method","meta.method.groovy","support.function.any-method.lua","keyword.operator.function.infix"],settings:{foreground:"#50FA7B"}},{name:"Function parameters",scope:["entity.name.variable.parameter","meta.at-rule.function variable","meta.at-rule.mixin variable","meta.function.arguments variable.other.php","meta.selectionset.graphql meta.arguments.graphql variable.arguments.graphql","variable.parameter"],settings:{fontStyle:"italic",foreground:"#FFB86C"}},{name:"Decorators",scope:["meta.decorator variable.other.readwrite","meta.decorator variable.other.property"],settings:{foreground:"#50FA7B",fontStyle:"italic"}},{name:"Decorator Objects",scope:["meta.decorator variable.other.object"],settings:{foreground:"#50FA7B"}},{name:"Keywords",scope:["keyword","punctuation.definition.keyword"],settings:{foreground:"#FF79C6"}},{name:"Keyword \"new\"",scope:["keyword.control.new","keyword.operator.new"],settings:{fontStyle:"bold"}},{name:"Generic selectors (CSS/SCSS/Less/Stylus)",scope:["meta.selector"],settings:{foreground:"#FF79C6"}},{name:"Language Built-ins",scope:["support"],settings:{fontStyle:"italic",foreground:"#8BE9FD"}},{name:"Built-in magic functions and constants",scope:["support.function.magic","support.variable","variable.other.predefined"],settings:{fontStyle:"regular",foreground:"#BD93F9"}},{name:"Built-in functions / properties",scope:["support.function","support.type.property-name"],settings:{fontStyle:"regular"}},{name:"Separators (key/value, namespace, inheritance, pointer, hash, slice, etc)",scope:["constant.other.symbol.hashkey punctuation.definition.constant.ruby","entity.other.attribute-name.placeholder punctuation","entity.other.attribute-name.pseudo-class punctuation","entity.other.attribute-name.pseudo-element punctuation","meta.group.double.toml","meta.group.toml","meta.object-binding-pattern-variable punctuation.destructuring","punctuation.colon.graphql","punctuation.definition.block.scalar.folded.yaml","punctuation.definition.block.scalar.literal.yaml","punctuation.definition.block.sequence.item.yaml","punctuation.definition.entity.other.inherited-class","punctuation.function.swift","punctuation.separator.dictionary.key-value","punctuation.separator.hash","punctuation.separator.inheritance","punctuation.separator.key-value","punctuation.separator.key-value.mapping.yaml","punctuation.separator.namespace","punctuation.separator.pointer-access","punctuation.separator.slice","string.unquoted.heredoc punctuation.definition.string","support.other.chomping-indicator.yaml","punctuation.separator.annotation"],settings:{foreground:"#FF79C6"}},{name:"Brackets, braces, parens, etc.",scope:["keyword.operator.other.powershell","keyword.other.statement-separator.powershell","meta.brace.round","meta.function-call punctuation","punctuation.definition.arguments.begin","punctuation.definition.arguments.end","punctuation.definition.entity.begin","punctuation.definition.entity.end","punctuation.definition.tag.cs","punctuation.definition.type.begin","punctuation.definition.type.end","punctuation.section.scope.begin","punctuation.section.scope.end","punctuation.terminator.expression.php","storage.type.generic.java","string.template meta.brace","string.template punctuation.accessor"],settings:{foreground:"#F8F8F2"}},{name:"Variable interpolation operators",scope:["meta.string-contents.quoted.double punctuation.definition.variable","punctuation.definition.interpolation.begin","punctuation.definition.interpolation.end","punctuation.definition.template-expression.begin","punctuation.definition.template-expression.end","punctuation.section.embedded.begin","punctuation.section.embedded.coffee","punctuation.section.embedded.end","punctuation.section.embedded.end source.php","punctuation.section.embedded.end source.ruby","punctuation.definition.variable.makefile"],settings:{foreground:"#FF79C6"}},{name:"Keys (serializable languages)",scope:["entity.name.function.target.makefile","entity.name.section.toml","entity.name.tag.yaml","variable.other.key.toml"],settings:{foreground:"#8BE9FD"}},{name:"Dates / timestamps (serializable languages)",scope:["constant.other.date","constant.other.timestamp"],settings:{foreground:"#FFB86C"}},{name:"YAML aliases",scope:["variable.other.alias.yaml"],settings:{fontStyle:"italic underline",foreground:"#50FA7B"}},{name:"Storage",scope:["storage","meta.implementation storage.type.objc","meta.interface-or-protocol storage.type.objc","source.groovy storage.type.def"],settings:{fontStyle:"regular",foreground:"#FF79C6"}},{name:"Types",scope:["entity.name.type","keyword.primitive-datatypes.swift","keyword.type.cs","meta.protocol-list.objc","meta.return-type.objc","source.go storage.type","source.groovy storage.type","source.java storage.type","source.powershell entity.other.attribute-name","storage.class.std.rust","storage.type.attribute.swift","storage.type.c","storage.type.core.rust","storage.type.cs","storage.type.groovy","storage.type.objc","storage.type.php","storage.type.haskell","storage.type.ocaml"],settings:{fontStyle:"italic",foreground:"#8BE9FD"}},{name:"Generics, templates, and mapped type declarations",scope:["entity.name.type.type-parameter","meta.indexer.mappedtype.declaration entity.name.type","meta.type.parameters entity.name.type"],settings:{foreground:"#FFB86C"}},{name:"Modifiers",scope:["storage.modifier"],settings:{foreground:"#FF79C6"}},{name:"RegExp string",scope:["string.regexp","constant.other.character-class.set.regexp","constant.character.escape.backslash.regexp"],settings:{foreground:"#F1FA8C"}},{name:"Non-capture operators",scope:["punctuation.definition.group.capture.regexp"],settings:{foreground:"#FF79C6"}},{name:"RegExp start and end characters",scope:["string.regexp punctuation.definition.string.begin","string.regexp punctuation.definition.string.end"],settings:{foreground:"#FF5555"}},{name:"Character group",scope:["punctuation.definition.character-class.regexp"],settings:{foreground:"#8BE9FD"}},{name:"Capture groups",scope:["punctuation.definition.group.regexp"],settings:{foreground:"#FFB86C"}},{name:"Assertion operators",scope:["punctuation.definition.group.assertion.regexp","keyword.operator.negation.regexp"],settings:{foreground:"#FF5555"}},{name:"Positive lookaheads",scope:["meta.assertion.look-ahead.regexp"],settings:{foreground:"#50FA7B"}},{name:"Strings",scope:["string"],settings:{foreground:"#F1FA8C"}},{name:"String quotes (temporary vscode fix)",scope:["punctuation.definition.string.begin","punctuation.definition.string.end"],settings:{foreground:"#E9F284"}},{name:"Property quotes (temporary vscode fix)",scope:["punctuation.support.type.property-name.begin","punctuation.support.type.property-name.end"],settings:{foreground:"#8BE9FE"}},{name:"Docstrings",scope:["string.quoted.docstring.multi","string.quoted.docstring.multi.python punctuation.definition.string.begin","string.quoted.docstring.multi.python punctuation.definition.string.end","string.quoted.docstring.multi.python constant.character.escape"],settings:{foreground:"#6272A4"}},{name:"Variables and object properties",scope:["variable","constant.other.key.perl","support.variable.property","variable.other.constant.js","variable.other.constant.ts","variable.other.constant.tsx"],settings:{foreground:"#F8F8F2"}},{name:"Destructuring / aliasing reference name (LHS)",scope:["meta.import variable.other.readwrite","meta.variable.assignment.destructured.object.coffee variable"],settings:{fontStyle:"italic",foreground:"#FFB86C"}},{name:"Destructuring / aliasing variable name (RHS)",scope:["meta.import variable.other.readwrite.alias","meta.export variable.other.readwrite.alias","meta.variable.assignment.destructured.object.coffee variable variable"],settings:{fontStyle:"normal",foreground:"#F8F8F2"}},{name:"GraphQL keys",scope:["meta.selectionset.graphql variable"],settings:{foreground:"#F1FA8C"}},{name:"GraphQL function arguments",scope:["meta.selectionset.graphql meta.arguments variable"],settings:{foreground:"#F8F8F2"}},{name:"GraphQL fragment name (definition)",scope:["entity.name.fragment.graphql","variable.fragment.graphql"],settings:{foreground:"#8BE9FD"}},{name:"Edge cases (foreground color resets)",scope:["constant.other.symbol.hashkey.ruby","keyword.operator.dereference.java","keyword.operator.navigation.groovy","meta.scope.for-loop.shell punctuation.definition.string.begin","meta.scope.for-loop.shell punctuation.definition.string.end","meta.scope.for-loop.shell string","storage.modifier.import","punctuation.section.embedded.begin.tsx","punctuation.section.embedded.end.tsx","punctuation.section.embedded.begin.jsx","punctuation.section.embedded.end.jsx","punctuation.separator.list.comma.css","constant.language.empty-list.haskell"],settings:{foreground:"#F8F8F2"}},{name:"Shell variables prefixed with \"$\" (edge case)",scope:["source.shell variable.other"],settings:{foreground:"#BD93F9"}},{name:"Powershell constants mistakenly scoped to `support`, rather than `constant` (edge)",scope:["support.constant"],settings:{fontStyle:"normal",foreground:"#BD93F9"}},{name:"Makefile prerequisite names",scope:["meta.scope.prerequisites.makefile"],settings:{foreground:"#F1FA8C"}},{name:"SCSS attibute selector strings",scope:["meta.attribute-selector.scss"],settings:{foreground:"#F1FA8C"}},{name:"SCSS attribute selector brackets",scope:["punctuation.definition.attribute-selector.end.bracket.square.scss","punctuation.definition.attribute-selector.begin.bracket.square.scss"],settings:{foreground:"#F8F8F2"}},{name:"Haskell Pragmas",scope:["meta.preprocessor.haskell"],settings:{foreground:"#6272A4"}},{name:"Log file error",scope:["log.error"],settings:{foreground:"#FF5555",fontStyle:"bold"}},{name:"Log file warning",scope:["log.warning"],settings:{foreground:"#F1FA8C",fontStyle:"bold"}}]}; + +export { dracula as default }; diff --git a/docs/shiki/dist/themes/dracula-soft-ab0a6f08.mjs b/docs/shiki/dist/themes/dracula-soft-ab0a6f08.mjs new file mode 100644 index 00000000..3f4d8a66 --- /dev/null +++ b/docs/shiki/dist/themes/dracula-soft-ab0a6f08.mjs @@ -0,0 +1,3 @@ +var draculaSoft = {$schema:"vscode://schemas/color-theme",name:"dracula-soft",author:"Zeno Rocha",maintainers:["Derek P Sifford <dereksifford@gmail.com>"],semanticClass:"theme.dracula",semanticHighlighting:true,dracula:{base:["#282A36","#F8F8F2","#44475A","#6272A4","#8BE9FD","#50FA7B","#FFB86C","#FF79C6","#BD93F9","#FF5555","#F1FA8C"],ansi:["#21222C","#FF5555","#50FA7B","#F1FA8C","#BD93F9","#FF79C6","#8BE9FD","#F8F8F2","#6272A4","#FF6E6E","#69FF94","#FFFFA5","#D6ACFF","#FF92DF","#A4FFFF","#FFFFFF"],brightOther:["#E9F284","#8BE9FE"],other:["#44475A75","#FFFFFF1A","#FFFFFF","#44475A70","#424450","#343746","#21222C","#191A21"]},colors:{"terminal.background":"#282A36","terminal.foreground":"#f6f6f4","terminal.ansiBrightBlack":"#7b7f8b","terminal.ansiBrightRed":"#f07c7c","terminal.ansiBrightGreen":"#78f09a","terminal.ansiBrightYellow":"#f6f6ae","terminal.ansiBrightBlue":"#d6b4f7","terminal.ansiBrightMagenta":"#f49dda","terminal.ansiBrightCyan":"#adf6f6","terminal.ansiBrightWhite":"#ffffff","terminal.ansiBlack":"#262626","terminal.ansiRed":"#ee6666","terminal.ansiGreen":"#62e884","terminal.ansiYellow":"#e7ee98","terminal.ansiBlue":"#bf9eee","terminal.ansiMagenta":"#f286c4","terminal.ansiCyan":"#97e1f1","terminal.ansiWhite":"#f6f6f4",focusBorder:"#7b7f8b",foreground:"#f6f6f4","selection.background":"#bf9eee",errorForeground:"#ee6666","button.background":"#44475A","button.foreground":"#f6f6f4","button.secondaryBackground":"#282A36","button.secondaryForeground":"#f6f6f4","button.secondaryHoverBackground":"#343746","dropdown.background":"#343746","dropdown.border":"#191A21","dropdown.foreground":"#f6f6f4","input.background":"#282A36","input.foreground":"#f6f6f4","input.border":"#191A21","input.placeholderForeground":"#7b7f8b","inputOption.activeBorder":"#bf9eee","inputValidation.infoBorder":"#f286c4","inputValidation.warningBorder":"#FFB86C","inputValidation.errorBorder":"#ee6666","badge.foreground":"#f6f6f4","badge.background":"#44475A","progressBar.background":"#f286c4","list.activeSelectionBackground":"#44475A","list.activeSelectionForeground":"#f6f6f4","list.dropBackground":"#44475A","list.focusBackground":"#44475A75","list.highlightForeground":"#97e1f1","list.hoverBackground":"#44475A75","list.inactiveSelectionBackground":"#44475A75","list.warningForeground":"#FFB86C","list.errorForeground":"#ee6666","activityBar.background":"#343746","activityBar.inactiveForeground":"#7b7f8b","activityBar.foreground":"#f6f6f4","activityBar.activeBorder":"#FF79C680","activityBar.activeBackground":"#BD93F910","activityBarBadge.background":"#f286c4","activityBarBadge.foreground":"#f6f6f4","sideBar.background":"#262626","sideBarTitle.foreground":"#f6f6f4","sideBarSectionHeader.background":"#282A36","sideBarSectionHeader.border":"#191A21","editorGroup.border":"#bf9eee","editorGroup.dropBackground":"#44475A70","editorGroupHeader.tabsBackground":"#191A21","tab.activeBackground":"#282A36","tab.activeForeground":"#f6f6f4","tab.border":"#191A21","tab.activeBorderTop":"#FF79C680","tab.inactiveBackground":"#262626","tab.inactiveForeground":"#7b7f8b","editor.foreground":"#f6f6f4","editor.background":"#282A36","editorLineNumber.foreground":"#7b7f8b","editor.selectionBackground":"#44475A","editor.selectionHighlightBackground":"#424450","editor.foldBackground":"#21222C80","editor.wordHighlightBackground":"#8BE9FD50","editor.wordHighlightStrongBackground":"#50FA7B50","editor.findMatchBackground":"#FFB86C80","editor.findMatchHighlightBackground":"#FFFFFF40","editor.findRangeHighlightBackground":"#44475A75","editor.hoverHighlightBackground":"#8BE9FD50","editor.lineHighlightBorder":"#44475A","editorLink.activeForeground":"#97e1f1","editor.rangeHighlightBackground":"#BD93F915","editor.snippetTabstopHighlightBackground":"#282A36","editor.snippetTabstopHighlightBorder":"#7b7f8b","editor.snippetFinalTabstopHighlightBackground":"#282A36","editor.snippetFinalTabstopHighlightBorder":"#62e884","editorWhitespace.foreground":"#FFFFFF1A","editorIndentGuide.background":"#FFFFFF1A","editorIndentGuide.activeBackground":"#FFFFFF45","editorRuler.foreground":"#FFFFFF1A","editorCodeLens.foreground":"#7b7f8b","editorBracketHighlight.foreground1":"#f6f6f4","editorBracketHighlight.foreground2":"#f286c4","editorBracketHighlight.foreground3":"#97e1f1","editorBracketHighlight.foreground4":"#62e884","editorBracketHighlight.foreground5":"#bf9eee","editorBracketHighlight.foreground6":"#FFB86C","editorBracketHighlight.unexpectedBracket.foreground":"#ee6666","editorOverviewRuler.border":"#191A21","editorOverviewRuler.selectionHighlightForeground":"#FFB86C","editorOverviewRuler.wordHighlightForeground":"#97e1f1","editorOverviewRuler.wordHighlightStrongForeground":"#62e884","editorOverviewRuler.modifiedForeground":"#8BE9FD80","editorOverviewRuler.addedForeground":"#50FA7B80","editorOverviewRuler.deletedForeground":"#FF555580","editorOverviewRuler.errorForeground":"#FF555580","editorOverviewRuler.warningForeground":"#FFB86C80","editorOverviewRuler.infoForeground":"#8BE9FD80","editorError.foreground":"#ee6666","editorWarning.foreground":"#97e1f1","editorGutter.modifiedBackground":"#8BE9FD80","editorGutter.addedBackground":"#50FA7B80","editorGutter.deletedBackground":"#FF555580","gitDecoration.modifiedResourceForeground":"#97e1f1","gitDecoration.deletedResourceForeground":"#ee6666","gitDecoration.untrackedResourceForeground":"#62e884","gitDecoration.ignoredResourceForeground":"#7b7f8b","gitDecoration.conflictingResourceForeground":"#FFB86C","diffEditor.insertedTextBackground":"#50FA7B20","diffEditor.removedTextBackground":"#FF555550","inlineChat.regionHighlight":"#343746","editorWidget.background":"#262626","editorSuggestWidget.background":"#262626","editorSuggestWidget.foreground":"#f6f6f4","editorSuggestWidget.selectedBackground":"#44475A","editorHoverWidget.background":"#282A36","editorHoverWidget.border":"#7b7f8b","editorMarkerNavigation.background":"#262626","peekView.border":"#44475A","peekViewEditor.background":"#282A36","peekViewEditor.matchHighlightBackground":"#F1FA8C80","peekViewResult.background":"#262626","peekViewResult.fileForeground":"#f6f6f4","peekViewResult.lineForeground":"#f6f6f4","peekViewResult.matchHighlightBackground":"#F1FA8C80","peekViewResult.selectionBackground":"#44475A","peekViewResult.selectionForeground":"#f6f6f4","peekViewTitle.background":"#191A21","peekViewTitleDescription.foreground":"#7b7f8b","peekViewTitleLabel.foreground":"#f6f6f4","merge.currentHeaderBackground":"#50FA7B90","merge.incomingHeaderBackground":"#BD93F990","editorOverviewRuler.currentContentForeground":"#62e884","editorOverviewRuler.incomingContentForeground":"#bf9eee","panel.background":"#282A36","panel.border":"#bf9eee","panelTitle.activeBorder":"#f286c4","panelTitle.activeForeground":"#f6f6f4","panelTitle.inactiveForeground":"#7b7f8b","statusBar.background":"#191A21","statusBar.foreground":"#f6f6f4","statusBar.debuggingBackground":"#ee6666","statusBar.debuggingForeground":"#191A21","statusBar.noFolderBackground":"#191A21","statusBar.noFolderForeground":"#f6f6f4","statusBarItem.prominentBackground":"#ee6666","statusBarItem.prominentHoverBackground":"#FFB86C","statusBarItem.remoteForeground":"#282A36","statusBarItem.remoteBackground":"#bf9eee","titleBar.activeBackground":"#262626","titleBar.activeForeground":"#f6f6f4","titleBar.inactiveBackground":"#191A21","titleBar.inactiveForeground":"#7b7f8b","extensionButton.prominentForeground":"#f6f6f4","extensionButton.prominentBackground":"#50FA7B90","extensionButton.prominentHoverBackground":"#50FA7B60","pickerGroup.border":"#bf9eee","pickerGroup.foreground":"#97e1f1","debugToolBar.background":"#262626","walkThrough.embeddedEditorBackground":"#262626","settings.headerForeground":"#f6f6f4","settings.modifiedItemIndicator":"#FFB86C","settings.dropdownBackground":"#262626","settings.dropdownForeground":"#f6f6f4","settings.dropdownBorder":"#191A21","settings.checkboxBackground":"#262626","settings.checkboxForeground":"#f6f6f4","settings.checkboxBorder":"#191A21","settings.textInputBackground":"#262626","settings.textInputForeground":"#f6f6f4","settings.textInputBorder":"#191A21","settings.numberInputBackground":"#262626","settings.numberInputForeground":"#f6f6f4","settings.numberInputBorder":"#191A21","breadcrumb.foreground":"#7b7f8b","breadcrumb.background":"#282A36","breadcrumb.focusForeground":"#f6f6f4","breadcrumb.activeSelectionForeground":"#f6f6f4","breadcrumbPicker.background":"#191A21","listFilterWidget.background":"#343746","listFilterWidget.outline":"#424450","listFilterWidget.noMatchesOutline":"#ee6666"},tokenColors:[{scope:["emphasis"],settings:{fontStyle:"italic"}},{scope:["strong"],settings:{fontStyle:"bold"}},{scope:["header"],settings:{foreground:"#bf9eee"}},{scope:["meta.diff","meta.diff.header"],settings:{foreground:"#7b7f8b"}},{scope:["markup.inserted"],settings:{foreground:"#62e884"}},{scope:["markup.deleted"],settings:{foreground:"#ee6666"}},{scope:["markup.changed"],settings:{foreground:"#FFB86C"}},{scope:["invalid"],settings:{foreground:"#ee6666",fontStyle:"underline italic"}},{scope:["invalid.deprecated"],settings:{foreground:"#f6f6f4",fontStyle:"underline italic"}},{scope:["entity.name.filename"],settings:{foreground:"#e7ee98"}},{scope:["markup.error"],settings:{foreground:"#ee6666"}},{name:"Underlined markup",scope:["markup.underline"],settings:{fontStyle:"underline"}},{name:"Bold markup",scope:["markup.bold"],settings:{fontStyle:"bold",foreground:"#FFB86C"}},{name:"Markup headings",scope:["markup.heading"],settings:{fontStyle:"bold",foreground:"#bf9eee"}},{name:"Markup italic",scope:["markup.italic"],settings:{foreground:"#e7ee98",fontStyle:"italic"}},{name:"Bullets, lists (prose)",scope:["beginning.punctuation.definition.list.markdown","beginning.punctuation.definition.quote.markdown","punctuation.definition.link.restructuredtext"],settings:{foreground:"#97e1f1"}},{name:"Inline code (prose)",scope:["markup.inline.raw","markup.raw.restructuredtext"],settings:{foreground:"#62e884"}},{name:"Links (prose)",scope:["markup.underline.link","markup.underline.link.image"],settings:{foreground:"#97e1f1"}},{name:"Link text, image alt text (prose)",scope:["meta.link.reference.def.restructuredtext","punctuation.definition.directive.restructuredtext","string.other.link.description","string.other.link.title"],settings:{foreground:"#f286c4"}},{name:"Blockquotes (prose)",scope:["entity.name.directive.restructuredtext","markup.quote"],settings:{foreground:"#e7ee98",fontStyle:"italic"}},{name:"Horizontal rule (prose)",scope:["meta.separator.markdown"],settings:{foreground:"#7b7f8b"}},{name:"Code blocks",scope:["fenced_code.block.language","markup.raw.inner.restructuredtext","markup.fenced_code.block.markdown punctuation.definition.markdown"],settings:{foreground:"#62e884"}},{name:"Prose constants",scope:["punctuation.definition.constant.restructuredtext"],settings:{foreground:"#bf9eee"}},{name:"Braces in markdown headings",scope:["markup.heading.markdown punctuation.definition.string.begin","markup.heading.markdown punctuation.definition.string.end"],settings:{foreground:"#bf9eee"}},{name:"Braces in markdown paragraphs",scope:["meta.paragraph.markdown punctuation.definition.string.begin","meta.paragraph.markdown punctuation.definition.string.end"],settings:{foreground:"#f6f6f4"}},{name:"Braces in markdown blockquotes",scope:["markup.quote.markdown meta.paragraph.markdown punctuation.definition.string.begin","markup.quote.markdown meta.paragraph.markdown punctuation.definition.string.end"],settings:{foreground:"#e7ee98"}},{name:"User-defined class names",scope:["entity.name.type.class","entity.name.class"],settings:{foreground:"#97e1f1",fontStyle:"normal"}},{name:"this, super, self, etc.",scope:["keyword.expressions-and-types.swift","keyword.other.this","variable.language","variable.language punctuation.definition.variable.php","variable.other.readwrite.instance.ruby","variable.parameter.function.language.special"],settings:{foreground:"#bf9eee",fontStyle:"italic"}},{name:"Inherited classes",scope:["entity.other.inherited-class"],settings:{fontStyle:"italic",foreground:"#97e1f1"}},{name:"Comments",scope:["comment","punctuation.definition.comment","unused.comment","wildcard.comment"],settings:{foreground:"#7b7f8b"}},{name:"JSDoc-style keywords",scope:["comment keyword.codetag.notation","comment.block.documentation keyword","comment.block.documentation storage.type.class"],settings:{foreground:"#f286c4"}},{name:"JSDoc-style types",scope:["comment.block.documentation entity.name.type"],settings:{foreground:"#97e1f1",fontStyle:"italic"}},{name:"JSDoc-style type brackets",scope:["comment.block.documentation entity.name.type punctuation.definition.bracket"],settings:{foreground:"#97e1f1"}},{name:"JSDoc-style comment parameters",scope:["comment.block.documentation variable"],settings:{foreground:"#FFB86C",fontStyle:"italic"}},{name:"Constants",scope:["constant","variable.other.constant"],settings:{foreground:"#bf9eee"}},{name:"Constant escape sequences",scope:["constant.character.escape","constant.character.string.escape","constant.regexp"],settings:{foreground:"#f286c4"}},{name:"HTML tags",scope:["entity.name.tag"],settings:{foreground:"#f286c4"}},{name:"CSS attribute parent selectors ('&')",scope:["entity.other.attribute-name.parent-selector"],settings:{foreground:"#f286c4"}},{name:"HTML/CSS attribute names",scope:["entity.other.attribute-name"],settings:{foreground:"#62e884",fontStyle:"italic"}},{name:"Function names",scope:["entity.name.function","meta.function-call.object","meta.function-call.php","meta.function-call.static","meta.method-call.java meta.method","meta.method.groovy","support.function.any-method.lua","keyword.operator.function.infix"],settings:{foreground:"#62e884"}},{name:"Function parameters",scope:["entity.name.variable.parameter","meta.at-rule.function variable","meta.at-rule.mixin variable","meta.function.arguments variable.other.php","meta.selectionset.graphql meta.arguments.graphql variable.arguments.graphql","variable.parameter"],settings:{fontStyle:"italic",foreground:"#FFB86C"}},{name:"Decorators",scope:["meta.decorator variable.other.readwrite","meta.decorator variable.other.property"],settings:{foreground:"#62e884",fontStyle:"italic"}},{name:"Decorator Objects",scope:["meta.decorator variable.other.object"],settings:{foreground:"#62e884"}},{name:"Keywords",scope:["keyword","punctuation.definition.keyword"],settings:{foreground:"#f286c4"}},{name:"Keyword \"new\"",scope:["keyword.control.new","keyword.operator.new"],settings:{fontStyle:"bold"}},{name:"Generic selectors (CSS/SCSS/Less/Stylus)",scope:["meta.selector"],settings:{foreground:"#f286c4"}},{name:"Language Built-ins",scope:["support"],settings:{fontStyle:"italic",foreground:"#97e1f1"}},{name:"Built-in magic functions and constants",scope:["support.function.magic","support.variable","variable.other.predefined"],settings:{fontStyle:"regular",foreground:"#bf9eee"}},{name:"Built-in functions / properties",scope:["support.function","support.type.property-name"],settings:{fontStyle:"regular"}},{name:"Separators (key/value, namespace, inheritance, pointer, hash, slice, etc)",scope:["constant.other.symbol.hashkey punctuation.definition.constant.ruby","entity.other.attribute-name.placeholder punctuation","entity.other.attribute-name.pseudo-class punctuation","entity.other.attribute-name.pseudo-element punctuation","meta.group.double.toml","meta.group.toml","meta.object-binding-pattern-variable punctuation.destructuring","punctuation.colon.graphql","punctuation.definition.block.scalar.folded.yaml","punctuation.definition.block.scalar.literal.yaml","punctuation.definition.block.sequence.item.yaml","punctuation.definition.entity.other.inherited-class","punctuation.function.swift","punctuation.separator.dictionary.key-value","punctuation.separator.hash","punctuation.separator.inheritance","punctuation.separator.key-value","punctuation.separator.key-value.mapping.yaml","punctuation.separator.namespace","punctuation.separator.pointer-access","punctuation.separator.slice","string.unquoted.heredoc punctuation.definition.string","support.other.chomping-indicator.yaml","punctuation.separator.annotation"],settings:{foreground:"#f286c4"}},{name:"Brackets, braces, parens, etc.",scope:["keyword.operator.other.powershell","keyword.other.statement-separator.powershell","meta.brace.round","meta.function-call punctuation","punctuation.definition.arguments.begin","punctuation.definition.arguments.end","punctuation.definition.entity.begin","punctuation.definition.entity.end","punctuation.definition.tag.cs","punctuation.definition.type.begin","punctuation.definition.type.end","punctuation.section.scope.begin","punctuation.section.scope.end","punctuation.terminator.expression.php","storage.type.generic.java","string.template meta.brace","string.template punctuation.accessor"],settings:{foreground:"#f6f6f4"}},{name:"Variable interpolation operators",scope:["meta.string-contents.quoted.double punctuation.definition.variable","punctuation.definition.interpolation.begin","punctuation.definition.interpolation.end","punctuation.definition.template-expression.begin","punctuation.definition.template-expression.end","punctuation.section.embedded.begin","punctuation.section.embedded.coffee","punctuation.section.embedded.end","punctuation.section.embedded.end source.php","punctuation.section.embedded.end source.ruby","punctuation.definition.variable.makefile"],settings:{foreground:"#f286c4"}},{name:"Keys (serializable languages)",scope:["entity.name.function.target.makefile","entity.name.section.toml","entity.name.tag.yaml","variable.other.key.toml"],settings:{foreground:"#97e1f1"}},{name:"Dates / timestamps (serializable languages)",scope:["constant.other.date","constant.other.timestamp"],settings:{foreground:"#FFB86C"}},{name:"YAML aliases",scope:["variable.other.alias.yaml"],settings:{fontStyle:"italic underline",foreground:"#62e884"}},{name:"Storage",scope:["storage","meta.implementation storage.type.objc","meta.interface-or-protocol storage.type.objc","source.groovy storage.type.def"],settings:{fontStyle:"regular",foreground:"#f286c4"}},{name:"Types",scope:["entity.name.type","keyword.primitive-datatypes.swift","keyword.type.cs","meta.protocol-list.objc","meta.return-type.objc","source.go storage.type","source.groovy storage.type","source.java storage.type","source.powershell entity.other.attribute-name","storage.class.std.rust","storage.type.attribute.swift","storage.type.c","storage.type.core.rust","storage.type.cs","storage.type.groovy","storage.type.objc","storage.type.php","storage.type.haskell","storage.type.ocaml"],settings:{fontStyle:"italic",foreground:"#97e1f1"}},{name:"Generics, templates, and mapped type declarations",scope:["entity.name.type.type-parameter","meta.indexer.mappedtype.declaration entity.name.type","meta.type.parameters entity.name.type"],settings:{foreground:"#FFB86C"}},{name:"Modifiers",scope:["storage.modifier"],settings:{foreground:"#f286c4"}},{name:"RegExp string",scope:["string.regexp","constant.other.character-class.set.regexp","constant.character.escape.backslash.regexp"],settings:{foreground:"#e7ee98"}},{name:"Non-capture operators",scope:["punctuation.definition.group.capture.regexp"],settings:{foreground:"#f286c4"}},{name:"RegExp start and end characters",scope:["string.regexp punctuation.definition.string.begin","string.regexp punctuation.definition.string.end"],settings:{foreground:"#ee6666"}},{name:"Character group",scope:["punctuation.definition.character-class.regexp"],settings:{foreground:"#97e1f1"}},{name:"Capture groups",scope:["punctuation.definition.group.regexp"],settings:{foreground:"#FFB86C"}},{name:"Assertion operators",scope:["punctuation.definition.group.assertion.regexp","keyword.operator.negation.regexp"],settings:{foreground:"#ee6666"}},{name:"Positive lookaheads",scope:["meta.assertion.look-ahead.regexp"],settings:{foreground:"#62e884"}},{name:"Strings",scope:["string"],settings:{foreground:"#e7ee98"}},{name:"String quotes (temporary vscode fix)",scope:["punctuation.definition.string.begin","punctuation.definition.string.end"],settings:{foreground:"#dee492"}},{name:"Property quotes (temporary vscode fix)",scope:["punctuation.support.type.property-name.begin","punctuation.support.type.property-name.end"],settings:{foreground:"#97e2f2"}},{name:"Docstrings",scope:["string.quoted.docstring.multi","string.quoted.docstring.multi.python punctuation.definition.string.begin","string.quoted.docstring.multi.python punctuation.definition.string.end","string.quoted.docstring.multi.python constant.character.escape"],settings:{foreground:"#7b7f8b"}},{name:"Variables and object properties",scope:["variable","constant.other.key.perl","support.variable.property","variable.other.constant.js","variable.other.constant.ts","variable.other.constant.tsx"],settings:{foreground:"#f6f6f4"}},{name:"Destructuring / aliasing reference name (LHS)",scope:["meta.import variable.other.readwrite","meta.variable.assignment.destructured.object.coffee variable"],settings:{fontStyle:"italic",foreground:"#FFB86C"}},{name:"Destructuring / aliasing variable name (RHS)",scope:["meta.import variable.other.readwrite.alias","meta.export variable.other.readwrite.alias","meta.variable.assignment.destructured.object.coffee variable variable"],settings:{fontStyle:"normal",foreground:"#f6f6f4"}},{name:"GraphQL keys",scope:["meta.selectionset.graphql variable"],settings:{foreground:"#e7ee98"}},{name:"GraphQL function arguments",scope:["meta.selectionset.graphql meta.arguments variable"],settings:{foreground:"#f6f6f4"}},{name:"GraphQL fragment name (definition)",scope:["entity.name.fragment.graphql","variable.fragment.graphql"],settings:{foreground:"#97e1f1"}},{name:"Edge cases (foreground color resets)",scope:["constant.other.symbol.hashkey.ruby","keyword.operator.dereference.java","keyword.operator.navigation.groovy","meta.scope.for-loop.shell punctuation.definition.string.begin","meta.scope.for-loop.shell punctuation.definition.string.end","meta.scope.for-loop.shell string","storage.modifier.import","punctuation.section.embedded.begin.tsx","punctuation.section.embedded.end.tsx","punctuation.section.embedded.begin.jsx","punctuation.section.embedded.end.jsx","punctuation.separator.list.comma.css","constant.language.empty-list.haskell"],settings:{foreground:"#f6f6f4"}},{name:"Shell variables prefixed with \"$\" (edge case)",scope:["source.shell variable.other"],settings:{foreground:"#bf9eee"}},{name:"Powershell constants mistakenly scoped to `support`, rather than `constant` (edge)",scope:["support.constant"],settings:{fontStyle:"normal",foreground:"#bf9eee"}},{name:"Makefile prerequisite names",scope:["meta.scope.prerequisites.makefile"],settings:{foreground:"#e7ee98"}},{name:"SCSS attibute selector strings",scope:["meta.attribute-selector.scss"],settings:{foreground:"#e7ee98"}},{name:"SCSS attribute selector brackets",scope:["punctuation.definition.attribute-selector.end.bracket.square.scss","punctuation.definition.attribute-selector.begin.bracket.square.scss"],settings:{foreground:"#f6f6f4"}},{name:"Haskell Pragmas",scope:["meta.preprocessor.haskell"],settings:{foreground:"#7b7f8b"}},{name:"Log file error",scope:["log.error"],settings:{foreground:"#ee6666",fontStyle:"bold"}},{name:"Log file warning",scope:["log.warning"],settings:{foreground:"#e7ee98",fontStyle:"bold"}}]}; + +export { draculaSoft as default }; diff --git a/docs/shiki/dist/themes/github-dark-45d4d058.mjs b/docs/shiki/dist/themes/github-dark-45d4d058.mjs new file mode 100644 index 00000000..40ae76e7 --- /dev/null +++ b/docs/shiki/dist/themes/github-dark-45d4d058.mjs @@ -0,0 +1,3 @@ +var githubDark = {name:"github-dark",colors:{focusBorder:"#005cc5",foreground:"#d1d5da",descriptionForeground:"#959da5",errorForeground:"#f97583","textLink.foreground":"#79b8ff","textLink.activeForeground":"#c8e1ff","textBlockQuote.background":"#24292e","textBlockQuote.border":"#444d56","textCodeBlock.background":"#2f363d","textPreformat.foreground":"#d1d5da","textSeparator.foreground":"#586069","button.background":"#176f2c","button.foreground":"#dcffe4","button.hoverBackground":"#22863a","button.secondaryBackground":"#444d56","button.secondaryForeground":"#fff","button.secondaryHoverBackground":"#586069","checkbox.background":"#444d56","checkbox.border":"#1b1f23","dropdown.background":"#2f363d","dropdown.border":"#1b1f23","dropdown.foreground":"#e1e4e8","dropdown.listBackground":"#24292e","input.background":"#2f363d","input.border":"#1b1f23","input.foreground":"#e1e4e8","input.placeholderForeground":"#959da5","badge.foreground":"#c8e1ff","badge.background":"#044289","progressBar.background":"#0366d6","titleBar.activeForeground":"#e1e4e8","titleBar.activeBackground":"#24292e","titleBar.inactiveForeground":"#959da5","titleBar.inactiveBackground":"#1f2428","titleBar.border":"#1b1f23","activityBar.foreground":"#e1e4e8","activityBar.inactiveForeground":"#6a737d","activityBar.background":"#24292e","activityBarBadge.foreground":"#fff","activityBarBadge.background":"#0366d6","activityBar.activeBorder":"#f9826c","activityBar.border":"#1b1f23","sideBar.foreground":"#d1d5da","sideBar.background":"#1f2428","sideBar.border":"#1b1f23","sideBarTitle.foreground":"#e1e4e8","sideBarSectionHeader.foreground":"#e1e4e8","sideBarSectionHeader.background":"#1f2428","sideBarSectionHeader.border":"#1b1f23","list.hoverForeground":"#e1e4e8","list.inactiveSelectionForeground":"#e1e4e8","list.activeSelectionForeground":"#e1e4e8","list.hoverBackground":"#282e34","list.inactiveSelectionBackground":"#282e34","list.activeSelectionBackground":"#39414a","list.inactiveFocusBackground":"#1d2d3e","list.focusBackground":"#044289","tree.indentGuidesStroke":"#2f363d","notificationCenterHeader.foreground":"#959da5","notificationCenterHeader.background":"#24292e","notifications.foreground":"#e1e4e8","notifications.background":"#2f363d","notifications.border":"#1b1f23","notificationsErrorIcon.foreground":"#ea4a5a","notificationsWarningIcon.foreground":"#ffab70","notificationsInfoIcon.foreground":"#79b8ff","pickerGroup.border":"#444d56","pickerGroup.foreground":"#e1e4e8","quickInput.background":"#24292e","quickInput.foreground":"#e1e4e8","statusBar.foreground":"#d1d5da","statusBar.background":"#24292e","statusBar.border":"#1b1f23","statusBar.noFolderBackground":"#24292e","statusBar.debuggingBackground":"#931c06","statusBar.debuggingForeground":"#fff","statusBarItem.prominentBackground":"#282e34","statusBarItem.remoteForeground":"#d1d5da","statusBarItem.remoteBackground":"#24292e","editorGroupHeader.tabsBackground":"#1f2428","editorGroupHeader.tabsBorder":"#1b1f23","editorGroup.border":"#1b1f23","tab.activeForeground":"#e1e4e8","tab.inactiveForeground":"#959da5","tab.inactiveBackground":"#1f2428","tab.activeBackground":"#24292e","tab.hoverBackground":"#24292e","tab.unfocusedHoverBackground":"#24292e","tab.border":"#1b1f23","tab.unfocusedActiveBorderTop":"#1b1f23","tab.activeBorder":"#24292e","tab.unfocusedActiveBorder":"#24292e","tab.activeBorderTop":"#f9826c","breadcrumb.foreground":"#959da5","breadcrumb.focusForeground":"#e1e4e8","breadcrumb.activeSelectionForeground":"#d1d5da","breadcrumbPicker.background":"#2b3036","editor.foreground":"#e1e4e8","editor.background":"#24292e","editorWidget.background":"#1f2428","editor.foldBackground":"#58606915","editor.lineHighlightBackground":"#2b3036","editorLineNumber.foreground":"#444d56","editorLineNumber.activeForeground":"#e1e4e8","editorIndentGuide.background":"#2f363d","editorIndentGuide.activeBackground":"#444d56","editorWhitespace.foreground":"#444d56","editorCursor.foreground":"#c8e1ff","editorError.foreground":"#f97583","editorWarning.foreground":"#ffea7f","editor.findMatchBackground":"#ffd33d44","editor.findMatchHighlightBackground":"#ffd33d22","editor.linkedEditingBackground":"#3392FF22","editor.inactiveSelectionBackground":"#3392FF22","editor.selectionBackground":"#3392FF44","editor.selectionHighlightBackground":"#17E5E633","editor.selectionHighlightBorder":"#17E5E600","editor.wordHighlightBackground":"#17E5E600","editor.wordHighlightStrongBackground":"#17E5E600","editor.wordHighlightBorder":"#17E5E699","editor.wordHighlightStrongBorder":"#17E5E666","editorBracketMatch.background":"#17E5E650","editorBracketMatch.border":"#17E5E600","editorGutter.modifiedBackground":"#2188ff","editorGutter.addedBackground":"#28a745","editorGutter.deletedBackground":"#ea4a5a","diffEditor.insertedTextBackground":"#28a74530","diffEditor.removedTextBackground":"#d73a4930","scrollbar.shadow":"#0008","scrollbarSlider.background":"#6a737d33","scrollbarSlider.hoverBackground":"#6a737d44","scrollbarSlider.activeBackground":"#6a737d88","editorOverviewRuler.border":"#1b1f23","panel.background":"#1f2428","panel.border":"#1b1f23","panelTitle.activeBorder":"#f9826c","panelTitle.activeForeground":"#e1e4e8","panelTitle.inactiveForeground":"#959da5","panelInput.border":"#2f363d","terminal.foreground":"#d1d5da","terminal.tab.activeBorder":"#f9826c","terminalCursor.background":"#586069","terminalCursor.foreground":"#79b8ff","terminal.ansiBrightWhite":"#fafbfc","terminal.ansiWhite":"#d1d5da","terminal.ansiBrightBlack":"#959da5","terminal.ansiBlack":"#586069","terminal.ansiBlue":"#2188ff","terminal.ansiBrightBlue":"#79b8ff","terminal.ansiGreen":"#34d058","terminal.ansiBrightGreen":"#85e89d","terminal.ansiCyan":"#39c5cf","terminal.ansiBrightCyan":"#56d4dd","terminal.ansiRed":"#ea4a5a","terminal.ansiBrightRed":"#f97583","terminal.ansiMagenta":"#b392f0","terminal.ansiBrightMagenta":"#b392f0","terminal.ansiYellow":"#ffea7f","terminal.ansiBrightYellow":"#ffea7f","editorBracketHighlight.foreground1":"#79b8ff","editorBracketHighlight.foreground2":"#ffab70","editorBracketHighlight.foreground3":"#b392f0","editorBracketHighlight.foreground4":"#79b8ff","editorBracketHighlight.foreground5":"#ffab70","editorBracketHighlight.foreground6":"#b392f0","gitDecoration.addedResourceForeground":"#34d058","gitDecoration.modifiedResourceForeground":"#79b8ff","gitDecoration.deletedResourceForeground":"#ea4a5a","gitDecoration.untrackedResourceForeground":"#34d058","gitDecoration.ignoredResourceForeground":"#6a737d","gitDecoration.conflictingResourceForeground":"#ffab70","gitDecoration.submoduleResourceForeground":"#6a737d","debugToolBar.background":"#2b3036","editor.stackFrameHighlightBackground":"#C6902625","editor.focusedStackFrameHighlightBackground":"#2b6a3033","peekViewEditor.matchHighlightBackground":"#ffd33d33","peekViewResult.matchHighlightBackground":"#ffd33d33","peekViewEditor.background":"#1f242888","peekViewResult.background":"#1f2428","settings.headerForeground":"#e1e4e8","settings.modifiedItemIndicator":"#0366d6","welcomePage.buttonBackground":"#2f363d","welcomePage.buttonHoverBackground":"#444d56"},semanticHighlighting:true,tokenColors:[{scope:["comment","punctuation.definition.comment","string.comment"],settings:{foreground:"#6a737d"}},{scope:["constant","entity.name.constant","variable.other.constant","variable.other.enummember","variable.language"],settings:{foreground:"#79b8ff"}},{scope:["entity","entity.name"],settings:{foreground:"#b392f0"}},{scope:"variable.parameter.function",settings:{foreground:"#e1e4e8"}},{scope:"entity.name.tag",settings:{foreground:"#85e89d"}},{scope:"keyword",settings:{foreground:"#f97583"}},{scope:["storage","storage.type"],settings:{foreground:"#f97583"}},{scope:["storage.modifier.package","storage.modifier.import","storage.type.java"],settings:{foreground:"#e1e4e8"}},{scope:["string","punctuation.definition.string","string punctuation.section.embedded source"],settings:{foreground:"#9ecbff"}},{scope:"support",settings:{foreground:"#79b8ff"}},{scope:"meta.property-name",settings:{foreground:"#79b8ff"}},{scope:"variable",settings:{foreground:"#ffab70"}},{scope:"variable.other",settings:{foreground:"#e1e4e8"}},{scope:"invalid.broken",settings:{fontStyle:"italic",foreground:"#fdaeb7"}},{scope:"invalid.deprecated",settings:{fontStyle:"italic",foreground:"#fdaeb7"}},{scope:"invalid.illegal",settings:{fontStyle:"italic",foreground:"#fdaeb7"}},{scope:"invalid.unimplemented",settings:{fontStyle:"italic",foreground:"#fdaeb7"}},{scope:"carriage-return",settings:{fontStyle:"italic underline",background:"#f97583",foreground:"#24292e",content:"^M"}},{scope:"message.error",settings:{foreground:"#fdaeb7"}},{scope:"string variable",settings:{foreground:"#79b8ff"}},{scope:["source.regexp","string.regexp"],settings:{foreground:"#dbedff"}},{scope:["string.regexp.character-class","string.regexp constant.character.escape","string.regexp source.ruby.embedded","string.regexp string.regexp.arbitrary-repitition"],settings:{foreground:"#dbedff"}},{scope:"string.regexp constant.character.escape",settings:{fontStyle:"bold",foreground:"#85e89d"}},{scope:"support.constant",settings:{foreground:"#79b8ff"}},{scope:"support.variable",settings:{foreground:"#79b8ff"}},{scope:"meta.module-reference",settings:{foreground:"#79b8ff"}},{scope:"punctuation.definition.list.begin.markdown",settings:{foreground:"#ffab70"}},{scope:["markup.heading","markup.heading entity.name"],settings:{fontStyle:"bold",foreground:"#79b8ff"}},{scope:"markup.quote",settings:{foreground:"#85e89d"}},{scope:"markup.italic",settings:{fontStyle:"italic",foreground:"#e1e4e8"}},{scope:"markup.bold",settings:{fontStyle:"bold",foreground:"#e1e4e8"}},{scope:["markup.underline"],settings:{fontStyle:"underline"}},{scope:["markup.strikethrough"],settings:{fontStyle:"strikethrough"}},{scope:"markup.inline.raw",settings:{foreground:"#79b8ff"}},{scope:["markup.deleted","meta.diff.header.from-file","punctuation.definition.deleted"],settings:{background:"#86181d",foreground:"#fdaeb7"}},{scope:["markup.inserted","meta.diff.header.to-file","punctuation.definition.inserted"],settings:{background:"#144620",foreground:"#85e89d"}},{scope:["markup.changed","punctuation.definition.changed"],settings:{background:"#c24e00",foreground:"#ffab70"}},{scope:["markup.ignored","markup.untracked"],settings:{foreground:"#2f363d",background:"#79b8ff"}},{scope:"meta.diff.range",settings:{foreground:"#b392f0",fontStyle:"bold"}},{scope:"meta.diff.header",settings:{foreground:"#79b8ff"}},{scope:"meta.separator",settings:{fontStyle:"bold",foreground:"#79b8ff"}},{scope:"meta.output",settings:{foreground:"#79b8ff"}},{scope:["brackethighlighter.tag","brackethighlighter.curly","brackethighlighter.round","brackethighlighter.square","brackethighlighter.angle","brackethighlighter.quote"],settings:{foreground:"#d1d5da"}},{scope:"brackethighlighter.unmatched",settings:{foreground:"#fdaeb7"}},{scope:["constant.other.reference.link","string.other.link"],settings:{foreground:"#dbedff",fontStyle:"underline"}}]}; + +export { githubDark as default }; diff --git a/docs/shiki/dist/themes/github-dark-dimmed-2886658b.mjs b/docs/shiki/dist/themes/github-dark-dimmed-2886658b.mjs new file mode 100644 index 00000000..ea4266e7 --- /dev/null +++ b/docs/shiki/dist/themes/github-dark-dimmed-2886658b.mjs @@ -0,0 +1,3 @@ +var githubDarkDimmed = {name:"github-dark-dimmed",colors:{focusBorder:"#316dca",foreground:"#adbac7",descriptionForeground:"#768390",errorForeground:"#e5534b","textLink.foreground":"#539bf5","textLink.activeForeground":"#539bf5","textBlockQuote.background":"#1c2128","textBlockQuote.border":"#444c56","textCodeBlock.background":"#636e7b66","textPreformat.foreground":"#768390","textSeparator.foreground":"#373e47","icon.foreground":"#768390","keybindingLabel.foreground":"#adbac7","button.background":"#347d39","button.foreground":"#ffffff","button.hoverBackground":"#46954a","button.secondaryBackground":"#3d444d","button.secondaryForeground":"#adbac7","button.secondaryHoverBackground":"#444c56","checkbox.background":"#2d333b","checkbox.border":"#444c56","dropdown.background":"#2d333b","dropdown.border":"#444c56","dropdown.foreground":"#adbac7","dropdown.listBackground":"#2d333b","input.background":"#22272e","input.border":"#444c56","input.foreground":"#adbac7","input.placeholderForeground":"#636e7b","badge.foreground":"#cdd9e5","badge.background":"#316dca","progressBar.background":"#316dca","titleBar.activeForeground":"#768390","titleBar.activeBackground":"#22272e","titleBar.inactiveForeground":"#768390","titleBar.inactiveBackground":"#1c2128","titleBar.border":"#444c56","activityBar.foreground":"#adbac7","activityBar.inactiveForeground":"#768390","activityBar.background":"#22272e","activityBarBadge.foreground":"#cdd9e5","activityBarBadge.background":"#316dca","activityBar.activeBorder":"#ec775c","activityBar.border":"#444c56","sideBar.foreground":"#adbac7","sideBar.background":"#1c2128","sideBar.border":"#444c56","sideBarTitle.foreground":"#adbac7","sideBarSectionHeader.foreground":"#adbac7","sideBarSectionHeader.background":"#1c2128","sideBarSectionHeader.border":"#444c56","list.hoverForeground":"#adbac7","list.inactiveSelectionForeground":"#adbac7","list.activeSelectionForeground":"#adbac7","list.hoverBackground":"#636e7b1a","list.inactiveSelectionBackground":"#636e7b66","list.activeSelectionBackground":"#636e7b66","list.focusForeground":"#adbac7","list.focusBackground":"#4184e426","list.inactiveFocusBackground":"#4184e426","list.highlightForeground":"#539bf5","tree.indentGuidesStroke":"#373e47","notificationCenterHeader.foreground":"#768390","notificationCenterHeader.background":"#2d333b","notifications.foreground":"#adbac7","notifications.background":"#2d333b","notifications.border":"#444c56","notificationsErrorIcon.foreground":"#e5534b","notificationsWarningIcon.foreground":"#c69026","notificationsInfoIcon.foreground":"#539bf5","pickerGroup.border":"#444c56","pickerGroup.foreground":"#768390","quickInput.background":"#2d333b","quickInput.foreground":"#adbac7","statusBar.foreground":"#768390","statusBar.background":"#22272e","statusBar.border":"#444c56","statusBar.focusBorder":"#316dca80","statusBar.noFolderBackground":"#22272e","statusBar.debuggingForeground":"#cdd9e5","statusBar.debuggingBackground":"#c93c37","statusBarItem.prominentBackground":"#636e7b66","statusBarItem.remoteForeground":"#adbac7","statusBarItem.remoteBackground":"#444c56","statusBarItem.hoverBackground":"#adbac714","statusBarItem.activeBackground":"#adbac71f","statusBarItem.focusBorder":"#316dca","editorGroupHeader.tabsBackground":"#1c2128","editorGroupHeader.tabsBorder":"#444c56","editorGroup.border":"#444c56","tab.activeForeground":"#adbac7","tab.inactiveForeground":"#768390","tab.inactiveBackground":"#1c2128","tab.activeBackground":"#22272e","tab.hoverBackground":"#22272e","tab.unfocusedHoverBackground":"#636e7b1a","tab.border":"#444c56","tab.unfocusedActiveBorderTop":"#444c56","tab.activeBorder":"#22272e","tab.unfocusedActiveBorder":"#22272e","tab.activeBorderTop":"#ec775c","breadcrumb.foreground":"#768390","breadcrumb.focusForeground":"#adbac7","breadcrumb.activeSelectionForeground":"#768390","breadcrumbPicker.background":"#2d333b","editor.foreground":"#adbac7","editor.background":"#22272e","editorWidget.background":"#2d333b","editor.foldBackground":"#636e7b1a","editor.lineHighlightBackground":"#636e7b1a","editorLineNumber.foreground":"#636e7b","editorLineNumber.activeForeground":"#adbac7","editorIndentGuide.background":"#adbac71f","editorIndentGuide.activeBackground":"#adbac73d","editorWhitespace.foreground":"#545d68","editorCursor.foreground":"#539bf5","editor.findMatchBackground":"#966600","editor.findMatchHighlightBackground":"#eac55f80","editor.linkedEditingBackground":"#539bf512","editor.selectionHighlightBackground":"#57ab5a40","editor.wordHighlightBackground":"#636e7b80","editor.wordHighlightBorder":"#636e7b99","editor.wordHighlightStrongBackground":"#636e7b4d","editor.wordHighlightStrongBorder":"#636e7b99","editorBracketMatch.background":"#57ab5a40","editorBracketMatch.border":"#57ab5a99","editorInlayHint.background":"#76839033","editorInlayHint.foreground":"#768390","editorInlayHint.typeBackground":"#76839033","editorInlayHint.typeForeground":"#768390","editorInlayHint.paramBackground":"#76839033","editorInlayHint.paramForeground":"#768390","editorGutter.modifiedBackground":"#ae7c1466","editorGutter.addedBackground":"#46954a66","editorGutter.deletedBackground":"#e5534b66","diffEditor.insertedLineBackground":"#347d3926","diffEditor.insertedTextBackground":"#57ab5a4d","diffEditor.removedLineBackground":"#c93c3726","diffEditor.removedTextBackground":"#f470674d","scrollbar.shadow":"#545d6833","scrollbarSlider.background":"#76839033","scrollbarSlider.hoverBackground":"#7683903d","scrollbarSlider.activeBackground":"#76839047","editorOverviewRuler.border":"#1c2128","minimapSlider.background":"#76839033","minimapSlider.hoverBackground":"#7683903d","minimapSlider.activeBackground":"#76839047","panel.background":"#1c2128","panel.border":"#444c56","panelTitle.activeBorder":"#ec775c","panelTitle.activeForeground":"#adbac7","panelTitle.inactiveForeground":"#768390","panelInput.border":"#444c56","debugIcon.breakpointForeground":"#e5534b","debugConsole.infoForeground":"#768390","debugConsole.warningForeground":"#c69026","debugConsole.errorForeground":"#ff938a","debugConsole.sourceForeground":"#daaa3f","debugConsoleInputIcon.foreground":"#b083f0","debugTokenExpression.name":"#6cb6ff","debugTokenExpression.value":"#96d0ff","debugTokenExpression.string":"#96d0ff","debugTokenExpression.boolean":"#6bc46d","debugTokenExpression.number":"#6bc46d","debugTokenExpression.error":"#ff938a","symbolIcon.arrayForeground":"#e0823d","symbolIcon.booleanForeground":"#539bf5","symbolIcon.classForeground":"#e0823d","symbolIcon.colorForeground":"#6cb6ff","symbolIcon.constructorForeground":"#dcbdfb","symbolIcon.enumeratorForeground":"#e0823d","symbolIcon.enumeratorMemberForeground":"#539bf5","symbolIcon.eventForeground":"#636e7b","symbolIcon.fieldForeground":"#e0823d","symbolIcon.fileForeground":"#c69026","symbolIcon.folderForeground":"#c69026","symbolIcon.functionForeground":"#b083f0","symbolIcon.interfaceForeground":"#e0823d","symbolIcon.keyForeground":"#539bf5","symbolIcon.keywordForeground":"#f47067","symbolIcon.methodForeground":"#b083f0","symbolIcon.moduleForeground":"#f47067","symbolIcon.namespaceForeground":"#f47067","symbolIcon.nullForeground":"#539bf5","symbolIcon.numberForeground":"#57ab5a","symbolIcon.objectForeground":"#e0823d","symbolIcon.operatorForeground":"#6cb6ff","symbolIcon.packageForeground":"#e0823d","symbolIcon.propertyForeground":"#e0823d","symbolIcon.referenceForeground":"#539bf5","symbolIcon.snippetForeground":"#539bf5","symbolIcon.stringForeground":"#6cb6ff","symbolIcon.structForeground":"#e0823d","symbolIcon.textForeground":"#6cb6ff","symbolIcon.typeParameterForeground":"#6cb6ff","symbolIcon.unitForeground":"#539bf5","symbolIcon.variableForeground":"#e0823d","symbolIcon.constantForeground":["#b4f1b4","#8ddb8c","#6bc46d","#57ab5a","#46954a","#347d39","#2b6a30","#245829","#1b4721","#113417"],"terminal.foreground":"#adbac7","terminal.ansiBlack":"#545d68","terminal.ansiRed":"#f47067","terminal.ansiGreen":"#57ab5a","terminal.ansiYellow":"#c69026","terminal.ansiBlue":"#539bf5","terminal.ansiMagenta":"#b083f0","terminal.ansiCyan":"#39c5cf","terminal.ansiWhite":"#909dab","terminal.ansiBrightBlack":"#636e7b","terminal.ansiBrightRed":"#ff938a","terminal.ansiBrightGreen":"#6bc46d","terminal.ansiBrightYellow":"#daaa3f","terminal.ansiBrightBlue":"#6cb6ff","terminal.ansiBrightMagenta":"#dcbdfb","terminal.ansiBrightCyan":"#56d4dd","terminal.ansiBrightWhite":"#cdd9e5","editorBracketHighlight.foreground1":"#6cb6ff","editorBracketHighlight.foreground2":"#6bc46d","editorBracketHighlight.foreground3":"#daaa3f","editorBracketHighlight.foreground4":"#ff938a","editorBracketHighlight.foreground5":"#fc8dc7","editorBracketHighlight.foreground6":"#dcbdfb","editorBracketHighlight.unexpectedBracket.foreground":"#768390","gitDecoration.addedResourceForeground":"#57ab5a","gitDecoration.modifiedResourceForeground":"#c69026","gitDecoration.deletedResourceForeground":"#e5534b","gitDecoration.untrackedResourceForeground":"#57ab5a","gitDecoration.ignoredResourceForeground":"#636e7b","gitDecoration.conflictingResourceForeground":"#cc6b2c","gitDecoration.submoduleResourceForeground":"#768390","debugToolBar.background":"#2d333b","editor.stackFrameHighlightBackground":"#ae7c1466","editor.focusedStackFrameHighlightBackground":"#46954a66","peekViewEditor.matchHighlightBackground":"#ae7c1466","peekViewResult.matchHighlightBackground":"#ae7c1466","peekViewEditor.background":"#636e7b1a","peekViewResult.background":"#22272e","settings.headerForeground":"#adbac7","settings.modifiedItemIndicator":"#ae7c1466","welcomePage.buttonBackground":"#373e47","welcomePage.buttonHoverBackground":"#444c56"},semanticHighlighting:true,tokenColors:[{scope:["comment","punctuation.definition.comment","string.comment"],settings:{foreground:"#768390"}},{scope:["constant.other.placeholder","constant.character"],settings:{foreground:"#f47067"}},{scope:["constant","entity.name.constant","variable.other.constant","variable.other.enummember","variable.language","entity"],settings:{foreground:"#6cb6ff"}},{scope:["entity.name","meta.export.default","meta.definition.variable"],settings:{foreground:"#f69d50"}},{scope:["variable.parameter.function","meta.jsx.children","meta.block","meta.tag.attributes","entity.name.constant","meta.object.member","meta.embedded.expression"],settings:{foreground:"#adbac7"}},{scope:"entity.name.function",settings:{foreground:"#dcbdfb"}},{scope:["entity.name.tag","support.class.component"],settings:{foreground:"#8ddb8c"}},{scope:"keyword",settings:{foreground:"#f47067"}},{scope:["storage","storage.type"],settings:{foreground:"#f47067"}},{scope:["storage.modifier.package","storage.modifier.import","storage.type.java"],settings:{foreground:"#adbac7"}},{scope:["string","string punctuation.section.embedded source"],settings:{foreground:"#96d0ff"}},{scope:"support",settings:{foreground:"#6cb6ff"}},{scope:"meta.property-name",settings:{foreground:"#6cb6ff"}},{scope:"variable",settings:{foreground:"#f69d50"}},{scope:"variable.other",settings:{foreground:"#adbac7"}},{scope:"invalid.broken",settings:{fontStyle:"italic",foreground:"#ff938a"}},{scope:"invalid.deprecated",settings:{fontStyle:"italic",foreground:"#ff938a"}},{scope:"invalid.illegal",settings:{fontStyle:"italic",foreground:"#ff938a"}},{scope:"invalid.unimplemented",settings:{fontStyle:"italic",foreground:"#ff938a"}},{scope:"carriage-return",settings:{fontStyle:"italic underline",background:"#f47067",foreground:"#cdd9e5",content:"^M"}},{scope:"message.error",settings:{foreground:"#ff938a"}},{scope:"string variable",settings:{foreground:"#6cb6ff"}},{scope:["source.regexp","string.regexp"],settings:{foreground:"#96d0ff"}},{scope:["string.regexp.character-class","string.regexp constant.character.escape","string.regexp source.ruby.embedded","string.regexp string.regexp.arbitrary-repitition"],settings:{foreground:"#96d0ff"}},{scope:"string.regexp constant.character.escape",settings:{fontStyle:"bold",foreground:"#8ddb8c"}},{scope:"support.constant",settings:{foreground:"#6cb6ff"}},{scope:"support.variable",settings:{foreground:"#6cb6ff"}},{scope:"support.type.property-name.json",settings:{foreground:"#8ddb8c"}},{scope:"meta.module-reference",settings:{foreground:"#6cb6ff"}},{scope:"punctuation.definition.list.begin.markdown",settings:{foreground:"#f69d50"}},{scope:["markup.heading","markup.heading entity.name"],settings:{fontStyle:"bold",foreground:"#6cb6ff"}},{scope:"markup.quote",settings:{foreground:"#8ddb8c"}},{scope:"markup.italic",settings:{fontStyle:"italic",foreground:"#adbac7"}},{scope:"markup.bold",settings:{fontStyle:"bold",foreground:"#adbac7"}},{scope:["markup.underline"],settings:{fontStyle:"underline"}},{scope:["markup.strikethrough"],settings:{fontStyle:"strikethrough"}},{scope:"markup.inline.raw",settings:{foreground:"#6cb6ff"}},{scope:["markup.deleted","meta.diff.header.from-file","punctuation.definition.deleted"],settings:{background:"#5d0f12",foreground:"#ff938a"}},{scope:["punctuation.section.embedded"],settings:{foreground:"#f47067"}},{scope:["markup.inserted","meta.diff.header.to-file","punctuation.definition.inserted"],settings:{background:"#113417",foreground:"#8ddb8c"}},{scope:["markup.changed","punctuation.definition.changed"],settings:{background:"#682d0f",foreground:"#f69d50"}},{scope:["markup.ignored","markup.untracked"],settings:{foreground:"#2d333b",background:"#6cb6ff"}},{scope:"meta.diff.range",settings:{foreground:"#dcbdfb",fontStyle:"bold"}},{scope:"meta.diff.header",settings:{foreground:"#6cb6ff"}},{scope:"meta.separator",settings:{fontStyle:"bold",foreground:"#6cb6ff"}},{scope:"meta.output",settings:{foreground:"#6cb6ff"}},{scope:["brackethighlighter.tag","brackethighlighter.curly","brackethighlighter.round","brackethighlighter.square","brackethighlighter.angle","brackethighlighter.quote"],settings:{foreground:"#768390"}},{scope:"brackethighlighter.unmatched",settings:{foreground:"#ff938a"}},{scope:["constant.other.reference.link","string.other.link"],settings:{foreground:"#96d0ff"}}]}; + +export { githubDarkDimmed as default }; diff --git a/docs/shiki/dist/themes/github-light-1abdeeba.mjs b/docs/shiki/dist/themes/github-light-1abdeeba.mjs new file mode 100644 index 00000000..0916918a --- /dev/null +++ b/docs/shiki/dist/themes/github-light-1abdeeba.mjs @@ -0,0 +1,3 @@ +var githubLight = {name:"github-light",colors:{focusBorder:"#2188ff",foreground:"#444d56",descriptionForeground:"#6a737d",errorForeground:"#cb2431","textLink.foreground":"#0366d6","textLink.activeForeground":"#005cc5","textBlockQuote.background":"#fafbfc","textBlockQuote.border":"#e1e4e8","textCodeBlock.background":"#f6f8fa","textPreformat.foreground":"#586069","textSeparator.foreground":"#d1d5da","button.background":"#159739","button.foreground":"#fff","button.hoverBackground":"#138934","button.secondaryBackground":"#e1e4e8","button.secondaryForeground":"#1b1f23","button.secondaryHoverBackground":"#d1d5da","checkbox.background":"#fafbfc","checkbox.border":"#d1d5da","dropdown.background":"#fafbfc","dropdown.border":"#e1e4e8","dropdown.foreground":"#2f363d","dropdown.listBackground":"#fff","input.background":"#fafbfc","input.border":"#e1e4e8","input.foreground":"#2f363d","input.placeholderForeground":"#959da5","badge.foreground":"#005cc5","badge.background":"#dbedff","progressBar.background":"#2188ff","titleBar.activeForeground":"#2f363d","titleBar.activeBackground":"#fff","titleBar.inactiveForeground":"#6a737d","titleBar.inactiveBackground":"#f6f8fa","titleBar.border":"#e1e4e8","activityBar.foreground":"#2f363d","activityBar.inactiveForeground":"#959da5","activityBar.background":"#fff","activityBarBadge.foreground":"#fff","activityBarBadge.background":"#2188ff","activityBar.activeBorder":"#f9826c","activityBar.border":"#e1e4e8","sideBar.foreground":"#586069","sideBar.background":"#f6f8fa","sideBar.border":"#e1e4e8","sideBarTitle.foreground":"#2f363d","sideBarSectionHeader.foreground":"#2f363d","sideBarSectionHeader.background":"#f6f8fa","sideBarSectionHeader.border":"#e1e4e8","list.hoverForeground":"#2f363d","list.inactiveSelectionForeground":"#2f363d","list.activeSelectionForeground":"#2f363d","list.hoverBackground":"#ebf0f4","list.inactiveSelectionBackground":"#e8eaed","list.activeSelectionBackground":"#e2e5e9","list.inactiveFocusBackground":"#dbedff","list.focusBackground":"#cce5ff","tree.indentGuidesStroke":"#e1e4e8","notificationCenterHeader.foreground":"#6a737d","notificationCenterHeader.background":"#e1e4e8","notifications.foreground":"#2f363d","notifications.background":"#fafbfc","notifications.border":"#e1e4e8","notificationsErrorIcon.foreground":"#d73a49","notificationsWarningIcon.foreground":"#e36209","notificationsInfoIcon.foreground":"#005cc5","pickerGroup.border":"#e1e4e8","pickerGroup.foreground":"#2f363d","quickInput.background":"#fafbfc","quickInput.foreground":"#2f363d","statusBar.foreground":"#586069","statusBar.background":"#fff","statusBar.border":"#e1e4e8","statusBar.noFolderBackground":"#fff","statusBar.debuggingBackground":"#f9826c","statusBar.debuggingForeground":"#fff","statusBarItem.prominentBackground":"#e8eaed","statusBarItem.remoteForeground":"#586069","statusBarItem.remoteBackground":"#fff","editorGroupHeader.tabsBackground":"#f6f8fa","editorGroupHeader.tabsBorder":"#e1e4e8","editorGroup.border":"#e1e4e8","tab.activeForeground":"#2f363d","tab.inactiveForeground":"#6a737d","tab.inactiveBackground":"#f6f8fa","tab.activeBackground":"#fff","tab.hoverBackground":"#fff","tab.unfocusedHoverBackground":"#fff","tab.border":"#e1e4e8","tab.unfocusedActiveBorderTop":"#e1e4e8","tab.activeBorder":"#fff","tab.unfocusedActiveBorder":"#fff","tab.activeBorderTop":"#f9826c","breadcrumb.foreground":"#6a737d","breadcrumb.focusForeground":"#2f363d","breadcrumb.activeSelectionForeground":"#586069","breadcrumbPicker.background":"#fafbfc","editor.foreground":"#24292e","editor.background":"#fff","editorWidget.background":"#f6f8fa","editor.foldBackground":"#d1d5da11","editor.lineHighlightBackground":"#f6f8fa","editorLineNumber.foreground":"#1b1f234d","editorLineNumber.activeForeground":"#24292e","editorIndentGuide.background":"#eff2f6","editorIndentGuide.activeBackground":"#d7dbe0","editorWhitespace.foreground":"#d1d5da","editorCursor.foreground":"#044289","editorError.foreground":"#cb2431","editorWarning.foreground":"#f9c513","editor.findMatchBackground":"#ffdf5d","editor.findMatchHighlightBackground":"#ffdf5d66","editor.linkedEditingBackground":"#0366d611","editor.inactiveSelectionBackground":"#0366d611","editor.selectionBackground":"#0366d625","editor.selectionHighlightBackground":"#34d05840","editor.selectionHighlightBorder":"#34d05800","editor.wordHighlightBackground":"#34d05800","editor.wordHighlightStrongBackground":"#34d05800","editor.wordHighlightBorder":"#24943e99","editor.wordHighlightStrongBorder":"#24943e50","editorBracketMatch.background":"#34d05840","editorBracketMatch.border":"#34d05800","editorGutter.modifiedBackground":"#2188ff","editorGutter.addedBackground":"#28a745","editorGutter.deletedBackground":"#d73a49","diffEditor.insertedTextBackground":"#34d05822","diffEditor.removedTextBackground":"#d73a4922","scrollbar.shadow":"#6a737d33","scrollbarSlider.background":"#959da533","scrollbarSlider.hoverBackground":"#959da544","scrollbarSlider.activeBackground":"#959da588","editorOverviewRuler.border":"#fff","panel.background":"#f6f8fa","panel.border":"#e1e4e8","panelTitle.activeBorder":"#f9826c","panelTitle.activeForeground":"#2f363d","panelTitle.inactiveForeground":"#6a737d","panelInput.border":"#e1e4e8","terminal.foreground":"#586069","terminal.tab.activeBorder":"#f9826c","terminalCursor.background":"#d1d5da","terminalCursor.foreground":"#005cc5","terminal.ansiBrightWhite":"#d1d5da","terminal.ansiWhite":"#6a737d","terminal.ansiBrightBlack":"#959da5","terminal.ansiBlack":"#24292e","terminal.ansiBlue":"#0366d6","terminal.ansiBrightBlue":"#005cc5","terminal.ansiGreen":"#28a745","terminal.ansiBrightGreen":"#22863a","terminal.ansiCyan":"#1b7c83","terminal.ansiBrightCyan":"#3192aa","terminal.ansiRed":"#d73a49","terminal.ansiBrightRed":"#cb2431","terminal.ansiMagenta":"#5a32a3","terminal.ansiBrightMagenta":"#5a32a3","terminal.ansiYellow":"#dbab09","terminal.ansiBrightYellow":"#b08800","editorBracketHighlight.foreground1":"#005cc5","editorBracketHighlight.foreground2":"#e36209","editorBracketHighlight.foreground3":"#5a32a3","editorBracketHighlight.foreground4":"#005cc5","editorBracketHighlight.foreground5":"#e36209","editorBracketHighlight.foreground6":"#5a32a3","gitDecoration.addedResourceForeground":"#28a745","gitDecoration.modifiedResourceForeground":"#005cc5","gitDecoration.deletedResourceForeground":"#d73a49","gitDecoration.untrackedResourceForeground":"#28a745","gitDecoration.ignoredResourceForeground":"#959da5","gitDecoration.conflictingResourceForeground":"#e36209","gitDecoration.submoduleResourceForeground":"#959da5","debugToolBar.background":"#fff","editor.stackFrameHighlightBackground":"#ffd33d33","editor.focusedStackFrameHighlightBackground":"#28a74525","settings.headerForeground":"#2f363d","settings.modifiedItemIndicator":"#2188ff","welcomePage.buttonBackground":"#f6f8fa","welcomePage.buttonHoverBackground":"#e1e4e8"},semanticHighlighting:true,tokenColors:[{scope:["comment","punctuation.definition.comment","string.comment"],settings:{foreground:"#6a737d"}},{scope:["constant","entity.name.constant","variable.other.constant","variable.other.enummember","variable.language"],settings:{foreground:"#005cc5"}},{scope:["entity","entity.name"],settings:{foreground:"#6f42c1"}},{scope:"variable.parameter.function",settings:{foreground:"#24292e"}},{scope:"entity.name.tag",settings:{foreground:"#22863a"}},{scope:"keyword",settings:{foreground:"#d73a49"}},{scope:["storage","storage.type"],settings:{foreground:"#d73a49"}},{scope:["storage.modifier.package","storage.modifier.import","storage.type.java"],settings:{foreground:"#24292e"}},{scope:["string","punctuation.definition.string","string punctuation.section.embedded source"],settings:{foreground:"#032f62"}},{scope:"support",settings:{foreground:"#005cc5"}},{scope:"meta.property-name",settings:{foreground:"#005cc5"}},{scope:"variable",settings:{foreground:"#e36209"}},{scope:"variable.other",settings:{foreground:"#24292e"}},{scope:"invalid.broken",settings:{fontStyle:"italic",foreground:"#b31d28"}},{scope:"invalid.deprecated",settings:{fontStyle:"italic",foreground:"#b31d28"}},{scope:"invalid.illegal",settings:{fontStyle:"italic",foreground:"#b31d28"}},{scope:"invalid.unimplemented",settings:{fontStyle:"italic",foreground:"#b31d28"}},{scope:"carriage-return",settings:{fontStyle:"italic underline",background:"#d73a49",foreground:"#fafbfc",content:"^M"}},{scope:"message.error",settings:{foreground:"#b31d28"}},{scope:"string variable",settings:{foreground:"#005cc5"}},{scope:["source.regexp","string.regexp"],settings:{foreground:"#032f62"}},{scope:["string.regexp.character-class","string.regexp constant.character.escape","string.regexp source.ruby.embedded","string.regexp string.regexp.arbitrary-repitition"],settings:{foreground:"#032f62"}},{scope:"string.regexp constant.character.escape",settings:{fontStyle:"bold",foreground:"#22863a"}},{scope:"support.constant",settings:{foreground:"#005cc5"}},{scope:"support.variable",settings:{foreground:"#005cc5"}},{scope:"meta.module-reference",settings:{foreground:"#005cc5"}},{scope:"punctuation.definition.list.begin.markdown",settings:{foreground:"#e36209"}},{scope:["markup.heading","markup.heading entity.name"],settings:{fontStyle:"bold",foreground:"#005cc5"}},{scope:"markup.quote",settings:{foreground:"#22863a"}},{scope:"markup.italic",settings:{fontStyle:"italic",foreground:"#24292e"}},{scope:"markup.bold",settings:{fontStyle:"bold",foreground:"#24292e"}},{scope:["markup.underline"],settings:{fontStyle:"underline"}},{scope:["markup.strikethrough"],settings:{fontStyle:"strikethrough"}},{scope:"markup.inline.raw",settings:{foreground:"#005cc5"}},{scope:["markup.deleted","meta.diff.header.from-file","punctuation.definition.deleted"],settings:{background:"#ffeef0",foreground:"#b31d28"}},{scope:["markup.inserted","meta.diff.header.to-file","punctuation.definition.inserted"],settings:{background:"#f0fff4",foreground:"#22863a"}},{scope:["markup.changed","punctuation.definition.changed"],settings:{background:"#ffebda",foreground:"#e36209"}},{scope:["markup.ignored","markup.untracked"],settings:{foreground:"#f6f8fa",background:"#005cc5"}},{scope:"meta.diff.range",settings:{foreground:"#6f42c1",fontStyle:"bold"}},{scope:"meta.diff.header",settings:{foreground:"#005cc5"}},{scope:"meta.separator",settings:{fontStyle:"bold",foreground:"#005cc5"}},{scope:"meta.output",settings:{foreground:"#005cc5"}},{scope:["brackethighlighter.tag","brackethighlighter.curly","brackethighlighter.round","brackethighlighter.square","brackethighlighter.angle","brackethighlighter.quote"],settings:{foreground:"#586069"}},{scope:"brackethighlighter.unmatched",settings:{foreground:"#b31d28"}},{scope:["constant.other.reference.link","string.other.link"],settings:{foreground:"#032f62",fontStyle:"underline"}}]}; + +export { githubLight as default }; diff --git a/docs/shiki/dist/themes/hc_light-866656c0.mjs b/docs/shiki/dist/themes/hc_light-866656c0.mjs new file mode 100644 index 00000000..1a3da130 --- /dev/null +++ b/docs/shiki/dist/themes/hc_light-866656c0.mjs @@ -0,0 +1,3 @@ +var hc_light = {$schema:"vscode://schemas/color-theme",name:"hc_light",tokenColors:[{scope:["meta.embedded","source.groovy.embedded"],settings:{foreground:"#292929"}},{scope:"emphasis",settings:{fontStyle:"italic"}},{scope:"strong",settings:{fontStyle:"bold"}},{scope:"meta.diff.header",settings:{foreground:"#062F4A"}},{scope:"comment",settings:{foreground:"#515151"}},{scope:"constant.language",settings:{foreground:"#0F4A85"}},{scope:["constant.numeric","variable.other.enummember","keyword.operator.plus.exponent","keyword.operator.minus.exponent"],settings:{foreground:"#096d48"}},{scope:"constant.regexp",settings:{foreground:"#811F3F"}},{scope:"entity.name.tag",settings:{foreground:"#0F4A85"}},{scope:"entity.name.selector",settings:{foreground:"#0F4A85"}},{scope:"entity.other.attribute-name",settings:{foreground:"#264F78"}},{scope:["entity.other.attribute-name.class.css","entity.other.attribute-name.class.mixin.css","entity.other.attribute-name.id.css","entity.other.attribute-name.parent-selector.css","entity.other.attribute-name.pseudo-class.css","entity.other.attribute-name.pseudo-element.css","source.css.less entity.other.attribute-name.id","entity.other.attribute-name.scss"],settings:{foreground:"#0F4A85"}},{scope:"invalid",settings:{foreground:"#B5200D"}},{scope:"markup.underline",settings:{fontStyle:"underline"}},{scope:"markup.bold",settings:{foreground:"#000080",fontStyle:"bold"}},{scope:"markup.heading",settings:{foreground:"#0F4A85",fontStyle:"bold"}},{scope:"markup.italic",settings:{fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{scope:"markup.inserted",settings:{foreground:"#096d48"}},{scope:"markup.deleted",settings:{foreground:"#5A5A5A"}},{scope:"markup.changed",settings:{foreground:"#0451A5"}},{scope:["punctuation.definition.quote.begin.markdown","punctuation.definition.list.begin.markdown"],settings:{foreground:"#0451A5"}},{scope:"markup.inline.raw",settings:{foreground:"#0F4A85"}},{scope:"punctuation.definition.tag",settings:{foreground:"#0F4A85"}},{scope:["meta.preprocessor","entity.name.function.preprocessor"],settings:{foreground:"#0F4A85"}},{scope:"meta.preprocessor.string",settings:{foreground:"#b5200d"}},{scope:"meta.preprocessor.numeric",settings:{foreground:"#096d48"}},{scope:"meta.structure.dictionary.key.python",settings:{foreground:"#0451A5"}},{scope:"storage",settings:{foreground:"#0F4A85"}},{scope:"storage.type",settings:{foreground:"#0F4A85"}},{scope:["storage.modifier","keyword.operator.noexcept"],settings:{foreground:"#0F4A85"}},{scope:["string","meta.embedded.assembly"],settings:{foreground:"#0F4A85"}},{scope:["string.comment.buffered.block.pug","string.quoted.pug","string.interpolated.pug","string.unquoted.plain.in.yaml","string.unquoted.plain.out.yaml","string.unquoted.block.yaml","string.quoted.single.yaml","string.quoted.double.xml","string.quoted.single.xml","string.unquoted.cdata.xml","string.quoted.double.html","string.quoted.single.html","string.unquoted.html","string.quoted.single.handlebars","string.quoted.double.handlebars"],settings:{foreground:"#0F4A85"}},{scope:"string.regexp",settings:{foreground:"#811F3F"}},{scope:["punctuation.definition.template-expression.begin","punctuation.definition.template-expression.end","punctuation.section.embedded"],settings:{foreground:"#0F4A85"}},{scope:["meta.template.expression"],settings:{foreground:"#000000"}},{scope:["support.constant.property-value","support.constant.font-name","support.constant.media-type","support.constant.media","constant.other.color.rgb-value","constant.other.rgb-value","support.constant.color"],settings:{foreground:"#0451A5"}},{scope:["support.type.vendored.property-name","support.type.property-name","variable.css","variable.scss","variable.other.less","source.coffee.embedded"],settings:{foreground:"#264F78"}},{scope:["support.type.property-name.json"],settings:{foreground:"#0451A5"}},{scope:"keyword",settings:{foreground:"#0F4A85"}},{scope:"keyword.control",settings:{foreground:"#0F4A85"}},{scope:"keyword.operator",settings:{foreground:"#000000"}},{scope:["keyword.operator.new","keyword.operator.expression","keyword.operator.cast","keyword.operator.sizeof","keyword.operator.alignof","keyword.operator.typeid","keyword.operator.alignas","keyword.operator.instanceof","keyword.operator.logical.python","keyword.operator.wordlike"],settings:{foreground:"#0F4A85"}},{scope:"keyword.other.unit",settings:{foreground:"#096d48"}},{scope:["punctuation.section.embedded.begin.php","punctuation.section.embedded.end.php"],settings:{foreground:"#0F4A85"}},{scope:"support.function.git-rebase",settings:{foreground:"#0451A5"}},{scope:"constant.sha.git-rebase",settings:{foreground:"#096d48"}},{scope:["storage.modifier.import.java","variable.language.wildcard.java","storage.modifier.package.java"],settings:{foreground:"#000000"}},{scope:"variable.language",settings:{foreground:"#0F4A85"}},{scope:["entity.name.function","support.function","support.constant.handlebars","source.powershell variable.other.member","entity.name.operator.custom-literal"],settings:{foreground:"#5e2cbc"}},{scope:["support.class","support.type","entity.name.type","entity.name.namespace","entity.other.attribute","entity.name.scope-resolution","entity.name.class","storage.type.numeric.go","storage.type.byte.go","storage.type.boolean.go","storage.type.string.go","storage.type.uintptr.go","storage.type.error.go","storage.type.rune.go","storage.type.cs","storage.type.generic.cs","storage.type.modifier.cs","storage.type.variable.cs","storage.type.annotation.java","storage.type.generic.java","storage.type.java","storage.type.object.array.java","storage.type.primitive.array.java","storage.type.primitive.java","storage.type.token.java","storage.type.groovy","storage.type.annotation.groovy","storage.type.parameters.groovy","storage.type.generic.groovy","storage.type.object.array.groovy","storage.type.primitive.array.groovy","storage.type.primitive.groovy"],settings:{foreground:"#185E73"}},{scope:["meta.type.cast.expr","meta.type.new.expr","support.constant.math","support.constant.dom","support.constant.json","entity.other.inherited-class"],settings:{foreground:"#185E73"}},{scope:["keyword.control","source.cpp keyword.operator.new","source.cpp keyword.operator.delete","keyword.other.using","keyword.other.operator","entity.name.operator"],settings:{foreground:"#b5200d"}},{scope:["variable","meta.definition.variable.name","support.variable","entity.name.variable","constant.other.placeholder"],settings:{foreground:"#001080"}},{scope:["variable.other.constant","variable.other.enummember"],settings:{foreground:"#02715D"}},{scope:["meta.object-literal.key"],settings:{foreground:"#001080"}},{scope:["support.constant.property-value","support.constant.font-name","support.constant.media-type","support.constant.media","constant.other.color.rgb-value","constant.other.rgb-value","support.constant.color"],settings:{foreground:"#0451A5"}},{scope:["punctuation.definition.group.regexp","punctuation.definition.group.assertion.regexp","punctuation.definition.character-class.regexp","punctuation.character.set.begin.regexp","punctuation.character.set.end.regexp","keyword.operator.negation.regexp","support.other.parenthesis.regexp"],settings:{foreground:"#D16969"}},{scope:["constant.character.character-class.regexp","constant.other.character-class.set.regexp","constant.other.character-class.regexp","constant.character.set.regexp"],settings:{foreground:"#811F3F"}},{scope:"keyword.operator.quantifier.regexp",settings:{foreground:"#000000"}},{scope:["keyword.operator.or.regexp","keyword.control.anchor.regexp"],settings:{foreground:"#EE0000"}},{scope:"constant.character",settings:{foreground:"#0F4A85"}},{scope:"constant.character.escape",settings:{foreground:"#EE0000"}},{scope:"entity.name.label",settings:{foreground:"#000000"}},{scope:"token.info-token",settings:{foreground:"#316BCD"}},{scope:"token.warn-token",settings:{foreground:"#CD9731"}},{scope:"token.error-token",settings:{foreground:"#CD3131"}},{scope:"token.debug-token",settings:{foreground:"#800080"}}]}; + +export { hc_light as default }; diff --git a/docs/shiki/dist/themes/light-plus-c4a6acc7.mjs b/docs/shiki/dist/themes/light-plus-c4a6acc7.mjs new file mode 100644 index 00000000..d661064c --- /dev/null +++ b/docs/shiki/dist/themes/light-plus-c4a6acc7.mjs @@ -0,0 +1,3 @@ +var lightPlus = {$schema:"vscode://schemas/color-theme",name:"light-plus",tokenColors:[{settings:{foreground:"#000000"}},{scope:["meta.embedded","source.groovy.embedded","string meta.image.inline.markdown"],settings:{foreground:"#000000ff"}},{scope:"emphasis",settings:{fontStyle:"italic"}},{scope:"strong",settings:{fontStyle:"bold"}},{scope:"meta.diff.header",settings:{foreground:"#000080"}},{scope:"comment",settings:{foreground:"#008000"}},{scope:"constant.language",settings:{foreground:"#0000ff"}},{scope:["constant.numeric","variable.other.enummember","keyword.operator.plus.exponent","keyword.operator.minus.exponent"],settings:{foreground:"#098658"}},{scope:"constant.regexp",settings:{foreground:"#811f3f"}},{name:"css tags in selectors, xml tags",scope:"entity.name.tag",settings:{foreground:"#800000"}},{scope:"entity.name.selector",settings:{foreground:"#800000"}},{scope:"entity.other.attribute-name",settings:{foreground:"#e50000"}},{scope:["entity.other.attribute-name.class.css","entity.other.attribute-name.class.mixin.css","entity.other.attribute-name.id.css","entity.other.attribute-name.parent-selector.css","entity.other.attribute-name.pseudo-class.css","entity.other.attribute-name.pseudo-element.css","source.css.less entity.other.attribute-name.id","entity.other.attribute-name.scss"],settings:{foreground:"#800000"}},{scope:"invalid",settings:{foreground:"#cd3131"}},{scope:"markup.underline",settings:{fontStyle:"underline"}},{scope:"markup.bold",settings:{fontStyle:"bold",foreground:"#000080"}},{scope:"markup.heading",settings:{fontStyle:"bold",foreground:"#800000"}},{scope:"markup.italic",settings:{fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{scope:"markup.inserted",settings:{foreground:"#098658"}},{scope:"markup.deleted",settings:{foreground:"#a31515"}},{scope:"markup.changed",settings:{foreground:"#0451a5"}},{scope:["punctuation.definition.quote.begin.markdown","punctuation.definition.list.begin.markdown"],settings:{foreground:"#0451a5"}},{scope:"markup.inline.raw",settings:{foreground:"#800000"}},{name:"brackets of XML/HTML tags",scope:"punctuation.definition.tag",settings:{foreground:"#800000"}},{scope:["meta.preprocessor","entity.name.function.preprocessor"],settings:{foreground:"#0000ff"}},{scope:"meta.preprocessor.string",settings:{foreground:"#a31515"}},{scope:"meta.preprocessor.numeric",settings:{foreground:"#098658"}},{scope:"meta.structure.dictionary.key.python",settings:{foreground:"#0451a5"}},{scope:"storage",settings:{foreground:"#0000ff"}},{scope:"storage.type",settings:{foreground:"#0000ff"}},{scope:["storage.modifier","keyword.operator.noexcept"],settings:{foreground:"#0000ff"}},{scope:["string","meta.embedded.assembly"],settings:{foreground:"#a31515"}},{scope:["string.comment.buffered.block.pug","string.quoted.pug","string.interpolated.pug","string.unquoted.plain.in.yaml","string.unquoted.plain.out.yaml","string.unquoted.block.yaml","string.quoted.single.yaml","string.quoted.double.xml","string.quoted.single.xml","string.unquoted.cdata.xml","string.quoted.double.html","string.quoted.single.html","string.unquoted.html","string.quoted.single.handlebars","string.quoted.double.handlebars"],settings:{foreground:"#0000ff"}},{scope:"string.regexp",settings:{foreground:"#811f3f"}},{name:"String interpolation",scope:["punctuation.definition.template-expression.begin","punctuation.definition.template-expression.end","punctuation.section.embedded"],settings:{foreground:"#0000ff"}},{name:"Reset JavaScript string interpolation expression",scope:["meta.template.expression"],settings:{foreground:"#000000"}},{scope:["support.constant.property-value","support.constant.font-name","support.constant.media-type","support.constant.media","constant.other.color.rgb-value","constant.other.rgb-value","support.constant.color"],settings:{foreground:"#0451a5"}},{scope:["support.type.vendored.property-name","support.type.property-name","variable.css","variable.scss","variable.other.less","source.coffee.embedded"],settings:{foreground:"#e50000"}},{scope:["support.type.property-name.json"],settings:{foreground:"#0451a5"}},{scope:"keyword",settings:{foreground:"#0000ff"}},{scope:"keyword.control",settings:{foreground:"#0000ff"}},{scope:"keyword.operator",settings:{foreground:"#000000"}},{scope:["keyword.operator.new","keyword.operator.expression","keyword.operator.cast","keyword.operator.sizeof","keyword.operator.alignof","keyword.operator.typeid","keyword.operator.alignas","keyword.operator.instanceof","keyword.operator.logical.python","keyword.operator.wordlike"],settings:{foreground:"#0000ff"}},{scope:"keyword.other.unit",settings:{foreground:"#098658"}},{scope:["punctuation.section.embedded.begin.php","punctuation.section.embedded.end.php"],settings:{foreground:"#800000"}},{scope:"support.function.git-rebase",settings:{foreground:"#0451a5"}},{scope:"constant.sha.git-rebase",settings:{foreground:"#098658"}},{name:"coloring of the Java import and package identifiers",scope:["storage.modifier.import.java","variable.language.wildcard.java","storage.modifier.package.java"],settings:{foreground:"#000000"}},{name:"this.self",scope:"variable.language",settings:{foreground:"#0000ff"}},{name:"Function declarations",scope:["entity.name.function","support.function","support.constant.handlebars","source.powershell variable.other.member","entity.name.operator.custom-literal"],settings:{foreground:"#795E26"}},{name:"Types declaration and references",scope:["support.class","support.type","entity.name.type","entity.name.namespace","entity.other.attribute","entity.name.scope-resolution","entity.name.class","storage.type.numeric.go","storage.type.byte.go","storage.type.boolean.go","storage.type.string.go","storage.type.uintptr.go","storage.type.error.go","storage.type.rune.go","storage.type.cs","storage.type.generic.cs","storage.type.modifier.cs","storage.type.variable.cs","storage.type.annotation.java","storage.type.generic.java","storage.type.java","storage.type.object.array.java","storage.type.primitive.array.java","storage.type.primitive.java","storage.type.token.java","storage.type.groovy","storage.type.annotation.groovy","storage.type.parameters.groovy","storage.type.generic.groovy","storage.type.object.array.groovy","storage.type.primitive.array.groovy","storage.type.primitive.groovy"],settings:{foreground:"#267f99"}},{name:"Types declaration and references, TS grammar specific",scope:["meta.type.cast.expr","meta.type.new.expr","support.constant.math","support.constant.dom","support.constant.json","entity.other.inherited-class"],settings:{foreground:"#267f99"}},{name:"Control flow / Special keywords",scope:["keyword.control","source.cpp keyword.operator.new","source.cpp keyword.operator.delete","keyword.other.using","keyword.other.operator","entity.name.operator"],settings:{foreground:"#AF00DB"}},{name:"Variable and parameter name",scope:["variable","meta.definition.variable.name","support.variable","entity.name.variable","constant.other.placeholder"],settings:{foreground:"#001080"}},{name:"Constants and enums",scope:["variable.other.constant","variable.other.enummember"],settings:{foreground:"#0070C1"}},{name:"Object keys, TS grammar specific",scope:["meta.object-literal.key"],settings:{foreground:"#001080"}},{name:"CSS property value",scope:["support.constant.property-value","support.constant.font-name","support.constant.media-type","support.constant.media","constant.other.color.rgb-value","constant.other.rgb-value","support.constant.color"],settings:{foreground:"#0451a5"}},{name:"Regular expression groups",scope:["punctuation.definition.group.regexp","punctuation.definition.group.assertion.regexp","punctuation.definition.character-class.regexp","punctuation.character.set.begin.regexp","punctuation.character.set.end.regexp","keyword.operator.negation.regexp","support.other.parenthesis.regexp"],settings:{foreground:"#d16969"}},{scope:["constant.character.character-class.regexp","constant.other.character-class.set.regexp","constant.other.character-class.regexp","constant.character.set.regexp"],settings:{foreground:"#811f3f"}},{scope:"keyword.operator.quantifier.regexp",settings:{foreground:"#000000"}},{scope:["keyword.operator.or.regexp","keyword.control.anchor.regexp"],settings:{foreground:"#EE0000"}},{scope:["constant.character","constant.other.option"],settings:{foreground:"#0000ff"}},{scope:"constant.character.escape",settings:{foreground:"#EE0000"}},{scope:"entity.name.label",settings:{foreground:"#000000"}}],semanticHighlighting:true,semanticTokenColors:{newOperator:"#AF00DB",stringLiteral:"#a31515",customLiteral:"#795E26",numberLiteral:"#098658"},colors:{"checkbox.border":"#919191","editor.background":"#FFFFFF","editor.foreground":"#000000","editor.inactiveSelectionBackground":"#E5EBF1","editorIndentGuide.background":"#D3D3D3","editorIndentGuide.activeBackground":"#939393","editor.selectionHighlightBackground":"#ADD6FF80","editorSuggestWidget.background":"#F3F3F3","activityBarBadge.background":"#007ACC","sideBarTitle.foreground":"#6F6F6F","list.hoverBackground":"#E8E8E8","menu.border":"#D4D4D4","input.placeholderForeground":"#767676","searchEditor.textInputBorder":"#CECECE","settings.textInputBorder":"#CECECE","settings.numberInputBorder":"#CECECE","statusBarItem.remoteForeground":"#FFF","statusBarItem.remoteBackground":"#16825D","ports.iconRunningProcessForeground":"#369432","sideBarSectionHeader.background":"#0000","sideBarSectionHeader.border":"#61616130","tab.lastPinnedBorder":"#61616130","notebook.cellBorderColor":"#E8E8E8","notebook.selectedCellBackground":"#c8ddf150","statusBarItem.errorBackground":"#c72e0f","list.activeSelectionIconForeground":"#FFF","list.focusAndSelectionOutline":"#90C2F9","terminal.inactiveSelectionBackground":"#E5EBF1","widget.border":"#d4d4d4"}}; + +export { lightPlus as default }; diff --git a/docs/shiki/dist/themes/material-theme-8c7cb8cf.mjs b/docs/shiki/dist/themes/material-theme-8c7cb8cf.mjs new file mode 100644 index 00000000..65622604 --- /dev/null +++ b/docs/shiki/dist/themes/material-theme-8c7cb8cf.mjs @@ -0,0 +1,3 @@ +var materialTheme = {name:"material-theme",semanticHighlighting:true,tokenColors:[{name:"Global settings",settings:{background:"#263238",foreground:"#EEFFFF"}},{name:"String",scope:"string",settings:{foreground:"#C3E88D"}},{name:"Punctuation",scope:"punctuation, constant.other.symbol",settings:{foreground:"#89DDFF"}},{name:"String Escape",scope:"constant.character.escape, text.html constant.character.entity.named",settings:{foreground:"#EEFFFF"}},{name:"Boolean",scope:"constant.language.boolean",settings:{foreground:"#ff9cac"}},{name:"Number",scope:"constant.numeric",settings:{foreground:"#F78C6C"}},{name:"Variable",scope:"variable, variable.parameter, support.variable, variable.language, support.constant, meta.definition.variable entity.name.function, meta.function-call.arguments",settings:{foreground:"#EEFFFF"}},{name:"Other Keyword",scope:"keyword.other",settings:{foreground:"#F78C6C"}},{name:"Keyword",scope:"keyword, modifier, variable.language.this, support.type.object, constant.language",settings:{foreground:"#89DDFF"}},{name:"Function call",scope:"entity.name.function, support.function",settings:{foreground:"#82AAFF"}},{name:"Storage",scope:"storage.type, storage.modifier, storage.control",settings:{foreground:"#C792EA"}},{name:"Modules",scope:"support.module, support.node",settings:{foreground:"#f07178",fontStyle:"italic"}},{name:"Type",scope:"support.type, constant.other.key",settings:{foreground:"#FFCB6B"}},{name:"Type",scope:"entity.name.type, entity.other.inherited-class, entity.other",settings:{foreground:"#FFCB6B"}},{name:"Comment",scope:"comment",settings:{foreground:"#546E7A",fontStyle:"italic"}},{name:"Comment",scope:"comment punctuation.definition.comment, string.quoted.docstring",settings:{foreground:"#546E7A",fontStyle:"italic"}},{name:"Punctuation",scope:"punctuation",settings:{foreground:"#89DDFF"}},{name:"Class",scope:"entity.name, entity.name.type.class, support.type, support.class, meta.use",settings:{foreground:"#FFCB6B"}},{name:"Class variable",scope:"variable.object.property, meta.field.declaration entity.name.function",settings:{foreground:"#f07178"}},{name:"Class method",scope:"meta.definition.method entity.name.function",settings:{foreground:"#f07178"}},{name:"Function definition",scope:"meta.function entity.name.function",settings:{foreground:"#82AAFF"}},{name:"Template expression",scope:"template.expression.begin, template.expression.end, punctuation.definition.template-expression.begin, punctuation.definition.template-expression.end",settings:{foreground:"#89DDFF"}},{name:"Reset embedded/template expression colors",scope:"meta.embedded, source.groovy.embedded, meta.template.expression",settings:{foreground:"#EEFFFF"}},{name:"YAML key",scope:"entity.name.tag.yaml",settings:{foreground:"#f07178"}},{name:"JSON key",scope:"meta.object-literal.key, meta.object-literal.key string, support.type.property-name.json",settings:{foreground:"#f07178"}},{name:"JSON constant",scope:"constant.language.json",settings:{foreground:"#89DDFF"}},{name:"CSS class",scope:"entity.other.attribute-name.class",settings:{foreground:"#FFCB6B"}},{name:"CSS ID",scope:"entity.other.attribute-name.id",settings:{foreground:"#F78C6C"}},{name:"CSS tag",scope:"source.css entity.name.tag",settings:{foreground:"#FFCB6B"}},{name:"CSS properties",scope:"support.type.property-name.css",settings:{foreground:"#B2CCD6"}},{name:"HTML tag outer",scope:"meta.tag, punctuation.definition.tag",settings:{foreground:"#89DDFF"}},{name:"HTML tag inner",scope:"entity.name.tag",settings:{foreground:"#f07178"}},{name:"HTML tag attribute",scope:"entity.other.attribute-name",settings:{foreground:"#C792EA"}},{name:"HTML entities",scope:"punctuation.definition.entity.html",settings:{foreground:"#EEFFFF"}},{name:"Markdown heading",scope:"markup.heading",settings:{foreground:"#89DDFF"}},{name:"Markdown link text",scope:"text.html.markdown meta.link.inline, meta.link.reference",settings:{foreground:"#f07178"}},{name:"Markdown list item",scope:"text.html.markdown beginning.punctuation.definition.list",settings:{foreground:"#89DDFF"}},{name:"Markdown italic",scope:"markup.italic",settings:{foreground:"#f07178",fontStyle:"italic"}},{name:"Markdown bold",scope:"markup.bold",settings:{foreground:"#f07178",fontStyle:"bold"}},{name:"Markdown bold italic",scope:"markup.bold markup.italic, markup.italic markup.bold",settings:{foreground:"#f07178",fontStyle:"italic bold"}},{name:"Markdown code block",scope:"markup.fenced_code.block.markdown punctuation.definition.markdown",settings:{foreground:"#C3E88D"}},{name:"Markdown inline code",scope:"markup.inline.raw.string.markdown",settings:{foreground:"#C3E88D"}},{name:"INI property name",scope:"keyword.other.definition.ini",settings:{foreground:"#f07178"}},{name:"INI section title",scope:"entity.name.section.group-title.ini",settings:{foreground:"#89DDFF"}},{name:"C# class",scope:"source.cs meta.class.identifier storage.type",settings:{foreground:"#FFCB6B"}},{name:"C# class method",scope:"source.cs meta.method.identifier entity.name.function",settings:{foreground:"#f07178"}},{name:"C# function call",scope:"source.cs meta.method-call meta.method, source.cs entity.name.function",settings:{foreground:"#82AAFF"}},{name:"C# type",scope:"source.cs storage.type",settings:{foreground:"#FFCB6B"}},{name:"C# return type",scope:"source.cs meta.method.return-type",settings:{foreground:"#FFCB6B"}},{name:"C# preprocessor",scope:"source.cs meta.preprocessor",settings:{foreground:"#546E7A"}},{name:"C# namespace",scope:"source.cs entity.name.type.namespace",settings:{foreground:"#EEFFFF"}},{name:"JSX Text",scope:"meta.jsx.children, SXNested",settings:{foreground:"#EEFFFF"}},{name:"JSX Components name",scope:"support.class.component",settings:{foreground:"#FFCB6B"}},{name:"C-related Block Level Variables",scope:"source.cpp meta.block variable.other",settings:{foreground:"#EEFFFF"}},{name:"Member Access Meta",scope:"source.python meta.member.access.python",settings:{foreground:"#f07178"}},{name:"Function Call",scope:"source.python meta.function-call.python, meta.function-call.arguments",settings:{foreground:"#82AAFF"}},{name:"Blocks",scope:"meta.block",settings:{foreground:"#f07178"}},{name:"Function Call",scope:"entity.name.function.call",settings:{foreground:"#82AAFF"}},{name:"Namespaces",scope:"source.php support.other.namespace, source.php meta.use support.class",settings:{foreground:"#EEFFFF"}},{name:"Constant keywords",scope:"constant.keyword",settings:{foreground:"#89DDFF",fontStyle:"italic"}},{name:"Entity name",scope:"entity.name.function",settings:{foreground:"#82AAFF"}},{name:"Global settings",settings:{background:"#263238",foreground:"#EEFFFF"}},{name:"Markup Deleted",scope:["markup.deleted"],settings:{foreground:"#f07178"}},{name:"Markup Inserted",scope:["markup.inserted"],settings:{foreground:"#C3E88D"}},{name:"Markup Underline",scope:["markup.underline"],settings:{fontStyle:"underline"}},{name:"Keyword Control",scope:["keyword.control"],settings:{foreground:"#89DDFF",fontStyle:"italic"}},{name:"Parameter",scope:["variable.parameter"],settings:{fontStyle:"italic"}},{name:"Python - Self Parameter",scope:["variable.parameter.function.language.special.self.python"],settings:{foreground:"#f07178",fontStyle:"italic"}},{name:"Python - Format Placeholder",scope:["constant.character.format.placeholder.other.python"],settings:{foreground:"#F78C6C"}},{name:"Markdown - Blockquote",scope:["markup.quote"],settings:{fontStyle:"italic",foreground:"#89DDFF"}},{name:"Markdown - Fenced Language",scope:["markup.fenced_code.block"],settings:{foreground:"#EEFFFF90"}},{name:"Markdown - Blockquote Punctuation",scope:["punctuation.definition.quote"],settings:{foreground:"#ff9cac"}},{name:"JSON Key - Level 0",scope:["meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#C792EA"}},{name:"JSON Key - Level 1",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#FFCB6B"}},{name:"JSON Key - Level 2",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#F78C6C"}},{name:"JSON Key - Level 3",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#f07178"}},{name:"JSON Key - Level 4",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#916b53"}},{name:"JSON Key - Level 5",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#82AAFF"}},{name:"JSON Key - Level 6",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#ff9cac"}},{name:"JSON Key - Level 7",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#C792EA"}},{name:"JSON Key - Level 8",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#C3E88D"}}],colors:{focusBorder:"#FFFFFF00",foreground:"#EEFFFF","button.background":"#80CBC420","button.foreground":"#ffffff","dropdown.background":"#263238","input.background":"#303C41","inputOption.activeBorder":"#EEFFFF30","list.activeSelectionBackground":"#263238","list.activeSelectionForeground":"#80CBC4","list.dropBackground":"#f0717880","list.focusBackground":"#EEFFFF20","list.focusForeground":"#EEFFFF","list.highlightForeground":"#80CBC4","list.hoverBackground":"#263238","list.inactiveSelectionBackground":"#00000030","activityBar.background":"#263238","activityBar.dropBackground":"#f0717880","activityBarBadge.background":"#80CBC4","activityBarBadge.foreground":"#000000","badge.background":"#00000030","badge.foreground":"#546E7A","sideBar.background":"#263238","sideBarSectionHeader.background":"#263238","editorGroup.dropBackground":"#f0717880","editorGroup.focusedEmptyBorder":"#f07178","editorGroupHeader.tabsBackground":"#263238","tab.border":"#263238","tab.activeBorder":"#80CBC4","tab.inactiveBackground":"#263238","tab.activeModifiedBorder":"#607a86","tab.inactiveModifiedBorder":"#904348","tab.unfocusedActiveModifiedBorder":"#c05a60","tab.unfocusedInactiveModifiedBorder":"#904348","editor.background":"#263238","editor.foreground":"#EEFFFF","editorLineNumber.foreground":"#37474F","editorLineNumber.activeForeground":"#607a86","editorCursor.foreground":"#FFCC00","editor.selectionBackground":"#80CBC420","editor.selectionHighlightBackground":"#FFCC0020","editor.wordHighlightBackground":"#ff9cac30","editor.wordHighlightStrongBackground":"#C3E88D30","editor.findMatchHighlight":"#EEFFFF","editor.findRangeHighlightBackground":"#FFCB6B30","editor.lineHighlightBorder":"#00000000","editor.rangeHighlightBackground":"#FFFFFF0d","editorWhitespace.foreground":"#EEFFFF40","editorWidget.background":"#263238","editorHoverWidget.background":"#263238","editorMarkerNavigation.background":"#EEFFFF05","peekView.border":"#00000030","peekViewEditor.background":"#EEFFFF05","peekViewResult.background":"#EEFFFF05","peekViewTitle.background":"#EEFFFF05","panel.background":"#263238","panel.border":"#26323860","panelTitle.activeBorder":"#80CBC4","panelTitle.inactiveForeground":"#EEFFFF","notebook.focusedCellBorder":"#80CBC4","notebook.inactiveFocusedCellBorder":"#80CBC450","statusBar.background":"#263238","statusBar.debuggingBackground":"#C792EA","statusBar.debuggingForeground":"#ffffff","statusBar.noFolderBackground":"#263238","statusBarItem.activeBackground":"#f0717880","statusBarItem.hoverBackground":"#546E7A20","statusBarItem.remoteBackground":"#80CBC4","statusBarItem.remoteForeground":"#000000","titleBar.activeBackground":"#263238","pickerGroup.border":"#FFFFFF1a","terminal.ansiBlack":"#000000","terminal.ansiBlue":"#82AAFF","terminal.ansiBrightBlack":"#546E7A","terminal.ansiBrightBlue":"#82AAFF","terminal.ansiBrightCyan":"#89DDFF","terminal.ansiBrightGreen":"#C3E88D","terminal.ansiBrightMagenta":"#C792EA","terminal.ansiBrightRed":"#f07178","terminal.ansiBrightWhite":"#ffffff","terminal.ansiBrightYellow":"#FFCB6B","terminal.ansiCyan":"#89DDFF","terminal.ansiGreen":"#C3E88D","terminal.ansiMagenta":"#C792EA","terminal.ansiRed":"#f07178","terminal.ansiWhite":"#ffffff","terminal.ansiYellow":"#FFCB6B","debugToolBar.background":"#263238","debugConsole.errorForeground":"#f07178","debugConsole.infoForeground":"#89DDFF","debugConsole.warningForeground":"#FFCB6B","selection.background":"#00000080","editorRuler.foreground":"#37474F","widget.shadow":"#00000030","scrollbar.shadow":"#00000030","editorLink.activeForeground":"#EEFFFF","progressBar.background":"#80CBC4","pickerGroup.foreground":"#80CBC4","tree.indentGuidesStroke":"#37474F","terminalCursor.foreground":"#FFCB6B","terminalCursor.background":"#000000","inputOption.activeBackground":"#EEFFFF30","textLink.foreground":"#80CBC4","textLink.activeForeground":"#EEFFFF","sideBar.foreground":"#607a86","sideBar.border":"#26323860","sideBarTitle.foreground":"#EEFFFF","sideBarSectionHeader.border":"#26323860","panel.dropBackground":"#EEFFFF","panelTitle.activeForeground":"#FFFFFF","editor.lineHighlightBackground":"#00000050","editor.findMatchBackground":"#000000","editor.findMatchHighlightBackground":"#00000050","editor.findMatchBorder":"#80CBC4","editor.findMatchHighlightBorder":"#ffffff30","editorIndentGuide.background":"#37474F70","editorIndentGuide.activeBackground":"#37474F","editorGroup.border":"#00000030","editorGutter.modifiedBackground":"#82AAFF60","editorGutter.addedBackground":"#C3E88D60","editorGutter.deletedBackground":"#f0717860","activityBar.border":"#26323860","activityBar.foreground":"#EEFFFF","activityBar.activeBorder":"#80CBC4","extensionBadge.remoteForeground":"#EEFFFF","scrollbarSlider.background":"#EEFFFF20","scrollbarSlider.hoverBackground":"#EEFFFF10","scrollbarSlider.activeBackground":"#80CBC4","tab.unfocusedActiveBorder":"#546E7A","tab.activeForeground":"#FFFFFF","tab.inactiveForeground":"#607a86","tab.activeBackground":"#263238","tab.unfocusedActiveForeground":"#EEFFFF","editorWidget.resizeBorder":"#80CBC4","editorWidget.border":"#80CBC4","statusBar.border":"#26323860","statusBar.foreground":"#546E7A","editorBracketMatch.border":"#FFCC0050","editorBracketMatch.background":"#263238","editorOverviewRuler.findMatchForeground":"#80CBC4","editorOverviewRuler.border":"#263238","editorOverviewRuler.errorForeground":"#f0717840","editorOverviewRuler.infoForeground":"#82AAFF40","editorOverviewRuler.warningForeground":"#FFCB6B40","editorInfo.foreground":"#82AAFF70","editorWarning.foreground":"#FFCB6B70","editorError.foreground":"#f0717870","editorHoverWidget.border":"#FFFFFF10","titleBar.activeForeground":"#EEFFFF","titleBar.inactiveBackground":"#263238","titleBar.inactiveForeground":"#607a86","titleBar.border":"#26323860","input.foreground":"#EEFFFF","input.placeholderForeground":"#EEFFFF60","input.border":"#FFFFFF10","inputValidation.errorBorder":"#f07178","inputValidation.infoBorder":"#82AAFF","inputValidation.warningBorder":"#FFCB6B","dropdown.border":"#FFFFFF10","quickInput.background":"#263238","quickInput.foreground":"#607a86","list.hoverForeground":"#FFFFFF","list.inactiveSelectionForeground":"#80CBC4","quickInput.list.focusBackground":"#EEFFFF20","editorSuggestWidget.background":"#263238","editorSuggestWidget.foreground":"#EEFFFF","editorSuggestWidget.highlightForeground":"#80CBC4","editorSuggestWidget.selectedBackground":"#00000050","editorSuggestWidget.border":"#FFFFFF10","diffEditor.insertedTextBackground":"#89DDFF20","diffEditor.removedTextBackground":"#ff9cac20","notifications.background":"#263238","notifications.foreground":"#EEFFFF","notificationLink.foreground":"#80CBC4","extensionButton.prominentBackground":"#C3E88D90","extensionButton.prominentHoverBackground":"#C3E88D","extensionButton.prominentForeground":"#000000","peekViewEditorGutter.background":"#EEFFFF05","peekViewTitleDescription.foreground":"#EEFFFF60","peekViewResult.matchHighlightBackground":"#80CBC420","peekViewEditor.matchHighlightBackground":"#80CBC420","peekViewResult.selectionBackground":"#607a8670","gitDecoration.deletedResourceForeground":"#f0717890","gitDecoration.conflictingResourceForeground":"#FFCB6B90","gitDecoration.modifiedResourceForeground":"#82AAFF90","gitDecoration.untrackedResourceForeground":"#C3E88D90","gitDecoration.ignoredResourceForeground":"#607a8690","breadcrumb.background":"#263238","breadcrumb.foreground":"#607a86","breadcrumb.focusForeground":"#EEFFFF","breadcrumb.activeSelectionForeground":"#80CBC4","breadcrumbPicker.background":"#263238","menu.background":"#263238","menu.foreground":"#EEFFFF","menu.selectionBackground":"#00000050","menu.selectionForeground":"#80CBC4","menu.selectionBorder":"#00000030","menu.separatorBackground":"#EEFFFF","menubar.selectionBackground":"#00000030","menubar.selectionForeground":"#80CBC4","menubar.selectionBorder":"#00000030","settings.dropdownForeground":"#EEFFFF","settings.dropdownBackground":"#263238","settings.numberInputForeground":"#EEFFFF","settings.numberInputBackground":"#263238","settings.textInputForeground":"#EEFFFF","settings.textInputBackground":"#263238","settings.headerForeground":"#80CBC4","settings.modifiedItemIndicator":"#80CBC4","settings.checkboxBackground":"#263238","settings.checkboxForeground":"#EEFFFF","listFilterWidget.background":"#00000030","listFilterWidget.outline":"#00000030","listFilterWidget.noMatchesOutline":"#00000030"}}; + +export { materialTheme as default }; diff --git a/docs/shiki/dist/themes/material-theme-darker-121e11cb.mjs b/docs/shiki/dist/themes/material-theme-darker-121e11cb.mjs new file mode 100644 index 00000000..4cad64c4 --- /dev/null +++ b/docs/shiki/dist/themes/material-theme-darker-121e11cb.mjs @@ -0,0 +1,3 @@ +var materialThemeDarker = {name:"material-theme-darker",semanticHighlighting:true,tokenColors:[{name:"Global settings",settings:{background:"#212121",foreground:"#EEFFFF"}},{name:"String",scope:"string",settings:{foreground:"#C3E88D"}},{name:"Punctuation",scope:"punctuation, constant.other.symbol",settings:{foreground:"#89DDFF"}},{name:"String Escape",scope:"constant.character.escape, text.html constant.character.entity.named",settings:{foreground:"#EEFFFF"}},{name:"Boolean",scope:"constant.language.boolean",settings:{foreground:"#ff9cac"}},{name:"Number",scope:"constant.numeric",settings:{foreground:"#F78C6C"}},{name:"Variable",scope:"variable, variable.parameter, support.variable, variable.language, support.constant, meta.definition.variable entity.name.function, meta.function-call.arguments",settings:{foreground:"#EEFFFF"}},{name:"Other Keyword",scope:"keyword.other",settings:{foreground:"#F78C6C"}},{name:"Keyword",scope:"keyword, modifier, variable.language.this, support.type.object, constant.language",settings:{foreground:"#89DDFF"}},{name:"Function call",scope:"entity.name.function, support.function",settings:{foreground:"#82AAFF"}},{name:"Storage",scope:"storage.type, storage.modifier, storage.control",settings:{foreground:"#C792EA"}},{name:"Modules",scope:"support.module, support.node",settings:{foreground:"#f07178",fontStyle:"italic"}},{name:"Type",scope:"support.type, constant.other.key",settings:{foreground:"#FFCB6B"}},{name:"Type",scope:"entity.name.type, entity.other.inherited-class, entity.other",settings:{foreground:"#FFCB6B"}},{name:"Comment",scope:"comment",settings:{foreground:"#545454",fontStyle:"italic"}},{name:"Comment",scope:"comment punctuation.definition.comment, string.quoted.docstring",settings:{foreground:"#545454",fontStyle:"italic"}},{name:"Punctuation",scope:"punctuation",settings:{foreground:"#89DDFF"}},{name:"Class",scope:"entity.name, entity.name.type.class, support.type, support.class, meta.use",settings:{foreground:"#FFCB6B"}},{name:"Class variable",scope:"variable.object.property, meta.field.declaration entity.name.function",settings:{foreground:"#f07178"}},{name:"Class method",scope:"meta.definition.method entity.name.function",settings:{foreground:"#f07178"}},{name:"Function definition",scope:"meta.function entity.name.function",settings:{foreground:"#82AAFF"}},{name:"Template expression",scope:"template.expression.begin, template.expression.end, punctuation.definition.template-expression.begin, punctuation.definition.template-expression.end",settings:{foreground:"#89DDFF"}},{name:"Reset embedded/template expression colors",scope:"meta.embedded, source.groovy.embedded, meta.template.expression",settings:{foreground:"#EEFFFF"}},{name:"YAML key",scope:"entity.name.tag.yaml",settings:{foreground:"#f07178"}},{name:"JSON key",scope:"meta.object-literal.key, meta.object-literal.key string, support.type.property-name.json",settings:{foreground:"#f07178"}},{name:"JSON constant",scope:"constant.language.json",settings:{foreground:"#89DDFF"}},{name:"CSS class",scope:"entity.other.attribute-name.class",settings:{foreground:"#FFCB6B"}},{name:"CSS ID",scope:"entity.other.attribute-name.id",settings:{foreground:"#F78C6C"}},{name:"CSS tag",scope:"source.css entity.name.tag",settings:{foreground:"#FFCB6B"}},{name:"CSS properties",scope:"support.type.property-name.css",settings:{foreground:"#B2CCD6"}},{name:"HTML tag outer",scope:"meta.tag, punctuation.definition.tag",settings:{foreground:"#89DDFF"}},{name:"HTML tag inner",scope:"entity.name.tag",settings:{foreground:"#f07178"}},{name:"HTML tag attribute",scope:"entity.other.attribute-name",settings:{foreground:"#C792EA"}},{name:"HTML entities",scope:"punctuation.definition.entity.html",settings:{foreground:"#EEFFFF"}},{name:"Markdown heading",scope:"markup.heading",settings:{foreground:"#89DDFF"}},{name:"Markdown link text",scope:"text.html.markdown meta.link.inline, meta.link.reference",settings:{foreground:"#f07178"}},{name:"Markdown list item",scope:"text.html.markdown beginning.punctuation.definition.list",settings:{foreground:"#89DDFF"}},{name:"Markdown italic",scope:"markup.italic",settings:{foreground:"#f07178",fontStyle:"italic"}},{name:"Markdown bold",scope:"markup.bold",settings:{foreground:"#f07178",fontStyle:"bold"}},{name:"Markdown bold italic",scope:"markup.bold markup.italic, markup.italic markup.bold",settings:{foreground:"#f07178",fontStyle:"italic bold"}},{name:"Markdown code block",scope:"markup.fenced_code.block.markdown punctuation.definition.markdown",settings:{foreground:"#C3E88D"}},{name:"Markdown inline code",scope:"markup.inline.raw.string.markdown",settings:{foreground:"#C3E88D"}},{name:"INI property name",scope:"keyword.other.definition.ini",settings:{foreground:"#f07178"}},{name:"INI section title",scope:"entity.name.section.group-title.ini",settings:{foreground:"#89DDFF"}},{name:"C# class",scope:"source.cs meta.class.identifier storage.type",settings:{foreground:"#FFCB6B"}},{name:"C# class method",scope:"source.cs meta.method.identifier entity.name.function",settings:{foreground:"#f07178"}},{name:"C# function call",scope:"source.cs meta.method-call meta.method, source.cs entity.name.function",settings:{foreground:"#82AAFF"}},{name:"C# type",scope:"source.cs storage.type",settings:{foreground:"#FFCB6B"}},{name:"C# return type",scope:"source.cs meta.method.return-type",settings:{foreground:"#FFCB6B"}},{name:"C# preprocessor",scope:"source.cs meta.preprocessor",settings:{foreground:"#545454"}},{name:"C# namespace",scope:"source.cs entity.name.type.namespace",settings:{foreground:"#EEFFFF"}},{name:"JSX Text",scope:"meta.jsx.children, SXNested",settings:{foreground:"#EEFFFF"}},{name:"JSX Components name",scope:"support.class.component",settings:{foreground:"#FFCB6B"}},{name:"C-related Block Level Variables",scope:"source.cpp meta.block variable.other",settings:{foreground:"#EEFFFF"}},{name:"Member Access Meta",scope:"source.python meta.member.access.python",settings:{foreground:"#f07178"}},{name:"Function Call",scope:"source.python meta.function-call.python, meta.function-call.arguments",settings:{foreground:"#82AAFF"}},{name:"Blocks",scope:"meta.block",settings:{foreground:"#f07178"}},{name:"Function Call",scope:"entity.name.function.call",settings:{foreground:"#82AAFF"}},{name:"Namespaces",scope:"source.php support.other.namespace, source.php meta.use support.class",settings:{foreground:"#EEFFFF"}},{name:"Constant keywords",scope:"constant.keyword",settings:{foreground:"#89DDFF",fontStyle:"italic"}},{name:"Entity name",scope:"entity.name.function",settings:{foreground:"#82AAFF"}},{name:"Global settings",settings:{background:"#212121",foreground:"#EEFFFF"}},{name:"Markup Deleted",scope:["markup.deleted"],settings:{foreground:"#f07178"}},{name:"Markup Inserted",scope:["markup.inserted"],settings:{foreground:"#C3E88D"}},{name:"Markup Underline",scope:["markup.underline"],settings:{fontStyle:"underline"}},{name:"Keyword Control",scope:["keyword.control"],settings:{foreground:"#89DDFF",fontStyle:"italic"}},{name:"Parameter",scope:["variable.parameter"],settings:{fontStyle:"italic"}},{name:"Python - Self Parameter",scope:["variable.parameter.function.language.special.self.python"],settings:{foreground:"#f07178",fontStyle:"italic"}},{name:"Python - Format Placeholder",scope:["constant.character.format.placeholder.other.python"],settings:{foreground:"#F78C6C"}},{name:"Markdown - Blockquote",scope:["markup.quote"],settings:{fontStyle:"italic",foreground:"#89DDFF"}},{name:"Markdown - Fenced Language",scope:["markup.fenced_code.block"],settings:{foreground:"#EEFFFF90"}},{name:"Markdown - Blockquote Punctuation",scope:["punctuation.definition.quote"],settings:{foreground:"#ff9cac"}},{name:"JSON Key - Level 0",scope:["meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#C792EA"}},{name:"JSON Key - Level 1",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#FFCB6B"}},{name:"JSON Key - Level 2",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#F78C6C"}},{name:"JSON Key - Level 3",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#f07178"}},{name:"JSON Key - Level 4",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#916b53"}},{name:"JSON Key - Level 5",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#82AAFF"}},{name:"JSON Key - Level 6",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#ff9cac"}},{name:"JSON Key - Level 7",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#C792EA"}},{name:"JSON Key - Level 8",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#C3E88D"}}],colors:{focusBorder:"#FFFFFF00",foreground:"#EEFFFF","button.background":"#61616150","button.foreground":"#ffffff","dropdown.background":"#212121","input.background":"#2B2B2B","inputOption.activeBorder":"#EEFFFF30","list.activeSelectionBackground":"#212121","list.activeSelectionForeground":"#80CBC4","list.dropBackground":"#f0717880","list.focusBackground":"#EEFFFF20","list.focusForeground":"#EEFFFF","list.highlightForeground":"#80CBC4","list.hoverBackground":"#212121","list.inactiveSelectionBackground":"#00000030","activityBar.background":"#212121","activityBar.dropBackground":"#f0717880","activityBarBadge.background":"#80CBC4","activityBarBadge.foreground":"#000000","badge.background":"#00000030","badge.foreground":"#545454","sideBar.background":"#212121","sideBarSectionHeader.background":"#212121","editorGroup.dropBackground":"#f0717880","editorGroup.focusedEmptyBorder":"#f07178","editorGroupHeader.tabsBackground":"#212121","tab.border":"#212121","tab.activeBorder":"#80CBC4","tab.inactiveBackground":"#212121","tab.activeModifiedBorder":"#616161","tab.inactiveModifiedBorder":"#904348","tab.unfocusedActiveModifiedBorder":"#c05a60","tab.unfocusedInactiveModifiedBorder":"#904348","editor.background":"#212121","editor.foreground":"#EEFFFF","editorLineNumber.foreground":"#424242","editorLineNumber.activeForeground":"#616161","editorCursor.foreground":"#FFCC00","editor.selectionBackground":"#61616150","editor.selectionHighlightBackground":"#FFCC0020","editor.wordHighlightBackground":"#ff9cac30","editor.wordHighlightStrongBackground":"#C3E88D30","editor.findMatchHighlight":"#EEFFFF","editor.findRangeHighlightBackground":"#FFCB6B30","editor.lineHighlightBorder":"#00000000","editor.rangeHighlightBackground":"#FFFFFF0d","editorWhitespace.foreground":"#EEFFFF40","editorWidget.background":"#212121","editorHoverWidget.background":"#212121","editorMarkerNavigation.background":"#EEFFFF05","peekView.border":"#00000030","peekViewEditor.background":"#EEFFFF05","peekViewResult.background":"#EEFFFF05","peekViewTitle.background":"#EEFFFF05","panel.background":"#212121","panel.border":"#21212160","panelTitle.activeBorder":"#80CBC4","panelTitle.inactiveForeground":"#EEFFFF","notebook.focusedCellBorder":"#80CBC4","notebook.inactiveFocusedCellBorder":"#80CBC450","statusBar.background":"#212121","statusBar.debuggingBackground":"#C792EA","statusBar.debuggingForeground":"#ffffff","statusBar.noFolderBackground":"#212121","statusBarItem.activeBackground":"#f0717880","statusBarItem.hoverBackground":"#54545420","statusBarItem.remoteBackground":"#80CBC4","statusBarItem.remoteForeground":"#000000","titleBar.activeBackground":"#212121","pickerGroup.border":"#FFFFFF1a","terminal.ansiBlack":"#000000","terminal.ansiBlue":"#82AAFF","terminal.ansiBrightBlack":"#545454","terminal.ansiBrightBlue":"#82AAFF","terminal.ansiBrightCyan":"#89DDFF","terminal.ansiBrightGreen":"#C3E88D","terminal.ansiBrightMagenta":"#C792EA","terminal.ansiBrightRed":"#f07178","terminal.ansiBrightWhite":"#ffffff","terminal.ansiBrightYellow":"#FFCB6B","terminal.ansiCyan":"#89DDFF","terminal.ansiGreen":"#C3E88D","terminal.ansiMagenta":"#C792EA","terminal.ansiRed":"#f07178","terminal.ansiWhite":"#ffffff","terminal.ansiYellow":"#FFCB6B","debugToolBar.background":"#212121","debugConsole.errorForeground":"#f07178","debugConsole.infoForeground":"#89DDFF","debugConsole.warningForeground":"#FFCB6B","selection.background":"#00000080","editorRuler.foreground":"#424242","widget.shadow":"#00000030","scrollbar.shadow":"#00000030","editorLink.activeForeground":"#EEFFFF","progressBar.background":"#80CBC4","pickerGroup.foreground":"#80CBC4","tree.indentGuidesStroke":"#424242","terminalCursor.foreground":"#FFCB6B","terminalCursor.background":"#000000","inputOption.activeBackground":"#EEFFFF30","textLink.foreground":"#80CBC4","textLink.activeForeground":"#EEFFFF","sideBar.foreground":"#616161","sideBar.border":"#21212160","sideBarTitle.foreground":"#EEFFFF","sideBarSectionHeader.border":"#21212160","panel.dropBackground":"#EEFFFF","panelTitle.activeForeground":"#FFFFFF","editor.lineHighlightBackground":"#00000050","editor.findMatchBackground":"#000000","editor.findMatchHighlightBackground":"#00000050","editor.findMatchBorder":"#80CBC4","editor.findMatchHighlightBorder":"#ffffff30","editorIndentGuide.background":"#42424270","editorIndentGuide.activeBackground":"#424242","editorGroup.border":"#00000030","editorGutter.modifiedBackground":"#82AAFF60","editorGutter.addedBackground":"#C3E88D60","editorGutter.deletedBackground":"#f0717860","activityBar.border":"#21212160","activityBar.foreground":"#EEFFFF","activityBar.activeBorder":"#80CBC4","extensionBadge.remoteForeground":"#EEFFFF","scrollbarSlider.background":"#EEFFFF20","scrollbarSlider.hoverBackground":"#EEFFFF10","scrollbarSlider.activeBackground":"#80CBC4","tab.unfocusedActiveBorder":"#545454","tab.activeForeground":"#FFFFFF","tab.inactiveForeground":"#616161","tab.activeBackground":"#212121","tab.unfocusedActiveForeground":"#EEFFFF","editorWidget.resizeBorder":"#80CBC4","editorWidget.border":"#80CBC4","statusBar.border":"#21212160","statusBar.foreground":"#616161","editorBracketMatch.border":"#FFCC0050","editorBracketMatch.background":"#212121","editorOverviewRuler.findMatchForeground":"#80CBC4","editorOverviewRuler.border":"#212121","editorOverviewRuler.errorForeground":"#f0717840","editorOverviewRuler.infoForeground":"#82AAFF40","editorOverviewRuler.warningForeground":"#FFCB6B40","editorInfo.foreground":"#82AAFF70","editorWarning.foreground":"#FFCB6B70","editorError.foreground":"#f0717870","editorHoverWidget.border":"#FFFFFF10","titleBar.activeForeground":"#EEFFFF","titleBar.inactiveBackground":"#212121","titleBar.inactiveForeground":"#616161","titleBar.border":"#21212160","input.foreground":"#EEFFFF","input.placeholderForeground":"#EEFFFF60","input.border":"#FFFFFF10","inputValidation.errorBorder":"#f07178","inputValidation.infoBorder":"#82AAFF","inputValidation.warningBorder":"#FFCB6B","dropdown.border":"#FFFFFF10","quickInput.background":"#212121","quickInput.foreground":"#616161","list.hoverForeground":"#FFFFFF","list.inactiveSelectionForeground":"#80CBC4","quickInput.list.focusBackground":"#EEFFFF20","editorSuggestWidget.background":"#212121","editorSuggestWidget.foreground":"#EEFFFF","editorSuggestWidget.highlightForeground":"#80CBC4","editorSuggestWidget.selectedBackground":"#00000050","editorSuggestWidget.border":"#FFFFFF10","diffEditor.insertedTextBackground":"#89DDFF20","diffEditor.removedTextBackground":"#ff9cac20","notifications.background":"#212121","notifications.foreground":"#EEFFFF","notificationLink.foreground":"#80CBC4","extensionButton.prominentBackground":"#C3E88D90","extensionButton.prominentHoverBackground":"#C3E88D","extensionButton.prominentForeground":"#000000","peekViewEditorGutter.background":"#EEFFFF05","peekViewTitleDescription.foreground":"#EEFFFF60","peekViewResult.matchHighlightBackground":"#61616150","peekViewEditor.matchHighlightBackground":"#61616150","peekViewResult.selectionBackground":"#61616170","gitDecoration.deletedResourceForeground":"#f0717890","gitDecoration.conflictingResourceForeground":"#FFCB6B90","gitDecoration.modifiedResourceForeground":"#82AAFF90","gitDecoration.untrackedResourceForeground":"#C3E88D90","gitDecoration.ignoredResourceForeground":"#61616190","breadcrumb.background":"#212121","breadcrumb.foreground":"#616161","breadcrumb.focusForeground":"#EEFFFF","breadcrumb.activeSelectionForeground":"#80CBC4","breadcrumbPicker.background":"#212121","menu.background":"#212121","menu.foreground":"#EEFFFF","menu.selectionBackground":"#00000050","menu.selectionForeground":"#80CBC4","menu.selectionBorder":"#00000030","menu.separatorBackground":"#EEFFFF","menubar.selectionBackground":"#00000030","menubar.selectionForeground":"#80CBC4","menubar.selectionBorder":"#00000030","settings.dropdownForeground":"#EEFFFF","settings.dropdownBackground":"#212121","settings.numberInputForeground":"#EEFFFF","settings.numberInputBackground":"#212121","settings.textInputForeground":"#EEFFFF","settings.textInputBackground":"#212121","settings.headerForeground":"#80CBC4","settings.modifiedItemIndicator":"#80CBC4","settings.checkboxBackground":"#212121","settings.checkboxForeground":"#EEFFFF","listFilterWidget.background":"#00000030","listFilterWidget.outline":"#00000030","listFilterWidget.noMatchesOutline":"#00000030"}}; + +export { materialThemeDarker as default }; diff --git a/docs/shiki/dist/themes/material-theme-lighter-67dbb5c6.mjs b/docs/shiki/dist/themes/material-theme-lighter-67dbb5c6.mjs new file mode 100644 index 00000000..1a664ba6 --- /dev/null +++ b/docs/shiki/dist/themes/material-theme-lighter-67dbb5c6.mjs @@ -0,0 +1,3 @@ +var materialThemeLighter = {name:"material-theme-lighter",semanticHighlighting:true,tokenColors:[{name:"Global settings",settings:{background:"#FAFAFA",foreground:"#90A4AE"}},{name:"String",scope:"string",settings:{foreground:"#91B859"}},{name:"Punctuation",scope:"punctuation, constant.other.symbol",settings:{foreground:"#39ADB5"}},{name:"String Escape",scope:"constant.character.escape, text.html constant.character.entity.named",settings:{foreground:"#90A4AE"}},{name:"Boolean",scope:"constant.language.boolean",settings:{foreground:"#FF5370"}},{name:"Number",scope:"constant.numeric",settings:{foreground:"#F76D47"}},{name:"Variable",scope:"variable, variable.parameter, support.variable, variable.language, support.constant, meta.definition.variable entity.name.function, meta.function-call.arguments",settings:{foreground:"#90A4AE"}},{name:"Other Keyword",scope:"keyword.other",settings:{foreground:"#F76D47"}},{name:"Keyword",scope:"keyword, modifier, variable.language.this, support.type.object, constant.language",settings:{foreground:"#39ADB5"}},{name:"Function call",scope:"entity.name.function, support.function",settings:{foreground:"#6182B8"}},{name:"Storage",scope:"storage.type, storage.modifier, storage.control",settings:{foreground:"#9C3EDA"}},{name:"Modules",scope:"support.module, support.node",settings:{foreground:"#E53935",fontStyle:"italic"}},{name:"Type",scope:"support.type, constant.other.key",settings:{foreground:"#E2931D"}},{name:"Type",scope:"entity.name.type, entity.other.inherited-class, entity.other",settings:{foreground:"#E2931D"}},{name:"Comment",scope:"comment",settings:{foreground:"#90A4AE",fontStyle:"italic"}},{name:"Comment",scope:"comment punctuation.definition.comment, string.quoted.docstring",settings:{foreground:"#90A4AE",fontStyle:"italic"}},{name:"Punctuation",scope:"punctuation",settings:{foreground:"#39ADB5"}},{name:"Class",scope:"entity.name, entity.name.type.class, support.type, support.class, meta.use",settings:{foreground:"#E2931D"}},{name:"Class variable",scope:"variable.object.property, meta.field.declaration entity.name.function",settings:{foreground:"#E53935"}},{name:"Class method",scope:"meta.definition.method entity.name.function",settings:{foreground:"#E53935"}},{name:"Function definition",scope:"meta.function entity.name.function",settings:{foreground:"#6182B8"}},{name:"Template expression",scope:"template.expression.begin, template.expression.end, punctuation.definition.template-expression.begin, punctuation.definition.template-expression.end",settings:{foreground:"#39ADB5"}},{name:"Reset embedded/template expression colors",scope:"meta.embedded, source.groovy.embedded, meta.template.expression",settings:{foreground:"#90A4AE"}},{name:"YAML key",scope:"entity.name.tag.yaml",settings:{foreground:"#E53935"}},{name:"JSON key",scope:"meta.object-literal.key, meta.object-literal.key string, support.type.property-name.json",settings:{foreground:"#E53935"}},{name:"JSON constant",scope:"constant.language.json",settings:{foreground:"#39ADB5"}},{name:"CSS class",scope:"entity.other.attribute-name.class",settings:{foreground:"#E2931D"}},{name:"CSS ID",scope:"entity.other.attribute-name.id",settings:{foreground:"#F76D47"}},{name:"CSS tag",scope:"source.css entity.name.tag",settings:{foreground:"#E2931D"}},{name:"CSS properties",scope:"support.type.property-name.css",settings:{foreground:"#8796B0"}},{name:"HTML tag outer",scope:"meta.tag, punctuation.definition.tag",settings:{foreground:"#39ADB5"}},{name:"HTML tag inner",scope:"entity.name.tag",settings:{foreground:"#E53935"}},{name:"HTML tag attribute",scope:"entity.other.attribute-name",settings:{foreground:"#9C3EDA"}},{name:"HTML entities",scope:"punctuation.definition.entity.html",settings:{foreground:"#90A4AE"}},{name:"Markdown heading",scope:"markup.heading",settings:{foreground:"#39ADB5"}},{name:"Markdown link text",scope:"text.html.markdown meta.link.inline, meta.link.reference",settings:{foreground:"#E53935"}},{name:"Markdown list item",scope:"text.html.markdown beginning.punctuation.definition.list",settings:{foreground:"#39ADB5"}},{name:"Markdown italic",scope:"markup.italic",settings:{foreground:"#E53935",fontStyle:"italic"}},{name:"Markdown bold",scope:"markup.bold",settings:{foreground:"#E53935",fontStyle:"bold"}},{name:"Markdown bold italic",scope:"markup.bold markup.italic, markup.italic markup.bold",settings:{foreground:"#E53935",fontStyle:"italic bold"}},{name:"Markdown code block",scope:"markup.fenced_code.block.markdown punctuation.definition.markdown",settings:{foreground:"#91B859"}},{name:"Markdown inline code",scope:"markup.inline.raw.string.markdown",settings:{foreground:"#91B859"}},{name:"INI property name",scope:"keyword.other.definition.ini",settings:{foreground:"#E53935"}},{name:"INI section title",scope:"entity.name.section.group-title.ini",settings:{foreground:"#39ADB5"}},{name:"C# class",scope:"source.cs meta.class.identifier storage.type",settings:{foreground:"#E2931D"}},{name:"C# class method",scope:"source.cs meta.method.identifier entity.name.function",settings:{foreground:"#E53935"}},{name:"C# function call",scope:"source.cs meta.method-call meta.method, source.cs entity.name.function",settings:{foreground:"#6182B8"}},{name:"C# type",scope:"source.cs storage.type",settings:{foreground:"#E2931D"}},{name:"C# return type",scope:"source.cs meta.method.return-type",settings:{foreground:"#E2931D"}},{name:"C# preprocessor",scope:"source.cs meta.preprocessor",settings:{foreground:"#90A4AE"}},{name:"C# namespace",scope:"source.cs entity.name.type.namespace",settings:{foreground:"#90A4AE"}},{name:"JSX Text",scope:"meta.jsx.children, SXNested",settings:{foreground:"#90A4AE"}},{name:"JSX Components name",scope:"support.class.component",settings:{foreground:"#E2931D"}},{name:"C-related Block Level Variables",scope:"source.cpp meta.block variable.other",settings:{foreground:"#90A4AE"}},{name:"Member Access Meta",scope:"source.python meta.member.access.python",settings:{foreground:"#E53935"}},{name:"Function Call",scope:"source.python meta.function-call.python, meta.function-call.arguments",settings:{foreground:"#6182B8"}},{name:"Blocks",scope:"meta.block",settings:{foreground:"#E53935"}},{name:"Function Call",scope:"entity.name.function.call",settings:{foreground:"#6182B8"}},{name:"Namespaces",scope:"source.php support.other.namespace, source.php meta.use support.class",settings:{foreground:"#90A4AE"}},{name:"Constant keywords",scope:"constant.keyword",settings:{foreground:"#39ADB5",fontStyle:"italic"}},{name:"Entity name",scope:"entity.name.function",settings:{foreground:"#6182B8"}},{name:"Global settings",settings:{background:"#FAFAFA",foreground:"#90A4AE"}},{name:"Markup Deleted",scope:["markup.deleted"],settings:{foreground:"#E53935"}},{name:"Markup Inserted",scope:["markup.inserted"],settings:{foreground:"#91B859"}},{name:"Markup Underline",scope:["markup.underline"],settings:{fontStyle:"underline"}},{name:"Keyword Control",scope:["keyword.control"],settings:{foreground:"#39ADB5",fontStyle:"italic"}},{name:"Parameter",scope:["variable.parameter"],settings:{fontStyle:"italic"}},{name:"Python - Self Parameter",scope:["variable.parameter.function.language.special.self.python"],settings:{foreground:"#E53935",fontStyle:"italic"}},{name:"Python - Format Placeholder",scope:["constant.character.format.placeholder.other.python"],settings:{foreground:"#F76D47"}},{name:"Markdown - Blockquote",scope:["markup.quote"],settings:{fontStyle:"italic",foreground:"#39ADB5"}},{name:"Markdown - Fenced Language",scope:["markup.fenced_code.block"],settings:{foreground:"#90A4AE90"}},{name:"Markdown - Blockquote Punctuation",scope:["punctuation.definition.quote"],settings:{foreground:"#FF5370"}},{name:"JSON Key - Level 0",scope:["meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#9C3EDA"}},{name:"JSON Key - Level 1",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#E2931D"}},{name:"JSON Key - Level 2",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#F76D47"}},{name:"JSON Key - Level 3",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#E53935"}},{name:"JSON Key - Level 4",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#916b53"}},{name:"JSON Key - Level 5",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#6182B8"}},{name:"JSON Key - Level 6",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#FF5370"}},{name:"JSON Key - Level 7",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#9C3EDA"}},{name:"JSON Key - Level 8",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#91B859"}}],colors:{focusBorder:"#FFFFFF00",foreground:"#90A4AE","button.background":"#80CBC440","button.foreground":"#ffffff","dropdown.background":"#FAFAFA","input.background":"#EEEEEE","inputOption.activeBorder":"#90A4AE30","list.activeSelectionBackground":"#FAFAFA","list.activeSelectionForeground":"#80CBC4","list.dropBackground":"#E5393580","list.focusBackground":"#90A4AE20","list.focusForeground":"#90A4AE","list.highlightForeground":"#80CBC4","list.hoverBackground":"#FAFAFA","list.inactiveSelectionBackground":"#CCD7DA50","activityBar.background":"#FAFAFA","activityBar.dropBackground":"#E5393580","activityBarBadge.background":"#80CBC4","activityBarBadge.foreground":"#000000","badge.background":"#CCD7DA30","badge.foreground":"#90A4AE","sideBar.background":"#FAFAFA","sideBarSectionHeader.background":"#FAFAFA","editorGroup.dropBackground":"#E5393580","editorGroup.focusedEmptyBorder":"#E53935","editorGroupHeader.tabsBackground":"#FAFAFA","tab.border":"#FAFAFA","tab.activeBorder":"#80CBC4","tab.inactiveBackground":"#FAFAFA","tab.activeModifiedBorder":"#7E939E","tab.inactiveModifiedBorder":"#89221f","tab.unfocusedActiveModifiedBorder":"#b72d2a","tab.unfocusedInactiveModifiedBorder":"#89221f","editor.background":"#FAFAFA","editor.foreground":"#90A4AE","editorLineNumber.foreground":"#CFD8DC","editorLineNumber.activeForeground":"#7E939E","editorCursor.foreground":"#272727","editor.selectionBackground":"#80CBC440","editor.selectionHighlightBackground":"#27272720","editor.wordHighlightBackground":"#FF537030","editor.wordHighlightStrongBackground":"#91B85930","editor.findMatchHighlight":"#90A4AE","editor.findRangeHighlightBackground":"#E2931D30","editor.lineHighlightBorder":"#CCD7DA00","editor.rangeHighlightBackground":"#FFFFFF0d","editorWhitespace.foreground":"#90A4AE40","editorWidget.background":"#FAFAFA","editorHoverWidget.background":"#FAFAFA","editorMarkerNavigation.background":"#90A4AE05","peekView.border":"#00000020","peekViewEditor.background":"#90A4AE05","peekViewResult.background":"#90A4AE05","peekViewTitle.background":"#90A4AE05","panel.background":"#FAFAFA","panel.border":"#FAFAFA60","panelTitle.activeBorder":"#80CBC4","panelTitle.inactiveForeground":"#90A4AE","notebook.focusedCellBorder":"#80CBC4","notebook.inactiveFocusedCellBorder":"#80CBC450","statusBar.background":"#FAFAFA","statusBar.debuggingBackground":"#9C3EDA","statusBar.debuggingForeground":"#FFFFFF","statusBar.noFolderBackground":"#FAFAFA","statusBarItem.activeBackground":"#E5393580","statusBarItem.hoverBackground":"#90A4AE20","statusBarItem.remoteBackground":"#80CBC4","statusBarItem.remoteForeground":"#000000","titleBar.activeBackground":"#FAFAFA","pickerGroup.border":"#FFFFFF1a","terminal.ansiBlack":"#000000","terminal.ansiBlue":"#6182B8","terminal.ansiBrightBlack":"#90A4AE","terminal.ansiBrightBlue":"#6182B8","terminal.ansiBrightCyan":"#39ADB5","terminal.ansiBrightGreen":"#91B859","terminal.ansiBrightMagenta":"#9C3EDA","terminal.ansiBrightRed":"#E53935","terminal.ansiBrightWhite":"#FFFFFF","terminal.ansiBrightYellow":"#E2931D","terminal.ansiCyan":"#39ADB5","terminal.ansiGreen":"#91B859","terminal.ansiMagenta":"#9C3EDA","terminal.ansiRed":"#E53935","terminal.ansiWhite":"#FFFFFF","terminal.ansiYellow":"#E2931D","debugToolBar.background":"#FAFAFA","debugConsole.errorForeground":"#E53935","debugConsole.infoForeground":"#39ADB5","debugConsole.warningForeground":"#E2931D","selection.background":"#CCD7DA80","editorRuler.foreground":"#B0BEC5","widget.shadow":"#00000020","scrollbar.shadow":"#00000020","editorLink.activeForeground":"#90A4AE","progressBar.background":"#80CBC4","pickerGroup.foreground":"#80CBC4","tree.indentGuidesStroke":"#B0BEC5","terminalCursor.foreground":"#E2931D","terminalCursor.background":"#000000","inputOption.activeBackground":"#90A4AE30","textLink.foreground":"#80CBC4","textLink.activeForeground":"#90A4AE","sideBar.foreground":"#7E939E","sideBar.border":"#FAFAFA60","sideBarTitle.foreground":"#90A4AE","sideBarSectionHeader.border":"#FAFAFA60","panel.dropBackground":"#90A4AE","panelTitle.activeForeground":"#000000","editor.lineHighlightBackground":"#CCD7DA50","editor.findMatchBackground":"#00000020","editor.findMatchHighlightBackground":"#00000010","editor.findMatchBorder":"#80CBC4","editor.findMatchHighlightBorder":"#00000030","editorIndentGuide.background":"#B0BEC570","editorIndentGuide.activeBackground":"#B0BEC5","editorGroup.border":"#00000020","editorGutter.modifiedBackground":"#6182B860","editorGutter.addedBackground":"#91B85960","editorGutter.deletedBackground":"#E5393560","activityBar.border":"#FAFAFA60","activityBar.foreground":"#90A4AE","activityBar.activeBorder":"#80CBC4","extensionBadge.remoteForeground":"#90A4AE","scrollbarSlider.background":"#90A4AE20","scrollbarSlider.hoverBackground":"#90A4AE10","scrollbarSlider.activeBackground":"#80CBC4","tab.unfocusedActiveBorder":"#90A4AE","tab.activeForeground":"#000000","tab.inactiveForeground":"#7E939E","tab.activeBackground":"#FAFAFA","tab.unfocusedActiveForeground":"#90A4AE","editorWidget.resizeBorder":"#80CBC4","editorWidget.border":"#80CBC4","statusBar.border":"#FAFAFA60","statusBar.foreground":"#7E939E","editorBracketMatch.border":"#27272750","editorBracketMatch.background":"#FAFAFA","editorOverviewRuler.findMatchForeground":"#80CBC4","editorOverviewRuler.border":"#FAFAFA","editorOverviewRuler.errorForeground":"#E5393540","editorOverviewRuler.infoForeground":"#6182B840","editorOverviewRuler.warningForeground":"#E2931D40","editorInfo.foreground":"#6182B870","editorWarning.foreground":"#E2931D70","editorError.foreground":"#E5393570","editorHoverWidget.border":"#00000010","titleBar.activeForeground":"#90A4AE","titleBar.inactiveBackground":"#FAFAFA","titleBar.inactiveForeground":"#7E939E","titleBar.border":"#FAFAFA60","input.foreground":"#90A4AE","input.placeholderForeground":"#90A4AE60","input.border":"#00000010","inputValidation.errorBorder":"#E53935","inputValidation.infoBorder":"#6182B8","inputValidation.warningBorder":"#E2931D","dropdown.border":"#00000010","quickInput.background":"#FAFAFA","quickInput.foreground":"#7E939E","list.hoverForeground":"#B1C7D3","list.inactiveSelectionForeground":"#80CBC4","quickInput.list.focusBackground":"#90A4AE20","editorSuggestWidget.background":"#FAFAFA","editorSuggestWidget.foreground":"#90A4AE","editorSuggestWidget.highlightForeground":"#80CBC4","editorSuggestWidget.selectedBackground":"#CCD7DA50","editorSuggestWidget.border":"#00000010","diffEditor.insertedTextBackground":"#39ADB520","diffEditor.removedTextBackground":"#FF537020","notifications.background":"#FAFAFA","notifications.foreground":"#90A4AE","notificationLink.foreground":"#80CBC4","extensionButton.prominentBackground":"#91B85990","extensionButton.prominentHoverBackground":"#91B859","extensionButton.prominentForeground":"#000000","peekViewEditorGutter.background":"#90A4AE05","peekViewTitleDescription.foreground":"#90A4AE60","peekViewResult.matchHighlightBackground":"#80CBC440","peekViewEditor.matchHighlightBackground":"#80CBC440","peekViewResult.selectionBackground":"#7E939E70","gitDecoration.deletedResourceForeground":"#E5393590","gitDecoration.conflictingResourceForeground":"#E2931D90","gitDecoration.modifiedResourceForeground":"#6182B890","gitDecoration.untrackedResourceForeground":"#91B85990","gitDecoration.ignoredResourceForeground":"#7E939E90","breadcrumb.background":"#FAFAFA","breadcrumb.foreground":"#7E939E","breadcrumb.focusForeground":"#90A4AE","breadcrumb.activeSelectionForeground":"#80CBC4","breadcrumbPicker.background":"#FAFAFA","menu.background":"#FAFAFA","menu.foreground":"#90A4AE","menu.selectionBackground":"#CCD7DA50","menu.selectionForeground":"#80CBC4","menu.selectionBorder":"#CCD7DA50","menu.separatorBackground":"#90A4AE","menubar.selectionBackground":"#CCD7DA50","menubar.selectionForeground":"#80CBC4","menubar.selectionBorder":"#CCD7DA50","settings.dropdownForeground":"#90A4AE","settings.dropdownBackground":"#FAFAFA","settings.numberInputForeground":"#90A4AE","settings.numberInputBackground":"#FAFAFA","settings.textInputForeground":"#90A4AE","settings.textInputBackground":"#FAFAFA","settings.headerForeground":"#80CBC4","settings.modifiedItemIndicator":"#80CBC4","settings.checkboxBackground":"#FAFAFA","settings.checkboxForeground":"#90A4AE","listFilterWidget.background":"#CCD7DA50","listFilterWidget.outline":"#CCD7DA50","listFilterWidget.noMatchesOutline":"#CCD7DA50"}}; + +export { materialThemeLighter as default }; diff --git a/docs/shiki/dist/themes/material-theme-ocean-4c5f4079.mjs b/docs/shiki/dist/themes/material-theme-ocean-4c5f4079.mjs new file mode 100644 index 00000000..71664707 --- /dev/null +++ b/docs/shiki/dist/themes/material-theme-ocean-4c5f4079.mjs @@ -0,0 +1,3 @@ +var materialThemeOcean = {name:"material-theme-ocean",semanticHighlighting:true,tokenColors:[{name:"Global settings",settings:{background:"#0F111A",foreground:"#A6ACCD"}},{name:"String",scope:"string",settings:{foreground:"#C3E88D"}},{name:"Punctuation",scope:"punctuation, constant.other.symbol",settings:{foreground:"#89DDFF"}},{name:"String Escape",scope:"constant.character.escape, text.html constant.character.entity.named",settings:{foreground:"#A6ACCD"}},{name:"Boolean",scope:"constant.language.boolean",settings:{foreground:"#ff9cac"}},{name:"Number",scope:"constant.numeric",settings:{foreground:"#F78C6C"}},{name:"Variable",scope:"variable, variable.parameter, support.variable, variable.language, support.constant, meta.definition.variable entity.name.function, meta.function-call.arguments",settings:{foreground:"#A6ACCD"}},{name:"Other Keyword",scope:"keyword.other",settings:{foreground:"#F78C6C"}},{name:"Keyword",scope:"keyword, modifier, variable.language.this, support.type.object, constant.language",settings:{foreground:"#89DDFF"}},{name:"Function call",scope:"entity.name.function, support.function",settings:{foreground:"#82AAFF"}},{name:"Storage",scope:"storage.type, storage.modifier, storage.control",settings:{foreground:"#C792EA"}},{name:"Modules",scope:"support.module, support.node",settings:{foreground:"#f07178",fontStyle:"italic"}},{name:"Type",scope:"support.type, constant.other.key",settings:{foreground:"#FFCB6B"}},{name:"Type",scope:"entity.name.type, entity.other.inherited-class, entity.other",settings:{foreground:"#FFCB6B"}},{name:"Comment",scope:"comment",settings:{foreground:"#464B5D",fontStyle:"italic"}},{name:"Comment",scope:"comment punctuation.definition.comment, string.quoted.docstring",settings:{foreground:"#464B5D",fontStyle:"italic"}},{name:"Punctuation",scope:"punctuation",settings:{foreground:"#89DDFF"}},{name:"Class",scope:"entity.name, entity.name.type.class, support.type, support.class, meta.use",settings:{foreground:"#FFCB6B"}},{name:"Class variable",scope:"variable.object.property, meta.field.declaration entity.name.function",settings:{foreground:"#f07178"}},{name:"Class method",scope:"meta.definition.method entity.name.function",settings:{foreground:"#f07178"}},{name:"Function definition",scope:"meta.function entity.name.function",settings:{foreground:"#82AAFF"}},{name:"Template expression",scope:"template.expression.begin, template.expression.end, punctuation.definition.template-expression.begin, punctuation.definition.template-expression.end",settings:{foreground:"#89DDFF"}},{name:"Reset embedded/template expression colors",scope:"meta.embedded, source.groovy.embedded, meta.template.expression",settings:{foreground:"#A6ACCD"}},{name:"YAML key",scope:"entity.name.tag.yaml",settings:{foreground:"#f07178"}},{name:"JSON key",scope:"meta.object-literal.key, meta.object-literal.key string, support.type.property-name.json",settings:{foreground:"#f07178"}},{name:"JSON constant",scope:"constant.language.json",settings:{foreground:"#89DDFF"}},{name:"CSS class",scope:"entity.other.attribute-name.class",settings:{foreground:"#FFCB6B"}},{name:"CSS ID",scope:"entity.other.attribute-name.id",settings:{foreground:"#F78C6C"}},{name:"CSS tag",scope:"source.css entity.name.tag",settings:{foreground:"#FFCB6B"}},{name:"CSS properties",scope:"support.type.property-name.css",settings:{foreground:"#B2CCD6"}},{name:"HTML tag outer",scope:"meta.tag, punctuation.definition.tag",settings:{foreground:"#89DDFF"}},{name:"HTML tag inner",scope:"entity.name.tag",settings:{foreground:"#f07178"}},{name:"HTML tag attribute",scope:"entity.other.attribute-name",settings:{foreground:"#C792EA"}},{name:"HTML entities",scope:"punctuation.definition.entity.html",settings:{foreground:"#A6ACCD"}},{name:"Markdown heading",scope:"markup.heading",settings:{foreground:"#89DDFF"}},{name:"Markdown link text",scope:"text.html.markdown meta.link.inline, meta.link.reference",settings:{foreground:"#f07178"}},{name:"Markdown list item",scope:"text.html.markdown beginning.punctuation.definition.list",settings:{foreground:"#89DDFF"}},{name:"Markdown italic",scope:"markup.italic",settings:{foreground:"#f07178",fontStyle:"italic"}},{name:"Markdown bold",scope:"markup.bold",settings:{foreground:"#f07178",fontStyle:"bold"}},{name:"Markdown bold italic",scope:"markup.bold markup.italic, markup.italic markup.bold",settings:{foreground:"#f07178",fontStyle:"italic bold"}},{name:"Markdown code block",scope:"markup.fenced_code.block.markdown punctuation.definition.markdown",settings:{foreground:"#C3E88D"}},{name:"Markdown inline code",scope:"markup.inline.raw.string.markdown",settings:{foreground:"#C3E88D"}},{name:"INI property name",scope:"keyword.other.definition.ini",settings:{foreground:"#f07178"}},{name:"INI section title",scope:"entity.name.section.group-title.ini",settings:{foreground:"#89DDFF"}},{name:"C# class",scope:"source.cs meta.class.identifier storage.type",settings:{foreground:"#FFCB6B"}},{name:"C# class method",scope:"source.cs meta.method.identifier entity.name.function",settings:{foreground:"#f07178"}},{name:"C# function call",scope:"source.cs meta.method-call meta.method, source.cs entity.name.function",settings:{foreground:"#82AAFF"}},{name:"C# type",scope:"source.cs storage.type",settings:{foreground:"#FFCB6B"}},{name:"C# return type",scope:"source.cs meta.method.return-type",settings:{foreground:"#FFCB6B"}},{name:"C# preprocessor",scope:"source.cs meta.preprocessor",settings:{foreground:"#464B5D"}},{name:"C# namespace",scope:"source.cs entity.name.type.namespace",settings:{foreground:"#A6ACCD"}},{name:"JSX Text",scope:"meta.jsx.children, SXNested",settings:{foreground:"#A6ACCD"}},{name:"JSX Components name",scope:"support.class.component",settings:{foreground:"#FFCB6B"}},{name:"C-related Block Level Variables",scope:"source.cpp meta.block variable.other",settings:{foreground:"#A6ACCD"}},{name:"Member Access Meta",scope:"source.python meta.member.access.python",settings:{foreground:"#f07178"}},{name:"Function Call",scope:"source.python meta.function-call.python, meta.function-call.arguments",settings:{foreground:"#82AAFF"}},{name:"Blocks",scope:"meta.block",settings:{foreground:"#f07178"}},{name:"Function Call",scope:"entity.name.function.call",settings:{foreground:"#82AAFF"}},{name:"Namespaces",scope:"source.php support.other.namespace, source.php meta.use support.class",settings:{foreground:"#A6ACCD"}},{name:"Constant keywords",scope:"constant.keyword",settings:{foreground:"#89DDFF",fontStyle:"italic"}},{name:"Entity name",scope:"entity.name.function",settings:{foreground:"#82AAFF"}},{name:"Global settings",settings:{background:"#0F111A",foreground:"#A6ACCD"}},{name:"Markup Deleted",scope:["markup.deleted"],settings:{foreground:"#f07178"}},{name:"Markup Inserted",scope:["markup.inserted"],settings:{foreground:"#C3E88D"}},{name:"Markup Underline",scope:["markup.underline"],settings:{fontStyle:"underline"}},{name:"Keyword Control",scope:["keyword.control"],settings:{foreground:"#89DDFF",fontStyle:"italic"}},{name:"Parameter",scope:["variable.parameter"],settings:{fontStyle:"italic"}},{name:"Python - Self Parameter",scope:["variable.parameter.function.language.special.self.python"],settings:{foreground:"#f07178",fontStyle:"italic"}},{name:"Python - Format Placeholder",scope:["constant.character.format.placeholder.other.python"],settings:{foreground:"#F78C6C"}},{name:"Markdown - Blockquote",scope:["markup.quote"],settings:{fontStyle:"italic",foreground:"#89DDFF"}},{name:"Markdown - Fenced Language",scope:["markup.fenced_code.block"],settings:{foreground:"#A6ACCD90"}},{name:"Markdown - Blockquote Punctuation",scope:["punctuation.definition.quote"],settings:{foreground:"#ff9cac"}},{name:"JSON Key - Level 0",scope:["meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#C792EA"}},{name:"JSON Key - Level 1",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#FFCB6B"}},{name:"JSON Key - Level 2",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#F78C6C"}},{name:"JSON Key - Level 3",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#f07178"}},{name:"JSON Key - Level 4",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#916b53"}},{name:"JSON Key - Level 5",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#82AAFF"}},{name:"JSON Key - Level 6",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#ff9cac"}},{name:"JSON Key - Level 7",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#C792EA"}},{name:"JSON Key - Level 8",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#C3E88D"}}],colors:{focusBorder:"#FFFFFF00",foreground:"#A6ACCD","button.background":"#717CB450","button.foreground":"#ffffff","dropdown.background":"#0F111A","input.background":"#1A1C25","inputOption.activeBorder":"#A6ACCD30","list.activeSelectionBackground":"#0F111A","list.activeSelectionForeground":"#80CBC4","list.dropBackground":"#f0717880","list.focusBackground":"#A6ACCD20","list.focusForeground":"#A6ACCD","list.highlightForeground":"#80CBC4","list.hoverBackground":"#0F111A","list.inactiveSelectionBackground":"#00000030","activityBar.background":"#0F111A","activityBar.dropBackground":"#f0717880","activityBarBadge.background":"#80CBC4","activityBarBadge.foreground":"#000000","badge.background":"#00000030","badge.foreground":"#464B5D","sideBar.background":"#0F111A","sideBarSectionHeader.background":"#0F111A","editorGroup.dropBackground":"#f0717880","editorGroup.focusedEmptyBorder":"#f07178","editorGroupHeader.tabsBackground":"#0F111A","tab.border":"#0F111A","tab.activeBorder":"#80CBC4","tab.inactiveBackground":"#0F111A","tab.activeModifiedBorder":"#525975","tab.inactiveModifiedBorder":"#904348","tab.unfocusedActiveModifiedBorder":"#c05a60","tab.unfocusedInactiveModifiedBorder":"#904348","editor.background":"#0F111A","editor.foreground":"#A6ACCD","editorLineNumber.foreground":"#3B3F5180","editorLineNumber.activeForeground":"#525975","editorCursor.foreground":"#FFCC00","editor.selectionBackground":"#717CB450","editor.selectionHighlightBackground":"#FFCC0020","editor.wordHighlightBackground":"#ff9cac30","editor.wordHighlightStrongBackground":"#C3E88D30","editor.findMatchHighlight":"#A6ACCD","editor.findRangeHighlightBackground":"#FFCB6B30","editor.lineHighlightBorder":"#00000000","editor.rangeHighlightBackground":"#FFFFFF0d","editorWhitespace.foreground":"#A6ACCD40","editorWidget.background":"#0F111A","editorHoverWidget.background":"#0F111A","editorMarkerNavigation.background":"#A6ACCD05","peekView.border":"#00000030","peekViewEditor.background":"#A6ACCD05","peekViewResult.background":"#A6ACCD05","peekViewTitle.background":"#A6ACCD05","panel.background":"#0F111A","panel.border":"#0F111A60","panelTitle.activeBorder":"#80CBC4","panelTitle.inactiveForeground":"#A6ACCD","notebook.focusedCellBorder":"#80CBC4","notebook.inactiveFocusedCellBorder":"#80CBC450","statusBar.background":"#0F111A","statusBar.debuggingBackground":"#C792EA","statusBar.debuggingForeground":"#ffffff","statusBar.noFolderBackground":"#0F111A","statusBarItem.activeBackground":"#f0717880","statusBarItem.hoverBackground":"#464B5D20","statusBarItem.remoteBackground":"#80CBC4","statusBarItem.remoteForeground":"#000000","titleBar.activeBackground":"#0F111A","pickerGroup.border":"#FFFFFF1a","terminal.ansiBlack":"#000000","terminal.ansiBlue":"#82AAFF","terminal.ansiBrightBlack":"#464B5D","terminal.ansiBrightBlue":"#82AAFF","terminal.ansiBrightCyan":"#89DDFF","terminal.ansiBrightGreen":"#C3E88D","terminal.ansiBrightMagenta":"#C792EA","terminal.ansiBrightRed":"#f07178","terminal.ansiBrightWhite":"#ffffff","terminal.ansiBrightYellow":"#FFCB6B","terminal.ansiCyan":"#89DDFF","terminal.ansiGreen":"#C3E88D","terminal.ansiMagenta":"#C792EA","terminal.ansiRed":"#f07178","terminal.ansiWhite":"#ffffff","terminal.ansiYellow":"#FFCB6B","debugToolBar.background":"#0F111A","debugConsole.errorForeground":"#f07178","debugConsole.infoForeground":"#89DDFF","debugConsole.warningForeground":"#FFCB6B","selection.background":"#00000080","editorRuler.foreground":"#3B3F51","widget.shadow":"#00000030","scrollbar.shadow":"#00000030","editorLink.activeForeground":"#A6ACCD","progressBar.background":"#80CBC4","pickerGroup.foreground":"#80CBC4","tree.indentGuidesStroke":"#3B3F51","terminalCursor.foreground":"#FFCB6B","terminalCursor.background":"#000000","inputOption.activeBackground":"#A6ACCD30","textLink.foreground":"#80CBC4","textLink.activeForeground":"#A6ACCD","sideBar.foreground":"#525975","sideBar.border":"#0F111A60","sideBarTitle.foreground":"#A6ACCD","sideBarSectionHeader.border":"#0F111A60","panel.dropBackground":"#A6ACCD","panelTitle.activeForeground":"#FFFFFF","editor.lineHighlightBackground":"#00000050","editor.findMatchBackground":"#000000","editor.findMatchHighlightBackground":"#00000050","editor.findMatchBorder":"#80CBC4","editor.findMatchHighlightBorder":"#ffffff30","editorIndentGuide.background":"#3B3F5170","editorIndentGuide.activeBackground":"#3B3F51","editorGroup.border":"#00000030","editorGutter.modifiedBackground":"#82AAFF60","editorGutter.addedBackground":"#C3E88D60","editorGutter.deletedBackground":"#f0717860","activityBar.border":"#0F111A60","activityBar.foreground":"#A6ACCD","activityBar.activeBorder":"#80CBC4","extensionBadge.remoteForeground":"#A6ACCD","scrollbarSlider.background":"#8F93A220","scrollbarSlider.hoverBackground":"#8F93A210","scrollbarSlider.activeBackground":"#80CBC4","tab.unfocusedActiveBorder":"#464B5D","tab.activeForeground":"#FFFFFF","tab.inactiveForeground":"#525975","tab.activeBackground":"#0F111A","tab.unfocusedActiveForeground":"#A6ACCD","editorWidget.resizeBorder":"#80CBC4","editorWidget.border":"#80CBC4","statusBar.border":"#0F111A60","statusBar.foreground":"#4B526D","editorBracketMatch.border":"#FFCC0050","editorBracketMatch.background":"#0F111A","editorOverviewRuler.findMatchForeground":"#80CBC4","editorOverviewRuler.border":"#0F111A","editorOverviewRuler.errorForeground":"#f0717840","editorOverviewRuler.infoForeground":"#82AAFF40","editorOverviewRuler.warningForeground":"#FFCB6B40","editorInfo.foreground":"#82AAFF70","editorWarning.foreground":"#FFCB6B70","editorError.foreground":"#f0717870","editorHoverWidget.border":"#FFFFFF10","titleBar.activeForeground":"#A6ACCD","titleBar.inactiveBackground":"#0F111A","titleBar.inactiveForeground":"#525975","titleBar.border":"#0F111A60","input.foreground":"#A6ACCD","input.placeholderForeground":"#A6ACCD60","input.border":"#FFFFFF10","inputValidation.errorBorder":"#f07178","inputValidation.infoBorder":"#82AAFF","inputValidation.warningBorder":"#FFCB6B","dropdown.border":"#FFFFFF10","quickInput.background":"#0F111A","quickInput.foreground":"#525975","list.hoverForeground":"#FFFFFF","list.inactiveSelectionForeground":"#80CBC4","quickInput.list.focusBackground":"#A6ACCD20","editorSuggestWidget.background":"#0F111A","editorSuggestWidget.foreground":"#A6ACCD","editorSuggestWidget.highlightForeground":"#80CBC4","editorSuggestWidget.selectedBackground":"#00000050","editorSuggestWidget.border":"#FFFFFF10","diffEditor.insertedTextBackground":"#89DDFF20","diffEditor.removedTextBackground":"#ff9cac20","notifications.background":"#0F111A","notifications.foreground":"#A6ACCD","notificationLink.foreground":"#80CBC4","extensionButton.prominentBackground":"#C3E88D90","extensionButton.prominentHoverBackground":"#C3E88D","extensionButton.prominentForeground":"#000000","peekViewEditorGutter.background":"#A6ACCD05","peekViewTitleDescription.foreground":"#A6ACCD60","peekViewResult.matchHighlightBackground":"#717CB450","peekViewEditor.matchHighlightBackground":"#717CB450","peekViewResult.selectionBackground":"#52597570","gitDecoration.deletedResourceForeground":"#f0717890","gitDecoration.conflictingResourceForeground":"#FFCB6B90","gitDecoration.modifiedResourceForeground":"#82AAFF90","gitDecoration.untrackedResourceForeground":"#C3E88D90","gitDecoration.ignoredResourceForeground":"#52597590","breadcrumb.background":"#0F111A","breadcrumb.foreground":"#525975","breadcrumb.focusForeground":"#A6ACCD","breadcrumb.activeSelectionForeground":"#80CBC4","breadcrumbPicker.background":"#0F111A","menu.background":"#0F111A","menu.foreground":"#A6ACCD","menu.selectionBackground":"#00000050","menu.selectionForeground":"#80CBC4","menu.selectionBorder":"#00000030","menu.separatorBackground":"#A6ACCD","menubar.selectionBackground":"#00000030","menubar.selectionForeground":"#80CBC4","menubar.selectionBorder":"#00000030","settings.dropdownForeground":"#A6ACCD","settings.dropdownBackground":"#0F111A","settings.numberInputForeground":"#A6ACCD","settings.numberInputBackground":"#0F111A","settings.textInputForeground":"#A6ACCD","settings.textInputBackground":"#0F111A","settings.headerForeground":"#80CBC4","settings.modifiedItemIndicator":"#80CBC4","settings.checkboxBackground":"#0F111A","settings.checkboxForeground":"#A6ACCD","listFilterWidget.background":"#00000030","listFilterWidget.outline":"#00000030","listFilterWidget.noMatchesOutline":"#00000030"}}; + +export { materialThemeOcean as default }; diff --git a/docs/shiki/dist/themes/material-theme-palenight-b570e313.mjs b/docs/shiki/dist/themes/material-theme-palenight-b570e313.mjs new file mode 100644 index 00000000..2c2e10c3 --- /dev/null +++ b/docs/shiki/dist/themes/material-theme-palenight-b570e313.mjs @@ -0,0 +1,3 @@ +var materialThemePalenight = {name:"material-theme-palenight",semanticHighlighting:true,tokenColors:[{name:"Global settings",settings:{background:"#292D3E",foreground:"#A6ACCD"}},{name:"String",scope:"string",settings:{foreground:"#C3E88D"}},{name:"Punctuation",scope:"punctuation, constant.other.symbol",settings:{foreground:"#89DDFF"}},{name:"String Escape",scope:"constant.character.escape, text.html constant.character.entity.named",settings:{foreground:"#A6ACCD"}},{name:"Boolean",scope:"constant.language.boolean",settings:{foreground:"#ff9cac"}},{name:"Number",scope:"constant.numeric",settings:{foreground:"#F78C6C"}},{name:"Variable",scope:"variable, variable.parameter, support.variable, variable.language, support.constant, meta.definition.variable entity.name.function, meta.function-call.arguments",settings:{foreground:"#A6ACCD"}},{name:"Other Keyword",scope:"keyword.other",settings:{foreground:"#F78C6C"}},{name:"Keyword",scope:"keyword, modifier, variable.language.this, support.type.object, constant.language",settings:{foreground:"#89DDFF"}},{name:"Function call",scope:"entity.name.function, support.function",settings:{foreground:"#82AAFF"}},{name:"Storage",scope:"storage.type, storage.modifier, storage.control",settings:{foreground:"#C792EA"}},{name:"Modules",scope:"support.module, support.node",settings:{foreground:"#f07178",fontStyle:"italic"}},{name:"Type",scope:"support.type, constant.other.key",settings:{foreground:"#FFCB6B"}},{name:"Type",scope:"entity.name.type, entity.other.inherited-class, entity.other",settings:{foreground:"#FFCB6B"}},{name:"Comment",scope:"comment",settings:{foreground:"#676E95",fontStyle:"italic"}},{name:"Comment",scope:"comment punctuation.definition.comment, string.quoted.docstring",settings:{foreground:"#676E95",fontStyle:"italic"}},{name:"Punctuation",scope:"punctuation",settings:{foreground:"#89DDFF"}},{name:"Class",scope:"entity.name, entity.name.type.class, support.type, support.class, meta.use",settings:{foreground:"#FFCB6B"}},{name:"Class variable",scope:"variable.object.property, meta.field.declaration entity.name.function",settings:{foreground:"#f07178"}},{name:"Class method",scope:"meta.definition.method entity.name.function",settings:{foreground:"#f07178"}},{name:"Function definition",scope:"meta.function entity.name.function",settings:{foreground:"#82AAFF"}},{name:"Template expression",scope:"template.expression.begin, template.expression.end, punctuation.definition.template-expression.begin, punctuation.definition.template-expression.end",settings:{foreground:"#89DDFF"}},{name:"Reset embedded/template expression colors",scope:"meta.embedded, source.groovy.embedded, meta.template.expression",settings:{foreground:"#A6ACCD"}},{name:"YAML key",scope:"entity.name.tag.yaml",settings:{foreground:"#f07178"}},{name:"JSON key",scope:"meta.object-literal.key, meta.object-literal.key string, support.type.property-name.json",settings:{foreground:"#f07178"}},{name:"JSON constant",scope:"constant.language.json",settings:{foreground:"#89DDFF"}},{name:"CSS class",scope:"entity.other.attribute-name.class",settings:{foreground:"#FFCB6B"}},{name:"CSS ID",scope:"entity.other.attribute-name.id",settings:{foreground:"#F78C6C"}},{name:"CSS tag",scope:"source.css entity.name.tag",settings:{foreground:"#FFCB6B"}},{name:"CSS properties",scope:"support.type.property-name.css",settings:{foreground:"#B2CCD6"}},{name:"HTML tag outer",scope:"meta.tag, punctuation.definition.tag",settings:{foreground:"#89DDFF"}},{name:"HTML tag inner",scope:"entity.name.tag",settings:{foreground:"#f07178"}},{name:"HTML tag attribute",scope:"entity.other.attribute-name",settings:{foreground:"#C792EA"}},{name:"HTML entities",scope:"punctuation.definition.entity.html",settings:{foreground:"#A6ACCD"}},{name:"Markdown heading",scope:"markup.heading",settings:{foreground:"#89DDFF"}},{name:"Markdown link text",scope:"text.html.markdown meta.link.inline, meta.link.reference",settings:{foreground:"#f07178"}},{name:"Markdown list item",scope:"text.html.markdown beginning.punctuation.definition.list",settings:{foreground:"#89DDFF"}},{name:"Markdown italic",scope:"markup.italic",settings:{foreground:"#f07178",fontStyle:"italic"}},{name:"Markdown bold",scope:"markup.bold",settings:{foreground:"#f07178",fontStyle:"bold"}},{name:"Markdown bold italic",scope:"markup.bold markup.italic, markup.italic markup.bold",settings:{foreground:"#f07178",fontStyle:"italic bold"}},{name:"Markdown code block",scope:"markup.fenced_code.block.markdown punctuation.definition.markdown",settings:{foreground:"#C3E88D"}},{name:"Markdown inline code",scope:"markup.inline.raw.string.markdown",settings:{foreground:"#C3E88D"}},{name:"INI property name",scope:"keyword.other.definition.ini",settings:{foreground:"#f07178"}},{name:"INI section title",scope:"entity.name.section.group-title.ini",settings:{foreground:"#89DDFF"}},{name:"C# class",scope:"source.cs meta.class.identifier storage.type",settings:{foreground:"#FFCB6B"}},{name:"C# class method",scope:"source.cs meta.method.identifier entity.name.function",settings:{foreground:"#f07178"}},{name:"C# function call",scope:"source.cs meta.method-call meta.method, source.cs entity.name.function",settings:{foreground:"#82AAFF"}},{name:"C# type",scope:"source.cs storage.type",settings:{foreground:"#FFCB6B"}},{name:"C# return type",scope:"source.cs meta.method.return-type",settings:{foreground:"#FFCB6B"}},{name:"C# preprocessor",scope:"source.cs meta.preprocessor",settings:{foreground:"#676E95"}},{name:"C# namespace",scope:"source.cs entity.name.type.namespace",settings:{foreground:"#A6ACCD"}},{name:"JSX Text",scope:"meta.jsx.children, SXNested",settings:{foreground:"#A6ACCD"}},{name:"JSX Components name",scope:"support.class.component",settings:{foreground:"#FFCB6B"}},{name:"C-related Block Level Variables",scope:"source.cpp meta.block variable.other",settings:{foreground:"#A6ACCD"}},{name:"Member Access Meta",scope:"source.python meta.member.access.python",settings:{foreground:"#f07178"}},{name:"Function Call",scope:"source.python meta.function-call.python, meta.function-call.arguments",settings:{foreground:"#82AAFF"}},{name:"Blocks",scope:"meta.block",settings:{foreground:"#f07178"}},{name:"Function Call",scope:"entity.name.function.call",settings:{foreground:"#82AAFF"}},{name:"Namespaces",scope:"source.php support.other.namespace, source.php meta.use support.class",settings:{foreground:"#A6ACCD"}},{name:"Constant keywords",scope:"constant.keyword",settings:{foreground:"#89DDFF",fontStyle:"italic"}},{name:"Entity name",scope:"entity.name.function",settings:{foreground:"#82AAFF"}},{name:"Global settings",settings:{background:"#292D3E",foreground:"#A6ACCD"}},{name:"Markup Deleted",scope:["markup.deleted"],settings:{foreground:"#f07178"}},{name:"Markup Inserted",scope:["markup.inserted"],settings:{foreground:"#C3E88D"}},{name:"Markup Underline",scope:["markup.underline"],settings:{fontStyle:"underline"}},{name:"Keyword Control",scope:["keyword.control"],settings:{foreground:"#89DDFF",fontStyle:"italic"}},{name:"Parameter",scope:["variable.parameter"],settings:{fontStyle:"italic"}},{name:"Python - Self Parameter",scope:["variable.parameter.function.language.special.self.python"],settings:{foreground:"#f07178",fontStyle:"italic"}},{name:"Python - Format Placeholder",scope:["constant.character.format.placeholder.other.python"],settings:{foreground:"#F78C6C"}},{name:"Markdown - Blockquote",scope:["markup.quote"],settings:{fontStyle:"italic",foreground:"#89DDFF"}},{name:"Markdown - Fenced Language",scope:["markup.fenced_code.block"],settings:{foreground:"#A6ACCD90"}},{name:"Markdown - Blockquote Punctuation",scope:["punctuation.definition.quote"],settings:{foreground:"#ff9cac"}},{name:"JSON Key - Level 0",scope:["meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#C792EA"}},{name:"JSON Key - Level 1",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#FFCB6B"}},{name:"JSON Key - Level 2",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#F78C6C"}},{name:"JSON Key - Level 3",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#f07178"}},{name:"JSON Key - Level 4",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#916b53"}},{name:"JSON Key - Level 5",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#82AAFF"}},{name:"JSON Key - Level 6",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#ff9cac"}},{name:"JSON Key - Level 7",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#C792EA"}},{name:"JSON Key - Level 8",scope:["meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#C3E88D"}}],colors:{focusBorder:"#FFFFFF00",foreground:"#A6ACCD","button.background":"#717CB450","button.foreground":"#ffffff","dropdown.background":"#292D3E","input.background":"#333747","inputOption.activeBorder":"#A6ACCD30","list.activeSelectionBackground":"#292D3E","list.activeSelectionForeground":"#80CBC4","list.dropBackground":"#f0717880","list.focusBackground":"#A6ACCD20","list.focusForeground":"#A6ACCD","list.highlightForeground":"#80CBC4","list.hoverBackground":"#292D3E","list.inactiveSelectionBackground":"#00000030","activityBar.background":"#292D3E","activityBar.dropBackground":"#f0717880","activityBarBadge.background":"#80CBC4","activityBarBadge.foreground":"#000000","badge.background":"#00000030","badge.foreground":"#676E95","sideBar.background":"#292D3E","sideBarSectionHeader.background":"#292D3E","editorGroup.dropBackground":"#f0717880","editorGroup.focusedEmptyBorder":"#f07178","editorGroupHeader.tabsBackground":"#292D3E","tab.border":"#292D3E","tab.activeBorder":"#80CBC4","tab.inactiveBackground":"#292D3E","tab.activeModifiedBorder":"#676E95","tab.inactiveModifiedBorder":"#904348","tab.unfocusedActiveModifiedBorder":"#c05a60","tab.unfocusedInactiveModifiedBorder":"#904348","editor.background":"#292D3E","editor.foreground":"#A6ACCD","editorLineNumber.foreground":"#3A3F58","editorLineNumber.activeForeground":"#676E95","editorCursor.foreground":"#FFCC00","editor.selectionBackground":"#717CB450","editor.selectionHighlightBackground":"#FFCC0020","editor.wordHighlightBackground":"#ff9cac30","editor.wordHighlightStrongBackground":"#C3E88D30","editor.findMatchHighlight":"#A6ACCD","editor.findRangeHighlightBackground":"#FFCB6B30","editor.lineHighlightBorder":"#00000000","editor.rangeHighlightBackground":"#FFFFFF0d","editorWhitespace.foreground":"#A6ACCD40","editorWidget.background":"#292D3E","editorHoverWidget.background":"#292D3E","editorMarkerNavigation.background":"#A6ACCD05","peekView.border":"#00000030","peekViewEditor.background":"#A6ACCD05","peekViewResult.background":"#A6ACCD05","peekViewTitle.background":"#A6ACCD05","panel.background":"#292D3E","panel.border":"#292D3E60","panelTitle.activeBorder":"#80CBC4","panelTitle.inactiveForeground":"#A6ACCD","notebook.focusedCellBorder":"#80CBC4","notebook.inactiveFocusedCellBorder":"#80CBC450","statusBar.background":"#292D3E","statusBar.debuggingBackground":"#C792EA","statusBar.debuggingForeground":"#ffffff","statusBar.noFolderBackground":"#292D3E","statusBarItem.activeBackground":"#f0717880","statusBarItem.hoverBackground":"#676E9520","statusBarItem.remoteBackground":"#80CBC4","statusBarItem.remoteForeground":"#000000","titleBar.activeBackground":"#292D3E","pickerGroup.border":"#FFFFFF1a","terminal.ansiBlack":"#000000","terminal.ansiBlue":"#82AAFF","terminal.ansiBrightBlack":"#676E95","terminal.ansiBrightBlue":"#82AAFF","terminal.ansiBrightCyan":"#89DDFF","terminal.ansiBrightGreen":"#C3E88D","terminal.ansiBrightMagenta":"#C792EA","terminal.ansiBrightRed":"#f07178","terminal.ansiBrightWhite":"#ffffff","terminal.ansiBrightYellow":"#FFCB6B","terminal.ansiCyan":"#89DDFF","terminal.ansiGreen":"#C3E88D","terminal.ansiMagenta":"#C792EA","terminal.ansiRed":"#f07178","terminal.ansiWhite":"#ffffff","terminal.ansiYellow":"#FFCB6B","debugToolBar.background":"#292D3E","debugConsole.errorForeground":"#f07178","debugConsole.infoForeground":"#89DDFF","debugConsole.warningForeground":"#FFCB6B","selection.background":"#00000080","editorRuler.foreground":"#4E5579","widget.shadow":"#00000030","scrollbar.shadow":"#00000030","editorLink.activeForeground":"#A6ACCD","progressBar.background":"#80CBC4","pickerGroup.foreground":"#80CBC4","tree.indentGuidesStroke":"#4E5579","terminalCursor.foreground":"#FFCB6B","terminalCursor.background":"#000000","inputOption.activeBackground":"#A6ACCD30","textLink.foreground":"#80CBC4","textLink.activeForeground":"#A6ACCD","sideBar.foreground":"#676E95","sideBar.border":"#292D3E60","sideBarTitle.foreground":"#A6ACCD","sideBarSectionHeader.border":"#292D3E60","panel.dropBackground":"#A6ACCD","panelTitle.activeForeground":"#FFFFFF","editor.lineHighlightBackground":"#00000050","editor.findMatchBackground":"#000000","editor.findMatchHighlightBackground":"#00000050","editor.findMatchBorder":"#80CBC4","editor.findMatchHighlightBorder":"#ffffff30","editorIndentGuide.background":"#4E557970","editorIndentGuide.activeBackground":"#4E5579","editorGroup.border":"#00000030","editorGutter.modifiedBackground":"#82AAFF60","editorGutter.addedBackground":"#C3E88D60","editorGutter.deletedBackground":"#f0717860","activityBar.border":"#292D3E60","activityBar.foreground":"#A6ACCD","activityBar.activeBorder":"#80CBC4","extensionBadge.remoteForeground":"#A6ACCD","scrollbarSlider.background":"#A6ACCD20","scrollbarSlider.hoverBackground":"#A6ACCD10","scrollbarSlider.activeBackground":"#80CBC4","tab.unfocusedActiveBorder":"#676E95","tab.activeForeground":"#FFFFFF","tab.inactiveForeground":"#676E95","tab.activeBackground":"#292D3E","tab.unfocusedActiveForeground":"#A6ACCD","editorWidget.resizeBorder":"#80CBC4","editorWidget.border":"#80CBC4","statusBar.border":"#292D3E60","statusBar.foreground":"#676E95","editorBracketMatch.border":"#FFCC0050","editorBracketMatch.background":"#292D3E","editorOverviewRuler.findMatchForeground":"#80CBC4","editorOverviewRuler.border":"#292D3E","editorOverviewRuler.errorForeground":"#f0717840","editorOverviewRuler.infoForeground":"#82AAFF40","editorOverviewRuler.warningForeground":"#FFCB6B40","editorInfo.foreground":"#82AAFF70","editorWarning.foreground":"#FFCB6B70","editorError.foreground":"#f0717870","editorHoverWidget.border":"#FFFFFF10","titleBar.activeForeground":"#A6ACCD","titleBar.inactiveBackground":"#292D3E","titleBar.inactiveForeground":"#676E95","titleBar.border":"#292D3E60","input.foreground":"#A6ACCD","input.placeholderForeground":"#A6ACCD60","input.border":"#FFFFFF10","inputValidation.errorBorder":"#f07178","inputValidation.infoBorder":"#82AAFF","inputValidation.warningBorder":"#FFCB6B","dropdown.border":"#FFFFFF10","quickInput.background":"#292D3E","quickInput.foreground":"#676E95","list.hoverForeground":"#FFFFFF","list.inactiveSelectionForeground":"#80CBC4","quickInput.list.focusBackground":"#A6ACCD20","editorSuggestWidget.background":"#292D3E","editorSuggestWidget.foreground":"#A6ACCD","editorSuggestWidget.highlightForeground":"#80CBC4","editorSuggestWidget.selectedBackground":"#00000050","editorSuggestWidget.border":"#FFFFFF10","diffEditor.insertedTextBackground":"#89DDFF20","diffEditor.removedTextBackground":"#ff9cac20","notifications.background":"#292D3E","notifications.foreground":"#A6ACCD","notificationLink.foreground":"#80CBC4","extensionButton.prominentBackground":"#C3E88D90","extensionButton.prominentHoverBackground":"#C3E88D","extensionButton.prominentForeground":"#000000","peekViewEditorGutter.background":"#A6ACCD05","peekViewTitleDescription.foreground":"#A6ACCD60","peekViewResult.matchHighlightBackground":"#717CB450","peekViewEditor.matchHighlightBackground":"#717CB450","peekViewResult.selectionBackground":"#676E9570","gitDecoration.deletedResourceForeground":"#f0717890","gitDecoration.conflictingResourceForeground":"#FFCB6B90","gitDecoration.modifiedResourceForeground":"#82AAFF90","gitDecoration.untrackedResourceForeground":"#C3E88D90","gitDecoration.ignoredResourceForeground":"#676E9590","breadcrumb.background":"#292D3E","breadcrumb.foreground":"#676E95","breadcrumb.focusForeground":"#A6ACCD","breadcrumb.activeSelectionForeground":"#80CBC4","breadcrumbPicker.background":"#292D3E","menu.background":"#292D3E","menu.foreground":"#A6ACCD","menu.selectionBackground":"#00000050","menu.selectionForeground":"#80CBC4","menu.selectionBorder":"#00000030","menu.separatorBackground":"#A6ACCD","menubar.selectionBackground":"#00000030","menubar.selectionForeground":"#80CBC4","menubar.selectionBorder":"#00000030","settings.dropdownForeground":"#A6ACCD","settings.dropdownBackground":"#292D3E","settings.numberInputForeground":"#A6ACCD","settings.numberInputBackground":"#292D3E","settings.textInputForeground":"#A6ACCD","settings.textInputBackground":"#292D3E","settings.headerForeground":"#80CBC4","settings.modifiedItemIndicator":"#80CBC4","settings.checkboxBackground":"#292D3E","settings.checkboxForeground":"#A6ACCD","listFilterWidget.background":"#00000030","listFilterWidget.outline":"#00000030","listFilterWidget.noMatchesOutline":"#00000030"}}; + +export { materialThemePalenight as default }; diff --git a/docs/shiki/dist/themes/min-dark-222484e0.mjs b/docs/shiki/dist/themes/min-dark-222484e0.mjs new file mode 100644 index 00000000..67f4e126 --- /dev/null +++ b/docs/shiki/dist/themes/min-dark-222484e0.mjs @@ -0,0 +1,3 @@ +var minDark = {name:"min-dark",type:"dark",colors:{"editorIndentGuide.activeBackground":"#383838","editorIndentGuide.background":"#2A2A2A","editorRuler.foreground":"#2A2A2A","editorLineNumber.foreground":"#727272","activityBar.background":"#1A1A1A","activityBar.foreground":"#7D7D7D","activityBarBadge.background":"#383838","badge.background":"#383838","badge.foreground":"#C1C1C1","button.background":"#333","editor.background":"#1f1f1f","editor.lineHighlightBorder":"#303030","editorGroupHeader.tabsBackground":"#1A1A1A","editorGroupHeader.tabsBorder":"#1A1A1A","editorSuggestWidget.background":"#1A1A1A",focusBorder:"#444",foreground:"#888888","gitDecoration.ignoredResourceForeground":"#444444","input.background":"#2A2A2A","input.foreground":"#E0E0E0","list.activeSelectionBackground":"#212121","list.activeSelectionForeground":"#F5F5F5","list.focusBackground":"#292929","list.highlightForeground":"#EAEAEA","list.hoverBackground":"#262626","list.hoverForeground":"#9E9E9E","list.inactiveSelectionBackground":"#212121","list.inactiveSelectionForeground":"#F5F5F5","panelTitle.activeBorder":"#1f1f1f","panelTitle.activeForeground":"#FAFAFA","panelTitle.inactiveForeground":"#484848","peekView.border":"#444","peekViewEditor.background":"#242424","pickerGroup.border":"#363636","pickerGroup.foreground":"#EAEAEA","progressBar.background":"#FAFAFA","scrollbar.shadow":"#1f1f1f","sideBar.background":"#1A1A1A","sideBarSectionHeader.background":"#202020","statusBar.background":"#1A1A1A","statusBar.debuggingBackground":"#1A1A1A","statusBar.foreground":"#7E7E7E","statusBar.noFolderBackground":"#1A1A1A","statusBarItem.remoteForeground":"#7E7E7E","statusBarItem.remoteBackground":"#1a1a1a00","statusBarItem.prominentBackground":"#fafafa1a","tab.activeBorder":"#1e1e1e","tab.activeForeground":"#FAFAFA","tab.border":"#1A1A1A","tab.inactiveBackground":"#1A1A1A","tab.inactiveForeground":"#727272","textLink.foreground":"#CCC","textLink.activeForeground":"#fafafa","titleBar.activeBackground":"#1A1A1A","titleBar.border":"#00000000","terminal.ansiBrightBlack":"#5c5c5c","inputOption.activeBackground":"#3a3a3a","debugIcon.continueForeground":"#FF7A84","debugIcon.disconnectForeground":"#FF7A84","debugIcon.pauseForeground":"#FF7A84","debugIcon.restartForeground":"#79b8ff","debugIcon.startForeground":"#79b8ff","debugIcon.stepBackForeground":"#FF7A84","debugIcon.stepIntoForeground":"#FF7A84","debugIcon.stepOutForeground":"#FF7A84","debugIcon.stepOverForeground":"#FF7A84","debugIcon.stopForeground":"#79b8ff","debugIcon.breakpointCurrentStackframeForeground":"#79b8ff","debugIcon.breakpointDisabledForeground":"#848484","debugIcon.breakpointForeground":"#FF7A84","debugIcon.breakpointStackframeForeground":"#79b8ff","debugIcon.breakpointUnverifiedForeground":"#848484","symbolIcon.classForeground":"#FF9800","symbolIcon.enumeratorForeground":"#FF9800","symbolIcon.eventForeground":"#FF9800","symbolIcon.methodForeground":"#b392f0","symbolIcon.constructorForeground":"#b392f0","symbolIcon.functionForeground":"#b392f0","symbolIcon.fieldForeground":"#79b8ff","symbolIcon.interfaceForeground":"#79b8ff","symbolIcon.variableForeground":"#79b8ff","symbolIcon.enumeratorMemberForeground":"#79b8ff","diffEditor.insertedTextBackground":"#3a632a4b","diffEditor.removedTextBackground":"#88063852"},tokenColors:[{settings:{foreground:"#b392f0"}},{scope:["support.function","keyword.operator.accessor","meta.group.braces.round.function.arguments","meta.template.expression","markup.fenced_code meta.embedded.block"],settings:{foreground:"#b392f0"}},{scope:"emphasis",settings:{fontStyle:"italic"}},{scope:["strong","markup.heading.markdown","markup.bold.markdown"],settings:{fontStyle:"bold",foreground:"#FF7A84"}},{scope:["markup.italic.markdown"],settings:{fontStyle:"italic"}},{scope:"meta.link.inline.markdown",settings:{fontStyle:"underline",foreground:"#1976D2"}},{scope:["string","markup.fenced_code","markup.inline"],settings:{foreground:"#9db1c5"}},{scope:["comment","string.quoted.docstring.multi"],settings:{foreground:"#6b737c"}},{scope:["constant.language","variable.language.this","variable.other.object","variable.other.class","variable.other.constant","meta.property-name","support","string.other.link.title.markdown"],settings:{foreground:"#79b8ff"}},{scope:["constant.numeric","constant.other.placeholder","constant.character.format.placeholder","meta.property-value","keyword.other.unit","keyword.other.template","entity.name.tag.yaml","entity.other.attribute-name","support.type.property-name.json"],settings:{foreground:"#f8f8f8"}},{scope:["keyword","storage.modifier","storage.type","storage.control.clojure","entity.name.function.clojure","support.function.node","punctuation.separator.key-value","punctuation.definition.template-expression"],settings:{foreground:"#f97583"}},{scope:"variable.parameter.function",settings:{foreground:"#FF9800"}},{scope:["entity.name.type","entity.other.inherited-class","meta.function-call","meta.instance.constructor","entity.other.attribute-name","entity.name.function","constant.keyword.clojure"],settings:{foreground:"#b392f0"}},{scope:["entity.name.tag","string.quoted","string.regexp","string.interpolated","string.template","string.unquoted.plain.out.yaml","keyword.other.template"],settings:{foreground:"#ffab70"}},{scope:"token.info-token",settings:{foreground:"#316bcd"}},{scope:"token.warn-token",settings:{foreground:"#cd9731"}},{scope:"token.error-token",settings:{foreground:"#cd3131"}},{scope:"token.debug-token",settings:{foreground:"#800080"}},{scope:["punctuation.definition.arguments","punctuation.definition.dict","punctuation.separator","meta.function-call.arguments"],settings:{foreground:"#bbbbbb"}},{name:"[Custom] Markdown links",scope:"markup.underline.link",settings:{foreground:"#ffab70"}},{name:"[Custom] Markdown list",scope:["beginning.punctuation.definition.list.markdown"],settings:{foreground:"#FF7A84"}},{name:"[Custom] Markdown punctuation definition",scope:"punctuation.definition.metadata.markdown",settings:{foreground:"#ffab70"}},{name:"[Custom] Markdown punctuation definition brackets",scope:["punctuation.definition.string.begin.markdown","punctuation.definition.string.end.markdown"],settings:{foreground:"#79b8ff"}}],semanticHighlighting:true}; + +export { minDark as default }; diff --git a/docs/shiki/dist/themes/min-light-76cd360d.mjs b/docs/shiki/dist/themes/min-light-76cd360d.mjs new file mode 100644 index 00000000..17d9311f --- /dev/null +++ b/docs/shiki/dist/themes/min-light-76cd360d.mjs @@ -0,0 +1,3 @@ +var minLight = {name:"min-light",type:"light",colors:{"activityBar.background":"#f6f6f6","activityBar.foreground":"#9E9E9E","activityBarBadge.background":"#616161","badge.background":"#E0E0E0","badge.foreground":"#616161","button.background":"#757575","button.hoverBackground":"#616161","editor.background":"#ffffff","editor.foreground":"#212121","editor.lineHighlightBorder":"#f2f2f2","editorBracketMatch.background":"#E7F3FF","editorBracketMatch.border":"#c8e1ff","editorGroupHeader.tabsBackground":"#f6f6f6","editorGroupHeader.tabsBorder":"#fff","editorIndentGuide.background":"#EEE","editorLineNumber.activeForeground":"#757575","editorLineNumber.foreground":"#CCC","editorSuggestWidget.background":"#F3F3F3","extensionButton.prominentBackground":"#000000AA","extensionButton.prominentHoverBackground":"#000000BB",focusBorder:"#D0D0D0",foreground:"#757575","gitDecoration.ignoredResourceForeground":"#AAAAAA","input.border":"#E9E9E9","list.activeSelectionBackground":"#EEE","list.activeSelectionForeground":"#212121","list.focusBackground":"#ddd","list.focusForeground":"#212121","list.highlightForeground":"#212121","list.inactiveSelectionBackground":"#E0E0E0","list.inactiveSelectionForeground":"#212121","panel.background":"#fff","panel.border":"#f4f4f4","panelTitle.activeBorder":"#fff","panelTitle.inactiveForeground":"#BDBDBD","peekView.border":"#E0E0E0","peekViewEditor.background":"#f8f8f8","pickerGroup.foreground":"#000","progressBar.background":"#000","scrollbar.shadow":"#FFF","sideBar.background":"#f6f6f6","sideBar.border":"#f6f6f6","sideBarSectionHeader.background":"#EEE","sideBarTitle.foreground":"#999","statusBar.background":"#f6f6f6","statusBar.border":"#f6f6f6","statusBar.debuggingBackground":"#f6f6f6","statusBar.foreground":"#7E7E7E","statusBar.noFolderBackground":"#f6f6f6","statusBarItem.remoteForeground":"#7E7E7E","statusBarItem.remoteBackground":"#f6f6f600","statusBarItem.prominentBackground":"#0000001a","tab.activeBorder":"#FFF","tab.activeForeground":"#424242","tab.border":"#f6f6f6","tab.inactiveBackground":"#f6f6f6","tab.inactiveForeground":"#BDBDBD","tab.unfocusedActiveBorder":"#fff","terminal.ansiBlack":"#333","terminal.ansiBlue":"#e0e0e0","terminal.ansiBrightBlack":"#a1a1a1","terminal.ansiBrightBlue":"#6871ff","terminal.ansiBrightCyan":"#57d9ad","terminal.ansiBrightGreen":"#a3d900","terminal.ansiBrightMagenta":"#a37acc","terminal.ansiBrightRed":"#d6656a","terminal.ansiBrightWhite":"#7E7E7E","terminal.ansiBrightYellow":"#e7c547","terminal.ansiCyan":"#4dbf99","terminal.ansiGreen":"#77cc00","terminal.ansiMagenta":"#9966cc","terminal.ansiRed":"#D32F2F","terminal.ansiWhite":"#c7c7c7","terminal.ansiYellow":"#f29718","terminal.background":"#fff","textLink.activeForeground":"#000","textLink.foreground":"#000","titleBar.activeBackground":"#f6f6f6","titleBar.border":"#FFFFFF00","titleBar.inactiveBackground":"#f6f6f6","inputOption.activeBackground":"#EDEDED","debugIcon.continueForeground":"#6f42c1","debugIcon.disconnectForeground":"#6f42c1","debugIcon.pauseForeground":"#6f42c1","debugIcon.restartForeground":"#1976D2","debugIcon.startForeground":"#1976D2","debugIcon.stepBackForeground":"#6f42c1","debugIcon.stepIntoForeground":"#6f42c1","debugIcon.stepOutForeground":"#6f42c1","debugIcon.stepOverForeground":"#6f42c1","debugIcon.stopForeground":"#1976D2","debugIcon.breakpointCurrentStackframeForeground":"#1976D2","debugIcon.breakpointDisabledForeground":"#848484","debugIcon.breakpointForeground":"#D32F2F","debugIcon.breakpointStackframeForeground":"#1976D2","symbolIcon.classForeground":"#dd8500","symbolIcon.enumeratorForeground":"#dd8500","symbolIcon.eventForeground":"#dd8500","symbolIcon.methodForeground":"#6f42c1","symbolIcon.constructorForeground":"#6f42c1","symbolIcon.functionForeground":"#6f42c1","symbolIcon.fieldForeground":"#1976D2","symbolIcon.interfaceForeground":"#1976D2","symbolIcon.variableForeground":"#1976D2","symbolIcon.enumeratorMemberForeground":"#1976D2","diffEditor.removedTextBackground":"#e597af52","diffEditor.insertedTextBackground":"#b7e7a44b"},tokenColors:[{settings:{foreground:"#24292eff"}},{scope:["keyword.operator.accessor","meta.group.braces.round.function.arguments","meta.template.expression","markup.fenced_code meta.embedded.block"],settings:{foreground:"#24292eff"}},{scope:"emphasis",settings:{fontStyle:"italic"}},{scope:["strong","markup.heading.markdown","markup.bold.markdown"],settings:{fontStyle:"bold"}},{scope:["markup.italic.markdown"],settings:{fontStyle:"italic"}},{scope:"meta.link.inline.markdown",settings:{fontStyle:"underline",foreground:"#1976D2"}},{scope:["string","markup.fenced_code","markup.inline"],settings:{foreground:"#2b5581"}},{scope:["comment","string.quoted.docstring.multi"],settings:{foreground:"#c2c3c5"}},{scope:["constant.numeric","constant.language","constant.other.placeholder","constant.character.format.placeholder","variable.language.this","variable.other.object","variable.other.class","variable.other.constant","meta.property-name","meta.property-value","support"],settings:{foreground:"#1976D2"}},{scope:["keyword","storage.modifier","storage.type","storage.control.clojure","entity.name.function.clojure","entity.name.tag.yaml","support.function.node","support.type.property-name.json","punctuation.separator.key-value","punctuation.definition.template-expression"],settings:{foreground:"#D32F2F"}},{scope:"variable.parameter.function",settings:{foreground:"#FF9800"}},{scope:["support.function","entity.name.type","entity.other.inherited-class","meta.function-call","meta.instance.constructor","entity.other.attribute-name","entity.name.function","constant.keyword.clojure"],settings:{foreground:"#6f42c1"}},{scope:["entity.name.tag","string.quoted","string.regexp","string.interpolated","string.template","string.unquoted.plain.out.yaml","keyword.other.template"],settings:{foreground:"#22863a"}},{scope:"token.info-token",settings:{foreground:"#316bcd"}},{scope:"token.warn-token",settings:{foreground:"#cd9731"}},{scope:"token.error-token",settings:{foreground:"#cd3131"}},{scope:"token.debug-token",settings:{foreground:"#800080"}},{scope:["strong","markup.heading.markdown","markup.bold.markdown"],settings:{foreground:"#6f42c1"}},{scope:["punctuation.definition.arguments","punctuation.definition.dict","punctuation.separator","meta.function-call.arguments"],settings:{foreground:"#212121"}},{name:"[Custom] Markdown links",scope:["markup.underline.link","punctuation.definition.metadata.markdown"],settings:{foreground:"#22863a"}},{name:"[Custom] Markdown list",scope:["beginning.punctuation.definition.list.markdown"],settings:{foreground:"#6f42c1"}},{name:"[Custom] Markdown punctuation definition brackets",scope:["punctuation.definition.string.begin.markdown","punctuation.definition.string.end.markdown","string.other.link.title.markdown","string.other.link.description.markdown"],settings:{foreground:"#d32f2f"}}]}; + +export { minLight as default }; diff --git a/docs/shiki/dist/themes/monokai-cdbd8f53.mjs b/docs/shiki/dist/themes/monokai-cdbd8f53.mjs new file mode 100644 index 00000000..d5967341 --- /dev/null +++ b/docs/shiki/dist/themes/monokai-cdbd8f53.mjs @@ -0,0 +1,3 @@ +var monokai = {type:"dark",colors:{"dropdown.background":"#414339","list.activeSelectionBackground":"#75715E","quickInputList.focusBackground":"#414339","dropdown.listBackground":"#1e1f1c","list.inactiveSelectionBackground":"#414339","list.hoverBackground":"#3e3d32","list.dropBackground":"#414339","list.highlightForeground":"#f8f8f2","button.background":"#75715E","editor.background":"#272822","editor.foreground":"#f8f8f2","selection.background":"#878b9180","editor.selectionHighlightBackground":"#575b6180","editor.selectionBackground":"#878b9180","minimap.selectionHighlight":"#878b9180","editor.wordHighlightBackground":"#4a4a7680","editor.wordHighlightStrongBackground":"#6a6a9680","editor.lineHighlightBackground":"#3e3d32","editorLineNumber.activeForeground":"#c2c2bf","editorCursor.foreground":"#f8f8f0","editorWhitespace.foreground":"#464741","editorIndentGuide.background":"#464741","editorIndentGuide.activeBackground":"#767771","editorGroupHeader.tabsBackground":"#1e1f1c","editorGroup.dropBackground":"#41433980","tab.inactiveBackground":"#34352f","tab.border":"#1e1f1c","tab.inactiveForeground":"#ccccc7","tab.lastPinnedBorder":"#414339","widget.shadow":"#00000098","progressBar.background":"#75715E","badge.background":"#75715E","badge.foreground":"#f8f8f2","editorLineNumber.foreground":"#90908a","panelTitle.activeForeground":"#f8f8f2","panelTitle.activeBorder":"#75715E","panelTitle.inactiveForeground":"#75715E","panel.border":"#414339","settings.focusedRowBackground":"#4143395A","titleBar.activeBackground":"#1e1f1c","statusBar.background":"#414339","statusBar.noFolderBackground":"#414339","statusBar.debuggingBackground":"#75715E","statusBarItem.remoteBackground":"#AC6218","ports.iconRunningProcessForeground":"#ccccc7","activityBar.background":"#272822","activityBar.foreground":"#f8f8f2","sideBar.background":"#1e1f1c","sideBarSectionHeader.background":"#272822","menu.background":"#1e1f1c","menu.foreground":"#cccccc","pickerGroup.foreground":"#75715E","input.background":"#414339","inputOption.activeBorder":"#75715E",focusBorder:"#99947c","editorWidget.background":"#1e1f1c","debugToolBar.background":"#1e1f1c","diffEditor.insertedTextBackground":"#4b661680","diffEditor.removedTextBackground":"#90274A70","inputValidation.errorBackground":"#90274A","inputValidation.errorBorder":"#f92672","inputValidation.warningBackground":"#848528","inputValidation.warningBorder":"#e2e22e","inputValidation.infoBackground":"#546190","inputValidation.infoBorder":"#819aff","editorHoverWidget.background":"#414339","editorHoverWidget.border":"#75715E","editorSuggestWidget.background":"#272822","editorSuggestWidget.border":"#75715E","editorGroup.border":"#34352f","peekView.border":"#75715E","peekViewEditor.background":"#272822","peekViewResult.background":"#1e1f1c","peekViewTitle.background":"#1e1f1c","peekViewResult.selectionBackground":"#414339","peekViewResult.matchHighlightBackground":"#75715E","peekViewEditor.matchHighlightBackground":"#75715E","terminal.ansiBlack":"#333333","terminal.ansiRed":"#C4265E","terminal.ansiGreen":"#86B42B","terminal.ansiYellow":"#B3B42B","terminal.ansiBlue":"#6A7EC8","terminal.ansiMagenta":"#8C6BC8","terminal.ansiCyan":"#56ADBC","terminal.ansiWhite":"#e3e3dd","terminal.ansiBrightBlack":"#666666","terminal.ansiBrightRed":"#f92672","terminal.ansiBrightGreen":"#A6E22E","terminal.ansiBrightYellow":"#e2e22e","terminal.ansiBrightBlue":"#819aff","terminal.ansiBrightMagenta":"#AE81FF","terminal.ansiBrightCyan":"#66D9EF","terminal.ansiBrightWhite":"#f8f8f2"},tokenColors:[{settings:{foreground:"#F8F8F2"}},{scope:["meta.embedded","source.groovy.embedded","string meta.image.inline.markdown"],settings:{foreground:"#F8F8F2"}},{name:"Comment",scope:"comment",settings:{foreground:"#88846f"}},{name:"String",scope:"string",settings:{foreground:"#E6DB74"}},{name:"Template Definition",scope:["punctuation.definition.template-expression","punctuation.section.embedded"],settings:{foreground:"#F92672"}},{name:"Reset JavaScript string interpolation expression",scope:["meta.template.expression"],settings:{foreground:"#F8F8F2"}},{name:"Number",scope:"constant.numeric",settings:{foreground:"#AE81FF"}},{name:"Built-in constant",scope:"constant.language",settings:{foreground:"#AE81FF"}},{name:"User-defined constant",scope:"constant.character, constant.other",settings:{foreground:"#AE81FF"}},{name:"Variable",scope:"variable",settings:{fontStyle:"",foreground:"#F8F8F2"}},{name:"Keyword",scope:"keyword",settings:{foreground:"#F92672"}},{name:"Storage",scope:"storage",settings:{fontStyle:"",foreground:"#F92672"}},{name:"Storage type",scope:"storage.type",settings:{fontStyle:"italic",foreground:"#66D9EF"}},{name:"Class name",scope:"entity.name.type, entity.name.class, entity.name.namespace, entity.name.scope-resolution",settings:{fontStyle:"underline",foreground:"#A6E22E"}},{name:"Inherited class",scope:"entity.other.inherited-class",settings:{fontStyle:"italic underline",foreground:"#A6E22E"}},{name:"Function name",scope:"entity.name.function",settings:{fontStyle:"",foreground:"#A6E22E"}},{name:"Function argument",scope:"variable.parameter",settings:{fontStyle:"italic",foreground:"#FD971F"}},{name:"Tag name",scope:"entity.name.tag",settings:{fontStyle:"",foreground:"#F92672"}},{name:"Tag attribute",scope:"entity.other.attribute-name",settings:{fontStyle:"",foreground:"#A6E22E"}},{name:"Library function",scope:"support.function",settings:{fontStyle:"",foreground:"#66D9EF"}},{name:"Library constant",scope:"support.constant",settings:{fontStyle:"",foreground:"#66D9EF"}},{name:"Library class/type",scope:"support.type, support.class",settings:{fontStyle:"italic",foreground:"#66D9EF"}},{name:"Library variable",scope:"support.other.variable",settings:{fontStyle:""}},{name:"Invalid",scope:"invalid",settings:{fontStyle:"",foreground:"#F44747"}},{name:"Invalid deprecated",scope:"invalid.deprecated",settings:{foreground:"#F44747"}},{name:"JSON String",scope:"meta.structure.dictionary.json string.quoted.double.json",settings:{foreground:"#CFCFC2"}},{name:"diff.header",scope:"meta.diff, meta.diff.header",settings:{foreground:"#75715E"}},{name:"diff.deleted",scope:"markup.deleted",settings:{foreground:"#F92672"}},{name:"diff.inserted",scope:"markup.inserted",settings:{foreground:"#A6E22E"}},{name:"diff.changed",scope:"markup.changed",settings:{foreground:"#E6DB74"}},{scope:"constant.numeric.line-number.find-in-files - match",settings:{foreground:"#AE81FFA0"}},{scope:"entity.name.filename.find-in-files",settings:{foreground:"#E6DB74"}},{name:"Markup Quote",scope:"markup.quote",settings:{foreground:"#F92672"}},{name:"Markup Lists",scope:"markup.list",settings:{foreground:"#E6DB74"}},{name:"Markup Styling",scope:"markup.bold, markup.italic",settings:{foreground:"#66D9EF"}},{name:"Markup Inline",scope:"markup.inline.raw",settings:{fontStyle:"",foreground:"#FD971F"}},{name:"Markup Headings",scope:"markup.heading",settings:{foreground:"#A6E22E"}},{name:"Markup Setext Header",scope:"markup.heading.setext",settings:{foreground:"#A6E22E",fontStyle:"bold"}},{name:"Markup Headings",scope:"markup.heading.markdown",settings:{fontStyle:"bold"}},{name:"Markdown Quote",scope:"markup.quote.markdown",settings:{fontStyle:"italic",foreground:"#75715E"}},{name:"Markdown Bold",scope:"markup.bold.markdown",settings:{fontStyle:"bold"}},{name:"Markdown Link Title/Description",scope:"string.other.link.title.markdown,string.other.link.description.markdown",settings:{foreground:"#AE81FF"}},{name:"Markdown Underline Link/Image",scope:"markup.underline.link.markdown,markup.underline.link.image.markdown",settings:{foreground:"#E6DB74"}},{name:"Markdown Emphasis",scope:"markup.italic.markdown",settings:{fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{name:"Markdown Punctuation Definition Link",scope:"markup.list.unnumbered.markdown, markup.list.numbered.markdown",settings:{foreground:"#f8f8f2"}},{name:"Markdown List Punctuation",scope:["punctuation.definition.list.begin.markdown"],settings:{foreground:"#A6E22E"}},{scope:"token.info-token",settings:{foreground:"#6796e6"}},{scope:"token.warn-token",settings:{foreground:"#cd9731"}},{scope:"token.error-token",settings:{foreground:"#f44747"}},{scope:"token.debug-token",settings:{foreground:"#b267e6"}},{name:"this.self",scope:"variable.language",settings:{foreground:"#FD971F"}}],semanticHighlighting:true,name:"monokai"}; + +export { monokai as default }; diff --git a/docs/shiki/dist/themes/nord-5cc6e909.mjs b/docs/shiki/dist/themes/nord-5cc6e909.mjs new file mode 100644 index 00000000..0e5e51ac --- /dev/null +++ b/docs/shiki/dist/themes/nord-5cc6e909.mjs @@ -0,0 +1,3 @@ +var nord = {name:"nord",type:"dark",semanticHighlighting:true,colors:{focusBorder:"#3b4252",foreground:"#d8dee9","activityBar.background":"#2e3440","activityBar.dropBackground":"#3b4252","activityBar.foreground":"#d8dee9","activityBar.activeBorder":"#88c0d0","activityBar.activeBackground":"#3b4252","activityBarBadge.background":"#88c0d0","activityBarBadge.foreground":"#2e3440","badge.foreground":"#2e3440","badge.background":"#88c0d0","button.background":"#88c0d0ee","button.foreground":"#2e3440","button.hoverBackground":"#88c0d0","button.secondaryBackground":"#434c5e","button.secondaryForeground":"#d8dee9","button.secondaryHoverBackground":"#4c566a","charts.red":"#bf616a","charts.blue":"#81a1c1","charts.yellow":"#ebcb8b","charts.orange":"#d08770","charts.green":"#a3be8c","charts.purple":"#b48ead","charts.foreground":"#d8dee9","charts.lines":"#88c0d0","debugConsole.infoForeground":"#88c0d0","debugConsole.warningForeground":"#ebcb8b","debugConsole.errorForeground":"#bf616a","debugConsole.sourceForeground":"#616e88","debugConsoleInputIcon.foreground":"#81a1c1","debugExceptionWidget.background":"#4c566a","debugExceptionWidget.border":"#2e3440","debugToolBar.background":"#3b4252",descriptionForeground:"#d8dee9e6","diffEditor.insertedTextBackground":"#81a1c133","diffEditor.removedTextBackground":"#bf616a4d","dropdown.background":"#3b4252","dropdown.border":"#3b4252","dropdown.foreground":"#d8dee9","editorActiveLineNumber.foreground":"#d8dee9cc","editorCursor.foreground":"#d8dee9","editorHint.border":"#ebcb8b00","editorHint.foreground":"#ebcb8b","editorIndentGuide.background":"#434c5eb3","editorIndentGuide.activeBackground":"#4c566a","editorInlayHint.background":"#434c5e","editorInlayHint.foreground":"#d8dee9","editorLineNumber.foreground":"#4c566a","editorLineNumber.activeForeground":"#d8dee9","editorWhitespace.foreground":"#4c566ab3","editorWidget.background":"#2e3440","editorWidget.border":"#3b4252","editor.background":"#2e3440","editor.foreground":"#d8dee9","editor.hoverHighlightBackground":"#3b4252","editor.findMatchBackground":"#88c0d066","editor.findMatchHighlightBackground":"#88c0d033","editor.findRangeHighlightBackground":"#88c0d033","editor.lineHighlightBackground":"#3b4252","editor.lineHighlightBorder":"#3b4252","editor.inactiveSelectionBackground":"#434c5ecc","editor.inlineValuesBackground":"#4c566a","editor.inlineValuesForeground":"#eceff4","editor.selectionBackground":"#434c5ecc","editor.selectionHighlightBackground":"#434c5ecc","editor.rangeHighlightBackground":"#434c5e52","editor.wordHighlightBackground":"#81a1c166","editor.wordHighlightStrongBackground":"#81a1c199","editor.stackFrameHighlightBackground":"#5e81ac","editor.focusedStackFrameHighlightBackground":"#5e81ac","editorError.foreground":"#bf616a","editorError.border":"#bf616a00","editorWarning.foreground":"#ebcb8b","editorWarning.border":"#ebcb8b00","editorBracketMatch.background":"#2e344000","editorBracketMatch.border":"#88c0d0","editorBracketHighlight.foreground1":"#8fbcbb","editorBracketHighlight.foreground2":"#88c0d0","editorBracketHighlight.foreground3":"#81a1c1","editorBracketHighlight.foreground4":"#5e81ac","editorBracketHighlight.foreground5":"#8fbcbb","editorBracketHighlight.foreground6":"#88c0d0","editorBracketHighlight.unexpectedBracket.foreground":"#bf616a","editorCodeLens.foreground":"#4c566a","editorGroup.background":"#2e3440","editorGroup.border":"#3b425201","editorGroup.dropBackground":"#3b425299","editorGroupHeader.border":"#3b425200","editorGroupHeader.noTabsBackground":"#2e3440","editorGroupHeader.tabsBackground":"#2e3440","editorGroupHeader.tabsBorder":"#3b425200","editorGutter.background":"#2e3440","editorGutter.modifiedBackground":"#ebcb8b","editorGutter.addedBackground":"#a3be8c","editorGutter.deletedBackground":"#bf616a","editorHoverWidget.background":"#3b4252","editorHoverWidget.border":"#3b4252","editorLink.activeForeground":"#88c0d0","editorMarkerNavigation.background":"#5e81acc0","editorMarkerNavigationError.background":"#bf616ac0","editorMarkerNavigationWarning.background":"#ebcb8bc0","editorOverviewRuler.border":"#3b4252","editorOverviewRuler.currentContentForeground":"#3b4252","editorOverviewRuler.incomingContentForeground":"#3b4252","editorOverviewRuler.findMatchForeground":"#88c0d066","editorOverviewRuler.rangeHighlightForeground":"#88c0d066","editorOverviewRuler.selectionHighlightForeground":"#88c0d066","editorOverviewRuler.wordHighlightForeground":"#88c0d066","editorOverviewRuler.wordHighlightStrongForeground":"#88c0d066","editorOverviewRuler.modifiedForeground":"#ebcb8b","editorOverviewRuler.addedForeground":"#a3be8c","editorOverviewRuler.deletedForeground":"#bf616a","editorOverviewRuler.errorForeground":"#bf616a","editorOverviewRuler.warningForeground":"#ebcb8b","editorOverviewRuler.infoForeground":"#81a1c1","editorRuler.foreground":"#434c5e","editorSuggestWidget.background":"#2e3440","editorSuggestWidget.border":"#3b4252","editorSuggestWidget.foreground":"#d8dee9","editorSuggestWidget.focusHighlightForeground":"#88c0d0","editorSuggestWidget.highlightForeground":"#88c0d0","editorSuggestWidget.selectedBackground":"#434c5e","editorSuggestWidget.selectedForeground":"#d8dee9","extensionButton.prominentForeground":"#d8dee9","extensionButton.prominentBackground":"#434c5e","extensionButton.prominentHoverBackground":"#4c566a",errorForeground:"#bf616a","gitDecoration.modifiedResourceForeground":"#ebcb8b","gitDecoration.deletedResourceForeground":"#bf616a","gitDecoration.untrackedResourceForeground":"#a3be8c","gitDecoration.ignoredResourceForeground":"#d8dee966","gitDecoration.conflictingResourceForeground":"#5e81ac","gitDecoration.submoduleResourceForeground":"#8fbcbb","gitDecoration.stageDeletedResourceForeground":"#bf616a","gitDecoration.stageModifiedResourceForeground":"#ebcb8b","input.background":"#3b4252","input.foreground":"#d8dee9","input.placeholderForeground":"#d8dee999","input.border":"#3b4252","inputOption.activeBackground":"#5e81ac","inputOption.activeBorder":"#5e81ac","inputOption.activeForeground":"#eceff4","inputValidation.errorBackground":"#bf616a","inputValidation.errorBorder":"#bf616a","inputValidation.infoBackground":"#81a1c1","inputValidation.infoBorder":"#81a1c1","inputValidation.warningBackground":"#d08770","inputValidation.warningBorder":"#d08770","keybindingLabel.background":"#4c566a","keybindingLabel.border":"#4c566a","keybindingLabel.bottomBorder":"#4c566a","keybindingLabel.foreground":"#d8dee9","list.activeSelectionBackground":"#88c0d0","list.activeSelectionForeground":"#2e3440","list.inactiveSelectionBackground":"#434c5e","list.inactiveSelectionForeground":"#d8dee9","list.inactiveFocusBackground":"#434c5ecc","list.hoverForeground":"#eceff4","list.focusForeground":"#d8dee9","list.focusBackground":"#88c0d099","list.focusHighlightForeground":"#eceff4","list.hoverBackground":"#3b4252","list.dropBackground":"#88c0d099","list.highlightForeground":"#88c0d0","list.errorForeground":"#bf616a","list.warningForeground":"#ebcb8b","merge.currentHeaderBackground":"#81a1c166","merge.currentContentBackground":"#81a1c14d","merge.incomingHeaderBackground":"#8fbcbb66","merge.incomingContentBackground":"#8fbcbb4d","merge.border":"#3b425200","minimap.background":"#2e3440","minimap.errorHighlight":"#bf616acc","minimap.findMatchHighlight":"#88c0d0","minimap.selectionHighlight":"#88c0d0cc","minimap.warningHighlight":"#ebcb8bcc","minimapGutter.addedBackground":"#a3be8c","minimapGutter.deletedBackground":"#bf616a","minimapGutter.modifiedBackground":"#ebcb8b","minimapSlider.activeBackground":"#434c5eaa","minimapSlider.background":"#434c5e99","minimapSlider.hoverBackground":"#434c5eaa","notification.background":"#3b4252","notification.buttonBackground":"#434c5e","notification.buttonForeground":"#d8dee9","notification.buttonHoverBackground":"#4c566a","notification.errorBackground":"#bf616a","notification.errorForeground":"#2e3440","notification.foreground":"#d8dee9","notification.infoBackground":"#88c0d0","notification.infoForeground":"#2e3440","notification.warningBackground":"#ebcb8b","notification.warningForeground":"#2e3440","notificationCenter.border":"#3b425200","notificationCenterHeader.background":"#2e3440","notificationCenterHeader.foreground":"#88c0d0","notificationLink.foreground":"#88c0d0","notifications.background":"#3b4252","notifications.border":"#2e3440","notifications.foreground":"#d8dee9","notificationToast.border":"#3b425200","panel.background":"#2e3440","panel.border":"#3b4252","panelTitle.activeBorder":"#88c0d000","panelTitle.activeForeground":"#88c0d0","panelTitle.inactiveForeground":"#d8dee9","peekView.border":"#4c566a","peekViewEditor.background":"#2e3440","peekViewEditorGutter.background":"#2e3440","peekViewEditor.matchHighlightBackground":"#88c0d04d","peekViewResult.background":"#2e3440","peekViewResult.fileForeground":"#88c0d0","peekViewResult.lineForeground":"#d8dee966","peekViewResult.matchHighlightBackground":"#88c0d0cc","peekViewResult.selectionBackground":"#434c5e","peekViewResult.selectionForeground":"#d8dee9","peekViewTitle.background":"#3b4252","peekViewTitleDescription.foreground":"#d8dee9","peekViewTitleLabel.foreground":"#88c0d0","pickerGroup.border":"#3b4252","pickerGroup.foreground":"#88c0d0","progressBar.background":"#88c0d0","quickInputList.focusBackground":"#88c0d0","quickInputList.focusForeground":"#2e3440","sash.hoverBorder":"#88c0d0","scrollbar.shadow":"#00000066","scrollbarSlider.activeBackground":"#434c5eaa","scrollbarSlider.background":"#434c5e99","scrollbarSlider.hoverBackground":"#434c5eaa","selection.background":"#88c0d099","sideBar.background":"#2e3440","sideBar.foreground":"#d8dee9","sideBar.border":"#3b4252","sideBarSectionHeader.background":"#3b4252","sideBarSectionHeader.foreground":"#d8dee9","sideBarTitle.foreground":"#d8dee9","statusBar.background":"#3b4252","statusBar.debuggingBackground":"#5e81ac","statusBar.debuggingForeground":"#d8dee9","statusBar.noFolderForeground":"#d8dee9","statusBar.noFolderBackground":"#3b4252","statusBar.foreground":"#d8dee9","statusBarItem.activeBackground":"#4c566a","statusBarItem.hoverBackground":"#434c5e","statusBarItem.prominentBackground":"#3b4252","statusBarItem.prominentHoverBackground":"#434c5e","statusBarItem.errorBackground":"#3b4252","statusBarItem.errorForeground":"#bf616a","statusBarItem.warningBackground":"#ebcb8b","statusBarItem.warningForeground":"#2e3440","statusBar.border":"#3b425200","tab.activeBackground":"#3b4252","tab.activeForeground":"#d8dee9","tab.border":"#3b425200","tab.activeBorder":"#88c0d000","tab.unfocusedActiveBorder":"#88c0d000","tab.inactiveBackground":"#2e3440","tab.inactiveForeground":"#d8dee966","tab.unfocusedActiveForeground":"#d8dee999","tab.unfocusedInactiveForeground":"#d8dee966","tab.hoverBackground":"#3b4252cc","tab.unfocusedHoverBackground":"#3b4252b3","tab.hoverBorder":"#88c0d000","tab.unfocusedHoverBorder":"#88c0d000","tab.activeBorderTop":"#88c0d000","tab.unfocusedActiveBorderTop":"#88c0d000","tab.lastPinnedBorder":"#4c566a","terminal.background":"#2e3440","terminal.foreground":"#d8dee9","terminal.ansiBlack":"#3b4252","terminal.ansiRed":"#bf616a","terminal.ansiGreen":"#a3be8c","terminal.ansiYellow":"#ebcb8b","terminal.ansiBlue":"#81a1c1","terminal.ansiMagenta":"#b48ead","terminal.ansiCyan":"#88c0d0","terminal.ansiWhite":"#e5e9f0","terminal.ansiBrightBlack":"#4c566a","terminal.ansiBrightRed":"#bf616a","terminal.ansiBrightGreen":"#a3be8c","terminal.ansiBrightYellow":"#ebcb8b","terminal.ansiBrightBlue":"#81a1c1","terminal.ansiBrightMagenta":"#b48ead","terminal.ansiBrightCyan":"#8fbcbb","terminal.ansiBrightWhite":"#eceff4","terminal.tab.activeBorder":"#88c0d0","textBlockQuote.background":"#3b4252","textBlockQuote.border":"#81a1c1","textCodeBlock.background":"#4c566a","textLink.activeForeground":"#88c0d0","textLink.foreground":"#88c0d0","textPreformat.foreground":"#8fbcbb","textSeparator.foreground":"#eceff4","titleBar.activeBackground":"#2e3440","titleBar.activeForeground":"#d8dee9","titleBar.border":"#2e344000","titleBar.inactiveBackground":"#2e3440","titleBar.inactiveForeground":"#d8dee966","tree.indentGuidesStroke":"#616e88","walkThrough.embeddedEditorBackground":"#2e3440","welcomePage.buttonBackground":"#434c5e","welcomePage.buttonHoverBackground":"#4c566a","widget.shadow":"#00000066"},tokenColors:[{settings:{foreground:"#d8dee9ff",background:"#2e3440ff"}},{scope:"emphasis",settings:{fontStyle:"italic"}},{scope:"strong",settings:{fontStyle:"bold"}},{name:"Comment",scope:"comment",settings:{foreground:"#616E88"}},{name:"Constant Character",scope:"constant.character",settings:{foreground:"#EBCB8B"}},{name:"Constant Character Escape",scope:"constant.character.escape",settings:{foreground:"#EBCB8B"}},{name:"Constant Language",scope:"constant.language",settings:{foreground:"#81A1C1"}},{name:"Constant Numeric",scope:"constant.numeric",settings:{foreground:"#B48EAD"}},{name:"Constant Regexp",scope:"constant.regexp",settings:{foreground:"#EBCB8B"}},{name:"Entity Name Class/Type",scope:["entity.name.class","entity.name.type.class"],settings:{foreground:"#8FBCBB"}},{name:"Entity Name Function",scope:"entity.name.function",settings:{foreground:"#88C0D0"}},{name:"Entity Name Tag",scope:"entity.name.tag",settings:{foreground:"#81A1C1"}},{name:"Entity Other Attribute Name",scope:"entity.other.attribute-name",settings:{foreground:"#8FBCBB"}},{name:"Entity Other Inherited Class",scope:"entity.other.inherited-class",settings:{fontStyle:"bold",foreground:"#8FBCBB"}},{name:"Invalid Deprecated",scope:"invalid.deprecated",settings:{foreground:"#D8DEE9",background:"#EBCB8B"}},{name:"Invalid Illegal",scope:"invalid.illegal",settings:{foreground:"#D8DEE9",background:"#BF616A"}},{name:"Keyword",scope:"keyword",settings:{foreground:"#81A1C1"}},{name:"Keyword Operator",scope:"keyword.operator",settings:{foreground:"#81A1C1"}},{name:"Keyword Other New",scope:"keyword.other.new",settings:{foreground:"#81A1C1"}},{name:"Markup Bold",scope:"markup.bold",settings:{fontStyle:"bold"}},{name:"Markup Changed",scope:"markup.changed",settings:{foreground:"#EBCB8B"}},{name:"Markup Deleted",scope:"markup.deleted",settings:{foreground:"#BF616A"}},{name:"Markup Inserted",scope:"markup.inserted",settings:{foreground:"#A3BE8C"}},{name:"Meta Preprocessor",scope:"meta.preprocessor",settings:{foreground:"#5E81AC"}},{name:"Punctuation",scope:"punctuation",settings:{foreground:"#ECEFF4"}},{name:"Punctuation Definition Parameters",scope:["punctuation.definition.method-parameters","punctuation.definition.function-parameters","punctuation.definition.parameters"],settings:{foreground:"#ECEFF4"}},{name:"Punctuation Definition Tag",scope:"punctuation.definition.tag",settings:{foreground:"#81A1C1"}},{name:"Punctuation Definition Comment",scope:["punctuation.definition.comment","punctuation.end.definition.comment","punctuation.start.definition.comment"],settings:{foreground:"#616E88"}},{name:"Punctuation Section",scope:"punctuation.section",settings:{foreground:"#ECEFF4"}},{name:"Punctuation Section Embedded",scope:["punctuation.section.embedded.begin","punctuation.section.embedded.end"],settings:{foreground:"#81A1C1"}},{name:"Punctuation Terminator",scope:"punctuation.terminator",settings:{foreground:"#81A1C1"}},{name:"Punctuation Variable",scope:"punctuation.definition.variable",settings:{foreground:"#81A1C1"}},{name:"Storage",scope:"storage",settings:{foreground:"#81A1C1"}},{name:"String",scope:"string",settings:{foreground:"#A3BE8C"}},{name:"String Regexp",scope:"string.regexp",settings:{foreground:"#EBCB8B"}},{name:"Support Class",scope:"support.class",settings:{foreground:"#8FBCBB"}},{name:"Support Constant",scope:"support.constant",settings:{foreground:"#81A1C1"}},{name:"Support Function",scope:"support.function",settings:{foreground:"#88C0D0"}},{name:"Support Function Construct",scope:"support.function.construct",settings:{foreground:"#81A1C1"}},{name:"Support Type",scope:"support.type",settings:{foreground:"#8FBCBB"}},{name:"Support Type Exception",scope:"support.type.exception",settings:{foreground:"#8FBCBB"}},{name:"Token Debug",scope:"token.debug-token",settings:{foreground:"#b48ead"}},{name:"Token Error",scope:"token.error-token",settings:{foreground:"#bf616a"}},{name:"Token Info",scope:"token.info-token",settings:{foreground:"#88c0d0"}},{name:"Token Warning",scope:"token.warn-token",settings:{foreground:"#ebcb8b"}},{name:"Variable",scope:"variable.other",settings:{foreground:"#D8DEE9"}},{name:"Variable Language",scope:"variable.language",settings:{foreground:"#81A1C1"}},{name:"Variable Parameter",scope:"variable.parameter",settings:{foreground:"#D8DEE9"}},{name:"[C/CPP] Punctuation Separator Pointer-Access",scope:"punctuation.separator.pointer-access.c",settings:{foreground:"#81A1C1"}},{name:"[C/CPP] Meta Preprocessor Include",scope:["source.c meta.preprocessor.include","source.c string.quoted.other.lt-gt.include"],settings:{foreground:"#8FBCBB"}},{name:"[C/CPP] Conditional Directive",scope:["source.cpp keyword.control.directive.conditional","source.cpp punctuation.definition.directive","source.c keyword.control.directive.conditional","source.c punctuation.definition.directive"],settings:{foreground:"#5E81AC",fontStyle:"bold"}},{name:"[CSS] Constant Other Color RGB Value",scope:"source.css constant.other.color.rgb-value",settings:{foreground:"#B48EAD"}},{name:"[CSS](Function) Meta Property-Value",scope:"source.css meta.property-value",settings:{foreground:"#88C0D0"}},{name:"[CSS] Media Queries",scope:["source.css keyword.control.at-rule.media","source.css keyword.control.at-rule.media punctuation.definition.keyword"],settings:{foreground:"#D08770"}},{name:"[CSS] Punctuation Definition Keyword",scope:"source.css punctuation.definition.keyword",settings:{foreground:"#81A1C1"}},{name:"[CSS] Support Type Property Name",scope:"source.css support.type.property-name",settings:{foreground:"#D8DEE9"}},{name:"[diff] Meta Range Context",scope:"source.diff meta.diff.range.context",settings:{foreground:"#8FBCBB"}},{name:"[diff] Meta Header From-File",scope:"source.diff meta.diff.header.from-file",settings:{foreground:"#8FBCBB"}},{name:"[diff] Punctuation Definition From-File",scope:"source.diff punctuation.definition.from-file",settings:{foreground:"#8FBCBB"}},{name:"[diff] Punctuation Definition Range",scope:"source.diff punctuation.definition.range",settings:{foreground:"#8FBCBB"}},{name:"[diff] Punctuation Definition Separator",scope:"source.diff punctuation.definition.separator",settings:{foreground:"#81A1C1"}},{name:"[Elixir](JakeBecker.elixir-ls) module names",scope:"entity.name.type.module.elixir",settings:{foreground:"#8FBCBB"}},{name:"[Elixir](JakeBecker.elixir-ls) module attributes",scope:"variable.other.readwrite.module.elixir",settings:{foreground:"#D8DEE9",fontStyle:"bold"}},{name:"[Elixir](JakeBecker.elixir-ls) atoms",scope:"constant.other.symbol.elixir",settings:{foreground:"#D8DEE9",fontStyle:"bold"}},{name:"[Elixir](JakeBecker.elixir-ls) modules",scope:"variable.other.constant.elixir",settings:{foreground:"#8FBCBB"}},{name:"[Go] String Format Placeholder",scope:"source.go constant.other.placeholder.go",settings:{foreground:"#EBCB8B"}},{name:"[Java](JavaDoc) Comment Block Documentation HTML Entities",scope:"source.java comment.block.documentation.javadoc punctuation.definition.entity.html",settings:{foreground:"#81A1C1"}},{name:"[Java](JavaDoc) Constant Other",scope:"source.java constant.other",settings:{foreground:"#D8DEE9"}},{name:"[Java](JavaDoc) Keyword Other Documentation",scope:"source.java keyword.other.documentation",settings:{foreground:"#8FBCBB"}},{name:"[Java](JavaDoc) Keyword Other Documentation Author",scope:"source.java keyword.other.documentation.author.javadoc",settings:{foreground:"#8FBCBB"}},{name:"[Java](JavaDoc) Keyword Other Documentation Directive/Custom",scope:["source.java keyword.other.documentation.directive","source.java keyword.other.documentation.custom"],settings:{foreground:"#8FBCBB"}},{name:"[Java](JavaDoc) Keyword Other Documentation See",scope:"source.java keyword.other.documentation.see.javadoc",settings:{foreground:"#8FBCBB"}},{name:"[Java] Meta Method-Call",scope:"source.java meta.method-call meta.method",settings:{foreground:"#88C0D0"}},{name:"[Java](JavaDoc) Meta Tag Template Link",scope:["source.java meta.tag.template.link.javadoc","source.java string.other.link.title.javadoc"],settings:{foreground:"#8FBCBB"}},{name:"[Java](JavaDoc) Meta Tag Template Value",scope:"source.java meta.tag.template.value.javadoc",settings:{foreground:"#88C0D0"}},{name:"[Java](JavaDoc) Punctuation Definition Keyword",scope:"source.java punctuation.definition.keyword.javadoc",settings:{foreground:"#8FBCBB"}},{name:"[Java](JavaDoc) Punctuation Definition Tag",scope:["source.java punctuation.definition.tag.begin.javadoc","source.java punctuation.definition.tag.end.javadoc"],settings:{foreground:"#616E88"}},{name:"[Java] Storage Modifier Import",scope:"source.java storage.modifier.import",settings:{foreground:"#8FBCBB"}},{name:"[Java] Storage Modifier Package",scope:"source.java storage.modifier.package",settings:{foreground:"#8FBCBB"}},{name:"[Java] Storage Type",scope:"source.java storage.type",settings:{foreground:"#8FBCBB"}},{name:"[Java] Storage Type Annotation",scope:"source.java storage.type.annotation",settings:{foreground:"#D08770"}},{name:"[Java] Storage Type Generic",scope:"source.java storage.type.generic",settings:{foreground:"#8FBCBB"}},{name:"[Java] Storage Type Primitive",scope:"source.java storage.type.primitive",settings:{foreground:"#81A1C1"}},{name:"[JavaScript] Decorator",scope:["source.js punctuation.decorator","source.js meta.decorator variable.other.readwrite","source.js meta.decorator entity.name.function"],settings:{foreground:"#D08770"}},{name:"[JavaScript] Meta Object-Literal Key",scope:"source.js meta.object-literal.key",settings:{foreground:"#88C0D0"}},{name:"[JavaScript](JSDoc) Storage Type Class",scope:"source.js storage.type.class.jsdoc",settings:{foreground:"#8FBCBB"}},{name:"[JavaScript] String Template Literals Punctuation",scope:["source.js string.quoted.template punctuation.quasi.element.begin","source.js string.quoted.template punctuation.quasi.element.end","source.js string.template punctuation.definition.template-expression"],settings:{foreground:"#81A1C1"}},{name:"[JavaScript] Interpolated String Template Punctuation Functions",scope:"source.js string.quoted.template meta.method-call.with-arguments",settings:{foreground:"#ECEFF4"}},{name:"[JavaScript] String Template Literal Variable",scope:["source.js string.template meta.template.expression support.variable.property","source.js string.template meta.template.expression variable.other.object"],settings:{foreground:"#D8DEE9"}},{name:"[JavaScript] Support Type Primitive",scope:"source.js support.type.primitive",settings:{foreground:"#81A1C1"}},{name:"[JavaScript] Variable Other Object",scope:"source.js variable.other.object",settings:{foreground:"#D8DEE9"}},{name:"[JavaScript] Variable Other Read-Write Alias",scope:"source.js variable.other.readwrite.alias",settings:{foreground:"#8FBCBB"}},{name:"[JavaScript] Parentheses in Template Strings",scope:["source.js meta.embedded.line meta.brace.square","source.js meta.embedded.line meta.brace.round","source.js string.quoted.template meta.brace.square","source.js string.quoted.template meta.brace.round"],settings:{foreground:"#ECEFF4"}},{name:"[HTML] Constant Character Entity",scope:"text.html.basic constant.character.entity.html",settings:{foreground:"#EBCB8B"}},{name:"[HTML] Constant Other Inline-Data",scope:"text.html.basic constant.other.inline-data",settings:{foreground:"#D08770",fontStyle:"italic"}},{name:"[HTML] Meta Tag SGML Doctype",scope:"text.html.basic meta.tag.sgml.doctype",settings:{foreground:"#5E81AC"}},{name:"[HTML] Punctuation Definition Entity",scope:"text.html.basic punctuation.definition.entity",settings:{foreground:"#81A1C1"}},{name:"[INI] Entity Name Section Group-Title",scope:"source.properties entity.name.section.group-title.ini",settings:{foreground:"#88C0D0"}},{name:"[INI] Punctuation Separator Key-Value",scope:"source.properties punctuation.separator.key-value.ini",settings:{foreground:"#81A1C1"}},{name:"[Markdown] Markup Fenced Code Block",scope:["text.html.markdown markup.fenced_code.block","text.html.markdown markup.fenced_code.block punctuation.definition"],settings:{foreground:"#8FBCBB"}},{name:"[Markdown] Markup Heading",scope:"markup.heading",settings:{foreground:"#88C0D0"}},{name:"[Markdown] Markup Inline",scope:["text.html.markdown markup.inline.raw","text.html.markdown markup.inline.raw punctuation.definition.raw"],settings:{foreground:"#8FBCBB"}},{name:"[Markdown] Markup Italic",scope:"text.html.markdown markup.italic",settings:{fontStyle:"italic"}},{name:"[Markdown] Markup Link",scope:"text.html.markdown markup.underline.link",settings:{fontStyle:"underline"}},{name:"[Markdown] Markup List Numbered/Unnumbered",scope:"text.html.markdown beginning.punctuation.definition.list",settings:{foreground:"#81A1C1"}},{name:"[Markdown] Markup Quote Punctuation Definition",scope:"text.html.markdown beginning.punctuation.definition.quote",settings:{foreground:"#8FBCBB"}},{name:"[Markdown] Markup Quote Punctuation Definition",scope:"text.html.markdown markup.quote",settings:{foreground:"#616E88"}},{name:"[Markdown] Markup Math Constant",scope:"text.html.markdown constant.character.math.tex",settings:{foreground:"#81A1C1"}},{name:"[Markdown] Markup Math Definition Marker",scope:["text.html.markdown punctuation.definition.math.begin","text.html.markdown punctuation.definition.math.end"],settings:{foreground:"#5E81AC"}},{name:"[Markdown] Markup Math Function Definition Marker",scope:"text.html.markdown punctuation.definition.function.math.tex",settings:{foreground:"#88C0D0"}},{name:"[Markdown] Markup Math Operator",scope:"text.html.markdown punctuation.math.operator.latex",settings:{foreground:"#81A1C1"}},{name:"[Markdown] Punctuation Definition Heading",scope:"text.html.markdown punctuation.definition.heading",settings:{foreground:"#81A1C1"}},{name:"[Markdown] Punctuation Definition Constant/String",scope:["text.html.markdown punctuation.definition.constant","text.html.markdown punctuation.definition.string"],settings:{foreground:"#81A1C1"}},{name:"[Markdown] String Other Link Description/Title",scope:["text.html.markdown constant.other.reference.link","text.html.markdown string.other.link.description","text.html.markdown string.other.link.title"],settings:{foreground:"#88C0D0"}},{name:"[Perl] Perl Sigils",scope:"source.perl punctuation.definition.variable",settings:{foreground:"#D8DEE9"}},{name:"[PHP] Meta Function-Call Object",scope:["source.php meta.function-call","source.php meta.function-call.object"],settings:{foreground:"#88C0D0"}},{name:"[Python] Decorator",scope:["source.python entity.name.function.decorator","source.python meta.function.decorator support.type"],settings:{foreground:"#D08770"}},{name:"[Python] Function Call",scope:"source.python meta.function-call.generic",settings:{foreground:"#88C0D0"}},{name:"[Python] Support Type",scope:"source.python support.type",settings:{foreground:"#88C0D0"}},{name:"[Python] Function Parameter",scope:["source.python variable.parameter.function.language"],settings:{foreground:"#D8DEE9"}},{name:"[Python] Function Parameter Special",scope:["source.python meta.function.parameters variable.parameter.function.language.special.self"],settings:{foreground:"#81A1C1"}},{name:"[Rust] Entity types",scope:"source.rust entity.name.type",settings:{foreground:"#8FBCBB"}},{name:"[Rust] Macro",scope:"source.rust meta.macro entity.name.function",settings:{fontStyle:"bold",foreground:"#88C0D0"}},{name:"[Rust] Attributes",scope:["source.rust meta.attribute","source.rust meta.attribute punctuation","source.rust meta.attribute keyword.operator"],settings:{foreground:"#5E81AC"}},{name:"[Rust] Traits",scope:"source.rust entity.name.type.trait",settings:{fontStyle:"bold"}},{name:"[Rust] Interpolation Bracket Curly",scope:"source.rust punctuation.definition.interpolation",settings:{foreground:"#EBCB8B"}},{name:"[SCSS] Punctuation Definition Interpolation Bracket Curly",scope:["source.css.scss punctuation.definition.interpolation.begin.bracket.curly","source.css.scss punctuation.definition.interpolation.end.bracket.curly"],settings:{foreground:"#81A1C1"}},{name:"[SCSS] Variable Interpolation",scope:"source.css.scss variable.interpolation",settings:{foreground:"#D8DEE9",fontStyle:"italic"}},{name:"[TypeScript] Decorators",scope:["source.ts punctuation.decorator","source.ts meta.decorator variable.other.readwrite","source.ts meta.decorator entity.name.function","source.tsx punctuation.decorator","source.tsx meta.decorator variable.other.readwrite","source.tsx meta.decorator entity.name.function"],settings:{foreground:"#D08770"}},{name:"[TypeScript] Object-literal keys",scope:["source.ts meta.object-literal.key","source.tsx meta.object-literal.key"],settings:{foreground:"#D8DEE9"}},{name:"[TypeScript] Object-literal functions",scope:["source.ts meta.object-literal.key entity.name.function","source.tsx meta.object-literal.key entity.name.function"],settings:{foreground:"#88C0D0"}},{name:"[TypeScript] Type/Class",scope:["source.ts support.class","source.ts support.type","source.ts entity.name.type","source.ts entity.name.class","source.tsx support.class","source.tsx support.type","source.tsx entity.name.type","source.tsx entity.name.class"],settings:{foreground:"#8FBCBB"}},{name:"[TypeScript] Static Class Support",scope:["source.ts support.constant.math","source.ts support.constant.dom","source.ts support.constant.json","source.tsx support.constant.math","source.tsx support.constant.dom","source.tsx support.constant.json"],settings:{foreground:"#8FBCBB"}},{name:"[TypeScript] Variables",scope:["source.ts support.variable","source.tsx support.variable"],settings:{foreground:"#D8DEE9"}},{name:"[TypeScript] Parentheses in Template Strings",scope:["source.ts meta.embedded.line meta.brace.square","source.ts meta.embedded.line meta.brace.round","source.tsx meta.embedded.line meta.brace.square","source.tsx meta.embedded.line meta.brace.round"],settings:{foreground:"#ECEFF4"}},{name:"[XML] Entity Name Tag Namespace",scope:"text.xml entity.name.tag.namespace",settings:{foreground:"#8FBCBB"}},{name:"[XML] Keyword Other Doctype",scope:"text.xml keyword.other.doctype",settings:{foreground:"#5E81AC"}},{name:"[XML] Meta Tag Preprocessor",scope:"text.xml meta.tag.preprocessor entity.name.tag",settings:{foreground:"#5E81AC"}},{name:"[XML] Entity Name Tag Namespace",scope:["text.xml string.unquoted.cdata","text.xml string.unquoted.cdata punctuation.definition.string"],settings:{foreground:"#D08770",fontStyle:"italic"}},{name:"[YAML] Entity Name Tag",scope:"source.yaml entity.name.tag",settings:{foreground:"#8FBCBB"}}]}; + +export { nord as default }; diff --git a/docs/shiki/dist/themes/one-dark-pro-25b24aee.mjs b/docs/shiki/dist/themes/one-dark-pro-25b24aee.mjs new file mode 100644 index 00000000..168d24c8 --- /dev/null +++ b/docs/shiki/dist/themes/one-dark-pro-25b24aee.mjs @@ -0,0 +1,3 @@ +var oneDarkPro = {name:"one-dark-pro",type:"dark",semanticHighlighting:true,semanticTokenColors:{enumMember:{foreground:"#56b6c2"},"variable.constant":{foreground:"#d19a66"},"variable.defaultLibrary":{foreground:"#e5c07b"},"variable:dart":{foreground:"#d19a66"},"property:dart":{foreground:"#d19a66"},"annotation:dart":{foreground:"#d19a66"},"parameter.label:dart":{foreground:"#abb2bf"},macro:{foreground:"#d19a66"},tomlArrayKey:{foreground:"#e5c07b"},memberOperatorOverload:{foreground:"#c678dd"}},tokenColors:[{scope:"meta.embedded",settings:{foreground:"#abb2bf"}},{name:"unison punctuation",scope:"punctuation.definition.delayed.unison,punctuation.definition.list.begin.unison,punctuation.definition.list.end.unison,punctuation.definition.ability.begin.unison,punctuation.definition.ability.end.unison,punctuation.operator.assignment.as.unison,punctuation.separator.pipe.unison,punctuation.separator.delimiter.unison,punctuation.definition.hash.unison",settings:{foreground:"#e06c75"}},{name:"haskell variable generic-type",scope:"variable.other.generic-type.haskell",settings:{foreground:"#c678dd"}},{name:"haskell storage type",scope:"storage.type.haskell",settings:{foreground:"#d19a66"}},{name:"support.variable.magic.python",scope:"support.variable.magic.python",settings:{foreground:"#e06c75"}},{name:"punctuation.separator.parameters.python",scope:"punctuation.separator.period.python,punctuation.separator.element.python,punctuation.parenthesis.begin.python,punctuation.parenthesis.end.python",settings:{foreground:"#abb2bf"}},{name:"variable.parameter.function.language.special.self.python",scope:"variable.parameter.function.language.special.self.python",settings:{foreground:"#e5c07b"}},{name:"variable.parameter.function.language.special.cls.python",scope:"variable.parameter.function.language.special.cls.python",settings:{foreground:"#e5c07b"}},{name:"storage.modifier.lifetime.rust",scope:"storage.modifier.lifetime.rust",settings:{foreground:"#abb2bf"}},{name:"support.function.std.rust",scope:"support.function.std.rust",settings:{foreground:"#61afef"}},{name:"entity.name.lifetime.rust",scope:"entity.name.lifetime.rust",settings:{foreground:"#e5c07b"}},{name:"variable.language.rust",scope:"variable.language.rust",settings:{foreground:"#e06c75"}},{name:"support.constant.edge",scope:"support.constant.edge",settings:{foreground:"#c678dd"}},{name:"regexp constant character-class",scope:"constant.other.character-class.regexp",settings:{foreground:"#e06c75"}},{name:"keyword.operator",scope:["keyword.operator.word"],settings:{foreground:"#c678dd"}},{name:"regexp operator.quantifier",scope:"keyword.operator.quantifier.regexp",settings:{foreground:"#d19a66"}},{name:"Text",scope:"variable.parameter.function",settings:{foreground:"#abb2bf"}},{name:"Comment Markup Link",scope:"comment markup.link",settings:{foreground:"#5c6370"}},{name:"markup diff",scope:"markup.changed.diff",settings:{foreground:"#e5c07b"}},{name:"diff",scope:"meta.diff.header.from-file,meta.diff.header.to-file,punctuation.definition.from-file.diff,punctuation.definition.to-file.diff",settings:{foreground:"#61afef"}},{name:"inserted.diff",scope:"markup.inserted.diff",settings:{foreground:"#98c379"}},{name:"deleted.diff",scope:"markup.deleted.diff",settings:{foreground:"#e06c75"}},{name:"c++ function",scope:"meta.function.c,meta.function.cpp",settings:{foreground:"#e06c75"}},{name:"c++ block",scope:"punctuation.section.block.begin.bracket.curly.cpp,punctuation.section.block.end.bracket.curly.cpp,punctuation.terminator.statement.c,punctuation.section.block.begin.bracket.curly.c,punctuation.section.block.end.bracket.curly.c,punctuation.section.parens.begin.bracket.round.c,punctuation.section.parens.end.bracket.round.c,punctuation.section.parameters.begin.bracket.round.c,punctuation.section.parameters.end.bracket.round.c",settings:{foreground:"#abb2bf"}},{name:"js/ts punctuation separator key-value",scope:"punctuation.separator.key-value",settings:{foreground:"#abb2bf"}},{name:"js/ts import keyword",scope:"keyword.operator.expression.import",settings:{foreground:"#61afef"}},{name:"math js/ts",scope:"support.constant.math",settings:{foreground:"#e5c07b"}},{name:"math property js/ts",scope:"support.constant.property.math",settings:{foreground:"#d19a66"}},{name:"js/ts variable.other.constant",scope:"variable.other.constant",settings:{foreground:"#e5c07b"}},{name:"java type",scope:["storage.type.annotation.java","storage.type.object.array.java"],settings:{foreground:"#e5c07b"}},{name:"java source",scope:"source.java",settings:{foreground:"#e06c75"}},{name:"java modifier.import",scope:"punctuation.section.block.begin.java,punctuation.section.block.end.java,punctuation.definition.method-parameters.begin.java,punctuation.definition.method-parameters.end.java,meta.method.identifier.java,punctuation.section.method.begin.java,punctuation.section.method.end.java,punctuation.terminator.java,punctuation.section.class.begin.java,punctuation.section.class.end.java,punctuation.section.inner-class.begin.java,punctuation.section.inner-class.end.java,meta.method-call.java,punctuation.section.class.begin.bracket.curly.java,punctuation.section.class.end.bracket.curly.java,punctuation.section.method.begin.bracket.curly.java,punctuation.section.method.end.bracket.curly.java,punctuation.separator.period.java,punctuation.bracket.angle.java,punctuation.definition.annotation.java,meta.method.body.java",settings:{foreground:"#abb2bf"}},{name:"java modifier.import",scope:"meta.method.java",settings:{foreground:"#61afef"}},{name:"java modifier.import",scope:"storage.modifier.import.java,storage.type.java,storage.type.generic.java",settings:{foreground:"#e5c07b"}},{name:"java instanceof",scope:"keyword.operator.instanceof.java",settings:{foreground:"#c678dd"}},{name:"java variable.name",scope:"meta.definition.variable.name.java",settings:{foreground:"#e06c75"}},{name:"operator logical",scope:"keyword.operator.logical",settings:{foreground:"#56b6c2"}},{name:"operator bitwise",scope:"keyword.operator.bitwise",settings:{foreground:"#56b6c2"}},{name:"operator channel",scope:"keyword.operator.channel",settings:{foreground:"#56b6c2"}},{name:"support.constant.property-value.scss",scope:"support.constant.property-value.scss,support.constant.property-value.css",settings:{foreground:"#d19a66"}},{name:"CSS/SCSS/LESS Operators",scope:"keyword.operator.css,keyword.operator.scss,keyword.operator.less",settings:{foreground:"#56b6c2"}},{name:"css color standard name",scope:"support.constant.color.w3c-standard-color-name.css,support.constant.color.w3c-standard-color-name.scss",settings:{foreground:"#d19a66"}},{name:"css comma",scope:"punctuation.separator.list.comma.css",settings:{foreground:"#abb2bf"}},{name:"css attribute-name.id",scope:"support.constant.color.w3c-standard-color-name.css",settings:{foreground:"#d19a66"}},{name:"css property-name",scope:"support.type.vendored.property-name.css",settings:{foreground:"#56b6c2"}},{name:"js/ts module",scope:"support.module.node,support.type.object.module,support.module.node",settings:{foreground:"#e5c07b"}},{name:"entity.name.type.module",scope:"entity.name.type.module",settings:{foreground:"#e5c07b"}},{name:"js variable readwrite",scope:"variable.other.readwrite,meta.object-literal.key,support.variable.property,support.variable.object.process,support.variable.object.node",settings:{foreground:"#e06c75"}},{name:"js/ts json",scope:"support.constant.json",settings:{foreground:"#d19a66"}},{name:"js/ts Keyword",scope:["keyword.operator.expression.instanceof","keyword.operator.new","keyword.operator.ternary","keyword.operator.optional","keyword.operator.expression.keyof"],settings:{foreground:"#c678dd"}},{name:"js/ts console",scope:"support.type.object.console",settings:{foreground:"#e06c75"}},{name:"js/ts support.variable.property.process",scope:"support.variable.property.process",settings:{foreground:"#d19a66"}},{name:"js console function",scope:"entity.name.function,support.function.console",settings:{foreground:"#61afef"}},{name:"keyword.operator.misc.rust",scope:"keyword.operator.misc.rust",settings:{foreground:"#abb2bf"}},{name:"keyword.operator.sigil.rust",scope:"keyword.operator.sigil.rust",settings:{foreground:"#c678dd"}},{name:"operator",scope:"keyword.operator.delete",settings:{foreground:"#c678dd"}},{name:"js dom",scope:"support.type.object.dom",settings:{foreground:"#56b6c2"}},{name:"js dom variable",scope:"support.variable.dom,support.variable.property.dom",settings:{foreground:"#e06c75"}},{name:"keyword.operator",scope:"keyword.operator.arithmetic,keyword.operator.comparison,keyword.operator.decrement,keyword.operator.increment,keyword.operator.relational",settings:{foreground:"#56b6c2"}},{name:"C operator assignment",scope:"keyword.operator.assignment.c,keyword.operator.comparison.c,keyword.operator.c,keyword.operator.increment.c,keyword.operator.decrement.c,keyword.operator.bitwise.shift.c,keyword.operator.assignment.cpp,keyword.operator.comparison.cpp,keyword.operator.cpp,keyword.operator.increment.cpp,keyword.operator.decrement.cpp,keyword.operator.bitwise.shift.cpp",settings:{foreground:"#c678dd"}},{name:"Punctuation",scope:"punctuation.separator.delimiter",settings:{foreground:"#abb2bf"}},{name:"Other punctuation .c",scope:"punctuation.separator.c,punctuation.separator.cpp",settings:{foreground:"#c678dd"}},{name:"C type posix-reserved",scope:"support.type.posix-reserved.c,support.type.posix-reserved.cpp",settings:{foreground:"#56b6c2"}},{name:"keyword.operator.sizeof.c",scope:"keyword.operator.sizeof.c,keyword.operator.sizeof.cpp",settings:{foreground:"#c678dd"}},{name:"python parameter",scope:"variable.parameter.function.language.python",settings:{foreground:"#d19a66"}},{name:"python type",scope:"support.type.python",settings:{foreground:"#56b6c2"}},{name:"python logical",scope:"keyword.operator.logical.python",settings:{foreground:"#c678dd"}},{name:"pyCs",scope:"variable.parameter.function.python",settings:{foreground:"#d19a66"}},{name:"python block",scope:"punctuation.definition.arguments.begin.python,punctuation.definition.arguments.end.python,punctuation.separator.arguments.python,punctuation.definition.list.begin.python,punctuation.definition.list.end.python",settings:{foreground:"#abb2bf"}},{name:"python function-call.generic",scope:"meta.function-call.generic.python",settings:{foreground:"#61afef"}},{name:"python placeholder reset to normal string",scope:"constant.character.format.placeholder.other.python",settings:{foreground:"#d19a66"}},{name:"Operators",scope:"keyword.operator",settings:{foreground:"#abb2bf"}},{name:"Compound Assignment Operators",scope:"keyword.operator.assignment.compound",settings:{foreground:"#c678dd"}},{name:"Compound Assignment Operators js/ts",scope:"keyword.operator.assignment.compound.js,keyword.operator.assignment.compound.ts",settings:{foreground:"#56b6c2"}},{name:"Keywords",scope:"keyword",settings:{foreground:"#c678dd"}},{name:"Namespaces",scope:"entity.name.namespace",settings:{foreground:"#e5c07b"}},{name:"Variables",scope:"variable",settings:{foreground:"#e06c75"}},{name:"Variables",scope:"variable.c",settings:{foreground:"#abb2bf"}},{name:"Language variables",scope:"variable.language",settings:{foreground:"#e5c07b"}},{name:"Java Variables",scope:"token.variable.parameter.java",settings:{foreground:"#abb2bf"}},{name:"Java Imports",scope:"import.storage.java",settings:{foreground:"#e5c07b"}},{name:"Packages",scope:"token.package.keyword",settings:{foreground:"#c678dd"}},{name:"Packages",scope:"token.package",settings:{foreground:"#abb2bf"}},{name:"Functions",scope:["entity.name.function","meta.require","support.function.any-method","variable.function"],settings:{foreground:"#61afef"}},{name:"Classes",scope:"entity.name.type.namespace",settings:{foreground:"#e5c07b"}},{name:"Classes",scope:"support.class, entity.name.type.class",settings:{foreground:"#e5c07b"}},{name:"Class name",scope:"entity.name.class.identifier.namespace.type",settings:{foreground:"#e5c07b"}},{name:"Class name",scope:["entity.name.class","variable.other.class.js","variable.other.class.ts"],settings:{foreground:"#e5c07b"}},{name:"Class name php",scope:"variable.other.class.php",settings:{foreground:"#e06c75"}},{name:"Type Name",scope:"entity.name.type",settings:{foreground:"#e5c07b"}},{name:"Keyword Control",scope:"keyword.control",settings:{foreground:"#c678dd"}},{name:"Control Elements",scope:"control.elements, keyword.operator.less",settings:{foreground:"#d19a66"}},{name:"Methods",scope:"keyword.other.special-method",settings:{foreground:"#61afef"}},{name:"Storage",scope:"storage",settings:{foreground:"#c678dd"}},{name:"Storage JS TS",scope:"token.storage",settings:{foreground:"#c678dd"}},{name:"Source Js Keyword Operator Delete,source Js Keyword Operator In,source Js Keyword Operator Of,source Js Keyword Operator Instanceof,source Js Keyword Operator New,source Js Keyword Operator Typeof,source Js Keyword Operator Void",scope:"keyword.operator.expression.delete,keyword.operator.expression.in,keyword.operator.expression.of,keyword.operator.expression.instanceof,keyword.operator.new,keyword.operator.expression.typeof,keyword.operator.expression.void",settings:{foreground:"#c678dd"}},{name:"Java Storage",scope:"token.storage.type.java",settings:{foreground:"#e5c07b"}},{name:"Support",scope:"support.function",settings:{foreground:"#56b6c2"}},{name:"Support type",scope:"support.type.property-name",settings:{foreground:"#abb2bf"}},{name:"[VSCODE-CUSTOM] toml support",scope:"support.type.property-name.toml, support.type.property-name.table.toml, support.type.property-name.array.toml",settings:{foreground:"#e06c75"}},{name:"Support type",scope:"support.constant.property-value",settings:{foreground:"#abb2bf"}},{name:"Support type",scope:"support.constant.font-name",settings:{foreground:"#d19a66"}},{name:"Meta tag",scope:"meta.tag",settings:{foreground:"#abb2bf"}},{name:"Strings",scope:"string",settings:{foreground:"#98c379"}},{name:"Constant other symbol",scope:"constant.other.symbol",settings:{foreground:"#56b6c2"}},{name:"Integers",scope:"constant.numeric",settings:{foreground:"#d19a66"}},{name:"Constants",scope:"constant",settings:{foreground:"#d19a66"}},{name:"Constants",scope:"punctuation.definition.constant",settings:{foreground:"#d19a66"}},{name:"Tags",scope:"entity.name.tag",settings:{foreground:"#e06c75"}},{name:"Attributes",scope:"entity.other.attribute-name",settings:{foreground:"#d19a66"}},{name:"Attribute IDs",scope:"entity.other.attribute-name.id",settings:{foreground:"#61afef"}},{name:"Attribute class",scope:"entity.other.attribute-name.class.css",settings:{foreground:"#d19a66"}},{name:"Selector",scope:"meta.selector",settings:{foreground:"#c678dd"}},{name:"Headings",scope:"markup.heading",settings:{foreground:"#e06c75"}},{name:"Headings",scope:"markup.heading punctuation.definition.heading, entity.name.section",settings:{foreground:"#61afef"}},{name:"Units",scope:"keyword.other.unit",settings:{foreground:"#e06c75"}},{name:"Bold",scope:"markup.bold,todo.bold",settings:{foreground:"#d19a66"}},{name:"Bold",scope:"punctuation.definition.bold",settings:{foreground:"#e5c07b"}},{name:"markup Italic",scope:"markup.italic, punctuation.definition.italic,todo.emphasis",settings:{foreground:"#c678dd"}},{name:"emphasis md",scope:"emphasis md",settings:{foreground:"#c678dd"}},{name:"[VSCODE-CUSTOM] Markdown headings",scope:"entity.name.section.markdown",settings:{foreground:"#e06c75"}},{name:"[VSCODE-CUSTOM] Markdown heading Punctuation Definition",scope:"punctuation.definition.heading.markdown",settings:{foreground:"#e06c75"}},{name:"punctuation.definition.list.begin.markdown",scope:"punctuation.definition.list.begin.markdown",settings:{foreground:"#e5c07b"}},{name:"[VSCODE-CUSTOM] Markdown heading setext",scope:"markup.heading.setext",settings:{foreground:"#abb2bf"}},{name:"[VSCODE-CUSTOM] Markdown Punctuation Definition Bold",scope:"punctuation.definition.bold.markdown",settings:{foreground:"#d19a66"}},{name:"[VSCODE-CUSTOM] Markdown Inline Raw",scope:"markup.inline.raw.markdown",settings:{foreground:"#98c379"}},{name:"[VSCODE-CUSTOM] Markdown Inline Raw",scope:"markup.inline.raw.string.markdown",settings:{foreground:"#98c379"}},{name:"[VSCODE-CUSTOM] Markdown Inline Raw punctuation",scope:"punctuation.definition.raw.markdown",settings:{foreground:"#e5c07b"}},{name:"[VSCODE-CUSTOM] Markdown List Punctuation Definition",scope:"punctuation.definition.list.markdown",settings:{foreground:"#e5c07b"}},{name:"[VSCODE-CUSTOM] Markdown Punctuation Definition String",scope:["punctuation.definition.string.begin.markdown","punctuation.definition.string.end.markdown","punctuation.definition.metadata.markdown"],settings:{foreground:"#e06c75"}},{name:"beginning.punctuation.definition.list.markdown",scope:["beginning.punctuation.definition.list.markdown"],settings:{foreground:"#e06c75"}},{name:"[VSCODE-CUSTOM] Markdown Punctuation Definition Link",scope:"punctuation.definition.metadata.markdown",settings:{foreground:"#e06c75"}},{name:"[VSCODE-CUSTOM] Markdown Underline Link/Image",scope:"markup.underline.link.markdown,markup.underline.link.image.markdown",settings:{foreground:"#c678dd"}},{name:"[VSCODE-CUSTOM] Markdown Link Title/Description",scope:"string.other.link.title.markdown,string.other.link.description.markdown",settings:{foreground:"#61afef"}},{name:"[VSCODE-CUSTOM] Asciidoc Inline Raw",scope:"markup.raw.monospace.asciidoc",settings:{foreground:"#98c379"}},{name:"[VSCODE-CUSTOM] Asciidoc Inline Raw Punctuation Definition",scope:"punctuation.definition.asciidoc",settings:{foreground:"#e5c07b"}},{name:"[VSCODE-CUSTOM] Asciidoc List Punctuation Definition",scope:"markup.list.asciidoc",settings:{foreground:"#e5c07b"}},{name:"[VSCODE-CUSTOM] Asciidoc underline link",scope:"markup.link.asciidoc,markup.other.url.asciidoc",settings:{foreground:"#c678dd"}},{name:"[VSCODE-CUSTOM] Asciidoc link name",scope:"string.unquoted.asciidoc,markup.other.url.asciidoc",settings:{foreground:"#61afef"}},{name:"Regular Expressions",scope:"string.regexp",settings:{foreground:"#56b6c2"}},{name:"Embedded",scope:"punctuation.section.embedded, variable.interpolation",settings:{foreground:"#e06c75"}},{name:"Embedded",scope:"punctuation.section.embedded.begin,punctuation.section.embedded.end",settings:{foreground:"#c678dd"}},{name:"illegal",scope:"invalid.illegal",settings:{foreground:"#ffffff"}},{name:"illegal",scope:"invalid.illegal.bad-ampersand.html",settings:{foreground:"#abb2bf"}},{scope:"invalid.illegal.unrecognized-tag.html",settings:{foreground:"#e06c75"}},{name:"Broken",scope:"invalid.broken",settings:{foreground:"#ffffff"}},{name:"Deprecated",scope:"invalid.deprecated",settings:{foreground:"#ffffff"}},{name:"html Deprecated",scope:"invalid.deprecated.entity.other.attribute-name.html",settings:{foreground:"#d19a66"}},{name:"Unimplemented",scope:"invalid.unimplemented",settings:{foreground:"#ffffff"}},{name:"Source Json Meta Structure Dictionary Json > String Quoted Json",scope:"source.json meta.structure.dictionary.json > string.quoted.json",settings:{foreground:"#e06c75"}},{name:"Source Json Meta Structure Dictionary Json > String Quoted Json > Punctuation String",scope:"source.json meta.structure.dictionary.json > string.quoted.json > punctuation.string",settings:{foreground:"#e06c75"}},{name:"Source Json Meta Structure Dictionary Json > Value Json > String Quoted Json,source Json Meta Structure Array Json > Value Json > String Quoted Json,source Json Meta Structure Dictionary Json > Value Json > String Quoted Json > Punctuation,source Json Meta Structure Array Json > Value Json > String Quoted Json > Punctuation",scope:"source.json meta.structure.dictionary.json > value.json > string.quoted.json,source.json meta.structure.array.json > value.json > string.quoted.json,source.json meta.structure.dictionary.json > value.json > string.quoted.json > punctuation,source.json meta.structure.array.json > value.json > string.quoted.json > punctuation",settings:{foreground:"#98c379"}},{name:"Source Json Meta Structure Dictionary Json > Constant Language Json,source Json Meta Structure Array Json > Constant Language Json",scope:"source.json meta.structure.dictionary.json > constant.language.json,source.json meta.structure.array.json > constant.language.json",settings:{foreground:"#56b6c2"}},{name:"[VSCODE-CUSTOM] JSON Property Name",scope:"support.type.property-name.json",settings:{foreground:"#e06c75"}},{name:"[VSCODE-CUSTOM] JSON Punctuation for Property Name",scope:"support.type.property-name.json punctuation",settings:{foreground:"#e06c75"}},{name:"laravel blade tag",scope:"text.html.laravel-blade source.php.embedded.line.html entity.name.tag.laravel-blade",settings:{foreground:"#c678dd"}},{name:"laravel blade @",scope:"text.html.laravel-blade source.php.embedded.line.html support.constant.laravel-blade",settings:{foreground:"#c678dd"}},{name:"use statement for other classes",scope:"support.other.namespace.use.php,support.other.namespace.use-as.php,entity.other.alias.php,meta.interface.php",settings:{foreground:"#e5c07b"}},{name:"error suppression",scope:"keyword.operator.error-control.php",settings:{foreground:"#c678dd"}},{name:"php instanceof",scope:"keyword.operator.type.php",settings:{foreground:"#c678dd"}},{name:"style double quoted array index normal begin",scope:"punctuation.section.array.begin.php",settings:{foreground:"#abb2bf"}},{name:"style double quoted array index normal end",scope:"punctuation.section.array.end.php",settings:{foreground:"#abb2bf"}},{name:"php illegal.non-null-typehinted",scope:"invalid.illegal.non-null-typehinted.php",settings:{foreground:"#f44747"}},{name:"php types",scope:"storage.type.php,meta.other.type.phpdoc.php,keyword.other.type.php,keyword.other.array.phpdoc.php",settings:{foreground:"#e5c07b"}},{name:"php call-function",scope:"meta.function-call.php,meta.function-call.object.php,meta.function-call.static.php",settings:{foreground:"#61afef"}},{name:"php function-resets",scope:"punctuation.definition.parameters.begin.bracket.round.php,punctuation.definition.parameters.end.bracket.round.php,punctuation.separator.delimiter.php,punctuation.section.scope.begin.php,punctuation.section.scope.end.php,punctuation.terminator.expression.php,punctuation.definition.arguments.begin.bracket.round.php,punctuation.definition.arguments.end.bracket.round.php,punctuation.definition.storage-type.begin.bracket.round.php,punctuation.definition.storage-type.end.bracket.round.php,punctuation.definition.array.begin.bracket.round.php,punctuation.definition.array.end.bracket.round.php,punctuation.definition.begin.bracket.round.php,punctuation.definition.end.bracket.round.php,punctuation.definition.begin.bracket.curly.php,punctuation.definition.end.bracket.curly.php,punctuation.definition.section.switch-block.end.bracket.curly.php,punctuation.definition.section.switch-block.start.bracket.curly.php,punctuation.definition.section.switch-block.begin.bracket.curly.php,punctuation.definition.section.switch-block.end.bracket.curly.php",settings:{foreground:"#abb2bf"}},{name:"support php constants",scope:"support.constant.core.rust",settings:{foreground:"#d19a66"}},{name:"support php constants",scope:"support.constant.ext.php,support.constant.std.php,support.constant.core.php,support.constant.parser-token.php",settings:{foreground:"#d19a66"}},{name:"php goto",scope:"entity.name.goto-label.php,support.other.php",settings:{foreground:"#61afef"}},{name:"php logical/bitwise operator",scope:"keyword.operator.logical.php,keyword.operator.bitwise.php,keyword.operator.arithmetic.php",settings:{foreground:"#56b6c2"}},{name:"php regexp operator",scope:"keyword.operator.regexp.php",settings:{foreground:"#c678dd"}},{name:"php comparison",scope:"keyword.operator.comparison.php",settings:{foreground:"#56b6c2"}},{name:"php heredoc/nowdoc",scope:"keyword.operator.heredoc.php,keyword.operator.nowdoc.php",settings:{foreground:"#c678dd"}},{name:"python function decorator @",scope:"meta.function.decorator.python",settings:{foreground:"#61afef"}},{name:"python function support",scope:"support.token.decorator.python,meta.function.decorator.identifier.python",settings:{foreground:"#56b6c2"}},{name:"parameter function js/ts",scope:"function.parameter",settings:{foreground:"#abb2bf"}},{name:"brace function",scope:"function.brace",settings:{foreground:"#abb2bf"}},{name:"parameter function ruby cs",scope:"function.parameter.ruby, function.parameter.cs",settings:{foreground:"#abb2bf"}},{name:"constant.language.symbol.ruby",scope:"constant.language.symbol.ruby",settings:{foreground:"#56b6c2"}},{name:"constant.language.symbol.hashkey.ruby",scope:"constant.language.symbol.hashkey.ruby",settings:{foreground:"#56b6c2"}},{name:"rgb-value",scope:"rgb-value",settings:{foreground:"#56b6c2"}},{name:"rgb value",scope:"inline-color-decoration rgb-value",settings:{foreground:"#d19a66"}},{name:"rgb value less",scope:"less rgb-value",settings:{foreground:"#d19a66"}},{name:"sass selector",scope:"selector.sass",settings:{foreground:"#e06c75"}},{name:"ts primitive/builtin types",scope:"support.type.primitive.ts,support.type.builtin.ts,support.type.primitive.tsx,support.type.builtin.tsx",settings:{foreground:"#e5c07b"}},{name:"block scope",scope:"block.scope.end,block.scope.begin",settings:{foreground:"#abb2bf"}},{name:"cs storage type",scope:"storage.type.cs",settings:{foreground:"#e5c07b"}},{name:"cs local variable",scope:"entity.name.variable.local.cs",settings:{foreground:"#e06c75"}},{scope:"token.info-token",settings:{foreground:"#61afef"}},{scope:"token.warn-token",settings:{foreground:"#d19a66"}},{scope:"token.error-token",settings:{foreground:"#f44747"}},{scope:"token.debug-token",settings:{foreground:"#c678dd"}},{name:"String interpolation",scope:["punctuation.definition.template-expression.begin","punctuation.definition.template-expression.end","punctuation.section.embedded"],settings:{foreground:"#c678dd"}},{name:"Reset JavaScript string interpolation expression",scope:["meta.template.expression"],settings:{foreground:"#abb2bf"}},{name:"Import module JS",scope:["keyword.operator.module"],settings:{foreground:"#c678dd"}},{name:"js Flowtype",scope:["support.type.type.flowtype"],settings:{foreground:"#61afef"}},{name:"js Flow",scope:["support.type.primitive"],settings:{foreground:"#e5c07b"}},{name:"js class prop",scope:["meta.property.object"],settings:{foreground:"#e06c75"}},{name:"js func parameter",scope:["variable.parameter.function.js"],settings:{foreground:"#e06c75"}},{name:"js template literals begin",scope:["keyword.other.template.begin"],settings:{foreground:"#98c379"}},{name:"js template literals end",scope:["keyword.other.template.end"],settings:{foreground:"#98c379"}},{name:"js template literals variable braces begin",scope:["keyword.other.substitution.begin"],settings:{foreground:"#98c379"}},{name:"js template literals variable braces end",scope:["keyword.other.substitution.end"],settings:{foreground:"#98c379"}},{name:"js operator.assignment",scope:["keyword.operator.assignment"],settings:{foreground:"#56b6c2"}},{name:"go operator",scope:["keyword.operator.assignment.go"],settings:{foreground:"#e5c07b"}},{name:"go operator",scope:["keyword.operator.arithmetic.go","keyword.operator.address.go"],settings:{foreground:"#c678dd"}},{name:"Go package name",scope:["entity.name.package.go"],settings:{foreground:"#e5c07b"}},{name:"elm prelude",scope:["support.type.prelude.elm"],settings:{foreground:"#56b6c2"}},{name:"elm constant",scope:["support.constant.elm"],settings:{foreground:"#d19a66"}},{name:"template literal",scope:["punctuation.quasi.element"],settings:{foreground:"#c678dd"}},{name:"html/pug (jade) escaped characters and entities",scope:["constant.character.entity"],settings:{foreground:"#e06c75"}},{name:"styling css pseudo-elements/classes to be able to differentiate from classes which are the same colour",scope:["entity.other.attribute-name.pseudo-element","entity.other.attribute-name.pseudo-class"],settings:{foreground:"#56b6c2"}},{name:"Clojure globals",scope:["entity.global.clojure"],settings:{foreground:"#e5c07b"}},{name:"Clojure symbols",scope:["meta.symbol.clojure"],settings:{foreground:"#e06c75"}},{name:"Clojure constants",scope:["constant.keyword.clojure"],settings:{foreground:"#56b6c2"}},{name:"CoffeeScript Function Argument",scope:["meta.arguments.coffee","variable.parameter.function.coffee"],settings:{foreground:"#e06c75"}},{name:"Ini Default Text",scope:["source.ini"],settings:{foreground:"#98c379"}},{name:"Makefile prerequisities",scope:["meta.scope.prerequisites.makefile"],settings:{foreground:"#e06c75"}},{name:"Makefile text colour",scope:["source.makefile"],settings:{foreground:"#e5c07b"}},{name:"Groovy import names",scope:["storage.modifier.import.groovy"],settings:{foreground:"#e5c07b"}},{name:"Groovy Methods",scope:["meta.method.groovy"],settings:{foreground:"#61afef"}},{name:"Groovy Variables",scope:["meta.definition.variable.name.groovy"],settings:{foreground:"#e06c75"}},{name:"Groovy Inheritance",scope:["meta.definition.class.inherited.classes.groovy"],settings:{foreground:"#98c379"}},{name:"HLSL Semantic",scope:["support.variable.semantic.hlsl"],settings:{foreground:"#e5c07b"}},{name:"HLSL Types",scope:["support.type.texture.hlsl","support.type.sampler.hlsl","support.type.object.hlsl","support.type.object.rw.hlsl","support.type.fx.hlsl","support.type.object.hlsl"],settings:{foreground:"#c678dd"}},{name:"SQL Variables",scope:["text.variable","text.bracketed"],settings:{foreground:"#e06c75"}},{name:"types",scope:["support.type.swift","support.type.vb.asp"],settings:{foreground:"#e5c07b"}},{name:"heading 1, keyword",scope:["entity.name.function.xi"],settings:{foreground:"#e5c07b"}},{name:"heading 2, callable",scope:["entity.name.class.xi"],settings:{foreground:"#56b6c2"}},{name:"heading 3, property",scope:["constant.character.character-class.regexp.xi"],settings:{foreground:"#e06c75"}},{name:"heading 4, type, class, interface",scope:["constant.regexp.xi"],settings:{foreground:"#c678dd"}},{name:"heading 5, enums, preprocessor, constant, decorator",scope:["keyword.control.xi"],settings:{foreground:"#56b6c2"}},{name:"heading 6, number",scope:["invalid.xi"],settings:{foreground:"#abb2bf"}},{name:"string",scope:["beginning.punctuation.definition.quote.markdown.xi"],settings:{foreground:"#98c379"}},{name:"comments",scope:["beginning.punctuation.definition.list.markdown.xi"],settings:{foreground:"#7f848e"}},{name:"link",scope:["constant.character.xi"],settings:{foreground:"#61afef"}},{name:"accent",scope:["accent.xi"],settings:{foreground:"#61afef"}},{name:"wikiword",scope:["wikiword.xi"],settings:{foreground:"#d19a66"}},{name:"language operators like '+', '-' etc",scope:["constant.other.color.rgb-value.xi"],settings:{foreground:"#ffffff"}},{name:"elements to dim",scope:["punctuation.definition.tag.xi"],settings:{foreground:"#5c6370"}},{name:"C++/C#",scope:["entity.name.label.cs","entity.name.scope-resolution.function.call","entity.name.scope-resolution.function.definition"],settings:{foreground:"#e5c07b"}},{name:"Markdown underscore-style headers",scope:["entity.name.label.cs","markup.heading.setext.1.markdown","markup.heading.setext.2.markdown"],settings:{foreground:"#e06c75"}},{name:"meta.brace.square",scope:[" meta.brace.square"],settings:{foreground:"#abb2bf"}},{name:"Comments",scope:"comment, punctuation.definition.comment",settings:{foreground:"#7f848e",fontStyle:"italic"}},{name:"[VSCODE-CUSTOM] Markdown Quote",scope:"markup.quote.markdown",settings:{foreground:"#5c6370"}},{name:"punctuation.definition.block.sequence.item.yaml",scope:"punctuation.definition.block.sequence.item.yaml",settings:{foreground:"#abb2bf"}},{scope:["constant.language.symbol.elixir","constant.language.symbol.double-quoted.elixir"],settings:{foreground:"#56b6c2"}},{scope:["entity.name.variable.parameter.cs"],settings:{foreground:"#e5c07b"}},{scope:["entity.name.variable.field.cs"],settings:{foreground:"#e06c75"}},{name:"Deleted",scope:"markup.deleted",settings:{foreground:"#e06c75"}},{name:"Inserted",scope:"markup.inserted",settings:{foreground:"#98c379"}},{name:"Underline",scope:"markup.underline",settings:{fontStyle:"underline"}},{name:"punctuation.section.embedded.begin.php",scope:["punctuation.section.embedded.begin.php","punctuation.section.embedded.end.php"],settings:{foreground:"#BE5046"}},{name:"support.other.namespace.php",scope:["support.other.namespace.php"],settings:{foreground:"#abb2bf"}},{name:"Latex variable parameter",scope:["variable.parameter.function.latex"],settings:{foreground:"#e06c75"}},{name:"variable.other.object",scope:["variable.other.object"],settings:{foreground:"#e5c07b"}},{name:"variable.other.constant.property",scope:["variable.other.constant.property"],settings:{foreground:"#e06c75"}},{name:"entity.other.inherited-class",scope:["entity.other.inherited-class"],settings:{foreground:"#e5c07b"}},{name:"c variable readwrite",scope:"variable.other.readwrite.c",settings:{foreground:"#e06c75"}},{name:"php scope",scope:"entity.name.variable.parameter.php,punctuation.separator.colon.php,constant.other.php",settings:{foreground:"#abb2bf"}},{name:"Assembly",scope:["constant.numeric.decimal.asm.x86_64"],settings:{foreground:"#c678dd"}},{scope:["support.other.parenthesis.regexp"],settings:{foreground:"#d19a66"}},{scope:["constant.character.escape"],settings:{foreground:"#56b6c2"}},{scope:["string.regexp"],settings:{foreground:"#e06c75"}},{scope:["log.info"],settings:{foreground:"#98c379"}},{scope:["log.warning"],settings:{foreground:"#e5c07b"}},{scope:["log.error"],settings:{foreground:"#e06c75"}},{scope:"keyword.operator.expression.is",settings:{foreground:"#c678dd"}},{scope:"entity.name.label",settings:{foreground:"#e06c75"}},{name:"js/ts italic",scope:"entity.other.attribute-name.js,entity.other.attribute-name.ts,entity.other.attribute-name.jsx,entity.other.attribute-name.tsx,variable.parameter,variable.language.super",settings:{fontStyle:"italic"}},{name:"comment",scope:"comment.line.double-slash,comment.block.documentation",settings:{fontStyle:"italic"}},{name:"markup.italic.markdown",scope:"markup.italic.markdown",settings:{fontStyle:"italic"}}],colors:{"activityBar.background":"#282c34","activityBar.foreground":"#d7dae0","activityBarBadge.background":"#4d78cc","activityBarBadge.foreground":"#f8fafd","badge.background":"#282c34","button.background":"#404754","button.secondaryBackground":"#30333d","button.secondaryForeground":"#c0bdbd","checkbox.border":"#404754","debugToolBar.background":"#21252b",descriptionForeground:"#abb2bf","diffEditor.insertedTextBackground":"#00809b33","dropdown.background":"#21252b","dropdown.border":"#21252b","editor.background":"#282c34","editor.findMatchBackground":"#42557b","editor.findMatchBorder":"#457dff","editor.findMatchHighlightBackground":"#6199ff2f","editor.foreground":"#abb2bf","editorBracketHighlight.foreground1":"#d19a66","editorBracketHighlight.foreground2":"#c678dd","editorBracketHighlight.foreground3":"#56b6c2","editorHoverWidget.highlightForeground":"#61afef","editorInlayHint.foreground":"#abb2bf","editorInlayHint.background":"#2c313c","editor.lineHighlightBackground":"#2c313c","editorLineNumber.activeForeground":"#abb2bf","editorGutter.addedBackground":"#109868","editorGutter.deletedBackground":"#9A353D","editorGutter.modifiedBackground":"#948B60","editorOverviewRuler.addedBackground":"#109868","editorOverviewRuler.deletedBackground":"#9A353D","editorOverviewRuler.modifiedBackground":"#948B60","editor.selectionBackground":"#67769660","editor.selectionHighlightBackground":"#ffffff10","editor.selectionHighlightBorder":"#dddddd","editor.wordHighlightBackground":"#d2e0ff2f","editor.wordHighlightBorder":"#7f848e","editor.wordHighlightStrongBackground":"#abb2bf26","editor.wordHighlightStrongBorder":"#7f848e","editorBracketMatch.background":"#515a6b","editorBracketMatch.border":"#515a6b","editorCursor.background":"#ffffffc9","editorCursor.foreground":"#528bff","editorError.foreground":"#c24038","editorGroup.background":"#181a1f","editorGroup.border":"#181a1f","editorGroupHeader.tabsBackground":"#21252b","editorHoverWidget.background":"#21252b","editorHoverWidget.border":"#181a1f","editorIndentGuide.activeBackground":"#c8c8c859","editorIndentGuide.background":"#3b4048","editorLineNumber.foreground":"#495162","editorMarkerNavigation.background":"#21252b","editorRuler.foreground":"#abb2bf26","editorSuggestWidget.background":"#21252b","editorSuggestWidget.border":"#181a1f","editorSuggestWidget.selectedBackground":"#2c313a","editorWarning.foreground":"#d19a66","editorWhitespace.foreground":"#ffffff1d","editorWidget.background":"#21252b",focusBorder:"#3e4452","gitDecoration.ignoredResourceForeground":"#636b78","input.background":"#1d1f23","input.foreground":"#abb2bf","list.activeSelectionBackground":"#2c313a","list.activeSelectionForeground":"#d7dae0","list.focusBackground":"#323842","list.focusForeground":"#f0f0f0","list.highlightForeground":"#ecebeb","list.hoverBackground":"#2c313a","list.hoverForeground":"#abb2bf","list.inactiveSelectionBackground":"#323842","list.inactiveSelectionForeground":"#d7dae0","list.warningForeground":"#d19a66","menu.foreground":"#abb2bf","menu.separatorBackground":"#343a45","minimapGutter.addedBackground":"#109868","minimapGutter.deletedBackground":"#9A353D","minimapGutter.modifiedBackground":"#948B60","panel.border":"#3e4452","panelSectionHeader.background":"#21252b","peekViewEditor.background":"#1b1d23","peekViewEditor.matchHighlightBackground":"#29244b","peekViewResult.background":"#22262b","scrollbar.shadow":"#23252c","scrollbarSlider.activeBackground":"#747d9180","scrollbarSlider.background":"#4e566660","scrollbarSlider.hoverBackground":"#5a637580","settings.focusedRowBackground":"#282c34","settings.headerForeground":"#fff","sideBar.background":"#21252b","sideBar.foreground":"#abb2bf","sideBarSectionHeader.background":"#282c34","sideBarSectionHeader.foreground":"#abb2bf","statusBar.background":"#21252b","statusBar.debuggingBackground":"#cc6633","statusBar.debuggingBorder":"#ff000000","statusBar.debuggingForeground":"#ffffff","statusBar.foreground":"#9da5b4","statusBar.noFolderBackground":"#21252b","statusBarItem.remoteBackground":"#4d78cc","statusBarItem.remoteForeground":"#f8fafd","tab.activeBackground":"#282c34","tab.activeBorder":"#b4b4b4","tab.activeForeground":"#dcdcdc","tab.border":"#181a1f","tab.hoverBackground":"#323842","tab.inactiveBackground":"#21252b","tab.unfocusedHoverBackground":"#323842","terminal.ansiBlack":"#3f4451","terminal.ansiBlue":"#4aa5f0","terminal.ansiBrightBlack":"#4f5666","terminal.ansiBrightBlue":"#4dc4ff","terminal.ansiBrightCyan":"#4cd1e0","terminal.ansiBrightGreen":"#a5e075","terminal.ansiBrightMagenta":"#de73ff","terminal.ansiBrightRed":"#ff616e","terminal.ansiBrightWhite":"#e6e6e6","terminal.ansiBrightYellow":"#f0a45d","terminal.ansiCyan":"#42b3c2","terminal.ansiGreen":"#8cc265","terminal.ansiMagenta":"#c162de","terminal.ansiRed":"#e05561","terminal.ansiWhite":"#d7dae0","terminal.ansiYellow":"#d18f52","terminal.background":"#282c34","terminal.border":"#3e4452","terminal.foreground":"#abb2bf","terminal.selectionBackground":"#abb2bf30","textBlockQuote.background":"#2e3440","textBlockQuote.border":"#4b5362","textLink.foreground":"#61afef","textPreformat.foreground":"#d19a66","titleBar.activeBackground":"#282c34","titleBar.activeForeground":"#9da5b4","titleBar.inactiveBackground":"#282c34","titleBar.inactiveForeground":"#6b717d","tree.indentGuidesStroke":"#ffffff1d","walkThrough.embeddedEditorBackground":"#2e3440","welcomePage.buttonHoverBackground":"#404754"}}; + +export { oneDarkPro as default }; diff --git a/docs/shiki/dist/themes/poimandres-67d1631f.mjs b/docs/shiki/dist/themes/poimandres-67d1631f.mjs new file mode 100644 index 00000000..a36d9057 --- /dev/null +++ b/docs/shiki/dist/themes/poimandres-67d1631f.mjs @@ -0,0 +1,3 @@ +var poimandres = {name:"poimandres",type:"dark",colors:{"activityBar.background":"#1b1e28","activityBar.foreground":"#a6accd","activityBarBadge.background":"#303340","activityBarBadge.foreground":"#e4f0fb","badge.background":"#303340","badge.foreground":"#e4f0fb","button.background":"#303340","diffEditor.insertedTextBackground":"#50647715","diffEditor.removedTextBackground":"#d0679d20","dropdown.background":"#1b1e28","dropdown.border":"#ffffff10","editor.background":"#1b1e28","editor.findMatchBackground":"#ADD7FF40","editor.findMatchBorder":"#ADD7FF","editor.findMatchHighlightBackground":"#ADD7FF40","editor.foreground":"#a6accd","editor.lineHighlightBackground":"#717cb425","editor.lineHighlightBorder":"#00000000","editor.selectionBackground":"#717cb425","editor.selectionHighlightBackground":"#00000000","editor.selectionHighlightBorder":"#ADD7FF80","editor.wordHighlightBackground":"#ADD7FF20","editor.wordHighlightStrongBackground":"#ADD7FF40","editorBracketMatch.border":"#e4f0fb40","editorCursor.foreground":"#a6accd","editorGroup.border":"#00000030","editorGroupHeader.tabsBackground":"#1b1e28","editorHoverWidget.background":"#1b1e28","editorHoverWidget.border":"#ffffff10","editorIndentGuide.background":"#303340","editorLineNumber.foreground":"#767c9d50","editorLink.activeForeground":"#ADD7FF","editorSuggestWidget.background":"#1b1e28","editorSuggestWidget.border":"#ffffff10","editorSuggestWidget.foreground":"#a6accd","editorSuggestWidget.highlightForeground":"#5DE4c7","editorSuggestWidget.selectedBackground":"#00000050","editorWidget.background":"#1b1e28","editor.findRangeHighlightBackground":"#ADD7FF40","editor.focusedStackFrameHighlightBackground":"#7abd7a4d","editor.foldBackground":"#717cb40b","editor.hoverHighlightBackground":"#264f7840","editor.inactiveSelectionBackground":"#717cb425","editor.linkedEditingBackground":"#d0679d4d","editor.rangeHighlightBackground":"#ffffff0b","editor.snippetFinalTabstopHighlightBorder":"#525252","editor.snippetTabstopHighlightBackground":"#7c7c7c4d","editor.stackFrameHighlightBackground":"#ffff0033","editor.symbolHighlightBackground":"#89ddff60","editorBracketMatch.background":"#00000000","editorCodeLens.foreground":"#a6accd","editorError.foreground":"#d0679d","editorGroup.dropBackground":"#7390AA80","editorGroupHeader.noTabsBackground":"#1b1e28","editorGutter.background":"#1b1e28","editorGutter.commentRangeForeground":"#a6accd","editorGutter.foldingControlForeground":"#a6accd","editorGutter.addedBackground":"#5fb3a140","editorGutter.deletedBackground":"#d0679d40","editorGutter.modifiedBackground":"#ADD7FF20","editorHint.foreground":"#7390AAb3","editorHoverWidget.foreground":"#a6accd","editorHoverWidget.statusBarBackground":"#202430","editorIndentGuide.activeBackground":"#e3e4e229","editorInfo.foreground":"#ADD7FF","editorInlineHint.background":"#a6accd","editorInlineHint.foreground":"#1b1e28","editorLightBulb.foreground":"#fffac2","editorLightBulbAutoFix.foreground":"#ADD7FF","editorLineNumber.activeForeground":"#a6accd","editorMarkerNavigation.background":"#2d2d30","editorMarkerNavigationError.background":"#d0679d","editorMarkerNavigationInfo.background":"#ADD7FF","editorMarkerNavigationWarning.background":"#fffac2","editorOverviewRuler.addedForeground":"#5fb3a199","editorOverviewRuler.border":"#00000000","editorOverviewRuler.bracketMatchForeground":"#a0a0a0","editorOverviewRuler.commonContentForeground":"#a6accd66","editorOverviewRuler.currentContentForeground":"#5fb3a180","editorOverviewRuler.deletedForeground":"#d0679d99","editorOverviewRuler.errorForeground":"#d0679db3","editorOverviewRuler.findMatchForeground":"#e4f0fb20","editorOverviewRuler.incomingContentForeground":"#89ddff80","editorOverviewRuler.infoForeground":"#ADD7FF","editorOverviewRuler.modifiedForeground":"#89ddff99","editorOverviewRuler.rangeHighlightForeground":"#89ddff99","editorOverviewRuler.selectionHighlightForeground":"#a0a0a0cc","editorOverviewRuler.warningForeground":"#fffac2","editorOverviewRuler.wordHighlightForeground":"#a0a0a0cc","editorOverviewRuler.wordHighlightStrongForeground":"#89ddffcc","editorPane.background":"#1b1e28","editorRuler.foreground":"#e4f0fb10","editorUnnecessaryCode.opacity":"#000000aa","editorWarning.foreground":"#fffac2","editorWhitespace.foreground":"#303340","editorWidget.border":"#a6accd","editorWidget.foreground":"#a6accd","extensionButton.prominentBackground":"#30334090","extensionButton.prominentHoverBackground":"#303340",focusBorder:"#00000000","input.background":"#ffffff05","input.border":"#ffffff10","input.foreground":"#e4f0fb","input.placeholderForeground":"#a6accd60","inputValidation.errorBorder":"#d0679d","inputValidation.errorForeground":"#d0679d","inputValidation.infoBorder":"#89ddff","inputValidation.warningBorder":"#fffac2","notifications.background":"#1b1e28","notifications.foreground":"#e4f0fb","panel.border":"#00000030","panelTitle.activeForeground":"#a6accd","peekView.border":"#00000030","peekViewEditor.background":"#a6accd05","peekViewEditorGutter.background":"#a6accd05","peekViewResult.background":"#a6accd05","peekViewTitle.background":"#a6accd05","peekViewTitleDescription.foreground":"#a6accd60","scrollbar.shadow":"#00000000","scrollbarSlider.activeBackground":"#a6accd25","scrollbarSlider.background":"#00000080","scrollbarSlider.hoverBackground":"#a6accd25","selection.background":"#a6accd","sideBar.background":"#1b1e28","sideBar.foreground":"#767c9d","sideBarSectionHeader.background":"#1b1e28","sideBarTitle.foreground":"#a6accd","statusBar.background":"#1b1e28","statusBar.foreground":"#a6accd","statusBar.noFolderBackground":"#1b1e28","tab.activeBackground":"#30334080","tab.activeForeground":"#e4f0fb","tab.border":"#00000000","tab.inactiveBackground":"#1b1e28","tab.inactiveForeground":"#767c9d","tab.unfocusedActiveForeground":"#a6accd","tab.activeModifiedBorder":"#ADD7FF","tab.inactiveModifiedBorder":"#ADD7FF80","tab.lastPinnedBorder":"#00000000","tab.unfocusedActiveBackground":"#1b1e28","tab.unfocusedActiveModifiedBorder":"#ADD7FF40","tab.unfocusedInactiveBackground":"#1b1e28","tab.unfocusedInactiveForeground":"#a6accd80","tab.unfocusedInactiveModifiedBorder":"#ADD7FF40","terminal.ansiBlack":"#1b1e28","terminal.ansiBlue":"#89ddff","terminal.ansiBrightBlack":"#a6accd","terminal.ansiBrightBlue":"#ADD7FF","terminal.ansiBrightCyan":"#ADD7FF","terminal.ansiBrightGreen":"#5DE4c7","terminal.ansiBrightMagenta":"#f087bd","terminal.ansiBrightRed":"#d0679d","terminal.ansiBrightWhite":"#ffffff","terminal.ansiBrightYellow":"#fffac2","terminal.ansiCyan":"#89ddff","terminal.ansiGreen":"#5DE4c7","terminal.ansiMagenta":"#f087bd","terminal.ansiRed":"#d0679d","terminal.ansiWhite":"#ffffff","terminal.ansiYellow":"#fffac2","textLink.activeForeground":"#ADD7FF","textLink.foreground":"#ADD7FF","titleBar.activeBackground":"#1b1e28","titleBar.activeForeground":"#a6accd","titleBar.inactiveBackground":"#1b1e28","titleBar.inactiveForeground":"#767c9d","tree.indentGuidesStroke":"#303340","widget.shadow":"#00000030","activityBar.activeBorder":"#a6accd","activityBar.dropBorder":"#a6accd","activityBar.inactiveForeground":"#a6accd66","breadcrumb.activeSelectionForeground":"#e4f0fb","breadcrumb.background":"#00000000","breadcrumb.focusForeground":"#e4f0fb","breadcrumb.foreground":"#767c9dcc","breadcrumbPicker.background":"#1b1e28","button.foreground":"#ffffff","button.hoverBackground":"#50647750","button.secondaryBackground":"#a6accd","button.secondaryForeground":"#ffffff","button.secondaryHoverBackground":"#a6accd","charts.blue":"#ADD7FF","charts.foreground":"#a6accd","charts.green":"#5DE4c7","charts.lines":"#a6accd80","charts.orange":"#89ddff","charts.purple":"#f087bd","charts.red":"#d0679d","charts.yellow":"#fffac2","checkbox.background":"#1b1e28","checkbox.border":"#ffffff10","checkbox.foreground":"#e4f0fb","debugConsole.errorForeground":"#d0679d","debugConsole.infoForeground":"#ADD7FF","debugConsole.sourceForeground":"#a6accd","debugConsole.warningForeground":"#fffac2","debugConsoleInputIcon.foreground":"#a6accd","debugExceptionWidget.background":"#d0679d","debugExceptionWidget.border":"#d0679d","debugIcon.breakpointCurrentStackframeForeground":"#fffac2","debugIcon.breakpointDisabledForeground":"#7390AA","debugIcon.breakpointForeground":"#d0679d","debugIcon.breakpointStackframeForeground":"#5fb3a1","debugIcon.breakpointUnverifiedForeground":"#7390AA","debugIcon.continueForeground":"#ADD7FF","debugIcon.disconnectForeground":"#d0679d","debugIcon.pauseForeground":"#ADD7FF","debugIcon.restartForeground":"#5fb3a1","debugIcon.startForeground":"#5fb3a1","debugIcon.stepBackForeground":"#ADD7FF","debugIcon.stepIntoForeground":"#ADD7FF","debugIcon.stepOutForeground":"#ADD7FF","debugIcon.stepOverForeground":"#ADD7FF","debugIcon.stopForeground":"#d0679d","debugTokenExpression.boolean":"#89ddff","debugTokenExpression.error":"#d0679d","debugTokenExpression.name":"#e4f0fb","debugTokenExpression.number":"#5fb3a1","debugTokenExpression.string":"#89ddff","debugTokenExpression.value":"#a6accd99","debugToolBar.background":"#303340","debugView.exceptionLabelBackground":"#d0679d","debugView.exceptionLabelForeground":"#e4f0fb","debugView.stateLabelBackground":"#303340","debugView.stateLabelForeground":"#a6accd","debugView.valueChangedHighlight":"#89ddff",descriptionForeground:"#a6accdb3","diffEditor.diagonalFill":"#a6accd33","dropdown.foreground":"#e4f0fb",errorForeground:"#d0679d","extensionBadge.remoteBackground":"#303340","extensionBadge.remoteForeground":"#e4f0fb","extensionButton.prominentForeground":"#ffffff","extensionIcon.starForeground":"#fffac2",foreground:"#a6accd","gitDecoration.addedResourceForeground":"#5fb3a1","gitDecoration.conflictingResourceForeground":"#d0679d","gitDecoration.deletedResourceForeground":"#d0679d","gitDecoration.ignoredResourceForeground":"#767c9d70","gitDecoration.modifiedResourceForeground":"#ADD7FF","gitDecoration.renamedResourceForeground":"#5DE4c7","gitDecoration.stageDeletedResourceForeground":"#d0679d","gitDecoration.stageModifiedResourceForeground":"#ADD7FF","gitDecoration.submoduleResourceForeground":"#89ddff","gitDecoration.untrackedResourceForeground":"#5DE4c7","icon.foreground":"#a6accd","imagePreview.border":"#303340","inputOption.activeBackground":"#00000000","inputOption.activeBorder":"#00000000","inputOption.activeForeground":"#ffffff","inputValidation.errorBackground":"#1b1e28","inputValidation.infoBackground":"#506477","inputValidation.warningBackground":"#506477","list.deemphasizedForeground":"#767c9d","list.dropBackground":"#506477","list.filterMatchBackground":"#89ddff60","list.focusOutline":"#00000000","list.invalidItemForeground":"#fffac2","list.warningForeground":"#fffac2","listFilterWidget.background":"#303340","listFilterWidget.noMatchesOutline":"#d0679d","listFilterWidget.outline":"#00000000","list.activeSelectionBackground":"#30334080","list.activeSelectionForeground":"#e4f0fb","list.errorForeground":"#d0679d","list.focusBackground":"#30334080","list.focusForeground":"#a6accd","list.highlightForeground":"#5fb3a1","list.hoverBackground":"#30334080","list.hoverForeground":"#e4f0fb","list.inactiveSelectionBackground":"#30334080","list.inactiveSelectionForeground":"#e4f0fb","menu.background":"#1b1e28","menu.foreground":"#e4f0fb","menu.selectionBackground":"#303340","menu.selectionForeground":"#7390AA","menu.separatorBackground":"#767c9d","menubar.selectionBackground":"#717cb425","menubar.selectionForeground":"#a6accd","merge.commonContentBackground":"#a6accd29","merge.commonHeaderBackground":"#a6accd66","merge.currentContentBackground":"#5fb3a133","merge.currentHeaderBackground":"#5fb3a180","merge.incomingContentBackground":"#89ddff33","merge.incomingHeaderBackground":"#89ddff80","minimap.errorHighlight":"#d0679d","minimap.findMatchHighlight":"#ADD7FF","minimap.selectionHighlight":"#e4f0fb40","minimap.warningHighlight":"#fffac2","minimapGutter.addedBackground":"#5fb3a180","minimapGutter.deletedBackground":"#d0679d80","minimapGutter.modifiedBackground":"#ADD7FF80","minimapSlider.activeBackground":"#a6accd30","minimapSlider.background":"#a6accd20","minimapSlider.hoverBackground":"#a6accd30","notebook.cellBorderColor":"#1b1e28","notebook.cellInsertionIndicator":"#00000000","notebook.cellStatusBarItemHoverBackground":"#ffffff26","notebook.cellToolbarSeparator":"#303340","notebook.focusedCellBorder":"#00000000","notebook.focusedEditorBorder":"#00000000","notebook.focusedRowBorder":"#00000000","notebook.inactiveFocusedCellBorder":"#00000000","notebook.outputContainerBackgroundColor":"#1b1e28","notebook.rowHoverBackground":"#30334000","notebook.selectedCellBackground":"#303340","notebook.selectedCellBorder":"#1b1e28","notebook.symbolHighlightBackground":"#ffffff0b","notebookScrollbarSlider.activeBackground":"#a6accd25","notebookScrollbarSlider.background":"#00000050","notebookScrollbarSlider.hoverBackground":"#a6accd25","notebookStatusErrorIcon.foreground":"#d0679d","notebookStatusRunningIcon.foreground":"#a6accd","notebookStatusSuccessIcon.foreground":"#5fb3a1","notificationCenterHeader.background":"#303340","notificationLink.foreground":"#ADD7FF","notifications.border":"#303340","notificationsErrorIcon.foreground":"#d0679d","notificationsInfoIcon.foreground":"#ADD7FF","notificationsWarningIcon.foreground":"#fffac2","panel.background":"#1b1e28","panel.dropBorder":"#a6accd","panelSection.border":"#1b1e28","panelSection.dropBackground":"#7390AA80","panelSectionHeader.background":"#303340","panelTitle.activeBorder":"#a6accd","panelTitle.inactiveForeground":"#a6accd99","peekViewEditor.matchHighlightBackground":"#303340","peekViewResult.fileForeground":"#ffffff","peekViewResult.lineForeground":"#a6accd","peekViewResult.matchHighlightBackground":"#303340","peekViewResult.selectionBackground":"#717cb425","peekViewResult.selectionForeground":"#ffffff","peekViewTitleLabel.foreground":"#ffffff","pickerGroup.border":"#a6accd","pickerGroup.foreground":"#89ddff","problemsErrorIcon.foreground":"#d0679d","problemsInfoIcon.foreground":"#ADD7FF","problemsWarningIcon.foreground":"#fffac2","progressBar.background":"#89ddff","quickInput.background":"#1b1e28","quickInput.foreground":"#a6accd","quickInputList.focusBackground":"#a6accd10","quickInputTitle.background":"#ffffff1b","sash.hoverBorder":"#00000000","scm.providerBorder":"#e4f0fb10","searchEditor.findMatchBackground":"#ADD7FF50","searchEditor.textInputBorder":"#ffffff10","settings.checkboxBackground":"#1b1e28","settings.checkboxBorder":"#ffffff10","settings.checkboxForeground":"#e4f0fb","settings.dropdownBackground":"#1b1e28","settings.dropdownBorder":"#ffffff10","settings.dropdownForeground":"#e4f0fb","settings.dropdownListBorder":"#e4f0fb10","settings.focusedRowBackground":"#00000000","settings.headerForeground":"#e4f0fb","settings.modifiedItemIndicator":"#ADD7FF","settings.numberInputBackground":"#ffffff05","settings.numberInputBorder":"#ffffff10","settings.numberInputForeground":"#e4f0fb","settings.textInputBackground":"#ffffff05","settings.textInputBorder":"#ffffff10","settings.textInputForeground":"#e4f0fb","sideBar.dropBackground":"#7390AA80","sideBarSectionHeader.foreground":"#a6accd","statusBar.debuggingBackground":"#303340","statusBar.debuggingForeground":"#ffffff","statusBar.noFolderForeground":"#a6accd","statusBarItem.activeBackground":"#ffffff2e","statusBarItem.errorBackground":"#d0679d","statusBarItem.errorForeground":"#ffffff","statusBarItem.hoverBackground":"#ffffff1f","statusBarItem.prominentBackground":"#00000080","statusBarItem.prominentForeground":"#a6accd","statusBarItem.prominentHoverBackground":"#0000004d","statusBarItem.remoteBackground":"#303340","statusBarItem.remoteForeground":"#e4f0fb","symbolIcon.arrayForeground":"#a6accd","symbolIcon.booleanForeground":"#a6accd","symbolIcon.classForeground":"#fffac2","symbolIcon.colorForeground":"#a6accd","symbolIcon.constantForeground":"#a6accd","symbolIcon.constructorForeground":"#f087bd","symbolIcon.enumeratorForeground":"#fffac2","symbolIcon.enumeratorMemberForeground":"#ADD7FF","symbolIcon.eventForeground":"#fffac2","symbolIcon.fieldForeground":"#ADD7FF","symbolIcon.fileForeground":"#a6accd","symbolIcon.folderForeground":"#a6accd","symbolIcon.functionForeground":"#f087bd","symbolIcon.interfaceForeground":"#ADD7FF","symbolIcon.keyForeground":"#a6accd","symbolIcon.keywordForeground":"#a6accd","symbolIcon.methodForeground":"#f087bd","symbolIcon.moduleForeground":"#a6accd","symbolIcon.namespaceForeground":"#a6accd","symbolIcon.nullForeground":"#a6accd","symbolIcon.numberForeground":"#a6accd","symbolIcon.objectForeground":"#a6accd","symbolIcon.operatorForeground":"#a6accd","symbolIcon.packageForeground":"#a6accd","symbolIcon.propertyForeground":"#a6accd","symbolIcon.referenceForeground":"#a6accd","symbolIcon.snippetForeground":"#a6accd","symbolIcon.stringForeground":"#a6accd","symbolIcon.structForeground":"#a6accd","symbolIcon.textForeground":"#a6accd","symbolIcon.typeParameterForeground":"#a6accd","symbolIcon.unitForeground":"#a6accd","symbolIcon.variableForeground":"#ADD7FF","terminal.border":"#00000000","terminal.foreground":"#a6accd","terminal.selectionBackground":"#717cb425","terminalCommandDecoration.errorBackground":"#d0679d","terminalCommandDecoration.successBackground":"#5DE4c7","terminalCommandDecoration.defaultBackground":"#767c9d","testing.iconErrored":"#d0679d","testing.iconFailed":"#d0679d","testing.iconPassed":"#5DE4c7","testing.iconQueued":"#fffac2","testing.iconSkipped":"#7390AA","testing.iconUnset":"#7390AA","testing.message.error.decorationForeground":"#d0679d","testing.message.error.lineBackground":"#d0679d33","testing.message.hint.decorationForeground":"#7390AAb3","testing.message.info.decorationForeground":"#ADD7FF","testing.message.info.lineBackground":"#89ddff33","testing.message.warning.decorationForeground":"#fffac2","testing.message.warning.lineBackground":"#fffac233","testing.peekBorder":"#d0679d","testing.runAction":"#5DE4c7","textBlockQuote.background":"#7390AA1a","textBlockQuote.border":"#89ddff80","textCodeBlock.background":"#00000050","textPreformat.foreground":"#e4f0fb","textSeparator.foreground":"#ffffff2e","tree.tableColumnsBorder":"#a6accd20","welcomePage.progress.background":"#ffffff05","welcomePage.progress.foreground":"#5fb3a1","welcomePage.tileBackground":"#1b1e28","welcomePage.tileHoverBackground":"#303340"},tokenColors:[{scope:["comment","punctuation.definition.comment"],settings:{foreground:"#767c9dB0",fontStyle:"italic"}},{scope:"meta.parameters comment.block",settings:{foreground:"#a6accd",fontStyle:"italic"}},{scope:["variable.other.constant.object","variable.other.readwrite.alias","meta.import variable.other.readwrite"],settings:{foreground:"#ADD7FF"}},{scope:["variable.other","support.type.object"],settings:{foreground:"#e4f0fb"}},{scope:["variable.other.object.property","variable.other.property","support.variable.property"],settings:{foreground:"#e4f0fb"}},{scope:["entity.name.function.method","string.unquoted","meta.object.member"],settings:{foreground:"#ADD7FF"}},{scope:["variable - meta.import","constant.other.placeholder","meta.object-literal.key-meta.object.member"],settings:{foreground:"#e4f0fb"}},{scope:["keyword.control.flow"],settings:{foreground:"#5DE4c7c0"}},{scope:["keyword.operator.new","keyword.control.new"],settings:{foreground:"#5DE4c7"}},{scope:["variable.language.this","storage.modifier.async","storage.modifier","variable.language.super"],settings:{foreground:"#5DE4c7"}},{scope:["support.class.error","keyword.control.trycatch","keyword.operator.expression.delete","keyword.operator.expression.void","keyword.operator.void","keyword.operator.delete","constant.language.null","constant.language.boolean.false","constant.language.undefined"],settings:{foreground:"#d0679d"}},{scope:["variable.parameter","variable.other.readwrite.js","meta.definition.variable variable.other.constant","meta.definition.variable variable.other.readwrite"],settings:{foreground:"#e4f0fb"}},{scope:["constant.other.color"],settings:{foreground:"#ffffff"}},{scope:["invalid","invalid.illegal"],settings:{foreground:"#d0679d"}},{scope:["invalid.deprecated"],settings:{foreground:"#d0679d"}},{scope:["keyword.control","keyword"],settings:{foreground:"#a6accd"}},{scope:["keyword.operator","storage.type"],settings:{foreground:"#91B4D5"}},{scope:["keyword.control.module","keyword.control.import","keyword.control.export","keyword.control.default","meta.import","meta.export"],settings:{foreground:"#5DE4c7"}},{scope:["Keyword","Storage"],settings:{fontStyle:"italic"}},{scope:["keyword-meta.export"],settings:{foreground:"#ADD7FF"}},{scope:["meta.brace","punctuation","keyword.operator.existential"],settings:{foreground:"#a6accd"}},{scope:["constant.other.color","meta.tag","punctuation.definition.tag","punctuation.separator.inheritance.php","punctuation.definition.tag.html","punctuation.definition.tag.begin.html","punctuation.definition.tag.end.html","punctuation.section.embedded","keyword.other.template","keyword.other.substitution","meta.objectliteral"],settings:{foreground:"#e4f0fb"}},{scope:["support.class.component"],settings:{foreground:"#5DE4c7"}},{scope:["entity.name.tag","entity.name.tag","meta.tag.sgml","markup.deleted.git_gutter"],settings:{foreground:"#5DE4c7"}},{name:"Function Call",scope:"variable.function, source meta.function-call entity.name.function, source meta.function-call entity.name.function, source meta.method-call entity.name.function, meta.class meta.group.braces.curly meta.function-call variable.function, meta.class meta.field.declaration meta.function-call entity.name.function, variable.function.constructor, meta.block meta.var.expr meta.function-call entity.name.function, support.function.console, meta.function-call support.function, meta.property.class variable.other.class, punctuation.definition.entity.css",settings:{foreground:"#e4f0fbd0"}},{name:"Function/Class Name",scope:"entity.name.function, meta.class entity.name.class, meta.class entity.name.type.class, meta.class meta.function-call variable.function, keyword.other.important",settings:{foreground:"#ADD7FF"}},{scope:["source.cpp meta.block variable.other"],settings:{foreground:"#ADD7FF"}},{scope:["support.other.variable","string.other.link"],settings:{foreground:"#5DE4c7"}},{scope:["constant.numeric","support.constant","constant.character","constant.escape","keyword.other.unit","keyword.other","string","constant.language","constant.other.symbol","constant.other.key","markup.heading","markup.inserted.git_gutter","meta.group.braces.curly constant.other.object.key.js string.unquoted.label.js","text.html.derivative"],settings:{foreground:"#5DE4c7"}},{scope:["entity.other.inherited-class"],settings:{foreground:"#ADD7FF"}},{scope:["meta.type.declaration"],settings:{foreground:"#ADD7FF"}},{scope:["entity.name.type.alias"],settings:{foreground:"#a6accd"}},{scope:["keyword.control.as","entity.name.type","support.type"],settings:{foreground:"#a6accdC0"}},{scope:["entity.name","support.orther.namespace.use.php","meta.use.php","support.other.namespace.php","markup.changed.git_gutter","support.type.sys-types"],settings:{foreground:"#91B4D5"}},{scope:["support.class","support.constant","variable.other.constant.object"],settings:{foreground:"#ADD7FF"}},{scope:["source.css support.type.property-name","source.sass support.type.property-name","source.scss support.type.property-name","source.less support.type.property-name","source.stylus support.type.property-name","source.postcss support.type.property-name"],settings:{foreground:"#ADD7FF"}},{scope:["entity.name.module.js","variable.import.parameter.js","variable.other.class.js"],settings:{foreground:"#e4f0fb"}},{scope:["variable.language"],settings:{foreground:"#ADD7FF",fontStyle:"italic"}},{scope:["entity.name.method.js"],settings:{foreground:"#91B4D5",fontStyle:"italic"}},{scope:["meta.class-method.js entity.name.function.js","variable.function.constructor"],settings:{foreground:"#91B4D5"}},{scope:["entity.other.attribute-name"],settings:{foreground:"#91B4D5",fontStyle:"italic"}},{scope:["text.html.basic entity.other.attribute-name.html","text.html.basic entity.other.attribute-name"],settings:{foreground:"#5fb3a1",fontStyle:"italic"}},{scope:["entity.other.attribute-name.class"],settings:{foreground:"#5fb3a1"}},{scope:["source.sass keyword.control"],settings:{foreground:"#42675A"}},{scope:["markup.inserted"],settings:{foreground:"#ADD7FF"}},{scope:["markup.deleted"],settings:{foreground:"#506477"}},{scope:["markup.changed"],settings:{foreground:"#91B4D5"}},{scope:["string.regexp"],settings:{foreground:"#5fb3a1"}},{scope:["constant.character.escape"],settings:{foreground:"#5fb3a1"}},{scope:["*url*","*link*","*uri*"],settings:{foreground:"#ADD7FF",fontStyle:"underline"}},{scope:["tag.decorator.js entity.name.tag.js","tag.decorator.js punctuation.definition.tag.js"],settings:{foreground:"#42675A",fontStyle:"italic"}},{scope:["source.js constant.other.object.key.js string.unquoted.label.js"],settings:{foreground:"#5fb3a1",fontStyle:"italic"}},{scope:["source.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#e4f0fb"}},{scope:["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#ADD7FF"}},{scope:["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#91B4D5"}},{scope:["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#7390AA"}},{scope:["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#e4f0fb"}},{scope:["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#ADD7FF"}},{scope:["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#91B4D5"}},{scope:["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#7390AA"}},{scope:["source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json"],settings:{foreground:"#e4f0fb"}},{scope:["text.html.markdown","punctuation.definition.list_item.markdown"],settings:{foreground:"#e4f0fb"}},{scope:["text.html.markdown markup.inline.raw.markdown"],settings:{foreground:"#ADD7FF"}},{scope:["text.html.markdown markup.inline.raw.markdown punctuation.definition.raw.markdown"],settings:{foreground:"#91B4D5"}},{scope:["markdown.heading","markup.heading | markup.heading entity.name","markup.heading.markdown punctuation.definition.heading.markdown"],settings:{foreground:"#e4f0fb"}},{scope:["markup.italic"],settings:{foreground:"#7390AA",fontStyle:"italic"}},{scope:["markup.bold","markup.bold string"],settings:{foreground:"#7390AA",fontStyle:"bold"}},{scope:["markup.bold markup.italic","markup.italic markup.bold","markup.quote markup.bold","markup.bold markup.italic string","markup.italic markup.bold string","markup.quote markup.bold string"],settings:{foreground:"#7390AA",fontStyle:"bold"}},{scope:["markup.underline"],settings:{foreground:"#7390AA",fontStyle:"underline"}},{scope:["markup.strike"],settings:{fontStyle:"italic"}},{scope:["markup.quote punctuation.definition.blockquote.markdown"],settings:{foreground:"#5DE4c7"}},{scope:["markup.quote"],settings:{fontStyle:"italic"}},{scope:["string.other.link.title.markdown"],settings:{foreground:"#ADD7FF"}},{scope:["string.other.link.description.title.markdown"],settings:{foreground:"#ADD7FF"}},{scope:["constant.other.reference.link.markdown"],settings:{foreground:"#ADD7FF"}},{scope:["markup.raw.block"],settings:{foreground:"#ADD7FF"}},{scope:["markup.raw.block.fenced.markdown"],settings:{foreground:"#50647750"}},{scope:["punctuation.definition.fenced.markdown"],settings:{foreground:"#50647750"}},{scope:["markup.raw.block.fenced.markdown","variable.language.fenced.markdown","punctuation.section.class.end"],settings:{foreground:"#91B4D5"}},{scope:["variable.language.fenced.markdown"],settings:{foreground:"#91B4D5"}},{scope:["meta.separator"],settings:{foreground:"#7390AA",fontStyle:"bold"}},{scope:["markup.table"],settings:{foreground:"#ADD7FF"}},{scope:"token.info-token",settings:{foreground:"#89ddff"}},{scope:"token.warn-token",settings:{foreground:"#fffac2"}},{scope:"token.error-token",settings:{foreground:"#d0679d"}},{scope:"token.debug-token",settings:{foreground:"#e4f0fb"}},{scope:["entity.name.section.markdown","markup.heading.setext.1.markdown","markup.heading.setext.2.markdown"],settings:{foreground:"#e4f0fb",fontStyle:"bold"}},{scope:"meta.paragraph.markdown",settings:{foreground:"#e4f0fbd0"}},{scope:["punctuation.definition.from-file.diff","meta.diff.header.from-file"],settings:{foreground:"#506477"}},{scope:"markup.inline.raw.string.markdown",settings:{foreground:"#7390AA"}},{scope:"meta.separator.markdown",settings:{foreground:"#767c9d"}},{scope:"markup.bold.markdown",settings:{fontStyle:"bold"}},{scope:"markup.italic.markdown",settings:{fontStyle:"italic"}},{scope:["beginning.punctuation.definition.list.markdown","punctuation.definition.list.begin.markdown","markup.list.unnumbered.markdown"],settings:{foreground:"#ADD7FF"}},{scope:["string.other.link.description.title.markdown punctuation.definition.string.markdown","meta.link.inline.markdown string.other.link.description.title.markdown","string.other.link.description.title.markdown punctuation.definition.string.begin.markdown","string.other.link.description.title.markdown punctuation.definition.string.end.markdown","meta.image.inline.markdown string.other.link.description.title.markdown"],settings:{foreground:"#ADD7FF",fontStyle:""}},{scope:["meta.link.inline.markdown string.other.link.title.markdown","meta.link.reference.markdown string.other.link.title.markdown","meta.link.reference.def.markdown markup.underline.link.markdown"],settings:{foreground:"#ADD7FF",fontStyle:"underline"}},{scope:["markup.underline.link.markdown","string.other.link.description.title.markdown"],settings:{foreground:"#5DE4c7"}},{scope:["fenced_code.block.language","markup.inline.raw.markdown"],settings:{foreground:"#ADD7FF"}},{scope:["punctuation.definition.markdown","punctuation.definition.raw.markdown","punctuation.definition.heading.markdown","punctuation.definition.bold.markdown","punctuation.definition.italic.markdown"],settings:{foreground:"#ADD7FF"}},{scope:["source.ignore","log.error","log.exception"],settings:{foreground:"#d0679d"}},{scope:["log.verbose"],settings:{foreground:"#a6accd"}}]}; + +export { poimandres as default }; diff --git a/docs/shiki/dist/themes/rose-pine-82cbccbd.mjs b/docs/shiki/dist/themes/rose-pine-82cbccbd.mjs new file mode 100644 index 00000000..d1c2fe7a --- /dev/null +++ b/docs/shiki/dist/themes/rose-pine-82cbccbd.mjs @@ -0,0 +1,3 @@ +var rosePine = {name:"rose-pine",type:"dark",colors:{"activityBar.activeBorder":"#e0def4","activityBar.background":"#191724","activityBar.dropBorder":"#26233a","activityBar.foreground":"#e0def4","activityBar.inactiveForeground":"#908caa","activityBarBadge.background":"#ebbcba","activityBarBadge.foreground":"#191724","badge.background":"#ebbcba","badge.foreground":"#191724","banner.background":"#1f1d2e","banner.foreground":"#e0def4","banner.iconForeground":"#908caa","breadcrumb.activeSelectionForeground":"#ebbcba","breadcrumb.background":"#191724","breadcrumb.focusForeground":"#908caa","breadcrumb.foreground":"#6e6a86","breadcrumbPicker.background":"#1f1d2e","button.background":"#ebbcba","button.foreground":"#191724","button.hoverBackground":"#ebbcbae6","button.secondaryBackground":"#1f1d2e","button.secondaryForeground":"#e0def4","button.secondaryHoverBackground":"#26233a","charts.blue":"#9ccfd8","charts.foreground":"#e0def4","charts.green":"#31748f","charts.lines":"#908caa","charts.orange":"#ebbcba","charts.purple":"#c4a7e7","charts.red":"#eb6f92","charts.yellow":"#f6c177","checkbox.background":"#1f1d2e","checkbox.border":"#6e6a8633","checkbox.foreground":"#e0def4","debugExceptionWidget.background":"#1f1d2e","debugExceptionWidget.border":"#6e6a8633","debugIcon.breakpointCurrentStackframeForeground":"#908caa","debugIcon.breakpointDisabledForeground":"#908caa","debugIcon.breakpointForeground":"#908caa","debugIcon.breakpointStackframeForeground":"#908caa","debugIcon.breakpointUnverifiedForeground":"#908caa","debugIcon.continueForeground":"#908caa","debugIcon.disconnectForeground":"#908caa","debugIcon.pauseForeground":"#908caa","debugIcon.restartForeground":"#908caa","debugIcon.startForeground":"#908caa","debugIcon.stepBackForeground":"#908caa","debugIcon.stepIntoForeground":"#908caa","debugIcon.stepOutForeground":"#908caa","debugIcon.stepOverForeground":"#908caa","debugIcon.stopForeground":"#eb6f92","debugToolBar.background":"#1f1d2e","debugToolBar.border":"#26233a",descriptionForeground:"#908caa","diffEditor.border":"#26233a","diffEditor.diagonalFill":"#6e6a8666","diffEditor.insertedLineBackground":"#9ccfd826","diffEditor.insertedTextBackground":"#9ccfd826","diffEditor.removedLineBackground":"#eb6f9226","diffEditor.removedTextBackground":"#eb6f9226","diffEditorOverview.insertedForeground":"#9ccfd880","diffEditorOverview.removedForeground":"#eb6f9280","dropdown.background":"#1f1d2e","dropdown.border":"#6e6a8633","dropdown.foreground":"#e0def4","dropdown.listBackground":"#1f1d2e","editor.background":"#191724","editor.findMatchBackground":"#6e6a8666","editor.findMatchHighlightBackground":"#6e6a8666","editor.findRangeHighlightBackground":"#6e6a8666","editor.findRangeHighlightBorder":"#0000","editor.focusedStackFrameHighlightBackground":"#6e6a8633","editor.foldBackground":"#1f1d2e","editor.foreground":"#e0def4","editor.hoverHighlightBackground":"#0000","editor.inactiveSelectionBackground":"#6e6a861a","editor.inlineValuesBackground":"#0000","editor.inlineValuesForeground":"#908caa","editor.lineHighlightBackground":"#6e6a861a","editor.lineHighlightBorder":"#0000","editor.linkedEditingBackground":"#1f1d2e","editor.rangeHighlightBackground":"#6e6a861a","editor.selectionBackground":"#6e6a8633","editor.selectionForeground":"#e0def4","editor.selectionHighlightBackground":"#6e6a8633","editor.selectionHighlightBorder":"#191724","editor.snippetFinalTabstopHighlightBackground":"#6e6a8633","editor.snippetFinalTabstopHighlightBorder":"#1f1d2e","editor.snippetTabstopHighlightBackground":"#6e6a8633","editor.snippetTabstopHighlightBorder":"#1f1d2e","editor.stackFrameHighlightBackground":"#6e6a8633","editor.symbolHighlightBackground":"#6e6a8633","editor.symbolHighlightBorder":"#0000","editor.wordHighlightBackground":"#6e6a8633","editor.wordHighlightBorder":"#0000","editor.wordHighlightStrongBackground":"#6e6a8633","editor.wordHighlightStrongBorder":"#6e6a8633","editorBracketHighlight.foreground1":"#eb6f9280","editorBracketHighlight.foreground2":"#31748f80","editorBracketHighlight.foreground3":"#f6c17780","editorBracketHighlight.foreground4":"#9ccfd880","editorBracketHighlight.foreground5":"#ebbcba80","editorBracketHighlight.foreground6":"#c4a7e780","editorBracketMatch.background":"#0000","editorBracketMatch.border":"#908caa","editorBracketPairGuide.activeBackground1":"#31748f","editorBracketPairGuide.activeBackground2":"#ebbcba","editorBracketPairGuide.activeBackground3":"#c4a7e7","editorBracketPairGuide.activeBackground4":"#9ccfd8","editorBracketPairGuide.activeBackground5":"#f6c177","editorBracketPairGuide.activeBackground6":"#eb6f92","editorBracketPairGuide.background1":"#31748f80","editorBracketPairGuide.background2":"#ebbcba80","editorBracketPairGuide.background3":"#c4a7e780","editorBracketPairGuide.background4":"#9ccfd880","editorBracketPairGuide.background5":"#f6c17780","editorBracketPairGuide.background6":"#eb6f9280","editorCodeLens.foreground":"#ebbcba","editorCursor.background":"#e0def4","editorCursor.foreground":"#6e6a86","editorError.border":"#0000","editorError.foreground":"#eb6f92","editorGhostText.foreground":"#908caa","editorGroup.border":"#0000","editorGroup.dropBackground":"#1f1d2e","editorGroup.emptyBackground":"#0000","editorGroup.focusedEmptyBorder":"#0000","editorGroupHeader.noTabsBackground":"#0000","editorGroupHeader.tabsBackground":"#0000","editorGroupHeader.tabsBorder":"#0000","editorGutter.addedBackground":"#9ccfd8","editorGutter.background":"#191724","editorGutter.commentRangeForeground":"#908caa","editorGutter.deletedBackground":"#eb6f92","editorGutter.foldingControlForeground":"#c4a7e7","editorGutter.modifiedBackground":"#ebbcba","editorHint.border":"#0000","editorHint.foreground":"#908caa","editorHoverWidget.background":"#1f1d2e","editorHoverWidget.border":"#6e6a8680","editorHoverWidget.foreground":"#908caa","editorHoverWidget.highlightForeground":"#e0def4","editorHoverWidget.statusBarBackground":"#0000","editorIndentGuide.activeBackground":"#6e6a86","editorIndentGuide.background":"#6e6a8666","editorInfo.border":"#26233a","editorInfo.foreground":"#9ccfd8","editorInlayHint.background":"#26233a","editorInlayHint.foreground":"#908caa","editorInlayHint.parameterBackground":"#26233a","editorInlayHint.parameterForeground":"#c4a7e7","editorInlayHint.typeBackground":"#26233a","editorInlayHint.typeForeground":"#9ccfd8","editorLightBulb.foreground":"#31748f","editorLightBulbAutoFix.foreground":"#ebbcba","editorLineNumber.activeForeground":"#e0def4","editorLineNumber.foreground":"#908caa","editorLink.activeForeground":"#ebbcba","editorMarkerNavigation.background":"#1f1d2e","editorMarkerNavigationError.background":"#1f1d2e","editorMarkerNavigationInfo.background":"#1f1d2e","editorMarkerNavigationWarning.background":"#1f1d2e","editorOverviewRuler.addedForeground":"#9ccfd880","editorOverviewRuler.background":"#191724","editorOverviewRuler.border":"#6e6a8666","editorOverviewRuler.bracketMatchForeground":"#908caa","editorOverviewRuler.commonContentForeground":"#6e6a861a","editorOverviewRuler.currentContentForeground":"#6e6a8633","editorOverviewRuler.deletedForeground":"#eb6f9280","editorOverviewRuler.errorForeground":"#eb6f9280","editorOverviewRuler.findMatchForeground":"#6e6a8666","editorOverviewRuler.incomingContentForeground":"#c4a7e780","editorOverviewRuler.infoForeground":"#9ccfd880","editorOverviewRuler.modifiedForeground":"#ebbcba80","editorOverviewRuler.rangeHighlightForeground":"#6e6a8666","editorOverviewRuler.selectionHighlightForeground":"#6e6a8666","editorOverviewRuler.warningForeground":"#f6c17780","editorOverviewRuler.wordHighlightForeground":"#6e6a8633","editorOverviewRuler.wordHighlightStrongForeground":"#6e6a8666","editorPane.background":"#0000","editorRuler.foreground":"#6e6a8666","editorSuggestWidget.background":"#1f1d2e","editorSuggestWidget.border":"#0000","editorSuggestWidget.focusHighlightForeground":"#ebbcba","editorSuggestWidget.foreground":"#908caa","editorSuggestWidget.highlightForeground":"#ebbcba","editorSuggestWidget.selectedBackground":"#6e6a8633","editorSuggestWidget.selectedForeground":"#e0def4","editorSuggestWidget.selectedIconForeground":"#e0def4","editorUnnecessaryCode.border":"#0000","editorUnnecessaryCode.opacity":"#e0def480","editorWarning.border":"#0000","editorWarning.foreground":"#f6c177","editorWhitespace.foreground":"#6e6a86","editorWidget.background":"#1f1d2e","editorWidget.border":"#26233a","editorWidget.foreground":"#908caa","editorWidget.resizeBorder":"#6e6a86",errorForeground:"#eb6f92","extensionBadge.remoteBackground":"#c4a7e7","extensionBadge.remoteForeground":"#191724","extensionButton.prominentBackground":"#ebbcba","extensionButton.prominentForeground":"#191724","extensionButton.prominentHoverBackground":"#ebbcbae6","extensionIcon.preReleaseForeground":"#31748f","extensionIcon.starForeground":"#ebbcba","extensionIcon.verifiedForeground":"#c4a7e7",focusBorder:"#6e6a8633",foreground:"#e0def4","gitDecoration.addedResourceForeground":"#9ccfd8","gitDecoration.conflictingResourceForeground":"#eb6f92","gitDecoration.deletedResourceForeground":"#908caa","gitDecoration.ignoredResourceForeground":"#6e6a86","gitDecoration.modifiedResourceForeground":"#ebbcba","gitDecoration.renamedResourceForeground":"#31748f","gitDecoration.stageDeletedResourceForeground":"#eb6f92","gitDecoration.stageModifiedResourceForeground":"#c4a7e7","gitDecoration.submoduleResourceForeground":"#f6c177","gitDecoration.untrackedResourceForeground":"#f6c177","icon.foreground":"#908caa","input.background":"#26233a80","input.border":"#6e6a8633","input.foreground":"#e0def4","input.placeholderForeground":"#908caa","inputOption.activeBackground":"#ebbcba26","inputOption.activeForeground":"#ebbcba","inputValidation.errorBackground":"#1f1d2e","inputValidation.errorBorder":"#6e6a8666","inputValidation.errorForeground":"#eb6f92","inputValidation.infoBackground":"#1f1d2e","inputValidation.infoBorder":"#6e6a8666","inputValidation.infoForeground":"#9ccfd8","inputValidation.warningBackground":"#1f1d2e","inputValidation.warningBorder":"#6e6a8666","inputValidation.warningForeground":"#9ccfd880","keybindingLabel.background":"#26233a","keybindingLabel.border":"#6e6a8666","keybindingLabel.bottomBorder":"#6e6a8666","keybindingLabel.foreground":"#c4a7e7","keybindingTable.headerBackground":"#26233a","keybindingTable.rowsBackground":"#1f1d2e","list.activeSelectionBackground":"#6e6a8633","list.activeSelectionForeground":"#e0def4","list.deemphasizedForeground":"#908caa","list.dropBackground":"#1f1d2e","list.errorForeground":"#eb6f92","list.filterMatchBackground":"#1f1d2e","list.filterMatchBorder":"#ebbcba","list.focusBackground":"#6e6a8666","list.focusForeground":"#e0def4","list.focusOutline":"#6e6a8633","list.highlightForeground":"#ebbcba","list.hoverBackground":"#6e6a861a","list.hoverForeground":"#e0def4","list.inactiveFocusBackground":"#6e6a861a","list.inactiveSelectionBackground":"#1f1d2e","list.inactiveSelectionForeground":"#e0def4","list.invalidItemForeground":"#eb6f92","list.warningForeground":"#f6c177","listFilterWidget.background":"#1f1d2e","listFilterWidget.noMatchesOutline":"#eb6f92","listFilterWidget.outline":"#26233a","menu.background":"#1f1d2e","menu.border":"#6e6a861a","menu.foreground":"#e0def4","menu.selectionBackground":"#6e6a8633","menu.selectionBorder":"#26233a","menu.selectionForeground":"#e0def4","menu.separatorBackground":"#6e6a8666","menubar.selectionBackground":"#6e6a8633","menubar.selectionBorder":"#6e6a861a","menubar.selectionForeground":"#e0def4","merge.border":"#26233a","merge.commonContentBackground":"#6e6a8633","merge.commonHeaderBackground":"#6e6a8633","merge.currentContentBackground":"#f6c17780","merge.currentHeaderBackground":"#f6c17780","merge.incomingContentBackground":"#9ccfd880","merge.incomingHeaderBackground":"#9ccfd880","minimap.background":"#1f1d2e","minimap.errorHighlight":"#eb6f9280","minimap.findMatchHighlight":"#6e6a8633","minimap.selectionHighlight":"#6e6a8633","minimap.warningHighlight":"#f6c17780","minimapGutter.addedBackground":"#9ccfd8","minimapGutter.deletedBackground":"#eb6f92","minimapGutter.modifiedBackground":"#ebbcba","minimapSlider.activeBackground":"#6e6a8666","minimapSlider.background":"#6e6a8633","minimapSlider.hoverBackground":"#6e6a8633","notebook.cellBorderColor":"#9ccfd880","notebook.cellEditorBackground":"#1f1d2e","notebook.cellHoverBackground":"#26233a80","notebook.focusedCellBackground":"#6e6a861a","notebook.focusedCellBorder":"#9ccfd8","notebook.outputContainerBackgroundColor":"#6e6a861a","notificationCenter.border":"#6e6a8633","notificationCenterHeader.background":"#1f1d2e","notificationCenterHeader.foreground":"#908caa","notificationLink.foreground":"#c4a7e7","notifications.background":"#1f1d2e","notifications.border":"#6e6a8633","notifications.foreground":"#e0def4","notificationsErrorIcon.foreground":"#eb6f92","notificationsInfoIcon.foreground":"#9ccfd8","notificationsWarningIcon.foreground":"#f6c177","notificationToast.border":"#6e6a8633","panel.background":"#1f1d2e","panel.border":"#0000","panel.dropBorder":"#26233a","panelInput.border":"#1f1d2e","panelSection.dropBackground":"#6e6a8633","panelSectionHeader.background":"#1f1d2e","panelSectionHeader.foreground":"#e0def4","panelTitle.activeBorder":"#6e6a8666","panelTitle.activeForeground":"#e0def4","panelTitle.inactiveForeground":"#908caa","peekView.border":"#26233a","peekViewEditor.background":"#1f1d2e","peekViewEditor.matchHighlightBackground":"#6e6a8666","peekViewResult.background":"#1f1d2e","peekViewResult.fileForeground":"#908caa","peekViewResult.lineForeground":"#908caa","peekViewResult.matchHighlightBackground":"#6e6a8666","peekViewResult.selectionBackground":"#6e6a8633","peekViewResult.selectionForeground":"#e0def4","peekViewTitle.background":"#26233a","peekViewTitleDescription.foreground":"#908caa","pickerGroup.border":"#6e6a8666","pickerGroup.foreground":"#c4a7e7","ports.iconRunningProcessForeground":"#ebbcba","problemsErrorIcon.foreground":"#eb6f92","problemsInfoIcon.foreground":"#9ccfd8","problemsWarningIcon.foreground":"#f6c177","progressBar.background":"#ebbcba","quickInput.background":"#1f1d2e","quickInput.foreground":"#908caa","quickInputList.focusBackground":"#6e6a8633","quickInputList.focusForeground":"#e0def4","quickInputList.focusIconForeground":"#e0def4","scrollbar.shadow":"#1f1d2e4d","scrollbarSlider.activeBackground":"#31748f80","scrollbarSlider.background":"#6e6a8633","scrollbarSlider.hoverBackground":"#6e6a8666","searchEditor.findMatchBackground":"#6e6a8633","selection.background":"#6e6a8666","settings.focusedRowBackground":"#1f1d2e","settings.headerForeground":"#e0def4","settings.modifiedItemIndicator":"#ebbcba","settings.focusedRowBorder":"#6e6a8633","settings.rowHoverBackground":"#1f1d2e","sideBar.background":"#191724","sideBar.dropBackground":"#1f1d2e","sideBar.foreground":"#908caa","sideBarSectionHeader.background":"#0000","sideBarSectionHeader.border":"#6e6a8633","statusBar.background":"#191724","statusBar.debuggingBackground":"#c4a7e7","statusBar.debuggingForeground":"#191724","statusBar.foreground":"#908caa","statusBar.noFolderBackground":"#191724","statusBar.noFolderForeground":"#908caa","statusBarItem.activeBackground":"#6e6a8666","statusBarItem.hoverBackground":"#6e6a8633","statusBarItem.prominentBackground":"#26233a","statusBarItem.prominentForeground":"#e0def4","statusBarItem.prominentHoverBackground":"#6e6a8633","statusBarItem.remoteBackground":"#191724","statusBarItem.remoteForeground":"#f6c177","statusBarItem.errorBackground":"#191724","statusBarItem.errorForeground":"#eb6f92","symbolIcon.arrayForeground":"#908caa","symbolIcon.classForeground":"#908caa","symbolIcon.colorForeground":"#908caa","symbolIcon.constantForeground":"#908caa","symbolIcon.constructorForeground":"#908caa","symbolIcon.enumeratorForeground":"#908caa","symbolIcon.enumeratorMemberForeground":"#908caa","symbolIcon.eventForeground":"#908caa","symbolIcon.fieldForeground":"#908caa","symbolIcon.fileForeground":"#908caa","symbolIcon.folderForeground":"#908caa","symbolIcon.functionForeground":"#908caa","symbolIcon.interfaceForeground":"#908caa","symbolIcon.keyForeground":"#908caa","symbolIcon.keywordForeground":"#908caa","symbolIcon.methodForeground":"#908caa","symbolIcon.moduleForeground":"#908caa","symbolIcon.namespaceForeground":"#908caa","symbolIcon.nullForeground":"#908caa","symbolIcon.numberForeground":"#908caa","symbolIcon.objectForeground":"#908caa","symbolIcon.operatorForeground":"#908caa","symbolIcon.packageForeground":"#908caa","symbolIcon.propertyForeground":"#908caa","symbolIcon.referenceForeground":"#908caa","symbolIcon.snippetForeground":"#908caa","symbolIcon.stringForeground":"#908caa","symbolIcon.structForeground":"#908caa","symbolIcon.textForeground":"#908caa","symbolIcon.typeParameterForeground":"#908caa","symbolIcon.unitForeground":"#908caa","symbolIcon.variableForeground":"#908caa","tab.activeBackground":"#6e6a861a","tab.activeForeground":"#e0def4","tab.activeModifiedBorder":"#9ccfd8","tab.border":"#0000","tab.hoverBackground":"#6e6a8633","tab.inactiveBackground":"#0000","tab.inactiveForeground":"#908caa","tab.inactiveModifiedBorder":"#9ccfd880","tab.lastPinnedBorder":"#6e6a86","tab.unfocusedActiveBackground":"#0000","tab.unfocusedHoverBackground":"#0000","tab.unfocusedInactiveBackground":"#0000","tab.unfocusedInactiveModifiedBorder":"#9ccfd880","terminal.ansiBlack":"#26233a","terminal.ansiBlue":"#9ccfd8","terminal.ansiBrightBlack":"#908caa","terminal.ansiBrightBlue":"#9ccfd8","terminal.ansiBrightCyan":"#ebbcba","terminal.ansiBrightGreen":"#31748f","terminal.ansiBrightMagenta":"#c4a7e7","terminal.ansiBrightRed":"#eb6f92","terminal.ansiBrightWhite":"#e0def4","terminal.ansiBrightYellow":"#f6c177","terminal.ansiCyan":"#ebbcba","terminal.ansiGreen":"#31748f","terminal.ansiMagenta":"#c4a7e7","terminal.ansiRed":"#eb6f92","terminal.ansiWhite":"#e0def4","terminal.ansiYellow":"#f6c177","terminal.dropBackground":"#6e6a8633","terminal.foreground":"#e0def4","terminal.selectionBackground":"#6e6a8633","terminal.tab.activeBorder":"#e0def4","terminalCursor.background":"#e0def4","terminalCursor.foreground":"#6e6a86","textBlockQuote.background":"#1f1d2e","textBlockQuote.border":"#6e6a8633","textCodeBlock.background":"#1f1d2e","textLink.activeForeground":"#c4a7e7e6","textLink.foreground":"#c4a7e7","textPreformat.foreground":"#f6c177","textSeparator.foreground":"#908caa","titleBar.activeBackground":"#191724","titleBar.activeForeground":"#908caa","titleBar.inactiveBackground":"#1f1d2e","titleBar.inactiveForeground":"#908caa","toolbar.activeBackground":"#6e6a8666","toolbar.hoverBackground":"#6e6a8633","tree.indentGuidesStroke":"#908caa","walkThrough.embeddedEditorBackground":"#191724","welcomePage.background":"#191724","welcomePage.buttonBackground":"#1f1d2e","welcomePage.buttonHoverBackground":"#26233a","widget.shadow":"#1f1d2e4d","window.activeBorder":"#1f1d2e","window.inactiveBorder":"#1f1d2e"},tokenColors:[{scope:["comment"],settings:{foreground:"#6e6a86",fontStyle:"italic"}},{scope:["constant"],settings:{foreground:"#31748f"}},{scope:["constant.numeric","constant.language"],settings:{foreground:"#ebbcba"}},{scope:["entity.name"],settings:{foreground:"#ebbcba"}},{scope:["entity.name.section","entity.name.tag","entity.name.namespace","entity.name.type"],settings:{foreground:"#9ccfd8"}},{scope:["entity.other.attribute-name","entity.other.inherited-class"],settings:{foreground:"#c4a7e7",fontStyle:"italic"}},{scope:["invalid"],settings:{foreground:"#eb6f92"}},{scope:["invalid.deprecated"],settings:{foreground:"#908caa"}},{scope:["keyword"],settings:{foreground:"#31748f"}},{scope:["markup.inserted.diff"],settings:{foreground:"#9ccfd8"}},{scope:["markup.deleted.diff"],settings:{foreground:"#eb6f92"}},{scope:"markup.heading",settings:{fontStyle:"bold"}},{scope:"markup.bold.markdown",settings:{fontStyle:"bold"}},{scope:"markup.italic.markdown",settings:{fontStyle:"italic"}},{scope:["meta.diff.range"],settings:{foreground:"#c4a7e7"}},{scope:["meta.tag","meta.brace"],settings:{foreground:"#e0def4"}},{scope:["meta.import","meta.export"],settings:{foreground:"#31748f"}},{scope:"meta.directive.vue",settings:{foreground:"#c4a7e7",fontStyle:"italic"}},{scope:"meta.property-name.css",settings:{foreground:"#9ccfd8"}},{scope:"meta.property-value.css",settings:{foreground:"#f6c177"}},{scope:"meta.tag.other.html",settings:{foreground:"#908caa"}},{scope:["punctuation"],settings:{foreground:"#908caa"}},{scope:["punctuation.accessor"],settings:{foreground:"#31748f"}},{scope:["punctuation.definition.string"],settings:{foreground:"#f6c177"}},{scope:["punctuation.definition.tag"],settings:{foreground:"#6e6a86"}},{scope:["storage.type","storage.modifier"],settings:{foreground:"#31748f"}},{scope:["string"],settings:{foreground:"#f6c177"}},{scope:["support"],settings:{foreground:"#9ccfd8"}},{scope:["support.constant"],settings:{foreground:"#f6c177"}},{scope:["support.function"],settings:{foreground:"#eb6f92",fontStyle:"italic"}},{scope:["variable"],settings:{foreground:"#ebbcba",fontStyle:"italic"}},{scope:["variable.other","variable.language","variable.function","variable.argument"],settings:{foreground:"#e0def4"}},{scope:["variable.parameter"],settings:{foreground:"#c4a7e7"}}]}; + +export { rosePine as default }; diff --git a/docs/shiki/dist/themes/rose-pine-dawn-c3c73070.mjs b/docs/shiki/dist/themes/rose-pine-dawn-c3c73070.mjs new file mode 100644 index 00000000..81342498 --- /dev/null +++ b/docs/shiki/dist/themes/rose-pine-dawn-c3c73070.mjs @@ -0,0 +1,3 @@ +var rosePineDawn = {name:"rose-pine-dawn",type:"light",colors:{"activityBar.activeBorder":"#575279","activityBar.background":"#faf4ed","activityBar.dropBorder":"#f2e9e1","activityBar.foreground":"#575279","activityBar.inactiveForeground":"#797593","activityBarBadge.background":"#d7827e","activityBarBadge.foreground":"#faf4ed","badge.background":"#d7827e","badge.foreground":"#faf4ed","banner.background":"#fffaf3","banner.foreground":"#575279","banner.iconForeground":"#797593","breadcrumb.activeSelectionForeground":"#d7827e","breadcrumb.background":"#faf4ed","breadcrumb.focusForeground":"#797593","breadcrumb.foreground":"#9893a5","breadcrumbPicker.background":"#fffaf3","button.background":"#d7827e","button.foreground":"#faf4ed","button.hoverBackground":"#d7827ee6","button.secondaryBackground":"#fffaf3","button.secondaryForeground":"#575279","button.secondaryHoverBackground":"#f2e9e1","charts.blue":"#56949f","charts.foreground":"#575279","charts.green":"#286983","charts.lines":"#797593","charts.orange":"#d7827e","charts.purple":"#907aa9","charts.red":"#b4637a","charts.yellow":"#ea9d34","checkbox.background":"#fffaf3","checkbox.border":"#6e6a8614","checkbox.foreground":"#575279","debugExceptionWidget.background":"#fffaf3","debugExceptionWidget.border":"#6e6a8614","debugIcon.breakpointCurrentStackframeForeground":"#797593","debugIcon.breakpointDisabledForeground":"#797593","debugIcon.breakpointForeground":"#797593","debugIcon.breakpointStackframeForeground":"#797593","debugIcon.breakpointUnverifiedForeground":"#797593","debugIcon.continueForeground":"#797593","debugIcon.disconnectForeground":"#797593","debugIcon.pauseForeground":"#797593","debugIcon.restartForeground":"#797593","debugIcon.startForeground":"#797593","debugIcon.stepBackForeground":"#797593","debugIcon.stepIntoForeground":"#797593","debugIcon.stepOutForeground":"#797593","debugIcon.stepOverForeground":"#797593","debugIcon.stopForeground":"#b4637a","debugToolBar.background":"#fffaf3","debugToolBar.border":"#f2e9e1",descriptionForeground:"#797593","diffEditor.border":"#f2e9e1","diffEditor.diagonalFill":"#6e6a8626","diffEditor.insertedLineBackground":"#56949f26","diffEditor.insertedTextBackground":"#56949f26","diffEditor.removedLineBackground":"#b4637a26","diffEditor.removedTextBackground":"#b4637a26","diffEditorOverview.insertedForeground":"#56949f80","diffEditorOverview.removedForeground":"#b4637a80","dropdown.background":"#fffaf3","dropdown.border":"#6e6a8614","dropdown.foreground":"#575279","dropdown.listBackground":"#fffaf3","editor.background":"#faf4ed","editor.findMatchBackground":"#6e6a8626","editor.findMatchHighlightBackground":"#6e6a8626","editor.findRangeHighlightBackground":"#6e6a8626","editor.findRangeHighlightBorder":"#0000","editor.focusedStackFrameHighlightBackground":"#6e6a8614","editor.foldBackground":"#fffaf3","editor.foreground":"#575279","editor.hoverHighlightBackground":"#0000","editor.inactiveSelectionBackground":"#6e6a860d","editor.inlineValuesBackground":"#0000","editor.inlineValuesForeground":"#797593","editor.lineHighlightBackground":"#6e6a860d","editor.lineHighlightBorder":"#0000","editor.linkedEditingBackground":"#fffaf3","editor.rangeHighlightBackground":"#6e6a860d","editor.selectionBackground":"#6e6a8614","editor.selectionForeground":"#575279","editor.selectionHighlightBackground":"#6e6a8614","editor.selectionHighlightBorder":"#faf4ed","editor.snippetFinalTabstopHighlightBackground":"#6e6a8614","editor.snippetFinalTabstopHighlightBorder":"#fffaf3","editor.snippetTabstopHighlightBackground":"#6e6a8614","editor.snippetTabstopHighlightBorder":"#fffaf3","editor.stackFrameHighlightBackground":"#6e6a8614","editor.symbolHighlightBackground":"#6e6a8614","editor.symbolHighlightBorder":"#0000","editor.wordHighlightBackground":"#6e6a8614","editor.wordHighlightBorder":"#0000","editor.wordHighlightStrongBackground":"#6e6a8614","editor.wordHighlightStrongBorder":"#6e6a8614","editorBracketHighlight.foreground1":"#b4637a80","editorBracketHighlight.foreground2":"#28698380","editorBracketHighlight.foreground3":"#ea9d3480","editorBracketHighlight.foreground4":"#56949f80","editorBracketHighlight.foreground5":"#d7827e80","editorBracketHighlight.foreground6":"#907aa980","editorBracketMatch.background":"#0000","editorBracketMatch.border":"#797593","editorBracketPairGuide.activeBackground1":"#286983","editorBracketPairGuide.activeBackground2":"#d7827e","editorBracketPairGuide.activeBackground3":"#907aa9","editorBracketPairGuide.activeBackground4":"#56949f","editorBracketPairGuide.activeBackground5":"#ea9d34","editorBracketPairGuide.activeBackground6":"#b4637a","editorBracketPairGuide.background1":"#28698380","editorBracketPairGuide.background2":"#d7827e80","editorBracketPairGuide.background3":"#907aa980","editorBracketPairGuide.background4":"#56949f80","editorBracketPairGuide.background5":"#ea9d3480","editorBracketPairGuide.background6":"#b4637a80","editorCodeLens.foreground":"#d7827e","editorCursor.background":"#575279","editorCursor.foreground":"#9893a5","editorError.border":"#0000","editorError.foreground":"#b4637a","editorGhostText.foreground":"#797593","editorGroup.border":"#0000","editorGroup.dropBackground":"#fffaf3","editorGroup.emptyBackground":"#0000","editorGroup.focusedEmptyBorder":"#0000","editorGroupHeader.noTabsBackground":"#0000","editorGroupHeader.tabsBackground":"#0000","editorGroupHeader.tabsBorder":"#0000","editorGutter.addedBackground":"#56949f","editorGutter.background":"#faf4ed","editorGutter.commentRangeForeground":"#797593","editorGutter.deletedBackground":"#b4637a","editorGutter.foldingControlForeground":"#907aa9","editorGutter.modifiedBackground":"#d7827e","editorHint.border":"#0000","editorHint.foreground":"#797593","editorHoverWidget.background":"#fffaf3","editorHoverWidget.border":"#9893a580","editorHoverWidget.foreground":"#797593","editorHoverWidget.highlightForeground":"#575279","editorHoverWidget.statusBarBackground":"#0000","editorIndentGuide.activeBackground":"#9893a5","editorIndentGuide.background":"#6e6a8626","editorInfo.border":"#f2e9e1","editorInfo.foreground":"#56949f","editorInlayHint.background":"#f2e9e1","editorInlayHint.foreground":"#797593","editorInlayHint.parameterBackground":"#f2e9e1","editorInlayHint.parameterForeground":"#907aa9","editorInlayHint.typeBackground":"#f2e9e1","editorInlayHint.typeForeground":"#56949f","editorLightBulb.foreground":"#286983","editorLightBulbAutoFix.foreground":"#d7827e","editorLineNumber.activeForeground":"#575279","editorLineNumber.foreground":"#797593","editorLink.activeForeground":"#d7827e","editorMarkerNavigation.background":"#fffaf3","editorMarkerNavigationError.background":"#fffaf3","editorMarkerNavigationInfo.background":"#fffaf3","editorMarkerNavigationWarning.background":"#fffaf3","editorOverviewRuler.addedForeground":"#56949f80","editorOverviewRuler.background":"#faf4ed","editorOverviewRuler.border":"#6e6a8626","editorOverviewRuler.bracketMatchForeground":"#797593","editorOverviewRuler.commonContentForeground":"#6e6a860d","editorOverviewRuler.currentContentForeground":"#6e6a8614","editorOverviewRuler.deletedForeground":"#b4637a80","editorOverviewRuler.errorForeground":"#b4637a80","editorOverviewRuler.findMatchForeground":"#6e6a8626","editorOverviewRuler.incomingContentForeground":"#907aa980","editorOverviewRuler.infoForeground":"#56949f80","editorOverviewRuler.modifiedForeground":"#d7827e80","editorOverviewRuler.rangeHighlightForeground":"#6e6a8626","editorOverviewRuler.selectionHighlightForeground":"#6e6a8626","editorOverviewRuler.warningForeground":"#ea9d3480","editorOverviewRuler.wordHighlightForeground":"#6e6a8614","editorOverviewRuler.wordHighlightStrongForeground":"#6e6a8626","editorPane.background":"#0000","editorRuler.foreground":"#6e6a8626","editorSuggestWidget.background":"#fffaf3","editorSuggestWidget.border":"#0000","editorSuggestWidget.focusHighlightForeground":"#d7827e","editorSuggestWidget.foreground":"#797593","editorSuggestWidget.highlightForeground":"#d7827e","editorSuggestWidget.selectedBackground":"#6e6a8614","editorSuggestWidget.selectedForeground":"#575279","editorSuggestWidget.selectedIconForeground":"#575279","editorUnnecessaryCode.border":"#0000","editorUnnecessaryCode.opacity":"#57527980","editorWarning.border":"#0000","editorWarning.foreground":"#ea9d34","editorWhitespace.foreground":"#9893a5","editorWidget.background":"#fffaf3","editorWidget.border":"#f2e9e1","editorWidget.foreground":"#797593","editorWidget.resizeBorder":"#9893a5",errorForeground:"#b4637a","extensionBadge.remoteBackground":"#907aa9","extensionBadge.remoteForeground":"#faf4ed","extensionButton.prominentBackground":"#d7827e","extensionButton.prominentForeground":"#faf4ed","extensionButton.prominentHoverBackground":"#d7827ee6","extensionIcon.preReleaseForeground":"#286983","extensionIcon.starForeground":"#d7827e","extensionIcon.verifiedForeground":"#907aa9",focusBorder:"#6e6a8614",foreground:"#575279","gitDecoration.addedResourceForeground":"#56949f","gitDecoration.conflictingResourceForeground":"#b4637a","gitDecoration.deletedResourceForeground":"#797593","gitDecoration.ignoredResourceForeground":"#9893a5","gitDecoration.modifiedResourceForeground":"#d7827e","gitDecoration.renamedResourceForeground":"#286983","gitDecoration.stageDeletedResourceForeground":"#b4637a","gitDecoration.stageModifiedResourceForeground":"#907aa9","gitDecoration.submoduleResourceForeground":"#ea9d34","gitDecoration.untrackedResourceForeground":"#ea9d34","icon.foreground":"#797593","input.background":"#f2e9e180","input.border":"#6e6a8614","input.foreground":"#575279","input.placeholderForeground":"#797593","inputOption.activeBackground":"#d7827e26","inputOption.activeForeground":"#d7827e","inputValidation.errorBackground":"#fffaf3","inputValidation.errorBorder":"#6e6a8626","inputValidation.errorForeground":"#b4637a","inputValidation.infoBackground":"#fffaf3","inputValidation.infoBorder":"#6e6a8626","inputValidation.infoForeground":"#56949f","inputValidation.warningBackground":"#fffaf3","inputValidation.warningBorder":"#6e6a8626","inputValidation.warningForeground":"#56949f80","keybindingLabel.background":"#f2e9e1","keybindingLabel.border":"#6e6a8626","keybindingLabel.bottomBorder":"#6e6a8626","keybindingLabel.foreground":"#907aa9","keybindingTable.headerBackground":"#f2e9e1","keybindingTable.rowsBackground":"#fffaf3","list.activeSelectionBackground":"#6e6a8614","list.activeSelectionForeground":"#575279","list.deemphasizedForeground":"#797593","list.dropBackground":"#fffaf3","list.errorForeground":"#b4637a","list.filterMatchBackground":"#fffaf3","list.filterMatchBorder":"#d7827e","list.focusBackground":"#6e6a8626","list.focusForeground":"#575279","list.focusOutline":"#6e6a8614","list.highlightForeground":"#d7827e","list.hoverBackground":"#6e6a860d","list.hoverForeground":"#575279","list.inactiveFocusBackground":"#6e6a860d","list.inactiveSelectionBackground":"#fffaf3","list.inactiveSelectionForeground":"#575279","list.invalidItemForeground":"#b4637a","list.warningForeground":"#ea9d34","listFilterWidget.background":"#fffaf3","listFilterWidget.noMatchesOutline":"#b4637a","listFilterWidget.outline":"#f2e9e1","menu.background":"#fffaf3","menu.border":"#6e6a860d","menu.foreground":"#575279","menu.selectionBackground":"#6e6a8614","menu.selectionBorder":"#f2e9e1","menu.selectionForeground":"#575279","menu.separatorBackground":"#6e6a8626","menubar.selectionBackground":"#6e6a8614","menubar.selectionBorder":"#6e6a860d","menubar.selectionForeground":"#575279","merge.border":"#f2e9e1","merge.commonContentBackground":"#6e6a8614","merge.commonHeaderBackground":"#6e6a8614","merge.currentContentBackground":"#ea9d3480","merge.currentHeaderBackground":"#ea9d3480","merge.incomingContentBackground":"#56949f80","merge.incomingHeaderBackground":"#56949f80","minimap.background":"#fffaf3","minimap.errorHighlight":"#b4637a80","minimap.findMatchHighlight":"#6e6a8614","minimap.selectionHighlight":"#6e6a8614","minimap.warningHighlight":"#ea9d3480","minimapGutter.addedBackground":"#56949f","minimapGutter.deletedBackground":"#b4637a","minimapGutter.modifiedBackground":"#d7827e","minimapSlider.activeBackground":"#6e6a8626","minimapSlider.background":"#6e6a8614","minimapSlider.hoverBackground":"#6e6a8614","notebook.cellBorderColor":"#56949f80","notebook.cellEditorBackground":"#fffaf3","notebook.cellHoverBackground":"#f2e9e180","notebook.focusedCellBackground":"#6e6a860d","notebook.focusedCellBorder":"#56949f","notebook.outputContainerBackgroundColor":"#6e6a860d","notificationCenter.border":"#6e6a8614","notificationCenterHeader.background":"#fffaf3","notificationCenterHeader.foreground":"#797593","notificationLink.foreground":"#907aa9","notifications.background":"#fffaf3","notifications.border":"#6e6a8614","notifications.foreground":"#575279","notificationsErrorIcon.foreground":"#b4637a","notificationsInfoIcon.foreground":"#56949f","notificationsWarningIcon.foreground":"#ea9d34","notificationToast.border":"#6e6a8614","panel.background":"#fffaf3","panel.border":"#0000","panel.dropBorder":"#f2e9e1","panelInput.border":"#fffaf3","panelSection.dropBackground":"#6e6a8614","panelSectionHeader.background":"#fffaf3","panelSectionHeader.foreground":"#575279","panelTitle.activeBorder":"#6e6a8626","panelTitle.activeForeground":"#575279","panelTitle.inactiveForeground":"#797593","peekView.border":"#f2e9e1","peekViewEditor.background":"#fffaf3","peekViewEditor.matchHighlightBackground":"#6e6a8626","peekViewResult.background":"#fffaf3","peekViewResult.fileForeground":"#797593","peekViewResult.lineForeground":"#797593","peekViewResult.matchHighlightBackground":"#6e6a8626","peekViewResult.selectionBackground":"#6e6a8614","peekViewResult.selectionForeground":"#575279","peekViewTitle.background":"#f2e9e1","peekViewTitleDescription.foreground":"#797593","pickerGroup.border":"#6e6a8626","pickerGroup.foreground":"#907aa9","ports.iconRunningProcessForeground":"#d7827e","problemsErrorIcon.foreground":"#b4637a","problemsInfoIcon.foreground":"#56949f","problemsWarningIcon.foreground":"#ea9d34","progressBar.background":"#d7827e","quickInput.background":"#fffaf3","quickInput.foreground":"#797593","quickInputList.focusBackground":"#6e6a8614","quickInputList.focusForeground":"#575279","quickInputList.focusIconForeground":"#575279","scrollbar.shadow":"#fffaf34d","scrollbarSlider.activeBackground":"#28698380","scrollbarSlider.background":"#6e6a8614","scrollbarSlider.hoverBackground":"#6e6a8626","searchEditor.findMatchBackground":"#6e6a8614","selection.background":"#6e6a8626","settings.focusedRowBackground":"#fffaf3","settings.headerForeground":"#575279","settings.modifiedItemIndicator":"#d7827e","settings.focusedRowBorder":"#6e6a8614","settings.rowHoverBackground":"#fffaf3","sideBar.background":"#faf4ed","sideBar.dropBackground":"#fffaf3","sideBar.foreground":"#797593","sideBarSectionHeader.background":"#0000","sideBarSectionHeader.border":"#6e6a8614","statusBar.background":"#faf4ed","statusBar.debuggingBackground":"#907aa9","statusBar.debuggingForeground":"#faf4ed","statusBar.foreground":"#797593","statusBar.noFolderBackground":"#faf4ed","statusBar.noFolderForeground":"#797593","statusBarItem.activeBackground":"#6e6a8626","statusBarItem.hoverBackground":"#6e6a8614","statusBarItem.prominentBackground":"#f2e9e1","statusBarItem.prominentForeground":"#575279","statusBarItem.prominentHoverBackground":"#6e6a8614","statusBarItem.remoteBackground":"#faf4ed","statusBarItem.remoteForeground":"#ea9d34","statusBarItem.errorBackground":"#faf4ed","statusBarItem.errorForeground":"#b4637a","symbolIcon.arrayForeground":"#797593","symbolIcon.classForeground":"#797593","symbolIcon.colorForeground":"#797593","symbolIcon.constantForeground":"#797593","symbolIcon.constructorForeground":"#797593","symbolIcon.enumeratorForeground":"#797593","symbolIcon.enumeratorMemberForeground":"#797593","symbolIcon.eventForeground":"#797593","symbolIcon.fieldForeground":"#797593","symbolIcon.fileForeground":"#797593","symbolIcon.folderForeground":"#797593","symbolIcon.functionForeground":"#797593","symbolIcon.interfaceForeground":"#797593","symbolIcon.keyForeground":"#797593","symbolIcon.keywordForeground":"#797593","symbolIcon.methodForeground":"#797593","symbolIcon.moduleForeground":"#797593","symbolIcon.namespaceForeground":"#797593","symbolIcon.nullForeground":"#797593","symbolIcon.numberForeground":"#797593","symbolIcon.objectForeground":"#797593","symbolIcon.operatorForeground":"#797593","symbolIcon.packageForeground":"#797593","symbolIcon.propertyForeground":"#797593","symbolIcon.referenceForeground":"#797593","symbolIcon.snippetForeground":"#797593","symbolIcon.stringForeground":"#797593","symbolIcon.structForeground":"#797593","symbolIcon.textForeground":"#797593","symbolIcon.typeParameterForeground":"#797593","symbolIcon.unitForeground":"#797593","symbolIcon.variableForeground":"#797593","tab.activeBackground":"#6e6a860d","tab.activeForeground":"#575279","tab.activeModifiedBorder":"#56949f","tab.border":"#0000","tab.hoverBackground":"#6e6a8614","tab.inactiveBackground":"#0000","tab.inactiveForeground":"#797593","tab.inactiveModifiedBorder":"#56949f80","tab.lastPinnedBorder":"#9893a5","tab.unfocusedActiveBackground":"#0000","tab.unfocusedHoverBackground":"#0000","tab.unfocusedInactiveBackground":"#0000","tab.unfocusedInactiveModifiedBorder":"#56949f80","terminal.ansiBlack":"#f2e9e1","terminal.ansiBlue":"#56949f","terminal.ansiBrightBlack":"#797593","terminal.ansiBrightBlue":"#56949f","terminal.ansiBrightCyan":"#d7827e","terminal.ansiBrightGreen":"#286983","terminal.ansiBrightMagenta":"#907aa9","terminal.ansiBrightRed":"#b4637a","terminal.ansiBrightWhite":"#575279","terminal.ansiBrightYellow":"#ea9d34","terminal.ansiCyan":"#d7827e","terminal.ansiGreen":"#286983","terminal.ansiMagenta":"#907aa9","terminal.ansiRed":"#b4637a","terminal.ansiWhite":"#575279","terminal.ansiYellow":"#ea9d34","terminal.dropBackground":"#6e6a8614","terminal.foreground":"#575279","terminal.selectionBackground":"#6e6a8614","terminal.tab.activeBorder":"#575279","terminalCursor.background":"#575279","terminalCursor.foreground":"#9893a5","textBlockQuote.background":"#fffaf3","textBlockQuote.border":"#6e6a8614","textCodeBlock.background":"#fffaf3","textLink.activeForeground":"#907aa9e6","textLink.foreground":"#907aa9","textPreformat.foreground":"#ea9d34","textSeparator.foreground":"#797593","titleBar.activeBackground":"#faf4ed","titleBar.activeForeground":"#797593","titleBar.inactiveBackground":"#fffaf3","titleBar.inactiveForeground":"#797593","toolbar.activeBackground":"#6e6a8626","toolbar.hoverBackground":"#6e6a8614","tree.indentGuidesStroke":"#797593","walkThrough.embeddedEditorBackground":"#faf4ed","welcomePage.background":"#faf4ed","welcomePage.buttonBackground":"#fffaf3","welcomePage.buttonHoverBackground":"#f2e9e1","widget.shadow":"#fffaf34d","window.activeBorder":"#fffaf3","window.inactiveBorder":"#fffaf3"},tokenColors:[{scope:["comment"],settings:{foreground:"#9893a5",fontStyle:"italic"}},{scope:["constant"],settings:{foreground:"#286983"}},{scope:["constant.numeric","constant.language"],settings:{foreground:"#d7827e"}},{scope:["entity.name"],settings:{foreground:"#d7827e"}},{scope:["entity.name.section","entity.name.tag","entity.name.namespace","entity.name.type"],settings:{foreground:"#56949f"}},{scope:["entity.other.attribute-name","entity.other.inherited-class"],settings:{foreground:"#907aa9",fontStyle:"italic"}},{scope:["invalid"],settings:{foreground:"#b4637a"}},{scope:["invalid.deprecated"],settings:{foreground:"#797593"}},{scope:["keyword"],settings:{foreground:"#286983"}},{scope:["markup.inserted.diff"],settings:{foreground:"#56949f"}},{scope:["markup.deleted.diff"],settings:{foreground:"#b4637a"}},{scope:"markup.heading",settings:{fontStyle:"bold"}},{scope:"markup.bold.markdown",settings:{fontStyle:"bold"}},{scope:"markup.italic.markdown",settings:{fontStyle:"italic"}},{scope:["meta.diff.range"],settings:{foreground:"#907aa9"}},{scope:["meta.tag","meta.brace"],settings:{foreground:"#575279"}},{scope:["meta.import","meta.export"],settings:{foreground:"#286983"}},{scope:"meta.directive.vue",settings:{foreground:"#907aa9",fontStyle:"italic"}},{scope:"meta.property-name.css",settings:{foreground:"#56949f"}},{scope:"meta.property-value.css",settings:{foreground:"#ea9d34"}},{scope:"meta.tag.other.html",settings:{foreground:"#797593"}},{scope:["punctuation"],settings:{foreground:"#797593"}},{scope:["punctuation.accessor"],settings:{foreground:"#286983"}},{scope:["punctuation.definition.string"],settings:{foreground:"#ea9d34"}},{scope:["punctuation.definition.tag"],settings:{foreground:"#9893a5"}},{scope:["storage.type","storage.modifier"],settings:{foreground:"#286983"}},{scope:["string"],settings:{foreground:"#ea9d34"}},{scope:["support"],settings:{foreground:"#56949f"}},{scope:["support.constant"],settings:{foreground:"#ea9d34"}},{scope:["support.function"],settings:{foreground:"#b4637a",fontStyle:"italic"}},{scope:["variable"],settings:{foreground:"#d7827e",fontStyle:"italic"}},{scope:["variable.other","variable.language","variable.function","variable.argument"],settings:{foreground:"#575279"}},{scope:["variable.parameter"],settings:{foreground:"#907aa9"}}]}; + +export { rosePineDawn as default }; diff --git a/docs/shiki/dist/themes/rose-pine-moon-eff88722.mjs b/docs/shiki/dist/themes/rose-pine-moon-eff88722.mjs new file mode 100644 index 00000000..65911e4a --- /dev/null +++ b/docs/shiki/dist/themes/rose-pine-moon-eff88722.mjs @@ -0,0 +1,3 @@ +var rosePineMoon = {name:"rose-pine-moon",type:"dark",colors:{"activityBar.activeBorder":"#e0def4","activityBar.background":"#232136","activityBar.dropBorder":"#393552","activityBar.foreground":"#e0def4","activityBar.inactiveForeground":"#908caa","activityBarBadge.background":"#ea9a97","activityBarBadge.foreground":"#232136","badge.background":"#ea9a97","badge.foreground":"#232136","banner.background":"#2a273f","banner.foreground":"#e0def4","banner.iconForeground":"#908caa","breadcrumb.activeSelectionForeground":"#ea9a97","breadcrumb.background":"#232136","breadcrumb.focusForeground":"#908caa","breadcrumb.foreground":"#6e6a86","breadcrumbPicker.background":"#2a273f","button.background":"#ea9a97","button.foreground":"#232136","button.hoverBackground":"#ea9a97e6","button.secondaryBackground":"#2a273f","button.secondaryForeground":"#e0def4","button.secondaryHoverBackground":"#393552","charts.blue":"#9ccfd8","charts.foreground":"#e0def4","charts.green":"#3e8fb0","charts.lines":"#908caa","charts.orange":"#ea9a97","charts.purple":"#c4a7e7","charts.red":"#eb6f92","charts.yellow":"#f6c177","checkbox.background":"#2a273f","checkbox.border":"#817c9c26","checkbox.foreground":"#e0def4","debugExceptionWidget.background":"#2a273f","debugExceptionWidget.border":"#817c9c26","debugIcon.breakpointCurrentStackframeForeground":"#908caa","debugIcon.breakpointDisabledForeground":"#908caa","debugIcon.breakpointForeground":"#908caa","debugIcon.breakpointStackframeForeground":"#908caa","debugIcon.breakpointUnverifiedForeground":"#908caa","debugIcon.continueForeground":"#908caa","debugIcon.disconnectForeground":"#908caa","debugIcon.pauseForeground":"#908caa","debugIcon.restartForeground":"#908caa","debugIcon.startForeground":"#908caa","debugIcon.stepBackForeground":"#908caa","debugIcon.stepIntoForeground":"#908caa","debugIcon.stepOutForeground":"#908caa","debugIcon.stepOverForeground":"#908caa","debugIcon.stopForeground":"#eb6f92","debugToolBar.background":"#2a273f","debugToolBar.border":"#393552",descriptionForeground:"#908caa","diffEditor.border":"#393552","diffEditor.diagonalFill":"#817c9c4d","diffEditor.insertedLineBackground":"#9ccfd826","diffEditor.insertedTextBackground":"#9ccfd826","diffEditor.removedLineBackground":"#eb6f9226","diffEditor.removedTextBackground":"#eb6f9226","diffEditorOverview.insertedForeground":"#9ccfd880","diffEditorOverview.removedForeground":"#eb6f9280","dropdown.background":"#2a273f","dropdown.border":"#817c9c26","dropdown.foreground":"#e0def4","dropdown.listBackground":"#2a273f","editor.background":"#232136","editor.findMatchBackground":"#817c9c4d","editor.findMatchHighlightBackground":"#817c9c4d","editor.findRangeHighlightBackground":"#817c9c4d","editor.findRangeHighlightBorder":"#0000","editor.focusedStackFrameHighlightBackground":"#817c9c26","editor.foldBackground":"#2a273f","editor.foreground":"#e0def4","editor.hoverHighlightBackground":"#0000","editor.inactiveSelectionBackground":"#817c9c14","editor.inlineValuesBackground":"#0000","editor.inlineValuesForeground":"#908caa","editor.lineHighlightBackground":"#817c9c14","editor.lineHighlightBorder":"#0000","editor.linkedEditingBackground":"#2a273f","editor.rangeHighlightBackground":"#817c9c14","editor.selectionBackground":"#817c9c26","editor.selectionForeground":"#e0def4","editor.selectionHighlightBackground":"#817c9c26","editor.selectionHighlightBorder":"#232136","editor.snippetFinalTabstopHighlightBackground":"#817c9c26","editor.snippetFinalTabstopHighlightBorder":"#2a273f","editor.snippetTabstopHighlightBackground":"#817c9c26","editor.snippetTabstopHighlightBorder":"#2a273f","editor.stackFrameHighlightBackground":"#817c9c26","editor.symbolHighlightBackground":"#817c9c26","editor.symbolHighlightBorder":"#0000","editor.wordHighlightBackground":"#817c9c26","editor.wordHighlightBorder":"#0000","editor.wordHighlightStrongBackground":"#817c9c26","editor.wordHighlightStrongBorder":"#817c9c26","editorBracketHighlight.foreground1":"#eb6f9280","editorBracketHighlight.foreground2":"#3e8fb080","editorBracketHighlight.foreground3":"#f6c17780","editorBracketHighlight.foreground4":"#9ccfd880","editorBracketHighlight.foreground5":"#ea9a9780","editorBracketHighlight.foreground6":"#c4a7e780","editorBracketMatch.background":"#0000","editorBracketMatch.border":"#908caa","editorBracketPairGuide.activeBackground1":"#3e8fb0","editorBracketPairGuide.activeBackground2":"#ea9a97","editorBracketPairGuide.activeBackground3":"#c4a7e7","editorBracketPairGuide.activeBackground4":"#9ccfd8","editorBracketPairGuide.activeBackground5":"#f6c177","editorBracketPairGuide.activeBackground6":"#eb6f92","editorBracketPairGuide.background1":"#3e8fb080","editorBracketPairGuide.background2":"#ea9a9780","editorBracketPairGuide.background3":"#c4a7e780","editorBracketPairGuide.background4":"#9ccfd880","editorBracketPairGuide.background5":"#f6c17780","editorBracketPairGuide.background6":"#eb6f9280","editorCodeLens.foreground":"#ea9a97","editorCursor.background":"#e0def4","editorCursor.foreground":"#6e6a86","editorError.border":"#0000","editorError.foreground":"#eb6f92","editorGhostText.foreground":"#908caa","editorGroup.border":"#0000","editorGroup.dropBackground":"#2a273f","editorGroup.emptyBackground":"#0000","editorGroup.focusedEmptyBorder":"#0000","editorGroupHeader.noTabsBackground":"#0000","editorGroupHeader.tabsBackground":"#0000","editorGroupHeader.tabsBorder":"#0000","editorGutter.addedBackground":"#9ccfd8","editorGutter.background":"#232136","editorGutter.commentRangeForeground":"#908caa","editorGutter.deletedBackground":"#eb6f92","editorGutter.foldingControlForeground":"#c4a7e7","editorGutter.modifiedBackground":"#ea9a97","editorHint.border":"#0000","editorHint.foreground":"#908caa","editorHoverWidget.background":"#2a273f","editorHoverWidget.border":"#6e6a8680","editorHoverWidget.foreground":"#908caa","editorHoverWidget.highlightForeground":"#e0def4","editorHoverWidget.statusBarBackground":"#0000","editorIndentGuide.activeBackground":"#6e6a86","editorIndentGuide.background":"#817c9c4d","editorInfo.border":"#393552","editorInfo.foreground":"#9ccfd8","editorInlayHint.background":"#393552","editorInlayHint.foreground":"#908caa","editorInlayHint.parameterBackground":"#393552","editorInlayHint.parameterForeground":"#c4a7e7","editorInlayHint.typeBackground":"#393552","editorInlayHint.typeForeground":"#9ccfd8","editorLightBulb.foreground":"#3e8fb0","editorLightBulbAutoFix.foreground":"#ea9a97","editorLineNumber.activeForeground":"#e0def4","editorLineNumber.foreground":"#908caa","editorLink.activeForeground":"#ea9a97","editorMarkerNavigation.background":"#2a273f","editorMarkerNavigationError.background":"#2a273f","editorMarkerNavigationInfo.background":"#2a273f","editorMarkerNavigationWarning.background":"#2a273f","editorOverviewRuler.addedForeground":"#9ccfd880","editorOverviewRuler.background":"#232136","editorOverviewRuler.border":"#817c9c4d","editorOverviewRuler.bracketMatchForeground":"#908caa","editorOverviewRuler.commonContentForeground":"#817c9c14","editorOverviewRuler.currentContentForeground":"#817c9c26","editorOverviewRuler.deletedForeground":"#eb6f9280","editorOverviewRuler.errorForeground":"#eb6f9280","editorOverviewRuler.findMatchForeground":"#817c9c4d","editorOverviewRuler.incomingContentForeground":"#c4a7e780","editorOverviewRuler.infoForeground":"#9ccfd880","editorOverviewRuler.modifiedForeground":"#ea9a9780","editorOverviewRuler.rangeHighlightForeground":"#817c9c4d","editorOverviewRuler.selectionHighlightForeground":"#817c9c4d","editorOverviewRuler.warningForeground":"#f6c17780","editorOverviewRuler.wordHighlightForeground":"#817c9c26","editorOverviewRuler.wordHighlightStrongForeground":"#817c9c4d","editorPane.background":"#0000","editorRuler.foreground":"#817c9c4d","editorSuggestWidget.background":"#2a273f","editorSuggestWidget.border":"#0000","editorSuggestWidget.focusHighlightForeground":"#ea9a97","editorSuggestWidget.foreground":"#908caa","editorSuggestWidget.highlightForeground":"#ea9a97","editorSuggestWidget.selectedBackground":"#817c9c26","editorSuggestWidget.selectedForeground":"#e0def4","editorSuggestWidget.selectedIconForeground":"#e0def4","editorUnnecessaryCode.border":"#0000","editorUnnecessaryCode.opacity":"#e0def480","editorWarning.border":"#0000","editorWarning.foreground":"#f6c177","editorWhitespace.foreground":"#6e6a86","editorWidget.background":"#2a273f","editorWidget.border":"#393552","editorWidget.foreground":"#908caa","editorWidget.resizeBorder":"#6e6a86",errorForeground:"#eb6f92","extensionBadge.remoteBackground":"#c4a7e7","extensionBadge.remoteForeground":"#232136","extensionButton.prominentBackground":"#ea9a97","extensionButton.prominentForeground":"#232136","extensionButton.prominentHoverBackground":"#ea9a97e6","extensionIcon.preReleaseForeground":"#3e8fb0","extensionIcon.starForeground":"#ea9a97","extensionIcon.verifiedForeground":"#c4a7e7",focusBorder:"#817c9c26",foreground:"#e0def4","gitDecoration.addedResourceForeground":"#9ccfd8","gitDecoration.conflictingResourceForeground":"#eb6f92","gitDecoration.deletedResourceForeground":"#908caa","gitDecoration.ignoredResourceForeground":"#6e6a86","gitDecoration.modifiedResourceForeground":"#ea9a97","gitDecoration.renamedResourceForeground":"#3e8fb0","gitDecoration.stageDeletedResourceForeground":"#eb6f92","gitDecoration.stageModifiedResourceForeground":"#c4a7e7","gitDecoration.submoduleResourceForeground":"#f6c177","gitDecoration.untrackedResourceForeground":"#f6c177","icon.foreground":"#908caa","input.background":"#39355280","input.border":"#817c9c26","input.foreground":"#e0def4","input.placeholderForeground":"#908caa","inputOption.activeBackground":"#ea9a9726","inputOption.activeForeground":"#ea9a97","inputValidation.errorBackground":"#2a273f","inputValidation.errorBorder":"#817c9c4d","inputValidation.errorForeground":"#eb6f92","inputValidation.infoBackground":"#2a273f","inputValidation.infoBorder":"#817c9c4d","inputValidation.infoForeground":"#9ccfd8","inputValidation.warningBackground":"#2a273f","inputValidation.warningBorder":"#817c9c4d","inputValidation.warningForeground":"#9ccfd880","keybindingLabel.background":"#393552","keybindingLabel.border":"#817c9c4d","keybindingLabel.bottomBorder":"#817c9c4d","keybindingLabel.foreground":"#c4a7e7","keybindingTable.headerBackground":"#393552","keybindingTable.rowsBackground":"#2a273f","list.activeSelectionBackground":"#817c9c26","list.activeSelectionForeground":"#e0def4","list.deemphasizedForeground":"#908caa","list.dropBackground":"#2a273f","list.errorForeground":"#eb6f92","list.filterMatchBackground":"#2a273f","list.filterMatchBorder":"#ea9a97","list.focusBackground":"#817c9c4d","list.focusForeground":"#e0def4","list.focusOutline":"#817c9c26","list.highlightForeground":"#ea9a97","list.hoverBackground":"#817c9c14","list.hoverForeground":"#e0def4","list.inactiveFocusBackground":"#817c9c14","list.inactiveSelectionBackground":"#2a273f","list.inactiveSelectionForeground":"#e0def4","list.invalidItemForeground":"#eb6f92","list.warningForeground":"#f6c177","listFilterWidget.background":"#2a273f","listFilterWidget.noMatchesOutline":"#eb6f92","listFilterWidget.outline":"#393552","menu.background":"#2a273f","menu.border":"#817c9c14","menu.foreground":"#e0def4","menu.selectionBackground":"#817c9c26","menu.selectionBorder":"#393552","menu.selectionForeground":"#e0def4","menu.separatorBackground":"#817c9c4d","menubar.selectionBackground":"#817c9c26","menubar.selectionBorder":"#817c9c14","menubar.selectionForeground":"#e0def4","merge.border":"#393552","merge.commonContentBackground":"#817c9c26","merge.commonHeaderBackground":"#817c9c26","merge.currentContentBackground":"#f6c17780","merge.currentHeaderBackground":"#f6c17780","merge.incomingContentBackground":"#9ccfd880","merge.incomingHeaderBackground":"#9ccfd880","minimap.background":"#2a273f","minimap.errorHighlight":"#eb6f9280","minimap.findMatchHighlight":"#817c9c26","minimap.selectionHighlight":"#817c9c26","minimap.warningHighlight":"#f6c17780","minimapGutter.addedBackground":"#9ccfd8","minimapGutter.deletedBackground":"#eb6f92","minimapGutter.modifiedBackground":"#ea9a97","minimapSlider.activeBackground":"#817c9c4d","minimapSlider.background":"#817c9c26","minimapSlider.hoverBackground":"#817c9c26","notebook.cellBorderColor":"#9ccfd880","notebook.cellEditorBackground":"#2a273f","notebook.cellHoverBackground":"#39355280","notebook.focusedCellBackground":"#817c9c14","notebook.focusedCellBorder":"#9ccfd8","notebook.outputContainerBackgroundColor":"#817c9c14","notificationCenter.border":"#817c9c26","notificationCenterHeader.background":"#2a273f","notificationCenterHeader.foreground":"#908caa","notificationLink.foreground":"#c4a7e7","notifications.background":"#2a273f","notifications.border":"#817c9c26","notifications.foreground":"#e0def4","notificationsErrorIcon.foreground":"#eb6f92","notificationsInfoIcon.foreground":"#9ccfd8","notificationsWarningIcon.foreground":"#f6c177","notificationToast.border":"#817c9c26","panel.background":"#2a273f","panel.border":"#0000","panel.dropBorder":"#393552","panelInput.border":"#2a273f","panelSection.dropBackground":"#817c9c26","panelSectionHeader.background":"#2a273f","panelSectionHeader.foreground":"#e0def4","panelTitle.activeBorder":"#817c9c4d","panelTitle.activeForeground":"#e0def4","panelTitle.inactiveForeground":"#908caa","peekView.border":"#393552","peekViewEditor.background":"#2a273f","peekViewEditor.matchHighlightBackground":"#817c9c4d","peekViewResult.background":"#2a273f","peekViewResult.fileForeground":"#908caa","peekViewResult.lineForeground":"#908caa","peekViewResult.matchHighlightBackground":"#817c9c4d","peekViewResult.selectionBackground":"#817c9c26","peekViewResult.selectionForeground":"#e0def4","peekViewTitle.background":"#393552","peekViewTitleDescription.foreground":"#908caa","pickerGroup.border":"#817c9c4d","pickerGroup.foreground":"#c4a7e7","ports.iconRunningProcessForeground":"#ea9a97","problemsErrorIcon.foreground":"#eb6f92","problemsInfoIcon.foreground":"#9ccfd8","problemsWarningIcon.foreground":"#f6c177","progressBar.background":"#ea9a97","quickInput.background":"#2a273f","quickInput.foreground":"#908caa","quickInputList.focusBackground":"#817c9c26","quickInputList.focusForeground":"#e0def4","quickInputList.focusIconForeground":"#e0def4","scrollbar.shadow":"#2a273f4d","scrollbarSlider.activeBackground":"#3e8fb080","scrollbarSlider.background":"#817c9c26","scrollbarSlider.hoverBackground":"#817c9c4d","searchEditor.findMatchBackground":"#817c9c26","selection.background":"#817c9c4d","settings.focusedRowBackground":"#2a273f","settings.headerForeground":"#e0def4","settings.modifiedItemIndicator":"#ea9a97","settings.focusedRowBorder":"#817c9c26","settings.rowHoverBackground":"#2a273f","sideBar.background":"#232136","sideBar.dropBackground":"#2a273f","sideBar.foreground":"#908caa","sideBarSectionHeader.background":"#0000","sideBarSectionHeader.border":"#817c9c26","statusBar.background":"#232136","statusBar.debuggingBackground":"#c4a7e7","statusBar.debuggingForeground":"#232136","statusBar.foreground":"#908caa","statusBar.noFolderBackground":"#232136","statusBar.noFolderForeground":"#908caa","statusBarItem.activeBackground":"#817c9c4d","statusBarItem.hoverBackground":"#817c9c26","statusBarItem.prominentBackground":"#393552","statusBarItem.prominentForeground":"#e0def4","statusBarItem.prominentHoverBackground":"#817c9c26","statusBarItem.remoteBackground":"#232136","statusBarItem.remoteForeground":"#f6c177","statusBarItem.errorBackground":"#232136","statusBarItem.errorForeground":"#eb6f92","symbolIcon.arrayForeground":"#908caa","symbolIcon.classForeground":"#908caa","symbolIcon.colorForeground":"#908caa","symbolIcon.constantForeground":"#908caa","symbolIcon.constructorForeground":"#908caa","symbolIcon.enumeratorForeground":"#908caa","symbolIcon.enumeratorMemberForeground":"#908caa","symbolIcon.eventForeground":"#908caa","symbolIcon.fieldForeground":"#908caa","symbolIcon.fileForeground":"#908caa","symbolIcon.folderForeground":"#908caa","symbolIcon.functionForeground":"#908caa","symbolIcon.interfaceForeground":"#908caa","symbolIcon.keyForeground":"#908caa","symbolIcon.keywordForeground":"#908caa","symbolIcon.methodForeground":"#908caa","symbolIcon.moduleForeground":"#908caa","symbolIcon.namespaceForeground":"#908caa","symbolIcon.nullForeground":"#908caa","symbolIcon.numberForeground":"#908caa","symbolIcon.objectForeground":"#908caa","symbolIcon.operatorForeground":"#908caa","symbolIcon.packageForeground":"#908caa","symbolIcon.propertyForeground":"#908caa","symbolIcon.referenceForeground":"#908caa","symbolIcon.snippetForeground":"#908caa","symbolIcon.stringForeground":"#908caa","symbolIcon.structForeground":"#908caa","symbolIcon.textForeground":"#908caa","symbolIcon.typeParameterForeground":"#908caa","symbolIcon.unitForeground":"#908caa","symbolIcon.variableForeground":"#908caa","tab.activeBackground":"#817c9c14","tab.activeForeground":"#e0def4","tab.activeModifiedBorder":"#9ccfd8","tab.border":"#0000","tab.hoverBackground":"#817c9c26","tab.inactiveBackground":"#0000","tab.inactiveForeground":"#908caa","tab.inactiveModifiedBorder":"#9ccfd880","tab.lastPinnedBorder":"#6e6a86","tab.unfocusedActiveBackground":"#0000","tab.unfocusedHoverBackground":"#0000","tab.unfocusedInactiveBackground":"#0000","tab.unfocusedInactiveModifiedBorder":"#9ccfd880","terminal.ansiBlack":"#393552","terminal.ansiBlue":"#9ccfd8","terminal.ansiBrightBlack":"#908caa","terminal.ansiBrightBlue":"#9ccfd8","terminal.ansiBrightCyan":"#ea9a97","terminal.ansiBrightGreen":"#3e8fb0","terminal.ansiBrightMagenta":"#c4a7e7","terminal.ansiBrightRed":"#eb6f92","terminal.ansiBrightWhite":"#e0def4","terminal.ansiBrightYellow":"#f6c177","terminal.ansiCyan":"#ea9a97","terminal.ansiGreen":"#3e8fb0","terminal.ansiMagenta":"#c4a7e7","terminal.ansiRed":"#eb6f92","terminal.ansiWhite":"#e0def4","terminal.ansiYellow":"#f6c177","terminal.dropBackground":"#817c9c26","terminal.foreground":"#e0def4","terminal.selectionBackground":"#817c9c26","terminal.tab.activeBorder":"#e0def4","terminalCursor.background":"#e0def4","terminalCursor.foreground":"#6e6a86","textBlockQuote.background":"#2a273f","textBlockQuote.border":"#817c9c26","textCodeBlock.background":"#2a273f","textLink.activeForeground":"#c4a7e7e6","textLink.foreground":"#c4a7e7","textPreformat.foreground":"#f6c177","textSeparator.foreground":"#908caa","titleBar.activeBackground":"#232136","titleBar.activeForeground":"#908caa","titleBar.inactiveBackground":"#2a273f","titleBar.inactiveForeground":"#908caa","toolbar.activeBackground":"#817c9c4d","toolbar.hoverBackground":"#817c9c26","tree.indentGuidesStroke":"#908caa","walkThrough.embeddedEditorBackground":"#232136","welcomePage.background":"#232136","welcomePage.buttonBackground":"#2a273f","welcomePage.buttonHoverBackground":"#393552","widget.shadow":"#2a273f4d","window.activeBorder":"#2a273f","window.inactiveBorder":"#2a273f"},tokenColors:[{scope:["comment"],settings:{foreground:"#6e6a86",fontStyle:"italic"}},{scope:["constant"],settings:{foreground:"#3e8fb0"}},{scope:["constant.numeric","constant.language"],settings:{foreground:"#ea9a97"}},{scope:["entity.name"],settings:{foreground:"#ea9a97"}},{scope:["entity.name.section","entity.name.tag","entity.name.namespace","entity.name.type"],settings:{foreground:"#9ccfd8"}},{scope:["entity.other.attribute-name","entity.other.inherited-class"],settings:{foreground:"#c4a7e7",fontStyle:"italic"}},{scope:["invalid"],settings:{foreground:"#eb6f92"}},{scope:["invalid.deprecated"],settings:{foreground:"#908caa"}},{scope:["keyword"],settings:{foreground:"#3e8fb0"}},{scope:["markup.inserted.diff"],settings:{foreground:"#9ccfd8"}},{scope:["markup.deleted.diff"],settings:{foreground:"#eb6f92"}},{scope:"markup.heading",settings:{fontStyle:"bold"}},{scope:"markup.bold.markdown",settings:{fontStyle:"bold"}},{scope:"markup.italic.markdown",settings:{fontStyle:"italic"}},{scope:["meta.diff.range"],settings:{foreground:"#c4a7e7"}},{scope:["meta.tag","meta.brace"],settings:{foreground:"#e0def4"}},{scope:["meta.import","meta.export"],settings:{foreground:"#3e8fb0"}},{scope:"meta.directive.vue",settings:{foreground:"#c4a7e7",fontStyle:"italic"}},{scope:"meta.property-name.css",settings:{foreground:"#9ccfd8"}},{scope:"meta.property-value.css",settings:{foreground:"#f6c177"}},{scope:"meta.tag.other.html",settings:{foreground:"#908caa"}},{scope:["punctuation"],settings:{foreground:"#908caa"}},{scope:["punctuation.accessor"],settings:{foreground:"#3e8fb0"}},{scope:["punctuation.definition.string"],settings:{foreground:"#f6c177"}},{scope:["punctuation.definition.tag"],settings:{foreground:"#6e6a86"}},{scope:["storage.type","storage.modifier"],settings:{foreground:"#3e8fb0"}},{scope:["string"],settings:{foreground:"#f6c177"}},{scope:["support"],settings:{foreground:"#9ccfd8"}},{scope:["support.constant"],settings:{foreground:"#f6c177"}},{scope:["support.function"],settings:{foreground:"#eb6f92",fontStyle:"italic"}},{scope:["variable"],settings:{foreground:"#ea9a97",fontStyle:"italic"}},{scope:["variable.other","variable.language","variable.function","variable.argument"],settings:{foreground:"#e0def4"}},{scope:["variable.parameter"],settings:{foreground:"#c4a7e7"}}]}; + +export { rosePineMoon as default }; diff --git a/docs/shiki/dist/themes/slack-dark-b21eb9a6.mjs b/docs/shiki/dist/themes/slack-dark-b21eb9a6.mjs new file mode 100644 index 00000000..aa03ca9b --- /dev/null +++ b/docs/shiki/dist/themes/slack-dark-b21eb9a6.mjs @@ -0,0 +1,3 @@ +var slackDark = {name:"slack-dark",type:"dark",colors:{"activityBarBadge.background":"#1D978D","editor.background":"#222222","editor.foreground":"#E6E6E6","editor.inactiveSelectionBackground":"#3a3d41","editor.selectionHighlightBackground":"#add6ff26","editorIndentGuide.activeBackground":"#707070","editorIndentGuide.background":"#404040","input.placeholderForeground":"#7A7A7A","list.dropBackground":"#383b3d","list.activeSelectionBackground":"#222222","list.focusBackground":"#0077B5","menu.background":"#252526","menu.foreground":"#E6E6E6","settings.numberInputBackground":"#292929","settings.textInputBackground":"#292929","sideBarTitle.foreground":"#E6E6E6","statusBar.background":"#222222","statusBar.noFolderBackground":"#141414","statusBar.debuggingBackground":"#1D978D","list.hoverBackground":"#222222","gitDecoration.modifiedResourceForeground":"#ECB22E","gitDecoration.deletedResourceForeground":"#FFF","gitDecoration.untrackedResourceForeground":"#ECB22E","gitDecoration.ignoredResourceForeground":"#877583","gitDecoration.addedResourceForeground":"#ECB22E","gitDecoration.conflictingResourceForeground":"#FFF","editor.lineHighlightBorder":"#141414","editor.lineHighlightBackground":"#141414","editorSuggestWidget.selectedBackground":"#0077B5","sideBarSectionHeader.background":"#222222","activityBar.background":"#222222","button.background":"#0077B5","button.foreground":"#FFF","button.hoverBackground":"#005076","extensionButton.prominentBackground":"#0077B5","extensionButton.prominentForeground":"#FFF","extensionButton.prominentHoverBackground":"#005076","debugExceptionWidget.background":"#141414","debugExceptionWidget.border":"#FFF","debugToolBar.background":"#141414","titleBar.activeBackground":"#222222","titleBar.activeForeground":"#E6E6E6","titleBar.inactiveBackground":"#222222","titleBar.inactiveForeground":"#7A7A7A",focusBorder:"#0077B5","textLink.activeForeground":"#0077B5","textLink.foreground":"#0077B5","editorLink.activeForeground":"#0077B5","notificationLink.foreground":"#0077B5"},tokenColors:[{scope:["meta.embedded","source.groovy.embedded"],settings:{foreground:"#D4D4D4"}},{scope:"emphasis",settings:{fontStyle:"italic"}},{scope:"strong",settings:{fontStyle:"bold"}},{scope:"header",settings:{foreground:"#000080"}},{scope:"comment",settings:{foreground:"#6A9955"}},{scope:"constant.language",settings:{foreground:"#569cd6"}},{scope:["constant.numeric"],settings:{foreground:"#b5cea8"}},{scope:"constant.regexp",settings:{foreground:"#646695"}},{scope:"entity.name.tag",settings:{foreground:"#569cd6"}},{scope:"entity.name.tag.css",settings:{foreground:"#d7ba7d"}},{scope:"entity.other.attribute-name",settings:{foreground:"#9cdcfe"}},{scope:["entity.other.attribute-name.class.css","entity.other.attribute-name.class.mixin.css","entity.other.attribute-name.id.css","entity.other.attribute-name.parent-selector.css","entity.other.attribute-name.pseudo-class.css","entity.other.attribute-name.pseudo-element.css","source.css.less entity.other.attribute-name.id","entity.other.attribute-name.attribute.scss","entity.other.attribute-name.scss"],settings:{foreground:"#d7ba7d"}},{scope:"invalid",settings:{foreground:"#f44747"}},{scope:"markup.underline",settings:{fontStyle:"underline"}},{scope:"markup.bold",settings:{fontStyle:"bold",foreground:"#569cd6"}},{scope:"markup.heading",settings:{fontStyle:"bold",foreground:"#569cd6"}},{scope:"markup.italic",settings:{fontStyle:"italic"}},{scope:"markup.inserted",settings:{foreground:"#b5cea8"}},{scope:"markup.deleted",settings:{foreground:"#ce9178"}},{scope:"markup.changed",settings:{foreground:"#569cd6"}},{scope:"punctuation.definition.quote.begin.markdown",settings:{foreground:"#6A9955"}},{scope:"punctuation.definition.list.begin.markdown",settings:{foreground:"#6796e6"}},{scope:"markup.inline.raw",settings:{foreground:"#ce9178"}},{name:"brackets of XML/HTML tags",scope:"punctuation.definition.tag",settings:{foreground:"#808080"}},{scope:"meta.preprocessor",settings:{foreground:"#569cd6"}},{scope:"meta.preprocessor.string",settings:{foreground:"#ce9178"}},{scope:"meta.preprocessor.numeric",settings:{foreground:"#b5cea8"}},{scope:"meta.structure.dictionary.key.python",settings:{foreground:"#9cdcfe"}},{scope:"meta.diff.header",settings:{foreground:"#569cd6"}},{scope:"storage",settings:{foreground:"#569cd6"}},{scope:"storage.type",settings:{foreground:"#569cd6"}},{scope:"storage.modifier",settings:{foreground:"#569cd6"}},{scope:"string",settings:{foreground:"#ce9178"}},{scope:"string.tag",settings:{foreground:"#ce9178"}},{scope:"string.value",settings:{foreground:"#ce9178"}},{scope:"string.regexp",settings:{foreground:"#d16969"}},{name:"String interpolation",scope:["punctuation.definition.template-expression.begin","punctuation.definition.template-expression.end","punctuation.section.embedded"],settings:{foreground:"#569cd6"}},{name:"Reset JavaScript string interpolation expression",scope:["meta.template.expression"],settings:{foreground:"#d4d4d4"}},{scope:["support.type.vendored.property-name","support.type.property-name","variable.css","variable.scss","variable.other.less","source.coffee.embedded"],settings:{foreground:"#9cdcfe"}},{scope:"keyword",settings:{foreground:"#569cd6"}},{scope:"keyword.control",settings:{foreground:"#569cd6"}},{scope:"keyword.operator",settings:{foreground:"#d4d4d4"}},{scope:["keyword.operator.new","keyword.operator.expression","keyword.operator.cast","keyword.operator.sizeof","keyword.operator.instanceof","keyword.operator.logical.python"],settings:{foreground:"#569cd6"}},{scope:"keyword.other.unit",settings:{foreground:"#b5cea8"}},{scope:["punctuation.section.embedded.begin.php","punctuation.section.embedded.end.php"],settings:{foreground:"#569cd6"}},{scope:"support.function.git-rebase",settings:{foreground:"#9cdcfe"}},{scope:"constant.sha.git-rebase",settings:{foreground:"#b5cea8"}},{name:"coloring of the Java import and package identifiers",scope:["storage.modifier.import.java","variable.language.wildcard.java","storage.modifier.package.java"],settings:{foreground:"#d4d4d4"}},{name:"this.self",scope:"variable.language",settings:{foreground:"#569cd6"}},{name:"Function declarations",scope:["entity.name.function","support.function","support.constant.handlebars"],settings:{foreground:"#DCDCAA"}},{name:"Types declaration and references",scope:["meta.return-type","support.class","support.type","entity.name.type","entity.name.class","storage.type.numeric.go","storage.type.byte.go","storage.type.boolean.go","storage.type.string.go","storage.type.uintptr.go","storage.type.error.go","storage.type.rune.go","storage.type.cs","storage.type.generic.cs","storage.type.modifier.cs","storage.type.variable.cs","storage.type.annotation.java","storage.type.generic.java","storage.type.java","storage.type.object.array.java","storage.type.primitive.array.java","storage.type.primitive.java","storage.type.token.java","storage.type.groovy","storage.type.annotation.groovy","storage.type.parameters.groovy","storage.type.generic.groovy","storage.type.object.array.groovy","storage.type.primitive.array.groovy","storage.type.primitive.groovy"],settings:{foreground:"#4EC9B0"}},{name:"Types declaration and references, TS grammar specific",scope:["meta.type.cast.expr","meta.type.new.expr","support.constant.math","support.constant.dom","support.constant.json","entity.other.inherited-class"],settings:{foreground:"#4EC9B0"}},{name:"Control flow keywords",scope:"keyword.control",settings:{foreground:"#C586C0"}},{name:"Variable and parameter name",scope:["variable","meta.definition.variable.name","support.variable","entity.name.variable"],settings:{foreground:"#9CDCFE"}},{name:"Object keys, TS grammar specific",scope:["meta.object-literal.key"],settings:{foreground:"#9CDCFE"}},{name:"CSS property value",scope:["support.constant.property-value","support.constant.font-name","support.constant.media-type","support.constant.media","constant.other.color.rgb-value","constant.other.rgb-value","support.constant.color"],settings:{foreground:"#CE9178"}},{name:"Regular expression groups",scope:["punctuation.definition.group.regexp","punctuation.definition.group.assertion.regexp","punctuation.definition.character-class.regexp","punctuation.character.set.begin.regexp","punctuation.character.set.end.regexp","keyword.operator.negation.regexp","support.other.parenthesis.regexp"],settings:{foreground:"#CE9178"}},{scope:["constant.character.character-class.regexp","constant.other.character-class.set.regexp","constant.other.character-class.regexp","constant.character.set.regexp"],settings:{foreground:"#d16969"}},{scope:["keyword.operator.or.regexp","keyword.control.anchor.regexp"],settings:{foreground:"#DCDCAA"}},{scope:"keyword.operator.quantifier.regexp",settings:{foreground:"#d7ba7d"}},{scope:"constant.character",settings:{foreground:"#569cd6"}},{scope:"constant.character.escape",settings:{foreground:"#d7ba7d"}},{scope:"token.info-token",settings:{foreground:"#6796e6"}},{scope:"token.warn-token",settings:{foreground:"#cd9731"}},{scope:"token.error-token",settings:{foreground:"#f44747"}},{scope:"token.debug-token",settings:{foreground:"#b267e6"}}]}; + +export { slackDark as default }; diff --git a/docs/shiki/dist/themes/slack-ochin-56e5a657.mjs b/docs/shiki/dist/themes/slack-ochin-56e5a657.mjs new file mode 100644 index 00000000..a0ca88ff --- /dev/null +++ b/docs/shiki/dist/themes/slack-ochin-56e5a657.mjs @@ -0,0 +1,3 @@ +var slackOchin = {name:"slack-ochin",type:"dark",colors:{foreground:"#616161",focusBorder:"#161F26","widget.shadow":"#161F2694","input.background":"#FFF","input.border":"#161F26","input.foreground":"#000","input.placeholderForeground":"#a0a0a0","inputOption.activeBorder":"#3E313C","inputValidation.errorBackground":"#F44C5E","inputValidation.errorForeground":"#FFF","inputValidation.infoBackground":"#6182b8","inputValidation.infoForeground":"#FFF","inputValidation.warningBackground":"#F6B555","inputValidation.warningForeground":"#000","list.activeSelectionBackground":"#5899C5","list.activeSelectionForeground":"#fff","list.hoverBackground":"#d5e1ea","list.hoverForeground":"#fff","list.focusBackground":"#d5e1ea","list.focusForeground":"#fff","list.inactiveSelectionBackground":"#5899C5","list.inactiveSelectionForeground":"#fff","list.highlightForeground":"#2D3E4C","list.inactiveFocusBackground":"#161F26","list.invalidItemForeground":"#fff","button.background":"#475663","button.foreground":"#FFF","button.hoverBackground":"#161F26","scrollbar.shadow":"#ffffff00","scrollbarSlider.activeBackground":"#161F267e","scrollbarSlider.background":"#161F267e","scrollbarSlider.hoverBackground":"#161F267e","badge.background":"#8AE773","progressBar.background":"#8AE773","editor.background":"#FFF","editor.foreground":"#000","editor.lineHighlightBackground":"#EEEEEE","editor.wordHighlightStrongBackground":"#EEEEEE","editor.selectionBackground":"#AED4FB","editorLineNumber.foreground":"#b9b9b9","editorActiveLineNumber.foreground":"#475663","editor.findMatchBackground":"#AED4FB","editorHint.foreground":"#F9F9F9","editorHint.border":"#F9F9F9","editor.wordHighlightBackground":"#AED4FB","terminal.border":"#2D3E4C","terminal.foreground":"#161F26","terminal.ansiBlack":"#000000","terminal.ansiBlue":"#6182b8","terminal.ansiBrightBlack":"#90a4ae","terminal.ansiBrightBlue":"#6182b8","terminal.ansiBrightCyan":"#39adb5","terminal.ansiBrightGreen":"#91b859","terminal.ansiBrightMagenta":"#7c4dff","terminal.ansiBrightRed":"#e53935","terminal.ansiBrightWhite":"#ffffff","terminal.ansiBrightYellow":"#ffb62c","terminal.ansiCyan":"#39adb5","terminal.ansiGreen":"#91b859","terminal.ansiMagenta":"#7c4dff","terminal.ansiRed":"#e53935","terminal.ansiWhite":"#ffffff","terminal.ansiYellow":"#ffb62c","terminal.selectionBackground":"#0006","panelTitle.activeForeground":"#161F26","activityBar.background":"#161F26","activityBar.foreground":"#FFF","activityBar.dropBackground":"#FFF","activityBarBadge.background":"#8AE773","activityBarBadge.foreground":"#FFF","panel.border":"#2D3E4C","dropdown.background":"#FFF","dropdown.listBackground":"#FFF","dropdown.border":"#DCDEDF","dropdown.foreground":"#DCDEDF","sideBar.background":"#2D3E4C","sideBar.foreground":"#DCDEDF","sideBarTitle.foreground":"#FFF","sideBarSectionHeader.foreground":"#FFF","sideBarSectionHeader.background":"#161F26","debugToolBar.background":"#161F26","tab.border":"#F3F3F3","tab.activeBackground":"#FFF","tab.inactiveForeground":"#686868","tab.inactiveBackground":"#F3F3F3","tab.activeForeground":"#000","editorGroupHeader.tabsBackground":"#2D3E4C","statusBar.foreground":"#FFF","statusBar.background":"#5899C5","statusBar.debuggingBackground":"#8AE773","statusBar.noFolderBackground":"#161F26","extensionButton.prominentBackground":"#475663","extensionButton.prominentForeground":"#F6F6F6","extensionButton.prominentHoverBackground":"#161F26","gitDecoration.modifiedResourceForeground":"#ECB22E","gitDecoration.deletedResourceForeground":"#FFF","gitDecoration.untrackedResourceForeground":"#ECB22E","gitDecoration.ignoredResourceForeground":"#877583","gitDecoration.addedResourceForeground":"#ECB22E","gitDecoration.conflictingResourceForeground":"#FFF","notificationCenter.border":"#161F26","notificationToast.border":"#161F26","notifications.foreground":"#FFF","notifications.background":"#161F26","notifications.border":"#161F26","notificationCenterHeader.foreground":"#FFF","notificationLink.foreground":"#FFF","titleBar.activeBackground":"#2D3E4C","titleBar.activeForeground":"#FFF","titleBar.inactiveBackground":"#161F26","titleBar.inactiveForeground":"#685C66","titleBar.border":"#2D3E4C","welcomePage.buttonBackground":"#F3F3F3","welcomePage.buttonHoverBackground":"#ECECEC","editorWidget.background":"#F9F9F9","editorWidget.border":"#dbdbdb","editorSuggestWidget.foreground":"#2D3E4C","editorSuggestWidget.highlightForeground":"#2D3E4C","editorSuggestWidget.selectedBackground":"#b9b9b9","editorGroup.emptyBackground":"#2D3E4C","editorGroup.focusedEmptyBorder":"#2D3E4C","editorPane.background":"#2D3E4C","breadcrumb.foreground":"#161F26","breadcrumb.focusForeground":"#475663","settings.headerForeground":"#161F26","settings.dropdownForeground":"#161F26","settings.dropdownBorder":"#161F26","menu.separatorBackground":"#F9FAFA","menu.background":"#161F26","menu.foreground":"#F9FAFA","textPreformat.foreground":"#161F26","editorIndentGuide.background":"#F3F3F3","editorIndentGuide.activeBackground":"#dbdbdb","debugExceptionWidget.background":"#AED4FB","debugExceptionWidget.border":"#161F26","editorMarkerNavigation.background":"#F9F9F9","editorMarkerNavigationInfo.background":"#6182b8","editorMarkerNavigationError.background":"#F44C5E","editorMarkerNavigationWarning.background":"#F6B555"},tokenColors:[{settings:{foreground:"#002339"}},{scope:["meta.paragraph.markdown","string.other.link.description.title.markdown"],settings:{foreground:"#110000"}},{scope:["entity.name.section.markdown","punctuation.definition.heading.markdown"],settings:{foreground:"#034c7c"}},{scope:["punctuation.definition.string.begin.markdown","punctuation.definition.string.end.markdown","markup.quote.markdown"],settings:{foreground:"#00AC8F"}},{scope:["markup.quote.markdown"],settings:{fontStyle:"italic",foreground:"#003494"}},{scope:["markup.bold.markdown","punctuation.definition.bold.markdown"],settings:{fontStyle:"bold",foreground:"#4e76b5"}},{scope:["markup.italic.markdown","punctuation.definition.italic.markdown"],settings:{fontStyle:"italic",foreground:"#C792EA"}},{scope:["markup.inline.raw.string.markdown","markup.fenced_code.block.markdown"],settings:{fontStyle:"italic",foreground:"#0460b1"}},{scope:["punctuation.definition.metadata.markdown"],settings:{foreground:"#00AC8F"}},{scope:["markup.underline.link.image.markdown","markup.underline.link.markdown"],settings:{foreground:"#924205"}},{name:"Comment",scope:"comment",settings:{fontStyle:"italic",foreground:"#357b42"}},{name:"String",scope:"string",settings:{foreground:"#a44185"}},{name:"Number",scope:"constant.numeric",settings:{foreground:"#174781"}},{name:"Constant",scope:"constant",settings:{foreground:"#174781"}},{name:"Built-in constant",scope:"language.method",settings:{foreground:"#174781"}},{name:"User-defined constant",scope:["constant.character","constant.other"],settings:{foreground:"#174781"}},{name:"Variable",scope:"variable",settings:{fontStyle:"",foreground:"#2f86d2"}},{name:"Variable",scope:"variable.language.this",settings:{fontStyle:"",foreground:"#000000"}},{name:"Keyword",scope:"keyword",settings:{fontStyle:"",foreground:"#7b30d0"}},{name:"Storage",scope:"storage",settings:{fontStyle:"",foreground:"#da5221"}},{name:"Storage type",scope:"storage.type",settings:{foreground:"#0991b6",fontStyle:""}},{name:"Class name",scope:"entity.name.class",settings:{foreground:"#1172c7"}},{name:"Inherited class",scope:"entity.other.inherited-class",settings:{fontStyle:"",foreground:"#b02767"}},{name:"Function name",scope:"entity.name.function",settings:{fontStyle:"",foreground:"#7eb233"}},{name:"Function argument",scope:"variable.parameter",settings:{foreground:"#b1108e",fontStyle:""}},{name:"Tag name",scope:"entity.name.tag",settings:{fontStyle:"",foreground:"#0444ac"}},{name:"Html Other",scope:"text.html.basic",settings:{fontStyle:"",foreground:"#0071ce"}},{name:"Entity Name Type",scope:"entity.name.type",settings:{foreground:"#0444ac"}},{name:"Tag attribute",scope:"entity.other.attribute-name",settings:{fontStyle:"italic",foreground:"#df8618"}},{name:"Library function",scope:"support.function",settings:{fontStyle:"",foreground:"#1ab394"}},{name:"Library constant",scope:"support.constant",settings:{fontStyle:"",foreground:"#174781"}},{name:"Library class/type",scope:["support.type","support.class"],settings:{foreground:"#dc3eb7"}},{name:"Library variable",scope:"support.other.variable",settings:{foreground:"#224555"}},{name:"Invalid",scope:"invalid",settings:{fontStyle:" italic bold underline",foreground:"#207bb8"}},{name:"Invalid deprecated",scope:"invalid.deprecated",settings:{foreground:"#207bb8",fontStyle:" bold italic underline"}},{name:"[JSON] - Support",scope:"source.json support",settings:{foreground:"#6dbdfa"}},{name:"[JSON] - String",scope:["source.json string","source.json punctuation.definition.string"],settings:{foreground:"#00820f"}},{name:"Lists",scope:"markup.list",settings:{foreground:"#207bb8"}},{name:"Headings",scope:["markup.heading punctuation.definition.heading","entity.name.section"],settings:{fontStyle:"",foreground:"#4FB4D8"}},{name:"Support",scope:["text.html.markdown meta.paragraph meta.link.inline","text.html.markdown meta.paragraph meta.link.inline punctuation.definition.string.begin.markdown","text.html.markdown meta.paragraph meta.link.inline punctuation.definition.string.end.markdown"],settings:{foreground:"#87429A"}},{name:"Quotes",scope:"markup.quote",settings:{foreground:"#87429A"}},{name:"Bold",scope:"markup.bold",settings:{fontStyle:"bold",foreground:"#08134A"}},{name:"Italic",scope:["markup.italic","punctuation.definition.italic"],settings:{fontStyle:"italic",foreground:"#174781"}},{name:"Link Url",scope:"meta.link",settings:{foreground:"#87429A"}}]}; + +export { slackOchin as default }; diff --git a/docs/shiki/dist/themes/solarized-dark-dc3ec4c3.mjs b/docs/shiki/dist/themes/solarized-dark-dc3ec4c3.mjs new file mode 100644 index 00000000..2cd43a10 --- /dev/null +++ b/docs/shiki/dist/themes/solarized-dark-dc3ec4c3.mjs @@ -0,0 +1,3 @@ +var solarizedDark = {name:"solarized-dark",tokenColors:[{settings:{foreground:"#839496"}},{scope:["meta.embedded","source.groovy.embedded","string meta.image.inline.markdown"],settings:{foreground:"#839496"}},{name:"Comment",scope:"comment",settings:{fontStyle:"italic",foreground:"#586E75"}},{name:"String",scope:"string",settings:{foreground:"#2AA198"}},{name:"Regexp",scope:"string.regexp",settings:{foreground:"#DC322F"}},{name:"Number",scope:"constant.numeric",settings:{foreground:"#D33682"}},{name:"Variable",scope:["variable.language","variable.other"],settings:{foreground:"#268BD2"}},{name:"Keyword",scope:"keyword",settings:{foreground:"#859900"}},{name:"Storage",scope:"storage",settings:{fontStyle:"bold",foreground:"#93A1A1"}},{name:"Class name",scope:["entity.name.class","entity.name.type","entity.name.namespace","entity.name.scope-resolution"],settings:{fontStyle:"",foreground:"#CB4B16"}},{name:"Function name",scope:"entity.name.function",settings:{foreground:"#268BD2"}},{name:"Variable start",scope:"punctuation.definition.variable",settings:{foreground:"#859900"}},{name:"Embedded code markers",scope:["punctuation.section.embedded.begin","punctuation.section.embedded.end"],settings:{foreground:"#DC322F"}},{name:"Built-in constant",scope:["constant.language","meta.preprocessor"],settings:{foreground:"#B58900"}},{name:"Support.construct",scope:["support.function.construct","keyword.other.new"],settings:{foreground:"#CB4B16"}},{name:"User-defined constant",scope:["constant.character","constant.other"],settings:{foreground:"#CB4B16"}},{name:"Inherited class",scope:"entity.other.inherited-class",settings:{foreground:"#6C71C4"}},{name:"Function argument",scope:"variable.parameter",settings:{}},{name:"Tag name",scope:"entity.name.tag",settings:{foreground:"#268BD2"}},{name:"Tag start/end",scope:"punctuation.definition.tag",settings:{foreground:"#586E75"}},{name:"Tag attribute",scope:"entity.other.attribute-name",settings:{foreground:"#93A1A1"}},{name:"Library function",scope:"support.function",settings:{foreground:"#268BD2"}},{name:"Continuation",scope:"punctuation.separator.continuation",settings:{foreground:"#DC322F"}},{name:"Library constant",scope:["support.constant","support.variable"],settings:{}},{name:"Library class/type",scope:["support.type","support.class"],settings:{foreground:"#859900"}},{name:"Library Exception",scope:"support.type.exception",settings:{foreground:"#CB4B16"}},{name:"Library variable",scope:"support.other.variable",settings:{}},{name:"Invalid",scope:"invalid",settings:{foreground:"#DC322F"}},{name:"diff: header",scope:["meta.diff","meta.diff.header"],settings:{fontStyle:"italic",foreground:"#268BD2"}},{name:"diff: deleted",scope:"markup.deleted",settings:{fontStyle:"",foreground:"#DC322F"}},{name:"diff: changed",scope:"markup.changed",settings:{fontStyle:"",foreground:"#CB4B16"}},{name:"diff: inserted",scope:"markup.inserted",settings:{foreground:"#859900"}},{name:"Markup Quote",scope:"markup.quote",settings:{foreground:"#859900"}},{name:"Markup Lists",scope:"markup.list",settings:{foreground:"#B58900"}},{name:"Markup Styling",scope:["markup.bold","markup.italic"],settings:{foreground:"#D33682"}},{name:"Markup: Strong",scope:"markup.bold",settings:{fontStyle:"bold"}},{name:"Markup: Emphasis",scope:"markup.italic",settings:{fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{name:"Markup Inline",scope:"markup.inline.raw",settings:{fontStyle:"",foreground:"#2AA198"}},{name:"Markup Headings",scope:"markup.heading",settings:{fontStyle:"bold",foreground:"#268BD2"}},{name:"Markup Setext Header",scope:"markup.heading.setext",settings:{fontStyle:"",foreground:"#268BD2"}}],colors:{focusBorder:"#2AA19899","selection.background":"#2AA19899","input.background":"#003847","input.foreground":"#93A1A1","input.placeholderForeground":"#93A1A1AA","inputOption.activeBorder":"#2AA19899","inputValidation.infoBorder":"#363b5f","inputValidation.infoBackground":"#052730","inputValidation.warningBackground":"#5d5938","inputValidation.warningBorder":"#9d8a5e","inputValidation.errorBackground":"#571b26","inputValidation.errorBorder":"#a92049",errorForeground:"#ffeaea","badge.background":"#047aa6","progressBar.background":"#047aa6","dropdown.background":"#00212B","dropdown.border":"#2AA19899","button.background":"#2AA19899","list.activeSelectionBackground":"#005A6F","quickInputList.focusBackground":"#005A6F","list.hoverBackground":"#004454AA","list.inactiveSelectionBackground":"#00445488","list.dropBackground":"#00445488","list.highlightForeground":"#1ebcc5","editor.background":"#002B36","editor.foreground":"#839496","editorWidget.background":"#00212B","editorCursor.foreground":"#D30102","editorWhitespace.foreground":"#93A1A180","editor.lineHighlightBackground":"#073642","editorLineNumber.activeForeground":"#949494","editor.selectionBackground":"#274642","minimap.selectionHighlight":"#274642","editorIndentGuide.background":"#93A1A180","editorIndentGuide.activeBackground":"#C3E1E180","editorHoverWidget.background":"#004052","editorMarkerNavigationError.background":"#AB395B","editorMarkerNavigationWarning.background":"#5B7E7A","editor.selectionHighlightBackground":"#005A6FAA","editor.wordHighlightBackground":"#004454AA","editor.wordHighlightStrongBackground":"#005A6FAA","editorBracketHighlight.foreground1":"#cdcdcdff","editorBracketHighlight.foreground2":"#b58900ff","editorBracketHighlight.foreground3":"#d33682ff","peekViewResult.background":"#00212B","peekViewEditor.background":"#10192c","peekViewTitle.background":"#00212B","peekView.border":"#2b2b4a","peekViewEditor.matchHighlightBackground":"#7744AA40","titleBar.activeBackground":"#002C39","editorGroup.border":"#00212B","editorGroup.dropBackground":"#2AA19844","editorGroupHeader.tabsBackground":"#004052","tab.activeForeground":"#d6dbdb","tab.activeBackground":"#002B37","tab.inactiveForeground":"#93A1A1","tab.inactiveBackground":"#004052","tab.border":"#003847","tab.lastPinnedBorder":"#2AA19844","activityBar.background":"#003847","panel.border":"#2b2b4a","sideBar.background":"#00212B","sideBarTitle.foreground":"#93A1A1","statusBar.foreground":"#93A1A1","statusBar.background":"#00212B","statusBar.debuggingBackground":"#00212B","statusBar.noFolderBackground":"#00212B","statusBarItem.remoteBackground":"#2AA19899","ports.iconRunningProcessForeground":"#369432","statusBarItem.prominentBackground":"#003847","statusBarItem.prominentHoverBackground":"#003847","debugToolBar.background":"#00212B","debugExceptionWidget.background":"#00212B","debugExceptionWidget.border":"#AB395B","pickerGroup.foreground":"#2AA19899","pickerGroup.border":"#2AA19899","terminal.ansiBlack":"#073642","terminal.ansiRed":"#dc322f","terminal.ansiGreen":"#859900","terminal.ansiYellow":"#b58900","terminal.ansiBlue":"#268bd2","terminal.ansiMagenta":"#d33682","terminal.ansiCyan":"#2aa198","terminal.ansiWhite":"#eee8d5","terminal.ansiBrightBlack":"#002b36","terminal.ansiBrightRed":"#cb4b16","terminal.ansiBrightGreen":"#586e75","terminal.ansiBrightYellow":"#657b83","terminal.ansiBrightBlue":"#839496","terminal.ansiBrightMagenta":"#6c71c4","terminal.ansiBrightCyan":"#93a1a1","terminal.ansiBrightWhite":"#fdf6e3"},semanticHighlighting:true}; + +export { solarizedDark as default }; diff --git a/docs/shiki/dist/themes/solarized-light-b414084a.mjs b/docs/shiki/dist/themes/solarized-light-b414084a.mjs new file mode 100644 index 00000000..89518498 --- /dev/null +++ b/docs/shiki/dist/themes/solarized-light-b414084a.mjs @@ -0,0 +1,3 @@ +var solarizedLight = {name:"solarized-light",tokenColors:[{settings:{foreground:"#657B83"}},{scope:["meta.embedded","source.groovy.embedded","string meta.image.inline.markdown"],settings:{foreground:"#657B83"}},{name:"Comment",scope:"comment",settings:{fontStyle:"italic",foreground:"#93A1A1"}},{name:"String",scope:"string",settings:{foreground:"#2AA198"}},{name:"Regexp",scope:"string.regexp",settings:{foreground:"#DC322F"}},{name:"Number",scope:"constant.numeric",settings:{foreground:"#D33682"}},{name:"Variable",scope:["variable.language","variable.other"],settings:{foreground:"#268BD2"}},{name:"Keyword",scope:"keyword",settings:{foreground:"#859900"}},{name:"Storage",scope:"storage",settings:{fontStyle:"bold",foreground:"#586E75"}},{name:"Class name",scope:["entity.name.class","entity.name.type","entity.name.namespace","entity.name.scope-resolution"],settings:{fontStyle:"",foreground:"#CB4B16"}},{name:"Function name",scope:"entity.name.function",settings:{foreground:"#268BD2"}},{name:"Variable start",scope:"punctuation.definition.variable",settings:{foreground:"#859900"}},{name:"Embedded code markers",scope:["punctuation.section.embedded.begin","punctuation.section.embedded.end"],settings:{foreground:"#DC322F"}},{name:"Built-in constant",scope:["constant.language","meta.preprocessor"],settings:{foreground:"#B58900"}},{name:"Support.construct",scope:["support.function.construct","keyword.other.new"],settings:{foreground:"#CB4B16"}},{name:"User-defined constant",scope:["constant.character","constant.other"],settings:{foreground:"#CB4B16"}},{name:"Inherited class",scope:"entity.other.inherited-class",settings:{foreground:"#6C71C4"}},{name:"Function argument",scope:"variable.parameter",settings:{}},{name:"Tag name",scope:"entity.name.tag",settings:{foreground:"#268BD2"}},{name:"Tag start/end",scope:"punctuation.definition.tag",settings:{foreground:"#93A1A1"}},{name:"Tag attribute",scope:"entity.other.attribute-name",settings:{foreground:"#93A1A1"}},{name:"Library function",scope:"support.function",settings:{foreground:"#268BD2"}},{name:"Continuation",scope:"punctuation.separator.continuation",settings:{foreground:"#DC322F"}},{name:"Library constant",scope:["support.constant","support.variable"],settings:{}},{name:"Library class/type",scope:["support.type","support.class"],settings:{foreground:"#859900"}},{name:"Library Exception",scope:"support.type.exception",settings:{foreground:"#CB4B16"}},{name:"Library variable",scope:"support.other.variable",settings:{}},{name:"Invalid",scope:"invalid",settings:{foreground:"#DC322F"}},{name:"diff: header",scope:["meta.diff","meta.diff.header"],settings:{fontStyle:"italic",foreground:"#268BD2"}},{name:"diff: deleted",scope:"markup.deleted",settings:{fontStyle:"",foreground:"#DC322F"}},{name:"diff: changed",scope:"markup.changed",settings:{fontStyle:"",foreground:"#CB4B16"}},{name:"diff: inserted",scope:"markup.inserted",settings:{foreground:"#859900"}},{name:"Markup Quote",scope:"markup.quote",settings:{foreground:"#859900"}},{name:"Markup Lists",scope:"markup.list",settings:{foreground:"#B58900"}},{name:"Markup Styling",scope:["markup.bold","markup.italic"],settings:{foreground:"#D33682"}},{name:"Markup: Strong",scope:"markup.bold",settings:{fontStyle:"bold"}},{name:"Markup: Emphasis",scope:"markup.italic",settings:{fontStyle:"italic"}},{scope:"markup.strikethrough",settings:{fontStyle:"strikethrough"}},{name:"Markup Inline",scope:"markup.inline.raw",settings:{fontStyle:"",foreground:"#2AA198"}},{name:"Markup Headings",scope:"markup.heading",settings:{fontStyle:"bold",foreground:"#268BD2"}},{name:"Markup Setext Header",scope:"markup.heading.setext",settings:{fontStyle:"",foreground:"#268BD2"}}],colors:{focusBorder:"#b49471","input.background":"#DDD6C1","input.foreground":"#586E75","input.placeholderForeground":"#586E75AA","inputOption.activeBorder":"#D3AF86","badge.background":"#B58900AA","progressBar.background":"#B58900","dropdown.background":"#EEE8D5","dropdown.border":"#D3AF86","button.background":"#AC9D57","selection.background":"#878b9180","list.activeSelectionBackground":"#DFCA88","list.activeSelectionForeground":"#6C6C6C","quickInputList.focusBackground":"#DFCA8866","list.hoverBackground":"#DFCA8844","list.inactiveSelectionBackground":"#D1CBB8","list.highlightForeground":"#B58900","editor.background":"#FDF6E3","editor.foreground":"#657B83","notebook.cellEditorBackground":"#F7F0E0","editorWidget.background":"#EEE8D5","editorCursor.foreground":"#657B83","editorWhitespace.foreground":"#586E7580","editor.lineHighlightBackground":"#EEE8D5","editor.selectionBackground":"#EEE8D5","minimap.selectionHighlight":"#EEE8D5","editorIndentGuide.background":"#586E7580","editorIndentGuide.activeBackground":"#081E2580","editorHoverWidget.background":"#CCC4B0","editorLineNumber.activeForeground":"#567983","peekViewResult.background":"#EEE8D5","peekViewEditor.background":"#FFFBF2","peekViewTitle.background":"#EEE8D5","peekView.border":"#B58900","peekViewEditor.matchHighlightBackground":"#7744AA40","titleBar.activeBackground":"#EEE8D5","editorGroup.border":"#DDD6C1","editorGroup.dropBackground":"#DDD6C1AA","editorGroupHeader.tabsBackground":"#D9D2C2","tab.border":"#DDD6C1","tab.activeBackground":"#FDF6E3","tab.inactiveForeground":"#586E75","tab.inactiveBackground":"#D3CBB7","tab.activeModifiedBorder":"#cb4b16","tab.lastPinnedBorder":"#FDF6E3","activityBar.background":"#DDD6C1","activityBar.foreground":"#584c27","activityBarBadge.background":"#B58900","panel.border":"#DDD6C1","sideBar.background":"#EEE8D5","sideBarTitle.foreground":"#586E75","statusBar.foreground":"#586E75","statusBar.background":"#EEE8D5","statusBar.debuggingBackground":"#EEE8D5","statusBar.noFolderBackground":"#EEE8D5","statusBarItem.remoteBackground":"#AC9D57","ports.iconRunningProcessForeground":"#2AA19899","statusBarItem.prominentBackground":"#DDD6C1","statusBarItem.prominentHoverBackground":"#DDD6C199","debugToolBar.background":"#DDD6C1","debugExceptionWidget.background":"#DDD6C1","debugExceptionWidget.border":"#AB395B","pickerGroup.border":"#2AA19899","pickerGroup.foreground":"#2AA19899","extensionButton.prominentBackground":"#b58900","extensionButton.prominentHoverBackground":"#584c27aa","terminal.ansiBlack":"#073642","terminal.ansiRed":"#dc322f","terminal.ansiGreen":"#859900","terminal.ansiYellow":"#b58900","terminal.ansiBlue":"#268bd2","terminal.ansiMagenta":"#d33682","terminal.ansiCyan":"#2aa198","terminal.ansiWhite":"#eee8d5","terminal.ansiBrightBlack":"#002b36","terminal.ansiBrightRed":"#cb4b16","terminal.ansiBrightGreen":"#586e75","terminal.ansiBrightYellow":"#657b83","terminal.ansiBrightBlue":"#839496","terminal.ansiBrightMagenta":"#6c71c4","terminal.ansiBrightCyan":"#93a1a1","terminal.ansiBrightWhite":"#fdf6e3","terminal.background":"#FDF6E3","walkThrough.embeddedEditorBackground":"#00000014"},semanticHighlighting:true}; + +export { solarizedLight as default }; diff --git a/docs/shiki/dist/themes/vitesse-dark-255f0bad.mjs b/docs/shiki/dist/themes/vitesse-dark-255f0bad.mjs new file mode 100644 index 00000000..48fdec86 --- /dev/null +++ b/docs/shiki/dist/themes/vitesse-dark-255f0bad.mjs @@ -0,0 +1,3 @@ +var vitesseDark = {name:"vitesse-dark",base:"vs-dark",colors:{focusBorder:"#00000000",foreground:"#dbd7caee",descriptionForeground:"#dedcd590",errorForeground:"#cb7676","textLink.foreground":"#4d9375","textLink.activeForeground":"#4d9375","textBlockQuote.background":"#121212","textBlockQuote.border":"#191919","textCodeBlock.background":"#121212","textPreformat.foreground":"#d1d5da","textSeparator.foreground":"#586069","button.background":"#4d9375","button.foreground":"#121212","button.hoverBackground":"#4d9375","checkbox.background":"#181818","checkbox.border":"#2f363d","dropdown.background":"#121212","dropdown.border":"#191919","dropdown.foreground":"#dbd7caee","dropdown.listBackground":"#181818","input.background":"#181818","input.border":"#191919","input.foreground":"#dbd7caee","input.placeholderForeground":"#dedcd590","inputOption.activeBackground":"#dedcd550","badge.foreground":"#121212","badge.background":"#dedcd590","progressBar.background":"#4d9375","titleBar.activeForeground":"#bfbaaa","titleBar.activeBackground":"#121212","titleBar.inactiveForeground":"#959da5","titleBar.inactiveBackground":"#121212","titleBar.border":"#181818","activityBar.foreground":"#dbd7caee","activityBar.inactiveForeground":"#dedcd550","activityBar.background":"#121212","activityBarBadge.foreground":"#121212","activityBarBadge.background":"#bfbaaa","activityBar.activeBorder":"#4d9375","activityBar.border":"#191919","sideBar.foreground":"#bfbaaa","sideBar.background":"#121212","sideBar.border":"#191919","sideBarTitle.foreground":"#dbd7caee","sideBarSectionHeader.foreground":"#dbd7caee","sideBarSectionHeader.background":"#121212","sideBarSectionHeader.border":"#191919","list.hoverForeground":"#dbd7caee","list.inactiveSelectionForeground":"#dbd7caee","list.activeSelectionForeground":"#dbd7caee","list.hoverBackground":"#181818","list.inactiveSelectionBackground":"#181818","list.activeSelectionBackground":"#181818","list.inactiveFocusBackground":"#121212","list.focusBackground":"#181818","list.highlightForeground":"#4d9375","tree.indentGuidesStroke":"#2f363d","notificationCenterHeader.foreground":"#959da5","notificationCenterHeader.background":"#121212","notifications.foreground":"#dbd7caee","notifications.background":"#121212","notifications.border":"#191919","notificationsErrorIcon.foreground":"#cb7676","notificationsWarningIcon.foreground":"#d4976c","notificationsInfoIcon.foreground":"#6394bf","pickerGroup.border":"#191919","pickerGroup.foreground":"#dbd7caee","quickInput.background":"#121212","quickInput.foreground":"#dbd7caee","quickInputList.focusBackground":"#181818","statusBar.foreground":"#bfbaaa","statusBar.background":"#121212","statusBar.border":"#191919","statusBar.noFolderBackground":"#121212","statusBar.debuggingBackground":"#181818","statusBar.debuggingForeground":"#bfbaaa","statusBarItem.prominentBackground":"#181818","editorGroupHeader.tabsBackground":"#121212","editorGroupHeader.tabsBorder":"#191919","editorGroup.border":"#191919","tab.activeForeground":"#dbd7caee","tab.inactiveForeground":"#959da5","tab.inactiveBackground":"#121212","tab.activeBackground":"#121212","tab.hoverBackground":"#181818","tab.unfocusedHoverBackground":"#121212","tab.border":"#191919","tab.unfocusedActiveBorderTop":"#191919","tab.activeBorder":"#191919","tab.unfocusedActiveBorder":"#191919","tab.activeBorderTop":"#dedcd590","breadcrumb.foreground":"#959da5","breadcrumb.focusForeground":"#dbd7caee","breadcrumb.background":"#181818","breadcrumb.activeSelectionForeground":"#eeeeee15","breadcrumbPicker.background":"#121212","editor.foreground":"#dbd7caee","editor.background":"#121212","editorWidget.background":"#121212","editor.foldBackground":"#eeeeee10","editor.lineHighlightBackground":"#181818","editorLineNumber.foreground":"#dedcd550","editorLineNumber.activeForeground":"#bfbaaa","editorIndentGuide.background":"#ffffff15","editorIndentGuide.activeBackground":"#ffffff30","editorWhitespace.foreground":"#ffffff15","editor.findMatchBackground":"#e6cc7722","editor.findMatchHighlightBackground":"#e6cc7744","editor.inactiveSelectionBackground":"#eeeeee08","editor.selectionBackground":"#eeeeee15","editor.selectionHighlightBackground":"#eeeeee08","editor.wordHighlightBackground":"#1c6b4805","editor.wordHighlightStrongBackground":"#1c6b4810","editorBracketMatch.background":"#4d937520","diffEditor.insertedTextBackground":"#4d937522","diffEditor.removedTextBackground":"#ab595922","scrollbar.shadow":"#0000","scrollbarSlider.background":"#dedcd510","scrollbarSlider.hoverBackground":"#dedcd550","scrollbarSlider.activeBackground":"#dedcd550","editorOverviewRuler.border":"#111","panel.background":"#121212","panel.border":"#191919","panelTitle.activeBorder":"#4d9375","panelTitle.activeForeground":"#dbd7caee","panelTitle.inactiveForeground":"#959da5","panelInput.border":"#2f363d","terminal.foreground":"#dbd7caee","terminal.selectionBackground":"#eeeeee15","terminal.ansiBrightBlack":"#777777","terminal.ansiBrightBlue":"#6394bf","terminal.ansiBrightCyan":"#5eaab5","terminal.ansiBrightGreen":"#4d9375","terminal.ansiBrightMagenta":"#d9739f","terminal.ansiBrightRed":"#cb7676","terminal.ansiBrightWhite":"#ffffff","terminal.ansiBrightYellow":"#e6cc77","terminal.ansiBlack":"#393a34","terminal.ansiBlue":"#6394bf","terminal.ansiCyan":"#5eaab5","terminal.ansiGreen":"#4d9375","terminal.ansiMagenta":"#d9739f","terminal.ansiRed":"#cb7676","terminal.ansiWhite":"#dbd7caee","terminal.ansiYellow":"#e6cc77","gitDecoration.addedResourceForeground":"#4d9375","gitDecoration.modifiedResourceForeground":"#6394bf","gitDecoration.deletedResourceForeground":"#cb7676","gitDecoration.untrackedResourceForeground":"#5eaab5","gitDecoration.ignoredResourceForeground":"#dedcd550","gitDecoration.conflictingResourceForeground":"#d4976c","gitDecoration.submoduleResourceForeground":"#dedcd590","editorGutter.modifiedBackground":"#6394bf","editorGutter.addedBackground":"#4d9375","editorGutter.deletedBackground":"#cb7676","editorBracketHighlight.foreground1":"#5eaab5","editorBracketHighlight.foreground2":"#4d9375","editorBracketHighlight.foreground3":"#d4976c","editorBracketHighlight.foreground4":"#d9739f","editorBracketHighlight.foreground5":"#e6cc77","editorBracketHighlight.foreground6":"#6394bf","debugToolBar.background":"#121212","editor.stackFrameHighlightBackground":"#a707","editor.focusedStackFrameHighlightBackground":"#b808","peekViewEditor.matchHighlightBackground":"#ffd33d33","peekViewResult.matchHighlightBackground":"#ffd33d33","peekViewEditor.background":"#121212","peekViewResult.background":"#121212","settings.headerForeground":"#dbd7caee","settings.modifiedItemIndicator":"#4d9375","welcomePage.buttonBackground":"#2f363d","welcomePage.buttonHoverBackground":"#444d56","problemsErrorIcon.foreground":"#cb7676","problemsWarningIcon.foreground":"#d4976c","problemsInfoIcon.foreground":"#6394bf","editorError.foreground":"#cb7676","editorWarning.foreground":"#d4976c","editorInfo.foreground":"#6394bf","editorHint.foreground":"#4d9375","editorGutter.commentRangeForeground":"#dedcd550","editorGutter.foldingControlForeground":"#dedcd590","editorInlayHint.foreground":"#666666","editorInlayHint.background":"#00000000","editorStickyScroll.background":"#181818","editorStickyScrollHover.background":"#181818","menu.separatorBackground":"#191919"},semanticHighlighting:true,semanticTokenColors:{namespace:"#db889a",property:"#b8a965","interface":"#5d99a9",type:"#5d99a9","class":"#7f8ac7"},tokenColors:[{scope:["comment","punctuation.definition.comment","string.comment"],settings:{foreground:"#758575dd"}},{scope:["delimiter.bracket","delimiter","invalid.illegal.character-not-allowed-here.html","keyword.operator.rest","keyword.operator.spread","keyword.operator.type.annotation","keyword.operator.relational","keyword.operator.assignment","meta.brace","meta.tag.block.any.html","meta.tag.inline.any.html","meta.tag.structure.input.void.html","meta.type.annotation","meta.embedded.block.github-actions-expression","storage.type.function.arrow","keyword.operator.type","meta.objectliteral.ts","punctuation"],settings:{foreground:"#666666"}},{scope:["constant","entity.name.constant","variable.language","meta.definition.variable"],settings:{foreground:"#c99076"}},{scope:["entity","entity.name"],settings:{foreground:"#80a665"}},{scope:"variable.parameter.function",settings:{foreground:"#dbd7caee"}},{scope:["entity.name.tag","tag.html"],settings:{foreground:"#4d9375"}},{scope:"entity.name.function",settings:{foreground:"#80a665"}},{scope:["keyword","storage.type.class.jsdoc"],settings:{foreground:"#4d9375"}},{scope:["storage","storage.type","support.type.builtin","constant.language.undefined","constant.language.null"],settings:{foreground:"#cb7676"}},{scope:["text.html.derivative","storage.modifier.package","storage.modifier.import","storage.type.java"],settings:{foreground:"#dbd7caee"}},{scope:["string","string punctuation.section.embedded source","attribute.value"],settings:{foreground:"#c98a7d"}},{scope:["punctuation.definition.string","punctuation.support.type.property-name"],settings:{foreground:"#c98a7d99"}},{scope:"support",settings:{foreground:"#b8a965"}},{scope:["property","meta.property-name","meta.object-literal.key","entity.name.tag.yaml","attribute.name"],settings:{foreground:"#b8a965"}},{scope:["entity.other.attribute-name","invalid.deprecated.entity.other.attribute-name.html"],settings:{foreground:"#bd976a"}},{scope:["variable","identifier"],settings:{foreground:"#bd976a"}},{scope:["support.type.primitive","entity.name.type"],settings:{foreground:"#5DA994"}},{scope:"namespace",settings:{foreground:"#db889a"}},{scope:["keyword.operator","keyword.operator.assignment.compound","meta.var.expr.ts"],settings:{foreground:"#cb7676"}},{scope:"invalid.broken",settings:{fontStyle:"italic",foreground:"#fdaeb7"}},{scope:"invalid.deprecated",settings:{fontStyle:"italic",foreground:"#fdaeb7"}},{scope:"invalid.illegal",settings:{fontStyle:"italic",foreground:"#fdaeb7"}},{scope:"invalid.unimplemented",settings:{fontStyle:"italic",foreground:"#fdaeb7"}},{scope:"carriage-return",settings:{fontStyle:"italic underline",background:"#f97583",foreground:"#24292e",content:"^M"}},{scope:"message.error",settings:{foreground:"#fdaeb7"}},{scope:"string variable",settings:{foreground:"#c98a7d"}},{scope:["source.regexp","string.regexp"],settings:{foreground:"#c4704f"}},{scope:["string.regexp.character-class","string.regexp constant.character.escape","string.regexp source.ruby.embedded","string.regexp string.regexp.arbitrary-repitition"],settings:{foreground:"#c98a7d"}},{scope:"string.regexp constant.character.escape",settings:{foreground:"#e6cc77"}},{scope:["support.constant"],settings:{foreground:"#c99076"}},{scope:["constant.numeric","number"],settings:{foreground:"#4C9A91"}},{scope:["keyword.other.unit"],settings:{foreground:"#cb7676"}},{scope:["constant.language.boolean","constant.language"],settings:{foreground:"#4d9375"}},{scope:"meta.module-reference",settings:{foreground:"#4d9375"}},{scope:"punctuation.definition.list.begin.markdown",settings:{foreground:"#d4976c"}},{scope:["markup.heading","markup.heading entity.name"],settings:{fontStyle:"bold",foreground:"#4d9375"}},{scope:"markup.quote",settings:{foreground:"#5d99a9"}},{scope:"markup.italic",settings:{fontStyle:"italic",foreground:"#dbd7caee"}},{scope:"markup.bold",settings:{fontStyle:"bold",foreground:"#dbd7caee"}},{scope:"markup.raw",settings:{foreground:"#4d9375"}},{scope:["markup.deleted","meta.diff.header.from-file","punctuation.definition.deleted"],settings:{background:"#86181d",foreground:"#fdaeb7"}},{scope:["markup.inserted","meta.diff.header.to-file","punctuation.definition.inserted"],settings:{background:"#144620",foreground:"#85e89d"}},{scope:["markup.changed","punctuation.definition.changed"],settings:{background:"#c24e00",foreground:"#ffab70"}},{scope:["markup.ignored","markup.untracked"],settings:{foreground:"#2f363d",background:"#79b8ff"}},{scope:"meta.diff.range",settings:{foreground:"#b392f0",fontStyle:"bold"}},{scope:"meta.diff.header",settings:{foreground:"#79b8ff"}},{scope:"meta.separator",settings:{fontStyle:"bold",foreground:"#79b8ff"}},{scope:"meta.output",settings:{foreground:"#79b8ff"}},{scope:["brackethighlighter.tag","brackethighlighter.curly","brackethighlighter.round","brackethighlighter.square","brackethighlighter.angle","brackethighlighter.quote"],settings:{foreground:"#d1d5da"}},{scope:"brackethighlighter.unmatched",settings:{foreground:"#fdaeb7"}},{scope:["constant.other.reference.link","string.other.link","punctuation.definition.string.begin.markdown","punctuation.definition.string.end.markdown"],settings:{foreground:"#c98a7d"}},{scope:["markup.underline.link.markdown"],settings:{foreground:"#dedcd590",fontStyle:"underline"}},{scope:["type.identifier"],settings:{foreground:"#7f8ac7"}},{scope:["entity.other.attribute-name.html.vue"],settings:{foreground:"#80a665"}},{scope:["invalid.illegal.unrecognized-tag.html"],settings:{fontStyle:"normal"}}],rules:[{token:"comment",foreground:"758575dd"},{token:"punctuation.definition.comment",foreground:"758575dd"},{token:"string.comment",foreground:"758575dd"},{token:"delimiter.bracket",foreground:"666666"},{token:"delimiter",foreground:"666666"},{token:"invalid.illegal.character-not-allowed-here.html",foreground:"666666"},{token:"keyword.operator.rest",foreground:"666666"},{token:"keyword.operator.spread",foreground:"666666"},{token:"keyword.operator.type.annotation",foreground:"666666"},{token:"keyword.operator.relational",foreground:"666666"},{token:"keyword.operator.assignment",foreground:"666666"},{token:"meta.brace",foreground:"666666"},{token:"meta.tag.block.any.html",foreground:"666666"},{token:"meta.tag.inline.any.html",foreground:"666666"},{token:"meta.tag.structure.input.void.html",foreground:"666666"},{token:"meta.type.annotation",foreground:"666666"},{token:"meta.embedded.block.github-actions-expression",foreground:"666666"},{token:"storage.type.function.arrow",foreground:"666666"},{token:"keyword.operator.type",foreground:"666666"},{token:"meta.objectliteral.ts",foreground:"666666"},{token:"punctuation",foreground:"666666"},{token:"constant",foreground:"c99076"},{token:"entity.name.constant",foreground:"c99076"},{token:"variable.language",foreground:"c99076"},{token:"meta.definition.variable",foreground:"c99076"},{token:"entity",foreground:"80a665"},{token:"entity.name",foreground:"80a665"},{token:"variable.parameter.function",foreground:"dbd7caee"},{token:"entity.name.tag",foreground:"4d9375"},{token:"tag.html",foreground:"4d9375"},{token:"entity.name.function",foreground:"80a665"},{token:"keyword",foreground:"4d9375"},{token:"storage.type.class.jsdoc",foreground:"4d9375"},{token:"storage",foreground:"cb7676"},{token:"storage.type",foreground:"cb7676"},{token:"support.type.builtin",foreground:"cb7676"},{token:"constant.language.undefined",foreground:"cb7676"},{token:"constant.language.null",foreground:"cb7676"},{token:"text.html.derivative",foreground:"dbd7caee"},{token:"storage.modifier.package",foreground:"dbd7caee"},{token:"storage.modifier.import",foreground:"dbd7caee"},{token:"storage.type.java",foreground:"dbd7caee"},{token:"string",foreground:"c98a7d"},{token:"string punctuation.section.embedded source",foreground:"c98a7d"},{token:"attribute.value",foreground:"c98a7d"},{token:"punctuation.definition.string",foreground:"c98a7d99"},{token:"punctuation.support.type.property-name",foreground:"c98a7d99"},{token:"support",foreground:"b8a965"},{token:"property",foreground:"b8a965"},{token:"meta.property-name",foreground:"b8a965"},{token:"meta.object-literal.key",foreground:"b8a965"},{token:"entity.name.tag.yaml",foreground:"b8a965"},{token:"attribute.name",foreground:"b8a965"},{token:"entity.other.attribute-name",foreground:"bd976a"},{token:"invalid.deprecated.entity.other.attribute-name.html",foreground:"bd976a"},{token:"variable",foreground:"bd976a"},{token:"identifier",foreground:"bd976a"},{token:"support.type.primitive",foreground:"5DA994"},{token:"entity.name.type",foreground:"5DA994"},{token:"namespace",foreground:"db889a"},{token:"keyword.operator",foreground:"cb7676"},{token:"keyword.operator.assignment.compound",foreground:"cb7676"},{token:"meta.var.expr.ts",foreground:"cb7676"},{token:"invalid.broken",foreground:"fdaeb7"},{token:"invalid.deprecated",foreground:"fdaeb7"},{token:"invalid.illegal",foreground:"fdaeb7"},{token:"invalid.unimplemented",foreground:"fdaeb7"},{token:"carriage-return",foreground:"24292e"},{token:"message.error",foreground:"fdaeb7"},{token:"string variable",foreground:"c98a7d"},{token:"source.regexp",foreground:"c4704f"},{token:"string.regexp",foreground:"c4704f"},{token:"string.regexp.character-class",foreground:"c98a7d"},{token:"string.regexp constant.character.escape",foreground:"c98a7d"},{token:"string.regexp source.ruby.embedded",foreground:"c98a7d"},{token:"string.regexp string.regexp.arbitrary-repitition",foreground:"c98a7d"},{token:"string.regexp constant.character.escape",foreground:"e6cc77"},{token:"support.constant",foreground:"c99076"},{token:"constant.numeric",foreground:"4C9A91"},{token:"number",foreground:"4C9A91"},{token:"keyword.other.unit",foreground:"cb7676"},{token:"constant.language.boolean",foreground:"4d9375"},{token:"constant.language",foreground:"4d9375"},{token:"meta.module-reference",foreground:"4d9375"},{token:"punctuation.definition.list.begin.markdown",foreground:"d4976c"},{token:"markup.heading",foreground:"4d9375"},{token:"markup.heading entity.name",foreground:"4d9375"},{token:"markup.quote",foreground:"5d99a9"},{token:"markup.italic",foreground:"dbd7caee"},{token:"markup.bold",foreground:"dbd7caee"},{token:"markup.raw",foreground:"4d9375"},{token:"markup.deleted",foreground:"fdaeb7"},{token:"meta.diff.header.from-file",foreground:"fdaeb7"},{token:"punctuation.definition.deleted",foreground:"fdaeb7"},{token:"markup.inserted",foreground:"85e89d"},{token:"meta.diff.header.to-file",foreground:"85e89d"},{token:"punctuation.definition.inserted",foreground:"85e89d"},{token:"markup.changed",foreground:"ffab70"},{token:"punctuation.definition.changed",foreground:"ffab70"},{token:"markup.ignored",foreground:"2f363d"},{token:"markup.untracked",foreground:"2f363d"},{token:"meta.diff.range",foreground:"b392f0"},{token:"meta.diff.header",foreground:"79b8ff"},{token:"meta.separator",foreground:"79b8ff"},{token:"meta.output",foreground:"79b8ff"},{token:"brackethighlighter.tag",foreground:"d1d5da"},{token:"brackethighlighter.curly",foreground:"d1d5da"},{token:"brackethighlighter.round",foreground:"d1d5da"},{token:"brackethighlighter.square",foreground:"d1d5da"},{token:"brackethighlighter.angle",foreground:"d1d5da"},{token:"brackethighlighter.quote",foreground:"d1d5da"},{token:"brackethighlighter.unmatched",foreground:"fdaeb7"},{token:"constant.other.reference.link",foreground:"c98a7d"},{token:"string.other.link",foreground:"c98a7d"},{token:"punctuation.definition.string.begin.markdown",foreground:"c98a7d"},{token:"punctuation.definition.string.end.markdown",foreground:"c98a7d"},{token:"markup.underline.link.markdown",foreground:"dedcd590"},{token:"type.identifier",foreground:"7f8ac7"},{token:"entity.other.attribute-name.html.vue",foreground:"80a665"},{token:"invalid.illegal.unrecognized-tag.html"}]}; + +export { vitesseDark as default }; diff --git a/docs/shiki/dist/themes/vitesse-light-93fe28eb.mjs b/docs/shiki/dist/themes/vitesse-light-93fe28eb.mjs new file mode 100644 index 00000000..24efb50c --- /dev/null +++ b/docs/shiki/dist/themes/vitesse-light-93fe28eb.mjs @@ -0,0 +1,3 @@ +var vitesseLight = {name:"vitesse-light",base:"vs",colors:{focusBorder:"#00000000",foreground:"#393a34",descriptionForeground:"#393a3490",errorForeground:"#ab5959","textLink.foreground":"#1c6b48","textLink.activeForeground":"#1c6b48","textBlockQuote.background":"#ffffff","textBlockQuote.border":"#f0f0f0","textCodeBlock.background":"#ffffff","textPreformat.foreground":"#586069","textSeparator.foreground":"#d1d5da","button.background":"#1c6b48","button.foreground":"#ffffff","button.hoverBackground":"#1c6b48","checkbox.background":"#f7f7f7","checkbox.border":"#d1d5da","dropdown.background":"#ffffff","dropdown.border":"#f0f0f0","dropdown.foreground":"#393a34","dropdown.listBackground":"#f7f7f7","input.background":"#f7f7f7","input.border":"#f0f0f0","input.foreground":"#393a34","input.placeholderForeground":"#393a3490","inputOption.activeBackground":"#393a3450","badge.foreground":"#ffffff","badge.background":"#393a3490","progressBar.background":"#1c6b48","titleBar.activeForeground":"#4e4f47","titleBar.activeBackground":"#ffffff","titleBar.inactiveForeground":"#6a737d","titleBar.inactiveBackground":"#ffffff","titleBar.border":"#f7f7f7","activityBar.foreground":"#393a34","activityBar.inactiveForeground":"#393a3450","activityBar.background":"#ffffff","activityBarBadge.foreground":"#ffffff","activityBarBadge.background":"#4e4f47","activityBar.activeBorder":"#1c6b48","activityBar.border":"#f0f0f0","sideBar.foreground":"#4e4f47","sideBar.background":"#ffffff","sideBar.border":"#f0f0f0","sideBarTitle.foreground":"#393a34","sideBarSectionHeader.foreground":"#393a34","sideBarSectionHeader.background":"#ffffff","sideBarSectionHeader.border":"#f0f0f0","list.hoverForeground":"#393a34","list.inactiveSelectionForeground":"#393a34","list.activeSelectionForeground":"#393a34","list.hoverBackground":"#f7f7f7","list.inactiveSelectionBackground":"#f7f7f7","list.activeSelectionBackground":"#f7f7f7","list.inactiveFocusBackground":"#ffffff","list.focusBackground":"#f7f7f7","list.highlightForeground":"#1c6b48","tree.indentGuidesStroke":"#e1e4e8","notificationCenterHeader.foreground":"#6a737d","notificationCenterHeader.background":"#ffffff","notifications.foreground":"#393a34","notifications.background":"#ffffff","notifications.border":"#f0f0f0","notificationsErrorIcon.foreground":"#ab5959","notificationsWarningIcon.foreground":"#a65e2b","notificationsInfoIcon.foreground":"#296aa3","pickerGroup.border":"#f0f0f0","pickerGroup.foreground":"#393a34","quickInput.background":"#ffffff","quickInput.foreground":"#393a34","quickInputList.focusBackground":"#f7f7f7","statusBar.foreground":"#4e4f47","statusBar.background":"#ffffff","statusBar.border":"#f0f0f0","statusBar.noFolderBackground":"#ffffff","statusBar.debuggingBackground":"#f7f7f7","statusBar.debuggingForeground":"#4e4f47","statusBarItem.prominentBackground":"#f7f7f7","editorGroupHeader.tabsBackground":"#ffffff","editorGroupHeader.tabsBorder":"#f0f0f0","editorGroup.border":"#f0f0f0","tab.activeForeground":"#393a34","tab.inactiveForeground":"#6a737d","tab.inactiveBackground":"#ffffff","tab.activeBackground":"#ffffff","tab.hoverBackground":"#f7f7f7","tab.unfocusedHoverBackground":"#ffffff","tab.border":"#f0f0f0","tab.unfocusedActiveBorderTop":"#f0f0f0","tab.activeBorder":"#f0f0f0","tab.unfocusedActiveBorder":"#f0f0f0","tab.activeBorderTop":"#393a3490","breadcrumb.foreground":"#6a737d","breadcrumb.focusForeground":"#393a34","breadcrumb.background":"#f7f7f7","breadcrumb.activeSelectionForeground":"#22222215","breadcrumbPicker.background":"#ffffff","editor.foreground":"#393a34","editor.background":"#ffffff","editorWidget.background":"#ffffff","editor.foldBackground":"#22222210","editor.lineHighlightBackground":"#f7f7f7","editorLineNumber.foreground":"#393a3450","editorLineNumber.activeForeground":"#4e4f47","editorIndentGuide.background":"#00000015","editorIndentGuide.activeBackground":"#00000030","editorWhitespace.foreground":"#00000015","editor.findMatchBackground":"#e6cc7744","editor.findMatchHighlightBackground":"#e6cc7766","editor.inactiveSelectionBackground":"#22222208","editor.selectionBackground":"#22222215","editor.selectionHighlightBackground":"#22222208","editor.wordHighlightBackground":"#1c6b4805","editor.wordHighlightStrongBackground":"#1c6b4810","editorBracketMatch.background":"#1c6b4820","diffEditor.insertedTextBackground":"#1c6b4815","diffEditor.removedTextBackground":"#ab595910","scrollbar.shadow":"#6a737d33","scrollbarSlider.background":"#393a3410","scrollbarSlider.hoverBackground":"#393a3450","scrollbarSlider.activeBackground":"#393a3450","editorOverviewRuler.border":"#fff","panel.background":"#ffffff","panel.border":"#f0f0f0","panelTitle.activeBorder":"#1c6b48","panelTitle.activeForeground":"#393a34","panelTitle.inactiveForeground":"#6a737d","panelInput.border":"#e1e4e8","terminal.foreground":"#393a34","terminal.selectionBackground":"#22222215","terminal.ansiBrightBlack":"#aaaaaa","terminal.ansiBrightBlue":"#296aa3","terminal.ansiBrightCyan":"#2993a3","terminal.ansiBrightGreen":"#1e754f","terminal.ansiBrightMagenta":"#a13865","terminal.ansiBrightRed":"#ab5959","terminal.ansiBrightWhite":"#dddddd","terminal.ansiBrightYellow":"#bda437","terminal.ansiBlack":"#121212","terminal.ansiBlue":"#296aa3","terminal.ansiCyan":"#2993a3","terminal.ansiGreen":"#1e754f","terminal.ansiMagenta":"#a13865","terminal.ansiRed":"#ab5959","terminal.ansiWhite":"#dbd7caee","terminal.ansiYellow":"#bda437","gitDecoration.addedResourceForeground":"#1e754f","gitDecoration.modifiedResourceForeground":"#296aa3","gitDecoration.deletedResourceForeground":"#ab5959","gitDecoration.untrackedResourceForeground":"#2993a3","gitDecoration.ignoredResourceForeground":"#393a3450","gitDecoration.conflictingResourceForeground":"#a65e2b","gitDecoration.submoduleResourceForeground":"#393a3490","editorGutter.modifiedBackground":"#296aa3","editorGutter.addedBackground":"#1e754f","editorGutter.deletedBackground":"#ab5959","editorBracketHighlight.foreground1":"#2993a3","editorBracketHighlight.foreground2":"#1e754f","editorBracketHighlight.foreground3":"#a65e2b","editorBracketHighlight.foreground4":"#a13865","editorBracketHighlight.foreground5":"#bda437","editorBracketHighlight.foreground6":"#296aa3","debugToolBar.background":"#ffffff","editor.stackFrameHighlightBackground":"#fffbdd","editor.focusedStackFrameHighlightBackground":"#fff5b1","peekViewEditor.background":"#ffffff","peekViewResult.background":"#ffffff","settings.headerForeground":"#393a34","settings.modifiedItemIndicator":"#1c6b48","welcomePage.buttonBackground":"#f6f8fa","welcomePage.buttonHoverBackground":"#e1e4e8","problemsErrorIcon.foreground":"#ab5959","problemsWarningIcon.foreground":"#a65e2b","problemsInfoIcon.foreground":"#296aa3","editorError.foreground":"#ab5959","editorWarning.foreground":"#a65e2b","editorInfo.foreground":"#296aa3","editorHint.foreground":"#1e754f","editorGutter.commentRangeForeground":"#393a3450","editorGutter.foldingControlForeground":"#393a3490","editorInlayHint.foreground":"#999999","editorInlayHint.background":"#00000000","editorStickyScroll.background":"#f7f7f7","editorStickyScrollHover.background":"#f7f7f7","menu.separatorBackground":"#f0f0f0"},semanticHighlighting:true,semanticTokenColors:{namespace:"#b05a78",property:"#998418","interface":"#2e808f",type:"#2e808f","class":"#5a6aa6"},tokenColors:[{scope:["comment","punctuation.definition.comment","string.comment"],settings:{foreground:"#a0ada0"}},{scope:["delimiter.bracket","delimiter","invalid.illegal.character-not-allowed-here.html","keyword.operator.rest","keyword.operator.spread","keyword.operator.type.annotation","keyword.operator.relational","keyword.operator.assignment","meta.brace","meta.tag.block.any.html","meta.tag.inline.any.html","meta.tag.structure.input.void.html","meta.type.annotation","meta.embedded.block.github-actions-expression","storage.type.function.arrow","keyword.operator.type","meta.objectliteral.ts","punctuation"],settings:{foreground:"#999999"}},{scope:["constant","entity.name.constant","variable.language","meta.definition.variable"],settings:{foreground:"#a65e2b"}},{scope:["entity","entity.name"],settings:{foreground:"#59873a"}},{scope:"variable.parameter.function",settings:{foreground:"#393a34"}},{scope:["entity.name.tag","tag.html"],settings:{foreground:"#1e754f"}},{scope:"entity.name.function",settings:{foreground:"#59873a"}},{scope:["keyword","storage.type.class.jsdoc"],settings:{foreground:"#1e754f"}},{scope:["storage","storage.type","support.type.builtin","constant.language.undefined","constant.language.null"],settings:{foreground:"#ab5959"}},{scope:["text.html.derivative","storage.modifier.package","storage.modifier.import","storage.type.java"],settings:{foreground:"#393a34"}},{scope:["string","string punctuation.section.embedded source","attribute.value"],settings:{foreground:"#b56959"}},{scope:["punctuation.definition.string","punctuation.support.type.property-name"],settings:{foreground:"#b5695999"}},{scope:"support",settings:{foreground:"#998418"}},{scope:["property","meta.property-name","meta.object-literal.key","entity.name.tag.yaml","attribute.name"],settings:{foreground:"#998418"}},{scope:["entity.other.attribute-name","invalid.deprecated.entity.other.attribute-name.html"],settings:{foreground:"#b07d48"}},{scope:["variable","identifier"],settings:{foreground:"#b07d48"}},{scope:["support.type.primitive","entity.name.type"],settings:{foreground:"#2e8f82"}},{scope:"namespace",settings:{foreground:"#b05a78"}},{scope:["keyword.operator","keyword.operator.assignment.compound","meta.var.expr.ts"],settings:{foreground:"#ab5959"}},{scope:"invalid.broken",settings:{fontStyle:"italic",foreground:"#b31d28"}},{scope:"invalid.deprecated",settings:{fontStyle:"italic",foreground:"#b31d28"}},{scope:"invalid.illegal",settings:{fontStyle:"italic",foreground:"#b31d28"}},{scope:"invalid.unimplemented",settings:{fontStyle:"italic",foreground:"#b31d28"}},{scope:"carriage-return",settings:{fontStyle:"italic underline",background:"#d73a49",foreground:"#fafbfc",content:"^M"}},{scope:"message.error",settings:{foreground:"#b31d28"}},{scope:"string variable",settings:{foreground:"#b56959"}},{scope:["source.regexp","string.regexp"],settings:{foreground:"#ab5e3f"}},{scope:["string.regexp.character-class","string.regexp constant.character.escape","string.regexp source.ruby.embedded","string.regexp string.regexp.arbitrary-repitition"],settings:{foreground:"#b56959"}},{scope:"string.regexp constant.character.escape",settings:{foreground:"#bda437"}},{scope:["support.constant"],settings:{foreground:"#a65e2b"}},{scope:["constant.numeric","number"],settings:{foreground:"#2f798a"}},{scope:["keyword.other.unit"],settings:{foreground:"#ab5959"}},{scope:["constant.language.boolean","constant.language"],settings:{foreground:"#1e754f"}},{scope:"meta.module-reference",settings:{foreground:"#1c6b48"}},{scope:"punctuation.definition.list.begin.markdown",settings:{foreground:"#a65e2b"}},{scope:["markup.heading","markup.heading entity.name"],settings:{fontStyle:"bold",foreground:"#1c6b48"}},{scope:"markup.quote",settings:{foreground:"#2e808f"}},{scope:"markup.italic",settings:{fontStyle:"italic",foreground:"#393a34"}},{scope:"markup.bold",settings:{fontStyle:"bold",foreground:"#393a34"}},{scope:"markup.raw",settings:{foreground:"#1c6b48"}},{scope:["markup.deleted","meta.diff.header.from-file","punctuation.definition.deleted"],settings:{background:"#ffeef0",foreground:"#b31d28"}},{scope:["markup.inserted","meta.diff.header.to-file","punctuation.definition.inserted"],settings:{background:"#f0fff4",foreground:"#22863a"}},{scope:["markup.changed","punctuation.definition.changed"],settings:{background:"#ffebda",foreground:"#e36209"}},{scope:["markup.ignored","markup.untracked"],settings:{foreground:"#f6f8fa",background:"#005cc5"}},{scope:"meta.diff.range",settings:{foreground:"#6f42c1",fontStyle:"bold"}},{scope:"meta.diff.header",settings:{foreground:"#005cc5"}},{scope:"meta.separator",settings:{fontStyle:"bold",foreground:"#005cc5"}},{scope:"meta.output",settings:{foreground:"#005cc5"}},{scope:["brackethighlighter.tag","brackethighlighter.curly","brackethighlighter.round","brackethighlighter.square","brackethighlighter.angle","brackethighlighter.quote"],settings:{foreground:"#586069"}},{scope:"brackethighlighter.unmatched",settings:{foreground:"#b31d28"}},{scope:["constant.other.reference.link","string.other.link","punctuation.definition.string.begin.markdown","punctuation.definition.string.end.markdown"],settings:{foreground:"#b56959"}},{scope:["markup.underline.link.markdown"],settings:{foreground:"#393a3490",fontStyle:"underline"}},{scope:["type.identifier"],settings:{foreground:"#5a6aa6"}},{scope:["entity.other.attribute-name.html.vue"],settings:{foreground:"#59873a"}},{scope:["invalid.illegal.unrecognized-tag.html"],settings:{fontStyle:"normal"}}],rules:[{token:"comment",foreground:"a0ada0"},{token:"punctuation.definition.comment",foreground:"a0ada0"},{token:"string.comment",foreground:"a0ada0"},{token:"delimiter.bracket",foreground:"999999"},{token:"delimiter",foreground:"999999"},{token:"invalid.illegal.character-not-allowed-here.html",foreground:"999999"},{token:"keyword.operator.rest",foreground:"999999"},{token:"keyword.operator.spread",foreground:"999999"},{token:"keyword.operator.type.annotation",foreground:"999999"},{token:"keyword.operator.relational",foreground:"999999"},{token:"keyword.operator.assignment",foreground:"999999"},{token:"meta.brace",foreground:"999999"},{token:"meta.tag.block.any.html",foreground:"999999"},{token:"meta.tag.inline.any.html",foreground:"999999"},{token:"meta.tag.structure.input.void.html",foreground:"999999"},{token:"meta.type.annotation",foreground:"999999"},{token:"meta.embedded.block.github-actions-expression",foreground:"999999"},{token:"storage.type.function.arrow",foreground:"999999"},{token:"keyword.operator.type",foreground:"999999"},{token:"meta.objectliteral.ts",foreground:"999999"},{token:"punctuation",foreground:"999999"},{token:"constant",foreground:"a65e2b"},{token:"entity.name.constant",foreground:"a65e2b"},{token:"variable.language",foreground:"a65e2b"},{token:"meta.definition.variable",foreground:"a65e2b"},{token:"entity",foreground:"59873a"},{token:"entity.name",foreground:"59873a"},{token:"variable.parameter.function",foreground:"393a34"},{token:"entity.name.tag",foreground:"1e754f"},{token:"tag.html",foreground:"1e754f"},{token:"entity.name.function",foreground:"59873a"},{token:"keyword",foreground:"1e754f"},{token:"storage.type.class.jsdoc",foreground:"1e754f"},{token:"storage",foreground:"ab5959"},{token:"storage.type",foreground:"ab5959"},{token:"support.type.builtin",foreground:"ab5959"},{token:"constant.language.undefined",foreground:"ab5959"},{token:"constant.language.null",foreground:"ab5959"},{token:"text.html.derivative",foreground:"393a34"},{token:"storage.modifier.package",foreground:"393a34"},{token:"storage.modifier.import",foreground:"393a34"},{token:"storage.type.java",foreground:"393a34"},{token:"string",foreground:"b56959"},{token:"string punctuation.section.embedded source",foreground:"b56959"},{token:"attribute.value",foreground:"b56959"},{token:"punctuation.definition.string",foreground:"b5695999"},{token:"punctuation.support.type.property-name",foreground:"b5695999"},{token:"support",foreground:"998418"},{token:"property",foreground:"998418"},{token:"meta.property-name",foreground:"998418"},{token:"meta.object-literal.key",foreground:"998418"},{token:"entity.name.tag.yaml",foreground:"998418"},{token:"attribute.name",foreground:"998418"},{token:"entity.other.attribute-name",foreground:"b07d48"},{token:"invalid.deprecated.entity.other.attribute-name.html",foreground:"b07d48"},{token:"variable",foreground:"b07d48"},{token:"identifier",foreground:"b07d48"},{token:"support.type.primitive",foreground:"2e8f82"},{token:"entity.name.type",foreground:"2e8f82"},{token:"namespace",foreground:"b05a78"},{token:"keyword.operator",foreground:"ab5959"},{token:"keyword.operator.assignment.compound",foreground:"ab5959"},{token:"meta.var.expr.ts",foreground:"ab5959"},{token:"invalid.broken",foreground:"b31d28"},{token:"invalid.deprecated",foreground:"b31d28"},{token:"invalid.illegal",foreground:"b31d28"},{token:"invalid.unimplemented",foreground:"b31d28"},{token:"carriage-return",foreground:"fafbfc"},{token:"message.error",foreground:"b31d28"},{token:"string variable",foreground:"b56959"},{token:"source.regexp",foreground:"ab5e3f"},{token:"string.regexp",foreground:"ab5e3f"},{token:"string.regexp.character-class",foreground:"b56959"},{token:"string.regexp constant.character.escape",foreground:"b56959"},{token:"string.regexp source.ruby.embedded",foreground:"b56959"},{token:"string.regexp string.regexp.arbitrary-repitition",foreground:"b56959"},{token:"string.regexp constant.character.escape",foreground:"bda437"},{token:"support.constant",foreground:"a65e2b"},{token:"constant.numeric",foreground:"2f798a"},{token:"number",foreground:"2f798a"},{token:"keyword.other.unit",foreground:"ab5959"},{token:"constant.language.boolean",foreground:"1e754f"},{token:"constant.language",foreground:"1e754f"},{token:"meta.module-reference",foreground:"1c6b48"},{token:"punctuation.definition.list.begin.markdown",foreground:"a65e2b"},{token:"markup.heading",foreground:"1c6b48"},{token:"markup.heading entity.name",foreground:"1c6b48"},{token:"markup.quote",foreground:"2e808f"},{token:"markup.italic",foreground:"393a34"},{token:"markup.bold",foreground:"393a34"},{token:"markup.raw",foreground:"1c6b48"},{token:"markup.deleted",foreground:"b31d28"},{token:"meta.diff.header.from-file",foreground:"b31d28"},{token:"punctuation.definition.deleted",foreground:"b31d28"},{token:"markup.inserted",foreground:"22863a"},{token:"meta.diff.header.to-file",foreground:"22863a"},{token:"punctuation.definition.inserted",foreground:"22863a"},{token:"markup.changed",foreground:"e36209"},{token:"punctuation.definition.changed",foreground:"e36209"},{token:"markup.ignored",foreground:"f6f8fa"},{token:"markup.untracked",foreground:"f6f8fa"},{token:"meta.diff.range",foreground:"6f42c1"},{token:"meta.diff.header",foreground:"005cc5"},{token:"meta.separator",foreground:"005cc5"},{token:"meta.output",foreground:"005cc5"},{token:"brackethighlighter.tag",foreground:"586069"},{token:"brackethighlighter.curly",foreground:"586069"},{token:"brackethighlighter.round",foreground:"586069"},{token:"brackethighlighter.square",foreground:"586069"},{token:"brackethighlighter.angle",foreground:"586069"},{token:"brackethighlighter.quote",foreground:"586069"},{token:"brackethighlighter.unmatched",foreground:"b31d28"},{token:"constant.other.reference.link",foreground:"b56959"},{token:"string.other.link",foreground:"b56959"},{token:"punctuation.definition.string.begin.markdown",foreground:"b56959"},{token:"punctuation.definition.string.end.markdown",foreground:"b56959"},{token:"markup.underline.link.markdown",foreground:"393a3490"},{token:"type.identifier",foreground:"5a6aa6"},{token:"entity.other.attribute-name.html.vue",foreground:"59873a"},{token:"invalid.illegal.unrecognized-tag.html"}]}; + +export { vitesseLight as default }; diff --git a/docs/shiki/languages/abap.tmLanguage.json b/docs/shiki/languages/abap.tmLanguage.json new file mode 100644 index 00000000..fcc758f7 --- /dev/null +++ b/docs/shiki/languages/abap.tmLanguage.json @@ -0,0 +1,378 @@ +{ + "fileTypes": ["abap", "ABAP"], + "foldingStartMarker": "/\\*\\*|\\{\\s*$", + "foldingStopMarker": "\\*\\*/|^\\s*\\}", + "keyEquivalent": "^~A", + "name": "abap", + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.comment.abap" + } + }, + "match": "^\\*.*\\n?", + "name": "comment.line.full.abap" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.comment.abap" + } + }, + "match": "\".*\\n?", + "name": "comment.line.partial.abap" + }, + { + "match": "(?<![^\\s])##.*?(?=([\\.:,\\s]))", + "name": "comment.line.pragma.abap" + }, + { + "match": "(?i)(?<=(?:\\s|~|-))(?<=(?:->|=>))([a-z_\\/][a-z_0-9\\/]*)(?=\\s+(?:=|\\+=|-=|\\*=|\\/=|&&=|&=)\\s+)", + "name": "variable.other.abap" + }, + { + "match": "\\b[0-9]+(\\b|\\.|,)", + "name": "constant.numeric.abap" + }, + { + "match": "(?ix)(^|\\s+)((PUBLIC|PRIVATE|PROTECTED)\\sSECTION)(?=\\s+|:|\\.)", + "name": "storage.modifier.class.abap" + }, + { + "begin": "(?<!\\\\)(\\|)(.*?)", + "end": "(?<!\\\\)(\\||(\\\\\\\\\\|))", + "name": "string.interpolated.abap", + "beginCaptures": { + "1": { + "name": "constant.character.escape.abap" + } + }, + "endCaptures": { + "1": { + "name": "constant.character.escape.abap" + } + }, + "patterns": [ + { + "match": "({ )|( })", + "name": "constant.character.escape" + }, + { + "match": "(?<={ ).*?(?= })", + "name": "variable.other.abap" + }, + { + "match": "\\\\\\|", + "name": "constant.character.escape.abap" + } + ] + }, + { + "begin": "'", + "end": "'", + "name": "string.quoted.single.abap", + "patterns": [ + { + "match": "''", + "name": "constant.character.escape.abap" + } + ] + }, + { + "begin": "`", + "end": "`", + "name": "string.quoted.single.abap", + "patterns": [ + { + "match": "``", + "name": "constant.character.escape.abap" + } + ] + }, + { + "begin": "(?i)^\\s*(class)\\s([a-z_\\/][a-z_0-9\\/]*)", + "beginCaptures": { + "1": { + "name": "storage.type.block.abap" + }, + "2": { + "name": "entity.name.type.block.abap" + } + }, + "end": "\\s*\\.\\s*\\n?", + "name": "meta.block.begin.implementation.abap", + "patterns": [ + { + "match": "(?ix)(^|\\s+)(definition|implementation|public|inheriting\\s+from|final|deferred|abstract|shared\\s+memory\\s+enabled|(global|local)*\\s*friends|(create\\s+(public|protected|private))|for\\s+behavior\\s+of|for\\s+testing|risk\\s+level\\s+(critical|dangerous|harmless))|duration\\s(short|medium|long)(?=\\s+|\\.)", + "name": "storage.modifier.class.abap" + }, + { + "begin": "(?=[A-Za-z_][A-Za-z0-9_]*)", + "contentName": "entity.name.type.block.abap", + "end": "(?![A-Za-z0-9_])", + "patterns": [ + { + "include": "#generic_names" + } + ] + } + ] + }, + { + "begin": "(?ix)^\\s*(method)\\s(?:([a-z_\\/][a-z_0-9\\/]*)~)?([a-z_\\/][a-z_0-9\\/]*)", + "beginCaptures": { + "1": { + "name": "storage.type.block.abap" + }, + "2": { + "name": "entity.name.type.abap" + }, + "3": { + "name": "entity.name.function.abap" + } + }, + "end": "\\s*\\.\\s*\\n?", + "patterns": [ + { + "match": "(?ix)(?<=^|\\s)(BY\\s+DATABASE(\\s+PROCEDURE|\\s+FUNCTION|\\s+GRAPH\\s+WORKSPACE)|BY\\s+KERNEL\\s+MODULE)(?=\\s+|\\.)", + "name": "storage.modifier.method.abap" + }, + { + "match": "(?ix)(?<=^|\\s)(FOR\\s+(HDB|LLANG))(?=\\s+|\\.)", + "name": "storage.modifier.method.abap" + }, + { + "match": "(?ix)(?<=\\s)(OPTIONS\\s+(READ-ONLY|DETERMINISTIC|SUPPRESS\\s+SYNTAX\\s+ERRORS))(?=\\s+|\\.)", + "name": "storage.modifier.method.abap" + }, + { + "match": "(?ix)(?<=^|\\s)(LANGUAGE\\s+(SQLSCRIPT|SQL|GRAPH))(?=\\s+|\\.)", + "name": "storage.modifier.method.abap" + }, + { + "match": "(?ix)(?<=\\s)(USING)\\s+([a-z_\\/][a-z_0-9\\/=\\>]*)+(?=\\s+|\\.)", + "captures": { + "1": { + "name": "storage.modifier.method.abap" + } + } + }, + { + "begin": "(?=[A-Za-z_][A-Za-z0-9_]*)", + "end": "(?![A-Za-z0-9_])", + "patterns": [ + { + "include": "#generic_names" + } + ] + } + ] + }, + { + "begin": "(?ix)^\\s*(INTERFACE)\\s([a-z_\\/][a-z_0-9\\/]*)", + "beginCaptures": { + "1": { + "name": "storage.type.block.abap" + }, + "2": { + "name": "entity.name.type.abap" + } + }, + "end": "\\s*\\.\\s*\\n?", + "patterns": [ + { + "match": "(?ix)(?<=^|\\s)(DEFERRED|PUBLIC)(?=\\s+|\\.)", + "name": "storage.modifier.method.abap" + } + ] + }, + { + "begin": "(?ix)^\\s*(FORM)\\s([a-z_\\/][a-z_0-9\\/\\-\\?]*)", + "beginCaptures": { + "1": { + "name": "storage.type.block.abap" + }, + "2": { + "name": "entity.name.type.abap" + } + }, + "end": "\\s*\\.\\s*\\n?", + "patterns": [ + { + "match": "(?ix)(?<=^|\\s)(USING|TABLES|CHANGING|RAISING|IMPLEMENTATION|DEFINITION)(?=\\s+|\\.)", + "name": "storage.modifier.form.abap" + }, + { + "include": "#abaptypes" + }, + { + "include": "#keywords_followed_by_braces" + } + ] + }, + { + "match": "(?i)(endclass|endmethod|endform|endinterface)", + "name": "storage.type.block.end.abap" + }, + { + "match": "(?i)(<[A-Za-z_][A-Za-z0-9_]*>)", + "name": "variable.other.field.symbol.abap" + }, + { + "include": "#keywords" + }, + { + "include": "#abap_constants" + }, + { + "include": "#reserved_names" + }, + { + "include": "#operators" + }, + { + "include": "#builtin_functions" + }, + { + "include": "#abaptypes" + }, + { + "include": "#system_fields" + }, + { + "include": "#sql_functions" + }, + { + "include": "#sql_types" + } + ], + "repository": { + "abap_constants": { + "match": "(?ix)(?<=\\s)(initial|null|space|abap_true|abap_false|abap_undefined|table_line|\n\t\t\t\t%_final|%_hints|%_predefined|col_background|col_group|col_heading|col_key|col_negative|col_normal|col_positive|col_total|\n\t\t\t\tadabas|as400|db2|db6|hdb|oracle|sybase|mssqlnt|pos_low|pos_high)(?=\\s|\\.|,)", + "name": "constant.language.abap" + }, + "reserved_names": { + "match": "(?ix)(?<=\\s)(me|super)(?=\\s|\\.|,|->)", + "name": "constant.language.abap" + }, + "abaptypes": { + "patterns": [ + { + "match": "(?ix)\\s(abap_bool|string|xstring|any|clike|csequence|numeric|xsequence|decfloat|decfloat16|decfloat34|utclong|simple|int8|c|n|i|p|f|d|t|x)(?=\\s|\\.|,)", + "name": "support.type.abap" + }, + { + "match": "(?ix)\\s(TYPE|REF|TO|LIKE|LINE|OF|STRUCTURE|STANDARD|SORTED|HASHED|INDEX|TABLE|WITH|UNIQUE|NON-UNIQUE|SECONDARY|DEFAULT|KEY)(?=\\s|\\.|,)", + "name": "keyword.control.simple.abap" + } + ] + }, + "arithmetic_operator": { + "match": "(?i)(?<=\\s)(\\+|\\-|\\*|\\*\\*|\\/|%|DIV|MOD|BIT-AND|BIT-OR|BIT-XOR|BIT-NOT)(?=\\s)", + "name": "keyword.control.simple.abap" + }, + "comparison_operator": { + "match": "(?i)(?<=\\s)(<|>|<\\=|>\\=|\\=|<>|eq|ne|lt|le|gt|ge|cs|cp|co|cn|ca|na|ns|np|byte-co|byte-cn|byte-ca|byte-na|byte-cs|byte-ns|o|z|m)(?=\\s)", + "name": "keyword.control.simple.abap" + }, + "control_keywords": { + "match": "(?ix)(^|\\s)(\n\t at|case|catch|continue|do|elseif|else|endat|endcase|endcatch|enddo|endif|\n\t endloop|endon|endtry|endwhile|if|loop|on|raise|try|while)(?=\\s|\\.|:)", + "name": "keyword.control.flow.abap" + }, + "generic_names": { + "match": "[A-Za-z_][A-Za-z0-9_]*" + }, + "keywords": { + "patterns": [ + { + "include": "#main_keywords" + }, + { + "include": "#text_symbols" + }, + { + "include": "#control_keywords" + }, + { + "include": "#keywords_followed_by_braces" + } + ] + }, + "logical_operator": { + "match": "(?i)(?<=\\s)(not|or|and)(?=\\s)", + "name": "keyword.control.simple.abap" + }, + "system_fields": { + "match": "(?ix)\\b(sy)-(abcde|batch|binpt|calld|callr|colno|cpage|cprog|cucol|curow|datar|datlo|datum|dayst|dbcnt|dbnam|dbsysc|dyngr|dynnr|fdayw|fdpos|host|index|langu|ldbpg|lilli|linct|linno|linsz|lisel|listi|loopc|lsind|macol|mandt|marow|modno|msgid|msgli|msgno|msgty|msgv[1-4]|opsysc|pagno|pfkey|repid|saprl|scols|slset|spono|srows|staco|staro|stepl|subrc|sysid|tabix|tcode|tfill|timlo|title|tleng|tvar[0-9]|tzone|ucomm|uline|uname|uzeit|vline|wtitl|zonlo)(?=\\.|\\s)", + "captures": { + "1": { + "name": "variable.language.abap" + }, + "2": { + "name": "variable.language.abap" + } + } + }, + "main_keywords": { + "match": "(?ix)(?<=^|\\s)(\nabap-source|\nabstract|\naccept|\naccepting|\naccess|\naccording|\naction|\nactivation|\nactual|\nadd|\nadd-corresponding|\nadjacent|\nalias|\naliases|\nalign|\nall|\nallocate|\nalpha|\namdp|\nanalysis|\nanalyzer|\nappend|\nappending|\napplication|\narchive|\narea|\narithmetic|\nas|\nascending|\nassert|\nassign|\nassigned|\nassigning|\nassociation|\nasynchronous|\nat|\nattributes|\nauthority|\nauthority-check|\nauthorization|\nauto|\nback|\nbackground|\nbackward|\nbadi|\nbase|\nbefore|\nbegin|\nbehavior|\nbetween|\nbinary|\nbit|\nblank|\nblanks|\nblock|\nblocks|\nbound|\nboundaries|\nbounds|\nboxed|\nbreak|\nbreak-point|\nbuffer|\nby|\nbypassing|\nbyte|\nbyte-order|\ncall|\ncalling|\ncast|\ncasting|\ncds|\ncenter|\ncentered|\nchange|\nchanging|\nchannels|\nchar-to-hex|\ncharacter|\ncheck|\ncheckbox|\ncid|\ncircular|\nclass|\nclass-data|\nclass-events|\nclass-method|\nclass-methods|\nclass-pool|\ncleanup|\nclear|\nclient|\nclients|\nclock|\nclone|\nclose|\ncnt|\ncode|\ncollect|\ncolor|\ncolumn|\ncomment|\ncomments|\ncommit|\ncommon|\ncommunication|\ncomparing|\ncomponent|\ncomponents|\ncompression|\ncompute|\nconcatenate|\ncond|\ncondense|\ncondition|\nconnection|\nconstant|\nconstants|\ncontext|\ncontexts|\ncontrol|\ncontrols|\nconv|\nconversion|\nconvert|\ncopy|\ncorresponding|\ncount|\ncountry|\ncover|\ncreate|\ncurrency|\ncurrent|\ncursor|\ncustomer-function|\ndata|\ndatabase|\ndatainfo|\ndataset|\ndate|\ndaylight|\nddl|\ndeallocate|\ndecimals|\ndeclarations|\ndeep|\ndefault|\ndeferred|\ndefine|\ndelete|\ndeleting|\ndemand|\ndescending|\ndescribe|\ndestination|\ndetail|\ndetermine|\ndialog|\ndid|\ndirectory|\ndiscarding|\ndisplay|\ndisplay-mode|\ndistance|\ndistinct|\ndivide|\ndivide-corresponding|\ndummy|\nduplicate|\nduplicates|\nduration|\nduring|\ndynpro|\nedit|\neditor-call|\nempty|\nenabled|\nenabling|\nencoding|\nend|\nend-enhancement-section|\nend-of-definition|\nend-of-page|\nend-of-selection|\nend-test-injection|\nend-test-seam|\nendenhancement|\nendexec|\nendfunction|\nendian|\nending|\nendmodule|\nendprovide|\nendselect|\nendwith|\nengineering|\nenhancement|\nenhancement-point|\nenhancement-section|\nenhancements|\nentities|\nentity|\nentries|\nentry|\nenum|\nenvironment|\nequiv|\nerrors|\nescape|\nescaping|\nevent|\nevents|\nexact|\nexcept|\nexception|\nexception-table|\nexceptions|\nexcluding|\nexec|\nexecute|\nexists|\nexit|\nexit-command|\nexpanding|\nexplicit|\nexponent|\nexport|\nexporting|\nextended|\nextension|\nextract|\nfail|\nfailed|\nfeatures|\nfetch|\nfield|\nfield-groups|\nfield-symbols|\nfields|\nfile|\nfill|\nfilter|\nfilters|\nfinal|\nfind|\nfirst|\nfirst-line|\nfixed-point|\nflush|\nfollowing|\nfor|\nformat|\nforward|\nfound|\nframe|\nframes|\nfree|\nfrom|\nfull|\nfunction|\nfunction-pool|\ngenerate|\nget|\ngiving|\ngraph|\ngroup|\ngroups|\nhandle|\nhandler|\nhashed|\nhaving|\nheader|\nheaders|\nheading|\nhelp-id|\nhelp-request|\nhide|\nhint|\nhold|\nhotspot|\nicon|\nid|\nidentification|\nidentifier|\nignore|\nignoring|\nimmediately|\nimplemented|\nimplicit|\nimport|\nimporting|\nin|\ninactive|\nincl|\ninclude|\nincludes|\nincrement|\nindex|\nindex-line|\nindicators|\ninfotypes|\ninheriting|\ninit|\ninitial|\ninitialization|\ninner|\ninput|\ninsert|\ninstance|\ninstances|\nintensified|\ninterface|\ninterface-pool|\ninterfaces|\ninternal|\nintervals|\ninto|\ninverse|\ninverted-date|\nis|\niso|\njob|\njoin|\nkeep|\nkeeping|\nkernel|\nkey|\nkeys|\nkeywords|\nkind|\nlanguage|\nlast|\nlate|\nlayout|\nleading|\nleave|\nleft|\nleft-justified|\nleftplus|\nleftspace|\nlegacy|\nlength|\nlet|\nlevel|\nlevels|\nlike|\nline|\nline-count|\nline-selection|\nline-size|\nlinefeed|\nlines|\nlink|\nlist|\nlist-processing|\nlistbox|\nload|\nload-of-program|\nlocal|\nlocale|\nlock|\nlocks|\nlog-point|\nlogical|\nlower|\nmapped|\nmapping|\nmargin|\nmark|\nmask|\nmatch|\nmatchcode|\nmaximum|\nmembers|\nmemory|\nmesh|\nmessage|\nmessage-id|\nmessages|\nmessaging|\nmethod|\nmethods|\nmode|\nmodif|\nmodifier|\nmodify|\nmodule|\nmove|\nmove-corresponding|\nmultiply|\nmultiply-corresponding|\nname|\nnametab|\nnative|\nnested|\nnesting|\nnew|\nnew-line|\nnew-page|\nnew-section|\nnext|\nno|\nno-display|\nno-extension|\nno-gap|\nno-gaps|\nno-grouping|\nno-heading|\nno-scrolling|\nno-sign|\nno-title|\nno-zero|\nnodes|\nnon-unicode|\nnon-unique|\nnumber|\nobject|\nobjects|\nobjmgr|\nobligatory|\noccurence|\noccurences|\noccurrence|\noccurrences|\noccurs|\nof|\noffset|\non|\nonly|\nopen|\noptional|\noption|\noptions|\norder|\nothers|\nout|\nouter|\noutput|\noutput-length|\noverflow|\noverlay|\npack|\npackage|\npad|\npadding|\npage|\nparameter|\nparameter-table|\nparameters|\npart|\npartially|\npcre|\nperform|\nperforming|\npermissions|\npf-status|\nplaces|\npool|\nposition|\npragmas|\npreceeding|\nprecompiled|\npreferred|\npreserving|\nprimary|\nprint|\nprint-control|\nprivate|\nprivileged|\nprocedure|\nprogram|\nproperty|\nprotected|\nprovide|\npush|\npushbutton|\nput|\nquery|\nqueue-only|\nqueueonly|\nquickinfo|\nradiobutton|\nraising|\nrange|\nranges|\nread|\nread-only|\nreceive|\nreceived|\nreceiving|\nredefinition|\nreduce|\nref|\nreference|\nrefresh|\nregex|\nreject|\nrenaming|\nreplace|\nreplacement|\nreplacing|\nreport|\nreported|\nrequest|\nrequested|\nrequired|\nreserve|\nreset|\nresolution|\nrespecting|\nresponse|\nrestore|\nresult|\nresults|\nresumable|\nresume|\nretry|\nreturn|\nreturning|\nright|\nright-justified|\nrightplus|\nrightspace|\nrollback|\nrows|\nrp-provide-from-last|\nrun|\nsap|\nsap-spool|\nsave|\nsaving|\nscale_preserving|\nscale_preserving_scientific|\nscan|\nscientific|\nscientific_with_leading_zero|\nscreen|\nscroll|\nscroll-boundary|\nscrolling|\nsearch|\nseconds|\nsection|\nselect|\nselect-options|\nselection|\nselection-screen|\nselection-set|\nselection-sets|\nselection-table|\nselections|\nsend|\nseparate|\nseparated|\nsession|\nset|\nshared|\nshift|\nshortdump|\nshortdump-id|\nsign|\nsign_as_postfix|\nsimple|\nsimulation|\nsingle|\nsize|\nskip|\nskipping|\nsmart|\nsome|\nsort|\nsortable|\nsorted|\nsource|\nspecified|\nsplit|\nspool|\nspots|\nsql|\nstable|\nstamp|\nstandard|\nstart-of-selection|\nstarting|\nstate|\nstatement|\nstatements|\nstatic|\nstatics|\nstatusinfo|\nstep|\nstep-loop|\nstop|\nstructure|\nstructures|\nstyle|\nsubkey|\nsubmatches|\nsubmit|\nsubroutine|\nsubscreen|\nsubstring|\nsubtract|\nsubtract-corresponding|\nsuffix|\nsum|\nsummary|\nsupplied|\nsupply|\nsuppress|\nswitch|\nsymbol|\nsyntax-check|\nsyntax-trace|\nsystem-call|\nsystem-exceptions|\ntab|\ntabbed|\ntable|\ntables|\ntableview|\ntabstrip|\ntarget|\ntask|\ntasks|\ntest|\ntest-injection|\ntest-seam|\ntesting|\ntext|\ntextpool|\nthen|\nthrow|\ntime|\ntimes|\ntimestamp|\ntimezone|\ntitle|\ntitlebar|\nto|\ntokens|\ntop-lines|\ntop-of-page|\ntrace-file|\ntrace-table|\ntrailing|\ntransaction|\ntransfer|\ntransformation|\ntranslate|\ntransporting|\ntrmac|\ntruncate|\ntruncation|\ntype|\ntype-pool|\ntype-pools|\ntypes|\nuline|\nunassign|\nunbounded|\nunder|\nunicode|\nunion|\nunique|\nunit|\nunix|\nunpack|\nuntil|\nunwind|\nup|\nupdate|\nupper|\nuser|\nuser-command|\nusing|\nutf-8|\nuuid|\nvalid|\nvalidate|\nvalue|\nvalue-request|\nvalues|\nvary|\nvarying|\nversion|\nvia|\nvisible|\nwait|\nwhen|\nwhere|\nwidth|\nwindow|\nwindows|\nwith|\nwith-heading|\nwith-title|\nwithout|\nword|\nwork|\nworkspace|\nwrite|\nxml|\nxsd|\nyes|\nzero|\nzone\n\t\t \t)(?=\\s|\\.|:|,)", + "name": "keyword.control.simple.abap" + }, + "text_symbols": { + "match": "(?ix)(?<=^|\\s)(text)-([A-Z0-9]{1,3})(?=\\s|\\.|:|,)", + "captures": { + "1": { + "name": "keyword.control.simple.abap" + }, + "2": { + "name": "constant.numeric.abap" + } + } + }, + "keywords_followed_by_braces": { + "match": "(?ix)\\b(data|value|field-symbol|final|reference|resumable)\\((<?[a-z_\\/][a-z_0-9\\/]*>?)\\)", + "captures": { + "1": { + "name": "keyword.control.simple.abap" + }, + "2": { + "name": "variable.other.abap" + } + } + }, + "operators": { + "patterns": [ + { + "include": "#other_operator" + }, + { + "include": "#arithmetic_operator" + }, + { + "include": "#comparison_operator" + }, + { + "include": "#logical_operator" + } + ] + }, + "other_operator": { + "match": "(?<=\\s)(&&|&|\\?=|\\+=|-=|\\/=|\\*=|&&=|&=)(?=\\s)", + "name": "keyword.control.simple.abap" + }, + "builtin_functions": { + "match": "(?ix)(?<=\\s)(abs|sign|ceil|floor|trunc|frac|acos|asin|atan|cos|sin|tan|cosh|sinh|tanh|exp|log|log10|sqrt|strlen|xstrlen|charlen|lines|numofchar|dbmaxlen|round|rescale|nmax|nmin|cmax|cmin|boolc|boolx|xsdbool|contains|contains_any_of|contains_any_not_of|matches|line_exists|ipow|char_off|count|count_any_of|count_any_not_of|distance|condense|concat_lines_of|escape|find|find_end|find_any_of|find_any_not_of|insert|match|repeat|replace|reverse|segment|shift_left|shift_right|substring|substring_after|substring_from|substring_before|substring_to|to_upper|to_lower|to_mixed|from_mixed|translate|bit-set|line_index)(?=\\()", + "name": "entity.name.function.builtin.abap" + }, + "sql_types": { + "match": "(?ix)(?<=\\s)(char|clnt|cuky|curr|datn|dats|dec|decfloat16|decfloat34|fltp|int1|int2|int4|int8|lang|numc|quan|raw|sstring|timn|tims|unit|utclong)(?=\\s|\\(|\\))", + "name": "entity.name.type.sql.abap" + }, + "sql_functions": { + "match": "(?ix)(?<=\\s)(\nabap_system_timezone|\nabap_user_timezone|\nabs|\nadd_days|\nadd_months|\nallow_precision_loss|\nas_geo_json|\navg|\nbintohex|\ncast|\nceil|\ncoalesce|\nconcat_with_space|\nconcat|\ncorr_spearman|\ncorr|\ncount|\ncurrency_conversion|\ndatn_add_days|\ndatn_add_months|\ndatn_days_between|\ndats_add_days|\ndats_add_months|\ndats_days_between|\ndats_from_datn|\ndats_is_valid|\ndats_tims_to_tstmp|\ndats_to_datn|\ndayname|\ndays_between|\ndense_rank|\ndivision|\ndiv|\nextract_day|\nextract_hour|\nextract_minute|\nextract_month|\nextract_second|\nextract_year|\nfirst_value|\nfloor|\ngrouping|\nhextobin|\ninitcap|\ninstr|\nis_valid|\nlag|\nlast_value|\nlead|\nleft|\nlength|\nlike_regexpr|\nlocate_regexpr_after|\nlocate_regexpr|\nlocate|\nlower|\nlpad|\nltrim|\nmax|\nmedian|\nmin|\nmod|\nmonthname|\nntile|\noccurrences_regexpr|\nover|\nproduct|\nrank|\nreplace_regexpr|\nreplace|\nrigth|\nround|\nrow_number|\nrpad|\nrtrim|\nstddev|\nstring_agg|\nsubstring_regexpr|\nsubstring|\nsum|\ntims_from_timn|\ntims_is_valid|\ntims_to_timn|\nto_blob|\nto_clob|\ntstmp_add_seconds|\ntstmp_current_utctimestamp|\ntstmp_is_valid|\ntstmp_seconds_between|\ntstmp_to_dats|\ntstmp_to_dst|\ntstmp_to_tims|\ntstmpl_from_utcl|\ntstmpl_to_utcl|\nunit_conversion|\nupper|\nutcl_add_seconds|\nutcl_current|\nutcl_seconds_between|\nuuid|\nvar|\nweekday\n )(?=\\()", + "name": "entity.name.function.sql.abap" + } + }, + "scopeName": "source.abap", + "uuid": "0357FFB4-EFFF-4DE9-8371-B0F9C8DF1B21" +} diff --git a/docs/shiki/languages/actionscript-3.tmLanguage.json b/docs/shiki/languages/actionscript-3.tmLanguage.json new file mode 100644 index 00000000..75210d94 --- /dev/null +++ b/docs/shiki/languages/actionscript-3.tmLanguage.json @@ -0,0 +1,949 @@ +{ + "fileTypes": ["as"], + "name": "actionscript-3", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#package" + }, + { + "include": "#class" + }, + { + "include": "#interface" + }, + { + "include": "#namespace_declaration" + }, + { + "include": "#import" + }, + { + "include": "#mxml" + }, + { + "include": "#strings" + }, + { + "include": "#regexp" + }, + { + "include": "#variable_declaration" + }, + { + "include": "#numbers" + }, + { + "include": "#primitive_types" + }, + { + "include": "#primitive_error_types" + }, + { + "include": "#dynamic_type" + }, + { + "include": "#primitive_functions" + }, + { + "include": "#language_constants" + }, + { + "include": "#language_variables" + }, + { + "include": "#guess_type" + }, + { + "include": "#guess_constant" + }, + { + "include": "#other_operators" + }, + { + "include": "#arithmetic_operators" + }, + { + "include": "#logical_operators" + }, + { + "include": "#array_access_operators" + }, + { + "include": "#vector_creation_operators" + }, + { + "include": "#control_keywords" + }, + { + "include": "#other_keywords" + }, + { + "include": "#use_namespace" + }, + { + "include": "#functions" + } + ], + "repository": { + "arithmetic_operators": { + "match": "(\\+|\\-|/|%|(?<!:)\\*)", + "name": "keyword.operator.actionscript.3" + }, + "array_access_operators": { + "match": "(\\[|\\])", + "name": "keyword.operator.actionscript.3" + }, + "class": { + "begin": "(?x) (^|\\s+|;) (\\b(dynamic|final|abstract)\\b\\s+)? (\\b(internal|public)\\b\\s+)? (\\b(dynamic|final|abstract)\\b\\s+)? (?=\\bclass\\b)", + "beginCaptures": { + "3": { + "name": "storage.modifier.actionscript.3" + }, + "5": { + "name": "storage.modifier.actionscript.3" + }, + "7": { + "name": "storage.modifier.actionscript.3" + } + }, + "end": "\\}", + "name": "meta.class.actionscript.3", + "patterns": [ + { + "include": "#class_declaration" + }, + { + "include": "#metadata" + }, + { + "include": "#method" + }, + { + "include": "#comments" + }, + { + "include": "#strings" + }, + { + "include": "#regexp" + }, + { + "include": "#numbers" + }, + { + "include": "#primitive_types" + }, + { + "include": "#primitive_error_types" + }, + { + "include": "#dynamic_type" + }, + { + "include": "#primitive_functions" + }, + { + "include": "#language_constants" + }, + { + "include": "#language_variables" + }, + { + "include": "#other_operators" + }, + { + "include": "#other_keywords" + }, + { + "include": "#use_namespace" + }, + { + "include": "#guess_type" + }, + { + "include": "#guess_constant" + }, + { + "include": "#arithmetic_operators" + }, + { + "include": "#array_access_operators" + }, + { + "include": "#vector_creation_operators" + }, + { + "include": "#variable_declaration" + }, + { + "include": "#object_literal" + } + ] + }, + "namespace_declaration": { + "captures": { + "2": { + "name": "storage.modifier.actionscript.3" + }, + "3": { + "name": "storage.modifier.actionscript.3" + } + }, + "match": "(?x) ((\\w+)\\s+)? (namespace) \\s+ (?:[A-Za-z0-9_\\$]+)", + "name": "meta.namespace_declaration.actionscript.3" + }, + "class_declaration": { + "begin": "(?x) \\b(class)\\b \\s+ ([\\.\\w]+|\\*)", + "beginCaptures": { + "1": { + "name": "storage.type.class.actionscript.3" + }, + "2": { + "name": "entity.name.class.actionscript.3" + } + }, + "end": "\\{", + "name": "meta.class_declaration.actionscript.3", + "patterns": [ + { + "include": "#extends" + }, + { + "include": "#implements" + }, + { + "include": "#comments" + } + ] + }, + "code_block": { + "begin": "\\{", + "end": "\\}", + "name": "meta.code_block.actionscript.3", + "patterns": [ + { + "include": "#code_block" + }, + { + "include": "#comments" + }, + { + "include": "#strings" + }, + { + "include": "#regexp" + }, + { + "include": "#variable_declaration" + }, + { + "include": "#numbers" + }, + { + "include": "#primitive_types" + }, + { + "include": "#primitive_error_types" + }, + { + "include": "#dynamic_type" + }, + { + "include": "#primitive_functions" + }, + { + "include": "#language_constants" + }, + { + "include": "#language_variables" + }, + { + "include": "#guess_type" + }, + { + "include": "#guess_constant" + }, + { + "include": "#other_operators" + }, + { + "include": "#arithmetic_operators" + }, + { + "include": "#logical_operators" + }, + { + "include": "#array_access_operators" + }, + { + "include": "#vector_creation_operators" + }, + { + "include": "#control_keywords" + }, + { + "include": "#other_keywords" + }, + { + "include": "#use_namespace" + }, + { + "include": "#functions" + }, + { + "include": "#import" + } + ] + }, + "comments": { + "patterns": [ + { + "begin": "/\\*\\*(?!/)", + "end": "\\*/", + "name": "comment.block.documentation.actionscript.3", + "patterns": [ + { + "match": "@(copy|default|eventType|example|exampleText|includeExample|inheritDoc|internal|param|private|return|see|since|throws)\\b", + "name": "keyword.other.documentation.actionscript.3.asdoc" + } + ] + }, + { + "begin": "/\\*", + "end": "\\*/", + "name": "comment.block.actionscript.3" + }, + { + "match": "//.*", + "name": "comment.line.actionscript.3" + } + ] + }, + "control_keywords": { + "match": "\\b(if|else|do|while|for|each|continue|return|switch|case|default|break|try|catch|finally|throw|with)\\b", + "name": "keyword.control.actionscript.3" + }, + "dynamic_type": { + "captures": { + "1": { + "name": "support.type.actionscript.3" + } + }, + "match": "(?<=:)\\s*(\\*)" + }, + "escapes": { + "match": "\\\\(x\\h{2}|[0-2][0-7]{,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)", + "name": "constant.character.escape.actionscript.3" + }, + "extends": { + "captures": { + "1": { + "name": "keyword.other.actionscript.3" + }, + "2": { + "name": "entity.other.inherited-class.actionscript.3" + }, + "3": { + "name": "entity.other.inherited-class.actionscript.3" + } + }, + "match": "(?x) \\b(extends)\\b \\s+ ([\\.\\w]+) \\s* (?:, \\s* ([\\.\\w]+))* \\s*", + "name": "meta.extends.actionscript.3" + }, + "function_arguments": { + "begin": "\\(", + "end": "\\)", + "name": "meta.function_arguments.actionscript.3", + "patterns": [ + { + "include": "#parameters" + }, + { + "include": "#comments" + } + ] + }, + "parameters": { + "begin": "(\\.\\.\\.)?\\s*([A-Za-z\\_\\$][A-Za-z0-9_\\$]*)(?:\\s*(\\:)\\s*(?:(?:([A-Za-z\\$][A-Za-z0-9_\\$]+(?:\\.[A-Za-z\\$][A-Za-z0-9_\\$]+)*)(?:\\.<([A-Za-z\\$][A-Za-z0-9_\\$]+(?:\\.[A-Za-z\\$][A-Za-z0-9_\\$]+)*)>)?)|(\\*)))?(?:\\s*(=))?", + "end": ",|(?=\\))", + "beginCaptures": { + "1": { + "name": "keyword.operator.actionscript.3" + }, + "2": { + "name": "variable.parameter.actionscript.3" + }, + "3": { + "name": "keyword.operator.actionscript.3" + }, + "4": { + "name": "support.type.actionscript.3" + }, + "5": { + "name": "support.type.actionscript.3" + }, + "6": { + "name": "support.type.actionscript.3" + }, + "7": { + "name": "keyword.operator.actionscript.3" + } + }, + "patterns": [ + { + "include": "#strings" + }, + { + "include": "#numbers" + }, + { + "include": "#language_constants" + }, + { + "include": "#comments" + }, + { + "include": "#primitive_types" + }, + { + "include": "#primitive_error_types" + }, + { + "include": "#dynamic_type" + }, + { + "include": "#guess_type" + }, + { + "include": "#guess_constant" + } + ] + }, + "functions": { + "begin": "(?x) \\b(function)\\b (?:\\s+\\b(get|set)\\b\\s+)? \\s* ([a-zA-Z0-9_\\$]+\\b)?", + "beginCaptures": { + "1": { + "name": "storage.type.function.actionscript.3" + }, + "2": { + "name": "storage.modifier.actionscript.3" + }, + "3": { + "name": "entity.name.function.actionscript.3" + } + }, + "end": "($|;|(?=\\{))", + "name": "meta.function.actionscript.3", + "patterns": [ + { + "include": "#function_arguments" + }, + { + "include": "#return_type" + }, + { + "include": "#comments" + } + ] + }, + "guess_constant": { + "captures": { + "1": { + "name": "constant.other.actionscript.3" + } + }, + "comment": "Following convention, let's guess that anything in all caps/digits (possible underscores) is a constant.", + "match": "\\b([A-Z\\$][A-Z0-9_]+)\\b" + }, + "guess_type": { + "captures": { + "1": { + "name": "support.type.actionscript.3" + } + }, + "comment": "Following convention, let's guess that any word starting with one or more capital letters (that contains at least some lower-case letters so that constants aren't detected) refers to a class/type. May be fully-qualified.", + "match": "\\b((?:[A-Za-z0-9_\\$]+\\.)*[A-Z][A-Z0-9]*[a-z]+[A-Za-z0-9_\\$]*)\\b" + }, + "implements": { + "captures": { + "1": { + "name": "keyword.other.actionscript.3" + }, + "2": { + "name": "entity.other.inherited-class.actionscript.3" + }, + "3": { + "name": "entity.other.inherited-class.actionscript.3" + } + }, + "match": "(?x) \\b(implements)\\b \\s+ ([\\.\\w]+) \\s* (?:, \\s* ([\\.\\w]+))* \\s*", + "name": "meta.implements.actionscript.3" + }, + "import": { + "captures": { + "2": { + "name": "keyword.control.import.actionscript.3" + }, + "3": { + "name": "support.type.actionscript.3" + } + }, + "match": "(?x) (^|\\s+|;) \\b(import)\\b \\s+ ([A-Za-z0-9\\$_\\.]+(?:\\.\\*)?) \\s* (?=;|$)", + "name": "meta.import.actionscript.3" + }, + "interface": { + "begin": "(?x) (^|\\s+|;) (\\b(internal|public)\\b\\s+)? (?=\\binterface\\b)", + "beginCaptures": { + "3": { + "name": "storage.modifier.actionscript.3" + } + }, + "end": "\\}", + "name": "meta.interface.actionscript.3", + "patterns": [ + { + "include": "#interface_declaration" + }, + { + "include": "#metadata" + }, + { + "include": "#functions" + }, + { + "include": "#comments" + } + ] + }, + "interface_declaration": { + "begin": "(?x) \\b(interface)\\b \\s+ ([\\.\\w]+)", + "beginCaptures": { + "1": { + "name": "storage.type.interface.actionscript.3" + }, + "2": { + "name": "entity.name.class.actionscript.3" + } + }, + "end": "\\{", + "name": "meta.class_declaration.actionscript.3", + "patterns": [ + { + "include": "#extends" + }, + { + "include": "#comments" + } + ] + }, + "language_constants": { + "match": "\\b(true|false|null|Infinity|-Infinity|NaN|undefined)\\b", + "name": "constant.language.actionscript.3" + }, + "language_variables": { + "match": "\\b(super|this|arguments)\\b", + "name": "variable.language.actionscript.3" + }, + "logical_operators": { + "match": "(&|<|~|\\||>|\\^|!|\\?)", + "name": "keyword.operator.actionscript.3" + }, + "metadata_info": { + "begin": "\\(", + "end": "\\)", + "patterns": [ + { + "include": "#strings" + }, + { + "captures": { + "1": { + "name": "variable.parameter.actionscript.3" + }, + "2": { + "name": "keyword.operator.actionscript.3" + } + }, + "match": "(\\w+)\\s*(=)" + } + ] + }, + "method": { + "begin": "(?x) (^|\\s+) ((\\w+)\\s+)? ((\\w+)\\s+)? ((\\w+)\\s+)? ((\\w+)\\s+)? (?=\\bfunction\\b)", + "beginCaptures": { + "3": { + "name": "storage.modifier.actionscript.3" + }, + "5": { + "name": "storage.modifier.actionscript.3" + }, + "7": { + "name": "storage.modifier.actionscript.3" + }, + "8": { + "name": "storage.modifier.actionscript.3" + } + }, + "end": "(?<=(;|\\}))", + "name": "meta.method.actionscript.3", + "patterns": [ + { + "include": "#functions" + }, + { + "include": "#code_block" + } + ] + }, + "mxml": { + "begin": "<!\\[CDATA\\[", + "end": "\\]\\]>", + "name": "meta.cdata.actionscript.3", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#import" + }, + { + "include": "#metadata" + }, + { + "include": "#class" + }, + { + "include": "#namespace_declaration" + }, + { + "include": "#use_namespace" + }, + { + "include": "#class_declaration" + }, + { + "include": "#method" + }, + { + "include": "#comments" + }, + { + "include": "#strings" + }, + { + "include": "#regexp" + }, + { + "include": "#numbers" + }, + { + "include": "#primitive_types" + }, + { + "include": "#primitive_error_types" + }, + { + "include": "#dynamic_type" + }, + { + "include": "#primitive_functions" + }, + { + "include": "#language_constants" + }, + { + "include": "#language_variables" + }, + { + "include": "#other_keywords" + }, + { + "include": "#guess_type" + }, + { + "include": "#guess_constant" + }, + { + "include": "#other_operators" + }, + { + "include": "#arithmetic_operators" + }, + { + "include": "#array_access_operators" + }, + { + "include": "#vector_creation_operators" + }, + { + "include": "#variable_declaration" + } + ] + }, + "numbers": { + "match": "\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f)?\\b", + "name": "constant.numeric.actionscript.3" + }, + "object_literal": { + "begin": "\\{", + "end": "\\}", + "name": "meta.object_literal.actionscript.3", + "patterns": [ + { + "include": "#object_literal" + }, + { + "include": "#comments" + }, + { + "include": "#strings" + }, + { + "include": "#regexp" + }, + { + "include": "#numbers" + }, + { + "include": "#primitive_types" + }, + { + "include": "#primitive_error_types" + }, + { + "include": "#dynamic_type" + }, + { + "include": "#primitive_functions" + }, + { + "include": "#language_constants" + }, + { + "include": "#language_variables" + }, + { + "include": "#guess_type" + }, + { + "include": "#guess_constant" + }, + { + "include": "#array_access_operators" + }, + { + "include": "#vector_creation_operators" + }, + { + "include": "#functions" + } + ] + }, + "other_keywords": { + "match": "\\b(as|delete|in|instanceof|is|native|new|to|typeof)\\b", + "name": "keyword.other.actionscript.3" + }, + "other_operators": { + "match": "(\\.|=)", + "name": "keyword.operator.actionscript.3" + }, + "package": { + "begin": "(^|\\s+)(package)\\b", + "beginCaptures": { + "2": { + "name": "keyword.other.actionscript.3" + } + }, + "end": "\\}", + "name": "meta.package.actionscript.3", + "patterns": [ + { + "include": "#package_name" + }, + { + "include": "#variable_declaration" + }, + { + "include": "#method" + }, + { + "include": "#comments" + }, + { + "include": "#return_type" + }, + { + "include": "#import" + }, + { + "include": "#use_namespace" + }, + { + "include": "#strings" + }, + { + "include": "#numbers" + }, + { + "include": "#language_constants" + }, + { + "include": "#metadata" + }, + { + "include": "#class" + }, + { + "include": "#interface" + }, + { + "include": "#namespace_declaration" + } + ] + }, + "package_name": { + "begin": "(?<=package)\\s+([\\w\\._]*)\\b", + "end": "\\{", + "name": "meta.package_name.actionscript.3" + }, + "primitive_types": { + "captures": { + "1": { + "name": "support.class.builtin.actionscript.3" + } + }, + "match": "\\b(Array|Boolean|Class|Date|Function|int|JSON|Math|Namespace|Number|Object|QName|RegExp|String|uint|Vector|XML|XMLList|\\*(?<=a))\\b" + }, + "primitive_error_types": { + "captures": { + "1": { + "name": "support.class.error.actionscript.3" + } + }, + "match": "\\b((Argument|Definition|Eval|Internal|Range|Reference|Security|Syntax|Type|URI|Verify)?Error)\\b" + }, + "primitive_functions": { + "captures": { + "1": { + "name": "support.function.actionscript.3" + } + }, + "match": "\\b(decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|escape|isFinite|isNaN|isXMLName|parseFloat|parseInt|trace|unescape)(?=\\s*\\()" + }, + "regexp": { + "begin": "(?<=[=(:,\\[]|^|return|&&|\\|\\||!)\\s*(/)(?![/*+{}?])", + "end": "$|(/)[igm]*", + "name": "string.regex.actionscript.3", + "patterns": [ + { + "match": "\\\\.", + "name": "constant.character.escape.actionscript.3" + }, + { + "match": "\\[(\\\\\\]|[^\\]])*\\]", + "name": "constant.character.class.actionscript.3" + } + ] + }, + "return_type": { + "captures": { + "1": { + "name": "keyword.operator.actionscript.3" + }, + "2": { + "name": "support.type.actionscript.3" + }, + "3": { + "name": "support.type.actionscript.3" + }, + "4": { + "name": "support.type.actionscript.3" + } + }, + "match": "(\\:)\\s*(?:([A-Za-z\\$][A-Za-z0-9_\\$]+(?:\\.[A-Za-z\\$][A-Za-z0-9_\\$]+)*)(?:\\.<([A-Za-z\\$][A-Za-z0-9_\\$]+(?:\\.[A-Za-z\\$][A-Za-z0-9_\\$]+)*)>)?)|(\\*)" + }, + "strings": { + "patterns": [ + { + "begin": "\"", + "end": "\"", + "name": "string.quoted.double.actionscript.3", + "patterns": [ + { + "include": "#escapes" + } + ] + }, + { + "begin": "'", + "end": "'", + "name": "string.quoted.single.actionscript.3", + "patterns": [ + { + "include": "#escapes" + } + ] + } + ] + }, + "metadata": { + "begin": "\\[\\s*\\b(\\w+)\\b", + "beginCaptures": { + "1": { + "name": "keyword.other.actionscript.3" + } + }, + "end": "\\]", + "name": "meta.metadata_info.actionscript.3", + "patterns": [ + { + "include": "#metadata_info" + } + ] + }, + "use_namespace": { + "captures": { + "2": { + "name": "keyword.other.actionscript.3" + }, + "3": { + "name": "keyword.other.actionscript.3" + }, + "4": { + "name": "storage.modifier.actionscript.3" + } + }, + "match": "(?x) (^|\\s+|;) (use\\s+)? (namespace) \\s+ (\\w+) \\s* (;|$)" + }, + "variable_declaration": { + "captures": { + "2": { + "name": "storage.modifier.actionscript.3" + }, + "4": { + "name": "storage.modifier.actionscript.3" + }, + "6": { + "name": "storage.modifier.actionscript.3" + }, + "7": { + "name": "storage.modifier.actionscript.3" + }, + "8": { + "name": "keyword.operator.actionscript.3" + } + }, + "match": "(?x) ((static)\\s+)? ((\\w+)\\s+)? ((static)\\s+)? (const|var) \\s+ (?:[A-Za-z0-9_\\$]+)(?:\\s*(:))?", + "name": "meta.variable_declaration.actionscript.3" + }, + "vector_creation_operators": { + "match": "(<|>)", + "name": "keyword.operator.actionscript.3" + } + }, + "scopeName": "source.actionscript.3", + "uuid": "aa6f75ba-ab10-466e-8c6f-28c69aca1e9d" +} diff --git a/docs/shiki/languages/ada.tmLanguage.json b/docs/shiki/languages/ada.tmLanguage.json new file mode 100644 index 00000000..2c7ddf54 --- /dev/null +++ b/docs/shiki/languages/ada.tmLanguage.json @@ -0,0 +1,3871 @@ +{ + "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", + "name": "ada", + "patterns": [ + { + "include": "#library_unit" + }, + { + "include": "#comment" + }, + { + "include": "#use_clause" + }, + { + "include": "#with_clause" + }, + { + "include": "#pragma" + }, + { + "include": "#keyword" + } + ], + "repository": { + "abort_statement": { + "name": "meta.statement.abort.ada", + "begin": "(?i)\\babort\\b", + "end": ";", + "beginCaptures": { + "0": { + "name": "keyword.control.ada" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "name": "punctuation.ada", + "match": "," + }, + { + "name": "entity.name.task.ada", + "match": "\\b(\\w|\\d|\\.|_)+\\b" + } + ] + }, + "accept_statement": { + "name": "meta.statement.accept.ada", + "begin": "(?i)\\b(accept)\\s+((?:\\w|\\d|\\.|_)+)\\b", + "end": "(?i)(?:\\b(end)\\s*(\\s\\2)?\\s*)?(;)", + "beginCaptures": { + "1": { + "name": "keyword.control.ada" + }, + "2": { + "name": "entity.name.accept.ada" + } + }, + "endCaptures": { + "1": { + "name": "keyword.control.ada" + }, + "2": { + "name": "entity.name.accept.ada" + }, + "3": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "begin": "(?i)\\bdo\\b", + "end": "(?i)\\b(?=end)\\b", + "beginCaptures": { + "0": { + "name": "keyword.control.ada" + } + }, + "patterns": [ + { + "include": "#statement" + } + ] + }, + { + "include": "#parameter_profile" + } + ] + }, + "access_definition": { + "name": "meta.declaration.access.definition.ada", + "match": "(?i)(not\\s+null\\s+)?(access)\\s+(constant\\s+)?((?:\\w|\\d|\\.|_)+)\\b", + "captures": { + "1": { + "name": "storage.visibility.ada" + }, + "2": { + "name": "storage.visibility.ada" + }, + "3": { + "name": "storage.modifier.ada" + }, + "4": { + "name": "entity.name.type.ada" + } + } + }, + "access_type_definition": { + "name": "meta.declaration.type.definition.access.ada", + "begin": "(?i)\\b(not\\s+null\\s+)?(access)\\b", + "end": "(?i)(?=(with|;))", + "beginCaptures": { + "1": { + "name": "storage.visibility.ada" + }, + "2": { + "name": "storage.visibility.ada" + } + }, + "patterns": [ + { + "name": "storage.visibility.ada", + "match": "(?i)\\ball\\b" + }, + { + "name": "storage.modifier.ada", + "match": "(?i)\\bconstant\\b" + }, + { + "include": "#subtype_mark" + } + ] + }, + "actual_parameter_part": { + "begin": "\\(", + "end": "\\)", + "captures": { + "0": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "name": "punctuation.ada", + "match": "," + }, + { + "include": "#parameter_association" + } + ] + }, + "adding_operator": { + "name": "keyword.operator.adding.ada", + "match": "(\\+|-|\\&)" + }, + "array_aggregate": { + "name": "meta.definition.array.aggregate.ada", + "begin": "\\(", + "end": "\\)", + "captures": { + "0": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "name": "punctuation.ada", + "match": "," + }, + { + "include": "#positional_array_aggregate" + }, + { + "include": "#array_component_association" + } + ] + }, + "array_component_association": { + "name": "meta.definition.array.aggregate.component.ada", + "match": "(?i)\\b([^(=>)]*)\\s*(=>)\\s*([^,\\)]+)", + "captures": { + "1": { + "name": "variable.name.ada" + }, + "2": { + "name": "keyword.other.ada" + }, + "3": { + "patterns": [ + { + "name": "keyword.modifier.unknown.ada", + "match": "<>" + }, + { + "include": "#expression" + } + ] + } + } + }, + "array_dimensions": { + "name": "meta.declaration.type.definition.array.dimensions.ada", + "begin": "\\(", + "end": "\\)", + "captures": { + "0": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "name": "punctuation.ada", + "match": "," + }, + { + "name": "storage.modifier.ada", + "match": "(?i)\\brange\\b" + }, + { + "name": "keyword.modifier.unknown.ada", + "match": "<>" + }, + { + "name": "keyword.ada", + "match": "\\.\\." + }, + { + "include": "#expression" + }, + { + "patterns": [ + { + "include": "#subtype_mark" + } + ] + } + ] + }, + "array_type_definition": { + "name": "meta.declaration.type.definition.array.ada", + "begin": "(?i)\\barray\\b", + "end": "(?i)(?=(with|;))", + "beginCaptures": { + "0": { + "name": "storage.modifier.ada" + } + }, + "patterns": [ + { + "include": "#array_dimensions" + }, + { + "name": "storage.modifier.ada", + "match": "(?i)\\bof\\b" + }, + { + "name": "storage.visibility.ada", + "match": "(?i)\\baliased\\b" + }, + { + "include": "#access_definition" + }, + { + "include": "#subtype_mark" + } + ] + }, + "aspect_clause": { + "name": "meta.aspect.clause.ada", + "begin": "(?i)\\b(for)\\b", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.ada" + }, + "2": { + "patterns": [ + { + "include": "#subtype_mark" + } + ] + }, + "3": { + "name": "punctuation.ada" + }, + "5": { + "name": "keyword.ada" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "begin": "(?i)\\buse\\b", + "end": "(?=;)", + "beginCaptures": { + "0": { + "name": "keyword.ada" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "include": "#record_representation_clause" + }, + { + "include": "#array_aggregate" + }, + { + "include": "#expression" + } + ] + }, + { + "begin": "(?i)(?<=for)", + "end": "(?i)(?=use)", + "captures": { + "0": { + "name": "keyword.ada" + } + }, + "patterns": [ + { + "match": "((?:\\w|\\d|_)+)('((?:\\w|\\d|_)+))?", + "captures": { + "1": { + "patterns": [ + { + "include": "#subtype_mark" + } + ] + }, + "2": { + "patterns": [ + { + "include": "#attribute" + } + ] + } + } + } + ] + } + ] + }, + "aspect_definition": { + "name": "meta.aspect.definition.ada", + "begin": "=>", + "end": "(?i)(?=(,|;|\\bis\\b))", + "beginCaptures": { + "0": { + "name": "keyword.other.ada" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + "aspect_mark": { + "name": "meta.aspect.mark.ada", + "match": "(?i)\\b((?:\\w|\\d|\\.|_)+)(?:(')(class))?\\b", + "captures": { + "1": { + "name": "keyword.control.directive.ada" + }, + "2": { + "name": "punctuation.ada" + }, + "3": { + "name": "entity.other.attribute-name.ada" + } + } + }, + "aspect_specification": { + "name": "meta.aspect.specification.ada", + "begin": "(?i)\\bwith\\b", + "end": "(?i)(?=(;|\\bis\\b))", + "beginCaptures": { + "0": { + "name": "keyword.ada" + } + }, + "patterns": [ + { + "name": "punctuation.ada", + "match": "," + }, + { + "match": "(?i)\\b(null)\\s+(record)\\b", + "captures": { + "1": { + "name": "storage.modifier.ada" + }, + "2": { + "name": "storage.modifier.ada" + } + } + }, + { + "begin": "(?i)\\brecord\\b", + "end": "(?i)\\b(end)\\s+(record)\\b", + "beginCaptures": { + "0": { + "name": "storage.modifier.ada" + } + }, + "endCaptures": { + "1": { + "name": "keyword.ada" + }, + "2": { + "name": "storage.modifier.ada" + } + }, + "patterns": [ + { + "include": "#component_item" + } + ] + }, + { + "match": "(?i)\\bprivate\\b", + "captures": { + "0": { + "name": "storage.visibility.ada" + } + } + }, + { + "include": "#aspect_definition" + }, + { + "include": "#aspect_mark" + }, + { + "include": "#comment" + } + ] + }, + "assignment_statement": { + "name": "meta.statement.assignment.ada", + "begin": "\\b((?:\\w|\\d|\\.|_|\\(|\\)|\"|'|\\s)+)\\s*(:=)", + "end": ";", + "beginCaptures": { + "1": { + "patterns": [ + { + "match": "((?:\\w|\\d|\\.|_)+)", + "name": "variable.name.ada" + }, + { + "begin": "\\(", + "end": "\\)", + "captures": { + "0": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + } + ] + }, + "2": { + "name": "keyword.operator.new.ada" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "include": "#expression" + }, + { + "include": "#comment" + } + ] + }, + "attribute": { + "name": "meta.attribute.ada", + "match": "(')((?:\\w|\\d|_)+)\\b", + "captures": { + "1": { + "name": "punctuation.ada" + }, + "2": { + "name": "entity.other.attribute-name.ada" + } + } + }, + "based_literal": { + "name": "constant.numeric.ada", + "match": "(?i)(\\d(?:(_)?\\d)*#)[0-9a-f](?:(_)?[0-9a-f])*(?:(\\.)[0-9a-f](?:(_)?[0-9a-f])*)?(#)([eE](?:\\+|\\-)?\\d(?:_?\\d)*)?", + "captures": { + "1": { + "name": "constant.numeric.base.ada" + }, + "2": { + "name": "punctuation.ada" + }, + "3": { + "name": "punctuation.ada" + }, + "4": { + "name": "punctuation.radix-point.ada" + }, + "5": { + "name": "punctuation.ada" + }, + "6": { + "name": "constant.numeric.base.ada" + }, + "7": { + "patterns": [ + { + "include": "#exponent_part" + } + ] + } + } + }, + "basic_declarative_item": { + "patterns": [ + { + "include": "#basic_declaration" + }, + { + "include": "#aspect_clause" + }, + { + "include": "#use_clause" + }, + { + "include": "#keyword" + } + ] + }, + "basic_declaration": { + "patterns": [ + { + "include": "#type_declaration" + }, + { + "include": "#subtype_declaration" + }, + { + "include": "#exception_declaration" + }, + { + "include": "#object_declaration" + }, + { + "include": "#single_protected_declaration" + }, + { + "include": "#single_task_declaration" + }, + { + "include": "#subprogram_specification" + }, + { + "include": "#package_declaration" + }, + { + "include": "#pragma" + }, + { + "include": "#comment" + } + ] + }, + "block_statement": { + "name": "meta.statement.block.ada", + "begin": "(?i)\\bdeclare\\b", + "end": "(?i)\\b(end)(\\s+(?:\\w|\\d|_)+)?\\s*(;)", + "beginCaptures": { + "0": { + "name": "keyword.ada" + } + }, + "endCaptures": { + "1": { + "name": "keyword.ada" + }, + "2": { + "name": "entity.name.label.ada" + }, + "3": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "begin": "(?i)(?<=declare)", + "end": "(?i)\\bbegin\\b", + "endCaptures": { + "0": { + "name": "keyword.ada" + } + }, + "patterns": [ + { + "include": "#body" + }, + { + "include": "#basic_declarative_item" + } + ] + }, + { + "begin": "(?i)(?<=begin)", + "end": "(?i)(?=end)", + "patterns": [ + { + "include": "#statement" + } + ] + } + ] + }, + "body": { + "patterns": [ + { + "include": "#subprogram_body" + }, + { + "include": "#package_body" + }, + { + "include": "#task_body" + }, + { + "include": "#protected_body" + } + ] + }, + "case_statement": { + "name": "meta.statement.case.ada", + "begin": "(?i)\\bcase\\b", + "end": "(?i)\\b(end)\\s+(case)\\s*(;)", + "beginCaptures": { + "0": { + "name": "keyword.control.ada" + } + }, + "endCaptures": { + "1": { + "name": "keyword.control.ada" + }, + "2": { + "name": "keyword.control.ada" + }, + "3": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "begin": "(?i)(?<=case)\\b", + "end": "(?i)\\bis\\b", + "endCaptures": { + "0": { + "name": "keyword.control.ada" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "name": "meta.statement.case.alternative.ada", + "begin": "(?i)\\bwhen\\b", + "end": "=>", + "beginCaptures": { + "0": { + "name": "keyword.control.ada" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "name": "keyword.modifier.unknown.ada", + "match": "(?i)\\bothers\\b" + }, + { + "name": "punctuation.ada", + "match": "\\|" + }, + { + "include": "#expression" + } + ] + }, + { + "include": "#statement" + } + ] + }, + "character_literal": { + "name": "string.quoted.single.ada", + "match": "'.'", + "captures": { + "0": { + "patterns": [ + { + "name": "punctuation.definition.string.ada", + "match": "'" + } + ] + } + } + }, + "comment": { + "patterns": [ + { + "include": "#preprocessor" + }, + { + "include": "#comment-section" + }, + { + "include": "#comment-doc" + }, + { + "include": "#comment-line" + } + ] + }, + "comment-doc": { + "name": "comment.block.documentation.ada", + "match": "(--)\\s*(@)(\\w+)\\s+(.*)$", + "captures": { + "1": { + "name": "comment.line.double-dash.ada" + }, + "2": { + "name": "punctuation.definition.tag.ada" + }, + "3": { + "name": "entity.name.tag.ada" + }, + "4": { + "name": "comment.line.double-dash.ada" + } + } + }, + "comment-line": { + "name": "comment.line.double-dash.ada", + "match": "--.*$" + }, + "comment-section": { + "name": "comment.line.double-dash.ada", + "match": "--\\s*([^-].*?[^-])\\s*--\\s*$", + "captures": { + "1": { + "name": "entity.name.section.ada" + } + } + }, + "component_clause": { + "name": "meta.aspect.clause.record.representation.component.ada", + "begin": "(?i)\\b((?:\\w|\\d|_)+)\\b", + "beginCaptures": { + "0": { + "name": "variable.name.ada" + } + }, + "end": ";", + "endCaptures": { + "0": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "begin": "(?i)\\bat\\b", + "end": "(?i)\\b(?=range)\\b", + "beginCaptures": { + "0": { + "name": "storage.modifier.ada" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "include": "#range_constraint" + } + ] + }, + "component_declaration": { + "name": "meta.declaration.type.definition.record.component.ada", + "begin": "(?i)\\b((?:\\w|\\d|_)+(?:\\s*,\\s*(?:\\w|\\d|_)+)?)\\s*(:)", + "end": ";", + "beginCaptures": { + "1": { + "patterns": [ + { + "name": "punctuation.ada", + "match": "," + }, + { + "name": "variable.name.ada", + "match": "\\b(\\w|\\d|_)+\\b" + } + ] + }, + "2": { + "name": "punctuation.ada" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "patterns": [ + { + "name": "keyword.operator.new.ada", + "match": ":=" + }, + { + "include": "#expression" + } + ] + }, + { + "include": "#component_definition" + } + ] + }, + "component_definition": { + "patterns": [ + { + "name": "storage.visibility.ada", + "match": "(?i)\\baliased\\b" + }, + { + "name": "storage.modifier.ada", + "match": "(?i)\\brange\\b" + }, + { + "name": "keyword.ada", + "match": "\\.\\." + }, + { + "include": "#access_definition" + }, + { + "include": "#subtype_mark" + } + ] + }, + "component_item": { + "patterns": [ + { + "include": "#component_declaration" + }, + { + "include": "#variant_part" + }, + { + "include": "#comment" + }, + { + "include": "#aspect_clause" + }, + { + "match": "(?i)\\b(null)\\s*(;)", + "captures": { + "1": { + "name": "keyword.ada" + }, + "2": { + "name": "punctuation.ada" + } + } + } + ] + }, + "composite_constraint": { + "name": "meta.declaration.constraint.composite.ada", + "begin": "\\(", + "end": "\\)", + "captures": { + "0": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "name": "punctuation.ada", + "match": "," + }, + { + "name": "keyword.ada", + "match": "\\.\\." + }, + { + "match": "(?i)\\b((?:\\w|\\d|_)+)\\s*(=>)\\s*([^,\\)])+\\b", + "captures": { + "1": { + "name": "variable.name.ada" + }, + "2": { + "name": "keyword.other.ada" + }, + "3": { + "patterns": [ + { + "include": "#expression" + } + ] + } + } + }, + { + "include": "#expression" + } + ] + }, + "decimal_literal": { + "name": "constant.numeric.ada", + "match": "\\d(?:(_)?\\d)*(?:(\\.)\\d(?:(_)?\\d)*)?([eE](?:\\+|\\-)?\\d(?:_?\\d)*)?", + "captures": { + "1": { + "name": "punctuation.ada" + }, + "2": { + "name": "punctuation.radix-point.ada" + }, + "3": { + "name": "punctuation.ada" + }, + "4": { + "patterns": [ + { + "include": "#exponent_part" + } + ] + } + } + }, + "declarative_item": { + "patterns": [ + { + "include": "#body" + }, + { + "include": "#basic_declarative_item" + } + ] + }, + "delay_statement": { + "patterns": [ + { + "include": "#delay_until_statement" + }, + { + "include": "#delay_relative_statement" + } + ] + }, + "delay_until_statement": { + "name": "meta.statement.delay.until.ada", + "begin": "(?i)\\b(delay)\\s+(until)\\b", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.control.ada" + }, + "2": { + "name": "keyword.control.ada" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + "delay_relative_statement": { + "begin": "(?i)\\b(delay)\\b", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.control.ada" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + "derived_type_definition": { + "name": "meta.declaration.type.definition.derived.ada", + "patterns": [ + { + "begin": "(?i)\\bnew\\b", + "beginCaptures": { + "0": { + "name": "storage.modifier.ada" + } + }, + "end": "(?i)(?=(\\bwith\\b|;))", + "patterns": [ + { + "name": "storage.modifier.ada", + "match": "(?i)\\band\\b" + }, + { + "include": "#subtype_mark" + } + ] + }, + { + "name": "storage.modifier.ada", + "match": "(?i)\\b(abstract|and|limited|tagged)\\b" + }, + { + "name": "storage.visibility.ada", + "match": "(?i)\\bprivate\\b" + }, + { + "include": "#subtype_mark" + } + ] + }, + "discriminant_specification": { + "begin": "(?i)\\b((?:\\w|\\d|_)+(?:\\s*,\\s*(?:\\w|\\d|_)+)?)\\s*(:)", + "end": "(?=(;|\\)))", + "beginCaptures": { + "1": { + "patterns": [ + { + "name": "punctuation.ada", + "match": "," + }, + { + "name": "variable.name.ada", + "match": "\\b(\\w|\\d|_)+\\b" + } + ] + }, + "2": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "begin": ":=", + "end": "(?=(;|\\)))", + "beginCaptures": { + "0": { + "name": "keyword.operator.new.ada" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "match": "(?i)(not\\s+null\\s+)?((?:\\w|\\d|\\.|_)+)\\b", + "captures": { + "1": { + "name": "storage.visibility.ada" + }, + "2": { + "patterns": [ + { + "include": "#subtype_mark" + } + ] + } + } + }, + { + "include": "#access_definition" + } + ] + }, + "entry_body": { + "begin": "(?i)\\b(entry)\\s+((?:\\w|\\d|_)+)\\b", + "end": "(?i)\\b(end)\\s*(\\s\\2)\\s*(;)", + "beginCaptures": { + "1": { + "name": "keyword.ada" + }, + "2": { + "name": "entity.name.entry.ada" + } + }, + "endCaptures": { + "1": { + "name": "keyword.ada" + }, + "2": { + "name": "entity.name.entry.ada" + }, + "3": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "begin": "(?i)\\bis\\b", + "beginCaptures": { + "0": { + "name": "keyword.ada" + } + }, + "end": "(?i)\\b(?=begin)\\b", + "patterns": [ + { + "include": "#declarative_item" + } + ] + }, + { + "begin": "(?i)\\bbegin\\b", + "end": "(?i)\\b(?=end)\\b", + "beginCaptures": { + "0": { + "name": "keyword.ada" + } + }, + "patterns": [ + { + "include": "#statement" + } + ] + }, + { + "begin": "(?i)\\bwhen\\b", + "end": "(?i)\\b(?=is)\\b", + "beginCaptures": { + "0": { + "name": "keyword.ada" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "include": "#parameter_profile" + } + ] + }, + "entry_declaration": { + "begin": "(?i)\\b(?:(not)?\\s+(overriding)\\s+)?(entry)\\s+((?:\\w|\\d|_)+)\\b", + "end": ";", + "beginCaptures": { + "1": { + "name": "storage.modifier.ada" + }, + "2": { + "name": "storage.modifier.ada" + }, + "3": { + "name": "keyword.ada" + }, + "4": { + "name": "entity.name.entry.ada" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "include": "#parameter_profile" + } + ] + }, + "enumeration_type_definition": { + "name": "meta.declaration.type.definition.enumeration.ada", + "begin": "\\(", + "end": "\\)", + "beginCaptures": { + "0": { + "name": "punctuation.ada" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "name": "punctuation.ada", + "match": "," + }, + { + "name": "variable.name.ada", + "match": "\\b(\\w|\\d|_)+\\b" + }, + { + "include": "#comment" + } + ] + }, + "exception_declaration": { + "name": "meta.declaration.exception.ada", + "begin": "(?i)\\b((?:\\w|\\d|_)+(?:\\s*,\\s*(?:\\w|\\d|_)+)?)\\s*(:)\\s*(exception)", + "beginCaptures": { + "1": { + "patterns": [ + { + "name": "punctuation.ada", + "match": "," + }, + { + "name": "entity.name.exception.ada", + "match": "\\b(\\w|\\d|_)+\\b" + } + ] + }, + "2": { + "name": "punctuation.ada" + }, + "3": { + "name": "storage.type.ada" + } + }, + "end": ";", + "endCaptures": { + "0": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "match": "(?i)\\b(renames)\\s+((\\w|\\d|_|\\.)+)", + "name": "entity.name.exception.ada" + } + ] + }, + "exit_statement": { + "name": "meta.statement.exit.ada", + "begin": "(?i)\\bexit\\b", + "end": ";", + "beginCaptures": { + "0": { + "name": "keyword.control.ada" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "begin": "(?i)\\bwhen\\b", + "end": "(?=;)", + "beginCaptures": { + "0": { + "name": "keyword.control.ada" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "match": "(?:\\w|\\d|_)+", + "name": "entity.name.label.ada" + } + ] + }, + "exponent_part": { + "match": "([eE])(\\+|\\-)?\\d(?:(_)?\\d)*", + "captures": { + "1": { + "name": "punctuation.exponent-mark.ada" + }, + "2": { + "name": "keyword.operator.unary.ada" + }, + "3": { + "name": "punctuation.ada" + } + } + }, + "expression": { + "name": "meta.expression.ada", + "patterns": [ + { + "match": "(?i)\\bnull\\b", + "name": "constant.language.ada" + }, + { + "match": "=>(\\+)?", + "name": "keyword.other.ada" + }, + { + "begin": "\\(", + "end": "\\)", + "captures": { + "0": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "match": ",", + "name": "punctuation.ada" + }, + { + "match": "\\.\\.", + "name": "keyword.ada" + }, + { + "include": "#value" + }, + { + "include": "#attribute" + }, + { + "include": "#comment" + }, + { + "include": "#operator" + }, + { + "match": "(?i)\\b(and|or|xor)\\b", + "name": "keyword.ada" + }, + { + "match": "(?i)\\b(if|then|else|elsif|in|for|(?<!\\.)all|some|\\.\\.|delta|with)\\b", + "name": "keyword.ada" + } + ] + }, + "for_loop_statement": { + "name": "meta.statement.loop.for.ada", + "begin": "(?i)\\bfor\\b", + "end": "(?i)\\b(end)\\s+(loop)(\\s+(?:\\w|\\d|_)+)?\\s*(;)", + "beginCaptures": { + "0": { + "name": "keyword.control.ada" + } + }, + "endCaptures": { + "1": { + "name": "keyword.control.ada" + }, + "2": { + "name": "keyword.control.ada" + }, + "3": { + "name": "entity.name.label.ada" + }, + "4": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "begin": "(?i)(?<=for)", + "end": "(?i)\\bloop\\b", + "endCaptures": { + "0": { + "name": "keyword.control.ada" + } + }, + "patterns": [ + { + "match": "(?i)\\b((?:\\w|\\d|_)+)\\s+(in)(\\s+reverse)?\\b", + "captures": { + "1": { + "name": "variable.name.ada" + }, + "2": { + "name": "keyword.control.ada" + }, + "3": { + "name": "keyword.control.ada" + } + } + }, + { + "match": "(?i)\\b((?:\\w|\\d|_)+)(?:\\s*(:)\\s*((?:\\w|\\d|\\.|_)+))?\\s+(of)(\\s+reverse)?\\b", + "captures": { + "1": { + "name": "variable.name.ada" + }, + "2": { + "name": "punctuation.ada" + }, + "3": { + "patterns": [ + { + "include": "#subtype_mark" + } + ] + }, + "4": { + "name": "keyword.control.ada" + }, + "5": { + "name": "keyword.control.ada" + } + } + }, + { + "include": "#expression" + } + ] + }, + { + "include": "#statement" + } + ] + }, + "full_type_declaration": { + "patterns": [ + { + "include": "#task_type_declaration" + }, + { + "include": "#regular_type_declaration" + } + ] + }, + "function_body": { + "name": "meta.declaration.function.body.ada", + "begin": "(?i)\\b(overriding\\s+)?(function)\\s+(?:((?:\\w|\\d|\\.|_)+\\b)|(\".+\"))", + "end": "(?i)(?:\\b(end)\\s+(\\3|\\4)\\s*)?(;)", + "beginCaptures": { + "1": { + "name": "storage.visibility.ada" + }, + "2": { + "name": "keyword.ada" + }, + "3": { + "name": "entity.name.function.ada" + }, + "4": { + "patterns": [ + { + "include": "#string_literal" + } + ] + } + }, + "endCaptures": { + "1": { + "name": "keyword.ada" + }, + "2": { + "name": "entity.name.function.ada" + }, + "3": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "begin": "(?i)\\bbegin\\b", + "end": "(?i)(?=end)", + "beginCaptures": { + "0": { + "name": "keyword.ada" + } + }, + "patterns": [ + { + "include": "#handled_sequence_of_statements" + } + ] + }, + { + "include": "#aspect_specification" + }, + { + "include": "#result_profile" + }, + { + "include": "#subprogram_renaming_declaration" + }, + { + "include": "#parameter_profile" + }, + { + "name": "meta.function.body.spec_part.ada", + "begin": "(?i)\\bis\\b", + "beginCaptures": { + "0": { + "name": "keyword.ada" + } + }, + "end": "(?i)(?=(with|begin|;))", + "patterns": [ + { + "name": "meta.declaration.package.generic.ada", + "begin": "(?i)\\bnew\\b", + "beginCaptures": { + "0": { + "name": "keyword.operator.new.ada" + } + }, + "end": "(?=;)", + "patterns": [ + { + "match": "((?:\\w|\\d|\\.|_)+)", + "name": "entity.name.function.ada" + }, + { + "include": "#actual_parameter_part" + } + ] + }, + { + "name": "meta.declaration.function.abstract.ada", + "match": "(?i)\\babstract\\b", + "captures": { + "0": { + "name": "storage.modifier.ada" + } + } + }, + { + "include": "#declarative_item" + }, + { + "include": "#subprogram_renaming_declaration" + }, + { + "include": "#expression" + } + ] + } + ] + }, + "function_specification": { + "patterns": [ + { + "include": "#function_body" + } + ] + }, + "goto_statement": { + "name": "meta.statement.goto.ada", + "begin": "(?i)\\bgoto\\b", + "end": ";", + "beginCaptures": { + "0": { + "name": "keyword.control.goto.ada" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.ada" + } + }, + "patterns": [{}] + }, + "guard": { + "begin": "(?i)\\bwhen\\b", + "end": "=>", + "beginCaptures": { + "0": { + "name": "keyword.control.ada" + } + }, + "endCaptures": { + "0": { + "name": "keyword.other.ada" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + "handled_sequence_of_statements": { + "patterns": [ + { + "name": "meta.handler.exception.ada", + "begin": "(?i)\\bexception\\b", + "beginCaptures": { + "0": { + "name": "keyword.ada" + } + }, + "end": "(?i)\\b(?=end)\\b", + "patterns": [ + { + "begin": "(?i)\\bwhen\\b", + "end": "=>", + "beginCaptures": { + "0": { + "name": "keyword.ada" + } + }, + "endCaptures": { + "0": { + "name": "keyword.other.ada" + } + }, + "patterns": [ + { + "match": "\\b((?:\\w|\\d|\\.|_)+)\\s*(:)", + "captures": { + "1": { + "name": "variable.name.ada" + }, + "2": { + "name": "punctuation.ada" + } + } + }, + { + "match": "\\|", + "name": "punctuation.ada" + }, + { + "match": "(?i)\\bothers\\b", + "name": "keyword.ada" + }, + { + "match": "(?:\\w|\\d|\\.|_)+", + "name": "entity.name.exception.ada" + } + ] + }, + { + "include": "#statement" + } + ] + }, + { + "include": "#statement" + } + ] + }, + "highest_precedence_operator": { + "name": "keyword.operator.highest-precedence.ada", + "match": "(?i)(\\*\\*|\\babs\\b|\\bnot\\b)" + }, + "if_statement": { + "name": "meta.statement.if.ada", + "begin": "(?i)\\bif\\b", + "end": "(?i)\\b(end)\\s+(if)\\s*(;)", + "beginCaptures": { + "0": { + "name": "keyword.control.ada" + } + }, + "endCaptures": { + "1": { + "name": "keyword.control.ada" + }, + "2": { + "name": "keyword.control.ada" + }, + "3": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "begin": "(?i)\\belsif\\b", + "end": "(?i)(?:(?<!\\sand)\\s+(?=then))", + "beginCaptures": { + "0": { + "name": "keyword.control.ada" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "begin": "(?i)\\belse\\b", + "end": "(?i)(?=end)", + "beginCaptures": { + "0": { + "name": "keyword.control.ada" + } + }, + "patterns": [ + { + "include": "#statement" + } + ] + }, + { + "begin": "(?i)(?<=if)\\b", + "end": "(?i)(?:(?<!\\sand)\\s+(?=then))", + "endCaptures": { + "0": { + "name": "keyword.control.ada" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "begin": "(?i)\\bthen\\b", + "end": "(?i)(?=(elsif|else|end))", + "beginCaptures": { + "0": { + "name": "keyword.control.ada" + } + }, + "patterns": [ + { + "include": "#statement" + } + ] + } + ] + }, + "integer_type_definition": { + "name": "meta.declaration.type.definition.integer.ada", + "patterns": [ + { + "include": "#signed_integer_type_definition" + }, + { + "include": "#modular_type_definition" + } + ] + }, + "interface_type_definition": { + "name": "meta.declaration.type.definition.interface.ada", + "begin": "(?i)\\b(?:(limited|task|protected|synchronized)\\s+)?(interface)", + "end": "(?i)(?=(with|;))", + "beginCaptures": { + "1": { + "name": "storage.modifier.ada" + }, + "2": { + "name": "storage.modifier.ada" + } + }, + "patterns": [ + { + "name": "storage.modifier.ada", + "match": "(?i)\\band\\b" + }, + { + "include": "#subtype_mark" + } + ] + }, + "keyword": { + "patterns": [ + { + "name": "keyword.ada", + "match": "(?i)\\b(abort|abs|accept|all|and|at|begin|body|declare|delay|end|entry|exception|function|generic|in|is|mod|new|not|null|of|or|others|out|package|pragma|procedure|range|record|rem|renames|requeue|reverse|select|separate|some|subtype|then|type|use|when|with|xor)\\b" + }, + { + "name": "keyword.control.ada", + "match": "(?i)\\b(case|do|else|elsif|exit|for|goto|if|loop|raise|return|terminate|until|while)\\b" + }, + { + "name": "storage.modifier.ada", + "match": "(?i)\\b(abstract|access|aliased|array|constant|delta|digits|interface|limited|protected|synchronized|tagged|task)\\b" + }, + { + "name": "storage.visibility.ada", + "match": "(?i)\\b(private|overriding)\\b" + }, + { + "name": "keyword.modifier.unknown.ada", + "match": "<>" + }, + { + "name": "keyword.operator.arithmetic.ada", + "match": "(\\+|-|\\*|/)" + }, + { + "name": "keyword.operator.assignment.ada", + "match": ":=" + }, + { + "name": "keyword.operator.logic.ada", + "match": "(=|/=|<|>|<=|>=)" + }, + { + "name": "keyword.operator.concatenation.ada", + "match": "\\&" + } + ] + }, + "known_discriminant_part": { + "name": "meta.declaration.type.discriminant.ada", + "begin": "\\(", + "end": "\\)", + "captures": { + "0": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "name": "punctuation.ada", + "match": ";" + }, + { + "include": "#discriminant_specification" + } + ] + }, + "label": { + "name": "meta.label.ada", + "match": "(<<)?((?:\\w|\\d|_)+)\\s*(:[^=]|>>)", + "captures": { + "1": { + "name": "punctuation.label.ada" + }, + "2": { + "name": "entity.name.label.ada" + }, + "3": { + "name": "punctuation.label.ada" + } + } + }, + "library_unit": { + "name": "meta.library.unit.ada", + "patterns": [ + { + "include": "#package_body" + }, + { + "include": "#package_specification" + }, + { + "include": "#subprogram_body" + } + ] + }, + "loop_statement": { + "patterns": [ + { + "include": "#simple_loop_statement" + }, + { + "include": "#while_loop_statement" + }, + { + "include": "#for_loop_statement" + } + ] + }, + "modular_type_definition": { + "begin": "(?i)\\b(mod)\\b", + "end": "(?i)(?=(with|;))", + "beginCaptures": { + "1": { + "name": "storage.modifier.ada" + } + }, + "patterns": [ + { + "name": "keyword.modifier.unknown.ada", + "match": "<>" + }, + { + "include": "#expression" + } + ] + }, + "multiplying_operator": { + "name": "keyword.operator.multiplying.ada", + "match": "(?i)(\\*|/|\\bmod\\b|\\brem\\b)" + }, + "null_statement": { + "name": "meta.statement.null.ada", + "match": "(?i)\\b(null)\\s*(;)", + "captures": { + "1": { + "name": "keyword.ada" + }, + "2": { + "name": "punctuation.ada" + } + } + }, + "object_declaration": { + "name": "meta.declaration.object.ada", + "begin": "(?i)\\b((?:\\w|\\d|_)+(?:\\s*,\\s*(?:\\w|\\d|_)+)*)\\s*(:)", + "end": "(;)", + "beginCaptures": { + "1": { + "patterns": [ + { + "name": "punctuation.ada", + "match": "," + }, + { + "name": "variable.name.ada", + "match": "\\b(\\w|\\d|_)+\\b" + } + ] + }, + "2": { + "name": "punctuation.ada" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "begin": "(?<=:)", + "end": "(?:(?=;)|(:=)|(\\brenames\\b))", + "endCaptures": { + "1": { + "name": "keyword.operator.new.ada" + }, + "2": { + "name": "keyword.ada" + } + }, + "patterns": [ + { + "name": "storage.modifier.ada", + "match": "(?i)\\bconstant\\b" + }, + { + "name": "storage.visibility.ada", + "match": "(?i)\\baliased\\b" + }, + { + "include": "#aspect_specification" + }, + { + "include": "#subtype_mark" + } + ] + }, + { + "begin": "(?<=:=)", + "end": "(?=;)", + "patterns": [ + { + "include": "#aspect_specification" + }, + { + "include": "#expression" + } + ] + }, + { + "begin": "(?<=renames)", + "end": "(?=;)", + "patterns": [ + { + "include": "#aspect_specification" + } + ] + } + ] + }, + "operator": { + "patterns": [ + { + "include": "#highest_precedence_operator" + }, + { + "include": "#multiplying_operator" + }, + { + "include": "#adding_operator" + }, + { + "include": "#relational_operator" + }, + { + "include": "#logical_operator" + } + ] + }, + "package_body": { + "name": "meta.declaration.package.body.ada", + "begin": "(?i)\\b(package)\\s+(body)\\s+((?:\\w|\\d|\\.|_)+)\\b", + "end": "(?i)\\b(end)\\s+(\\3)\\s*(;)", + "beginCaptures": { + "1": { + "name": "keyword.ada" + }, + "2": { + "name": "keyword.ada" + }, + "3": { + "patterns": [ + { + "include": "#package_mark" + } + ] + } + }, + "endCaptures": { + "1": { + "name": "keyword.ada" + }, + "2": { + "patterns": [ + { + "include": "#package_mark" + } + ] + }, + "3": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "begin": "(?i)\\bbegin\\b", + "beginCaptures": { + "0": { + "name": "keyword.ada" + } + }, + "end": "(?i)\\b(?=end)\\b", + "patterns": [ + { + "include": "#handled_sequence_of_statements" + } + ] + }, + { + "begin": "(?i)\\bis\\b", + "beginCaptures": { + "0": { + "name": "keyword.ada" + } + }, + "end": "(?i)(?=(\\bbegin\\b|\\bend\\b))", + "patterns": [ + { + "match": "(?i)\\bprivate\\b", + "name": "keyword.ada" + }, + { + "include": "#declarative_item" + }, + { + "include": "#comment" + } + ] + }, + { + "include": "#aspect_specification" + } + ] + }, + "package_declaration": { + "patterns": [ + { + "include": "#package_specification" + } + ] + }, + "package_mark": { + "name": "entity.name.package.ada", + "match": "\\b(\\w|\\d|\\.|_)+\\b" + }, + "package_specification": { + "name": "meta.declaration.package.specification.ada", + "begin": "(?i)\\b(package)\\s+((?:\\w|\\d|\\.|_)+)\\b", + "end": "(?i)(?:\\b(end)\\s+(\\2)\\s*)?(;)", + "beginCaptures": { + "1": { + "name": "keyword.ada" + }, + "2": { + "patterns": [ + { + "include": "#package_mark" + } + ] + } + }, + "endCaptures": { + "1": { + "name": "keyword.ada" + }, + "2": { + "patterns": [ + { + "include": "#package_mark" + } + ] + }, + "3": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "begin": "(?i)\\bis\\b", + "beginCaptures": { + "0": { + "name": "keyword.ada" + } + }, + "end": "(?=(end|;))", + "patterns": [ + { + "name": "meta.declaration.package.generic.ada", + "begin": "(?i)\\bnew\\b", + "beginCaptures": { + "0": { + "name": "keyword.operator.new.ada" + } + }, + "end": "(?=;)", + "patterns": [ + { + "include": "#package_mark" + }, + { + "include": "#actual_parameter_part" + } + ] + }, + { + "match": "(?i)\\bprivate\\b", + "name": "keyword.ada" + }, + { + "include": "#basic_declarative_item" + }, + { + "include": "#comment" + } + ] + }, + { + "include": "#aspect_specification" + } + ] + }, + "parameter_association": { + "patterns": [ + { + "match": "((?:\\w|\\d|_)+)\\s*(=>)", + "captures": { + "1": { + "name": "variable.parameter.ada" + }, + "2": { + "name": "keyword.other.ada" + } + } + }, + { + "include": "#expression" + } + ] + }, + "parameter_profile": { + "begin": "\\(", + "end": "\\)", + "captures": { + "0": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "name": "punctuation.ada", + "match": ";" + }, + { + "include": "#parameter_specification" + } + ] + }, + "parameter_specification": { + "patterns": [ + { + "name": "meta.type.annotation.ada", + "begin": ":(?!=)", + "end": "(?=[:;)])", + "beginCaptures": { + "0": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "name": "keyword.ada", + "match": "(?i)\\b(in|out)\\b" + }, + { + "include": "#subtype_mark" + } + ] + }, + { + "begin": ":=", + "end": "(?=[:;)])", + "beginCaptures": { + "0": { + "name": "keyword.operator.new.ada" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "name": "punctuation.ada", + "match": "," + }, + { + "name": "variable.parameter.ada", + "match": "\\b(?:\\w|\\d|\\.|_)+\\b" + }, + { + "include": "#comment" + } + ] + }, + "pragma": { + "name": "meta.pragma.ada", + "begin": "(?i)\\b(pragma)\\s+((?:\\w|\\d|_)+)\\b", + "end": "(;)", + "beginCaptures": { + "1": { + "name": "keyword.ada" + }, + "2": { + "name": "keyword.control.directive.ada" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + "preprocessor": { + "name": "meta.preprocessor.ada", + "patterns": [ + { + "match": "^\\s*(#)(if|elsif)\\s+(.*)$", + "captures": { + "1": { + "name": "punctuation.definition.directive.ada" + }, + "2": { + "name": "keyword.control.directive.conditional.ada" + }, + "3": { + "patterns": [ + { + "include": "#expression" + } + ] + } + } + }, + { + "match": "^\\s*(#)(end if)(;)", + "captures": { + "1": { + "name": "punctuation.definition.directive.ada" + }, + "2": { + "name": "keyword.control.directive.conditional" + }, + "3": { + "name": "punctuation.ada" + } + } + }, + { + "match": "^\\s*(#)(else)", + "captures": { + "1": { + "name": "punctuation.definition.directive.ada" + }, + "2": { + "name": "keyword.control.directive.conditional" + } + } + } + ] + }, + "procedure_body": { + "name": "meta.declaration.procedure.body.ada", + "begin": "(?i)\\b(overriding\\s+)?(procedure)\\s+((?:\\w|\\d|\\.|_)+)\\b", + "end": "(?i)(?:\\b(end)\\s+(\\3)\\s*)?(;)", + "beginCaptures": { + "1": { + "name": "storage.visibility.ada" + }, + "2": { + "name": "keyword.ada" + }, + "3": { + "name": "entity.name.function.ada" + } + }, + "endCaptures": { + "1": { + "name": "keyword.ada" + }, + "2": { + "name": "entity.name.function.ada" + }, + "3": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "begin": "(?i)\\bis\\b", + "end": "(?i)(?=(with|begin|;))", + "beginCaptures": { + "0": { + "name": "keyword.ada" + } + }, + "patterns": [ + { + "name": "meta.declaration.package.generic.ada", + "begin": "(?i)\\bnew\\b", + "beginCaptures": { + "0": { + "name": "keyword.operator.new.ada" + } + }, + "end": "(?=;)", + "patterns": [ + { + "match": "((?:\\w|\\d|\\.|_)+)", + "name": "entity.name.function.ada" + }, + { + "include": "#actual_parameter_part" + } + ] + }, + { + "match": "(?i)\\b(null|abstract)\\b", + "name": "storage.modifier.ada" + }, + { + "include": "#declarative_item" + } + ] + }, + { + "begin": "(?i)\\bbegin\\b", + "end": "(?i)(?=\\bend\\b)", + "beginCaptures": { + "0": { + "name": "keyword.ada" + } + }, + "patterns": [ + { + "include": "#handled_sequence_of_statements" + } + ] + }, + { + "include": "#subprogram_renaming_declaration" + }, + { + "include": "#aspect_specification" + }, + { + "include": "#parameter_profile" + }, + { + "include": "#comment" + } + ] + }, + "procedure_call_statement": { + "name": "meta.statement.call.ada", + "begin": "(?i)\\b((?:\\w|\\d|_|\\.)+)\\b", + "end": ";", + "beginCaptures": { + "1": { + "name": "entity.name.function.ada" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "include": "#attribute" + }, + { + "include": "#actual_parameter_part" + }, + { + "include": "#comment" + } + ] + }, + "procedure_specification": { + "patterns": [ + { + "include": "#procedure_body" + } + ] + }, + "protected_body": { + "name": "meta.declaration.procedure.body.ada", + "begin": "(?i)\\b(protected)\\s+(body)\\s+((?:\\w|\\d|\\.|_)+)\\b", + "end": "(?i)(?:\\b(end)\\s*(\\s\\3)\\s*)(;)", + "beginCaptures": { + "1": { + "name": "storage.modifier.ada" + }, + "2": { + "name": "keyword.ada" + }, + "3": { + "name": "entity.name.body.ada" + } + }, + "endCaptures": { + "1": { + "name": "keyword.ada" + }, + "2": { + "name": "entity.name.body.ada" + }, + "3": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "begin": "(?i)\\bis\\b", + "end": "(?i)\\b(?=end)\\b", + "beginCaptures": { + "0": { + "name": "keyword.ada" + } + }, + "patterns": [ + { + "include": "#protected_operation_item" + } + ] + } + ] + }, + "protected_element_declaration": { + "patterns": [ + { + "include": "#subprogram_specification" + }, + { + "include": "#aspect_clause" + }, + { + "include": "#entry_declaration" + }, + { + "include": "#component_declaration" + }, + { + "include": "#pragma" + } + ] + }, + "protected_operation_item": { + "patterns": [ + { + "include": "#subprogram_specification" + }, + { + "include": "#subprogram_body" + }, + { + "include": "#aspect_clause" + }, + { + "include": "#entry_body" + } + ] + }, + "positional_array_aggregate": { + "name": "meta.definition.array.aggregate.positional.ada", + "patterns": [ + { + "match": "(?i)\\b(others)\\s*(=>)\\s*([^,\\)]+)", + "captures": { + "1": { + "name": "keyword.ada" + }, + "2": { + "name": "keyword.other.ada" + }, + "3": { + "patterns": [ + { + "name": "keyword.modifier.unknown.ada", + "match": "<>" + }, + { + "include": "#expression" + } + ] + } + } + }, + { + "include": "#expression" + } + ] + }, + "raise_statement": { + "name": "meta.statement.raise.ada", + "begin": "(?i)\\braise\\b", + "end": ";", + "beginCaptures": { + "0": { + "name": "keyword.control.ada" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "begin": "(?i)\\bwith\\b", + "end": "(?=;)", + "beginCaptures": { + "0": { + "name": "keyword.control.ada" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "name": "entity.name.exception.ada", + "match": "\\b(\\w|\\d|\\.|_)+\\b" + } + ] + }, + "raise_expression": { + "name": "meta.expression.raise.ada", + "begin": "(?i)\\braise\\b", + "end": "(?=;)", + "beginCaptures": { + "0": { + "name": "keyword.control.ada" + } + }, + "patterns": [ + { + "begin": "(?i)\\bwith\\b", + "end": "(?=(;|\\))", + "beginCaptures": { + "0": { + "name": "keyword.ada" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "name": "entity.name.exception.ada", + "match": "\\b(\\w|\\d|_)+\\b" + } + ] + }, + "range_constraint": { + "begin": "(?i)\\brange\\b", + "end": "(?=(\\bwith\\b|;))", + "beginCaptures": { + "0": { + "name": "storage.modifier.ada" + } + }, + "patterns": [ + { + "name": "keyword.ada", + "match": "\\.\\." + }, + { + "name": "keyword.modifier.unknown.ada", + "match": "<>" + }, + { + "include": "#expression" + } + ] + }, + "relational_operator": { + "name": "keyword.operator.relational.ada", + "match": "(=|/=|<|<=|>|>=)" + }, + "record_representation_clause": { + "name": "meta.aspect.clause.record.representation.ada", + "begin": "(?i)\\b(record)\\b", + "end": "(?i)\\b(end)\\s+(record)\\b", + "beginCaptures": { + "1": { + "name": "storage.modifier.ada" + } + }, + "endCaptures": { + "1": { + "name": "keyword.ada" + }, + "2": { + "name": "storage.modifier.ada" + } + }, + "patterns": [ + { + "include": "#component_clause" + }, + { + "include": "#comment" + } + ] + }, + "real_type_definition": { + "name": "meta.declaration.type.definition.real-type.ada", + "patterns": [ + { + "include": "#scalar_constraint" + } + ] + }, + "record_type_definition": { + "patterns": [ + { + "name": "meta.declaration.type.definition.record.null.ada", + "match": "(?i)\\b(?:(abstract)\\s+)?(?:(tagged)\\s+)?(?:(limited)\\s+)?(null)\\s+(record)\\b", + "captures": { + "1": { + "name": "storage.modifier.ada" + }, + "2": { + "name": "storage.modifier.ada" + }, + "3": { + "name": "storage.modifier.ada" + }, + "4": { + "name": "storage.modifier.ada" + }, + "5": { + "name": "storage.modifier.ada" + } + }, + "patterns": [ + { + "include": "#component_item" + } + ] + }, + { + "name": "meta.declaration.type.definition.record.ada", + "begin": "(?i)\\b(?:(abstract)\\s+)?(?:(tagged)\\s+)?(?:(limited)\\s+)?(record)\\b", + "end": "(?i)\\b(end)\\s+(record)\\b", + "beginCaptures": { + "1": { + "name": "storage.modifier.ada" + }, + "2": { + "name": "storage.modifier.ada" + }, + "3": { + "name": "storage.modifier.ada" + }, + "4": { + "name": "storage.modifier.ada" + } + }, + "endCaptures": { + "1": { + "name": "keyword.ada" + }, + "2": { + "name": "storage.modifier.ada" + } + }, + "patterns": [ + { + "include": "#component_item" + } + ] + } + ] + }, + "regular_type_declaration": { + "name": "meta.declaration.type.definition.regular.ada", + "begin": "(?i)\\b(type)\\b", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.ada" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "begin": "(?i)\\bis\\b", + "end": "(?i)(?=(with(?!\\s+(private))|;))", + "beginCaptures": { + "0": { + "name": "keyword.ada" + } + }, + "patterns": [ + { + "include": "#type_definition" + } + ] + }, + { + "begin": "(?i)\\b(?<=type)\\b", + "end": "(?i)(?=(is|;))", + "patterns": [ + { + "include": "#known_discriminant_part" + }, + { + "include": "#subtype_mark" + } + ] + }, + { + "include": "#aspect_specification" + } + ] + }, + "requeue_statement": { + "name": "meta.statement.requeue.ada", + "begin": "(?i)\\brequeue\\b", + "end": ";", + "beginCaptures": { + "0": { + "name": "keyword.control.ada" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "name": "keyword.control.ada", + "match": "(?i)\\b(with|abort)\\b" + }, + { + "name": "entity.name.function.ada", + "match": "\\b(\\w|\\d|\\.|_)+\\b" + } + ] + }, + "result_profile": { + "begin": "(?i)\\breturn\\b", + "end": "(?=(is|with|renames|;))", + "beginCaptures": { + "0": { + "name": "keyword.ada" + } + }, + "patterns": [ + { + "include": "#subtype_mark" + } + ] + }, + "return_statement": { + "name": "meta.statement.return.ada", + "begin": "(?i)\\breturn\\b", + "end": ";", + "beginCaptures": { + "0": { + "name": "keyword.control.ada" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "begin": "(?i)\\bdo\\b", + "end": "(?i)\\b(end)\\s+(return)\\s*(?=;)", + "beginCaptures": { + "0": { + "name": "keyword.control.ada" + } + }, + "endCaptures": { + "1": { + "name": "keyword.control.ada" + }, + "2": { + "name": "keyword.control.ada" + } + }, + "patterns": [ + { + "include": "#label" + }, + { + "include": "#statement" + } + ] + }, + { + "match": "\\b((?:\\w|\\d|_)+)\\s*(:)\\s*((?:\\w|\\d|\\.|_)+)\\b", + "captures": { + "1": { + "name": "variable.name.ada" + }, + "2": { + "name": "punctuation.ada" + }, + "3": { + "name": "entity.name.type.ada" + } + } + }, + { + "match": ":=", + "name": "keyword.operator.new.ada" + }, + { + "include": "#expression" + } + ] + }, + "scalar_constraint": { + "name": "meta.declaration.constraint.scalar.ada", + "patterns": [ + { + "begin": "(?i)\\b(digits|delta)\\b", + "end": "(?i)(?=\\brange\\b|\\bdigits\\b|\\bwith\\b|;)", + "beginCaptures": { + "1": { + "name": "storage.modifier.ada" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "include": "#range_constraint" + }, + { + "include": "#expression" + } + ] + }, + "select_alternative": { + "patterns": [ + { + "begin": "(?i)\\bterminate\\b", + "end": ";", + "beginCaptures": { + "0": { + "name": "keyword.control.ada" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.ada" + } + } + }, + { + "include": "#statement" + } + ] + }, + "select_statement": { + "name": "meta.statement.select.ada", + "begin": "(?i)\\bselect\\b", + "end": "(?i)\\b(end)\\s+(select)\\b", + "beginCaptures": { + "0": { + "name": "keyword.control.ada" + } + }, + "endCaptures": { + "1": { + "name": "keyword.control.ada" + }, + "2": { + "name": "keyword.control.ada" + } + }, + "patterns": [ + { + "begin": "(?i)\\b(?:(or)|(?<=select))\\b", + "end": "(?i)\\b(?=(or|else|end))\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.ada" + } + }, + "patterns": [ + { + "include": "#guard" + }, + { + "include": "#select_alternative" + } + ] + }, + { + "begin": "(?i)\\belse\\b", + "end": "(?i)\\b(?=end)\\b", + "beginCaptures": { + "0": { + "name": "keyword.control.ada" + } + }, + "patterns": [ + { + "include": "#statement" + } + ] + } + ] + }, + "signed_integer_type_definition": { + "patterns": [ + { + "include": "#range_constraint" + } + ] + }, + "simple_loop_statement": { + "name": "meta.statement.loop.ada", + "begin": "(?i)\\bloop\\b", + "end": "(?i)\\b(end)\\s+(loop)(\\s+(?:\\w|\\d|_)+)?\\s*(;)", + "beginCaptures": { + "0": { + "name": "keyword.control.ada" + } + }, + "endCaptures": { + "1": { + "name": "keyword.control.ada" + }, + "2": { + "name": "keyword.control.ada" + }, + "3": { + "name": "entity.name.label.ada" + }, + "4": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "include": "#statement" + } + ] + }, + "single_protected_declaration": { + "name": "meta.declaration.protected.ada", + "begin": "(?i)\\b(protected)\\s+((?:\\w|\\d|_)+)\\b", + "end": "(?i)(?:\\b(end)\\s*(\\s\\2)?\\s*)?(;)", + "beginCaptures": { + "1": { + "name": "keyword.ada" + }, + "2": { + "name": "entity.name.protected.ada" + } + }, + "endCaptures": { + "1": { + "name": "keyword.ada" + }, + "2": { + "name": "entity.name.protected.ada" + }, + "3": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "begin": "(?i)\\bis\\b", + "end": "(?i)(?=(\\bend\\b|;))", + "beginCaptures": { + "0": { + "name": "keyword.ada" + } + }, + "patterns": [ + { + "begin": "(?i)\\bnew\\b", + "end": "(?i)\\bwith\\b", + "captures": { + "0": { + "name": "keyword.ada" + } + }, + "patterns": [ + { + "match": "(?i)\\band\\b", + "name": "keyword.ada" + }, + { + "include": "#subtype_mark" + }, + { + "include": "#comment" + } + ] + }, + { + "match": "(?i)\\bprivate\\b", + "name": "keyword.ada" + }, + { + "include": "#protected_element_declaration" + }, + { + "include": "#comment" + } + ] + }, + { + "include": "#comment" + } + ] + }, + "single_task_declaration": { + "begin": "(?i)\\b(task)\\s+((?:\\w|\\d|_)+)\\b", + "end": "(?i)(?:\\b(end)\\s*(\\s\\2)?\\s*)?(;)", + "beginCaptures": { + "1": { + "name": "keyword.ada" + }, + "2": { + "name": "entity.name.task.ada" + } + }, + "endCaptures": { + "1": { + "name": "keyword.ada" + }, + "2": { + "name": "entity.name.task.ada" + }, + "3": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "begin": "(?i)\\bis\\b", + "beginCaptures": { + "0": { + "name": "keyword.ada" + } + }, + "end": "(?i)\\b(?=end)\\b", + "patterns": [ + { + "begin": "(?i)\\bnew\\b", + "end": "(?i)\\bwith\\b", + "captures": { + "0": { + "name": "keyword.ada" + } + }, + "patterns": [ + { + "match": "(?i)\\band\\b", + "name": "keyword.ada" + }, + { + "include": "#subtype_mark" + }, + { + "include": "#comment" + } + ] + }, + { + "match": "(?i)\\bprivate\\b", + "name": "keyword.ada" + }, + { + "include": "#task_item" + }, + { + "include": "#comment" + } + ] + }, + { + "include": "#comment" + } + ] + }, + "statement": { + "patterns": [ + { + "begin": "(?i)\\bbegin\\b", + "end": "(?i)\\b(end)\\s*(;)", + "beginCaptures": { + "0": { + "name": "keyword.ada" + } + }, + "endCaptures": { + "1": { + "name": "keyword.ada" + }, + "2": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "include": "#handled_sequence_of_statements" + } + ] + }, + { + "include": "#label" + }, + { + "include": "#null_statement" + }, + { + "include": "#return_statement" + }, + { + "include": "#assignment_statement" + }, + { + "include": "#exit_statement" + }, + { + "include": "#goto_statement" + }, + { + "include": "#requeue_statement" + }, + { + "include": "#delay_statement" + }, + { + "include": "#abort_statement" + }, + { + "include": "#raise_statement" + }, + { + "include": "#if_statement" + }, + { + "include": "#case_statement" + }, + { + "include": "#loop_statement" + }, + { + "include": "#block_statement" + }, + { + "include": "#select_statement" + }, + { + "include": "#accept_statement" + }, + { + "include": "#pragma" + }, + { + "include": "#procedure_call_statement" + }, + { + "include": "#comment" + } + ] + }, + "string_literal": { + "name": "string.quoted.double.ada", + "match": "(\").*?(\")", + "captures": { + "1": { + "name": "punctuation.definition.string.ada" + }, + "2": { + "name": "punctuation.definition.string.ada" + } + } + }, + "subprogram_body": { + "name": "meta.declaration.subprogram.body.ada", + "patterns": [ + { + "include": "#procedure_body" + }, + { + "include": "#function_body" + } + ] + }, + "subprogram_renaming_declaration": { + "begin": "(?i)\\brenames\\b", + "end": "(?=(with|;))", + "beginCaptures": { + "0": { + "name": "keyword.ada" + } + }, + "patterns": [ + { + "match": "(?:\\w|\\d|_|\\.)+", + "name": "entity.name.function.ada" + } + ] + }, + "subprogram_specification": { + "name": "meta.declaration.subprogram.specification.ada", + "patterns": [ + { + "include": "#procedure_specification" + }, + { + "include": "#function_specification" + } + ] + }, + "subtype_declaration": { + "name": "meta.declaration.subtype.ada", + "begin": "(?i)\\bsubtype\\b", + "end": ";", + "beginCaptures": { + "0": { + "name": "keyword.ada" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "begin": "(?i)\\bis\\b", + "beginCaptures": { + "0": { + "name": "keyword.ada" + } + }, + "end": "(?=;)", + "patterns": [ + { + "name": "storage.modifier.ada", + "match": "(?i)\\b(not\\s+null)\\b" + }, + { + "include": "#composite_constraint" + }, + { + "include": "#aspect_specification" + }, + { + "include": "#subtype_indication" + } + ] + }, + { + "begin": "(?i)(?<=subtype)", + "end": "(?i)\\b(?=is)\\b", + "patterns": [ + { + "include": "#subtype_mark" + } + ] + } + ] + }, + "subtype_indication": { + "name": "meta.declaration.indication.subtype.ada", + "patterns": [ + { + "include": "#scalar_constraint" + }, + { + "include": "#subtype_mark" + } + ] + }, + "subtype_mark": { + "patterns": [ + { + "name": "storage.visibility.ada", + "match": "(?i)\\b(access|aliased|not\\s+null|constant)\\b" + }, + { + "include": "#attribute" + }, + { + "include": "#actual_parameter_part" + }, + { + "begin": "(?i)\\b(procedure|function)\\b", + "beginCaptures": { + "0": { + "name": "keyword.ada" + } + }, + "end": "(?=(;|\\)))", + "patterns": [ + { + "include": "#parameter_profile" + }, + { + "begin": "(?i)\\breturn\\b", + "end": "(?=(;|\\)))", + "beginCaptures": { + "0": { + "name": "keyword.ada" + } + }, + "patterns": [ + { + "include": "#subtype_mark" + } + ] + } + ] + }, + { + "name": "entity.name.type.ada", + "match": "\\b(?:\\w|\\d|\\.|_)+\\b", + "captures": { + "0": { + "patterns": [ + { + "name": "punctuation.ada", + "match": "[_.]" + } + ] + } + } + }, + { + "include": "#comment" + } + ] + }, + "task_body": { + "name": "meta.declaration.task.body.ada", + "begin": "(?i)\\b(task)\\s+(body)\\s+((\\w|\\d|\\.|_)+)\\b", + "end": "(?i)(?:\\b(end)\\s*(?:\\s(\\3))?\\s*)?(;)", + "beginCaptures": { + "1": { + "name": "keyword.ada" + }, + "2": { + "name": "keyword.ada" + }, + "3": { + "name": "entity.name.task.ada" + } + }, + "endCaptures": { + "1": { + "name": "keyword.ada" + }, + "2": { + "name": "entity.name.task.ada" + }, + "3": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "begin": "(?i)\\bbegin\\b", + "end": "(?i)(?=end)", + "beginCaptures": { + "0": { + "name": "keyword.ada" + } + }, + "patterns": [ + { + "include": "#handled_sequence_of_statements" + } + ] + }, + { + "include": "#aspect_specification" + }, + { + "begin": "(?i)\\bis\\b", + "beginCaptures": { + "0": { + "name": "keyword.ada" + } + }, + "end": "(?i)(?=(with|begin))", + "patterns": [ + { + "include": "#declarative_item" + } + ] + } + ] + }, + "task_item": { + "patterns": [ + { + "include": "#aspect_clause" + }, + { + "include": "#entry_declaration" + } + ] + }, + "task_type_declaration": { + "name": "meta.declaration.type.task.ada", + "begin": "(?i)\\b(task)\\s+(type)\\s+((\\w|\\d|\\.|_)+)\\b", + "end": "(?i)(?:\\b(end)\\s*(?:\\s(\\3))?\\s*)?(;)", + "beginCaptures": { + "1": { + "name": "storage.modifier.ada" + }, + "2": { + "name": "keyword.ada" + }, + "3": { + "name": "entity.name.task.ada" + } + }, + "endCaptures": { + "1": { + "name": "keyword.ada" + }, + "2": { + "name": "entity.name.task.ada" + }, + "3": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "include": "#known_discriminant_part" + }, + { + "begin": "(?i)\\bis\\b", + "beginCaptures": { + "0": { + "name": "keyword.ada" + } + }, + "end": "(?i)\\b(?=end)\\b", + "patterns": [ + { + "begin": "(?i)\\bnew\\b", + "end": "(?i)\\bwith\\b", + "captures": { + "0": { + "name": "keyword.ada" + } + }, + "patterns": [ + { + "match": "(?i)\\band\\b", + "name": "keyword.ada" + }, + { + "include": "#subtype_mark" + }, + { + "include": "#comment" + } + ] + }, + { + "match": "(?i)\\bprivate\\b", + "name": "keyword.ada" + }, + { + "include": "#task_item" + }, + { + "include": "#comment" + } + ] + }, + { + "include": "#comment" + } + ] + }, + "type_declaration": { + "name": "meta.declaration.type.ada", + "patterns": [ + { + "include": "#full_type_declaration" + } + ] + }, + "type_definition": { + "name": "meta.declaration.type.definition.ada", + "patterns": [ + { + "include": "#enumeration_type_definition" + }, + { + "include": "#integer_type_definition" + }, + { + "include": "#real_type_definition" + }, + { + "include": "#array_type_definition" + }, + { + "include": "#record_type_definition" + }, + { + "include": "#access_type_definition" + }, + { + "include": "#interface_type_definition" + }, + { + "include": "#derived_type_definition" + } + ] + }, + "use_clause": { + "name": "meta.context.use.ada", + "patterns": [ + { + "include": "#use_type_clause" + }, + { + "include": "#use_package_clause" + } + ] + }, + "use_package_clause": { + "name": "meta.context.use.package.ada", + "begin": "(?i)\\buse\\b", + "end": ";", + "beginCaptures": { + "0": { + "name": "keyword.other.using.ada" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "name": "punctuation.ada", + "match": "," + }, + { + "include": "#package_mark" + } + ] + }, + "use_type_clause": { + "name": "meta.context.use.type.ada", + "begin": "(?i)\\b(use)\\s+(?:(all)\\s+)?(type)\\b", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.other.using.ada" + }, + "2": { + "name": "keyword.modifier.ada" + }, + "3": { + "name": "keyword.modifier.ada" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "name": "punctuation.ada", + "match": "," + }, + { + "include": "#subtype_mark" + } + ] + }, + "value": { + "patterns": [ + { + "include": "#based_literal" + }, + { + "include": "#decimal_literal" + }, + { + "include": "#character_literal" + }, + { + "include": "#string_literal" + } + ] + }, + "variant_part": { + "name": "meta.declaration.variant.ada", + "begin": "(?i)\\bcase\\b", + "end": "(?i)\\b(end)\\s+(case);", + "beginCaptures": { + "0": { + "name": "keyword.ada" + } + }, + "endCaptures": { + "1": { + "name": "keyword.ada" + }, + "2": { + "name": "keyword.ada" + }, + "3": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "begin": "(?i)\\b(?<=case)\\b", + "end": "(?i)\\bis\\b", + "endCaptures": { + "0": { + "name": "keyword.ada" + } + }, + "patterns": [ + { + "match": "(?:\\w|\\d|_)+", + "name": "variable.name.ada" + }, + { + "include": "#comment" + } + ] + }, + { + "begin": "(?i)\\b(?<=is)\\b", + "end": "(?i)\\b(?=end)\\b", + "patterns": [ + { + "begin": "(?i)\\bwhen\\b", + "end": "=>", + "beginCaptures": { + "0": { + "name": "keyword.ada" + } + }, + "endCaptures": { + "0": { + "name": "keyword.other.ada" + } + }, + "patterns": [ + { + "match": "\\|", + "name": "punctuation.ada" + }, + { + "match": "(?i)\\bothers\\b", + "name": "keyword.ada" + }, + { + "include": "#expression" + } + ] + }, + { + "include": "#component_item" + } + ] + } + ] + }, + "while_loop_statement": { + "name": "meta.statement.loop.while.ada", + "begin": "(?i)\\bwhile\\b", + "end": "(?i)\\b(end)\\s+(loop)(\\s+(?:\\w|\\d|_)+)?\\s*(;)", + "beginCaptures": { + "0": { + "name": "keyword.control.ada" + } + }, + "endCaptures": { + "1": { + "name": "keyword.control.ada" + }, + "2": { + "name": "keyword.control.ada" + }, + "3": { + "name": "entity.name.label.ada" + }, + "4": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "begin": "(?i)(?<=while)\\b", + "end": "(?i)\\bloop\\b", + "endCaptures": { + "0": { + "name": "keyword.control.ada" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "include": "#statement" + } + ] + }, + "with_clause": { + "name": "meta.context.with.ada", + "begin": "(?i)\\b(?:(limited)\\s+)?(?:(private)\\s+)?(with)\\b", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.modifier.ada" + }, + "2": { + "name": "storage.visibility.ada" + }, + "3": { + "name": "keyword.other.using.ada" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.ada" + } + }, + "patterns": [ + { + "name": "punctuation.ada", + "match": "," + }, + { + "include": "#package_mark" + } + ] + } + }, + "scopeName": "source.ada" +} diff --git a/docs/shiki/languages/apache.tmLanguage.json b/docs/shiki/languages/apache.tmLanguage.json new file mode 100644 index 00000000..0ed19546 --- /dev/null +++ b/docs/shiki/languages/apache.tmLanguage.json @@ -0,0 +1,562 @@ +{ + "fileTypes": [ + "conf", + "CONF", + "envvars", + "htaccess", + "HTACCESS", + "htgroups", + "HTGROUPS", + "htpasswd", + "HTPASSWD", + ".htaccess", + ".HTACCESS", + ".htgroups", + ".HTGROUPS", + ".htpasswd", + ".HTPASSWD" + ], + "name": "apache", + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.comment.apacheconf" + } + }, + "match": "^(\\s)*(#).*$\\n?", + "name": "comment.line.hash.ini" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.tag.apacheconf" + }, + "2": { + "name": "entity.tag.apacheconf" + }, + "4": { + "name": "string.value.apacheconf" + }, + "5": { + "name": "punctuation.definition.tag.apacheconf" + } + }, + "match": "(<)(Proxy|ProxyMatch|IfVersion|Directory|DirectoryMatch|Files|FilesMatch|IfDefine|IfModule|Limit|LimitExcept|Location|LocationMatch|VirtualHost|Macro|If|Else|ElseIf)(\\s(.+?))?(>)" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.tag.apacheconf" + }, + "2": { + "name": "entity.tag.apacheconf" + }, + "3": { + "name": "punctuation.definition.tag.apacheconf" + } + }, + "match": "(</)(Proxy|ProxyMatch|IfVersion|Directory|DirectoryMatch|Files|FilesMatch|IfDefine|IfModule|Limit|LimitExcept|Location|LocationMatch|VirtualHost|Macro|If|Else|ElseIf)(>)" + }, + { + "captures": { + "3": { + "name": "string.regexp.apacheconf" + }, + "4": { + "name": "string.replacement.apacheconf" + } + }, + "match": "(?<=(Rewrite(Rule|Cond)))\\s+(.+?)\\s+(.+?)($|\\s)" + }, + { + "captures": { + "2": { + "name": "entity.status.apacheconf" + }, + "3": { + "name": "string.regexp.apacheconf" + }, + "5": { + "name": "string.path.apacheconf" + } + }, + "match": "(?<=RedirectMatch)(\\s+(\\d\\d\\d|permanent|temp|seeother|gone))?\\s+(.+?)\\s+((.+?)($|\\s))?" + }, + { + "captures": { + "2": { + "name": "entity.status.apacheconf" + }, + "3": { + "name": "string.path.apacheconf" + }, + "5": { + "name": "string.path.apacheconf" + } + }, + "match": "(?<=Redirect)(\\s+(\\d\\d\\d|permanent|temp|seeother|gone))?\\s+(.+?)\\s+((.+?)($|\\s))?" + }, + { + "captures": { + "1": { + "name": "string.regexp.apacheconf" + }, + "3": { + "name": "string.path.apacheconf" + } + }, + "match": "(?<=ScriptAliasMatch|AliasMatch)\\s+(.+?)\\s+((.+?)\\s)?" + }, + { + "captures": { + "1": { + "name": "string.path.apacheconf" + }, + "3": { + "name": "string.path.apacheconf" + } + }, + "match": "(?<=RedirectPermanent|RedirectTemp|ScriptAlias|Alias)\\s+(.+?)\\s+((.+?)($|\\s))?" + }, + { + "captures": { + "1": { + "name": "keyword.core.apacheconf" + } + }, + "match": "\\b(AcceptPathInfo|AccessFileName|AddDefaultCharset|AddOutputFilterByType|AllowEncodedSlashes|AllowOverride|AuthName|AuthType|CGIMapExtension|ContentDigest|DefaultType|Define|DocumentRoot|EnableMMAP|EnableSendfile|ErrorDocument|ErrorLog|FileETag|ForceType|HostnameLookups|IdentityCheck|Include(Optional)?|KeepAlive|KeepAliveTimeout|LimitInternalRecursion|LimitRequestBody|LimitRequestFields|LimitRequestFieldSize|LimitRequestLine|LimitXMLRequestBody|LogLevel|MaxKeepAliveRequests|Mutex|NameVirtualHost|Options|Require|RLimitCPU|RLimitMEM|RLimitNPROC|Satisfy|ScriptInterpreterSource|ServerAdmin|ServerAlias|ServerName|ServerPath|ServerRoot|ServerSignature|ServerTokens|SetHandler|SetInputFilter|SetOutputFilter|Time(O|o)ut|TraceEnable|UseCanonicalName|Use|ErrorLogFormat|GlobalLog|PHPIniDir|SSLHonorCipherOrder|SSLCompression|SSLUseStapling|SSLStapling\\w+|SSLCARevocationCheck|SSLSRPVerifierFile|SSLSessionTickets|RequestReadTimeout|ProxyHTML\\w+|MaxRanges)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.mpm.apacheconf" + } + }, + "match": "\\b(AcceptMutex|AssignUserID|BS2000Account|ChildPerUserID|CoreDumpDirectory|EnableExceptionHook|Group|Listen|ListenBacklog|LockFile|MaxClients|MaxConnectionsPerChild|MaxMemFree|MaxRequestsPerChild|MaxRequestsPerThread|MaxRequestWorkers|MaxSpareServers|MaxSpareThreads|MaxThreads|MaxThreadsPerChild|MinSpareServers|MinSpareThreads|NumServers|PidFile|ReceiveBufferSize|ScoreBoardFile|SendBufferSize|ServerLimit|StartServers|StartThreads|ThreadLimit|ThreadsPerChild|ThreadStackSize|User|Win32DisableAcceptEx)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.access.apacheconf" + } + }, + "match": "\\b(Allow|Deny|Order)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.actions.apacheconf" + } + }, + "match": "\\b(Action|Script)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.alias.apacheconf" + } + }, + "match": "\\b(Alias|AliasMatch|Redirect|RedirectMatch|RedirectPermanent|RedirectTemp|ScriptAlias|ScriptAliasMatch)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.auth.apacheconf" + } + }, + "match": "\\b(AuthAuthoritative|AuthGroupFile|AuthUserFile|AuthBasicProvider|AuthBasicFake|AuthBasicAuthoritative|AuthBasicUseDigestAlgorithm)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.auth_anon.apacheconf" + } + }, + "match": "\\b(Anonymous|Anonymous_Authoritative|Anonymous_LogEmail|Anonymous_MustGiveEmail|Anonymous_NoUserID|Anonymous_VerifyEmail)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.auth_dbm.apacheconf" + } + }, + "match": "\\b(AuthDBMAuthoritative|AuthDBMGroupFile|AuthDBMType|AuthDBMUserFile)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.auth_digest.apacheconf" + } + }, + "match": "\\b(AuthDigestAlgorithm|AuthDigestDomain|AuthDigestFile|AuthDigestGroupFile|AuthDigestNcCheck|AuthDigestNonceFormat|AuthDigestNonceLifetime|AuthDigestQop|AuthDigestShmemSize|AuthDigestProvider)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.auth_ldap.apacheconf" + } + }, + "match": "\\b(AuthLDAPAuthoritative|AuthLDAPBindDN|AuthLDAPBindPassword|AuthLDAPCharsetConfig|AuthLDAPCompareDNOnServer|AuthLDAPDereferenceAliases|AuthLDAPEnabled|AuthLDAPFrontPageHack|AuthLDAPGroupAttribute|AuthLDAPGroupAttributeIsDN|AuthLDAPRemoteUserIsDN|AuthLDAPUrl)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.autoindex.apacheconf" + } + }, + "match": "\\b(AddAlt|AddAltByEncoding|AddAltByType|AddDescription|AddIcon|AddIconByEncoding|AddIconByType|DefaultIcon|HeaderName|IndexIgnore|IndexOptions|IndexOrderDefault|IndexStyleSheet|IndexHeadInsert|ReadmeName)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.filter.apacheconf" + } + }, + "match": "\\b(BalancerMember|BalancerGrowth|BalancerPersist|BalancerInherit)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.cache.apacheconf" + } + }, + "match": "\\b(CacheDefaultExpire|CacheDisable|CacheEnable|CacheForceCompletion|CacheIgnoreCacheControl|CacheIgnoreHeaders|CacheIgnoreNoLastMod|CacheLastModifiedFactor|CacheMaxExpire)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.cern_meta.apacheconf" + } + }, + "match": "\\b(MetaDir|MetaFiles|MetaSuffix)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.cgi.apacheconf" + } + }, + "match": "\\b(ScriptLog|ScriptLogBuffer|ScriptLogLength)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.cgid.apacheconf" + } + }, + "match": "\\b(ScriptLog|ScriptLogBuffer|ScriptLogLength|ScriptSock)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.charset_lite.apacheconf" + } + }, + "match": "\\b(CharsetDefault|CharsetOptions|CharsetSourceEnc)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.dav.apacheconf" + } + }, + "match": "\\b(Dav|DavDepthInfinity|DavMinTimeout|DavLockDB)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.deflate.apacheconf" + } + }, + "match": "\\b(DeflateBufferSize|DeflateCompressionLevel|DeflateFilterNote|DeflateMemLevel|DeflateWindowSize)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.dir.apacheconf" + } + }, + "match": "\\b(DirectoryIndex|DirectorySlash|FallbackResource)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.disk_cache.apacheconf" + } + }, + "match": "\\b(CacheDirLength|CacheDirLevels|CacheExpiryCheck|CacheGcClean|CacheGcDaily|CacheGcInterval|CacheGcMemUsage|CacheGcUnused|CacheMaxFileSize|CacheMinFileSize|CacheRoot|CacheSize|CacheTimeMargin)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.dumpio.apacheconf" + } + }, + "match": "\\b(DumpIOInput|DumpIOOutput)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.env.apacheconf" + } + }, + "match": "\\b(PassEnv|SetEnv|UnsetEnv)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.expires.apacheconf" + } + }, + "match": "\\b(ExpiresActive|ExpiresByType|ExpiresDefault)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.ext_filter.apacheconf" + } + }, + "match": "\\b(ExtFilterDefine|ExtFilterOptions)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.file_cache.apacheconf" + } + }, + "match": "\\b(CacheFile|MMapFile)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.filter.apacheconf" + } + }, + "match": "\\b(AddOutputFilterByType|FilterChain|FilterDeclare|FilterProtocol|FilterProvider|FilterTrace)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.headers.apacheconf" + } + }, + "match": "\\b(Header|RequestHeader)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.imap.apacheconf" + } + }, + "match": "\\b(ImapBase|ImapDefault|ImapMenu)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.include.apacheconf" + } + }, + "match": "\\b(SSIEndTag|SSIErrorMsg|SSIStartTag|SSITimeFormat|SSIUndefinedEcho|XBitHack)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.isapi.apacheconf" + } + }, + "match": "\\b(ISAPIAppendLogToErrors|ISAPIAppendLogToQuery|ISAPICacheFile|ISAPIFakeAsync|ISAPILogNotSupported|ISAPIReadAheadBuffer)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.ldap.apacheconf" + } + }, + "match": "\\b(LDAPCacheEntries|LDAPCacheTTL|LDAPConnectionTimeout|LDAPOpCacheEntries|LDAPOpCacheTTL|LDAPSharedCacheFile|LDAPSharedCacheSize|LDAPTrustedCA|LDAPTrustedCAType)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.log.apacheconf" + } + }, + "match": "\\b(BufferedLogs|CookieLog|CustomLog|LogFormat|TransferLog|ForensicLog)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.mem_cache.apacheconf" + } + }, + "match": "\\b(MCacheMaxObjectCount|MCacheMaxObjectSize|MCacheMaxStreamingBuffer|MCacheMinObjectSize|MCacheRemovalAlgorithm|MCacheSize)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.mime.apacheconf" + } + }, + "match": "\\b(AddCharset|AddEncoding|AddHandler|AddInputFilter|AddLanguage|AddOutputFilter|AddType|DefaultLanguage|ModMimeUsePathInfo|MultiviewsMatch|RemoveCharset|RemoveEncoding|RemoveHandler|RemoveInputFilter|RemoveLanguage|RemoveOutputFilter|RemoveType|TypesConfig)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.misc.apacheconf" + } + }, + "match": "\\b(ProtocolEcho|Example|AddModuleInfo|MimeMagicFile|CheckSpelling|ExtendedStatus|SuexecUserGroup|UserDir)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.negotiation.apacheconf" + } + }, + "match": "\\b(CacheNegotiatedDocs|ForceLanguagePriority|LanguagePriority)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.nw_ssl.apacheconf" + } + }, + "match": "\\b(NWSSLTrustedCerts|NWSSLUpgradeable|SecureListen)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.proxy.apacheconf" + } + }, + "match": "\\b(AllowCONNECT|NoProxy|ProxyBadHeader|ProxyBlock|ProxyDomain|ProxyErrorOverride|ProxyFtpDirCharset|ProxyIOBufferSize|ProxyMaxForwards|ProxyPass|ProxyPassMatch|ProxyPassReverse|ProxyPreserveHost|ProxyReceiveBufferSize|ProxyRemote|ProxyRemoteMatch|ProxyRequests|ProxyTimeout|ProxyVia)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.rewrite.apacheconf" + } + }, + "match": "\\b(RewriteBase|RewriteCond|RewriteEngine|RewriteLock|RewriteLog|RewriteLogLevel|RewriteMap|RewriteOptions|RewriteRule)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.setenvif.apacheconf" + } + }, + "match": "\\b(BrowserMatch|BrowserMatchNoCase|SetEnvIf|SetEnvIfNoCase)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.so.apacheconf" + } + }, + "match": "\\b(LoadFile|LoadModule)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.ssl.apacheconf" + } + }, + "match": "\\b(SSLCACertificateFile|SSLCACertificatePath|SSLCARevocationFile|SSLCARevocationPath|SSLCertificateChainFile|SSLCertificateFile|SSLCertificateKeyFile|SSLCipherSuite|SSLEngine|SSLMutex|SSLOptions|SSLPassPhraseDialog|SSLProtocol|SSLProxyCACertificateFile|SSLProxyCACertificatePath|SSLProxyCARevocationFile|SSLProxyCARevocationPath|SSLProxyCipherSuite|SSLProxyEngine|SSLProxyMachineCertificateFile|SSLProxyMachineCertificatePath|SSLProxyProtocol|SSLProxyVerify|SSLProxyVerifyDepth|SSLRandomSeed|SSLRequire|SSLRequireSSL|SSLSessionCache|SSLSessionCacheTimeout|SSLUserName|SSLVerifyClient|SSLVerifyDepth|SSLInsecureRenegotiation|SSLOpenSSLConfCmd)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.substitute.apacheconf" + } + }, + "match": "\\b(Substitute|SubstituteInheritBefore|SubstituteMaxLineLength)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.usertrack.apacheconf" + } + }, + "match": "\\b(CookieDomain|CookieExpires|CookieName|CookieStyle|CookieTracking)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.vhost_alias.apacheconf" + } + }, + "match": "\\b(VirtualDocumentRoot|VirtualDocumentRootIP|VirtualScriptAlias|VirtualScriptAliasIP)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.php.apacheconf" + }, + "3": { + "name": "entity.property.apacheconf" + }, + "5": { + "name": "string.value.apacheconf" + } + }, + "match": "\\b(php_value|php_flag|php_admin_value|php_admin_flag)\\b(\\s+(.+?)(\\s+(\".+?\"|.+?))?)?\\s" + }, + { + "captures": { + "1": { + "name": "punctuation.variable.apacheconf" + }, + "3": { + "name": "variable.env.apacheconf" + }, + "4": { + "name": "variable.misc.apacheconf" + }, + "5": { + "name": "punctuation.variable.apacheconf" + } + }, + "match": "(%\\{)((HTTP_USER_AGENT|HTTP_REFERER|HTTP_COOKIE|HTTP_FORWARDED|HTTP_HOST|HTTP_PROXY_CONNECTION|HTTP_ACCEPT|REMOTE_ADDR|REMOTE_HOST|REMOTE_PORT|REMOTE_USER|REMOTE_IDENT|REQUEST_METHOD|SCRIPT_FILENAME|PATH_INFO|QUERY_STRING|AUTH_TYPE|DOCUMENT_ROOT|SERVER_ADMIN|SERVER_NAME|SERVER_ADDR|SERVER_PORT|SERVER_PROTOCOL|SERVER_SOFTWARE|TIME_YEAR|TIME_MON|TIME_DAY|TIME_HOUR|TIME_MIN|TIME_SEC|TIME_WDAY|TIME|API_VERSION|THE_REQUEST|REQUEST_URI|REQUEST_FILENAME|IS_SUBREQ|HTTPS)|(.*?))(\\})" + }, + { + "captures": { + "1": { + "name": "entity.mime-type.apacheconf" + } + }, + "match": "\\b((text|image|application|video|audio)/.+?)\\s" + }, + { + "captures": { + "1": { + "name": "entity.helper.apacheconf" + } + }, + "match": "\\b(?i)(export|from|unset|set|on|off)\\b" + }, + { + "captures": { + "1": { + "name": "constant.numeric.integer.decimal.apacheconf" + } + }, + "match": "\\b(\\d+)\\b" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.flag.apacheconf" + }, + "2": { + "name": "string.flag.apacheconf" + }, + "3": { + "name": "punctuation.definition.flag.apacheconf" + } + }, + "match": "\\s(\\[)(.*?)(\\])\\s" + } + ], + "scopeName": "source.apacheconf", + "uuid": "8747d9e4-b308-4fc2-9aa1-66b6919bc7b9" +} diff --git a/docs/shiki/languages/apex.tmLanguage.json b/docs/shiki/languages/apex.tmLanguage.json new file mode 100644 index 00000000..e3ce90d6 --- /dev/null +++ b/docs/shiki/languages/apex.tmLanguage.json @@ -0,0 +1,3199 @@ +{ + "name": "apex", + "scopeName": "source.apex", + "fileTypes": ["apex", "cls", "trigger"], + "uuid": "F5FC6824-F257-43B1-B53A-14E1CCD18631", + "patterns": [ + { + "include": "#javadoc-comment" + }, + { + "include": "#comment" + }, + { + "include": "#directives" + }, + { + "include": "#declarations" + }, + { + "include": "#script-top-level" + } + ], + "repository": { + "directives": { + "patterns": [ + { + "include": "#punctuation-semicolon" + } + ] + }, + "declarations": { + "patterns": [ + { + "include": "#type-declarations" + }, + { + "include": "#punctuation-semicolon" + } + ] + }, + "script-top-level": { + "patterns": [ + { + "include": "#method-declaration" + }, + { + "include": "#statement" + }, + { + "include": "#punctuation-semicolon" + } + ] + }, + "type-declarations": { + "patterns": [ + { + "include": "#javadoc-comment" + }, + { + "include": "#comment" + }, + { + "include": "#annotation-declaration" + }, + { + "include": "#storage-modifier" + }, + { + "include": "#sharing-modifier" + }, + { + "include": "#class-declaration" + }, + { + "include": "#enum-declaration" + }, + { + "include": "#interface-declaration" + }, + { + "include": "#trigger-declaration" + }, + { + "include": "#punctuation-semicolon" + } + ] + }, + "class-or-trigger-members": { + "patterns": [ + { + "include": "#javadoc-comment" + }, + { + "include": "#comment" + }, + { + "include": "#storage-modifier" + }, + { + "include": "#sharing-modifier" + }, + { + "include": "#type-declarations" + }, + { + "include": "#field-declaration" + }, + { + "include": "#property-declaration" + }, + { + "include": "#indexer-declaration" + }, + { + "include": "#variable-initializer" + }, + { + "include": "#constructor-declaration" + }, + { + "include": "#method-declaration" + }, + { + "include": "#punctuation-semicolon" + } + ] + }, + "interface-members": { + "patterns": [ + { + "include": "#javadoc-comment" + }, + { + "include": "#comment" + }, + { + "include": "#property-declaration" + }, + { + "include": "#indexer-declaration" + }, + { + "include": "#method-declaration" + }, + { + "include": "#punctuation-semicolon" + } + ] + }, + "statement": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#while-statement" + }, + { + "include": "#do-statement" + }, + { + "include": "#for-statement" + }, + { + "include": "#switch-statement" + }, + { + "include": "#when-else-statement" + }, + { + "include": "#when-sobject-statement" + }, + { + "include": "#when-statement" + }, + { + "include": "#when-multiple-statement" + }, + { + "include": "#if-statement" + }, + { + "include": "#else-part" + }, + { + "include": "#goto-statement" + }, + { + "include": "#return-statement" + }, + { + "include": "#break-or-continue-statement" + }, + { + "include": "#throw-statement" + }, + { + "include": "#try-statement" + }, + { + "include": "#soql-query-expression" + }, + { + "include": "#local-declaration" + }, + { + "include": "#block" + }, + { + "include": "#expression" + }, + { + "include": "#punctuation-semicolon" + } + ] + }, + "expression": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#merge-expression" + }, + { + "include": "#support-expression" + }, + { + "include": "#throw-expression" + }, + { + "include": "#this-expression" + }, + { + "include": "#trigger-context-declaration" + }, + { + "include": "#conditional-operator" + }, + { + "include": "#expression-operators" + }, + { + "include": "#soql-query-expression" + }, + { + "include": "#object-creation-expression" + }, + { + "include": "#array-creation-expression" + }, + { + "include": "#invocation-expression" + }, + { + "include": "#member-access-expression" + }, + { + "include": "#element-access-expression" + }, + { + "include": "#cast-expression" + }, + { + "include": "#literal" + }, + { + "include": "#parenthesized-expression" + }, + { + "include": "#initializer-expression" + }, + { + "include": "#identifier" + } + ] + }, + "annotation-declaration": { + "begin": "([@][_[:alpha:]]+)\\b", + "beginCaptures": { + "1": { + "name": "storage.type.annotation.apex" + } + }, + "end": "(?<=\\)|$)", + "patterns": [ + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.parenthesis.open.apex" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.parenthesis.close.apex" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "include": "#statement" + } + ] + }, + "support-expression": { + "begin": "(?x)\n(ApexPages|Database|DMLException|Exception|PageReference|Savepoint|SchedulableContext|Schema|SObject|System|Test)(?=\\.|\\s) # supported apex namespaces", + "beginCaptures": { + "1": { + "name": "support.class.apex" + } + }, + "end": "(?<=\\)|$)|(?=\\})|(?=;)|(?=\\)|(?=\\]))|(?=\\,)", + "patterns": [ + { + "include": "#support-type" + }, + { + "match": "(?:(\\.))([[:alpha:]]*)(?=\\()", + "captures": { + "1": { + "name": "punctuation.accessor.apex" + }, + "2": { + "name": "support.function.apex" + } + } + }, + { + "match": "(?:(\\.))([[:alpha:]]+)", + "captures": { + "1": { + "name": "punctuation.accessor.apex" + }, + "2": { + "name": "support.type.apex" + } + } + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.parenthesis.open.apex" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.parenthesis.close.apex" + } + }, + "patterns": [ + { + "include": "#expression" + }, + { + "include": "#punctuation-comma" + } + ] + }, + { + "include": "#comment" + }, + { + "include": "#statement" + } + ] + }, + "support-type": { + "name": "support.apex", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#support-class" + }, + { + "include": "#support-functions" + }, + { + "include": "#support-name" + } + ] + }, + "support-class": { + "match": "\\b(ApexPages|Database|DMLException|Exception|PageReference|Savepoint|SchedulableContext|Schema|SObject|System|Test)\\b", + "captures": { + "1": { + "name": "support.class.apex" + } + } + }, + "support-functions": { + "match": "\\b(delete|execute|finish|insert|start|undelete|update|upsert)\\b", + "captures": { + "1": { + "name": "support.function.apex" + } + } + }, + "support-name": { + "patterns": [ + { + "match": "(\\.)\\s*([[:alpha:]]*)(?=\\()", + "captures": { + "1": { + "name": "punctuation.accessor.apex" + }, + "2": { + "name": "support.function.apex" + } + } + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.parenthesis.open.apex" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.parenthesis.close.apex" + } + }, + "patterns": [ + { + "include": "#expression" + }, + { + "include": "#punctuation-comma" + } + ] + }, + { + "match": "(\\.)\\s*([_[:alpha:]]*)", + "captures": { + "1": { + "name": "punctuation.accessor.apex" + }, + "2": { + "name": "support.type.apex" + } + } + } + ] + }, + "support-arguments": { + "begin": "<", + "beginCaptures": { + "0": { + "name": "punctuation.definition.typeparameters.begin.apex" + } + }, + "end": ">", + "endCaptures": { + "0": { + "name": "punctuation.definition.typeparameters.end.apex" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#support-type" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "merge-expression": { + "begin": "(merge)\\b\\s+", + "beginCaptures": { + "1": { + "name": "support.function.apex" + } + }, + "end": "(?<=\\;)", + "patterns": [ + { + "include": "#object-creation-expression" + }, + { + "include": "#merge-type-statement" + }, + { + "include": "#expression" + }, + { + "include": "#punctuation-semicolon" + } + ] + }, + "merge-type-statement": { + "match": "([_[:alpha:]]*)\\b\\s+([_[:alpha:]]*)\\b\\s*(\\;)", + "captures": { + "1": { + "name": "variable.other.readwrite.apex" + }, + "2": { + "name": "variable.other.readwrite.apex" + }, + "3": { + "name": "punctuation.terminator.statement.apex" + } + } + }, + "sharing-modifier": { + "name": "sharing.modifier.apex", + "match": "(?<!\\.)\\b(with sharing|without sharing|inherited sharing)\\b" + }, + "storage-modifier": { + "name": "storage.modifier.apex", + "match": "(?<!\\.)\\b(new|public|protected|private|abstract|virtual|override|global|static|final|transient)\\b" + }, + "class-declaration": { + "begin": "(?=\\bclass\\b)", + "end": "(?<=\\})", + "patterns": [ + { + "begin": "(?x)\n\\b(class)\\b\\s+\n(@?[_[:alpha:]][_[:alnum:]]*)\\s*", + "beginCaptures": { + "1": { + "name": "keyword.other.class.apex" + }, + "2": { + "name": "entity.name.type.class.apex" + } + }, + "end": "(?=\\{)", + "patterns": [ + { + "include": "#javadoc-comment" + }, + { + "include": "#comment" + }, + { + "include": "#type-parameter-list" + }, + { + "include": "#extends-class" + }, + { + "include": "#implements-class" + } + ] + }, + { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.curlybrace.open.apex" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.curlybrace.close.apex" + } + }, + "patterns": [ + { + "include": "#class-or-trigger-members" + } + ] + }, + { + "include": "#javadoc-comment" + }, + { + "include": "#comment" + } + ] + }, + "trigger-declaration": { + "begin": "(?=\\btrigger\\b)", + "end": "(?<=\\})", + "patterns": [ + { + "begin": "(?x)\n\\b(trigger)\\b\\s+\n(@?[_[:alpha:]][_[:alnum:]]*)\\s*\n\\b(on)\\b\\s+\n([_[:alpha:]][_[:alnum:]]*)\\s*", + "beginCaptures": { + "1": { + "name": "keyword.other.trigger.apex" + }, + "2": { + "name": "entity.name.type.trigger.apex" + }, + "3": { + "name": "keyword.operator.trigger.on.apex" + }, + "4": { + "name": "storage.type.apex" + } + }, + "end": "(?=\\{)", + "patterns": [ + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.parenthesis.open.apex" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.parenthesis.close.apex" + } + }, + "patterns": [ + { + "include": "#trigger-type-statement" + }, + { + "include": "#trigger-operator-statement" + }, + { + "include": "#punctuation-comma" + }, + { + "include": "#expression" + } + ] + }, + { + "include": "#javadoc-comment" + }, + { + "include": "#comment" + }, + { + "include": "#type-parameter-list" + } + ] + }, + { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.curlybrace.open.apex" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.curlybrace.close.apex" + } + }, + "patterns": [ + { + "include": "#statement" + }, + { + "include": "#class-or-trigger-members" + } + ] + }, + { + "include": "#javadoc-comment" + }, + { + "include": "#comment" + } + ] + }, + "trigger-type-statement": { + "match": "\\b(?:(before)|(after))\\b", + "captures": { + "1": { + "name": "keyword.control.trigger.before.apex" + }, + "2": { + "name": "keyword.control.trigger.after.apex" + } + } + }, + "trigger-operator-statement": { + "name": "keyword.operator.trigger.apex", + "match": "\\b(insert|update|delete|merge|upsert|undelete)\\b" + }, + "trigger-context-declaration": { + "begin": "\\b(?:(Trigger))\\b(\\.)\\b", + "beginCaptures": { + "1": { + "name": "support.class.trigger.apex" + }, + "2": { + "name": "punctuation.accessor.apex" + } + }, + "end": "(?=\\})|(?=;)|(?=\\)|(?=\\]))", + "patterns": [ + { + "name": "support.type.trigger.apex", + "match": "\\b(isExecuting|isInsert|isUpdate|isDelete|isBefore|isAfter|isUndelete|new|newMap|old|oldMap|size)\\b" + }, + { + "match": "(?:(\\??\\.))([[:alpha:]]+)(?=\\()", + "captures": { + "1": { + "patterns": [ + { + "include": "#punctuation-accessor" + }, + { + "include": "#operator-safe-navigation" + } + ] + }, + "2": { + "name": "support.function.trigger.apex" + } + } + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.parenthesis.open.apex" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.parenthesis.close.apex" + } + }, + "patterns": [ + { + "include": "#trigger-type-statement" + }, + { + "include": "#javadoc-comment" + }, + { + "include": "#comment" + }, + { + "include": "#expression" + } + ] + }, + { + "include": "#expression" + } + ] + }, + "enum-declaration": { + "begin": "(?=\\benum\\b)", + "end": "(?<=\\})", + "patterns": [ + { + "begin": "(?=enum)", + "end": "(?=\\{)", + "patterns": [ + { + "include": "#javadoc-comment" + }, + { + "include": "#comment" + }, + { + "match": "(enum)\\s+(@?[_[:alpha:]][_[:alnum:]]*)", + "captures": { + "1": { + "name": "keyword.other.enum.apex" + }, + "2": { + "name": "entity.name.type.enum.apex" + } + } + } + ] + }, + { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.curlybrace.open.apex" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.curlybrace.close.apex" + } + }, + "patterns": [ + { + "include": "#javadoc-comment" + }, + { + "include": "#comment" + }, + { + "include": "#punctuation-comma" + }, + { + "begin": "@?[_[:alpha:]][_[:alnum:]]*", + "beginCaptures": { + "0": { + "name": "entity.name.variable.enum-member.apex" + } + }, + "end": "(?=(,|\\}))", + "patterns": [ + { + "include": "#javadoc-comment" + }, + { + "include": "#comment" + }, + { + "include": "#variable-initializer" + } + ] + } + ] + }, + { + "include": "#javadoc-comment" + }, + { + "include": "#comment" + } + ] + }, + "interface-declaration": { + "begin": "(?=\\binterface\\b)", + "end": "(?<=\\})", + "patterns": [ + { + "begin": "(?x)\n(interface)\\b\\s+\n(@?[_[:alpha:]][_[:alnum:]]*)", + "beginCaptures": { + "1": { + "name": "keyword.other.interface.apex" + }, + "2": { + "name": "entity.name.type.interface.apex" + } + }, + "end": "(?=\\{)", + "patterns": [ + { + "include": "#javadoc-comment" + }, + { + "include": "#comment" + }, + { + "include": "#type-parameter-list" + }, + { + "include": "#extends-class" + } + ] + }, + { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.curlybrace.open.apex" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.curlybrace.close.apex" + } + }, + "patterns": [ + { + "include": "#interface-members" + } + ] + }, + { + "include": "#javadoc-comment" + }, + { + "include": "#comment" + } + ] + }, + "extends-class": { + "begin": "(extends)\\b\\s+([_[:alpha:]][_[:alnum:]]*)", + "beginCaptures": { + "1": { + "name": "keyword.other.extends.apex" + }, + "2": { + "name": "entity.name.type.extends.apex" + } + }, + "end": "(?={|implements)" + }, + "implements-class": { + "begin": "(implements)\\b\\s+([_[:alpha:]][_[:alnum:]]*)", + "beginCaptures": { + "1": { + "name": "keyword.other.implements.apex" + }, + "2": { + "name": "entity.name.type.implements.apex" + } + }, + "end": "(?={|extends)" + }, + "soql-query-expression": { + "begin": "\\b(SELECT)\\b\\s*", + "beginCaptures": { + "1": { + "name": "keyword.operator.query.select.apex" + } + }, + "end": "(?=;)|(?=\\])|(?=\\))", + "patterns": [ + { + "include": "#soql-query-body" + }, + { + "include": "#comment" + }, + { + "include": "#punctuation-comma" + }, + { + "include": "#operator-assignment" + }, + { + "include": "#parenthesized-expression" + }, + { + "include": "#expression-operators" + }, + { + "include": "#literal" + }, + { + "match": "([_.[:alpha:]][_.[:alnum:]]*)\\s*(\\,)?", + "captures": { + "1": { + "name": "keyword.query.field.apex" + }, + "2": { + "name": "punctuation.separator.comma.apex" + } + } + } + ] + }, + "soql-query-body": { + "patterns": [ + { + "include": "#trigger-context-declaration" + }, + { + "include": "#soql-colon-vars" + }, + { + "include": "#soql-functions" + }, + { + "include": "#from-clause" + }, + { + "include": "#where-clause" + }, + { + "include": "#query-operators" + }, + { + "include": "#date-literals" + }, + { + "include": "#date-literal-with-params" + }, + { + "include": "#using-scope" + }, + { + "include": "#soql-group-clauses" + }, + { + "include": "#orderby-clause" + }, + { + "include": "#ordering-direction" + }, + { + "include": "#ordering-nulls" + } + ] + }, + "soql-colon-vars": { + "begin": "(\\:)\\s*", + "beginCaptures": { + "0": { + "name": "keyword.operator.conditional.colon.apex" + } + }, + "end": "(?![_[:alnum:]]|\\(|(\\?)?\\[|<)", + "patterns": [ + { + "include": "#trigger-context-declaration" + }, + { + "match": "([_[:alpha:]][_[:alnum:]]*)(\\??\\.)", + "captures": { + "1": { + "name": "variable.other.object.apex" + }, + "2": { + "patterns": [ + { + "include": "#punctuation-accessor" + }, + { + "include": "#operator-safe-navigation" + } + ] + } + } + }, + { + "include": "#soql-colon-method-statement" + }, + { + "name": "entity.name.variable.local.apex", + "match": "[_[:alpha:]][_[:alnum:]]*" + } + ] + }, + "soql-colon-method-statement": { + "begin": "(:?\\.)?([_[:alpha:]][_[:alnum:]]*)(?=\\()", + "beginCaptures": { + "1": { + "name": "punctuation.accessor.apex" + }, + "2": { + "name": "entity.name.function.apex" + } + }, + "end": "(?<=\\))", + "patterns": [ + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.parenthesis.open.apex" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.parenthesis.close.apex" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "include": "#statement" + } + ] + }, + "soql-group-clauses": { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.parenthesis.open.apex" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.parenthesis.close.apex" + } + }, + "patterns": [ + { + "include": "#soql-query-expression" + }, + { + "include": "#soql-colon-vars" + }, + { + "include": "#soql-group-clauses" + }, + { + "include": "#punctuation-comma" + }, + { + "include": "#operator-assignment" + }, + { + "include": "#literal" + }, + { + "include": "#query-operators" + }, + { + "include": "#date-literals" + }, + { + "include": "#date-literal-with-params" + }, + { + "include": "#using-scope" + }, + { + "name": "keyword.query.field.apex", + "match": "[_.[:alpha:]][_.[:alnum:]]*" + } + ] + }, + "soql-functions": { + "begin": "\\b(AVG|CALENDAR_MONTH|CALENDAR_QUARTER|CALENDAR_YEAR|convertCurrency|convertTimezone|COUNT|COUNT_DISTINCT|DAY_IN_MONTH|DAY_IN_WEEK|DAY_IN_YEAR|DAY_ONLY|toLabel|INCLUDES|EXCLUDES|FISCAL_MONTH|FISCAL_QUARTER|FISCAL_YEAR|FORMAT|GROUPING|GROUP BY CUBE|GROUP BY ROLLUP|HOUR_IN_DAY|MAX|MIN|SUM|WEEK_IN_MONTH|WEEK_IN_YEAR)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "support.function.query.apex" + }, + "2": { + "name": "punctuation.parenthesis.open.apex" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.parenthesis.close.apex" + } + }, + "patterns": [ + { + "include": "#literal" + }, + { + "include": "#punctuation-comma" + }, + { + "include": "#soql-functions" + }, + { + "name": "keyword.query.field.apex", + "match": "[_.[:alpha:]][_.[:alnum:]]*" + } + ] + }, + "from-clause": { + "match": "(FROM)\\b\\s*([_\\.[:alnum:]]+\\b)?", + "captures": { + "1": { + "name": "keyword.operator.query.from.apex" + }, + "2": { + "name": "storage.type.apex" + } + } + }, + "where-clause": { + "match": "\\b(WHERE)\\b\\s*", + "captures": { + "1": { + "name": "keyword.operator.query.where.apex" + } + } + }, + "orderby-clause": { + "match": "\\b(ORDER BY)\\b\\s*", + "captures": { + "1": { + "name": "keyword.operator.query.orderby.apex" + } + }, + "patterns": [ + { + "include": "#ordering-direction" + }, + { + "include": "#ordering-nulls" + } + ] + }, + "ordering-direction": { + "match": "\\b(?:(ASC)|(DESC))\\b", + "captures": { + "1": { + "name": "keyword.operator.query.ascending.apex" + }, + "2": { + "name": "keyword.operator.query.descending.apex" + } + } + }, + "ordering-nulls": { + "match": "\\b(?:(NULLS FIRST)|(NULLS LAST))\\b", + "captures": { + "1": { + "name": "keyword.operator.query.nullsfirst.apex" + }, + "2": { + "name": "keyword.operator.query.nullslast.apex" + } + } + }, + "query-operators": { + "match": "\\b(ABOVE|AND|AT|FOR REFERENCE|FOR UPDATE|FOR VIEW|GROUP BY|HAVING|IN|LIKE|LIMIT|NOT IN|NOT|OFFSET|OR|TYPEOF|UPDATE TRACKING|UPDATE VIEWSTAT|WITH DATA CATEGORY|WITH)\\b\\s*", + "captures": { + "1": { + "name": "keyword.operator.query.apex" + } + } + }, + "date-literals": { + "match": "\\b(YESTERDAY|TODAY|TOMORROW|LAST_WEEK|THIS_WEEK|NEXT_WEEK|LAST_MONTH|THIS_MONTH|NEXT_MONTH|LAST_90_DAYS|NEXT_90_DAYS|THIS_QUARTER|LAST_QUARTER|NEXT_QUARTER|THIS_YEAR|LAST_YEAR|NEXT_YEAR|THIS_FISCAL_QUARTER|LAST_FISCAL_QUARTER|NEXT_FISCAL_QUARTER|THIS_FISCAL_YEAR|LAST_FISCAL_YEAR|NEXT_FISCAL_YEAR)\\b\\s*", + "captures": { + "1": { + "name": "keyword.operator.query.date.apex" + } + } + }, + "date-literal-with-params": { + "match": "\\b((LAST_N_DAYS|NEXT_N_DAYS|NEXT_N_WEEKS|LAST_N_WEEKS|NEXT_N_MONTHS|LAST_N_MONTHS|NEXT_N_QUARTERS|LAST_N_QUARTERS|NEXT_N_YEARS|LAST_N_YEARS|NEXT_N_FISCAL_QUARTERS|LAST_N_FISCAL_QUARTERS|NEXT_N_FISCAL_YEARS|LAST_N_FISCAL_YEARS)\\s*\\:\\d+)\\b", + "captures": { + "1": { + "name": "keyword.operator.query.date.apex" + } + } + }, + "using-scope": { + "match": "((USING SCOPE)\\b\\s*(Delegated|Everything|Mine|My_Territory|My_Team_Territory|Team))\\b\\s*", + "captures": { + "1": { + "name": "keyword.operator.query.using.apex" + } + } + }, + "type-parameter-list": { + "begin": "\\<", + "beginCaptures": { + "0": { + "name": "punctuation.definition.typeparameters.begin.apex" + } + }, + "end": "\\>", + "endCaptures": { + "0": { + "name": "punctuation.definition.typeparameters.end.apex" + } + }, + "patterns": [ + { + "match": "(@?[_[:alpha:]][_[:alnum:]]*)\\b", + "captures": { + "1": { + "name": "entity.name.type.type-parameter.apex" + } + } + }, + { + "include": "#comment" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "field-declaration": { + "begin": "(?x)\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)\\s+\n(\\g<identifier>)\\s* # first field name\n(?!=>|==)(?=,|;|=|$)", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#support-type" + }, + { + "include": "#type" + } + ] + }, + "5": { + "name": "entity.name.variable.field.apex" + } + }, + "end": "(?=;)", + "patterns": [ + { + "name": "entity.name.variable.field.apex", + "match": "@?[_[:alpha:]][_[:alnum:]]*" + }, + { + "include": "#punctuation-comma" + }, + { + "include": "#comment" + }, + { + "include": "#variable-initializer" + }, + { + "include": "#class-or-trigger-members" + } + ] + }, + "property-declaration": { + "begin": "(?x)\n(?!.*\\b(?:class|interface|enum)\\b)\\s*\n(?<return_type>\n (?<type_name>\n (?:\n (?:ref\\s+)? # ref return\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n )\\s+\n)\n(?<interface_name>\\g<type_name>\\s*\\.\\s*)?\n(?<property_name>\\g<identifier>)\\s*\n(?=\\{|=>|$)", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#type" + } + ] + }, + "6": { + "patterns": [ + { + "include": "#type" + }, + { + "include": "#punctuation-accessor" + } + ] + }, + "7": { + "name": "entity.name.variable.property.apex" + } + }, + "end": "(?<=\\})|(?=;)", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#property-accessors" + }, + { + "include": "#expression-body" + }, + { + "include": "#variable-initializer" + }, + { + "include": "#class-or-trigger-members" + } + ] + }, + "indexer-declaration": { + "begin": "(?x)\n(?<return_type>\n (?<type_name>\n (?:\n (?:ref\\s+)? # ref return\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n )\\s+\n)\n(?<interface_name>\\g<type_name>\\s*\\.\\s*)?\n(?<indexer_name>this)\\s*\n(?=\\[)", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#type" + } + ] + }, + "6": { + "patterns": [ + { + "include": "#type" + }, + { + "include": "#punctuation-accessor" + } + ] + }, + "7": { + "name": "keyword.other.this.apex" + } + }, + "end": "(?<=\\})|(?=;)", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#property-accessors" + }, + { + "include": "#expression-body" + }, + { + "include": "#variable-initializer" + } + ] + }, + "property-accessors": { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.curlybrace.open.apex" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.curlybrace.close.apex" + } + }, + "patterns": [ + { + "name": "storage.modifier.apex", + "match": "\\b(private|protected)\\b" + }, + { + "name": "keyword.other.get.apex", + "match": "\\b(get)\\b" + }, + { + "name": "keyword.other.set.apex", + "match": "\\b(set)\\b" + }, + { + "include": "#comment" + }, + { + "include": "#expression-body" + }, + { + "include": "#block" + }, + { + "include": "#punctuation-semicolon" + } + ] + }, + "method-declaration": { + "begin": "(?x)\n(?<return_type>\n (?<type_name>\n (?:\n (?:ref\\s+)? # ref return\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n )\\s+\n)\n(?<interface_name>\\g<type_name>\\s*\\.\\s*)?\n(\\g<identifier>)\\s*\n(<([^<>]+)>)?\\s*\n(?=\\()", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#support-type" + }, + { + "include": "#type" + } + ] + }, + "6": { + "patterns": [ + { + "include": "#type" + }, + { + "include": "#punctuation-accessor" + } + ] + }, + "7": { + "patterns": [ + { + "include": "#support-type" + }, + { + "include": "#method-name-custom" + } + ] + }, + "8": { + "patterns": [ + { + "include": "#type-parameter-list" + } + ] + } + }, + "end": "(?<=\\})|(?=;)", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#parenthesized-parameter-list" + }, + { + "include": "#expression-body" + }, + { + "include": "#block" + } + ] + }, + "method-name-custom": { + "name": "entity.name.function.apex", + "match": "@?[_[:alpha:]][_[:alnum:]]*" + }, + "constructor-declaration": { + "begin": "(?=@?[_[:alpha:]][_[:alnum:]]*\\s*\\()", + "end": "(?<=\\})|(?=;)", + "patterns": [ + { + "match": "(@?[_[:alpha:]][_[:alnum:]]*)\\b", + "captures": { + "1": { + "name": "entity.name.function.apex" + } + } + }, + { + "begin": "(:)", + "beginCaptures": { + "1": { + "name": "punctuation.separator.colon.apex" + } + }, + "end": "(?=\\{|=>)", + "patterns": [ + { + "include": "#constructor-initializer" + } + ] + }, + { + "include": "#parenthesized-parameter-list" + }, + { + "include": "#comment" + }, + { + "include": "#expression-body" + }, + { + "include": "#block" + } + ] + }, + "constructor-initializer": { + "begin": "\\b(?:(this))\\b\\s*(?=\\()", + "beginCaptures": { + "1": { + "name": "keyword.other.this.apex" + } + }, + "end": "(?<=\\))", + "patterns": [ + { + "include": "#argument-list" + } + ] + }, + "block": { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.curlybrace.open.apex" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.curlybrace.close.apex" + } + }, + "patterns": [ + { + "include": "#statement" + } + ] + }, + "variable-initializer": { + "begin": "(?<!=|!)(=)(?!=|>)", + "beginCaptures": { + "1": { + "name": "keyword.operator.assignment.apex" + } + }, + "end": "(?=[,\\)\\];}])", + "patterns": [ + { + "include": "#expression" + } + ] + }, + "expression-body": { + "begin": "=>", + "beginCaptures": { + "0": { + "name": "keyword.operator.arrow.apex" + } + }, + "end": "(?=[,\\);}])", + "patterns": [ + { + "include": "#expression" + } + ] + }, + "goto-statement": { + "begin": "(?<!\\.)\\b(goto)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.goto.apex" + } + }, + "end": "(?=;)", + "patterns": [ + { + "begin": "\\b(case)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.case.apex" + } + }, + "end": "(?=;)", + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "match": "\\b(default)\\b", + "captures": { + "1": { + "name": "keyword.control.default.apex" + } + } + }, + { + "name": "entity.name.label.apex", + "match": "@?[_[:alpha:]][_[:alnum:]]*" + } + ] + }, + "return-statement": { + "begin": "(?<!\\.)\\b(return)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.return.apex" + } + }, + "end": "(?=;)", + "patterns": [ + { + "include": "#expression" + } + ] + }, + "break-or-continue-statement": { + "match": "(?<!\\.)\\b(?:(break)|(continue))\\b", + "captures": { + "1": { + "name": "keyword.control.flow.break.apex" + }, + "2": { + "name": "keyword.control.flow.continue.apex" + } + } + }, + "throw-statement": { + "begin": "(?<!\\.)\\b(throw)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.throw.apex" + } + }, + "end": "(?=;)", + "patterns": [ + { + "include": "#expression" + } + ] + }, + "if-statement": { + "begin": "(?<!\\.)\\b(if)\\b\\s*(?=\\()", + "beginCaptures": { + "1": { + "name": "keyword.control.conditional.if.apex" + } + }, + "end": "(?<=\\})|(?=;)", + "patterns": [ + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.parenthesis.open.apex" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.parenthesis.close.apex" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "include": "#statement" + } + ] + }, + "else-part": { + "begin": "(?<!\\.)\\b(else)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.conditional.else.apex" + } + }, + "end": "(?<=\\})|(?=;)", + "patterns": [ + { + "include": "#statement" + } + ] + }, + "switch-statement": { + "begin": "(?x)\n(switch)\\b\\s+\n(on)\\b\\s+\n(?:([_.?\\'\\(\\)[:alnum:]]+)\\s*)?\n(\\{)", + "beginCaptures": { + "1": { + "name": "keyword.control.switch.apex" + }, + "2": { + "name": "keyword.control.switch.on.apex" + }, + "3": { + "patterns": [ + { + "include": "#statement" + }, + { + "include": "#parenthesized-expression" + } + ] + }, + "4": { + "name": "punctuation.curlybrace.open.apex" + } + }, + "end": "(\\})", + "endCaptures": { + "0": { + "name": "punctuation.curlybrace.close.apex" + } + }, + "patterns": [ + { + "include": "#when-string" + }, + { + "include": "#when-else-statement" + }, + { + "include": "#when-sobject-statement" + }, + { + "include": "#when-statement" + }, + { + "include": "#when-multiple-statement" + }, + { + "include": "#expression" + }, + { + "include": "#punctuation-comma" + }, + { + "include": "#punctuation-semicolon" + } + ] + }, + "when-statement": { + "begin": "(when)\\b\\s+([\\'_\\-[:alnum:]]+)\\s*", + "beginCaptures": { + "1": { + "name": "keyword.control.switch.when.apex" + }, + "2": { + "patterns": [ + { + "include": "#expression" + } + ] + } + }, + "end": "(?<=\\})", + "patterns": [ + { + "include": "#block" + }, + { + "include": "#expression" + } + ] + }, + "when-string": { + "begin": "(when)(\\b\\s*)((\\')[_.\\,\\'\\s*[:alnum:]]+)", + "beginCaptures": { + "1": { + "name": "keyword.control.switch.when.apex" + }, + "2": { + "name": "punctuation.whitespace.apex" + }, + "3": { + "patterns": [ + { + "include": "#when-string-statement" + }, + { + "include": "#punctuation-comma" + } + ] + } + }, + "end": "(?<=\\})", + "patterns": [ + { + "include": "#block" + }, + { + "include": "#expression" + } + ] + }, + "when-string-statement": { + "patterns": [ + { + "name": "string.quoted.single.apex", + "begin": "\\'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.apex" + } + }, + "end": "\\'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.apex" + } + } + } + ] + }, + "when-else-statement": { + "begin": "(when)\\b\\s+(else)\\b\\s*", + "beginCaptures": { + "1": { + "name": "keyword.control.switch.when.apex" + }, + "2": { + "name": "keyword.control.switch.else.apex" + } + }, + "end": "(?<=\\})", + "patterns": [ + { + "include": "#block" + }, + { + "include": "#expression" + } + ] + }, + "when-multiple-statement": { + "begin": "(when)\\b\\s*", + "beginCaptures": { + "1": { + "name": "keyword.control.switch.when.apex" + } + }, + "end": "(?<=\\})", + "patterns": [ + { + "include": "#block" + }, + { + "include": "#expression" + } + ] + }, + "when-sobject-statement": { + "begin": "(when)\\b\\s+([_[:alnum:]]+)\\s+([_[:alnum:]]+)\\s*", + "beginCaptures": { + "1": { + "name": "keyword.control.switch.when.apex" + }, + "2": { + "name": "storage.type.apex" + }, + "3": { + "name": "entity.name.variable.local.apex" + } + }, + "end": "(?<=\\})", + "patterns": [ + { + "include": "#block" + }, + { + "include": "#expression" + } + ] + }, + "do-statement": { + "begin": "(?<!\\.)\\b(do)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.loop.do.apex" + } + }, + "end": "(?=;|})", + "patterns": [ + { + "include": "#statement" + } + ] + }, + "while-statement": { + "begin": "(?<!\\.)\\b(while)\\b\\s*(?=\\()", + "beginCaptures": { + "1": { + "name": "keyword.control.loop.while.apex" + } + }, + "end": "(?<=\\})|(?=;)", + "patterns": [ + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.parenthesis.open.apex" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.parenthesis.close.apex" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "include": "#statement" + } + ] + }, + "for-statement": { + "begin": "(?<!\\.)\\b(for)\\b\\s*(?=\\()", + "beginCaptures": { + "1": { + "name": "keyword.control.loop.for.apex" + } + }, + "end": "(?<=\\})|(?=;)", + "patterns": [ + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.parenthesis.open.apex" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.parenthesis.close.apex" + } + }, + "patterns": [ + { + "include": "#for-apex-syntax" + }, + { + "include": "#local-variable-declaration" + }, + { + "include": "#expression" + }, + { + "include": "#punctuation-comma" + }, + { + "include": "#punctuation-semicolon" + }, + { + "include": "#colon-expression" + } + ] + }, + { + "include": "#statement" + } + ] + }, + "for-apex-syntax": { + "match": "([_.[:alpha:]][_.[:alnum:]]+)\\s+([_.[:alpha:]][_.[:alnum:]]*)\\s*(\\:)", + "captures": { + "1": { + "patterns": [ + { + "include": "#support-type" + }, + { + "include": "#type" + } + ] + }, + "2": { + "name": "entity.name.variable.local.apex" + }, + "3": { + "name": "keyword.operator.iterator.colon.apex" + } + } + }, + "try-statement": { + "patterns": [ + { + "include": "#try-block" + }, + { + "include": "#catch-clause" + }, + { + "include": "#finally-clause" + } + ] + }, + "try-block": { + "begin": "(?<!\\.)\\b(try)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.try.apex" + } + }, + "end": "(?<=\\})", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#block" + } + ] + }, + "finally-clause": { + "begin": "(?<!\\.)\\b(finally)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.try.finally.apex" + } + }, + "end": "(?<=\\})", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#block" + } + ] + }, + "catch-clause": { + "begin": "(?<!\\.)\\b(catch)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.try.catch.apex" + } + }, + "end": "(?<=\\})", + "patterns": [ + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.parenthesis.open.apex" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.parenthesis.close.apex" + } + }, + "patterns": [ + { + "match": "(?x)\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)\\s*\n(?:(\\g<identifier>)\\b)?", + "captures": { + "1": { + "patterns": [ + { + "include": "#support-type" + }, + { + "include": "#type" + } + ] + }, + "5": { + "name": "entity.name.variable.local.apex" + } + } + } + ] + }, + { + "include": "#comment" + }, + { + "include": "#block" + } + ] + }, + "local-declaration": { + "patterns": [ + { + "include": "#local-constant-declaration" + }, + { + "include": "#local-variable-declaration" + } + ] + }, + "local-variable-declaration": { + "begin": "(?x)\n(?:\n (?:(\\bref)\\s+)?(\\bvar\\b)| # ref local\n (?<type_name>\n (?:\n (?:ref\\s+)? # ref local\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n )\n)\\s+\n(\\g<identifier>)\\s*\n(?=,|;|=|\\))", + "beginCaptures": { + "1": { + "name": "storage.modifier.apex" + }, + "2": { + "name": "keyword.other.var.apex" + }, + "3": { + "patterns": [ + { + "include": "#support-type" + }, + { + "include": "#type" + } + ] + }, + "7": { + "name": "entity.name.variable.local.apex" + } + }, + "end": "(?=;|\\))", + "patterns": [ + { + "name": "entity.name.variable.local.apex", + "match": "@?[_[:alpha:]][_[:alnum:]]*" + }, + { + "include": "#punctuation-comma" + }, + { + "include": "#comment" + }, + { + "include": "#variable-initializer" + } + ] + }, + "local-constant-declaration": { + "begin": "(?x)\n(?<const_keyword>\\b(?:const)\\b)\\s*\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)\\s+\n(\\g<identifier>)\\s*\n(?=,|;|=)", + "beginCaptures": { + "1": { + "name": "storage.modifier.apex" + }, + "2": { + "patterns": [ + { + "include": "#type" + } + ] + }, + "6": { + "name": "entity.name.variable.local.apex" + } + }, + "end": "(?=;)", + "patterns": [ + { + "name": "entity.name.variable.local.apex", + "match": "@?[_[:alpha:]][_[:alnum:]]*" + }, + { + "include": "#punctuation-comma" + }, + { + "include": "#comment" + }, + { + "include": "#variable-initializer" + } + ] + }, + "throw-expression": { + "match": "(?<!\\.)\\b(throw)\\b", + "captures": { + "1": { + "name": "keyword.control.flow.throw.apex" + } + } + }, + "literal": { + "patterns": [ + { + "include": "#boolean-literal" + }, + { + "include": "#null-literal" + }, + { + "include": "#numeric-literal" + }, + { + "include": "#string-literal" + } + ] + }, + "boolean-literal": { + "patterns": [ + { + "name": "constant.language.boolean.true.apex", + "match": "(?<!\\.)\\btrue\\b" + }, + { + "name": "constant.language.boolean.false.apex", + "match": "(?<!\\.)\\bfalse\\b" + } + ] + }, + "null-literal": { + "name": "constant.language.null.apex", + "match": "(?<!\\.)\\bnull\\b" + }, + "numeric-literal": { + "patterns": [ + { + "name": "constant.numeric.datetime.apex", + "match": "\\b(\\d{4}\\-\\d{2}\\-\\d{2}T\\d{2}\\:\\d{2}\\:\\d{2}(\\.\\d{1,3})?(\\-|\\+)\\d{2}\\:\\d{2})\\b" + }, + { + "name": "constant.numeric.datetime.apex", + "match": "\\b(\\d{4}\\-\\d{2}\\-\\d{2}T\\d{2}\\:\\d{2}\\:\\d{2}(\\.\\d{1,3})?(Z)?)\\b" + }, + { + "name": "constant.numeric.date.apex", + "match": "\\b(\\d{4}\\-\\d{2}\\-\\d{2})\\b" + }, + { + "name": "constant.numeric.hex.apex", + "match": "\\b0(x|X)[0-9a-fA-F_]+(U|u|L|l|UL|Ul|uL|ul|LU|Lu|lU|lu)?\\b" + }, + { + "name": "constant.numeric.binary.apex", + "match": "\\b0(b|B)[01_]+(U|u|L|l|UL|Ul|uL|ul|LU|Lu|lU|lu)?\\b" + }, + { + "name": "constant.numeric.decimal.apex", + "match": "\\b([0-9_]+)?\\.[0-9_]+((e|E)[0-9]+)?(F|f|D|d|M|m)?\\b" + }, + { + "name": "constant.numeric.decimal.apex", + "match": "\\b[0-9_]+(e|E)[0-9_]+(F|f|D|d|M|m)?\\b" + }, + { + "name": "constant.numeric.decimal.apex", + "match": "\\b[0-9_]+(F|f|D|d|M|m)\\b" + }, + { + "name": "constant.numeric.decimal.apex", + "match": "\\b[0-9_]+(U|u|L|l|UL|Ul|uL|ul|LU|Lu|lU|lu)?\\b" + } + ] + }, + "string-literal": { + "name": "string.quoted.single.apex", + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.apex" + } + }, + "end": "(\\')|((?:[^\\\\\\n])$)", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.apex" + }, + "2": { + "name": "invalid.illegal.newline.apex" + } + }, + "patterns": [ + { + "include": "#string-character-escape" + } + ] + }, + "string-character-escape": { + "name": "constant.character.escape.apex", + "match": "\\\\." + }, + "expression-operators": { + "patterns": [ + { + "name": "keyword.operator.assignment.compound.apex", + "match": "\\*=|/=|%=|\\+=|-=" + }, + { + "name": "keyword.operator.assignment.compound.bitwise.apex", + "match": "\\&=|\\^=|<<=|>>=|\\|=" + }, + { + "name": "keyword.operator.bitwise.shift.apex", + "match": "<<|>>" + }, + { + "name": "keyword.operator.comparison.apex", + "match": "==|!=" + }, + { + "name": "keyword.operator.relational.apex", + "match": "<=|>=|<|>" + }, + { + "name": "keyword.operator.logical.apex", + "match": "\\!|&&|\\|\\|" + }, + { + "name": "keyword.operator.bitwise.apex", + "match": "\\&|~|\\^|\\|" + }, + { + "name": "keyword.operator.assignment.apex", + "match": "\\=" + }, + { + "name": "keyword.operator.decrement.apex", + "match": "--" + }, + { + "name": "keyword.operator.increment.apex", + "match": "\\+\\+" + }, + { + "name": "keyword.operator.arithmetic.apex", + "match": "%|\\*|/|-|\\+" + } + ] + }, + "conditional-operator": { + "begin": "(?<!\\?)\\?(?!\\?|\\.|\\[)", + "beginCaptures": { + "0": { + "name": "keyword.operator.conditional.question-mark.apex" + } + }, + "end": ":", + "endCaptures": { + "0": { + "name": "keyword.operator.conditional.colon.apex" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + "colon-expression": { + "name": "keyword.operator.conditional.colon.apex", + "match": ":" + }, + "parenthesized-expression": { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.parenthesis.open.apex" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.parenthesis.close.apex" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + "initializer-expression": { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.curlybrace.open.apex" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.curlybrace.close.apex" + } + }, + "patterns": [ + { + "include": "#expression" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "identifier": { + "name": "variable.other.readwrite.apex", + "match": "@?[_[:alpha:]][_[:alnum:]]*" + }, + "cast-expression": { + "match": "(?x)\n(\\()\\s*\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)\\s*\n(\\))(?=\\s*@?[_[:alnum:]\\(])", + "captures": { + "1": { + "name": "punctuation.parenthesis.open.apex" + }, + "2": { + "patterns": [ + { + "include": "#support-type" + }, + { + "include": "#type" + } + ] + }, + "6": { + "name": "punctuation.parenthesis.close.apex" + } + } + }, + "this-expression": { + "match": "\\b(?:(this))\\b", + "captures": { + "1": { + "name": "keyword.other.this.apex" + } + } + }, + "invocation-expression": { + "begin": "(?x)\n(?:(\\??\\.)\\s*)? # safe navigator or accessor\n(@?[_[:alpha:]][_[:alnum:]]*)\\s* # method name\n(?<type_args>\\s*<([^<>]|\\g<type_args>)+>\\s*)?\\s* # type arguments\n(?=\\() # open paren of argument list", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#punctuation-accessor" + }, + { + "include": "#operator-safe-navigation" + } + ] + }, + "2": { + "name": "entity.name.function.apex" + }, + "3": { + "patterns": [ + { + "include": "#type-arguments" + } + ] + } + }, + "end": "(?<=\\))", + "patterns": [ + { + "include": "#argument-list" + } + ] + }, + "element-access-expression": { + "begin": "(?x)\n(?:(\\??\\.)\\s*)? # safe navigator or accessor\n(?:(@?[_[:alpha:]][_[:alnum:]]*)\\s*)? # property name\n(?:(\\?)\\s*)? # null-conditional operator?\n(?=\\[) # open bracket of argument list", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#punctuation-accessor" + }, + { + "include": "#operator-safe-navigation" + } + ] + }, + "2": { + "name": "variable.other.object.property.apex" + }, + "3": { + "name": "keyword.operator.null-conditional.apex" + } + }, + "end": "(?<=\\])(?!\\s*\\[)", + "patterns": [ + { + "include": "#bracketed-argument-list" + } + ] + }, + "member-access-expression": { + "patterns": [ + { + "match": "(?x)\n(\\??\\.)\\s* # safe navigator or accessor\n(@?[_[:alpha:]][_[:alnum:]]*)\\s* # property name\n(?![_[:alnum:]]|\\(|(\\?)?\\[|<) # next character is not alpha-numeric, nor a (, [, or <. Also, test for ?[", + "captures": { + "1": { + "patterns": [ + { + "include": "#punctuation-accessor" + }, + { + "include": "#operator-safe-navigation" + } + ] + }, + "2": { + "name": "variable.other.object.property.apex" + } + } + }, + { + "match": "(?x)\n(\\??\\.)?\\s*\n(@?[_[:alpha:]][_[:alnum:]]*)\n(?<type_params>\\s*<([^<>]|\\g<type_params>)+>\\s*)\n(?=\n (\\s*\\?)?\n \\s*\\.\\s*@?[_[:alpha:]][_[:alnum:]]*\n)", + "captures": { + "1": { + "patterns": [ + { + "include": "#punctuation-accessor" + }, + { + "include": "#operator-safe-navigation" + } + ] + }, + "2": { + "name": "variable.other.object.apex" + }, + "3": { + "patterns": [ + { + "include": "#type-arguments" + } + ] + } + } + }, + { + "match": "(?x)\n(@?[_[:alpha:]][_[:alnum:]]*)\n(?=\n (\\s*\\?)?\n \\s*\\.\\s*@?[_[:alpha:]][_[:alnum:]]*\n)", + "captures": { + "1": { + "name": "variable.other.object.apex" + } + } + } + ] + }, + "object-creation-expression": { + "patterns": [ + { + "include": "#object-creation-expression-with-parameters" + }, + { + "include": "#object-creation-expression-with-no-parameters" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "object-creation-expression-with-parameters": { + "begin": "(?x)\n(delete|insert|undelete|update|upsert)?\n\\s*(new)\\s+\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)\\s*\n(?=\\()", + "beginCaptures": { + "1": { + "name": "support.function.apex" + }, + "2": { + "name": "keyword.control.new.apex" + }, + "3": { + "patterns": [ + { + "include": "#support-type" + }, + { + "include": "#type" + } + ] + } + }, + "end": "(?<=\\))", + "patterns": [ + { + "include": "#argument-list" + } + ] + }, + "object-creation-expression-with-no-parameters": { + "match": "(?x)\n(delete|insert|undelete|update|upsert)?\n\\s*(new)\\s+\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)\\s*\n(?=\\{|$)", + "captures": { + "1": { + "name": "support.function.apex" + }, + "2": { + "name": "keyword.control.new.apex" + }, + "3": { + "patterns": [ + { + "include": "#support-type" + }, + { + "include": "#type" + } + ] + } + } + }, + "array-creation-expression": { + "begin": "(?x)\n\\b(new)\\b\\s*\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)?\\s*\n(?=\\[)", + "beginCaptures": { + "1": { + "name": "keyword.control.new.apex" + }, + "2": { + "patterns": [ + { + "include": "#support-type" + }, + { + "include": "#type" + } + ] + } + }, + "end": "(?<=\\])", + "patterns": [ + { + "include": "#bracketed-argument-list" + } + ] + }, + "parenthesized-parameter-list": { + "begin": "(\\()", + "beginCaptures": { + "0": { + "name": "punctuation.parenthesis.open.apex" + } + }, + "end": "(\\))", + "endCaptures": { + "0": { + "name": "punctuation.parenthesis.close.apex" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#parameter" + }, + { + "include": "#punctuation-comma" + }, + { + "include": "#variable-initializer" + } + ] + }, + "parameter": { + "match": "(?x)\n(?:(?:\\b(this)\\b)\\s+)?\n(?<type_name>\n (?:\n (?:ref\\s+)? # ref return\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)*\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)\\s+\n(\\g<identifier>)", + "captures": { + "1": { + "name": "storage.modifier.apex" + }, + "2": { + "patterns": [ + { + "include": "#support-type" + }, + { + "include": "#type" + } + ] + }, + "6": { + "name": "entity.name.variable.parameter.apex" + } + } + }, + "argument-list": { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.parenthesis.open.apex" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.parenthesis.close.apex" + } + }, + "patterns": [ + { + "include": "#named-argument" + }, + { + "include": "#expression" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "bracketed-argument-list": { + "begin": "\\[", + "beginCaptures": { + "0": { + "name": "punctuation.squarebracket.open.apex" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.squarebracket.close.apex" + } + }, + "patterns": [ + { + "include": "#soql-query-expression" + }, + { + "include": "#named-argument" + }, + { + "include": "#expression" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "named-argument": { + "begin": "(@?[_[:alpha:]][_[:alnum:]]*)\\s*(:)", + "beginCaptures": { + "1": { + "name": "entity.name.variable.parameter.apex" + }, + "2": { + "name": "punctuation.separator.colon.apex" + } + }, + "end": "(?=(,|\\)|\\]))", + "patterns": [ + { + "include": "#expression" + } + ] + }, + "type": { + "name": "meta.type.apex", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#type-builtin" + }, + { + "include": "#type-name" + }, + { + "include": "#type-arguments" + }, + { + "include": "#type-array-suffix" + }, + { + "include": "#type-nullable-suffix" + } + ] + }, + "type-builtin": { + "match": "\\b(Blob|Boolean|byte|Date|Datetime|Decimal|Double|ID|Integer|Long|Object|String|Time|void)\\b", + "captures": { + "1": { + "name": "keyword.type.apex" + } + } + }, + "type-name": { + "patterns": [ + { + "match": "(@?[_[:alpha:]][_[:alnum:]]*)\\s*(\\.)", + "captures": { + "1": { + "name": "storage.type.apex" + }, + "2": { + "name": "punctuation.accessor.apex" + } + } + }, + { + "match": "(\\.)\\s*(@?[_[:alpha:]][_[:alnum:]]*)", + "captures": { + "1": { + "name": "punctuation.accessor.apex" + }, + "2": { + "name": "storage.type.apex" + } + } + }, + { + "name": "storage.type.apex", + "match": "@?[_[:alpha:]][_[:alnum:]]*" + } + ] + }, + "type-arguments": { + "begin": "<", + "beginCaptures": { + "0": { + "name": "punctuation.definition.typeparameters.begin.apex" + } + }, + "end": ">", + "endCaptures": { + "0": { + "name": "punctuation.definition.typeparameters.end.apex" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#support-type" + }, + { + "include": "#type" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "type-array-suffix": { + "begin": "\\[", + "beginCaptures": { + "0": { + "name": "punctuation.squarebracket.open.apex" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.squarebracket.close.apex" + } + }, + "patterns": [ + { + "include": "#punctuation-comma" + } + ] + }, + "type-nullable-suffix": { + "match": "\\?", + "captures": { + "0": { + "name": "punctuation.separator.question-mark.apex" + } + } + }, + "operator-assignment": { + "name": "keyword.operator.assignment.apex", + "match": "(?<!=|!)(=)(?!=)" + }, + "operator-safe-navigation": { + "name": "keyword.operator.safe-navigation.apex", + "match": "\\?\\." + }, + "punctuation-comma": { + "name": "punctuation.separator.comma.apex", + "match": "," + }, + "punctuation-semicolon": { + "name": "punctuation.terminator.statement.apex", + "match": ";" + }, + "punctuation-accessor": { + "name": "punctuation.accessor.apex", + "match": "\\." + }, + "comment": { + "patterns": [ + { + "name": "comment.block.apex", + "begin": "/\\*(\\*)?", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.apex" + } + }, + "end": "\\*/", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.apex" + } + } + }, + { + "begin": "(^\\s+)?(?=//)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.apex" + } + }, + "end": "(?=$)", + "patterns": [ + { + "name": "comment.block.documentation.apex", + "begin": "(?<!/)///(?!/)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.apex" + } + }, + "end": "(?=$)", + "patterns": [ + { + "include": "#xml-doc-comment" + } + ] + }, + { + "name": "comment.line.double-slash.apex", + "begin": "(?<!/)//(?:(?!/)|(?=//))", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.apex" + } + }, + "end": "(?=$)" + } + ] + } + ] + }, + "javadoc-comment": { + "patterns": [ + { + "name": "comment.block.javadoc.apex", + "begin": "^\\s*(/\\*\\*)(?!/)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.apex" + } + }, + "end": "\\*/", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.apex" + } + }, + "patterns": [ + { + "match": "@(deprecated|author|return|see|serial|since|version|usage|name|link)\\b", + "name": "keyword.other.documentation.javadoc.apex" + }, + { + "match": "(@param)\\s+(\\S+)", + "captures": { + "1": { + "name": "keyword.other.documentation.javadoc.apex" + }, + "2": { + "name": "entity.name.variable.parameter.apex" + } + } + }, + { + "match": "(@(?:exception|throws))\\s+(\\S+)", + "captures": { + "1": { + "name": "keyword.other.documentation.javadoc.apex" + }, + "2": { + "name": "entity.name.type.class.apex" + } + } + }, + { + "match": "(`([^`]+?)`)", + "captures": { + "1": { + "name": "string.quoted.single.apex" + } + } + } + ] + } + ] + }, + "xml-doc-comment": { + "patterns": [ + { + "include": "#xml-comment" + }, + { + "include": "#xml-character-entity" + }, + { + "include": "#xml-cdata" + }, + { + "include": "#xml-tag" + } + ] + }, + "xml-tag": { + "name": "meta.tag.apex", + "begin": "(?x)\n(</?)\n(\n (?:\n ([-_[:alnum:]]+)\n (:)\n )?\n ([-_[:alnum:]]+)\n)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.apex" + }, + "2": { + "name": "entity.name.tag.apex" + }, + "3": { + "name": "entity.name.tag.namespace.apex" + }, + "4": { + "name": "punctuation.separator.colon.apex" + }, + "5": { + "name": "entity.name.tag.localname.apex" + } + }, + "end": "(/?>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.apex" + } + }, + "patterns": [ + { + "include": "#xml-attribute" + } + ] + }, + "xml-attribute": { + "patterns": [ + { + "match": "(?x)\n(?:^|\\s+)\n(\n (?:\n ([-_[:alnum:]]+)\n (:)\n )?\n ([-_[:alnum:]]+)\n)\n(=)", + "captures": { + "1": { + "name": "entity.other.attribute-name.apex" + }, + "2": { + "name": "entity.other.attribute-name.namespace.apex" + }, + "3": { + "name": "punctuation.separator.colon.apex" + }, + "4": { + "name": "entity.other.attribute-name.localname.apex" + }, + "5": { + "name": "punctuation.separator.equals.apex" + } + } + }, + { + "include": "#xml-string" + } + ] + }, + "xml-cdata": { + "name": "string.unquoted.cdata.apex", + "begin": "<!\\[CDATA\\[", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.apex" + } + }, + "end": "\\]\\]>", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.apex" + } + } + }, + "xml-string": { + "patterns": [ + { + "name": "string.quoted.single.apex", + "begin": "\\'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.apex" + } + }, + "end": "\\'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.apex" + } + }, + "patterns": [ + { + "include": "#xml-character-entity" + } + ] + }, + { + "name": "string.quoted.double.apex", + "begin": "\\\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.stringdoublequote.begin.apex" + } + }, + "end": "\\\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.stringdoublequote.end.apex" + } + }, + "patterns": [ + { + "include": "#xml-character-entity" + } + ] + } + ] + }, + "xml-character-entity": { + "patterns": [ + { + "name": "constant.character.entity.apex", + "match": "(?x)\n(&)\n(\n (?:[[:alpha:]:_][[:alnum:]:_.-]*)|\n (?:\\#[[:digit:]]+)|\n (?:\\#x[[:xdigit:]]+)\n)\n(;)", + "captures": { + "1": { + "name": "punctuation.definition.constant.apex" + }, + "3": { + "name": "punctuation.definition.constant.apex" + } + } + }, + { + "name": "invalid.illegal.bad-ampersand.apex", + "match": "&" + } + ] + }, + "xml-comment": { + "name": "comment.block.apex", + "begin": "<!--", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.apex" + } + }, + "end": "-->", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.apex" + } + } + } + } +} diff --git a/docs/shiki/languages/apl.tmLanguage.json b/docs/shiki/languages/apl.tmLanguage.json new file mode 100644 index 00000000..43086350 --- /dev/null +++ b/docs/shiki/languages/apl.tmLanguage.json @@ -0,0 +1,1468 @@ +{ + "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", + "name": "apl", + "scopeName": "source.apl", + "fileTypes": ["apl", "apla", "aplc", "aplf", "apli", "apln", "aplo", "dyalog", "dyapp", "mipage"], + "firstLineMatch": "(?x)\n# APL symbols\n[⌶-⍺]\n|\n\n# Hashbang\n^\\#!.*(?:\\s|\\/|(?<=!)\\b)\n\t(?:gnu[-._]?apl|aplx?|dyalog)\n(?:$|\\s)\n|\n\n# Modeline\n(?i:\n\t# Emacs\n\t-\\*-(?:\\s*(?=[^:;\\s]+\\s*-\\*-)|(?:.*?[;\\s]|(?<=-\\*-))mode\\s*:\\s*)\n\t\tapl\n\t(?=[\\s;]|(?<![-*])-\\*-).*?-\\*-\n\n\t|\n\n\t# Vim\n\t(?:(?:\\s|^)vi(?:m[<=>]?\\d+|m)?|\\sex)(?=:(?=\\s*set?\\s[^\\n:]+:)|:(?!\\s* set?\\s))(?:(?:\\s|\\s*:\\s*)\\w*(?:\\s*=(?:[^\\n\\\\\\s]|\\\\.)*)?)*[\\s:](?:filetype|ft|syntax)\\s*=\n\t\tapl\n\t(?=\\s|:|$)\n)", + "foldingStartMarker": "{", + "foldingStopMarker": "}", + "patterns": [ + { + "match": "\\A#!.*$", + "name": "comment.line.shebang.apl" + }, + { + "include": "#heredocs" + }, + { + "include": "#main" + }, + { + "contentName": "text.embedded.apl", + "begin": "^\\s*((\\))OFF|(\\])NEXTFILE)\\b(.*)$", + "end": "(?=N)A", + "beginCaptures": { + "1": { + "name": "entity.name.command.eof.apl" + }, + "2": { + "name": "punctuation.definition.command.apl" + }, + "3": { + "name": "punctuation.definition.command.apl" + }, + "4": { + "patterns": [ + { + "include": "#comment" + } + ] + } + } + }, + { + "name": "meta.round.bracketed.group.apl", + "patterns": [ + { + "include": "#main" + } + ], + "begin": "\\(", + "end": "\\)", + "beginCaptures": { + "0": { + "name": "punctuation.round.bracket.begin.apl" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.round.bracket.end.apl" + } + } + }, + { + "name": "meta.square.bracketed.group.apl", + "patterns": [ + { + "include": "#main" + } + ], + "begin": "\\[", + "end": "\\]", + "beginCaptures": { + "0": { + "name": "punctuation.square.bracket.begin.apl" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.square.bracket.end.apl" + } + } + }, + { + "name": "meta.system.command.apl", + "begin": "^\\s*((\\))\\S+)", + "end": "$", + "beginCaptures": { + "1": { + "name": "entity.name.command.apl" + }, + "2": { + "name": "punctuation.definition.command.apl" + } + }, + "patterns": [ + { + "include": "#command-arguments" + }, + { + "include": "#command-switches" + }, + { + "include": "#main" + } + ] + }, + { + "name": "meta.user.command.apl", + "begin": "^\\s*((\\])\\S+)", + "end": "$", + "beginCaptures": { + "1": { + "name": "entity.name.command.apl" + }, + "2": { + "name": "punctuation.definition.command.apl" + } + }, + "patterns": [ + { + "include": "#command-arguments" + }, + { + "include": "#command-switches" + }, + { + "include": "#main" + } + ] + } + ], + "repository": { + "main": { + "patterns": [ + { + "include": "#class" + }, + { + "include": "#definition" + }, + { + "include": "#comment" + }, + { + "include": "#label" + }, + { + "include": "#sck" + }, + { + "include": "#strings" + }, + { + "include": "#number" + }, + { + "include": "#lambda" + }, + { + "include": "#sysvars" + }, + { + "include": "#symbols" + }, + { + "include": "#name" + } + ] + }, + "comment": { + "patterns": [ + { + "name": "comment.line.apl", + "begin": "⍝", + "end": "$", + "captures": { + "0": { + "name": "punctuation.definition.comment.apl" + } + } + } + ] + }, + "number": { + "patterns": [ + { + "name": "constant.numeric.apl", + "match": "¯?[0-9][¯0-9A-Za-z]*(?:\\.[¯0-9Ee][¯0-9A-Za-z]*)*|¯?\\.[0-9Ee][¯0-9A-Za-z]*" + } + ] + }, + "strings": { + "patterns": [ + { + "name": "string.quoted.single.apl", + "begin": "'", + "end": "'|$", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.apl" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.apl" + } + }, + "patterns": [ + { + "match": "[^']*[^'\\n\\r\\\\]$", + "name": "invalid.illegal.string.apl" + } + ] + }, + { + "name": "string.quoted.double.apl", + "begin": "\"", + "end": "\"|$", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.apl" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.apl" + } + }, + "patterns": [ + { + "match": "[^\"]*[^\"\\n\\r\\\\]$", + "name": "invalid.illegal.string.apl" + } + ] + } + ] + }, + "name": { + "patterns": [ + { + "name": "variable.other.readwrite.apl", + "match": "(?x)\n[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ]\n[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*" + } + ] + }, + "label": { + "patterns": [ + { + "name": "meta.label.apl", + "match": "(?x)\n^\\s*\n(\n\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ]\n\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*\n)\n(:)", + "captures": { + "1": { + "name": "entity.label.name.apl" + }, + "2": { + "name": "punctuation.definition.label.end.apl" + } + } + } + ] + }, + "symbols": { + "patterns": [ + { + "match": "(?<=\\s)←(?=\\s|$)", + "name": "keyword.spaced.operator.assignment.apl" + }, + { + "match": "(?<=\\s)→(?=\\s|$)", + "name": "keyword.spaced.control.goto.apl" + }, + { + "match": "(?<=\\s)≡(?=\\s|$)", + "name": "keyword.spaced.operator.identical.apl" + }, + { + "match": "(?<=\\s)≢(?=\\s|$)", + "name": "keyword.spaced.operator.not-identical.apl" + }, + { + "match": "\\+", + "name": "keyword.operator.plus.apl" + }, + { + "match": "[-−]", + "name": "keyword.operator.minus.apl" + }, + { + "match": "×", + "name": "keyword.operator.times.apl" + }, + { + "match": "÷", + "name": "keyword.operator.divide.apl" + }, + { + "match": "⌊", + "name": "keyword.operator.floor.apl" + }, + { + "match": "⌈", + "name": "keyword.operator.ceiling.apl" + }, + { + "match": "[∣|]", + "name": "keyword.operator.absolute.apl" + }, + { + "match": "[⋆*]", + "name": "keyword.operator.exponent.apl" + }, + { + "match": "⍟", + "name": "keyword.operator.logarithm.apl" + }, + { + "match": "○", + "name": "keyword.operator.circle.apl" + }, + { + "match": "!", + "name": "keyword.operator.factorial.apl" + }, + { + "match": "∧", + "name": "keyword.operator.and.apl" + }, + { + "match": "∨", + "name": "keyword.operator.or.apl" + }, + { + "match": "⍲", + "name": "keyword.operator.nand.apl" + }, + { + "match": "⍱", + "name": "keyword.operator.nor.apl" + }, + { + "match": "<", + "name": "keyword.operator.less.apl" + }, + { + "match": "≤", + "name": "keyword.operator.less-or-equal.apl" + }, + { + "match": "=", + "name": "keyword.operator.equal.apl" + }, + { + "match": "≥", + "name": "keyword.operator.greater-or-equal.apl" + }, + { + "match": ">", + "name": "keyword.operator.greater.apl" + }, + { + "match": "≠", + "name": "keyword.operator.not-equal.apl" + }, + { + "match": "[∼~]", + "name": "keyword.operator.tilde.apl" + }, + { + "match": "\\?", + "name": "keyword.operator.random.apl" + }, + { + "match": "[∊∈]", + "name": "keyword.operator.member-of.apl" + }, + { + "match": "⍷", + "name": "keyword.operator.find.apl" + }, + { + "match": ",", + "name": "keyword.operator.comma.apl" + }, + { + "match": "⍪", + "name": "keyword.operator.comma-bar.apl" + }, + { + "match": "⌷", + "name": "keyword.operator.squad.apl" + }, + { + "match": "⍳", + "name": "keyword.operator.iota.apl" + }, + { + "match": "⍴", + "name": "keyword.operator.rho.apl" + }, + { + "match": "↑", + "name": "keyword.operator.take.apl" + }, + { + "match": "↓", + "name": "keyword.operator.drop.apl" + }, + { + "match": "⊣", + "name": "keyword.operator.left.apl" + }, + { + "match": "⊢", + "name": "keyword.operator.right.apl" + }, + { + "match": "⊤", + "name": "keyword.operator.encode.apl" + }, + { + "match": "⊥", + "name": "keyword.operator.decode.apl" + }, + { + "match": "\\/", + "name": "keyword.operator.slash.apl" + }, + { + "match": "⌿", + "name": "keyword.operator.slash-bar.apl" + }, + { + "match": "\\x5C", + "name": "keyword.operator.backslash.apl" + }, + { + "match": "⍀", + "name": "keyword.operator.backslash-bar.apl" + }, + { + "match": "⌽", + "name": "keyword.operator.rotate-last.apl" + }, + { + "match": "⊖", + "name": "keyword.operator.rotate-first.apl" + }, + { + "match": "⍉", + "name": "keyword.operator.transpose.apl" + }, + { + "match": "⍋", + "name": "keyword.operator.grade-up.apl" + }, + { + "match": "⍒", + "name": "keyword.operator.grade-down.apl" + }, + { + "match": "⌹", + "name": "keyword.operator.quad-divide.apl" + }, + { + "match": "≡", + "name": "keyword.operator.identical.apl" + }, + { + "match": "≢", + "name": "keyword.operator.not-identical.apl" + }, + { + "match": "⊂", + "name": "keyword.operator.enclose.apl" + }, + { + "match": "⊃", + "name": "keyword.operator.pick.apl" + }, + { + "match": "∩", + "name": "keyword.operator.intersection.apl" + }, + { + "match": "∪", + "name": "keyword.operator.union.apl" + }, + { + "match": "⍎", + "name": "keyword.operator.hydrant.apl" + }, + { + "match": "⍕", + "name": "keyword.operator.thorn.apl" + }, + { + "match": "⊆", + "name": "keyword.operator.underbar-shoe-left.apl" + }, + { + "match": "⍸", + "name": "keyword.operator.underbar-iota.apl" + }, + { + "match": "¨", + "name": "keyword.operator.each.apl" + }, + { + "match": "⍤", + "name": "keyword.operator.rank.apl" + }, + { + "match": "⌸", + "name": "keyword.operator.quad-equal.apl" + }, + { + "match": "⍨", + "name": "keyword.operator.commute.apl" + }, + { + "match": "⍣", + "name": "keyword.operator.power.apl" + }, + { + "match": "\\.", + "name": "keyword.operator.dot.apl" + }, + { + "match": "∘", + "name": "keyword.operator.jot.apl" + }, + { + "match": "⍠", + "name": "keyword.operator.quad-colon.apl" + }, + { + "match": "&", + "name": "keyword.operator.ampersand.apl" + }, + { + "match": "⌶", + "name": "keyword.operator.i-beam.apl" + }, + { + "match": "⌺", + "name": "keyword.operator.quad-diamond.apl" + }, + { + "match": "@", + "name": "keyword.operator.at.apl" + }, + { + "match": "◊", + "name": "keyword.operator.lozenge.apl" + }, + { + "match": ";", + "name": "keyword.operator.semicolon.apl" + }, + { + "match": "¯", + "name": "keyword.operator.high-minus.apl" + }, + { + "match": "←", + "name": "keyword.operator.assignment.apl" + }, + { + "match": "→", + "name": "keyword.control.goto.apl" + }, + { + "match": "⍬", + "name": "constant.language.zilde.apl" + }, + { + "match": "⋄", + "name": "keyword.operator.diamond.apl" + }, + { + "match": "⍫", + "name": "keyword.operator.lock.apl" + }, + { + "match": "⎕", + "name": "keyword.operator.quad.apl" + }, + { + "match": "##", + "name": "constant.language.namespace.parent.apl" + }, + { + "match": "#", + "name": "constant.language.namespace.root.apl" + }, + { + "match": "⌻", + "name": "keyword.operator.quad-jot.apl" + }, + { + "match": "⌼", + "name": "keyword.operator.quad-circle.apl" + }, + { + "match": "⌾", + "name": "keyword.operator.circle-jot.apl" + }, + { + "match": "⍁", + "name": "keyword.operator.quad-slash.apl" + }, + { + "match": "⍂", + "name": "keyword.operator.quad-backslash.apl" + }, + { + "match": "⍃", + "name": "keyword.operator.quad-less.apl" + }, + { + "match": "⍄", + "name": "keyword.operator.greater.apl" + }, + { + "match": "⍅", + "name": "keyword.operator.vane-left.apl" + }, + { + "match": "⍆", + "name": "keyword.operator.vane-right.apl" + }, + { + "match": "⍇", + "name": "keyword.operator.quad-arrow-left.apl" + }, + { + "match": "⍈", + "name": "keyword.operator.quad-arrow-right.apl" + }, + { + "match": "⍊", + "name": "keyword.operator.tack-down.apl" + }, + { + "match": "⍌", + "name": "keyword.operator.quad-caret-down.apl" + }, + { + "match": "⍍", + "name": "keyword.operator.quad-del-up.apl" + }, + { + "match": "⍏", + "name": "keyword.operator.vane-up.apl" + }, + { + "match": "⍐", + "name": "keyword.operator.quad-arrow-up.apl" + }, + { + "match": "⍑", + "name": "keyword.operator.tack-up.apl" + }, + { + "match": "⍓", + "name": "keyword.operator.quad-caret-up.apl" + }, + { + "match": "⍔", + "name": "keyword.operator.quad-del-down.apl" + }, + { + "match": "⍖", + "name": "keyword.operator.vane-down.apl" + }, + { + "match": "⍗", + "name": "keyword.operator.quad-arrow-down.apl" + }, + { + "match": "⍘", + "name": "keyword.operator.underbar-quote.apl" + }, + { + "match": "⍚", + "name": "keyword.operator.underbar-diamond.apl" + }, + { + "match": "⍛", + "name": "keyword.operator.underbar-jot.apl" + }, + { + "match": "⍜", + "name": "keyword.operator.underbar-circle.apl" + }, + { + "match": "⍞", + "name": "keyword.operator.quad-quote.apl" + }, + { + "match": "⍡", + "name": "keyword.operator.dotted-tack-up.apl" + }, + { + "match": "⍢", + "name": "keyword.operator.dotted-del.apl" + }, + { + "match": "⍥", + "name": "keyword.operator.dotted-circle.apl" + }, + { + "match": "⍦", + "name": "keyword.operator.stile-shoe-up.apl" + }, + { + "match": "⍧", + "name": "keyword.operator.stile-shoe-left.apl" + }, + { + "match": "⍩", + "name": "keyword.operator.dotted-greater.apl" + }, + { + "match": "⍭", + "name": "keyword.operator.stile-tilde.apl" + }, + { + "match": "⍮", + "name": "keyword.operator.underbar-semicolon.apl" + }, + { + "match": "⍯", + "name": "keyword.operator.quad-not-equal.apl" + }, + { + "match": "⍰", + "name": "keyword.operator.quad-question.apl" + } + ] + }, + "definition": { + "patterns": [ + { + "name": "meta.function.apl", + "begin": "(?x) ^\\s*? (?# 1: keyword.operator.nabla.apl) (∇) (?: \\s* (?: (?# 2: entity.function.return-value.apl) ( [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* ) | \\s* (?# 3: entity.function.return-value.shy.apl) ( (\\{) (?# 4: punctuation.definition.return-value.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )* (\\}) (?# 5: punctuation.definition.return-value.end.apl) | (\\() (?# 6: punctuation.definition.return-value.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )* (\\)) (?# 7: punctuation.definition.return-value.end.apl) | (\\(\\s*\\{) (?# 8: punctuation.definition.return-value.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )* (\\}\\s*\\)) (?# 9: punctuation.definition.return-value.end.apl) | (\\{\\s*\\() (?# 10: punctuation.definition.return-value.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )* (\\)\\s*\\}) (?# 11: punctuation.definition.return-value.end.apl) ) \\s* ) \\s* (?# 12: keyword.operator.assignment.apl) (←) )? \\s* (?: (?# MONADIC) (?: (?# 13: entity.function.name.apl) ( [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* ) \\s* (?# 14: entity.function.axis.apl) ( (?# 15: punctuation.definition.axis.begin.apl) (\\[) \\s* (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* (?# 16: invalid.illegal.extra-characters.apl) (.*?) | (?# 17: invalid.illegal.apl) ([^\\]]*) ) \\s* (?# 18: punctuation.definition.axis.end.apl) (\\]) )? \\s*? (?# 19: entity.function.arguments.right.apl) ( (?<=\\s|\\]) [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* | (\\() (?# 20: punctuation.definition.arguments.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )* (\\)) (?# 21: punctuation.definition.arguments.end.apl) ) \\s* (?=;|$) ) | (?# DYADIC/AMBIVALENT) (?#==================) (?: (?# 22: entity.function.arguments.left.apl) ( [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s+ ) | (?# 23: entity.function.arguments.left.optional.apl) ( (\\{) (?# 24: punctuation.definition.arguments.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )* (\\}) (?# 25: punctuation.definition.arguments.end.apl) | (\\(\\s*\\{) (?# 26: punctuation.definition.arguments.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )* (\\}\\s*\\)) (?# 27: punctuation.definition.arguments.end.apl) | (\\{\\s*\\() (?# 28: punctuation.definition.arguments.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )* (\\)\\s*\\}) (?# 29: punctuation.definition.arguments.end.apl) ) )? \\s* (?: (?# 30: entity.function.name.apl) ( [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* ) \\s* (?# 31: entity.function.axis.apl) ( (?# 32: punctuation.definition.axis.begin.apl) (\\[) \\s* (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* (?# 33: invalid.illegal.extra-characters.apl) (.*?) | (?# 34: invalid.illegal.apl) ([^\\]]*) ) \\s* (?# 35: punctuation.definition.axis.end.apl) (\\]) )? | (?# 36: entity.function.operands.apl) ( (?# 37: punctuation.definition.operands.begin.apl) (\\() (?# 38: entity.function.operands.left.apl) ( \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* )? \\s* (?# 39: entity.function.name.apl) ( [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* ) \\s*? (?# 40: entity.function.axis.apl) ( (?# 41: punctuation.definition.axis.begin.apl) (\\[) \\s* (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* (?# 42: invalid.illegal.extra-characters.apl) (.*?) | (?# 43: invalid.illegal.apl) ([^\\]]*) ) \\s* (?# 44: punctuation.definition.axis.end.apl) (\\]) )? \\s* (?# 45: entity.function.operands.right.apl) ( [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )? (?# 46: punctuation.definition.operands.end.apl) (\\)) ) ) \\s* (?# 47: entity.function.arguments.right.apl) ( (?<=\\s|\\]) [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* | \\s* (\\() (?# 48: punctuation.definition.arguments.begin.apl) (?: \\s* [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )* (\\)) (?# 49: punctuation.definition.arguments.end.apl) )? (?#==================) ) \\s* (?# 50: invalid.illegal.arguments.right.apl) ([^;]+)? (?# 51: entity.function.local-variables.apl) ( (?# 52: Include “;”) ( (?> \\s* ; (?: \\s* [⎕A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ] [A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]* \\s* )+ )+ ) | (?# 53: invalid.illegal.local-variables.apl) ([^⍝]+) )? \\s* (?# 54: comment.line.apl) (⍝.*)? $", + "end": "^\\s*?(?:(∇)|(⍫))\\s*?(⍝.*?)?$", + "patterns": [ + { + "name": "entity.function.definition.apl", + "match": "(?x)\n^\\s*\n(\n\t(?>\n\t\t;\n\t\t(?:\n\t\t\t\\s*\n\t\t\t[⎕A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ]\n\t\t\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*\n\t\t\t\\s*\n\t\t)+\n\t)+\n)", + "captures": { + "0": { + "name": "entity.function.local-variables.apl" + }, + "1": { + "patterns": [ + { + "name": "punctuation.separator.apl", + "match": ";" + } + ] + } + } + }, + { + "include": "$self" + } + ], + "beginCaptures": { + "0": { + "name": "entity.function.definition.apl" + }, + "1": { + "name": "keyword.operator.nabla.apl" + }, + "2": { + "name": "entity.function.return-value.apl" + }, + "3": { + "name": "entity.function.return-value.shy.apl" + }, + "4": { + "name": "punctuation.definition.return-value.begin.apl" + }, + "5": { + "name": "punctuation.definition.return-value.end.apl" + }, + "6": { + "name": "punctuation.definition.return-value.begin.apl" + }, + "7": { + "name": "punctuation.definition.return-value.end.apl" + }, + "8": { + "name": "punctuation.definition.return-value.begin.apl" + }, + "9": { + "name": "punctuation.definition.return-value.end.apl" + }, + "10": { + "name": "punctuation.definition.return-value.begin.apl" + }, + "11": { + "name": "punctuation.definition.return-value.end.apl" + }, + "12": { + "name": "keyword.operator.assignment.apl" + }, + "13": { + "name": "entity.function.name.apl", + "patterns": [ + { + "include": "#embolden" + } + ] + }, + "14": { + "name": "entity.function.axis.apl" + }, + "15": { + "name": "punctuation.definition.axis.begin.apl" + }, + "16": { + "name": "invalid.illegal.extra-characters.apl" + }, + "17": { + "name": "invalid.illegal.apl" + }, + "18": { + "name": "punctuation.definition.axis.end.apl" + }, + "19": { + "name": "entity.function.arguments.right.apl" + }, + "20": { + "name": "punctuation.definition.arguments.begin.apl" + }, + "21": { + "name": "punctuation.definition.arguments.end.apl" + }, + "22": { + "name": "entity.function.arguments.left.apl" + }, + "23": { + "name": "entity.function.arguments.left.optional.apl" + }, + "24": { + "name": "punctuation.definition.arguments.begin.apl" + }, + "25": { + "name": "punctuation.definition.arguments.end.apl" + }, + "26": { + "name": "punctuation.definition.arguments.begin.apl" + }, + "27": { + "name": "punctuation.definition.arguments.end.apl" + }, + "28": { + "name": "punctuation.definition.arguments.begin.apl" + }, + "29": { + "name": "punctuation.definition.arguments.end.apl" + }, + "30": { + "name": "entity.function.name.apl", + "patterns": [ + { + "include": "#embolden" + } + ] + }, + "31": { + "name": "entity.function.axis.apl" + }, + "32": { + "name": "punctuation.definition.axis.begin.apl" + }, + "33": { + "name": "invalid.illegal.extra-characters.apl" + }, + "34": { + "name": "invalid.illegal.apl" + }, + "35": { + "name": "punctuation.definition.axis.end.apl" + }, + "36": { + "name": "entity.function.operands.apl" + }, + "37": { + "name": "punctuation.definition.operands.begin.apl" + }, + "38": { + "name": "entity.function.operands.left.apl" + }, + "39": { + "name": "entity.function.name.apl", + "patterns": [ + { + "include": "#embolden" + } + ] + }, + "40": { + "name": "entity.function.axis.apl" + }, + "41": { + "name": "punctuation.definition.axis.begin.apl" + }, + "42": { + "name": "invalid.illegal.extra-characters.apl" + }, + "43": { + "name": "invalid.illegal.apl" + }, + "44": { + "name": "punctuation.definition.axis.end.apl" + }, + "45": { + "name": "entity.function.operands.right.apl" + }, + "46": { + "name": "punctuation.definition.operands.end.apl" + }, + "47": { + "name": "entity.function.arguments.right.apl" + }, + "48": { + "name": "punctuation.definition.arguments.begin.apl" + }, + "49": { + "name": "punctuation.definition.arguments.end.apl" + }, + "50": { + "name": "invalid.illegal.arguments.right.apl" + }, + "51": { + "name": "entity.function.local-variables.apl" + }, + "52": { + "patterns": [ + { + "name": "punctuation.separator.apl", + "match": ";" + } + ] + }, + "53": { + "name": "invalid.illegal.local-variables.apl" + }, + "54": { + "name": "comment.line.apl" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.nabla.apl" + }, + "2": { + "name": "keyword.operator.lock.apl" + }, + "3": { + "name": "comment.line.apl" + } + } + } + ] + }, + "embolden": { + "patterns": [ + { + "name": "markup.bold.identifier.apl", + "match": ".+" + } + ] + }, + "lambda": { + "name": "meta.lambda.function.apl", + "begin": "\\{", + "end": "\\}", + "beginCaptures": { + "0": { + "name": "punctuation.definition.lambda.begin.apl" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.lambda.end.apl" + } + }, + "patterns": [ + { + "include": "#main" + }, + { + "include": "#lambda-variables" + } + ] + }, + "lambda-variables": { + "patterns": [ + { + "match": "⍺⍺", + "name": "constant.language.lambda.operands.left.apl" + }, + { + "match": "⍵⍵", + "name": "constant.language.lambda.operands.right.apl" + }, + { + "match": "[⍺⍶]", + "name": "constant.language.lambda.arguments.left.apl" + }, + { + "match": "[⍵⍹]", + "name": "constant.language.lambda.arguments.right.apl" + }, + { + "match": "χ", + "name": "constant.language.lambda.arguments.axis.apl" + }, + { + "match": "∇∇", + "name": "constant.language.lambda.operands.self.operator.apl" + }, + { + "match": "∇", + "name": "constant.language.lambda.operands.self.function.apl" + }, + { + "match": "λ", + "name": "constant.language.lambda.symbol.apl" + } + ] + }, + "sysvars": { + "patterns": [ + { + "match": "(?:(⎕)|(⍞))[A-Za-z]*", + "name": "support.system.variable.apl", + "captures": { + "1": { + "name": "punctuation.definition.quad.apl" + }, + "2": { + "name": "punctuation.definition.quad-quote.apl" + } + } + } + ] + }, + "command-arguments": { + "patterns": [ + { + "name": "variable.parameter.argument.apl", + "begin": "\\b(?=\\S)", + "end": "\\b(?=\\s)", + "patterns": [ + { + "include": "#main" + } + ] + } + ] + }, + "command-switches": { + "patterns": [ + { + "name": "variable.parameter.switch.apl", + "begin": "(?x)\n(?<=\\s)(-)\n(\n\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ]\n\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*\n)\n(=)", + "end": "\\b(?=\\s)", + "beginCaptures": { + "1": { + "name": "punctuation.delimiter.switch.apl" + }, + "2": { + "name": "entity.name.switch.apl" + }, + "3": { + "name": "punctuation.assignment.switch.apl" + } + }, + "patterns": [ + { + "include": "#main" + } + ] + }, + { + "name": "variable.parameter.switch.apl", + "match": "(?x)\n(?<=\\s)(-)\n(\n\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ]\n\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*\n)\n(?!=)", + "captures": { + "1": { + "name": "punctuation.delimiter.switch.apl" + }, + "2": { + "name": "entity.name.switch.apl" + } + } + } + ] + }, + "sck": { + "patterns": [ + { + "name": "keyword.control.sck.apl", + "match": "(?<=\\s|^)(:)[A-Za-z]+", + "captures": { + "1": { + "name": "punctuation.definition.sck.begin.apl" + } + } + } + ] + }, + "class": { + "patterns": [ + { + "begin": "(?x)\n(?<=\\s|^)\n((:)Class)\n\\s+\n(\n\t'[^']*'?\n\t|\n\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ]\n\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*\n)\n\\s*\n(\n\t(:)\n\t\\s*\n\t(?:\n\t\t(\n\t\t\t'[^']*'?\n\t\t\t|\n\t\t\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ]\n\t\t\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*\n\t\t)\n\t\t\\s*\n\t)?\n)?\n(.*?)$", + "end": "(?<=\\s|^)((:)EndClass)(?=\\b)", + "beginCaptures": { + "0": { + "name": "meta.class.apl" + }, + "1": { + "name": "keyword.control.class.apl" + }, + "2": { + "name": "punctuation.definition.class.apl" + }, + "3": { + "name": "entity.name.type.class.apl", + "patterns": [ + { + "include": "#strings" + } + ] + }, + "4": { + "name": "entity.other.inherited-class.apl" + }, + "5": { + "name": "punctuation.separator.inheritance.apl" + }, + "6": { + "patterns": [ + { + "include": "#strings" + } + ] + }, + "7": { + "name": "entity.other.class.interfaces.apl", + "patterns": [ + { + "include": "#csv" + } + ] + } + }, + "endCaptures": { + "1": { + "name": "keyword.control.class.apl" + }, + "2": { + "name": "punctuation.definition.class.apl" + } + }, + "patterns": [ + { + "name": "meta.field.apl", + "begin": "(?<=\\s|^)(:)Field(?=\\s)", + "end": "\\s*(←.*)?(?:$|(?=⍝))", + "beginCaptures": { + "0": { + "name": "keyword.control.field.apl" + }, + "1": { + "name": "punctuation.definition.field.apl" + } + }, + "endCaptures": { + "0": { + "name": "entity.other.initial-value.apl" + }, + "1": { + "patterns": [ + { + "include": "#main" + } + ] + } + }, + "patterns": [ + { + "name": "storage.modifier.access.public.apl", + "match": "(?<=\\s|^)Public(?=\\s|$)" + }, + { + "name": "storage.modifier.access.private.apl", + "match": "(?<=\\s|^)Private(?=\\s|$)" + }, + { + "name": "storage.modifier.shared.apl", + "match": "(?<=\\s|^)Shared(?=\\s|$)" + }, + { + "name": "storage.modifier.instance.apl", + "match": "(?<=\\s|^)Instance(?=\\s|$)" + }, + { + "name": "storage.modifier.readonly.apl", + "match": "(?<=\\s|^)ReadOnly(?=\\s|$)" + }, + { + "name": "entity.name.type.apl", + "match": "(?x)\n(\n\t'[^']*'?\n\t|\n\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ]\n\t[A-Z_a-zÀ-ÖØ-Ýßà-öø-üþ∆⍙Ⓐ-Ⓩ¯0-9]*\n)", + "captures": { + "1": { + "patterns": [ + { + "include": "#strings" + } + ] + } + } + } + ] + }, + { + "include": "$self" + } + ] + } + ] + }, + "csv": { + "patterns": [ + { + "match": ",", + "name": "punctuation.separator.apl" + }, + { + "include": "$self" + } + ] + }, + "heredocs": { + "patterns": [ + { + "name": "meta.heredoc.apl", + "begin": "^.*?⎕INP\\s+('|\")((?i).*?HTML?.*?|END-OF-⎕INP)\\1.*$", + "end": "^.*?\\2.*?$", + "beginCaptures": { + "0": { + "patterns": [ + { + "include": "#main" + } + ] + } + }, + "endCaptures": { + "0": { + "name": "constant.other.apl" + } + }, + "contentName": "text.embedded.html.basic", + "patterns": [ + { + "include": "text.html.basic" + }, + { + "include": "#embedded-apl" + } + ] + }, + { + "name": "meta.heredoc.apl", + "begin": "^.*?⎕INP\\s+('|\")((?i).*?(?:XML|XSLT|SVG|RSS).*?)\\1.*$", + "end": "^.*?\\2.*?$", + "beginCaptures": { + "0": { + "patterns": [ + { + "include": "#main" + } + ] + } + }, + "endCaptures": { + "0": { + "name": "constant.other.apl" + } + }, + "contentName": "text.embedded.xml", + "patterns": [ + { + "include": "text.xml" + }, + { + "include": "#embedded-apl" + } + ] + }, + { + "name": "meta.heredoc.apl", + "begin": "^.*?⎕INP\\s+('|\")((?i).*?(?:CSS|stylesheet).*?)\\1.*$", + "end": "^.*?\\2.*?$", + "beginCaptures": { + "0": { + "patterns": [ + { + "include": "#main" + } + ] + } + }, + "endCaptures": { + "0": { + "name": "constant.other.apl" + } + }, + "contentName": "source.embedded.css", + "patterns": [ + { + "include": "source.css" + }, + { + "include": "#embedded-apl" + } + ] + }, + { + "name": "meta.heredoc.apl", + "begin": "^.*?⎕INP\\s+('|\")((?i).*?(?:JS(?!ON)|(?:ECMA|J|Java).?Script).*?)\\1.*$", + "end": "^.*?\\2.*?$", + "beginCaptures": { + "0": { + "patterns": [ + { + "include": "#main" + } + ] + } + }, + "endCaptures": { + "0": { + "name": "constant.other.apl" + } + }, + "contentName": "source.embedded.js", + "patterns": [ + { + "include": "source.js" + }, + { + "include": "#embedded-apl" + } + ] + }, + { + "name": "meta.heredoc.apl", + "begin": "^.*?⎕INP\\s+('|\")((?i).*?(?:JSON).*?)\\1.*$", + "end": "^.*?\\2.*?$", + "beginCaptures": { + "0": { + "patterns": [ + { + "include": "#main" + } + ] + } + }, + "endCaptures": { + "0": { + "name": "constant.other.apl" + } + }, + "contentName": "source.embedded.json", + "patterns": [ + { + "include": "source.json" + }, + { + "include": "#embedded-apl" + } + ] + }, + { + "name": "meta.heredoc.apl", + "begin": "^.*?⎕INP\\s+('|\")(?i)((?:Raw|Plain)?\\s*Te?xt)\\1.*$", + "end": "^.*?\\2.*?$", + "beginCaptures": { + "0": { + "patterns": [ + { + "include": "#main" + } + ] + } + }, + "endCaptures": { + "0": { + "name": "constant.other.apl" + } + }, + "contentName": "text.embedded.plain", + "patterns": [ + { + "include": "#embedded-apl" + } + ] + }, + { + "name": "meta.heredoc.apl", + "begin": "^.*?⎕INP\\s+('|\")(.*?)\\1.*$", + "end": "^.*?\\2.*?$", + "beginCaptures": { + "0": { + "patterns": [ + { + "include": "#main" + } + ] + } + }, + "endCaptures": { + "0": { + "name": "constant.other.apl" + } + }, + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + "embedded-apl": { + "patterns": [ + { + "name": "meta.embedded.block.apl", + "begin": "(?i)(<(\\?|%)(?:apl(?=\\s+)|=))", + "end": "(?<=\\s)(\\2>)", + "patterns": [ + { + "include": "#main" + } + ], + "beginCaptures": { + "1": { + "name": "punctuation.section.embedded.begin.apl" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.section.embedded.end.apl" + } + } + } + ] + } + } +} diff --git a/docs/shiki/languages/applescript.tmLanguage.json b/docs/shiki/languages/applescript.tmLanguage.json new file mode 100644 index 00000000..9815ca74 --- /dev/null +++ b/docs/shiki/languages/applescript.tmLanguage.json @@ -0,0 +1,1403 @@ +{ + "fileTypes": ["applescript", "scpt", "script editor"], + "firstLineMatch": "^#!.*(osascript)", + "keyEquivalent": "^~A", + "name": "applescript", + "patterns": [ + { + "include": "#blocks" + }, + { + "include": "#inline" + } + ], + "repository": { + "attributes.considering-ignoring": { + "patterns": [ + { + "match": ",", + "name": "punctuation.separator.array.attributes.applescript" + }, + { + "match": "\\b(and)\\b", + "name": "keyword.control.attributes.and.applescript" + }, + { + "match": "\\b(?i:case|diacriticals|hyphens|numeric\\s+strings|punctuation|white\\s+space)\\b", + "name": "constant.other.attributes.text.applescript" + }, + { + "match": "\\b(?i:application\\s+responses)\\b", + "name": "constant.other.attributes.application.applescript" + } + ] + }, + "blocks": { + "patterns": [ + { + "begin": "^\\s*(script)\\s+(\\w+)", + "beginCaptures": { + "1": { + "name": "keyword.control.script.applescript" + }, + "2": { + "name": "entity.name.type.script-object.applescript" + } + }, + "end": "^\\s*(end(?:\\s+script)?)(?=\\s*(--.*?)?$)", + "endCaptures": { + "1": { + "name": "keyword.control.script.applescript" + } + }, + "name": "meta.block.script.applescript", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "begin": "^(?x)\n\t\t\t\t\t\t\\s*(to|on)\\s+ \t\t\t\t\t# \"on\" or \"to\"\n\t\t\t\t\t\t(\\w+)\t\t\t\t\t\t\t# function name\n\t\t\t\t\t\t(\\()\t\t\t\t\t\t\t# opening paren\n\t\t\t\t\t\t\t((?:[\\s,:\\{\\}]*(?:\\w+)?)*)\t# parameters\n\t\t\t\t\t\t(\\))\t\t\t\t\t\t\t# closing paren\n\t\t\t\t\t", + "beginCaptures": { + "1": { + "name": "keyword.control.function.applescript" + }, + "2": { + "name": "entity.name.function.handler.applescript" + }, + "3": { + "name": "punctuation.definition.parameters.begin.applescript" + }, + "4": { + "name": "variable.parameter.handler.applescript" + }, + "5": { + "name": "punctuation.definition.parameters.end.applescript" + } + }, + "comment": "\n\t\t\t\t\t\tThis is not a very well-designed rule. For now,\n\t\t\t\t\t\twe can leave it like this though, as it sorta works.\n\t\t\t\t\t", + "end": "^\\s*(end)(?:\\s+(\\2))?(?=\\s*(--.*?)?$)", + "endCaptures": { + "1": { + "name": "keyword.control.function.applescript" + } + }, + "name": "meta.function.positional.applescript", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "begin": "^(?x)\n\t\t\t\t\t\t\\s*(to|on)\\s+ \t\t\t\t\t# \"on\" or \"to\"\n\t\t\t\t\t\t(\\w+)\t\t\t\t\t\t\t# function name\n\t\t\t\t\t\t(?:\\s+\n\t\t\t\t\t\t\t(of|in)\\s+\t\t\t\t\t# \"of\" or \"in\"\n\t\t\t\t\t\t\t(\\w+)\t\t\t\t\t\t# direct parameter\n\t\t\t\t\t\t)?\n\t\t\t\t\t\t(?=\\s+(above|against|apart\\s+from|around|aside\\s+from|at|below|beneath|beside|between|by|for|from|instead\\s+of|into|on|onto|out\\s+of|over|thru|under)\\b)\n\t\t\t\t\t", + "beginCaptures": { + "1": { + "name": "keyword.control.function.applescript" + }, + "2": { + "name": "entity.name.function.handler.applescript" + }, + "3": { + "name": "keyword.control.function.applescript" + }, + "4": { + "name": "variable.parameter.handler.direct.applescript" + } + }, + "comment": "TODO: match `given` parameters", + "end": "^\\s*(end)(?:\\s+(\\2))?(?=\\s*(--.*?)?$)", + "endCaptures": { + "1": { + "name": "keyword.control.function.applescript" + } + }, + "name": "meta.function.prepositional.applescript", + "patterns": [ + { + "captures": { + "1": { + "name": "keyword.control.preposition.applescript" + }, + "2": { + "name": "variable.parameter.handler.applescript" + } + }, + "match": "\\b(?i:above|against|apart\\s+from|around|aside\\s+from|at|below|beneath|beside|between|by|for|from|instead\\s+of|into|on|onto|out\\s+of|over|thru|under)\\s+(\\w+)\\b" + }, + { + "include": "$self" + } + ] + }, + { + "begin": "^(?x)\n\t\t\t\t\t\t\\s*(to|on)\\s+ \t\t\t\t\t# \"on\" or \"to\"\n\t\t\t\t\t\t(\\w+)\t\t\t\t\t\t\t# function name\n\t\t\t\t\t\t(?=\\s*(--.*?)?$)\t\t\t\t# nothing else\n\t\t\t\t\t", + "beginCaptures": { + "1": { + "name": "keyword.control.function.applescript" + }, + "2": { + "name": "entity.name.function.handler.applescript" + } + }, + "end": "^\\s*(end)(?:\\s+(\\2))?(?=\\s*(--.*?)?$)", + "endCaptures": { + "1": { + "name": "keyword.control.function.applescript" + } + }, + "name": "meta.function.parameterless.applescript", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "include": "#blocks.tell" + }, + { + "include": "#blocks.repeat" + }, + { + "include": "#blocks.statement" + }, + { + "include": "#blocks.other" + } + ] + }, + "blocks.other": { + "patterns": [ + { + "begin": "^\\s*(considering)\\b", + "end": "^\\s*(end(?:\\s+considering)?)(?=\\s*(--.*?)?$)", + "name": "meta.block.considering.applescript", + "patterns": [ + { + "begin": "(?<=considering)", + "end": "(?<!¬)$", + "name": "meta.array.attributes.considering.applescript", + "patterns": [ + { + "include": "#attributes.considering-ignoring" + } + ] + }, + { + "begin": "(?<=ignoring)", + "end": "(?<!¬)$", + "name": "meta.array.attributes.ignoring.applescript", + "patterns": [ + { + "include": "#attributes.considering-ignoring" + } + ] + }, + { + "match": "\\b(but)\\b", + "name": "keyword.control.but.applescript" + }, + { + "include": "$self" + } + ] + }, + { + "begin": "^\\s*(ignoring)\\b", + "end": "^\\s*(end(?:\\s+ignoring)?)(?=\\s*(--.*?)?$)", + "name": "meta.block.ignoring.applescript", + "patterns": [ + { + "begin": "(?<=considering)", + "end": "(?<!¬)$", + "name": "meta.array.attributes.considering.applescript", + "patterns": [ + { + "include": "#attributes.considering-ignoring" + } + ] + }, + { + "begin": "(?<=ignoring)", + "end": "(?<!¬)$", + "name": "meta.array.attributes.ignoring.applescript", + "patterns": [ + { + "include": "#attributes.considering-ignoring" + } + ] + }, + { + "match": "\\b(but)\\b", + "name": "keyword.control.but.applescript" + }, + { + "include": "$self" + } + ] + }, + { + "begin": "^\\s*(if)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.if.applescript" + } + }, + "end": "^\\s*(end(?:\\s+if)?)(?=\\s*(--.*?)?$)", + "endCaptures": { + "1": { + "name": "keyword.control.end.applescript" + } + }, + "name": "meta.block.if.applescript", + "patterns": [ + { + "match": "\\b(then)\\b", + "name": "keyword.control.then.applescript" + }, + { + "match": "\\b(else\\s+if)\\b", + "name": "keyword.control.else-if.applescript" + }, + { + "match": "\\b(else)\\b", + "name": "keyword.control.else.applescript" + }, + { + "include": "$self" + } + ] + }, + { + "begin": "^\\s*(try)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.try.applescript" + } + }, + "end": "^\\s*(end(?:\\s+(try|error))?)(?=\\s*(--.*?)?$)", + "endCaptures": { + "1": { + "name": "keyword.control.end.applescript" + } + }, + "name": "meta.block.try.applescript", + "patterns": [ + { + "begin": "^\\s*(on\\s+error)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.exception.on-error.applescript" + } + }, + "end": "(?<!¬)$", + "name": "meta.property.error.applescript", + "patterns": [ + { + "match": "\\b(?i:number|partial|from|to)\\b", + "name": "keyword.control.exception.modifier.applescript" + }, + { + "include": "#inline" + } + ] + }, + { + "include": "$self" + } + ] + }, + { + "begin": "^\\s*(using\\s+terms\\s+from)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.terms.applescript" + } + }, + "end": "^\\s*(end(?:\\s+using\\s+terms\\s+from)?)(?=\\s*(--.*?)?$)", + "endCaptures": { + "1": { + "name": "keyword.control.end.applescript" + } + }, + "name": "meta.block.terms.applescript", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "begin": "^\\s*(with\\s+timeout(\\s+of)?)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.timeout.applescript" + } + }, + "end": "^\\s*(end(?:\\s+timeout)?)(?=\\s*(--.*?)?$)", + "endCaptures": { + "1": { + "name": "keyword.control.end.applescript" + } + }, + "name": "meta.block.timeout.applescript", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "begin": "^\\s*(with\\s+transaction(\\s+of)?)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.transaction.applescript" + } + }, + "end": "^\\s*(end(?:\\s+transaction)?)(?=\\s*(--.*?)?$)", + "endCaptures": { + "1": { + "name": "keyword.control.end.applescript" + } + }, + "name": "meta.block.transaction.applescript", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + "blocks.repeat": { + "patterns": [ + { + "begin": "^\\s*(repeat)\\s+(until)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.repeat.applescript" + }, + "2": { + "name": "keyword.control.until.applescript" + } + }, + "end": "^\\s*(end(?:\\s+repeat)?)(?=\\s*(--.*?)?$)", + "endCaptures": { + "1": { + "name": "keyword.control.end.applescript" + } + }, + "name": "meta.block.repeat.until.applescript", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "begin": "^\\s*(repeat)\\s+(while)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.repeat.applescript" + }, + "2": { + "name": "keyword.control.while.applescript" + } + }, + "end": "^\\s*(end(?:\\s+repeat)?)(?=\\s*(--.*?)?$)", + "endCaptures": { + "1": { + "name": "keyword.control.end.applescript" + } + }, + "name": "meta.block.repeat.while.applescript", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "begin": "^\\s*(repeat)\\s+(with)\\s+(\\w+)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.repeat.applescript" + }, + "2": { + "name": "keyword.control.until.applescript" + }, + "3": { + "name": "variable.parameter.loop.applescript" + } + }, + "end": "^\\s*(end(?:\\s+repeat)?)(?=\\s*(--.*?)?$)", + "endCaptures": { + "1": { + "name": "keyword.control.end.applescript" + } + }, + "name": "meta.block.repeat.with.applescript", + "patterns": [ + { + "match": "\\b(from|to|by)\\b", + "name": "keyword.control.modifier.range.applescript" + }, + { + "match": "\\b(in)\\b", + "name": "keyword.control.modifier.list.applescript" + }, + { + "include": "$self" + } + ] + }, + { + "begin": "^\\s*(repeat)\\b(?=\\s*(--.*?)?$)", + "beginCaptures": { + "1": { + "name": "keyword.control.repeat.applescript" + } + }, + "end": "^\\s*(end(?:\\s+repeat)?)(?=\\s*(--.*?)?$)", + "endCaptures": { + "1": { + "name": "keyword.control.end.applescript" + } + }, + "name": "meta.block.repeat.forever.applescript", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "begin": "^\\s*(repeat)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.repeat.applescript" + } + }, + "end": "^\\s*(end(?:\\s+repeat)?)(?=\\s*(--.*?)?$)", + "endCaptures": { + "1": { + "name": "keyword.control.end.applescript" + } + }, + "name": "meta.block.repeat.times.applescript", + "patterns": [ + { + "match": "\\b(times)\\b", + "name": "keyword.control.times.applescript" + }, + { + "include": "$self" + } + ] + } + ] + }, + "blocks.statement": { + "patterns": [ + { + "begin": "\\b(prop(?:erty)?)\\s+(\\w+)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.def.property.applescript" + }, + "2": { + "name": "variable.other.property.applescript" + } + }, + "end": "(?<!¬)$", + "name": "meta.statement.property.applescript", + "patterns": [ + { + "match": ":", + "name": "punctuation.separator.key-value.property.applescript" + }, + { + "include": "#inline" + } + ] + }, + { + "begin": "\\b(set)\\s+(\\w+)\\s+(to)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.def.set.applescript" + }, + "2": { + "name": "variable.other.readwrite.set.applescript" + }, + "3": { + "name": "keyword.control.def.set.applescript" + } + }, + "end": "(?<!¬)$", + "name": "meta.statement.set.applescript", + "patterns": [ + { + "include": "#inline" + } + ] + }, + { + "begin": "\\b(local)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.def.local.applescript" + } + }, + "end": "(?<!¬)$", + "name": "meta.statement.local.applescript", + "patterns": [ + { + "match": ",", + "name": "punctuation.separator.variables.local.applescript" + }, + { + "match": "\\b\\w+", + "name": "variable.other.readwrite.local.applescript" + }, + { + "include": "#inline" + } + ] + }, + { + "begin": "\\b(global)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.def.global.applescript" + } + }, + "end": "(?<!¬)$", + "name": "meta.statement.global.applescript", + "patterns": [ + { + "match": ",", + "name": "punctuation.separator.variables.global.applescript" + }, + { + "match": "\\b\\w+", + "name": "variable.other.readwrite.global.applescript" + }, + { + "include": "#inline" + } + ] + }, + { + "begin": "\\b(error)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.exception.error.applescript" + } + }, + "end": "(?<!¬)$", + "name": "meta.statement.error.applescript", + "patterns": [ + { + "match": "\\b(number|partial|from|to)\\b", + "name": "keyword.control.exception.modifier.applescript" + }, + { + "include": "#inline" + } + ] + }, + { + "begin": "\\b(if)\\b(?=.*\\bthen\\b(?!\\s*(--.*?)?$))", + "beginCaptures": { + "1": { + "name": "keyword.control.if.applescript" + } + }, + "end": "(?<!¬)$", + "name": "meta.statement.if-then.applescript", + "patterns": [ + { + "include": "#inline" + } + ] + } + ] + }, + "blocks.tell": { + "patterns": [ + { + "begin": "^\\s*(tell)\\s+(?=app(lication)?\\s+\"(?i:textmate)\")(?!.*\\bto(?!\\s+tell)\\b)", + "captures": { + "1": { + "name": "keyword.control.tell.applescript" + } + }, + "comment": "tell Textmate", + "end": "^\\s*(end(?:\\s+tell)?)(?=\\s*(--.*?)?$)", + "name": "meta.block.tell.application.textmate.applescript", + "patterns": [ + { + "include": "#textmate" + }, + { + "include": "#standard-suite" + }, + { + "include": "$self" + } + ] + }, + { + "begin": "^\\s*(tell)\\s+(?=app(lication)?\\s+\"(?i:finder)\")(?!.*\\bto(?!\\s+tell)\\b)", + "captures": { + "1": { + "name": "keyword.control.tell.applescript" + } + }, + "comment": "tell Finder", + "end": "^\\s*(end(?:\\s+tell)?)(?=\\s*(--.*?)?$)", + "name": "meta.block.tell.application.finder.applescript", + "patterns": [ + { + "include": "#finder" + }, + { + "include": "#standard-suite" + }, + { + "include": "$self" + } + ] + }, + { + "begin": "^\\s*(tell)\\s+(?=app(lication)?\\s+\"(?i:system events)\")(?!.*\\bto(?!\\s+tell)\\b)", + "captures": { + "1": { + "name": "keyword.control.tell.applescript" + } + }, + "comment": "tell System Events", + "end": "^\\s*(end(?:\\s+tell)?)(?=\\s*(--.*?)?$)", + "name": "meta.block.tell.application.system-events.applescript", + "patterns": [ + { + "include": "#system-events" + }, + { + "include": "#standard-suite" + }, + { + "include": "$self" + } + ] + }, + { + "begin": "^\\s*(tell)\\s+(?=app(lication)?\\s+\"(?i:itunes)\")(?!.*\\bto(?!\\s+tell)\\b)", + "captures": { + "1": { + "name": "keyword.control.tell.applescript" + } + }, + "comment": "tell iTunes", + "end": "^\\s*(end(?:\\s+tell)?)(?=\\s*(--.*?)?$)", + "name": "meta.block.tell.application.itunes.applescript", + "patterns": [ + { + "include": "#itunes" + }, + { + "include": "#standard-suite" + }, + { + "include": "$self" + } + ] + }, + { + "begin": "^\\s*(tell)\\s+(?=app(lication)?\\s+process\\b)(?!.*\\bto(?!\\s+tell)\\b)", + "captures": { + "1": { + "name": "keyword.control.tell.applescript" + } + }, + "comment": "tell generic application process", + "end": "^\\s*(end(?:\\s+tell)?)(?=\\s*(--.*?)?$)", + "name": "meta.block.tell.application-process.generic.applescript", + "patterns": [ + { + "include": "#standard-suite" + }, + { + "include": "$self" + } + ] + }, + { + "begin": "^\\s*(tell)\\s+(?=app(lication)?\\b)(?!.*\\bto(?!\\s+tell)\\b)", + "captures": { + "1": { + "name": "keyword.control.tell.applescript" + } + }, + "comment": "tell generic application", + "end": "^\\s*(end(?:\\s+tell)?)(?=\\s*(--.*?)?$)", + "name": "meta.block.tell.application.generic.applescript", + "patterns": [ + { + "include": "#standard-suite" + }, + { + "include": "$self" + } + ] + }, + { + "begin": "^\\s*(tell)\\s+(?!.*\\bto(?!\\s+tell)\\b)", + "captures": { + "1": { + "name": "keyword.control.tell.applescript" + } + }, + "comment": "generic tell block", + "end": "^\\s*(end(?:\\s+tell)?)(?=\\s*(--.*?)?$)", + "name": "meta.block.tell.generic.applescript", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "begin": "^\\s*(tell)\\s+(?=.*\\bto\\b)", + "captures": { + "1": { + "name": "keyword.control.tell.applescript" + } + }, + "comment": "tell … to statement", + "end": "(?<!¬)$", + "name": "meta.block.tell.generic.applescript", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + "built-in": { + "patterns": [ + { + "include": "#built-in.constant" + }, + { + "include": "#built-in.keyword" + }, + { + "include": "#built-in.support" + }, + { + "include": "#built-in.punctuation" + } + ] + }, + "built-in.constant": { + "patterns": [ + { + "comment": "yes/no can’t always be used as booleans, e.g. in an if() expression. But they work e.g. for boolean arguments.", + "match": "\\b(?i:true|false|yes|no)\\b", + "name": "constant.language.boolean.applescript" + }, + { + "match": "\\b(?i:null|missing\\s+value)\\b", + "name": "constant.language.null.applescript" + }, + { + "match": "-?\\b\\d+((\\.(\\d+\\b)?)?(?i:e\\+?\\d*\\b)?|\\b)", + "name": "constant.numeric.applescript" + }, + { + "match": "\\b(?i:space|tab|return|linefeed|quote)\\b", + "name": "constant.other.text.applescript" + }, + { + "match": "\\b(?i:all\\s+(caps|lowercase)|bold|condensed|expanded|hidden|italic|outline|plain|shadow|small\\s+caps|strikethrough|(sub|super)script|underline)\\b", + "name": "constant.other.styles.applescript" + }, + { + "match": "\\b(?i:Jan(uary)?|Feb(ruary)?|Mar(ch)?|Apr(il)?|May|Jun(e)?|Jul(y)?|Aug(ust)?|Sep(tember)?|Oct(ober)?|Nov(ember)?|Dec(ember)?)\\b", + "name": "constant.other.time.month.applescript" + }, + { + "match": "\\b(?i:Mon(day)?|Tue(sday)?|Wed(nesday)?|Thu(rsday)?|Fri(day)?|Sat(urday)?|Sun(day)?)\\b", + "name": "constant.other.time.weekday.applescript" + }, + { + "match": "\\b(?i:AppleScript|pi|result|version|current\\s+application|its?|m[ey])\\b", + "name": "constant.other.miscellaneous.applescript" + }, + { + "match": "\\b(?i:text\\s+item\\s+delimiters|print\\s+(length|depth))\\b", + "name": "variable.language.applescript" + } + ] + }, + "built-in.keyword": { + "patterns": [ + { + "match": "(&|\\*|\\+|-|/|÷|\\^)", + "name": "keyword.operator.arithmetic.applescript" + }, + { + "match": "(=|≠|>|<|≥|>=|≤|<=)", + "name": "keyword.operator.comparison.applescript" + }, + { + "match": "(?ix)\\b\n\t\t\t\t\t\t(and|or|div|mod|as|not\n\t\t\t\t\t\t|(a\\s+)?(ref(\\s+to)?|reference\\s+to)\n\t\t\t\t\t\t|equal(s|\\s+to)|contains?|comes\\s+(after|before)|(start|begin|end)s?\\s+with\n\t\t\t\t\t\t)\n\t\t\t\t\t\\b", + "name": "keyword.operator.word.applescript" + }, + { + "comment": "In double quotes so we can use a single quote in the keywords.", + "match": "(?ix)\\b\n\t\t\t\t\t\t(is(n't|\\s+not)?(\\s+(equal(\\s+to)?|(less|greater)\\s+than(\\s+or\\s+equal(\\s+to)?)?|in|contained\\s+by))?\n\t\t\t\t\t\t|does(n't|\\s+not)\\s+(equal|come\\s+(before|after)|contain)\n\t\t\t\t\t\t)\n\t\t\t\t\t\\b", + "name": "keyword.operator.word.applescript" + }, + { + "match": "\\b(?i:some|every|whose|where|that|id|index|\\d+(st|nd|rd|th)|first|second|third|fourth|fifth|sixth|seventh|eighth|ninth|tenth|last|front|back|middle|named|beginning|end|from|to|thr(u|ough)|before|(front|back|beginning|end)\\s+of|after|behind|in\\s+(front|back|beginning|end)\\s+of)\\b", + "name": "keyword.operator.reference.applescript" + }, + { + "match": "\\b(?i:continue|return|exit(\\s+repeat)?)\\b", + "name": "keyword.control.loop.applescript" + }, + { + "match": "\\b(?i:about|above|after|against|and|apart\\s+from|around|as|aside\\s+from|at|back|before|beginning|behind|below|beneath|beside|between|but|by|considering|contain|contains|contains|copy|div|does|eighth|else|end|equal|equals|error|every|false|fifth|first|for|fourth|from|front|get|given|global|if|ignoring|in|instead\\s+of|into|is|it|its|last|local|me|middle|mod|my|ninth|not|of|on|onto|or|out\\s+of|over|prop|property|put|ref|reference|repeat|returning|script|second|set|seventh|since|sixth|some|tell|tenth|that|the|then|third|through|thru|timeout|times|to|transaction|true|try|until|where|while|whose|with|without)\\b", + "name": "keyword.other.applescript" + } + ] + }, + "built-in.punctuation": { + "patterns": [ + { + "match": "¬", + "name": "punctuation.separator.continuation.line.applescript" + }, + { + "comment": "the : in property assignments", + "match": ":", + "name": "punctuation.separator.key-value.property.applescript" + }, + { + "comment": "the parentheses in groups", + "match": "[()]", + "name": "punctuation.section.group.applescript" + } + ] + }, + "built-in.support": { + "patterns": [ + { + "match": "\\b(?i:POSIX\\s+path|frontmost|id|name|running|version|days?|weekdays?|months?|years?|time|date\\s+string|time\\s+string|length|rest|reverse|items?|contents|quoted\\s+form|characters?|paragraphs?|words?)\\b", + "name": "support.function.built-in.property.applescript" + }, + { + "match": "\\b(?i:activate|log|clipboard\\s+info|set\\s+the\\s+clipboard\\s+to|the\\s+clipboard|info\\s+for|list\\s+(disks|folder)|mount\\s+volume|path\\s+to(\\s+resource)?|close\\s+access|get\\s+eof|open\\s+for\\s+access|read|set\\s+eof|write|open\\s+location|current\\s+date|do\\s+shell\\s+script|get\\s+volume\\s+settings|random\\s+number|round|set\\s+volume|system\\s+(attribute|info)|time\\s+to\\s+GMT|load\\s+script|run\\s+script|scripting\\s+components|store\\s+script|copy|count|get|launch|run|set|ASCII\\s+(character|number)|localized\\s+string|offset|summarize|beep|choose\\s+(application|color|file(\\s+name)?|folder|from\\s+list|remote\\s+application|URL)|delay|display\\s+(alert|dialog)|say)\\b", + "name": "support.function.built-in.command.applescript" + }, + { + "match": "\\b(?i:get|run)\\b", + "name": "support.function.built-in.applescript" + }, + { + "match": "\\b(?i:anything|data|text|upper\\s+case|propert(y|ies))\\b", + "name": "support.class.built-in.applescript" + }, + { + "match": "\\b(?i:alias|class)(es)?\\b", + "name": "support.class.built-in.applescript" + }, + { + "match": "\\b(?i:app(lication)?|boolean|character|constant|date|event|file(\\s+specification)?|handler|integer|item|keystroke|linked\\s+list|list|machine|number|picture|preposition|POSIX\\s+file|real|record|reference(\\s+form)?|RGB\\s+color|script|sound|text\\s+item|type\\s+class|vector|writing\\s+code(\\s+info)?|zone|((international|styled(\\s+(Clipboard|Unicode))?|Unicode)\\s+)?text|((C|encoded|Pascal)\\s+)?string)s?\\b", + "name": "support.class.built-in.applescript" + }, + { + "match": "(?ix)\\b\n\t\t\t\t\t\t(\t(cubic\\s+(centi)?|square\\s+(kilo)?|centi|kilo)met(er|re)s\n\t\t\t\t\t\t|\tsquare\\s+(yards|feet|miles)|cubic\\s+(yards|feet|inches)|miles|inches\n\t\t\t\t\t\t|\tlit(re|er)s|gallons|quarts\n\t\t\t\t\t\t|\t(kilo)?grams|ounces|pounds\n\t\t\t\t\t\t|\tdegrees\\s+(Celsius|Fahrenheit|Kelvin)\n\t\t\t\t\t\t)\n\t\t\t\t\t\\b", + "name": "support.class.built-in.unit.applescript" + }, + { + "match": "\\b(?i:seconds|minutes|hours|days)\\b", + "name": "support.class.built-in.time.applescript" + } + ] + }, + "comments": { + "patterns": [ + { + "begin": "^\\s*(#!)", + "captures": { + "1": { + "name": "punctuation.definition.comment.applescript" + } + }, + "end": "\\n", + "name": "comment.line.number-sign.applescript" + }, + { + "begin": "(^[ \\t]+)?(?=#)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.applescript" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": "#", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.applescript" + } + }, + "end": "\\n", + "name": "comment.line.number-sign.applescript" + } + ] + }, + { + "begin": "(^[ \\t]+)?(?=--)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.applescript" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": "--", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.applescript" + } + }, + "end": "\\n", + "name": "comment.line.double-dash.applescript" + } + ] + }, + { + "begin": "\\(\\*", + "captures": { + "0": { + "name": "punctuation.definition.comment.applescript" + } + }, + "end": "\\*\\)", + "name": "comment.block.applescript", + "patterns": [ + { + "include": "#comments.nested" + } + ] + } + ] + }, + "comments.nested": { + "patterns": [ + { + "begin": "\\(\\*", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.begin.applescript" + } + }, + "end": "\\*\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.end.applescript" + } + }, + "name": "comment.block.applescript", + "patterns": [ + { + "include": "#comments.nested" + } + ] + } + ] + }, + "data-structures": { + "patterns": [ + { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.array.begin.applescript" + } + }, + "comment": "We cannot necessarily distinguish \"records\" from \"arrays\", and so this could be either.", + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.array.end.applescript" + } + }, + "name": "meta.array.applescript", + "patterns": [ + { + "captures": { + "1": { + "name": "constant.other.key.applescript" + }, + "2": { + "name": "meta.identifier.applescript" + }, + "3": { + "name": "punctuation.definition.identifier.applescript" + }, + "4": { + "name": "punctuation.definition.identifier.applescript" + }, + "5": { + "name": "punctuation.separator.key-value.applescript" + } + }, + "match": "(\\w+|((\\|)[^|\\n]*(\\|)))\\s*(:)" + }, + { + "match": ":", + "name": "punctuation.separator.key-value.applescript" + }, + { + "match": ",", + "name": "punctuation.separator.array.applescript" + }, + { + "include": "#inline" + } + ] + }, + { + "begin": "(?:(?<=application )|(?<=app ))(\")", + "captures": { + "1": { + "name": "punctuation.definition.string.applescript" + } + }, + "end": "(\")", + "name": "string.quoted.double.application-name.applescript", + "patterns": [ + { + "match": "\\\\.", + "name": "constant.character.escape.applescript" + } + ] + }, + { + "begin": "(\")", + "captures": { + "1": { + "name": "punctuation.definition.string.applescript" + } + }, + "end": "(\")", + "name": "string.quoted.double.applescript", + "patterns": [ + { + "match": "\\\\.", + "name": "constant.character.escape.applescript" + } + ] + }, + { + "captures": { + "1": { + "name": "punctuation.definition.identifier.applescript" + }, + "2": { + "name": "punctuation.definition.identifier.applescript" + } + }, + "match": "(\\|)[^|\\n]*(\\|)", + "name": "meta.identifier.applescript" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.data.applescript" + }, + "2": { + "name": "support.class.built-in.applescript" + }, + "3": { + "name": "storage.type.utxt.applescript" + }, + "4": { + "name": "string.unquoted.data.applescript" + }, + "5": { + "name": "punctuation.definition.data.applescript" + }, + "6": { + "name": "keyword.operator.applescript" + }, + "7": { + "name": "support.class.built-in.applescript" + } + }, + "match": "(«)(data) (utxt|utf8)([[:xdigit:]]*)(»)(?:\\s+(as)\\s+(?i:Unicode\\s+text))?", + "name": "constant.other.data.utxt.applescript" + }, + { + "begin": "(«)(\\w+)\\b(?=\\s)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.data.applescript" + }, + "2": { + "name": "support.class.built-in.applescript" + } + }, + "end": "(»)", + "endCaptures": { + "1": { + "name": "punctuation.definition.data.applescript" + } + }, + "name": "constant.other.data.raw.applescript" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.data.applescript" + }, + "2": { + "name": "punctuation.definition.data.applescript" + } + }, + "match": "(«)[^»]*(»)", + "name": "invalid.illegal.data.applescript" + } + ] + }, + "finder": { + "patterns": [ + { + "match": "\\b(item|container|(computer|disk|trash)-object|disk|folder|((alias|application|document|internet location) )?file|clipping|package)s?\\b", + "name": "support.class.finder.items.applescript" + }, + { + "match": "\\b((Finder|desktop|information|preferences|clipping) )windows?\\b", + "name": "support.class.finder.window-classes.applescript" + }, + { + "match": "\\b(preferences|(icon|column|list) view options|(label|column|alias list)s?)\\b", + "name": "support.class.finder.type-definitions.applescript" + }, + { + "match": "\\b(copy|find|sort|clean up|eject|empty( trash)|erase|reveal|update)\\b", + "name": "support.function.finder.items.applescript" + }, + { + "match": "\\b(insertion location|product version|startup disk|desktop|trash|home|computer container|finder preferences)\\b", + "name": "support.constant.finder.applescript" + }, + { + "match": "\\b(visible)\\b", + "name": "support.variable.finder.applescript" + } + ] + }, + "inline": { + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#data-structures" + }, + { + "include": "#built-in" + }, + { + "include": "#standardadditions" + } + ] + }, + "itunes": { + "patterns": [ + { + "match": "\\b(artwork|application|encoder|EQ preset|item|source|visual|(EQ |browser )?window|((audio CD|device|shared|URL|file) )?track|playlist window|((audio CD|device|radio tuner|library|folder|user) )?playlist)s?\\b", + "name": "support.class.itunes.applescript" + }, + { + "match": "\\b(add|back track|convert|fast forward|(next|previous) track|pause|play(pause)?|refresh|resume|rewind|search|stop|update|eject|subscribe|update(Podcast|AllPodcasts)|download)\\b", + "name": "support.function.itunes.applescript" + }, + { + "match": "\\b(current (playlist|stream (title|URL)|track)|player state)\\b", + "name": "support.constant.itunes.applescript" + }, + { + "match": "\\b(current (encoder|EQ preset|visual)|EQ enabled|fixed indexing|full screen|mute|player position|sound volume|visuals enabled|visual size)\\b", + "name": "support.variable.itunes.applescript" + } + ] + }, + "standard-suite": { + "patterns": [ + { + "match": "\\b(colors?|documents?|items?|windows?)\\b", + "name": "support.class.standard-suite.applescript" + }, + { + "match": "\\b(close|count|delete|duplicate|exists|make|move|open|print|quit|save|activate|select|data size)\\b", + "name": "support.function.standard-suite.applescript" + }, + { + "match": "\\b(name|frontmost|version)\\b", + "name": "support.constant.standard-suite.applescript" + }, + { + "match": "\\b(selection)\\b", + "name": "support.variable.standard-suite.applescript" + }, + { + "match": "\\b(attachments?|attribute runs?|characters?|paragraphs?|texts?|words?)\\b", + "name": "support.class.text-suite.applescript" + } + ] + }, + "standardadditions": { + "patterns": [ + { + "match": "\\b((alert|dialog) reply)\\b", + "name": "support.class.standardadditions.user-interaction.applescript" + }, + { + "match": "\\b(file information)\\b", + "name": "support.class.standardadditions.file.applescript" + }, + { + "match": "\\b(POSIX files?|system information|volume settings)\\b", + "name": "support.class.standardadditions.miscellaneous.applescript" + }, + { + "match": "\\b(URLs?|internet address(es)?|web pages?|FTP items?)\\b", + "name": "support.class.standardadditions.internet.applescript" + }, + { + "match": "\\b(info for|list (disks|folder)|mount volume|path to( resource)?)\\b", + "name": "support.function.standardadditions.file.applescript" + }, + { + "match": "\\b(beep|choose (application|color|file( name)?|folder|from list|remote application|URL)|delay|display (alert|dialog)|say)\\b", + "name": "support.function.standardadditions.user-interaction.applescript" + }, + { + "match": "\\b(ASCII (character|number)|localized string|offset|summarize)\\b", + "name": "support.function.standardadditions.string.applescript" + }, + { + "match": "\\b(set the clipboard to|the clipboard|clipboard info)\\b", + "name": "support.function.standardadditions.clipboard.applescript" + }, + { + "match": "\\b(open for access|close access|read|write|get eof|set eof)\\b", + "name": "support.function.standardadditions.file-i-o.applescript" + }, + { + "match": "\\b((load|store|run) script|scripting components)\\b", + "name": "support.function.standardadditions.scripting.applescript" + }, + { + "match": "\\b(current date|do shell script|get volume settings|random number|round|set volume|system attribute|system info|time to GMT)\\b", + "name": "support.function.standardadditions.miscellaneous.applescript" + }, + { + "match": "\\b(opening folder|(closing|moving) folder window for|adding folder items to|removing folder items from)\\b", + "name": "support.function.standardadditions.folder-actions.applescript" + }, + { + "match": "\\b(open location|handle CGI request)\\b", + "name": "support.function.standardadditions.internet.applescript" + } + ] + }, + "system-events": { + "patterns": [ + { + "match": "\\b(audio (data|file))\\b", + "name": "support.class.system-events.audio-file.applescript" + }, + { + "match": "\\b(alias(es)?|(Classic|local|network|system|user) domain objects?|disk( item)?s?|domains?|file( package)?s?|folders?|items?)\\b", + "name": "support.class.system-events.disk-folder-file.applescript" + }, + { + "match": "\\b(delete|open|move)\\b", + "name": "support.function.system-events.disk-folder-file.applescript" + }, + { + "match": "\\b(folder actions?|scripts?)\\b", + "name": "support.class.system-events.folder-actions.applescript" + }, + { + "match": "\\b(attach action to|attached scripts|edit action of|remove action from)\\b", + "name": "support.function.system-events.folder-actions.applescript" + }, + { + "match": "\\b(movie data|movie file)\\b", + "name": "support.class.system-events.movie-file.applescript" + }, + { + "match": "\\b(log out|restart|shut down|sleep)\\b", + "name": "support.function.system-events.power.applescript" + }, + { + "match": "\\b(((application |desk accessory )?process|(check|combo )?box)(es)?|(action|attribute|browser|(busy|progress|relevance) indicator|color well|column|drawer|group|grow area|image|incrementor|list|menu( bar)?( item)?|(menu |pop up |radio )?button|outline|(radio|tab|splitter) group|row|scroll (area|bar)|sheet|slider|splitter|static text|table|text (area|field)|tool bar|UI element|window)s?)\\b", + "name": "support.class.system-events.processes.applescript" + }, + { + "match": "\\b(click|key code|keystroke|perform|select)\\b", + "name": "support.function.system-events.processes.applescript" + }, + { + "match": "\\b(property list (file|item))\\b", + "name": "support.class.system-events.property-list.applescript" + }, + { + "match": "\\b(annotation|QuickTime (data|file)|track)s?\\b", + "name": "support.class.system-events.quicktime-file.applescript" + }, + { + "match": "\\b((abort|begin|end) transaction)\\b", + "name": "support.function.system-events.system-events.applescript" + }, + { + "match": "\\b(XML (attribute|data|element|file)s?)\\b", + "name": "support.class.system-events.xml.applescript" + }, + { + "match": "\\b(print settings|users?|login items?)\\b", + "name": "support.class.sytem-events.other.applescript" + } + ] + }, + "textmate": { + "patterns": [ + { + "match": "\\b(print settings)\\b", + "name": "support.class.textmate.applescript" + }, + { + "match": "\\b(get url|insert|reload bundles)\\b", + "name": "support.function.textmate.applescript" + } + ] + } + }, + "scopeName": "source.applescript", + "uuid": "777CF925-14B9-428E-B07B-17FAAB8FA27E" +} diff --git a/docs/shiki/languages/ara.tmLanguage.json b/docs/shiki/languages/ara.tmLanguage.json new file mode 100644 index 00000000..50e2338f --- /dev/null +++ b/docs/shiki/languages/ara.tmLanguage.json @@ -0,0 +1,425 @@ +{ + "scopeName": "source.ara", + "name": "ara", + "fileTypes": ["ara"], + "patterns": [ + { + "include": "#namespace" + }, + { + "include": "#named-arguments" + }, + { + "include": "#comments" + }, + { + "include": "#keywords" + }, + { + "include": "#strings" + }, + { + "include": "#numbers" + }, + { + "include": "#operators" + }, + { + "include": "#type" + }, + { + "include": "#function-call" + } + ], + "repository": { + "class-name": { + "patterns": [ + { + "begin": "\\b(?i)(?<!\\$)(?=[\\\\a-zA-Z_])", + "end": "(?i)([a-z_][a-z_0-9]*)?(?=[^a-z0-9_\\\\])\\b", + "endCaptures": { + "1": { + "name": "support.class.ara" + } + }, + "patterns": [ + { + "include": "#namespace" + } + ] + } + ] + }, + "type": { + "name": "support.type.php", + "patterns": [ + { + "match": "\\b(?:void|true|false|null|never|float|bool|int|string|dict|vec|object|mixed|nonnull|resource|self|static|parent|iterable)\\b", + "name": "support.type.php" + }, + { + "begin": "([A-Za-z_][A-Za-z0-9_]*)<", + "beginCaptures": { + "1": { + "name": "support.class.php" + } + }, + "end": ">", + "patterns": [ + { + "include": "#type-annotation" + } + ] + }, + { + "begin": "(shape\\()", + "end": "((,|\\.\\.\\.)?\\s*\\))", + "endCaptures": { + "1": { + "name": "keyword.operator.key.php" + } + }, + "name": "storage.type.shape.php", + "patterns": [ + { + "include": "#type-annotation" + }, + { + "include": "#strings" + }, + { + "include": "#constants" + } + ] + }, + { + "begin": "\\(", + "end": "\\)", + "patterns": [ + { + "include": "#type-annotation" + } + ] + }, + { + "begin": "\\(fn\\(", + "end": "\\)", + "patterns": [ + { + "include": "#type-annotation" + } + ] + }, + { + "include": "#class-name" + }, + { + "include": "#comments" + } + ] + }, + "namespace": { + "begin": "(?i)((namespace)|[a-z0-9_]+)?(\\\\)(?=.*?[^a-z_0-9\\\\])", + "beginCaptures": { + "1": { + "name": "entity.name.type.namespace.php" + }, + "3": { + "name": "punctuation.separator.inheritance.php" + } + }, + "end": "(?i)(?=[a-z0-9_]*[^a-z0-9_\\\\])", + "name": "support.other.namespace.php", + "patterns": [ + { + "name": "entity.name.type.namespace.php", + "match": "(?i)[a-z0-9_]+(?=\\\\)" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.inheritance.php" + } + }, + "match": "(?i)(\\\\)" + } + ] + }, + "named-arguments": { + "match": "(?i)(?<=^|\\(|,)\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)\\s*(:)(?!:)", + "captures": { + "1": { + "name": "entity.name.variable.parameter.ara" + }, + "2": { + "name": "punctuation.separator.colon.ara" + } + } + }, + "comments": { + "patterns": [ + { + "begin": "/\\*", + "captures": { + "0": { + "name": "punctuation.definition.comment.ara" + } + }, + "end": "\\*/", + "name": "comment.block.ara" + }, + { + "begin": "(^[ \\t]+)?(?=//)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.ara" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": "//", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.ara" + } + }, + "end": "\\n", + "name": "comment.line.double-slash.ara" + } + ] + } + ] + }, + "keywords": { + "patterns": [ + { + "name": "keyword.control.ara", + "match": "\\b(await|async|concurrently|break|continue|do|else|elseif|for|if|loop|while|foreach|match|return|try|yield|from|catch|finally|default|exit)\\b" + }, + { + "name": "storage.decl.ara", + "match": "\\b(const|enum|class|interface|trait|namespace|type|case|function|fn)\\b" + }, + { + "name": "storage.modifier.ara", + "match": "\\b(final|abstract|static|readonly|public|private|protected)\\b" + }, + { + "name": "keyword.other.ara", + "match": "\\b(as|is|extends|implements|use|where|clone|new)\\b" + } + ] + }, + "function-call": { + "patterns": [ + { + "begin": "(?i)(?=\\\\?[a-z_0-9\\\\]+\\\\[a-z_][a-z0-9_]*\\s*(\\(|(::<)))", + "comment": "Functions in a user-defined namespace (overrides any built-ins)", + "end": "(?=\\s*(\\(|(::<)))", + "patterns": [ + { + "include": "#user-function-call" + } + ] + }, + { + "begin": "(?i)(\\\\)?(?=\\b[a-z_][a-z_0-9]*\\s*(\\(|(::<)))", + "beginCaptures": { + "1": { + "name": "punctuation.separator.inheritance.php" + } + }, + "comment": "Root namespace function calls (built-in or user)", + "end": "(?=\\s*(\\(|(::<)))", + "patterns": [ + { + "include": "#user-function-call" + } + ] + } + ] + }, + "user-function-call": { + "begin": "(?i)(?=[a-z_0-9\\\\]*[a-z_][a-z0-9_]*\\s*\\()", + "end": "(?i)[a-z_][a-z_0-9]*(?=\\s*\\()", + "endCaptures": { + "0": { + "name": "entity.name.function.php" + } + }, + "name": "meta.function-call.php", + "patterns": [ + { + "include": "#namespace" + } + ] + }, + "strings": { + "patterns": [ + { + "name": "string.quoted.single.ara", + "begin": "'", + "end": "'", + "patterns": [ + { + "match": "\\\\[\\\\']", + "name": "constant.character.escape.ara" + } + ] + }, + { + "name": "string.quoted.double.ara", + "begin": "\"", + "end": "\"", + "patterns": [ + { + "include": "#interpolation" + } + ] + } + ] + }, + "interpolation": { + "patterns": [ + { + "comment": "Interpolating octal values e.g. \\01 or \\07.", + "match": "\\\\[0-7]{1,3}", + "name": "constant.numeric.octal.ara" + }, + { + "comment": "Interpolating hex values e.g. \\x1 or \\xFF.", + "match": "\\\\x[0-9A-Fa-f]{1,2}", + "name": "constant.numeric.hex.ara" + }, + { + "comment": "Escaped characters in double-quoted strings e.g. \\n or \\t.", + "match": "\\\\[nrt\\\\\\$\\\"]", + "name": "constant.character.escape.ara" + } + ] + }, + "numbers": { + "patterns": [ + { + "match": "0[xX][0-9a-fA-F]+(?:_[0-9a-fA-F]+)*", + "name": "constant.numeric.hex.ara" + }, + { + "match": "0[bB][01]+(?:_[01]+)*", + "name": "constant.numeric.binary.ara" + }, + { + "match": "0[oO][0-7]+(?:_[0-7]+)*", + "name": "constant.numeric.octal.ara" + }, + { + "match": "0(?:_?[0-7]+)+", + "name": "constant.numeric.octal.ara" + }, + { + "match": "(?x)\n(?:\n (?:[0-9]+(?:_[0-9]+)*)?(\\.)[0-9]+(?:_[0-9]+)*(?:[eE][+-]?[0-9]+(?:_[0-9]+)*)?| # .3\n [0-9]+(?:_[0-9]+)*(\\.)(?:[0-9]+(?:_[0-9]+)*)?(?:[eE][+-]?[0-9]+(?:_[0-9]+)*)?| # 3.\n [0-9]+(?:_[0-9]+)*[eE][+-]?[0-9]+(?:_[0-9]+)* # 2e-3\n)", + "name": "constant.numeric.decimal.ara", + "captures": { + "1": { + "name": "punctuation.separator.decimal.period.ara" + }, + "2": { + "name": "punctuation.separator.decimal.period.ara" + } + } + }, + { + "match": "0|[1-9](?:_?[0-9]+)*", + "name": "constant.numeric.decimal.ara" + } + ] + }, + "operators": { + "patterns": [ + { + "comment": "assignment operators", + "name": "keyword.assignments.ara", + "match": "(\\+=|-=|\\*=|/=|%=|\\^=|&&=|<=|>=|&=|\\|=|<<=|>>=|\\?\\?=)" + }, + { + "comment": "logical operators", + "name": "keyword.operators.ara", + "match": "(\\^|\\||\\|\\||&&|>>|<<|&|~|<<|>>|>|<|<=>|\\?\\?|\\?|:|\\?:)(?!=)" + }, + { + "comment": "comparison operators", + "name": "keyword.operator.comparison.ara", + "match": "(==|===|!==|!=|<=|>=|<|>)(?!=)" + }, + { + "comment": "math operators", + "name": "keyword.operator.math.ara", + "match": "(([+%]|(\\*(?!\\w)))(?!=))|(-(?!>))|(/(?!/))" + }, + { + "comment": "single equal assignment operator", + "name": "keyword.operator.assignment.ara", + "match": "(?<![<>])=(?!=|>)" + }, + { + "comment": "less than, greater than (special case)", + "match": "(?:\\b|(?:(\\))|(\\])|(\\})))[ \\t]+([<>])[ \\t]+(?:\\b|(?:(\\()|(\\[)|(\\{)))", + "captures": { + "1": { + "name": "punctuation.brackets.round.ara" + }, + "2": { + "name": "punctuation.brackets.square.ara" + }, + "3": { + "name": "punctuation.brackets.curly.ara" + }, + "4": { + "name": "keyword.operator.comparison.ara" + }, + "5": { + "name": "punctuation.brackets.round.ara" + }, + "6": { + "name": "punctuation.brackets.square.ara" + }, + "7": { + "name": "punctuation.brackets.curly.ara" + } + } + }, + { + "comment": "arrow method call, arrow property access", + "name": "keyword.operator.arrow.ara", + "match": "(?x)\n(?:\n -> | \\?-> \n)" + }, + { + "comment": "double arrow key-value pair", + "name": "keyword.operator.double-arrow.ara", + "match": "(?x)\n(?:\n =>\n)" + }, + { + "comment": "static method call, static property access", + "name": "keyword.operator.static.ara", + "match": "(?x)\n(?:\n ::\n)" + }, + { + "comment": "closure creation", + "name": "keyword.operator.closure.ara", + "match": "(?x)\n(?:\n \\(\\.\\.\\.\\)\n)" + }, + { + "comment": "spread operator", + "name": "keyword.operator.spread.ara", + "match": "(?x)\n(?:\n \\.\\.\\.\n)" + }, + { + "comment": "namespace operator", + "name": "keyword.operator.namespace.ara", + "match": "\\\\" + } + ] + } + } +} diff --git a/docs/shiki/languages/asm.tmLanguage.json b/docs/shiki/languages/asm.tmLanguage.json new file mode 100644 index 00000000..93dbc6af --- /dev/null +++ b/docs/shiki/languages/asm.tmLanguage.json @@ -0,0 +1,1735 @@ +{ + "fileTypes": ["asm", "nasm", "yasm", "inc", "s"], + "name": "asm", + "patterns": [ + { + "include": "#registers" + }, + { + "include": "#mnemonics" + }, + { + "include": "#constants" + }, + { + "include": "#entities" + }, + { + "include": "#support" + }, + { + "include": "#comments" + }, + { + "include": "#preprocessor" + }, + { + "include": "#strings" + } + ], + "repository": { + "comments": { + "patterns": [ + { + "match": "(;|(^|\\s)#\\s).*$", + "name": "comment.line" + }, + { + "begin": "/\\*", + "end": "\\*/", + "name": "comment.block" + }, + { + "begin": "^\\s*[\\#%]\\s*if\\s+0\\b", + "end": "^\\s*[\\#%]\\s*endif\\b", + "name": "comment.preprocessor" + } + ] + }, + "constants": { + "patterns": [ + { + "match": "(?i)\\b0[by](?:[01][01_]*)\\.(?:(?:[01][01_]*)?(?:p[+-]?(?:[0-9][0-9_]*))?\\b)?", + "name": "constant.numeric.binary.floating-point.asm.x86_64" + }, + { + "match": "(?i)\\b0[by](?:[01][01_]*)(?:p[+-]?(?:[0-9][0-9_]*))\\b", + "name": "constant.numeric.binary.floating-point.asm.x86_64" + }, + { + "match": "(?i)\\b0[oq](?:[0-7][0-7_]*)\\.(?:(?:[0-7][0-7_]*)?(?:p[+-]?(?:[0-9][0-9_]*))?\\b)?", + "name": "constant.numeric.octal.floating-point.asm.x86_64" + }, + { + "match": "(?i)\\b0[oq](?:[0-7][0-7_]*)(?:p[+-]?(?:[0-9][0-9_]*))\\b", + "name": "constant.numeric.octal.floating-point.asm.x86_64" + }, + { + "match": "(?i)\\b(?:0[dt])?(?:[0-9][0-9_]*)\\.(?:(?:[0-9][0-9_]*)?(?:e[+-]?(?:[0-9][0-9_]*))?\\b)?", + "name": "constant.numeric.decimal.floating-point.asm.x86_64" + }, + { + "match": "(?i)\\b(?:[0-9][0-9_]*)(?:e[+-]?(?:[0-9][0-9_]*))\\b", + "name": "constant.numeric.decimal.floating-point.asm.x86_64" + }, + { + "match": "(?i)\\b(?:[0-9][0-9_]*)p(?:[0-9][0-9_]*)?\\b", + "name": "constant.numeric.decimal.packed-bcd.asm.x86_64" + }, + { + "match": "(?i)\\b0[xh](?:[[:xdigit:]][[:xdigit:]_]*)\\.(?:(?:[[:xdigit:]][[:xdigit:]_]*)?(?:p[+-]?(?:[0-9][0-9_]*))?\\b)?", + "name": "constant.numeric.hex.floating-point.asm.x86_64" + }, + { + "match": "(?i)\\b0[xh](?:[[:xdigit:]][[:xdigit:]_]*)(?:p[+-]?(?:[0-9][0-9_]*))\\b", + "name": "constant.numeric.hex.floating-point.asm.x86_64" + }, + { + "match": "(?i)\\$[0-9]\\_?(?:[[:xdigit:]][[:xdigit:]_]*)?\\.(?:(?:[[:xdigit:]][[:xdigit:]_]*)?(?:p[+-]?(?:[0-9][0-9_]*))?\\b)?", + "name": "constant.numeric.hex.floating-point.asm.x86_64" + }, + { + "match": "(?i)\\$[0-9]\\_?(?:[[:xdigit:]][[:xdigit:]_]*)(?:p[+-]?(?:[0-9][0-9_]*))\\b", + "name": "constant.numeric.hex.floating-point.asm.x86_64" + }, + { + "match": "(?i)\\b(?:(?:0[by](?:[01][01_]*))|(?:(?:[01][01_]*)[by]))\\b", + "name": "constant.numeric.binary.asm.x86_64" + }, + { + "match": "(?i)\\b(?:(?:0[oq](?:[0-7][0-7_]*))|(?:(?:[0-7][0-7_]*)[oq]))\\b", + "name": "constant.numeric.octal.asm.x86_64" + }, + { + "match": "(?i)\\b(?:(?:0[dt](?:[0-9][0-9_]*))|(?:(?:[0-9][0-9_]*)[dt]?))\\b", + "name": "constant.numeric.decimal.asm.x86_64" + }, + { + "match": "(?i)(?:\\$[0-9]\\_?(?:[[:xdigit:]][[:xdigit:]_]*)?)\\b", + "name": "constant.numeric.hex.asm.x86_64" + }, + { + "match": "(?i)\\b(?:(?:0[xh](?:[[:xdigit:]][[:xdigit:]_]*))|(?:(?:[[:xdigit:]][[:xdigit:]_]*)[hxHX]))\\b", + "name": "constant.numeric.hex.asm.x86_64" + } + ] + }, + "entities": { + "patterns": [ + { + "match": "((section|segment)\\s+)?\\.((ro)?data|bss|text)", + "name": "entity.name.section" + }, + { + "match": "^\\.?(globa?l|extern|required)\\b", + "name": "entity.directive" + }, + { + "match": "(\\$\\w+)\\b", + "name": "text.variable" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.asm.x86_64 storage.modifier.asm.x86_64" + }, + "2": { + "name": "entity.name.function.special.asm.x86_64" + }, + "3": { + "name": "punctuation.separator.asm.x86_64" + } + }, + "match": "(\\.\\.@)((?:[[:alpha:]_?](?:[[:alnum:]_$#@~.?]*)))(?:(\\:)?|\\b)", + "name": "entity.name.function.asm.x86_64" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.asm.x86_64 storage.modifier.asm.x86_64" + }, + "2": { + "name": "entity.name.function.asm.x86_64" + }, + "3": { + "name": "punctuation.separator.asm.x86_64" + } + }, + "match": "(?:(\\.)?|\\b)((?:[[:alpha:]_?](?:[[:alnum:]_$#@~.?]*)))(?:(\\:))", + "name": "entity.name.function.asm.x86_64" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.asm.x86_64 storage.modifier.asm.x86_64" + }, + "2": { + "name": "entity.name.function.asm.x86_64" + }, + "3": { + "name": "punctuation.separator.asm.x86_64" + } + }, + "match": "(\\.)([0-9]+(?:[[:alnum:]_$#@~.?]*))(?:(\\:)?|\\b)", + "name": "entity.name.function.asm.x86_64" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.asm.x86_64 storage.modifier.asm.x86_64" + }, + "2": { + "name": "invalid.illegal.entity.name.function.asm.x86_64" + }, + "3": { + "name": "punctuation.separator.asm.x86_64" + } + }, + "match": "(?:(\\.)?|\\b)([0-9$@~](?:[[:alnum:]_$#@~.?]*))(?:(\\:))", + "name": "invalid.illegal.entity.name.function.asm.x86_64" + } + ] + }, + "mnemonics": { + "patterns": [ + { + "include": "#mnemonics-general-purpose" + }, + { + "include": "#mnemonics-fpu" + }, + { + "include": "#mnemonics-mmx" + }, + { + "include": "#mnemonics-sse" + }, + { + "include": "#mnemonics-sse2" + }, + { + "include": "#mnemonics-sse3" + }, + { + "include": "#mnemonics-sse4" + }, + { + "include": "#mnemonics-aesni" + }, + { + "include": "#mnemonics-avx" + }, + { + "include": "#mnemonics-avx2" + }, + { + "include": "#mnemonics-tsx" + }, + { + "include": "#mnemonics-sha" + }, + { + "include": "#mnemonics-avx512" + }, + { + "include": "#mnemonics-system" + }, + { + "include": "#mnemonics-64bit" + }, + { + "include": "#mnemonics-vmx" + }, + { + "include": "#mnemonics-smx" + }, + { + "include": "#mnemonics-mpx" + }, + { + "include": "#mnemonics-sgx" + }, + { + "include": "#mnemonics-cet" + }, + { + "include": "#mnemonics-amx" + }, + { + "include": "#mnemonics-uirq" + }, + { + "include": "#mnemonics-esi" + }, + { + "include": "#mnemonics-intel-manual-listing" + }, + { + "include": "#mnemonics-intel-isa-xeon-phi" + }, + { + "include": "#mnemonics-intel-isa-keylocker" + }, + { + "include": "#mnemonics-supplemental-amd" + }, + { + "include": "#mnemonics-supplemental-cyrix" + }, + { + "include": "#mnemonics-supplemental-via" + }, + { + "include": "#mnemonics-undocumented" + }, + { + "include": "#mnemonics-future-intel" + }, + { + "include": "#mnemonics-pseudo-ops" + } + ] + }, + "mnemonics-64bit": { + "patterns": [ + { + "match": "(?i)\\b(cdqe|cqo|(cmp|lod|mov|sto)sq|cmpxchg16b|mov(ntq|sxd)|scasq|swapgs|sys(call|ret))\\b", + "name": "keyword.operator.word.mnemonic.64-bit-mode" + } + ] + }, + "mnemonics-aesni": { + "patterns": [ + { + "match": "(?i)\\b(aes((dec|enc)(last)?|imc|keygenassist)|pclmulqdq)\\b", + "name": "keyword.operator.word.mnemonic.aesni" + } + ] + }, + "mnemonics-amx": { + "patterns": [ + { + "match": "(?i)\\b((ld|st)tilecfg|tdpb(f16ps|[su]{2}d)|tile(loadd(t1)?|release|stored|zero))\\b", + "name": "keyword.operator.word.mnemonic.amx" + } + ] + }, + "mnemonics-avx": { + "patterns": [ + { + "match": "(?i)\\b(v((test|permil|maskmov)p[ds]|zero(all|upper)|(perm2|insert|extract|broadcast)f128|broadcasts[ds]))\\b", + "name": "keyword.operator.word.mnemonic.avx" + }, + { + "match": "(?i)\\b(vaes((dec|enc)(last)?|imc|keygenassist)|vpclmulqdq)\\b", + "name": "keyword.operator.word.mnemonic.avx.promoted.aes" + }, + { + "match": "(?i)\\b(v((cmp[ps]|u?comis)[ds]|pcmp([ei]str[im]|(eq|gt)[bdqw])))\\b", + "name": "keyword.operator.word.mnemonic.avx.promoted.comparison" + }, + { + "match": "(?i)\\b(v(cvt(dq2pd|dq2ps|pd2ps|ps2pd|sd2ss|si2sd|si2ss|ss2sd|t?(pd2dq|ps2dq|sd2si|ss2si))))\\b", + "name": "keyword.operator.word.mnemonic.avx.promoted.conversion" + }, + { + "match": "(?i)\\b(vh((add|sub)p[ds])|vph((add|sub)([dw]|sw)|minposuw))\\b", + "name": "keyword.operator.word.mnemonic.avx.promoted.horizontal-packed-arithmetic" + }, + { + "match": "(?i)\\b(v((andn?|x?or)p[ds]))\\b", + "name": "keyword.operator.word.mnemonic.avx.promoted.logical" + }, + { + "match": "(?i)\\b(v(mov(([ahl]|msk|nt|u)p[ds]|(hl|lh)ps|s([ds]|[hl]dup)|q)))\\b", + "name": "keyword.operator.word.mnemonic.avx.promoted.mov" + }, + { + "match": "(?i)\\b(v((add|div|mul|sub|max|min|round|sqrt)[ps][ds]|(addsub|dp)p[ds]|(rcp|rsqrt)[ps]s))\\b", + "name": "keyword.operator.word.mnemonic.avx.promoted.packed-arithmetic" + }, + { + "match": "(?i)\\b(v(pack[su]s(dw|wb)|punpck[hl](bw|dq|wd|qdq)|unpck[hl]p[ds]))\\b", + "name": "keyword.operator.word.mnemonic.avx.promoted.packed-conversion" + }, + { + "match": "(?i)\\b(vp(shuf([bd]|[hl]w))|vshufp[ds])\\b", + "name": "keyword.operator.word.mnemonic.avx.promoted.packed-shuffle" + }, + { + "match": "(?i)\\b(vp((abs|sign|(max|min)[su])[bdw]|(add|sub)([bdqw]|u?s[bw])|avg[bw]|extr[bdqw]|madd(wd|ubsw)|mul(hu?w|hrsw|l[dw]|u?dq)|sadbw))\\b", + "name": "keyword.operator.word.mnemonic.avx.promoted.supplemental.arithmetic" + }, + { + "match": "(?i)\\b(vp(andn?|x?or))\\b", + "name": "keyword.operator.word.mnemonic.avx.promoted.supplemental.logical" + }, + { + "match": "(?i)\\b(vpblend(vb|w))\\b", + "name": "keyword.operator.word.mnemonic.avx.promoted.supplemental.blending" + }, + { + "match": "(?i)\\b(vpmov(mskb|[sz]x(b[dqw]|w[dq]|dq)))\\b", + "name": "keyword.operator.word.mnemonic.avx.promoted.supplemental.mov" + }, + { + "match": "(?i)\\b(vp(insr[bdqw]|sll(dq|[dqw])|srl(dq)))\\b", + "name": "keyword.operator.word.mnemonic.avx.promoted.simd-integer" + }, + { + "match": "(?i)\\b(vp(sra[dwq]|srl[dqw]))\\b", + "name": "keyword.operator.word.mnemonic.avx.promoted.shift-and-rotate" + }, + { + "match": "(?i)\\b(vblendv?p[ds])\\b", + "name": "keyword.operator.word.mnemonic.avx.promoted.packed-blending" + }, + { + "match": "(?i)\\b(vp(test|alignr))\\b", + "name": "keyword.operator.word.mnemonic.avx.promoted.packed-other" + }, + { + "match": "(?i)\\b(vmov(d(dup|qa|qu)?))\\b", + "name": "keyword.operator.word.mnemonic.avx.promoted.simd-integer.mov" + }, + { + "match": "(?i)\\b(v((extract|insert)ps|lddqu|(ld|st)mxcsr|mpsadbw))\\b", + "name": "keyword.operator.word.mnemonic.avx.promoted.other" + }, + { + "match": "(?i)\\b(v(maskmovdqu|movntdqa?))\\b", + "name": "keyword.operator.word.mnemonic.avx.promoted.cacheability-control" + }, + { + "match": "(?i)\\b(vcvt(ph2ps|ps2ph))\\b", + "name": "keyword.operator.word.mnemonic.16-bit-floating-point-conversion" + }, + { + "match": "(?i)\\b(vfn?m((add|sub)(132|213|231)[ps][ds])|vfm((addsub|subadd)(132|213|231)p[ds]))\\b", + "name": "keyword.operator.word.mnemonic.fma" + } + ] + }, + "mnemonics-avx2": { + "patterns": [ + { + "match": "(?i)\\b(v((broadcast|extract|insert|perm2)i128|pmaskmov[dq]|perm([dsq]|p[sd])))\\b", + "name": "keyword.operator.word.mnemonic.avx2.promoted.simd" + }, + { + "match": "(?i)\\b(vpbroadcast[bdqw])\\b", + "name": "keyword.operator.word.mnemonic.avx2.promoted.packed" + }, + { + "match": "(?i)\\b(vp(blendd|s[lr]lv[dq]|sravd))\\b", + "name": "keyword.operator.word.mnemonic.avx2.blend" + }, + { + "match": "(?i)\\b(vp?gather[dq][dq]|vgather([dq]|dq)p[ds])\\b", + "name": "keyword.operator.word.mnemonic.avx2.gather" + } + ] + }, + "mnemonics-avx512": { + "patterns": [ + { + "include": "#mnemonics-avx512f" + }, + { + "include": "#mnemonics-avx512dq" + }, + { + "include": "#mnemonics-avx512bw" + }, + { + "include": "#mnemonics-avx512-opmask" + }, + { + "include": "#mnemonics-avx512er" + }, + { + "include": "#mnemonics-avx512pf" + }, + { + "include": "#mnemonics-avx512fp16" + } + ] + }, + "mnemonics-avx512-opmask": { + "patterns": [ + { + "match": "(?i)\\bk(add|andn?|mov|not|or(test)?|shift[lr]|test|xn?or)[bdqw]\\b", + "name": "keyword.operator.word.mnemonic.avx512.opmask" + }, + { + "match": "(?i)\\bkunpck(bw|wd|dq)\\b", + "name": "keyword.operator.word.mnemonic.avx512.opmask.unpack" + } + ] + }, + "mnemonics-avx512bw": { + "patterns": [ + { + "match": "(?i)\\bv(dbpsadbw|movdqu(8|16))\\b", + "name": "keyword.operator.word.mnemonic.avx512.bw.dbpsad" + }, + { + "match": "(?i)\\bvp(blendm|cmpu?|movm2)[bw]\\b", + "name": "keyword.operator.word.mnemonic.avx512.bw.pblend" + }, + { + "match": "(?i)\\bvperm(w|i2[bw])\\b", + "name": "keyword.operator.word.mnemonic.avx512.bw.perpmi2" + }, + { + "match": "(?i)\\bvp(mov([bw]2m|u?swb))\\b", + "name": "keyword.operator.word.mnemonic.avx512.bw.pmov" + }, + { + "match": "(?i)\\bvp(s(ll|ra|rl)vw|testn?m[bw])\\b", + "name": "keyword.operator.word.mnemonic.avx512.bw.psll" + }, + { + "match": "(?i)\\bvp(broadcastm(b2q|w2d)|(conflict|lzcnt)[dq])\\b", + "name": "keyword.operator.word.mnemonic.avx512.bw.broadcast" + } + ] + }, + "mnemonics-avx512dq": { + "patterns": [ + { + "match": "(?i)\\bvcvt(t?p[ds]2u?qq|uqq2p[ds])\\b", + "name": "keyword.operator.word.mnemonic.avx512.dq.cvt" + }, + { + "match": "(?i)\\bv((extract|insert)[fi]64x2|(fpclass|range|reduce)[ps][ds])\\b", + "name": "keyword.operator.word.mnemonic.avx512.dq.extract" + }, + { + "match": "(?i)\\bvp(mov(m2[dq]|b2d|q2m)|mullq)\\b", + "name": "keyword.operator.word.mnemonic.avx512.dq.pmov" + } + ] + }, + "mnemonics-avx512er": { + "patterns": [ + { + "match": "(?i)\\bv(exp2|rcp28|rsqrt28)[ps][ds]\\b", + "name": "keyword.operator.word.mnemonic.avx512.er" + } + ] + }, + "mnemonics-avx512f": { + "patterns": [ + { + "match": "(?i)\\bv(align[dq]|(blendm|compress)p[ds])\\b", + "name": "keyword.operator.word.mnemonic.avx512.f.align" + }, + { + "match": "(?i)\\bv(cvtt?[ps][ds]2u(dq|si))\\b", + "name": "keyword.operator.word.mnemonic.avx512.f.cvtt" + }, + { + "match": "(?i)\\bv(cvt((q|ud)q2p|usi2s)[ds])\\b", + "name": "keyword.operator.word.mnemonic.avx512.f.cvt" + }, + { + "match": "(?i)\\bv(expandp[ds]|extract[fi](32|64)x4|fixupimm[ps][ds])\\b", + "name": "keyword.operator.word.mnemonic.avx512.f.expand" + }, + { + "match": "(?i)\\bv(get(exp|mant)[ps][ds]|insertf(32|64)x4|movdq[au](32|64))\\b", + "name": "keyword.operator.word.mnemonic.avx512.f.getexp" + }, + { + "match": "(?i)\\bvp(blendm[dq]|cmpu?[dq]|compress[dq])\\b", + "name": "keyword.operator.word.mnemonic.avx512.f.pblend" + }, + { + "match": "(?i)\\bvp(erm[it]2(d|q|p[ds])|expand[dq]|(max|min)[su]q|movu?s(q[bdw]|d[bw]))\\b", + "name": "keyword.operator.word.mnemonic.avx512.f.permi" + }, + { + "match": "(?i)\\bvp(rolv?|rorr?|scatter[dq]|testn?m|terlog)[dq]\\b", + "name": "keyword.operator.word.mnemonic.avx512.f.prol" + }, + { + "match": "(?i)\\bvpsravq\\b", + "name": "keyword.operator.word.mnemonic.avx512.f.sravq" + }, + { + "match": "(?i)\\bv(rcp14|(rnd)?scale|rsqrt14)[ps][ds]\\b", + "name": "keyword.operator.word.mnemonic.avx512.f.rcp" + }, + { + "match": "(?i)\\bv(scatter[dq]{2}|shuf[fi](32|64)x[24])\\b", + "name": "keyword.operator.word.mnemonic.avx512.f.scatter" + } + ] + }, + "mnemonics-avx512fp16": { + "patterns": [ + { + "match": "(?i)\\bv((add|cmp|div|fc?(madd|mul)c|fpclass|get(exp|mant)|mul|rcp|reduce|(rnd)?scale|r?sqrt|sub)[ps]h|u?comish)\\b", + "name": "keyword.operator.word.mnemonic.avx512.fp16.add" + }, + { + "match": "(?i)\\bvcvt(u?([dq]q|w)|pd)2ph\\b", + "name": "keyword.operator.word.mnemonic.avx512.fp16.cvtx2ph" + }, + { + "match": "(?i)\\bvcvtph2(u?([dq]q|w)|pd)\\b", + "name": "keyword.operator.word.mnemonic.avx512.fp16.cvtph2x" + }, + { + "match": "(?i)\\bvcvt(ph2psx|ps2phx)\\b", + "name": "keyword.operator.word.mnemonic.avx512.fp16.cvtx" + }, + { + "match": "(?i)\\bvcvt(s[dsi]|usi)2sh\\b", + "name": "keyword.operator.word.mnemonic.avx512.fp16.cvtx2sh" + }, + { + "match": "(?i)\\bvcvtsh2(s[dsi]|usi)\\b", + "name": "keyword.operator.word.mnemonic.avx512.fp16.cvtsh2x" + }, + { + "match": "(?i)\\bvcvtt(ph2(u?(dq|qq|w))|sh2u?si)\\b", + "name": "keyword.operator.word.mnemonic.avx512.fp16.cvttph2x" + }, + { + "match": "(?i)\\bvfn?m((add|sub)(132|213|231))[ps]h\\b", + "name": "keyword.operator.word.mnemonic.avx512.fp16.fmadd" + }, + { + "match": "(?i)\\bvfm(addsub|subadd)(132|213|231)ph\\b", + "name": "keyword.operator.word.mnemonic.avx512.fp16.fmaddsub" + }, + { + "match": "(?i)\\bv((min|max)ph|mov(sh|w))\\b", + "name": "keyword.operator.word.mnemonic.avx512.fp16.max" + } + ] + }, + "mnemonics-avx512pf": { + "patterns": [ + { + "match": "(?i)\\bv(gather|scatter)pf[01][dq]p[ds]\\b", + "name": "keyword.operator.word.mnemonic.avx512.pf" + } + ] + }, + "mnemonics-cet": { + "patterns": [ + { + "match": "(?i)\\b((inc|save(prev)?|rstor|rd)ssp|wru?ss|(set|clr)ssbsy|endbr(32|64))\\b", + "name": "keyword.operator.word.mnemonic.cet" + }, + { + "match": "(?i)\\bendbranch\\b", + "name": "keyword.operator.word.mnemonic.cet.misc" + } + ] + }, + "mnemonics-esi": { + "patterns": [ + { + "match": "(?i)\\benqcmds?\\b", + "name": "keyword.operator.word.mnemonic.esi" + } + ] + }, + "mnemonics-fpu": { + "patterns": [ + { + "match": "(?i)\\b(fcmov(n?([beu]|be)))\\b", + "name": "keyword.operator.word.mnemonic.fpu.data-transfer.mov" + }, + { + "match": "(?i)\\b(f(i?(ld|stp?)|b(ld|stp)|xch))\\b", + "name": "keyword.operator.word.mnemonic.fpu.data-transfer.other" + }, + { + "match": "(?i)\\b(f((add|div|mul|sub)p?|i(add|div|mul|sub)|(div|sub)rp?|i(div|sub)r))\\b", + "name": "keyword.operator.word.mnemonic.fpu.basic-arithmetic.basic" + }, + { + "match": "(?i)\\b(f(prem1?|abs|chs|rndint|scale|sqrt|xtract))\\b", + "name": "keyword.operator.word.mnemonic.fpu.basic-arithmetic.other" + }, + { + "match": "(?i)\\b(f(u?com[ip]?p?|icomp?|tst|xam))\\b", + "name": "keyword.operator.word.mnemonic.fpu.comparison" + }, + { + "match": "(?i)\\b(f(sin|cos|sincos|pa?tan|2xm1|yl2x(p1)?))\\b", + "name": "keyword.operator.word.mnemonic.fpu.transcendental" + }, + { + "match": "(?i)\\b(fld(1|z|pi|l2[et]|l[ng]2))\\b", + "name": "keyword.operator.word.mnemonic.fpu.load-constants" + }, + { + "match": "(?i)\\b(f((inc|dec)stp|free|n?(init|clex|st[cs]w|stenv|save)|ld(cw|env)|rstor|nop)|f?wait)\\b", + "name": "keyword.operator.word.mnemonic.fpu.control-management" + }, + { + "match": "(?i)\\b(fx(save|rstor)(64)?)\\b", + "name": "keyword.operator.word.mnemonic.fpu.state-management" + } + ] + }, + "mnemonics-future-intel": { + "patterns": [ + { + "include": "#mnemonics-future-intel-apx" + } + ] + }, + "mnemonics-future-intel-apx": { + "patterns": [ + { + "match": "(?i)\\b(c(cmp|test)(n?[bl]e?|[ft]|n?[osz]))\\b", + "name": "keyword.operator.word.mnemonic.apx.ccmp_test" + }, + { + "match": "(?i)\\b(cfcmovn?([bl]e?|[opsz]))\\b", + "name": "keyword.operator.word.mnemonic.apx.cfcmov" + }, + { + "match": "(?i)\\b(cmpn?([bl]e?|[opsz])xadd)\\b", + "name": "keyword.operator.word.mnemonic.apx.cmpxadd" + }, + { + "match": "(?i)\\b(jmpabs|(push|pop)2p?)\\b", + "name": "keyword.operator.word.mnemonic.apx.other" + } + ] + }, + "mnemonics-general-purpose": { + "patterns": [ + { + "match": "(?i)\\b(?:mov(?:[sz]x)?|cmov(?:n?[abceglopsz]|n?[abgl]e|p[eo]))\\b", + "name": "keyword.operator.word.mnemonic.general-purpose.data-transfer.mov" + }, + { + "match": "(?i)\\b(xchg|bswap|xadd|cmpxchg(8b)?)\\b", + "name": "keyword.operator.word.mnemonic.general-purpose.data-transfer.xchg" + }, + { + "match": "(?i)\\b((push|pop)(ad?)?|cwde?|cdq|cbw)\\b", + "name": "keyword.operator.word.mnemonic.general-purpose.data-transfer.other" + }, + { + "match": "(?i)\\b(adcx?|adox|add|sub|sbb|i?mul|i?div|inc|dec|neg|cmp)\\b", + "name": "keyword.operator.word.mnemonic.general-purpose.binary-arithmetic" + }, + { + "match": "(?i)\\b(daa|das|aaa|aas|aam|aad)\\b", + "name": "keyword.operator.word.mnemonic.general-purpose.decimal-arithmetic" + }, + { + "match": "(?i)\\b(and|x?or|not)\\b", + "name": "keyword.operator.word.mnemonic.general-purpose.logical" + }, + { + "match": "(?i)\\b(s[ah][rl]|sh[rl]d|r[co][rl])\\b", + "name": "keyword.operator.word.mnemonic.general-purpose.rotate" + }, + { + "match": "(?i)\\b(set(n?[abceglopsz]|n?[abgl]e|p[eo]))\\b", + "name": "keyword.operator.word.mnemonic.general-purpose.bit-and-byte.set" + }, + { + "match": "(?i)\\b(bt[crs]?|bs[fr]|test|crc32|popcnt)\\b", + "name": "keyword.operator.word.mnemonic.general-purpose.bit-and-byte.other" + }, + { + "match": "(?i)\\b(jmp|jn?[abceglopsz]|jn?[abgl]e|jp[eo]|j[er]?cxz)\\b", + "name": "keyword.operator.word.mnemonic.general-purpose.control-transfer.jmp" + }, + { + "match": "(?i)\\b(loop(n?[ez])?|call|ret|iret[dq]?|into?|bound|enter|leave)\\b", + "name": "keyword.operator.word.mnemonic.general-purpose.control-transfer.other" + }, + { + "match": "(?i)\\b((mov|cmp|sca|lod|sto)(s[bdw]?)|rep(n?[ez])?)\\b", + "name": "keyword.operator.word.mnemonic.general-purpose.strings" + }, + { + "match": "(?i)\\b((in|out)(s[bdw]?)?)\\b", + "name": "keyword.operator.word.mnemonic.general-purpose.io" + }, + { + "match": "(?i)\\b((st|cl)[cdi]|cmc|[ls]ahf|(push|pop)f[dq]?)\\b", + "name": "keyword.operator.word.mnemonic.general-purpose.flag-control" + }, + { + "match": "(?i)\\b(l[defgs]s)\\b", + "name": "keyword.operator.word.mnemonic.general-purpose.segment-registers" + }, + { + "match": "(?i)\\b(lea|nop|ud2?|xlatb?|cpuid|movbe)\\b", + "name": "keyword.operator.word.mnemonic.general-purpose.misc" + }, + { + "match": "(?i)\\b(cl(flush(opt)?|demote|wb)|pcommit)\\b", + "name": "keyword.operator.word.mnemonic.general-purpose.cache-control" + }, + { + "match": "(?i)\\b(rdrand|rdseed)\\b", + "name": "keyword.operator.word.mnemonic.general-purpose.rng" + }, + { + "match": "(?i)\\b(andn|bextr|bls(i|r|msk)|bzhi|pdep|pext|[lt]zcnt|(mul|ror|sar|shl|shr)x)\\b", + "name": "keyword.operator.word.mnemonic.general-purpose.bmi" + } + ] + }, + "mnemonics-intel-isa-keylocker": { + "patterns": [ + { + "match": "(?i)\\b(aes(enc|dec)(wide)?(128|256)kl|encodekey(128|256)|loadiwkey)\\b", + "name": "keyword.operator.word.mnemonic.keylocker" + } + ] + }, + "mnemonics-intel-isa-xeon-phi": { + "patterns": [ + { + "match": "(?i)\\bv(4fn?(madd)[ps]s|p4dpwssds?)\\b", + "name": "keyword.operator.word.mnemonic.xeon-phi" + } + ] + }, + "mnemonics-intel-manual-listing": { + "patterns": [ + { + "match": "(?i)\\bcvtt?pd1pi\\b", + "name": "keyword.operator.word.mnemonic.other.c" + }, + { + "match": "(?i)\\bv?gf2p8(affine(inv)?q|mul)b\\b", + "name": "keyword.operator.word.mnemonic.other.g" + }, + { + "match": "(?i)\\bhreset\\b", + "name": "keyword.operator.word.mnemonic.other.h" + }, + { + "match": "(?i)\\bincssp[dq]\\b", + "name": "keyword.operator.word.mnemonic.other.i" + }, + { + "match": "(?i)\\bmovdir(i|64b)\\b", + "name": "keyword.operator.word.mnemonic.other.m" + }, + { + "match": "(?i)\\bp((abs|(max|min)[su]?|mull|sra)q|config|twrite)\\b", + "name": "keyword.operator.word.mnemonic.other.p" + }, + { + "match": "(?i)\\brd(pid|ssp[dq])\\b", + "name": "keyword.operator.word.mnemonic.other.r" + }, + { + "match": "(?i)\\bserialize\\b", + "name": "keyword.operator.word.mnemonic.other.s" + }, + { + "match": "(?i)\\btpause\\b", + "name": "keyword.operator.word.mnemonic.other.t" + }, + { + "match": "(?i)\\bu(monitor|mwait)\\b", + "name": "keyword.operator.word.mnemonic.other.u" + }, + { + "match": "(?i)\\bvbroadcast[fi](32x[248]|64x[24])\\b", + "name": "keyword.operator.word.mnemonic.other.vb" + }, + { + "match": "(?i)\\bv(compressw|cvtne2?ps2bf16)\\b", + "name": "keyword.operator.word.mnemonic.other.vc" + }, + { + "match": "(?i)\\bvdpbf16ps\\b", + "name": "keyword.operator.word.mnemonic.other.vd" + }, + { + "match": "(?i)\\bvextract[fi]32x8\\b", + "name": "keyword.operator.word.mnemonic.other.ve" + }, + { + "match": "(?i)\\bv(insert([fi]32x8|i(32|64)x4))\\b", + "name": "keyword.operator.word.mnemonic.other.vi" + }, + { + "match": "(?i)\\bv(maskmov|(max|min)sh)\\b", + "name": "keyword.operator.word.mnemonic.other.vm" + }, + { + "match": "(?i)\\bvp((2intersect|andn?)[dq]|absq)\\b", + "name": "keyword.operator.word.mnemonic.other.vpa" + }, + { + "match": "(?i)\\bvpbroadcasti32x4\\b", + "name": "keyword.operator.word.mnemonic.other.vpb" + }, + { + "match": "(?i)\\bvpcompress[bw]\\b", + "name": "keyword.operator.word.mnemonic.other.vpc" + }, + { + "match": "(?i)\\bvp(dp(bu|ws)sds?)\\b", + "name": "keyword.operator.word.mnemonic.other.vpd" + }, + { + "match": "(?i)\\b(vperm(b|t2[bw])|vp(expand[bw]|extrtd))\\b", + "name": "keyword.operator.word.mnemonic.other.vpe" + }, + { + "match": "(?i)\\bvp(madd52[hl]uq|mov(d(2m|[bw])|q[bdw]|wb)|mpov[bdqw]2m|multishiftqb)\\b", + "name": "keyword.operator.word.mnemonic.other.vpm" + }, + { + "match": "(?i)\\b(vpopcnt[bdqw]|vpor[dq])\\b", + "name": "keyword.operator.word.mnemonic.other.vpo" + }, + { + "match": "(?i)\\bvprorv[dq]\\b", + "name": "keyword.operator.word.mnemonic.other.vpr" + }, + { + "match": "(?i)\\bvp(sh[lr]dv?[dqw]|shufbitqmb|shufps)\\b", + "name": "keyword.operator.word.mnemonic.other.vps" + }, + { + "match": "(?i)\\bvpternlog[dq]\\b", + "name": "keyword.operator.word.mnemonic.other.vpt" + }, + { + "match": "(?i)\\bvpxor[dq]\\b", + "name": "keyword.operator.word.mnemonic.other.vpx" + }, + { + "match": "(?i)\\bv(scalef[ps][dhs]|scatter[dq]p[ds])\\b", + "name": "keyword.operator.word.mnemonic.other.vs" + }, + { + "match": "(?i)\\b(wbnoinvd|wru?ss[dq])\\b", + "name": "keyword.operator.word.mnemonic.other.w" + } + ] + }, + "mnemonics-invalid": { + "patterns": [ + { + "include": "#mnemonics-invalid-amd-sse5" + } + ] + }, + "mnemonics-invalid-amd-sse5": { + "patterns": [ + { + "match": "(?i)\\b(com[ps][ds]|pcomu?[bdqw])\\b", + "name": "invalid.keyword.operator.word.mnemonic.sse5.comparison" + }, + { + "match": "(?i)\\b(cvtp(h2ps|s2ph)|frcz[ps][ds])\\b", + "name": "invalid.keyword.operator.word.mnemonic.sse5.conversion" + }, + { + "match": "(?i)\\b(fn?m((add|sub)[ps][ds])|ph(addu?(b[dqw]|w[dq]|dq)|sub(bw|dq|wd))|pma(css?(d(d|q[hl])|w[dw])|dcss?wd))\\b", + "name": "invalid.keyword.operator.word.mnemonic.sse5.packed-arithmetic" + }, + { + "match": "(?i)\\b(pcmov|permp[ds]|pperm|prot[bdqw]|psh[al][bdqw])\\b", + "name": "invalid.keyword.operator.word.mnemonic.sse5.simd-integer" + } + ] + }, + "mnemonics-mmx": { + "patterns": [ + { + "match": "(?i)\\b(mov[dq])\\b", + "name": "keyword.operator.word.mnemonic.mmx.data-transfer" + }, + { + "match": "(?i)\\b(pack(ssdw|[su]swb)|punpck[hl](bw|dq|wd))\\b", + "name": "keyword.operator.word.mnemonic.mmx.conversion" + }, + { + "match": "(?i)\\b(p(((add|sub)(d|(u?s)?[bw]))|maddwd|mul[lh]w))\\b", + "name": "keyword.operator.word.mnemonic.mmx.packed-arithmetic" + }, + { + "match": "(?i)\\b(pcmp((eq|gt)[bdw]))\\b", + "name": "keyword.operator.word.mnemonic.mmx.comparison" + }, + { + "match": "(?i)\\b(pandn?|px?or)\\b", + "name": "keyword.operator.word.mnemonic.mmx.logical" + }, + { + "match": "(?i)\\b(ps([rl]l[dwq]|raw|rad))\\b", + "name": "keyword.operator.word.mnemonic.mmx.shift-and-rotate" + }, + { + "match": "(?i)\\b(emms)\\b", + "name": "keyword.operator.word.mnemonic.mmx.state-management" + } + ] + }, + "mnemonics-mpx": { + "patterns": [ + { + "match": "(?i)\\b(bnd(mk|c[lnu]|mov|ldx|stx))\\b", + "name": "keyword.operator.word.mnemonic.mpx" + } + ] + }, + "mnemonics-pseudo-ops": { + "patterns": [ + { + "match": "(?i)\\b(cmp(n?(eq|lt|le)|(un)?ord)[ps][ds])\\b", + "name": "keyword.operator.word.pseudo-mnemonic.sse2.compare" + }, + { + "match": "(?i)\\b(v?pclmul([hl]q[hl]q|[hl]qh)dq)\\b", + "name": "keyword.operator.word.pseudo-mnemonic.avx.promoted.aes" + }, + { + "match": "(?i)\\b(vcmp(eq(_(os|uq|us))?|neq(_(oq|os|us))?|[gl][et](_oq)?|n[gl][et](_uq)?|(un)?ord(_s)?|false(_os)?|true(_us)?)[ps][ds])\\b", + "name": "keyword.operator.word.pseudo-mnemonic.avx.promoted.comparison" + }, + { + "match": "(?i)\\bvp(cmpn?(eq|le|lt))\\b", + "name": "keyword.operator.word.pseudo-mnemonic.avx512.compare" + }, + { + "match": "(?i)\\b(vpcom(n?eq|[gl][et]|false|true)(b|uw))\\b", + "name": "keyword.operator.word.pseudo-mnemonic.supplemental.amd.xop.simd" + } + ] + }, + "mnemonics-sgx": { + "patterns": [ + { + "match": "(?i)\\bencl[su]\\b", + "name": "keyword.operator.word.mnemonic.sgx" + }, + { + "match": "(?i)\\be(add|block|create|dbg(rd|wr)|extend|init|ld[bu]|pa|remove|track|wb)\\b", + "name": "support.constant.sgx1.supervisor" + }, + { + "match": "(?i)\\be(add|block|create|dbg(rd|wr)|extend|init|ld[bu]|pa|remove|track|wb)\\b", + "name": "support.constant.sgx1.supervisor" + }, + { + "match": "(?i)\\be(enter|exit|getkey|report|resume)\\b", + "name": "support.constant.sgx1.user" + }, + { + "match": "(?i)\\be(aug|mod(pr|t))\\b", + "name": "support.constant.sgx2.supervisor" + }, + { + "match": "(?i)\\be(accept(copy)?|modpe)\\b", + "name": "support.constant.sgx2.user" + } + ] + }, + "mnemonics-sha": { + "patterns": [ + { + "match": "(?i)\\b(sha(1rnds4|256rnds2|1nexte|(1|256)msg[12]))\\b", + "name": "keyword.operator.word.mnemonic.sha" + } + ] + }, + "mnemonics-smx": { + "patterns": [ + { + "match": "(?i)\\b(getsec)\\b", + "name": "keyword.operator.word.mnemonic.smx.getsec" + }, + { + "match": "(?i)\\b(capabilities|enteraccs|exitac|senter|sexit|parameters|smctrl|wakeup)\\b", + "name": "support.constant.smx" + } + ] + }, + "mnemonics-sse": { + "patterns": [ + { + "match": "(?i)\\b(mov(([ahlu]|hl|lh|msk)ps|ss))\\b", + "name": "keyword.operator.word.mnemonic.sse.data-transfer" + }, + { + "match": "(?i)\\b((add|div|max|min|mul|rcp|r?sqrt|sub)[ps]s)\\b", + "name": "keyword.operator.word.mnemonic.sse.packed-arithmetic" + }, + { + "match": "(?i)\\b(cmp[ps]s|u?comiss)\\b", + "name": "keyword.operator.word.mnemonic.sse.comparison" + }, + { + "match": "(?i)\\b((andn?|x?or)ps)\\b", + "name": "keyword.operator.word.mnemonic.sse.logical" + }, + { + "match": "(?i)\\b((shuf|unpck[hl])ps)\\b", + "name": "keyword.operator.word.mnemonic.sse.shuffle-and-unpack" + }, + { + "match": "(?i)\\b(cvt(pi2ps|si2ss|ps2pi|tps2pi|ss2si|tss2si))\\b", + "name": "keyword.operator.word.mnemonic.sse.conversion" + }, + { + "match": "(?i)\\b((ld|st)mxcsr)\\b", + "name": "keyword.operator.word.mnemonic.sse.state-management" + }, + { + "match": "(?i)\\b(p(avg[bw]|extrw|insrw|(max|min)(sw|ub)|sadbw|shufw|mulhuw|movmskb))\\b", + "name": "keyword.operator.word.mnemonic.sse.simd-integer" + }, + { + "match": "(?i)\\b(maskmovq|movntps|sfence)\\b", + "name": "keyword.operator.word.mnemonic.sse.cacheability-control" + }, + { + "match": "(?i)\\b(prefetch(nta|t[0-2]|w(t1)?))\\b", + "name": "keyword.operator.word.mnemonic.sse.prefetch" + } + ] + }, + "mnemonics-sse2": { + "patterns": [ + { + "match": "(?i)\\b(mov([auhl]|msk)pd)\\b", + "name": "keyword.operator.word.mnemonic.sse2.data-transfer" + }, + { + "match": "(?i)\\b((add|div|max|min|mul|sub|sqrt)[ps]d)\\b", + "name": "keyword.operator.word.mnemonic.sse2.packed-arithmetic" + }, + { + "match": "(?i)\\b((andn?|x?or)pd)\\b", + "name": "keyword.operator.word.mnemonic.sse2.logical" + }, + { + "match": "(?i)\\b((cmpp|u?comis)d)\\b", + "name": "keyword.operator.word.mnemonic.sse2.compare" + }, + { + "match": "(?i)\\b((shuf|unpck[hl])pd)\\b", + "name": "keyword.operator.word.mnemonic.sse2.shuffle-and-unpack" + }, + { + "match": "(?i)\\b(cvt(dq2pd|pi2pd|ps2pd|pd2ps|si2sd|sd2ss|ss2sd|t?(pd2dq|pd2pi|sd2si)))\\b", + "name": "keyword.operator.word.mnemonic.sse2.conversion" + }, + { + "match": "(?i)\\b(cvt(dq2ps|ps2dq|tps2dq))\\b", + "name": "keyword.operator.word.mnemonic.sse2.packed-floating-point" + }, + { + "match": "(?i)\\b(mov(dq[au]|q2dq|dq2q))\\b", + "name": "keyword.operator.word.mnemonic.sse2.simd-integer.mov" + }, + { + "match": "(?i)\\b(p((add|sub|(s[lr]l|mulu|unpck[hl]q)d)q|shuf(d|[hl]w)))\\b", + "name": "keyword.operator.word.mnemonic.sse2.simd-integer.other" + }, + { + "match": "(?i)\\b([lm]fence|pause|maskmovdqu|movnt(dq|i|pd))\\b", + "name": "keyword.operator.word.mnemonic.sse2.cacheability-control" + } + ] + }, + "mnemonics-sse3": { + "patterns": [ + { + "match": "(?i)\\b(fisttp|lddqu|(addsub|h(add|sub))p[sd]|mov(sh|sl|d)dup|monitor|mwait)\\b", + "name": "keyword.operator.word.mnemonic.sse3" + }, + { + "match": "(?i)\\b(ph(add|sub)(s?w|d))\\b", + "name": "keyword.operator.word.mnemonic.sse3.supplimental.horizontal-packed-arithmetic" + }, + { + "match": "(?i)\\b(p((abs|sign)[bdw]|maddubsw|mulhrsw|shufb|alignr))\\b", + "name": "keyword.operator.word.mnemonic.sse3.supplimental.other" + } + ] + }, + "mnemonics-sse4": { + "patterns": [ + { + "match": "(?i)\\b(pmul(ld|dq)|dpp[ds])\\b", + "name": "keyword.operator.word.mnemonic.sse4.1.arithmetic" + }, + { + "match": "(?i)\\b(movntdqa)\\b", + "name": "keyword.operator.word.mnemonic.sse4.1.load-hint" + }, + { + "match": "(?i)\\b(blendv?p[ds]|pblend(vb|w))\\b", + "name": "keyword.operator.word.mnemonic.sse4.1.packed-blending" + }, + { + "match": "(?i)\\b(p(min|max)(u[dw]|s[bd]))\\b", + "name": "keyword.operator.word.mnemonic.sse4.1.packed-integer" + }, + { + "match": "(?i)\\b(round[ps][sd])\\b", + "name": "keyword.operator.word.mnemonic.sse4.1.packed-floating-point" + }, + { + "match": "(?i)\\b((extract|insert)ps|p((ins|ext)(r[bdq])))\\b", + "name": "keyword.operator.word.mnemonic.sse4.1.insertion-and-extraction" + }, + { + "match": "(?i)\\b(pmov([sz]x(b[dqw]|dq|wd|wq)))\\b", + "name": "keyword.operator.word.mnemonic.sse4.1.conversion" + }, + { + "match": "(?i)\\b(mpsadbw|phminposuw|ptest|pcmpeqq|packusdw)\\b", + "name": "keyword.operator.word.mnemonic.sse4.1.other" + }, + { + "match": "(?i)\\b(pcmp([ei]str[im]|gtq))\\b", + "name": "keyword.operator.word.mnemonic.sse4.2" + } + ] + }, + "mnemonics-supplemental-amd": { + "patterns": [ + { + "match": "(?i)\\b(bl([cs](fill|ic?|msk)|cs)|t1mskc|tzmsk)\\b", + "name": "keyword.operator.word.mnemonic.supplemental.amd.general-purpose" + }, + { + "match": "(?i)\\b(clgi|int3|invlpga|iretw|skinit|stgi|vm(load|mcall|run|save)|monitorx|mwaitx)\\b", + "name": "keyword.operator.word.mnemonic.supplemental.amd.system" + }, + { + "match": "(?i)\\b([ls]lwpcb|lwp(ins|val))\\b", + "name": "keyword.operator.word.mnemonic.supplemental.amd.profiling" + }, + { + "match": "(?i)\\b(movnts[ds])\\b", + "name": "keyword.operator.word.mnemonic.supplemental.amd.memory-management" + }, + { + "match": "(?i)\\b(prefetch|clzero)\\b", + "name": "keyword.operator.word.mnemonic.supplemental.amd.cache-management" + }, + { + "match": "(?i)\\b((extr|insert)q)\\b", + "name": "keyword.operator.word.mnemonic.supplemental.amd.sse4.a" + }, + { + "match": "(?i)\\b(vfn?m((add|sub)[ps][ds])|vfm((addsub|subadd)p[ds]))\\b", + "name": "keyword.operator.word.mnemonic.supplemental.amd.fma4" + }, + { + "match": "(?i)\\b(vp(cmov|(comu?|rot|sh[al])[bdqw]|mac(s?s(d(d|q[hl])|w[dw]))|madcss?wd|perm))\\b", + "name": "keyword.operator.word.mnemonic.supplemental.amd.xop.simd" + }, + { + "match": "(?i)\\b(vph(addu?(b[dqw]|w[dq]|dq)|sub(bw|dq|wd)))\\b", + "name": "keyword.operator.word.mnemonic.supplemental.amd.xop.simd-horizontal" + }, + { + "match": "(?i)\\b(vfrcz[ps][ds]|vpermil2p[ds])\\b", + "name": "keyword.operator.word.mnemonic.supplemental.amd.xop.other" + }, + { + "match": "(?i)\\b(femms)\\b", + "name": "keyword.operator.word.mnemonic.supplemental.amd.3dnow" + }, + { + "match": "(?i)\\b(p(avgusb|(f2i|i2f)[dw]|mulhrw|swapd)|pf((p?n)?acc|add|max|min|mul|rcp(it[12])?|rsqit1|rsqrt|subr?))\\b", + "name": "keyword.operator.word.mnemonic.supplemental.amd.3dnow.simd" + }, + { + "match": "(?i)\\b(pfcmp(eq|ge|gt))\\b", + "name": "keyword.operator.word.mnemonic.supplemental.amd.3dnow.comparison" + } + ] + }, + "mnemonics-supplemental-cyrix": { + "patterns": [ + { + "match": "(?i)\\b((sv|rs)dc|(wr|rd)shr|paddsiw)\\b", + "name": "keyword.operator.word.mnemonic.supplemental.cyrix" + } + ] + }, + "mnemonics-supplemental-via": { + "patterns": [ + { + "match": "(?i)\\b(montmul)\\b", + "name": "keyword.operator.word.mnemonic.supplemental.via" + }, + { + "match": "(?i)\\b(x(store(rng)?|crypt(ecb|cbc|ctr|cfb|ofb)|sha(1|256)))\\b", + "name": "keyword.operator.word.mnemonic.supplemental.via.padlock" + } + ] + }, + "mnemonics-system": { + "patterns": [ + { + "match": "(?i)\\b((cl|st)ac|[ls]([gli]dt|tr|msw)|clts|arpl|lar|lsl|ver[rw]|inv(d|lpg|pcid)|wbinvd)\\b", + "name": "keyword.operator.word.mnemonic.system" + }, + { + "match": "(?i)\\b(lock|hlt|rsm|(rd|wr)(msr|pkru|[fg]sbase)|rd(pmc|tscp?)|sys(enter|exit))\\b", + "name": "keyword.operator.word.mnemonic.system" + }, + { + "match": "(?i)\\b(x((save(c|opt|s)?|rstors?)(64)?|[gs]etbv))\\b", + "name": "keyword.operator.word.mnemonic.system" + } + ] + }, + "mnemonics-tsx": { + "patterns": [ + { + "match": "(?i)\\b(x(abort|begin|end|test|(res|sus)ldtrk))\\b", + "name": "keyword.operator.word.mnemonic.tsx" + } + ] + }, + "mnemonics-uirq": { + "patterns": [ + { + "match": "(?i)\\b((cl|st|test)ui|senduipi|uiret)\\b", + "name": "keyword.operator.word.mnemonic.uirq" + } + ] + }, + "mnemonics-undocumented": { + "patterns": [ + { + "match": "(?i)\\b(ret[nf]|icebp|int1|int03|smi|ud1)\\b", + "name": "keyword.operator.word.mnemonic.undocumented" + } + ] + }, + "mnemonics-vmx": { + "patterns": [ + { + "match": "(?i)\\b(vm(ptr(ld|st)|clear|read|write|launch|resume|xo(ff|n)|call|func)|inv(ept|vpid))\\b", + "name": "keyword.operator.word.mnemonic.vmx" + } + ] + }, + "preprocessor": { + "patterns": [ + { + "begin": "^\\s*[#%]\\s*(error|warning)\\b", + "captures": { + "1": { + "name": "keyword.control.import.error.c" + } + }, + "end": "$", + "name": "meta.preprocessor.diagnostic.c", + "patterns": [ + { + "match": "(?>\\\\\\s*\\n)", + "name": "punctuation.separator.continuation.c" + } + ] + }, + { + "begin": "^\\s*[#%]\\s*(include|import)\\b\\s+", + "captures": { + "1": { + "name": "keyword.control.import.include.c" + } + }, + "end": "(?=(?://|/\\*))|$", + "name": "meta.preprocessor.c.include", + "patterns": [ + { + "match": "(?>\\\\\\s*\\n)", + "name": "punctuation.separator.continuation.c" + }, + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.c" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.c" + } + }, + "name": "string.quoted.double.include.c" + }, + { + "begin": "<", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.c" + } + }, + "end": ">", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.c" + } + }, + "name": "string.quoted.other.lt-gt.include.c" + } + ] + }, + { + "begin": "^\\s*[%#]\\s*(i?x?define|defined|elif(def)?|else|i[fs]n?(?:def|macro|ctx|idni?|id|num|str|token|empty|env)?|line|(i|end|uni?)?macro|pragma|endif)\\b", + "captures": { + "1": { + "name": "keyword.control.import.c" + } + }, + "end": "(?=(?://|/\\*))|$", + "name": "meta.preprocessor.c", + "patterns": [ + { + "match": "(?>\\\\\\s*\\n)", + "name": "punctuation.separator.continuation.c" + }, + { + "include": "#preprocessor-functions" + } + ] + }, + { + "begin": "^\\s*[#%]\\s*(assign|strlen|substr|(end|exit)?rep|push|pop|rotate|use|ifusing|ifusable|def(?:ailas|str|tok)|undef(?:alias)?)\\b", + "captures": { + "1": { + "name": "keyword.control" + } + }, + "end": "$", + "name": "meta.preprocessor.nasm", + "patterns": [ + { + "match": "(?>\\\\\\s*\\n)", + "name": "punctuation.separator.continuation.c" + }, + { + "include": "#preprocessor-functions" + } + ] + } + ] + }, + "preprocessor-functions": { + "patterns": [ + { + "begin": "((%)(?:(abs|cond|count|eval|isn?(?:def|macro|ctx|idni?|id|num|str|token|empty|env)?|num|sel|str(?:cat|len)?|substr|tok)\\s*(\\()))", + "captures": { + "3": { + "name": "support.function.preprocessor.asm.x86_64" + } + }, + "end": "(\\))|$", + "name": "meta.preprocessor.function.asm.x86_64", + "patterns": [ + { + "include": "#preprocessor-functions" + } + ] + } + ] + }, + "registers": { + "patterns": [ + { + "match": "(?i)\\b(?:[abcd][hl]|[er]?[abcd]x|[er]?(?:di|si|bp|sp)|dil|sil|bpl|spl|r(?:8|9|1[0-5])[bdlw]?)\\b", + "name": "constant.language.register.general-purpose.asm.x86_64" + }, + { + "match": "(?i)\\b(?:[cdefgs]s)\\b", + "name": "constant.language.register.segment.asm.x86_64" + }, + { + "match": "(?i)\\b(?:[er]?flags)\\b", + "name": "constant.language.register.flags.asm.x86_64" + }, + { + "match": "(?i)\\b(?:[er]?ip)\\b", + "name": "constant.language.register.instruction-pointer.asm.x86_64" + }, + { + "match": "(?i)\\b(?:cr[02-4])\\b", + "name": "constant.language.register.control.asm.x86_64" + }, + { + "match": "(?i)\\b(?:(?:mm|st|fpr)[0-7])\\b", + "name": "constant.language.register.mmx.asm.x86_64" + }, + { + "match": "(?i)\\b(?:[xy]mm(?:[0-9]|1[0-5])|mxcsr)\\b", + "name": "constant.language.register.sse_avx.asm.x86_64" + }, + { + "match": "(?i)\\b(?:zmm(?:[12]?[0-9]|30|31))\\b", + "name": "constant.language.register.avx512.asm.x86_64" + }, + { + "match": "(?i)\\b(?:bnd(?:[0-3]|cfg[su]|status))\\b", + "name": "constant.language.register.memory-protection.asm.x86_64" + }, + { + "match": "(?i)\\b(?:(?:[gil]dt)r?|tr)\\b", + "name": "constant.language.register.system-table-pointer.asm.x86_64" + }, + { + "match": "(?i)\\b(?:dr[0-367])\\b", + "name": "constant.language.register.debug.asm.x86_64" + }, + { + "match": "(?i)\\b(?:cr8|dr(?:[89]|1[0-5])|efer|tpr|syscfg)\\b", + "name": "constant.language.register.amd.asm.x86_64" + }, + { + "match": "(?i)\\b(?:db[0-367]|t[67]|tr[3-7]|st)\\b", + "name": "invalid.deprecated.constant.language.register.asm.x86_64" + }, + { + "match": "(?i)\\b[xy]mm(?:1[6-9]|2[0-9]|3[01])\\b", + "name": "constant.language.register.general-purpose.alias.asm.x86_64" + } + ] + }, + "strings": { + "patterns": [ + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.asm" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.asm" + } + }, + "name": "string.quoted.double.asm", + "patterns": [ + { + "include": "#string_escaped_char" + }, + { + "include": "#string_placeholder" + } + ] + }, + { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.asm" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.asm" + } + }, + "name": "string.quoted.single.asm", + "patterns": [ + { + "include": "#string_escaped_char" + }, + { + "include": "#string_placeholder" + } + ] + }, + { + "begin": "`", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.asm" + } + }, + "end": "`", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.asm" + } + }, + "name": "string.quoted.backquote.asm", + "patterns": [ + { + "include": "#string_escaped_char" + }, + { + "include": "#string_placeholder" + } + ] + } + ] + }, + "support": { + "patterns": [ + { + "match": "(?i)\\b(?:s?byte|(?:[doqtyz]|dq|s[dq]?)?word|(?:d|res)[bdoqtwyz]|ddq)\\b", + "name": "storage.type.asm.x86_64" + }, + { + "match": "(?i)\\b(?:incbin|equ|times|dup)\\b", + "name": "support.function.asm.x86_64" + }, + { + "match": "(?i)\\b(?:strict|nosplit|near|far|abs|rel)\\b", + "name": "storage.modifier.asm.x86_64" + }, + { + "match": "(?i)\\b(?:[ao](?:16|32|64))\\b", + "name": "storage.modifier.prefix.asm.x86_64" + }, + { + "match": "(?i)\\b(?:rep(?:n?[ez])?|lock|xacquire|xrelease|(?:no)?bnd)\\b", + "name": "storage.modifier.prefix.asm.x86_64" + }, + { + "captures": { + "1": { + "name": "storage.modifier.prefix.vex.asm.x86_64" + } + }, + "match": "{(vex[23]?|evex|rex)}" + }, + { + "captures": { + "1": { + "name": "storage.modifier.opmask.asm.x86_64" + } + }, + "match": "{(k[1-7])}" + }, + { + "captures": { + "1": { + "name": "storage.modifier.precision.asm.x86_64" + } + }, + "match": "{(1to(?:8|16))}" + }, + { + "captures": { + "1": { + "name": "storage.modifier.rounding.asm.x86_64" + } + }, + "match": "{(z|(?:r[nudz]-)?sae)}" + }, + { + "match": "\\.\\.(?:start|imagebase|tlvp|got(?:pc(?:rel)?|(?:tp)?off)?|plt|sym|tlsie)\\b", + "name": "support.constant.asm.x86_64" + }, + { + "match": "\\b__\\?(?:utf(?:(?:16|32)(?:[lb]e)?)|float(?:8|16|32|64|80[me]|128[lh])|bfloat16|Infinity|[QS]?NaN)\\?__\\b", + "name": "support.function.asm.x86_64" + }, + { + "match": "\\b__(?:utf(?:(?:16|32)(?:[lb]e)?)|float(?:8|16|32|64|80[me]|128[lh])|bfloat16|Infinity|[QS]?NaN)__\\b", + "name": "support.function.legacy.asm.x86_64" + }, + { + "match": "\\b__\\?NASM_(?:MAJOR|(?:SUB)?MINOR|SNAPSHOT|VER(?:SION_ID)?)\\?__\\b", + "name": "support.function.asm.x86_64" + }, + { + "match": "\\b___\\?NASM_PATCHLEVEL\\?__\\b", + "name": "support.function.asm.x86_64" + }, + { + "match": "\\b__\\?(?:FILE|LINE|BITS|OUTPUT_FORMAT|DEBUG_FORMAT)\\?__\\b", + "name": "support.function.asm.x86_64" + }, + { + "match": "\\b__\\?(?:(?:UTC_)?(?:DATE|TIME)(?:_NUM)?|POSIX_TIME)\\?__\\b", + "name": "support.function.asm.x86_64" + }, + { + "match": "\\b__\\?USE_(?:\\w+)\\?__\\b", + "name": "support.function.asm.x86_64" + }, + { + "match": "\\b__\\?PASS\\?__\\b", + "name": "invalid.deprecated.support.constant.altreg.asm.x86_64" + }, + { + "match": "\\b__\\?ALIGNMODE\\?__\\b", + "name": "support.constant.smartalign.asm.x86_64" + }, + { + "match": "\\b__\\?ALIGN_(\\w+)\\?__\\b", + "name": "support.function.smartalign.asm.x86_64" + }, + { + "match": "\\b__NASM_(?:MAJOR|(?:SUB)?MINOR|SNAPSHOT|VER(?:SION_ID)?)__\\b", + "name": "support.function.asm.x86_64" + }, + { + "match": "\\b___NASM_PATCHLEVEL__\\b", + "name": "support.function.asm.x86_64" + }, + { + "match": "\\b__(?:FILE|LINE|BITS|OUTPUT_FORMAT|DEBUG_FORMAT)__\\b", + "name": "support.function.asm.x86_64" + }, + { + "match": "\\b__(?:(?:UTC_)?(?:DATE|TIME)(?:_NUM)?|POSIX_TIME)__\\b", + "name": "support.function.asm.x86_64" + }, + { + "match": "\\b__USE_(?:\\w+)__\\b", + "name": "support.function.asm.x86_64" + }, + { + "match": "\\b__PASS__\\b", + "name": "invalid.deprecated.support.constant.altreg.asm.x86_64" + }, + { + "match": "\\b__ALIGNMODE__\\b", + "name": "support.constant.smartalign.asm.x86_64" + }, + { + "match": "\\b__ALIGN_(\\w+)__\\b", + "name": "support.function.smartalign.asm.x86_64" + }, + { + "match": "\\b(?:Inf|[QS]?NaN)\\b", + "name": "support.constant.fp.asm.x86_64" + }, + { + "match": "\\b(?:float(?:8|16|32|64|80[me]|128[lh]))\\b", + "name": "support.function.fp.asm.x86_64" + }, + { + "match": "(?i)\\bilog2(?:[ewfc]|[fc]w)?\\b", + "name": "support.function.ifunc.asm.x86_64" + } + ] + } + }, + "scopeName": "source.asm.x86_64", + "uuid": "05d6565d-991a-4e88-8e28-63bb21197f32" +} diff --git a/docs/shiki/languages/astro.tmLanguage.json b/docs/shiki/languages/astro.tmLanguage.json new file mode 100644 index 00000000..96dfcf37 --- /dev/null +++ b/docs/shiki/languages/astro.tmLanguage.json @@ -0,0 +1,773 @@ +{ + "name": "astro", + "scopeName": "source.astro", + "fileTypes": ["astro"], + "injections": { + "L:(meta.script.astro) (meta.lang.json) - (meta source)": { + "patterns": [ + { + "begin": "(?<=>)(?!</)", + "end": "(?=</)", + "name": "meta.embedded.block.astro", + "contentName": "source.json", + "patterns": [ + { + "include": "source.json" + } + ] + } + ] + }, + "L:(meta.script.astro) (meta.lang.js | meta.lang.javascript | meta.lang.partytown | meta.lang.node) - (meta source)": { + "patterns": [ + { + "begin": "(?<=>)(?!</)", + "end": "(?=</)", + "name": "meta.embedded.block.astro", + "contentName": "source.js", + "patterns": [ + { + "include": "source.js" + } + ] + } + ] + }, + "L:(meta.script.astro) (meta.lang.ts | meta.lang.typescript) - (meta source)": { + "patterns": [ + { + "begin": "(?<=>)(?!</)", + "end": "(?=</)", + "name": "meta.embedded.block.astro", + "contentName": "source.ts", + "patterns": [ + { + "include": "source.ts" + } + ] + } + ] + }, + "L:meta.script.astro - meta.lang - (meta source)": { + "patterns": [ + { + "begin": "(?<=>)(?!</)", + "end": "(?=</)", + "name": "meta.embedded.block.astro", + "contentName": "source.js", + "patterns": [ + { + "include": "source.js" + } + ] + } + ] + }, + "L:meta.style.astro meta.lang.stylus - (meta source)": { + "patterns": [ + { + "begin": "(?<=>)(?!</)", + "end": "(?=</)", + "name": "meta.embedded.block.astro", + "contentName": "source.stylus", + "patterns": [ + { + "include": "source.stylus" + } + ] + } + ] + }, + "L:meta.style.astro meta.lang.sass - (meta source)": { + "patterns": [ + { + "begin": "(?<=>)(?!</)", + "end": "(?=</)", + "name": "meta.embedded.block.astro", + "contentName": "source.sass", + "patterns": [ + { + "include": "source.sass" + } + ] + } + ] + }, + "L:meta.style.astro meta.lang.css - (meta source)": { + "patterns": [ + { + "begin": "(?<=>)(?!</)", + "end": "(?=</)", + "name": "meta.embedded.block.astro", + "contentName": "source.css", + "patterns": [ + { + "include": "source.css" + } + ] + } + ] + }, + "L:meta.style.astro meta.lang.scss - (meta source)": { + "patterns": [ + { + "begin": "(?<=>)(?!</)", + "end": "(?=</)", + "name": "meta.embedded.block.astro", + "contentName": "source.css.scss", + "patterns": [ + { + "include": "source.css.scss" + } + ] + } + ] + }, + "L:meta.style.astro meta.lang.less - (meta source)": { + "patterns": [ + { + "begin": "(?<=>)(?!</)", + "end": "(?=</)", + "name": "meta.embedded.block.astro", + "contentName": "source.css.less", + "patterns": [ + { + "include": "source.css.less" + } + ] + } + ] + }, + "L:meta.style.astro meta.lang.postcss - (meta source)": { + "patterns": [ + { + "begin": "(?<=>)(?!</)", + "end": "(?=</)", + "name": "meta.embedded.block.astro", + "contentName": "source.css.postcss", + "patterns": [ + { + "include": "source.css.postcss" + } + ] + } + ] + }, + "L:meta.style.astro - meta.lang - (meta source)": { + "patterns": [ + { + "begin": "(?<=>)(?!</)", + "end": "(?=</)", + "name": "meta.embedded.block.astro", + "contentName": "source.css", + "patterns": [ + { + "include": "source.css" + } + ] + } + ] + } + }, + "patterns": [ + { + "include": "#scope" + }, + { + "include": "#frontmatter" + } + ], + "repository": { + "frontmatter": { + "begin": "\\A(-{3})\\s*$", + "end": "(^|\\G)(-{3})|\\.{3}\\s*$", + "beginCaptures": { + "1": { + "name": "comment" + } + }, + "endCaptures": { + "2": { + "name": "comment" + } + }, + "contentName": "source.ts", + "patterns": [ + { + "include": "source.ts" + } + ] + }, + "scope": { + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#tags" + }, + { + "include": "#interpolation" + }, + { + "begin": "(?<=>|})", + "end": "(?=<|{)", + "name": "text.astro" + } + ] + }, + "comments": { + "begin": "<!--", + "end": "-->", + "captures": { + "0": { + "name": "punctuation.definition.comment.astro" + } + }, + "name": "comment.block.astro", + "patterns": [ + { + "match": "\\G-?>|<!--(?!>)|<!-(?=-->)|--!>", + "name": "invalid.illegal.characters-not-allowed-here.astro" + } + ] + }, + "interpolation": { + "patterns": [ + { + "begin": "\\{", + "end": "\\}", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.astro" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.astro" + } + }, + "contentName": "meta.embedded.expression.astro source.tsx", + "patterns": [ + { + "begin": "\\G\\s*(?={)", + "end": "(?<=})", + "patterns": [ + { + "include": "source.tsx#object-literal" + } + ] + }, + { + "include": "source.tsx" + } + ] + } + ] + }, + "attributes": { + "patterns": [ + { + "include": "#attributes-events" + }, + { + "include": "#attributes-keyvalue" + }, + { + "include": "#attributes-interpolated" + } + ] + }, + "attributes-events": { + "begin": "(on(s(croll|t(orage|alled)|u(spend|bmit)|e(curitypolicyviolation|ek(ing|ed)|lect))|hashchange|c(hange|o(ntextmenu|py)|u(t|echange)|l(ick|ose)|an(cel|play(through)?))|t(imeupdate|oggle)|in(put|valid)|o(nline|ffline)|d(urationchange|r(op|ag(start|over|e(n(ter|d)|xit)|leave)?)|blclick)|un(handledrejection|load)|p(opstate|lay(ing)?|a(ste|use|ge(show|hide))|rogress)|e(nded|rror|mptied)|volumechange|key(down|up|press)|focus|w(heel|aiting)|l(oad(start|e(nd|d(data|metadata)))?|anguagechange)|a(uxclick|fterprint|bort)|r(e(s(ize|et)|jectionhandled)|atechange)|m(ouse(o(ut|ver)|down|up|enter|leave|move)|essage(error)?)|b(efore(unload|print)|lur)))(?![\\\\w:-])", + "beginCaptures": { + "0": { + "patterns": [ + { + "match": ".*", + "name": "entity.other.attribute-name.astro" + } + ] + } + }, + "end": "(?=\\s*+[^=\\s])", + "name": "meta.attribute.$1.astro", + "patterns": [ + { + "begin": "=", + "beginCaptures": { + "0": { + "name": "punctuation.separator.key-value.astro" + } + }, + "end": "(?<=[^\\s=])(?!\\s*=)|(?=/?>)", + "patterns": [ + { + "begin": "(?=[^\\s=<>`/]|/(?!>))", + "end": "(?!\\G)", + "name": "meta.embedded.line.js", + "patterns": [ + { + "match": "(([^\\s\\\"'=<>`/]|/(?!>))+)", + "name": "string.unquoted.astro", + "captures": { + "0": { + "name": "source.js" + }, + "1": { + "patterns": [ + { + "include": "source.js" + } + ] + } + } + }, + { + "begin": "([\"])", + "end": "\\1", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.astro" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.astro" + } + }, + "name": "string.quoted.astro", + "patterns": [ + { + "match": "([^\\n\\\"/]|/(?![/*]))+", + "captures": { + "0": { + "patterns": [ + { + "include": "source.js" + } + ] + } + } + }, + { + "begin": "//", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.js" + } + }, + "end": "(?=\\\")|\\n", + "name": "comment.line.double-slash.js" + }, + { + "begin": "/\\*", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.begin.js" + } + }, + "end": "(?=\\\")|\\*/", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.end.js" + } + }, + "name": "comment.block.js" + } + ] + }, + { + "begin": "(['])", + "end": "\\1", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.astro" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.astro" + } + }, + "name": "string.quoted.astro", + "patterns": [ + { + "match": "([^\\n\\'/]|/(?![/*]))+", + "captures": { + "0": { + "patterns": [ + { + "include": "source.js" + } + ] + } + } + }, + { + "begin": "//", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.js" + } + }, + "end": "(?=\\')|\\n", + "name": "comment.line.double-slash.js" + }, + { + "begin": "/\\*", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.begin.js" + } + }, + "end": "(?=\\')|\\*/", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.end.js" + } + }, + "name": "comment.block.js" + } + ] + } + ] + } + ] + } + ] + }, + "attributes-interpolated": { + "begin": "(?<!:|=)\\s*({)", + "end": "(\\})", + "contentName": "meta.embedded.expression.astro source.tsx", + "patterns": [ + { + "include": "source.tsx" + } + ] + }, + "attributes-keyvalue": { + "begin": "([_@$[:alpha:]][:._\\-$[:alnum:]]*)", + "beginCaptures": { + "0": { + "patterns": [ + { + "match": ".*", + "name": "entity.other.attribute-name.astro" + } + ] + } + }, + "end": "(?=\\s*+[^=\\s])", + "name": "meta.attribute.$1.astro", + "patterns": [ + { + "begin": "=", + "beginCaptures": { + "0": { + "name": "punctuation.separator.key-value.astro" + } + }, + "end": "(?<=[^\\s=])(?!\\s*=)|(?=/?>)", + "patterns": [ + { + "include": "#attributes-value" + } + ] + } + ] + }, + "attributes-value": { + "patterns": [ + { + "include": "#interpolation" + }, + { + "match": "([^\\s\"'=<>`/]|/(?!>))+", + "name": "string.unquoted.astro" + }, + { + "begin": "(['\"])", + "end": "\\1", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.astro" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.astro" + } + }, + "name": "string.quoted.astro" + }, + { + "begin": "(`)", + "end": "\\1", + "name": "string.template.astro", + "patterns": [ + { + "include": "source.tsx#template-substitution-element" + } + ] + } + ] + }, + "tags": { + "patterns": [ + { + "include": "#tags-raw" + }, + { + "include": "#tags-lang" + }, + { + "include": "#tags-void" + }, + { + "include": "#tags-general-end" + }, + { + "include": "#tags-general-start" + } + ] + }, + "tags-name": { + "patterns": [ + { + "match": "[A-Z][a-zA-Z0-9_]*", + "name": "support.class.component.astro" + }, + { + "match": "[a-z][\\w0-9:]*-[\\w0-9:-]*", + "name": "meta.tag.custom.astro entity.name.tag.astro" + }, + { + "match": "[a-z][\\w0-9:-]*", + "name": "entity.name.tag.astro" + } + ] + }, + "tags-start-attributes": { + "begin": "\\G", + "end": "(?=/?>)", + "name": "meta.tag.start.astro", + "patterns": [ + { + "include": "#attributes" + } + ] + }, + "tags-lang-start-attributes": { + "begin": "\\G", + "end": "(?=/>)|>", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.astro" + } + }, + "name": "meta.tag.start.astro", + "patterns": [ + { + "include": "#attributes" + } + ] + }, + "tags-start-node": { + "match": "(<)([^/\\s>/]*)", + "captures": { + "1": { + "name": "punctuation.definition.tag.begin.astro" + }, + "2": { + "patterns": [ + { + "include": "#tags-name" + } + ] + } + }, + "name": "meta.tag.start.astro" + }, + "tags-end-node": { + "match": "(</)(.*?)\\s*(>)|(/>)", + "captures": { + "1": { + "name": "meta.tag.end.astro punctuation.definition.tag.begin.astro" + }, + "2": { + "name": "meta.tag.end.astro", + "patterns": [ + { + "include": "#tags-name" + } + ] + }, + "3": { + "name": "meta.tag.end.astro punctuation.definition.tag.end.astro" + }, + "4": { + "name": "meta.tag.start.astro punctuation.definition.tag.end.astro" + } + } + }, + "tags-raw": { + "begin": "<([^/?!\\s<>]+)(?=[^>]+is:raw).*?", + "beginCaptures": { + "0": { + "patterns": [ + { + "include": "#tags-start-node" + } + ] + } + }, + "end": "</\\1\\s*>|/>", + "endCaptures": { + "0": { + "patterns": [ + { + "include": "#tags-end-node" + } + ] + } + }, + "name": "meta.scope.tag.$1.astro meta.raw.astro", + "contentName": "source.unknown", + "patterns": [ + { + "include": "#tags-lang-start-attributes" + } + ] + }, + "tags-lang": { + "begin": "<(script|style)", + "end": "</\\1\\s*>|/>", + "beginCaptures": { + "0": { + "patterns": [ + { + "include": "#tags-start-node" + } + ] + } + }, + "endCaptures": { + "0": { + "patterns": [ + { + "include": "#tags-end-node" + } + ] + } + }, + "name": "meta.scope.tag.$1.astro meta.$1.astro", + "patterns": [ + { + "begin": "\\G(?=\\s*[^>]*?(type|lang)\\s*=\\s*(['\"]|)(?:text\\/)?(application\\/ld\\+json)\\2)", + "end": "(?=</|/>)", + "name": "meta.lang.json.astro", + "patterns": [ + { + "include": "#tags-lang-start-attributes" + } + ] + }, + { + "begin": "\\G(?=\\s*[^>]*?(type|lang)\\s*=\\s*(['\"]|)(module)\\2)", + "end": "(?=</|/>)", + "name": "meta.lang.javascript.astro", + "patterns": [ + { + "include": "#tags-lang-start-attributes" + } + ] + }, + { + "begin": "\\G(?=\\s*[^>]*?(type|lang)\\s*=\\s*(['\"]|)(?:text/|application/)?([\\w\\/+]+)\\2)", + "end": "(?=</|/>)", + "name": "meta.lang.$3.astro", + "patterns": [ + { + "include": "#tags-lang-start-attributes" + } + ] + }, + { + "include": "#tags-lang-start-attributes" + } + ] + }, + "tags-void": { + "begin": "(<)(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)(?=\\s|/?>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.astro" + }, + "2": { + "name": "entity.name.tag.astro" + } + }, + "end": "/?>", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.begin.astro" + } + }, + "name": "meta.tag.void.astro", + "patterns": [ + { + "include": "#attributes" + } + ] + }, + "tags-general-start": { + "begin": "(<)([^/\\s>/]*)", + "end": "(/?>)", + "beginCaptures": { + "0": { + "patterns": [ + { + "include": "#tags-start-node" + } + ] + } + }, + "endCaptures": { + "1": { + "name": "meta.tag.start.astro punctuation.definition.tag.end.astro" + } + }, + "name": "meta.scope.tag.$2.astro", + "patterns": [ + { + "include": "#tags-start-attributes" + } + ] + }, + "tags-general-end": { + "begin": "(</)([^/\\s>]*)", + "end": "(>)", + "beginCaptures": { + "1": { + "name": "meta.tag.end.astro punctuation.definition.tag.begin.astro" + }, + "2": { + "name": "meta.tag.end.astro", + "patterns": [ + { + "include": "#tags-name" + } + ] + } + }, + "endCaptures": { + "1": { + "name": "meta.tag.end.astro punctuation.definition.tag.end.astro" + } + }, + "name": "meta.scope.tag.$2.astro" + } + } +} diff --git a/docs/shiki/languages/awk.tmLanguage.json b/docs/shiki/languages/awk.tmLanguage.json new file mode 100644 index 00000000..3cd0c6cb --- /dev/null +++ b/docs/shiki/languages/awk.tmLanguage.json @@ -0,0 +1,386 @@ +{ + "fileTypes": ["awk"], + "name": "awk", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#procedure" + }, + { + "include": "#pattern" + } + ], + "repository": { + "builtin-pattern": { + "match": "\\b(BEGINFILE|BEGIN|ENDFILE|END)\\b", + "name": "constant.language.awk" + }, + "command": { + "patterns": [ + { + "match": "\\b(?:next|print|printf)\\b", + "name": "keyword.other.command.awk" + }, + { + "match": "\\b(?:close|getline|delete|system)\\b", + "name": "keyword.other.command.nawk" + }, + { + "match": "\\b(?:fflush|nextfile)\\b", + "name": "keyword.other.command.bell-awk" + } + ] + }, + "comment": { + "match": "#.*", + "name": "comment.line.number-sign.awk" + }, + "constant": { + "patterns": [ + { + "include": "#numeric-constant" + }, + { + "include": "#string-constant" + } + ] + }, + "escaped-char": { + "match": "\\\\(?:[\\\\abfnrtv/\"]|x[0-9A-Fa-f]{2}|[0-7]{3})", + "name": "constant.character.escape.awk" + }, + "expression": { + "patterns": [ + { + "include": "#command" + }, + { + "include": "#function" + }, + { + "include": "#constant" + }, + { + "include": "#variable" + }, + { + "include": "#regexp-in-expression" + }, + { + "include": "#operator" + }, + { + "include": "#groupings" + } + ] + }, + "function": { + "patterns": [ + { + "match": "\\b(?:exp|int|log|sqrt|index|length|split|sprintf|substr)\\b", + "name": "support.function.awk" + }, + { + "match": "\\b(?:atan2|cos|rand|sin|srand|gsub|match|sub|tolower|toupper)\\b", + "name": "support.function.nawk" + }, + { + "match": "\\b(?:gensub|strftime|systime)\\b", + "name": "support.function.gawk" + } + ] + }, + "function-definition": { + "begin": "\\b(function)\\s+(\\w+)(\\()", + "beginCaptures": { + "1": { + "name": "storage.type.function.awk" + }, + "2": { + "name": "entity.name.function.awk" + }, + "3": { + "name": "punctuation.definition.parameters.begin.awk" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.parameters.end.awk" + } + }, + "patterns": [ + { + "match": "\\b(\\w+)\\b", + "name": "variable.parameter.function.awk" + }, + { + "match": "\\b(,)\\b", + "name": "punctuation.separator.parameters.awk" + } + ] + }, + "groupings": { + "patterns": [ + { + "match": "\\(", + "name": "meta.brace.round.awk" + }, + { + "match": "\\)", + "name": "meta.brace.round.awk" + }, + { + "match": "\\,", + "name": "punctuation.separator.parameters.awk" + } + ] + }, + "keyword": { + "match": "\\b(?:break|continue|do|while|exit|for|if|else|return)\\b", + "name": "keyword.control.awk" + }, + "numeric-constant": { + "match": "\\b[0-9]+(?:\\.[0-9]+)?(?:e[+-][0-9]+)?\\b", + "name": "constant.numeric.awk" + }, + "operator": { + "patterns": [ + { + "match": "(!?~|[=<>!]=|[<>])", + "name": "keyword.operator.comparison.awk" + }, + { + "match": "\\b(in)\\b", + "name": "keyword.operator.comparison.awk" + }, + { + "match": "([+\\-*/%^]=|\\+\\+|--|>>|=)", + "name": "keyword.operator.assignment.awk" + }, + { + "match": "(\\|\\||&&|!)", + "name": "keyword.operator.boolean.awk" + }, + { + "match": "([+\\-*/%^])", + "name": "keyword.operator.arithmetic.awk" + }, + { + "match": "([?:])", + "name": "keyword.operator.trinary.awk" + }, + { + "match": "(\\[|\\])", + "name": "keyword.operator.index.awk" + } + ] + }, + "pattern": { + "patterns": [ + { + "include": "#regexp-as-pattern" + }, + { + "include": "#function-definition" + }, + { + "include": "#builtin-pattern" + }, + { + "include": "#expression" + } + ] + }, + "procedure": { + "begin": "\\{", + "end": "\\}", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#procedure" + }, + { + "include": "#keyword" + }, + { + "include": "#expression" + } + ] + }, + "regex-as-assignment": { + "begin": "([^=<>!+\\-*/%^]=)\\s*(/)", + "beginCaptures": { + "1": { + "name": "keyword.operator.assignment.awk" + }, + "2": { + "name": "punctuation.definition.regex.begin.awk" + } + }, + "contentName": "string.regexp", + "end": "/", + "endCaptures": { + "0": { + "name": "punctuation.definition.regex.end.awk" + } + }, + "patterns": [ + { + "include": "source.regexp" + } + ] + }, + "regex-as-comparison": { + "begin": "(!?~)\\s*(/)", + "beginCaptures": { + "1": { + "name": "keyword.operator.comparison.awk" + }, + "2": { + "name": "punctuation.definition.regex.begin.awk" + } + }, + "contentName": "string.regexp", + "end": "/", + "endCaptures": { + "0": { + "name": "punctuation.definition.regex.end.awk" + } + }, + "patterns": [ + { + "include": "source.regexp" + } + ] + }, + "regex-as-first-argument": { + "begin": "(\\()\\s*(/)", + "beginCaptures": { + "1": { + "name": "meta.brace.round.awk" + }, + "2": { + "name": "punctuation.definition.regex.begin.awk" + } + }, + "contentName": "string.regexp", + "end": "/", + "endCaptures": { + "0": { + "name": "punctuation.definition.regex.end.awk" + } + }, + "patterns": [ + { + "include": "source.regexp" + } + ] + }, + "regex-as-nth-argument": { + "begin": "(,)\\s*(/)", + "beginCaptures": { + "1": { + "name": "punctuation.separator.parameters.awk" + }, + "2": { + "name": "punctuation.definition.regex.begin.awk" + } + }, + "contentName": "string.regexp", + "end": "/", + "endCaptures": { + "0": { + "name": "punctuation.definition.regex.end.awk" + } + }, + "patterns": [ + { + "include": "source.regexp" + } + ] + }, + "regexp-as-pattern": { + "begin": "/", + "beginCaptures": { + "0": { + "name": "punctuation.definition.regex.begin.awk" + } + }, + "contentName": "string.regexp", + "end": "/", + "endCaptures": { + "0": { + "name": "punctuation.definition.regex.end.awk" + } + }, + "patterns": [ + { + "include": "source.regexp" + } + ] + }, + "regexp-in-expression": { + "patterns": [ + { + "include": "#regex-as-assignment" + }, + { + "include": "#regex-as-comparison" + }, + { + "include": "#regex-as-first-argument" + }, + { + "include": "#regex-as-nth-argument" + } + ] + }, + "string-constant": { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.awk" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.awk" + } + }, + "name": "string.quoted.double.awk", + "patterns": [ + { + "include": "#escaped-char" + } + ] + }, + "variable": { + "patterns": [ + { + "match": "\\$[0-9]+", + "name": "variable.language.awk" + }, + { + "match": "\\b(?:FILENAME|FS|NF|NR|OFMT|OFS|ORS|RS)\\b", + "name": "variable.language.awk" + }, + { + "match": "\\b(?:ARGC|ARGV|CONVFMT|ENVIRON|FNR|RLENGTH|RSTART|SUBSEP)\\b", + "name": "variable.language.nawk" + }, + { + "match": "\\b(?:ARGIND|ERRNO|FIELDWIDTHS|IGNORECASE|RT)\\b", + "name": "variable.language.gawk" + } + ] + } + }, + "scopeName": "source.awk", + "uuid": "67bd1ff0-006b-4c32-8b97-8bc198777582" +} diff --git a/docs/shiki/languages/ballerina.tmLanguage.json b/docs/shiki/languages/ballerina.tmLanguage.json new file mode 100644 index 00000000..a37e6205 --- /dev/null +++ b/docs/shiki/languages/ballerina.tmLanguage.json @@ -0,0 +1,3784 @@ +{ + "name": "ballerina", + "scopeName": "source.ballerina", + "fileTypes": ["bal"], + "uuid": "c01f5512-489a-41bd-ba5d-caf4b55ae3b3", + "monarchVariables": { + "typeScope": "type", + "annotationScope": "type", + "numberScope": "number", + "xmlTagAngle": "tag", + "xmlAttribute": "variable.parameter", + "xmlTag": "tag", + "primitiveScope": "type" + }, + "tmlVariables": { + "typeScope": "storage.type.ballerina", + "annotationScope": "support.type.ballerina", + "numberScope": "constant.numeric.decimal.ballerina", + "xmlTagAngle": "punctuation.definition.tag.begin.xml.ballerina", + "xmlAttribute": "entity.other.attribute-name.xml.ballerina", + "xmlTag": "entity.name.tag.xml.ballerina", + "primitiveScope": "support.type.primitive.ballerina" + }, + "patterns": [ + { + "include": "#statements" + } + ], + "repository": { + "statements": { + "patterns": [ + { + "include": "#stringTemplate" + }, + { + "include": "#declaration" + }, + { + "include": "#control-statement" + }, + { + "include": "#decl-block" + }, + { + "include": "#expression" + }, + { + "include": "#punctuation-semicolon" + }, + { + "include": "#string" + }, + { + "include": "#comment" + }, + { + "include": "#mdDocumentation" + }, + { + "include": "#keywords" + }, + { + "include": "#annotationAttachment" + }, + { + "include": "#regex" + } + ] + }, + "declaration": { + "patterns": [ + { + "include": "#import-declaration" + }, + { + "include": "#var-expr" + }, + { + "include": "#typeDefinition" + }, + { + "include": "#function-defn" + }, + { + "include": "#service-decl" + }, + { + "include": "#class-defn" + }, + { + "include": "#enum-decl" + }, + { + "include": "#source" + }, + { + "include": "#keywords" + } + ] + }, + "control-statement": { + "patterns": [ + { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(return)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "beginCaptures": { + "0": { + "name": "keyword.control.flow.ballerina" + } + }, + "end": "(?=[;}]|$|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|service|type|var)\\b))", + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "include": "#for-loop" + }, + { + "include": "#if-statement" + }, + { + "name": "keyword.control.conditional.ballerina", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(else|if)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + } + ] + }, + "expression": { + "patterns": [ + { + "include": "#keywords" + }, + { + "include": "#expressionWithoutIdentifiers" + }, + { + "include": "#identifiers" + }, + { + "include": "#regex" + } + ] + }, + "expressionWithoutIdentifiers": { + "patterns": [ + { + "include": "#xml" + }, + { + "include": "#string" + }, + { + "include": "#stringTemplate" + }, + { + "include": "#comment" + }, + { + "include": "#object-literal" + }, + { + "include": "#ternary-expression" + }, + { + "include": "#expression-operators" + }, + { + "include": "#literal" + }, + { + "include": "#paranthesised" + }, + { + "include": "#regex" + } + ] + }, + "object-literal": { + "name": "meta.objectliteral.ballerina", + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.block.ballerina" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.ballerina" + } + }, + "patterns": [ + { + "include": "#object-member" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "import-declaration": { + "name": "meta.import.ballerina", + "begin": "\\bimport\\b", + "beginCaptures": { + "0": { + "name": "keyword.control.import.ballerina" + } + }, + "end": "\\;", + "endCaptures": { + "0": { + "name": "punctuation.terminator.statement.ballerina" + } + }, + "patterns": [ + { + "match": "(\\')([_$[:alpha:]][_$[:alnum:]]*)", + "name": "variable.other.property.ballerina" + }, + { + "include": "#keywords" + }, + { + "include": "#comment" + }, + { + "include": "#import-clause" + }, + { + "include": "#punctuation-accessor" + } + ] + }, + "identifiers": { + "patterns": [ + { + "match": "(?x)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*)?([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*=\\s*(\n ((\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((\n ((<\\s*$)|((<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n))", + "captures": { + "1": { + "name": "punctuation.accessor.ballerina" + }, + "2": { + "name": "punctuation.accessor.optional.ballerina" + }, + "3": { + "name": "entity.name.function.ballerina" + } + } + }, + { + "match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=\\()", + "captures": { + "1": { + "name": "punctuation.accessor.ballerina" + }, + "2": { + "name": "punctuation.accessor.optional.ballerina" + }, + "3": { + "name": "entity.name.function.ballerina" + } + } + }, + { + "match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)", + "captures": { + "1": { + "name": "punctuation.accessor.ballerina" + }, + "2": { + "name": "punctuation.accessor.optional.ballerina" + }, + "3": { + "name": "variable.other.property.ballerina" + } + } + }, + { + "include": "#type-primitive" + }, + { + "include": "#self-literal" + }, + { + "name": "keyword.control.ballerina", + "match": "\\b(check|foreach|if|checkpanic)\\b" + }, + { + "include": "#call" + }, + { + "name": "support.type.primitive.ballerina", + "match": "\\b(var)\\b" + }, + { + "match": "([_$[:alpha:]][_$[:alnum:]]*)((\\.)([_$[:alpha:]][_$[:alnum:]]*)(\\()(\\)))?", + "captures": { + "1": { + "name": "variable.other.readwrite.ballerina" + }, + "3": { + "name": "punctuation.accessor.ballerina" + }, + "4": { + "name": "entity.name.function.ballerina" + }, + "5": { + "name": "punctuation.definition.parameters.begin.ballerina" + }, + "6": { + "name": "punctuation.definition.parameters.end.ballerina" + } + } + }, + { + "match": "(\\')([_$[:alpha:]][_$[:alnum:]]*)", + "name": "variable.other.property.ballerina" + }, + { + "include": "#type-annotation" + } + ] + }, + "object-member": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#function-defn" + }, + { + "include": "#literal" + }, + { + "include": "#keywords" + }, + { + "include": "#expression" + }, + { + "name": "meta.object.member.ballerina meta.object-literal.key.ballerina", + "begin": "(?=\\[)", + "end": "(?=:)|((?<=[\\]])(?=\\s*[\\(\\<]))", + "patterns": [ + { + "include": "#comment" + } + ] + }, + { + "name": "meta.object.member.ballerina meta.object-literal.key.ballerina", + "begin": "(?=[\\'\\\"\\`])", + "end": "(?=:)|((?<=[\\'\\\"\\`])(?=((\\s*[\\(\\<,}])|(\\n*})|(\\s+(as)\\s+))))", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#string" + } + ] + }, + { + "name": "meta.object.member.ballerina meta.object-literal.key.ballerina", + "begin": "(?x)(?=(\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$)))", + "end": "(?=:)|(?=\\s*([\\(\\<,}])|(\\s+as\\s+))", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#numbers" + } + ] + }, + { + "name": "meta.method.declaration.ballerina", + "begin": "(?<=[\\]\\'\\\"\\`])(?=\\s*[\\(\\<])", + "end": "(?=\\}|;|,)|(?<=\\})", + "patterns": [ + { + "include": "#function-body" + } + ] + }, + { + "name": "meta.object.member.ballerina", + "match": "(?![_$[:alpha:]])([[:digit:]]+)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)", + "captures": { + "0": { + "name": "meta.object-literal.key.ballerina" + }, + "1": { + "name": "constant.numeric.decimal.ballerina" + } + } + }, + { + "name": "meta.object.member.ballerina", + "match": "(?x)(?:([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/)*\\s*(\n ((\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((\n ((<\\s*$)|((<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", + "captures": { + "0": { + "name": "meta.object-literal.key.ballerina" + }, + "1": { + "name": "entity.name.function.ballerina" + } + } + }, + { + "name": "meta.object.member.ballerina", + "match": "(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)", + "captures": { + "0": { + "name": "meta.object-literal.key.ballerina" + } + } + }, + { + "name": "meta.object.member.ballerina", + "begin": "\\.\\.\\.", + "beginCaptures": { + "0": { + "name": "keyword.operator.spread.ballerina" + } + }, + "end": "(?=,|\\})", + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "name": "meta.object.member.ballerina", + "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=,|\\}|$|\\/\\/|\\/\\*)", + "captures": { + "1": { + "name": "variable.other.readwrite.ballerina" + } + } + }, + { + "name": "meta.object.member.ballerina", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*([,}]|$))", + "captures": { + "1": { + "name": "keyword.control.as.ballerina" + }, + "2": { + "name": "storage.modifier.ballerina" + } + } + }, + { + "name": "meta.object.member.ballerina", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+", + "beginCaptures": { + "1": { + "name": "keyword.control.as.ballerina" + } + }, + "end": "(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|^|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+))" + }, + { + "name": "meta.object.member.ballerina", + "begin": "(?=[_$[:alpha:]][_$[:alnum:]]*\\s*=)", + "end": "(?=,|\\}|$|\\/\\/|\\/\\*)", + "patterns": [ + { + "include": "#expression" + } + ] + } + ] + }, + "expression-operators": { + "patterns": [ + { + "name": "keyword.operator.assignment.compound.ballerina", + "match": "\\*=|(?<!\\()/=|%=|\\+=|\\-=" + }, + { + "name": "keyword.operator.assignment.compound.bitwise.ballerina", + "match": "\\&=|\\^=|<<=|>>=|>>>=|\\|=" + }, + { + "name": "keyword.operator.bitwise.shift.ballerina", + "match": "<<|>>>|>>" + }, + { + "name": "keyword.operator.comparison.ballerina", + "match": "===|!==|==|!=" + }, + { + "name": "keyword.operator.relational.ballerina", + "match": "<=|>=|<>|<|>" + }, + { + "match": "(?<=[_$[:alnum:]])(\\!)\\s*(?:(/=)|(?:(/)(?![/*])))", + "captures": { + "1": { + "name": "keyword.operator.logical.ballerina" + }, + "2": { + "name": "keyword.operator.assignment.compound.ballerina" + }, + "3": { + "name": "keyword.operator.arithmetic.ballerina" + } + } + }, + { + "name": "keyword.operator.logical.ballerina", + "match": "\\!|&&|\\|\\||\\?\\?" + }, + { + "name": "keyword.operator.bitwise.ballerina", + "match": "\\&|~|\\^|\\|" + }, + { + "name": "keyword.operator.assignment.ballerina", + "match": "\\=" + }, + { + "name": "keyword.operator.decrement.ballerina", + "match": "--" + }, + { + "name": "keyword.operator.increment.ballerina", + "match": "\\+\\+" + }, + { + "name": "keyword.operator.arithmetic.ballerina", + "match": "%|\\*|/|-|\\+" + } + ] + }, + "punctuation-comma": { + "patterns": [ + { + "name": "punctuation.separator.comma.ballerina", + "match": "," + } + ] + }, + "punctuation-semicolon": { + "patterns": [ + { + "match": ";", + "name": "punctuation.terminator.statement.ballerina" + } + ] + }, + "punctuation-accessor": { + "patterns": [ + { + "match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", + "captures": { + "1": { + "name": "punctuation.accessor.ballerina" + }, + "2": { + "name": "punctuation.accessor.optional.ballerina" + } + } + } + ] + }, + "annotationAttachment": { + "patterns": [ + { + "match": "(@)((?:[_$[:alpha:]][_$[:alnum:]]*))\\s*(:?)\\s*((?:[_$[:alpha:]][_$[:alnum:]]*)?)", + "captures": { + "1": { + "name": "punctuation.decorator.ballerina" + }, + "2": { + "name": "support.type.ballerina" + }, + "3": { + "name": "punctuation.decorator.ballerina" + }, + "4": { + "name": "support.type.ballerina" + } + } + } + ] + }, + "annotationDefinition": { + "patterns": [ + { + "begin": "\\bannotation\\b", + "beginCaptures": { + "0": { + "name": "keyword.ballerina" + } + }, + "end": ";", + "patterns": [ + { + "include": "#code" + } + ] + } + ] + }, + "booleans": { + "patterns": [ + { + "match": "\\b(true|false)\\b", + "name": "constant.language.boolean.ballerina" + } + ] + }, + "butExp": { + "patterns": [ + { + "begin": "\\bbut\\b", + "beginCaptures": { + "0": { + "name": "keyword.ballerina" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.ballerina.documentation" + } + }, + "patterns": [ + { + "include": "#butExpBody" + }, + { + "include": "#comment" + } + ] + } + ] + }, + "butExpBody": { + "patterns": [ + { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.block.ballerina.documentation" + } + }, + "end": "(?=\\})", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.ballerina.documentation" + } + }, + "patterns": [ + { + "include": "#parameter" + }, + { + "include": "#butClause" + }, + { + "include": "#comment" + } + ] + } + ] + }, + "butClause": { + "patterns": [ + { + "begin": "=>", + "beginCaptures": { + "0": { + "name": "meta.arrow.ballerina storage.type.function.arrow.ballerina" + } + }, + "end": ",|(?=\\})", + "patterns": [ + { + "include": "#code" + } + ] + } + ] + }, + "call": { + "patterns": [ + { + "match": "(?:\\')?([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=\\()", + "name": "entity.name.function.ballerina" + } + ] + }, + "comment": { + "patterns": [ + { + "name": "comment.ballerina", + "match": "\\/\\/.*" + } + ] + }, + "constrainType": { + "patterns": [ + { + "begin": "<", + "end": ">", + "beginCaptures": { + "0": { + "name": "punctuation.definition.parameters.begin.ballerina" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.parameters.end.ballerina" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#constrainType" + }, + { + "name": "storage.type.ballerina", + "match": "\\b([_$[:alpha:]][_$[:alnum:]]*)\\b" + } + ] + } + ] + }, + "tupleType": { + "patterns": [ + { + "begin": "\\[", + "end": "(?=\\]|;)", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#constrainType" + }, + { + "include": "#paranthesisedBracket" + }, + { + "name": "storage.type.ballerina", + "match": "\\b([_$[:alpha:]][_$[:alnum:]]*)\\b" + } + ] + } + ] + }, + "decl-block": { + "name": "meta.block.ballerina", + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.block.ballerina" + } + }, + "end": "(?=\\} external;)|(\\})", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.ballerina" + } + }, + "patterns": [ + { + "include": "#statements" + }, + { + "include": "#mdDocumentation" + } + ] + }, + "defaultValue": { + "patterns": [ + { + "begin": "[=:]", + "beginCaptures": { + "0": { + "name": "keyword.operator.ballerina" + } + }, + "end": "(?=[,)])", + "patterns": [ + { + "include": "#code" + } + ] + } + ] + }, + "documentationDef": { + "patterns": [ + { + "begin": "\\b(?:documentation|deprecated)\\b", + "beginCaptures": { + "0": { + "name": "keyword.ballerina" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "delimiter.curly" + } + }, + "patterns": [ + { + "include": "#documentationBody" + }, + { + "include": "#comment" + } + ] + } + ] + }, + "documentationBody": { + "patterns": [ + { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.block.ballerina.documentation" + } + }, + "end": "(?=\\})", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.ballerina.documentation" + } + }, + "patterns": [ + { + "match": "(P|R|T|F|V)({{)(.*)(}})", + "captures": { + "1": { + "name": "keyword.other.ballerina.documentation" + }, + "2": { + "name": "keyword.other.ballerina.documentation" + }, + "3": { + "name": "variable.parameter.ballerina.documentation" + }, + "4": { + "name": "keyword.other.ballerina.documentation" + } + } + }, + { + "name": "comment.block.code.ballerina.documentation", + "begin": "\\```", + "end": "\\```" + }, + { + "name": "comment.block.code.ballerina.documentation", + "begin": "\\``", + "end": "\\``" + }, + { + "name": "comment.block.code.ballerina.documentation", + "begin": "\\`", + "end": "\\`" + }, + { + "name": "comment.block.ballerina.documentation", + "match": "." + } + ] + } + ] + }, + "enum-decl": { + "name": "meta.enum.declaration.ballerina", + "begin": "(?:\\b(const)\\s+)?\\b(enum)\\s+([_$[:alpha:]][_$[:alnum:]]*)", + "beginCaptures": { + "1": { + "name": "storage.modifier.ballerina" + }, + "2": { + "name": "keyword.other.ballerina" + }, + "3": { + "name": "entity.name.type.enum.ballerina" + } + }, + "end": "(?<=\\})", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#mdDocumentation" + }, + { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.block.ballerina" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.ballerina" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#mdDocumentation" + }, + { + "begin": "([_$[:alpha:]][_$[:alnum:]]*)", + "beginCaptures": { + "0": { + "name": "variable.other.enummember.ballerina" + } + }, + "end": "(?=,|\\}|$)", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#variable-initializer" + } + ] + }, + { + "begin": "(?=((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\])))", + "end": "(?=,|\\}|$)", + "patterns": [ + { + "include": "#string" + }, + { + "include": "#array-literal" + }, + { + "include": "#comment" + }, + { + "include": "#variable-initializer" + } + ] + }, + { + "include": "#punctuation-comma" + } + ] + } + ] + }, + "errorDestructure": { + "patterns": [ + { + "begin": "error", + "end": "(?==>)", + "beginCaptures": { + "0": { + "name": "storage.type.ballerina" + } + }, + "patterns": [ + { + "include": "#code" + } + ] + } + ] + }, + "callableUnitBody": { + "patterns": [ + { + "begin": "\\{", + "end": "(?=\\})", + "beginCaptures": { + "0": { + "name": "punctuation.definition.block.ballerina" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.block.ballerina" + } + }, + "patterns": [ + { + "include": "#workerDef" + }, + { + "include": "#service-decl" + }, + { + "include": "#objectDec" + }, + { + "include": "#function-defn" + }, + { + "include": "#forkStatement" + }, + { + "include": "#code" + } + ] + } + ] + }, + "for-loop": { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))foreach\\s*", + "beginCaptures": { + "0": { + "name": "keyword.control.loop.ballerina" + }, + "1": { + "name": "support.type.primitive.ballerina" + } + }, + "end": "(?=\\{)", + "patterns": [ + { + "name": "keyword.other.ballerina", + "match": "\\bin\\b" + }, + { + "include": "#identifiers" + }, + { + "include": "#comment" + }, + { + "include": "#var-expr" + }, + { + "include": "#expression" + } + ] + }, + "forkBody": { + "patterns": [ + { + "begin": "\\{", + "end": "(?=\\})", + "beginCaptures": { + "0": { + "name": "punctuation.definition.block.ballerina" + } + }, + "patterns": [ + { + "include": "#workerDef" + } + ] + } + ] + }, + "forkStatement": { + "patterns": [ + { + "begin": "\\bfork\\b", + "end": "\\}", + "beginCaptures": { + "0": { + "name": "keyword.control.ballerina" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.block.ballerina" + } + }, + "patterns": [ + { + "include": "#forkBody" + } + ] + } + ] + }, + "function-body": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#functionParameters" + }, + { + "include": "#decl-block" + }, + { + "begin": "\\=>", + "name": "meta.block.ballerina", + "beginCaptures": { + "0": { + "name": "meta.arrow.ballerina storage.type.function.arrow.ballerina" + } + }, + "end": "(?=\\;)|(?=\\,)|(?=)(?=\\);)", + "patterns": [ + { + "include": "#statements" + }, + { + "include": "#punctuation-comma" + } + ] + }, + { + "name": "keyword.generator.asterisk.ballerina", + "match": "\\*" + } + ] + }, + "function-defn": { + "name": "meta.function.ballerina", + "begin": "(?:(public|private)\\s+)?(function\\b)", + "beginCaptures": { + "1": { + "name": "keyword.other.ballerina" + }, + "2": { + "name": "keyword.other.ballerina" + } + }, + "end": "(?<=\\;)|(?<=\\})|(?<=\\,)|(?=)(?=\\);)", + "patterns": [ + { + "match": "\\bexternal\\b", + "name": "keyword.ballerina" + }, + { + "include": "#stringTemplate" + }, + { + "include": "#annotationAttachment" + }, + { + "include": "#functionReturns" + }, + { + "include": "#functionName" + }, + { + "include": "#functionParameters" + }, + { + "include": "#punctuation-semicolon" + }, + { + "include": "#function-body" + }, + { + "include": "#regex" + } + ] + }, + "functionName": { + "patterns": [ + { + "name": "keyword.other.ballerina", + "match": "\\bfunction\\b" + }, + { + "include": "#type-primitive" + }, + { + "include": "#self-literal" + }, + { + "include": "#string" + }, + { + "match": "\\s+(\\b(self)|\\b(is|new|isolated|null|function|in)\\b|(string|int|boolean|float|byte|decimal|json|xml|anydata)\\b|\\b(readonly|error|map)\\b|([_$[:alpha:]][_$[:alnum:]]*))", + "captures": { + "2": { + "name": "variable.language.this.ballerina" + }, + "3": { + "name": "keyword.other.ballerina" + }, + "4": { + "name": "support.type.primitive.ballerina" + }, + "5": { + "name": "storage.type.ballerina" + }, + "6": { + "name": "meta.definition.function.ballerina entity.name.function.ballerina" + } + } + } + ] + }, + "functionParameters": { + "name": "meta.parameters.ballerina", + "begin": "\\(|\\[", + "end": "\\)|\\]", + "beginCaptures": { + "0": { + "name": "punctuation.definition.parameters.begin.ballerina" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.parameters.end.ballerina" + } + }, + "patterns": [ + { + "include": "#function-parameters-body" + } + ] + }, + "function-parameters-body": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#numbers" + }, + { + "include": "#string" + }, + { + "include": "#annotationAttachment" + }, + { + "include": "#recordLiteral" + }, + { + "include": "#keywords" + }, + { + "include": "#parameter-name" + }, + { + "include": "#array-literal" + }, + { + "include": "#variable-initializer" + }, + { + "include": "#identifiers" + }, + { + "include": "#regex" + }, + { + "name": "punctuation.separator.parameter.ballerina", + "match": "\\," + } + ] + }, + "parameter-name": { + "patterns": [ + { + "match": "\\s*\\b(var)\\s+", + "captures": { + "1": { + "name": "support.type.primitive.ballerina" + } + } + }, + { + "match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|(string|int|boolean|float|byte|decimal|json|xml|anydata)|\\b(is|new|isolated|null|function|in)\\b|\\b(true|false)\\b|\\b(check|foreach|if|checkpanic)\\b|\\b(readonly|error|map)\\b|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)", + "captures": { + "2": { + "name": "keyword.operator.rest.ballerina" + }, + "3": { + "name": "support.type.primitive.ballerina" + }, + "4": { + "name": "keyword.other.ballerina" + }, + "5": { + "name": "constant.language.boolean.ballerina" + }, + "6": { + "name": "keyword.control.flow.ballerina" + }, + "7": { + "name": "storage.type.ballerina" + }, + "8": { + "name": "variable.parameter.ballerina" + }, + "9": { + "name": "variable.parameter.ballerina" + }, + "10": { + "name": "keyword.operator.optional.ballerina" + } + } + } + ] + }, + "functionReturns": { + "name": "meta.type.function.return.ballerina", + "begin": "\\s*(returns)\\s*", + "beginCaptures": { + "1": { + "name": "keyword.other.ballerina" + } + }, + "end": "(?==>)|(\\=)|(?=\\{)|(\\))|(?=\\;)", + "endCaptures": { + "1": { + "name": "keyword.operator.ballerina" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#string" + }, + { + "include": "#numbers" + }, + { + "include": "#keywords" + }, + { + "include": "#type-primitive" + }, + { + "match": "\\s*\\b(var)(?=\\s+|\\[|\\?)", + "captures": { + "1": { + "name": "support.type.primitive.ballerina" + } + } + }, + { + "match": "\\|", + "name": "keyword.operator.ballerina" + }, + { + "match": "\\?", + "name": "keyword.operator.optional.ballerina" + }, + { + "include": "#type-annotation" + }, + { + "include": "#type-tuple" + }, + { + "include": "#keywords" + }, + { + "match": "[_$[:alpha:]][_$[:alnum:]]*", + "name": "variable.other.readwrite.ballerina" + } + ] + }, + "functionType": { + "patterns": [ + { + "begin": "\\bfunction\\b", + "beginCaptures": { + "0": { + "name": "keyword.ballerina" + } + }, + "end": "(?=\\,)|(?=\\|)|(?=\\:)|(?==>)|(?=\\))|(?=\\])", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#functionTypeParamList" + }, + { + "include": "#functionTypeReturns" + } + ] + } + ] + }, + "functionTypeParamList": { + "patterns": [ + { + "begin": "\\(", + "end": "\\)", + "beginCaptures": { + "0": { + "name": "delimiter.parenthesis" + } + }, + "endCaptures": { + "0": { + "name": "delimiter.parenthesis" + } + }, + "patterns": [ + { + "match": "public", + "name": "keyword" + }, + { + "include": "#annotationAttachment" + }, + { + "include": "#recordLiteral" + }, + { + "include": "#record" + }, + { + "include": "#objectDec" + }, + { + "include": "#functionType" + }, + { + "include": "#constrainType" + }, + { + "include": "#parameterTuple" + }, + { + "include": "#functionTypeType" + }, + { + "include": "#comment" + } + ] + } + ] + }, + "functionTypeType": { + "patterns": [ + { + "begin": "[_$[:alpha:]][_$[:alnum:]]*", + "beginCaptures": { + "0": { + "name": "storage.type.ballerina" + } + }, + "end": "(?=\\,)|(?:\\|)|(?=\\])|(?=\\))" + } + ] + }, + "functionTypeReturns": { + "patterns": [ + { + "begin": "\\breturns\\b", + "beginCaptures": { + "0": { + "name": "keyword" + } + }, + "end": "(?=\\,)|(?:\\|)|(?=\\])|(?=\\))", + "patterns": [ + { + "include": "#functionTypeReturnsParameter" + }, + { + "include": "#comment" + } + ] + } + ] + }, + "functionTypeReturnsParameter": { + "patterns": [ + { + "begin": "((?=record|object|function)|(?:[_$[:alpha:]][_$[:alnum:]]*))", + "beginCaptures": { + "0": { + "name": "storage.type.ballerina" + } + }, + "end": "(?=\\,)|(?:\\|)|(?:\\:)|(?==>)|(?=\\))|(?=\\])", + "patterns": [ + { + "include": "#record" + }, + { + "include": "#objectDec" + }, + { + "include": "#functionType" + }, + { + "include": "#constrainType" + }, + { + "include": "#defaultValue" + }, + { + "include": "#comment" + }, + { + "include": "#parameterTuple" + }, + { + "match": "[_$[:alpha:]][_$[:alnum:]]*", + "name": "default.variable.parameter.ballerina" + } + ] + } + ] + }, + "if-statement": { + "patterns": [ + { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=\\bif\\b\\s*(?!\\{))", + "end": "(?<=\\})", + "patterns": [ + { + "include": "#comment" + }, + { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(if)\\s*(\\()?", + "beginCaptures": { + "1": { + "name": "keyword.control.conditional.ballerina" + }, + "2": { + "name": "meta.brace.round.ballerina" + } + }, + "end": "(\\))|(?=\\{)", + "endCaptures": { + "1": { + "name": "meta.brace.round.ballerina" + } + }, + "patterns": [ + { + "include": "#decl-block" + }, + { + "include": "#keywords" + }, + { + "include": "#identifiers" + }, + { + "include": "#type-primitive" + }, + { + "include": "#xml" + }, + { + "include": "#string" + }, + { + "include": "#stringTemplate" + }, + { + "include": "#comment" + }, + { + "include": "#ternary-expression" + }, + { + "include": "#expression-operators" + }, + { + "include": "#literal" + }, + { + "include": "#paranthesised" + }, + { + "include": "#regex" + } + ] + }, + { + "begin": "(?<=\\))(?=\\s|\\=)", + "end": "(?=\\{)", + "patterns": [ + { + "include": "#literal" + }, + { + "include": "#keywords" + } + ] + }, + { + "include": "#decl-block" + } + ] + } + ] + }, + "import-clause": { + "patterns": [ + { + "include": "#comment" + }, + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bdefault)|(\\*)|(\\b[_$[:alpha:]][_$[:alnum:]]*))", + "captures": { + "1": { + "name": "keyword.control.default.ballerina" + }, + "3": { + "name": "variable.other.readwrite.ballerina meta.import.module.ballerina" + }, + "5": { + "name": "keyword.control.default.ballerina" + }, + "6": { + "name": "variable.other.readwrite.alias.ballerina" + } + } + }, + { + "name": "variable.other.readwrite.alias.ballerina", + "match": "([_$[:alpha:]][_$[:alnum:]]*)" + } + ] + }, + "maps": { + "patterns": [ + { + "begin": "\\{", + "end": "\\}", + "patterns": [ + { + "include": "#code" + } + ] + } + ] + }, + "matchStatementPatternClause": { + "patterns": [ + { + "begin": "=>", + "beginCaptures": { + "0": { + "name": "keyword.ballerina" + } + }, + "end": "((\\})|;|,)", + "patterns": [ + { + "include": "#callableUnitBody" + }, + { + "include": "#code" + } + ] + } + ] + }, + "matchStatement": { + "patterns": [ + { + "begin": "\\bmatch\\b", + "beginCaptures": { + "0": { + "name": "keyword.control.ballerina" + } + }, + "end": "\\}", + "patterns": [ + { + "include": "#matchStatementBody" + }, + { + "include": "#comment" + }, + { + "include": "#code" + } + ] + } + ] + }, + "matchStatementBody": { + "patterns": [ + { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.block.ballerina.documentation" + } + }, + "end": "(?=\\})", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.ballerina.documentation" + } + }, + "patterns": [ + { + "include": "#literal" + }, + { + "include": "#matchBindingPattern" + }, + { + "include": "#matchStatementPatternClause" + }, + { + "include": "#comment" + }, + { + "include": "#code" + } + ] + } + ] + }, + "matchBindingPattern": { + "patterns": [ + { + "begin": "var", + "beginCaptures": { + "0": { + "name": "storage.type.ballerina" + } + }, + "end": "(?==>)|,", + "patterns": [ + { + "include": "#errorDestructure" + }, + { + "include": "#code" + }, + { + "match": "[_$[:alpha:]][_$[:alnum:]]*", + "name": "variable.parameter.ballerina" + } + ] + } + ] + }, + "mdDocumentation": { + "name": "comment.mddocs.ballerina", + "begin": "\\#", + "end": "[\\r\\n]+", + "patterns": [ + { + "include": "#mdDocumentationReturnParamDescription" + }, + { + "include": "#mdDocumentationParamDescription" + } + ] + }, + "mdDocumentationParamDescription": { + "patterns": [ + { + "begin": "(\\+\\s+)(\\'?[_$[:alpha:]][_$[:alnum:]]*)(\\s*\\-\\s+)", + "beginCaptures": { + "1": { + "name": "keyword.operator.ballerina" + }, + "2": { + "name": "variable.other.readwrite.ballerina" + }, + "3": { + "name": "keyword.operator.ballerina" + } + }, + "end": "(?=[^#\\r\\n]|(?:# *?\\+))", + "patterns": [ + { + "match": "#.*", + "name": "comment.mddocs.paramdesc.ballerina" + } + ] + } + ] + }, + "mdDocumentationReturnParamDescription": { + "patterns": [ + { + "begin": "(#)(?: *?)(\\+)(?: *)(return)(?: *)(-)?(.*)", + "beginCaptures": { + "1": { + "name": "comment.mddocs.ballerina" + }, + "2": { + "name": "keyword.ballerina" + }, + "3": { + "name": "keyword.ballerina" + }, + "4": { + "name": "keyword.ballerina" + }, + "5": { + "name": "comment.mddocs.returnparamdesc.ballerina" + } + }, + "end": "(?=[^#\\r\\n]|(?:# *?\\+))", + "patterns": [ + { + "match": "#.*", + "name": "comment.mddocs.returnparamdesc.ballerina" + } + ] + } + ] + }, + "multiType": { + "patterns": [ + { + "match": "(?<=\\|)([_$[:alpha:]][_$[:alnum:]]*)|([_$[:alpha:]][_$[:alnum:]]*)(?=\\|)", + "name": "storage.type.ballerina" + }, + { + "match": "\\|", + "name": "keyword.operator.ballerina" + } + ] + }, + "numbers": { + "patterns": [ + { + "match": "\\b0[xX][\\da-fA-F]+\\b|\\b\\d+(?:\\.(?:\\d+|$))?", + "name": "constant.numeric.decimal.ballerina" + } + ] + }, + "class-body": { + "name": "meta.class.body.ballerina", + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.block.ballerina" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.ballerina" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#mdDocumentation" + }, + { + "include": "#function-defn" + }, + { + "include": "#var-expr" + }, + { + "include": "#variable-initializer" + }, + { + "include": "#access-modifier" + }, + { + "include": "#keywords" + }, + { + "begin": "(?<=:)\\s*", + "end": "(?=\\s|[;),}\\]:\\-\\+]|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|service|type|var)\\b))" + }, + { + "include": "#decl-block" + }, + { + "include": "#expression" + }, + { + "include": "#punctuation-comma" + }, + { + "include": "#punctuation-semicolon" + } + ] + }, + "access-modifier": { + "patterns": [ + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "name": "storage.modifier.ballerina keyword.other.ballerina" + } + ] + }, + "class-defn": { + "name": "meta.class.ballerina", + "begin": "(\\s+)(class\\b)|^class\\b(?=\\s+|/[/*])", + "beginCaptures": { + "0": { + "name": "storage.type.class.ballerina keyword.other.ballerina" + } + }, + "end": "(?<=\\})", + "patterns": [ + { + "include": "#keywords" + }, + { + "match": "[_$[:alpha:]][_$[:alnum:]]*", + "captures": { + "0": { + "name": "entity.name.type.class.ballerina" + } + } + }, + { + "include": "#class-body" + } + ] + }, + "objectDec": { + "patterns": [ + { + "begin": "\\bobject\\b(?!:)", + "beginCaptures": { + "0": { + "name": "keyword.other.ballerina" + } + }, + "end": "(?<=\\})", + "patterns": [ + { + "include": "#decl-block" + } + ] + } + ] + }, + "objectInitBody": { + "patterns": [ + { + "begin": "\\{", + "end": "(?=\\})", + "beginCaptures": { + "0": { + "name": "punctuation.definition.block.ballerina" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.block.ballerina" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#code" + } + ] + } + ] + }, + "objectInitParameters": { + "patterns": [ + { + "begin": "\\(", + "end": "\\)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.parameters.begin.ballerina" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.parameters.end.ballerina" + } + }, + "patterns": [ + { + "include": "#code" + }, + { + "match": "\\b([_$[:alpha:]][_$[:alnum:]]*)\\b", + "name": "variable.parameter.ballerina" + } + ] + } + ] + }, + "objectMemberFunctionDec": { + "patterns": [ + { + "begin": "\\bfunction\\b", + "beginCaptures": { + "0": { + "name": "keyword.ballerina" + } + }, + "end": ";", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.ballerina" + } + }, + "patterns": [ + { + "include": "#functionParameters" + }, + { + "match": "\\breturns\\b", + "name": "keyword.ballerina" + }, + { + "include": "#code" + } + ] + } + ] + }, + "paranthesised": { + "name": "meta.brace.round.block.ballerina", + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "meta.brace.round.ballerina" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "meta.brace.round.ballerina" + } + }, + "patterns": [ + { + "include": "#self-literal" + }, + { + "include": "#function-defn" + }, + { + "include": "#decl-block" + }, + { + "include": "#comment" + }, + { + "include": "#string" + }, + { + "include": "#parameters" + }, + { + "include": "#annotationAttachment" + }, + { + "include": "#recordLiteral" + }, + { + "include": "#stringTemplate" + }, + { + "include": "#parameter-name" + }, + { + "include": "#variable-initializer" + }, + { + "include": "#expression" + }, + { + "include": "#regex" + } + ] + }, + "paranthesisedBracket": { + "patterns": [ + { + "begin": "\\[", + "end": "\\]", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#code" + } + ] + } + ] + }, + "parameters": { + "patterns": [ + { + "name": "keyword.control.flow.ballerina", + "match": "\\s*(return|break|continue|check|checkpanic|panic|trap|from|where)\\b" + }, + { + "name": "keyword.other.ballerina", + "match": "\\s*(let|select)\\b" + }, + { + "name": "punctuation.separator.parameter.ballerina", + "match": "\\," + } + ] + }, + "record": { + "name": "meta.record.ballerina", + "begin": "\\brecord\\b", + "beginCaptures": { + "0": { + "name": "keyword.other.ballerina" + } + }, + "end": "(?<=\\})", + "patterns": [ + { + "include": "#recordBody" + } + ] + }, + "recordBody": { + "patterns": [ + { + "include": "#decl-block" + } + ] + }, + "recordLiteral": { + "patterns": [ + { + "begin": "\\{", + "end": "\\}", + "beginCaptures": { + "0": { + "name": "punctuation.definition.block.ballerina" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.block.ballerina" + } + }, + "patterns": [ + { + "include": "#code" + } + ] + } + ] + }, + "serviceBody": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#mdDocumentation" + }, + { + "include": "#documentationDef" + }, + { + "include": "#decl-block" + } + ] + }, + "service-decl": { + "name": "meta.service.declaration.ballerina", + "begin": "\\bservice\\b", + "end": "(?=;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|service|type|var)\\b))|(?<=\\})|(?<=\\,)", + "beginCaptures": { + "0": { + "name": "keyword.ballerina" + } + }, + "patterns": [ + { + "include": "#class-defn" + }, + { + "include": "#serviceName" + }, + { + "include": "#serviceOn" + }, + { + "include": "#serviceBody" + }, + { + "include": "#objectDec" + } + ] + }, + "serviceName": { + "patterns": [ + { + "include": "#string" + }, + { + "name": "entity.service.path.ballerina", + "match": "(\\/([_$[:alpha:]][_$[:alnum:]]*)|\\\"[_$[:alpha:]][_$[:alnum:]]*\\\")" + } + ] + }, + "serviceOn": { + "patterns": [ + { + "begin": "on", + "end": "(?={)", + "beginCaptures": { + "0": { + "name": "keyword.other.ballerina" + } + }, + "patterns": [ + { + "include": "#code" + } + ] + } + ] + }, + "strings": { + "patterns": [ + { + "begin": "\\\"", + "end": "\\\"", + "beginCaptures": { + "0": { + "name": "string.begin.ballerina" + } + }, + "endCaptures": { + "0": { + "name": "string.end.ballerina" + } + }, + "patterns": [ + { + "name": "constant.character.escape.ballerina", + "match": "\\\\." + }, + { + "name": "string", + "match": "." + } + ] + } + ] + }, + "string-character-escape": { + "patterns": [ + { + "name": "constant.character.escape.ballerina", + "match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)" + } + ] + }, + "stringTemplate": { + "patterns": [ + { + "name": "string.template.ballerina", + "begin": "((string)|([_$[:alpha:]][_$[:alnum:]]*))?(`)", + "beginCaptures": { + "1": { + "name": "entity.name.function.tagged-template.ballerina" + }, + "2": { + "name": "support.type.primitive.ballerina" + }, + "4": { + "name": "punctuation.definition.string.template.begin.ballerina" + } + }, + "end": "\\\\?`", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.template.end.ballerina" + } + }, + "patterns": [ + { + "include": "#template-substitution-element" + }, + { + "include": "#string-character-escape" + } + ] + } + ] + }, + "template-substitution-element": { + "patterns": [ + { + "name": "meta.template.expression.ballerina", + "begin": "\\$\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.template-expression.begin.ballerina" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.template-expression.end.ballerina" + } + }, + "patterns": [ + { + "include": "#expression" + } + ], + "contentName": "meta.embedded.line.ballerina" + } + ] + }, + "typeDefinition": { + "patterns": [ + { + "begin": "(\\btype\\b)\\s+([_$[:alpha:]][_$[:alnum:]]*)", + "beginCaptures": { + "1": { + "name": "keyword.other.ballerina" + }, + "2": { + "name": "entity.name.type.ballerina" + } + }, + "end": "\\;", + "endCaptures": { + "0": { + "name": "punctuation.terminator.statement.ballerina" + } + }, + "patterns": [ + { + "include": "#functionParameters" + }, + { + "include": "#functionReturns" + }, + { + "include": "#mdDocumentation" + }, + { + "include": "#record" + }, + { + "include": "#string" + }, + { + "include": "#keywords" + }, + { + "include": "#multiType" + }, + { + "include": "#type-primitive" + }, + { + "match": "[_$[:alpha:]][_$[:alnum:]]*", + "name": "variable.other.readwrite.ballerina" + }, + { + "include": "#type-annotation" + }, + { + "include": "#typeDescription" + }, + { + "include": "#decl-block" + } + ] + } + ] + }, + "typeDescription": { + "patterns": [ + { + "begin": "[_$[:alpha:]][_$[:alnum:]]*", + "end": "(?=;)", + "patterns": [ + { + "include": "#numbers" + }, + { + "include": "#decl-block" + }, + { + "include": "#type-primitive" + }, + { + "match": "[_$[:alpha:]][_$[:alnum:]]*", + "name": "storage.type.ballerina" + } + ] + } + ] + }, + "var-expr": { + "patterns": [ + { + "name": "meta.var.expr.ballerina", + "begin": "(?=\\b(var))", + "beginCaptures": { + "0": { + "name": "storage.modifier.ballerina support.type.primitive.ballerina" + } + }, + "end": "(?!\\b(var))((?=;|}|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|service|type|var)\\b))|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=(if)\\s+))|((?<!^string|[^\\._$[:alnum:]]string|^int|[^\\._$[:alnum:]]int)(?=\\s*$)))", + "patterns": [ + { + "begin": "\\b(var)(?=\\s+|\\[|\\?|\\||\\:)", + "beginCaptures": { + "0": { + "name": "support.type.primitive.ballerina" + } + }, + "end": "(?=\\S)" + }, + { + "match": "\\|", + "name": "keyword.operator.type.annotation.ballerina" + }, + { + "name": "keyword.other.ballerina", + "match": "\\bin\\b" + }, + { + "include": "#comment" + }, + { + "include": "#string" + }, + { + "include": "#stringTemplate" + }, + { + "include": "#numbers" + }, + { + "include": "#multiType" + }, + { + "include": "#self-literal" + }, + { + "include": "#var-single-variable" + }, + { + "include": "#variable-initializer" + }, + { + "include": "#punctuation-comma" + }, + { + "include": "#type-annotation" + }, + { + "include": "#keywords" + }, + { + "include": "#type-tuple" + }, + { + "include": "#regex" + } + ] + }, + { + "include": "#punctuation-comma" + }, + { + "name": "meta.var.expr.ballerina", + "begin": "(?=\\b(const(?!\\s+enum\\b)))", + "end": "(?!\\b(const(?!\\s+enum\\b)))((?=\\bannotation\\b|;|}|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|service|type|var)\\b))|((?<!^string|[^\\._$[:alnum:]]string|^int|[^\\._$[:alnum:]]int)(?=\\s*$)))", + "patterns": [ + { + "begin": "\\b(const(?!\\s+enum\\b))\\s+", + "beginCaptures": { + "0": { + "name": "keyword.other.ballerina" + } + }, + "end": "(?=\\S)" + }, + { + "include": "#comment" + }, + { + "include": "#string" + }, + { + "include": "#stringTemplate" + }, + { + "include": "#var-single-const" + }, + { + "include": "#variable-initializer" + }, + { + "include": "#punctuation-comma" + }, + { + "include": "#type-annotation" + } + ] + }, + { + "include": "#punctuation-comma" + }, + { + "name": "meta.var.expr.ballerina", + "begin": "(string|int|boolean|float|byte|decimal|json|xml|anydata)(?=\\s+|\\[|\\?|\\||\\:)", + "beginCaptures": { + "0": { + "name": "support.type.primitive.ballerina" + } + }, + "end": "(?!\\b(var))((?=;|}|;|^\\s*$|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|service|type|var)\\b))|((?<!^string|[^\\._$[:alnum:]]string|^int|[^\\._$[:alnum:]]int)(?=\\s*$)))", + "patterns": [ + { + "include": "#xml" + }, + { + "begin": "(string|int|boolean|float|byte|decimal|json|xml|anydata)(?=\\s+|\\[|\\?|\\||\\:)", + "beginCaptures": { + "0": { + "name": "support.type.primitive.ballerina" + } + }, + "end": "(?=\\S)" + }, + { + "match": "\\|", + "name": "keyword.operator.type.annotation.ballerina" + }, + { + "include": "#string" + }, + { + "include": "#stringTemplate" + }, + { + "include": "#numbers" + }, + { + "include": "#multiType" + }, + { + "include": "#var-single-variable" + }, + { + "include": "#variable-initializer" + }, + { + "include": "#punctuation-comma" + }, + { + "include": "#type-annotation" + }, + { + "include": "#keywords" + }, + { + "include": "#type-tuple" + }, + { + "include": "#regex" + } + ] + }, + { + "include": "#punctuation-comma" + } + ] + }, + "var-single-variable": { + "patterns": [ + { + "name": "meta.var-single-variable.expr.ballerina", + "begin": "((string|int|boolean|float|byte|decimal|json|xml|anydata)|\\b(readonly|error|map)\\b|([_$[:alpha:]][_$[:alnum:]]*))(?=\\s+|\\;|\\>|\\|)", + "beginCaptures": { + "2": { + "name": "support.type.primitive.ballerina" + }, + "3": { + "name": "storage.type.ballerina" + }, + "4": { + "name": "meta.definition.variable.ballerina variable.other.readwrite.ballerina" + } + }, + "end": "(?=$|^|[;,=}])", + "endCaptures": { + "0": { + "name": "punctuation.terminator.statement.ballerina" + } + }, + "patterns": [ + { + "include": "#call" + }, + { + "include": "#self-literal" + }, + { + "include": "#if-statement" + }, + { + "include": "#string" + }, + { + "include": "#numbers" + }, + { + "include": "#keywords" + } + ] + }, + { + "name": "meta.var-single-variable.expr.ballerina", + "begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s+(\\!)?", + "beginCaptures": { + "1": { + "name": "meta.definition.variable.ballerina variable.other.readwrite.ballerina" + }, + "2": { + "name": "keyword.operator.definiteassignment.ballerina" + } + }, + "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))\\s+))" + } + ] + }, + "var-single-const": { + "patterns": [ + { + "name": "meta.var-single-variable.expr.ballerina" + }, + { + "begin": "\\b(var)\\s*", + "beginCaptures": { + "0": { + "name": "support.type.primitive.ballerina" + } + }, + "end": "(?=\\S)" + }, + { + "include": "#types" + }, + { + "begin": "([_$[:alpha:]][_$[:alnum:]]*)", + "beginCaptures": { + "1": { + "name": "meta.definition.variable.ballerina variable.other.constant.ballerina" + } + }, + "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))\\s+))" + } + ] + }, + "variable-initializer": { + "patterns": [ + { + "begin": "(?<!=|!)(=)(?!=|>)(?=\\s*\\S)", + "beginCaptures": { + "1": { + "name": "keyword.operator.assignment.ballerina" + } + }, + "end": "(?=$|[,);}\\]])", + "patterns": [ + { + "match": "(\\')([_$[:alpha:]][_$[:alnum:]]*)", + "name": "variable.other.property.ballerina" + }, + { + "include": "#xml" + }, + { + "include": "#function-defn" + }, + { + "include": "#expression" + }, + { + "include": "#punctuation-accessor" + }, + { + "include": "#regex" + } + ] + }, + { + "begin": "(?<!=|!)(=)(?!=|>)", + "beginCaptures": { + "1": { + "name": "keyword.operator.assignment.ballerina" + } + }, + "end": "(?=[,);}\\]]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))\\s+))|(?=^\\s*$)|(?<=\\S)(?<!=)(?=\\s*$)", + "patterns": [ + { + "include": "#expression" + } + ] + } + ] + }, + "variableDef": { + "patterns": [ + { + "begin": "(?:(?!\\+)[_$[:alpha:]][_$[:alnum:]]*)(?: |\\t)|(?=\\()", + "beginCaptures": { + "0": { + "name": "storage.type.ballerina" + } + }, + "end": "(?:[_$[:alpha:]][_$[:alnum:]]*)|(?=\\,)|(?=;)|\\.\\.\\.", + "patterns": [ + { + "include": "#tupleType" + }, + { + "include": "#constrainType" + }, + { + "include": "#comment" + } + ] + } + ] + }, + "variableDefInline": { + "patterns": [ + { + "begin": "(?=record)|(?=object)", + "end": "(?=;)", + "patterns": [ + { + "include": "#record" + }, + { + "include": "#objectDec" + } + ] + } + ] + }, + "workerDef": { + "patterns": [ + { + "begin": "\\bworker\\b", + "beginCaptures": { + "0": { + "name": "keyword.ballerina" + } + }, + "end": "\\}", + "patterns": [ + { + "include": "#functionReturns" + }, + { + "include": "#workerBody" + } + ] + } + ] + }, + "workerBody": { + "patterns": [ + { + "begin": "\\{", + "end": "(?=\\})", + "patterns": [ + { + "include": "#code" + } + ] + } + ] + }, + "parameter": { + "patterns": [ + { + "begin": "((?=record|object|function)|([_$[:alpha:]][_$[:alnum:]]*)(?=\\|)|(?:[_$[:alpha:]][_$[:alnum:]]*))", + "beginCaptures": { + "0": { + "name": "storage.type.ballerina" + } + }, + "end": "(?:\\,)|(?:\\|)|(?:\\:)|(?==>)|(?=\\))|(?=\\])", + "patterns": [ + { + "include": "#parameterWithDescriptor" + }, + { + "include": "#record" + }, + { + "include": "#objectDec" + }, + { + "include": "#functionType" + }, + { + "include": "#constrainType" + }, + { + "include": "#defaultValue" + }, + { + "include": "#comment" + }, + { + "include": "#parameterTuple" + }, + { + "match": "[_$[:alpha:]][_$[:alnum:]]*", + "name": "default.variable.parameter.ballerina" + } + ] + } + ] + }, + "parameterTuple": { + "patterns": [ + { + "begin": "\\[", + "end": "(?=\\,)|(?=\\|)|(?=\\:)|(?==>)|(?=\\))", + "patterns": [ + { + "include": "#record" + }, + { + "include": "#objectDec" + }, + { + "include": "#parameterTupleType" + }, + { + "include": "#parameterTupleEnd" + }, + { + "include": "#comment" + } + ] + } + ] + }, + "parameterTupleType": { + "patterns": [ + { + "begin": "[_$[:alpha:]][_$[:alnum:]]*", + "beginCaptures": { + "0": { + "name": "storage.type.ballerina" + } + }, + "end": "(?:\\,)|(?:\\|)|(?=\\])" + } + ] + }, + "parameterTupleEnd": { + "patterns": [ + { + "begin": "\\]", + "end": "(?=\\,)|(?=\\|)|(?=\\:)|(?==>)|(?=\\))", + "patterns": [ + { + "include": "#defaultWithParentheses" + }, + { + "match": "[_$[:alpha:]][_$[:alnum:]]*", + "name": "default.variable.parameter.ballerina" + } + ] + } + ] + }, + "parameterWithDescriptor": { + "patterns": [ + { + "begin": "\\&", + "beginCaptures": { + "0": { + "name": "keyword.operator.ballerina" + } + }, + "end": "(?=\\,)|(?=\\|)|(?=\\))", + "patterns": [ + { + "include": "#parameter" + } + ] + } + ] + }, + "defaultWithParentheses": { + "patterns": [ + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.block.ballerina" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.ballerina" + } + } + } + ] + }, + "string": { + "patterns": [ + { + "begin": "\"", + "name": "string.quoted.double.ballerina", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.ballerina" + } + }, + "end": "(\")|((?:[^\\\\\\n])$)", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.ballerina" + }, + "2": { + "name": "invalid.illegal.newline.ballerina" + } + }, + "patterns": [ + { + "include": "#string-character-escape" + } + ] + } + ] + }, + "source": { + "patterns": [ + { + "begin": "(\\bsource\\b)\\s+([_$[:alpha:]][_$[:alnum:]]*)", + "beginCaptures": { + "1": { + "name": "keyword.other.ballerina" + }, + "2": { + "name": "variable.other.readwrite.ballerina" + } + }, + "end": "(?=\\,)|(?=\\;)" + } + ] + }, + "types": { + "patterns": [ + { + "name": "storage.type.ballerina", + "match": "\\b(handle|any|future|typedesc)\\b" + }, + { + "name": "support.type.primitive.ballerina", + "match": "\\b(boolean|int|string|float|decimal|byte|json|xml|anydata)\\b" + }, + { + "name": "storage.type.ballerina", + "match": "\\b(map|error|never|readonly|distinct)\\b" + }, + { + "name": "storage.type.ballerina", + "match": "\\b(stream)\\b" + } + ] + }, + "xml": { + "patterns": [ + { + "begin": "(\\bxml)(\\s*)(`)", + "name": "string.template.ballerina", + "beginCaptures": { + "1": { + "name": "support.type.primitive.ballerina" + }, + "3": { + "name": "punctuation.definition.string.template.begin.ballerina" + } + }, + "end": "`", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.template.end.ballerina" + } + }, + "patterns": [ + { + "include": "#xmlTag" + }, + { + "include": "#xmlComment" + }, + { + "include": "#templateVariable" + }, + { + "name": "string", + "match": "." + } + ] + } + ] + }, + "xmlTag": { + "patterns": [ + { + "begin": "(<\\/?\\??)\\s*([-_a-zA-Z0-9]+)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.xml.ballerina" + }, + "2": { + "name": "entity.name.tag.xml.ballerina" + } + }, + "end": "\\??\\/?>", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.xml.ballerina" + } + }, + "patterns": [ + { + "include": "#xmlSingleQuotedString" + }, + { + "include": "#xmlDoubleQuotedString" + }, + { + "name": "keyword.other.ballerina", + "match": "xmlns" + }, + { + "name": "entity.other.attribute-name.xml.ballerina", + "match": "([a-zA-Z0-9-]+)" + } + ] + } + ] + }, + "xmlComment": { + "patterns": [ + { + "begin": "<!--", + "beginCaptures": { + "0": { + "name": "comment.block.xml.ballerina" + } + }, + "end": "-->", + "endCaptures": { + "0": { + "name": "comment.block.xml.ballerina" + } + }, + "name": "comment.block.xml.ballerina" + } + ] + }, + "xmlSingleQuotedString": { + "patterns": [ + { + "begin": "\\'", + "end": "\\'", + "beginCaptures": { + "0": { + "name": "string.begin.ballerina" + } + }, + "endCaptures": { + "0": { + "name": "string.end.ballerina" + } + }, + "patterns": [ + { + "name": "constant.character.escape.ballerina", + "match": "\\\\." + }, + { + "name": "string", + "match": "." + } + ] + } + ] + }, + "xmlDoubleQuotedString": { + "patterns": [ + { + "begin": "\\\"", + "end": "\\\"", + "beginCaptures": { + "0": { + "name": "string.begin.ballerina" + } + }, + "endCaptures": { + "0": { + "name": "string.end.ballerina" + } + }, + "patterns": [ + { + "name": "constant.character.escape.ballerina", + "match": "\\\\." + }, + { + "name": "string", + "match": "." + } + ] + } + ] + }, + "templateVariable": { + "patterns": [ + { + "begin": "\\${", + "beginCaptures": { + "0": { + "name": "constant.character.escape.ballerina" + } + }, + "end": "}", + "endCaptures": { + "0": { + "name": "constant.character.escape.ballerina" + } + }, + "patterns": [ + { + "include": "#code" + } + ] + } + ] + }, + "ternary-expression": { + "begin": "(?!\\?\\.\\s*[^[:digit:]])(\\?)(?!\\?)", + "beginCaptures": { + "1": { + "name": "keyword.operator.ternary.ballerina" + } + }, + "end": "\\s*", + "endCaptures": { + "1": { + "name": "keyword.operator.ternary.ballerina" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + "type": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#string" + }, + { + "include": "#numbers" + }, + { + "include": "#type-primitive" + }, + { + "include": "#type-tuple" + } + ] + }, + "type-annotation": { + "patterns": [ + { + "name": "meta.type.annotation.ballerina", + "begin": "(\\:)", + "beginCaptures": { + "1": { + "name": "keyword.operator.type.annotation.ballerina" + } + }, + "end": "(?<![:|&])((?=$|^|[,);\\}\\]\\?\\>\\=>]|//)|(?==[^>])|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))(\\?)?", + "patterns": [ + { + "include": "#booleans" + }, + { + "include": "#stringTemplate" + }, + { + "include": "#regex" + }, + { + "include": "#self-literal" + }, + { + "include": "#xml" + }, + { + "include": "#call" + }, + { + "match": "\\b(is|new|isolated|null|function|in)\\b|\\b(true|false)\\b|\\b(check|foreach|if|checkpanic)\\b|\\b(readonly|error|map)\\b|\\b(var)\\b|([_$[:alpha:]][_$[:alnum:]]*)((\\.)([_$[:alpha:]][_$[:alnum:]]*)(\\()(\\)))?", + "captures": { + "1": { + "name": "keyword.other.ballerina" + }, + "2": { + "name": "constant.language.boolean.ballerina" + }, + "3": { + "name": "keyword.control.ballerina" + }, + "4": { + "name": "storage.type.ballerina" + }, + "5": { + "name": "support.type.primitive.ballerina" + }, + "6": { + "name": "variable.other.readwrite.ballerina" + }, + "8": { + "name": "punctuation.accessor.ballerina" + }, + "9": { + "name": "entity.name.function.ballerina" + }, + "10": { + "name": "punctuation.definition.parameters.begin.ballerina" + }, + "11": { + "name": "punctuation.definition.parameters.end.ballerina" + } + } + }, + { + "name": "keyword.operator.optional.ballerina", + "match": "\\?" + }, + { + "include": "#multiType" + }, + { + "include": "#type" + }, + { + "include": "#paranthesised" + } + ] + } + ] + }, + "type-tuple": { + "name": "meta.type.tuple.ballerina", + "begin": "\\[", + "beginCaptures": { + "0": { + "name": "meta.brace.square.ballerina" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "meta.brace.square.ballerina" + } + }, + "patterns": [ + { + "include": "#self-literal" + }, + { + "include": "#booleans" + }, + { + "name": "keyword.operator.rest.ballerina", + "match": "\\.\\.\\." + }, + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)", + "captures": { + "1": { + "name": "entity.name.label.ballerina" + }, + "2": { + "name": "keyword.operator.optional.ballerina" + }, + "3": { + "name": "punctuation.separator.label.ballerina" + } + } + }, + { + "include": "#identifiers" + }, + { + "include": "#type" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "keywords": { + "patterns": [ + { + "name": "keyword.control.ballerina", + "match": "\\b(fork|join|while|returns|transaction|transactional|retry|commit|rollback|typeof|enum|wait|match)\\b" + }, + { + "name": "keyword.control.flow.ballerina", + "match": "\\b(return|break|continue|check|checkpanic|panic|trap|from|where)\\b" + }, + { + "name": "keyword.other.ballerina", + "match": "\\b(public|private|external|return|record|object|remote|abstract|client|true|false|fail|import|version)\\b" + }, + { + "name": "keyword.other.ballerina", + "match": "\\b(as|on|function|resource|listener|const|final|is|null|lock|annotation|source|worker|parameter|field|isolated|in)\\b" + }, + { + "name": "keyword.other.ballerina", + "match": "\\b(xmlns|table|key|let|new|select|start|flush|default|do|base16|base64|conflict)\\b" + }, + { + "name": "keyword.other.ballerina", + "match": "\\b(limit|outer|equals|order|by|ascending|descending|class|configurable|variable|module|service|group|collect)\\b" + }, + { + "name": "meta.arrow.ballerina storage.type.function.arrow.ballerina", + "match": "(=>)" + }, + { + "name": "keyword.operator.ballerina", + "match": "(!|%|\\+|\\-|~=|===|==|=|!=|!==|<|>|&|\\||\\?:|\\.\\.\\.|<=|>=|&&|\\|\\||~|>>|>>>)" + }, + { + "include": "#types" + }, + { + "include": "#self-literal" + }, + { + "include": "#type-primitive" + } + ] + }, + "literal": { + "patterns": [ + { + "include": "#booleans" + }, + { + "include": "#numbers" + }, + { + "include": "#strings" + }, + { + "include": "#maps" + }, + { + "include": "#self-literal" + }, + { + "include": "#array-literal" + } + ] + }, + "array-literal": { + "name": "meta.array.literal.ballerina", + "begin": "\\s*(\\[)", + "beginCaptures": { + "1": { + "name": "meta.brace.square.ballerina" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "meta.brace.square.ballerina" + } + }, + "patterns": [ + { + "include": "#expression" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "self-literal": { + "patterns": [ + { + "match": "(\\bself\\b)\\s*(.)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=\\()", + "captures": { + "1": { + "name": "variable.language.this.ballerina" + }, + "2": { + "name": "punctuation.accessor.ballerina" + }, + "3": { + "name": "entity.name.function.ballerina" + } + } + }, + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))self\\b(?!\\$)", + "name": "variable.language.this.ballerina" + } + ] + }, + "code": { + "patterns": [ + { + "include": "#booleans" + }, + { + "include": "#matchStatement" + }, + { + "include": "#butExp" + }, + { + "include": "#xml" + }, + { + "include": "#stringTemplate" + }, + { + "include": "#keywords" + }, + { + "include": "#strings" + }, + { + "include": "#comment" + }, + { + "include": "#mdDocumentation" + }, + { + "include": "#annotationAttachment" + }, + { + "include": "#numbers" + }, + { + "include": "#maps" + }, + { + "include": "#paranthesised" + }, + { + "include": "#paranthesisedBracket" + }, + { + "include": "#regex" + } + ] + }, + "type-primitive": { + "patterns": [ + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(string|int|boolean|float|byte|decimal|json|xml|anydata)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "name": "support.type.primitive.ballerina" + } + ] + }, + "regex": { + "patterns": [ + { + "begin": "(\\bre)(\\s*)(`)", + "name": "regexp.template.ballerina", + "beginCaptures": { + "1": { + "name": "support.type.primitive.ballerina" + }, + "3": { + "name": "punctuation.definition.regexp.template.begin.ballerina" + } + }, + "end": "`", + "endCaptures": { + "1": { + "name": "punctuation.definition.regexp.template.end.ballerina" + } + }, + "patterns": [ + { + "include": "#template-substitution-element" + }, + { + "include": "#regexp" + } + ] + } + ] + }, + "regexp": { + "patterns": [ + { + "name": "keyword.control.assertion.regexp.ballerina", + "match": "\\^|\\$" + }, + { + "name": "keyword.operator.quantifier.regexp.ballerina", + "match": "[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??" + }, + { + "name": "keyword.operator.or.regexp.ballerina", + "match": "\\|" + }, + { + "name": "meta.group.assertion.regexp.ballerina", + "begin": "(\\()", + "beginCaptures": { + "1": { + "name": "punctuation.definition.group.regexp.ballerina" + } + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.definition.group.regexp.ballerina" + } + }, + "patterns": [ + { + "include": "#template-substitution-element" + }, + { + "include": "#regexp" + }, + { + "include": "#flags-on-off" + }, + { + "include": "#unicode-property-escape" + } + ] + }, + { + "name": "constant.other.character-class.set.regexp.ballerina", + "begin": "(\\[)(\\^)?", + "beginCaptures": { + "1": { + "name": "punctuation.definition.character-class.start.regexp.ballerina" + }, + "2": { + "name": "keyword.operator.negation.regexp.ballerina" + } + }, + "end": "(\\])", + "endCaptures": { + "1": { + "name": "punctuation.definition.character-class.end.regexp.ballerina" + } + }, + "patterns": [ + { + "name": "constant.other.character-class.range.regexp.ballerina", + "match": "(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\[^pPu]))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\[^pPu]))", + "captures": { + "1": { + "name": "constant.character.numeric.regexp" + }, + "2": { + "name": "constant.character.escape.backslash.regexp" + }, + "3": { + "name": "constant.character.numeric.regexp" + }, + "4": { + "name": "constant.character.escape.backslash.regexp" + } + } + }, + { + "include": "#regex-character-class" + }, + { + "include": "#unicode-values" + }, + { + "include": "#unicode-property-escape" + } + ] + }, + { + "include": "#template-substitution-element" + }, + { + "include": "#regex-character-class" + }, + { + "include": "#unicode-values" + }, + { + "include": "#unicode-property-escape" + } + ] + }, + "regex-character-class": { + "patterns": [ + { + "name": "keyword.other.character-class.regexp.ballerina", + "match": "\\\\[wWsSdDtrn]|\\." + }, + { + "name": "constant.character.escape.backslash.regexp", + "match": "\\\\[^pPu]" + } + ] + }, + "unicode-property-escape": { + "patterns": [ + { + "name": "keyword.other.unicode-property.regexp.ballerina", + "begin": "(\\\\p|\\\\P)(\\{)", + "beginCaptures": { + "1": { + "name": "keyword.other.unicode-property.regexp.ballerina" + }, + "2": { + "name": "punctuation.other.unicode-property.begin.regexp.ballerina" + } + }, + "end": "(\\})", + "endCaptures": { + "1": { + "name": "punctuation.other.unicode-property.end.regexp.ballerina" + } + }, + "patterns": [ + { + "include": "#regex-unicode-properties-general-category" + }, + { + "include": "#regex-unicode-property-key" + } + ] + } + ] + }, + "regex-unicode-property-key": { + "patterns": [ + { + "name": "keyword.other.unicode-property-key.regexp.ballerina", + "begin": "(sc=|gc=)", + "beginCaptures": { + "1": { + "name": "keyword.other.unicode-property-key.regexp.ballerina" + } + }, + "end": "()", + "endCaptures": { + "1": { + "name": "punctuation.other.unicode-property.end.regexp.ballerina" + } + }, + "patterns": [ + { + "include": "#regex-unicode-properties-general-category" + } + ] + } + ] + }, + "regex-unicode-properties-general-category": { + "patterns": [ + { + "match": "(Lu|Ll|Lt|Lm|Lo|L|Mn|Mc|Me|M|Nd|Nl|No|N|Pc|Pd|Ps|Pe|Pi|Pf|Po|P|Sm|Sc|Sk|So|S|Zs|Zl|Zp|Z|Cf|Cc|Cn|Co|C)", + "name": "constant.other.unicode-property-general-category.regexp.ballerina" + } + ] + }, + "unicode-values": { + "patterns": [ + { + "name": "keyword.other.unicode-value.ballerina", + "begin": "(\\\\u)(\\{)", + "beginCaptures": { + "1": { + "name": "keyword.other.unicode-value.regexp.ballerina" + }, + "2": { + "name": "punctuation.other.unicode-value.begin.regexp.ballerina" + } + }, + "end": "(\\})", + "endCaptures": { + "1": { + "name": "punctuation.other.unicode-value.end.regexp.ballerina" + } + }, + "patterns": [ + { + "match": "([0-9A-Fa-f]{1,6})", + "name": "constant.other.unicode-value.regexp.ballerina" + } + ] + } + ] + }, + "flags-on-off": { + "name": "meta.flags.regexp.ballerina", + "patterns": [ + { + "begin": "(\\??)([imsx]*)(-?)([imsx]*)(:)", + "beginCaptures": { + "1": { + "name": "punctuation.other.non-capturing-group-begin.regexp.ballerina" + }, + "2": { + "name": "keyword.other.non-capturing-group.flags-on.regexp.ballerina" + }, + "3": { + "name": "punctuation.other.non-capturing-group.off.regexp.ballerina" + }, + "4": { + "name": "keyword.other.non-capturing-group.flags-off.regexp.ballerina" + }, + "5": { + "name": "punctuation.other.non-capturing-group-end.regexp.ballerina" + } + }, + "end": "()", + "name": "constant.other.flag.regexp.ballerina", + "patterns": [ + { + "include": "#regexp" + }, + { + "include": "#template-substitution-element" + } + ] + } + ] + } + } +} diff --git a/docs/shiki/languages/bat.tmLanguage.json b/docs/shiki/languages/bat.tmLanguage.json new file mode 100644 index 00000000..7e32d021 --- /dev/null +++ b/docs/shiki/languages/bat.tmLanguage.json @@ -0,0 +1,788 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/mmims/language-batchfile/blob/master/grammars/batchfile.cson", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/mmims/language-batchfile/commit/6154ae25a24e01ac9329e7bcf958e093cd8733a9", + "name": "bat", + "scopeName": "source.batchfile", + "injections": { + "L:meta.block.repeat.batchfile": { + "patterns": [ + { + "include": "#repeatParameter" + } + ] + } + }, + "patterns": [ + { + "include": "#commands" + }, + { + "include": "#comments" + }, + { + "include": "#constants" + }, + { + "include": "#controls" + }, + { + "include": "#escaped_characters" + }, + { + "include": "#labels" + }, + { + "include": "#numbers" + }, + { + "include": "#operators" + }, + { + "include": "#parens" + }, + { + "include": "#strings" + }, + { + "include": "#variables" + } + ], + "repository": { + "commands": { + "patterns": [ + { + "match": "(?<=^|[\\s@])(?i:adprep|append|arp|assoc|at|atmadm|attrib|auditpol|autochk|autoconv|autofmt|bcdboot|bcdedit|bdehdcfg|bitsadmin|bootcfg|brea|cacls|cd|certreq|certutil|change|chcp|chdir|chglogon|chgport|chgusr|chkdsk|chkntfs|choice|cipher|clip|cls|clscluadmin|cluster|cmd|cmdkey|cmstp|color|comp|compact|convert|copy|cprofile|cscript|csvde|date|dcdiag|dcgpofix|dcpromo|defra|del|dfscmd|dfsdiag|dfsrmig|diantz|dir|dirquota|diskcomp|diskcopy|diskpart|diskperf|diskraid|diskshadow|dispdiag|doin|dnscmd|doskey|driverquery|dsacls|dsadd|dsamain|dsdbutil|dsget|dsmgmt|dsmod|dsmove|dsquery|dsrm|edit|endlocal|eraseesentutl|eventcreate|eventquery|eventtriggers|evntcmd|expand|extract|fc|filescrn|find|findstr|finger|flattemp|fonde|forfiles|format|freedisk|fsutil|ftp|ftype|fveupdate|getmac|gettype|gpfixup|gpresult|gpupdate|graftabl|hashgen|hep|helpctr|hostname|icacls|iisreset|inuse|ipconfig|ipxroute|irftp|ismserv|jetpack|klist|ksetup|ktmutil|ktpass|label|ldifd|ldp|lodctr|logman|logoff|lpq|lpr|macfile|makecab|manage-bde|mapadmin|md|mkdir|mklink|mmc|mode|more|mount|mountvol|move|mqbup|mqsvc|mqtgsvc|msdt|msg|msiexec|msinfo32|mstsc|nbtstat|net computer|net group|net localgroup|net print|net session|net share|net start|net stop|net use|net user|net view|net|netcfg|netdiag|netdom|netsh|netstat|nfsadmin|nfsshare|nfsstat|nlb|nlbmgr|nltest|nslookup|ntackup|ntcmdprompt|ntdsutil|ntfrsutl|openfiles|pagefileconfig|path|pathping|pause|pbadmin|pentnt|perfmon|ping|pnpunatten|pnputil|popd|powercfg|powershell|powershell_ise|print|prncnfg|prndrvr|prnjobs|prnmngr|prnport|prnqctl|prompt|pubprn|pushd|pushprinterconnections|pwlauncher|qappsrv|qprocess|query|quser|qwinsta|rasdial|rcp|rd|rdpsign|regentc|recover|redircmp|redirusr|reg|regini|regsvr32|relog|ren|rename|rendom|repadmin|repair-bde|replace|reset session|rxec|risetup|rmdir|robocopy|route|rpcinfo|rpcping|rsh|runas|rundll32|rwinsta|sc|schtasks|scp|scwcmd|secedit|serverceipoptin|servrmanagercmd|serverweroptin|setspn|setx|sfc|sftp|shadow|shift|showmount|shutdown|sort|ssh|ssh-add|ssh-agent|ssh-keygen|ssh-keyscan|start|storrept|subst|sxstrace|ysocmgr|systeminfo|takeown|tapicfg|taskkill|tasklist|tcmsetup|telnet|tftp|time|timeout|title|tlntadmn|tpmvscmgr|tpmvscmgr|tacerpt|tracert|tree|tscon|tsdiscon|tsecimp|tskill|tsprof|type|typeperf|tzutil|uddiconfig|umount|unlodctr|ver|verifier|verif|vol|vssadmin|w32tm|waitfor|wbadmin|wdsutil|wecutil|wevtutil|where|whoami|winnt|winnt32|winpop|winrm|winrs|winsat|wlbs|wmic|wscript|wsl|xcopy)(?=$|\\s)", + "name": "keyword.command.batchfile" + }, + { + "begin": "(?i)(?<=^|[\\s@])(echo)(?:(?=$|\\.|:)|\\s+(?:(on|off)(?=\\s*$))?)", + "beginCaptures": { + "1": { + "name": "keyword.command.batchfile" + }, + "2": { + "name": "keyword.other.special-method.batchfile" + } + }, + "end": "(?=$\\n|[&|><)])", + "patterns": [ + { + "include": "#escaped_characters" + }, + { + "include": "#variables" + }, + { + "include": "#numbers" + }, + { + "include": "#strings" + } + ] + }, + { + "match": "(?i)(?<=^|[\\s@])(setlocal)(?:\\s*$|\\s+(EnableExtensions|DisableExtensions|EnableDelayedExpansion|DisableDelayedExpansion)(?=\\s*$))", + "captures": { + "1": { + "name": "keyword.command.batchfile" + }, + "2": { + "name": "keyword.other.special-method.batchfile" + } + } + }, + { + "include": "#command_set" + } + ] + }, + "command_set": { + "patterns": [ + { + "begin": "(?<=^|[\\s@])(?i:SET)(?=$|\\s)", + "beginCaptures": { + "0": { + "name": "keyword.command.batchfile" + } + }, + "end": "(?=$\\n|[&|><)])", + "patterns": [ + { + "include": "#command_set_inside" + } + ] + } + ] + }, + "command_set_inside": { + "patterns": [ + { + "include": "#escaped_characters" + }, + { + "include": "#variables" + }, + { + "include": "#numbers" + }, + { + "include": "#parens" + }, + { + "include": "#command_set_strings" + }, + { + "include": "#strings" + }, + { + "begin": "([^ ][^=]*)(=)", + "beginCaptures": { + "1": { + "name": "variable.other.readwrite.batchfile" + }, + "2": { + "name": "keyword.operator.assignment.batchfile" + } + }, + "end": "(?=$\\n|[&|><)])", + "patterns": [ + { + "include": "#escaped_characters" + }, + { + "include": "#variables" + }, + { + "include": "#numbers" + }, + { + "include": "#parens" + }, + { + "include": "#strings" + } + ] + }, + { + "begin": "\\s+/[aA]\\s+", + "end": "(?=$\\n|[&|><)])", + "name": "meta.expression.set.batchfile", + "patterns": [ + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.batchfile" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.batchfile" + } + }, + "name": "string.quoted.double.batchfile", + "patterns": [ + { + "include": "#command_set_inside_arithmetic" + }, + { + "include": "#command_set_group" + }, + { + "include": "#variables" + } + ] + }, + { + "include": "#command_set_inside_arithmetic" + }, + { + "include": "#command_set_group" + } + ] + }, + { + "begin": "\\s+/[pP]\\s+", + "end": "(?=$\\n|[&|><)])", + "patterns": [ + { + "include": "#command_set_strings" + }, + { + "begin": "([^ ][^=]*)(=)", + "beginCaptures": { + "1": { + "name": "variable.other.readwrite.batchfile" + }, + "2": { + "name": "keyword.operator.assignment.batchfile" + } + }, + "end": "(?=$\\n|[&|><)])", + "name": "meta.prompt.set.batchfile", + "patterns": [ + { + "include": "#strings" + } + ] + } + ] + } + ] + }, + "command_set_group": { + "patterns": [ + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.section.group.begin.batchfile" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.group.end.batchfile" + } + }, + "patterns": [ + { + "include": "#command_set_inside_arithmetic" + } + ] + } + ] + }, + "command_set_inside_arithmetic": { + "patterns": [ + { + "include": "#command_set_operators" + }, + { + "include": "#numbers" + }, + { + "match": ",", + "name": "punctuation.separator.batchfile" + } + ] + }, + "command_set_operators": { + "patterns": [ + { + "match": "([^ ]*)(\\+\\=|\\-\\=|\\*\\=|\\/\\=|%%\\=|&\\=|\\|\\=|\\^\\=|<<\\=|>>\\=)", + "captures": { + "1": { + "name": "variable.other.readwrite.batchfile" + }, + "2": { + "name": "keyword.operator.assignment.augmented.batchfile" + } + } + }, + { + "match": "\\+|\\-|/|\\*|%%|\\||&|\\^|<<|>>|~", + "name": "keyword.operator.arithmetic.batchfile" + }, + { + "match": "!", + "name": "keyword.operator.logical.batchfile" + }, + { + "match": "([^ =]*)(=)", + "captures": { + "1": { + "name": "variable.other.readwrite.batchfile" + }, + "2": { + "name": "keyword.operator.assignment.batchfile" + } + } + } + ] + }, + "command_set_strings": { + "patterns": [ + { + "begin": "(\")\\s*([^ ][^=]*)(=)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.string.begin.batchfile" + }, + "2": { + "name": "variable.other.readwrite.batchfile" + }, + "3": { + "name": "keyword.operator.assignment.batchfile" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.batchfile" + } + }, + "name": "string.quoted.double.batchfile", + "patterns": [ + { + "include": "#variables" + }, + { + "include": "#numbers" + }, + { + "include": "#escaped_characters" + } + ] + } + ] + }, + "comments": { + "patterns": [ + { + "begin": "(?:^|(&))\\s*(?=((?::[+=,;: ])))", + "beginCaptures": { + "1": { + "name": "keyword.operator.conditional.batchfile" + } + }, + "end": "\\n", + "patterns": [ + { + "begin": "((?::[+=,;: ]))", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.batchfile" + } + }, + "end": "(?=\\n)", + "name": "comment.line.colon.batchfile" + } + ] + }, + { + "begin": "(?<=^|[\\s@])(?i)(REM)(\\.)", + "beginCaptures": { + "1": { + "name": "keyword.command.rem.batchfile" + }, + "2": { + "name": "punctuation.separator.batchfile" + } + }, + "end": "(?=$\\n|[&|><)])", + "name": "comment.line.rem.batchfile" + }, + { + "begin": "(?<=^|[\\s@])(?i:rem)\\b", + "beginCaptures": { + "0": { + "name": "keyword.command.rem.batchfile" + } + }, + "end": "\\n", + "name": "comment.line.rem.batchfile", + "patterns": [ + { + "match": "[><|]", + "name": "invalid.illegal.unexpected-character.batchfile" + } + ] + } + ] + }, + "constants": { + "patterns": [ + { + "match": "\\b(?i:NUL)\\b", + "name": "constant.language.batchfile" + } + ] + }, + "controls": { + "patterns": [ + { + "match": "(?i)(?<=^|\\s)(?:call|exit(?=$|\\s)|goto(?=$|\\s|:))", + "name": "keyword.control.statement.batchfile" + }, + { + "match": "(?<=^|\\s)(?i)(if)\\s+(?:(not)\\s+)?(exist|defined|errorlevel|cmdextversion)(?=\\s)", + "captures": { + "1": { + "name": "keyword.control.conditional.batchfile" + }, + "2": { + "name": "keyword.operator.logical.batchfile" + }, + "3": { + "name": "keyword.other.special-method.batchfile" + } + } + }, + { + "match": "(?<=^|\\s)(?i)(?:if|else)(?=$|\\s)", + "name": "keyword.control.conditional.batchfile" + }, + { + "begin": "(?<=^|[\\s(&^])(?i)for(?=\\s)", + "beginCaptures": { + "0": { + "name": "keyword.control.repeat.batchfile" + } + }, + "name": "meta.block.repeat.batchfile", + "end": "\\n", + "patterns": [ + { + "begin": "(?<=[\\s^])(?i)in(?=\\s)", + "beginCaptures": { + "0": { + "name": "keyword.control.repeat.in.batchfile" + } + }, + "end": "(?<=[\\s)^])(?i)do(?=\\s)|\\n", + "endCaptures": { + "0": { + "name": "keyword.control.repeat.do.batchfile" + } + }, + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "include": "$self" + } + ] + } + ] + }, + "escaped_characters": { + "patterns": [ + { + "match": "%%|\\^\\^!|\\^(?=.)|\\^\\n", + "name": "constant.character.escape.batchfile" + } + ] + }, + "labels": { + "patterns": [ + { + "match": "(?i)(?:^\\s*|(?<=call|goto)\\s*)(:)([^+=,;:\\s]\\S*)", + "captures": { + "1": { + "name": "punctuation.separator.batchfile" + }, + "2": { + "name": "keyword.other.special-method.batchfile" + } + } + } + ] + }, + "numbers": { + "patterns": [ + { + "match": "(?<=^|\\s|=)(0[xX][0-9A-Fa-f]*|[+-]?\\d+)(?=$|\\s|<|>)", + "name": "constant.numeric.batchfile" + } + ] + }, + "operators": { + "patterns": [ + { + "match": "@(?=\\S)", + "name": "keyword.operator.at.batchfile" + }, + { + "match": "(?<=\\s)(?i:EQU|NEQ|LSS|LEQ|GTR|GEQ)(?=\\s)|==", + "name": "keyword.operator.comparison.batchfile" + }, + { + "match": "(?<=\\s)(?i)(NOT)(?=\\s)", + "name": "keyword.operator.logical.batchfile" + }, + { + "match": "(?<!\\^)&&?|\\|\\|", + "name": "keyword.operator.conditional.batchfile" + }, + { + "match": "(?<!\\^)\\|", + "name": "keyword.operator.pipe.batchfile" + }, + { + "match": "<&?|>[&>]?", + "name": "keyword.operator.redirection.batchfile" + } + ] + }, + "parens": { + "patterns": [ + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.section.group.begin.batchfile" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.group.end.batchfile" + } + }, + "name": "meta.group.batchfile", + "patterns": [ + { + "match": ",|;", + "name": "punctuation.separator.batchfile" + }, + { + "include": "$self" + } + ] + } + ] + }, + "repeatParameter": { + "patterns": [ + { + "match": "(%%)(?:(?i:~[fdpnxsatz]*(?:\\$PATH:)?)?[a-zA-Z])", + "captures": { + "1": { + "name": "punctuation.definition.variable.batchfile" + } + }, + "name": "variable.parameter.repeat.batchfile" + } + ] + }, + "strings": { + "patterns": [ + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.batchfile" + } + }, + "end": "(\")|(\\n)", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.batchfile" + }, + "2": { + "name": "invalid.illegal.newline.batchfile" + } + }, + "name": "string.quoted.double.batchfile", + "patterns": [ + { + "match": "%%", + "name": "constant.character.escape.batchfile" + }, + { + "include": "#variables" + } + ] + } + ] + }, + "variables": { + "patterns": [ + { + "match": "(%)(?:(?i:~[fdpnxsatz]*(?:\\$PATH:)?)?\\d|\\*)", + "captures": { + "1": { + "name": "punctuation.definition.variable.batchfile" + } + }, + "name": "variable.parameter.batchfile" + }, + { + "include": "#variable" + }, + { + "include": "#variable_delayed_expansion" + } + ] + }, + "variable": { + "patterns": [ + { + "begin": "%(?=[^%]+%)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.variable.begin.batchfile" + } + }, + "end": "(%)|\\n", + "endCaptures": { + "1": { + "name": "punctuation.definition.variable.end.batchfile" + } + }, + "name": "variable.other.readwrite.batchfile", + "patterns": [ + { + "begin": ":~", + "beginCaptures": { + "0": { + "name": "punctuation.separator.batchfile" + } + }, + "end": "(?=%|\\n)", + "name": "meta.variable.substring.batchfile", + "patterns": [ + { + "include": "#variable_substring" + } + ] + }, + { + "begin": ":", + "beginCaptures": { + "0": { + "name": "punctuation.separator.batchfile" + } + }, + "end": "(?=%|\\n)", + "name": "meta.variable.substitution.batchfile", + "patterns": [ + { + "include": "#variable_replace" + }, + { + "begin": "=", + "beginCaptures": { + "0": { + "name": "punctuation.separator.batchfile" + } + }, + "end": "(?=%|\\n)", + "patterns": [ + { + "include": "#variable_delayed_expansion" + }, + { + "match": "[^%]+", + "name": "string.unquoted.batchfile" + } + ] + } + ] + } + ] + } + ] + }, + "variable_delayed_expansion": { + "patterns": [ + { + "begin": "!(?=[^!]+!)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.variable.begin.batchfile" + } + }, + "end": "(!)|\\n", + "endCaptures": { + "1": { + "name": "punctuation.definition.variable.end.batchfile" + } + }, + "name": "variable.other.readwrite.batchfile", + "patterns": [ + { + "begin": ":~", + "beginCaptures": { + "0": { + "name": "punctuation.separator.batchfile" + } + }, + "end": "(?=!|\\n)", + "name": "meta.variable.substring.batchfile", + "patterns": [ + { + "include": "#variable_substring" + } + ] + }, + { + "begin": ":", + "beginCaptures": { + "0": { + "name": "punctuation.separator.batchfile" + } + }, + "end": "(?=!|\\n)", + "name": "meta.variable.substitution.batchfile", + "patterns": [ + { + "include": "#escaped_characters" + }, + { + "include": "#variable_replace" + }, + { + "include": "#variable" + }, + { + "begin": "=", + "beginCaptures": { + "0": { + "name": "punctuation.separator.batchfile" + } + }, + "end": "(?=!|\\n)", + "patterns": [ + { + "include": "#variable" + }, + { + "match": "[^!]+", + "name": "string.unquoted.batchfile" + } + ] + } + ] + } + ] + } + ] + }, + "variable_replace": { + "patterns": [ + { + "match": "[^=%!\\n]+", + "name": "string.unquoted.batchfile" + } + ] + }, + "variable_substring": { + "patterns": [ + { + "match": "([+-]?\\d+)(?:(,)([+-]?\\d+))?", + "captures": { + "1": { + "name": "constant.numeric.batchfile" + }, + "2": { + "name": "punctuation.separator.batchfile" + }, + "3": { + "name": "constant.numeric.batchfile" + } + } + } + ] + } + } +} diff --git a/docs/shiki/languages/beancount.tmLanguage.json b/docs/shiki/languages/beancount.tmLanguage.json new file mode 100644 index 00000000..fd8ea38e --- /dev/null +++ b/docs/shiki/languages/beancount.tmLanguage.json @@ -0,0 +1,829 @@ +{ + "fileTypes": ["beancount"], + "name": "beancount", + "patterns": [ + { + "comment": "Comments", + "match": ";.*", + "name": "comment.line.beancount" + }, + { + "begin": "^\\s*(poptag|pushtag)\\s+(#)([A-Za-z0-9\\-_/.]+)", + "beginCaptures": { + "1": { + "name": "support.function.beancount" + }, + "2": { + "name": "keyword.operator.tag.beancount" + }, + "3": { + "name": "entity.name.tag.beancount" + } + }, + "comment": "Tag directive", + "end": "(?=(^\\s*$|^\\S))", + "name": "meta.directive.tag.beancount", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#illegal" + } + ] + }, + { + "begin": "^\\s*(include)\\s+(\\\".*\\\")", + "beginCaptures": { + "1": { + "name": "support.function.beancount" + }, + "2": { + "name": "string.quoted.double.beancount" + } + }, + "comment": "Include directive", + "end": "(?=(^\\s*$|^\\S))", + "name": "meta.directive.include.beancount", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#illegal" + } + ] + }, + { + "begin": "^\\s*(option)\\s+(\\\".*\\\")\\s+(\\\".*\\\")", + "beginCaptures": { + "1": { + "name": "support.function.beancount" + }, + "2": { + "name": "support.variable.beancount" + }, + "3": { + "name": "string.quoted.double.beancount" + } + }, + "comment": "Option directive", + "end": "(?=(^\\s*$|^\\S))", + "name": "meta.directive.option.beancount", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#illegal" + } + ] + }, + { + "begin": "^\\s*(plugin)\\s*(\"(.*?)\")\\s*(\".*?\")?", + "beginCaptures": { + "1": { + "name": "support.function.beancount" + }, + "2": { + "name": "string.quoted.double.beancount" + }, + "3": { + "name": "entity.name.function.beancount" + }, + "4": { + "name": "string.quoted.double.beancount" + } + }, + "comment": "Plugin directive", + "end": "(?=(^\\s*$|^\\S))", + "name": "keyword.operator.directive.beancount", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#illegal" + } + ] + }, + { + "begin": "([0-9]{4})([\\-|/])([0-9]{2})([\\-|/])([0-9]{2})\\s+(open|close|pad)\\b", + "beginCaptures": { + "1": { + "name": "constant.numeric.date.year.beancount" + }, + "2": { + "name": "punctuation.separator.beancount" + }, + "3": { + "name": "constant.numeric.date.month.beancount" + }, + "4": { + "name": "punctuation.separator.beancount" + }, + "5": { + "name": "constant.numeric.date.day.beancount" + }, + "6": { + "name": "support.function.beancount" + } + }, + "comment": "Open/Close/Pad directive", + "end": "(?=(^\\s*$|^\\S))", + "name": "meta.directive.dated.beancount", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#meta" + }, + { + "include": "#account" + }, + { + "include": "#commodity" + }, + { + "match": "\\,", + "name": "punctuation.separator.beancount" + }, + { + "include": "#illegal" + } + ] + }, + { + "begin": "([0-9]{4})([\\-|/])([0-9]{2})([\\-|/])([0-9]{2})\\s+(custom)\\b", + "beginCaptures": { + "1": { + "name": "constant.numeric.date.year.beancount" + }, + "2": { + "name": "punctuation.separator.beancount" + }, + "3": { + "name": "constant.numeric.date.month.beancount" + }, + "4": { + "name": "punctuation.separator.beancount" + }, + "5": { + "name": "constant.numeric.date.day.beancount" + }, + "6": { + "name": "support.function.beancount" + } + }, + "comment": "Custom directive", + "end": "(?=(^\\s*$|^\\S))", + "name": "meta.directive.dated.beancount", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#meta" + }, + { + "include": "#string" + }, + { + "include": "#bool" + }, + { + "include": "#amount" + }, + { + "include": "#number" + }, + { + "include": "#date" + }, + { + "include": "#account" + }, + { + "include": "#illegal" + } + ] + }, + { + "begin": "([0-9]{4})([\\-|/])([0-9]{2})([\\-|/])([0-9]{2})\\s(event)", + "beginCaptures": { + "1": { + "name": "constant.numeric.date.year.beancount" + }, + "2": { + "name": "punctuation.separator.beancount" + }, + "3": { + "name": "constant.numeric.date.month.beancount" + }, + "4": { + "name": "punctuation.separator.beancount" + }, + "5": { + "name": "constant.numeric.date.day.beancount" + }, + "6": { + "name": "support.function.directive.beancount" + } + }, + "comment": "Event directive", + "end": "(?=(^\\s*$|^\\S))", + "name": "meta.directive.dated.beancount", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#meta" + }, + { + "include": "#string" + }, + { + "include": "#illegal" + } + ] + }, + { + "begin": "([0-9]{4})([\\-|/])([0-9]{2})([\\-|/])([0-9]{2})\\s(commodity)", + "beginCaptures": { + "1": { + "name": "constant.numeric.date.year.beancount" + }, + "2": { + "name": "punctuation.separator.beancount" + }, + "3": { + "name": "constant.numeric.date.month.beancount" + }, + "4": { + "name": "punctuation.separator.beancount" + }, + "5": { + "name": "constant.numeric.date.day.beancount" + }, + "6": { + "name": "support.function.directive.beancount" + } + }, + "comment": "Commodity directive", + "end": "(?=(^\\s*$|^\\S))", + "name": "meta.directive.dated.beancount", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#meta" + }, + { + "include": "#commodity" + }, + { + "include": "#illegal" + } + ] + }, + { + "name": "meta.directive.notetotext.beancount", + "comment": "Note as Oneliner Transaction directive", + "begin": "([0-9]{4})([\\-|/])([0-9]{2})([\\-|/])([0-9]{2})\\s+(note)(?=(.*\\*\\\"\\s))", + "beginCaptures": { + "1": { + "name": "constant.numeric.date.year.beancount" + }, + "2": { + "name": "punctuation.separator.beancount" + }, + "3": { + "name": "constant.numeric.date.month.beancount" + }, + "4": { + "name": "punctuation.separator.beancount" + }, + "5": { + "name": "constant.numeric.date.day.beancount" + }, + "6": { + "name": "support.function.directive.beancount" + } + }, + "end": "(?=(^\\s*$|^\\S))", + "patterns": [ + { + "include": "#meta" + }, + { + "include": "#account" + }, + { + "name": "punctuation.separator.beancount", + "match": "(?<=\\s)\\\"" + }, + { + "include": "#cost" + }, + { + "include": "#amount" + }, + { + "begin": "(\\*|\\!)", + "beginCaptures": { + "0": { + "name": "support.function.directive.beancount" + } + }, + "end": "(\\*\\\")", + "endCaptures": { + "0": { + "name": "punctuation.separator.beancount" + } + }, + "patterns": [ + { + "name": "constant.character.escape.beancount", + "match": "\\\\." + }, + { + "include": "#tag" + }, + { + "name": "string.quoted.double.beancount", + "match": "([^\\\"])" + } + ] + }, + { + "include": "#illegal" + } + ] + }, + { + "begin": "([0-9]{4})([\\-|/])([0-9]{2})([\\-|/])([0-9]{2})\\s(note|document)", + "beginCaptures": { + "1": { + "name": "constant.numeric.date.year.beancount" + }, + "2": { + "name": "punctuation.separator.beancount" + }, + "3": { + "name": "constant.numeric.date.month.beancount" + }, + "4": { + "name": "punctuation.separator.beancount" + }, + "5": { + "name": "constant.numeric.date.day.beancount" + }, + "6": { + "name": "support.function.directive.beancount" + } + }, + "comment": "Note/Document directive", + "end": "(?=(^\\s*$|^\\S))", + "name": "meta.directive.dated.beancount", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#meta" + }, + { + "include": "#account" + }, + { + "include": "#string" + }, + { + "include": "#illegal" + } + ] + }, + { + "begin": "([0-9]{4})([\\-|/])([0-9]{2})([\\-|/])([0-9]{2})\\s(price)", + "beginCaptures": { + "1": { + "name": "constant.numeric.date.year.beancount" + }, + "2": { + "name": "punctuation.separator.beancount" + }, + "3": { + "name": "constant.numeric.date.month.beancount" + }, + "4": { + "name": "punctuation.separator.beancount" + }, + "5": { + "name": "constant.numeric.date.day.beancount" + }, + "6": { + "name": "support.function.directive.beancount" + } + }, + "comment": "Price directives", + "end": "(?=(^\\s*$|^\\S))", + "name": "meta.directive.dated.beancount", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#meta" + }, + { + "include": "#commodity" + }, + { + "include": "#amount" + }, + { + "include": "#illegal" + } + ] + }, + { + "begin": "([0-9]{4})([\\-|/])([0-9]{2})([\\-|/])([0-9]{2})\\s(balance)", + "beginCaptures": { + "1": { + "name": "constant.numeric.date.year.beancount" + }, + "2": { + "name": "punctuation.separator.beancount" + }, + "3": { + "name": "constant.numeric.date.month.beancount" + }, + "4": { + "name": "punctuation.separator.beancount" + }, + "5": { + "name": "constant.numeric.date.day.beancount" + }, + "6": { + "name": "support.function.directive.beancount" + } + }, + "comment": "Balance directives", + "end": "(?=(^\\s*$|^\\S))", + "name": "meta.directive.dated.beancount", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#meta" + }, + { + "include": "#account" + }, + { + "include": "#amount" + }, + { + "include": "#illegal" + } + ] + }, + { + "begin": "([0-9]{4})([\\-|/])([0-9]{2})([\\-|/])([0-9]{2})\\s*(txn|[*!&#?%PSTCURM])\\s*(\".*?\")?\\s*(\".*?\")?", + "beginCaptures": { + "1": { + "name": "constant.numeric.date.year.beancount" + }, + "2": { + "name": "punctuation.separator.beancount" + }, + "3": { + "name": "constant.numeric.date.month.beancount" + }, + "4": { + "name": "punctuation.separator.beancount" + }, + "5": { + "name": "constant.numeric.date.day.beancount" + }, + "6": { + "name": "support.function.directive.beancount" + }, + "7": { + "name": "string.quoted.tiers.beancount" + }, + "8": { + "name": "string.quoted.narration.beancount" + } + }, + "comment": "Transaction directive", + "end": "(?=(^\\s*$|^\\S))", + "name": "meta.directive.transaction.beancount", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#posting" + }, + { + "include": "#meta" + }, + { + "include": "#tag" + }, + { + "include": "#link" + }, + { + "include": "#illegal" + } + ] + } + ], + "repository": { + "account": { + "begin": "([A-Z][a-z]+)(:)", + "beginCaptures": { + "1": { + "name": "constant.language.beancount" + }, + "2": { + "name": "punctuation.separator.beancount" + } + }, + "end": "\\s", + "name": "meta.account.beancount", + "patterns": [ + { + "begin": "(\\S+)([:]?)", + "beginCaptures": { + "1": { + "name": "variable.account.beancount" + }, + "2": { + "name": "punctuation.separator.beancount" + } + }, + "comment": "Sub accounts", + "end": "([:]?)|(\\s)", + "patterns": [ + { + "include": "$self" + }, + { + "include": "#illegal" + } + ] + } + ] + }, + "bool": { + "captures": { + "0": { + "name": "constant.language.bool.beancount" + }, + "2": { + "name": "constant.numeric.currency.beancount" + }, + "3": { + "name": "entity.type.commodity.beancount" + } + }, + "match": "TRUE|FALSE" + }, + "number": { + "captures": { + "1": { + "name": "keyword.operator.modifier.beancount" + }, + "2": { + "name": "constant.numeric.currency.beancount" + } + }, + "match": "([\\-|\\+]?)(\\d+(?:,\\d{3})*(?:\\.\\d*)?)" + }, + "amount": { + "captures": { + "1": { + "name": "keyword.operator.modifier.beancount" + }, + "2": { + "name": "constant.numeric.currency.beancount" + }, + "3": { + "name": "entity.type.commodity.beancount" + } + }, + "match": "([\\-|\\+]?)(\\d+(?:,\\d{3})*(?:\\.\\d*)?)\\s*([A-Z][A-Z0-9\\'\\.\\_\\-]{0,22}[A-Z0-9])", + "name": "meta.amount.beancount" + }, + "comments": { + "captures": { + "1": { + "name": "comment.line.beancount" + } + }, + "match": "(;.*)$" + }, + "commodity": { + "match": "([A-Z][A-Z0-9\\'\\.\\_\\-]{0,22}[A-Z0-9])", + "name": "entity.type.commodity.beancount" + }, + "cost": { + "begin": "\\{\\{?", + "beginCaptures": { + "0": { + "name": "keyword.operator.assignment.beancount" + } + }, + "end": "\\}\\}?", + "endCaptures": { + "0": { + "name": "keyword.operator.assignment.beancount" + } + }, + "name": "meta.cost.beancount", + "patterns": [ + { + "include": "#amount" + }, + { + "include": "#date" + }, + { + "match": "\\,", + "name": "punctuation.separator.beancount" + }, + { + "include": "#illegal" + } + ] + }, + "date": { + "captures": { + "1": { + "name": "constant.numeric.date.year.beancount" + }, + "2": { + "name": "punctuation.separator.beancount" + }, + "3": { + "name": "constant.numeric.date.month.beancount" + }, + "4": { + "name": "punctuation.separator.beancount" + }, + "5": { + "name": "constant.numeric.date.day.beancount" + } + }, + "match": "([0-9]{4})([\\-|/])([0-9]{2})([\\-|/])([0-9]{2})", + "name": "meta.date.beancount" + }, + "flag": { + "match": "(?<=\\s)([*!&#?%PSTCURM])(?=\\s+)", + "name": "keyword.other.beancount" + }, + "illegal": { + "match": "[^\\s]", + "name": "invalid.illegal.unrecognized.beancount" + }, + "link": { + "captures": { + "1": { + "name": "keyword.operator.link.beancount" + }, + "2": { + "name": "markup.underline.link.beancount" + } + }, + "match": "(\\^)([A-Za-z0-9\\-_/.]+)" + }, + "meta": { + "begin": "^\\s*([a-z][A-Za-z0-9\\-_]+)([:])", + "beginCaptures": { + "1": { + "name": "keyword.operator.directive.beancount" + }, + "2": { + "name": "punctuation.separator.beancount" + } + }, + "end": "\\n", + "name": "meta.meta.beancount", + "patterns": [ + { + "include": "#string" + }, + { + "include": "#account" + }, + { + "include": "#bool" + }, + { + "include": "#commodity" + }, + { + "include": "#date" + }, + { + "include": "#tag" + }, + { + "include": "#amount" + }, + { + "include": "#number" + }, + { + "include": "#comments" + }, + { + "include": "#illegal" + } + ] + }, + "posting": { + "begin": "^\\s+(?=([A-Z\\!]))", + "end": "(?=(^\\s*$|^\\S|^\\s*[A-Z]))", + "name": "meta.posting.beancount", + "patterns": [ + { + "include": "#meta" + }, + { + "include": "#comments" + }, + { + "include": "#flag" + }, + { + "include": "#account" + }, + { + "include": "#amount" + }, + { + "include": "#cost" + }, + { + "include": "#date" + }, + { + "include": "#price" + }, + { + "include": "#illegal" + } + ] + }, + "price": { + "begin": "\\@\\@?", + "beginCaptures": { + "0": { + "name": "keyword.operator.assignment.beancount" + } + }, + "end": "(?=(;|\\n))", + "name": "meta.price.beancount", + "patterns": [ + { + "include": "#amount" + }, + { + "include": "#illegal" + } + ] + }, + "string": { + "begin": "\\\"", + "end": "\\\"", + "name": "string.quoted.double.beancount", + "patterns": [ + { + "match": "\\\\.", + "name": "constant.character.escape.beancount" + } + ] + }, + "tag": { + "captures": { + "1": { + "name": "keyword.operator.tag.beancount" + }, + "2": { + "name": "entity.name.tag.beancount" + } + }, + "match": "(#)([A-Za-z0-9\\-_/.]+)" + } + }, + "scopeName": "text.beancount", + "uuid": "dbf28879-ee4d-497e-a678-a5c5a5e8d74f" +} diff --git a/docs/shiki/languages/berry.tmLanguage.json b/docs/shiki/languages/berry.tmLanguage.json new file mode 100644 index 00000000..40423d24 --- /dev/null +++ b/docs/shiki/languages/berry.tmLanguage.json @@ -0,0 +1,166 @@ +{ + "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", + "name": "berry", + "patterns": [ + { + "include": "#controls" + }, + { + "include": "#strings" + }, + { + "include": "#comment-block" + }, + { + "include": "#comments" + }, + { + "include": "#keywords" + }, + { + "include": "#function" + }, + { + "include": "#member" + }, + { + "include": "#identifier" + }, + { + "include": "#number" + }, + { + "include": "#operator" + } + ], + "repository": { + "controls": { + "patterns": [ + { + "name": "keyword.control.berry", + "match": "\\b(if|elif|else|for|while|do|end|break|continue|return|try|except|raise)\\b" + } + ] + }, + "strings": { + "patterns": [ + { + "name": "string.quoted.double.berry", + "begin": "(\"|')", + "end": "\\1", + "patterns": [ + { + "name": "constant.character.escape.berry", + "match": "(\\\\x[\\h]{2})|(\\\\[0-7]{3})|(\\\\\\\\)|(\\\\\")|(\\\\')|(\\\\a)|(\\\\b)|(\\\\f)|(\\\\n)|(\\\\r)|(\\\\t)|(\\\\v)" + } + ] + }, + { + "name": "string.quoted.other.berry", + "begin": "f(\"|')", + "end": "\\1", + "patterns": [ + { + "name": "constant.character.escape.berry", + "match": "(\\\\x[\\h]{2})|(\\\\[0-7]{3})|(\\\\\\\\)|(\\\\\")|(\\\\')|(\\\\a)|(\\\\b)|(\\\\f)|(\\\\n)|(\\\\r)|(\\\\t)|(\\\\v)" + }, + { + "name": "string.quoted.other.berry", + "match": "\\{\\{[^\\}]*\\}\\}" + }, + { + "name": "keyword.other.unit.berry", + "begin": "\\{", + "end": "\\}", + "patterns": [ + { + "include": "#keywords" + }, + { + "include": "#numbers" + }, + { + "include": "#identifier" + }, + { + "include": "#operator" + }, + { + "include": "#member" + }, + { + "include": "#function" + } + ] + } + ] + } + ] + }, + "comment-block": { + "name": "comment.berry", + "begin": "\\#\\-", + "end": "\\-#", + "patterns": [{}] + }, + "comments": { + "name": "comment.line.berry", + "begin": "\\#", + "end": "\\n", + "patterns": [{}] + }, + "keywords": { + "patterns": [ + { + "name": "keyword.berry", + "match": "\\b(var|static|def|class|true|false|nil|self|super|import|as|_class)\\b" + } + ] + }, + "identifier": { + "patterns": [ + { + "name": "identifier.berry", + "match": "\\b[_A-Za-z]\\w+\\b" + } + ] + }, + "number": { + "patterns": [ + { + "name": "constant.numeric.berry", + "match": "0x[a-fA-F0-9]+|\\d+|(\\d+\\.?|\\.\\d)\\d*([eE][+-]?\\d+)?" + } + ] + }, + "operator": { + "patterns": [ + { + "name": "keyword.operator.berry", + "match": "\\(|\\)|\\[|\\]|\\.|-|\\!|~|\\*|/|%|\\+|&|\\^|\\||<|>|=|:" + } + ] + }, + "member": { + "patterns": [ + { + "match": "\\.([a-zA-Z_][a-zA-Z0-9_]*)", + "captures": { + "0": { + "name": "entity.other.attribute-name.berry" + } + } + } + ] + }, + "function": { + "patterns": [ + { + "name": "entity.name.function.berry", + "match": "\\b([a-zA-Z_][a-zA-Z0-9_]*(?=\\s*\\())" + } + ] + } + }, + "scopeName": "source.berry" +} diff --git a/docs/shiki/languages/bibtex.tmLanguage.json b/docs/shiki/languages/bibtex.tmLanguage.json new file mode 100644 index 00000000..d3a43f8f --- /dev/null +++ b/docs/shiki/languages/bibtex.tmLanguage.json @@ -0,0 +1,321 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/jlelong/vscode-latex-basics/blob/master/syntaxes/Bibtex.tmLanguage.json", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/jlelong/vscode-latex-basics/commit/36411b38cf4ed18e02050249e2162b1316488686", + "name": "bibtex", + "scopeName": "text.bibtex", + "comment": "Grammar based on description from https://github.com/aclements/biblib\n", + "patterns": [ + { + "match": "@(?i:comment)(?=[\\s{(])", + "captures": { + "0": { + "name": "punctuation.definition.comment.bibtex" + } + }, + "name": "comment.block.at-sign.bibtex" + }, + { + "begin": "((@)(?i:preamble))\\s*(\\{)\\s*", + "beginCaptures": { + "1": { + "name": "keyword.other.preamble.bibtex" + }, + "2": { + "name": "punctuation.definition.keyword.bibtex" + }, + "3": { + "name": "punctuation.section.preamble.begin.bibtex" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.section.preamble.end.bibtex" + } + }, + "name": "meta.preamble.braces.bibtex", + "patterns": [ + { + "include": "#field_value" + } + ] + }, + { + "begin": "((@)(?i:preamble))\\s*(\\()\\s*", + "beginCaptures": { + "1": { + "name": "keyword.other.preamble.bibtex" + }, + "2": { + "name": "punctuation.definition.keyword.bibtex" + }, + "3": { + "name": "punctuation.section.preamble.begin.bibtex" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.preamble.end.bibtex" + } + }, + "name": "meta.preamble.parenthesis.bibtex", + "patterns": [ + { + "include": "#field_value" + } + ] + }, + { + "begin": "((@)(?i:string))\\s*(\\{)\\s*([a-zA-Z!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~][a-zA-Z0-9!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~]*)", + "beginCaptures": { + "1": { + "name": "keyword.other.string-constant.bibtex" + }, + "2": { + "name": "punctuation.definition.keyword.bibtex" + }, + "3": { + "name": "punctuation.section.string-constant.begin.bibtex" + }, + "4": { + "name": "variable.other.bibtex" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.section.string-constant.end.bibtex" + } + }, + "name": "meta.string-constant.braces.bibtex", + "patterns": [ + { + "include": "#field_value" + } + ] + }, + { + "begin": "((@)(?i:string))\\s*(\\()\\s*([a-zA-Z!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~][a-zA-Z0-9!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~]*)", + "beginCaptures": { + "1": { + "name": "keyword.other.string-constant.bibtex" + }, + "2": { + "name": "punctuation.definition.keyword.bibtex" + }, + "3": { + "name": "punctuation.section.string-constant.begin.bibtex" + }, + "4": { + "name": "variable.other.bibtex" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.string-constant.end.bibtex" + } + }, + "name": "meta.string-constant.parenthesis.bibtex", + "patterns": [ + { + "include": "#field_value" + } + ] + }, + { + "begin": "((@)[a-zA-Z!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~][a-zA-Z0-9!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~]*)\\s*(\\{)\\s*([^\\s,}]*)", + "beginCaptures": { + "1": { + "name": "keyword.other.entry-type.bibtex" + }, + "2": { + "name": "punctuation.definition.keyword.bibtex" + }, + "3": { + "name": "punctuation.section.entry.begin.bibtex" + }, + "4": { + "name": "entity.name.type.entry-key.bibtex" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.section.entry.end.bibtex" + } + }, + "name": "meta.entry.braces.bibtex", + "patterns": [ + { + "begin": "([a-zA-Z!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~][a-zA-Z0-9!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~]*)\\s*(\\=)", + "beginCaptures": { + "1": { + "name": "support.function.key.bibtex" + }, + "2": { + "name": "punctuation.separator.key-value.bibtex" + } + }, + "end": "(?=[,}])", + "name": "meta.key-assignment.bibtex", + "patterns": [ + { + "include": "#field_value" + } + ] + } + ] + }, + { + "begin": "((@)[a-zA-Z!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~][a-zA-Z0-9!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~]*)\\s*(\\()\\s*([^\\s,]*)", + "beginCaptures": { + "1": { + "name": "keyword.other.entry-type.bibtex" + }, + "2": { + "name": "punctuation.definition.keyword.bibtex" + }, + "3": { + "name": "punctuation.section.entry.begin.bibtex" + }, + "4": { + "name": "entity.name.type.entry-key.bibtex" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.entry.end.bibtex" + } + }, + "name": "meta.entry.parenthesis.bibtex", + "patterns": [ + { + "begin": "([a-zA-Z!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~][a-zA-Z0-9!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~]*)\\s*(\\=)", + "beginCaptures": { + "1": { + "name": "support.function.key.bibtex" + }, + "2": { + "name": "punctuation.separator.key-value.bibtex" + } + }, + "end": "(?=[,)])", + "name": "meta.key-assignment.bibtex", + "patterns": [ + { + "include": "#field_value" + } + ] + } + ] + }, + { + "begin": "[^@\\n]", + "end": "(?=@)", + "name": "comment.block.bibtex" + } + ], + "repository": { + "field_value": { + "patterns": [ + { + "include": "#string_content" + }, + { + "include": "#integer" + }, + { + "include": "#string_var" + }, + { + "name": "keyword.operator.bibtex", + "match": "#" + } + ] + }, + "integer": { + "match": "\\s*(\\d+)\\s*", + "captures": { + "1": { + "name": "constant.numeric.bibtex" + } + } + }, + "nested_braces": { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.group.begin.bibtex" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.group.end.bibtex" + } + }, + "patterns": [ + { + "include": "#nested_braces" + } + ] + }, + "string_var": { + "match": "[a-zA-Z!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~][a-zA-Z0-9!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~]*", + "captures": { + "0": { + "name": "support.variable.bibtex" + } + } + }, + "string_content": { + "patterns": [ + { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.bibtex" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.bibtex" + } + }, + "patterns": [ + { + "include": "#nested_braces" + } + ] + }, + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.bibtex" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.bibtex" + } + }, + "patterns": [ + { + "include": "#nested_braces" + } + ] + } + ] + } + } +} diff --git a/docs/shiki/languages/bicep.tmLanguage.json b/docs/shiki/languages/bicep.tmLanguage.json new file mode 100644 index 00000000..c86d98f4 --- /dev/null +++ b/docs/shiki/languages/bicep.tmLanguage.json @@ -0,0 +1,236 @@ +{ + "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", + "name": "bicep", + "scopeName": "source.bicep", + "fileTypes": [".bicep"], + "patterns": [ + { + "include": "#expression" + }, + { + "include": "#comments" + } + ], + "repository": { + "array-literal": { + "name": "meta.array-literal.bicep", + "begin": "\\[(?!(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\bfor\\b)", + "end": "]", + "patterns": [ + { + "include": "#expression" + }, + { + "include": "#comments" + } + ] + }, + "block-comment": { + "name": "comment.block.bicep", + "begin": "/\\*", + "end": "\\*/" + }, + "comments": { + "patterns": [ + { + "include": "#line-comment" + }, + { + "include": "#block-comment" + } + ] + }, + "decorator": { + "name": "meta.decorator.bicep", + "begin": "@(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*(?=\\b[_$[:alpha:]][_$[:alnum:]]*\\b)", + "end": "", + "patterns": [ + { + "include": "#expression" + }, + { + "include": "#comments" + } + ] + }, + "directive": { + "name": "meta.directive.bicep", + "begin": "#\\b[_a-zA-Z-0-9]+\\b", + "end": "$", + "patterns": [ + { + "include": "#directive-variable" + }, + { + "include": "#comments" + } + ] + }, + "directive-variable": { + "name": "keyword.control.declaration.bicep", + "match": "\\b[_a-zA-Z-0-9]+\\b" + }, + "escape-character": { + "name": "constant.character.escape.bicep", + "match": "\\\\(u{[0-9A-Fa-f]+}|n|r|t|\\\\|'|\\${)" + }, + "expression": { + "patterns": [ + { + "include": "#string-literal" + }, + { + "include": "#string-verbatim" + }, + { + "include": "#numeric-literal" + }, + { + "include": "#named-literal" + }, + { + "include": "#object-literal" + }, + { + "include": "#array-literal" + }, + { + "include": "#keyword" + }, + { + "include": "#identifier" + }, + { + "include": "#function-call" + }, + { + "include": "#decorator" + }, + { + "include": "#lambda-start" + }, + { + "include": "#directive" + } + ] + }, + "function-call": { + "name": "meta.function-call.bicep", + "begin": "(\\b[_$[:alpha:]][_$[:alnum:]]*\\b)(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\(", + "beginCaptures": { + "1": { + "name": "entity.name.function.bicep" + } + }, + "end": "\\)", + "patterns": [ + { + "include": "#expression" + }, + { + "include": "#comments" + } + ] + }, + "identifier": { + "name": "variable.other.readwrite.bicep", + "match": "\\b[_$[:alpha:]][_$[:alnum:]]*\\b(?!(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\()" + }, + "keyword": { + "name": "keyword.control.declaration.bicep", + "match": "\\b(metadata|targetScope|resource|module|param|var|output|for|in|if|existing|import|as|type|with|using|func|assert)\\b" + }, + "lambda-start": { + "name": "meta.lambda-start.bicep", + "begin": "(\\((?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\b[_$[:alpha:]][_$[:alnum:]]*\\b(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*(,(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\b[_$[:alpha:]][_$[:alnum:]]*\\b(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*)*\\)|\\((?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\)|(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*\\b[_$[:alpha:]][_$[:alnum:]]*\\b(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*)(?=(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*=>)", + "beginCaptures": { + "1": { + "name": "meta.undefined.bicep", + "patterns": [ + { + "include": "#identifier" + }, + { + "include": "#comments" + } + ] + } + }, + "end": "(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*=>" + }, + "line-comment": { + "name": "comment.line.double-slash.bicep", + "match": "//.*(?=$)" + }, + "named-literal": { + "name": "constant.language.bicep", + "match": "\\b(true|false|null)\\b" + }, + "numeric-literal": { + "name": "constant.numeric.bicep", + "match": "[0-9]+" + }, + "object-literal": { + "name": "meta.object-literal.bicep", + "begin": "{", + "end": "}", + "patterns": [ + { + "include": "#object-property-key" + }, + { + "include": "#expression" + }, + { + "include": "#comments" + } + ] + }, + "object-property-key": { + "name": "variable.other.property.bicep", + "match": "\\b[_$[:alpha:]][_$[:alnum:]]*\\b(?=(?:[ \\t\\r\\n]|\\/\\*(?:\\*(?!\\/)|[^*])*\\*\\/)*:)" + }, + "string-literal": { + "name": "string.quoted.single.bicep", + "begin": "'(?!'')", + "end": "'", + "patterns": [ + { + "include": "#escape-character" + }, + { + "include": "#string-literal-subst" + } + ] + }, + "string-literal-subst": { + "name": "meta.string-literal-subst.bicep", + "begin": "(?<!\\\\)(\\${)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.template-expression.begin.bicep" + } + }, + "end": "(})", + "endCaptures": { + "1": { + "name": "punctuation.definition.template-expression.end.bicep" + } + }, + "patterns": [ + { + "include": "#expression" + }, + { + "include": "#comments" + } + ] + }, + "string-verbatim": { + "name": "string.quoted.multi.bicep", + "begin": "'''", + "end": "'''", + "patterns": [] + } + } +} diff --git a/docs/shiki/languages/blade.tmLanguage.json b/docs/shiki/languages/blade.tmLanguage.json new file mode 100644 index 00000000..8b95a208 --- /dev/null +++ b/docs/shiki/languages/blade.tmLanguage.json @@ -0,0 +1,3867 @@ +{ + "scopeName": "text.html.php.blade", + "name": "blade", + "fileTypes": ["blade.php"], + "foldingStartMarker": "(/\\*|\\{\\s*$|<<<HTML)", + "foldingStopMarker": "(\\*/|^\\s*\\}|^HTML;)", + "injections": { + "text.html.php.blade - (meta.embedded | meta.tag | comment.block.blade), L:(text.html.php.blade meta.tag - (comment.block.blade | meta.embedded.block.blade)), L:(source.js.embedded.html - (comment.block.blade | meta.embedded.block.blade))": { + "patterns": [ + { + "include": "#blade" + }, + { + "begin": "(^\\s*)(?=<\\?(?![^?]*\\?>))", + "beginCaptures": { + "0": { + "name": "punctuation.whitespace.embedded.leading.php" + } + }, + "end": "(?!\\G)(\\s*$\\n)?", + "endCaptures": { + "0": { + "name": "punctuation.whitespace.embedded.trailing.php" + } + }, + "patterns": [ + { + "begin": "<\\?(?i:php|=)?", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + } + }, + "contentName": "source.php", + "end": "(\\?)>", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "source.php" + } + }, + "name": "meta.embedded.block.php", + "patterns": [ + { + "include": "#language" + } + ] + } + ] + }, + { + "begin": "<\\?(?i:php|=)?(?![^?]*\\?>)", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + } + }, + "contentName": "source.php", + "end": "(\\?)>", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "source.php" + } + }, + "name": "meta.embedded.block.php", + "patterns": [ + { + "include": "#language" + } + ] + }, + { + "begin": "<\\?(?i:php|=)?", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + } + }, + "end": ">", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + } + }, + "name": "meta.embedded.line.php", + "patterns": [ + { + "captures": { + "1": { + "name": "source.php" + }, + "2": { + "name": "punctuation.section.embedded.end.php" + }, + "3": { + "name": "source.php" + } + }, + "match": "\\G(\\s*)((\\?))(?=>)", + "name": "meta.special.empty-tag.php" + }, + { + "begin": "\\G", + "contentName": "source.php", + "end": "(\\?)(?=>)", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "source.php" + } + }, + "patterns": [ + { + "include": "#language" + } + ] + } + ] + } + ] + } + }, + "patterns": [ + { + "include": "text.html.basic" + } + ], + "repository": { + "blade": { + "patterns": [ + { + "begin": "{{--", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.begin.blade" + } + }, + "end": "--}}", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.end.blade" + } + }, + "name": "comment.block.blade", + "patterns": [ + { + "name": "invalid.illegal.php-code-in-comment.blade", + "begin": "(^\\s*)(?=<\\?(?![^?]*\\?>))", + "beginCaptures": { + "0": { + "name": "punctuation.whitespace.embedded.leading.php" + } + }, + "end": "(?!\\G)(\\s*$\\n)?", + "endCaptures": { + "0": { + "name": "punctuation.whitespace.embedded.trailing.php" + } + }, + "patterns": [ + { + "begin": "<\\?(?i:php|=)?", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + } + }, + "contentName": "source.php", + "end": "(\\?)>", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "source.php" + } + }, + "name": "meta.embedded.block.php", + "patterns": [ + { + "include": "#language" + } + ] + } + ] + }, + { + "begin": "<\\?(?i:php|=)?(?![^?]*\\?>)", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + } + }, + "contentName": "source.php", + "end": "(\\?)>", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "source.php" + } + }, + "name": "invalid.illegal.php-code-in-comment.blade.meta.embedded.block.php", + "patterns": [ + { + "include": "#language" + } + ] + }, + { + "begin": "<\\?(?i:php|=)?", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + } + }, + "end": ">", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + } + }, + "name": "invalid.illegal.php-code-in-comment.blade.meta.embedded.line.php", + "patterns": [ + { + "captures": { + "1": { + "name": "source.php" + }, + "2": { + "name": "punctuation.section.embedded.end.php" + }, + "3": { + "name": "source.php" + } + }, + "match": "\\G(\\s*)((\\?))(?=>)", + "name": "meta.special.empty-tag.php" + }, + { + "begin": "\\G", + "contentName": "source.php", + "end": "(\\?)(?=>)", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "source.php" + } + }, + "patterns": [ + { + "include": "#language" + } + ] + } + ] + } + ] + }, + { + "begin": "(?<!@){{{", + "beginCaptures": { + "0": { + "name": "support.function.construct.begin.blade" + } + }, + "contentName": "source.php", + "end": "}}}", + "endCaptures": { + "0": { + "name": "support.function.construct.end.blade" + }, + "1": { + "name": "source.php" + } + }, + "name": "meta.function.echo.blade", + "patterns": [ + { + "include": "#language" + } + ] + }, + { + "begin": "(?<![@{]){{", + "beginCaptures": { + "0": { + "name": "support.function.construct.begin.blade" + } + }, + "contentName": "source.php", + "end": "}}", + "endCaptures": { + "0": { + "name": "support.function.construct.end.blade" + }, + "1": { + "name": "source.php" + } + }, + "name": "meta.function.echo.blade", + "patterns": [ + { + "include": "#language" + } + ] + }, + { + "begin": "(?<!@){!!", + "beginCaptures": { + "0": { + "name": "support.function.construct.begin.blade" + } + }, + "contentName": "source.php", + "end": "!!}", + "endCaptures": { + "0": { + "name": "support.function.construct.end.blade" + }, + "1": { + "name": "source.php" + } + }, + "name": "meta.function.echo.blade", + "patterns": [ + { + "include": "#language" + } + ] + }, + { + "begin": "(@){{", + "beginCaptures": { + "0": { + "name": "begin.bracket.round.blade" + }, + "1": { + "name": "variable.other.index.php" + } + }, + "contentName": "source.php", + "end": "}}", + "endCaptures": { + "0": { + "name": "end.bracket.round.blade" + }, + "1": { + "name": "source.php" + } + }, + "name": "meta.function.echo.blade", + "patterns": [ + { + "include": "#language" + } + ] + }, + { + "begin": "(?x)(?<![A-Za-z0-9_@]) (@ (?i:\n auth\n |break\n |can\n |cannot\n |case\n |choice\n |component\n |continue\n |dd\n |dump\n |each\n |elsecan\n |elsecannot\n |elseif\n |empty\n |error\n |extends\n |for\n |foreach\n |forelse\n |guest\n |hassection\n |if\n |include\n |includefirst\n |includeif\n |includeunless\n |includewhen\n |inject\n |isset\n |json\n |lang\n |once\n |prepend\n |push\n |section\n |sectionMissing\n |slot\n |stack\n |switch\n |unless\n |unset\n |while\n |yield\n |servers\n |task\n |story\n |finished\n |production\n |slack\n |method\n |props\n |env\n |livewire\n |php\n )[\\t ]*\n)(\\() # Followed by opening parentheses\n", + "beginCaptures": { + "1": { + "name": "keyword.blade" + }, + "2": { + "name": "begin.bracket.round.blade.php" + } + }, + "contentName": "source.php", + "end": "\\)", + "endCaptures": { + "0": { + "name": "end.bracket.round.blade.php" + } + }, + "name": "meta.directive.blade", + "patterns": [ + { + "include": "#language" + } + ] + }, + { + "begin": "(?x)(?<![A-Za-z0-9_@]) (@ (?i:\n append\n |default\n |else\n |endauth\n |endcan\n |endcannot\n |endcomponent\n |endempty\n |enderror\n |endfor\n |endforeach\n |endforelse\n |endguest\n |endif\n |endisset\n |endlang\n |endonce\n |endprepend\n |endpush\n |endsection\n |endslot\n |endswitch\n |endunless\n |endwhile\n |overwrite\n |parent\n |show\n |stop\n |endtask\n |endstory\n |endfinished\n |endproduction\n |endenv\n )[\\t ]*\n)(\\() # Followed by opening parentheses\n", + "beginCaptures": { + "1": { + "name": "keyword.blade" + }, + "2": { + "name": "begin.bracket.round.blade.php" + } + }, + "contentName": "comment.blade", + "end": "\\)", + "endCaptures": { + "0": { + "name": "end.bracket.round.blade.php" + } + }, + "name": "meta.directive.blade", + "patterns": [ + { + "include": "#balance_brackets" + } + ] + }, + { + "match": "(?x)(?<![A-Za-z0-9_@]) @(?: append\n |break\n |continue\n |csrf\n |default\n |each\n |else\n |overwrite\n |parent\n |sectionMissing\n |show\n |stack\n |stop\n |livewireStyles\n |livewireScripts\n)\\b\n", + "name": "keyword.blade" + }, + { + "match": "(?x)(?<![A-Za-z0-9_@]) @(end)? (?i: auth\n |can\n |cannot\n |component\n |empty\n |error\n |for\n |foreach\n |forelse\n |guest\n |if\n |isset\n |lang\n |prepend\n |push\n |section\n |slot\n |switch\n |unless\n |verbatim\n |while\n |task\n |story\n |finished\n |production\n |env\n |once\n)\\b\n", + "name": "keyword.blade" + }, + { + "begin": "(?<![A-Za-z0-9_@])@(?i:php|setup)\\b", + "end": "(?<![A-Za-z0-9_@])(?=@(?i:endphp|endsetup)\\b)", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + } + }, + "contentName": "source.php", + "name": "meta.embedded.block.blade", + "patterns": [ + { + "include": "#language" + } + ] + }, + { + "begin": "(?x)(?<![A-Za-z0-9_@]) (@(?i:endphp|endsetup)[\\t ]*) (\\()", + "beginCaptures": { + "1": { + "name": "punctuation.section.embedded.end.php" + }, + "2": { + "name": "begin.bracket.round.blade.php" + } + }, + "contentName": "comment.blade", + "end": "\\)", + "endCaptures": { + "0": { + "name": "end.bracket.round.blade.php" + } + }, + "name": "meta.directive.blade", + "patterns": [ + { + "include": "#balance_brackets" + } + ] + }, + { + "match": "(?x)(?<![A-Za-z0-9_@]) @(?:(?i)endphp|endsetup)\\b", + "name": "punctuation.section.embedded.end.php" + }, + { + "begin": "(?x)(?<![A-Za-z0-9_@]) (@\\w+(?:::w+)?[\\t ]*) (\\() # Followed by opening parentheses", + "beginCaptures": { + "1": { + "name": "entity.name.function.blade" + }, + "2": { + "name": "begin.bracket.round.blade.php" + } + }, + "contentName": "source.php", + "end": "\\)", + "endCaptures": { + "0": { + "name": "end.bracket.round.blade.php" + } + }, + "name": "meta.directive.custom.blade", + "patterns": [ + { + "include": "#language" + } + ] + }, + { + "match": "(?x)(?<![A-Za-z0-9_@]) @\\w+(?:::w+)?\\b", + "name": "entity.name.function.blade" + } + ] + }, + "balance_brackets": { + "patterns": [ + { + "begin": "\\(", + "end": "\\)", + "patterns": [ + { + "include": "#balance_brackets" + } + ] + }, + { + "match": "[^()]+" + } + ] + }, + "class-builtin": { + "patterns": [ + { + "match": "(?xi)\n(\\\\)?\\b\n((APC|Append)Iterator|Array(Access|Iterator|Object)\n|Bad(Function|Method)CallException\n|(Caching|CallbackFilter)Iterator|Collator|Collectable|Cond|Countable|CURLFile\n|Date(Interval|Period|Time(Interface|Immutable|Zone)?)?|Directory(Iterator)?|DomainException\n|DOM(Attr|CdataSection|CharacterData|Comment|Document(Fragment)?|Element|EntityReference\n |Implementation|NamedNodeMap|Node(list)?|ProcessingInstruction|Text|XPath)\n|(Error)?Exception|EmptyIterator\n|finfo\n|Ev(Check|Child|Embed|Fork|Idle|Io|Loop|Periodic|Prepare|Signal|Stat|Timer|Watcher)?\n|Event(Base|Buffer(Event)?|SslContext|Http(Request|Connection)?|Config|DnsBase|Util|Listener)?\n|FANNConnection|(Filter|Filesystem)Iterator\n|Gender\\\\Gender|GlobIterator|Gmagick(Draw|Pixel)?\n|Haru(Annotation|Destination|Doc|Encoder|Font|Image|Outline|Page)\n|Http((Inflate|Deflate)?Stream|Message|Request(Pool)?|Response|QueryString)\n|HRTime\\\\(PerformanceCounter|StopWatch)\n|Intl(Calendar|((CodePoint|RuleBased)?Break|Parts)?Iterator|DateFormatter|TimeZone)\n|Imagick(Draw|Pixel(Iterator)?)?\n|InfiniteIterator|InvalidArgumentException|Iterator(Aggregate|Iterator)?\n|JsonSerializable\n|KTaglib_(MPEG_(File|AudioProperties)|Tag|ID3v2_(Tag|(AttachedPicture)?Frame))\n|Lapack|(Length|Locale|Logic)Exception|LimitIterator|Lua(Closure)?\n|Mongo(BinData|Client|Code|Collection|CommandCursor|Cursor(Exception)?|Date|DB(Ref)?|DeleteBatch\n |Grid(FS(Cursor|File)?)|Id|InsertBatch|Int(32|64)|Log|Pool|Regex|ResultException|Timestamp\n |UpdateBatch|Write(Batch|ConcernException))?\n|Memcache(d)?|MessageFormatter|MultipleIterator|Mutex\n|mysqli(_(driver|stmt|warning|result))?\n|MysqlndUh(Connection|PreparedStatement)\n|NoRewindIterator|Normalizer|NumberFormatter\n|OCI-(Collection|Lob)|OuterIterator|(OutOf(Bounds|Range)|Overflow)Exception\n|ParentIterator|PDO(Statement)?|Phar(Data|FileInfo)?|php_user_filter|Pool\n|QuickHash(Int(Set|StringHash)|StringIntHash)\n|Recursive(Array|Caching|Directory|Fallback|Filter|Iterator|Regex|Tree)?Iterator\n|Reflection(Class|Function(Abstract)?|Method|Object|Parameter|Property|(Zend)?Extension)?\n|RangeException|Reflector|RegexIterator|ResourceBundle|RuntimeException|RRD(Creator|Graph|Updater)\n|SAM(Connection|Message)|SCA(_(SoapProxy|LocalProxy))?\n|SDO_(DAS_(ChangeSummary|Data(Factory|Object)|Relational|Setting|XML(_Document)?)\n |Data(Factory|Object)|Exception|List|Model_(Property|ReflectionDataObject|Type)|Sequence)\n|SeekableIterator|Serializable|SessionHandler(Interface)?|SimpleXML(Iterator|Element)|SNMP\n|Soap(Client|Fault|Header|Param|Server|Var)\n|SphinxClient|Spoofchecker\n|Spl(DoublyLinkedList|Enum|File(Info|Object)|FixedArray|(Max|Min)?Heap|Observer|ObjectStorage\n |(Priority)?Queue|Stack|Subject|Type|TempFileObject)\n|SQLite(3(Result|Stmt)?|Database|Result|Unbuffered)\n|stdClass|streamWrapper|SVM(Model)?|Swish(Result(s)?|Search)?|Sync(Event|Mutex|ReaderWriter|Semaphore)\n|Thread(ed)?|tidy(Node)?|TokyoTyrant(Table|Iterator|Query)?|Transliterator|Traversable\n|UConverter|(Underflow|UnexpectedValue)Exception\n|V8Js(Exception)?|Varnish(Admin|Log|Stat)\n|Worker|Weak(Map|Ref)\n|XML(Diff\\\\(Base|DOM|File|Memory)|Reader|Writer)|XsltProcessor\n|Yaf_(Route_(Interface|Map|Regex|Rewrite|Simple|Supervar)\n |Action_Abstract|Application|Config_(Simple|Ini|Abstract)|Controller_Abstract\n |Dispatcher|Exception|Loader|Plugin_Abstract|Registry|Request_(Abstract|Simple|Http)\n |Response_Abstract|Router|Session|View_(Simple|Interface))\n|Yar_(Client(_Exception)?|Concurrent_Client|Server(_Exception)?)\n|ZipArchive|ZMQ(Context|Device|Poll|Socket)?)\n\\b", + "name": "support.class.builtin.php", + "captures": { + "1": { + "name": "punctuation.separator.inheritance.php" + } + } + } + ] + }, + "class-name": { + "patterns": [ + { + "begin": "(?i)(?=\\\\?[a-z_0-9]+\\\\)", + "end": "(?i)([a-z_][a-z_0-9]*)?(?=[^a-z0-9_\\\\])", + "endCaptures": { + "1": { + "name": "support.class.php" + } + }, + "patterns": [ + { + "include": "#namespace" + } + ] + }, + { + "include": "#class-builtin" + }, + { + "begin": "(?=[\\\\a-zA-Z_])", + "end": "(?i)([a-z_][a-z_0-9]*)?(?=[^a-z0-9_\\\\])", + "endCaptures": { + "1": { + "name": "support.class.php" + } + }, + "patterns": [ + { + "include": "#namespace" + } + ] + } + ] + }, + "comments": { + "patterns": [ + { + "begin": "/\\*\\*(?=\\s)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.php" + } + }, + "end": "\\*/", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.php" + } + }, + "name": "comment.block.documentation.phpdoc.php", + "patterns": [ + { + "include": "#php_doc" + } + ] + }, + { + "begin": "/\\*", + "captures": { + "0": { + "name": "punctuation.definition.comment.php" + } + }, + "end": "\\*/", + "name": "comment.block.php" + }, + { + "begin": "(^\\s+)?(?=//)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.php" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": "//", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.php" + } + }, + "end": "\\n|(?=\\?>)", + "name": "comment.line.double-slash.php" + } + ] + }, + { + "begin": "(^\\s+)?(?=#)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.php" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": "#", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.php" + } + }, + "end": "\\n|(?=\\?>)", + "name": "comment.line.number-sign.php" + } + ] + } + ] + }, + "constants": { + "patterns": [ + { + "match": "(?i)\\b(TRUE|FALSE|NULL|__(FILE|DIR|FUNCTION|CLASS|METHOD|LINE|NAMESPACE)__|ON|OFF|YES|NO|NL|BR|TAB)\\b", + "name": "constant.language.php" + }, + { + "match": "(?x)\n(\\\\)?\\b\n(DEFAULT_INCLUDE_PATH\n|EAR_(INSTALL|EXTENSION)_DIR\n|E_(ALL|COMPILE_(ERROR|WARNING)|CORE_(ERROR|WARNING)|DEPRECATED|ERROR|NOTICE\n |PARSE|RECOVERABLE_ERROR|STRICT|USER_(DEPRECATED|ERROR|NOTICE|WARNING)|WARNING)\n|PHP_(ROUND_HALF_(DOWN|EVEN|ODD|UP)|(MAJOR|MINOR|RELEASE)_VERSION|MAXPATHLEN\n |BINDIR|SHLIB_SUFFIX|SYSCONFDIR|SAPI|CONFIG_FILE_(PATH|SCAN_DIR)\n |INT_(MAX|SIZE)|ZTS|OS|OUTPUT_HANDLER_(START|CONT|END)|DEBUG|DATADIR\n |URL_(SCHEME|HOST|USER|PORT|PASS|PATH|QUERY|FRAGMENT)|PREFIX\n |EXTRA_VERSION|EXTENSION_DIR|EOL|VERSION(_ID)?\n |WINDOWS_(NT_(SERVER|DOMAIN_CONTROLLER|WORKSTATION)\n |VERSION_(MAJOR|MINOR)|BUILD|SUITEMASK|SP_(MAJOR|MINOR)\n |PRODUCTTYPE|PLATFORM)\n |LIBDIR|LOCALSTATEDIR)\n|STD(ERR|IN|OUT)|ZEND_(DEBUG_BUILD|THREAD_SAFE))\n\\b", + "name": "support.constant.core.php", + "captures": { + "1": { + "name": "punctuation.separator.inheritance.php" + } + } + }, + { + "match": "(?x)\n(\\\\)?\\b\n(__COMPILER_HALT_OFFSET__|AB(MON_(1|2|3|4|5|6|7|8|9|10|11|12)|DAY[1-7])\n|AM_STR|ASSERT_(ACTIVE|BAIL|CALLBACK_QUIET_EVAL|WARNING)|ALT_DIGITS\n|CASE_(UPPER|LOWER)|CHAR_MAX|CONNECTION_(ABORTED|NORMAL|TIMEOUT)|CODESET|COUNT_(NORMAL|RECURSIVE)\n|CREDITS_(ALL|DOCS|FULLPAGE|GENERAL|GROUP|MODULES|QA|SAPI)\n|CRYPT_(BLOWFISH|EXT_DES|MD5|SHA(256|512)|SALT_LENGTH|STD_DES)|CURRENCY_SYMBOL\n|D_(T_)?FMT|DATE_(ATOM|COOKIE|ISO8601|RFC(822|850|1036|1123|2822|3339)|RSS|W3C)\n|DAY_[1-7]|DECIMAL_POINT|DIRECTORY_SEPARATOR\n|ENT_(COMPAT|IGNORE|(NO)?QUOTES)|EXTR_(IF_EXISTS|OVERWRITE|PREFIX_(ALL|IF_EXISTS|INVALID|SAME)|REFS|SKIP)\n|ERA(_(D_(T_)?FMT)|T_FMT|YEAR)?|FRAC_DIGITS|GROUPING|HASH_HMAC|HTML_(ENTITIES|SPECIALCHARS)\n|INF|INFO_(ALL|CREDITS|CONFIGURATION|ENVIRONMENT|GENERAL|LICENSEMODULES|VARIABLES)\n|INI_(ALL|CANNER_(NORMAL|RAW)|PERDIR|SYSTEM|USER)|INT_(CURR_SYMBOL|FRAC_DIGITS)\n|LC_(ALL|COLLATE|CTYPE|MESSAGES|MONETARY|NUMERIC|TIME)|LOCK_(EX|NB|SH|UN)\n|LOG_(ALERT|AUTH(PRIV)?|CRIT|CRON|CONS|DAEMON|DEBUG|EMERG|ERR|INFO|LOCAL[1-7]|LPR|KERN|MAIL\n |NEWS|NODELAY|NOTICE|NOWAIT|ODELAY|PID|PERROR|WARNING|SYSLOG|UCP|USER)\n|M_(1_PI|SQRT(1_2|2|3|PI)|2_(SQRT)?PI|PI(_(2|4))?|E(ULER)?|LN(10|2|PI)|LOG(10|2)E)\n|MON_(1|2|3|4|5|6|7|8|9|10|11|12|DECIMAL_POINT|GROUPING|THOUSANDS_SEP)\n|N_(CS_PRECEDES|SEP_BY_SPACE|SIGN_POSN)|NAN|NEGATIVE_SIGN|NO(EXPR|STR)\n|P_(CS_PRECEDES|SEP_BY_SPACE|SIGN_POSN)|PM_STR|POSITIVE_SIGN\n|PATH(_SEPARATOR|INFO_(EXTENSION|(BASE|DIR|FILE)NAME))|RADIXCHAR\n|SEEK_(CUR|END|SET)|SORT_(ASC|DESC|LOCALE_STRING|REGULAR|STRING)|STR_PAD_(BOTH|LEFT|RIGHT)\n|T_FMT(_AMPM)?|THOUSEP|THOUSANDS_SEP\n|UPLOAD_ERR_(CANT_WRITE|EXTENSION|(FORM|INI)_SIZE|NO_(FILE|TMP_DIR)|OK|PARTIAL)\n|YES(EXPR|STR))\n\\b", + "name": "support.constant.std.php", + "captures": { + "1": { + "name": "punctuation.separator.inheritance.php" + } + } + }, + { + "match": "(?x)\n(\\\\)?\\b\n(GLOB_(MARK|BRACE|NO(SORT|CHECK|ESCAPE)|ONLYDIR|ERR|AVAILABLE_FLAGS)\n|XML_(SAX_IMPL|(DTD|DOCUMENT(_(FRAG|TYPE))?|HTML_DOCUMENT|NOTATION|NAMESPACE_DECL|PI|COMMENT|DATA_SECTION|TEXT)_NODE\n |OPTION_(SKIP_(TAGSTART|WHITE)|CASE_FOLDING|TARGET_ENCODING)\n |ERROR_((BAD_CHAR|(ATTRIBUTE_EXTERNAL|BINARY|PARAM|RECURSIVE)_ENTITY)_REF|MISPLACED_XML_PI|SYNTAX|NONE\n |NO_(MEMORY|ELEMENTS)|TAG_MISMATCH|INCORRECT_ENCODING|INVALID_TOKEN|DUPLICATE_ATTRIBUTE\n |UNCLOSED_(CDATA_SECTION|TOKEN)|UNDEFINED_ENTITY|UNKNOWN_ENCODING|JUNK_AFTER_DOC_ELEMENT\n |PARTIAL_CHAR|EXTERNAL_ENTITY_HANDLING|ASYNC_ENTITY)\n |ENTITY_(((REF|DECL)_)?NODE)|ELEMENT(_DECL)?_NODE|LOCAL_NAMESPACE|ATTRIBUTE_(NMTOKEN(S)?|NOTATION|NODE)\n |CDATA|ID(REF(S)?)?|DECL_NODE|ENTITY|ENUMERATION)\n|MHASH_(RIPEMD(128|160|256|320)|GOST|MD(2|4|5)|SHA(1|224|256|384|512)|SNEFRU256|HAVAL(128|160|192|224|256)\n |CRC23(B)?|TIGER(128|160)?|WHIRLPOOL|ADLER32)\n|MYSQL_(BOTH|NUM|CLIENT_(SSL|COMPRESS|IGNORE_SPACE|INTERACTIVE|ASSOC))\n|MYSQLI_(REPORT_(STRICT|INDEX|OFF|ERROR|ALL)|REFRESH_(GRANT|MASTER|BACKUP_LOG|STATUS|SLAVE|HOSTS|THREADS|TABLES|LOG)\n |READ_DEFAULT_(FILE|GROUP)|(GROUP|MULTIPLE_KEY|BINARY|BLOB)_FLAG|BOTH\n |STMT_ATTR_(CURSOR_TYPE|UPDATE_MAX_LENGTH|PREFETCH_ROWS)|STORE_RESULT\n |SERVER_QUERY_(NO_((GOOD_)?INDEX_USED)|WAS_SLOW)|SET_(CHARSET_NAME|FLAG)\n |NO_(DEFAULT_VALUE_FLAG|DATA)|NOT_NULL_FLAG|NUM(_FLAG)?\n |CURSOR_TYPE_(READ_ONLY|SCROLLABLE|NO_CURSOR|FOR_UPDATE)\n |CLIENT_(SSL|NO_SCHEMA|COMPRESS|IGNORE_SPACE|INTERACTIVE|FOUND_ROWS)\n |TYPE_(GEOMETRY|((MEDIUM|LONG|TINY)_)?BLOB|BIT|SHORT|STRING|SET|YEAR|NULL|NEWDECIMAL|NEWDATE|CHAR\n |TIME(STAMP)?|TINY|INT24|INTERVAL|DOUBLE|DECIMAL|DATE(TIME)?|ENUM|VAR_STRING|FLOAT|LONG(LONG)?)\n |TIME_STAMP_FLAG|INIT_COMMAND|ZEROFILL_FLAG|ON_UPDATE_NOW_FLAG\n |OPT_(NET_((CMD|READ)_BUFFER_SIZE)|CONNECT_TIMEOUT|INT_AND_FLOAT_NATIVE|LOCAL_INFILE)\n |DEBUG_TRACE_ENABLED|DATA_TRUNCATED|USE_RESULT|(ENUM|(PART|PRI|UNIQUE)_KEY|UNSIGNED)_FLAG\n |ASSOC|ASYNC|AUTO_INCREMENT_FLAG)\n|MCRYPT_(RC(2|6)|RIJNDAEL_(128|192|256)|RAND|GOST|XTEA|MODE_(STREAM|NOFB|CBC|CFB|OFB|ECB)|MARS\n |BLOWFISH(_COMPAT)?|SERPENT|SKIPJACK|SAFER(64|128|PLUS)|CRYPT|CAST_(128|256)|TRIPLEDES|THREEWAY\n |TWOFISH|IDEA|(3)?DES|DECRYPT|DEV_(U)?RANDOM|PANAMA|ENCRYPT|ENIGNA|WAKE|LOKI97|ARCFOUR(_IV)?)\n|STREAM_(REPORT_ERRORS|MUST_SEEK|MKDIR_RECURSIVE|BUFFER_(NONE|FULL|LINE)|SHUT_(RD)?WR\n |SOCK_(RDM|RAW|STREAM|SEQPACKET|DGRAM)|SERVER_(BIND|LISTEN)\n |NOTIFY_(REDIRECTED|RESOLVE|MIME_TYPE_IS|SEVERITY_(INFO|ERR|WARN)|COMPLETED|CONNECT|PROGRESS\n |FILE_SIZE_IS|FAILURE|AUTH_(REQUIRED|RESULT))\n |CRYPTO_METHOD_((SSLv2(3)?|SSLv3|TLS)_(CLIENT|SERVER))|CLIENT_((ASYNC_)?CONNECT|PERSISTENT)\n |CAST_(AS_STREAM|FOR_SELECT)|(IGNORE|IS)_URL|IPPROTO_(RAW|TCP|ICMP|IP|UDP)|OOB\n |OPTION_(READ_(BUFFER|TIMEOUT)|BLOCKING|WRITE_BUFFER)|URL_STAT_(LINK|QUIET)|USE_PATH\n |PEEK|PF_(INET(6)?|UNIX)|ENFORCE_SAFE_MODE|FILTER_(ALL|READ|WRITE))\n|SUNFUNCS_RET_(DOUBLE|STRING|TIMESTAMP)\n|SQLITE_(READONLY|ROW|MISMATCH|MISUSE|BOTH|BUSY|SCHEMA|NOMEM|NOTFOUND|NOTADB|NOLFS|NUM|CORRUPT\n |CONSTRAINT|CANTOPEN|TOOBIG|INTERRUPT|INTERNAL|IOERR|OK|DONE|PROTOCOL|PERM|ERROR|EMPTY\n |FORMAT|FULL|LOCKED|ABORT|ASSOC|AUTH)\n|SQLITE3_(BOTH|BLOB|NUM|NULL|TEXT|INTEGER|OPEN_(READ(ONLY|WRITE)|CREATE)|FLOAT_ASSOC)\n|CURL(M_(BAD_((EASY)?HANDLE)|CALL_MULTI_PERFORM|INTERNAL_ERROR|OUT_OF_MEMORY|OK)\n |MSG_DONE|SSH_AUTH_(HOST|NONE|DEFAULT|PUBLICKEY|PASSWORD|KEYBOARD)\n |CLOSEPOLICY_(SLOWEST|CALLBACK|OLDEST|LEAST_(RECENTLY_USED|TRAFFIC)\n |INFO_(REDIRECT_(COUNT|TIME)|REQUEST_SIZE|SSL_VERIFYRESULT|STARTTRANSFER_TIME\n |(SIZE|SPEED)_(DOWNLOAD|UPLOAD)|HTTP_CODE|HEADER_(OUT|SIZE)|NAMELOOKUP_TIME\n |CONNECT_TIME|CONTENT_(TYPE|LENGTH_(DOWNLOAD|UPLOAD))|CERTINFO|TOTAL_TIME\n |PRIVATE|PRETRANSFER_TIME|EFFECTIVE_URL|FILETIME)\n |OPT_(RESUME_FROM|RETURNTRANSFER|REDIR_PROTOCOLS|REFERER|READ(DATA|FUNCTION)|RANGE|RANDOM_FILE\n |MAX(CONNECTS|REDIRS)|BINARYTRANSFER|BUFFERSIZE\n |SSH_(HOST_PUBLIC_KEY_MD5|(PRIVATE|PUBLIC)_KEYFILE)|AUTH_TYPES)\n |SSL(CERT(TYPE|PASSWD)?|ENGINE(_DEFAULT)?|VERSION|KEY(TYPE|PASSWD)?)\n |SSL_(CIPHER_LIST|VERIFY(HOST|PEER))\n |STDERR|HTTP(GET|HEADER|200ALIASES|_VERSION|PROXYTUNNEL|AUTH)\n |HEADER(FUNCTION)?|NO(BODY|SIGNAL|PROGRESS)|NETRC|CRLF|CONNECTTIMEOUT(_MS)?\n |COOKIE(SESSION|JAR|FILE)?|CUSTOMREQUEST|CERTINFO|CLOSEPOLICY|CA(INFO|PATH)|TRANSFERTEXT\n |TCP_NODELAY|TIME(CONDITION|OUT(_MS)?|VALUE)|INTERFACE|INFILE(SIZE)?|IPRESOLVE\n |DNS_(CACHE_TIMEOUT|USE_GLOBAL_CACHE)|URL|USER(AGENT|PWD)|UNRESTRICTED_AUTH|UPLOAD\n |PRIVATE|PROGRESSFUNCTION|PROXY(TYPE|USERPWD|PORT|AUTH)?|PROTOCOLS|PORT\n |POST(REDIR|QUOTE|FIELDS)?|PUT|EGDSOCKET|ENCODING|VERBOSE|KRB4LEVEL|KEYPASSWD|QUOTE|FRESH_CONNECT\n |FTP(APPEND|LISTONLY|PORT|SSLAUTH)\n |FTP_(SSL|SKIP_PASV_IP|CREATE_MISSING_DIRS|USE_EP(RT|SV)|FILEMETHOD)\n |FILE(TIME)?|FORBID_REUSE|FOLLOWLOCATION|FAILONERROR|WRITE(FUNCTION|HEADER)|LOW_SPEED_(LIMIT|TIME)\n |AUTOREFERER)\n |PROXY_(HTTP|SOCKS(4|5))|PROTO_(SCP|SFTP|HTTP(S)?|TELNET|TFTP|DICT|FTP(S)?|FILE|LDAP(S)?|ALL)\n |E_((RECV|READ)_ERROR|GOT_NOTHING|MALFORMAT_USER\n |BAD_(CONTENT_ENCODING|CALLING_ORDER|PASSWORD_ENTERED|FUNCTION_ARGUMENT)\n |SSH|SSL_(CIPHER|CONNECT_ERROR|CERTPROBLEM|CACERT|PEER_CERTIFICATE|ENGINE_(NOTFOUND|SETFAILED))\n |SHARE_IN_USE|SEND_ERROR|HTTP_(RANGE_ERROR|NOT_FOUND|PORT_FAILED|POST_ERROR)\n |COULDNT_(RESOLVE_(HOST|PROXY)|CONNECT)|TOO_MANY_REDIRECTS|TELNET_OPTION_SYNTAX|OBSOLETE\n |OUT_OF_MEMORY|OPERATION|TIMEOUTED|OK|URL_MALFORMAT(_USER)?|UNSUPPORTED_PROTOCOL\n |UNKNOWN_TELNET_OPTION|PARTIAL_FILE\n |FTP_(BAD_DOWNLOAD_RESUME|SSL_FAILED|COULDNT_(RETR_FILE|GET_SIZE|STOR_FILE|SET_(BINARY|ASCII)|USE_REST)\n |CANT_(GET_HOST|RECONNECT)|USER_PASSWORD_INCORRECT|PORT_FAILED|QUOTE_ERROR|WRITE_ERROR\n |WEIRD_((PASS|PASV|SERVER|USER)_REPLY|227_FORMAT)|ACCESS_DENIED)\n |FILESIZE_EXCEEDED|FILE_COULDNT_READ_FILE|FUNCTION_NOT_FOUND|FAILED_INIT|WRITE_ERROR|LIBRARY_NOT_FOUND\n |LDAP_(SEARCH_FAILED|CANNOT_BIND|INVALID_URL)|ABORTED_BY_CALLBACK)\n |VERSION_NOW\n |FTP(METHOD_(MULTI|SINGLE|NO)CWD|SSL_(ALL|NONE|CONTROL|TRY)|AUTH_(DEFAULT|SSL|TLS))\n |AUTH_(ANY(SAFE)?|BASIC|DIGEST|GSSNEGOTIATE|NTLM))\n|CURL_(HTTP_VERSION_(1_(0|1)|NONE)|NETRC_(REQUIRED|IGNORED|OPTIONAL)|TIMECOND_(IF(UN)?MODSINCE|LASTMOD)\n |IPRESOLVE_(V(4|6)|WHATEVER)|VERSION_(SSL|IPV6|KERBEROS4|LIBZ))\n|IMAGETYPE_(GIF|XBM|BMP|SWF|COUNT|TIFF_(MM|II)|ICO|IFF|UNKNOWN|JB2|JPX|JP2|JPC|JPEG(2000)?|PSD|PNG|WBMP)\n|INPUT_(REQUEST|GET|SERVER|SESSION|COOKIE|POST|ENV)|ICONV_(MIME_DECODE_(STRICT|CONTINUE_ON_ERROR)|IMPL|VERSION)\n|DNS_(MX|SRV|SOA|HINFO|NS|NAPTR|CNAME|TXT|PTR|ANY|ALL|AAAA|A(6)?)\n|DOM(STRING_SIZE_ERR)\n|DOM_((SYNTAX|HIERARCHY_REQUEST|NO_(MODIFICATION_ALLOWED|DATA_ALLOWED)|NOT_(FOUND|SUPPORTED)|NAMESPACE\n |INDEX_SIZE|USE_ATTRIBUTE|VALID_(MODIFICATION|STATE|CHARACTER|ACCESS)|PHP|VALIDATION|WRONG_DOCUMENT)_ERR)\n|JSON_(HEX_(TAG|QUOT|AMP|APOS)|NUMERIC_CHECK|ERROR_(SYNTAX|STATE_MISMATCH|NONE|CTRL_CHAR|DEPTH|UTF8)|FORCE_OBJECT)\n|PREG_((D_UTF8(_OFFSET)?|NO|INTERNAL|(BACKTRACK|RECURSION)_LIMIT)_ERROR|GREP_INVERT\n |SPLIT_(NO_EMPTY|(DELIM|OFFSET)_CAPTURE)|SET_ORDER|OFFSET_CAPTURE|PATTERN_ORDER)\n|PSFS_(PASS_ON|ERR_FATAL|FEED_ME|FLAG_(NORMAL|FLUSH_(CLOSE|INC)))\n|PCRE_VERSION|POSIX_((F|R|W|X)_OK|S_IF(REG|BLK|SOCK|CHR|IFO))\n|FNM_(NOESCAPE|CASEFOLD|PERIOD|PATHNAME)\n|FILTER_(REQUIRE_(SCALAR|ARRAY)|NULL_ON_FAILURE|CALLBACK|DEFAULT|UNSAFE_RAW\n |SANITIZE_(MAGIC_QUOTES|STRING|STRIPPED|SPECIAL_CHARS|NUMBER_(INT|FLOAT)|URL\n |EMAIL|ENCODED|FULL_SPCIAL_CHARS)\n |VALIDATE_(REGEXP|BOOLEAN|INT|IP|URL|EMAIL|FLOAT)\n |FORCE_ARRAY\n |FLAG_(SCHEME_REQUIRED|STRIP_(BACKTICK|HIGH|LOW)|HOST_REQUIRED|NONE|NO_(RES|PRIV)_RANGE|ENCODE_QUOTES\n |IPV(4|6)|PATH_REQUIRED|EMPTY_STRING_NULL|ENCODE_(HIGH|LOW|AMP)|QUERY_REQUIRED\n |ALLOW_(SCIENTIFIC|HEX|THOUSAND|OCTAL|FRACTION)))\n|FILE_(BINARY|SKIP_EMPTY_LINES|NO_DEFAULT_CONTEXT|TEXT|IGNORE_NEW_LINES|USE_INCLUDE_PATH|APPEND)\n|FILEINFO_(RAW|MIME(_(ENCODING|TYPE))?|SYMLINK|NONE|CONTINUE|DEVICES|PRESERVE_ATIME)\n|FORCE_(DEFLATE|GZIP)\n|LIBXML_(XINCLUDE|NSCLEAN|NO(XMLDECL|BLANKS|NET|CDATA|ERROR|EMPTYTAG|ENT|WARNING)\n |COMPACT|DTD(VALID|LOAD|ATTR)|((DOTTED|LOADED)_)?VERSION|PARSEHUGE|ERR_(NONE|ERROR|FATAL|WARNING)))\n\\b", + "name": "support.constant.ext.php", + "captures": { + "1": { + "name": "punctuation.separator.inheritance.php" + } + } + }, + { + "match": "(?x)\n(\\\\)?\\b\n(T_(RETURN|REQUIRE(_ONCE)?|GOTO|GLOBAL|(MINUS|MOD|MUL|XOR)_EQUAL|METHOD_C|ML_COMMENT|BREAK\n |BOOL_CAST|BOOLEAN_(AND|OR)|BAD_CHARACTER|SR(_EQUAL)?|STRING(_CAST|VARNAME)?|START_HEREDOC|STATIC\n |SWITCH|SL(_EQUAL)?|HALT_COMPILER|NS_(C|SEPARATOR)|NUM_STRING|NEW|NAMESPACE|CHARACTER|COMMENT\n |CONSTANT(_ENCAPSED_STRING)?|CONCAT_EQUAL|CONTINUE|CURLY_OPEN|CLOSE_TAG|CLONE|CLASS(_C)?\n |CASE|CATCH|TRY|THROW|IMPLEMENTS|ISSET|IS_((GREATER|SMALLER)_OR_EQUAL|(NOT_)?(IDENTICAL|EQUAL))\n |INSTANCEOF|INCLUDE(_ONCE)?|INC|INT_CAST|INTERFACE|INLINE_HTML|IF|OR_EQUAL|OBJECT_(CAST|OPERATOR)\n |OPEN_TAG(_WITH_ECHO)?|OLD_FUNCTION|DNUMBER|DIR|DIV_EQUAL|DOC_COMMENT|DOUBLE_(ARROW|CAST|COLON)\n |DOLLAR_OPEN_CURLY_BRACES|DO|DEC|DECLARE|DEFAULT|USE|UNSET(_CAST)?|PRINT|PRIVATE|PROTECTED|PUBLIC\n |PLUS_EQUAL|PAAMAYIM_NEKUDOTAYIM|EXTENDS|EXIT|EMPTY|ENCAPSED_AND_WHITESPACE\n |END(SWITCH|IF|DECLARE|FOR(EACH)?|WHILE)|END_HEREDOC|ECHO|EVAL|ELSE(IF)?|VAR(IABLE)?|FINAL|FILE\n |FOR(EACH)?|FUNC_C|FUNCTION|WHITESPACE|WHILE|LNUMBER|LIST|LINE|LOGICAL_(AND|OR|XOR)\n |ARRAY_(CAST)?|ABSTRACT|AS|AND_EQUAL))\n\\b", + "name": "support.constant.parser-token.php", + "captures": { + "1": { + "name": "punctuation.separator.inheritance.php" + } + } + }, + { + "match": "(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*", + "name": "constant.other.php" + } + ] + }, + "function-parameters": { + "patterns": [ + { + "include": "#comments" + }, + { + "match": ",", + "name": "punctuation.separator.delimiter.php" + }, + { + "begin": "(?xi)\n(array) # Typehint\n\\s+((&)?\\s*(\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) # Variable name with possible reference\n\\s*(=)\\s*(array)\\s*(\\() # Default value", + "beginCaptures": { + "1": { + "name": "storage.type.php" + }, + "2": { + "name": "variable.other.php" + }, + "3": { + "name": "storage.modifier.reference.php" + }, + "4": { + "name": "punctuation.definition.variable.php" + }, + "5": { + "name": "keyword.operator.assignment.php" + }, + "6": { + "name": "support.function.construct.php" + }, + "7": { + "name": "punctuation.definition.array.begin.bracket.round.php" + } + }, + "contentName": "meta.array.php", + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.array.end.bracket.round.php" + } + }, + "name": "meta.function.parameter.array.php", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#strings" + }, + { + "include": "#numbers" + } + ] + }, + { + "match": "(?xi)\n(array|callable) # Typehint\n\\s+((&)?\\s*(\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) # Variable name with possible reference\n(?: # Optional default value\n \\s*(=)\\s*\n (?:\n (null)\n |\n (\\[)((?>[^\\[\\]]+|\\[\\g<8>\\])*)(\\])\n |((?:\\S*?\\(\\))|(?:\\S*?))\n )\n)?\n\\s*(?=,|\\)|/[/*]|\\#|$) # A closing parentheses (end of argument list) or a comma or a comment", + "name": "meta.function.parameter.array.php", + "captures": { + "1": { + "name": "storage.type.php" + }, + "2": { + "name": "variable.other.php" + }, + "3": { + "name": "storage.modifier.reference.php" + }, + "4": { + "name": "punctuation.definition.variable.php" + }, + "5": { + "name": "keyword.operator.assignment.php" + }, + "6": { + "name": "constant.language.php" + }, + "7": { + "name": "punctuation.section.array.begin.php" + }, + "8": { + "patterns": [ + { + "include": "#parameter-default-types" + } + ] + }, + "9": { + "name": "punctuation.section.array.end.php" + }, + "10": { + "name": "invalid.illegal.non-null-typehinted.php" + } + } + }, + { + "begin": "(?xi)\n(\\\\?(?:[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*\\\\)*) # Optional namespace\n([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) # Typehinted class name\n\\s+((&)?\\s*(\\.\\.\\.)?(\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) # Variable name with possible reference", + "beginCaptures": { + "1": { + "name": "support.other.namespace.php", + "patterns": [ + { + "match": "(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*", + "name": "storage.type.php" + }, + { + "match": "\\\\", + "name": "punctuation.separator.inheritance.php" + } + ] + }, + "2": { + "name": "storage.type.php" + }, + "3": { + "name": "variable.other.php" + }, + "4": { + "name": "storage.modifier.reference.php" + }, + "5": { + "name": "keyword.operator.variadic.php" + }, + "6": { + "name": "punctuation.definition.variable.php" + } + }, + "end": "(?=,|\\)|/[/*]|\\#)", + "name": "meta.function.parameter.typehinted.php", + "patterns": [ + { + "begin": "=", + "beginCaptures": { + "0": { + "name": "keyword.operator.assignment.php" + } + }, + "end": "(?=,|\\)|/[/*]|\\#)", + "patterns": [ + { + "include": "#language" + } + ] + } + ] + }, + { + "captures": { + "1": { + "name": "variable.other.php" + }, + "2": { + "name": "storage.modifier.reference.php" + }, + "3": { + "name": "keyword.operator.variadic.php" + }, + "4": { + "name": "punctuation.definition.variable.php" + } + }, + "match": "(?xi)\n((&)?\\s*(\\.\\.\\.)?(\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) # Variable name with possible reference\n\\s*(?=,|\\)|/[/*]|\\#|$) # A closing parentheses (end of argument list) or a comma or a comment", + "name": "meta.function.parameter.no-default.php" + }, + { + "begin": "(?xi)\n((&)?\\s*(\\.\\.\\.)?(\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) # Variable name with possible reference\n\\s*(=)\\s*\n(?:(\\[)((?>[^\\[\\]]+|\\[\\g<6>\\])*)(\\]))? # Optional default type", + "beginCaptures": { + "1": { + "name": "variable.other.php" + }, + "2": { + "name": "storage.modifier.reference.php" + }, + "3": { + "name": "keyword.operator.variadic.php" + }, + "4": { + "name": "punctuation.definition.variable.php" + }, + "5": { + "name": "keyword.operator.assignment.php" + }, + "6": { + "name": "punctuation.section.array.begin.php" + }, + "7": { + "patterns": [ + { + "include": "#parameter-default-types" + } + ] + }, + "8": { + "name": "punctuation.section.array.end.php" + } + }, + "end": "(?=,|\\)|/[/*]|\\#)", + "name": "meta.function.parameter.default.php", + "patterns": [ + { + "include": "#parameter-default-types" + } + ] + } + ] + }, + "function-call": { + "patterns": [ + { + "begin": "(?xi)\n(\n \\\\?\\b # Optional root namespace\n [a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]* # First namespace\n (?:\\\\[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)+ # Additional namespaces\n)\\s*(\\()", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#namespace" + }, + { + "match": "(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*", + "name": "entity.name.function.php" + } + ] + }, + "2": { + "name": "punctuation.definition.arguments.begin.bracket.round.php" + } + }, + "end": "\\)|(?=\\?>)", + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.end.bracket.round.php" + } + }, + "name": "meta.function-call.php", + "patterns": [ + { + "include": "#language" + } + ] + }, + { + "begin": "(?i)(\\\\)?\\b([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\\s*(\\()", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#namespace" + } + ] + }, + "2": { + "patterns": [ + { + "include": "#support" + }, + { + "match": "(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*", + "name": "entity.name.function.php" + } + ] + }, + "3": { + "name": "punctuation.definition.arguments.begin.bracket.round.php" + } + }, + "end": "\\)|(?=\\?>)", + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.end.bracket.round.php" + } + }, + "name": "meta.function-call.php", + "patterns": [ + { + "include": "#language" + } + ] + }, + { + "match": "(?i)\\b(print|echo)\\b", + "name": "support.function.construct.output.php" + } + ] + }, + "heredoc": { + "patterns": [ + { + "begin": "(?i)(?=<<<\\s*(\"?)([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)(\\1)\\s*$)", + "end": "(?!\\G)", + "name": "string.unquoted.heredoc.php", + "patterns": [ + { + "include": "#heredoc_interior" + } + ] + }, + { + "begin": "(?=<<<\\s*'([a-zA-Z_]+[a-zA-Z0-9_]*)'\\s*$)", + "end": "(?!\\G)", + "name": "string.unquoted.nowdoc.php", + "patterns": [ + { + "include": "#nowdoc_interior" + } + ] + } + ] + }, + "heredoc_interior": { + "patterns": [ + { + "begin": "(<<<)\\s*(\"?)(HTML)(\\2)(\\s*)$", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + }, + "1": { + "name": "punctuation.definition.string.php" + }, + "3": { + "name": "keyword.operator.heredoc.php" + }, + "5": { + "name": "invalid.illegal.trailing-whitespace.php" + } + }, + "contentName": "text.html", + "end": "^(\\3)\\b", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "keyword.operator.heredoc.php" + } + }, + "name": "meta.embedded.html", + "patterns": [ + { + "include": "#interpolation" + }, + { + "include": "text.html.basic" + } + ] + }, + { + "begin": "(<<<)\\s*(\"?)(XML)(\\2)(\\s*)$", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + }, + "1": { + "name": "punctuation.definition.string.php" + }, + "3": { + "name": "keyword.operator.heredoc.php" + }, + "5": { + "name": "invalid.illegal.trailing-whitespace.php" + } + }, + "contentName": "text.xml", + "end": "^(\\3)\\b", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "keyword.operator.heredoc.php" + } + }, + "name": "meta.embedded.xml", + "patterns": [ + { + "include": "#interpolation" + }, + { + "include": "text.xml" + } + ] + }, + { + "begin": "(<<<)\\s*(\"?)(SQL)(\\2)(\\s*)$", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + }, + "1": { + "name": "punctuation.definition.string.php" + }, + "3": { + "name": "keyword.operator.heredoc.php" + }, + "5": { + "name": "invalid.illegal.trailing-whitespace.php" + } + }, + "contentName": "source.sql", + "end": "^(\\3)\\b", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "keyword.operator.heredoc.php" + } + }, + "name": "meta.embedded.sql", + "patterns": [ + { + "include": "#interpolation" + }, + { + "include": "source.sql" + } + ] + }, + { + "begin": "(<<<)\\s*(\"?)(JAVASCRIPT|JS)(\\2)(\\s*)$", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + }, + "1": { + "name": "punctuation.definition.string.php" + }, + "3": { + "name": "keyword.operator.heredoc.php" + }, + "5": { + "name": "invalid.illegal.trailing-whitespace.php" + } + }, + "contentName": "source.js", + "end": "^(\\3)\\b", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "keyword.operator.heredoc.php" + } + }, + "name": "meta.embedded.js", + "patterns": [ + { + "include": "#interpolation" + }, + { + "include": "source.js" + } + ] + }, + { + "begin": "(<<<)\\s*(\"?)(JSON)(\\2)(\\s*)$", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + }, + "1": { + "name": "punctuation.definition.string.php" + }, + "3": { + "name": "keyword.operator.heredoc.php" + }, + "5": { + "name": "invalid.illegal.trailing-whitespace.php" + } + }, + "contentName": "source.json", + "end": "^(\\3)\\b", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "keyword.operator.heredoc.php" + } + }, + "name": "meta.embedded.json", + "patterns": [ + { + "include": "#interpolation" + }, + { + "include": "source.json" + } + ] + }, + { + "begin": "(<<<)\\s*(\"?)(CSS)(\\2)(\\s*)$", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + }, + "1": { + "name": "punctuation.definition.string.php" + }, + "3": { + "name": "keyword.operator.heredoc.php" + }, + "5": { + "name": "invalid.illegal.trailing-whitespace.php" + } + }, + "contentName": "source.css", + "end": "^(\\3)\\b", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "keyword.operator.heredoc.php" + } + }, + "name": "meta.embedded.css", + "patterns": [ + { + "include": "#interpolation" + }, + { + "include": "source.css" + } + ] + }, + { + "begin": "(<<<)\\s*(\"?)(REGEXP?)(\\2)(\\s*)$", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + }, + "1": { + "name": "punctuation.definition.string.php" + }, + "3": { + "name": "keyword.operator.heredoc.php" + }, + "5": { + "name": "invalid.illegal.trailing-whitespace.php" + } + }, + "contentName": "string.regexp.heredoc.php", + "end": "^(\\3)\\b", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "keyword.operator.heredoc.php" + } + }, + "patterns": [ + { + "include": "#interpolation" + }, + { + "match": "(\\\\){1,2}[.$^\\[\\]{}]", + "name": "constant.character.escape.regex.php" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.arbitrary-repitition.php" + }, + "3": { + "name": "punctuation.definition.arbitrary-repitition.php" + } + }, + "match": "({)\\d+(,\\d+)?(})", + "name": "string.regexp.arbitrary-repitition.php" + }, + { + "begin": "\\[(?:\\^?\\])?", + "captures": { + "0": { + "name": "punctuation.definition.character-class.php" + } + }, + "end": "\\]", + "name": "string.regexp.character-class.php", + "patterns": [ + { + "match": "\\\\[\\\\'\\[\\]]", + "name": "constant.character.escape.php" + } + ] + }, + { + "match": "[$^+*]", + "name": "keyword.operator.regexp.php" + }, + { + "begin": "(?i)(?<=^|\\s)(#)\\s(?=[[a-z0-9_\\x{7f}-\\x{ff},. \\t?!-][^\\x{00}-\\x{7f}]]*$)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.php" + } + }, + "end": "$", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.php" + } + }, + "name": "comment.line.number-sign.php" + } + ] + }, + { + "begin": "(?i)(<<<)\\s*(\"?)([a-z_\\x{7f}-\\x{ff}]+[a-z0-9_\\x{7f}-\\x{ff}]*)(\\2)(\\s*)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.string.php" + }, + "3": { + "name": "keyword.operator.heredoc.php" + }, + "5": { + "name": "invalid.illegal.trailing-whitespace.php" + } + }, + "end": "^(\\3)\\b", + "endCaptures": { + "1": { + "name": "keyword.operator.heredoc.php" + } + }, + "patterns": [ + { + "include": "#interpolation" + } + ] + } + ] + }, + "nowdoc_interior": { + "patterns": [ + { + "begin": "(<<<)\\s*'(HTML)'(\\s*)$", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + }, + "1": { + "name": "punctuation.definition.string.php" + }, + "2": { + "name": "keyword.operator.nowdoc.php" + }, + "3": { + "name": "invalid.illegal.trailing-whitespace.php" + } + }, + "contentName": "text.html", + "end": "^(\\2)\\b", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "keyword.operator.nowdoc.php" + } + }, + "name": "meta.embedded.html", + "patterns": [ + { + "include": "text.html.basic" + } + ] + }, + { + "begin": "(<<<)\\s*'(XML)'(\\s*)$", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + }, + "1": { + "name": "punctuation.definition.string.php" + }, + "2": { + "name": "keyword.operator.nowdoc.php" + }, + "3": { + "name": "invalid.illegal.trailing-whitespace.php" + } + }, + "contentName": "text.xml", + "end": "^(\\2)\\b", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "keyword.operator.nowdoc.php" + } + }, + "name": "meta.embedded.xml", + "patterns": [ + { + "include": "text.xml" + } + ] + }, + { + "begin": "(<<<)\\s*'(SQL)'(\\s*)$", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + }, + "1": { + "name": "punctuation.definition.string.php" + }, + "2": { + "name": "keyword.operator.nowdoc.php" + }, + "3": { + "name": "invalid.illegal.trailing-whitespace.php" + } + }, + "contentName": "source.sql", + "end": "^(\\2)\\b", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "keyword.operator.nowdoc.php" + } + }, + "name": "meta.embedded.sql", + "patterns": [ + { + "include": "source.sql" + } + ] + }, + { + "begin": "(<<<)\\s*'(JAVASCRIPT|JS)'(\\s*)$", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + }, + "1": { + "name": "punctuation.definition.string.php" + }, + "2": { + "name": "keyword.operator.nowdoc.php" + }, + "3": { + "name": "invalid.illegal.trailing-whitespace.php" + } + }, + "contentName": "source.js", + "end": "^(\\2)\\b", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "keyword.operator.nowdoc.php" + } + }, + "name": "meta.embedded.js", + "patterns": [ + { + "include": "source.js" + } + ] + }, + { + "begin": "(<<<)\\s*'(JSON)'(\\s*)$", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + }, + "1": { + "name": "punctuation.definition.string.php" + }, + "2": { + "name": "keyword.operator.nowdoc.php" + }, + "3": { + "name": "invalid.illegal.trailing-whitespace.php" + } + }, + "contentName": "source.json", + "end": "^(\\2)\\b", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "keyword.operator.nowdoc.php" + } + }, + "name": "meta.embedded.json", + "patterns": [ + { + "include": "source.json" + } + ] + }, + { + "begin": "(<<<)\\s*'(CSS)'(\\s*)$", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + }, + "1": { + "name": "punctuation.definition.string.php" + }, + "2": { + "name": "keyword.operator.nowdoc.php" + }, + "3": { + "name": "invalid.illegal.trailing-whitespace.php" + } + }, + "contentName": "source.css", + "end": "^(\\2)\\b", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "keyword.operator.nowdoc.php" + } + }, + "name": "meta.embedded.css", + "patterns": [ + { + "include": "source.css" + } + ] + }, + { + "begin": "(<<<)\\s*'(REGEXP?)'(\\s*)$", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + }, + "1": { + "name": "punctuation.definition.string.php" + }, + "2": { + "name": "keyword.operator.nowdoc.php" + }, + "3": { + "name": "invalid.illegal.trailing-whitespace.php" + } + }, + "contentName": "string.regexp.nowdoc.php", + "end": "^(\\2)\\b", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "keyword.operator.nowdoc.php" + } + }, + "patterns": [ + { + "match": "(\\\\){1,2}[.$^\\[\\]{}]", + "name": "constant.character.escape.regex.php" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.arbitrary-repitition.php" + }, + "3": { + "name": "punctuation.definition.arbitrary-repitition.php" + } + }, + "match": "({)\\d+(,\\d+)?(})", + "name": "string.regexp.arbitrary-repitition.php" + }, + { + "begin": "\\[(?:\\^?\\])?", + "captures": { + "0": { + "name": "punctuation.definition.character-class.php" + } + }, + "end": "\\]", + "name": "string.regexp.character-class.php", + "patterns": [ + { + "match": "\\\\[\\\\'\\[\\]]", + "name": "constant.character.escape.php" + } + ] + }, + { + "match": "[$^+*]", + "name": "keyword.operator.regexp.php" + }, + { + "begin": "(?i)(?<=^|\\s)(#)\\s(?=[[a-z0-9_\\x{7f}-\\x{ff},. \\t?!-][^\\x{00}-\\x{7f}]]*$)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.php" + } + }, + "end": "$", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.php" + } + }, + "name": "comment.line.number-sign.php" + } + ] + }, + { + "begin": "(?i)(<<<)\\s*'([a-z_\\x{7f}-\\x{ff}]+[a-z0-9_\\x{7f}-\\x{ff}]*)'(\\s*)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.string.php" + }, + "2": { + "name": "keyword.operator.nowdoc.php" + }, + "3": { + "name": "invalid.illegal.trailing-whitespace.php" + } + }, + "end": "^(\\2)\\b", + "endCaptures": { + "1": { + "name": "keyword.operator.nowdoc.php" + } + } + } + ] + }, + "instantiation": { + "begin": "(?i)(new)\\s+", + "beginCaptures": { + "1": { + "name": "keyword.other.new.php" + } + }, + "end": "(?i)(?=[^a-z0-9_\\x{7f}-\\x{ff}\\\\])", + "patterns": [ + { + "match": "(?i)(parent|static|self)(?![a-z0-9_\\x{7f}-\\x{ff}])", + "name": "storage.type.php" + }, + { + "include": "#class-name" + }, + { + "include": "#variable-name" + } + ] + }, + "interpolation": { + "patterns": [ + { + "match": "\\\\[0-7]{1,3}", + "name": "constant.character.escape.octal.php" + }, + { + "match": "\\\\x[0-9A-Fa-f]{1,2}", + "name": "constant.character.escape.hex.php" + }, + { + "match": "\\\\u{[0-9A-Fa-f]+}", + "name": "constant.character.escape.unicode.php" + }, + { + "match": "\\\\[nrtvef$\"\\\\]", + "name": "constant.character.escape.php" + }, + { + "begin": "{(?=\\$.*?})", + "beginCaptures": { + "0": { + "name": "punctuation.definition.variable.php" + } + }, + "end": "}", + "endCaptures": { + "0": { + "name": "punctuation.definition.variable.php" + } + }, + "patterns": [ + { + "include": "#language" + } + ] + }, + { + "include": "#variable-name" + } + ] + }, + "invoke-call": { + "captures": { + "1": { + "name": "punctuation.definition.variable.php" + }, + "2": { + "name": "variable.other.php" + } + }, + "match": "(?i)(\\$+)([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)(?=\\s*\\()", + "name": "meta.function-call.invoke.php" + }, + "language": { + "patterns": [ + { + "include": "#comments" + }, + { + "begin": "(?i)^\\s*(interface)\\s+([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\\s*(extends)?\\s*", + "beginCaptures": { + "1": { + "name": "storage.type.interface.php" + }, + "2": { + "name": "entity.name.type.interface.php" + }, + "3": { + "name": "storage.modifier.extends.php" + } + }, + "end": "(?i)((?:[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*\\s*,\\s*)*)([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?\\s*(?:(?={)|$)", + "endCaptures": { + "1": { + "patterns": [ + { + "match": "(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*", + "name": "entity.other.inherited-class.php" + }, + { + "match": ",", + "name": "punctuation.separator.classes.php" + } + ] + }, + "2": { + "name": "entity.other.inherited-class.php" + } + }, + "name": "meta.interface.php", + "patterns": [ + { + "include": "#namespace" + } + ] + }, + { + "begin": "(?i)^\\s*(trait)\\s+([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)", + "beginCaptures": { + "1": { + "name": "storage.type.trait.php" + }, + "2": { + "name": "entity.name.type.trait.php" + } + }, + "end": "(?={)", + "name": "meta.trait.php", + "patterns": [ + { + "include": "#comments" + } + ] + }, + { + "match": "(?i)(?:^|(?<=<\\?php))\\s*(namespace)\\s+([a-z0-9_\\x{7f}-\\x{ff}\\\\]+)(?=\\s*;)", + "name": "meta.namespace.php", + "captures": { + "1": { + "name": "keyword.other.namespace.php" + }, + "2": { + "name": "entity.name.type.namespace.php", + "patterns": [ + { + "match": "\\\\", + "name": "punctuation.separator.inheritance.php" + } + ] + } + } + }, + { + "begin": "(?i)(?:^|(?<=<\\?php))\\s*(namespace)\\s+", + "beginCaptures": { + "1": { + "name": "keyword.other.namespace.php" + } + }, + "end": "(?<=})|(?=\\?>)", + "name": "meta.namespace.php", + "patterns": [ + { + "include": "#comments" + }, + { + "match": "(?i)[a-z0-9_\\x{7f}-\\x{ff}\\\\]+", + "name": "entity.name.type.namespace.php", + "captures": { + "0": { + "patterns": [ + { + "match": "\\\\", + "name": "punctuation.separator.inheritance.php" + } + ] + } + } + }, + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.namespace.begin.bracket.curly.php" + } + }, + "end": "}|(?=\\?>)", + "endCaptures": { + "0": { + "name": "punctuation.definition.namespace.end.bracket.curly.php" + } + }, + "patterns": [ + { + "include": "#language" + } + ] + }, + { + "match": "[^\\s]+", + "name": "invalid.illegal.identifier.php" + } + ] + }, + { + "match": "\\s+(?=use\\b)" + }, + { + "begin": "(?i)\\buse\\b", + "beginCaptures": { + "0": { + "name": "keyword.other.use.php" + } + }, + "end": "(?<=})|(?=;)", + "name": "meta.use.php", + "patterns": [ + { + "match": "\\b(const|function)\\b", + "name": "storage.type.${1:/downcase}.php" + }, + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.use.begin.bracket.curly.php" + } + }, + "end": "}", + "endCaptures": { + "0": { + "name": "punctuation.definition.use.end.bracket.curly.php" + } + }, + "patterns": [ + { + "include": "#scope-resolution" + }, + { + "match": "(?xi)\n\\b(as)\n\\s+(final|abstract|public|private|protected|static)\n\\s+([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\n\\b", + "captures": { + "1": { + "name": "keyword.other.use-as.php" + }, + "2": { + "name": "storage.modifier.php" + }, + "3": { + "name": "entity.other.alias.php" + } + } + }, + { + "match": "(?xi)\n\\b(as)\n\\s+([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\n\\b", + "captures": { + "1": { + "name": "keyword.other.use-as.php" + }, + "2": { + "patterns": [ + { + "match": "^(?:final|abstract|public|private|protected|static)$", + "name": "storage.modifier.php" + }, + { + "match": ".+", + "name": "entity.other.alias.php" + } + ] + } + } + }, + { + "match": "(?i)\\b(insteadof)\\s+([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)", + "captures": { + "1": { + "name": "keyword.other.use-insteadof.php" + }, + "2": { + "name": "support.class.php" + } + } + }, + { + "match": ";", + "name": "punctuation.terminator.expression.php" + }, + { + "include": "#use-inner" + } + ] + }, + { + "include": "#use-inner" + } + ] + }, + { + "begin": "(?i)^\\s*(?:(abstract|final)\\s+)?(class)\\s+([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)", + "beginCaptures": { + "1": { + "name": "storage.modifier.${1:/downcase}.php" + }, + "2": { + "name": "storage.type.class.php" + }, + "3": { + "name": "entity.name.type.class.php" + } + }, + "end": "}|(?=\\?>)", + "endCaptures": { + "0": { + "name": "punctuation.definition.class.end.bracket.curly.php" + } + }, + "name": "meta.class.php", + "patterns": [ + { + "include": "#comments" + }, + { + "begin": "(?i)(extends)\\s+", + "beginCaptures": { + "1": { + "name": "storage.modifier.extends.php" + } + }, + "contentName": "meta.other.inherited-class.php", + "end": "(?i)(?=[^a-z0-9_\\x{7f}-\\x{ff}\\\\])", + "patterns": [ + { + "begin": "(?i)(?=\\\\?[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*\\\\)", + "end": "(?i)([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?(?=[^a-z0-9_\\x{7f}-\\x{ff}\\\\])", + "endCaptures": { + "1": { + "name": "entity.other.inherited-class.php" + } + }, + "patterns": [ + { + "include": "#namespace" + } + ] + }, + { + "include": "#class-builtin" + }, + { + "include": "#namespace" + }, + { + "match": "(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*", + "name": "entity.other.inherited-class.php" + } + ] + }, + { + "begin": "(?i)(implements)\\s+", + "beginCaptures": { + "1": { + "name": "storage.modifier.implements.php" + } + }, + "end": "(?i)(?=[;{])", + "patterns": [ + { + "include": "#comments" + }, + { + "begin": "(?i)(?=[a-z0-9_\\x{7f}-\\x{ff}\\\\]+)", + "contentName": "meta.other.inherited-class.php", + "end": "(?i)(?:\\s*(?:,|(?=[^a-z0-9_\\x{7f}-\\x{ff}\\\\\\s]))\\s*)", + "patterns": [ + { + "begin": "(?i)(?=\\\\?[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*\\\\)", + "end": "(?i)([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?(?=[^a-z0-9_\\x{7f}-\\x{ff}\\\\])", + "endCaptures": { + "1": { + "name": "entity.other.inherited-class.php" + } + }, + "patterns": [ + { + "include": "#namespace" + } + ] + }, + { + "include": "#class-builtin" + }, + { + "include": "#namespace" + }, + { + "match": "(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*", + "name": "entity.other.inherited-class.php" + } + ] + } + ] + }, + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.class.begin.bracket.curly.php" + } + }, + "end": "(?=}|\\?>)", + "contentName": "meta.class.body.php", + "patterns": [ + { + "include": "#language" + } + ] + } + ] + }, + { + "include": "#switch_statement" + }, + { + "match": "(?x)\n\\s*\n\\b(\n break|case|continue|declare|default|die|do|\n else(if)?|end(declare|for(each)?|if|switch|while)|exit|\n for(each)?|if|return|switch|use|while|yield\n)\\b", + "captures": { + "1": { + "name": "keyword.control.${1:/downcase}.php" + } + } + }, + { + "begin": "(?i)\\b((?:require|include)(?:_once)?)\\s+", + "beginCaptures": { + "1": { + "name": "keyword.control.import.include.php" + } + }, + "end": "(?=\\s|;|$|\\?>)", + "name": "meta.include.php", + "patterns": [ + { + "include": "#language" + } + ] + }, + { + "begin": "\\b(catch)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "keyword.control.exception.catch.php" + }, + "2": { + "name": "punctuation.definition.parameters.begin.bracket.round.php" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.parameters.end.bracket.round.php" + } + }, + "name": "meta.catch.php", + "patterns": [ + { + "include": "#namespace" + }, + { + "match": "(?xi)\n([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) # Exception class\n((?:\\s*\\|\\s*[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)*) # Optional additional exception classes\n\\s*\n((\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) # Variable", + "captures": { + "1": { + "name": "support.class.exception.php" + }, + "2": { + "patterns": [ + { + "match": "(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*", + "name": "support.class.exception.php" + }, + { + "match": "\\|", + "name": "punctuation.separator.delimiter.php" + } + ] + }, + "3": { + "name": "variable.other.php" + }, + "4": { + "name": "punctuation.definition.variable.php" + } + } + } + ] + }, + { + "match": "\\b(catch|try|throw|exception|finally)\\b", + "name": "keyword.control.exception.php" + }, + { + "begin": "(?i)\\b(function)\\s*(?=\\()", + "beginCaptures": { + "1": { + "name": "storage.type.function.php" + } + }, + "end": "(?={)", + "name": "meta.function.closure.php", + "patterns": [ + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.parameters.begin.bracket.round.php" + } + }, + "contentName": "meta.function.parameters.php", + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.parameters.end.bracket.round.php" + } + }, + "patterns": [ + { + "include": "#function-parameters" + } + ] + }, + { + "begin": "(?i)(use)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "keyword.other.function.use.php" + }, + "2": { + "name": "punctuation.definition.parameters.begin.bracket.round.php" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.parameters.end.bracket.round.php" + } + }, + "patterns": [ + { + "captures": { + "1": { + "name": "variable.other.php" + }, + "2": { + "name": "storage.modifier.reference.php" + }, + "3": { + "name": "punctuation.definition.variable.php" + } + }, + "match": "(?i)((&)?\\s*(\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\\s*(?=,|\\))", + "name": "meta.function.closure.use.php" + } + ] + } + ] + }, + { + "begin": "(?x)\n((?:(?:final|abstract|public|private|protected|static)\\s+)*)\n(function)\\s+\n(?i:\n (__(?:call|construct|debugInfo|destruct|get|set|isset|unset|tostring|\n clone|set_state|sleep|wakeup|autoload|invoke|callStatic))\n |([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n)\n\\s*(\\()", + "beginCaptures": { + "1": { + "patterns": [ + { + "match": "final|abstract|public|private|protected|static", + "name": "storage.modifier.php" + } + ] + }, + "2": { + "name": "storage.type.function.php" + }, + "3": { + "name": "support.function.magic.php" + }, + "4": { + "name": "entity.name.function.php" + }, + "5": { + "name": "punctuation.definition.parameters.begin.bracket.round.php" + } + }, + "contentName": "meta.function.parameters.php", + "end": "(\\))(?:\\s*(:)\\s*([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*))?", + "endCaptures": { + "1": { + "name": "punctuation.definition.parameters.end.bracket.round.php" + }, + "2": { + "name": "keyword.operator.return-value.php" + }, + "3": { + "name": "storage.type.php" + } + }, + "name": "meta.function.php", + "patterns": [ + { + "include": "#function-parameters" + } + ] + }, + { + "include": "#invoke-call" + }, + { + "include": "#scope-resolution" + }, + { + "include": "#variables" + }, + { + "include": "#strings" + }, + { + "captures": { + "1": { + "name": "support.function.construct.php" + }, + "2": { + "name": "punctuation.definition.array.begin.bracket.round.php" + }, + "3": { + "name": "punctuation.definition.array.end.bracket.round.php" + } + }, + "match": "(array)(\\()(\\))", + "name": "meta.array.empty.php" + }, + { + "begin": "(array)(\\()", + "beginCaptures": { + "1": { + "name": "support.function.construct.php" + }, + "2": { + "name": "punctuation.definition.array.begin.bracket.round.php" + } + }, + "end": "\\)|(?=\\?>)", + "endCaptures": { + "0": { + "name": "punctuation.definition.array.end.bracket.round.php" + } + }, + "name": "meta.array.php", + "patterns": [ + { + "include": "#language" + } + ] + }, + { + "match": "(?i)(\\()\\s*(array|real|double|float|int(?:eger)?|bool(?:ean)?|string|object|binary|unset)\\s*(\\))", + "captures": { + "1": { + "name": "punctuation.definition.storage-type.begin.bracket.round.php" + }, + "2": { + "name": "storage.type.php" + }, + "3": { + "name": "punctuation.definition.storage-type.end.bracket.round.php" + } + } + }, + { + "match": "(?i)\\b(array|real|double|float|int(eger)?|bool(ean)?|string|class|var|function|interface|trait|parent|self|object)\\b", + "name": "storage.type.php" + }, + { + "match": "(?i)\\b(global|abstract|const|extends|implements|final|private|protected|public|static)\\b", + "name": "storage.modifier.php" + }, + { + "include": "#object" + }, + { + "match": ";", + "name": "punctuation.terminator.expression.php" + }, + { + "match": ":", + "name": "punctuation.terminator.statement.php" + }, + { + "include": "#heredoc" + }, + { + "include": "#numbers" + }, + { + "match": "(?i)\\bclone\\b", + "name": "keyword.other.clone.php" + }, + { + "match": "\\.=?", + "name": "keyword.operator.string.php" + }, + { + "match": "=>", + "name": "keyword.operator.key.php" + }, + { + "captures": { + "1": { + "name": "keyword.operator.assignment.php" + }, + "2": { + "name": "storage.modifier.reference.php" + }, + "3": { + "name": "storage.modifier.reference.php" + } + }, + "match": "(?i)(\\=)(&)|(&)(?=[$a-z_])" + }, + { + "match": "@", + "name": "keyword.operator.error-control.php" + }, + { + "match": "===|==|!==|!=|<>", + "name": "keyword.operator.comparison.php" + }, + { + "match": "=|\\+=|\\-=|\\*=|/=|%=|&=|\\|=|\\^=|<<=|>>=", + "name": "keyword.operator.assignment.php" + }, + { + "match": "<=>|<=|>=|<|>", + "name": "keyword.operator.comparison.php" + }, + { + "match": "\\-\\-|\\+\\+", + "name": "keyword.operator.increment-decrement.php" + }, + { + "match": "\\-|\\+|\\*|/|%", + "name": "keyword.operator.arithmetic.php" + }, + { + "match": "(?i)(!|&&|\\|\\|)|\\b(and|or|xor|as)\\b", + "name": "keyword.operator.logical.php" + }, + { + "include": "#function-call" + }, + { + "match": "<<|>>|~|\\^|&|\\|", + "name": "keyword.operator.bitwise.php" + }, + { + "begin": "(?i)\\b(instanceof)\\s+(?=[\\\\$a-z_])", + "beginCaptures": { + "1": { + "name": "keyword.operator.type.php" + } + }, + "end": "(?=[^\\\\$a-z0-9_\\x{7f}-\\x{ff}])", + "patterns": [ + { + "include": "#class-name" + }, + { + "include": "#variable-name" + } + ] + }, + { + "include": "#instantiation" + }, + { + "captures": { + "1": { + "name": "keyword.control.goto.php" + }, + "2": { + "name": "support.other.php" + } + }, + "match": "(?i)(goto)\\s+([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)" + }, + { + "captures": { + "1": { + "name": "entity.name.goto-label.php" + } + }, + "match": "(?i)^\\s*([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\\s*:(?!:)" + }, + { + "include": "#string-backtick" + }, + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.begin.bracket.curly.php" + } + }, + "end": "}|(?=\\?>)", + "endCaptures": { + "0": { + "name": "punctuation.definition.end.bracket.curly.php" + } + }, + "patterns": [ + { + "include": "#language" + } + ] + }, + { + "begin": "\\[", + "beginCaptures": { + "0": { + "name": "punctuation.section.array.begin.php" + } + }, + "end": "\\]|(?=\\?>)", + "endCaptures": { + "0": { + "name": "punctuation.section.array.end.php" + } + }, + "patterns": [ + { + "include": "#language" + } + ] + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.begin.bracket.round.php" + } + }, + "end": "\\)|(?=\\?>)", + "endCaptures": { + "0": { + "name": "punctuation.definition.end.bracket.round.php" + } + }, + "patterns": [ + { + "include": "#language" + } + ] + }, + { + "include": "#constants" + }, + { + "match": ",", + "name": "punctuation.separator.delimiter.php" + } + ] + }, + "namespace": { + "begin": "(?i)(?:(namespace)|[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?(\\\\)(?=.*?[^a-z0-9_\\x{7f}-\\x{ff}\\\\])", + "beginCaptures": { + "1": { + "name": "variable.language.namespace.php" + }, + "2": { + "name": "punctuation.separator.inheritance.php" + } + }, + "end": "(?i)(?=[a-z0-9_\\x{7f}-\\x{ff}]*[^a-z0-9_\\x{7f}-\\x{ff}\\\\])", + "name": "support.other.namespace.php", + "patterns": [ + { + "match": "\\\\", + "name": "punctuation.separator.inheritance.php" + } + ] + }, + "numbers": { + "patterns": [ + { + "match": "0[xX][0-9a-fA-F]+", + "name": "constant.numeric.hex.php" + }, + { + "match": "0[bB][01]+", + "name": "constant.numeric.binary.php" + }, + { + "match": "0[0-7]+", + "name": "constant.numeric.octal.php" + }, + { + "match": "(?x)\n(?:\n [0-9]*(\\.)[0-9]+(?:[eE][+-]?[0-9]+)?|\n [0-9]+(\\.)[0-9]*(?:[eE][+-]?[0-9]+)?|\n [0-9]+[eE][+-]?[0-9]+\n)", + "name": "constant.numeric.decimal.php", + "captures": { + "1": { + "name": "punctuation.separator.decimal.period.php" + }, + "2": { + "name": "punctuation.separator.decimal.period.php" + } + } + }, + { + "match": "0|[1-9][0-9]*", + "name": "constant.numeric.decimal.php" + } + ] + }, + "object": { + "patterns": [ + { + "begin": "(->)(\\$?{)", + "beginCaptures": { + "1": { + "name": "keyword.operator.class.php" + }, + "2": { + "name": "punctuation.definition.variable.php" + } + }, + "end": "}", + "endCaptures": { + "0": { + "name": "punctuation.definition.variable.php" + } + }, + "patterns": [ + { + "include": "#language" + } + ] + }, + { + "begin": "(?i)(->)([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "keyword.operator.class.php" + }, + "2": { + "name": "entity.name.function.php" + }, + "3": { + "name": "punctuation.definition.arguments.begin.bracket.round.php" + } + }, + "end": "\\)|(?=\\?>)", + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.end.bracket.round.php" + } + }, + "name": "meta.method-call.php", + "patterns": [ + { + "include": "#language" + } + ] + }, + { + "captures": { + "1": { + "name": "keyword.operator.class.php" + }, + "2": { + "name": "variable.other.property.php" + }, + "3": { + "name": "punctuation.definition.variable.php" + } + }, + "match": "(?i)(->)((\\$+)?[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?" + } + ] + }, + "parameter-default-types": { + "patterns": [ + { + "include": "#strings" + }, + { + "include": "#numbers" + }, + { + "include": "#string-backtick" + }, + { + "include": "#variables" + }, + { + "match": "=>", + "name": "keyword.operator.key.php" + }, + { + "match": "=", + "name": "keyword.operator.assignment.php" + }, + { + "match": "&(?=\\s*\\$)", + "name": "storage.modifier.reference.php" + }, + { + "begin": "(array)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "support.function.construct.php" + }, + "2": { + "name": "punctuation.definition.array.begin.bracket.round.php" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.array.end.bracket.round.php" + } + }, + "name": "meta.array.php", + "patterns": [ + { + "include": "#parameter-default-types" + } + ] + }, + { + "include": "#instantiation" + }, + { + "begin": "(?xi)\n(?=[a-z0-9_\\x{7f}-\\x{ff}\\\\]+(::)\n ([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?\n)", + "end": "(?i)(::)([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?", + "endCaptures": { + "1": { + "name": "keyword.operator.class.php" + }, + "2": { + "name": "constant.other.class.php" + } + }, + "patterns": [ + { + "include": "#class-name" + } + ] + }, + { + "include": "#constants" + } + ] + }, + "php_doc": { + "patterns": [ + { + "match": "^(?!\\s*\\*).*?(?:(?=\\*\\/)|$\\n?)", + "name": "invalid.illegal.missing-asterisk.phpdoc.php" + }, + { + "captures": { + "1": { + "name": "keyword.other.phpdoc.php" + }, + "3": { + "name": "storage.modifier.php" + }, + "4": { + "name": "invalid.illegal.wrong-access-type.phpdoc.php" + } + }, + "match": "^\\s*\\*\\s*(@access)\\s+((public|private|protected)|(.+))\\s*$" + }, + { + "captures": { + "1": { + "name": "keyword.other.phpdoc.php" + }, + "2": { + "name": "markup.underline.link.php" + } + }, + "match": "(@xlink)\\s+(.+)\\s*$" + }, + { + "begin": "(@(?:global|param|property(-(read|write))?|return|throws|var))\\s+(?=[A-Za-z_\\x{7f}-\\x{ff}\\\\]|\\()", + "beginCaptures": { + "1": { + "name": "keyword.other.phpdoc.php" + } + }, + "end": "(?=\\s|\\*/)", + "contentName": "meta.other.type.phpdoc.php", + "patterns": [ + { + "include": "#php_doc_types_array_multiple" + }, + { + "include": "#php_doc_types_array_single" + }, + { + "include": "#php_doc_types" + } + ] + }, + { + "match": "(?x)\n@\n(\n api|abstract|author|category|copyright|example|global|inherit[Dd]oc|internal|\n license|link|method|property(-(read|write))?|package|param|return|see|since|source|\n static|subpackage|throws|todo|var|version|uses|deprecated|final|ignore\n)\\b", + "name": "keyword.other.phpdoc.php" + }, + { + "captures": { + "1": { + "name": "keyword.other.phpdoc.php" + } + }, + "match": "{(@(link|inherit[Dd]oc)).+?}", + "name": "meta.tag.inline.phpdoc.php" + } + ] + }, + "php_doc_types": { + "match": "(?i)[a-z_\\x{7f}-\\x{ff}\\\\][a-z0-9_\\x{7f}-\\x{ff}\\\\]*(\\|[a-z_\\x{7f}-\\x{ff}\\\\][a-z0-9_\\x{7f}-\\x{ff}\\\\]*)*", + "captures": { + "0": { + "patterns": [ + { + "match": "(?x)\\b\n(string|integer|int|boolean|bool|float|double|object|mixed\n|array|resource|void|null|callback|false|true|self)\\b", + "name": "keyword.other.type.php" + }, + { + "include": "#class-name" + }, + { + "match": "\\|", + "name": "punctuation.separator.delimiter.php" + } + ] + } + } + }, + "php_doc_types_array_multiple": { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.type.begin.bracket.round.phpdoc.php" + } + }, + "end": "(\\))(\\[\\])|(?=\\*/)", + "endCaptures": { + "1": { + "name": "punctuation.definition.type.end.bracket.round.phpdoc.php" + }, + "2": { + "name": "keyword.other.array.phpdoc.php" + } + }, + "patterns": [ + { + "include": "#php_doc_types_array_multiple" + }, + { + "include": "#php_doc_types_array_single" + }, + { + "include": "#php_doc_types" + }, + { + "match": "\\|", + "name": "punctuation.separator.delimiter.php" + } + ] + }, + "php_doc_types_array_single": { + "match": "(?i)([a-z_\\x{7f}-\\x{ff}\\\\][a-z0-9_\\x{7f}-\\x{ff}\\\\]*)(\\[\\])", + "captures": { + "1": { + "patterns": [ + { + "include": "#php_doc_types" + } + ] + }, + "2": { + "name": "keyword.other.array.phpdoc.php" + } + } + }, + "regex-double-quoted": { + "begin": "\"/(?=(\\\\.|[^\"/])++/[imsxeADSUXu]*\")", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.php" + } + }, + "end": "(/)([imsxeADSUXu]*)(\")", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.php" + } + }, + "name": "string.regexp.double-quoted.php", + "patterns": [ + { + "match": "(\\\\){1,2}[.$^\\[\\]{}]", + "name": "constant.character.escape.regex.php" + }, + { + "include": "#interpolation" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.arbitrary-repetition.php" + }, + "3": { + "name": "punctuation.definition.arbitrary-repetition.php" + } + }, + "match": "({)\\d+(,\\d+)?(})", + "name": "string.regexp.arbitrary-repetition.php" + }, + { + "begin": "\\[(?:\\^?\\])?", + "captures": { + "0": { + "name": "punctuation.definition.character-class.php" + } + }, + "end": "\\]", + "name": "string.regexp.character-class.php", + "patterns": [ + { + "include": "#interpolation" + } + ] + }, + { + "match": "[$^+*]", + "name": "keyword.operator.regexp.php" + } + ] + }, + "regex-single-quoted": { + "begin": "'/(?=(\\\\(?:\\\\(?:\\\\[\\\\']?|[^'])|.)|[^'/])++/[imsxeADSUXu]*')", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.php" + } + }, + "end": "(/)([imsxeADSUXu]*)(')", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.php" + } + }, + "name": "string.regexp.single-quoted.php", + "patterns": [ + { + "include": "#single_quote_regex_escape" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.arbitrary-repetition.php" + }, + "3": { + "name": "punctuation.definition.arbitrary-repetition.php" + } + }, + "match": "({)\\d+(,\\d+)?(})", + "name": "string.regexp.arbitrary-repetition.php" + }, + { + "begin": "\\[(?:\\^?\\])?", + "captures": { + "0": { + "name": "punctuation.definition.character-class.php" + } + }, + "end": "\\]", + "name": "string.regexp.character-class.php" + }, + { + "match": "[$^+*]", + "name": "keyword.operator.regexp.php" + } + ] + }, + "scope-resolution": { + "patterns": [ + { + "match": "(?i)\\b([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)(?=\\s*::)", + "captures": { + "1": { + "patterns": [ + { + "match": "\\b(self|static|parent)\\b", + "name": "storage.type.php" + }, + { + "match": "\\w+", + "name": "entity.name.class.php" + }, + { + "include": "#class-name" + }, + { + "include": "#variable-name" + } + ] + } + } + }, + { + "begin": "(?i)(::)\\s*([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "keyword.operator.class.php" + }, + "2": { + "name": "entity.name.function.php" + }, + "3": { + "name": "punctuation.definition.arguments.begin.bracket.round.php" + } + }, + "end": "\\)|(?=\\?>)", + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.end.bracket.round.php" + } + }, + "name": "meta.method-call.static.php", + "patterns": [ + { + "include": "#language" + } + ] + }, + { + "match": "(?i)(::)\\s*(class)\\b", + "captures": { + "1": { + "name": "keyword.operator.class.php" + }, + "2": { + "name": "keyword.other.class.php" + } + } + }, + { + "match": "(?xi)\n(::)\\s*\n(?:\n ((\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) # Variable\n |\n ([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) # Constant\n)?", + "captures": { + "1": { + "name": "keyword.operator.class.php" + }, + "2": { + "name": "variable.other.class.php" + }, + "3": { + "name": "punctuation.definition.variable.php" + }, + "4": { + "name": "constant.other.class.php" + } + } + } + ] + }, + "single_quote_regex_escape": { + "match": "\\\\(?:\\\\(?:\\\\[\\\\']?|[^'])|.)", + "name": "constant.character.escape.php" + }, + "sql-string-double-quoted": { + "begin": "\"\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER|AND)\\b)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.php" + } + }, + "contentName": "source.sql.embedded.php", + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.php" + } + }, + "name": "string.quoted.double.sql.php", + "patterns": [ + { + "match": "(#)(\\\\\"|[^\"])*(?=\"|$)", + "name": "comment.line.number-sign.sql", + "captures": { + "1": { + "name": "punctuation.definition.comment.sql" + } + } + }, + { + "match": "(--)(\\\\\"|[^\"])*(?=\"|$)", + "name": "comment.line.double-dash.sql", + "captures": { + "1": { + "name": "punctuation.definition.comment.sql" + } + } + }, + { + "match": "\\\\[\\\\\"`']", + "name": "constant.character.escape.php" + }, + { + "match": "'(?=((\\\\')|[^'\"])*(\"|$))", + "name": "string.quoted.single.unclosed.sql" + }, + { + "match": "`(?=((\\\\`)|[^`\"])*(\"|$))", + "name": "string.quoted.other.backtick.unclosed.sql" + }, + { + "begin": "'", + "end": "'", + "name": "string.quoted.single.sql", + "patterns": [ + { + "include": "#interpolation" + } + ] + }, + { + "begin": "`", + "end": "`", + "name": "string.quoted.other.backtick.sql", + "patterns": [ + { + "include": "#interpolation" + } + ] + }, + { + "include": "#interpolation" + }, + { + "include": "source.sql" + } + ] + }, + "sql-string-single-quoted": { + "begin": "'\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER|AND)\\b)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.php" + } + }, + "contentName": "source.sql.embedded.php", + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.php" + } + }, + "name": "string.quoted.single.sql.php", + "patterns": [ + { + "match": "(#)(\\\\'|[^'])*(?='|$)", + "name": "comment.line.number-sign.sql", + "captures": { + "1": { + "name": "punctuation.definition.comment.sql" + } + } + }, + { + "match": "(--)(\\\\'|[^'])*(?='|$)", + "name": "comment.line.double-dash.sql", + "captures": { + "1": { + "name": "punctuation.definition.comment.sql" + } + } + }, + { + "match": "\\\\[\\\\'`\"]", + "name": "constant.character.escape.php" + }, + { + "match": "`(?=((\\\\`)|[^`'])*('|$))", + "name": "string.quoted.other.backtick.unclosed.sql" + }, + { + "match": "\"(?=((\\\\\")|[^\"'])*('|$))", + "name": "string.quoted.double.unclosed.sql" + }, + { + "include": "source.sql" + } + ] + }, + "string-backtick": { + "begin": "`", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.php" + } + }, + "end": "`", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.php" + } + }, + "name": "string.interpolated.php", + "patterns": [ + { + "match": "\\\\.", + "name": "constant.character.escape.php" + }, + { + "include": "#interpolation" + } + ] + }, + "string-double-quoted": { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.php" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.php" + } + }, + "name": "string.quoted.double.php", + "patterns": [ + { + "include": "#interpolation" + } + ] + }, + "string-single-quoted": { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.php" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.php" + } + }, + "name": "string.quoted.single.php", + "patterns": [ + { + "match": "\\\\[\\\\']", + "name": "constant.character.escape.php" + } + ] + }, + "strings": { + "patterns": [ + { + "include": "#regex-double-quoted" + }, + { + "include": "#sql-string-double-quoted" + }, + { + "include": "#string-double-quoted" + }, + { + "include": "#regex-single-quoted" + }, + { + "include": "#sql-string-single-quoted" + }, + { + "include": "#string-single-quoted" + } + ] + }, + "support": { + "patterns": [ + { + "match": "(?xi)\n\\b\napc_(\n store|sma_info|compile_file|clear_cache|cas|cache_info|inc|dec|define_constants|delete(_file)?|\n exists|fetch|load_constants|add|bin_(dump|load)(file)?\n)\\b", + "name": "support.function.apc.php" + }, + { + "match": "(?xi)\\b\n(\n shuffle|sizeof|sort|next|nat(case)?sort|count|compact|current|in_array|usort|uksort|uasort|\n pos|prev|end|each|extract|ksort|key(_exists)?|krsort|list|asort|arsort|rsort|reset|range|\n array(_(shift|sum|splice|search|slice|chunk|change_key_case|count_values|column|combine|\n (diff|intersect)(_(u)?(key|assoc))?|u(diff|intersect)(_(u)?assoc)?|unshift|unique|\n pop|push|pad|product|values|keys|key_exists|filter|fill(_keys)?|flip|walk(_recursive)?|\n reduce|replace(_recursive)?|reverse|rand|multisort|merge(_recursive)?|map)?)\n)\\b", + "name": "support.function.array.php" + }, + { + "match": "(?xi)\\b\n(\n show_source|sys_getloadavg|sleep|highlight_(file|string)|constant|connection_(aborted|status)|\n time_(nanosleep|sleep_until)|ignore_user_abort|die|define(d)?|usleep|uniqid|unpack|__halt_compiler|\n php_(check_syntax|strip_whitespace)|pack|eval|exit|get_browser\n)\\b", + "name": "support.function.basic_functions.php" + }, + { + "match": "(?i)\\bbc(scale|sub|sqrt|comp|div|pow(mod)?|add|mod|mul)\\b", + "name": "support.function.bcmath.php" + }, + { + "match": "(?i)\\bblenc_encrypt\\b", + "name": "support.function.blenc.php" + }, + { + "match": "(?i)\\bbz(compress|close|open|decompress|errstr|errno|error|flush|write|read)\\b", + "name": "support.function.bz2.php" + }, + { + "match": "(?xi)\\b\n(\n (French|Gregorian|Jewish|Julian)ToJD|cal_(to_jd|info|days_in_month|from_jd)|unixtojd|\n jdto(unix|jewish)|easter_(date|days)|JD(MonthName|To(Gregorian|Julian|French)|DayOfWeek)\n)\\b", + "name": "support.function.calendar.php" + }, + { + "match": "(?xi)\\b\n(\n class_alias|all_user_method(_array)?|is_(a|subclass_of)|__autoload|(class|interface|method|property|trait)_exists|\n get_(class(_(vars|methods))?|(called|parent)_class|object_vars|declared_(classes|interfaces|traits))\n)\\b", + "name": "support.function.classobj.php" + }, + { + "match": "(?xi)\\b\n(\n com_(create_guid|print_typeinfo|event_sink|load_typelib|get_active_object|message_pump)|\n variant_(sub|set(_type)?|not|neg|cast|cat|cmp|int|idiv|imp|or|div|date_(from|to)_timestamp|\n pow|eqv|fix|and|add|abs|round|get_type|xor|mod|mul)\n)\\b", + "name": "support.function.com.php" + }, + { + "begin": "(?i)\\b(isset|unset|eval|empty|list)\\b", + "name": "support.function.construct.php" + }, + { + "match": "(?i)\\b(print|echo)\\b", + "name": "support.function.construct.output.php" + }, + { + "match": "(?i)\\bctype_(space|cntrl|digit|upper|punct|print|lower|alnum|alpha|graph|xdigit)\\b", + "name": "support.function.ctype.php" + }, + { + "match": "(?xi)\\b\ncurl_(\n share_(close|init|setopt)|strerror|setopt(_array)?|copy_handle|close|init|unescape|pause|escape|\n errno|error|exec|version|file_create|reset|getinfo|\n multi_(strerror|setopt|select|close|init|info_read|(add|remove)_handle|getcontent|exec)\n)\\b", + "name": "support.function.curl.php" + }, + { + "match": "(?xi)\\b\n(\n strtotime|str[fp]time|checkdate|time|timezone_name_(from_abbr|get)|idate|\n timezone_((location|offset|transitions|version)_get|(abbreviations|identifiers)_list|open)|\n date(_(sun(rise|set)|sun_info|sub|create(_(immutable_)?from_format)?|timestamp_(get|set)|timezone_(get|set)|time_set|\n isodate_set|interval_(create_from_date_string|format)|offset_get|diff|default_timezone_(get|set)|date_set|\n parse(_from_format)?|format|add|get_last_errors|modify))?|\n localtime|get(date|timeofday)|gm(strftime|date|mktime)|microtime|mktime\n)\\b", + "name": "support.function.datetime.php" + }, + { + "match": "(?i)\\bdba_(sync|handlers|nextkey|close|insert|optimize|open|delete|popen|exists|key_split|firstkey|fetch|list|replace)\\b", + "name": "support.function.dba.php" + }, + { + "match": "(?i)\\bdbx_(sort|connect|compare|close|escape_string|error|query|fetch_row)\\b", + "name": "support.function.dbx.php" + }, + { + "match": "(?i)\\b(scandir|chdir|chroot|closedir|opendir|dir|rewinddir|readdir|getcwd)\\b", + "name": "support.function.dir.php" + }, + { + "match": "(?xi)\\b\neio_(\n sync(fs)?|sync_file_range|symlink|stat(vfs)?|sendfile|set_min_parallel|set_max_(idle|poll_(reqs|time)|parallel)|\n seek|n(threads|op|pending|reqs|ready)|chown|chmod|custom|close|cancel|truncate|init|open|dup2|unlink|utime|poll|\n event_loop|f(sync|stat(vfs)?|chown|chmod|truncate|datasync|utime|allocate)|write|lstat|link|rename|realpath|\n read(ahead|dir|link)?|rmdir|get_(event_stream|last_error)|grp(_(add|cancel|limit))?|mknod|mkdir|busy\n)\\b", + "name": "support.function.eio.php" + }, + { + "match": "(?xi)\\b\nenchant_(\n dict_(store_replacement|suggest|check|is_in_session|describe|quick_check|add_to_(personal|session)|get_error)|\n broker_(set_ordering|init|dict_exists|describe|free(_dict)?|list_dicts|request_(pwl_)?dict|get_error)\n)\\b", + "name": "support.function.enchant.php" + }, + { + "match": "(?i)\\bsplit(i)?|sql_regcase|ereg(i)?(_replace)?\\b", + "name": "support.function.ereg.php" + }, + { + "match": "(?i)\\b((restore|set)_(error_handler|exception_handler)|trigger_error|debug_(print_)?backtrace|user_error|error_(log|reporting|get_last))\\b", + "name": "support.function.errorfunc.php" + }, + { + "match": "(?i)\\bshell_exec|system|passthru|proc_(nice|close|terminate|open|get_status)|escapeshell(arg|cmd)|exec\\b", + "name": "support.function.exec.php" + }, + { + "match": "(?i)\\b(exif_(thumbnail|tagname|imagetype|read_data)|read_exif_data)\\b", + "name": "support.function.exif.php" + }, + { + "match": "(?xi)\\b\nfann_(\n (duplicate|length|merge|shuffle|subset)_train_data|scale_(train(_data)?|(input|output)(_train_data)?)|\n set_(scaling_params|sarprop_(step_error_(shift|threshold_factor)|temperature|weight_decay_shift)|\n cascade_(num_candidate_groups|candidate_(change_fraction|limit|stagnation_epochs)|\n output_(change_fraction|stagnation_epochs)|weight_multiplier|activation_(functions|steepnesses)|\n (max|min)_(cand|out)_epochs)|\n callback|training_algorithm|train_(error|stop)_function|(input|output)_scaling_params|error_log|\n quickprop_(decay|mu)|weight(_array)?|learning_(momentum|rate)|bit_fail_limit|\n activation_(function|steepness)(_(hidden|layer|output))?|\n rprop_((decrease|increase)_factor|delta_(max|min|zero)))|\n save(_train)?|num_(input|output)_train_data|copy|clear_scaling_params|cascadetrain_on_(file|data)|\n create_((sparse|shortcut|standard)(_array)?|train(_from_callback)?|from_file)|\n test(_data)?|train(_(on_(file|data)|epoch))?|init_weights|descale_(input|output|train)|destroy(_train)?|\n print_error|run|reset_(MSE|err(no|str))|read_train_from_file|randomize_weights|\n get_(sarprop_(step_error_(shift|threshold_factor)|temperature|weight_decay_shift)|num_(input|output|layers)|\n network_type|MSE|connection_(array|rate)|bias_array|bit_fail(_limit)?|\n cascade_(num_(candidates|candidate_groups)|(candidate|output)_(change_fraction|limit|stagnation_epochs)|\n weight_multiplier|activation_(functions|steepnesses)(_count)?|(max|min)_(cand|out)_epochs)|\n total_(connections|neurons)|training_algorithm|train_(error|stop)_function|err(no|str)|\n quickprop_(decay|mu)|learning_(momentum|rate)|layer_array|activation_(function|steepness)|\n rprop_((decrease|increase)_factor|delta_(max|min|zero)))\n)\\b", + "name": "support.function.fann.php" + }, + { + "match": "(?xi)\\b\n(\n symlink|stat|set_file_buffer|chown|chgrp|chmod|copy|clearstatcache|touch|tempnam|tmpfile|\n is_(dir|(uploaded_)?file|executable|link|readable|writ(e)?able)|disk_(free|total)_space|diskfreespace|\n dirname|delete|unlink|umask|pclose|popen|pathinfo|parse_ini_(file|string)|fscanf|fstat|fseek|fnmatch|\n fclose|ftell|ftruncate|file(size|[acm]time|type|inode|owner|perms|group)?|file_(exists|(get|put)_contents)|\n f(open|puts|putcsv|passthru|eof|flush|write|lock|read|gets(s)?|getc(sv)?)|lstat|lchown|lchgrp|link(info)?|\n rename|rewind|read(file|link)|realpath(_cache_(get|size))?|rmdir|glob|move_uploaded_file|mkdir|basename\n)\\b", + "name": "support.function.file.php" + }, + { + "match": "(?i)\\b(finfo_(set_flags|close|open|file|buffer)|mime_content_type)\\b", + "name": "support.function.fileinfo.php" + }, + { + "match": "(?i)\\bfilter_(has_var|input(_array)?|id|var(_array)?|list)\\b", + "name": "support.function.filter.php" + }, + { + "match": "(?i)\\bfastcgi_finish_request\\b", + "name": "support.function.fpm.php" + }, + { + "match": "(?i)\\b(call_user_(func|method)(_array)?|create_function|unregister_tick_function|forward_static_call(_array)?|function_exists|func_(num_args|get_arg(s)?)|register_(shutdown|tick)_function|get_defined_functions)\\b", + "name": "support.function.funchand.php" + }, + { + "match": "(?i)\\b((n)?gettext|textdomain|d((n)?gettext|c(n)?gettext)|bind(textdomain|_textdomain_codeset))\\b", + "name": "support.function.gettext.php" + }, + { + "match": "(?xi)\\b\ngmp_(\n scan[01]|strval|sign|sub|setbit|sqrt(rem)?|hamdist|neg|nextprime|com|clrbit|cmp|testbit|\n intval|init|invert|import|or|div(exact)?|div_(q|qr|r)|jacobi|popcount|pow(m)?|perfect_square|\n prob_prime|export|fact|legendre|and|add|abs|root(rem)?|random(_(bits|range))?|gcd(ext)?|xor|mod|mul\n)\\b", + "name": "support.function.gmp.php" + }, + { + "match": "(?i)\\bhash(_(hmac(_file)?|copy|init|update(_(file|stream))?|pbkdf2|equals|file|final|algos))?\\b", + "name": "support.function.hash.php" + }, + { + "match": "(?xi)\\b\n(\n http_(support|send_(status|stream|content_(disposition|type)|data|file|last_modified)|head|\n negotiate_(charset|content_type|language)|chunked_decode|cache_(etag|last_modified)|throttle|\n inflate|deflate|date|post_(data|fields)|put_(data|file|stream)|persistent_handles_(count|clean|ident)|\n parse_(cookie|headers|message|params)|redirect|request(_(method_(exists|name|(un)?register)|body_encode))?|\n get(_request_(headers|body(_stream)?))?|match_(etag|modified|request_header)|build_(cookie|str|url))|\n ob_(etag|deflate|inflate)handler\n)\\b", + "name": "support.function.http.php" + }, + { + "match": "(?i)\\b(iconv(_(str(pos|len|rpos)|substr|(get|set)_encoding|mime_(decode(_headers)?|encode)))?|ob_iconv_handler)\\b", + "name": "support.function.iconv.php" + }, + { + "match": "(?i)\\biis_((start|stop)_(service|server)|set_(script_map|server_rights|dir_security|app_settings)|(add|remove)_server|get_(script_map|service_state|server_(rights|by_(comment|path))|dir_security))\\b", + "name": "support.function.iisfunc.php" + }, + { + "match": "(?xi)\\b\n(\n iptc(embed|parse)|(jpeg|png)2wbmp|gd_info|getimagesize(fromstring)?|\n image(s[xy]|scale|(char|string)(up)?|set(style|thickness|tile|interpolation|pixel|brush)|savealpha|\n convolution|copy(resampled|resized|merge(gray)?)?|colors(forindex|total)|\n color(set|closest(alpha|hwb)?|transparent|deallocate|(allocate|exact|resolve)(alpha)?|at|match)|\n crop(auto)?|create(truecolor|from(string|jpeg|png|wbmp|webp|gif|gd(2(part)?)?|xpm|xbm))?|\n types|ttf(bbox|text)|truecolortopalette|istruecolor|interlace|2wbmp|destroy|dashedline|jpeg|\n _type_to_(extension|mime_type)|ps(slantfont|text|(encode|extend|free|load)font|bbox)|png|polygon|\n palette(copy|totruecolor)|ellipse|ft(text|bbox)|filter|fill|filltoborder|\n filled(arc|ellipse|polygon|rectangle)|font(height|width)|flip|webp|wbmp|line|loadfont|layereffect|\n antialias|affine(matrix(concat|get))?|alphablending|arc|rotate|rectangle|gif|gd(2)?|gammacorrect|\n grab(screen|window)|xbm)\n)\\b", + "name": "support.function.image.php" + }, + { + "match": "(?xi)\\b\n(\n sys_get_temp_dir|set_(time_limit|include_path|magic_quotes_runtime)|cli_(get|set)_process_title|\n ini_(alter|get(_all)?|restore|set)|zend_(thread_id|version|logo_guid)|dl|php(credits|info|version)|\n php_(sapi_name|ini_(scanned_files|loaded_file)|uname|logo_guid)|putenv|extension_loaded|version_compare|\n assert(_options)?|restore_include_path|gc_(collect_cycles|disable|enable(d)?)|getopt|\n get_(cfg_var|current_user|defined_constants|extension_funcs|include_path|included_files|loaded_extensions|\n magic_quotes_(gpc|runtime)|required_files|resources)|\n get(env|lastmod|rusage|my(inode|[gup]id))|\n memory_get_(peak_)?usage|main|magic_quotes_runtime\n)\\b", + "name": "support.function.info.php" + }, + { + "match": "(?xi)\\b\nibase_(\n set_event_handler|service_(attach|detach)|server_info|num_(fields|params)|name_result|connect|\n commit(_ret)?|close|trans|delete_user|drop_db|db_info|pconnect|param_info|prepare|err(code|msg)|\n execute|query|field_info|fetch_(assoc|object|row)|free_(event_handler|query|result)|wait_event|\n add_user|affected_rows|rollback(_ret)?|restore|gen_id|modify_user|maintain_db|backup|\n blob_(cancel|close|create|import|info|open|echo|add|get)\n)\\b", + "name": "support.function.interbase.php" + }, + { + "match": "(?xi)\\b\n(\n normalizer_(normalize|is_normalized)|idn_to_(unicode|utf8|ascii)|\n numfmt_(set_(symbol|(text_)?attribute|pattern)|create|(parse|format)(_currency)?|\n get_(symbol|(text_)?attribute|pattern|error_(code|message)|locale))|\n collator_(sort(_with_sort_keys)?|set_(attribute|strength)|compare|create|asort|\n get_(strength|sort_key|error_(code|message)|locale|attribute))|\n transliterator_(create(_(inverse|from_rules))?|transliterate|list_ids|get_error_(code|message))|\n intl(cal|tz)_get_error_(code|message)|intl_(is_failure|error_name|get_error_(code|message))|\n datefmt_(set_(calendar|lenient|pattern|timezone(_id)?)|create|is_lenient|parse|format(_object)?|localtime|\n get_(calendar(_object)?|time(type|zone(_id)?)|datetype|pattern|error_(code|message)|locale))|\n locale_(set_default|compose|canonicalize|parse|filter_matches|lookup|accept_from_http|\n get_(script|display_(script|name|variant|language|region)|default|primary_language|keywords|all_variants|region))|\n resourcebundle_(create|count|locales|get(_(error_(code|message)))?)|\n grapheme_(str(i?str|r?i?pos|len)|substr|extract)|\n msgfmt_(set_pattern|create|(format|parse)(_message)?|get_(pattern|error_(code|message)|locale))\n)\\b", + "name": "support.function.intl.php" + }, + { + "match": "(?i)\\bjson_(decode|encode|last_error(_msg)?)\\b", + "name": "support.function.json.php" + }, + { + "match": "(?xi)\\b\nldap_(\n start|tls|sort|search|sasl_bind|set_(option|rebind_proc)|(first|next)_(attribute|entry|reference)|\n connect|control_paged_result(_response)?|count_entries|compare|close|t61_to_8859|8859_to_t61|\n dn2ufn|delete|unbind|parse_(reference|result)|escape|errno|err2str|error|explode_dn|bind|\n free_result|list|add|rename|read|get_(option|dn|entries|values(_len)?|attributes)|modify(_batch)?|\n mod_(add|del|replace)\n)\\b", + "name": "support.function.ldap.php" + }, + { + "match": "(?i)\\blibxml_(set_(streams_context|external_entity_loader)|clear_errors|disable_entity_loader|use_internal_errors|get_(errors|last_error))\\b", + "name": "support.function.libxml.php" + }, + { + "match": "(?i)\\b(ezmlm_hash|mail)\\b", + "name": "support.function.mail.php" + }, + { + "match": "(?xi)\\b\n(\n (a)?(cos|sin|tan)(h)?|sqrt|srand|hypot|hexdec|ceil|is_(nan|(in)?finite)|octdec|dec(hex|oct|bin)|deg2rad|\n pi|pow|exp(m1)?|floor|fmod|lcg_value|log(1(p|0))?|atan2|abs|round|rand|rad2deg|getrandmax|\n mt_(srand|rand|getrandmax)|max|min|bindec|base_convert\n)\\b", + "name": "support.function.math.php" + }, + { + "match": "(?xi)\\b\nmb_(\n str(cut|str|to(lower|upper)|istr|ipos|imwidth|pos|width|len|rchr|richr|ripos|rpos)|\n substitute_character|substr(_count)?|split|send_mail|http_(input|output)|check_encoding|\n convert_(case|encoding|kana|variables)|internal_encoding|output_handler|decode_(numericentity|mimeheader)|\n detect_(encoding|order)|parse_str|preferred_mime_name|encoding_aliases|encode_(numericentity|mimeheader)|\n ereg(i(_replace)?)?|ereg_(search(_(get(pos|regs)|init|regs|(set)?pos))?|replace(_callback)?|match)|\n list_encodings|language|regex_(set_options|encoding)|get_info\n)\\b", + "name": "support.function.mbstring.php" + }, + { + "match": "(?xi)\\b\n(\n mcrypt_(\n cfb|create_iv|cbc|ofb|decrypt|encrypt|ecb|list_(algorithms|modes)|generic(_((de)?init|end))?|\n enc_(self_test|is_block_(algorithm|algorithm_mode|mode)|\n get_(supported_key_sizes|(block|iv|key)_size|(algorithms|modes)_name))|\n get_(cipher_name|(block|iv|key)_size)|\n module_(close|self_test|is_block_(algorithm|algorithm_mode|mode)|open|\n get_(supported_key_sizes|algo_(block|key)_size)))|\n mdecrypt_generic\n)\\b", + "name": "support.function.mcrypt.php" + }, + { + "match": "(?i)\\bmemcache_debug\\b", + "name": "support.function.memcache.php" + }, + { + "match": "(?i)\\bmhash(_(count|keygen_s2k|get_(hash_name|block_size)))?\\b", + "name": "support.function.mhash.php" + }, + { + "match": "(?i)\\b(log_(cmd_(insert|delete|update)|killcursor|write_batch|reply|getmore)|bson_(decode|encode))\\b", + "name": "support.function.mongo.php" + }, + { + "match": "(?xi)\\b\nmysql_(\n stat|set_charset|select_db|num_(fields|rows)|connect|client_encoding|close|create_db|escape_string|\n thread_id|tablename|insert_id|info|data_seek|drop_db|db_(name|query)|unbuffered_query|pconnect|ping|\n errno|error|query|field_(seek|name|type|table|flags|len)|fetch_(object|field|lengths|assoc|array|row)|\n free_result|list_(tables|dbs|processes|fields)|affected_rows|result|real_escape_string|\n get_(client|host|proto|server)_info\n)\\b", + "name": "support.function.mysql.php" + }, + { + "match": "(?xi)\\b\nmysqli_(\n ssl_set|store_result|stat|send_(query|long_data)|set_(charset|opt|local_infile_(default|handler))|\n stmt_(store_result|send_long_data|next_result|close|init|data_seek|prepare|execute|fetch|free_result|\n attr_(get|set)|result_metadata|reset|get_(result|warnings)|more_results|bind_(param|result))|\n select_db|slave_query|savepoint|next_result|change_user|character_set_name|connect|commit|\n client_encoding|close|thread_safe|init|options|(enable|disable)_(reads_from_master|rpl_parse)|\n dump_debug_info|debug|data_seek|use_result|ping|poll|param_count|prepare|escape_string|execute|\n embedded_server_(start|end)|kill|query|field_seek|free_result|autocommit|rollback|report|refresh|\n fetch(_(object|fields|field(_direct)?|assoc|all|array|row))?|rpl_(parse_enabled|probe|query_type)|\n release_savepoint|reap_async_query|real_(connect|escape_string|query)|more_results|multi_query|\n get_(charset|connection_stats|client_(stats|info|version)|cache_stats|warnings|links_stats|metadata)|\n master_query|bind_(param|result)|begin_transaction\n)\\b", + "name": "support.function.mysqli.php" + }, + { + "match": "(?i)\\bmysqlnd_memcache_(set|get_config)\\b", + "name": "support.function.mysqlnd-memcache.php" + }, + { + "match": "(?i)\\bmysqlnd_ms_(set_(user_pick_server|qos)|dump_servers|query_is_select|fabric_select_(shard|global)|get_(stats|last_(used_connection|gtid))|xa_(commit|rollback|gc|begin)|match_wild)\\b", + "name": "support.function.mysqlnd-ms.php" + }, + { + "match": "(?i)\\bmysqlnd_qc_(set_(storage_handler|cache_condition|is_select|user_handlers)|clear_cache|get_(normalized_query_trace_log|core_stats|cache_info|query_trace_log|available_handlers))\\b", + "name": "support.function.mysqlnd-qc.php" + }, + { + "match": "(?i)\\bmysqlnd_uh_(set_(statement|connection)_proxy|convert_to_mysqlnd)\\b", + "name": "support.function.mysqlnd-uh.php" + }, + { + "match": "(?xi)\\b\n(\n syslog|socket_(set_(blocking|timeout)|get_status)|set(raw)?cookie|http_response_code|openlog|\n headers_(list|sent)|header(_(register_callback|remove))?|checkdnsrr|closelog|inet_(ntop|pton)|ip2long|\n openlog|dns_(check_record|get_(record|mx))|define_syslog_variables|(p)?fsockopen|long2ip|\n get(servby(name|port)|host(name|by(name(l)?|addr))|protoby(name|number)|mxrr)\n)\\b", + "name": "support.function.network.php" + }, + { + "match": "(?i)\\bnsapi_(virtual|response_headers|request_headers)\\b", + "name": "support.function.nsapi.php" + }, + { + "match": "(?xi)\\b\n(\n oci(statementtype|setprefetch|serverversion|savelob(file)?|numcols|new(collection|cursor|descriptor)|nlogon|\n column(scale|size|name|type(raw)?|isnull|precision)|coll(size|trim|assign(elem)?|append|getelem|max)|commit|\n closelob|cancel|internaldebug|definebyname|plogon|parse|error|execute|fetch(statement|into)?|\n free(statement|collection|cursor|desc)|write(temporarylob|lobtofile)|loadlob|log(on|off)|rowcount|rollback|\n result|bindbyname)|\n oci_(statement_type|set_(client_(info|identifier)|prefetch|edition|action|module_name)|server_version|\n num_(fields|rows)|new_(connect|collection|cursor|descriptor)|connect|commit|client_version|close|cancel|\n internal_debug|define_by_name|pconnect|password_change|parse|error|execute|bind_(array_)?by_name|\n field_(scale|size|name|type(_raw)?|is_null|precision)|fetch(_(object|assoc|all|array|row))?|\n free_(statement|descriptor)|lob_(copy|is_equal)|rollback|result|get_implicit_resultset)\n)\\b", + "name": "support.function.oci8.php" + }, + { + "match": "(?i)\\bopcache_(compile_file|invalidate|reset|get_(status|configuration))\\b", + "name": "support.function.opcache.php" + }, + { + "match": "(?xi)\\b\nopenssl_(\n sign|spki_(new|export(_challenge)?|verify)|seal|csr_(sign|new|export(_to_file)?|get_(subject|public_key))|\n cipher_iv_length|open|dh_compute_key|digest|decrypt|public_(decrypt|encrypt)|encrypt|error_string|\n pkcs12_(export(_to_file)?|read)|pkcs7_(sign|decrypt|encrypt|verify)|verify|free_key|random_pseudo_bytes|\n pkey_(new|export(_to_file)?|free|get_(details|public|private))|private_(decrypt|encrypt)|pbkdf2|\n get_((cipher|md)_methods|cert_locations|(public|private)key)|\n x509_(check_private_key|checkpurpose|parse|export(_to_file)?|fingerprint|free|read)\n)\\b", + "name": "support.function.openssl.php" + }, + { + "match": "(?xi)\\b\n(\n output_(add_rewrite_var|reset_rewrite_vars)|flush|\n ob_(start|clean|implicit_flush|end_(clean|flush)|flush|list_handlers|gzhandler|\n get_(status|contents|clean|flush|length|level))\n)\\b", + "name": "support.function.output.php" + }, + { + "match": "(?i)\\bpassword_(hash|needs_rehash|verify|get_info)\\b", + "name": "support.function.password.php" + }, + { + "match": "(?xi)\\b\npcntl_(\n strerror|signal(_dispatch)?|sig(timedwait|procmask|waitinfo)|setpriority|errno|exec|fork|\n w(stopsig|termsig|if(stopped|signaled|exited))|wait(pid)?|alarm|getpriority|get_last_error\n)\\b", + "name": "support.function.pcntl.php" + }, + { + "match": "(?xi)\\b\npg_(\n socket|send_(prepare|execute|query(_params)?)|set_(client_encoding|error_verbosity)|select|host|\n num_(fields|rows)|consume_input|connection_(status|reset|busy)|connect(_poll)?|convert|copy_(from|to)|\n client_encoding|close|cancel_query|tty|transaction_status|trace|insert|options|delete|dbname|untrace|\n unescape_bytea|update|pconnect|ping|port|put_line|parameter_status|prepare|version|query(_params)?|\n escape_(string|identifier|literal|bytea)|end_copy|execute|flush|free_result|last_(notice|error|oid)|\n field_(size|num|name|type(_oid)?|table|is_null|prtlen)|affected_rows|result_(status|seek|error(_field)?)|\n fetch_(object|assoc|all(_columns)?|array|row|result)|get_(notify|pid|result)|meta_data|\n lo_(seek|close|create|tell|truncate|import|open|unlink|export|write|read(_all)?)|\n)\\b", + "name": "support.function.pgsql.php" + }, + { + "match": "(?i)\\b(virtual|getallheaders|apache_((get|set)env|note|child_terminate|lookup_uri|response_headers|reset_timeout|request_headers|get_(version|modules)))\\b", + "name": "support.function.php_apache.php" + }, + { + "match": "(?i)\\bdom_import_simplexml\\b", + "name": "support.function.php_dom.php" + }, + { + "match": "(?xi)\\b\nftp_(\n ssl_connect|systype|site|size|set_option|nlist|nb_(continue|f?(put|get))|ch(dir|mod)|connect|cdup|close|\n delete|put|pwd|pasv|exec|quit|f(put|get)|login|alloc|rename|raw(list)?|rmdir|get(_option)?|mdtm|mkdir\n)\\b", + "name": "support.function.php_ftp.php" + }, + { + "match": "(?xi)\\b\nimap_(\n (create|delete|list|rename|scan)(mailbox)?|status|sort|subscribe|set_quota|set(flag_full|acl)|search|savebody|\n num_(recent|msg)|check|close|clearflag_full|thread|timeout|open|header(info)?|headers|append|alerts|reopen|\n 8bit|unsubscribe|undelete|utf7_(decode|encode)|utf8|uid|ping|errors|expunge|qprint|gc|\n fetch(structure|header|text|mime|body)|fetch_overview|lsub|list(scan|subscribed)|last_error|\n rfc822_(parse_(headers|adrlist)|write_address)|get(subscribed|acl|mailboxes)|get_quota(root)?|\n msgno|mime_header_decode|mail_(copy|compose|move)|mail|mailboxmsginfo|binary|body(struct)?|base64\n)\\b", + "name": "support.function.php_imap.php" + }, + { + "match": "(?xi)\\b\nmssql_(\n select_db|num_(fields|rows)|next_result|connect|close|init|data_seek|pconnect|execute|query|\n field_(seek|name|type|length)|fetch_(object|field|assoc|array|row|batch)|free_(statement|result)|\n rows_affected|result|guid_string|get_last_message|min_(error|message)_severity|bind\n)\\b", + "name": "support.function.php_mssql.php" + }, + { + "match": "(?xi)\\b\nodbc_(\n statistics|specialcolumns|setoption|num_(fields|rows)|next_result|connect|columns|columnprivileges|commit|\n cursor|close(_all)?|tables|tableprivileges|do|data_source|pconnect|primarykeys|procedures|procedurecolumns|\n prepare|error(msg)?|exec(ute)?|field_(scale|num|name|type|precision|len)|foreignkeys|free_result|\n fetch_(into|object|array|row)|longreadlen|autocommit|rollback|result(_all)?|gettypeinfo|binmode\n)\\b", + "name": "support.function.php_odbc.php" + }, + { + "match": "(?i)\\bpreg_(split|quote|filter|last_error|replace(_callback)?|grep|match(_all)?)\\b", + "name": "support.function.php_pcre.php" + }, + { + "match": "(?i)\\b(spl_(classes|object_hash|autoload(_(call|unregister|extensions|functions|register))?)|class_(implements|uses|parents)|iterator_(count|to_array|apply))\\b", + "name": "support.function.php_spl.php" + }, + { + "match": "(?i)\\bzip_(close|open|entry_(name|compressionmethod|compressedsize|close|open|filesize|read)|read)\\b", + "name": "support.function.php_zip.php" + }, + { + "match": "(?xi)\\b\nposix_(\n strerror|set(s|e?u|[ep]?g)id|ctermid|ttyname|times|isatty|initgroups|uname|errno|kill|access|\n get(sid|cwd|uid|pid|ppid|pwnam|pwuid|pgid|pgrp|euid|egid|login|rlimit|gid|grnam|groups|grgid)|\n get_last_error|mknod|mkfifo\n)\\b", + "name": "support.function.posix.php" + }, + { + "match": "(?i)\\bset(thread|proc)title\\b", + "name": "support.function.proctitle.php" + }, + { + "match": "(?xi)\\b\npspell_(\n store_replacement|suggest|save_wordlist|new(_(config|personal))?|check|clear_session|\n config_(save_repl|create|ignore|(data|dict)_dir|personal|runtogether|repl|mode)|add_to_(session|personal)\n)\\b", + "name": "support.function.pspell.php" + }, + { + "match": "(?i)\\breadline(_(completion_function|clear_history|callback_(handler_(install|remove)|read_char)|info|on_new_line|write_history|list_history|add_history|redisplay|read_history))?\\b", + "name": "support.function.readline.php" + }, + { + "match": "(?i)\\brecode(_(string|file))?\\b", + "name": "support.function.recode.php" + }, + { + "match": "(?i)\\brrd(c_disconnect|_(create|tune|info|update|error|version|first|fetch|last(update)?|restore|graph|xport))\\b", + "name": "support.function.rrd.php" + }, + { + "match": "(?xi)\\b\n(\n shm_((get|has|remove|put)_var|detach|attach|remove)|sem_(acquire|release|remove|get)|ftok|\n msg_((get|remove|set|stat)_queue|send|queue_exists|receive)\n)\\b", + "name": "support.function.sem.php" + }, + { + "match": "(?xi)\\b\nsession_(\n status|start|set_(save_handler|cookie_params)|save_path|name|commit|cache_(expire|limiter)|\n is_registered|id|destroy|decode|unset|unregister|encode|write_close|abort|reset|register(_shutdown)?|\n regenerate_id|get_cookie_params|module_name\n)\\b", + "name": "support.function.session.php" + }, + { + "match": "(?i)\\bshmop_(size|close|open|delete|write|read)\\b", + "name": "support.function.shmop.php" + }, + { + "match": "(?i)\\bsimplexml_(import_dom|load_(string|file))\\b", + "name": "support.function.simplexml.php" + }, + { + "match": "(?xi)\\b\n(\n snmp(walk(oid)?|realwalk|get(next)?|set)|\n snmp_(set_(valueretrieval|quick_print|enum_print|oid_(numeric_print|output_format))|read_mib|\n get_(valueretrieval|quick_print))|\n snmp[23]_(set|walk|real_walk|get(next)?)\n)\\b", + "name": "support.function.snmp.php" + }, + { + "match": "(?i)\\b(is_soap_fault|use_soap_error_handler)\\b", + "name": "support.function.soap.php" + }, + { + "match": "(?xi)\\b\nsocket_(\n shutdown|strerror|send(to|msg)?|set_((non)?block|option)|select|connect|close|clear_error|bind|\n create(_(pair|listen))?|cmsg_space|import_stream|write|listen|last_error|accept|recv(from|msg)?|\n read|get(peer|sock)name|get_option\n)\\b", + "name": "support.function.sockets.php" + }, + { + "match": "(?xi)\\b\nsqlite_(\n single_query|seek|has_(more|prev)|num_(fields|rows)|next|changes|column|current|close|\n create_(aggregate|function)|open|unbuffered_query|udf_(decode|encode)_binary|popen|prev|\n escape_string|error_string|exec|valid|key|query|field_name|factory|\n fetch_(string|single|column_types|object|all|array)|lib(encoding|version)|\n last_(insert_rowid|error)|array_query|rewind|busy_timeout\n)\\b", + "name": "support.function.sqlite.php" + }, + { + "match": "(?xi)\\b\nsqlsrv_(\n send_stream_data|server_info|has_rows|num_(fields|rows)|next_result|connect|configure|commit|\n client_info|close|cancel|prepare|errors|execute|query|field_metadata|fetch(_(array|object))?|\n free_stmt|rows_affected|rollback|get_(config|field)|begin_transaction\n)\\b", + "name": "support.function.sqlsrv.php" + }, + { + "match": "(?xi)\\b\nstats_(\n harmonic_mean|covariance|standard_deviation|skew|\n cdf_(noncentral_(chisquare|f)|negative_binomial|chisquare|cauchy|t|uniform|poisson|exponential|f|weibull|\n logistic|laplace|gamma|binomial|beta)|\n stat_(noncentral_t|correlation|innerproduct|independent_t|powersum|percentile|paired_t|gennch|binomial_coef)|\n dens_(normal|negative_binomial|chisquare|cauchy|t|pmf_(hypergeometric|poisson|binomial)|exponential|f|\n weibull|logistic|laplace|gamma|beta)|\n den_uniform|variance|kurtosis|absolute_deviation|\n rand_(setall|phrase_to_seeds|ranf|get_seeds|\n gen_(noncentral_[ft]|noncenral_chisquare|normal|chisquare|t|int|\n i(uniform|poisson|binomial(_negative)?)|exponential|f(uniform)?|gamma|beta))\n)\\b", + "name": "support.function.stats.php" + }, + { + "match": "(?xi)\\b\n(\n set_socket_blocking|\n stream_(socket_(shutdown|sendto|server|client|pair|enable_crypto|accept|recvfrom|get_name)|\n set_(chunk_size|timeout|(read|write)_buffer|blocking)|select|notification_callback|supports_lock|\n context_(set_(option|default|params)|create|get_(options|default|params))|copy_to_stream|is_local|\n encoding|filter_(append|prepend|register|remove)|wrapper_((un)?register|restore)|\n resolve_include_path|register_wrapper|get_(contents|transports|filters|wrappers|line|meta_data)|\n bucket_(new|prepend|append|make_writeable)\n )\n)\\b", + "name": "support.function.streamsfuncs.php" + }, + { + "match": "(?xi)\\b\n(\n money_format|md5(_file)?|metaphone|bin2hex|sscanf|sha1(_file)?|\n str(str|c?spn|n(at)?(case)?cmp|chr|coll|(case)?cmp|to(upper|lower)|tok|tr|istr|pos|pbrk|len|rchr|ri?pos|rev)|\n str_(getcsv|ireplace|pad|repeat|replace|rot13|shuffle|split|word_count)|\n strip(c?slashes|os)|strip_tags|similar_text|soundex|substr(_(count|compare|replace))?|setlocale|\n html(specialchars(_decode)?|entities)|html_entity_decode|hex2bin|hebrev(c)?|number_format|nl2br|nl_langinfo|\n chop|chunk_split|chr|convert_(cyr_string|uu(decode|encode))|count_chars|crypt|crc32|trim|implode|ord|\n uc(first|words)|join|parse_str|print(f)?|echo|explode|v?[fs]?printf|quoted_printable_(decode|encode)|\n quotemeta|wordwrap|lcfirst|[lr]trim|localeconv|levenshtein|addc?slashes|get_html_translation_table\n)\\b", + "name": "support.function.string.php" + }, + { + "match": "(?xi)\\b\nsybase_(\n set_message_handler|select_db|num_(fields|rows)|connect|close|deadlock_retry_count|data_seek|\n unbuffered_query|pconnect|query|field_seek|fetch_(object|field|assoc|array|row)|free_result|\n affected_rows|result|get_last_message|min_(client|error|message|server)_severity\n)\\b", + "name": "support.function.sybase.php" + }, + { + "match": "(?i)\\b(taint|is_tainted|untaint)\\b", + "name": "support.function.taint.php" + }, + { + "match": "(?xi)\\b\n(\n tidy_((get|set)opt|set_encoding|save_config|config_count|clean_repair|is_(xhtml|xml)|diagnose|\n (access|error|warning)_count|load_config|reset_config|(parse|repair)_(string|file)|\n get_(status|html(_ver)?|head|config|output|opt_doc|root|release|body))|\n ob_tidyhandler\n)\\b", + "name": "support.function.tidy.php" + }, + { + "match": "(?i)\\btoken_(name|get_all)\\b", + "name": "support.function.tokenizer.php" + }, + { + "match": "(?xi)\\b\ntrader_(\n stoch(f|r|rsi)?|stddev|sin(h)?|sum|sub|set_(compat|unstable_period)|sqrt|sar(ext)?|sma|\n ht_(sine|trend(line|mode)|dc(period|phase)|phasor)|natr|cci|cos(h)?|correl|\n cdl(shootingstar|shortline|sticksandwich|stalledpattern|spinningtop|separatinglines|\n hikkake(mod)?|highwave|homingpigeon|hangingman|harami(cross)?|hammer|concealbabyswall|\n counterattack|closingmarubozu|thrusting|tasukigap|takuri|tristar|inneck|invertedhammer|\n identical3crows|2crows|onneck|doji(star)?|darkcloudcover|dragonflydoji|unique3river|\n upsidegap2crows|3(starsinsouth|inside|outside|whitesoldiers|linestrike|blackcrows)|\n piercing|engulfing|evening(doji)?star|kicking(bylength)?|longline|longleggeddoji|\n ladderbottom|advanceblock|abandonedbaby|risefall3methods|rickshawman|gapsidesidewhite|\n gravestonedoji|xsidegap3methods|morning(doji)?star|mathold|matchinglow|marubozu|\n belthold|breakaway)|\n ceil|cmo|tsf|typprice|t3|tema|tan(h)?|trix|trima|trange|obv|div|dema|dx|ultosc|ppo|\n plus_d[im]|errno|exp|ema|var|kama|floor|wclprice|willr|wma|ln|log10|bop|beta|bbands|\n linearreg(_(slope|intercept|angle))?|asin|acos|atan|atr|adosc|ad|add|adx(r)?|apo|avgprice|\n aroon(osc)?|rsi|roc|rocp|rocr(100)?|get_(compat|unstable_period)|min(index)?|minus_d[im]|\n minmax(index)?|mid(point|price)|mom|mult|medprice|mfi|macd(ext|fix)?|mavp|max(index)?|ma(ma)?\n)\\b", + "name": "support.function.trader.php" + }, + { + "match": "(?i)\\buopz_(copy|compose|implement|overload|delete|undefine|extend|function|flags|restore|rename|redefine|backup)\\b", + "name": "support.function.uopz.php" + }, + { + "match": "(?i)\\b(http_build_query|(raw)?url(decode|encode)|parse_url|get_(headers|meta_tags)|base64_(decode|encode))\\b", + "name": "support.function.url.php" + }, + { + "match": "(?xi)\\b\n(\n strval|settype|serialize|(bool|double|float)val|debug_zval_dump|intval|import_request_variables|isset|\n is_(scalar|string|null|numeric|callable|int(eger)?|object|double|float|long|array|resource|real|bool)|\n unset|unserialize|print_r|empty|var_(dump|export)|gettype|get_(defined_vars|resource_type)\n)\\b", + "name": "support.function.var.php" + }, + { + "match": "(?i)\\bwddx_(serialize_(value|vars)|deserialize|packet_(start|end)|add_vars)\\b", + "name": "support.function.wddx.php" + }, + { + "match": "(?i)\\bxhprof_(sample_)?(disable|enable)\\b", + "name": "support.function.xhprof.php" + }, + { + "match": "(?xi)\n\\b\n(\n utf8_(decode|encode)|\n xml_(set_((notation|(end|start)_namespace|unparsed_entity)_decl_handler|\n (character_data|default|element|external_entity_ref|processing_instruction)_handler|object)|\n parse(_into_struct)?|parser_((get|set)_option|create(_ns)?|free)|error_string|\n get_(current_((column|line)_number|byte_index)|error_code))\n)\\b", + "name": "support.function.xml.php" + }, + { + "match": "(?xi)\\b\nxmlrpc_(\n server_(call_method|create|destroy|add_introspection_data|register_(introspection_callback|method))|\n is_fault|decode(_request)?|parse_method_descriptions|encode(_request)?|(get|set)_type\n)\\b", + "name": "support.function.xmlrpc.php" + }, + { + "match": "(?xi)\\b\nxmlwriter_(\n (end|start|write)_(comment|cdata|dtd(_(attlist|entity|element))?|document|pi|attribute|element)|\n (start|write)_(attribute|element)_ns|write_raw|set_indent(_string)?|text|output_memory|open_(memory|uri)|\n full_end_element|flush|\n)\\b", + "name": "support.function.xmlwriter.php" + }, + { + "match": "(?xi)\\b\n(\n zlib_(decode|encode|get_coding_type)|readgzfile|\n gz(seek|compress|close|tell|inflate|open|decode|deflate|uncompress|puts|passthru|encode|eof|file|\n write|rewind|read|getc|getss?)\n)\\b", + "name": "support.function.zlib.php" + }, + { + "match": "(?i)\\bis_int(eger)?\\b", + "name": "support.function.alias.php" + } + ] + }, + "switch_statement": { + "patterns": [ + { + "match": "\\s+(?=switch\\b)" + }, + { + "begin": "\\bswitch\\b(?!\\s*\\(.*\\)\\s*:)", + "beginCaptures": { + "0": { + "name": "keyword.control.switch.php" + } + }, + "end": "}|(?=\\?>)", + "endCaptures": { + "0": { + "name": "punctuation.definition.section.switch-block.end.bracket.curly.php" + } + }, + "name": "meta.switch-statement.php", + "patterns": [ + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.switch-expression.begin.bracket.round.php" + } + }, + "end": "\\)|(?=\\?>)", + "endCaptures": { + "0": { + "name": "punctuation.definition.switch-expression.end.bracket.round.php" + } + }, + "patterns": [ + { + "include": "#language" + } + ] + }, + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.section.switch-block.begin.bracket.curly.php" + } + }, + "end": "(?=}|\\?>)", + "patterns": [ + { + "include": "#language" + } + ] + } + ] + } + ] + }, + "use-inner": { + "patterns": [ + { + "include": "#comments" + }, + { + "begin": "(?i)\\b(as)\\s+", + "beginCaptures": { + "1": { + "name": "keyword.other.use-as.php" + } + }, + "end": "(?i)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*", + "endCaptures": { + "0": { + "name": "entity.other.alias.php" + } + } + }, + { + "include": "#class-name" + }, + { + "match": ",", + "name": "punctuation.separator.delimiter.php" + } + ] + }, + "var_basic": { + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.variable.php" + } + }, + "match": "(?i)(\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*\\b", + "name": "variable.other.php" + } + ] + }, + "var_global": { + "captures": { + "1": { + "name": "punctuation.definition.variable.php" + } + }, + "match": "(\\$)((_(COOKIE|FILES|GET|POST|REQUEST))|arg(v|c))\\b", + "name": "variable.other.global.php" + }, + "var_global_safer": { + "captures": { + "1": { + "name": "punctuation.definition.variable.php" + } + }, + "match": "(\\$)((GLOBALS|_(ENV|SERVER|SESSION)))", + "name": "variable.other.global.safer.php" + }, + "var_language": { + "match": "(\\$)this\\b", + "name": "variable.language.this.php", + "captures": { + "1": { + "name": "punctuation.definition.variable.php" + } + } + }, + "variable-name": { + "patterns": [ + { + "include": "#var_global" + }, + { + "include": "#var_global_safer" + }, + { + "captures": { + "1": { + "name": "variable.other.php" + }, + "2": { + "name": "punctuation.definition.variable.php" + }, + "4": { + "name": "keyword.operator.class.php" + }, + "5": { + "name": "variable.other.property.php" + }, + "6": { + "name": "punctuation.section.array.begin.php" + }, + "7": { + "name": "constant.numeric.index.php" + }, + "8": { + "name": "variable.other.index.php" + }, + "9": { + "name": "punctuation.definition.variable.php" + }, + "10": { + "name": "string.unquoted.index.php" + }, + "11": { + "name": "punctuation.section.array.end.php" + } + }, + "match": "(?xi)\n((\\$)(?<name>[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*))\n(?:\n (->)(\\g<name>)\n |\n (\\[)(?:(\\d+)|((\\$)\\g<name>)|([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*))(\\])\n)?" + }, + { + "captures": { + "1": { + "name": "variable.other.php" + }, + "2": { + "name": "punctuation.definition.variable.php" + }, + "4": { + "name": "punctuation.definition.variable.php" + } + }, + "match": "(?i)((\\${)(?<name>[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)(}))" + } + ] + }, + "variables": { + "patterns": [ + { + "include": "#var_language" + }, + { + "include": "#var_global" + }, + { + "include": "#var_global_safer" + }, + { + "include": "#var_basic" + }, + { + "begin": "\\${(?=.*?})", + "beginCaptures": { + "0": { + "name": "punctuation.definition.variable.php" + } + }, + "end": "}", + "endCaptures": { + "0": { + "name": "punctuation.definition.variable.php" + } + }, + "patterns": [ + { + "include": "#language" + } + ] + } + ] + } + } +} diff --git a/docs/shiki/languages/c.tmLanguage.json b/docs/shiki/languages/c.tmLanguage.json new file mode 100644 index 00000000..cf111bf1 --- /dev/null +++ b/docs/shiki/languages/c.tmLanguage.json @@ -0,0 +1,3555 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/jeff-hykin/better-c-syntax/blob/master/autogenerated/c.tmLanguage.json", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/jeff-hykin/better-c-syntax/commit/34712a6106a4ffb0a04d2fa836fd28ff6c5849a4", + "name": "c", + "scopeName": "source.c", + "patterns": [ + { + "include": "#preprocessor-rule-enabled" + }, + { + "include": "#preprocessor-rule-disabled" + }, + { + "include": "#preprocessor-rule-conditional" + }, + { + "include": "#predefined_macros" + }, + { + "include": "#comments" + }, + { + "include": "#switch_statement" + }, + { + "include": "#anon_pattern_1" + }, + { + "include": "#storage_types" + }, + { + "include": "#anon_pattern_2" + }, + { + "include": "#anon_pattern_3" + }, + { + "include": "#anon_pattern_4" + }, + { + "include": "#anon_pattern_5" + }, + { + "include": "#anon_pattern_6" + }, + { + "include": "#anon_pattern_7" + }, + { + "include": "#operators" + }, + { + "include": "#numbers" + }, + { + "include": "#strings" + }, + { + "include": "#anon_pattern_range_1" + }, + { + "include": "#anon_pattern_range_2" + }, + { + "include": "#anon_pattern_range_3" + }, + { + "include": "#pragma-mark" + }, + { + "include": "#anon_pattern_range_4" + }, + { + "include": "#anon_pattern_range_5" + }, + { + "include": "#anon_pattern_range_6" + }, + { + "include": "#anon_pattern_8" + }, + { + "include": "#anon_pattern_9" + }, + { + "include": "#anon_pattern_10" + }, + { + "include": "#anon_pattern_11" + }, + { + "include": "#anon_pattern_12" + }, + { + "include": "#anon_pattern_13" + }, + { + "include": "#block" + }, + { + "include": "#parens" + }, + { + "include": "#anon_pattern_range_7" + }, + { + "include": "#line_continuation_character" + }, + { + "include": "#anon_pattern_range_8" + }, + { + "include": "#anon_pattern_range_9" + }, + { + "include": "#anon_pattern_14" + }, + { + "include": "#anon_pattern_15" + } + ], + "repository": { + "access-method": { + "name": "meta.function-call.member.c", + "begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))\\s*(?:(\\.)|(->))((?:(?:[a-zA-Z_][a-zA-Z_0-9]*)\\s*(?:(?:\\.)|(?:->)))*)\\s*([a-zA-Z_][a-zA-Z_0-9]*)(\\()", + "beginCaptures": { + "1": { + "name": "variable.object.c" + }, + "2": { + "name": "punctuation.separator.dot-access.c" + }, + "3": { + "name": "punctuation.separator.pointer-access.c" + }, + "4": { + "patterns": [ + { + "match": "\\.", + "name": "punctuation.separator.dot-access.c" + }, + { + "match": "->", + "name": "punctuation.separator.pointer-access.c" + }, + { + "match": "[a-zA-Z_][a-zA-Z_0-9]*", + "name": "variable.object.c" + }, + { + "name": "everything.else.c", + "match": ".+" + } + ] + }, + "5": { + "name": "entity.name.function.member.c" + }, + "6": { + "name": "punctuation.section.arguments.begin.bracket.round.function.member.c" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.function.member.c" + } + }, + "patterns": [ + { + "include": "#function-call-innards" + } + ] + }, + "anon_pattern_1": { + "match": "\\b(break|continue|do|else|for|goto|if|_Pragma|return|while)\\b", + "name": "keyword.control.c" + }, + "anon_pattern_10": { + "match": "(?x) \\b\n(int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t\n|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t\n|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t\n|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t\n|uintmax_t|uintmax_t)\n\\b", + "name": "support.type.stdint.c" + }, + "anon_pattern_11": { + "match": "\\b(noErr|kNilOptions|kInvalidID|kVariableLengthArray)\\b", + "name": "support.constant.mac-classic.c" + }, + "anon_pattern_12": { + "match": "(?x) \\b\n(AbsoluteTime|Boolean|Byte|ByteCount|ByteOffset|BytePtr|CompTimeValue|ConstLogicalAddress|ConstStrFileNameParam\n|ConstStringPtr|Duration|Fixed|FixedPtr|Float32|Float32Point|Float64|Float80|Float96|FourCharCode|Fract|FractPtr\n|Handle|ItemCount|LogicalAddress|OptionBits|OSErr|OSStatus|OSType|OSTypePtr|PhysicalAddress|ProcessSerialNumber\n|ProcessSerialNumberPtr|ProcHandle|Ptr|ResType|ResTypePtr|ShortFixed|ShortFixedPtr|SignedByte|SInt16|SInt32|SInt64\n|SInt8|Size|StrFileName|StringHandle|StringPtr|TimeBase|TimeRecord|TimeScale|TimeValue|TimeValue64|UInt16|UInt32\n|UInt64|UInt8|UniChar|UniCharCount|UniCharCountPtr|UniCharPtr|UnicodeScalarValue|UniversalProcHandle|UniversalProcPtr\n|UnsignedFixed|UnsignedFixedPtr|UnsignedWide|UTF16Char|UTF32Char|UTF8Char)\n\\b", + "name": "support.type.mac-classic.c" + }, + "anon_pattern_13": { + "match": "\\b([A-Za-z0-9_]+_t)\\b", + "name": "support.type.posix-reserved.c" + }, + "anon_pattern_14": { + "match": ";", + "name": "punctuation.terminator.statement.c" + }, + "anon_pattern_15": { + "match": ",", + "name": "punctuation.separator.delimiter.c" + }, + "anon_pattern_2": { + "match": "typedef", + "name": "keyword.other.typedef.c" + }, + "anon_pattern_3": { + "match": "\\b(const|extern|register|restrict|static|volatile|inline)\\b", + "name": "storage.modifier.c" + }, + "anon_pattern_4": { + "match": "\\bk[A-Z]\\w*\\b", + "name": "constant.other.variable.mac-classic.c" + }, + "anon_pattern_5": { + "match": "\\bg[A-Z]\\w*\\b", + "name": "variable.other.readwrite.global.mac-classic.c" + }, + "anon_pattern_6": { + "match": "\\bs[A-Z]\\w*\\b", + "name": "variable.other.readwrite.static.mac-classic.c" + }, + "anon_pattern_7": { + "match": "\\b(NULL|true|false|TRUE|FALSE)\\b", + "name": "constant.language.c" + }, + "anon_pattern_8": { + "match": "\\b(u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t)\\b", + "name": "support.type.sys-types.c" + }, + "anon_pattern_9": { + "match": "\\b(pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t)\\b", + "name": "support.type.pthread.c" + }, + "anon_pattern_range_1": { + "name": "meta.preprocessor.macro.c", + "begin": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((#)\\s*define\\b)\\s+((?<!\\w)[a-zA-Z_]\\w*(?!\\w))(?:(\\()([^()\\\\]+)(\\)))?", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.c punctuation.definition.comment.begin.c" + }, + "3": { + "name": "comment.block.c" + }, + "4": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.c punctuation.definition.comment.end.c" + }, + { + "match": "\\*", + "name": "comment.block.c" + } + ] + }, + "5": { + "name": "keyword.control.directive.define.c" + }, + "6": { + "name": "punctuation.definition.directive.c" + }, + "7": { + "name": "entity.name.function.preprocessor.c" + }, + "8": { + "name": "punctuation.definition.parameters.begin.c" + }, + "9": { + "patterns": [ + { + "match": "(?<=[(,])\\s*((?<!\\w)[a-zA-Z_]\\w*(?!\\w))\\s*", + "captures": { + "1": { + "name": "variable.parameter.preprocessor.c" + } + } + }, + { + "match": ",", + "name": "punctuation.separator.parameters.c" + }, + { + "match": "\\.\\.\\.", + "name": "ellipses.c punctuation.vararg-ellipses.variable.parameter.preprocessor.c" + } + ] + }, + "10": { + "name": "punctuation.definition.parameters.end.c" + } + }, + "end": "(?<!\\\\)(?=\\n)", + "patterns": [ + { + "include": "#preprocessor-rule-define-line-contents" + } + ] + }, + "anon_pattern_range_2": { + "begin": "^\\s*((#)\\s*(error|warning))\\b\\s*", + "beginCaptures": { + "1": { + "name": "keyword.control.directive.diagnostic.$3.c" + }, + "2": { + "name": "punctuation.definition.directive.c" + } + }, + "end": "(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.diagnostic.c", + "patterns": [ + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.c" + } + }, + "end": "\"|(?<!\\\\)(?=\\s*\\n)", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.c" + } + }, + "name": "string.quoted.double.c", + "patterns": [ + { + "include": "#line_continuation_character" + } + ] + }, + { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.c" + } + }, + "end": "'|(?<!\\\\)(?=\\s*\\n)", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.c" + } + }, + "name": "string.quoted.single.c", + "patterns": [ + { + "include": "#line_continuation_character" + } + ] + }, + { + "begin": "[^'\"]", + "end": "(?<!\\\\)(?=\\s*\\n)", + "name": "string.unquoted.single.c", + "patterns": [ + { + "include": "#line_continuation_character" + }, + { + "include": "#comments" + } + ] + } + ] + }, + "anon_pattern_range_3": { + "begin": "^\\s*((#)\\s*(include(?:_next)?|import))\\b\\s*", + "beginCaptures": { + "1": { + "name": "keyword.control.directive.$3.c" + }, + "2": { + "name": "punctuation.definition.directive.c" + } + }, + "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.include.c", + "patterns": [ + { + "include": "#line_continuation_character" + }, + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.c" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.c" + } + }, + "name": "string.quoted.double.include.c" + }, + { + "begin": "<", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.c" + } + }, + "end": ">", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.c" + } + }, + "name": "string.quoted.other.lt-gt.include.c" + } + ] + }, + "anon_pattern_range_4": { + "begin": "^\\s*((#)\\s*line)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.directive.line.c" + }, + "2": { + "name": "punctuation.definition.directive.c" + } + }, + "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.c", + "patterns": [ + { + "include": "#strings" + }, + { + "include": "#numbers" + }, + { + "include": "#line_continuation_character" + } + ] + }, + "anon_pattern_range_5": { + "begin": "^\\s*(?:((#)\\s*undef))\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.directive.undef.c" + }, + "2": { + "name": "punctuation.definition.directive.c" + } + }, + "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.c", + "patterns": [ + { + "match": "[a-zA-Z_$][\\w$]*", + "name": "entity.name.function.preprocessor.c" + }, + { + "include": "#line_continuation_character" + } + ] + }, + "anon_pattern_range_6": { + "begin": "^\\s*(?:((#)\\s*pragma))\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.directive.pragma.c" + }, + "2": { + "name": "punctuation.definition.directive.c" + } + }, + "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.pragma.c", + "patterns": [ + { + "include": "#strings" + }, + { + "match": "[a-zA-Z_$][\\w\\-$]*", + "name": "entity.other.attribute-name.pragma.preprocessor.c" + }, + { + "include": "#numbers" + }, + { + "include": "#line_continuation_character" + } + ] + }, + "anon_pattern_range_7": { + "name": "meta.function.c", + "begin": "(?<!\\w)(?!\\s*(?:atomic_uint_least64_t|atomic_uint_least16_t|atomic_uint_least32_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_fast64_t|atomic_uint_fast32_t|atomic_int_least64_t|atomic_int_least32_t|pthread_rwlockattr_t|atomic_uint_fast16_t|pthread_mutexattr_t|atomic_int_fast16_t|atomic_uint_fast8_t|atomic_int_fast64_t|atomic_int_least8_t|atomic_int_fast32_t|atomic_int_fast8_t|pthread_condattr_t|pthread_rwlock_t|atomic_uintptr_t|atomic_ptrdiff_t|atomic_uintmax_t|atomic_intmax_t|atomic_char32_t|atomic_intptr_t|atomic_char16_t|pthread_mutex_t|pthread_cond_t|atomic_wchar_t|uint_least64_t|uint_least32_t|uint_least16_t|pthread_once_t|pthread_attr_t|uint_least8_t|int_least32_t|int_least16_t|pthread_key_t|uint_fast32_t|uint_fast64_t|uint_fast16_t|atomic_size_t|atomic_ushort|atomic_ullong|int_least64_t|atomic_ulong|int_least8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|memory_order|atomic_schar|atomic_uchar|atomic_short|atomic_llong|thread_local|atomic_bool|atomic_uint|atomic_long|int_fast8_t|suseconds_t|atomic_char|atomic_int|useconds_t|_Imaginary|uintmax_t|uintmax_t|in_addr_t|in_port_t|_Noreturn|blksize_t|pthread_t|uintptr_t|volatile|u_quad_t|blkcnt_t|intmax_t|intptr_t|_Complex|uint16_t|uint32_t|uint64_t|_Alignof|_Alignas|continue|unsigned|restrict|intmax_t|register|int64_t|qaddr_t|segsz_t|_Atomic|alignas|default|caddr_t|nlink_t|typedef|u_short|fixpt_t|clock_t|swblk_t|ssize_t|alignof|daddr_t|int16_t|int32_t|uint8_t|struct|mode_t|size_t|time_t|ushort|u_long|u_char|int8_t|double|signed|static|extern|inline|return|switch|xor_eq|and_eq|bitand|not_eq|sizeof|quad_t|uid_t|bitor|union|off_t|key_t|ino_t|compl|u_int|short|const|false|while|float|pid_t|break|_Bool|or_eq|div_t|dev_t|gid_t|id_t|long|case|goto|else|bool|auto|id_t|enum|uint|true|NULL|void|char|for|not|int|and|xor|do|or|if)\\s*\\()(?=[a-zA-Z_]\\w*\\s*\\()", + "end": "(?!\\G)(?<=\\))", + "patterns": [ + { + "include": "#function-innards" + } + ] + }, + "anon_pattern_range_8": { + "name": "meta.bracket.square.access.c", + "begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))?(\\[)(?!\\])", + "beginCaptures": { + "1": { + "name": "variable.object.c" + }, + "2": { + "name": "punctuation.definition.begin.bracket.square.c" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.end.bracket.square.c" + } + }, + "patterns": [ + { + "include": "#function-call-innards" + } + ] + }, + "anon_pattern_range_9": { + "name": "storage.modifier.array.bracket.square.c", + "match": "\\[\\s*\\]" + }, + "backslash_escapes": { + "match": "(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3][0-7]{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )", + "name": "constant.character.escape.c" + }, + "block": { + "patterns": [ + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.c" + } + }, + "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)", + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.c" + } + }, + "name": "meta.block.c", + "patterns": [ + { + "include": "#block_innards" + } + ] + } + ] + }, + "block_comment": { + "patterns": [ + { + "begin": "\\s*+(\\/\\*)", + "end": "\\*\\/", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.begin.c" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.end.c" + } + }, + "name": "comment.block.c" + }, + { + "begin": "\\s*+(\\/\\*)", + "end": "\\*\\/", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.begin.c" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.end.c" + } + }, + "name": "comment.block.c" + } + ] + }, + "block_innards": { + "patterns": [ + { + "include": "#preprocessor-rule-enabled-block" + }, + { + "include": "#preprocessor-rule-disabled-block" + }, + { + "include": "#preprocessor-rule-conditional-block" + }, + { + "include": "#method_access" + }, + { + "include": "#member_access" + }, + { + "include": "#c_function_call" + }, + { + "name": "meta.initialization.c", + "begin": "(?x)\n(?:\n (?:\n\t(?=\\s)(?<!else|new|return)\n\t(?<=\\w) \\s+(and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas) # or word + space before name\n )\n)\n(\n (?:[A-Za-z_][A-Za-z0-9_]*+ | :: )++ # actual name\n |\n (?:(?<=operator) (?:[-*&<>=+!]+ | \\(\\) | \\[\\]))\n)\n\\s*(\\() # opening bracket", + "beginCaptures": { + "1": { + "name": "variable.other.c" + }, + "2": { + "name": "punctuation.section.parens.begin.bracket.round.initialization.c" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.parens.end.bracket.round.initialization.c" + } + }, + "patterns": [ + { + "include": "#function-call-innards" + } + ] + }, + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.c" + } + }, + "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)", + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.c" + } + }, + "patterns": [ + { + "include": "#block_innards" + } + ] + }, + { + "include": "#parens-block" + }, + { + "include": "$self" + } + ] + }, + "c_conditional_context": { + "patterns": [ + { + "include": "$self" + }, + { + "include": "#block_innards" + } + ] + }, + "c_function_call": { + "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(?=\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)", + "end": "(?<=\\))(?!\\w)", + "name": "meta.function-call.c", + "patterns": [ + { + "include": "#function-call-innards" + } + ] + }, + "case_statement": { + "name": "meta.conditional.case.c", + "begin": "((?>(?:(?:(?>(?<!\\s)\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?<!\\w)case(?!\\w))", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.c punctuation.definition.comment.begin.c" + }, + "3": { + "name": "comment.block.c" + }, + "4": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.c punctuation.definition.comment.end.c" + }, + { + "match": "\\*", + "name": "comment.block.c" + } + ] + }, + "5": { + "name": "keyword.control.case.c" + } + }, + "end": "(:)", + "endCaptures": { + "1": { + "name": "punctuation.separator.colon.case.c" + } + }, + "patterns": [ + { + "include": "#evaluation_context" + }, + { + "include": "#c_conditional_context" + } + ] + }, + "comments": { + "patterns": [ + { + "patterns": [ + { + "patterns": [ + { + "name": "comment.line.double-slash.documentation.c", + "begin": "(?:^)(?>\\s*)(\\/\\/[!\\/]+)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.documentation.c" + } + }, + "end": "(?<=\\n)(?<!\\\\\\n)", + "patterns": [ + { + "include": "#line_continuation_character" + }, + { + "match": "(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?", + "name": "storage.type.class.doxygen.c" + }, + { + "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)", + "captures": { + "1": { + "name": "storage.type.class.doxygen.c" + }, + "2": { + "name": "markup.italic.doxygen.c" + } + } + }, + { + "match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)", + "captures": { + "1": { + "name": "storage.type.class.doxygen.c" + }, + "2": { + "name": "markup.bold.doxygen.c" + } + } + }, + { + "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)", + "captures": { + "1": { + "name": "storage.type.class.doxygen.c" + }, + "2": { + "name": "markup.inline.raw.string.c" + } + } + }, + { + "match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?", + "name": "storage.type.class.doxygen.c" + }, + { + "match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?", + "name": "storage.type.class.doxygen.c" + }, + { + "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?\\s*(?:in|out)\\s*)+)\\])?\\s+(\\b\\w+\\b)", + "captures": { + "1": { + "name": "storage.type.class.doxygen.c" + }, + "2": { + "patterns": [ + { + "match": "in|out", + "name": "keyword.other.parameter.direction.$0.c" + } + ] + }, + "3": { + "name": "variable.parameter.c" + } + } + }, + { + "match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?", + "name": "storage.type.class.doxygen.c" + }, + { + "match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?", + "name": "storage.type.class.doxygen.c" + }, + { + "match": "(?:\\b[A-Z]+:|@[a-z_]+:)", + "name": "storage.type.class.gtkdoc" + } + ] + }, + { + "match": "(\\/\\*[!*]+(?=\\s))(.+)([!*]*\\*\\/)", + "captures": { + "1": { + "name": "punctuation.definition.comment.begin.documentation.c" + }, + "2": { + "patterns": [ + { + "match": "(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?", + "name": "storage.type.class.doxygen.c" + }, + { + "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)", + "captures": { + "1": { + "name": "storage.type.class.doxygen.c" + }, + "2": { + "name": "markup.italic.doxygen.c" + } + } + }, + { + "match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)", + "captures": { + "1": { + "name": "storage.type.class.doxygen.c" + }, + "2": { + "name": "markup.bold.doxygen.c" + } + } + }, + { + "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)", + "captures": { + "1": { + "name": "storage.type.class.doxygen.c" + }, + "2": { + "name": "markup.inline.raw.string.c" + } + } + }, + { + "match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?", + "name": "storage.type.class.doxygen.c" + }, + { + "match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?", + "name": "storage.type.class.doxygen.c" + }, + { + "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?\\s*(?:in|out)\\s*)+)\\])?\\s+(\\b\\w+\\b)", + "captures": { + "1": { + "name": "storage.type.class.doxygen.c" + }, + "2": { + "patterns": [ + { + "match": "in|out", + "name": "keyword.other.parameter.direction.$0.c" + } + ] + }, + "3": { + "name": "variable.parameter.c" + } + } + }, + { + "match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?", + "name": "storage.type.class.doxygen.c" + }, + { + "match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?", + "name": "storage.type.class.doxygen.c" + }, + { + "match": "(?:\\b[A-Z]+:|@[a-z_]+:)", + "name": "storage.type.class.gtkdoc" + } + ] + }, + "3": { + "name": "punctuation.definition.comment.end.documentation.c" + } + }, + "name": "comment.block.documentation.c" + }, + { + "name": "comment.block.documentation.c", + "begin": "((?>\\s*)\\/\\*[!*]+(?:(?:\\n|$)|(?=\\s)))", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.begin.documentation.c" + } + }, + "end": "([!*]*\\*\\/)", + "endCaptures": { + "1": { + "name": "punctuation.definition.comment.end.documentation.c" + } + }, + "patterns": [ + { + "match": "(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?", + "name": "storage.type.class.doxygen.c" + }, + { + "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)", + "captures": { + "1": { + "name": "storage.type.class.doxygen.c" + }, + "2": { + "name": "markup.italic.doxygen.c" + } + } + }, + { + "match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)", + "captures": { + "1": { + "name": "storage.type.class.doxygen.c" + }, + "2": { + "name": "markup.bold.doxygen.c" + } + } + }, + { + "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)", + "captures": { + "1": { + "name": "storage.type.class.doxygen.c" + }, + "2": { + "name": "markup.inline.raw.string.c" + } + } + }, + { + "match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?", + "name": "storage.type.class.doxygen.c" + }, + { + "match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?", + "name": "storage.type.class.doxygen.c" + }, + { + "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?\\s*(?:in|out)\\s*)+)\\])?\\s+(\\b\\w+\\b)", + "captures": { + "1": { + "name": "storage.type.class.doxygen.c" + }, + "2": { + "patterns": [ + { + "match": "in|out", + "name": "keyword.other.parameter.direction.$0.c" + } + ] + }, + "3": { + "name": "variable.parameter.c" + } + } + }, + { + "match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?", + "name": "storage.type.class.doxygen.c" + }, + { + "match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?", + "name": "storage.type.class.doxygen.c" + }, + { + "match": "(?:\\b[A-Z]+:|@[a-z_]+:)", + "name": "storage.type.class.gtkdoc" + } + ] + }, + { + "match": "^\\/\\* =(\\s*.*?)\\s*= \\*\\/$\\n?", + "captures": { + "1": { + "name": "meta.toc-list.banner.block.c" + } + }, + "name": "comment.block.banner.c" + }, + { + "name": "comment.block.c", + "begin": "(\\/\\*)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.begin.c" + } + }, + "end": "(\\*\\/)", + "endCaptures": { + "1": { + "name": "punctuation.definition.comment.end.c" + } + } + }, + { + "match": "^\\/\\/ =(\\s*.*?)\\s*=$\\n?", + "captures": { + "1": { + "name": "meta.toc-list.banner.line.c" + } + }, + "name": "comment.line.banner.c" + }, + { + "begin": "((?:^[ \\t]+)?)(?=\\/\\/)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.c" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "name": "comment.line.double-slash.c", + "begin": "(\\/\\/)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.c" + } + }, + "end": "(?=\\n)", + "patterns": [ + { + "include": "#line_continuation_character" + } + ] + } + ] + } + ] + }, + { + "include": "#block_comment" + }, + { + "include": "#line_comment" + } + ] + }, + { + "include": "#block_comment" + }, + { + "include": "#line_comment" + } + ] + }, + "default_statement": { + "name": "meta.conditional.case.c", + "begin": "((?>(?:(?:(?>(?<!\\s)\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?<!\\w)default(?!\\w))", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.c punctuation.definition.comment.begin.c" + }, + "3": { + "name": "comment.block.c" + }, + "4": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.c punctuation.definition.comment.end.c" + }, + { + "match": "\\*", + "name": "comment.block.c" + } + ] + }, + "5": { + "name": "keyword.control.default.c" + } + }, + "end": "(:)", + "endCaptures": { + "1": { + "name": "punctuation.separator.colon.case.default.c" + } + }, + "patterns": [ + { + "include": "#evaluation_context" + }, + { + "include": "#c_conditional_context" + } + ] + }, + "disabled": { + "begin": "^\\s*#\\s*if(n?def)?\\b.*$", + "end": "^\\s*#\\s*endif\\b", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + }, + "evaluation_context": { + "patterns": [ + { + "include": "#function-call-innards" + }, + { + "include": "$self" + } + ] + }, + "function-call-innards": { + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#storage_types" + }, + { + "include": "#method_access" + }, + { + "include": "#member_access" + }, + { + "include": "#operators" + }, + { + "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()", + "beginCaptures": { + "1": { + "name": "entity.name.function.c" + }, + "2": { + "name": "punctuation.section.arguments.begin.bracket.round.c" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.c" + } + }, + "patterns": [ + { + "include": "#function-call-innards" + } + ] + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.section.parens.begin.bracket.round.c" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.parens.end.bracket.round.c" + } + }, + "patterns": [ + { + "include": "#function-call-innards" + } + ] + }, + { + "include": "#block_innards" + } + ] + }, + "function-innards": { + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#storage_types" + }, + { + "include": "#operators" + }, + { + "include": "#vararg_ellipses" + }, + { + "name": "meta.function.definition.parameters.c", + "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()", + "beginCaptures": { + "1": { + "name": "entity.name.function.c" + }, + "2": { + "name": "punctuation.section.parameters.begin.bracket.round.c" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.parameters.end.bracket.round.c" + } + }, + "patterns": [ + { + "include": "#probably_a_parameter" + }, + { + "include": "#function-innards" + } + ] + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.section.parens.begin.bracket.round.c" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.parens.end.bracket.round.c" + } + }, + "patterns": [ + { + "include": "#function-innards" + } + ] + }, + { + "include": "$self" + } + ] + }, + "inline_comment": { + "patterns": [ + { + "patterns": [ + { + "match": "(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/))", + "captures": { + "1": { + "name": "comment.block.c punctuation.definition.comment.begin.c" + }, + "2": { + "name": "comment.block.c" + }, + "3": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.c punctuation.definition.comment.end.c" + }, + { + "match": "\\*", + "name": "comment.block.c" + } + ] + } + } + }, + { + "match": "(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/))", + "captures": { + "1": { + "name": "comment.block.c punctuation.definition.comment.begin.c" + }, + "2": { + "name": "comment.block.c" + }, + "3": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.c punctuation.definition.comment.end.c" + }, + { + "match": "\\*", + "name": "comment.block.c" + } + ] + } + } + } + ] + }, + { + "match": "(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/))", + "captures": { + "1": { + "name": "comment.block.c punctuation.definition.comment.begin.c" + }, + "2": { + "name": "comment.block.c" + }, + "3": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.c punctuation.definition.comment.end.c" + }, + { + "match": "\\*", + "name": "comment.block.c" + } + ] + } + } + } + ] + }, + "line_comment": { + "patterns": [ + { + "begin": "\\s*+(\\/\\/)", + "end": "(?<=\\n)(?<!\\\\\\n)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.c" + } + }, + "endCaptures": {}, + "name": "comment.line.double-slash.c", + "patterns": [ + { + "include": "#line_continuation_character" + } + ] + }, + { + "begin": "\\s*+(\\/\\/)", + "end": "(?<=\\n)(?<!\\\\\\n)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.c" + } + }, + "endCaptures": {}, + "name": "comment.line.double-slash.c", + "patterns": [ + { + "include": "#line_continuation_character" + } + ] + } + ] + }, + "line_continuation_character": { + "patterns": [ + { + "match": "(\\\\)\\n", + "captures": { + "1": { + "name": "constant.character.escape.line-continuation.c" + } + } + } + ] + }, + "member_access": { + "match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*(\\b(?!(?:atomic_uint_least64_t|atomic_uint_least16_t|atomic_uint_least32_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_fast64_t|atomic_uint_fast32_t|atomic_int_least64_t|atomic_int_least32_t|pthread_rwlockattr_t|atomic_uint_fast16_t|pthread_mutexattr_t|atomic_int_fast16_t|atomic_uint_fast8_t|atomic_int_fast64_t|atomic_int_least8_t|atomic_int_fast32_t|atomic_int_fast8_t|pthread_condattr_t|atomic_uintptr_t|atomic_ptrdiff_t|pthread_rwlock_t|atomic_uintmax_t|pthread_mutex_t|atomic_intmax_t|atomic_intptr_t|atomic_char32_t|atomic_char16_t|pthread_attr_t|atomic_wchar_t|uint_least64_t|uint_least32_t|uint_least16_t|pthread_cond_t|pthread_once_t|uint_fast64_t|uint_fast16_t|atomic_size_t|uint_least8_t|int_least64_t|int_least32_t|int_least16_t|pthread_key_t|atomic_ullong|atomic_ushort|uint_fast32_t|atomic_schar|atomic_short|uint_fast8_t|int_fast64_t|int_fast32_t|int_fast16_t|atomic_ulong|atomic_llong|int_least8_t|atomic_uchar|memory_order|suseconds_t|int_fast8_t|atomic_bool|atomic_char|atomic_uint|atomic_long|atomic_int|useconds_t|_Imaginary|blksize_t|pthread_t|in_addr_t|uintptr_t|in_port_t|uintmax_t|uintmax_t|blkcnt_t|uint16_t|unsigned|_Complex|uint32_t|intptr_t|intmax_t|intmax_t|uint64_t|u_quad_t|int64_t|int32_t|ssize_t|caddr_t|clock_t|uint8_t|u_short|swblk_t|segsz_t|int16_t|fixpt_t|daddr_t|nlink_t|qaddr_t|size_t|time_t|mode_t|signed|quad_t|ushort|u_long|u_char|double|int8_t|ino_t|uid_t|pid_t|_Bool|float|dev_t|div_t|short|gid_t|off_t|u_int|key_t|id_t|uint|long|void|char|bool|id_t|int)\\b)[a-zA-Z_]\\w*\\b(?!\\())", + "captures": { + "1": { + "name": "variable.other.object.access.c" + }, + "2": { + "name": "punctuation.separator.dot-access.c" + }, + "3": { + "name": "punctuation.separator.pointer-access.c" + }, + "4": { + "patterns": [ + { + "include": "#member_access" + }, + { + "include": "#method_access" + }, + { + "match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))", + "captures": { + "1": { + "name": "variable.other.object.access.c" + }, + "2": { + "name": "punctuation.separator.dot-access.c" + }, + "3": { + "name": "punctuation.separator.pointer-access.c" + } + } + } + ] + }, + "5": { + "name": "variable.other.member.c" + } + } + }, + "method_access": { + "contentName": "meta.function-call.member.c", + "begin": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*([a-zA-Z_]\\w*)(\\()", + "beginCaptures": { + "1": { + "name": "variable.other.object.access.c" + }, + "2": { + "name": "punctuation.separator.dot-access.c" + }, + "3": { + "name": "punctuation.separator.pointer-access.c" + }, + "4": { + "patterns": [ + { + "include": "#member_access" + }, + { + "include": "#method_access" + }, + { + "match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))", + "captures": { + "1": { + "name": "variable.other.object.access.c" + }, + "2": { + "name": "punctuation.separator.dot-access.c" + }, + "3": { + "name": "punctuation.separator.pointer-access.c" + } + } + } + ] + }, + "5": { + "name": "entity.name.function.member.c" + }, + "6": { + "name": "punctuation.section.arguments.begin.bracket.round.function.member.c" + } + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.section.arguments.end.bracket.round.function.member.c" + } + }, + "patterns": [ + { + "include": "#function-call-innards" + } + ] + }, + "numbers": { + "match": "(?<!\\w)\\.?\\d(?:(?:[0-9a-zA-Z_\\.]|')|(?<=[eEpP])[+-])*", + "captures": { + "0": { + "patterns": [ + { + "begin": "(?=.)", + "end": "$", + "patterns": [ + { + "match": "(\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?<=[0-9a-fA-F])\\.|\\.(?=[0-9a-fA-F])))([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?<!')([pP])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)))?([lLfF](?!\\w))?$", + "captures": { + "1": { + "name": "keyword.other.unit.hexadecimal.c" + }, + "2": { + "name": "constant.numeric.hexadecimal.c", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric" + } + ] + }, + "3": { + "name": "punctuation.separator.constant.numeric" + }, + "4": { + "name": "constant.numeric.hexadecimal.c" + }, + "5": { + "name": "constant.numeric.hexadecimal.c", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric" + } + ] + }, + "6": { + "name": "punctuation.separator.constant.numeric" + }, + "8": { + "name": "keyword.other.unit.exponent.hexadecimal.c" + }, + "9": { + "name": "keyword.operator.plus.exponent.hexadecimal.c" + }, + "10": { + "name": "keyword.operator.minus.exponent.hexadecimal.c" + }, + "11": { + "name": "constant.numeric.exponent.hexadecimal.c", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric" + } + ] + }, + "12": { + "name": "keyword.other.unit.suffix.floating-point.c" + } + } + }, + { + "match": "(\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?<=[0-9])\\.|\\.(?=[0-9])))([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?<!')([eE])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)))?([lLfF](?!\\w))?$", + "captures": { + "2": { + "name": "constant.numeric.decimal.c", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric" + } + ] + }, + "3": { + "name": "punctuation.separator.constant.numeric" + }, + "4": { + "name": "constant.numeric.decimal.point.c" + }, + "5": { + "name": "constant.numeric.decimal.c", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric" + } + ] + }, + "6": { + "name": "punctuation.separator.constant.numeric" + }, + "8": { + "name": "keyword.other.unit.exponent.decimal.c" + }, + "9": { + "name": "keyword.operator.plus.exponent.decimal.c" + }, + "10": { + "name": "keyword.operator.minus.exponent.decimal.c" + }, + "11": { + "name": "constant.numeric.exponent.decimal.c", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric" + } + ] + }, + "12": { + "name": "keyword.other.unit.suffix.floating-point.c" + } + } + }, + { + "match": "(\\G0[bB])([01](?:[01]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w))?$", + "captures": { + "1": { + "name": "keyword.other.unit.binary.c" + }, + "2": { + "name": "constant.numeric.binary.c", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric" + } + ] + }, + "3": { + "name": "punctuation.separator.constant.numeric" + }, + "4": { + "name": "keyword.other.unit.suffix.integer.c" + } + } + }, + { + "match": "(\\G0)((?:[0-7]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))+)((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w))?$", + "captures": { + "1": { + "name": "keyword.other.unit.octal.c" + }, + "2": { + "name": "constant.numeric.octal.c", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric" + } + ] + }, + "3": { + "name": "punctuation.separator.constant.numeric" + }, + "4": { + "name": "keyword.other.unit.suffix.integer.c" + } + } + }, + { + "match": "(\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?<!')([pP])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)))?((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w))?$", + "captures": { + "1": { + "name": "keyword.other.unit.hexadecimal.c" + }, + "2": { + "name": "constant.numeric.hexadecimal.c", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric" + } + ] + }, + "3": { + "name": "punctuation.separator.constant.numeric" + }, + "5": { + "name": "keyword.other.unit.exponent.hexadecimal.c" + }, + "6": { + "name": "keyword.operator.plus.exponent.hexadecimal.c" + }, + "7": { + "name": "keyword.operator.minus.exponent.hexadecimal.c" + }, + "8": { + "name": "constant.numeric.exponent.hexadecimal.c", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric" + } + ] + }, + "9": { + "name": "keyword.other.unit.suffix.integer.c" + } + } + }, + { + "match": "(\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?<!')([eE])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)))?((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w))?$", + "captures": { + "2": { + "name": "constant.numeric.decimal.c", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric" + } + ] + }, + "3": { + "name": "punctuation.separator.constant.numeric" + }, + "5": { + "name": "keyword.other.unit.exponent.decimal.c" + }, + "6": { + "name": "keyword.operator.plus.exponent.decimal.c" + }, + "7": { + "name": "keyword.operator.minus.exponent.decimal.c" + }, + "8": { + "name": "constant.numeric.exponent.decimal.c", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric" + } + ] + }, + "9": { + "name": "keyword.other.unit.suffix.integer.c" + } + } + }, + { + "match": "(?:(?:[0-9a-zA-Z_\\.]|')|(?<=[eEpP])[+-])+", + "name": "invalid.illegal.constant.numeric" + } + ] + } + ] + } + } + }, + "operators": { + "patterns": [ + { + "match": "(?<![\\w$])(sizeof)(?![\\w$])", + "name": "keyword.operator.sizeof.c" + }, + { + "match": "--", + "name": "keyword.operator.decrement.c" + }, + { + "match": "\\+\\+", + "name": "keyword.operator.increment.c" + }, + { + "match": "%=|\\+=|-=|\\*=|(?<!\\()/=", + "name": "keyword.operator.assignment.compound.c" + }, + { + "match": "&=|\\^=|<<=|>>=|\\|=", + "name": "keyword.operator.assignment.compound.bitwise.c" + }, + { + "match": "<<|>>", + "name": "keyword.operator.bitwise.shift.c" + }, + { + "match": "!=|<=|>=|==|<|>", + "name": "keyword.operator.comparison.c" + }, + { + "match": "&&|!|\\|\\|", + "name": "keyword.operator.logical.c" + }, + { + "match": "&|\\||\\^|~", + "name": "keyword.operator.c" + }, + { + "match": "=", + "name": "keyword.operator.assignment.c" + }, + { + "match": "%|\\*|/|-|\\+", + "name": "keyword.operator.c" + }, + { + "begin": "(\\?)", + "beginCaptures": { + "1": { + "name": "keyword.operator.ternary.c" + } + }, + "end": "(:)", + "endCaptures": { + "1": { + "name": "keyword.operator.ternary.c" + } + }, + "patterns": [ + { + "include": "#function-call-innards" + }, + { + "include": "$self" + } + ] + } + ] + }, + "parens": { + "name": "meta.parens.c", + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.section.parens.begin.bracket.round.c" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.parens.end.bracket.round.c" + } + }, + "patterns": [ + { + "include": "$self" + } + ] + }, + "parens-block": { + "name": "meta.parens.block.c", + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.section.parens.begin.bracket.round.c" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.parens.end.bracket.round.c" + } + }, + "patterns": [ + { + "include": "#block_innards" + }, + { + "match": "(?-mix:(?<!:):(?!:))", + "name": "punctuation.range-based.c" + } + ] + }, + "pragma-mark": { + "captures": { + "1": { + "name": "meta.preprocessor.pragma.c" + }, + "2": { + "name": "keyword.control.directive.pragma.pragma-mark.c" + }, + "3": { + "name": "punctuation.definition.directive.c" + }, + "4": { + "name": "entity.name.tag.pragma-mark.c" + } + }, + "match": "^\\s*(((#)\\s*pragma\\s+mark)\\s+(.*))", + "name": "meta.section.c" + }, + "predefined_macros": { + "patterns": [ + { + "match": "\\b(__cplusplus|__DATE__|__FILE__|__LINE__|__STDC__|__STDC_HOSTED__|__STDC_NO_COMPLEX__|__STDC_VERSION__|__STDCPP_THREADS__|__TIME__|NDEBUG|__OBJC__|__ASSEMBLER__|__ATOM__|__AVX__|__AVX2__|_CHAR_UNSIGNED|__CLR_VER|_CONTROL_FLOW_GUARD|__COUNTER__|__cplusplus_cli|__cplusplus_winrt|_CPPRTTI|_CPPUNWIND|_DEBUG|_DLL|__FUNCDNAME__|__FUNCSIG__|__FUNCTION__|_INTEGRAL_MAX_BITS|__INTELLISENSE__|_ISO_VOLATILE|_KERNEL_MODE|_M_AMD64|_M_ARM|_M_ARM_ARMV7VE|_M_ARM_FP|_M_ARM64|_M_CEE|_M_CEE_PURE|_M_CEE_SAFE|_M_FP_EXCEPT|_M_FP_FAST|_M_FP_PRECISE|_M_FP_STRICT|_M_IX86|_M_IX86_FP|_M_X64|_MANAGED|_MSC_BUILD|_MSC_EXTENSIONS|_MSC_FULL_VER|_MSC_VER|_MSVC_LANG|__MSVC_RUNTIME_CHECKS|_MT|_NATIVE_WCHAR_T_DEFINED|_OPENMP|_PREFAST|__TIMESTAMP__|_VC_NO_DEFAULTLIB|_WCHAR_T_DEFINED|_WIN32|_WIN64|_WINRT_DLL|_ATL_VER|_MFC_VER|__GFORTRAN__|__GNUC__|__GNUC_MINOR__|__GNUC_PATCHLEVEL__|__GNUG__|__STRICT_ANSI__|__BASE_FILE__|__INCLUDE_LEVEL__|__ELF__|__VERSION__|__OPTIMIZE__|__OPTIMIZE_SIZE__|__NO_INLINE__|__GNUC_STDC_INLINE__|__CHAR_UNSIGNED__|__WCHAR_UNSIGNED__|__REGISTER_PREFIX__|__REGISTER_PREFIX__|__SIZE_TYPE__|__PTRDIFF_TYPE__|__WCHAR_TYPE__|__WINT_TYPE__|__INTMAX_TYPE__|__UINTMAX_TYPE__|__SIG_ATOMIC_TYPE__|__INT8_TYPE__|__INT16_TYPE__|__INT32_TYPE__|__INT64_TYPE__|__UINT8_TYPE__|__UINT16_TYPE__|__UINT32_TYPE__|__UINT64_TYPE__|__INT_LEAST8_TYPE__|__INT_LEAST16_TYPE__|__INT_LEAST32_TYPE__|__INT_LEAST64_TYPE__|__UINT_LEAST8_TYPE__|__UINT_LEAST16_TYPE__|__UINT_LEAST32_TYPE__|__UINT_LEAST64_TYPE__|__INT_FAST8_TYPE__|__INT_FAST16_TYPE__|__INT_FAST32_TYPE__|__INT_FAST64_TYPE__|__UINT_FAST8_TYPE__|__UINT_FAST16_TYPE__|__UINT_FAST32_TYPE__|__UINT_FAST64_TYPE__|__INTPTR_TYPE__|__UINTPTR_TYPE__|__CHAR_BIT__|__SCHAR_MAX__|__WCHAR_MAX__|__SHRT_MAX__|__INT_MAX__|__LONG_MAX__|__LONG_LONG_MAX__|__WINT_MAX__|__SIZE_MAX__|__PTRDIFF_MAX__|__INTMAX_MAX__|__UINTMAX_MAX__|__SIG_ATOMIC_MAX__|__INT8_MAX__|__INT16_MAX__|__INT32_MAX__|__INT64_MAX__|__UINT8_MAX__|__UINT16_MAX__|__UINT32_MAX__|__UINT64_MAX__|__INT_LEAST8_MAX__|__INT_LEAST16_MAX__|__INT_LEAST32_MAX__|__INT_LEAST64_MAX__|__UINT_LEAST8_MAX__|__UINT_LEAST16_MAX__|__UINT_LEAST32_MAX__|__UINT_LEAST64_MAX__|__INT_FAST8_MAX__|__INT_FAST16_MAX__|__INT_FAST32_MAX__|__INT_FAST64_MAX__|__UINT_FAST8_MAX__|__UINT_FAST16_MAX__|__UINT_FAST32_MAX__|__UINT_FAST64_MAX__|__INTPTR_MAX__|__UINTPTR_MAX__|__WCHAR_MIN__|__WINT_MIN__|__SIG_ATOMIC_MIN__|__SCHAR_WIDTH__|__SHRT_WIDTH__|__INT_WIDTH__|__LONG_WIDTH__|__LONG_LONG_WIDTH__|__PTRDIFF_WIDTH__|__SIG_ATOMIC_WIDTH__|__SIZE_WIDTH__|__WCHAR_WIDTH__|__WINT_WIDTH__|__INT_LEAST8_WIDTH__|__INT_LEAST16_WIDTH__|__INT_LEAST32_WIDTH__|__INT_LEAST64_WIDTH__|__INT_FAST8_WIDTH__|__INT_FAST16_WIDTH__|__INT_FAST32_WIDTH__|__INT_FAST64_WIDTH__|__INTPTR_WIDTH__|__INTMAX_WIDTH__|__SIZEOF_INT__|__SIZEOF_LONG__|__SIZEOF_LONG_LONG__|__SIZEOF_SHORT__|__SIZEOF_POINTER__|__SIZEOF_FLOAT__|__SIZEOF_DOUBLE__|__SIZEOF_LONG_DOUBLE__|__SIZEOF_SIZE_T__|__SIZEOF_WCHAR_T__|__SIZEOF_WINT_T__|__SIZEOF_PTRDIFF_T__|__BYTE_ORDER__|__ORDER_LITTLE_ENDIAN__|__ORDER_BIG_ENDIAN__|__ORDER_PDP_ENDIAN__|__FLOAT_WORD_ORDER__|__DEPRECATED|__EXCEPTIONS|__GXX_RTTI|__USING_SJLJ_EXCEPTIONS__|__GXX_EXPERIMENTAL_CXX0X__|__GXX_WEAK__|__NEXT_RUNTIME__|__LP64__|_LP64|__SSP__|__SSP_ALL__|__SSP_STRONG__|__SSP_EXPLICIT__|__SANITIZE_ADDRESS__|__SANITIZE_THREAD__|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_16|__HAVE_SPECULATION_SAFE_VALUE|__GCC_HAVE_DWARF2_CFI_ASM|__FP_FAST_FMA|__FP_FAST_FMAF|__FP_FAST_FMAL|__FP_FAST_FMAF16|__FP_FAST_FMAF32|__FP_FAST_FMAF64|__FP_FAST_FMAF128|__FP_FAST_FMAF32X|__FP_FAST_FMAF64X|__FP_FAST_FMAF128X|__GCC_IEC_559|__GCC_IEC_559_COMPLEX|__NO_MATH_ERRNO__|__has_builtin|__has_feature|__has_extension|__has_cpp_attribute|__has_c_attribute|__has_attribute|__has_declspec_attribute|__is_identifier|__has_include|__has_include_next|__has_warning|__BASE_FILE__|__FILE_NAME__|__clang__|__clang_major__|__clang_minor__|__clang_patchlevel__|__clang_version__|__fp16|_Float16)\\b", + "captures": { + "1": { + "name": "entity.name.other.preprocessor.macro.predefined.$1.c" + } + } + }, + { + "match": "\\b__([A-Z_]+)__\\b", + "name": "entity.name.other.preprocessor.macro.predefined.probably.$1.c" + } + ] + }, + "preprocessor-rule-conditional": { + "patterns": [ + { + "begin": "^\\s*((#)\\s*if(?:n?def)?\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.c" + }, + "1": { + "name": "keyword.control.directive.conditional.c" + }, + "2": { + "name": "punctuation.definition.directive.c" + } + }, + "end": "^\\s*((#)\\s*endif\\b)", + "endCaptures": { + "0": { + "name": "meta.preprocessor.c" + }, + "1": { + "name": "keyword.control.directive.conditional.c" + }, + "2": { + "name": "punctuation.definition.directive.c" + } + }, + "patterns": [ + { + "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.c", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "#preprocessor-rule-enabled-elif" + }, + { + "include": "#preprocessor-rule-enabled-else" + }, + { + "include": "#preprocessor-rule-disabled-elif" + }, + { + "begin": "^\\s*((#)\\s*elif\\b)", + "beginCaptures": { + "1": { + "name": "keyword.control.directive.conditional.c" + }, + "2": { + "name": "punctuation.definition.directive.c" + } + }, + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.c", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "$self" + } + ] + }, + { + "match": "^\\s*#\\s*(else|elif|endif)\\b", + "captures": { + "0": { + "name": "invalid.illegal.stray-$1.c" + } + } + } + ] + }, + "preprocessor-rule-conditional-block": { + "patterns": [ + { + "begin": "^\\s*((#)\\s*if(?:n?def)?\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.c" + }, + "1": { + "name": "keyword.control.directive.conditional.c" + }, + "2": { + "name": "punctuation.definition.directive.c" + } + }, + "end": "^\\s*((#)\\s*endif\\b)", + "endCaptures": { + "0": { + "name": "meta.preprocessor.c" + }, + "1": { + "name": "keyword.control.directive.conditional.c" + }, + "2": { + "name": "punctuation.definition.directive.c" + } + }, + "patterns": [ + { + "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.c", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "#preprocessor-rule-enabled-elif-block" + }, + { + "include": "#preprocessor-rule-enabled-else-block" + }, + { + "include": "#preprocessor-rule-disabled-elif" + }, + { + "begin": "^\\s*((#)\\s*elif\\b)", + "beginCaptures": { + "1": { + "name": "keyword.control.directive.conditional.c" + }, + "2": { + "name": "punctuation.definition.directive.c" + } + }, + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.c", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "#block_innards" + } + ] + }, + { + "match": "^\\s*#\\s*(else|elif|endif)\\b", + "captures": { + "0": { + "name": "invalid.illegal.stray-$1.c" + } + } + } + ] + }, + "preprocessor-rule-conditional-line": { + "patterns": [ + { + "match": "(?:\\bdefined\\b\\s*$)|(?:\\bdefined\\b(?=\\s*\\(*\\s*(?:(?!defined\\b)[a-zA-Z_$][\\w$]*\\b)\\s*\\)*\\s*(?:\\n|//|/\\*|\\?|\\:|&&|\\|\\||\\\\\\s*\\n)))", + "name": "keyword.control.directive.conditional.c" + }, + { + "match": "\\bdefined\\b", + "name": "invalid.illegal.macro-name.c" + }, + { + "include": "#comments" + }, + { + "include": "#strings" + }, + { + "include": "#numbers" + }, + { + "begin": "\\?", + "beginCaptures": { + "0": { + "name": "keyword.operator.ternary.c" + } + }, + "end": ":", + "endCaptures": { + "0": { + "name": "keyword.operator.ternary.c" + } + }, + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "#operators" + }, + { + "match": "\\b(NULL|true|false|TRUE|FALSE)\\b", + "name": "constant.language.c" + }, + { + "match": "[a-zA-Z_$][\\w$]*", + "name": "entity.name.function.preprocessor.c" + }, + { + "include": "#line_continuation_character" + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.section.parens.begin.bracket.round.c" + } + }, + "end": "\\)|(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", + "endCaptures": { + "0": { + "name": "punctuation.section.parens.end.bracket.round.c" + } + }, + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + } + ] + }, + "preprocessor-rule-define-line-blocks": { + "patterns": [ + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.c" + } + }, + "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)", + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.c" + } + }, + "patterns": [ + { + "include": "#preprocessor-rule-define-line-blocks" + }, + { + "include": "#preprocessor-rule-define-line-contents" + } + ] + }, + { + "include": "#preprocessor-rule-define-line-contents" + } + ] + }, + "preprocessor-rule-define-line-contents": { + "patterns": [ + { + "include": "#vararg_ellipses" + }, + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.c" + } + }, + "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)", + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.c" + } + }, + "name": "meta.block.c", + "patterns": [ + { + "include": "#preprocessor-rule-define-line-blocks" + } + ] + }, + { + "match": "\\(", + "name": "punctuation.section.parens.begin.bracket.round.c" + }, + { + "match": "\\)", + "name": "punctuation.section.parens.end.bracket.round.c" + }, + { + "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas|asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void)\\s*\\()\n(?=\n (?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name\n |\n (?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)", + "end": "(?<=\\))(?!\\w)|(?<!\\\\)(?=\\s*\\n)", + "name": "meta.function.c", + "patterns": [ + { + "include": "#preprocessor-rule-define-line-functions" + } + ] + }, + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.c" + } + }, + "end": "\"|(?<!\\\\)(?=\\s*\\n)", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.c" + } + }, + "name": "string.quoted.double.c", + "patterns": [ + { + "include": "#string_escaped_char" + }, + { + "include": "#string_placeholder" + }, + { + "include": "#line_continuation_character" + } + ] + }, + { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.c" + } + }, + "end": "'|(?<!\\\\)(?=\\s*\\n)", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.c" + } + }, + "name": "string.quoted.single.c", + "patterns": [ + { + "include": "#string_escaped_char" + }, + { + "include": "#line_continuation_character" + } + ] + }, + { + "include": "#method_access" + }, + { + "include": "#member_access" + }, + { + "include": "$self" + } + ] + }, + "preprocessor-rule-define-line-functions": { + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#storage_types" + }, + { + "include": "#vararg_ellipses" + }, + { + "include": "#method_access" + }, + { + "include": "#member_access" + }, + { + "include": "#operators" + }, + { + "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()", + "beginCaptures": { + "1": { + "name": "entity.name.function.c" + }, + "2": { + "name": "punctuation.section.arguments.begin.bracket.round.c" + } + }, + "end": "(\\))|(?<!\\\\)(?=\\s*\\n)", + "endCaptures": { + "1": { + "name": "punctuation.section.arguments.end.bracket.round.c" + } + }, + "patterns": [ + { + "include": "#preprocessor-rule-define-line-functions" + } + ] + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.section.parens.begin.bracket.round.c" + } + }, + "end": "(\\))|(?<!\\\\)(?=\\s*\\n)", + "endCaptures": { + "1": { + "name": "punctuation.section.parens.end.bracket.round.c" + } + }, + "patterns": [ + { + "include": "#preprocessor-rule-define-line-functions" + } + ] + }, + { + "include": "#preprocessor-rule-define-line-contents" + } + ] + }, + "preprocessor-rule-disabled": { + "patterns": [ + { + "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.c" + }, + "1": { + "name": "keyword.control.directive.conditional.c" + }, + "2": { + "name": "punctuation.definition.directive.c" + } + }, + "end": "^\\s*((#)\\s*endif\\b)", + "endCaptures": { + "0": { + "name": "meta.preprocessor.c" + }, + "1": { + "name": "keyword.control.directive.conditional.c" + }, + "2": { + "name": "punctuation.definition.directive.c" + } + }, + "patterns": [ + { + "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)", + "name": "meta.preprocessor.c", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "#comments" + }, + { + "include": "#preprocessor-rule-enabled-elif" + }, + { + "include": "#preprocessor-rule-enabled-else" + }, + { + "include": "#preprocessor-rule-disabled-elif" + }, + { + "begin": "^\\s*((#)\\s*elif\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.c" + }, + "1": { + "name": "keyword.control.directive.conditional.c" + }, + "2": { + "name": "punctuation.definition.directive.c" + } + }, + "end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))", + "patterns": [ + { + "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.c", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "$self" + } + ] + }, + { + "begin": "\\n", + "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", + "contentName": "comment.block.preprocessor.if-branch.c", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + } + ] + } + ] + }, + "preprocessor-rule-disabled-block": { + "patterns": [ + { + "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.c" + }, + "1": { + "name": "keyword.control.directive.conditional.c" + }, + "2": { + "name": "punctuation.definition.directive.c" + } + }, + "end": "^\\s*((#)\\s*endif\\b)", + "endCaptures": { + "0": { + "name": "meta.preprocessor.c" + }, + "1": { + "name": "keyword.control.directive.conditional.c" + }, + "2": { + "name": "punctuation.definition.directive.c" + } + }, + "patterns": [ + { + "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)", + "name": "meta.preprocessor.c", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "#comments" + }, + { + "include": "#preprocessor-rule-enabled-elif-block" + }, + { + "include": "#preprocessor-rule-enabled-else-block" + }, + { + "include": "#preprocessor-rule-disabled-elif" + }, + { + "begin": "^\\s*((#)\\s*elif\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.c" + }, + "1": { + "name": "keyword.control.directive.conditional.c" + }, + "2": { + "name": "punctuation.definition.directive.c" + } + }, + "end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))", + "patterns": [ + { + "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.c", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "#block_innards" + } + ] + }, + { + "begin": "\\n", + "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", + "contentName": "comment.block.preprocessor.if-branch.in-block.c", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + } + ] + } + ] + }, + "preprocessor-rule-disabled-elif": { + "begin": "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.c" + }, + "1": { + "name": "keyword.control.directive.conditional.c" + }, + "2": { + "name": "punctuation.definition.directive.c" + } + }, + "end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))", + "patterns": [ + { + "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.c", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "#comments" + }, + { + "begin": "\\n", + "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", + "contentName": "comment.block.preprocessor.elif-branch.c", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + } + ] + }, + "preprocessor-rule-enabled": { + "patterns": [ + { + "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.c" + }, + "1": { + "name": "keyword.control.directive.conditional.c" + }, + "2": { + "name": "punctuation.definition.directive.c" + }, + "3": { + "name": "constant.numeric.preprocessor.c" + } + }, + "end": "^\\s*((#)\\s*endif\\b)", + "endCaptures": { + "0": { + "name": "meta.preprocessor.c" + }, + "1": { + "name": "keyword.control.directive.conditional.c" + }, + "2": { + "name": "punctuation.definition.directive.c" + } + }, + "patterns": [ + { + "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)", + "name": "meta.preprocessor.c", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "#comments" + }, + { + "begin": "^\\s*((#)\\s*else\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.c" + }, + "1": { + "name": "keyword.control.directive.conditional.c" + }, + "2": { + "name": "punctuation.definition.directive.c" + } + }, + "end": "(?=^\\s*((#)\\s*endif\\b))", + "contentName": "comment.block.preprocessor.else-branch.c", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + }, + { + "begin": "^\\s*((#)\\s*elif\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.c" + }, + "1": { + "name": "keyword.control.directive.conditional.c" + }, + "2": { + "name": "punctuation.definition.directive.c" + } + }, + "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", + "contentName": "comment.block.preprocessor.if-branch.c", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + }, + { + "begin": "\\n", + "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + } + ] + }, + "preprocessor-rule-enabled-block": { + "patterns": [ + { + "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.c" + }, + "1": { + "name": "keyword.control.directive.conditional.c" + }, + "2": { + "name": "punctuation.definition.directive.c" + } + }, + "end": "^\\s*((#)\\s*endif\\b)", + "endCaptures": { + "0": { + "name": "meta.preprocessor.c" + }, + "1": { + "name": "keyword.control.directive.conditional.c" + }, + "2": { + "name": "punctuation.definition.directive.c" + } + }, + "patterns": [ + { + "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)", + "name": "meta.preprocessor.c", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "#comments" + }, + { + "begin": "^\\s*((#)\\s*else\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.c" + }, + "1": { + "name": "keyword.control.directive.conditional.c" + }, + "2": { + "name": "punctuation.definition.directive.c" + } + }, + "end": "(?=^\\s*((#)\\s*endif\\b))", + "contentName": "comment.block.preprocessor.else-branch.in-block.c", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + }, + { + "begin": "^\\s*((#)\\s*elif\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.c" + }, + "1": { + "name": "keyword.control.directive.conditional.c" + }, + "2": { + "name": "punctuation.definition.directive.c" + } + }, + "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", + "contentName": "comment.block.preprocessor.if-branch.in-block.c", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + }, + { + "begin": "\\n", + "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", + "patterns": [ + { + "include": "#block_innards" + } + ] + } + ] + } + ] + }, + "preprocessor-rule-enabled-elif": { + "begin": "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.c" + }, + "1": { + "name": "keyword.control.directive.conditional.c" + }, + "2": { + "name": "punctuation.definition.directive.c" + } + }, + "end": "(?=^\\s*((#)\\s*endif\\b))", + "patterns": [ + { + "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.c", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "#comments" + }, + { + "begin": "\\n", + "end": "(?=^\\s*((#)\\s*(?:endif)\\b))", + "patterns": [ + { + "begin": "^\\s*((#)\\s*(else)\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.c" + }, + "1": { + "name": "keyword.control.directive.conditional.c" + }, + "2": { + "name": "punctuation.definition.directive.c" + } + }, + "end": "(?=^\\s*((#)\\s*endif\\b))", + "contentName": "comment.block.preprocessor.elif-branch.c", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + }, + { + "begin": "^\\s*((#)\\s*(elif)\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.c" + }, + "1": { + "name": "keyword.control.directive.conditional.c" + }, + "2": { + "name": "punctuation.definition.directive.c" + } + }, + "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", + "contentName": "comment.block.preprocessor.elif-branch.c", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + }, + { + "include": "$self" + } + ] + } + ] + }, + "preprocessor-rule-enabled-elif-block": { + "begin": "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.c" + }, + "1": { + "name": "keyword.control.directive.conditional.c" + }, + "2": { + "name": "punctuation.definition.directive.c" + } + }, + "end": "(?=^\\s*((#)\\s*endif\\b))", + "patterns": [ + { + "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.c", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "#comments" + }, + { + "begin": "\\n", + "end": "(?=^\\s*((#)\\s*(?:endif)\\b))", + "patterns": [ + { + "begin": "^\\s*((#)\\s*(else)\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.c" + }, + "1": { + "name": "keyword.control.directive.conditional.c" + }, + "2": { + "name": "punctuation.definition.directive.c" + } + }, + "end": "(?=^\\s*((#)\\s*endif\\b))", + "contentName": "comment.block.preprocessor.elif-branch.in-block.c", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + }, + { + "begin": "^\\s*((#)\\s*(elif)\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.c" + }, + "1": { + "name": "keyword.control.directive.conditional.c" + }, + "2": { + "name": "punctuation.definition.directive.c" + } + }, + "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", + "contentName": "comment.block.preprocessor.elif-branch.c", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + }, + { + "include": "#block_innards" + } + ] + } + ] + }, + "preprocessor-rule-enabled-else": { + "begin": "^\\s*((#)\\s*else\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.c" + }, + "1": { + "name": "keyword.control.directive.conditional.c" + }, + "2": { + "name": "punctuation.definition.directive.c" + } + }, + "end": "(?=^\\s*((#)\\s*endif\\b))", + "patterns": [ + { + "include": "$self" + } + ] + }, + "preprocessor-rule-enabled-else-block": { + "begin": "^\\s*((#)\\s*else\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.c" + }, + "1": { + "name": "keyword.control.directive.conditional.c" + }, + "2": { + "name": "punctuation.definition.directive.c" + } + }, + "end": "(?=^\\s*((#)\\s*endif\\b))", + "patterns": [ + { + "include": "#block_innards" + } + ] + }, + "probably_a_parameter": { + "match": "(?<=(?:[a-zA-Z_0-9] |[&*>\\]\\)]))\\s*([a-zA-Z_]\\w*)\\s*(?=(?:\\[\\]\\s*)?(?:,|\\)))", + "captures": { + "1": { + "name": "variable.parameter.probably.c" + } + } + }, + "static_assert": { + "begin": "((?>(?:(?:(?>(?<!\\s)\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?<!\\w)static_assert|_Static_assert(?!\\w))((?>(?:(?:(?>(?<!\\s)\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(\\()", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.c punctuation.definition.comment.begin.c" + }, + "3": { + "name": "comment.block.c" + }, + "4": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.c punctuation.definition.comment.end.c" + }, + { + "match": "\\*", + "name": "comment.block.c" + } + ] + }, + "5": { + "name": "keyword.other.static_assert.c" + }, + "6": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "7": { + "name": "comment.block.c punctuation.definition.comment.begin.c" + }, + "8": { + "name": "comment.block.c" + }, + "9": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.c punctuation.definition.comment.end.c" + }, + { + "match": "\\*", + "name": "comment.block.c" + } + ] + }, + "10": { + "name": "punctuation.section.arguments.begin.bracket.round.static_assert.c" + } + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.section.arguments.end.bracket.round.static_assert.c" + } + }, + "patterns": [ + { + "name": "meta.static_assert.message.c", + "begin": "(,)\\s*(?=(?:L|u8|u|U\\s*\\\")?)", + "beginCaptures": { + "1": { + "name": "punctuation.separator.delimiter.comma.c" + } + }, + "end": "(?=\\))", + "patterns": [ + { + "include": "#string_context" + } + ] + }, + { + "include": "#evaluation_context" + } + ] + }, + "storage_types": { + "patterns": [ + { + "match": "(?-mix:(?<!\\w)(?:unsigned|signed|double|_Bool|short|float|long|void|char|bool|int)(?!\\w))", + "name": "storage.type.built-in.primitive.c" + }, + { + "match": "(?-mix:(?<!\\w)(?:atomic_uint_least64_t|atomic_uint_least16_t|atomic_uint_least32_t|pthread_rwlockattr_t|atomic_uint_fast64_t|atomic_uint_fast32_t|atomic_uint_fast16_t|atomic_int_least64_t|atomic_int_least32_t|atomic_int_least16_t|atomic_uint_least8_t|atomic_uint_fast8_t|atomic_int_least8_t|atomic_int_fast16_t|pthread_mutexattr_t|atomic_int_fast32_t|atomic_int_fast64_t|atomic_int_fast8_t|pthread_condattr_t|atomic_ptrdiff_t|pthread_rwlock_t|atomic_uintptr_t|atomic_uintmax_t|atomic_intmax_t|atomic_intptr_t|atomic_char32_t|atomic_char16_t|pthread_mutex_t|pthread_cond_t|atomic_wchar_t|uint_least64_t|uint_least32_t|uint_least16_t|pthread_once_t|pthread_attr_t|int_least32_t|pthread_key_t|int_least16_t|int_least64_t|uint_least8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|atomic_ushort|atomic_ullong|atomic_size_t|int_fast16_t|int_fast64_t|uint_fast8_t|atomic_short|atomic_uchar|atomic_schar|int_least8_t|memory_order|atomic_llong|atomic_ulong|int_fast32_t|atomic_long|atomic_uint|atomic_char|int_fast8_t|suseconds_t|atomic_bool|atomic_int|_Imaginary|useconds_t|in_port_t|uintmax_t|uintmax_t|pthread_t|blksize_t|in_addr_t|uintptr_t|blkcnt_t|uint16_t|uint32_t|uint64_t|u_quad_t|_Complex|intptr_t|intmax_t|intmax_t|segsz_t|u_short|nlink_t|uint8_t|int64_t|int32_t|int16_t|fixpt_t|daddr_t|caddr_t|qaddr_t|ssize_t|clock_t|swblk_t|u_long|mode_t|int8_t|time_t|ushort|u_char|quad_t|size_t|pid_t|gid_t|uid_t|dev_t|div_t|off_t|u_int|key_t|ino_t|uint|id_t|id_t)(?!\\w))", + "name": "storage.type.built-in.c" + }, + { + "match": "(?-mix:\\b(enum|struct|union)\\b)", + "name": "storage.type.$1.c" + }, + { + "name": "meta.asm.c", + "begin": "(\\b(?:__asm__|asm)\\b)\\s*((?:volatile)?)", + "beginCaptures": { + "1": { + "name": "storage.type.asm.c" + }, + "2": { + "name": "storage.modifier.c" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "match": "(?:^)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:\\n|$)", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.c punctuation.definition.comment.begin.c" + }, + "3": { + "name": "comment.block.c" + }, + "4": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.c punctuation.definition.comment.end.c" + }, + { + "match": "\\*", + "name": "comment.block.c" + } + ] + } + } + }, + { + "include": "#comments" + }, + { + "begin": "(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))\\()", + "beginCaptures": { + "1": { + "name": "punctuation.section.parens.begin.bracket.round.assembly.c" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.c punctuation.definition.comment.begin.c" + }, + "4": { + "name": "comment.block.c" + }, + "5": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.c punctuation.definition.comment.end.c" + }, + { + "match": "\\*", + "name": "comment.block.c" + } + ] + } + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.section.parens.end.bracket.round.assembly.c" + } + }, + "patterns": [ + { + "name": "string.quoted.double.c", + "contentName": "meta.embedded.assembly.c", + "begin": "(R?)(\")", + "beginCaptures": { + "1": { + "name": "meta.encoding.c" + }, + "2": { + "name": "punctuation.definition.string.begin.assembly.c" + } + }, + "end": "(\")", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.assembly.c" + } + }, + "patterns": [ + { + "include": "source.asm" + }, + { + "include": "source.x86" + }, + { + "include": "source.x86_64" + }, + { + "include": "source.arm" + }, + { + "include": "#backslash_escapes" + }, + { + "include": "#string_escaped_char" + } + ] + }, + { + "begin": "(\\()", + "beginCaptures": { + "1": { + "name": "punctuation.section.parens.begin.bracket.round.assembly.inner.c" + } + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.section.parens.end.bracket.round.assembly.inner.c" + } + }, + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + { + "match": "\\[((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))([a-zA-Z_]\\w*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))\\]", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.c punctuation.definition.comment.begin.c" + }, + "3": { + "name": "comment.block.c" + }, + "4": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.c punctuation.definition.comment.end.c" + }, + { + "match": "\\*", + "name": "comment.block.c" + } + ] + }, + "5": { + "name": "variable.other.asm.label.c" + }, + "6": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "7": { + "name": "comment.block.c punctuation.definition.comment.begin.c" + }, + "8": { + "name": "comment.block.c" + }, + "9": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.c punctuation.definition.comment.end.c" + }, + { + "match": "\\*", + "name": "comment.block.c" + } + ] + } + } + }, + { + "match": ":", + "name": "punctuation.separator.delimiter.colon.assembly.c" + }, + { + "include": "#comments" + } + ] + } + ] + } + ] + }, + "string_escaped_char": { + "patterns": [ + { + "match": "(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3]\\d{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )", + "name": "constant.character.escape.c" + }, + { + "match": "\\\\.", + "name": "invalid.illegal.unknown-escape.c" + } + ] + }, + "string_placeholder": { + "patterns": [ + { + "match": "(?x) %\n(\\d+\\$)?\t\t\t\t\t\t # field (argument #)\n[#0\\- +']*\t\t\t\t\t\t # flags\n[,;:_]?\t\t\t\t\t\t\t # separator character (AltiVec)\n((-?\\d+)|\\*(-?\\d+\\$)?)?\t\t # minimum field width\n(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?\t# precision\n(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n[diouxXDOUeEfFgGaACcSspn%]\t\t # conversion type", + "name": "constant.other.placeholder.c" + }, + { + "match": "(%)(?!\"\\s*(PRI|SCN))", + "captures": { + "1": { + "name": "invalid.illegal.placeholder.c" + } + } + } + ] + }, + "strings": { + "patterns": [ + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.c" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.c" + } + }, + "name": "string.quoted.double.c", + "patterns": [ + { + "include": "#string_escaped_char" + }, + { + "include": "#string_placeholder" + }, + { + "include": "#line_continuation_character" + } + ] + }, + { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.c" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.c" + } + }, + "name": "string.quoted.single.c", + "patterns": [ + { + "include": "#string_escaped_char" + }, + { + "include": "#line_continuation_character" + } + ] + } + ] + }, + "switch_conditional_parentheses": { + "name": "meta.conditional.switch.c", + "begin": "((?>(?:(?:(?>(?<!\\s)\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(\\()", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.c punctuation.definition.comment.begin.c" + }, + "3": { + "name": "comment.block.c" + }, + "4": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.c punctuation.definition.comment.end.c" + }, + { + "match": "\\*", + "name": "comment.block.c" + } + ] + }, + "5": { + "name": "punctuation.section.parens.begin.bracket.round.conditional.switch.c" + } + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.section.parens.end.bracket.round.conditional.switch.c" + } + }, + "patterns": [ + { + "include": "#evaluation_context" + }, + { + "include": "#c_conditional_context" + } + ] + }, + "switch_statement": { + "name": "meta.block.switch.c", + "begin": "(((?>(?:(?:(?>(?<!\\s)\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?<!\\w)switch(?!\\w)))", + "beginCaptures": { + "1": { + "name": "meta.head.switch.c" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.c punctuation.definition.comment.begin.c" + }, + "4": { + "name": "comment.block.c" + }, + "5": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.c punctuation.definition.comment.end.c" + }, + { + "match": "\\*", + "name": "comment.block.c" + } + ] + }, + "6": { + "name": "keyword.control.switch.c" + } + }, + "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))", + "patterns": [ + { + "name": "meta.head.switch.c", + "begin": "\\G ?", + "end": "((?:\\{|<%|\\?\\?<|(?=;)))", + "endCaptures": { + "1": { + "name": "punctuation.section.block.begin.bracket.curly.switch.c" + } + }, + "patterns": [ + { + "include": "#switch_conditional_parentheses" + }, + { + "include": "$self" + } + ] + }, + { + "name": "meta.body.switch.c", + "begin": "(?<=\\{|<%|\\?\\?<)", + "end": "(\\}|%>|\\?\\?>)", + "endCaptures": { + "1": { + "name": "punctuation.section.block.end.bracket.curly.switch.c" + } + }, + "patterns": [ + { + "include": "#default_statement" + }, + { + "include": "#case_statement" + }, + { + "include": "$self" + }, + { + "include": "#block_innards" + } + ] + }, + { + "name": "meta.tail.switch.c", + "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*", + "end": "[\\s\\n]*(?=;)", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + "vararg_ellipses": { + "match": "(?<!\\.)\\.\\.\\.(?!\\.)", + "name": "punctuation.vararg-ellipses.c" + } + } +} diff --git a/docs/shiki/languages/cadence.tmLanguage.json b/docs/shiki/languages/cadence.tmLanguage.json new file mode 100644 index 00000000..13c0d079 --- /dev/null +++ b/docs/shiki/languages/cadence.tmLanguage.json @@ -0,0 +1,738 @@ +{ + "scopeName": "source.cadence", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#expressions" + }, + { + "include": "#declarations" + }, + { + "include": "#keywords" + }, + { + "include": "#code-block" + }, + { + "include": "#composite" + }, + { + "include": "#event" + } + ], + "repository": { + "comments": { + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.comment.cadence" + } + }, + "match": "\\A^(#!).*$\\n?", + "name": "comment.line.number-sign.cadence" + }, + { + "begin": "/\\*\\*(?!/)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.begin.cadence" + } + }, + "end": "\\*/", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.end.cadence" + } + }, + "name": "comment.block.documentation.cadence", + "patterns": [ + { + "include": "#nested" + } + ] + }, + { + "begin": "/\\*:", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.begin.cadence" + } + }, + "end": "\\*/", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.end.cadence" + } + }, + "name": "comment.block.documentation.playground.cadence", + "patterns": [ + { + "include": "#nested" + } + ] + }, + { + "begin": "/\\*", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.begin.cadence" + } + }, + "end": "\\*/", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.end.cadence" + } + }, + "name": "comment.block.cadence", + "patterns": [ + { + "include": "#nested" + } + ] + }, + { + "match": "\\*/", + "name": "invalid.illegal.unexpected-end-of-block-comment.cadence" + }, + { + "begin": "(^[ \\t]+)?(?=//)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.cadence" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": "///", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.cadence" + } + }, + "end": "^", + "name": "comment.line.triple-slash.documentation.cadence" + }, + { + "begin": "//:", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.cadence" + } + }, + "end": "^", + "name": "comment.line.double-slash.documentation.cadence" + }, + { + "begin": "//", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.cadence" + } + }, + "end": "^", + "name": "comment.line.double-slash.cadence" + } + ] + } + ], + "repository": { + "nested": { + "begin": "/\\*", + "end": "\\*/", + "patterns": [ + { + "include": "#nested" + } + ] + } + } + }, + "literals": { + "patterns": [ + { + "include": "#boolean" + }, + { + "include": "#numeric" + }, + { + "include": "#string" + }, + { + "match": "\\bnil\\b", + "name": "constant.language.nil.cadence" + } + ], + "repository": { + "boolean": { + "match": "\\b(true|false)\\b", + "name": "constant.language.boolean.cadence" + }, + "numeric": { + "patterns": [ + { + "include": "#binary" + }, + { + "include": "#octal" + }, + { + "include": "#decimal" + }, + { + "include": "#hexadecimal" + } + ], + "repository": { + "binary": { + "comment": "", + "match": "(\\B\\-|\\b)0b[01]([_01]*[01])?\\b", + "name": "constant.numeric.integer.binary.cadence" + }, + "octal": { + "comment": "", + "match": "(\\B\\-|\\b)0o[0-7]([_0-7]*[0-7])?\\b", + "name": "constant.numeric.integer.octal.cadence" + }, + "decimal": { + "comment": "", + "match": "(\\B\\-|\\b)[0-9]([_0-9]*[0-9])?\\b", + "name": "constant.numeric.integer.decimal.cadence" + }, + "hexadecimal": { + "comment": "", + "match": "(\\B\\-|\\b)0x[0-9A-Fa-f]([_0-9A-Fa-f]*[0-9A-Fa-f])?\\b", + "name": "constant.numeric.integer.hexadecimal.cadence" + } + } + }, + "string": { + "patterns": [ + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.cadence" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.cadence" + } + }, + "name": "string.quoted.double.single-line.cadence", + "patterns": [ + { + "match": "\\r|\\n", + "name": "invalid.illegal.returns-not-allowed.cadence" + }, + { + "include": "#string-guts" + } + ] + } + ], + "repository": { + "string-guts": { + "patterns": [ + { + "match": "\\\\[0\\\\tnr\"']", + "name": "constant.character.escape.cadence" + }, + { + "match": "\\\\u\\{[0-9a-fA-F]{1,8}\\}", + "name": "constant.character.escape.unicode.cadence" + } + ] + } + } + } + } + }, + "operators": { + "patterns": [ + { + "match": "\\-", + "name": "keyword.operator.arithmetic.unary.cadence" + }, + { + "match": "!", + "name": "keyword.operator.logical.not.cadence" + }, + { + "match": "=", + "name": "keyword.operator.assignment.cadence" + }, + { + "match": "<-", + "name": "keyword.operator.move.cadence" + }, + { + "match": "<-!", + "name": "keyword.operator.force-move.cadence" + }, + { + "match": "\\+|\\-|\\*|/", + "name": "keyword.operator.arithmetic.cadence" + }, + { + "match": "%", + "name": "keyword.operator.arithmetic.remainder.cadence" + }, + { + "match": "==|!=|>|<|>=|<=", + "name": "keyword.operator.comparison.cadence" + }, + { + "match": "\\?\\?", + "name": "keyword.operator.coalescing.cadence" + }, + { + "match": "&&|\\|\\|", + "name": "keyword.operator.logical.cadence" + }, + { + "match": "[?!]", + "name": "keyword.operator.type.optional.cadence" + } + ] + }, + "keywords": { + "patterns": [ + { + "match": "(?<!\\.)\\b(?:if|else|switch|case|default)\\b", + "name": "keyword.control.branch.cadence" + }, + { + "match": "(?<!\\.)\\b(?:return|continue|break)\\b", + "name": "keyword.control.transfer.cadence" + }, + { + "match": "(?<!\\.)\\b(?:while|for|in)\\b", + "name": "keyword.control.loop.cadence" + }, + { + "match": "(?<!\\.)\\b(?:pre|post|prepare|execute|create|destroy|emit)\\b", + "name": "keyword.other.cadence" + }, + { + "match": "(?<!\\.)\\b(?:private|pub(?:\\(set\\))?|access\\((?:self|contract|account|all)\\))\\b", + "name": "keyword.other.declaration-specifier.accessibility.cadence" + }, + { + "match": "\\b(?:init|destroy)\\b", + "name": "storage.type.function.cadence" + }, + { + "match": "(?<!\\.)\\b(?:import|from)\\b", + "name": "keyword.control.import.cadence" + } + ] + }, + "code-block": { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.section.scope.begin.cadence" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.section.scope.end.cadence" + } + }, + "patterns": [ + { + "include": "$self" + } + ] + }, + "function": { + "begin": "\\b(fun)\\b\\s+([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)\\s*", + "beginCaptures": { + "1": { + "name": "storage.type.function.cadence" + }, + "2": { + "name": "entity.name.function.cadence" + } + }, + "end": "(?<=\\})|$", + "name": "meta.definition.function.cadence", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#parameter-clause" + }, + { + "include": "#function-result" + }, + { + "begin": "(\\{)", + "beginCaptures": { + "1": { + "name": "punctuation.section.function.begin.cadence" + } + }, + "end": "(\\})", + "endCaptures": { + "1": { + "name": "punctuation.section.function.end.cadence" + } + }, + "name": "meta.definition.function.body.cadence", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + "initializer": { + "begin": "(?<!\\.)\\b(init)\\s*(?=\\(|<)", + "beginCaptures": { + "1": { + "name": "storage.type.function.cadence" + } + }, + "end": "(?<=\\})|$", + "name": "meta.definition.function.initializer.cadence", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#parameter-clause" + }, + { + "begin": "(\\{)", + "beginCaptures": { + "1": { + "name": "punctuation.section.function.begin.cadence" + } + }, + "end": "(\\})", + "endCaptures": { + "1": { + "name": "punctuation.section.function.end.cadence" + } + }, + "name": "meta.definition.function.body.cadence", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + "function-result": { + "begin": "(?<![/=\\-+!*%<>&|\\^~.])(:)(?![/=\\-+!*%<>&|\\^~.])\\s*", + "beginCaptures": { + "1": { + "name": "keyword.operator.function-result.cadence" + } + }, + "end": "(?!\\G)(?=\\{|;)|$", + "name": "meta.function-result.cadence", + "patterns": [ + { + "include": "#type" + } + ] + }, + "expressions": { + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#function-call-expression" + }, + { + "include": "#literals" + }, + { + "include": "#operators" + }, + { + "include": "#language-variables" + } + ] + }, + "language-variables": { + "patterns": [ + { + "match": "\\b(self)\\b", + "name": "variable.language.cadence" + } + ] + }, + "function-call-expression": { + "patterns": [ + { + "begin": "(?!(?:set|init))([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "support.function.any-method.cadence" + }, + "4": { + "name": "punctuation.definition.arguments.begin.cadence" + } + }, + "comment": "foo(args) -- a call whose callee is a highlightable name", + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.end.cadence" + } + }, + "name": "meta.function-call.cadence", + "patterns": [ + { + "include": "#expression-element-list" + } + ] + } + ] + }, + "expression-element-list": { + "patterns": [ + { + "include": "#comments" + }, + { + "begin": "([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)\\s*(:)", + "beginCaptures": { + "1": { + "name": "support.function.any-method.cadence" + }, + "2": { + "name": "punctuation.separator.argument-label.cadence" + } + }, + "comment": "an element with a label", + "end": "(?=[,)\\]])", + "patterns": [ + { + "include": "#expressions" + } + ] + }, + { + "begin": "(?![,)\\]])(?=\\S)", + "comment": "an element without a label (i.e. anything else)", + "end": "(?=[,)\\]])", + "patterns": [ + { + "include": "#expressions" + } + ] + } + ] + }, + "declarations": { + "patterns": [ + { + "include": "#var-let-declaration" + }, + { + "include": "#function" + }, + { + "include": "#initializer" + } + ] + }, + "var-let-declaration": { + "begin": "\\b(var|let)\\b\\s+([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)", + "beginCaptures": { + "1": { + "name": "storage.type.$1.cadence" + }, + "2": { + "name": "entity.name.type.$1.cadence" + } + }, + "end": "=|<-|<-!|$", + "patterns": [ + { + "include": "#type" + } + ] + }, + "type": { + "patterns": [ + { + "include": "#comments" + }, + { + "match": "([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)", + "name": "storage.type.cadence" + } + ] + }, + "parameter-clause": { + "begin": "(\\()", + "beginCaptures": { + "1": { + "name": "punctuation.definition.parameters.begin.cadence" + } + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.definition.parameters.end.cadence" + } + }, + "name": "meta.parameter-clause.cadence", + "patterns": [ + { + "include": "#parameter-list" + } + ] + }, + "parameter-list": { + "patterns": [ + { + "match": "([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)\\s+([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)(?=\\s*:)", + "captures": { + "1": { + "name": "entity.name.function.cadence" + }, + "2": { + "name": "variable.parameter.function.cadence" + } + }, + "comment": "External parameter labels are considered part of the function name" + }, + { + "match": "(([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*))(?=\\s*:)", + "captures": { + "1": { + "name": "variable.parameter.function.cadence" + }, + "2": { + "name": "entity.name.function.cadence" + } + }, + "comment": "If no external label is given, the name is both the external label and the internal variable name" + }, + { + "begin": ":\\s*(?!\\s)", + "end": "(?=[,)])", + "patterns": [ + { + "include": "#type" + }, + { + "match": ":", + "name": "invalid.illegal.extra-colon-in-parameter-list.cadence" + } + ] + } + ] + }, + "event": { + "begin": "\\b(event)\\b\\s+([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)\\s*", + "beginCaptures": { + "1": { + "name": "storage.type.event.cadence" + }, + "2": { + "name": "entity.name.type.event.cadence" + } + }, + "end": "(?<=\\))|$", + "name": "meta.definition.type.event.cadence", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#parameter-clause" + } + ] + }, + "composite": { + "begin": "\\b((?:(?:struct|resource|contract)(?:\\s+interface)?)|transaction|enum)\\s+([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)", + "beginCaptures": { + "1": { + "name": "storage.type.$1.cadence" + }, + "2": { + "name": "entity.name.type.$1.cadence" + } + }, + "end": "(?<=\\})", + "name": "meta.definition.type.composite.cadence", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#conformance-clause" + }, + { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.type.begin.cadence" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.type.end.cadence" + } + }, + "name": "meta.definition.type.body.cadence", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + "conformance-clause": { + "begin": "(:)(?=\\s*\\{)|(:)\\s*", + "beginCaptures": { + "1": { + "name": "invalid.illegal.empty-conformance-clause.cadence" + }, + "2": { + "name": "punctuation.separator.conformance-clause.cadence" + } + }, + "end": "(?!\\G)$|(?=[={}])", + "name": "meta.conformance-clause.cadence", + "patterns": [ + { + "begin": "\\G", + "end": "(?!\\G)$|(?=[={}])", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#type" + } + ] + } + ] + } + }, + "name": "cadence" +} diff --git a/docs/shiki/languages/clarity.tmLanguage.json b/docs/shiki/languages/clarity.tmLanguage.json new file mode 100644 index 00000000..bea1c281 --- /dev/null +++ b/docs/shiki/languages/clarity.tmLanguage.json @@ -0,0 +1,878 @@ +{ + "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", + "name": "clarity", + "scopeName": "source.clar", + "uuid": "f9e9871d-2ea6-4be0-afd2-fc382d704716", + "patterns": [ + { + "include": "#expression" + }, + { + "include": "#define-constant" + }, + { + "include": "#define-data-var" + }, + { + "include": "#define-map" + }, + { + "include": "#define-function" + }, + { + "include": "#define-fungible-token" + }, + { + "include": "#define-non-fungible-token" + }, + { + "include": "#define-trait" + }, + { + "include": "#use-trait" + } + ], + "repository": { + "comment": { + "name": "comment.line.semicolon.clarity", + "match": "(?x) (?<=^|[()\\[\\]{}\",'`;\\s]) (;) .* $" + }, + "expression": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#keyword" + }, + { + "include": "#literal" + }, + { + "include": "#let-func" + }, + { + "include": "#built-in-func" + }, + { + "include": "#get-set-func" + } + ] + }, + "keyword": { + "name": "constant.language.clarity", + "match": "(?<!\\S)(?!-)\\b(?:block-height|burn-block-height|chain-id|contract-caller|is-in-regtest|stx-liquid-supply|tx-sender|tx-sponsor?)\\b(?!\\s*-)" + }, + "define-function": { + "begin": "(?x) (\\() \\s* (define-(?:public|private|read-only)) \\s+", + "end": "(\\))", + "beginCaptures": { + "1": { + "name": "punctuation.define-function.start.clarity" + }, + "2": { + "name": "keyword.declaration.define-function.clarity" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.define-function.end.clarity" + } + }, + "name": "meta.define-function", + "patterns": [ + { + "include": "#expression" + }, + { + "begin": "(?x) (\\() \\s* ([a-zA-Z][\\w\\?\\!\\-]*) \\s*", + "end": "(\\))", + "beginCaptures": { + "1": { + "name": "punctuation.function-signature.start.clarity" + }, + "2": { + "name": "entity.name.function.clarity" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.function-signature.end.clarity" + } + }, + "name": "meta.define-function-signature", + "patterns": [ + { + "begin": "(?x) (\\() \\s* ([a-zA-Z][\\w\\?\\!\\-]*) \\s+", + "end": "(\\))", + "beginCaptures": { + "1": { + "name": "punctuation.function-argument.start.clarity" + }, + "2": { + "name": "variable.parameter.clarity" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.function-argument.end.clarity" + } + }, + "name": "meta.function-argument", + "patterns": [ + { + "include": "#data-type" + } + ] + } + ] + }, + { + "include": "#user-func" + } + ] + }, + "define-fungible-token": { + "match": "(?x) (\\() \\s* (define-fungible-token) \\s+ ([a-zA-Z][\\w\\?\\!\\-]*) (?:\\s+(u\\d+))?", + "captures": { + "1": { + "name": "punctuation.define-fungible-token.start.clarity" + }, + "2": { + "name": "keyword.declaration.define-fungible-token.clarity" + }, + "3": { + "name": "entity.name.fungible-token-name.clarity variable.other.clarity" + }, + "4": { + "name": "constant.numeric.fungible-token-total-supply.clarity" + }, + "5": { + "name": "punctuation.define-fungible-token.end.clarity" + } + } + }, + "define-non-fungible-token": { + "begin": "(?x) (\\() \\s* (define-non-fungible-token) \\s+ ([a-zA-Z][\\w\\?\\!\\-]*) \\s+", + "end": "(\\))", + "beginCaptures": { + "1": { + "name": "punctuation.define-non-fungible-token.start.clarity" + }, + "2": { + "name": "keyword.declaration.define-non-fungible-token.clarity" + }, + "3": { + "name": "entity.name.non-fungible-token-name.clarity variable.other.clarity" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.define-non-fungible-token.end.clarity" + } + }, + "name": "meta.define-non-fungible-token", + "patterns": [ + { + "include": "#data-type" + } + ] + }, + "define-trait": { + "begin": "(?x) (\\() \\s* (define-trait) \\s+ ([a-zA-Z][\\w\\?\\!\\-]*) \\s+", + "end": "(\\))", + "beginCaptures": { + "1": { + "name": "punctuation.define-trait.start.clarity" + }, + "2": { + "name": "keyword.declaration.define-trait.clarity" + }, + "3": { + "name": "entity.name.trait-name.clarity variable.other.clarity" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.define-trait.end.clarity" + } + }, + "name": "meta.define-trait", + "patterns": [ + { + "begin": "(?x) (\\() \\s*", + "end": "(\\))", + "beginCaptures": { + "1": { + "name": "punctuation.define-trait-body.start.clarity" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.define-trait-body.end.clarity" + } + }, + "name": "meta.define-trait-body", + "patterns": [ + { + "include": "#expression" + }, + { + "begin": "(?x) (\\() \\s* ([a-zA-Z][\\w\\!\\?\\-]*) \\s+", + "end": "(\\))", + "beginCaptures": { + "1": { + "name": "punctuation.trait-function.start.clarity" + }, + "2": { + "name": "entity.name.function.clarity" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.trait-function.end.clarity" + } + }, + "name": "meta.trait-function", + "patterns": [ + { + "include": "#data-type" + }, + { + "begin": "(?x) (\\() \\s*", + "end": "(\\))", + "beginCaptures": { + "1": { + "name": "punctuation.trait-function-args.start.clarity" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.trait-function-args.end.clarity" + } + }, + "name": "meta.trait-function-args", + "patterns": [ + { + "include": "#data-type" + } + ] + } + ] + } + ] + } + ] + }, + "use-trait": { + "begin": "(?x) (\\() \\s* (use-trait) \\s+ ([a-zA-Z][\\w\\?\\!\\-]*) \\s+", + "end": "(\\))", + "beginCaptures": { + "1": { + "name": "punctuation.use-trait.start.clarity" + }, + "2": { + "name": "keyword.declaration.use-trait.clarity" + }, + "3": { + "name": "entity.name.trait-alias.clarity variable.other.clarity" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.use-trait.end.clarity" + } + }, + "name": "meta.use-trait", + "patterns": [ + { + "include": "#literal" + } + ] + }, + "define-constant": { + "begin": "(?x) (\\() \\s* (define-constant) \\s+ ([a-zA-Z][\\w\\?\\!\\-]*) \\s+", + "end": "(\\))", + "beginCaptures": { + "1": { + "name": "punctuation.define-constant.start.clarity" + }, + "2": { + "name": "keyword.declaration.define-constant.clarity" + }, + "3": { + "name": "entity.name.constant-name.clarity variable.other.clarity" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.define-constant.end.clarity" + } + }, + "name": "meta.define-constant", + "patterns": [ + { + "include": "#expression" + } + ] + }, + "define-data-var": { + "begin": "(?x) (\\() \\s* (define-data-var) \\s+ ([a-zA-Z][\\w\\?\\!\\-]*) \\s+", + "end": "(\\))", + "beginCaptures": { + "1": { + "name": "punctuation.define-data-var.start.clarity" + }, + "2": { + "name": "keyword.declaration.define-data-var.clarity" + }, + "3": { + "name": "entity.name.data-var-name.clarity variable.other.clarity" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.define-data-var.end.clarity" + } + }, + "name": "meta.define-data-var", + "patterns": [ + { + "include": "#data-type" + }, + { + "include": "#expression" + } + ] + }, + "define-map": { + "begin": "(?x) (\\() \\s* (define-map) \\s+ ([a-zA-Z][\\w\\?\\!\\-]*) \\s+", + "end": "(\\))", + "beginCaptures": { + "1": { + "name": "punctuation.define-map.start.clarity" + }, + "2": { + "name": "keyword.declaration.define-map.clarity" + }, + "3": { + "name": "entity.name.map-name.clarity variable.other.clarity" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.define-map.end.clarity" + } + }, + "name": "meta.define-map", + "patterns": [ + { + "include": "#data-type" + }, + { + "include": "#expression" + } + ] + }, + "literal": { + "patterns": [ + { + "include": "#number-literal" + }, + { + "include": "#bool-literal" + }, + { + "include": "#string-literal" + }, + { + "include": "#tuple-literal" + }, + { + "include": "#principal-literal" + }, + { + "include": "#list-literal" + }, + { + "include": "#optional-literal" + }, + { + "include": "#response-literal" + } + ], + "repository": { + "number-literal": { + "patterns": [ + { + "comment": "unsigned integers", + "name": "constant.numeric.uint.clarity", + "match": "(?<!\\S)(?!-)\\bu\\d+\\b(?!\\s*-)" + }, + { + "comment": "signed integers", + "name": "constant.numeric.int.clarity", + "match": "(?<!\\S)(?!-)\\b\\d+\\b(?!\\s*-)" + }, + { + "comment": "hexadecimals", + "name": "constant.numeric.hex.clarity", + "match": "(?<!\\S)(?!-)\\b0x[0-9a-f]*\\b(?!\\s*-)" + } + ] + }, + "bool-literal": { + "name": "constant.language.bool.clarity", + "match": "(?<!\\S)(?!-)\\b(true|false)\\b(?!\\s*-)" + }, + "string-literal": { + "patterns": [ + { + "name": "string.quoted.double.clarity", + "begin": "(u?)(\")", + "beginCaptures": { + "1": { + "name": "string.quoted.utf8.clarity" + }, + "2": { + "name": "punctuation.definition.string.begin.clarity" + } + }, + "end": "\"", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.clarity" + } + }, + "patterns": [ + { + "name": "constant.character.escape.quote", + "match": "\\\\." + } + ] + } + ] + }, + "tuple-literal": { + "begin": "(\\{)", + "end": "(\\})", + "beginCaptures": { + "1": { + "name": "punctuation.tuple.start.clarity" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.tuple.end.clarity" + } + }, + "name": "meta.tuple", + "patterns": [ + { + "name": "entity.name.tag.tuple-key.clarity", + "match": "([a-zA-Z][\\w\\?\\!\\-]*)(?=:)" + }, + { + "include": "#expression" + }, + { + "include": "#user-func" + } + ] + }, + "principal-literal": { + "name": "constant.other.principal.clarity", + "match": "(?x) \\'[0-9A-Z]{28,41}(:?\\.[a-zA-Z][a-zA-Z0-9\\-]+){0,2} | (\\.[a-zA-Z][a-zA-Z0-9\\-]*){1,2} (?=[\\s(){},]|$)" + }, + "list-literal": { + "begin": "(?x) (\\() \\s* (list) \\s+", + "end": "(\\))", + "beginCaptures": { + "1": { + "name": "punctuation.list.start.clarity" + }, + "2": { + "name": "entity.name.type.list.clarity" + } + }, + "endCaptures": { + "1": { + "names": "punctuation.list.end.clarity" + } + }, + "name": "meta.list", + "patterns": [ + { + "include": "#expression" + }, + { + "include": "#user-func" + } + ] + }, + "optional-literal": { + "patterns": [ + { + "match": "(?<!\\S)(?!-)\\b(none)\\b(?!\\s*-)", + "name": "constant.language.none.clarity" + }, + { + "begin": "(?x) (\\() \\s* (some) \\s+", + "end": "(\\))", + "beginCaptures": { + "1": { + "name": "punctuation.some.start.clarity" + }, + "2": { + "name": "constant.language.some.clarity" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.some.end.clarity" + } + }, + "name": "meta.some", + "patterns": [ + { + "include": "#expression" + } + ] + } + ] + }, + "response-literal": { + "begin": "(?x) (\\() \\s* (ok|err) \\s+", + "end": "(\\))", + "beginCaptures": { + "1": { + "name": "punctuation.response.start.clarity" + }, + "2": { + "name": "constant.language.ok-err.clarity" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.response.end.clarity" + } + }, + "name": "meta.response", + "patterns": [ + { + "include": "#expression" + }, + { + "include": "#user-func" + } + ] + } + } + }, + "data-type": { + "patterns": [ + { + "include": "#comment" + }, + { + "comment": "numerics", + "name": "entity.name.type.numeric.clarity", + "match": "\\b(uint|int)\\b" + }, + { + "comment": "principal", + "name": "entity.name.type.principal.clarity", + "match": "\\b(principal)\\b" + }, + { + "comment": "bool", + "name": "entity.name.type.bool.clarity", + "match": "\\b(bool)\\b" + }, + { + "match": "(?x) (\\() \\s* (?:(string-ascii|string-utf8)\\s+(\\d+)) \\s* (\\))", + "captures": { + "1": { + "name": "punctuation.string_type-def.start.clarity" + }, + "2": { + "name": "entity.name.type.string_type.clarity" + }, + "3": { + "name": "constant.numeric.string_type-len.clarity" + }, + "4": { + "name": "punctuation.string_type-def.end.clarity" + } + } + }, + { + "match": "(?x) (\\() \\s* (buff)\\s+(\\d+)\\s* (\\))", + "captures": { + "1": { + "name": "punctuation.buff-def.start.clarity" + }, + "2": { + "name": "entity.name.type.buff.clarity" + }, + "3": { + "name": "constant.numeric.buf-len.clarity" + }, + "4": { + "name": "punctuation.buff-def.end.clarity" + } + } + }, + { + "comment": "optional", + "begin": "(?x) (\\() \\s* (optional)\\s+", + "beginCaptures": { + "1": { + "name": "punctuation.optional-def.start.clarity" + }, + "2": { + "name": "storage.type.modifier" + } + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.optional-def.end.clarity" + } + }, + "name": "meta.optional-def", + "patterns": [ + { + "include": "#data-type" + } + ] + }, + { + "comment": "response", + "begin": "(?x) (\\() \\s* (response)\\s+", + "beginCaptures": { + "1": { + "name": "punctuation.response-def.start.clarity" + }, + "2": { + "name": "storage.type.modifier" + } + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.response-def.end.clarity" + } + }, + "name": "meta.response-def", + "patterns": [ + { + "include": "#data-type" + } + ] + }, + { + "comment": "list", + "begin": "(?x) (\\() \\s* (list) \\s+ (\\d+) \\s+", + "end": "(\\))", + "beginCaptures": { + "1": { + "name": "punctuation.list-def.start.clarity" + }, + "2": { + "name": "entity.name.type.list.clarity" + }, + "3": { + "name": "constant.numeric.list-len.clarity" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.list-def.end.clarity" + } + }, + "name": "meta.list-def", + "patterns": [ + { + "include": "#data-type" + } + ] + }, + { + "begin": "(\\{)", + "beginCaptures": { + "1": { + "name": "punctuation.tuple-def.start.clarity" + } + }, + "end": "(\\})", + "endCaptures": { + "1": { + "name": "punctuation.tuple-def.end.clarity" + } + }, + "name": "meta.tuple-def", + "patterns": [ + { + "name": "entity.name.tag.tuple-data-type-key.clarity", + "match": "([a-zA-Z][\\w\\?\\!\\-]*)(?=:)" + }, + { + "include": "#data-type" + } + ] + } + ] + }, + "built-in-func": { + "begin": "(?x) (\\() \\s* (\\-|\\+|<\\=|>\\=|<|>|\\*|/|and|append|as-contract|as-max-len\\?|asserts!|at-block|begin|bit-and|bit-not|bit-or|bit-shift-left|bit-shift-right|bit-xor|buff-to-int-be|buff-to-int-le|buff-to-uint-be|buff-to-uint-le|concat|contract-call\\?|contract-of|default-to|element-at|element-at\\?|filter|fold|from-consensus-buff\\?|ft-burn\\?|ft-get-balance|ft-get-supply|ft-mint\\?|ft-transfer\\?|get-block-info\\?|get-burn-block-info\\?|hash160|if|impl-trait|index-of|index-of\\?|int-to-ascii|int-to-utf8|is-eq|is-err|is-none|is-ok|is-some|is-standard|keccak256|len|log2|map|match|merge|mod|nft-burn\\?|nft-get-owner\\?|nft-mint\\?|nft-transfer\\?|not|or|pow|principal-construct\\?|principal-destruct\\?|principal-of\\?|print|replace-at\\?|secp256k1-recover\\?|secp256k1-verify|sha256|sha512|sha512/256|slice\\?|sqrti|string-to-int\\?|string-to-uint\\?|stx-account|stx-burn\\?|stx-get-balance|stx-transfer-memo\\?|stx-transfer\\?|to-consensus-buff\\?|to-int|to-uint|try!|unwrap!|unwrap-err!|unwrap-err-panic|unwrap-panic|xor) \\s+", + "end": "(\\))", + "beginCaptures": { + "1": { + "name": "punctuation.built-in-function.start.clarity" + }, + "2": { + "name": "keyword.declaration.built-in-function.clarity" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.built-in-function.end.clarity" + } + }, + "name": "meta.built-in-function", + "patterns": [ + { + "include": "#expression" + }, + { + "include": "#user-func" + } + ] + }, + "get-set-func": { + "name": "meta.get-set-func", + "begin": "(?x) (\\() \\s* (var-get|var-set|map-get\\?|map-set|map-insert|map-delete|get) \\s+ ([a-zA-Z][\\w\\?\\!\\-]*) \\s*", + "end": "(\\))", + "beginCaptures": { + "1": { + "name": "punctuation.get-set-func.start.clarity" + }, + "2": { + "name": "keyword.control.clarity" + }, + "3": { + "name": "variable.other.clarity" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.get-set-func.end.clarity" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + "let-func": { + "begin": "(?x) (\\() \\s* (let) \\s*", + "end": "(\\))", + "beginCaptures": { + "1": { + "name": "punctuation.let-function.start.clarity" + }, + "2": { + "name": "keyword.declaration.let-function.clarity" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.let-function.end.clarity" + } + }, + "name": "meta.let-function", + "patterns": [ + { + "include": "#expression" + }, + { + "include": "#user-func" + }, + { + "begin": "(?x) (\\() \\s*", + "end": "(\\))", + "beginCaptures": { + "1": { + "name": "punctuation.let-var.start.clarity" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.let-var.end.clarity" + } + }, + "name": "meta.let-var", + "patterns": [ + { + "begin": "(?x) (\\() ([a-zA-Z][\\w\\?\\!\\-]*) \\s+", + "end": "(\\))", + "beginCaptures": { + "1": { + "name": "punctuation.let-local-var.start.clarity" + }, + "2": { + "name": "entity.name.let-local-var-name.clarity variable.parameter.clarity" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.let-local-var.end.clarity" + } + }, + "name": "meta.let-local-var", + "patterns": [ + { + "include": "#expression" + }, + { + "include": "#user-func" + } + ] + }, + { + "include": "#expression" + } + ] + } + ] + }, + "user-func": { + "begin": "(?x) (\\() \\s* (([a-zA-Z][\\w\\?\\!\\-]*)) \\s*", + "end": "(\\))", + "beginCaptures": { + "1": { + "name": "punctuation.user-function.start.clarity" + }, + "2": { + "name": "entity.name.function.clarity" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.user-function.end.clarity" + } + }, + "name": "meta.user-function", + "patterns": [ + { + "include": "#expression" + }, + { + "include": "$self" + } + ] + } + } +} diff --git a/docs/shiki/languages/clojure.tmLanguage.json b/docs/shiki/languages/clojure.tmLanguage.json new file mode 100644 index 00000000..d078016f --- /dev/null +++ b/docs/shiki/languages/clojure.tmLanguage.json @@ -0,0 +1,431 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/atom/language-clojure/blob/master/grammars/clojure.cson", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/atom/language-clojure/commit/45bdb881501d0b8f8b707ca1d3fcc8b4b99fca03", + "name": "clojure", + "scopeName": "source.clojure", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#shebang-comment" + }, + { + "include": "#quoted-sexp" + }, + { + "include": "#sexp" + }, + { + "include": "#keyfn" + }, + { + "include": "#string" + }, + { + "include": "#vector" + }, + { + "include": "#set" + }, + { + "include": "#map" + }, + { + "include": "#regexp" + }, + { + "include": "#var" + }, + { + "include": "#constants" + }, + { + "include": "#dynamic-variables" + }, + { + "include": "#metadata" + }, + { + "include": "#namespace-symbol" + }, + { + "include": "#symbol" + } + ], + "repository": { + "comment": { + "begin": "(?<!\\\\);", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.clojure" + } + }, + "end": "$", + "name": "comment.line.semicolon.clojure" + }, + "constants": { + "patterns": [ + { + "match": "(nil)(?=(\\s|\\)|\\]|\\}))", + "name": "constant.language.nil.clojure" + }, + { + "match": "(true|false)", + "name": "constant.language.boolean.clojure" + }, + { + "match": "(##(?:Inf|-Inf|NaN))", + "name": "constant.numeric.symbol.clojure" + }, + { + "match": "([-+]?\\d+/\\d+)", + "name": "constant.numeric.ratio.clojure" + }, + { + "match": "([-+]?(?:(?:3[0-6])|(?:[12]\\d)|[2-9])[rR][0-9A-Za-z]+N?)", + "name": "constant.numeric.arbitrary-radix.clojure" + }, + { + "match": "([-+]?0[xX][0-9a-fA-F]+N?)", + "name": "constant.numeric.hexadecimal.clojure" + }, + { + "match": "([-+]?0[0-7]+N?)", + "name": "constant.numeric.octal.clojure" + }, + { + "match": "([-+]?[0-9]+(?:(\\.|(?=[eEM]))[0-9]*([eE][-+]?[0-9]+)?)M?)", + "name": "constant.numeric.double.clojure" + }, + { + "match": "([-+]?\\d+N?)", + "name": "constant.numeric.long.clojure" + }, + { + "include": "#keyword" + } + ] + }, + "keyword": { + "match": "(?<=(\\s|\\(|\\[|\\{)):[\\w\\#\\.\\-\\_\\:\\+\\=\\>\\<\\/\\!\\?\\*]+(?=(\\s|\\)|\\]|\\}|\\,))", + "name": "constant.keyword.clojure" + }, + "keyfn": { + "patterns": [ + { + "match": "(?<=(\\s|\\(|\\[|\\{))(if(-[-\\p{Ll}\\?]*)?|when(-[-\\p{Ll}]*)?|for(-[-\\p{Ll}]*)?|cond|do|let(-[-\\p{Ll}\\?]*)?|binding|loop|recur|fn|throw[\\p{Ll}\\-]*|try|catch|finally|([\\p{Ll}]*case))(?=(\\s|\\)|\\]|\\}))", + "name": "storage.control.clojure" + }, + { + "match": "(?<=(\\s|\\(|\\[|\\{))(declare-?|(in-)?ns|import|use|require|load|compile|(def[\\p{Ll}\\-]*))(?=(\\s|\\)|\\]|\\}))", + "name": "keyword.control.clojure" + } + ] + }, + "dynamic-variables": { + "match": "\\*[\\w\\.\\-\\_\\:\\+\\=\\>\\<\\!\\?\\d]+\\*", + "name": "meta.symbol.dynamic.clojure" + }, + "map": { + "begin": "(\\{)", + "beginCaptures": { + "1": { + "name": "punctuation.section.map.begin.clojure" + } + }, + "end": "(\\}(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\})", + "endCaptures": { + "1": { + "name": "punctuation.section.map.end.trailing.clojure" + }, + "2": { + "name": "punctuation.section.map.end.clojure" + } + }, + "name": "meta.map.clojure", + "patterns": [ + { + "include": "$self" + } + ] + }, + "metadata": { + "patterns": [ + { + "begin": "(\\^\\{)", + "beginCaptures": { + "1": { + "name": "punctuation.section.metadata.map.begin.clojure" + } + }, + "end": "(\\}(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\})", + "endCaptures": { + "1": { + "name": "punctuation.section.metadata.map.end.trailing.clojure" + }, + "2": { + "name": "punctuation.section.metadata.map.end.clojure" + } + }, + "name": "meta.metadata.map.clojure", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "begin": "(\\^)", + "end": "(\\s)", + "name": "meta.metadata.simple.clojure", + "patterns": [ + { + "include": "#keyword" + }, + { + "include": "$self" + } + ] + } + ] + }, + "quoted-sexp": { + "begin": "(['``]\\()", + "beginCaptures": { + "1": { + "name": "punctuation.section.expression.begin.clojure" + } + }, + "end": "(\\))$|(\\)(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\))", + "endCaptures": { + "1": { + "name": "punctuation.section.expression.end.trailing.clojure" + }, + "2": { + "name": "punctuation.section.expression.end.trailing.clojure" + }, + "3": { + "name": "punctuation.section.expression.end.clojure" + } + }, + "name": "meta.quoted-expression.clojure", + "patterns": [ + { + "include": "$self" + } + ] + }, + "regexp": { + "begin": "#\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.regexp.begin.clojure" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.regexp.end.clojure" + } + }, + "name": "string.regexp.clojure", + "patterns": [ + { + "include": "#regexp_escaped_char" + } + ] + }, + "regexp_escaped_char": { + "match": "\\\\.", + "name": "constant.character.escape.clojure" + }, + "set": { + "begin": "(\\#\\{)", + "beginCaptures": { + "1": { + "name": "punctuation.section.set.begin.clojure" + } + }, + "end": "(\\}(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\})", + "endCaptures": { + "1": { + "name": "punctuation.section.set.end.trailing.clojure" + }, + "2": { + "name": "punctuation.section.set.end.clojure" + } + }, + "name": "meta.set.clojure", + "patterns": [ + { + "include": "$self" + } + ] + }, + "sexp": { + "begin": "(\\()", + "beginCaptures": { + "1": { + "name": "punctuation.section.expression.begin.clojure" + } + }, + "end": "(\\))$|(\\)(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\))", + "endCaptures": { + "1": { + "name": "punctuation.section.expression.end.trailing.clojure" + }, + "2": { + "name": "punctuation.section.expression.end.trailing.clojure" + }, + "3": { + "name": "punctuation.section.expression.end.clojure" + } + }, + "name": "meta.expression.clojure", + "patterns": [ + { + "begin": "(?<=\\()(ns|declare|def[\\w\\d._:+=><!?*-]*|[\\w._:+=><!?*-][\\w\\d._:+=><!?*-]*/def[\\w\\d._:+=><!?*-]*)\\s+", + "beginCaptures": { + "1": { + "name": "keyword.control.clojure" + } + }, + "end": "(?=\\))", + "name": "meta.definition.global.clojure", + "patterns": [ + { + "include": "#metadata" + }, + { + "include": "#dynamic-variables" + }, + { + "match": "([\\p{L}\\.\\-\\_\\+\\=\\>\\<\\!\\?\\*][\\w\\.\\-\\_\\:\\+\\=\\>\\<\\!\\?\\*\\d]*)", + "name": "entity.global.clojure" + }, + { + "include": "$self" + } + ] + }, + { + "include": "#keyfn" + }, + { + "include": "#constants" + }, + { + "include": "#vector" + }, + { + "include": "#map" + }, + { + "include": "#set" + }, + { + "include": "#sexp" + }, + { + "match": "(?<=\\()(.+?)(?=\\s|\\))", + "captures": { + "1": { + "name": "entity.name.function.clojure" + } + }, + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "include": "$self" + } + ] + }, + "shebang-comment": { + "begin": "^(#!)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.shebang.clojure" + } + }, + "end": "$", + "name": "comment.line.shebang.clojure" + }, + "string": { + "begin": "(?<!\\\\)(\")", + "beginCaptures": { + "1": { + "name": "punctuation.definition.string.begin.clojure" + } + }, + "end": "(\")", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.clojure" + } + }, + "name": "string.quoted.double.clojure", + "patterns": [ + { + "match": "\\\\.", + "name": "constant.character.escape.clojure" + } + ] + }, + "namespace-symbol": { + "patterns": [ + { + "match": "([\\p{L}\\.\\-\\_\\+\\=\\>\\<\\!\\?\\*][\\w\\.\\-\\_\\:\\+\\=\\>\\<\\!\\?\\*\\d]*)/", + "captures": { + "1": { + "name": "meta.symbol.namespace.clojure" + } + } + } + ] + }, + "symbol": { + "patterns": [ + { + "match": "([\\p{L}\\.\\-\\_\\+\\=\\>\\<\\!\\?\\*][\\w\\.\\-\\_\\:\\+\\=\\>\\<\\!\\?\\*\\d]*)", + "name": "meta.symbol.clojure" + } + ] + }, + "var": { + "match": "(?<=(\\s|\\(|\\[|\\{)\\#)'[\\w\\.\\-\\_\\:\\+\\=\\>\\<\\/\\!\\?\\*]+(?=(\\s|\\)|\\]|\\}))", + "name": "meta.var.clojure" + }, + "vector": { + "begin": "(\\[)", + "beginCaptures": { + "1": { + "name": "punctuation.section.vector.begin.clojure" + } + }, + "end": "(\\](?=[\\}\\]\\)\\s]*(?:;|$)))|(\\])", + "endCaptures": { + "1": { + "name": "punctuation.section.vector.end.trailing.clojure" + }, + "2": { + "name": "punctuation.section.vector.end.clojure" + } + }, + "name": "meta.vector.clojure", + "patterns": [ + { + "include": "$self" + } + ] + } + } +} diff --git a/docs/shiki/languages/cmake.tmLanguage.json b/docs/shiki/languages/cmake.tmLanguage.json new file mode 100644 index 00000000..d8bfb8d9 --- /dev/null +++ b/docs/shiki/languages/cmake.tmLanguage.json @@ -0,0 +1,139 @@ +{ + "fileTypes": ["cmake", "CMakeLists.txt"], + "name": "cmake", + "patterns": [ + { + "comment": "Variables That Describe the System", + "match": "\\b(?i:APPLE|BORLAND|(CMAKE_)?(CL_64|COMPILER_2005|HOST_APPLE|HOST_SYSTEM|HOST_SYSTEM_NAME|HOST_SYSTEM_PROCESSOR|HOST_SYSTEM_VERSION|HOST_UNIX|HOST_WIN32|LIBRARY_ARCHITECTURE|LIBRARY_ARCHITECTURE_REGEX|OBJECT_PATH_MAX|SYSTEM|SYSTEM_NAME|SYSTEM_PROCESSOR|SYSTEM_VERSION)|CYGWIN|MSVC|MSVC80|MSVC_IDE|MSVC_VERSION|UNIX|WIN32|XCODE_VERSION|MSVC60|MSVC70|MSVC90|MSVC71)\\b", + "name": "constant.source.cmake" + }, + { + "comment": "cmakeOperators", + "match": "\\b(?i:ABSOLUTE|AND|BOOL|CACHE|COMMAND|COMMENT|DEFINED|DOC|EQUAL|EXISTS|EXT|FALSE|GREATER|GREATER_EQUAL|INTERNAL|IN_LIST|IS_ABSOLUTE|IS_DIRECTORY|IS_NEWER_THAN|IS_SYMLINK|LESS|LESS_EQUAL|MATCHES|NAME|NAMES|NAME_WE|NOT|OFF|ON|OR|PATH|PATHS|POLICY|PROGRAM|STREQUAL|STRGREATER|STRGREATER_EQUAL|STRING|STRLESS|STRLESS_EQUAL|TARGET|TEST|TRUE|VERSION_EQUAL|VERSION_GREATER|VERSION_GREATER_EQUAL|VERSION_LESS)\\b", + "name": "keyword.cmake" + }, + { + "comment": "Commands", + "match": "^\\s*\\b(?i:add_compile_options|add_custom_command|add_custom_target|add_definitions|add_dependencies|add_executable|add_library|add_subdirectory|add_test|aux_source_directory|break|build_command|build_name|cmake_host_system_information|cmake_minimum_required|cmake_policy|configure_file|continue|create_test_sourcelist|ctest_build|ctest_configure|ctest_coverage|ctest_empty_binary_directory|ctest_memcheck|ctest_read_custom_files|ctest_run_script|ctest_sleep|ctest_start|ctest_submit|ctest_test|ctest_update|ctest_upload|define_property|else|elseif|enable_language|enable_testing|endforeach|endfunction|endif|endmacro|endwhile|exec_program|execute_process|export|export_library_dependencies|file|find_file|find_library|find_package|find_path|find_program|fltk_wrap_ui|foreach|function|get_cmake_property|get_directory_property|get_filename_component|get_property|get_source_file_property|get_target_property|get_test_property|if|include|include_directories|include_external_msproject|include_regular_expression|install|install_files|install_programs|install_targets|link_directories|link_libraries|list|load_cache|load_command|macro|make_directory|mark_as_advanced|math|message|option|output_required_files|project|qt_wrap_cpp|qt_wrap_ui|remove|remove_definitions|return|separate_arguments|set|set_directory_properties|set_property|set_source_files_properties|set_target_properties|set_tests_properties|site_name|source_group|string|subdir_depends|subdirs|target_compile_definitions|target_compile_features|target_compile_options|target_include_directories|target_link_libraries|target_sources|try_compile|try_run|unset|use_mangled_mesa|utility_source|variable_requires|variable_watch|while|write_file)\\b", + "name": "keyword.cmake" + }, + { + "comment": "Variables That Change Behavior", + "match": "\\b(?i:BUILD_SHARED_LIBS|(CMAKE_)?(ABSOLUTE_DESTINATION_FILES|AUTOMOC_RELAXED_MODE|BACKWARDS_COMPATIBILITY|BUILD_TYPE|COLOR_MAKEFILE|CONFIGURATION_TYPES|DEBUG_TARGET_PROPERTIES|DISABLE_FIND_PACKAGE_\\w+|FIND_LIBRARY_PREFIXES|FIND_LIBRARY_SUFFIXES|IGNORE_PATH|INCLUDE_PATH|INSTALL_DEFAULT_COMPONENT_NAME|INSTALL_PREFIX|LIBRARY_PATH|MFC_FLAG|MODULE_PATH|NOT_USING_CONFIG_FLAGS|POLICY_DEFAULT_CMP\\w+|PREFIX_PATH|PROGRAM_PATH|SKIP_INSTALL_ALL_DEPENDENCY|SYSTEM_IGNORE_PATH|SYSTEM_INCLUDE_PATH|SYSTEM_LIBRARY_PATH|SYSTEM_PREFIX_PATH|SYSTEM_PROGRAM_PATH|USER_MAKE_RULES_OVERRIDE|WARN_ON_ABSOLUTE_INSTALL_DESTINATION))\\b", + "name": "variable.source.cmake" + }, + { + "match": "\\$\\{\\w+\\}", + "name": "storage.source.cmake" + }, + { + "match": "\\$ENV\\{\\w+\\}", + "name": "storage.source.cmake" + }, + { + "comment": "Variables that Control the Build", + "match": "\\b(?i:(CMAKE_)?(\\w+_POSTFIX|ARCHIVE_OUTPUT_DIRECTORY|AUTOMOC|AUTOMOC_MOC_OPTIONS|BUILD_WITH_INSTALL_RPATH|DEBUG_POSTFIX|EXE_LINKER_FLAGS|EXE_LINKER_FLAGS_\\w+|Fortran_FORMAT|Fortran_MODULE_DIRECTORY|GNUtoMS|INCLUDE_CURRENT_DIR|INCLUDE_CURRENT_DIR_IN_INTERFACE|INSTALL_NAME_DIR|INSTALL_RPATH|INSTALL_RPATH_USE_LINK_PATH|LIBRARY_OUTPUT_DIRECTORY|LIBRARY_PATH_FLAG|LINK_DEF_FILE_FLAG|LINK_DEPENDS_NO_SHARED|LINK_INTERFACE_LIBRARIES|LINK_LIBRARY_FILE_FLAG|LINK_LIBRARY_FLAG|MACOSX_BUNDLE|NO_BUILTIN_CHRPATH|PDB_OUTPUT_DIRECTORY|POSITION_INDEPENDENT_CODE|RUNTIME_OUTPUT_DIRECTORY|SKIP_BUILD_RPATH|SKIP_INSTALL_RPATH|TRY_COMPILE_CONFIGURATION|USE_RELATIVE_PATHS|WIN32_EXECUTABLE)|EXECUTABLE_OUTPUT_PATH|LIBRARY_OUTPUT_PATH)\\b", + "name": "variable.source.cmake" + }, + { + "comment": "Variables that Provide Information", + "match": "\\b(?i:CMAKE_(AR|ARGC|ARGV0|BINARY_DIR|BUILD_TOOL|CACHEFILE_DIR|CACHE_MAJOR_VERSION|CACHE_MINOR_VERSION|CACHE_PATCH_VERSION|CFG_INTDIR|COMMAND|CROSSCOMPILING|CTEST_COMMAND|CURRENT_BINARY_DIR|CURRENT_LIST_DIR|CURRENT_LIST_FILE|CURRENT_LIST_LINE|CURRENT_SOURCE_DIR|DL_LIBS|EDIT_COMMAND|EXECUTABLE_SUFFIX|EXTRA_GENERATOR|EXTRA_SHARED_LIBRARY_SUFFIXES|GENERATOR|HOME_DIRECTORY|IMPORT_LIBRARY_PREFIX|IMPORT_LIBRARY_SUFFIX|LINK_LIBRARY_SUFFIX|MAJOR_VERSION|MAKE_PROGRAM|MINOR_VERSION|PARENT_LIST_FILE|PATCH_VERSION|PROJECT_NAME|RANLIB|ROOT|SCRIPT_MODE_FILE|SHARED_LIBRARY_PREFIX|SHARED_LIBRARY_SUFFIX|SHARED_MODULE_PREFIX|SHARED_MODULE_SUFFIX|SIZEOF_VOID_P|SKIP_RPATH|SOURCE_DIR|STANDARD_LIBRARIES|STATIC_LIBRARY_PREFIX|STATIC_LIBRARY_SUFFIX|TWEAK_VERSION|USING_VC_FREE_TOOLS|VERBOSE_MAKEFILE|VERSION)|PROJECT_BINARY_DIR|PROJECT_NAME|PROJECT_SOURCE_DIR|\\w+_BINARY_DIR|\\w+__SOURCE_DIR)\\b", + "name": "variable.source.cmake" + }, + { + "comment": "BracketArgs", + "begin": "#\\[(=*)\\[", + "end": "\\]\\1\\]", + "name": "comment.source.cmake", + "patterns": [ + { + "match": "\\\\(.|$)", + "name": "constant.character.escape" + } + ] + }, + { + "comment": "BracketArgs", + "begin": "\\[(=*)\\[", + "end": "\\]\\1\\]", + "name": "argument.source.cmake", + "patterns": [ + { + "match": "\\\\(.|$)", + "name": "constant.character.escape" + } + ] + }, + { + "match": "#+.*$", + "name": "comment.source.cmake" + }, + { + "comment": "Properties on Cache Entries", + "match": "\\b(?i:ADVANCED|HELPSTRING|MODIFIED|STRINGS|TYPE|VALUE)\\b", + "name": "entity.source.cmake" + }, + { + "comment": "Properties on Source Files", + "match": "\\b(?i:ABSTRACT|COMPILE_DEFINITIONS|COMPILE_DEFINITIONS_<CONFIG>|COMPILE_FLAGS|EXTERNAL_OBJECT|Fortran_FORMAT|GENERATED|HEADER_FILE_ONLY|KEEP_EXTENSION|LABELS|LANGUAGE|LOCATION|MACOSX_PACKAGE_LOCATION|OBJECT_DEPENDS|OBJECT_OUTPUTS|SYMBOLIC|WRAP_EXCLUDE)\\b", + "name": "entity.source.cmake" + }, + { + "comment": "Properties on Tests", + "match": "\\b(?i:ATTACHED_FILES|ATTACHED_FILES_ON_FAIL|COST|DEPENDS|ENVIRONMENT|FAIL_REGULAR_EXPRESSION|LABELS|MEASUREMENT|PASS_REGULAR_EXPRESSION|PROCESSORS|REQUIRED_FILES|RESOURCE_LOCK|RUN_SERIAL|TIMEOUT|WILL_FAIL|WORKING_DIRECTORY)\\b", + "name": "entity.source.cmake" + }, + { + "comment": "Properties on Directories", + "match": "\\b(?i:ADDITIONAL_MAKE_CLEAN_FILES|CACHE_VARIABLES|CLEAN_NO_CUSTOM|COMPILE_DEFINITIONS|COMPILE_DEFINITIONS_\\w+|DEFINITIONS|EXCLUDE_FROM_ALL|IMPLICIT_DEPENDS_INCLUDE_TRANSFORM|INCLUDE_DIRECTORIES|INCLUDE_REGULAR_EXPRESSION|INTERPROCEDURAL_OPTIMIZATION|INTERPROCEDURAL_OPTIMIZATION_\\w+|LINK_DIRECTORIES|LISTFILE_STACK|MACROS|PARENT_DIRECTORY|RULE_LAUNCH_COMPILE|RULE_LAUNCH_CUSTOM|RULE_LAUNCH_LINK|TEST_INCLUDE_FILE|VARIABLES|VS_GLOBAL_SECTION_POST_\\w+|VS_GLOBAL_SECTION_PRE_\\w+)\\b", + "name": "entity.source.cmake" + }, + { + "comment": "Properties of Global Scope", + "match": "\\b(?i:ALLOW_DUPLICATE_CUSTOM_TARGETS|DEBUG_CONFIGURATIONS|DISABLED_FEATURES|ENABLED_FEATURES|ENABLED_LANGUAGES|FIND_LIBRARY_USE_LIB64_PATHS|FIND_LIBRARY_USE_OPENBSD_VERSIONING|GLOBAL_DEPENDS_DEBUG_MODE|GLOBAL_DEPENDS_NO_CYCLES|IN_TRY_COMPILE|PACKAGES_FOUND|PACKAGES_NOT_FOUND|PREDEFINED_TARGETS_FOLDER|REPORT_UNDEFINED_PROPERTIES|RULE_LAUNCH_COMPILE|RULE_LAUNCH_CUSTOM|RULE_LAUNCH_LINK|RULE_MESSAGES|TARGET_ARCHIVES_MAY_BE_SHARED_LIBS|TARGET_SUPPORTS_SHARED_LIBS|USE_FOLDERS|__CMAKE_DELETE_CACHE_CHANGE_VARS_)\\b", + "name": "entity.source.cmake" + }, + { + "comment": "Properties on Targets", + "match": "\\b(?i:\\w+_(OUTPUT_NAME|POSTFIX)|ARCHIVE_OUTPUT_(DIRECTORY(_\\w+)?|NAME(_\\w+)?)|AUTOMOC(_MOC_OPTIONS)?|BUILD_WITH_INSTALL_RPATH|BUNDLE|BUNDLE(_EXTENSION)?|COMPATIBLE_INTERFACE_BOOL|COMPATIBLE_INTERFACE_STRING|COMPILE_(DEFINITIONS(_\\w+)?|FLAGS)|DEBUG_POSTFIX|DEFINE_SYMBOL|ENABLE_EXPORTS|EXCLUDE_FROM_ALL|EchoString|FOLDER|FRAMEWORK|Fortran_(FORMAT|MODULE_DIRECTORY)|GENERATOR_FILE_NAME|GNUtoMS|HAS_CXX|IMPLICIT_DEPENDS_INCLUDE_TRANSFORM|IMPORTED|IMPORTED_(CONFIGURATIONS|IMPLIB(_\\w+)?|LINK_DEPENDENT_LIBRARIES(_\\w+)?|LINK_INTERFACE_LANGUAGES(_\\w+)?|LINK_INTERFACE_LIBRARIES(_\\w+)?|LINK_INTERFACE_MULTIPLICITY(_\\w+)?|LOCATION(_\\w+)?|NO_SONAME(_\\w+)?|SONAME(_\\w+)?)|IMPORT_PREFIX|IMPORT_SUFFIX|INSTALL_NAME_DIR|INSTALL_RPATH|INSTALL_RPATH_USE_LINK_PATH|INTERFACE|INTERFACE_COMPILE_DEFINITIONS|INTERFACE_INCLUDE_DIRECTORIES|INTERPROCEDURAL_OPTIMIZATION|INTERPROCEDURAL_OPTIMIZATION_\\w+|LABELS|LIBRARY_OUTPUT_DIRECTORY(_\\w+)?|LIBRARY_OUTPUT_NAME(_\\w+)?|LINKER_LANGUAGE|LINK_DEPENDS|LINK_FLAGS(_\\w+)?|LINK_INTERFACE_LIBRARIES(_\\w+)?|LINK_INTERFACE_MULTIPLICITY(_\\w+)?|LINK_LIBRARIES|LINK_SEARCH_END_STATIC|LINK_SEARCH_START_STATIC|LOCATION(_\\w+)?|MACOSX_BUNDLE|MACOSX_BUNDLE_INFO_PLIST|MACOSX_FRAMEWORK_INFO_PLIST|MAP_IMPORTED_CONFIG_\\w+|NO_SONAME|OSX_ARCHITECTURES(_\\w+)?|OUTPUT_NAME(_\\w+)?|PDB_NAME(_\\w+)?|POST_INSTALL_SCRIPT|PREFIX|PRE_INSTALL_SCRIPT|PRIVATE|PRIVATE_HEADER|PROJECT_LABEL|PUBLIC|PUBLIC_HEADER|RESOURCE|RULE_LAUNCH_(COMPILE|CUSTOM|LINK)|RUNTIME_OUTPUT_(DIRECTORY(_\\w+)?|NAME(_\\w+)?)|SKIP_BUILD_RPATH|SOURCES|SOVERSION|STATIC_LIBRARY_FLAGS(_\\w+)?|SUFFIX|TYPE|VERSION|VS_DOTNET_REFERENCES|VS_GLOBAL_(\\w+|KEYWORD|PROJECT_TYPES)|VS_KEYWORD|VS_SCC_(AUXPATH|LOCALPATH|PROJECTNAME|PROVIDER)|VS_WINRT_EXTENSIONS|VS_WINRT_REFERENCES|WIN32_EXECUTABLE|XCODE_ATTRIBUTE_\\w+)\\b", + "name": "entity.source.cmake" + }, + { + "comment": "Escaped Strings", + "begin": "\\\\\"", + "end": "\\\\\"", + "name": "string.source.cmake", + "patterns": [ + { + "match": "\\\\(.|$)", + "name": "constant.character.escape" + } + ] + }, + { + "comment": "Normal Strings", + "begin": "\"", + "end": "\"", + "name": "string.source.cmake", + "patterns": [ + { + "match": "\\\\(.|$)", + "name": "constant.character.escape" + } + ] + }, + { + "comment": "Derecated keyword", + "match": "\\bBUILD_NAME\\b", + "name": "invalid.deprecated.source.cmake" + }, + { + "comment": "Compiler Flags", + "match": "\\b(?i:(CMAKE_)?(CXX_FLAGS|CMAKE_CXX_FLAGS_DEBUG|CMAKE_CXX_FLAGS_MINSIZEREL|CMAKE_CXX_FLAGS_RELEASE|CMAKE_CXX_FLAGS_RELWITHDEBINFO))\\b", + "name": "variable.source.cmake" + } + ], + "repository": {}, + "scopeName": "source.cmake", + "uuid": "7aed2d59-22d9-41c8-ba9e-4f178191e380" +} diff --git a/docs/shiki/languages/cobol.tmLanguage.json b/docs/shiki/languages/cobol.tmLanguage.json new file mode 100644 index 00000000..ad64e307 --- /dev/null +++ b/docs/shiki/languages/cobol.tmLanguage.json @@ -0,0 +1,1125 @@ +{ + "_copyright": "The MIT License (MIT)\nCopyright (c) 2015-2023 spgennard\nSource: https://github.com/spgennard/vscode_cobol/blob/main/syntaxes/COBOL.tmLanguage.json", + "$schema": "https://raw.githubusercontent.com/spgennard/vscode_cobol/main/schemas/tmlanguage.json", + "fileTypes": [ + "ccp", + "scbl", + "cobol", + "cbl", + "cblle", + "cblsrce", + "cblcpy", + "lks", + "pdv", + "cpy", + "copybook", + "cobcopy", + "fd", + "sel", + "scb", + "scbl", + "sqlcblle", + "cob", + "dds", + "def", + "src", + "ss", + "wks", + "bib", + "pco" + ], + "name": "cobol", + "patterns": [ + { + "match": "(^[ \\*][ \\*][ \\*][ \\*][ \\*][ \\*])([dD]\\s.*$)", + "name": "token.info-token.cobol" + }, + { + "match": "(^[ \\*][ \\*][ \\*][ \\*][ \\*][ \\*])(\\/.*$)", + "captures": { + "1": { + "name": "constant.numeric.cobol" + }, + "2": { + "name": "comment.line.cobol.newpage" + } + } + }, + { + "match": "(^[ \\*][ \\*][ \\*][ \\*][ \\*][ \\*])(\\*.*$)", + "captures": { + "1": { + "name": "constant.numeric.cobol" + }, + "2": { + "name": "comment.line.cobol.fixed" + } + } + }, + { + "match": "(^[0-9\\s][0-9\\s][0-9\\s][0-9\\s][0-9\\s][0-9\\s])(\\/.*$)", + "captures": { + "1": { + "name": "constant.numeric.cobol" + }, + "2": { + "name": "comment.line.cobol.newpage" + } + } + }, + { + "match": "^[0-9\\s][0-9\\s][0-9\\s][0-9\\s][0-9\\s][0-9\\s]$", + "name": "constant.numeric.cobol" + }, + { + "match": "(^[0-9\\s][0-9\\s][0-9\\s][0-9\\s][0-9\\s][0-9\\s])(\\*.*$)", + "captures": { + "1": { + "name": "constant.numeric.cobol" + }, + "2": { + "name": "comment.line.cobol.fixed" + } + } + }, + { + "match": "(^[0-9a-zA-Z\\s\\$#%\\.@\\- ][0-9a-zA-Z\\s\\$#%\\.@\\- ][0-9a-zA-Z\\s\\$#%\\.@\\- ][0-9a-zA-Z\\s\\$#%\\.@\\- ][0-9a-zA-Z\\s\\$#%\\.@\\- ][0-9a-zA-Z\\s\\$#%\\.@\\- ])(\\*.*$)", + "captures": { + "1": { + "name": "constant.cobol" + }, + "2": { + "name": "comment.line.cobol.fixed" + } + } + }, + { + "match": "^\\s+(78)\\s+([0-9a-zA-Z][a-zA-Z\\-0-9_]+)", + "captures": { + "1": { + "name": "constant.numeric.cobol" + }, + "2": { + "name": "variable.other.constant" + } + } + }, + { + "match": "^\\s+([0-9]+)\\s+([0-9a-zA-Z][a-zA-Z\\-0-9_]+)\\s+((?i:constant))", + "captures": { + "1": { + "name": "constant.numeric.cobol" + }, + "2": { + "name": "variable.other.constant" + }, + "3": { + "name": "keyword.identifers.cobol" + } + } + }, + { + "match": "(^[0-9a-zA-Z\\s\\$#%\\.@][0-9a-zA-Z\\s\\$#%\\.@][0-9a-zA-Z\\s\\$#%\\.@][0-9a-zA-Z\\s\\$#%\\.@][0-9a-zA-Z\\s\\$#%\\.@][0-9a-zA-Z\\s\\$#%\\.@])(\\/.*$)", + "captures": { + "1": { + "name": "constant.cobol" + }, + "2": { + "name": "comment.line.cobol.newpage" + } + } + }, + { + "match": "^\\*.*$", + "name": "comment.line.cobol.fixed" + }, + { + "match": "((?:^|\\s+)(?i:\\$set)\\s+)((?i:constant)\\s+)([0-9a-zA-Z][a-zA-Z\\-0-9]+\\s*)([a-zA-Z\\-0-9]*)", + "captures": { + "1": { + "name": "keyword.control.directive.conditional.cobol" + }, + "2": { + "name": "entity.name.function.preprocessor.cobol" + }, + "3": { + "name": "entity.name.function.cobol" + }, + "4": { + "name": "keyword.control.directive.conditional.cobol" + } + } + }, + { + "match": "((?i:\\$\\s*set\\s+)(ilusing)(\\()(.*)(\\)))", + "captures": { + "1": { + "name": "entity.name.function.preprocessor.cobol" + }, + "2": { + "name": "storage.modifier.import.cobol" + }, + "3": { + "name": "punctuation.begin.bracket.round.cobol" + }, + "4": { + "name": "string.quoted.other.cobol" + }, + "5": { + "name": "punctuation.end.bracket.round.cobol" + } + } + }, + { + "match": "((?i:\\$\\s*set\\s+)(ilusing)(\")(.*)(\"))", + "captures": { + "1": { + "name": "entity.name.function.preprocessor.cobol" + }, + "2": { + "name": "storage.modifier.import.cobol" + }, + "3": { + "name": "punctuation.definition.string.begin.cobol" + }, + "4": { + "name": "string.quoted.other.cobol" + }, + "5": { + "name": "punctuation.definition.string.begin.cobol" + } + } + }, + { + "match": "((?i:\\$set))\\s+(\\w+)\\s*(\")(\\w*)(\")", + "captures": { + "1": { + "name": "keyword.control.directive.conditional.cobol" + }, + "2": { + "name": "entity.name.function.preprocessor.cobol" + }, + "3": { + "name": "punctuation.definition.string.begin.cobol" + }, + "4": { + "name": "string.quoted.other.cobol" + }, + "5": { + "name": "punctuation.definition.string.begin.cobol" + } + } + }, + { + "match": "((?i:\\$set))\\s+(\\w+)\\s*(\\()(.*)(\\))", + "captures": { + "1": { + "name": "keyword.control.directive.conditional.cobol" + }, + "2": { + "name": "entity.name.function.preprocessor.cobol" + }, + "3": { + "name": "punctuation.begin.bracket.round.cobol" + }, + "4": { + "name": "string.quoted.other.cobol" + }, + "5": { + "name": "punctuation.end.bracket.round.cobol" + } + } + }, + { + "match": "(?:^|\\s+)(?i:\\$\\s*set\\s)((?i:01SHUFFLE|64KPARA|64KSECT|AUXOPT|CHIP|DATALIT|EANIM|EXPANDDATA|FIXING|FLAG-CHIP|MASM|MODEL|OPTSIZE|OPTSPEED|PARAS|PROTMODE|REGPARM|SEGCROSS|SEGSIZE|SIGNCOMPARE|SMALLDD|TABLESEGCROSS|TRICKLECHECK|\\s)+).*$", + "captures": { + "0": { + "name": "keyword.control.directive.conditional.cobol" + }, + "1": { + "name": "invalid.illegal.directive" + }, + "2": { + "name": "comment.line.set.cobol" + } + } + }, + { + "match": "(\\$region|\\$end-region)(.*$)", + "captures": { + "1": { + "name": "keyword.control.directive.cobol" + }, + "2": { + "name": "entity.other.attribute-name.preprocessor.cobol" + } + } + }, + { + "begin": "\\$(?i:doc)(.*$)", + "end": "\\$(?i:end-doc)(.*$)", + "name": "invalid.illegal.iscobol" + }, + { + "match": ">>\\s*(?i:turn|page|listing|leap-seconds|d)\\s+.*$", + "name": "invalid.illegal.meta.preprocessor.cobolit" + }, + { + "match": "((((>>|\\$)[\\s]*)(?i:if|else|elif|end-if|end-evaluate|end|define|evaluate|when|display|call-convention|set))(.*$))", + "captures": { + "1": { + "name": "keyword.control.directive.conditional.cobol" + }, + "2": { + "name": "entity.name.function.preprocessor.cobol" + }, + "3": { + "name": "entity.name.function.preprocessor.cobol" + } + } + }, + { + "match": "(\\*>)\\s+(@[0-9a-zA-Z][a-zA-Z\\-0-9]+)\\s+(.*$)", + "captures": { + "1": { + "name": "comment.line.scantoken.cobol" + }, + "2": { + "name": "keyword.cobol" + }, + "3": { + "name": "string.cobol" + } + } + }, + { + "match": "(\\*>.*$)", + "name": "comment.line.modern" + }, + { + "match": "(>>.*)$", + "name": "strong comment.line.set.acucobol" + }, + { + "match": "([nNuU][xX]|[hHxX])'\\h*'", + "name": "constant.numeric.integer.hexadecimal.cobol" + }, + { + "match": "([nNuU][xX]|[hHxX])'.*'", + "name": "invalid.illegal.hexadecimal.cobol" + }, + { + "match": "([nNuU][xX]|[hHxX])\"\\h*\"", + "name": "constant.numeric.integer.hexadecimal.cobol" + }, + { + "match": "([nNuU][xX]|[hHxX])\".*\"", + "name": "invalid.illegal.hexadecimal.cobol" + }, + { + "match": "[bB]\"[0-1]\"", + "name": "constant.numeric.integer.boolean.cobol" + }, + { + "match": "[bB]'[0-1]'", + "name": "constant.numeric.integer.boolean.cobol" + }, + { + "match": "[oO]\"[0-7]*\"", + "name": "constant.numeric.integer.octal.cobol" + }, + { + "match": "[oO]\".*\"", + "name": "invalid.illegal.octal.cobol" + }, + { + "match": "(#)([0-9a-zA-Z][a-zA-Z\\-0-9]+)", + "name": "meta.symbol.cobol.forced" + }, + { + "begin": "((?<![-_a-zA-Z0-9()-])(?i:installation|author|source-computer|object-computer|date-written|security|date-compiled)(\\.|$))", + "beginCaptures": { + "0": { + "name": "keyword.identifiers.cobol" + } + }, + "patterns": [ + { + "match": "(^[0-9 ][0-9 ][0-9 ][0-9 ][0-9 ][0-9 ])", + "name": "constant.numeric.cobol" + }, + { + "match": "(?i:with|debugging|mode)", + "name": "keyword.Identifiers.gnucobol" + } + ], + "name": "comment.block.cobol.remark", + "end": "(?=((?<![-_])(?i:remarks|author|date-written|source-computer|object-computer|installation|date-compiled|special-names|security|environment\\s+division|data\\s+division|working-storage\\s+section|input-output\\s+section|linkage\\s+section|procedure\\s+division|local-storage\\s+section)|^[ \\*][ \\*][ \\*][ \\*][ \\*][ \\*]\\*.*$|^\\+$))" + }, + { + "match": "(?<=(\\(|\\[))((\\-\\+)*\\s*[0-9 ,\\.\\+\\-\\*\\/]+)(?=(\\)|\\]))", + "name": "constant.numeric.cobol", + "captures": { + "1": { + "name": "keyword.start.bracket.cobol" + }, + "2": { + "name": "constant.numeric.cobol" + }, + "3": { + "name": "keyword.end.bracket.cobol" + } + }, + "comment": "simple numerics in () and []" + }, + { + "include": "#number-complex-constant" + }, + { + "include": "#number-simple-constant" + }, + { + "match": "(?<![-_])(?i:true|false|null|nulls)(?![0-9A-Za-z_-])", + "name": "constant.language.cobol" + }, + { + "match": "(?<![-_])(?i:zeroes|alphabetic-lower|alphabetic-upper|alphanumeric-edited|alphabetic|alphabet|alphanumeric|zeros|zeros|zero|spaces|space|quotes|quote|low-values|low-value|high-values|high-value)(?=\\s+|\\.|,|\\))", + "name": "constant.language.figurative.cobol" + }, + { + "begin": "(?i:exec\\s+sqlims|exec\\s+sql)", + "name": "keyword.verb.cobol", + "contentName": "meta.embedded.block.sql", + "patterns": [ + { + "match": "(^\\s*\\*.*)$", + "name": "comment.line.sql" + }, + { + "match": "(\\:([0-9a-zA-Z\\-_])*)", + "name": "variable.cobol" + }, + { + "include": "source.sql" + } + ], + "end": "(?i:end\\-exec)" + }, + { + "begin": "(?i:exec\\s+cics)", + "name": "keyword.verb.cobol", + "contentName": "meta.embedded.block.cics", + "patterns": [ + { + "match": "(\\()", + "name": "meta.symbol.cobol" + }, + { + "include": "#cics-keywords" + }, + { + "include": "#string-double-quoted-constant" + }, + { + "include": "#string-quoted-constant" + }, + { + "include": "#number-complex-constant" + }, + { + "include": "#number-simple-constant" + }, + { + "match": "([a-zA-Z-0-9_]*[a-zA-Z0-9]|([#]?[0-9a-zA-Z]+[a-zA-Z-0-9_]*[a-zA-Z0-9]))", + "name": "variable.cobol" + } + ], + "end": "(?i:end\\-exec)" + }, + { + "begin": "(?i:exec\\s+dli)", + "name": "keyword.verb.cobol", + "contentName": "meta.embedded.block.dli", + "patterns": [ + { + "match": "(\\()", + "name": "meta.symbol.cobol" + }, + { + "include": "#dli-keywords" + }, + { + "include": "#string-double-quoted-constant" + }, + { + "include": "#string-quoted-constant" + }, + { + "include": "#number-complex-constant" + }, + { + "include": "#number-simple-constant" + }, + { + "match": "([a-zA-Z-0-9_]*[a-zA-Z0-9]|([#]?[0-9a-zA-Z]+[a-zA-Z-0-9_]*[a-zA-Z0-9]))", + "name": "variable.cobol" + } + ], + "end": "(?i:end\\-exec)" + }, + { + "begin": "(?i:exec\\s+sqlims)", + "name": "keyword.verb.cobol", + "contentName": "meta.embedded.block.sql", + "patterns": [ + { + "match": "(\\:([a-zA-Z\\-])*)", + "name": "variable.cobol" + }, + { + "include": "source.sql" + } + ], + "end": "(?i:end\\-exec)" + }, + { + "begin": "(?i:exec\\s+ado)", + "name": "keyword.verb.cobol", + "contentName": "meta.embedded.block.sql", + "patterns": [ + { + "match": "(\\:([a-zA-Z\\-])*)", + "name": "variable.cobol" + }, + { + "include": "source.sql" + } + ], + "end": "(?i:end\\-exec)" + }, + { + "begin": "(?i:exec\\s+html)", + "name": "keyword.verb.cobol", + "contentName": "meta.embedded.block.html", + "patterns": [ + { + "include": "text.html.basic" + } + ], + "end": "(?i:end\\-exec)" + }, + { + "begin": "(?i:exec\\s+java)", + "name": "keyword.verb.cobol", + "contentName": "meta.embedded.block.java", + "patterns": [ + { + "include": "source.java" + } + ], + "end": "(?i:end\\-exec)" + }, + { + "match": "(\")(CBL_.*)(\")", + "captures": { + "1": { + "name": "punctuation.definition.string.begin.cobol" + }, + "2": { + "name": "support.function.cobol" + }, + "3": { + "name": "punctuation.definition.string.end.cobol" + } + } + }, + { + "match": "(\")(PC_.*)(\")", + "captures": { + "1": { + "name": "punctuation.definition.string.begin.cobol" + }, + "2": { + "name": "support.function.cobol" + }, + "3": { + "name": "punctuation.definition.string.end.cobol" + } + } + }, + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.cobol" + } + }, + "end": "(\"|$)", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.cobol" + } + }, + "name": "string.quoted.double.cobol" + }, + { + "match": "(\\')(CBL_.*)(\\')", + "captures": { + "1": { + "name": "punctuation.definition.string.begin.cobol" + }, + "2": { + "name": "support.function.cobol" + }, + "3": { + "name": "punctuation.definition.string.end.cobol" + } + } + }, + { + "match": "(\\')(PC_.*)(\\')", + "captures": { + "1": { + "name": "punctuation.definition.string.begin.cobol" + }, + "2": { + "name": "support.function.cobol" + }, + "3": { + "name": "punctuation.definition.string.end.cobol" + } + } + }, + { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.cobol" + } + }, + "end": "('|$)", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.cobol" + } + }, + "name": "string.quoted.single.cobol" + }, + { + "begin": "(?<![\\-\\w])[gGzZ]\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.cobol" + } + }, + "end": "(\"|$)", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.cobol" + } + }, + "name": "string.quoted.double.cobol" + }, + { + "begin": "(?<![\\-\\w])[gGzZ]'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.cobol" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.cobol" + } + }, + "name": "string.quoted.single.cobol" + }, + { + "begin": "(?<![\\-\\w])[gGnN]\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.cobol" + } + }, + "end": "(\"|$)", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.cobol" + } + }, + "name": "string.quoted.double.cobol" + }, + { + "begin": "(?<![\\-\\w])[gGnN]'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.cobol" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.cobol" + } + }, + "name": "string.quoted.single.cobol" + }, + { + "begin": "(?<![\\-\\w])[uU]\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.cobol" + } + }, + "end": "(\"|$)", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.cobol" + } + }, + "name": "string.quoted.utf8.double.cobol" + }, + { + "begin": "(?<![\\-\\w])[uU]'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.cobol" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.cobol" + } + }, + "name": "string.quoted.utf8.single.cobol" + }, + { + "match": "(?<![-_])(?i:id\\s+division|identification\\s+division|identification|id|property-id|getter|setter|entry|function-id|end\\s+attribute|attribute|interface-id|indexer-id|factory|ctl|class-control|options|environment\\s+division|environment-name|environment-value|environment|configuration\\s+section|configuration|decimal-point\\s+is|decimal-point|console\\s+is|call-convention|special-names|cursor\\s+is|update|picture\\s+symbol|currency\\s+sign|currency|repository|input-output\\s+section|input-output|file\\s+section|file-control|select|optional|i-o-control|data\\s+division|working-storage\\s+section|working-storage|section|local-storage|linkage\\s+section|linkage|communication|report|screen\\s+section|object-storage|object\\s+section|class-object|fd|rd|cd|sd|printing|procedure\\s+division|procedure|division|references|debugging|end\\s+declaratives|declaratives|end\\s+static|end\\s+factory|end\\s+class-object|based-storage|size|font|national-edited|national)(?![0-9A-Za-z_-])", + "name": "keyword.identifiers.cobol" + }, + { + "match": "(?<![-_])((?i:valuetype-id|operator-id|method-id|method|property-id|attribute-id|enum-id|iterator-id|class-id|program-id|operator-id|end\\s+program|end\\s+valuetype|extension))[\\.]*[\\s]+([a-zA-Z0-9_-]*)", + "captures": { + "1": { + "name": "keyword.verb.cobol" + }, + "2": { + "name": "entity.name.function.cobol" + } + } + }, + { + "match": "(?<![-_])(?i:implements|inherits|constraints|constrain)(?=\\s|\\.)", + "name": "keyword.verb.cobol" + }, + { + "match": "(?<![-_])(?i:end\\s+enum|end\\s+interface|end\\s+class|end\\s+property|end\\s+method|end\\s+object|end\\s+iterator|end\\s+function|end\\s+operator|end\\s+program|end\\s+indexer|create|reset|instance|delegate|end-delegate|delegate-id|declare|exception-object|as|stop\\s+iterator|stop\\s+run|stop)(?=\\s|\\.|,|\\))", + "name": "keyword.identifiers.cobol" + }, + { + "match": "\\s+(?i:attach\\s+method|attach\\s+del|attach|detach\\s+del|detach\\s+method|detach|method|del)(?=\\s|\\.|$)", + "name": "keyword.identifiers.cobol" + }, + { + "match": "\\s+(?i:sync\\s+(?i:on))(?=\\s|\\.)", + "name": "keyword.other.sync.cobol" + }, + { + "match": "\\s+(?i:try|finally|catch|end-try|throw)(?=\\s|\\.|$)", + "name": "keyword.control.catch-exception.cobol" + }, + { + "match": "(?<![-_])(?i:select|use|thru|varying|giving|remainder|tallying|through|until|execute|returning|using|chaining|yielding|\\+\\+include|copy|replace)(?=\\s)", + "name": "keyword.otherverb.cobol" + }, + { + "match": "(?i:dynamic)\\s+(?i:length)(?=\\s|\\.)", + "name": "storage.type.dynamiclength.cobol" + }, + { + "match": "(?<![-_])(?i:assign|external|prototype|organization|organisation|indexed|column|plus|line\\*s*sequential|sequential|access|dynamic|relative|label|block|contains|standard|records|record\\s+key|record|is|alternate|duplicates|reel|tape|terminal|disk\\sfilename|disk|disc|recording\\smode|mode|random)(?=\\s|\\.)", + "name": "keyword.identifers.cobol" + }, + { + "match": "(?<![-_])(?i:max|min|integer-of-date|integer-of-day|integer-part|integer|date-to-yyyymmdd|year-to-yyyy|day-to-yyyyddd|exp|exception-file|exception-location|exception-statement|exception-status|e|variance|integer-of-date|rem|pi|factorial|sqrt|log10|fraction-part|mean|exp|log|char|day-of-integer|date-of-integer|exp10|atan|integer-part|tan|sin|cos|midrange|addr|acos|asin|annuity|present-value|integer-of-day|ord-max|ord-min|ord|random|integer-of-date|sum|standard-deviation|median|reverse|abs|upper-case|lower-case|char-national|numval|mod|range|length|locale-date|locale-time-from-seconds|locale-time|seconds-past-midnight|stored-char-length|substitute-case|substitute|seconds-from-formatted-time|seconds-past-midnight|trim|length-an|numval-c|current-date|national-of|display-of|when-compiled|integer-of-boolean|combined-datetime|concatenate)(?=\\s|\\.|\\(|\\))", + "name": "support.function.cobol" + }, + { + "match": "(?<![-_])(?i:DFHRESP|DFHVALUE)(\\s*\\(\\s*)([a-zA-Z]*)(\\s*\\))", + "captures": { + "0": { + "name": "support.function.cics.cobol" + }, + "1": { + "name": "punctuation.definition.string.end.cobol" + }, + "2": { + "name": "keyword.identifers.cobol" + }, + "3": { + "name": "punctuation.definition.string.end.cobol" + } + } + }, + { + "match": "(?<![-_])(?i:function)(?=\\s|\\.)", + "name": "keyword.verb.cobol" + }, + { + "match": "(?<![-_])(?i:end-accept|end-add|end-sync|end-compute|end-delete|end-display|end-divide|end-set|end-multiply|end-of-page|end-read|end-receive|end-return|end-rewrite|end-search|end-start|end-string|end-subtract|end-unstring|end-write|program|class|interface|enum|interface)(?![0-9A-Za-z_-])", + "name": "keyword.verb.cobol" + }, + { + "match": "(?<![-_])(?:by value|by reference|by content|property-value)(?![0-9A-Za-z_-])", + "name": "keyword.other.cobol" + }, + { + "match": "(?<![-_])(?i:attr-string|automatic|auto-skip|footing|next|group|indicate|source|control|full|required|of|input|output|i-o|extend|file|error|exception|overflow|goto|off|on|proceed|procedures|procedure|through|invalid|data|normal|eop|returning|to|for|giving|into|by|params|remainder|also|numeric|free|depending|converting|replacing|after|before|all|leading|first|recursive|initialized|global|common|initial|resident|reference|content|are\\sstandard|are|renames|like|format\\stime|values|omitted|value|constant|ascending|descending|key|retry|until|varying|with|no|advancing|up|down|uccurs|ignore\\s+lock|lock|length|delimited|count|delimiter|redefines|from\\s+console|from\\s+command-line|from\\s+user\\s+name|from\\s+day\\s+yyyyddd|from\\s+day|from\\s+time|from\\s+day-of-week|from\\s+escape|from\\s+day\\s+yyyyddd|from\\s+date\\s+yyyymmdd|from\\s+date|from|raising|crt\\s+status|status|class|upon\\s+crt|upon|lines|columns|step|linage|auto|line|position|col|reports|code-set|reporting|arithmetic|localize|program|class|interface|in|at\\s+end|page|name)(?![0-9A-Za-z_-])", + "name": "keyword.identifers.cobol" + }, + { + "match": "(?<![-_])(?i:type|new)\\s+([a-zA-Z][a-zA-Z0-9\\$\\-\\._]*|[a-zA-Z])(?=\\.$)", + "captures": { + "0": { + "name": "keyword.verb.cobol" + }, + "1": { + "name": "storage.type.cobol" + } + }, + "comment": "type ssss " + }, + { + "match": "(?<![-_])(?i:string)(?=\\s+value|\\.)", + "name": "storage.type.cobol" + }, + { + "match": "(?<![-_])(?i:bit|byte|binary-char|binary-char-unsigned|binary-short|binary-short-unsigned|binary.long|binary-c-long|binary-long-unsigned|binary-long|binary-double|binary-double-unsigned|float-short|float-extended|float-long|bit|condition-value|characters|character\\s+type|character|comma|crt|decimal|object\\+sreference|object-reference|object|list|dictionary|unsigned)(?=\\s|\\.|,|\\]|\\[)", + "name": "storage.type.cobol" + }, + { + "match": "(operator-id\\s+[+\\-\\*\\/])", + "name": "keyword.operator-id.cobol", + "captures": { + "1": { + "name": "keyword.other.verb.cobol" + }, + "2": { + "name": "meta.symbol.cobol" + } + }, + "comment": "operator-id ssss " + }, + { + "match": "(?i:self)(\\:\\:)([0-9a-zA-Z_\\-\\.]*)(?=\\.$)", + "captures": { + "1": { + "name": "punctuation.accessor.cobol.b3" + }, + "2": { + "name": "entity.name.function.b3" + } + }, + "comment": " ::.. " + }, + { + "match": "(\\:\\:)([0-9a-zA-Z_\\-\\.]*)", + "captures": { + "1": { + "name": "punctuation.accessor.cobol" + }, + "2": { + "name": "entity.name.function.cobol" + } + }, + "comment": " ::.. " + }, + { + "match": "(?<![-_])(?i:type)\\s+([0-9a-zA-Z\\.]*)", + "captures": { + "0": { + "name": "keyword.verb.cobol.aa" + }, + "1": { + "name": "storage.type.cobol.bb" + } + } + }, + { + "match": "(?<![-_])(?i:if|else|end-if|exit\\s+iterator|exit\\s+program|exit\\s+method|evaluate|end-evaluate|exit\\s+perform|perform|end-perform|when\\s+other|when|continue|call|end-call|chain|end-chain|invoke|end\\s+invoke|go\\s+to|go|sort|merge|use|xml|parse|stop\\s+run|goback\\s+returning|goback|raise|exit\\s+function|exit\\sparagraph|await)(?![0-9A-Za-z_-])", + "name": "keyword.control.cobol" + }, + { + "match": "(?<![-_])((?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[-+sS\\*$09aAbBxXuUpPnNzZ/,.]*)\\(([0-9]*)\\)([vV][-+sS\\*$09aAbBxXuUpPnNzZ/,\\.]*)\\(([0-9]*)\\)[-|+]", + "captures": { + "1": { + "name": "storage.type.picture10.cobol" + }, + "2": { + "name": "constant.numeric.cobol" + }, + "3": { + "name": "storage.type.picture10.cobol" + }, + "4": { + "name": "constant.numeric.cobol" + } + } + }, + { + "match": "(?<![-_])((?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[-+sS\\*$09aAbBxXuUpPnNzZ/,.]*)\\(([0-9]*)\\)([vV][-+sS\\*$09aAbBxXuUpPnNzZ/,\\.]*)\\(([0-9]*)\\)", + "captures": { + "1": { + "name": "storage.type.picture9.cobol" + }, + "2": { + "name": "constant.numeric.cobol" + }, + "3": { + "name": "storage.type.picture9.cobol" + }, + "4": { + "name": "constant.numeric.cobol" + } + } + }, + { + "match": "(?<![-_])((?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[-+sS\\*$09aAbBxXuUpPnNzZ/,.]*)\\(([0-9]*)\\)([vV\\.][-+s\\*$09aAbBsSnNxXuUzZ/,]*[0-9\\.()])*", + "captures": { + "1": { + "name": "storage.type.picture8.cobol" + }, + "2": { + "name": "constant.numeric.cobol" + }, + "3": { + "name": "storage.type.picture8.cobol" + } + } + }, + { + "match": "(?<![-_])(?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[-+sS\\*$09aAbBsSnpPNxXuUzZ/,.]*\\([0-9]*\\)[Vv\\.][-+s\\*0$9aAbBsSnNxpPxXuUzZ/,]*", + "name": "storage.type.picture7.cobol" + }, + { + "match": "(?<![-_])(?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[-+sS\\*$09aAbBsSnpPNxXuUzZ/,.]*\\([0-9]*\\)[-+s\\*0$9aAbBsSnNxpPxXuUzZ/,]*[Vv\\.][-+s\\*0$9aAbBsSnNxpPxXuUzZ/,]*", + "name": "storage.type.picture6.cobol" + }, + { + "match": "(?<![-_])((?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[-+sS\\*$09aAbBsSnpPNxuUXzZ/,.]*)\\(([0-9]*)\\)[-+s\\*0$9aAbBsSnNxpPxXuUzZ/,]*", + "captures": { + "1": { + "name": "storage.type.picture5.cobol" + }, + "2": { + "name": "constant.numeric.cobol" + } + } + }, + { + "match": "(?<![-_])(?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[-+sS\\*$09aAbBsSnpNNxXuUzZ/,.]*\\([0-9]*\\)", + "name": "storage.type.picture4.cobol" + }, + { + "match": "(?<![-_])(?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[sS]?[9aAbBsSnNxXuUzZ]*[Vv][9aAxbXuUzZ]*\\([0-9]*\\)", + "name": "storage.type.picture3.cobol" + }, + { + "match": "(?<![-_])(?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[sS]?[9aAbBsSnNxXuUzZ]*[Vv][9aAxbXuUzZ]*", + "name": "storage.type.picture2.cobol" + }, + { + "match": "(?<![-_])(?i:picture\\s+is|picture|pic\\s+is|pic)\\s+[-+\\*$9aAbBsSnpPNxXuUzZ/,.vV]*", + "name": "storage.type.picture1.cobol" + }, + { + "match": "((?<![-_])(?i:binary|computational-4|comp-4|computational-5|comp-5))\\(([0-9]*)\\)", + "captures": { + "1": { + "name": "invalid.illegal.keyword.verb.acu.cobol" + }, + "2": { + "name": "invalid.illegal.constant.numeric.integer" + } + } + }, + { + "match": "(?i:cblt-x1-compx-const|cblt-x2-compx-const|cblt-x4-compx-const|cblt-alphanum-const|cblt-x9-compx|cblt-x8-compx|cblt-x8-comp5|cblt-x4-compx|cblt-x4-comp5|cblt-x2-compx|cblt-x2-comp5|cblt-x1-compx|cblt-x1-comp5|cblt-x1|cblt-vfile-status|cblt-vfile-handle|cblt-sx8-comp5|cblt-sx4-comp5|cblt-sx2-comp5|cblt-sx1-comp5|cblt-subsys-params|cblt-splitjoin-buf|cblt-screen-position|cblt-rtncode|cblt-request-context|cblt-reqhand-service-info|cblt-reqhand-service-funcs|cblt-reqhand-response|cblt-reqhand-funcs|cblt-prog-info-params|cblt-prog-info-arg-info|cblt-printer-properties|cblt-printer-name|cblt-printer-info|cblt-printer-default|cblt-ppointer|cblt-pointer|cblt-os-ssize|cblt-os-size|cblt-os-offset|cblt-os-info-params|cblt-os-flags|cblt-node-name|cblt-nls-msg-params|cblt-nls-msg-number-pair|cblt-nls-msg-ins-struct|cblt-nls-msg-buffer|cblt-mouse-shape|cblt-mouse-rect|cblt-mouse-pos|cblt-mouse-event|cblt-mem-validate-param|cblt-idp-exit-service-funcs|cblt-idp-exit-info|cblt-HWND|cblt-HINSTANCE|cblt-get-scr-line-draw-buffer|cblt-get-scr-graphics-buffer|cblt-generic-attr-value|cblt-generic-attr-rgb-values|cblt-generic-attr-information|cblt-file-status|cblt-fileexist-buf|cblt-exit-params|cblt-exit-info-params|cblt-cancel-proc-params|cblt-bytestream-handle|cblt-alphanum)", + "name": "support.function.cbltypes.cobol" + }, + { + "match": "(?<![-_])(?i:computational-1|comp-1|computational-2|comp-2|computational-3|comp-3|computational-4|comp-4|computational-x|comp-x|computational-5|comp-5|computational-6|comp-6|computational-n|comp-n|packed-decimal|index|float|double|signed-short|unsigned-short|signed-int|unsigned-int|signed-long|unsigned-long|comp|computational|group-usage|usage\\sis\\sdisplay|usage\\sis\\sfont|usage\\s+display|binary|mutex-pointer|data-pointer|thread-pointer|sempahore-pointer|event-pointer|program-pointer|procedure-pointer|pointer|window|subwindow|control-type|thread|menu|variant|layout-manager|occurs|typedef|any|times|display\\s+blank\\s+when|blank\\s+when|blank\\s+screen|blank|usage\\sis|is\\spartial|usage|justified|just|right|signed|trailing\\s+separate|sign|seperate|sql)(?=\\s|\\.|\\))", + "name": "storage.type.picture.cobol" + }, + { + "match": "(?i:byte-length)\\s+[0-9]+", + "name": "storage.type.length.cobol" + }, + { + "match": "(?<![-_])(?i:accept|add|address|allocate|cancel|close|commit|compute|continue|delete|disable|display|bell|divide|eject|enable|enter|evaluate|exhibit|named|exit|free|generate|go\\s+to|initialize\\sonly|initialize|initiate|inspect|merge|end-set|set|end-invoke|invoke\\s+run|invoke|move|corresponding|corr|multiply|otherwise|open|sharing|sort-merge|purge|ready|read|kept|receive|release|return|rewrite|rounded|rollback|search|send|sort|collating\\s+sequence|collating|start|service|subtract|suppress|terminate|then|unlock|string|unstring|validate|write|next|statement|sentence)(?![0-9A-Za-z_-])", + "name": "keyword.verb.cobol" + }, + { + "match": "(?<![-_])(?i:thread-local)(?![0-9A-Za-z_-])", + "name": "keyword.verb.cobol" + }, + { + "match": "(\\s+|^)(?i:foreground-color|background-color|prompt|underline|reverse-video|no-echo|highlight|blink)(?![0-9A-Za-z_-])", + "name": "keyword.screens.cobol" + }, + { + "match": "(\\s+|^)(?i:bold|high|lowlight|low|standard|background-high|background-low|background-standard)(?![0-9A-Za-z_-])", + "name": "invalid.illegal.screens.acu.cobol" + }, + { + "match": "(?<![-_])(?i:internal|public|protected|final|private|static|new|abstract|override|readonly|property|async-void|async-value|async)(?=\\s|\\.)", + "name": "storage.modifier.cobol" + }, + { + "match": "=|<|>|<=|>=|<>|\\+|\\-|\\*|\\/|(?<![-_])(?i:b-and|b-or|b-xor|b-exor|b-not|b-left|b-right|and|or|equals|equal|greater\\s+than|less\\s+than|greater)(?![0-9A-Za-z_-])", + "name": "keyword.operator.cobol" + }, + { + "match": "(?i:not\\s+at\\s+end)(?![0-9A-Za-z_-])", + "name": "keyword.verb.cobol" + }, + { + "match": "(?<![-_])(?i:not)(?![0-9A-Za-z_-])", + "name": "keyword.operator.cobol" + }, + { + "match": "(?<![-_])(?i:sysout-flush|sysin|stderr|stdout|csp|stdin|sysipt|sysout|sysprint|syslist|syslst|printer|syserr|console|c01|c02|c03|c04|c05|c06|c07|c08|c09|c10|c11|c12|formfeed|switch-0|switch-10|switch-11|switch-12|switch-13|switch-13|switch-14|switch-15|switch-1|switch-2|switch-3|switch-4|switch-5|switch-6|switch-7|switch-8|switch-9|sw0|sw11|sw12|sw13|sw14|sw15|sw1|sw2|sw3|sw4|sw5|sw6|sw7|sw8|sw9|sw10|lc_all|lc_collate|lc_ctype|lc_messages|lc_monetary|lc_numeric|lc_time|ucs-4|utf-8|utf-16)(?![0-9A-Za-z_-])", + "name": "support.type.cobol" + }, + { + "match": "(?<![-_])(?i:end-xml|processing.*procedure|xml\\sparse|xml|xml-information|xml-text|xml-schemal|xml-declaration)(?![0-9A-Za-z_-])", + "name": "keyword.xml.cobol" + }, + { + "match": "(?<![-_])(?i:json\\s+generate|json|end-json|name\\sof)(?![0-9A-Za-z_-])", + "name": "keyword.json.cobol" + }, + { + "match": "(?<![-_])(?i:modify|inquire|tab|title|event|center|label-offset|cell|help-id|cells|push-button|radio-button|page-layout-screen|entry-field|list-box|label|default-font|id|no-tab|unsorted|color|height|width|bind|thread|erase|modeless|scroll|system|menu|title-bar|wrap|destroy|resizeable|user-gray|large-font|newline|3-d|data-columns|display-columns|alignment|separation|cursor-frame-width|divider-color|drag-color|heading-color|heading-divider-color|num-rows|record-data|tiled-headings|vpadding|centered-headings|column-headings|self-act|cancel-button|vscroll|report-composer|clsid|primary-interface|active-x-control|default-interface|default-source|auto-minimize|auto-resize|resource|engraved|initial-state|frame|acuactivexcontrol|activex-res|grid|box|message|namespace|class-name|module|constructor|version|strong|culture|method|handle|exception-value|read-only|dividers|graphical|indexed|termination-value|permanent|boxed|visible|centered|record-position|convert)(?=\\s|\\.|,|;|$)", + "name": "invalid.illegal.acu.cobol" + }, + { + "match": "(?<![-_])(?i:actual|auto|automatic|based-storage|complex|connect|contained|core-index|db-access-control-key|db-data-name|db-exception|db-record-name|db-set-name|db-status|dead-lock|endcobol|end-disable|end-enable|end-send|end-transceive|eos|file-limits|file-limit|formatted|sort-status|usage-mode)(?=\\s|\\.|,|;|$)", + "name": "invalid.illegal.netcobol.cobol" + }, + { + "match": "(?<![-_])(?i:System-Info|Terminal-Info)(?![0-9A-Za-z_-])", + "name": "support.type.cobol.acu strong" + }, + { + "match": "(?<![-_])(?i:alter)(?=\\s|\\.)", + "name": "invalid.illegal.cobol" + }, + { + "match": "(?<![-_])(?i:apply|areas|area|clock-units|code|com-reg|controls|dbcs|destination|detail|display-1|ending|every|insert|kanjikey|last|left|less|limits|limit|memory|metaclass|modules|more-labels|multiple|native_binary|native|negative|number|numeric-edited|other|padding|password|pf|ph|postive|processing|queue|recording|reload|removal|rerun|reserve|reserved|rewind|segment-limit|segment|separate|sequence|skip1|skip2|skip3|standard-1|standard-2|sub-queue-1|sub-queue-2|sub-queue-3|sum|symbolic|synchronized|sync|table|test|text|than|top|trace|trailing|unit|words|write-only|at|basis|beginning|bottom|cbl|cf|ch|de|positive|egcs|egi|emi|end|reversed|rf|rh|run|same|order|heading|esi)(?![0-9A-Za-z_-])", + "name": "keyword.ibmreserved.cobol" + }, + { + "match": "(?<![-_])(?i:active-class|aligned|anycase|boolean|cols|col|condition|ec|eo|system-default|function-pointer)(?![0-9A-Za-z_-])", + "name": "strong keyword.potential.reserved.cobol" + }, + { + "match": "(?i:filler)", + "name": "keyword.filler.cobol" + }, + { + "match": "(?<![-_])(?i:address-of|date|day-of-week|day|debug-content|debug-item|debug-line|debug-item|debug-sub-1|debug-sub-2|debug-sub-3|shift-in|shift-out|sort-control|sort-core-size|sort-file-size|sort-message|sort-return|sort-mode-size|sort-return|tally|time|when-compiled|line-counter|page-counter|return-code|linage-counter|debug-line|debug-name|debug-contents|json-code|json-status|xml-code|xml-event|xml-information|xml-namespace-prefix|xml-namespace|xml-nnamespace-repfix|xml-nnamespace|xml-ntext|jnienvptr)(?![0-9A-Za-z_-])", + "name": "variable.language" + }, + { + "match": "(?<![-_])(?i:shortint1|shortint2|shortint3|shortint4|shortint5|shortint6|shortint7|longint1|longint2|longint3|longint4|longint5|longint6|bigint1|bigint2|blob-locator|clob-locator|dbclob-locator|dbclob-file|blob-file|clob-file|clob|dbclob|blob|varbinary|long-varbinary|time-record|timestamp-record|timestamp-offset-record|timestamp-offset|timestamp|rowid|xml|long-varchar)(?=\\s|\\.|\\)|\\()", + "name": "storage.type.sql.picture.cobol" + }, + { + "match": "(?<![-_])(?i:self)", + "name": "keyword.other.self.cobol" + }, + { + "match": "(?<![-_])(?i:super)", + "name": "keyword.other.super.cobol" + }, + { + "match": "(^[0-9][0-9][0-9][0-9][0-9][0-9])", + "name": "constant.numeric.cobol" + }, + { + "match": "(\\()([0-9]*)(:)([0-9]*)(\\))", + "captures": { + "1": { + "name": "meta.symbol.cobol" + }, + "2": { + "name": "constant.numeric.integer" + }, + "3": { + "name": "meta.symbol.cobol" + }, + "4": { + "name": "constant.numeric.integer" + }, + "5": { + "name": "meta.symbol.cobol" + } + } + }, + { + "match": "([a-zA-Z-0-9_]*[a-zA-Z0-9]|([#]?[0-9a-zA-Z]+[a-zA-Z-0-9_]*[a-zA-Z0-9]))", + "name": "meta.symbol.cobol" + } + ], + "repository": { + "cics-keywords": { + "match": "(?<![\\-\\w])(?i:abcode|abdump|abend|abort|abprogram|abstime|accum|acee|acqactivity|acqprocess|acquactivity|action|activity|activityid|actpartn|add|address|after|aid|alarm|all|allocate|alter|alternate|altscrnht|altscrnwd|and|anykey|aplkybd|apltext|applid|as|asa|asis|asktime|asraintrpt|asrakey|asrapsw|asraregs|asraspc|asrastg|assign|asynchronous|at|attach|attachid|attributes|authenticate|autopage|auxiliary|base64|basicauth|below|bif|binary|bit|bodycharset|bookmark|brdata|brdatalength|brexit|bridge|browsetoken|btrans|buffer|build|burgeability|caddrlength|cancel|card|cbuff|ccsid|certificate|change|changetime|channel|char|characterset|check|chunkend|chunking|chunkno|chunkyes|cicsdatakey|ciphers|class|clear|cliconvert|client|clientaddr|clientaddrnu|clientconv|clientname|clntaddr6nu|clntipfamily|close|closestatus|clrpartn|cmdsec|cnamelength|cnotcompl|codepage|color|commarea|commonname|commonnamlen|comparemax|comparemin|complete|composite|compstatus|condition|confirm|confirmation|connect|consistent|console|container|contexttype|control|convdata|converse|convertst|converttime|convid|copy|counter|country|countrylen|create|critical|ctlchar|current|cursor|cwa|cwaleng|data|data1|data2|datalength|datalenth|dataonly|datapointer|dataset|datastr|datatoxml|datatype|datcontainer|date|dateform|datesep|datestring|day|daycount|dayofmonth|dayofweek|dayofyear|days|daysleft|day-of-week|dcounter|ddmmyy|ddmmyyyy|debkey|debrec|debug-contents|debug-item|debug-line|debug-name|debug-sub-1|debug-sub-2|debug-sub-3|deedit|default|define|defresp|defscrnht|defscrnwd|delay|delete|deleteq|delimiter|deq|destcount|destid|destidleng|detail|detaillength|dfhresp|dfhvalue|digest|digesttype|disconnect|docdelete|docsize|docstatus|doctoken|document|ds3270|dsscs|dump|dumpcode|dumpid|duprec|ecaddr|ecblist|eib|elemname|elemnamelen|elemns|elemnslen|end|endactivity|endbr|endbrowse|endfile|endoutput|enq|enter|entry|entryname|eoc|eods|eprfield|eprfrom|eprinto|eprlength|eprset|eprtype|equal|erase|eraseaup|error|errterm|esmreason|esmresp|event|eventtype|eventual|ewasupp|exception|expect|expirytime|extds|external|extract|facility|facilitytokn|false|faultactlen|faultactor|faultcode|faultcodelen|faultcodestr|faultstring|faultstrlen|fci|fct|field|file|firestatus|flength|fmh|fmhparm|for|force|formattime|formfeed|formfield|free|freekb|freemain|from|fromactivity|fromccsid|fromchannel|fromcodepage|fromdoc|fromflength|fromlength|fromprocess|frset|fulldate|function|gchars|gcodes|gds|generic|get|getmain|getnext|gmmi|groupid|gtec|gteq|handle|head|header|hex|high-value|high-values|hilight|hold|honeom|host|hostcodepage|hostlength|hosttype|hours|httpheader|httpmethod|httprnum|httpversion|httpvnum|ignore|immediate|in|increment|initimg|initparm|initparmlen|inpartn|input|inputevent|inputmsg|inputmsglen|inquire|insert|integer|interval|into|intoccsid|intocodepage|invalidcount|invite|invmpsz|invoke|invokingprog|invpartn|invreq|issue|issuer|item|iutype|journalname|jtypeid|jusfirst|juslast|justify|katakana|keep|keylength|keynumber|l40|l64|l80|label|langinuse|languagecode|last|lastusetime|ldc|ldcmnem|ldcnum|leavekb|length|lengthlist|level|lightpen|linage-counter|line|lineaddr|line-counter|link|list|listlength|llid|load|locality|localitylen|logmessage|logmode|logonlogmode|logonmsg|low-value|low-values|luname|main|map|mapcolumn|mapfail|mapheight|mapline|maponly|mapped|mappingdev|mapset|mapwidth|massinsert|maxdatalen|maxflength|maximum|maxlength|maxlifetime|maxproclen|mcc|mediatype|message|messageid|metadata|metadatalen|method|methodlength|milliseconds|minimum|minutes|mmddyy|mmddyyyy|mode|modename|monitor|month|monthofyear|move|msr|msrcontrol|name|namelength|natlang|natlanginuse|netname|newpassword|newphrase|newphraselen|next|nexttransid|nleom|noautopage|nocc|nocheck|nocliconvert|noclose|nodata|node|nodocdelete|nodump|noedit|noflush|nohandle|noinconvert|none|nooutconert|noqueue|noquiesce|nosrvconvert|nosuspend|note|notpurgeable|notruncate|nowait|nscontainer|null|nulls|numciphers|numevents|numitems|numrec|numroutes|numsegments|numtab|of|oidcard|on|opclass|open|operation|operator|operid|operkeys|operpurge|opid|opsecurity|options|or|orgabcode|organization|organizatlen|orgunit|orgunitlen|outdescr|outline|outpartn|output|owner|pa1|pa2|pa3|page|pagenum|page-counter|paging|parse|partn|partner|partnfail|partnpage|partns|partnset|pass|passbk|password|passwordlen|path|pathlength|pct|pf1|pf10|pf11|pf12|pf13|pf14|pf15|pf16|pf17|pf18|pf19|pf2|pf20|pf21|pf22|pf23|pf24|pf3|pf4|pf5|pf6|pf7|pf8|pf9|pfxleng|phrase|phraselen|piplength|piplist|point|pool|pop|portnumber|portnumnu|post|ppt|predicate|prefix|prepare|princonvid|prinsysid|print|priority|privacy|process|processtype|proclength|procname|profile|program|protect|ps|punch|purge|purgeable|push|put|qname|query|queryparm|querystring|querystrlen|queue|quote|quotes|random|rba|rbn|rdatt|read|readnext|readprev|readq|reattach|receive|receiver|recfm|record|recordlen|recordlength|reduce|refparms|refparmslen|relatesindex|relatestype|relatesuri|release|remove|repeatable|repetable|replace|reply|replylength|reqid|requesttype|resclass|reset|resetbr|resid|residlength|resource|resp|resp2|ressec|restart|restype|result|resume|retain|retcode|retcord|retriece|retrieve|return|returnprog|return-code|rewind|rewrite|ridfld|role|rolelength|rollback|route|routecodes|rprocess|rresource|rrn|rtermid|rtransid|run|saddrlength|scheme|schemename|scope|scopelen|scrnht|scrnwd|seconds|security|segmentlist|send|sender|serialnum|serialnumlen|server|serveraddr|serveraddrnu|serverconv|servername|service|session|sesstoken|set|shared|shift-in|shift-out|sigdata|signal|signoff|signon|sit|snamelength|soapfault|sort-control|sort-core-size|sort-file-size|sort-message|sort-mode-size|sort-return|sosi|space|spaces|spoolclose|spoolopen|spoolread|spoolwrite|srvconvert|srvraddr6nu|srvripfamily|ssltype|start|startbr|startbrowse|startcode|state|statelen|stationid|status|statuscode|statuslen|statustext|storage|strfield|stringformat|subaddr|subcodelen|subcodestr|subevent|subevent1|subevent2|subevent3|subevent4|subevent5|subevent6|subevent7|subevent8|sum|suspend|suspstatus|symbol|symbollist|synchronous|synclevel|synconreturn|syncpoint|sysid|tables|tally|task|taskpriority|tcpip|tcpipservice|tct|tctua|tctualeng|td|tellerid|template|termcode|termid|terminal|termpriority|test|text|textkybd|textlength|textprint|time|timeout|timer|timesep|title|to|toactivity|tochannel|tocontainer|toflength|token|tolength|toprocess|trace|tracenum|trailer|tranpriority|transaction|transform|transid|trigger|trt|true|ts|twa|twaleng|type|typename|typenamelen|typens|typenslen|unattend|uncommitted|unescaped|unexpin|unlock|until|uow|update|uri|urimap|url|urllength|userdatakey|userid|username|usernamelen|userpriority|using|validation|value|valuelength|verify|versionlen|volume|volumeleng|wait|waitcics|web|when-compiled|wpmedia1|wpmedia2|wpmedia3|wpmedia4|wrap|write|writeq|wsacontext|wsaepr|xctl|xmlcontainer|xmltodata|xmltransform|xrba|year|yyddd|yyddmm|yymmdd|yyyyddd|yyyyddmm|yyyymmdd|zero|zeroes|zeros)(?![\\-\\w])", + "name": "keyword.verb.cics" + }, + "dli-keywords": { + "match": "(?<![\\-\\w])(?i:accept|chkp|deq|dlet|gnp|gn|gu|isrt|load|log|pos|query|refresh|repl|retrieve|rolb|roll|rols|schd|sets|setu|symchkp|term|xrst)(?![\\-\\w])", + "name": "keyword.verb.dli" + }, + "string-quoted-constant": { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.cobol" + } + }, + "end": "('|$)", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.cobol" + } + }, + "name": "string.quoted.single.cobol" + }, + "string-double-quoted-constant": { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.cobol" + } + }, + "end": "(\"|$)", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.cobol" + } + } + }, + "number-complex-constant": { + "match": "(\\-|\\+)?((([0-9]+(\\.[0-9]+))|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)([LlFfUuDd]|UL|ul)?(?=\\s|\\.$|,|\\))", + "name": "constant.numeric.cobol" + }, + "number-simple-constant": { + "match": "(\\-|\\+)?([0-9]+)(?=\\s|\\.$|,|\\))", + "name": "constant.numeric.cobol" + } + }, + "scopeName": "source.cobol" +} diff --git a/docs/shiki/languages/codeql.tmLanguage.json b/docs/shiki/languages/codeql.tmLanguage.json new file mode 100644 index 00000000..41519827 --- /dev/null +++ b/docs/shiki/languages/codeql.tmLanguage.json @@ -0,0 +1,1537 @@ +{ + "name": "codeql", + "scopeName": "source.ql", + "fileTypes": ["ql", "qll"], + "uuid": "7F6926BF-1C6C-468A-A7AA-215EBAC86A4E", + "patterns": [ + { + "include": "#module-member" + } + ], + "repository": { + "id-character": { + "match": "(?x)[0-9A-Za-z_]" + }, + "end-of-id": { + "match": "(?x)(?!(?:[0-9A-Za-z_]))" + }, + "simple-id": { + "match": "(?x)\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))" + }, + "lower-id": { + "match": "(?x)\\b [a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))" + }, + "upper-id": { + "match": "(?x)\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))" + }, + "at-lower-id": { + "match": "(?x)@[a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))" + }, + "comment-start": { + "match": "(?x)// | /\\*" + }, + "whitespace-or-comment-start": { + "match": "(?x)\\s | $ | (?:// | /\\*)" + }, + "non-context-sensitive": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#literal" + }, + { + "include": "#operator-or-punctuation" + }, + { + "include": "#keyword" + } + ] + }, + "relational-operator": { + "match": "(?x)<=|<|>=|>", + "name": "keyword.operator.relational.ql" + }, + "comparison-operator": { + "match": "(?x)=|\\!\\=", + "name": "keyword.operator.comparison.ql" + }, + "arithmetic-operator": { + "match": "(?x)\\+|-|\\*|/|%", + "name": "keyword.operator.arithmetic.ql" + }, + "comma": { + "match": "(?x),", + "name": "punctuation.separator.comma.ql" + }, + "semicolon": { + "match": "(?x);", + "name": "punctuation.separator.statement.ql" + }, + "dot": { + "match": "(?x)\\.", + "name": "punctuation.accessor.ql" + }, + "dotdot": { + "match": "(?x)\\.\\.", + "name": "punctuation.operator.range.ql" + }, + "pipe": { + "match": "(?x)\\|", + "name": "punctuation.separator.pipe.ql" + }, + "open-paren": { + "match": "(?x)\\(", + "name": "punctuation.parenthesis.open.ql" + }, + "close-paren": { + "match": "(?x)\\)", + "name": "punctuation.parenthesis.close.ql" + }, + "open-brace": { + "match": "(?x)\\{", + "name": "punctuation.curlybrace.open.ql" + }, + "close-brace": { + "match": "(?x)\\}", + "name": "punctuation.curlybrace.close.ql" + }, + "open-bracket": { + "match": "(?x)\\[", + "name": "punctuation.squarebracket.open.ql" + }, + "close-bracket": { + "match": "(?x)\\]", + "name": "punctuation.squarebracket.close.ql" + }, + "open-angle": { + "match": "(?x)<", + "name": "punctuation.anglebracket.open.ql" + }, + "close-angle": { + "match": "(?x)>", + "name": "punctuation.anglebracket.close.ql" + }, + "operator-or-punctuation": { + "patterns": [ + { + "include": "#relational-operator" + }, + { + "include": "#comparison-operator" + }, + { + "include": "#arithmetic-operator" + }, + { + "include": "#comma" + }, + { + "include": "#semicolon" + }, + { + "include": "#dot" + }, + { + "include": "#dotdot" + }, + { + "include": "#pipe" + }, + { + "include": "#open-paren" + }, + { + "include": "#close-paren" + }, + { + "include": "#open-brace" + }, + { + "include": "#close-brace" + }, + { + "include": "#open-bracket" + }, + { + "include": "#close-bracket" + }, + { + "include": "#open-angle" + }, + { + "include": "#close-angle" + } + ] + }, + "dont-care": { + "match": "(?x)\\b(?:_)(?:(?!(?:[0-9A-Za-z_])))", + "name": "variable.language.dont-care.ql" + }, + "and": { + "match": "(?x)\\b(?:and)(?:(?!(?:[0-9A-Za-z_])))", + "name": "keyword.other.and.ql" + }, + "any": { + "match": "(?x)\\b(?:any)(?:(?!(?:[0-9A-Za-z_])))", + "name": "keyword.quantifier.any.ql" + }, + "as": { + "match": "(?x)\\b(?:as)(?:(?!(?:[0-9A-Za-z_])))", + "name": "keyword.other.as.ql" + }, + "asc": { + "match": "(?x)\\b(?:asc)(?:(?!(?:[0-9A-Za-z_])))", + "name": "keyword.order.asc.ql" + }, + "avg": { + "match": "(?x)\\b(?:avg)(?:(?!(?:[0-9A-Za-z_])))", + "name": "keyword.aggregate.avg.ql" + }, + "boolean": { + "match": "(?x)\\b(?:boolean)(?:(?!(?:[0-9A-Za-z_])))", + "name": "keyword.type.boolean.ql" + }, + "by": { + "match": "(?x)\\b(?:by)(?:(?!(?:[0-9A-Za-z_])))", + "name": "keyword.order.by.ql" + }, + "class": { + "match": "(?x)\\b(?:class)(?:(?!(?:[0-9A-Za-z_])))", + "name": "keyword.other.class.ql" + }, + "concat": { + "match": "(?x)\\b(?:concat)(?:(?!(?:[0-9A-Za-z_])))", + "name": "keyword.aggregate.concat.ql" + }, + "count": { + "match": "(?x)\\b(?:count)(?:(?!(?:[0-9A-Za-z_])))", + "name": "keyword.aggregate.count.ql" + }, + "date": { + "match": "(?x)\\b(?:date)(?:(?!(?:[0-9A-Za-z_])))", + "name": "keyword.type.date.ql" + }, + "desc": { + "match": "(?x)\\b(?:desc)(?:(?!(?:[0-9A-Za-z_])))", + "name": "keyword.order.desc.ql" + }, + "else": { + "match": "(?x)\\b(?:else)(?:(?!(?:[0-9A-Za-z_])))", + "name": "keyword.other.else.ql" + }, + "exists": { + "match": "(?x)\\b(?:exists)(?:(?!(?:[0-9A-Za-z_])))", + "name": "keyword.quantifier.exists.ql" + }, + "extends": { + "match": "(?x)\\b(?:extends)(?:(?!(?:[0-9A-Za-z_])))", + "name": "keyword.other.extends.ql" + }, + "false": { + "match": "(?x)\\b(?:false)(?:(?!(?:[0-9A-Za-z_])))", + "name": "constant.language.boolean.false.ql" + }, + "float": { + "match": "(?x)\\b(?:float)(?:(?!(?:[0-9A-Za-z_])))", + "name": "keyword.type.float.ql" + }, + "forall": { + "match": "(?x)\\b(?:forall)(?:(?!(?:[0-9A-Za-z_])))", + "name": "keyword.quantifier.forall.ql" + }, + "forex": { + "match": "(?x)\\b(?:forex)(?:(?!(?:[0-9A-Za-z_])))", + "name": "keyword.quantifier.forex.ql" + }, + "from": { + "match": "(?x)\\b(?:from)(?:(?!(?:[0-9A-Za-z_])))", + "name": "keyword.other.from.ql" + }, + "if": { + "match": "(?x)\\b(?:if)(?:(?!(?:[0-9A-Za-z_])))", + "name": "keyword.other.if.ql" + }, + "implies": { + "match": "(?x)\\b(?:implies)(?:(?!(?:[0-9A-Za-z_])))", + "name": "keyword.other.implies.ql" + }, + "import": { + "match": "(?x)\\b(?:import)(?:(?!(?:[0-9A-Za-z_])))", + "name": "keyword.other.import.ql" + }, + "in": { + "match": "(?x)\\b(?:in)(?:(?!(?:[0-9A-Za-z_])))", + "name": "keyword.other.in.ql" + }, + "instanceof": { + "match": "(?x)\\b(?:instanceof)(?:(?!(?:[0-9A-Za-z_])))", + "name": "keyword.other.instanceof.ql" + }, + "int": { + "match": "(?x)\\b(?:int)(?:(?!(?:[0-9A-Za-z_])))", + "name": "keyword.type.int.ql" + }, + "max": { + "match": "(?x)\\b(?:max)(?:(?!(?:[0-9A-Za-z_])))", + "name": "keyword.aggregate.max.ql" + }, + "min": { + "match": "(?x)\\b(?:min)(?:(?!(?:[0-9A-Za-z_])))", + "name": "keyword.aggregate.min.ql" + }, + "module": { + "match": "(?x)\\b(?:module)(?:(?!(?:[0-9A-Za-z_])))", + "name": "keyword.other.module.ql" + }, + "newtype": { + "match": "(?x)\\b(?:newtype)(?:(?!(?:[0-9A-Za-z_])))", + "name": "keyword.other.newtype.ql" + }, + "none": { + "match": "(?x)\\b(?:none)(?:(?!(?:[0-9A-Za-z_])))", + "name": "keyword.quantifier.none.ql" + }, + "not": { + "match": "(?x)\\b(?:not)(?:(?!(?:[0-9A-Za-z_])))", + "name": "keyword.other.not.ql" + }, + "or": { + "match": "(?x)\\b(?:or)(?:(?!(?:[0-9A-Za-z_])))", + "name": "keyword.other.or.ql" + }, + "order": { + "match": "(?x)\\b(?:order)(?:(?!(?:[0-9A-Za-z_])))", + "name": "keyword.order.order.ql" + }, + "predicate": { + "match": "(?x)\\b(?:predicate)(?:(?!(?:[0-9A-Za-z_])))", + "name": "keyword.other.predicate.ql" + }, + "rank": { + "match": "(?x)\\b(?:rank)(?:(?!(?:[0-9A-Za-z_])))", + "name": "keyword.aggregate.rank.ql" + }, + "result": { + "match": "(?x)\\b(?:result)(?:(?!(?:[0-9A-Za-z_])))", + "name": "variable.language.result.ql" + }, + "select": { + "match": "(?x)\\b(?:select)(?:(?!(?:[0-9A-Za-z_])))", + "name": "keyword.query.select.ql" + }, + "strictconcat": { + "match": "(?x)\\b(?:strictconcat)(?:(?!(?:[0-9A-Za-z_])))", + "name": "keyword.aggregate.strictconcat.ql" + }, + "strictcount": { + "match": "(?x)\\b(?:strictcount)(?:(?!(?:[0-9A-Za-z_])))", + "name": "keyword.aggregate.strictcount.ql" + }, + "strictsum": { + "match": "(?x)\\b(?:strictsum)(?:(?!(?:[0-9A-Za-z_])))", + "name": "keyword.aggregate.strictsum.ql" + }, + "string": { + "match": "(?x)\\b(?:string)(?:(?!(?:[0-9A-Za-z_])))", + "name": "keyword.type.string.ql" + }, + "sum": { + "match": "(?x)\\b(?:sum)(?:(?!(?:[0-9A-Za-z_])))", + "name": "keyword.aggregate.sum.ql" + }, + "super": { + "match": "(?x)\\b(?:super)(?:(?!(?:[0-9A-Za-z_])))", + "name": "variable.language.super.ql" + }, + "then": { + "match": "(?x)\\b(?:then)(?:(?!(?:[0-9A-Za-z_])))", + "name": "keyword.other.then.ql" + }, + "this": { + "match": "(?x)\\b(?:this)(?:(?!(?:[0-9A-Za-z_])))", + "name": "variable.language.this.ql" + }, + "true": { + "match": "(?x)\\b(?:true)(?:(?!(?:[0-9A-Za-z_])))", + "name": "constant.language.boolean.true.ql" + }, + "unique": { + "match": "(?x)\\b(?:unique)(?:(?!(?:[0-9A-Za-z_])))", + "name": "keyword.aggregate.unique.ql" + }, + "where": { + "match": "(?x)\\b(?:where)(?:(?!(?:[0-9A-Za-z_])))", + "name": "keyword.query.where.ql" + }, + "keyword": { + "patterns": [ + { + "include": "#dont-care" + }, + { + "include": "#and" + }, + { + "include": "#any" + }, + { + "include": "#as" + }, + { + "include": "#asc" + }, + { + "include": "#avg" + }, + { + "include": "#boolean" + }, + { + "include": "#by" + }, + { + "include": "#class" + }, + { + "include": "#concat" + }, + { + "include": "#count" + }, + { + "include": "#date" + }, + { + "include": "#desc" + }, + { + "include": "#else" + }, + { + "include": "#exists" + }, + { + "include": "#extends" + }, + { + "include": "#false" + }, + { + "include": "#float" + }, + { + "include": "#forall" + }, + { + "include": "#forex" + }, + { + "include": "#from" + }, + { + "include": "#if" + }, + { + "include": "#implies" + }, + { + "include": "#import" + }, + { + "include": "#in" + }, + { + "include": "#instanceof" + }, + { + "include": "#int" + }, + { + "include": "#max" + }, + { + "include": "#min" + }, + { + "include": "#module" + }, + { + "include": "#newtype" + }, + { + "include": "#none" + }, + { + "include": "#not" + }, + { + "include": "#or" + }, + { + "include": "#order" + }, + { + "include": "#predicate" + }, + { + "include": "#rank" + }, + { + "include": "#result" + }, + { + "include": "#select" + }, + { + "include": "#strictconcat" + }, + { + "include": "#strictcount" + }, + { + "include": "#strictsum" + }, + { + "include": "#string" + }, + { + "include": "#sum" + }, + { + "include": "#super" + }, + { + "include": "#then" + }, + { + "include": "#this" + }, + { + "include": "#true" + }, + { + "include": "#unique" + }, + { + "include": "#where" + } + ] + }, + "predicate-start-keyword": { + "patterns": [ + { + "include": "#boolean" + }, + { + "include": "#date" + }, + { + "include": "#float" + }, + { + "include": "#int" + }, + { + "include": "#predicate" + }, + { + "include": "#string" + } + ] + }, + "abstract": { + "match": "(?x)\\b(?:abstract)(?:(?!(?:[0-9A-Za-z_])))", + "name": "storage.modifier.abstract.ql" + }, + "additional": { + "match": "(?x)\\b(?:additional)(?:(?!(?:[0-9A-Za-z_])))", + "name": "storage.modifier.additional.ql" + }, + "bindingset": { + "match": "(?x)\\b(?:bindingset)(?:(?!(?:[0-9A-Za-z_])))", + "name": "storage.modifier.bindingset.ql" + }, + "cached": { + "match": "(?x)\\b(?:cached)(?:(?!(?:[0-9A-Za-z_])))", + "name": "storage.modifier.cached.ql" + }, + "default": { + "match": "(?x)\\b(?:default)(?:(?!(?:[0-9A-Za-z_])))", + "name": "storage.modifier.default.ql" + }, + "deprecated": { + "match": "(?x)\\b(?:deprecated)(?:(?!(?:[0-9A-Za-z_])))", + "name": "storage.modifier.deprecated.ql" + }, + "external": { + "match": "(?x)\\b(?:external)(?:(?!(?:[0-9A-Za-z_])))", + "name": "storage.modifier.external.ql" + }, + "final": { + "match": "(?x)\\b(?:final)(?:(?!(?:[0-9A-Za-z_])))", + "name": "storage.modifier.final.ql" + }, + "language": { + "match": "(?x)\\b(?:language)(?:(?!(?:[0-9A-Za-z_])))", + "name": "storage.modifier.language.ql" + }, + "library": { + "match": "(?x)\\b(?:library)(?:(?!(?:[0-9A-Za-z_])))", + "name": "storage.modifier.library.ql" + }, + "override": { + "match": "(?x)\\b(?:override)(?:(?!(?:[0-9A-Za-z_])))", + "name": "storage.modifier.override.ql" + }, + "pragma": { + "match": "(?x)\\b(?:pragma)(?:(?!(?:[0-9A-Za-z_])))", + "name": "storage.modifier.pragma.ql" + }, + "private": { + "match": "(?x)\\b(?:private)(?:(?!(?:[0-9A-Za-z_])))", + "name": "storage.modifier.private.ql" + }, + "query": { + "match": "(?x)\\b(?:query)(?:(?!(?:[0-9A-Za-z_])))", + "name": "storage.modifier.query.ql" + }, + "signature": { + "match": "(?x)\\b(?:signature)(?:(?!(?:[0-9A-Za-z_])))", + "name": "storage.modifier.signature.ql" + }, + "transient": { + "match": "(?x)\\b(?:transient)(?:(?!(?:[0-9A-Za-z_])))", + "name": "storage.modifier.transient.ql" + }, + "annotation-keyword": { + "patterns": [ + { + "include": "#abstract" + }, + { + "include": "#additional" + }, + { + "include": "#bindingset" + }, + { + "include": "#cached" + }, + { + "include": "#default" + }, + { + "include": "#deprecated" + }, + { + "include": "#external" + }, + { + "include": "#final" + }, + { + "include": "#language" + }, + { + "include": "#library" + }, + { + "include": "#override" + }, + { + "include": "#pragma" + }, + { + "include": "#private" + }, + { + "include": "#query" + }, + { + "include": "#signature" + }, + { + "include": "#transient" + } + ] + }, + "implements": { + "match": "(?x)\\b(?:implements)(?:(?!(?:[0-9A-Za-z_])))", + "name": "keyword.other.implements.ql" + }, + "comment": { + "patterns": [ + { + "begin": "(?x)/\\*\\*", + "end": "(?x)\\*/", + "name": "comment.block.documentation.ql", + "patterns": [ + { + "begin": "(?x)(?<=/\\*\\*)([^*]|\\*(?!/))*$", + "while": "(?x)(^|\\G)\\s*([^*]|\\*(?!/))(?=([^*]|[*](?!/))*$)", + "patterns": [ + { + "match": "(?x)\\G\\s* (@\\S+)", + "name": "keyword.tag.ql" + } + ] + } + ] + }, + { + "begin": "(?x)/\\*", + "end": "(?x)\\*/", + "name": "comment.block.ql" + }, + { + "match": "(?x)//.*$", + "name": "comment.line.double-slash.ql" + } + ] + }, + "module-member": { + "patterns": [ + { + "include": "#import-directive" + }, + { + "include": "#import-as-clause" + }, + { + "include": "#module-declaration" + }, + { + "include": "#newtype-declaration" + }, + { + "include": "#newtype-branch-name-with-prefix" + }, + { + "include": "#predicate-parameter-list" + }, + { + "include": "#predicate-body" + }, + { + "include": "#class-declaration" + }, + { + "include": "#select-clause" + }, + { + "include": "#predicate-or-field-declaration" + }, + { + "include": "#non-context-sensitive" + }, + { + "include": "#annotation" + } + ] + }, + "instantiation-args": { + "name": "meta.type.parameters.ql", + "patterns": [ + { + "include": "#instantiation-args" + }, + { + "include": "#non-context-sensitive" + }, + { + "match": "(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))", + "name": "entity.name.type.namespace.ql" + } + ], + "begin": "(?x)((?:<))", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#open-angle" + } + ] + } + }, + "end": "(?x)((?:>))", + "endCaptures": { + "1": { + "patterns": [ + { + "include": "#close-angle" + } + ] + } + } + }, + "import-directive": { + "end": "(?x)(?<!\\bimport)(?<=(?:\\>)|[A-Za-z0-9_]) (?!\\s*(\\.|\\:\\:|\\,|(?:<)))", + "name": "meta.block.import-directive.ql", + "patterns": [ + { + "include": "#instantiation-args" + }, + { + "include": "#non-context-sensitive" + }, + { + "match": "(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))", + "name": "entity.name.type.namespace.ql" + } + ], + "begin": "(?x)((?:\\b(?:import)(?:(?!(?:[0-9A-Za-z_])))))", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#import" + } + ] + } + } + }, + "end-of-as-clause": { + "match": "(?x)(?: (?<=(?:[0-9A-Za-z_])) (?!(?:[0-9A-Za-z_])) (?<!(?<!(?:[0-9A-Za-z_]))as)) | (?=\\s* (?!(?:// | /\\*) | (?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))) \\S) | (?=\\s* (?:(?:(?:\\b(?:_)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:and)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:any)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:as)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:asc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:avg)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:boolean)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:by)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:class)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:concat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:count)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:date)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:desc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:else)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:exists)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:extends)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:false)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:float)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:forall)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:forex)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:from)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:if)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:implies)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:import)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:in)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:instanceof)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:int)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:max)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:min)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:module)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:newtype)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:none)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:not)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:or)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:order)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:predicate)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:rank)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:result)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictconcat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictcount)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictsum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:string)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:sum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:super)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:then)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:this)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:true)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:unique)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_])))))))" + }, + "import-as-clause": { + "end": "(?x)(?:(?: (?<=(?:[0-9A-Za-z_])) (?!(?:[0-9A-Za-z_])) (?<!(?<!(?:[0-9A-Za-z_]))as)) | (?=\\s* (?!(?:// | /\\*) | (?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))) \\S) | (?=\\s* (?:(?:(?:\\b(?:_)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:and)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:any)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:as)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:asc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:avg)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:boolean)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:by)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:class)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:concat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:count)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:date)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:desc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:else)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:exists)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:extends)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:false)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:float)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:forall)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:forex)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:from)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:if)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:implies)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:import)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:in)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:instanceof)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:int)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:max)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:min)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:module)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:newtype)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:none)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:not)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:or)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:order)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:predicate)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:rank)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:result)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictconcat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictcount)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictsum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:string)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:sum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:super)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:then)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:this)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:true)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:unique)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_]))))))))", + "name": "meta.block.import-as-clause.ql", + "patterns": [ + { + "include": "#non-context-sensitive" + }, + { + "match": "(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))", + "name": "entity.name.type.namespace.ql" + } + ], + "begin": "(?x)((?:\\b(?:as)(?:(?!(?:[0-9A-Za-z_])))))", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#as" + } + ] + } + } + }, + "implements-clause": { + "end": "(?x)(?= \\{ )", + "name": "meta.block.implements-clause.ql", + "patterns": [ + { + "include": "#non-context-sensitive" + }, + { + "match": "(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))|(?:@[a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))", + "name": "entity.name.type.ql" + } + ], + "begin": "(?x)((?:\\b(?:implements)(?:(?!(?:[0-9A-Za-z_])))))", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#implements" + } + ] + } + } + }, + "module-declaration": { + "end": "(?x)(?<=\\}|;)", + "name": "meta.block.module-declaration.ql", + "patterns": [ + { + "include": "#module-body" + }, + { + "include": "#implements-clause" + }, + { + "include": "#non-context-sensitive" + }, + { + "match": "(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))", + "name": "entity.name.type.namespace.ql" + } + ], + "begin": "(?x)((?:\\b(?:module)(?:(?!(?:[0-9A-Za-z_])))))", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#module" + } + ] + } + } + }, + "module-body": { + "name": "meta.block.module-body.ql", + "patterns": [ + { + "include": "#module-member" + } + ], + "begin": "(?x)((?:\\{))", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#open-brace" + } + ] + } + }, + "end": "(?x)((?:\\}))", + "endCaptures": { + "1": { + "patterns": [ + { + "include": "#close-brace" + } + ] + } + } + }, + "module-qualifier": { + "match": "(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))) (?=\\s*\\:\\:)", + "name": "entity.name.type.namespace.ql" + }, + "predicate-or-field-declaration": { + "begin": "(?x)(?:(?=(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))))(?!(?:(?:(?:\\b(?:_)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:and)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:any)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:as)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:asc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:avg)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:boolean)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:by)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:class)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:concat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:count)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:date)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:desc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:else)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:exists)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:extends)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:false)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:float)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:forall)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:forex)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:from)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:if)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:implies)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:import)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:in)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:instanceof)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:int)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:max)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:min)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:module)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:newtype)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:none)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:not)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:or)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:order)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:predicate)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:rank)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:result)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictconcat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictcount)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictsum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:string)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:sum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:super)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:then)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:this)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:true)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:unique)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_]))))))|(?:(?:(?:\\b(?:abstract)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:additional)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:bindingset)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:cached)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:default)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:deprecated)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:external)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:final)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:language)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:library)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:override)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:pragma)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:private)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:query)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:signature)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:transient)(?:(?!(?:[0-9A-Za-z_])))))))) | (?=(?:(?:(?:\\b(?:boolean)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:date)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:float)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:int)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:predicate)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:string)(?:(?!(?:[0-9A-Za-z_]))))))) | (?=(?:@[a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))))", + "end": "(?x)(?<=\\}|;)", + "name": "meta.block.predicate-or-field-declaration.ql", + "patterns": [ + { + "include": "#predicate-parameter-list" + }, + { + "include": "#predicate-body" + }, + { + "include": "#non-context-sensitive" + }, + { + "include": "#module-qualifier" + }, + { + "match": "(?x)(?:\\b [a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))(?=\\s*;)", + "name": "variable.field.ql" + }, + { + "match": "(?x)(?:\\b [a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))", + "name": "entity.name.function.ql" + }, + { + "match": "(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))|(?:@[a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))", + "name": "entity.name.type.ql" + } + ] + }, + "predicate-parameter-list": { + "name": "meta.block.predicate-parameter-list.ql", + "patterns": [ + { + "include": "#non-context-sensitive" + }, + { + "match": "(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))(?=\\s*(?:,|\\)))", + "name": "variable.parameter.ql" + }, + { + "include": "#module-qualifier" + }, + { + "match": "(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))|(?:@[a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))", + "name": "entity.name.type.ql" + }, + { + "match": "(?x)(?:\\b [a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))", + "name": "variable.parameter.ql" + } + ], + "begin": "(?x)((?:\\())", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#open-paren" + } + ] + } + }, + "end": "(?x)((?:\\)))", + "endCaptures": { + "1": { + "patterns": [ + { + "include": "#close-paren" + } + ] + } + } + }, + "expr-as-clause": { + "end": "(?x)(?:(?: (?<=(?:[0-9A-Za-z_])) (?!(?:[0-9A-Za-z_])) (?<!(?<!(?:[0-9A-Za-z_]))as)) | (?=\\s* (?!(?:// | /\\*) | (?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))) \\S) | (?=\\s* (?:(?:(?:\\b(?:_)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:and)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:any)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:as)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:asc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:avg)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:boolean)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:by)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:class)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:concat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:count)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:date)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:desc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:else)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:exists)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:extends)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:false)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:float)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:forall)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:forex)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:from)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:if)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:implies)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:import)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:in)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:instanceof)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:int)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:max)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:min)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:module)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:newtype)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:none)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:not)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:or)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:order)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:predicate)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:rank)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:result)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictconcat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictcount)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictsum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:string)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:sum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:super)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:then)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:this)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:true)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:unique)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_]))))))))", + "name": "meta.block.expr-as-clause.ql", + "patterns": [ + { + "include": "#non-context-sensitive" + }, + { + "match": "(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))", + "name": "variable.other.ql" + } + ], + "begin": "(?x)((?:\\b(?:as)(?:(?!(?:[0-9A-Za-z_])))))", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#as" + } + ] + } + } + }, + "predicate-body-contents": { + "patterns": [ + { + "include": "#expr-as-clause" + }, + { + "include": "#non-context-sensitive" + }, + { + "include": "#module-qualifier" + }, + { + "match": "(?x)(?:\\b [a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))\\s*(?:\\*|\\+)?\\s*(?=\\()", + "name": "entity.name.function.ql" + }, + { + "match": "(?x)(?:\\b [a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))", + "name": "variable.other.ql" + }, + { + "match": "(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))|(?:@[a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))", + "name": "entity.name.type.ql" + } + ] + }, + "predicate-body": { + "name": "meta.block.predicate-body.ql", + "patterns": [ + { + "include": "#predicate-body-contents" + } + ], + "begin": "(?x)((?:\\{))", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#open-brace" + } + ] + } + }, + "end": "(?x)((?:\\}))", + "endCaptures": { + "1": { + "patterns": [ + { + "include": "#close-brace" + } + ] + } + } + }, + "annotation": { + "patterns": [ + { + "include": "#bindingset-annotation" + }, + { + "include": "#language-annotation" + }, + { + "include": "#pragma-annotation" + }, + { + "include": "#annotation-keyword" + } + ] + }, + "bindingset-annotation": { + "end": "(?x)(?! (?:\\s | $ | (?:// | /\\*)) | \\[ ) | (?<=\\])", + "name": "meta.block.bindingset-annotation.ql", + "patterns": [ + { + "include": "#bindingset-annotation-body" + }, + { + "include": "#non-context-sensitive" + } + ], + "begin": "(?x)((?:\\b(?:bindingset)(?:(?!(?:[0-9A-Za-z_])))))", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#bindingset" + } + ] + } + } + }, + "bindingset-annotation-body": { + "name": "meta.block.bindingset-annotation-body.ql", + "patterns": [ + { + "include": "#non-context-sensitive" + }, + { + "match": "(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))", + "name": "variable.parameter.ql" + } + ], + "begin": "(?x)((?:\\[))", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#open-bracket" + } + ] + } + }, + "end": "(?x)((?:\\]))", + "endCaptures": { + "1": { + "patterns": [ + { + "include": "#close-bracket" + } + ] + } + } + }, + "language-annotation": { + "end": "(?x)(?! (?:\\s | $ | (?:// | /\\*)) | \\[ ) | (?<=\\])", + "name": "meta.block.language-annotation.ql", + "patterns": [ + { + "include": "#language-annotation-body" + }, + { + "include": "#non-context-sensitive" + } + ], + "begin": "(?x)((?:\\b(?:language)(?:(?!(?:[0-9A-Za-z_])))))", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#language" + } + ] + } + } + }, + "language-annotation-body": { + "name": "meta.block.language-annotation-body.ql", + "patterns": [ + { + "include": "#non-context-sensitive" + }, + { + "match": "(?x)\\b(?:monotonicAggregates)(?:(?!(?:[0-9A-Za-z_])))", + "name": "storage.modifier.ql" + } + ], + "begin": "(?x)((?:\\[))", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#open-bracket" + } + ] + } + }, + "end": "(?x)((?:\\]))", + "endCaptures": { + "1": { + "patterns": [ + { + "include": "#close-bracket" + } + ] + } + } + }, + "pragma-annotation": { + "end": "(?x)(?! (?:\\s | $ | (?:// | /\\*)) | \\[ ) | (?<=\\])", + "name": "meta.block.pragma-annotation.ql", + "patterns": [ + { + "include": "#pragma-annotation-body" + }, + { + "include": "#non-context-sensitive" + } + ], + "begin": "(?x)((?:\\b(?:pragma)(?:(?!(?:[0-9A-Za-z_])))))", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#pragma" + } + ] + } + } + }, + "pragma-annotation-body": { + "name": "meta.block.pragma-annotation-body.ql", + "patterns": [ + { + "match": "(?x)\\b(?:inline|noinline|nomagic|noopt)\\b", + "name": "storage.modifier.ql" + } + ], + "begin": "(?x)((?:\\[))", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#open-bracket" + } + ] + } + }, + "end": "(?x)((?:\\]))", + "endCaptures": { + "1": { + "patterns": [ + { + "include": "#close-bracket" + } + ] + } + } + }, + "newtype-declaration": { + "end": "(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))", + "endCaptures": { + "0": { + "name": "entity.name.type.ql" + } + }, + "name": "meta.block.newtype-declaration.ql", + "patterns": [ + { + "include": "#non-context-sensitive" + } + ], + "begin": "(?x)((?:\\b(?:newtype)(?:(?!(?:[0-9A-Za-z_])))))", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#newtype" + } + ] + } + } + }, + "newtype-branch-name-with-prefix": { + "begin": "(?x)\\= | (?:\\b(?:or)(?:(?!(?:[0-9A-Za-z_]))))", + "beginCaptures": { + "0": { + "patterns": [ + { + "include": "#or" + }, + { + "include": "#comparison-operator" + } + ] + } + }, + "end": "(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))", + "endCaptures": { + "0": { + "name": "entity.name.type.ql" + } + }, + "name": "meta.block.newtype-branch-name-with-prefix.ql", + "patterns": [ + { + "include": "#non-context-sensitive" + } + ] + }, + "class-declaration": { + "end": "(?x)(?<= \\} | ; )", + "name": "meta.block.class-declaration.ql", + "patterns": [ + { + "include": "#class-body" + }, + { + "include": "#extends-clause" + }, + { + "include": "#non-context-sensitive" + }, + { + "match": "(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))", + "name": "entity.name.type.class.ql" + } + ], + "begin": "(?x)((?:\\b(?:class)(?:(?!(?:[0-9A-Za-z_])))))", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#class" + } + ] + } + } + }, + "extends-clause": { + "end": "(?x)(?= \\{ )", + "name": "meta.block.extends-clause.ql", + "patterns": [ + { + "include": "#non-context-sensitive" + }, + { + "match": "(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))|(?:@[a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))", + "name": "entity.name.type.ql" + } + ], + "begin": "(?x)((?:\\b(?:extends)(?:(?!(?:[0-9A-Za-z_])))))", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#extends" + } + ] + } + } + }, + "class-body": { + "name": "meta.block.class-body.ql", + "patterns": [ + { + "include": "#class-member" + } + ], + "begin": "(?x)((?:\\{))", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#open-brace" + } + ] + } + }, + "end": "(?x)((?:\\}))", + "endCaptures": { + "1": { + "patterns": [ + { + "include": "#close-brace" + } + ] + } + } + }, + "class-member": { + "patterns": [ + { + "include": "#predicate-or-field-declaration" + }, + { + "include": "#annotation" + }, + { + "include": "#non-context-sensitive" + } + ] + }, + "select-clause": { + "begin": "(?x)(?=(?:\\b(?:from)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_])))))", + "end": "(?x)(?!(?:\\b(?:from)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_])))))", + "name": "meta.block.select-clause.ql", + "patterns": [ + { + "include": "#from-section" + }, + { + "include": "#where-section" + }, + { + "include": "#select-section" + } + ] + }, + "from-section": { + "end": "(?x)(?= (?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_])))) | (?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_])))) )", + "name": "meta.block.from-section.ql", + "patterns": [ + { + "include": "#non-context-sensitive" + }, + { + "match": "(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))(?=\\s*(?:,|(?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_]))))|$))", + "name": "variable.parameter.ql" + }, + { + "include": "#module-qualifier" + }, + { + "match": "(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))|(?:@[a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))", + "name": "entity.name.type.ql" + }, + { + "match": "(?x)(?:\\b [a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))", + "name": "variable.parameter.ql" + } + ], + "begin": "(?x)((?:\\b(?:from)(?:(?!(?:[0-9A-Za-z_])))))", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#from" + } + ] + } + } + }, + "where-section": { + "end": "(?x)(?=(?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_])))))", + "name": "meta.block.where-section.ql", + "patterns": [ + { + "include": "#predicate-body-contents" + } + ], + "begin": "(?x)((?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_])))))", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#where" + } + ] + } + } + }, + "select-section": { + "end": "(?x)(?=\\n)", + "name": "meta.block.select-section.ql", + "patterns": [ + { + "include": "#predicate-body-contents" + }, + { + "include": "#select-as-clause" + } + ], + "begin": "(?x)((?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_])))))", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#select" + } + ] + } + } + }, + "select-as-clause": { + "end": "(?x)(?<=(?:[0-9A-Za-z_])(?:(?!(?:[0-9A-Za-z_]))))", + "match": "(?x)meta.block.select-as-clause.ql", + "patterns": [ + { + "include": "#non-context-sensitive" + }, + { + "match": "(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))", + "name": "variable.other.ql" + } + ], + "begin": "(?x)((?:\\b(?:as)(?:(?!(?:[0-9A-Za-z_])))))", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#as" + } + ] + } + } + }, + "literal": { + "patterns": [ + { + "include": "#float-literal" + }, + { + "include": "#int-literal" + }, + { + "include": "#string-literal" + } + ] + }, + "int-literal": { + "match": "(?x)-?[0-9]+(?![0-9])", + "name": "constant.numeric.decimal.ql" + }, + "float-literal": { + "match": "(?x)-?[0-9]+\\.[0-9]+(?![0-9])", + "name": "constant.numeric.decimal.ql" + }, + "string-literal": { + "name": "string.quoted.double.ql", + "begin": "(?x)\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.ql" + } + }, + "end": "(?x)(\") | ((?:[^\\\\\\n])$)", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.ql" + }, + "2": { + "name": "invalid.illegal.newline.ql" + } + }, + "patterns": [ + { + "include": "#string-escape" + } + ] + }, + "string-escape": { + "match": "(?x)\\\\[\"\\\\nrt]", + "name": "constant.character.escape.ql" + } + } +} diff --git a/docs/shiki/languages/coffee.tmLanguage.json b/docs/shiki/languages/coffee.tmLanguage.json new file mode 100644 index 00000000..4c5589cd --- /dev/null +++ b/docs/shiki/languages/coffee.tmLanguage.json @@ -0,0 +1,1316 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/atom/language-coffee-script/blob/master/grammars/coffeescript.cson", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/atom/language-coffee-script/commit/0f6db9143663e18b1ad00667820f46747dba495e", + "name": "coffee", + "scopeName": "source.coffee", + "patterns": [ + { + "include": "#jsx" + }, + { + "match": "(new)\\s+(?:(?:(class)\\s+(\\w+(?:\\.\\w*)*)?)|(\\w+(?:\\.\\w*)*))", + "name": "meta.class.instance.constructor.coffee", + "captures": { + "1": { + "name": "keyword.operator.new.coffee" + }, + "2": { + "name": "storage.type.class.coffee" + }, + "3": { + "name": "entity.name.type.instance.coffee" + }, + "4": { + "name": "entity.name.type.instance.coffee" + } + } + }, + { + "begin": "'''", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.coffee" + } + }, + "end": "'''", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.coffee" + } + }, + "name": "string.quoted.single.heredoc.coffee", + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.escape.backslash.coffee" + } + }, + "match": "(\\\\).", + "name": "constant.character.escape.backslash.coffee" + } + ] + }, + { + "begin": "\"\"\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.coffee" + } + }, + "end": "\"\"\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.coffee" + } + }, + "name": "string.quoted.double.heredoc.coffee", + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.escape.backslash.coffee" + } + }, + "match": "(\\\\).", + "name": "constant.character.escape.backslash.coffee" + }, + { + "include": "#interpolated_coffee" + } + ] + }, + { + "match": "(`)(.*)(`)", + "name": "string.quoted.script.coffee", + "captures": { + "1": { + "name": "punctuation.definition.string.begin.coffee" + }, + "2": { + "name": "source.js.embedded.coffee", + "patterns": [ + { + "include": "source.js" + } + ] + }, + "3": { + "name": "punctuation.definition.string.end.coffee" + } + } + }, + { + "begin": "(?<!#)###(?!#)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.coffee" + } + }, + "end": "###", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.coffee" + } + }, + "name": "comment.block.coffee", + "patterns": [ + { + "match": "(?<=^|\\s)@\\w*(?=\\s)", + "name": "storage.type.annotation.coffee" + } + ] + }, + { + "begin": "#", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.coffee" + } + }, + "end": "$", + "name": "comment.line.number-sign.coffee" + }, + { + "begin": "///", + "end": "(///)[gimuy]*", + "name": "string.regexp.multiline.coffee", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.coffee" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.coffee" + } + }, + "patterns": [ + { + "include": "#heregexp" + } + ] + }, + { + "begin": "(?<![\\w$])(/)(?=(?![/*+?])(.+)(/)[gimuy]*(?!\\s*[\\w$/(]))", + "beginCaptures": { + "1": { + "name": "punctuation.definition.string.begin.coffee" + } + }, + "end": "(/)[gimuy]*(?!\\s*[\\w$/(])", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.coffee" + } + }, + "name": "string.regexp.coffee", + "patterns": [ + { + "include": "source.js.regexp" + } + ] + }, + { + "match": "\\b(?<![\\.\\$])(break|by|catch|continue|else|finally|for|in|of|if|return|switch|then|throw|try|unless|when|while|until|loop|do|export|import|default|from|as|yield|async|await|(?<=for)\\s+own)(?!\\s*:)\\b", + "name": "keyword.control.coffee" + }, + { + "match": "\\b(?<![\\.\\$])(delete|instanceof|new|typeof)(?!\\s*:)\\b", + "name": "keyword.operator.$1.coffee" + }, + { + "match": "\\b(?<![\\.\\$])(case|function|var|void|with|const|let|enum|native|__hasProp|__extends|__slice|__bind|__indexOf|implements|interface|package|private|protected|public|static)(?!\\s*:)\\b", + "name": "keyword.reserved.coffee" + }, + { + "begin": "(?x)\n(?<=\\s|^)((@)?[a-zA-Z_$][\\w$]*)\n\\s*([:=])\\s*\n(?=(\\([^\\(\\)]*\\)\\s*)?[=-]>)", + "beginCaptures": { + "1": { + "name": "entity.name.function.coffee" + }, + "2": { + "name": "variable.other.readwrite.instance.coffee" + }, + "3": { + "name": "keyword.operator.assignment.coffee" + } + }, + "end": "[=-]>", + "endCaptures": { + "0": { + "name": "storage.type.function.coffee" + } + }, + "name": "meta.function.coffee", + "patterns": [ + { + "include": "#function_params" + } + ] + }, + { + "begin": "(?x)\n(?<=\\s|^)(?:((')([^']*?)('))|((\")([^\"]*?)(\")))\n\\s*([:=])\\s*\n(?=(\\([^\\(\\)]*\\)\\s*)?[=-]>)", + "beginCaptures": { + "1": { + "name": "string.quoted.single.coffee" + }, + "2": { + "name": "punctuation.definition.string.begin.coffee" + }, + "3": { + "name": "entity.name.function.coffee" + }, + "4": { + "name": "punctuation.definition.string.end.coffee" + }, + "5": { + "name": "string.quoted.double.coffee" + }, + "6": { + "name": "punctuation.definition.string.begin.coffee" + }, + "7": { + "name": "entity.name.function.coffee" + }, + "8": { + "name": "punctuation.definition.string.end.coffee" + }, + "9": { + "name": "keyword.operator.assignment.coffee" + } + }, + "end": "[=-]>", + "endCaptures": { + "0": { + "name": "storage.type.function.coffee" + } + }, + "name": "meta.function.coffee", + "patterns": [ + { + "include": "#function_params" + } + ] + }, + { + "begin": "(?=(\\([^\\(\\)]*\\)\\s*)?[=-]>)", + "end": "[=-]>", + "endCaptures": { + "0": { + "name": "storage.type.function.coffee" + } + }, + "name": "meta.function.inline.coffee", + "patterns": [ + { + "include": "#function_params" + } + ] + }, + { + "begin": "(?<=\\s|^)({)(?=[^'\"#]+?}[\\s\\]}]*=)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.destructuring.begin.bracket.curly.coffee" + } + }, + "end": "}", + "endCaptures": { + "0": { + "name": "punctuation.definition.destructuring.end.bracket.curly.coffee" + } + }, + "name": "meta.variable.assignment.destructured.object.coffee", + "patterns": [ + { + "include": "$self" + }, + { + "match": "[a-zA-Z$_]\\w*", + "name": "variable.assignment.coffee" + } + ] + }, + { + "begin": "(?<=\\s|^)(\\[)(?=[^'\"#]+?\\][\\s\\]}]*=)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.destructuring.begin.bracket.square.coffee" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.destructuring.end.bracket.square.coffee" + } + }, + "name": "meta.variable.assignment.destructured.array.coffee", + "patterns": [ + { + "include": "$self" + }, + { + "match": "[a-zA-Z$_]\\w*", + "name": "variable.assignment.coffee" + } + ] + }, + { + "match": "\\b(?<!\\.|::)(true|on|yes)(?!\\s*[:=][^=])\\b", + "name": "constant.language.boolean.true.coffee" + }, + { + "match": "\\b(?<!\\.|::)(false|off|no)(?!\\s*[:=][^=])\\b", + "name": "constant.language.boolean.false.coffee" + }, + { + "match": "\\b(?<!\\.|::)null(?!\\s*[:=][^=])\\b", + "name": "constant.language.null.coffee" + }, + { + "match": "\\b(?<!\\.|::)extends(?!\\s*[:=])\\b", + "name": "variable.language.coffee" + }, + { + "match": "(?<!\\.)\\b(?<!\\$)(super|this|arguments)(?!\\s*[:=][^=]|\\$)\\b", + "name": "variable.language.$1.coffee" + }, + { + "captures": { + "1": { + "name": "storage.type.class.coffee" + }, + "2": { + "name": "keyword.control.inheritance.coffee" + }, + "3": { + "name": "entity.other.inherited-class.coffee" + } + }, + "match": "(?<=\\s|^|\\[|\\()(class)\\s+(extends)\\s+(@?[a-zA-Z\\$\\._][\\w\\.]*)", + "name": "meta.class.coffee" + }, + { + "captures": { + "1": { + "name": "storage.type.class.coffee" + }, + "2": { + "name": "entity.name.type.class.coffee" + }, + "3": { + "name": "keyword.control.inheritance.coffee" + }, + "4": { + "name": "entity.other.inherited-class.coffee" + } + }, + "match": "(?<=\\s|^|\\[|\\()(class\\b)\\s+(@?[a-zA-Z\\$_][\\w\\.]*)?(?:\\s+(extends)\\s+(@?[a-zA-Z\\$\\._][\\w\\.]*))?", + "name": "meta.class.coffee" + }, + { + "match": "\\b(debugger|\\\\)\\b", + "name": "keyword.other.coffee" + }, + { + "match": "\\b(Array|ArrayBuffer|Blob|Boolean|Date|document|Function|Int(8|16|32|64)Array|Math|Map|Number|Object|Proxy|RegExp|Set|String|WeakMap|window|Uint(8|16|32|64)Array|XMLHttpRequest)\\b", + "name": "support.class.coffee" + }, + { + "match": "\\b(console)\\b", + "name": "entity.name.type.object.coffee" + }, + { + "match": "((?<=console\\.)(debug|warn|info|log|error|time|timeEnd|assert))\\b", + "name": "support.function.console.coffee" + }, + { + "match": "((?<=\\.)(apply|call|concat|every|filter|forEach|from|hasOwnProperty|indexOf|isPrototypeOf|join|lastIndexOf|map|of|pop|propertyIsEnumerable|push|reduce(Right)?|reverse|shift|slice|some|sort|splice|to(Locale)?String|unshift|valueOf))\\b", + "name": "support.function.method.array.coffee" + }, + { + "match": "((?<=Array\\.)(isArray))\\b", + "name": "support.function.static.array.coffee" + }, + { + "match": "((?<=Object\\.)(create|definePropert(ies|y)|freeze|getOwnProperty(Descriptors?|Names)|getProperty(Descriptor|Names)|getPrototypeOf|is(Extensible|Frozen|Sealed)?|isnt|keys|preventExtensions|seal))\\b", + "name": "support.function.static.object.coffee" + }, + { + "match": "((?<=Math\\.)(abs|acos|acosh|asin|asinh|atan|atan2|atanh|ceil|cos|cosh|exp|expm1|floor|hypot|log|log10|log1p|log2|max|min|pow|random|round|sign|sin|sinh|sqrt|tan|tanh|trunc))\\b", + "name": "support.function.static.math.coffee" + }, + { + "match": "((?<=Number\\.)(is(Finite|Integer|NaN)|toInteger))\\b", + "name": "support.function.static.number.coffee" + }, + { + "match": "(?<!\\.)\\b(module|exports|__filename|__dirname|global|process)(?!\\s*:)\\b", + "name": "support.variable.coffee" + }, + { + "match": "\\b(Infinity|NaN|undefined)\\b", + "name": "constant.language.coffee" + }, + { + "include": "#operators" + }, + { + "include": "#method_calls" + }, + { + "include": "#function_calls" + }, + { + "include": "#numbers" + }, + { + "include": "#objects" + }, + { + "include": "#properties" + }, + { + "match": "::", + "name": "keyword.operator.prototype.coffee" + }, + { + "match": "(?<!\\$)\\b[0-9]+[\\w$]*", + "name": "invalid.illegal.identifier.coffee" + }, + { + "match": ";", + "name": "punctuation.terminator.statement.coffee" + }, + { + "match": ",", + "name": "punctuation.separator.delimiter.coffee" + }, + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "meta.brace.curly.coffee" + } + }, + "end": "}", + "endCaptures": { + "0": { + "name": "meta.brace.curly.coffee" + } + }, + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "begin": "\\[", + "beginCaptures": { + "0": { + "name": "punctuation.definition.array.begin.bracket.square.coffee" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.array.end.bracket.square.coffee" + } + }, + "patterns": [ + { + "match": "(?<!\\.)\\.{3}", + "name": "keyword.operator.slice.exclusive.coffee" + }, + { + "match": "(?<!\\.)\\.{2}", + "name": "keyword.operator.slice.inclusive.coffee" + }, + { + "include": "$self" + } + ] + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "meta.brace.round.coffee" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "meta.brace.round.coffee" + } + }, + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "include": "#instance_variable" + }, + { + "include": "#single_quoted_string" + }, + { + "include": "#double_quoted_string" + } + ], + "repository": { + "arguments": { + "patterns": [ + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.arguments.begin.bracket.round.coffee" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.end.bracket.round.coffee" + } + }, + "name": "meta.arguments.coffee", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "begin": "(?=(@|@?[\\w$]+|[=-]>|\\-\\d|\\[|{|\"|'))", + "end": "(?=\\s*(?<![\\w$])(of|in|then|is|isnt|and|or|for|else|when|if|unless|by|instanceof)(?![\\w$]))|(?=\\s*(}|\\]|\\)|#|$))", + "name": "meta.arguments.coffee", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + "double_quoted_string": { + "patterns": [ + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.coffee" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.coffee" + } + }, + "name": "string.quoted.double.coffee", + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.escape.backslash.coffee" + } + }, + "match": "(\\\\)(x[0-9A-Fa-f]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)", + "name": "constant.character.escape.backslash.coffee" + }, + { + "include": "#interpolated_coffee" + } + ] + } + ] + }, + "function_calls": { + "patterns": [ + { + "begin": "(@)?([\\w$]+)(?=\\()", + "beginCaptures": { + "1": { + "name": "variable.other.readwrite.instance.coffee" + }, + "2": { + "patterns": [ + { + "include": "#function_names" + } + ] + } + }, + "end": "(?<=\\))", + "name": "meta.function-call.coffee", + "patterns": [ + { + "include": "#arguments" + } + ] + }, + { + "begin": "(?x)\n(@)?([\\w$]+)\n\\s*\n(?=\\s+(?!(?<![\\w$])(of|in|then|is|isnt|and|or|for|else|when|if|unless|by|instanceof)(?![\\w$]))(?=(@?[\\w$]+|[=-]>|\\-\\d|\\[|{|\"|')))", + "beginCaptures": { + "1": { + "name": "variable.other.readwrite.instance.coffee" + }, + "2": { + "patterns": [ + { + "include": "#function_names" + } + ] + } + }, + "end": "(?=\\s*(?<![\\w$])(of|in|then|is|isnt|and|or|for|else|when|if|unless|by|instanceof)(?![\\w$]))|(?=\\s*(}|\\]|\\)|#|$))", + "name": "meta.function-call.coffee", + "patterns": [ + { + "include": "#arguments" + } + ] + } + ] + }, + "function_names": { + "patterns": [ + { + "match": "(?x)\n\\b(isNaN|isFinite|eval|uneval|parseInt|parseFloat|decodeURI|\ndecodeURIComponent|encodeURI|encodeURIComponent|escape|unescape|\nrequire|set(Interval|Timeout)|clear(Interval|Timeout))\\b", + "name": "support.function.coffee" + }, + { + "match": "[a-zA-Z_$][\\w$]*", + "name": "entity.name.function.coffee" + }, + { + "match": "\\d[\\w$]*", + "name": "invalid.illegal.identifier.coffee" + } + ] + }, + "function_params": { + "patterns": [ + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.parameters.begin.bracket.round.coffee" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.parameters.end.bracket.round.coffee" + } + }, + "name": "meta.parameters.coffee", + "patterns": [ + { + "match": "([a-zA-Z_$][\\w$]*)(\\.\\.\\.)?", + "captures": { + "1": { + "name": "variable.parameter.function.coffee" + }, + "2": { + "name": "keyword.operator.splat.coffee" + } + } + }, + { + "match": "(@(?:[a-zA-Z_$][\\w$]*)?)(\\.\\.\\.)?", + "captures": { + "1": { + "name": "variable.parameter.function.readwrite.instance.coffee" + }, + "2": { + "name": "keyword.operator.splat.coffee" + } + } + }, + { + "include": "$self" + } + ] + } + ] + }, + "embedded_comment": { + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.comment.coffee" + } + }, + "match": "(?<!\\\\)(#).*$\\n?", + "name": "comment.line.number-sign.coffee" + } + ] + }, + "instance_variable": { + "patterns": [ + { + "match": "(@)([a-zA-Z_\\$]\\w*)?", + "name": "variable.other.readwrite.instance.coffee" + } + ] + }, + "interpolated_coffee": { + "patterns": [ + { + "begin": "\\#\\{", + "captures": { + "0": { + "name": "punctuation.section.embedded.coffee" + } + }, + "end": "\\}", + "name": "source.coffee.embedded.source", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + "method_calls": { + "patterns": [ + { + "begin": "(?:(\\.)|(::))\\s*([\\w$]+)\\s*(?=\\()", + "beginCaptures": { + "1": { + "name": "punctuation.separator.method.period.coffee" + }, + "2": { + "name": "keyword.operator.prototype.coffee" + }, + "3": { + "patterns": [ + { + "include": "#method_names" + } + ] + } + }, + "end": "(?<=\\))", + "name": "meta.method-call.coffee", + "patterns": [ + { + "include": "#arguments" + } + ] + }, + { + "begin": "(?:(\\.)|(::))\\s*([\\w$]+)\\s*(?=\\s+(?!(?<![\\w$])(of|in|then|is|isnt|and|or|for|else|when|if|unless|by|instanceof)(?![\\w$]))(?=(@|@?[\\w$]+|[=-]>|\\-\\d|\\[|{|\"|')))", + "beginCaptures": { + "1": { + "name": "punctuation.separator.method.period.coffee" + }, + "2": { + "name": "keyword.operator.prototype.coffee" + }, + "3": { + "patterns": [ + { + "include": "#method_names" + } + ] + } + }, + "end": "(?=\\s*(?<![\\w$])(of|in|then|is|isnt|and|or|for|else|when|if|unless|by|instanceof)(?![\\w$]))|(?=\\s*(}|\\]|\\)|#|$))", + "name": "meta.method-call.coffee", + "patterns": [ + { + "include": "#arguments" + } + ] + } + ] + }, + "method_names": { + "patterns": [ + { + "match": "(?x)\n\\bon(Rowsinserted|Rowsdelete|Rowenter|Rowexit|Resize|Resizestart|Resizeend|Reset|\nReadystatechange|Mouseout|Mouseover|Mousedown|Mouseup|Mousemove|\nBefore(cut|deactivate|unload|update|paste|print|editfocus|activate)|\nBlur|Scrolltop|Submit|Select|Selectstart|Selectionchange|Hover|Help|\nChange|Contextmenu|Controlselect|Cut|Cellchange|Clock|Close|Deactivate|\nDatasetchanged|Datasetcomplete|Dataavailable|Drop|Drag|Dragstart|Dragover|\nDragdrop|Dragenter|Dragend|Dragleave|Dblclick|Unload|Paste|Propertychange|Error|\nErrorupdate|Keydown|Keyup|Keypress|Focus|Load|Activate|Afterupdate|Afterprint|Abort)\\b", + "name": "support.function.event-handler.coffee" + }, + { + "match": "(?x)\n\\b(shift|showModelessDialog|showModalDialog|showHelp|scroll|scrollX|scrollByPages|\nscrollByLines|scrollY|scrollTo|stop|strike|sizeToContent|sidebar|signText|sort|\nsup|sub|substr|substring|splice|split|send|set(Milliseconds|Seconds|Minutes|Hours|\nMonth|Year|FullYear|Date|UTC(Milliseconds|Seconds|Minutes|Hours|Month|FullYear|Date)|\nTime|Hotkeys|Cursor|ZOptions|Active|Resizable|RequestHeader)|search|slice|\nsavePreferences|small|home|handleEvent|navigate|char|charCodeAt|charAt|concat|\ncontextual|confirm|compile|clear|captureEvents|call|createStyleSheet|createPopup|\ncreateEventObject|to(GMTString|UTCString|String|Source|UpperCase|LowerCase|LocaleString)|\ntest|taint|taintEnabled|indexOf|italics|disableExternalCapture|dump|detachEvent|unshift|\nuntaint|unwatch|updateCommands|join|javaEnabled|pop|push|plugins.refresh|paddings|parse|\nprint|prompt|preference|enableExternalCapture|exec|execScript|valueOf|UTC|find|file|\nfileModifiedDate|fileSize|fileCreatedDate|fileUpdatedDate|fixed|fontsize|fontcolor|\nforward|fromCharCode|watch|link|load|lastIndexOf|anchor|attachEvent|atob|apply|alert|\nabort|routeEvents|resize|resizeBy|resizeTo|recalc|returnValue|replace|reverse|reload|\nreleaseCapture|releaseEvents|go|get(Milliseconds|Seconds|Minutes|Hours|Month|Day|Year|FullYear|\nTime|Date|TimezoneOffset|UTC(Milliseconds|Seconds|Minutes|Hours|Day|Month|FullYear|Date)|\nAttention|Selection|ResponseHeader|AllResponseHeaders)|moveBy|moveBelow|moveTo|\nmoveToAbsolute|moveAbove|mergeAttributes|match|margins|btoa|big|bold|borderWidths|blink|back)\\b", + "name": "support.function.coffee" + }, + { + "match": "(?x)\n\\b(acceptNode|add|addEventListener|addTextTrack|adoptNode|after|animate|append|\nappendChild|appendData|before|blur|canPlayType|captureStream|\ncaretPositionFromPoint|caretRangeFromPoint|checkValidity|clear|click|\ncloneContents|cloneNode|cloneRange|close|closest|collapse|\ncompareBoundaryPoints|compareDocumentPosition|comparePoint|contains|\nconvertPointFromNode|convertQuadFromNode|convertRectFromNode|createAttribute|\ncreateAttributeNS|createCaption|createCDATASection|createComment|\ncreateContextualFragment|createDocument|createDocumentFragment|\ncreateDocumentType|createElement|createElementNS|createEntityReference|\ncreateEvent|createExpression|createHTMLDocument|createNodeIterator|\ncreateNSResolver|createProcessingInstruction|createRange|createShadowRoot|\ncreateTBody|createTextNode|createTFoot|createTHead|createTreeWalker|delete|\ndeleteCaption|deleteCell|deleteContents|deleteData|deleteRow|deleteTFoot|\ndeleteTHead|detach|disconnect|dispatchEvent|elementFromPoint|elementsFromPoint|\nenableStyleSheetsForSet|entries|evaluate|execCommand|exitFullscreen|\nexitPointerLock|expand|extractContents|fastSeek|firstChild|focus|forEach|get|\ngetAll|getAnimations|getAttribute|getAttributeNames|getAttributeNode|\ngetAttributeNodeNS|getAttributeNS|getBoundingClientRect|getBoxQuads|\ngetClientRects|getContext|getDestinationInsertionPoints|getElementById|\ngetElementsByClassName|getElementsByName|getElementsByTagName|\ngetElementsByTagNameNS|getItem|getNamedItem|getSelection|getStartDate|\ngetVideoPlaybackQuality|has|hasAttribute|hasAttributeNS|hasAttributes|\nhasChildNodes|hasFeature|hasFocus|importNode|initEvent|insertAdjacentElement|\ninsertAdjacentHTML|insertAdjacentText|insertBefore|insertCell|insertData|\ninsertNode|insertRow|intersectsNode|isDefaultNamespace|isEqualNode|\nisPointInRange|isSameNode|item|key|keys|lastChild|load|lookupNamespaceURI|\nlookupPrefix|matches|move|moveAttribute|moveAttributeNode|moveChild|\nmoveNamedItem|namedItem|nextNode|nextSibling|normalize|observe|open|\nparentNode|pause|play|postMessage|prepend|preventDefault|previousNode|\npreviousSibling|probablySupportsContext|queryCommandEnabled|\nqueryCommandIndeterm|queryCommandState|queryCommandSupported|queryCommandValue|\nquerySelector|querySelectorAll|registerContentHandler|registerElement|\nregisterProtocolHandler|releaseCapture|releaseEvents|remove|removeAttribute|\nremoveAttributeNode|removeAttributeNS|removeChild|removeEventListener|\nremoveItem|replace|replaceChild|replaceData|replaceWith|reportValidity|\nrequestFullscreen|requestPointerLock|reset|scroll|scrollBy|scrollIntoView|\nscrollTo|seekToNextFrame|select|selectNode|selectNodeContents|set|setAttribute|\nsetAttributeNode|setAttributeNodeNS|setAttributeNS|setCapture|\nsetCustomValidity|setEnd|setEndAfter|setEndBefore|setItem|setNamedItem|\nsetRangeText|setSelectionRange|setSinkId|setStart|setStartAfter|setStartBefore|\nslice|splitText|stepDown|stepUp|stopImmediatePropagation|stopPropagation|\nsubmit|substringData|supports|surroundContents|takeRecords|terminate|toBlob|\ntoDataURL|toggle|toString|values|write|writeln)\\b", + "name": "support.function.dom.coffee" + }, + { + "match": "[a-zA-Z_$][\\w$]*", + "name": "entity.name.function.coffee" + }, + { + "match": "\\d[\\w$]*", + "name": "invalid.illegal.identifier.coffee" + } + ] + }, + "numbers": { + "patterns": [ + { + "match": "\\b(?<!\\$)0(x|X)[0-9a-fA-F]+\\b(?!\\$)", + "name": "constant.numeric.hex.coffee" + }, + { + "match": "\\b(?<!\\$)0(b|B)[01]+\\b(?!\\$)", + "name": "constant.numeric.binary.coffee" + }, + { + "match": "\\b(?<!\\$)0(o|O)?[0-7]+\\b(?!\\$)", + "name": "constant.numeric.octal.coffee" + }, + { + "match": "(?x)\n(?<!\\$)(?:\n (?:\\b[0-9]+(\\.)[0-9]+[eE][+-]?[0-9]+\\b)| # 1.1E+3\n (?:\\b[0-9]+(\\.)[eE][+-]?[0-9]+\\b)| # 1.E+3\n (?:\\B(\\.)[0-9]+[eE][+-]?[0-9]+\\b)| # .1E+3\n (?:\\b[0-9]+[eE][+-]?[0-9]+\\b)| # 1E+3\n (?:\\b[0-9]+(\\.)[0-9]+\\b)| # 1.1\n (?:\\b[0-9]+(?=\\.{2,3}))| # 1 followed by a slice\n (?:\\b[0-9]+(\\.)\\B)| # 1.\n (?:\\B(\\.)[0-9]+\\b)| # .1\n (?:\\b[0-9]+\\b(?!\\.)) # 1\n)(?!\\$)", + "captures": { + "0": { + "name": "constant.numeric.decimal.coffee" + }, + "1": { + "name": "punctuation.separator.decimal.period.coffee" + }, + "2": { + "name": "punctuation.separator.decimal.period.coffee" + }, + "3": { + "name": "punctuation.separator.decimal.period.coffee" + }, + "4": { + "name": "punctuation.separator.decimal.period.coffee" + }, + "5": { + "name": "punctuation.separator.decimal.period.coffee" + }, + "6": { + "name": "punctuation.separator.decimal.period.coffee" + } + } + } + ] + }, + "objects": { + "patterns": [ + { + "match": "[A-Z][A-Z0-9_$]*(?=\\s*\\??(\\.\\s*[a-zA-Z_$]\\w*|::))", + "name": "constant.other.object.coffee" + }, + { + "match": "[a-zA-Z_$][\\w$]*(?=\\s*\\??(\\.\\s*[a-zA-Z_$]\\w*|::))", + "name": "variable.other.object.coffee" + } + ] + }, + "operators": { + "patterns": [ + { + "match": "(?:([a-zA-Z$_][\\w$]*)?\\s+|(?<![\\w$]))(and=|or=)", + "captures": { + "1": { + "name": "variable.assignment.coffee" + }, + "2": { + "name": "keyword.operator.assignment.compound.coffee" + } + } + }, + { + "match": "([a-zA-Z$_][\\w$]*)?\\s*(%=|\\+=|-=|\\*=|&&=|\\|\\|=|\\?=|(?<!\\()/=)", + "captures": { + "1": { + "name": "variable.assignment.coffee" + }, + "2": { + "name": "keyword.operator.assignment.compound.coffee" + } + } + }, + { + "match": "([a-zA-Z$_][\\w$]*)?\\s*(&=|\\^=|<<=|>>=|>>>=|\\|=)", + "captures": { + "1": { + "name": "variable.assignment.coffee" + }, + "2": { + "name": "keyword.operator.assignment.compound.bitwise.coffee" + } + } + }, + { + "match": "<<|>>>|>>", + "name": "keyword.operator.bitwise.shift.coffee" + }, + { + "match": "!=|<=|>=|==|<|>", + "name": "keyword.operator.comparison.coffee" + }, + { + "match": "&&|!|\\|\\|", + "name": "keyword.operator.logical.coffee" + }, + { + "match": "&|\\||\\^|~", + "name": "keyword.operator.bitwise.coffee" + }, + { + "match": "([a-zA-Z$_][\\w$]*)?\\s*(=|:(?!:))(?![>=])", + "captures": { + "1": { + "name": "variable.assignment.coffee" + }, + "2": { + "name": "keyword.operator.assignment.coffee" + } + } + }, + { + "match": "--", + "name": "keyword.operator.decrement.coffee" + }, + { + "match": "\\+\\+", + "name": "keyword.operator.increment.coffee" + }, + { + "match": "\\.\\.\\.", + "name": "keyword.operator.splat.coffee" + }, + { + "match": "\\?", + "name": "keyword.operator.existential.coffee" + }, + { + "match": "%|\\*|/|-|\\+", + "name": "keyword.operator.coffee" + }, + { + "match": "(?x)\n\\b(?<![\\.\\$])\n(?:\n (and|or|not) # logical\n |\n (is|isnt) # comparison\n)\n(?!\\s*:)\\b", + "captures": { + "1": { + "name": "keyword.operator.logical.coffee" + }, + "2": { + "name": "keyword.operator.comparison.coffee" + } + } + } + ] + }, + "properties": { + "patterns": [ + { + "match": "(?:(\\.)|(::))\\s*([A-Z][A-Z0-9_$]*\\b\\$*)(?=\\s*\\??(\\.\\s*[a-zA-Z_$]\\w*|::))", + "captures": { + "1": { + "name": "punctuation.separator.property.period.coffee" + }, + "2": { + "name": "keyword.operator.prototype.coffee" + }, + "3": { + "name": "constant.other.object.property.coffee" + } + } + }, + { + "match": "(?:(\\.)|(::))\\s*(\\$*[a-zA-Z_$][\\w$]*)(?=\\s*\\??(\\.\\s*[a-zA-Z_$]\\w*|::))", + "captures": { + "1": { + "name": "punctuation.separator.property.period.coffee" + }, + "2": { + "name": "keyword.operator.prototype.coffee" + }, + "3": { + "name": "variable.other.object.property.coffee" + } + } + }, + { + "match": "(?:(\\.)|(::))\\s*([A-Z][A-Z0-9_$]*\\b\\$*)", + "captures": { + "1": { + "name": "punctuation.separator.property.period.coffee" + }, + "2": { + "name": "keyword.operator.prototype.coffee" + }, + "3": { + "name": "constant.other.property.coffee" + } + } + }, + { + "match": "(?:(\\.)|(::))\\s*(\\$*[a-zA-Z_$][\\w$]*)", + "captures": { + "1": { + "name": "punctuation.separator.property.period.coffee" + }, + "2": { + "name": "keyword.operator.prototype.coffee" + }, + "3": { + "name": "variable.other.property.coffee" + } + } + }, + { + "match": "(?:(\\.)|(::))\\s*([0-9][\\w$]*)", + "captures": { + "1": { + "name": "punctuation.separator.property.period.coffee" + }, + "2": { + "name": "keyword.operator.prototype.coffee" + }, + "3": { + "name": "invalid.illegal.identifier.coffee" + } + } + } + ] + }, + "single_quoted_string": { + "patterns": [ + { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.coffee" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.coffee" + } + }, + "name": "string.quoted.single.coffee", + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.escape.backslash.coffee" + } + }, + "match": "(\\\\)(x[0-9A-Fa-f]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)", + "name": "constant.character.escape.backslash.coffee" + } + ] + } + ] + }, + "regex-character-class": { + "patterns": [ + { + "match": "\\\\[wWsSdD]|\\.", + "name": "constant.character.character-class.regexp" + }, + { + "match": "\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})", + "name": "constant.character.numeric.regexp" + }, + { + "match": "\\\\c[A-Z]", + "name": "constant.character.control.regexp" + }, + { + "match": "\\\\.", + "name": "constant.character.escape.backslash.regexp" + } + ] + }, + "heregexp": { + "patterns": [ + { + "match": "\\\\[bB]|\\^|\\$", + "name": "keyword.control.anchor.regexp" + }, + { + "match": "\\\\[1-9]\\d*", + "name": "keyword.other.back-reference.regexp" + }, + { + "match": "[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??", + "name": "keyword.operator.quantifier.regexp" + }, + { + "match": "\\|", + "name": "keyword.operator.or.regexp" + }, + { + "begin": "(\\()((\\?=)|(\\?!))", + "beginCaptures": { + "1": { + "name": "punctuation.definition.group.regexp" + }, + "3": { + "name": "meta.assertion.look-ahead.regexp" + }, + "4": { + "name": "meta.assertion.negative-look-ahead.regexp" + } + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.definition.group.regexp" + } + }, + "name": "meta.group.assertion.regexp", + "patterns": [ + { + "include": "#heregexp" + } + ] + }, + { + "begin": "\\((\\?:)?", + "beginCaptures": { + "0": { + "name": "punctuation.definition.group.regexp" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.group.regexp" + } + }, + "name": "meta.group.regexp", + "patterns": [ + { + "include": "#heregexp" + } + ] + }, + { + "begin": "(\\[)(\\^)?", + "beginCaptures": { + "1": { + "name": "punctuation.definition.character-class.regexp" + }, + "2": { + "name": "keyword.operator.negation.regexp" + } + }, + "end": "(\\])", + "endCaptures": { + "1": { + "name": "punctuation.definition.character-class.regexp" + } + }, + "name": "constant.other.character-class.set.regexp", + "patterns": [ + { + "captures": { + "1": { + "name": "constant.character.numeric.regexp" + }, + "2": { + "name": "constant.character.control.regexp" + }, + "3": { + "name": "constant.character.escape.backslash.regexp" + }, + "4": { + "name": "constant.character.numeric.regexp" + }, + "5": { + "name": "constant.character.control.regexp" + }, + "6": { + "name": "constant.character.escape.backslash.regexp" + } + }, + "match": "(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))", + "name": "constant.other.character-class.range.regexp" + }, + { + "include": "#regex-character-class" + } + ] + }, + { + "include": "#regex-character-class" + }, + { + "include": "#interpolated_coffee" + }, + { + "include": "#embedded_comment" + } + ] + }, + "jsx": { + "patterns": [ + { + "include": "#jsx-tag" + }, + { + "include": "#jsx-end-tag" + } + ] + }, + "jsx-expression": { + "begin": "{", + "beginCaptures": { + "0": { + "name": "meta.brace.curly.coffee" + } + }, + "end": "}", + "endCaptures": { + "0": { + "name": "meta.brace.curly.coffee" + } + }, + "patterns": [ + { + "include": "#double_quoted_string" + }, + { + "include": "$self" + } + ] + }, + "jsx-attribute": { + "patterns": [ + { + "captures": { + "1": { + "name": "entity.other.attribute-name.coffee" + }, + "2": { + "name": "keyword.operator.assignment.coffee" + } + }, + "match": "(?:^|\\s+)([-\\w.]+)\\s*(=)" + }, + { + "include": "#double_quoted_string" + }, + { + "include": "#single_quoted_string" + }, + { + "include": "#jsx-expression" + } + ] + }, + "jsx-tag": { + "patterns": [ + { + "begin": "(<)([-\\w\\.]+)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.coffee" + }, + "2": { + "name": "entity.name.tag.coffee" + } + }, + "end": "(/?>)", + "name": "meta.tag.coffee", + "patterns": [ + { + "include": "#jsx-attribute" + } + ] + } + ] + }, + "jsx-end-tag": { + "patterns": [ + { + "begin": "(</)([-\\w\\.]+)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.coffee" + }, + "2": { + "name": "entity.name.tag.coffee" + } + }, + "end": "(/?>)", + "name": "meta.tag.coffee" + } + ] + } + } +} diff --git a/docs/shiki/languages/cpp-macro.tmLanguage.json b/docs/shiki/languages/cpp-macro.tmLanguage.json new file mode 100644 index 00000000..73defb97 --- /dev/null +++ b/docs/shiki/languages/cpp-macro.tmLanguage.json @@ -0,0 +1,9366 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/jeff-hykin/better-cpp-syntax/blob/master/autogenerated/cpp.embedded.macro.tmLanguage.json", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/jeff-hykin/better-cpp-syntax/commit/f1d127a8af2b184db570345f0bb179503c47fdf6", + "name": "cpp-macro", + "scopeName": "source.cpp.embedded.macro", + "patterns": [ + { + "include": "#ever_present_context" + }, + { + "include": "#constructor_root" + }, + { + "include": "#destructor_root" + }, + { + "include": "#function_definition" + }, + { + "include": "#operator_overload" + }, + { + "include": "#using_namespace" + }, + { + "include": "source.cpp#type_alias" + }, + { + "include": "source.cpp#using_name" + }, + { + "include": "source.cpp#namespace_alias" + }, + { + "include": "#namespace_block" + }, + { + "include": "#extern_block" + }, + { + "include": "#typedef_class" + }, + { + "include": "#typedef_struct" + }, + { + "include": "#typedef_union" + }, + { + "include": "source.cpp#misc_keywords" + }, + { + "include": "source.cpp#standard_declares" + }, + { + "include": "#class_block" + }, + { + "include": "#struct_block" + }, + { + "include": "#union_block" + }, + { + "include": "#enum_block" + }, + { + "include": "source.cpp#template_isolated_definition" + }, + { + "include": "#template_definition" + }, + { + "include": "source.cpp#template_explicit_instantiation" + }, + { + "include": "source.cpp#access_control_keywords" + }, + { + "include": "#block" + }, + { + "include": "#static_assert" + }, + { + "include": "#assembly" + }, + { + "include": "#function_pointer" + }, + { + "include": "#evaluation_context" + } + ], + "repository": { + "alignas_attribute": { + "begin": "alignas\\(", + "end": "\\)|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "punctuation.section.attribute.begin.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.attribute.end.cpp" + } + }, + "name": "support.other.attribute.cpp", + "patterns": [ + { + "include": "#attributes_context" + }, + { + "begin": "\\(", + "end": "\\)|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": {}, + "patterns": [ + { + "include": "#attributes_context" + }, + { + "include": "#string_context" + }, + { + "include": "#ever_present_context" + } + ] + }, + { + "match": "(using)\\s+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))", + "captures": { + "1": { + "name": "keyword.other.using.directive.cpp" + }, + "2": { + "name": "entity.name.namespace.cpp" + } + } + }, + { + "match": ",", + "name": "punctuation.separator.attribute.cpp" + }, + { + "match": ":", + "name": "punctuation.accessor.attribute.cpp" + }, + { + "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=::)", + "name": "entity.name.namespace.cpp" + }, + { + "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", + "name": "entity.other.attribute.$0.cpp" + }, + { + "include": "source.cpp#number_literal" + }, + { + "include": "#ever_present_context" + } + ] + }, + "alignas_operator": { + "begin": "((?<!\\w)alignas(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", + "end": "\\)|(?=(?<!\\\\)\n)", + "beginCaptures": { + "1": { + "name": "keyword.operator.functionlike.cpp keyword.operator.alignas.cpp" + }, + "2": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "punctuation.section.arguments.begin.bracket.round.operator.alignas.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.operator.alignas.cpp" + } + }, + "contentName": "meta.arguments.operator.alignas", + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + "alignof_operator": { + "begin": "((?<!\\w)alignof(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", + "end": "\\)|(?=(?<!\\\\)\n)", + "beginCaptures": { + "1": { + "name": "keyword.operator.functionlike.cpp keyword.operator.alignof.cpp" + }, + "2": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "punctuation.section.arguments.begin.bracket.round.operator.alignof.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.operator.alignof.cpp" + } + }, + "contentName": "meta.arguments.operator.alignof", + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + "assembly": { + "begin": "(\\b(?:__asm__|asm)\\b)(?:\\s+)?((?:volatile)?)", + "end": "(?!\\G)|(?=(?<!\\\\)\n)", + "beginCaptures": { + "1": { + "name": "storage.type.asm.cpp" + }, + "2": { + "name": "storage.modifier.cpp" + } + }, + "endCaptures": {}, + "name": "meta.asm.cpp", + "patterns": [ + { + "match": "^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:\\n|$)", + "captures": { + "1": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + }, + { + "include": "#comments" + }, + { + "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))\\(", + "end": "\\)|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "punctuation.section.parens.begin.bracket.round.assembly.cpp" + }, + "1": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.parens.end.bracket.round.assembly.cpp" + } + }, + "patterns": [ + { + "begin": "(R?)(\")", + "end": "\"|(?=(?<!\\\\)\n)", + "beginCaptures": { + "1": { + "name": "meta.encoding.cpp" + }, + "2": { + "name": "punctuation.definition.string.begin.assembly.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.assembly.cpp" + } + }, + "name": "string.quoted.double.cpp", + "contentName": "meta.embedded.assembly", + "patterns": [ + { + "include": "source.asm" + }, + { + "include": "source.x86" + }, + { + "include": "source.x86_64" + }, + { + "include": "source.arm" + }, + { + "include": "source.cpp#backslash_escapes" + }, + { + "include": "#string_escaped_char" + } + ] + }, + { + "begin": "\\(", + "end": "\\)|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "punctuation.section.parens.begin.bracket.round.assembly.inner.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.parens.end.bracket.round.assembly.inner.cpp" + } + }, + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + { + "match": "\\[((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))\\]", + "captures": { + "1": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "5": { + "name": "variable.other.asm.label.cpp" + }, + "6": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "7": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "8": { + "name": "comment.block.cpp" + }, + "9": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + }, + { + "match": ":", + "name": "punctuation.separator.delimiter.colon.assembly.cpp" + }, + { + "include": "#comments" + } + ] + } + ] + }, + "attributes_context": { + "patterns": [ + { + "include": "#cpp_attributes" + }, + { + "include": "#gcc_attributes" + }, + { + "include": "#ms_attributes" + }, + { + "include": "#alignas_attribute" + } + ] + }, + "block": { + "begin": "{", + "end": "}|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.cpp" + } + }, + "name": "meta.block.cpp", + "patterns": [ + { + "include": "#function_body_context" + } + ] + }, + "block_comment": { + "begin": "\\s*+(\\/\\*)", + "end": "\\*\\/|(?=(?<!\\\\)\n)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.begin.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.end.cpp" + } + }, + "name": "comment.block.cpp" + }, + "builtin_storage_type_initilizer": { + "begin": "\\s*+(?<!\\w)(?:(?:(?:((?:(?:unsigned)|(?:wchar_t)|(?:double)|(?:signed)|(?:short)|(?:float)|(?:auto)|(?:void)|(?:long)|(?:char)|(?:bool)|(?:int)))|((?:(?:uint_least32_t)|(?:uint_least64_t)|(?:uint_least16_t)|(?:uint_fast64_t)|(?:uint_least8_t)|(?:int_least64_t)|(?:int_least32_t)|(?:int_least16_t)|(?:uint_fast16_t)|(?:uint_fast32_t)|(?:int_least8_t)|(?:int_fast16_t)|(?:int_fast32_t)|(?:int_fast64_t)|(?:uint_fast8_t)|(?:int_fast8_t)|(?:suseconds_t)|(?:useconds_t)|(?:uintmax_t)|(?:uintmax_t)|(?:in_port_t)|(?:uintmax_t)|(?:in_addr_t)|(?:blksize_t)|(?:uintptr_t)|(?:intmax_t)|(?:intptr_t)|(?:blkcnt_t)|(?:intmax_t)|(?:u_quad_t)|(?:uint16_t)|(?:uint32_t)|(?:uint64_t)|(?:ssize_t)|(?:fixpt_t)|(?:qaddr_t)|(?:u_short)|(?:int16_t)|(?:int32_t)|(?:int64_t)|(?:uint8_t)|(?:daddr_t)|(?:caddr_t)|(?:swblk_t)|(?:clock_t)|(?:segsz_t)|(?:nlink_t)|(?:time_t)|(?:u_long)|(?:ushort)|(?:quad_t)|(?:mode_t)|(?:size_t)|(?:u_char)|(?:int8_t)|(?:u_int)|(?:uid_t)|(?:off_t)|(?:pid_t)|(?:gid_t)|(?:dev_t)|(?:div_t)|(?:key_t)|(?:ino_t)|(?:id_t)|(?:id_t)|(?:uint))))|((?:(?:pthread_rwlockattr_t)|(?:pthread_mutexattr_t)|(?:pthread_condattr_t)|(?:pthread_rwlock_t)|(?:pthread_mutex_t)|(?:pthread_cond_t)|(?:pthread_attr_t)|(?:pthread_once_t)|(?:pthread_key_t)|(?:pthread_t))))|([a-zA-Z_]\\w*_t))(?!\\w)\\s*+(?<!\\w)(\\()", + "end": "\\)|(?=(?<!\\\\)\n)", + "beginCaptures": { + "1": { + "name": "storage.type.primitive.cpp storage.type.built-in.primitive.cpp" + }, + "2": { + "name": "storage.type.cpp storage.type.built-in.cpp" + }, + "3": { + "name": "support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp" + }, + "4": { + "name": "support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp" + }, + "5": { + "name": "punctuation.section.arguments.begin.bracket.round.initializer.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.initializer.cpp" + } + }, + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + "case_statement": { + "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)case(?!\\w))", + "end": ":|(?=(?<!\\\\)\n)", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "5": { + "name": "keyword.control.case.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.separator.colon.case.cpp" + } + }, + "name": "meta.conditional.case.cpp", + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + "class_block": { + "begin": "((?<!\\w)class(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(:(?!:)))?)", + "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "meta.head.class.cpp" + }, + "1": { + "name": "storage.type.$1.cpp" + }, + "2": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "patterns": [ + { + "include": "#attributes_context" + }, + { + "include": "source.cpp#number_literal" + } + ] + }, + "7": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "9": { + "name": "comment.block.cpp" + }, + "10": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "11": { + "patterns": [ + { + "match": "((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))", + "captures": { + "1": { + "name": "storage.type.modifier.final.cpp" + }, + "2": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + }, + { + "match": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?=:|{|$)", + "captures": { + "1": { + "name": "entity.name.type.class.cpp" + }, + "2": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "storage.type.modifier.final.cpp" + }, + "7": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "9": { + "name": "comment.block.cpp" + }, + "10": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + }, + { + "match": "DLLEXPORT", + "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" + }, + { + "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", + "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp" + } + ] + }, + "12": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "13": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "14": { + "name": "comment.block.cpp" + }, + "15": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "16": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "17": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "18": { + "name": "comment.block.cpp" + }, + "19": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "20": { + "name": "punctuation.separator.colon.inheritance.cpp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.terminator.statement.cpp" + }, + "2": { + "name": "punctuation.terminator.statement.cpp" + } + }, + "name": "meta.block.class.cpp", + "patterns": [ + { + "begin": "\\G ?", + "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.class.cpp" + } + }, + "name": "meta.head.class.cpp", + "patterns": [ + { + "include": "#ever_present_context" + }, + { + "include": "#inheritance_context" + }, + { + "include": "#template_call_range" + } + ] + }, + { + "begin": "(?<=\\{|<%|\\?\\?<)", + "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.class.cpp" + } + }, + "name": "meta.body.class.cpp", + "patterns": [ + { + "include": "#function_pointer" + }, + { + "include": "#static_assert" + }, + { + "include": "#constructor_inline" + }, + { + "include": "#destructor_inline" + }, + { + "include": "$self" + } + ] + }, + { + "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", + "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": {}, + "name": "meta.tail.class.cpp", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + "comments": { + "patterns": [ + { + "begin": "^(?:\\s+)?+(\\/\\/[!\\/]+)", + "end": "(?<=\\n)(?<!\\\\\\n)|(?=(?<!\\\\)\n)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.documentation.cpp" + } + }, + "endCaptures": {}, + "name": "comment.line.double-slash.documentation.cpp", + "patterns": [ + { + "include": "source.cpp#line_continuation_character" + }, + { + "match": "(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?", + "name": "storage.type.class.doxygen.cpp" + }, + { + "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)", + "captures": { + "1": { + "name": "storage.type.class.doxygen.cpp" + }, + "2": { + "name": "markup.italic.doxygen.cpp" + } + } + }, + { + "match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)", + "captures": { + "1": { + "name": "storage.type.class.doxygen.cpp" + }, + "2": { + "name": "markup.bold.doxygen.cpp" + } + } + }, + { + "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)", + "captures": { + "1": { + "name": "storage.type.class.doxygen.cpp" + }, + "2": { + "name": "markup.inline.raw.string.cpp" + } + } + }, + { + "match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?", + "name": "storage.type.class.doxygen.cpp" + }, + { + "match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?", + "name": "storage.type.class.doxygen.cpp" + }, + { + "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:\\s+)?(?:in|out)(?:\\s+)?)+)\\])?(\\s+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(?:(,)(?:\\s+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)))*)", + "captures": { + "1": { + "name": "storage.type.class.doxygen.cpp" + }, + "2": { + "patterns": [ + { + "match": "in|out", + "name": "keyword.other.parameter.direction.$0.cpp" + } + ] + }, + "3": { + "patterns": [ + { + "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", + "name": "variable.parameter.cpp" + }, + { + "match": ",", + "name": "punctuation.cpp" + } + ] + }, + "4": { + "name": "variable.parameter.cpp" + }, + "5": { + "name": "punctuation.cpp" + }, + "6": { + "name": "variable.parameter.cpp" + } + } + }, + { + "match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|throws|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?", + "name": "storage.type.class.doxygen.cpp" + }, + { + "match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|startuml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?", + "name": "storage.type.class.doxygen.cpp" + }, + { + "match": "(?:\\b[A-Z]+:|@[a-z_]+:)", + "name": "storage.type.class.gtkdoc.cpp" + } + ] + }, + { + "match": "(\\/\\*[!*]+(?=\\s))(.+)([!*]*\\*\\/)", + "captures": { + "1": { + "name": "punctuation.definition.comment.begin.documentation.cpp" + }, + "2": { + "patterns": [ + { + "match": "(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?", + "name": "storage.type.class.doxygen.cpp" + }, + { + "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)", + "captures": { + "1": { + "name": "storage.type.class.doxygen.cpp" + }, + "2": { + "name": "markup.italic.doxygen.cpp" + } + } + }, + { + "match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)", + "captures": { + "1": { + "name": "storage.type.class.doxygen.cpp" + }, + "2": { + "name": "markup.bold.doxygen.cpp" + } + } + }, + { + "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)", + "captures": { + "1": { + "name": "storage.type.class.doxygen.cpp" + }, + "2": { + "name": "markup.inline.raw.string.cpp" + } + } + }, + { + "match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?", + "name": "storage.type.class.doxygen.cpp" + }, + { + "match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?", + "name": "storage.type.class.doxygen.cpp" + }, + { + "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:\\s+)?(?:in|out)(?:\\s+)?)+)\\])?(\\s+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(?:(,)(?:\\s+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)))*)", + "captures": { + "1": { + "name": "storage.type.class.doxygen.cpp" + }, + "2": { + "patterns": [ + { + "match": "in|out", + "name": "keyword.other.parameter.direction.$0.cpp" + } + ] + }, + "3": { + "patterns": [ + { + "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", + "name": "variable.parameter.cpp" + }, + { + "match": ",", + "name": "punctuation.cpp" + } + ] + }, + "4": { + "name": "variable.parameter.cpp" + }, + "5": { + "name": "punctuation.cpp" + }, + "6": { + "name": "variable.parameter.cpp" + } + } + }, + { + "match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|throws|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?", + "name": "storage.type.class.doxygen.cpp" + }, + { + "match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|startuml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?", + "name": "storage.type.class.doxygen.cpp" + }, + { + "match": "(?:\\b[A-Z]+:|@[a-z_]+:)", + "name": "storage.type.class.gtkdoc.cpp" + } + ] + }, + "3": { + "name": "punctuation.definition.comment.end.documentation.cpp" + } + }, + "name": "comment.block.documentation.cpp" + }, + { + "begin": "(?:\\s+)?+\\/\\*[!*]+(?:(?:\\n|$)|(?=\\s))", + "end": "[!*]*\\*\\/|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.begin.documentation.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.end.documentation.cpp" + } + }, + "name": "comment.block.documentation.cpp", + "patterns": [ + { + "match": "(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?", + "name": "storage.type.class.doxygen.cpp" + }, + { + "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)", + "captures": { + "1": { + "name": "storage.type.class.doxygen.cpp" + }, + "2": { + "name": "markup.italic.doxygen.cpp" + } + } + }, + { + "match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)", + "captures": { + "1": { + "name": "storage.type.class.doxygen.cpp" + }, + "2": { + "name": "markup.bold.doxygen.cpp" + } + } + }, + { + "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)", + "captures": { + "1": { + "name": "storage.type.class.doxygen.cpp" + }, + "2": { + "name": "markup.inline.raw.string.cpp" + } + } + }, + { + "match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?", + "name": "storage.type.class.doxygen.cpp" + }, + { + "match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?", + "name": "storage.type.class.doxygen.cpp" + }, + { + "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:\\s+)?(?:in|out)(?:\\s+)?)+)\\])?(\\s+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(?:(,)(?:\\s+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)))*)", + "captures": { + "1": { + "name": "storage.type.class.doxygen.cpp" + }, + "2": { + "patterns": [ + { + "match": "in|out", + "name": "keyword.other.parameter.direction.$0.cpp" + } + ] + }, + "3": { + "patterns": [ + { + "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", + "name": "variable.parameter.cpp" + }, + { + "match": ",", + "name": "punctuation.cpp" + } + ] + }, + "4": { + "name": "variable.parameter.cpp" + }, + "5": { + "name": "punctuation.cpp" + }, + "6": { + "name": "variable.parameter.cpp" + } + } + }, + { + "match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|throws|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?", + "name": "storage.type.class.doxygen.cpp" + }, + { + "match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|startuml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?", + "name": "storage.type.class.doxygen.cpp" + }, + { + "match": "(?:\\b[A-Z]+:|@[a-z_]+:)", + "name": "storage.type.class.gtkdoc.cpp" + } + ] + }, + { + "include": "source.cpp#emacs_file_banner" + }, + { + "include": "#block_comment" + }, + { + "include": "#line_comment" + }, + { + "include": "source.cpp#invalid_comment_end" + } + ] + }, + "constructor_inline": { + "begin": "^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:(?:(?:constexpr)|(?:consteval)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*)((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=\\())", + "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "meta.head.function.definition.special.constructor.cpp" + }, + "1": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "5": { + "patterns": [ + { + "include": "source.cpp#functional_specifiers_pre_parameters" + } + ] + }, + "6": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "7": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "8": { + "name": "comment.block.cpp" + }, + "9": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "10": { + "name": "storage.type.modifier.calling-convention.cpp" + }, + "11": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "12": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "13": { + "name": "comment.block.cpp" + }, + "14": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "15": { + "name": "entity.name.function.constructor.cpp entity.name.function.definition.special.constructor.cpp" + } + }, + "endCaptures": {}, + "name": "meta.function.definition.special.constructor.cpp", + "patterns": [ + { + "begin": "\\G ?", + "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.function.definition.special.constructor.cpp" + } + }, + "name": "meta.head.function.definition.special.constructor.cpp", + "patterns": [ + { + "include": "#ever_present_context" + }, + { + "match": "(\\=)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(default)|(delete))", + "captures": { + "1": { + "name": "keyword.operator.assignment.cpp" + }, + "2": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "keyword.other.default.function.cpp keyword.other.default.constructor.cpp" + }, + "7": { + "name": "keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp" + } + } + }, + { + "include": "source.cpp#functional_specifiers_pre_parameters" + }, + { + "begin": ":", + "end": "(?=\\{)|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "punctuation.separator.initializers.cpp" + } + }, + "endCaptures": {}, + "patterns": [ + { + "begin": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(((?<!<)<(?!<)(?:(?:(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/)))|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<3>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(\\()", + "end": "\\)|(?=(?<!\\\\)\n)", + "beginCaptures": { + "1": { + "name": "entity.name.function.call.initializer.cpp" + }, + "2": { + "name": "meta.template.call.cpp", + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "3": {}, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "5": { + "name": "comment.block.cpp" + }, + "6": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "7": { + "name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp" + } + }, + "contentName": "meta.parameter.initialization", + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + { + "begin": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(\\{)", + "end": "\\}|(?=(?<!\\\\)\n)", + "beginCaptures": { + "1": { + "name": "entity.name.function.call.initializer.cpp" + }, + "2": { + "name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp" + } + }, + "contentName": "meta.parameter.initialization", + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + { + "match": ",", + "name": "punctuation.separator.delimiter.comma.cpp" + }, + { + "include": "#comments" + } + ] + }, + { + "begin": "\\(", + "end": "\\)|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "punctuation.section.parameters.begin.bracket.round.special.constructor.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.parameters.end.bracket.round.special.constructor.cpp" + } + }, + "contentName": "meta.function.definition.parameters.special.constructor", + "patterns": [ + { + "include": "#function_parameter_context" + }, + { + "include": "#evaluation_context" + } + ] + }, + { + "include": "source.cpp#qualifiers_and_specifiers_post_parameters" + }, + { + "include": "$self" + } + ] + }, + { + "begin": "(?<=\\{|<%|\\?\\?<)", + "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cpp" + } + }, + "name": "meta.body.function.definition.special.constructor.cpp", + "patterns": [ + { + "include": "#function_body_context" + } + ] + }, + { + "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", + "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": {}, + "name": "meta.tail.function.definition.special.constructor.cpp", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + "constructor_root": { + "begin": "\\s*+((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<8>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(((?>(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))::((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:\\10)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\())", + "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "meta.head.function.definition.special.constructor.cpp" + }, + "1": { + "name": "storage.type.modifier.calling-convention.cpp" + }, + "2": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "patterns": [ + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.constructor.cpp" + }, + { + "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", + "name": "entity.name.scope-resolution.constructor.cpp" + }, + { + "include": "#template_call_range" + } + ] + }, + "7": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "8": {}, + "9": { + "patterns": [ + { + "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?=:)", + "name": "entity.name.type.constructor.cpp" + }, + { + "match": "(?<=:)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", + "name": "entity.name.function.definition.special.constructor.cpp" + }, + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.constructor.cpp" + } + ] + }, + "10": {}, + "11": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "12": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "13": { + "name": "comment.block.cpp" + }, + "14": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "15": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "16": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "17": { + "name": "comment.block.cpp" + }, + "18": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "19": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "20": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "21": { + "name": "comment.block.cpp" + }, + "22": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "endCaptures": {}, + "name": "meta.function.definition.special.constructor.cpp", + "patterns": [ + { + "begin": "\\G ?", + "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.function.definition.special.constructor.cpp" + } + }, + "name": "meta.head.function.definition.special.constructor.cpp", + "patterns": [ + { + "include": "#ever_present_context" + }, + { + "match": "(\\=)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(default)|(delete))", + "captures": { + "1": { + "name": "keyword.operator.assignment.cpp" + }, + "2": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "keyword.other.default.function.cpp keyword.other.default.constructor.cpp" + }, + "7": { + "name": "keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp" + } + } + }, + { + "include": "source.cpp#functional_specifiers_pre_parameters" + }, + { + "begin": ":", + "end": "(?=\\{)|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "punctuation.separator.initializers.cpp" + } + }, + "endCaptures": {}, + "patterns": [ + { + "begin": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(((?<!<)<(?!<)(?:(?:(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/)))|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<3>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(\\()", + "end": "\\)|(?=(?<!\\\\)\n)", + "beginCaptures": { + "1": { + "name": "entity.name.function.call.initializer.cpp" + }, + "2": { + "name": "meta.template.call.cpp", + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "3": {}, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "5": { + "name": "comment.block.cpp" + }, + "6": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "7": { + "name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp" + } + }, + "contentName": "meta.parameter.initialization", + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + { + "begin": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(\\{)", + "end": "\\}|(?=(?<!\\\\)\n)", + "beginCaptures": { + "1": { + "name": "entity.name.function.call.initializer.cpp" + }, + "2": { + "name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp" + } + }, + "contentName": "meta.parameter.initialization", + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + { + "match": ",", + "name": "punctuation.separator.delimiter.comma.cpp" + }, + { + "include": "#comments" + } + ] + }, + { + "begin": "\\(", + "end": "\\)|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "punctuation.section.parameters.begin.bracket.round.special.constructor.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.parameters.end.bracket.round.special.constructor.cpp" + } + }, + "contentName": "meta.function.definition.parameters.special.constructor", + "patterns": [ + { + "include": "#function_parameter_context" + }, + { + "include": "#evaluation_context" + } + ] + }, + { + "include": "source.cpp#qualifiers_and_specifiers_post_parameters" + }, + { + "include": "$self" + } + ] + }, + { + "begin": "(?<=\\{|<%|\\?\\?<)", + "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cpp" + } + }, + "name": "meta.body.function.definition.special.constructor.cpp", + "patterns": [ + { + "include": "#function_body_context" + } + ] + }, + { + "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", + "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": {}, + "name": "meta.tail.function.definition.special.constructor.cpp", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + "cpp_attributes": { + "begin": "\\[\\[", + "end": "\\]\\]|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "punctuation.section.attribute.begin.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.attribute.end.cpp" + } + }, + "name": "support.other.attribute.cpp", + "patterns": [ + { + "include": "#attributes_context" + }, + { + "begin": "\\(", + "end": "\\)|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": {}, + "patterns": [ + { + "include": "#attributes_context" + }, + { + "include": "#string_context" + }, + { + "include": "#ever_present_context" + } + ] + }, + { + "match": "(using)\\s+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))", + "captures": { + "1": { + "name": "keyword.other.using.directive.cpp" + }, + "2": { + "name": "entity.name.namespace.cpp" + } + } + }, + { + "match": ",", + "name": "punctuation.separator.attribute.cpp" + }, + { + "match": ":", + "name": "punctuation.accessor.attribute.cpp" + }, + { + "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=::)", + "name": "entity.name.namespace.cpp" + }, + { + "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", + "name": "entity.other.attribute.$0.cpp" + }, + { + "include": "source.cpp#number_literal" + }, + { + "include": "#ever_present_context" + } + ] + }, + "curly_initializer": { + "begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<18>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<18>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\{)", + "end": "\\}|(?=(?<!\\\\)\n)", + "beginCaptures": { + "1": { + "name": "meta.qualified_type.cpp", + "patterns": [ + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" + }, + { + "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)", + "name": "storage.type.$0.cpp" + }, + { + "include": "#attributes_context" + }, + { + "include": "#storage_types" + }, + { + "include": "source.cpp#number_literal" + }, + { + "include": "#string_context" + }, + { + "include": "source.cpp#comma" + }, + { + "include": "source.cpp#scope_resolution_inner_generated" + }, + { + "begin": "<", + "end": ">|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "punctuation.section.angle-brackets.begin.template.call.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.angle-brackets.end.template.call.cpp" + } + }, + "name": "meta.template.call.cpp", + "patterns": [ + { + "include": "#template_call_context" + } + ] + }, + { + "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", + "name": "entity.name.type.cpp" + } + ] + }, + "2": { + "patterns": [ + { + "include": "#attributes_context" + }, + { + "include": "source.cpp#number_literal" + } + ] + }, + "3": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "5": { + "name": "comment.block.cpp" + }, + "6": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "7": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "9": { + "name": "comment.block.cpp" + }, + "10": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "11": { + "patterns": [ + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" + }, + { + "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", + "name": "entity.name.scope-resolution.type.cpp" + }, + { + "include": "#template_call_range" + } + ] + }, + "12": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "13": {}, + "14": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "15": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "16": { + "name": "comment.block.cpp" + }, + "17": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "18": {}, + "19": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "20": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "21": { + "name": "comment.block.cpp" + }, + "22": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "23": { + "name": "punctuation.section.arguments.begin.bracket.curly.initializer.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.curly.initializer.cpp" + } + }, + "name": "meta.initialization.cpp", + "patterns": [ + { + "include": "#evaluation_context" + }, + { + "include": "source.cpp#comma" + } + ] + }, + "decltype": { + "begin": "((?<!\\w)decltype(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", + "end": "\\)|(?=(?<!\\\\)\n)", + "beginCaptures": { + "1": { + "name": "keyword.operator.functionlike.cpp keyword.other.decltype.cpp storage.type.decltype.cpp" + }, + "2": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "punctuation.section.arguments.begin.bracket.round.decltype.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.decltype.cpp" + } + }, + "contentName": "meta.arguments.decltype", + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + "decltype_specifier": { + "begin": "((?<!\\w)decltype(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", + "end": "\\)|(?=(?<!\\\\)\n)", + "beginCaptures": { + "1": { + "name": "keyword.operator.functionlike.cpp keyword.other.decltype.cpp storage.type.decltype.cpp" + }, + "2": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "punctuation.section.arguments.begin.bracket.round.decltype.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.decltype.cpp" + } + }, + "contentName": "meta.arguments.decltype", + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + "default_statement": { + "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)default(?!\\w))", + "end": ":|(?=(?<!\\\\)\n)", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "5": { + "name": "keyword.control.default.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.separator.colon.case.default.cpp" + } + }, + "name": "meta.conditional.case.cpp", + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + "destructor_inline": { + "begin": "^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:(?:(?:constexpr)|(?:consteval)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*)(~(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=\\())", + "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "meta.head.function.definition.special.member.destructor.cpp" + }, + "1": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "5": { + "name": "storage.type.modifier.calling-convention.cpp" + }, + "6": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "7": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "8": { + "name": "comment.block.cpp" + }, + "9": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "10": { + "patterns": [ + { + "include": "source.cpp#functional_specifiers_pre_parameters" + } + ] + }, + "11": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "12": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "13": { + "name": "comment.block.cpp" + }, + "14": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "15": { + "name": "entity.name.function.destructor.cpp entity.name.function.definition.special.member.destructor.cpp" + } + }, + "endCaptures": {}, + "name": "meta.function.definition.special.member.destructor.cpp", + "patterns": [ + { + "begin": "\\G ?", + "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.function.definition.special.member.destructor.cpp" + } + }, + "name": "meta.head.function.definition.special.member.destructor.cpp", + "patterns": [ + { + "include": "#ever_present_context" + }, + { + "match": "(\\=)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(default)|(delete))", + "captures": { + "1": { + "name": "keyword.operator.assignment.cpp" + }, + "2": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "keyword.other.default.function.cpp keyword.other.default.constructor.cpp keyword.other.default.destructor.cpp" + }, + "7": { + "name": "keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp keyword.other.delete.destructor.cpp" + } + } + }, + { + "begin": "\\(", + "end": "\\)|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "punctuation.section.parameters.begin.bracket.round.special.member.destructor.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.parameters.end.bracket.round.special.member.destructor.cpp" + } + }, + "contentName": "meta.function.definition.parameters.special.member.destructor", + "patterns": [] + }, + { + "include": "source.cpp#qualifiers_and_specifiers_post_parameters" + }, + { + "include": "$self" + } + ] + }, + { + "begin": "(?<=\\{|<%|\\?\\?<)", + "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.function.definition.special.member.destructor.cpp" + } + }, + "name": "meta.body.function.definition.special.member.destructor.cpp", + "patterns": [ + { + "include": "#function_body_context" + } + ] + }, + { + "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", + "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": {}, + "name": "meta.tail.function.definition.special.member.destructor.cpp", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + "destructor_root": { + "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<12>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(((?>(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))::((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))~(?:\\14)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\())", + "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "meta.head.function.definition.special.member.destructor.cpp" + }, + "1": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "5": { + "name": "storage.type.modifier.calling-convention.cpp" + }, + "6": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "7": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "8": { + "name": "comment.block.cpp" + }, + "9": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "10": { + "patterns": [ + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.destructor.cpp" + }, + { + "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", + "name": "entity.name.scope-resolution.destructor.cpp" + }, + { + "include": "#template_call_range" + } + ] + }, + "11": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "12": {}, + "13": { + "patterns": [ + { + "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?=:)", + "name": "entity.name.type.destructor.cpp" + }, + { + "match": "(?<=:)~(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", + "name": "entity.name.function.definition.special.member.destructor.cpp" + }, + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.destructor.cpp" + } + ] + }, + "14": {}, + "15": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "16": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "17": { + "name": "comment.block.cpp" + }, + "18": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "19": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "20": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "21": { + "name": "comment.block.cpp" + }, + "22": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "23": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "24": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "25": { + "name": "comment.block.cpp" + }, + "26": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "endCaptures": {}, + "name": "meta.function.definition.special.member.destructor.cpp", + "patterns": [ + { + "begin": "\\G ?", + "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.function.definition.special.member.destructor.cpp" + } + }, + "name": "meta.head.function.definition.special.member.destructor.cpp", + "patterns": [ + { + "include": "#ever_present_context" + }, + { + "match": "(\\=)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(default)|(delete))", + "captures": { + "1": { + "name": "keyword.operator.assignment.cpp" + }, + "2": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "keyword.other.default.function.cpp keyword.other.default.constructor.cpp keyword.other.default.destructor.cpp" + }, + "7": { + "name": "keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp keyword.other.delete.destructor.cpp" + } + } + }, + { + "begin": "\\(", + "end": "\\)|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "punctuation.section.parameters.begin.bracket.round.special.member.destructor.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.parameters.end.bracket.round.special.member.destructor.cpp" + } + }, + "contentName": "meta.function.definition.parameters.special.member.destructor", + "patterns": [] + }, + { + "include": "source.cpp#qualifiers_and_specifiers_post_parameters" + }, + { + "include": "$self" + } + ] + }, + { + "begin": "(?<=\\{|<%|\\?\\?<)", + "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.function.definition.special.member.destructor.cpp" + } + }, + "name": "meta.body.function.definition.special.member.destructor.cpp", + "patterns": [ + { + "include": "#function_body_context" + } + ] + }, + { + "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", + "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": {}, + "name": "meta.tail.function.definition.special.member.destructor.cpp", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + "diagnostic": { + "begin": "(^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(#)(?:\\s+)?((?:error|warning)))\\b(?:\\s+)?", + "end": "(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))|(?=(?<!\\\\)\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.directive.diagnostic.$7.cpp" + }, + "2": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "punctuation.definition.directive.cpp" + }, + "7": {} + }, + "endCaptures": {}, + "name": "meta.preprocessor.diagnostic.$reference(directive).cpp", + "patterns": [ + { + "include": "#comments" + }, + { + "begin": "\"", + "end": "(?:(\")|(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$)))|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.cpp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.cpp" + } + }, + "name": "string.quoted.double.cpp", + "patterns": [ + { + "include": "source.cpp#line_continuation_character" + } + ] + }, + { + "begin": "'", + "end": "(?:(')|(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$)))|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.cpp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.cpp" + } + }, + "name": "string.quoted.single.cpp", + "patterns": [ + { + "include": "source.cpp#line_continuation_character" + } + ] + }, + { + "begin": "[^'\"]", + "end": "(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": {}, + "name": "string.unquoted.cpp", + "patterns": [ + { + "include": "source.cpp#line_continuation_character" + }, + { + "include": "#comments" + } + ] + } + ] + }, + "enum_block": { + "begin": "((?<!\\w)enum(?!\\w))(?:\\s+(class|struct))?(?:(?:\\s+|((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\))))|(?={))(?:\\s+)?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))?)(?:(?:\\s+)?(:)(?:\\s+)?(?:((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<12>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\s*+(((?<!<)<(?!<)(?:(?:(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/)))|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<12>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::))?(?:\\s+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)))?", + "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "meta.head.enum.cpp" + }, + "1": { + "name": "storage.type.enum.cpp" + }, + "2": { + "name": "storage.type.enum.enum-key.$2.cpp" + }, + "3": { + "patterns": [ + { + "include": "#attributes_context" + }, + { + "include": "source.cpp#number_literal" + } + ] + }, + "4": { + "name": "entity.name.type.enum.cpp" + }, + "5": { + "name": "punctuation.separator.colon.type-specifier.cpp" + }, + "6": { + "patterns": [ + { + "include": "source.cpp#scope_resolution_inner_generated" + } + ] + }, + "7": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" + }, + "8": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "9": {}, + "10": { + "name": "entity.name.scope-resolution.cpp" + }, + "11": { + "name": "meta.template.call.cpp", + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "12": {}, + "13": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "14": { + "name": "comment.block.cpp" + }, + "15": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "16": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" + }, + "17": { + "name": "storage.type.integral.$17.cpp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.terminator.statement.cpp" + }, + "2": { + "name": "punctuation.terminator.statement.cpp" + } + }, + "name": "meta.block.enum.cpp", + "patterns": [ + { + "begin": "\\G ?", + "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.enum.cpp" + } + }, + "name": "meta.head.enum.cpp", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "begin": "(?<=\\{|<%|\\?\\?<)", + "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.enum.cpp" + } + }, + "name": "meta.body.enum.cpp", + "patterns": [ + { + "include": "#ever_present_context" + }, + { + "include": "source.cpp#enumerator_list" + }, + { + "include": "#comments" + }, + { + "include": "source.cpp#comma" + }, + { + "include": "source.cpp#semicolon" + } + ] + }, + { + "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", + "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": {}, + "name": "meta.tail.enum.cpp", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + "evaluation_context": { + "patterns": [ + { + "include": "#ever_present_context" + }, + { + "include": "#string_context" + }, + { + "include": "source.cpp#number_literal" + }, + { + "include": "#method_access" + }, + { + "include": "source.cpp#member_access" + }, + { + "include": "source.cpp#predefined_macros" + }, + { + "include": "#operators" + }, + { + "include": "source.cpp#memory_operators" + }, + { + "include": "source.cpp#wordlike_operators" + }, + { + "include": "source.cpp#type_casting_operators" + }, + { + "include": "source.cpp#control_flow_keywords" + }, + { + "include": "source.cpp#exception_keywords" + }, + { + "include": "source.cpp#the_this_keyword" + }, + { + "include": "source.cpp#language_constants" + }, + { + "include": "#builtin_storage_type_initilizer" + }, + { + "include": "source.cpp#qualifiers_and_specifiers_post_parameters" + }, + { + "include": "source.cpp#functional_specifiers_pre_parameters" + }, + { + "include": "#storage_types" + }, + { + "include": "#lambdas" + }, + { + "include": "#attributes_context" + }, + { + "include": "#parentheses" + }, + { + "include": "#function_call" + }, + { + "include": "source.cpp#scope_resolution_inner_generated" + }, + { + "include": "#square_brackets" + }, + { + "include": "source.cpp#semicolon" + }, + { + "include": "source.cpp#comma" + } + ] + }, + "ever_present_context": { + "patterns": [ + { + "include": "source.cpp#pragma_mark" + }, + { + "include": "#pragma" + }, + { + "include": "source.cpp#include" + }, + { + "include": "#line" + }, + { + "include": "#diagnostic" + }, + { + "include": "source.cpp#undef" + }, + { + "include": "#preprocessor_conditional_range" + }, + { + "include": "source.cpp#single_line_macro" + }, + { + "include": "#macro" + }, + { + "include": "source.cpp#preprocessor_conditional_standalone" + }, + { + "include": "source.cpp#macro_argument" + }, + { + "include": "#comments" + }, + { + "include": "source.cpp#line_continuation_character" + } + ] + }, + "extern_block": { + "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(extern)(?=\\s*\\\")", + "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "meta.head.extern.cpp" + }, + "1": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "5": { + "name": "storage.type.extern.cpp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.terminator.statement.cpp" + }, + "2": { + "name": "punctuation.terminator.statement.cpp" + } + }, + "name": "meta.block.extern.cpp", + "patterns": [ + { + "begin": "\\G ?", + "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.extern.cpp" + } + }, + "name": "meta.head.extern.cpp", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "begin": "(?<=\\{|<%|\\?\\?<)", + "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.extern.cpp" + } + }, + "name": "meta.body.extern.cpp", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", + "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": {}, + "name": "meta.tail.extern.cpp", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "include": "$self" + } + ] + }, + "function_body_context": { + "patterns": [ + { + "include": "#ever_present_context" + }, + { + "include": "#using_namespace" + }, + { + "include": "source.cpp#type_alias" + }, + { + "include": "source.cpp#using_name" + }, + { + "include": "source.cpp#namespace_alias" + }, + { + "include": "#typedef_class" + }, + { + "include": "#typedef_struct" + }, + { + "include": "#typedef_union" + }, + { + "include": "source.cpp#misc_keywords" + }, + { + "include": "source.cpp#standard_declares" + }, + { + "include": "#class_block" + }, + { + "include": "#struct_block" + }, + { + "include": "#union_block" + }, + { + "include": "#enum_block" + }, + { + "include": "source.cpp#access_control_keywords" + }, + { + "include": "#block" + }, + { + "include": "#static_assert" + }, + { + "include": "#assembly" + }, + { + "include": "#function_pointer" + }, + { + "include": "#switch_statement" + }, + { + "include": "source.cpp#goto_statement" + }, + { + "include": "#evaluation_context" + }, + { + "include": "source.cpp#label" + } + ] + }, + "function_call": { + "begin": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<11>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)\\b(?<!\\Wreinterpret_cast|^reinterpret_cast|\\Watomic_noexcept|^atomic_noexcept|\\Wuint_least16_t|^uint_least16_t|\\Wuint_least32_t|^uint_least32_t|\\Wuint_least64_t|^uint_least64_t|\\Watomic_cancel|^atomic_cancel|\\Watomic_commit|^atomic_commit|\\Wuint_least8_t|^uint_least8_t|\\Wuint_fast16_t|^uint_fast16_t|\\Wuint_fast32_t|^uint_fast32_t|\\Wint_least16_t|^int_least16_t|\\Wint_least32_t|^int_least32_t|\\Wint_least64_t|^int_least64_t|\\Wuint_fast64_t|^uint_fast64_t|\\Wthread_local|^thread_local|\\Wint_fast16_t|^int_fast16_t|\\Wint_fast32_t|^int_fast32_t|\\Wint_fast64_t|^int_fast64_t|\\Wsynchronized|^synchronized|\\Wuint_fast8_t|^uint_fast8_t|\\Wdynamic_cast|^dynamic_cast|\\Wint_least8_t|^int_least8_t|\\Wint_fast8_t|^int_fast8_t|\\Wstatic_cast|^static_cast|\\Wsuseconds_t|^suseconds_t|\\Wconst_cast|^const_cast|\\Wuseconds_t|^useconds_t|\\Wconstinit|^constinit|\\Wco_return|^co_return|\\Wuintmax_t|^uintmax_t|\\Wuintmax_t|^uintmax_t|\\Wuintmax_t|^uintmax_t|\\Wconstexpr|^constexpr|\\Wconsteval|^consteval|\\Wconstexpr|^constexpr|\\Wconstexpr|^constexpr|\\Wconsteval|^consteval|\\Wprotected|^protected|\\Wnamespace|^namespace|\\Wblksize_t|^blksize_t|\\Wco_return|^co_return|\\Win_addr_t|^in_addr_t|\\Win_port_t|^in_port_t|\\Wuintptr_t|^uintptr_t|\\Wtemplate|^template|\\Wnoexcept|^noexcept|\\Wnoexcept|^noexcept|\\Wcontinue|^continue|\\Wco_await|^co_await|\\Wco_yield|^co_yield|\\Wunsigned|^unsigned|\\Wu_quad_t|^u_quad_t|\\Wblkcnt_t|^blkcnt_t|\\Wuint16_t|^uint16_t|\\Wuint32_t|^uint32_t|\\Wuint64_t|^uint64_t|\\Wintptr_t|^intptr_t|\\Wintmax_t|^intmax_t|\\Wintmax_t|^intmax_t|\\Wvolatile|^volatile|\\Wregister|^register|\\Wrestrict|^restrict|\\Wexplicit|^explicit|\\Wvolatile|^volatile|\\Wnoexcept|^noexcept|\\Woperator|^operator|\\Wdecltype|^decltype|\\Wtypename|^typename|\\Wrequires|^requires|\\Wco_await|^co_await|\\Wco_yield|^co_yield|\\Wreflexpr|^reflexpr|\\Wswblk_t|^swblk_t|\\Wvirtual|^virtual|\\Wssize_t|^ssize_t|\\Wconcept|^concept|\\Wmutable|^mutable|\\Wfixpt_t|^fixpt_t|\\Wint16_t|^int16_t|\\Wint32_t|^int32_t|\\Wint64_t|^int64_t|\\Wuint8_t|^uint8_t|\\Wtypedef|^typedef|\\Wdaddr_t|^daddr_t|\\Wcaddr_t|^caddr_t|\\Wqaddr_t|^qaddr_t|\\Wdefault|^default|\\Wnlink_t|^nlink_t|\\Wsegsz_t|^segsz_t|\\Wu_short|^u_short|\\Wwchar_t|^wchar_t|\\Wprivate|^private|\\W__asm__|^__asm__|\\Walignas|^alignas|\\Walignof|^alignof|\\Wmutable|^mutable|\\Wnullptr|^nullptr|\\Wclock_t|^clock_t|\\Wmode_t|^mode_t|\\Wpublic|^public|\\Wsize_t|^size_t|\\Wdouble|^double|\\Wquad_t|^quad_t|\\Wstatic|^static|\\Wtime_t|^time_t|\\Wmodule|^module|\\Wimport|^import|\\Wexport|^export|\\Wextern|^extern|\\Winline|^inline|\\Wxor_eq|^xor_eq|\\Wand_eq|^and_eq|\\Wreturn|^return|\\Wfriend|^friend|\\Wnot_eq|^not_eq|\\Wsigned|^signed|\\Wstruct|^struct|\\Wint8_t|^int8_t|\\Wushort|^ushort|\\Wswitch|^switch|\\Wu_long|^u_long|\\Wtypeid|^typeid|\\Wu_char|^u_char|\\Wsizeof|^sizeof|\\Wbitand|^bitand|\\Wdelete|^delete|\\Wino_t|^ino_t|\\Wkey_t|^key_t|\\Wpid_t|^pid_t|\\Woff_t|^off_t|\\Wuid_t|^uid_t|\\Wshort|^short|\\Wbreak|^break|\\Wcatch|^catch|\\Wcompl|^compl|\\Wwhile|^while|\\Wfalse|^false|\\Wclass|^class|\\Wunion|^union|\\Wconst|^const|\\Wor_eq|^or_eq|\\Wconst|^const|\\Wthrow|^throw|\\Wbitor|^bitor|\\Wu_int|^u_int|\\Wusing|^using|\\Wdiv_t|^div_t|\\Wdev_t|^dev_t|\\Wgid_t|^gid_t|\\Wfloat|^float|\\Wlong|^long|\\Wgoto|^goto|\\Wuint|^uint|\\Wid_t|^id_t|\\Wcase|^case|\\Wauto|^auto|\\Wvoid|^void|\\Wenum|^enum|\\Wtrue|^true|\\Wchar|^char|\\Wid_t|^id_t|\\WNULL|^NULL|\\Wthis|^this|\\Wbool|^bool|\\Welse|^else|\\Wfor|^for|\\Wnew|^new|\\Wnot|^not|\\Wxor|^xor|\\Wand|^and|\\Wasm|^asm|\\Wint|^int|\\Wtry|^try|\\Wdo|^do|\\Wif|^if|\\Wor|^or)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(((?<!<)<(?!<)(?:(?:(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/)))|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<11>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(\\()", + "end": "\\)|(?=(?<!\\\\)\n)", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "source.cpp#scope_resolution_function_call_inner_generated" + } + ] + }, + "2": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp" + }, + "3": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "4": {}, + "5": { + "name": "entity.name.function.call.cpp" + }, + "6": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "7": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "8": { + "name": "comment.block.cpp" + }, + "9": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "10": { + "name": "meta.template.call.cpp", + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "11": {}, + "12": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "13": { + "name": "comment.block.cpp" + }, + "14": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "15": { + "name": "punctuation.section.arguments.begin.bracket.round.function.call.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.function.call.cpp" + } + }, + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + "function_definition": { + "begin": "(?:(?:^|\\G|(?<=;|\\}))|(?<=>|\\*\\/))\\s*+(?:((?<!\\w)template(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?<!\\w)(?:(?:(?:constexpr)|(?:consteval)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))|(?:(?:thread_local)|(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*)(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<52>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<52>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<52>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)\\b(?<!\\Wreinterpret_cast|^reinterpret_cast|\\Watomic_noexcept|^atomic_noexcept|\\Wuint_least16_t|^uint_least16_t|\\Wuint_least32_t|^uint_least32_t|\\Wuint_least64_t|^uint_least64_t|\\Watomic_cancel|^atomic_cancel|\\Watomic_commit|^atomic_commit|\\Wuint_least8_t|^uint_least8_t|\\Wuint_fast16_t|^uint_fast16_t|\\Wuint_fast32_t|^uint_fast32_t|\\Wint_least16_t|^int_least16_t|\\Wint_least32_t|^int_least32_t|\\Wint_least64_t|^int_least64_t|\\Wuint_fast64_t|^uint_fast64_t|\\Wthread_local|^thread_local|\\Wint_fast16_t|^int_fast16_t|\\Wint_fast32_t|^int_fast32_t|\\Wint_fast64_t|^int_fast64_t|\\Wsynchronized|^synchronized|\\Wuint_fast8_t|^uint_fast8_t|\\Wdynamic_cast|^dynamic_cast|\\Wint_least8_t|^int_least8_t|\\Wint_fast8_t|^int_fast8_t|\\Wstatic_cast|^static_cast|\\Wsuseconds_t|^suseconds_t|\\Wconst_cast|^const_cast|\\Wuseconds_t|^useconds_t|\\Wconstinit|^constinit|\\Wco_return|^co_return|\\Wuintmax_t|^uintmax_t|\\Wuintmax_t|^uintmax_t|\\Wuintmax_t|^uintmax_t|\\Wconstexpr|^constexpr|\\Wconsteval|^consteval|\\Wconstexpr|^constexpr|\\Wconstexpr|^constexpr|\\Wconsteval|^consteval|\\Wprotected|^protected|\\Wnamespace|^namespace|\\Wblksize_t|^blksize_t|\\Wco_return|^co_return|\\Win_addr_t|^in_addr_t|\\Win_port_t|^in_port_t|\\Wuintptr_t|^uintptr_t|\\Wtemplate|^template|\\Wnoexcept|^noexcept|\\Wnoexcept|^noexcept|\\Wcontinue|^continue|\\Wco_await|^co_await|\\Wco_yield|^co_yield|\\Wunsigned|^unsigned|\\Wu_quad_t|^u_quad_t|\\Wblkcnt_t|^blkcnt_t|\\Wuint16_t|^uint16_t|\\Wuint32_t|^uint32_t|\\Wuint64_t|^uint64_t|\\Wintptr_t|^intptr_t|\\Wintmax_t|^intmax_t|\\Wintmax_t|^intmax_t|\\Wvolatile|^volatile|\\Wregister|^register|\\Wrestrict|^restrict|\\Wexplicit|^explicit|\\Wvolatile|^volatile|\\Wnoexcept|^noexcept|\\Woperator|^operator|\\Wdecltype|^decltype|\\Wtypename|^typename|\\Wrequires|^requires|\\Wco_await|^co_await|\\Wco_yield|^co_yield|\\Wreflexpr|^reflexpr|\\Wswblk_t|^swblk_t|\\Wvirtual|^virtual|\\Wssize_t|^ssize_t|\\Wconcept|^concept|\\Wmutable|^mutable|\\Wfixpt_t|^fixpt_t|\\Wint16_t|^int16_t|\\Wint32_t|^int32_t|\\Wint64_t|^int64_t|\\Wuint8_t|^uint8_t|\\Wtypedef|^typedef|\\Wdaddr_t|^daddr_t|\\Wcaddr_t|^caddr_t|\\Wqaddr_t|^qaddr_t|\\Wdefault|^default|\\Wnlink_t|^nlink_t|\\Wsegsz_t|^segsz_t|\\Wu_short|^u_short|\\Wwchar_t|^wchar_t|\\Wprivate|^private|\\W__asm__|^__asm__|\\Walignas|^alignas|\\Walignof|^alignof|\\Wmutable|^mutable|\\Wnullptr|^nullptr|\\Wclock_t|^clock_t|\\Wmode_t|^mode_t|\\Wpublic|^public|\\Wsize_t|^size_t|\\Wdouble|^double|\\Wquad_t|^quad_t|\\Wstatic|^static|\\Wtime_t|^time_t|\\Wmodule|^module|\\Wimport|^import|\\Wexport|^export|\\Wextern|^extern|\\Winline|^inline|\\Wxor_eq|^xor_eq|\\Wand_eq|^and_eq|\\Wreturn|^return|\\Wfriend|^friend|\\Wnot_eq|^not_eq|\\Wsigned|^signed|\\Wstruct|^struct|\\Wint8_t|^int8_t|\\Wushort|^ushort|\\Wswitch|^switch|\\Wu_long|^u_long|\\Wtypeid|^typeid|\\Wu_char|^u_char|\\Wsizeof|^sizeof|\\Wbitand|^bitand|\\Wdelete|^delete|\\Wino_t|^ino_t|\\Wkey_t|^key_t|\\Wpid_t|^pid_t|\\Woff_t|^off_t|\\Wuid_t|^uid_t|\\Wshort|^short|\\Wbreak|^break|\\Wcatch|^catch|\\Wcompl|^compl|\\Wwhile|^while|\\Wfalse|^false|\\Wclass|^class|\\Wunion|^union|\\Wconst|^const|\\Wor_eq|^or_eq|\\Wconst|^const|\\Wthrow|^throw|\\Wbitor|^bitor|\\Wu_int|^u_int|\\Wusing|^using|\\Wdiv_t|^div_t|\\Wdev_t|^dev_t|\\Wgid_t|^gid_t|\\Wfloat|^float|\\Wlong|^long|\\Wgoto|^goto|\\Wuint|^uint|\\Wid_t|^id_t|\\Wcase|^case|\\Wauto|^auto|\\Wvoid|^void|\\Wenum|^enum|\\Wtrue|^true|\\Wchar|^char|\\Wid_t|^id_t|\\WNULL|^NULL|\\Wthis|^this|\\Wbool|^bool|\\Welse|^else|\\Wfor|^for|\\Wnew|^new|\\Wnot|^not|\\Wxor|^xor|\\Wand|^and|\\Wasm|^asm|\\Wint|^int|\\Wtry|^try|\\Wdo|^do|\\Wif|^if|\\Wor|^or)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\()", + "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "meta.head.function.definition.cpp" + }, + "1": { + "name": "storage.type.template.cpp" + }, + "2": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "patterns": [ + { + "include": "#attributes_context" + }, + { + "include": "source.cpp#number_literal" + } + ] + }, + "7": { + "patterns": [ + { + "match": "((?<!\\w)(?:(?:(?:constexpr)|(?:consteval)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))|(?:(?:thread_local)|(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))", + "captures": { + "1": { + "name": "storage.modifier.$1.cpp" + }, + "2": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "8": { + "name": "storage.modifier.$8.cpp" + }, + "9": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "10": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "11": { + "name": "comment.block.cpp" + }, + "12": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "13": { + "name": "meta.qualified_type.cpp", + "patterns": [ + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" + }, + { + "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)", + "name": "storage.type.$0.cpp" + }, + { + "include": "#attributes_context" + }, + { + "include": "#storage_types" + }, + { + "include": "source.cpp#number_literal" + }, + { + "include": "#string_context" + }, + { + "include": "source.cpp#comma" + }, + { + "include": "source.cpp#scope_resolution_inner_generated" + }, + { + "begin": "<", + "end": ">|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "punctuation.section.angle-brackets.begin.template.call.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.angle-brackets.end.template.call.cpp" + } + }, + "name": "meta.template.call.cpp", + "patterns": [ + { + "include": "#template_call_context" + } + ] + }, + { + "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", + "name": "entity.name.type.cpp" + } + ] + }, + "14": { + "patterns": [ + { + "include": "#attributes_context" + }, + { + "include": "source.cpp#number_literal" + } + ] + }, + "15": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "16": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "17": { + "name": "comment.block.cpp" + }, + "18": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "19": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "20": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "21": { + "name": "comment.block.cpp" + }, + "22": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "23": { + "patterns": [ + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" + }, + { + "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", + "name": "entity.name.scope-resolution.type.cpp" + }, + { + "include": "#template_call_range" + } + ] + }, + "24": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "25": {}, + "26": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "27": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "28": { + "name": "comment.block.cpp" + }, + "29": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "30": {}, + "31": { + "patterns": [ + { + "match": "\\*", + "name": "storage.modifier.pointer.cpp" + }, + { + "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", + "captures": { + "1": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "name": "invalid.illegal.reference-type.cpp" + }, + { + "match": "\\&", + "name": "storage.modifier.reference.cpp" + } + ] + }, + "32": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "33": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "34": { + "name": "comment.block.cpp" + }, + "35": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "36": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "37": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "38": { + "name": "comment.block.cpp" + }, + "39": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "40": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "41": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "42": { + "name": "comment.block.cpp" + }, + "43": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "44": { + "name": "storage.type.modifier.calling-convention.cpp" + }, + "45": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "46": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "47": { + "name": "comment.block.cpp" + }, + "48": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "49": { + "patterns": [ + { + "include": "source.cpp#scope_resolution_function_definition_inner_generated" + } + ] + }, + "50": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp" + }, + "51": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "52": {}, + "53": { + "name": "entity.name.function.definition.cpp" + }, + "54": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "55": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "56": { + "name": "comment.block.cpp" + }, + "57": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "endCaptures": {}, + "name": "meta.function.definition.cpp", + "patterns": [ + { + "begin": "\\G ?", + "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.function.definition.cpp" + } + }, + "name": "meta.head.function.definition.cpp", + "patterns": [ + { + "include": "#ever_present_context" + }, + { + "begin": "\\(", + "end": "\\)|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "punctuation.section.parameters.begin.bracket.round.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.parameters.end.bracket.round.cpp" + } + }, + "contentName": "meta.function.definition.parameters", + "patterns": [ + { + "include": "#ever_present_context" + }, + { + "include": "#parameter_or_maybe_value" + }, + { + "include": "source.cpp#comma" + }, + { + "include": "#evaluation_context" + } + ] + }, + { + "match": "(?<=^|\\))(?:\\s+)?(->)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<23>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<23>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))", + "captures": { + "1": { + "name": "punctuation.definition.function.return-type.cpp" + }, + "2": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "meta.qualified_type.cpp", + "patterns": [ + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" + }, + { + "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)", + "name": "storage.type.$0.cpp" + }, + { + "include": "#attributes_context" + }, + { + "include": "#storage_types" + }, + { + "include": "source.cpp#number_literal" + }, + { + "include": "#string_context" + }, + { + "include": "source.cpp#comma" + }, + { + "include": "source.cpp#scope_resolution_inner_generated" + }, + { + "begin": "<", + "end": ">|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "punctuation.section.angle-brackets.begin.template.call.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.angle-brackets.end.template.call.cpp" + } + }, + "name": "meta.template.call.cpp", + "patterns": [ + { + "include": "#template_call_context" + } + ] + }, + { + "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", + "name": "entity.name.type.cpp" + } + ] + }, + "7": { + "patterns": [ + { + "include": "#attributes_context" + }, + { + "include": "source.cpp#number_literal" + } + ] + }, + "8": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "9": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "10": { + "name": "comment.block.cpp" + }, + "11": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "12": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "13": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "14": { + "name": "comment.block.cpp" + }, + "15": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "16": { + "patterns": [ + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" + }, + { + "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", + "name": "entity.name.scope-resolution.type.cpp" + }, + { + "include": "#template_call_range" + } + ] + }, + "17": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "18": {}, + "19": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "20": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "21": { + "name": "comment.block.cpp" + }, + "22": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "23": {} + } + }, + { + "include": "$self" + } + ] + }, + { + "begin": "(?<=\\{|<%|\\?\\?<)", + "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.function.definition.cpp" + } + }, + "name": "meta.body.function.definition.cpp", + "patterns": [ + { + "include": "#function_body_context" + } + ] + }, + { + "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", + "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": {}, + "name": "meta.tail.function.definition.cpp", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + "function_parameter_context": { + "patterns": [ + { + "include": "#ever_present_context" + }, + { + "include": "#parameter" + }, + { + "include": "source.cpp#comma" + } + ] + }, + "function_pointer": { + "begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<18>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<18>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()(\\*)(?:\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:\\s+)?(?:(\\[)(\\w*)(\\])(?:\\s+)?)*(\\))(?:\\s+)?(\\()", + "end": "(\\))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=[{=,);>]|\\n)(?!\\()|(?=(?<!\\\\)\n)", + "beginCaptures": { + "1": { + "name": "meta.qualified_type.cpp", + "patterns": [ + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" + }, + { + "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)", + "name": "storage.type.$0.cpp" + }, + { + "include": "#attributes_context" + }, + { + "include": "#storage_types" + }, + { + "include": "source.cpp#number_literal" + }, + { + "include": "#string_context" + }, + { + "include": "source.cpp#comma" + }, + { + "include": "source.cpp#scope_resolution_inner_generated" + }, + { + "begin": "<", + "end": ">|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "punctuation.section.angle-brackets.begin.template.call.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.angle-brackets.end.template.call.cpp" + } + }, + "name": "meta.template.call.cpp", + "patterns": [ + { + "include": "#template_call_context" + } + ] + }, + { + "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", + "name": "entity.name.type.cpp" + } + ] + }, + "2": { + "patterns": [ + { + "include": "#attributes_context" + }, + { + "include": "source.cpp#number_literal" + } + ] + }, + "3": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "5": { + "name": "comment.block.cpp" + }, + "6": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "7": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "9": { + "name": "comment.block.cpp" + }, + "10": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "11": { + "patterns": [ + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" + }, + { + "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", + "name": "entity.name.scope-resolution.type.cpp" + }, + { + "include": "#template_call_range" + } + ] + }, + "12": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "13": {}, + "14": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "15": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "16": { + "name": "comment.block.cpp" + }, + "17": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "18": {}, + "19": { + "patterns": [ + { + "match": "\\*", + "name": "storage.modifier.pointer.cpp" + }, + { + "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", + "captures": { + "1": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "name": "invalid.illegal.reference-type.cpp" + }, + { + "match": "\\&", + "name": "storage.modifier.reference.cpp" + } + ] + }, + "20": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "21": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "22": { + "name": "comment.block.cpp" + }, + "23": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "24": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "25": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "26": { + "name": "comment.block.cpp" + }, + "27": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "28": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "29": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "30": { + "name": "comment.block.cpp" + }, + "31": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "32": { + "name": "punctuation.section.parens.begin.bracket.round.function.pointer.cpp" + }, + "33": { + "name": "punctuation.definition.function.pointer.dereference.cpp" + }, + "34": { + "name": "variable.other.definition.pointer.function.cpp" + }, + "35": { + "name": "punctuation.definition.begin.bracket.square.cpp" + }, + "36": { + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + "37": { + "name": "punctuation.definition.end.bracket.square.cpp" + }, + "38": { + "name": "punctuation.section.parens.end.bracket.round.function.pointer.cpp" + }, + "39": { + "name": "punctuation.section.parameters.begin.bracket.round.function.pointer.cpp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.section.parameters.end.bracket.round.function.pointer.cpp" + }, + "2": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "patterns": [ + { + "include": "#function_parameter_context" + } + ] + }, + "function_pointer_parameter": { + "begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<18>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<18>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()(\\*)(?:\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:\\s+)?(?:(\\[)(\\w*)(\\])(?:\\s+)?)*(\\))(?:\\s+)?(\\()", + "end": "(\\))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=[{=,);>]|\\n)(?!\\()|(?=(?<!\\\\)\n)", + "beginCaptures": { + "1": { + "name": "meta.qualified_type.cpp", + "patterns": [ + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" + }, + { + "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)", + "name": "storage.type.$0.cpp" + }, + { + "include": "#attributes_context" + }, + { + "include": "#storage_types" + }, + { + "include": "source.cpp#number_literal" + }, + { + "include": "#string_context" + }, + { + "include": "source.cpp#comma" + }, + { + "include": "source.cpp#scope_resolution_inner_generated" + }, + { + "begin": "<", + "end": ">|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "punctuation.section.angle-brackets.begin.template.call.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.angle-brackets.end.template.call.cpp" + } + }, + "name": "meta.template.call.cpp", + "patterns": [ + { + "include": "#template_call_context" + } + ] + }, + { + "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", + "name": "entity.name.type.cpp" + } + ] + }, + "2": { + "patterns": [ + { + "include": "#attributes_context" + }, + { + "include": "source.cpp#number_literal" + } + ] + }, + "3": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "5": { + "name": "comment.block.cpp" + }, + "6": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "7": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "9": { + "name": "comment.block.cpp" + }, + "10": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "11": { + "patterns": [ + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" + }, + { + "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", + "name": "entity.name.scope-resolution.type.cpp" + }, + { + "include": "#template_call_range" + } + ] + }, + "12": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "13": {}, + "14": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "15": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "16": { + "name": "comment.block.cpp" + }, + "17": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "18": {}, + "19": { + "patterns": [ + { + "match": "\\*", + "name": "storage.modifier.pointer.cpp" + }, + { + "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", + "captures": { + "1": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "name": "invalid.illegal.reference-type.cpp" + }, + { + "match": "\\&", + "name": "storage.modifier.reference.cpp" + } + ] + }, + "20": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "21": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "22": { + "name": "comment.block.cpp" + }, + "23": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "24": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "25": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "26": { + "name": "comment.block.cpp" + }, + "27": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "28": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "29": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "30": { + "name": "comment.block.cpp" + }, + "31": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "32": { + "name": "punctuation.section.parens.begin.bracket.round.function.pointer.cpp" + }, + "33": { + "name": "punctuation.definition.function.pointer.dereference.cpp" + }, + "34": { + "name": "variable.parameter.pointer.function.cpp" + }, + "35": { + "name": "punctuation.definition.begin.bracket.square.cpp" + }, + "36": { + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + "37": { + "name": "punctuation.definition.end.bracket.square.cpp" + }, + "38": { + "name": "punctuation.section.parens.end.bracket.round.function.pointer.cpp" + }, + "39": { + "name": "punctuation.section.parameters.begin.bracket.round.function.pointer.cpp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.section.parameters.end.bracket.round.function.pointer.cpp" + }, + "2": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "patterns": [ + { + "include": "#function_parameter_context" + } + ] + }, + "gcc_attributes": { + "begin": "__attribute(?:__)?\\s*\\(\\s*\\(", + "end": "\\)\\s*\\)|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "punctuation.section.attribute.begin.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.attribute.end.cpp" + } + }, + "name": "support.other.attribute.cpp", + "patterns": [ + { + "include": "#attributes_context" + }, + { + "begin": "\\(", + "end": "\\)|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": {}, + "patterns": [ + { + "include": "#attributes_context" + }, + { + "include": "#string_context" + }, + { + "include": "#ever_present_context" + } + ] + }, + { + "match": "(using)\\s+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))", + "captures": { + "1": { + "name": "keyword.other.using.directive.cpp" + }, + "2": { + "name": "entity.name.namespace.cpp" + } + } + }, + { + "match": ",", + "name": "punctuation.separator.attribute.cpp" + }, + { + "match": ":", + "name": "punctuation.accessor.attribute.cpp" + }, + { + "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=::)", + "name": "entity.name.namespace.cpp" + }, + { + "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", + "name": "entity.other.attribute.$0.cpp" + }, + { + "include": "source.cpp#number_literal" + }, + { + "include": "#ever_present_context" + } + ] + }, + "inheritance_context": { + "patterns": [ + { + "include": "#ever_present_context" + }, + { + "match": ",", + "name": "punctuation.separator.delimiter.comma.inheritance.cpp" + }, + { + "match": "(?<!\\w)(?:(?:protected)|(?:private)|(?:public))(?!\\w)", + "name": "storage.type.modifier.access.$0.cpp" + }, + { + "match": "(?<!\\w)virtual(?!\\w)", + "name": "storage.type.modifier.virtual.cpp" + }, + { + "match": "(?<=protected|virtual|private|public|,|:)(?:\\s+)?(?!(?:(?:(?:protected)|(?:private)|(?:public))|virtual))(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<12>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<12>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))", + "captures": { + "1": { + "name": "meta.qualified_type.cpp", + "patterns": [ + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" + }, + { + "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)", + "name": "storage.type.$0.cpp" + }, + { + "include": "#attributes_context" + }, + { + "include": "#storage_types" + }, + { + "include": "source.cpp#number_literal" + }, + { + "include": "#string_context" + }, + { + "include": "source.cpp#comma" + }, + { + "include": "source.cpp#scope_resolution_inner_generated" + }, + { + "begin": "<", + "end": ">|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "punctuation.section.angle-brackets.begin.template.call.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.angle-brackets.end.template.call.cpp" + } + }, + "name": "meta.template.call.cpp", + "patterns": [ + { + "include": "#template_call_context" + } + ] + }, + { + "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", + "name": "entity.name.type.cpp" + } + ] + }, + "2": { + "patterns": [ + { + "include": "#attributes_context" + }, + { + "include": "source.cpp#number_literal" + } + ] + }, + "3": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "4": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "5": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "6": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "7": { + "patterns": [ + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" + }, + { + "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", + "name": "entity.name.scope-resolution.type.cpp" + }, + { + "include": "#template_call_range" + } + ] + }, + "8": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "9": {}, + "10": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "11": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "12": {} + } + } + ] + }, + "lambdas": { + "begin": "(?:(?<=[^\\s]|^)(?<![\\w\\]\\)\\[\\*&\">])|(?<=\\Wreturn|^return))(?:\\s+)?(\\[(?!\\[| *+\"| *+\\d))((?:[^\\[\\]]|((?<!\\[)\\[(?!\\[)(?:[^\\[\\]]*+\\g<3>?)++\\]))*+)(\\](?!((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))[\\[\\];=]))", + "end": "(?<=[;}])|(?=(?<!\\\\)\n)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.capture.begin.lambda.cpp" + }, + "2": { + "name": "meta.lambda.capture.cpp", + "patterns": [ + { + "include": "source.cpp#the_this_keyword" + }, + { + "match": "((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?=\\]|\\z|$)|(,))|(\\=))", + "captures": { + "1": { + "name": "variable.parameter.capture.cpp" + }, + "2": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "punctuation.separator.delimiter.comma.cpp" + }, + "7": { + "name": "keyword.operator.assignment.cpp" + } + } + }, + { + "include": "#evaluation_context" + } + ] + }, + "3": {}, + "4": { + "name": "punctuation.definition.capture.end.lambda.cpp" + }, + "5": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "6": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "7": { + "name": "comment.block.cpp" + }, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "endCaptures": {}, + "patterns": [ + { + "begin": "\\(", + "end": "\\)|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.parameters.begin.lambda.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.parameters.end.lambda.cpp" + } + }, + "name": "meta.function.definition.parameters.lambda.cpp", + "patterns": [ + { + "include": "#function_parameter_context" + } + ] + }, + { + "match": "(?<!\\w)(?:(?:constexpr)|(?:consteval)|(?:mutable))(?!\\w)", + "name": "storage.modifier.lambda.$0.cpp" + }, + { + "begin": "->", + "end": "(?=\\{)|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.lambda.return-type.cpp" + } + }, + "endCaptures": {}, + "patterns": [ + { + "include": "#comments" + }, + { + "match": "\\S+", + "name": "storage.type.return-type.lambda.cpp" + } + ] + }, + { + "begin": "\\{", + "end": "\\}|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.lambda.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.lambda.cpp" + } + }, + "name": "meta.function.definition.body.lambda.cpp", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + "line": { + "begin": "^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(#)(?:\\s+)?line\\b", + "end": "(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "keyword.control.directive.line.cpp" + }, + "1": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "5": { + "name": "punctuation.definition.directive.cpp" + } + }, + "endCaptures": {}, + "name": "meta.preprocessor.line.cpp", + "patterns": [ + { + "include": "#string_context" + }, + { + "include": "#preprocessor_number_literal" + }, + { + "include": "source.cpp#line_continuation_character" + } + ] + }, + "line_comment": { + "begin": "\\s*+(\\/\\/)", + "end": "(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))|(?=(?<!\\\\)\n)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.cpp" + } + }, + "endCaptures": {}, + "name": "comment.line.double-slash.cpp", + "patterns": [ + { + "include": "source.cpp#line_continuation_character" + } + ] + }, + "macro": { + "begin": "(^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(#)(?:\\s+)?define\\b)(?:\\s+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))", + "end": "(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))|(?=(?<!\\\\)\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.directive.define.cpp" + }, + "2": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "punctuation.definition.directive.cpp" + }, + "7": { + "name": "entity.name.function.preprocessor.cpp" + } + }, + "endCaptures": {}, + "name": "meta.preprocessor.macro.cpp", + "patterns": [ + { + "match": "\\G(?:\\s+)?(\\()([^\\(]*)(\\))", + "captures": { + "1": { + "name": "punctuation.definition.parameters.begin.preprocessor.cpp" + }, + "2": { + "name": "meta.function.preprocessor.parameters.cpp", + "patterns": [ + { + "match": "(?<=[(,])(?:\\s+)?((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:\\s+)?", + "captures": { + "1": { + "name": "variable.parameter.preprocessor.cpp" + } + } + }, + { + "match": ",", + "name": "punctuation.separator.parameters.cpp" + }, + { + "match": "\\.\\.\\.", + "name": "punctuation.vararg-ellipses.variable.parameter.preprocessor.cpp" + } + ] + }, + "3": { + "name": "punctuation.definition.parameters.end.preprocessor.cpp" + } + } + }, + { + "include": "#macro_context" + }, + { + "include": "source.cpp#macro_argument" + } + ] + }, + "macro_context": { + "patterns": [ + { + "include": "source.cpp.embedded.macro" + } + ] + }, + "method_access": { + "begin": "(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)this(?!\\w))|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*|(?<=\\]|\\)))(?:\\s+)?))(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\s+)?(?:(?:\\.\\*|\\.)|(?:->\\*|->))(?:\\s+)?)*)(?:\\s+)?(~?(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:\\s+)?(\\()", + "end": "\\)|(?=(?<!\\\\)\n)", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "5": { + "name": "variable.language.this.cpp" + }, + "6": { + "name": "variable.other.object.access.cpp" + }, + "7": { + "name": "punctuation.separator.dot-access.cpp" + }, + "8": { + "name": "punctuation.separator.pointer-access.cpp" + }, + "9": { + "patterns": [ + { + "match": "(?<=(?:\\.\\*|\\.|->|->\\*))(?:\\s+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)this(?!\\w))|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*|(?<=\\]|\\)))(?:\\s+)?))(?:((?:\\.\\*|\\.))|((?:->\\*|->)))", + "captures": { + "1": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "5": { + "name": "variable.language.this.cpp" + }, + "6": { + "name": "variable.other.object.property.cpp" + }, + "7": { + "name": "punctuation.separator.dot-access.cpp" + }, + "8": { + "name": "punctuation.separator.pointer-access.cpp" + } + } + }, + { + "match": "(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)this(?!\\w))|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*|(?<=\\]|\\)))(?:\\s+)?))(?:((?:\\.\\*|\\.))|((?:->\\*|->)))", + "captures": { + "1": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "5": { + "name": "variable.language.this.cpp" + }, + "6": { + "name": "variable.other.object.access.cpp" + }, + "7": { + "name": "punctuation.separator.dot-access.cpp" + }, + "8": { + "name": "punctuation.separator.pointer-access.cpp" + } + } + }, + { + "include": "source.cpp#member_access" + }, + { + "include": "#method_access" + } + ] + }, + "10": { + "name": "entity.name.function.member.cpp" + }, + "11": { + "name": "punctuation.section.arguments.begin.bracket.round.function.member.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.function.member.cpp" + } + }, + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + "ms_attributes": { + "begin": "__declspec\\(", + "end": "\\)|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "punctuation.section.attribute.begin.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.attribute.end.cpp" + } + }, + "name": "support.other.attribute.cpp", + "patterns": [ + { + "include": "#attributes_context" + }, + { + "begin": "\\(", + "end": "\\)|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": {}, + "patterns": [ + { + "include": "#attributes_context" + }, + { + "include": "#string_context" + }, + { + "include": "#ever_present_context" + } + ] + }, + { + "match": "(using)\\s+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))", + "captures": { + "1": { + "name": "keyword.other.using.directive.cpp" + }, + "2": { + "name": "entity.name.namespace.cpp" + } + } + }, + { + "match": ",", + "name": "punctuation.separator.attribute.cpp" + }, + { + "match": ":", + "name": "punctuation.accessor.attribute.cpp" + }, + { + "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=::)", + "name": "entity.name.namespace.cpp" + }, + { + "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", + "name": "entity.other.attribute.$0.cpp" + }, + { + "include": "source.cpp#number_literal" + }, + { + "include": "#ever_present_context" + } + ] + }, + "namespace_block": { + "begin": "((?<!\\w)namespace(?!\\w))", + "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "meta.head.namespace.cpp" + }, + "1": { + "name": "keyword.other.namespace.definition.cpp storage.type.namespace.definition.cpp" + } + }, + "endCaptures": {}, + "name": "meta.block.namespace.cpp", + "patterns": [ + { + "begin": "\\G ?", + "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.namespace.cpp" + } + }, + "name": "meta.head.namespace.cpp", + "patterns": [ + { + "include": "#ever_present_context" + }, + { + "include": "#attributes_context" + }, + { + "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<4>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)(?:\\s+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(?:\\s+)?(?:(::)(?:\\s+)?(inline))?", + "captures": { + "1": { + "patterns": [ + { + "include": "source.cpp#scope_resolution_namespace_block_inner_generated" + } + ] + }, + "2": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp" + }, + "3": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "4": {}, + "5": { + "name": "entity.name.namespace.cpp" + }, + "6": { + "name": "punctuation.separator.scope-resolution.namespace.block.cpp" + }, + "7": { + "name": "storage.modifier.inline.cpp" + } + } + } + ] + }, + { + "begin": "(?<=\\{|<%|\\?\\?<)", + "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.namespace.cpp" + } + }, + "name": "meta.body.namespace.cpp", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", + "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": {}, + "name": "meta.tail.namespace.cpp", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + "noexcept_operator": { + "begin": "((?<!\\w)noexcept(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", + "end": "\\)|(?=(?<!\\\\)\n)", + "beginCaptures": { + "1": { + "name": "keyword.operator.functionlike.cpp keyword.operator.noexcept.cpp" + }, + "2": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "punctuation.section.arguments.begin.bracket.round.operator.noexcept.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.operator.noexcept.cpp" + } + }, + "contentName": "meta.arguments.operator.noexcept", + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + "operator_overload": { + "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<55>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<55>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<55>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(operator)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<55>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(?:(?:((?:(?:delete\\[\\])|(?:delete)|(?:new\\[\\])|(?:<=>)|(?:<<=)|(?:new)|(?:>>=)|(?:\\->\\*)|(?:\\/=)|(?:%=)|(?:&=)|(?:>=)|(?:\\|=)|(?:\\+\\+)|(?:\\-\\-)|(?:\\(\\))|(?:\\[\\])|(?:\\->)|(?:\\+\\+)|(?:<<)|(?:>>)|(?:\\-\\-)|(?:<=)|(?:\\^=)|(?:==)|(?:!=)|(?:&&)|(?:\\|\\|)|(?:\\+=)|(?:\\-=)|(?:\\*=)|,|\\+|\\-|!|~|\\*|&|\\*|\\/|%|\\+|\\-|<|>|&|\\^|\\||=))|((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:\\[\\])?)))|(\"\")((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\<|\\()", + "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "meta.head.function.definition.special.operator-overload.cpp" + }, + "1": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "5": { + "name": "meta.qualified_type.cpp", + "patterns": [ + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" + }, + { + "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)", + "name": "storage.type.$0.cpp" + }, + { + "include": "#attributes_context" + }, + { + "include": "#storage_types" + }, + { + "include": "source.cpp#number_literal" + }, + { + "include": "#string_context" + }, + { + "include": "source.cpp#comma" + }, + { + "include": "source.cpp#scope_resolution_inner_generated" + }, + { + "begin": "<", + "end": ">|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "punctuation.section.angle-brackets.begin.template.call.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.angle-brackets.end.template.call.cpp" + } + }, + "name": "meta.template.call.cpp", + "patterns": [ + { + "include": "#template_call_context" + } + ] + }, + { + "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", + "name": "entity.name.type.cpp" + } + ] + }, + "6": { + "patterns": [ + { + "include": "#attributes_context" + }, + { + "include": "source.cpp#number_literal" + } + ] + }, + "7": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "9": { + "name": "comment.block.cpp" + }, + "10": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "11": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "12": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "13": { + "name": "comment.block.cpp" + }, + "14": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "15": { + "patterns": [ + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" + }, + { + "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", + "name": "entity.name.scope-resolution.type.cpp" + }, + { + "include": "#template_call_range" + } + ] + }, + "16": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "17": {}, + "18": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "19": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "20": { + "name": "comment.block.cpp" + }, + "21": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "22": {}, + "23": { + "patterns": [ + { + "match": "\\*", + "name": "storage.modifier.pointer.cpp" + }, + { + "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", + "captures": { + "1": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "name": "invalid.illegal.reference-type.cpp" + }, + { + "match": "\\&", + "name": "storage.modifier.reference.cpp" + } + ] + }, + "24": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "25": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "26": { + "name": "comment.block.cpp" + }, + "27": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "28": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "29": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "30": { + "name": "comment.block.cpp" + }, + "31": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "32": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "33": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "34": { + "name": "comment.block.cpp" + }, + "35": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "36": { + "name": "storage.type.modifier.calling-convention.cpp" + }, + "37": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "38": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "39": { + "name": "comment.block.cpp" + }, + "40": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "41": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "42": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "43": { + "name": "comment.block.cpp" + }, + "44": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "45": { + "patterns": [ + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.operator.cpp" + }, + { + "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", + "name": "entity.name.scope-resolution.operator.cpp" + }, + { + "include": "#template_call_range" + } + ] + }, + "46": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "47": {}, + "48": { + "name": "keyword.other.operator.overload.cpp" + }, + "49": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "50": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "51": { + "name": "comment.block.cpp" + }, + "52": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "53": { + "patterns": [ + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.operator-overload.cpp" + }, + { + "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", + "name": "entity.name.scope-resolution.operator-overload.cpp" + }, + { + "include": "#template_call_range" + } + ] + }, + "54": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "55": {}, + "56": { + "name": "entity.name.operator.cpp" + }, + "57": { + "name": "entity.name.operator.type.cpp" + }, + "58": { + "patterns": [ + { + "match": "\\*", + "name": "entity.name.operator.type.pointer.cpp" + }, + { + "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", + "captures": { + "1": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "name": "invalid.illegal.reference-type.cpp" + }, + { + "match": "\\&", + "name": "entity.name.operator.type.reference.cpp" + } + ] + }, + "59": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "60": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "61": { + "name": "comment.block.cpp" + }, + "62": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "63": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "64": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "65": { + "name": "comment.block.cpp" + }, + "66": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "67": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "68": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "69": { + "name": "comment.block.cpp" + }, + "70": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "71": { + "name": "entity.name.operator.type.array.cpp" + }, + "72": { + "name": "entity.name.operator.custom-literal.cpp" + }, + "73": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "74": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "75": { + "name": "comment.block.cpp" + }, + "76": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "77": { + "name": "entity.name.operator.custom-literal.cpp" + }, + "78": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "79": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "80": { + "name": "comment.block.cpp" + }, + "81": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "endCaptures": {}, + "name": "meta.function.definition.special.operator-overload.cpp", + "patterns": [ + { + "begin": "\\G ?", + "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.function.definition.special.operator-overload.cpp" + } + }, + "name": "meta.head.function.definition.special.operator-overload.cpp", + "patterns": [ + { + "include": "#ever_present_context" + }, + { + "include": "#template_call_range" + }, + { + "begin": "\\(", + "end": "\\)|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "punctuation.section.parameters.begin.bracket.round.special.operator-overload.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.parameters.end.bracket.round.special.operator-overload.cpp" + } + }, + "contentName": "meta.function.definition.parameters.special.operator-overload", + "patterns": [ + { + "include": "#function_parameter_context" + }, + { + "include": "#evaluation_context" + } + ] + }, + { + "include": "source.cpp#qualifiers_and_specifiers_post_parameters" + }, + { + "match": "(\\=)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(default)|(delete))", + "captures": { + "1": { + "name": "keyword.operator.assignment.cpp" + }, + "2": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "keyword.other.default.function.cpp" + }, + "7": { + "name": "keyword.other.delete.function.cpp" + } + } + }, + { + "include": "$self" + } + ] + }, + { + "begin": "(?<=\\{|<%|\\?\\?<)", + "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.function.definition.special.operator-overload.cpp" + } + }, + "name": "meta.body.function.definition.special.operator-overload.cpp", + "patterns": [ + { + "include": "#function_body_context" + } + ] + }, + { + "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", + "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": {}, + "name": "meta.tail.function.definition.special.operator-overload.cpp", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + "operators": { + "patterns": [ + { + "begin": "((?<!\\w)sizeof(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", + "end": "\\)|(?=(?<!\\\\)\n)", + "beginCaptures": { + "1": { + "name": "keyword.operator.functionlike.cpp keyword.operator.sizeof.cpp" + }, + "2": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "punctuation.section.arguments.begin.bracket.round.operator.sizeof.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.operator.sizeof.cpp" + } + }, + "contentName": "meta.arguments.operator.sizeof", + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + { + "begin": "((?<!\\w)alignof(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", + "end": "\\)|(?=(?<!\\\\)\n)", + "beginCaptures": { + "1": { + "name": "keyword.operator.functionlike.cpp keyword.operator.alignof.cpp" + }, + "2": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "punctuation.section.arguments.begin.bracket.round.operator.alignof.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.operator.alignof.cpp" + } + }, + "contentName": "meta.arguments.operator.alignof", + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + { + "begin": "((?<!\\w)alignas(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", + "end": "\\)|(?=(?<!\\\\)\n)", + "beginCaptures": { + "1": { + "name": "keyword.operator.functionlike.cpp keyword.operator.alignas.cpp" + }, + "2": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "punctuation.section.arguments.begin.bracket.round.operator.alignas.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.operator.alignas.cpp" + } + }, + "contentName": "meta.arguments.operator.alignas", + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + { + "begin": "((?<!\\w)typeid(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", + "end": "\\)|(?=(?<!\\\\)\n)", + "beginCaptures": { + "1": { + "name": "keyword.operator.functionlike.cpp keyword.operator.typeid.cpp" + }, + "2": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "punctuation.section.arguments.begin.bracket.round.operator.typeid.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.operator.typeid.cpp" + } + }, + "contentName": "meta.arguments.operator.typeid", + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + { + "begin": "((?<!\\w)noexcept(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", + "end": "\\)|(?=(?<!\\\\)\n)", + "beginCaptures": { + "1": { + "name": "keyword.operator.functionlike.cpp keyword.operator.noexcept.cpp" + }, + "2": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "punctuation.section.arguments.begin.bracket.round.operator.noexcept.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.operator.noexcept.cpp" + } + }, + "contentName": "meta.arguments.operator.noexcept", + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + { + "begin": "(\\bsizeof\\.\\.\\.)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", + "end": "\\)|(?=(?<!\\\\)\n)", + "beginCaptures": { + "1": { + "name": "keyword.operator.functionlike.cpp keyword.operator.sizeof.variadic.cpp" + }, + "2": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "punctuation.section.arguments.begin.bracket.round.operator.sizeof.variadic.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.operator.sizeof.variadic.cpp" + } + }, + "contentName": "meta.arguments.operator.sizeof.variadic", + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + { + "match": "--", + "name": "keyword.operator.decrement.cpp" + }, + { + "match": "\\+\\+", + "name": "keyword.operator.increment.cpp" + }, + { + "match": "%=|\\+=|-=|\\*=|(?<!\\()\\/=", + "name": "keyword.operator.assignment.compound.cpp" + }, + { + "match": "&=|\\^=|<<=|>>=|\\|=", + "name": "keyword.operator.assignment.compound.bitwise.cpp" + }, + { + "match": "<<|>>", + "name": "keyword.operator.bitwise.shift.cpp" + }, + { + "match": "!=|<=|>=|==|<|>", + "name": "keyword.operator.comparison.cpp" + }, + { + "match": "&&|!|\\|\\|", + "name": "keyword.operator.logical.cpp" + }, + { + "match": "&|\\||\\^|~", + "name": "keyword.operator.bitwise.cpp" + }, + { + "include": "source.cpp#assignment_operator" + }, + { + "match": "%|\\*|\\/|-|\\+", + "name": "keyword.operator.arithmetic.cpp" + }, + { + "include": "#ternary_operator" + } + ] + }, + "parameter": { + "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\w)", + "end": "(?:(?=\\))|(,))|(?=(?<!\\\\)\n)", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.separator.delimiter.comma.cpp" + } + }, + "name": "meta.parameter.cpp", + "patterns": [ + { + "include": "#ever_present_context" + }, + { + "include": "#string_context" + }, + { + "include": "#function_pointer_parameter" + }, + { + "include": "#decltype" + }, + { + "include": "source.cpp#vararg_ellipses" + }, + { + "match": "((?:((?:(?:thread_local)|(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:\\s*+(?<!\\w)(?:(?:(?:((?:(?:unsigned)|(?:wchar_t)|(?:double)|(?:signed)|(?:short)|(?:float)|(?:auto)|(?:void)|(?:long)|(?:char)|(?:bool)|(?:int)))|((?:(?:uint_least32_t)|(?:uint_least64_t)|(?:uint_least16_t)|(?:uint_fast64_t)|(?:uint_least8_t)|(?:int_least64_t)|(?:int_least32_t)|(?:int_least16_t)|(?:uint_fast16_t)|(?:uint_fast32_t)|(?:int_least8_t)|(?:int_fast16_t)|(?:int_fast32_t)|(?:int_fast64_t)|(?:uint_fast8_t)|(?:int_fast8_t)|(?:suseconds_t)|(?:useconds_t)|(?:uintmax_t)|(?:uintmax_t)|(?:in_port_t)|(?:uintmax_t)|(?:in_addr_t)|(?:blksize_t)|(?:uintptr_t)|(?:intmax_t)|(?:intptr_t)|(?:blkcnt_t)|(?:intmax_t)|(?:u_quad_t)|(?:uint16_t)|(?:uint32_t)|(?:uint64_t)|(?:ssize_t)|(?:fixpt_t)|(?:qaddr_t)|(?:u_short)|(?:int16_t)|(?:int32_t)|(?:int64_t)|(?:uint8_t)|(?:daddr_t)|(?:caddr_t)|(?:swblk_t)|(?:clock_t)|(?:segsz_t)|(?:nlink_t)|(?:time_t)|(?:u_long)|(?:ushort)|(?:quad_t)|(?:mode_t)|(?:size_t)|(?:u_char)|(?:int8_t)|(?:u_int)|(?:uid_t)|(?:off_t)|(?:pid_t)|(?:gid_t)|(?:dev_t)|(?:div_t)|(?:key_t)|(?:ino_t)|(?:id_t)|(?:id_t)|(?:uint))))|((?:(?:pthread_rwlockattr_t)|(?:pthread_mutexattr_t)|(?:pthread_condattr_t)|(?:pthread_rwlock_t)|(?:pthread_mutex_t)|(?:pthread_cond_t)|(?:pthread_attr_t)|(?:pthread_once_t)|(?:pthread_key_t)|(?:pthread_t))))|([a-zA-Z_]\\w*_t))(?!\\w)|((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\b\\b(?<!\\Wthread_local|^thread_local|\\Wvolatile|^volatile|\\Wregister|^register|\\Wrestrict|^restrict|\\Wstatic|^static|\\Wextern|^extern|\\Wconst|^const)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=,|\\)|=)", + "captures": { + "1": { + "patterns": [ + { + "include": "#storage_types" + } + ] + }, + "2": { + "name": "storage.modifier.specifier.parameter.cpp" + }, + "3": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "5": { + "name": "comment.block.cpp" + }, + "6": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "7": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "9": { + "name": "comment.block.cpp" + }, + "10": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "11": { + "name": "storage.type.primitive.cpp storage.type.built-in.primitive.cpp" + }, + "12": { + "name": "storage.type.cpp storage.type.built-in.cpp" + }, + "13": { + "name": "support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp" + }, + "14": { + "name": "support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp" + }, + "15": { + "name": "entity.name.type.parameter.cpp" + }, + "16": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "17": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "18": { + "name": "comment.block.cpp" + }, + "19": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + }, + { + "include": "#storage_types" + }, + { + "include": "source.cpp#scope_resolution_parameter_inner_generated" + }, + { + "match": "(?:(?:struct)|(?:class)|(?:union)|(?:enum))", + "name": "storage.type.$0.cpp" + }, + { + "begin": "(?<==)", + "end": "(?:(?=\\))|(,))|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": { + "1": { + "name": "punctuation.separator.delimiter.comma.cpp" + } + }, + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + { + "match": "\\=", + "name": "keyword.operator.assignment.cpp" + }, + { + "match": "(?<!\\s|\\(|,|:)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\)|,|\\[|=|\\n)", + "captures": { + "1": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "5": { + "name": "variable.parameter.cpp" + }, + "6": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "7": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "8": { + "name": "comment.block.cpp" + }, + "9": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + }, + { + "include": "#attributes_context" + }, + { + "begin": "\\[", + "end": "\\]|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.begin.bracket.square.array.type.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.end.bracket.square.array.type.cpp" + } + }, + "name": "meta.bracket.square.array.cpp", + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + { + "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b(?<!\\Wstruct|^struct|\\Wclass|^class|\\Wunion|^union|\\Wenum|^enum)", + "name": "entity.name.type.parameter.cpp" + }, + { + "include": "#template_call_range" + }, + { + "match": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*)", + "captures": { + "0": { + "patterns": [ + { + "match": "\\*", + "name": "storage.modifier.pointer.cpp" + }, + { + "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", + "captures": { + "1": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "name": "invalid.illegal.reference-type.cpp" + }, + { + "match": "\\&", + "name": "storage.modifier.reference.cpp" + } + ] + }, + "1": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "5": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "6": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "7": { + "name": "comment.block.cpp" + }, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + }, + { + "include": "#ever_present_context" + } + ] + }, + "parameter_or_maybe_value": { + "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\w)", + "end": "(?:(?=\\))|(,))|(?=(?<!\\\\)\n)", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.separator.delimiter.comma.cpp" + } + }, + "name": "meta.parameter.cpp", + "patterns": [ + { + "include": "#ever_present_context" + }, + { + "include": "#function_pointer_parameter" + }, + { + "include": "source.cpp#memory_operators" + }, + { + "include": "#builtin_storage_type_initilizer" + }, + { + "include": "#curly_initializer" + }, + { + "include": "#decltype" + }, + { + "include": "source.cpp#vararg_ellipses" + }, + { + "match": "((?:((?:(?:thread_local)|(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:\\s*+(?<!\\w)(?:(?:(?:((?:(?:unsigned)|(?:wchar_t)|(?:double)|(?:signed)|(?:short)|(?:float)|(?:auto)|(?:void)|(?:long)|(?:char)|(?:bool)|(?:int)))|((?:(?:uint_least32_t)|(?:uint_least64_t)|(?:uint_least16_t)|(?:uint_fast64_t)|(?:uint_least8_t)|(?:int_least64_t)|(?:int_least32_t)|(?:int_least16_t)|(?:uint_fast16_t)|(?:uint_fast32_t)|(?:int_least8_t)|(?:int_fast16_t)|(?:int_fast32_t)|(?:int_fast64_t)|(?:uint_fast8_t)|(?:int_fast8_t)|(?:suseconds_t)|(?:useconds_t)|(?:uintmax_t)|(?:uintmax_t)|(?:in_port_t)|(?:uintmax_t)|(?:in_addr_t)|(?:blksize_t)|(?:uintptr_t)|(?:intmax_t)|(?:intptr_t)|(?:blkcnt_t)|(?:intmax_t)|(?:u_quad_t)|(?:uint16_t)|(?:uint32_t)|(?:uint64_t)|(?:ssize_t)|(?:fixpt_t)|(?:qaddr_t)|(?:u_short)|(?:int16_t)|(?:int32_t)|(?:int64_t)|(?:uint8_t)|(?:daddr_t)|(?:caddr_t)|(?:swblk_t)|(?:clock_t)|(?:segsz_t)|(?:nlink_t)|(?:time_t)|(?:u_long)|(?:ushort)|(?:quad_t)|(?:mode_t)|(?:size_t)|(?:u_char)|(?:int8_t)|(?:u_int)|(?:uid_t)|(?:off_t)|(?:pid_t)|(?:gid_t)|(?:dev_t)|(?:div_t)|(?:key_t)|(?:ino_t)|(?:id_t)|(?:id_t)|(?:uint))))|((?:(?:pthread_rwlockattr_t)|(?:pthread_mutexattr_t)|(?:pthread_condattr_t)|(?:pthread_rwlock_t)|(?:pthread_mutex_t)|(?:pthread_cond_t)|(?:pthread_attr_t)|(?:pthread_once_t)|(?:pthread_key_t)|(?:pthread_t))))|([a-zA-Z_]\\w*_t))(?!\\w)|((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\b\\b(?<!\\Wthread_local|^thread_local|\\Wvolatile|^volatile|\\Wregister|^register|\\Wrestrict|^restrict|\\Wstatic|^static|\\Wextern|^extern|\\Wconst|^const)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=,|\\)|=)", + "captures": { + "1": { + "patterns": [ + { + "include": "#storage_types" + } + ] + }, + "2": { + "name": "storage.modifier.specifier.parameter.cpp" + }, + "3": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "5": { + "name": "comment.block.cpp" + }, + "6": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "7": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "9": { + "name": "comment.block.cpp" + }, + "10": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "11": { + "name": "storage.type.primitive.cpp storage.type.built-in.primitive.cpp" + }, + "12": { + "name": "storage.type.cpp storage.type.built-in.cpp" + }, + "13": { + "name": "support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp" + }, + "14": { + "name": "support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp" + }, + "15": { + "name": "entity.name.type.parameter.cpp" + }, + "16": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "17": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "18": { + "name": "comment.block.cpp" + }, + "19": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + }, + { + "include": "#storage_types" + }, + { + "include": "#function_call" + }, + { + "include": "source.cpp#scope_resolution_parameter_inner_generated" + }, + { + "match": "(?:(?:struct)|(?:class)|(?:union)|(?:enum))", + "name": "storage.type.$0.cpp" + }, + { + "begin": "(?<==)", + "end": "(?:(?=\\))|(,))|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": { + "1": { + "name": "punctuation.separator.delimiter.comma.cpp" + } + }, + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + { + "match": "(?<!\\s|\\(|,|:)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=(?:\\)|,|\\[|=|\\/\\/|(?:\\n|$)))", + "captures": { + "1": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "5": { + "name": "variable.parameter.cpp" + }, + "6": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "7": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "8": { + "name": "comment.block.cpp" + }, + "9": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + }, + { + "include": "#attributes_context" + }, + { + "begin": "\\[", + "end": "\\]|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.begin.bracket.square.array.type.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.end.bracket.square.array.type.cpp" + } + }, + "name": "meta.bracket.square.array.cpp", + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + { + "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b(?<!\\Wstruct|^struct|\\Wclass|^class|\\Wunion|^union|\\Wenum|^enum)", + "name": "entity.name.type.parameter.cpp" + }, + { + "include": "#template_call_range" + }, + { + "match": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*)", + "captures": { + "0": { + "patterns": [ + { + "match": "\\*", + "name": "storage.modifier.pointer.cpp" + }, + { + "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", + "captures": { + "1": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "name": "invalid.illegal.reference-type.cpp" + }, + { + "match": "\\&", + "name": "storage.modifier.reference.cpp" + } + ] + }, + "1": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "5": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "6": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "7": { + "name": "comment.block.cpp" + }, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + }, + { + "include": "#evaluation_context" + }, + { + "include": "#ever_present_context" + } + ] + }, + "parentheses": { + "begin": "\\(", + "end": "\\)|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "punctuation.section.parens.begin.bracket.round.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.parens.end.bracket.round.cpp" + } + }, + "name": "meta.parens.cpp", + "patterns": [ + { + "include": "source.cpp#over_qualified_types" + }, + { + "match": "(?<!:):(?!:)", + "name": "punctuation.separator.colon.range-based.cpp" + }, + { + "include": "#evaluation_context" + } + ] + }, + "pragma": { + "begin": "^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(#)(?:\\s+)?pragma\\b", + "end": "(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "keyword.control.directive.pragma.cpp" + }, + "1": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "5": { + "name": "punctuation.definition.directive.cpp" + } + }, + "endCaptures": {}, + "name": "meta.preprocessor.pragma.cpp", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#string_context" + }, + { + "match": "[a-zA-Z_$][\\w\\-$]*", + "name": "entity.other.attribute-name.pragma.preprocessor.cpp" + }, + { + "include": "#preprocessor_number_literal" + }, + { + "include": "source.cpp#line_continuation_character" + } + ] + }, + "preprocessor_conditional_context": { + "patterns": [ + { + "include": "#preprocessor_conditional_defined" + }, + { + "include": "#comments" + }, + { + "include": "source.cpp#language_constants" + }, + { + "include": "#string_context" + }, + { + "include": "source.cpp#d9bc4796b0b_preprocessor_number_literal" + }, + { + "include": "#operators" + }, + { + "include": "source.cpp#predefined_macros" + }, + { + "include": "source.cpp#macro_name" + }, + { + "include": "source.cpp#line_continuation_character" + } + ] + }, + "preprocessor_conditional_defined": { + "begin": "((?<!\\w)defined(?!\\w))(\\()", + "end": "(?:\\)|(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$)))|(?=(?<!\\\\)\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.directive.conditional.defined.cpp" + }, + "2": { + "name": "punctuation.section.parens.control.defined.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.parens.control.defined.cpp" + } + }, + "patterns": [ + { + "include": "source.cpp#macro_name" + } + ] + }, + "preprocessor_conditional_parentheses": { + "begin": "\\(", + "end": "\\)|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "punctuation.section.parens.begin.bracket.round.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.parens.end.bracket.round.cpp" + } + }, + "name": "meta.parens.preprocessor.conditional.cpp" + }, + "preprocessor_conditional_range": { + "begin": "^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(#)(?:\\s+)?((?:(?:ifndef|ifdef)|if))", + "end": "(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "keyword.control.directive.conditional.$6.cpp" + }, + "1": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "5": { + "name": "punctuation.definition.directive.cpp" + }, + "6": {} + }, + "endCaptures": {}, + "contentName": "meta.preprocessor.conditional", + "patterns": [ + { + "include": "#preprocessor_conditional_context" + } + ] + }, + "preprocessor_context": { + "patterns": [ + { + "include": "source.cpp#pragma_mark" + }, + { + "include": "#pragma" + }, + { + "include": "source.cpp#include" + }, + { + "include": "#line" + }, + { + "include": "#diagnostic" + }, + { + "include": "source.cpp#undef" + }, + { + "include": "#preprocessor_conditional_range" + }, + { + "include": "source.cpp#single_line_macro" + }, + { + "include": "#macro" + }, + { + "include": "source.cpp#preprocessor_conditional_standalone" + }, + { + "include": "source.cpp#macro_argument" + } + ] + }, + "sizeof_operator": { + "begin": "((?<!\\w)sizeof(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", + "end": "\\)|(?=(?<!\\\\)\n)", + "beginCaptures": { + "1": { + "name": "keyword.operator.functionlike.cpp keyword.operator.sizeof.cpp" + }, + "2": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "punctuation.section.arguments.begin.bracket.round.operator.sizeof.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.operator.sizeof.cpp" + } + }, + "contentName": "meta.arguments.operator.sizeof", + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + "sizeof_variadic_operator": { + "begin": "(\\bsizeof\\.\\.\\.)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", + "end": "\\)|(?=(?<!\\\\)\n)", + "beginCaptures": { + "1": { + "name": "keyword.operator.functionlike.cpp keyword.operator.sizeof.variadic.cpp" + }, + "2": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "punctuation.section.arguments.begin.bracket.round.operator.sizeof.variadic.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.operator.sizeof.variadic.cpp" + } + }, + "contentName": "meta.arguments.operator.sizeof.variadic", + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + "square_brackets": { + "name": "meta.bracket.square.access", + "begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))?(\\[)(?!\\])", + "beginCaptures": { + "1": { + "name": "variable.other.object" + }, + "2": { + "name": "punctuation.definition.begin.bracket.square" + } + }, + "end": "\\]|(?=(?<!\\\\)\n)", + "endCaptures": { + "0": { + "name": "punctuation.definition.end.bracket.square" + } + }, + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + "static_assert": { + "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)static_assert|_Static_assert(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", + "end": "\\)|(?=(?<!\\\\)\n)", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "5": { + "name": "keyword.other.static_assert.cpp" + }, + "6": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "7": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "8": { + "name": "comment.block.cpp" + }, + "9": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "10": { + "name": "punctuation.section.arguments.begin.bracket.round.static_assert.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.static_assert.cpp" + } + }, + "patterns": [ + { + "begin": "(,)(?:\\s+)?(?=(?:L|u8|u|U(?:\\s+)?\\\")?)", + "end": "(?=\\))|(?=(?<!\\\\)\n)", + "beginCaptures": { + "1": { + "name": "punctuation.separator.delimiter.comma.cpp" + } + }, + "endCaptures": {}, + "name": "meta.static_assert.message.cpp", + "patterns": [ + { + "include": "#string_context" + } + ] + }, + { + "include": "#evaluation_context" + } + ] + }, + "storage_types": { + "patterns": [ + { + "include": "source.cpp#storage_specifiers" + }, + { + "include": "source.cpp#inline_builtin_storage_type" + }, + { + "include": "#decltype" + }, + { + "include": "source.cpp#typename" + } + ] + }, + "string_context": { + "patterns": [ + { + "begin": "((?:u|u8|U|L)?)\"", + "end": "(\")(?:((?:[a-zA-Z]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)|(_(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))?|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.cpp" + }, + "1": { + "name": "meta.encoding.cpp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.cpp" + }, + "2": { + "name": "keyword.other.suffix.literal.user-defined.reserved.string.cpp" + }, + "3": { + "name": "keyword.other.suffix.literal.user-defined.string.cpp" + } + }, + "name": "string.quoted.double.cpp", + "patterns": [ + { + "match": "(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})", + "name": "constant.character.escape.cpp" + }, + { + "match": "\\\\['\"?\\\\abfnrtv]", + "name": "constant.character.escape.cpp" + }, + { + "match": "\\\\[0-7]{1,3}", + "name": "constant.character.escape.cpp" + }, + { + "match": "(?:(\\\\x0*[0-9a-fA-F]{2}(?![0-9a-fA-F]))|((?:\\\\x[0-9a-fA-F]*|\\\\x)))", + "captures": { + "1": { + "name": "constant.character.escape.cpp" + }, + "2": { + "name": "invalid.illegal.unknown-escape.cpp" + } + } + }, + { + "include": "source.cpp#string_escapes_context_c" + } + ] + }, + { + "begin": "(?<![0-9A-Fa-f])((?:u|u8|U|L)?)'", + "end": "(')(?:((?:[a-zA-Z]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)|(_(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))?|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.cpp" + }, + "1": { + "name": "meta.encoding.cpp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.cpp" + }, + "2": { + "name": "keyword.other.suffix.literal.user-defined.reserved.character.cpp" + }, + "3": { + "name": "keyword.other.suffix.literal.user-defined.character.cpp" + } + }, + "name": "string.quoted.single.cpp", + "patterns": [ + { + "match": "(?:(\\\\x0*[0-9a-fA-F]{2}(?![0-9a-fA-F]))|((?:\\\\x[0-9a-fA-F]*|\\\\x)))", + "captures": { + "1": { + "name": "constant.character.escape.cpp" + }, + "2": { + "name": "invalid.illegal.unknown-escape.cpp" + } + } + }, + { + "include": "source.cpp#string_escapes_context_c" + }, + { + "include": "source.cpp#line_continuation_character" + } + ] + }, + { + "begin": "((?:[uUL]8?)?R)\\\"(?:(?:_r|re)|regex)\\(", + "end": "\\)(?:(?:_r|re)|regex)\\\"|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.cpp" + }, + "1": { + "name": "meta.encoding.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.cpp" + } + }, + "name": "string.quoted.double.raw.regex.cpp", + "patterns": [ + { + "include": "source.regexp.python" + } + ] + }, + { + "begin": "((?:[uUL]8?)?R)\\\"(?:glsl|GLSL)\\(", + "end": "\\)(?:glsl|GLSL)\\\"|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.cpp" + }, + "1": { + "name": "meta.encoding.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.cpp" + } + }, + "name": "meta.string.quoted.double.raw.glsl.cpp", + "patterns": [ + { + "include": "source.glsl" + } + ] + }, + { + "begin": "((?:[uUL]8?)?R)\\\"(?:[pP]?(?:sql|SQL)|d[dm]l)\\(", + "end": "\\)(?:[pP]?(?:sql|SQL)|d[dm]l)\\\"|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.cpp" + }, + "1": { + "name": "meta.encoding.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.cpp" + } + }, + "name": "meta.string.quoted.double.raw.sql.cpp", + "patterns": [ + { + "include": "source.sql" + } + ] + }, + { + "begin": "((?:u|u8|U|L)?R)\"(?:([^ ()\\\\\\t]{0,16})|([^ ()\\\\\\t]*))\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin" + }, + "1": { + "name": "meta.encoding" + }, + "3": { + "name": "invalid.illegal.delimiter-too-long" + } + }, + "end": "(\\)\\2(\\3)\")(?:((?:[a-zA-Z]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)|(_(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))?|(?=(?<!\\\\)\n)", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end" + }, + "2": { + "name": "invalid.illegal.delimiter-too-long" + }, + "3": { + "name": "keyword.other.suffix.literal.user-defined.reserved.string.cpp" + }, + "4": { + "name": "keyword.other.suffix.literal.user-defined.string.cpp" + } + }, + "name": "string.quoted.double.raw" + } + ] + }, + "struct_block": { + "begin": "((?<!\\w)struct(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(:(?!:)))?)", + "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "meta.head.struct.cpp" + }, + "1": { + "name": "storage.type.$1.cpp" + }, + "2": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "patterns": [ + { + "include": "#attributes_context" + }, + { + "include": "source.cpp#number_literal" + } + ] + }, + "7": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "9": { + "name": "comment.block.cpp" + }, + "10": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "11": { + "patterns": [ + { + "match": "((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))", + "captures": { + "1": { + "name": "storage.type.modifier.final.cpp" + }, + "2": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + }, + { + "match": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?=:|{|$)", + "captures": { + "1": { + "name": "entity.name.type.struct.cpp" + }, + "2": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "storage.type.modifier.final.cpp" + }, + "7": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "9": { + "name": "comment.block.cpp" + }, + "10": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + }, + { + "match": "DLLEXPORT", + "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" + }, + { + "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", + "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp" + } + ] + }, + "12": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "13": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "14": { + "name": "comment.block.cpp" + }, + "15": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "16": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "17": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "18": { + "name": "comment.block.cpp" + }, + "19": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "20": { + "name": "punctuation.separator.colon.inheritance.cpp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.terminator.statement.cpp" + }, + "2": { + "name": "punctuation.terminator.statement.cpp" + } + }, + "name": "meta.block.struct.cpp", + "patterns": [ + { + "begin": "\\G ?", + "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.struct.cpp" + } + }, + "name": "meta.head.struct.cpp", + "patterns": [ + { + "include": "#ever_present_context" + }, + { + "include": "#inheritance_context" + }, + { + "include": "#template_call_range" + } + ] + }, + { + "begin": "(?<=\\{|<%|\\?\\?<)", + "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.struct.cpp" + } + }, + "name": "meta.body.struct.cpp", + "patterns": [ + { + "include": "#function_pointer" + }, + { + "include": "#static_assert" + }, + { + "include": "#constructor_inline" + }, + { + "include": "#destructor_inline" + }, + { + "include": "$self" + } + ] + }, + { + "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", + "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": {}, + "name": "meta.tail.struct.cpp", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + "switch_conditional_parentheses": { + "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", + "end": "\\)|(?=(?<!\\\\)\n)", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "5": { + "name": "punctuation.section.parens.begin.bracket.round.conditional.switch.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.parens.end.bracket.round.conditional.switch.cpp" + } + }, + "name": "meta.conditional.switch.cpp", + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + "switch_statement": { + "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)switch(?!\\w))", + "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "meta.head.switch.cpp" + }, + "1": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "5": { + "name": "keyword.control.switch.cpp" + } + }, + "endCaptures": {}, + "name": "meta.block.switch.cpp", + "patterns": [ + { + "begin": "\\G ?", + "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.switch.cpp" + } + }, + "name": "meta.head.switch.cpp", + "patterns": [ + { + "include": "#switch_conditional_parentheses" + }, + { + "include": "$self" + } + ] + }, + { + "begin": "(?<=\\{|<%|\\?\\?<)", + "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.switch.cpp" + } + }, + "name": "meta.body.switch.cpp", + "patterns": [ + { + "include": "#default_statement" + }, + { + "include": "#case_statement" + }, + { + "include": "$self" + } + ] + }, + { + "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", + "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": {}, + "name": "meta.tail.switch.cpp", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + "template_call_context": { + "patterns": [ + { + "include": "#ever_present_context" + }, + { + "include": "#template_call_range" + }, + { + "include": "#storage_types" + }, + { + "include": "source.cpp#language_constants" + }, + { + "include": "source.cpp#scope_resolution_template_call_inner_generated" + }, + { + "include": "#operators" + }, + { + "include": "source.cpp#number_literal" + }, + { + "include": "#string_context" + }, + { + "include": "source.cpp#comma_in_template_argument" + }, + { + "include": "source.cpp#qualified_type" + } + ] + }, + "template_call_range": { + "begin": "<", + "end": ">|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "punctuation.section.angle-brackets.begin.template.call.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.angle-brackets.end.template.call.cpp" + } + }, + "name": "meta.template.call.cpp", + "patterns": [ + { + "include": "#template_call_context" + } + ] + }, + "template_definition": { + "begin": "(?<!\\w)(template)(?:\\s+)?(<)", + "end": ">|(?=(?<!\\\\)\n)", + "beginCaptures": { + "1": { + "name": "storage.type.template.cpp" + }, + "2": { + "name": "punctuation.section.angle-brackets.begin.template.definition.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.angle-brackets.end.template.definition.cpp" + } + }, + "name": "meta.template.definition.cpp", + "patterns": [ + { + "begin": "(?<=\\w)(?:\\s+)?<", + "end": ">|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "punctuation.section.angle-brackets.begin.template.call.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.angle-brackets.end.template.call.cpp" + } + }, + "patterns": [ + { + "include": "#template_call_context" + } + ] + }, + { + "include": "#template_definition_context" + } + ] + }, + "template_definition_context": { + "patterns": [ + { + "include": "source.cpp#scope_resolution_template_definition_inner_generated" + }, + { + "include": "source.cpp#template_definition_argument" + }, + { + "include": "source.cpp#template_argument_defaulted" + }, + { + "include": "source.cpp#template_call_innards" + }, + { + "include": "#evaluation_context" + } + ] + }, + "ternary_operator": { + "begin": "\\?", + "end": ":|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "keyword.operator.ternary.cpp" + } + }, + "endCaptures": { + "0": { + "name": "keyword.operator.ternary.cpp" + } + }, + "patterns": [ + { + "include": "#ever_present_context" + }, + { + "include": "#string_context" + }, + { + "include": "source.cpp#number_literal" + }, + { + "include": "#method_access" + }, + { + "include": "source.cpp#member_access" + }, + { + "include": "source.cpp#predefined_macros" + }, + { + "include": "#operators" + }, + { + "include": "source.cpp#memory_operators" + }, + { + "include": "source.cpp#wordlike_operators" + }, + { + "include": "source.cpp#type_casting_operators" + }, + { + "include": "source.cpp#control_flow_keywords" + }, + { + "include": "source.cpp#exception_keywords" + }, + { + "include": "source.cpp#the_this_keyword" + }, + { + "include": "source.cpp#language_constants" + }, + { + "include": "#builtin_storage_type_initilizer" + }, + { + "include": "source.cpp#qualifiers_and_specifiers_post_parameters" + }, + { + "include": "source.cpp#functional_specifiers_pre_parameters" + }, + { + "include": "#storage_types" + }, + { + "include": "#lambdas" + }, + { + "include": "#attributes_context" + }, + { + "include": "#parentheses" + }, + { + "include": "#function_call" + }, + { + "include": "source.cpp#scope_resolution_inner_generated" + }, + { + "include": "#square_brackets" + }, + { + "include": "source.cpp#semicolon" + }, + { + "include": "source.cpp#comma" + } + ], + "applyEndPatternLast": 1 + }, + "typedef_class": { + "begin": "((?<!\\w)typedef(?!\\w))(?:\\s+)?(?=(?<!\\w)class(?!\\w))", + "end": "(?<=;)|(?=(?<!\\\\)\n)", + "beginCaptures": { + "1": { + "name": "keyword.other.typedef.cpp" + } + }, + "endCaptures": {}, + "patterns": [ + { + "begin": "((?<!\\w)class(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(:(?!:)))?)", + "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "meta.head.class.cpp" + }, + "1": { + "name": "storage.type.$1.cpp" + }, + "2": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "patterns": [ + { + "include": "#attributes_context" + }, + { + "include": "source.cpp#number_literal" + } + ] + }, + "7": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "9": { + "name": "comment.block.cpp" + }, + "10": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "11": { + "patterns": [ + { + "match": "((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))", + "captures": { + "1": { + "name": "storage.type.modifier.final.cpp" + }, + "2": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + }, + { + "match": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?=:|{|$)", + "captures": { + "1": { + "name": "entity.name.type.class.cpp" + }, + "2": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "storage.type.modifier.final.cpp" + }, + "7": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "9": { + "name": "comment.block.cpp" + }, + "10": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + }, + { + "match": "DLLEXPORT", + "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" + }, + { + "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", + "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp" + } + ] + }, + "12": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "13": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "14": { + "name": "comment.block.cpp" + }, + "15": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "16": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "17": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "18": { + "name": "comment.block.cpp" + }, + "19": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "20": { + "name": "punctuation.separator.colon.inheritance.cpp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.terminator.statement.cpp" + }, + "2": { + "name": "punctuation.terminator.statement.cpp" + } + }, + "name": "meta.block.class.cpp", + "patterns": [ + { + "begin": "\\G ?", + "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.class.cpp" + } + }, + "name": "meta.head.class.cpp", + "patterns": [ + { + "include": "#ever_present_context" + }, + { + "include": "#inheritance_context" + }, + { + "include": "#template_call_range" + } + ] + }, + { + "begin": "(?<=\\{|<%|\\?\\?<)", + "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.class.cpp" + } + }, + "name": "meta.body.class.cpp", + "patterns": [ + { + "include": "#function_pointer" + }, + { + "include": "#static_assert" + }, + { + "include": "#constructor_inline" + }, + { + "include": "#destructor_inline" + }, + { + "include": "$self" + } + ] + }, + { + "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", + "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": {}, + "name": "meta.tail.class.cpp", + "patterns": [ + { + "match": "(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))", + "captures": { + "1": { + "patterns": [ + { + "match": "\\*", + "name": "storage.modifier.pointer.cpp" + }, + { + "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", + "captures": { + "1": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "name": "invalid.illegal.reference-type.cpp" + }, + { + "match": "\\&", + "name": "storage.modifier.reference.cpp" + } + ] + }, + "2": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "7": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "8": { + "name": "comment.block.cpp" + }, + "9": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "10": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "11": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "12": { + "name": "comment.block.cpp" + }, + "13": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "14": { + "name": "entity.name.type.alias.cpp" + } + } + }, + { + "match": "," + } + ] + } + ] + } + ] + }, + "typedef_function_pointer": { + "begin": "((?<!\\w)typedef(?!\\w))(?:\\s+)?(?=.*\\(\\*\\s*(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\s*\\))", + "end": "(?<=;)|(?=(?<!\\\\)\n)", + "beginCaptures": { + "1": { + "name": "keyword.other.typedef.cpp" + } + }, + "endCaptures": {}, + "patterns": [ + { + "begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<18>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<18>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()(\\*)(?:\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:\\s+)?(?:(\\[)(\\w*)(\\])(?:\\s+)?)*(\\))(?:\\s+)?(\\()", + "end": "(\\))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=[{=,);>]|\\n)(?!\\()|(?=(?<!\\\\)\n)", + "beginCaptures": { + "1": { + "name": "meta.qualified_type.cpp", + "patterns": [ + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" + }, + { + "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)", + "name": "storage.type.$0.cpp" + }, + { + "include": "#attributes_context" + }, + { + "include": "#storage_types" + }, + { + "include": "source.cpp#number_literal" + }, + { + "include": "#string_context" + }, + { + "include": "source.cpp#comma" + }, + { + "include": "source.cpp#scope_resolution_inner_generated" + }, + { + "begin": "<", + "end": ">|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "punctuation.section.angle-brackets.begin.template.call.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.angle-brackets.end.template.call.cpp" + } + }, + "name": "meta.template.call.cpp", + "patterns": [ + { + "include": "#template_call_context" + } + ] + }, + { + "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", + "name": "entity.name.type.cpp" + } + ] + }, + "2": { + "patterns": [ + { + "include": "#attributes_context" + }, + { + "include": "source.cpp#number_literal" + } + ] + }, + "3": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "5": { + "name": "comment.block.cpp" + }, + "6": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "7": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "9": { + "name": "comment.block.cpp" + }, + "10": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "11": { + "patterns": [ + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" + }, + { + "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", + "name": "entity.name.scope-resolution.type.cpp" + }, + { + "include": "#template_call_range" + } + ] + }, + "12": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "13": {}, + "14": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "15": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "16": { + "name": "comment.block.cpp" + }, + "17": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "18": {}, + "19": { + "patterns": [ + { + "match": "\\*", + "name": "storage.modifier.pointer.cpp" + }, + { + "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", + "captures": { + "1": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "name": "invalid.illegal.reference-type.cpp" + }, + { + "match": "\\&", + "name": "storage.modifier.reference.cpp" + } + ] + }, + "20": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "21": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "22": { + "name": "comment.block.cpp" + }, + "23": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "24": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "25": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "26": { + "name": "comment.block.cpp" + }, + "27": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "28": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "29": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "30": { + "name": "comment.block.cpp" + }, + "31": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "32": { + "name": "punctuation.section.parens.begin.bracket.round.function.pointer.cpp" + }, + "33": { + "name": "punctuation.definition.function.pointer.dereference.cpp" + }, + "34": { + "name": "entity.name.type.alias.cpp entity.name.type.pointer.function.cpp" + }, + "35": { + "name": "punctuation.definition.begin.bracket.square.cpp" + }, + "36": { + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + "37": { + "name": "punctuation.definition.end.bracket.square.cpp" + }, + "38": { + "name": "punctuation.section.parens.end.bracket.round.function.pointer.cpp" + }, + "39": { + "name": "punctuation.section.parameters.begin.bracket.round.function.pointer.cpp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.section.parameters.end.bracket.round.function.pointer.cpp" + }, + "2": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "patterns": [ + { + "include": "#function_parameter_context" + } + ] + } + ] + }, + "typedef_struct": { + "begin": "((?<!\\w)typedef(?!\\w))(?:\\s+)?(?=(?<!\\w)struct(?!\\w))", + "end": "(?<=;)|(?=(?<!\\\\)\n)", + "beginCaptures": { + "1": { + "name": "keyword.other.typedef.cpp" + } + }, + "endCaptures": {}, + "patterns": [ + { + "begin": "((?<!\\w)struct(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(:(?!:)))?)", + "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "meta.head.struct.cpp" + }, + "1": { + "name": "storage.type.$1.cpp" + }, + "2": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "patterns": [ + { + "include": "#attributes_context" + }, + { + "include": "source.cpp#number_literal" + } + ] + }, + "7": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "9": { + "name": "comment.block.cpp" + }, + "10": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "11": { + "patterns": [ + { + "match": "((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))", + "captures": { + "1": { + "name": "storage.type.modifier.final.cpp" + }, + "2": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + }, + { + "match": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?=:|{|$)", + "captures": { + "1": { + "name": "entity.name.type.struct.cpp" + }, + "2": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "storage.type.modifier.final.cpp" + }, + "7": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "9": { + "name": "comment.block.cpp" + }, + "10": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + }, + { + "match": "DLLEXPORT", + "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" + }, + { + "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", + "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp" + } + ] + }, + "12": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "13": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "14": { + "name": "comment.block.cpp" + }, + "15": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "16": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "17": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "18": { + "name": "comment.block.cpp" + }, + "19": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "20": { + "name": "punctuation.separator.colon.inheritance.cpp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.terminator.statement.cpp" + }, + "2": { + "name": "punctuation.terminator.statement.cpp" + } + }, + "name": "meta.block.struct.cpp", + "patterns": [ + { + "begin": "\\G ?", + "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.struct.cpp" + } + }, + "name": "meta.head.struct.cpp", + "patterns": [ + { + "include": "#ever_present_context" + }, + { + "include": "#inheritance_context" + }, + { + "include": "#template_call_range" + } + ] + }, + { + "begin": "(?<=\\{|<%|\\?\\?<)", + "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.struct.cpp" + } + }, + "name": "meta.body.struct.cpp", + "patterns": [ + { + "include": "#function_pointer" + }, + { + "include": "#static_assert" + }, + { + "include": "#constructor_inline" + }, + { + "include": "#destructor_inline" + }, + { + "include": "$self" + } + ] + }, + { + "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", + "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": {}, + "name": "meta.tail.struct.cpp", + "patterns": [ + { + "match": "(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))", + "captures": { + "1": { + "patterns": [ + { + "match": "\\*", + "name": "storage.modifier.pointer.cpp" + }, + { + "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", + "captures": { + "1": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "name": "invalid.illegal.reference-type.cpp" + }, + { + "match": "\\&", + "name": "storage.modifier.reference.cpp" + } + ] + }, + "2": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "7": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "8": { + "name": "comment.block.cpp" + }, + "9": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "10": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "11": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "12": { + "name": "comment.block.cpp" + }, + "13": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "14": { + "name": "entity.name.type.alias.cpp" + } + } + }, + { + "match": "," + } + ] + } + ] + } + ] + }, + "typedef_union": { + "begin": "((?<!\\w)typedef(?!\\w))(?:\\s+)?(?=(?<!\\w)union(?!\\w))", + "end": "(?<=;)|(?=(?<!\\\\)\n)", + "beginCaptures": { + "1": { + "name": "keyword.other.typedef.cpp" + } + }, + "endCaptures": {}, + "patterns": [ + { + "begin": "((?<!\\w)union(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(:(?!:)))?)", + "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "meta.head.union.cpp" + }, + "1": { + "name": "storage.type.$1.cpp" + }, + "2": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "patterns": [ + { + "include": "#attributes_context" + }, + { + "include": "source.cpp#number_literal" + } + ] + }, + "7": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "9": { + "name": "comment.block.cpp" + }, + "10": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "11": { + "patterns": [ + { + "match": "((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))", + "captures": { + "1": { + "name": "storage.type.modifier.final.cpp" + }, + "2": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + }, + { + "match": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?=:|{|$)", + "captures": { + "1": { + "name": "entity.name.type.union.cpp" + }, + "2": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "storage.type.modifier.final.cpp" + }, + "7": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "9": { + "name": "comment.block.cpp" + }, + "10": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + }, + { + "match": "DLLEXPORT", + "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" + }, + { + "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", + "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp" + } + ] + }, + "12": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "13": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "14": { + "name": "comment.block.cpp" + }, + "15": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "16": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "17": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "18": { + "name": "comment.block.cpp" + }, + "19": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "20": { + "name": "punctuation.separator.colon.inheritance.cpp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.terminator.statement.cpp" + }, + "2": { + "name": "punctuation.terminator.statement.cpp" + } + }, + "name": "meta.block.union.cpp", + "patterns": [ + { + "begin": "\\G ?", + "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.union.cpp" + } + }, + "name": "meta.head.union.cpp", + "patterns": [ + { + "include": "#ever_present_context" + }, + { + "include": "#inheritance_context" + }, + { + "include": "#template_call_range" + } + ] + }, + { + "begin": "(?<=\\{|<%|\\?\\?<)", + "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.union.cpp" + } + }, + "name": "meta.body.union.cpp", + "patterns": [ + { + "include": "#function_pointer" + }, + { + "include": "#static_assert" + }, + { + "include": "#constructor_inline" + }, + { + "include": "#destructor_inline" + }, + { + "include": "$self" + } + ] + }, + { + "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", + "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": {}, + "name": "meta.tail.union.cpp", + "patterns": [ + { + "match": "(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))", + "captures": { + "1": { + "patterns": [ + { + "match": "\\*", + "name": "storage.modifier.pointer.cpp" + }, + { + "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", + "captures": { + "1": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "name": "invalid.illegal.reference-type.cpp" + }, + { + "match": "\\&", + "name": "storage.modifier.reference.cpp" + } + ] + }, + "2": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "7": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "8": { + "name": "comment.block.cpp" + }, + "9": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "10": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "11": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "12": { + "name": "comment.block.cpp" + }, + "13": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "14": { + "name": "entity.name.type.alias.cpp" + } + } + }, + { + "match": "," + } + ] + } + ] + } + ] + }, + "typeid_operator": { + "begin": "((?<!\\w)typeid(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", + "end": "\\)|(?=(?<!\\\\)\n)", + "beginCaptures": { + "1": { + "name": "keyword.operator.functionlike.cpp keyword.operator.typeid.cpp" + }, + "2": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "punctuation.section.arguments.begin.bracket.round.operator.typeid.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.operator.typeid.cpp" + } + }, + "contentName": "meta.arguments.operator.typeid", + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + "union_block": { + "begin": "((?<!\\w)union(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(:(?!:)))?)", + "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?<!\\\\)\n)", + "beginCaptures": { + "0": { + "name": "meta.head.union.cpp" + }, + "1": { + "name": "storage.type.$1.cpp" + }, + "2": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "patterns": [ + { + "include": "#attributes_context" + }, + { + "include": "source.cpp#number_literal" + } + ] + }, + "7": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "9": { + "name": "comment.block.cpp" + }, + "10": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "11": { + "patterns": [ + { + "match": "((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))", + "captures": { + "1": { + "name": "storage.type.modifier.final.cpp" + }, + "2": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + }, + { + "match": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?=:|{|$)", + "captures": { + "1": { + "name": "entity.name.type.union.cpp" + }, + "2": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "storage.type.modifier.final.cpp" + }, + "7": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "9": { + "name": "comment.block.cpp" + }, + "10": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + }, + { + "match": "DLLEXPORT", + "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" + }, + { + "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", + "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp" + } + ] + }, + "12": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "13": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "14": { + "name": "comment.block.cpp" + }, + "15": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "16": { + "patterns": [ + { + "include": "source.cpp#inline_comment" + } + ] + }, + "17": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "18": { + "name": "comment.block.cpp" + }, + "19": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "20": { + "name": "punctuation.separator.colon.inheritance.cpp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.terminator.statement.cpp" + }, + "2": { + "name": "punctuation.terminator.statement.cpp" + } + }, + "name": "meta.block.union.cpp", + "patterns": [ + { + "begin": "\\G ?", + "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.union.cpp" + } + }, + "name": "meta.head.union.cpp", + "patterns": [ + { + "include": "#ever_present_context" + }, + { + "include": "#inheritance_context" + }, + { + "include": "#template_call_range" + } + ] + }, + { + "begin": "(?<=\\{|<%|\\?\\?<)", + "end": "\\}|%>|\\?\\?>|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.union.cpp" + } + }, + "name": "meta.body.union.cpp", + "patterns": [ + { + "include": "#function_pointer" + }, + { + "include": "#static_assert" + }, + { + "include": "#constructor_inline" + }, + { + "include": "#destructor_inline" + }, + { + "include": "$self" + } + ] + }, + { + "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", + "end": "[\\s]*(?=;)|(?=(?<!\\\\)\n)", + "beginCaptures": {}, + "endCaptures": {}, + "name": "meta.tail.union.cpp", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + "using_namespace": { + "begin": "(?<!\\w)(using)\\s+(namespace)\\s+((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<6>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(?=;|\\n)", + "end": ";|(?=(?<!\\\\)\n)", + "beginCaptures": { + "1": { + "name": "keyword.other.using.directive.cpp" + }, + "2": { + "name": "keyword.other.namespace.directive.cpp storage.type.namespace.directive.cpp" + }, + "3": { + "patterns": [ + { + "include": "source.cpp#scope_resolution_namespace_using_inner_generated" + } + ] + }, + "4": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp" + }, + "5": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "6": {}, + "7": { + "name": "entity.name.namespace.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.statement.cpp" + } + }, + "name": "meta.using-namespace.cpp" + } + } +} diff --git a/docs/shiki/languages/cpp.tmLanguage.json b/docs/shiki/languages/cpp.tmLanguage.json new file mode 100644 index 00000000..2529211e --- /dev/null +++ b/docs/shiki/languages/cpp.tmLanguage.json @@ -0,0 +1,16474 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/jeff-hykin/better-cpp-syntax/blob/master/autogenerated/cpp.tmLanguage.json", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/jeff-hykin/better-cpp-syntax/commit/f1d127a8af2b184db570345f0bb179503c47fdf6", + "name": "cpp", + "scopeName": "source.cpp", + "patterns": [ + { + "include": "#ever_present_context" + }, + { + "include": "#constructor_root" + }, + { + "include": "#destructor_root" + }, + { + "include": "#function_definition" + }, + { + "include": "#operator_overload" + }, + { + "include": "#using_namespace" + }, + { + "include": "#type_alias" + }, + { + "include": "#using_name" + }, + { + "include": "#namespace_alias" + }, + { + "include": "#namespace_block" + }, + { + "include": "#extern_block" + }, + { + "include": "#typedef_class" + }, + { + "include": "#typedef_struct" + }, + { + "include": "#typedef_union" + }, + { + "include": "#misc_keywords" + }, + { + "include": "#standard_declares" + }, + { + "include": "#class_block" + }, + { + "include": "#struct_block" + }, + { + "include": "#union_block" + }, + { + "include": "#enum_block" + }, + { + "include": "#template_isolated_definition" + }, + { + "include": "#template_definition" + }, + { + "include": "#template_explicit_instantiation" + }, + { + "include": "#access_control_keywords" + }, + { + "include": "#block" + }, + { + "include": "#static_assert" + }, + { + "include": "#assembly" + }, + { + "include": "#function_pointer" + }, + { + "include": "#evaluation_context" + } + ], + "repository": { + "access_control_keywords": { + "match": "((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(((?:(?:protected)|(?:private)|(?:public)))(?:\\s+)?(:))", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "3": { + "name": "storage.type.modifier.access.control.$4.cpp" + }, + "4": {}, + "5": { + "name": "punctuation.separator.colon.access.control.cpp" + } + } + }, + "alignas_attribute": { + "begin": "alignas\\(", + "end": "\\)", + "beginCaptures": { + "0": { + "name": "punctuation.section.attribute.begin.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.attribute.end.cpp" + } + }, + "name": "support.other.attribute.cpp", + "patterns": [ + { + "include": "#attributes_context" + }, + { + "begin": "\\(", + "end": "\\)", + "beginCaptures": {}, + "endCaptures": {}, + "patterns": [ + { + "include": "#attributes_context" + }, + { + "include": "#string_context" + }, + { + "include": "#ever_present_context" + } + ] + }, + { + "match": "(using)\\s+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))", + "captures": { + "1": { + "name": "keyword.other.using.directive.cpp" + }, + "2": { + "name": "entity.name.namespace.cpp" + } + } + }, + { + "match": ",", + "name": "punctuation.separator.attribute.cpp" + }, + { + "match": ":", + "name": "punctuation.accessor.attribute.cpp" + }, + { + "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=::)", + "name": "entity.name.namespace.cpp" + }, + { + "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", + "name": "entity.other.attribute.$0.cpp" + }, + { + "include": "#number_literal" + }, + { + "include": "#ever_present_context" + } + ] + }, + "alignas_operator": { + "begin": "((?<!\\w)alignas(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", + "end": "\\)", + "beginCaptures": { + "1": { + "name": "keyword.operator.functionlike.cpp keyword.operator.alignas.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "punctuation.section.arguments.begin.bracket.round.operator.alignas.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.operator.alignas.cpp" + } + }, + "contentName": "meta.arguments.operator.alignas", + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + "alignof_operator": { + "begin": "((?<!\\w)alignof(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", + "end": "\\)", + "beginCaptures": { + "1": { + "name": "keyword.operator.functionlike.cpp keyword.operator.alignof.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "punctuation.section.arguments.begin.bracket.round.operator.alignof.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.operator.alignof.cpp" + } + }, + "contentName": "meta.arguments.operator.alignof", + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + "assembly": { + "begin": "(\\b(?:__asm__|asm)\\b)(?:\\s+)?((?:volatile)?)", + "end": "(?!\\G)", + "beginCaptures": { + "1": { + "name": "storage.type.asm.cpp" + }, + "2": { + "name": "storage.modifier.cpp" + } + }, + "endCaptures": {}, + "name": "meta.asm.cpp", + "patterns": [ + { + "match": "^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:\\n|$)", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + }, + { + "include": "#comments" + }, + { + "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))\\(", + "end": "\\)", + "beginCaptures": { + "0": { + "name": "punctuation.section.parens.begin.bracket.round.assembly.cpp" + }, + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.parens.end.bracket.round.assembly.cpp" + } + }, + "patterns": [ + { + "begin": "(R?)(\")", + "end": "\"", + "beginCaptures": { + "1": { + "name": "meta.encoding.cpp" + }, + "2": { + "name": "punctuation.definition.string.begin.assembly.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.assembly.cpp" + } + }, + "name": "string.quoted.double.cpp", + "contentName": "meta.embedded.assembly", + "patterns": [ + { + "include": "source.asm" + }, + { + "include": "source.x86" + }, + { + "include": "source.x86_64" + }, + { + "include": "source.arm" + }, + { + "include": "#backslash_escapes" + }, + { + "include": "#string_escaped_char" + } + ] + }, + { + "begin": "\\(", + "end": "\\)", + "beginCaptures": { + "0": { + "name": "punctuation.section.parens.begin.bracket.round.assembly.inner.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.parens.end.bracket.round.assembly.inner.cpp" + } + }, + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + { + "match": "\\[((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))\\]", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "5": { + "name": "variable.other.asm.label.cpp" + }, + "6": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "7": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "8": { + "name": "comment.block.cpp" + }, + "9": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + }, + { + "match": ":", + "name": "punctuation.separator.delimiter.colon.assembly.cpp" + }, + { + "include": "#comments" + } + ] + } + ] + }, + "assignment_operator": { + "match": "\\=", + "name": "keyword.operator.assignment.cpp" + }, + "attributes_context": { + "patterns": [ + { + "include": "#cpp_attributes" + }, + { + "include": "#gcc_attributes" + }, + { + "include": "#ms_attributes" + }, + { + "include": "#alignas_attribute" + } + ] + }, + "backslash_escapes": { + "match": "(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3][0-7]{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )", + "name": "constant.character.escape" + }, + "block": { + "begin": "{", + "end": "}", + "beginCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.cpp" + } + }, + "name": "meta.block.cpp", + "patterns": [ + { + "include": "#function_body_context" + } + ] + }, + "block_comment": { + "begin": "\\s*+(\\/\\*)", + "end": "\\*\\/", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.begin.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.end.cpp" + } + }, + "name": "comment.block.cpp" + }, + "builtin_storage_type_initilizer": { + "begin": "\\s*+(?<!\\w)(?:(?:(?:((?:(?:unsigned)|(?:wchar_t)|(?:double)|(?:signed)|(?:short)|(?:float)|(?:auto)|(?:void)|(?:long)|(?:char)|(?:bool)|(?:int)))|((?:(?:uint_least32_t)|(?:uint_least64_t)|(?:uint_least16_t)|(?:uint_fast64_t)|(?:uint_least8_t)|(?:int_least64_t)|(?:int_least32_t)|(?:int_least16_t)|(?:uint_fast16_t)|(?:uint_fast32_t)|(?:int_least8_t)|(?:int_fast16_t)|(?:int_fast32_t)|(?:int_fast64_t)|(?:uint_fast8_t)|(?:int_fast8_t)|(?:suseconds_t)|(?:useconds_t)|(?:uintmax_t)|(?:uintmax_t)|(?:in_port_t)|(?:uintmax_t)|(?:in_addr_t)|(?:blksize_t)|(?:uintptr_t)|(?:intmax_t)|(?:intptr_t)|(?:blkcnt_t)|(?:intmax_t)|(?:u_quad_t)|(?:uint16_t)|(?:uint32_t)|(?:uint64_t)|(?:ssize_t)|(?:fixpt_t)|(?:qaddr_t)|(?:u_short)|(?:int16_t)|(?:int32_t)|(?:int64_t)|(?:uint8_t)|(?:daddr_t)|(?:caddr_t)|(?:swblk_t)|(?:clock_t)|(?:segsz_t)|(?:nlink_t)|(?:time_t)|(?:u_long)|(?:ushort)|(?:quad_t)|(?:mode_t)|(?:size_t)|(?:u_char)|(?:int8_t)|(?:u_int)|(?:uid_t)|(?:off_t)|(?:pid_t)|(?:gid_t)|(?:dev_t)|(?:div_t)|(?:key_t)|(?:ino_t)|(?:id_t)|(?:id_t)|(?:uint))))|((?:(?:pthread_rwlockattr_t)|(?:pthread_mutexattr_t)|(?:pthread_condattr_t)|(?:pthread_rwlock_t)|(?:pthread_mutex_t)|(?:pthread_cond_t)|(?:pthread_attr_t)|(?:pthread_once_t)|(?:pthread_key_t)|(?:pthread_t))))|([a-zA-Z_]\\w*_t))(?!\\w)\\s*+(?<!\\w)(\\()", + "end": "\\)", + "beginCaptures": { + "1": { + "name": "storage.type.primitive.cpp storage.type.built-in.primitive.cpp" + }, + "2": { + "name": "storage.type.cpp storage.type.built-in.cpp" + }, + "3": { + "name": "support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp" + }, + "4": { + "name": "support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp" + }, + "5": { + "name": "punctuation.section.arguments.begin.bracket.round.initializer.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.initializer.cpp" + } + }, + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + "case_statement": { + "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)case(?!\\w))", + "end": ":", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "5": { + "name": "keyword.control.case.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.separator.colon.case.cpp" + } + }, + "name": "meta.conditional.case.cpp", + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + "class_block": { + "begin": "((?<!\\w)class(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(:(?!:)))?)", + "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))", + "beginCaptures": { + "0": { + "name": "meta.head.class.cpp" + }, + "1": { + "name": "storage.type.$1.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "patterns": [ + { + "include": "#attributes_context" + }, + { + "include": "#number_literal" + } + ] + }, + "7": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "9": { + "name": "comment.block.cpp" + }, + "10": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "11": { + "patterns": [ + { + "match": "((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))", + "captures": { + "1": { + "name": "storage.type.modifier.final.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + }, + { + "match": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?=:|{|$)", + "captures": { + "1": { + "name": "entity.name.type.class.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "storage.type.modifier.final.cpp" + }, + "7": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "9": { + "name": "comment.block.cpp" + }, + "10": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + }, + { + "match": "DLLEXPORT", + "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" + }, + { + "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", + "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp" + } + ] + }, + "12": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "13": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "14": { + "name": "comment.block.cpp" + }, + "15": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "16": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "17": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "18": { + "name": "comment.block.cpp" + }, + "19": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "20": { + "name": "punctuation.separator.colon.inheritance.cpp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.terminator.statement.cpp" + }, + "2": { + "name": "punctuation.terminator.statement.cpp" + } + }, + "name": "meta.block.class.cpp", + "patterns": [ + { + "begin": "\\G ?", + "end": "(?:\\{|<%|\\?\\?<|(?=;))", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.class.cpp" + } + }, + "name": "meta.head.class.cpp", + "patterns": [ + { + "include": "#ever_present_context" + }, + { + "include": "#inheritance_context" + }, + { + "include": "#template_call_range" + } + ] + }, + { + "begin": "(?<=\\{|<%|\\?\\?<)", + "end": "\\}|%>|\\?\\?>", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.class.cpp" + } + }, + "name": "meta.body.class.cpp", + "patterns": [ + { + "include": "#function_pointer" + }, + { + "include": "#static_assert" + }, + { + "include": "#constructor_inline" + }, + { + "include": "#destructor_inline" + }, + { + "include": "$self" + } + ] + }, + { + "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", + "end": "[\\s]*(?=;)", + "beginCaptures": {}, + "endCaptures": {}, + "name": "meta.tail.class.cpp", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + "class_declare": { + "match": "((?<!\\w)class(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))\\b(?!override\\W|override\\$|final\\W|final\\$)((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\S)(?![:{a-zA-Z])", + "captures": { + "1": { + "name": "storage.type.class.declare.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "4": { + "name": "entity.name.type.class.cpp" + }, + "5": { + "patterns": [ + { + "match": "\\*", + "name": "storage.modifier.pointer.cpp" + }, + { + "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "name": "invalid.illegal.reference-type.cpp" + }, + { + "match": "\\&", + "name": "storage.modifier.reference.cpp" + } + ] + }, + "6": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "7": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "8": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "9": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "10": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "11": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "12": { + "name": "variable.other.object.declare.cpp" + }, + "13": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "14": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + } + } + }, + "comma": { + "match": ",", + "name": "punctuation.separator.delimiter.comma.cpp" + }, + "comma_in_template_argument": { + "match": ",", + "name": "punctuation.separator.delimiter.comma.template.argument.cpp" + }, + "comments": { + "patterns": [ + { + "begin": "^(?:\\s+)?+(\\/\\/[!\\/]+)", + "end": "(?<=\\n)(?<!\\\\\\n)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.documentation.cpp" + } + }, + "endCaptures": {}, + "name": "comment.line.double-slash.documentation.cpp", + "patterns": [ + { + "include": "#line_continuation_character" + }, + { + "match": "(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?", + "name": "storage.type.class.doxygen.cpp" + }, + { + "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)", + "captures": { + "1": { + "name": "storage.type.class.doxygen.cpp" + }, + "2": { + "name": "markup.italic.doxygen.cpp" + } + } + }, + { + "match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)", + "captures": { + "1": { + "name": "storage.type.class.doxygen.cpp" + }, + "2": { + "name": "markup.bold.doxygen.cpp" + } + } + }, + { + "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)", + "captures": { + "1": { + "name": "storage.type.class.doxygen.cpp" + }, + "2": { + "name": "markup.inline.raw.string.cpp" + } + } + }, + { + "match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?", + "name": "storage.type.class.doxygen.cpp" + }, + { + "match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?", + "name": "storage.type.class.doxygen.cpp" + }, + { + "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:\\s+)?(?:in|out)(?:\\s+)?)+)\\])?(\\s+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(?:(,)(?:\\s+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)))*)", + "captures": { + "1": { + "name": "storage.type.class.doxygen.cpp" + }, + "2": { + "patterns": [ + { + "match": "in|out", + "name": "keyword.other.parameter.direction.$0.cpp" + } + ] + }, + "3": { + "patterns": [ + { + "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", + "name": "variable.parameter.cpp" + }, + { + "match": ",", + "name": "punctuation.cpp" + } + ] + }, + "4": { + "name": "variable.parameter.cpp" + }, + "5": { + "name": "punctuation.cpp" + }, + "6": { + "name": "variable.parameter.cpp" + } + } + }, + { + "match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|throws|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?", + "name": "storage.type.class.doxygen.cpp" + }, + { + "match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|startuml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?", + "name": "storage.type.class.doxygen.cpp" + }, + { + "match": "(?:\\b[A-Z]+:|@[a-z_]+:)", + "name": "storage.type.class.gtkdoc.cpp" + } + ] + }, + { + "match": "(\\/\\*[!*]+(?=\\s))(.+)([!*]*\\*\\/)", + "captures": { + "1": { + "name": "punctuation.definition.comment.begin.documentation.cpp" + }, + "2": { + "patterns": [ + { + "match": "(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?", + "name": "storage.type.class.doxygen.cpp" + }, + { + "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)", + "captures": { + "1": { + "name": "storage.type.class.doxygen.cpp" + }, + "2": { + "name": "markup.italic.doxygen.cpp" + } + } + }, + { + "match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)", + "captures": { + "1": { + "name": "storage.type.class.doxygen.cpp" + }, + "2": { + "name": "markup.bold.doxygen.cpp" + } + } + }, + { + "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)", + "captures": { + "1": { + "name": "storage.type.class.doxygen.cpp" + }, + "2": { + "name": "markup.inline.raw.string.cpp" + } + } + }, + { + "match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?", + "name": "storage.type.class.doxygen.cpp" + }, + { + "match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?", + "name": "storage.type.class.doxygen.cpp" + }, + { + "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:\\s+)?(?:in|out)(?:\\s+)?)+)\\])?(\\s+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(?:(,)(?:\\s+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)))*)", + "captures": { + "1": { + "name": "storage.type.class.doxygen.cpp" + }, + "2": { + "patterns": [ + { + "match": "in|out", + "name": "keyword.other.parameter.direction.$0.cpp" + } + ] + }, + "3": { + "patterns": [ + { + "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", + "name": "variable.parameter.cpp" + }, + { + "match": ",", + "name": "punctuation.cpp" + } + ] + }, + "4": { + "name": "variable.parameter.cpp" + }, + "5": { + "name": "punctuation.cpp" + }, + "6": { + "name": "variable.parameter.cpp" + } + } + }, + { + "match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|throws|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?", + "name": "storage.type.class.doxygen.cpp" + }, + { + "match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|startuml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?", + "name": "storage.type.class.doxygen.cpp" + }, + { + "match": "(?:\\b[A-Z]+:|@[a-z_]+:)", + "name": "storage.type.class.gtkdoc.cpp" + } + ] + }, + "3": { + "name": "punctuation.definition.comment.end.documentation.cpp" + } + }, + "name": "comment.block.documentation.cpp" + }, + { + "begin": "(?:\\s+)?+\\/\\*[!*]+(?:(?:\\n|$)|(?=\\s))", + "end": "[!*]*\\*\\/", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.begin.documentation.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.end.documentation.cpp" + } + }, + "name": "comment.block.documentation.cpp", + "patterns": [ + { + "match": "(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?", + "name": "storage.type.class.doxygen.cpp" + }, + { + "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)", + "captures": { + "1": { + "name": "storage.type.class.doxygen.cpp" + }, + "2": { + "name": "markup.italic.doxygen.cpp" + } + } + }, + { + "match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)", + "captures": { + "1": { + "name": "storage.type.class.doxygen.cpp" + }, + "2": { + "name": "markup.bold.doxygen.cpp" + } + } + }, + { + "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)", + "captures": { + "1": { + "name": "storage.type.class.doxygen.cpp" + }, + "2": { + "name": "markup.inline.raw.string.cpp" + } + } + }, + { + "match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?", + "name": "storage.type.class.doxygen.cpp" + }, + { + "match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?", + "name": "storage.type.class.doxygen.cpp" + }, + { + "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:\\s+)?(?:in|out)(?:\\s+)?)+)\\])?(\\s+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(?:(,)(?:\\s+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)))*)", + "captures": { + "1": { + "name": "storage.type.class.doxygen.cpp" + }, + "2": { + "patterns": [ + { + "match": "in|out", + "name": "keyword.other.parameter.direction.$0.cpp" + } + ] + }, + "3": { + "patterns": [ + { + "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", + "name": "variable.parameter.cpp" + }, + { + "match": ",", + "name": "punctuation.cpp" + } + ] + }, + "4": { + "name": "variable.parameter.cpp" + }, + "5": { + "name": "punctuation.cpp" + }, + "6": { + "name": "variable.parameter.cpp" + } + } + }, + { + "match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|throws|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?", + "name": "storage.type.class.doxygen.cpp" + }, + { + "match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|startuml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?", + "name": "storage.type.class.doxygen.cpp" + }, + { + "match": "(?:\\b[A-Z]+:|@[a-z_]+:)", + "name": "storage.type.class.gtkdoc.cpp" + } + ] + }, + { + "include": "#emacs_file_banner" + }, + { + "include": "#block_comment" + }, + { + "include": "#line_comment" + }, + { + "include": "#invalid_comment_end" + } + ] + }, + "constructor_inline": { + "begin": "^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:(?:(?:constexpr)|(?:consteval)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*)((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=\\())", + "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))", + "beginCaptures": { + "0": { + "name": "meta.head.function.definition.special.constructor.cpp" + }, + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "5": { + "patterns": [ + { + "include": "#functional_specifiers_pre_parameters" + } + ] + }, + "6": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "7": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "8": { + "name": "comment.block.cpp" + }, + "9": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "10": { + "name": "storage.type.modifier.calling-convention.cpp" + }, + "11": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "12": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "13": { + "name": "comment.block.cpp" + }, + "14": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "15": { + "name": "entity.name.function.constructor.cpp entity.name.function.definition.special.constructor.cpp" + } + }, + "endCaptures": {}, + "name": "meta.function.definition.special.constructor.cpp", + "patterns": [ + { + "begin": "\\G ?", + "end": "(?:\\{|<%|\\?\\?<|(?=;))", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.function.definition.special.constructor.cpp" + } + }, + "name": "meta.head.function.definition.special.constructor.cpp", + "patterns": [ + { + "include": "#ever_present_context" + }, + { + "match": "(\\=)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(default)|(delete))", + "captures": { + "1": { + "name": "keyword.operator.assignment.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "keyword.other.default.function.cpp keyword.other.default.constructor.cpp" + }, + "7": { + "name": "keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp" + } + } + }, + { + "include": "#functional_specifiers_pre_parameters" + }, + { + "begin": ":", + "end": "(?=\\{)", + "beginCaptures": { + "0": { + "name": "punctuation.separator.initializers.cpp" + } + }, + "endCaptures": {}, + "patterns": [ + { + "begin": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(((?<!<)<(?!<)(?:(?:(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/)))|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<3>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(\\()", + "end": "\\)", + "beginCaptures": { + "1": { + "name": "entity.name.function.call.initializer.cpp" + }, + "2": { + "name": "meta.template.call.cpp", + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "3": {}, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "5": { + "name": "comment.block.cpp" + }, + "6": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "7": { + "name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp" + } + }, + "contentName": "meta.parameter.initialization", + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + { + "begin": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(\\{)", + "end": "\\}", + "beginCaptures": { + "1": { + "name": "entity.name.function.call.initializer.cpp" + }, + "2": { + "name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp" + } + }, + "contentName": "meta.parameter.initialization", + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + { + "match": ",", + "name": "punctuation.separator.delimiter.comma.cpp" + }, + { + "include": "#comments" + } + ] + }, + { + "begin": "\\(", + "end": "\\)", + "beginCaptures": { + "0": { + "name": "punctuation.section.parameters.begin.bracket.round.special.constructor.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.parameters.end.bracket.round.special.constructor.cpp" + } + }, + "contentName": "meta.function.definition.parameters.special.constructor", + "patterns": [ + { + "include": "#function_parameter_context" + }, + { + "include": "#evaluation_context" + } + ] + }, + { + "include": "#qualifiers_and_specifiers_post_parameters" + }, + { + "include": "$self" + } + ] + }, + { + "begin": "(?<=\\{|<%|\\?\\?<)", + "end": "\\}|%>|\\?\\?>", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cpp" + } + }, + "name": "meta.body.function.definition.special.constructor.cpp", + "patterns": [ + { + "include": "#function_body_context" + } + ] + }, + { + "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", + "end": "[\\s]*(?=;)", + "beginCaptures": {}, + "endCaptures": {}, + "name": "meta.tail.function.definition.special.constructor.cpp", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + "constructor_root": { + "begin": "\\s*+((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<8>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(((?>(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))::((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:\\10)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\())", + "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))", + "beginCaptures": { + "0": { + "name": "meta.head.function.definition.special.constructor.cpp" + }, + "1": { + "name": "storage.type.modifier.calling-convention.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "patterns": [ + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.constructor.cpp" + }, + { + "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", + "name": "entity.name.scope-resolution.constructor.cpp" + }, + { + "include": "#template_call_range" + } + ] + }, + "7": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "8": {}, + "9": { + "patterns": [ + { + "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?=:)", + "name": "entity.name.type.constructor.cpp" + }, + { + "match": "(?<=:)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", + "name": "entity.name.function.definition.special.constructor.cpp" + }, + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.constructor.cpp" + } + ] + }, + "10": {}, + "11": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "12": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "13": { + "name": "comment.block.cpp" + }, + "14": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "15": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "16": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "17": { + "name": "comment.block.cpp" + }, + "18": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "19": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "20": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "21": { + "name": "comment.block.cpp" + }, + "22": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "endCaptures": {}, + "name": "meta.function.definition.special.constructor.cpp", + "patterns": [ + { + "begin": "\\G ?", + "end": "(?:\\{|<%|\\?\\?<|(?=;))", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.function.definition.special.constructor.cpp" + } + }, + "name": "meta.head.function.definition.special.constructor.cpp", + "patterns": [ + { + "include": "#ever_present_context" + }, + { + "match": "(\\=)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(default)|(delete))", + "captures": { + "1": { + "name": "keyword.operator.assignment.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "keyword.other.default.function.cpp keyword.other.default.constructor.cpp" + }, + "7": { + "name": "keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp" + } + } + }, + { + "include": "#functional_specifiers_pre_parameters" + }, + { + "begin": ":", + "end": "(?=\\{)", + "beginCaptures": { + "0": { + "name": "punctuation.separator.initializers.cpp" + } + }, + "endCaptures": {}, + "patterns": [ + { + "begin": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(((?<!<)<(?!<)(?:(?:(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/)))|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<3>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(\\()", + "end": "\\)", + "beginCaptures": { + "1": { + "name": "entity.name.function.call.initializer.cpp" + }, + "2": { + "name": "meta.template.call.cpp", + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "3": {}, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "5": { + "name": "comment.block.cpp" + }, + "6": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "7": { + "name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp" + } + }, + "contentName": "meta.parameter.initialization", + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + { + "begin": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(\\{)", + "end": "\\}", + "beginCaptures": { + "1": { + "name": "entity.name.function.call.initializer.cpp" + }, + "2": { + "name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp" + } + }, + "contentName": "meta.parameter.initialization", + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + { + "match": ",", + "name": "punctuation.separator.delimiter.comma.cpp" + }, + { + "include": "#comments" + } + ] + }, + { + "begin": "\\(", + "end": "\\)", + "beginCaptures": { + "0": { + "name": "punctuation.section.parameters.begin.bracket.round.special.constructor.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.parameters.end.bracket.round.special.constructor.cpp" + } + }, + "contentName": "meta.function.definition.parameters.special.constructor", + "patterns": [ + { + "include": "#function_parameter_context" + }, + { + "include": "#evaluation_context" + } + ] + }, + { + "include": "#qualifiers_and_specifiers_post_parameters" + }, + { + "include": "$self" + } + ] + }, + { + "begin": "(?<=\\{|<%|\\?\\?<)", + "end": "\\}|%>|\\?\\?>", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cpp" + } + }, + "name": "meta.body.function.definition.special.constructor.cpp", + "patterns": [ + { + "include": "#function_body_context" + } + ] + }, + { + "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", + "end": "[\\s]*(?=;)", + "beginCaptures": {}, + "endCaptures": {}, + "name": "meta.tail.function.definition.special.constructor.cpp", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + "control_flow_keywords": { + "match": "((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:(?:co_return)|(?:co_yield)|(?:co_await)|(?:continue)|(?:default)|(?:switch)|(?:return)|(?:catch)|(?:while)|(?:throw)|(?:break)|(?:case)|(?:goto)|(?:else)|(?:for)|(?:try)|(?:if)|(?:do))(?!\\w))", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "3": { + "name": "keyword.control.$3.cpp" + } + } + }, + "cpp_attributes": { + "begin": "\\[\\[", + "end": "\\]\\]", + "beginCaptures": { + "0": { + "name": "punctuation.section.attribute.begin.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.attribute.end.cpp" + } + }, + "name": "support.other.attribute.cpp", + "patterns": [ + { + "include": "#attributes_context" + }, + { + "begin": "\\(", + "end": "\\)", + "beginCaptures": {}, + "endCaptures": {}, + "patterns": [ + { + "include": "#attributes_context" + }, + { + "include": "#string_context" + }, + { + "include": "#ever_present_context" + } + ] + }, + { + "match": "(using)\\s+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))", + "captures": { + "1": { + "name": "keyword.other.using.directive.cpp" + }, + "2": { + "name": "entity.name.namespace.cpp" + } + } + }, + { + "match": ",", + "name": "punctuation.separator.attribute.cpp" + }, + { + "match": ":", + "name": "punctuation.accessor.attribute.cpp" + }, + { + "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=::)", + "name": "entity.name.namespace.cpp" + }, + { + "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", + "name": "entity.other.attribute.$0.cpp" + }, + { + "include": "#number_literal" + }, + { + "include": "#ever_present_context" + } + ] + }, + "curly_initializer": { + "begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<18>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<18>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\{)", + "end": "\\}", + "beginCaptures": { + "1": { + "name": "meta.qualified_type.cpp", + "patterns": [ + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" + }, + { + "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)", + "name": "storage.type.$0.cpp" + }, + { + "include": "#attributes_context" + }, + { + "include": "#storage_types" + }, + { + "include": "#number_literal" + }, + { + "include": "#string_context" + }, + { + "include": "#comma" + }, + { + "include": "#scope_resolution_inner_generated" + }, + { + "begin": "<", + "end": ">", + "beginCaptures": { + "0": { + "name": "punctuation.section.angle-brackets.begin.template.call.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.angle-brackets.end.template.call.cpp" + } + }, + "name": "meta.template.call.cpp", + "patterns": [ + { + "include": "#template_call_context" + } + ] + }, + { + "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", + "name": "entity.name.type.cpp" + } + ] + }, + "2": { + "patterns": [ + { + "include": "#attributes_context" + }, + { + "include": "#number_literal" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "5": { + "name": "comment.block.cpp" + }, + "6": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "7": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "9": { + "name": "comment.block.cpp" + }, + "10": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "11": { + "patterns": [ + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" + }, + { + "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", + "name": "entity.name.scope-resolution.type.cpp" + }, + { + "include": "#template_call_range" + } + ] + }, + "12": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "13": {}, + "14": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "15": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "16": { + "name": "comment.block.cpp" + }, + "17": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "18": {}, + "19": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "20": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "21": { + "name": "comment.block.cpp" + }, + "22": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "23": { + "name": "punctuation.section.arguments.begin.bracket.curly.initializer.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.curly.initializer.cpp" + } + }, + "name": "meta.initialization.cpp", + "patterns": [ + { + "include": "#evaluation_context" + }, + { + "include": "#comma" + } + ] + }, + "d9bc4796b0b_module_import": { + "match": "^((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((import))(?:\\s+)?(?:(?:(?:((<)[^>]*(>?)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=\\/\\/)))|((\\\")[^\\\"]*(\\\"?)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=\\/\\/))))|(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\.(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)*((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=(?:\\/\\/|;)))))|((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=(?:\\/\\/|;))))(?:\\s+)?(;?)", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "3": { + "name": "keyword.control.directive.import.cpp" + }, + "5": { + "name": "string.quoted.other.lt-gt.include.cpp" + }, + "6": { + "name": "punctuation.definition.string.begin.cpp" + }, + "7": { + "name": "punctuation.definition.string.end.cpp" + }, + "8": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "9": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "10": { + "name": "string.quoted.double.include.cpp" + }, + "11": { + "name": "punctuation.definition.string.begin.cpp" + }, + "12": { + "name": "punctuation.definition.string.end.cpp" + }, + "13": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "14": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "15": { + "name": "entity.name.other.preprocessor.macro.include.cpp" + }, + "16": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "17": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "18": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "19": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "20": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "21": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "22": { + "name": "punctuation.terminator.statement.cpp" + } + }, + "name": "meta.preprocessor.import.cpp" + }, + "d9bc4796b0b_preprocessor_number_literal": { + "match": "(?<!\\w)\\.?\\d(?:(?:[0-9a-zA-Z_\\.]|')|(?<=[eEpP])[+-])*", + "captures": { + "0": { + "patterns": [ + { + "begin": "(?=.)", + "end": "$", + "beginCaptures": {}, + "endCaptures": {}, + "patterns": [ + { + "match": "(\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?<=[0-9a-fA-F])\\.|\\.(?=[0-9a-fA-F])))([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?(?:(?<!')([pP])(\\+?)(\\-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?([lLfF](?!\\w))?$", + "captures": { + "1": { + "name": "keyword.other.unit.hexadecimal.cpp" + }, + "2": { + "name": "constant.numeric.hexadecimal.cpp", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.cpp" + } + ] + }, + "3": { + "name": "punctuation.separator.constant.numeric.cpp" + }, + "4": { + "name": "constant.numeric.hexadecimal.cpp" + }, + "5": { + "name": "constant.numeric.hexadecimal.cpp", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.cpp" + } + ] + }, + "6": { + "name": "punctuation.separator.constant.numeric.cpp" + }, + "7": { + "name": "keyword.other.unit.exponent.hexadecimal.cpp" + }, + "8": { + "name": "keyword.operator.plus.exponent.hexadecimal.cpp" + }, + "9": { + "name": "keyword.operator.minus.exponent.hexadecimal.cpp" + }, + "10": { + "name": "constant.numeric.exponent.hexadecimal.cpp", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.cpp" + } + ] + }, + "11": { + "name": "keyword.other.suffix.literal.built-in.floating-point.cpp keyword.other.unit.suffix.floating-point.cpp" + } + } + }, + { + "match": "\\G(?=[0-9.])(?!0[xXbB])([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?<=[0-9])\\.|\\.(?=[0-9])))([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?(?:(?<!')([eE])(\\+?)(\\-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?([lLfF](?!\\w))?$", + "captures": { + "1": { + "name": "constant.numeric.decimal.cpp", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.cpp" + } + ] + }, + "2": { + "name": "punctuation.separator.constant.numeric.cpp" + }, + "3": { + "name": "constant.numeric.decimal.point.cpp" + }, + "4": { + "name": "constant.numeric.decimal.cpp", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.cpp" + } + ] + }, + "5": { + "name": "punctuation.separator.constant.numeric.cpp" + }, + "6": { + "name": "keyword.other.unit.exponent.decimal.cpp" + }, + "7": { + "name": "keyword.operator.plus.exponent.decimal.cpp" + }, + "8": { + "name": "keyword.operator.minus.exponent.decimal.cpp" + }, + "9": { + "name": "constant.numeric.exponent.decimal.cpp", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.cpp" + } + ] + }, + "10": { + "name": "keyword.other.suffix.literal.built-in.floating-point.cpp keyword.other.unit.suffix.floating-point.cpp" + } + } + }, + { + "match": "(\\G0[bB])([01](?:[01]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\w))?$", + "captures": { + "1": { + "name": "keyword.other.unit.binary.cpp" + }, + "2": { + "name": "constant.numeric.binary.cpp", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.cpp" + } + ] + }, + "3": { + "name": "punctuation.separator.constant.numeric.cpp" + }, + "4": { + "name": "keyword.other.suffix.literal.built-in.integer.cpp keyword.other.unit.suffix.integer.cpp" + } + } + }, + { + "match": "(\\G0)((?:[0-7]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))+)((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\w))?$", + "captures": { + "1": { + "name": "keyword.other.unit.octal.cpp" + }, + "2": { + "name": "constant.numeric.octal.cpp", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.cpp" + } + ] + }, + "3": { + "name": "punctuation.separator.constant.numeric.cpp" + }, + "4": { + "name": "keyword.other.suffix.literal.built-in.integer.cpp keyword.other.unit.suffix.integer.cpp" + } + } + }, + { + "match": "(\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)(?:(?<!')([pP])(\\+?)(\\-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\w))?$", + "captures": { + "1": { + "name": "keyword.other.unit.hexadecimal.cpp" + }, + "2": { + "name": "constant.numeric.hexadecimal.cpp", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.cpp" + } + ] + }, + "3": { + "name": "punctuation.separator.constant.numeric.cpp" + }, + "4": { + "name": "keyword.other.unit.exponent.hexadecimal.cpp" + }, + "5": { + "name": "keyword.operator.plus.exponent.hexadecimal.cpp" + }, + "6": { + "name": "keyword.operator.minus.exponent.hexadecimal.cpp" + }, + "7": { + "name": "constant.numeric.exponent.hexadecimal.cpp", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.cpp" + } + ] + }, + "8": { + "name": "keyword.other.suffix.literal.built-in.integer.cpp keyword.other.unit.suffix.integer.cpp" + } + } + }, + { + "match": "\\G(?=[0-9.])(?!0[xXbB])([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)(?:(?<!')([eE])(\\+?)(\\-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\w))?$", + "captures": { + "1": { + "name": "constant.numeric.decimal.cpp", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.cpp" + } + ] + }, + "2": { + "name": "punctuation.separator.constant.numeric.cpp" + }, + "3": { + "name": "keyword.other.unit.exponent.decimal.cpp" + }, + "4": { + "name": "keyword.operator.plus.exponent.decimal.cpp" + }, + "5": { + "name": "keyword.operator.minus.exponent.decimal.cpp" + }, + "6": { + "name": "constant.numeric.exponent.decimal.cpp", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.cpp" + } + ] + }, + "7": { + "name": "keyword.other.suffix.literal.built-in.integer.cpp keyword.other.unit.suffix.integer.cpp" + } + } + }, + { + "match": "(?:(?:[0-9a-zA-Z_\\.]|')|(?<=[eEpP])[+-])+", + "name": "invalid.illegal.constant.numeric.cpp" + } + ] + } + ] + } + } + }, + "decltype": { + "begin": "((?<!\\w)decltype(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", + "end": "\\)", + "beginCaptures": { + "1": { + "name": "keyword.operator.functionlike.cpp keyword.other.decltype.cpp storage.type.decltype.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "punctuation.section.arguments.begin.bracket.round.decltype.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.decltype.cpp" + } + }, + "contentName": "meta.arguments.decltype", + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + "decltype_specifier": { + "begin": "((?<!\\w)decltype(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", + "end": "\\)", + "beginCaptures": { + "1": { + "name": "keyword.operator.functionlike.cpp keyword.other.decltype.cpp storage.type.decltype.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "punctuation.section.arguments.begin.bracket.round.decltype.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.decltype.cpp" + } + }, + "contentName": "meta.arguments.decltype", + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + "default_statement": { + "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)default(?!\\w))", + "end": ":", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "5": { + "name": "keyword.control.default.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.separator.colon.case.default.cpp" + } + }, + "name": "meta.conditional.case.cpp", + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + "destructor_inline": { + "begin": "^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:(?:(?:constexpr)|(?:consteval)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*)(~(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=\\())", + "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))", + "beginCaptures": { + "0": { + "name": "meta.head.function.definition.special.member.destructor.cpp" + }, + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "5": { + "name": "storage.type.modifier.calling-convention.cpp" + }, + "6": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "7": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "8": { + "name": "comment.block.cpp" + }, + "9": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "10": { + "patterns": [ + { + "include": "#functional_specifiers_pre_parameters" + } + ] + }, + "11": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "12": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "13": { + "name": "comment.block.cpp" + }, + "14": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "15": { + "name": "entity.name.function.destructor.cpp entity.name.function.definition.special.member.destructor.cpp" + } + }, + "endCaptures": {}, + "name": "meta.function.definition.special.member.destructor.cpp", + "patterns": [ + { + "begin": "\\G ?", + "end": "(?:\\{|<%|\\?\\?<|(?=;))", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.function.definition.special.member.destructor.cpp" + } + }, + "name": "meta.head.function.definition.special.member.destructor.cpp", + "patterns": [ + { + "include": "#ever_present_context" + }, + { + "match": "(\\=)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(default)|(delete))", + "captures": { + "1": { + "name": "keyword.operator.assignment.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "keyword.other.default.function.cpp keyword.other.default.constructor.cpp keyword.other.default.destructor.cpp" + }, + "7": { + "name": "keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp keyword.other.delete.destructor.cpp" + } + } + }, + { + "begin": "\\(", + "end": "\\)", + "beginCaptures": { + "0": { + "name": "punctuation.section.parameters.begin.bracket.round.special.member.destructor.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.parameters.end.bracket.round.special.member.destructor.cpp" + } + }, + "contentName": "meta.function.definition.parameters.special.member.destructor", + "patterns": [] + }, + { + "include": "#qualifiers_and_specifiers_post_parameters" + }, + { + "include": "$self" + } + ] + }, + { + "begin": "(?<=\\{|<%|\\?\\?<)", + "end": "\\}|%>|\\?\\?>", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.function.definition.special.member.destructor.cpp" + } + }, + "name": "meta.body.function.definition.special.member.destructor.cpp", + "patterns": [ + { + "include": "#function_body_context" + } + ] + }, + { + "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", + "end": "[\\s]*(?=;)", + "beginCaptures": {}, + "endCaptures": {}, + "name": "meta.tail.function.definition.special.member.destructor.cpp", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + "destructor_root": { + "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<12>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(((?>(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))::((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))~(?:\\14)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\())", + "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))", + "beginCaptures": { + "0": { + "name": "meta.head.function.definition.special.member.destructor.cpp" + }, + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "5": { + "name": "storage.type.modifier.calling-convention.cpp" + }, + "6": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "7": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "8": { + "name": "comment.block.cpp" + }, + "9": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "10": { + "patterns": [ + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.destructor.cpp" + }, + { + "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", + "name": "entity.name.scope-resolution.destructor.cpp" + }, + { + "include": "#template_call_range" + } + ] + }, + "11": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "12": {}, + "13": { + "patterns": [ + { + "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?=:)", + "name": "entity.name.type.destructor.cpp" + }, + { + "match": "(?<=:)~(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", + "name": "entity.name.function.definition.special.member.destructor.cpp" + }, + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.destructor.cpp" + } + ] + }, + "14": {}, + "15": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "16": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "17": { + "name": "comment.block.cpp" + }, + "18": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "19": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "20": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "21": { + "name": "comment.block.cpp" + }, + "22": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "23": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "24": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "25": { + "name": "comment.block.cpp" + }, + "26": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "endCaptures": {}, + "name": "meta.function.definition.special.member.destructor.cpp", + "patterns": [ + { + "begin": "\\G ?", + "end": "(?:\\{|<%|\\?\\?<|(?=;))", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.function.definition.special.member.destructor.cpp" + } + }, + "name": "meta.head.function.definition.special.member.destructor.cpp", + "patterns": [ + { + "include": "#ever_present_context" + }, + { + "match": "(\\=)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(default)|(delete))", + "captures": { + "1": { + "name": "keyword.operator.assignment.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "keyword.other.default.function.cpp keyword.other.default.constructor.cpp keyword.other.default.destructor.cpp" + }, + "7": { + "name": "keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp keyword.other.delete.destructor.cpp" + } + } + }, + { + "begin": "\\(", + "end": "\\)", + "beginCaptures": { + "0": { + "name": "punctuation.section.parameters.begin.bracket.round.special.member.destructor.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.parameters.end.bracket.round.special.member.destructor.cpp" + } + }, + "contentName": "meta.function.definition.parameters.special.member.destructor", + "patterns": [] + }, + { + "include": "#qualifiers_and_specifiers_post_parameters" + }, + { + "include": "$self" + } + ] + }, + { + "begin": "(?<=\\{|<%|\\?\\?<)", + "end": "\\}|%>|\\?\\?>", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.function.definition.special.member.destructor.cpp" + } + }, + "name": "meta.body.function.definition.special.member.destructor.cpp", + "patterns": [ + { + "include": "#function_body_context" + } + ] + }, + { + "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", + "end": "[\\s]*(?=;)", + "beginCaptures": {}, + "endCaptures": {}, + "name": "meta.tail.function.definition.special.member.destructor.cpp", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + "diagnostic": { + "begin": "(^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(#)(?:\\s+)?((?:error|warning)))\\b(?:\\s+)?", + "end": "(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))", + "beginCaptures": { + "1": { + "name": "keyword.control.directive.diagnostic.$7.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "punctuation.definition.directive.cpp" + }, + "7": {} + }, + "endCaptures": {}, + "name": "meta.preprocessor.diagnostic.$reference(directive).cpp", + "patterns": [ + { + "include": "#comments" + }, + { + "begin": "\"", + "end": "(?:(\")|(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$)))", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.cpp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.cpp" + } + }, + "name": "string.quoted.double.cpp", + "patterns": [ + { + "include": "#line_continuation_character" + } + ] + }, + { + "begin": "'", + "end": "(?:(')|(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$)))", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.cpp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.cpp" + } + }, + "name": "string.quoted.single.cpp", + "patterns": [ + { + "include": "#line_continuation_character" + } + ] + }, + { + "begin": "[^'\"]", + "end": "(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))", + "beginCaptures": {}, + "endCaptures": {}, + "name": "string.unquoted.cpp", + "patterns": [ + { + "include": "#line_continuation_character" + }, + { + "include": "#comments" + } + ] + } + ] + }, + "emacs_file_banner": { + "match": "(?:(^(?:\\s+)?((\\/\\/)(?:\\s+)?((?:[#;\\/=*C~]+)++(?![#;\\/=*C~]))(?:\\s+)?.+(?:\\s+)?(?:\\4)(?:\\s+)?(?:\\n|$)))|(^(?:\\s+)?((\\/\\*)(?:\\s+)?((?:[#;\\/=*C~]+)++(?![#;\\/=*C~]))(?:\\s+)?.+(?:\\s+)?(?:\\8)(?:\\s+)?\\*\\/)))", + "captures": { + "1": { + "name": "meta.toc-list.banner.double-slash.cpp" + }, + "2": { + "name": "comment.line.double-slash.cpp" + }, + "3": { + "name": "punctuation.definition.comment.cpp" + }, + "4": { + "name": "meta.banner.character.cpp" + }, + "5": { + "name": "meta.toc-list.banner.block.cpp" + }, + "6": { + "name": "comment.line.banner.cpp" + }, + "7": { + "name": "punctuation.definition.comment.cpp" + }, + "8": { + "name": "meta.banner.character.cpp" + } + } + }, + "empty_square_brackets": { + "name": "storage.modifier.array.bracket.square", + "match": "(?<!delete)\\[(?:\\s+)?\\]" + }, + "enum_block": { + "begin": "((?<!\\w)enum(?!\\w))(?:\\s+(class|struct))?(?:(?:\\s+|((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\))))|(?={))(?:\\s+)?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))?)(?:(?:\\s+)?(:)(?:\\s+)?(?:((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<12>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\s*+(((?<!<)<(?!<)(?:(?:(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/)))|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<12>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::))?(?:\\s+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)))?", + "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))", + "beginCaptures": { + "0": { + "name": "meta.head.enum.cpp" + }, + "1": { + "name": "storage.type.enum.cpp" + }, + "2": { + "name": "storage.type.enum.enum-key.$2.cpp" + }, + "3": { + "patterns": [ + { + "include": "#attributes_context" + }, + { + "include": "#number_literal" + } + ] + }, + "4": { + "name": "entity.name.type.enum.cpp" + }, + "5": { + "name": "punctuation.separator.colon.type-specifier.cpp" + }, + "6": { + "patterns": [ + { + "include": "#scope_resolution_inner_generated" + } + ] + }, + "7": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" + }, + "8": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "9": {}, + "10": { + "name": "entity.name.scope-resolution.cpp" + }, + "11": { + "name": "meta.template.call.cpp", + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "12": {}, + "13": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "14": { + "name": "comment.block.cpp" + }, + "15": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "16": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" + }, + "17": { + "name": "storage.type.integral.$17.cpp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.terminator.statement.cpp" + }, + "2": { + "name": "punctuation.terminator.statement.cpp" + } + }, + "name": "meta.block.enum.cpp", + "patterns": [ + { + "begin": "\\G ?", + "end": "(?:\\{|<%|\\?\\?<|(?=;))", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.enum.cpp" + } + }, + "name": "meta.head.enum.cpp", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "begin": "(?<=\\{|<%|\\?\\?<)", + "end": "\\}|%>|\\?\\?>", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.enum.cpp" + } + }, + "name": "meta.body.enum.cpp", + "patterns": [ + { + "include": "#ever_present_context" + }, + { + "include": "#enumerator_list" + }, + { + "include": "#comments" + }, + { + "include": "#comma" + }, + { + "include": "#semicolon" + } + ] + }, + { + "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", + "end": "[\\s]*(?=;)", + "beginCaptures": {}, + "endCaptures": {}, + "name": "meta.tail.enum.cpp", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + "enum_declare": { + "match": "((?<!\\w)enum(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))\\b(?!override\\W|override\\$|final\\W|final\\$)((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\S)(?![:{a-zA-Z])", + "captures": { + "1": { + "name": "storage.type.enum.declare.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "4": { + "name": "entity.name.type.enum.cpp" + }, + "5": { + "patterns": [ + { + "match": "\\*", + "name": "storage.modifier.pointer.cpp" + }, + { + "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "name": "invalid.illegal.reference-type.cpp" + }, + { + "match": "\\&", + "name": "storage.modifier.reference.cpp" + } + ] + }, + "6": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "7": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "8": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "9": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "10": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "11": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "12": { + "name": "variable.other.object.declare.cpp" + }, + "13": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "14": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + } + } + }, + "enumerator_list": { + "match": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(?:\\s+)?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?(?:\\s+)?(?:(\\=)(?:\\s+)?(.+?)(?:\\s+)?)?(?:(?:((?:[,;](?!')|\\n))|(?=\\}[^']))|(?=(?:\\/\\/|\\/\\*)))", + "captures": { + "1": { + "name": "variable.other.enummember.cpp" + }, + "2": { + "patterns": [ + { + "include": "#attributes_context" + }, + { + "include": "#number_literal" + } + ] + }, + "3": { + "name": "keyword.operator.assignment.cpp" + }, + "4": { + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + "5": { + "patterns": [ + { + "include": "#comma" + }, + { + "include": "#semicolon" + } + ] + } + }, + "name": "meta.enum.definition.cpp" + }, + "evaluation_context": { + "patterns": [ + { + "include": "#ever_present_context" + }, + { + "include": "#string_context" + }, + { + "include": "#number_literal" + }, + { + "include": "#method_access" + }, + { + "include": "#member_access" + }, + { + "include": "#predefined_macros" + }, + { + "include": "#operators" + }, + { + "include": "#memory_operators" + }, + { + "include": "#wordlike_operators" + }, + { + "include": "#type_casting_operators" + }, + { + "include": "#control_flow_keywords" + }, + { + "include": "#exception_keywords" + }, + { + "include": "#the_this_keyword" + }, + { + "include": "#language_constants" + }, + { + "include": "#builtin_storage_type_initilizer" + }, + { + "include": "#qualifiers_and_specifiers_post_parameters" + }, + { + "include": "#functional_specifiers_pre_parameters" + }, + { + "include": "#storage_types" + }, + { + "include": "#lambdas" + }, + { + "include": "#attributes_context" + }, + { + "include": "#parentheses" + }, + { + "include": "#function_call" + }, + { + "include": "#scope_resolution_inner_generated" + }, + { + "include": "#square_brackets" + }, + { + "include": "#semicolon" + }, + { + "include": "#comma" + } + ] + }, + "ever_present_context": { + "patterns": [ + { + "include": "#pragma_mark" + }, + { + "include": "#pragma" + }, + { + "include": "#include" + }, + { + "include": "#line" + }, + { + "include": "#diagnostic" + }, + { + "include": "#undef" + }, + { + "include": "#preprocessor_conditional_range" + }, + { + "include": "#single_line_macro" + }, + { + "include": "#macro" + }, + { + "include": "#preprocessor_conditional_standalone" + }, + { + "include": "#macro_argument" + }, + { + "include": "#comments" + }, + { + "include": "#line_continuation_character" + } + ] + }, + "exception_keywords": { + "match": "((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:(?:throw)|(?:catch)|(?:try))(?!\\w))", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "3": { + "name": "keyword.control.exception.$3.cpp" + } + } + }, + "extern_block": { + "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(extern)(?=\\s*\\\")", + "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))", + "beginCaptures": { + "0": { + "name": "meta.head.extern.cpp" + }, + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "5": { + "name": "storage.type.extern.cpp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.terminator.statement.cpp" + }, + "2": { + "name": "punctuation.terminator.statement.cpp" + } + }, + "name": "meta.block.extern.cpp", + "patterns": [ + { + "begin": "\\G ?", + "end": "(?:\\{|<%|\\?\\?<|(?=;))", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.extern.cpp" + } + }, + "name": "meta.head.extern.cpp", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "begin": "(?<=\\{|<%|\\?\\?<)", + "end": "\\}|%>|\\?\\?>", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.extern.cpp" + } + }, + "name": "meta.body.extern.cpp", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", + "end": "[\\s]*(?=;)", + "beginCaptures": {}, + "endCaptures": {}, + "name": "meta.tail.extern.cpp", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "include": "$self" + } + ] + }, + "function_body_context": { + "patterns": [ + { + "include": "#ever_present_context" + }, + { + "include": "#using_namespace" + }, + { + "include": "#type_alias" + }, + { + "include": "#using_name" + }, + { + "include": "#namespace_alias" + }, + { + "include": "#typedef_class" + }, + { + "include": "#typedef_struct" + }, + { + "include": "#typedef_union" + }, + { + "include": "#misc_keywords" + }, + { + "include": "#standard_declares" + }, + { + "include": "#class_block" + }, + { + "include": "#struct_block" + }, + { + "include": "#union_block" + }, + { + "include": "#enum_block" + }, + { + "include": "#access_control_keywords" + }, + { + "include": "#block" + }, + { + "include": "#static_assert" + }, + { + "include": "#assembly" + }, + { + "include": "#function_pointer" + }, + { + "include": "#switch_statement" + }, + { + "include": "#goto_statement" + }, + { + "include": "#evaluation_context" + }, + { + "include": "#label" + } + ] + }, + "function_call": { + "begin": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<11>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)\\b(?<!\\Wreinterpret_cast|^reinterpret_cast|\\Watomic_noexcept|^atomic_noexcept|\\Wuint_least16_t|^uint_least16_t|\\Wuint_least32_t|^uint_least32_t|\\Wuint_least64_t|^uint_least64_t|\\Watomic_cancel|^atomic_cancel|\\Watomic_commit|^atomic_commit|\\Wuint_least8_t|^uint_least8_t|\\Wuint_fast16_t|^uint_fast16_t|\\Wuint_fast32_t|^uint_fast32_t|\\Wint_least16_t|^int_least16_t|\\Wint_least32_t|^int_least32_t|\\Wint_least64_t|^int_least64_t|\\Wuint_fast64_t|^uint_fast64_t|\\Wthread_local|^thread_local|\\Wint_fast16_t|^int_fast16_t|\\Wint_fast32_t|^int_fast32_t|\\Wint_fast64_t|^int_fast64_t|\\Wsynchronized|^synchronized|\\Wuint_fast8_t|^uint_fast8_t|\\Wdynamic_cast|^dynamic_cast|\\Wint_least8_t|^int_least8_t|\\Wint_fast8_t|^int_fast8_t|\\Wstatic_cast|^static_cast|\\Wsuseconds_t|^suseconds_t|\\Wconst_cast|^const_cast|\\Wuseconds_t|^useconds_t|\\Wconstinit|^constinit|\\Wco_return|^co_return|\\Wuintmax_t|^uintmax_t|\\Wuintmax_t|^uintmax_t|\\Wuintmax_t|^uintmax_t|\\Wconstexpr|^constexpr|\\Wconsteval|^consteval|\\Wconstexpr|^constexpr|\\Wconstexpr|^constexpr|\\Wconsteval|^consteval|\\Wprotected|^protected|\\Wnamespace|^namespace|\\Wblksize_t|^blksize_t|\\Wco_return|^co_return|\\Win_addr_t|^in_addr_t|\\Win_port_t|^in_port_t|\\Wuintptr_t|^uintptr_t|\\Wtemplate|^template|\\Wnoexcept|^noexcept|\\Wnoexcept|^noexcept|\\Wcontinue|^continue|\\Wco_await|^co_await|\\Wco_yield|^co_yield|\\Wunsigned|^unsigned|\\Wu_quad_t|^u_quad_t|\\Wblkcnt_t|^blkcnt_t|\\Wuint16_t|^uint16_t|\\Wuint32_t|^uint32_t|\\Wuint64_t|^uint64_t|\\Wintptr_t|^intptr_t|\\Wintmax_t|^intmax_t|\\Wintmax_t|^intmax_t|\\Wvolatile|^volatile|\\Wregister|^register|\\Wrestrict|^restrict|\\Wexplicit|^explicit|\\Wvolatile|^volatile|\\Wnoexcept|^noexcept|\\Woperator|^operator|\\Wdecltype|^decltype|\\Wtypename|^typename|\\Wrequires|^requires|\\Wco_await|^co_await|\\Wco_yield|^co_yield|\\Wreflexpr|^reflexpr|\\Wswblk_t|^swblk_t|\\Wvirtual|^virtual|\\Wssize_t|^ssize_t|\\Wconcept|^concept|\\Wmutable|^mutable|\\Wfixpt_t|^fixpt_t|\\Wint16_t|^int16_t|\\Wint32_t|^int32_t|\\Wint64_t|^int64_t|\\Wuint8_t|^uint8_t|\\Wtypedef|^typedef|\\Wdaddr_t|^daddr_t|\\Wcaddr_t|^caddr_t|\\Wqaddr_t|^qaddr_t|\\Wdefault|^default|\\Wnlink_t|^nlink_t|\\Wsegsz_t|^segsz_t|\\Wu_short|^u_short|\\Wwchar_t|^wchar_t|\\Wprivate|^private|\\W__asm__|^__asm__|\\Walignas|^alignas|\\Walignof|^alignof|\\Wmutable|^mutable|\\Wnullptr|^nullptr|\\Wclock_t|^clock_t|\\Wmode_t|^mode_t|\\Wpublic|^public|\\Wsize_t|^size_t|\\Wdouble|^double|\\Wquad_t|^quad_t|\\Wstatic|^static|\\Wtime_t|^time_t|\\Wmodule|^module|\\Wimport|^import|\\Wexport|^export|\\Wextern|^extern|\\Winline|^inline|\\Wxor_eq|^xor_eq|\\Wand_eq|^and_eq|\\Wreturn|^return|\\Wfriend|^friend|\\Wnot_eq|^not_eq|\\Wsigned|^signed|\\Wstruct|^struct|\\Wint8_t|^int8_t|\\Wushort|^ushort|\\Wswitch|^switch|\\Wu_long|^u_long|\\Wtypeid|^typeid|\\Wu_char|^u_char|\\Wsizeof|^sizeof|\\Wbitand|^bitand|\\Wdelete|^delete|\\Wino_t|^ino_t|\\Wkey_t|^key_t|\\Wpid_t|^pid_t|\\Woff_t|^off_t|\\Wuid_t|^uid_t|\\Wshort|^short|\\Wbreak|^break|\\Wcatch|^catch|\\Wcompl|^compl|\\Wwhile|^while|\\Wfalse|^false|\\Wclass|^class|\\Wunion|^union|\\Wconst|^const|\\Wor_eq|^or_eq|\\Wconst|^const|\\Wthrow|^throw|\\Wbitor|^bitor|\\Wu_int|^u_int|\\Wusing|^using|\\Wdiv_t|^div_t|\\Wdev_t|^dev_t|\\Wgid_t|^gid_t|\\Wfloat|^float|\\Wlong|^long|\\Wgoto|^goto|\\Wuint|^uint|\\Wid_t|^id_t|\\Wcase|^case|\\Wauto|^auto|\\Wvoid|^void|\\Wenum|^enum|\\Wtrue|^true|\\Wchar|^char|\\Wid_t|^id_t|\\WNULL|^NULL|\\Wthis|^this|\\Wbool|^bool|\\Welse|^else|\\Wfor|^for|\\Wnew|^new|\\Wnot|^not|\\Wxor|^xor|\\Wand|^and|\\Wasm|^asm|\\Wint|^int|\\Wtry|^try|\\Wdo|^do|\\Wif|^if|\\Wor|^or)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(((?<!<)<(?!<)(?:(?:(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/)))|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<11>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(\\()", + "end": "\\)", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#scope_resolution_function_call_inner_generated" + } + ] + }, + "2": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp" + }, + "3": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "4": {}, + "5": { + "name": "entity.name.function.call.cpp" + }, + "6": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "7": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "8": { + "name": "comment.block.cpp" + }, + "9": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "10": { + "name": "meta.template.call.cpp", + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "11": {}, + "12": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "13": { + "name": "comment.block.cpp" + }, + "14": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "15": { + "name": "punctuation.section.arguments.begin.bracket.round.function.call.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.function.call.cpp" + } + }, + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + "function_definition": { + "begin": "(?:(?:^|\\G|(?<=;|\\}))|(?<=>|\\*\\/))\\s*+(?:((?<!\\w)template(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?<!\\w)(?:(?:(?:constexpr)|(?:consteval)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))|(?:(?:thread_local)|(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*)(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<52>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<52>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<52>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)\\b(?<!\\Wreinterpret_cast|^reinterpret_cast|\\Watomic_noexcept|^atomic_noexcept|\\Wuint_least16_t|^uint_least16_t|\\Wuint_least32_t|^uint_least32_t|\\Wuint_least64_t|^uint_least64_t|\\Watomic_cancel|^atomic_cancel|\\Watomic_commit|^atomic_commit|\\Wuint_least8_t|^uint_least8_t|\\Wuint_fast16_t|^uint_fast16_t|\\Wuint_fast32_t|^uint_fast32_t|\\Wint_least16_t|^int_least16_t|\\Wint_least32_t|^int_least32_t|\\Wint_least64_t|^int_least64_t|\\Wuint_fast64_t|^uint_fast64_t|\\Wthread_local|^thread_local|\\Wint_fast16_t|^int_fast16_t|\\Wint_fast32_t|^int_fast32_t|\\Wint_fast64_t|^int_fast64_t|\\Wsynchronized|^synchronized|\\Wuint_fast8_t|^uint_fast8_t|\\Wdynamic_cast|^dynamic_cast|\\Wint_least8_t|^int_least8_t|\\Wint_fast8_t|^int_fast8_t|\\Wstatic_cast|^static_cast|\\Wsuseconds_t|^suseconds_t|\\Wconst_cast|^const_cast|\\Wuseconds_t|^useconds_t|\\Wconstinit|^constinit|\\Wco_return|^co_return|\\Wuintmax_t|^uintmax_t|\\Wuintmax_t|^uintmax_t|\\Wuintmax_t|^uintmax_t|\\Wconstexpr|^constexpr|\\Wconsteval|^consteval|\\Wconstexpr|^constexpr|\\Wconstexpr|^constexpr|\\Wconsteval|^consteval|\\Wprotected|^protected|\\Wnamespace|^namespace|\\Wblksize_t|^blksize_t|\\Wco_return|^co_return|\\Win_addr_t|^in_addr_t|\\Win_port_t|^in_port_t|\\Wuintptr_t|^uintptr_t|\\Wtemplate|^template|\\Wnoexcept|^noexcept|\\Wnoexcept|^noexcept|\\Wcontinue|^continue|\\Wco_await|^co_await|\\Wco_yield|^co_yield|\\Wunsigned|^unsigned|\\Wu_quad_t|^u_quad_t|\\Wblkcnt_t|^blkcnt_t|\\Wuint16_t|^uint16_t|\\Wuint32_t|^uint32_t|\\Wuint64_t|^uint64_t|\\Wintptr_t|^intptr_t|\\Wintmax_t|^intmax_t|\\Wintmax_t|^intmax_t|\\Wvolatile|^volatile|\\Wregister|^register|\\Wrestrict|^restrict|\\Wexplicit|^explicit|\\Wvolatile|^volatile|\\Wnoexcept|^noexcept|\\Woperator|^operator|\\Wdecltype|^decltype|\\Wtypename|^typename|\\Wrequires|^requires|\\Wco_await|^co_await|\\Wco_yield|^co_yield|\\Wreflexpr|^reflexpr|\\Wswblk_t|^swblk_t|\\Wvirtual|^virtual|\\Wssize_t|^ssize_t|\\Wconcept|^concept|\\Wmutable|^mutable|\\Wfixpt_t|^fixpt_t|\\Wint16_t|^int16_t|\\Wint32_t|^int32_t|\\Wint64_t|^int64_t|\\Wuint8_t|^uint8_t|\\Wtypedef|^typedef|\\Wdaddr_t|^daddr_t|\\Wcaddr_t|^caddr_t|\\Wqaddr_t|^qaddr_t|\\Wdefault|^default|\\Wnlink_t|^nlink_t|\\Wsegsz_t|^segsz_t|\\Wu_short|^u_short|\\Wwchar_t|^wchar_t|\\Wprivate|^private|\\W__asm__|^__asm__|\\Walignas|^alignas|\\Walignof|^alignof|\\Wmutable|^mutable|\\Wnullptr|^nullptr|\\Wclock_t|^clock_t|\\Wmode_t|^mode_t|\\Wpublic|^public|\\Wsize_t|^size_t|\\Wdouble|^double|\\Wquad_t|^quad_t|\\Wstatic|^static|\\Wtime_t|^time_t|\\Wmodule|^module|\\Wimport|^import|\\Wexport|^export|\\Wextern|^extern|\\Winline|^inline|\\Wxor_eq|^xor_eq|\\Wand_eq|^and_eq|\\Wreturn|^return|\\Wfriend|^friend|\\Wnot_eq|^not_eq|\\Wsigned|^signed|\\Wstruct|^struct|\\Wint8_t|^int8_t|\\Wushort|^ushort|\\Wswitch|^switch|\\Wu_long|^u_long|\\Wtypeid|^typeid|\\Wu_char|^u_char|\\Wsizeof|^sizeof|\\Wbitand|^bitand|\\Wdelete|^delete|\\Wino_t|^ino_t|\\Wkey_t|^key_t|\\Wpid_t|^pid_t|\\Woff_t|^off_t|\\Wuid_t|^uid_t|\\Wshort|^short|\\Wbreak|^break|\\Wcatch|^catch|\\Wcompl|^compl|\\Wwhile|^while|\\Wfalse|^false|\\Wclass|^class|\\Wunion|^union|\\Wconst|^const|\\Wor_eq|^or_eq|\\Wconst|^const|\\Wthrow|^throw|\\Wbitor|^bitor|\\Wu_int|^u_int|\\Wusing|^using|\\Wdiv_t|^div_t|\\Wdev_t|^dev_t|\\Wgid_t|^gid_t|\\Wfloat|^float|\\Wlong|^long|\\Wgoto|^goto|\\Wuint|^uint|\\Wid_t|^id_t|\\Wcase|^case|\\Wauto|^auto|\\Wvoid|^void|\\Wenum|^enum|\\Wtrue|^true|\\Wchar|^char|\\Wid_t|^id_t|\\WNULL|^NULL|\\Wthis|^this|\\Wbool|^bool|\\Welse|^else|\\Wfor|^for|\\Wnew|^new|\\Wnot|^not|\\Wxor|^xor|\\Wand|^and|\\Wasm|^asm|\\Wint|^int|\\Wtry|^try|\\Wdo|^do|\\Wif|^if|\\Wor|^or)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\()", + "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))", + "beginCaptures": { + "0": { + "name": "meta.head.function.definition.cpp" + }, + "1": { + "name": "storage.type.template.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "patterns": [ + { + "include": "#attributes_context" + }, + { + "include": "#number_literal" + } + ] + }, + "7": { + "patterns": [ + { + "match": "((?<!\\w)(?:(?:(?:constexpr)|(?:consteval)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))|(?:(?:thread_local)|(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))", + "captures": { + "1": { + "name": "storage.modifier.$1.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "8": { + "name": "storage.modifier.$8.cpp" + }, + "9": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "10": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "11": { + "name": "comment.block.cpp" + }, + "12": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "13": { + "name": "meta.qualified_type.cpp", + "patterns": [ + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" + }, + { + "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)", + "name": "storage.type.$0.cpp" + }, + { + "include": "#attributes_context" + }, + { + "include": "#storage_types" + }, + { + "include": "#number_literal" + }, + { + "include": "#string_context" + }, + { + "include": "#comma" + }, + { + "include": "#scope_resolution_inner_generated" + }, + { + "begin": "<", + "end": ">", + "beginCaptures": { + "0": { + "name": "punctuation.section.angle-brackets.begin.template.call.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.angle-brackets.end.template.call.cpp" + } + }, + "name": "meta.template.call.cpp", + "patterns": [ + { + "include": "#template_call_context" + } + ] + }, + { + "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", + "name": "entity.name.type.cpp" + } + ] + }, + "14": { + "patterns": [ + { + "include": "#attributes_context" + }, + { + "include": "#number_literal" + } + ] + }, + "15": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "16": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "17": { + "name": "comment.block.cpp" + }, + "18": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "19": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "20": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "21": { + "name": "comment.block.cpp" + }, + "22": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "23": { + "patterns": [ + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" + }, + { + "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", + "name": "entity.name.scope-resolution.type.cpp" + }, + { + "include": "#template_call_range" + } + ] + }, + "24": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "25": {}, + "26": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "27": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "28": { + "name": "comment.block.cpp" + }, + "29": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "30": {}, + "31": { + "patterns": [ + { + "match": "\\*", + "name": "storage.modifier.pointer.cpp" + }, + { + "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "name": "invalid.illegal.reference-type.cpp" + }, + { + "match": "\\&", + "name": "storage.modifier.reference.cpp" + } + ] + }, + "32": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "33": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "34": { + "name": "comment.block.cpp" + }, + "35": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "36": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "37": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "38": { + "name": "comment.block.cpp" + }, + "39": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "40": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "41": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "42": { + "name": "comment.block.cpp" + }, + "43": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "44": { + "name": "storage.type.modifier.calling-convention.cpp" + }, + "45": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "46": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "47": { + "name": "comment.block.cpp" + }, + "48": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "49": { + "patterns": [ + { + "include": "#scope_resolution_function_definition_inner_generated" + } + ] + }, + "50": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp" + }, + "51": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "52": {}, + "53": { + "name": "entity.name.function.definition.cpp" + }, + "54": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "55": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "56": { + "name": "comment.block.cpp" + }, + "57": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "endCaptures": {}, + "name": "meta.function.definition.cpp", + "patterns": [ + { + "begin": "\\G ?", + "end": "(?:\\{|<%|\\?\\?<|(?=;))", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.function.definition.cpp" + } + }, + "name": "meta.head.function.definition.cpp", + "patterns": [ + { + "include": "#ever_present_context" + }, + { + "begin": "\\(", + "end": "\\)", + "beginCaptures": { + "0": { + "name": "punctuation.section.parameters.begin.bracket.round.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.parameters.end.bracket.round.cpp" + } + }, + "contentName": "meta.function.definition.parameters", + "patterns": [ + { + "include": "#ever_present_context" + }, + { + "include": "#parameter_or_maybe_value" + }, + { + "include": "#comma" + }, + { + "include": "#evaluation_context" + } + ] + }, + { + "match": "(?<=^|\\))(?:\\s+)?(->)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<23>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<23>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))", + "captures": { + "1": { + "name": "punctuation.definition.function.return-type.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "meta.qualified_type.cpp", + "patterns": [ + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" + }, + { + "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)", + "name": "storage.type.$0.cpp" + }, + { + "include": "#attributes_context" + }, + { + "include": "#storage_types" + }, + { + "include": "#number_literal" + }, + { + "include": "#string_context" + }, + { + "include": "#comma" + }, + { + "include": "#scope_resolution_inner_generated" + }, + { + "begin": "<", + "end": ">", + "beginCaptures": { + "0": { + "name": "punctuation.section.angle-brackets.begin.template.call.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.angle-brackets.end.template.call.cpp" + } + }, + "name": "meta.template.call.cpp", + "patterns": [ + { + "include": "#template_call_context" + } + ] + }, + { + "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", + "name": "entity.name.type.cpp" + } + ] + }, + "7": { + "patterns": [ + { + "include": "#attributes_context" + }, + { + "include": "#number_literal" + } + ] + }, + "8": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "9": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "10": { + "name": "comment.block.cpp" + }, + "11": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "12": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "13": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "14": { + "name": "comment.block.cpp" + }, + "15": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "16": { + "patterns": [ + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" + }, + { + "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", + "name": "entity.name.scope-resolution.type.cpp" + }, + { + "include": "#template_call_range" + } + ] + }, + "17": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "18": {}, + "19": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "20": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "21": { + "name": "comment.block.cpp" + }, + "22": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "23": {} + } + }, + { + "include": "$self" + } + ] + }, + { + "begin": "(?<=\\{|<%|\\?\\?<)", + "end": "\\}|%>|\\?\\?>", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.function.definition.cpp" + } + }, + "name": "meta.body.function.definition.cpp", + "patterns": [ + { + "include": "#function_body_context" + } + ] + }, + { + "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", + "end": "[\\s]*(?=;)", + "beginCaptures": {}, + "endCaptures": {}, + "name": "meta.tail.function.definition.cpp", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + "function_parameter_context": { + "patterns": [ + { + "include": "#ever_present_context" + }, + { + "include": "#parameter" + }, + { + "include": "#comma" + } + ] + }, + "function_pointer": { + "begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<18>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<18>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()(\\*)(?:\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:\\s+)?(?:(\\[)(\\w*)(\\])(?:\\s+)?)*(\\))(?:\\s+)?(\\()", + "end": "(\\))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=[{=,);>]|\\n)(?!\\()", + "beginCaptures": { + "1": { + "name": "meta.qualified_type.cpp", + "patterns": [ + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" + }, + { + "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)", + "name": "storage.type.$0.cpp" + }, + { + "include": "#attributes_context" + }, + { + "include": "#storage_types" + }, + { + "include": "#number_literal" + }, + { + "include": "#string_context" + }, + { + "include": "#comma" + }, + { + "include": "#scope_resolution_inner_generated" + }, + { + "begin": "<", + "end": ">", + "beginCaptures": { + "0": { + "name": "punctuation.section.angle-brackets.begin.template.call.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.angle-brackets.end.template.call.cpp" + } + }, + "name": "meta.template.call.cpp", + "patterns": [ + { + "include": "#template_call_context" + } + ] + }, + { + "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", + "name": "entity.name.type.cpp" + } + ] + }, + "2": { + "patterns": [ + { + "include": "#attributes_context" + }, + { + "include": "#number_literal" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "5": { + "name": "comment.block.cpp" + }, + "6": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "7": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "9": { + "name": "comment.block.cpp" + }, + "10": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "11": { + "patterns": [ + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" + }, + { + "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", + "name": "entity.name.scope-resolution.type.cpp" + }, + { + "include": "#template_call_range" + } + ] + }, + "12": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "13": {}, + "14": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "15": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "16": { + "name": "comment.block.cpp" + }, + "17": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "18": {}, + "19": { + "patterns": [ + { + "match": "\\*", + "name": "storage.modifier.pointer.cpp" + }, + { + "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "name": "invalid.illegal.reference-type.cpp" + }, + { + "match": "\\&", + "name": "storage.modifier.reference.cpp" + } + ] + }, + "20": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "21": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "22": { + "name": "comment.block.cpp" + }, + "23": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "24": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "25": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "26": { + "name": "comment.block.cpp" + }, + "27": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "28": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "29": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "30": { + "name": "comment.block.cpp" + }, + "31": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "32": { + "name": "punctuation.section.parens.begin.bracket.round.function.pointer.cpp" + }, + "33": { + "name": "punctuation.definition.function.pointer.dereference.cpp" + }, + "34": { + "name": "variable.other.definition.pointer.function.cpp" + }, + "35": { + "name": "punctuation.definition.begin.bracket.square.cpp" + }, + "36": { + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + "37": { + "name": "punctuation.definition.end.bracket.square.cpp" + }, + "38": { + "name": "punctuation.section.parens.end.bracket.round.function.pointer.cpp" + }, + "39": { + "name": "punctuation.section.parameters.begin.bracket.round.function.pointer.cpp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.section.parameters.end.bracket.round.function.pointer.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "patterns": [ + { + "include": "#function_parameter_context" + } + ] + }, + "function_pointer_parameter": { + "begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<18>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<18>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()(\\*)(?:\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:\\s+)?(?:(\\[)(\\w*)(\\])(?:\\s+)?)*(\\))(?:\\s+)?(\\()", + "end": "(\\))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=[{=,);>]|\\n)(?!\\()", + "beginCaptures": { + "1": { + "name": "meta.qualified_type.cpp", + "patterns": [ + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" + }, + { + "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)", + "name": "storage.type.$0.cpp" + }, + { + "include": "#attributes_context" + }, + { + "include": "#storage_types" + }, + { + "include": "#number_literal" + }, + { + "include": "#string_context" + }, + { + "include": "#comma" + }, + { + "include": "#scope_resolution_inner_generated" + }, + { + "begin": "<", + "end": ">", + "beginCaptures": { + "0": { + "name": "punctuation.section.angle-brackets.begin.template.call.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.angle-brackets.end.template.call.cpp" + } + }, + "name": "meta.template.call.cpp", + "patterns": [ + { + "include": "#template_call_context" + } + ] + }, + { + "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", + "name": "entity.name.type.cpp" + } + ] + }, + "2": { + "patterns": [ + { + "include": "#attributes_context" + }, + { + "include": "#number_literal" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "5": { + "name": "comment.block.cpp" + }, + "6": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "7": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "9": { + "name": "comment.block.cpp" + }, + "10": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "11": { + "patterns": [ + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" + }, + { + "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", + "name": "entity.name.scope-resolution.type.cpp" + }, + { + "include": "#template_call_range" + } + ] + }, + "12": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "13": {}, + "14": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "15": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "16": { + "name": "comment.block.cpp" + }, + "17": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "18": {}, + "19": { + "patterns": [ + { + "match": "\\*", + "name": "storage.modifier.pointer.cpp" + }, + { + "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "name": "invalid.illegal.reference-type.cpp" + }, + { + "match": "\\&", + "name": "storage.modifier.reference.cpp" + } + ] + }, + "20": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "21": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "22": { + "name": "comment.block.cpp" + }, + "23": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "24": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "25": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "26": { + "name": "comment.block.cpp" + }, + "27": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "28": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "29": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "30": { + "name": "comment.block.cpp" + }, + "31": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "32": { + "name": "punctuation.section.parens.begin.bracket.round.function.pointer.cpp" + }, + "33": { + "name": "punctuation.definition.function.pointer.dereference.cpp" + }, + "34": { + "name": "variable.parameter.pointer.function.cpp" + }, + "35": { + "name": "punctuation.definition.begin.bracket.square.cpp" + }, + "36": { + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + "37": { + "name": "punctuation.definition.end.bracket.square.cpp" + }, + "38": { + "name": "punctuation.section.parens.end.bracket.round.function.pointer.cpp" + }, + "39": { + "name": "punctuation.section.parameters.begin.bracket.round.function.pointer.cpp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.section.parameters.end.bracket.round.function.pointer.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "patterns": [ + { + "include": "#function_parameter_context" + } + ] + }, + "functional_specifiers_pre_parameters": { + "match": "(?<!\\w)(?:(?:constexpr)|(?:consteval)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))(?!\\w)", + "name": "storage.modifier.specifier.functional.pre-parameters.$0.cpp" + }, + "gcc_attributes": { + "begin": "__attribute(?:__)?\\s*\\(\\s*\\(", + "end": "\\)\\s*\\)", + "beginCaptures": { + "0": { + "name": "punctuation.section.attribute.begin.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.attribute.end.cpp" + } + }, + "name": "support.other.attribute.cpp", + "patterns": [ + { + "include": "#attributes_context" + }, + { + "begin": "\\(", + "end": "\\)", + "beginCaptures": {}, + "endCaptures": {}, + "patterns": [ + { + "include": "#attributes_context" + }, + { + "include": "#string_context" + }, + { + "include": "#ever_present_context" + } + ] + }, + { + "match": "(using)\\s+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))", + "captures": { + "1": { + "name": "keyword.other.using.directive.cpp" + }, + "2": { + "name": "entity.name.namespace.cpp" + } + } + }, + { + "match": ",", + "name": "punctuation.separator.attribute.cpp" + }, + { + "match": ":", + "name": "punctuation.accessor.attribute.cpp" + }, + { + "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=::)", + "name": "entity.name.namespace.cpp" + }, + { + "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", + "name": "entity.other.attribute.$0.cpp" + }, + { + "include": "#number_literal" + }, + { + "include": "#ever_present_context" + } + ] + }, + "goto_statement": { + "match": "((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)goto(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "3": { + "name": "keyword.control.goto.cpp" + }, + "4": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "5": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "6": { + "name": "entity.name.label.call.cpp" + } + } + }, + "identifier": { + "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*" + }, + "include": { + "match": "^((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((#)(?:\\s+)?((?:include|include_next))\\b)(?:\\s+)?(?:(?:(?:((<)[^>]*(>?)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=\\/\\/)))|((\\\")[^\\\"]*(\\\"?)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=\\/\\/))))|(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\.(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)*((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=(?:\\/\\/|;)))))|((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=(?:\\/\\/|;))))", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "3": { + "name": "keyword.control.directive.$5.cpp" + }, + "4": { + "name": "punctuation.definition.directive.cpp" + }, + "6": { + "name": "string.quoted.other.lt-gt.include.cpp" + }, + "7": { + "name": "punctuation.definition.string.begin.cpp" + }, + "8": { + "name": "punctuation.definition.string.end.cpp" + }, + "9": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "10": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "11": { + "name": "string.quoted.double.include.cpp" + }, + "12": { + "name": "punctuation.definition.string.begin.cpp" + }, + "13": { + "name": "punctuation.definition.string.end.cpp" + }, + "14": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "15": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "16": { + "name": "entity.name.other.preprocessor.macro.include.cpp" + }, + "17": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "18": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "19": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "20": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "21": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "22": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + } + }, + "name": "meta.preprocessor.include.cpp" + }, + "inheritance_context": { + "patterns": [ + { + "include": "#ever_present_context" + }, + { + "match": ",", + "name": "punctuation.separator.delimiter.comma.inheritance.cpp" + }, + { + "match": "(?<!\\w)(?:(?:protected)|(?:private)|(?:public))(?!\\w)", + "name": "storage.type.modifier.access.$0.cpp" + }, + { + "match": "(?<!\\w)virtual(?!\\w)", + "name": "storage.type.modifier.virtual.cpp" + }, + { + "match": "(?<=protected|virtual|private|public|,|:)(?:\\s+)?(?!(?:(?:(?:protected)|(?:private)|(?:public))|virtual))(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<12>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<12>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))", + "captures": { + "1": { + "name": "meta.qualified_type.cpp", + "patterns": [ + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" + }, + { + "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)", + "name": "storage.type.$0.cpp" + }, + { + "include": "#attributes_context" + }, + { + "include": "#storage_types" + }, + { + "include": "#number_literal" + }, + { + "include": "#string_context" + }, + { + "include": "#comma" + }, + { + "include": "#scope_resolution_inner_generated" + }, + { + "begin": "<", + "end": ">", + "beginCaptures": { + "0": { + "name": "punctuation.section.angle-brackets.begin.template.call.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.angle-brackets.end.template.call.cpp" + } + }, + "name": "meta.template.call.cpp", + "patterns": [ + { + "include": "#template_call_context" + } + ] + }, + { + "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", + "name": "entity.name.type.cpp" + } + ] + }, + "2": { + "patterns": [ + { + "include": "#attributes_context" + }, + { + "include": "#number_literal" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "4": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "5": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "6": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "7": { + "patterns": [ + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" + }, + { + "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", + "name": "entity.name.scope-resolution.type.cpp" + }, + { + "include": "#template_call_range" + } + ] + }, + "8": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "9": {}, + "10": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "11": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "12": {} + } + } + ] + }, + "inline_builtin_storage_type": { + "match": "\\s*+(?<!\\w)(?:(?:(?:((?:(?:unsigned)|(?:wchar_t)|(?:double)|(?:signed)|(?:short)|(?:float)|(?:auto)|(?:void)|(?:long)|(?:char)|(?:bool)|(?:int)))|((?:(?:uint_least32_t)|(?:uint_least64_t)|(?:uint_least16_t)|(?:uint_fast64_t)|(?:uint_least8_t)|(?:int_least64_t)|(?:int_least32_t)|(?:int_least16_t)|(?:uint_fast16_t)|(?:uint_fast32_t)|(?:int_least8_t)|(?:int_fast16_t)|(?:int_fast32_t)|(?:int_fast64_t)|(?:uint_fast8_t)|(?:int_fast8_t)|(?:suseconds_t)|(?:useconds_t)|(?:uintmax_t)|(?:uintmax_t)|(?:in_port_t)|(?:uintmax_t)|(?:in_addr_t)|(?:blksize_t)|(?:uintptr_t)|(?:intmax_t)|(?:intptr_t)|(?:blkcnt_t)|(?:intmax_t)|(?:u_quad_t)|(?:uint16_t)|(?:uint32_t)|(?:uint64_t)|(?:ssize_t)|(?:fixpt_t)|(?:qaddr_t)|(?:u_short)|(?:int16_t)|(?:int32_t)|(?:int64_t)|(?:uint8_t)|(?:daddr_t)|(?:caddr_t)|(?:swblk_t)|(?:clock_t)|(?:segsz_t)|(?:nlink_t)|(?:time_t)|(?:u_long)|(?:ushort)|(?:quad_t)|(?:mode_t)|(?:size_t)|(?:u_char)|(?:int8_t)|(?:u_int)|(?:uid_t)|(?:off_t)|(?:pid_t)|(?:gid_t)|(?:dev_t)|(?:div_t)|(?:key_t)|(?:ino_t)|(?:id_t)|(?:id_t)|(?:uint))))|((?:(?:pthread_rwlockattr_t)|(?:pthread_mutexattr_t)|(?:pthread_condattr_t)|(?:pthread_rwlock_t)|(?:pthread_mutex_t)|(?:pthread_cond_t)|(?:pthread_attr_t)|(?:pthread_once_t)|(?:pthread_key_t)|(?:pthread_t))))|([a-zA-Z_]\\w*_t))(?!\\w)", + "captures": { + "1": { + "name": "storage.type.primitive.cpp storage.type.built-in.primitive.cpp" + }, + "2": { + "name": "storage.type.cpp storage.type.built-in.cpp" + }, + "3": { + "name": "support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp" + }, + "4": { + "name": "support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp" + } + } + }, + "inline_comment": { + "match": "(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + }, + "invalid_comment_end": { + "match": "\\*\\/", + "name": "invalid.illegal.unexpected.punctuation.definition.comment.end.cpp" + }, + "label": { + "match": "((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\b(?<!case|default)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(:)", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "3": { + "name": "entity.name.label.cpp" + }, + "4": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "5": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "6": { + "name": "punctuation.separator.label.cpp" + } + } + }, + "lambdas": { + "begin": "(?:(?<=[^\\s]|^)(?<![\\w\\]\\)\\[\\*&\">])|(?<=\\Wreturn|^return))(?:\\s+)?(\\[(?!\\[| *+\"| *+\\d))((?:[^\\[\\]]|((?<!\\[)\\[(?!\\[)(?:[^\\[\\]]*+\\g<3>?)++\\]))*+)(\\](?!((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))[\\[\\];=]))", + "end": "(?<=[;}])", + "beginCaptures": { + "1": { + "name": "punctuation.definition.capture.begin.lambda.cpp" + }, + "2": { + "name": "meta.lambda.capture.cpp", + "patterns": [ + { + "include": "#the_this_keyword" + }, + { + "match": "((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?=\\]|\\z|$)|(,))|(\\=))", + "captures": { + "1": { + "name": "variable.parameter.capture.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "punctuation.separator.delimiter.comma.cpp" + }, + "7": { + "name": "keyword.operator.assignment.cpp" + } + } + }, + { + "include": "#evaluation_context" + } + ] + }, + "3": {}, + "4": { + "name": "punctuation.definition.capture.end.lambda.cpp" + }, + "5": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "6": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "7": { + "name": "comment.block.cpp" + }, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "endCaptures": {}, + "patterns": [ + { + "begin": "\\(", + "end": "\\)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.parameters.begin.lambda.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.parameters.end.lambda.cpp" + } + }, + "name": "meta.function.definition.parameters.lambda.cpp", + "patterns": [ + { + "include": "#function_parameter_context" + } + ] + }, + { + "match": "(?<!\\w)(?:(?:constexpr)|(?:consteval)|(?:mutable))(?!\\w)", + "name": "storage.modifier.lambda.$0.cpp" + }, + { + "begin": "->", + "end": "(?=\\{)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.lambda.return-type.cpp" + } + }, + "endCaptures": {}, + "patterns": [ + { + "include": "#comments" + }, + { + "match": "\\S+", + "name": "storage.type.return-type.lambda.cpp" + } + ] + }, + { + "begin": "\\{", + "end": "\\}", + "beginCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.lambda.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.lambda.cpp" + } + }, + "name": "meta.function.definition.body.lambda.cpp", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + "language_constants": { + "match": "(?<!\\w)(?:(?:nullptr)|(?:false)|(?:NULL)|(?:true))(?!\\w)", + "name": "constant.language.$0.cpp" + }, + "line": { + "begin": "^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(#)(?:\\s+)?line\\b", + "end": "(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))", + "beginCaptures": { + "0": { + "name": "keyword.control.directive.line.cpp" + }, + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "5": { + "name": "punctuation.definition.directive.cpp" + } + }, + "endCaptures": {}, + "name": "meta.preprocessor.line.cpp", + "patterns": [ + { + "include": "#string_context" + }, + { + "include": "#preprocessor_number_literal" + }, + { + "include": "#line_continuation_character" + } + ] + }, + "line_comment": { + "begin": "\\s*+(\\/\\/)", + "end": "(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.cpp" + } + }, + "endCaptures": {}, + "name": "comment.line.double-slash.cpp", + "patterns": [ + { + "include": "#line_continuation_character" + } + ] + }, + "line_continuation_character": { + "match": "\\\\\\n", + "name": "constant.character.escape.line-continuation.cpp" + }, + "macro": { + "begin": "(^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(#)(?:\\s+)?define\\b)(?:\\s+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))", + "end": "(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))", + "beginCaptures": { + "1": { + "name": "keyword.control.directive.define.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "punctuation.definition.directive.cpp" + }, + "7": { + "name": "entity.name.function.preprocessor.cpp" + } + }, + "endCaptures": {}, + "name": "meta.preprocessor.macro.cpp", + "patterns": [ + { + "match": "\\G(?:\\s+)?(\\()([^\\(]*)(\\))", + "captures": { + "1": { + "name": "punctuation.definition.parameters.begin.preprocessor.cpp" + }, + "2": { + "name": "meta.function.preprocessor.parameters.cpp", + "patterns": [ + { + "match": "(?<=[(,])(?:\\s+)?((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:\\s+)?", + "captures": { + "1": { + "name": "variable.parameter.preprocessor.cpp" + } + } + }, + { + "match": ",", + "name": "punctuation.separator.parameters.cpp" + }, + { + "match": "\\.\\.\\.", + "name": "punctuation.vararg-ellipses.variable.parameter.preprocessor.cpp" + } + ] + }, + "3": { + "name": "punctuation.definition.parameters.end.preprocessor.cpp" + } + } + }, + { + "include": "#macro_context" + }, + { + "include": "#macro_argument" + } + ] + }, + "macro_argument": { + "match": "##?(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", + "name": "variable.other.macro.argument.cpp" + }, + "macro_context": { + "patterns": [ + { + "include": "source.cpp.embedded.macro" + } + ] + }, + "macro_name": { + "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", + "name": "entity.name.function.preprocessor.cpp" + }, + "member_access": { + "match": "(?:((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)this(?!\\w))|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*|(?<=\\]|\\)))(?:\\s+)?))(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\s+)?(?:(?:\\.\\*|\\.)|(?:->\\*|->))(?:\\s+)?)*)(?:\\s+)?(\\b(?!uint_least32_t[^\\w]|uint_least16_t[^\\w]|uint_least64_t[^\\w]|int_least32_t[^\\w]|int_least64_t[^\\w]|uint_fast32_t[^\\w]|uint_fast64_t[^\\w]|uint_least8_t[^\\w]|uint_fast16_t[^\\w]|int_least16_t[^\\w]|int_fast16_t[^\\w]|int_least8_t[^\\w]|uint_fast8_t[^\\w]|int_fast64_t[^\\w]|int_fast32_t[^\\w]|int_fast8_t[^\\w]|suseconds_t[^\\w]|useconds_t[^\\w]|in_addr_t[^\\w]|uintmax_t[^\\w]|uintmax_t[^\\w]|uintmax_t[^\\w]|in_port_t[^\\w]|uintptr_t[^\\w]|blksize_t[^\\w]|uint32_t[^\\w]|uint64_t[^\\w]|u_quad_t[^\\w]|intmax_t[^\\w]|intmax_t[^\\w]|unsigned[^\\w]|blkcnt_t[^\\w]|uint16_t[^\\w]|intptr_t[^\\w]|swblk_t[^\\w]|wchar_t[^\\w]|u_short[^\\w]|qaddr_t[^\\w]|caddr_t[^\\w]|daddr_t[^\\w]|fixpt_t[^\\w]|nlink_t[^\\w]|segsz_t[^\\w]|clock_t[^\\w]|ssize_t[^\\w]|int16_t[^\\w]|int32_t[^\\w]|int64_t[^\\w]|uint8_t[^\\w]|int8_t[^\\w]|mode_t[^\\w]|quad_t[^\\w]|ushort[^\\w]|u_long[^\\w]|u_char[^\\w]|double[^\\w]|signed[^\\w]|time_t[^\\w]|size_t[^\\w]|key_t[^\\w]|div_t[^\\w]|ino_t[^\\w]|uid_t[^\\w]|gid_t[^\\w]|off_t[^\\w]|pid_t[^\\w]|float[^\\w]|dev_t[^\\w]|u_int[^\\w]|short[^\\w]|bool[^\\w]|id_t[^\\w]|uint[^\\w]|long[^\\w]|char[^\\w]|void[^\\w]|auto[^\\w]|id_t[^\\w]|int[^\\w])(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b(?!\\())", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "3": { + "name": "variable.language.this.cpp" + }, + "4": { + "name": "variable.other.object.access.cpp" + }, + "5": { + "name": "punctuation.separator.dot-access.cpp" + }, + "6": { + "name": "punctuation.separator.pointer-access.cpp" + }, + "7": { + "patterns": [ + { + "match": "(?<=(?:\\.\\*|\\.|->|->\\*))(?:\\s+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)this(?!\\w))|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*|(?<=\\]|\\)))(?:\\s+)?))(?:((?:\\.\\*|\\.))|((?:->\\*|->)))", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "5": { + "name": "variable.language.this.cpp" + }, + "6": { + "name": "variable.other.object.property.cpp" + }, + "7": { + "name": "punctuation.separator.dot-access.cpp" + }, + "8": { + "name": "punctuation.separator.pointer-access.cpp" + } + } + }, + { + "match": "(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)this(?!\\w))|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*|(?<=\\]|\\)))(?:\\s+)?))(?:((?:\\.\\*|\\.))|((?:->\\*|->)))", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "5": { + "name": "variable.language.this.cpp" + }, + "6": { + "name": "variable.other.object.access.cpp" + }, + "7": { + "name": "punctuation.separator.dot-access.cpp" + }, + "8": { + "name": "punctuation.separator.pointer-access.cpp" + } + } + }, + { + "include": "#member_access" + }, + { + "include": "#method_access" + } + ] + }, + "8": { + "name": "variable.other.property.cpp" + } + } + }, + "memory_operators": { + "match": "((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:(?:(delete)(?:\\s+)?(\\[\\])|(delete))|(new))(?!\\w))", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "3": { + "name": "keyword.operator.wordlike.cpp" + }, + "4": { + "name": "keyword.operator.delete.array.cpp" + }, + "5": { + "name": "keyword.operator.delete.array.bracket.cpp" + }, + "6": { + "name": "keyword.operator.delete.cpp" + }, + "7": { + "name": "keyword.operator.new.cpp" + } + } + }, + "method_access": { + "begin": "(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)this(?!\\w))|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*|(?<=\\]|\\)))(?:\\s+)?))(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\s+)?(?:(?:\\.\\*|\\.)|(?:->\\*|->))(?:\\s+)?)*)(?:\\s+)?(~?(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:\\s+)?(\\()", + "end": "\\)", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "5": { + "name": "variable.language.this.cpp" + }, + "6": { + "name": "variable.other.object.access.cpp" + }, + "7": { + "name": "punctuation.separator.dot-access.cpp" + }, + "8": { + "name": "punctuation.separator.pointer-access.cpp" + }, + "9": { + "patterns": [ + { + "match": "(?<=(?:\\.\\*|\\.|->|->\\*))(?:\\s+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)this(?!\\w))|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*|(?<=\\]|\\)))(?:\\s+)?))(?:((?:\\.\\*|\\.))|((?:->\\*|->)))", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "5": { + "name": "variable.language.this.cpp" + }, + "6": { + "name": "variable.other.object.property.cpp" + }, + "7": { + "name": "punctuation.separator.dot-access.cpp" + }, + "8": { + "name": "punctuation.separator.pointer-access.cpp" + } + } + }, + { + "match": "(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)this(?!\\w))|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*|(?<=\\]|\\)))(?:\\s+)?))(?:((?:\\.\\*|\\.))|((?:->\\*|->)))", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "5": { + "name": "variable.language.this.cpp" + }, + "6": { + "name": "variable.other.object.access.cpp" + }, + "7": { + "name": "punctuation.separator.dot-access.cpp" + }, + "8": { + "name": "punctuation.separator.pointer-access.cpp" + } + } + }, + { + "include": "#member_access" + }, + { + "include": "#method_access" + } + ] + }, + "10": { + "name": "entity.name.function.member.cpp" + }, + "11": { + "name": "punctuation.section.arguments.begin.bracket.round.function.member.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.function.member.cpp" + } + }, + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + "misc_keywords": { + "match": "((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:(?:constinit)|(?:requires)|(?:typedef)|(?:concept)|(?:export)|(?:module))(?!\\w))", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "3": { + "name": "keyword.other.$3.cpp" + } + } + }, + "ms_attributes": { + "begin": "__declspec\\(", + "end": "\\)", + "beginCaptures": { + "0": { + "name": "punctuation.section.attribute.begin.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.attribute.end.cpp" + } + }, + "name": "support.other.attribute.cpp", + "patterns": [ + { + "include": "#attributes_context" + }, + { + "begin": "\\(", + "end": "\\)", + "beginCaptures": {}, + "endCaptures": {}, + "patterns": [ + { + "include": "#attributes_context" + }, + { + "include": "#string_context" + }, + { + "include": "#ever_present_context" + } + ] + }, + { + "match": "(using)\\s+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))", + "captures": { + "1": { + "name": "keyword.other.using.directive.cpp" + }, + "2": { + "name": "entity.name.namespace.cpp" + } + } + }, + { + "match": ",", + "name": "punctuation.separator.attribute.cpp" + }, + { + "match": ":", + "name": "punctuation.accessor.attribute.cpp" + }, + { + "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(?=::)", + "name": "entity.name.namespace.cpp" + }, + { + "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", + "name": "entity.other.attribute.$0.cpp" + }, + { + "include": "#number_literal" + }, + { + "include": "#ever_present_context" + } + ] + }, + "namespace_alias": { + "match": "(?<!\\w)(namespace)\\s+((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(?:\\s+)?(\\=)(?:\\s+)?(((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<8>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)(?:\\s+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(?:\\s+)?(?:(;)|\\n))", + "captures": { + "1": { + "name": "keyword.other.namespace.alias.cpp storage.type.namespace.alias.cpp" + }, + "2": { + "name": "entity.name.namespace.alias.cpp" + }, + "3": { + "name": "keyword.operator.assignment.cpp" + }, + "4": { + "name": "meta.declaration.namespace.alias.value.cpp" + }, + "5": { + "patterns": [ + { + "include": "#scope_resolution_namespace_alias_inner_generated" + } + ] + }, + "6": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp" + }, + "7": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "9": { + "name": "entity.name.namespace.cpp" + }, + "10": { + "name": "punctuation.terminator.statement.cpp" + } + }, + "name": "meta.declaration.namespace.alias.cpp" + }, + "namespace_block": { + "begin": "((?<!\\w)namespace(?!\\w))", + "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))", + "beginCaptures": { + "0": { + "name": "meta.head.namespace.cpp" + }, + "1": { + "name": "keyword.other.namespace.definition.cpp storage.type.namespace.definition.cpp" + } + }, + "endCaptures": {}, + "name": "meta.block.namespace.cpp", + "patterns": [ + { + "begin": "\\G ?", + "end": "(?:\\{|<%|\\?\\?<|(?=;))", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.namespace.cpp" + } + }, + "name": "meta.head.namespace.cpp", + "patterns": [ + { + "include": "#ever_present_context" + }, + { + "include": "#attributes_context" + }, + { + "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<4>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)(?:\\s+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(?:\\s+)?(?:(::)(?:\\s+)?(inline))?", + "captures": { + "1": { + "patterns": [ + { + "include": "#scope_resolution_namespace_block_inner_generated" + } + ] + }, + "2": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp" + }, + "3": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "4": {}, + "5": { + "name": "entity.name.namespace.cpp" + }, + "6": { + "name": "punctuation.separator.scope-resolution.namespace.block.cpp" + }, + "7": { + "name": "storage.modifier.inline.cpp" + } + } + } + ] + }, + { + "begin": "(?<=\\{|<%|\\?\\?<)", + "end": "\\}|%>|\\?\\?>", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.namespace.cpp" + } + }, + "name": "meta.body.namespace.cpp", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", + "end": "[\\s]*(?=;)", + "beginCaptures": {}, + "endCaptures": {}, + "name": "meta.tail.namespace.cpp", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + "noexcept_operator": { + "begin": "((?<!\\w)noexcept(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", + "end": "\\)", + "beginCaptures": { + "1": { + "name": "keyword.operator.functionlike.cpp keyword.operator.noexcept.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "punctuation.section.arguments.begin.bracket.round.operator.noexcept.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.operator.noexcept.cpp" + } + }, + "contentName": "meta.arguments.operator.noexcept", + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + "number_literal": { + "match": "(?<!\\w)\\.?\\d(?:(?:[0-9a-zA-Z_\\.]|')|(?<=[eEpP])[+-])*", + "captures": { + "0": { + "patterns": [ + { + "begin": "(?=.)", + "end": "$", + "beginCaptures": {}, + "endCaptures": {}, + "patterns": [ + { + "match": "(\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?<=[0-9a-fA-F])\\.|\\.(?=[0-9a-fA-F])))([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?(?:(?<!')([pP])(\\+?)(\\-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?([lLfF](?!\\w))?((?:\\w(?<![0-9a-fA-FpP])\\w*)?$)", + "captures": { + "1": { + "name": "keyword.other.unit.hexadecimal.cpp" + }, + "2": { + "name": "constant.numeric.hexadecimal.cpp", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.cpp" + } + ] + }, + "3": { + "name": "punctuation.separator.constant.numeric.cpp" + }, + "4": { + "name": "constant.numeric.hexadecimal.cpp" + }, + "5": { + "name": "constant.numeric.hexadecimal.cpp", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.cpp" + } + ] + }, + "6": { + "name": "punctuation.separator.constant.numeric.cpp" + }, + "7": { + "name": "keyword.other.unit.exponent.hexadecimal.cpp" + }, + "8": { + "name": "keyword.operator.plus.exponent.hexadecimal.cpp" + }, + "9": { + "name": "keyword.operator.minus.exponent.hexadecimal.cpp" + }, + "10": { + "name": "constant.numeric.exponent.hexadecimal.cpp", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.cpp" + } + ] + }, + "11": { + "name": "keyword.other.suffix.literal.built-in.floating-point.cpp keyword.other.unit.suffix.floating-point.cpp" + }, + "12": { + "name": "keyword.other.suffix.literal.user-defined.integer.cpp keyword.other.unit.user-defined.cpp" + } + } + }, + { + "match": "\\G(?=[0-9.])(?!0[xXbB])([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?((?:(?<=[0-9])\\.|\\.(?=[0-9])))([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)?(?:(?<!')([eE])(\\+?)(\\-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?([lLfF](?!\\w))?((?:\\w(?<![0-9eE])\\w*)?$)", + "captures": { + "1": { + "name": "constant.numeric.decimal.cpp", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.cpp" + } + ] + }, + "2": { + "name": "punctuation.separator.constant.numeric.cpp" + }, + "3": { + "name": "constant.numeric.decimal.point.cpp" + }, + "4": { + "name": "constant.numeric.decimal.cpp", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.cpp" + } + ] + }, + "5": { + "name": "punctuation.separator.constant.numeric.cpp" + }, + "6": { + "name": "keyword.other.unit.exponent.decimal.cpp" + }, + "7": { + "name": "keyword.operator.plus.exponent.decimal.cpp" + }, + "8": { + "name": "keyword.operator.minus.exponent.decimal.cpp" + }, + "9": { + "name": "constant.numeric.exponent.decimal.cpp", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.cpp" + } + ] + }, + "10": { + "name": "keyword.other.suffix.literal.built-in.floating-point.cpp keyword.other.unit.suffix.floating-point.cpp" + }, + "11": { + "name": "keyword.other.suffix.literal.user-defined.integer.cpp keyword.other.unit.user-defined.cpp" + } + } + }, + { + "match": "(\\G0[bB])([01](?:[01]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\w))?((?:\\w(?<![0-9])\\w*)?$)", + "captures": { + "1": { + "name": "keyword.other.unit.binary.cpp" + }, + "2": { + "name": "constant.numeric.binary.cpp", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.cpp" + } + ] + }, + "3": { + "name": "punctuation.separator.constant.numeric.cpp" + }, + "4": { + "name": "keyword.other.suffix.literal.built-in.integer.cpp keyword.other.unit.suffix.integer.cpp" + }, + "5": { + "name": "keyword.other.suffix.literal.user-defined.integer.cpp keyword.other.unit.user-defined.cpp" + } + } + }, + { + "match": "(\\G0)((?:[0-7]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))+)((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\w))?((?:\\w(?<![0-9])\\w*)?$)", + "captures": { + "1": { + "name": "keyword.other.unit.octal.cpp" + }, + "2": { + "name": "constant.numeric.octal.cpp", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.cpp" + } + ] + }, + "3": { + "name": "punctuation.separator.constant.numeric.cpp" + }, + "4": { + "name": "keyword.other.suffix.literal.built-in.integer.cpp keyword.other.unit.suffix.integer.cpp" + }, + "5": { + "name": "keyword.other.suffix.literal.user-defined.integer.cpp keyword.other.unit.user-defined.cpp" + } + } + }, + { + "match": "(\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)(?:(?<!')([pP])(\\+?)(\\-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\w))?((?:\\w(?<![0-9a-fA-FpP])\\w*)?$)", + "captures": { + "1": { + "name": "keyword.other.unit.hexadecimal.cpp" + }, + "2": { + "name": "constant.numeric.hexadecimal.cpp", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.cpp" + } + ] + }, + "3": { + "name": "punctuation.separator.constant.numeric.cpp" + }, + "4": { + "name": "keyword.other.unit.exponent.hexadecimal.cpp" + }, + "5": { + "name": "keyword.operator.plus.exponent.hexadecimal.cpp" + }, + "6": { + "name": "keyword.operator.minus.exponent.hexadecimal.cpp" + }, + "7": { + "name": "constant.numeric.exponent.hexadecimal.cpp", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.cpp" + } + ] + }, + "8": { + "name": "keyword.other.suffix.literal.built-in.integer.cpp keyword.other.unit.suffix.integer.cpp" + }, + "9": { + "name": "keyword.other.suffix.literal.user-defined.integer.cpp keyword.other.unit.user-defined.cpp" + } + } + }, + { + "match": "\\G(?=[0-9.])(?!0[xXbB])([0-9](?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F])))*)(?:(?<!')([eE])(\\+?)(\\-?)([0-9](?:[0-9]|(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))*))?((?:[uU]|(?:[uU]ll?)|(?:[uU]LL?)|(?:ll?[uU]?)|(?:LL?[uU]?)|[fF])(?!\\w))?((?:\\w(?<![0-9eE])\\w*)?$)", + "captures": { + "1": { + "name": "constant.numeric.decimal.cpp", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.cpp" + } + ] + }, + "2": { + "name": "punctuation.separator.constant.numeric.cpp" + }, + "3": { + "name": "keyword.other.unit.exponent.decimal.cpp" + }, + "4": { + "name": "keyword.operator.plus.exponent.decimal.cpp" + }, + "5": { + "name": "keyword.operator.minus.exponent.decimal.cpp" + }, + "6": { + "name": "constant.numeric.exponent.decimal.cpp", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.cpp" + } + ] + }, + "7": { + "name": "keyword.other.suffix.literal.built-in.integer.cpp keyword.other.unit.suffix.integer.cpp" + }, + "8": { + "name": "keyword.other.suffix.literal.user-defined.integer.cpp keyword.other.unit.user-defined.cpp" + } + } + }, + { + "match": "(?:(?:[0-9a-zA-Z_\\.]|')|(?<=[eEpP])[+-])+", + "name": "invalid.illegal.constant.numeric.cpp" + } + ] + } + ] + } + } + }, + "operator_overload": { + "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<55>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<55>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<55>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(operator)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<55>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(?:(?:((?:(?:delete\\[\\])|(?:delete)|(?:new\\[\\])|(?:<=>)|(?:<<=)|(?:new)|(?:>>=)|(?:\\->\\*)|(?:\\/=)|(?:%=)|(?:&=)|(?:>=)|(?:\\|=)|(?:\\+\\+)|(?:\\-\\-)|(?:\\(\\))|(?:\\[\\])|(?:\\->)|(?:\\+\\+)|(?:<<)|(?:>>)|(?:\\-\\-)|(?:<=)|(?:\\^=)|(?:==)|(?:!=)|(?:&&)|(?:\\|\\|)|(?:\\+=)|(?:\\-=)|(?:\\*=)|,|\\+|\\-|!|~|\\*|&|\\*|\\/|%|\\+|\\-|<|>|&|\\^|\\||=))|((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:\\[\\])?)))|(\"\")((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\<|\\()", + "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))", + "beginCaptures": { + "0": { + "name": "meta.head.function.definition.special.operator-overload.cpp" + }, + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "5": { + "name": "meta.qualified_type.cpp", + "patterns": [ + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" + }, + { + "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)", + "name": "storage.type.$0.cpp" + }, + { + "include": "#attributes_context" + }, + { + "include": "#storage_types" + }, + { + "include": "#number_literal" + }, + { + "include": "#string_context" + }, + { + "include": "#comma" + }, + { + "include": "#scope_resolution_inner_generated" + }, + { + "begin": "<", + "end": ">", + "beginCaptures": { + "0": { + "name": "punctuation.section.angle-brackets.begin.template.call.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.angle-brackets.end.template.call.cpp" + } + }, + "name": "meta.template.call.cpp", + "patterns": [ + { + "include": "#template_call_context" + } + ] + }, + { + "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", + "name": "entity.name.type.cpp" + } + ] + }, + "6": { + "patterns": [ + { + "include": "#attributes_context" + }, + { + "include": "#number_literal" + } + ] + }, + "7": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "9": { + "name": "comment.block.cpp" + }, + "10": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "11": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "12": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "13": { + "name": "comment.block.cpp" + }, + "14": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "15": { + "patterns": [ + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" + }, + { + "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", + "name": "entity.name.scope-resolution.type.cpp" + }, + { + "include": "#template_call_range" + } + ] + }, + "16": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "17": {}, + "18": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "19": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "20": { + "name": "comment.block.cpp" + }, + "21": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "22": {}, + "23": { + "patterns": [ + { + "match": "\\*", + "name": "storage.modifier.pointer.cpp" + }, + { + "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "name": "invalid.illegal.reference-type.cpp" + }, + { + "match": "\\&", + "name": "storage.modifier.reference.cpp" + } + ] + }, + "24": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "25": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "26": { + "name": "comment.block.cpp" + }, + "27": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "28": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "29": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "30": { + "name": "comment.block.cpp" + }, + "31": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "32": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "33": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "34": { + "name": "comment.block.cpp" + }, + "35": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "36": { + "name": "storage.type.modifier.calling-convention.cpp" + }, + "37": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "38": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "39": { + "name": "comment.block.cpp" + }, + "40": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "41": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "42": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "43": { + "name": "comment.block.cpp" + }, + "44": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "45": { + "patterns": [ + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.operator.cpp" + }, + { + "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", + "name": "entity.name.scope-resolution.operator.cpp" + }, + { + "include": "#template_call_range" + } + ] + }, + "46": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "47": {}, + "48": { + "name": "keyword.other.operator.overload.cpp" + }, + "49": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "50": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "51": { + "name": "comment.block.cpp" + }, + "52": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "53": { + "patterns": [ + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.operator-overload.cpp" + }, + { + "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", + "name": "entity.name.scope-resolution.operator-overload.cpp" + }, + { + "include": "#template_call_range" + } + ] + }, + "54": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "55": {}, + "56": { + "name": "entity.name.operator.cpp" + }, + "57": { + "name": "entity.name.operator.type.cpp" + }, + "58": { + "patterns": [ + { + "match": "\\*", + "name": "entity.name.operator.type.pointer.cpp" + }, + { + "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "name": "invalid.illegal.reference-type.cpp" + }, + { + "match": "\\&", + "name": "entity.name.operator.type.reference.cpp" + } + ] + }, + "59": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "60": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "61": { + "name": "comment.block.cpp" + }, + "62": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "63": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "64": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "65": { + "name": "comment.block.cpp" + }, + "66": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "67": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "68": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "69": { + "name": "comment.block.cpp" + }, + "70": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "71": { + "name": "entity.name.operator.type.array.cpp" + }, + "72": { + "name": "entity.name.operator.custom-literal.cpp" + }, + "73": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "74": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "75": { + "name": "comment.block.cpp" + }, + "76": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "77": { + "name": "entity.name.operator.custom-literal.cpp" + }, + "78": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "79": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "80": { + "name": "comment.block.cpp" + }, + "81": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "endCaptures": {}, + "name": "meta.function.definition.special.operator-overload.cpp", + "patterns": [ + { + "begin": "\\G ?", + "end": "(?:\\{|<%|\\?\\?<|(?=;))", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.function.definition.special.operator-overload.cpp" + } + }, + "name": "meta.head.function.definition.special.operator-overload.cpp", + "patterns": [ + { + "include": "#ever_present_context" + }, + { + "include": "#template_call_range" + }, + { + "begin": "\\(", + "end": "\\)", + "beginCaptures": { + "0": { + "name": "punctuation.section.parameters.begin.bracket.round.special.operator-overload.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.parameters.end.bracket.round.special.operator-overload.cpp" + } + }, + "contentName": "meta.function.definition.parameters.special.operator-overload", + "patterns": [ + { + "include": "#function_parameter_context" + }, + { + "include": "#evaluation_context" + } + ] + }, + { + "include": "#qualifiers_and_specifiers_post_parameters" + }, + { + "match": "(\\=)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(default)|(delete))", + "captures": { + "1": { + "name": "keyword.operator.assignment.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "keyword.other.default.function.cpp" + }, + "7": { + "name": "keyword.other.delete.function.cpp" + } + } + }, + { + "include": "$self" + } + ] + }, + { + "begin": "(?<=\\{|<%|\\?\\?<)", + "end": "\\}|%>|\\?\\?>", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.function.definition.special.operator-overload.cpp" + } + }, + "name": "meta.body.function.definition.special.operator-overload.cpp", + "patterns": [ + { + "include": "#function_body_context" + } + ] + }, + { + "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", + "end": "[\\s]*(?=;)", + "beginCaptures": {}, + "endCaptures": {}, + "name": "meta.tail.function.definition.special.operator-overload.cpp", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + "operators": { + "patterns": [ + { + "begin": "((?<!\\w)sizeof(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", + "end": "\\)", + "beginCaptures": { + "1": { + "name": "keyword.operator.functionlike.cpp keyword.operator.sizeof.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "punctuation.section.arguments.begin.bracket.round.operator.sizeof.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.operator.sizeof.cpp" + } + }, + "contentName": "meta.arguments.operator.sizeof", + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + { + "begin": "((?<!\\w)alignof(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", + "end": "\\)", + "beginCaptures": { + "1": { + "name": "keyword.operator.functionlike.cpp keyword.operator.alignof.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "punctuation.section.arguments.begin.bracket.round.operator.alignof.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.operator.alignof.cpp" + } + }, + "contentName": "meta.arguments.operator.alignof", + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + { + "begin": "((?<!\\w)alignas(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", + "end": "\\)", + "beginCaptures": { + "1": { + "name": "keyword.operator.functionlike.cpp keyword.operator.alignas.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "punctuation.section.arguments.begin.bracket.round.operator.alignas.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.operator.alignas.cpp" + } + }, + "contentName": "meta.arguments.operator.alignas", + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + { + "begin": "((?<!\\w)typeid(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", + "end": "\\)", + "beginCaptures": { + "1": { + "name": "keyword.operator.functionlike.cpp keyword.operator.typeid.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "punctuation.section.arguments.begin.bracket.round.operator.typeid.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.operator.typeid.cpp" + } + }, + "contentName": "meta.arguments.operator.typeid", + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + { + "begin": "((?<!\\w)noexcept(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", + "end": "\\)", + "beginCaptures": { + "1": { + "name": "keyword.operator.functionlike.cpp keyword.operator.noexcept.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "punctuation.section.arguments.begin.bracket.round.operator.noexcept.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.operator.noexcept.cpp" + } + }, + "contentName": "meta.arguments.operator.noexcept", + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + { + "begin": "(\\bsizeof\\.\\.\\.)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", + "end": "\\)", + "beginCaptures": { + "1": { + "name": "keyword.operator.functionlike.cpp keyword.operator.sizeof.variadic.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "punctuation.section.arguments.begin.bracket.round.operator.sizeof.variadic.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.operator.sizeof.variadic.cpp" + } + }, + "contentName": "meta.arguments.operator.sizeof.variadic", + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + { + "match": "--", + "name": "keyword.operator.decrement.cpp" + }, + { + "match": "\\+\\+", + "name": "keyword.operator.increment.cpp" + }, + { + "match": "%=|\\+=|-=|\\*=|(?<!\\()\\/=", + "name": "keyword.operator.assignment.compound.cpp" + }, + { + "match": "&=|\\^=|<<=|>>=|\\|=", + "name": "keyword.operator.assignment.compound.bitwise.cpp" + }, + { + "match": "<<|>>", + "name": "keyword.operator.bitwise.shift.cpp" + }, + { + "match": "!=|<=|>=|==|<|>", + "name": "keyword.operator.comparison.cpp" + }, + { + "match": "&&|!|\\|\\|", + "name": "keyword.operator.logical.cpp" + }, + { + "match": "&|\\||\\^|~", + "name": "keyword.operator.bitwise.cpp" + }, + { + "include": "#assignment_operator" + }, + { + "match": "%|\\*|\\/|-|\\+", + "name": "keyword.operator.arithmetic.cpp" + }, + { + "include": "#ternary_operator" + } + ] + }, + "over_qualified_types": { + "patterns": [ + { + "match": "(\\bstruct)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))?)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:\\[((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))\\]((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?=,|\\)|\\n)", + "captures": { + "1": { + "name": "storage.type.struct.parameter.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "4": { + "name": "entity.name.type.struct.parameter.cpp" + }, + "5": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "6": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "7": { + "patterns": [ + { + "match": "\\*", + "name": "storage.modifier.pointer.cpp" + }, + { + "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "name": "invalid.illegal.reference-type.cpp" + }, + { + "match": "\\&", + "name": "storage.modifier.reference.cpp" + } + ] + }, + "8": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "9": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "10": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "11": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "12": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "13": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "14": { + "name": "variable.other.object.declare.cpp" + }, + "15": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "16": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "17": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "18": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "19": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "20": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + } + } + }, + { + "match": "(\\benum)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))?)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:\\[((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))\\]((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?=,|\\)|\\n)", + "captures": { + "1": { + "name": "storage.type.enum.parameter.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "4": { + "name": "entity.name.type.enum.parameter.cpp" + }, + "5": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "6": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "7": { + "patterns": [ + { + "match": "\\*", + "name": "storage.modifier.pointer.cpp" + }, + { + "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "name": "invalid.illegal.reference-type.cpp" + }, + { + "match": "\\&", + "name": "storage.modifier.reference.cpp" + } + ] + }, + "8": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "9": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "10": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "11": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "12": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "13": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "14": { + "name": "variable.other.object.declare.cpp" + }, + "15": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "16": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "17": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "18": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "19": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "20": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + } + } + }, + { + "match": "(\\bunion)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))?)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:\\[((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))\\]((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?=,|\\)|\\n)", + "captures": { + "1": { + "name": "storage.type.union.parameter.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "4": { + "name": "entity.name.type.union.parameter.cpp" + }, + "5": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "6": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "7": { + "patterns": [ + { + "match": "\\*", + "name": "storage.modifier.pointer.cpp" + }, + { + "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "name": "invalid.illegal.reference-type.cpp" + }, + { + "match": "\\&", + "name": "storage.modifier.reference.cpp" + } + ] + }, + "8": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "9": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "10": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "11": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "12": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "13": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "14": { + "name": "variable.other.object.declare.cpp" + }, + "15": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "16": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "17": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "18": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "19": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "20": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + } + } + }, + { + "match": "(\\bclass)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))?)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:\\[((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))\\]((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?=,|\\)|\\n)", + "captures": { + "1": { + "name": "storage.type.class.parameter.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "4": { + "name": "entity.name.type.class.parameter.cpp" + }, + "5": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "6": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "7": { + "patterns": [ + { + "match": "\\*", + "name": "storage.modifier.pointer.cpp" + }, + { + "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "name": "invalid.illegal.reference-type.cpp" + }, + { + "match": "\\&", + "name": "storage.modifier.reference.cpp" + } + ] + }, + "8": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "9": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "10": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "11": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "12": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "13": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "14": { + "name": "variable.other.object.declare.cpp" + }, + "15": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "16": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "17": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "18": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "19": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "20": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + } + } + } + ] + }, + "parameter": { + "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\w)", + "end": "(?:(?=\\))|(,))", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.separator.delimiter.comma.cpp" + } + }, + "name": "meta.parameter.cpp", + "patterns": [ + { + "include": "#ever_present_context" + }, + { + "include": "#string_context" + }, + { + "include": "#function_pointer_parameter" + }, + { + "include": "#decltype" + }, + { + "include": "#vararg_ellipses" + }, + { + "match": "((?:((?:(?:thread_local)|(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:\\s*+(?<!\\w)(?:(?:(?:((?:(?:unsigned)|(?:wchar_t)|(?:double)|(?:signed)|(?:short)|(?:float)|(?:auto)|(?:void)|(?:long)|(?:char)|(?:bool)|(?:int)))|((?:(?:uint_least32_t)|(?:uint_least64_t)|(?:uint_least16_t)|(?:uint_fast64_t)|(?:uint_least8_t)|(?:int_least64_t)|(?:int_least32_t)|(?:int_least16_t)|(?:uint_fast16_t)|(?:uint_fast32_t)|(?:int_least8_t)|(?:int_fast16_t)|(?:int_fast32_t)|(?:int_fast64_t)|(?:uint_fast8_t)|(?:int_fast8_t)|(?:suseconds_t)|(?:useconds_t)|(?:uintmax_t)|(?:uintmax_t)|(?:in_port_t)|(?:uintmax_t)|(?:in_addr_t)|(?:blksize_t)|(?:uintptr_t)|(?:intmax_t)|(?:intptr_t)|(?:blkcnt_t)|(?:intmax_t)|(?:u_quad_t)|(?:uint16_t)|(?:uint32_t)|(?:uint64_t)|(?:ssize_t)|(?:fixpt_t)|(?:qaddr_t)|(?:u_short)|(?:int16_t)|(?:int32_t)|(?:int64_t)|(?:uint8_t)|(?:daddr_t)|(?:caddr_t)|(?:swblk_t)|(?:clock_t)|(?:segsz_t)|(?:nlink_t)|(?:time_t)|(?:u_long)|(?:ushort)|(?:quad_t)|(?:mode_t)|(?:size_t)|(?:u_char)|(?:int8_t)|(?:u_int)|(?:uid_t)|(?:off_t)|(?:pid_t)|(?:gid_t)|(?:dev_t)|(?:div_t)|(?:key_t)|(?:ino_t)|(?:id_t)|(?:id_t)|(?:uint))))|((?:(?:pthread_rwlockattr_t)|(?:pthread_mutexattr_t)|(?:pthread_condattr_t)|(?:pthread_rwlock_t)|(?:pthread_mutex_t)|(?:pthread_cond_t)|(?:pthread_attr_t)|(?:pthread_once_t)|(?:pthread_key_t)|(?:pthread_t))))|([a-zA-Z_]\\w*_t))(?!\\w)|((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\b\\b(?<!\\Wthread_local|^thread_local|\\Wvolatile|^volatile|\\Wregister|^register|\\Wrestrict|^restrict|\\Wstatic|^static|\\Wextern|^extern|\\Wconst|^const)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=,|\\)|=)", + "captures": { + "1": { + "patterns": [ + { + "include": "#storage_types" + } + ] + }, + "2": { + "name": "storage.modifier.specifier.parameter.cpp" + }, + "3": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "5": { + "name": "comment.block.cpp" + }, + "6": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "7": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "9": { + "name": "comment.block.cpp" + }, + "10": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "11": { + "name": "storage.type.primitive.cpp storage.type.built-in.primitive.cpp" + }, + "12": { + "name": "storage.type.cpp storage.type.built-in.cpp" + }, + "13": { + "name": "support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp" + }, + "14": { + "name": "support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp" + }, + "15": { + "name": "entity.name.type.parameter.cpp" + }, + "16": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "17": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "18": { + "name": "comment.block.cpp" + }, + "19": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + }, + { + "include": "#storage_types" + }, + { + "include": "#scope_resolution_parameter_inner_generated" + }, + { + "match": "(?:(?:struct)|(?:class)|(?:union)|(?:enum))", + "name": "storage.type.$0.cpp" + }, + { + "begin": "(?<==)", + "end": "(?:(?=\\))|(,))", + "beginCaptures": {}, + "endCaptures": { + "1": { + "name": "punctuation.separator.delimiter.comma.cpp" + } + }, + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + { + "match": "\\=", + "name": "keyword.operator.assignment.cpp" + }, + { + "match": "(?<!\\s|\\(|,|:)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\)|,|\\[|=|\\n)", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "5": { + "name": "variable.parameter.cpp" + }, + "6": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "7": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "8": { + "name": "comment.block.cpp" + }, + "9": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + }, + { + "include": "#attributes_context" + }, + { + "begin": "\\[", + "end": "\\]", + "beginCaptures": { + "0": { + "name": "punctuation.definition.begin.bracket.square.array.type.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.end.bracket.square.array.type.cpp" + } + }, + "name": "meta.bracket.square.array.cpp", + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + { + "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b(?<!\\Wstruct|^struct|\\Wclass|^class|\\Wunion|^union|\\Wenum|^enum)", + "name": "entity.name.type.parameter.cpp" + }, + { + "include": "#template_call_range" + }, + { + "match": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*)", + "captures": { + "0": { + "patterns": [ + { + "match": "\\*", + "name": "storage.modifier.pointer.cpp" + }, + { + "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "name": "invalid.illegal.reference-type.cpp" + }, + { + "match": "\\&", + "name": "storage.modifier.reference.cpp" + } + ] + }, + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "5": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "6": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "7": { + "name": "comment.block.cpp" + }, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + }, + { + "include": "#ever_present_context" + } + ] + }, + "parameter_class": { + "match": "(\\bclass)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))?)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:\\[((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))\\]((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?=,|\\)|\\n)", + "captures": { + "1": { + "name": "storage.type.class.parameter.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "4": { + "name": "entity.name.type.class.parameter.cpp" + }, + "5": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "6": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "7": { + "patterns": [ + { + "match": "\\*", + "name": "storage.modifier.pointer.cpp" + }, + { + "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "name": "invalid.illegal.reference-type.cpp" + }, + { + "match": "\\&", + "name": "storage.modifier.reference.cpp" + } + ] + }, + "8": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "9": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "10": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "11": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "12": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "13": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "14": { + "name": "variable.other.object.declare.cpp" + }, + "15": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "16": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "17": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "18": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "19": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "20": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + } + } + }, + "parameter_enum": { + "match": "(\\benum)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))?)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:\\[((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))\\]((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?=,|\\)|\\n)", + "captures": { + "1": { + "name": "storage.type.enum.parameter.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "4": { + "name": "entity.name.type.enum.parameter.cpp" + }, + "5": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "6": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "7": { + "patterns": [ + { + "match": "\\*", + "name": "storage.modifier.pointer.cpp" + }, + { + "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "name": "invalid.illegal.reference-type.cpp" + }, + { + "match": "\\&", + "name": "storage.modifier.reference.cpp" + } + ] + }, + "8": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "9": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "10": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "11": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "12": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "13": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "14": { + "name": "variable.other.object.declare.cpp" + }, + "15": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "16": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "17": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "18": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "19": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "20": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + } + } + }, + "parameter_or_maybe_value": { + "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\w)", + "end": "(?:(?=\\))|(,))", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.separator.delimiter.comma.cpp" + } + }, + "name": "meta.parameter.cpp", + "patterns": [ + { + "include": "#ever_present_context" + }, + { + "include": "#function_pointer_parameter" + }, + { + "include": "#memory_operators" + }, + { + "include": "#builtin_storage_type_initilizer" + }, + { + "include": "#curly_initializer" + }, + { + "include": "#decltype" + }, + { + "include": "#vararg_ellipses" + }, + { + "match": "((?:((?:(?:thread_local)|(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:\\s*+(?<!\\w)(?:(?:(?:((?:(?:unsigned)|(?:wchar_t)|(?:double)|(?:signed)|(?:short)|(?:float)|(?:auto)|(?:void)|(?:long)|(?:char)|(?:bool)|(?:int)))|((?:(?:uint_least32_t)|(?:uint_least64_t)|(?:uint_least16_t)|(?:uint_fast64_t)|(?:uint_least8_t)|(?:int_least64_t)|(?:int_least32_t)|(?:int_least16_t)|(?:uint_fast16_t)|(?:uint_fast32_t)|(?:int_least8_t)|(?:int_fast16_t)|(?:int_fast32_t)|(?:int_fast64_t)|(?:uint_fast8_t)|(?:int_fast8_t)|(?:suseconds_t)|(?:useconds_t)|(?:uintmax_t)|(?:uintmax_t)|(?:in_port_t)|(?:uintmax_t)|(?:in_addr_t)|(?:blksize_t)|(?:uintptr_t)|(?:intmax_t)|(?:intptr_t)|(?:blkcnt_t)|(?:intmax_t)|(?:u_quad_t)|(?:uint16_t)|(?:uint32_t)|(?:uint64_t)|(?:ssize_t)|(?:fixpt_t)|(?:qaddr_t)|(?:u_short)|(?:int16_t)|(?:int32_t)|(?:int64_t)|(?:uint8_t)|(?:daddr_t)|(?:caddr_t)|(?:swblk_t)|(?:clock_t)|(?:segsz_t)|(?:nlink_t)|(?:time_t)|(?:u_long)|(?:ushort)|(?:quad_t)|(?:mode_t)|(?:size_t)|(?:u_char)|(?:int8_t)|(?:u_int)|(?:uid_t)|(?:off_t)|(?:pid_t)|(?:gid_t)|(?:dev_t)|(?:div_t)|(?:key_t)|(?:ino_t)|(?:id_t)|(?:id_t)|(?:uint))))|((?:(?:pthread_rwlockattr_t)|(?:pthread_mutexattr_t)|(?:pthread_condattr_t)|(?:pthread_rwlock_t)|(?:pthread_mutex_t)|(?:pthread_cond_t)|(?:pthread_attr_t)|(?:pthread_once_t)|(?:pthread_key_t)|(?:pthread_t))))|([a-zA-Z_]\\w*_t))(?!\\w)|((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\b\\b(?<!\\Wthread_local|^thread_local|\\Wvolatile|^volatile|\\Wregister|^register|\\Wrestrict|^restrict|\\Wstatic|^static|\\Wextern|^extern|\\Wconst|^const)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=,|\\)|=)", + "captures": { + "1": { + "patterns": [ + { + "include": "#storage_types" + } + ] + }, + "2": { + "name": "storage.modifier.specifier.parameter.cpp" + }, + "3": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "5": { + "name": "comment.block.cpp" + }, + "6": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "7": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "9": { + "name": "comment.block.cpp" + }, + "10": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "11": { + "name": "storage.type.primitive.cpp storage.type.built-in.primitive.cpp" + }, + "12": { + "name": "storage.type.cpp storage.type.built-in.cpp" + }, + "13": { + "name": "support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp" + }, + "14": { + "name": "support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp" + }, + "15": { + "name": "entity.name.type.parameter.cpp" + }, + "16": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "17": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "18": { + "name": "comment.block.cpp" + }, + "19": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + }, + { + "include": "#storage_types" + }, + { + "include": "#function_call" + }, + { + "include": "#scope_resolution_parameter_inner_generated" + }, + { + "match": "(?:(?:struct)|(?:class)|(?:union)|(?:enum))", + "name": "storage.type.$0.cpp" + }, + { + "begin": "(?<==)", + "end": "(?:(?=\\))|(,))", + "beginCaptures": {}, + "endCaptures": { + "1": { + "name": "punctuation.separator.delimiter.comma.cpp" + } + }, + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + { + "match": "(?<!\\s|\\(|,|:)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=(?:\\)|,|\\[|=|\\/\\/|(?:\\n|$)))", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "5": { + "name": "variable.parameter.cpp" + }, + "6": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "7": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "8": { + "name": "comment.block.cpp" + }, + "9": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + }, + { + "include": "#attributes_context" + }, + { + "begin": "\\[", + "end": "\\]", + "beginCaptures": { + "0": { + "name": "punctuation.definition.begin.bracket.square.array.type.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.end.bracket.square.array.type.cpp" + } + }, + "name": "meta.bracket.square.array.cpp", + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + { + "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b(?<!\\Wstruct|^struct|\\Wclass|^class|\\Wunion|^union|\\Wenum|^enum)", + "name": "entity.name.type.parameter.cpp" + }, + { + "include": "#template_call_range" + }, + { + "match": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*)", + "captures": { + "0": { + "patterns": [ + { + "match": "\\*", + "name": "storage.modifier.pointer.cpp" + }, + { + "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "name": "invalid.illegal.reference-type.cpp" + }, + { + "match": "\\&", + "name": "storage.modifier.reference.cpp" + } + ] + }, + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "5": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "6": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "7": { + "name": "comment.block.cpp" + }, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + }, + { + "include": "#evaluation_context" + }, + { + "include": "#ever_present_context" + } + ] + }, + "parameter_struct": { + "match": "(\\bstruct)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))?)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:\\[((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))\\]((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?=,|\\)|\\n)", + "captures": { + "1": { + "name": "storage.type.struct.parameter.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "4": { + "name": "entity.name.type.struct.parameter.cpp" + }, + "5": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "6": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "7": { + "patterns": [ + { + "match": "\\*", + "name": "storage.modifier.pointer.cpp" + }, + { + "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "name": "invalid.illegal.reference-type.cpp" + }, + { + "match": "\\&", + "name": "storage.modifier.reference.cpp" + } + ] + }, + "8": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "9": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "10": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "11": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "12": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "13": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "14": { + "name": "variable.other.object.declare.cpp" + }, + "15": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "16": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "17": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "18": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "19": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "20": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + } + } + }, + "parameter_union": { + "match": "(\\bunion)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))?)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:\\[((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))\\]((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?=,|\\)|\\n)", + "captures": { + "1": { + "name": "storage.type.union.parameter.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "4": { + "name": "entity.name.type.union.parameter.cpp" + }, + "5": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "6": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "7": { + "patterns": [ + { + "match": "\\*", + "name": "storage.modifier.pointer.cpp" + }, + { + "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "name": "invalid.illegal.reference-type.cpp" + }, + { + "match": "\\&", + "name": "storage.modifier.reference.cpp" + } + ] + }, + "8": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "9": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "10": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "11": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "12": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "13": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "14": { + "name": "variable.other.object.declare.cpp" + }, + "15": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "16": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "17": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "18": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "19": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "20": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + } + } + }, + "parentheses": { + "begin": "\\(", + "end": "\\)", + "beginCaptures": { + "0": { + "name": "punctuation.section.parens.begin.bracket.round.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.parens.end.bracket.round.cpp" + } + }, + "name": "meta.parens.cpp", + "patterns": [ + { + "include": "#over_qualified_types" + }, + { + "match": "(?<!:):(?!:)", + "name": "punctuation.separator.colon.range-based.cpp" + }, + { + "include": "#evaluation_context" + } + ] + }, + "pragma": { + "begin": "^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(#)(?:\\s+)?pragma\\b", + "end": "(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))", + "beginCaptures": { + "0": { + "name": "keyword.control.directive.pragma.cpp" + }, + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "5": { + "name": "punctuation.definition.directive.cpp" + } + }, + "endCaptures": {}, + "name": "meta.preprocessor.pragma.cpp", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#string_context" + }, + { + "match": "[a-zA-Z_$][\\w\\-$]*", + "name": "entity.other.attribute-name.pragma.preprocessor.cpp" + }, + { + "include": "#preprocessor_number_literal" + }, + { + "include": "#line_continuation_character" + } + ] + }, + "pragma_mark": { + "match": "(^((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(#)(?:\\s+)?pragma\\s+mark)\\s+(.*)", + "captures": { + "1": { + "name": "keyword.control.directive.pragma.pragma-mark.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "4": { + "name": "punctuation.definition.directive.cpp" + }, + "5": { + "name": "entity.name.tag.pragma-mark.cpp" + } + }, + "name": "meta.preprocessor.pragma.cpp" + }, + "predefined_macros": { + "patterns": [ + { + "match": "\\b(__cplusplus|__DATE__|__FILE__|__LINE__|__STDC__|__STDC_HOSTED__|__STDC_NO_COMPLEX__|__STDC_VERSION__|__STDCPP_THREADS__|__TIME__|NDEBUG|__OBJC__|__ASSEMBLER__|__ATOM__|__AVX__|__AVX2__|_CHAR_UNSIGNED|__CLR_VER|_CONTROL_FLOW_GUARD|__COUNTER__|__cplusplus_cli|__cplusplus_winrt|_CPPRTTI|_CPPUNWIND|_DEBUG|_DLL|__FUNCDNAME__|__FUNCSIG__|__FUNCTION__|_INTEGRAL_MAX_BITS|__INTELLISENSE__|_ISO_VOLATILE|_KERNEL_MODE|_M_AMD64|_M_ARM|_M_ARM_ARMV7VE|_M_ARM_FP|_M_ARM64|_M_CEE|_M_CEE_PURE|_M_CEE_SAFE|_M_FP_EXCEPT|_M_FP_FAST|_M_FP_PRECISE|_M_FP_STRICT|_M_IX86|_M_IX86_FP|_M_X64|_MANAGED|_MSC_BUILD|_MSC_EXTENSIONS|_MSC_FULL_VER|_MSC_VER|_MSVC_LANG|__MSVC_RUNTIME_CHECKS|_MT|_NATIVE_WCHAR_T_DEFINED|_OPENMP|_PREFAST|__TIMESTAMP__|_VC_NO_DEFAULTLIB|_WCHAR_T_DEFINED|_WIN32|_WIN64|_WINRT_DLL|_ATL_VER|_MFC_VER|__GFORTRAN__|__GNUC__|__GNUC_MINOR__|__GNUC_PATCHLEVEL__|__GNUG__|__STRICT_ANSI__|__BASE_FILE__|__INCLUDE_LEVEL__|__ELF__|__VERSION__|__OPTIMIZE__|__OPTIMIZE_SIZE__|__NO_INLINE__|__GNUC_STDC_INLINE__|__CHAR_UNSIGNED__|__WCHAR_UNSIGNED__|__REGISTER_PREFIX__|__REGISTER_PREFIX__|__SIZE_TYPE__|__PTRDIFF_TYPE__|__WCHAR_TYPE__|__WINT_TYPE__|__INTMAX_TYPE__|__UINTMAX_TYPE__|__SIG_ATOMIC_TYPE__|__INT8_TYPE__|__INT16_TYPE__|__INT32_TYPE__|__INT64_TYPE__|__UINT8_TYPE__|__UINT16_TYPE__|__UINT32_TYPE__|__UINT64_TYPE__|__INT_LEAST8_TYPE__|__INT_LEAST16_TYPE__|__INT_LEAST32_TYPE__|__INT_LEAST64_TYPE__|__UINT_LEAST8_TYPE__|__UINT_LEAST16_TYPE__|__UINT_LEAST32_TYPE__|__UINT_LEAST64_TYPE__|__INT_FAST8_TYPE__|__INT_FAST16_TYPE__|__INT_FAST32_TYPE__|__INT_FAST64_TYPE__|__UINT_FAST8_TYPE__|__UINT_FAST16_TYPE__|__UINT_FAST32_TYPE__|__UINT_FAST64_TYPE__|__INTPTR_TYPE__|__UINTPTR_TYPE__|__CHAR_BIT__|__SCHAR_MAX__|__WCHAR_MAX__|__SHRT_MAX__|__INT_MAX__|__LONG_MAX__|__LONG_LONG_MAX__|__WINT_MAX__|__SIZE_MAX__|__PTRDIFF_MAX__|__INTMAX_MAX__|__UINTMAX_MAX__|__SIG_ATOMIC_MAX__|__INT8_MAX__|__INT16_MAX__|__INT32_MAX__|__INT64_MAX__|__UINT8_MAX__|__UINT16_MAX__|__UINT32_MAX__|__UINT64_MAX__|__INT_LEAST8_MAX__|__INT_LEAST16_MAX__|__INT_LEAST32_MAX__|__INT_LEAST64_MAX__|__UINT_LEAST8_MAX__|__UINT_LEAST16_MAX__|__UINT_LEAST32_MAX__|__UINT_LEAST64_MAX__|__INT_FAST8_MAX__|__INT_FAST16_MAX__|__INT_FAST32_MAX__|__INT_FAST64_MAX__|__UINT_FAST8_MAX__|__UINT_FAST16_MAX__|__UINT_FAST32_MAX__|__UINT_FAST64_MAX__|__INTPTR_MAX__|__UINTPTR_MAX__|__WCHAR_MIN__|__WINT_MIN__|__SIG_ATOMIC_MIN__|__SCHAR_WIDTH__|__SHRT_WIDTH__|__INT_WIDTH__|__LONG_WIDTH__|__LONG_LONG_WIDTH__|__PTRDIFF_WIDTH__|__SIG_ATOMIC_WIDTH__|__SIZE_WIDTH__|__WCHAR_WIDTH__|__WINT_WIDTH__|__INT_LEAST8_WIDTH__|__INT_LEAST16_WIDTH__|__INT_LEAST32_WIDTH__|__INT_LEAST64_WIDTH__|__INT_FAST8_WIDTH__|__INT_FAST16_WIDTH__|__INT_FAST32_WIDTH__|__INT_FAST64_WIDTH__|__INTPTR_WIDTH__|__INTMAX_WIDTH__|__SIZEOF_INT__|__SIZEOF_LONG__|__SIZEOF_LONG_LONG__|__SIZEOF_SHORT__|__SIZEOF_POINTER__|__SIZEOF_FLOAT__|__SIZEOF_DOUBLE__|__SIZEOF_LONG_DOUBLE__|__SIZEOF_SIZE_T__|__SIZEOF_WCHAR_T__|__SIZEOF_WINT_T__|__SIZEOF_PTRDIFF_T__|__BYTE_ORDER__|__ORDER_LITTLE_ENDIAN__|__ORDER_BIG_ENDIAN__|__ORDER_PDP_ENDIAN__|__FLOAT_WORD_ORDER__|__DEPRECATED|__EXCEPTIONS|__GXX_RTTI|__USING_SJLJ_EXCEPTIONS__|__GXX_EXPERIMENTAL_CXX0X__|__GXX_WEAK__|__NEXT_RUNTIME__|__LP64__|_LP64|__SSP__|__SSP_ALL__|__SSP_STRONG__|__SSP_EXPLICIT__|__SANITIZE_ADDRESS__|__SANITIZE_THREAD__|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_16|__HAVE_SPECULATION_SAFE_VALUE|__GCC_HAVE_DWARF2_CFI_ASM|__FP_FAST_FMA|__FP_FAST_FMAF|__FP_FAST_FMAL|__FP_FAST_FMAF16|__FP_FAST_FMAF32|__FP_FAST_FMAF64|__FP_FAST_FMAF128|__FP_FAST_FMAF32X|__FP_FAST_FMAF64X|__FP_FAST_FMAF128X|__GCC_IEC_559|__GCC_IEC_559_COMPLEX|__NO_MATH_ERRNO__|__has_builtin|__has_feature|__has_extension|__has_cpp_attribute|__has_c_attribute|__has_attribute|__has_declspec_attribute|__is_identifier|__has_include|__has_include_next|__has_warning|__BASE_FILE__|__FILE_NAME__|__clang__|__clang_major__|__clang_minor__|__clang_patchlevel__|__clang_version__|__fp16|_Float16)\\b", + "captures": { + "1": { + "name": "entity.name.other.preprocessor.macro.predefined.$1.cpp" + } + } + }, + { + "match": "\\b__([A-Z_]+)__\\b", + "name": "entity.name.other.preprocessor.macro.predefined.probably.$1.cpp" + } + ] + }, + "preprocessor_conditional_context": { + "patterns": [ + { + "include": "#preprocessor_conditional_defined" + }, + { + "include": "#comments" + }, + { + "include": "#language_constants" + }, + { + "include": "#string_context" + }, + { + "include": "#d9bc4796b0b_preprocessor_number_literal" + }, + { + "include": "#operators" + }, + { + "include": "#predefined_macros" + }, + { + "include": "#macro_name" + }, + { + "include": "#line_continuation_character" + } + ] + }, + "preprocessor_conditional_defined": { + "begin": "((?<!\\w)defined(?!\\w))(\\()", + "end": "(?:\\)|(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$)))", + "beginCaptures": { + "1": { + "name": "keyword.control.directive.conditional.defined.cpp" + }, + "2": { + "name": "punctuation.section.parens.control.defined.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.parens.control.defined.cpp" + } + }, + "patterns": [ + { + "include": "#macro_name" + } + ] + }, + "preprocessor_conditional_parentheses": { + "begin": "\\(", + "end": "\\)", + "beginCaptures": { + "0": { + "name": "punctuation.section.parens.begin.bracket.round.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.parens.end.bracket.round.cpp" + } + }, + "name": "meta.parens.preprocessor.conditional.cpp" + }, + "preprocessor_conditional_range": { + "begin": "^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(#)(?:\\s+)?((?:(?:ifndef|ifdef)|if))", + "end": "(?<!\\\\)(?:(?=\\n)|(?<=^\\n|[^\\\\]\\n)(?=$))", + "beginCaptures": { + "0": { + "name": "keyword.control.directive.conditional.$6.cpp" + }, + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "5": { + "name": "punctuation.definition.directive.cpp" + }, + "6": {} + }, + "endCaptures": {}, + "contentName": "meta.preprocessor.conditional", + "patterns": [ + { + "include": "#preprocessor_conditional_context" + } + ] + }, + "preprocessor_conditional_standalone": { + "match": "^((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(#)(?:\\s+)?((?<!\\w)(?:endif|else|elif)(?!\\w))", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "3": { + "name": "punctuation.definition.directive.cpp" + } + }, + "name": "keyword.control.directive.$4.cpp" + }, + "preprocessor_context": { + "patterns": [ + { + "include": "#pragma_mark" + }, + { + "include": "#pragma" + }, + { + "include": "#include" + }, + { + "include": "#line" + }, + { + "include": "#diagnostic" + }, + { + "include": "#undef" + }, + { + "include": "#preprocessor_conditional_range" + }, + { + "include": "#single_line_macro" + }, + { + "include": "#macro" + }, + { + "include": "#preprocessor_conditional_standalone" + }, + { + "include": "#macro_argument" + } + ] + }, + "qualified_type": { + "match": "\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<11>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<11>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.])", + "captures": { + "0": { + "patterns": [ + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" + }, + { + "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)", + "name": "storage.type.$0.cpp" + }, + { + "include": "#attributes_context" + }, + { + "include": "#storage_types" + }, + { + "include": "#number_literal" + }, + { + "include": "#string_context" + }, + { + "include": "#comma" + }, + { + "include": "#scope_resolution_inner_generated" + }, + { + "begin": "<", + "end": ">", + "beginCaptures": { + "0": { + "name": "punctuation.section.angle-brackets.begin.template.call.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.angle-brackets.end.template.call.cpp" + } + }, + "name": "meta.template.call.cpp", + "patterns": [ + { + "include": "#template_call_context" + } + ] + }, + { + "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", + "name": "entity.name.type.cpp" + } + ] + }, + "1": { + "patterns": [ + { + "include": "#attributes_context" + }, + { + "include": "#number_literal" + } + ] + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "4": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "5": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "6": { + "patterns": [ + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" + }, + { + "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", + "name": "entity.name.scope-resolution.type.cpp" + }, + { + "include": "#template_call_range" + } + ] + }, + "7": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "9": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "10": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + } + }, + "name": "meta.qualified_type.cpp" + }, + "qualifiers_and_specifiers_post_parameters": { + "match": "((?:(?:(?:(?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)(?<!\\w)(?:(?:override)|(?:volatile)|(?:noexcept)|(?:final)|(?:const))(?!\\w))+)(?=\\s*(?:\\{|;|\\n|\\r|=))", + "captures": { + "1": { + "patterns": [ + { + "match": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:(?:override)|(?:volatile)|(?:noexcept)|(?:final)|(?:const))(?!\\w))", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "5": { + "name": "storage.modifier.specifier.functional.post-parameters.$5.cpp" + } + } + } + ] + } + } + }, + "scope_resolution": { + "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<3>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+", + "captures": { + "0": { + "patterns": [ + { + "include": "#scope_resolution_inner_generated" + } + ] + }, + "1": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" + }, + "2": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + } + } + }, + "scope_resolution_function_call": { + "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<3>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+", + "captures": { + "0": { + "patterns": [ + { + "include": "#scope_resolution_function_call_inner_generated" + } + ] + }, + "1": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp" + }, + "2": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + } + } + }, + "scope_resolution_function_call_inner_generated": { + "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<7>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\s*+(((?<!<)<(?!<)(?:(?:(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/)))|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<7>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)", + "captures": { + "1": { + "patterns": [ + { + "include": "#scope_resolution_function_call_inner_generated" + } + ] + }, + "2": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp" + }, + "3": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "4": {}, + "5": { + "name": "entity.name.scope-resolution.function.call.cpp" + }, + "6": { + "name": "meta.template.call.cpp", + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "7": {}, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "9": { + "name": "comment.block.cpp" + }, + "10": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "11": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp" + } + } + }, + "scope_resolution_function_definition": { + "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<3>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+", + "captures": { + "0": { + "patterns": [ + { + "include": "#scope_resolution_function_definition_inner_generated" + } + ] + }, + "1": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp" + }, + "2": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + } + } + }, + "scope_resolution_function_definition_inner_generated": { + "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<7>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\s*+(((?<!<)<(?!<)(?:(?:(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/)))|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<7>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)", + "captures": { + "1": { + "patterns": [ + { + "include": "#scope_resolution_function_definition_inner_generated" + } + ] + }, + "2": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp" + }, + "3": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "4": {}, + "5": { + "name": "entity.name.scope-resolution.function.definition.cpp" + }, + "6": { + "name": "meta.template.call.cpp", + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "7": {}, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "9": { + "name": "comment.block.cpp" + }, + "10": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "11": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp" + } + } + }, + "scope_resolution_function_definition_operator_overload": { + "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<3>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+", + "captures": { + "0": { + "patterns": [ + { + "include": "#scope_resolution_function_definition_operator_overload_inner_generated" + } + ] + }, + "1": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cpp" + }, + "2": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + } + } + }, + "scope_resolution_function_definition_operator_overload_inner_generated": { + "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<7>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\s*+(((?<!<)<(?!<)(?:(?:(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/)))|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<7>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)", + "captures": { + "1": { + "patterns": [ + { + "include": "#scope_resolution_function_definition_operator_overload_inner_generated" + } + ] + }, + "2": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cpp" + }, + "3": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "4": {}, + "5": { + "name": "entity.name.scope-resolution.function.definition.operator-overload.cpp" + }, + "6": { + "name": "meta.template.call.cpp", + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "7": {}, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "9": { + "name": "comment.block.cpp" + }, + "10": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "11": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cpp" + } + } + }, + "scope_resolution_inner_generated": { + "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<7>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\s*+(((?<!<)<(?!<)(?:(?:(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/)))|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<7>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)", + "captures": { + "1": { + "patterns": [ + { + "include": "#scope_resolution_inner_generated" + } + ] + }, + "2": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" + }, + "3": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "4": {}, + "5": { + "name": "entity.name.scope-resolution.cpp" + }, + "6": { + "name": "meta.template.call.cpp", + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "7": {}, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "9": { + "name": "comment.block.cpp" + }, + "10": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "11": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" + } + } + }, + "scope_resolution_namespace_alias": { + "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<3>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+", + "captures": { + "0": { + "patterns": [ + { + "include": "#scope_resolution_namespace_alias_inner_generated" + } + ] + }, + "1": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp" + }, + "2": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + } + } + }, + "scope_resolution_namespace_alias_inner_generated": { + "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<7>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\s*+(((?<!<)<(?!<)(?:(?:(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/)))|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<7>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)", + "captures": { + "1": { + "patterns": [ + { + "include": "#scope_resolution_namespace_alias_inner_generated" + } + ] + }, + "2": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp" + }, + "3": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "4": {}, + "5": { + "name": "entity.name.scope-resolution.namespace.alias.cpp" + }, + "6": { + "name": "meta.template.call.cpp", + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "7": {}, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "9": { + "name": "comment.block.cpp" + }, + "10": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "11": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp" + } + } + }, + "scope_resolution_namespace_block": { + "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<3>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+", + "captures": { + "0": { + "patterns": [ + { + "include": "#scope_resolution_namespace_block_inner_generated" + } + ] + }, + "1": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp" + }, + "2": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + } + } + }, + "scope_resolution_namespace_block_inner_generated": { + "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<7>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\s*+(((?<!<)<(?!<)(?:(?:(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/)))|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<7>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)", + "captures": { + "1": { + "patterns": [ + { + "include": "#scope_resolution_namespace_block_inner_generated" + } + ] + }, + "2": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp" + }, + "3": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "4": {}, + "5": { + "name": "entity.name.scope-resolution.namespace.block.cpp" + }, + "6": { + "name": "meta.template.call.cpp", + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "7": {}, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "9": { + "name": "comment.block.cpp" + }, + "10": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "11": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp" + } + } + }, + "scope_resolution_namespace_using": { + "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<3>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+", + "captures": { + "0": { + "patterns": [ + { + "include": "#scope_resolution_namespace_using_inner_generated" + } + ] + }, + "1": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp" + }, + "2": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + } + } + }, + "scope_resolution_namespace_using_inner_generated": { + "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<7>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\s*+(((?<!<)<(?!<)(?:(?:(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/)))|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<7>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)", + "captures": { + "1": { + "patterns": [ + { + "include": "#scope_resolution_namespace_using_inner_generated" + } + ] + }, + "2": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp" + }, + "3": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "4": {}, + "5": { + "name": "entity.name.scope-resolution.namespace.using.cpp" + }, + "6": { + "name": "meta.template.call.cpp", + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "7": {}, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "9": { + "name": "comment.block.cpp" + }, + "10": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "11": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp" + } + } + }, + "scope_resolution_parameter": { + "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<3>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+", + "captures": { + "0": { + "patterns": [ + { + "include": "#scope_resolution_parameter_inner_generated" + } + ] + }, + "1": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp" + }, + "2": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + } + } + }, + "scope_resolution_parameter_inner_generated": { + "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<7>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\s*+(((?<!<)<(?!<)(?:(?:(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/)))|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<7>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)", + "captures": { + "1": { + "patterns": [ + { + "include": "#scope_resolution_parameter_inner_generated" + } + ] + }, + "2": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp" + }, + "3": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "4": {}, + "5": { + "name": "entity.name.scope-resolution.parameter.cpp" + }, + "6": { + "name": "meta.template.call.cpp", + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "7": {}, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "9": { + "name": "comment.block.cpp" + }, + "10": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "11": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp" + } + } + }, + "scope_resolution_template_call": { + "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<3>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+", + "captures": { + "0": { + "patterns": [ + { + "include": "#scope_resolution_template_call_inner_generated" + } + ] + }, + "1": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp" + }, + "2": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + } + } + }, + "scope_resolution_template_call_inner_generated": { + "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<7>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\s*+(((?<!<)<(?!<)(?:(?:(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/)))|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<7>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)", + "captures": { + "1": { + "patterns": [ + { + "include": "#scope_resolution_template_call_inner_generated" + } + ] + }, + "2": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp" + }, + "3": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "4": {}, + "5": { + "name": "entity.name.scope-resolution.template.call.cpp" + }, + "6": { + "name": "meta.template.call.cpp", + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "7": {}, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "9": { + "name": "comment.block.cpp" + }, + "10": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "11": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp" + } + } + }, + "scope_resolution_template_definition": { + "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<3>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+", + "captures": { + "0": { + "patterns": [ + { + "include": "#scope_resolution_template_definition_inner_generated" + } + ] + }, + "1": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.definition.cpp" + }, + "2": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + } + } + }, + "scope_resolution_template_definition_inner_generated": { + "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<7>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))\\s*+(((?<!<)<(?!<)(?:(?:(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/)))|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<7>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)", + "captures": { + "1": { + "patterns": [ + { + "include": "#scope_resolution_template_definition_inner_generated" + } + ] + }, + "2": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.definition.cpp" + }, + "3": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "4": {}, + "5": { + "name": "entity.name.scope-resolution.template.definition.cpp" + }, + "6": { + "name": "meta.template.call.cpp", + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "7": {}, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "9": { + "name": "comment.block.cpp" + }, + "10": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "11": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.definition.cpp" + } + } + }, + "semicolon": { + "match": ";", + "name": "punctuation.terminator.statement.cpp" + }, + "simple_type": { + "match": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<12>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<12>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?", + "captures": { + "1": { + "name": "meta.qualified_type.cpp", + "patterns": [ + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" + }, + { + "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)", + "name": "storage.type.$0.cpp" + }, + { + "include": "#attributes_context" + }, + { + "include": "#storage_types" + }, + { + "include": "#number_literal" + }, + { + "include": "#string_context" + }, + { + "include": "#comma" + }, + { + "include": "#scope_resolution_inner_generated" + }, + { + "begin": "<", + "end": ">", + "beginCaptures": { + "0": { + "name": "punctuation.section.angle-brackets.begin.template.call.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.angle-brackets.end.template.call.cpp" + } + }, + "name": "meta.template.call.cpp", + "patterns": [ + { + "include": "#template_call_context" + } + ] + }, + { + "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", + "name": "entity.name.type.cpp" + } + ] + }, + "2": { + "patterns": [ + { + "include": "#attributes_context" + }, + { + "include": "#number_literal" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "4": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "5": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "6": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "7": { + "patterns": [ + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" + }, + { + "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", + "name": "entity.name.scope-resolution.type.cpp" + }, + { + "include": "#template_call_range" + } + ] + }, + "8": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "9": {}, + "10": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "11": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "12": {}, + "13": { + "patterns": [ + { + "match": "\\*", + "name": "storage.modifier.pointer.cpp" + }, + { + "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "name": "invalid.illegal.reference-type.cpp" + }, + { + "match": "\\&", + "name": "storage.modifier.reference.cpp" + } + ] + }, + "14": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "15": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "16": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "17": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + } + } + }, + "single_line_macro": { + "match": "^((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))#define.*(?<![\\\\])(?:\\n|$)", + "captures": { + "0": { + "patterns": [ + { + "include": "#macro" + }, + { + "include": "#comments" + } + ] + }, + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + } + } + }, + "sizeof_operator": { + "begin": "((?<!\\w)sizeof(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", + "end": "\\)", + "beginCaptures": { + "1": { + "name": "keyword.operator.functionlike.cpp keyword.operator.sizeof.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "punctuation.section.arguments.begin.bracket.round.operator.sizeof.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.operator.sizeof.cpp" + } + }, + "contentName": "meta.arguments.operator.sizeof", + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + "sizeof_variadic_operator": { + "begin": "(\\bsizeof\\.\\.\\.)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", + "end": "\\)", + "beginCaptures": { + "1": { + "name": "keyword.operator.functionlike.cpp keyword.operator.sizeof.variadic.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "punctuation.section.arguments.begin.bracket.round.operator.sizeof.variadic.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.operator.sizeof.variadic.cpp" + } + }, + "contentName": "meta.arguments.operator.sizeof.variadic", + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + "square_brackets": { + "name": "meta.bracket.square.access", + "begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))?(\\[)(?!\\])", + "beginCaptures": { + "1": { + "name": "variable.other.object" + }, + "2": { + "name": "punctuation.definition.begin.bracket.square" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.end.bracket.square" + } + }, + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + "standard_declares": { + "patterns": [ + { + "match": "((?<!\\w)struct(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))\\b(?!override\\W|override\\$|final\\W|final\\$)((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\S)(?![:{a-zA-Z])", + "captures": { + "1": { + "name": "storage.type.struct.declare.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "4": { + "name": "entity.name.type.struct.cpp" + }, + "5": { + "patterns": [ + { + "match": "\\*", + "name": "storage.modifier.pointer.cpp" + }, + { + "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "name": "invalid.illegal.reference-type.cpp" + }, + { + "match": "\\&", + "name": "storage.modifier.reference.cpp" + } + ] + }, + "6": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "7": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "8": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "9": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "10": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "11": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "12": { + "name": "variable.other.object.declare.cpp" + }, + "13": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "14": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + } + } + }, + { + "match": "((?<!\\w)union(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))\\b(?!override\\W|override\\$|final\\W|final\\$)((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\S)(?![:{a-zA-Z])", + "captures": { + "1": { + "name": "storage.type.union.declare.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "4": { + "name": "entity.name.type.union.cpp" + }, + "5": { + "patterns": [ + { + "match": "\\*", + "name": "storage.modifier.pointer.cpp" + }, + { + "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "name": "invalid.illegal.reference-type.cpp" + }, + { + "match": "\\&", + "name": "storage.modifier.reference.cpp" + } + ] + }, + "6": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "7": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "8": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "9": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "10": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "11": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "12": { + "name": "variable.other.object.declare.cpp" + }, + "13": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "14": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + } + } + }, + { + "match": "((?<!\\w)enum(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))\\b(?!override\\W|override\\$|final\\W|final\\$)((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\S)(?![:{a-zA-Z])", + "captures": { + "1": { + "name": "storage.type.enum.declare.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "4": { + "name": "entity.name.type.enum.cpp" + }, + "5": { + "patterns": [ + { + "match": "\\*", + "name": "storage.modifier.pointer.cpp" + }, + { + "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "name": "invalid.illegal.reference-type.cpp" + }, + { + "match": "\\&", + "name": "storage.modifier.reference.cpp" + } + ] + }, + "6": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "7": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "8": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "9": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "10": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "11": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "12": { + "name": "variable.other.object.declare.cpp" + }, + "13": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "14": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + } + } + }, + { + "match": "((?<!\\w)class(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))\\b(?!override\\W|override\\$|final\\W|final\\$)((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\S)(?![:{a-zA-Z])", + "captures": { + "1": { + "name": "storage.type.class.declare.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "4": { + "name": "entity.name.type.class.cpp" + }, + "5": { + "patterns": [ + { + "match": "\\*", + "name": "storage.modifier.pointer.cpp" + }, + { + "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "name": "invalid.illegal.reference-type.cpp" + }, + { + "match": "\\&", + "name": "storage.modifier.reference.cpp" + } + ] + }, + "6": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "7": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "8": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "9": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "10": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "11": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "12": { + "name": "variable.other.object.declare.cpp" + }, + "13": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "14": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + } + } + } + ] + }, + "static_assert": { + "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)static_assert|_Static_assert(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", + "end": "\\)", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "5": { + "name": "keyword.other.static_assert.cpp" + }, + "6": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "7": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "8": { + "name": "comment.block.cpp" + }, + "9": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "10": { + "name": "punctuation.section.arguments.begin.bracket.round.static_assert.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.static_assert.cpp" + } + }, + "patterns": [ + { + "begin": "(,)(?:\\s+)?(?=(?:L|u8|u|U(?:\\s+)?\\\")?)", + "end": "(?=\\))", + "beginCaptures": { + "1": { + "name": "punctuation.separator.delimiter.comma.cpp" + } + }, + "endCaptures": {}, + "name": "meta.static_assert.message.cpp", + "patterns": [ + { + "include": "#string_context" + } + ] + }, + { + "include": "#evaluation_context" + } + ] + }, + "std_space": { + "match": "(?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)", + "captures": { + "0": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "1": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + } + } + }, + "storage_specifiers": { + "match": "((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:(?:thread_local)|(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const))(?!\\w))", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "3": { + "name": "storage.modifier.specifier.$3.cpp" + } + } + }, + "storage_types": { + "patterns": [ + { + "include": "#storage_specifiers" + }, + { + "include": "#inline_builtin_storage_type" + }, + { + "include": "#decltype" + }, + { + "include": "#typename" + } + ] + }, + "string_context": { + "patterns": [ + { + "begin": "((?:u|u8|U|L)?)\"", + "end": "(\")(?:((?:[a-zA-Z]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)|(_(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))?", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.cpp" + }, + "1": { + "name": "meta.encoding.cpp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.cpp" + }, + "2": { + "name": "keyword.other.suffix.literal.user-defined.reserved.string.cpp" + }, + "3": { + "name": "keyword.other.suffix.literal.user-defined.string.cpp" + } + }, + "name": "string.quoted.double.cpp", + "patterns": [ + { + "match": "(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})", + "name": "constant.character.escape.cpp" + }, + { + "match": "\\\\['\"?\\\\abfnrtv]", + "name": "constant.character.escape.cpp" + }, + { + "match": "\\\\[0-7]{1,3}", + "name": "constant.character.escape.cpp" + }, + { + "match": "(?:(\\\\x0*[0-9a-fA-F]{2}(?![0-9a-fA-F]))|((?:\\\\x[0-9a-fA-F]*|\\\\x)))", + "captures": { + "1": { + "name": "constant.character.escape.cpp" + }, + "2": { + "name": "invalid.illegal.unknown-escape.cpp" + } + } + }, + { + "include": "#string_escapes_context_c" + } + ] + }, + { + "begin": "(?<![0-9A-Fa-f])((?:u|u8|U|L)?)'", + "end": "(')(?:((?:[a-zA-Z]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)|(_(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))?", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.cpp" + }, + "1": { + "name": "meta.encoding.cpp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.cpp" + }, + "2": { + "name": "keyword.other.suffix.literal.user-defined.reserved.character.cpp" + }, + "3": { + "name": "keyword.other.suffix.literal.user-defined.character.cpp" + } + }, + "name": "string.quoted.single.cpp", + "patterns": [ + { + "match": "(?:(\\\\x0*[0-9a-fA-F]{2}(?![0-9a-fA-F]))|((?:\\\\x[0-9a-fA-F]*|\\\\x)))", + "captures": { + "1": { + "name": "constant.character.escape.cpp" + }, + "2": { + "name": "invalid.illegal.unknown-escape.cpp" + } + } + }, + { + "include": "#string_escapes_context_c" + }, + { + "include": "#line_continuation_character" + } + ] + }, + { + "begin": "((?:[uUL]8?)?R)\\\"(?:(?:_r|re)|regex)\\(", + "end": "\\)(?:(?:_r|re)|regex)\\\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.cpp" + }, + "1": { + "name": "meta.encoding.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.cpp" + } + }, + "name": "string.quoted.double.raw.regex.cpp", + "patterns": [ + { + "include": "source.regexp.python" + } + ] + }, + { + "begin": "((?:[uUL]8?)?R)\\\"(?:glsl|GLSL)\\(", + "end": "\\)(?:glsl|GLSL)\\\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.cpp" + }, + "1": { + "name": "meta.encoding.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.cpp" + } + }, + "name": "meta.string.quoted.double.raw.glsl.cpp", + "patterns": [ + { + "include": "source.glsl" + } + ] + }, + { + "begin": "((?:[uUL]8?)?R)\\\"(?:[pP]?(?:sql|SQL)|d[dm]l)\\(", + "end": "\\)(?:[pP]?(?:sql|SQL)|d[dm]l)\\\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.cpp" + }, + "1": { + "name": "meta.encoding.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.cpp" + } + }, + "name": "meta.string.quoted.double.raw.sql.cpp", + "patterns": [ + { + "include": "source.sql" + } + ] + }, + { + "begin": "((?:u|u8|U|L)?R)\"(?:([^ ()\\\\\\t]{0,16})|([^ ()\\\\\\t]*))\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin" + }, + "1": { + "name": "meta.encoding" + }, + "3": { + "name": "invalid.illegal.delimiter-too-long" + } + }, + "end": "(\\)\\2(\\3)\")(?:((?:[a-zA-Z]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)|(_(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))?", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end" + }, + "2": { + "name": "invalid.illegal.delimiter-too-long" + }, + "3": { + "name": "keyword.other.suffix.literal.user-defined.reserved.string.cpp" + }, + "4": { + "name": "keyword.other.suffix.literal.user-defined.string.cpp" + } + }, + "name": "string.quoted.double.raw" + } + ] + }, + "string_escapes_context_c": { + "patterns": [ + { + "match": "(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3][0-7]{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )", + "name": "constant.character.escape" + }, + { + "match": "\\\\.", + "name": "invalid.illegal.unknown-escape" + }, + { + "match": "(?x) (?!%')(?!%\")%\n(\\d+\\$)?\t\t\t\t\t\t # field (argument #)\n[#0\\- +']*\t\t\t\t\t\t # flags\n[,;:_]?\t\t\t\t\t\t\t # separator character (AltiVec)\n((-?\\d+)|\\*(-?\\d+\\$)?)?\t\t # minimum field width\n(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?\t# precision\n(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n[diouxXDOUeEfFgGaACcSspn%]\t\t # conversion type", + "name": "constant.other.placeholder" + } + ] + }, + "struct_block": { + "begin": "((?<!\\w)struct(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(:(?!:)))?)", + "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))", + "beginCaptures": { + "0": { + "name": "meta.head.struct.cpp" + }, + "1": { + "name": "storage.type.$1.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "patterns": [ + { + "include": "#attributes_context" + }, + { + "include": "#number_literal" + } + ] + }, + "7": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "9": { + "name": "comment.block.cpp" + }, + "10": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "11": { + "patterns": [ + { + "match": "((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))", + "captures": { + "1": { + "name": "storage.type.modifier.final.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + }, + { + "match": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?=:|{|$)", + "captures": { + "1": { + "name": "entity.name.type.struct.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "storage.type.modifier.final.cpp" + }, + "7": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "9": { + "name": "comment.block.cpp" + }, + "10": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + }, + { + "match": "DLLEXPORT", + "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" + }, + { + "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", + "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp" + } + ] + }, + "12": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "13": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "14": { + "name": "comment.block.cpp" + }, + "15": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "16": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "17": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "18": { + "name": "comment.block.cpp" + }, + "19": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "20": { + "name": "punctuation.separator.colon.inheritance.cpp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.terminator.statement.cpp" + }, + "2": { + "name": "punctuation.terminator.statement.cpp" + } + }, + "name": "meta.block.struct.cpp", + "patterns": [ + { + "begin": "\\G ?", + "end": "(?:\\{|<%|\\?\\?<|(?=;))", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.struct.cpp" + } + }, + "name": "meta.head.struct.cpp", + "patterns": [ + { + "include": "#ever_present_context" + }, + { + "include": "#inheritance_context" + }, + { + "include": "#template_call_range" + } + ] + }, + { + "begin": "(?<=\\{|<%|\\?\\?<)", + "end": "\\}|%>|\\?\\?>", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.struct.cpp" + } + }, + "name": "meta.body.struct.cpp", + "patterns": [ + { + "include": "#function_pointer" + }, + { + "include": "#static_assert" + }, + { + "include": "#constructor_inline" + }, + { + "include": "#destructor_inline" + }, + { + "include": "$self" + } + ] + }, + { + "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", + "end": "[\\s]*(?=;)", + "beginCaptures": {}, + "endCaptures": {}, + "name": "meta.tail.struct.cpp", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + "struct_declare": { + "match": "((?<!\\w)struct(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))\\b(?!override\\W|override\\$|final\\W|final\\$)((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\S)(?![:{a-zA-Z])", + "captures": { + "1": { + "name": "storage.type.struct.declare.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "4": { + "name": "entity.name.type.struct.cpp" + }, + "5": { + "patterns": [ + { + "match": "\\*", + "name": "storage.modifier.pointer.cpp" + }, + { + "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "name": "invalid.illegal.reference-type.cpp" + }, + { + "match": "\\&", + "name": "storage.modifier.reference.cpp" + } + ] + }, + "6": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "7": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "8": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "9": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "10": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "11": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "12": { + "name": "variable.other.object.declare.cpp" + }, + "13": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "14": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + } + } + }, + "switch_conditional_parentheses": { + "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", + "end": "\\)", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "5": { + "name": "punctuation.section.parens.begin.bracket.round.conditional.switch.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.parens.end.bracket.round.conditional.switch.cpp" + } + }, + "name": "meta.conditional.switch.cpp", + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + "switch_statement": { + "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)switch(?!\\w))", + "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))", + "beginCaptures": { + "0": { + "name": "meta.head.switch.cpp" + }, + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "5": { + "name": "keyword.control.switch.cpp" + } + }, + "endCaptures": {}, + "name": "meta.block.switch.cpp", + "patterns": [ + { + "begin": "\\G ?", + "end": "(?:\\{|<%|\\?\\?<|(?=;))", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.switch.cpp" + } + }, + "name": "meta.head.switch.cpp", + "patterns": [ + { + "include": "#switch_conditional_parentheses" + }, + { + "include": "$self" + } + ] + }, + { + "begin": "(?<=\\{|<%|\\?\\?<)", + "end": "\\}|%>|\\?\\?>", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.switch.cpp" + } + }, + "name": "meta.body.switch.cpp", + "patterns": [ + { + "include": "#default_statement" + }, + { + "include": "#case_statement" + }, + { + "include": "$self" + } + ] + }, + { + "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", + "end": "[\\s]*(?=;)", + "beginCaptures": {}, + "endCaptures": {}, + "name": "meta.tail.switch.cpp", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + "template_argument_defaulted": { + "match": "(?<=<|,)(?:\\s+)?((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)\\s+((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:\\s+)?(\\=)", + "captures": { + "1": { + "name": "storage.type.template.argument.$1.cpp" + }, + "2": { + "name": "entity.name.type.template.cpp" + }, + "3": { + "name": "keyword.operator.assignment.cpp" + } + } + }, + "template_call_context": { + "patterns": [ + { + "include": "#ever_present_context" + }, + { + "include": "#template_call_range" + }, + { + "include": "#storage_types" + }, + { + "include": "#language_constants" + }, + { + "include": "#scope_resolution_template_call_inner_generated" + }, + { + "include": "#operators" + }, + { + "include": "#number_literal" + }, + { + "include": "#string_context" + }, + { + "include": "#comma_in_template_argument" + }, + { + "include": "#qualified_type" + } + ] + }, + "template_call_innards": { + "match": "((?<!<)<(?!<)(?:(?:(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/)))|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<1>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+", + "captures": { + "0": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "name": "meta.template.call.cpp" + }, + "template_call_range": { + "begin": "<", + "end": ">", + "beginCaptures": { + "0": { + "name": "punctuation.section.angle-brackets.begin.template.call.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.angle-brackets.end.template.call.cpp" + } + }, + "name": "meta.template.call.cpp", + "patterns": [ + { + "include": "#template_call_context" + } + ] + }, + "template_definition": { + "begin": "(?<!\\w)(template)(?:\\s+)?(<)", + "end": ">", + "beginCaptures": { + "1": { + "name": "storage.type.template.cpp" + }, + "2": { + "name": "punctuation.section.angle-brackets.begin.template.definition.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.angle-brackets.end.template.definition.cpp" + } + }, + "name": "meta.template.definition.cpp", + "patterns": [ + { + "begin": "(?<=\\w)(?:\\s+)?<", + "end": ">", + "beginCaptures": { + "0": { + "name": "punctuation.section.angle-brackets.begin.template.call.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.angle-brackets.end.template.call.cpp" + } + }, + "patterns": [ + { + "include": "#template_call_context" + } + ] + }, + { + "include": "#template_definition_context" + } + ] + }, + "template_definition_argument": { + "match": "((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\s+)+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))|((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:\\s+)?(\\.\\.\\.)(?:\\s+)?((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))|(?<!\\w)(template)(?:\\s+)?(<)(?:\\s+)?((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:\\s+)?(>)(?:\\s+)?(class|typename)(?:\\s+((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))?)(?:\\s+)?(?:(\\=)(?:\\s+)?(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?(?:(,)|(?=>|$))", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "3": { + "name": "storage.type.template.argument.$3.cpp" + }, + "4": { + "patterns": [ + { + "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", + "name": "storage.type.template.argument.$0.cpp" + } + ] + }, + "5": { + "name": "entity.name.type.template.cpp" + }, + "6": { + "name": "storage.type.template.argument.$6.cpp" + }, + "7": { + "name": "punctuation.vararg-ellipses.template.definition.cpp" + }, + "8": { + "name": "entity.name.type.template.cpp" + }, + "9": { + "name": "storage.type.template.cpp" + }, + "10": { + "name": "punctuation.section.angle-brackets.begin.template.definition.cpp" + }, + "11": { + "name": "storage.type.template.argument.$11.cpp" + }, + "12": { + "name": "entity.name.type.template.cpp" + }, + "13": { + "name": "punctuation.section.angle-brackets.end.template.definition.cpp" + }, + "14": { + "name": "storage.type.template.argument.$14.cpp" + }, + "15": { + "name": "entity.name.type.template.cpp" + }, + "16": { + "name": "keyword.operator.assignment.cpp" + }, + "17": { + "name": "punctuation.separator.delimiter.comma.template.argument.cpp" + } + } + }, + "template_definition_context": { + "patterns": [ + { + "include": "#scope_resolution_template_definition_inner_generated" + }, + { + "include": "#template_definition_argument" + }, + { + "include": "#template_argument_defaulted" + }, + { + "include": "#template_call_innards" + }, + { + "include": "#evaluation_context" + } + ] + }, + "template_explicit_instantiation": { + "match": "(?<!\\w)(?:(extern)\\s+)?(template)\\s+", + "captures": { + "1": { + "name": "storage.modifier.specifier.extern.cpp" + }, + "2": { + "name": "storage.type.template.cpp" + } + }, + "name": "meta.template.explicit-instantiation.cpp" + }, + "template_isolated_definition": { + "match": "(?<!\\w)(template)(?:\\s+)?(<)(.*)(>)(?:\\s+)?$", + "captures": { + "1": { + "name": "storage.type.template.cpp" + }, + "2": { + "name": "punctuation.section.angle-brackets.begin.template.definition.cpp" + }, + "3": { + "name": "meta.template.definition.cpp", + "patterns": [ + { + "include": "#template_definition_context" + } + ] + }, + "4": { + "name": "punctuation.section.angle-brackets.end.template.definition.cpp" + } + } + }, + "ternary_operator": { + "begin": "\\?", + "end": ":", + "beginCaptures": { + "0": { + "name": "keyword.operator.ternary.cpp" + } + }, + "endCaptures": { + "0": { + "name": "keyword.operator.ternary.cpp" + } + }, + "patterns": [ + { + "include": "#ever_present_context" + }, + { + "include": "#string_context" + }, + { + "include": "#number_literal" + }, + { + "include": "#method_access" + }, + { + "include": "#member_access" + }, + { + "include": "#predefined_macros" + }, + { + "include": "#operators" + }, + { + "include": "#memory_operators" + }, + { + "include": "#wordlike_operators" + }, + { + "include": "#type_casting_operators" + }, + { + "include": "#control_flow_keywords" + }, + { + "include": "#exception_keywords" + }, + { + "include": "#the_this_keyword" + }, + { + "include": "#language_constants" + }, + { + "include": "#builtin_storage_type_initilizer" + }, + { + "include": "#qualifiers_and_specifiers_post_parameters" + }, + { + "include": "#functional_specifiers_pre_parameters" + }, + { + "include": "#storage_types" + }, + { + "include": "#lambdas" + }, + { + "include": "#attributes_context" + }, + { + "include": "#parentheses" + }, + { + "include": "#function_call" + }, + { + "include": "#scope_resolution_inner_generated" + }, + { + "include": "#square_brackets" + }, + { + "include": "#semicolon" + }, + { + "include": "#comma" + } + ], + "applyEndPatternLast": 1 + }, + "the_this_keyword": { + "match": "((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)this(?!\\w))", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "3": { + "name": "variable.language.this.cpp" + } + } + }, + "type_alias": { + "match": "(using)\\s+(?!namespace)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:\\s+)?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?(?:\\s+)?(\\=)(?:\\s+)?((?:typename)?)(?:\\s+)?((?:(?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)(?<!\\w)(?:(?:thread_local)|(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const))(?!\\w)\\s+)+)?(?:(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<19>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<19>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))|(.*(?<!;)))(?:(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?:(\\[)(\\w*)(\\])(?:\\s+)?)?(?:\\s+)?(?:(;)|\\n)", + "captures": { + "1": { + "name": "keyword.other.using.directive.cpp" + }, + "2": { + "name": "entity.name.type.cpp" + }, + "3": { + "patterns": [ + { + "include": "#attributes_context" + }, + { + "include": "#number_literal" + } + ] + }, + "4": { + "name": "keyword.operator.assignment.cpp" + }, + "5": { + "name": "keyword.other.typename.cpp" + }, + "6": { + "patterns": [ + { + "include": "#storage_specifiers" + } + ] + }, + "7": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "8": { + "name": "meta.qualified_type.cpp", + "patterns": [ + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" + }, + { + "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)", + "name": "storage.type.$0.cpp" + }, + { + "include": "#attributes_context" + }, + { + "include": "#storage_types" + }, + { + "include": "#number_literal" + }, + { + "include": "#string_context" + }, + { + "include": "#comma" + }, + { + "include": "#scope_resolution_inner_generated" + }, + { + "begin": "<", + "end": ">", + "beginCaptures": { + "0": { + "name": "punctuation.section.angle-brackets.begin.template.call.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.angle-brackets.end.template.call.cpp" + } + }, + "name": "meta.template.call.cpp", + "patterns": [ + { + "include": "#template_call_context" + } + ] + }, + { + "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", + "name": "entity.name.type.cpp" + } + ] + }, + "9": { + "patterns": [ + { + "include": "#attributes_context" + }, + { + "include": "#number_literal" + } + ] + }, + "10": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "11": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "12": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "13": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "14": { + "patterns": [ + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" + }, + { + "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", + "name": "entity.name.scope-resolution.type.cpp" + }, + { + "include": "#template_call_range" + } + ] + }, + "15": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "17": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "18": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "20": { + "name": "meta.declaration.type.alias.value.unknown.cpp", + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + "21": { + "patterns": [ + { + "match": "\\*", + "name": "storage.modifier.pointer.cpp" + }, + { + "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "name": "invalid.illegal.reference-type.cpp" + }, + { + "match": "\\&", + "name": "storage.modifier.reference.cpp" + } + ] + }, + "22": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "23": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "24": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "25": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "26": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "27": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "28": { + "name": "punctuation.definition.begin.bracket.square.cpp" + }, + "29": { + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + "30": { + "name": "punctuation.definition.end.bracket.square.cpp" + }, + "31": { + "name": "punctuation.terminator.statement.cpp" + } + }, + "name": "meta.declaration.type.alias.cpp" + }, + "type_casting_operators": { + "match": "((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:(?:reinterpret_cast)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast))(?!\\w))", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "3": { + "name": "keyword.operator.wordlike.cpp keyword.operator.cast.$3.cpp" + } + } + }, + "typedef_class": { + "begin": "((?<!\\w)typedef(?!\\w))(?:\\s+)?(?=(?<!\\w)class(?!\\w))", + "end": "(?<=;)", + "beginCaptures": { + "1": { + "name": "keyword.other.typedef.cpp" + } + }, + "endCaptures": {}, + "patterns": [ + { + "begin": "((?<!\\w)class(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(:(?!:)))?)", + "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))", + "beginCaptures": { + "0": { + "name": "meta.head.class.cpp" + }, + "1": { + "name": "storage.type.$1.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "patterns": [ + { + "include": "#attributes_context" + }, + { + "include": "#number_literal" + } + ] + }, + "7": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "9": { + "name": "comment.block.cpp" + }, + "10": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "11": { + "patterns": [ + { + "match": "((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))", + "captures": { + "1": { + "name": "storage.type.modifier.final.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + }, + { + "match": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?=:|{|$)", + "captures": { + "1": { + "name": "entity.name.type.class.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "storage.type.modifier.final.cpp" + }, + "7": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "9": { + "name": "comment.block.cpp" + }, + "10": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + }, + { + "match": "DLLEXPORT", + "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" + }, + { + "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", + "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp" + } + ] + }, + "12": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "13": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "14": { + "name": "comment.block.cpp" + }, + "15": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "16": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "17": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "18": { + "name": "comment.block.cpp" + }, + "19": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "20": { + "name": "punctuation.separator.colon.inheritance.cpp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.terminator.statement.cpp" + }, + "2": { + "name": "punctuation.terminator.statement.cpp" + } + }, + "name": "meta.block.class.cpp", + "patterns": [ + { + "begin": "\\G ?", + "end": "(?:\\{|<%|\\?\\?<|(?=;))", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.class.cpp" + } + }, + "name": "meta.head.class.cpp", + "patterns": [ + { + "include": "#ever_present_context" + }, + { + "include": "#inheritance_context" + }, + { + "include": "#template_call_range" + } + ] + }, + { + "begin": "(?<=\\{|<%|\\?\\?<)", + "end": "\\}|%>|\\?\\?>", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.class.cpp" + } + }, + "name": "meta.body.class.cpp", + "patterns": [ + { + "include": "#function_pointer" + }, + { + "include": "#static_assert" + }, + { + "include": "#constructor_inline" + }, + { + "include": "#destructor_inline" + }, + { + "include": "$self" + } + ] + }, + { + "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", + "end": "[\\s]*(?=;)", + "beginCaptures": {}, + "endCaptures": {}, + "name": "meta.tail.class.cpp", + "patterns": [ + { + "match": "(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))", + "captures": { + "1": { + "patterns": [ + { + "match": "\\*", + "name": "storage.modifier.pointer.cpp" + }, + { + "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "name": "invalid.illegal.reference-type.cpp" + }, + { + "match": "\\&", + "name": "storage.modifier.reference.cpp" + } + ] + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "7": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "8": { + "name": "comment.block.cpp" + }, + "9": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "10": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "11": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "12": { + "name": "comment.block.cpp" + }, + "13": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "14": { + "name": "entity.name.type.alias.cpp" + } + } + }, + { + "match": "," + } + ] + } + ] + } + ] + }, + "typedef_function_pointer": { + "begin": "((?<!\\w)typedef(?!\\w))(?:\\s+)?(?=.*\\(\\*\\s*(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\s*\\))", + "end": "(?<=;)", + "beginCaptures": { + "1": { + "name": "keyword.other.typedef.cpp" + } + }, + "endCaptures": {}, + "patterns": [ + { + "begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<18>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<18>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()(\\*)(?:\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:\\s+)?(?:(\\[)(\\w*)(\\])(?:\\s+)?)*(\\))(?:\\s+)?(\\()", + "end": "(\\))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=[{=,);>]|\\n)(?!\\()", + "beginCaptures": { + "1": { + "name": "meta.qualified_type.cpp", + "patterns": [ + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" + }, + { + "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)", + "name": "storage.type.$0.cpp" + }, + { + "include": "#attributes_context" + }, + { + "include": "#storage_types" + }, + { + "include": "#number_literal" + }, + { + "include": "#string_context" + }, + { + "include": "#comma" + }, + { + "include": "#scope_resolution_inner_generated" + }, + { + "begin": "<", + "end": ">", + "beginCaptures": { + "0": { + "name": "punctuation.section.angle-brackets.begin.template.call.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.angle-brackets.end.template.call.cpp" + } + }, + "name": "meta.template.call.cpp", + "patterns": [ + { + "include": "#template_call_context" + } + ] + }, + { + "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", + "name": "entity.name.type.cpp" + } + ] + }, + "2": { + "patterns": [ + { + "include": "#attributes_context" + }, + { + "include": "#number_literal" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "5": { + "name": "comment.block.cpp" + }, + "6": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "7": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "9": { + "name": "comment.block.cpp" + }, + "10": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "11": { + "patterns": [ + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" + }, + { + "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", + "name": "entity.name.scope-resolution.type.cpp" + }, + { + "include": "#template_call_range" + } + ] + }, + "12": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "13": {}, + "14": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "15": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "16": { + "name": "comment.block.cpp" + }, + "17": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "18": {}, + "19": { + "patterns": [ + { + "match": "\\*", + "name": "storage.modifier.pointer.cpp" + }, + { + "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "name": "invalid.illegal.reference-type.cpp" + }, + { + "match": "\\&", + "name": "storage.modifier.reference.cpp" + } + ] + }, + "20": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "21": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "22": { + "name": "comment.block.cpp" + }, + "23": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "24": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "25": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "26": { + "name": "comment.block.cpp" + }, + "27": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "28": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "29": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "30": { + "name": "comment.block.cpp" + }, + "31": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "32": { + "name": "punctuation.section.parens.begin.bracket.round.function.pointer.cpp" + }, + "33": { + "name": "punctuation.definition.function.pointer.dereference.cpp" + }, + "34": { + "name": "entity.name.type.alias.cpp entity.name.type.pointer.function.cpp" + }, + "35": { + "name": "punctuation.definition.begin.bracket.square.cpp" + }, + "36": { + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + "37": { + "name": "punctuation.definition.end.bracket.square.cpp" + }, + "38": { + "name": "punctuation.section.parens.end.bracket.round.function.pointer.cpp" + }, + "39": { + "name": "punctuation.section.parameters.begin.bracket.round.function.pointer.cpp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.section.parameters.end.bracket.round.function.pointer.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "patterns": [ + { + "include": "#function_parameter_context" + } + ] + } + ] + }, + "typedef_struct": { + "begin": "((?<!\\w)typedef(?!\\w))(?:\\s+)?(?=(?<!\\w)struct(?!\\w))", + "end": "(?<=;)", + "beginCaptures": { + "1": { + "name": "keyword.other.typedef.cpp" + } + }, + "endCaptures": {}, + "patterns": [ + { + "begin": "((?<!\\w)struct(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(:(?!:)))?)", + "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))", + "beginCaptures": { + "0": { + "name": "meta.head.struct.cpp" + }, + "1": { + "name": "storage.type.$1.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "patterns": [ + { + "include": "#attributes_context" + }, + { + "include": "#number_literal" + } + ] + }, + "7": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "9": { + "name": "comment.block.cpp" + }, + "10": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "11": { + "patterns": [ + { + "match": "((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))", + "captures": { + "1": { + "name": "storage.type.modifier.final.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + }, + { + "match": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?=:|{|$)", + "captures": { + "1": { + "name": "entity.name.type.struct.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "storage.type.modifier.final.cpp" + }, + "7": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "9": { + "name": "comment.block.cpp" + }, + "10": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + }, + { + "match": "DLLEXPORT", + "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" + }, + { + "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", + "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp" + } + ] + }, + "12": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "13": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "14": { + "name": "comment.block.cpp" + }, + "15": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "16": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "17": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "18": { + "name": "comment.block.cpp" + }, + "19": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "20": { + "name": "punctuation.separator.colon.inheritance.cpp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.terminator.statement.cpp" + }, + "2": { + "name": "punctuation.terminator.statement.cpp" + } + }, + "name": "meta.block.struct.cpp", + "patterns": [ + { + "begin": "\\G ?", + "end": "(?:\\{|<%|\\?\\?<|(?=;))", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.struct.cpp" + } + }, + "name": "meta.head.struct.cpp", + "patterns": [ + { + "include": "#ever_present_context" + }, + { + "include": "#inheritance_context" + }, + { + "include": "#template_call_range" + } + ] + }, + { + "begin": "(?<=\\{|<%|\\?\\?<)", + "end": "\\}|%>|\\?\\?>", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.struct.cpp" + } + }, + "name": "meta.body.struct.cpp", + "patterns": [ + { + "include": "#function_pointer" + }, + { + "include": "#static_assert" + }, + { + "include": "#constructor_inline" + }, + { + "include": "#destructor_inline" + }, + { + "include": "$self" + } + ] + }, + { + "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", + "end": "[\\s]*(?=;)", + "beginCaptures": {}, + "endCaptures": {}, + "name": "meta.tail.struct.cpp", + "patterns": [ + { + "match": "(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))", + "captures": { + "1": { + "patterns": [ + { + "match": "\\*", + "name": "storage.modifier.pointer.cpp" + }, + { + "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "name": "invalid.illegal.reference-type.cpp" + }, + { + "match": "\\&", + "name": "storage.modifier.reference.cpp" + } + ] + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "7": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "8": { + "name": "comment.block.cpp" + }, + "9": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "10": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "11": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "12": { + "name": "comment.block.cpp" + }, + "13": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "14": { + "name": "entity.name.type.alias.cpp" + } + } + }, + { + "match": "," + } + ] + } + ] + } + ] + }, + "typedef_union": { + "begin": "((?<!\\w)typedef(?!\\w))(?:\\s+)?(?=(?<!\\w)union(?!\\w))", + "end": "(?<=;)", + "beginCaptures": { + "1": { + "name": "keyword.other.typedef.cpp" + } + }, + "endCaptures": {}, + "patterns": [ + { + "begin": "((?<!\\w)union(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(:(?!:)))?)", + "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))", + "beginCaptures": { + "0": { + "name": "meta.head.union.cpp" + }, + "1": { + "name": "storage.type.$1.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "patterns": [ + { + "include": "#attributes_context" + }, + { + "include": "#number_literal" + } + ] + }, + "7": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "9": { + "name": "comment.block.cpp" + }, + "10": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "11": { + "patterns": [ + { + "match": "((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))", + "captures": { + "1": { + "name": "storage.type.modifier.final.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + }, + { + "match": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?=:|{|$)", + "captures": { + "1": { + "name": "entity.name.type.union.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "storage.type.modifier.final.cpp" + }, + "7": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "9": { + "name": "comment.block.cpp" + }, + "10": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + }, + { + "match": "DLLEXPORT", + "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" + }, + { + "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", + "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp" + } + ] + }, + "12": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "13": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "14": { + "name": "comment.block.cpp" + }, + "15": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "16": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "17": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "18": { + "name": "comment.block.cpp" + }, + "19": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "20": { + "name": "punctuation.separator.colon.inheritance.cpp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.terminator.statement.cpp" + }, + "2": { + "name": "punctuation.terminator.statement.cpp" + } + }, + "name": "meta.block.union.cpp", + "patterns": [ + { + "begin": "\\G ?", + "end": "(?:\\{|<%|\\?\\?<|(?=;))", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.union.cpp" + } + }, + "name": "meta.head.union.cpp", + "patterns": [ + { + "include": "#ever_present_context" + }, + { + "include": "#inheritance_context" + }, + { + "include": "#template_call_range" + } + ] + }, + { + "begin": "(?<=\\{|<%|\\?\\?<)", + "end": "\\}|%>|\\?\\?>", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.union.cpp" + } + }, + "name": "meta.body.union.cpp", + "patterns": [ + { + "include": "#function_pointer" + }, + { + "include": "#static_assert" + }, + { + "include": "#constructor_inline" + }, + { + "include": "#destructor_inline" + }, + { + "include": "$self" + } + ] + }, + { + "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", + "end": "[\\s]*(?=;)", + "beginCaptures": {}, + "endCaptures": {}, + "name": "meta.tail.union.cpp", + "patterns": [ + { + "match": "(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))", + "captures": { + "1": { + "patterns": [ + { + "match": "\\*", + "name": "storage.modifier.pointer.cpp" + }, + { + "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "name": "invalid.illegal.reference-type.cpp" + }, + { + "match": "\\&", + "name": "storage.modifier.reference.cpp" + } + ] + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "7": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "8": { + "name": "comment.block.cpp" + }, + "9": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "10": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "11": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "12": { + "name": "comment.block.cpp" + }, + "13": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "14": { + "name": "entity.name.type.alias.cpp" + } + } + }, + { + "match": "," + } + ] + } + ] + } + ] + }, + "typeid_operator": { + "begin": "((?<!\\w)typeid(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()", + "end": "\\)", + "beginCaptures": { + "1": { + "name": "keyword.operator.functionlike.cpp keyword.operator.typeid.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "punctuation.section.arguments.begin.bracket.round.operator.typeid.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.operator.typeid.cpp" + } + }, + "contentName": "meta.arguments.operator.typeid", + "patterns": [ + { + "include": "#evaluation_context" + } + ] + }, + "typename": { + "match": "(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?<!\\w)typename(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<17>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<17>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))", + "captures": { + "1": { + "name": "storage.modifier.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "4": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "5": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "6": { + "name": "meta.qualified_type.cpp", + "patterns": [ + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" + }, + { + "match": "(?<!\\w)(?:(?:struct)|(?:class)|(?:union)|(?:enum))(?!\\w)", + "name": "storage.type.$0.cpp" + }, + { + "include": "#attributes_context" + }, + { + "include": "#storage_types" + }, + { + "include": "#number_literal" + }, + { + "include": "#string_context" + }, + { + "include": "#comma" + }, + { + "include": "#scope_resolution_inner_generated" + }, + { + "begin": "<", + "end": ">", + "beginCaptures": { + "0": { + "name": "punctuation.section.angle-brackets.begin.template.call.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.angle-brackets.end.template.call.cpp" + } + }, + "name": "meta.template.call.cpp", + "patterns": [ + { + "include": "#template_call_context" + } + ] + }, + { + "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", + "name": "entity.name.type.cpp" + } + ] + }, + "7": { + "patterns": [ + { + "include": "#attributes_context" + }, + { + "include": "#number_literal" + } + ] + }, + "8": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "9": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "10": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "11": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "12": { + "patterns": [ + { + "match": "::", + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" + }, + { + "match": "(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)", + "name": "entity.name.scope-resolution.type.cpp" + }, + { + "include": "#template_call_range" + } + ] + }, + "13": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "14": {}, + "15": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "16": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "17": {} + } + }, + "undef": { + "match": "(^((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(#)(?:\\s+)?undef\\b)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))", + "captures": { + "1": { + "name": "keyword.control.directive.undef.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "4": { + "name": "punctuation.definition.directive.cpp" + }, + "5": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "6": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "7": { + "name": "entity.name.function.preprocessor.cpp" + } + }, + "name": "meta.preprocessor.undef.cpp" + }, + "union_block": { + "begin": "((?<!\\w)union(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(:(?!:)))?)", + "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))", + "beginCaptures": { + "0": { + "name": "meta.head.union.cpp" + }, + "1": { + "name": "storage.type.$1.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "patterns": [ + { + "include": "#attributes_context" + }, + { + "include": "#number_literal" + } + ] + }, + "7": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "9": { + "name": "comment.block.cpp" + }, + "10": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "11": { + "patterns": [ + { + "match": "((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))", + "captures": { + "1": { + "name": "storage.type.modifier.final.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + }, + { + "match": "((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:((?<!\\w)final(?!\\w))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?=:|{|$)", + "captures": { + "1": { + "name": "entity.name.type.union.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "4": { + "name": "comment.block.cpp" + }, + "5": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "6": { + "name": "storage.type.modifier.final.cpp" + }, + "7": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "8": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "9": { + "name": "comment.block.cpp" + }, + "10": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + }, + { + "match": "DLLEXPORT", + "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" + }, + { + "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", + "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp" + } + ] + }, + "12": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "13": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "14": { + "name": "comment.block.cpp" + }, + "15": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "16": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "17": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "18": { + "name": "comment.block.cpp" + }, + "19": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + }, + "20": { + "name": "punctuation.separator.colon.inheritance.cpp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.terminator.statement.cpp" + }, + "2": { + "name": "punctuation.terminator.statement.cpp" + } + }, + "name": "meta.block.union.cpp", + "patterns": [ + { + "begin": "\\G ?", + "end": "(?:\\{|<%|\\?\\?<|(?=;))", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.union.cpp" + } + }, + "name": "meta.head.union.cpp", + "patterns": [ + { + "include": "#ever_present_context" + }, + { + "include": "#inheritance_context" + }, + { + "include": "#template_call_range" + } + ] + }, + { + "begin": "(?<=\\{|<%|\\?\\?<)", + "end": "\\}|%>|\\?\\?>", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.union.cpp" + } + }, + "name": "meta.body.union.cpp", + "patterns": [ + { + "include": "#function_pointer" + }, + { + "include": "#static_assert" + }, + { + "include": "#constructor_inline" + }, + { + "include": "#destructor_inline" + }, + { + "include": "$self" + } + ] + }, + { + "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", + "end": "[\\s]*(?=;)", + "beginCaptures": {}, + "endCaptures": {}, + "name": "meta.tail.union.cpp", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + "union_declare": { + "match": "((?<!\\w)union(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))\\b(?!override\\W|override\\$|final\\W|final\\$)((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\S)(?![:{a-zA-Z])", + "captures": { + "1": { + "name": "storage.type.union.declare.cpp" + }, + "2": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "3": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "4": { + "name": "entity.name.type.union.cpp" + }, + "5": { + "patterns": [ + { + "match": "\\*", + "name": "storage.modifier.pointer.cpp" + }, + { + "match": "(?:\\&((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))){2,}\\&", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "2": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "3": { + "name": "comment.block.cpp" + }, + "4": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + }, + "name": "invalid.illegal.reference-type.cpp" + }, + { + "match": "\\&", + "name": "storage.modifier.reference.cpp" + } + ] + }, + "6": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "7": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "8": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "9": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "10": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "11": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + }, + "12": { + "name": "variable.other.object.declare.cpp" + }, + "13": { + "patterns": [ + { + "include": "#inline_comment" + } + ] + }, + "14": { + "patterns": [ + { + "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+", + "captures": { + "1": { + "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" + }, + "2": { + "name": "comment.block.cpp" + }, + "3": { + "name": "comment.block.cpp punctuation.definition.comment.end.cpp" + } + } + } + ] + } + } + }, + "using_name": { + "match": "(using)\\s+(?!namespace\\b)", + "captures": { + "1": { + "name": "keyword.other.using.directive.cpp" + } + } + }, + "using_namespace": { + "begin": "(?<!\\w)(using)\\s+(namespace)\\s+((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w)\\s*+(((?<!<)<(?!<)(?:(?:\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/)|(?:\"(?:[^\"]*|\\\\\")\")|(?:'(?:[^']*|\\\\')')|\\g<6>|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)?((?<!\\w)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?!\\w))(?=;|\\n)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.other.using.directive.cpp" + }, + "2": { + "name": "keyword.other.namespace.directive.cpp storage.type.namespace.directive.cpp" + }, + "3": { + "patterns": [ + { + "include": "#scope_resolution_namespace_using_inner_generated" + } + ] + }, + "4": { + "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp" + }, + "5": { + "patterns": [ + { + "include": "#template_call_range" + } + ] + }, + "6": {}, + "7": { + "name": "entity.name.namespace.cpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.statement.cpp" + } + }, + "name": "meta.using-namespace.cpp" + }, + "vararg_ellipses": { + "match": "(?<!\\.)\\.\\.\\.(?!\\.)", + "name": "punctuation.vararg-ellipses.cpp" + }, + "wordlike_operators": { + "patterns": [ + { + "match": "(?<!\\w)(?:(?:noexcept)|(?:xor_eq)|(?:and_eq)|(?:delete)|(?:not_eq)|(?:bitand)|(?:bitor)|(?:compl)|(?:or_eq)|(?:not)|(?:xor)|(?:new)|(?:and)|(?:or))(?!\\w)", + "name": "keyword.operator.wordlike.cpp keyword.operator.$0.cpp" + } + ] + } + } +} diff --git a/docs/shiki/languages/crystal.tmLanguage.json b/docs/shiki/languages/crystal.tmLanguage.json new file mode 100644 index 00000000..c8279045 --- /dev/null +++ b/docs/shiki/languages/crystal.tmLanguage.json @@ -0,0 +1,1868 @@ +{ + "information_for_contributors": [ + "This file is based on https://github.com/Microsoft/vscode/blob/master/extensions/ruby/syntaxes/ruby.tmLanguage.json" + ], + "version": "https://github.com/Microsoft/vscode/blob/3f1f36333d3453f67a36b6bfb1206e9159e9c4f0/extensions/ruby/syntaxes/ruby.tmLanguage.json", + "name": "crystal", + "scopeName": "source.crystal", + "fileTypes": ["cr"], + "firstLineMatch": "^#!/.*\\bcrystal", + "foldingStartMarker": "(?x)^(\\s*+(annotation|module|class|struct|union|enum|def(?!.*\\bend\\s*$)|unless|if|case|begin|for|while|until|^=begin|(\"(\\\\.|[^\"])*+\"|'(\\\\.|[^'])*+'|[^#\"'])*(\\s(do|begin|case)|(?<!\\$)[-+=&|*/~%^<>~]\\s*+(if|unless)))\\b(?![^;]*+;.*?\\bend\\b)|(\"(\\\\.|[^\"])*+\"|'(\\\\.|[^'])*+'|[^#\"'])*(\\{(?![^}]*+\\})|\\[(?![^\\]]*+\\]))).*$|[#].*?\\(fold\\)\\s*+$", + "foldingStopMarker": "(?x)((^|;)\\s*+end\\s*+([#].*)?$|(^|;)\\s*+end\\..*$|^\\s*+[}\\]] ,?\\s*+([#].*)?$|[#].*?\\(end\\)\\s*+$|^=end)", + "keyEquivalent": "^~R", + "patterns": [ + { + "captures": { + "1": { + "name": "keyword.control.class.crystal" + }, + "2": { + "name": "keyword.control.class.crystal" + }, + "3": { + "name": "entity.name.type.class.crystal" + }, + "5": { + "name": "punctuation.separator.crystal" + }, + "6": { + "name": "support.class.other.type-param.crystal" + }, + "7": { + "name": "entity.other.inherited-class.crystal" + }, + "8": { + "name": "punctuation.separator.crystal" + }, + "9": { + "name": "punctuation.separator.crystal" + }, + "10": { + "name": "support.class.other.type-param.crystal" + }, + "11": { + "name": "punctuation.definition.variable.crystal" + } + }, + "match": "(?x)^\\s*(abstract)?\\s*(class|struct|union|annotation|enum)\\s+(([.A-Z_:\\x{80}-\\x{10FFFF}][.\\w:\\x{80}-\\x{10FFFF}]*(\\(([,\\s.a-zA-Z0-9_:\\x{80}-\\x{10FFFF}]+)\\))?(\\s*(<)\\s*[.:A-Z\\x{80}-\\x{10FFFF}][.:\\w\\x{80}-\\x{10FFFF}]*(\\(([.a-zA-Z0-9_:]+\\s,)\\))?)?)|((<<)\\s*[.A-Z0-9_:\\x{80}-\\x{10FFFF}]+))", + "name": "meta.class.crystal" + }, + { + "captures": { + "1": { + "name": "keyword.control.module.crystal" + }, + "2": { + "name": "entity.name.type.module.crystal" + }, + "3": { + "name": "entity.other.inherited-class.module.first.crystal" + }, + "4": { + "name": "punctuation.separator.inheritance.crystal" + }, + "5": { + "name": "entity.other.inherited-class.module.second.crystal" + }, + "6": { + "name": "punctuation.separator.inheritance.crystal" + }, + "7": { + "name": "entity.other.inherited-class.module.third.crystal" + }, + "8": { + "name": "punctuation.separator.inheritance.crystal" + } + }, + "match": "^\\s*(module)\\s+(([A-Z\\x{80}-\\x{10FFFF}][\\w\\x{80}-\\x{10FFFF}]*(::))?([A-Z\\x{80}-\\x{10FFFF}][\\w\\x{80}-\\x{10FFFF}]*(::))?([A-Z\\x{80}-\\x{10FFFF}][\\w\\x{80}-\\x{10FFFF}]*(::))*[A-Z\\x{80}-\\x{10FFFF}][\\w\\x{80}-\\x{10FFFF}]*)", + "name": "meta.module.crystal" + }, + { + "captures": { + "1": { + "name": "keyword.control.lib.crystal" + }, + "2": { + "name": "entity.name.type.lib.crystal" + }, + "3": { + "name": "entity.other.inherited-class.lib.first.crystal" + }, + "4": { + "name": "punctuation.separator.inheritance.crystal" + }, + "5": { + "name": "entity.other.inherited-class.lib.second.crystal" + }, + "6": { + "name": "punctuation.separator.inheritance.crystal" + }, + "7": { + "name": "entity.other.inherited-class.lib.third.crystal" + }, + "8": { + "name": "punctuation.separator.inheritance.crystal" + } + }, + "match": "^\\s*(lib)\\s+(([A-Z]\\w*(::))?([A-Z]\\w*(::))?([A-Z]\\w*(::))*[A-Z]\\w*)", + "name": "meta.lib.crystal" + }, + { + "captures": { + "1": { + "name": "keyword.control.lib.type.crystal" + }, + "2": { + "name": "entity.name.lib.type.crystal" + }, + "3": { + "name": "keyword.control.lib.crystal" + }, + "4": { + "name": "entity.name.lib.type.value.crystal" + } + }, + "comment": "type in lib", + "match": "(?<!\\.)\\b(type)\\s+([A-Z]\\w+)\\s*(=)\\s*(.+)", + "name": "meta.lib.type.crystal" + }, + { + "comment": "everything being a reserved word, not a value and needing a 'end' is a..", + "match": "(?<!\\.)\\b(fun|begin|case|class|else|elsif|end|ensure|enum|for|if|macro|module|rescue|struct|then|union|unless|until|when|while)\\b(?![?!:])", + "name": "keyword.control.crystal" + }, + { + "comment": "everything being a reserved word, not a value and not needing a 'end' is a..", + "match": "(?<!\\.)\\b(abstract|alias|asm|break|extend|in|include|next|of|private|protected|struct|return|select|super|with|yield)\\b(?![?!:])", + "name": "keyword.control.primary.crystal" + }, + { + "comment": "contextual smart pair support for block parameters", + "match": "(?<!\\.)\\bdo\\b\\s*", + "name": "keyword.control.start-block.crystal" + }, + { + "comment": "contextual smart pair support", + "match": "(?<=\\{)(\\s+)", + "name": "meta.syntax.crystal.start-block" + }, + { + "comment": "Just as above but being not a logical operation", + "match": "(?<!\\.)\\b(pointerof|typeof|sizeof|instance_sizeof|offsetof|previous_def|forall|out|uninitialized)\\b(?![?!:])|\\.(is_a\\?|nil\\?|responds_to\\?|as\\?|as\b)", + "name": "keyword.control.pseudo-method.crystal" + }, + { + "match": "\\bnil\\b(?![?!:])", + "name": "constant.language.nil.crystal" + }, + { + "match": "\\b(true|false)\\b(?![?!:])", + "name": "constant.language.boolean.crystal" + }, + { + "match": "\\b(__(DIR|FILE|LINE|END_LINE)__)\\b(?![?!:])", + "name": "variable.language.crystal" + }, + { + "match": "\\b(self)\\b(?![?!:])", + "name": "variable.language.self.crystal" + }, + { + "comment": "https://crystal-lang.org/api/0.36.1/Object.html#macro-summary", + "match": "(?<!\\.)\\b(((class_)?((getter|property)\\b[!?]?|setter\\b))|(def_(clone|equals|equals_and_hash|hash)|delegate|forward_missing_to)\\b)(?![?!:])", + "name": "support.function.kernel.crystal" + }, + { + "begin": "\\b(require)\\b", + "captures": { + "1": { + "name": "keyword.other.special-method.crystal" + } + }, + "end": "$|(?=#)", + "name": "meta.require.crystal", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "captures": { + "1": { + "name": "punctuation.definition.variable.crystal" + } + }, + "match": "(@)[a-zA-Z_\\x{80}-\\x{10FFFF}][\\w\\x{80}-\\x{10FFFF}]*[?!=]?", + "name": "variable.other.readwrite.instance.crystal" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.variable.crystal" + } + }, + "match": "(@@)[a-zA-Z_\\x{80}-\\x{10FFFF}][\\w\\x{80}-\\x{10FFFF}]*[?!=]?", + "name": "variable.other.readwrite.class.crystal" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.variable.crystal" + } + }, + "match": "(\\$)[a-zA-Z_]\\w*", + "name": "variable.other.readwrite.global.crystal" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.variable.crystal" + } + }, + "match": "(?!%[Qxrqwi]?[\\(\\[\\{\\<\\|])%([a-zA-Z_]\\w*\\.)*[a-zA-Z_]\\w*", + "name": "variable.other.readwrite.fresh.crystal" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.variable.crystal" + } + }, + "match": "(\\$)(!|@|&|`|'|\\+|\\d+|~|=|/|\\\\|,|;|\\.|<|>|_|\\*|\\$|\\?|:|\"|-[0adFiIlpv])", + "name": "variable.other.readwrite.global.pre-defined.crystal" + }, + { + "begin": "\\b(ENV)\\[", + "beginCaptures": { + "1": { + "name": "variable.other.constant.crystal" + } + }, + "end": "\\]", + "name": "meta.environment-variable.crystal", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "match": "\\b[A-Z\\x{80}-\\x{10FFFF}][\\w\\x{80}-\\x{10FFFF}]*", + "name": "support.class.crystal", + "comment": "Literals name of Crystal" + }, + { + "match": "(?<!\\.)\\b(abort|at_exit|caller|exit|gets|loop|main|p|pp|print|printf|puts|raise|rand|read_line|sleep|spawn|sprintf|system|debugger|record|spawn)\\b(?![?!:])", + "name": "support.function.kernel.crystal", + "comment": "Fetch from https://crystal-lang.org/api/0.36.1/toplevel.html" + }, + { + "match": "\\b[_A-Z]+\\b", + "name": "variable.other.constant.crystal", + "comment": "Constant name in any where" + }, + { + "begin": "(?x)\n(?=def\\b) # optimization to help Oniguruma fail fast\n(?<=^|\\s)(def)\\s+\n(\n (?>[a-zA-Z_]\\w*(?>\\.|::))? # method prefix\n (?> # method name\n [a-zA-Z_]\\w*(?>[?!]|=(?!>))?\n |\n \\^|===?|!=|>[>=]?|<=>|<[<=]?|[%&`/\\|]|\\*\\*?|=?~|[-+]@?|\\[][?=]?|\\[]=?\n )\n)\n\\s*(\\()", + "beginCaptures": { + "1": { + "name": "keyword.control.def.crystal" + }, + "2": { + "name": "entity.name.function.crystal" + }, + "3": { + "name": "punctuation.definition.parameters.crystal" + } + }, + "comment": "The method pattern comes from the symbol pattern. See there for an explanation.", + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.parameters.crystal" + } + }, + "name": "meta.function.method.with-arguments.crystal", + "patterns": [ + { + "begin": "(?![\\s,)])", + "end": "(?=,|\\)\\s*$)", + "patterns": [ + { + "captures": { + "1": { + "name": "storage.type.variable.crystal" + }, + "2": { + "name": "constant.other.symbol.hashkey.parameter.function.crystal" + }, + "3": { + "name": "punctuation.definition.constant.hashkey.crystal" + }, + "4": { + "name": "variable.parameter.function.crystal" + } + }, + "match": "\\G([&*]?)(?:([_a-zA-Z]\\w*(:))|([_a-zA-Z]\\w*))" + }, + { + "include": "$self" + } + ] + } + ] + }, + { + "captures": { + "1": { + "name": "keyword.control.def.crystal" + }, + "3": { + "name": "entity.name.function.crystal" + } + }, + "comment": " the optional name is just to catch the def also without a method-name", + "match": "(?x)\n(?=def\\b) # optimization to help Oniguruma fail fast\n(?<=^|\\s)(def)\\b\n(\n \\s+\n (\n (?>[a-zA-Z_]\\w*(?>\\.|::))? # method prefix\n (?> # method name\n [a-zA-Z_]\\w*(?>[?!]|=(?!>))?\n |\n \\^|===?|!=|>[>=]?|<=>|<[<=]?|[%&`/\\|]|\\*\\*?|=?~|[-+]@?|\\[][?=]?|\\[]=?\n )\n )\n)?", + "name": "meta.function.method.without-arguments.crystal" + }, + { + "comment": "Floating point literal (fraction)", + "name": "constant.numeric.float.crystal", + "match": "\\b[0-9][0-9_]*\\.[0-9][0-9_]*([eE][+-]?[0-9_]+)?(f32|f64)?\\b" + }, + { + "comment": "Floating point literal (exponent)", + "name": "constant.numeric.float.crystal", + "match": "\\b[0-9][0-9_]*(\\.[0-9][0-9_]*)?[eE][+-]?[0-9_]+(f32|f64)?\\b" + }, + { + "comment": "Floating point literal (typed)", + "name": "constant.numeric.float.crystal", + "match": "\\b[0-9][0-9_]*(\\.[0-9][0-9_]*)?([eE][+-]?[0-9_]+)?(f32|f64)\\b" + }, + { + "comment": "Integer literal (decimal)", + "name": "constant.numeric.integer.decimal.crystal", + "match": "\\b(?!0[0-9])[0-9][0-9_]*([ui](8|16|32|64|128))?\\b" + }, + { + "comment": "Integer literal (hexadecimal)", + "name": "constant.numeric.integer.hexadecimal.crystal", + "match": "\\b0x[a-fA-F0-9_]+([ui](8|16|32|64|128))?\\b" + }, + { + "comment": "Integer literal (octal)", + "name": "constant.numeric.integer.octal.crystal", + "match": "\\b0o[0-7_]+([ui](8|16|32|64|128))?\\b" + }, + { + "comment": "Integer literal (binary)", + "name": "constant.numeric.integer.binary.crystal", + "match": "\\b0b[01_]+([ui](8|16|32|64|128))?\\b" + }, + { + "begin": ":'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.symbol.begin.crystal" + } + }, + "comment": "symbol literal with '' delimiter", + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.symbol.end.crystal" + } + }, + "name": "constant.other.symbol.crystal", + "patterns": [ + { + "match": "\\\\['\\\\]", + "name": "constant.character.escape.crystal" + } + ] + }, + { + "begin": ":\"", + "beginCaptures": { + "0": { + "name": "punctuation.section.symbol.begin.crystal" + } + }, + "comment": "symbol literal with \"\" delimiter", + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.section.symbol.end.crystal" + } + }, + "name": "constant.other.symbol.interpolated.crystal", + "patterns": [ + { + "include": "#interpolated_crystal" + }, + { + "include": "#escaped_char" + } + ] + }, + { + "comment": "Needs higher precedence than regular expressions.", + "match": "(?<!\\()/=", + "name": "keyword.operator.assignment.augmented.crystal" + }, + { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.crystal" + } + }, + "comment": "string literal with '' delimiter", + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.crystal" + } + }, + "name": "string.quoted.single.crystal", + "patterns": [ + { + "match": "\\\\'|\\\\\\\\", + "name": "constant.character.escape.crystal" + } + ] + }, + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.crystal" + } + }, + "comment": "string literal with interpolation and \"\" delimiter", + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.crystal" + } + }, + "name": "string.quoted.double.interpolated.crystal", + "patterns": [ + { + "include": "#interpolated_crystal" + }, + { + "include": "#escaped_char" + } + ] + }, + { + "begin": "`", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.crystal" + } + }, + "comment": "execute string (allows for interpolation)", + "end": "`", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.crystal" + } + }, + "name": "string.interpolated.crystal", + "patterns": [ + { + "include": "#interpolated_crystal" + }, + { + "include": "#escaped_char" + } + ] + }, + { + "begin": "%x\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.crystal" + } + }, + "comment": "execute string (allow for interpolation)", + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.crystal" + } + }, + "name": "string.interpolated.crystal", + "patterns": [ + { + "include": "#interpolated_crystal" + }, + { + "include": "#escaped_char" + }, + { + "include": "#nest_curly_i" + } + ] + }, + { + "begin": "%x\\[", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.crystal" + } + }, + "comment": "execute string (allow for interpolation)", + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.crystal" + } + }, + "name": "string.interpolated.crystal", + "patterns": [ + { + "include": "#interpolated_crystal" + }, + { + "include": "#escaped_char" + }, + { + "include": "#nest_brackets_i" + } + ] + }, + { + "begin": "%x\\<", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.crystal" + } + }, + "comment": "execute string (allow for interpolation)", + "end": "\\>", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.crystal" + } + }, + "name": "string.interpolated.crystal", + "patterns": [ + { + "include": "#interpolated_crystal" + }, + { + "include": "#escaped_char" + }, + { + "include": "#nest_ltgt_i" + } + ] + }, + { + "begin": "%x\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.crystal" + } + }, + "comment": "execute string (allow for interpolation)", + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.crystal" + } + }, + "name": "string.interpolated.crystal", + "patterns": [ + { + "include": "#interpolated_crystal" + }, + { + "include": "#escaped_char" + }, + { + "include": "#nest_parens_i" + } + ] + }, + { + "begin": "%x\\|", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.crystal" + } + }, + "comment": "execute string (allow for interpolation)", + "end": "\\|", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.crystal" + } + }, + "name": "string.interpolated.crystal", + "patterns": [ + { + "include": "#interpolated_crystal" + }, + { + "include": "#escaped_char" + } + ] + }, + { + "begin": "(?x) (?: ^| (?<=[=>~(?:\\[,|&;] | [\\s;]if\\s| [\\s;]elsif\\s | [\\s;]while\\s | [\\s;]unless\\s | [\\s;]when\\s | [\\s;]assert_match\\s | [\\s;]or\\s| [\\s;]and\\s | [\\s;]not\\s | [\\s.]index\\s| [\\s.]scan\\s | [\\s.]sub\\s | [\\s.]sub!\\s | [\\s.]gsub\\s | [\\s.]gsub!\\s | [\\s.]match\\s ) | (?<=^when\\s| ^if\\s | ^elsif\\s | ^while\\s | ^unless\\s ) ) \\s*((/))(?![*+{}?])", + "captures": { + "1": { + "name": "string.regexp.classic.crystal" + }, + "2": { + "name": "punctuation.definition.string.crystal" + } + }, + "comment": "regular expressions (normal) we only start a regexp if the character before it (excluding whitespace) is what we think is before a regexp", + "contentName": "string.regexp.classic.crystal", + "end": "((/[imsx]*))", + "patterns": [ + { + "include": "#regex_sub" + } + ] + }, + { + "begin": "%r\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.crystal" + } + }, + "comment": "regular expressions (literal)", + "end": "\\}[imsx]*", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.crystal" + } + }, + "name": "string.regexp.mod-r.crystal", + "patterns": [ + { + "include": "#regex_sub" + }, + { + "include": "#nest_curly_r" + } + ] + }, + { + "begin": "%r\\[", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.crystal" + } + }, + "comment": "regular expressions (literal)", + "end": "\\][imsx]*", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.crystal" + } + }, + "name": "string.regexp.mod-r.crystal", + "patterns": [ + { + "include": "#regex_sub" + }, + { + "include": "#nest_brackets_r" + } + ] + }, + { + "begin": "%r\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.crystal" + } + }, + "comment": "regular expressions (literal)", + "end": "\\)[imsx]*", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.crystal" + } + }, + "name": "string.regexp.mod-r.crystal", + "patterns": [ + { + "include": "#regex_sub" + }, + { + "include": "#nest_parens_r" + } + ] + }, + { + "begin": "%r\\<", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.crystal" + } + }, + "comment": "regular expressions (literal)", + "end": "\\>[imsx]*", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.crystal" + } + }, + "name": "string.regexp.mod-r.crystal", + "patterns": [ + { + "include": "#regex_sub" + }, + { + "include": "#nest_ltgt_r" + } + ] + }, + { + "begin": "%r\\|", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.crystal" + } + }, + "comment": "regular expressions (literal)", + "end": "\\|[imsx]*", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.crystal" + } + }, + "name": "string.regexp.mod-r.crystal", + "patterns": [ + { + "include": "#regex_sub" + } + ] + }, + { + "begin": "%Q?\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.crystal" + } + }, + "comment": "literal capable of interpolation ()", + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.crystal" + } + }, + "name": "string.quoted.other.literal.upper.crystal", + "patterns": [ + { + "include": "#interpolated_crystal" + }, + { + "include": "#escaped_char" + }, + { + "include": "#nest_parens_i" + } + ] + }, + { + "begin": "%Q?\\[", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.crystal" + } + }, + "comment": "literal capable of interpolation []", + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.crystal" + } + }, + "name": "string.quoted.other.literal.upper.crystal", + "patterns": [ + { + "include": "#interpolated_crystal" + }, + { + "include": "#escaped_char" + }, + { + "include": "#nest_brackets_i" + } + ] + }, + { + "begin": "%Q?\\<", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.crystal" + } + }, + "comment": "literal capable of interpolation <>", + "end": "\\>", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.crystal" + } + }, + "name": "string.quoted.other.literal.upper.crystal", + "patterns": [ + { + "include": "#interpolated_crystal" + }, + { + "include": "#escaped_char" + }, + { + "include": "#nest_ltgt_i" + } + ] + }, + { + "begin": "%Q?\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.crystal" + } + }, + "comment": "literal capable of interpolation -- {}", + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.crystal" + } + }, + "name": "string.quoted.double.crystal.mod", + "patterns": [ + { + "include": "#interpolated_crystal" + }, + { + "include": "#escaped_char" + }, + { + "include": "#nest_curly_i" + } + ] + }, + { + "begin": "%Q\\|", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.crystal" + } + }, + "comment": "literal capable of interpolation -- ||", + "end": "\\|", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.crystal" + } + }, + "name": "string.quoted.other.literal.upper.crystal", + "patterns": [ + { + "include": "#interpolated_crystal" + }, + { + "include": "#escaped_char" + } + ] + }, + { + "begin": "%[qwi]\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.crystal" + } + }, + "comment": "literal incapable of interpolation -- ()", + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.crystal" + } + }, + "name": "string.quoted.other.literal.lower.crystal", + "patterns": [ + { + "match": "\\\\\\)|\\\\\\\\", + "name": "constant.character.escape.crystal" + }, + { + "include": "#nest_parens" + } + ] + }, + { + "begin": "%[qwi]\\<", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.crystal" + } + }, + "comment": "literal incapable of interpolation -- <>", + "end": "\\>", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.crystal" + } + }, + "name": "string.quoted.other.literal.lower.crystal", + "patterns": [ + { + "match": "\\\\\\>|\\\\\\\\", + "name": "constant.character.escape.crystal" + }, + { + "include": "#nest_ltgt" + } + ] + }, + { + "begin": "%[qwi]\\[", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.crystal" + } + }, + "comment": "literal incapable of interpolation -- []", + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.crystal" + } + }, + "name": "string.quoted.other.literal.lower.crystal", + "patterns": [ + { + "match": "\\\\\\]|\\\\\\\\", + "name": "constant.character.escape.crystal" + }, + { + "include": "#nest_brackets" + } + ] + }, + { + "begin": "%[qwi]\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.crystal" + } + }, + "comment": "literal incapable of interpolation -- {}", + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.crystal" + } + }, + "name": "string.quoted.other.literal.lower.crystal", + "patterns": [ + { + "match": "\\\\\\}|\\\\\\\\", + "name": "constant.character.escape.crystal" + }, + { + "include": "#nest_curly" + } + ] + }, + { + "begin": "%[qwi]\\|", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.crystal" + } + }, + "comment": "literal incapable of interpolation -- ||", + "end": "\\|", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.crystal" + } + }, + "name": "string.quoted.other.literal.lower.crystal", + "patterns": [ + { + "comment": "Cant be named because its not necessarily an escape.", + "match": "\\\\." + } + ] + }, + { + "captures": { + "1": { + "name": "punctuation.definition.constant.crystal" + } + }, + "comment": "symbols", + "match": "(?<!:)(:)(?>[a-zA-Z_\\x{80}-\\x{10FFFF}][\\w\\x{80}-\\x{10FFFF}]*(?>[?!]|=(?![>=]))?|===?|>[>=]?|<[<=]?|<=>|[%&`/\\|]|\\*\\*?|=?~|[-+]@?|\\[\\][?=]?|@@?[a-zA-Z_\\x{80}-\\x{10FFFF}][\\w\\x{80}-\\x{10FFFF}]*)", + "name": "constant.other.symbol.crystal" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.constant.crystal" + } + }, + "comment": "symbols", + "match": "(?>[a-zA-Z_\\x{80}-\\x{10FFFF}][\\w\\x{80}-\\x{10FFFF}]*(?>[?!])?)(:)(?!:)", + "name": "constant.other.symbol.crystal.19syntax" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.comment.crystal" + } + }, + "match": "(?:^[ \\t]+)?(#).*$\\n?", + "name": "comment.line.number-sign.crystal" + }, + { + "match": "\\b_([\\w]+[?!]?)", + "name": "comment.unused.crystal" + }, + { + "begin": "(?><<-('?)((?:[_\\w]+_|)HTML)\\b\\1)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.crystal" + } + }, + "comment": "heredoc with embedded HTML and indented terminator", + "contentName": "text.html.embedded.crystal", + "end": "\\s*\\2\\b", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.crystal" + } + }, + "name": "string.unquoted.embedded.html.crystal", + "patterns": [ + { + "include": "#heredoc" + }, + { + "include": "text.html.basic" + }, + { + "include": "#interpolated_crystal" + }, + { + "include": "#escaped_char" + } + ] + }, + { + "begin": "(?><<-('?)((?:[_\\w]+_|)SQL)\\b\\1)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.crystal" + } + }, + "comment": "heredoc with embedded SQL and indented terminator", + "contentName": "text.sql.embedded.crystal", + "end": "\\s*\\2\\b", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.crystal" + } + }, + "name": "string.unquoted.embedded.sql.crystal", + "patterns": [ + { + "include": "#heredoc" + }, + { + "include": "source.sql" + }, + { + "include": "#interpolated_crystal" + }, + { + "include": "#escaped_char" + } + ] + }, + { + "begin": "(?><<-('?)((?:[_\\w]+_|)CSS)\\b\\1)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.crystal" + } + }, + "comment": "heredoc with embedded css and intented terminator", + "contentName": "text.css.embedded.crystal", + "end": "\\s*\\2\\b", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.crystal" + } + }, + "name": "string.unquoted.embedded.css.crystal", + "patterns": [ + { + "include": "#heredoc" + }, + { + "include": "source.css" + }, + { + "include": "#interpolated_crystal" + }, + { + "include": "#escaped_char" + } + ] + }, + { + "begin": "(?><<-('?)((?:[_\\w]+_|)CPP)\\b\\1)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.crystal" + } + }, + "comment": "heredoc with embedded c++ and intented terminator", + "contentName": "text.c++.embedded.crystal", + "end": "\\s*\\2\\b", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.crystal" + } + }, + "name": "string.unquoted.embedded.cplusplus.crystal", + "patterns": [ + { + "include": "#heredoc" + }, + { + "include": "source.c++" + }, + { + "include": "#interpolated_crystal" + }, + { + "include": "#escaped_char" + } + ] + }, + { + "begin": "(?><<-('?)((?:[_\\w]+_|)C)\\b\\1)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.crystal" + } + }, + "comment": "heredoc with embedded c++ and intented terminator", + "contentName": "text.c.embedded.crystal", + "end": "\\s*\\2\\b", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.crystal" + } + }, + "name": "string.unquoted.embedded.c.crystal", + "patterns": [ + { + "include": "#heredoc" + }, + { + "include": "source.c" + }, + { + "include": "#interpolated_crystal" + }, + { + "include": "#escaped_char" + } + ] + }, + { + "begin": "(?><<-('?)((?:[_\\w]+_|)(?:JS|JAVASCRIPT))\\b\\1)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.crystal" + } + }, + "comment": "heredoc with embedded javascript and intented terminator", + "contentName": "text.js.embedded.crystal", + "end": "\\s*\\2\\b", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.crystal" + } + }, + "name": "string.unquoted.embedded.js.crystal", + "patterns": [ + { + "include": "#heredoc" + }, + { + "include": "source.js" + }, + { + "include": "#interpolated_crystal" + }, + { + "include": "#escaped_char" + } + ] + }, + { + "begin": "(?><<-('?)((?:[_\\w]+_|)JQUERY)\\b\\1)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.crystal" + } + }, + "comment": "heredoc with embedded javascript and intented terminator", + "contentName": "text.js.jquery.embedded.crystal", + "end": "\\s*\\2\\b", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.crystal" + } + }, + "name": "string.unquoted.embedded.js.jquery.crystal", + "patterns": [ + { + "include": "#heredoc" + }, + { + "include": "source.js.jquery" + }, + { + "include": "#interpolated_crystal" + }, + { + "include": "#escaped_char" + } + ] + }, + { + "begin": "(?><<-('?)((?:[_\\w]+_|)(?:SH|SHELL))\\b\\1)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.crystal" + } + }, + "comment": "heredoc with embedded shell and intented terminator", + "contentName": "text.shell.embedded.crystal", + "end": "\\s*\\2\\b", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.crystal" + } + }, + "name": "string.unquoted.embedded.shell.crystal", + "patterns": [ + { + "include": "#heredoc" + }, + { + "include": "source.shell" + }, + { + "include": "#interpolated_crystal" + }, + { + "include": "#escaped_char" + } + ] + }, + { + "begin": "(?><<-('?)((?:[_\\w]+_|)CRYSTAL)\\b\\1)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.crystal" + } + }, + "comment": "heredoc with embedded crystal and intented terminator", + "contentName": "text.crystal.embedded.crystal", + "end": "\\s*\\2\\b", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.crystal" + } + }, + "name": "string.unquoted.embedded.crystal.crystal", + "patterns": [ + { + "include": "#heredoc" + }, + { + "include": "source.crystal" + }, + { + "include": "#interpolated_crystal" + }, + { + "include": "#escaped_char" + } + ] + }, + { + "begin": "(?><<-'(\\w+)')", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.crystal" + } + }, + "comment": "heredoc with indented terminator", + "end": "\\s*\\1\\b", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.crystal" + } + }, + "name": "string.unquoted.heredoc.crystal", + "patterns": [ + { + "include": "#heredoc" + }, + { + "include": "#escaped_char" + } + ] + }, + { + "begin": "(?><<-(\\w+)\\b)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.crystal" + } + }, + "comment": "heredoc with indented terminator", + "end": "\\s*\\1\\b", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.crystal" + } + }, + "name": "string.unquoted.heredoc.crystal", + "patterns": [ + { + "include": "#heredoc" + }, + { + "include": "#interpolated_crystal" + }, + { + "include": "#escaped_char" + } + ] + }, + { + "begin": "(?<={|{\\s|[^A-Za-z0-9_]do|^do|[^A-Za-z0-9_]do\\s|^do\\s)(\\|)", + "captures": { + "1": { + "name": "punctuation.separator.variable.crystal" + } + }, + "end": "(?<!\\|)(\\|)(?!\\|)", + "patterns": [ + { + "include": "source.crystal" + }, + { + "match": "[_a-zA-Z][_a-zA-Z0-9]*", + "name": "variable.other.block.crystal" + }, + { + "match": ",", + "name": "punctuation.separator.variable.crystal" + } + ] + }, + { + "match": "=>", + "name": "punctuation.separator.key-value" + }, + { + "match": "->", + "name": "support.function.kernel.crystal" + }, + { + "match": "<<=|%=|&{1,2}=|\\*=|\\*\\*=|\\+=|-=|\\^=|\\|{1,2}=|<<", + "name": "keyword.operator.assignment.augmented.crystal" + }, + { + "match": "<=>|<(?!<|=)|>(?!<|=|>)|<=|>=|===|==|=~|!=|!~|(?<=[ \\t])\\?", + "name": "keyword.operator.comparison.crystal" + }, + { + "match": "(?<=^|[ \\t])!|&&|\\|\\||\\^", + "name": "keyword.operator.logical.crystal" + }, + { + "match": "(\\{\\%|\\%\\}|\\{\\{|\\}\\})", + "name": "keyword.operator.macro.crystal" + }, + { + "comment": "Safe navigation operator", + "match": "(&\\.)\\s*(?![A-Z])", + "captures": { + "1": { + "name": "punctuation.separator.method.crystal" + } + } + }, + { + "match": "(%|&|\\*\\*|\\*|\\+|\\-|/)", + "name": "keyword.operator.arithmetic.crystal" + }, + { + "match": "=", + "name": "keyword.operator.assignment.crystal" + }, + { + "match": "\\||~|>>", + "name": "keyword.operator.other.crystal" + }, + { + "match": ":", + "name": "punctuation.separator.other.crystal" + }, + { + "match": "\\;", + "name": "punctuation.separator.statement.crystal" + }, + { + "match": ",", + "name": "punctuation.separator.object.crystal" + }, + { + "match": "\\.|::", + "name": "punctuation.separator.method.crystal" + }, + { + "match": "\\{|\\}", + "name": "punctuation.section.scope.crystal" + }, + { + "match": "\\[|\\]", + "name": "punctuation.section.array.crystal" + }, + { + "match": "\\(|\\)", + "name": "punctuation.section.function.crystal" + }, + { + "begin": "(?=[a-zA-Z0-9_!?]+\\()", + "end": "(?<=\\))", + "name": "meta.function-call.crystal", + "patterns": [ + { + "match": "([a-zA-Z0-9_!?]+)(?=\\()", + "name": "entity.name.function.crystal" + }, + { + "include": "$self" + } + ] + }, + { + "comment": "This is kindof experimental. There really is no way to perfectly match all regular variables, but you can pretty well assume that any normal word in certain curcumstances that havnt already been scoped as something else are probably variables, and the advantages beat the potential errors", + "match": "((?<=\\W)\\b|^)\\w+\\b(?=\\s*([\\]\\)\\}\\=\\+\\-\\*\\/\\^\\$\\,\\.]|<\\s|<<[\\s|\\.]))", + "name": "variable.other.crystal" + } + ], + "repository": { + "escaped_char": { + "comment": "https://crystal-lang.org/reference/syntax_and_semantics/literals/string.html", + "match": "\\\\(?:[0-7]{1,3}|x[a-fA-F0-9]{2}|u[a-fA-F0-9]{4}|u\\{[a-fA-F0-9 ]+\\}|.)", + "name": "constant.character.escape.crystal" + }, + "heredoc": { + "begin": "^<<-?\\w+", + "end": "$", + "patterns": [ + { + "include": "$self" + } + ] + }, + "interpolated_crystal": { + "patterns": [ + { + "begin": "#\\{", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.crystal" + } + }, + "contentName": "source.crystal", + "end": "(\\})", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.crystal" + }, + "1": { + "name": "source.crystal" + } + }, + "name": "meta.embedded.line.crystal", + "patterns": [ + { + "include": "#nest_curly_and_self" + }, + { + "include": "$self" + } + ], + "repository": { + "nest_curly_and_self": { + "patterns": [ + { + "begin": "\\{", + "captures": { + "0": { + "name": "punctuation.section.scope.crystal" + } + }, + "end": "\\}", + "patterns": [ + { + "include": "#nest_curly_and_self" + } + ] + }, + { + "include": "$self" + } + ] + } + } + }, + { + "captures": { + "1": { + "name": "punctuation.definition.variable.crystal" + } + }, + "match": "(#@)[a-zA-Z_]\\w*", + "name": "variable.other.readwrite.instance.crystal" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.variable.crystal" + } + }, + "match": "(#@@)[a-zA-Z_]\\w*", + "name": "variable.other.readwrite.class.crystal" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.variable.crystal" + } + }, + "match": "(#\\$)[a-zA-Z_]\\w*", + "name": "variable.other.readwrite.global.crystal" + } + ] + }, + "nest_brackets": { + "begin": "\\[", + "captures": { + "0": { + "name": "punctuation.section.scope.crystal" + } + }, + "end": "\\]", + "patterns": [ + { + "include": "#nest_brackets" + } + ] + }, + "nest_brackets_i": { + "begin": "\\[", + "captures": { + "0": { + "name": "punctuation.section.scope.crystal" + } + }, + "end": "\\]", + "patterns": [ + { + "include": "#interpolated_crystal" + }, + { + "include": "#escaped_char" + }, + { + "include": "#nest_brackets_i" + } + ] + }, + "nest_brackets_r": { + "begin": "\\[", + "captures": { + "0": { + "name": "punctuation.section.scope.crystal" + } + }, + "end": "\\]", + "patterns": [ + { + "include": "#regex_sub" + }, + { + "include": "#nest_brackets_r" + } + ] + }, + "nest_curly": { + "begin": "\\{", + "captures": { + "0": { + "name": "punctuation.section.scope.crystal" + } + }, + "end": "\\}", + "patterns": [ + { + "include": "#nest_curly" + } + ] + }, + "nest_curly_and_self": { + "patterns": [ + { + "begin": "\\{", + "captures": { + "0": { + "name": "punctuation.section.scope.crystal" + } + }, + "end": "\\}", + "patterns": [ + { + "include": "#nest_curly_and_self" + } + ] + }, + { + "include": "$self" + } + ] + }, + "nest_curly_i": { + "begin": "\\{", + "captures": { + "0": { + "name": "punctuation.section.scope.crystal" + } + }, + "end": "\\}", + "patterns": [ + { + "include": "#interpolated_crystal" + }, + { + "include": "#escaped_char" + }, + { + "include": "#nest_curly_i" + } + ] + }, + "nest_curly_r": { + "begin": "\\{", + "captures": { + "0": { + "name": "punctuation.section.scope.crystal" + } + }, + "end": "\\}", + "patterns": [ + { + "include": "#regex_sub" + }, + { + "include": "#nest_curly_r" + } + ] + }, + "nest_ltgt": { + "begin": "\\<", + "captures": { + "0": { + "name": "punctuation.section.scope.crystal" + } + }, + "end": "\\>", + "patterns": [ + { + "include": "#nest_ltgt" + } + ] + }, + "nest_ltgt_i": { + "begin": "\\<", + "captures": { + "0": { + "name": "punctuation.section.scope.crystal" + } + }, + "end": "\\>", + "patterns": [ + { + "include": "#interpolated_crystal" + }, + { + "include": "#escaped_char" + }, + { + "include": "#nest_ltgt_i" + } + ] + }, + "nest_ltgt_r": { + "begin": "\\<", + "captures": { + "0": { + "name": "punctuation.section.scope.crystal" + } + }, + "end": "\\>", + "patterns": [ + { + "include": "#regex_sub" + }, + { + "include": "#nest_ltgt_r" + } + ] + }, + "nest_parens": { + "begin": "\\(", + "captures": { + "0": { + "name": "punctuation.section.scope.crystal" + } + }, + "end": "\\)", + "patterns": [ + { + "include": "#nest_parens" + } + ] + }, + "nest_parens_i": { + "begin": "\\(", + "captures": { + "0": { + "name": "punctuation.section.scope.crystal" + } + }, + "end": "\\)", + "patterns": [ + { + "include": "#interpolated_crystal" + }, + { + "include": "#escaped_char" + }, + { + "include": "#nest_parens_i" + } + ] + }, + "nest_parens_r": { + "begin": "\\(", + "captures": { + "0": { + "name": "punctuation.section.scope.crystal" + } + }, + "end": "\\)", + "patterns": [ + { + "include": "#regex_sub" + }, + { + "include": "#nest_parens_r" + } + ] + }, + "regex_sub": { + "patterns": [ + { + "include": "#interpolated_crystal" + }, + { + "include": "#escaped_char" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.arbitrary-repetition.crystal" + }, + "3": { + "name": "punctuation.definition.arbitrary-repetition.crystal" + } + }, + "match": "({)\\d+(,\\d+)?(})", + "name": "string.regexp.arbitrary-repetition.crystal" + }, + { + "begin": "\\[(?:\\^?])?", + "captures": { + "0": { + "name": "punctuation.definition.character-class.crystal" + } + }, + "end": "]", + "name": "string.regexp.character-class.crystal", + "patterns": [ + { + "include": "#escaped_char" + } + ] + }, + { + "begin": "\\(", + "captures": { + "0": { + "name": "punctuation.definition.group.crystal" + } + }, + "end": "\\)", + "name": "string.regexp.group.crystal", + "patterns": [ + { + "include": "#regex_sub" + } + ] + }, + { + "captures": { + "1": { + "name": "punctuation.definition.comment.crystal" + } + }, + "comment": "We are restrictive in what we allow to go after the comment character to avoid false positives, since the availability of comments depend on regexp flags.", + "match": "(?<=^|\\s)(#)\\s[[a-zA-Z0-9,. \\t?!-][^\\x{00}-\\x{7F}]]*$", + "name": "comment.line.number-sign.crystal" + } + ] + } + } +} diff --git a/docs/shiki/languages/csharp.tmLanguage.json b/docs/shiki/languages/csharp.tmLanguage.json new file mode 100644 index 00000000..6cff59af --- /dev/null +++ b/docs/shiki/languages/csharp.tmLanguage.json @@ -0,0 +1,5720 @@ +{ + "name": "csharp", + "scopeName": "source.cs", + "fileTypes": ["cs"], + "uuid": "f7de61e2-bdde-4e2a-a139-8221b179584e", + "patterns": [ + { + "include": "#preprocessor" + }, + { + "include": "#comment" + }, + { + "include": "#directives" + }, + { + "include": "#declarations" + }, + { + "include": "#script-top-level" + } + ], + "repository": { + "directives": { + "patterns": [ + { + "include": "#extern-alias-directive" + }, + { + "include": "#using-directive" + }, + { + "include": "#attribute-section" + }, + { + "include": "#punctuation-semicolon" + } + ] + }, + "declarations": { + "patterns": [ + { + "include": "#namespace-declaration" + }, + { + "include": "#type-declarations" + }, + { + "include": "#punctuation-semicolon" + } + ] + }, + "script-top-level": { + "patterns": [ + { + "include": "#statement" + }, + { + "include": "#method-declaration" + }, + { + "include": "#punctuation-semicolon" + } + ] + }, + "type-declarations": { + "patterns": [ + { + "include": "#preprocessor" + }, + { + "include": "#comment" + }, + { + "include": "#storage-modifier" + }, + { + "include": "#class-declaration" + }, + { + "include": "#delegate-declaration" + }, + { + "include": "#enum-declaration" + }, + { + "include": "#interface-declaration" + }, + { + "include": "#struct-declaration" + }, + { + "include": "#record-declaration" + }, + { + "include": "#attribute-section" + }, + { + "include": "#punctuation-semicolon" + } + ] + }, + "class-or-struct-members": { + "patterns": [ + { + "include": "#preprocessor" + }, + { + "include": "#comment" + }, + { + "include": "#storage-modifier" + }, + { + "include": "#type-declarations" + }, + { + "include": "#property-declaration" + }, + { + "include": "#field-declaration" + }, + { + "include": "#event-declaration" + }, + { + "include": "#indexer-declaration" + }, + { + "include": "#variable-initializer" + }, + { + "include": "#constructor-declaration" + }, + { + "include": "#destructor-declaration" + }, + { + "include": "#operator-declaration" + }, + { + "include": "#conversion-operator-declaration" + }, + { + "include": "#method-declaration" + }, + { + "include": "#attribute-section" + }, + { + "include": "#punctuation-semicolon" + } + ] + }, + "interface-members": { + "patterns": [ + { + "include": "#preprocessor" + }, + { + "include": "#comment" + }, + { + "include": "#property-declaration" + }, + { + "include": "#event-declaration" + }, + { + "include": "#indexer-declaration" + }, + { + "include": "#method-declaration" + }, + { + "include": "#attribute-section" + }, + { + "include": "#punctuation-semicolon" + } + ] + }, + "statement": { + "patterns": [ + { + "include": "#preprocessor" + }, + { + "include": "#comment" + }, + { + "include": "#while-statement" + }, + { + "include": "#do-statement" + }, + { + "include": "#for-statement" + }, + { + "include": "#foreach-statement" + }, + { + "include": "#if-statement" + }, + { + "include": "#else-part" + }, + { + "include": "#goto-statement" + }, + { + "include": "#return-statement" + }, + { + "include": "#break-or-continue-statement" + }, + { + "include": "#throw-statement" + }, + { + "include": "#yield-statement" + }, + { + "include": "#await-statement" + }, + { + "include": "#try-statement" + }, + { + "include": "#checked-unchecked-statement" + }, + { + "include": "#context-control-statement" + }, + { + "include": "#context-control-paren-statement" + }, + { + "include": "#labeled-statement" + }, + { + "include": "#object-creation-expression" + }, + { + "include": "#array-creation-expression" + }, + { + "include": "#anonymous-object-creation-expression" + }, + { + "include": "#local-declaration" + }, + { + "include": "#block" + }, + { + "include": "#expression" + }, + { + "include": "#punctuation-semicolon" + } + ] + }, + "expression": { + "patterns": [ + { + "include": "#preprocessor" + }, + { + "include": "#comment" + }, + { + "include": "#expression-operator-expression" + }, + { + "include": "#type-operator-expression" + }, + { + "include": "#default-literal-expression" + }, + { + "include": "#throw-expression" + }, + { + "include": "#raw-interpolated-string" + }, + { + "include": "#interpolated-string" + }, + { + "include": "#verbatim-interpolated-string" + }, + { + "include": "#type-builtin" + }, + { + "include": "#language-variable" + }, + { + "include": "#switch-statement-or-expression" + }, + { + "include": "#with-expression" + }, + { + "include": "#conditional-operator" + }, + { + "include": "#assignment-expression" + }, + { + "include": "#expression-operators" + }, + { + "include": "#await-expression" + }, + { + "include": "#query-expression" + }, + { + "include": "#as-expression" + }, + { + "include": "#is-expression" + }, + { + "include": "#anonymous-method-expression" + }, + { + "include": "#object-creation-expression" + }, + { + "include": "#array-creation-expression" + }, + { + "include": "#anonymous-object-creation-expression" + }, + { + "include": "#invocation-expression" + }, + { + "include": "#member-access-expression" + }, + { + "include": "#element-access-expression" + }, + { + "include": "#cast-expression" + }, + { + "include": "#literal" + }, + { + "include": "#parenthesized-expression" + }, + { + "include": "#tuple-deconstruction-assignment" + }, + { + "include": "#initializer-expression" + }, + { + "include": "#identifier" + } + ] + }, + "extern-alias-directive": { + "begin": "\\b(extern)\\s+(alias)\\b", + "beginCaptures": { + "1": { + "name": "keyword.other.directive.extern.cs" + }, + "2": { + "name": "keyword.other.directive.alias.cs" + } + }, + "end": "(?=;)", + "patterns": [ + { + "match": "\\@?[_[:alpha:]][_[:alnum:]]*", + "name": "variable.other.alias.cs" + } + ] + }, + "using-directive": { + "patterns": [ + { + "begin": "\\b(?:(global)\\s+)?(using)\\s+(static)\\b\\s*(?:(unsafe)\\b\\s*)?", + "beginCaptures": { + "1": { + "name": "keyword.other.directive.global.cs" + }, + "2": { + "name": "keyword.other.directive.using.cs" + }, + "3": { + "name": "keyword.other.directive.static.cs" + }, + "4": { + "name": "storage.modifier.unsafe.cs" + } + }, + "end": "(?=;)", + "patterns": [ + { + "include": "#type" + } + ] + }, + { + "begin": "\\b(?:(global)\\s+)?(using)\\b\\s*(?:(unsafe)\\b\\s*)?(@?[_[:alpha:]][_[:alnum:]]*)\\s*(=)", + "beginCaptures": { + "1": { + "name": "keyword.other.directive.global.cs" + }, + "2": { + "name": "keyword.other.directive.using.cs" + }, + "3": { + "name": "storage.modifier.unsafe.cs" + }, + "4": { + "name": "entity.name.type.alias.cs" + }, + "5": { + "name": "keyword.operator.assignment.cs" + } + }, + "end": "(?=;)", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#type" + } + ] + }, + { + "begin": "\\b(?:(global)\\s+)?(using)\\b\\s*+(?!\\(|var\\b)", + "beginCaptures": { + "1": { + "name": "keyword.other.directive.global.cs" + }, + "2": { + "name": "keyword.other.directive.using.cs" + } + }, + "end": "(?=;)", + "patterns": [ + { + "include": "#comment" + }, + { + "name": "entity.name.type.namespace.cs", + "match": "\\@?[_[:alpha:]][_[:alnum:]]*" + }, + { + "include": "#punctuation-accessor" + }, + { + "include": "#operator-assignment" + } + ] + } + ] + }, + "attribute-section": { + "begin": "(\\[)(assembly|module|field|event|method|param|property|return|type)?(\\:)?", + "beginCaptures": { + "1": { + "name": "punctuation.squarebracket.open.cs" + }, + "2": { + "name": "keyword.other.attribute-specifier.cs" + }, + "3": { + "name": "punctuation.separator.colon.cs" + } + }, + "end": "(\\])", + "endCaptures": { + "1": { + "name": "punctuation.squarebracket.close.cs" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#attribute" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "attribute": { + "patterns": [ + { + "include": "#type-name" + }, + { + "include": "#attribute-arguments" + } + ] + }, + "attribute-arguments": { + "begin": "(\\()", + "beginCaptures": { + "1": { + "name": "punctuation.parenthesis.open.cs" + } + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.parenthesis.close.cs" + } + }, + "patterns": [ + { + "include": "#attribute-named-argument" + }, + { + "include": "#expression" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "attribute-named-argument": { + "begin": "(@?[_[:alpha:]][_[:alnum:]]*)\\s*(?==)", + "beginCaptures": { + "1": { + "name": "entity.name.variable.property.cs" + } + }, + "end": "(?=(,|\\)))", + "patterns": [ + { + "include": "#operator-assignment" + }, + { + "include": "#expression" + } + ] + }, + "namespace-declaration": { + "begin": "\\b(namespace)\\s+", + "beginCaptures": { + "1": { + "name": "storage.type.namespace.cs" + } + }, + "end": "(?<=\\})|(?=;)", + "patterns": [ + { + "include": "#comment" + }, + { + "name": "entity.name.type.namespace.cs", + "match": "@?[_[:alpha:]][_[:alnum:]]*" + }, + { + "include": "#punctuation-accessor" + }, + { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.curlybrace.open.cs" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.curlybrace.close.cs" + } + }, + "patterns": [ + { + "include": "#declarations" + }, + { + "include": "#using-directive" + }, + { + "include": "#punctuation-semicolon" + } + ] + } + ] + }, + "storage-modifier": { + "name": "storage.modifier.$1.cs", + "match": "(?<!\\.)\\b(new|public|protected|internal|private|abstract|virtual|override|sealed|static|partial|readonly|volatile|const|extern|async|unsafe|ref|required|file)\\b" + }, + "class-declaration": { + "begin": "(?=(\\brecord\\b\\s+)?\\bclass\\b)", + "end": "(?<=\\})|(?=;)", + "patterns": [ + { + "begin": "(?x)\n(\\b(record)\\b\\s+)?\n\\b(class)\\b\\s+\n(@?[_[:alpha:]][_[:alnum:]]*)\\s*", + "beginCaptures": { + "2": { + "name": "storage.type.record.cs" + }, + "3": { + "name": "storage.type.class.cs" + }, + "4": { + "name": "entity.name.type.class.cs" + } + }, + "end": "(?=\\{)|(?=;)", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#type-parameter-list" + }, + { + "include": "#parenthesized-parameter-list" + }, + { + "include": "#base-types" + }, + { + "include": "#generic-constraints" + } + ] + }, + { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.curlybrace.open.cs" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.curlybrace.close.cs" + } + }, + "patterns": [ + { + "include": "#class-or-struct-members" + } + ] + }, + { + "include": "#preprocessor" + }, + { + "include": "#comment" + } + ] + }, + "delegate-declaration": { + "begin": "(?x)\n(?:\\b(delegate)\\b)\\s+\n(?<type_name>\n (?:\n (?:ref\\s+(?:readonly\\s+)?)? # ref return\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)\\s+\n(\\g<identifier>)\\s*\n(<([^<>]+)>)?\\s*\n(?=\\()", + "beginCaptures": { + "1": { + "name": "storage.type.delegate.cs" + }, + "2": { + "patterns": [ + { + "include": "#type" + } + ] + }, + "7": { + "name": "entity.name.type.delegate.cs" + }, + "8": { + "patterns": [ + { + "include": "#type-parameter-list" + } + ] + } + }, + "end": "(?=;)", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#parenthesized-parameter-list" + }, + { + "include": "#generic-constraints" + } + ] + }, + "enum-declaration": { + "begin": "(?=\\benum\\b)", + "end": "(?<=\\})", + "patterns": [ + { + "begin": "(?=enum)", + "end": "(?=\\{)", + "patterns": [ + { + "include": "#comment" + }, + { + "match": "(enum)\\s+(@?[_[:alpha:]][_[:alnum:]]*)", + "captures": { + "1": { + "name": "storage.type.enum.cs" + }, + "2": { + "name": "entity.name.type.enum.cs" + } + } + }, + { + "begin": ":", + "beginCaptures": { + "0": { + "name": "punctuation.separator.colon.cs" + } + }, + "end": "(?=\\{)", + "patterns": [ + { + "include": "#type" + } + ] + } + ] + }, + { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.curlybrace.open.cs" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.curlybrace.close.cs" + } + }, + "patterns": [ + { + "include": "#preprocessor" + }, + { + "include": "#comment" + }, + { + "include": "#attribute-section" + }, + { + "include": "#punctuation-comma" + }, + { + "begin": "@?[_[:alpha:]][_[:alnum:]]*", + "beginCaptures": { + "0": { + "name": "entity.name.variable.enum-member.cs" + } + }, + "end": "(?=(,|\\}))", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#variable-initializer" + } + ] + } + ] + }, + { + "include": "#preprocessor" + }, + { + "include": "#comment" + } + ] + }, + "interface-declaration": { + "begin": "(?=\\binterface\\b)", + "end": "(?<=\\})", + "patterns": [ + { + "begin": "(?x)\n(interface)\\b\\s+\n(@?[_[:alpha:]][_[:alnum:]]*)", + "beginCaptures": { + "1": { + "name": "storage.type.interface.cs" + }, + "2": { + "name": "entity.name.type.interface.cs" + } + }, + "end": "(?=\\{)", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#type-parameter-list" + }, + { + "include": "#base-types" + }, + { + "include": "#generic-constraints" + } + ] + }, + { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.curlybrace.open.cs" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.curlybrace.close.cs" + } + }, + "patterns": [ + { + "include": "#interface-members" + } + ] + }, + { + "include": "#preprocessor" + }, + { + "include": "#comment" + } + ] + }, + "record-declaration": { + "begin": "(?=\\brecord\\b)", + "end": "(?<=\\})|(?=;)", + "patterns": [ + { + "begin": "(?x)\n(record)\\b\\s+\n(@?[_[:alpha:]][_[:alnum:]]*)", + "beginCaptures": { + "1": { + "name": "storage.type.record.cs" + }, + "2": { + "name": "entity.name.type.class.cs" + } + }, + "end": "(?=\\{)|(?=;)", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#type-parameter-list" + }, + { + "include": "#parenthesized-parameter-list" + }, + { + "include": "#base-types" + }, + { + "include": "#generic-constraints" + } + ] + }, + { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.curlybrace.open.cs" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.curlybrace.close.cs" + } + }, + "patterns": [ + { + "include": "#class-or-struct-members" + } + ] + }, + { + "include": "#preprocessor" + }, + { + "include": "#comment" + } + ] + }, + "struct-declaration": { + "begin": "(?=(\\brecord\\b\\s+)?\\bstruct\\b)", + "end": "(?<=\\})|(?=;)", + "patterns": [ + { + "begin": "(?x)\n(\\b(record)\\b\\s+)?\n(struct)\\b\\s+\n(@?[_[:alpha:]][_[:alnum:]]*)", + "beginCaptures": { + "2": { + "name": "storage.type.record.cs" + }, + "3": { + "name": "storage.type.struct.cs" + }, + "4": { + "name": "entity.name.type.struct.cs" + } + }, + "end": "(?=\\{)|(?=;)", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#type-parameter-list" + }, + { + "include": "#parenthesized-parameter-list" + }, + { + "include": "#base-types" + }, + { + "include": "#generic-constraints" + } + ] + }, + { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.curlybrace.open.cs" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.curlybrace.close.cs" + } + }, + "patterns": [ + { + "include": "#class-or-struct-members" + } + ] + }, + { + "include": "#preprocessor" + }, + { + "include": "#comment" + } + ] + }, + "type-parameter-list": { + "begin": "\\<", + "beginCaptures": { + "0": { + "name": "punctuation.definition.typeparameters.begin.cs" + } + }, + "end": "\\>", + "endCaptures": { + "0": { + "name": "punctuation.definition.typeparameters.end.cs" + } + }, + "patterns": [ + { + "match": "\\b(in|out)\\b", + "name": "storage.modifier.$1.cs" + }, + { + "match": "(@?[_[:alpha:]][_[:alnum:]]*)\\b", + "name": "entity.name.type.type-parameter.cs" + }, + { + "include": "#comment" + }, + { + "include": "#punctuation-comma" + }, + { + "include": "#attribute-section" + } + ] + }, + "base-types": { + "begin": ":", + "beginCaptures": { + "0": { + "name": "punctuation.separator.colon.cs" + } + }, + "end": "(?=\\{|where|;)", + "patterns": [ + { + "include": "#type" + }, + { + "include": "#punctuation-comma" + }, + { + "include": "#preprocessor" + } + ] + }, + "generic-constraints": { + "begin": "(where)\\s+(@?[_[:alpha:]][_[:alnum:]]*)\\s*(:)", + "beginCaptures": { + "1": { + "name": "storage.modifier.where.cs" + }, + "2": { + "name": "entity.name.type.type-parameter.cs" + }, + "3": { + "name": "punctuation.separator.colon.cs" + } + }, + "end": "(?=\\{|where|;|=>)", + "patterns": [ + { + "name": "storage.type.class.cs", + "match": "\\bclass\\b" + }, + { + "name": "storage.type.struct.cs", + "match": "\\bstruct\\b" + }, + { + "match": "(new)\\s*(\\()\\s*(\\))", + "captures": { + "1": { + "name": "keyword.operator.expression.new.cs" + }, + "2": { + "name": "punctuation.parenthesis.open.cs" + }, + "3": { + "name": "punctuation.parenthesis.close.cs" + } + } + }, + { + "include": "#type" + }, + { + "include": "#punctuation-comma" + }, + { + "include": "#generic-constraints" + } + ] + }, + "field-declaration": { + "begin": "(?x)\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)\\s+\n(\\g<identifier>)\\s* # first field name\n(?!=>|==)(?=,|;|=|$)", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#type" + } + ] + }, + "6": { + "name": "entity.name.variable.field.cs" + } + }, + "end": "(?=;)", + "patterns": [ + { + "name": "entity.name.variable.field.cs", + "match": "@?[_[:alpha:]][_[:alnum:]]*" + }, + { + "include": "#punctuation-comma" + }, + { + "include": "#comment" + }, + { + "include": "#variable-initializer" + }, + { + "include": "#class-or-struct-members" + } + ] + }, + "property-declaration": { + "begin": "(?x)\n\n# The negative lookahead below ensures that we don't match nested types\n# or other declarations as properties.\n(?![[:word:][:space:]]*\\b(?:class|interface|struct|enum|event)\\b)\n\n(?<return_type>\n (?<type_name>\n (?:\n (?:ref\\s+(?:readonly\\s+)?)? # ref return\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n )\\s+\n)\n(?<interface_name>\\g<type_name>\\s*\\.\\s*)?\n(?<property_name>\\g<identifier>)\\s*\n(?=\\{|=>|//|/\\*|$)", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#type" + } + ] + }, + "7": { + "patterns": [ + { + "include": "#type" + }, + { + "include": "#punctuation-accessor" + } + ] + }, + "8": { + "name": "entity.name.variable.property.cs" + } + }, + "end": "(?<=\\})|(?=;)", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#property-accessors" + }, + { + "include": "#accessor-getter-expression" + }, + { + "include": "#variable-initializer" + }, + { + "include": "#class-or-struct-members" + } + ] + }, + "indexer-declaration": { + "begin": "(?x)\n(?<return_type>\n (?<type_name>\n (?:\n (?:ref\\s+(?:readonly\\s+)?)? # ref return\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n )\\s+\n)\n(?<interface_name>\\g<type_name>\\s*\\.\\s*)?\n(?<indexer_name>this)\\s*\n(?=\\[)", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#type" + } + ] + }, + "7": { + "patterns": [ + { + "include": "#type" + }, + { + "include": "#punctuation-accessor" + } + ] + }, + "8": { + "name": "variable.language.this.cs" + } + }, + "end": "(?<=\\})|(?=;)", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#bracketed-parameter-list" + }, + { + "include": "#property-accessors" + }, + { + "include": "#accessor-getter-expression" + }, + { + "include": "#variable-initializer" + } + ] + }, + "event-declaration": { + "begin": "(?x)\n\\b(event)\\b\\s*\n(?<return_type>\n (?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n )\\s+\n)\n(?<interface_name>\\g<type_name>\\s*\\.\\s*)?\n(\\g<identifier>)\\s* # first event name\n(?=\\{|;|,|=|//|/\\*|$)", + "beginCaptures": { + "1": { + "name": "storage.type.event.cs" + }, + "2": { + "patterns": [ + { + "include": "#type" + } + ] + }, + "8": { + "patterns": [ + { + "include": "#type" + }, + { + "include": "#punctuation-accessor" + } + ] + }, + "9": { + "name": "entity.name.variable.event.cs" + } + }, + "end": "(?<=\\})|(?=;)", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#event-accessors" + }, + { + "name": "entity.name.variable.event.cs", + "match": "@?[_[:alpha:]][_[:alnum:]]*" + }, + { + "include": "#punctuation-comma" + }, + { + "begin": "=", + "beginCaptures": { + "0": { + "name": "keyword.operator.assignment.cs" + } + }, + "end": "(?<=,)|(?=;)", + "patterns": [ + { + "include": "#expression" + }, + { + "include": "#punctuation-comma" + } + ] + } + ] + }, + "property-accessors": { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.curlybrace.open.cs" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.curlybrace.close.cs" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#attribute-section" + }, + { + "name": "storage.modifier.$1.cs", + "match": "\\b(private|protected|internal)\\b" + }, + { + "begin": "\\b(get)\\b\\s*(?=\\{|;|=>|//|/\\*|$)", + "beginCaptures": { + "1": { + "name": "storage.type.accessor.$1.cs" + } + }, + "end": "(?<=\\}|;)|(?=\\})", + "patterns": [ + { + "include": "#accessor-getter" + } + ] + }, + { + "begin": "\\b(set|init)\\b\\s*(?=\\{|;|=>|//|/\\*|$)", + "beginCaptures": { + "1": { + "name": "storage.type.accessor.$1.cs" + } + }, + "end": "(?<=\\}|;)|(?=\\})", + "patterns": [ + { + "include": "#accessor-setter" + } + ] + } + ] + }, + "event-accessors": { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.curlybrace.open.cs" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.curlybrace.close.cs" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#attribute-section" + }, + { + "begin": "\\b(add|remove)\\b\\s*(?=\\{|;|=>|//|/\\*|$)", + "beginCaptures": { + "1": { + "name": "storage.type.accessor.$1.cs" + } + }, + "end": "(?<=\\}|;)|(?=\\})", + "patterns": [ + { + "include": "#accessor-setter" + } + ] + } + ] + }, + "accessor-getter": { + "patterns": [ + { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.curlybrace.open.cs" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.curlybrace.close.cs" + } + }, + "contentName": "meta.accessor.getter.cs", + "patterns": [ + { + "include": "#statement" + } + ] + }, + { + "include": "#accessor-getter-expression" + }, + { + "include": "#punctuation-semicolon" + } + ] + }, + "accessor-getter-expression": { + "begin": "=>", + "beginCaptures": { + "0": { + "name": "keyword.operator.arrow.cs" + } + }, + "end": "(?=;|\\})", + "contentName": "meta.accessor.getter.cs", + "patterns": [ + { + "include": "#ref-modifier" + }, + { + "include": "#expression" + } + ] + }, + "accessor-setter": { + "patterns": [ + { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.curlybrace.open.cs" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.curlybrace.close.cs" + } + }, + "contentName": "meta.accessor.setter.cs", + "patterns": [ + { + "include": "#statement" + } + ] + }, + { + "begin": "=>", + "beginCaptures": { + "0": { + "name": "keyword.operator.arrow.cs" + } + }, + "end": "(?=;|\\})", + "contentName": "meta.accessor.setter.cs", + "patterns": [ + { + "include": "#ref-modifier" + }, + { + "include": "#expression" + } + ] + }, + { + "include": "#punctuation-semicolon" + } + ] + }, + "method-declaration": { + "begin": "(?x)\n(?<return_type>\n (?<type_name>\n (?:\n (?:ref\\s+(?:readonly\\s+)?)? # ref return\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n )\\s+\n)\n(?<interface_name>\\g<type_name>\\s*\\.\\s*)?\n(\\g<identifier>)\\s*\n(<([^<>]+)>)?\\s*\n(?=\\()", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#type" + } + ] + }, + "7": { + "patterns": [ + { + "include": "#type" + }, + { + "include": "#punctuation-accessor" + } + ] + }, + "8": { + "name": "entity.name.function.cs" + }, + "9": { + "patterns": [ + { + "include": "#type-parameter-list" + } + ] + } + }, + "end": "(?<=\\})|(?=;)", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#parenthesized-parameter-list" + }, + { + "include": "#generic-constraints" + }, + { + "include": "#expression-body" + }, + { + "include": "#block" + } + ] + }, + "constructor-declaration": { + "begin": "(?=@?[_[:alpha:]][_[:alnum:]]*\\s*\\()", + "end": "(?<=\\})|(?=;)", + "patterns": [ + { + "match": "(@?[_[:alpha:]][_[:alnum:]]*)\\b", + "captures": { + "1": { + "name": "entity.name.function.cs" + } + } + }, + { + "begin": "(:)", + "beginCaptures": { + "1": { + "name": "punctuation.separator.colon.cs" + } + }, + "end": "(?=\\{|=>)", + "patterns": [ + { + "include": "#constructor-initializer" + } + ] + }, + { + "include": "#parenthesized-parameter-list" + }, + { + "include": "#preprocessor" + }, + { + "include": "#comment" + }, + { + "include": "#expression-body" + }, + { + "include": "#block" + } + ] + }, + "constructor-initializer": { + "begin": "\\b(base|this)\\b\\s*(?=\\()", + "beginCaptures": { + "1": { + "name": "variable.language.$1.cs" + } + }, + "end": "(?<=\\))", + "patterns": [ + { + "include": "#argument-list" + } + ] + }, + "destructor-declaration": { + "begin": "(~)(@?[_[:alpha:]][_[:alnum:]]*)\\s*(?=\\()", + "beginCaptures": { + "1": { + "name": "punctuation.tilde.cs" + }, + "2": { + "name": "entity.name.function.cs" + } + }, + "end": "(?<=\\})|(?=;)", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#parenthesized-parameter-list" + }, + { + "include": "#expression-body" + }, + { + "include": "#block" + } + ] + }, + "operator-declaration": { + "begin": "(?x)\n(?<type_name>\n (?:\n (?:ref\\s+(?:readonly\\s+)?)? # ref return\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)\\s*\n\\b(?<operator_keyword>operator)\\b\\s*\n(?<operator>[+\\-*/%&|\\^!=~<>]+|true|false)\\s*\n(?=\\()", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#type" + } + ] + }, + "6": { + "name": "storage.type.operator.cs" + }, + "7": { + "name": "entity.name.function.cs" + } + }, + "end": "(?<=\\})|(?=;)", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#parenthesized-parameter-list" + }, + { + "include": "#expression-body" + }, + { + "include": "#block" + } + ] + }, + "conversion-operator-declaration": { + "begin": "(?x)\n(?<explicit_or_implicit_keyword>(?:\\b(?:explicit|implicit)))\\s*\n(?<operator_keyword>(?:\\b(?:operator)))\\s*\n(?<type_name>\n (?:\n (?:ref\\s+(?:readonly\\s+)?)? # ref return\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)\\s*\n(?=\\()", + "beginCaptures": { + "1": { + "patterns": [ + { + "match": "\\b(explicit)\\b", + "captures": { + "1": { + "name": "storage.modifier.explicit.cs" + } + } + }, + { + "match": "\\b(implicit)\\b", + "captures": { + "1": { + "name": "storage.modifier.implicit.cs" + } + } + } + ] + }, + "2": { + "name": "storage.type.operator.cs" + }, + "3": { + "patterns": [ + { + "include": "#type" + } + ] + } + }, + "end": "(?<=\\})|(?=;)", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#parenthesized-parameter-list" + }, + { + "include": "#expression-body" + }, + { + "include": "#block" + } + ] + }, + "block": { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.curlybrace.open.cs" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.curlybrace.close.cs" + } + }, + "patterns": [ + { + "include": "#statement" + } + ] + }, + "variable-initializer": { + "begin": "(?<!=|!)(=)(?!=|>)", + "beginCaptures": { + "1": { + "name": "keyword.operator.assignment.cs" + } + }, + "end": "(?=[,\\)\\];}])", + "patterns": [ + { + "include": "#ref-modifier" + }, + { + "include": "#expression" + } + ] + }, + "expression-body": { + "begin": "=>", + "beginCaptures": { + "0": { + "name": "keyword.operator.arrow.cs" + } + }, + "end": "(?=[,\\);}])", + "patterns": [ + { + "include": "#ref-modifier" + }, + { + "include": "#expression" + } + ] + }, + "goto-statement": { + "begin": "(?<!\\.)\\b(goto)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.goto.cs" + } + }, + "end": "(?=[;}])", + "patterns": [ + { + "begin": "\\b(case)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.conditional.case.cs" + } + }, + "end": "(?=[;}])", + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "match": "\\b(default)\\b", + "captures": { + "1": { + "name": "keyword.control.conditional.default.cs" + } + } + }, + { + "name": "entity.name.label.cs", + "match": "@?[_[:alpha:]][_[:alnum:]]*" + } + ] + }, + "return-statement": { + "begin": "(?<!\\.)\\b(return)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.return.cs" + } + }, + "end": "(?=[;}])", + "patterns": [ + { + "include": "#ref-modifier" + }, + { + "include": "#expression" + } + ] + }, + "break-or-continue-statement": { + "match": "(?<!\\.)\\b(break|continue)\\b", + "name": "keyword.control.flow.$1.cs" + }, + "throw-statement": { + "begin": "(?<!\\.)\\b(throw)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.throw.cs" + } + }, + "end": "(?=[;}])", + "patterns": [ + { + "include": "#expression" + } + ] + }, + "yield-statement": { + "patterns": [ + { + "include": "#yield-return-statement" + }, + { + "include": "#yield-break-statement" + } + ] + }, + "yield-return-statement": { + "begin": "(?<!\\.)\\b(yield)\\b\\s*\\b(return)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.yield.cs" + }, + "2": { + "name": "keyword.control.flow.return.cs" + } + }, + "end": "(?=[;}])", + "patterns": [ + { + "include": "#expression" + } + ] + }, + "yield-break-statement": { + "match": "(?<!\\.)\\b(yield)\\b\\s*\\b(break)\\b", + "captures": { + "1": { + "name": "keyword.control.flow.yield.cs" + }, + "2": { + "name": "keyword.control.flow.break.cs" + } + } + }, + "await-statement": { + "begin": "(?<!\\.\\s*)\\b(await)\\b", + "beginCaptures": { + "1": { + "name": "keyword.operator.expression.await.cs" + } + }, + "end": "(?<=})|(?=;|})", + "patterns": [ + { + "include": "#foreach-statement" + }, + { + "include": "#using-statement" + }, + { + "include": "#expression" + } + ] + }, + "if-statement": { + "begin": "(?<!\\.)\\b(if)\\b\\s*(?=\\()", + "beginCaptures": { + "1": { + "name": "keyword.control.conditional.if.cs" + } + }, + "end": "(?<=})|(?=;)", + "patterns": [ + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.parenthesis.open.cs" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.parenthesis.close.cs" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "include": "#statement" + } + ] + }, + "else-part": { + "begin": "(?<!\\.)\\b(else)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.conditional.else.cs" + } + }, + "end": "(?<=})|(?=;)", + "patterns": [ + { + "include": "#statement" + } + ] + }, + "switch-statement-or-expression": { + "begin": "(?<!\\.)\\b(switch)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.conditional.switch.cs" + } + }, + "end": "(?<=})|(?=})", + "patterns": [ + { + "include": "#intrusive" + }, + { + "begin": "(?=\\()", + "end": "(?<=\\})|(?=\\})", + "patterns": [ + { + "include": "#switch-statement" + } + ] + }, + { + "begin": "(?=\\{)", + "end": "(?<=\\})|(?=\\})", + "patterns": [ + { + "include": "#switch-expression" + } + ] + } + ] + }, + "switch-statement": { + "patterns": [ + { + "include": "#intrusive" + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.parenthesis.open.cs" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.parenthesis.close.cs" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.curlybrace.open.cs" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.curlybrace.close.cs" + } + }, + "patterns": [ + { + "include": "#switch-label" + }, + { + "include": "#statement" + } + ] + } + ] + }, + "switch-label": { + "begin": "\\b(case|default)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.conditional.$1.cs" + } + }, + "end": "(:)|(?=})", + "endCaptures": { + "1": { + "name": "punctuation.separator.colon.cs" + } + }, + "patterns": [ + { + "begin": "\\b(when)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.conditional.when.cs" + } + }, + "end": "(?=:|})", + "patterns": [ + { + "include": "#case-guard" + } + ] + }, + { + "begin": "(?!\\s)", + "end": "(?=\\bwhen\\b|:|})", + "patterns": [ + { + "include": "#pattern" + } + ] + } + ] + }, + "switch-expression": { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.curlybrace.open.cs" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.curlybrace.close.cs" + } + }, + "patterns": [ + { + "include": "#punctuation-comma" + }, + { + "begin": "=>", + "beginCaptures": { + "0": { + "name": "keyword.operator.arrow.cs" + } + }, + "end": "(?=,|})", + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "begin": "\\b(when)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.conditional.when.cs" + } + }, + "end": "(?==>|,|})", + "patterns": [ + { + "include": "#case-guard" + } + ] + }, + { + "begin": "(?!\\s)", + "end": "(?=\\bwhen\\b|=>|,|})", + "patterns": [ + { + "include": "#pattern" + } + ] + } + ] + }, + "case-guard": { + "patterns": [ + { + "include": "#parenthesized-expression" + }, + { + "include": "#expression" + } + ] + }, + "is-expression": { + "begin": "(?<!\\.)\\b(is)\\b", + "beginCaptures": { + "1": { + "name": "keyword.operator.expression.pattern.is.cs" + } + }, + "end": "(?=[)}\\],;:?=&|^]|!=)", + "patterns": [ + { + "include": "#pattern" + } + ] + }, + "pattern": { + "patterns": [ + { + "include": "#intrusive" + }, + { + "include": "#combinator-pattern" + }, + { + "include": "#discard-pattern" + }, + { + "include": "#constant-pattern" + }, + { + "include": "#relational-pattern" + }, + { + "include": "#var-pattern" + }, + { + "include": "#type-pattern" + }, + { + "include": "#positional-pattern" + }, + { + "include": "#property-pattern" + }, + { + "include": "#list-pattern" + }, + { + "include": "#slice-pattern" + } + ] + }, + "combinator-pattern": { + "match": "\\b(and|or|not)\\b", + "name": "keyword.operator.expression.pattern.combinator.$1.cs" + }, + "discard-pattern": { + "match": "_(?![_[:alnum:]])", + "name": "variable.language.discard.cs" + }, + "constant-pattern": { + "patterns": [ + { + "include": "#boolean-literal" + }, + { + "include": "#null-literal" + }, + { + "include": "#numeric-literal" + }, + { + "include": "#char-literal" + }, + { + "include": "#string-literal" + }, + { + "include": "#raw-string-literal" + }, + { + "include": "#verbatim-string-literal" + }, + { + "include": "#type-operator-expression" + }, + { + "include": "#expression-operator-expression" + }, + { + "include": "#expression-operators" + }, + { + "include": "#casted-constant-pattern" + } + ] + }, + "casted-constant-pattern": { + "begin": "(?x)\n(\\()\n ([\\s.:@_[:alnum:]]+)\n(\\))\n(?=[\\s+\\-!~]*@?[_[:alnum:]('\"]+)", + "beginCaptures": { + "1": { + "name": "punctuation.parenthesis.open.cs" + }, + "2": { + "patterns": [ + { + "include": "#type-builtin" + }, + { + "include": "#type-name" + } + ] + }, + "3": { + "name": "punctuation.parenthesis.close.cs" + } + }, + "end": "(?=[)}\\],;:?=&|^]|!=|\\b(and|or|when)\\b)", + "patterns": [ + { + "include": "#casted-constant-pattern" + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.parenthesis.open.cs" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.parenthesis.close.cs" + } + }, + "patterns": [ + { + "include": "#constant-pattern" + } + ] + }, + { + "include": "#constant-pattern" + }, + { + "match": "(@?[_[:alpha:]][_[:alnum:]]*)\\s*(\\:\\:)", + "captures": { + "1": { + "name": "entity.name.type.alias.cs" + }, + "2": { + "name": "punctuation.separator.coloncolon.cs" + } + } + }, + { + "match": "(@?[_[:alpha:]][_[:alnum:]]*)\\s*(\\.)", + "captures": { + "1": { + "name": "entity.name.type.cs" + }, + "2": { + "name": "punctuation.accessor.cs" + } + } + }, + { + "match": "\\@?[_[:alpha:]][_[:alnum:]]*", + "name": "variable.other.constant.cs" + } + ] + }, + "relational-pattern": { + "begin": "<=?|>=?", + "beginCaptures": { + "0": { + "name": "keyword.operator.relational.cs" + } + }, + "end": "(?=[)}\\],;:?=&|^]|!=|\\b(and|or|when)\\b)", + "patterns": [ + { + "include": "#expression" + } + ] + }, + "var-pattern": { + "begin": "\\b(var)\\b", + "beginCaptures": { + "1": { + "name": "storage.type.var.cs" + } + }, + "end": "(?=[)}\\],;:?=&|^]|!=|\\b(and|or|when)\\b)", + "patterns": [ + { + "include": "#designation-pattern" + } + ] + }, + "designation-pattern": { + "patterns": [ + { + "include": "#intrusive" + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.parenthesis.open.cs" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.parenthesis.close.cs" + } + }, + "patterns": [ + { + "include": "#punctuation-comma" + }, + { + "include": "#designation-pattern" + } + ] + }, + { + "include": "#simple-designation-pattern" + } + ] + }, + "simple-designation-pattern": { + "patterns": [ + { + "include": "#discard-pattern" + }, + { + "match": "@?[_[:alpha:]][_[:alnum:]]*", + "name": "entity.name.variable.local.cs" + } + ] + }, + "type-pattern": { + "begin": "(?=@?[_[:alpha:]][_[:alnum:]]*)", + "end": "(?=[)}\\],;:?=&|^]|!=|\\b(and|or|when)\\b)", + "patterns": [ + { + "begin": "\\G", + "end": "(?!\\G[@_[:alpha:]])(?=[\\({@_[:alpha:])}\\],;:=&|^]|(?:\\s|^)\\?|!=|\\b(and|or|when)\\b)", + "patterns": [ + { + "include": "#intrusive" + }, + { + "include": "#type-subpattern" + } + ] + }, + { + "begin": "(?=[\\({@_[:alpha:]])", + "end": "(?=[)}\\],;:?=&|^]|!=|\\b(and|or|when)\\b)", + "patterns": [ + { + "include": "#intrusive" + }, + { + "include": "#positional-pattern" + }, + { + "include": "#property-pattern" + }, + { + "include": "#simple-designation-pattern" + } + ] + } + ] + }, + "type-subpattern": { + "patterns": [ + { + "include": "#type-builtin" + }, + { + "begin": "(@?[_[:alpha:]][_[:alnum:]]*)\\s*(::)", + "beginCaptures": { + "1": { + "name": "entity.name.type.alias.cs" + }, + "2": { + "name": "punctuation.separator.coloncolon.cs" + } + }, + "end": "(?<=[_[:alnum:]])|(?=[.<\\[\\({)}\\],;:?=&|^]|!=|\\b(and|or|when)\\b)", + "patterns": [ + { + "include": "#intrusive" + }, + { + "match": "\\@?[_[:alpha:]][_[:alnum:]]*", + "name": "entity.name.type.cs" + } + ] + }, + { + "match": "\\@?[_[:alpha:]][_[:alnum:]]*", + "name": "entity.name.type.cs" + }, + { + "begin": "\\.", + "beginCaptures": { + "0": { + "name": "punctuation.accessor.cs" + } + }, + "end": "(?<=[_[:alnum:]])|(?=[<\\[\\({)}\\],;:?=&|^]|!=|\\b(and|or|when)\\b)", + "patterns": [ + { + "include": "#intrusive" + }, + { + "match": "\\@?[_[:alpha:]][_[:alnum:]]*", + "name": "entity.name.type.cs" + } + ] + }, + { + "include": "#type-arguments" + }, + { + "include": "#type-array-suffix" + }, + { + "match": "(?<!\\s)\\?", + "name": "punctuation.separator.question-mark.cs" + } + ] + }, + "positional-pattern": { + "begin": "(?=\\()", + "end": "(?=[)}\\],;:?=&|^]|!=|\\b(and|or|when)\\b)", + "patterns": [ + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.parenthesis.open.cs" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.parenthesis.close.cs" + } + }, + "patterns": [ + { + "include": "#subpattern" + }, + { + "include": "#punctuation-comma" + } + ] + }, + { + "begin": "(?<=\\))", + "end": "(?=[)}\\],;:?=&|^]|!=|\\b(and|or|when)\\b)", + "patterns": [ + { + "include": "#intrusive" + }, + { + "include": "#property-pattern" + }, + { + "include": "#simple-designation-pattern" + } + ] + } + ] + }, + "property-pattern": { + "begin": "(?={)", + "end": "(?=[)}\\],;:?=&|^]|!=|\\b(and|or|when)\\b)", + "patterns": [ + { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.curlybrace.open.cs" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.curlybrace.close.cs" + } + }, + "patterns": [ + { + "include": "#subpattern" + }, + { + "include": "#punctuation-comma" + } + ] + }, + { + "begin": "(?<=\\})", + "end": "(?=[)}\\],;:?=&|^]|!=|\\b(and|or|when)\\b)", + "patterns": [ + { + "include": "#intrusive" + }, + { + "include": "#simple-designation-pattern" + } + ] + } + ] + }, + "subpattern": { + "patterns": [ + { + "match": "(@?[_[:alpha:]][_[:alnum:]]*(?:\\s*\\.\\s*@?[_[:alpha:]][_[:alnum:]]*)*)\\s*(:)", + "captures": { + "1": { + "patterns": [ + { + "match": "\\@?[_[:alpha:]][_[:alnum:]]*", + "name": "variable.other.object.property.cs" + }, + { + "include": "#punctuation-accessor" + } + ] + }, + "2": { + "name": "punctuation.separator.colon.cs" + } + } + }, + { + "include": "#pattern" + } + ] + }, + "list-pattern": { + "begin": "(?=\\[)", + "end": "(?=[)}\\],;:?=&|^]|!=|\\b(and|or|when)\\b)", + "patterns": [ + { + "begin": "\\[", + "beginCaptures": { + "0": { + "name": "punctuation.squarebracket.open.cs" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.squarebracket.close.cs" + } + }, + "patterns": [ + { + "include": "#pattern" + }, + { + "include": "#punctuation-comma" + } + ] + }, + { + "begin": "(?<=\\])", + "end": "(?=[)}\\],;:?=&|^]|!=|\\b(and|or|when)\\b)", + "patterns": [ + { + "include": "#intrusive" + }, + { + "include": "#simple-designation-pattern" + } + ] + } + ] + }, + "slice-pattern": { + "match": "\\.\\.", + "name": "keyword.operator.range.cs" + }, + "do-statement": { + "begin": "(?<!\\.)\\b(do)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.loop.do.cs" + } + }, + "end": "(?=;|})", + "patterns": [ + { + "include": "#statement" + } + ] + }, + "while-statement": { + "begin": "(?<!\\.)\\b(while)\\b\\s*(?=\\()", + "beginCaptures": { + "1": { + "name": "keyword.control.loop.while.cs" + } + }, + "end": "(?<=\\})|(?=;)", + "patterns": [ + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.parenthesis.open.cs" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.parenthesis.close.cs" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "include": "#statement" + } + ] + }, + "for-statement": { + "begin": "\\b(for)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.loop.for.cs" + } + }, + "end": "(?<=\\))|(?=;|})", + "patterns": [ + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.parenthesis.open.cs" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.parenthesis.close.cs" + } + }, + "patterns": [ + { + "begin": "\\G", + "end": "(?=;|\\))", + "patterns": [ + { + "include": "#intrusive" + }, + { + "include": "#local-variable-declaration" + } + ] + }, + { + "begin": "(?=;)", + "end": "(?=\\))", + "patterns": [ + { + "include": "#intrusive" + }, + { + "include": "#expression" + }, + { + "include": "#punctuation-comma" + }, + { + "include": "#punctuation-semicolon" + } + ] + } + ] + } + ] + }, + "foreach-statement": { + "begin": "\\b(foreach)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.loop.foreach.cs" + } + }, + "end": "(?<=\\))|(?=;|})", + "patterns": [ + { + "include": "#intrusive" + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.parenthesis.open.cs" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.parenthesis.close.cs" + } + }, + "patterns": [ + { + "include": "#intrusive" + }, + { + "match": "(?x)\n(?:\n (\\bvar\\b)|\n (?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n )\n)\\s+\n(\\g<identifier>)\\s+\n\\b(in)\\b", + "captures": { + "1": { + "name": "storage.type.var.cs" + }, + "2": { + "patterns": [ + { + "include": "#type" + } + ] + }, + "7": { + "name": "entity.name.variable.local.cs" + }, + "8": { + "name": "keyword.control.loop.in.cs" + } + } + }, + { + "match": "(?x) # match foreach (var (x, y) in ...)\n(?:\\b(var)\\b\\s*)?\n(?<tuple>\\((?:[^\\(\\)]|\\g<tuple>)+\\))\\s+\n\\b(in)\\b", + "captures": { + "1": { + "name": "storage.type.var.cs" + }, + "2": { + "patterns": [ + { + "include": "#tuple-declaration-deconstruction-element-list" + } + ] + }, + "3": { + "name": "keyword.control.loop.in.cs" + } + } + }, + { + "include": "#expression" + } + ] + } + ] + }, + "try-statement": { + "patterns": [ + { + "include": "#try-block" + }, + { + "include": "#catch-clause" + }, + { + "include": "#finally-clause" + } + ] + }, + "try-block": { + "begin": "(?<!\\.)\\b(try)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.exception.try.cs" + } + }, + "end": "(?<=\\})", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#block" + } + ] + }, + "finally-clause": { + "begin": "(?<!\\.)\\b(finally)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.exception.finally.cs" + } + }, + "end": "(?<=\\})", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#block" + } + ] + }, + "catch-clause": { + "begin": "(?<!\\.)\\b(catch)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.exception.catch.cs" + } + }, + "end": "(?<=\\})", + "patterns": [ + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.parenthesis.open.cs" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.parenthesis.close.cs" + } + }, + "patterns": [ + { + "match": "(?x)\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)\\s*\n(?:(\\g<identifier>)\\b)?", + "captures": { + "1": { + "patterns": [ + { + "include": "#type" + } + ] + }, + "6": { + "name": "entity.name.variable.local.cs" + } + } + } + ] + }, + { + "include": "#when-clause" + }, + { + "include": "#comment" + }, + { + "include": "#block" + } + ] + }, + "when-clause": { + "begin": "(?<!\\.)\\b(when)\\b\\s*(\\()", + "beginCaptures": { + "1": { + "name": "keyword.control.exception.when.cs" + }, + "2": { + "name": "punctuation.parenthesis.open.cs" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.parenthesis.close.cs" + } + }, + "patterns": [ + { + "include": "#expression" + }, + { + "include": "#comment" + } + ] + }, + "context-control-statement": { + "match": "\\b(checked|unchecked|unsafe)\\b(?!\\s*[@_[:alpha:](])", + "name": "keyword.control.context.$1.cs" + }, + "context-control-paren-statement": { + "patterns": [ + { + "include": "#fixed-statement" + }, + { + "include": "#lock-statement" + }, + { + "include": "#using-statement" + } + ] + }, + "fixed-statement": { + "begin": "\\b(fixed)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.context.fixed.cs" + } + }, + "end": "(?<=\\))|(?=;|})", + "patterns": [ + { + "include": "#intrusive" + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.parenthesis.open.cs" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.parenthesis.close.cs" + } + }, + "patterns": [ + { + "include": "#intrusive" + }, + { + "include": "#local-variable-declaration" + } + ] + } + ] + }, + "lock-statement": { + "begin": "\\b(lock)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.context.lock.cs" + } + }, + "end": "(?<=\\))|(?=;|})", + "patterns": [ + { + "include": "#intrusive" + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.parenthesis.open.cs" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.parenthesis.close.cs" + } + }, + "patterns": [ + { + "include": "#intrusive" + }, + { + "include": "#expression" + } + ] + } + ] + }, + "using-statement": { + "begin": "\\b(using)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.context.using.cs" + } + }, + "end": "(?<=\\))|(?=;|})", + "patterns": [ + { + "include": "#intrusive" + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.parenthesis.open.cs" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.parenthesis.close.cs" + } + }, + "patterns": [ + { + "include": "#intrusive" + }, + { + "include": "#await-expression" + }, + { + "include": "#local-variable-declaration" + }, + { + "include": "#expression" + } + ] + }, + { + "include": "#local-variable-declaration" + } + ] + }, + "labeled-statement": { + "match": "(@?[_[:alpha:]][_[:alnum:]]*)\\s*(:)", + "captures": { + "1": { + "name": "entity.name.label.cs" + }, + "2": { + "name": "punctuation.separator.colon.cs" + } + } + }, + "local-declaration": { + "patterns": [ + { + "include": "#local-constant-declaration" + }, + { + "include": "#local-variable-declaration" + }, + { + "include": "#local-function-declaration" + }, + { + "include": "#local-tuple-var-deconstruction" + } + ] + }, + "local-variable-declaration": { + "begin": "(?x)\n(?:\n (?:(\\bref)\\s+(?:(\\breadonly)\\s+)?)?(\\bvar\\b)| # ref local\n (?<type_name>\n (?:\n (?:ref\\s+(?:readonly\\s+)?)? # ref local\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*[?*]\\s*)? # nullable or pointer suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n )\n)\\s+\n(\\g<identifier>)\\s*\n(?!=>)\n(?=,|;|=|\\))", + "beginCaptures": { + "1": { + "name": "storage.modifier.ref.cs" + }, + "2": { + "name": "storage.modifier.readonly.cs" + }, + "3": { + "name": "storage.type.var.cs" + }, + "4": { + "patterns": [ + { + "include": "#type" + } + ] + }, + "9": { + "name": "entity.name.variable.local.cs" + } + }, + "end": "(?=[;)}])", + "patterns": [ + { + "name": "entity.name.variable.local.cs", + "match": "@?[_[:alpha:]][_[:alnum:]]*" + }, + { + "include": "#punctuation-comma" + }, + { + "include": "#comment" + }, + { + "include": "#variable-initializer" + } + ] + }, + "local-constant-declaration": { + "begin": "(?x)\n(?<const_keyword>\\b(?:const)\\b)\\s*\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)\\s+\n(\\g<identifier>)\\s*\n(?=,|;|=)", + "beginCaptures": { + "1": { + "name": "storage.modifier.const.cs" + }, + "2": { + "patterns": [ + { + "include": "#type" + } + ] + }, + "7": { + "name": "entity.name.variable.local.cs" + } + }, + "end": "(?=;)", + "patterns": [ + { + "name": "entity.name.variable.local.cs", + "match": "@?[_[:alpha:]][_[:alnum:]]*" + }, + { + "include": "#punctuation-comma" + }, + { + "include": "#comment" + }, + { + "include": "#variable-initializer" + } + ] + }, + "local-function-declaration": { + "begin": "(?x)\n\\b((?:(?:async|unsafe|static|extern)\\s+)*)\n(?<type_name>\n (?:ref\\s+(?:readonly\\s+)?)? # ref return\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n \\s*(?:,\\s*)* # commata for multi-dimensional arrays\n \\]\n (?:\\s*\\?)? # arrays can be nullable reference types\n )*\n)\\s+\n(\\g<identifier>)\\s*\n(<[^<>]+>)?\\s*\n(?=\\()", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#storage-modifier" + } + ] + }, + "2": { + "patterns": [ + { + "include": "#type" + } + ] + }, + "7": { + "name": "entity.name.function.cs" + }, + "8": { + "patterns": [ + { + "include": "#type-parameter-list" + } + ] + } + }, + "end": "(?<=\\})|(?=;)", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#parenthesized-parameter-list" + }, + { + "include": "#generic-constraints" + }, + { + "include": "#expression-body" + }, + { + "include": "#block" + } + ] + }, + "local-tuple-var-deconstruction": { + "begin": "(?x) # e.g. var (x, y) = GetPoint();\n(?:\\b(var)\\b\\s*)\n(?<tuple>\\((?:[^\\(\\)]|\\g<tuple>)+\\))\\s*\n(?=;|=|\\))", + "beginCaptures": { + "1": { + "name": "storage.type.var.cs" + }, + "2": { + "patterns": [ + { + "include": "#tuple-declaration-deconstruction-element-list" + } + ] + } + }, + "end": "(?=;|\\))", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#variable-initializer" + } + ] + }, + "tuple-deconstruction-assignment": { + "match": "(?x)\n(?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\\s*\n(?!=>|==)(?==)", + "captures": { + "1": { + "patterns": [ + { + "include": "#tuple-deconstruction-element-list" + } + ] + } + } + }, + "tuple-declaration-deconstruction-element-list": { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.parenthesis.open.cs" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.parenthesis.close.cs" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#tuple-declaration-deconstruction-element-list" + }, + { + "include": "#declaration-expression-tuple" + }, + { + "include": "#punctuation-comma" + }, + { + "match": "(?x) # e.g. x\n(@?[_[:alpha:]][_[:alnum:]]*)\\b\\s*\n(?=[,)])", + "captures": { + "1": { + "name": "entity.name.variable.tuple-element.cs" + } + } + } + ] + }, + "tuple-deconstruction-element-list": { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.parenthesis.open.cs" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.parenthesis.close.cs" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#tuple-deconstruction-element-list" + }, + { + "include": "#declaration-expression-tuple" + }, + { + "include": "#punctuation-comma" + }, + { + "match": "(?x) # e.g. x\n(@?[_[:alpha:]][_[:alnum:]]*)\\b\\s*\n(?=[,)])", + "captures": { + "1": { + "name": "variable.other.readwrite.cs" + } + } + } + ] + }, + "declaration-expression-local": { + "match": "(?x) # e.g. int x OR var x\n(?:\n \\b(var)\\b|\n (?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n )\n)\\s+\n(\\g<identifier>)\\b\\s*\n(?=[,)\\]])", + "captures": { + "1": { + "name": "storage.type.var.cs" + }, + "2": { + "patterns": [ + { + "include": "#type" + } + ] + }, + "7": { + "name": "entity.name.variable.local.cs" + } + } + }, + "declaration-expression-tuple": { + "match": "(?x) # e.g. int x OR var x\n(?:\n \\b(var)\\b|\n (?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n )\n)\\s+\n(\\g<identifier>)\\b\\s*\n(?=[,)])", + "captures": { + "1": { + "name": "storage.type.var.cs" + }, + "2": { + "patterns": [ + { + "include": "#type" + } + ] + }, + "7": { + "name": "entity.name.variable.tuple-element.cs" + } + } + }, + "expression-operator-expression": { + "begin": "\\b(checked|unchecked|nameof)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "keyword.operator.expression.$1.cs" + }, + "2": { + "name": "punctuation.parenthesis.open.cs" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.parenthesis.close.cs" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + "type-operator-expression": { + "begin": "\\b(default|sizeof|typeof)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "keyword.operator.expression.$1.cs" + }, + "2": { + "name": "punctuation.parenthesis.open.cs" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.parenthesis.close.cs" + } + }, + "patterns": [ + { + "include": "#type" + } + ] + }, + "default-literal-expression": { + "match": "\\b(default)\\b", + "captures": { + "1": { + "name": "keyword.operator.expression.default.cs" + } + } + }, + "throw-expression": { + "match": "\\b(throw)\\b", + "captures": { + "1": { + "name": "keyword.control.flow.throw.cs" + } + } + }, + "interpolated-string": { + "name": "string.quoted.double.cs", + "begin": "\\$\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.cs" + } + }, + "end": "(\")|((?:[^\\\\\\n])$)", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.cs" + }, + "2": { + "name": "invalid.illegal.newline.cs" + } + }, + "patterns": [ + { + "include": "#string-character-escape" + }, + { + "include": "#interpolation" + } + ] + }, + "verbatim-interpolated-string": { + "name": "string.quoted.double.cs", + "begin": "(?:\\$@|@\\$)\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.cs" + } + }, + "end": "\"(?=[^\"])", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.cs" + } + }, + "patterns": [ + { + "include": "#verbatim-string-character-escape" + }, + { + "include": "#interpolation" + } + ] + }, + "interpolation": { + "name": "meta.interpolation.cs", + "begin": "(?<=[^\\{]|^)((?:\\{\\{)*)(\\{)(?=[^\\{])", + "beginCaptures": { + "1": { + "name": "string.quoted.double.cs" + }, + "2": { + "name": "punctuation.definition.interpolation.begin.cs" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.interpolation.end.cs" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + "raw-interpolated-string": { + "patterns": [ + { + "include": "#raw-interpolated-string-five-or-more-quote-one-or-more-interpolation" + }, + { + "include": "#raw-interpolated-string-three-or-more-quote-three-or-more-interpolation" + }, + { + "include": "#raw-interpolated-string-quadruple-quote-double-interpolation" + }, + { + "include": "#raw-interpolated-string-quadruple-quote-single-interpolation" + }, + { + "include": "#raw-interpolated-string-triple-quote-double-interpolation" + }, + { + "include": "#raw-interpolated-string-triple-quote-single-interpolation" + } + ] + }, + "raw-interpolated-string-triple-quote-single-interpolation": { + "name": "string.quoted.double.cs", + "begin": "\\$\"\"\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.cs" + } + }, + "end": "\"\"\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.cs" + } + }, + "patterns": [ + { + "include": "#raw-interpolation" + } + ] + }, + "raw-interpolated-string-triple-quote-double-interpolation": { + "name": "string.quoted.double.cs", + "begin": "\\$\\$\"\"\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.cs" + } + }, + "end": "\"\"\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.cs" + } + }, + "patterns": [ + { + "include": "#double-raw-interpolation" + } + ] + }, + "raw-interpolated-string-quadruple-quote-single-interpolation": { + "name": "string.quoted.double.cs", + "begin": "\\$\"\"\"\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.cs" + } + }, + "end": "\"\"\"\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.cs" + } + }, + "patterns": [ + { + "include": "#raw-interpolation" + } + ] + }, + "raw-interpolated-string-quadruple-quote-double-interpolation": { + "name": "string.quoted.double.cs", + "begin": "\\$\\$\"\"\"\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.cs" + } + }, + "end": "\"\"\"\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.cs" + } + }, + "patterns": [ + { + "include": "#double-raw-interpolation" + } + ] + }, + "raw-interpolated-string-three-or-more-quote-three-or-more-interpolation": { + "name": "string.quoted.double.cs", + "begin": "\\$\\$\\$+\"\"\"+", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.cs" + } + }, + "end": "\"\"\"+", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.cs" + } + } + }, + "raw-interpolated-string-five-or-more-quote-one-or-more-interpolation": { + "name": "string.quoted.double.cs", + "begin": "\\$+\"\"\"\"\"+", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.cs" + } + }, + "end": "\"\"\"\"\"+", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.cs" + } + } + }, + "raw-interpolation": { + "name": "meta.interpolation.cs", + "begin": "(?<=[^\\{]|^)((?:\\{)*)(\\{)(?=[^\\{])", + "beginCaptures": { + "1": { + "name": "string.quoted.double.cs" + }, + "2": { + "name": "punctuation.definition.interpolation.begin.cs" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.interpolation.end.cs" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + "double-raw-interpolation": { + "name": "meta.interpolation.cs", + "begin": "(?<=[^\\{][^\\{]|^)((?:\\{)*)(\\{\\{)(?=[^\\{])", + "beginCaptures": { + "1": { + "name": "string.quoted.double.cs" + }, + "2": { + "name": "punctuation.definition.interpolation.begin.cs" + } + }, + "end": "\\}\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.interpolation.end.cs" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + "literal": { + "patterns": [ + { + "include": "#boolean-literal" + }, + { + "include": "#null-literal" + }, + { + "include": "#numeric-literal" + }, + { + "include": "#char-literal" + }, + { + "include": "#raw-string-literal" + }, + { + "include": "#string-literal" + }, + { + "include": "#verbatim-string-literal" + }, + { + "include": "#tuple-literal" + } + ] + }, + "boolean-literal": { + "patterns": [ + { + "name": "constant.language.boolean.true.cs", + "match": "(?<!\\.)\\btrue\\b" + }, + { + "name": "constant.language.boolean.false.cs", + "match": "(?<!\\.)\\bfalse\\b" + } + ] + }, + "null-literal": { + "name": "constant.language.null.cs", + "match": "(?<!\\.)\\bnull\\b" + }, + "numeric-literal": { + "match": "(?<!\\w)\\.?\\d(?:(?:[0-9a-zA-Z_]|_)|(?<=[eE])[+-]|\\.\\d)*", + "captures": { + "0": { + "patterns": [ + { + "begin": "(?=.)", + "end": "$", + "patterns": [ + { + "match": "(\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:[0-9]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)?((?:(?<=[0-9])|\\.(?=[0-9])))([0-9](?:[0-9]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)?((?<!_)([eE])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)))?([fFdDmM](?!\\w))?$", + "captures": { + "2": { + "name": "constant.numeric.decimal.cs", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", + "name": "constant.numeric.other.separator.thousands.cs" + } + ] + }, + "3": { + "name": "constant.numeric.other.separator.thousands.cs" + }, + "4": { + "name": "constant.numeric.other.separator.decimals.cs" + }, + "5": { + "name": "constant.numeric.decimal.cs", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", + "name": "constant.numeric.other.separator.thousands.cs" + } + ] + }, + "6": { + "name": "constant.numeric.other.separator.thousands.cs" + }, + "8": { + "name": "constant.numeric.other.exponent.cs" + }, + "9": { + "name": "keyword.operator.arithmetic.cs" + }, + "10": { + "name": "keyword.operator.arithmetic.cs" + }, + "11": { + "name": "constant.numeric.decimal.cs", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", + "name": "constant.numeric.other.separator.thousands.cs" + } + ] + }, + "12": { + "name": "constant.numeric.other.suffix.cs" + } + } + }, + { + "match": "(\\G0[bB])([01_](?:[01_]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)((?:(?:(?:(?:(?:[uU]|[uU]l)|[uU]L)|l[uU]?)|L[uU]?)|[fFdDmM])(?!\\w))?$", + "captures": { + "1": { + "name": "constant.numeric.other.preffix.binary.cs" + }, + "2": { + "name": "constant.numeric.binary.cs", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", + "name": "constant.numeric.other.separator.thousands.cs" + } + ] + }, + "3": { + "name": "constant.numeric.other.separator.thousands.cs" + }, + "4": { + "name": "constant.numeric.other.suffix.cs" + } + } + }, + { + "match": "(\\G0[xX])([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)((?:(?:(?:(?:(?:[uU]|[uU]l)|[uU]L)|l[uU]?)|L[uU]?)|[fFdDmM])(?!\\w))?$", + "captures": { + "1": { + "name": "constant.numeric.other.preffix.hex.cs" + }, + "2": { + "name": "constant.numeric.hex.cs", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", + "name": "constant.numeric.other.separator.thousands.cs" + } + ] + }, + "3": { + "name": "constant.numeric.other.separator.thousands.cs" + }, + "4": { + "name": "constant.numeric.other.suffix.cs" + } + } + }, + { + "match": "(\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:[0-9]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)((?<!_)([eE])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)))?((?:(?:(?:(?:(?:[uU]|[uU]l)|[uU]L)|l[uU]?)|L[uU]?)|[fFdDmM])(?!\\w))?$", + "captures": { + "2": { + "name": "constant.numeric.decimal.cs", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", + "name": "constant.numeric.other.separator.thousands.cs" + } + ] + }, + "3": { + "name": "constant.numeric.other.separator.thousands.cs" + }, + "5": { + "name": "constant.numeric.other.exponent.cs" + }, + "6": { + "name": "keyword.operator.arithmetic.cs" + }, + "7": { + "name": "keyword.operator.arithmetic.cs" + }, + "8": { + "name": "constant.numeric.decimal.cs", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", + "name": "constant.numeric.other.separator.thousands.cs" + } + ] + }, + "9": { + "name": "constant.numeric.other.suffix.cs" + } + } + }, + { + "match": "(?:(?:[0-9a-zA-Z_]|_)|(?<=[eE])[+-]|\\.\\d)+", + "name": "invalid.illegal.constant.numeric.cs" + } + ] + } + ] + } + } + }, + "char-literal": { + "name": "string.quoted.single.cs", + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.char.begin.cs" + } + }, + "end": "(\\')|((?:[^\\\\\\n])$)", + "endCaptures": { + "1": { + "name": "punctuation.definition.char.end.cs" + }, + "2": { + "name": "invalid.illegal.newline.cs" + } + }, + "patterns": [ + { + "include": "#char-character-escape" + } + ] + }, + "char-character-escape": { + "name": "constant.character.escape.cs", + "match": "\\\\(['\"\\\\0abfnrtv]|x[0-9a-fA-F]{1,4}|u[0-9a-fA-F]{4})" + }, + "string-literal": { + "name": "string.quoted.double.cs", + "begin": "(?<!@)\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.cs" + } + }, + "end": "(\")|((?:[^\\\\\\n])$)", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.cs" + }, + "2": { + "name": "invalid.illegal.newline.cs" + } + }, + "patterns": [ + { + "include": "#string-character-escape" + } + ] + }, + "string-character-escape": { + "name": "constant.character.escape.cs", + "match": "\\\\(['\"\\\\0abfnrtv]|x[0-9a-fA-F]{1,4}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4})" + }, + "verbatim-string-literal": { + "name": "string.quoted.double.cs", + "begin": "@\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.cs" + } + }, + "end": "\"(?=[^\"])", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.cs" + } + }, + "patterns": [ + { + "include": "#verbatim-string-character-escape" + } + ] + }, + "verbatim-string-character-escape": { + "name": "constant.character.escape.cs", + "match": "\"\"" + }, + "raw-string-literal": { + "patterns": [ + { + "include": "#raw-string-literal-more" + }, + { + "include": "#raw-string-literal-quadruple" + }, + { + "include": "#raw-string-literal-triple" + } + ] + }, + "raw-string-literal-triple": { + "name": "string.quoted.double.cs", + "begin": "\"\"\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.cs" + } + }, + "end": "\"\"\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.cs" + } + } + }, + "raw-string-literal-quadruple": { + "name": "string.quoted.double.cs", + "begin": "\"\"\"\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.cs" + } + }, + "end": "\"\"\"\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.cs" + } + } + }, + "raw-string-literal-more": { + "name": "string.quoted.double.cs", + "begin": "\"\"\"\"\"+", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.cs" + } + }, + "end": "\"\"\"\"\"+", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.cs" + } + } + }, + "tuple-literal": { + "begin": "(\\()(?=.*[:,])", + "beginCaptures": { + "1": { + "name": "punctuation.parenthesis.open.cs" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.parenthesis.close.cs" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#tuple-literal-element" + }, + { + "include": "#expression" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "tuple-literal-element": { + "begin": "(?x)\n(@?[_[:alpha:]][_[:alnum:]]*)\\s*\n(?=:)", + "beginCaptures": { + "1": { + "name": "entity.name.variable.tuple-element.cs" + } + }, + "end": "(:)", + "endCaptures": { + "0": { + "name": "punctuation.separator.colon.cs" + } + } + }, + "assignment-expression": { + "begin": "(?:\\*|/|%|\\+|-|\\?\\?|\\&|\\^|<<|>>>?|\\|)?=(?!=|>)", + "beginCaptures": { + "0": { + "patterns": [ + { + "include": "#assignment-operators" + } + ] + } + }, + "end": "(?=[,\\)\\];}])", + "patterns": [ + { + "include": "#ref-modifier" + }, + { + "include": "#expression" + } + ] + }, + "assignment-operators": { + "patterns": [ + { + "name": "keyword.operator.assignment.compound.cs", + "match": "\\*=|/=|%=|\\+=|-=|\\?\\?=" + }, + { + "name": "keyword.operator.assignment.compound.bitwise.cs", + "match": "\\&=|\\^=|<<=|>>>?=|\\|=" + }, + { + "name": "keyword.operator.assignment.cs", + "match": "\\=" + } + ] + }, + "expression-operators": { + "patterns": [ + { + "name": "keyword.operator.bitwise.shift.cs", + "match": "<<|>>>?" + }, + { + "name": "keyword.operator.comparison.cs", + "match": "==|!=" + }, + { + "name": "keyword.operator.relational.cs", + "match": "<=|>=|<|>" + }, + { + "name": "keyword.operator.logical.cs", + "match": "\\!|&&|\\|\\|" + }, + { + "name": "keyword.operator.bitwise.cs", + "match": "\\&|~|\\^|\\|" + }, + { + "name": "keyword.operator.decrement.cs", + "match": "--" + }, + { + "name": "keyword.operator.increment.cs", + "match": "\\+\\+" + }, + { + "name": "keyword.operator.arithmetic.cs", + "match": "\\+|-(?!>)|\\*|/|%" + }, + { + "name": "keyword.operator.null-coalescing.cs", + "match": "\\?\\?" + }, + { + "name": "keyword.operator.range.cs", + "match": "\\.\\." + } + ] + }, + "with-expression": { + "begin": "(?<!\\.)\\b(with)\\b\\s*(?=\\{|//|/\\*|$)", + "beginCaptures": { + "1": { + "name": "keyword.operator.expression.with.cs" + } + }, + "end": "(?<=\\})", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#initializer-expression" + } + ] + }, + "conditional-operator": { + "patterns": [ + { + "name": "keyword.operator.conditional.question-mark.cs", + "match": "\\?(?!\\?|\\s*[.\\[])" + }, + { + "name": "keyword.operator.conditional.colon.cs", + "match": ":" + } + ] + }, + "await-expression": { + "name": "keyword.operator.expression.await.cs", + "match": "(?<!\\.\\s*)\\b(await)\\b" + }, + "parenthesized-expression": { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.parenthesis.open.cs" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.parenthesis.close.cs" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + "initializer-expression": { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.curlybrace.open.cs" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.curlybrace.close.cs" + } + }, + "patterns": [ + { + "include": "#expression" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "identifier": { + "name": "variable.other.readwrite.cs", + "match": "@?[_[:alpha:]][_[:alnum:]]*" + }, + "cast-expression": { + "match": "(?x)\n(\\()\\s*\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)\\s*\n(\\))(?=\\s*-*!*@?[_[:alnum:]\\(])", + "captures": { + "1": { + "name": "punctuation.parenthesis.open.cs" + }, + "2": { + "patterns": [ + { + "include": "#type" + } + ] + }, + "7": { + "name": "punctuation.parenthesis.close.cs" + } + } + }, + "as-expression": { + "match": "(?x)\n(?<!\\.)\\b(as)\\b\\s*\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?(?!\\?))? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n \\s*(?:,\\s*)* # commata for multi-dimensional arrays\n \\]\n (?:\\s*\\?(?!\\?))? # arrays can be nullable reference types\n )*\n )\n)?", + "captures": { + "1": { + "name": "keyword.operator.expression.as.cs" + }, + "2": { + "patterns": [ + { + "include": "#type" + } + ] + } + } + }, + "language-variable": { + "patterns": [ + { + "name": "variable.language.$1.cs", + "match": "\\b(base|this)\\b" + }, + { + "name": "variable.other.$1.cs", + "match": "\\b(value)\\b" + } + ] + }, + "invocation-expression": { + "begin": "(?x)\n(?:\n (?:(\\?)\\s*)? # preceding null-conditional operator?\n (\\.)\\s*| # preceding dot?\n (->)\\s* # preceding pointer arrow?\n)?\n(@?[_[:alpha:]][_[:alnum:]]*)\\s* # method name\n(\n <\n (?<type_args>\n [^<>()]+|\n <\\g<type_args>+>|\n \\(\\g<type_args>+\\)\n )+\n >\\s*\n)? # type arguments\n(?=\\() # open paren of argument list", + "beginCaptures": { + "1": { + "name": "keyword.operator.null-conditional.cs" + }, + "2": { + "name": "punctuation.accessor.cs" + }, + "3": { + "name": "punctuation.accessor.pointer.cs" + }, + "4": { + "name": "entity.name.function.cs" + }, + "5": { + "patterns": [ + { + "include": "#type-arguments" + } + ] + } + }, + "end": "(?<=\\))", + "patterns": [ + { + "include": "#argument-list" + } + ] + }, + "element-access-expression": { + "begin": "(?x)\n(?:\n (?:(\\?)\\s*)? # preceding null-conditional operator?\n (\\.)\\s*| # preceding dot?\n (->)\\s* # preceding pointer arrow?\n)?\n(?:(@?[_[:alpha:]][_[:alnum:]]*)\\s*)? # property name\n(?:(\\?)\\s*)? # null-conditional operator?\n(?=\\[) # open bracket of argument list", + "beginCaptures": { + "1": { + "name": "keyword.operator.null-conditional.cs" + }, + "2": { + "name": "punctuation.accessor.cs" + }, + "3": { + "name": "punctuation.accessor.pointer.cs" + }, + "4": { + "name": "variable.other.object.property.cs" + }, + "5": { + "name": "keyword.operator.null-conditional.cs" + } + }, + "end": "(?<=\\])(?!\\s*\\[)", + "patterns": [ + { + "include": "#bracketed-argument-list" + } + ] + }, + "member-access-expression": { + "patterns": [ + { + "match": "(?x)\n(?:\n (?:(\\?)\\s*)? # preceding null-conditional operator?\n (\\.)\\s*| # preceding dot?\n (->)\\s* # preceding pointer arrow?\n)\n(@?[_[:alpha:]][_[:alnum:]]*)\\s* # property name\n(?![_[:alnum:]]|\\(|(\\?)?\\[|<) # next character is not alpha-numeric, nor a (, [, or <. Also, test for ?[", + "captures": { + "1": { + "name": "keyword.operator.null-conditional.cs" + }, + "2": { + "name": "punctuation.accessor.cs" + }, + "3": { + "name": "punctuation.accessor.pointer.cs" + }, + "4": { + "name": "variable.other.object.property.cs" + } + } + }, + { + "match": "(?x)\n(\\.)?\\s*\n(@?[_[:alpha:]][_[:alnum:]]*)\n(?<type_params>\\s*<([^<>]|\\g<type_params>)+>\\s*)\n(?=\n (\\s*\\?)?\n \\s*\\.\\s*@?[_[:alpha:]][_[:alnum:]]*\n)", + "captures": { + "1": { + "name": "punctuation.accessor.cs" + }, + "2": { + "name": "variable.other.object.cs" + }, + "3": { + "patterns": [ + { + "include": "#type-arguments" + } + ] + } + } + }, + { + "match": "(?x)\n(@?[_[:alpha:]][_[:alnum:]]*)\n(?=\n \\s*(?:(?:\\?\\s*)?\\.|->)\n \\s*@?[_[:alpha:]][_[:alnum:]]*\n)", + "captures": { + "1": { + "name": "variable.other.object.cs" + } + } + } + ] + }, + "object-creation-expression": { + "patterns": [ + { + "include": "#object-creation-expression-with-parameters" + }, + { + "include": "#object-creation-expression-with-no-parameters" + } + ] + }, + "object-creation-expression-with-parameters": { + "begin": "(?x)\n(new)(?:\\s+\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n))?\\s*\n(?=\\()", + "beginCaptures": { + "1": { + "name": "keyword.operator.expression.new.cs" + }, + "2": { + "patterns": [ + { + "include": "#type" + } + ] + } + }, + "end": "(?<=\\))", + "patterns": [ + { + "include": "#argument-list" + } + ] + }, + "object-creation-expression-with-no-parameters": { + "match": "(?x)\n(new)\\s+\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)\\s*\n(?=\\{|//|/\\*|$)", + "captures": { + "1": { + "name": "keyword.operator.expression.new.cs" + }, + "2": { + "patterns": [ + { + "include": "#type" + } + ] + } + } + }, + "array-creation-expression": { + "begin": "(?x)\n\\b(new|stackalloc)\\b\\s*\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)?\\s*\n(?=\\[)", + "beginCaptures": { + "1": { + "name": "keyword.operator.expression.$1.cs" + }, + "2": { + "patterns": [ + { + "include": "#type" + } + ] + } + }, + "end": "(?<=\\])", + "patterns": [ + { + "include": "#bracketed-argument-list" + } + ] + }, + "anonymous-object-creation-expression": { + "begin": "\\b(new)\\b\\s*(?=\\{|//|/\\*|$)", + "beginCaptures": { + "1": { + "name": "keyword.operator.expression.new.cs" + } + }, + "end": "(?<=\\})", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#initializer-expression" + } + ] + }, + "bracketed-parameter-list": { + "begin": "(?=(\\[))", + "beginCaptures": { + "1": { + "name": "punctuation.squarebracket.open.cs" + } + }, + "end": "(?=(\\]))", + "endCaptures": { + "1": { + "name": "punctuation.squarebracket.close.cs" + } + }, + "patterns": [ + { + "begin": "(?<=\\[)", + "end": "(?=\\])", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#attribute-section" + }, + { + "include": "#parameter" + }, + { + "include": "#punctuation-comma" + }, + { + "include": "#variable-initializer" + } + ] + } + ] + }, + "parenthesized-parameter-list": { + "begin": "(\\()", + "beginCaptures": { + "0": { + "name": "punctuation.parenthesis.open.cs" + } + }, + "end": "(\\))", + "endCaptures": { + "0": { + "name": "punctuation.parenthesis.close.cs" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#attribute-section" + }, + { + "include": "#parameter" + }, + { + "include": "#punctuation-comma" + }, + { + "include": "#variable-initializer" + } + ] + }, + "parameter": { + "match": "(?x)\n(?:(?:\\b(ref|params|out|in|this)\\b)\\s+)?\n(?<type_name>\n (?:\n (?:ref\\s+)? # ref return\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^()]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)\\s+\n(\\g<identifier>)", + "captures": { + "1": { + "name": "storage.modifier.$1.cs" + }, + "2": { + "patterns": [ + { + "include": "#type" + } + ] + }, + "7": { + "name": "entity.name.variable.parameter.cs" + } + } + }, + "argument-list": { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.parenthesis.open.cs" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.parenthesis.close.cs" + } + }, + "patterns": [ + { + "include": "#named-argument" + }, + { + "include": "#argument" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "bracketed-argument-list": { + "begin": "\\[", + "beginCaptures": { + "0": { + "name": "punctuation.squarebracket.open.cs" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.squarebracket.close.cs" + } + }, + "patterns": [ + { + "include": "#named-argument" + }, + { + "include": "#argument" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "named-argument": { + "begin": "(@?[_[:alpha:]][_[:alnum:]]*)\\s*(:)", + "beginCaptures": { + "1": { + "name": "entity.name.variable.parameter.cs" + }, + "2": { + "name": "punctuation.separator.colon.cs" + } + }, + "end": "(?=(,|\\)|\\]))", + "patterns": [ + { + "include": "#argument" + } + ] + }, + "argument": { + "patterns": [ + { + "name": "storage.modifier.$1.cs", + "match": "\\b(ref|in)\\b" + }, + { + "begin": "\\b(out)\\b", + "beginCaptures": { + "1": { + "name": "storage.modifier.out.cs" + } + }, + "end": "(?=,|\\)|\\])", + "patterns": [ + { + "include": "#declaration-expression-local" + }, + { + "include": "#expression" + } + ] + }, + { + "include": "#expression" + } + ] + }, + "query-expression": { + "begin": "(?x)\n\\b(from)\\b\\s*\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)?\n\\s+(\\g<identifier>)\\b\\s*\n\\b(in)\\b\\s*", + "beginCaptures": { + "1": { + "name": "keyword.operator.expression.query.from.cs" + }, + "2": { + "patterns": [ + { + "include": "#type" + } + ] + }, + "7": { + "name": "entity.name.variable.range-variable.cs" + }, + "8": { + "name": "keyword.operator.expression.query.in.cs" + } + }, + "end": "(?=;|\\))", + "patterns": [ + { + "include": "#query-body" + }, + { + "include": "#expression" + } + ] + }, + "query-body": { + "patterns": [ + { + "include": "#let-clause" + }, + { + "include": "#where-clause" + }, + { + "include": "#join-clause" + }, + { + "include": "#orderby-clause" + }, + { + "include": "#select-clause" + }, + { + "include": "#group-clause" + } + ] + }, + "let-clause": { + "begin": "(?x)\n\\b(let)\\b\\s*\n(@?[_[:alpha:]][_[:alnum:]]*)\\b\\s*\n(=)\\s*", + "beginCaptures": { + "1": { + "name": "keyword.operator.expression.query.let.cs" + }, + "2": { + "name": "entity.name.variable.range-variable.cs" + }, + "3": { + "name": "keyword.operator.assignment.cs" + } + }, + "end": "(?=;|\\))", + "patterns": [ + { + "include": "#query-body" + }, + { + "include": "#expression" + } + ] + }, + "where-clause": { + "begin": "(?x)\n\\b(where)\\b\\s*", + "beginCaptures": { + "1": { + "name": "keyword.operator.expression.query.where.cs" + } + }, + "end": "(?=;|\\))", + "patterns": [ + { + "include": "#query-body" + }, + { + "include": "#expression" + } + ] + }, + "join-clause": { + "begin": "(?x)\n\\b(join)\\b\\s*\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)?\n\\s+(\\g<identifier>)\\b\\s*\n\\b(in)\\b\\s*", + "beginCaptures": { + "1": { + "name": "keyword.operator.expression.query.join.cs" + }, + "2": { + "patterns": [ + { + "include": "#type" + } + ] + }, + "7": { + "name": "entity.name.variable.range-variable.cs" + }, + "8": { + "name": "keyword.operator.expression.query.in.cs" + } + }, + "end": "(?=;|\\))", + "patterns": [ + { + "include": "#join-on" + }, + { + "include": "#join-equals" + }, + { + "include": "#join-into" + }, + { + "include": "#query-body" + }, + { + "include": "#expression" + } + ] + }, + "join-on": { + "match": "\\b(on)\\b\\s*", + "captures": { + "1": { + "name": "keyword.operator.expression.query.on.cs" + } + } + }, + "join-equals": { + "match": "\\b(equals)\\b\\s*", + "captures": { + "1": { + "name": "keyword.operator.expression.query.equals.cs" + } + } + }, + "join-into": { + "match": "(?x)\n\\b(into)\\b\\s*\n(@?[_[:alpha:]][_[:alnum:]]*)\\b\\s*", + "captures": { + "1": { + "name": "keyword.operator.expression.query.into.cs" + }, + "2": { + "name": "entity.name.variable.range-variable.cs" + } + } + }, + "orderby-clause": { + "begin": "\\b(orderby)\\b\\s*", + "beginCaptures": { + "1": { + "name": "keyword.operator.expression.query.orderby.cs" + } + }, + "end": "(?=;|\\))", + "patterns": [ + { + "include": "#ordering-direction" + }, + { + "include": "#query-body" + }, + { + "include": "#expression" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "ordering-direction": { + "match": "\\b(ascending|descending)\\b", + "captures": { + "1": { + "name": "keyword.operator.expression.query.$1.cs" + } + } + }, + "select-clause": { + "begin": "\\b(select)\\b\\s*", + "beginCaptures": { + "1": { + "name": "keyword.operator.expression.query.select.cs" + } + }, + "end": "(?=;|\\))", + "patterns": [ + { + "include": "#query-body" + }, + { + "include": "#expression" + } + ] + }, + "group-clause": { + "begin": "\\b(group)\\b\\s*", + "beginCaptures": { + "1": { + "name": "keyword.operator.expression.query.group.cs" + } + }, + "end": "(?=;|\\))", + "patterns": [ + { + "include": "#group-by" + }, + { + "include": "#group-into" + }, + { + "include": "#query-body" + }, + { + "include": "#expression" + } + ] + }, + "group-by": { + "match": "\\b(by)\\b\\s*", + "captures": { + "1": { + "name": "keyword.operator.expression.query.by.cs" + } + } + }, + "group-into": { + "match": "(?x)\n\\b(into)\\b\\s*\n(@?[_[:alpha:]][_[:alnum:]]*)\\b\\s*", + "captures": { + "1": { + "name": "keyword.operator.expression.query.into.cs" + }, + "2": { + "name": "entity.name.variable.range-variable.cs" + } + } + }, + "anonymous-method-expression": { + "patterns": [ + { + "begin": "(?x)\n((?:\\b(?:async|static)\\b\\s*)*)\n(?:\n (@?[_[:alpha:]][_[:alnum:]]*)\\b|\n (\\()\n (?<tuple>(?:[^()]|\\(\\g<tuple>\\))*)\n (\\))\n)\\s*\n(=>)", + "beginCaptures": { + "1": { + "patterns": [ + { + "match": "async|static", + "name": "storage.modifier.$0.cs" + } + ] + }, + "2": { + "name": "entity.name.variable.parameter.cs" + }, + "3": { + "name": "punctuation.parenthesis.open.cs" + }, + "4": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#explicit-anonymous-function-parameter" + }, + { + "include": "#implicit-anonymous-function-parameter" + }, + { + "include": "#default-argument" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "5": { + "name": "punctuation.parenthesis.close.cs" + }, + "6": { + "name": "keyword.operator.arrow.cs" + } + }, + "end": "(?=[,;)}])", + "patterns": [ + { + "include": "#intrusive" + }, + { + "begin": "(?={)", + "end": "(?=[,;)}])", + "patterns": [ + { + "include": "#block" + }, + { + "include": "#intrusive" + } + ] + }, + { + "begin": "\\b(ref)\\b|(?=\\S)", + "beginCaptures": { + "1": { + "name": "storage.modifier.ref.cs" + } + }, + "end": "(?=[,;)}])", + "patterns": [ + { + "include": "#expression" + } + ] + } + ] + }, + { + "begin": "(?x)\n((?:\\b(?:async|static)\\b\\s*)*)\n\\b(delegate)\\b\\s*", + "beginCaptures": { + "1": { + "patterns": [ + { + "match": "async|static", + "name": "storage.modifier.$0.cs" + } + ] + }, + "2": { + "name": "storage.type.delegate.cs" + } + }, + "end": "(?<=})|(?=[,;)}])", + "patterns": [ + { + "include": "#intrusive" + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.parenthesis.open.cs" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.parenthesis.close.cs" + } + }, + "patterns": [ + { + "include": "#intrusive" + }, + { + "include": "#explicit-anonymous-function-parameter" + }, + { + "include": "#punctuation-comma" + } + ] + }, + { + "include": "#block" + } + ] + } + ] + }, + "explicit-anonymous-function-parameter": { + "match": "(?x)\n(?:\\b(ref|params|out|in)\\b\\s*)?\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args><(?:[^<>]|\\g<type_args>)*>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^()]|\\g<tuple>)*\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)\\s*\n\\b(\\g<identifier>)\\b", + "captures": { + "1": { + "name": "storage.modifier.$1.cs" + }, + "2": { + "patterns": [ + { + "include": "#type" + } + ] + }, + "7": { + "name": "entity.name.variable.parameter.cs" + } + } + }, + "implicit-anonymous-function-parameter": { + "match": "\\@?[_[:alpha:]][_[:alnum:]]*\\b", + "name": "entity.name.variable.parameter.cs" + }, + "default-argument": { + "begin": "=", + "beginCaptures": { + "0": { + "name": "keyword.operator.assignment.cs" + } + }, + "end": "(?=,|\\))", + "patterns": [ + { + "include": "#expression" + } + ] + }, + "type": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#ref-modifier" + }, + { + "include": "#readonly-modifier" + }, + { + "include": "#tuple-type" + }, + { + "include": "#type-builtin" + }, + { + "include": "#type-name" + }, + { + "include": "#type-arguments" + }, + { + "include": "#type-array-suffix" + }, + { + "include": "#type-nullable-suffix" + }, + { + "include": "#type-pointer-suffix" + } + ] + }, + "ref-modifier": { + "name": "storage.modifier.ref.cs", + "match": "\\bref\\b" + }, + "readonly-modifier": { + "name": "storage.modifier.readonly.cs", + "match": "\\breadonly\\b" + }, + "tuple-type": { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.parenthesis.open.cs" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.parenthesis.close.cs" + } + }, + "patterns": [ + { + "include": "#tuple-element" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "tuple-element": { + "match": "(?x)\n(?<type_name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name_and_type_args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type_args>\\s*<(?:[^<>]|\\g<type_args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name_and_type_args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s* # array suffix?\n \\[\n (?:\\s*,\\s*)* # commata for multi-dimensional arrays\n \\]\n \\s*\n (?:\\?)? # arrays can be nullable reference types\n \\s*\n )*\n )\n)\n(?:(?<tuple_name>\\g<identifier>)\\b)?", + "captures": { + "1": { + "patterns": [ + { + "include": "#type" + } + ] + }, + "6": { + "name": "entity.name.variable.tuple-element.cs" + } + } + }, + "type-builtin": { + "match": "\\b(bool|s?byte|u?short|n?u?int|u?long|float|double|decimal|char|string|object|void|dynamic)\\b", + "captures": { + "1": { + "name": "keyword.type.$1.cs" + } + } + }, + "type-name": { + "patterns": [ + { + "match": "(@?[_[:alpha:]][_[:alnum:]]*)\\s*(\\:\\:)", + "captures": { + "1": { + "name": "entity.name.type.alias.cs" + }, + "2": { + "name": "punctuation.separator.coloncolon.cs" + } + } + }, + { + "match": "(@?[_[:alpha:]][_[:alnum:]]*)\\s*(\\.)", + "captures": { + "1": { + "name": "entity.name.type.cs" + }, + "2": { + "name": "punctuation.accessor.cs" + } + } + }, + { + "match": "(\\.)\\s*(@?[_[:alpha:]][_[:alnum:]]*)", + "captures": { + "1": { + "name": "punctuation.accessor.cs" + }, + "2": { + "name": "entity.name.type.cs" + } + } + }, + { + "name": "entity.name.type.cs", + "match": "@?[_[:alpha:]][_[:alnum:]]*" + } + ] + }, + "type-arguments": { + "begin": "<", + "beginCaptures": { + "0": { + "name": "punctuation.definition.typeparameters.begin.cs" + } + }, + "end": ">", + "endCaptures": { + "0": { + "name": "punctuation.definition.typeparameters.end.cs" + } + }, + "patterns": [ + { + "include": "#type" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "type-array-suffix": { + "begin": "\\[", + "beginCaptures": { + "0": { + "name": "punctuation.squarebracket.open.cs" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.squarebracket.close.cs" + } + }, + "patterns": [ + { + "include": "#intrusive" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "type-nullable-suffix": { + "match": "\\?", + "name": "punctuation.separator.question-mark.cs" + }, + "type-pointer-suffix": { + "match": "\\*", + "name": "punctuation.separator.asterisk.cs" + }, + "operator-assignment": { + "name": "keyword.operator.assignment.cs", + "match": "(?<!=|!)(=)(?!=)" + }, + "punctuation-comma": { + "name": "punctuation.separator.comma.cs", + "match": "," + }, + "punctuation-semicolon": { + "name": "punctuation.terminator.statement.cs", + "match": ";" + }, + "punctuation-accessor": { + "name": "punctuation.accessor.cs", + "match": "\\." + }, + "intrusive": { + "patterns": [ + { + "include": "#preprocessor" + }, + { + "include": "#comment" + } + ] + }, + "preprocessor": { + "name": "meta.preprocessor.cs", + "begin": "^\\s*(\\#)\\s*", + "beginCaptures": { + "1": { + "name": "punctuation.separator.hash.cs" + } + }, + "end": "(?<=$)", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#preprocessor-define-or-undef" + }, + { + "include": "#preprocessor-if-or-elif" + }, + { + "include": "#preprocessor-else-or-endif" + }, + { + "include": "#preprocessor-warning-or-error" + }, + { + "include": "#preprocessor-region" + }, + { + "include": "#preprocessor-endregion" + }, + { + "include": "#preprocessor-load" + }, + { + "include": "#preprocessor-r" + }, + { + "include": "#preprocessor-line" + }, + { + "include": "#preprocessor-pragma-warning" + }, + { + "include": "#preprocessor-pragma-checksum" + } + ] + }, + "preprocessor-define-or-undef": { + "match": "\\b(?:(define)|(undef))\\b\\s*\\b([_[:alpha:]][_[:alnum:]]*)\\b", + "captures": { + "1": { + "name": "keyword.preprocessor.define.cs" + }, + "2": { + "name": "keyword.preprocessor.undef.cs" + }, + "3": { + "name": "entity.name.variable.preprocessor.symbol.cs" + } + } + }, + "preprocessor-if-or-elif": { + "begin": "\\b(?:(if)|(elif))\\b", + "beginCaptures": { + "1": { + "name": "keyword.preprocessor.if.cs" + }, + "2": { + "name": "keyword.preprocessor.elif.cs" + } + }, + "end": "(?=$)", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#preprocessor-expression" + } + ] + }, + "preprocessor-else-or-endif": { + "match": "\\b(?:(else)|(endif))\\b", + "captures": { + "1": { + "name": "keyword.preprocessor.else.cs" + }, + "2": { + "name": "keyword.preprocessor.endif.cs" + } + } + }, + "preprocessor-warning-or-error": { + "match": "\\b(?:(warning)|(error))\\b\\s*(.*)(?=$)", + "captures": { + "1": { + "name": "keyword.preprocessor.warning.cs" + }, + "2": { + "name": "keyword.preprocessor.error.cs" + }, + "3": { + "name": "string.unquoted.preprocessor.message.cs" + } + } + }, + "preprocessor-load": { + "begin": "\\b(load)\\b", + "beginCaptures": { + "1": { + "name": "keyword.preprocessor.load.cs" + } + }, + "end": "(?=$)", + "patterns": [ + { + "match": "\\\"[^\"]*\\\"", + "captures": { + "0": { + "name": "string.quoted.double.cs" + } + } + } + ] + }, + "preprocessor-r": { + "begin": "\\b(r)\\b", + "beginCaptures": { + "1": { + "name": "keyword.preprocessor.r.cs" + } + }, + "end": "(?=$)", + "patterns": [ + { + "match": "\\\"[^\"]*\\\"", + "captures": { + "0": { + "name": "string.quoted.double.cs" + } + } + } + ] + }, + "preprocessor-region": { + "match": "\\b(region)\\b\\s*(.*)(?=$)", + "captures": { + "1": { + "name": "keyword.preprocessor.region.cs" + }, + "2": { + "name": "string.unquoted.preprocessor.message.cs" + } + } + }, + "preprocessor-endregion": { + "match": "\\b(endregion)\\b", + "captures": { + "1": { + "name": "keyword.preprocessor.endregion.cs" + } + } + }, + "preprocessor-line": { + "begin": "\\b(line)\\b", + "beginCaptures": { + "1": { + "name": "keyword.preprocessor.line.cs" + } + }, + "end": "(?=$)", + "patterns": [ + { + "match": "\\b(?:(default|hidden))", + "captures": { + "1": { + "name": "keyword.preprocessor.default.cs" + }, + "2": { + "name": "keyword.preprocessor.hidden.cs" + } + } + }, + { + "match": "[0-9]+", + "captures": { + "0": { + "name": "constant.numeric.decimal.cs" + } + } + }, + { + "match": "\\\"[^\"]*\\\"", + "captures": { + "0": { + "name": "string.quoted.double.cs" + } + } + } + ] + }, + "preprocessor-pragma-warning": { + "match": "\\b(pragma)\\b\\s*\\b(warning)\\b\\s*\\b(?:(disable)|(restore))\\b(\\s*[0-9]+(?:\\s*,\\s*[0-9]+)?)?", + "captures": { + "1": { + "name": "keyword.preprocessor.pragma.cs" + }, + "2": { + "name": "keyword.preprocessor.warning.cs" + }, + "3": { + "name": "keyword.preprocessor.disable.cs" + }, + "4": { + "name": "keyword.preprocessor.restore.cs" + }, + "5": { + "patterns": [ + { + "match": "[0-9]+", + "captures": { + "0": { + "name": "constant.numeric.decimal.cs" + } + } + }, + { + "include": "#punctuation-comma" + } + ] + } + } + }, + "preprocessor-pragma-checksum": { + "match": "\\b(pragma)\\b\\s*\\b(checksum)\\b\\s*(\\\"[^\"]*\\\")\\s*(\\\"[^\"]*\\\")\\s*(\\\"[^\"]*\\\")", + "captures": { + "1": { + "name": "keyword.preprocessor.pragma.cs" + }, + "2": { + "name": "keyword.preprocessor.checksum.cs" + }, + "3": { + "name": "string.quoted.double.cs" + }, + "4": { + "name": "string.quoted.double.cs" + }, + "5": { + "name": "string.quoted.double.cs" + } + } + }, + "preprocessor-expression": { + "patterns": [ + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.parenthesis.open.cs" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.parenthesis.close.cs" + } + }, + "patterns": [ + { + "include": "#preprocessor-expression" + } + ] + }, + { + "match": "\\b(?:(true)|(false)|([_[:alpha:]][_[:alnum:]]*))\\b", + "captures": { + "1": { + "name": "constant.language.boolean.true.cs" + }, + "2": { + "name": "constant.language.boolean.false.cs" + }, + "3": { + "name": "entity.name.variable.preprocessor.symbol.cs" + } + } + }, + { + "match": "(==|!=)|(\\!|&&|\\|\\|)", + "captures": { + "1": { + "name": "keyword.operator.comparison.cs" + }, + "2": { + "name": "keyword.operator.logical.cs" + } + } + } + ] + }, + "comment": { + "patterns": [ + { + "name": "comment.block.documentation.cs", + "begin": "(^\\s+)?(///)(?!/)", + "while": "^(\\s*)(///)(?!/)", + "captures": { + "1": { + "name": "punctuation.whitespace.comment.leading.cs" + }, + "2": { + "name": "punctuation.definition.comment.cs" + } + }, + "patterns": [ + { + "include": "#xml-doc-comment" + } + ] + }, + { + "name": "comment.block.documentation.cs", + "begin": "(^\\s+)?(/\\*\\*)(?!/)", + "end": "(^\\s+)?(\\*/)", + "captures": { + "1": { + "name": "punctuation.whitespace.comment.leading.cs" + }, + "2": { + "name": "punctuation.definition.comment.cs" + } + }, + "patterns": [ + { + "begin": "\\G(?=(?~\\*/)$)", + "while": "^(\\s*+)(\\*(?!/))?(?=(?~\\*/)$)", + "whileCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.cs" + }, + "2": { + "name": "punctuation.definition.comment.cs" + } + }, + "patterns": [ + { + "include": "#xml-doc-comment" + } + ] + }, + { + "include": "#xml-doc-comment" + } + ] + }, + { + "name": "comment.line.double-slash.cs", + "begin": "(^\\s+)?(//).*$", + "while": "^(\\s*)(//).*$", + "captures": { + "1": { + "name": "punctuation.whitespace.comment.leading.cs" + }, + "2": { + "name": "punctuation.definition.comment.cs" + } + } + }, + { + "name": "comment.block.cs", + "begin": "/\\*", + "end": "\\*/", + "captures": { + "0": { + "name": "punctuation.definition.comment.cs" + } + } + } + ] + }, + "xml-doc-comment": { + "patterns": [ + { + "include": "#xml-comment" + }, + { + "include": "#xml-character-entity" + }, + { + "include": "#xml-cdata" + }, + { + "include": "#xml-tag" + } + ] + }, + "xml-tag": { + "name": "meta.tag.cs", + "begin": "(?x)\n(</?)\n(\n (?:\n ([-_[:alnum:]]+)\n (:)\n )?\n ([-_[:alnum:]]+)\n)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.cs" + }, + "2": { + "name": "entity.name.tag.cs" + }, + "3": { + "name": "entity.name.tag.namespace.cs" + }, + "4": { + "name": "punctuation.separator.colon.cs" + }, + "5": { + "name": "entity.name.tag.localname.cs" + } + }, + "end": "(/?>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.cs" + } + }, + "patterns": [ + { + "include": "#xml-attribute" + } + ] + }, + "xml-attribute": { + "patterns": [ + { + "match": "(?x)\n(?:^|\\s+)\n(\n (?:\n ([-_[:alnum:]]+)\n (:)\n )?\n ([-_[:alnum:]]+)\n)\n(=)", + "captures": { + "1": { + "name": "entity.other.attribute-name.cs" + }, + "2": { + "name": "entity.other.attribute-name.namespace.cs" + }, + "3": { + "name": "punctuation.separator.colon.cs" + }, + "4": { + "name": "entity.other.attribute-name.localname.cs" + }, + "5": { + "name": "punctuation.separator.equals.cs" + } + } + }, + { + "include": "#xml-string" + } + ] + }, + "xml-cdata": { + "name": "string.unquoted.cdata.cs", + "begin": "<!\\[CDATA\\[", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.cs" + } + }, + "end": "\\]\\]>", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.cs" + } + } + }, + "xml-string": { + "patterns": [ + { + "name": "string.quoted.single.cs", + "begin": "\\'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.cs" + } + }, + "end": "\\'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.cs" + } + }, + "patterns": [ + { + "include": "#xml-character-entity" + } + ] + }, + { + "name": "string.quoted.double.cs", + "begin": "\\\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.cs" + } + }, + "end": "\\\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.cs" + } + }, + "patterns": [ + { + "include": "#xml-character-entity" + } + ] + } + ] + }, + "xml-character-entity": { + "patterns": [ + { + "name": "constant.character.entity.cs", + "match": "(?x)\n(&)\n(\n (?:[[:alpha:]:_][[:alnum:]:_.-]*)|\n (?:\\#[[:digit:]]+)|\n (?:\\#x[[:xdigit:]]+)\n)\n(;)", + "captures": { + "1": { + "name": "punctuation.definition.constant.cs" + }, + "3": { + "name": "punctuation.definition.constant.cs" + } + } + }, + { + "name": "invalid.illegal.bad-ampersand.cs", + "match": "&" + } + ] + }, + "xml-comment": { + "name": "comment.block.cs", + "begin": "<!--", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.cs" + } + }, + "end": "-->", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.cs" + } + } + } + } +} diff --git a/docs/shiki/languages/css.tmLanguage.json b/docs/shiki/languages/css.tmLanguage.json new file mode 100644 index 00000000..cb6252f3 --- /dev/null +++ b/docs/shiki/languages/css.tmLanguage.json @@ -0,0 +1,1865 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/microsoft/vscode-css/blob/master/grammars/css.cson", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/microsoft/vscode-css/commit/c216f777497265700ff336f739328e5197e012cd", + "name": "css", + "scopeName": "source.css", + "patterns": [ + { + "include": "#comment-block" + }, + { + "include": "#escapes" + }, + { + "include": "#combinators" + }, + { + "include": "#selector" + }, + { + "include": "#at-rules" + }, + { + "include": "#rule-list" + } + ], + "repository": { + "at-rules": { + "patterns": [ + { + "begin": "\\A(?:\\xEF\\xBB\\xBF)?(?i:(?=\\s*@charset\\b))", + "end": ";|(?=$)", + "endCaptures": { + "0": { + "name": "punctuation.terminator.rule.css" + } + }, + "name": "meta.at-rule.charset.css", + "patterns": [ + { + "captures": { + "1": { + "name": "invalid.illegal.not-lowercase.charset.css" + }, + "2": { + "name": "invalid.illegal.leading-whitespace.charset.css" + }, + "3": { + "name": "invalid.illegal.no-whitespace.charset.css" + }, + "4": { + "name": "invalid.illegal.whitespace.charset.css" + }, + "5": { + "name": "invalid.illegal.not-double-quoted.charset.css" + }, + "6": { + "name": "invalid.illegal.unclosed-string.charset.css" + }, + "7": { + "name": "invalid.illegal.unexpected-characters.charset.css" + } + }, + "match": "(?x) # Possible errors:\n\\G\n((?!@charset)@\\w+) # Not lowercase (@charset is case-sensitive)\n|\n\\G(\\s+) # Preceding whitespace\n|\n(@charset\\S[^;]*) # No whitespace after @charset\n|\n(?<=@charset) # Before quoted charset name\n(\\x20{2,}|\\t+) # More than one space used, or a tab\n|\n(?<=@charset\\x20) # Beginning of charset name\n([^\";]+) # Not double-quoted\n|\n(\"[^\"]+$) # Unclosed quote\n|\n(?<=\") # After charset name\n([^;]+) # Unexpected junk instead of semicolon" + }, + { + "captures": { + "1": { + "name": "keyword.control.at-rule.charset.css" + }, + "2": { + "name": "punctuation.definition.keyword.css" + } + }, + "match": "((@)charset)(?=\\s)" + }, + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.css" + } + }, + "end": "\"|$", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.css" + } + }, + "name": "string.quoted.double.css", + "patterns": [ + { + "begin": "(?:\\G|^)(?=(?:[^\"])+$)", + "end": "$", + "name": "invalid.illegal.unclosed.string.css" + } + ] + } + ] + }, + { + "begin": "(?i)((@)import)(?:\\s+|$|(?=['\"]|/\\*))", + "beginCaptures": { + "1": { + "name": "keyword.control.at-rule.import.css" + }, + "2": { + "name": "punctuation.definition.keyword.css" + } + }, + "end": ";", + "endCaptures": { + "0": { + "name": "punctuation.terminator.rule.css" + } + }, + "name": "meta.at-rule.import.css", + "patterns": [ + { + "begin": "\\G\\s*(?=/\\*)", + "end": "(?<=\\*/)\\s*", + "patterns": [ + { + "include": "#comment-block" + } + ] + }, + { + "include": "#string" + }, + { + "include": "#url" + }, + { + "include": "#media-query-list" + } + ] + }, + { + "begin": "(?i)((@)font-face)(?=\\s*|{|/\\*|$)", + "beginCaptures": { + "1": { + "name": "keyword.control.at-rule.font-face.css" + }, + "2": { + "name": "punctuation.definition.keyword.css" + } + }, + "end": "(?!\\G)", + "name": "meta.at-rule.font-face.css", + "patterns": [ + { + "include": "#comment-block" + }, + { + "include": "#escapes" + }, + { + "include": "#rule-list" + } + ] + }, + { + "begin": "(?i)(@)page(?=[\\s:{]|/\\*|$)", + "captures": { + "0": { + "name": "keyword.control.at-rule.page.css" + }, + "1": { + "name": "punctuation.definition.keyword.css" + } + }, + "end": "(?=\\s*($|[:{;]))", + "name": "meta.at-rule.page.css", + "patterns": [ + { + "include": "#rule-list" + } + ] + }, + { + "begin": "(?i)(?=@media(\\s|\\(|/\\*|$))", + "end": "(?<=})(?!\\G)", + "patterns": [ + { + "begin": "(?i)\\G(@)media", + "beginCaptures": { + "0": { + "name": "keyword.control.at-rule.media.css" + }, + "1": { + "name": "punctuation.definition.keyword.css" + } + }, + "end": "(?=\\s*[{;])", + "name": "meta.at-rule.media.header.css", + "patterns": [ + { + "include": "#media-query-list" + } + ] + }, + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.section.media.begin.bracket.curly.css" + } + }, + "end": "}", + "endCaptures": { + "0": { + "name": "punctuation.section.media.end.bracket.curly.css" + } + }, + "name": "meta.at-rule.media.body.css", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + { + "begin": "(?i)(?=@counter-style([\\s'\"{;]|/\\*|$))", + "end": "(?<=})(?!\\G)", + "patterns": [ + { + "begin": "(?i)\\G(@)counter-style", + "beginCaptures": { + "0": { + "name": "keyword.control.at-rule.counter-style.css" + }, + "1": { + "name": "punctuation.definition.keyword.css" + } + }, + "end": "(?=\\s*{)", + "name": "meta.at-rule.counter-style.header.css", + "patterns": [ + { + "include": "#comment-block" + }, + { + "include": "#escapes" + }, + { + "captures": { + "0": { + "patterns": [ + { + "include": "#escapes" + } + ] + } + }, + "match": "(?x)\n(?:[-a-zA-Z_] | [^\\x00-\\x7F]) # First letter\n(?:[-a-zA-Z0-9_] | [^\\x00-\\x7F] # Remainder of identifier\n |\\\\(?:[0-9a-fA-F]{1,6}|.)\n)*", + "name": "variable.parameter.style-name.css" + } + ] + }, + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.section.property-list.begin.bracket.curly.css" + } + }, + "end": "}", + "endCaptures": { + "0": { + "name": "punctuation.section.property-list.end.bracket.curly.css" + } + }, + "name": "meta.at-rule.counter-style.body.css", + "patterns": [ + { + "include": "#comment-block" + }, + { + "include": "#escapes" + }, + { + "include": "#rule-list-innards" + } + ] + } + ] + }, + { + "begin": "(?i)(?=@document([\\s'\"{;]|/\\*|$))", + "end": "(?<=})(?!\\G)", + "patterns": [ + { + "begin": "(?i)\\G(@)document", + "beginCaptures": { + "0": { + "name": "keyword.control.at-rule.document.css" + }, + "1": { + "name": "punctuation.definition.keyword.css" + } + }, + "end": "(?=\\s*[{;])", + "name": "meta.at-rule.document.header.css", + "patterns": [ + { + "begin": "(?i)(?<![\\w-])(url-prefix|domain|regexp)(\\()", + "beginCaptures": { + "1": { + "name": "support.function.document-rule.css" + }, + "2": { + "name": "punctuation.section.function.begin.bracket.round.css" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.function.end.bracket.round.css" + } + }, + "name": "meta.function.document-rule.css", + "patterns": [ + { + "include": "#string" + }, + { + "include": "#comment-block" + }, + { + "include": "#escapes" + }, + { + "match": "[^'\")\\s]+", + "name": "variable.parameter.document-rule.css" + } + ] + }, + { + "include": "#url" + }, + { + "include": "#commas" + }, + { + "include": "#comment-block" + }, + { + "include": "#escapes" + } + ] + }, + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.section.document.begin.bracket.curly.css" + } + }, + "end": "}", + "endCaptures": { + "0": { + "name": "punctuation.section.document.end.bracket.curly.css" + } + }, + "name": "meta.at-rule.document.body.css", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + { + "begin": "(?i)(?=@(?:-(?:webkit|moz|o|ms)-)?keyframes([\\s'\"{;]|/\\*|$))", + "end": "(?<=})(?!\\G)", + "patterns": [ + { + "begin": "(?i)\\G(@)(?:-(?:webkit|moz|o|ms)-)?keyframes", + "beginCaptures": { + "0": { + "name": "keyword.control.at-rule.keyframes.css" + }, + "1": { + "name": "punctuation.definition.keyword.css" + } + }, + "end": "(?=\\s*{)", + "name": "meta.at-rule.keyframes.header.css", + "patterns": [ + { + "include": "#comment-block" + }, + { + "include": "#escapes" + }, + { + "captures": { + "0": { + "patterns": [ + { + "include": "#escapes" + } + ] + } + }, + "match": "(?x)\n(?:[-a-zA-Z_] | [^\\x00-\\x7F]) # First letter\n(?:[-a-zA-Z0-9_] | [^\\x00-\\x7F] # Remainder of identifier\n |\\\\(?:[0-9a-fA-F]{1,6}|.)\n)*", + "name": "variable.parameter.keyframe-list.css" + } + ] + }, + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.section.keyframes.begin.bracket.curly.css" + } + }, + "end": "}", + "endCaptures": { + "0": { + "name": "punctuation.section.keyframes.end.bracket.curly.css" + } + }, + "name": "meta.at-rule.keyframes.body.css", + "patterns": [ + { + "include": "#comment-block" + }, + { + "include": "#escapes" + }, + { + "captures": { + "1": { + "name": "entity.other.keyframe-offset.css" + }, + "2": { + "name": "entity.other.keyframe-offset.percentage.css" + } + }, + "match": "(?xi)\n(?<![\\w-]) (from|to) (?![\\w-]) # Keywords for 0% | 100%\n|\n([-+]?(?:\\d+(?:\\.\\d+)?|\\.\\d+)%) # Percentile value" + }, + { + "include": "#rule-list" + } + ] + } + ] + }, + { + "begin": "(?i)(?=@supports(\\s|\\(|/\\*|$))", + "end": "(?<=})(?!\\G)|(?=;)", + "patterns": [ + { + "begin": "(?i)\\G(@)supports", + "beginCaptures": { + "0": { + "name": "keyword.control.at-rule.supports.css" + }, + "1": { + "name": "punctuation.definition.keyword.css" + } + }, + "end": "(?=\\s*[{;])", + "name": "meta.at-rule.supports.header.css", + "patterns": [ + { + "include": "#feature-query-operators" + }, + { + "include": "#feature-query" + }, + { + "include": "#comment-block" + }, + { + "include": "#escapes" + } + ] + }, + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.section.supports.begin.bracket.curly.css" + } + }, + "end": "}", + "endCaptures": { + "0": { + "name": "punctuation.section.supports.end.bracket.curly.css" + } + }, + "name": "meta.at-rule.supports.body.css", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + { + "begin": "(?i)((@)(-(ms|o)-)?viewport)(?=[\\s'\"{;]|/\\*|$)", + "beginCaptures": { + "1": { + "name": "keyword.control.at-rule.viewport.css" + }, + "2": { + "name": "punctuation.definition.keyword.css" + } + }, + "end": "(?=\\s*[@{;])", + "name": "meta.at-rule.viewport.css", + "patterns": [ + { + "include": "#comment-block" + }, + { + "include": "#escapes" + } + ] + }, + { + "begin": "(?i)((@)font-feature-values)(?=[\\s'\"{;]|/\\*|$)\\s*", + "beginCaptures": { + "1": { + "name": "keyword.control.at-rule.font-feature-values.css" + }, + "2": { + "name": "punctuation.definition.keyword.css" + } + }, + "contentName": "variable.parameter.font-name.css", + "end": "(?=\\s*[@{;])", + "name": "meta.at-rule.font-features.css", + "patterns": [ + { + "include": "#comment-block" + }, + { + "include": "#escapes" + } + ] + }, + { + "include": "#font-features" + }, + { + "begin": "(?i)((@)namespace)(?=[\\s'\";]|/\\*|$)", + "beginCaptures": { + "1": { + "name": "keyword.control.at-rule.namespace.css" + }, + "2": { + "name": "punctuation.definition.keyword.css" + } + }, + "end": ";|(?=[@{])", + "endCaptures": { + "0": { + "name": "punctuation.terminator.rule.css" + } + }, + "name": "meta.at-rule.namespace.css", + "patterns": [ + { + "include": "#url" + }, + { + "captures": { + "1": { + "patterns": [ + { + "include": "#comment-block" + } + ] + }, + "2": { + "name": "entity.name.function.namespace-prefix.css", + "patterns": [ + { + "include": "#escapes" + } + ] + } + }, + "match": "(?xi)\n(?:\\G|^|(?<=\\s))\n(?=\n (?<=\\s|^) # Starts with whitespace\n (?:[-a-zA-Z_]|[^\\x00-\\x7F]) # Then a valid identifier character\n |\n \\s* # Possible adjoining whitespace\n /\\*(?:[^*]|\\*[^/])*\\*/ # Injected comment\n)\n(.*?) # Grouped to embed #comment-block\n(\n (?:[-a-zA-Z_] | [^\\x00-\\x7F]) # First letter\n (?:[-a-zA-Z0-9_] | [^\\x00-\\x7F] # Remainder of identifier\n |\\\\(?:[0-9a-fA-F]{1,6}|.)\n )*\n)" + }, + { + "include": "#comment-block" + }, + { + "include": "#escapes" + }, + { + "include": "#string" + } + ] + }, + { + "begin": "(?i)(?=@[\\w-]+[^;]+;s*$)", + "end": "(?<=;)(?!\\G)", + "patterns": [ + { + "begin": "(?i)\\G(@)[\\w-]+", + "beginCaptures": { + "0": { + "name": "keyword.control.at-rule.css" + }, + "1": { + "name": "punctuation.definition.keyword.css" + } + }, + "end": ";", + "endCaptures": { + "0": { + "name": "punctuation.terminator.rule.css" + } + }, + "name": "meta.at-rule.header.css" + } + ] + }, + { + "begin": "(?i)(?=@[\\w-]+(\\s|\\(|{|/\\*|$))", + "end": "(?<=})(?!\\G)", + "patterns": [ + { + "begin": "(?i)\\G(@)[\\w-]+", + "beginCaptures": { + "0": { + "name": "keyword.control.at-rule.css" + }, + "1": { + "name": "punctuation.definition.keyword.css" + } + }, + "end": "(?=\\s*[{;])", + "name": "meta.at-rule.header.css" + }, + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.section.begin.bracket.curly.css" + } + }, + "end": "}", + "endCaptures": { + "0": { + "name": "punctuation.section.end.bracket.curly.css" + } + }, + "name": "meta.at-rule.body.css", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + } + ] + }, + "color-keywords": { + "patterns": [ + { + "match": "(?i)(?<![\\w-])(aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)(?![\\w-])", + "name": "support.constant.color.w3c-standard-color-name.css" + }, + { + "match": "(?xi) (?<![\\w-])\n(aliceblue|antiquewhite|aquamarine|azure|beige|bisque|blanchedalmond|blueviolet|brown|burlywood\n|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan\n|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange\n|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise\n|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen\n|gainsboro|ghostwhite|gold|goldenrod|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki\n|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow\n|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray\n|lightslategrey|lightsteelblue|lightyellow|limegreen|linen|magenta|mediumaquamarine|mediumblue\n|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise\n|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|oldlace|olivedrab|orangered\n|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum\n|powderblue|rebeccapurple|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell\n|sienna|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|thistle|tomato\n|transparent|turquoise|violet|wheat|whitesmoke|yellowgreen)\n(?![\\w-])", + "name": "support.constant.color.w3c-extended-color-name.css" + }, + { + "match": "(?i)(?<![\\w-])currentColor(?![\\w-])", + "name": "support.constant.color.current.css" + }, + { + "match": "(?xi) (?<![\\w-])\n(ActiveBorder|ActiveCaption|AppWorkspace|Background|ButtonFace|ButtonHighlight|ButtonShadow\n|ButtonText|CaptionText|GrayText|Highlight|HighlightText|InactiveBorder|InactiveCaption\n|InactiveCaptionText|InfoBackground|InfoText|Menu|MenuText|Scrollbar|ThreeDDarkShadow\n|ThreeDFace|ThreeDHighlight|ThreeDLightShadow|ThreeDShadow|Window|WindowFrame|WindowText)\n(?![\\w-])", + "name": "invalid.deprecated.color.system.css" + } + ] + }, + "combinators": { + "patterns": [ + { + "match": "/deep/|>>>", + "name": "invalid.deprecated.combinator.css" + }, + { + "match": ">>|>|\\+|~", + "name": "keyword.operator.combinator.css" + } + ] + }, + "commas": { + "match": ",", + "name": "punctuation.separator.list.comma.css" + }, + "comment-block": { + "begin": "/\\*", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.begin.css" + } + }, + "end": "\\*/", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.end.css" + } + }, + "name": "comment.block.css" + }, + "escapes": { + "patterns": [ + { + "match": "\\\\[0-9a-fA-F]{1,6}", + "name": "constant.character.escape.codepoint.css" + }, + { + "begin": "\\\\$\\s*", + "end": "^(?<!\\G)", + "name": "constant.character.escape.newline.css" + }, + { + "match": "\\\\.", + "name": "constant.character.escape.css" + } + ] + }, + "feature-query": { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.condition.begin.bracket.round.css" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.condition.end.bracket.round.css" + } + }, + "name": "meta.feature-query.css", + "patterns": [ + { + "include": "#feature-query-operators" + }, + { + "include": "#feature-query" + } + ] + }, + "feature-query-operators": { + "patterns": [ + { + "match": "(?i)(?<=[\\s()]|^|\\*/)(and|not|or)(?=[\\s()]|/\\*|$)", + "name": "keyword.operator.logical.feature.$1.css" + }, + { + "include": "#rule-list-innards" + } + ] + }, + "font-features": { + "begin": "(?xi)\n((@)(annotation|character-variant|ornaments|styleset|stylistic|swash))\n(?=[\\s@'\"{;]|/\\*|$)", + "beginCaptures": { + "1": { + "name": "keyword.control.at-rule.${3:/downcase}.css" + }, + "2": { + "name": "punctuation.definition.keyword.css" + } + }, + "end": "(?<=})", + "name": "meta.at-rule.${3:/downcase}.css", + "patterns": [ + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.section.property-list.begin.bracket.curly.css" + } + }, + "end": "}", + "endCaptures": { + "0": { + "name": "punctuation.section.property-list.end.bracket.curly.css" + } + }, + "name": "meta.property-list.font-feature.css", + "patterns": [ + { + "captures": { + "0": { + "patterns": [ + { + "include": "#escapes" + } + ] + } + }, + "match": "(?x)\n(?: [-a-zA-Z_] | [^\\x00-\\x7F] ) # First letter\n(?: [-a-zA-Z0-9_] | [^\\x00-\\x7F] # Remainder of identifier\n | \\\\(?:[0-9a-fA-F]{1,6}|.)\n)*", + "name": "variable.font-feature.css" + }, + { + "include": "#rule-list-innards" + } + ] + } + ] + }, + "functions": { + "patterns": [ + { + "begin": "(?i)(?<![\\w-])(calc)(\\()", + "beginCaptures": { + "1": { + "name": "support.function.calc.css" + }, + "2": { + "name": "punctuation.section.function.begin.bracket.round.css" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.function.end.bracket.round.css" + } + }, + "name": "meta.function.calc.css", + "patterns": [ + { + "match": "[*/]|(?<=\\s|^)[-+](?=\\s|$)", + "name": "keyword.operator.arithmetic.css" + }, + { + "include": "#property-values" + } + ] + }, + { + "begin": "(?i)(?<![\\w-])(rgba?|rgb|hsla?|hsl|hwb|lab|oklab|lch|oklch|color)(\\()", + "beginCaptures": { + "1": { + "name": "support.function.misc.css" + }, + "2": { + "name": "punctuation.section.function.begin.bracket.round.css" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.function.end.bracket.round.css" + } + }, + "name": "meta.function.color.css", + "patterns": [ + { + "include": "#property-values" + } + ] + }, + { + "begin": "(?xi) (?<![\\w-])\n(\n (?:-webkit-|-moz-|-o-)? # Accept prefixed/historical variants\n (?:repeating-)? # \"Repeating\"-type gradient\n (?:linear|radial|conic) # Shape\n -gradient\n)\n(\\()", + "beginCaptures": { + "1": { + "name": "support.function.gradient.css" + }, + "2": { + "name": "punctuation.section.function.begin.bracket.round.css" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.function.end.bracket.round.css" + } + }, + "name": "meta.function.gradient.css", + "patterns": [ + { + "match": "(?i)(?<![\\w-])(from|to|at|in|hue)(?![\\w-])", + "name": "keyword.operator.gradient.css" + }, + { + "include": "#property-values" + } + ] + }, + { + "begin": "(?i)(?<![\\w-])(-webkit-gradient)(\\()", + "beginCaptures": { + "1": { + "name": "invalid.deprecated.gradient.function.css" + }, + "2": { + "name": "punctuation.section.function.begin.bracket.round.css" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.function.end.bracket.round.css" + } + }, + "name": "meta.function.gradient.invalid.deprecated.gradient.css", + "patterns": [ + { + "begin": "(?i)(?<![\\w-])(from|to|color-stop)(\\()", + "beginCaptures": { + "1": { + "name": "invalid.deprecated.function.css" + }, + "2": { + "name": "punctuation.section.function.begin.bracket.round.css" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.function.end.bracket.round.css" + } + }, + "patterns": [ + { + "include": "#property-values" + } + ] + }, + { + "include": "#property-values" + } + ] + }, + { + "begin": "(?xi) (?<![\\w-])\n(annotation|attr|blur|brightness|character-variant|clamp|contrast|counters?\n|cross-fade|drop-shadow|element|fit-content|format|grayscale|hue-rotate|color-mix\n|image-set|invert|local|max|min|minmax|opacity|ornaments|repeat|saturate|sepia\n|styleset|stylistic|swash|symbols\n|cos|sin|tan|acos|asin|atan|atan2|hypot|sqrt|pow|log|exp|abs|sign)\n(\\()", + "beginCaptures": { + "1": { + "name": "support.function.misc.css" + }, + "2": { + "name": "punctuation.section.function.begin.bracket.round.css" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.function.end.bracket.round.css" + } + }, + "name": "meta.function.misc.css", + "patterns": [ + { + "match": "(?i)(?<=[,\\s\"]|\\*/|^)\\d+x(?=[\\s,\"')]|/\\*|$)", + "name": "constant.numeric.other.density.css" + }, + { + "include": "#property-values" + }, + { + "match": "[^'\"),\\s]+", + "name": "variable.parameter.misc.css" + } + ] + }, + { + "begin": "(?i)(?<![\\w-])(circle|ellipse|inset|polygon|rect)(\\()", + "beginCaptures": { + "1": { + "name": "support.function.shape.css" + }, + "2": { + "name": "punctuation.section.function.begin.bracket.round.css" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.function.end.bracket.round.css" + } + }, + "name": "meta.function.shape.css", + "patterns": [ + { + "match": "(?i)(?<=\\s|^|\\*/)(at|round)(?=\\s|/\\*|$)", + "name": "keyword.operator.shape.css" + }, + { + "include": "#property-values" + } + ] + }, + { + "begin": "(?i)(?<![\\w-])(cubic-bezier|steps)(\\()", + "beginCaptures": { + "1": { + "name": "support.function.timing-function.css" + }, + "2": { + "name": "punctuation.section.function.begin.bracket.round.css" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.function.end.bracket.round.css" + } + }, + "name": "meta.function.timing-function.css", + "patterns": [ + { + "match": "(?i)(?<![\\w-])(start|end)(?=\\s*\\)|$)", + "name": "support.constant.step-direction.css" + }, + { + "include": "#property-values" + } + ] + }, + { + "begin": "(?xi) (?<![\\w-])\n( (?:translate|scale|rotate)(?:[XYZ]|3D)?\n| matrix(?:3D)?\n| skew[XY]?\n| perspective\n)\n(\\()", + "beginCaptures": { + "1": { + "name": "support.function.transform.css" + }, + "2": { + "name": "punctuation.section.function.begin.bracket.round.css" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.function.end.bracket.round.css" + } + }, + "patterns": [ + { + "include": "#property-values" + } + ] + }, + { + "include": "#url" + }, + { + "begin": "(?i)(?<![\\w-])(var)(\\()", + "beginCaptures": { + "1": { + "name": "support.function.misc.css" + }, + "2": { + "name": "punctuation.section.function.begin.bracket.round.css" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.function.end.bracket.round.css" + } + }, + "name": "meta.function.variable.css", + "patterns": [ + { + "name": "variable.argument.css", + "match": "(?x)\n--\n(?:[-a-zA-Z_] | [^\\x00-\\x7F]) # First letter\n(?:[-a-zA-Z0-9_] | [^\\x00-\\x7F] # Remainder of identifier\n |\\\\(?:[0-9a-fA-F]{1,6}|.)\n)*" + }, + { + "include": "#property-values" + } + ] + } + ] + }, + "functional-pseudo-classes": { + "patterns": [ + { + "begin": "(?i)((:)dir)(\\()", + "beginCaptures": { + "1": { + "name": "entity.other.attribute-name.pseudo-class.css" + }, + "2": { + "name": "punctuation.definition.entity.css" + }, + "3": { + "name": "punctuation.section.function.begin.bracket.round.css" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.function.end.bracket.round.css" + } + }, + "patterns": [ + { + "include": "#comment-block" + }, + { + "include": "#escapes" + }, + { + "match": "(?i)(?<![\\w-])(ltr|rtl)(?![\\w-])", + "name": "support.constant.text-direction.css" + }, + { + "include": "#property-values" + } + ] + }, + { + "begin": "(?i)((:)lang)(\\()", + "beginCaptures": { + "1": { + "name": "entity.other.attribute-name.pseudo-class.css" + }, + "2": { + "name": "punctuation.definition.entity.css" + }, + "3": { + "name": "punctuation.section.function.begin.bracket.round.css" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.function.end.bracket.round.css" + } + }, + "patterns": [ + { + "match": "(?<=[(,\\s])[a-zA-Z]+(-[a-zA-Z0-9]*|\\\\(?:[0-9a-fA-F]{1,6}|.))*(?=[),\\s])", + "name": "support.constant.language-range.css" + }, + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.css" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.css" + } + }, + "name": "string.quoted.double.css", + "patterns": [ + { + "include": "#escapes" + }, + { + "match": "(?<=[\"\\s])[a-zA-Z*]+(-[a-zA-Z0-9*]*)*(?=[\"\\s])", + "name": "support.constant.language-range.css" + } + ] + }, + { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.css" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.css" + } + }, + "name": "string.quoted.single.css", + "patterns": [ + { + "include": "#escapes" + }, + { + "match": "(?<=['\\s])[a-zA-Z*]+(-[a-zA-Z0-9*]*)*(?=['\\s])", + "name": "support.constant.language-range.css" + } + ] + }, + { + "include": "#commas" + } + ] + }, + { + "begin": "(?i)((:)(?:not|has|matches|where|is))(\\()", + "beginCaptures": { + "1": { + "name": "entity.other.attribute-name.pseudo-class.css" + }, + "2": { + "name": "punctuation.definition.entity.css" + }, + "3": { + "name": "punctuation.section.function.begin.bracket.round.css" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.function.end.bracket.round.css" + } + }, + "patterns": [ + { + "include": "#selector-innards" + } + ] + }, + { + "begin": "(?i)((:)nth-(?:last-)?(?:child|of-type))(\\()", + "beginCaptures": { + "1": { + "name": "entity.other.attribute-name.pseudo-class.css" + }, + "2": { + "name": "punctuation.definition.entity.css" + }, + "3": { + "name": "punctuation.section.function.begin.bracket.round.css" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.function.end.bracket.round.css" + } + }, + "patterns": [ + { + "match": "(?i)[+-]?(\\d+n?|n)(\\s*[+-]\\s*\\d+)?", + "name": "constant.numeric.css" + }, + { + "match": "(?i)even|odd", + "name": "support.constant.parity.css" + } + ] + } + ] + }, + "media-features": { + "captures": { + "1": { + "name": "support.type.property-name.media.css" + }, + "2": { + "name": "support.type.property-name.media.css" + }, + "3": { + "name": "support.type.vendored.property-name.media.css" + } + }, + "match": "(?xi)\n(?<=^|\\s|\\(|\\*/) # Preceded by whitespace, bracket or comment\n(?:\n # Standardised features\n (\n (?:min-|max-)? # Range features\n (?: height\n | width\n | aspect-ratio\n | color\n | color-index\n | monochrome\n | resolution\n )\n | grid # Discrete features\n | scan\n | orientation\n | display-mode\n | hover\n )\n |\n # Deprecated features\n (\n (?:min-|max-)? # Deprecated in Media Queries 4\n device-\n (?: height\n | width\n | aspect-ratio\n )\n )\n |\n # Vendor extensions\n (\n (?:\n # Spec-compliant syntax\n [-_]\n (?: webkit # Webkit/Blink\n | apple|khtml # Webkit aliases\n | epub # ePub3\n | moz # Gecko\n | ms # Microsoft\n | o # Presto (pre-Opera 15)\n | xv|ah|rim|atsc| # Less common vendors\n hp|tc|wap|ro\n )\n |\n # Non-standard prefixes\n (?: mso # Microsoft Office\n | prince # YesLogic\n )\n )\n -\n [\\w-]+ # Feature name\n (?= # Terminates correctly\n \\s* # Possible whitespace\n (?: # Possible injected comment\n /\\*\n (?:[^*]|\\*[^/])*\n \\*/\n )?\n \\s*\n [:)] # Ends with a colon or closed bracket\n )\n )\n)\n(?=\\s|$|[><:=]|\\)|/\\*) # Terminates cleanly" + }, + "media-feature-keywords": { + "match": "(?xi)\n(?<=^|\\s|:|\\*/)\n(?: portrait # Orientation\n | landscape\n | progressive # Scan types\n | interlace\n | fullscreen # Display modes\n | standalone\n | minimal-ui\n | browser\n | hover\n)\n(?=\\s|\\)|$)", + "name": "support.constant.property-value.css" + }, + "media-query": { + "begin": "\\G", + "end": "(?=\\s*[{;])", + "patterns": [ + { + "include": "#comment-block" + }, + { + "include": "#escapes" + }, + { + "include": "#media-types" + }, + { + "match": "(?i)(?<=\\s|^|,|\\*/)(only|not)(?=\\s|{|/\\*|$)", + "name": "keyword.operator.logical.$1.media.css" + }, + { + "match": "(?i)(?<=\\s|^|\\*/|\\))and(?=\\s|/\\*|$)", + "name": "keyword.operator.logical.and.media.css" + }, + { + "match": ",(?:(?:\\s*,)+|(?=\\s*[;){]))", + "name": "invalid.illegal.comma.css" + }, + { + "include": "#commas" + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.parameters.begin.bracket.round.css" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.parameters.end.bracket.round.css" + } + }, + "patterns": [ + { + "include": "#media-features" + }, + { + "include": "#media-feature-keywords" + }, + { + "match": ":", + "name": "punctuation.separator.key-value.css" + }, + { + "match": ">=|<=|=|<|>", + "name": "keyword.operator.comparison.css" + }, + { + "captures": { + "1": { + "name": "constant.numeric.css" + }, + "2": { + "name": "keyword.operator.arithmetic.css" + }, + "3": { + "name": "constant.numeric.css" + } + }, + "match": "(\\d+)\\s*(/)\\s*(\\d+)", + "name": "meta.ratio.css" + }, + { + "include": "#numeric-values" + }, + { + "include": "#comment-block" + } + ] + } + ] + }, + "media-query-list": { + "begin": "(?=\\s*[^{;])", + "end": "(?=\\s*[{;])", + "patterns": [ + { + "include": "#media-query" + } + ] + }, + "media-types": { + "captures": { + "1": { + "name": "support.constant.media.css" + }, + "2": { + "name": "invalid.deprecated.constant.media.css" + } + }, + "match": "(?xi)\n(?<=^|\\s|,|\\*/)\n(?:\n # Valid media types\n (all|print|screen|speech)\n |\n # Deprecated in Media Queries 4: http://dev.w3.org/csswg/mediaqueries/#media-types\n (aural|braille|embossed|handheld|projection|tty|tv)\n)\n(?=$|[{,\\s;]|/\\*)" + }, + "numeric-values": { + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.constant.css" + } + }, + "match": "(#)(?:[0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})\\b", + "name": "constant.other.color.rgb-value.hex.css" + }, + { + "captures": { + "1": { + "name": "keyword.other.unit.percentage.css" + }, + "2": { + "name": "keyword.other.unit.${2:/downcase}.css" + } + }, + "match": "(?xi) (?<![\\w-])\n[-+]? # Sign indicator\n\n(?: # Numerals\n [0-9]+ (?:\\.[0-9]+)? # Integer/float with leading digits\n | \\.[0-9]+ # Float without leading digits\n)\n\n(?: # Scientific notation\n (?<=[0-9]) # Exponent must follow a digit\n E # Exponent indicator\n [-+]? # Possible sign indicator\n [0-9]+ # Exponent value\n)?\n\n(?: # Possible unit for data-type:\n (%) # - Percentage\n | ( deg|grad|rad|turn # - Angle\n | Hz|kHz # - Frequency\n | ch|cm|em|ex|fr|in|mm|mozmm| # - Length\n pc|pt|px|q|rem|rch|rex|rlh|\n ic|ric|rcap|vh|vw|vb|vi|svh|\n svw|svb|svi|dvh|dvw|dvb|dvi|\n lvh|lvw|lvb|lvi|vmax|vmin|\n cqw|cqi|cqh|cqb|cqmin|cqmax\n | dpi|dpcm|dppx # - Resolution\n | s|ms # - Time\n )\n \\b # Boundary checking intentionally lax to\n)? # facilitate embedding in CSS-like grammars", + "name": "constant.numeric.css" + } + ] + }, + "property-keywords": { + "patterns": [ + { + "match": "(?xi) (?<![\\w-])\n(above|absolute|active|add|additive|after-edge|alias|all|all-petite-caps|all-scroll|all-small-caps|alpha|alphabetic|alternate|alternate-reverse\n|always|antialiased|auto|auto-fill|auto-fit|auto-pos|available|avoid|avoid-column|avoid-page|avoid-region|backwards|balance|baseline|before-edge|below|bevel\n|bidi-override|blink|block|block-axis|block-start|block-end|bold|bolder|border|border-box|both|bottom|bottom-outside|break-all|break-word|bullets\n|butt|capitalize|caption|cell|center|central|char|circle|clip|clone|close-quote|closest-corner|closest-side|col-resize|collapse|color|color-burn\n|color-dodge|column|column-reverse|common-ligatures|compact|condensed|contain|content|content-box|contents|context-menu|contextual|copy|cover\n|crisp-edges|crispEdges|crosshair|cyclic|dark|darken|dashed|decimal|default|dense|diagonal-fractions|difference|digits|disabled|disc|discretionary-ligatures\n|distribute|distribute-all-lines|distribute-letter|distribute-space|dot|dotted|double|double-circle|downleft|downright|e-resize|each-line|ease|ease-in\n|ease-in-out|ease-out|economy|ellipse|ellipsis|embed|end|evenodd|ew-resize|exact|exclude|exclusion|expanded|extends|extra-condensed|extra-expanded\n|fallback|farthest-corner|farthest-side|fill|fill-available|fill-box|filled|fit-content|fixed|flat|flex|flex-end|flex-start|flip|flow-root|forwards|freeze\n|from-image|full-width|geometricPrecision|georgian|grab|grabbing|grayscale|grid|groove|hand|hanging|hard-light|help|hidden|hide\n|historical-forms|historical-ligatures|horizontal|horizontal-tb|hue|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space\n|ideographic|inactive|infinite|inherit|initial|inline|inline-axis|inline-block|inline-end|inline-flex|inline-grid|inline-list-item|inline-start\n|inline-table|inset|inside|inter-character|inter-ideograph|inter-word|intersect|invert|isolate|isolate-override|italic|jis04|jis78|jis83\n|jis90|justify|justify-all|kannada|keep-all|landscape|large|larger|left|light|lighten|lighter|line|line-edge|line-through|linear|linearRGB\n|lining-nums|list-item|local|loose|lowercase|lr|lr-tb|ltr|luminance|luminosity|main-size|mandatory|manipulation|manual|margin-box|match-parent\n|match-source|mathematical|max-content|medium|menu|message-box|middle|min-content|miter|mixed|move|multiply|n-resize|narrower|ne-resize\n|nearest-neighbor|nesw-resize|newspaper|no-change|no-clip|no-close-quote|no-common-ligatures|no-contextual|no-discretionary-ligatures\n|no-drop|no-historical-ligatures|no-open-quote|no-repeat|none|nonzero|normal|not-allowed|nowrap|ns-resize|numbers|numeric|nw-resize|nwse-resize\n|oblique|oldstyle-nums|open|open-quote|optimizeLegibility|optimizeQuality|optimizeSpeed|optional|ordinal|outset|outside|over|overlay|overline|padding\n|padding-box|page|painted|pan-down|pan-left|pan-right|pan-up|pan-x|pan-y|paused|petite-caps|pixelated|plaintext|pointer|portrait|pre|pre-line\n|pre-wrap|preserve-3d|progress|progressive|proportional-nums|proportional-width|proximity|radial|recto|region|relative|remove|repeat|repeat-[xy]\n|reset-size|reverse|revert|ridge|right|rl|rl-tb|round|row|row-resize|row-reverse|row-severse|rtl|ruby|ruby-base|ruby-base-container|ruby-text\n|ruby-text-container|run-in|running|s-resize|saturation|scale-down|screen|scroll|scroll-position|se-resize|semi-condensed|semi-expanded|separate\n|sesame|show|sideways|sideways-left|sideways-lr|sideways-right|sideways-rl|simplified|slashed-zero|slice|small|small-caps|small-caption|smaller\n|smooth|soft-light|solid|space|space-around|space-between|space-evenly|spell-out|square|sRGB|stacked-fractions|start|static|status-bar|swap\n|step-end|step-start|sticky|stretch|strict|stroke|stroke-box|style|sub|subgrid|subpixel-antialiased|subtract|super|sw-resize|symbolic|table\n|table-caption|table-cell|table-column|table-column-group|table-footer-group|table-header-group|table-row|table-row-group|tabular-nums|tb|tb-rl\n|text|text-after-edge|text-before-edge|text-bottom|text-top|thick|thin|titling-caps|top|top-outside|touch|traditional|transparent|triangle\n|ultra-condensed|ultra-expanded|under|underline|unicase|unset|upleft|uppercase|upright|use-glyph-orientation|use-script|verso|vertical\n|vertical-ideographic|vertical-lr|vertical-rl|vertical-text|view-box|visible|visibleFill|visiblePainted|visibleStroke|w-resize|wait|wavy\n|weight|whitespace|wider|words|wrap|wrap-reverse|x|x-large|x-small|xx-large|xx-small|y|zero|zoom-in|zoom-out)\n(?![\\w-])", + "name": "support.constant.property-value.css" + }, + { + "match": "(?xi) (?<![\\w-])\n(arabic-indic|armenian|bengali|cambodian|circle|cjk-decimal|cjk-earthly-branch|cjk-heavenly-stem|cjk-ideographic\n|decimal|decimal-leading-zero|devanagari|disc|disclosure-closed|disclosure-open|ethiopic-halehame-am\n|ethiopic-halehame-ti-e[rt]|ethiopic-numeric|georgian|gujarati|gurmukhi|hangul|hangul-consonant|hebrew\n|hiragana|hiragana-iroha|japanese-formal|japanese-informal|kannada|katakana|katakana-iroha|khmer\n|korean-hangul-formal|korean-hanja-formal|korean-hanja-informal|lao|lower-alpha|lower-armenian|lower-greek\n|lower-latin|lower-roman|malayalam|mongolian|myanmar|oriya|persian|simp-chinese-formal|simp-chinese-informal\n|square|tamil|telugu|thai|tibetan|trad-chinese-formal|trad-chinese-informal|upper-alpha|upper-armenian\n|upper-latin|upper-roman|urdu)\n(?![\\w-])", + "name": "support.constant.property-value.list-style-type.css" + }, + { + "match": "(?<![\\w-])(?i:-(?:ah|apple|atsc|epub|hp|khtml|moz|ms|o|rim|ro|tc|wap|webkit|xv)|(?:mso|prince))-[a-zA-Z-]+", + "name": "support.constant.vendored.property-value.css" + }, + { + "match": "(?<![\\w-])(?i:arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system-ui|system|tahoma|times|trebuchet|ui-monospace|ui-rounded|ui-sans-serif|ui-serif|utopia|verdana|webdings|sans-serif|serif|monospace)(?![\\w-])", + "name": "support.constant.font-name.css" + } + ] + }, + "property-names": { + "patterns": [ + { + "match": "(?xi) (?<![\\w-])\n(?:\n # Standard CSS\n accent-color|additive-symbols|align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration\n | animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backdrop-filter\n | backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image\n | background-origin|background-position|background-position-[xy]|background-repeat|background-size|bleed|block-size|border\n | border-block-end|border-block-end-color|border-block-end-style|border-block-end-width|border-block-start|border-block-start-color\n | border-block-start-style|border-block-start-width|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius\n | border-bottom-style|border-bottom-width|border-collapse|border-color|border-end-end-radius|border-end-start-radius|border-image\n | border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-inline-end\n | border-inline-end-color|border-inline-end-style|border-inline-end-width|border-inline-start|border-inline-start-color\n | border-inline-start-style|border-inline-start-width|border-left|border-left-color|border-left-style|border-left-width\n | border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-start-end-radius\n | border-start-start-radius|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style\n | border-top-width|border-width|bottom|box-decoration-break|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side\n | caret-color|clear|clip|clip-path|clip-rule|color|color-adjust|color-interpolation-filters|color-scheme|column-count|column-fill|column-gap\n | column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|contain|container|container-name|container-type|content|counter-increment\n | counter-reset|cursor|direction|display|empty-cells|enable-background|fallback|fill|fill-opacity|fill-rule|filter|flex|flex-basis\n | flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|flood-color|flood-opacity|font|font-display|font-family\n | font-feature-settings|font-kerning|font-language-override|font-optical-sizing|font-size|font-size-adjust|font-stretch\n | font-style|font-synthesis|font-variant|font-variant-alternates|font-variant-caps|font-variant-east-asian|font-variant-ligatures\n | font-variant-numeric|font-variant-position|font-variation-settings|font-weight|gap|glyph-orientation-horizontal|glyph-orientation-vertical\n | grid|grid-area|grid-auto-columns|grid-auto-flow|grid-auto-rows|grid-column|grid-column-end|grid-column-gap|grid-column-start\n | grid-gap|grid-row|grid-row-end|grid-row-gap|grid-row-start|grid-template|grid-template-areas|grid-template-columns|grid-template-rows\n | hanging-punctuation|height|hyphens|image-orientation|image-rendering|image-resolution|ime-mode|initial-letter|initial-letter-align\n | inline-size|inset|inset-block|inset-block-end|inset-block-start|inset-inline|inset-inline-end|inset-inline-start|isolation\n | justify-content|justify-items|justify-self|kerning|left|letter-spacing|lighting-color|line-break|line-clamp|line-height|list-style\n | list-style-image|list-style-position|list-style-type|margin|margin-block|margin-block-end|margin-block-start|margin-bottom|margin-inline|margin-inline-end|margin-inline-start\n | margin-left|margin-right|margin-top|marker-end|marker-mid|marker-start|marks|mask|mask-border|mask-border-mode|mask-border-outset\n | mask-border-repeat|mask-border-slice|mask-border-source|mask-border-width|mask-clip|mask-composite|mask-image|mask-mode\n | mask-origin|mask-position|mask-repeat|mask-size|mask-type|max-block-size|max-height|max-inline-size|max-lines|max-width\n | max-zoom|min-block-size|min-height|min-inline-size|min-width|min-zoom|mix-blend-mode|negative|object-fit|object-position\n | offset|offset-anchor|offset-distance|offset-path|offset-position|offset-rotation|opacity|order|orientation|orphans\n | outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-anchor|overflow-block|overflow-inline\n | overflow-wrap|overflow-[xy]|overscroll-behavior|overscroll-behavior-block|overscroll-behavior-inline|overscroll-behavior-[xy]\n | pad|padding|padding-block|padding-block-end|padding-block-start|padding-bottom|padding-inline|padding-inline-end|padding-inline-start|padding-left\n | padding-right|padding-top|page-break-after|page-break-before|page-break-inside|paint-order|perspective|perspective-origin\n | place-content|place-items|place-self|pointer-events|position|prefix|quotes|range|resize|right|rotate|row-gap|ruby-align\n | ruby-merge|ruby-position|scale|scroll-behavior|scroll-margin|scroll-margin-block|scroll-margin-block-end|scroll-margin-block-start\n | scroll-margin-bottom|scroll-margin-inline|scroll-margin-inline-end|scroll-margin-inline-start|scroll-margin-left|scroll-margin-right\n | scroll-margin-top|scroll-padding|scroll-padding-block|scroll-padding-block-end|scroll-padding-block-start|scroll-padding-bottom\n | scroll-padding-inline|scroll-padding-inline-end|scroll-padding-inline-start|scroll-padding-left|scroll-padding-right\n | scroll-padding-top|scroll-snap-align|scroll-snap-coordinate|scroll-snap-destination|scroll-snap-stop|scroll-snap-type\n | scrollbar-color|scrollbar-gutter|scrollbar-width|shape-image-threshold|shape-margin|shape-outside|shape-rendering|size\n | speak-as|src|stop-color|stop-opacity|stroke|stroke-dasharray|stroke-dashoffset|stroke-linecap|stroke-linejoin|stroke-miterlimit\n | stroke-opacity|stroke-width|suffix|symbols|system|tab-size|table-layout|text-align|text-align-last|text-anchor|text-combine-upright\n | text-decoration|text-decoration-color|text-decoration-line|text-decoration-skip|text-decoration-skip-ink|text-decoration-style|text-decoration-thickness\n | text-emphasis|text-emphasis-color|text-emphasis-position|text-emphasis-style|text-indent|text-justify|text-orientation\n | text-overflow|text-rendering|text-shadow|text-size-adjust|text-transform|text-underline-offset|text-underline-position|top|touch-action|transform\n | transform-box|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function\n | translate|unicode-bidi|unicode-range|user-select|user-zoom|vertical-align|visibility|white-space|widows|width|will-change\n | word-break|word-spacing|word-wrap|writing-mode|z-index|zoom\n\n # SVG attributes\n | alignment-baseline|baseline-shift|clip-rule|color-interpolation|color-interpolation-filters|color-profile\n | color-rendering|cx|cy|dominant-baseline|enable-background|fill|fill-opacity|fill-rule|flood-color|flood-opacity\n | glyph-orientation-horizontal|glyph-orientation-vertical|height|kerning|lighting-color|marker-end|marker-mid\n | marker-start|r|rx|ry|shape-rendering|stop-color|stop-opacity|stroke|stroke-dasharray|stroke-dashoffset|stroke-linecap\n | stroke-linejoin|stroke-miterlimit|stroke-opacity|stroke-width|text-anchor|width|x|y\n\n # Not listed on MDN; presumably deprecated\n | adjust|after|align|align-last|alignment|alignment-adjust|appearance|attachment|azimuth|background-break\n | balance|baseline|before|bidi|binding|bookmark|bookmark-label|bookmark-level|bookmark-target|border-length\n | bottom-color|bottom-left-radius|bottom-right-radius|bottom-style|bottom-width|box|box-align|box-direction\n | box-flex|box-flex-group|box-lines|box-ordinal-group|box-orient|box-pack|break|character|collapse|column\n | column-break-after|column-break-before|count|counter|crop|cue|cue-after|cue-before|decoration|decoration-break\n | delay|display-model|display-role|down|drop|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust\n | drop-initial-before-align|drop-initial-size|drop-initial-value|duration|elevation|emphasis|family|fit|fit-position\n | flex-group|float-offset|gap|grid-columns|grid-rows|hanging-punctuation|header|hyphenate|hyphenate-after|hyphenate-before\n | hyphenate-character|hyphenate-lines|hyphenate-resource|icon|image|increment|indent|index|initial-after-adjust\n | initial-after-align|initial-before-adjust|initial-before-align|initial-size|initial-value|inline-box-align|iteration-count\n | justify|label|left-color|left-style|left-width|length|level|line|line-stacking|line-stacking-ruby|line-stacking-shift\n | line-stacking-strategy|lines|list|mark|mark-after|mark-before|marks|marquee|marquee-direction|marquee-play-count|marquee-speed\n | marquee-style|max|min|model|move-to|name|nav|nav-down|nav-index|nav-left|nav-right|nav-up|new|numeral|offset|ordinal-group\n | orient|origin|overflow-style|overhang|pack|page|page-policy|pause|pause-after|pause-before|phonemes|pitch|pitch-range\n | play-count|play-during|play-state|point|presentation|presentation-level|profile|property|punctuation|punctuation-trim\n | radius|rate|rendering-intent|repeat|replace|reset|resolution|resource|respond-to|rest|rest-after|rest-before|richness\n | right-color|right-style|right-width|role|rotation|rotation-point|rows|ruby|ruby-overhang|ruby-span|rule|rule-color\n | rule-style|rule-width|shadow|size|size-adjust|sizing|space|space-collapse|spacing|span|speak|speak-header|speak-numeral\n | speak-punctuation|speech|speech-rate|speed|stacking|stacking-ruby|stacking-shift|stacking-strategy|stress|stretch\n | string-set|style|style-image|style-position|style-type|target|target-name|target-new|target-position|text|text-height\n | text-justify|text-outline|text-replace|text-wrap|timing-function|top-color|top-left-radius|top-right-radius|top-style\n | top-width|trim|unicode|up|user-select|variant|voice|voice-balance|voice-duration|voice-family|voice-pitch|voice-pitch-range\n | voice-rate|voice-stress|voice-volume|volume|weight|white|white-space-collapse|word|wrap\n)\n(?![\\w-])", + "name": "support.type.property-name.css" + }, + { + "match": "(?<![\\w-])(?i:-(?:ah|apple|atsc|epub|hp|khtml|moz|ms|o|rim|ro|tc|wap|webkit|xv)|(?:mso|prince))-[a-zA-Z-]+", + "name": "support.type.vendored.property-name.css" + } + ] + }, + "property-values": { + "patterns": [ + { + "include": "#commas" + }, + { + "include": "#comment-block" + }, + { + "include": "#escapes" + }, + { + "include": "#functions" + }, + { + "include": "#property-keywords" + }, + { + "include": "#unicode-range" + }, + { + "include": "#numeric-values" + }, + { + "include": "#color-keywords" + }, + { + "include": "#string" + }, + { + "match": "!\\s*important(?![\\w-])", + "name": "keyword.other.important.css" + } + ] + }, + "pseudo-classes": { + "captures": { + "1": { + "name": "punctuation.definition.entity.css" + }, + "2": { + "name": "invalid.illegal.colon.css" + } + }, + "match": "(?xi)\n(:)(:*)\n(?: active|any-link|checked|default|disabled|empty|enabled|first\n | (?:first|last|only)-(?:child|of-type)|focus|focus-visible|focus-within|fullscreen|host|hover\n | in-range|indeterminate|invalid|left|link|optional|out-of-range\n | read-only|read-write|required|right|root|scope|target|unresolved\n | valid|visited\n)(?![\\w-]|\\s*[;}])", + "name": "entity.other.attribute-name.pseudo-class.css" + }, + "pseudo-elements": { + "captures": { + "1": { + "name": "punctuation.definition.entity.css" + }, + "2": { + "name": "punctuation.definition.entity.css" + } + }, + "match": "(?xi)\n(?:\n (::?) # Elements using both : and :: notation\n (?: after\n | before\n | first-letter\n | first-line\n | (?:-(?:ah|apple|atsc|epub|hp|khtml|moz\n |ms|o|rim|ro|tc|wap|webkit|xv)\n | (?:mso|prince))\n -[a-z-]+\n )\n |\n (::) # Double-colon only\n (?: backdrop\n | content\n | grammar-error\n | marker\n | placeholder\n | selection\n | shadow\n | spelling-error\n )\n)\n(?![\\w-]|\\s*[;}])", + "name": "entity.other.attribute-name.pseudo-element.css" + }, + "rule-list": { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.section.property-list.begin.bracket.curly.css" + } + }, + "end": "}", + "endCaptures": { + "0": { + "name": "punctuation.section.property-list.end.bracket.curly.css" + } + }, + "name": "meta.property-list.css", + "patterns": [ + { + "include": "#rule-list-innards" + } + ] + }, + "rule-list-innards": { + "patterns": [ + { + "include": "#comment-block" + }, + { + "include": "#escapes" + }, + { + "include": "#font-features" + }, + { + "match": "(?x) (?<![\\w-])\n--\n(?:[-a-zA-Z_] | [^\\x00-\\x7F]) # First letter\n(?:[-a-zA-Z0-9_] | [^\\x00-\\x7F] # Remainder of identifier\n |\\\\(?:[0-9a-fA-F]{1,6}|.)\n)*", + "name": "variable.css" + }, + { + "begin": "(?<![-a-zA-Z])(?=[-a-zA-Z])", + "end": "$|(?![-a-zA-Z])", + "name": "meta.property-name.css", + "patterns": [ + { + "include": "#property-names" + } + ] + }, + { + "begin": "(:)\\s*", + "beginCaptures": { + "1": { + "name": "punctuation.separator.key-value.css" + } + }, + "end": "\\s*(;)|\\s*(?=}|\\))", + "endCaptures": { + "1": { + "name": "punctuation.terminator.rule.css" + } + }, + "contentName": "meta.property-value.css", + "patterns": [ + { + "include": "#comment-block" + }, + { + "include": "#property-values" + } + ] + }, + { + "match": ";", + "name": "punctuation.terminator.rule.css" + } + ] + }, + "selector": { + "begin": "(?x)\n(?=\n (?:\\|)? # Possible anonymous namespace prefix\n (?:\n [-\\[:.*\\#a-zA-Z_] # Valid selector character\n |\n [^\\x00-\\x7F] # Which can include non-ASCII symbols\n |\n \\\\ # Or an escape sequence\n (?:[0-9a-fA-F]{1,6}|.)\n )\n)", + "end": "(?=\\s*[/@{)])", + "name": "meta.selector.css", + "patterns": [ + { + "include": "#selector-innards" + } + ] + }, + "selector-innards": { + "patterns": [ + { + "include": "#comment-block" + }, + { + "include": "#commas" + }, + { + "include": "#escapes" + }, + { + "include": "#combinators" + }, + { + "captures": { + "1": { + "name": "entity.other.namespace-prefix.css" + }, + "2": { + "name": "punctuation.separator.css" + } + }, + "match": "(?x)\n(?:^|(?<=[\\s,(};])) # Follows whitespace, comma, semicolon, or bracket\n(?!\n [-\\w*]+\n \\|\n (?!\n [-\\[:.*\\#a-zA-Z_] # Make sure there's a selector to match\n | [^\\x00-\\x7F]\n )\n)\n(\n (?: [-a-zA-Z_] | [^\\x00-\\x7F] ) # First letter\n (?: [-a-zA-Z0-9_] | [^\\x00-\\x7F] # Remainder of identifier\n | \\\\(?:[0-9a-fA-F]{1,6}|.)\n )*\n |\n \\* # Universal namespace\n)?\n(\\|) # Namespace separator" + }, + { + "include": "#tag-names" + }, + { + "match": "\\*", + "name": "entity.name.tag.wildcard.css" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.entity.css" + }, + "2": { + "patterns": [ + { + "include": "#escapes" + } + ] + } + }, + "match": "(?x) (?<![@\\w-])\n([.\\#])\n# Invalid identifier\n(\n (?:\n # Starts with ASCII digits, with possible hyphen preceding it\n -?[0-9]\n |\n # Consists of a hyphen only\n - # Terminated by either:\n (?= $ # - End-of-line\n | [\\s,.\\#)\\[:{>+~|] # - Followed by another selector\n | /\\* # - Followed by a block comment\n )\n |\n # Name contains unescaped ASCII symbol\n (?: # Check for acceptable preceding characters\n [-a-zA-Z_0-9]|[^\\x00-\\x7F] # - Valid selector character\n | \\\\(?:[0-9a-fA-F]{1,6}|.) # - Escape sequence\n )*\n (?: # Invalid punctuation\n [!\"'%&(*;<?@^`|\\]}] # - NOTE: We exempt `)` from the list of checked\n | # symbols to avoid matching `:not(.invalid)`\n / (?!\\*) # - Avoid invalidating the start of a comment\n )+\n )\n # Mark remainder of selector invalid\n (?: [-a-zA-Z_0-9]|[^\\x00-\\x7F] # - Otherwise valid identifier characters\n | \\\\(?:[0-9a-fA-F]{1,6}|.) # - Escape sequence\n )*\n)", + "name": "invalid.illegal.bad-identifier.css" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.entity.css" + }, + "2": { + "patterns": [ + { + "include": "#escapes" + } + ] + } + }, + "match": "(?x)\n(\\.) # Valid class-name\n(\n (?: [-a-zA-Z_0-9]|[^\\x00-\\x7F] # Valid identifier characters\n | \\\\(?:[0-9a-fA-F]{1,6}|.) # Escape sequence\n )+\n) # Followed by either:\n(?= $ # - End of the line\n | [\\s,.\\#)\\[:{>+~|] # - Another selector\n | /\\* # - A block comment\n)", + "name": "entity.other.attribute-name.class.css" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.entity.css" + }, + "2": { + "patterns": [ + { + "include": "#escapes" + } + ] + } + }, + "match": "(?x)\n(\\#)\n(\n -?\n (?![0-9])\n (?:[-a-zA-Z0-9_]|[^\\x00-\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.))+\n)\n(?=$|[\\s,.\\#)\\[:{>+~|]|/\\*)", + "name": "entity.other.attribute-name.id.css" + }, + { + "begin": "\\[", + "beginCaptures": { + "0": { + "name": "punctuation.definition.entity.begin.bracket.square.css" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.entity.end.bracket.square.css" + } + }, + "name": "meta.attribute-selector.css", + "patterns": [ + { + "include": "#comment-block" + }, + { + "include": "#string" + }, + { + "captures": { + "1": { + "name": "storage.modifier.ignore-case.css" + } + }, + "match": "(?<=[\"'\\s]|^|\\*/)\\s*([iI])\\s*(?=[\\s\\]]|/\\*|$)" + }, + { + "captures": { + "1": { + "name": "string.unquoted.attribute-value.css", + "patterns": [ + { + "include": "#escapes" + } + ] + } + }, + "match": "(?x)(?<==)\\s*((?!/\\*)(?:[^\\\\\"'\\s\\]]|\\\\.)+)" + }, + { + "include": "#escapes" + }, + { + "match": "[~|^$*]?=", + "name": "keyword.operator.pattern.css" + }, + { + "match": "\\|", + "name": "punctuation.separator.css" + }, + { + "captures": { + "1": { + "name": "entity.other.namespace-prefix.css", + "patterns": [ + { + "include": "#escapes" + } + ] + } + }, + "match": "(?x)\n# Qualified namespace prefix\n( -?(?!\\d)(?:[\\w-]|[^\\x00-\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.))+\n| \\*\n)\n# Lookahead to ensure there's a valid identifier ahead\n(?=\n \\| (?!\\s|=|$|\\])\n (?: -?(?!\\d)\n | [\\\\\\w-]\n | [^\\x00-\\x7F]\n )\n)" + }, + { + "captures": { + "1": { + "name": "entity.other.attribute-name.css", + "patterns": [ + { + "include": "#escapes" + } + ] + } + }, + "match": "(?x)\n(-?(?!\\d)(?>[\\w-]|[^\\x00-\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.))+)\n\\s*\n(?=[~|^\\]$*=]|/\\*)" + } + ] + }, + { + "include": "#pseudo-classes" + }, + { + "include": "#pseudo-elements" + }, + { + "include": "#functional-pseudo-classes" + }, + { + "match": "(?x) (?<![@\\w-])\n(?= # Custom element names must:\n [a-z] # - start with a lowercase ASCII letter,\n \\w* - # - contain at least one dash\n)\n(?:\n (?![A-Z]) # No uppercase ASCII letters are allowed\n [\\w-] # Allow any other word character or dash\n)+\n(?![(\\w-])", + "name": "entity.name.tag.custom.css" + } + ] + }, + "string": { + "patterns": [ + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.css" + } + }, + "end": "\"|(?<!\\\\)(?=$|\\n)", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.css" + } + }, + "name": "string.quoted.double.css", + "patterns": [ + { + "begin": "(?:\\G|^)(?=(?:[^\\\\\"]|\\\\.)+$)", + "end": "$", + "name": "invalid.illegal.unclosed.string.css", + "patterns": [ + { + "include": "#escapes" + } + ] + }, + { + "include": "#escapes" + } + ] + }, + { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.css" + } + }, + "end": "'|(?<!\\\\)(?=$|\\n)", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.css" + } + }, + "name": "string.quoted.single.css", + "patterns": [ + { + "begin": "(?:\\G|^)(?=(?:[^\\\\']|\\\\.)+$)", + "end": "$", + "name": "invalid.illegal.unclosed.string.css", + "patterns": [ + { + "include": "#escapes" + } + ] + }, + { + "include": "#escapes" + } + ] + } + ] + }, + "tag-names": { + "match": "(?xi) (?<![\\w:-])\n(?:\n # HTML\n a|abbr|acronym|address|applet|area|article|aside|audio|b|base|basefont|bdi|bdo|bgsound\n | big|blink|blockquote|body|br|button|canvas|caption|center|cite|code|col|colgroup|command\n | content|data|datalist|dd|del|details|dfn|dialog|dir|div|dl|dt|element|em|embed|fieldset\n | figcaption|figure|font|footer|form|frame|frameset|h[1-6]|head|header|hgroup|hr|html|i\n | iframe|image|img|input|ins|isindex|kbd|keygen|label|legend|li|link|listing|main|map|mark\n | marquee|math|menu|menuitem|meta|meter|multicol|nav|nextid|nobr|noembed|noframes|noscript\n | object|ol|optgroup|option|output|p|param|picture|plaintext|pre|progress|q|rb|rp|rt|rtc\n | ruby|s|samp|script|section|select|shadow|slot|small|source|spacer|span|strike|strong\n | style|sub|summary|sup|table|tbody|td|template|textarea|tfoot|th|thead|time|title|tr\n | track|tt|u|ul|var|video|wbr|xmp\n\n # SVG\n | altGlyph|altGlyphDef|altGlyphItem|animate|animateColor|animateMotion|animateTransform\n | circle|clipPath|color-profile|cursor|defs|desc|discard|ellipse|feBlend|feColorMatrix\n | feComponentTransfer|feComposite|feConvolveMatrix|feDiffuseLighting|feDisplacementMap\n | feDistantLight|feDropShadow|feFlood|feFuncA|feFuncB|feFuncG|feFuncR|feGaussianBlur\n | feImage|feMerge|feMergeNode|feMorphology|feOffset|fePointLight|feSpecularLighting\n | feSpotLight|feTile|feTurbulence|filter|font-face|font-face-format|font-face-name\n | font-face-src|font-face-uri|foreignObject|g|glyph|glyphRef|hatch|hatchpath|hkern\n | line|linearGradient|marker|mask|mesh|meshgradient|meshpatch|meshrow|metadata\n | missing-glyph|mpath|path|pattern|polygon|polyline|radialGradient|rect|set|solidcolor\n | stop|svg|switch|symbol|text|textPath|tref|tspan|use|view|vkern\n\n # MathML\n | annotation|annotation-xml|maction|maligngroup|malignmark|math|menclose|merror|mfenced\n | mfrac|mglyph|mi|mlabeledtr|mlongdiv|mmultiscripts|mn|mo|mover|mpadded|mphantom|mroot\n | mrow|ms|mscarries|mscarry|msgroup|msline|mspace|msqrt|msrow|mstack|mstyle|msub|msubsup\n | msup|mtable|mtd|mtext|mtr|munder|munderover|semantics\n)\n(?=[+~>\\s,.\\#|){:\\[]|/\\*|$)", + "name": "entity.name.tag.css" + }, + "unicode-range": { + "captures": { + "0": { + "name": "constant.other.unicode-range.css" + }, + "1": { + "name": "punctuation.separator.dash.unicode-range.css" + } + }, + "match": "(?<![\\w-])[Uu]\\+[0-9A-Fa-f?]{1,6}(?:(-)[0-9A-Fa-f]{1,6})?(?![\\w-])" + }, + "url": { + "begin": "(?i)(?<![\\w@-])(url)(\\()", + "beginCaptures": { + "1": { + "name": "support.function.url.css" + }, + "2": { + "name": "punctuation.section.function.begin.bracket.round.css" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.function.end.bracket.round.css" + } + }, + "name": "meta.function.url.css", + "patterns": [ + { + "match": "[^'\")\\s]+", + "name": "variable.parameter.url.css" + }, + { + "include": "#string" + }, + { + "include": "#comment-block" + }, + { + "include": "#escapes" + } + ] + } + } +} diff --git a/docs/shiki/languages/cue.tmLanguage.json b/docs/shiki/languages/cue.tmLanguage.json new file mode 100644 index 00000000..15aa4099 --- /dev/null +++ b/docs/shiki/languages/cue.tmLanguage.json @@ -0,0 +1,1126 @@ +{ + "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", + "name": "cue", + "fileTypes": ["cue"], + "scopeName": "source.cue", + "patterns": [ + { + "include": "#whitespace" + }, + { + "include": "#comment" + }, + { + "match": "(?<![\\p{L}\\p{Nd}_\\$\\#])(package)[ \\t]+([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*)(?![\\p{L}\\p{Nd}_\\$\\#])", + "captures": { + "1": { + "name": "keyword.other.package" + }, + "2": { + "name": "entity.name.namespace" + } + } + }, + { + "patterns": [ + { + "begin": "(?<![\\p{L}\\p{Nd}_\\$\\#])(import)[ \\t]+(\\()", + "beginCaptures": { + "1": { + "name": "keyword.other.import" + }, + "2": { + "name": "punctuation.section.parens.begin" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.parens.end" + } + }, + "patterns": [ + { + "include": "#whitespace" + }, + { + "include": "#comment" + }, + { + "match": "(?:([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*)[ \\t]+)?(\")([^:\"]+)(?:(:)([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*))?(\")", + "captures": { + "1": { + "name": "entity.name.namespace" + }, + "2": { + "name": "punctuation.definition.string.begin" + }, + "3": { + "name": "string.quoted.double-import" + }, + "4": { + "name": "punctuation.colon" + }, + "5": { + "name": "entity.name" + }, + "6": { + "name": "punctuation.definition.string.end" + } + }, + "name": "meta.import-spec" + }, + { + "match": ";", + "name": "punctuation.separator" + }, + { + "include": "#invalid_in_parens" + } + ], + "name": "meta.imports" + }, + { + "match": "(?<![\\p{L}\\p{Nd}_\\$\\#])(import)[ \\t]+(?:([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*)[ \\t]+)?(\")([^:\"]+)(?:(:)([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*))?(\")", + "captures": { + "1": { + "name": "keyword.other.import" + }, + "2": { + "name": "entity.name.namespace" + }, + "3": { + "name": "punctuation.definition.string.begin" + }, + "4": { + "name": "string.quoted.double-import" + }, + "5": { + "name": "punctuation.colon" + }, + "6": { + "name": "entity.name" + }, + "7": { + "name": "punctuation.definition.string.end" + } + }, + "name": "meta.import" + } + ] + }, + { + "include": "#punctuation_comma" + }, + { + "include": "#declaration" + }, + { + "include": "#invalid_in_braces" + } + ], + "repository": { + "attribute_element": { + "patterns": [ + { + "begin": "([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*|_[\\p{L}\\p{Nd}_\\$\\#]+)(=)", + "beginCaptures": { + "1": { + "name": "variable.other" + }, + "2": { + "name": "punctuation.bind" + } + }, + "end": "(?=[,\\)])", + "patterns": [ + { + "include": "#attribute_string" + } + ] + }, + { + "begin": "([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*|_[\\p{L}\\p{Nd}_\\$\\#]+)(\\()", + "beginCaptures": { + "1": { + "name": "variable.other" + }, + "2": { + "name": "punctuation.attribute-elements.begin" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.attribute-elements.end" + } + }, + "patterns": [ + { + "include": "#punctuation_comma" + }, + { + "include": "#attribute_element" + } + ] + }, + { + "include": "#attribute_string" + } + ] + }, + "attribute_string": { + "patterns": [ + { + "include": "#string" + }, + { + "match": "[^\\n,\"'#=\\(\\)]+", + "name": "string.unquoted" + }, + { + "match": "[^,\\)]+", + "name": "invalid" + } + ] + }, + "comment": { + "patterns": [ + { + "match": "(//).*$\\n?", + "captures": { + "1": { + "name": "punctuation.definition.comment" + } + }, + "name": "comment.line" + }, + { + "captures": { + "0": { + "name": "punctuation.definition.comment" + } + }, + "begin": "/\\*", + "end": "\\*/", + "name": "comment.block" + } + ] + }, + "declaration": { + "patterns": [ + { + "begin": "(@)([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*|_[\\p{L}\\p{Nd}_\\$\\#]+)(\\()", + "beginCaptures": { + "1": { + "name": "punctuation.definition.annotation" + }, + "2": { + "name": "variable.annotation" + }, + "3": { + "name": "punctuation.attribute-elements.begin" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.attribute-elements.end" + } + }, + "patterns": [ + { + "include": "#punctuation_comma" + }, + { + "include": "#attribute_element" + } + ], + "name": "meta.annotation" + }, + { + "match": "(?<!:)::(?!:)", + "name": "punctuation.isa" + }, + { + "include": "#punctuation_colon" + }, + { + "match": "\\?", + "name": "punctuation.option" + }, + { + "match": "(?<![=!><])=(?![=~])", + "name": "punctuation.bind" + }, + { + "match": "<-", + "name": "punctuation.arrow" + }, + { + "include": "#expression" + } + ] + }, + "expression": { + "patterns": [ + { + "patterns": [ + { + "match": "(?<![\\p{L}\\p{Nd}_\\$\\#])(for)[ \\t]+([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*|_[\\p{L}\\p{Nd}_\\$\\#]+)(?:[ \\t]*(,)[ \\t]*([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*|_[\\p{L}\\p{Nd}_\\$\\#]+))?[ \\t]+(in)(?![\\p{L}\\p{Nd}_\\$\\#])", + "captures": { + "1": { + "name": "keyword.control.for" + }, + "2": { + "name": "variable.other" + }, + "3": { + "name": "punctuation.separator" + }, + "4": { + "name": "variable.other" + }, + "5": { + "name": "keyword.control.in" + } + } + }, + { + "match": "(?<![\\p{L}\\p{Nd}_\\$\\#])if(?![\\p{L}\\p{Nd}_\\$\\#])", + "name": "keyword.control.conditional" + }, + { + "match": "(?<![\\p{L}\\p{Nd}_\\$\\#])(let)[ \\t]+([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*|_[\\p{L}\\p{Nd}_\\$\\#]+)[ \\t]*(=)(?![=])", + "captures": { + "1": { + "name": "keyword.control.let" + }, + "2": { + "name": "variable.other" + }, + "3": { + "name": "punctuation.bind" + } + } + } + ] + }, + { + "patterns": [ + { + "match": "[\\+\\-\\*]|/(?![/*])", + "name": "keyword.operator" + }, + { + "match": "(?<![\\p{L}\\p{Nd}_\\$\\#])(?:div|mod|quo|rem)(?![\\p{L}\\p{Nd}_\\$\\#])", + "name": "keyword.operator.word" + }, + { + "match": "=[=~]|![=~]|<=|>=|[<](?![-=])|[>](?![=])", + "name": "keyword.operator.comparison" + }, + { + "match": "&{2}|\\|{2}|!(?![=~])", + "name": "keyword.operator.logical" + }, + { + "match": "&(?!&)|\\|(?!\\|)", + "name": "keyword.operator.set" + } + ] + }, + { + "match": "(?<!\\.)(\\.)([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*|_[\\p{L}\\p{Nd}_\\$\\#]+)(?![\\p{L}\\p{Nd}_\\$\\#])", + "captures": { + "1": { + "name": "punctuation.accessor" + }, + "2": { + "name": "variable.other.member" + } + } + }, + { + "patterns": [ + { + "match": "(?<![\\p{L}\\p{Nd}_\\$\\#])_(?!\\|)(?![\\p{L}\\p{Nd}_\\$\\#])", + "name": "constant.language.top" + }, + { + "match": "(?<![\\p{L}\\p{Nd}_\\$\\#])_\\|_(?![\\p{L}\\p{Nd}_\\$\\#])", + "name": "constant.language.bottom" + }, + { + "match": "(?<![\\p{L}\\p{Nd}_\\$\\#])null(?![\\p{L}\\p{Nd}_\\$\\#])", + "name": "constant.language.null" + }, + { + "match": "(?<![\\p{L}\\p{Nd}_\\$\\#])(?:true|false)(?![\\p{L}\\p{Nd}_\\$\\#])", + "name": "constant.language.bool" + }, + { + "patterns": [ + { + "patterns": [ + { + "match": "(?<![\\p{L}\\p{Nd}_\\.])[0-9](?:_?[0-9])*\\.(?:[0-9](?:_?[0-9])*)?(?:[eE][\\+\\-]?[0-9](?:_?[0-9])*)?(?![\\p{L}\\p{Nd}_\\.])", + "name": "constant.numeric.float.decimal" + }, + { + "match": "(?<![\\p{L}\\p{Nd}_\\.])[0-9](?:_?[0-9])*[eE][\\+\\-]?[0-9](?:_?[0-9])*(?![\\p{L}\\p{Nd}_\\.])", + "name": "constant.numeric.float.decimal" + }, + { + "match": "(?<![\\p{L}\\p{Nd}_\\.])\\.[0-9](?:_?[0-9])*(?:[eE][\\+\\-]?[0-9](?:_?[0-9])*)?(?![\\p{L}\\p{Nd}_\\.])", + "name": "constant.numeric.float.decimal" + } + ] + }, + { + "patterns": [ + { + "patterns": [ + { + "match": "(?<![\\p{L}\\p{Nd}_\\.])(?:0|[1-9](?:_?[0-9])*)(?:\\.[0-9](?:_?[0-9])*)?(?:[KMGTPEYZ]i?)(?![\\p{L}\\p{Nd}_\\.])", + "name": "constant.numeric.integer.other" + }, + { + "match": "(?<![\\p{L}\\p{Nd}_\\.])\\.[0-9](?:_?[0-9])*(?:[KMGTPEYZ]i?)(?![\\p{L}\\p{Nd}_\\.])", + "name": "constant.numeric.integer.other" + } + ] + }, + { + "match": "(?<![\\p{L}\\p{Nd}_\\.])(?:0|[1-9](?:_?[0-9])*)(?![\\p{L}\\p{Nd}_\\.])", + "name": "constant.numeric.integer.decimal" + }, + { + "match": "(?<![\\p{L}\\p{Nd}_\\.])0b[0-1](?:_?[0-1])*(?![\\p{L}\\p{Nd}_\\.])", + "name": "constant.numeric.integer.binary" + }, + { + "match": "(?<![\\p{L}\\p{Nd}_\\.])0[xX][0-9a-fA-F](?:_?[0-9a-fA-F])*(?![\\p{L}\\p{Nd}_\\.])", + "name": "constant.numeric.integer.hexadecimal" + }, + { + "match": "(?<![\\p{L}\\p{Nd}_\\.])0o?[0-7](?:_?[0-7])*(?![\\p{L}\\p{Nd}_\\.])", + "name": "constant.numeric.integer.octal" + } + ] + } + ] + }, + { + "include": "#string" + }, + { + "match": "(?<![\\p{L}\\p{Nd}_\\$\\#])(?:bool|u?int(?:8|16|32|64|128)?|float(?:32|64)?|string|bytes|number|rune)(?![\\p{L}\\p{Nd}_\\$\\#])", + "name": "support.type" + }, + { + "patterns": [ + { + "begin": "(?<![\\p{L}\\p{Nd}_\\$\\#])(len|close|and|or)(\\()", + "beginCaptures": { + "1": { + "name": "support.function" + }, + "2": { + "name": "punctuation.section.parens.begin" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.parens.end" + } + }, + "patterns": [ + { + "include": "#whitespace" + }, + { + "include": "#comment" + }, + { + "include": "#punctuation_comma" + }, + { + "include": "#expression" + }, + { + "include": "#invalid_in_parens" + } + ], + "name": "meta.function-call" + }, + { + "begin": "(?<![\\p{L}\\p{Nd}_\\$\\#])([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*)(\\.)(\\p{Lu}[\\p{L}\\p{Nd}_\\$\\#]*)(\\()", + "beginCaptures": { + "1": { + "name": "support.module" + }, + "2": { + "name": "punctuation" + }, + "3": { + "name": "support.function" + }, + "4": { + "name": "punctuation.section.parens.begin" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.parens.end" + } + }, + "patterns": [ + { + "include": "#whitespace" + }, + { + "include": "#comment" + }, + { + "include": "#punctuation_comma" + }, + { + "include": "#expression" + }, + { + "include": "#invalid_in_parens" + } + ], + "name": "meta.function-call" + } + ] + }, + { + "match": "(?<![\\p{L}\\p{Nd}_\\$\\#])(?:[\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*|_[\\p{L}\\p{Nd}_\\$\\#]+)(?![\\p{L}\\p{Nd}_\\$\\#])", + "name": "variable.other" + }, + { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.struct.begin" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.struct.end" + } + }, + "patterns": [ + { + "include": "#whitespace" + }, + { + "include": "#comment" + }, + { + "include": "#punctuation_comma" + }, + { + "include": "#punctuation_ellipsis" + }, + { + "include": "#declaration" + }, + { + "include": "#invalid_in_braces" + } + ], + "name": "meta.struct" + }, + { + "begin": "\\[", + "beginCaptures": { + "0": { + "name": "punctuation.section.brackets.begin" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.section.brackets.end" + } + }, + "patterns": [ + { + "include": "#whitespace" + }, + { + "include": "#comment" + }, + { + "include": "#punctuation_colon" + }, + { + "include": "#punctuation_comma" + }, + { + "include": "#punctuation_ellipsis" + }, + { + "match": "([\\p{L}\\$\\#][\\p{L}\\p{Nd}_\\$\\#]*|_[\\p{L}\\p{Nd}_\\$\\#]+)[ \\t]*(=)", + "captures": { + "1": { + "name": "variable.other" + }, + "2": { + "name": "punctuation.alias" + } + } + }, + { + "include": "#expression" + }, + { + "match": "[^\\]]+", + "name": "invalid" + } + ], + "name": "meta.brackets" + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.section.parens.begin" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.parens.end" + } + }, + "patterns": [ + { + "include": "#whitespace" + }, + { + "include": "#comment" + }, + { + "include": "#punctuation_comma" + }, + { + "include": "#expression" + }, + { + "include": "#invalid_in_parens" + } + ], + "name": "meta.parens" + } + ] + } + ] + }, + "invalid_in_braces": { + "match": "[^\\}]+", + "name": "invalid" + }, + "invalid_in_parens": { + "match": "[^\\)]+", + "name": "invalid" + }, + "punctuation_colon": { + "match": "(?<!:):(?!:)", + "name": "punctuation.colon" + }, + "punctuation_comma": { + "match": ",", + "name": "punctuation.separator" + }, + "punctuation_ellipsis": { + "match": "(?<!\\.)\\.{3}(?!\\.)", + "name": "punctuation.ellipsis" + }, + "string": { + "patterns": [ + { + "begin": "#\"\"\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin" + } + }, + "end": "\"\"\"#", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end" + } + }, + "contentName": "string.quoted.double-multiline", + "patterns": [ + { + "match": "\\\\#(?:\"\"\"|/|\\\\|[abfnrtv]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})", + "name": "constant.character.escape" + }, + { + "match": "\\\\#(?:[0-7]{3}|x[0-9A-Fa-f]{2})", + "name": "invalid.illegal" + }, + { + "begin": "\\\\#\\(", + "beginCaptures": { + "0": { + "name": "punctuation.section.interpolation.begin" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.interpolation.end" + } + }, + "contentName": "source.cue.embedded", + "patterns": [ + { + "include": "#whitespace" + }, + { + "include": "#expression" + }, + { + "include": "#invalid_in_parens" + } + ], + "name": "meta.interpolation" + }, + { + "match": "\\\\#.", + "name": "invalid.illegal" + } + ], + "name": "meta.string" + }, + { + "begin": "#\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin" + } + }, + "end": "\"#", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end" + } + }, + "contentName": "string.quoted.double", + "patterns": [ + { + "match": "\\\\#(?:\"|/|\\\\|[abfnrtv]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})", + "name": "constant.character.escape" + }, + { + "match": "\\\\#(?:[0-7]{3}|x[0-9A-Fa-f]{2})", + "name": "invalid.illegal" + }, + { + "begin": "\\\\#\\(", + "beginCaptures": { + "0": { + "name": "punctuation.section.interpolation.begin" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.interpolation.end" + } + }, + "contentName": "source.cue.embedded", + "patterns": [ + { + "include": "#whitespace" + }, + { + "include": "#expression" + }, + { + "include": "#invalid_in_parens" + } + ], + "name": "meta.interpolation" + }, + { + "match": "\\\\#.", + "name": "invalid.illegal" + } + ], + "name": "meta.string" + }, + { + "begin": "#'''", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin" + } + }, + "end": "'''#", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end" + } + }, + "contentName": "string.quoted.single-multiline", + "patterns": [ + { + "match": "\\\\#(?:'''|/|\\\\|[abfnrtv]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})", + "name": "constant.character.escape" + }, + { + "match": "\\\\#(?:[0-7]{3}|x[0-9A-Fa-f]{2})", + "name": "constant.character.escape" + }, + { + "begin": "\\\\#\\(", + "beginCaptures": { + "0": { + "name": "punctuation.section.interpolation.begin" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.interpolation.end" + } + }, + "contentName": "source.cue.embedded", + "patterns": [ + { + "include": "#whitespace" + }, + { + "include": "#expression" + }, + { + "include": "#invalid_in_parens" + } + ], + "name": "meta.interpolation" + }, + { + "match": "\\\\#.", + "name": "invalid.illegal" + } + ], + "name": "meta.string" + }, + { + "begin": "#'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin" + } + }, + "end": "'#", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end" + } + }, + "contentName": "string.quoted.single", + "patterns": [ + { + "match": "\\\\#(?:'|/|\\\\|[abfnrtv]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})", + "name": "constant.character.escape" + }, + { + "match": "\\\\#(?:[0-7]{3}|x[0-9A-Fa-f]{2})", + "name": "constant.character.escape" + }, + { + "begin": "\\\\#\\(", + "beginCaptures": { + "0": { + "name": "punctuation.section.interpolation.begin" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.interpolation.end" + } + }, + "contentName": "source.cue.embedded", + "patterns": [ + { + "include": "#whitespace" + }, + { + "include": "#expression" + }, + { + "include": "#invalid_in_parens" + } + ], + "name": "meta.interpolation" + }, + { + "match": "\\\\#.", + "name": "invalid.illegal" + } + ], + "name": "meta.string" + }, + { + "begin": "\"\"\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin" + } + }, + "end": "\"\"\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end" + } + }, + "contentName": "string.quoted.double-multiline", + "patterns": [ + { + "match": "\\\\(?:\"\"\"|/|\\\\|[abfnrtv]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})", + "name": "constant.character.escape" + }, + { + "match": "\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2})", + "name": "invalid.illegal" + }, + { + "begin": "\\\\\\(", + "beginCaptures": { + "0": { + "name": "punctuation.section.interpolation.begin" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.interpolation.end" + } + }, + "contentName": "source.cue.embedded", + "patterns": [ + { + "include": "#whitespace" + }, + { + "include": "#expression" + }, + { + "include": "#invalid_in_parens" + } + ], + "name": "meta.interpolation" + }, + { + "match": "\\\\.", + "name": "invalid.illegal" + } + ], + "name": "meta.string" + }, + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end" + } + }, + "contentName": "string.quoted.double", + "patterns": [ + { + "match": "\\\\(?:\"|/|\\\\|[abfnrtv]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})", + "name": "constant.character.escape" + }, + { + "match": "\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2})", + "name": "invalid.illegal" + }, + { + "begin": "\\\\\\(", + "beginCaptures": { + "0": { + "name": "punctuation.section.interpolation.begin" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.interpolation.end" + } + }, + "contentName": "source.cue.embedded", + "patterns": [ + { + "include": "#whitespace" + }, + { + "include": "#expression" + }, + { + "include": "#invalid_in_parens" + } + ], + "name": "meta.interpolation" + }, + { + "match": "\\\\.", + "name": "invalid.illegal" + } + ], + "name": "meta.string" + }, + { + "begin": "'''", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin" + } + }, + "end": "'''", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end" + } + }, + "contentName": "string.quoted.single-multiline", + "patterns": [ + { + "match": "\\\\(?:'''|/|\\\\|[abfnrtv]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})", + "name": "constant.character.escape" + }, + { + "match": "\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2})", + "name": "constant.character.escape" + }, + { + "begin": "\\\\\\(", + "beginCaptures": { + "0": { + "name": "punctuation.section.interpolation.begin" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.interpolation.end" + } + }, + "contentName": "source.cue.embedded", + "patterns": [ + { + "include": "#whitespace" + }, + { + "include": "#expression" + }, + { + "include": "#invalid_in_parens" + } + ], + "name": "meta.interpolation" + }, + { + "match": "\\\\.", + "name": "invalid.illegal" + } + ], + "name": "meta.string" + }, + { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end" + } + }, + "contentName": "string.quoted.single", + "patterns": [ + { + "match": "\\\\(?:'|/|\\\\|[abfnrtv]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})", + "name": "constant.character.escape" + }, + { + "match": "\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2})", + "name": "constant.character.escape" + }, + { + "begin": "\\\\\\(", + "beginCaptures": { + "0": { + "name": "punctuation.section.interpolation.begin" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.interpolation.end" + } + }, + "contentName": "source.cue.embedded", + "patterns": [ + { + "include": "#whitespace" + }, + { + "include": "#expression" + }, + { + "include": "#invalid_in_parens" + } + ], + "name": "meta.interpolation" + }, + { + "match": "\\\\.", + "name": "invalid.illegal" + } + ], + "name": "meta.string" + }, + { + "begin": "`", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin" + } + }, + "end": "`", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end" + } + }, + "contentName": "string.quoted.backtick", + "name": "meta.string" + } + ] + }, + "whitespace": { + "match": "[ \\t\\r\\n]+" + } + } +} diff --git a/docs/shiki/languages/cypher.tmLanguage.json b/docs/shiki/languages/cypher.tmLanguage.json new file mode 100644 index 00000000..c39f4938 --- /dev/null +++ b/docs/shiki/languages/cypher.tmLanguage.json @@ -0,0 +1,349 @@ +{ + "fileTypes": ["cql", "cyp", "cypher"], + "name": "cypher", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#constants" + }, + { + "include": "#keywords" + }, + { + "include": "#functions" + }, + { + "include": "#path-patterns" + }, + { + "include": "#operators" + }, + { + "include": "#identifiers" + }, + { + "include": "#properties_literal" + }, + { + "include": "#numbers" + }, + { + "include": "#strings" + } + ], + "repository": { + "comments": { + "patterns": [ + { + "match": "//.*$\\n?", + "name": "comment.line.double-slash.cypher" + } + ] + }, + "constants": { + "patterns": [ + { + "match": "(?i)\\bTRUE|FALSE\\b", + "name": "constant.language.bool.cypher" + }, + { + "match": "(?i)\\bNULL\\b", + "name": "constant.language.missing.cypher" + } + ] + }, + "functions": { + "patterns": [ + { + "comment": "List of Cypher built-in functions from http://docs.neo4j.org/chunked/milestone/query-function.html", + "match": "(?i)\\b((NOT)(?=\\s*\\()|IS\\s+NULL|IS\\s+NOT\\s+NULL)", + "name": "keyword.control.function.boolean.cypher" + }, + { + "comment": "List of Cypher built-in functions from http://docs.neo4j.org/chunked/milestone/query-function.html", + "match": "(?i)\\b(ALL|ANY|NONE|SINGLE)(?=\\s*\\()", + "name": "support.function.predicate.cypher" + }, + { + "comment": "List of Cypher built-in functions from http://docs.neo4j.org/chunked/milestone/query-function.html", + "match": "(?i)\\b(LENGTH|TYPE|ID|COALESCE|HEAD|LAST|TIMESTAMP|STARTNODE|ENDNODE|TOINT|TOFLOAT)(?=\\s*\\()", + "name": "support.function.scalar.cypher" + }, + { + "comment": "List of Cypher built-in functions from http://docs.neo4j.org/chunked/milestone/query-function.html", + "match": "(?i)\\b(NODES|RELATIONSHIPS|LABELS|EXTRACT|FILTER|TAIL|RANGE|REDUCE)(?=\\s*\\()", + "name": "support.function.collection.cypher" + }, + { + "comment": "List of Cypher built-in functions from http://docs.neo4j.org/chunked/milestone/query-function.html", + "match": "(?i)\\b(ABS|ACOS|ASIN|ATAN|ATAN2|COS|COT|DEGREES|E|EXP|FLOOR|HAVERSIN|LOG|LOG10|PI|RADIANS|RAND|ROUND|SIGN|SIN|SQRT|TAN)(?=\\s*\\()", + "name": "support.function.math.cypher" + }, + { + "comment": "List of Cypher built-in functions from http://docs.neo4j.org/chunked/milestone/query-function.html", + "match": "(?i)\\b(COUNT|sum|avg|max|min|stdev|stdevp|percentileDisc|percentileCont|collect)(?=\\s*\\()", + "name": "support.function.aggregation.cypher" + }, + { + "comment": "List of Cypher built-in functions from http://docs.neo4j.org/chunked/milestone/query-function.html", + "match": "(?i)\\b(STR|REPLACE|SUBSTRING|LEFT|RIGHT|LTRIM|RTRIM|TRIM|LOWER|UPPER|SPLIT)(?=\\s*\\()", + "name": "support.function.string.cypher" + } + ] + }, + "identifiers": { + "patterns": [ + { + "match": "`.+?`", + "name": "variable.other.quoted-identifier.cypher" + }, + { + "match": "[\\p{L}_][\\p{L}0-9_]*", + "name": "variable.other.identifier.cypher" + } + ] + }, + "keywords": { + "patterns": [ + { + "match": "(?i)\\b(START|MATCH|WHERE|RETURN|UNION|FOREACH|WITH|AS|LIMIT|SKIP|UNWIND|HAS|DISTINCT|OPTIONAL\\\\s+MATCH|ORDER\\s+BY|CALL|YIELD)\\b", + "name": "keyword.control.clause.cypher" + }, + { + "match": "(?i)\\b(ELSE|END|THEN|CASE|WHEN)\\b", + "name": "keyword.control.case.cypher" + }, + { + "match": "(?i)\\b(FIELDTERMINATOR|USING\\s+PERIODIC\\s+COMMIT|HEADERS|LOAD\\s+CSV|FROM)\\b", + "name": "keyword.data.import.cypher" + }, + { + "match": "(?i)\\b(USING\\s+INDEX|CREATE\\s+INDEX\\s+ON|DROP\\s+INDEX\\s+ON|CREATE\\s+CONSTRAINT\\s+ON|DROP\\s+CONSTRAINT\\s+ON)\\b", + "name": "keyword.other.indexes.cypher" + }, + { + "match": "(?i)\\b(MERGE|DELETE|SET|REMOVE|ON\\s+CREATE|ON\\s+MATCH|CREATE\\s+UNIQUE|CREATE)\\b", + "name": "keyword.data.definition.cypher" + }, + { + "match": "(?i)\\b(DESC|ASC)\\b", + "name": "keyword.other.order.cypher" + }, + { + "begin": "(?i)\\b(node|relationship|rel)((:)([\\p{L}_-][\\p{L}0-9_]*))?(?=\\s*\\()", + "beginCaptures": { + "1": { + "name": "support.class.starting-functions-point.cypher" + }, + "2": { + "name": "keyword.control.index-seperator.cypher" + }, + "3": { + "name": "keyword.control.index-seperator.cypher" + }, + "4": { + "name": "support.class.index.cypher" + } + }, + "end": "\\)", + "name": "source.starting-functions.cypher", + "patterns": [ + { + "match": "((?:`.+?`)|(?:[\\p{L}_][\\p{L}0-9_]*))", + "name": "variable.parameter.relationship-name.cypher" + }, + { + "match": "(\\*)", + "name": "keyword.control.starting-function-params.cypher" + }, + { + "include": "#comments" + }, + { + "include": "#numbers" + }, + { + "include": "#strings" + } + ] + } + ] + }, + "numbers": { + "patterns": [ + { + "match": "\\b\\d+(\\.\\d+)?\\b", + "name": "constant.numeric.cypher" + } + ] + }, + "operators": { + "patterns": [ + { + "match": "(\\+|\\-|\\/|\\*|\\%|\\?|!)", + "name": "keyword.operator.math.cypher" + }, + { + "match": "(<=|=>|<>|<|>|=~|=)", + "name": "keyword.operator.compare.cypher" + }, + { + "match": "(?i)\\b(OR|AND|XOR|IS)\\b", + "name": "keyword.operator.logical.cypher" + }, + { + "match": "(?i)\\b(IN)\\b", + "name": "keyword.operator.in.cypher" + } + ] + }, + "path-patterns": { + "patterns": [ + { + "match": "(<--|-->|--)", + "name": "support.function.relationship-pattern.cypher" + }, + { + "begin": "(<-|-)(\\[)", + "beginCaptures": { + "1": { + "name": "support.function.relationship-pattern-start.cypher" + }, + "2": { + "name": "keyword.operator.relationship-pattern-start.cypher" + } + }, + "end": "(])(->|-)", + "endCaptures": { + "1": { + "name": "keyword.operator.relationship-pattern-end.cypher" + }, + "2": { + "name": "support.function.relationship-pattern-end.cypher" + } + }, + "name": "path-pattern.cypher", + "patterns": [ + { + "include": "#identifiers" + }, + { + "captures": { + "1": { + "name": "keyword.operator.relationship-type-start.cypher" + }, + "2": { + "name": "entity.name.class.relationship.type.cypher" + } + }, + "match": "(:)((?:`.+?`)|(?:[\\p{L}_][\\p{L}0-9_]*))", + "name": "entity.name.class.relationship-type.cypher" + }, + { + "captures": { + "1": { + "name": "support.type.operator.relationship-type-or.cypher" + }, + "2": { + "name": "entity.name.class.relationship.type-or.cypher" + } + }, + "match": "(\\|)(\\s*)((?:`.+?`)|(?:[\\p{L}_][\\p{L}0-9_]*))", + "name": "entity.name.class.relationship-type-ored.cypher" + }, + { + "match": "(?:\\?\\*|\\?|\\*)\\s*(?:\\d+\\s*(?:\\.\\.\\s*\\d+)?)?", + "name": "support.function.relationship-pattern.quant.cypher" + }, + { + "include": "#properties_literal" + } + ] + } + ] + }, + "properties_literal": { + "patterns": [ + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "keyword.control.properties_literal.cypher" + } + }, + "end": "}", + "endCaptures": { + "0": { + "name": "keyword.control.properties_literal.cypher" + } + }, + "name": "source.cypher", + "patterns": [ + { + "match": ":|,", + "name": "keyword.control.properties_literal.seperator.cypher" + }, + { + "include": "#comments" + }, + { + "include": "#constants" + }, + { + "include": "#functions" + }, + { + "include": "#operators" + }, + { + "include": "#identifiers" + }, + { + "include": "#numbers" + }, + { + "include": "#strings" + } + ] + } + ] + }, + "string_escape": { + "captures": { + "2": { + "name": "string.quoted.double.cypher" + } + }, + "match": "(\\\\\\\\|\\\\[tbnrf])|(\\\\'|\\\\\")", + "name": "constant.character.escape.cypher" + }, + "strings": { + "patterns": [ + { + "begin": "'", + "end": "'", + "name": "string.quoted.single.cypher", + "patterns": [ + { + "include": "#string_escape" + } + ] + }, + { + "begin": "\"", + "end": "\"", + "name": "string.quoted.double.cypher", + "patterns": [ + { + "include": "#string_escape" + } + ] + } + ] + } + }, + "scopeName": "source.cypher", + "uuid": "698F4D06-BAE8-40A8-8AA4-3307ABC03B31" +} diff --git a/docs/shiki/languages/d.tmLanguage.json b/docs/shiki/languages/d.tmLanguage.json new file mode 100644 index 00000000..95cf2dfc --- /dev/null +++ b/docs/shiki/languages/d.tmLanguage.json @@ -0,0 +1,3180 @@ +{ + "fileTypes": ["d", "di", "dpp"], + "name": "d", + "scopeName": "source.d", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#type" + }, + { + "include": "#statement" + }, + { + "include": "#expression" + } + ], + "repository": { + "type": { + "patterns": [ + { + "include": "#typeof" + }, + { + "include": "#base-type" + }, + { + "include": "#type-ctor" + }, + { + "begin": "!\\(", + "end": "\\)", + "patterns": [ + { + "include": "#type" + }, + { + "include": "#expression" + } + ] + } + ] + }, + "base-type": { + "patterns": [ + { + "match": "\\b(auto|bool|byte|ubyte|short|ushort|int|uint|long|ulong|char|wchar|dchar|float|double|real|ifloat|idouble|ireal|cfloat|cdouble|creal|void|noreturn)\\b", + "name": "storage.type.basic-type.d" + }, + { + "match": "\\b(string|wstring|dstring|size_t|ptrdiff_t)\\b(?!\\s*=)", + "name": "storage.type.basic-type.d" + } + ] + }, + "extended-type": { + "patterns": [ + { + "match": "\\b((\\.\\s*)?[_\\w][_\\d\\w]*)(\\s*\\.\\s*[_\\w][_\\d\\w]*)*\\b", + "name": "entity.name.type.d" + }, + { + "begin": "\\[", + "beginCaptures": { + "0": { + "name": "storage.type.array.expression.begin.d" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "storage.type.array.expression.end.d" + } + }, + "patterns": [ + { + "match": "\\.\\.|\\$", + "name": "keyword.operator.slice.d" + }, + { + "include": "#type" + }, + { + "include": "#expression" + } + ] + } + ] + }, + "type-ctor": { + "patterns": [ + { + "match": "(const|immutable|inout|shared)\\b", + "name": "storage.type.modifier.d" + } + ] + }, + "typeof": { + "begin": "typeof\\s*\\(", + "end": "\\)", + "name": "keyword.token.typeof.d", + "patterns": [ + { + "match": "return", + "name": "keyword.control.return.d" + }, + { + "include": "#expression" + } + ] + }, + "expression": { + "patterns": [ + { + "include": "#index-expression" + }, + { + "include": "#expression-no-index" + } + ] + }, + "expression-no-index": { + "patterns": [ + { + "include": "#function-literal" + }, + { + "include": "#assert-expression" + }, + { + "include": "#assign-expression" + }, + { + "include": "#mixin-expression" + }, + { + "include": "#import-expression" + }, + { + "include": "#traits-expression" + }, + { + "include": "#is-expression" + }, + { + "include": "#typeid-expression" + }, + { + "include": "#shift-expression" + }, + { + "include": "#logical-expression" + }, + { + "include": "#rel-expression" + }, + { + "include": "#bitwise-expression" + }, + { + "include": "#identity-expression" + }, + { + "include": "#in-expression" + }, + { + "include": "#conditional-expression" + }, + { + "include": "#arithmetic-expression" + }, + { + "include": "#new-expression" + }, + { + "include": "#delete-expression" + }, + { + "include": "#cast-expression" + }, + { + "include": "#type-specialization" + }, + { + "include": "#comma" + }, + { + "include": "#special-keyword" + }, + { + "include": "#functions" + }, + { + "include": "#type" + }, + { + "include": "#parentheses-expression" + }, + { + "include": "#lexical" + } + ] + }, + "assign-expression": { + "patterns": [ + { + "match": ">>>=|\\^\\^=|>>=|<<=|~=|\\^=|\\|=|&=|%=|/=|\\*=|-=|\\+=|=(?!>)", + "name": "keyword.operator.assign.d" + } + ] + }, + "conditional-expression": { + "patterns": [ + { + "match": "\\s(\\?|:)\\s", + "name": "keyword.operator.ternary.d" + } + ] + }, + "logical-expression": { + "patterns": [ + { + "match": "\\|\\||&&|==|!=|!", + "name": "keyword.operator.logical.d" + } + ] + }, + "bitwise-expression": { + "patterns": [ + { + "match": "\\||\\^|&", + "name": "keyword.operator.bitwise.d" + } + ] + }, + "identity-expression": { + "patterns": [ + { + "match": "\\b(is|!is)\\b", + "name": "keyword.operator.identity.d" + } + ] + }, + "rel-expression": { + "patterns": [ + { + "match": "!<>=|!<>|<>=|!>=|!<=|<=|>=|<>|!>|!<|<|>", + "name": "keyword.operator.rel.d" + } + ] + }, + "in-expression": { + "patterns": [ + { + "match": "\\b(in|!in)\\b", + "name": "keyword.operator.in.d" + } + ] + }, + "shift-expression": { + "patterns": [ + { + "match": "<<|>>|>>>", + "name": "keyword.operator.shift.d" + }, + { + "include": "#add-expression" + } + ] + }, + "arithmetic-expression": { + "patterns": [ + { + "match": "\\^\\^|\\+\\+|--|(?<!/)\\+(?!/)|-|~|(?<!/)\\*(?!/)|(?<![+*/])/(?![+*/])|%", + "name": "keyword.operator.numeric.d" + } + ] + }, + "new-expression": { + "patterns": [ + { + "match": "\\bnew\\s+", + "name": "keyword.other.new.d" + } + ] + }, + "delete-expression": { + "patterns": [ + { + "match": "\\bdelete\\s+", + "name": "keyword.other.delete.d" + } + ] + }, + "cast-expression": { + "patterns": [ + { + "begin": "\\b(cast)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "keyword.operator.cast.d" + }, + "2": { + "name": "keyword.operator.cast.begin.d" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "keyword.operator.cast.end.d" + } + }, + "patterns": [ + { + "include": "#type" + }, + { + "include": "#extended-type" + } + ] + } + ] + }, + "index-expression": { + "patterns": [ + { + "begin": "\\[", + "end": "\\]", + "patterns": [ + { + "match": "\\.\\.|\\$", + "name": "keyword.operator.slice.d" + }, + { + "include": "#expression-no-index" + } + ] + } + ] + }, + "function-literal": { + "patterns": [ + { + "match": "=>", + "name": "keyword.operator.lambda.d" + }, + { + "match": "\\b(function|delegate)\\b", + "name": "keyword.other.function-literal.d" + }, + { + "begin": "\\b([_\\w][_\\d\\w]*)\\s*(=>)", + "end": "(?=[\\);,\\]}])", + "beginCaptures": { + "1": { + "name": "variable.parameter.d" + }, + "2": { + "name": "meta.lexical.token.symbolic.d" + } + }, + "patterns": [ + { + "include": "source.d" + } + ] + }, + { + "begin": "(?<=\\)|\\()(\\s*)({)", + "beginCaptures": { + "1": { + "name": "source.d" + }, + "2": { + "name": "source.d" + } + }, + "end": "}", + "patterns": [ + { + "include": "source.d" + } + ] + } + ] + }, + "assert-expression": { + "patterns": [ + { + "begin": "\\bassert\\s*\\(", + "beginCaptures": { + "0": { + "name": "keyword.other.assert.begin.d" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "keyword.other.assert.end.d" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#expression" + }, + { + "include": "#comma" + } + ] + } + ] + }, + "mixin-expression": { + "patterns": [ + { + "begin": "\\bmixin\\s*\\(", + "beginCaptures": { + "0": { + "name": "keyword.other.mixin.begin.d" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "keyword.other.mixin.end.d" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#expression" + }, + { + "include": "#comma" + } + ] + } + ] + }, + "import-expression": { + "patterns": [ + { + "begin": "\\b(import)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "keyword.other.import.d" + }, + "2": { + "name": "keyword.other.import.begin.d" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "keyword.other.import.end.d" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#expression" + }, + { + "include": "#comma" + } + ] + } + ] + }, + "typeid-expression": { + "patterns": [ + { + "match": "\\btypeid\\s*(?=\\()", + "name": "keyword.other.typeid.d" + } + ] + }, + "type-specialization": { + "patterns": [ + { + "match": "\\b(struct|union|class|interface|enum|function|delegate|super|const|immutable|inout|shared|return|__parameters)\\b", + "name": "keyword.other.storage.type-specialization.d" + } + ] + }, + "traits-expression": { + "patterns": [ + { + "begin": "\\b__traits\\s*\\(", + "beginCaptures": { + "0": { + "name": "keyword.other.traits.begin.d" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "keyword.other.traits.end.d" + } + }, + "patterns": [ + { + "include": "#traits-keyword" + }, + { + "include": "#comma" + }, + { + "include": "#traits-argument" + } + ] + } + ] + }, + "traits-keyword": { + "patterns": [ + { + "match": "isAbstractClass|isArithmetic|isAssociativeArray|isFinalClass|isPOD|isNested|isFloating|isIntegral|isScalar|isStaticArray|isUnsigned|isVirtualFunction|isVirtualMethod|isAbstractFunction|isFinalFunction|isStaticFunction|isOverrideFunction|isRef|isOut|isLazy|hasMember|identifier|getAliasThis|getAttributes|getMember|getOverloads|getProtection|getVirtualFunctions|getVirtualMethods|getUnitTests|parent|classInstanceSize|getVirtualIndex|allMembers|derivedMembers|isSame|compiles", + "name": "support.constant.traits-keyword.d" + } + ] + }, + "traits-arguments": { + "patterns": [ + { + "include": "#traits-argument" + }, + { + "include": "#comma" + } + ] + }, + "traits-argument": { + "patterns": [ + { + "include": "#expression" + }, + { + "include": "#type" + } + ] + }, + "special-keyword": { + "patterns": [ + { + "match": "\\b(__FILE__|__FILE_FULL_PATH__|__MODULE__|__LINE__|__FUNCTION__|__PRETTY_FUNCTION__)\\b", + "name": "constant.language.special-keyword.d" + } + ] + }, + "statement": { + "patterns": [ + { + "include": "#non-block-statement" + }, + { + "include": "#semi-colon" + } + ] + }, + "non-block-statement": { + "patterns": [ + { + "include": "#module-declaration" + }, + { + "include": "#labeled-statement" + }, + { + "include": "#if-statement" + }, + { + "include": "#while-statement" + }, + { + "include": "#do-statement" + }, + { + "include": "#for-statement" + }, + { + "include": "#static-foreach" + }, + { + "include": "#static-foreach-reverse" + }, + { + "include": "#foreach-statement" + }, + { + "include": "#foreach-reverse-statement" + }, + { + "include": "#switch-statement" + }, + { + "include": "#final-switch-statement" + }, + { + "include": "#case-statement" + }, + { + "include": "#default-statement" + }, + { + "include": "#continue-statement" + }, + { + "include": "#break-statement" + }, + { + "include": "#return-statement" + }, + { + "include": "#goto-statement" + }, + { + "include": "#with-statement" + }, + { + "include": "#synchronized-statement" + }, + { + "include": "#try-statement" + }, + { + "include": "#catches" + }, + { + "include": "#scope-guard-statement" + }, + { + "include": "#throw-statement" + }, + { + "include": "#finally-statement" + }, + { + "include": "#asm-statement" + }, + { + "include": "#pragma-statement" + }, + { + "include": "#mixin-statement" + }, + { + "include": "#conditional-statement" + }, + { + "include": "#static-assert" + }, + { + "include": "#deprecated-statement" + }, + { + "include": "#unit-test" + }, + { + "include": "#declaration-statement" + } + ] + }, + "labeled-statement": { + "patterns": [ + { + "match": "\\b(?!abstract|alias|align|asm|assert|auto|bool|break|byte|case|cast|catch|cdouble|cent|cfloat|char|class|const|continue|creal|dchar|debug|default|delegate|delete|deprecated|do|double|else|enum|export|extern|false|final|finally|float|for|foreach|foreach_reverse|function|goto|idouble|if|ifloat|immutable|import|in|inout|int|interface|invariant|ireal|is|lazy|long|macro|mixin|module|new|nothrow|noreturn|null|out|override|package|pragma|private|protected|public|pure|real|ref|return|scope|shared|short|static|struct|super|switch|synchronized|template|this|throw|true|try|typedef|typeid|typeof|ubyte|ucent|uint|ulong|union|unittest|ushort|version|void|volatile|wchar|while|with|__FILE__|__MODULE__|__LINE__|__FUNCTION__|__PRETTY_FUNCTION__|__gshared|__traits|__vector|__parameters)[a-zA-Z_][a-zA-Z_0-9]*\\s*:", + "name": "entity.name.d" + } + ] + }, + "declaration-statement": { + "patterns": [ + { + "include": "#declaration" + } + ] + }, + "if-statement": { + "patterns": [ + { + "begin": "\\b(if)\\b\\s*", + "captures": { + "1": { + "name": "keyword.control.if.d" + } + }, + "end": "(?<=\\))", + "patterns": [ + { + "begin": "\\(", + "end": "\\)", + "patterns": [ + { + "include": "source.d" + } + ] + } + ] + }, + { + "match": "\\belse\\b\\s*", + "name": "keyword.control.else.d" + } + ] + }, + "while-statement": { + "patterns": [ + { + "begin": "\\b(while)\\b\\s*", + "captures": { + "1": { + "name": "keyword.control.while.d" + } + }, + "end": "(?<=\\))", + "patterns": [ + { + "begin": "\\(", + "end": "\\)", + "patterns": [ + { + "include": "source.d" + } + ] + } + ] + } + ] + }, + "do-statement": { + "patterns": [ + { + "match": "\\bdo\\b", + "name": "keyword.control.do.d" + } + ] + }, + "for-statement": { + "patterns": [ + { + "begin": "\\b(for)\\b\\s*", + "captures": { + "1": { + "name": "keyword.control.for.d" + } + }, + "end": "(?<=\\))", + "patterns": [ + { + "begin": "\\(", + "end": "\\)", + "patterns": [ + { + "include": "source.d" + } + ] + } + ] + } + ] + }, + "foreach-statement": { + "patterns": [ + { + "begin": "\\b(foreach)\\b\\s*", + "captures": { + "1": { + "name": "keyword.control.foreach.d" + } + }, + "end": "(?<=\\))", + "patterns": [ + { + "begin": "\\(", + "end": "\\)", + "patterns": [ + { + "match": ";", + "name": "keyword.operator.semi-colon.d" + }, + { + "include": "source.d" + } + ] + } + ] + } + ] + }, + "foreach-reverse-statement": { + "patterns": [ + { + "begin": "\\b(foreach_reverse)\\b\\s*", + "captures": { + "1": { + "name": "keyword.control.foreach_reverse.d" + } + }, + "end": "(?<=\\))", + "patterns": [ + { + "begin": "\\(", + "end": "\\)", + "patterns": [ + { + "match": ";", + "name": "keyword.operator.semi-colon.d" + }, + { + "include": "source.d" + } + ] + } + ] + } + ] + }, + "switch-statement": { + "patterns": [ + { + "begin": "\\b(switch)\\b\\s*", + "captures": { + "1": { + "name": "keyword.control.switch.d" + } + }, + "end": "(?<=\\))", + "patterns": [ + { + "begin": "\\(", + "end": "\\)", + "patterns": [ + { + "include": "source.d" + } + ] + } + ] + } + ] + }, + "case-statement": { + "patterns": [ + { + "begin": "\\b(case)\\b\\s*", + "beginCaptures": { + "1": { + "name": "keyword.control.case.range.d" + } + }, + "end": ":", + "endCaptures": { + "0": { + "name": "meta.case.end.d" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#expression" + }, + { + "include": "#comma" + } + ] + } + ] + }, + "default-statement": { + "patterns": [ + { + "match": "\\b(default)\\s*(:)", + "captures": { + "1": { + "name": "keyword.control.case.default.d" + }, + "2": { + "name": "meta.default.colon.d" + } + } + } + ] + }, + "final-switch-statement": { + "patterns": [ + { + "begin": "\\b(final\\s+switch)\\b\\s*", + "captures": { + "1": { + "name": "keyword.control.final.switch.d" + } + }, + "end": "(?<=\\))", + "patterns": [ + { + "begin": "\\(", + "end": "\\)", + "patterns": [ + { + "include": "source.d" + } + ] + } + ] + } + ] + }, + "continue-statement": { + "patterns": [ + { + "match": "\\bcontinue\\b", + "name": "keyword.control.continue.d" + } + ] + }, + "break-statement": { + "patterns": [ + { + "match": "\\bbreak\\b", + "name": "keyword.control.break.d" + } + ] + }, + "return-statement": { + "patterns": [ + { + "match": "\\breturn\\b", + "name": "keyword.control.return.d" + } + ] + }, + "goto-statement": { + "patterns": [ + { + "match": "\\bgoto\\s+default\\b", + "name": "keyword.control.goto.d" + }, + { + "match": "\\bgoto\\s+case\\b", + "name": "keyword.control.goto.d" + }, + { + "match": "\\bgoto\\b", + "name": "keyword.control.goto.d" + } + ] + }, + "with-statement": { + "patterns": [ + { + "begin": "\\b(with)\\b\\s*(?=\\()", + "captures": { + "1": { + "name": "keyword.control.with.d" + } + }, + "end": "(?<=\\))", + "patterns": [ + { + "begin": "\\(", + "end": "\\)", + "patterns": [ + { + "include": "source.d" + } + ] + } + ] + } + ] + }, + "synchronized-statement": { + "patterns": [ + { + "begin": "\\b(synchronized)\\b\\s*(?=\\()", + "captures": { + "1": { + "name": "keyword.control.synchronized.d" + } + }, + "end": "(?<=\\))", + "patterns": [ + { + "begin": "\\(", + "end": "\\)", + "patterns": [ + { + "include": "source.d" + } + ] + } + ] + } + ] + }, + "try-statement": { + "patterns": [ + { + "match": "\\btry\\b", + "name": "keyword.control.try.d" + } + ] + }, + "catches": { + "patterns": [ + { + "include": "#catch" + } + ] + }, + "catch": { + "patterns": [ + { + "begin": "\\b(catch)\\b\\s*(?=\\()", + "captures": { + "1": { + "name": "keyword.control.catch.d" + } + }, + "end": "(?<=\\))", + "patterns": [ + { + "begin": "\\(", + "end": "\\)", + "patterns": [ + { + "include": "source.d" + } + ] + } + ] + } + ] + }, + "finally-statement": { + "patterns": [ + { + "match": "\\bfinally\\b", + "name": "keyword.control.throw.d" + } + ] + }, + "throw-statement": { + "patterns": [ + { + "match": "\\bthrow\\b", + "name": "keyword.control.throw.d" + } + ] + }, + "scope-guard-statement": { + "patterns": [ + { + "match": "\\bscope\\s*\\((exit|success|failure)\\)", + "name": "keyword.control.scope.d" + } + ] + }, + "asm-statement": { + "patterns": [ + { + "begin": "\\b(asm)\\b\\s*(?=\\{)", + "captures": { + "1": { + "name": "keyword.control.switch.d" + } + }, + "end": "(?<=\\})", + "patterns": [ + { + "begin": "\\{", + "end": "\\}", + "beginCaptures": { + "0": { + "name": "keyword.control.asm.begin.d" + } + }, + "endCaptures": { + "0": { + "name": "keyword.control.asm.end.d" + } + }, + "contentName": "gfm.markup.raw.assembly.d", + "patterns": [ + { + "include": "#asm-instruction" + } + ] + } + ] + } + ] + }, + "pragma-statement": { + "patterns": [ + { + "include": "#pragma" + } + ] + }, + "mixin-statement": { + "patterns": [ + { + "begin": "\\bmixin\\s*\\(", + "beginCaptures": { + "0": { + "name": "keyword.control.mixin.begin.d" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "keyword.control.mixin.end.d" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#expression" + }, + { + "include": "#comma" + } + ] + } + ] + }, + "is-expression": { + "patterns": [ + { + "begin": "\\bis\\s*\\(", + "beginCaptures": { + "0": { + "name": "keyword.token.is.begin.d" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "keyword.token.is.end.d" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#expression" + }, + { + "include": "#comma" + } + ] + } + ] + }, + "parentheses-expression": { + "patterns": [ + { + "begin": "\\(", + "end": "\\)", + "patterns": [ + { + "include": "#expression" + } + ] + } + ] + }, + "deprecated-statement": { + "patterns": [ + { + "begin": "\\bdeprecated\\s*\\(", + "beginCaptures": { + "0": { + "name": "keyword.other.deprecated.begin.d" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "keyword.other.deprecated.end.d" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#expression" + }, + { + "include": "#comma" + } + ] + }, + { + "match": "\\bdeprecated\\b\\s*(?!\\()", + "name": "keyword.other.deprecated.plain.d" + } + ] + }, + "asm-instruction": { + "patterns": [ + { + "include": "#comment" + }, + { + "match": "\\b(align|even|naked|db|ds|di|dl|df|dd|de)\\b|:", + "name": "keyword.asm-instruction.d" + }, + { + "match": "\\b__LOCAL_SIZE\\b", + "name": "constant.language.assembly.d" + }, + { + "match": "\\b(offsetof|seg)\\b", + "name": "support.type.assembly.d" + }, + { + "include": "#asm-type-prefix" + }, + { + "include": "#asm-primary-expression" + }, + { + "include": "#operands" + }, + { + "include": "#register" + }, + { + "include": "#register-64" + }, + { + "include": "#float-literal" + }, + { + "include": "#integer-literal" + }, + { + "include": "#identifier" + } + ] + }, + "operands": { + "patterns": [ + { + "match": "\\?|:", + "name": "keyword.operator.ternary.assembly.d" + }, + { + "match": "\\]|\\[", + "name": "keyword.operator.bracket.assembly.d" + }, + { + "match": ">>>|\\|\\||&&|==|!=|<=|>=|<<|>>|\\||\\^|&|<|>|\\+|-|\\*|/|%|~|!", + "name": "keyword.operator.assembly.d" + } + ] + }, + "asm-type-prefix": { + "patterns": [ + { + "match": "\\b((near\\s+ptr)|(far\\s+ptr)|(byte\\s+ptr)|(short\\s+ptr)|(int\\s+ptr)|(word\\s+ptr)|(dword\\s+ptr)|(qword\\s+ptr)|(float\\s+ptr)|(double\\s+ptr)|(real\\s+ptr))\\b", + "name": "support.type.asm-type-prefix.d" + } + ] + }, + "register": { + "patterns": [ + { + "match": "\\b(XMM0|XMM1|XMM2|XMM3|XMM4|XMM5|XMM6|XMM7|MM0|MM1|MM2|MM3|MM4|MM5|MM6|MM7|ST\\(0\\)|ST\\(1\\)|ST\\(2\\)|ST\\(3\\)|ST\\(4\\)|ST\\(5\\)|ST\\(6\\)|ST\\(7\\)|ST|TR1|TR2|TR3|TR4|TR5|TR6|TR7|DR0|DR1|DR2|DR3|DR4|DR5|DR6|DR7|CR0|CR2|CR3|CR4|EAX|EBX|ECX|EDX|EBP|ESP|EDI|ESI|AL|AH|AX|BL|BH|BX|CL|CH|CX|DL|DH|DX|BP|SP|DI|SI|ES|CS|SS|DS|GS|FS)\\b", + "name": "storage.type.assembly.register.d" + } + ] + }, + "register-64": { + "patterns": [ + { + "match": "\\b(RAX|RBX|RCX|RDX|BPL|RBP|SPL|RSP|DIL|RDI|SIL|RSI|R8B|R8W|R8D|R8|R9B|R9W|R9D|R9|R10B|R10W|R10D|R10|R11B|R11W|R11D|R11|R12B|R12W|R12D|R12|R13B|R13W|R13D|R13|R14B|R14W|R14D|R14|R15B|R15W|R15D|R15|XMM8|XMM9|XMM10|XMM11|XMM12|XMM13|XMM14|XMM15|YMM0|YMM1|YMM2|YMM3|YMM4|YMM5|YMM6|YMM7|YMM8|YMM9|YMM10|YMM11|YMM12|YMM13|YMM14|YMM15)\\b", + "name": "storage.type.assembly.register-64.d" + } + ] + }, + "declaration": { + "patterns": [ + { + "include": "#alias-declaration" + }, + { + "include": "#aggregate-declaration" + }, + { + "include": "#enum-declaration" + }, + { + "include": "#import-declaration" + }, + { + "include": "#storage-class" + }, + { + "include": "#void-initializer" + }, + { + "include": "#mixin-declaration" + } + ] + }, + "alias-declaration": { + "patterns": [ + { + "begin": "\\b(alias)\\b\\s*", + "beginCaptures": { + "1": { + "name": "keyword.other.alias.d" + } + }, + "end": ";", + "endCaptures": { + "0": { + "name": "meta.alias.end.d" + } + }, + "patterns": [ + { + "include": "#type" + }, + { + "match": "=(?![=>])", + "name": "keyword.operator.equal.alias.d" + }, + { + "include": "#expression" + } + ] + } + ] + }, + "storage-class": { + "patterns": [ + { + "match": "\\b(deprecated|enum|static|extern|abstract|final|override|synchronized|auto|scope|const|immutable|inout|shared|__gshared|nothrow|pure|ref)\\b", + "name": "storage.class.d" + }, + { + "include": "#linkage-attribute" + }, + { + "include": "#align-attribute" + }, + { + "include": "#property" + } + ] + }, + "void-initializer": { + "patterns": [ + { + "match": "\\bvoid\\b", + "name": "support.type.void.d" + } + ] + }, + "functions": { + "patterns": [ + { + "include": "#function-attribute" + }, + { + "include": "#function-prelude" + } + ] + }, + "function-prelude": { + "patterns": [ + { + "match": "(?!typeof|typeid)((\\.\\s*)?[_\\w][_\\d\\w]*)(\\s*\\.\\s*[_\\w][_\\d\\w]*)*\\s*(?=\\()", + "name": "entity.name.function.d" + } + ] + }, + "class-members": { + "patterns": [ + { + "include": "#shared-static-constructor" + }, + { + "include": "#shared-static-destructor" + }, + { + "include": "#constructor" + }, + { + "include": "#destructor" + }, + { + "include": "#postblit" + }, + { + "include": "#invariant" + }, + { + "include": "#member-function-attribute" + } + ] + }, + "function-attribute": { + "patterns": [ + { + "match": "\\b(nothrow|pure)\\b", + "name": "storage.type.modifier.function-attribute.d" + }, + { + "include": "#property" + } + ] + }, + "member-function-attribute": { + "patterns": [ + { + "match": "\\b(const|immutable|inout|shared)\\b", + "name": "storage.type.modifier.member-function-attribute" + } + ] + }, + "function-body": { + "patterns": [ + { + "include": "#in-statement" + }, + { + "include": "#out-statement" + }, + { + "include": "#block-statement" + } + ] + }, + "in-statement": { + "patterns": [ + { + "match": "\\bin\\b", + "name": "keyword.control.in.d" + } + ] + }, + "out-statement": { + "patterns": [ + { + "begin": "\\bout\\s*\\(", + "beginCaptures": { + "0": { + "name": "keyword.control.out.begin.d" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "keyword.control.out.end.d" + } + }, + "patterns": [ + { + "include": "#identifier" + } + ] + }, + { + "match": "\\bout\\b", + "name": "keyword.control.out.d" + } + ] + }, + "constructor": { + "patterns": [ + { + "match": "\\bthis\\b", + "name": "entity.name.function.constructor.d" + } + ] + }, + "destructor": { + "patterns": [ + { + "match": "\\b~this\\s*\\(\\s*\\)", + "name": "entity.name.class.destructor.d" + } + ] + }, + "postblit": { + "patterns": [ + { + "match": "\\bthis\\s*\\(\\s*this\\s*\\)\\s", + "name": "entity.name.class.postblit.d" + } + ] + }, + "invariant": { + "patterns": [ + { + "match": "\\binvariant\\s*\\(\\s*\\)", + "name": "entity.name.class.invariant.d" + } + ] + }, + "shared-static-constructor": { + "patterns": [ + { + "match": "\\b(shared\\s+)?static\\s+this\\s*\\(\\s*\\)", + "name": "entity.name.class.constructor.shared-static.d" + }, + { + "include": "#function-body" + } + ] + }, + "shared-static-destructor": { + "patterns": [ + { + "match": "\\b(shared\\s+)?static\\s+~this\\s*\\(\\s*\\)", + "name": "entity.name.class.destructor.static.d" + } + ] + }, + "aggregate-declaration": { + "patterns": [ + { + "include": "#class-declaration" + }, + { + "include": "#interface-declaration" + }, + { + "include": "#struct-declaration" + }, + { + "include": "#union-declaration" + }, + { + "include": "#mixin-template-declaration" + }, + { + "include": "#template-declaration" + } + ] + }, + "class-declaration": { + "patterns": [ + { + "match": "\\b(class)(?:\\s+([A-Za-z_][\\w_\\d]*))?\\b", + "captures": { + "1": { + "name": "storage.type.class.d" + }, + "2": { + "name": "entity.name.class.d" + } + } + }, + { + "include": "#protection-attribute" + }, + { + "include": "#class-members" + } + ] + }, + "interface-declaration": { + "patterns": [ + { + "match": "\\b(interface)(?:\\s+([A-Za-z_][\\w_\\d]*))?\\b", + "captures": { + "1": { + "name": "storage.type.interface.d" + }, + "2": { + "name": "entity.name.type.interface.d" + } + } + } + ] + }, + "struct-declaration": { + "patterns": [ + { + "match": "\\b(struct)(?:\\s+([A-Za-z_][\\w_\\d]*))?\\b", + "captures": { + "1": { + "name": "storage.type.struct.d" + }, + "2": { + "name": "entity.name.type.struct.d" + } + } + } + ] + }, + "union-declaration": { + "patterns": [ + { + "match": "\\b(union)(?:\\s+([A-Za-z_][\\w_\\d]*))?\\b", + "captures": { + "1": { + "name": "storage.type.union.d" + }, + "2": { + "name": "entity.name.type.union.d" + } + } + } + ] + }, + "enum-declaration": { + "patterns": [ + { + "begin": "\\b(enum)\\b\\s+(?=.*[=;])", + "end": "([A-Za-z_][\\w_\\d]*)\\s*(?=;|=|\\()(;)?", + "beginCaptures": { + "1": { + "name": "storage.type.enum.d" + } + }, + "endCaptures": { + "1": { + "name": "entity.name.type.enum.d" + }, + "2": { + "name": "meta.enum.end.d" + } + }, + "patterns": [ + { + "include": "#type" + }, + { + "include": "#extended-type" + }, + { + "match": "=(?![=>])", + "name": "keyword.operator.equal.alias.d" + } + ] + } + ] + }, + "template-declaration": { + "patterns": [ + { + "match": "\\b(template)(?:\\s+([A-Za-z_][\\w_\\d]*))?\\b", + "captures": { + "1": { + "name": "storage.type.template.d" + }, + "2": { + "name": "entity.name.type.template.d" + } + } + } + ] + }, + "mixin-template-declaration": { + "patterns": [ + { + "match": "\\b(mixin\\s*template)(?:\\s+([A-Za-z_][\\w_\\d]*))?\\b", + "captures": { + "1": { + "name": "storage.type.mixintemplate.d" + }, + "2": { + "name": "entity.name.type.mixintemplate.d" + } + } + } + ] + }, + "attribute": { + "patterns": [ + { + "include": "#linkage-attribute" + }, + { + "include": "#align-attribute" + }, + { + "include": "#deprecated-attribute" + }, + { + "include": "#protection-attribute" + }, + { + "include": "#pragma" + }, + { + "match": "\\b(static|extern|abstract|final|override|synchronized|auto|scope|const|immutable|inout|shared|__gshared|nothrow|pure|ref)\\b", + "name": "entity.other.attribute-name.d" + }, + { + "include": "#property" + } + ] + }, + "linkage-attribute": { + "patterns": [ + { + "begin": "\\bextern\\s*\\(\\s*C\\+\\+\\s*,", + "beginCaptures": { + "0": { + "name": "keyword.other.extern.cplusplus.begin.d" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "keyword.other.extern.cplusplus.end.d" + } + }, + "patterns": [ + { + "include": "#identifier" + }, + { + "include": "#comma" + } + ] + }, + { + "begin": "\\bextern\\s*\\(", + "beginCaptures": { + "0": { + "name": "keyword.other.extern.begin.d" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "keyword.other.extern.end.d" + } + }, + "patterns": [ + { + "include": "#linkage-type" + } + ] + } + ] + }, + "linkage-type": { + "patterns": [ + { + "match": "C|C\\+\\+|D|Windows|Pascal|System", + "name": "storage.modifier.linkage-type.d" + } + ] + }, + "align-attribute": { + "patterns": [ + { + "begin": "\\balign\\s*\\(", + "end": "\\)", + "name": "storage.modifier.align-attribute.d", + "patterns": [ + { + "include": "#integer-literal" + } + ] + }, + { + "match": "\\balign\\b\\s*(?!\\()", + "name": "storage.modifier.align-attribute.d" + } + ] + }, + "protection-attribute": { + "patterns": [ + { + "match": "\\b(private|package|protected|public|export)\\b", + "name": "keyword.other.protections.d" + } + ] + }, + "property": { + "patterns": [ + { + "match": "@(property|safe|trusted|system|disable|nogc)\\b", + "name": "entity.name.tag.property.d" + }, + { + "include": "#user-defined-attribute" + } + ] + }, + "user-defined-attribute": { + "patterns": [ + { + "match": "@([_\\w][_\\d\\w]*)\\b", + "name": "entity.name.tag.user-defined-property.d" + }, + { + "begin": "@([_\\w][_\\d\\w]*)?\\(", + "end": "\\)", + "name": "entity.name.tag.user-defined-property.d", + "patterns": [ + { + "include": "#expression" + } + ] + } + ] + }, + "pragma": { + "patterns": [ + { + "match": "\\bpragma\\s*\\(\\s*[_\\w][_\\d\\w]*\\s*\\)", + "name": "keyword.other.pragma.d" + }, + { + "begin": "\\bpragma\\s*\\(\\s*[_\\w][_\\d\\w]*\\s*,", + "end": "\\)", + "name": "keyword.other.pragma.d", + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "match": "^#!.+", + "name": "gfm.markup.header.preprocessor.script-tag.d" + } + ] + }, + "conditional-declaration": { + "patterns": [ + { + "include": "#condition" + }, + { + "match": "\\belse\\b", + "name": "keyword.control.else.d" + }, + { + "include": "#colon" + }, + { + "include": "#decl-defs" + } + ] + }, + "conditional-statement": { + "patterns": [ + { + "include": "#condition" + }, + { + "include": "#no-scope-non-empty-statement" + }, + { + "match": "\\belse\\b", + "name": "keyword.control.else.d" + } + ] + }, + "condition": { + "patterns": [ + { + "include": "#version-condition" + }, + { + "include": "#debug-condition" + }, + { + "include": "#static-if-condition" + } + ] + }, + "version-condition": { + "patterns": [ + { + "match": "\\bversion\\s*\\(\\s*unittest\\s*\\)", + "name": "keyword.other.version.unittest.d" + }, + { + "match": "\\bversion\\s*\\(\\s*assert\\s*\\)", + "name": "keyword.other.version.assert.d" + }, + { + "begin": "\\bversion\\s*\\(", + "beginCaptures": { + "0": { + "name": "keyword.other.version.identifier.begin.d" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "keyword.other.version.identifer.end.d" + } + }, + "patterns": [ + { + "include": "#integer-literal" + }, + { + "include": "#identifier" + } + ] + }, + { + "include": "#version-specification" + } + ] + }, + "debug-condition": { + "patterns": [ + { + "begin": "\\bdebug\\s*\\(", + "beginCaptures": { + "0": { + "name": "keyword.other.debug.identifier.begin.d" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "keyword.other.debug.identifier.end.d" + } + }, + "patterns": [ + { + "include": "#integer-literal" + }, + { + "include": "#identifier" + } + ] + }, + { + "match": "\\bdebug\\b\\s*(?!\\()", + "name": "keyword.other.debug.plain.d" + } + ] + }, + "version-specification": { + "patterns": [ + { + "match": "\\bversion\\b\\s*(?==)", + "name": "keyword.other.version-specification.d" + } + ] + }, + "debug-specification": { + "patterns": [ + { + "match": "\\bdebug\\b\\s*(?==)", + "name": "keyword.other.debug-specification.d" + } + ] + }, + "static-if-condition": { + "patterns": [ + { + "begin": "\\bstatic\\s+if\\b\\s*\\(", + "beginCaptures": { + "0": { + "name": "keyword.control.static-if.begin.d" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "keyword.control.static-if.end.d" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#expression" + } + ] + } + ] + }, + "static-assert": { + "patterns": [ + { + "begin": "\\bstatic\\s+assert\\b\\s*\\(", + "beginCaptures": { + "0": { + "name": "keyword.other.static-assert.begin.d" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "keyword.other.static-assert.end.d" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + } + ] + }, + "static-foreach": { + "patterns": [ + { + "begin": "\\b(static\\s+foreach)\\b\\s*", + "captures": { + "1": { + "name": "keyword.control.static-foreach.d" + } + }, + "end": "(?<=\\))", + "patterns": [ + { + "begin": "\\(", + "end": "\\)", + "patterns": [ + { + "match": ";", + "name": "keyword.operator.semi-colon.d" + }, + { + "include": "source.d" + } + ] + } + ] + } + ] + }, + "static-foreach-reverse": { + "patterns": [ + { + "begin": "\\b(static\\s+foreach_reverse)\\b\\s*", + "captures": { + "1": { + "name": "keyword.control.static-foreach.d" + } + }, + "end": "(?<=\\))", + "patterns": [ + { + "begin": "\\(", + "end": "\\)", + "patterns": [ + { + "match": ";", + "name": "keyword.operator.semi-colon.d" + }, + { + "include": "source.d" + } + ] + } + ] + } + ] + }, + "module": { + "packages": [ + { + "import": "#module-declaration" + } + ] + }, + "module-declaration": { + "patterns": [ + { + "begin": "\\b(module)\\s+", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.package.module.d" + } + }, + "endCaptures": { + "0": { + "name": "meta.module.end.d" + } + }, + "patterns": [ + { + "include": "#module-identifier" + }, + { + "include": "#comment" + } + ] + } + ] + }, + "import-declaration": { + "patterns": [ + { + "begin": "\\b(static\\s+)?(import)\\s+(?!\\()", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.package.import.d" + }, + "2": { + "name": "keyword.package.import.d" + } + }, + "endCaptures": { + "0": { + "name": "meta.import.end.d" + } + }, + "patterns": [ + { + "include": "#import-identifier" + }, + { + "include": "#comma" + }, + { + "include": "#comment" + } + ] + } + ] + }, + "mixin-declaration": { + "patterns": [ + { + "begin": "\\bmixin\\s*\\(", + "end": "\\)", + "beginCaptures": { + "0": { + "name": "keyword.mixin.begin.d" + } + }, + "endCaptures": { + "0": { + "name": "keyword.mixin.end.d" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#expression" + }, + { + "include": "#comma" + } + ] + } + ] + }, + "comma": { + "patterns": [ + { + "match": ",", + "name": "keyword.operator.comma.d" + } + ] + }, + "colon": { + "patterns": [ + { + "match": ":", + "name": "support.type.colon.d" + } + ] + }, + "equal": { + "patterns": [ + { + "match": "=(?![=>])", + "name": "keyword.operator.equal.d" + } + ] + }, + "semi-colon": { + "patterns": [ + { + "match": ";", + "name": "meta.statement.end.d" + } + ] + }, + "lexical": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#string-literal" + }, + { + "include": "#character-literal" + }, + { + "include": "#float-literal" + }, + { + "include": "#integer-literal" + }, + { + "include": "#eof" + }, + { + "include": "#special-tokens" + }, + { + "include": "#special-token-sequence" + }, + { + "include": "#keyword" + }, + { + "include": "#identifier" + } + ] + }, + "integer-literal": { + "patterns": [ + { + "include": "#decimal-integer" + }, + { + "include": "#binary-integer" + }, + { + "include": "#hexadecimal-integer" + } + ] + }, + "decimal-integer": { + "patterns": [ + { + "match": "\\b(0(?=[^\\dxXbB]))|([1-9][0-9_]*)(Lu|LU|uL|UL|L|u|U)?\\b", + "name": "constant.numeric.integer.decimal.d" + } + ] + }, + "binary-integer": { + "patterns": [ + { + "match": "\\b(0b|0B)[0-1_]+(Lu|LU|uL|UL|L|u|U)?\\b", + "name": "constant.numeric.integer.binary.d" + } + ] + }, + "hexadecimal-integer": { + "patterns": [ + { + "match": "\\b(0x|0X)([0-9a-fA-F][0-9a-fA-F_]*)(Lu|LU|uL|UL|L|u|U)?\\b", + "name": "constant.numeric.integer.hexadecimal.d" + } + ] + }, + "float-literal": { + "patterns": [ + { + "include": "#decimal-float" + }, + { + "include": "#hexadecimal-float" + } + ] + }, + "decimal-float": { + "patterns": [ + { + "match": "\\b((\\.[0-9])|(0\\.)|(([1-9]|(0[1-9_]))[0-9_]*\\.))[0-9_]*((e-|E-|e\\+|E\\+|e|E)[0-9][0-9_]*)?[LfF]?i?\\b", + "name": "constant.numeric.float.decimal.d" + } + ] + }, + "hexadecimal-float": { + "patterns": [ + { + "match": "\\b0[xX][0-9a-fA-F_]*(\\.[0-9a-fA-F_]*)?(p-|P-|p\\+|P\\+|p|P)[0-9][0-9_]*[LfF]?i?\\b", + "name": "constant.numeric.float.hexadecimal.d" + } + ] + }, + "string-literal": { + "patterns": [ + { + "include": "#wysiwyg-string" + }, + { + "include": "#alternate-wysiwyg-string" + }, + { + "include": "#hex-string" + }, + { + "include": "#arbitrary-delimited-string" + }, + { + "include": "#delimited-string" + }, + { + "include": "#double-quoted-string" + }, + { + "include": "#token-string" + } + ] + }, + "wysiwyg-string": { + "patterns": [ + { + "begin": "r\\\"", + "end": "\\\"[cwd]?", + "name": "string.wysiwyg-string.d", + "patterns": [ + { + "include": "#wysiwyg-characters" + } + ] + } + ] + }, + "alternate-wysiwyg-string": { + "patterns": [ + { + "begin": "`", + "end": "`[cwd]?", + "name": "string.alternate-wysiwyg-string.d", + "patterns": [ + { + "include": "#wysiwyg-characters" + } + ] + } + ] + }, + "double-quoted-string": { + "patterns": [ + { + "begin": "\"", + "end": "\"[cwd]?", + "name": "string.double-quoted-string.d", + "patterns": [ + { + "include": "#double-quoted-characters" + } + ] + } + ] + }, + "hex-string": { + "patterns": [ + { + "begin": "x\"", + "end": "\"[cwd]?", + "name": "string.hex-string.d", + "patterns": [ + { + "match": "[a-fA-F0-9_s]+", + "name": "constant.character.hex-string.d" + } + ] + } + ] + }, + "arbitrary-delimited-string": { + "begin": "q\"(\\w+)", + "end": "\\1\"", + "name": "string.delimited.d", + "patterns": [ + { + "match": ".", + "name": "string.delimited.d" + } + ] + }, + "delimited-string": { + "begin": "q\"", + "end": "\"", + "name": "string.delimited.d", + "patterns": [ + { + "include": "#delimited-string-bracket" + }, + { + "include": "#delimited-string-parens" + }, + { + "include": "#delimited-string-angle-brackets" + }, + { + "include": "#delimited-string-braces" + } + ] + }, + "token-string": { + "begin": "q\\{", + "end": "\\}[cdw]?", + "beginCaptures": { + "0": { + "name": "string.quoted.token.d" + } + }, + "endCaptures": { + "0": { + "name": "string.quoted.token.d" + } + }, + "patterns": [ + { + "include": "#token-string-content" + } + ] + }, + "delimited-string-bracket": { + "patterns": [ + { + "begin": "\\[", + "end": "\\]", + "name": "constant.characters.delimited.brackets.d", + "patterns": [ + { + "include": "#wysiwyg-characters" + } + ] + } + ] + }, + "delimited-string-parens": { + "patterns": [ + { + "begin": "\\(", + "end": "\\)", + "name": "constant.character.delimited.parens.d", + "patterns": [ + { + "include": "#wysiwyg-characters" + } + ] + } + ] + }, + "delimited-string-angle-brackets": { + "patterns": [ + { + "begin": "<", + "end": ">", + "name": "constant.character.angle-brackets.d", + "patterns": [ + { + "include": "#wysiwyg-characters" + } + ] + } + ] + }, + "delimited-string-braces": { + "patterns": [ + { + "begin": "\\{", + "end": "\\}", + "name": "constant.character.delimited.braces.d", + "patterns": [ + { + "include": "#wysiwyg-characters" + } + ] + } + ] + }, + "wysiwyg-characters": { + "patterns": [ + { + "include": "#character" + }, + { + "include": "#end-of-line" + } + ] + }, + "double-quoted-characters": { + "patterns": [ + { + "include": "#character" + }, + { + "include": "#end-of-line" + }, + { + "include": "#escape-sequence" + } + ] + }, + "escape-sequence": { + "patterns": [ + { + "match": "(\\\\(?:quot|amp|lt|gt|OElig|oelig|Scaron|scaron|Yuml|circ|tilde|ensp|emsp|thinsp|zwnj|zwj|lrm|rlm|ndash|mdash|lsquo|rsquo|sbquo|ldquo|rdquo|bdquo|dagger|Dagger|permil|lsaquo|rsaquo|euro|nbsp|iexcl|cent|pound|curren|yen|brvbar|sect|uml|copy|ordf|laquo|not|shy|reg|macr|deg|plusmn|sup2|sup3|acute|micro|para|middot|cedil|sup1|ordm|raquo|frac14|frac12|frac34|iquest|Agrave|Aacute|Acirc|Atilde|Auml|Aring|Aelig|Ccedil|egrave|eacute|ecirc|iuml|eth|ntilde|ograve|oacute|ocirc|otilde|ouml|divide|oslash|ugrave|uacute|ucirc|uuml|yacute|thorn|yuml|fnof|Alpha|Beta|Gamma|Delta|Epsilon|Zeta|Eta|Theta|Iota|Kappa|Lambda|Mu|Nu|Xi|Omicron|Pi|Rho|Sigma|Tau|Upsilon|Phi|Chi|Psi|Omega|alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|xi|omicron|pi|rho|sigmaf|sigma|tau|upsilon|phi|chi|psi|omega|thetasym|upsih|piv|bull|hellip|prime|Prime|oline|frasl|weierp|image|real|trade|alefsym|larr|uarr|rarr|darr|harr|crarr|lArr|uArr|rArr|dArr|hArr|forall|part|exist|empty|nabla|isin|notin|ni|prod|sum|minux|lowast|radic|prop|infin|ang|and|or|cap|cup|int|there4|sim|cong|asymp|ne|equiv|le|ge|sub|sup|nsub|sube|supe|oplus|otimes|perp|sdot|lceil|rceil|lfloor|rfloor|loz|spades|clubs|hearts|diams|lang|rang))", + "name": "constant.character.escape-sequence.entity.d" + }, + { + "match": "(\\\\x[0-9a-fA-F_]{2}|\\\\u[0-9a-fA-F_]{4}|\\\\U[0-9a-fA-F_]{8}|\\\\[0-7]{1,3})", + "name": "constant.character.escape-sequence.number.d" + }, + { + "match": "(\\\\t|\\\\'|\\\\\"|\\\\\\?|\\\\0|\\\\a|\\\\b|\\\\f|\\\\n|\\\\r|\\\\v|\\\\\\\\)", + "name": "constant.character.escape-sequence.d" + } + ] + }, + "character-literal": { + "patterns": [ + { + "begin": "'", + "end": "'", + "name": "string.character-literal.d", + "patterns": [ + { + "include": "#character" + }, + { + "include": "#escape-sequence" + } + ] + } + ] + }, + "character": { + "patterns": [ + { + "match": "[\\w\\s]+", + "name": "string.character.d" + } + ] + }, + "end-of-line": { + "patterns": [ + { + "match": "\\n+", + "name": "string.character.end-of-line.d" + } + ] + }, + "identifier-list": { + "patterns": [ + { + "match": ",", + "name": "keyword.other.comma.d" + }, + { + "include": "#identifier" + } + ] + }, + "identifier": { + "patterns": [ + { + "match": "\\b((\\.\\s*)?[_\\w][_\\d\\w]*)(\\s*\\.\\s*[_\\w][_\\d\\w]*)*\\b", + "name": "variable.d" + } + ] + }, + "module-identifier": { + "patterns": [ + { + "match": "([_a-zA-Z][_\\d\\w]*)(\\s*\\.\\s*[_a-zA-Z][_\\d\\w]*)*", + "name": "variable.parameter.module.d" + } + ] + }, + "import-identifier": { + "patterns": [ + { + "match": "([_a-zA-Z][_\\d\\w]*)(\\s*\\.\\s*[_a-zA-Z][_\\d\\w]*)*", + "name": "variable.parameter.import.d" + } + ] + }, + "eof": { + "patterns": [ + { + "begin": "__EOF__", + "beginCaptures": { + "0": { + "name": "comment.block.documentation.eof.start.d" + } + }, + "end": "(?!__NEVER_MATCH__)__NEVER_MATCH__", + "name": "text.eof.d" + } + ] + }, + "comment": { + "patterns": [ + { + "include": "#block-comment" + }, + { + "include": "#line-comment" + }, + { + "include": "#nesting-block-comment" + } + ] + }, + "block-comment": { + "patterns": [ + { + "begin": "/((?!\\*/)\\*)+", + "beginCaptures": { + "0": { + "name": "comment.block.begin.d" + } + }, + "end": "\\*+/", + "endCaptures": { + "0": { + "name": "comment.block.end.d" + } + }, + "name": "comment.block.content.d" + } + ] + }, + "line-comment": { + "patterns": [ + { + "match": "//+.*$", + "name": "comment.line.d" + } + ] + }, + "nesting-block-comment": { + "patterns": [ + { + "begin": "/((?!\\+/)\\+)+", + "beginCaptures": { + "0": { + "name": "comment.block.documentation.begin.d" + } + }, + "end": "\\++/", + "endCaptures": { + "0": { + "name": "comment.block.documentation.end.d" + } + }, + "name": "comment.block.documentation.content.d", + "patterns": [ + { + "include": "#nesting-block-comment" + } + ] + } + ] + }, + "token-string-content": { + "patterns": [ + { + "begin": "{", + "end": "}", + "patterns": [ + { + "include": "#token-string-content" + } + ] + }, + { + "include": "#comment" + }, + { + "include": "#tokens" + } + ] + }, + "tokens": { + "patterns": [ + { + "include": "#string-literal" + }, + { + "include": "#character-literal" + }, + { + "include": "#integer-literal" + }, + { + "include": "#float-literal" + }, + { + "include": "#keyword" + }, + { + "match": "~=|~|>>>|>>=|>>|>=|>|=>|==|=|<>|<=|<<|<|%=|%|#|&=|&&|&|\\$|\\|=|\\|\\||\\||\\+=|\\+\\+|\\+|\\^=|\\^\\^=|\\^\\^|\\^|\\*=|\\*|\\}|\\{|\\]|\\[|\\)|\\(|\\.\\.\\.|\\.\\.|\\.|\\?|\\!>=|\\!>|\\!=|\\!<>=|\\!<>|\\!<=|\\!<|\\!|/=|/|@|:|;|,|-=|--|-", + "name": "meta.lexical.token.symbolic.d" + }, + { + "include": "#identifier" + } + ] + }, + "keyword": { + "patterns": [ + { + "match": "\\babstract\\b", + "name": "keyword.token.abstract.d" + }, + { + "match": "\\balias\\b", + "name": "keyword.token.alias.d" + }, + { + "match": "\\balign\\b", + "name": "keyword.token.align.d" + }, + { + "match": "\\basm\\b", + "name": "keyword.token.asm.d" + }, + { + "match": "\\bassert\\b", + "name": "keyword.token.assert.d" + }, + { + "match": "\\bauto\\b", + "name": "keyword.token.auto.d" + }, + { + "match": "\\bbool\\b", + "name": "keyword.token.bool.d" + }, + { + "match": "\\bbreak\\b", + "name": "keyword.token.break.d" + }, + { + "match": "\\bbyte\\b", + "name": "keyword.token.byte.d" + }, + { + "match": "\\bcase\\b", + "name": "keyword.token.case.d" + }, + { + "match": "\\bcast\\b", + "name": "keyword.token.cast.d" + }, + { + "match": "\\bcatch\\b", + "name": "keyword.token.catch.d" + }, + { + "match": "\\bcdouble\\b", + "name": "keyword.token.cdouble.d" + }, + { + "match": "\\bcent\\b", + "name": "keyword.token.cent.d" + }, + { + "match": "\\bcfloat\\b", + "name": "keyword.token.cfloat.d" + }, + { + "match": "\\bchar\\b", + "name": "keyword.token.char.d" + }, + { + "match": "\\bclass\\b", + "name": "keyword.token.class.d" + }, + { + "match": "\\bconst\\b", + "name": "keyword.token.const.d" + }, + { + "match": "\\bcontinue\\b", + "name": "keyword.token.continue.d" + }, + { + "match": "\\bcreal\\b", + "name": "keyword.token.creal.d" + }, + { + "match": "\\bdchar\\b", + "name": "keyword.token.dchar.d" + }, + { + "match": "\\bdebug\\b", + "name": "keyword.token.debug.d" + }, + { + "match": "\\bdefault\\b", + "name": "keyword.token.default.d" + }, + { + "match": "\\bdelegate\\b", + "name": "keyword.token.delegate.d" + }, + { + "match": "\\bdelete\\b", + "name": "keyword.token.delete.d" + }, + { + "match": "\\bdeprecated\\b", + "name": "keyword.token.deprecated.d" + }, + { + "match": "\\bdo\\b", + "name": "keyword.token.do.d" + }, + { + "match": "\\bdouble\\b", + "name": "keyword.token.double.d" + }, + { + "match": "\\belse\\b", + "name": "keyword.token.else.d" + }, + { + "match": "\\benum\\b", + "name": "keyword.token.enum.d" + }, + { + "match": "\\bexport\\b", + "name": "keyword.token.export.d" + }, + { + "match": "\\bextern\\b", + "name": "keyword.token.extern.d" + }, + { + "match": "\\bfalse\\b", + "name": "constant.language.boolean.false.d" + }, + { + "match": "\\bfinal\\b", + "name": "keyword.token.final.d" + }, + { + "match": "\\bfinally\\b", + "name": "keyword.token.finally.d" + }, + { + "match": "\\bfloat\\b", + "name": "keyword.token.float.d" + }, + { + "match": "\\bfor\\b", + "name": "keyword.token.for.d" + }, + { + "match": "\\bforeach\\b", + "name": "keyword.token.foreach.d" + }, + { + "match": "\\bforeach_reverse\\b", + "name": "keyword.token.foreach_reverse.d" + }, + { + "match": "\\bfunction\\b", + "name": "keyword.token.function.d" + }, + { + "match": "\\bgoto\\b", + "name": "keyword.token.goto.d" + }, + { + "match": "\\bidouble\\b", + "name": "keyword.token.idouble.d" + }, + { + "match": "\\bif\\b", + "name": "keyword.token.if.d" + }, + { + "match": "\\bifloat\\b", + "name": "keyword.token.ifloat.d" + }, + { + "match": "\\bimmutable\\b", + "name": "keyword.token.immutable.d" + }, + { + "match": "\\bimport\\b", + "name": "keyword.token.import.d" + }, + { + "match": "\\bin\\b", + "name": "keyword.token.in.d" + }, + { + "match": "\\binout\\b", + "name": "keyword.token.inout.d" + }, + { + "match": "\\bint\\b", + "name": "keyword.token.int.d" + }, + { + "match": "\\binterface\\b", + "name": "keyword.token.interface.d" + }, + { + "match": "\\binvariant\\b", + "name": "keyword.token.invariant.d" + }, + { + "match": "\\bireal\\b", + "name": "keyword.token.ireal.d" + }, + { + "match": "\\bis\\b", + "name": "keyword.token.is.d" + }, + { + "match": "\\blazy\\b", + "name": "keyword.token.lazy.d" + }, + { + "match": "\\blong\\b", + "name": "keyword.token.long.d" + }, + { + "match": "\\bmacro\\b", + "name": "keyword.token.macro.d" + }, + { + "match": "\\bmixin\\b", + "name": "keyword.token.mixin.d" + }, + { + "match": "\\bmodule\\b", + "name": "keyword.token.module.d" + }, + { + "match": "\\bnew\\b", + "name": "keyword.token.new.d" + }, + { + "match": "\\bnothrow\\b", + "name": "keyword.token.nothrow.d" + }, + { + "match": "\\bnull\\b", + "name": "constant.language.null.d" + }, + { + "match": "\\bout\\b", + "name": "keyword.token.out.d" + }, + { + "match": "\\boverride\\b", + "name": "keyword.token.override.d" + }, + { + "match": "\\bpackage\\b", + "name": "keyword.token.package.d" + }, + { + "match": "\\bpragma\\b", + "name": "keyword.token.pragma.d" + }, + { + "match": "\\bprivate\\b", + "name": "keyword.token.private.d" + }, + { + "match": "\\bprotected\\b", + "name": "keyword.token.protected.d" + }, + { + "match": "\\bpublic\\b", + "name": "keyword.token.public.d" + }, + { + "match": "\\bpure\\b", + "name": "keyword.token.pure.d" + }, + { + "match": "\\breal\\b", + "name": "keyword.token.real.d" + }, + { + "match": "\\bref\\b", + "name": "keyword.token.ref.d" + }, + { + "match": "\\breturn\\b", + "name": "keyword.token.return.d" + }, + { + "match": "\\bscope\\b", + "name": "keyword.token.scope.d" + }, + { + "match": "\\bshared\\b", + "name": "keyword.token.shared.d" + }, + { + "match": "\\bshort\\b", + "name": "keyword.token.short.d" + }, + { + "match": "\\bstatic\\b", + "name": "keyword.token.static.d" + }, + { + "match": "\\bstruct\\b", + "name": "keyword.token.struct.d" + }, + { + "match": "\\bsuper\\b", + "name": "keyword.token.super.d" + }, + { + "match": "\\bswitch\\b", + "name": "keyword.token.switch.d" + }, + { + "match": "\\bsynchronized\\b", + "name": "keyword.token.synchronized.d" + }, + { + "match": "\\btemplate\\b", + "name": "keyword.token.template.d" + }, + { + "match": "\\bthis\\b", + "name": "keyword.token.this.d" + }, + { + "match": "\\bthrow\\b", + "name": "keyword.token.throw.d" + }, + { + "match": "\\btrue\\b", + "name": "constant.language.boolean.true.d" + }, + { + "match": "\\btry\\b", + "name": "keyword.token.try.d" + }, + { + "match": "\\btypedef\\b", + "name": "keyword.token.typedef.d" + }, + { + "match": "\\btypeid\\b", + "name": "keyword.token.typeid.d" + }, + { + "match": "\\btypeof\\b", + "name": "keyword.token.typeof.d" + }, + { + "match": "\\bubyte\\b", + "name": "keyword.token.ubyte.d" + }, + { + "match": "\\bucent\\b", + "name": "keyword.token.ucent.d" + }, + { + "match": "\\buint\\b", + "name": "keyword.token.uint.d" + }, + { + "match": "\\bulong\\b", + "name": "keyword.token.ulong.d" + }, + { + "match": "\\bunion\\b", + "name": "keyword.token.union.d" + }, + { + "match": "\\bunittest\\b", + "name": "keyword.token.unittest.d" + }, + { + "match": "\\bushort\\b", + "name": "keyword.token.ushort.d" + }, + { + "match": "\\bversion\\b", + "name": "keyword.token.version.d" + }, + { + "match": "\\bvoid\\b", + "name": "keyword.token.void.d" + }, + { + "match": "\\bvolatile\\b", + "name": "keyword.token.volatile.d" + }, + { + "match": "\\bwchar\\b", + "name": "keyword.token.wchar.d" + }, + { + "match": "\\bwhile\\b", + "name": "keyword.token.while.d" + }, + { + "match": "\\bwith\\b", + "name": "keyword.token.with.d" + }, + { + "match": "\\b__FILE__\\b", + "name": "keyword.token.__FILE__.d" + }, + { + "match": "\\b__MODULE__\\b", + "name": "keyword.token.__MODULE__.d" + }, + { + "match": "\\b__LINE__\\b", + "name": "keyword.token.__LINE__.d" + }, + { + "match": "\\b__FUNCTION__\\b", + "name": "keyword.token.__FUNCTION__.d" + }, + { + "match": "\\b__PRETTY_FUNCTION__\\b", + "name": "keyword.token.__PRETTY_FUNCTION__.d" + }, + { + "match": "\\b__gshared\\b", + "name": "keyword.token.__gshared.d" + }, + { + "match": "\\b__traits\\b", + "name": "keyword.token.__traits.d" + }, + { + "match": "\\b__vector\\b", + "name": "keyword.token.__vector.d" + }, + { + "match": "\\b__parameters\\b", + "name": "keyword.token.__parameters.d" + } + ] + }, + "special-token-sequence": { + "patterns": [ + { + "match": "#\\s*line.*", + "name": "gfm.markup.italic.special-token-sequence.d" + } + ] + }, + "special-tokens": { + "patterns": [ + { + "match": "\\b(__DATE__|__TIME__|__TIMESTAMP__|__VENDOR__|__VERSION__)\\b", + "name": "gfm.markup.raw.special-tokens.d" + } + ] + } + } +} diff --git a/docs/shiki/languages/dart.tmLanguage.json b/docs/shiki/languages/dart.tmLanguage.json new file mode 100644 index 00000000..719b0a2c --- /dev/null +++ b/docs/shiki/languages/dart.tmLanguage.json @@ -0,0 +1,528 @@ +{ + "name": "dart", + "version": "1.2.3", + "fileTypes": ["dart"], + "scopeName": "source.dart", + "foldingStartMarker": "\\{\\s*$", + "foldingStopMarker": "^\\s*\\}", + "patterns": [ + { + "name": "meta.preprocessor.script.dart", + "match": "^(#!.*)$" + }, + { + "name": "meta.declaration.dart", + "begin": "^\\w*\\b(library|import|part of|part|export)\\b", + "beginCaptures": { + "0": { + "name": "keyword.other.import.dart" + } + }, + "end": ";", + "endCaptures": { + "0": { + "name": "punctuation.terminator.dart" + } + }, + "patterns": [ + { + "include": "#strings" + }, + { + "include": "#comments" + }, + { + "name": "keyword.other.import.dart", + "match": "\\b(as|show|hide)\\b" + }, + { + "name": "keyword.control.dart", + "match": "\\b(if)\\b" + } + ] + }, + { + "include": "#comments" + }, + { + "include": "#punctuation" + }, + { + "include": "#annotations" + }, + { + "include": "#keywords" + }, + { + "include": "#constants-and-special-vars" + }, + { + "include": "#operators" + }, + { + "include": "#strings" + } + ], + "repository": { + "dartdoc": { + "patterns": [ + { + "match": "(\\[.*?\\])", + "captures": { + "0": { + "name": "variable.name.source.dart" + } + } + }, + { + "match": "^ {4,}(?![ \\*]).*", + "captures": { + "0": { + "name": "variable.name.source.dart" + } + } + }, + { + "contentName": "variable.other.source.dart", + "begin": "```.*?$", + "end": "```" + }, + { + "match": "(`.*?`)", + "captures": { + "0": { + "name": "variable.other.source.dart" + } + } + }, + { + "match": "(`.*?`)", + "captures": { + "0": { + "name": "variable.other.source.dart" + } + } + }, + { + "match": "(\\* (( ).*))$", + "captures": { + "2": { + "name": "variable.other.source.dart" + } + } + } + ] + }, + "comments": { + "patterns": [ + { + "name": "comment.block.empty.dart", + "match": "/\\*\\*/", + "captures": { + "0": { + "name": "punctuation.definition.comment.dart" + } + } + }, + { + "include": "#comments-doc-oldschool" + }, + { + "include": "#comments-doc" + }, + { + "include": "#comments-inline" + } + ] + }, + "comments-doc-oldschool": { + "patterns": [ + { + "name": "comment.block.documentation.dart", + "begin": "/\\*\\*", + "end": "\\*/", + "patterns": [ + { + "include": "#comments-doc-oldschool" + }, + { + "include": "#comments-block" + }, + { + "include": "#dartdoc" + } + ] + } + ] + }, + "comments-doc": { + "patterns": [ + { + "name": "comment.block.documentation.dart", + "begin": "///", + "while": "^\\s*///", + "patterns": [ + { + "include": "#dartdoc" + } + ] + } + ] + }, + "comments-inline": { + "patterns": [ + { + "include": "#comments-block" + }, + { + "match": "((//).*)$", + "captures": { + "1": { + "name": "comment.line.double-slash.dart" + } + } + } + ] + }, + "comments-block": { + "patterns": [ + { + "name": "comment.block.dart", + "begin": "/\\*", + "end": "\\*/", + "patterns": [ + { + "include": "#comments-block" + } + ] + } + ] + }, + "annotations": { + "patterns": [ + { + "name": "storage.type.annotation.dart", + "match": "@[a-zA-Z]+" + } + ] + }, + "constants-and-special-vars": { + "patterns": [ + { + "name": "constant.language.dart", + "match": "(?<!\\$)\\b(true|false|null)\\b(?!\\$)" + }, + { + "name": "variable.language.dart", + "match": "(?<!\\$)\\b(this|super)\\b(?!\\$)" + }, + { + "name": "constant.numeric.dart", + "match": "(?<!\\$)\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)\\b(?!\\$)" + }, + { + "include": "#class-identifier" + }, + { + "include": "#function-identifier" + } + ] + }, + "class-identifier": { + "patterns": [ + { + "match": "(?<!\\$)\\b(bool|num|int|double|dynamic)\\b(?!\\$)", + "name": "support.class.dart" + }, + { + "match": "(?<!\\$)\\bvoid\\b(?!\\$)", + "name": "storage.type.primitive.dart" + }, + { + "begin": "(?<![a-zA-Z0-9_$])([_$]*[A-Z][a-zA-Z0-9_$]*)\\b", + "end": "(?!<)", + "beginCaptures": { + "1": { + "name": "support.class.dart" + } + }, + "patterns": [ + { + "include": "#type-args" + } + ] + } + ] + }, + "function-identifier": { + "patterns": [ + { + "match": "([_$]*[a-z][a-zA-Z0-9_$]*)(<(?:[a-zA-Z0-9_$<>?]|,\\s*|\\s+extends\\s+)+>)?[!?]?\\(", + "captures": { + "1": { + "name": "entity.name.function.dart" + }, + "2": { + "patterns": [ + { + "include": "#type-args" + } + ] + } + } + } + ] + }, + "type-args": { + "begin": "(<)", + "end": "(>)", + "beginCaptures": { + "1": { + "name": "other.source.dart" + } + }, + "endCaptures": { + "1": { + "name": "other.source.dart" + } + }, + "patterns": [ + { + "include": "#class-identifier" + }, + { + "match": "," + }, + { + "name": "keyword.declaration.dart", + "match": "extends" + }, + { + "include": "#comments" + } + ] + }, + "keywords": { + "patterns": [ + { + "name": "keyword.cast.dart", + "match": "(?<!\\$)\\bas\\b(?!\\$)" + }, + { + "name": "keyword.control.catch-exception.dart", + "match": "(?<!\\$)\\b(try|on|catch|finally|throw|rethrow)\\b(?!\\$)" + }, + { + "name": "keyword.control.dart", + "match": "(?<!\\$)\\b(break|case|continue|default|do|else|for|if|in|return|switch|while|when)\\b(?!\\$)" + }, + { + "name": "keyword.control.dart", + "match": "(?<!\\$)\\b(sync(\\*)?|async(\\*)?|await|yield(\\*)?)\\b(?!\\$)" + }, + { + "name": "keyword.control.dart", + "match": "(?<!\\$)\\bassert\\b(?!\\$)" + }, + { + "name": "keyword.control.new.dart", + "match": "(?<!\\$)\\b(new)\\b(?!\\$)" + }, + { + "name": "keyword.declaration.dart", + "match": "(?<!\\$)\\b(abstract|sealed|base|interface|class|enum|extends|extension type|extension|external|factory|implements|get(?!\\()|mixin|native|operator|set(?!\\()|typedef|with|covariant)\\b(?!\\$)" + }, + { + "name": "storage.modifier.dart", + "match": "(?<!\\$)\\b(static|final|const|required|late)\\b(?!\\$)" + }, + { + "name": "storage.type.primitive.dart", + "match": "(?<!\\$)\\b(?:void|var)\\b(?!\\$)" + } + ] + }, + "operators": { + "patterns": [ + { + "name": "keyword.operator.dart", + "match": "(?<!\\$)\\b(is\\!?)\\b(?!\\$)" + }, + { + "name": "keyword.operator.ternary.dart", + "match": "\\?|:" + }, + { + "name": "keyword.operator.bitwise.dart", + "match": "(<<|>>>?|~|\\^|\\||&)" + }, + { + "name": "keyword.operator.assignment.bitwise.dart", + "match": "((&|\\^|\\||<<|>>>?)=)" + }, + { + "name": "keyword.operator.closure.dart", + "match": "(=>)" + }, + { + "name": "keyword.operator.comparison.dart", + "match": "(==|!=|<=?|>=?)" + }, + { + "name": "keyword.operator.assignment.arithmetic.dart", + "match": "(([+*/%-]|\\~)=)" + }, + { + "name": "keyword.operator.assignment.dart", + "match": "(=)" + }, + { + "name": "keyword.operator.increment-decrement.dart", + "match": "(\\-\\-|\\+\\+)" + }, + { + "name": "keyword.operator.arithmetic.dart", + "match": "(\\-|\\+|\\*|\\/|\\~\\/|%)" + }, + { + "name": "keyword.operator.logical.dart", + "match": "(!|&&|\\|\\|)" + } + ] + }, + "string-interp": { + "patterns": [ + { + "match": "\\$([a-zA-Z0-9_]+)", + "captures": { + "1": { + "name": "variable.parameter.dart" + } + } + }, + { + "name": "string.interpolated.expression.dart", + "begin": "\\$\\{", + "end": "\\}", + "patterns": [ + { + "include": "#constants-and-special-vars", + "name": "variable.parameter.dart" + }, + { + "include": "#strings" + }, + { + "name": "variable.parameter.dart", + "match": "[a-zA-Z0-9_]+" + } + ] + }, + { + "name": "constant.character.escape.dart", + "match": "\\\\." + } + ] + }, + "strings": { + "patterns": [ + { + "name": "string.interpolated.triple.double.dart", + "begin": "(?<!r)\"\"\"", + "end": "\"\"\"(?!\")", + "patterns": [ + { + "include": "#string-interp" + } + ] + }, + { + "name": "string.interpolated.triple.single.dart", + "begin": "(?<!r)'''", + "end": "'''(?!')", + "patterns": [ + { + "include": "#string-interp" + } + ] + }, + { + "name": "string.quoted.triple.double.dart", + "begin": "r\"\"\"", + "end": "\"\"\"(?!\")" + }, + { + "name": "string.quoted.triple.single.dart", + "begin": "r'''", + "end": "'''(?!')" + }, + { + "name": "string.interpolated.double.dart", + "begin": "(?<!\\|r)\"", + "end": "\"", + "patterns": [ + { + "name": "invalid.string.newline", + "match": "\\n" + }, + { + "include": "#string-interp" + } + ] + }, + { + "name": "string.quoted.double.dart", + "begin": "r\"", + "end": "\"", + "patterns": [ + { + "name": "invalid.string.newline", + "match": "\\n" + } + ] + }, + { + "name": "string.interpolated.single.dart", + "begin": "(?<!\\|r)'", + "end": "'", + "patterns": [ + { + "name": "invalid.string.newline", + "match": "\\n" + }, + { + "include": "#string-interp" + } + ] + }, + { + "name": "string.quoted.single.dart", + "begin": "r'", + "end": "'", + "patterns": [ + { + "name": "invalid.string.newline", + "match": "\\n" + } + ] + } + ] + }, + "punctuation": { + "patterns": [ + { + "name": "punctuation.comma.dart", + "match": "," + }, + { + "name": "punctuation.terminator.dart", + "match": ";" + }, + { + "name": "punctuation.dot.dart", + "match": "\\." + } + ] + } + } +} diff --git a/docs/shiki/languages/dax.tmLanguage.json b/docs/shiki/languages/dax.tmLanguage.json new file mode 100644 index 00000000..cc08ff11 --- /dev/null +++ b/docs/shiki/languages/dax.tmLanguage.json @@ -0,0 +1,185 @@ +{ + "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", + "name": "dax", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#keywords" + }, + { + "include": "#labels" + }, + { + "include": "#parameters" + }, + { + "include": "#strings" + }, + { + "include": "#numbers" + } + ], + "repository": { + "parameters": { + "patterns": [ + { + "name": "meta.function.definition.parameters.dax", + "comment": "build out variable assignment", + "begin": "\\b(?<!\\.)(VAR)\\b(?<!\\.)\\b", + "end": "=", + "beginCaptures": { + "1": { + "name": "keyword.control.dax" + }, + "2": { + "name": "variable.other.readwrite.dax" + } + }, + "endCaptures": { + "0": { + "name": "keyword.operator.assignment.dax" + } + }, + "patterns": [ + { + "name": "keyword.control.dax", + "match": "(?x)\n = \n" + } + ] + }, + { + "name": "variable.other.constant.dax", + "match": "[_$[:alpha:]][_$[:alnum:]]*" + } + ] + }, + "labels": { + "patterns": [ + { + "match": "(^(.*?)\\s*(:=|!=))", + "captures": { + "1": { + "name": "punctuation.separator.label.dax" + }, + "2": { + "name": "entity.name.label.dax" + } + } + } + ] + }, + "numbers": { + "name": "constant.numeric.dax", + "match": "(?x) # turn on extended mode\n -? # an optional minus\n (?:\n 0 # a zero\n | # ...or...\n [1-9] # a 1-9 character\n \\d* # followed by zero or more digits\n )\n (?:\n (?:\n \\. # a period\n \\d+ # followed by one or more digits\n )?\n (?:\n [eE] # an e character\n [+-]? # followed by an option +/-\n \\d+ # followed by one or more digits\n )? # make exponent optional\n )? # make decimal portion optional" + }, + "comments": { + "patterns": [ + { + "name": "comment.line.dax", + "begin": "//", + "end": "\n", + "captures": { + "0": { + "name": "punctuation.definition.comment.dax" + } + } + }, + { + "name": "comment.line.dax", + "begin": "--", + "end": "\n", + "captures": { + "0": { + "name": "punctuation.definition.comment.dax" + } + } + }, + { + "begin": "/\\*", + "captures": { + "0": { + "name": "punctuation.definition.comment.dax" + } + }, + "end": "\\*/", + "name": "comment.block.dax" + } + ] + }, + "keywords": { + "patterns": [ + { + "match": "\\b(YIELDMAT|YIELDDISC|YIELD|YEARFRAC|YEAR|XNPV|XIRR|WEEKNUM|WEEKDAY|VDB|VARX.S|VARX.P|VAR.S|VAR.P|VALUES|VALUE|UTCTODAY|UTCNOW|USERPRINCIPALNAME|USEROBJECTID|USERNAME|USERELATIONSHIP|USERCULTURE|UPPER|UNION|UNICODE|UNICHAR|TRUNC|TRUE|TRIM|TREATAS|TOTALYTD|TOTALQTD|TOTALMTD|TOPNSKIP|TOPNPERLEVEL|TOPN|TODAY|TIMEVALUE|TIME|TBILLYIELD|TBILLPRICE|TBILLEQ|TANH|TAN|T.INV.2T|T.INV|T.DIST.RT|T.DIST.2T|T.DIST|SYD|SWITCH|SUMX|SUMMARIZECOLUMNS|SUMMARIZE|SUM|SUBSTITUTEWITHINDEX|SUBSTITUTE|STDEVX.S|STDEVX.P|STDEV.S|STDEV.P|STARTOFYEAR|STARTOFQUARTER|STARTOFMONTH|SQRTPI|SQRT|SLN|SINH|SIN|SIGN|SELECTEDVALUE|SELECTEDMEASURENAME|SELECTEDMEASUREFORMATSTRING|SELECTEDMEASURE|SELECTCOLUMNS|SECOND|SEARCH|SAMPLE|SAMEPERIODLASTYEAR|RRI|ROW|ROUNDUP|ROUNDDOWN|ROUND|ROLLUPISSUBTOTAL|ROLLUPGROUP|ROLLUPADDISSUBTOTAL|ROLLUP|RIGHT|REPT|REPLACE|REMOVEFILTERS|RELATEDTABLE|RELATED|RECEIVED|RATE|RANKX|RANK.EQ|RANDBETWEEN|RAND|RADIANS|QUOTIENT|QUARTER|PV|PRODUCTX|PRODUCT|PRICEMAT|PRICEDISC|PRICE|PREVIOUSYEAR|PREVIOUSQUARTER|PREVIOUSMONTH|PREVIOUSDAY|PPMT|POWER|POISSON.DIST|PMT|PI|PERMUT|PERCENTILEX.INC|PERCENTILEX.EXC|PERCENTILE.INC|PERCENTILE.EXC|PDURATION|PATHLENGTH|PATHITEMREVERSE|PATHITEM|PATHCONTAINS|PATH|PARALLELPERIOD|OR|OPENINGBALANCEYEAR|OPENINGBALANCEQUARTER|OPENINGBALANCEMONTH|ODDLYIELD|ODDLPRICE|ODDFYIELD|ODDFPRICE|ODD|NPER|NOW|NOT|NORM.S.INV|NORM.S.DIST|NORM.INV|NORM.DIST|NONVISUAL|NOMINAL|NEXTYEAR|NEXTQUARTER|NEXTMONTH|NEXTDAY|NATURALLEFTOUTERJOIN|NATURALINNERJOIN|MROUND|MONTH|MOD|MINX|MINUTE|MINA|MIN|MID|MEDIANX|MEDIAN|MDURATION|MAXX|MAXA|MAX|LOWER|LOOKUPVALUE|LOG10|LOG|LN|LEN|LEFT|LCM|LASTNONBLANKVALUE|LASTNONBLANK|LASTDATE|KEYWORDMATCH|KEEPFILTERS|ISTEXT|ISSUBTOTAL|ISSELECTEDMEASURE|ISPMT|ISONORAFTER|ISODD|ISO.CEILING|ISNUMBER|ISNONTEXT|ISLOGICAL|ISINSCOPE|ISFILTERED|ISEVEN|ISERROR|ISEMPTY|ISCROSSFILTERED|ISBLANK|ISAFTER|IPMT|INTRATE|INTERSECT|INT|IGNORE|IFERROR|IF.EAGER|IF|HOUR|HASONEVALUE|HASONEFILTER|HASH|GROUPBY|GEOMEANX|GEOMEAN|GENERATESERIES|GENERATEALL|GENERATE|GCD|FV|FORMAT|FLOOR|FIXED|FIRSTNONBLANKVALUE|FIRSTNONBLANK|FIRSTDATE|FIND|FILTERS|FILTER|FALSE|FACT|EXPON.DIST|EXP|EXCEPT|EXACT|EVEN|ERROR|EOMONTH|ENDOFYEAR|ENDOFQUARTER|ENDOFMONTH|EFFECT|EDATE|EARLIEST|EARLIER|DURATION|DOLLARFR|DOLLARDE|DIVIDE|DISTINCTCOUNTNOBLANK|DISTINCTCOUNT|DISTINCT|DISC|DETAILROWS|DEGREES|DDB|DB|DAY|DATEVALUE|DATESYTD|DATESQTD|DATESMTD|DATESINPERIOD|DATESBETWEEN|DATEDIFF|DATEADD|DATE|DATATABLE|CUSTOMDATA|CURRENTGROUP|CURRENCY|CUMPRINC|CUMIPMT|CROSSJOIN|CROSSFILTER|COUPPCD|COUPNUM|COUPNCD|COUPDAYSNC|COUPDAYS|COUPDAYBS|COUNTX|COUNTROWS|COUNTBLANK|COUNTAX|COUNTA|COUNT|COTH|COT|COSH|COS|CONVERT|CONTAINSSTRINGEXACT|CONTAINSSTRING|CONTAINSROW|CONTAINS|CONFIDENCE.T|CONFIDENCE.NORM|CONCATENATEX|CONCATENATE|COMBINEVALUES|COMBINA|COMBIN|COLUMNSTATISTICS|COALESCE|CLOSINGBALANCEYEAR|CLOSINGBALANCEQUARTER|CLOSINGBALANCEMONTH|CHISQ.INV.RT|CHISQ.INV|CHISQ.DIST.RT|CHISQ.DIST|CEILING|CALENDARAUTO|CALENDAR|CALCULATETABLE|CALCULATE|BLANK|BETA.INV|BETA.DIST|AVERAGEX|AVERAGEA|AVERAGE|ATANH|ATAN|ASINH|ASIN|APPROXIMATEDISTINCTCOUNT|AND|AMORLINC|AMORDEGRC|ALLSELECTED|ALLNOBLANKROW|ALLEXCEPT|ALLCROSSFILTERED|ALL|ADDMISSINGITEMS|ADDCOLUMNS|ACOTH|ACOT|ACOSH|ACOS|ACCRINTM|ACCRINT|ABS)\\b", + "name": "variable.language.dax" + }, + { + "name": "keyword.control.dax", + "match": "\\b(DEFINE|EVALUATE|ORDER BY|RETURN|VAR)\\b" + }, + { + "name": "keyword.array.constructor.dax", + "match": "(?x)\n { | }" + }, + { + "name": "keyword.operator.comparison.dax", + "match": "(?x)\n > | < | >= | <= | =(?!==)\n" + }, + { + "name": "keyword.operator.logical.dax", + "match": "(?x)\n && | IN | NOT | \\|\\|" + }, + { + "name": "keyword.arithmetic.operator.dax", + "match": "(?x)\n \\+ | \\- | \\* | \\/ \n" + }, + { + "begin": "\\[", + "end": "\\]", + "name": "support.function.dax" + }, + { + "begin": "\"", + "end": "\"", + "name": "string.quoted.double.dax" + }, + { + "begin": "\\'", + "end": "\\'", + "name": "support.class.dax" + } + ] + }, + "strings": { + "name": "string.quoted.double.dax", + "begin": "\"", + "end": "\"", + "patterns": [ + { + "name": "constant.character.escape.dax", + "match": "\\\\." + } + ] + }, + "metas": { + "patterns": [ + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "meta.brace.round.dax" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "meta.brace.round.dax" + } + } + } + ] + } + }, + "scopeName": "source.dax" +} diff --git a/docs/shiki/languages/diff.tmLanguage.json b/docs/shiki/languages/diff.tmLanguage.json new file mode 100644 index 00000000..a7bddb7c --- /dev/null +++ b/docs/shiki/languages/diff.tmLanguage.json @@ -0,0 +1,160 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/textmate/diff.tmbundle/blob/master/Syntaxes/Diff.plist", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/textmate/diff.tmbundle/commit/0593bb775eab1824af97ef2172fd38822abd97d7", + "name": "diff", + "scopeName": "source.diff", + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.separator.diff" + } + }, + "match": "^((\\*{15})|(={67})|(-{3}))$\\n?", + "name": "meta.separator.diff" + }, + { + "match": "^\\d+(,\\d+)*(a|d|c)\\d+(,\\d+)*$\\n?", + "name": "meta.diff.range.normal" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.range.diff" + }, + "2": { + "name": "meta.toc-list.line-number.diff" + }, + "3": { + "name": "punctuation.definition.range.diff" + } + }, + "match": "^(@@)\\s*(.+?)\\s*(@@)($\\n?)?", + "name": "meta.diff.range.unified" + }, + { + "captures": { + "3": { + "name": "punctuation.definition.range.diff" + }, + "4": { + "name": "punctuation.definition.range.diff" + }, + "6": { + "name": "punctuation.definition.range.diff" + }, + "7": { + "name": "punctuation.definition.range.diff" + } + }, + "match": "^(((\\-{3}) .+ (\\-{4}))|((\\*{3}) .+ (\\*{4})))$\\n?", + "name": "meta.diff.range.context" + }, + { + "match": "^diff --git a/.*$\\n?", + "name": "meta.diff.header.git" + }, + { + "match": "^diff (-|\\S+\\s+\\S+).*$\\n?", + "name": "meta.diff.header.command" + }, + { + "captures": { + "4": { + "name": "punctuation.definition.from-file.diff" + }, + "6": { + "name": "punctuation.definition.from-file.diff" + }, + "7": { + "name": "punctuation.definition.from-file.diff" + } + }, + "match": "(^(((-{3}) .+)|((\\*{3}) .+))$\\n?|^(={4}) .+(?= - ))", + "name": "meta.diff.header.from-file" + }, + { + "captures": { + "2": { + "name": "punctuation.definition.to-file.diff" + }, + "3": { + "name": "punctuation.definition.to-file.diff" + }, + "4": { + "name": "punctuation.definition.to-file.diff" + } + }, + "match": "(^(\\+{3}) .+$\\n?| (-) .* (={4})$\\n?)", + "name": "meta.diff.header.to-file" + }, + { + "captures": { + "3": { + "name": "punctuation.definition.inserted.diff" + }, + "6": { + "name": "punctuation.definition.inserted.diff" + } + }, + "match": "^(((>)( .*)?)|((\\+).*))$\\n?", + "name": "markup.inserted.diff" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.changed.diff" + } + }, + "match": "^(!).*$\\n?", + "name": "markup.changed.diff" + }, + { + "captures": { + "3": { + "name": "punctuation.definition.deleted.diff" + }, + "6": { + "name": "punctuation.definition.deleted.diff" + } + }, + "match": "^(((<)( .*)?)|((-).*))$\\n?", + "name": "markup.deleted.diff" + }, + { + "begin": "^(#)", + "captures": { + "1": { + "name": "punctuation.definition.comment.diff" + } + }, + "comment": "Git produces unified diffs with embedded comments\"", + "end": "\\n", + "name": "comment.line.number-sign.diff" + }, + { + "match": "^index [0-9a-f]{7,40}\\.\\.[0-9a-f]{7,40}.*$\\n?", + "name": "meta.diff.index.git" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.key-value.diff" + }, + "2": { + "name": "meta.toc-list.file-name.diff" + } + }, + "match": "^Index(:) (.+)$\\n?", + "name": "meta.diff.index" + }, + { + "match": "^Only in .*: .*$\\n?", + "name": "meta.diff.only-in" + } + ] +} diff --git a/docs/shiki/languages/docker.tmLanguage.json b/docs/shiki/languages/docker.tmLanguage.json new file mode 100644 index 00000000..9599f0f9 --- /dev/null +++ b/docs/shiki/languages/docker.tmLanguage.json @@ -0,0 +1,102 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/moby/moby/blob/master/contrib/syntax/textmate/Docker.tmbundle/Syntaxes/Dockerfile.tmLanguage", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/moby/moby/commit/abd39744c6f3ed854500e423f5fabf952165161f", + "name": "docker", + "scopeName": "source.dockerfile", + "patterns": [ + { + "captures": { + "1": { + "name": "keyword.other.special-method.dockerfile" + }, + "2": { + "name": "keyword.other.special-method.dockerfile" + } + }, + "match": "^\\s*\\b(?i:(FROM))\\b.*?\\b(?i:(AS))\\b" + }, + { + "captures": { + "1": { + "name": "keyword.control.dockerfile" + }, + "2": { + "name": "keyword.other.special-method.dockerfile" + } + }, + "match": "^\\s*(?i:(ONBUILD)\\s+)?(?i:(ADD|ARG|CMD|COPY|ENTRYPOINT|ENV|EXPOSE|FROM|HEALTHCHECK|LABEL|MAINTAINER|RUN|SHELL|STOPSIGNAL|USER|VOLUME|WORKDIR))\\s" + }, + { + "captures": { + "1": { + "name": "keyword.operator.dockerfile" + }, + "2": { + "name": "keyword.other.special-method.dockerfile" + } + }, + "match": "^\\s*(?i:(ONBUILD)\\s+)?(?i:(CMD|ENTRYPOINT))\\s" + }, + { + "begin": "\"", + "beginCaptures": { + "1": { + "name": "punctuation.definition.string.begin.dockerfile" + } + }, + "end": "\"", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.dockerfile" + } + }, + "name": "string.quoted.double.dockerfile", + "patterns": [ + { + "match": "\\\\.", + "name": "constant.character.escaped.dockerfile" + } + ] + }, + { + "begin": "'", + "beginCaptures": { + "1": { + "name": "punctuation.definition.string.begin.dockerfile" + } + }, + "end": "'", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.dockerfile" + } + }, + "name": "string.quoted.single.dockerfile", + "patterns": [ + { + "match": "\\\\.", + "name": "constant.character.escaped.dockerfile" + } + ] + }, + { + "captures": { + "1": { + "name": "punctuation.whitespace.comment.leading.dockerfile" + }, + "2": { + "name": "comment.line.number-sign.dockerfile" + }, + "3": { + "name": "punctuation.definition.comment.dockerfile" + } + }, + "comment": "comment.line", + "match": "^(\\s*)((#).*$\\n?)" + } + ] +} diff --git a/docs/shiki/languages/dream-maker.tmLanguage.json b/docs/shiki/languages/dream-maker.tmLanguage.json new file mode 100644 index 00000000..ccb9db68 --- /dev/null +++ b/docs/shiki/languages/dream-maker.tmLanguage.json @@ -0,0 +1,636 @@ +{ + "fileTypes": ["dm", "dme"], + "foldingStartMarker": "(?x)\n/\\*\\*(?!\\*)\n|^(?![^{]*?//|[^{]*?/\\*(?!.*?\\*/.*?\\{)).*?\\{\\s*($|//|/\\*(?!.*?\\*/.*\\S))", + "foldingStopMarker": "(?<!\\*)\\*\\*/|^\\s*\\}", + "name": "dream-maker", + "patterns": [ + { + "include": "#preprocessor-rule-enabled" + }, + { + "include": "#preprocessor-rule-disabled" + }, + { + "include": "#preprocessor-rule-other" + }, + { + "include": "#comments" + }, + { + "match": "(?x)\n(var)[\\/ ]\n(?:(static|global|tmp|const)\\/)?\n(?:(datum|atom(?:\\/movable)?|obj|mob|turf|area|savefile|list|client|sound|image|database|matrix|regex|exception)\\/)?\n(?:\n\t([a-zA-Z0-9_\\-$]*)\\/\n)*\n\n([A-Za-z0-9_$]*)\\b", + "name": "meta.initialization.dm", + "captures": { + "1": { + "name": "storage.type.dm" + }, + "2": { + "name": "storage.modifier.dm" + }, + "3": { + "name": "storage.type.dm" + }, + "5": { + "name": "variable.other.dm" + } + } + }, + { + "match": "\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)\\b", + "name": "constant.numeric.dm" + }, + { + "match": "\\b(sleep|spawn|break|continue|do|else|for|goto|if|return|switch|while)\\b", + "name": "keyword.control.dm" + }, + { + "match": "\\b(del|new)\\b", + "name": "keyword.other.dm" + }, + { + "match": "\\b(proc|verb|datum|atom(/movable)?|obj|mob|turf|area|savefile|list|client|sound|image|database|matrix|regex|exception)\\b", + "name": "storage.type.dm" + }, + { + "match": "\\b(as|const|global|set|static|tmp)\\b", + "name": "storage.modifier.dm" + }, + { + "match": "\\b(usr|world|src|args)\\b", + "name": "variable.language.dm" + }, + { + "match": "(\\?|(>|<)(=)?|\\.|:|/(=)?|~|\\+(\\+|=)?|-(-|=)?|\\*(\\*|=)?|%|>>|<<|=(=)?|!(=)?|<>|&|&&|\\^|\\||\\|\\||\\bto\\b|\\bin\\b|\\bstep\\b)", + "name": "keyword.operator.dm" + }, + { + "match": "\\b([A-Z_][A-Z_0-9]*)\\b", + "name": "constant.language.dm" + }, + { + "match": "\\bnull\\b", + "name": "constant.language.dm" + }, + { + "begin": "{\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.dm" + } + }, + "end": "\"}", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.dm" + } + }, + "name": "string.quoted.triple.dm", + "patterns": [ + { + "include": "#string_escaped_char" + }, + { + "include": "#string_embedded_expression" + } + ] + }, + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.dm" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.dm" + } + }, + "name": "string.quoted.double.dm", + "patterns": [ + { + "include": "#string_escaped_char" + }, + { + "include": "#string_embedded_expression" + } + ] + }, + { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.dm" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.dm" + } + }, + "name": "string.quoted.single.dm", + "patterns": [ + { + "include": "#string_escaped_char" + } + ] + }, + { + "begin": "(?x)\n^\\s* ((\\#)\\s*define) \\s+ # define\n((?<id>[a-zA-Z_][a-zA-Z0-9_]*)) # macro name\n(?:\n\t(\\()\n\t\t(\n\t\t\t\\s* \\g<id> \\s* # first argument\n\t\t\t((,) \\s* \\g<id> \\s*)* # additional arguments\n\t\t\t(?:\\.\\.\\.)? # varargs ellipsis?\n\t\t)\n\t(\\))\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.directive.define.dm" + }, + "2": { + "name": "punctuation.definition.directive.dm" + }, + "3": { + "name": "entity.name.function.preprocessor.dm" + }, + "5": { + "name": "punctuation.definition.parameters.begin.dm" + }, + "6": { + "name": "variable.parameter.preprocessor.dm" + }, + "8": { + "name": "punctuation.separator.parameters.dm" + }, + "9": { + "name": "punctuation.definition.parameters.end.dm" + } + }, + "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.macro.dm", + "patterns": [ + { + "include": "$base" + } + ] + }, + { + "begin": "(?x)\n^\\s* ((\\#)\\s*define) \\s+ # define\n((?<id>[a-zA-Z_][a-zA-Z0-9_]*)) # macro name", + "beginCaptures": { + "1": { + "name": "keyword.control.directive.define.dm" + }, + "2": { + "name": "punctuation.definition.directive.dm" + }, + "3": { + "name": "variable.other.preprocessor.dm" + } + }, + "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.macro.dm", + "patterns": [ + { + "include": "$base" + } + ] + }, + { + "begin": "^\\s*(#\\s*(error|warn))\\b", + "captures": { + "1": { + "name": "keyword.control.import.error.dm" + } + }, + "end": "$", + "name": "meta.preprocessor.diagnostic.dm", + "patterns": [ + { + "match": "(?>\\\\\\s*\\n)", + "name": "punctuation.separator.continuation.dm" + } + ] + }, + { + "begin": "^\\s*(?:((#)\\s*(?:elif|else|if|ifdef|ifndef))|((#)\\s*(undef|include)))\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.directive.conditional.dm" + }, + "2": { + "name": "punctuation.definition.directive.dm" + }, + "3": { + "name": "keyword.control.directive.$5.dm" + }, + "4": { + "name": "punctuation.definition.directive.dm" + } + }, + "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.dm", + "patterns": [ + { + "match": "(?>\\\\\\s*\\n)", + "name": "punctuation.separator.continuation.dm" + } + ] + }, + { + "include": "#block" + }, + { + "begin": "(?x)\n\t\t\t\t(?: ^ # begin-of-line\n\t\t\t\t\t|\n\t\t\t\t\t\t (?: (?= \\s ) (?<!else|new|return) (?<=\\w) # or word + space before name\n\t\t\t\t\t\t\t | (?= \\s*[A-Za-z_] ) (?<!&&) (?<=[*&>]) # or type modifier before name\n\t\t\t\t\t\t )\n\t\t\t\t)\n\t\t\t\t(\\s*) (?!(while|for|do|if|else|switch|catch|enumerate|return|r?iterate)\\s*\\()\n\t\t\t\t(\n\t\t\t\t\t(?: [A-Za-z_][A-Za-z0-9_]*+ | :: )++ | # actual name\n\t\t\t\t\t(?: (?<=operator) (?: [-*&<>=+!]+ | \\(\\) | \\[\\] ) ) # if it is a C++ operator\n\t\t\t\t)\n\t\t\t\t \\s*(?=\\()", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.function.leading.dm" + }, + "3": { + "name": "entity.name.function.dm" + }, + "4": { + "name": "punctuation.definition.parameters.dm" + } + }, + "end": "(?<=\\})|(?=#)|(;)?", + "name": "meta.function.dm", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#parens" + }, + { + "match": "\\bconst\\b", + "name": "storage.modifier.dm" + }, + { + "include": "#block" + } + ] + } + ], + "repository": { + "access": { + "match": "\\.[a-zA-Z_][a-zA-Z_0-9]*\\b(?!\\s*\\()", + "name": "variable.other.dot-access.dm" + }, + "block": { + "begin": "\\{", + "end": "\\}", + "name": "meta.block.dm", + "patterns": [ + { + "include": "#block_innards" + } + ] + }, + "block_innards": { + "patterns": [ + { + "include": "#preprocessor-rule-enabled-block" + }, + { + "include": "#preprocessor-rule-disabled-block" + }, + { + "include": "#preprocessor-rule-other-block" + }, + { + "include": "#access" + }, + { + "captures": { + "1": { + "name": "punctuation.whitespace.function-call.leading.dm" + }, + "2": { + "name": "support.function.any-method.dm" + }, + "3": { + "name": "punctuation.definition.parameters.dm" + } + }, + "match": "(?x) (?: (?= \\s ) (?:(?<=else|new|return) | (?<!\\w)) (\\s+))?\n\t\t\t(\\b\n\t\t\t\t(?!(while|for|do|if|else|switch|catch|enumerate|return|r?iterate)\\s*\\()(?:(?!NS)[A-Za-z_][A-Za-z0-9_]*+\\b | :: )++ # actual name\n\t\t\t)\n\t\t\t \\s*(\\()", + "name": "meta.function-call.dm" + }, + { + "include": "#block" + }, + { + "include": "$base" + } + ] + }, + "comments": { + "patterns": [ + { + "captures": { + "1": { + "name": "meta.toc-list.banner.block.dm" + } + }, + "match": "^/\\* =(\\s*.*?)\\s*= \\*/$\\n?", + "name": "comment.block.dm" + }, + { + "begin": "/\\*", + "captures": { + "0": { + "name": "punctuation.definition.comment.dm" + } + }, + "end": "\\*/", + "name": "comment.block.dm", + "patterns": [ + { + "include": "#comments" + } + ] + }, + { + "match": "\\*/.*\\n", + "name": "invalid.illegal.stray-comment-end.dm" + }, + { + "captures": { + "1": { + "name": "meta.toc-list.banner.line.dm" + } + }, + "match": "^// =(\\s*.*?)\\s*=\\s*$\\n?", + "name": "comment.line.banner.dm" + }, + { + "begin": "//", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.dm" + } + }, + "end": "$\\n?", + "name": "comment.line.double-slash.dm", + "patterns": [ + { + "match": "(?>\\\\\\s*\\n)", + "name": "punctuation.separator.continuation.dm" + } + ] + } + ] + }, + "disabled": { + "begin": "^\\s*#\\s*if(n?def)?\\b.*$", + "comment": "eat nested preprocessor if(def)s", + "end": "^\\s*#\\s*endif\\b.*$", + "patterns": [ + { + "include": "#disabled" + } + ] + }, + "parens": { + "begin": "\\(", + "end": "\\)", + "name": "meta.parens.dm", + "patterns": [ + { + "include": "$base" + } + ] + }, + "preprocessor-rule-disabled": { + "begin": "^\\s*(#(if)\\s+(0)\\b).*", + "captures": { + "1": { + "name": "meta.preprocessor.dm" + }, + "2": { + "name": "keyword.control.import.if.dm" + }, + "3": { + "name": "constant.numeric.preprocessor.dm" + } + }, + "end": "^\\s*(#\\s*(endif)\\b)", + "patterns": [ + { + "begin": "^\\s*(#\\s*(else)\\b)", + "captures": { + "1": { + "name": "meta.preprocessor.dm" + }, + "2": { + "name": "keyword.control.import.else.dm" + } + }, + "end": "(?=^\\s*#\\s*endif\\b.*$)", + "patterns": [ + { + "include": "$base" + } + ] + }, + { + "begin": "", + "end": "(?=^\\s*#\\s*(else|endif)\\b.*$)", + "name": "comment.block.preprocessor.if-branch", + "patterns": [ + { + "include": "#disabled" + } + ] + } + ] + }, + "preprocessor-rule-disabled-block": { + "begin": "^\\s*(#(if)\\s+(0)\\b).*", + "captures": { + "1": { + "name": "meta.preprocessor.dm" + }, + "2": { + "name": "keyword.control.import.if.dm" + }, + "3": { + "name": "constant.numeric.preprocessor.dm" + } + }, + "end": "^\\s*(#\\s*(endif)\\b)", + "patterns": [ + { + "begin": "^\\s*(#\\s*(else)\\b)", + "captures": { + "1": { + "name": "meta.preprocessor.dm" + }, + "2": { + "name": "keyword.control.import.else.dm" + } + }, + "end": "(?=^\\s*#\\s*endif\\b.*$)", + "patterns": [ + { + "include": "#block_innards" + } + ] + }, + { + "begin": "", + "end": "(?=^\\s*#\\s*(else|endif)\\b.*$)", + "name": "comment.block.preprocessor.if-branch.in-block", + "patterns": [ + { + "include": "#disabled" + } + ] + } + ] + }, + "preprocessor-rule-enabled": { + "begin": "^\\s*(#(if)\\s+(0*1)\\b)", + "captures": { + "1": { + "name": "meta.preprocessor.dm" + }, + "2": { + "name": "keyword.control.import.if.dm" + }, + "3": { + "name": "constant.numeric.preprocessor.dm" + } + }, + "end": "^\\s*(#\\s*(endif)\\b)", + "patterns": [ + { + "begin": "^\\s*(#\\s*(else)\\b).*", + "captures": { + "1": { + "name": "meta.preprocessor.dm" + }, + "2": { + "name": "keyword.control.import.else.dm" + } + }, + "contentName": "comment.block.preprocessor.else-branch", + "end": "(?=^\\s*#\\s*endif\\b.*$)", + "patterns": [ + { + "include": "#disabled" + } + ] + }, + { + "begin": "", + "end": "(?=^\\s*#\\s*(else|endif)\\b.*$)", + "patterns": [ + { + "include": "$base" + } + ] + } + ] + }, + "preprocessor-rule-enabled-block": { + "begin": "^\\s*(#(if)\\s+(0*1)\\b)", + "captures": { + "1": { + "name": "meta.preprocessor.dm" + }, + "2": { + "name": "keyword.control.import.if.dm" + }, + "3": { + "name": "constant.numeric.preprocessor.dm" + } + }, + "end": "^\\s*(#\\s*(endif)\\b)", + "patterns": [ + { + "begin": "^\\s*(#\\s*(else)\\b).*", + "captures": { + "1": { + "name": "meta.preprocessor.dm" + }, + "2": { + "name": "keyword.control.import.else.dm" + } + }, + "contentName": "comment.block.preprocessor.else-branch.in-block", + "end": "(?=^\\s*#\\s*endif\\b.*$)", + "patterns": [ + { + "include": "#disabled" + } + ] + }, + { + "begin": "", + "end": "(?=^\\s*#\\s*(else|endif)\\b.*$)", + "patterns": [ + { + "include": "#block_innards" + } + ] + } + ] + }, + "preprocessor-rule-other": { + "begin": "^\\s*((#\\s*(if(n?def)?))\\b.*?(?:(?=(?://|/\\*))|$))", + "captures": { + "1": { + "name": "meta.preprocessor.dm" + }, + "2": { + "name": "keyword.control.import.dm" + } + }, + "end": "^\\s*((#\\s*(endif))\\b).*$", + "patterns": [ + { + "include": "$base" + } + ] + }, + "preprocessor-rule-other-block": { + "begin": "^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))", + "captures": { + "1": { + "name": "meta.preprocessor.dm" + }, + "2": { + "name": "keyword.control.import.dm" + } + }, + "end": "^\\s*(#\\s*(endif)\\b).*$", + "patterns": [ + { + "include": "#block_innards" + } + ] + }, + "string_embedded_expression": { + "patterns": [ + { + "begin": "(?<!\\\\)\\[", + "end": "\\]", + "name": "string.interpolated.dm", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + "string_escaped_char": { + "patterns": [ + { + "match": "(?x)\n\\\\\n(\n\th(?:(?:er|im)self|ers|im)\n\t|([tTsS]?he) # Weird regex to match The, the, She, she and he at once.\n\t|He\n\t|[Hh]is\n\t|[aA]n?\n\t|(?:im)?proper\n\t|\\.\\.\\.\n\t|(?:icon|ref|[Rr]oman)(?=\\[) # Macros which need a [] after them.\n\t|[s<>\"n\\n \\[]\n)", + "name": "constant.character.escape.dm" + }, + { + "match": "\\\\.", + "name": "invalid.illegal.unknown-escape.dm" + } + ] + } + }, + "scopeName": "source.dm" +} diff --git a/docs/shiki/languages/elixir.tmLanguage.json b/docs/shiki/languages/elixir.tmLanguage.json new file mode 100644 index 00000000..2e4291ad --- /dev/null +++ b/docs/shiki/languages/elixir.tmLanguage.json @@ -0,0 +1,1013 @@ +{ + "comment": "Textmate bundle for Elixir Programming Language.", + "fileTypes": ["ex", "exs"], + "firstLineMatch": "^#!/.*\\belixir", + "foldingStartMarker": "(after|else|catch|rescue|\\-\\>|\\{|\\[|do)\\s*$", + "foldingStopMarker": "^\\s*((\\}|\\]|after|else|catch|rescue)\\s*$|end\\b)", + "keyEquivalent": "^~E", + "name": "elixir", + "patterns": [ + { + "begin": "\\b(fn)\\b(?!.*->)", + "beginCaptures": { + "1": { + "name": "keyword.control.elixir" + } + }, + "end": "$", + "patterns": [ + { + "include": "#core_syntax" + } + ] + }, + { + "captures": { + "1": { + "name": "entity.name.type.class.elixir" + }, + "2": { + "name": "punctuation.separator.method.elixir" + }, + "3": { + "name": "entity.name.function.elixir" + } + }, + "match": "([A-Z]\\w+)\\s*(\\.)\\s*([a-z_]\\w*[!?]?)" + }, + { + "captures": { + "1": { + "name": "constant.other.symbol.elixir" + }, + "2": { + "name": "punctuation.separator.method.elixir" + }, + "3": { + "name": "entity.name.function.elixir" + } + }, + "match": "(\\:\\w+)\\s*(\\.)\\s*([_]?\\w*[!?]?)" + }, + { + "captures": { + "1": { + "name": "keyword.operator.other.elixir" + }, + "2": { + "name": "entity.name.function.elixir" + } + }, + "match": "(\\|\\>)\\s*([a-z_]\\w*[!?]?)" + }, + { + "match": "\\b[a-z_]\\w*[!?]?(?=\\s*\\.?\\s*\\()", + "name": "entity.name.function.elixir" + }, + { + "begin": "\\b(fn)\\b(?=.*->)", + "beginCaptures": { + "1": { + "name": "keyword.control.elixir" + } + }, + "end": "(?>(->)|(when)|(\\)))", + "endCaptures": { + "1": { + "name": "keyword.operator.other.elixir" + }, + "2": { + "name": "keyword.control.elixir" + }, + "3": { + "name": "punctuation.section.function.elixir" + } + }, + "patterns": [ + { + "include": "#core_syntax" + } + ] + }, + { + "include": "#core_syntax" + }, + { + "begin": "^(?=.*->)((?![^\"']*(\"|')[^\"']*->)|(?=.*->[^\"']*(\"|')[^\"']*->))((?!.*\\([^\\)]*->)|(?=[^\\(\\)]*->)|(?=\\s*\\(.*\\).*->))((?!.*\\b(fn)\\b)|(?=.*->.*\\bfn\\b))", + "beginCaptures": { + "1": { + "name": "keyword.control.elixir" + } + }, + "end": "(?>(->)|(when)|(\\)))", + "endCaptures": { + "1": { + "name": "keyword.operator.other.elixir" + }, + "2": { + "name": "keyword.control.elixir" + }, + "3": { + "name": "punctuation.section.function.elixir" + } + }, + "patterns": [ + { + "include": "#core_syntax" + } + ] + } + ], + "repository": { + "core_syntax": { + "patterns": [ + { + "begin": "^\\s*(defmodule)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.module.elixir" + } + }, + "end": "\\b(do)\\b", + "endCaptures": { + "1": { + "name": "keyword.control.module.elixir" + } + }, + "name": "meta.module.elixir", + "patterns": [ + { + "match": "\\b[A-Z]\\w*(?=\\.)", + "name": "entity.other.inherited-class.elixir" + }, + { + "match": "\\b[A-Z]\\w*\\b", + "name": "entity.name.type.class.elixir" + } + ] + }, + { + "begin": "^\\s*(defprotocol)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.protocol.elixir" + } + }, + "end": "\\b(do)\\b", + "endCaptures": { + "1": { + "name": "keyword.control.protocol.elixir" + } + }, + "name": "meta.protocol_declaration.elixir", + "patterns": [ + { + "match": "\\b[A-Z]\\w*\\b", + "name": "entity.name.type.protocol.elixir" + } + ] + }, + { + "begin": "^\\s*(defimpl)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.protocol.elixir" + } + }, + "end": "\\b(do)\\b", + "endCaptures": { + "1": { + "name": "keyword.control.protocol.elixir" + } + }, + "name": "meta.protocol_implementation.elixir", + "patterns": [ + { + "match": "\\b[A-Z]\\w*\\b", + "name": "entity.name.type.protocol.elixir" + } + ] + }, + { + "begin": "^\\s*(def|defmacro|defdelegate|defguard)\\s+((?>[a-zA-Z_]\\w*(?>\\.|::))?(?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))?|===?|>[>=]?|<=>|<[<=]?|[%&`/\\|]|\\*\\*?|=?~|[-+]@?|\\[\\]=?))((\\()|\\s*)", + "beginCaptures": { + "1": { + "name": "keyword.control.module.elixir" + }, + "2": { + "name": "entity.name.function.public.elixir" + }, + "4": { + "name": "punctuation.section.function.elixir" + } + }, + "end": "(\\bdo:)|(\\bdo\\b)|(?=\\s+(def|defn|defmacro|defdelegate|defguard)\\b)", + "endCaptures": { + "1": { + "name": "constant.other.keywords.elixir" + }, + "2": { + "name": "keyword.control.module.elixir" + } + }, + "name": "meta.function.public.elixir", + "patterns": [ + { + "include": "$self" + }, + { + "begin": "\\s(\\\\\\\\)", + "beginCaptures": { + "1": { + "name": "keyword.operator.other.elixir" + } + }, + "end": ",|\\)|$", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "match": "\\b(is_atom|is_binary|is_bitstring|is_boolean|is_float|is_function|is_integer|is_list|is_map|is_nil|is_number|is_pid|is_port|is_record|is_reference|is_tuple|is_exception|abs|bit_size|byte_size|div|elem|hd|length|map_size|node|rem|round|tl|trunc|tuple_size)\\b", + "name": "keyword.control.elixir" + } + ] + }, + { + "begin": "^\\s*(defp|defnp|defmacrop|defguardp)\\s+((?>[a-zA-Z_]\\w*(?>\\.|::))?(?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))?|===?|>[>=]?|<=>|<[<=]?|[%&`/\\|]|\\*\\*?|=?~|[-+]@?|\\[\\]=?))((\\()|\\s*)", + "beginCaptures": { + "1": { + "name": "keyword.control.module.elixir" + }, + "2": { + "name": "entity.name.function.private.elixir" + }, + "4": { + "name": "punctuation.section.function.elixir" + } + }, + "end": "(\\bdo:)|(\\bdo\\b)|(?=\\s+(defp|defmacrop|defguardp)\\b)", + "endCaptures": { + "1": { + "name": "constant.other.keywords.elixir" + }, + "2": { + "name": "keyword.control.module.elixir" + } + }, + "name": "meta.function.private.elixir", + "patterns": [ + { + "include": "$self" + }, + { + "begin": "\\s(\\\\\\\\)", + "beginCaptures": { + "1": { + "name": "keyword.operator.other.elixir" + } + }, + "end": ",|\\)|$", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "match": "\\b(is_atom|is_binary|is_bitstring|is_boolean|is_float|is_function|is_integer|is_list|is_map|is_nil|is_number|is_pid|is_port|is_record|is_reference|is_tuple|is_exception|abs|bit_size|byte_size|div|elem|hd|length|map_size|node|rem|round|tl|trunc|tuple_size)\\b", + "name": "keyword.control.elixir" + } + ] + }, + { + "begin": "\\s*~L\"\"\"", + "comment": "Leex Sigil", + "end": "\\s*\"\"\"", + "name": "sigil.leex", + "patterns": [ + { + "include": "text.elixir" + }, + { + "include": "text.html.basic" + } + ] + }, + { + "begin": "\\s*~H\"\"\"", + "comment": "HEEx Sigil", + "end": "\\s*\"\"\"", + "name": "sigil.heex", + "patterns": [ + { + "include": "text.elixir" + }, + { + "include": "text.html.basic" + } + ] + }, + { + "begin": "@(module|type)?doc (~[a-z])?\"\"\"", + "comment": "@doc with heredocs is treated as documentation", + "end": "\\s*\"\"\"", + "name": "comment.block.documentation.heredoc", + "patterns": [ + { + "include": "#interpolated_elixir" + }, + { + "include": "#escaped_char" + } + ] + }, + { + "begin": "@(module|type)?doc ~[A-Z]\"\"\"", + "comment": "@doc with heredocs is treated as documentation", + "end": "\\s*\"\"\"", + "name": "comment.block.documentation.heredoc" + }, + { + "begin": "@(module|type)?doc (~[a-z])?'''", + "comment": "@doc with heredocs is treated as documentation", + "end": "\\s*'''", + "name": "comment.block.documentation.heredoc", + "patterns": [ + { + "include": "#interpolated_elixir" + }, + { + "include": "#escaped_char" + } + ] + }, + { + "begin": "@(module|type)?doc ~[A-Z]'''", + "comment": "@doc with heredocs is treated as documentation", + "end": "\\s*'''", + "name": "comment.block.documentation.heredoc" + }, + { + "comment": "@doc false is treated as documentation", + "match": "@(module|type)?doc false", + "name": "comment.block.documentation.false" + }, + { + "begin": "@(module|type)?doc \"", + "comment": "@doc with string is treated as documentation", + "end": "\"", + "name": "comment.block.documentation.string", + "patterns": [ + { + "include": "#interpolated_elixir" + }, + { + "include": "#escaped_char" + } + ] + }, + { + "match": "(?<!\\.)\\b(do|end|case|bc|lc|for|if|cond|unless|try|receive|fn|defmodule|defp?|defprotocol|defimpl|defrecord|defstruct|defnp?|defmacrop?|defguardp?|defdelegate|defexception|defoverridable|exit|after|rescue|catch|else|raise|reraise|throw|import|require|alias|use|quote|unquote|super|with)\\b(?![?!:])", + "name": "keyword.control.elixir" + }, + { + "comment": " as above, just doesn't need a 'end' and does a logic operation", + "match": "(?<!\\.)\\b(and|not|or|when|xor|in)\\b", + "name": "keyword.operator.elixir" + }, + { + "match": "\\b[A-Z]\\w*\\b", + "name": "entity.name.type.class.elixir" + }, + { + "match": "\\b(nil|true|false)\\b(?![?!])", + "name": "constant.language.elixir" + }, + { + "match": "\\b(__(CALLER|ENV|MODULE|DIR|STACKTRACE)__)\\b(?![?!])", + "name": "variable.language.elixir" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.variable.elixir" + } + }, + "match": "(@)[a-zA-Z_]\\w*", + "name": "variable.other.readwrite.module.elixir" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.variable.elixir" + } + }, + "match": "(&)\\d+", + "name": "variable.other.anonymous.elixir" + }, + { + "match": "&(?![&])", + "name": "variable.other.anonymous.elixir" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.variable.elixir" + } + }, + "match": "\\^[a-z_]\\w*", + "name": "variable.other.capture.elixir" + }, + { + "match": "\\b0x[0-9A-Fa-f](?>_?[0-9A-Fa-f])*\\b", + "name": "constant.numeric.hex.elixir" + }, + { + "match": "\\b\\d(?>_?\\d)*(\\.(?![^[:space:][:digit:]])(?>_?\\d)+)([eE][-+]?\\d(?>_?\\d)*)?\\b", + "name": "constant.numeric.float.elixir" + }, + { + "match": "\\b\\d(?>_?\\d)*\\b", + "name": "constant.numeric.integer.elixir" + }, + { + "match": "\\b0b[01](?>_?[01])*\\b", + "name": "constant.numeric.binary.elixir" + }, + { + "match": "\\b0o[0-7](?>_?[0-7])*\\b", + "name": "constant.numeric.octal.elixir" + }, + { + "begin": ":'", + "captures": { + "0": { + "name": "punctuation.definition.constant.elixir" + } + }, + "end": "'", + "name": "constant.other.symbol.single-quoted.elixir", + "patterns": [ + { + "include": "#interpolated_elixir" + }, + { + "include": "#escaped_char" + } + ] + }, + { + "begin": ":\"", + "captures": { + "0": { + "name": "punctuation.definition.constant.elixir" + } + }, + "end": "\"", + "name": "constant.other.symbol.double-quoted.elixir", + "patterns": [ + { + "include": "#interpolated_elixir" + }, + { + "include": "#escaped_char" + } + ] + }, + { + "begin": "(?>''')", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.elixir" + } + }, + "comment": "Single-quoted heredocs", + "end": "^\\s*'''", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.elixir" + } + }, + "name": "string.quoted.single.heredoc.elixir", + "patterns": [ + { + "include": "#interpolated_elixir" + }, + { + "include": "#escaped_char" + } + ] + }, + { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.elixir" + } + }, + "comment": "single quoted string (allows for interpolation)", + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.elixir" + } + }, + "name": "string.quoted.single.elixir", + "patterns": [ + { + "include": "#interpolated_elixir" + }, + { + "include": "#escaped_char" + } + ] + }, + { + "begin": "(?>\"\"\")", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.elixir" + } + }, + "comment": "Double-quoted heredocs", + "end": "^\\s*\"\"\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.elixir" + } + }, + "name": "string.quoted.double.heredoc.elixir", + "patterns": [ + { + "include": "#interpolated_elixir" + }, + { + "include": "#escaped_char" + } + ] + }, + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.elixir" + } + }, + "comment": "double quoted string (allows for interpolation)", + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.elixir" + } + }, + "name": "string.quoted.double.elixir", + "patterns": [ + { + "include": "#interpolated_elixir" + }, + { + "include": "#escaped_char" + } + ] + }, + { + "begin": "~[a-z](?>\"\"\")", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.elixir" + } + }, + "comment": "Double-quoted heredocs sigils", + "end": "^\\s*\"\"\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.elixir" + } + }, + "name": "string.quoted.other.sigil.heredoc.elixir", + "patterns": [ + { + "include": "#interpolated_elixir" + }, + { + "include": "#escaped_char" + } + ] + }, + { + "begin": "~[a-z]\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.elixir" + } + }, + "comment": "sigil (allow for interpolation)", + "end": "\\}[a-z]*", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.elixir" + } + }, + "name": "string.quoted.other.sigil.elixir", + "patterns": [ + { + "include": "#interpolated_elixir" + }, + { + "include": "#escaped_char" + } + ] + }, + { + "begin": "~[a-z]\\[", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.elixir" + } + }, + "comment": "sigil (allow for interpolation)", + "end": "\\][a-z]*", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.elixir" + } + }, + "name": "string.quoted.other.sigil.elixir", + "patterns": [ + { + "include": "#interpolated_elixir" + }, + { + "include": "#escaped_char" + } + ] + }, + { + "begin": "~[a-z]\\<", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.elixir" + } + }, + "comment": "sigil (allow for interpolation)", + "end": "\\>[a-z]*", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.elixir" + } + }, + "name": "string.quoted.other.sigil.elixir", + "patterns": [ + { + "include": "#interpolated_elixir" + }, + { + "include": "#escaped_char" + } + ] + }, + { + "begin": "~[a-z]\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.elixir" + } + }, + "comment": "sigil (allow for interpolation)", + "end": "\\)[a-z]*", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.elixir" + } + }, + "name": "string.quoted.other.sigil.elixir", + "patterns": [ + { + "include": "#interpolated_elixir" + }, + { + "include": "#escaped_char" + } + ] + }, + { + "begin": "~[a-z]([^\\w])", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.elixir" + } + }, + "comment": "sigil (allow for interpolation)", + "end": "\\1[a-z]*", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.elixir" + } + }, + "name": "string.quoted.other.sigil.elixir", + "patterns": [ + { + "include": "#interpolated_elixir" + }, + { + "include": "#escaped_char" + } + ] + }, + { + "begin": "~[A-Z](?>\"\"\")", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.elixir" + } + }, + "comment": "Double-quoted heredocs sigils", + "end": "^\\s*\"\"\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.elixir" + } + }, + "name": "string.quoted.other.sigil.heredoc.literal.elixir" + }, + { + "begin": "~[A-Z]\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.elixir" + } + }, + "comment": "sigil (without interpolation)", + "end": "\\}[a-z]*", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.elixir" + } + }, + "name": "string.quoted.other.sigil.literal.elixir" + }, + { + "begin": "~[A-Z]\\[", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.elixir" + } + }, + "comment": "sigil (without interpolation)", + "end": "\\][a-z]*", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.elixir" + } + }, + "name": "string.quoted.other.sigil.literal.elixir" + }, + { + "begin": "~[A-Z]\\<", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.elixir" + } + }, + "comment": "sigil (without interpolation)", + "end": "\\>[a-z]*", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.elixir" + } + }, + "name": "string.quoted.other.sigil.literal.elixir" + }, + { + "begin": "~[A-Z]\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.elixir" + } + }, + "comment": "sigil (without interpolation)", + "end": "\\)[a-z]*", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.elixir" + } + }, + "name": "string.quoted.other.sigil.literal.elixir" + }, + { + "begin": "~[A-Z]([^\\w])", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.elixir" + } + }, + "comment": "sigil (without interpolation)", + "end": "\\1[a-z]*", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.elixir" + } + }, + "name": "string.quoted.other.sigil.literal.elixir" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.constant.elixir" + } + }, + "comment": "symbols", + "match": "(?<!:)(:)(?>[a-zA-Z_][\\w@]*(?>[?!]|=(?![>=]))?|\\<\\>|===?|!==?|<<>>|<<<|>>>|~~~|::|<\\-|\\|>|=>|=~|=|/|\\\\\\\\|\\*\\*?|\\.\\.?\\.?|\\.\\.//|>=?|<=?|&&?&?|\\+\\+?|\\-\\-?|\\|\\|?\\|?|\\!|@|\\%?\\{\\}|%|\\[\\]|\\^(\\^\\^)?)", + "name": "constant.other.symbol.elixir" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.constant.elixir" + } + }, + "comment": "symbols", + "match": "(?>[a-zA-Z_][\\w@]*(?>[?!])?)(:)(?!:)", + "name": "constant.other.keywords.elixir" + }, + { + "begin": "(^[ \\t]+)?(?=##)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.elixir" + } + }, + "end": "(?!#)", + "patterns": [ + { + "begin": "##", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.elixir" + } + }, + "end": "\\n", + "name": "comment.line.section.elixir" + } + ] + }, + { + "begin": "(^[ \\t]+)?(?=#)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.elixir" + } + }, + "end": "(?!#)", + "patterns": [ + { + "begin": "#", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.elixir" + } + }, + "end": "\\n", + "name": "comment.line.number-sign.elixir" + } + ] + }, + { + "match": "\\b_([^_][\\w]+[?!]?)", + "name": "comment.unused.elixir" + }, + { + "match": "\\b_\\b", + "name": "comment.wildcard.elixir" + }, + { + "comment": "\n\t\t\tmatches questionmark-letters.\n\n\t\t\texamples (1st alternation = hex):\n\t\t\t?\\x1 ?\\x61\n\n\t\t\texamples (2rd alternation = escaped):\n\t\t\t?\\n ?\\b\n\n\t\t\texamples (3rd alternation = normal):\n\t\t\t?a ?A ?0\n\t\t\t?* ?\" ?(\n\t\t\t?. ?#\n\n\t\t\tthe negative lookbehind prevents against matching\n\t\t\tp(42.tainted?)\n\t\t\t", + "match": "(?<!\\w)\\?(\\\\(x[0-9A-Fa-f]{1,2}(?![0-9A-Fa-f])\\b|[^xMC])|[^\\s\\\\])", + "name": "constant.numeric.elixir" + }, + { + "match": "\\+\\+|\\-\\-|<\\|>", + "name": "keyword.operator.concatenation.elixir" + }, + { + "match": "\\|\\>|<~>|<>|<<<|>>>|~>>|<<~|~>|<~|<\\|>", + "name": "keyword.operator.sigils_1.elixir" + }, + { + "match": "&&&|&&", + "name": "keyword.operator.sigils_2.elixir" + }, + { + "match": "<\\-|\\\\\\\\", + "name": "keyword.operator.sigils_3.elixir" + }, + { + "match": "===?|!==?|<=?|>=?", + "name": "keyword.operator.comparison.elixir" + }, + { + "match": "(\\|\\|\\||&&&|\\^\\^\\^|<<<|>>>|~~~)", + "name": "keyword.operator.bitwise.elixir" + }, + { + "match": "(?<=[ \\t])!+|\\bnot\\b|&&|\\band\\b|\\|\\||\\bor\\b|\\bxor\\b", + "name": "keyword.operator.logical.elixir" + }, + { + "match": "(\\*|\\+|\\-|/)", + "name": "keyword.operator.arithmetic.elixir" + }, + { + "match": "\\||\\+\\+|\\-\\-|\\*\\*|\\\\\\\\|\\<\\-|\\<\\>|\\<\\<|\\>\\>|\\:\\:|\\.\\.|//|\\|>|~|=>|&", + "name": "keyword.operator.other.elixir" + }, + { + "match": "=", + "name": "keyword.operator.assignment.elixir" + }, + { + "match": ":", + "name": "punctuation.separator.other.elixir" + }, + { + "match": "\\;", + "name": "punctuation.separator.statement.elixir" + }, + { + "match": ",", + "name": "punctuation.separator.object.elixir" + }, + { + "match": "\\.", + "name": "punctuation.separator.method.elixir" + }, + { + "match": "\\{|\\}", + "name": "punctuation.section.scope.elixir" + }, + { + "match": "\\[|\\]", + "name": "punctuation.section.array.elixir" + }, + { + "match": "\\(|\\)", + "name": "punctuation.section.function.elixir" + } + ] + }, + "escaped_char": { + "match": "\\\\(x[\\da-fA-F]{1,2}|.)", + "name": "constant.character.escaped.elixir" + }, + "interpolated_elixir": { + "begin": "#\\{", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.elixir" + } + }, + "contentName": "source.elixir", + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.elixir" + } + }, + "name": "meta.embedded.line.elixir", + "patterns": [ + { + "include": "#nest_curly_and_self" + }, + { + "include": "$self" + } + ] + }, + "nest_curly_and_self": { + "patterns": [ + { + "begin": "\\{", + "captures": { + "0": { + "name": "punctuation.section.scope.elixir" + } + }, + "end": "\\}", + "patterns": [ + { + "include": "#nest_curly_and_self" + } + ] + }, + { + "include": "$self" + } + ] + } + }, + "scopeName": "source.elixir", + "uuid": "D00C06B9-71B2-4FEB-A0E3-37237F579456" +} diff --git a/docs/shiki/languages/elm.tmLanguage.json b/docs/shiki/languages/elm.tmLanguage.json new file mode 100644 index 00000000..f38de1f0 --- /dev/null +++ b/docs/shiki/languages/elm.tmLanguage.json @@ -0,0 +1,748 @@ +{ + "fileTypes": ["elm"], + "name": "elm", + "scopeName": "source.elm", + "patterns": [ + { + "include": "#import" + }, + { + "include": "#module" + }, + { + "include": "#debug" + }, + { + "include": "#comments" + }, + { + "match": "\\b(_)\\b", + "name": "keyword.unused.elm" + }, + { + "include": "#type-signature" + }, + { + "include": "#type-declaration" + }, + { + "include": "#type-alias-declaration" + }, + { + "include": "#string-triple" + }, + { + "include": "#string-quote" + }, + { + "include": "#char" + }, + { + "comment": "Floats are always decimal", + "match": "\\b([0-9]+\\.[0-9]+([eE][+-]?[0-9]+)?|[0-9]+[eE][+-]?[0-9]+)\\b", + "name": "constant.numeric.float.elm" + }, + { + "match": "\\b([0-9]+)\\b", + "name": "constant.numeric.elm" + }, + { + "match": "\\b(0x[0-9a-fA-F]+)\\b", + "name": "constant.numeric.elm" + }, + { + "include": "#glsl" + }, + { + "include": "#record-prefix" + }, + { + "include": "#module-prefix" + }, + { + "include": "#constructor" + }, + { + "name": "meta.record.field.update.elm", + "match": "(\\{)\\s+([a-z][a-zA-Z0-9_]*)\\s+(\\|)\\s+([a-z][a-zA-Z0-9_]*)", + "captures": { + "1": { + "name": "punctuation.bracket.elm" + }, + "2": { + "name": "record.name.elm" + }, + "3": { + "name": "keyword.pipe.elm" + }, + "4": { + "name": "entity.name.record.field.elm" + } + } + }, + { + "name": "meta.record.field.update.elm", + "match": "(\\|)\\s+([a-z][a-zA-Z0-9_]*)\\s+(\\=)", + "captures": { + "1": { + "name": "keyword.pipe.elm" + }, + "2": { + "name": "entity.name.record.field.elm" + }, + "3": { + "name": "keyword.operator.assignment.elm" + } + } + }, + { + "name": "meta.record.field.update.elm", + "match": "(\\{)\\s+([a-z][a-zA-Z0-9_]*)\\s+$", + "captures": { + "1": { + "name": "punctuation.bracket.elm" + }, + "2": { + "name": "record.name.elm" + } + } + }, + { + "name": "meta.record.field.elm", + "match": "(\\{)\\s+([a-z][a-zA-Z0-9_]*)\\s+(\\=)", + "captures": { + "1": { + "name": "punctuation.bracket.elm" + }, + "2": { + "name": "entity.name.record.field.elm" + }, + "3": { + "name": "keyword.operator.assignment.elm" + } + } + }, + { + "name": "meta.record.field.elm", + "match": "(,)\\s+([a-z][a-zA-Z0-9_]*)\\s+(\\=)", + "captures": { + "1": { + "name": "punctuation.separator.comma.elm" + }, + "2": { + "name": "entity.name.record.field.elm" + }, + "3": { + "name": "keyword.operator.assignment.elm" + } + } + }, + { + "match": "(\\}|\\{)", + "name": "punctuation.bracket.elm" + }, + { + "include": "#unit" + }, + { + "include": "#comma" + }, + { + "include": "#parens" + }, + { + "match": "(->)", + "name": "keyword.operator.arrow.elm" + }, + { + "include": "#infix_op" + }, + { + "match": "(\\=|\\:|\\||\\\\)", + "name": "keyword.other.elm" + }, + { + "match": "\\b(type|as|port|exposing|alias|infixl|infixr|infix)\\s+", + "name": "keyword.other.elm" + }, + { + "match": "\\b(if|then|else|case|of|let|in)\\s+", + "name": "keyword.control.elm" + }, + { + "include": "#record-accessor" + }, + { + "include": "#top_level_value" + }, + { + "include": "#value" + }, + { + "include": "#period" + }, + { + "include": "#square_brackets" + } + ], + "repository": { + "comma": { + "match": "(,)", + "name": "punctuation.separator.comma.elm" + }, + "parens": { + "match": "(\\(|\\))", + "name": "punctuation.parens.elm" + }, + "block_comment": { + "applyEndPatternLast": 1, + "begin": "\\{-(?!#)", + "captures": { + "0": { + "name": "punctuation.definition.comment.elm" + } + }, + "end": "-\\}", + "name": "comment.block.elm", + "patterns": [ + { + "include": "#block_comment" + } + ] + }, + "comments": { + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.comment.elm" + } + }, + "begin": "--", + "end": "$", + "name": "comment.line.double-dash.elm" + }, + { + "include": "#block_comment" + } + ] + }, + "import": { + "name": "meta.import.elm", + "begin": "^\\b(import)\\s+", + "beginCaptures": { + "1": { + "name": "keyword.control.import.elm" + } + }, + "end": "\\n(?!\\s)", + "patterns": [ + { + "match": "(as|exposing)", + "name": "keyword.control.elm" + }, + { + "include": "#module_chunk" + }, + { + "include": "#period" + }, + { + "match": "\\s+", + "name": "punctuation.spaces.elm" + }, + { + "include": "#module-exports" + } + ] + }, + "module": { + "begin": "^\\b((port |effect )?module)\\s+", + "beginCaptures": { + "1": { + "name": "keyword.other.elm" + } + }, + "end": "\\n(?!\\s)", + "endCaptures": { + "1": { + "name": "keyword.other.elm" + } + }, + "name": "meta.declaration.module.elm", + "patterns": [ + { + "include": "#module_chunk" + }, + { + "include": "#period" + }, + { + "match": "(exposing)", + "name": "keyword.other.elm" + }, + { + "match": "\\s+", + "name": "punctuation.spaces.elm" + }, + { + "include": "#module-exports" + } + ] + }, + "string-triple": { + "name": "string.quoted.triple.elm", + "begin": "\"\"\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.elm" + } + }, + "end": "\"\"\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.elm" + } + }, + "patterns": [ + { + "match": "\\\\(NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\"'\\&]|x[0-9a-fA-F]{1,5})", + "name": "constant.character.escape.elm" + }, + { + "match": "\\^[A-Z@\\[\\]\\\\\\^_]", + "name": "constant.character.escape.control.elm" + } + ] + }, + "string-quote": { + "name": "string.quoted.double.elm", + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.elm" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.elm" + } + }, + "patterns": [ + { + "match": "\\\\(NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\"'\\&]|x[0-9a-fA-F]{1,5})", + "name": "constant.character.escape.elm" + }, + { + "match": "\\^[A-Z@\\[\\]\\\\\\^_]", + "name": "constant.character.escape.control.elm" + } + ] + }, + "char": { + "name": "string.quoted.single.elm", + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.char.begin.elm" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.char.end.elm" + } + }, + "patterns": [ + { + "match": "\\\\(NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\"'\\&]|x[0-9a-fA-F]{1,5})", + "name": "constant.character.escape.elm" + }, + { + "match": "\\^[A-Z@\\[\\]\\\\\\^_]", + "name": "constant.character.escape.control.elm" + } + ] + }, + "debug": { + "match": "\\b(Debug)\\b", + "name": "invalid.illegal.debug.elm" + }, + "module-exports": { + "begin": "(\\()", + "beginCaptures": { + "1": { + "name": "punctuation.parens.module-export.elm" + } + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.parens.module-export.elm" + } + }, + "name": "meta.declaration.exports.elm", + "patterns": [ + { + "match": "\\b[a-z][a-zA-Z_'0-9]*", + "name": "entity.name.function.elm" + }, + { + "match": "\\b[A-Z][A-Za-z_'0-9]*", + "name": "storage.type.elm" + }, + { + "match": ",", + "name": "punctuation.separator.comma.elm" + }, + { + "match": "\\s+", + "name": "punctuation.spaces.elm" + }, + { + "include": "#comma" + }, + { + "match": "\\(\\.\\.\\)", + "name": "punctuation.parens.ellipses.elm" + }, + { + "match": "\\.\\.", + "name": "punctuation.parens.ellipses.elm" + }, + { + "include": "#infix_op" + }, + { + "comment": "So named because I don't know what to call this.", + "match": "\\(.*?\\)", + "name": "meta.other.unknown.elm" + } + ] + }, + "module_chunk": { + "match": "[A-Z][a-zA-Z0-9_]*", + "name": "support.module.elm" + }, + "period": { + "match": "[.]", + "name": "keyword.other.period.elm" + }, + "square_brackets": { + "match": "[\\[\\]]", + "name": "punctuation.definition.list.elm" + }, + "record-prefix": { + "match": "([a-z][a-zA-Z0-9_]*)(\\.)([a-z][a-zA-Z0-9_]*)", + "name": "record.accessor.elm", + "captures": { + "1": { + "name": "record.name.elm" + }, + "2": { + "name": "keyword.other.period.elm" + }, + "3": { + "name": "entity.name.record.field.accessor.elm" + } + } + }, + "module-prefix": { + "match": "([A-Z][a-zA-Z0-9_]*)(\\.)", + "name": "meta.module.name.elm", + "captures": { + "1": { + "name": "support.module.elm" + }, + "2": { + "name": "keyword.other.period.elm" + } + } + }, + "constructor": { + "match": "\\b[A-Z][a-zA-Z0-9_]*\\b", + "name": "constant.type-constructor.elm" + }, + "value": { + "match": "\\b[a-z][a-zA-Z0-9_]*\\b", + "name": "meta.value.elm" + }, + "unit": { + "match": "\\(\\)", + "name": "constant.unit.elm" + }, + "top_level_value": { + "match": "^[a-z][a-zA-Z0-9_]*\\b", + "name": "entity.name.function.top_level.elm" + }, + "record-accessor": { + "match": "(\\.)([a-z][a-zA-Z0-9_]*)", + "name": "meta.record.accessor", + "captures": { + "1": { + "name": "keyword.other.period.elm" + }, + "2": { + "name": "entity.name.record.field.accessor.elm" + } + } + }, + "infix_op": { + "match": "(</>|<\\?>|<\\||<=|\\|\\||&&|>=|\\|>|\\|=|\\|\\.|\\+\\+|::|/=|==|//|>>|<<|<|>|\\^|\\+|-|/|\\*)", + "name": "keyword.operator.elm" + }, + "type-declaration": { + "begin": "^(type\\s+)([A-Z][a-zA-Z0-9_']*)\\s+", + "beginCaptures": { + "1": { + "name": "keyword.type.elm" + }, + "2": { + "name": "storage.type.elm" + } + }, + "end": "^(?=\\S)", + "name": "meta.function.type-declaration.elm", + "patterns": [ + { + "name": "meta.record.field.elm", + "match": "^\\s*([A-Z][a-zA-Z0-9_]*)\\b", + "captures": { + "1": { + "name": "constant.type-constructor.elm" + } + } + }, + { + "match": "\\s+", + "name": "punctuation.spaces.elm" + }, + { + "name": "meta.record.field.elm", + "match": "(\\=|\\|)\\s+([A-Z][a-zA-Z0-9_]*)\\b", + "captures": { + "1": { + "name": "keyword.operator.assignment.elm" + }, + "2": { + "name": "constant.type-constructor.elm" + } + } + }, + { + "match": "\\=", + "name": "keyword.operator.assignment.elm" + }, + { + "match": "\\-\\>", + "name": "keyword.operator.arrow.elm" + }, + { + "include": "#module-prefix" + }, + { + "match": "\\b[a-z][a-zA-Z0-9_]*\\b", + "name": "variable.type.elm" + }, + { + "match": "\\b[A-Z][a-zA-Z0-9_]*\\b", + "name": "storage.type.elm" + }, + { + "include": "#comments" + }, + { + "include": "#type-record" + } + ] + }, + "type-alias-declaration": { + "begin": "^(type\\s+)(alias\\s+)([A-Z][a-zA-Z0-9_']*)\\s+", + "beginCaptures": { + "1": { + "name": "keyword.type.elm" + }, + "2": { + "name": "keyword.type-alias.elm" + }, + "3": { + "name": "storage.type.elm" + } + }, + "end": "^(?=\\S)", + "name": "meta.function.type-declaration.elm", + "patterns": [ + { + "match": "\\n\\s+", + "name": "punctuation.spaces.elm" + }, + { + "match": "\\=", + "name": "keyword.operator.assignment.elm" + }, + { + "include": "#module-prefix" + }, + { + "match": "\\b[A-Z][a-zA-Z0-9_]*\\b", + "name": "storage.type.elm" + }, + { + "match": "\\b[a-z][a-zA-Z0-9_]*\\b", + "name": "variable.type.elm" + }, + { + "include": "#comments" + }, + { + "include": "#type-record" + } + ] + }, + "type-record": { + "begin": "(\\{)", + "beginCaptures": { + "1": { + "name": "punctuation.section.braces.begin" + } + }, + "end": "(\\})", + "endCaptures": { + "1": { + "name": "punctuation.section.braces.end" + } + }, + "name": "meta.function.type-record.elm", + "patterns": [ + { + "match": "\\s+", + "name": "punctuation.spaces.elm" + }, + { + "match": "->", + "name": "keyword.operator.arrow.elm" + }, + { + "name": "meta.record.field.elm", + "match": "([a-z][a-zA-Z0-9_]*)\\s+(\\:)", + "captures": { + "1": { + "name": "entity.name.record.field.elm" + }, + "2": { + "name": "keyword.other.elm" + } + } + }, + { + "match": "\\,", + "name": "punctuation.separator.comma.elm" + }, + { + "include": "#module-prefix" + }, + { + "match": "\\b[a-z][a-zA-Z0-9_]*\\b", + "name": "variable.type.elm" + }, + { + "match": "\\b[A-Z][a-zA-Z0-9_]*\\b", + "name": "storage.type.elm" + }, + { + "include": "#comments" + }, + { + "include": "#type-record" + } + ] + }, + "type-signature": { + "begin": "^(port\\s+)?([a-z_][a-zA-Z0-9_']*)\\s+(\\:)", + "beginCaptures": { + "1": { + "name": "keyword.other.port.elm" + }, + "2": { + "name": "entity.name.function.elm" + }, + "3": { + "name": "keyword.other.colon.elm" + } + }, + "end": "((^(?=[a-z]))|^$)", + "name": "meta.function.type-declaration.elm", + "patterns": [ + { + "include": "#type-signature-chunk" + } + ] + }, + "type-signature-chunk": { + "patterns": [ + { + "match": "->", + "name": "keyword.operator.arrow.elm" + }, + { + "match": "\\s+", + "name": "punctuation.spaces.elm" + }, + { + "include": "#module-prefix" + }, + { + "match": "\\b[a-z][a-zA-Z0-9_]*\\b", + "name": "variable.type.elm" + }, + { + "match": "\\b[A-Z][a-zA-Z0-9_]*\\b", + "name": "storage.type.elm" + }, + { + "match": "\\(\\)", + "name": "constant.unit.elm" + }, + { + "include": "#comma" + }, + { + "include": "#parens" + }, + { + "include": "#comments" + }, + { + "include": "#type-record" + } + ] + }, + "glsl": { + "begin": "(\\[)(glsl)(\\|)", + "beginCaptures": { + "1": { + "name": "entity.glsl.bracket.elm" + }, + "2": { + "name": "entity.glsl.name.elm" + }, + "3": { + "name": "entity.glsl.bracket.elm" + } + }, + "end": "(\\|\\])", + "endCaptures": { + "1": { + "name": "entity.glsl.bracket.elm" + } + }, + "name": "meta.embedded.block.glsl", + "patterns": [ + { + "include": "source.glsl" + } + ] + } + } +} diff --git a/docs/shiki/languages/erb.tmLanguage.json b/docs/shiki/languages/erb.tmLanguage.json new file mode 100644 index 00000000..c1d8421a --- /dev/null +++ b/docs/shiki/languages/erb.tmLanguage.json @@ -0,0 +1,153 @@ +{ + "fileTypes": ["erb", "rhtml", "html.erb"], + "injections": { + "text.html.erb - (meta.embedded.block.erb | meta.embedded.line.erb | comment)": { + "patterns": [ + { + "begin": "(^\\s*)(?=<%+#(?![^%]*%>))", + "beginCaptures": { + "0": { + "name": "punctuation.whitespace.comment.leading.erb" + } + }, + "end": "(?!\\G)(\\s*$\\n)?", + "endCaptures": { + "0": { + "name": "punctuation.whitespace.comment.trailing.erb" + } + }, + "patterns": [ + { + "include": "#comment" + } + ] + }, + { + "begin": "(^\\s*)(?=<%(?![^%]*%>))", + "beginCaptures": { + "0": { + "name": "punctuation.whitespace.embedded.leading.erb" + } + }, + "end": "(?!\\G)(\\s*$\\n)?", + "endCaptures": { + "0": { + "name": "punctuation.whitespace.embedded.trailing.erb" + } + }, + "patterns": [ + { + "include": "#tags" + } + ] + }, + { + "include": "#comment" + }, + { + "include": "#tags" + } + ] + } + }, + "keyEquivalent": "^~H", + "name": "erb", + "patterns": [ + { + "include": "text.html.basic" + } + ], + "repository": { + "comment": { + "patterns": [ + { + "begin": "<%+#", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.begin.erb" + } + }, + "end": "%>", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.end.erb" + } + }, + "name": "comment.block.erb" + } + ] + }, + "tags": { + "patterns": [ + { + "begin": "<%+(?!>)[-=]?(?![^%]*%>)", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.erb" + } + }, + "contentName": "source.ruby", + "end": "(-?%)>", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.erb" + }, + "1": { + "name": "source.ruby" + } + }, + "name": "meta.embedded.block.erb", + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.comment.erb" + } + }, + "match": "(#).*?(?=-?%>)", + "name": "comment.line.number-sign.erb" + }, + { + "include": "source.ruby" + } + ] + }, + { + "begin": "<%+(?!>)[-=]?", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.erb" + } + }, + "contentName": "source.ruby", + "end": "(-?%)>", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.erb" + }, + "1": { + "name": "source.ruby" + } + }, + "name": "meta.embedded.line.erb", + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.comment.erb" + } + }, + "match": "(#).*?(?=-?%>)", + "name": "comment.line.number-sign.erb" + }, + { + "include": "source.ruby" + } + ] + } + ] + } + }, + "scopeName": "text.html.erb", + "uuid": "13FF9439-15D0-4E74-9A8E-83ABF0BAA5E7" +} diff --git a/docs/shiki/languages/erlang.tmLanguage.json b/docs/shiki/languages/erlang.tmLanguage.json new file mode 100644 index 00000000..9175ca9c --- /dev/null +++ b/docs/shiki/languages/erlang.tmLanguage.json @@ -0,0 +1,1753 @@ +{ + "comment": "The recognition of function definitions and compiler directives (such as module, record and macro definitions) requires that each of the aforementioned constructs must be the first string inside a line (except for whitespace). Also, the function/module/record/macro names must be given unquoted. -- desp", + "fileTypes": ["erl", "escript", "hrl", "xrl", "yrl"], + "keyEquivalent": "^~E", + "name": "erlang", + "patterns": [ + { + "include": "#module-directive" + }, + { + "include": "#import-export-directive" + }, + { + "include": "#behaviour-directive" + }, + { + "include": "#record-directive" + }, + { + "include": "#define-directive" + }, + { + "include": "#macro-directive" + }, + { + "include": "#directive" + }, + { + "include": "#function" + }, + { + "include": "#everything-else" + } + ], + "repository": { + "atom": { + "patterns": [ + { + "begin": "(')", + "beginCaptures": { + "1": { + "name": "punctuation.definition.symbol.begin.erlang" + } + }, + "end": "(')", + "endCaptures": { + "1": { + "name": "punctuation.definition.symbol.end.erlang" + } + }, + "name": "constant.other.symbol.quoted.single.erlang", + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.escape.erlang" + }, + "3": { + "name": "punctuation.definition.escape.erlang" + } + }, + "match": "(\\\\)([bdefnrstv\\\\'\"]|(\\^)[@-_a-z]|[0-7]{1,3}|x[\\da-fA-F]{2})", + "name": "constant.other.symbol.escape.erlang" + }, + { + "match": "\\\\\\^?.?", + "name": "invalid.illegal.atom.erlang" + } + ] + }, + { + "match": "[a-z][a-zA-Z\\d@_]*+", + "name": "constant.other.symbol.unquoted.erlang" + } + ] + }, + "behaviour-directive": { + "captures": { + "1": { + "name": "punctuation.section.directive.begin.erlang" + }, + "2": { + "name": "keyword.control.directive.behaviour.erlang" + }, + "3": { + "name": "punctuation.definition.parameters.begin.erlang" + }, + "4": { + "name": "entity.name.type.class.behaviour.definition.erlang" + }, + "5": { + "name": "punctuation.definition.parameters.end.erlang" + }, + "6": { + "name": "punctuation.section.directive.end.erlang" + } + }, + "match": "^\\s*+(-)\\s*+(behaviour)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\))\\s*+(\\.)", + "name": "meta.directive.behaviour.erlang" + }, + "binary": { + "begin": "(<<)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.binary.begin.erlang" + } + }, + "end": "(>>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.binary.end.erlang" + } + }, + "name": "meta.structure.binary.erlang", + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.separator.binary.erlang" + }, + "2": { + "name": "punctuation.separator.value-size.erlang" + } + }, + "match": "(,)|(:)" + }, + { + "include": "#internal-type-specifiers" + }, + { + "include": "#everything-else" + } + ] + }, + "character": { + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.character.erlang" + }, + "2": { + "name": "constant.character.escape.erlang" + }, + "3": { + "name": "punctuation.definition.escape.erlang" + }, + "5": { + "name": "punctuation.definition.escape.erlang" + } + }, + "match": "(\\$)((\\\\)([bdefnrstv\\\\'\"]|(\\^)[@-_a-z]|[0-7]{1,3}|x[\\da-fA-F]{2}))", + "name": "constant.character.erlang" + }, + { + "match": "\\$\\\\\\^?.?", + "name": "invalid.illegal.character.erlang" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.character.erlang" + } + }, + "match": "(\\$)[ \\S]", + "name": "constant.character.erlang" + }, + { + "match": "\\$.?", + "name": "invalid.illegal.character.erlang" + } + ] + }, + "comment": { + "begin": "(^[ \\t]+)?(?=%)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.erlang" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": "%", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.erlang" + } + }, + "end": "\\n", + "name": "comment.line.percentage.erlang" + } + ] + }, + "define-directive": { + "patterns": [ + { + "begin": "^\\s*+(-)\\s*+(define)\\s*+(\\()\\s*+([a-zA-Z\\d@_]++)\\s*+", + "beginCaptures": { + "1": { + "name": "punctuation.section.directive.begin.erlang" + }, + "2": { + "name": "keyword.control.directive.define.erlang" + }, + "3": { + "name": "punctuation.definition.parameters.begin.erlang" + }, + "4": { + "name": "entity.name.function.macro.definition.erlang" + } + }, + "end": "(\\))\\s*+(\\.)", + "endCaptures": { + "1": { + "name": "punctuation.definition.parameters.end.erlang" + }, + "2": { + "name": "punctuation.section.directive.end.erlang" + } + }, + "name": "meta.directive.define.erlang", + "patterns": [ + { + "include": "#everything-else" + } + ] + }, + { + "begin": "(?=^\\s*+-\\s*+define\\s*+\\(\\s*+[a-zA-Z\\d@_]++\\s*+\\()", + "end": "(\\))\\s*+(\\.)", + "endCaptures": { + "1": { + "name": "punctuation.definition.parameters.end.erlang" + }, + "2": { + "name": "punctuation.section.directive.end.erlang" + } + }, + "name": "meta.directive.define.erlang", + "patterns": [ + { + "begin": "^\\s*+(-)\\s*+(define)\\s*+(\\()\\s*+([a-zA-Z\\d@_]++)\\s*+(\\()", + "beginCaptures": { + "1": { + "name": "punctuation.section.directive.begin.erlang" + }, + "2": { + "name": "keyword.control.directive.define.erlang" + }, + "3": { + "name": "punctuation.definition.parameters.begin.erlang" + }, + "4": { + "name": "entity.name.function.macro.definition.erlang" + }, + "5": { + "name": "punctuation.definition.parameters.begin.erlang" + } + }, + "end": "(\\))\\s*(,)", + "endCaptures": { + "1": { + "name": "punctuation.definition.parameters.end.erlang" + }, + "2": { + "name": "punctuation.separator.parameters.erlang" + } + }, + "patterns": [ + { + "match": ",", + "name": "punctuation.separator.parameters.erlang" + }, + { + "include": "#everything-else" + } + ] + }, + { + "match": "\\|\\||\\||:|;|,|\\.|->", + "name": "punctuation.separator.define.erlang" + }, + { + "include": "#everything-else" + } + ] + } + ] + }, + "directive": { + "patterns": [ + { + "begin": "^\\s*+(-)\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\(?)", + "beginCaptures": { + "1": { + "name": "punctuation.section.directive.begin.erlang" + }, + "2": { + "name": "keyword.control.directive.erlang" + }, + "3": { + "name": "punctuation.definition.parameters.begin.erlang" + } + }, + "end": "(\\)?)\\s*+(\\.)", + "endCaptures": { + "1": { + "name": "punctuation.definition.parameters.end.erlang" + }, + "2": { + "name": "punctuation.section.directive.end.erlang" + } + }, + "name": "meta.directive.erlang", + "patterns": [ + { + "include": "#everything-else" + } + ] + }, + { + "captures": { + "1": { + "name": "punctuation.section.directive.begin.erlang" + }, + "2": { + "name": "keyword.control.directive.erlang" + }, + "3": { + "name": "punctuation.section.directive.end.erlang" + } + }, + "match": "^\\s*+(-)\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\.)", + "name": "meta.directive.erlang" + } + ] + }, + "everything-else": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#record-usage" + }, + { + "include": "#macro-usage" + }, + { + "include": "#expression" + }, + { + "include": "#keyword" + }, + { + "include": "#textual-operator" + }, + { + "include": "#language-constant" + }, + { + "include": "#function-call" + }, + { + "include": "#tuple" + }, + { + "include": "#list" + }, + { + "include": "#binary" + }, + { + "include": "#parenthesized-expression" + }, + { + "include": "#character" + }, + { + "include": "#number" + }, + { + "include": "#atom" + }, + { + "include": "#string" + }, + { + "include": "#symbolic-operator" + }, + { + "include": "#variable" + } + ] + }, + "expression": { + "patterns": [ + { + "begin": "\\b(if)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.if.erlang" + } + }, + "end": "\\b(end)\\b", + "endCaptures": { + "1": { + "name": "keyword.control.end.erlang" + } + }, + "name": "meta.expression.if.erlang", + "patterns": [ + { + "include": "#internal-expression-punctuation" + }, + { + "include": "#everything-else" + } + ] + }, + { + "begin": "\\b(case)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.case.erlang" + } + }, + "end": "\\b(end)\\b", + "endCaptures": { + "1": { + "name": "keyword.control.end.erlang" + } + }, + "name": "meta.expression.case.erlang", + "patterns": [ + { + "include": "#internal-expression-punctuation" + }, + { + "include": "#everything-else" + } + ] + }, + { + "begin": "\\b(receive)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.receive.erlang" + } + }, + "end": "\\b(end)\\b", + "endCaptures": { + "1": { + "name": "keyword.control.end.erlang" + } + }, + "name": "meta.expression.receive.erlang", + "patterns": [ + { + "include": "#internal-expression-punctuation" + }, + { + "include": "#everything-else" + } + ] + }, + { + "captures": { + "1": { + "name": "keyword.control.fun.erlang" + }, + "4": { + "name": "entity.name.type.class.module.erlang" + }, + "5": { + "name": "variable.other.erlang" + }, + "6": { + "name": "punctuation.separator.module-function.erlang" + }, + "8": { + "name": "entity.name.function.erlang" + }, + "9": { + "name": "variable.other.erlang" + }, + "10": { + "name": "punctuation.separator.function-arity.erlang" + } + }, + "comment": "Implicit function expression with optional module qualifier when both module and function can be atom or variable", + "match": "\\b(fun)\\s+((([a-z][a-zA-Z\\d@_]*+)|(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+))\\s*+(:)\\s*+)?(([a-z][a-zA-Z\\d@_]*+|'[^']*+')|(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+))\\s*(/)", + "name": "meta.expression.fun.implicit.erlang" + }, + { + "begin": "\\b(fun)\\s+(([a-z][a-zA-Z\\d@_]*+)|(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+))\\s*+(:)", + "beginCaptures": { + "1": { + "name": "keyword.control.fun.erlang" + }, + "3": { + "name": "entity.name.type.class.module.erlang" + }, + "4": { + "name": "variable.other.erlang" + }, + "5": { + "name": "punctuation.separator.module-function.erlang" + } + }, + "comment": "Implicit function expression with module qualifier when module can be atom or variable and function can by anything", + "end": "(/)", + "endCaptures": { + "1": { + "name": "punctuation.separator.function-arity.erlang" + } + }, + "name": "meta.expression.fun.implicit.erlang", + "patterns": [ + { + "include": "#everything-else" + } + ] + }, + { + "begin": "\\b(fun)\\s+(?!\\()", + "beginCaptures": { + "1": { + "name": "keyword.control.fun.erlang" + } + }, + "comment": "Implicit function expression when both module and function can by anything", + "end": "(/)", + "endCaptures": { + "1": { + "name": "punctuation.separator.function-arity.erlang" + } + }, + "name": "meta.expression.fun.implicit.erlang", + "patterns": [ + { + "include": "#everything-else" + } + ] + }, + { + "begin": "\\b(fun)\\s*+(\\()(?=(\\s*+\\())", + "beginCaptures": { + "1": { + "name": "entity.name.function.erlang" + }, + "2": { + "name": "punctuation.definition.parameters.begin.erlang" + } + }, + "comment": "Function type in type specification", + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.definition.parameters.end.erlang" + } + }, + "patterns": [ + { + "include": "#everything-else" + } + ] + }, + { + "begin": "\\b(fun)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.fun.erlang" + } + }, + "comment": "Explicit function expression", + "end": "\\b(end)\\b", + "endCaptures": { + "1": { + "name": "keyword.control.end.erlang" + } + }, + "name": "meta.expression.fun.erlang", + "patterns": [ + { + "begin": "(?=\\()", + "end": "(;)|(?=\\bend\\b)", + "endCaptures": { + "1": { + "name": "punctuation.separator.clauses.erlang" + } + }, + "patterns": [ + { + "include": "#internal-function-parts" + } + ] + }, + { + "include": "#everything-else" + } + ] + }, + { + "begin": "\\b(try)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.try.erlang" + } + }, + "end": "\\b(end)\\b", + "endCaptures": { + "1": { + "name": "keyword.control.end.erlang" + } + }, + "name": "meta.expression.try.erlang", + "patterns": [ + { + "include": "#internal-expression-punctuation" + }, + { + "include": "#everything-else" + } + ] + }, + { + "begin": "\\b(begin)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.begin.erlang" + } + }, + "end": "\\b(end)\\b", + "endCaptures": { + "1": { + "name": "keyword.control.end.erlang" + } + }, + "name": "meta.expression.begin.erlang", + "patterns": [ + { + "include": "#internal-expression-punctuation" + }, + { + "include": "#everything-else" + } + ] + }, + { + "begin": "\\b(maybe)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.maybe.erlang" + } + }, + "end": "\\b(end)\\b", + "endCaptures": { + "1": { + "name": "keyword.control.end.erlang" + } + }, + "name": "meta.expression.maybe.erlang", + "patterns": [ + { + "include": "#internal-expression-punctuation" + }, + { + "include": "#everything-else" + } + ] + } + ] + }, + "function": { + "begin": "^\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(?=\\()", + "beginCaptures": { + "1": { + "name": "entity.name.function.definition.erlang" + } + }, + "end": "(\\.)", + "endCaptures": { + "1": { + "name": "punctuation.terminator.function.erlang" + } + }, + "name": "meta.function.erlang", + "patterns": [ + { + "captures": { + "1": { + "name": "entity.name.function.erlang" + } + }, + "match": "^\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(?=\\()" + }, + { + "begin": "(?=\\()", + "end": "(;)|(?=\\.)", + "endCaptures": { + "1": { + "name": "punctuation.separator.clauses.erlang" + } + }, + "patterns": [ + { + "include": "#parenthesized-expression" + }, + { + "include": "#internal-function-parts" + } + ] + }, + { + "include": "#everything-else" + } + ] + }, + "function-call": { + "begin": "(?=([a-z][a-zA-Z\\d@_]*+|'[^']*+'|_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+)\\s*+(\\(|:\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+'|_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+)\\s*+\\())", + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.definition.parameters.end.erlang" + } + }, + "name": "meta.function-call.erlang", + "patterns": [ + { + "begin": "((erlang)\\s*+(:)\\s*+)?(is_atom|is_binary|is_constant|is_float|is_function|is_integer|is_list|is_number|is_pid|is_port|is_reference|is_tuple|is_record|abs|element|hd|length|node|round|self|size|tl|trunc)\\s*+(\\()", + "beginCaptures": { + "2": { + "name": "entity.name.type.class.module.erlang" + }, + "3": { + "name": "punctuation.separator.module-function.erlang" + }, + "4": { + "name": "entity.name.function.guard.erlang" + }, + "5": { + "name": "punctuation.definition.parameters.begin.erlang" + } + }, + "end": "(?=\\))", + "patterns": [ + { + "match": ",", + "name": "punctuation.separator.parameters.erlang" + }, + { + "include": "#everything-else" + } + ] + }, + { + "begin": "((([a-z][a-zA-Z\\d@_]*+|'[^']*+')|(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+))\\s*+(:)\\s*+)?(([a-z][a-zA-Z\\d@_]*+|'[^']*+')|(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+))\\s*+(\\()", + "beginCaptures": { + "3": { + "name": "entity.name.type.class.module.erlang" + }, + "4": { + "name": "variable.other.erlang" + }, + "5": { + "name": "punctuation.separator.module-function.erlang" + }, + "7": { + "name": "entity.name.function.erlang" + }, + "8": { + "name": "variable.other.erlang" + }, + "9": { + "name": "punctuation.definition.parameters.begin.erlang" + } + }, + "end": "(?=\\))", + "patterns": [ + { + "match": ",", + "name": "punctuation.separator.parameters.erlang" + }, + { + "include": "#everything-else" + } + ] + } + ] + }, + "import-export-directive": { + "patterns": [ + { + "begin": "^\\s*+(-)\\s*+(import)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(,)", + "beginCaptures": { + "1": { + "name": "punctuation.section.directive.begin.erlang" + }, + "2": { + "name": "keyword.control.directive.import.erlang" + }, + "3": { + "name": "punctuation.definition.parameters.begin.erlang" + }, + "4": { + "name": "entity.name.type.class.module.erlang" + }, + "5": { + "name": "punctuation.separator.parameters.erlang" + } + }, + "end": "(\\))\\s*+(\\.)", + "endCaptures": { + "1": { + "name": "punctuation.definition.parameters.end.erlang" + }, + "2": { + "name": "punctuation.section.directive.end.erlang" + } + }, + "name": "meta.directive.import.erlang", + "patterns": [ + { + "include": "#internal-function-list" + } + ] + }, + { + "begin": "^\\s*+(-)\\s*+(export)\\s*+(\\()", + "beginCaptures": { + "1": { + "name": "punctuation.section.directive.begin.erlang" + }, + "2": { + "name": "keyword.control.directive.export.erlang" + }, + "3": { + "name": "punctuation.definition.parameters.begin.erlang" + } + }, + "end": "(\\))\\s*+(\\.)", + "endCaptures": { + "1": { + "name": "punctuation.definition.parameters.end.erlang" + }, + "2": { + "name": "punctuation.section.directive.end.erlang" + } + }, + "name": "meta.directive.export.erlang", + "patterns": [ + { + "include": "#internal-function-list" + } + ] + } + ] + }, + "internal-expression-punctuation": { + "captures": { + "1": { + "name": "punctuation.separator.clause-head-body.erlang" + }, + "2": { + "name": "punctuation.separator.clauses.erlang" + }, + "3": { + "name": "punctuation.separator.expressions.erlang" + } + }, + "match": "(->)|(;)|(,)" + }, + "internal-function-list": { + "begin": "(\\[)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.list.begin.erlang" + } + }, + "end": "(\\])", + "endCaptures": { + "1": { + "name": "punctuation.definition.list.end.erlang" + } + }, + "name": "meta.structure.list.function.erlang", + "patterns": [ + { + "begin": "([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(/)", + "beginCaptures": { + "1": { + "name": "entity.name.function.erlang" + }, + "2": { + "name": "punctuation.separator.function-arity.erlang" + } + }, + "end": "(,)|(?=\\])", + "endCaptures": { + "1": { + "name": "punctuation.separator.list.erlang" + } + }, + "patterns": [ + { + "include": "#everything-else" + } + ] + }, + { + "include": "#everything-else" + } + ] + }, + "internal-function-parts": { + "patterns": [ + { + "begin": "(?=\\()", + "end": "(->)", + "endCaptures": { + "1": { + "name": "punctuation.separator.clause-head-body.erlang" + } + }, + "patterns": [ + { + "begin": "(\\()", + "beginCaptures": { + "1": { + "name": "punctuation.definition.parameters.begin.erlang" + } + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.definition.parameters.end.erlang" + } + }, + "patterns": [ + { + "match": ",", + "name": "punctuation.separator.parameters.erlang" + }, + { + "include": "#everything-else" + } + ] + }, + { + "match": ",|;", + "name": "punctuation.separator.guards.erlang" + }, + { + "include": "#everything-else" + } + ] + }, + { + "match": ",", + "name": "punctuation.separator.expressions.erlang" + }, + { + "include": "#everything-else" + } + ] + }, + "internal-record-body": { + "begin": "(\\{)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.class.record.begin.erlang" + } + }, + "end": "(\\})", + "endCaptures": { + "1": { + "name": "punctuation.definition.class.record.end.erlang" + } + }, + "name": "meta.structure.record.erlang", + "patterns": [ + { + "begin": "(([a-z][a-zA-Z\\d@_]*+|'[^']*+')|(_))", + "beginCaptures": { + "2": { + "name": "variable.other.field.erlang" + }, + "3": { + "name": "variable.language.omitted.field.erlang" + } + }, + "end": "(,)|(?=\\})", + "endCaptures": { + "1": { + "name": "punctuation.separator.class.record.erlang" + } + }, + "patterns": [ + { + "include": "#everything-else" + } + ] + }, + { + "include": "#everything-else" + } + ] + }, + "internal-type-specifiers": { + "begin": "(/)", + "beginCaptures": { + "1": { + "name": "punctuation.separator.value-type.erlang" + } + }, + "end": "(?=,|:|>>)", + "patterns": [ + { + "captures": { + "1": { + "name": "storage.type.erlang" + }, + "2": { + "name": "storage.modifier.signedness.erlang" + }, + "3": { + "name": "storage.modifier.endianness.erlang" + }, + "4": { + "name": "storage.modifier.unit.erlang" + }, + "5": { + "name": "punctuation.separator.unit-specifiers.erlang" + }, + "6": { + "name": "constant.numeric.integer.decimal.erlang" + }, + "7": { + "name": "punctuation.separator.type-specifiers.erlang" + } + }, + "match": "(integer|float|binary|bytes|bitstring|bits|utf8|utf16|utf32)|(signed|unsigned)|(big|little|native)|(unit)(:)(\\d++)|(-)" + } + ] + }, + "keyword": { + "match": "\\b(after|begin|case|catch|cond|end|fun|if|let|of|try|receive|when|maybe|else)\\b", + "name": "keyword.control.erlang" + }, + "language-constant": { + "match": "\\b(false|true|undefined)\\b", + "name": "constant.language" + }, + "list": { + "begin": "(\\[)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.list.begin.erlang" + } + }, + "end": "(\\])", + "endCaptures": { + "1": { + "name": "punctuation.definition.list.end.erlang" + } + }, + "name": "meta.structure.list.erlang", + "patterns": [ + { + "match": "\\||\\|\\||,", + "name": "punctuation.separator.list.erlang" + }, + { + "include": "#everything-else" + } + ] + }, + "macro-directive": { + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.section.directive.begin.erlang" + }, + "2": { + "name": "keyword.control.directive.ifdef.erlang" + }, + "3": { + "name": "punctuation.definition.parameters.begin.erlang" + }, + "4": { + "name": "entity.name.function.macro.erlang" + }, + "5": { + "name": "punctuation.definition.parameters.end.erlang" + }, + "6": { + "name": "punctuation.section.directive.end.erlang" + } + }, + "match": "^\\s*+(-)\\s*+(ifdef)\\s*+(\\()\\s*+([a-zA-z\\d@_]++)\\s*+(\\))\\s*+(\\.)", + "name": "meta.directive.ifdef.erlang" + }, + { + "captures": { + "1": { + "name": "punctuation.section.directive.begin.erlang" + }, + "2": { + "name": "keyword.control.directive.ifndef.erlang" + }, + "3": { + "name": "punctuation.definition.parameters.begin.erlang" + }, + "4": { + "name": "entity.name.function.macro.erlang" + }, + "5": { + "name": "punctuation.definition.parameters.end.erlang" + }, + "6": { + "name": "punctuation.section.directive.end.erlang" + } + }, + "match": "^\\s*+(-)\\s*+(ifndef)\\s*+(\\()\\s*+([a-zA-z\\d@_]++)\\s*+(\\))\\s*+(\\.)", + "name": "meta.directive.ifndef.erlang" + }, + { + "captures": { + "1": { + "name": "punctuation.section.directive.begin.erlang" + }, + "2": { + "name": "keyword.control.directive.undef.erlang" + }, + "3": { + "name": "punctuation.definition.parameters.begin.erlang" + }, + "4": { + "name": "entity.name.function.macro.erlang" + }, + "5": { + "name": "punctuation.definition.parameters.end.erlang" + }, + "6": { + "name": "punctuation.section.directive.end.erlang" + } + }, + "match": "^\\s*+(-)\\s*+(undef)\\s*+(\\()\\s*+([a-zA-z\\d@_]++)\\s*+(\\))\\s*+(\\.)", + "name": "meta.directive.undef.erlang" + } + ] + }, + "macro-usage": { + "captures": { + "1": { + "name": "keyword.operator.macro.erlang" + }, + "2": { + "name": "entity.name.function.macro.erlang" + } + }, + "match": "(\\?\\??)\\s*+([a-zA-Z\\d@_]++)", + "name": "meta.macro-usage.erlang" + }, + "module-directive": { + "captures": { + "1": { + "name": "punctuation.section.directive.begin.erlang" + }, + "2": { + "name": "keyword.control.directive.module.erlang" + }, + "3": { + "name": "punctuation.definition.parameters.begin.erlang" + }, + "4": { + "name": "entity.name.type.class.module.definition.erlang" + }, + "5": { + "name": "punctuation.definition.parameters.end.erlang" + }, + "6": { + "name": "punctuation.section.directive.end.erlang" + } + }, + "match": "^\\s*+(-)\\s*+(module)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+)\\s*+(\\))\\s*+(\\.)", + "name": "meta.directive.module.erlang" + }, + "number": { + "begin": "(?=\\d)", + "end": "(?!\\d)", + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.separator.integer-float.erlang" + }, + "2": { + "name": "punctuation.separator.float-exponent.erlang" + } + }, + "match": "\\d++(\\.)\\d++([eE][\\+\\-]?\\d++)?", + "name": "constant.numeric.float.erlang" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.base-integer.erlang" + } + }, + "match": "2(#)([0-1]++_)*[0-1]++", + "name": "constant.numeric.integer.binary.erlang" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.base-integer.erlang" + } + }, + "match": "3(#)([0-2]++_)*[0-2]++", + "name": "constant.numeric.integer.base-3.erlang" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.base-integer.erlang" + } + }, + "match": "4(#)([0-3]++_)*[0-3]++", + "name": "constant.numeric.integer.base-4.erlang" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.base-integer.erlang" + } + }, + "match": "5(#)([0-4]++_)*[0-4]++", + "name": "constant.numeric.integer.base-5.erlang" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.base-integer.erlang" + } + }, + "match": "6(#)([0-5]++_)*[0-5]++", + "name": "constant.numeric.integer.base-6.erlang" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.base-integer.erlang" + } + }, + "match": "7(#)([0-6]++_)*[0-6]++", + "name": "constant.numeric.integer.base-7.erlang" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.base-integer.erlang" + } + }, + "match": "8(#)([0-7]++_)*[0-7]++", + "name": "constant.numeric.integer.octal.erlang" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.base-integer.erlang" + } + }, + "match": "9(#)([0-8]++_)*[0-8]++", + "name": "constant.numeric.integer.base-9.erlang" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.base-integer.erlang" + } + }, + "match": "10(#)(\\d++_)*\\d++", + "name": "constant.numeric.integer.decimal.erlang" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.base-integer.erlang" + } + }, + "match": "11(#)([\\daA]++_)*[\\daA]++", + "name": "constant.numeric.integer.base-11.erlang" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.base-integer.erlang" + } + }, + "match": "12(#)([\\da-bA-B]++_)*[\\da-bA-B]++", + "name": "constant.numeric.integer.base-12.erlang" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.base-integer.erlang" + } + }, + "match": "13(#)([\\da-cA-C]++_)*[\\da-cA-C]++", + "name": "constant.numeric.integer.base-13.erlang" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.base-integer.erlang" + } + }, + "match": "14(#)([\\da-dA-D]++_)*[\\da-dA-D]++", + "name": "constant.numeric.integer.base-14.erlang" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.base-integer.erlang" + } + }, + "match": "15(#)([\\da-eA-E]++_)*[\\da-eA-E]++", + "name": "constant.numeric.integer.base-15.erlang" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.base-integer.erlang" + } + }, + "match": "16(#)([\\da-fA-F]++_)*[\\da-fA-F]++", + "name": "constant.numeric.integer.hexadecimal.erlang" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.base-integer.erlang" + } + }, + "match": "17(#)([\\da-gA-G]++_)*[\\da-gA-G]++", + "name": "constant.numeric.integer.base-17.erlang" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.base-integer.erlang" + } + }, + "match": "18(#)([\\da-hA-H]++_)*[\\da-hA-H]++", + "name": "constant.numeric.integer.base-18.erlang" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.base-integer.erlang" + } + }, + "match": "19(#)([\\da-iA-I]++_)*[\\da-iA-I]++", + "name": "constant.numeric.integer.base-19.erlang" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.base-integer.erlang" + } + }, + "match": "20(#)([\\da-jA-J]++_)*[\\da-jA-J]++", + "name": "constant.numeric.integer.base-20.erlang" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.base-integer.erlang" + } + }, + "match": "21(#)([\\da-kA-K]++_)*[\\da-kA-K]++", + "name": "constant.numeric.integer.base-21.erlang" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.base-integer.erlang" + } + }, + "match": "22(#)([\\da-lA-L]++_)*[\\da-lA-L]++", + "name": "constant.numeric.integer.base-22.erlang" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.base-integer.erlang" + } + }, + "match": "23(#)([\\da-mA-M]++_)*[\\da-mA-M]++", + "name": "constant.numeric.integer.base-23.erlang" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.base-integer.erlang" + } + }, + "match": "24(#)([\\da-nA-N]++_)*[\\da-nA-N]++", + "name": "constant.numeric.integer.base-24.erlang" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.base-integer.erlang" + } + }, + "match": "25(#)([\\da-oA-O]++_)*[\\da-oA-O]++", + "name": "constant.numeric.integer.base-25.erlang" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.base-integer.erlang" + } + }, + "match": "26(#)([\\da-pA-P]++_)*[\\da-pA-P]++", + "name": "constant.numeric.integer.base-26.erlang" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.base-integer.erlang" + } + }, + "match": "27(#)([\\da-qA-Q]++_)*[\\da-qA-Q]++", + "name": "constant.numeric.integer.base-27.erlang" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.base-integer.erlang" + } + }, + "match": "28(#)([\\da-rA-R]++_)*[\\da-rA-R]++", + "name": "constant.numeric.integer.base-28.erlang" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.base-integer.erlang" + } + }, + "match": "29(#)([\\da-sA-S]++_)*[\\da-sA-S]++", + "name": "constant.numeric.integer.base-29.erlang" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.base-integer.erlang" + } + }, + "match": "30(#)([\\da-tA-T]++_)*[\\da-tA-T]++", + "name": "constant.numeric.integer.base-30.erlang" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.base-integer.erlang" + } + }, + "match": "31(#)([\\da-uA-U]++_)*[\\da-uA-U]++", + "name": "constant.numeric.integer.base-31.erlang" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.base-integer.erlang" + } + }, + "match": "32(#)([\\da-vA-V]++_)*[\\da-vA-V]++", + "name": "constant.numeric.integer.base-32.erlang" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.base-integer.erlang" + } + }, + "match": "33(#)([\\da-wA-W]++_)*[\\da-wA-W]++", + "name": "constant.numeric.integer.base-33.erlang" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.base-integer.erlang" + } + }, + "match": "34(#)([\\da-xA-X]++_)*[\\da-xA-X]++", + "name": "constant.numeric.integer.base-34.erlang" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.base-integer.erlang" + } + }, + "match": "35(#)([\\da-yA-Y]++_)*[\\da-yA-Y]++", + "name": "constant.numeric.integer.base-35.erlang" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.base-integer.erlang" + } + }, + "match": "36(#)([\\da-zA-Z]++_)*[\\da-zA-Z]++", + "name": "constant.numeric.integer.base-36.erlang" + }, + { + "match": "\\d++#([\\da-zA-Z]++_)*[\\da-zA-Z]++", + "name": "invalid.illegal.integer.erlang" + }, + { + "match": "(\\d++_)*\\d++", + "name": "constant.numeric.integer.decimal.erlang" + } + ] + }, + "parenthesized-expression": { + "begin": "(\\()", + "beginCaptures": { + "1": { + "name": "punctuation.section.expression.begin.erlang" + } + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.section.expression.end.erlang" + } + }, + "name": "meta.expression.parenthesized", + "patterns": [ + { + "include": "#everything-else" + } + ] + }, + "record-directive": { + "begin": "^\\s*+(-)\\s*+(record)\\s*+(\\()\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(,)", + "beginCaptures": { + "1": { + "name": "punctuation.section.directive.begin.erlang" + }, + "2": { + "name": "keyword.control.directive.import.erlang" + }, + "3": { + "name": "punctuation.definition.parameters.begin.erlang" + }, + "4": { + "name": "entity.name.type.class.record.definition.erlang" + }, + "5": { + "name": "punctuation.separator.parameters.erlang" + } + }, + "end": "(\\))\\s*+(\\.)", + "endCaptures": { + "1": { + "name": "punctuation.definition.parameters.end.erlang" + }, + "2": { + "name": "punctuation.section.directive.end.erlang" + } + }, + "name": "meta.directive.record.erlang", + "patterns": [ + { + "include": "#internal-record-body" + }, + { + "include": "#comment" + } + ] + }, + "record-usage": { + "patterns": [ + { + "captures": { + "1": { + "name": "keyword.operator.record.erlang" + }, + "2": { + "name": "entity.name.type.class.record.erlang" + }, + "3": { + "name": "punctuation.separator.record-field.erlang" + }, + "4": { + "name": "variable.other.field.erlang" + } + }, + "match": "(#)\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')\\s*+(\\.)\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')", + "name": "meta.record-usage.erlang" + }, + { + "begin": "(#)\\s*+([a-z][a-zA-Z\\d@_]*+|'[^']*+')", + "beginCaptures": { + "1": { + "name": "keyword.operator.record.erlang" + }, + "2": { + "name": "entity.name.type.class.record.erlang" + } + }, + "end": "(?<=\\})", + "name": "meta.record-usage.erlang", + "patterns": [ + { + "include": "#internal-record-body" + } + ] + } + ] + }, + "string": { + "begin": "(\")", + "beginCaptures": { + "1": { + "name": "punctuation.definition.string.begin.erlang" + } + }, + "end": "(\")", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.erlang" + } + }, + "name": "string.quoted.double.erlang", + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.escape.erlang" + }, + "3": { + "name": "punctuation.definition.escape.erlang" + } + }, + "match": "(\\\\)([bdefnrstv\\\\'\"]|(\\^)[@-_a-z]|[0-7]{1,3}|x[\\da-fA-F]{2})", + "name": "constant.character.escape.erlang" + }, + { + "match": "\\\\\\^?.?", + "name": "invalid.illegal.string.erlang" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.placeholder.erlang" + }, + "3": { + "name": "punctuation.separator.placeholder-parts.erlang" + }, + "4": { + "name": "punctuation.separator.placeholder-parts.erlang" + }, + "6": { + "name": "punctuation.separator.placeholder-parts.erlang" + }, + "8": { + "name": "punctuation.separator.placeholder-parts.erlang" + }, + "10": { + "name": "punctuation.separator.placeholder-parts.erlang" + }, + "12": { + "name": "punctuation.separator.placeholder-parts.erlang" + } + }, + "match": "(~)((\\-)?\\d++|(\\*))?((\\.)(\\d++|(\\*)))?((\\.)((\\*)|.))?[~cfegswpWPBX#bx\\+ni]", + "name": "constant.other.placeholder.erlang" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.placeholder.erlang" + }, + "2": { + "name": "punctuation.separator.placeholder-parts.erlang" + } + }, + "match": "(~)(\\*)?(\\d++)?[~du\\-#fsacl]", + "name": "constant.other.placeholder.erlang" + }, + { + "match": "~[^\"]?", + "name": "invalid.illegal.string.erlang" + } + ] + }, + "symbolic-operator": { + "match": "\\+\\+|\\+|--|-|\\*|/=|/|=/=|=:=|==|=<|=|<-|<|>=|>|!|::|\\?=", + "name": "keyword.operator.symbolic.erlang" + }, + "textual-operator": { + "match": "\\b(andalso|band|and|bxor|xor|bor|orelse|or|bnot|not|bsl|bsr|div|rem)\\b", + "name": "keyword.operator.textual.erlang" + }, + "tuple": { + "begin": "(\\{)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tuple.begin.erlang" + } + }, + "end": "(\\})", + "endCaptures": { + "1": { + "name": "punctuation.definition.tuple.end.erlang" + } + }, + "name": "meta.structure.tuple.erlang", + "patterns": [ + { + "match": ",", + "name": "punctuation.separator.tuple.erlang" + }, + { + "include": "#everything-else" + } + ] + }, + "variable": { + "captures": { + "1": { + "name": "variable.other.erlang" + }, + "2": { + "name": "variable.language.omitted.erlang" + } + }, + "match": "(_[a-zA-Z\\d@_]++|[A-Z][a-zA-Z\\d@_]*+)|(_)" + } + }, + "scopeName": "source.erlang", + "uuid": "58EA597D-5158-4BF7-9FB2-B05135D1E166" +} diff --git a/docs/shiki/languages/fish.tmLanguage.json b/docs/shiki/languages/fish.tmLanguage.json new file mode 100644 index 00000000..235909b2 --- /dev/null +++ b/docs/shiki/languages/fish.tmLanguage.json @@ -0,0 +1,189 @@ +{ + "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", + "fileTypes": ["fish"], + "firstLineMatch": "^#!.*\\bfish\\b", + "foldingStartMarker": "^\\s*(function|while|if|switch|for|begin)\\s.*$", + "foldingStopMarker": "^\\s*end\\s*$", + "keyEquivalent": "^~F", + "name": "fish", + "patterns": [ + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.fish" + } + }, + "comment": "Double quoted string", + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.fish" + } + }, + "name": "string.quoted.double.fish", + "patterns": [ + { + "include": "#variable" + }, + { + "comment": "https://fishshell.com/docs/current/#quotes", + "match": "\\\\(\\\"|\\$|$|\\\\)", + "name": "constant.character.escape.fish" + } + ] + }, + { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.fish" + } + }, + "comment": "Single quoted string", + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.fish" + } + }, + "name": "string.quoted.single.fish", + "patterns": [ + { + "comment": "https://fishshell.com/docs/current/#quotes", + "match": "\\\\('|`|\\\\)", + "name": "constant.character.escape.fish" + } + ] + }, + { + "captures": { + "1": { + "name": "punctuation.definition.comment.fish" + } + }, + "comment": "line comment", + "match": "(?<!\\$)(#)(?!\\{).*$\\n?", + "name": "comment.line.number-sign.fish" + }, + { + "comment": "name of command, either a function or a binary", + "match": "(^\\s*|&&\\s*|\\|\\s*|\\(\\s*|[;]\\s*|\\b(if|while)\\b\\s+)(?!(?<!\\.)\\b(function|while|if|else|switch|case|for|in|begin|end|continue|break|return|source|exit|wait|and|or|not)\\b(?![?!]))([a-zA-Z_\\-0-9\\[\\].]+)", + "captures": { + "2": { + "name": "keyword.control.fish" + }, + "4": { + "name": "support.function.command.fish" + } + } + }, + { + "comment": "keywords that affect control flow", + "match": "(?<!\\.)\\b(function|while|if|else|switch|case|for|in|begin|end|continue|break|return|source|exit|wait|and|or|not)\\b(?![?!])", + "name": "keyword.control.fish" + }, + { + "match": "(?<!\\.)\\bfunction\\b(?![?!])", + "name": "storage.type.fish" + }, + { + "match": "\\|", + "name": "keyword.operator.pipe.fish" + }, + { + "comment": "IO Redirection", + "match": "(?x:\n<|# Standard Input\n(>|\\^|>>|\\^\\^)(&[012\\-])?| # Redirection of stderr\n[012](<|>|>>)(&[012\\-])? # Redirect input/output of file descriptors\n)", + "name": "keyword.operator.redirect.fish" + }, + { + "match": "&", + "name": "keyword.operator.background.fish" + }, + { + "match": "\\*\\*|\\*|\\?", + "name": "keyword.operator.glob.fish" + }, + { + "comment": "command short/long options", + "match": "\\s(-{1,2}[a-zA-Z_\\-0-9]+|-\\w)\\b", + "captures": { + "1": { + "name": "source.option.fish" + } + } + }, + { + "include": "#variable" + }, + { + "include": "#escape" + } + ], + "repository": { + "escape": { + "patterns": [ + { + "comment": "single character character escape sequences", + "match": "\\\\[abefnrtv $*?~#(){}\\[\\]<>^&|;\"']", + "name": "constant.character.escape.single.fish" + }, + { + "comment": "escapes the ascii character with the specified value (hexadecimal)", + "match": "\\\\x[0-9a-fA-F]{1,2}", + "name": "constant.character.escape.hex-ascii.fish" + }, + { + "comment": "escapes a byte of data with the specified value (hexadecimal). If you are using mutibyte encoding, this can be used to enter invalid strings. Only use this if you know what are doing.", + "match": "\\\\X[0-9a-fA-F]{1,2}", + "name": "constant.character.escape.hex-byte.fish" + }, + { + "comment": "escapes the ascii character with the specified value (octal)", + "match": "\\\\[0-7]{1,3}", + "name": "constant.character.escape.octal.fish" + }, + { + "comment": "escapes the 16-bit unicode character with the specified value (hexadecimal)", + "match": "\\\\u[0-9a-fA-F]{1,4}", + "name": "constant.character.escape.unicode-16-bit.fish" + }, + { + "comment": "escapes the 32-bit unicode character with the specified value (hexadecimal)", + "match": "\\\\U[0-9a-fA-F]{1,8}", + "name": "constant.character.escape.unicode-32-bit.fish" + }, + { + "comment": "escapes the control sequence generated by pressing the control key and the specified letter", + "match": "\\\\c[a-zA-Z]", + "name": "constant.character.escape.control.fish" + } + ] + }, + "variable": { + "patterns": [ + { + "comment": "Built-in variables visible by pressing $ TAB TAB in a new shell", + "captures": { + "1": { + "name": "punctuation.definition.variable.fish" + } + }, + "match": "(\\$)(argv|CMD_DURATION|COLUMNS|fish_bind_mode|fish_color_autosuggestion|fish_color_cancel|fish_color_command|fish_color_comment|fish_color_cwd|fish_color_cwd_root|fish_color_end|fish_color_error|fish_color_escape|fish_color_hg_added|fish_color_hg_clean|fish_color_hg_copied|fish_color_hg_deleted|fish_color_hg_dirty|fish_color_hg_modified|fish_color_hg_renamed|fish_color_hg_unmerged|fish_color_hg_untracked|fish_color_history_current|fish_color_host|fish_color_host_remote|fish_color_match|fish_color_normal|fish_color_operator|fish_color_param|fish_color_quote|fish_color_redirection|fish_color_search_match|fish_color_selection|fish_color_status|fish_color_user|fish_color_valid_path|fish_complete_path|fish_function_path|fish_greeting|fish_key_bindings|fish_pager_color_completion|fish_pager_color_description|fish_pager_color_prefix|fish_pager_color_progress|fish_pid|fish_prompt_hg_status_added|fish_prompt_hg_status_copied|fish_prompt_hg_status_deleted|fish_prompt_hg_status_modified|fish_prompt_hg_status_order|fish_prompt_hg_status_unmerged|fish_prompt_hg_status_untracked|FISH_VERSION|history|hostname|IFS|LINES|pipestatus|status|umask|version)\\b", + "name": "variable.language.fish" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.variable.fish" + } + }, + "match": "(\\$)[a-zA-Z_][a-zA-Z0-9_]*", + "name": "variable.other.normal.fish" + } + ] + } + }, + "scopeName": "source.fish", + "uuid": "9CA6DB6F-A16F-4836-A058-617C7378775D" +} diff --git a/docs/shiki/languages/fsharp.tmLanguage.json b/docs/shiki/languages/fsharp.tmLanguage.json new file mode 100644 index 00000000..749b3696 --- /dev/null +++ b/docs/shiki/languages/fsharp.tmLanguage.json @@ -0,0 +1,1835 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/ionide/ionide-fsgrammar/blob/master/grammars/fsharp.json", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/ionide/ionide-fsgrammar/commit/8740e610a367c5e3f15be716acc7207655ced4cf", + "name": "fsharp", + "scopeName": "source.fsharp", + "patterns": [ + { + "include": "#compiler_directives" + }, + { + "include": "#comments" + }, + { + "include": "#constants" + }, + { + "include": "#strings" + }, + { + "include": "#chars" + }, + { + "include": "#double_tick" + }, + { + "include": "#definition" + }, + { + "include": "#abstract_definition" + }, + { + "include": "#attributes" + }, + { + "include": "#modules" + }, + { + "include": "#anonymous_functions" + }, + { + "include": "#du_declaration" + }, + { + "include": "#record_declaration" + }, + { + "include": "#records" + }, + { + "include": "#strp_inlined" + }, + { + "include": "#keywords" + }, + { + "include": "#cexprs" + }, + { + "include": "#text" + } + ], + "repository": { + "strp_inlined_body": { + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#anonymous_functions" + }, + { + "match": "(\\^[[:alpha:]0-9'._]+)", + "captures": { + "1": { + "name": "entity.name.type.fsharp" + } + } + }, + { + "name": "keyword.fsharp", + "match": "\\b(and|when|or)\\b" + }, + { + "begin": "(\\()", + "beginCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + } + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + } + }, + "patterns": [ + { + "include": "#strp_inlined_body" + } + ] + }, + { + "match": "(static member|member)\\s*([[:alpha:]0-9'`<>^._]+|``[[:alpha:]0-9' <>^._]+``)\\s*(:)", + "captures": { + "1": { + "name": "keyword.fsharp" + }, + "2": { + "name": "variable.fsharp" + }, + "3": { + "name": "keyword.symbol.fsharp" + } + } + }, + { + "include": "#compiler_directives" + }, + { + "include": "#constants" + }, + { + "include": "#strings" + }, + { + "include": "#chars" + }, + { + "include": "#double_tick" + }, + { + "include": "#keywords" + }, + { + "include": "#text" + }, + { + "include": "#definition" + }, + { + "include": "#attributes" + }, + { + "include": "#keywords" + }, + { + "include": "#cexprs" + }, + { + "include": "#text" + } + ] + }, + "strp_inlined": { + "patterns": [ + { + "begin": "(\\()", + "beginCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + } + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + } + }, + "patterns": [ + { + "include": "#strp_inlined_body" + } + ] + } + ] + }, + "generic_declaration": { + "patterns": [ + { + "comments": "SRTP syntax support", + "begin": "(:)\\s*(\\()\\s*(static member|member)", + "beginCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + }, + "2": { + "name": "keyword.symbol.fsharp" + }, + "3": { + "name": "keyword.fsharp" + } + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + } + }, + "patterns": [ + { + "begin": "(\\()", + "beginCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + } + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + } + }, + "patterns": [ + { + "include": "#member_declaration" + } + ] + }, + { + "match": "(('|\\^)[[:alpha:]0-9'._]+)", + "captures": { + "1": { + "name": "entity.name.type.fsharp" + } + } + }, + { + "include": "#variables" + }, + { + "include": "#keywords" + } + ] + }, + { + "name": "keyword.fsharp", + "match": "\\b(private|to|public|internal|function|yield!|yield|class|exception|match|delegate|of|new|in|as|if|then|else|elif|for|begin|end|inherit|do|let\\!|return\\!|return|interface|with|abstract|enum|member|try|finally|and|when|or|use|use\\!|struct|while|mutable|assert|base|done|downcast|downto|extern|fixed|global|lazy|upcast|not)(?!')\\b" + }, + { + "name": "keyword.symbol.fsharp", + "match": ":" + }, + { + "include": "#constants" + }, + { + "match": "(('|\\^)[[:alpha:]0-9'._]+)", + "captures": { + "1": { + "name": "entity.name.type.fsharp" + } + } + }, + { + "begin": "(<)", + "end": "(>)", + "beginCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + } + }, + "patterns": [ + { + "match": "(('|\\^)[[:alpha:]0-9'._]+)", + "captures": { + "1": { + "name": "entity.name.type.fsharp" + } + } + }, + { + "include": "#tuple_signature" + }, + { + "include": "#generic_declaration" + } + ] + }, + { + "begin": "(\\()", + "end": "(\\))", + "beginCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + } + }, + "patterns": [ + { + "match": "(([?[:alpha:]0-9'`^._ ]+))+", + "captures": { + "1": { + "name": "entity.name.type.fsharp" + } + } + }, + { + "include": "#tuple_signature" + } + ] + }, + { + "match": "(?!when|and|or\\b)\\b([\\w0-9'`^._]+)", + "comments": "Here we need the \\w modifier in order to check that the words are allowed", + "captures": { + "1": { + "name": "entity.name.type.fsharp" + } + } + }, + { + "match": "(\\|)", + "comments": "Prevent captures of `|>` as a keyword when defining custom operator like `<|>`", + "captures": { + "1": { + "name": "keyword.symbol.fsharp" + } + } + }, + { + "include": "#keywords" + } + ] + }, + "anonymous_record_declaration": { + "begin": "(\\{\\|)", + "end": "(\\|\\})", + "beginCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + } + }, + "patterns": [ + { + "match": "[[:alpha:]0-9'`^_ ]+(:)", + "captures": { + "1": { + "name": "keyword.symbol.fsharp" + } + } + }, + { + "match": "([[:alpha:]0-9'`^_ ]+)", + "captures": { + "1": { + "name": "entity.name.type.fsharp" + } + } + }, + { + "include": "#anonymous_record_declaration" + }, + { + "include": "#keywords" + } + ] + }, + "record_signature": { + "patterns": [ + { + "match": "[[:alpha:]0-9'`^_ ]+(=)([[:alpha:]0-9'`^_ ]+)", + "captures": { + "1": { + "name": "keyword.symbol.fsharp" + }, + "2": { + "name": "variable.parameter.fsharp" + } + } + }, + { + "begin": "({)", + "end": "(})", + "beginCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + } + }, + "patterns": [ + { + "match": "[[:alpha:]0-9'`^_ ]+(=)([[:alpha:]0-9'`^_ ]+)", + "captures": { + "1": { + "name": "keyword.symbol.fsharp" + }, + "2": { + "name": "variable.parameter.fsharp" + } + } + }, + { + "include": "#record_signature" + } + ] + }, + { + "include": "#keywords" + } + ] + }, + "tuple_signature": { + "patterns": [ + { + "match": "(([?[:alpha:]0-9'`^._ ]+))+", + "captures": { + "1": { + "name": "entity.name.type.fsharp" + } + } + }, + { + "begin": "(\\()", + "end": "(\\))", + "beginCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + } + }, + "patterns": [ + { + "match": "(([?[:alpha:]0-9'`^._ ]+))+", + "captures": { + "1": { + "name": "entity.name.type.fsharp" + } + } + }, + { + "include": "#tuple_signature" + } + ] + }, + { + "include": "#keywords" + } + ] + }, + "anonymous_functions": { + "patterns": [ + { + "name": "function.anonymous", + "begin": "\\b(fun)\\b", + "end": "(->)", + "beginCaptures": { + "1": { + "name": "keyword.fsharp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.symbol.arrow.fsharp" + } + }, + "patterns": [ + { + "include": "#comments" + }, + { + "begin": "(\\()", + "end": "\\s*(?=(->))", + "beginCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.symbol.arrow.fsharp" + } + }, + "patterns": [ + { + "include": "#member_declaration" + } + ] + }, + { + "include": "#variables" + } + ] + } + ] + }, + "attributes": { + "patterns": [ + { + "name": "support.function.attribute.fsharp", + "begin": "\\[\\<", + "end": "\\>\\]|\\]", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + "comments": { + "patterns": [ + { + "name": "comment.literate.command.fsharp", + "match": "(\\(\\*{3}.*\\*{3}\\))", + "beginCaptures": { + "1": { + "name": "comment.block.fsharp" + } + } + }, + { + "name": "comment.block.markdown.fsharp", + "begin": "^\\s*(\\(\\*\\*(?!\\)))((?!\\*\\)).)*$", + "while": "^(?!\\s*(\\*)+\\)\\s*$)", + "beginCaptures": { + "1": { + "name": "comment.block.fsharp" + } + }, + "endCaptures": { + "1": { + "name": "comment.block.fsharp" + } + }, + "patterns": [ + { + "include": "text.html.markdown" + } + ] + }, + { + "name": "comment.block.fsharp", + "begin": "(\\(\\*(?!\\)))", + "end": "(\\*+\\))", + "beginCaptures": { + "1": { + "name": "comment.block.fsharp" + } + }, + "endCaptures": { + "1": { + "name": "comment.block.fsharp" + } + }, + "patterns": [ + { + "comments": "Capture // when inside of (* *) like that the rule which capture comments starting by // is not trigger. See https://github.com/ionide/ionide-fsgrammar/issues/155", + "name": "fast-capture.comment.line.double-slash.fsharp", + "match": "//" + }, + { + "include": "#comments" + } + ] + }, + { + "name": "comment.block.markdown.fsharp.end", + "match": "((?<!\\()(\\*)+\\))", + "captures": { + "1": { + "name": "comment.block.fsharp" + } + } + }, + { + "name": "comment.line.markdown.fsharp", + "begin": "///", + "while": "///", + "patterns": [ + { + "include": "text.html.markdown" + } + ] + }, + { + "name": "comment.line.double-slash.fsharp", + "match": "//.*$" + } + ] + }, + "constants": { + "patterns": [ + { + "name": "keyword.symbol.fsharp", + "match": "\\(\\)" + }, + { + "name": "constant.numeric.float.fsharp", + "match": "\\b-?[0-9][0-9_]*((\\.([0-9][0-9_]*([eE][+-]??[0-9][0-9_]*)?)?)|([eE][+-]??[0-9][0-9_]*))" + }, + { + "name": "constant.numeric.integer.nativeint.fsharp", + "match": "\\b(-?((0(x|X)[0-9a-fA-F][0-9a-fA-F_]*)|(0(o|O)[0-7][0-7_]*)|(0(b|B)[01][01_]*)|([0-9][0-9_]*)))" + }, + { + "name": "constant.language.boolean.fsharp", + "match": "\\b(true|false)\\b" + }, + { + "name": "constant.other.fsharp", + "match": "\\b(null|void)\\b" + } + ] + }, + "abstract_definition": { + "name": "abstract.definition.fsharp", + "begin": "\\b(abstract)\\s+(member)?(\\s+\\[\\<.*\\>\\])?\\s*([_[:alpha:]0-9,\\._`\\s]+)(:)", + "end": "\\s*(with)\\b|=|$", + "beginCaptures": { + "1": { + "name": "keyword.fsharp" + }, + "2": { + "name": "keyword.fsharp" + }, + "3": { + "name": "support.function.attribute.fsharp" + }, + "5": { + "name": "keyword.symbol.fsharp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.fsharp" + } + }, + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#common_declaration" + }, + { + "match": "(\\?{0,1})([[:alpha:]0-9'`^._ ]+)\\s*(:)((?!with\\b)\\b([\\w0-9'`^._ ]+)){0,1}", + "captures": { + "1": { + "name": "keyword.symbol.fsharp" + }, + "2": { + "name": "variable.parameter.fsharp" + }, + "3": { + "name": "keyword.symbol.fsharp" + }, + "4": { + "name": "entity.name.type.fsharp" + } + } + }, + { + "match": "(?!with|get|set\\b)\\b([\\w0-9'`^._]+)", + "comments": "Here we need the \\w modifier in order to check that the words isn't blacklisted", + "captures": { + "1": { + "name": "entity.name.type.fsharp" + } + } + }, + { + "include": "#keywords" + } + ] + }, + "common_binding_definition": { + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#attributes" + }, + { + "comments": "SRTP syntax support", + "begin": "(:)\\s*(\\()\\s*(static member|member)", + "beginCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + }, + "2": { + "name": "keyword.symbol.fsharp" + }, + "3": { + "name": "keyword.fsharp" + } + }, + "end": "(\\))\\s*((?=,)|(?=\\=))", + "endCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + } + }, + "patterns": [ + { + "match": "(\\^[[:alpha:]0-9'._]+)", + "captures": { + "1": { + "name": "entity.name.type.fsharp" + } + } + }, + { + "include": "#variables" + }, + { + "include": "#keywords" + } + ] + }, + { + "begin": "(:)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + }, + "2": { + "name": "keyword.symbol.fsharp" + } + }, + "end": "(\\)\\s*(([?[:alpha:]0-9'`^._ ]*)))", + "endCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + }, + "2": { + "name": "entity.name.type.fsharp" + } + }, + "patterns": [ + { + "include": "#tuple_signature" + } + ] + }, + { + "begin": "(:)\\s*(\\^[[:alpha:]0-9'._]+)\\s*(when)", + "beginCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + }, + "2": { + "name": "entity.name.type.fsharp" + }, + "3": { + "name": "keyword.fsharp" + } + }, + "end": "(?=:)", + "endCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + } + }, + "patterns": [ + { + "name": "keyword.fsharp", + "match": "\\b(and|when|or)\\b" + }, + { + "comment": "Because we first capture the keywords, we can capture what looks like a word and assume it's an entity definition", + "match": "([[:alpha:]0-9'^._]+)", + "captures": { + "1": { + "name": "entity.name.type.fsharp" + } + } + }, + { + "name": "keyword.symbol.fsharp", + "match": "(\\(|\\))" + } + ] + }, + { + "match": "(:)\\s*([?[:alpha:]0-9'`^._ ]+)", + "captures": { + "1": { + "name": "keyword.symbol.fsharp" + }, + "2": { + "name": "entity.name.type.fsharp" + } + } + }, + { + "match": "(->)\\s*(\\()?\\s*([?[:alpha:]0-9'`^._ ]+)*", + "captures": { + "1": { + "name": "keyword.symbol.arrow.fsharp" + }, + "2": { + "name": "keyword.symbol.fsharp" + }, + "3": { + "name": "entity.name.type.fsharp" + } + } + }, + { + "begin": "(\\*)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + }, + "2": { + "name": "keyword.symbol.fsharp" + } + }, + "end": "(\\)\\s*(([?[:alpha:]0-9'`^._ ]+))+)", + "endCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + }, + "2": { + "name": "entity.name.type.fsharp" + } + }, + "patterns": [ + { + "include": "#tuple_signature" + } + ] + }, + { + "begin": "(\\*)(\\s*([?[:alpha:]0-9'`^._ ]+))*", + "beginCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + }, + "2": { + "name": "entity.name.type.fsharp" + } + }, + "end": "(?==)|(?=\\))", + "endCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + } + }, + "patterns": [ + { + "include": "#tuple_signature" + } + ] + }, + { + "begin": "(<+(?![[:space:]]*\\)))", + "beginComment": "The group (?![[:space:]]*\\) is for protection against overload operator. static member (<)", + "end": "((?<!:)>|\\))", + "endComment": "The group (?<!:) prevent us from stopping on :> when using SRTP synthax", + "beginCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + } + }, + "patterns": [ + { + "include": "#generic_declaration" + } + ] + }, + { + "include": "#anonymous_record_declaration" + }, + { + "begin": "({)", + "end": "(})", + "beginCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + } + }, + "patterns": [ + { + "include": "#record_signature" + } + ] + }, + { + "include": "#definition" + }, + { + "include": "#variables" + }, + { + "include": "#keywords" + } + ] + }, + "definition": { + "patterns": [ + { + "name": "binding.fsharp", + "begin": "\\b(let mutable|static let mutable|static let|let inline|let|and|member val|static member inline|static member|default|member|override|let!)(\\s+rec|mutable)?(\\s+\\[\\<.*\\>\\])?\\s*(private|internal|public)?\\s+(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9\\._`\\s]+|(?<=,)\\s)*)?", + "end": "\\s*((with\\b)|(=|\\n+=|(?<=\\=)))", + "beginCaptures": { + "1": { + "name": "keyword.fsharp" + }, + "2": { + "name": "keyword.fsharp" + }, + "3": { + "name": "support.function.attribute.fsharp" + }, + "4": { + "name": "storage.modifier.fsharp" + }, + "5": { + "name": "variable.fsharp" + } + }, + "endCaptures": { + "2": { + "name": "keyword.fsharp" + }, + "3": { + "name": "keyword.symbol.fsharp" + } + }, + "patterns": [ + { + "include": "#common_binding_definition" + } + ] + }, + { + "name": "binding.fsharp", + "begin": "\\b(use|use!|and|and!)\\s+(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9\\._`\\s]+|(?<=,)\\s)*)?", + "end": "\\s*(=)", + "beginCaptures": { + "1": { + "name": "keyword.fsharp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + } + }, + "patterns": [ + { + "include": "#common_binding_definition" + } + ] + }, + { + "name": "binding.fsharp", + "begin": "(?<=with|and)\\s*\\b((get|set)\\s*(?=\\())(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9\\._`\\s]+|(?<=,)\\s)*)?", + "end": "\\s*(=|\\n+=|(?<=\\=))", + "beginCaptures": { + "4": { + "name": "variable.fsharp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + } + }, + "patterns": [ + { + "include": "#common_binding_definition" + } + ] + }, + { + "name": "binding.fsharp", + "begin": "\\b(static val mutable|val mutable|val)(\\s+rec|mutable)?(\\s+\\[\\<.*\\>\\])?\\s*(private|internal|public)?\\s+(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9,\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9,\\._`\\s]+|(?<=,)\\s)*)?", + "end": "\\n$", + "beginCaptures": { + "1": { + "name": "keyword.fsharp" + }, + "2": { + "name": "keyword.fsharp" + }, + "3": { + "name": "support.function.attribute.fsharp" + }, + "4": { + "name": "storage.modifier.fsharp" + }, + "5": { + "name": "variable.fsharp" + } + }, + "patterns": [ + { + "include": "#common_binding_definition" + } + ] + }, + { + "name": "binding.fsharp", + "begin": "\\b(new)\\b\\s+(\\()", + "end": "(\\))", + "beginCaptures": { + "1": { + "name": "keyword.fsharp" + }, + "2": { + "name": "keyword.symbol.fsharp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + } + }, + "patterns": [ + { + "include": "#common_binding_definition" + } + ] + } + ] + }, + "du_declaration": { + "patterns": [ + { + "name": "du_declaration.fsharp", + "begin": "\\b(of)\\b", + "end": "$|(\\|)", + "beginCaptures": { + "1": { + "name": "keyword.fsharp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + } + }, + "patterns": [ + { + "include": "#comments" + }, + { + "match": "([[:alpha:]0-9'`<>^._]+|``[[:alpha:]0-9' <>^._]+``)\\s*(:)\\s*([[:alpha:]0-9'`<>^._]+|``[[:alpha:]0-9' <>^._]+``)", + "captures": { + "1": { + "name": "variable.parameter.fsharp" + }, + "2": { + "name": "keyword.symbol.fsharp" + }, + "3": { + "name": "entity.name.type.fsharp" + } + } + }, + { + "match": "(``([[:alpha:]0-9'^._ ]+)``|[[:alpha:]0-9'`^._]+)", + "captures": { + "1": { + "name": "entity.name.type.fsharp" + } + } + }, + { + "include": "#anonymous_record_declaration" + }, + { + "include": "#keywords" + } + ] + } + ] + }, + "keywords": { + "patterns": [ + { + "name": "storage.modifier", + "match": "\\b(private|public|internal)\\b" + }, + { + "name": "keyword.fsharp", + "match": "\\b(private|to|public|internal|function|class|exception|delegate|of|new|as|begin|end|inherit|let!|interface|abstract|enum|member|and|when|or|use|use\\!|struct|mutable|assert|base|done|downcast|downto|extern|fixed|global|lazy|upcast|not)(?!')\\b" + }, + { + "name": "keyword.control", + "match": "\\b(match|yield|yield!|with|if|then|else|elif|for|in|return!|return|try|finally|while|do)(?!')\\b" + }, + { + "name": "keyword.symbol.arrow.fsharp", + "match": "(\\->|\\<\\-)" + }, + { + "name": "keyword.symbol.fsharp", + "match": "(&&&|\\|\\|\\||\\^\\^\\^|~~~|<<<|>>>|\\|>|:>|:\\?>|:|\\[|\\]|\\;|<>|=|@|\\|\\||&&|{|}|\\||_|\\.\\.|\\,|\\+|\\-|\\*|\\/|\\^|\\!|\\>|\\>\\=|\\>\\>|\\<|\\<\\=|\\(|\\)|\\<\\<)" + } + ] + }, + "modules": { + "patterns": [ + { + "name": "entity.name.section.fsharp", + "begin": "\\b(namespace global)|\\b(namespace|module)\\s*(public|internal|private|rec)?\\s+([[:alpha:]][[:alpha:]0-9'_. ]*)", + "end": "(\\s?=|\\s|$)", + "beginCaptures": { + "1": { + "name": "keyword.fsharp" + }, + "2": { + "name": "keyword.fsharp" + }, + "3": { + "name": "storage.modifier.fsharp" + }, + "4": { + "name": "entity.name.section.fsharp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + } + }, + "patterns": [ + { + "name": "entity.name.section.fsharp", + "match": "(\\.)([A-Z][[:alpha:]0-9'_]*)", + "captures": { + "1": { + "name": "punctuation.separator.namespace-reference.fsharp" + }, + "2": { + "name": "entity.name.section.fsharp" + } + } + } + ] + }, + { + "name": "namespace.open.fsharp", + "begin": "\\b(open type|open)\\s+([[:alpha:]][[:alpha:]0-9'_]*)(?=(\\.[A-Z][[:alpha:]0-9_]*)*)", + "end": "(\\s|$)", + "beginCaptures": { + "1": { + "name": "keyword.fsharp" + }, + "2": { + "name": "entity.name.section.fsharp" + } + }, + "patterns": [ + { + "name": "entity.name.section.fsharp", + "match": "(\\.)([[:alpha:]][[:alpha:]0-9'_]*)", + "captures": { + "1": { + "name": "punctuation.separator.namespace-reference.fsharp" + }, + "2": { + "name": "entity.name.section.fsharp" + } + } + }, + { + "include": "#comments" + } + ] + }, + { + "name": "namespace.alias.fsharp", + "begin": "^\\s*(module)\\s+([A-Z][[:alpha:]0-9'_]*)\\s*(=)\\s*([A-Z][[:alpha:]0-9'_]*)", + "end": "(\\s|$)", + "beginCaptures": { + "1": { + "name": "keyword.fsharp" + }, + "2": { + "name": "entity.name.type.namespace.fsharp" + }, + "3": { + "name": "keyword.symbol.fsharp" + }, + "4": { + "name": "entity.name.section.fsharp" + } + }, + "patterns": [ + { + "name": "entity.name.section.fsharp", + "match": "(\\.)([A-Z][[:alpha:]0-9'_]*)", + "captures": { + "1": { + "name": "punctuation.separator.namespace-reference.fsharp" + }, + "2": { + "name": "entity.name.section.fsharp" + } + } + } + ] + } + ] + }, + "strings": { + "patterns": [ + { + "name": "string.quoted.literal.fsharp", + "begin": "(?=[^\\\\])(@\")", + "end": "(\")(?!\")", + "beginCaptures": { + "1": { + "name": "punctuation.definition.string.begin.fsharp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.fsharp" + } + }, + "patterns": [ + { + "name": "constant.character.string.escape.fsharp", + "match": "\"(\")" + } + ] + }, + { + "name": "string.quoted.triple.fsharp", + "begin": "(?=[^\\\\])(\"\"\")", + "end": "(\"\"\")", + "beginCaptures": { + "1": { + "name": "punctuation.definition.string.begin.fsharp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.fsharp" + } + }, + "patterns": [ + { + "include": "#string_formatter" + } + ] + }, + { + "name": "string.quoted.double.fsharp", + "begin": "(?=[^\\\\])(\")", + "end": "(\")", + "beginCaptures": { + "1": { + "name": "punctuation.definition.string.begin.fsharp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.fsharp" + } + }, + "patterns": [ + { + "name": "punctuation.separator.string.ignore-eol.fsharp", + "match": "\\\\$[ \\t]*" + }, + { + "name": "constant.character.string.escape.fsharp", + "match": "\\\\(['\"\\\\abfnrtv]|([01][0-9][0-9]|2[0-4][0-9]|25[0-5])|(x[0-9a-fA-F]{2})|(u[0-9a-fA-F]{4})|(U00(0[0-9a-fA-F]|10)[0-9a-fA-F]{4}))" + }, + { + "name": "invalid.illegal.character.string.fsharp", + "match": "\\\\(([0-9]{1,3})|(x[^\\s]{0,2})|(u[^\\s]{0,4})|(U[^\\s]{0,8})|[^\\s])" + }, + { + "include": "#string_formatter" + } + ] + } + ] + }, + "string_formatter": { + "patterns": [ + { + "name": "entity.name.type.format.specifier.fsharp", + "match": "(%0?-?(\\d+)?((a|t)|(\\.\\d+)?(f|F|e|E|g|G|M)|(b|c|s|d|i|x|X|o|u)|(s|b|O)|(\\+?A)))", + "captures": { + "1": { + "name": "keyword.format.specifier.fsharp" + } + } + } + ] + }, + "variables": { + "patterns": [ + { + "name": "keyword.symbol.fsharp", + "match": "\\(\\)" + }, + { + "match": "(\\?{0,1})(``[[:alpha:]0-9'`^:,._ ]+``|(?!private\\b)\\b[\\w[:alpha:]0-9'`<>^._ ]+)", + "captures": { + "1": { + "name": "keyword.symbol.fsharp" + }, + "2": { + "name": "variable.parameter.fsharp" + } + } + } + ] + }, + "common_declaration": { + "patterns": [ + { + "begin": "\\s*(->)\\s*([[:alpha:]0-9'`^._ ]+)(<)", + "end": "(>)", + "beginCaptures": { + "1": { + "name": "keyword.symbol.arrow.fsharp" + }, + "2": { + "name": "entity.name.type.fsharp" + }, + "3": { + "name": "keyword.symbol.fsharp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + } + }, + "patterns": [ + { + "match": "([[:alpha:]0-9'`^._ ]+)", + "captures": { + "1": { + "name": "entity.name.type.fsharp" + } + } + }, + { + "include": "#keywords" + } + ] + }, + { + "match": "\\s*(->)\\s*(?!with|get|set\\b)\\b([\\w0-9'`^._]+)", + "captures": { + "1": { + "name": "keyword.symbol.arrow.fsharp" + }, + "2": { + "name": "entity.name.type.fsharp" + } + } + }, + { + "include": "#anonymous_record_declaration" + }, + { + "begin": "(\\?{0,1})([[:alpha:]0-9'`^._ ]+)\\s*(:)(\\s*([?[:alpha:]0-9'`^._ ]+)(<))", + "end": "(>)", + "beginCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + }, + "2": { + "name": "variable.parameter.fsharp" + }, + "3": { + "name": "keyword.symbol.fsharp" + }, + "4": { + "name": "keyword.symbol.fsharp" + }, + "5": { + "name": "entity.name.type.fsharp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + } + }, + "patterns": [ + { + "match": "([[:alpha:]0-9'`^._ ]+)", + "captures": { + "1": { + "name": "entity.name.type.fsharp" + } + } + }, + { + "include": "#keywords" + } + ] + } + ] + }, + "member_declaration": { + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#common_declaration" + }, + { + "comments": "SRTP syntax support", + "begin": "(:)\\s*(\\()\\s*(static member|member)", + "beginCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + }, + "2": { + "name": "keyword.symbol.fsharp" + }, + "3": { + "name": "keyword.fsharp" + } + }, + "end": "(\\))\\s*((?=,)|(?=\\=))", + "endCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + } + }, + "patterns": [ + { + "begin": "(\\()", + "beginCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + } + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + } + }, + "patterns": [ + { + "include": "#member_declaration" + } + ] + }, + { + "match": "(\\^[[:alpha:]0-9'._]+)", + "captures": { + "1": { + "name": "entity.name.type.fsharp" + } + } + }, + { + "include": "#variables" + }, + { + "include": "#keywords" + } + ] + }, + { + "match": "(\\^[[:alpha:]0-9'._]+)", + "captures": { + "1": { + "name": "entity.name.type.fsharp" + } + } + }, + { + "name": "keyword.fsharp", + "match": "\\b(and|when|or)\\b" + }, + { + "name": "keyword.symbol.fsharp", + "match": "(\\(|\\))" + }, + { + "match": "(\\?{0,1})([[:alpha:]0-9'`^._]+|``[[:alpha:]0-9'`^:,._ ]+``)\\s*(:{0,1})(\\s*([?[:alpha:]0-9'`<>._ ]+)){0,1}", + "captures": { + "1": { + "name": "keyword.symbol.fsharp" + }, + "2": { + "name": "variable.parameter.fsharp" + }, + "3": { + "name": "keyword.symbol.fsharp" + }, + "4": { + "name": "entity.name.type.fsharp" + } + } + }, + { + "include": "#keywords" + } + ] + }, + "double_tick": { + "patterns": [ + { + "name": "variable.other.binding.fsharp", + "match": "(``)([^`]*)(``)", + "captures": { + "1": { + "name": "string.quoted.single.fsharp" + }, + "2": { + "name": "variable.other.binding.fsharp" + }, + "3": { + "name": "string.quoted.single.fsharp" + } + } + } + ] + }, + "records": { + "patterns": [ + { + "name": "record.fsharp", + "begin": "\\b(type)[\\s]+(private|internal|public)?\\s*", + "end": "\\s*((with)|((as)\\s+([[:alpha:]0-9']+))|(=)|[\\n=]|(\\(\\)))", + "beginCaptures": { + "1": { + "name": "keyword.fsharp" + }, + "2": { + "name": "storage.modifier.fsharp" + } + }, + "endCaptures": { + "2": { + "name": "keyword.fsharp" + }, + "3": { + "name": "keyword.fsharp" + }, + "4": { + "name": "keyword.fsharp" + }, + "5": { + "name": "variable.parameter.fsharp" + }, + "6": { + "name": "keyword.symbol.fsharp" + }, + "7": { + "name": "keyword.symbol.fsharp" + } + }, + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#attributes" + }, + { + "match": "([[:alpha:]0-9'^._]+|``[[:alpha:]0-9'`^:,._ ]+``)", + "captures": { + "1": { + "name": "entity.name.type.fsharp" + } + } + }, + { + "begin": "(<)", + "end": "((?<!:)>)", + "beginCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + } + }, + "patterns": [ + { + "match": "(('|\\^)``[[:alpha:]0-9`^:,._ ]+``|('|\\^)[[:alpha:]0-9`^:._]+)", + "captures": { + "1": { + "name": "entity.name.type.fsharp" + } + } + }, + { + "name": "keyword.fsharp", + "match": "\\b(interface|with|abstract|and|when|or|not|struct|equality|comparison|unmanaged|delegate|enum)\\b" + }, + { + "begin": "(\\()", + "end": "(\\))", + "beginCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + } + }, + "patterns": [ + { + "match": "(static member|member|new)", + "captures": { + "1": { + "name": "keyword.fsharp" + } + } + }, + { + "include": "#common_binding_definition" + } + ] + }, + { + "match": "([\\w0-9'`^._]+)", + "comments": "Here we need the \\w modifier in order to check that the words isn't blacklisted", + "captures": { + "1": { + "name": "entity.name.type.fsharp" + } + } + }, + { + "include": "#keywords" + } + ] + }, + { + "match": "\\s*(private|internal|public)", + "captures": { + "1": { + "name": "storage.modifier.fsharp" + } + } + }, + { + "begin": "(\\()", + "end": "\\s*(?=(=)|[\\n=]|(\\(\\))|(as))", + "beginCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + } + }, + "patterns": [ + { + "include": "#member_declaration" + } + ] + }, + { + "include": "#keywords" + } + ] + } + ] + }, + "record_declaration": { + "patterns": [ + { + "begin": "(\\{)", + "beginCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + } + }, + "end": "(?<=\\})", + "patterns": [ + { + "include": "#comments" + }, + { + "begin": "(((mutable)\\s[[:alpha:]]+)|[[:alpha:]0-9'`<>^._]*)\\s*((?<!:):(?!:))\\s*", + "beginCaptures": { + "3": { + "name": "keyword.fsharp" + }, + "4": { + "name": "keyword.symbol.fsharp" + } + }, + "end": "$|(;|\\})", + "endCaptures": { + "1": { + "name": "keyword.symbol.fsharp" + } + }, + "patterns": [ + { + "include": "#comments" + }, + { + "match": "([[:alpha:]0-9'`^_ ]+)", + "captures": { + "1": { + "name": "entity.name.type.fsharp" + } + } + }, + { + "include": "#keywords" + } + ] + }, + { + "include": "#compiler_directives" + }, + { + "include": "#constants" + }, + { + "include": "#strings" + }, + { + "include": "#chars" + }, + { + "include": "#double_tick" + }, + { + "include": "#definition" + }, + { + "include": "#attributes" + }, + { + "include": "#anonymous_functions" + }, + { + "include": "#keywords" + }, + { + "include": "#cexprs" + }, + { + "include": "#text" + } + ] + } + ] + }, + "cexprs": { + "patterns": [ + { + "name": "cexpr.fsharp", + "match": "\\b(async|seq|promise|task|maybe|asyncMaybe|controller|scope|application|pipeline)(?=\\s*\\{)", + "captures": { + "0": { + "name": "keyword.fsharp" + } + } + } + ] + }, + "chars": { + "patterns": [ + { + "name": "char.fsharp", + "match": "('\\\\?.')", + "captures": { + "1": { + "name": "string.quoted.single.fsharp" + } + } + } + ] + }, + "text": { + "patterns": [ + { + "name": "text.fsharp", + "match": "\\\\" + } + ] + }, + "compiler_directives": { + "patterns": [ + { + "name": "keyword.control.directive.fsharp", + "match": "\\s?(#if|#elif|#elseif|#else|#endif|#light|#nowarn)", + "captures": {} + } + ] + } + } +} diff --git a/docs/shiki/languages/gdresource.tmLanguage.json b/docs/shiki/languages/gdresource.tmLanguage.json new file mode 100644 index 00000000..b4690f43 --- /dev/null +++ b/docs/shiki/languages/gdresource.tmLanguage.json @@ -0,0 +1,326 @@ +{ + "scopeName": "source.gdresource", + "uuid": "e076faa2-3c52-42fa-a8e6-9a7c453c1a5b", + "patterns": [ + { + "include": "#embedded_shader" + }, + { + "include": "#embedded_gdscript" + }, + { + "include": "#comment" + }, + { + "include": "#heading" + }, + { + "include": "#key_value" + } + ], + "repository": { + "comment": { + "captures": { + "1": { + "name": "punctuation.definition.comment.gdresource" + } + }, + "match": "(;).*$\\n?", + "name": "comment.line.gdresource" + }, + "embedded_shader": { + "name": "meta.embedded.block.gdshader", + "begin": "(code) = \"", + "end": "\"", + "beginCaptures": { + "1": { + "name": "variable.other.property.gdresource" + } + }, + "patterns": [ + { + "include": "source.gdshader" + } + ] + }, + "embedded_gdscript": { + "comment": "meta.embedded.block.gdscript", + "begin": "(script/source) = \"", + "end": "\"", + "beginCaptures": { + "1": { + "name": "variable.other.property.gdresource" + } + }, + "patterns": [ + { + "include": "source.gdscript" + } + ] + }, + "heading": { + "begin": "\\[([a-z_]*)\\s?", + "beginCaptures": { + "1": { + "name": "keyword.control.gdresource" + } + }, + "end": "\\]", + "patterns": [ + { + "include": "#heading_properties" + }, + { + "include": "#data" + } + ] + }, + "heading_properties": { + "patterns": [ + { + "name": "invalid.deprecated.noValue.gdresource", + "match": "(\\s*[A-Za-z_\\-][A-Za-z0-9_\\-]*\\s*=)(?=\\s*$)" + }, + { + "begin": "\\s*([A-Za-z_-][^\\s]*|\".+\"|'.+'|[0-9]+)\\s*(=)\\s*", + "beginCaptures": { + "1": { + "name": "variable.other.property.gdresource" + }, + "2": { + "name": "punctuation.definition.keyValue.gdresource" + } + }, + "end": "($|(?==)|\\,?|\\s*(?=\\}))", + "patterns": [ + { + "include": "#data" + } + ] + } + ] + }, + "key_value": { + "patterns": [ + { + "name": "invalid.deprecated.noValue.gdresource", + "match": "(\\s*[A-Za-z_\\-][A-Za-z0-9_\\-]*\\s*=)(?=\\s*$)" + }, + { + "begin": "\\s*([A-Za-z_-][^\\s]*|\".+\"|'.+'|[0-9]+)\\s*(=)\\s*", + "beginCaptures": { + "1": { + "name": "variable.other.property.gdresource" + }, + "2": { + "name": "punctuation.definition.keyValue.gdresource" + } + }, + "end": "($|(?==)|\\,|\\s*(?=\\}))", + "patterns": [ + { + "include": "#data" + } + ] + } + ] + }, + "data": { + "patterns": [ + { + "include": "#comment" + }, + { + "begin": "(?<!\\w)(\\{)\\s*", + "beginCaptures": { + "1": { + "name": "punctuation.definition.table.inline.gdresource" + } + }, + "end": "\\s*(\\})(?!\\w)", + "endCaptures": { + "1": { + "name": "punctuation.definition.table.inline.gdresource" + } + }, + "patterns": [ + { + "include": "#key_value" + }, + { + "include": "#data" + } + ] + }, + { + "begin": "(?<!\\w)(\\[)\\s*", + "beginCaptures": { + "1": { + "name": "punctuation.definition.array.gdresource" + } + }, + "end": "\\s*(\\])(?!\\w)", + "endCaptures": { + "1": { + "name": "punctuation.definition.array.gdresource" + } + }, + "patterns": [ + { + "include": "#data" + } + ] + }, + { + "name": "string.quoted.triple.basic.block.gdresource", + "begin": "\"\"\"", + "end": "\"\"\"", + "patterns": [ + { + "match": "\\\\([btnfr\"\\\\\\n/ ]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})", + "name": "constant.character.escape.gdresource" + }, + { + "match": "\\\\[^btnfr/\"\\\\\\n]", + "name": "invalid.illegal.escape.gdresource" + } + ] + }, + { + "name": "support.function.any-method.gdresource", + "match": "\"res:\\/\\/[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\"" + }, + { + "name": "support.class.library.gdresource", + "match": "(?<=type=)\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\"" + }, + { + "name": "constant.character.escape.gdresource", + "match": "(?<=NodePath\\(|parent=|name=)\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\"" + }, + { + "name": "string.quoted.double.basic.line.gdresource", + "match": "\"[^\"\\\\]*(?:\\\\.[^\"\\\\]*)*\"", + "patterns": [ + { + "match": "\\\\([btnfr\"\\\\\\n/ ]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})", + "name": "constant.character.escape.gdresource" + }, + { + "match": "\\\\[^btnfr/\"\\\\\\n]", + "name": "invalid.illegal.escape.gdresource" + } + ] + }, + { + "name": "invalid.illegal.escape.gdresource", + "begin": "'''", + "end": "'''" + }, + { + "name": "string.quoted.single.literal.line.gdresource", + "match": "'.*?'" + }, + { + "match": "(?<!\\w)(true|false)(?!\\w)", + "captures": { + "1": { + "name": "constant.language.gdresource" + } + } + }, + { + "match": "(?<!\\w)([\\+\\-]?(0|([1-9](([0-9]|_[0-9])+)?))(?:(?:\\.(0|([1-9](([0-9]|_[0-9])+)?)))?[eE][\\+\\-]?[1-9]_?[0-9]*|(?:\\.[0-9_]*)))(?!\\w)", + "captures": { + "1": { + "name": "constant.numeric.float.gdresource" + } + } + }, + { + "match": "(?<!\\w)((?:[\\+\\-]?(0|([1-9](([0-9]|_[0-9])+)?))))(?!\\w)", + "captures": { + "1": { + "name": "constant.numeric.integer.gdresource" + } + } + }, + { + "match": "(?<!\\w)([\\+\\-]?inf)(?!\\w)", + "captures": { + "1": { + "name": "constant.numeric.inf.gdresource" + } + } + }, + { + "match": "(?<!\\w)([\\+\\-]?nan)(?!\\w)", + "captures": { + "1": { + "name": "constant.numeric.nan.gdresource" + } + } + }, + { + "match": "(?<!\\w)((?:0x(([0-9a-fA-F](([0-9a-fA-F]|_[0-9a-fA-F])+)?))))(?!\\w)", + "captures": { + "1": { + "name": "constant.numeric.hex.gdresource" + } + } + }, + { + "match": "(?<!\\w)(0o[0-7](_?[0-7])*)(?!\\w)", + "captures": { + "1": { + "name": "constant.numeric.oct.gdresource" + } + } + }, + { + "match": "(?<!\\w)(0b[01](_?[01])*)(?!\\w)", + "captures": { + "1": { + "name": "constant.numeric.bin.gdresource" + } + } + }, + { + "begin": "(?<!\\w)(Vector2|Vector2i|Vector3|Vector3i|Color|Rect2|Rect2i|Array|Basis|Dictionary|Plane|Quat|RID|Rect3|Transform|Transform2D|Transform3D|AABB|String|Color|NodePath|Object|PoolByteArray|PoolIntArray|PoolRealArray|PoolStringArray|PoolVector2Array|PoolVector3Array|PoolColorArray|bool|int|float|StringName|Quaternion|PackedByteArray|PackedInt32Array|PackedInt64Array|PackedFloat32Array|PackedFloat64Array|PackedStringArray|PackedVector2Array|PackedVector2iArray|PackedVector3Array|PackedVector3iArray|PackedColorArray)(\\()\\s?", + "beginCaptures": { + "1": { + "name": "support.class.library.gdresource" + } + }, + "end": "\\s?(\\))", + "patterns": [ + { + "include": "#key_value" + }, + { + "include": "#data" + } + ] + }, + { + "begin": "(?<!\\w)(ExtResource|SubResource)(\\()\\s?", + "beginCaptures": { + "1": { + "name": "keyword.control.gdresource" + } + }, + "end": "\\s?(\\))", + "patterns": [ + { + "include": "#key_value" + }, + { + "include": "#data" + } + ] + } + ] + } + }, + "name": "gdresource" +} diff --git a/docs/shiki/languages/gdscript.tmLanguage.json b/docs/shiki/languages/gdscript.tmLanguage.json new file mode 100644 index 00000000..4a4d6d27 --- /dev/null +++ b/docs/shiki/languages/gdscript.tmLanguage.json @@ -0,0 +1,883 @@ +{ + "fileTypes": ["gd"], + "scopeName": "source.gdscript", + "name": "gdscript", + "patterns": [ + { + "include": "#nodepath_object" + }, + { + "include": "#nodepath_function" + }, + { + "include": "#base_expression" + }, + { + "include": "#logic_op" + }, + { + "include": "#in_keyword" + }, + { + "include": "#getter_setter_godot4" + }, + { + "include": "#compare_op" + }, + { + "include": "#arithmetic_op" + }, + { + "include": "#assignment_op" + }, + { + "include": "#lambda_declaration" + }, + { + "include": "#control_flow" + }, + { + "include": "#annotations" + }, + { + "include": "#keywords" + }, + { + "include": "#self" + }, + { + "include": "#class_definition" + }, + { + "include": "#variable_definition" + }, + { + "include": "#class_name" + }, + { + "include": "#builtin_func" + }, + { + "include": "#builtin_get_node_shorthand" + }, + { + "include": "#builtin_classes" + }, + { + "include": "#const_vars" + }, + { + "include": "#pascal_case_class" + }, + { + "include": "#class_new" + }, + { + "include": "#class_is" + }, + { + "include": "#class_enum" + }, + { + "include": "#signal_declaration_bare" + }, + { + "include": "#signal_declaration" + }, + { + "include": "#function_declaration" + }, + { + "include": "#function_keyword" + }, + { + "include": "#any_method" + }, + { + "include": "#any_property" + }, + { + "include": "#extends" + } + ], + "repository": { + "comment": { + "captures": { + "1": { + "name": "punctuation.definition.comment.number-sign.gdscript" + } + }, + "match": "(#).*$\\n?", + "name": "comment.line.number-sign.gdscript" + }, + "strings": { + "patterns": [ + { + "begin": "(?:(?<=get_node|has_node|find_node|get_node_or_null|NodePath)\\s*\\(\\s*)", + "end": "(?:\\s*\\))", + "patterns": [ + { + "begin": "[\"']", + "end": "[\"']", + "name": "constant.character.escape" + }, + { + "include": "#base_expression" + } + ] + }, + { + "name": "invalid.illegal.escape.gdscript", + "begin": "'''", + "end": "'''" + }, + { + "begin": "\"", + "end": "\"", + "patterns": [ + { + "name": "constant.character.escape.untitled", + "match": "\\\\." + } + ], + "name": "string.quoted.double.gdscript" + }, + { + "begin": "'", + "end": "'", + "patterns": [ + { + "name": "constant.character.escape.untitled", + "match": "\\\\." + } + ], + "name": "string.quoted.single.gdscript" + }, + { + "begin": "@\"", + "end": "\"", + "patterns": [ + { + "name": "constant.character.escape.untitled", + "match": "\\." + } + ], + "name": "string.nodepath.gdscript" + } + ] + }, + "nodepath_object": { + "name": "meta.literal.nodepath.gdscript", + "begin": "(NodePath)\\s*(?:\\()", + "beginCaptures": { + "1": { + "name": "support.class.library.gdscript" + } + }, + "end": "(?:\\))", + "patterns": [ + { + "begin": "[\"']", + "end": "[\"']", + "name": "constant.character.escape", + "patterns": [ + { + "match": "%", + "name": "keyword.control.flow" + } + ] + } + ] + }, + "nodepath_function": { + "name": "meta.literal.nodepath.gdscript", + "begin": "(get_node_or_null|has_node|has_node_and_resource|find_node|get_node)\\s*(?:\\()", + "beginCaptures": { + "1": { + "name": "entity.name.function.gdscript" + } + }, + "end": "(?:\\))", + "patterns": [ + { + "begin": "[\"']", + "end": "[\"']", + "name": "constant.character.escape", + "patterns": [ + { + "match": "%", + "name": "keyword.control.flow" + } + ] + } + ] + }, + "self": { + "match": "\\bself\\b", + "name": "variable.language.gdscript" + }, + "base_expression": { + "patterns": [ + { + "include": "#builtin_get_node_shorthand" + }, + { + "include": "#nodepath_object" + }, + { + "include": "#nodepath_function" + }, + { + "include": "#strings" + }, + { + "include": "#keywords" + }, + { + "include": "#logic_op" + }, + { + "include": "#lambda_declaration" + }, + { + "include": "#in_keyword" + }, + { + "include": "#control_flow" + }, + { + "include": "#function_call" + }, + { + "include": "#comment" + }, + { + "include": "#self" + }, + { + "include": "#letter" + }, + { + "include": "#numbers" + }, + { + "include": "#builtin_func" + }, + { + "include": "#builtin_classes" + }, + { + "include": "#const_vars" + }, + { + "include": "#pascal_case_class" + }, + { + "include": "#line_continuation" + } + ] + }, + "logic_op": { + "match": "\\b(and|or|not)\\b", + "name": "keyword.operator.wordlike.gdscript" + }, + "in_keyword": { + "patterns": [ + { + "match": "\\b(for)\\s+[a-zA-Z_]\\w*\\s+(in)\\b", + "captures": { + "1": { + "name": "keyword.control.gdscript" + }, + "2": { + "name": "keyword.control.gdscript" + } + } + }, + { + "match": "\\bin\\b", + "name": "keyword.operator.wordlike.gdscript" + } + ] + }, + "compare_op": { + "match": "<=|>=|==|<|>|!=", + "name": "keyword.operator.comparison.gdscript" + }, + "arithmetic_op": { + "match": "\\+=|-=|\\*=|/=|%=|&=|\\|=|\\*|/|%|\\+|-|<<|>>|&|\\||\\^|~", + "name": "keyword.operator.arithmetic.gdscript" + }, + "assignment_op": { + "match": "=", + "name": "keyword.operator.assignment.gdscript" + }, + "control_flow": { + "match": "\\b(?i:if|elif|else|for|while|break|continue|pass|return|match|yield|await)\\b", + "name": "keyword.control.gdscript" + }, + "keywords": { + "match": "\\b(?i:class|class_name|extends|is|onready|tool|static|export|as|void|enum|preload|assert|breakpoint|rpc|sync|remote|master|puppet|slave|remotesync|mastersync|puppetsync|trait|namespace)\\b", + "name": "keyword.language.gdscript" + }, + "letter": { + "match": "\\b(?i:true|false|null)\\b", + "name": "constant.language.gdscript" + }, + "numbers": { + "patterns": [ + { + "match": "\\b(?i:0x\\h*)\\b", + "name": "constant.numeric.integer.hexadecimal.gdscript" + }, + { + "match": "\\b(?i:(\\d+\\.\\d*(e[\\-\\+]?\\d+)?))\\b", + "name": "constant.numeric.float.gdscript" + }, + { + "match": "\\b(?i:(\\.\\d+(e[\\-\\+]?\\d+)?))\\b", + "name": "constant.numeric.float.gdscript" + }, + { + "match": "\\b(?i:(\\d+e[\\-\\+]?\\d+))\\b", + "name": "constant.numeric.float.gdscript" + }, + { + "match": "\\b\\d+\\b", + "name": "constant.numeric.integer.gdscript" + } + ] + }, + "variable_definition": { + "begin": "\\b(?:(var)|(const))\\s+", + "end": "$|;", + "beginCaptures": { + "1": { + "name": "storage.type.var.gdscript" + }, + "2": { + "name": "storage.type.const.gdscript" + } + }, + "patterns": [ + { + "match": "(:)\\s*([a-zA-Z_]\\w*)?", + "captures": { + "1": { + "name": "punctuation.separator.annotation.gdscript" + }, + "2": { + "name": "entity.name.type.class.gdscript" + } + } + }, + { + "match": "=(?!=)", + "name": "keyword.operator.assignment.gdscript" + }, + { + "match": "(setget)\\s+([a-zA-Z_]\\w*)(?:[,]\\s*([a-zA-Z_]\\w*))?", + "captures": { + "1": { + "name": "storage.type.const.gdscript" + }, + "2": { + "name": "entity.name.function.gdscript" + }, + "3": { + "name": "entity.name.function.gdscript" + } + } + }, + { + "include": "#base_expression" + } + ] + }, + "getter_setter_godot4": { + "patterns": [ + { + "match": "\\b(get):", + "captures": { + "1": { + "name": "entity.name.function.gdscript" + } + } + }, + { + "name": "meta.function.gdscript", + "begin": "(?x) \\s+\n (set) \\s*\n (?=\\()", + "end": "(:|(?=[#'\"\\n]))", + "beginCaptures": { + "1": { + "name": "entity.name.function.gdscript" + } + }, + "patterns": [ + { + "include": "#parameters" + }, + { + "include": "#line_continuation" + }, + { + "match": "\\s*(\\-\\>)\\s*([a-zA-Z_]\\w*)\\s*\\:", + "captures": { + "1": {}, + "2": { + "name": "entity.name.type.class.gdscript" + } + } + } + ] + } + ] + }, + "class_definition": { + "captures": { + "1": { + "name": "entity.name.type.class.gdscript" + }, + "2": { + "name": "class.other.gdscript" + } + }, + "match": "(?<=^class)\\s+([a-zA-Z_]\\w*)\\s*(?=:)" + }, + "class_new": { + "captures": { + "1": { + "name": "entity.name.type.class.gdscript" + }, + "2": { + "name": "storage.type.new.gdscript" + } + }, + "match": "\\b([a-zA-Z_]\\w*).(new)\\(" + }, + "class_is": { + "captures": { + "1": { + "name": "storage.type.is.gdscript" + }, + "2": { + "name": "entity.name.type.class.gdscript" + } + }, + "match": "\\s+(is)\\s+([a-zA-Z_]\\w*)" + }, + "class_enum": { + "captures": { + "1": { + "name": "entity.name.type.class.gdscript" + }, + "2": { + "name": "constant.language.gdscript" + } + }, + "match": "\\b([A-Z][a-zA-Z_0-9]*)\\.([A-Z_0-9]+)" + }, + "class_name": { + "captures": { + "1": { + "name": "entity.name.type.class.gdscript" + }, + "2": { + "name": "class.other.gdscript" + } + }, + "match": "(?<=class_name)\\s+([a-zA-Z_]\\w*(\\.([a-zA-Z_]\\w*))?)" + }, + "extends": { + "match": "(?<=extends)\\s+[a-zA-Z_]\\w*(\\.([a-zA-Z_]\\w*))?", + "name": "entity.other.inherited-class.gdscript" + }, + "builtin_func": { + "match": "(?<![^.]\\.|:)\\b(abs|absf|absi|acos|asin|assert|atan|atan2|bytes2var|bytes2var_with_objects|ceil|char|clamp|clampf|clampi|Color8|convert|cos|cosh|cubic_interpolate|db2linear|decimals|dectime|deg2rad|dict2inst|ease|error_string|exp|floor|fmod|fposmod|funcref|get_stack|hash|inst2dict|instance_from_id|inverse_lerp|is_equal_approx|is_inf|is_instance_id_valid|is_instance_valid|is_nan|is_zero_approx|len|lerp|lerp_angle|linear2db|load|log|max|maxf|maxi|min|minf|mini|move_toward|nearest_po2|pingpong|posmod|pow|preload|print|printerr|printraw|prints|printt|print_debug|print_stack|print_verbose|push_error|push_warning|rad2deg|randf|randfn|randf_range|randi|randi_range|randomize|rand_from_seed|rand_range|rand_seed|range|range_lerp|range_step_decimals|rid_allocate_id|rid_from_int64|round|seed|sign|signf|signi|sin|sinh|smoothstep|snapped|sqrt|stepify|step_decimals|str|str2var|tan|tanh|typeof|type_exists|var2bytes|var2bytes_with_objects|var2str|weakref|wrapf|wrapi|yield)\\b(?=(\\()([^)]*)(\\)))", + "name": "support.function.builtin.gdscript" + }, + "builtin_get_node_shorthand": { + "patterns": [ + { + "include": "#builtin_get_node_shorthand_quoted" + }, + { + "include": "#builtin_get_node_shorthand_bare" + } + ] + }, + "builtin_get_node_shorthand_quoted": { + "begin": "(\\$)([\"'])", + "end": "([\"'])", + "name": "support.function.builtin.shorthand.gdscript", + "beginCaptures": { + "1": { + "name": "keyword.control.flow" + }, + "2": { + "name": "constant.character.escape" + } + }, + "endCaptures": { + "1": { + "name": "constant.character.escape" + } + }, + "patterns": [ + { + "match": "%", + "name": "keyword.control.flow" + }, + { + "match": "[^%^\"^']*", + "name": "constant.character.escape" + } + ] + }, + "builtin_get_node_shorthand_bare": { + "begin": "(\\$)", + "end": "[^\\w%]", + "name": "support.function.builtin.shorthand.gdscript", + "beginCaptures": { + "1": { + "name": "keyword.control.flow" + } + }, + "patterns": [ + { + "match": "[a-zA-Z_]\\w*/?", + "name": "constant.character.escape" + }, + { + "match": "%[a-zA-Z_]\\w*/?", + "name": "invalid.illegal.escape.gdscript" + } + ] + }, + "annotations": { + "match": "(@)(export|export_color_no_alpha|export_dir|export_enum|export_exp_easing|export_file|export_flags|export_flags_2d_navigation|export_flags_2d_physics|export_flags_2d_render|export_flags_3d_navigation|export_flags_3d_physics|export_flags_3d_render|export_global_dir|export_global_file|export_multiline|export_node_path|export_placeholder|export_range|icon|onready|rpc|tool|warning_ignore)\\b", + "captures": { + "1": { + "name": "entity.name.function.decorator.gdscript" + }, + "2": { + "name": "entity.name.function.decorator.gdscript" + } + } + }, + "builtin_classes": { + "match": "(?<![^.]\\.|:)\\b(OS|GDScript|Vector2|Vector2i|Vector3|Vector3i|Color|Rect2|Rect2i|Array|Basis|Dictionary|Plane|Quat|RID|Rect3|Transform|Transform2D|Transform3D|AABB|String|Color|NodePath|Object|PoolByteArray|PoolIntArray|PoolRealArray|PoolStringArray|PoolVector2Array|PoolVector3Array|PoolColorArray|bool|int|float|StringName|Quaternion|PackedByteArray|PackedInt32Array|PackedInt64Array|PackedFloat32Array|PackedFloat64Array|PackedStringArray|PackedVector2Array|PackedVector2iArray|PackedVector3Array|PackedVector3iArray|PackedColorArray|super)\\b", + "name": "support.class.library.gdscript" + }, + "const_vars": { + "match": "\\b([A-Z_][A-Z_0-9]*)\\b", + "name": "constant.language.gdscript" + }, + "pascal_case_class": { + "match": "\\b([A-Z][a-z_0-9]*([A-Z]?[a-z_0-9]+)*[A-Z]?)\\b", + "name": "support.class.library.gdscript" + }, + "signal_declaration_bare": { + "match": "(?x) \\s*\n (signal) \\s+\n ([a-zA-Z_]\\w*)(?=[\\n\\s])", + "captures": { + "1": { + "name": "storage.type.function.gdscript" + }, + "2": { + "name": "entity.name.function.gdscript" + } + } + }, + "signal_declaration": { + "name": "meta.signal.gdscript", + "begin": "(?x) \\s*\n (signal) \\s+\n ([a-zA-Z_]\\w*) \\s*\n (?=\\()", + "end": "((?=[#'\"\\n]))", + "beginCaptures": { + "1": { + "name": "storage.type.function.gdscript" + }, + "2": { + "name": "entity.name.function.gdscript" + } + }, + "patterns": [ + { + "include": "#parameters" + }, + { + "include": "#line_continuation" + }, + { + "match": "\\s*(\\-\\>)\\s*([a-zA-Z_]\\w*)\\s*\\:", + "captures": { + "1": {}, + "2": { + "name": "entity.name.type.class.gdscript" + } + } + } + ] + }, + "lambda_declaration": { + "name": "meta.function.gdscript", + "begin": "(func)(?=\\()", + "end": "(:|(?=[#'\"\\n]))", + "beginCaptures": { + "1": { + "name": "storage.type.function.gdscript" + }, + "2": { + "name": "entity.name.function.gdscript" + } + }, + "patterns": [ + { + "include": "#parameters" + }, + { + "include": "#line_continuation" + } + ] + }, + "function_declaration": { + "name": "meta.function.gdscript", + "begin": "(?x) \\s*\n (func) \\s+\n ([a-zA-Z_]\\w*) \\s*\n (?=\\()", + "end": "((:)|(?=[#'\"\\n]))", + "beginCaptures": { + "1": { + "name": "storage.type.function.gdscript" + }, + "2": { + "name": "entity.name.function.gdscript" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.section.function.begin.gdscript" + } + }, + "patterns": [ + { + "include": "#parameters" + }, + { + "include": "#line_continuation" + }, + { + "match": "\\s*(\\-\\>)\\s*([a-zA-Z_]\\w*)\\s*\\:", + "captures": { + "1": {}, + "2": { + "name": "entity.name.type.class.gdscript" + } + } + }, + { + "include": "#base_expression" + } + ] + }, + "function_keyword": { + "match": "func", + "name": "keyword.language.gdscript" + }, + "parameters": { + "name": "meta.function.parameters.gdscript", + "begin": "(\\()", + "end": "(\\))", + "beginCaptures": { + "1": { + "name": "punctuation.definition.parameters.begin.gdscript" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.parameters.end.gdscript" + } + }, + "patterns": [ + { + "include": "#annotated_parameter" + }, + { + "match": "(?x)\n ([a-zA-Z_]\\w*)\n \\s* (?: (,) | (?=[)#\\n=]))\n", + "captures": { + "1": { + "name": "variable.parameter.function.language.gdscript" + }, + "2": { + "name": "punctuation.separator.parameters.gdscript" + } + } + }, + { + "include": "#comment" + }, + { + "include": "#loose_default" + } + ] + }, + "loose_default": { + "begin": "(=)", + "end": "(,)|(?=\\))", + "beginCaptures": { + "1": { + "name": "keyword.operator.gdscript" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.separator.parameters.gdscript" + } + }, + "patterns": [ + { + "include": "#base_expression" + } + ] + }, + "annotated_parameter": { + "begin": "(?x)\n \\b\n ([a-zA-Z_]\\w*) \\s* (:)\n", + "end": "(,)|(?=\\))", + "beginCaptures": { + "1": { + "name": "variable.parameter.function.language.gdscript" + }, + "2": { + "name": "punctuation.separator.annotation.gdscript" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.separator.parameters.gdscript" + } + }, + "patterns": [ + { + "include": "#base_expression" + }, + { + "name": "keyword.operator.assignment.gdscript", + "match": "=(?!=)" + } + ] + }, + "line_continuation": { + "patterns": [ + { + "match": "(\\\\)\\s*(\\S.*$\\n?)", + "captures": { + "1": { + "name": "punctuation.separator.continuation.line.gdscript" + }, + "2": { + "name": "invalid.illegal.line.continuation.gdscript" + } + } + }, + { + "begin": "(\\\\)\\s*$\\n?", + "end": "(?x)\n (?=^\\s*$)\n |\n (?! (\\s* [rR]? (\\'\\'\\'|\\\"\\\"\\\"|\\'|\\\"))\n |\n (\\G $) (?# '\\G' is necessary for ST)\n )\n", + "beginCaptures": { + "1": { + "name": "punctuation.separator.continuation.line.gdscript" + } + }, + "patterns": [ + { + "include": "#base_expression" + } + ] + } + ] + }, + "any_method": { + "match": "\\b([A-Za-z_]\\w*)\\b(?=\\s*(?:[(]))", + "name": "support.function.any-method.gdscript" + }, + "any_property": { + "match": "(?<=[^.]\\.)\\b([A-Za-z_]\\w*)\\b(?![(])", + "name": "variable.other.property.gdscript" + }, + "function_call": { + "name": "meta.function-call.gdscript", + "comment": "Regular function call of the type \"name(args)\"", + "begin": "(?x)\n \\b(?=\n ([a-zA-Z_]\\w*) \\s* (\\()\n )\n", + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.definition.arguments.end.gdscript" + } + }, + "patterns": [ + { + "include": "#function_name" + }, + { + "include": "#function_arguments" + } + ] + }, + "function_name": { + "patterns": [ + { + "include": "#builtin_func" + }, + { + "include": "#builtin_classes" + }, + { + "comment": "Some color schemas support meta.function-call.generic scope", + "name": "support.function.any-method.gdscript", + "match": "(?x)\n \\b ([a-zA-Z_]\\w*) \\b\n" + } + ] + }, + "function_arguments": { + "begin": "(\\()", + "end": "(?=\\))(?!\\)\\s*\\()", + "beginCaptures": { + "1": { + "name": "punctuation.definition.arguments.begin.gdscript" + } + }, + "contentName": "meta.function-call.arguments.gdscript", + "patterns": [ + { + "name": "punctuation.separator.arguments.gdscript", + "match": "(,)" + }, + { + "match": "\\b([a-zA-Z_]\\w*)\\s*(=)(?!=)", + "captures": { + "1": { + "name": "variable.parameter.function-call.gdscript" + }, + "2": { + "name": "keyword.operator.assignment.gdscript" + } + } + }, + { + "name": "keyword.operator.assignment.gdscript", + "match": "=(?!=)" + }, + { + "include": "#base_expression" + }, + { + "match": "\\s*(\\))\\s*(\\()", + "captures": { + "1": { + "name": "punctuation.definition.arguments.end.gdscript" + }, + "2": { + "name": "punctuation.definition.arguments.begin.gdscript" + } + } + } + ] + } + } +} diff --git a/docs/shiki/languages/gdshader.tmLanguage.json b/docs/shiki/languages/gdshader.tmLanguage.json new file mode 100644 index 00000000..9221f38e --- /dev/null +++ b/docs/shiki/languages/gdshader.tmLanguage.json @@ -0,0 +1,403 @@ +{ + "name": "gdshader", + "scopeName": "source.gdshader", + "uuid": "3a95d25d-688b-481f-a581-eee47f00e5ca", + "fileTypes": ["gdshader"], + "patterns": [ + { + "include": "#any" + } + ], + "repository": { + "any": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#enclosed" + }, + { + "include": "#classifier" + }, + { + "include": "#definition" + }, + { + "include": "#keyword" + }, + { + "include": "#element" + }, + { + "include": "#separator" + }, + { + "include": "#operator" + } + ] + }, + "comment": { + "patterns": [ + { + "include": "#commentLine" + }, + { + "include": "#commentBlock" + } + ] + }, + "commentLine": { + "name": "comment.line.double-slash.gdshader", + "begin": "//", + "end": "$" + }, + "commentBlock": { + "name": "comment.block.gdshader", + "begin": "/\\*", + "end": "\\*/" + }, + "enclosed": { + "name": "meta.parenthesis.gdshader", + "begin": "\\(", + "end": "\\)", + "captures": { + "0": { + "name": "punctuation.parenthesis.gdshader" + } + }, + "patterns": [ + { + "include": "#any" + } + ] + }, + "classifier": { + "name": "meta.classifier.gdshader", + "begin": "(?=\\b(?:shader_type|render_mode)\\b)", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#keyword" + }, + { + "include": "#identifierClassification" + }, + { + "include": "#separator" + } + ], + "end": "(?<=;)" + }, + "classifierKeyword": { + "name": "keyword.language.classifier.gdshader", + "match": "\\b(?:shader_type|render_mode)\\b" + }, + "identifierClassification": { + "name": "entity.other.inherited-class.gdshader", + "match": "\\b[a-z_]+\\b" + }, + "definition": { + "patterns": [ + { + "include": "#structDefinition" + } + ] + }, + "arraySize": { + "name": "meta.array-size.gdshader", + "begin": "\\[", + "end": "\\]", + "captures": { + "0": { + "name": "punctuation.bracket.gdshader" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#keyword" + }, + { + "include": "#element" + }, + { + "include": "#separator" + } + ] + }, + "structDefinition": { + "begin": "(?=\\b(?:struct)\\b)", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#keyword" + }, + { + "include": "#structName" + }, + { + "include": "#structDefinitionBlock" + }, + { + "include": "#separator" + } + ], + "end": "(?<=;)" + }, + "structKeyword": { + "name": "keyword.other.struct.gdshader", + "match": "\\b(?:struct)\\b" + }, + "structName": { + "name": "entity.name.type.struct.gdshader", + "match": "\\b[a-zA-Z_]\\w*\\b" + }, + "structDefinitionBlock": { + "name": "meta.definition.block.struct.gdshader", + "begin": "\\{", + "end": "\\}", + "captures": { + "0": { + "name": "punctuation.definition.block.struct.gdshader" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#precisionKeyword" + }, + { + "include": "#fieldDefinition" + }, + { + "include": "#keyword" + }, + { + "include": "#any" + } + ] + }, + "fieldDefinition": { + "name": "meta.definition.field.gdshader", + "begin": "\\b[a-zA-Z_]\\w*\\b", + "beginCaptures": { + "0": { + "patterns": [ + { + "include": "#typeKeyword" + }, + { + "match": ".+", + "name": "entity.name.type.gdshader" + } + ] + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#keyword" + }, + { + "include": "#arraySize" + }, + { + "include": "#fieldName" + }, + { + "include": "#any" + } + ], + "end": "(?<=;)" + }, + "fieldName": { + "name": "entity.name.variable.field.gdshader", + "match": "\\b[a-zA-Z_]\\w*\\b" + }, + "keyword": { + "patterns": [ + { + "include": "#classifierKeyword" + }, + { + "include": "#structKeyword" + }, + { + "include": "#controlKeyword" + }, + { + "include": "#modifierKeyword" + }, + { + "include": "#precisionKeyword" + }, + { + "include": "#typeKeyword" + }, + { + "include": "#hintKeyword" + } + ] + }, + "controlKeyword": { + "name": "keyword.control.gdshader", + "match": "\\b(?:if|else|do|while|for|continue|break|switch|case|default|return|discard)\\b" + }, + "modifierKeyword": { + "name": "storage.modifier.gdshader", + "match": "\\b(?:const|global|instance|uniform|varying|in|out|inout|flat|smooth)\\b" + }, + "precisionKeyword": { + "name": "storage.type.built-in.primitive.precision.gdshader", + "match": "\\b(?:low|medium|high)p\\b" + }, + "typeKeyword": { + "name": "support.type.gdshader", + "match": "\\b(?:void|bool|[biu]?vec[234]|u?int|float|mat[234]|[iu]?sampler(?:3D|2D(?:Array)?)|samplerCube)\\b" + }, + "hintKeyword": { + "name": "support.type.annotation.gdshader", + "match": "\\b(?:source_color|hint_(?:color|range|(?:black_)?albedo|normal|(?:default_)?(?:white|black)|aniso|anisotropy|roughness_(?:[rgba]|normal|gray))|filter_(?:nearest|linear)(?:_mipmap(?:_anisotropic)?)?|repeat_(?:en|dis)able)\\b" + }, + "element": { + "patterns": [ + { + "include": "#literalFloat" + }, + { + "include": "#literalInt" + }, + { + "include": "#literalBool" + }, + { + "include": "#identifierType" + }, + { + "include": "#constructor" + }, + { + "include": "#processorFunction" + }, + { + "include": "#identifierFunction" + }, + { + "include": "#swizzling" + }, + { + "include": "#identifierField" + }, + { + "include": "#constantFloat" + }, + { + "include": "#languageVariable" + }, + { + "include": "#identifierVariable" + } + ] + }, + "literalFloat": { + "name": "constant.numeric.float.gdshader", + "match": "\\b(?:\\d+[eE][-+]?\\d+|(?:\\d*[.]\\d+|\\d+[.])(?:[eE][-+]?\\d+)?)[fF]?" + }, + "literalInt": { + "name": "constant.numeric.integer.gdshader", + "match": "\\b(?:0[xX][0-9A-Fa-f]+|\\d+[uU]?)\\b" + }, + "literalBool": { + "name": "constant.language.boolean.gdshader", + "match": "\\b(?:false|true)\\b" + }, + "identifierType": { + "name": "entity.name.type.gdshader", + "match": "\\b[a-zA-Z_]\\w*(?=(?:\\s*\\[\\s*\\w*\\s*\\])?\\s+[a-zA-Z_]\\w*\\b)" + }, + "constructor": { + "name": "entity.name.type.constructor.gdshader", + "match": "\\b[a-zA-Z_]\\w*(?=\\s*\\[\\s*\\w*\\s*\\]\\s*[(])|\\b[A-Z]\\w*(?=\\s*[(])" + }, + "processorFunction": { + "name": "support.function.gdshader", + "match": "\\b(?:vertex|fragment|light|start|process|sky|fog)(?=(?:\\s|/\\*(?:\\*(?!/)|[^*])*\\*/)*[(])" + }, + "identifierFunction": { + "name": "entity.name.function.gdshader", + "match": "\\b[a-zA-Z_]\\w*(?=(?:\\s|/\\*(?:\\*(?!/)|[^*])*\\*/)*[(])" + }, + "swizzling": { + "match": "([.])\\s*([xyzw]{2,4}|[rgba]{2,4}|[stpq]{2,4})\\b", + "captures": { + "1": { + "name": "punctuation.accessor.gdshader" + }, + "2": { + "name": "variable.other.property.gdshader" + } + } + }, + "identifierField": { + "match": "([.])\\s*([a-zA-Z_]\\w*)\\b(?!\\s*\\()", + "captures": { + "1": { + "name": "punctuation.accessor.gdshader" + }, + "2": { + "name": "entity.name.variable.field.gdshader" + } + } + }, + "constantFloat": { + "name": "constant.language.float.gdshader", + "match": "\\b(?:E|PI|TAU)\\b" + }, + "languageVariable": { + "name": "variable.language.gdshader", + "match": "\\b(?:[A-Z][A-Z_0-9]*)\\b" + }, + "identifierVariable": { + "name": "variable.name.gdshader", + "match": "\\b[a-zA-Z_]\\w*\\b" + }, + "separator": { + "patterns": [ + { + "match": "[.]", + "name": "punctuation.accessor.gdshader" + }, + { + "include": "#separatorComma" + }, + { + "match": "[;]", + "name": "punctuation.terminator.statement.gdshader" + }, + { + "match": "[:]", + "name": "keyword.operator.type.annotation.gdshader" + } + ] + }, + "separatorComma": { + "name": "punctuation.separator.comma.gdshader", + "match": "[,]" + }, + "operator": { + "name": "keyword.operator.gdshader", + "match": "\\<\\<\\=?|\\>\\>\\=?|[-+*/&|<>=!]\\=|\\&\\&|[|][|]|[-+~!*/%<>&^|=]" + } + } +} diff --git a/docs/shiki/languages/gherkin.tmLanguage.json b/docs/shiki/languages/gherkin.tmLanguage.json new file mode 100644 index 00000000..3b33010c --- /dev/null +++ b/docs/shiki/languages/gherkin.tmLanguage.json @@ -0,0 +1,132 @@ +{ + "fileTypes": ["feature"], + "firstLineMatch": "기능|機能|功能|フィーチャ|خاصية|תכונה|Функціонал|Функционалност|Функционал|Особина|Функция|Функциональность|Свойство|Могућност|Özellik|Właściwość|Tính năng|Savybė|Požiadavka|Požadavek|Osobina|Ominaisuus|Omadus|OH HAI|Mogućnost|Mogucnost|Jellemző|Fīča|Funzionalità|Funktionalität|Funkcionalnost|Funkcionalitāte|Funcționalitate|Functionaliteit|Functionalitate|Funcionalitat|Funcionalidade|Fonctionnalité|Fitur|Ability|Business Need|Feature|Egenskap|Egenskab|Crikey|Característica|Arwedd(.*)", + "foldingStartMarker": "^\\s*\\b(예|시나리오 개요|시나리오|배경|背景|場景大綱|場景|场景大纲|场景|劇本大綱|劇本|例子|例|テンプレ|シナリオテンプレート|シナリオテンプレ|シナリオアウトライン|シナリオ|サンプル|سيناريو مخطط|سيناريو|امثلة|الخلفية|תרחיש|תבנית תרחיש|רקע|דוגמאות|Тарих|Сценарій|Сценарији|Сценарио|Сценарий структураси|Сценарий|Структура сценарію|Структура сценарија|Структура сценария|Скица|Рамка на сценарий|Примери|Пример|Приклади|Предыстория|Предистория|Позадина|Передумова|Основа|Мисоллар|Концепт|Контекст|Значения|Örnekler|Założenia|Wharrimean is|Voorbeelden|Variantai|Tình huống|The thing of it is|Tausta|Taust|Tapausaihio|Tapaus|Tapaukset|Szenariogrundriss|Szenario|Szablon scenariusza|Stsenaarium|Struktura scenarija|Skica|Skenario konsep|Skenario|Situācija|Senaryo taslağı|Senaryo|Scénář|Scénario|Schema dello scenario|Scenārijs pēc parauga|Scenārijs|Scenár|Scenariusz|Scenariul de şablon|Scenariul de sablon|Scenariu|Scenarios|Scenario Outline|Scenario Amlinellol|Scenario|Example|Scenarijus|Scenariji|Scenarijaus šablonas|Scenarijai|Scenarij|Scenarie|Rerefons|Raamstsenaarium|Příklady|Példák|Príklady|Przykłady|Primjeri|Primeri|Primer|Pozadí|Pozadina|Pozadie|Plan du scénario|Plan du Scénario|Piemēri|Pavyzdžiai|Paraugs|Osnova scénáře|Osnova|Náčrt Scénáře|Náčrt Scenáru|Mate|MISHUN SRSLY|MISHUN|Kịch bản|Kontext|Konteksts|Kontekstas|Kontekst|Koncept|Khung tình huống|Khung kịch bản|Juhtumid|Háttér|Grundlage|Geçmiş|Forgatókönyv vázlat|Forgatókönyv|Exemplos|Exemples|Exemplele|Exempel|Examples|Esquema do Cenário|Esquema do Cenario|Esquema del escenario|Esquema de l'escenari|Esempi|Escenario|Escenari|Enghreifftiau|Eksempler|Ejemplos|EXAMPLZ|Dữ liệu|Dis is what went down|Dasar|Contoh|Contexto|Contexte|Contesto|Condiţii|Conditii|Cobber|Cenário|Cenario|Cefndir|Bối cảnh|Blokes|Beispiele|Bakgrunn|Bakgrund|Baggrund|Background|B4|Antecedents|Antecedentes|All y'all|Achtergrond|Abstrakt Scenario|Abstract Scenario|Rule|Regla|Règle|Regel|Regra)", + "foldingStopMarker": "^\\s*$", + "keyEquivalent": "^~C", + "name": "gherkin", + "patterns": [ + { + "include": "#feature_element_keyword" + }, + { + "include": "#feature_keyword" + }, + { + "include": "#step_keyword" + }, + { + "include": "#strings_triple_quote" + }, + { + "include": "#strings_single_quote" + }, + { + "include": "#strings_double_quote" + }, + { + "include": "#comments" + }, + { + "include": "#tags" + }, + { + "include": "#scenario_outline_variable" + }, + { + "include": "#table" + } + ], + "repository": { + "comments": { + "captures": { + "0": { + "name": "comment.line.number-sign" + } + }, + "match": "^\\s*(#.*)" + }, + "table": { + "begin": "^\\s*\\|", + "end": "\\|\\s*$", + "name": "keyword.control.cucumber.table", + "patterns": [ + { + "match": "\\w", + "name": "source" + } + ] + }, + "feature_keyword": { + "captures": { + "1": { + "name": "keyword.language.gherkin.feature" + }, + "2": { + "name": "string.language.gherkin.feature.title" + } + }, + "match": "^\\s*(기능|機能|功能|フィーチャ|خاصية|תכונה|Функціонал|Функционалност|Функционал|Особина|Функция|Функциональность|Свойство|Могућност|Özellik|Właściwość|Tính năng|Savybė|Požiadavka|Požadavek|Osobina|Ominaisuus|Omadus|OH HAI|Mogućnost|Mogucnost|Jellemző|Fīča|Funzionalità|Funktionalität|Funkcionalnost|Funkcionalitāte|Funcționalitate|Functionaliteit|Functionalitate|Funcionalitat|Funcionalidade|Fonctionnalité|Fitur|Ability|Business Need|Feature|Ability|Egenskap|Egenskab|Crikey|Característica|Arwedd):(.*)\\b" + }, + "step_keyword": { + "captures": { + "1": { + "name": "keyword.language.gherkin.feature.step" + } + }, + "match": "^\\s*(En |و |Y |E |Եվ |Ya |Too right |Və |Həm |A |И |而且 |并且 |同时 |並且 |同時 |Ak |Epi |A také |Og |😂 |And |Kaj |Ja |Et que |Et qu' |Et |და |Und |Και |અને |וגם |और |तथा |És |Dan |Agus |かつ |Lan |ಮತ್ತು |'ej |latlh |그리고 |AN |Un |Ir |an |a |Мөн |Тэгээд |Ond |7 |ਅਤੇ |Aye |Oraz |Si |Și |Şi |К тому же |Также |An |A tiež |A taktiež |A zároveň |In |Ter |Och |மேலும் |மற்றும் |Һәм |Вә |మరియు |และ |Ve |І |А також |Та |اور |Ва |Và |Maar |لكن |Pero |Բայց |Peru |Yeah nah |Amma |Ancaq |Ali |Но |Però |但是 |Men |Ale |😔 |But |Sed |Kuid |Mutta |Mais que |Mais qu' |Mais |მაგ­რამ |Aber |Αλλά |પણ |אבל |पर |परन्तु |किन्तु |De |En |Tapi |Ach |Ma |しかし |但し |ただし |Nanging |Ananging |ಆದರೆ |'ach |'a |하지만 |단 |BUT |Bet |awer |mä |No |Tetapi |Гэхдээ |Харин |Ac |ਪਰ |اما |Avast! |Mas |Dar |А |Иначе |Buh |Али |Toda |Ampak |Vendar |ஆனால் |Ләкин |Әмма |కాని |แต่ |Fakat |Ama |Але |لیکن |Лекин |Бирок |Аммо |Nhưng |Ond |Dan |اذاً |ثم |Alavez |Allora |Antonces |Ապա |Entós |But at the end of the day I reckon |O halda |Zatim |То |Aleshores |Cal |那么 |那麼 |Lè sa a |Le sa a |Onda |Pak |Så |🙏 |Then |Do |Siis |Niin |Alors |Entón |Logo |მაშინ |Dann |Τότε |પછી |אז |אזי |तब |तदा |Akkor |Þá |Maka |Ansin |ならば |Njuk |Banjur |ನಂತರ |vaj |그러면 |DEN |Tad |Tada |dann |Тогаш |Togash |Kemudian |Тэгэхэд |Үүний дараа |Tha |Þa |Ða |Tha the |Þa þe |Ða ðe |ਤਦ |آنگاه |Let go and haul |Wtedy |Então |Entao |Atunci |Затем |Тогда |Dun |Den youse gotta |Онда |Tak |Potom |Nato |Potem |Takrat |Entonces |அப்பொழுது |Нәтиҗәдә |అప్పుడు |ดังนั้น |O zaman |Тоді |پھر |تب |Унда |Thì |Yna |Wanneer |متى |عندما |Cuan |Եթե |Երբ |Cuando |It's just unbelievable |Əgər |Nə vaxt ki |Kada |Когато |Quan |当 |當 |Lè |Le |Kad |Když |Når |Als |🎬 |When |Se |Kui |Kun |Quand |Lorsque |Lorsqu' |Cando |როდესაც |Wenn |Όταν |ક્યારે |כאשר |जब |कदा |Majd |Ha |Amikor |Þegar |Ketika |Nuair a |Nuair nach |Nuair ba |Nuair nár |Quando |もし |Manawa |Menawa |ಸ್ಥಿತಿಯನ್ನು |qaSDI' |만일 |만약 |WEN |Ja |Kai |wann |Кога |Koga |Apabila |Хэрэв |Tha |Þa |Ða |ਜਦੋਂ |هنگامی |Blimey! |Jeżeli |Jeśli |Gdy |Kiedy |Cand |Când |Когда |Если |Wun |Youse know like when |Када |Кад |Keď |Ak |Ko |Ce |Če |Kadar |När |எப்போது |Әгәр |ఈ పరిస్థితిలో |เมื่อ |Eğer ki |Якщо |Коли |جب |Агар |Khi |Pryd |Gegewe |بفرض |Dau |Dada |Daus |Dadas |Դիցուք |Dáu |Daos |Daes |Y'know |Tutaq ki |Verilir |Dato |Дадено |Donat |Donada |Atès |Atesa |假如 |假设 |假定 |假設 |Sipoze |Sipoze ke |Sipoze Ke |Zadan |Zadani |Zadano |Pokud |Za předpokladu |Givet |Gegeven |Stel |😐 |Given |Donitaĵo |Komence |Eeldades |Oletetaan |Soit |Etant donné que |Etant donné qu' |Etant donné |Etant donnée |Etant donnés |Etant données |Étant donné que |Étant donné qu' |Étant donné |Étant donnée |Étant donnés |Étant données |Dado |Dados |მოცემული |Angenommen |Gegeben sei |Gegeben seien |Δεδομένου |આપેલ છે |בהינתן |अगर |यदि |चूंकि |Amennyiben |Adott |Ef |Dengan |Cuir i gcás go |Cuir i gcás nach |Cuir i gcás gur |Cuir i gcás nár |Data |Dati |Date |前提 |Nalika |Nalikaning |ನೀಡಿದ |ghu' noblu' |DaH ghu' bejlu' |조건 |먼저 |I CAN HAZ |Kad |Duota |ugeholl |Дадена |Dadeno |Dadena |Diberi |Bagi |Өгөгдсөн нь |Анх |Gitt |Thurh |Þurh |Ðurh |ਜੇਕਰ |ਜਿਵੇਂ ਕਿ |با فرض |Gangway! |Zakładając |Mając |Zakładając, że |Date fiind |Dat fiind |Dată fiind |Dati fiind |Dați fiind |Daţi fiind |Допустим |Дано |Пусть |Givun |Youse know when youse got |За дато |За дате |За дати |Za dato |Za date |Za dati |Pokiaľ |Za predpokladu |Dano |Podano |Zaradi |Privzeto |கொடுக்கப்பட்ட |Әйтик |చెప్పబడినది |กำหนดให้ |Diyelim ki |Припустимо |Припустимо, що |Нехай |اگر |بالفرض |فرض کیا |Агар |Biết |Cho |Anrhegedig a |\\* )" + }, + "feature_element_keyword": { + "captures": { + "1": { + "name": "keyword.language.gherkin.feature.scenario" + }, + "2": { + "name": "string.language.gherkin.scenario.title.title" + } + }, + "match": "^\\s*(예|시나리오 개요|시나리오|배경|背景|場景大綱|場景|场景大纲|场景|劇本大綱|劇本|例子|例|テンプレ|シナリオテンプレート|シナリオテンプレ|シナリオアウトライン|シナリオ|サンプル|سيناريو مخطط|سيناريو|امثلة|الخلفية|תרחיש|תבנית תרחיש|רקע|דוגמאות|Тарих|Сценарій|Сценарији|Сценарио|Сценарий структураси|Сценарий|Структура сценарію|Структура сценарија|Структура сценария|Скица|Рамка на сценарий|Примери|Пример|Приклади|Предыстория|Предистория|Позадина|Передумова|Основа|Мисоллар|Концепт|Контекст|Значения|Örnekler|Założenia|Wharrimean is|Voorbeelden|Variantai|Tình huống|The thing of it is|Tausta|Taust|Tapausaihio|Tapaus|Tapaukset|Szenariogrundriss|Szenario|Szablon scenariusza|Stsenaarium|Struktura scenarija|Skica|Skenario konsep|Skenario|Situācija|Senaryo taslağı|Senaryo|Scénář|Scénario|Schema dello scenario|Scenārijs pēc parauga|Scenārijs|Scenár|Scenariusz|Scenariul de şablon|Scenariul de sablon|Scenariu|Scenarios|Scenario Outline|Scenario Amlinellol|Scenario|Example|Scenarijus|Scenariji|Scenarijaus šablonas|Scenarijai|Scenarij|Scenarie|Rerefons|Raamstsenaarium|Příklady|Példák|Príklady|Przykłady|Primjeri|Primeri|Primer|Pozadí|Pozadina|Pozadie|Plan du scénario|Plan du Scénario|Piemēri|Pavyzdžiai|Paraugs|Osnova scénáře|Osnova|Náčrt Scénáře|Náčrt Scenáru|Mate|MISHUN SRSLY|MISHUN|Kịch bản|Kontext|Konteksts|Kontekstas|Kontekst|Koncept|Khung tình huống|Khung kịch bản|Juhtumid|Háttér|Grundlage|Geçmiş|Forgatókönyv vázlat|Forgatókönyv|Exemplos|Exemples|Exemplele|Exempel|Examples|Esquema do Cenário|Esquema do Cenario|Esquema del escenario|Esquema de l'escenari|Esempi|Escenario|Escenari|Enghreifftiau|Eksempler|Ejemplos|EXAMPLZ|Dữ liệu|Dis is what went down|Dasar|Contoh|Contexto|Contexte|Contesto|Condiţii|Conditii|Cobber|Cenário|Cenario|Cefndir|Bối cảnh|Blokes|Beispiele|Bakgrunn|Bakgrund|Baggrund|Background|B4|Antecedents|Antecedentes|All y'all|Achtergrond|Abstrakt Scenario|Abstract Scenario|Rule|Regla|Règle|Regel|Regra):(.*)" + }, + "scenario_outline_variable": { + "match": "<[a-zA-Z0-9 _-]*>", + "name": "variable.other" + }, + "strings_double_quote": { + "begin": "(?<![a-zA-Z0-9'])\"", + "end": "\"(?![a-zA-Z0-9'])", + "name": "string.quoted.double", + "patterns": [ + { + "match": "\\\\.", + "name": "constant.character.escape.untitled" + } + ] + }, + "strings_single_quote": { + "begin": "(?<![a-zA-Z0-9\"])'", + "end": "'(?![a-zA-Z0-9\"])", + "name": "string.quoted.single", + "patterns": [ + { + "match": "\\\\.", + "name": "constant.character.escape" + } + ] + }, + "strings_triple_quote": { + "begin": "\"\"\".*", + "end": "\"\"\"", + "name": "string.quoted.single" + }, + "tags": { + "captures": { + "0": { + "name": "entity.name.type.class.tsx" + } + }, + "match": "(@[^@\\r\\n\\t ]+)" + } + }, + "scopeName": "text.gherkin.feature", + "uuid": "85E2C52C-9B16-4A54-81E7-6D8D3ADAEFA8" +} diff --git a/docs/shiki/languages/git-commit.tmLanguage.json b/docs/shiki/languages/git-commit.tmLanguage.json new file mode 100644 index 00000000..f6197741 --- /dev/null +++ b/docs/shiki/languages/git-commit.tmLanguage.json @@ -0,0 +1,90 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/walles/git-commit-message-plus/blob/master/syntaxes/git-commit.tmLanguage.json", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/walles/git-commit-message-plus/commit/35a079dea5a91b087021b40c01a6bb4eb0337a87", + "name": "git-commit", + "scopeName": "text.git-commit", + "patterns": [ + { + "comment": "diff presented at the end of the commit message when using commit -v.", + "name": "meta.embedded.diff.git-commit", + "contentName": "source.diff", + "begin": "(?=^diff\\ \\-\\-git)", + "end": "\\z", + "patterns": [ + { + "include": "source.diff" + } + ] + }, + { + "comment": "User supplied message", + "name": "meta.scope.message.git-commit", + "begin": "^(?!#)", + "end": "^(?=#)", + "patterns": [ + { + "comment": "Mark > 50 lines as deprecated, > 72 as illegal", + "name": "meta.scope.subject.git-commit", + "match": "\\G.{0,50}(.{0,22}(.*))$", + "captures": { + "1": { + "name": "invalid.deprecated.line-too-long.git-commit" + }, + "2": { + "name": "invalid.illegal.line-too-long.git-commit" + } + } + } + ] + }, + { + "comment": "Git supplied metadata in a number of lines starting with #", + "name": "meta.scope.metadata.git-commit", + "begin": "^(?=#)", + "contentName": "comment.line.number-sign.git-commit", + "end": "^(?!#)", + "patterns": [ + { + "match": "^#\\t((modified|renamed):.*)$", + "captures": { + "1": { + "name": "markup.changed.git-commit" + } + } + }, + { + "match": "^#\\t(new file:.*)$", + "captures": { + "1": { + "name": "markup.inserted.git-commit" + } + } + }, + { + "match": "^#\\t(deleted.*)$", + "captures": { + "1": { + "name": "markup.deleted.git-commit" + } + } + }, + { + "comment": "Fallback for non-English git commit template", + "match": "^#\\t([^:]+): *(.*)$", + "captures": { + "1": { + "name": "keyword.other.file-type.git-commit" + }, + "2": { + "name": "string.unquoted.filename.git-commit" + } + } + } + ] + } + ] +} diff --git a/docs/shiki/languages/git-rebase.tmLanguage.json b/docs/shiki/languages/git-rebase.tmLanguage.json new file mode 100644 index 00000000..33e164cc --- /dev/null +++ b/docs/shiki/languages/git-rebase.tmLanguage.json @@ -0,0 +1,61 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/textmate/git.tmbundle/blob/master/Syntaxes/Git%20Rebase%20Message.tmLanguage", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/textmate/git.tmbundle/commit/5870cf3f8abad3a6637bdf69250b5d2ded427dc4", + "name": "git-rebase", + "scopeName": "text.git-rebase", + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.comment.git-rebase" + } + }, + "match": "^\\s*(#).*$\\n?", + "name": "comment.line.number-sign.git-rebase" + }, + { + "captures": { + "1": { + "name": "support.function.git-rebase" + }, + "2": { + "name": "constant.sha.git-rebase" + }, + "3": { + "name": "meta.commit-message.git-rebase" + } + }, + "match": "^\\s*(pick|p|reword|r|edit|e|squash|s|fixup|f|drop|d)\\s+([0-9a-f]+)\\s+(.*)$", + "name": "meta.commit-command.git-rebase" + }, + { + "captures": { + "1": { + "name": "support.function.git-rebase" + }, + "2": { + "patterns": [ + { + "include": "source.shell" + } + ] + } + }, + "match": "^\\s*(exec|x)\\s+(.*)$", + "name": "meta.commit-command.git-rebase" + }, + { + "captures": { + "1": { + "name": "support.function.git-rebase" + } + }, + "match": "^\\s*(break|b)\\s*$", + "name": "meta.commit-command.git-rebase" + } + ] +} diff --git a/docs/shiki/languages/glimmer-js.tmLanguage.json b/docs/shiki/languages/glimmer-js.tmLanguage.json new file mode 100644 index 00000000..48b4ac34 --- /dev/null +++ b/docs/shiki/languages/glimmer-js.tmLanguage.json @@ -0,0 +1,98 @@ +{ + "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", + "name": "glimmer-js", + "scopeName": "source.gjs", + "patterns": [ + { + "include": "source.js" + } + ], + "injections": { + "L:source.gjs -comment -string": { + "patterns": [ + { + "name": "meta.js.embeddedTemplateWithoutArgs", + "begin": "\\s*(<)(template)\\s*(>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.html" + }, + "2": { + "name": "entity.name.tag.other.html" + }, + "3": { + "name": "punctuation.definition.tag.html" + } + }, + "end": "(</)(template)(>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.html" + }, + "2": { + "name": "entity.name.tag.other.html" + }, + "3": { + "name": "punctuation.definition.tag.html" + } + }, + "patterns": [ + { + "include": "text.html.handlebars" + } + ] + }, + { + "name": "meta.js.embeddedTemplateWithArgs", + "begin": "(<)(template)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.html" + }, + "2": { + "name": "entity.name.tag.other.html" + } + }, + "end": "(</)(template)(>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.html" + }, + "2": { + "name": "entity.name.tag.other.html" + }, + "3": { + "name": "punctuation.definition.tag.html" + } + }, + "patterns": [ + { + "begin": "(?<=\\<template)", + "end": "(?=\\>)", + "patterns": [ + { + "include": "text.html.handlebars#tag-stuff" + } + ] + }, + { + "begin": "(>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.end.js" + } + }, + "end": "(?=</template>)", + "contentName": "meta.html.embedded.block", + "patterns": [ + { + "include": "text.html.handlebars" + } + ] + } + ] + } + ] + } + } +} diff --git a/docs/shiki/languages/glimmer-ts.tmLanguage.json b/docs/shiki/languages/glimmer-ts.tmLanguage.json new file mode 100644 index 00000000..fef2f861 --- /dev/null +++ b/docs/shiki/languages/glimmer-ts.tmLanguage.json @@ -0,0 +1,98 @@ +{ + "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", + "name": "glimmer-ts", + "scopeName": "source.gts", + "patterns": [ + { + "include": "source.ts" + } + ], + "injections": { + "L:source.gts -comment -string": { + "patterns": [ + { + "name": "meta.js.embeddedTemplateWithoutArgs", + "begin": "\\s*(<)(template)\\s*(>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.html" + }, + "2": { + "name": "entity.name.tag.other.html" + }, + "3": { + "name": "punctuation.definition.tag.html" + } + }, + "end": "(</)(template)(>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.html" + }, + "2": { + "name": "entity.name.tag.other.html" + }, + "3": { + "name": "punctuation.definition.tag.html" + } + }, + "patterns": [ + { + "include": "text.html.handlebars" + } + ] + }, + { + "name": "meta.js.embeddedTemplateWithArgs", + "begin": "(<)(template)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.html" + }, + "2": { + "name": "entity.name.tag.other.html" + } + }, + "end": "(</)(template)(>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.html" + }, + "2": { + "name": "entity.name.tag.other.html" + }, + "3": { + "name": "punctuation.definition.tag.html" + } + }, + "patterns": [ + { + "begin": "(?<=\\<template)", + "end": "(?=\\>)", + "patterns": [ + { + "include": "text.html.handlebars#tag-stuff" + } + ] + }, + { + "begin": "(>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.end.js" + } + }, + "end": "(?=</template>)", + "contentName": "meta.html.embedded.block", + "patterns": [ + { + "include": "text.html.handlebars" + } + ] + } + ] + } + ] + } + } +} diff --git a/docs/shiki/languages/glsl.tmLanguage.json b/docs/shiki/languages/glsl.tmLanguage.json new file mode 100644 index 00000000..d1270317 --- /dev/null +++ b/docs/shiki/languages/glsl.tmLanguage.json @@ -0,0 +1,58 @@ +{ + "fileTypes": [ + "vs", + "fs", + "gs", + "vsh", + "fsh", + "gsh", + "vshader", + "fshader", + "gshader", + "vert", + "frag", + "geom", + "f.glsl", + "v.glsl", + "g.glsl" + ], + "foldingStartMarker": "/\\*\\*|\\{\\s*$", + "foldingStopMarker": "\\*\\*/|^\\s*\\}", + "keyEquivalent": "^~G", + "name": "glsl", + "patterns": [ + { + "match": "\\b(break|case|continue|default|discard|do|else|for|if|return|switch|while)\\b", + "name": "keyword.control.glsl" + }, + { + "match": "\\b(void|bool|int|uint|float|vec2|vec3|vec4|bvec2|bvec3|bvec4|ivec2|ivec2|ivec3|uvec2|uvec2|uvec3|mat2|mat3|mat4|mat2x2|mat2x3|mat2x4|mat3x2|mat3x3|mat3x4|mat4x2|mat4x3|mat4x4|sampler[1|2|3]D|samplerCube|sampler2DRect|sampler[1|2]DShadow|sampler2DRectShadow|sampler[1|2]DArray|sampler[1|2]DArrayShadow|samplerBuffer|sampler2DMS|sampler2DMSArray|struct|isampler[1|2|3]D|isamplerCube|isampler2DRect|isampler[1|2]DArray|isamplerBuffer|isampler2DMS|isampler2DMSArray|usampler[1|2|3]D|usamplerCube|usampler2DRect|usampler[1|2]DArray|usamplerBuffer|usampler2DMS|usampler2DMSArray)\\b", + "name": "storage.type.glsl" + }, + { + "match": "\\b(attribute|centroid|const|flat|in|inout|invariant|noperspective|out|smooth|uniform|varying)\\b", + "name": "storage.modifier.glsl" + }, + { + "match": "\\b(gl_BackColor|gl_BackLightModelProduct|gl_BackLightProduct|gl_BackMaterial|gl_BackSecondaryColor|gl_ClipDistance|gl_ClipPlane|gl_ClipVertex|gl_Color|gl_DepthRange|gl_DepthRangeParameters|gl_EyePlaneQ|gl_EyePlaneR|gl_EyePlaneS|gl_EyePlaneT|gl_Fog|gl_FogCoord|gl_FogFragCoord|gl_FogParameters|gl_FragColor|gl_FragCoord|gl_FragDat|gl_FragDept|gl_FrontColor|gl_FrontFacing|gl_FrontLightModelProduct|gl_FrontLightProduct|gl_FrontMaterial|gl_FrontSecondaryColor|gl_InstanceID|gl_Layer|gl_LightModel|gl_LightModelParameters|gl_LightModelProducts|gl_LightProducts|gl_LightSource|gl_LightSourceParameters|gl_MaterialParameters|gl_ModelViewMatrix|gl_ModelViewMatrixInverse|gl_ModelViewMatrixInverseTranspose|gl_ModelViewMatrixTranspose|gl_ModelViewProjectionMatrix|gl_ModelViewProjectionMatrixInverse|gl_ModelViewProjectionMatrixInverseTranspose|gl_ModelViewProjectionMatrixTranspose|gl_MultiTexCoord[0-7]|gl_Normal|gl_NormalMatrix|gl_NormalScale|gl_ObjectPlaneQ|gl_ObjectPlaneR|gl_ObjectPlaneS|gl_ObjectPlaneT|gl_Point|gl_PointCoord|gl_PointParameters|gl_PointSize|gl_Position|gl_PrimitiveIDIn|gl_ProjectionMatrix|gl_ProjectionMatrixInverse|gl_ProjectionMatrixInverseTranspose|gl_ProjectionMatrixTranspose|gl_SecondaryColor|gl_TexCoord|gl_TextureEnvColor|gl_TextureMatrix|gl_TextureMatrixInverse|gl_TextureMatrixInverseTranspose|gl_TextureMatrixTranspose|gl_Vertex|gl_VertexIDh)\\b", + "name": "support.variable.glsl" + }, + { + "match": "\\b(gl_MaxClipPlanes|gl_MaxCombinedTextureImageUnits|gl_MaxDrawBuffers|gl_MaxFragmentUniformComponents|gl_MaxLights|gl_MaxTextureCoords|gl_MaxTextureImageUnits|gl_MaxTextureUnits|gl_MaxVaryingFloats|gl_MaxVertexAttribs|gl_MaxVertexTextureImageUnits|gl_MaxVertexUniformComponents)\\b", + "name": "support.constant.glsl" + }, + { + "match": "\\b(abs|acos|all|any|asin|atan|ceil|clamp|cos|cross|degrees|dFdx|dFdy|distance|dot|equal|exp|exp2|faceforward|floor|fract|ftransform|fwidth|greaterThan|greaterThanEqual|inversesqrt|length|lessThan|lessThanEqual|log|log2|matrixCompMult|max|min|mix|mod|noise[1-4]|normalize|not|notEqual|outerProduct|pow|radians|reflect|refract|shadow1D|shadow1DLod|shadow1DProj|shadow1DProjLod|shadow2D|shadow2DLod|shadow2DProj|shadow2DProjLod|sign|sin|smoothstep|sqrt|step|tan|texture1D|texture1DLod|texture1DProj|texture1DProjLod|texture2D|texture2DLod|texture2DProj|texture2DProjLod|texture3D|texture3DLod|texture3DProj|texture3DProjLod|textureCube|textureCubeLod|transpose)\\b", + "name": "support.function.glsl" + }, + { + "match": "\\b(asm|double|enum|extern|goto|inline|long|short|sizeof|static|typedef|union|unsigned|volatile)\\b", + "name": "invalid.illegal.glsl" + }, + { + "include": "source.c" + } + ], + "scopeName": "source.glsl", + "uuid": "D0FD1B52-F137-4FBA-A148-B8A893CD948C" +} diff --git a/docs/shiki/languages/gnuplot.tmLanguage.json b/docs/shiki/languages/gnuplot.tmLanguage.json new file mode 100644 index 00000000..4d5273c1 --- /dev/null +++ b/docs/shiki/languages/gnuplot.tmLanguage.json @@ -0,0 +1,887 @@ +{ + "name": "gnuplot", + "scopeName": "source.gnuplot", + "uuid": "A75AB1C2-611C-4500-9EE4-20668B5BB465", + "fileTypes": ["gp", "plt", "plot", "gnuplot"], + "patterns": [ + { + "name": "invalid.illegal.backslash.gnuplot", + "match": "(\\\\(?!\\n).*)" + }, + { + "name": "punctuation.separator.statement.gnuplot", + "match": "(;)" + }, + { + "include": "#LineComment" + }, + { + "include": "#DataBlock" + }, + { + "include": "#MacroExpansion" + }, + { + "include": "#VariableDecl" + }, + { + "include": "#ArrayDecl" + }, + { + "include": "#FunctionDecl" + }, + { + "include": "#ShellCommand" + }, + { + "include": "#Command" + } + ], + "repository": { + "DataBlock": { + "name": "meta.datablock.gnuplot", + "begin": "(?x:\n\t\t\t\t([$][A-Za-z_]\\w*)\\s* # 1: var name\n\t\t\t\t(<<)\\s* # 2: shift operator\n\t\t\t\t([A-Za-z_]\\w*)\\s* # 3: end tag\n\t\t\t\t(?=(\\#|$)) # 4: comment or end of line\n\t\t\t)", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#SpecialVariable" + } + ] + }, + "3": { + "name": "constant.language.datablock.gnuplot" + } + }, + "end": "^(\\3)\\b(.*)", + "endCaptures": { + "1": { + "name": "constant.language.datablock.gnuplot" + }, + "2": { + "name": "invalid.illegal.datablock.gnuplot" + } + }, + "patterns": [ + { + "include": "#LineComment" + }, + { + "include": "#NumberLiteral" + }, + { + "include": "#DoubleQuotedStringLiteral" + } + ] + }, + "MacroExpansion": { + "begin": "([@][A-Za-z_]\\w*)", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#SpecialVariable" + } + ] + } + }, + "end": "(?=(;|#|\\\\(?!\\n)|(?<!\\\\)\\n$))", + "patterns": [ + { + "include": "#Expression" + } + ] + }, + "VariableDecl": { + "name": "meta.variable.gnuplot", + "begin": "\\b(?x:\n\t\t\t\t([A-Za-z_]\\w*)\\s* # 1: var name\n\t\t\t\t(?:\n\t\t\t\t\t(\\[)\\s* # 2: opening bracket\n\t\t\t\t\t(.*)\\s* # 3: expression\n\t\t\t\t\t(\\])\\s* # 4: closing bracket\n\t\t\t\t)?\n\t\t\t\t(?=(=)(?!\\s*=)) # 5: assignment\n\t\t\t)", + "beginCaptures": { + "1": { + "name": "entity.name.variable.gnuplot", + "patterns": [ + { + "include": "#InvalidVariableDecl" + }, + { + "include": "#BuiltinVariable" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#Expression" + } + ] + } + }, + "end": "(?=(;|#|\\\\(?!\\n)|(?<!\\\\)\\n$))", + "patterns": [ + { + "include": "#Expression" + } + ] + }, + "ArrayDecl": { + "name": "meta.variable.gnuplot", + "begin": "\\b(?x:\n\t\t\t\t(array)\\s+ # 1: array keyword\n\t\t\t\t([A-Za-z_]\\w*)? # 2: var name\n\t\t\t\t# Note: Handle size decl and init expression inside.\n\t\t\t\t# TODO: Properly annotate brackets.\n\t\t\t)", + "beginCaptures": { + "1": { + "name": "support.type.array.gnuplot" + }, + "2": { + "name": "entity.name.variable.gnuplot", + "patterns": [ + { + "include": "#InvalidVariableDecl" + }, + { + "include": "#BuiltinVariable" + } + ] + } + }, + "end": "(?=(;|#|\\\\(?!\\n)|(?<!\\\\)\\n$))", + "patterns": [ + { + "include": "#Expression" + } + ] + }, + "FunctionDecl": { + "name": "meta.function.gnuplot", + "begin": "\\b(?x:\n\t\t\t\t([A-Za-z_]\\w*)\\s* # 1: func name\n\t\t\t\t( # 2: parameter list\n\t\t\t\t\t(\\()\\s* # 3: opening parens\n\t\t\t\t\t([A-Za-z_]\\w*)\\s* # 4: arg name\n\t\t\t\t\t(?:\n\t\t\t\t\t\t(,)\\s* # 5: comma\n\t\t\t\t\t\t([A-Za-z_]\\w*)\\s* # 6: other args\n\t\t\t\t\t)*\n\t\t\t\t\t(\\)) # 7: closing parens\n\t\t\t\t)\n\t\t\t)", + "beginCaptures": { + "1": { + "name": "entity.name.function.gnuplot", + "patterns": [ + { + "include": "#BuiltinFunction" + } + ] + }, + "2": { + "name": "meta.function.parameters.gnuplot" + }, + "3": { + "name": "punctuation.definition.parameters.begin.gnuplot" + }, + "4": { + "name": "variable.parameter.function.language.gnuplot" + }, + "5": { + "name": "punctuation.separator.parameters.gnuplot" + }, + "6": { + "name": "variable.parameter.function.language.gnuplot" + }, + "7": { + "name": "punctuation.definition.parameters.end.gnuplot" + } + }, + "end": "(?=(;|#|\\\\(?!\\n)|(?<!\\\\)\\n$))", + "patterns": [ + { + "include": "#Expression" + } + ] + }, + "InvalidVariableDecl": { + "name": "invalid.illegal.variable.gnuplot", + "match": "\\b(GPVAL_\\w*|MOUSE_\\w*)\\b" + }, + "ShellCommand": { + "begin": "(!)", + "beginCaptures": { + "1": { + "name": "keyword.other.shell.gnuplot" + } + }, + "end": "(?=(#|\\\\(?!\\n)|(?<!\\\\)\\n$))", + "patterns": [ + { + "name": "string.unquoted", + "match": "([^#]|\\\\(?=\\n))" + } + ] + }, + "Command": { + "patterns": [ + { + "name": "invalid.deprecated.command.gnuplot", + "begin": "\\b(?x:\n\t\t\t\t\t\tupdate\n\t\t\t\t\t)\\b", + "end": "(?=(;|#|\\\\(?!\\n)|(?<!\\\\)\\n$))" + }, + { + "begin": "\\b(?x:\n\t\t\t\t\t\tbreak |\n\t\t\t\t\t\tclear |\n\t\t\t\t\t\tcontinue |\n\t\t\t\t\t\tpwd |\n\t\t\t\t\t\trefresh |\n\t\t\t\t\t\treplot |\n\t\t\t\t\t\treread |\n\t\t\t\t\t\tshell\n\t\t\t\t\t)\\b", + "beginCaptures": { + "0": { + "name": "keyword.other.command.gnuplot" + } + }, + "end": "(?=(;|#|\\\\(?!\\n)|(?<!\\\\)\\n$))", + "patterns": [ + { + "include": "#InvalidWord" + } + ] + }, + { + "begin": "\\b(?x:\n\t\t\t\t\t\tcd |\n\t\t\t\t\t\tcall |\n\t\t\t\t\t\teval |\n\t\t\t\t\t\texit |\n\t\t\t\t\t\thelp |\n\t\t\t\t\t\thistory |\n\t\t\t\t\t\tload |\n\t\t\t\t\t\tlower |\n\t\t\t\t\t\tpause |\n\t\t\t\t\t\tprint |\n\t\t\t\t\t\tprinterr |\n\t\t\t\t\t\tquit |\n\t\t\t\t\t\traise |\n\t\t\t\t\t\tsave |\n\t\t\t\t\t\tstats |\n\t\t\t\t\t\tsystem |\n\t\t\t\t\t\ttest |\n\t\t\t\t\t\ttoggle\n\t\t\t\t\t)\\b", + "beginCaptures": { + "0": { + "name": "keyword.other.command.gnuplot" + } + }, + "end": "(?=(;|#|\\\\(?!\\n)|(?<!\\\\)\\n$))", + "patterns": [ + { + "include": "#Expression" + } + ] + }, + { + "begin": "\\b(import)\\s(.+)\\s(from)", + "beginCaptures": { + "1": { + "name": "keyword.control.import.gnuplot" + }, + "2": { + "patterns": [ + { + "include": "#FunctionDecl" + } + ] + }, + "3": { + "name": "keyword.control.import.gnuplot" + } + }, + "end": "(?=(;|#|\\\\(?!\\n)|(?<!\\\\)\\n$))", + "patterns": [ + { + "include": "#SingleQuotedStringLiteral" + }, + { + "include": "#DoubleQuotedStringLiteral" + }, + { + "include": "#InvalidWord" + } + ] + }, + { + "begin": "\\b(reset)\\b", + "beginCaptures": { + "1": { + "name": "keyword.other.command.gnuplot" + } + }, + "end": "(?=(;|#|\\\\(?!\\n)|(?<!\\\\)\\n$))", + "patterns": [ + { + "name": "support.class.reset.gnuplot", + "match": "\\b(bind|error(state)?|session)\\b" + }, + { + "include": "#InvalidWord" + } + ] + }, + { + "begin": "\\b(undefine)\\b", + "beginCaptures": { + "1": { + "name": "keyword.other.command.gnuplot" + } + }, + "end": "(?=(;|#|\\\\(?!\\n)|(?<!\\\\)\\n$))", + "patterns": [ + { + "include": "#BuiltinVariable" + }, + { + "include": "#BuiltinFunction" + }, + { + "name": "source.gnuplot", + "match": "(?<=\\s)([$]?[A-Za-z_]\\w*\\*?)(?=\\s)" + }, + { + "include": "#InvalidWord" + } + ] + }, + { + "begin": "\\b(if|while)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.conditional.gnuplot" + } + }, + "end": "(?=(\\{|#|\\\\(?!\\n)|(?<!\\\\)\\n$))", + "patterns": [ + { + "include": "#Expression" + } + ] + }, + { + "begin": "\\b(else)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.conditional.gnuplot" + } + }, + "end": "(?=(\\{|#|\\\\(?!\\n)|(?<!\\\\)\\n$))" + }, + { + "begin": "\\b(do)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.gnuplot" + } + }, + "end": "(?=(\\{|#|\\\\(?!\\n)|(?<!\\\\)\\n$))", + "patterns": [ + { + "include": "#ForIterationExpr" + } + ] + }, + { + "begin": "\\b(set)(?=\\s+pm3d)\\b", + "beginCaptures": { + "1": { + "name": "keyword.other.command.gnuplot" + } + }, + "end": "(?=(;|#|\\\\(?!\\n)|(?<!\\\\)\\n$))", + "patterns": [ + { + "name": "invalid.deprecated.options.gnuplot", + "match": "\\b(hidden3d|map|transparent|solid)\\b" + }, + { + "include": "#SetUnsetOptions" + }, + { + "include": "#ForIterationExpr" + }, + { + "include": "#Expression" + } + ] + }, + { + "begin": "\\b((un)?set)\\b", + "beginCaptures": { + "1": { + "name": "keyword.other.command.gnuplot" + } + }, + "end": "(?=(;|#|\\\\(?!\\n)|(?<!\\\\)\\n$))", + "patterns": [ + { + "include": "#SetUnsetOptions" + }, + { + "include": "#ForIterationExpr" + }, + { + "include": "#Expression" + } + ] + }, + { + "begin": "\\b(show)\\b", + "beginCaptures": { + "1": { + "name": "keyword.other.command.gnuplot" + } + }, + "end": "(?=(;|#|\\\\(?!\\n)|(?<!\\\\)\\n$))", + "patterns": [ + { + "include": "#ExtraShowOptions" + }, + { + "include": "#SetUnsetOptions" + }, + { + "include": "#Expression" + } + ] + }, + { + "begin": "\\b(fit|(s)?plot)\\b", + "beginCaptures": { + "1": { + "name": "keyword.other.command.gnuplot" + } + }, + "end": "(?=(;|#|\\\\(?!\\n)|(?<!\\\\)\\n$))", + "patterns": [ + { + "include": "#ColumnIndexLiteral" + }, + { + "include": "#PlotModifiers" + }, + { + "include": "#ForIterationExpr" + }, + { + "include": "#Expression" + } + ] + } + ] + }, + "SetUnsetOptions": { + "patterns": [ + { + "name": "invalid.deprecated.options.gnuplot", + "match": "\\G\\s*\\b(?x:\n\t\t\t\t\t\tclabel |\n\t\t\t\t\t\tdata |\n\t\t\t\t\t\tfunction |\n\t\t\t\t\t\thistorysize |\n\t\t\t\t\t\tmacros |\n\t\t\t\t\t\tticslevel |\n\t\t\t\t\t\tticscale |\n\t\t\t\t\t\t(style\\s+increment\\s+\\w+)\n\t\t\t\t\t)\\b" + }, + { + "name": "support.class.options.gnuplot", + "match": "\\G\\s*\\b(?x:\n\t\t\t\t\t\tangles |\n\t\t\t\t\t\tarrow |\n\t\t\t\t\t\tautoscale |\n\t\t\t\t\t\tborder |\n\t\t\t\t\t\tboxwidth |\n\t\t\t\t\t\tclip |\n\t\t\t\t\t\tcntr(label|param) |\n\t\t\t\t\t\tcolor(box|sequence)?|\n\t\t\t\t\t\tcontour |\n\t\t\t\t\t\t(dash|line)type |\n\t\t\t\t\t\tdatafile |\n\t\t\t\t\t\tdecimal(sign)? |\n\t\t\t\t\t\tdgrid3d |\n\t\t\t\t\t\tdummy |\n\t\t\t\t\t\tencoding |\n\t\t\t\t\t\t(error)?bars |\n\t\t\t\t\t\tfit |\n\t\t\t\t\t\tfontpath |\n\t\t\t\t\t\tformat |\n\t\t\t\t\t\tgrid |\n\t\t\t\t\t\thidden3d |\n\t\t\t\t\t\thistory |\n\t\t\t\t\t\t(iso)?samples |\n\t\t\t\t\t\tjitter |\n\t\t\t\t\t\tkey |\n\t\t\t\t\t\tlabel |\n\t\t\t\t\t\tlink |\n\t\t\t\t\t\tloadpath |\n\t\t\t\t\t\tlocale |\n\t\t\t\t\t\tlogscale |\n\t\t\t\t\t\tmapping |\n\t\t\t\t\t\t[lrtb]margin |\n\t\t\t\t\t\tmargins |\n\t\t\t\t\t\tmicro |\n\t\t\t\t\t\tminus(sign)? |\n\t\t\t\t\t\tmono(chrome)? |\n\t\t\t\t\t\tmouse |\n\t\t\t\t\t\tmultiplot |\n\t\t\t\t\t\tnonlinear |\n\t\t\t\t\t\tobject |\n\t\t\t\t\t\toffsets |\n\t\t\t\t\t\torigin |\n\t\t\t\t\t\toutput |\n\t\t\t\t\t\tparametric |\n\t\t\t\t\t\t(p|r)axis |\n\t\t\t\t\t\tpm3d |\n\t\t\t\t\t\tpalette |\n\t\t\t\t\t\tpointintervalbox |\n\t\t\t\t\t\tpointsize |\n\t\t\t\t\t\tpolar |\n\t\t\t\t\t\tprint |\n\t\t\t\t\t\tpsdir |\n\t\t\t\t\t\tsize |\n\t\t\t\t\t\tstyle |\n\t\t\t\t\t\tsurface |\n\t\t\t\t\t\ttable |\n\t\t\t\t\t\tterminal |\n\t\t\t\t\t\ttermoption |\n\t\t\t\t\t\ttheta |\n\t\t\t\t\t\ttics |\n\t\t\t\t\t\ttimestamp |\n\t\t\t\t\t\ttimefmt |\n\t\t\t\t\t\ttitle |\n\t\t\t\t\t\tview |\n\t\t\t\t\t\txyplane |\n\t\t\t\t\t\tzero |\n\t\t\t\t\t\t(no)?(m)?(x|x2|y|y2|z|cb|r|t)tics |\n\t\t\t\t\t\t(x|x2|y|y2|z|cb)data |\n\t\t\t\t\t\t(x|x2|y|y2|z|cb|r)label |\n\t\t\t\t\t\t(x|x2|y|y2|z|cb)dtics |\n\t\t\t\t\t\t(x|x2|y|y2|z|cb)mtics |\n\t\t\t\t\t\t(x|x2|y|y2|z|cb|[rtuv])range |\n\t\t\t\t\t\t(x|x2|y|y2|z)?zeroaxis\n\t\t\t\t\t)\\b" + } + ] + }, + "ExtraShowOptions": { + "name": "support.class.options.gnuplot", + "match": "\\b(?x:\n\t\t\t\tall |\n\t\t\t\tbind |\n\t\t\t\tcolornames |\n\t\t\t\tfunctions |\n\t\t\t\tplot |\n\t\t\t\tvariables |\n\t\t\t\tversion\n\t\t\t)\\b" + }, + "PlotModifiers": { + "patterns": [ + { + "name": "invalid.deprecated.plot.gnuplot", + "match": "\\b(thru)\\b" + }, + { + "name": "storage.type.plot.gnuplot", + "match": "\\b(?x:\n\t\t\t\t\t\tin(dex)? |\n\t\t\t\t\t\tevery |\n\t\t\t\t\t\tus(ing)? |\n\t\t\t\t\t\twi(th)? |\n\t\t\t\t\t\tvia\n\t\t\t\t\t)\\b" + }, + { + "name": "storage.type.plot.gnuplot", + "match": "\\b(newhist(ogram)?)\\b" + } + ] + }, + "InvalidWord": { + "name": "invalid.illegal.gnuplot", + "match": "([^;#\\\\[:space:]]+)" + }, + "Expression": { + "patterns": [ + { + "include": "#Literal" + }, + { + "include": "#SpecialVariable" + }, + { + "include": "#BuiltinVariable" + }, + { + "include": "#BuiltinOperator" + }, + { + "include": "#TernaryExpr" + }, + { + "include": "#FunctionCallExpr" + }, + { + "include": "#SummationExpr" + } + ] + }, + "ForIterationExpr": { + "begin": "\\b(?x:\n\t\t\t\t(for)\\s* # 1: for keyword\n\t\t\t\t(\\[)\\s* # 2: opening bracket\n\t\t\t\t(?: # optionally\n\t\t\t\t\t([A-Za-z_]\\w*)\\s+ # 3: var name\n\t\t\t\t\t(in)\\b # 4: in keyword\n\t\t\t\t)?\n\t\t\t)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.gnuplot" + }, + "2": { + "patterns": [ + { + "include": "#RangeSeparators" + } + ] + }, + "3": { + "name": "variable.other.iterator.gnuplot" + }, + "4": { + "name": "keyword.control.flow.gnuplot" + } + }, + "end": "((\\])|(?=(#|\\\\(?!\\n)|(?<!\\\\)\\n$)))", + "endCaptures": { + "2": { + "patterns": [ + { + "include": "#RangeSeparators" + } + ] + } + }, + "patterns": [ + { + "include": "#Expression" + }, + { + "include": "#RangeSeparators" + } + ] + }, + "SummationExpr": { + "begin": "\\b(sum)\\s*(\\[)", + "beginCaptures": { + "1": { + "name": "keyword.other.sum.gnuplot" + }, + "2": { + "patterns": [ + { + "include": "#RangeSeparators" + } + ] + } + }, + "end": "((\\])|(?=(#|\\\\(?!\\n)|(?<!\\\\)\\n$)))", + "endCaptures": { + "2": { + "patterns": [ + { + "include": "#RangeSeparators" + } + ] + } + }, + "patterns": [ + { + "include": "#Expression" + }, + { + "include": "#RangeSeparators" + } + ] + }, + "FunctionCallExpr": { + "name": "meta.function-call.gnuplot", + "begin": "\\b([A-Za-z_]\\w*)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "variable.function.gnuplot", + "patterns": [ + { + "include": "#BuiltinFunction" + } + ] + }, + "2": { + "name": "punctuation.definition.arguments.begin.gnuplot" + } + }, + "end": "((\\))|(?=(#|\\\\(?!\\n)|(?<!\\\\)\\n$)))", + "endCaptures": { + "2": { + "name": "punctuation.definition.arguments.end.gnuplot" + } + }, + "patterns": [ + { + "include": "#Expression" + } + ] + }, + "TernaryExpr": { + "begin": "(?<!\\?)(\\?)(?!\\?)", + "beginCaptures": { + "1": { + "name": "keyword.operator.ternary.gnuplot" + } + }, + "end": "((?<!:)(:)(?!:)|(?=(#|\\\\(?!\\n)|(?<!\\\\)\\n$)))", + "endCaptures": { + "2": { + "name": "keyword.operator.ternary.gnuplot" + } + }, + "patterns": [ + { + "include": "#Expression" + } + ] + }, + "RangeSeparators": { + "patterns": [ + { + "name": "punctuation.section.brackets.begin.gnuplot", + "match": "(\\[)" + }, + { + "name": "punctuation.separator.range.gnuplot", + "match": "(:)" + }, + { + "name": "punctuation.section.brackets.end.gnuplot", + "match": "(\\])" + } + ] + }, + "BuiltinOperator": { + "patterns": [ + { + "name": "keyword.operator.logical.gnuplot", + "match": "(&&|\\|\\|)" + }, + { + "name": "keyword.operator.bitwise.gnuplot", + "match": "(<<|>>|&|\\||\\^)" + }, + { + "name": "keyword.operator.comparison.gnuplot", + "match": "(==|!=|<=|<|>=|>)" + }, + { + "name": "keyword.operator.assignment.gnuplot", + "match": "(=)" + }, + { + "name": "keyword.operator.arithmetic.gnuplot", + "match": "(\\+|-|~|!)" + }, + { + "name": "keyword.operator.arithmetic.gnuplot", + "match": "(\\*\\*|\\+|-|\\*|/|%)" + }, + { + "name": "keyword.operator.strings.gnuplot", + "match": "(\\.|\\b(eq|ne)\\b)", + "captures": { + "2": { + "name": "keyword.operator.word.gnuplot" + } + } + } + ] + }, + "BuiltinVariable": { + "patterns": [ + { + "name": "invalid.deprecated.variable.gnuplot", + "match": "\\b(?x:\n\t\t\t\t\t\tFIT_LIMIT |\n\t\t\t\t\t\tFIT_MAXITER |\n\t\t\t\t\t\tFIT_START_LAMBDA |\n\t\t\t\t\t\tFIT_LAMBDA_FACTOR |\n\t\t\t\t\t\tFIT_SKIP |\n\t\t\t\t\t\tFIT_INDEX\n\t\t\t\t\t)\\b" + }, + { + "name": "support.constant.gnuplot", + "match": "\\b(GPVAL_\\w*|MOUSE_\\w*)\\b" + }, + { + "name": "support.variable.gnuplot", + "match": "\\b(ARG[0-9C]|GPFUN_\\w*|FIT_\\w*|STATS_\\w*|pi|NaN)\\b" + } + ] + }, + "SpecialVariable": { + "patterns": [ + { + "match": "(?<=[\\[:=])\\s*(\\*)\\s*(?=[:\\]])", + "captures": { + "1": { + "name": "constant.language.wildcard.gnuplot" + } + } + }, + { + "name": "constant.language.special.gnuplot", + "match": "(([@$])[A-Za-z_]\\w*)\\b", + "captures": { + "2": { + "name": "punctuation.definition.variable.gnuplot" + } + } + } + ] + }, + "BuiltinFunction": { + "patterns": [ + { + "name": "invalid.deprecated.function.gnuplot", + "match": "\\b(?x:\n\t\t\t\t\t\tdefined\n\t\t\t\t\t)\\b" + }, + { + "name": "support.function.math.gnuplot", + "match": "\\b(?x:\n\t\t\t\t\t\tabs |\n\t\t\t\t\t\tacos |\n\t\t\t\t\t\tacosh |\n\t\t\t\t\t\tairy |\n\t\t\t\t\t\targ |\n\t\t\t\t\t\tasin |\n\t\t\t\t\t\tasinh |\n\t\t\t\t\t\tatan |\n\t\t\t\t\t\tatan2 |\n\t\t\t\t\t\tatanh |\n\t\t\t\t\t\tEllipticK |\n\t\t\t\t\t\tEllipticE |\n\t\t\t\t\t\tEllipticPi |\n\t\t\t\t\t\tbesj0 |\n\t\t\t\t\t\tbesj1 |\n\t\t\t\t\t\tbesy0 |\n\t\t\t\t\t\tbesy1 |\n\t\t\t\t\t\tceil |\n\t\t\t\t\t\tcos |\n\t\t\t\t\t\tcosh |\n\t\t\t\t\t\terf |\n\t\t\t\t\t\terfc |\n\t\t\t\t\t\texp |\n\t\t\t\t\t\texpint |\n\t\t\t\t\t\tfloor |\n\t\t\t\t\t\tgamma |\n\t\t\t\t\t\tibeta |\n\t\t\t\t\t\tinverf |\n\t\t\t\t\t\tigamma |\n\t\t\t\t\t\timag |\n\t\t\t\t\t\tinvnorm |\n\t\t\t\t\t\tint |\n\t\t\t\t\t\tlambertw |\n\t\t\t\t\t\tlgamma |\n\t\t\t\t\t\tlog |\n\t\t\t\t\t\tlog10 |\n\t\t\t\t\t\tnorm |\n\t\t\t\t\t\trand |\n\t\t\t\t\t\treal |\n\t\t\t\t\t\tsgn |\n\t\t\t\t\t\tsin |\n\t\t\t\t\t\tsinh |\n\t\t\t\t\t\tsqrt |\n\t\t\t\t\t\ttan |\n\t\t\t\t\t\ttanh |\n\t\t\t\t\t\tvoigt |\n\t\t\t\t\t\tcerf |\n\t\t\t\t\t\tcdawson |\n\t\t\t\t\t\tfaddeeva |\n\t\t\t\t\t\terfi |\n\t\t\t\t\t\tVP\n\t\t\t\t\t)\\b" + }, + { + "name": "support.function.string.gnuplot", + "match": "\\b(?x:\n\t\t\t\t\t\tgprintf |\n\t\t\t\t\t\tsprintf |\n\t\t\t\t\t\tstrlen |\n\t\t\t\t\t\tstrstrt |\n\t\t\t\t\t\tsubstr |\n\t\t\t\t\t\tstrftime |\n\t\t\t\t\t\tstrptime |\n\t\t\t\t\t\tsystem |\n\t\t\t\t\t\tword |\n\t\t\t\t\t\twords\n\t\t\t\t\t)\\b" + }, + { + "name": "support.function.other.gnuplot", + "match": "\\b(?x:\n\t\t\t\t\t\tcolumn |\n\t\t\t\t\t\tcolumnhead |\n\t\t\t\t\t\texists |\n\t\t\t\t\t\thsv2rgb |\n\t\t\t\t\t\tstringcolumn |\n\t\t\t\t\t\ttimecolumn |\n\t\t\t\t\t\ttm_hour |\n\t\t\t\t\t\ttm_mday |\n\t\t\t\t\t\ttm_min |\n\t\t\t\t\t\ttm_mon |\n\t\t\t\t\t\ttm_sec |\n\t\t\t\t\t\ttm_wday |\n\t\t\t\t\t\ttm_yday |\n\t\t\t\t\t\ttm_year |\n\t\t\t\t\t\ttime |\n\t\t\t\t\t\tvalid |\n\t\t\t\t\t\tvalue\n\t\t\t\t\t)\\b" + } + ] + }, + "Literal": { + "patterns": [ + { + "include": "#NumberLiteral" + }, + { + "include": "#DeprecatedScriptArgsLiteral" + }, + { + "include": "#SingleQuotedStringLiteral" + }, + { + "include": "#DoubleQuotedStringLiteral" + }, + { + "include": "#InterpolatedStringLiteral" + } + ] + }, + "NumberLiteral": { + "patterns": [ + { + "name": "constant.numeric.float.gnuplot", + "match": "(?x:\n\t\t\t\t\t\t# .5e2 and 0.5e2\n\t\t\t\t\t\t( ((\\b[0-9]+)|(?<!\\d)) ) # number or not a preceding digit\n\t\t\t\t\t\t( [.][0-9]+ ) # non-optional fractional\n\t\t\t\t\t\t( [Ee][+-]?[0-9]+ )? # optional exponent\n\t\t\t\t\t)(cm|in)?\\b" + }, + { + "name": "constant.numeric.float.gnuplot", + "match": "(?x:\n\t\t\t\t\t\t# 5e2 and 5.e2\n\t\t\t\t\t\t( \\b[0-9]+ ) # non-optional number\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t( ( [Ee][+-]?[0-9]+\\b ) ) | # non-optional exponent\n\t\t\t\t\t\t\t( [.] ( [Ee][+-]?[0-9]+\\b )? ) # point and optional exponent\n\t\t\t\t\t\t)\n\t\t\t\t\t)(cm\\b|in\\b)?" + }, + { + "name": "constant.numeric.hex.gnuplot", + "match": "\\b(0[Xx][0-9a-fA-F]+)(cm|in)?\\b" + }, + { + "name": "constant.numeric.dec.gnuplot", + "match": "\\b(0+)(cm|in)?\\b" + }, + { + "name": "constant.numeric.oct.gnuplot", + "match": "\\b(0[0-7]+)(cm|in)?\\b" + }, + { + "name": "invalid.illegal.oct.gnuplot", + "match": "\\b(0[0-9]+)(cm|in)?\\b" + }, + { + "name": "constant.numeric.dec.gnuplot", + "match": "\\b([0-9]+)(cm|in)?\\b" + } + ] + }, + "ColumnIndexLiteral": { + "name": "support.constant.columnindex.gnuplot", + "match": "([$][0-9]+)\\b" + }, + "DeprecatedScriptArgsLiteral": { + "name": "invalid.illegal.scriptargs.gnuplot", + "match": "([$][0-9#])" + }, + "SingleQuotedStringLiteral": { + "name": "string.quoted.single.gnuplot", + "begin": "(')", + "beginCaptures": { + "1": { + "name": "punctuation.definition.string.begin.gnuplot" + } + }, + "end": "((')(?!')|(?=(?<!\\\\)\\n$))", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.gnuplot" + } + }, + "patterns": [ + { + "include": "#RGBColorSpec" + }, + { + "name": "constant.character.escape.gnuplot", + "match": "('')" + } + ] + }, + "DoubleQuotedStringLiteral": { + "name": "string.quoted.double.gnuplot", + "begin": "(\")", + "beginCaptures": { + "1": { + "name": "punctuation.definition.string.begin.gnuplot" + } + }, + "end": "((\")|(?=(?<!\\\\)\\n$))", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.gnuplot" + } + }, + "patterns": [ + { + "include": "#EscapedChar" + }, + { + "include": "#RGBColorSpec" + }, + { + "include": "#DeprecatedScriptArgsLiteral" + }, + { + "include": "#InterpolatedStringLiteral" + } + ] + }, + "InterpolatedStringLiteral": { + "name": "string.interpolated.gnuplot", + "begin": "(`)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.string.begin.gnuplot" + } + }, + "end": "((`)|(?=(?<!\\\\)\\n$))", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.gnuplot" + } + }, + "patterns": [ + { + "include": "#EscapedChar" + } + ] + }, + "RGBColorSpec": { + "name": "constant.other.placeholder.gnuplot", + "match": "\\G(0x|#)(([0-9a-fA-F]{6})|([0-9a-fA-F]{8}))\\b" + }, + "EscapedChar": { + "name": "constant.character.escape.gnuplot", + "match": "(\\\\.)" + }, + "LineComment": { + "name": "comment.line.number-sign.gnuplot", + "begin": "(#)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.begin.gnuplot" + } + }, + "end": "(?=(?<!\\\\)\\n$)", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.end.gnuplot" + } + } + } + } +} diff --git a/docs/shiki/languages/go.tmLanguage.json b/docs/shiki/languages/go.tmLanguage.json new file mode 100644 index 00000000..32f9615e --- /dev/null +++ b/docs/shiki/languages/go.tmLanguage.json @@ -0,0 +1,1017 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/jeff-hykin/better-go-syntax/blob/master/export/generated.tmLanguage.json", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/jeff-hykin/better-go-syntax/commit/6175663a7a0e23d58ccf9aab95054cb6e5c92aff", + "name": "go", + "scopeName": "source.go", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#comments" + }, + { + "comment": "Interpreted string literals", + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.go" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.go" + } + }, + "name": "string.quoted.double.go", + "patterns": [ + { + "include": "#string_escaped_char" + }, + { + "include": "#string_placeholder" + } + ] + }, + { + "comment": "Raw string literals", + "begin": "`", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.go" + } + }, + "end": "`", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.go" + } + }, + "name": "string.quoted.raw.go", + "patterns": [ + { + "include": "#string_placeholder" + } + ] + }, + { + "comment": "Syntax error receiving channels", + "match": "<\\-([\\t ]+)chan\\b", + "captures": { + "1": { + "name": "invalid.illegal.receive-channel.go" + } + } + }, + { + "comment": "Syntax error sending channels", + "match": "\\bchan([\\t ]+)<-", + "captures": { + "1": { + "name": "invalid.illegal.send-channel.go" + } + } + }, + { + "comment": "Syntax error using slices", + "match": "\\[\\](\\s+)", + "captures": { + "1": { + "name": "invalid.illegal.slice.go" + } + } + }, + { + "comment": "Syntax error numeric literals", + "match": "\\b0[0-7]*[89]\\d*\\b", + "name": "invalid.illegal.numeric.go" + }, + { + "comment": "Built-in functions", + "match": "\\b(append|cap|close|complex|copy|delete|imag|len|make|new|panic|print|println|real|recover)\\b(?=\\()", + "name": "support.function.builtin.go" + }, + { + "comment": "Function declarations", + "match": "^(\\bfunc\\b)(?:\\s+(\\([^\\)]+\\)\\s+)?(\\w+)(?=\\())?", + "captures": { + "1": { + "name": "keyword.function.go" + }, + "2": { + "patterns": [ + { + "include": "#brackets" + }, + { + "include": "#operators" + } + ] + }, + "3": { + "patterns": [ + { + "match": "\\d\\w*", + "name": "invalid.illegal.identifier.go" + }, + { + "match": "\\w+", + "name": "entity.name.function.go" + } + ] + } + } + }, + { + "comment": "Functions", + "match": "(\\bfunc\\b)|(\\w+)(?=\\()", + "captures": { + "1": { + "name": "keyword.function.go" + }, + "2": { + "patterns": [ + { + "match": "\\d\\w*", + "name": "invalid.illegal.identifier.go" + }, + { + "match": "\\w+", + "name": "support.function.go" + } + ] + } + } + }, + { + "include": "#numeric_literals" + }, + { + "comment": "Language constants", + "match": "\\b(true|false|nil|iota)\\b", + "name": "constant.language.go" + }, + { + "begin": "\\b(package)\\s+", + "beginCaptures": { + "1": { + "name": "keyword.package.go" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "match": "\\d\\w*", + "name": "invalid.illegal.identifier.go" + }, + { + "match": "\\w+", + "name": "entity.name.package.go" + } + ] + }, + { + "begin": "\\b(type)\\s+", + "beginCaptures": { + "1": { + "name": "keyword.type.go" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "match": "\\d\\w*", + "name": "invalid.illegal.identifier.go" + }, + { + "match": "\\w+", + "name": "entity.name.type.go" + } + ] + }, + { + "begin": "\\b(import)\\s+", + "beginCaptures": { + "1": { + "name": "keyword.import.go" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "include": "#imports" + } + ] + }, + { + "begin": "\\b(var)\\s+", + "beginCaptures": { + "1": { + "name": "keyword.var.go" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "include": "#variables" + } + ] + }, + { + "match": "(?<!var)\\s*(\\w+(?:\\.\\w+)*(?>,\\s*\\w+(?:\\.\\w+)*)*)(?=\\s*=(?!=))", + "captures": { + "1": { + "patterns": [ + { + "match": "\\d\\w*", + "name": "invalid.illegal.identifier.go" + }, + { + "match": "\\w+(?:\\.\\w+)*", + "name": "variable.other.assignment.go", + "captures": { + "0": { + "patterns": [ + { + "include": "#delimiters" + } + ] + } + } + }, + { + "include": "#delimiters" + } + ] + } + } + }, + { + "match": "\\b\\w+(?:,\\s*\\w+)*(?=\\s*:=)", + "captures": { + "0": { + "patterns": [ + { + "match": "\\d\\w*", + "name": "invalid.illegal.identifier.go" + }, + { + "match": "\\w+", + "name": "variable.other.assignment.go" + }, + { + "include": "#delimiters" + } + ] + } + } + }, + { + "comment": "Terminators", + "match": ";", + "name": "punctuation.terminator.go" + }, + { + "include": "#brackets" + }, + { + "include": "#delimiters" + }, + { + "include": "#keywords" + }, + { + "include": "#operators" + }, + { + "include": "#runes" + }, + { + "include": "#storage_types" + } + ], + "repository": { + "brackets": { + "patterns": [ + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.begin.bracket.curly.go" + } + }, + "end": "}", + "endCaptures": { + "0": { + "name": "punctuation.definition.end.bracket.curly.go" + } + }, + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.begin.bracket.round.go" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.end.bracket.round.go" + } + }, + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "match": "\\[|\\]", + "name": "punctuation.definition.bracket.square.go" + } + ] + }, + "comments": { + "patterns": [ + { + "name": "comment.block.go", + "begin": "(\\/\\*)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.go" + } + }, + "end": "(\\*\\/)", + "endCaptures": { + "1": { + "name": "punctuation.definition.comment.go" + } + } + }, + { + "name": "comment.line.double-slash.go", + "begin": "(\\/\\/)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.go" + } + }, + "end": "(?:\\n|$)" + } + ] + }, + "delimiters": { + "patterns": [ + { + "match": ",", + "name": "punctuation.other.comma.go" + }, + { + "match": "\\.(?!\\.\\.)", + "name": "punctuation.other.period.go" + }, + { + "match": ":(?!=)", + "name": "punctuation.other.colon.go" + } + ] + }, + "imports": { + "patterns": [ + { + "match": "((?!\\s+\")[^\\s]*)?\\s*((\")([^\"]*)(\"))", + "captures": { + "1": { + "name": "entity.alias.import.go" + }, + "2": { + "name": "string.quoted.double.go" + }, + "3": { + "name": "punctuation.definition.string.begin.go" + }, + "4": { + "name": "entity.name.import.go" + }, + "5": { + "name": "punctuation.definition.string.end.go" + } + } + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.imports.begin.bracket.round.go" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.imports.end.bracket.round.go" + } + }, + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#imports" + } + ] + } + ] + }, + "keywords": { + "patterns": [ + { + "comment": "Flow control keywords", + "match": "\\b(break|case|continue|default|defer|else|fallthrough|for|go|goto|if|range|return|select|switch)\\b", + "name": "keyword.control.go" + }, + { + "match": "\\bchan\\b", + "name": "keyword.channel.go" + }, + { + "match": "\\bconst\\b", + "name": "keyword.const.go" + }, + { + "match": "\\bfunc\\b", + "name": "keyword.function.go" + }, + { + "match": "\\binterface\\b", + "name": "keyword.interface.go" + }, + { + "match": "\\bmap\\b", + "name": "keyword.map.go" + }, + { + "match": "\\bstruct\\b", + "name": "keyword.struct.go" + } + ] + }, + "operators": { + "comment": "Note that the order here is very important!", + "patterns": [ + { + "match": "(\\*|&)(?=\\w)", + "name": "keyword.operator.address.go" + }, + { + "match": "<\\-", + "name": "keyword.operator.channel.go" + }, + { + "match": "\\-\\-", + "name": "keyword.operator.decrement.go" + }, + { + "match": "\\+\\+", + "name": "keyword.operator.increment.go" + }, + { + "match": "(==|!=|<=|>=|<(?!<)|>(?!>))", + "name": "keyword.operator.comparison.go" + }, + { + "match": "(&&|\\|\\||!)", + "name": "keyword.operator.logical.go" + }, + { + "match": "(=|\\+=|\\-=|\\|=|\\^=|\\*=|/=|:=|%=|<<=|>>=|&\\^=|&=)", + "name": "keyword.operator.assignment.go" + }, + { + "match": "(\\+|\\-|\\*|/|%)", + "name": "keyword.operator.arithmetic.go" + }, + { + "match": "(&(?!\\^)|\\||\\^|&\\^|<<|>>)", + "name": "keyword.operator.arithmetic.bitwise.go" + }, + { + "match": "\\.\\.\\.", + "name": "keyword.operator.ellipsis.go" + } + ] + }, + "runes": { + "patterns": [ + { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.go" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.go" + } + }, + "name": "string.quoted.rune.go", + "patterns": [ + { + "match": "\\G(\\\\([0-7]{3}|[abfnrtv\\\\'\"]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})|.)(?=')", + "name": "constant.other.rune.go" + }, + { + "match": "[^']+", + "name": "invalid.illegal.unknown-rune.go" + } + ] + } + ] + }, + "storage_types": { + "patterns": [ + { + "match": "\\bbool\\b", + "name": "storage.type.boolean.go" + }, + { + "match": "\\bbyte\\b", + "name": "storage.type.byte.go" + }, + { + "match": "\\berror\\b", + "name": "storage.type.error.go" + }, + { + "match": "\\b(complex(64|128)|float(32|64)|u?int(8|16|32|64)?)\\b", + "name": "storage.type.numeric.go" + }, + { + "match": "\\brune\\b", + "name": "storage.type.rune.go" + }, + { + "match": "\\bstring\\b", + "name": "storage.type.string.go" + }, + { + "match": "\\buintptr\\b", + "name": "storage.type.uintptr.go" + } + ] + }, + "string_escaped_char": { + "patterns": [ + { + "match": "\\\\([0-7]{3}|[abfnrtv\\\\'\"]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})", + "name": "constant.character.escape.go" + }, + { + "match": "\\\\[^0-7xuUabfnrtv\\'\"]", + "name": "invalid.illegal.unknown-escape.go" + } + ] + }, + "string_placeholder": { + "patterns": [ + { + "match": "%(\\[\\d+\\])?([\\+#\\-0\\x20]{,2}((\\d+|\\*)?(\\.?(\\d+|\\*|(\\[\\d+\\])\\*?)?(\\[\\d+\\])?)?))?[vT%tbcdoqxXUbeEfFgGspw]", + "name": "constant.other.placeholder.go" + } + ] + }, + "variables": { + "patterns": [ + { + "match": "(\\w+(?:,\\s*\\w+)*)(\\s+\\*?\\w+(?:\\.\\w+)?\\s*)?(?=\\s*=)", + "captures": { + "1": { + "patterns": [ + { + "match": "\\d\\w*", + "name": "invalid.illegal.identifier.go" + }, + { + "match": "\\w+", + "name": "variable.other.assignment.go" + }, + { + "include": "#delimiters" + } + ] + }, + "2": { + "patterns": [ + { + "include": "$self" + } + ] + } + } + }, + { + "match": "(\\w+(?:,\\s*\\w+)*)(\\s+(\\[(\\d*|\\.\\.\\.)\\])*\\*?(<-)?\\w+(?:\\.\\w+)?\\s*[^=].*)", + "captures": { + "1": { + "patterns": [ + { + "match": "\\d\\w*", + "name": "invalid.illegal.identifier.go" + }, + { + "match": "\\w+", + "name": "variable.other.declaration.go" + }, + { + "include": "#delimiters" + } + ] + }, + "2": { + "patterns": [ + { + "include": "$self" + } + ] + } + } + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.variables.begin.bracket.round.go" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.variables.end.bracket.round.go" + } + }, + "patterns": [ + { + "include": "$self" + }, + { + "include": "#variables" + } + ] + } + ] + }, + "numeric_literals": { + "match": "(?<!\\w)\\.?\\d(?:(?:[0-9a-zA-Z_\\.])|(?<=[eEpP])[+-])*", + "captures": { + "0": { + "patterns": [ + { + "begin": "(?=.)", + "end": "(?:\\n|$)", + "patterns": [ + { + "match": "(?:(?:(?:(?:(?:\\G(?=[0-9.])(?!0[xXbBoO])([0-9](?:[0-9]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)((?:(?<=[0-9])\\.|\\.(?=[0-9])))([0-9](?:[0-9]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)?(?:(?<!_)([eE])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)))?(i(?!\\w))?(?:\\n|$)|\\G(?=[0-9.])(?!0[xXbBoO])([0-9](?:[0-9]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(?<!_)([eE])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*))(i(?!\\w))?(?:\\n|$))|\\G((?:(?<=[0-9])\\.|\\.(?=[0-9])))([0-9](?:[0-9]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(?:(?<!_)([eE])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)))?(i(?!\\w))?(?:\\n|$))|(\\G0[xX])_?([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)((?:(?<=[0-9a-fA-F])\\.|\\.(?=[0-9a-fA-F])))([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)?(?<!_)([pP])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*))(i(?!\\w))?(?:\\n|$))|(\\G0[xX])_?([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(?<!_)([pP])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*))(i(?!\\w))?(?:\\n|$))|(\\G0[xX])((?:(?<=[0-9a-fA-F])\\.|\\.(?=[0-9a-fA-F])))([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(?<!_)([pP])(\\+?)(\\-?)((?:[0-9](?:[0-9]|(?:(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*))(i(?!\\w))?(?:\\n|$))", + "captures": { + "1": { + "name": "constant.numeric.decimal.go", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.go" + } + ] + }, + "2": { + "name": "punctuation.separator.constant.numeric.go" + }, + "3": { + "name": "constant.numeric.decimal.point.go" + }, + "4": { + "name": "constant.numeric.decimal.go", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.go" + } + ] + }, + "5": { + "name": "punctuation.separator.constant.numeric.go" + }, + "6": { + "name": "keyword.other.unit.exponent.decimal.go" + }, + "7": { + "name": "keyword.operator.plus.exponent.decimal.go" + }, + "8": { + "name": "keyword.operator.minus.exponent.decimal.go" + }, + "9": { + "name": "constant.numeric.exponent.decimal.go", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.go" + } + ] + }, + "10": { + "name": "keyword.other.unit.imaginary.go" + }, + "11": { + "name": "constant.numeric.decimal.go", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.go" + } + ] + }, + "12": { + "name": "punctuation.separator.constant.numeric.go" + }, + "13": { + "name": "keyword.other.unit.exponent.decimal.go" + }, + "14": { + "name": "keyword.operator.plus.exponent.decimal.go" + }, + "15": { + "name": "keyword.operator.minus.exponent.decimal.go" + }, + "16": { + "name": "constant.numeric.exponent.decimal.go", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.go" + } + ] + }, + "17": { + "name": "keyword.other.unit.imaginary.go" + }, + "18": { + "name": "constant.numeric.decimal.point.go" + }, + "19": { + "name": "constant.numeric.decimal.go", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.go" + } + ] + }, + "20": { + "name": "punctuation.separator.constant.numeric.go" + }, + "21": { + "name": "keyword.other.unit.exponent.decimal.go" + }, + "22": { + "name": "keyword.operator.plus.exponent.decimal.go" + }, + "23": { + "name": "keyword.operator.minus.exponent.decimal.go" + }, + "24": { + "name": "constant.numeric.exponent.decimal.go", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.go" + } + ] + }, + "25": { + "name": "keyword.other.unit.imaginary.go" + }, + "26": { + "name": "keyword.other.unit.hexadecimal.go" + }, + "27": { + "name": "constant.numeric.hexadecimal.go", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.go" + } + ] + }, + "28": { + "name": "punctuation.separator.constant.numeric.go" + }, + "29": { + "name": "constant.numeric.hexadecimal.go" + }, + "30": { + "name": "constant.numeric.hexadecimal.go", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.go" + } + ] + }, + "31": { + "name": "punctuation.separator.constant.numeric.go" + }, + "32": { + "name": "keyword.other.unit.exponent.hexadecimal.go" + }, + "33": { + "name": "keyword.operator.plus.exponent.hexadecimal.go" + }, + "34": { + "name": "keyword.operator.minus.exponent.hexadecimal.go" + }, + "35": { + "name": "constant.numeric.exponent.hexadecimal.go", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.go" + } + ] + }, + "36": { + "name": "keyword.other.unit.imaginary.go" + }, + "37": { + "name": "keyword.other.unit.hexadecimal.go" + }, + "38": { + "name": "constant.numeric.hexadecimal.go", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.go" + } + ] + }, + "39": { + "name": "punctuation.separator.constant.numeric.go" + }, + "40": { + "name": "keyword.other.unit.exponent.hexadecimal.go" + }, + "41": { + "name": "keyword.operator.plus.exponent.hexadecimal.go" + }, + "42": { + "name": "keyword.operator.minus.exponent.hexadecimal.go" + }, + "43": { + "name": "constant.numeric.exponent.hexadecimal.go", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.go" + } + ] + }, + "44": { + "name": "keyword.other.unit.imaginary.go" + }, + "45": { + "name": "keyword.other.unit.hexadecimal.go" + }, + "46": { + "name": "constant.numeric.hexadecimal.go" + }, + "47": { + "name": "constant.numeric.hexadecimal.go", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.go" + } + ] + }, + "48": { + "name": "punctuation.separator.constant.numeric.go" + }, + "49": { + "name": "keyword.other.unit.exponent.hexadecimal.go" + }, + "50": { + "name": "keyword.operator.plus.exponent.hexadecimal.go" + }, + "51": { + "name": "keyword.operator.minus.exponent.hexadecimal.go" + }, + "52": { + "name": "constant.numeric.exponent.hexadecimal.go", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.go" + } + ] + }, + "53": { + "name": "keyword.other.unit.imaginary.go" + } + } + }, + { + "match": "(?:(?:(?:\\G(?=[0-9.])(?!0[xXbBoO])([0-9](?:[0-9]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(i(?!\\w))?(?:\\n|$)|(\\G0[bB])_?([01](?:[01]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(i(?!\\w))?(?:\\n|$))|(\\G0[oO]?)_?((?:[0-7]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))+)(i(?!\\w))?(?:\\n|$))|(\\G0[xX])_?([0-9a-fA-F](?:[0-9a-fA-F]|((?<=[0-9a-fA-F])_(?=[0-9a-fA-F])))*)(i(?!\\w))?(?:\\n|$))", + "captures": { + "1": { + "name": "constant.numeric.decimal.go", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.go" + } + ] + }, + "2": { + "name": "punctuation.separator.constant.numeric.go" + }, + "3": { + "name": "keyword.other.unit.imaginary.go" + }, + "4": { + "name": "keyword.other.unit.binary.go" + }, + "5": { + "name": "constant.numeric.binary.go", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.go" + } + ] + }, + "6": { + "name": "punctuation.separator.constant.numeric.go" + }, + "7": { + "name": "keyword.other.unit.imaginary.go" + }, + "8": { + "name": "keyword.other.unit.octal.go" + }, + "9": { + "name": "constant.numeric.octal.go", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.go" + } + ] + }, + "10": { + "name": "punctuation.separator.constant.numeric.go" + }, + "11": { + "name": "keyword.other.unit.imaginary.go" + }, + "12": { + "name": "keyword.other.unit.hexadecimal.go" + }, + "13": { + "name": "constant.numeric.hexadecimal.go", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])_(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.go" + } + ] + }, + "14": { + "name": "punctuation.separator.constant.numeric.go" + }, + "15": { + "name": "keyword.other.unit.imaginary.go" + } + } + }, + { + "match": "(?:(?:[0-9a-zA-Z_\\.])|(?<=[eEpP])[+-])+", + "name": "invalid.illegal.constant.numeric.go" + } + ] + } + ] + } + } + } + } +} diff --git a/docs/shiki/languages/graphql.tmLanguage.json b/docs/shiki/languages/graphql.tmLanguage.json new file mode 100644 index 00000000..44c48e42 --- /dev/null +++ b/docs/shiki/languages/graphql.tmLanguage.json @@ -0,0 +1,1289 @@ +{ + "name": "graphql", + "scopeName": "source.graphql", + "fileTypes": ["graphql", "graphqls", "gql", "graphcool"], + "patterns": [ + { + "include": "#graphql" + } + ], + "repository": { + "graphql": { + "patterns": [ + { + "include": "#graphql-comment" + }, + { + "include": "#graphql-description-docstring" + }, + { + "include": "#graphql-description-singleline" + }, + { + "include": "#graphql-fragment-definition" + }, + { + "include": "#graphql-directive-definition" + }, + { + "include": "#graphql-type-interface" + }, + { + "include": "#graphql-enum" + }, + { + "include": "#graphql-scalar" + }, + { + "include": "#graphql-union" + }, + { + "include": "#graphql-schema" + }, + { + "include": "#graphql-operation-def" + }, + { + "include": "#literal-quasi-embedded" + } + ] + }, + "graphql-operation-def": { + "patterns": [ + { + "include": "#graphql-query-mutation" + }, + { + "include": "#graphql-name" + }, + { + "include": "#graphql-variable-definitions" + }, + { + "include": "#graphql-directive" + }, + { + "include": "#graphql-selection-set" + } + ] + }, + "graphql-fragment-definition": { + "name": "meta.fragment.graphql", + "begin": "\\s*(?:(\\bfragment\\b)\\s*([_A-Za-z][_0-9A-Za-z]*)?\\s*(?:(\\bon\\b)\\s*([_A-Za-z][_0-9A-Za-z]*)))", + "end": "(?<=})", + "captures": { + "1": { + "name": "keyword.fragment.graphql" + }, + "2": { + "name": "entity.name.fragment.graphql" + }, + "3": { + "name": "keyword.on.graphql" + }, + "4": { + "name": "support.type.graphql" + } + }, + "patterns": [ + { + "include": "#graphql-comment" + }, + { + "include": "#graphql-description-docstring" + }, + { + "include": "#graphql-description-singleline" + }, + { + "include": "#graphql-selection-set" + }, + { + "include": "#graphql-directive" + }, + { + "include": "#graphql-skip-newlines" + }, + { + "include": "#literal-quasi-embedded" + } + ] + }, + "graphql-query-mutation": { + "match": "\\s*\\b(query|mutation)\\b", + "captures": { + "1": { + "name": "keyword.operation.graphql" + } + } + }, + "graphql-type-interface": { + "name": "meta.type.interface.graphql", + "begin": "\\s*\\b(?:(extends?)?\\b\\s*\\b(type)|(interface)|(input))\\b\\s*([_A-Za-z][_0-9A-Za-z]*)?", + "end": "(?=.)", + "applyEndPatternLast": 1, + "captures": { + "1": { + "name": "keyword.type.graphql" + }, + "2": { + "name": "keyword.type.graphql" + }, + "3": { + "name": "keyword.interface.graphql" + }, + "4": { + "name": "keyword.input.graphql" + }, + "5": { + "name": "support.type.graphql" + } + }, + "patterns": [ + { + "begin": "\\s*\\b(implements)\\b\\s*", + "end": "\\s*(?={)", + "beginCaptures": { + "1": { + "name": "keyword.implements.graphql" + } + }, + "patterns": [ + { + "match": "\\s*([_A-Za-z][_0-9A-Za-z]*)", + "captures": { + "1": { + "name": "support.type.graphql" + } + } + }, + { + "include": "#graphql-comment" + }, + { + "include": "#graphql-description-docstring" + }, + { + "include": "#graphql-description-singleline" + }, + { + "include": "#graphql-directive" + }, + { + "include": "#graphql-ampersand" + }, + { + "include": "#graphql-comma" + } + ] + }, + { + "include": "#graphql-comment" + }, + { + "include": "#graphql-description-docstring" + }, + { + "include": "#graphql-description-singleline" + }, + { + "include": "#graphql-directive" + }, + { + "include": "#graphql-type-object" + }, + { + "include": "#literal-quasi-embedded" + }, + { + "include": "#graphql-ignore-spaces" + } + ] + }, + "graphql-ignore-spaces": { + "match": "\\s*" + }, + "graphql-type-object": { + "name": "meta.type.object.graphql", + "begin": "\\s*({)", + "end": "\\s*(})", + "beginCaptures": { + "1": { + "name": "punctuation.operation.graphql" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.operation.graphql" + } + }, + "patterns": [ + { + "include": "#graphql-comment" + }, + { + "include": "#graphql-description-docstring" + }, + { + "include": "#graphql-description-singleline" + }, + { + "include": "#graphql-object-type" + }, + { + "include": "#graphql-type-definition" + }, + { + "include": "#literal-quasi-embedded" + } + ] + }, + "graphql-type-definition": { + "comment": "key (optionalArgs): Type", + "begin": "\\s*([_A-Za-z][_0-9A-Za-z]*)(?=\\s*\\(|:)", + "end": "(?=\\s*(([_A-Za-z][_0-9A-Za-z]*)\\s*(\\(|:)|(})))|\\s*(,)", + "beginCaptures": { + "1": { + "name": "variable.graphql" + } + }, + "endCaptures": { + "5": { + "name": "punctuation.comma.graphql" + } + }, + "patterns": [ + { + "include": "#graphql-comment" + }, + { + "include": "#graphql-description-docstring" + }, + { + "include": "#graphql-description-singleline" + }, + { + "include": "#graphql-directive" + }, + { + "include": "#graphql-variable-definitions" + }, + { + "include": "#graphql-type-object" + }, + { + "include": "#graphql-colon" + }, + { + "include": "#graphql-input-types" + }, + { + "include": "#literal-quasi-embedded" + } + ] + }, + "graphql-schema": { + "begin": "\\s*\\b(schema)\\b", + "end": "(?<=})", + "beginCaptures": { + "1": { + "name": "keyword.schema.graphql" + } + }, + "patterns": [ + { + "begin": "\\s*({)", + "end": "\\s*(})", + "beginCaptures": { + "1": { + "name": "punctuation.operation.graphql" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.operation.graphql" + } + }, + "patterns": [ + { + "begin": "\\s*([_A-Za-z][_0-9A-Za-z]*)(?=\\s*\\(|:)", + "end": "(?=\\s*(([_A-Za-z][_0-9A-Za-z]*)\\s*(\\(|:)|(})))|\\s*(,)", + "beginCaptures": { + "1": { + "name": "variable.arguments.graphql" + } + }, + "endCaptures": { + "5": { + "name": "punctuation.comma.graphql" + } + }, + "patterns": [ + { + "match": "\\s*([_A-Za-z][_0-9A-Za-z]*)", + "captures": { + "1": { + "name": "support.type.graphql" + } + } + }, + { + "include": "#graphql-comment" + }, + { + "include": "#graphql-description-docstring" + }, + { + "include": "#graphql-description-singleline" + }, + { + "include": "#graphql-colon" + }, + { + "include": "#graphql-skip-newlines" + } + ] + }, + { + "include": "#graphql-comment" + }, + { + "include": "#graphql-description-docstring" + }, + { + "include": "#graphql-description-singleline" + }, + { + "include": "#graphql-skip-newlines" + } + ] + }, + { + "include": "#graphql-comment" + }, + { + "include": "#graphql-description-docstring" + }, + { + "include": "#graphql-description-singleline" + }, + { + "include": "#graphql-directive" + }, + { + "include": "#graphql-skip-newlines" + } + ] + }, + "graphql-comment": { + "patterns": [ + { + "comment": "need to prefix comment space with a scope else Atom's reflow cmd doesn't work", + "name": "comment.line.graphql.js", + "match": "(\\s*)(#).*", + "captures": { + "1": { + "name": "punctuation.whitespace.comment.leading.graphql" + } + } + }, + { + "name": "comment.line.graphql.js", + "begin": "(\"\"\")", + "end": "(\"\"\")", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.graphql" + } + } + }, + { + "name": "comment.line.graphql.js", + "begin": "(\")", + "end": "(\")", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.graphql" + } + } + } + ] + }, + "graphql-description-singleline": { + "name": "comment.line.number-sign.graphql", + "match": "#(?=([^\"]*\"[^\"]*\")*[^\"]*$).*$" + }, + "graphql-description-docstring": { + "name": "comment.block.graphql", + "begin": "\"\"\"", + "end": "\"\"\"" + }, + "graphql-variable-definitions": { + "begin": "\\s*(\\()", + "end": "\\s*(\\))", + "captures": { + "1": { + "name": "meta.brace.round.graphql" + } + }, + "patterns": [ + { + "include": "#graphql-comment" + }, + { + "include": "#graphql-description-docstring" + }, + { + "include": "#graphql-description-singleline" + }, + { + "include": "#graphql-variable-definition" + }, + { + "include": "#literal-quasi-embedded" + } + ] + }, + "graphql-variable-definition": { + "comment": "variable: type = value,.... which may be a list", + "name": "meta.variables.graphql", + "begin": "\\s*(\\$?[_A-Za-z][_0-9A-Za-z]*)(?=\\s*\\(|:)", + "end": "(?=\\s*((\\$?[_A-Za-z][_0-9A-Za-z]*)\\s*(\\(|:)|(}|\\))))|\\s*(,)", + "beginCaptures": { + "1": { + "name": "variable.parameter.graphql" + } + }, + "endCaptures": { + "5": { + "name": "punctuation.comma.graphql" + } + }, + "patterns": [ + { + "include": "#graphql-comment" + }, + { + "include": "#graphql-description-docstring" + }, + { + "include": "#graphql-description-singleline" + }, + { + "include": "#graphql-directive" + }, + { + "include": "#graphql-colon" + }, + { + "include": "#graphql-input-types" + }, + { + "include": "#graphql-variable-assignment" + }, + { + "include": "#literal-quasi-embedded" + }, + { + "include": "#graphql-skip-newlines" + } + ] + }, + "graphql-input-types": { + "patterns": [ + { + "include": "#graphql-scalar-type" + }, + { + "match": "\\s*([_A-Za-z][_0-9A-Za-z]*)(?:\\s*(!))?", + "captures": { + "1": { + "name": "support.type.graphql" + }, + "2": { + "name": "keyword.operator.nulltype.graphql" + } + } + }, + { + "name": "meta.type.list.graphql", + "begin": "\\s*(\\[)", + "end": "\\s*(\\])(?:\\s*(!))?", + "captures": { + "1": { + "name": "meta.brace.square.graphql" + }, + "2": { + "name": "keyword.operator.nulltype.graphql" + } + }, + "patterns": [ + { + "include": "#graphql-comment" + }, + { + "include": "#graphql-description-docstring" + }, + { + "include": "#graphql-description-singleline" + }, + { + "include": "#graphql-input-types" + }, + { + "include": "#graphql-comma" + }, + { + "include": "#literal-quasi-embedded" + } + ] + } + ] + }, + "graphql-scalar": { + "match": "\\s*\\b(scalar)\\b\\s*([_A-Za-z][_0-9A-Za-z]*)", + "captures": { + "1": { + "name": "keyword.scalar.graphql" + }, + "2": { + "name": "entity.scalar.graphql" + } + } + }, + "graphql-scalar-type": { + "match": "\\s*\\b(Int|Float|String|Boolean|ID)\\b(?:\\s*(!))?", + "captures": { + "1": { + "name": "support.type.builtin.graphql" + }, + "2": { + "name": "keyword.operator.nulltype.graphql" + } + } + }, + "graphql-variable-assignment": { + "begin": "\\s(=)", + "end": "(?=[\n,)])", + "applyEndPatternLast": 1, + "beginCaptures": { + "1": { + "name": "punctuation.assignment.graphql" + } + }, + "patterns": [ + { + "include": "#graphql-value" + } + ] + }, + "graphql-comma": { + "match": "\\s*(,)", + "captures": { + "1": { + "name": "punctuation.comma.graphql" + } + } + }, + "graphql-ampersand": { + "match": "\\s*(&)", + "captures": { + "1": { + "name": "keyword.operator.logical.graphql" + } + } + }, + "graphql-colon": { + "match": "\\s*(:)", + "captures": { + "1": { + "name": "punctuation.colon.graphql" + } + } + }, + "graphql-union-mark": { + "match": "\\s*(\\|)", + "captures": { + "1": { + "name": "punctuation.union.graphql" + } + } + }, + "graphql-name": { + "match": "\\s*([_A-Za-z][_0-9A-Za-z]*)", + "captures": { + "1": { + "name": "entity.name.function.graphql" + } + } + }, + "graphql-directive": { + "begin": "\\s*((@)\\s*([_A-Za-z][_0-9A-Za-z]*))", + "end": "(?=.)", + "applyEndPatternLast": 1, + "beginCaptures": { + "1": { + "name": "entity.name.function.directive.graphql" + } + }, + "patterns": [ + { + "include": "#graphql-comment" + }, + { + "include": "#graphql-description-docstring" + }, + { + "include": "#graphql-description-singleline" + }, + { + "include": "#graphql-arguments" + }, + { + "include": "#literal-quasi-embedded" + }, + { + "include": "#graphql-skip-newlines" + } + ] + }, + "graphql-directive-definition": { + "begin": "\\s*(\\bdirective\\b)\\s*(@[_A-Za-z][_0-9A-Za-z]*)", + "end": "(?=.)", + "applyEndPatternLast": 1, + "beginCaptures": { + "1": { + "name": "keyword.directive.graphql" + }, + "2": { + "name": "entity.name.function.directive.graphql" + }, + "3": { + "name": "keyword.on.graphql" + }, + "4": { + "name": "support.type.graphql" + } + }, + "patterns": [ + { + "include": "#graphql-variable-definitions" + }, + { + "begin": "\\s*(\\bon\\b)\\s*([_A-Za-z]*)", + "end": "(?=.)", + "applyEndPatternLast": 1, + "beginCaptures": { + "1": { + "name": "keyword.on.graphql" + }, + "2": { + "name": "support.type.location.graphql" + } + }, + "patterns": [ + { + "include": "#graphql-skip-newlines" + }, + { + "include": "#graphql-comment" + }, + { + "include": "#literal-quasi-embedded" + }, + { + "match": "\\s*(\\|)\\s*([_A-Za-z]*)", + "captures": { + "2": { + "name": "support.type.location.graphql" + } + } + } + ] + }, + { + "include": "#graphql-skip-newlines" + }, + { + "include": "#graphql-comment" + }, + { + "include": "#literal-quasi-embedded" + } + ] + }, + "graphql-selection-set": { + "name": "meta.selectionset.graphql", + "begin": "\\s*({)", + "end": "\\s*(})", + "beginCaptures": { + "1": { + "name": "punctuation.operation.graphql" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.operation.graphql" + } + }, + "patterns": [ + { + "include": "#graphql-comment" + }, + { + "include": "#graphql-description-docstring" + }, + { + "include": "#graphql-description-singleline" + }, + { + "include": "#graphql-field" + }, + { + "include": "#graphql-fragment-spread" + }, + { + "include": "#graphql-inline-fragment" + }, + { + "include": "#graphql-comma" + }, + { + "include": "#native-interpolation" + }, + { + "include": "#literal-quasi-embedded" + } + ] + }, + "graphql-field": { + "patterns": [ + { + "match": "\\s*([_A-Za-z][_0-9A-Za-z]*)\\s*(:)", + "captures": { + "1": { + "name": "string.unquoted.alias.graphql" + }, + "2": { + "name": "punctuation.colon.graphql" + } + } + }, + { + "match": "\\s*([_A-Za-z][_0-9A-Za-z]*)", + "captures": { + "1": { + "name": "variable.graphql" + } + } + }, + { + "include": "#graphql-arguments" + }, + { + "include": "#graphql-directive" + }, + { + "include": "#graphql-selection-set" + }, + { + "include": "#literal-quasi-embedded" + }, + { + "include": "#graphql-skip-newlines" + } + ] + }, + "graphql-fragment-spread": { + "begin": "\\s*(\\.\\.\\.)\\s*(?!\\bon\\b)([_A-Za-z][_0-9A-Za-z]*)", + "end": "(?=.)", + "applyEndPatternLast": 1, + "captures": { + "1": { + "name": "keyword.operator.spread.graphql" + }, + "2": { + "name": "variable.fragment.graphql" + } + }, + "patterns": [ + { + "include": "#graphql-comment" + }, + { + "include": "#graphql-description-docstring" + }, + { + "include": "#graphql-description-singleline" + }, + { + "include": "#graphql-selection-set" + }, + { + "include": "#graphql-directive" + }, + { + "include": "#literal-quasi-embedded" + }, + { + "include": "#graphql-skip-newlines" + } + ] + }, + "graphql-inline-fragment": { + "begin": "\\s*(\\.\\.\\.)\\s*(?:(\\bon\\b)\\s*([_A-Za-z][_0-9A-Za-z]*))?", + "end": "(?=.)", + "applyEndPatternLast": 1, + "captures": { + "1": { + "name": "keyword.operator.spread.graphql" + }, + "2": { + "name": "keyword.on.graphql" + }, + "3": { + "name": "support.type.graphql" + } + }, + "patterns": [ + { + "include": "#graphql-comment" + }, + { + "include": "#graphql-description-docstring" + }, + { + "include": "#graphql-description-singleline" + }, + { + "include": "#graphql-selection-set" + }, + { + "include": "#graphql-directive" + }, + { + "include": "#graphql-skip-newlines" + }, + { + "include": "#literal-quasi-embedded" + } + ] + }, + "graphql-arguments": { + "name": "meta.arguments.graphql", + "begin": "\\s*(\\()", + "end": "\\s*(\\))", + "beginCaptures": { + "1": { + "name": "meta.brace.round.directive.graphql" + } + }, + "endCaptures": { + "1": { + "name": "meta.brace.round.directive.graphql" + } + }, + "patterns": [ + { + "include": "#graphql-comment" + }, + { + "include": "#graphql-description-docstring" + }, + { + "include": "#graphql-description-singleline" + }, + { + "begin": "\\s*([_A-Za-z][_0-9A-Za-z]*)(?:\\s*(:))", + "end": "(?=\\s*(?:(?:([_A-Za-z][_0-9A-Za-z]*)\\s*(:))|\\)))|\\s*(,)", + "beginCaptures": { + "1": { + "name": "variable.parameter.graphql" + }, + "2": { + "name": "punctuation.colon.graphql" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.comma.graphql" + } + }, + "patterns": [ + { + "include": "#graphql-comment" + }, + { + "include": "#graphql-description-docstring" + }, + { + "include": "#graphql-description-singleline" + }, + { + "include": "#graphql-directive" + }, + { + "include": "#graphql-value" + }, + { + "include": "#graphql-skip-newlines" + } + ] + }, + { + "include": "#literal-quasi-embedded" + } + ] + }, + "graphql-variable-name": { + "match": "\\s*(\\$[_A-Za-z][_0-9A-Za-z]*)", + "captures": { + "1": { + "name": "variable.graphql" + } + } + }, + "graphql-float-value": { + "match": "\\s*(-?(0|[1-9][0-9]*)(\\.[0-9]+)?((e|E)(\\+|-)?[0-9]+)?)", + "captures": { + "1": { + "name": "constant.numeric.float.graphql" + } + } + }, + "graphql-boolean-value": { + "match": "\\s*\\b(true|false)\\b", + "captures": { + "1": { + "name": "constant.language.boolean.graphql" + } + } + }, + "graphql-null-value": { + "match": "\\s*\\b(null)\\b", + "captures": { + "1": { + "name": "constant.language.null.graphql" + } + } + }, + "graphql-string-value": { + "contentName": "string.quoted.double.graphql", + "begin": "\\s*+((\"))", + "end": "\\s*+(?:((\"))|(\n))", + "beginCaptures": { + "1": { + "name": "string.quoted.double.graphql" + }, + "2": { + "name": "punctuation.definition.string.begin.graphql" + } + }, + "endCaptures": { + "1": { + "name": "string.quoted.double.graphql" + }, + "2": { + "name": "punctuation.definition.string.end.graphql" + }, + "3": { + "name": "invalid.illegal.newline.graphql" + } + }, + "patterns": [ + { + "include": "#graphql-string-content" + }, + { + "include": "#literal-quasi-embedded" + } + ] + }, + "graphql-string-content": { + "patterns": [ + { + "name": "constant.character.escape.graphql", + "match": "\\\\[/'\"\\\\nrtbf]" + }, + { + "name": "constant.character.escape.graphql", + "match": "\\\\u([0-9a-fA-F]{4})" + } + ] + }, + "graphql-enum": { + "name": "meta.enum.graphql", + "begin": "\\s*+\\b(enum)\\b\\s*([_A-Za-z][_0-9A-Za-z]*)", + "end": "(?<=})", + "beginCaptures": { + "1": { + "name": "keyword.enum.graphql" + }, + "2": { + "name": "support.type.enum.graphql" + } + }, + "patterns": [ + { + "name": "meta.type.object.graphql", + "begin": "\\s*({)", + "end": "\\s*(})", + "beginCaptures": { + "1": { + "name": "punctuation.operation.graphql" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.operation.graphql" + } + }, + "patterns": [ + { + "include": "#graphql-object-type" + }, + { + "include": "#graphql-comment" + }, + { + "include": "#graphql-description-docstring" + }, + { + "include": "#graphql-description-singleline" + }, + { + "include": "#graphql-directive" + }, + { + "include": "#graphql-enum-value" + }, + { + "include": "#literal-quasi-embedded" + } + ] + }, + { + "include": "#graphql-comment" + }, + { + "include": "#graphql-description-docstring" + }, + { + "include": "#graphql-description-singleline" + }, + { + "include": "#graphql-directive" + } + ] + }, + "graphql-enum-value": { + "name": "constant.character.enum.graphql", + "match": "\\s*(?!=\\b(true|false|null)\\b)([_A-Za-z][_0-9A-Za-z]*)" + }, + "graphql-value": { + "patterns": [ + { + "include": "#graphql-comment" + }, + { + "include": "#graphql-description-docstring" + }, + { + "include": "#graphql-variable-name" + }, + { + "include": "#graphql-float-value" + }, + { + "include": "#graphql-string-value" + }, + { + "include": "#graphql-boolean-value" + }, + { + "include": "#graphql-null-value" + }, + { + "include": "#graphql-enum-value" + }, + { + "include": "#graphql-list-value" + }, + { + "include": "#graphql-object-value" + }, + { + "include": "#literal-quasi-embedded" + } + ] + }, + "graphql-list-value": { + "patterns": [ + { + "name": "meta.listvalues.graphql", + "begin": "\\s*+(\\[)", + "end": "\\s*(\\])", + "endCaptures": { + "1": { + "name": "meta.brace.square.graphql" + } + }, + "beginCaptures": { + "1": { + "name": "meta.brace.square.graphql" + } + }, + "patterns": [ + { + "include": "#graphql-value" + } + ] + } + ] + }, + "graphql-object-value": { + "patterns": [ + { + "name": "meta.objectvalues.graphql", + "begin": "\\s*+({)", + "end": "\\s*(})", + "beginCaptures": { + "1": { + "name": "meta.brace.curly.graphql" + } + }, + "endCaptures": { + "1": { + "name": "meta.brace.curly.graphql" + } + }, + "patterns": [ + { + "include": "#graphql-object-field" + }, + { + "include": "#graphql-value" + } + ] + } + ] + }, + "graphql-object-field": { + "match": "\\s*(([_A-Za-z][_0-9A-Za-z]*))\\s*(:)", + "captures": { + "1": { + "name": "constant.object.key.graphql" + }, + "2": { + "name": "string.unquoted.graphql" + }, + "3": { + "name": "punctuation.graphql" + } + } + }, + "graphql-union": { + "begin": "\\s*\\b(union)\\b\\s*([_A-Za-z][_0-9A-Za-z]*)", + "end": "(?=.)", + "applyEndPatternLast": 1, + "captures": { + "1": { + "name": "keyword.union.graphql" + }, + "2": { + "name": "support.type.graphql" + } + }, + "patterns": [ + { + "begin": "\\s*(=)\\s*([_A-Za-z][_0-9A-Za-z]*)", + "end": "(?=.)", + "applyEndPatternLast": 1, + "captures": { + "1": { + "name": "punctuation.assignment.graphql" + }, + "2": { + "name": "support.type.graphql" + } + }, + "patterns": [ + { + "include": "#graphql-comment" + }, + { + "include": "#graphql-description-docstring" + }, + { + "include": "#graphql-description-singleline" + }, + { + "include": "#graphql-skip-newlines" + }, + { + "include": "#literal-quasi-embedded" + }, + { + "match": "\\s*(\\|)\\s*([_A-Za-z][_0-9A-Za-z]*)", + "captures": { + "1": { + "name": "punctuation.or.graphql" + }, + "2": { + "name": "support.type.graphql" + } + } + } + ] + }, + { + "include": "#graphql-comment" + }, + { + "include": "#graphql-description-docstring" + }, + { + "include": "#graphql-description-singleline" + }, + { + "include": "#graphql-skip-newlines" + }, + { + "include": "#literal-quasi-embedded" + } + ] + }, + "native-interpolation": { + "name": "native.interpolation", + "begin": "\\s*(\\${)", + "end": "(})", + "beginCaptures": { + "1": { + "name": "keyword.other.substitution.begin" + } + }, + "endCaptures": { + "1": { + "name": "keyword.other.substitution.end" + } + }, + "patterns": [ + { + "include": "source.js" + }, + { + "include": "source.ts" + }, + { + "include": "source.js.jsx" + }, + { + "include": "source.tsx" + } + ] + }, + "graphql-skip-newlines": { + "match": "\\s*\n" + } + } +} diff --git a/docs/shiki/languages/groovy.tmLanguage.json b/docs/shiki/languages/groovy.tmLanguage.json new file mode 100644 index 00000000..cbab66f0 --- /dev/null +++ b/docs/shiki/languages/groovy.tmLanguage.json @@ -0,0 +1,1383 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/textmate/groovy.tmbundle/blob/master/Syntaxes/Groovy.tmLanguage", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/textmate/groovy.tmbundle/commit/85d8f7c97ae473ccb9473f6c8d27e4ec957f4be1", + "name": "groovy", + "scopeName": "source.groovy", + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.comment.groovy" + } + }, + "match": "^(#!).+$\\n", + "name": "comment.line.hashbang.groovy" + }, + { + "captures": { + "1": { + "name": "keyword.other.package.groovy" + }, + "2": { + "name": "storage.modifier.package.groovy" + }, + "3": { + "name": "punctuation.terminator.groovy" + } + }, + "match": "^\\s*(package)\\b(?:\\s*([^ ;$]+)\\s*(;)?)?", + "name": "meta.package.groovy" + }, + { + "begin": "(import static)\\b\\s*", + "beginCaptures": { + "1": { + "name": "keyword.other.import.static.groovy" + } + }, + "captures": { + "1": { + "name": "keyword.other.import.groovy" + }, + "2": { + "name": "storage.modifier.import.groovy" + }, + "3": { + "name": "punctuation.terminator.groovy" + } + }, + "contentName": "storage.modifier.import.groovy", + "end": "\\s*(?:$|(?=%>)(;))", + "endCaptures": { + "1": { + "name": "punctuation.terminator.groovy" + } + }, + "name": "meta.import.groovy", + "patterns": [ + { + "match": "\\.", + "name": "punctuation.separator.groovy" + }, + { + "match": "\\s", + "name": "invalid.illegal.character_not_allowed_here.groovy" + } + ] + }, + { + "begin": "(import)\\b\\s*", + "beginCaptures": { + "1": { + "name": "keyword.other.import.groovy" + } + }, + "captures": { + "1": { + "name": "keyword.other.import.groovy" + }, + "2": { + "name": "storage.modifier.import.groovy" + }, + "3": { + "name": "punctuation.terminator.groovy" + } + }, + "contentName": "storage.modifier.import.groovy", + "end": "\\s*(?:$|(?=%>)|(;))", + "endCaptures": { + "1": { + "name": "punctuation.terminator.groovy" + } + }, + "name": "meta.import.groovy", + "patterns": [ + { + "match": "\\.", + "name": "punctuation.separator.groovy" + }, + { + "match": "\\s", + "name": "invalid.illegal.character_not_allowed_here.groovy" + } + ] + }, + { + "captures": { + "1": { + "name": "keyword.other.import.groovy" + }, + "2": { + "name": "keyword.other.import.static.groovy" + }, + "3": { + "name": "storage.modifier.import.groovy" + }, + "4": { + "name": "punctuation.terminator.groovy" + } + }, + "match": "^\\s*(import)(?:\\s+(static)\\s+)\\b(?:\\s*([^ ;$]+)\\s*(;)?)?", + "name": "meta.import.groovy" + }, + { + "include": "#groovy" + } + ], + "repository": { + "annotations": { + "patterns": [ + { + "begin": "(?<!\\.)(@[^ (]+)(\\()", + "beginCaptures": { + "1": { + "name": "storage.type.annotation.groovy" + }, + "2": { + "name": "punctuation.definition.annotation-arguments.begin.groovy" + } + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.definition.annotation-arguments.end.groovy" + } + }, + "name": "meta.declaration.annotation.groovy", + "patterns": [ + { + "captures": { + "1": { + "name": "constant.other.key.groovy" + }, + "2": { + "name": "keyword.operator.assignment.groovy" + } + }, + "match": "(\\w*)\\s*(=)" + }, + { + "include": "#values" + }, + { + "match": ",", + "name": "punctuation.definition.seperator.groovy" + } + ] + }, + { + "match": "(?<!\\.)@\\S+", + "name": "storage.type.annotation.groovy" + } + ] + }, + "anonymous-classes-and-new": { + "begin": "\\bnew\\b", + "beginCaptures": { + "0": { + "name": "keyword.control.new.groovy" + } + }, + "end": "(?<=\\)|\\])(?!\\s*{)|(?<=})|(?=[;])|$", + "patterns": [ + { + "begin": "(\\w+)\\s*(?=\\[)", + "beginCaptures": { + "1": { + "name": "storage.type.groovy" + } + }, + "end": "}|(?=\\s*(?:,|;|\\)))|$", + "patterns": [ + { + "begin": "\\[", + "end": "\\]", + "patterns": [ + { + "include": "#groovy" + } + ] + }, + { + "begin": "{", + "end": "(?=})", + "patterns": [ + { + "include": "#groovy" + } + ] + } + ] + }, + { + "begin": "(?=\\w.*\\(?)", + "end": "(?<=\\))|$", + "patterns": [ + { + "include": "#object-types" + }, + { + "begin": "\\(", + "beginCaptures": { + "1": { + "name": "storage.type.groovy" + } + }, + "end": "\\)", + "patterns": [ + { + "include": "#groovy" + } + ] + } + ] + }, + { + "begin": "{", + "end": "}", + "name": "meta.inner-class.groovy", + "patterns": [ + { + "include": "#class-body" + } + ] + } + ] + }, + "braces": { + "begin": "\\{", + "end": "\\}", + "patterns": [ + { + "include": "#groovy-code" + } + ] + }, + "class": { + "begin": "(?=\\w?[\\w\\s]*(?:class|(?:@)?interface|enum)\\s+\\w+)", + "end": "}", + "endCaptures": { + "0": { + "name": "punctuation.section.class.end.groovy" + } + }, + "name": "meta.definition.class.groovy", + "patterns": [ + { + "include": "#storage-modifiers" + }, + { + "include": "#comments" + }, + { + "captures": { + "1": { + "name": "storage.modifier.groovy" + }, + "2": { + "name": "entity.name.type.class.groovy" + } + }, + "match": "(class|(?:@)?interface|enum)\\s+(\\w+)", + "name": "meta.class.identifier.groovy" + }, + { + "begin": "extends", + "beginCaptures": { + "0": { + "name": "storage.modifier.extends.groovy" + } + }, + "end": "(?={|implements)", + "name": "meta.definition.class.inherited.classes.groovy", + "patterns": [ + { + "include": "#object-types-inherited" + }, + { + "include": "#comments" + } + ] + }, + { + "begin": "(implements)\\s", + "beginCaptures": { + "1": { + "name": "storage.modifier.implements.groovy" + } + }, + "end": "(?=\\s*extends|\\{)", + "name": "meta.definition.class.implemented.interfaces.groovy", + "patterns": [ + { + "include": "#object-types-inherited" + }, + { + "include": "#comments" + } + ] + }, + { + "begin": "{", + "end": "(?=})", + "name": "meta.class.body.groovy", + "patterns": [ + { + "include": "#class-body" + } + ] + } + ] + }, + "class-body": { + "patterns": [ + { + "include": "#enum-values" + }, + { + "include": "#constructors" + }, + { + "include": "#groovy" + } + ] + }, + "closures": { + "begin": "\\{(?=.*?->)", + "end": "\\}", + "patterns": [ + { + "begin": "(?<=\\{)(?=[^\\}]*?->)", + "end": "->", + "endCaptures": { + "0": { + "name": "keyword.operator.groovy" + } + }, + "patterns": [ + { + "begin": "(?!->)", + "end": "(?=->)", + "name": "meta.closure.parameters.groovy", + "patterns": [ + { + "begin": "(?!,|->)", + "end": "(?=,|->)", + "name": "meta.closure.parameter.groovy", + "patterns": [ + { + "begin": "=", + "beginCaptures": { + "0": { + "name": "keyword.operator.assignment.groovy" + } + }, + "end": "(?=,|->)", + "name": "meta.parameter.default.groovy", + "patterns": [ + { + "include": "#groovy-code" + } + ] + }, + { + "include": "#parameters" + } + ] + } + ] + } + ] + }, + { + "begin": "(?=[^}])", + "end": "(?=\\})", + "patterns": [ + { + "include": "#groovy-code" + } + ] + } + ] + }, + "comment-block": { + "begin": "/\\*", + "captures": { + "0": { + "name": "punctuation.definition.comment.groovy" + } + }, + "end": "\\*/", + "name": "comment.block.groovy" + }, + "comments": { + "patterns": [ + { + "captures": { + "0": { + "name": "punctuation.definition.comment.groovy" + } + }, + "match": "/\\*\\*/", + "name": "comment.block.empty.groovy" + }, + { + "include": "text.html.javadoc" + }, + { + "include": "#comment-block" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.comment.groovy" + } + }, + "match": "(//).*$\\n?", + "name": "comment.line.double-slash.groovy" + } + ] + }, + "constants": { + "patterns": [ + { + "match": "\\b([A-Z][A-Z0-9_]+)\\b", + "name": "constant.other.groovy" + }, + { + "match": "\\b(true|false|null)\\b", + "name": "constant.language.groovy" + } + ] + }, + "constructors": { + "applyEndPatternLast": 1, + "begin": "(?<=;|^)(?=\\s*(?:(?:private|protected|public|native|synchronized|abstract|threadsafe|transient|static|final)\\s+)*[A-Z]\\w*\\()", + "end": "}", + "patterns": [ + { + "include": "#method-content" + } + ] + }, + "enum-values": { + "patterns": [ + { + "begin": "(?<=;|^)\\s*\\b([A-Z0-9_]+)(?=\\s*(?:,|;|}|\\(|$))", + "beginCaptures": { + "1": { + "name": "constant.enum.name.groovy" + } + }, + "end": ",|;|(?=})|^(?!\\s*\\w+\\s*(?:,|$))", + "patterns": [ + { + "begin": "\\(", + "end": "\\)", + "name": "meta.enum.value.groovy", + "patterns": [ + { + "match": ",", + "name": "punctuation.definition.seperator.parameter.groovy" + }, + { + "include": "#groovy-code" + } + ] + } + ] + } + ] + }, + "groovy": { + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#class" + }, + { + "include": "#variables" + }, + { + "include": "#methods" + }, + { + "include": "#annotations" + }, + { + "include": "#groovy-code" + } + ] + }, + "groovy-code": { + "patterns": [ + { + "include": "#groovy-code-minus-map-keys" + }, + { + "include": "#map-keys" + } + ] + }, + "groovy-code-minus-map-keys": { + "comment": "In some situations, maps can't be declared without enclosing []'s, \n\t\t\t\ttherefore we create a collection of everything but that", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#annotations" + }, + { + "include": "#support-functions" + }, + { + "include": "#keyword-language" + }, + { + "include": "#values" + }, + { + "include": "#anonymous-classes-and-new" + }, + { + "include": "#keyword-operator" + }, + { + "include": "#types" + }, + { + "include": "#storage-modifiers" + }, + { + "include": "#parens" + }, + { + "include": "#closures" + }, + { + "include": "#braces" + } + ] + }, + "keyword": { + "patterns": [ + { + "include": "#keyword-operator" + }, + { + "include": "#keyword-language" + } + ] + }, + "keyword-language": { + "patterns": [ + { + "match": "\\b(try|catch|finally|throw)\\b", + "name": "keyword.control.exception.groovy" + }, + { + "match": "\\b((?<!\\.)(?:return|break|continue|default|do|while|for|switch|if|else))\\b", + "name": "keyword.control.groovy" + }, + { + "begin": "\\bcase\\b", + "beginCaptures": { + "0": { + "name": "keyword.control.groovy" + } + }, + "end": ":", + "endCaptures": { + "0": { + "name": "punctuation.definition.case-terminator.groovy" + } + }, + "name": "meta.case.groovy", + "patterns": [ + { + "include": "#groovy-code-minus-map-keys" + } + ] + }, + { + "begin": "\\b(assert)\\s", + "beginCaptures": { + "1": { + "name": "keyword.control.assert.groovy" + } + }, + "end": "$|;|}", + "name": "meta.declaration.assertion.groovy", + "patterns": [ + { + "match": ":", + "name": "keyword.operator.assert.expression-seperator.groovy" + }, + { + "include": "#groovy-code-minus-map-keys" + } + ] + }, + { + "match": "\\b(throws)\\b", + "name": "keyword.other.throws.groovy" + } + ] + }, + "keyword-operator": { + "patterns": [ + { + "match": "\\b(as)\\b", + "name": "keyword.operator.as.groovy" + }, + { + "match": "\\b(in)\\b", + "name": "keyword.operator.in.groovy" + }, + { + "match": "\\?\\:", + "name": "keyword.operator.elvis.groovy" + }, + { + "match": "\\*\\:", + "name": "keyword.operator.spreadmap.groovy" + }, + { + "match": "\\.\\.", + "name": "keyword.operator.range.groovy" + }, + { + "match": "\\->", + "name": "keyword.operator.arrow.groovy" + }, + { + "match": "<<", + "name": "keyword.operator.leftshift.groovy" + }, + { + "match": "(?<=\\S)\\.(?=\\S)", + "name": "keyword.operator.navigation.groovy" + }, + { + "match": "(?<=\\S)\\?\\.(?=\\S)", + "name": "keyword.operator.safe-navigation.groovy" + }, + { + "begin": "\\?", + "beginCaptures": { + "0": { + "name": "keyword.operator.ternary.groovy" + } + }, + "end": "(?=$|\\)|}|])", + "name": "meta.evaluation.ternary.groovy", + "patterns": [ + { + "match": ":", + "name": "keyword.operator.ternary.expression-seperator.groovy" + }, + { + "include": "#groovy-code-minus-map-keys" + } + ] + }, + { + "match": "==~", + "name": "keyword.operator.match.groovy" + }, + { + "match": "=~", + "name": "keyword.operator.find.groovy" + }, + { + "match": "\\b(instanceof)\\b", + "name": "keyword.operator.instanceof.groovy" + }, + { + "match": "(===|==|!=|<=|>=|<=>|<>|<|>|<<)", + "name": "keyword.operator.comparison.groovy" + }, + { + "match": "=", + "name": "keyword.operator.assignment.groovy" + }, + { + "match": "(\\-\\-|\\+\\+)", + "name": "keyword.operator.increment-decrement.groovy" + }, + { + "match": "(\\-|\\+|\\*|\\/|%)", + "name": "keyword.operator.arithmetic.groovy" + }, + { + "match": "(!|&&|\\|\\|)", + "name": "keyword.operator.logical.groovy" + } + ] + }, + "language-variables": { + "patterns": [ + { + "match": "\\b(this|super)\\b", + "name": "variable.language.groovy" + } + ] + }, + "map-keys": { + "patterns": [ + { + "captures": { + "1": { + "name": "constant.other.key.groovy" + }, + "2": { + "name": "punctuation.definition.seperator.key-value.groovy" + } + }, + "match": "(\\w+)\\s*(:)" + } + ] + }, + "method-call": { + "begin": "([\\w$]+)(\\()", + "beginCaptures": { + "1": { + "name": "meta.method.groovy" + }, + "2": { + "name": "punctuation.definition.method-parameters.begin.groovy" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.method-parameters.end.groovy" + } + }, + "name": "meta.method-call.groovy", + "patterns": [ + { + "match": ",", + "name": "punctuation.definition.seperator.parameter.groovy" + }, + { + "include": "#groovy-code" + } + ] + }, + "method-content": { + "patterns": [ + { + "match": "\\s" + }, + { + "include": "#annotations" + }, + { + "begin": "(?=(?:\\w|<)[^\\(]*\\s+(?:[\\w$]|<)+\\s*\\()", + "end": "(?=[\\w$]+\\s*\\()", + "name": "meta.method.return-type.java", + "patterns": [ + { + "include": "#storage-modifiers" + }, + { + "include": "#types" + } + ] + }, + { + "begin": "([\\w$]+)\\s*\\(", + "beginCaptures": { + "1": { + "name": "entity.name.function.java" + } + }, + "end": "\\)", + "name": "meta.definition.method.signature.java", + "patterns": [ + { + "begin": "(?=[^)])", + "end": "(?=\\))", + "name": "meta.method.parameters.groovy", + "patterns": [ + { + "begin": "(?=[^,)])", + "end": "(?=,|\\))", + "name": "meta.method.parameter.groovy", + "patterns": [ + { + "match": ",", + "name": "punctuation.definition.separator.groovy" + }, + { + "begin": "=", + "beginCaptures": { + "0": { + "name": "keyword.operator.assignment.groovy" + } + }, + "end": "(?=,|\\))", + "name": "meta.parameter.default.groovy", + "patterns": [ + { + "include": "#groovy-code" + } + ] + }, + { + "include": "#parameters" + } + ] + } + ] + } + ] + }, + { + "begin": "(?=<)", + "end": "(?=\\s)", + "name": "meta.method.paramerised-type.groovy", + "patterns": [ + { + "begin": "<", + "end": ">", + "name": "storage.type.parameters.groovy", + "patterns": [ + { + "include": "#types" + }, + { + "match": ",", + "name": "punctuation.definition.seperator.groovy" + } + ] + } + ] + }, + { + "begin": "throws", + "beginCaptures": { + "0": { + "name": "storage.modifier.groovy" + } + }, + "end": "(?={|;)|^(?=\\s*(?:[^{\\s]|$))", + "name": "meta.throwables.groovy", + "patterns": [ + { + "include": "#object-types" + } + ] + }, + { + "begin": "{", + "end": "(?=})", + "name": "meta.method.body.java", + "patterns": [ + { + "include": "#groovy-code" + } + ] + } + ] + }, + "methods": { + "applyEndPatternLast": 1, + "begin": "(?x:(?<=;|^|{)(?=\\s*\n (?:\n (?:private|protected|public|native|synchronized|abstract|threadsafe|transient|static|final) # visibility/modifier\n |\n (?:def)\n |\n (?:\n (?:\n (?:void|boolean|byte|char|short|int|float|long|double)\n |\n (?:@?(?:[a-zA-Z]\\w*\\.)*[A-Z]+\\w*) # object type\n )\n [\\[\\]]*\n (?:<.*>)?\n ) \n \n )\n \\s+\n ([^=]+\\s+)?\\w+\\s*\\(\n\t\t\t))", + "end": "}|(?=[^{])", + "name": "meta.definition.method.groovy", + "patterns": [ + { + "include": "#method-content" + } + ] + }, + "nest_curly": { + "begin": "\\{", + "captures": { + "0": { + "name": "punctuation.section.scope.groovy" + } + }, + "end": "\\}", + "patterns": [ + { + "include": "#nest_curly" + } + ] + }, + "numbers": { + "patterns": [ + { + "match": "((0(x|X)[0-9a-fA-F]*)|(\\+|-)?\\b(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)([LlFfUuDdg]|UL|ul)?\\b", + "name": "constant.numeric.groovy" + } + ] + }, + "object-types": { + "patterns": [ + { + "begin": "\\b((?:[a-z]\\w*\\.)*(?:[A-Z]+\\w*[a-z]+\\w*|UR[LI]))<", + "end": ">|[^\\w\\s,\\?<\\[\\]]", + "name": "storage.type.generic.groovy", + "patterns": [ + { + "include": "#object-types" + }, + { + "begin": "<", + "comment": "This is just to support <>'s with no actual type prefix", + "end": ">|[^\\w\\s,\\[\\]<]", + "name": "storage.type.generic.groovy" + } + ] + }, + { + "begin": "\\b((?:[a-z]\\w*\\.)*[A-Z]+\\w*[a-z]+\\w*)(?=\\[)", + "end": "(?=[^\\]\\s])", + "name": "storage.type.object.array.groovy", + "patterns": [ + { + "begin": "\\[", + "end": "\\]", + "patterns": [ + { + "include": "#groovy" + } + ] + } + ] + }, + { + "match": "\\b(?:[a-zA-Z]\\w*\\.)*(?:[A-Z]+\\w*[a-z]+\\w*|UR[LI])\\b", + "name": "storage.type.groovy" + } + ] + }, + "object-types-inherited": { + "patterns": [ + { + "begin": "\\b((?:[a-zA-Z]\\w*\\.)*[A-Z]+\\w*[a-z]+\\w*)<", + "end": ">|[^\\w\\s,\\?<\\[\\]]", + "name": "entity.other.inherited-class.groovy", + "patterns": [ + { + "include": "#object-types-inherited" + }, + { + "begin": "<", + "comment": "This is just to support <>'s with no actual type prefix", + "end": ">|[^\\w\\s,\\[\\]<]", + "name": "storage.type.generic.groovy" + } + ] + }, + { + "captures": { + "1": { + "name": "keyword.operator.dereference.groovy" + } + }, + "match": "\\b(?:[a-zA-Z]\\w*(\\.))*[A-Z]+\\w*[a-z]+\\w*\\b", + "name": "entity.other.inherited-class.groovy" + } + ] + }, + "parameters": { + "patterns": [ + { + "include": "#annotations" + }, + { + "include": "#storage-modifiers" + }, + { + "include": "#types" + }, + { + "match": "\\w+", + "name": "variable.parameter.method.groovy" + } + ] + }, + "parens": { + "begin": "\\(", + "end": "\\)", + "patterns": [ + { + "include": "#groovy-code" + } + ] + }, + "primitive-arrays": { + "patterns": [ + { + "match": "\\b(?:void|boolean|byte|char|short|int|float|long|double)(\\[\\])*\\b", + "name": "storage.type.primitive.array.groovy" + } + ] + }, + "primitive-types": { + "patterns": [ + { + "match": "\\b(?:void|boolean|byte|char|short|int|float|long|double)\\b", + "name": "storage.type.primitive.groovy" + } + ] + }, + "regexp": { + "patterns": [ + { + "begin": "/(?=[^/]+/([^>]|$))", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.regexp.begin.groovy" + } + }, + "end": "/", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.regexp.end.groovy" + } + }, + "name": "string.regexp.groovy", + "patterns": [ + { + "match": "\\\\.", + "name": "constant.character.escape.groovy" + } + ] + }, + { + "begin": "~\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.regexp.begin.groovy" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.regexp.end.groovy" + } + }, + "name": "string.regexp.compiled.groovy", + "patterns": [ + { + "match": "\\\\.", + "name": "constant.character.escape.groovy" + } + ] + } + ] + }, + "storage-modifiers": { + "patterns": [ + { + "match": "\\b(private|protected|public)\\b", + "name": "storage.modifier.access-control.groovy" + }, + { + "match": "\\b(static)\\b", + "name": "storage.modifier.static.groovy" + }, + { + "match": "\\b(final)\\b", + "name": "storage.modifier.final.groovy" + }, + { + "match": "\\b(native|synchronized|abstract|threadsafe|transient)\\b", + "name": "storage.modifier.other.groovy" + } + ] + }, + "string-quoted-double": { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.groovy" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.groovy" + } + }, + "name": "string.quoted.double.groovy", + "patterns": [ + { + "include": "#string-quoted-double-contents" + } + ] + }, + "string-quoted-double-contents": { + "patterns": [ + { + "match": "\\\\.", + "name": "constant.character.escape.groovy" + }, + { + "applyEndPatternLast": 1, + "begin": "\\$\\w", + "end": "(?=\\W)", + "name": "variable.other.interpolated.groovy", + "patterns": [ + { + "match": "\\w", + "name": "variable.other.interpolated.groovy" + }, + { + "match": "\\.", + "name": "keyword.other.dereference.groovy" + } + ] + }, + { + "begin": "\\$\\{", + "captures": { + "0": { + "name": "punctuation.section.embedded.groovy" + } + }, + "end": "\\}", + "name": "source.groovy.embedded.source", + "patterns": [ + { + "include": "#nest_curly" + } + ] + } + ] + }, + "string-quoted-double-multiline": { + "begin": "\"\"\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.groovy" + } + }, + "end": "\"\"\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.groovy" + } + }, + "name": "string.quoted.double.multiline.groovy", + "patterns": [ + { + "include": "#string-quoted-double-contents" + } + ] + }, + "string-quoted-single": { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.groovy" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.groovy" + } + }, + "name": "string.quoted.single.groovy", + "patterns": [ + { + "include": "#string-quoted-single-contents" + } + ] + }, + "string-quoted-single-contents": { + "patterns": [ + { + "match": "\\\\.", + "name": "constant.character.escape.groovy" + } + ] + }, + "string-quoted-single-multiline": { + "begin": "'''", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.groovy" + } + }, + "end": "'''", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.groovy" + } + }, + "name": "string.quoted.single.multiline.groovy", + "patterns": [ + { + "include": "#string-quoted-single-contents" + } + ] + }, + "strings": { + "patterns": [ + { + "include": "#string-quoted-double-multiline" + }, + { + "include": "#string-quoted-single-multiline" + }, + { + "include": "#string-quoted-double" + }, + { + "include": "#string-quoted-single" + }, + { + "include": "#regexp" + } + ] + }, + "structures": { + "begin": "\\[", + "beginCaptures": { + "0": { + "name": "punctuation.definition.structure.begin.groovy" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.structure.end.groovy" + } + }, + "name": "meta.structure.groovy", + "patterns": [ + { + "include": "#groovy-code" + }, + { + "match": ",", + "name": "punctuation.definition.separator.groovy" + } + ] + }, + "support-functions": { + "patterns": [ + { + "match": "(?x)\\b(?:sprintf|print(?:f|ln)?)\\b", + "name": "support.function.print.groovy" + }, + { + "match": "(?x)\\b(?:shouldFail|fail(?:NotEquals)?|ass(?:ume|ert(?:S(?:cript|ame)|N(?:ot(?:Same|\n\t\t\t\t\tNull)|ull)|Contains|T(?:hat|oString|rue)|Inspect|Equals|False|Length|\n\t\t\t\t\tArrayEquals)))\\b", + "name": "support.function.testing.groovy" + } + ] + }, + "types": { + "patterns": [ + { + "match": "\\b(def)\\b", + "name": "storage.type.def.groovy" + }, + { + "include": "#primitive-types" + }, + { + "include": "#primitive-arrays" + }, + { + "include": "#object-types" + } + ] + }, + "values": { + "patterns": [ + { + "include": "#language-variables" + }, + { + "include": "#strings" + }, + { + "include": "#numbers" + }, + { + "include": "#constants" + }, + { + "include": "#types" + }, + { + "include": "#structures" + }, + { + "include": "#method-call" + } + ] + }, + "variables": { + "applyEndPatternLast": 1, + "patterns": [ + { + "begin": "(?x:(?=\n (?:\n (?:private|protected|public|native|synchronized|abstract|threadsafe|transient|static|final) # visibility/modifier\n |\n (?:def)\n |\n (?:void|boolean|byte|char|short|int|float|long|double)\n |\n (?:(?:[a-z]\\w*\\.)*[A-Z]+\\w*) # object type\n )\n \\s+\n [\\w\\d_<>\\[\\],\\s]+\n (?:=|$)\n \n \t\t\t))", + "end": ";|$", + "name": "meta.definition.variable.groovy", + "patterns": [ + { + "match": "\\s" + }, + { + "captures": { + "1": { + "name": "constant.variable.groovy" + } + }, + "match": "([A-Z_0-9]+)\\s+(?=\\=)" + }, + { + "captures": { + "1": { + "name": "meta.definition.variable.name.groovy" + } + }, + "match": "(\\w[^\\s,]*)\\s+(?=\\=)" + }, + { + "begin": "=", + "beginCaptures": { + "0": { + "name": "keyword.operator.assignment.groovy" + } + }, + "end": "$", + "patterns": [ + { + "include": "#groovy-code" + } + ] + }, + { + "captures": { + "1": { + "name": "meta.definition.variable.name.groovy" + } + }, + "match": "(\\w[^\\s=]*)(?=\\s*($|;))" + }, + { + "include": "#groovy-code" + } + ] + } + ] + } + } +} diff --git a/docs/shiki/languages/hack.tmLanguage.json b/docs/shiki/languages/hack.tmLanguage.json new file mode 100644 index 00000000..1b8265df --- /dev/null +++ b/docs/shiki/languages/hack.tmLanguage.json @@ -0,0 +1,2645 @@ +{ + "scopeName": "source.hack", + "name": "hack", + "fileTypes": ["hh", "php", "hack"], + "foldingStartMarker": "(/\\*|\\{\\s*$|<<<HTML)", + "foldingStopMarker": "(\\*/|^\\s*\\}|^HTML;)", + "patterns": [ + { + "include": "text.html.basic" + }, + { + "include": "#language" + } + ], + "repository": { + "class-builtin": { + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.separator.inheritance.php" + } + }, + "match": "(?i)(\\\\)?\\b(st(dClass|reamWrapper)|R(RD(Graph|Creator|Updater)|untimeException|e(sourceBundle|cursive(RegexIterator|Ca(chingIterator|llbackFilterIterator)|TreeIterator|Iterator(Iterator)?|DirectoryIterator|FilterIterator|ArrayIterator)|flect(ion(Method|Class|ZendExtension|Object|P(arameter|roperty)|Extension|Function(Abstract)?)?|or)|gexIterator)|angeException)|G(ender\\Gender|lobIterator|magick(Draw|Pixel)?)|X(sltProcessor|ML(Reader|Writer)|SLTProcessor)|M(ysqlndUh(Connection|PreparedStatement)|ongo(Re(sultException|gex)|Grid(fsFile|FS(Cursor|File)?)|BinData|C(o(de|llection)|ursor(Exception)?|lient)|Timestamp|I(nt(32|64)|d)|D(B(Ref)?|ate)|Pool|Log)?|u(tex|ltipleIterator)|e(ssageFormatter|mcache(d)?))|Bad(MethodCallException|FunctionCallException)|tidy(Node)?|S(tackable|impleXML(Iterator|Element)|oap(Server|Header|Client|Param|Var|Fault)|NMP|CA(_(SoapProxy|LocalProxy))?|p(hinxClient|oofchecker|l(M(inHeap|axHeap)|S(tack|ubject)|Heap|T(ype|empFileObject)|Ob(server|jectStorage)|DoublyLinkedList|PriorityQueue|Enum|Queue|Fi(le(Info|Object)|xedArray)))|e(ssionHandler(Interface)?|ekableIterator|rializable)|DO_(Model_(ReflectionDataObject|Type|Property)|Sequence|D(ata(Object|Factory)|AS_(Relational|XML(_Document)?|Setting|ChangeSummary|Data(Object|Factory)))|Exception|List)|wish(Result(s)?|Search)?|VM(Model)?|QLite(Result|3(Result|Stmt)?|Database|Unbuffered)|AM(Message|Connection))|H(ttp(Re(sponse|quest(Pool)?)|Message|InflateStream|DeflateStream|QueryString)|aru(Image|Outline|D(oc|estination)|Page|Encoder|Font|Annotation))|Yaf_(R(oute(_(Re(write|gex)|Map|S(tatic|imple|upervar)|Interface)|r)|e(sponse_Abstract|quest_(Simple|Http|Abstract)|gistry))|Session|Con(troller_Abstract|fig_(Simple|Ini|Abstract))|Dispatcher|Plugin_Abstract|Exception|View_(Simple|Interface)|Loader|A(ction_Abstract|pplication))|N(o(RewindIterator|rmalizer)|umberFormatter)|C(o(nd|untable|llator)|a(chingIterator|llbackFilterIterator))|T(hread|okyoTyrant(Table|Iterator|Query)?|ra(nsliterator|versable))|I(n(tlDateFormatter|validArgumentException|finiteIterator)|terator(Iterator|Aggregate)?|magick(Draw|Pixel(Iterator)?)?)|php_user_filter|ZipArchive|O(CI-(Collection|Lob)|ut(erIterator|Of(RangeException|BoundsException))|verflowException)|D(irectory(Iterator)?|omainException|OM(XPath|N(ode(list)?|amedNodeMap)|C(haracterData|omment|dataSection)|Text|Implementation|Document(Fragment)?|ProcessingInstruction|E(ntityReference|lement)|Attr)|ate(Time(Zone)?|Interval|Period))|Un(derflowException|expectedValueException)|JsonSerializable|finfo|P(har(Data|FileInfo)?|DO(Statement)?|arentIterator)|E(v(S(tat|ignal)|Ch(ild|eck)|Timer|I(o|dle)|P(eriodic|repare)|Embed|Fork|Watcher|Loop)?|rrorException|xception|mptyIterator)|V(8Js(Exception)?|arnish(Stat|Log|Admin))|KTaglib_(MPEG_(File|AudioProperties)|Tag|ID3v2_(Tag|Frame|AttachedPictureFrame))|QuickHash(StringIntHash|Int(S(tringHash|et)|Hash))|Fil(terIterator|esystemIterator)|mysqli(_(stmt|driver|warning|result))?|W(orker|eak(Map|ref))|L(imitIterator|o(cale|gicException)|ua(Closure)?|engthException|apack)|A(MQP(C(hannel|onnection)|E(nvelope|xchange)|Queue)|ppendIterator|PCIterator|rray(Iterator|Object|Access)))\\b", + "name": "support.class.builtin.php" + } + ] + }, + "class-name": { + "patterns": [ + { + "begin": "(?i)(?=\\\\?[a-z_0-9]+\\\\)", + "end": "(?i)([a-z_][a-z_0-9]*)?(?=[^a-z0-9_\\\\])", + "endCaptures": { + "1": { + "name": "support.class.php" + } + }, + "patterns": [ + { + "include": "#namespace" + } + ] + }, + { + "include": "#class-builtin" + }, + { + "begin": "(?=[\\\\a-zA-Z_])", + "end": "(?i)([a-z_][a-z_0-9]*)?(?=[^a-z0-9_\\\\])", + "endCaptures": { + "1": { + "name": "support.class.php" + } + }, + "patterns": [ + { + "include": "#namespace" + } + ] + } + ] + }, + "comments": { + "patterns": [ + { + "begin": "/\\*\\*(?:#@\\+)?\\s*$", + "captures": { + "0": { + "name": "punctuation.definition.comment.php" + } + }, + "comment": "This now only highlights a docblock if the first line contains only /**\n- this is to stop highlighting everything as invalid when people do comment banners with /******** ...\n- Now matches /**#@+ too - used for docblock templates:\n http://manual.phpdoc.org/HTMLframesConverter/default/phpDocumentor/tutorial_phpDocumentor.howto.pkg.html#basics.docblocktemplate", + "end": "\\*/", + "name": "comment.block.documentation.phpdoc.php", + "patterns": [ + { + "include": "#php_doc" + } + ] + }, + { + "begin": "/\\*", + "captures": { + "0": { + "name": "punctuation.definition.comment.php" + } + }, + "end": "\\*/", + "name": "comment.block.php" + }, + { + "begin": "(^[ \\t]+)?(?=//)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.php" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": "//", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.php" + } + }, + "end": "\\n|(?=\\?>)", + "name": "comment.line.double-slash.php" + } + ] + } + ] + }, + "generics": { + "patterns": [ + { + "begin": "(<)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.generics.php" + } + }, + "end": "(>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.generics.php" + } + }, + "name": "meta.generics.php", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#generics" + }, + { + "match": "([-+])?([A-Za-z_][A-Za-z0-9_]*)(?:\\s+(as|super)\\s+([A-Za-z_][A-Za-z0-9_]*))?", + "name": "support.type.php" + }, + { + "include": "#type-annotation" + } + ] + } + ] + }, + "implements": { + "patterns": [ + { + "begin": "(?i)(implements)\\s+", + "beginCaptures": { + "1": { + "name": "storage.modifier.implements.php" + } + }, + "end": "(?i)(?=[;{])", + "patterns": [ + { + "include": "#comments" + }, + { + "begin": "(?i)(?=[a-z0-9_\\\\]+)", + "contentName": "meta.other.inherited-class.php", + "end": "(?i)(?:\\s*(?:,|(?=[^a-z0-9_\\\\\\s]))\\s*)", + "patterns": [ + { + "begin": "(?i)(?=\\\\?[a-z_0-9]+\\\\)", + "end": "(?i)([a-z_][a-z_0-9]*)?(?=[^a-z0-9_\\\\])", + "endCaptures": { + "1": { + "name": "entity.other.inherited-class.php" + } + }, + "patterns": [ + { + "include": "#namespace" + } + ] + }, + { + "include": "#class-builtin" + }, + { + "include": "#namespace" + }, + { + "match": "(?i)[a-z_][a-z_0-9]*", + "name": "entity.other.inherited-class.php" + } + ] + } + ] + } + ] + }, + "attributes": { + "patterns": [ + { + "begin": "(<<)(?!<)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.attributes.php" + } + }, + "end": "(>>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.attributes.php" + } + }, + "name": "meta.attributes.php", + "patterns": [ + { + "include": "#comments" + }, + { + "match": "([A-Za-z_][A-Za-z0-9_]*)", + "name": "entity.other.attribute-name.php" + }, + { + "begin": "(\\()", + "beginCaptures": { + "1": { + "name": "punctuation.definition.parameters.begin.php" + } + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.definition.parameters.end.php" + } + }, + "patterns": [ + { + "include": "#language" + } + ] + } + ] + } + ] + }, + "constants": { + "patterns": [ + { + "begin": "(?xi)\n(?=\n (\n (\\\\[a-z_][a-z_0-9]*\\\\[a-z_][a-z_0-9\\\\]*)\n |\n ([a-z_][a-z_0-9]*\\\\[a-z_][a-z_0-9\\\\]*)\n )\n [^a-z_0-9\\\\]\n)", + "end": "(?i)([a-z_][a-z_0-9]*)?(?=[^a-z0-9_\\\\])", + "endCaptures": { + "1": { + "name": "constant.other.php" + } + }, + "patterns": [ + { + "include": "#namespace" + } + ] + }, + { + "begin": "(?=\\\\?[a-zA-Z_\\x{7f}-\\x{ff}])", + "end": "(?=[^\\\\a-zA-Z_\\x{7f}-\\x{ff}])", + "patterns": [ + { + "match": "(?i)\\b(TRUE|FALSE|NULL|__(FILE|DIR|FUNCTION|CLASS|METHOD|LINE|NAMESPACE)__)\\b", + "name": "constant.language.php" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.inheritance.php" + } + }, + "match": "(\\\\)?\\b(STD(IN|OUT|ERR)|ZEND_(THREAD_SAFE|DEBUG_BUILD)|DEFAULT_INCLUDE_PATH|P(HP_(R(OUND_HALF_(ODD|DOWN|UP|EVEN)|ELEASE_VERSION)|M(INOR_VERSION|A(XPATHLEN|JOR_VERSION))|BINDIR|S(HLIB_SUFFIX|YSCONFDIR|API)|CONFIG_FILE_(SCAN_DIR|PATH)|INT_(MAX|SIZE)|ZTS|O(S|UTPUT_HANDLER_(START|CONT|END))|D(EBUG|ATADIR)|URL_(SCHEME|HOST|USER|P(ORT|A(SS|TH))|QUERY|FRAGMENT)|PREFIX|E(XT(RA_VERSION|ENSION_DIR)|OL)|VERSION(_ID)?|WINDOWS_(NT_(SERVER|DOMAIN_CONTROLLER|WORKSTATION)|VERSION_(M(INOR|AJOR)|BUILD|S(UITEMASK|P_M(INOR|AJOR))|P(RODUCTTYPE|LATFORM)))|L(IBDIR|OCALSTATEDIR))|EAR_(INSTALL_DIR|EXTENSION_DIR))|E_(RECOVERABLE_ERROR|STRICT|NOTICE|CO(RE_(ERROR|WARNING)|MPILE_(ERROR|WARNING))|DEPRECATED|USER_(NOTICE|DEPRECATED|ERROR|WARNING)|PARSE|ERROR|WARNING|ALL))\\b", + "name": "support.constant.core.php" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.inheritance.php" + } + }, + "match": "(\\\\)?\\b(RADIXCHAR|GROUPING|M(_(1_PI|SQRT(1_2|2|3|PI)|2_(SQRTPI|PI)|PI(_(2|4))?|E(ULER)?|L(N(10|2|PI)|OG(10E|2E)))|ON_(GROUPING|1(1|2|0)?|7|2|8|THOUSANDS_SEP|3|DECIMAL_POINT|9|4|5|6))|S(TR_PAD_(RIGHT|BOTH|LEFT)|ORT_(REGULAR|STRING|NUMERIC|DESC|LOCALE_STRING|ASC)|EEK_(SET|CUR|END))|H(TML_(SPECIALCHARS|ENTITIES)|ASH_HMAC)|YES(STR|EXPR)|N(_(S(IGN_POSN|EP_BY_SPACE)|CS_PRECEDES)|O(STR|EXPR)|EGATIVE_SIGN|AN)|C(R(YPT_(MD5|BLOWFISH|S(HA(256|512)|TD_DES|ALT_LENGTH)|EXT_DES)|NCYSTR|EDITS_(G(ROUP|ENERAL)|MODULES|SAPI|DOCS|QA|FULLPAGE|ALL))|HAR_MAX|O(NNECTION_(NORMAL|TIMEOUT|ABORTED)|DESET|UNT_(RECURSIVE|NORMAL))|URRENCY_SYMBOL|ASE_(UPPER|LOWER))|__COMPILER_HALT_OFFSET__|T(HOUS(EP|ANDS_SEP)|_FMT(_AMPM)?)|IN(T_(CURR_SYMBOL|FRAC_DIGITS)|I_(S(YSTEM|CANNER_(RAW|NORMAL))|USER|PERDIR|ALL)|F(O_(GENERAL|MODULES|C(REDITS|ONFIGURATION)|ENVIRONMENT|VARIABLES|LICENSE|ALL))?)|D(_(T_FMT|FMT)|IRECTORY_SEPARATOR|ECIMAL_POINT|A(Y_(1|7|2|3|4|5|6)|TE_(R(SS|FC(1(123|036)|2822|8(22|50)|3339))|COOKIE|ISO8601|W3C|ATOM)))|UPLOAD_ERR_(NO_(TMP_DIR|FILE)|CANT_WRITE|INI_SIZE|OK|PARTIAL|EXTENSION|FORM_SIZE)|P(M_STR|_(S(IGN_POSN|EP_BY_SPACE)|CS_PRECEDES)|OSITIVE_SIGN|ATH(_SEPARATOR|INFO_(BASENAME|DIRNAME|EXTENSION|FILENAME)))|E(RA(_(YEAR|T_FMT|D_(T_FMT|FMT)))?|XTR_(REFS|SKIP|IF_EXISTS|OVERWRITE|PREFIX_(SAME|I(NVALID|F_EXISTS)|ALL))|NT_(NOQUOTES|COMPAT|IGNORE|QUOTES))|FRAC_DIGITS|L(C_(M(ONETARY|ESSAGES)|NUMERIC|C(TYPE|OLLATE)|TIME|ALL)|O(G_(MAIL|SYSLOG|N(O(TICE|WAIT)|DELAY|EWS)|C(R(IT|ON)|ONS)|INFO|ODELAY|D(EBUG|AEMON)|U(SER|UCP)|P(ID|ERROR)|E(RR|MERG)|KERN|WARNING|L(OCAL(1|7|2|3|4|5|0|6)|PR)|A(UTH(PRIV)?|LERT))|CK_(SH|NB|UN|EX)))|A(M_STR|B(MON_(1(1|2|0)?|7|2|8|3|9|4|5|6)|DAY_(1|7|2|3|4|5|6))|SSERT_(BAIL|CALLBACK|QUIET_EVAL|WARNING|ACTIVE)|LT_DIGITS))\\b", + "name": "support.constant.std.php" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.inheritance.php" + } + }, + "match": "(\\\\)?\\b(GLOB_(MARK|BRACE|NO(SORT|CHECK|ESCAPE)|ONLYDIR|ERR|AVAILABLE_FLAGS)|XML_(SAX_IMPL|HTML_DOCUMENT_NODE|N(OTATION_NODE|AMESPACE_DECL_NODE)|C(OMMENT_NODE|DATA_SECTION_NODE)|TEXT_NODE|OPTION_(SKIP_(TAGSTART|WHITE)|CASE_FOLDING|TARGET_ENCODING)|D(TD_NODE|OCUMENT_(NODE|TYPE_NODE|FRAG_NODE))|PI_NODE|E(RROR_(RECURSIVE_ENTITY_REF|MISPLACED_XML_PI|B(INARY_ENTITY_REF|AD_CHAR_REF)|SYNTAX|NO(NE|_(MEMORY|ELEMENTS))|TAG_MISMATCH|IN(CORRECT_ENCODING|VALID_TOKEN)|DUPLICATE_ATTRIBUTE|UN(CLOSED_(CDATA_SECTION|TOKEN)|DEFINED_ENTITY|KNOWN_ENCODING)|JUNK_AFTER_DOC_ELEMENT|PAR(TIAL_CHAR|AM_ENTITY_REF)|EXTERNAL_ENTITY_HANDLING|A(SYNC_ENTITY|TTRIBUTE_EXTERNAL_ENTITY_REF))|NTITY_(REF_NODE|NODE|DECL_NODE)|LEMENT_(NODE|DECL_NODE))|LOCAL_NAMESPACE|ATTRIBUTE_(N(MTOKEN(S)?|O(TATION|DE))|CDATA|ID(REF(S)?)?|DECL_NODE|EN(TITY|UMERATION)))|M(HASH_(RIPEMD(1(28|60)|256|320)|GOST|MD(2|4|5)|S(HA(1|2(24|56)|384|512)|NEFRU256)|HAVAL(1(28|92|60)|2(24|56))|CRC32(B)?|TIGER(1(28|60))?|WHIRLPOOL|ADLER32)|YSQL(_(BOTH|NUM|CLIENT_(SSL|COMPRESS|I(GNORE_SPACE|NTERACTIVE))|ASSOC)|I_(RE(PORT_(STRICT|INDEX|OFF|ERROR|ALL)|FRESH_(GRANT|MASTER|BACKUP_LOG|S(TATUS|LAVE)|HOSTS|T(HREADS|ABLES)|LOG)|AD_DEFAULT_(GROUP|FILE))|GROUP_FLAG|MULTIPLE_KEY_FLAG|B(INARY_FLAG|OTH|LOB_FLAG)|S(T(MT_ATTR_(CURSOR_TYPE|UPDATE_MAX_LENGTH|PREFETCH_ROWS)|ORE_RESULT)|E(RVER_QUERY_(NO_(GOOD_INDEX_USED|INDEX_USED)|WAS_SLOW)|T_(CHARSET_NAME|FLAG)))|N(O(_D(EFAULT_VALUE_FLAG|ATA)|T_NULL_FLAG)|UM(_FLAG)?)|C(URSOR_TYPE_(READ_ONLY|SCROLLABLE|NO_CURSOR|FOR_UPDATE)|LIENT_(SSL|NO_SCHEMA|COMPRESS|I(GNORE_SPACE|NTERACTIVE)|FOUND_ROWS))|T(YPE_(GEOMETRY|MEDIUM_BLOB|B(IT|LOB)|S(HORT|TRING|ET)|YEAR|N(ULL|EWD(ECIMAL|ATE))|CHAR|TI(ME(STAMP)?|NY(_BLOB)?)|INT(24|ERVAL)|D(OUBLE|ECIMAL|ATE(TIME)?)|ENUM|VAR_STRING|FLOAT|LONG(_BLOB|LONG)?)|IMESTAMP_FLAG)|INIT_COMMAND|ZEROFILL_FLAG|O(N_UPDATE_NOW_FLAG|PT_(NET_(READ_BUFFER_SIZE|CMD_BUFFER_SIZE)|CONNECT_TIMEOUT|INT_AND_FLOAT_NATIVE|LOCAL_INFILE))|D(EBUG_TRACE_ENABLED|ATA_TRUNCATED)|U(SE_RESULT|N(SIGNED_FLAG|IQUE_KEY_FLAG))|P(RI_KEY_FLAG|ART_KEY_FLAG)|ENUM_FLAG|A(S(SOC|YNC)|UTO_INCREMENT_FLAG)))|CRYPT_(R(C(2|6)|IJNDAEL_(1(28|92)|256)|AND)|GOST|XTEA|M(ODE_(STREAM|NOFB|C(BC|FB)|OFB|ECB)|ARS)|BLOWFISH(_COMPAT)?|S(ERPENT|KIPJACK|AFER(128|PLUS|64))|C(RYPT|AST_(128|256))|T(RIPLEDES|HREEWAY|WOFISH)|IDEA|3DES|DE(S|CRYPT|V_(RANDOM|URANDOM))|PANAMA|EN(CRYPT|IGNA)|WAKE|LOKI97|ARCFOUR(_IV)?))|S(TREAM_(REPORT_ERRORS|M(UST_SEEK|KDIR_RECURSIVE)|BUFFER_(NONE|FULL|LINE)|S(HUT_(RD(WR)?|WR)|OCK_(R(DM|AW)|S(TREAM|EQPACKET)|DGRAM)|ERVER_(BIND|LISTEN))|NOTIFY_(RE(SOLVE|DIRECTED)|MIME_TYPE_IS|SEVERITY_(INFO|ERR|WARN)|CO(MPLETED|NNECT)|PROGRESS|F(ILE_SIZE_IS|AILURE)|AUTH_RE(SULT|QUIRED))|C(RYPTO_METHOD_(SSLv(2(_(SERVER|CLIENT)|3_(SERVER|CLIENT))|3_(SERVER|CLIENT))|TLS_(SERVER|CLIENT))|LIENT_(CONNECT|PERSISTENT|ASYNC_CONNECT)|AST_(FOR_SELECT|AS_STREAM))|I(GNORE_URL|S_URL|PPROTO_(RAW|TCP|I(CMP|P)|UDP))|O(OB|PTION_(READ_(BUFFER|TIMEOUT)|BLOCKING|WRITE_BUFFER))|U(RL_STAT_(QUIET|LINK)|SE_PATH)|P(EEK|F_(INET(6)?|UNIX))|ENFORCE_SAFE_MODE|FILTER_(READ|WRITE|ALL))|UNFUNCS_RET_(STRING|TIMESTAMP|DOUBLE)|QLITE(_(R(OW|EADONLY)|MIS(MATCH|USE)|B(OTH|USY)|SCHEMA|N(O(MEM|T(FOUND|ADB)|LFS)|UM)|C(O(RRUPT|NSTRAINT)|ANTOPEN)|TOOBIG|I(NTER(RUPT|NAL)|OERR)|OK|DONE|P(ROTOCOL|ERM)|E(RROR|MPTY)|F(ORMAT|ULL)|LOCKED|A(BORT|SSOC|UTH))|3_(B(OTH|LOB)|NU(M|LL)|TEXT|INTEGER|OPEN_(READ(ONLY|WRITE)|CREATE)|FLOAT|ASSOC)))|CURL(M(SG_DONE|_(BAD_(HANDLE|EASY_HANDLE)|CALL_MULTI_PERFORM|INTERNAL_ERROR|O(UT_OF_MEMORY|K)))|SSH_AUTH_(HOST|NONE|DEFAULT|P(UBLICKEY|ASSWORD)|KEYBOARD)|CLOSEPOLICY_(SLOWEST|CALLBACK|OLDEST|LEAST_(RECENTLY_USED|TRAFFIC))|_(HTTP_VERSION_(1_(1|0)|NONE)|NETRC_(REQUIRED|IGNORED|OPTIONAL)|TIMECOND_(IF(MODSINCE|UNMODSINCE)|LASTMOD)|IPRESOLVE_(V(4|6)|WHATEVER)|VERSION_(SSL|IPV6|KERBEROS4|LIBZ))|INFO_(RE(DIRECT_(COUNT|TIME)|QUEST_SIZE)|S(SL_VERIFYRESULT|TARTTRANSFER_TIME|IZE_(DOWNLOAD|UPLOAD)|PEED_(DOWNLOAD|UPLOAD))|H(TTP_CODE|EADER_(SIZE|OUT))|NAMELOOKUP_TIME|C(ON(NECT_TIME|TENT_(TYPE|LENGTH_(DOWNLOAD|UPLOAD)))|ERTINFO)|TOTAL_TIME|PR(IVATE|ETRANSFER_TIME)|EFFECTIVE_URL|FILETIME)|OPT_(R(E(SUME_FROM|TURNTRANSFER|DIR_PROTOCOLS|FERER|AD(DATA|FUNCTION))|AN(GE|DOM_FILE))|MAX(REDIRS|CONNECTS)|B(INARYTRANSFER|UFFERSIZE)|S(S(H_(HOST_PUBLIC_KEY_MD5|P(RIVATE_KEYFILE|UBLIC_KEYFILE)|AUTH_TYPES)|L(CERT(TYPE|PASSWD)?|_(CIPHER_LIST|VERIFY(HOST|PEER))|ENGINE(_DEFAULT)?|VERSION|KEY(TYPE|PASSWD)?))|TDERR)|H(TTP(GET|HEADER|200ALIASES|_VERSION|PROXYTUNNEL|AUTH)|EADER(FUNCTION)?)|N(O(BODY|SIGNAL|PROGRESS)|ETRC)|C(RLF|O(NNECTTIMEOUT(_MS)?|OKIE(SESSION|JAR|FILE)?)|USTOMREQUEST|ERTINFO|LOSEPOLICY|A(INFO|PATH))|T(RANSFERTEXT|CP_NODELAY|IME(CONDITION|OUT(_MS)?|VALUE))|I(N(TERFACE|FILE(SIZE)?)|PRESOLVE)|DNS_(CACHE_TIMEOUT|USE_GLOBAL_CACHE)|U(RL|SER(PWD|AGENT)|NRESTRICTED_AUTH|PLOAD)|P(R(IVATE|O(GRESSFUNCTION|XY(TYPE|USERPWD|PORT|AUTH)?|TOCOLS))|O(RT|ST(REDIR|QUOTE|FIELDS)?)|UT)|E(GDSOCKET|NCODING)|VERBOSE|K(RB4LEVEL|EYPASSWD)|QUOTE|F(RESH_CONNECT|TP(SSLAUTH|_(S(SL|KIP_PASV_IP)|CREATE_MISSING_DIRS|USE_EP(RT|SV)|FILEMETHOD)|PORT|LISTONLY|APPEND)|ILE(TIME)?|O(RBID_REUSE|LLOWLOCATION)|AILONERROR)|WRITE(HEADER|FUNCTION)|LOW_SPEED_(TIME|LIMIT)|AUTOREFERER)|PRO(XY_(SOCKS(4|5)|HTTP)|TO_(S(CP|FTP)|HTTP(S)?|T(ELNET|FTP)|DICT|F(TP(S)?|ILE)|LDAP(S)?|ALL))|E_(RE(CV_ERROR|AD_ERROR)|GOT_NOTHING|MALFORMAT_USER|BAD_(C(ONTENT_ENCODING|ALLING_ORDER)|PASSWORD_ENTERED|FUNCTION_ARGUMENT)|S(S(H|L_(C(IPHER|ONNECT_ERROR|ERTPROBLEM|ACERT)|PEER_CERTIFICATE|ENGINE_(SETFAILED|NOTFOUND)))|HARE_IN_USE|END_ERROR)|HTTP_(RANGE_ERROR|NOT_FOUND|PO(RT_FAILED|ST_ERROR))|COULDNT_(RESOLVE_(HOST|PROXY)|CONNECT)|T(OO_MANY_REDIRECTS|ELNET_OPTION_SYNTAX)|O(BSOLETE|UT_OF_MEMORY|PERATION_TIMEOUTED|K)|U(RL_MALFORMAT(_USER)?|N(SUPPORTED_PROTOCOL|KNOWN_TELNET_OPTION))|PARTIAL_FILE|F(TP_(BAD_DOWNLOAD_RESUME|SSL_FAILED|C(OULDNT_(RETR_FILE|GET_SIZE|S(TOR_FILE|ET_(BINARY|ASCII))|USE_REST)|ANT_(RECONNECT|GET_HOST))|USER_PASSWORD_INCORRECT|PORT_FAILED|QUOTE_ERROR|W(RITE_ERROR|EIRD_(SERVER_REPLY|227_FORMAT|USER_REPLY|PAS(S_REPLY|V_REPLY)))|ACCESS_DENIED)|ILE(SIZE_EXCEEDED|_COULDNT_READ_FILE)|UNCTION_NOT_FOUND|AILED_INIT)|WRITE_ERROR|L(IBRARY_NOT_FOUND|DAP_(SEARCH_FAILED|CANNOT_BIND|INVALID_URL))|ABORTED_BY_CALLBACK)|VERSION_NOW|FTP(METHOD_(MULTICWD|SINGLECWD|NOCWD)|SSL_(NONE|CONTROL|TRY|ALL)|AUTH_(SSL|TLS|DEFAULT))|AUTH_(GSSNEGOTIATE|BASIC|NTLM|DIGEST|ANY(SAFE)?))|I(MAGETYPE_(GIF|XBM|BMP|SWF|COUNT|TIFF_(MM|II)|I(CO|FF)|UNKNOWN|J(B2|P(X|2|C|EG(2000)?))|P(SD|NG)|WBMP)|NPUT_(REQUEST|GET|SE(RVER|SSION)|COOKIE|POST|ENV)|CONV_(MIME_DECODE_(STRICT|CONTINUE_ON_ERROR)|IMPL|VERSION))|D(NS_(MX|S(RV|OA)|HINFO|N(S|APTR)|CNAME|TXT|PTR|A(NY|LL|AAA|6)?)|OM(STRING_SIZE_ERR|_(SYNTAX_ERR|HIERARCHY_REQUEST_ERR|N(O(_(MODIFICATION_ALLOWED_ERR|DATA_ALLOWED_ERR)|T_(SUPPORTED_ERR|FOUND_ERR))|AMESPACE_ERR)|IN(DEX_SIZE_ERR|USE_ATTRIBUTE_ERR|VALID_(MODIFICATION_ERR|STATE_ERR|CHARACTER_ERR|ACCESS_ERR))|PHP_ERR|VALIDATION_ERR|WRONG_DOCUMENT_ERR)))|JSON_(HEX_(TAG|QUOT|A(MP|POS))|NUMERIC_CHECK|ERROR_(S(YNTAX|TATE_MISMATCH)|NONE|CTRL_CHAR|DEPTH|UTF8)|FORCE_OBJECT)|P(REG_(RECURSION_LIMIT_ERROR|GREP_INVERT|BA(CKTRACK_LIMIT_ERROR|D_UTF8_(OFFSET_ERROR|ERROR))|S(PLIT_(NO_EMPTY|OFFSET_CAPTURE|DELIM_CAPTURE)|ET_ORDER)|NO_ERROR|INTERNAL_ERROR|OFFSET_CAPTURE|PATTERN_ORDER)|SFS_(PASS_ON|ERR_FATAL|F(EED_ME|LAG_(NORMAL|FLUSH_(CLOSE|INC))))|CRE_VERSION|OSIX_(R_OK|X_OK|S_IF(REG|BLK|SOCK|CHR|IFO)|F_OK|W_OK))|F(NM_(NOESCAPE|CASEFOLD|P(ERIOD|ATHNAME))|IL(TER_(REQUIRE_(SCALAR|ARRAY)|SANITIZE_(MAGIC_QUOTES|S(TRI(NG|PPED)|PECIAL_CHARS)|NUMBER_(INT|FLOAT)|URL|E(MAIL|NCODED)|FULL_SPECIAL_CHARS)|NULL_ON_FAILURE|CALLBACK|DEFAULT|UNSAFE_RAW|VALIDATE_(REGEXP|BOOLEAN|I(NT|P)|URL|EMAIL|FLOAT)|F(ORCE_ARRAY|LAG_(S(CHEME_REQUIRED|TRIP_(BACKTICK|HIGH|LOW))|HOST_REQUIRED|NO(NE|_(RES_RANGE|PRIV_RANGE|ENCODE_QUOTES))|IPV(4|6)|PATH_REQUIRED|E(MPTY_STRING_NULL|NCODE_(HIGH|LOW|AMP))|QUERY_REQUIRED|ALLOW_(SCIENTIFIC|HEX|THOUSAND|OCTAL|FRACTION))))|E(_(BINARY|SKIP_EMPTY_LINES|NO_DEFAULT_CONTEXT|TEXT|IGNORE_NEW_LINES|USE_INCLUDE_PATH|APPEND)|INFO_(RAW|MIME(_(TYPE|ENCODING))?|SYMLINK|NONE|CONTINUE|DEVICES|PRESERVE_ATIME)))|ORCE_(GZIP|DEFLATE))|LIBXML_(XINCLUDE|N(SCLEAN|O(XMLDECL|BLANKS|NET|CDATA|E(RROR|MPTYTAG|NT)|WARNING))|COMPACT|D(TD(VALID|LOAD|ATTR)|OTTED_VERSION)|PARSEHUGE|ERR_(NONE|ERROR|FATAL|WARNING)|VERSION|LOADED_VERSION))\\b", + "name": "support.constant.ext.php" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.inheritance.php" + } + }, + "match": "(\\\\)?\\bT_(RE(TURN|QUIRE(_ONCE)?)|G(OTO|LOBAL)|XOR_EQUAL|M(INUS_EQUAL|OD_EQUAL|UL_EQUAL|ETHOD_C|L_COMMENT)|B(REAK|OOL(_CAST|EAN_(OR|AND))|AD_CHARACTER)|S(R(_EQUAL)?|T(RING(_(CAST|VARNAME))?|A(RT_HEREDOC|TIC))|WITCH|L(_EQUAL)?)|HALT_COMPILER|N(S_(SEPARATOR|C)|UM_STRING|EW|AMESPACE)|C(HARACTER|O(MMENT|N(ST(ANT_ENCAPSED_STRING)?|CAT_EQUAL|TINUE))|URLY_OPEN|L(O(SE_TAG|NE)|ASS(_C)?)|A(SE|TCH))|T(RY|HROW)|I(MPLEMENTS|S(SET|_(GREATER_OR_EQUAL|SMALLER_OR_EQUAL|NOT_(IDENTICAL|EQUAL)|IDENTICAL|EQUAL))|N(STANCEOF|C(LUDE(_ONCE)?)?|T(_CAST|ERFACE)|LINE_HTML)|F)|O(R_EQUAL|BJECT_(CAST|OPERATOR)|PEN_TAG(_WITH_ECHO)?|LD_FUNCTION)|D(NUMBER|I(R|V_EQUAL)|O(C_COMMENT|UBLE_(C(OLON|AST)|ARROW)|LLAR_OPEN_CURLY_BRACES)?|E(C(LARE)?|FAULT))|U(SE|NSET(_CAST)?)|P(R(I(NT|VATE)|OTECTED)|UBLIC|LUS_EQUAL|AAMAYIM_NEKUDOTAYIM)|E(X(TENDS|IT)|MPTY|N(CAPSED_AND_WHITESPACE|D(SWITCH|_HEREDOC|IF|DECLARE|FOR(EACH)?|WHILE))|CHO|VAL|LSE(IF)?)|VAR(IABLE)?|F(I(NAL|LE)|OR(EACH)?|UNC(_C|TION))|WHI(TESPACE|LE)|L(NUMBER|I(ST|NE)|OGICAL_(XOR|OR|AND))|A(RRAY(_CAST)?|BSTRACT|S|ND_EQUAL))\\b", + "name": "support.constant.parser-token.php" + }, + { + "comment": "In PHP, any identifier which is not a variable is taken to be a constant.\nHowever, if there is no constant defined with the given name then a notice\nis generated and the constant is assumed to have the value of its name.", + "match": "[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*", + "name": "constant.other.php" + } + ] + } + ] + }, + "function-return-type": { + "patterns": [ + { + "begin": "(:)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.type.php" + } + }, + "end": "(?=[{;])", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#type-annotation" + }, + { + "include": "#class-name" + } + ] + } + ] + }, + "type-annotation": { + "name": "support.type.php", + "patterns": [ + { + "match": "\\b(?:bool|int|float|string|resource|mixed|arraykey|nonnull|dict|vec|keyset)\\b", + "name": "support.type.php" + }, + { + "begin": "([A-Za-z_][A-Za-z0-9_]*)<", + "beginCaptures": { + "1": { + "name": "support.class.php" + } + }, + "end": ">", + "patterns": [ + { + "include": "#type-annotation" + } + ] + }, + { + "begin": "(shape\\()", + "end": "((,|\\.\\.\\.)?\\s*\\))", + "endCaptures": { + "1": { + "name": "keyword.operator.key.php" + } + }, + "name": "storage.type.shape.php", + "patterns": [ + { + "include": "#type-annotation" + }, + { + "include": "#strings" + }, + { + "include": "#constants" + } + ] + }, + { + "begin": "\\(", + "end": "\\)", + "patterns": [ + { + "include": "#type-annotation" + } + ] + }, + { + "include": "#class-name" + }, + { + "include": "#comments" + } + ] + }, + "function-arguments": { + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#attributes" + }, + { + "include": "#type-annotation" + }, + { + "begin": "(?xi)((\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*) # The variable name", + "end": "(?xi)\n\\s*(?=,|\\)|$) # A closing parentheses (end of argument list) or a comma", + "beginCaptures": { + "1": { + "name": "variable.other.php" + }, + "2": { + "name": "punctuation.definition.variable.php" + } + }, + "patterns": [ + { + "begin": "(=)", + "end": "(?=,|\\))", + "beginCaptures": { + "1": { + "name": "keyword.operator.assignment.php" + } + }, + "patterns": [ + { + "include": "#language" + } + ] + } + ] + } + ] + }, + "literal-collections": { + "patterns": [ + { + "begin": "(Vector|ImmVector|Set|ImmSet|Map|ImmMap|Pair)\\s*({)", + "end": "(})", + "beginCaptures": { + "1": { + "name": "support.class.php" + }, + "2": { + "name": "punctuation.section.array.begin.php" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.section.array.end.php" + } + }, + "name": "meta.collection.literal.php", + "patterns": [ + { + "include": "#language" + } + ] + } + ] + }, + "function-call": { + "patterns": [ + { + "begin": "(?i)(?=\\\\?[a-z_0-9\\\\]+\\\\[a-z_][a-z0-9_]*\\s*\\()", + "comment": "Functions in a user-defined namespace (overrides any built-ins)", + "end": "(?=\\s*\\()", + "patterns": [ + { + "include": "#user-function-call" + } + ] + }, + { + "match": "(?i)\\b(print|echo)\\b", + "name": "support.function.construct.php" + }, + { + "begin": "(?i)(\\\\)?(?=\\b[a-z_][a-z_0-9]*\\s*\\()", + "beginCaptures": { + "1": { + "name": "punctuation.separator.inheritance.php" + } + }, + "comment": "Root namespace function calls (built-in or user)", + "end": "(?=\\s*\\()", + "patterns": [ + { + "match": "(?i)\\b(isset|unset|e(val|mpty)|list)(?=\\s*\\()", + "name": "support.function.construct.php" + }, + { + "include": "#support" + }, + { + "include": "#user-function-call" + } + ] + } + ] + }, + "heredoc": { + "patterns": [ + { + "begin": "<<<\\s*(\"?)([a-zA-Z_]+[a-zA-Z0-9_]*)(\\1)\\s*$", + "beginCaptures": { + "2": { + "name": "keyword.operator.heredoc.php" + } + }, + "end": "^(\\2)(?=;?$)", + "endCaptures": { + "1": { + "name": "keyword.operator.heredoc.php" + } + }, + "name": "string.unquoted.heredoc.php", + "patterns": [ + { + "include": "#interpolation" + } + ] + }, + { + "begin": "<<<\\s*('?)([a-zA-Z_]+[a-zA-Z0-9_]*)(\\1)\\s*$", + "beginCaptures": { + "2": { + "name": "keyword.operator.heredoc.php" + } + }, + "end": "^(\\2)(?=;?$)", + "endCaptures": { + "1": { + "name": "keyword.operator.heredoc.php" + } + }, + "name": "string.unquoted.heredoc.nowdoc.php" + } + ] + }, + "instantiation": { + "begin": "(?i)(new)\\s+", + "beginCaptures": { + "1": { + "name": "keyword.other.new.php" + } + }, + "end": "(?i)(?=[^$a-z0-9_\\\\])", + "patterns": [ + { + "match": "(parent|static|self)(?=[^a-z0-9_])", + "name": "support.type.php" + }, + { + "include": "#class-name" + }, + { + "include": "#variable-name" + } + ] + }, + "interpolation": { + "comment": "http://www.php.net/manual/en/language.types.string.php#language.types.string.parsing", + "patterns": [ + { + "comment": "Interpolating octal values e.g. \\01 or \\07.", + "match": "\\\\[0-7]{1,3}", + "name": "constant.numeric.octal.php" + }, + { + "comment": "Interpolating hex values e.g. \\x1 or \\xFF.", + "match": "\\\\x[0-9A-Fa-f]{1,2}", + "name": "constant.numeric.hex.php" + }, + { + "comment": "Escaped characters in double-quoted strings e.g. \\n or \\t.", + "match": "\\\\[nrt\\\\\\$\\\"]", + "name": "constant.character.escape.php" + }, + { + "comment": "Interpolating expressions in double-quoted strings with {} e.g. {$x->y->z[0][1]}.", + "match": "(\\{\\$.*?\\})", + "name": "variable.other.php" + }, + { + "comment": "Interpolating simple variables, e.g. $x, $x->y, $x[z] but not $x->y->z.", + "match": "(\\$[a-zA-Z_][a-zA-Z0-9_]*((->[a-zA-Z_][a-zA-Z0-9_]*)|(\\[[a-zA-Z0-9_]+\\]))?)", + "name": "variable.other.php" + } + ] + }, + "invoke-call": { + "captures": { + "1": { + "name": "punctuation.definition.variable.php" + }, + "2": { + "name": "variable.other.php" + } + }, + "match": "(?i)(\\$+)([a-z_][a-z_0-9]*)(?=\\s*\\()", + "name": "meta.function-call.invoke.php" + }, + "interface": { + "begin": "^(?i)\\s*(?:(public|internal)\\s+)?(interface)\\b", + "beginCaptures": { + "1": { + "name": "storage.modifier.php" + }, + "2": { + "name": "storage.type.interface.php" + } + }, + "name": "meta.interface.php", + "end": "(?=[;{])", + "patterns": [ + { + "include": "#comments" + }, + { + "match": "\\b(extends)\\b", + "captures": { + "1": { + "name": "storage.modifier.extends.php" + } + } + }, + { + "include": "#generics" + }, + { + "include": "#namespace" + }, + { + "match": "(?i)[a-z0-9_]+", + "name": "entity.name.type.class.php" + } + ] + }, + "language": { + "patterns": [ + { + "include": "#comments" + }, + { + "begin": "(?=^\\s*<<)", + "end": "(?<=>>)", + "patterns": [ + { + "include": "#attributes" + } + ] + }, + { + "include": "#xhp" + }, + { + "include": "#interface" + }, + { + "begin": "(?xi)\n^\\s*\n(?:(module)\\s*)?(type|newtype)\n\\s+\n([a-z0-9_]+)", + "beginCaptures": { + "1": { + "name": "storage.modifier.php" + }, + "2": { + "name": "storage.type.typedecl.php" + }, + "3": { + "name": "entity.name.type.typedecl.php" + } + }, + "end": "(;)", + "endCaptures": { + "1": { + "name": "punctuation.termination.expression.php" + } + }, + "name": "meta.typedecl.php", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#generics" + }, + { + "match": "(=)", + "name": "keyword.operator.assignment.php" + }, + { + "include": "#type-annotation" + } + ] + }, + { + "begin": "(?i)^\\s*(?:(public|internal)\\s+)?(enum)\\s+(class)\\s+([a-z0-9_]+)\\s*:?", + "beginCaptures": { + "1": { + "name": "storage.modifier.php" + }, + "2": { + "name": "storage.modifier.php" + }, + "3": { + "name": "storage.type.class.enum.php" + }, + "4": { + "name": "entity.name.type.class.enum.php" + } + }, + "end": "(?=[{])", + "name": "meta.class.enum.php", + "patterns": [ + { + "match": "\\b(extends)\\b", + "name": "storage.modifier.extends.php" + }, + { + "include": "#type-annotation" + } + ] + }, + { + "begin": "(?i)^\\s*(?:(public|internal)\\s+)?(enum)\\s+([a-z0-9_]+)\\s*:?", + "beginCaptures": { + "1": { + "name": "storage.modifier.php" + }, + "2": { + "name": "storage.type.enum.php" + }, + "3": { + "name": "entity.name.type.enum.php" + } + }, + "end": "\\{", + "name": "meta.enum.php", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#type-annotation" + } + ] + }, + { + "begin": "(?i)^\\s*(?:(public|internal)\\s+)?(trait)\\s+([a-z0-9_]+)\\s*", + "beginCaptures": { + "1": { + "name": "storage.modifier.php" + }, + "2": { + "name": "storage.type.trait.php" + }, + "3": { + "name": "entity.name.type.class.php" + } + }, + "end": "(?=[{])", + "name": "meta.trait.php", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#generics" + }, + { + "include": "#implements" + } + ] + }, + { + "begin": "^\\s*(new)\\s+(module)\\s+([A-Za-z0-9_\\.]+)\\b", + "beginCaptures": { + "1": { + "name": "storage.type.module.php" + }, + "2": { + "name": "storage.type.module.php" + }, + "3": { + "name": "entity.name.type.module.php" + } + }, + "end": "(?=[{])", + "name": "meta.module.php", + "patterns": [ + { + "include": "#comments" + } + ] + }, + { + "begin": "^\\s*(module)\\s+([A-Za-z0-9_\\.]+)\\b", + "beginCaptures": { + "1": { + "name": "keyword.other.module.php" + }, + "2": { + "name": "entity.name.type.module.php" + } + }, + "end": "$|(?=[\\s;])", + "name": "meta.use.module.php", + "patterns": [ + { + "include": "#comments" + } + ] + }, + { + "begin": "(?i)(?:^\\s*|\\s*)(namespace)\\b\\s+(?=([a-z0-9_\\\\]*\\s*($|[;{]|(\\/[\\/*])))|$)", + "beginCaptures": { + "1": { + "name": "keyword.other.namespace.php" + } + }, + "contentName": "entity.name.type.namespace.php", + "end": "(?i)(?=\\s*$|[^a-z0-9_\\\\])", + "name": "meta.namespace.php", + "patterns": [ + { + "match": "\\\\", + "name": "punctuation.separator.inheritance.php" + } + ] + }, + { + "begin": "(?i)\\s*\\b(use)\\s+", + "beginCaptures": { + "1": { + "name": "keyword.other.use.php" + } + }, + "end": "(?=;|(?:^\\s*$))", + "name": "meta.use.php", + "patterns": [ + { + "include": "#comments" + }, + { + "begin": "(?i)\\s*(?=[a-z_0-9\\\\])", + "end": "(?xi)\n(?:\n (?:\\s*(as)\\b\\s*([a-z_0-9]*)\\s*(?=,|;|$))|\n (?=,|;|$)\n)", + "endCaptures": { + "1": { + "name": "keyword.other.use-as.php" + }, + "2": { + "name": "support.other.namespace.use-as.php" + } + }, + "patterns": [ + { + "include": "#class-builtin" + }, + { + "begin": "(?i)\\s*(?=[\\\\a-z_0-9])", + "end": "$|(?=[\\s,;])", + "name": "support.other.namespace.use.php", + "patterns": [ + { + "match": "\\\\", + "name": "punctuation.separator.inheritance.php" + } + ] + } + ] + }, + { + "match": "\\s*,\\s*" + } + ] + }, + { + "begin": "(?i)^\\s*((?:(?:final|abstract|public|internal)\\s+)*)(class)\\s+([a-z0-9_]+)\\s*", + "beginCaptures": { + "1": { + "patterns": [ + { + "match": "final|abstract|public|internal", + "name": "storage.modifier.php" + } + ] + }, + "2": { + "name": "storage.type.class.php" + }, + "3": { + "name": "entity.name.type.class.php" + } + }, + "end": "(?=[;{])", + "name": "meta.class.php", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#generics" + }, + { + "include": "#implements" + }, + { + "begin": "(?i)(extends)\\s+", + "beginCaptures": { + "1": { + "name": "storage.modifier.extends.php" + } + }, + "contentName": "meta.other.inherited-class.php", + "end": "(?i)(?=[^a-z_0-9\\\\])", + "patterns": [ + { + "begin": "(?i)(?=\\\\?[a-z_0-9]+\\\\)", + "end": "(?i)([a-z_][a-z_0-9]*)?(?=[^a-z0-9_\\\\])", + "endCaptures": { + "1": { + "name": "entity.other.inherited-class.php" + } + }, + "patterns": [ + { + "include": "#namespace" + } + ] + }, + { + "include": "#class-builtin" + }, + { + "include": "#namespace" + }, + { + "match": "(?i)[a-z_][a-z_0-9]*", + "name": "entity.other.inherited-class.php" + } + ] + } + ] + }, + { + "captures": { + "1": { + "name": "keyword.control.php" + } + }, + "match": "\\s*\\b(await|break|c(ase|ontinue)|concurrent|default|do|else|for(each)?|if|return|switch|use|while)\\b" + }, + { + "begin": "(?i)\\b((?:require|include)(?:_once)?)\\b\\s*", + "beginCaptures": { + "1": { + "name": "keyword.control.import.include.php" + } + }, + "end": "(?=\\s|;|$)", + "name": "meta.include.php", + "patterns": [ + { + "include": "#language" + } + ] + }, + { + "begin": "\\b(catch)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "keyword.control.exception.catch.php" + }, + "2": { + "name": "punctuation.definition.parameters.begin.bracket.round.php" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.parameters.end.bracket.round.php" + } + }, + "name": "meta.catch.php", + "patterns": [ + { + "include": "#namespace" + }, + { + "match": "(?xi)\n([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*) # Exception class\n((?:\\s*\\|\\s*[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)*) # Optional additional exception classes\n\\s*\n((\\$+)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*) # Variable", + "captures": { + "1": { + "name": "support.class.exception.php" + }, + "2": { + "patterns": [ + { + "match": "(?i)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*", + "name": "support.class.exception.php" + }, + { + "match": "\\|", + "name": "punctuation.separator.delimiter.php" + } + ] + }, + "3": { + "name": "variable.other.php" + }, + "4": { + "name": "punctuation.definition.variable.php" + } + } + } + ] + }, + { + "match": "\\b(catch|try|throw|exception|finally)\\b", + "name": "keyword.control.exception.php" + }, + { + "begin": "(?i)\\s*(?:(public|internal)\\s+)?(function)\\s*(?=\\()", + "beginCaptures": { + "1": { + "name": "storage.modifier.php" + }, + "2": { + "name": "storage.type.function.php" + } + }, + "end": "\\{|\\)", + "name": "meta.function.closure.php", + "patterns": [ + { + "begin": "(\\()", + "beginCaptures": { + "1": { + "name": "punctuation.definition.parameters.begin.php" + } + }, + "contentName": "meta.function.arguments.php", + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.definition.parameters.end.php" + } + }, + "patterns": [ + { + "include": "#function-arguments" + } + ] + }, + { + "begin": "(?i)(use)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "keyword.other.function.use.php" + }, + "2": { + "name": "punctuation.definition.parameters.begin.php" + } + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.definition.parameters.end.php" + } + }, + "patterns": [ + { + "captures": { + "1": { + "name": "storage.modifier.reference.php" + }, + "2": { + "name": "variable.other.php" + }, + "3": { + "name": "punctuation.definition.variable.php" + } + }, + "match": "(?:\\s*(&))?\\s*((\\$+)[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\\s*(?=,|\\))", + "name": "meta.function.closure.use.php" + } + ] + } + ] + }, + { + "begin": "(?x)\n\\s*((?:(?:final|abstract|public|private|protected|internal|static|async)\\s+)*)\n(function)\n(?:\\s+)\n(?:\n (__(?:call|construct|destruct|get|set|isset|unset|tostring|clone|set_state|sleep|wakeup|autoload|invoke|callStatic|dispose|disposeAsync)(?=[^a-zA-Z0-9_\\x7f-\\xff]))\n |\n ([a-zA-Z0-9_]+)\n)", + "beginCaptures": { + "1": { + "patterns": [ + { + "match": "final|abstract|public|private|protected|internal|static|async", + "name": "storage.modifier.php" + } + ] + }, + "2": { + "name": "storage.type.function.php" + }, + "3": { + "name": "support.function.magic.php" + }, + "4": { + "name": "entity.name.function.php" + }, + "5": { + "name": "meta.function.generics.php" + } + }, + "end": "(?=[{;])", + "name": "meta.function.php", + "patterns": [ + { + "include": "#generics" + }, + { + "begin": "(\\()", + "beginCaptures": { + "1": { + "name": "punctuation.definition.parameters.begin.php" + } + }, + "end": "(?=\\))", + "contentName": "meta.function.arguments.php", + "patterns": [ + { + "include": "#function-arguments" + } + ] + }, + { + "begin": "(\\))", + "beginCaptures": { + "1": { + "name": "punctuation.definition.parameters.end.php" + } + }, + "end": "(?=[{;])", + "patterns": [ + { + "include": "#function-return-type" + } + ] + } + ] + }, + { + "include": "#invoke-call" + }, + { + "begin": "(?xi)\n\\s*\n (?=\n [a-z_0-9$\\\\]+(::)\n (?:\n ([a-z_][a-z_0-9]*)\\s*\\(\n |\n ((\\$+)[a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\n |\n ([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)\n )?\n )", + "end": "(?x)\n(::)\n(?:\n ([A-Za-z_][A-Za-z_0-9]*)\\s*\\(\n |\n ((\\$+)[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n |\n ([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n)?", + "endCaptures": { + "1": { + "name": "keyword.operator.class.php" + }, + "2": { + "name": "meta.function-call.static.php" + }, + "3": { + "name": "variable.other.class.php" + }, + "4": { + "name": "punctuation.definition.variable.php" + }, + "5": { + "name": "constant.other.class.php" + } + }, + "patterns": [ + { + "match": "(self|static|parent)\\b", + "name": "support.type.php" + }, + { + "include": "#class-name" + }, + { + "include": "#variable-name" + } + ] + }, + { + "include": "#variables" + }, + { + "include": "#strings" + }, + { + "captures": { + "1": { + "name": "support.function.construct.php" + }, + "2": { + "name": "punctuation.definition.array.begin.php" + }, + "3": { + "name": "punctuation.definition.array.end.php" + } + }, + "match": "(array)(\\()(\\))", + "name": "meta.array.empty.php" + }, + { + "begin": "(array)(\\()", + "beginCaptures": { + "1": { + "name": "support.function.construct.php" + }, + "2": { + "name": "punctuation.definition.array.begin.php" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.array.end.php" + } + }, + "name": "meta.array.php", + "patterns": [ + { + "include": "#language" + } + ] + }, + { + "captures": { + "1": { + "name": "support.type.php" + } + }, + "match": "(?i)\\s*\\(\\s*(array|real|double|float|int(eger)?|bool(ean)?|string|object|binary|unset|arraykey|nonnull|dict|vec|keyset)\\s*\\)" + }, + { + "match": "(?i)\\b(array|real|double|float|int(eger)?|bool(ean)?|string|class|clone|var|function|interface|trait|parent|self|object|arraykey|nonnull|dict|vec|keyset)\\b", + "name": "support.type.php" + }, + { + "match": "(?i)\\b(global|abstract|const|extends|implements|final|p(r(ivate|otected)|ublic)|internal|static)\\b", + "name": "storage.modifier.php" + }, + { + "include": "#object" + }, + { + "match": ";", + "name": "punctuation.terminator.expression.php" + }, + { + "include": "#heredoc" + }, + { + "match": "\\.=?", + "name": "keyword.operator.string.php" + }, + { + "match": "=>", + "name": "keyword.operator.key.php" + }, + { + "match": "==>", + "name": "keyword.operator.lambda.php" + }, + { + "match": "\\|>", + "name": "keyword.operator.pipe.php" + }, + { + "match": "(!==|!=|===|==)", + "name": "keyword.operator.comparison.php" + }, + { + "match": "=|\\+=|\\-=|\\*=|/=|%=|&=|\\|=|\\^=|<<=|>>=", + "name": "keyword.operator.assignment.php" + }, + { + "match": "(<=|>=|<|>)", + "name": "keyword.operator.comparison.php" + }, + { + "match": "(\\-\\-|\\+\\+)", + "name": "keyword.operator.increment-decrement.php" + }, + { + "match": "(\\-|\\+|\\*|/|%)", + "name": "keyword.operator.arithmetic.php" + }, + { + "match": "(!|&&|\\|\\|)", + "name": "keyword.operator.logical.php" + }, + { + "begin": "(?i)\\b(as|is)\\b\\s+(?=[\\\\$a-z_])", + "beginCaptures": { + "1": { + "name": "keyword.operator.type.php" + } + }, + "end": "(?=[^\\\\$A-Za-z_0-9])", + "patterns": [ + { + "include": "#class-name" + }, + { + "include": "#variable-name" + } + ] + }, + { + "match": "(?i)\\b(is|as)\\b", + "name": "keyword.operator.type.php" + }, + { + "include": "#function-call" + }, + { + "match": "<<|>>|~|\\^|&|\\|", + "name": "keyword.operator.bitwise.php" + }, + { + "include": "#numbers" + }, + { + "include": "#instantiation" + }, + { + "begin": "\\[", + "beginCaptures": { + "0": { + "name": "punctuation.section.array.begin.php" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.section.array.end.php" + } + }, + "patterns": [ + { + "include": "#language" + } + ] + }, + { + "include": "#literal-collections" + }, + { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.section.scope.begin.php" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.section.scope.end.php" + } + }, + "patterns": [ + { + "include": "#language" + } + ] + }, + { + "include": "#constants" + } + ] + }, + "namespace": { + "begin": "(?i)((namespace)|[a-z0-9_]+)?(\\\\)(?=.*?[^a-z_0-9\\\\])", + "beginCaptures": { + "1": { + "name": "entity.name.type.namespace.php" + }, + "3": { + "name": "punctuation.separator.inheritance.php" + } + }, + "end": "(?i)(?=[a-z0-9_]*[^a-z0-9_\\\\])", + "name": "support.other.namespace.php", + "patterns": [ + { + "name": "entity.name.type.namespace.php", + "match": "(?i)[a-z0-9_]+(?=\\\\)" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.inheritance.php" + } + }, + "match": "(?i)(\\\\)" + } + ] + }, + "numbers": { + "match": "\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)\\b", + "name": "constant.numeric.php" + }, + "object": { + "patterns": [ + { + "begin": "(->)(\\$?\\{)", + "beginCaptures": { + "1": { + "name": "keyword.operator.class.php" + }, + "2": { + "name": "punctuation.definition.variable.php" + } + }, + "end": "(\\})", + "endCaptures": { + "1": { + "name": "punctuation.definition.variable.php" + } + }, + "patterns": [ + { + "include": "#language" + } + ] + }, + { + "captures": { + "1": { + "name": "keyword.operator.class.php" + }, + "2": { + "name": "meta.function-call.object.php" + }, + "3": { + "name": "variable.other.property.php" + }, + "4": { + "name": "punctuation.definition.variable.php" + } + }, + "match": "(?x)\n(->)\n (?:\n ([A-Za-z_][A-Za-z_0-9]*)\\s*\\(\n |\n ((\\$+)?[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n )?" + } + ] + }, + "parameter-default-types": { + "patterns": [ + { + "include": "#strings" + }, + { + "include": "#numbers" + }, + { + "include": "#variables" + }, + { + "match": "=>", + "name": "keyword.operator.key.php" + }, + { + "match": "=", + "name": "keyword.operator.assignment.php" + }, + { + "include": "#instantiation" + }, + { + "begin": "(?xi)\n\\s*\n(?=\n [a-z_0-9\\\\]+(::)\n ([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?\n)", + "end": "(?i)(::)([a-z_\\x{7f}-\\x{ff}][a-z0-9_\\x{7f}-\\x{ff}]*)?", + "endCaptures": { + "1": { + "name": "keyword.operator.class.php" + }, + "2": { + "name": "constant.other.class.php" + } + }, + "patterns": [ + { + "include": "#class-name" + } + ] + }, + { + "include": "#constants" + } + ] + }, + "php_doc": { + "patterns": [ + { + "comment": "PHPDocumentor only recognises lines with an asterisk as the first non-whitespaces character", + "match": "^(?!\\s*\\*).*$\\n?", + "name": "invalid.illegal.missing-asterisk.phpdoc.php" + }, + { + "captures": { + "1": { + "name": "keyword.other.phpdoc.php" + }, + "3": { + "name": "storage.modifier.php" + }, + "4": { + "name": "invalid.illegal.wrong-access-type.phpdoc.php" + } + }, + "match": "^\\s*\\*\\s*(@access)\\s+((public|private|protected|internal)|(.+))\\s*$" + }, + { + "captures": { + "1": { + "name": "keyword.other.phpdoc.php" + }, + "2": { + "name": "markup.underline.link.php" + } + }, + "match": "(@xlink)\\s+(.+)\\s*$" + }, + { + "match": "\\@(a(bstract|uthor)|c(ategory|opyright)|example|global|internal|li(cense|nk)|pa(ckage|ram)|return|s(ee|ince|tatic|ubpackage)|t(hrows|odo)|v(ar|ersion)|uses|deprecated|final|ignore)\\b", + "name": "keyword.other.phpdoc.php" + }, + { + "captures": { + "1": { + "name": "keyword.other.phpdoc.php" + } + }, + "match": "\\{(@(link)).+?\\}", + "name": "meta.tag.inline.phpdoc.php" + } + ] + }, + "regex-double-quoted": { + "begin": "(?x)\n(?<=re)\"/ (?=(\\\\.|[^\"/])++/[imsxeADSUXu]*\")", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.php" + } + }, + "end": "(/)([imsxeADSUXu]*)(\")", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.php" + } + }, + "name": "string.regexp.double-quoted.php", + "patterns": [ + { + "comment": "Escaped from the regexp – there can also be 2 backslashes (since 1 will escape the first)", + "match": "(\\\\){1,2}[.$^\\[\\]{}]", + "name": "constant.character.escape.regex.php" + }, + { + "include": "#interpolation" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.arbitrary-repetition.php" + }, + "3": { + "name": "punctuation.definition.arbitrary-repetition.php" + } + }, + "match": "(\\{)\\d+(,\\d+)?(\\})", + "name": "string.regexp.arbitrary-repetition.php" + }, + { + "begin": "\\[(?:\\^?\\])?", + "captures": { + "0": { + "name": "punctuation.definition.character-class.php" + } + }, + "end": "\\]", + "name": "string.regexp.character-class.php", + "patterns": [ + { + "include": "#interpolation" + } + ] + }, + { + "match": "[$^+*]", + "name": "keyword.operator.regexp.php" + } + ] + }, + "regex-single-quoted": { + "begin": "(?x)\n(?<=re)'/ (?=(\\\\.|[^'/])++/[imsxeADSUXu]*')", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.php" + } + }, + "end": "(/)([imsxeADSUXu]*)(')", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.php" + } + }, + "name": "string.regexp.single-quoted.php", + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.arbitrary-repetition.php" + }, + "3": { + "name": "punctuation.definition.arbitrary-repetition.php" + } + }, + "match": "(\\{)\\d+(,\\d+)?(\\})", + "name": "string.regexp.arbitrary-repetition.php" + }, + { + "comment": "Escaped from the regexp – there can also be 2 backslashes (since 1 will escape the first)", + "match": "(\\\\){1,2}[.$^\\[\\]{}]", + "name": "constant.character.escape.regex.php" + }, + { + "comment": "Escaped from the PHP string – there can also be 2 backslashes (since 1 will escape the first)", + "match": "\\\\{1,2}[\\\\']", + "name": "constant.character.escape.php" + }, + { + "begin": "\\[(?:\\^?\\])?", + "captures": { + "0": { + "name": "punctuation.definition.character-class.php" + } + }, + "end": "\\]", + "name": "string.regexp.character-class.php", + "patterns": [ + { + "match": "\\\\[\\\\'\\[\\]]", + "name": "constant.character.escape.php" + } + ] + }, + { + "match": "[$^+*]", + "name": "keyword.operator.regexp.php" + } + ] + }, + "sql-string-double-quoted": { + "begin": "\"\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER)\\b)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.php" + } + }, + "contentName": "source.sql.embedded.php", + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.php" + } + }, + "name": "string.quoted.double.sql.php", + "patterns": [ + { + "comment": "Open parens cause the next escaped character to not be captured as an\nescape character. Example: $x = \"SELECT (\")\";", + "match": "\\(", + "name": "punctuation.definition.parameters.begin.bracket.round.php" + }, + { + "match": "#(\\\\\"|[^\"])*(?=\"|$\\n?)", + "name": "comment.line.number-sign.sql" + }, + { + "match": "--(\\\\\"|[^\"])*(?=\"|$\\n?)", + "name": "comment.line.double-dash.sql" + }, + { + "match": "\\\\[\\\\\"`']", + "name": "constant.character.escape.php" + }, + { + "comment": "Unclosed strings must be captured to avoid them eating the remainder of the PHP script\nSample case: $sql = \"SELECT * FROM bar WHERE foo = '\" . $variable . \"'\"", + "match": "'(?=((\\\\')|[^'\"])*(\"|$))", + "name": "string.quoted.single.unclosed.sql" + }, + { + "comment": "Unclosed strings must be captured to avoid them eating the remainder of the PHP script\nSample case: $sql = \"SELECT * FROM bar WHERE foo = '\" . $variable . \"'\"", + "match": "`(?=((\\\\`)|[^`\"])*(\"|$))", + "name": "string.quoted.other.backtick.unclosed.sql" + }, + { + "begin": "'", + "end": "'", + "name": "string.quoted.single.sql", + "patterns": [ + { + "include": "#interpolation" + } + ] + }, + { + "begin": "`", + "end": "`", + "name": "string.quoted.other.backtick.sql", + "patterns": [ + { + "include": "#interpolation" + } + ] + }, + { + "include": "#interpolation" + }, + { + "include": "source.sql" + } + ] + }, + "sql-string-single-quoted": { + "begin": "'\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER)\\b)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.php" + } + }, + "contentName": "source.sql.embedded.php", + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.php" + } + }, + "name": "string.quoted.single.sql.php", + "patterns": [ + { + "comment": "Open parens cause the next escaped character to not be captured as an\nescape character. Example: $x = 'SELECT (')';", + "match": "\\(", + "name": "punctuation.definition.parameters.begin.bracket.round.php" + }, + { + "match": "#(\\\\'|[^'])*(?='|$\\n?)", + "name": "comment.line.number-sign.sql" + }, + { + "match": "--(\\\\'|[^'])*(?='|$\\n?)", + "name": "comment.line.double-dash.sql" + }, + { + "match": "\\\\[\\\\'`\"]", + "name": "constant.character.escape.php" + }, + { + "comment": "Unclosed strings must be captured to avoid them eating the remainder of the PHP script\nSample case: $sql = \"SELECT * FROM bar WHERE foo = '\" . $variable . \"'\"", + "match": "`(?=((\\\\`)|[^`'])*('|$))", + "name": "string.quoted.other.backtick.unclosed.sql" + }, + { + "comment": "Unclosed strings must be captured to avoid them eating the remainder of the PHP script\nSample case: $sql = \"SELECT * FROM bar WHERE foo = '\" . $variable . \"'\"", + "match": "\"(?=((\\\\\")|[^\"'])*('|$))", + "name": "string.quoted.double.unclosed.sql" + }, + { + "include": "source.sql" + } + ] + }, + "string-double-quoted": { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.php" + } + }, + "comment": "This contentName is just to allow the usage of “select scope” to select the string contents first, then the string with quotes", + "contentName": "meta.string-contents.quoted.double.php", + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.php" + } + }, + "name": "string.quoted.double.php", + "patterns": [ + { + "include": "#interpolation" + } + ] + }, + "string-single-quoted": { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.php" + } + }, + "contentName": "meta.string-contents.quoted.single.php", + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.php" + } + }, + "name": "string.quoted.single.php", + "patterns": [ + { + "match": "\\\\[\\\\']", + "name": "constant.character.escape.php" + } + ] + }, + "strings": { + "patterns": [ + { + "include": "#regex-double-quoted" + }, + { + "include": "#sql-string-double-quoted" + }, + { + "include": "#string-double-quoted" + }, + { + "include": "#regex-single-quoted" + }, + { + "include": "#sql-string-single-quoted" + }, + { + "include": "#string-single-quoted" + } + ] + }, + "support": { + "patterns": [ + { + "match": "(?i)\\bapc_(s(tore|ma_info)|c(ompile_file|lear_cache|a(s|che_info))|inc|de(c|fine_constants|lete(_file)?)|exists|fetch|load_constants|add|bin_(dump(file)?|load(file)?))\\b", + "name": "support.function.apc.php" + }, + { + "match": "(?i)\\b(s(huffle|izeof|ort)|n(ext|at(sort|casesort))|c(o(unt|mpact)|urrent)|in_array|u(sort|ksort|asort)|p(os|rev)|e(nd|ach|xtract)|k(sort|ey|rsort)|list|a(sort|r(sort|ray(_(s(hift|um|plice|earch|lice)|c(h(unk|ange_key_case)|o(unt_values|mbine))|intersect(_(u(key|assoc)|key|assoc))?|diff(_(u(key|assoc)|key|assoc))?|u(n(shift|ique)|intersect(_(uassoc|assoc))?|diff(_(uassoc|assoc))?)|p(op|ush|ad|roduct)|values|key(s|_exists)|f(il(ter|l(_keys)?)|lip)|walk(_recursive)?|r(e(duce|place(_recursive)?|verse)|and)|m(ultisort|erge(_recursive)?|ap)))?))|r(sort|eset|ange))\\b", + "name": "support.function.array.php" + }, + { + "match": "(?i)\\b(s(how_source|ys_getloadavg|leep)|highlight_(string|file)|con(stant|nection_(status|timeout|aborted))|time_(sleep_until|nanosleep)|ignore_user_abort|d(ie|efine(d)?)|u(sleep|n(iqid|pack))|__halt_compiler|p(hp_(strip_whitespace|check_syntax)|ack)|e(val|xit)|get_browser)\\b", + "name": "support.function.basic_functions.php" + }, + { + "match": "(?i)\\bbc(s(cale|ub|qrt)|comp|div|pow(mod)?|add|m(od|ul))\\b", + "name": "support.function.bcmath.php" + }, + { + "match": "(?i)\\bbz(c(ompress|lose)|open|decompress|err(str|no|or)|flush|write|read)\\b", + "name": "support.function.bz2.php" + }, + { + "match": "(?i)\\b(GregorianToJD|cal_(to_jd|info|days_in_month|from_jd)|unixtojd|jdto(unix|jewish)|easter_da(ys|te)|J(ulianToJD|ewishToJD|D(MonthName|To(Gregorian|Julian|French)|DayOfWeek))|FrenchToJD)\\b", + "name": "support.function.calendar.php" + }, + { + "match": "(?i)\\b(c(lass_(exists|alias)|all_user_method(_array)?)|trait_exists|i(s_(subclass_of|a)|nterface_exists)|__autoload|property_exists|get_(c(lass(_(vars|methods))?|alled_class)|object_vars|declared_(classes|traits|interfaces)|parent_class)|method_exists)\\b", + "name": "support.function.classobj.php" + }, + { + "match": "(?i)\\b(com_(set|create_guid|i(senum|nvoke)|pr(int_typeinfo|op(set|put|get))|event_sink|load(_typelib)?|addref|release|get(_active_object)?|message_pump)|variant_(s(ub|et(_type)?)|n(ot|eg)|c(a(st|t)|mp)|i(nt|div|mp)|or|d(iv|ate_(to_timestamp|from_timestamp))|pow|eqv|fix|a(nd|dd|bs)|round|get_type|xor|m(od|ul)))\\b", + "name": "support.function.com.php" + }, + { + "match": "(?i)\\bctype_(space|cntrl|digit|upper|p(unct|rint)|lower|al(num|pha)|graph|xdigit)\\b", + "name": "support.function.ctype.php" + }, + { + "match": "(?i)\\bcurl_(setopt(_array)?|c(opy_handle|lose)|init|e(rr(no|or)|xec)|version|getinfo|multi_(select|close|in(it|fo_read)|exec|add_handle|remove_handle|getcontent))\\b", + "name": "support.function.curl.php" + }, + { + "match": "(?i)\\b(str(totime|ptime|ftime)|checkdate|time(zone_(name_(from_abbr|get)|transitions_get|identifiers_list|o(pen|ffset_get)|version_get|location_get|abbreviations_list))?|idate|date(_(su(n(set|_info|rise)|b)|create(_from_format)?|time(stamp_(set|get)|zone_(set|get)|_set)|i(sodate_set|nterval_(create_from_date_string|format))|offset_get|d(iff|efault_timezone_(set|get)|ate_set)|parse(_from_format)?|format|add|get_last_errors|modify))?|localtime|g(et(timeofday|date)|m(strftime|date|mktime))|m(icrotime|ktime))\\b", + "name": "support.function.datetime.php" + }, + { + "match": "(?i)\\bdba_(sync|handlers|nextkey|close|insert|op(timize|en)|delete|popen|exists|key_split|f(irstkey|etch)|list|replace)\\b", + "name": "support.function.dba.php" + }, + { + "match": "(?i)\\bdbx_(sort|c(o(nnect|mpare)|lose)|e(scape_string|rror)|query|fetch_row)\\b", + "name": "support.function.dbx.php" + }, + { + "match": "(?i)\\b(scandir|c(h(dir|root)|losedir)|opendir|dir|re(winddir|addir)|getcwd)\\b", + "name": "support.function.dir.php" + }, + { + "match": "(?i)\\bdotnet_load\\b", + "name": "support.function.dotnet.php" + }, + { + "match": "(?i)\\beio_(s(y(nc(_file_range|fs)?|mlink)|tat(vfs)?|e(ndfile|t_m(in_parallel|ax_(idle|p(oll_(time|reqs)|arallel)))|ek))|n(threads|op|pending|re(qs|ady))|c(h(own|mod)|ustom|lose|ancel)|truncate|init|open|dup2|u(nlink|time)|poll|event_loop|f(s(ync|tat(vfs)?)|ch(own|mod)|truncate|datasync|utime|allocate)|write|l(stat|ink)|r(e(name|a(d(dir|link|ahead)?|lpath))|mdir)|g(et_(event_stream|last_error)|rp(_(cancel|limit|add))?)|mk(nod|dir)|busy)\\b", + "name": "support.function.eio.php" + }, + { + "match": "(?i)\\benchant_(dict_(s(tore_replacement|uggest)|check|is_in_session|describe|quick_check|add_to_(session|personal)|get_error)|broker_(set_ordering|init|d(ict_exists|escribe)|free(_dict)?|list_dicts|request_(dict|pwl_dict)|get_error))\\b", + "name": "support.function.enchant.php" + }, + { + "match": "(?i)\\b(s(plit(i)?|ql_regcase)|ereg(i(_replace)?|_replace)?)\\b", + "name": "support.function.ereg.php" + }, + { + "match": "(?i)\\b(set_e(rror_handler|xception_handler)|trigger_error|debug_(print_backtrace|backtrace)|user_error|error_(log|reporting|get_last)|restore_e(rror_handler|xception_handler))\\b", + "name": "support.function.errorfunc.php" + }, + { + "match": "(?i)\\b(s(hell_exec|ystem)|p(assthru|roc_(nice|close|terminate|open|get_status))|e(scapeshell(cmd|arg)|xec))\\b", + "name": "support.function.exec.php" + }, + { + "match": "(?i)\\b(exif_(t(humbnail|agname)|imagetype|read_data)|read_exif_data)\\b", + "name": "support.function.exif.php" + }, + { + "match": "(?i)\\b(s(ymlink|tat|et_file_buffer)|c(h(own|grp|mod)|opy|learstatcache)|t(ouch|empnam|mpfile)|is_(dir|uploaded_file|executable|file|writ(eable|able)|link|readable)|d(i(sk(_(total_space|free_space)|freespace)|rname)|elete)|u(nlink|mask)|p(close|open|a(thinfo|rse_ini_(string|file)))|f(s(canf|tat|eek)|nmatch|close|t(ell|runcate)|ile(size|ctime|type|inode|owner|_(put_contents|exists|get_contents)|perms|atime|group|mtime)?|open|p(ut(s|csv)|assthru)|eof|flush|write|lock|read|get(s(s)?|c(sv)?))|l(stat|ch(own|grp)|ink(info)?)|r(e(name|wind|a(d(file|link)|lpath(_cache_(size|get))?))|mdir)|glob|m(ove_uploaded_file|kdir)|basename)\\b", + "name": "support.function.file.php" + }, + { + "match": "(?i)\\b(finfo_(set_flags|close|open|file|buffer)|mime_content_type)\\b", + "name": "support.function.fileinfo.php" + }, + { + "match": "(?i)\\bfilter_(has_var|i(nput(_array)?|d)|var(_array)?|list)\\b", + "name": "support.function.filter.php" + }, + { + "match": "(?i)\\b(c(all_user_func(_array)?|reate_function)|unregister_tick_function|f(orward_static_call(_array)?|unc(tion_exists|_(num_args|get_arg(s)?)))|register_(shutdown_function|tick_function)|get_defined_functions)\\b", + "name": "support.function.funchand.php" + }, + { + "match": "(?i)\\b(ngettext|textdomain|d(ngettext|c(ngettext|gettext)|gettext)|gettext|bind(textdomain|_textdomain_codeset))\\b", + "name": "support.function.gettext.php" + }, + { + "match": "(?i)\\bgmp_(s(can(1|0)|trval|ign|ub|etbit|qrt(rem)?)|hamdist|ne(g|xtprime)|c(om|lrbit|mp)|testbit|in(tval|it|vert)|or|div(_(q(r)?|r)|exact)?|jacobi|p(o(pcount|w(m)?)|erfect_square|rob_prime)|fact|legendre|a(nd|dd|bs)|random|gcd(ext)?|xor|m(od|ul))\\b", + "name": "support.function.gmp.php" + }, + { + "match": "(?i)\\bhash(_(hmac(_file)?|copy|init|update(_(stream|file))?|pbkdf2|fi(nal|le)|algos))?\\b", + "name": "support.function.hash.php" + }, + { + "match": "(?i)\\b(http_(s(upport|end_(st(atus|ream)|content_(type|disposition)|data|file|last_modified))|head|negotiate_(c(harset|ontent_type)|language)|c(hunked_decode|ache_(etag|last_modified))|throttle|inflate|d(eflate|ate)|p(ost_(data|fields)|ut_(stream|data|file)|ersistent_handles_(c(ount|lean)|ident)|arse_(headers|cookie|params|message))|re(direct|quest(_(method_(name|unregister|exists|register)|body_encode))?)|get(_request_(headers|body(_stream)?))?|match_(etag|request_header|modified)|build_(str|cookie|url))|ob_(inflatehandler|deflatehandler|etaghandler))\\b", + "name": "support.function.http.php" + }, + { + "match": "(?i)\\b(iconv(_(s(tr(pos|len|rpos)|ubstr|et_encoding)|get_encoding|mime_(decode(_headers)?|encode)))?|ob_iconv_handler)\\b", + "name": "support.function.iconv.php" + }, + { + "match": "(?i)\\biis_(s(t(op_serv(ice|er)|art_serv(ice|er))|et_(s(cript_map|erver_rights)|dir_security|app_settings))|add_server|remove_server|get_(s(cript_map|erv(ice_state|er_(rights|by_(comment|path))))|dir_security))\\b", + "name": "support.function.iisfunc.php" + }, + { + "match": "(?i)\\b(i(ptc(parse|embed)|mage(s(y|tring(up)?|et(style|t(hickness|ile)|pixel|brush)|avealpha|x)|c(har(up)?|o(nvolution|py(res(ized|ampled)|merge(gray)?)?|lor(s(total|et|forindex)|closest(hwb|alpha)?|transparent|deallocate|exact(alpha)?|a(t|llocate(alpha)?)|resolve(alpha)?|match))|reate(truecolor|from(string|jpeg|png|wbmp|g(if|d(2(part)?)?)|x(pm|bm)))?)|t(ypes|tf(text|bbox)|ruecolortopalette)|i(struecolor|nterlace)|2wbmp|d(estroy|ashedline)|jpeg|_type_to_(extension|mime_type)|p(s(slantfont|text|e(ncodefont|xtendfont)|freefont|loadfont|bbox)|ng|olygon|alettecopy)|ellipse|f(t(text|bbox)|il(ter|l(toborder|ed(polygon|ellipse|arc|rectangle))?)|ont(height|width))|wbmp|l(ine|oadfont|ayereffect)|a(ntialias|lphablending|rc)|r(otate|ectangle)|g(if|d(2)?|ammacorrect|rab(screen|window))|xbm))|jpeg2wbmp|png2wbmp|g(d_info|etimagesize(fromstring)?))\\b", + "name": "support.function.image.php" + }, + { + "match": "(?i)\\b(s(ys_get_temp_dir|et_(time_limit|include_path|magic_quotes_runtime))|ini_(set|alter|restore|get(_all)?)|zend_(thread_id|version|logo_guid)|dl|p(hp(credits|info|_(sapi_name|ini_(scanned_files|loaded_file)|uname|logo_guid)|version)|utenv)|extension_loaded|version_compare|assert(_options)?|restore_include_path|g(c_(collect_cycles|disable|enable(d)?)|et(opt|_(c(urrent_user|fg_var)|include(d_files|_path)|defined_constants|extension_funcs|loaded_extensions|required_files|magic_quotes_(runtime|gpc))|env|lastmod|rusage|my(inode|uid|pid|gid)))|m(emory_get_(usage|peak_usage)|a(in|gic_quotes_runtime)))\\b", + "name": "support.function.info.php" + }, + { + "match": "(?i)\\bibase_(se(t_event_handler|rv(ice_(detach|attach)|er_info))|n(um_(params|fields)|ame_result)|c(o(nnect|mmit(_ret)?)|lose)|trans|d(elete_user|rop_db|b_info)|p(connect|aram_info|repare)|e(rr(code|msg)|xecute)|query|f(ield_info|etch_(object|assoc|row)|ree_(event_handler|query|result))|wait_event|a(dd_user|ffected_rows)|r(ollback(_ret)?|estore)|gen_id|m(odify_user|aintain_db)|b(lob_(c(lose|ancel|reate)|i(nfo|mport)|open|echo|add|get)|ackup))\\b", + "name": "support.function.interbase.php" + }, + { + "match": "(?i)\\b(n(ormalizer_(normalize|is_normalized)|umfmt_(set_(symbol|text_attribute|pattern|attribute)|create|parse(_currency)?|format(_currency)?|get_(symbol|text_attribute|pattern|error_(code|message)|locale|attribute)))|collator_(s(ort(_with_sort_keys)?|et_(strength|attribute))|c(ompare|reate)|asort|get_(s(trength|ort_key)|error_(code|message)|locale|attribute))|transliterator_(create(_(inverse|from_rules))?|transliterate|list_ids|get_error_(code|message))|i(ntl_(is_failure|error_name|get_error_(code|message))|dn_to_(u(nicode|tf8)|ascii))|datefmt_(set_(calendar|timezone(_id)?|pattern|lenient)|create|is_lenient|parse|format(_object)?|localtime|get_(calendar(_object)?|time(type|zone(_id)?)|datetype|pattern|error_(code|message)|locale))|locale_(set_default|compose|parse|filter_matches|lookup|accept_from_http|get_(script|d(isplay_(script|name|variant|language|region)|efault)|primary_language|keywords|all_variants|region))|resourcebundle_(c(ount|reate)|locales|get(_error_(code|message))?)|grapheme_(s(tr(str|i(str|pos)|pos|len|r(ipos|pos))|ubstr)|extract)|msgfmt_(set_pattern|create|parse(_message)?|format(_message)?|get_(pattern|error_(code|message)|locale)))\\b", + "name": "support.function.intl.php" + }, + { + "match": "(?i)\\bjson_(decode|encode|last_error)\\b", + "name": "support.function.json.php" + }, + { + "match": "(?i)\\bldap_(s(tart_tls|ort|e(t_(option|rebind_proc)|arch)|asl_bind)|next_(entry|attribute|reference)|c(o(n(nect|trol_paged_result(_response)?)|unt_entries|mpare)|lose)|t61_to_8859|d(n2ufn|elete)|8859_to_t61|unbind|parse_re(sult|ference)|e(rr(no|2str|or)|xplode_dn)|f(irst_(entry|attribute|reference)|ree_result)|list|add|re(name|ad)|get_(option|dn|entries|values(_len)?|attributes)|mod(ify|_(del|add|replace))|bind)\\b", + "name": "support.function.ldap.php" + }, + { + "match": "(?i)\\blibxml_(set_(streams_context|external_entity_loader)|clear_errors|disable_entity_loader|use_internal_errors|get_(errors|last_error))\\b", + "name": "support.function.libxml.php" + }, + { + "match": "(?i)\\b(ezmlm_hash|mail)\\b", + "name": "support.function.mail.php" + }, + { + "match": "(?i)\\b(s(in(h)?|qrt|rand)|h(ypot|exdec)|c(os(h)?|eil)|tan(h)?|is_(nan|infinite|finite)|octdec|de(c(hex|oct|bin)|g2rad)|p(i|ow)|exp(m1)?|f(loor|mod)|l(cg_value|og(1(p|0))?)|a(sin(h)?|cos(h)?|tan(h|2)?|bs)|r(ound|a(nd|d2deg))|getrandmax|m(t_(srand|rand|getrandmax)|in|ax)|b(indec|ase_convert))\\b", + "name": "support.function.math.php" + }, + { + "match": "(?i)\\bmb_(s(tr(str|cut|to(upper|lower)|i(str|pos|mwidth)|pos|width|len|r(chr|i(chr|pos)|pos))|ubst(itute_character|r(_count)?)|plit|end_mail)|http_(input|output)|c(heck_encoding|onvert_(case|encoding|variables|kana))|internal_encoding|output_handler|de(code_(numericentity|mimeheader)|tect_(order|encoding))|p(arse_str|referred_mime_name)|e(ncod(ing_aliases|e_(numericentity|mimeheader))|reg(i(_replace)?|_(search(_(setpos|init|pos|regs|get(pos|regs)))?|replace(_callback)?|match))?)|l(ist_encodings|anguage)|regex_(set_options|encoding)|get_info)\\b", + "name": "support.function.mbstring.php" + }, + { + "match": "(?i)\\bm(crypt_(c(fb|reate_iv|bc)|ofb|decrypt|e(nc(_(self_test|is_block_(algorithm(_mode)?|mode)|get_(supported_key_sizes|iv_size|key_size|algorithms_name|modes_name|block_size))|rypt)|cb)|list_(algorithms|modes)|ge(neric(_(init|deinit|end))?|t_(cipher_name|iv_size|key_size|block_size))|module_(self_test|close|is_block_(algorithm(_mode)?|mode)|open|get_(supported_key_sizes|algo_(key_size|block_size))))|decrypt_generic)\\b", + "name": "support.function.mcrypt.php" + }, + { + "match": "(?i)\\bmemcache_debug\\b", + "name": "support.function.memcache.php" + }, + { + "match": "(?i)\\bmhash(_(count|keygen_s2k|get_(hash_name|block_size)))?\\b", + "name": "support.function.mhash.php" + }, + { + "match": "(?i)\\bbson_(decode|encode)\\b", + "name": "support.function.mongo.php" + }, + { + "match": "(?i)\\bmysql_(s(tat|e(t_charset|lect_db))|num_(fields|rows)|c(onnect|l(ient_encoding|ose)|reate_db)|t(hread_id|ablename)|in(sert_id|fo)|d(ata_seek|rop_db|b_(name|query))|unbuffered_query|p(connect|ing)|e(scape_string|rr(no|or))|query|f(ield_(seek|name|t(ype|able)|flags|len)|etch_(object|field|lengths|a(ssoc|rray)|row)|ree_result)|list_(tables|dbs|processes|fields)|affected_rows|re(sult|al_escape_string)|get_(server_info|host_info|client_info|proto_info))\\b", + "name": "support.function.mysql.php" + }, + { + "match": "(?i)\\bmysqli_(s(sl_set|t(ore_result|at|mt_(s(tore_result|end_long_data)|next_result|close|init|data_seek|prepare|execute|f(etch|ree_result)|attr_(set|get)|res(ult_metadata|et)|get_(warnings|result)|more_results|bind_(param|result)))|e(nd_(query|long_data)|t_(charset|opt|local_infile_(handler|default))|lect_db)|lave_query)|next_result|c(ha(nge_user|racter_set_name)|o(nnect|mmit)|l(ient_encoding|ose))|thread_safe|init|options|d(isable_r(pl_parse|eads_from_master)|ump_debug_info|ebug|ata_seek)|use_result|p(ing|oll|aram_count|repare)|e(scape_string|nable_r(pl_parse|eads_from_master)|xecute|mbedded_server_(start|end))|kill|query|f(ield_seek|etch(_(object|field(s|_direct)?|a(ssoc|ll|rray)|row))?|ree_result)|autocommit|r(ollback|pl_(p(arse_enabled|robe)|query_type)|e(port|fresh|a(p_async_query|l_(connect|escape_string|query))))|get_(c(harset|onnection_stats|lient_(stats|info|version)|ache_stats)|warnings|metadata)|m(ore_results|ulti_query|aster_query)|bind_(param|result))\\b", + "name": "support.function.mysqli.php" + }, + { + "match": "(?i)\\bmysqlnd_memcache_(set|get_config)\\b", + "name": "support.function.mysqlnd-memcache.php" + }, + { + "match": "(?i)\\bmysqlnd_ms_(set_(user_pick_server|qos)|query_is_select|get_(stats|last_(used_connection|gtid))|match_wild)\\b", + "name": "support.function.mysqlnd-ms.php" + }, + { + "match": "(?i)\\bmysqlnd_qc_(set_(storage_handler|cache_condition|is_select|user_handlers)|clear_cache|get_(normalized_query_trace_log|c(ore_stats|ache_info)|query_trace_log|available_handlers))\\b", + "name": "support.function.mysqlnd-qc.php" + }, + { + "match": "(?i)\\bmysqlnd_uh_(set_(statement_proxy|connection_proxy)|convert_to_mysqlnd)\\b", + "name": "support.function.mysqlnd-uh.php" + }, + { + "match": "(?i)\\b(s(yslog|ocket_(set_(timeout|blocking)|get_status)|et(cookie|rawcookie))|h(ttp_response_code|eader(s_(sent|list)|_re(gister_callback|move))?)|c(heckdnsrr|loselog)|i(net_(ntop|pton)|p2long)|openlog|d(ns_(check_record|get_(record|mx))|efine_syslog_variables)|pfsockopen|fsockopen|long2ip|get(servby(name|port)|host(name|by(name(l)?|addr))|protobyn(umber|ame)|mxrr))\\b", + "name": "support.function.network.php" + }, + { + "match": "(?i)\\bnsapi_(virtual|re(sponse_headers|quest_headers))\\b", + "name": "support.function.nsapi.php" + }, + { + "match": "(?i)\\b(deaggregate|aggregat(ion_info|e(_(info|properties(_by_(list|regexp))?|methods(_by_(list|regexp))?))?))\\b", + "name": "support.function.objaggregation.php" + }, + { + "match": "(?i)\\boci(s(tatementtype|e(tprefetch|rverversion)|avelob(file)?)|n(umcols|ew(c(ollection|ursor)|descriptor)|logon)|c(o(l(umn(s(cale|ize)|name|type(raw)?|isnull|precision)|l(size|trim|a(ssign(elem)?|ppend)|getelem|max))|mmit)|loselob|ancel)|internaldebug|definebyname|_(s(tatement_type|e(t_(client_i(nfo|dentifier)|prefetch|edition|action|module_name)|rver_version))|n(um_(fields|rows)|ew_(c(o(nnect|llection)|ursor)|descriptor))|c(o(nnect|mmit)|l(ient_version|ose)|ancel)|internal_debug|define_by_name|p(connect|a(ssword_change|rse))|e(rror|xecute)|f(ield_(s(cale|ize)|name|type(_raw)?|is_null|precision)|etch(_(object|a(ssoc|ll|rray)|row))?|ree_(statement|descriptor))|lob_(copy|is_equal)|r(ollback|esult)|bind_(array_by_name|by_name))|p(logon|arse)|e(rror|xecute)|f(etch(statement|into)?|ree(statement|c(ollection|ursor)|desc))|write(temporarylob|lobtofile)|lo(adlob|go(n|ff))|r(o(wcount|llback)|esult)|bindbyname)\\b", + "name": "support.function.oci8.php" + }, + { + "match": "(?i)\\bopenssl_(s(ign|eal)|c(sr_(sign|new|export(_to_file)?|get_(subject|public_key))|ipher_iv_length)|open|d(h_compute_key|igest|ecrypt)|p(ublic_(decrypt|encrypt)|k(cs(12_(export(_to_file)?|read)|7_(sign|decrypt|encrypt|verify))|ey_(new|export(_to_file)?|free|get_(details|p(ublic|rivate))))|rivate_(decrypt|encrypt))|e(ncrypt|rror_string)|verify|free_key|random_pseudo_bytes|get_(cipher_methods|p(ublickey|rivatekey)|md_methods)|x509_(check(_private_key|purpose)|parse|export(_to_file)?|free|read))\\b", + "name": "support.function.openssl.php" + }, + { + "match": "(?i)\\b(o(utput_(add_rewrite_var|reset_rewrite_vars)|b_(start|clean|implicit_flush|end_(clean|flush)|flush|list_handlers|g(zhandler|et_(status|c(ontents|lean)|flush|le(ngth|vel)))))|flush)\\b", + "name": "support.function.output.php" + }, + { + "match": "(?i)\\bpassword_(hash|needs_rehash|verify|get_info)\\b", + "name": "support.function.password.php" + }, + { + "match": "(?i)\\bpcntl_(s(ig(nal(_dispatch)?|timedwait|procmask|waitinfo)|etpriority)|exec|fork|w(stopsig|termsig|if(s(topped|ignaled)|exited)|exitstatus|ait(pid)?)|alarm|getpriority)\\b", + "name": "support.function.pcntl.php" + }, + { + "match": "(?i)\\bpg_(se(nd_(prepare|execute|query(_params)?)|t_(client_encoding|error_verbosity)|lect)|host|num_(fields|rows)|c(o(n(nect(ion_(status|reset|busy))?|vert)|py_(to|from))|l(ient_encoding|ose)|ancel_query)|t(ty|ra(nsaction_status|ce))|insert|options|d(elete|bname)|u(n(trace|escape_bytea)|pdate)|p(connect|ing|ort|ut_line|arameter_status|repare)|e(scape_(string|identifier|literal|bytea)|nd_copy|xecute)|version|query(_params)?|f(ield_(size|n(um|ame)|t(ype(_oid)?|able)|is_null|prtlen)|etch_(object|a(ssoc|ll(_columns)?|rray)|r(ow|esult))|ree_result)|l(o_(seek|c(lose|reate)|tell|import|open|unlink|export|write|read(_all)?)|ast_(notice|oid|error))|affected_rows|result_(s(tatus|eek)|error(_field)?)|get_(notify|pid|result)|meta_data)\\b", + "name": "support.function.pgsql.php" + }, + { + "match": "(?i)\\b(virtual|apache_(setenv|note|child_terminate|lookup_uri|re(s(ponse_headers|et_timeout)|quest_headers)|get(_(version|modules)|env))|getallheaders)\\b", + "name": "support.function.php_apache.php" + }, + { + "match": "(?i)\\bdom_import_simplexml\\b", + "name": "support.function.php_dom.php" + }, + { + "match": "(?i)\\bftp_(s(sl_connect|ystype|i(te|ze)|et_option)|n(list|b_(continue|put|f(put|get)|get))|c(h(dir|mod)|onnect|dup|lose)|delete|p(ut|wd|asv)|exec|quit|f(put|get)|login|alloc|r(ename|aw(list)?|mdir)|get(_option)?|m(dtm|kdir))\\b", + "name": "support.function.php_ftp.php" + }, + { + "match": "(?i)\\bimap_(s(can(mailbox)?|tatus|ort|ubscribe|e(t(_quota|flag_full|acl)|arch)|avebody)|header(s|info)?|num_(recent|msg)|c(heck|l(ose|earflag_full)|reate(mailbox)?)|t(hread|imeout)|open|delete(mailbox)?|8bit|u(n(subscribe|delete)|tf(7_(decode|encode)|8)|id)|ping|e(rrors|xpunge)|qprint|fetch(structure|header|text|_overview|mime|body)|l(sub|ist(s(can|ubscribed)|mailbox)?|ast_error)|a(ppend|lerts)|r(e(name(mailbox)?|open)|fc822_(parse_(headers|adrlist)|write_address))|g(c|et(subscribed|_quota(root)?|acl|mailboxes))|m(sgno|ime_header_decode|ail(_(co(py|mpose)|move)|boxmsginfo)?)|b(inary|ody(struct)?|ase64))\\b", + "name": "support.function.php_imap.php" + }, + { + "match": "(?i)\\bmssql_(select_db|n(um_(fields|rows)|ext_result)|c(onnect|lose)|init|data_seek|pconnect|execute|query|f(ield_(seek|name|type|length)|etch_(object|field|a(ssoc|rray)|row|batch)|ree_(statement|result))|r(ows_affected|esult)|g(uid_string|et_last_message)|min_(error_severity|message_severity)|bind)\\b", + "name": "support.function.php_mssql.php" + }, + { + "match": "(?i)\\bodbc_(s(tatistics|pecialcolumns|etoption)|n(um_(fields|rows)|ext_result)|c(o(nnect|lumn(s|privileges)|mmit)|ursor|lose(_all)?)|table(s|privileges)|d(o|ata_source)|p(connect|r(imarykeys|ocedure(s|columns)|epare))|e(rror(msg)?|xec(ute)?)|f(ield_(scale|n(um|ame)|type|precision|len)|oreignkeys|etch_(into|object|array|row)|ree_result)|longreadlen|autocommit|r(ollback|esult(_all)?)|gettypeinfo|binmode)\\b", + "name": "support.function.php_odbc.php" + }, + { + "match": "(?i)\\bpreg_(split|quote|filter|last_error|replace(_callback)?|grep|match(_all)?)\\b", + "name": "support.function.php_pcre.php" + }, + { + "match": "(?i)\\b(spl_(classes|object_hash|autoload(_(call|unregister|extensions|functions|register))?)|class_(implements|uses|parents)|iterator_(count|to_array|apply))\\b", + "name": "support.function.php_spl.php" + }, + { + "match": "(?i)\\bzip_(close|open|entry_(name|c(ompress(ionmethod|edsize)|lose)|open|filesize|read)|read)\\b", + "name": "support.function.php_zip.php" + }, + { + "match": "(?i)\\bposix_(s(trerror|et(sid|uid|pgid|e(uid|gid)|gid))|ctermid|t(tyname|imes)|i(satty|nitgroups)|uname|errno|kill|access|get(sid|cwd|uid|_last_error|p(id|pid|w(nam|uid)|g(id|rp))|e(uid|gid)|login|rlimit|g(id|r(nam|oups|gid)))|mk(nod|fifo))\\b", + "name": "support.function.posix.php" + }, + { + "match": "(?i)\\bset(threadtitle|proctitle)\\b", + "name": "support.function.proctitle.php" + }, + { + "match": "(?i)\\bpspell_(s(tore_replacement|uggest|ave_wordlist)|new(_(config|personal))?|c(heck|onfig_(save_repl|create|ignore|d(ict_dir|ata_dir)|personal|r(untogether|epl)|mode)|lear_session)|add_to_(session|personal))\\b", + "name": "support.function.pspell.php" + }, + { + "match": "(?i)\\breadline(_(c(ompletion_function|lear_history|allback_(handler_(install|remove)|read_char))|info|on_new_line|write_history|list_history|add_history|re(display|ad_history)))?\\b", + "name": "support.function.readline.php" + }, + { + "match": "(?i)\\brecode(_(string|file))?\\b", + "name": "support.function.recode.php" + }, + { + "match": "(?i)\\brrd_(create|tune|info|update|error|version|f(irst|etch)|last(update)?|restore|graph|xport)\\b", + "name": "support.function.rrd.php" + }, + { + "match": "(?i)\\b(s(hm_(has_var|detach|put_var|attach|remove(_var)?|get_var)|em_(acquire|re(lease|move)|get))|ftok|msg_(s(tat_queue|e(nd|t_queue))|queue_exists|re(ceive|move_queue)|get_queue))\\b", + "name": "support.function.sem.php" + }, + { + "match": "(?i)\\bsession_(s(ta(tus|rt)|et_(save_handler|cookie_params)|ave_path)|name|c(ommit|ache_(expire|limiter))|i(s_registered|d)|de(stroy|code)|un(set|register)|encode|write_close|reg(ister(_shutdown)?|enerate_id)|get_cookie_params|module_name)\\b", + "name": "support.function.session.php" + }, + { + "match": "(?i)\\bshmop_(size|close|open|delete|write|read)\\b", + "name": "support.function.shmop.php" + }, + { + "match": "(?i)\\bsimplexml_(import_dom|load_(string|file))\\b", + "name": "support.function.simplexml.php" + }, + { + "match": "(?i)\\bsnmp(set|2_(set|walk|real_walk|get(next)?)|_(set_(oid_(numeric_print|output_format)|enum_print|valueretrieval|quick_print)|read_mib|get_(valueretrieval|quick_print))|3_(set|walk|real_walk|get(next)?)|walk(oid)?|realwalk|get(next)?)\\b", + "name": "support.function.snmp.php" + }, + { + "match": "(?i)\\b(is_soap_fault|use_soap_error_handler)\\b", + "name": "support.function.soap.php" + }, + { + "match": "(?i)\\bsocket_(s(hutdown|trerror|e(nd(to)?|t_(nonblock|option|block)|lect))|c(onnect|l(ose|ear_error)|reate(_(pair|listen))?)|import_stream|write|l(isten|ast_error)|accept|re(cv(from)?|ad)|get(sockname|_option|peername)|bind)\\b", + "name": "support.function.sockets.php" + }, + { + "match": "(?i)\\bsqlite_(s(ingle_query|eek)|has_(prev|more)|n(um_(fields|rows)|ext)|c(hanges|olumn|urrent|lose|reate_(function|aggregate))|open|u(nbuffered_query|df_(decode_binary|encode_binary))|p(open|rev)|e(scape_string|rror_string|xec)|valid|key|query|f(ield_name|etch_(s(tring|ingle)|column_types|object|a(ll|rray))|actory)|l(ib(encoding|version)|ast_(insert_rowid|error))|array_query|rewind|busy_timeout)\\b", + "name": "support.function.sqlite.php" + }, + { + "match": "(?i)\\bsqlsrv_(se(nd_stream_data|rver_info)|has_rows|n(um_(fields|rows)|ext_result)|c(o(n(nect|figure)|mmit)|l(ient_info|ose)|ancel)|prepare|e(rrors|xecute)|query|f(ield_metadata|etch(_(object|array))?|ree_stmt)|ro(ws_affected|llback)|get_(config|field)|begin_transaction)\\b", + "name": "support.function.sqlsrv.php" + }, + { + "match": "(?i)\\bstats_(s(ta(ndard_deviation|t_(noncentral_t|correlation|in(nerproduct|dependent_t)|p(owersum|ercentile|aired_t)|gennch|binomial_coef))|kew)|harmonic_mean|c(ovariance|df_(n(oncentral_(chisquare|f)|egative_binomial)|c(hisquare|auchy)|t|uniform|poisson|exponential|f|weibull|l(ogistic|aplace)|gamma|b(inomial|eta)))|den(s_(n(ormal|egative_binomial)|c(hisquare|auchy)|t|pmf_(hypergeometric|poisson|binomial)|exponential|f|weibull|l(ogistic|aplace)|gamma|beta)|_uniform)|variance|kurtosis|absolute_deviation|rand_(setall|phrase_to_seeds|ranf|ge(n_(no(ncen(tral_(t|f)|ral_chisquare)|rmal)|chisquare|t|i(nt|uniform|poisson|binomial(_negative)?)|exponential|f(uniform)?|gamma|beta)|t_seeds)))\\b", + "name": "support.function.stats.php" + }, + { + "match": "(?i)\\bs(tream_(s(ocket_(s(hutdown|e(ndto|rver))|client|pair|enable_crypto|accept|recvfrom|get_name)|upports_lock|e(t_(chunk_size|timeout|write_buffer|read_buffer|blocking)|lect))|notification_callback|co(ntext_(set_(option|default|params)|create|get_(options|default|params))|py_to_stream)|is_local|encoding|filter_(prepend|append|re(gister|move))|wrapper_(unregister|re(store|gister))|re(solve_include_path|gister_wrapper)|get_(contents|transports|filters|wrappers|line|meta_data)|bucket_(new|prepend|append|make_writeable))|et_socket_blocking)\\b", + "name": "support.function.streamsfuncs.php" + }, + { + "match": "(?i)\\b(s(scanf|ha1(_file)?|tr(s(tr|pn)|n(c(asecmp|mp)|atc(asecmp|mp))|c(spn|hr|oll|asecmp|mp)|t(o(upper|k|lower)|r)|i(str|p(slashes|cslashes|os|_tags))|_(s(huffle|plit)|ireplace|pad|word_count|r(ot13|ep(eat|lace))|getcsv)|p(os|brk)|len|r(chr|ipos|pos|ev))|imilar_text|oundex|ubstr(_(co(unt|mpare)|replace))?|printf|etlocale)|h(tml(specialchars(_decode)?|_entity_decode|entities)|e(x2bin|brev(c)?))|n(umber_format|l(2br|_langinfo))|c(h(op|unk_split|r)|o(nvert_(cyr_string|uu(decode|encode))|unt_chars)|r(ypt|c32))|trim|implode|ord|uc(first|words)|join|p(arse_str|rint(f)?)|e(cho|xplode)|v(sprintf|printf|fprintf)|quote(d_printable_(decode|encode)|meta)|fprintf|wordwrap|l(cfirst|trim|ocaleconv|evenshtein)|add(slashes|cslashes)|rtrim|get_html_translation_table|m(oney_format|d5(_file)?|etaphone)|bin2hex)\\b", + "name": "support.function.string.php" + }, + { + "match": "(?i)\\bsybase_(se(t_message_handler|lect_db)|num_(fields|rows)|c(onnect|lose)|d(eadlock_retry_count|ata_seek)|unbuffered_query|pconnect|query|f(ield_seek|etch_(object|field|a(ssoc|rray)|row)|ree_result)|affected_rows|result|get_last_message|min_(server_severity|client_severity|error_severity|message_severity))\\b", + "name": "support.function.sybase.php" + }, + { + "match": "(?i)\\b(taint|is_tainted|untaint)\\b", + "name": "support.function.taint.php" + }, + { + "match": "(?i)\\b(tidy_(s(et(opt|_encoding)|ave_config)|c(onfig_count|lean_repair)|is_x(html|ml)|diagnose|parse_(string|file)|error_count|warning_count|load_config|access_count|re(set_config|pair_(string|file))|get(opt|_(status|h(tml(_ver)?|ead)|config|o(utput|pt_doc)|r(oot|elease)|body)))|ob_tidyhandler)\\b", + "name": "support.function.tidy.php" + }, + { + "match": "(?i)\\btoken_(name|get_all)\\b", + "name": "support.function.tokenizer.php" + }, + { + "match": "(?i)\\btrader_(s(t(och(f|rsi)?|ddev)|in(h)?|u(m|b)|et_(compat|unstable_period)|qrt|ar(ext)?|ma)|ht_(sine|trend(line|mode)|dcp(hase|eriod)|phasor)|natr|c(ci|o(s(h)?|rrel)|dl(s(ho(otingstar|rtline)|t(icksandwich|alledpattern)|pinningtop|eparatinglines)|h(i(kkake(mod)?|ghwave)|omingpigeon|a(ngingman|rami(cross)?|mmer))|c(o(ncealbabyswall|unterattack)|losingmarubozu)|t(hrusting|a(sukigap|kuri)|ristar)|i(n(neck|vertedhammer)|dentical3crows)|2crows|onneck|d(oji(star)?|arkcloudcover|ragonflydoji)|u(nique3river|psidegap2crows)|3(starsinsouth|inside|outside|whitesoldiers|linestrike|blackcrows)|piercing|e(ngulfing|vening(star|dojistar))|kicking(bylength)?|l(ongl(ine|eggeddoji)|adderbottom)|a(dvanceblock|bandonedbaby)|ri(sefall3methods|ckshawman)|g(apsidesidewhite|ravestonedoji)|xsidegap3methods|m(orning(star|dojistar)|a(t(hold|chinglow)|rubozu))|b(elthold|reakaway))|eil|mo)|t(sf|ypprice|3|ema|an(h)?|r(i(x|ma)|ange))|obv|d(iv|ema|x)|ultosc|p(po|lus_d(i|m))|e(rrno|xp|ma)|var|kama|floor|w(clprice|illr|ma)|l(n|inearreg(_(slope|intercept|angle))?|og10)|a(sin|cos|t(an|r)|d(osc|d|x(r)?)?|po|vgprice|roon(osc)?)|r(si|oc(p|r(100)?)?)|get_(compat|unstable_period)|m(i(n(index|us_d(i|m)|max(index)?)?|dp(oint|rice))|om|ult|edprice|fi|a(cd(ext|fix)?|vp|x(index)?|ma)?)|b(op|eta|bands))\\b", + "name": "support.function.trader.php" + }, + { + "match": "(?i)\\b(http_build_query|url(decode|encode)|parse_url|rawurl(decode|encode)|get_(headers|meta_tags)|base64_(decode|encode))\\b", + "name": "support.function.url.php" + }, + { + "match": "(?i)\\b(s(trval|e(ttype|rialize))|i(s(set|_(s(calar|tring)|nu(ll|meric)|callable|int(eger)?|object|double|float|long|array|re(source|al)|bool|arraykey|nonnull|dict|vec|keyset))|ntval|mport_request_variables)|d(oubleval|ebug_zval_dump)|unse(t|rialize)|print_r|empty|var_(dump|export)|floatval|get(type|_(defined_vars|resource_type))|boolval)\\b", + "name": "support.function.var.php" + }, + { + "match": "(?i)\\bwddx_(serialize_va(lue|rs)|deserialize|packet_(start|end)|add_vars)\\b", + "name": "support.function.wddx.php" + }, + { + "match": "(?i)\\bxhprof_(sample_(disable|enable)|disable|enable)\\b", + "name": "support.function.xhprof.php" + }, + { + "match": "(?i)\\b(utf8_(decode|encode)|xml_(set_(start_namespace_decl_handler|notation_decl_handler|character_data_handler|object|default_handler|unparsed_entity_decl_handler|processing_instruction_handler|e(nd_namespace_decl_handler|lement_handler|xternal_entity_ref_handler))|parse(_into_struct|r_(set_option|create(_ns)?|free|get_option))?|error_string|get_(current_(column_number|line_number|byte_index)|error_code)))\\b", + "name": "support.function.xml.php" + }, + { + "match": "(?i)\\bxmlrpc_(se(t_type|rver_(c(all_method|reate)|destroy|add_introspection_data|register_(introspection_callback|method)))|is_fault|decode(_request)?|parse_method_descriptions|encode(_request)?|get_type)\\b", + "name": "support.function.xmlrpc.php" + }, + { + "match": "(?i)\\bxmlwriter_(s(tart_(c(omment|data)|d(td(_(e(ntity|lement)|attlist))?|ocument)|pi|element(_ns)?|attribute(_ns)?)|et_indent(_string)?)|text|o(utput_memory|pen_(uri|memory))|end_(c(omment|data)|d(td(_(e(ntity|lement)|attlist))?|ocument)|pi|element|attribute)|f(ull_end_element|lush)|write_(c(omment|data)|dtd(_(e(ntity|lement)|attlist))?|pi|element(_ns)?|attribute(_ns)?|raw))\\b", + "name": "support.function.xmlwriter.php" + }, + { + "match": "(?i)\\bxslt_(set(opt|_(s(cheme_handler(s)?|ax_handler(s)?)|object|e(ncoding|rror_handler)|log|base))|create|process|err(no|or)|free|getopt|backend_(name|info|version))\\b", + "name": "support.function.xslt.php" + }, + { + "match": "(?i)\\b(zlib_(decode|encode|get_coding_type)|readgzfile|gz(seek|c(ompress|lose)|tell|inflate|open|de(code|flate)|uncompress|p(uts|assthru)|e(ncode|of)|file|write|re(wind|ad)|get(s(s)?|c)))\\b", + "name": "support.function.zlib.php" + }, + { + "match": "(?i)\\bis_int(eger)?\\b", + "name": "support.function.alias.php" + } + ] + }, + "user-function-call": { + "begin": "(?i)(?=[a-z_0-9\\\\]*[a-z_][a-z0-9_]*\\s*\\()", + "end": "(?i)[a-z_][a-z_0-9]*(?=\\s*\\()", + "endCaptures": { + "0": { + "name": "entity.name.function.php" + } + }, + "name": "meta.function-call.php", + "patterns": [ + { + "include": "#namespace" + } + ] + }, + "var_basic": { + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.variable.php" + } + }, + "match": "(?x)\n(\\$+)\n[a-zA-Z_\\x{7f}-\\x{ff}]\n[a-zA-Z0-9_\\x{7f}-\\x{ff}]*?\n\\b", + "name": "variable.other.php" + } + ] + }, + "var_global": { + "captures": { + "1": { + "name": "punctuation.definition.variable.php" + } + }, + "match": "(\\$)((_(COOKIE|FILES|GET|POST|REQUEST))|arg(v|c))\\b", + "name": "variable.other.global.php" + }, + "var_global_safer": { + "captures": { + "1": { + "name": "punctuation.definition.variable.php" + } + }, + "match": "(\\$)((GLOBALS|_(ENV|SERVER|SESSION)))", + "name": "variable.other.global.safer.php" + }, + "variable-name": { + "patterns": [ + { + "include": "#var_global" + }, + { + "include": "#var_global_safer" + }, + { + "captures": { + "1": { + "name": "variable.other.php" + }, + "2": { + "name": "punctuation.definition.variable.php" + }, + "4": { + "name": "keyword.operator.class.php" + }, + "5": { + "name": "variable.other.property.php" + }, + "6": { + "name": "punctuation.section.array.begin.php" + }, + "7": { + "name": "constant.numeric.index.php" + }, + "8": { + "name": "variable.other.index.php" + }, + "9": { + "name": "punctuation.definition.variable.php" + }, + "10": { + "name": "string.unquoted.index.php" + }, + "11": { + "name": "punctuation.section.array.end.php" + } + }, + "comment": "Simple syntax: $foo, $foo[0], $foo[$bar], $foo->bar", + "match": "(?x)\n((\\$)(?<name>[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*))\n(?:\n (->)(\\g<name>)\n |\n (\\[)\n (?:(\\d+)|((\\$)\\g<name>)|(\\w+))\n (\\])\n)?" + }, + { + "captures": { + "1": { + "name": "variable.other.php" + }, + "2": { + "name": "punctuation.definition.variable.php" + }, + "4": { + "name": "punctuation.definition.variable.php" + } + }, + "comment": "Simple syntax with braces: \"foo${bar}baz\"", + "match": "(?x)\n((\\$\\{)(?<name>[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)(\\}))" + } + ] + }, + "variables": { + "patterns": [ + { + "include": "#var_global" + }, + { + "include": "#var_global_safer" + }, + { + "include": "#var_basic" + }, + { + "begin": "(\\$\\{)(?=.*?\\})", + "beginCaptures": { + "1": { + "name": "punctuation.definition.variable.php" + } + }, + "end": "(\\})", + "endCaptures": { + "1": { + "name": "punctuation.definition.variable.php" + } + }, + "patterns": [ + { + "include": "#language" + } + ] + } + ] + }, + "xhp": { + "comment": "Avoid < operator expressions as best we can using Zertosh's regex", + "patterns": [ + { + "contentName": "source.xhp", + "begin": "(?<=\\(|\\{|\\[|,|&&|\\|\\||\\?|:|=|=>|\\Wreturn|^return|^)\\s*(?=<[_\\p{L}])", + "end": "(?=.)", + "applyEndPatternLast": 1, + "patterns": [ + { + "include": "#xhp-tag-element-name" + } + ] + } + ] + }, + "xhp-tag-element-name": { + "patterns": [ + { + "comment": "Tags that end > are trapped in #xhp-tag-termination", + "begin": "\\s*(<)([_\\p{L}](?:[:\\p{L}\\p{Mn}\\p{Mc}\\p{Nd}\\p{Nl}\\p{Pc}-])*+)(?=[/>\\s])(?<![\\:])", + "end": "\\s*(?<=</)(\\2)(>)|(/>)|((?<=</)[\\S ]*?)>", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.xhp" + }, + "2": { + "name": "entity.name.tag.open.xhp" + } + }, + "endCaptures": { + "1": { + "name": "entity.name.tag.close.xhp" + }, + "2": { + "name": "punctuation.definition.tag.xhp" + }, + "3": { + "name": "punctuation.definition.tag.xhp" + }, + "4": { + "name": "invalid.illegal.termination.xhp" + } + }, + "patterns": [ + { + "include": "#xhp-tag-termination" + }, + { + "include": "#xhp-html-comments" + }, + { + "include": "#xhp-tag-attributes" + } + ] + } + ] + }, + "xhp-tag-termination": { + "patterns": [ + { + "comment": "uses non consuming search for </ in </tag>", + "begin": "(?<!--)(>)", + "end": "(</)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.tag.xhp" + }, + "1": { + "name": "XHPStartTagEnd" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.xhp" + }, + "1": { + "name": "XHPEndTagStart" + } + }, + "patterns": [ + { + "include": "#xhp-evaluated-code" + }, + { + "include": "#xhp-entities" + }, + { + "include": "#xhp-html-comments" + }, + { + "include": "#xhp-tag-element-name" + } + ] + } + ] + }, + "xhp-tag-attributes": { + "patterns": [ + { + "include": "#xhp-attribute-name" + }, + { + "include": "#xhp-assignment" + }, + { + "include": "#xhp-string-double-quoted" + }, + { + "include": "#xhp-string-single-quoted" + }, + { + "include": "#xhp-evaluated-code" + }, + { + "include": "#xhp-tag-element-name" + }, + { + "include": "#comments" + } + ] + }, + "xhp-attribute-name": { + "patterns": [ + { + "comment": "look for attribute name", + "match": "(?<!\\S)([_\\p{L}](?:[\\p{L}\\p{Mn}\\p{Mc}\\p{Nd}\\p{Nl}\\p{Pc}-](?<!\\.\\.))*+)(?<!\\.)(?=//|/\\*|=|\\s|>|/>)", + "captures": { + "0": { + "name": "entity.other.attribute-name.xhp" + } + } + } + ] + }, + "xhp-assignment": { + "patterns": [ + { + "comment": "look for attribute assignment", + "name": "keyword.operator.assignment.xhp", + "match": "=(?=\\s*(?:'|\"|{|/\\*|<|//|\\n))" + } + ] + }, + "xhp-string-double-quoted": { + "name": "string.quoted.double.php", + "begin": "\"", + "end": "\"(?<!\\\\\")", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.xhp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.xhp" + } + }, + "patterns": [ + { + "include": "#xhp-entities" + } + ] + }, + "xhp-string-single-quoted": { + "name": "string.quoted.single.php", + "begin": "'", + "end": "'(?<!\\\\')", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.xhp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.xhp" + } + }, + "patterns": [ + { + "include": "#xhp-entities" + } + ] + }, + "xhp-evaluated-code": { + "name": "meta.embedded.expression.php", + "begin": "{", + "end": "}", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.xhp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.xhp" + } + }, + "contentName": "source.php.xhp", + "patterns": [ + { + "include": "#language" + } + ] + }, + "xhp-entities": { + "patterns": [ + { + "comment": "Embeded HTML entities &blah", + "match": "(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)", + "captures": { + "0": { + "name": "constant.character.entity.xhp" + }, + "1": { + "name": "punctuation.definition.entity.xhp" + }, + "2": { + "name": "entity.name.tag.html.xhp" + }, + "3": { + "name": "punctuation.definition.entity.xhp" + } + } + }, + { + "comment": "Entity with & and invalid name", + "match": "&\\S*;", + "name": "invalid.illegal.bad-ampersand.xhp" + } + ] + }, + "xhp-html-comments": { + "begin": "<!--", + "captures": { + "0": { + "name": "punctuation.definition.comment.html" + } + }, + "end": "--\\s*>", + "name": "comment.block.html", + "patterns": [ + { + "match": "--(?!-*\\s*>)", + "name": "invalid.illegal.bad-comments-or-CDATA.html" + } + ] + } + } +} diff --git a/docs/shiki/languages/haml.tmLanguage.json b/docs/shiki/languages/haml.tmLanguage.json new file mode 100644 index 00000000..c1220ee1 --- /dev/null +++ b/docs/shiki/languages/haml.tmLanguage.json @@ -0,0 +1,596 @@ +{ + "fileTypes": ["haml", "html.haml"], + "foldingStartMarker": "^\\s*([-%#\\:\\.\\w\\=].*)\\s$", + "foldingStopMarker": "^\\s*$", + "keyEquivalent": "^~H", + "name": "haml", + "patterns": [ + { + "begin": "^(\\s*)==", + "contentName": "string.quoted.double.ruby", + "end": "$\\n*", + "patterns": [ + { + "include": "#interpolated_ruby" + } + ] + }, + { + "begin": "^(\\s*):ruby", + "end": "^(?!\\1\\s+|$\\n*)", + "name": "source.ruby.embedded.filter.haml", + "patterns": [ + { + "include": "source.ruby" + } + ] + }, + { + "captures": { + "1": { + "name": "punctuation.definition.prolog.haml" + } + }, + "match": "^(!!!)($|\\s.*)", + "name": "meta.prolog.haml" + }, + { + "begin": "^(\\s*):javascript", + "end": "^(?!\\1\\s+|$\\n*)", + "name": "js.haml", + "patterns": [ + { + "include": "source.js" + } + ] + }, + { + "begin": "^(\\s*)%script", + "end": "^(?!\\1\\s+|$\\n*)", + "name": "js.inline.haml", + "patterns": [ + { + "include": "source.js" + } + ] + }, + { + "begin": "^(\\s*):ruby$", + "end": "^(?!\\1\\s+|$\\n*)", + "name": "source.ruby.embedded.filter.haml", + "patterns": [ + { + "include": "source.ruby" + } + ] + }, + { + "captures": { + "1": { + "name": "punctuation.section.comment.haml" + } + }, + "match": "^(\\s*)(\\/\\[[^\\]].*?$\\n?)", + "name": "comment.line.slash.haml" + }, + { + "begin": "^(\\s*)(\\-\\#|\\/|\\-\\s*\\/\\*+)", + "beginCaptures": { + "2": { + "name": "punctuation.section.comment.haml" + } + }, + "end": "^(?!\\1\\s+|\\n)", + "name": "comment.block.haml", + "patterns": [ + { + "include": "text.haml" + } + ] + }, + { + "begin": "^\\s*(?:((%)([-\\w:]+))|(?=\\.|#))", + "end": "$|(?!\\.|#|\\{|\\(|\\[|&|=|-|~|!=|&=|/)", + "captures": { + "1": { + "name": "meta.tag.haml" + }, + "2": { + "name": "punctuation.definition.tag.haml" + }, + "3": { + "name": "entity.name.tag.haml" + } + }, + "patterns": [ + { + "begin": "==", + "contentName": "string.quoted.double.ruby", + "end": "$\\n?", + "patterns": [ + { + "include": "#interpolated_ruby" + } + ] + }, + { + "captures": { + "1": { + "name": "entity.other.attribute-name.class" + } + }, + "match": "(\\.[\\w\\-\\:]+)", + "name": "meta.selector.css" + }, + { + "captures": { + "1": { + "name": "entity.other.attribute-name.id" + } + }, + "match": "(#[\\w-]+)", + "name": "meta.selector.css" + }, + { + "begin": "(?<!\\#)\\{(?=.*(,|(do)|\\{|\\}|\\||(\\#.*)|\\R)\\s*)", + "end": "\\s*\\}(?!\\s*\\,)(?!\\s*\\|)(?!\\#\\{.*\\})", + "name": "meta.section.attributes.haml", + "patterns": [ + { + "include": "source.ruby" + }, + { + "include": "#continuation" + }, + { + "include": "#rubyline" + } + ] + }, + { + "begin": "\\(", + "end": "\\)", + "name": "meta.section.attributes.plain.haml", + "patterns": [ + { + "match": "([\\w-]+)", + "name": "constant.other.symbol.ruby" + }, + { + "match": "\\=", + "name": "punctuation" + }, + { + "include": "#variables" + }, + { + "begin": "\"", + "end": "\"", + "name": "string.quoted.double.ruby", + "patterns": [ + { + "match": "\\\\(x\\h{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)", + "name": "constant.character.escape.ruby" + }, + { + "include": "#interpolated_ruby" + } + ] + }, + { + "include": "#interpolated_ruby" + } + ] + }, + { + "begin": "\\[(?=.+(,|\\[|\\]|\\||(\\#.*))\\s*)", + "end": "\\s*\\](?!.*(?!\\#\\[)\\])", + "name": "meta.section.object.haml", + "patterns": [ + { + "include": "source.ruby" + }, + { + "include": "#continuation" + }, + { + "include": "#rubyline" + } + ] + }, + { + "include": "#interpolated_ruby_line" + }, + { + "include": "#rubyline" + }, + { + "match": "/", + "name": "punctuation.terminator.tag.haml" + } + ] + }, + { + "begin": "^(\\s*):(ruby|opal)$", + "end": "^(?!\\1\\s+|$\\n*)", + "name": "source.ruby.embedded.filter.haml", + "patterns": [ + { + "include": "source.ruby" + } + ] + }, + { + "begin": "^(\\s*):ruby$", + "end": "^(?!\\1\\s+|$\\n*)", + "name": "source.ruby.embedded.filter.haml", + "patterns": [ + { + "include": "source.ruby" + } + ] + }, + { + "begin": "^(\\s*):(style|sass)$", + "end": "^(?=\\1\\s+|$\\n*)", + "name": "source.sass.embedded.filter.haml", + "patterns": [ + { + "include": "source.sass" + } + ] + }, + { + "begin": "^(\\s*):coffee(script)?", + "end": "^(?!\\1\\s+|$\\n*)", + "name": "source.coffee.embedded.filter.haml", + "patterns": [ + { + "include": "source.coffee" + } + ] + }, + { + "begin": "^(\\s*):plain$", + "end": "^(?=\\1\\s+|$\\n*)", + "name": "text.plain.embedded.filter.haml", + "patterns": [ + { + "include": "text.plain" + } + ] + }, + { + "begin": "^(\\s*)(:ruby)", + "beginCaptures": { + "2": { + "name": "keyword.control.filter.haml" + } + }, + "end": "(?m:(?<=\\n)(?!\\1\\s+|$\\n*))", + "name": "source.ruby.embedded.filter.haml", + "patterns": [ + { + "include": "source.ruby" + } + ] + }, + { + "begin": "^(\\s*)(:sass)", + "beginCaptures": { + "2": { + "name": "keyword.control.filter.haml" + } + }, + "end": "^(?!\\1\\s+|$\\n*)", + "name": "source.embedded.filter.sass", + "patterns": [ + { + "include": "source.sass" + } + ] + }, + { + "begin": "^(\\s*):(styles|sass)$", + "end": "^(?=\\1\\s+|$\\n*)", + "name": "source.sass.embedded.filter.haml", + "patterns": [ + { + "include": "source.sass" + } + ] + }, + { + "begin": "^(\\s*):plain$", + "end": "^(?=\\1\\s+|$\\n*)", + "name": "text.plain.embedded.filter.haml", + "patterns": [ + { + "include": "text.plain" + } + ] + }, + { + "captures": { + "1": { + "name": "meta.escape.haml" + } + }, + "match": "^\\s*(\\.)" + }, + { + "begin": "^\\s*(?==|-|~|!=|&=)", + "end": "$", + "patterns": [ + { + "include": "#interpolated_ruby_line" + }, + { + "include": "#rubyline" + } + ] + }, + { + "begin": "^(\\s*)(:php)", + "end": "^(?!\\1\\s+|$\\n*)", + "name": "meta.embedded.php", + "captures": { + "2": { + "name": "entity.name.tag.haml" + } + }, + "patterns": [ + { + "include": "text.html.php#language" + } + ] + }, + { + "begin": "^(\\s*)(:markdown)", + "end": "^(?!\\1\\s+|$\\n*)", + "name": "meta.embedded.markdown", + "captures": { + "2": { + "name": "entity.name.tag.haml" + } + }, + "patterns": [ + { + "include": "text.html.markdown" + } + ] + }, + { + "begin": "^(\\s*)(:(css|styles?))$", + "end": "^(?!\\1\\s+|$\\n*)", + "name": "meta.embedded.css", + "captures": { + "2": { + "name": "entity.name.tag.haml" + } + }, + "patterns": [ + { + "include": "source.css" + } + ] + }, + { + "begin": "^(\\s*)(:sass)$", + "end": "^(?!\\1\\s+|$\\n*)", + "name": "meta.embedded.sass", + "captures": { + "2": { + "name": "entity.name.tag.haml" + } + }, + "patterns": [ + { + "include": "source.sass" + } + ] + }, + { + "begin": "^(\\s*)(:scss)$", + "end": "^(?!\\1\\s+|$\\n*)", + "name": "meta.embedded.scss", + "captures": { + "2": { + "name": "entity.name.tag.haml" + } + }, + "patterns": [ + { + "include": "source.scss" + } + ] + } + ], + "repository": { + "continuation": { + "captures": { + "1": { + "name": "punctuation.separator.continuation.haml" + } + }, + "match": "(\\|)\\s*\\n" + }, + "interpolated_ruby": { + "patterns": [ + { + "captures": { + "0": { + "name": "punctuation.section.embedded.ruby" + }, + "1": { + "name": "source.ruby.embedded.source.empty" + } + }, + "match": "#\\{(\\})", + "name": "source.ruby.embedded.source" + }, + { + "begin": "#\\{", + "captures": { + "0": { + "name": "punctuation.section.embedded.ruby" + } + }, + "end": "(\\})", + "name": "source.ruby.embedded.source", + "patterns": [ + { + "include": "#nest_curly_and_self" + }, + { + "include": "source.ruby" + } + ] + }, + { + "include": "#variables" + } + ] + }, + "interpolated_ruby_line": { + "begin": "!?==", + "contentName": "string.source.ruby.embedded.haml", + "end": "$", + "name": "meta.line.ruby.interpolated.haml", + "patterns": [ + { + "include": "#interpolated_ruby" + }, + { + "include": "source.ruby#escaped_char" + } + ] + }, + "nest_curly_and_self": { + "patterns": [ + { + "begin": "\\{", + "captures": { + "0": { + "name": "punctuation.section.scope.ruby" + } + }, + "end": "\\}", + "patterns": [ + { + "include": "#nest_curly_and_self" + }, + { + "include": "source.ruby" + } + ] + } + ] + }, + "variables": { + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.variable.ruby" + } + }, + "match": "(#@)[a-zA-Z_]\\w*", + "name": "variable.other.readwrite.instance.ruby" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.variable.ruby" + } + }, + "match": "(#@@)[a-zA-Z_]\\w*", + "name": "variable.other.readwrite.class.ruby" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.variable.ruby" + } + }, + "match": "(#\\$)[a-zA-Z_]\\w*", + "name": "variable.other.readwrite.global.ruby" + } + ] + }, + "rubyline": { + "begin": "(&|!)?(=|-|~)", + "contentName": "source.ruby.embedded.haml", + "end": "((do|\\{)( \\|[.*]+\\|)?)$|$|^(?!.*\\|\\s*)$\\n?", + "endCaptures": { + "1": { + "name": "source.ruby.embedded.html" + }, + "2": { + "name": "keyword.control.ruby.start-block" + } + }, + "name": "meta.line.ruby.haml", + "patterns": [ + { + "match": "\\s+((elseif|foreach|switch|declare|default|use))(?=\\s|\\()", + "captures": { + "1": { + "name": "keyword.control.php" + } + } + }, + { + "match": "\\s+(require_once|include_once)(?=\\s|\\()", + "captures": { + "1": { + "name": "keyword.control.import.include.php" + } + } + }, + { + "match": "\\s+(catch|try|throw|exception|finally|die)(?=\\s|\\(|\\n*)", + "name": "keyword.control.exception.php" + }, + { + "match": "\\s+(function\\s*)((?=\\())", + "captures": { + "1": { + "name": "storage.type.function.php" + } + } + }, + { + "match": "\\s+(use\\s*)((?=\\())", + "captures": { + "1": { + "name": "keyword.control.php" + } + } + }, + { + "match": "(\\||,|<|do|\\{)\\s*(\\#.*)?$\\n*", + "name": "source.ruby", + "patterns": [ + { + "include": "#rubyline" + } + ] + }, + { + "comment": "Hack to let ruby comments work in this context properly", + "match": "#.*$", + "name": "comment.line.number-sign.ruby" + }, + { + "include": "source.ruby" + }, + { + "include": "#continuation" + } + ] + } + }, + "scopeName": "text.haml", + "uuid": "3D727049-DD05-45DF-92A5-D50EA36FD035" +} diff --git a/docs/shiki/languages/handlebars.tmLanguage.json b/docs/shiki/languages/handlebars.tmLanguage.json new file mode 100644 index 00000000..6cf744ed --- /dev/null +++ b/docs/shiki/languages/handlebars.tmLanguage.json @@ -0,0 +1,852 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/daaain/Handlebars/blob/master/grammars/Handlebars.json", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/daaain/Handlebars/commit/85a153a6f759df4e8da7533e1b3651f007867c51", + "name": "handlebars", + "scopeName": "text.html.handlebars", + "patterns": [ + { + "include": "#yfm" + }, + { + "include": "#extends" + }, + { + "include": "#block_comments" + }, + { + "include": "#comments" + }, + { + "include": "#block_helper" + }, + { + "include": "#end_block" + }, + { + "include": "#else_token" + }, + { + "include": "#partial_and_var" + }, + { + "include": "#inline_script" + }, + { + "include": "#html_tags" + }, + { + "include": "text.html.basic" + } + ], + "repository": { + "html_tags": { + "patterns": [ + { + "begin": "(<)([a-zA-Z0-9:-]+)(?=[^>]*></\\2>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.html" + }, + "2": { + "name": "entity.name.tag.html" + } + }, + "end": "(>(<)/)(\\2)(>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.html" + }, + "2": { + "name": "meta.scope.between-tag-pair.html" + }, + "3": { + "name": "entity.name.tag.html" + }, + "4": { + "name": "punctuation.definition.tag.html" + } + }, + "name": "meta.tag.any.html", + "patterns": [ + { + "include": "#tag-stuff" + } + ] + }, + { + "begin": "(<\\?)(xml)", + "captures": { + "1": { + "name": "punctuation.definition.tag.html" + }, + "2": { + "name": "entity.name.tag.xml.html" + } + }, + "end": "(\\?>)", + "name": "meta.tag.preprocessor.xml.html", + "patterns": [ + { + "include": "#tag_generic_attribute" + }, + { + "include": "#string" + } + ] + }, + { + "begin": "<!--", + "captures": { + "0": { + "name": "punctuation.definition.comment.html" + } + }, + "end": "--\\s*>", + "name": "comment.block.html", + "patterns": [ + { + "match": "--", + "name": "invalid.illegal.bad-comments-or-CDATA.html" + } + ] + }, + { + "begin": "<!", + "captures": { + "0": { + "name": "punctuation.definition.tag.html" + } + }, + "end": ">", + "name": "meta.tag.sgml.html", + "patterns": [ + { + "begin": "(DOCTYPE|doctype)", + "captures": { + "1": { + "name": "entity.name.tag.doctype.html" + } + }, + "end": "(?=>)", + "name": "meta.tag.sgml.doctype.html", + "patterns": [ + { + "match": "\"[^\">]*\"", + "name": "string.quoted.double.doctype.identifiers-and-DTDs.html" + } + ] + }, + { + "begin": "\\[CDATA\\[", + "end": "]](?=>)", + "name": "constant.other.inline-data.html" + }, + { + "match": "(\\s*)(?!--|>)\\S(\\s*)", + "name": "invalid.illegal.bad-comments-or-CDATA.html" + } + ] + }, + { + "begin": "(?:^\\s+)?(<)((?i:style))\\b(?![^>]*/>)", + "captures": { + "1": { + "name": "punctuation.definition.tag.html" + }, + "2": { + "name": "entity.name.tag.style.html" + }, + "3": { + "name": "punctuation.definition.tag.html" + } + }, + "end": "(</)((?i:style))(>)(?:\\s*\\n)?", + "name": "source.css.embedded.html", + "patterns": [ + { + "include": "#tag-stuff" + }, + { + "begin": "(>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.html" + } + }, + "end": "(?=</(?i:style))", + "patterns": [ + { + "include": "source.css" + } + ] + } + ] + }, + { + "begin": "(?:^\\s+)?(<)((?i:script))\\b(?![^>]*/>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.html" + }, + "2": { + "name": "entity.name.tag.script.html" + } + }, + "end": "(?<=</(script|SCRIPT))(>)(?:\\s*\\n)?", + "endCaptures": { + "2": { + "name": "punctuation.definition.tag.html" + } + }, + "name": "source.js.embedded.html", + "patterns": [ + { + "include": "#tag-stuff" + }, + { + "begin": "(?<!</(?:script|SCRIPT))(>)", + "captures": { + "1": { + "name": "punctuation.definition.tag.html" + }, + "2": { + "name": "entity.name.tag.script.html" + } + }, + "end": "(</)((?i:script))", + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.comment.js" + } + }, + "match": "(//).*?((?=</script)|$\\n?)", + "name": "comment.line.double-slash.js" + }, + { + "begin": "/\\*", + "captures": { + "0": { + "name": "punctuation.definition.comment.js" + } + }, + "end": "\\*/|(?=</script)", + "name": "comment.block.js" + }, + { + "include": "source.js" + } + ] + } + ] + }, + { + "begin": "(</?)((?i:body|head|html)\\b)", + "captures": { + "1": { + "name": "punctuation.definition.tag.html" + }, + "2": { + "name": "entity.name.tag.structure.any.html" + } + }, + "end": "(>)", + "name": "meta.tag.structure.any.html", + "patterns": [ + { + "include": "#tag-stuff" + } + ] + }, + { + "begin": "(</?)((?i:address|blockquote|dd|div|header|section|footer|aside|nav|dl|dt|fieldset|form|frame|frameset|h1|h2|h3|h4|h5|h6|iframe|noframes|object|ol|p|ul|applet|center|dir|hr|menu|pre)\\b)", + "captures": { + "1": { + "name": "punctuation.definition.tag.html" + }, + "2": { + "name": "entity.name.tag.block.any.html" + } + }, + "end": "(>)", + "name": "meta.tag.block.any.html", + "patterns": [ + { + "include": "#tag-stuff" + } + ] + }, + { + "begin": "(</?)((?i:a|abbr|acronym|area|b|base|basefont|bdo|big|br|button|caption|cite|code|col|colgroup|del|dfn|em|font|head|html|i|img|input|ins|isindex|kbd|label|legend|li|link|map|meta|noscript|optgroup|option|param|q|s|samp|script|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|title|tr|tt|u|var)\\b)", + "captures": { + "1": { + "name": "punctuation.definition.tag.html" + }, + "2": { + "name": "entity.name.tag.inline.any.html" + } + }, + "end": "((?: ?/)?>)", + "name": "meta.tag.inline.any.html", + "patterns": [ + { + "include": "#tag-stuff" + } + ] + }, + { + "begin": "(</?)([a-zA-Z0-9:-]+)", + "captures": { + "1": { + "name": "punctuation.definition.tag.html" + }, + "2": { + "name": "entity.name.tag.other.html" + } + }, + "end": "(>)", + "name": "meta.tag.other.html", + "patterns": [ + { + "include": "#tag-stuff" + } + ] + }, + { + "begin": "(</?)([a-zA-Z0-9{}:-]+)", + "captures": { + "1": { + "name": "punctuation.definition.tag.html" + }, + "2": { + "name": "entity.name.tag.tokenised.html" + } + }, + "end": "(>)", + "name": "meta.tag.tokenised.html", + "patterns": [ + { + "include": "#tag-stuff" + } + ] + }, + { + "include": "#entities" + }, + { + "match": "<>", + "name": "invalid.illegal.incomplete.html" + }, + { + "match": "<", + "name": "invalid.illegal.bad-angle-bracket.html" + } + ] + }, + "entities": { + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.entity.html" + }, + "3": { + "name": "punctuation.definition.entity.html" + } + }, + "name": "constant.character.entity.html", + "match": "(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)" + }, + { + "name": "invalid.illegal.bad-ampersand.html", + "match": "&" + } + ] + }, + "end_block": { + "begin": "(\\{\\{)(~?/)([a-zA-Z0-9/_\\.-]+)\\s*", + "end": "(~?\\}\\})", + "name": "meta.function.block.end.handlebars", + "endCaptures": { + "1": { + "name": "support.constant.handlebars" + } + }, + "beginCaptures": { + "1": { + "name": "support.constant.handlebars" + }, + "2": { + "name": "support.constant.handlebars keyword.control" + }, + "3": { + "name": "support.constant.handlebars keyword.control" + } + }, + "patterns": [] + }, + "yfm": { + "patterns": [ + { + "patterns": [ + { + "include": "source.yaml" + } + ], + "begin": "(?<!\\s)---\\n$", + "end": "^---\\s", + "name": "markup.raw.yaml.front-matter" + } + ] + }, + "comments": { + "patterns": [ + { + "patterns": [ + { + "name": "keyword.annotation.handlebars", + "match": "@\\w*" + }, + { + "include": "#comments" + } + ], + "begin": "\\{\\{!", + "end": "\\}\\}", + "name": "comment.block.handlebars" + }, + { + "captures": { + "0": { + "name": "punctuation.definition.comment.html" + } + }, + "begin": "<!--", + "end": "-{2,3}\\s*>", + "name": "comment.block.html", + "patterns": [ + { + "name": "invalid.illegal.bad-comments-or-CDATA.html", + "match": "--" + } + ] + } + ] + }, + "block_comments": { + "patterns": [ + { + "patterns": [ + { + "name": "keyword.annotation.handlebars", + "match": "@\\w*" + }, + { + "include": "#comments" + } + ], + "begin": "\\{\\{!--", + "end": "--\\}\\}", + "name": "comment.block.handlebars" + }, + { + "captures": { + "0": { + "name": "punctuation.definition.comment.html" + } + }, + "begin": "<!--", + "end": "-{2,3}\\s*>", + "name": "comment.block.html", + "patterns": [ + { + "name": "invalid.illegal.bad-comments-or-CDATA.html", + "match": "--" + } + ] + } + ] + }, + "block_helper": { + "begin": "(\\{\\{)(~?\\#)([-a-zA-Z0-9_\\./>]+)\\s?(@?[-a-zA-Z0-9_\\./]+)*\\s?(@?[-a-zA-Z0-9_\\./]+)*\\s?(@?[-a-zA-Z0-9_\\./]+)*", + "end": "(~?\\}\\})", + "name": "meta.function.block.start.handlebars", + "endCaptures": { + "1": { + "name": "support.constant.handlebars" + } + }, + "beginCaptures": { + "1": { + "name": "support.constant.handlebars" + }, + "2": { + "name": "support.constant.handlebars keyword.control" + }, + "3": { + "name": "support.constant.handlebars keyword.control" + }, + "4": { + "name": "variable.parameter.handlebars" + }, + "5": { + "name": "support.constant.handlebars" + }, + "6": { + "name": "variable.parameter.handlebars" + }, + "7": { + "name": "support.constant.handlebars" + } + }, + "patterns": [ + { + "include": "#string" + }, + { + "include": "#handlebars_attribute" + } + ] + }, + "string-single-quoted": { + "begin": "'", + "end": "'", + "name": "string.quoted.single.handlebars", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.html" + } + }, + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.html" + } + }, + "patterns": [ + { + "include": "#escaped-single-quote" + }, + { + "include": "#block_comments" + }, + { + "include": "#comments" + }, + { + "include": "#block_helper" + }, + { + "include": "#else_token" + }, + { + "include": "#end_block" + }, + { + "include": "#partial_and_var" + } + ] + }, + "string": { + "patterns": [ + { + "include": "#string-single-quoted" + }, + { + "include": "#string-double-quoted" + } + ] + }, + "escaped-single-quote": { + "name": "constant.character.escape.js", + "match": "\\\\'" + }, + "escaped-double-quote": { + "name": "constant.character.escape.js", + "match": "\\\\\"" + }, + "partial_and_var": { + "begin": "(\\{\\{~?\\{*(>|!<)*)\\s*(@?[-a-zA-Z0-9$_\\./]+)*", + "end": "(~?\\}\\}\\}*)", + "name": "meta.function.inline.other.handlebars", + "beginCaptures": { + "1": { + "name": "support.constant.handlebars" + }, + "3": { + "name": "variable.parameter.handlebars" + } + }, + "endCaptures": { + "1": { + "name": "support.constant.handlebars" + } + }, + "patterns": [ + { + "include": "#string" + }, + { + "include": "#handlebars_attribute" + } + ] + }, + "handlebars_attribute_name": { + "begin": "\\b([-a-zA-Z0-9_\\.]+)\\b=", + "captures": { + "1": { + "name": "variable.parameter.handlebars" + } + }, + "end": "(?='|\"|)", + "name": "entity.other.attribute-name.handlebars" + }, + "handlebars_attribute_value": { + "begin": "([-a-zA-Z0-9_\\./]+)\\b", + "captures": { + "1": { + "name": "variable.parameter.handlebars" + } + }, + "end": "('|\"|)", + "name": "entity.other.attribute-value.handlebars", + "patterns": [ + { + "include": "#string" + } + ] + }, + "handlebars_attribute": { + "patterns": [ + { + "include": "#handlebars_attribute_name" + }, + { + "include": "#handlebars_attribute_value" + } + ] + }, + "extends": { + "patterns": [ + { + "end": "(\\}\\})", + "begin": "(\\{\\{!<)\\s([-a-zA-Z0-9_\\./]+)", + "beginCaptures": { + "1": { + "name": "support.function.handlebars" + }, + "2": { + "name": "support.class.handlebars" + } + }, + "endCaptures": { + "1": { + "name": "support.function.handlebars" + } + }, + "name": "meta.preprocessor.handlebars" + } + ] + }, + "else_token": { + "begin": "(\\{\\{)(~?else)(@?\\s(if)\\s([-a-zA-Z0-9_\\.\\(\\s\\)/]+))?", + "end": "(~?\\}\\}\\}*)", + "name": "meta.function.inline.else.handlebars", + "beginCaptures": { + "1": { + "name": "support.constant.handlebars" + }, + "2": { + "name": "support.constant.handlebars keyword.control" + }, + "3": { + "name": "support.constant.handlebars" + }, + "4": { + "name": "variable.parameter.handlebars" + } + }, + "endCaptures": { + "1": { + "name": "support.constant.handlebars" + } + } + }, + "string-double-quoted": { + "begin": "\"", + "end": "\"", + "name": "string.quoted.double.handlebars", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.html" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.html" + } + }, + "patterns": [ + { + "include": "#escaped-double-quote" + }, + { + "include": "#block_comments" + }, + { + "include": "#comments" + }, + { + "include": "#block_helper" + }, + { + "include": "#else_token" + }, + { + "include": "#end_block" + }, + { + "include": "#partial_and_var" + } + ] + }, + "inline_script": { + "begin": "(?:^\\s+)?(<)((?i:script))\\b(?:.*(type)=([\"'](?:text/x-handlebars-template|text/x-handlebars|text/template|x-tmpl-handlebars)[\"']))(?![^>]*/>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.html" + }, + "2": { + "name": "entity.name.tag.script.html" + }, + "3": { + "name": "entity.other.attribute-name.html" + }, + "4": { + "name": "string.quoted.double.html" + } + }, + "end": "(?<=</(script|SCRIPT))(>)(?:\\s*\\n)?", + "endCaptures": { + "2": { + "name": "punctuation.definition.tag.html" + } + }, + "name": "source.handlebars.embedded.html", + "patterns": [ + { + "include": "#tag-stuff" + }, + { + "begin": "(?<!</(?:script|SCRIPT))(>)", + "captures": { + "1": { + "name": "punctuation.definition.tag.html" + }, + "2": { + "name": "entity.name.tag.script.html" + } + }, + "end": "(</)((?i:script))", + "patterns": [ + { + "include": "#block_comments" + }, + { + "include": "#comments" + }, + { + "include": "#block_helper" + }, + { + "include": "#end_block" + }, + { + "include": "#else_token" + }, + { + "include": "#partial_and_var" + }, + { + "include": "#html_tags" + }, + { + "include": "text.html.basic" + } + ] + } + ] + }, + "tag_generic_attribute": { + "begin": "\\b([a-zA-Z0-9_-]+)\\b\\s*(=)", + "captures": { + "1": { + "name": "entity.other.attribute-name.generic.html" + }, + "2": { + "name": "punctuation.separator.key-value.html" + } + }, + "patterns": [ + { + "include": "#string" + } + ], + "name": "entity.other.attribute-name.html", + "end": "(?<='|\"|)" + }, + "tag_id_attribute": { + "begin": "\\b(id)\\b\\s*(=)", + "captures": { + "1": { + "name": "entity.other.attribute-name.id.html" + }, + "2": { + "name": "punctuation.separator.key-value.html" + } + }, + "end": "(?<='|\"|)", + "name": "meta.attribute-with-value.id.html", + "patterns": [ + { + "include": "#string" + } + ] + }, + "tag-stuff": { + "patterns": [ + { + "include": "#tag_id_attribute" + }, + { + "include": "#tag_generic_attribute" + }, + { + "include": "#string" + }, + { + "include": "#block_comments" + }, + { + "include": "#comments" + }, + { + "include": "#block_helper" + }, + { + "include": "#end_block" + }, + { + "include": "#else_token" + }, + { + "include": "#partial_and_var" + } + ] + } + } +} diff --git a/docs/shiki/languages/haskell.tmLanguage.json b/docs/shiki/languages/haskell.tmLanguage.json new file mode 100644 index 00000000..8342ee2a --- /dev/null +++ b/docs/shiki/languages/haskell.tmLanguage.json @@ -0,0 +1,2428 @@ +{ + "fileTypes": ["hs", "hs-boot", "hsig"], + "keyEquivalent": "^~H", + "name": "haskell", + "patterns": [ + { + "include": "#liquid_haskell" + }, + { + "include": "#comment_like" + }, + { + "include": "#numeric_literals" + }, + { + "include": "#string_literal" + }, + { + "include": "#char_literal" + }, + { + "match": "(?<!@|#)-\\}", + "name": "invalid" + }, + { + "match": "(\\()\\s*(\\))", + "name": "constant.language.unit.haskell", + "captures": { + "1": { + "name": "punctuation.paren.haskell" + }, + "2": { + "name": "punctuation.paren.haskell" + } + } + }, + { + "match": "(\\()(#)\\s*(#)(\\))", + "name": "constant.language.unit.unboxed.haskell", + "captures": { + "1": { + "name": "punctuation.paren.haskell" + }, + "2": { + "name": "keyword.operator.hash.haskell" + }, + "3": { + "name": "keyword.operator.hash.haskell" + }, + "4": { + "name": "punctuation.paren.haskell" + } + } + }, + { + "match": "(\\()\\s*,[\\s,]*(\\))", + "name": "support.constant.tuple.haskell", + "captures": { + "1": { + "name": "punctuation.paren.haskell" + }, + "2": { + "name": "punctuation.paren.haskell" + } + } + }, + { + "match": "(\\()(#)\\s*,[\\s,]*(#)(\\))", + "name": "support.constant.tuple.unboxed.haskell", + "captures": { + "1": { + "name": "punctuation.paren.haskell" + }, + "2": { + "name": "keyword.operator.hash.haskell" + }, + "3": { + "name": "keyword.operator.hash.haskell" + }, + "4": { + "name": "punctuation.paren.haskell" + } + } + }, + { + "match": "(\\[)\\s*(\\])", + "name": "constant.language.empty-list.haskell", + "captures": { + "1": { + "name": "punctuation.bracket.haskell" + }, + "2": { + "name": "punctuation.bracket.haskell" + } + } + }, + { + "begin": "(\\b(?<!')(module)|^(signature))(\\b(?!'))", + "beginCaptures": { + "2": { + "name": "keyword.other.module.haskell" + }, + "3": { + "name": "keyword.other.signature.haskell" + } + }, + "end": "(?=\\b(?<!')where\\b(?!'))", + "name": "meta.declaration.module.haskell", + "patterns": [ + { + "include": "#comment_like" + }, + { + "include": "#module_name" + }, + { + "include": "#module_exports" + }, + { + "match": "[a-z]+", + "name": "invalid" + } + ] + }, + { + "include": "#ffi" + }, + { + "begin": "^(\\s*)(class)(\\b(?!'))", + "beginCaptures": { + "2": { + "name": "keyword.other.class.haskell" + } + }, + "end": "(?x) # Detect end of class declaration:\n # 'where' keyword\n (?=(?<!')\\bwhere\\b(?!')) \n # Decreasing indentation\n |(?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )", + "name": "meta.declaration.class.haskell", + "patterns": [ + { + "include": "#comment_like" + }, + { + "include": "#where" + }, + { + "include": "#type_signature" + } + ] + }, + { + "begin": "(?x)\n ^(\\s*)(data|newtype)(?:\\s+(instance))?\\s+\n # Keep consuming characters until:\n ((?:(?!\n # the equals symbol or the start of a single-line comment, or\n (?: \n (?<![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]) # non-symbol\n (?:=|--+)\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]) # non-symbol\n )\n # the \"where\" or \"deriving\" keywords, or\n | (?:\\b(?<!')(?:where|deriving)\\b(?!'))\n # the start of a block comment.\n | {-\n #\n ).)*)\n (?=\\b(?<!'')where\\b(?!''))", + "beginCaptures": { + "2": { + "name": "keyword.other.$2.haskell" + }, + "3": { + "name": "keyword.other.instance.haskell" + }, + "4": { + "patterns": [ + { + "include": "#type_signature" + } + ] + } + }, + "name": "meta.declaration.$2.generalized.haskell", + "end": "(?x) # Detect end of data declaration:\n # Deriving clause\n (?=(?<!')\\bderiving\\b(?!')) \n # Decreasing indentation\n |(?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )\n", + "patterns": [ + { + "include": "#comment_like" + }, + { + "begin": "(?x)\n (?<!')\\b(where)\n \\s*(\\{)(?!-)", + "end": "(\\})", + "beginCaptures": { + "1": { + "name": "keyword.other.where.haskell" + }, + "2": { + "name": "punctuation.brace.haskell" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.brace.haskell" + } + }, + "patterns": [ + { + "include": "#comment_like" + }, + { + "include": "#gadt_constructor" + }, + { + "match": ";", + "name": "punctuation.semicolon.haskell" + } + ] + }, + { + "match": "\\b(?<!')(where)\\b(?!')", + "name": "keyword.other.where.haskell" + }, + { + "include": "#deriving" + }, + { + "include": "#gadt_constructor" + } + ] + }, + { + "include": "#role_annotation" + }, + { + "name": "meta.declaration.pattern.type.haskell", + "begin": "^(\\s*)(pattern)\\s+(.*?)\\s+(::|∷)(?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']])", + "beginCaptures": { + "2": { + "name": "keyword.other.pattern.haskell" + }, + "3": { + "patterns": [ + { + "include": "#comma" + }, + { + "include": "#data_constructor" + } + ] + }, + "4": { + "name": "keyword.operator.double-colon.haskell" + } + }, + "end": "(?x) # Detect end of pattern type definition by decreasing indentation:\n (?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )\n", + "patterns": [ + { + "include": "#type_signature" + } + ] + }, + { + "name": "meta.declaration.pattern.haskell", + "begin": "^\\s*(pattern)\\b(?!')", + "captures": { + "1": { + "name": "keyword.other.pattern.haskell" + } + }, + "end": "(?x) # Detect end of pattern type definition by decreasing indentation:\n (?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )\n", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "begin": "(?x)\n # Data declaration\n ^(\\s*)(data|newtype)(?:\\s+(family|instance))?\\s+\n # Keep consuming characters until:\n (((?!\n # the equals symbol or the start of a single-line comment, or\n (?: \n (?<![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]) # non-symbol\n (?:=|--+)\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]) # non-symbol\n )\n # the \"where\" or \"deriving\" keywords, or\n | (?:\\b(?<!')(?:where|deriving)\\b(?!'))\n # the start of a block comment.\n | {-\n #\n ).)*)", + "beginCaptures": { + "2": { + "name": "keyword.other.$2.haskell" + }, + "3": { + "name": "keyword.other.$3.haskell" + }, + "4": { + "patterns": [ + { + "include": "#type_signature" + } + ] + } + }, + "name": "meta.declaration.$2.algebraic.haskell", + "end": "(?x) # Detect end of data declaration: \n # Decreasing indentation\n (?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )", + "patterns": [ + { + "include": "#comment_like" + }, + { + "include": "#deriving" + }, + { + "include": "#forall" + }, + { + "include": "#adt_constructor" + }, + { + "include": "#context" + }, + { + "include": "#record_decl" + }, + { + "include": "#type_signature" + } + ] + }, + { + "name": "meta.declaration.type.family.haskell", + "begin": "(?x)\n # Type family\n ^(\\s*)(type)\\s+(family)\\b(?!')\n # Keep consuming characters until:\n (((?!\n # the equals symbol or the start of a single-line comment, or\n (?: \n (?<![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]) # non-symbol\n (?:=|--+)\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]) # non-symbol\n )\n # the \"where\" keyword, or\n | \\b(?<!')where\\b(?!')\n # the start of a block comment.\n | {-\n #\n ).)*)", + "beginCaptures": { + "2": { + "name": "keyword.other.type.haskell" + }, + "3": { + "name": "keyword.other.family.haskell" + }, + "4": { + "patterns": [ + { + "include": "#comment_like" + }, + { + "include": "#where" + }, + { + "include": "#type_signature" + } + ] + } + }, + "end": "(?x) # Detect end of type family by decreasing indentation:\n (?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )\n", + "patterns": [ + { + "include": "#comment_like" + }, + { + "include": "#where" + }, + { + "include": "#type_signature" + } + ] + }, + { + "name": "meta.declaration.type.haskell", + "begin": "(?x)\n # Type declaration\n ^(\\s*)(type)(?:\\s+(instance))?\\s+\n # Keep consuming characters until:\n (((?!\n # the equals symbol, the start of a single-line comment, or a type signature\n (?: \n (?<![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]) # non-symbol\n (?:=|--+|::|∷)\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]) # non-symbol\n )\n # the start of a block comment.\n | {-\n #\n ).)*)", + "beginCaptures": { + "2": { + "name": "keyword.other.type.haskell" + }, + "3": { + "name": "keyword.other.instance.haskell" + }, + "4": { + "patterns": [ + { + "include": "#type_signature" + } + ] + } + }, + "end": "(?x) # Detect end of type definition by decreasing indentation:\n (?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )\n", + "patterns": [ + { + "include": "#type_signature" + } + ] + }, + { + "begin": "^(\\s*)(instance)(\\b(?!'))", + "beginCaptures": { + "2": { + "name": "keyword.other.instance.haskell" + } + }, + "end": "(?x) # Detect end of instance declaration:\n # 'where' keyword\n (?=\\b(?<!')(where)\\b(?!'))\n # Decreasing indentation\n |(?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )\n", + "name": "meta.declaration.instance.haskell", + "patterns": [ + { + "include": "#comment_like" + }, + { + "include": "#where" + }, + { + "include": "#type_signature" + } + ] + }, + { + "begin": "^(\\s*)(import)(\\b(?!'))", + "beginCaptures": { + "2": { + "name": "keyword.other.import.haskell" + } + }, + "end": "(?x) # Detect end of import\n # 'where' keyword\n (?=\\b(?<!')(where)\\b(?!'))\n # Decreasing indentation\n |(?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )\n", + "name": "meta.import.haskell", + "patterns": [ + { + "include": "#comment_like" + }, + { + "include": "#where" + }, + { + "match": "(qualified|as|hiding)", + "captures": { + "1": { + "name": "keyword.other.$1.haskell" + } + } + }, + { + "include": "#module_name" + }, + { + "include": "#module_exports" + } + ] + }, + { + "include": "#deriving" + }, + { + "include": "#layout_herald" + }, + { + "include": "#keyword" + }, + { + "match": "^\\s*(infix[lr]?)\\s+(.*)", + "captures": { + "1": { + "name": "keyword.other.$1.haskell" + }, + "2": { + "patterns": [ + { + "include": "#comment_like" + }, + { + "include": "#integer_literals" + }, + { + "include": "#infix_op" + } + ] + } + }, + "name": "meta.fixity-declaration.haskell" + }, + { + "include": "#overloaded_label" + }, + { + "include": "#type_application" + }, + { + "include": "#reserved_symbol" + }, + { + "include": "#fun_decl" + }, + { + "include": "#qualifier" + }, + { + "include": "#data_constructor" + }, + { + "include": "#start_type_signature" + }, + { + "include": "#prefix_op" + }, + { + "include": "#infix_op" + }, + { + "begin": "(\\()(#)\\s", + "end": "(#)(\\))", + "beginCaptures": { + "1": { + "name": "punctuation.paren.haskell" + }, + "2": { + "name": "keyword.operator.hash.haskell" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.hash.haskell" + }, + "2": { + "name": "punctuation.paren.haskell" + } + }, + "patterns": [ + { + "include": "#comma" + }, + { + "include": "$self" + } + ] + }, + { + "begin": "(\\()", + "end": "(\\))", + "beginCaptures": { + "1": { + "name": "punctuation.paren.haskell" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.paren.haskell" + } + }, + "patterns": [ + { + "include": "#comma" + }, + { + "include": "$self" + } + ] + }, + { + "include": "#quasi_quote" + }, + { + "begin": "(\\[)", + "end": "(\\])", + "beginCaptures": { + "1": { + "name": "punctuation.bracket.haskell" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.bracket.haskell" + } + }, + "patterns": [ + { + "include": "#comma" + }, + { + "include": "$self" + } + ] + }, + { + "include": "#record" + } + ], + "repository": { + "block_comment": { + "applyEndPatternLast": 1, + "begin": "\\{-", + "captures": { + "0": { + "name": "punctuation.definition.comment.haskell" + } + }, + "end": "-\\}", + "name": "comment.block.haskell", + "patterns": [ + { + "include": "#block_comment" + } + ] + }, + "comments": { + "patterns": [ + { + "begin": "^(\\s*)(--\\s[\\|\\$])", + "beginCaptures": { + "2": { + "name": "punctuation.whitespace.comment.leading.haskell" + } + }, + "end": "(?=^(?!\\1--+(?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']])))", + "name": "comment.block.documentation.haskell" + }, + { + "begin": "(^[ \\t]+)?(--\\s[\\^\\*])", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.haskell" + } + }, + "end": "\\n", + "name": "comment.line.documentation.haskell" + }, + { + "applyEndPatternLast": 1, + "begin": "\\{-\\s?[\\|\\$\\*\\^]", + "captures": { + "0": { + "name": "punctuation.definition.comment.haskell" + } + }, + "end": "-\\}", + "name": "comment.block.documentation.haskell", + "patterns": [ + { + "include": "#block_comment" + } + ] + }, + { + "begin": "(^[ \\t]+)?(?=--+(?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]))", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.haskell" + } + }, + "comment": "Operators may begin with '--' as long as they are not entirely composed of '-' characters. This means comments can't be immediately followed by an allowable operator character.", + "end": "(?!\\G)", + "patterns": [ + { + "begin": "--", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.haskell" + } + }, + "end": "\\n", + "name": "comment.line.double-dash.haskell" + } + ] + }, + { + "include": "#block_comment" + } + ] + }, + "comment_like": { + "patterns": [ + { + "include": "#cpp" + }, + { + "include": "#pragma" + }, + { + "include": "#comments" + } + ] + }, + "cpp": { + "captures": { + "1": { + "name": "punctuation.definition.preprocessor.c" + } + }, + "comment": "In addition to Haskell's \"native\" syntax, GHC permits the C preprocessor to be run on a source file.", + "match": "^(#).*$", + "name": "meta.preprocessor.c" + }, + "where": { + "patterns": [ + { + "begin": "(?x)\n (?<!')\\b(where)\n \\s*(\\{)(?!-)", + "end": "(\\})", + "beginCaptures": { + "1": { + "name": "keyword.other.where.haskell" + }, + "2": { + "name": "punctuation.brace.haskell" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.brace.haskell" + } + }, + "patterns": [ + { + "include": "$self" + }, + { + "match": ";", + "name": "punctuation.semicolon.haskell" + } + ] + }, + { + "match": "\\b(?<!')(where)\\b(?!')", + "name": "keyword.other.where.haskell" + } + ] + }, + "layout_herald": { + "begin": "(?x)\n (?<!')\\b(?:(where|let|m?do)|(of))\n \\s*(\\{)(?!-)", + "end": "(\\})", + "beginCaptures": { + "1": { + "name": "keyword.other.$1.haskell" + }, + "2": { + "name": "keyword.control.of.haskell" + }, + "3": { + "name": "punctuation.brace.haskell" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.brace.haskell" + } + }, + "patterns": [ + { + "include": "$self" + }, + { + "match": ";", + "name": "punctuation.semicolon.haskell" + } + ] + }, + "keyword": { + "match": "\\b(?<!')(?:(where|let|in|default)|(m?do|if|then|else|case|of|proc|rec))\\b(?!')", + "captures": { + "1": { + "name": "keyword.other.$1.haskell" + }, + "2": { + "name": "keyword.control.$2.haskell" + } + } + }, + "deriving": { + "patterns": [ + { + "begin": "^(\\s*)(deriving)\\s+(?:(via|stock|newtype|anyclass)\\s+)?", + "beginCaptures": { + "2": { + "name": "keyword.other.deriving.haskell" + }, + "3": { + "name": "keyword.other.deriving.strategy.$3.haskell" + } + }, + "end": "(?x) # Detect end of deriving statement\n # Decreasing indentation\n (?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )", + "patterns": [ + { + "include": "#comment_like" + }, + { + "match": "(?<!')\\b(instance)\\b(?!')", + "name": "keyword.other.instance.haskell" + }, + { + "match": "(?<!')\\b(via|stock|newtype|anyclass)\\b(?!')", + "captures": { + "1": { + "name": "keyword.other.deriving.strategy.$1.haskell" + } + } + }, + { + "include": "#type_signature" + } + ], + "name": "meta.deriving.haskell" + }, + { + "begin": "(deriving)(?:\\s+(stock|newtype|anyclass))?\\s*(\\()", + "beginCaptures": { + "1": { + "name": "keyword.other.deriving.haskell" + }, + "2": { + "name": "keyword.other.deriving.strategy.$2.haskell" + }, + "3": { + "name": "punctuation.paren.haskell" + } + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.paren.haskell" + } + }, + "name": "meta.deriving.haskell", + "patterns": [ + { + "include": "#type_signature" + } + ] + }, + { + "match": "(?x)\n (deriving)(?:\\s+(stock|newtype|anyclass))?\\s+\n ([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\n (\\s+(via)\\s+(.*)$)?\n", + "captures": { + "1": { + "name": "keyword.other.deriving.haskell" + }, + "2": { + "name": "keyword.other.deriving.strategy.$2.haskell" + }, + "3": { + "patterns": [ + { + "include": "#type_signature" + } + ] + }, + "5": { + "name": "keyword.other.deriving.strategy.via.haskell" + }, + "6": { + "patterns": [ + { + "include": "#type_signature" + } + ] + } + }, + "name": "meta.deriving.haskell" + }, + { + "match": "(?<!')\\b(via)\\b(?!')", + "name": "keyword.other.deriving.strategy.via.haskell" + } + ] + }, + "prefix_op": { + "patterns": [ + { + "comment": "An operator cannot be composed entirely of '-' characters; instead, it should be matched as a comment.\n", + "match": "(?x)\n (\\()\\s*(?!(?:--+|\\.\\.)\\))(\\#+|[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]+(?<!\\#))\\s*(\\))", + "captures": { + "1": { + "name": "punctuation.paren.haskell" + }, + "2": { + "name": "entity.name.function.infix.haskell" + }, + "3": { + "name": "punctuation.paren.haskell" + } + } + } + ] + }, + "infix_op": { + "patterns": [ + { + "match": "(?x)\n ((?:(?<!'')('')?[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'']*\\.)*)\n (\\#+|[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]+(?<!\\#))", + "comment": "In case this regex seems overly general, note that Haskell permits the definition of new operators which can be nearly any string of punctuation characters, such as $%^&*.\n", + "captures": { + "1": { + "name": "keyword.operator.promotion.haskell" + }, + "2": { + "name": "entity.name.namespace.haskell" + }, + "3": { + "name": "keyword.operator.infix.haskell" + } + } + }, + { + "match": "(`)((?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'']*\\.)*)([\\p{Ll}\\p{Lu}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'']*)(`)", + "captures": { + "1": { + "name": "punctuation.backtick.haskell" + }, + "2": { + "name": "entity.name.namespace.haskell" + }, + "3": { + "patterns": [ + { + "include": "#data_constructor" + } + ] + }, + "4": { + "name": "punctuation.backtick.haskell" + } + }, + "comment": "In case this regex seems unusual for an infix operator, note that Haskell\nallows any ordinary function application (elem 4 [1..10]) to be rewritten\nas an infix expression (4 `elem` [1..10]).\n", + "name": "keyword.operator.function.infix.haskell" + } + ] + }, + "module_exports": { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.paren.haskell" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.paren.haskell" + } + }, + "applyEndPatternLast": 1, + "name": "meta.declaration.exports.haskell", + "patterns": [ + { + "include": "#comment_like" + }, + { + "match": "\\b(?<!')(module)\\b(?!')", + "captures": { + "1": { + "name": "keyword.other.module.haskell" + } + } + }, + { + "include": "#comma" + }, + { + "include": "#export_constructs" + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.paren.haskell" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.paren.haskell" + } + }, + "patterns": [ + { + "include": "#comment_like" + }, + { + "include": "#record_wildcard" + }, + { + "include": "#export_constructs" + }, + { + "include": "#comma" + } + ] + } + ] + }, + "export_constructs": { + "patterns": [ + { + "include": "#comment_like" + }, + { + "begin": "\\b(?<!')(pattern)\\b(?!')", + "beginCaptures": { + "1": { + "name": "keyword.other.pattern.haskell" + } + }, + "end": "(?x)\n # Data constructor\n ([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\n # Prefix form of symbolic constructor\n | (\\()\\s*(:[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]+)\\s*(\\))", + "endCaptures": { + "1": { + "name": "constant.other.haskell" + }, + "2": { + "name": "punctuation.paren.haskell" + }, + "3": { + "name": "constant.other.operator.haskell" + }, + "4": { + "name": "punctuation.paren.haskell" + } + }, + "patterns": [ + { + "include": "#comment_like" + } + ] + }, + { + "begin": "\\b(?<!')(type)\\b(?!')", + "beginCaptures": { + "1": { + "name": "keyword.other.type.haskell" + } + }, + "end": "(?x)\n # Type name\n ([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\n # Prefix form of type operator\n | (\\()\\s*([\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]+)\\s*(\\))", + "endCaptures": { + "1": { + "name": "storage.type.haskell" + }, + "2": { + "name": "punctuation.paren.haskell" + }, + "3": { + "name": "storage.type.operator.haskell" + }, + "4": { + "name": "punctuation.paren.haskell" + } + }, + "patterns": [ + { + "include": "#comment_like" + } + ] + }, + { + "match": "(?<!')\\b[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*", + "name": "entity.name.function.haskell" + }, + { + "match": "(?<!')\\b[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*", + "name": "storage.type.haskell" + }, + { + "include": "#record_wildcard" + }, + { + "include": "#reserved_symbol" + }, + { + "include": "#prefix_op" + } + ] + }, + "comma": { + "match": ",", + "name": "punctuation.separator.comma.haskell" + }, + "module_name": { + "match": "(?<conid>[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(\\.\\g<conid>)?)", + "name": "entity.name.namespace.haskell" + }, + "pragma": { + "begin": "\\{-#", + "end": "#-\\}", + "name": "meta.preprocessor.haskell", + "patterns": [ + { + "begin": "(?xi) \\b(?<!')(LANGUAGE)\\b(?!')", + "end": "(?=#-\\})", + "beginCaptures": { + "1": { + "name": "keyword.other.preprocessor.pragma.haskell" + } + }, + "patterns": [ + { + "match": "(?x)\n (?:No)?\n (?:AutoDeriveTypeable|DatatypeContexts|DoRec|IncoherentInstances|MonadFailDesugaring|MonoPatBinds|NullaryTypeClasses|OverlappingInstances|PatternSignatures|RecordPuns|RelaxedPolyRec)", + "name": "invalid.deprecated" + }, + { + "match": "(?x)\n (\n (?:No)?\n (?:AllowAmbiguousTypes|AlternativeLayoutRule|AlternativeLayoutRuleTransitional|Arrows|BangPatterns|BinaryLiterals|CApiFFI|CPP|CUSKs|ConstrainedClassMethods|ConstraintKinds|DataKinds|DefaultSignatures|DeriveAnyClass|DeriveDataTypeable|DeriveFoldable|DeriveFunctor|DeriveGeneric|DeriveLift|DeriveTraversable|DerivingStrategies|DerivingVia|DisambiguateRecordFields|DoAndIfThenElse|BlockArguments|DuplicateRecordFields|EmptyCase|EmptyDataDecls|EmptyDataDeriving|ExistentialQuantification|ExplicitForAll|ExplicitNamespaces|ExtendedDefaultRules|FlexibleContexts|FlexibleInstances|ForeignFunctionInterface|FunctionalDependencies|GADTSyntax|GADTs|GHCForeignImportPrim|Generali(?:s|z)edNewtypeDeriving|ImplicitParams|ImplicitPrelude|ImportQualifiedPost|ImpredicativeTypes|TypeFamilyDependencies|InstanceSigs|ApplicativeDo|InterruptibleFFI|JavaScriptFFI|KindSignatures|LambdaCase|LiberalTypeSynonyms|MagicHash|MonadComprehensions|MonoLocalBinds|MonomorphismRestriction|MultiParamTypeClasses|MultiWayIf|NumericUnderscores|NPlusKPatterns|NamedFieldPuns|NamedWildCards|NegativeLiterals|HexFloatLiterals|NondecreasingIndentation|NumDecimals|OverloadedLabels|OverloadedLists|OverloadedStrings|PackageImports|ParallelArrays|ParallelListComp|PartialTypeSignatures|PatternGuards|PatternSynonyms|PolyKinds|PolymorphicComponents|QuantifiedConstraints|PostfixOperators|QuasiQuotes|Rank2Types|RankNTypes|RebindableSyntax|RecordWildCards|RecursiveDo|RelaxedLayout|RoleAnnotations|ScopedTypeVariables|StandaloneDeriving|StarIsType|StaticPointers|Strict|StrictData|TemplateHaskell|TemplateHaskellQuotes|StandaloneKindSignatures|TraditionalRecordSyntax|TransformListComp|TupleSections|TypeApplications|TypeInType|TypeFamilies|TypeOperators|TypeSynonymInstances|UnboxedTuples|UnboxedSums|UndecidableInstances|UndecidableSuperClasses|UnicodeSyntax|UnliftedFFITypes|UnliftedNewtypes|ViewPatterns)\n )", + "captures": { + "1": { + "name": "keyword.other.preprocessor.extension.haskell" + } + } + }, + { + "include": "#comma" + } + ] + }, + { + "begin": "(?xi)\n \\b(?<!')(SPECIALI(?:S|Z)E)\n (?:\n \\s*( \\[ [^\\[\\]]* \\])?\\s*\n |\\s+\n )\n (instance)\\b(?!')", + "end": "(?=#-\\})", + "beginCaptures": { + "1": { + "name": "keyword.other.preprocessor.pragma.haskell" + }, + "2": { + "patterns": [ + { + "include": "#inline_phase" + } + ] + }, + "3": { + "name": "keyword.other.instance.haskell" + } + }, + "patterns": [ + { + "include": "#type_signature" + } + ] + }, + { + "begin": "(?xi)\n \\b(?<!')(SPECIALI(?:S|Z)E)\\b(?!')\n (?:\\s+(INLINE)\\b(?!'))?\n (?:\\s*(\\[ [^\\[\\]]* \\])?)\n \\s*", + "end": "(?=#-\\})", + "beginCaptures": { + "1": { + "name": "keyword.other.preprocessor.pragma.haskell" + }, + "2": { + "name": "keyword.other.preprocessor.pragma.haskell" + }, + "3": { + "patterns": [ + { + "include": "#inline_phase" + } + ] + } + }, + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "match": "(?xi) \\b(?<!')\n (LANGUAGE|OPTIONS_GHC|INCLUDE\n |MINIMAL|UNPACK|OVERLAPS|INCOHERENT\n |NOUNPACK|SOURCE|OVERLAPPING|OVERLAPPABLE|INLINE\n |NOINLINE|INLINE?ABLE|CONLIKE|LINE|COLUMN|RULES\n |COMPLETE)\\b(?!')", + "name": "keyword.other.preprocessor.haskell" + }, + { + "begin": "(?i)\\b(DEPRECATED|WARNING)\\b", + "beginCaptures": { + "1": { + "name": "keyword.other.preprocessor.pragma.haskell" + } + }, + "end": "(?=#-\\})", + "patterns": [ + { + "include": "#string_literal" + } + ] + } + ] + }, + "liquid_haskell": { + "name": "block.liquidhaskell.haskell", + "begin": "\\{-@", + "end": "@-\\}", + "patterns": [ + { + "include": "$self" + } + ] + }, + "context": { + "match": "(?x)\n (.*)\n (?<![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']])\n (=>|⇒)\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']])\n", + "captures": { + "1": { + "patterns": [ + { + "include": "#comment_like" + }, + { + "include": "#type_signature" + } + ] + }, + "2": { + "name": "keyword.operator.big-arrow.haskell" + } + } + }, + "data_constructor": { + "match": "\\b(?<!')[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?![\\.'\\w])", + "name": "constant.other.haskell" + }, + "qualifier": { + "match": "\\b(?<!')[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*\\.", + "name": "entity.name.namespace.haskell" + }, + "record_decl": { + "begin": "({)(?!-)", + "beginCaptures": { + "1": { + "name": "punctuation.brace.haskell" + } + }, + "end": "(?<!-)(})", + "endCaptures": { + "1": { + "name": "punctuation.brace.haskell" + } + }, + "name": "meta.record.definition.haskell", + "patterns": [ + { + "include": "#comment_like" + }, + { + "include": "#record_decl_field" + } + ] + }, + "record": { + "begin": "({)(?!-)", + "beginCaptures": { + "1": { + "name": "punctuation.brace.haskell" + } + }, + "end": "(?<!-)(})", + "endCaptures": { + "1": { + "name": "punctuation.brace.haskell" + } + }, + "name": "meta.record.haskell", + "patterns": [ + { + "include": "#comment_like" + }, + { + "include": "#record_field" + } + ] + }, + "record_decl_field": { + "begin": "(?x)\n (?:([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\n |(\\()\\s*([\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]+)\\s*(\\))\n )\n", + "end": "(,)|(?=})", + "beginCaptures": { + "1": { + "name": "variable.other.member.definition.haskell" + }, + "2": { + "name": "punctuation.paren.haskell" + }, + "3": { + "name": "variable.other.member.definition.haskell" + }, + "4": { + "name": "punctuation.paren.haskell" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.comma.haskell" + } + }, + "patterns": [ + { + "include": "#comment_like" + }, + { + "include": "#comma" + }, + { + "include": "#double_colon" + }, + { + "include": "#type_signature" + }, + { + "include": "#record_decl_field" + } + ] + }, + "record_wildcard": { + "match": "(?x)\n (?<![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']])\n (\\.\\.)\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']])", + "captures": { + "1": { + "name": "variable.other.member.wildcard.haskell" + } + } + }, + "record_field": { + "patterns": [ + { + "begin": "(?x)\n (?:([\\p{Ll}\\p{Lu}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}\\.']*)\n |(\\()\\s*([\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]+)\\s*(\\))\n )\n", + "end": "(,)|(?=})", + "beginCaptures": { + "1": { + "name": "variable.other.member.haskell", + "patterns": [ + { + "include": "#qualifier" + } + ] + }, + "2": { + "name": "punctuation.paren.haskell" + }, + "3": { + "name": "variable.other.member.haskell" + }, + "4": { + "name": "punctuation.paren.haskell" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.comma.haskell" + } + }, + "patterns": [ + { + "include": "#comment_like" + }, + { + "include": "#comma" + }, + { + "include": "$self" + } + ] + }, + { + "include": "#record_wildcard" + } + ] + }, + "role_annotation": { + "patterns": [ + { + "begin": "^(\\s*)(type)\\s+(role)\\b(?!')", + "beginCaptures": { + "2": { + "name": "keyword.other.type.haskell" + }, + "3": { + "name": "keyword.other.role.haskell" + } + }, + "end": "(?x) # Detect end of block by decreasing indentation:\n (?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )", + "name": "meta.role-annotation.haskell", + "patterns": [ + { + "include": "#comment_like" + }, + { + "include": "#type_constructor" + }, + { + "match": "\\b(?<!')(nominal|representational|phantom)\\b(?!')", + "captures": { + "1": { + "name": "keyword.other.role.$1.haskell" + } + } + } + ] + } + ] + }, + "fun_decl": { + "begin": "(?x)^(\\s*)\n (?<fn>\n (?:\n [\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*\\#*\n | \\(\\s*\n (?!--+\\))\n [\\p{S}\\p{P}&&[^(),:;\\[\\]`{}_\"']]\n [\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]*\n \\s*\\)\n )\n (?:\\s*,\\s*\\g<fn>)?\n )\n \\s*(?<![\\p{S}\\p{P}&&[^\\),;\\]`}_\"']])(::|∷)(?![\\p{S}\\p{P}&&[^\\(,;\\[`{_\"']])\n", + "beginCaptures": { + "2": { + "name": "entity.name.function.haskell", + "patterns": [ + { + "include": "#reserved_symbol" + }, + { + "include": "#prefix_op" + } + ] + }, + "3": { + "name": "keyword.operator.double-colon.haskell" + } + }, + "name": "meta.function.type-declaration.haskell", + "patterns": [ + { + "include": "#type_signature" + } + ], + "end": "(?x)\n # End of type annotation:\n # To the left of a reserved symbolic keyword such as = or <-\n (?= \n # non-symbolic character\n (?<![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']])\n # symbolic keyword except (->)\n ((<-|←)|(=)|(-<|↢)|(-<<|⤛))\n # non-symbolic character\n ([(),;\\[\\]`{}_\"']|[^\\p{S}\\p{P}])\n )\n # Decreasing indentation:\n |(?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )\n" + }, + "adt_constructor": { + "patterns": [ + { + "include": "#comment_like" + }, + { + "begin": "(?x)\n (?<![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]) # non-symbol\n (?:(=)|(\\|))\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]) # non-symbol", + "beginCaptures": { + "1": { + "name": "keyword.operator.eq.haskell" + }, + "2": { + "name": "keyword.operator.pipe.haskell" + } + }, + "end": "(?x)\n (?:\\G|^)\\s* # Enforce starting condition to avoid catastrophic backtracking (https://github.com/JustusAdam/language-haskell/issues/161)\n (?: # Infix data constructor\n # First argument\n (?:\n # Simple type\n (?<!')\\b((?:[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'\\.])+)\n # Type inside balanced parentheses\n | ('? # Optional promotion tick\n (?<paren>\n \\( # Opening parenthesis\n (?:\n [^\\(\\)]* # Match non-parentheses\n | \\g<paren> # or recurse into further depth\n )*\n \\) # Closing parenthesis\n )\n )\n # Type inside balanced brackets\n | ('? # Optional promotion tick\n (?<brac>\n \\( # Opening bracket\n (?:\n [^\\[\\]]* # Match non-brackets\n | \\g<brac> # or recurse into further depth\n )*\n \\] # Closing bracket\n )\n )\n ) \n # Then either\n \\s*\n # - a symbolic infix constructor, or\n (?:(?<![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']])(:[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]*)\n # - an alphabetic infix constructor\n | (`)([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)(`)\n )\n\n ) # Otherwise, prefix data constructor, either:\n | # - an alphabetic data constructor e.g. \"Cons_123\"\n (?:(?<!')\\b([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*))\n | # - a symbolic (prefix) data constructor\n (\\()\\s*(:[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]*)\\s*(\\))", + "endCaptures": { + "1": { + "patterns": [ + { + "include": "#type_signature" + } + ] + }, + "2": { + "patterns": [ + { + "include": "#type_signature" + } + ] + }, + "4": { + "patterns": [ + { + "include": "#type_signature" + } + ] + }, + "6": { + "name": "constant.other.operator.haskell" + }, + "7": { + "name": "punctuation.backtick.haskell" + }, + "8": { + "name": "constant.other.haskell" + }, + "9": { + "name": "punctuation.backtick.haskell" + }, + "10": { + "name": "constant.other.haskell" + }, + "11": { + "name": "punctuation.paren.haskell" + }, + "12": { + "name": "constant.other.operator.haskell" + }, + "13": { + "name": "punctuation.paren.haskell" + } + }, + "patterns": [ + { + "include": "#comment_like" + }, + { + "include": "#deriving" + }, + { + "include": "#record_decl" + }, + { + "include": "#forall" + }, + { + "include": "#context" + } + ] + } + ] + }, + "gadt_constructor": { + "patterns": [ + { + "begin": "(?x)\n ^(\\s*)\n (?:\n (\\b(?<!')[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\n |(\\()\\s*(:[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]*)\\s*(\\))\n )", + "beginCaptures": { + "2": { + "name": "constant.other.haskell" + }, + "3": { + "name": "punctuation.paren.haskell" + }, + "4": { + "name": "constant.other.operator.haskell" + }, + "5": { + "name": "punctuation.paren.haskell" + } + }, + "end": "(?x)\n # GADT constructor ends\n (?=\\b(?<!'')deriving\\b(?!')) \n # Decreasing indentation\n |(?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )\n", + "patterns": [ + { + "include": "#comment_like" + }, + { + "include": "#deriving" + }, + { + "include": "#double_colon" + }, + { + "include": "#record_decl" + }, + { + "include": "#type_signature" + } + ] + }, + { + "begin": "(?x)\n (\\b(?<!')[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}]*) # named constructor\n |(\\()\\s*(:[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]*)\\s*(\\)) # prefix operator", + "beginCaptures": { + "1": { + "name": "constant.other.haskell" + }, + "2": { + "name": "punctuation.paren.haskell" + }, + "3": { + "name": "constant.other.operator.haskell" + }, + "4": { + "name": "punctuation.paren.haskell" + } + }, + "end": "$", + "patterns": [ + { + "include": "#comment_like" + }, + { + "include": "#deriving" + }, + { + "include": "#double_colon" + }, + { + "include": "#record_decl" + }, + { + "include": "#type_signature" + } + ] + } + ] + }, + "type_application": { + "patterns": [ + { + "begin": "(?<=[\\s,;\\[\\]{}\"])(@)(')?(\\()", + "beginCaptures": { + "1": { + "name": "keyword.operator.prefix.at.haskell" + }, + "2": { + "name": "keyword.operator.promotion.haskell" + }, + "3": { + "name": "punctuation.paren.haskell" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.paren.haskell" + } + }, + "name": "meta.type-application.haskell", + "patterns": [ + { + "include": "#type_signature" + } + ] + }, + { + "begin": "(?<=[\\s,;\\[\\]{}\"])(@)(')?(\\[)", + "beginCaptures": { + "1": { + "name": "keyword.operator.prefix.at.haskell" + }, + "2": { + "name": "keyword.operator.promotion.haskell" + }, + "3": { + "name": "punctuation.bracket.haskell" + } + }, + "end": "\\]", + "name": "meta.type-application.haskell", + "endCaptures": { + "0": { + "name": "punctuation.bracket.haskell" + } + }, + "patterns": [ + { + "include": "#type_signature" + } + ] + }, + { + "begin": "(?<=[\\s,;\\[\\]{}\"])(@)(?=\\\")", + "beginCaptures": { + "1": { + "name": "keyword.operator.prefix.at.haskell" + } + }, + "end": "(?<=\\\")", + "name": "meta.type-application.haskell", + "patterns": [ + { + "include": "#string_literal" + } + ] + }, + { + "begin": "(?<=[\\s,;\\[\\]{}\"])(@)(?=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])", + "beginCaptures": { + "1": { + "name": "keyword.operator.prefix.at.haskell" + } + }, + "end": "(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])", + "name": "meta.type-application.haskell", + "patterns": [ + { + "include": "#type_signature" + } + ] + } + ] + }, + "type_signature": { + "patterns": [ + { + "include": "#comment_like" + }, + { + "match": "(')?(\\()\\s*(\\))", + "captures": { + "1": { + "name": "keyword.operator.promotion.haskell" + }, + "2": { + "name": "punctuation.paren.haskell" + }, + "3": { + "name": "punctuation.paren.haskell" + } + }, + "name": "support.constant.unit.haskell" + }, + { + "match": "(\\()(#)\\s*(#)(\\))", + "name": "support.constant.unit.unboxed.haskell", + "captures": { + "1": { + "name": "punctuation.paren.haskell" + }, + "2": { + "name": "keyword.operator.hash.haskell" + }, + "3": { + "name": "keyword.operator.hash.haskell" + }, + "4": { + "name": "punctuation.paren.haskell" + } + } + }, + { + "match": "(')?(\\()\\s*,[\\s,]*(\\))", + "captures": { + "1": { + "name": "keyword.operator.promotion.haskell" + }, + "2": { + "name": "punctuation.paren.haskell" + }, + "3": { + "name": "punctuation.paren.haskell" + } + }, + "name": "support.constant.tuple.haskell" + }, + { + "match": "(\\()(#)\\s*(#)(\\))", + "name": "support.constant.unit.unboxed.haskell", + "captures": { + "1": { + "name": "punctuation.paren.haskell" + }, + "2": { + "name": "keyword.operator.hash.haskell" + }, + "3": { + "name": "keyword.operator.hash.haskell" + }, + "4": { + "name": "punctuation.paren.haskell" + } + } + }, + { + "match": "(\\()(#)\\s*,[\\s,]*(#)(\\))", + "captures": { + "1": { + "name": "punctuation.paren.haskell" + }, + "2": { + "name": "keyword.operator.hash.haskell" + }, + "3": { + "name": "keyword.operator.hash.haskell" + }, + "4": { + "name": "punctuation.paren.haskell" + } + }, + "name": "support.constant.tuple.unboxed.haskell" + }, + { + "match": "(')?(\\[)\\s*(\\])", + "captures": { + "1": { + "name": "keyword.operator.promotion.haskell" + }, + "2": { + "name": "punctuation.bracket.haskell" + }, + "3": { + "name": "punctuation.bracket.haskell" + } + }, + "name": "support.constant.empty-list.haskell" + }, + { + "include": "#integer_literals" + }, + { + "match": "(::|∷)(?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']])", + "name": "keyword.operator.double-colon.haskell" + }, + { + "include": "#forall" + }, + { + "match": "=>|⇒", + "name": "keyword.operator.big-arrow.haskell" + }, + { + "include": "#string_literal" + }, + { + "match": "'[^']'", + "name": "invalid" + }, + { + "include": "#type_application" + }, + { + "include": "#reserved_symbol" + }, + { + "include": "#type_operator" + }, + { + "include": "#type_constructor" + }, + { + "begin": "(\\()(#)", + "end": "(#)(\\))", + "beginCaptures": { + "1": { + "name": "punctuation.paren.haskell" + }, + "2": { + "name": "keyword.operator.hash.haskell" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.hash.haskell" + }, + "2": { + "name": "punctuation.paren.haskell" + } + }, + "patterns": [ + { + "include": "#comma" + }, + { + "include": "#type_signature" + } + ] + }, + { + "begin": "(')?(\\()", + "end": "(\\))", + "beginCaptures": { + "1": { + "name": "keyword.operator.promotion.haskell" + }, + "2": { + "name": "punctuation.paren.haskell" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.paren.haskell" + } + }, + "patterns": [ + { + "include": "#comma" + }, + { + "include": "#type_signature" + } + ] + }, + { + "begin": "(')?(\\[)", + "end": "(\\])", + "beginCaptures": { + "1": { + "name": "keyword.operator.promotion.haskell" + }, + "2": { + "name": "punctuation.bracket.haskell" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.bracket.haskell" + } + }, + "patterns": [ + { + "include": "#comma" + }, + { + "include": "#type_signature" + } + ] + }, + { + "include": "#type_variable" + } + ] + }, + "double_colon": { + "match": "\\s*(::|∷)(?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']])\\s*", + "captures": { + "1": { + "name": "keyword.operator.double-colon.haskell" + } + } + }, + "start_type_signature": { + "patterns": [ + { + "begin": "^(\\s*)(::|∷)(?![\\p{S}\\p{P}&&[^\\(,;\\[`{_\"']])\\s*", + "beginCaptures": { + "2": { + "name": "keyword.operator.double-colon.haskell" + } + }, + "end": "(?x)\n # End type annotation when seeing one of:\n (?=\n \\#?\\) # closing parenthesis\n |\\] # closing bracket\n |, # comma\n |(?<!')\\b(in|then|else|of)\\b(?!') # keyword\n | # symbolic keyword except (->)\n (?<![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']])\n (?:\n (\\\\|λ)\n |(<-|←)\n |(=)\n |(-<|↢)\n |(-<<|⤛)\n )\n ([(),;\\[\\]`{}_\"']|[^\\p{S}\\p{P}])\n |(\\#|@)-\\} # End of annotation block (LiquidHaskell or pragma)\n # Decreasing indentation:\n | (?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s*\\S # - equally indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )\n )", + "patterns": [ + { + "include": "#type_signature" + } + ], + "name": "meta.type-declaration.haskell" + }, + { + "begin": "(?<![\\p{S}\\p{P}&&[^\\(,;\\[`{_\"']])(::|∷)(?![\\p{S}\\p{P}&&[^\\(,;\\[`{_\"']])", + "beginCaptures": { + "1": { + "name": "keyword.operator.double-colon.haskell" + } + }, + "end": "(?x)\n # End type annotation when seeing one of:\n (?=\n \\#?\\) # closing parenthesis\n |\\] # closing bracket\n |, # comma\n |\\b(?<!')(in|then|else|of)\\b(?!') # keyword\n |(\\#|@)-\\} # End of annotation block (LiquidHaskell or pragma)\n | # symbolic keyword except (->)\n (?<![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']])\n (?:\n (\\\\|λ)\n |(<-|←)\n |(=)\n |(-<|↢)\n |(-<<|⤛)\n )\n ([(),;\\[\\]`{}_\"']|[^\\p{S}\\p{P}])\n # Indentation \n |(?=\\}|;) # Explicit indentation\n |$ # End of line\n )", + "patterns": [ + { + "include": "#type_signature" + } + ] + } + ] + }, + "type_variable": { + "match": "\\b(?<!')(?!(?:forall|deriving)\\b(?!'))[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*", + "name": "variable.other.generic-type.haskell" + }, + "type_constructor": { + "patterns": [ + { + "match": "(?x)\n # Optional promotion tick\n (')?\n # Optional qualified name\n ((?:\\b[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*\\.)*)\n # Type constructor proper\n (\\b[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)", + "captures": { + "1": { + "name": "keyword.operator.promotion.haskell" + }, + "2": { + "name": "entity.name.namespace.haskell" + }, + "3": { + "name": "storage.type.haskell" + } + } + }, + { + "match": "(?x)\n # Optional promotion tick\n (')?\n # Opening parenthesis\n (\\()\\s*\n # Optional qualified name\n ((?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*\\.)*)\n # Type operator proper\n ([\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]+)\n # Closing parenthesis\n \\s*(\\))", + "captures": { + "1": { + "name": "keyword.operator.promotion.haskell" + }, + "2": { + "name": "punctuation.paren.haskell" + }, + "3": { + "name": "entity.name.namespace.haskell" + }, + "4": { + "name": "storage.type.operator.haskell" + }, + "5": { + "name": "punctuation.paren.haskell" + } + } + } + ] + }, + "overloaded_label": { + "patterns": [ + { + "match": "(?x) \n (?<![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}\\p{S}\\p{P}&&[^(,;\\[`{]]) # Disallow closing characters\n (\\#)\n (?:\n # String\n (\"(?:\\\\\"|[^\"])*\")\n # Sequence of allowed label identifiers\n |[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'\\.]+\n )", + "captures": { + "1": { + "name": "keyword.operator.prefix.hash.haskell" + }, + "2": { + "patterns": [ + { + "include": "#string_literal" + } + ] + } + }, + "name": "entity.name.label.haskell" + } + ] + }, + "reserved_symbol": { + "patterns": [ + { + "match": "(?x)\n (?<![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"'']])\n (?:\n (\\.\\.)\n |(:)\n |(=)\n |(\\\\) # λ not reserved as it is a letter\n |(\\|)\n |(<-|←)\n |(->|→)\n |(-<|↢)\n |(-<<|⤛)\n |(>-|⤚)\n |(>>-|⤜)\n |(∀)\n )\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"'']])", + "captures": { + "1": { + "name": "keyword.operator.double-dot.haskell" + }, + "2": { + "name": "keyword.operator.colon.haskell" + }, + "3": { + "name": "keyword.operator.eq.haskell" + }, + "4": { + "name": "keyword.operator.lambda.haskell" + }, + "5": { + "name": "keyword.operator.pipe.haskell" + }, + "6": { + "name": "keyword.operator.arrow.left.haskell" + }, + "7": { + "name": "keyword.operator.arrow.haskell" + }, + "8": { + "name": "keyword.operator.arrow.left.tail.haskell" + }, + "9": { + "name": "keyword.operator.arrow.left.tail.double.haskell" + }, + "10": { + "name": "keyword.operator.arrow.tail.haskell" + }, + "11": { + "name": "keyword.operator.arrow.tail.double.haskell" + }, + "12": { + "name": "keyword.other.forall.haskell" + } + } + }, + { + "match": "(?x)\n (?<=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}\\p{S}\\p{P}&&[^\\#,;\\[`{]]) # Require closing characters\n (\\#+)\n (?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}\\p{S}\\p{P}&&[^),;\\]`}]]) # Disallow opening character", + "captures": { + "1": { + "name": "keyword.operator.postfix.hash.haskell" + } + } + }, + { + "match": "(?x)\n (?<=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}\\)\\}\\]]) # Require closing characters\n (@)\n (?=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}\\(\\[\\{]) # Require opening character", + "captures": { + "1": { + "name": "keyword.operator.infix.tight.at.haskell" + } + } + }, + { + "match": "(?x)\n (?<![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}\\p{S}\\p{P}&&[^(,;\\[`{]]) # Disallow closing characters\n (?:(~)|(!)|(-)|(\\$)|(\\$\\$))\n (?=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}\\(\\{\\[]) # Require opening character (non operator symbol)", + "captures": { + "1": { + "name": "keyword.operator.prefix.tilde.haskell" + }, + "2": { + "name": "keyword.operator.prefix.bang.haskell" + }, + "3": { + "name": "keyword.operator.prefix.minus.haskell" + }, + "4": { + "name": "keyword.operator.prefix.dollar.haskell" + }, + "5": { + "name": "keyword.operator.prefix.double-dollar.haskell" + } + } + } + ] + }, + "type_operator": { + "patterns": [ + { + "match": "(?x)\n # Optional promotion tick\n (?:(?<!')('))?\n # Optional qualified name\n ((?:\\b[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*\\.)*)\n # Type operator proper\n (?![#@]?-})(\\#+|[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]+(?<!\\#))\n #((?:[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']&&[^#@]]|[@#](?!-}))+)", + "captures": { + "1": { + "name": "keyword.operator.promotion.haskell" + }, + "2": { + "name": "entity.name.namespace.haskell" + }, + "3": { + "name": "storage.type.operator.infix.haskell" + } + } + }, + { + "match": "(?x)\n # Optional promotion tick\n (')?\n # Opening backtick\n (\\`)\n # Optional qualified name\n ((?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*\\.)*)\n # Type constructor proper\n ([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\n # Closing backtick\n (`)", + "captures": { + "1": { + "name": "keyword.operator.promotion.haskell" + }, + "2": { + "name": "punctuation.backtick.haskell" + }, + "3": { + "name": "entity.name.namespace.haskell" + }, + "4": { + "name": "storage.type.infix.haskell" + }, + "5": { + "name": "punctuation.backtick.haskell" + } + } + } + ] + }, + "forall": { + "begin": "\\b(?<!')(forall|∀)\\b(?!')", + "end": "(\\.)|(->|→)", + "beginCaptures": { + "1": { + "name": "keyword.other.forall.haskell" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.period.haskell" + }, + "2": { + "name": "keyword.operator.arrow.haskell" + } + }, + "patterns": [ + { + "include": "#comment_like" + }, + { + "include": "#type_variable" + }, + { + "include": "#type_signature" + } + ] + }, + "string_literal": { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.haskell" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.haskell" + } + }, + "name": "string.quoted.double.haskell", + "patterns": [ + { + "match": "\\\\(NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\"'\\&])", + "name": "constant.character.escape.haskell" + }, + { + "match": "\\\\o[0-7]+|\\\\x[0-9A-Fa-f]+|\\\\[0-9]+", + "name": "constant.character.escape.octal.haskell" + }, + { + "match": "\\\\\\^[A-Z@\\[\\]\\\\\\^_]", + "name": "constant.character.escape.control.haskell" + }, + { + "begin": "\\\\\\s", + "beginCaptures": { + "0": { + "name": "constant.character.escape.begin.haskell" + } + }, + "end": "\\\\", + "endCaptures": { + "0": { + "name": "constant.character.escape.end.haskell" + } + }, + "patterns": [ + { + "match": "\\S+", + "name": "invalid.illegal.character-not-allowed-here.haskell" + } + ] + } + ] + }, + "char_literal": { + "captures": { + "1": { + "name": "punctuation.definition.string.begin.haskell" + }, + "2": { + "name": "constant.character.escape.haskell" + }, + "3": { + "name": "constant.character.escape.octal.haskell" + }, + "4": { + "name": "constant.character.escape.hexadecimal.haskell" + }, + "5": { + "name": "constant.character.escape.control.haskell" + }, + "6": { + "name": "punctuation.definition.string.end.haskell" + } + }, + "match": "(?x)\n (?<![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])\n (')\n (?:\n [\\ -\\[\\]-~] # Basic Char\n | (\\\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE\n |DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS\n |US|SP|DEL|[abfnrtv\\\\\\\"'\\\\&])) # Escapes\n | (\\\\o[0-7]+) # Octal Escapes\n | (\\\\x[0-9A-Fa-f]+) # Hexadecimal Escapes\n | (\\\\\\^[A-Z@\\[\\]\\\\\\^_]) # Control Chars\n )\n (')\n", + "name": "string.quoted.single.haskell" + }, + "float_literals": { + "comment": "Floats are decimal or hexadecimal", + "match": "(?x)\n \\b(?<!')\n (?: # Decimal\n ([0-9][_0-9]*\\.[0-9][_0-9]*(?:[eE][-+]?[0-9][_0-9]*)?\n |[0-9][_0-9]*[eE][-+]?[0-9][_0-9]*\n )\n | # Hexadecimal\n (0[xX]_*[0-9a-fA-F][_0-9a-fA-F]*\\.[0-9a-fA-F][_0-9a-fA-F]*(?:[pP][-+]?[0-9][_0-9]*)?\n |0[xX]_*[0-9a-fA-F][_0-9a-fA-F]*[pP][-+]?[0-9][_0-9]*\n )\n )\\b(?!')", + "captures": { + "1": { + "name": "constant.numeric.floating.decimal.haskell" + }, + "2": { + "name": "constant.numeric.floating.hexadecimal.haskell" + } + } + }, + "integer_literals": { + "match": "(?x)\n \\b(?<!')\n (?:\n ([0-9][_0-9]*) # Decimal integer\n | (0[xX]_*[0-9a-fA-F][_0-9a-fA-F]*) # Hexadecimal integer\n | (0[oO]_*[0-7][_0-7]*) # Octal integer\n | (0[bB]_*[01][_01]*) # Binary integer\n )\n \\b(?!')", + "captures": { + "1": { + "name": "constant.numeric.integral.decimal.haskell" + }, + "2": { + "name": "constant.numeric.integral.hexadecimal.haskell" + }, + "3": { + "name": "constant.numeric.integral.octal.haskell" + }, + "4": { + "name": "constant.numeric.integral.binary.haskell" + } + } + }, + "numeric_literals": { + "patterns": [ + { + "include": "#float_literals" + }, + { + "include": "#integer_literals" + } + ] + }, + "ffi": { + "begin": "^(\\s*)(foreign)\\s+(import|export)\\s+", + "beginCaptures": { + "2": { + "name": "keyword.other.foreign.haskell" + }, + "3": { + "name": "keyword.other.$3.haskell" + } + }, + "name": "meta.$3.foreign.haskell", + "end": "(?x) # Detect end of FFI block by decreasing indentation:\n (?=\\}|;) # Explicit indentation\n |^(?! # Implicit indentation: end match on newline *unless* the new line is either:\n \\1\\s+\\S # - more indented, or\n | \\s* # - starts with whitespace, followed by:\n (?: $ # - the end of the line (i.e. empty line), or\n |\\{-[^@] # - the start of a block comment, or\n |--+ # - the start of a single-line comment.\n (?![\\p{S}\\p{P}&&[^(),;\\[\\]{}`_\"']]).*$) # non-symbol\n # The double dash may not be followed by other operator characters\n # (then it would be an operator, not a comment)\n )\n", + "patterns": [ + { + "include": "#comment_like" + }, + { + "match": "\\b(?<!')(ccall|cplusplus|dotnet|jvm|stdcall|prim|capi)\\s+", + "captures": { + "1": { + "name": "keyword.other.calling-convention.$1.haskell" + } + } + }, + { + "begin": "(?=\")|(?=\\b(?<!')([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\\b(?!'))", + "end": "(?=(::|∷)(?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]))", + "patterns": [ + { + "include": "#comment_like" + }, + { + "match": "(?x)\n \\b(?<!')(safe|unsafe|interruptible)\\b(?!')\n \\s*\n (\"(?:\\\\\"|[^\"])*\")?\n \\s*\n (?:\n (?:\\b(?<!'')([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\\b(?!'))\n |(?:\\(\\s*(?!--+\\))([\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]+)\\s*\\))\n )\n", + "captures": { + "1": { + "name": "keyword.other.safety.$1.haskell" + }, + "2": { + "name": "entity.name.foreign.haskell", + "patterns": [ + { + "include": "#string_literal" + } + ] + }, + "3": { + "name": "entity.name.function.haskell" + }, + "4": { + "name": "entity.name.function.infix.haskell" + } + } + }, + { + "match": "(?x)\n \\b(?<!')(safe|unsafe|interruptible)\\b(?!')\n \\s*\n (\"(?:\\\\\"|[^\"])*\")?\n \\s*$\n", + "captures": { + "1": { + "name": "keyword.other.safety.$1.haskell" + }, + "2": { + "name": "entity.name.foreign.haskell", + "patterns": [ + { + "include": "#string_literal" + } + ] + } + } + }, + { + "match": "(?x)\n \"(?:\\\\\"|[^\"])*\"", + "captures": { + "0": { + "name": "entity.name.foreign.haskell", + "patterns": [ + { + "include": "#string_literal" + } + ] + } + } + }, + { + "match": "(?x)\n (?:\\b(?<!'')([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\\b(?!'))\n |(?:(\\()\\s*(?!--+\\))([\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]+)\\s*(\\)))\n", + "captures": { + "1": { + "name": "entity.name.function.haskell" + }, + "2": { + "name": "punctuation.paren.haskell" + }, + "3": { + "name": "entity.name.function.infix.haskell" + }, + "4": { + "name": "punctuation.paren.haskell" + } + } + } + ] + }, + { + "include": "#double_colon" + }, + { + "include": "#type_signature" + } + ] + }, + "inline_phase": { + "begin": "\\[", + "beginCaptures": { + "0": { + "name": "punctuation.bracket.haskell" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.bracket.haskell" + } + }, + "name": "meta.inlining-phase.haskell", + "patterns": [ + { + "match": "~", + "name": "punctuation.tilde.haskell" + }, + { + "include": "#integer_literals" + }, + { + "match": "\\w*", + "name": "invalid" + } + ] + }, + "quasi_quote": { + "patterns": [ + { + "begin": "(?x)\n (\\[)\n (e|d|p)?\n (\\|\\|?)", + "beginCaptures": { + "1": { + "name": "keyword.operator.quasi-quotation.begin.haskell" + }, + "2": { + "name": "entity.name.quasi-quoter.haskell" + }, + "3": { + "name": "keyword.operator.quasi-quotation.begin.haskell" + } + }, + "end": "\\3\\]", + "endCaptures": { + "0": { + "name": "keyword.operator.quasi-quotation.end.haskell" + } + }, + "name": "meta.quasi-quotation.haskell", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "begin": "(?x)\n (\\[)\n (t)\n (\\|\\|?)", + "beginCaptures": { + "1": { + "name": "keyword.operator.quasi-quotation.begin.haskell" + }, + "2": { + "name": "entity.name.quasi-quoter.haskell" + }, + "3": { + "name": "keyword.operator.quasi-quotation.begin.haskell" + } + }, + "end": "\\3\\]", + "endCaptures": { + "0": { + "name": "keyword.operator.quasi-quotation.end.haskell" + } + }, + "name": "meta.quasi-quotation.haskell", + "patterns": [ + { + "include": "#type_signature" + } + ] + }, + { + "begin": "(?x)\n (\\[)\n (?:(\\$\\$)|(\\$))?\n ((?:[^\\s\\p{S}\\p{P}]|[\\.'_])*)\n (\\|\\|?)", + "beginCaptures": { + "1": { + "name": "keyword.operator.quasi-quotation.begin.haskell" + }, + "2": { + "name": "keyword.operator.prefix.double-dollar.haskell" + }, + "3": { + "name": "keyword.operator.prefix.dollar.haskell" + }, + "4": { + "patterns": [ + { + "include": "#qualifier" + } + ], + "name": "entity.name.quasi-quoter.haskell" + }, + "5": { + "name": "keyword.operator.quasi-quotation.begin.haskell" + } + }, + "end": "\\5\\]", + "endCaptures": { + "0": { + "name": "keyword.operator.quasi-quotation.end.haskell" + } + }, + "name": "meta.quasi-quotation.haskell" + } + ] + } + }, + "scopeName": "source.haskell", + "uuid": "5C034675-1F6D-497E-8073-369D37E2FD7D" +} diff --git a/docs/shiki/languages/hcl.tmLanguage.json b/docs/shiki/languages/hcl.tmLanguage.json new file mode 100644 index 00000000..a7b44bf3 --- /dev/null +++ b/docs/shiki/languages/hcl.tmLanguage.json @@ -0,0 +1,780 @@ +{ + "scopeName": "source.hcl", + "name": "hcl", + "uuid": "a14187be-98d8-42c1-ac89-bb5eaccf911e", + "fileTypes": ["hcl"], + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#attribute_definition" + }, + { + "include": "#block" + }, + { + "include": "#expressions" + } + ], + "repository": { + "attribute_access": { + "begin": "\\.(?!\\*)", + "end": "[[:alpha:]][\\w-]*|\\d*", + "comment": "Matches traversal attribute access such as .attr", + "beginCaptures": { + "0": { + "name": "keyword.operator.accessor.hcl" + } + }, + "endCaptures": { + "0": { + "patterns": [ + { + "match": "(?!null|false|true)[[:alpha:]][\\w-]*", + "comment": "Attribute name", + "name": "variable.other.member.hcl" + }, + { + "match": "\\d+", + "comment": "Optional attribute index", + "name": "constant.numeric.integer.hcl" + } + ] + } + } + }, + "attribute_definition": { + "name": "variable.declaration.hcl", + "match": "(\\()?(\\b(?!null\\b|false\\b|true\\b)[[:alpha:]][[:alnum:]_-]*)(\\))?\\s*(\\=(?!\\=|\\>))\\s*", + "comment": "Identifier \"=\" with optional parens", + "captures": { + "1": { + "name": "punctuation.section.parens.begin.hcl" + }, + "2": { + "name": "variable.other.readwrite.hcl" + }, + "3": { + "name": "punctuation.section.parens.end.hcl" + }, + "4": { + "name": "keyword.operator.assignment.hcl" + } + } + }, + "attribute_splat": { + "begin": "\\.", + "end": "\\*", + "comment": "Legacy attribute-only splat", + "beginCaptures": { + "0": { + "name": "keyword.operator.accessor.hcl" + } + }, + "endCaptures": { + "0": { + "name": "keyword.operator.splat.hcl" + } + } + }, + "block": { + "name": "meta.block.hcl", + "begin": "([\\w][\\-\\w]*)([\\s\\\"\\-\\w]*)(\\{)", + "end": "\\}", + "comment": "This will match HCL blocks like `thing1 \"one\" \"two\" {` or `thing2 {`", + "beginCaptures": { + "1": { + "patterns": [ + { + "match": "\\b(?!null|false|true)[[:alpha:]][[:alnum:]_-]*\\b", + "comment": "Block type", + "name": "entity.name.type.hcl" + } + ] + }, + "2": { + "patterns": [ + { + "match": "[\\\"\\-\\w]+", + "comment": "Block label", + "name": "variable.other.enummember.hcl" + } + ] + }, + "3": { + "name": "punctuation.section.block.begin.hcl" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.hcl" + } + }, + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#attribute_definition" + }, + { + "include": "#block" + }, + { + "include": "#expressions" + } + ] + }, + "block_inline_comments": { + "name": "comment.block.hcl", + "begin": "/\\*", + "end": "\\*/", + "comment": "Inline comments start with the /* sequence and end with the */ sequence, and may have any characters within except the ending sequence. An inline comment is considered equivalent to a whitespace sequence", + "captures": { + "0": { + "name": "punctuation.definition.comment.hcl" + } + } + }, + "brackets": { + "begin": "\\[", + "end": "\\]", + "beginCaptures": { + "0": { + "name": "punctuation.section.brackets.begin.hcl" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.brackets.end.hcl" + } + }, + "patterns": [ + { + "name": "keyword.operator.splat.hcl", + "match": "\\*", + "comment": "Splat operator" + }, + { + "include": "#comma" + }, + { + "include": "#comments" + }, + { + "include": "#inline_for_expression" + }, + { + "include": "#inline_if_expression" + }, + { + "include": "#expressions" + }, + { + "include": "#local_identifiers" + } + ] + }, + "char_escapes": { + "name": "constant.character.escape.hcl", + "match": "\\\\[nrt\"\\\\]|\\\\u(\\h{8}|\\h{4})", + "comment": "Character Escapes" + }, + "comma": { + "name": "punctuation.separator.hcl", + "match": "\\,", + "comment": "Commas - used in certain expressions" + }, + "comments": { + "patterns": [ + { + "include": "#hash_line_comments" + }, + { + "include": "#double_slash_line_comments" + }, + { + "include": "#block_inline_comments" + } + ] + }, + "double_slash_line_comments": { + "name": "comment.line.double-slash.hcl", + "begin": "//", + "end": "$\\n?", + "comment": "Line comments start with // sequence and end with the next newline sequence. A line comment is considered equivalent to a newline sequence", + "captures": { + "0": { + "name": "punctuation.definition.comment.hcl" + } + } + }, + "expressions": { + "patterns": [ + { + "include": "#literal_values" + }, + { + "include": "#operators" + }, + { + "include": "#tuple_for_expression" + }, + { + "include": "#object_for_expression" + }, + { + "include": "#brackets" + }, + { + "include": "#objects" + }, + { + "include": "#attribute_access" + }, + { + "include": "#attribute_splat" + }, + { + "include": "#functions" + }, + { + "include": "#parens" + } + ] + }, + "for_expression_body": { + "patterns": [ + { + "name": "keyword.operator.word.hcl", + "match": "\\bin\\b", + "comment": "in keyword" + }, + { + "name": "keyword.control.conditional.hcl", + "match": "\\bif\\b", + "comment": "if keyword" + }, + { + "name": "keyword.operator.hcl", + "match": "\\:" + }, + { + "include": "#expressions" + }, + { + "include": "#comments" + }, + { + "include": "#comma" + }, + { + "include": "#local_identifiers" + } + ] + }, + "functions": { + "name": "meta.function-call.hcl", + "begin": "(\\w+)(\\()", + "end": "\\)", + "comment": "Built-in function calls", + "beginCaptures": { + "1": { + "patterns": [ + { + "match": "\\b(?!null|false|true)[[:alpha:]][[:alnum:]_-]*\\b", + "name": "support.function.builtin.hcl" + } + ] + }, + "2": { + "name": "punctuation.section.parens.begin.hcl" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.parens.end.hcl" + } + }, + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#expressions" + }, + { + "include": "#comma" + } + ] + }, + "hash_line_comments": { + "name": "comment.line.number-sign.hcl", + "begin": "#", + "end": "$\\n?", + "comment": "Line comments start with # sequence and end with the next newline sequence. A line comment is considered equivalent to a newline sequence", + "captures": { + "0": { + "name": "punctuation.definition.comment.hcl" + } + } + }, + "hcl_type_keywords": { + "name": "storage.type.hcl", + "match": "\\b(any|string|number|bool|list|set|map|tuple|object)\\b", + "comment": "Type keywords known to HCL." + }, + "heredoc": { + "name": "string.unquoted.heredoc.hcl", + "begin": "(\\<\\<\\-?)\\s*(\\w+)\\s*$", + "end": "^\\s*\\2\\s*$", + "comment": "String Heredoc", + "beginCaptures": { + "1": { + "name": "keyword.operator.heredoc.hcl" + }, + "2": { + "name": "keyword.control.heredoc.hcl" + } + }, + "endCaptures": { + "0": { + "name": "keyword.control.heredoc.hcl" + } + }, + "patterns": [ + { + "include": "#string_interpolation" + } + ] + }, + "inline_for_expression": { + "begin": "(for)\\b", + "end": "\\n", + "beginCaptures": { + "1": { + "name": "keyword.control.hcl" + } + }, + "patterns": [ + { + "name": "storage.type.function.hcl", + "match": "\\=\\>" + }, + { + "include": "#for_expression_body" + } + ] + }, + "inline_if_expression": { + "begin": "(if)\\b", + "end": "\\n", + "beginCaptures": { + "1": { + "name": "keyword.control.conditional.hcl" + } + }, + "patterns": [ + { + "include": "#expressions" + }, + { + "include": "#comments" + }, + { + "include": "#comma" + }, + { + "include": "#local_identifiers" + } + ] + }, + "language_constants": { + "name": "constant.language.hcl", + "match": "\\b(true|false|null)\\b", + "comment": "Language Constants" + }, + "literal_values": { + "patterns": [ + { + "include": "#numeric_literals" + }, + { + "include": "#language_constants" + }, + { + "include": "#string_literals" + }, + { + "include": "#heredoc" + }, + { + "include": "#hcl_type_keywords" + } + ] + }, + "local_identifiers": { + "name": "variable.other.readwrite.hcl", + "match": "\\b(?!null|false|true)[[:alpha:]][[:alnum:]_-]*\\b", + "comment": "Local Identifiers" + }, + "numeric_literals": { + "patterns": [ + { + "name": "constant.numeric.float.hcl", + "match": "\\b\\d+([Ee][+-]?)\\d+\\b", + "comment": "Integer, no fraction, optional exponent", + "captures": { + "1": { + "name": "punctuation.separator.exponent.hcl" + } + } + }, + { + "name": "constant.numeric.float.hcl", + "match": "\\b\\d+(\\.)\\d+(?:([Ee][+-]?)\\d+)?\\b", + "comment": "Integer, fraction, optional exponent", + "captures": { + "1": { + "name": "punctuation.separator.decimal.hcl" + }, + "2": { + "name": "punctuation.separator.exponent.hcl" + } + } + }, + { + "name": "constant.numeric.integer.hcl", + "match": "\\b\\d+\\b", + "comment": "Integers" + } + ] + }, + "object_for_expression": { + "begin": "(\\{)\\s?(for)\\b", + "end": "\\}", + "beginCaptures": { + "1": { + "name": "punctuation.section.braces.begin.hcl" + }, + "2": { + "name": "keyword.control.hcl" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.braces.end.hcl" + } + }, + "patterns": [ + { + "name": "storage.type.function.hcl", + "match": "\\=\\>" + }, + { + "include": "#for_expression_body" + } + ] + }, + "object_key_values": { + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#literal_values" + }, + { + "include": "#operators" + }, + { + "include": "#tuple_for_expression" + }, + { + "include": "#object_for_expression" + }, + { + "include": "#heredoc" + }, + { + "include": "#functions" + } + ] + }, + "objects": { + "name": "meta.braces.hcl", + "begin": "\\{", + "end": "\\}", + "beginCaptures": { + "0": { + "name": "punctuation.section.braces.begin.hcl" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.braces.end.hcl" + } + }, + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#objects" + }, + { + "include": "#inline_for_expression" + }, + { + "include": "#inline_if_expression" + }, + { + "match": "\\b((?!null|false|true)[[:alpha:]][[:alnum:]_-]*)\\s*(\\=\\>?)\\s*", + "comment": "Literal, named object key", + "captures": { + "1": { + "name": "meta.mapping.key.hcl variable.other.readwrite.hcl" + }, + "2": { + "name": "keyword.operator.assignment.hcl", + "patterns": [ + { + "match": "\\=\\>", + "name": "storage.type.function.hcl" + } + ] + } + } + }, + { + "match": "\\b((\").*(\"))\\s*(\\=)\\s*", + "comment": "String object key", + "captures": { + "1": { + "name": "meta.mapping.key.hcl string.quoted.double.hcl" + }, + "2": { + "name": "punctuation.definition.string.begin.hcl" + }, + "3": { + "name": "punctuation.definition.string.end.hcl" + }, + "4": { + "name": "keyword.operator.hcl" + } + } + }, + { + "name": "meta.mapping.key.hcl", + "begin": "^\\s*\\(", + "end": "(\\))\\s*(=|:)\\s*", + "comment": "Computed object key (any expression between parens)", + "beginCaptures": { + "0": { + "name": "punctuation.section.parens.begin.hcl" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.section.parens.end.hcl" + }, + "2": { + "name": "keyword.operator.hcl" + } + }, + "patterns": [ + { + "include": "#attribute_access" + }, + { + "include": "#attribute_splat" + } + ] + }, + { + "include": "#object_key_values" + } + ] + }, + "operators": { + "patterns": [ + { + "name": "keyword.operator.hcl", + "match": "\\>\\=" + }, + { + "name": "keyword.operator.hcl", + "match": "\\<\\=" + }, + { + "name": "keyword.operator.hcl", + "match": "\\=\\=" + }, + { + "name": "keyword.operator.hcl", + "match": "\\!\\=" + }, + { + "name": "keyword.operator.arithmetic.hcl", + "match": "\\+" + }, + { + "name": "keyword.operator.arithmetic.hcl", + "match": "\\-" + }, + { + "name": "keyword.operator.arithmetic.hcl", + "match": "\\*" + }, + { + "name": "keyword.operator.arithmetic.hcl", + "match": "\\/" + }, + { + "name": "keyword.operator.arithmetic.hcl", + "match": "\\%" + }, + { + "name": "keyword.operator.logical.hcl", + "match": "\\&\\&" + }, + { + "name": "keyword.operator.logical.hcl", + "match": "\\|\\|" + }, + { + "name": "keyword.operator.logical.hcl", + "match": "\\!" + }, + { + "name": "keyword.operator.hcl", + "match": "\\>" + }, + { + "name": "keyword.operator.hcl", + "match": "\\<" + }, + { + "name": "keyword.operator.hcl", + "match": "\\?" + }, + { + "name": "keyword.operator.hcl", + "match": "\\.\\.\\." + }, + { + "match": "\\:" + } + ] + }, + "parens": { + "begin": "\\(", + "end": "\\)", + "comment": "Parens - matched *after* function syntax", + "beginCaptures": { + "0": { + "name": "punctuation.section.parens.begin.hcl" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.parens.end.hcl" + } + }, + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#expressions" + } + ] + }, + "string_interpolation": { + "name": "meta.interpolation.hcl", + "begin": "(?<![%$])([%$]{)", + "end": "\\}", + "comment": "String interpolation", + "beginCaptures": { + "1": { + "name": "keyword.other.interpolation.begin.hcl" + } + }, + "endCaptures": { + "0": { + "name": "keyword.other.interpolation.end.hcl" + } + }, + "patterns": [ + { + "name": "keyword.operator.template.left.trim.hcl", + "match": "\\~\\s", + "comment": "Trim left whitespace" + }, + { + "name": "keyword.operator.template.right.trim.hcl", + "match": "\\s\\~", + "comment": "Trim right whitespace" + }, + { + "name": "keyword.control.hcl", + "match": "\\b(if|else|endif|for|in|endfor)\\b", + "comment": "if/else/endif and for/in/endfor directives" + }, + { + "include": "#expressions" + }, + { + "include": "#local_identifiers" + } + ] + }, + "string_literals": { + "name": "string.quoted.double.hcl", + "begin": "\"", + "end": "\"", + "comment": "Strings", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.hcl" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.hcl" + } + }, + "patterns": [ + { + "include": "#string_interpolation" + }, + { + "include": "#char_escapes" + } + ] + }, + "tuple_for_expression": { + "begin": "(\\[)\\s?(for)\\b", + "end": "\\]", + "beginCaptures": { + "1": { + "name": "punctuation.section.brackets.begin.hcl" + }, + "2": { + "name": "keyword.control.hcl" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.brackets.end.hcl" + } + }, + "patterns": [ + { + "include": "#for_expression_body" + } + ] + } + } +} diff --git a/docs/shiki/languages/hjson.tmLanguage.json b/docs/shiki/languages/hjson.tmLanguage.json new file mode 100644 index 00000000..d5466a9d --- /dev/null +++ b/docs/shiki/languages/hjson.tmLanguage.json @@ -0,0 +1,819 @@ +{ + "fileTypes": ["hjson"], + "foldingStartMarker": "(?x: # turn on extended mode\n ^ # a line beginning with\n \\s* # some optional space\n [{\\[] # the start of an object or array\n (?! # but not followed by\n .* # whatever\n [}\\]] # and the close of an object or array\n ,? # an optional comma\n \\s* # some optional space\n $ # at the end of the line\n )\n | # ...or...\n [{\\[] # the start of an object or array\n \\s* # some optional space\n $ # at the end of the line\n )", + "foldingStopMarker": "(?x: # turn on extended mode\n ^ # a line beginning with\n \\s* # some optional space\n [}\\]] # and the close of an object or array\n )", + "keyEquivalent": "^~J", + "name": "hjson", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#value" + }, + { + "match": "[^\\s]", + "name": "invalid.illegal.excess-characters.hjson" + } + ], + "repository": { + "array": { + "begin": "\\[", + "beginCaptures": { + "0": { + "name": "punctuation.definition.array.begin.hjson" + } + }, + "end": "(\\])(?:\\s*([^,\\s]+))?", + "endCaptures": { + "1": { + "name": "punctuation.definition.array.end.hjson" + }, + "2": { + "name": "invalid.illegal.value.hjson" + } + }, + "name": "meta.structure.array.hjson", + "patterns": [ + { + "include": "#arrayContent" + } + ] + }, + "arrayArray": { + "begin": "\\[", + "beginCaptures": { + "0": { + "name": "punctuation.definition.array.begin.hjson" + } + }, + "end": "(\\])(?:\\s*([^,\\s\\]]+))?", + "endCaptures": { + "1": { + "name": "punctuation.definition.array.end.hjson" + }, + "2": { + "name": "invalid.illegal.value.hjson" + } + }, + "name": "meta.structure.array.hjson", + "patterns": [ + { + "include": "#arrayContent" + } + ] + }, + "arrayConstant": { + "captures": { + "1": { + "name": "constant.language.hjson" + }, + "2": { + "name": "punctuation.separator.array.after-const.hjson" + } + }, + "match": "\\b(true|false|null)(?:[\\t ]*(?=,)|[\\t ]*(?:(,)[\\t ]*)?(?=$|#|/\\*|//|\\]))" + }, + "arrayContent": { + "name": "meta.structure.array.hjson", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#arrayValue" + }, + { + "begin": "(?<=\\[)|,", + "beginCaptures": { + "1": { + "name": "punctuation.separator.dictionary.pair.hjson" + } + }, + "end": "(?=[^\\s,/#])|(?=/[^/*])", + "patterns": [ + { + "include": "#comments" + }, + { + "match": ",", + "name": "invalid.illegal.extra-comma.hjson" + } + ] + }, + { + "match": ",", + "name": "punctuation.separator.array.hjson" + }, + { + "match": "[^\\s\\]]", + "name": "invalid.illegal.expected-array-separator.hjson" + } + ] + }, + "arrayJstring": { + "patterns": [ + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.hjson" + } + }, + "end": "(\")(?:\\s*((?:[^,\\s\\]#/]|/[^/*])+))?", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.hjson" + }, + "2": { + "name": "invalid.illegal.value.hjson" + } + }, + "name": "string.quoted.double.hjson", + "patterns": [ + { + "include": "#jstringDoubleContent" + } + ] + }, + { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.hjson" + } + }, + "end": "(')(?:\\s*((?:[^,\\s\\]#/]|/[^/*])+))?", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.hjson" + }, + "2": { + "name": "invalid.illegal.value.hjson" + } + }, + "name": "string.quoted.single.hjson", + "patterns": [ + { + "include": "#jstringSingleContent" + } + ] + } + ] + }, + "arrayMstring": { + "begin": "'''", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.hjson" + } + }, + "end": "(''')(?:\\s*((?:[^,\\s\\]#/]|/[^/*])+))?", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.hjson" + }, + "2": { + "name": "invalid.illegal.value.hjson" + } + }, + "name": "string.quoted.multiline.hjson" + }, + "arrayNumber": { + "captures": { + "1": { + "name": "constant.numeric.hjson" + }, + "2": { + "name": "punctuation.separator.array.after-num.hjson" + } + }, + "match": "(-?(?:0|(?:[1-9]\\d*))(?:\\.\\d+)?(?:[eE][+-]?\\d+)?)(?:[\\t ]*(?=,)|[\\t ]*(?:(,)[\\t ]*)?(?=$|#|/\\*|//|\\]))" + }, + "arrayObject": { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.dictionary.begin.hjson" + } + }, + "end": "(\\}|(?<=\\}))(?:\\s*([^,\\s\\]]+))?", + "endCaptures": { + "1": { + "name": "punctuation.definition.dictionary.end.hjson" + }, + "2": { + "name": "invalid.illegal.value.hjson" + } + }, + "name": "meta.structure.dictionary.hjson", + "patterns": [ + { + "include": "#objectContent" + } + ] + }, + "arrayString": { + "patterns": [ + { + "include": "#arrayMstring" + }, + { + "include": "#arrayJstring" + }, + { + "include": "#ustring" + } + ] + }, + "arrayValue": { + "patterns": [ + { + "include": "#arrayNumber" + }, + { + "include": "#arrayConstant" + }, + { + "include": "#arrayString" + }, + { + "include": "#arrayObject" + }, + { + "include": "#arrayArray" + } + ] + }, + "comments": { + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.comment.hjson" + } + }, + "match": "^\\s*(#).*(?:\\n)?", + "name": "comment.line.hash" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.comment.hjson" + } + }, + "match": "^\\s*(//).*(?:\\n)?", + "name": "comment.line.double-slash" + }, + { + "begin": "^\\s*/\\*", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.hjson" + } + }, + "end": "\\*/(?:\\s*\\n)?", + "endCaptures": { + "1": { + "name": "punctuation.definition.comment.hjson" + } + }, + "name": "comment.block.double-slash" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.comment.hjson" + } + }, + "match": "(#)[^\\n]*", + "name": "comment.line.hash" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.comment.hjson" + } + }, + "match": "(//)[^\\n]*", + "name": "comment.line.double-slash" + }, + { + "begin": "/\\*", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.hjson" + } + }, + "end": "\\*/", + "endCaptures": { + "1": { + "name": "punctuation.definition.comment.hjson" + } + }, + "name": "comment.block.double-slash" + } + ] + }, + "commentsNewline": { + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.comment.hjson" + } + }, + "match": "(#).*\\n", + "name": "comment.line.hash" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.comment.hjson" + } + }, + "match": "(//).*\\n", + "name": "comment.line.double-slash" + }, + { + "begin": "/\\*", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.hjson" + } + }, + "end": "\\*/(\\s*\\n)?", + "endCaptures": { + "1": { + "name": "punctuation.definition.comment.hjson" + } + }, + "name": "comment.block.double-slash" + } + ] + }, + "constant": { + "captures": { + "1": { + "name": "constant.language.hjson" + } + }, + "match": "\\b(true|false|null)[\\t ]*(?=$|#|/\\*|//|\\])" + }, + "jstring": { + "patterns": [ + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.hjson" + } + }, + "end": "(\")(?:\\s*((?:[^\\s#/]|/[^/*]).*)$)?", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.hjson" + }, + "2": { + "name": "invalid.illegal.value.hjson" + } + }, + "name": "string.quoted.double.hjson", + "patterns": [ + { + "include": "#jstringDoubleContent" + } + ] + }, + { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.hjson" + } + }, + "end": "(')(?:\\s*((?:[^\\s#/]|/[^/*]).*)$)?", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.hjson" + }, + "2": { + "name": "invalid.illegal.value.hjson" + } + }, + "name": "string.quoted.single.hjson", + "patterns": [ + { + "include": "#jstringSingleContent" + } + ] + } + ] + }, + "jstringDoubleContent": { + "patterns": [ + { + "match": "\\\\(?:[\"'\\\\\\/bfnrt]|u[0-9a-fA-F]{4})", + "name": "constant.character.escape.hjson" + }, + { + "match": "\\\\.", + "name": "invalid.illegal.unrecognized-string-escape.hjson" + }, + { + "match": "[^\"]*[^\\n\\r\"\\\\]$", + "name": "invalid.illegal.string.hjson" + } + ] + }, + "jstringSingleContent": { + "patterns": [ + { + "match": "\\\\(?:[\"'\\\\\\/bfnrt]|u[0-9a-fA-F]{4})", + "name": "constant.character.escape.hjson" + }, + { + "match": "\\\\.", + "name": "invalid.illegal.unrecognized-string-escape.hjson" + }, + { + "match": "[^']*[^\\n\\r'\\\\]$", + "name": "invalid.illegal.string.hjson" + } + ] + }, + "key": { + "begin": "(?x:\n (\n (?:[^:,\\{\\}\\[\\]\\s\"'][^:,\\{\\}\\[\\]\\s]*) |\n (?: # json string w/ '\n '\n (?:\n [^\\\\'] | # anything but an escape character or quote\n (\\\\(?:[\"'\\\\\\/bfnrt]|u[0-9a-fA-F]{4})) | # escape characters\n (\\\\.) # bad escape characters\n )*\n '\n ) |\n (?: # json string w/ \"\n \"\n (?:\n [^\\\\\"] | # anything but an escape character or quote\n (\\\\(?:[\"'\\\\\\/bfnrt]|u[0-9a-fA-F]{4})) | # escape characters\n (\\\\.) # bad escape characters\n )*\n \"\n )\n )\n \\s*\n (?!\\n)\n ([,\\{\\}\\[\\]]*)\n )", + "beginCaptures": { + "0": { + "name": "meta.structure.key-value.begin.hjson" + }, + "1": { + "name": "support.type.property-name.hjson" + }, + "2": { + "name": "constant.character.escape.hjson" + }, + "3": { + "name": "invalid.illegal.unrecognized-string-escape.hjson" + }, + "4": { + "name": "constant.character.escape.hjson" + }, + "5": { + "name": "invalid.illegal.unrecognized-string-escape.hjson" + }, + "6": { + "name": "invalid.illegal.separator.hjson" + }, + "7": { + "name": "invalid.illegal.property-name.hjson" + } + }, + "end": "(?<!^|:)\\s*\\n|(?=})|(,)", + "endCaptures": { + "1": { + "name": "punctuation.separator.dictionary.pair.hjson" + } + }, + "patterns": [ + { + "include": "#commentsNewline" + }, + { + "include": "#keyValue" + }, + { + "match": "[^\\s]", + "name": "invalid.illegal.object-property.hjson" + } + ] + }, + "keyValue": { + "begin": "(?x:\n \\s*\n (:)\n \\s* # capture the line ending if there is no value on the same line\n ([,\\}\\]]*)\n )", + "beginCaptures": { + "1": { + "name": "punctuation.separator.dictionary.key-value.hjson" + }, + "2": { + "name": "invalid.illegal.object-property.hjson" + } + }, + "end": "(?<!^)\\s*(?=\\n)|(?=[},])", + "name": "meta.structure.key-value.hjson", + "patterns": [ + { + "include": "#comments" + }, + { + "match": "^\\s+" + }, + { + "include": "#objectValue" + }, + { + "captures": { + "1": { + "name": "invalid.illegal.object-property.closing-bracket.hjson" + } + }, + "match": "^\\s*(\\})" + }, + { + "match": "[^\\s]", + "name": "invalid.illegal.object-property.hjson" + } + ] + }, + "mstring": { + "begin": "'''", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.hjson" + } + }, + "end": "(''')(?:\\s*((?:[^\\s#/]|/[^/*]).*)$)?", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.hjson" + }, + "2": { + "name": "invalid.illegal.value.hjson" + } + }, + "name": "string.quoted.multiline.hjson" + }, + "number": { + "captures": { + "1": { + "name": "constant.numeric.hjson" + } + }, + "match": "(-?(?:0|(?:[1-9]\\d*))(?:\\.\\d+)?(?:[eE][+-]?\\d+)?)[\\t ]*(?=$|#|/\\*|//|\\])" + }, + "object": { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.dictionary.begin.hjson" + } + }, + "end": "(\\}|(?<=\\}))(?:\\s*([^,\\s]+))?", + "endCaptures": { + "1": { + "name": "punctuation.definition.dictionary.end.hjson" + }, + "2": { + "name": "invalid.illegal.value.hjson" + } + }, + "name": "meta.structure.dictionary.hjson", + "patterns": [ + { + "include": "#objectContent" + } + ] + }, + "objectArray": { + "begin": "\\[", + "beginCaptures": { + "0": { + "name": "punctuation.definition.array.begin.hjson" + } + }, + "end": "(\\])(?:\\s*([^,\\s\\}]+))?", + "endCaptures": { + "1": { + "name": "punctuation.definition.array.end.hjson" + }, + "2": { + "name": "invalid.illegal.value.hjson" + } + }, + "name": "meta.structure.array.hjson", + "patterns": [ + { + "include": "#arrayContent" + } + ] + }, + "objectConstant": { + "captures": { + "1": { + "name": "constant.language.hjson" + }, + "2": { + "name": "punctuation.separator.dictionary.pair.after-const.hjson" + } + }, + "match": "\\b(true|false|null)(?:[\\t ]*(?=,)|[\\t ]*(?:(,)[\\t ]*)?(?=$|#|/\\*|//|\\}))" + }, + "objectContent": { + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#key" + }, + { + "match": ":[.|\\s]", + "name": "invalid.illegal.object-property.hjson" + }, + { + "begin": "(?<=\\{|,)|,", + "beginCaptures": { + "1": { + "name": "punctuation.separator.dictionary.pair.hjson" + } + }, + "end": "(?=[^\\s,/#])|(?=/[^/*])", + "patterns": [ + { + "include": "#comments" + }, + { + "match": ",", + "name": "invalid.illegal.extra-comma.hjson" + } + ] + }, + { + "match": "[^\\s]", + "name": "invalid.illegal.object-property.hjson" + } + ] + }, + "objectJstring": { + "patterns": [ + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.hjson" + } + }, + "end": "(\")(?:\\s*((?:[^,\\s\\}#/]|/[^/*])+))?", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.hjson" + }, + "2": { + "name": "invalid.illegal.value.hjson" + } + }, + "name": "string.quoted.double.hjson", + "patterns": [ + { + "include": "#jstringDoubleContent" + } + ] + }, + { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.hjson" + } + }, + "end": "(')(?:\\s*((?:[^,\\s\\}#/]|/[^/*])+))?", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.hjson" + }, + "2": { + "name": "invalid.illegal.value.hjson" + } + }, + "name": "string.quoted.single.hjson", + "patterns": [ + { + "include": "#jstringSingleContent" + } + ] + } + ] + }, + "objectMstring": { + "begin": "'''", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.hjson" + } + }, + "end": "(''')(?:\\s*((?:[^,\\s\\}#/]|/[^/*])+))?", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.hjson" + }, + "2": { + "name": "invalid.illegal.value.hjson" + } + }, + "name": "string.quoted.multiline.hjson" + }, + "objectNumber": { + "captures": { + "1": { + "name": "constant.numeric.hjson" + }, + "2": { + "name": "punctuation.separator.dictionary.pair.after-num.hjson" + } + }, + "match": "(-?(?:0|(?:[1-9]\\d*))(?:\\.\\d+)?(?:[eE][+-]?\\d+)?)(?:[\\t ]*(?=,)|[\\t ]*(?:(,)[\\t ]*)?(?=$|#|/\\*|//|\\}))" + }, + "objectObject": { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.dictionary.begin.hjson" + } + }, + "end": "(\\}|(?<=\\})\\}?)(?:\\s*([^,\\s}]+))?", + "endCaptures": { + "1": { + "name": "punctuation.definition.dictionary.end.hjson" + }, + "2": { + "name": "invalid.illegal.value.hjson" + } + }, + "name": "meta.structure.dictionary.hjson", + "patterns": [ + { + "include": "#objectContent" + } + ] + }, + "objectString": { + "patterns": [ + { + "include": "#objectMstring" + }, + { + "include": "#objectJstring" + }, + { + "include": "#ustring" + } + ] + }, + "objectValue": { + "patterns": [ + { + "include": "#objectNumber" + }, + { + "include": "#objectConstant" + }, + { + "include": "#objectString" + }, + { + "include": "#objectObject" + }, + { + "include": "#objectArray" + } + ] + }, + "string": { + "patterns": [ + { + "include": "#mstring" + }, + { + "include": "#jstring" + }, + { + "include": "#ustring" + } + ] + }, + "ustring": { + "match": "([^:,\\{\\[\\}\\]\\s].*)$", + "name": "string.quoted.none.hjson" + }, + "value": { + "patterns": [ + { + "include": "#number" + }, + { + "include": "#constant" + }, + { + "include": "#string" + }, + { + "include": "#object" + }, + { + "include": "#array" + } + ] + } + }, + "scopeName": "source.hjson" +} diff --git a/docs/shiki/languages/hlsl.tmLanguage.json b/docs/shiki/languages/hlsl.tmLanguage.json new file mode 100644 index 00000000..bdcee21b --- /dev/null +++ b/docs/shiki/languages/hlsl.tmLanguage.json @@ -0,0 +1,217 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/tgjones/shaders-tmLanguage/blob/master/grammars/hlsl.json", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/tgjones/shaders-tmLanguage/commit/87c0dca3a39170dbd7ee7e277db4f915fb2de14a", + "name": "hlsl", + "scopeName": "source.hlsl", + "patterns": [ + { + "name": "comment.line.block.hlsl", + "begin": "/\\*", + "end": "\\*/" + }, + { + "name": "comment.line.double-slash.hlsl", + "begin": "//", + "end": "$" + }, + { + "name": "constant.numeric.decimal.hlsl", + "match": "\\b[0-9]+\\.[0-9]*(F|f)?\\b" + }, + { + "name": "constant.numeric.decimal.hlsl", + "match": "(\\.([0-9]+)(F|f)?)\\b" + }, + { + "name": "constant.numeric.decimal.hlsl", + "match": "\\b([0-9]+(F|f)?)\\b" + }, + { + "name": "constant.numeric.hex.hlsl", + "match": "\\b(0(x|X)[0-9a-fA-F]+)\\b" + }, + { + "name": "constant.language.hlsl", + "match": "\\b(false|true)\\b" + }, + { + "name": "keyword.preprocessor.hlsl", + "match": "^\\s*#\\s*(define|elif|else|endif|ifdef|ifndef|if|undef|include|line|error|pragma)" + }, + { + "name": "keyword.control.hlsl", + "match": "\\b(break|case|continue|default|discard|do|else|for|if|return|switch|while)\\b" + }, + { + "name": "keyword.control.fx.hlsl", + "match": "\\b(compile)\\b" + }, + { + "name": "keyword.typealias.hlsl", + "match": "\\b(typedef)\\b" + }, + { + "name": "storage.type.basic.hlsl", + "match": "\\b(bool([1-4](x[1-4])?)?|double([1-4](x[1-4])?)?|dword|float([1-4](x[1-4])?)?|half([1-4](x[1-4])?)?|int([1-4](x[1-4])?)?|matrix|min10float([1-4](x[1-4])?)?|min12int([1-4](x[1-4])?)?|min16float([1-4](x[1-4])?)?|min16int([1-4](x[1-4])?)?|min16uint([1-4](x[1-4])?)?|unsigned|uint([1-4](x[1-4])?)?|vector|void)\\b" + }, + { + "name": "support.function.hlsl", + "match": "\\b([a-zA-Z_][a-zA-Z0-9_]*)(?=[\\s]*\\()" + }, + { + "name": "support.variable.semantic.hlsl", + "match": "(?<=\\:\\s|\\:)(?i:BINORMAL[0-9]*|BLENDINDICES[0-9]*|BLENDWEIGHT[0-9]*|COLOR[0-9]*|NORMAL[0-9]*|POSITIONT|POSITION|PSIZE[0-9]*|TANGENT[0-9]*|TEXCOORD[0-9]*|FOG|TESSFACTOR[0-9]*|VFACE|VPOS|DEPTH[0-9]*)\\b" + }, + { + "name": "support.variable.semantic.sm4.hlsl", + "match": "(?<=\\:\\s|\\:)(?i:SV_ClipDistance[0-9]*|SV_CullDistance[0-9]*|SV_Coverage|SV_Depth|SV_DepthGreaterEqual[0-9]*|SV_DepthLessEqual[0-9]*|SV_InstanceID|SV_IsFrontFace|SV_Position|SV_RenderTargetArrayIndex|SV_SampleIndex|SV_StencilRef|SV_Target[0-7]?|SV_VertexID|SV_ViewportArrayIndex)\\b" + }, + { + "name": "support.variable.semantic.sm5.hlsl", + "match": "(?<=\\:\\s|\\:)(?i:SV_DispatchThreadID|SV_DomainLocation|SV_GroupID|SV_GroupIndex|SV_GroupThreadID|SV_GSInstanceID|SV_InsideTessFactor|SV_OutputControlPointID|SV_TessFactor)\\b" + }, + { + "name": "support.variable.semantic.sm5_1.hlsl", + "match": "(?<=\\:\\s|\\:)(?i:SV_InnerCoverage|SV_StencilRef)\\b" + }, + { + "name": "storage.modifier.hlsl", + "match": "\\b(column_major|const|export|extern|globallycoherent|groupshared|inline|inout|in|out|precise|row_major|shared|static|uniform|volatile)\\b" + }, + { + "name": "storage.modifier.float.hlsl", + "match": "\\b(snorm|unorm)\\b" + }, + { + "name": "storage.modifier.postfix.hlsl", + "match": "\\b(packoffset|register)\\b" + }, + { + "name": "storage.modifier.interpolation.hlsl", + "match": "\\b(centroid|linear|nointerpolation|noperspective|sample)\\b" + }, + { + "name": "storage.modifier.geometryshader.hlsl", + "match": "\\b(lineadj|line|point|triangle|triangleadj)\\b" + }, + { + "name": "support.type.other.hlsl", + "match": "\\b(string)\\b" + }, + { + "name": "support.type.object.hlsl", + "match": "\\b(AppendStructuredBuffer|Buffer|ByteAddressBuffer|ConstantBuffer|ConsumeStructuredBuffer|InputPatch|OutputPatch)\\b" + }, + { + "name": "support.type.object.rasterizerordered.hlsl", + "match": "\\b(RasterizerOrderedBuffer|RasterizerOrderedByteAddressBuffer|RasterizerOrderedStructuredBuffer|RasterizerOrderedTexture1D|RasterizerOrderedTexture1DArray|RasterizerOrderedTexture2D|RasterizerOrderedTexture2DArray|RasterizerOrderedTexture3D)\\b" + }, + { + "name": "support.type.object.rw.hlsl", + "match": "\\b(RWBuffer|RWByteAddressBuffer|RWStructuredBuffer|RWTexture1D|RWTexture1DArray|RWTexture2D|RWTexture2DArray|RWTexture3D)\\b" + }, + { + "name": "support.type.object.geometryshader.hlsl", + "match": "\\b(LineStream|PointStream|TriangleStream)\\b" + }, + { + "name": "support.type.sampler.legacy.hlsl", + "match": "\\b(sampler|sampler1D|sampler2D|sampler3D|samplerCUBE|sampler_state)\\b" + }, + { + "name": "support.type.sampler.hlsl", + "match": "\\b(SamplerState|SamplerComparisonState)\\b" + }, + { + "name": "support.type.texture.legacy.hlsl", + "match": "\\b(texture2D|textureCUBE)\\b" + }, + { + "name": "support.type.texture.hlsl", + "match": "\\b(Texture1D|Texture1DArray|Texture2D|Texture2DArray|Texture2DMS|Texture2DMSArray|Texture3D|TextureCube|TextureCubeArray)\\b" + }, + { + "name": "storage.type.structured.hlsl", + "match": "\\b(cbuffer|class|interface|namespace|struct|tbuffer)\\b" + }, + { + "name": "support.constant.property-value.fx.hlsl", + "match": "\\b(FALSE|TRUE|NULL)\\b" + }, + { + "name": "support.type.fx.hlsl", + "match": "\\b(BlendState|DepthStencilState|RasterizerState)\\b" + }, + { + "name": "storage.type.fx.technique.hlsl", + "match": "\\b(technique|Technique|technique10|technique11|pass)\\b" + }, + { + "name": "meta.object-literal.key.fx.blendstate.hlsl", + "match": "\\b(AlphaToCoverageEnable|BlendEnable|SrcBlend|DestBlend|BlendOp|SrcBlendAlpha|DestBlendAlpha|BlendOpAlpha|RenderTargetWriteMask)\\b" + }, + { + "name": "meta.object-literal.key.fx.depthstencilstate.hlsl", + "match": "\\b(DepthEnable|DepthWriteMask|DepthFunc|StencilEnable|StencilReadMask|StencilWriteMask|FrontFaceStencilFail|FrontFaceStencilZFail|FrontFaceStencilPass|FrontFaceStencilFunc|BackFaceStencilFail|BackFaceStencilZFail|BackFaceStencilPass|BackFaceStencilFunc)\\b" + }, + { + "name": "meta.object-literal.key.fx.rasterizerstate.hlsl", + "match": "\\b(FillMode|CullMode|FrontCounterClockwise|DepthBias|DepthBiasClamp|SlopeScaleDepthBias|ZClipEnable|ScissorEnable|MultiSampleEnable|AntiAliasedLineEnable)\\b" + }, + { + "name": "meta.object-literal.key.fx.samplerstate.hlsl", + "match": "\\b(Filter|AddressU|AddressV|AddressW|MipLODBias|MaxAnisotropy|ComparisonFunc|BorderColor|MinLOD|MaxLOD)\\b" + }, + { + "name": "support.constant.property-value.fx.blend.hlsl", + "match": "\\b(?i:ZERO|ONE|SRC_COLOR|INV_SRC_COLOR|SRC_ALPHA|INV_SRC_ALPHA|DEST_ALPHA|INV_DEST_ALPHA|DEST_COLOR|INV_DEST_COLOR|SRC_ALPHA_SAT|BLEND_FACTOR|INV_BLEND_FACTOR|SRC1_COLOR|INV_SRC1_COLOR|SRC1_ALPHA|INV_SRC1_ALPHA)\\b" + }, + { + "name": "support.constant.property-value.fx.blendop.hlsl", + "match": "\\b(?i:ADD|SUBTRACT|REV_SUBTRACT|MIN|MAX)\\b" + }, + { + "name": "support.constant.property-value.fx.depthwritemask.hlsl", + "match": "\\b(?i:ALL)\\b" + }, + { + "name": "support.constant.property-value.fx.comparisonfunc.hlsl", + "match": "\\b(?i:NEVER|LESS|EQUAL|LESS_EQUAL|GREATER|NOT_EQUAL|GREATER_EQUAL|ALWAYS)\\b" + }, + { + "name": "support.constant.property-value.fx.stencilop.hlsl", + "match": "\\b(?i:KEEP|REPLACE|INCR_SAT|DECR_SAT|INVERT|INCR|DECR)\\b" + }, + { + "name": "support.constant.property-value.fx.fillmode.hlsl", + "match": "\\b(?i:WIREFRAME|SOLID)\\b" + }, + { + "name": "support.constant.property-value.fx.cullmode.hlsl", + "match": "\\b(?i:NONE|FRONT|BACK)\\b" + }, + { + "name": "support.constant.property-value.fx.filter.hlsl", + "match": "\\b(?i:MIN_MAG_MIP_POINT|MIN_MAG_POINT_MIP_LINEAR|MIN_POINT_MAG_LINEAR_MIP_POINT|MIN_POINT_MAG_MIP_LINEAR|MIN_LINEAR_MAG_MIP_POINT|MIN_LINEAR_MAG_POINT_MIP_LINEAR|MIN_MAG_LINEAR_MIP_POINT|MIN_MAG_MIP_LINEAR|ANISOTROPIC|COMPARISON_MIN_MAG_MIP_POINT|COMPARISON_MIN_MAG_POINT_MIP_LINEAR|COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT|COMPARISON_MIN_POINT_MAG_MIP_LINEAR|COMPARISON_MIN_LINEAR_MAG_MIP_POINT|COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR|COMPARISON_MIN_MAG_LINEAR_MIP_POINT|COMPARISON_MIN_MAG_MIP_LINEAR|COMPARISON_ANISOTROPIC|TEXT_1BIT)\\b" + }, + { + "name": "support.constant.property-value.fx.textureaddressmode.hlsl", + "match": "\\b(?i:WRAP|MIRROR|CLAMP|BORDER|MIRROR_ONCE)\\b" + }, + { + "name": "string.quoted.double.hlsl", + "begin": "\"", + "end": "\"", + "patterns": [ + { + "name": "constant.character.escape.hlsl", + "match": "\\\\." + } + ] + } + ] +} diff --git a/docs/shiki/languages/html.tmLanguage.json b/docs/shiki/languages/html.tmLanguage.json new file mode 100644 index 00000000..f44c8f98 --- /dev/null +++ b/docs/shiki/languages/html.tmLanguage.json @@ -0,0 +1,2643 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/textmate/html.tmbundle/blob/master/Syntaxes/HTML.plist", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/textmate/html.tmbundle/commit/0c3d5ee54de3a993f747f54186b73a4d2d3c44a2", + "name": "html", + "scopeName": "text.html.basic", + "injections": { + "R:text.html - (comment.block, text.html meta.embedded, meta.tag.*.*.html, meta.tag.*.*.*.html, meta.tag.*.*.*.*.html)": { + "comment": "Uses R: to ensure this matches after any other injections.", + "patterns": [ + { + "match": "<", + "name": "invalid.illegal.bad-angle-bracket.html" + } + ] + } + }, + "patterns": [ + { + "include": "#xml-processing" + }, + { + "include": "#comment" + }, + { + "include": "#doctype" + }, + { + "include": "#cdata" + }, + { + "include": "#tags-valid" + }, + { + "include": "#tags-invalid" + }, + { + "include": "#entities" + } + ], + "repository": { + "attribute": { + "patterns": [ + { + "begin": "(s(hape|cope|t(ep|art)|ize(s)?|p(ellcheck|an)|elected|lot|andbox|rc(set|doc|lang)?)|h(ttp-equiv|i(dden|gh)|e(ight|aders)|ref(lang)?)|n(o(nce|validate|module)|ame)|c(h(ecked|arset)|ite|o(nt(ent(editable)?|rols)|ords|l(s(pan)?|or))|lass|rossorigin)|t(ype(mustmatch)?|itle|a(rget|bindex)|ranslate)|i(s(map)?|n(tegrity|putmode)|tem(scope|type|id|prop|ref)|d)|op(timum|en)|d(i(sabled|r(name)?)|ownload|e(coding|f(er|ault))|at(etime|a)|raggable)|usemap|p(ing|oster|la(ysinline|ceholder)|attern|reload)|enctype|value|kind|for(m(novalidate|target|enctype|action|method)?)?|w(idth|rap)|l(ist|o(op|w)|a(ng|bel))|a(s(ync)?|c(ce(sskey|pt(-charset)?)|tion)|uto(c(omplete|apitalize)|play|focus)|l(t|low(usermedia|paymentrequest|fullscreen))|bbr)|r(ows(pan)?|e(versed|quired|ferrerpolicy|l|adonly))|m(in(length)?|u(ted|ltiple)|e(thod|dia)|a(nifest|x(length)?)))(?![\\w:-])", + "beginCaptures": { + "0": { + "name": "entity.other.attribute-name.html" + } + }, + "comment": "HTML5 attributes, not event handlers", + "end": "(?=\\s*+[^=\\s])", + "name": "meta.attribute.$1.html", + "patterns": [ + { + "include": "#attribute-interior" + } + ] + }, + { + "begin": "style(?![\\w:-])", + "beginCaptures": { + "0": { + "name": "entity.other.attribute-name.html" + } + }, + "comment": "HTML5 style attribute", + "end": "(?=\\s*+[^=\\s])", + "name": "meta.attribute.style.html", + "patterns": [ + { + "begin": "=", + "beginCaptures": { + "0": { + "name": "punctuation.separator.key-value.html" + } + }, + "end": "(?<=[^\\s=])(?!\\s*=)|(?=/?>)", + "patterns": [ + { + "begin": "(?=[^\\s=<>`/]|/(?!>))", + "end": "(?!\\G)", + "name": "meta.embedded.line.css", + "patterns": [ + { + "captures": { + "0": { + "name": "source.css" + } + }, + "match": "([^\\s\"'=<>`/]|/(?!>))+", + "name": "string.unquoted.html" + }, + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.html" + } + }, + "contentName": "source.css", + "end": "(\")", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.html" + }, + "1": { + "name": "source.css" + } + }, + "name": "string.quoted.double.html", + "patterns": [ + { + "include": "#entities" + } + ] + }, + { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.html" + } + }, + "contentName": "source.css", + "end": "(')", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.html" + }, + "1": { + "name": "source.css" + } + }, + "name": "string.quoted.single.html", + "patterns": [ + { + "include": "#entities" + } + ] + } + ] + }, + { + "match": "=", + "name": "invalid.illegal.unexpected-equals-sign.html" + } + ] + } + ] + }, + { + "begin": "on(s(croll|t(orage|alled)|u(spend|bmit)|e(curitypolicyviolation|ek(ing|ed)|lect))|hashchange|c(hange|o(ntextmenu|py)|u(t|echange)|l(ick|ose)|an(cel|play(through)?))|t(imeupdate|oggle)|in(put|valid)|o(nline|ffline)|d(urationchange|r(op|ag(start|over|e(n(ter|d)|xit)|leave)?)|blclick)|un(handledrejection|load)|p(opstate|lay(ing)?|a(ste|use|ge(show|hide))|rogress)|e(nded|rror|mptied)|volumechange|key(down|up|press)|focus|w(heel|aiting)|l(oad(start|e(nd|d(data|metadata)))?|anguagechange)|a(uxclick|fterprint|bort)|r(e(s(ize|et)|jectionhandled)|atechange)|m(ouse(o(ut|ver)|down|up|enter|leave|move)|essage(error)?)|b(efore(unload|print)|lur))(?![\\w:-])", + "beginCaptures": { + "0": { + "name": "entity.other.attribute-name.html" + } + }, + "comment": "HTML5 attributes, event handlers", + "end": "(?=\\s*+[^=\\s])", + "name": "meta.attribute.event-handler.$1.html", + "patterns": [ + { + "begin": "=", + "beginCaptures": { + "0": { + "name": "punctuation.separator.key-value.html" + } + }, + "end": "(?<=[^\\s=])(?!\\s*=)|(?=/?>)", + "patterns": [ + { + "begin": "(?=[^\\s=<>`/]|/(?!>))", + "end": "(?!\\G)", + "name": "meta.embedded.line.js", + "patterns": [ + { + "captures": { + "0": { + "name": "source.js" + }, + "1": { + "patterns": [ + { + "include": "source.js" + } + ] + } + }, + "match": "(([^\\s\"'=<>`/]|/(?!>))+)", + "name": "string.unquoted.html" + }, + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.html" + } + }, + "contentName": "source.js", + "end": "(\")", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.html" + }, + "1": { + "name": "source.js" + } + }, + "name": "string.quoted.double.html", + "patterns": [ + { + "captures": { + "0": { + "patterns": [ + { + "include": "source.js" + } + ] + } + }, + "match": "([^\\n\"/]|/(?![/*]))+" + }, + { + "begin": "//", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.js" + } + }, + "end": "(?=\")|\\n", + "name": "comment.line.double-slash.js" + }, + { + "begin": "/\\*", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.begin.js" + } + }, + "end": "(?=\")|\\*/", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.end.js" + } + }, + "name": "comment.block.js" + } + ] + }, + { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.html" + } + }, + "contentName": "source.js", + "end": "(')", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.html" + }, + "1": { + "name": "source.js" + } + }, + "name": "string.quoted.single.html", + "patterns": [ + { + "captures": { + "0": { + "patterns": [ + { + "include": "source.js" + } + ] + } + }, + "match": "([^\\n'/]|/(?![/*]))+" + }, + { + "begin": "//", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.js" + } + }, + "end": "(?=')|\\n", + "name": "comment.line.double-slash.js" + }, + { + "begin": "/\\*", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.begin.js" + } + }, + "end": "(?=')|\\*/", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.end.js" + } + }, + "name": "comment.block.js" + } + ] + } + ] + }, + { + "match": "=", + "name": "invalid.illegal.unexpected-equals-sign.html" + } + ] + } + ] + }, + { + "begin": "(data-[a-z\\-]+)(?![\\w:-])", + "beginCaptures": { + "0": { + "name": "entity.other.attribute-name.html" + } + }, + "comment": "HTML5 attributes, data-*", + "end": "(?=\\s*+[^=\\s])", + "name": "meta.attribute.data-x.$1.html", + "patterns": [ + { + "include": "#attribute-interior" + } + ] + }, + { + "begin": "(align|bgcolor|border)(?![\\w:-])", + "beginCaptures": { + "0": { + "name": "invalid.deprecated.entity.other.attribute-name.html" + } + }, + "comment": "HTML attributes, deprecated", + "end": "(?=\\s*+[^=\\s])", + "name": "meta.attribute.$1.html", + "patterns": [ + { + "include": "#attribute-interior" + } + ] + }, + { + "begin": "([^\\x{0020}\"'<>/=\\x{0000}-\\x{001F}\\x{007F}-\\x{009F}\\x{FDD0}-\\x{FDEF}\\x{FFFE}\\x{FFFF}\\x{1FFFE}\\x{1FFFF}\\x{2FFFE}\\x{2FFFF}\\x{3FFFE}\\x{3FFFF}\\x{4FFFE}\\x{4FFFF}\\x{5FFFE}\\x{5FFFF}\\x{6FFFE}\\x{6FFFF}\\x{7FFFE}\\x{7FFFF}\\x{8FFFE}\\x{8FFFF}\\x{9FFFE}\\x{9FFFF}\\x{AFFFE}\\x{AFFFF}\\x{BFFFE}\\x{BFFFF}\\x{CFFFE}\\x{CFFFF}\\x{DFFFE}\\x{DFFFF}\\x{EFFFE}\\x{EFFFF}\\x{FFFFE}\\x{FFFFF}\\x{10FFFE}\\x{10FFFF}]+)", + "beginCaptures": { + "0": { + "name": "entity.other.attribute-name.html" + } + }, + "comment": "Anything else that is valid", + "end": "(?=\\s*+[^=\\s])", + "name": "meta.attribute.unrecognized.$1.html", + "patterns": [ + { + "include": "#attribute-interior" + } + ] + }, + { + "match": "[^\\s>]+", + "name": "invalid.illegal.character-not-allowed-here.html" + } + ] + }, + "attribute-interior": { + "patterns": [ + { + "begin": "=", + "beginCaptures": { + "0": { + "name": "punctuation.separator.key-value.html" + } + }, + "end": "(?<=[^\\s=])(?!\\s*=)|(?=/?>)", + "patterns": [ + { + "match": "([^\\s\"'=<>`/]|/(?!>))+", + "name": "string.unquoted.html" + }, + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.html" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.html" + } + }, + "name": "string.quoted.double.html", + "patterns": [ + { + "include": "#entities" + } + ] + }, + { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.html" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.html" + } + }, + "name": "string.quoted.single.html", + "patterns": [ + { + "include": "#entities" + } + ] + }, + { + "match": "=", + "name": "invalid.illegal.unexpected-equals-sign.html" + } + ] + } + ] + }, + "cdata": { + "begin": "<!\\[CDATA\\[", + "beginCaptures": { + "0": { + "name": "punctuation.definition.tag.begin.html" + } + }, + "contentName": "string.other.inline-data.html", + "end": "]]>", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.metadata.cdata.html" + }, + "comment": { + "begin": "<!--", + "captures": { + "0": { + "name": "punctuation.definition.comment.html" + } + }, + "end": "-->", + "name": "comment.block.html", + "patterns": [ + { + "match": "\\G-?>", + "name": "invalid.illegal.characters-not-allowed-here.html" + }, + { + "match": "<!--(?!>)|<!-(?=-->)", + "name": "invalid.illegal.characters-not-allowed-here.html" + }, + { + "match": "--!>", + "name": "invalid.illegal.characters-not-allowed-here.html" + } + ] + }, + "core-minus-invalid": { + "comment": "This should be the root pattern array includes minus #tags-invalid", + "patterns": [ + { + "include": "#xml-processing" + }, + { + "include": "#comment" + }, + { + "include": "#doctype" + }, + { + "include": "#cdata" + }, + { + "include": "#tags-valid" + }, + { + "include": "#entities" + } + ] + }, + "doctype": { + "begin": "<!(?=(?i:DOCTYPE\\s))", + "beginCaptures": { + "0": { + "name": "punctuation.definition.tag.begin.html" + } + }, + "end": ">", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.metadata.doctype.html", + "patterns": [ + { + "match": "\\G(?i:DOCTYPE)", + "name": "entity.name.tag.html" + }, + { + "begin": "\"", + "end": "\"", + "name": "string.quoted.double.html" + }, + { + "match": "[^\\s>]+", + "name": "entity.other.attribute-name.html" + } + ] + }, + "entities": { + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.entity.html" + }, + "912": { + "name": "punctuation.definition.entity.html" + } + }, + "comment": "Yes this is a bit ridiculous, there are quite a lot of these", + "match": "(?x)\n\t\t\t\t\t\t(&)\t(?=[a-zA-Z])\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t(a(s(ymp(eq)?|cr|t)|n(d(slope|d|v|and)?|g(s(t|ph)|zarr|e|le|rt(vb(d)?)?|msd(a(h|c|d|e|f|a|g|b))?)?)|c(y|irc|d|ute|E)?|tilde|o(pf|gon)|uml|p(id|os|prox(eq)?|e|E|acir)?|elig|f(r)?|w(conint|int)|l(pha|e(ph|fsym))|acute|ring|grave|m(p|a(cr|lg))|breve)|A(s(sign|cr)|nd|MP|c(y|irc)|tilde|o(pf|gon)|uml|pplyFunction|fr|Elig|lpha|acute|ring|grave|macr|breve))\n\t\t\t\t\t\t | (B(scr|cy|opf|umpeq|e(cause|ta|rnoullis)|fr|a(ckslash|r(v|wed))|reve)|b(s(cr|im(e)?|ol(hsub|b)?|emi)|n(ot|e(quiv)?)|c(y|ong)|ig(s(tar|qcup)|c(irc|up|ap)|triangle(down|up)|o(times|dot|plus)|uplus|vee|wedge)|o(t(tom)?|pf|wtie|x(h(d|u|D|U)?|times|H(d|u|D|U)?|d(R|l|r|L)|u(R|l|r|L)|plus|D(R|l|r|L)|v(R|h|H|l|r|L)?|U(R|l|r|L)|V(R|h|H|l|r|L)?|minus|box))|Not|dquo|u(ll(et)?|mp(e(q)?|E)?)|prime|e(caus(e)?|t(h|ween|a)|psi|rnou|mptyv)|karow|fr|l(ock|k(1(2|4)|34)|a(nk|ck(square|triangle(down|left|right)?|lozenge)))|a(ck(sim(eq)?|cong|prime|epsilon)|r(vee|wed(ge)?))|r(eve|vbar)|brk(tbrk)?))\n\t\t\t\t\t\t | (c(s(cr|u(p(e)?|b(e)?))|h(cy|i|eck(mark)?)|ylcty|c(irc|ups(sm)?|edil|a(ps|ron))|tdot|ir(scir|c(eq|le(d(R|circ|S|dash|ast)|arrow(left|right)))?|e|fnint|E|mid)?|o(n(int|g(dot)?)|p(y(sr)?|f|rod)|lon(e(q)?)?|m(p(fn|le(xes|ment))?|ma(t)?))|dot|u(darr(l|r)|p(s|c(up|ap)|or|dot|brcap)?|e(sc|pr)|vee|wed|larr(p)?|r(vearrow(left|right)|ly(eq(succ|prec)|vee|wedge)|arr(m)?|ren))|e(nt(erdot)?|dil|mptyv)|fr|w(conint|int)|lubs(uit)?|a(cute|p(s|c(up|ap)|dot|and|brcup)?|r(on|et))|r(oss|arr))|C(scr|hi|c(irc|onint|edil|aron)|ircle(Minus|Times|Dot|Plus)|Hcy|o(n(tourIntegral|int|gruent)|unterClockwiseContourIntegral|p(f|roduct)|lon(e)?)|dot|up(Cap)?|OPY|e(nterDot|dilla)|fr|lo(seCurly(DoubleQuote|Quote)|ckwiseContourIntegral)|a(yleys|cute|p(italDifferentialD)?)|ross))\n\t\t\t\t\t\t | (d(s(c(y|r)|trok|ol)|har(l|r)|c(y|aron)|t(dot|ri(f)?)|i(sin|e|v(ide(ontimes)?|onx)?|am(s|ond(suit)?)?|gamma)|Har|z(cy|igrarr)|o(t(square|plus|eq(dot)?|minus)?|ublebarwedge|pf|wn(harpoon(left|right)|downarrows|arrow)|llar)|d(otseq|a(rr|gger))?|u(har|arr)|jcy|e(lta|g|mptyv)|f(isht|r)|wangle|lc(orn|rop)|a(sh(v)?|leth|rr|gger)|r(c(orn|rop)|bkarow)|b(karow|lac)|Arr)|D(s(cr|trok)|c(y|aron)|Scy|i(fferentialD|a(critical(Grave|Tilde|Do(t|ubleAcute)|Acute)|mond))|o(t(Dot|Equal)?|uble(Right(Tee|Arrow)|ContourIntegral|Do(t|wnArrow)|Up(DownArrow|Arrow)|VerticalBar|L(ong(RightArrow|Left(RightArrow|Arrow))|eft(RightArrow|Tee|Arrow)))|pf|wn(Right(TeeVector|Vector(Bar)?)|Breve|Tee(Arrow)?|arrow|Left(RightVector|TeeVector|Vector(Bar)?)|Arrow(Bar|UpArrow)?))|Zcy|el(ta)?|D(otrahd)?|Jcy|fr|a(shv|rr|gger)))\n\t\t\t\t\t\t | (e(s(cr|im|dot)|n(sp|g)|c(y|ir(c)?|olon|aron)|t(h|a)|o(pf|gon)|dot|u(ro|ml)|p(si(v|lon)?|lus|ar(sl)?)|e|D(ot|Dot)|q(s(im|lant(less|gtr))|c(irc|olon)|u(iv(DD)?|est|als)|vparsl)|f(Dot|r)|l(s(dot)?|inters|l)?|a(ster|cute)|r(Dot|arr)|g(s(dot)?|rave)?|x(cl|ist|p(onentiale|ectation))|m(sp(1(3|4))?|pty(set|v)?|acr))|E(s(cr|im)|c(y|irc|aron)|ta|o(pf|gon)|NG|dot|uml|TH|psilon|qu(ilibrium|al(Tilde)?)|fr|lement|acute|grave|x(ists|ponentialE)|m(pty(SmallSquare|VerySmallSquare)|acr)))\n\t\t\t\t\t\t | (f(scr|nof|cy|ilig|o(pf|r(k(v)?|all))|jlig|partint|emale|f(ilig|l(ig|lig)|r)|l(tns|lig|at)|allingdotseq|r(own|a(sl|c(1(2|8|3|4|5|6)|78|2(3|5)|3(8|4|5)|45|5(8|6)))))|F(scr|cy|illed(SmallSquare|VerySmallSquare)|o(uriertrf|pf|rAll)|fr))\n\t\t\t\t\t\t | (G(scr|c(y|irc|edil)|t|opf|dot|T|Jcy|fr|amma(d)?|reater(Greater|SlantEqual|Tilde|Equal(Less)?|FullEqual|Less)|g|breve)|g(s(cr|im(e|l)?)|n(sim|e(q(q)?)?|E|ap(prox)?)|c(y|irc)|t(c(c|ir)|dot|quest|lPar|r(sim|dot|eq(qless|less)|less|a(pprox|rr)))?|imel|opf|dot|jcy|e(s(cc|dot(o(l)?)?|l(es)?)?|q(slant|q)?|l)?|v(nE|ertneqq)|fr|E(l)?|l(j|E|a)?|a(cute|p|mma(d)?)|rave|g(g)?|breve))\n\t\t\t\t\t\t | (h(s(cr|trok|lash)|y(phen|bull)|circ|o(ok(leftarrow|rightarrow)|pf|arr|rbar|mtht)|e(llip|arts(uit)?|rcon)|ks(earow|warow)|fr|a(irsp|lf|r(dcy|r(cir|w)?)|milt)|bar|Arr)|H(s(cr|trok)|circ|ilbertSpace|o(pf|rizontalLine)|ump(DownHump|Equal)|fr|a(cek|t)|ARDcy))\n\t\t\t\t\t\t | (i(s(cr|in(s(v)?|dot|v|E)?)|n(care|t(cal|prod|e(rcal|gers)|larhk)?|odot|fin(tie)?)?|c(y|irc)?|t(ilde)?|i(nfin|i(nt|int)|ota)?|o(cy|ta|pf|gon)|u(kcy|ml)|jlig|prod|e(cy|xcl)|quest|f(f|r)|acute|grave|m(of|ped|a(cr|th|g(part|e|line))))|I(scr|n(t(e(rsection|gral))?|visible(Comma|Times))|c(y|irc)|tilde|o(ta|pf|gon)|dot|u(kcy|ml)|Ocy|Jlig|fr|Ecy|acute|grave|m(plies|a(cr|ginaryI))?))\n\t\t\t\t\t\t | (j(s(cr|ercy)|c(y|irc)|opf|ukcy|fr|math)|J(s(cr|ercy)|c(y|irc)|opf|ukcy|fr))\n\t\t\t\t\t\t | (k(scr|hcy|c(y|edil)|opf|jcy|fr|appa(v)?|green)|K(scr|c(y|edil)|Hcy|opf|Jcy|fr|appa))\n\t\t\t\t\t\t | (l(s(h|cr|trok|im(e|g)?|q(uo(r)?|b)|aquo)|h(ar(d|u(l)?)|blk)|n(sim|e(q(q)?)?|E|ap(prox)?)|c(y|ub|e(il|dil)|aron)|Barr|t(hree|c(c|ir)|imes|dot|quest|larr|r(i(e|f)?|Par))?|Har|o(ng(left(arrow|rightarrow)|rightarrow|mapsto)|times|z(enge|f)?|oparrow(left|right)|p(f|lus|ar)|w(ast|bar)|a(ng|rr)|brk)|d(sh|ca|quo(r)?|r(dhar|ushar))|ur(dshar|uhar)|jcy|par(lt)?|e(s(s(sim|dot|eq(qgtr|gtr)|approx|gtr)|cc|dot(o(r)?)?|g(es)?)?|q(slant|q)?|ft(harpoon(down|up)|threetimes|leftarrows|arrow(tail)?|right(squigarrow|harpoons|arrow(s)?))|g)?|v(nE|ertneqq)|f(isht|loor|r)|E(g)?|l(hard|corner|tri|arr)?|a(ng(d|le)?|cute|t(e(s)?|ail)?|p|emptyv|quo|rr(sim|hk|tl|pl|fs|lp|b(fs)?)?|gran|mbda)|r(har(d)?|corner|tri|arr|m)|g(E)?|m(idot|oust(ache)?)|b(arr|r(k(sl(d|u)|e)|ac(e|k))|brk)|A(tail|arr|rr))|L(s(h|cr|trok)|c(y|edil|aron)|t|o(ng(RightArrow|left(arrow|rightarrow)|rightarrow|Left(RightArrow|Arrow))|pf|wer(RightArrow|LeftArrow))|T|e(ss(Greater|SlantEqual|Tilde|EqualGreater|FullEqual|Less)|ft(Right(Vector|Arrow)|Ceiling|T(ee(Vector|Arrow)?|riangle(Bar|Equal)?)|Do(ubleBracket|wn(TeeVector|Vector(Bar)?))|Up(TeeVector|DownVector|Vector(Bar)?)|Vector(Bar)?|arrow|rightarrow|Floor|A(ngleBracket|rrow(RightArrow|Bar)?)))|Jcy|fr|l(eftarrow)?|a(ng|cute|placetrf|rr|mbda)|midot))\n\t\t\t\t\t\t | (M(scr|cy|inusPlus|opf|u|e(diumSpace|llintrf)|fr|ap)|m(s(cr|tpos)|ho|nplus|c(y|omma)|i(nus(d(u)?|b)?|cro|d(cir|dot|ast)?)|o(dels|pf)|dash|u(ltimap|map)?|p|easuredangle|DDot|fr|l(cp|dr)|a(cr|p(sto(down|up|left)?)?|l(t(ese)?|e)|rker)))\n\t\t\t\t\t\t | (n(s(hort(parallel|mid)|c(cue|e|r)?|im(e(q)?)?|u(cc(eq)?|p(set(eq(q)?)?|e|E)?|b(set(eq(q)?)?|e|E)?)|par|qsu(pe|be)|mid)|Rightarrow|h(par|arr|Arr)|G(t(v)?|g)|c(y|ong(dot)?|up|edil|a(p|ron))|t(ilde|lg|riangle(left(eq)?|right(eq)?)|gl)|i(s(d)?|v)?|o(t(ni(v(c|a|b))?|in(dot|v(c|a|b)|E)?)?|pf)|dash|u(m(sp|ero)?)?|jcy|p(olint|ar(sl|t|allel)?|r(cue|e(c(eq)?)?)?)|e(s(im|ear)|dot|quiv|ar(hk|r(ow)?)|xist(s)?|Arr)?|v(sim|infin|Harr|dash|Dash|l(t(rie)?|e|Arr)|ap|r(trie|Arr)|g(t|e))|fr|w(near|ar(hk|r(ow)?)|Arr)|V(dash|Dash)|l(sim|t(ri(e)?)?|dr|e(s(s)?|q(slant|q)?|ft(arrow|rightarrow))?|E|arr|Arr)|a(ng|cute|tur(al(s)?)?|p(id|os|prox|E)?|bla)|r(tri(e)?|ightarrow|arr(c|w)?|Arr)|g(sim|t(r)?|e(s|q(slant|q)?)?|E)|mid|L(t(v)?|eft(arrow|rightarrow)|l)|b(sp|ump(e)?))|N(scr|c(y|edil|aron)|tilde|o(nBreakingSpace|Break|t(R(ightTriangle(Bar|Equal)?|everseElement)|Greater(Greater|SlantEqual|Tilde|Equal|FullEqual|Less)?|S(u(cceeds(SlantEqual|Tilde|Equal)?|perset(Equal)?|bset(Equal)?)|quareSu(perset(Equal)?|bset(Equal)?))|Hump(DownHump|Equal)|Nested(GreaterGreater|LessLess)|C(ongruent|upCap)|Tilde(Tilde|Equal|FullEqual)?|DoubleVerticalBar|Precedes(SlantEqual|Equal)?|E(qual(Tilde)?|lement|xists)|VerticalBar|Le(ss(Greater|SlantEqual|Tilde|Equal|Less)?|ftTriangle(Bar|Equal)?))?|pf)|u|e(sted(GreaterGreater|LessLess)|wLine|gative(MediumSpace|Thi(nSpace|ckSpace)|VeryThinSpace))|Jcy|fr|acute))\n\t\t\t\t\t\t | (o(s(cr|ol|lash)|h(m|bar)|c(y|ir(c)?)|ti(lde|mes(as)?)|S|int|opf|d(sold|iv|ot|ash|blac)|uml|p(erp|lus|ar)|elig|vbar|f(cir|r)|l(c(ir|ross)|t|ine|arr)|a(st|cute)|r(slope|igof|or|d(er(of)?|f|m)?|v|arr)?|g(t|on|rave)|m(i(nus|cron|d)|ega|acr))|O(s(cr|lash)|c(y|irc)|ti(lde|mes)|opf|dblac|uml|penCurly(DoubleQuote|Quote)|ver(B(ar|rac(e|ket))|Parenthesis)|fr|Elig|acute|r|grave|m(icron|ega|acr)))\n\t\t\t\t\t\t | (p(s(cr|i)|h(i(v)?|one|mmat)|cy|i(tchfork|v)?|o(intint|und|pf)|uncsp|er(cnt|tenk|iod|p|mil)|fr|l(us(sim|cir|two|d(o|u)|e|acir|mn|b)?|an(ck(h)?|kv))|ar(s(im|l)|t|a(llel)?)?|r(sim|n(sim|E|ap)|cue|ime(s)?|o(d|p(to)?|f(surf|line|alar))|urel|e(c(sim|n(sim|eqq|approx)|curlyeq|eq|approx)?)?|E|ap)?|m)|P(s(cr|i)|hi|cy|i|o(incareplane|pf)|fr|lusMinus|artialD|r(ime|o(duct|portion(al)?)|ecedes(SlantEqual|Tilde|Equal)?)?))\n\t\t\t\t\t\t | (q(scr|int|opf|u(ot|est(eq)?|at(int|ernions))|prime|fr)|Q(scr|opf|UOT|fr))\n\t\t\t\t\t\t | (R(s(h|cr)|ho|c(y|edil|aron)|Barr|ight(Ceiling|T(ee(Vector|Arrow)?|riangle(Bar|Equal)?)|Do(ubleBracket|wn(TeeVector|Vector(Bar)?))|Up(TeeVector|DownVector|Vector(Bar)?)|Vector(Bar)?|arrow|Floor|A(ngleBracket|rrow(Bar|LeftArrow)?))|o(undImplies|pf)|uleDelayed|e(verse(UpEquilibrium|E(quilibrium|lement)))?|fr|EG|a(ng|cute|rr(tl)?)|rightarrow)|r(s(h|cr|q(uo(r)?|b)|aquo)|h(o(v)?|ar(d|u(l)?))|nmid|c(y|ub|e(il|dil)|aron)|Barr|t(hree|imes|ri(e|f|ltri)?)|i(singdotseq|ng|ght(squigarrow|harpoon(down|up)|threetimes|left(harpoons|arrows)|arrow(tail)?|rightarrows))|Har|o(times|p(f|lus|ar)|a(ng|rr)|brk)|d(sh|ca|quo(r)?|ldhar)|uluhar|p(polint|ar(gt)?)|e(ct|al(s|ine|part)?|g)|f(isht|loor|r)|l(har|arr|m)|a(ng(d|e|le)?|c(ute|e)|t(io(nals)?|ail)|dic|emptyv|quo|rr(sim|hk|c|tl|pl|fs|w|lp|ap|b(fs)?)?)|rarr|x|moust(ache)?|b(arr|r(k(sl(d|u)|e)|ac(e|k))|brk)|A(tail|arr|rr)))\n\t\t\t\t\t\t | (s(s(cr|tarf|etmn|mile)|h(y|c(hcy|y)|ort(parallel|mid)|arp)|c(sim|y|n(sim|E|ap)|cue|irc|polint|e(dil)?|E|a(p|ron))?|t(ar(f)?|r(ns|aight(phi|epsilon)))|i(gma(v|f)?|m(ne|dot|plus|e(q)?|l(E)?|rarr|g(E)?)?)|zlig|o(pf|ftcy|l(b(ar)?)?)|dot(e|b)?|u(ng|cc(sim|n(sim|eqq|approx)|curlyeq|eq|approx)?|p(s(im|u(p|b)|et(neq(q)?|eq(q)?)?)|hs(ol|ub)|1|n(e|E)|2|d(sub|ot)|3|plus|e(dot)?|E|larr|mult)?|m|b(s(im|u(p|b)|et(neq(q)?|eq(q)?)?)|n(e|E)|dot|plus|e(dot)?|E|rarr|mult)?)|pa(des(uit)?|r)|e(swar|ct|tm(n|inus)|ar(hk|r(ow)?)|xt|mi|Arr)|q(su(p(set(eq)?|e)?|b(set(eq)?|e)?)|c(up(s)?|ap(s)?)|u(f|ar(e|f))?)|fr(own)?|w(nwar|ar(hk|r(ow)?)|Arr)|larr|acute|rarr|m(t(e(s)?)?|i(d|le)|eparsl|a(shp|llsetminus))|bquo)|S(scr|hort(RightArrow|DownArrow|UpArrow|LeftArrow)|c(y|irc|edil|aron)?|tar|igma|H(cy|CHcy)|opf|u(c(hThat|ceeds(SlantEqual|Tilde|Equal)?)|p(set|erset(Equal)?)?|m|b(set(Equal)?)?)|OFTcy|q(uare(Su(perset(Equal)?|bset(Equal)?)|Intersection|Union)?|rt)|fr|acute|mallCircle))\n\t\t\t\t\t\t | (t(s(hcy|c(y|r)|trok)|h(i(nsp|ck(sim|approx))|orn|e(ta(sym|v)?|re(4|fore))|k(sim|ap))|c(y|edil|aron)|i(nt|lde|mes(d|b(ar)?)?)|o(sa|p(cir|f(ork)?|bot)?|ea)|dot|prime|elrec|fr|w(ixt|ohead(leftarrow|rightarrow))|a(u|rget)|r(i(sb|time|dot|plus|e|angle(down|q|left(eq)?|right(eq)?)?|minus)|pezium|ade)|brk)|T(s(cr|trok)|RADE|h(i(nSpace|ckSpace)|e(ta|refore))|c(y|edil|aron)|S(cy|Hcy)|ilde(Tilde|Equal|FullEqual)?|HORN|opf|fr|a(u|b)|ripleDot))\n\t\t\t\t\t\t | (u(scr|h(ar(l|r)|blk)|c(y|irc)|t(ilde|dot|ri(f)?)|Har|o(pf|gon)|d(har|arr|blac)|u(arr|ml)|p(si(h|lon)?|harpoon(left|right)|downarrow|uparrows|lus|arrow)|f(isht|r)|wangle|l(c(orn(er)?|rop)|tri)|a(cute|rr)|r(c(orn(er)?|rop)|tri|ing)|grave|m(l|acr)|br(cy|eve)|Arr)|U(scr|n(ion(Plus)?|der(B(ar|rac(e|ket))|Parenthesis))|c(y|irc)|tilde|o(pf|gon)|dblac|uml|p(si(lon)?|downarrow|Tee(Arrow)?|per(RightArrow|LeftArrow)|DownArrow|Equilibrium|arrow|Arrow(Bar|DownArrow)?)|fr|a(cute|rr(ocir)?)|ring|grave|macr|br(cy|eve)))\n\t\t\t\t\t\t | (v(s(cr|u(pn(e|E)|bn(e|E)))|nsu(p|b)|cy|Bar(v)?|zigzag|opf|dash|prop|e(e(eq|bar)?|llip|r(t|bar))|Dash|fr|ltri|a(ngrt|r(s(igma|u(psetneq(q)?|bsetneq(q)?))|nothing|t(heta|riangle(left|right))|p(hi|i|ropto)|epsilon|kappa|r(ho)?))|rtri|Arr)|V(scr|cy|opf|dash(l)?|e(e|r(yThinSpace|t(ical(Bar|Separator|Tilde|Line))?|bar))|Dash|vdash|fr|bar))\n\t\t\t\t\t\t | (w(scr|circ|opf|p|e(ierp|d(ge(q)?|bar))|fr|r(eath)?)|W(scr|circ|opf|edge|fr))\n\t\t\t\t\t\t | (X(scr|i|opf|fr)|x(s(cr|qcup)|h(arr|Arr)|nis|c(irc|up|ap)|i|o(time|dot|p(f|lus))|dtri|u(tri|plus)|vee|fr|wedge|l(arr|Arr)|r(arr|Arr)|map))\n\t\t\t\t\t\t | (y(scr|c(y|irc)|icy|opf|u(cy|ml)|en|fr|ac(y|ute))|Y(scr|c(y|irc)|opf|uml|Icy|Ucy|fr|acute|Acy))\n\t\t\t\t\t\t | (z(scr|hcy|c(y|aron)|igrarr|opf|dot|e(ta|etrf)|fr|w(nj|j)|acute)|Z(scr|c(y|aron)|Hcy|opf|dot|e(ta|roWidthSpace)|fr|acute))\n\t\t\t\t\t\t)\n\t\t\t\t\t\t(;)\n\t\t\t\t\t", + "name": "constant.character.entity.named.$2.html" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.entity.html" + }, + "3": { + "name": "punctuation.definition.entity.html" + } + }, + "match": "(&)#[0-9]+(;)", + "name": "constant.character.entity.numeric.decimal.html" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.entity.html" + }, + "3": { + "name": "punctuation.definition.entity.html" + } + }, + "match": "(&)#[xX][0-9a-fA-F]+(;)", + "name": "constant.character.entity.numeric.hexadecimal.html" + }, + { + "match": "&(?=[a-zA-Z0-9]+;)", + "name": "invalid.illegal.ambiguous-ampersand.html" + } + ] + }, + "math": { + "patterns": [ + { + "begin": "(?i)(<)(math)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?", + "beginCaptures": { + "0": { + "name": "meta.tag.structure.$2.start.html" + }, + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + }, + "3": { + "patterns": [ + { + "include": "#attribute" + } + ] + }, + "5": { + "name": "punctuation.definition.tag.end.html" + } + }, + "end": "(?i)(</)(\\2)\\s*(>)", + "endCaptures": { + "0": { + "name": "meta.tag.structure.$2.end.html" + }, + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + }, + "3": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.element.structure.$2.html", + "patterns": [ + { + "begin": "(?<!>)\\G", + "end": ">", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.structure.start.html", + "patterns": [ + { + "include": "#attribute" + } + ] + }, + { + "include": "#tags" + } + ] + } + ], + "repository": { + "attribute": { + "patterns": [ + { + "begin": "(s(hift|ymmetric|cript(sizemultiplier|level|minsize)|t(ackalign|retchy)|ide|u(pscriptshift|bscriptshift)|e(parator(s)?|lection)|rc)|h(eight|ref)|n(otation|umalign)|c(haralign|olumn(spa(n|cing)|width|lines|align)|lose|rossout)|i(n(dent(shift(first|last)?|target|align(first|last)?)|fixlinebreakstyle)|d)|o(pen|verflow)|d(i(splay(style)?|r)|e(nomalign|cimalpoint|pth))|position|e(dge|qual(columns|rows))|voffset|f(orm|ence|rame(spacing)?)|width|l(space|ine(thickness|leading|break(style|multchar)?)|o(ngdivstyle|cation)|ength|quote|argeop)|a(c(cent(under)?|tiontype)|l(t(text|img(-(height|valign|width))?)|ign(mentscope)?))|r(space|ow(spa(n|cing)|lines|align)|quote)|groupalign|x(link:href|mlns)|m(in(size|labelspacing)|ovablelimits|a(th(size|color|variant|background)|xsize))|bevelled)(?![\\w:-])", + "beginCaptures": { + "0": { + "name": "entity.other.attribute-name.html" + } + }, + "end": "(?=\\s*+[^=\\s])", + "name": "meta.attribute.$1.html", + "patterns": [ + { + "include": "#attribute-interior" + } + ] + }, + { + "begin": "([^\\x{0020}\"'<>/=\\x{0000}-\\x{001F}\\x{007F}-\\x{009F}\\x{FDD0}-\\x{FDEF}\\x{FFFE}\\x{FFFF}\\x{1FFFE}\\x{1FFFF}\\x{2FFFE}\\x{2FFFF}\\x{3FFFE}\\x{3FFFF}\\x{4FFFE}\\x{4FFFF}\\x{5FFFE}\\x{5FFFF}\\x{6FFFE}\\x{6FFFF}\\x{7FFFE}\\x{7FFFF}\\x{8FFFE}\\x{8FFFF}\\x{9FFFE}\\x{9FFFF}\\x{AFFFE}\\x{AFFFF}\\x{BFFFE}\\x{BFFFF}\\x{CFFFE}\\x{CFFFF}\\x{DFFFE}\\x{DFFFF}\\x{EFFFE}\\x{EFFFF}\\x{FFFFE}\\x{FFFFF}\\x{10FFFE}\\x{10FFFF}]+)", + "beginCaptures": { + "0": { + "name": "entity.other.attribute-name.html" + } + }, + "comment": "Anything else that is valid", + "end": "(?=\\s*+[^=\\s])", + "name": "meta.attribute.unrecognized.$1.html", + "patterns": [ + { + "include": "#attribute-interior" + } + ] + }, + { + "match": "[^\\s>]+", + "name": "invalid.illegal.character-not-allowed-here.html" + } + ] + }, + "tags": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#cdata" + }, + { + "captures": { + "0": { + "name": "meta.tag.structure.math.$2.void.html" + }, + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + }, + "3": { + "patterns": [ + { + "include": "#attribute" + } + ] + }, + "5": { + "name": "punctuation.definition.tag.end.html" + } + }, + "match": "(?i)(<)(annotation|annotation-xml|semantics|menclose|merror|mfenced|mfrac|mpadded|mphantom|mroot|mrow|msqrt|mstyle|mmultiscripts|mover|mprescripts|msub|msubsup|msup|munder|munderover|none|mlabeledtr|mtable|mtd|mtr|mlongdiv|mscarries|mscarry|msgroup|msline|msrow|mstack|maction)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>))", + "name": "meta.element.structure.math.$2.html" + }, + { + "begin": "(?i)(<)(annotation|annotation-xml|semantics|menclose|merror|mfenced|mfrac|mpadded|mphantom|mroot|mrow|msqrt|mstyle|mmultiscripts|mover|mprescripts|msub|msubsup|msup|munder|munderover|none|mlabeledtr|mtable|mtd|mtr|mlongdiv|mscarries|mscarry|msgroup|msline|msrow|mstack|maction)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?", + "beginCaptures": { + "0": { + "name": "meta.tag.structure.math.$2.start.html" + }, + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + }, + "3": { + "patterns": [ + { + "include": "#attribute" + } + ] + }, + "5": { + "name": "punctuation.definition.tag.end.html" + } + }, + "end": "(?i)(</)(\\2)\\s*(>)|(/>)|(?=</\\w+)", + "endCaptures": { + "0": { + "name": "meta.tag.structure.math.$2.end.html" + }, + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + }, + "3": { + "name": "punctuation.definition.tag.end.html" + }, + "4": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.element.structure.math.$2.html", + "patterns": [ + { + "begin": "(?<!>)\\G", + "end": "(?=/>)|>", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.structure.start.html", + "patterns": [ + { + "include": "#attribute" + } + ] + }, + { + "include": "#tags" + } + ] + }, + { + "captures": { + "0": { + "name": "meta.tag.inline.math.$2.void.html" + }, + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + }, + "3": { + "patterns": [ + { + "include": "#attribute" + } + ] + }, + "5": { + "name": "punctuation.definition.tag.end.html" + } + }, + "match": "(?i)(<)(mi|mn|mo|ms|mspace|mtext|maligngroup|malignmark)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>))", + "name": "meta.element.inline.math.$2.html" + }, + { + "begin": "(?i)(<)(mi|mn|mo|ms|mspace|mtext|maligngroup|malignmark)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?", + "beginCaptures": { + "0": { + "name": "meta.tag.inline.math.$2.start.html" + }, + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + }, + "3": { + "patterns": [ + { + "include": "#attribute" + } + ] + }, + "5": { + "name": "punctuation.definition.tag.end.html" + } + }, + "end": "(?i)(</)(\\2)\\s*(>)|(/>)|(?=</\\w+)", + "endCaptures": { + "0": { + "name": "meta.tag.inline.math.$2.end.html" + }, + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + }, + "3": { + "name": "punctuation.definition.tag.end.html" + }, + "4": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.element.inline.math.$2.html", + "patterns": [ + { + "begin": "(?<!>)\\G", + "end": "(?=/>)|>", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.inline.start.html", + "patterns": [ + { + "include": "#attribute" + } + ] + }, + { + "include": "#tags" + } + ] + }, + { + "captures": { + "0": { + "name": "meta.tag.object.math.$2.void.html" + }, + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + }, + "3": { + "patterns": [ + { + "include": "#attribute" + } + ] + }, + "5": { + "name": "punctuation.definition.tag.end.html" + } + }, + "match": "(?i)(<)(mglyph)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>))", + "name": "meta.element.object.math.$2.html" + }, + { + "begin": "(?i)(<)(mglyph)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?", + "beginCaptures": { + "0": { + "name": "meta.tag.object.math.$2.start.html" + }, + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + }, + "3": { + "patterns": [ + { + "include": "#attribute" + } + ] + }, + "5": { + "name": "punctuation.definition.tag.end.html" + } + }, + "end": "(?i)(</)(\\2)\\s*(>)|(/>)|(?=</\\w+)", + "endCaptures": { + "0": { + "name": "meta.tag.object.math.$2.end.html" + }, + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + }, + "3": { + "name": "punctuation.definition.tag.end.html" + }, + "4": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.element.object.math.$2.html", + "patterns": [ + { + "begin": "(?<!>)\\G", + "end": "(?=/>)|>", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.object.start.html", + "patterns": [ + { + "include": "#attribute" + } + ] + }, + { + "include": "#tags" + } + ] + }, + { + "captures": { + "0": { + "name": "meta.tag.other.invalid.void.html" + }, + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + }, + "3": { + "name": "invalid.illegal.unrecognized-tag.html" + }, + "4": { + "patterns": [ + { + "include": "#attribute" + } + ] + }, + "6": { + "name": "punctuation.definition.tag.end.html" + } + }, + "match": "(?i)(<)(([\\w:]+))(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>))", + "name": "meta.element.other.invalid.html" + }, + { + "begin": "(?i)(<)((\\w[^\\s>]*))(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?", + "beginCaptures": { + "0": { + "name": "meta.tag.other.invalid.start.html" + }, + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + }, + "3": { + "name": "invalid.illegal.unrecognized-tag.html" + }, + "4": { + "patterns": [ + { + "include": "#attribute" + } + ] + }, + "6": { + "name": "punctuation.definition.tag.end.html" + } + }, + "end": "(?i)(</)((\\2))\\s*(>)|(/>)|(?=</\\w+)", + "endCaptures": { + "0": { + "name": "meta.tag.other.invalid.end.html" + }, + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + }, + "3": { + "name": "invalid.illegal.unrecognized-tag.html" + }, + "4": { + "name": "punctuation.definition.tag.end.html" + }, + "5": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.element.other.invalid.html", + "patterns": [ + { + "begin": "(?<!>)\\G", + "end": "(?=/>)|>", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.other.invalid.start.html", + "patterns": [ + { + "include": "#attribute" + } + ] + }, + { + "include": "#tags" + } + ] + }, + { + "include": "#tags-invalid" + } + ] + } + } + }, + "svg": { + "patterns": [ + { + "begin": "(?i)(<)(svg)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?", + "beginCaptures": { + "0": { + "name": "meta.tag.structure.$2.start.html" + }, + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + }, + "3": { + "patterns": [ + { + "include": "#attribute" + } + ] + }, + "5": { + "name": "punctuation.definition.tag.end.html" + } + }, + "end": "(?i)(</)(\\2)\\s*(>)", + "endCaptures": { + "0": { + "name": "meta.tag.structure.$2.end.html" + }, + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + }, + "3": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.element.structure.$2.html", + "patterns": [ + { + "begin": "(?<!>)\\G", + "end": ">", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.structure.start.html", + "patterns": [ + { + "include": "#attribute" + } + ] + }, + { + "include": "#tags" + } + ] + } + ], + "repository": { + "attribute": { + "patterns": [ + { + "begin": "(s(hape-rendering|ystemLanguage|cale|t(yle|itchTiles|op-(color|opacity)|dDeviation|em(h|v)|artOffset|r(i(ng|kethrough-(thickness|position))|oke(-(opacity|dash(offset|array)|width|line(cap|join)|miterlimit))?))|urfaceScale|p(e(cular(Constant|Exponent)|ed)|acing|readMethod)|eed|lope)|h(oriz-(origin-x|adv-x)|eight|anging|ref(lang)?)|y(1|2|ChannelSelector)?|n(umOctaves|ame)|c(y|o(ntentS(criptType|tyleType)|lor(-(interpolation(-filters)?|profile|rendering))?)|ursor|l(ip(-(path|rule)|PathUnits)?|ass)|a(p-height|lcMode)|x)|t(ype|o|ext(-(decoration|anchor|rendering)|Length)|a(rget(X|Y)?|b(index|leValues))|ransform)|i(n(tercept|2)?|d(eographic)?|mage-rendering)|z(oomAndPan)?|o(p(erator|acity)|ver(flow|line-(thickness|position))|ffset|r(i(ent(ation)?|gin)|der))|d(y|i(splay|visor|ffuseConstant|rection)|ominant-baseline|ur|e(scent|celerate)|x)?|u(1|n(i(code(-(range|bidi))?|ts-per-em)|derline-(thickness|position))|2)|p(ing|oint(s(At(X|Y|Z))?|er-events)|a(nose-1|t(h(Length)?|tern(ContentUnits|Transform|Units))|int-order)|r(imitiveUnits|eserveA(spectRatio|lpha)))|e(n(d|able-background)|dgeMode|levation|x(ternalResourcesRequired|ponent))|v(i(sibility|ew(Box|Target))|-(hanging|ideographic|alphabetic|mathematical)|e(ctor-effect|r(sion|t-(origin-(y|x)|adv-y)))|alues)|k(1|2|3|e(y(Splines|Times|Points)|rn(ing|el(Matrix|UnitLength)))|4)?|f(y|il(ter(Res|Units)?|l(-(opacity|rule))?)|o(nt-(s(t(yle|retch)|ize(-adjust)?)|variant|family|weight)|rmat)|lood-(color|opacity)|r(om)?|x)|w(idth(s)?|ord-spacing|riting-mode)|l(i(ghting-color|mitingConeAngle)|ocal|e(ngthAdjust|tter-spacing)|ang)|a(scent|cc(umulate|ent-height)|ttribute(Name|Type)|zimuth|dditive|utoReverse|l(ignment-baseline|phabetic|lowReorder)|rabic-form|mplitude)|r(y|otate|e(s(tart|ult)|ndering-intent|peat(Count|Dur)|quired(Extensions|Features)|f(X|Y|errerPolicy)|l)|adius|x)?|g(1|2|lyph(Ref|-(name|orientation-(horizontal|vertical)))|radient(Transform|Units))|x(1|2|ChannelSelector|-height|link:(show|href|t(ype|itle)|a(ctuate|rcrole)|role)|ml:(space|lang|base))?|m(in|ode|e(thod|dia)|a(sk(ContentUnits|Units)?|thematical|rker(Height|-(start|end|mid)|Units|Width)|x))|b(y|ias|egin|ase(Profile|line-shift|Frequency)|box))(?![\\w:-])", + "beginCaptures": { + "0": { + "name": "entity.other.attribute-name.html" + } + }, + "end": "(?=\\s*+[^=\\s])", + "name": "meta.attribute.$1.html", + "patterns": [ + { + "include": "#attribute-interior" + } + ] + }, + { + "begin": "([^\\x{0020}\"'<>/=\\x{0000}-\\x{001F}\\x{007F}-\\x{009F}\\x{FDD0}-\\x{FDEF}\\x{FFFE}\\x{FFFF}\\x{1FFFE}\\x{1FFFF}\\x{2FFFE}\\x{2FFFF}\\x{3FFFE}\\x{3FFFF}\\x{4FFFE}\\x{4FFFF}\\x{5FFFE}\\x{5FFFF}\\x{6FFFE}\\x{6FFFF}\\x{7FFFE}\\x{7FFFF}\\x{8FFFE}\\x{8FFFF}\\x{9FFFE}\\x{9FFFF}\\x{AFFFE}\\x{AFFFF}\\x{BFFFE}\\x{BFFFF}\\x{CFFFE}\\x{CFFFF}\\x{DFFFE}\\x{DFFFF}\\x{EFFFE}\\x{EFFFF}\\x{FFFFE}\\x{FFFFF}\\x{10FFFE}\\x{10FFFF}]+)", + "beginCaptures": { + "0": { + "name": "entity.other.attribute-name.html" + } + }, + "comment": "Anything else that is valid", + "end": "(?=\\s*+[^=\\s])", + "name": "meta.attribute.unrecognized.$1.html", + "patterns": [ + { + "include": "#attribute-interior" + } + ] + }, + { + "match": "[^\\s>]+", + "name": "invalid.illegal.character-not-allowed-here.html" + } + ] + }, + "tags": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#cdata" + }, + { + "captures": { + "0": { + "name": "meta.tag.metadata.svg.$2.void.html" + }, + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + }, + "3": { + "patterns": [ + { + "include": "#attribute" + } + ] + }, + "5": { + "name": "punctuation.definition.tag.end.html" + } + }, + "match": "(?i)(<)(color-profile|desc|metadata|script|style|title)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>))", + "name": "meta.element.metadata.svg.$2.html" + }, + { + "begin": "(?i)(<)(color-profile|desc|metadata|script|style|title)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?", + "beginCaptures": { + "0": { + "name": "meta.tag.metadata.svg.$2.start.html" + }, + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + }, + "3": { + "patterns": [ + { + "include": "#attribute" + } + ] + }, + "5": { + "name": "punctuation.definition.tag.end.html" + } + }, + "end": "(?i)(</)(\\2)\\s*(>)|(/>)|(?=</\\w+)", + "endCaptures": { + "0": { + "name": "meta.tag.metadata.svg.$2.end.html" + }, + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + }, + "3": { + "name": "punctuation.definition.tag.end.html" + }, + "4": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.element.metadata.svg.$2.html", + "patterns": [ + { + "begin": "(?<!>)\\G", + "end": "(?=/>)|>", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.metadata.start.html", + "patterns": [ + { + "include": "#attribute" + } + ] + }, + { + "include": "#tags" + } + ] + }, + { + "captures": { + "0": { + "name": "meta.tag.structure.svg.$2.void.html" + }, + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + }, + "3": { + "patterns": [ + { + "include": "#attribute" + } + ] + }, + "5": { + "name": "punctuation.definition.tag.end.html" + } + }, + "match": "(?i)(<)(animateMotion|clipPath|defs|feComponentTransfer|feDiffuseLighting|feMerge|feSpecularLighting|filter|g|hatch|linearGradient|marker|mask|mesh|meshgradient|meshpatch|meshrow|pattern|radialGradient|switch|text|textPath)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>))", + "name": "meta.element.structure.svg.$2.html" + }, + { + "begin": "(?i)(<)(animateMotion|clipPath|defs|feComponentTransfer|feDiffuseLighting|feMerge|feSpecularLighting|filter|g|hatch|linearGradient|marker|mask|mesh|meshgradient|meshpatch|meshrow|pattern|radialGradient|switch|text|textPath)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?", + "beginCaptures": { + "0": { + "name": "meta.tag.structure.svg.$2.start.html" + }, + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + }, + "3": { + "patterns": [ + { + "include": "#attribute" + } + ] + }, + "5": { + "name": "punctuation.definition.tag.end.html" + } + }, + "end": "(?i)(</)(\\2)\\s*(>)|(/>)|(?=</\\w+)", + "endCaptures": { + "0": { + "name": "meta.tag.structure.svg.$2.end.html" + }, + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + }, + "3": { + "name": "punctuation.definition.tag.end.html" + }, + "4": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.element.structure.svg.$2.html", + "patterns": [ + { + "begin": "(?<!>)\\G", + "end": "(?=/>)|>", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.structure.start.html", + "patterns": [ + { + "include": "#attribute" + } + ] + }, + { + "include": "#tags" + } + ] + }, + { + "captures": { + "0": { + "name": "meta.tag.inline.svg.$2.void.html" + }, + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + }, + "3": { + "patterns": [ + { + "include": "#attribute" + } + ] + }, + "5": { + "name": "punctuation.definition.tag.end.html" + } + }, + "match": "(?i)(<)(a|animate|discard|feBlend|feColorMatrix|feComposite|feConvolveMatrix|feDisplacementMap|feDistantLight|feDropShadow|feFlood|feFuncA|feFuncB|feFuncG|feFuncR|feGaussianBlur|feMergeNode|feMorphology|feOffset|fePointLight|feSpotLight|feTile|feTurbulence|hatchPath|mpath|set|solidcolor|stop|tspan)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>))", + "name": "meta.element.inline.svg.$2.html" + }, + { + "begin": "(?i)(<)(a|animate|discard|feBlend|feColorMatrix|feComposite|feConvolveMatrix|feDisplacementMap|feDistantLight|feDropShadow|feFlood|feFuncA|feFuncB|feFuncG|feFuncR|feGaussianBlur|feMergeNode|feMorphology|feOffset|fePointLight|feSpotLight|feTile|feTurbulence|hatchPath|mpath|set|solidcolor|stop|tspan)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?", + "beginCaptures": { + "0": { + "name": "meta.tag.inline.svg.$2.start.html" + }, + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + }, + "3": { + "patterns": [ + { + "include": "#attribute" + } + ] + }, + "5": { + "name": "punctuation.definition.tag.end.html" + } + }, + "end": "(?i)(</)(\\2)\\s*(>)|(/>)|(?=</\\w+)", + "endCaptures": { + "0": { + "name": "meta.tag.inline.svg.$2.end.html" + }, + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + }, + "3": { + "name": "punctuation.definition.tag.end.html" + }, + "4": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.element.inline.svg.$2.html", + "patterns": [ + { + "begin": "(?<!>)\\G", + "end": "(?=/>)|>", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.inline.start.html", + "patterns": [ + { + "include": "#attribute" + } + ] + }, + { + "include": "#tags" + } + ] + }, + { + "captures": { + "0": { + "name": "meta.tag.object.svg.$2.void.html" + }, + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + }, + "3": { + "patterns": [ + { + "include": "#attribute" + } + ] + }, + "5": { + "name": "punctuation.definition.tag.end.html" + } + }, + "match": "(?i)(<)(circle|ellipse|feImage|foreignObject|image|line|path|polygon|polyline|rect|symbol|use|view)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>))", + "name": "meta.element.object.svg.$2.html" + }, + { + "begin": "(?i)(<)(a|circle|ellipse|feImage|foreignObject|image|line|path|polygon|polyline|rect|symbol|use|view)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?", + "beginCaptures": { + "0": { + "name": "meta.tag.object.svg.$2.start.html" + }, + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + }, + "3": { + "patterns": [ + { + "include": "#attribute" + } + ] + }, + "5": { + "name": "punctuation.definition.tag.end.html" + } + }, + "end": "(?i)(</)(\\2)\\s*(>)|(/>)|(?=</\\w+)", + "endCaptures": { + "0": { + "name": "meta.tag.object.svg.$2.end.html" + }, + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + }, + "3": { + "name": "punctuation.definition.tag.end.html" + }, + "4": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.element.object.svg.$2.html", + "patterns": [ + { + "begin": "(?<!>)\\G", + "end": "(?=/>)|>", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.object.start.html", + "patterns": [ + { + "include": "#attribute" + } + ] + }, + { + "include": "#tags" + } + ] + }, + { + "captures": { + "0": { + "name": "meta.tag.other.svg.$2.void.html" + }, + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + }, + "3": { + "name": "invalid.deprecated.html" + }, + "4": { + "patterns": [ + { + "include": "#attribute" + } + ] + }, + "6": { + "name": "punctuation.definition.tag.end.html" + } + }, + "match": "(?i)(<)((altGlyph|altGlyphDef|altGlyphItem|animateColor|animateTransform|cursor|font|font-face|font-face-format|font-face-name|font-face-src|font-face-uri|glyph|glyphRef|hkern|missing-glyph|tref|vkern))(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>))", + "name": "meta.element.other.svg.$2.html" + }, + { + "begin": "(?i)(<)((altGlyph|altGlyphDef|altGlyphItem|animateColor|animateTransform|cursor|font|font-face|font-face-format|font-face-name|font-face-src|font-face-uri|glyph|glyphRef|hkern|missing-glyph|tref|vkern))(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?", + "beginCaptures": { + "0": { + "name": "meta.tag.other.svg.$2.start.html" + }, + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + }, + "3": { + "name": "invalid.deprecated.html" + }, + "4": { + "patterns": [ + { + "include": "#attribute" + } + ] + }, + "6": { + "name": "punctuation.definition.tag.end.html" + } + }, + "end": "(?i)(</)((\\2))\\s*(>)|(/>)|(?=</\\w+)", + "endCaptures": { + "0": { + "name": "meta.tag.other.svg.$2.end.html" + }, + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + }, + "3": { + "name": "invalid.deprecated.html" + }, + "4": { + "name": "punctuation.definition.tag.end.html" + }, + "5": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.element.other.svg.$2.html", + "patterns": [ + { + "begin": "(?<!>)\\G", + "end": "(?=/>)|>", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.other.start.html", + "patterns": [ + { + "include": "#attribute" + } + ] + }, + { + "include": "#tags" + } + ] + }, + { + "captures": { + "0": { + "name": "meta.tag.other.invalid.void.html" + }, + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + }, + "3": { + "name": "invalid.illegal.unrecognized-tag.html" + }, + "4": { + "patterns": [ + { + "include": "#attribute" + } + ] + }, + "6": { + "name": "punctuation.definition.tag.end.html" + } + }, + "match": "(?i)(<)(([\\w:]+))(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>))", + "name": "meta.element.other.invalid.html" + }, + { + "begin": "(?i)(<)((\\w[^\\s>]*))(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?", + "beginCaptures": { + "0": { + "name": "meta.tag.other.invalid.start.html" + }, + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + }, + "3": { + "name": "invalid.illegal.unrecognized-tag.html" + }, + "4": { + "patterns": [ + { + "include": "#attribute" + } + ] + }, + "6": { + "name": "punctuation.definition.tag.end.html" + } + }, + "end": "(?i)(</)((\\2))\\s*(>)|(/>)|(?=</\\w+)", + "endCaptures": { + "0": { + "name": "meta.tag.other.invalid.end.html" + }, + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + }, + "3": { + "name": "invalid.illegal.unrecognized-tag.html" + }, + "4": { + "name": "punctuation.definition.tag.end.html" + }, + "5": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.element.other.invalid.html", + "patterns": [ + { + "begin": "(?<!>)\\G", + "end": "(?=/>)|>", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.other.invalid.start.html", + "patterns": [ + { + "include": "#attribute" + } + ] + }, + { + "include": "#tags" + } + ] + }, + { + "include": "#tags-invalid" + } + ] + } + } + }, + "tags-invalid": { + "patterns": [ + { + "begin": "(</?)((\\w[^\\s>]*))(?<!/)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + }, + "3": { + "name": "invalid.illegal.unrecognized-tag.html" + } + }, + "end": "((?: ?/)?>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.other.$2.html", + "patterns": [ + { + "include": "#attribute" + } + ] + } + ] + }, + "tags-valid": { + "patterns": [ + { + "begin": "(^[ \\t]+)?(?=<(?i:style)\\b(?!-))", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.embedded.leading.html" + } + }, + "end": "(?!\\G)([ \\t]*$\\n?)?", + "endCaptures": { + "1": { + "name": "punctuation.whitespace.embedded.trailing.html" + } + }, + "patterns": [ + { + "begin": "(?i)(<)(style)(?=\\s|/?>)", + "beginCaptures": { + "0": { + "name": "meta.tag.metadata.style.start.html" + }, + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + } + }, + "end": "(?i)((<)/)(style)\\s*(>)", + "endCaptures": { + "0": { + "name": "meta.tag.metadata.style.end.html" + }, + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "source.css-ignored-vscode" + }, + "3": { + "name": "entity.name.tag.html" + }, + "4": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.embedded.block.html", + "patterns": [ + { + "begin": "\\G", + "captures": { + "1": { + "name": "punctuation.definition.tag.end.html" + } + }, + "end": "(>)", + "name": "meta.tag.metadata.style.start.html", + "patterns": [ + { + "include": "#attribute" + } + ] + }, + { + "begin": "(?!\\G)", + "end": "(?=</(?i:style))", + "name": "source.css", + "patterns": [ + { + "include": "source.css" + } + ] + } + ] + } + ] + }, + { + "begin": "(^[ \\t]+)?(?=<(?i:script)\\b(?!-))", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.embedded.leading.html" + } + }, + "end": "(?!\\G)([ \\t]*$\\n?)?", + "endCaptures": { + "1": { + "name": "punctuation.whitespace.embedded.trailing.html" + } + }, + "patterns": [ + { + "begin": "(<)((?i:script))\\b", + "beginCaptures": { + "0": { + "name": "meta.tag.metadata.script.start.html" + }, + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + } + }, + "end": "(/)((?i:script))(>)", + "endCaptures": { + "0": { + "name": "meta.tag.metadata.script.end.html" + }, + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + }, + "3": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.embedded.block.html", + "patterns": [ + { + "begin": "\\G", + "end": "(?=/)", + "patterns": [ + { + "begin": "(>)", + "beginCaptures": { + "0": { + "name": "meta.tag.metadata.script.start.html" + }, + "1": { + "name": "punctuation.definition.tag.end.html" + } + }, + "end": "((<))(?=/(?i:script))", + "endCaptures": { + "0": { + "name": "meta.tag.metadata.script.end.html" + }, + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "source.js-ignored-vscode" + } + }, + "patterns": [ + { + "begin": "\\G", + "end": "(?=</(?i:script))", + "name": "source.js", + "patterns": [ + { + "begin": "(^[ \\t]+)?(?=//)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.js" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": "//", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.js" + } + }, + "end": "(?=</script)|\\n", + "name": "comment.line.double-slash.js" + } + ] + }, + { + "begin": "/\\*", + "captures": { + "0": { + "name": "punctuation.definition.comment.js" + } + }, + "end": "\\*/|(?=</script)", + "name": "comment.block.js" + }, + { + "include": "source.js" + } + ] + } + ] + }, + { + "begin": "\\G", + "end": "(?ix:\n\t\t\t\t\t\t\t\t\t\t\t\t(?=>\t\t\t\t\t\t\t\t\t\t\t# Tag without type attribute\n\t\t\t\t\t\t\t\t\t\t\t\t | type(?=[\\s=])\n\t\t\t\t\t\t\t\t\t\t\t\t \t(?!\\s*=\\s*\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t''\t\t\t\t\t\t\t\t# Empty\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t | \"\"\t\t\t\t\t\t\t\t\t# Values\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t | ('|\"|)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttext/\t\t\t\t\t\t\t# Text mime-types\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tjavascript(1\\.[0-5])?\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t | x-javascript\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t | jscript\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t | livescript\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t | (x-)?ecmascript\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t | babel\t\t\t\t\t\t# Javascript variant currently\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t\t\t\t\t\t\t\t# recognized as such\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t | application/\t\t\t\t\t# Application mime-types\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(x-)?javascript\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t | (x-)?ecmascript\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t | module\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\\s\"'>]\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t)", + "name": "meta.tag.metadata.script.start.html", + "patterns": [ + { + "include": "#attribute" + } + ] + }, + { + "begin": "(?ix:\n\t\t\t\t\t\t\t\t\t\t\t\t(?=\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype\\s*=\\s*\n\t\t\t\t\t\t\t\t\t\t\t\t\t('|\"|)\n\t\t\t\t\t\t\t\t\t\t\t\t\ttext/\n\t\t\t\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tx-handlebars\n\t\t\t\t\t\t\t\t\t\t\t\t\t | (x-(handlebars-)?|ng-)?template\n\t\t\t\t\t\t\t\t\t\t\t\t\t | html\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t[\\s\"'>]\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t)", + "end": "((<))(?=/(?i:script))", + "endCaptures": { + "0": { + "name": "meta.tag.metadata.script.end.html" + }, + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "text.html.basic" + } + }, + "patterns": [ + { + "begin": "\\G", + "end": "(>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.metadata.script.start.html", + "patterns": [ + { + "include": "#attribute" + } + ] + }, + { + "begin": "(?!\\G)", + "end": "(?=</(?i:script))", + "name": "text.html.basic", + "patterns": [ + { + "include": "text.html.basic" + } + ] + } + ] + }, + { + "begin": "(?=(?i:type))", + "end": "(<)(?=/(?i:script))", + "endCaptures": { + "0": { + "name": "meta.tag.metadata.script.end.html" + }, + "1": { + "name": "punctuation.definition.tag.begin.html" + } + }, + "patterns": [ + { + "begin": "\\G", + "end": "(>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.metadata.script.start.html", + "patterns": [ + { + "include": "#attribute" + } + ] + }, + { + "begin": "(?!\\G)", + "end": "(?=</(?i:script))", + "name": "source.unknown" + } + ] + } + ] + } + ] + } + ] + }, + { + "begin": "(?i)(<)(base|link|meta)(?=\\s|/?>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + } + }, + "end": "/?>", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.metadata.$2.void.html", + "patterns": [ + { + "include": "#attribute" + } + ] + }, + { + "begin": "(?i)(<)(noscript|title)(?=\\s|/?>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + } + }, + "end": ">", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.metadata.$2.start.html", + "patterns": [ + { + "include": "#attribute" + } + ] + }, + { + "begin": "(?i)(</)(noscript|title)(?=\\s|/?>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + } + }, + "end": ">", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.metadata.$2.end.html", + "patterns": [ + { + "include": "#attribute" + } + ] + }, + { + "begin": "(?i)(<)(col|hr|input)(?=\\s|/?>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + } + }, + "end": "/?>", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.structure.$2.void.html", + "patterns": [ + { + "include": "#attribute" + } + ] + }, + { + "begin": "(?i)(<)(address|article|aside|blockquote|body|button|caption|colgroup|datalist|dd|details|dialog|div|dl|dt|fieldset|figcaption|figure|footer|form|head|header|hgroup|html|h[1-6]|label|legend|li|main|map|menu|meter|nav|ol|optgroup|option|output|p|pre|progress|section|select|slot|summary|table|tbody|td|template|textarea|tfoot|th|thead|tr|ul)(?=\\s|/?>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + } + }, + "end": ">", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.structure.$2.start.html", + "patterns": [ + { + "include": "#attribute" + } + ] + }, + { + "begin": "(?i)(</)(address|article|aside|blockquote|body|button|caption|colgroup|datalist|dd|details|dialog|div|dl|dt|fieldset|figcaption|figure|footer|form|head|header|hgroup|html|h[1-6]|label|legend|li|main|map|menu|meter|nav|ol|optgroup|option|output|p|pre|progress|section|select|slot|summary|table|tbody|td|template|textarea|tfoot|th|thead|tr|ul)(?=\\s|/?>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + } + }, + "end": ">", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.structure.$2.end.html", + "patterns": [ + { + "include": "#attribute" + } + ] + }, + { + "begin": "(?i)(<)(area|br|wbr)(?=\\s|/?>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + } + }, + "end": "/?>", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.inline.$2.void.html", + "patterns": [ + { + "include": "#attribute" + } + ] + }, + { + "begin": "(?i)(<)(a|abbr|b|bdi|bdo|cite|code|data|del|dfn|em|i|ins|kbd|mark|q|rp|rt|ruby|s|samp|small|span|strong|sub|sup|time|u|var)(?=\\s|/?>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + } + }, + "end": ">", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.inline.$2.start.html", + "patterns": [ + { + "include": "#attribute" + } + ] + }, + { + "begin": "(?i)(</)(a|abbr|b|bdi|bdo|cite|code|data|del|dfn|em|i|ins|kbd|mark|q|rp|rt|ruby|s|samp|small|span|strong|sub|sup|time|u|var)(?=\\s|/?>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + } + }, + "end": ">", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.inline.$2.end.html", + "patterns": [ + { + "include": "#attribute" + } + ] + }, + { + "begin": "(?i)(<)(embed|img|param|source|track)(?=\\s|/?>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + } + }, + "end": "/?>", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.object.$2.void.html", + "patterns": [ + { + "include": "#attribute" + } + ] + }, + { + "begin": "(?i)(<)(audio|canvas|iframe|object|picture|video)(?=\\s|/?>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + } + }, + "end": ">", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.object.$2.start.html", + "patterns": [ + { + "include": "#attribute" + } + ] + }, + { + "begin": "(?i)(</)(audio|canvas|iframe|object|picture|video)(?=\\s|/?>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + } + }, + "end": ">", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.object.$2.end.html", + "patterns": [ + { + "include": "#attribute" + } + ] + }, + { + "begin": "(?i)(<)((basefont|isindex))(?=\\s|/?>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + }, + "3": { + "name": "invalid.deprecated.html" + } + }, + "end": "/?>", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.metadata.$2.void.html", + "patterns": [ + { + "include": "#attribute" + } + ] + }, + { + "begin": "(?i)(<)((center|frameset|noembed|noframes))(?=\\s|/?>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + }, + "3": { + "name": "invalid.deprecated.html" + } + }, + "end": ">", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.structure.$2.start.html", + "patterns": [ + { + "include": "#attribute" + } + ] + }, + { + "begin": "(?i)(</)((center|frameset|noembed|noframes))(?=\\s|/?>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + }, + "3": { + "name": "invalid.deprecated.html" + } + }, + "end": ">", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.structure.$2.end.html", + "patterns": [ + { + "include": "#attribute" + } + ] + }, + { + "begin": "(?i)(<)((acronym|big|blink|font|strike|tt|xmp))(?=\\s|/?>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + }, + "3": { + "name": "invalid.deprecated.html" + } + }, + "end": ">", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.inline.$2.start.html", + "patterns": [ + { + "include": "#attribute" + } + ] + }, + { + "begin": "(?i)(</)((acronym|big|blink|font|strike|tt|xmp))(?=\\s|/?>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + }, + "3": { + "name": "invalid.deprecated.html" + } + }, + "end": ">", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.inline.$2.end.html", + "patterns": [ + { + "include": "#attribute" + } + ] + }, + { + "begin": "(?i)(<)((frame))(?=\\s|/?>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + }, + "3": { + "name": "invalid.deprecated.html" + } + }, + "end": "/?>", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.object.$2.void.html", + "patterns": [ + { + "include": "#attribute" + } + ] + }, + { + "begin": "(?i)(<)((applet))(?=\\s|/?>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + }, + "3": { + "name": "invalid.deprecated.html" + } + }, + "end": ">", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.object.$2.start.html", + "patterns": [ + { + "include": "#attribute" + } + ] + }, + { + "begin": "(?i)(</)((applet))(?=\\s|/?>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + }, + "3": { + "name": "invalid.deprecated.html" + } + }, + "end": ">", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.object.$2.end.html", + "patterns": [ + { + "include": "#attribute" + } + ] + }, + { + "begin": "(?i)(<)((dir|keygen|listing|menuitem|plaintext|spacer))(?=\\s|/?>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + }, + "3": { + "name": "invalid.illegal.no-longer-supported.html" + } + }, + "end": ">", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.other.$2.start.html", + "patterns": [ + { + "include": "#attribute" + } + ] + }, + { + "begin": "(?i)(</)((dir|keygen|listing|menuitem|plaintext|spacer))(?=\\s|/?>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + }, + "3": { + "name": "invalid.illegal.no-longer-supported.html" + } + }, + "end": ">", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.other.$2.end.html", + "patterns": [ + { + "include": "#attribute" + } + ] + }, + { + "include": "#math" + }, + { + "include": "#svg" + }, + { + "begin": "(<)([a-zA-Z][.0-9_a-zA-Z\\x{00B7}\\x{00C0}-\\x{00D6}\\x{00D8}-\\x{00F6}\\x{00F8}-\\x{037D}\\x{037F}-\\x{1FFF}\\x{200C}-\\x{200D}\\x{203F}-\\x{2040}\\x{2070}-\\x{218F}\\x{2C00}-\\x{2FEF}\\x{3001}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFFD}\\x{10000}-\\x{EFFFF}]*-[\\-.0-9_a-zA-Z\\x{00B7}\\x{00C0}-\\x{00D6}\\x{00D8}-\\x{00F6}\\x{00F8}-\\x{037D}\\x{037F}-\\x{1FFF}\\x{200C}-\\x{200D}\\x{203F}-\\x{2040}\\x{2070}-\\x{218F}\\x{2C00}-\\x{2FEF}\\x{3001}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFFD}\\x{10000}-\\x{EFFFF}]*)(?=\\s|/?>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + } + }, + "end": "/?>", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.custom.start.html", + "patterns": [ + { + "include": "#attribute" + } + ] + }, + { + "begin": "(</)([a-zA-Z][.0-9_a-zA-Z\\x{00B7}\\x{00C0}-\\x{00D6}\\x{00D8}-\\x{00F6}\\x{00F8}-\\x{037D}\\x{037F}-\\x{1FFF}\\x{200C}-\\x{200D}\\x{203F}-\\x{2040}\\x{2070}-\\x{218F}\\x{2C00}-\\x{2FEF}\\x{3001}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFFD}\\x{10000}-\\x{EFFFF}]*-[\\-.0-9_a-zA-Z\\x{00B7}\\x{00C0}-\\x{00D6}\\x{00D8}-\\x{00F6}\\x{00F8}-\\x{037D}\\x{037F}-\\x{1FFF}\\x{200C}-\\x{200D}\\x{203F}-\\x{2040}\\x{2070}-\\x{218F}\\x{2C00}-\\x{2FEF}\\x{3001}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFFD}\\x{10000}-\\x{EFFFF}]*)(?=\\s|/?>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + } + }, + "end": ">", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.custom.end.html", + "patterns": [ + { + "include": "#attribute" + } + ] + } + ] + }, + "xml-processing": { + "begin": "(<\\?)(xml)", + "captures": { + "1": { + "name": "punctuation.definition.tag.html" + }, + "2": { + "name": "entity.name.tag.html" + } + }, + "end": "(\\?>)", + "name": "meta.tag.metadata.processing.xml.html", + "patterns": [ + { + "include": "#attribute" + } + ] + } + } +} diff --git a/docs/shiki/languages/http.tmLanguage.json b/docs/shiki/languages/http.tmLanguage.json new file mode 100644 index 00000000..80f16145 --- /dev/null +++ b/docs/shiki/languages/http.tmLanguage.json @@ -0,0 +1,297 @@ +{ + "scopeName": "source.http", + "fileTypes": ["http", "rest"], + "keyEquivalent": "^~H", + "name": "http", + "patterns": [ + { + "begin": "^\\s*(?=curl)", + "name": "http.request.curl", + "end": "^\\s*(\\#{3,}.*?)?\\s*$", + "endCaptures": { + "0": { + "name": "comment.line.sharp.http" + } + }, + "patterns": [ + { + "include": "source.shell" + } + ] + }, + { + "begin": "\\s*(?=(\\[|{[^{]))", + "name": "http.request.body.json", + "end": "^\\s*(\\#{3,}.*?)?\\s*$", + "endCaptures": { + "0": { + "name": "comment.line.sharp.http" + } + }, + "patterns": [ + { + "include": "source.json" + } + ] + }, + { + "begin": "^\\s*(?=<\\S)", + "name": "http.request.body.xml", + "end": "^\\s*(\\#{3,}.*?)?\\s*$", + "endCaptures": { + "0": { + "name": "comment.line.sharp.http" + } + }, + "patterns": [ + { + "include": "text.xml" + } + ] + }, + { + "begin": "\\s*(?=(query|mutation))", + "name": "http.request.body.graphql", + "end": "^\\s*(\\#{3,}.*?)?\\s*$", + "endCaptures": { + "0": { + "name": "comment.line.sharp.http" + } + }, + "patterns": [ + { + "include": "source.graphql" + } + ] + }, + { + "begin": "\\s*(?=(query|mutation))", + "name": "http.request.body.graphql", + "end": "^\\{\\s*$", + "patterns": [ + { + "include": "source.graphql" + } + ] + }, + { + "include": "#metadata" + }, + { + "include": "#comments" + }, + { + "captures": { + "1": { + "name": "keyword.other.http" + }, + "2": { + "name": "variable.other.http" + }, + "3": { + "name": "string.other.http" + } + }, + "match": "^\\s*(@)([^\\s=]+)\\s*=\\s*(.*?)\\s*$", + "name": "http.filevariable" + }, + { + "captures": { + "1": { + "name": "keyword.operator.http" + }, + "2": { + "name": "variable.other.http" + }, + "3": { + "name": "string.other.http" + } + }, + "match": "^\\s*(\\?|&)([^=\\s]+)=(.*)$", + "name": "http.query" + }, + { + "captures": { + "1": { + "name": "entity.name.tag.http" + }, + "2": { + "name": "keyword.other.http" + }, + "3": { + "name": "string.other.http" + } + }, + "match": "^([\\w\\-]+)\\s*(\\:)\\s*([^/].*?)\\s*$", + "name": "http.headers" + }, + { + "include": "#request-line" + }, + { + "include": "#response-line" + } + ], + "repository": { + "metadata": { + "patterns": [ + { + "match": "^\\s*\\#{1,}\\s+(?:((@)name)\\s+([^\\s\\.]+))$", + "captures": { + "1": { + "name": "entity.other.attribute-name" + }, + "2": { + "name": "punctuation.definition.block.tag.metadata" + }, + "3": { + "name": "entity.name.type.http" + } + }, + "name": "comment.line.sharp.http" + }, + { + "match": "^\\s*\\/{2,}\\s+(?:((@)name)\\s+([^\\s\\.]+))$", + "captures": { + "1": { + "name": "entity.other.attribute-name" + }, + "2": { + "name": "punctuation.definition.block.tag.metadata" + }, + "3": { + "name": "entity.name.type.http" + } + }, + "name": "comment.line.double-slash.http" + }, + { + "match": "^\\s*\\#{1,}\\s+((@)note)\\s*$", + "captures": { + "1": { + "name": "entity.other.attribute-name" + }, + "2": { + "name": "punctuation.definition.block.tag.metadata" + } + }, + "name": "comment.line.sharp.http" + }, + { + "match": "^\\s*\\/{2,}\\s+((@)note)\\s*$", + "captures": { + "1": { + "name": "entity.other.attribute-name" + }, + "2": { + "name": "punctuation.definition.block.tag.metadata" + } + }, + "name": "comment.line.double-slash.http" + }, + { + "match": "^\\s*\\#{1,}\\s+(?:((@)prompt)\\s+([^\\s]+)(?:\\s+(.*))?\\s*)$", + "captures": { + "1": { + "name": "entity.other.attribute-name" + }, + "2": { + "name": "punctuation.definition.block.tag.metadata" + }, + "3": { + "name": "variable.other.http" + }, + "4": { + "name": "string.other.http" + } + }, + "name": "comment.line.sharp.http" + }, + { + "match": "^\\s*\\/{2,}\\s+(?:((@)prompt)\\s+([^\\s]+)(?:\\s+(.*))?\\s*)$", + "captures": { + "1": { + "name": "entity.other.attribute-name" + }, + "2": { + "name": "punctuation.definition.block.tag.metadata" + }, + "3": { + "name": "variable.other.http" + }, + "4": { + "name": "string.other.http" + } + }, + "name": "comment.line.double-slash.http" + } + ] + }, + "comments": { + "patterns": [ + { + "match": "^\\s*\\#{1,}.*$", + "name": "comment.line.sharp.http" + }, + { + "match": "^\\s*\\/{2,}.*$", + "name": "comment.line.double-slash.http" + } + ] + }, + "request-line": { + "captures": { + "1": { + "name": "keyword.control.http" + }, + "2": { + "name": "const.language.http" + }, + "3": { + "patterns": [ + { + "include": "#protocol" + } + ] + } + }, + "match": "(?i)^(?:(get|post|put|delete|patch|head|options|connect|trace)\\s+)?\\s*(.+?)(?:\\s+(HTTP\\/\\S+))?$", + "name": "http.requestline" + }, + "response-line": { + "captures": { + "1": { + "patterns": [ + { + "include": "#protocol" + } + ] + }, + "2": { + "name": "constant.numeric.http" + }, + "3": { + "name": "string.other.http" + } + }, + "match": "(?i)^\\s*(HTTP\\/\\S+)\\s([1-5][0-9][0-9])\\s(.*)$", + "name": "http.responseLine" + }, + "protocol": { + "patterns": [ + { + "captures": { + "1": { + "name": "keyword.other.http" + }, + "2": { + "name": "constant.numeric.http" + } + }, + "name": "http.version", + "match": "(HTTP)/(\\d+.\\d+)" + } + ] + } + } +} diff --git a/docs/shiki/languages/imba.tmLanguage.json b/docs/shiki/languages/imba.tmLanguage.json new file mode 100644 index 00000000..d6f366d8 --- /dev/null +++ b/docs/shiki/languages/imba.tmLanguage.json @@ -0,0 +1,2693 @@ +{ + "name": "imba", + "scopeName": "source.imba", + "fileTypes": ["imba", "imba2"], + "uuid": "ef98eb90-bf9b-11e4-bb52-0800200c9a67", + "patterns": [ + { + "include": "#root" + }, + { + "name": "comment.line.shebang.imba", + "match": "\\A(#!).*(?=$)", + "captures": { + "1": { + "name": "punctuation.definition.comment.imba" + } + } + } + ], + "repository": { + "root": { + "patterns": [ + { + "include": "#block" + } + ] + }, + "block": { + "patterns": [ + { + "include": "#style-declaration" + }, + { + "include": "#object-keys" + }, + { + "include": "#tag-literal" + }, + { + "include": "#regex" + }, + { + "include": "#keywords" + }, + { + "include": "#comment" + }, + { + "include": "#literal" + }, + { + "include": "#plain-identifiers" + }, + { + "include": "#plain-accessors" + }, + { + "include": "#pairs" + }, + { + "include": "#invalid-indentation" + } + ] + }, + "expr": { + "patterns": [ + { + "include": "#style-declaration" + }, + { + "include": "#object-keys" + }, + { + "include": "#tag-literal" + }, + { + "include": "#regex" + }, + { + "include": "#keywords" + }, + { + "include": "#comment" + }, + { + "include": "#literal" + }, + { + "include": "#plain-identifiers" + }, + { + "include": "#plain-accessors" + }, + { + "include": "#pairs" + } + ] + }, + "literal": { + "patterns": [ + { + "include": "#number-with-unit-literal" + }, + { + "include": "#numeric-literal" + }, + { + "include": "#boolean-literal" + }, + { + "include": "#null-literal" + }, + { + "include": "#undefined-literal" + }, + { + "include": "#numericConstant-literal" + }, + { + "include": "#this-literal" + }, + { + "include": "#global-literal" + }, + { + "include": "#super-literal" + }, + { + "include": "#type-literal" + }, + { + "include": "#string" + } + ] + }, + "pairs": { + "patterns": [ + { + "include": "#curly-braces" + }, + { + "include": "#square-braces" + }, + { + "include": "#round-braces" + } + ] + }, + "curly-braces": { + "begin": "\\s*(\\{)", + "beginCaptures": { + "1": { + "name": "meta.brace.curly.imba" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "meta.brace.curly.imba" + } + }, + "patterns": [ + { + "include": "#expr" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "square-braces": { + "begin": "\\s*(\\[)", + "beginCaptures": { + "1": { + "name": "meta.brace.square.imba" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "meta.brace.square.imba" + } + }, + "patterns": [ + { + "include": "#expr" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "round-braces": { + "begin": "\\s*(\\()", + "beginCaptures": { + "1": { + "name": "meta.brace.round.imba" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "meta.brace.round.imba" + } + }, + "patterns": [ + { + "include": "#expr" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "keywords": { + "patterns": [ + { + "name": "keyword.control.imba", + "match": "(if|elif|else|unless|switch|when|then|do|import|export|for own|for|while|until|return|try|catch|await|finally|throw|as|continue|break|extend|augment)(?![_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "name": "keyword.control.imba", + "match": "(?<=export\\s+)(default)(?![_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "name": "keyword.control.imba", + "match": "(?<=import\\s+)(type)(?=\\s+[\\w\\{\\$\\_])" + }, + { + "name": "keyword.control.imba", + "match": "(extend)\\s+(?=class|tag)" + }, + { + "name": "keyword.control.imba", + "match": "(?<=[\\*\\}\\w\\$]\\s+)(from)(?=\\s+[\\\"\\'])" + }, + { + "name": "storage.type.function.imba", + "match": "(def|get|set)(?![_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "name": "storage.type.class.imba", + "match": "(tag|class|struct)(?![_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "name": "storage.type.imba", + "match": "(let|const|constructor)(?![_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "name": "storage.type.imba", + "match": "(prop|attr)(?![_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "name": "storage.modifier.imba", + "match": "(static)\\s+" + }, + { + "include": "#ops" + }, + { + "name": "keyword.operator.assignment.imba", + "match": "(=|\\|\\|=|\\?\\?=|\\&\\&=|\\+=|\\-=|\\*=|\\^=|\\%=)" + }, + { + "name": "keyword.operator.imba", + "match": "(\\>\\=?|\\<\\=?)" + }, + { + "name": "keyword.operator.imba", + "match": "(of|delete|\\!?isa|typeof|in|new)(?![_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + } + ] + }, + "ops": { + "patterns": [ + { + "name": "keyword.operator.spread.imba", + "match": "\\.\\.\\." + }, + { + "name": "keyword.operator.assignment.compound.imba", + "match": "\\*=|(?<!\\()/=|%=|\\+=|\\-=|\\?=|\\?\\?=|=\\?" + }, + { + "name": "keyword.operator.assignment.compound.bitwise.imba", + "match": "\\^=\\?|\\|=\\?|\\~=\\?|\\&=|\\^=|<<=|>>=|>>>=|\\|=" + }, + { + "name": "keyword.operator.bitwise.shift.imba", + "match": "<<|>>>|>>" + }, + { + "name": "keyword.operator.comparison.imba", + "match": "===|!==|==|!=|~=" + }, + { + "name": "keyword.operator.relational.imba", + "match": "<=|>=|<>|<|>" + }, + { + "match": "(\\!)\\s*(/)(?![/*])", + "captures": { + "1": { + "name": "keyword.operator.logical.imba" + }, + "2": { + "name": "keyword.operator.arithmetic.imba" + } + } + }, + { + "name": "keyword.operator.logical.imba", + "match": "\\!|&&|\\|\\||\\?\\?|or\\b(?=\\s|$)|and\\b(?=\\s|$)" + }, + { + "name": "keyword.operator.bitwise.imba", + "match": "\\&|~|\\^|\\|" + }, + { + "name": "keyword.operator.assignment.imba", + "match": "\\=" + }, + { + "name": "keyword.operator.decrement.imba", + "match": "--" + }, + { + "name": "keyword.operator.increment.imba", + "match": "\\+\\+" + }, + { + "name": "keyword.operator.arithmetic.imba", + "match": "%|\\*|/|-|\\+" + } + ] + }, + "object-keys": { + "patterns": [ + { + "match": "[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?\\:", + "name": "meta.object-literal.key" + } + ] + }, + "invalid-indentation": { + "patterns": [ + { + "name": "invalid.whitespace", + "match": "^[\\ ]+" + }, + { + "name": "invalid.whitespace", + "match": "^\\t+\\s+" + } + ] + }, + "style-property": { + "patterns": [ + { + "name": "meta.property-name.css", + "begin": "(?=(?:[\\@\\.]+[\\!\\<\\>]?)?[\\w\\-\\$]+(?:[\\@\\.]+[\\!\\<\\>]?[\\w\\-\\$]+)*(?:\\s*\\:))", + "beginCaptures": { + "1": { + "name": "support.function.calc.css" + }, + "2": { + "name": "punctuation.section.function.begin.bracket.round.css" + } + }, + "end": "\\s*\\:", + "endCaptures": { + "0": { + "name": "punctuation.separator.key-value.css" + } + }, + "patterns": [ + { + "name": "support.type.property-name.variable.css", + "match": "(?:--|\\$)[\\w\\-\\$]+" + }, + { + "name": "support.type.property-name.modifier.breakpoint.css", + "match": "\\@[\\!\\<\\>]?[0-9]+" + }, + { + "name": "support.type.property-name.modifier.css", + "match": "\\@[\\w\\-\\$]+" + }, + { + "name": "support.type.property-name.modifier.up.css", + "match": "\\.\\.[\\w\\-\\$]+" + }, + { + "name": "support.type.property-name.modifier.is.css", + "match": "\\.[\\w\\-\\$]+" + }, + { + "name": "support.type.property-name.css", + "match": "[\\w\\-\\$]+" + } + ] + } + ] + }, + "style-expr": { + "patterns": [ + { + "match": "(\\b[0-9][0-9_]*)(\\w+|%)?", + "captures": { + "1": { + "name": "constant.numeric.integer.decimal.css" + }, + "2": { + "name": "keyword.other.unit.css" + } + } + }, + { + "name": "support.constant.property-value.var.css", + "match": "--[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?" + }, + { + "name": "support.constant.property-value.size.css", + "match": "(x+s|sm-|md-|lg-|sm|md|lg|x+l|hg|x+h)(?![\\w-])" + }, + { + "name": "support.constant.property-value.css", + "match": "[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?" + }, + { + "name": "meta.function.css", + "begin": "(\\()", + "beginCaptures": { + "1": { + "name": "punctuation.section.function.begin.bracket.round.css" + } + }, + "end": "\\)", + "patterns": [ + { + "include": "#style-expr" + } + ] + } + ] + }, + "inline-styles": { + "patterns": [ + { + "include": "#style-property" + }, + { + "include": "#css-property-values" + }, + { + "include": "#style-expr" + } + ] + }, + "style-declaration": { + "name": "meta.style.imba", + "begin": "^(\\t*)(?:(global|local|export)\\s+)?(?:(scoped)\\s+)?(css)\\s", + "beginCaptures": { + "2": { + "name": "keyword.control.export.imba" + }, + "3": { + "name": "storage.modifier.imba" + }, + "4": { + "name": "storage.type.style.imba" + } + }, + "end": "^(?!(\\1\\t|\\s*$))", + "patterns": [ + { + "include": "#css-selector" + }, + { + "include": "#css-comment" + }, + { + "include": "#nested-css-selector" + }, + { + "include": "#inline-styles" + } + ] + }, + "nested-style-declaration": { + "name": "meta.style.imba", + "begin": "^(\\t+)(?=[\\n^]*\\&)", + "end": "^(?!(\\1\\t|\\s*$))", + "patterns": [ + { + "include": "#nested-css-selector" + }, + { + "include": "#inline-styles" + } + ] + }, + "css-size-keywords": [ + { + "name": "support.constant.size.property-value.css", + "match": "(x+s|sm-|md-|lg-|sm|md|lg|x+l|hg|x+h)(?![\\w-])" + } + ], + "css-color-keywords": { + "patterns": [ + { + "name": "support.constant.color.w3c-standard-color-name.css", + "match": "(?i)(?<![\\w-])(aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)(?![\\w-])" + }, + { + "name": "support.constant.color.w3c-extended-color-name.css", + "match": "(?xi) (?<![\\w-])\n(aliceblue|antiquewhite|aquamarine|azure|beige|bisque|blanchedalmond|blueviolet|brown|burlywood\n|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan\n|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange\n|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise\n|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen\n|gainsboro|ghostwhite|gold|goldenrod|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki\n|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow\n|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray\n|lightslategrey|lightsteelblue|lightyellow|limegreen|linen|magenta|mediumaquamarine|mediumblue\n|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise\n|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|oldlace|olivedrab|orangered\n|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum\n|powderblue|rebeccapurple|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell\n|sienna|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|thistle|tomato\n|transparent|turquoise|violet|wheat|whitesmoke|yellowgreen)\n(?![\\w-])" + }, + { + "name": "support.constant.color.current.css", + "match": "(?i)(?<![\\w-])currentColor(?![\\w-])" + } + ] + }, + "css-functions": { + "patterns": [ + { + "name": "meta.function.calc.css", + "begin": "(?i)(?<![\\w-])(calc)(\\()", + "beginCaptures": { + "1": { + "name": "support.function.calc.css" + }, + "2": { + "name": "punctuation.section.function.begin.bracket.round.css" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.function.end.bracket.round.css" + } + }, + "patterns": [ + { + "name": "keyword.operator.arithmetic.css", + "match": "[*/]|(?<=\\s|^)[-+](?=\\s|$)" + }, + { + "include": "#css-property-values" + } + ] + }, + { + "name": "meta.function.color.css", + "begin": "(?i)(?<![\\w-])(rgba?|hsla?)(\\()", + "beginCaptures": { + "1": { + "name": "support.function.misc.css" + }, + "2": { + "name": "punctuation.section.function.begin.bracket.round.css" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.function.end.bracket.round.css" + } + }, + "patterns": [ + { + "include": "#css-property-values" + } + ] + }, + { + "name": "meta.function.gradient.css", + "begin": "(?xi) (?<![\\w-])\n(\n (?:-webkit-|-moz-|-o-)? # Accept prefixed/historical variants\n (?:repeating-)? # \"Repeating\"-type gradient\n (?:linear|radial|conic) # Shape\n -gradient\n)\n(\\()", + "beginCaptures": { + "1": { + "name": "support.function.gradient.css" + }, + "2": { + "name": "punctuation.section.function.begin.bracket.round.css" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.function.end.bracket.round.css" + } + }, + "patterns": [ + { + "name": "keyword.operator.gradient.css", + "match": "(?i)(?<![\\w-])(from|to|at)(?![\\w-])" + }, + { + "include": "#css-property-values" + } + ] + }, + { + "name": "meta.function.gradient.invalid.deprecated.gradient.css", + "begin": "(?i)(?<![\\w-])(-webkit-gradient)(\\()", + "beginCaptures": { + "1": { + "name": "invalid.deprecated.gradient.function.css" + }, + "2": { + "name": "punctuation.section.function.begin.bracket.round.css" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.function.end.bracket.round.css" + } + }, + "patterns": [ + { + "begin": "(?i)(?<![\\w-])(from|to|color-stop)(\\()", + "beginCaptures": { + "1": { + "name": "invalid.deprecated.function.css" + }, + "2": { + "name": "punctuation.section.function.begin.bracket.round.css" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.function.end.bracket.round.css" + } + }, + "patterns": [ + { + "include": "#css-property-values" + } + ] + }, + { + "include": "#css-property-values" + } + ] + }, + { + "name": "meta.function.misc.css", + "begin": "(?xi) (?<![\\w-])\n(annotation|attr|blur|brightness|character-variant|contrast|counters?\n|cross-fade|drop-shadow|element|fit-content|format|grayscale|hue-rotate\n|image-set|invert|local|minmax|opacity|ornaments|repeat|saturate|sepia\n|styleset|stylistic|swash|symbols)\n(\\()", + "beginCaptures": { + "1": { + "name": "support.function.misc.css" + }, + "2": { + "name": "punctuation.section.function.begin.bracket.round.css" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.function.end.bracket.round.css" + } + }, + "patterns": [ + { + "name": "constant.numeric.other.density.css", + "match": "(?i)(?<=[,\\s\"]|\\*/|^)\\d+x(?=[\\s,\"')]|/\\*|$)" + }, + { + "include": "#css-property-values" + }, + { + "name": "variable.parameter.misc.css", + "match": "[^'\"),\\s]+" + } + ] + }, + { + "name": "meta.function.shape.css", + "begin": "(?i)(?<![\\w-])(circle|ellipse|inset|polygon|rect)(\\()", + "beginCaptures": { + "1": { + "name": "support.function.shape.css" + }, + "2": { + "name": "punctuation.section.function.begin.bracket.round.css" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.function.end.bracket.round.css" + } + }, + "patterns": [ + { + "name": "keyword.operator.shape.css", + "match": "(?i)(?<=\\s|^|\\*/)(at|round)(?=\\s|/\\*|$)" + }, + { + "include": "#css-property-values" + } + ] + }, + { + "name": "meta.function.timing-function.css", + "begin": "(?i)(?<![\\w-])(cubic-bezier|steps)(\\()", + "beginCaptures": { + "1": { + "name": "support.function.timing-function.css" + }, + "2": { + "name": "punctuation.section.function.begin.bracket.round.css" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.function.end.bracket.round.css" + } + }, + "patterns": [ + { + "name": "support.constant.step-direction.css", + "match": "(?i)(?<![\\w-])(start|end)(?=\\s*\\)|$)" + }, + { + "include": "#css-property-values" + } + ] + }, + { + "begin": "(?xi) (?<![\\w-])\n( (?:translate|scale|rotate)(?:[XYZ]|3D)?\n| matrix(?:3D)?\n| skew[XY]?\n| perspective\n)\n(\\()", + "beginCaptures": { + "1": { + "name": "support.function.transform.css" + }, + "2": { + "name": "punctuation.section.function.begin.bracket.round.css" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.function.end.bracket.round.css" + } + }, + "patterns": [ + { + "include": "#css-property-values" + } + ] + } + ] + }, + "css-numeric-values": { + "patterns": [ + { + "name": "constant.other.color.rgb-value.hex.css", + "match": "(#)(?:[0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})\\b", + "captures": { + "1": { + "name": "punctuation.definition.constant.css" + } + } + }, + { + "name": "constant.numeric.css", + "match": "(?xi) (?<![\\w-])\n[-+]? # Sign indicator\n\n(?: # Numerals\n [0-9]+ (?:\\.[0-9]+)? # Integer/float with leading digits\n | \\.[0-9]+ # Float without leading digits\n)\n\n(?: # Scientific notation\n (?<=[0-9]) # Exponent must follow a digit\n E # Exponent indicator\n [-+]? # Possible sign indicator\n [0-9]+ # Exponent value\n)?\n\n(?: # Possible unit for data-type:\n (%) # - Percentage\n | ( deg|grad|rad|turn # - Angle\n | Hz|kHz # - Frequency\n | ch|cm|em|ex|fr|in|mm|mozmm| # - Length\n pc|pt|px|q|rem|vh|vmax|vmin|\n vw\n | dpi|dpcm|dppx # - Resolution\n | s|ms # - Time\n )\n \\b # Boundary checking intentionally lax to\n)? # facilitate embedding in CSS-like grammars", + "captures": { + "1": { + "name": "keyword.other.unit.percentage.css" + }, + "2": { + "name": "keyword.other.unit.${2:/downcase}.css" + } + } + } + ] + }, + "css-combinators": { + "patterns": [ + { + "name": "punctuation.separator.combinator.css", + "match": ">>>|>>|>|\\+|~" + }, + { + "name": "keyword.other.parent-selector.css", + "match": "&" + } + ] + }, + "css-pseudo-classes": { + "name": "entity.other.attribute-name.pseudo-class.css", + "match": "(?xi)\n(:)(:*)\n(?: active|any-link|checked|default|defined|disabled|empty|enabled|first\n | (?:first|last|only)-(?:child|of-type)|focus|focus-visible|focus-within\n | fullscreen|host|hover|in-range|indeterminate|invalid|left|link\n | optional|out-of-range|placeholder-shown|read-only|read-write\n | required|right|root|scope|target|unresolved\n | valid|visited\n)(?![\\w-]|\\s*[;}])", + "captures": { + "1": { + "name": "punctuation.definition.entity.css" + }, + "2": { + "name": "invalid.illegal.colon.css" + } + } + }, + "css-pseudo-elements": { + "name": "entity.other.attribute-name.pseudo-element.css", + "match": "(?xi)\n(?:\n (::?) # Elements using both : and :: notation\n (?: after\n | before\n | first-letter\n | first-line\n | (?:-(?:ah|apple|atsc|epub|hp|khtml|moz\n |ms|o|rim|ro|tc|wap|webkit|xv)\n | (?:mso|prince))\n -[a-z-]+\n )\n |\n (::) # Double-colon only\n (?: backdrop\n | content\n | grammar-error\n | marker\n | placeholder\n | selection\n | shadow\n | spelling-error\n )\n)\n(?![\\w-]|\\s*[;}])", + "captures": { + "1": { + "name": "punctuation.definition.entity.css" + }, + "2": { + "name": "punctuation.definition.entity.css" + } + } + }, + "css-commas": { + "name": "punctuation.separator.list.comma.css", + "match": "," + }, + "css-comment": { + "patterns": [ + { + "name": "comment.line.imba", + "match": "\\#(\\s.+)?(\\n|$)" + }, + { + "name": "comment.line.imba", + "match": "(^\\t+)(\\#(\\s.+)?(\\n|$))" + } + ] + }, + "css-escapes": { + "patterns": [ + { + "name": "constant.character.escape.codepoint.css", + "match": "\\\\[0-9a-fA-F]{1,6}" + }, + { + "name": "constant.character.escape.newline.css", + "begin": "\\\\$\\s*", + "end": "^(?<!\\G)" + }, + { + "name": "constant.character.escape.css", + "match": "\\\\." + } + ] + }, + "css-selector": { + "name": "meta.selector.css", + "begin": "(?<=css\\s)(?!(?:[\\@\\.]+[\\!\\<\\>]?)?[\\w\\-\\$]+(?:[\\@\\.]+[\\!\\<\\>]?[\\w\\-\\$]+)*(?:\\s*\\:))", + "end": "(\\s*(?=(?:[\\@\\.]+[\\!\\<\\>]?)?[\\w\\-\\$]+(?:[\\@\\.]+[\\!\\<\\>]?[\\w\\-\\$]+)*(?:\\s*\\:))|\\s*$|(?=\\s+\\#\\s))", + "endCaptures": { + "0": { + "name": "punctuation.separator.sel-properties.css" + } + }, + "patterns": [ + { + "include": "#css-selector-innards" + } + ] + }, + "nested-css-selector": { + "name": "meta.selector.css", + "begin": "(^\\t+)(?!(?:[\\@\\.]+[\\!\\<\\>]?)?[\\w\\-\\$]+(?:[\\@\\.]+[\\!\\<\\>]?[\\w\\-\\$]+)*(?:\\s*\\:))", + "end": "(\\s*(?=(?:[\\@\\.]+[\\!\\<\\>]?)?[\\w\\-\\$]+(?:[\\@\\.]+[\\!\\<\\>]?[\\w\\-\\$]+)*(?:\\s*\\:))|\\s*$|(?=\\s+\\#\\s))", + "endCaptures": { + "0": { + "name": "punctuation.separator.sel-properties.css" + } + }, + "patterns": [ + { + "include": "#css-selector-innards" + } + ] + }, + "inline-css-selector": { + "name": "meta.selector.css", + "begin": "(^\\t+)(?!(?:[\\@\\.]+[\\!\\<\\>]?)?[\\w\\-\\$]+(?:[\\@\\.]+[\\!\\<\\>]?[\\w\\-\\$]+)*(?:\\s*\\:))", + "end": "(\\s*(?=(?:[\\@\\.]+[\\!\\<\\>]?)?[\\w\\-\\$]+(?:[\\@\\.]+[\\!\\<\\>]?[\\w\\-\\$]+)*(?:\\s*\\:)|\\)|\\])|\\s*$)", + "endCaptures": { + "0": { + "name": "punctuation.separator.sel-properties.css" + } + }, + "patterns": [ + { + "include": "#css-selector-innards" + } + ] + }, + "css-selector-innards": { + "patterns": [ + { + "include": "#css-commas" + }, + { + "include": "#css-escapes" + }, + { + "include": "#css-combinators" + }, + { + "name": "entity.name.tag.wildcard.css", + "match": "\\*" + }, + { + "name": "meta.attribute-selector.css", + "begin": "\\[", + "beginCaptures": { + "0": { + "name": "punctuation.definition.entity.begin.bracket.square.css" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.entity.end.bracket.square.css" + } + }, + "patterns": [ + { + "include": "#string" + }, + { + "match": "(?<=[\"'\\s]|^|\\*/)\\s*([iI])\\s*(?=[\\s\\]]|/\\*|$)", + "captures": { + "1": { + "name": "storage.modifier.ignore-case.css" + } + } + }, + { + "match": "(?x)(?<==)\\s*((?!/\\*)(?:[^\\\\\"'\\s\\]]|\\\\.)+)", + "captures": { + "1": { + "name": "string.unquoted.attribute-value.css" + } + } + }, + { + "include": "#css-escapes" + }, + { + "name": "keyword.operator.pattern.css", + "match": "[~|^$*]?=" + }, + { + "name": "punctuation.separator.css", + "match": "\\|" + }, + { + "match": "(?x)\n# Qualified namespace prefix\n( -?(?!\\d)(?:[\\w-]|[^\\\\x00-\\\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.))+\n| \\*\n)\n# Lookahead to ensure there's a valid identifier ahead\n(?=\n \\| (?!\\s|=|$|\\])\n (?: -?(?!\\d)\n | [\\\\\\w-]\n | [^\\\\x00-\\\\x7F]\n )\n)", + "captures": { + "1": { + "name": "entity.other.namespace-prefix.css" + } + } + }, + { + "match": "(?x)\n(-?(?!\\d)(?>[\\w-]|[^\\\\x00-\\\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.))+)\n\\s*\n(?=[~|^\\]$*=]|/\\*)", + "captures": { + "1": { + "name": "entity.other.attribute-name.css" + } + } + } + ] + }, + { + "include": "#css-pseudo-classes" + }, + { + "include": "#css-pseudo-elements" + } + ] + }, + "css-property-values": { + "patterns": [ + { + "include": "#css-commas" + }, + { + "include": "#css-escapes" + }, + { + "include": "#css-functions" + }, + { + "include": "#css-numeric-values" + }, + { + "include": "#css-size-keywords" + }, + { + "include": "#css-color-keywords" + }, + { + "include": "#string" + }, + { + "name": "keyword.other.important.css", + "match": "!\\s*important(?![\\w-])" + } + ] + }, + "tag-literal": { + "patterns": [ + { + "name": "meta.tag.imba", + "begin": "(<)(?=[\\w\\{\\[\\.\\#\\$\\@])", + "beginCaptures": { + "1": { + "name": "punctuation.section.tag.open.imba" + } + }, + "end": "(>)", + "endCaptures": { + "1": { + "name": "punctuation.section.tag.close.imba" + } + }, + "patterns": [ + { + "include": "#tag-content" + } + ], + "contentName": "meta.tag.attributes.imba" + } + ] + }, + "tag-content": { + "patterns": [ + { + "include": "#tag-name" + }, + { + "include": "#tag-expr-name" + }, + { + "include": "#tag-interpolated-content" + }, + { + "include": "#tag-interpolated-parens" + }, + { + "include": "#tag-interpolated-brackets" + }, + { + "include": "#tag-event-handler" + }, + { + "include": "#tag-classname" + }, + { + "include": "#tag-ref" + }, + { + "include": "#tag-attr-value" + }, + { + "include": "#tag-attr-name" + }, + { + "include": "#comment" + } + ] + }, + "tag-name": { + "patterns": [ + { + "name": "entity.name.tag.special.imba", + "match": "(?<=<)(self|global|slot)(?=[\\.\\[\\>\\s\\(])" + } + ] + }, + "tag-expr-name": { + "begin": "(?<=<)(?=[\\w\\{])", + "contentName": "entity.name.tag.imba", + "end": "(?=[\\.\\[\\>\\s\\(])", + "patterns": [ + { + "include": "#tag-interpolated-content" + } + ] + }, + "tag-interpolated-content": { + "name": "meta.tag.expression.imba", + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.section.tag.imba" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.section.tag.imba" + } + }, + "patterns": [ + { + "include": "#expression" + } + ], + "contentName": "meta.embedded.line.imba" + }, + "tag-interpolated-parens": { + "name": "meta.tag.expression.imba", + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.section.tag.imba" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.tag.imba" + } + }, + "patterns": [ + { + "include": "#expression" + } + ], + "contentName": "meta.embedded.line.imba" + }, + "tag-interpolated-brackets": { + "name": "meta.tag.expression.imba", + "begin": "\\[", + "beginCaptures": { + "0": { + "name": "punctuation.section.tag.imba" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.section.tag.imba" + } + }, + "patterns": [ + { + "include": "#inline-css-selector" + }, + { + "include": "#inline-styles" + } + ], + "contentName": "meta.embedded.line.imba" + }, + "tag-classname": { + "begin": "\\.", + "patterns": [ + { + "include": "#tag-interpolated-content" + } + ], + "end": "(?=[\\.\\[\\>\\s\\(\\=])", + "contentName": "entity.other.attribute-name.class.css" + }, + "tag-ref": { + "match": "(\\$[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?)", + "name": "entity.other.attribute-name.reference.css" + }, + "tag-event-handler": { + "begin": "(\\@[\\w$_]+(?:\\-[\\w$_]+)*)", + "beginCaptures": { + "0": { + "name": "entity.other.event-name.imba" + } + }, + "patterns": [ + { + "include": "#tag-interpolated-content" + }, + { + "include": "#tag-interpolated-parens" + }, + { + "name": "entity.other.event-modifier.imba", + "begin": "\\.", + "beginCaptures": { + "0": { + "name": "punctuation.section.tag" + } + }, + "patterns": [ + { + "include": "#tag-interpolated-parens" + }, + { + "include": "#tag-interpolated-content" + } + ], + "end": "(?=[\\.\\[\\>\\s\\=]|$)" + } + ], + "end": "(?=[\\[\\>\\s\\=])", + "contentName": "entity.other.tag.event" + }, + "tag-attr-name": { + "begin": "([\\w$_]+(?:\\-[\\w$_]+)*)", + "beginCaptures": { + "0": { + "name": "entity.other.attribute-name.imba" + } + }, + "end": "(?=[\\s\\.\\[\\>\\=])", + "contentName": "entity.other.attribute-name.imba" + }, + "tag-attr-value": { + "begin": "(\\=)", + "beginCaptures": { + "0": { + "name": "keyword.operator.tag.assignment" + } + }, + "end": "(?=>|\\s)", + "contentName": "meta.tag.attribute-value.imba", + "patterns": [ + { + "include": "#expr" + } + ] + }, + "expression": { + "patterns": [ + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "meta.brace.round.imba" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "meta.brace.round.imba" + } + }, + "patterns": [ + { + "include": "#expr" + } + ] + }, + { + "include": "#tag-literal" + }, + { + "include": "#expressionWithoutIdentifiers" + }, + { + "include": "#identifiers" + }, + { + "include": "#expressionPunctuations" + } + ] + }, + "expressionWithoutIdentifiers": { + "patterns": [ + { + "include": "#string" + }, + { + "include": "#regex" + }, + { + "include": "#comment" + }, + { + "include": "#function-expression" + }, + { + "include": "#class-expression" + }, + { + "include": "#ternary-expression" + }, + { + "include": "#new-expr" + }, + { + "include": "#instanceof-expr" + }, + { + "include": "#object-literal" + }, + { + "include": "#expression-operators" + }, + { + "include": "#literal" + }, + { + "include": "#support-objects" + } + ] + }, + "expressionPunctuations": { + "patterns": [ + { + "include": "#punctuation-comma" + }, + { + "include": "#punctuation-accessor" + } + ] + }, + "decorator": { + "name": "meta.decorator.imba", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))\\@(?!\\@)", + "beginCaptures": { + "0": { + "name": "punctuation.decorator.imba" + } + }, + "end": "(?=\\s)", + "patterns": [ + { + "include": "#expr" + } + ] + }, + "array-literal": { + "name": "meta.array.literal.imba", + "begin": "\\s*(\\[)", + "beginCaptures": { + "1": { + "name": "meta.brace.square.imba" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "meta.brace.square.imba" + } + }, + "patterns": [ + { + "include": "#expr" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "type-literal": { + "name": "meta.type.annotation.imba", + "begin": "(\\\\)", + "beginCaptures": { + "1": { + "name": "meta.type.annotation.open.imba" + } + }, + "end": "(?=[\\s\\]\\)\\,\\.\\=\\}]|$)", + "patterns": [ + { + "include": "#type-brackets" + } + ] + }, + "type-brackets": { + "patterns": [ + { + "begin": "{", + "end": "}", + "patterns": [ + { + "include": "#type-brackets" + } + ] + }, + { + "begin": "\\[", + "end": "\\]", + "patterns": [ + { + "include": "#type-brackets" + } + ] + }, + { + "begin": "\\<", + "end": "\\>", + "patterns": [ + { + "include": "#type-brackets" + } + ] + }, + { + "begin": "\\(", + "end": "\\)", + "patterns": [ + { + "include": "#type-brackets" + } + ] + } + ] + }, + "numeric-literal": { + "patterns": [ + { + "name": "constant.numeric.hex.imba", + "match": "\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$)", + "captures": { + "1": { + "name": "storage.type.numeric.bigint.imba" + } + } + }, + { + "name": "constant.numeric.binary.imba", + "match": "\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$)", + "captures": { + "1": { + "name": "storage.type.numeric.bigint.imba" + } + } + }, + { + "name": "constant.numeric.octal.imba", + "match": "\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$)", + "captures": { + "1": { + "name": "storage.type.numeric.bigint.imba" + } + } + }, + { + "match": "(?x)\n(?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b) # 1\n)(?!\\$)", + "captures": { + "0": { + "name": "constant.numeric.decimal.imba" + }, + "1": { + "name": "meta.delimiter.decimal.period.imba" + }, + "2": { + "name": "storage.type.numeric.bigint.imba" + }, + "3": { + "name": "meta.delimiter.decimal.period.imba" + }, + "4": { + "name": "storage.type.numeric.bigint.imba" + }, + "5": { + "name": "meta.delimiter.decimal.period.imba" + }, + "6": { + "name": "storage.type.numeric.bigint.imba" + }, + "7": { + "name": "storage.type.numeric.bigint.imba" + }, + "8": { + "name": "meta.delimiter.decimal.period.imba" + }, + "9": { + "name": "storage.type.numeric.bigint.imba" + }, + "10": { + "name": "meta.delimiter.decimal.period.imba" + }, + "11": { + "name": "storage.type.numeric.bigint.imba" + }, + "12": { + "name": "meta.delimiter.decimal.period.imba" + }, + "13": { + "name": "storage.type.numeric.bigint.imba" + }, + "14": { + "name": "storage.type.numeric.bigint.imba" + } + } + } + ] + }, + "number-with-unit-literal": { + "patterns": [ + { + "match": "([0-9]+)([a-z]+|\\%)", + "captures": { + "1": { + "name": "constant.numeric.imba" + }, + "2": { + "name": "keyword.other.unit.imba" + } + } + }, + { + "match": "([0-9]*\\.[0-9]+(?:[eE][\\-+]?[0-9]+)?)([a-z]+|\\%)", + "captures": { + "1": { + "name": "constant.numeric.decimal.imba" + }, + "2": { + "name": "keyword.other.unit.imba" + } + } + } + ] + }, + "boolean-literal": { + "patterns": [ + { + "name": "constant.language.boolean.true.imba", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(true|yes)(?![_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "name": "constant.language.boolean.false.imba", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(false|no)(?![_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + } + ] + }, + "null-literal": { + "name": "constant.language.null.imba", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))null(?![_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + "this-literal": { + "name": "variable.language.this.imba", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|self)\\b(?!\\$)" + }, + "global-literal": { + "name": "variable.language.global.imba", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(global)\\b(?!\\$)" + }, + "super-literal": { + "name": "variable.language.super.imba", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))super\\b(?!\\$)" + }, + "undefined-literal": { + "name": "constant.language.undefined.imba", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))undefined(?![_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + "numericConstant-literal": { + "patterns": [ + { + "name": "constant.language.nan.imba", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))NaN(?![_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "name": "constant.language.infinity.imba", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Infinity(?![_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + } + ] + }, + "plain-identifiers": { + "patterns": [ + { + "name": "variable.other.constant.imba", + "match": "([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])" + }, + { + "name": "variable.other.class.imba", + "match": "[[:upper:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\!]?" + }, + { + "name": "variable.special.imba", + "match": "\\$\\d+" + }, + { + "name": "variable.other.internal.imba", + "match": "\\$[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?" + }, + { + "name": "variable.other.symbol.imba", + "match": "\\@\\@+[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?" + }, + { + "name": "variable.other.readwrite.imba", + "match": "[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?" + }, + { + "name": "variable.other.instance.imba", + "match": "\\@[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?" + }, + { + "name": "variable.other.private.imba", + "match": "\\#+[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?" + }, + { + "name": "string.symbol.imba", + "match": "\\:[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?" + } + ] + }, + "plain-accessors": { + "patterns": [ + { + "match": "(\\.\\.?)([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?)", + "captures": { + "1": { + "name": "punctuation.accessor.imba" + }, + "2": { + "name": "variable.other.property.imba" + } + } + } + ] + }, + "identifiers": { + "patterns": [ + { + "match": "(?x)(?:(?:(\\.)|(\\.\\.(?!\\s*[[:digit:]]|\\s+)))\\s*)?([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?)(?=\\s*={{functionOrArrowLookup}})", + "captures": { + "1": { + "name": "punctuation.accessor.imba" + }, + "2": { + "name": "punctuation.accessor.optional.imba" + }, + "3": { + "name": "entity.name.function.property.imba" + } + } + }, + { + "match": "(?:(\\.)|(\\.\\.(?!\\s*[[:digit:]]|\\s+)))\\s*(\\#?[[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])", + "captures": { + "1": { + "name": "punctuation.accessor.imba" + }, + "2": { + "name": "punctuation.accessor.optional.imba" + }, + "3": { + "name": "variable.other.constant.property.imba" + } + } + }, + { + "match": "(?:(\\.)|(\\.\\.(?!\\s*[[:digit:]]|\\s+)))([[:upper:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\!]?)", + "captures": { + "1": { + "name": "punctuation.accessor.imba" + }, + "2": { + "name": "punctuation.accessor.optional.imba" + }, + "3": { + "name": "variable.other.class.property.imba" + } + } + }, + { + "match": "(?:(\\.)|(\\.\\.(?!\\s*[[:digit:]]|\\s+)))(\\#?[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?)", + "captures": { + "1": { + "name": "punctuation.accessor.imba" + }, + "2": { + "name": "punctuation.accessor.optional.imba" + }, + "3": { + "name": "variable.other.property.imba" + } + } + }, + { + "name": "keyword.other", + "match": "(for own|for|if|unless|when)\\b" + }, + { + "name": "support.function.require", + "match": "require" + }, + { + "include": "#plain-identifiers" + }, + { + "include": "#type-literal" + } + ] + }, + "type-annotation": { + "patterns": [ + { + "include": "#type-literal" + } + ] + }, + "punctuation-comma": { + "name": "punctuation.separator.comma.imba", + "match": "," + }, + "punctuation-semicolon": { + "name": "punctuation.terminator.statement.imba", + "match": ";" + }, + "punctuation-accessor": { + "match": "(?:(\\.)|(\\.\\.(?!\\s*[[:digit:]]|\\s+)))", + "captures": { + "1": { + "name": "punctuation.accessor.imba" + }, + "2": { + "name": "punctuation.accessor.optional.imba" + } + } + }, + "string": { + "patterns": [ + { + "include": "#qstring-single-multi" + }, + { + "include": "#qstring-double-multi" + }, + { + "include": "#qstring-single" + }, + { + "include": "#qstring-double" + }, + { + "include": "#template" + } + ] + }, + "qstring-double": { + "name": "string.quoted.double.imba", + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.imba" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.imba" + } + }, + "patterns": [ + { + "include": "#template-substitution-element" + }, + { + "include": "#string-character-escape" + } + ] + }, + "qstring-single": { + "name": "string.quoted.single.imba", + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.imba" + } + }, + "end": "(\\')|((?:[^\\\\\\n])$)", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.imba" + }, + "2": { + "name": "invalid.illegal.newline.imba" + } + }, + "patterns": [ + { + "include": "#string-character-escape" + } + ] + }, + "qstring-single-multi": { + "name": "string.quoted.single.imba", + "begin": "'''", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.imba" + } + }, + "end": "'''", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.imba" + } + }, + "patterns": [ + { + "include": "#string-character-escape" + } + ] + }, + "string-character-escape": { + "name": "constant.character.escape.imba", + "match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)" + }, + "template": { + "patterns": [ + { + "name": "string.template.imba", + "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?)({{typeArguments}}\\s*)?`)", + "end": "(?=`)", + "patterns": [ + { + "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?))", + "end": "(?=({{typeArguments}}\\s*)?`)", + "patterns": [ + { + "name": "entity.name.function.tagged-template.imba", + "match": "([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?)" + } + ] + } + ] + }, + { + "name": "string.template.imba", + "begin": "([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?)\\s*(?=({{typeArguments}}\\s*)`)", + "beginCaptures": { + "1": { + "name": "entity.name.function.tagged-template.imba" + } + }, + "end": "(?=`)", + "patterns": [ + { + "include": "#type-arguments" + } + ] + }, + { + "name": "string.template.imba", + "begin": "([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?)?(`)", + "beginCaptures": { + "1": { + "name": "entity.name.function.tagged-template.imba" + }, + "2": { + "name": "punctuation.definition.string.template.begin.imba" + } + }, + "end": "`", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.template.end.imba" + } + }, + "patterns": [ + { + "include": "#template-substitution-element" + }, + { + "include": "#string-character-escape" + } + ] + } + ] + }, + "template-substitution-element": { + "name": "meta.template.expression.imba", + "begin": "(?<!\\\\)\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.template-expression.begin.imba" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.template-expression.end.imba" + } + }, + "patterns": [ + { + "include": "#expr" + } + ], + "contentName": "meta.embedded.line.imba" + }, + "regex": { + "patterns": [ + { + "name": "string.regexp.imba", + "begin": "(?<!\\+\\+|--|})(?<=[=(:,\\[?+!]|^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case|=>|&&|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([gimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))", + "beginCaptures": { + "1": { + "name": "punctuation.definition.string.begin.imba" + } + }, + "end": "(/)([gimsuy]*)", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.imba" + }, + "2": { + "name": "keyword.other.imba" + } + }, + "patterns": [ + { + "include": "#regexp" + } + ] + }, + { + "name": "string.regexp.imba", + "begin": "((?<![_$[:alnum:])\\]]|\\+\\+|--|}|\\*\\/)|((?<=^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case))\\s*)\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\])+\\/([gimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.imba" + } + }, + "end": "(/)([gimsuy]*)", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.imba" + }, + "2": { + "name": "keyword.other.imba" + } + }, + "patterns": [ + { + "include": "#regexp" + } + ] + } + ] + }, + "regexp": { + "patterns": [ + { + "name": "keyword.control.anchor.regexp", + "match": "\\\\[bB]|\\^|\\$" + }, + { + "match": "\\\\[1-9]\\d*|\\\\k<([a-zA-Z_$][\\w$]*)>", + "captures": { + "0": { + "name": "keyword.other.back-reference.regexp" + }, + "1": { + "name": "variable.other.regexp" + } + } + }, + { + "name": "keyword.operator.quantifier.regexp", + "match": "[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??" + }, + { + "name": "keyword.operator.or.regexp", + "match": "\\|" + }, + { + "name": "meta.group.assertion.regexp", + "begin": "(\\()((\\?=)|(\\?!)|(\\?<=)|(\\?<!))", + "beginCaptures": { + "1": { + "name": "punctuation.definition.group.regexp" + }, + "2": { + "name": "punctuation.definition.group.assertion.regexp" + }, + "3": { + "name": "meta.assertion.look-ahead.regexp" + }, + "4": { + "name": "meta.assertion.negative-look-ahead.regexp" + }, + "5": { + "name": "meta.assertion.look-behind.regexp" + }, + "6": { + "name": "meta.assertion.negative-look-behind.regexp" + } + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.definition.group.regexp" + } + }, + "patterns": [ + { + "include": "#regexp" + } + ] + }, + { + "name": "meta.group.regexp", + "begin": "\\((?:(\\?:)|(?:\\?<([a-zA-Z_$][\\w$]*)>))?", + "beginCaptures": { + "0": { + "name": "punctuation.definition.group.regexp" + }, + "1": { + "name": "punctuation.definition.group.no-capture.regexp" + }, + "2": { + "name": "variable.other.regexp" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.group.regexp" + } + }, + "patterns": [ + { + "include": "#regexp" + } + ] + }, + { + "name": "constant.other.character-class.set.regexp", + "begin": "(\\[)(\\^)?", + "beginCaptures": { + "1": { + "name": "punctuation.definition.character-class.regexp" + }, + "2": { + "name": "keyword.operator.negation.regexp" + } + }, + "end": "(\\])", + "endCaptures": { + "1": { + "name": "punctuation.definition.character-class.regexp" + } + }, + "patterns": [ + { + "name": "constant.other.character-class.range.regexp", + "match": "(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))", + "captures": { + "1": { + "name": "constant.character.numeric.regexp" + }, + "2": { + "name": "constant.character.control.regexp" + }, + "3": { + "name": "constant.character.escape.backslash.regexp" + }, + "4": { + "name": "constant.character.numeric.regexp" + }, + "5": { + "name": "constant.character.control.regexp" + }, + "6": { + "name": "constant.character.escape.backslash.regexp" + } + } + }, + { + "include": "#regex-character-class" + } + ] + }, + { + "include": "#regex-character-class" + } + ] + }, + "regex-character-class": { + "patterns": [ + { + "name": "constant.other.character-class.regexp", + "match": "\\\\[wWsSdDtrnvf]|\\." + }, + { + "name": "constant.character.numeric.regexp", + "match": "\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})" + }, + { + "name": "constant.character.control.regexp", + "match": "\\\\c[A-Z]" + }, + { + "name": "constant.character.escape.backslash.regexp", + "match": "\\\\." + } + ] + }, + "comment": { + "patterns": [ + { + "name": "comment.block.documentation.imba", + "begin": "/\\*\\*(?!/)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.imba" + } + }, + "end": "\\*/", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.imba" + } + }, + "patterns": [ + { + "include": "#docblock" + } + ] + }, + { + "name": "comment.block.imba", + "begin": "(/\\*)(?:\\s*((@)internal)(?=\\s|(\\*/)))?", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.imba" + }, + "2": { + "name": "storage.type.internaldeclaration.imba" + }, + "3": { + "name": "punctuation.decorator.internaldeclaration.imba" + } + }, + "end": "\\*/", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.imba" + } + } + }, + { + "name": "comment.block.imba", + "begin": "(###)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.imba" + } + }, + "end": "###(?:[ \\t]*\\n)", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.imba" + } + } + }, + { + "begin": "(^[ \\t]+)?((//|\\#\\s)(?:\\s*((@)internal)(?=\\s|$))?)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.imba" + }, + "2": { + "name": "comment.line.double-slash.imba" + }, + "3": { + "name": "punctuation.definition.comment.imba" + }, + "4": { + "name": "storage.type.internaldeclaration.imba" + }, + "5": { + "name": "punctuation.decorator.internaldeclaration.imba" + } + }, + "end": "(?=$)", + "contentName": "comment.line.double-slash.imba" + } + ] + }, + "single-line-comment-consuming-line-ending": { + "begin": "(^[ \\t]+)?((//|\\#\\s)(?:\\s*((@)internal)(?=\\s|$))?)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.imba" + }, + "2": { + "name": "comment.line.double-slash.imba" + }, + "3": { + "name": "punctuation.definition.comment.imba" + }, + "4": { + "name": "storage.type.internaldeclaration.imba" + }, + "5": { + "name": "punctuation.decorator.internaldeclaration.imba" + } + }, + "end": "(?=^)", + "contentName": "comment.line.double-slash.imba" + }, + "directives": { + "name": "comment.line.triple-slash.directive.imba", + "begin": "^(///)\\s*(?=<(reference|amd-dependency|amd-module)(\\s+(path|types|no-default-lib|lib|name)\\s*=\\s*((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)))+\\s*/>\\s*$)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.imba" + } + }, + "end": "(?=$)", + "patterns": [ + { + "name": "meta.tag.imba", + "begin": "(<)(reference|amd-dependency|amd-module)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.directive.imba" + }, + "2": { + "name": "entity.name.tag.directive.imba" + } + }, + "end": "/>", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.directive.imba" + } + }, + "patterns": [ + { + "name": "entity.other.attribute-name.directive.imba", + "match": "path|types|no-default-lib|lib|name" + }, + { + "name": "keyword.operator.assignment.imba", + "match": "=" + }, + { + "include": "#string" + } + ] + } + ] + }, + "docblock": { + "patterns": [ + { + "match": "(?x)\n((@)(?:access|api))\n\\s+\n(private|protected|public)\n\\b", + "captures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + }, + "3": { + "name": "constant.language.access-type.jsdoc" + } + } + }, + { + "match": "(?x)\n((@)author)\n\\s+\n(\n [^@\\s<>*/]\n (?:[^@<>*/]|\\*[^/])*\n)\n(?:\n \\s*\n (<)\n ([^>\\s]+)\n (>)\n)?", + "captures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + }, + "3": { + "name": "entity.name.type.instance.jsdoc" + }, + "4": { + "name": "punctuation.definition.bracket.angle.begin.jsdoc" + }, + "5": { + "name": "constant.other.email.link.underline.jsdoc" + }, + "6": { + "name": "punctuation.definition.bracket.angle.end.jsdoc" + } + } + }, + { + "match": "(?x)\n((@)borrows) \\s+\n((?:[^@\\s*/]|\\*[^/])+) # <that namepath>\n\\s+ (as) \\s+ # as\n((?:[^@\\s*/]|\\*[^/])+) # <this namepath>", + "captures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + }, + "3": { + "name": "entity.name.type.instance.jsdoc" + }, + "4": { + "name": "keyword.operator.control.jsdoc" + }, + "5": { + "name": "entity.name.type.instance.jsdoc" + } + } + }, + { + "name": "meta.example.jsdoc", + "begin": "((@)example)\\s+", + "end": "(?=@|\\*/)", + "beginCaptures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + } + }, + "patterns": [ + { + "match": "^\\s\\*\\s+" + }, + { + "contentName": "constant.other.description.jsdoc", + "begin": "\\G(<)caption(>)", + "beginCaptures": { + "0": { + "name": "entity.name.tag.inline.jsdoc" + }, + "1": { + "name": "punctuation.definition.bracket.angle.begin.jsdoc" + }, + "2": { + "name": "punctuation.definition.bracket.angle.end.jsdoc" + } + }, + "end": "(</)caption(>)|(?=\\*/)", + "endCaptures": { + "0": { + "name": "entity.name.tag.inline.jsdoc" + }, + "1": { + "name": "punctuation.definition.bracket.angle.begin.jsdoc" + }, + "2": { + "name": "punctuation.definition.bracket.angle.end.jsdoc" + } + } + }, + { + "match": "[^\\s@*](?:[^*]|\\*[^/])*", + "captures": { + "0": { + "name": "source.embedded.imba" + } + } + } + ] + }, + { + "match": "(?x) ((@)kind) \\s+ (class|constant|event|external|file|function|member|mixin|module|namespace|typedef) \\b", + "captures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + }, + "3": { + "name": "constant.language.symbol-type.jsdoc" + } + } + }, + { + "match": "(?x)\n((@)see)\n\\s+\n(?:\n # URL\n (\n (?=https?://)\n (?:[^\\s*]|\\*[^/])+\n )\n |\n # JSDoc namepath\n (\n (?!\n # Avoid matching bare URIs (also acceptable as links)\n https?://\n |\n # Avoid matching {@inline tags}; we match those below\n (?:\\[[^\\[\\]]*\\])? # Possible description [preceding]{@tag}\n {@(?:link|linkcode|linkplain|tutorial)\\b\n )\n # Matched namepath\n (?:[^@\\s*/]|\\*[^/])+\n )\n)", + "captures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + }, + "3": { + "name": "variable.other.link.underline.jsdoc" + }, + "4": { + "name": "entity.name.type.instance.jsdoc" + } + } + }, + { + "match": "(?x)\n((@)template)\n\\s+\n# One or more valid identifiers\n(\n [A-Za-z_$] # First character: non-numeric word character\n [\\w$.\\[\\]]* # Rest of identifier\n (?: # Possible list of additional identifiers\n \\s* , \\s*\n [A-Za-z_$]\n [\\w$.\\[\\]]*\n )*\n)", + "captures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + }, + "3": { + "name": "variable.other.jsdoc" + } + } + }, + { + "match": "(?x)\n(\n (@)\n (?:arg|argument|const|constant|member|namespace|param|var)\n)\n\\s+\n(\n [A-Za-z_$]\n [\\w$.\\[\\]]*\n)", + "captures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + }, + "3": { + "name": "variable.other.jsdoc" + } + } + }, + { + "begin": "((@)typedef)\\s+(?={)", + "beginCaptures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + } + }, + "end": "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", + "patterns": [ + { + "include": "#jsdoctype" + }, + { + "name": "entity.name.type.instance.jsdoc", + "match": "(?:[^@\\s*/]|\\*[^/])+" + } + ] + }, + { + "begin": "((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\s+(?={)", + "beginCaptures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + } + }, + "end": "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", + "patterns": [ + { + "include": "#jsdoctype" + }, + { + "name": "variable.other.jsdoc", + "match": "([A-Za-z_$][\\w$.\\[\\]]*)" + }, + { + "name": "variable.other.jsdoc", + "match": "(?x)\n(\\[)\\s*\n[\\w$]+\n(?:\n (?:\\[\\])? # Foo[ ].bar properties within an array\n \\. # Foo.Bar namespaced parameter\n [\\w$]+\n)*\n(?:\n \\s*\n (=) # [foo=bar] Default parameter value\n \\s*\n (\n # The inner regexes are to stop the match early at */ and to not stop at escaped quotes\n (?>\n \"(?:(?:\\*(?!/))|(?:\\\\(?!\"))|[^*\\\\])*?\" | # [foo=\"bar\"] Double-quoted\n '(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?' | # [foo='bar'] Single-quoted\n \\[ (?:(?:\\*(?!/))|[^*])*? \\] | # [foo=[1,2]] Array literal\n (?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])* # Everything else\n )*\n )\n)?\n\\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))", + "captures": { + "1": { + "name": "punctuation.definition.optional-value.begin.bracket.square.jsdoc" + }, + "2": { + "name": "keyword.operator.assignment.jsdoc" + }, + "3": { + "name": "source.embedded.imba" + }, + "4": { + "name": "punctuation.definition.optional-value.end.bracket.square.jsdoc" + }, + "5": { + "name": "invalid.illegal.syntax.jsdoc" + } + } + } + ] + }, + { + "begin": "(?x)\n(\n (@)\n (?:define|enum|exception|export|extends|lends|implements|modifies\n |namespace|private|protected|returns?|suppress|this|throws|type\n |yields?)\n)\n\\s+(?={)", + "beginCaptures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + } + }, + "end": "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", + "patterns": [ + { + "include": "#jsdoctype" + } + ] + }, + { + "match": "(?x)\n(\n (@)\n (?:alias|augments|callback|constructs|emits|event|fires|exports?\n |extends|external|function|func|host|lends|listens|interface|memberof!?\n |method|module|mixes|mixin|name|requires|see|this|typedef|uses)\n)\n\\s+\n(\n (?:\n [^{}@\\s*] | \\*[^/]\n )+\n)", + "captures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + }, + "3": { + "name": "entity.name.type.instance.jsdoc" + } + } + }, + { + "contentName": "variable.other.jsdoc", + "begin": "((@)(?:default(?:value)?|license|version))\\s+(([''\"]))", + "beginCaptures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + }, + "3": { + "name": "variable.other.jsdoc" + }, + "4": { + "name": "punctuation.definition.string.begin.jsdoc" + } + }, + "end": "(\\3)|(?=$|\\*/)", + "endCaptures": { + "0": { + "name": "variable.other.jsdoc" + }, + "1": { + "name": "punctuation.definition.string.end.jsdoc" + } + } + }, + { + "match": "((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)", + "captures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + }, + "3": { + "name": "variable.other.jsdoc" + } + } + }, + { + "name": "storage.type.class.jsdoc", + "match": "(?x) (@) (?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles |callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright |default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception |exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func |function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc |inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method |mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects |override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected |public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary |suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation |version|virtual|writeOnce|yields?) \\b", + "captures": { + "1": { + "name": "punctuation.definition.block.tag.jsdoc" + } + } + }, + { + "include": "#inline-tags" + }, + { + "match": "((@)(?:[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?))(?=\\s+)", + "captures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + } + } + } + ] + }, + "brackets": { + "patterns": [ + { + "begin": "{", + "end": "}|(?=\\*/)", + "patterns": [ + { + "include": "#brackets" + } + ] + }, + { + "begin": "\\[", + "end": "\\]|(?=\\*/)", + "patterns": [ + { + "include": "#brackets" + } + ] + } + ] + }, + "inline-tags": { + "patterns": [ + { + "name": "constant.other.description.jsdoc", + "match": "(\\[)[^\\]]+(\\])(?={@(?:link|linkcode|linkplain|tutorial))", + "captures": { + "1": { + "name": "punctuation.definition.bracket.square.begin.jsdoc" + }, + "2": { + "name": "punctuation.definition.bracket.square.end.jsdoc" + } + } + }, + { + "name": "entity.name.type.instance.jsdoc", + "begin": "({)((@)(?:link(?:code|plain)?|tutorial))\\s*", + "beginCaptures": { + "1": { + "name": "punctuation.definition.bracket.curly.begin.jsdoc" + }, + "2": { + "name": "storage.type.class.jsdoc" + }, + "3": { + "name": "punctuation.definition.inline.tag.jsdoc" + } + }, + "end": "}|(?=\\*/)", + "endCaptures": { + "0": { + "name": "punctuation.definition.bracket.curly.end.jsdoc" + } + }, + "patterns": [ + { + "match": "\\G((?=https?://)(?:[^|}\\s*]|\\*[/])+)(\\|)?", + "captures": { + "1": { + "name": "variable.other.link.underline.jsdoc" + }, + "2": { + "name": "punctuation.separator.pipe.jsdoc" + } + } + }, + { + "match": "\\G((?:[^{}@\\s|*]|\\*[^/])+)(\\|)?", + "captures": { + "1": { + "name": "variable.other.description.jsdoc" + }, + "2": { + "name": "punctuation.separator.pipe.jsdoc" + } + } + } + ] + } + ] + }, + "jsdoctype": { + "patterns": [ + { + "name": "invalid.illegal.type.jsdoc", + "match": "\\G{(?:[^}*]|\\*[^/}])+$" + }, + { + "contentName": "entity.name.type.instance.jsdoc", + "begin": "\\G({)", + "beginCaptures": { + "0": { + "name": "entity.name.type.instance.jsdoc" + }, + "1": { + "name": "punctuation.definition.bracket.curly.begin.jsdoc" + } + }, + "end": "((}))\\s*|(?=\\*/)", + "endCaptures": { + "1": { + "name": "entity.name.type.instance.jsdoc" + }, + "2": { + "name": "punctuation.definition.bracket.curly.end.jsdoc" + } + }, + "patterns": [ + { + "include": "#brackets" + } + ] + } + ] + } + } +} diff --git a/docs/shiki/languages/ini.tmLanguage.json b/docs/shiki/languages/ini.tmLanguage.json new file mode 100644 index 00000000..3a38fb4f --- /dev/null +++ b/docs/shiki/languages/ini.tmLanguage.json @@ -0,0 +1,113 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/textmate/ini.tmbundle/blob/master/Syntaxes/Ini.plist", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/textmate/ini.tmbundle/commit/2af0cbb0704940f967152616f2f1ff0aae6287a6", + "name": "ini", + "scopeName": "source.ini", + "patterns": [ + { + "begin": "(^[ \\t]+)?(?=#)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.ini" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": "#", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.ini" + } + }, + "end": "\\n", + "name": "comment.line.number-sign.ini" + } + ] + }, + { + "begin": "(^[ \\t]+)?(?=;)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.ini" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": ";", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.ini" + } + }, + "end": "\\n", + "name": "comment.line.semicolon.ini" + } + ] + }, + { + "captures": { + "1": { + "name": "keyword.other.definition.ini" + }, + "2": { + "name": "punctuation.separator.key-value.ini" + } + }, + "match": "\\b([a-zA-Z0-9_.-]+)\\b\\s*(=)" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.entity.ini" + }, + "3": { + "name": "punctuation.definition.entity.ini" + } + }, + "match": "^(\\[)(.*?)(\\])", + "name": "entity.name.section.group-title.ini" + }, + { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.ini" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.ini" + } + }, + "name": "string.quoted.single.ini", + "patterns": [ + { + "match": "\\\\.", + "name": "constant.character.escape.ini" + } + ] + }, + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.ini" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.ini" + } + }, + "name": "string.quoted.double.ini" + } + ] +} diff --git a/docs/shiki/languages/java.tmLanguage.json b/docs/shiki/languages/java.tmLanguage.json new file mode 100644 index 00000000..95ca7306 --- /dev/null +++ b/docs/shiki/languages/java.tmLanguage.json @@ -0,0 +1,1894 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/redhat-developer/vscode-java/blob/master/language-support/java/java.tmLanguage.json", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/redhat-developer/vscode-java/commit/5d224a552cf5f0f8ebccf69e43e2575ed2c13839", + "name": "java", + "scopeName": "source.java", + "patterns": [ + { + "begin": "\\b(package)\\b\\s*", + "beginCaptures": { + "1": { + "name": "keyword.other.package.java" + } + }, + "end": "\\s*(;)", + "endCaptures": { + "1": { + "name": "punctuation.terminator.java" + } + }, + "name": "meta.package.java", + "contentName": "storage.modifier.package.java", + "patterns": [ + { + "include": "#comments" + }, + { + "match": "(?<=\\.)\\s*\\.|\\.(?=\\s*;)", + "name": "invalid.illegal.character_not_allowed_here.java" + }, + { + "match": "(?<!_)_(?=\\s*(\\.|;))|\\b\\d+|-+", + "name": "invalid.illegal.character_not_allowed_here.java" + }, + { + "match": "[A-Z]+", + "name": "invalid.deprecated.package_name_not_lowercase.java" + }, + { + "match": "(?x)\\b(?<!\\$)\n(abstract|assert|boolean|break|byte|case|catch|char|class|\nconst|continue|default|do|double|else|enum|extends|final|\nfinally|float|for|goto|if|implements|import|instanceof|int|\ninterface|long|native|new|non-sealed|package|permits|private|protected|public|\nreturn|sealed|short|static|strictfp|super|switch|syncronized|this|\nthrow|throws|transient|try|void|volatile|while|yield|\ntrue|false|null)\\b", + "name": "invalid.illegal.character_not_allowed_here.java" + }, + { + "match": "\\.", + "name": "punctuation.separator.java" + } + ] + }, + { + "begin": "\\b(import)\\b\\s*\\b(static)?\\b\\s", + "beginCaptures": { + "1": { + "name": "keyword.other.import.java" + }, + "2": { + "name": "storage.modifier.java" + } + }, + "end": "\\s*(;)", + "endCaptures": { + "1": { + "name": "punctuation.terminator.java" + } + }, + "name": "meta.import.java", + "contentName": "storage.modifier.import.java", + "patterns": [ + { + "include": "#comments" + }, + { + "match": "(?<=\\.)\\s*\\.|\\.(?=\\s*;)", + "name": "invalid.illegal.character_not_allowed_here.java" + }, + { + "match": "(?<!\\.)\\s*\\*", + "name": "invalid.illegal.character_not_allowed_here.java" + }, + { + "match": "(?<!_)_(?=\\s*(\\.|;))|\\b\\d+|-+", + "name": "invalid.illegal.character_not_allowed_here.java" + }, + { + "match": "(?x)\\b(?<!\\$)\n(abstract|assert|boolean|break|byte|case|catch|char|class|\nconst|continue|default|do|double|else|enum|extends|final|\nfinally|float|for|goto|if|implements|import|instanceof|int|\ninterface|long|native|new|non-sealed|package|permits|private|protected|public|\nreturn|sealed|short|static|strictfp|super|switch|syncronized|this|\nthrow|throws|transient|try|void|volatile|while|yield|\ntrue|false|null)\\b", + "name": "invalid.illegal.character_not_allowed_here.java" + }, + { + "match": "\\.", + "name": "punctuation.separator.java" + }, + { + "match": "\\*", + "name": "variable.language.wildcard.java" + } + ] + }, + { + "include": "#comments-javadoc" + }, + { + "include": "#code" + }, + { + "include": "#module" + } + ], + "repository": { + "all-types": { + "patterns": [ + { + "include": "#primitive-arrays" + }, + { + "include": "#primitive-types" + }, + { + "include": "#object-types" + } + ] + }, + "annotations": { + "patterns": [ + { + "begin": "((@)\\s*([^\\s(]+))(\\()", + "beginCaptures": { + "2": { + "name": "punctuation.definition.annotation.java" + }, + "3": { + "name": "storage.type.annotation.java" + }, + "4": { + "name": "punctuation.definition.annotation-arguments.begin.bracket.round.java" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.annotation-arguments.end.bracket.round.java" + } + }, + "name": "meta.declaration.annotation.java", + "patterns": [ + { + "captures": { + "1": { + "name": "constant.other.key.java" + }, + "2": { + "name": "keyword.operator.assignment.java" + } + }, + "match": "(\\w*)\\s*(=)" + }, + { + "include": "#code" + } + ] + }, + { + "match": "(@)(interface)\\s+(\\w*)|((@)\\s*(\\w+))", + "name": "meta.declaration.annotation.java", + "captures": { + "1": { + "name": "punctuation.definition.annotation.java" + }, + "2": { + "name": "storage.modifier.java" + }, + "3": { + "name": "storage.type.annotation.java" + }, + "5": { + "name": "punctuation.definition.annotation.java" + }, + "6": { + "name": "storage.type.annotation.java" + } + } + } + ] + }, + "anonymous-block-and-instance-initializer": { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.java" + } + }, + "end": "}", + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.java" + } + }, + "patterns": [ + { + "include": "#code" + } + ] + }, + "anonymous-classes-and-new": { + "begin": "\\bnew\\b", + "beginCaptures": { + "0": { + "name": "keyword.control.new.java" + } + }, + "end": "(?=;|\\)|\\]|\\.|,|\\?|:|}|\\+|\\-|\\*|\\/(?!\\/|\\*)|%|!|&|\\||\\^|=)", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#function-call" + }, + { + "include": "#all-types" + }, + { + "begin": "(?<=\\))", + "end": "(?=;|\\)|\\]|\\.|,|\\?|:|}|\\+|\\-|\\*|\\/(?!\\/|\\*)|%|!|&|\\||\\^|=)", + "patterns": [ + { + "include": "#comments" + }, + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.section.inner-class.begin.bracket.curly.java" + } + }, + "end": "}", + "endCaptures": { + "0": { + "name": "punctuation.section.inner-class.end.bracket.curly.java" + } + }, + "name": "meta.inner-class.java", + "patterns": [ + { + "include": "#class-body" + } + ] + } + ] + }, + { + "begin": "(?<=\\])", + "end": "(?=;|\\)|\\]|\\.|,|\\?|:|}|\\+|\\-|\\*|\\/(?!\\/|\\*)|%|!|&|\\||\\^|=)", + "patterns": [ + { + "include": "#comments" + }, + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.section.array-initializer.begin.bracket.curly.java" + } + }, + "end": "}", + "endCaptures": { + "0": { + "name": "punctuation.section.array-initializer.end.bracket.curly.java" + } + }, + "name": "meta.array-initializer.java", + "patterns": [ + { + "include": "#code" + } + ] + } + ] + }, + { + "include": "#parens" + } + ] + }, + "assertions": { + "patterns": [ + { + "begin": "\\b(assert)\\s", + "beginCaptures": { + "1": { + "name": "keyword.control.assert.java" + } + }, + "end": "$", + "name": "meta.declaration.assertion.java", + "patterns": [ + { + "match": ":", + "name": "keyword.operator.assert.expression-separator.java" + }, + { + "include": "#code" + } + ] + } + ] + }, + "class": { + "begin": "(?=\\w?[\\w\\s-]*\\b(?:class|(?<!@)interface|enum)\\s+[\\w$]+)", + "end": "}", + "endCaptures": { + "0": { + "name": "punctuation.section.class.end.bracket.curly.java" + } + }, + "name": "meta.class.java", + "patterns": [ + { + "include": "#storage-modifiers" + }, + { + "include": "#generics" + }, + { + "include": "#comments" + }, + { + "captures": { + "1": { + "name": "storage.modifier.java" + }, + "2": { + "name": "entity.name.type.class.java" + } + }, + "match": "(class|(?<!@)interface|enum)\\s+([\\w$]+)", + "name": "meta.class.identifier.java" + }, + { + "begin": "extends", + "beginCaptures": { + "0": { + "name": "storage.modifier.extends.java" + } + }, + "end": "(?={|implements|permits)", + "name": "meta.definition.class.inherited.classes.java", + "patterns": [ + { + "include": "#object-types-inherited" + }, + { + "include": "#comments" + } + ] + }, + { + "begin": "(implements)\\s", + "beginCaptures": { + "1": { + "name": "storage.modifier.implements.java" + } + }, + "end": "(?=\\s*extends|permits|\\{)", + "name": "meta.definition.class.implemented.interfaces.java", + "patterns": [ + { + "include": "#object-types-inherited" + }, + { + "include": "#comments" + } + ] + }, + { + "begin": "(permits)\\s", + "beginCaptures": { + "1": { + "name": "storage.modifier.permits.java" + } + }, + "end": "(?=\\s*extends|implements|\\{)", + "name": "meta.definition.class.permits.classes.java", + "patterns": [ + { + "include": "#object-types-inherited" + }, + { + "include": "#comments" + } + ] + }, + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.section.class.begin.bracket.curly.java" + } + }, + "end": "(?=})", + "contentName": "meta.class.body.java", + "patterns": [ + { + "include": "#class-body" + } + ] + } + ] + }, + "class-body": { + "patterns": [ + { + "include": "#comments-javadoc" + }, + { + "include": "#comments" + }, + { + "include": "#enums" + }, + { + "include": "#class" + }, + { + "include": "#generics" + }, + { + "include": "#static-initializer" + }, + { + "include": "#class-fields-and-methods" + }, + { + "include": "#annotations" + }, + { + "include": "#storage-modifiers" + }, + { + "include": "#member-variables" + }, + { + "include": "#code" + } + ] + }, + "class-fields-and-methods": { + "patterns": [ + { + "begin": "(?=\\=)", + "end": "(?=;)", + "patterns": [ + { + "include": "#code" + } + ] + }, + { + "include": "#methods" + } + ] + }, + "code": { + "patterns": [ + { + "include": "#annotations" + }, + { + "include": "#comments" + }, + { + "include": "#enums" + }, + { + "include": "#class" + }, + { + "include": "#record" + }, + { + "include": "#anonymous-block-and-instance-initializer" + }, + { + "include": "#try-catch-finally" + }, + { + "include": "#assertions" + }, + { + "include": "#parens" + }, + { + "include": "#constants-and-special-vars" + }, + { + "include": "#numbers" + }, + { + "include": "#anonymous-classes-and-new" + }, + { + "include": "#lambda-expression" + }, + { + "include": "#keywords" + }, + { + "include": "#storage-modifiers" + }, + { + "include": "#method-call" + }, + { + "include": "#function-call" + }, + { + "include": "#variables" + }, + { + "include": "#variables-local" + }, + { + "include": "#objects" + }, + { + "include": "#properties" + }, + { + "include": "#strings" + }, + { + "include": "#all-types" + }, + { + "match": ",", + "name": "punctuation.separator.delimiter.java" + }, + { + "match": "\\.", + "name": "punctuation.separator.period.java" + }, + { + "match": ";", + "name": "punctuation.terminator.java" + } + ] + }, + "comments": { + "patterns": [ + { + "captures": { + "0": { + "name": "punctuation.definition.comment.java" + } + }, + "match": "/\\*\\*/", + "name": "comment.block.empty.java" + }, + { + "include": "#comments-inline" + } + ] + }, + "comments-inline": { + "patterns": [ + { + "begin": "/\\*", + "captures": { + "0": { + "name": "punctuation.definition.comment.java" + } + }, + "end": "\\*/", + "name": "comment.block.java" + }, + { + "begin": "(^[ \\t]+)?(?=//)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.java" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": "//", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.java" + } + }, + "end": "\\n", + "name": "comment.line.double-slash.java" + } + ] + } + ] + }, + "comments-javadoc": { + "patterns": [ + { + "begin": "^\\s*(/\\*\\*)(?!/)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.java" + } + }, + "end": "\\*/", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.java" + } + }, + "name": "comment.block.javadoc.java", + "patterns": [ + { + "match": "@(author|deprecated|return|see|serial|since|version)\\b", + "name": "keyword.other.documentation.javadoc.java" + }, + { + "match": "(@param)\\s+(\\S+)", + "captures": { + "1": { + "name": "keyword.other.documentation.javadoc.java" + }, + "2": { + "name": "variable.parameter.java" + } + } + }, + { + "match": "(@(?:exception|throws))\\s+(\\S+)", + "captures": { + "1": { + "name": "keyword.other.documentation.javadoc.java" + }, + "2": { + "name": "entity.name.type.class.java" + } + } + }, + { + "match": "{(@link)\\s+(\\S+)?#([\\w$]+\\s*\\([^\\(\\)]*\\)).*?}", + "captures": { + "1": { + "name": "keyword.other.documentation.javadoc.java" + }, + "2": { + "name": "entity.name.type.class.java" + }, + "3": { + "name": "variable.parameter.java" + } + } + } + ] + } + ] + }, + "constants-and-special-vars": { + "patterns": [ + { + "match": "\\b(true|false|null)\\b", + "name": "constant.language.java" + }, + { + "match": "\\bthis\\b", + "name": "variable.language.this.java" + }, + { + "match": "\\bsuper\\b", + "name": "variable.language.java" + } + ] + }, + "enums": { + "begin": "^\\s*([\\w\\s]*)(enum)\\s+(\\w+)", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#storage-modifiers" + } + ] + }, + "2": { + "name": "storage.modifier.java" + }, + "3": { + "name": "entity.name.type.enum.java" + } + }, + "end": "}", + "endCaptures": { + "0": { + "name": "punctuation.section.enum.end.bracket.curly.java" + } + }, + "name": "meta.enum.java", + "patterns": [ + { + "begin": "\\b(extends)\\b", + "beginCaptures": { + "1": { + "name": "storage.modifier.extends.java" + } + }, + "end": "(?={|\\bimplements\\b)", + "name": "meta.definition.class.inherited.classes.java", + "patterns": [ + { + "include": "#object-types-inherited" + }, + { + "include": "#comments" + } + ] + }, + { + "begin": "\\b(implements)\\b", + "beginCaptures": { + "1": { + "name": "storage.modifier.implements.java" + } + }, + "end": "(?={|\\bextends\\b)", + "name": "meta.definition.class.implemented.interfaces.java", + "patterns": [ + { + "include": "#object-types-inherited" + }, + { + "include": "#comments" + } + ] + }, + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.section.enum.begin.bracket.curly.java" + } + }, + "end": "(?=})", + "patterns": [ + { + "begin": "(?<={)", + "end": "(?=;|})", + "patterns": [ + { + "include": "#comments-javadoc" + }, + { + "include": "#comments" + }, + { + "begin": "\\b(\\w+)\\b", + "beginCaptures": { + "1": { + "name": "constant.other.enum.java" + } + }, + "end": "(,)|(?=;|})", + "endCaptures": { + "1": { + "name": "punctuation.separator.delimiter.java" + } + }, + "patterns": [ + { + "include": "#comments-javadoc" + }, + { + "include": "#comments" + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.bracket.round.java" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.bracket.round.java" + } + }, + "patterns": [ + { + "include": "#code" + } + ] + }, + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.bracket.curly.java" + } + }, + "end": "}", + "endCaptures": { + "0": { + "name": "punctuation.bracket.curly.java" + } + }, + "patterns": [ + { + "include": "#class-body" + } + ] + } + ] + } + ] + }, + { + "include": "#class-body" + } + ] + } + ] + }, + "function-call": { + "begin": "([A-Za-z_$][\\w$]*)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "entity.name.function.java" + }, + "2": { + "name": "punctuation.definition.parameters.begin.bracket.round.java" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.parameters.end.bracket.round.java" + } + }, + "name": "meta.function-call.java", + "patterns": [ + { + "include": "#code" + } + ] + }, + "generics": { + "begin": "<", + "beginCaptures": { + "0": { + "name": "punctuation.bracket.angle.java" + } + }, + "end": ">", + "endCaptures": { + "0": { + "name": "punctuation.bracket.angle.java" + } + }, + "patterns": [ + { + "match": "\\b(extends|super)\\b", + "name": "storage.modifier.$1.java" + }, + { + "match": "(?<!\\.)([a-zA-Z$_][a-zA-Z0-9$_]*)(?=\\s*<)", + "captures": { + "1": { + "name": "storage.type.java" + } + } + }, + { + "include": "#primitive-arrays" + }, + { + "match": "[a-zA-Z$_][a-zA-Z0-9$_]*", + "name": "storage.type.generic.java" + }, + { + "match": "\\?", + "name": "storage.type.generic.wildcard.java" + }, + { + "match": "&", + "name": "punctuation.separator.types.java" + }, + { + "match": ",", + "name": "punctuation.separator.delimiter.java" + }, + { + "match": "\\.", + "name": "punctuation.separator.period.java" + }, + { + "include": "#parens" + }, + { + "include": "#generics" + }, + { + "include": "#comments" + } + ] + }, + "keywords": { + "patterns": [ + { + "match": "\\bthrow\\b", + "name": "keyword.control.throw.java" + }, + { + "match": "\\?|:", + "name": "keyword.control.ternary.java" + }, + { + "match": "\\b(return|yield|break|case|continue|default|do|while|for|switch|if|else)\\b", + "name": "keyword.control.java" + }, + { + "match": "\\b(instanceof)\\b", + "name": "keyword.operator.instanceof.java" + }, + { + "match": "(<<|>>>?|~|\\^)", + "name": "keyword.operator.bitwise.java" + }, + { + "match": "((&|\\^|\\||<<|>>>?)=)", + "name": "keyword.operator.assignment.bitwise.java" + }, + { + "match": "(===?|!=|<=|>=|<>|<|>)", + "name": "keyword.operator.comparison.java" + }, + { + "match": "([+*/%-]=)", + "name": "keyword.operator.assignment.arithmetic.java" + }, + { + "match": "(=)", + "name": "keyword.operator.assignment.java" + }, + { + "match": "(\\-\\-|\\+\\+)", + "name": "keyword.operator.increment-decrement.java" + }, + { + "match": "(\\-|\\+|\\*|\\/|%)", + "name": "keyword.operator.arithmetic.java" + }, + { + "match": "(!|&&|\\|\\|)", + "name": "keyword.operator.logical.java" + }, + { + "match": "(\\||&)", + "name": "keyword.operator.bitwise.java" + }, + { + "match": "\\b(const|goto)\\b", + "name": "keyword.reserved.java" + } + ] + }, + "lambda-expression": { + "patterns": [ + { + "match": "->", + "name": "storage.type.function.arrow.java" + } + ] + }, + "member-variables": { + "begin": "(?=private|protected|public|native|synchronized|abstract|threadsafe|transient|static|final)", + "end": "(?=\\=|;)", + "patterns": [ + { + "include": "#storage-modifiers" + }, + { + "include": "#variables" + }, + { + "include": "#primitive-arrays" + }, + { + "include": "#object-types" + } + ] + }, + "method-call": { + "begin": "(\\.)\\s*([A-Za-z_$][\\w$]*)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "punctuation.separator.period.java" + }, + "2": { + "name": "entity.name.function.java" + }, + "3": { + "name": "punctuation.definition.parameters.begin.bracket.round.java" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.parameters.end.bracket.round.java" + } + }, + "name": "meta.method-call.java", + "patterns": [ + { + "include": "#code" + } + ] + }, + "methods": { + "begin": "(?!new)(?=[\\w<].*\\s+)(?=([^=/]|/(?!/))+\\()", + "end": "(})|(?=;)", + "endCaptures": { + "1": { + "name": "punctuation.section.method.end.bracket.curly.java" + } + }, + "name": "meta.method.java", + "patterns": [ + { + "include": "#storage-modifiers" + }, + { + "begin": "(\\w+)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "entity.name.function.java" + }, + "2": { + "name": "punctuation.definition.parameters.begin.bracket.round.java" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.parameters.end.bracket.round.java" + } + }, + "name": "meta.method.identifier.java", + "patterns": [ + { + "include": "#parameters" + }, + { + "include": "#parens" + }, + { + "include": "#comments" + } + ] + }, + { + "include": "#generics" + }, + { + "begin": "(?=\\w.*\\s+\\w+\\s*\\()", + "end": "(?=\\s+\\w+\\s*\\()", + "name": "meta.method.return-type.java", + "patterns": [ + { + "include": "#all-types" + }, + { + "include": "#parens" + }, + { + "include": "#comments" + } + ] + }, + { + "include": "#throws" + }, + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.section.method.begin.bracket.curly.java" + } + }, + "end": "(?=})", + "contentName": "meta.method.body.java", + "patterns": [ + { + "include": "#code" + } + ] + }, + { + "include": "#comments" + } + ] + }, + "module": { + "begin": "((open)\\s)?(module)\\s+(\\w+)", + "end": "}", + "beginCaptures": { + "1": { + "name": "storage.modifier.java" + }, + "3": { + "name": "storage.modifier.java" + }, + "4": { + "name": "entity.name.type.module.java" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.module.end.bracket.curly.java" + } + }, + "name": "meta.module.java", + "patterns": [ + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.section.module.begin.bracket.curly.java" + } + }, + "end": "(?=})", + "contentName": "meta.module.body.java", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#comments-javadoc" + }, + { + "match": "\\b(requires|transitive|exports|opens|to|uses|provides|with)\\b", + "name": "keyword.module.java" + } + ] + } + ] + }, + "numbers": { + "patterns": [ + { + "match": "(?x)\n\\b(?<!\\$)\n0(x|X)\n(\n (?<!\\.)[0-9a-fA-F]([0-9a-fA-F_]*[0-9a-fA-F])?[Ll]?(?!\\.)\n |\n (\n [0-9a-fA-F]([0-9a-fA-F_]*[0-9a-fA-F])?\\.?\n |\n ([0-9a-fA-F]([0-9a-fA-F_]*[0-9a-fA-F])?)?\\.[0-9a-fA-F]([0-9a-fA-F_]*[0-9a-fA-F])?\n )\n [Pp][+-]?[0-9]([0-9_]*[0-9])?[FfDd]?\n)\n\\b(?!\\$)", + "name": "constant.numeric.hex.java" + }, + { + "match": "\\b(?<!\\$)0(b|B)[01]([01_]*[01])?[Ll]?\\b(?!\\$)", + "name": "constant.numeric.binary.java" + }, + { + "match": "\\b(?<!\\$)0[0-7]([0-7_]*[0-7])?[Ll]?\\b(?!\\$)", + "name": "constant.numeric.octal.java" + }, + { + "match": "(?x)\n(?<!\\$)\n(\n \\b[0-9]([0-9_]*[0-9])?\\.\\B(?!\\.)\n |\n \\b[0-9]([0-9_]*[0-9])?\\.([Ee][+-]?[0-9]([0-9_]*[0-9])?)[FfDd]?\\b\n |\n \\b[0-9]([0-9_]*[0-9])?\\.([Ee][+-]?[0-9]([0-9_]*[0-9])?)?[FfDd]\\b\n |\n \\b[0-9]([0-9_]*[0-9])?\\.([0-9]([0-9_]*[0-9])?)([Ee][+-]?[0-9]([0-9_]*[0-9])?)?[FfDd]?\\b\n |\n (?<!\\.)\\B\\.[0-9]([0-9_]*[0-9])?([Ee][+-]?[0-9]([0-9_]*[0-9])?)?[FfDd]?\\b\n |\n \\b[0-9]([0-9_]*[0-9])?([Ee][+-]?[0-9]([0-9_]*[0-9])?)[FfDd]?\\b\n |\n \\b[0-9]([0-9_]*[0-9])?([Ee][+-]?[0-9]([0-9_]*[0-9])?)?[FfDd]\\b\n |\n \\b(0|[1-9]([0-9_]*[0-9])?)(?!\\.)[Ll]?\\b\n)\n(?!\\$)", + "name": "constant.numeric.decimal.java" + } + ] + }, + "object-types": { + "patterns": [ + { + "include": "#generics" + }, + { + "begin": "\\b((?:[A-Za-z_]\\w*\\s*\\.\\s*)*)([A-Z_]\\w*)\\s*(?=\\[)", + "beginCaptures": { + "1": { + "patterns": [ + { + "match": "[A-Za-z_]\\w*", + "name": "storage.type.java" + }, + { + "match": "\\.", + "name": "punctuation.separator.period.java" + } + ] + }, + "2": { + "name": "storage.type.object.array.java" + } + }, + "end": "(?!\\s*\\[)", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#parens" + } + ] + }, + { + "match": "\\b((?:[A-Za-z_]\\w*\\s*\\.\\s*)*[A-Z_]\\w*)\\s*(?=<)", + "captures": { + "1": { + "patterns": [ + { + "match": "[A-Za-z_]\\w*", + "name": "storage.type.java" + }, + { + "match": "\\.", + "name": "punctuation.separator.period.java" + } + ] + } + } + }, + { + "match": "\\b((?:[A-Za-z_]\\w*\\s*\\.\\s*)*[A-Z_]\\w*)\\b((?=\\s*[A-Za-z$_\\n])|(?=\\s*\\.\\.\\.))", + "captures": { + "1": { + "patterns": [ + { + "match": "[A-Za-z_]\\w*", + "name": "storage.type.java" + }, + { + "match": "\\.", + "name": "punctuation.separator.period.java" + } + ] + } + } + } + ] + }, + "object-types-inherited": { + "patterns": [ + { + "include": "#generics" + }, + { + "match": "\\b(?:[A-Z]\\w*\\s*(\\.)\\s*)*[A-Z]\\w*\\b", + "name": "entity.other.inherited-class.java", + "captures": { + "1": { + "name": "punctuation.separator.period.java" + } + } + }, + { + "match": ",", + "name": "punctuation.separator.delimiter.java" + } + ] + }, + "objects": { + "match": "(?<![\\w$])[a-zA-Z_$][\\w$]*(?=\\s*\\.\\s*[\\w$]+)", + "name": "variable.other.object.java" + }, + "parameters": { + "patterns": [ + { + "match": "\\bfinal\\b", + "name": "storage.modifier.java" + }, + { + "include": "#annotations" + }, + { + "include": "#all-types" + }, + { + "include": "#strings" + }, + { + "match": "\\w+", + "name": "variable.parameter.java" + }, + { + "match": ",", + "name": "punctuation.separator.delimiter.java" + }, + { + "match": "\\.\\.\\.", + "name": "punctuation.definition.parameters.varargs.java" + } + ] + }, + "parens": { + "patterns": [ + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.bracket.round.java" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.bracket.round.java" + } + }, + "patterns": [ + { + "include": "#code" + } + ] + }, + { + "begin": "\\[", + "beginCaptures": { + "0": { + "name": "punctuation.bracket.square.java" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.bracket.square.java" + } + }, + "patterns": [ + { + "include": "#code" + } + ] + }, + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.bracket.curly.java" + } + }, + "end": "}", + "endCaptures": { + "0": { + "name": "punctuation.bracket.curly.java" + } + }, + "patterns": [ + { + "include": "#code" + } + ] + } + ] + }, + "primitive-arrays": { + "patterns": [ + { + "begin": "\\b(void|boolean|byte|char|short|int|float|long|double)\\b\\s*(?=\\[)", + "beginCaptures": { + "1": { + "name": "storage.type.primitive.array.java" + } + }, + "end": "(?!\\s*\\[)", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#parens" + } + ] + } + ] + }, + "primitive-types": { + "match": "\\b(void|boolean|byte|char|short|int|float|long|double)\\b", + "name": "storage.type.primitive.java" + }, + "properties": { + "patterns": [ + { + "match": "(\\.)\\s*(new)", + "captures": { + "1": { + "name": "punctuation.separator.period.java" + }, + "2": { + "name": "keyword.control.new.java" + } + } + }, + { + "match": "(\\.)\\s*([a-zA-Z_$][\\w$]*)(?=\\s*\\.\\s*[a-zA-Z_$][\\w$]*)", + "captures": { + "1": { + "name": "punctuation.separator.period.java" + }, + "2": { + "name": "variable.other.object.property.java" + } + } + }, + { + "match": "(\\.)\\s*([a-zA-Z_$][\\w$]*)", + "captures": { + "1": { + "name": "punctuation.separator.period.java" + }, + "2": { + "name": "variable.other.object.property.java" + } + } + }, + { + "match": "(\\.)\\s*([0-9][\\w$]*)", + "captures": { + "1": { + "name": "punctuation.separator.period.java" + }, + "2": { + "name": "invalid.illegal.identifier.java" + } + } + } + ] + }, + "record": { + "begin": "(?=\\w?[\\w\\s]*\\b(?:record)\\s+[\\w$]+)", + "end": "}", + "endCaptures": { + "0": { + "name": "punctuation.section.class.end.bracket.curly.java" + } + }, + "name": "meta.record.java", + "patterns": [ + { + "include": "#storage-modifiers" + }, + { + "include": "#generics" + }, + { + "include": "#comments" + }, + { + "begin": "(record)\\s+([\\w$]+)(<[\\w$]+>)?(\\()", + "beginCaptures": { + "1": { + "name": "storage.modifier.java" + }, + "2": { + "name": "entity.name.type.record.java" + }, + "3": { + "patterns": [ + { + "include": "#generics" + } + ] + }, + "4": { + "name": "punctuation.definition.parameters.begin.bracket.round.java" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.parameters.end.bracket.round.java" + } + }, + "name": "meta.record.identifier.java", + "patterns": [ + { + "include": "#code" + } + ] + }, + { + "begin": "(implements)\\s", + "beginCaptures": { + "1": { + "name": "storage.modifier.implements.java" + } + }, + "end": "(?=\\s*\\{)", + "name": "meta.definition.class.implemented.interfaces.java", + "patterns": [ + { + "include": "#object-types-inherited" + }, + { + "include": "#comments" + } + ] + }, + { + "include": "#record-body" + } + ] + }, + "record-body": { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.section.class.begin.bracket.curly.java" + } + }, + "end": "(?=})", + "name": "meta.record.body.java", + "patterns": [ + { + "include": "#record-constructor" + }, + { + "include": "#class-body" + } + ] + }, + "record-constructor": { + "begin": "(?!new)(?=[\\w<].*\\s+)(?=([^\\(=/]|/(?!/))+(?={))", + "end": "(})|(?=;)", + "endCaptures": { + "1": { + "name": "punctuation.section.method.end.bracket.curly.java" + } + }, + "name": "meta.method.java", + "patterns": [ + { + "include": "#storage-modifiers" + }, + { + "begin": "(\\w+)", + "beginCaptures": { + "1": { + "name": "entity.name.function.java" + } + }, + "end": "(?=\\s*{)", + "name": "meta.method.identifier.java", + "patterns": [ + { + "include": "#comments" + } + ] + }, + { + "include": "#comments" + }, + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.section.method.begin.bracket.curly.java" + } + }, + "end": "(?=})", + "contentName": "meta.method.body.java", + "patterns": [ + { + "include": "#code" + } + ] + } + ] + }, + "static-initializer": { + "patterns": [ + { + "include": "#anonymous-block-and-instance-initializer" + }, + { + "match": "static", + "name": "storage.modifier.java" + } + ] + }, + "storage-modifiers": { + "match": "\\b(public|private|protected|static|final|native|synchronized|abstract|threadsafe|transient|volatile|default|strictfp|sealed|non-sealed)\\b", + "name": "storage.modifier.java" + }, + "strings": { + "patterns": [ + { + "begin": "\"\"\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.java" + } + }, + "end": "\"\"\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.java" + } + }, + "name": "string.quoted.triple.java", + "patterns": [ + { + "match": "\\\\\"\"\"", + "name": "constant.character.escape.java" + }, + { + "match": "\\\\.", + "name": "constant.character.escape.java" + } + ] + }, + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.java" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.java" + } + }, + "name": "string.quoted.double.java", + "patterns": [ + { + "match": "\\\\.", + "name": "constant.character.escape.java" + } + ] + }, + { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.java" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.java" + } + }, + "name": "string.quoted.single.java", + "patterns": [ + { + "match": "\\\\.", + "name": "constant.character.escape.java" + } + ] + } + ] + }, + "throws": { + "begin": "throws", + "beginCaptures": { + "0": { + "name": "storage.modifier.java" + } + }, + "end": "(?={|;)", + "name": "meta.throwables.java", + "patterns": [ + { + "match": ",", + "name": "punctuation.separator.delimiter.java" + }, + { + "match": "[a-zA-Z$_][\\.a-zA-Z0-9$_]*", + "name": "storage.type.java" + }, + { + "include": "#comments" + } + ] + }, + "try-catch-finally": { + "patterns": [ + { + "begin": "\\btry\\b", + "beginCaptures": { + "0": { + "name": "keyword.control.try.java" + } + }, + "end": "}", + "endCaptures": { + "0": { + "name": "punctuation.section.try.end.bracket.curly.java" + } + }, + "name": "meta.try.java", + "patterns": [ + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.section.try.resources.begin.bracket.round.java" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.try.resources.end.bracket.round.java" + } + }, + "name": "meta.try.resources.java", + "patterns": [ + { + "include": "#code" + } + ] + }, + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.section.try.begin.bracket.curly.java" + } + }, + "end": "(?=})", + "contentName": "meta.try.body.java", + "patterns": [ + { + "include": "#code" + } + ] + } + ] + }, + { + "begin": "\\b(catch)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.catch.java" + } + }, + "end": "}", + "endCaptures": { + "0": { + "name": "punctuation.section.catch.end.bracket.curly.java" + } + }, + "name": "meta.catch.java", + "patterns": [ + { + "include": "#comments" + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.parameters.begin.bracket.round.java" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.parameters.end.bracket.round.java" + } + }, + "contentName": "meta.catch.parameters.java", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#storage-modifiers" + }, + { + "begin": "[a-zA-Z$_][\\.a-zA-Z0-9$_]*", + "beginCaptures": { + "0": { + "name": "storage.type.java" + } + }, + "end": "(\\|)|(?=\\))", + "endCaptures": { + "1": { + "name": "punctuation.catch.separator.java" + } + }, + "patterns": [ + { + "include": "#comments" + }, + { + "match": "\\w+", + "captures": { + "0": { + "name": "variable.parameter.java" + } + } + } + ] + } + ] + }, + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.section.catch.begin.bracket.curly.java" + } + }, + "end": "(?=})", + "contentName": "meta.catch.body.java", + "patterns": [ + { + "include": "#code" + } + ] + } + ] + }, + { + "begin": "\\bfinally\\b", + "beginCaptures": { + "0": { + "name": "keyword.control.finally.java" + } + }, + "end": "}", + "endCaptures": { + "0": { + "name": "punctuation.section.finally.end.bracket.curly.java" + } + }, + "name": "meta.finally.java", + "patterns": [ + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.section.finally.begin.bracket.curly.java" + } + }, + "end": "(?=})", + "contentName": "meta.finally.body.java", + "patterns": [ + { + "include": "#code" + } + ] + } + ] + } + ] + }, + "variables": { + "begin": "(?x)\n(?=\n \\b\n (\n (void|boolean|byte|char|short|int|float|long|double)\n |\n (?>(\\w+\\.)*[A-Z_]+\\w*) # e.g. `javax.ws.rs.Response`, or `String`\n )\n \\b\n \\s*\n (\n <[\\w<>,\\.?\\s\\[\\]]*> # e.g. `HashMap<Integer, String>`, or `List<java.lang.String>`\n )?\n \\s*\n (\n (\\[\\])* # int[][]\n )?\n \\s+\n [A-Za-z_$][\\w$]* # At least one identifier after space\n ([\\w\\[\\],$][\\w\\[\\],\\s]*)? # possibly primitive array or additional identifiers\n \\s*(=|:|;)\n)", + "end": "(?=\\=|:|;)", + "name": "meta.definition.variable.java", + "patterns": [ + { + "match": "([A-Za-z$_][\\w$]*)(?=\\s*(\\[\\])*\\s*(;|:|=|,))", + "captures": { + "1": { + "name": "variable.other.definition.java" + } + } + }, + { + "include": "#all-types" + }, + { + "include": "#code" + } + ] + }, + "variables-local": { + "begin": "(?=\\b(var)\\b\\s+[A-Za-z_$][\\w$]*\\s*(=|:|;))", + "end": "(?=\\=|:|;)", + "name": "meta.definition.variable.local.java", + "patterns": [ + { + "match": "\\bvar\\b", + "name": "storage.type.local.java" + }, + { + "match": "([A-Za-z$_][\\w$]*)(?=\\s*(\\[\\])*\\s*(=|:|;))", + "captures": { + "1": { + "name": "variable.other.definition.java" + } + } + }, + { + "include": "#code" + } + ] + } + } +} diff --git a/docs/shiki/languages/javascript.tmLanguage.json b/docs/shiki/languages/javascript.tmLanguage.json new file mode 100644 index 00000000..6917aa95 --- /dev/null +++ b/docs/shiki/languages/javascript.tmLanguage.json @@ -0,0 +1,5989 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/microsoft/TypeScript-TmLanguage/blob/master/TypeScriptReact.tmLanguage", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/microsoft/TypeScript-TmLanguage/commit/8c7482b94b548eab56da64dbfb30b82589b3f747", + "name": "javascript", + "scopeName": "source.js", + "patterns": [ + { + "include": "#directives" + }, + { + "include": "#statements" + }, + { + "include": "#shebang" + } + ], + "repository": { + "shebang": { + "name": "comment.line.shebang.js", + "match": "\\A(#!).*(?=$)", + "captures": { + "1": { + "name": "punctuation.definition.comment.js" + } + } + }, + "statements": { + "patterns": [ + { + "include": "#declaration" + }, + { + "include": "#control-statement" + }, + { + "include": "#after-operator-block-as-object-literal" + }, + { + "include": "#decl-block" + }, + { + "include": "#label" + }, + { + "include": "#expression" + }, + { + "include": "#punctuation-semicolon" + }, + { + "include": "#string" + }, + { + "include": "#comment" + } + ] + }, + "declaration": { + "patterns": [ + { + "include": "#decorator" + }, + { + "include": "#var-expr" + }, + { + "include": "#function-declaration" + }, + { + "include": "#class-declaration" + }, + { + "include": "#interface-declaration" + }, + { + "include": "#enum-declaration" + }, + { + "include": "#namespace-declaration" + }, + { + "include": "#type-alias-declaration" + }, + { + "include": "#import-equals-declaration" + }, + { + "include": "#import-declaration" + }, + { + "include": "#export-declaration" + }, + { + "name": "storage.modifier.js", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(declare|export)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + } + ] + }, + "control-statement": { + "patterns": [ + { + "include": "#switch-statement" + }, + { + "include": "#for-loop" + }, + { + "name": "keyword.control.trycatch.js", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(catch|finally|throw|try)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(break|continue|goto)\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "captures": { + "1": { + "name": "keyword.control.loop.js" + }, + "2": { + "name": "entity.name.label.js" + } + } + }, + { + "name": "keyword.control.loop.js", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(break|continue|do|goto|while)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(return)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "beginCaptures": { + "0": { + "name": "keyword.control.flow.js" + } + }, + "end": "(?=[;}]|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "name": "keyword.control.switch.js", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(case|default|switch)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "include": "#if-statement" + }, + { + "name": "keyword.control.conditional.js", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(else|if)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "name": "keyword.control.with.js", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(with)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "name": "keyword.control.js", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(package)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "name": "keyword.other.debugger.js", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(debugger)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + } + ] + }, + "label": { + "patterns": [ + { + "begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)(?=\\s*\\{)", + "beginCaptures": { + "1": { + "name": "entity.name.label.js" + }, + "2": { + "name": "punctuation.separator.label.js" + } + }, + "end": "(?<=\\})", + "patterns": [ + { + "include": "#decl-block" + } + ] + }, + { + "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)", + "captures": { + "1": { + "name": "entity.name.label.js" + }, + "2": { + "name": "punctuation.separator.label.js" + } + } + } + ] + }, + "expression": { + "patterns": [ + { + "include": "#expressionWithoutIdentifiers" + }, + { + "include": "#identifiers" + }, + { + "include": "#expressionPunctuations" + } + ] + }, + "expressionWithoutIdentifiers": { + "patterns": [ + { + "include": "#jsx" + }, + { + "include": "#string" + }, + { + "include": "#regex" + }, + { + "include": "#comment" + }, + { + "include": "#function-expression" + }, + { + "include": "#class-expression" + }, + { + "include": "#arrow-function" + }, + { + "include": "#paren-expression-possibly-arrow" + }, + { + "include": "#cast" + }, + { + "include": "#ternary-expression" + }, + { + "include": "#new-expr" + }, + { + "include": "#instanceof-expr" + }, + { + "include": "#object-literal" + }, + { + "include": "#expression-operators" + }, + { + "include": "#function-call" + }, + { + "include": "#literal" + }, + { + "include": "#support-objects" + }, + { + "include": "#paren-expression" + } + ] + }, + "expressionPunctuations": { + "patterns": [ + { + "include": "#punctuation-comma" + }, + { + "include": "#punctuation-accessor" + } + ] + }, + "decorator": { + "name": "meta.decorator.js", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))\\@", + "beginCaptures": { + "0": { + "name": "punctuation.decorator.js" + } + }, + "end": "(?=\\s)", + "patterns": [ + { + "include": "#expression" + } + ] + }, + "var-expr": { + "patterns": [ + { + "name": "meta.var.expr.js", + "begin": "(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))", + "end": "(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=^|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?<!^let|[^\\._$[:alnum:]]let|^var|[^\\._$[:alnum:]]var)(?=\\s*$)))", + "patterns": [ + { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", + "beginCaptures": { + "1": { + "name": "keyword.control.export.js" + }, + "2": { + "name": "storage.modifier.js" + }, + "3": { + "name": "storage.type.js" + } + }, + "end": "(?=\\S)" + }, + { + "include": "#destructuring-variable" + }, + { + "include": "#var-single-variable" + }, + { + "include": "#variable-initializer" + }, + { + "include": "#comment" + }, + { + "begin": "(,)\\s*(?=$|\\/\\/)", + "beginCaptures": { + "1": { + "name": "punctuation.separator.comma.js" + } + }, + "end": "(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))", + "patterns": [ + { + "include": "#single-line-comment-consuming-line-ending" + }, + { + "include": "#comment" + }, + { + "include": "#destructuring-variable" + }, + { + "include": "#var-single-variable" + }, + { + "include": "#punctuation-comma" + } + ] + }, + { + "include": "#punctuation-comma" + } + ] + }, + { + "name": "meta.var.expr.js", + "begin": "(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))", + "beginCaptures": { + "1": { + "name": "keyword.control.export.js" + }, + "2": { + "name": "storage.modifier.js" + }, + "3": { + "name": "storage.type.js" + } + }, + "end": "(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=^|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?<!^const|[^\\._$[:alnum:]]const)(?=\\s*$)))", + "patterns": [ + { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", + "beginCaptures": { + "1": { + "name": "keyword.control.export.js" + }, + "2": { + "name": "storage.modifier.js" + }, + "3": { + "name": "storage.type.js" + } + }, + "end": "(?=\\S)" + }, + { + "include": "#destructuring-const" + }, + { + "include": "#var-single-const" + }, + { + "include": "#variable-initializer" + }, + { + "include": "#comment" + }, + { + "begin": "(,)\\s*(?=$|\\/\\/)", + "beginCaptures": { + "1": { + "name": "punctuation.separator.comma.js" + } + }, + "end": "(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))", + "patterns": [ + { + "include": "#single-line-comment-consuming-line-ending" + }, + { + "include": "#comment" + }, + { + "include": "#destructuring-const" + }, + { + "include": "#var-single-const" + }, + { + "include": "#punctuation-comma" + } + ] + }, + { + "include": "#punctuation-comma" + } + ] + }, + { + "name": "meta.var.expr.js", + "begin": "(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))", + "beginCaptures": { + "1": { + "name": "keyword.control.export.js" + }, + "2": { + "name": "storage.modifier.js" + }, + "3": { + "name": "storage.type.js" + } + }, + "end": "(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?<!^using|[^\\._$[:alnum:]]using|^await\\s+using|[^\\._$[:alnum:]]await\\s+using)(?=\\s*$)))", + "patterns": [ + { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", + "beginCaptures": { + "1": { + "name": "keyword.control.export.js" + }, + "2": { + "name": "storage.modifier.js" + }, + "3": { + "name": "storage.type.js" + } + }, + "end": "(?=\\S)" + }, + { + "include": "#var-single-const" + }, + { + "include": "#variable-initializer" + }, + { + "include": "#comment" + }, + { + "begin": "(,)\\s*((?!\\S)|(?=\\/\\/))", + "beginCaptures": { + "1": { + "name": "punctuation.separator.comma.js" + } + }, + "end": "(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))", + "patterns": [ + { + "include": "#single-line-comment-consuming-line-ending" + }, + { + "include": "#comment" + }, + { + "include": "#var-single-const" + }, + { + "include": "#punctuation-comma" + } + ] + }, + { + "include": "#punctuation-comma" + } + ] + } + ] + }, + "var-single-variable": { + "patterns": [ + { + "name": "meta.var-single-variable.expr.js", + "begin": "(?x)([_$[:alpha:]][_$[:alnum:]]*)(\\!)?(?=\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", + "beginCaptures": { + "1": { + "name": "meta.definition.variable.js entity.name.function.js" + }, + "2": { + "name": "keyword.operator.definiteassignment.js" + } + }, + "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", + "patterns": [ + { + "include": "#var-single-variable-type-annotation" + } + ] + }, + { + "name": "meta.var-single-variable.expr.js", + "begin": "([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])(\\!)?", + "beginCaptures": { + "1": { + "name": "meta.definition.variable.js variable.other.constant.js" + }, + "2": { + "name": "keyword.operator.definiteassignment.js" + } + }, + "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", + "patterns": [ + { + "include": "#var-single-variable-type-annotation" + } + ] + }, + { + "name": "meta.var-single-variable.expr.js", + "begin": "([_$[:alpha:]][_$[:alnum:]]*)(\\!)?", + "beginCaptures": { + "1": { + "name": "meta.definition.variable.js variable.other.readwrite.js" + }, + "2": { + "name": "keyword.operator.definiteassignment.js" + } + }, + "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", + "patterns": [ + { + "include": "#var-single-variable-type-annotation" + } + ] + } + ] + }, + "var-single-const": { + "patterns": [ + { + "name": "meta.var-single-variable.expr.js", + "begin": "(?x)([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", + "beginCaptures": { + "1": { + "name": "meta.definition.variable.js variable.other.constant.js entity.name.function.js" + } + }, + "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", + "patterns": [ + { + "include": "#var-single-variable-type-annotation" + } + ] + }, + { + "name": "meta.var-single-variable.expr.js", + "begin": "([_$[:alpha:]][_$[:alnum:]]*)", + "beginCaptures": { + "1": { + "name": "meta.definition.variable.js variable.other.constant.js" + } + }, + "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", + "patterns": [ + { + "include": "#var-single-variable-type-annotation" + } + ] + } + ] + }, + "var-single-variable-type-annotation": { + "patterns": [ + { + "include": "#type-annotation" + }, + { + "include": "#string" + }, + { + "include": "#comment" + } + ] + }, + "destructuring-variable": { + "patterns": [ + { + "name": "meta.object-binding-pattern-variable.js", + "begin": "(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\{)", + "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", + "patterns": [ + { + "include": "#object-binding-pattern" + }, + { + "include": "#type-annotation" + }, + { + "include": "#comment" + } + ] + }, + { + "name": "meta.array-binding-pattern-variable.js", + "begin": "(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\[)", + "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", + "patterns": [ + { + "include": "#array-binding-pattern" + }, + { + "include": "#type-annotation" + }, + { + "include": "#comment" + } + ] + } + ] + }, + "destructuring-const": { + "patterns": [ + { + "name": "meta.object-binding-pattern-variable.js", + "begin": "(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\{)", + "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", + "patterns": [ + { + "include": "#object-binding-pattern-const" + }, + { + "include": "#type-annotation" + }, + { + "include": "#comment" + } + ] + }, + { + "name": "meta.array-binding-pattern-variable.js", + "begin": "(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\[)", + "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", + "patterns": [ + { + "include": "#array-binding-pattern-const" + }, + { + "include": "#type-annotation" + }, + { + "include": "#comment" + } + ] + } + ] + }, + "object-binding-element": { + "patterns": [ + { + "include": "#comment" + }, + { + "begin": "(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))", + "end": "(?=,|\\})", + "patterns": [ + { + "include": "#object-binding-element-propertyName" + }, + { + "include": "#binding-element" + } + ] + }, + { + "include": "#object-binding-pattern" + }, + { + "include": "#destructuring-variable-rest" + }, + { + "include": "#variable-initializer" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "object-binding-element-const": { + "patterns": [ + { + "include": "#comment" + }, + { + "begin": "(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))", + "end": "(?=,|\\})", + "patterns": [ + { + "include": "#object-binding-element-propertyName" + }, + { + "include": "#binding-element-const" + } + ] + }, + { + "include": "#object-binding-pattern-const" + }, + { + "include": "#destructuring-variable-rest-const" + }, + { + "include": "#variable-initializer" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "object-binding-element-propertyName": { + "begin": "(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))", + "end": "(:)", + "endCaptures": { + "0": { + "name": "punctuation.destructuring.js" + } + }, + "patterns": [ + { + "include": "#string" + }, + { + "include": "#array-literal" + }, + { + "include": "#numeric-literal" + }, + { + "name": "variable.object.property.js", + "match": "([_$[:alpha:]][_$[:alnum:]]*)" + } + ] + }, + "binding-element": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#string" + }, + { + "include": "#numeric-literal" + }, + { + "include": "#regex" + }, + { + "include": "#object-binding-pattern" + }, + { + "include": "#array-binding-pattern" + }, + { + "include": "#destructuring-variable-rest" + }, + { + "include": "#variable-initializer" + } + ] + }, + "binding-element-const": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#string" + }, + { + "include": "#numeric-literal" + }, + { + "include": "#regex" + }, + { + "include": "#object-binding-pattern-const" + }, + { + "include": "#array-binding-pattern-const" + }, + { + "include": "#destructuring-variable-rest-const" + }, + { + "include": "#variable-initializer" + } + ] + }, + "destructuring-variable-rest": { + "match": "(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)", + "captures": { + "1": { + "name": "keyword.operator.rest.js" + }, + "2": { + "name": "meta.definition.variable.js variable.other.readwrite.js" + } + } + }, + "destructuring-variable-rest-const": { + "match": "(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)", + "captures": { + "1": { + "name": "keyword.operator.rest.js" + }, + "2": { + "name": "meta.definition.variable.js variable.other.constant.js" + } + } + }, + "object-binding-pattern": { + "begin": "(?:(\\.\\.\\.)\\s*)?(\\{)", + "beginCaptures": { + "1": { + "name": "keyword.operator.rest.js" + }, + "2": { + "name": "punctuation.definition.binding-pattern.object.js" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.binding-pattern.object.js" + } + }, + "patterns": [ + { + "include": "#object-binding-element" + } + ] + }, + "object-binding-pattern-const": { + "begin": "(?:(\\.\\.\\.)\\s*)?(\\{)", + "beginCaptures": { + "1": { + "name": "keyword.operator.rest.js" + }, + "2": { + "name": "punctuation.definition.binding-pattern.object.js" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.binding-pattern.object.js" + } + }, + "patterns": [ + { + "include": "#object-binding-element-const" + } + ] + }, + "array-binding-pattern": { + "begin": "(?:(\\.\\.\\.)\\s*)?(\\[)", + "beginCaptures": { + "1": { + "name": "keyword.operator.rest.js" + }, + "2": { + "name": "punctuation.definition.binding-pattern.array.js" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.binding-pattern.array.js" + } + }, + "patterns": [ + { + "include": "#binding-element" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "array-binding-pattern-const": { + "begin": "(?:(\\.\\.\\.)\\s*)?(\\[)", + "beginCaptures": { + "1": { + "name": "keyword.operator.rest.js" + }, + "2": { + "name": "punctuation.definition.binding-pattern.array.js" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.binding-pattern.array.js" + } + }, + "patterns": [ + { + "include": "#binding-element-const" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "parameter-name": { + "patterns": [ + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)", + "captures": { + "1": { + "name": "storage.modifier.js" + } + } + }, + { + "match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", + "captures": { + "1": { + "name": "storage.modifier.js" + }, + "2": { + "name": "keyword.operator.rest.js" + }, + "3": { + "name": "entity.name.function.js variable.language.this.js" + }, + "4": { + "name": "entity.name.function.js" + }, + "5": { + "name": "keyword.operator.optional.js" + } + } + }, + { + "match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)", + "captures": { + "1": { + "name": "storage.modifier.js" + }, + "2": { + "name": "keyword.operator.rest.js" + }, + "3": { + "name": "variable.parameter.js variable.language.this.js" + }, + "4": { + "name": "variable.parameter.js" + }, + "5": { + "name": "keyword.operator.optional.js" + } + } + } + ] + }, + "destructuring-parameter": { + "patterns": [ + { + "name": "meta.parameter.object-binding-pattern.js", + "begin": "(?<!=|:)\\s*(?:(\\.\\.\\.)\\s*)?(\\{)", + "beginCaptures": { + "1": { + "name": "keyword.operator.rest.js" + }, + "2": { + "name": "punctuation.definition.binding-pattern.object.js" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.binding-pattern.object.js" + } + }, + "patterns": [ + { + "include": "#parameter-object-binding-element" + } + ] + }, + { + "name": "meta.paramter.array-binding-pattern.js", + "begin": "(?<!=|:)\\s*(?:(\\.\\.\\.)\\s*)?(\\[)", + "beginCaptures": { + "1": { + "name": "keyword.operator.rest.js" + }, + "2": { + "name": "punctuation.definition.binding-pattern.array.js" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.binding-pattern.array.js" + } + }, + "patterns": [ + { + "include": "#parameter-binding-element" + }, + { + "include": "#punctuation-comma" + } + ] + } + ] + }, + "parameter-object-binding-element": { + "patterns": [ + { + "include": "#comment" + }, + { + "begin": "(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))", + "end": "(?=,|\\})", + "patterns": [ + { + "include": "#object-binding-element-propertyName" + }, + { + "include": "#parameter-binding-element" + }, + { + "include": "#paren-expression" + } + ] + }, + { + "include": "#parameter-object-binding-pattern" + }, + { + "include": "#destructuring-parameter-rest" + }, + { + "include": "#variable-initializer" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "parameter-binding-element": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#string" + }, + { + "include": "#numeric-literal" + }, + { + "include": "#regex" + }, + { + "include": "#parameter-object-binding-pattern" + }, + { + "include": "#parameter-array-binding-pattern" + }, + { + "include": "#destructuring-parameter-rest" + }, + { + "include": "#variable-initializer" + } + ] + }, + "destructuring-parameter-rest": { + "match": "(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)", + "captures": { + "1": { + "name": "keyword.operator.rest.js" + }, + "2": { + "name": "variable.parameter.js" + } + } + }, + "parameter-object-binding-pattern": { + "begin": "(?:(\\.\\.\\.)\\s*)?(\\{)", + "beginCaptures": { + "1": { + "name": "keyword.operator.rest.js" + }, + "2": { + "name": "punctuation.definition.binding-pattern.object.js" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.binding-pattern.object.js" + } + }, + "patterns": [ + { + "include": "#parameter-object-binding-element" + } + ] + }, + "parameter-array-binding-pattern": { + "begin": "(?:(\\.\\.\\.)\\s*)?(\\[)", + "beginCaptures": { + "1": { + "name": "keyword.operator.rest.js" + }, + "2": { + "name": "punctuation.definition.binding-pattern.array.js" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.binding-pattern.array.js" + } + }, + "patterns": [ + { + "include": "#parameter-binding-element" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "field-declaration": { + "name": "meta.field.declaration.js", + "begin": "(?x)(?<!\\()(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)\\s+)?(?=\\s*((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|(\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|\\}|$))", + "beginCaptures": { + "1": { + "name": "storage.modifier.js" + } + }, + "end": "(?x)(?=\\}|;|,|$|(^(?!\\s*((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|(\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|$))))|(?<=\\})", + "patterns": [ + { + "include": "#variable-initializer" + }, + { + "include": "#type-annotation" + }, + { + "include": "#string" + }, + { + "include": "#array-literal" + }, + { + "include": "#numeric-literal" + }, + { + "include": "#comment" + }, + { + "match": "(?x)(\\#?[_$[:alpha:]][_$[:alnum:]]*)(?:(\\?)|(\\!))?(?=\\s*\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", + "captures": { + "1": { + "name": "meta.definition.property.js entity.name.function.js" + }, + "2": { + "name": "keyword.operator.optional.js" + }, + "3": { + "name": "keyword.operator.definiteassignment.js" + } + } + }, + { + "name": "meta.definition.property.js variable.object.property.js", + "match": "\\#?[_$[:alpha:]][_$[:alnum:]]*" + }, + { + "name": "keyword.operator.optional.js", + "match": "\\?" + }, + { + "name": "keyword.operator.definiteassignment.js", + "match": "\\!" + } + ] + }, + "variable-initializer": { + "patterns": [ + { + "begin": "(?<!=|!)(=)(?!=)(?=\\s*\\S)(?!\\s*.*=>\\s*$)", + "beginCaptures": { + "1": { + "name": "keyword.operator.assignment.js" + } + }, + "end": "(?=$|^|[,);}\\]]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "begin": "(?<!=|!)(=)(?!=)", + "beginCaptures": { + "1": { + "name": "keyword.operator.assignment.js" + } + }, + "end": "(?=[,);}\\]]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))|(?=^\\s*$)|(?<![\\|\\&\\+\\-\\*\\/])(?<=\\S)(?<!=)(?=\\s*$)", + "patterns": [ + { + "include": "#expression" + } + ] + } + ] + }, + "function-declaration": { + "name": "meta.function.js", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\s*", + "beginCaptures": { + "1": { + "name": "keyword.control.export.js" + }, + "2": { + "name": "storage.modifier.js" + }, + "3": { + "name": "storage.modifier.async.js" + }, + "4": { + "name": "storage.type.function.js" + }, + "5": { + "name": "keyword.generator.asterisk.js" + }, + "6": { + "name": "meta.definition.function.js entity.name.function.js" + } + }, + "end": "(?=;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|(?<=\\})", + "patterns": [ + { + "include": "#function-name" + }, + { + "include": "#function-body" + } + ] + }, + "function-expression": { + "name": "meta.function.expression.js", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\s*", + "beginCaptures": { + "1": { + "name": "storage.modifier.async.js" + }, + "2": { + "name": "storage.type.function.js" + }, + "3": { + "name": "keyword.generator.asterisk.js" + }, + "4": { + "name": "meta.definition.function.js entity.name.function.js" + } + }, + "end": "(?=;)|(?<=\\})", + "patterns": [ + { + "include": "#function-name" + }, + { + "include": "#single-line-comment-consuming-line-ending" + }, + { + "include": "#function-body" + } + ] + }, + "function-name": { + "name": "meta.definition.function.js entity.name.function.js", + "match": "[_$[:alpha:]][_$[:alnum:]]*" + }, + "function-body": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#type-parameters" + }, + { + "include": "#function-parameters" + }, + { + "include": "#return-type" + }, + { + "include": "#type-function-return-type" + }, + { + "include": "#decl-block" + }, + { + "name": "keyword.generator.asterisk.js", + "match": "\\*" + } + ] + }, + "method-declaration": { + "patterns": [ + { + "name": "meta.method.declaration.js", + "begin": "(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?\\s*\\b(constructor)\\b(?!:)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "beginCaptures": { + "1": { + "name": "storage.modifier.js" + }, + "2": { + "name": "storage.modifier.js" + }, + "3": { + "name": "storage.modifier.js" + }, + "4": { + "name": "storage.modifier.async.js" + }, + "5": { + "name": "storage.type.js" + } + }, + "end": "(?=\\}|;|,|$)|(?<=\\})", + "patterns": [ + { + "include": "#method-declaration-name" + }, + { + "include": "#function-body" + } + ] + }, + { + "name": "meta.method.declaration.js", + "begin": "(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:(?:\\s*\\b(new)\\b(?!:)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|(?:(\\*)\\s*)?)(?=\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", + "beginCaptures": { + "1": { + "name": "storage.modifier.js" + }, + "2": { + "name": "storage.modifier.js" + }, + "3": { + "name": "storage.modifier.js" + }, + "4": { + "name": "storage.modifier.async.js" + }, + "5": { + "name": "keyword.operator.new.js" + }, + "6": { + "name": "keyword.generator.asterisk.js" + } + }, + "end": "(?=\\}|;|,|$)|(?<=\\})", + "patterns": [ + { + "include": "#method-declaration-name" + }, + { + "include": "#function-body" + } + ] + }, + { + "name": "meta.method.declaration.js", + "begin": "(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", + "beginCaptures": { + "1": { + "name": "storage.modifier.js" + }, + "2": { + "name": "storage.modifier.js" + }, + "3": { + "name": "storage.modifier.js" + }, + "4": { + "name": "storage.modifier.async.js" + }, + "5": { + "name": "storage.type.property.js" + }, + "6": { + "name": "keyword.generator.asterisk.js" + } + }, + "end": "(?=\\}|;|,|$)|(?<=\\})", + "patterns": [ + { + "include": "#method-declaration-name" + }, + { + "include": "#function-body" + } + ] + } + ] + }, + "object-literal-method-declaration": { + "name": "meta.method.declaration.js", + "begin": "(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", + "beginCaptures": { + "1": { + "name": "storage.modifier.async.js" + }, + "2": { + "name": "storage.type.property.js" + }, + "3": { + "name": "keyword.generator.asterisk.js" + } + }, + "end": "(?=\\}|;|,)|(?<=\\})", + "patterns": [ + { + "include": "#method-declaration-name" + }, + { + "include": "#function-body" + }, + { + "begin": "(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", + "beginCaptures": { + "1": { + "name": "storage.modifier.async.js" + }, + "2": { + "name": "storage.type.property.js" + }, + "3": { + "name": "keyword.generator.asterisk.js" + } + }, + "end": "(?=\\(|\\<)", + "patterns": [ + { + "include": "#method-declaration-name" + } + ] + } + ] + }, + "method-declaration-name": { + "begin": "(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??)\\s*[\\(\\<])", + "end": "(?=\\(|\\<)", + "patterns": [ + { + "include": "#string" + }, + { + "include": "#array-literal" + }, + { + "include": "#numeric-literal" + }, + { + "name": "meta.definition.method.js entity.name.function.js", + "match": "[_$[:alpha:]][_$[:alnum:]]*" + }, + { + "name": "keyword.operator.optional.js", + "match": "\\?" + } + ] + }, + "arrow-function": { + "patterns": [ + { + "name": "meta.arrow.js", + "match": "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(\\basync)\\s+)?([_$[:alpha:]][_$[:alnum:]]*)\\s*(?==>)", + "captures": { + "1": { + "name": "storage.modifier.async.js" + }, + "2": { + "name": "variable.parameter.js" + } + } + }, + { + "name": "meta.arrow.js", + "begin": "(?x) (?:\n (?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(\\basync)\n)? ((?<![})!\\]])\\s*\n (?=\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n )\n)", + "beginCaptures": { + "1": { + "name": "storage.modifier.async.js" + } + }, + "end": "(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#type-parameters" + }, + { + "include": "#function-parameters" + }, + { + "include": "#arrow-return-type" + }, + { + "include": "#possibly-arrow-return-type" + } + ] + }, + { + "name": "meta.arrow.js", + "begin": "=>", + "beginCaptures": { + "0": { + "name": "storage.type.function.arrow.js" + } + }, + "end": "((?<=\\}|\\S)(?<!=>)|((?!\\{)(?=\\S)))(?!\\/[\\/\\*])", + "patterns": [ + { + "include": "#single-line-comment-consuming-line-ending" + }, + { + "include": "#decl-block" + }, + { + "include": "#expression" + } + ] + } + ] + }, + "indexer-declaration": { + "name": "meta.indexer.declaration.js", + "begin": "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)\\s*)?\\s*(\\[)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=:)", + "beginCaptures": { + "1": { + "name": "storage.modifier.js" + }, + "2": { + "name": "meta.brace.square.js" + }, + "3": { + "name": "variable.parameter.js" + } + }, + "end": "(\\])\\s*(\\?\\s*)?|$", + "endCaptures": { + "1": { + "name": "meta.brace.square.js" + }, + "2": { + "name": "keyword.operator.optional.js" + } + }, + "patterns": [ + { + "include": "#type-annotation" + } + ] + }, + "indexer-mapped-type-declaration": { + "name": "meta.indexer.mappedtype.declaration.js", + "begin": "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([+-])?(readonly)\\s*)?\\s*(\\[)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s+(in)\\s+", + "beginCaptures": { + "1": { + "name": "keyword.operator.type.modifier.js" + }, + "2": { + "name": "storage.modifier.js" + }, + "3": { + "name": "meta.brace.square.js" + }, + "4": { + "name": "entity.name.type.js" + }, + "5": { + "name": "keyword.operator.expression.in.js" + } + }, + "end": "(\\])([+-])?\\s*(\\?\\s*)?|$", + "endCaptures": { + "1": { + "name": "meta.brace.square.js" + }, + "2": { + "name": "keyword.operator.type.modifier.js" + }, + "3": { + "name": "keyword.operator.optional.js" + } + }, + "patterns": [ + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+", + "captures": { + "1": { + "name": "keyword.control.as.js" + } + } + }, + { + "include": "#type" + } + ] + }, + "function-parameters": { + "name": "meta.parameters.js", + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.parameters.begin.js" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.parameters.end.js" + } + }, + "patterns": [ + { + "include": "#function-parameters-body" + } + ] + }, + "function-parameters-body": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#string" + }, + { + "include": "#decorator" + }, + { + "include": "#destructuring-parameter" + }, + { + "include": "#parameter-name" + }, + { + "include": "#parameter-type-annotation" + }, + { + "include": "#variable-initializer" + }, + { + "name": "punctuation.separator.parameter.js", + "match": "," + } + ] + }, + "class-declaration": { + "name": "meta.class.js", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(?:(abstract)\\s+)?\\b(class)\\b(?=\\s+|/[/*])", + "beginCaptures": { + "1": { + "name": "keyword.control.export.js" + }, + "2": { + "name": "storage.modifier.js" + }, + "3": { + "name": "storage.modifier.js" + }, + "4": { + "name": "storage.type.class.js" + } + }, + "end": "(?<=\\})", + "patterns": [ + { + "include": "#class-declaration-or-expression-patterns" + } + ] + }, + "class-expression": { + "name": "meta.class.js", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(class)\\b(?=\\s+|[<{]|\\/[\\/*])", + "beginCaptures": { + "1": { + "name": "storage.modifier.js" + }, + "2": { + "name": "storage.type.class.js" + } + }, + "end": "(?<=\\})", + "patterns": [ + { + "include": "#class-declaration-or-expression-patterns" + } + ] + }, + "class-declaration-or-expression-patterns": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#class-or-interface-heritage" + }, + { + "match": "[_$[:alpha:]][_$[:alnum:]]*", + "captures": { + "0": { + "name": "entity.name.type.class.js" + } + } + }, + { + "include": "#type-parameters" + }, + { + "include": "#class-or-interface-body" + } + ] + }, + "interface-declaration": { + "name": "meta.interface.js", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(?:(abstract)\\s+)?\\b(interface)\\b(?=\\s+|/[/*])", + "beginCaptures": { + "1": { + "name": "keyword.control.export.js" + }, + "2": { + "name": "storage.modifier.js" + }, + "3": { + "name": "storage.modifier.js" + }, + "4": { + "name": "storage.type.interface.js" + } + }, + "end": "(?<=\\})", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#class-or-interface-heritage" + }, + { + "match": "[_$[:alpha:]][_$[:alnum:]]*", + "captures": { + "0": { + "name": "entity.name.type.interface.js" + } + } + }, + { + "include": "#type-parameters" + }, + { + "include": "#class-or-interface-body" + } + ] + }, + "class-or-interface-heritage": { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(extends|implements)\\b)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "beginCaptures": { + "1": { + "name": "storage.modifier.js" + } + }, + "end": "(?=\\{)", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#class-or-interface-heritage" + }, + { + "include": "#type-parameters" + }, + { + "include": "#expressionWithoutIdentifiers" + }, + { + "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))(?=\\s*[_$[:alpha:]][_$[:alnum:]]*(\\s*\\??\\.\\s*[_$[:alpha:]][_$[:alnum:]]*)*\\s*)", + "captures": { + "1": { + "name": "entity.name.type.module.js" + }, + "2": { + "name": "punctuation.accessor.js" + }, + "3": { + "name": "punctuation.accessor.optional.js" + } + } + }, + { + "match": "([_$[:alpha:]][_$[:alnum:]]*)", + "captures": { + "1": { + "name": "entity.other.inherited-class.js" + } + } + }, + { + "include": "#expressionPunctuations" + } + ] + }, + "class-or-interface-body": { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.block.js" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.js" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#decorator" + }, + { + "begin": "(?<=:)\\s*", + "end": "(?=\\s|[;),}\\]:\\-\\+]|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "include": "#method-declaration" + }, + { + "include": "#indexer-declaration" + }, + { + "include": "#field-declaration" + }, + { + "include": "#string" + }, + { + "include": "#type-annotation" + }, + { + "include": "#variable-initializer" + }, + { + "include": "#access-modifier" + }, + { + "include": "#property-accessor" + }, + { + "include": "#async-modifier" + }, + { + "include": "#after-operator-block-as-object-literal" + }, + { + "include": "#decl-block" + }, + { + "include": "#expression" + }, + { + "include": "#punctuation-comma" + }, + { + "include": "#punctuation-semicolon" + } + ] + }, + "access-modifier": { + "name": "storage.modifier.js", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(abstract|declare|override|public|protected|private|readonly|static)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + "property-accessor": { + "name": "storage.type.property.js", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(accessor|get|set)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + "async-modifier": { + "name": "storage.modifier.async.js", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(async)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + "enum-declaration": { + "name": "meta.enum.declaration.js", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:\\b(const)\\s+)?\\b(enum)\\s+([_$[:alpha:]][_$[:alnum:]]*)", + "beginCaptures": { + "1": { + "name": "keyword.control.export.js" + }, + "2": { + "name": "storage.modifier.js" + }, + "3": { + "name": "storage.modifier.js" + }, + "4": { + "name": "storage.type.enum.js" + }, + "5": { + "name": "entity.name.type.enum.js" + } + }, + "end": "(?<=\\})", + "patterns": [ + { + "include": "#comment" + }, + { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.block.js" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.js" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "begin": "([_$[:alpha:]][_$[:alnum:]]*)", + "beginCaptures": { + "0": { + "name": "variable.other.enummember.js" + } + }, + "end": "(?=,|\\}|$)", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#variable-initializer" + } + ] + }, + { + "begin": "(?=((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\])))", + "end": "(?=,|\\}|$)", + "patterns": [ + { + "include": "#string" + }, + { + "include": "#array-literal" + }, + { + "include": "#comment" + }, + { + "include": "#variable-initializer" + } + ] + }, + { + "include": "#punctuation-comma" + } + ] + } + ] + }, + "namespace-declaration": { + "name": "meta.namespace.declaration.js", + "begin": "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(namespace|module)\\s+(?=[_$[:alpha:]\"'`]))", + "beginCaptures": { + "1": { + "name": "keyword.control.export.js" + }, + "2": { + "name": "storage.modifier.js" + }, + "3": { + "name": "storage.type.namespace.js" + } + }, + "end": "(?<=\\})|(?=;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#string" + }, + { + "name": "entity.name.type.module.js", + "match": "([_$[:alpha:]][_$[:alnum:]]*)" + }, + { + "include": "#punctuation-accessor" + }, + { + "include": "#decl-block" + } + ] + }, + "type-alias-declaration": { + "name": "meta.type.declaration.js", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(type)\\b\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*", + "beginCaptures": { + "1": { + "name": "keyword.control.export.js" + }, + "2": { + "name": "storage.modifier.js" + }, + "3": { + "name": "storage.type.type.js" + }, + "4": { + "name": "entity.name.type.alias.js" + } + }, + "end": "(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#type-parameters" + }, + { + "begin": "(=)\\s*(intrinsic)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "beginCaptures": { + "1": { + "name": "keyword.operator.assignment.js" + }, + "2": { + "name": "keyword.control.intrinsic.js" + } + }, + "end": "(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", + "patterns": [ + { + "include": "#type" + } + ] + }, + { + "begin": "(=)\\s*", + "beginCaptures": { + "1": { + "name": "keyword.operator.assignment.js" + } + }, + "end": "(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", + "patterns": [ + { + "include": "#type" + } + ] + } + ] + }, + "import-equals-declaration": { + "patterns": [ + { + "name": "meta.import-equals.external.js", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*(=)\\s*(require)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "keyword.control.export.js" + }, + "2": { + "name": "storage.modifier.js" + }, + "3": { + "name": "keyword.control.import.js" + }, + "4": { + "name": "keyword.control.type.js" + }, + "5": { + "name": "variable.other.readwrite.alias.js" + }, + "6": { + "name": "keyword.operator.assignment.js" + }, + "7": { + "name": "keyword.control.require.js" + }, + "8": { + "name": "meta.brace.round.js" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "meta.brace.round.js" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#string" + } + ] + }, + { + "name": "meta.import-equals.internal.js", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*(=)\\s*(?!require\\b)", + "beginCaptures": { + "1": { + "name": "keyword.control.export.js" + }, + "2": { + "name": "storage.modifier.js" + }, + "3": { + "name": "keyword.control.import.js" + }, + "4": { + "name": "keyword.control.type.js" + }, + "5": { + "name": "variable.other.readwrite.alias.js" + }, + "6": { + "name": "keyword.operator.assignment.js" + } + }, + "end": "(?=;|$|^)", + "patterns": [ + { + "include": "#single-line-comment-consuming-line-ending" + }, + { + "include": "#comment" + }, + { + "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", + "captures": { + "1": { + "name": "entity.name.type.module.js" + }, + "2": { + "name": "punctuation.accessor.js" + }, + "3": { + "name": "punctuation.accessor.optional.js" + } + } + }, + { + "name": "variable.other.readwrite.js", + "match": "([_$[:alpha:]][_$[:alnum:]]*)" + } + ] + } + ] + }, + "import-declaration": { + "name": "meta.import.js", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type)(?!\\s+from))?(?!\\s*[:\\(])(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "beginCaptures": { + "1": { + "name": "keyword.control.export.js" + }, + "2": { + "name": "storage.modifier.js" + }, + "3": { + "name": "keyword.control.import.js" + }, + "4": { + "name": "keyword.control.type.js" + } + }, + "end": "(?<!^import|[^\\._$[:alnum:]]import)(?=;|$|^)", + "patterns": [ + { + "include": "#single-line-comment-consuming-line-ending" + }, + { + "include": "#comment" + }, + { + "include": "#string" + }, + { + "begin": "(?<=^import|[^\\._$[:alnum:]]import)(?!\\s*[\"'])", + "end": "\\bfrom\\b", + "endCaptures": { + "0": { + "name": "keyword.control.from.js" + } + }, + "patterns": [ + { + "include": "#import-export-declaration" + } + ] + }, + { + "include": "#import-export-declaration" + } + ] + }, + "export-declaration": { + "patterns": [ + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)\\s+(as)\\s+(namespace)\\s+([_$[:alpha:]][_$[:alnum:]]*)", + "captures": { + "1": { + "name": "keyword.control.export.js" + }, + "2": { + "name": "keyword.control.as.js" + }, + "3": { + "name": "storage.type.namespace.js" + }, + "4": { + "name": "entity.name.type.module.js" + } + } + }, + { + "name": "meta.export.default.js", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)(?:\\s+(type))?(?:(?:\\s*(=))|(?:\\s+(default)(?=\\s+)))", + "beginCaptures": { + "1": { + "name": "keyword.control.export.js" + }, + "2": { + "name": "keyword.control.type.js" + }, + "3": { + "name": "keyword.operator.assignment.js" + }, + "4": { + "name": "keyword.control.default.js" + } + }, + "end": "(?=$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", + "patterns": [ + { + "include": "#interface-declaration" + }, + { + "include": "#expression" + } + ] + }, + { + "name": "meta.export.js", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)(?:\\s+(type))?\\b(?!(\\$)|(\\s*:))((?=\\s*[\\{*])|((?=\\s*[_$[:alpha:]][_$[:alnum:]]*(\\s|,))(?!\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", + "beginCaptures": { + "1": { + "name": "keyword.control.export.js" + }, + "2": { + "name": "keyword.control.type.js" + } + }, + "end": "(?=$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", + "patterns": [ + { + "include": "#import-export-declaration" + } + ] + } + ] + }, + "import-export-declaration": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#string" + }, + { + "include": "#import-export-block" + }, + { + "name": "keyword.control.from.js", + "match": "\\bfrom\\b" + }, + { + "include": "#import-export-assert-clause" + }, + { + "include": "#import-export-clause" + } + ] + }, + "import-export-assert-clause": { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(assert)\\s*(\\{)", + "beginCaptures": { + "1": { + "name": "keyword.control.assert.js" + }, + "2": { + "name": "punctuation.definition.block.js" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.js" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#string" + }, + { + "name": "meta.object-literal.key.js", + "match": "(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)" + }, + { + "name": "punctuation.separator.key-value.js", + "match": ":" + } + ] + }, + "import-export-block": { + "name": "meta.block.js", + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.block.js" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.js" + } + }, + "patterns": [ + { + "include": "#import-export-clause" + } + ] + }, + "import-export-clause": { + "patterns": [ + { + "include": "#comment" + }, + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(?:(\\btype)\\s+)?(?:(\\bdefault)|(\\*)|(\\b[_$[:alpha:]][_$[:alnum:]]*)))\\s+(as)\\s+(?:(default(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|([_$[:alpha:]][_$[:alnum:]]*))", + "captures": { + "1": { + "name": "keyword.control.type.js" + }, + "2": { + "name": "keyword.control.default.js" + }, + "3": { + "name": "constant.language.import-export-all.js" + }, + "4": { + "name": "variable.other.readwrite.js" + }, + "5": { + "name": "keyword.control.as.js" + }, + "6": { + "name": "keyword.control.default.js" + }, + "7": { + "name": "variable.other.readwrite.alias.js" + } + } + }, + { + "include": "#punctuation-comma" + }, + { + "name": "constant.language.import-export-all.js", + "match": "\\*" + }, + { + "name": "keyword.control.default.js", + "match": "\\b(default)\\b" + }, + { + "match": "(?:(\\btype)\\s+)?([_$[:alpha:]][_$[:alnum:]]*)", + "captures": { + "1": { + "name": "keyword.control.type.js" + }, + "2": { + "name": "variable.other.readwrite.alias.js" + } + } + } + ] + }, + "switch-statement": { + "name": "switch-statement.expr.js", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=\\bswitch\\s*\\()", + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.js" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "name": "switch-expression.expr.js", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(switch)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "keyword.control.switch.js" + }, + "2": { + "name": "meta.brace.round.js" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "meta.brace.round.js" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "name": "switch-block.expr.js", + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.block.js" + } + }, + "end": "(?=\\})", + "patterns": [ + { + "name": "case-clause.expr.js", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(case|default(?=:))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "beginCaptures": { + "1": { + "name": "keyword.control.switch.js" + } + }, + "end": "(?=:)", + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "begin": "(:)\\s*(\\{)", + "beginCaptures": { + "1": { + "name": "case-clause.expr.js punctuation.definition.section.case-statement.js" + }, + "2": { + "name": "meta.block.js punctuation.definition.block.js" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "meta.block.js punctuation.definition.block.js" + } + }, + "contentName": "meta.block.js", + "patterns": [ + { + "include": "#statements" + } + ] + }, + { + "match": "(:)", + "captures": { + "0": { + "name": "case-clause.expr.js punctuation.definition.section.case-statement.js" + } + } + }, + { + "include": "#statements" + } + ] + } + ] + }, + "for-loop": { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))for(?=((\\s+|(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*))await)?\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)?(\\())", + "beginCaptures": { + "0": { + "name": "keyword.control.loop.js" + } + }, + "end": "(?<=\\))", + "patterns": [ + { + "include": "#comment" + }, + { + "name": "keyword.control.loop.js", + "match": "await" + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "meta.brace.round.js" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "meta.brace.round.js" + } + }, + "patterns": [ + { + "include": "#var-expr" + }, + { + "include": "#expression" + }, + { + "include": "#punctuation-semicolon" + } + ] + } + ] + }, + "if-statement": { + "patterns": [ + { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=\\bif\\s*(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))\\s*(?!\\{))", + "end": "(?=;|$|\\})", + "patterns": [ + { + "include": "#comment" + }, + { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(if)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "keyword.control.conditional.js" + }, + "2": { + "name": "meta.brace.round.js" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "meta.brace.round.js" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "name": "string.regexp.js", + "begin": "(?<=\\))\\s*\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.js" + } + }, + "end": "(/)([dgimsuy]*)", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.js" + }, + "2": { + "name": "keyword.other.js" + } + }, + "patterns": [ + { + "include": "#regexp" + } + ] + }, + { + "include": "#statements" + } + ] + } + ] + }, + "decl-block": { + "name": "meta.block.js", + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.block.js" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.js" + } + }, + "patterns": [ + { + "include": "#statements" + } + ] + }, + "after-operator-block-as-object-literal": { + "name": "meta.objectliteral.js", + "begin": "(?<!\\+\\+|--)(?<=[:=(,\\[?+!>]|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^yield|[^\\._$[:alnum:]]yield|^throw|[^\\._$[:alnum:]]throw|^in|[^\\._$[:alnum:]]in|^of|[^\\._$[:alnum:]]of|^typeof|[^\\._$[:alnum:]]typeof|&&|\\|\\||\\*)\\s*(\\{)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.block.js" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.js" + } + }, + "patterns": [ + { + "include": "#object-member" + } + ] + }, + "object-literal": { + "name": "meta.objectliteral.js", + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.block.js" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.js" + } + }, + "patterns": [ + { + "include": "#object-member" + } + ] + }, + "object-member": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#object-literal-method-declaration" + }, + { + "name": "meta.object.member.js meta.object-literal.key.js", + "begin": "(?=\\[)", + "end": "(?=:)|((?<=[\\]])(?=\\s*[\\(\\<]))", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#array-literal" + } + ] + }, + { + "name": "meta.object.member.js meta.object-literal.key.js", + "begin": "(?=[\\'\\\"\\`])", + "end": "(?=:)|((?<=[\\'\\\"\\`])(?=((\\s*[\\(\\<,}])|(\\s+(as|satisifies)\\s+))))", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#string" + } + ] + }, + { + "name": "meta.object.member.js meta.object-literal.key.js", + "begin": "(?x)(?=(\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$)))", + "end": "(?=:)|(?=\\s*([\\(\\<,}])|(\\s+as|satisifies\\s+))", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#numeric-literal" + } + ] + }, + { + "name": "meta.method.declaration.js", + "begin": "(?<=[\\]\\'\\\"\\`])(?=\\s*[\\(\\<])", + "end": "(?=\\}|;|,)|(?<=\\})", + "patterns": [ + { + "include": "#function-body" + } + ] + }, + { + "name": "meta.object.member.js", + "match": "(?![_$[:alpha:]])([[:digit:]]+)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)", + "captures": { + "0": { + "name": "meta.object-literal.key.js" + }, + "1": { + "name": "constant.numeric.decimal.js" + } + } + }, + { + "name": "meta.object.member.js", + "match": "(?x)(?:([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/)*\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", + "captures": { + "0": { + "name": "meta.object-literal.key.js" + }, + "1": { + "name": "entity.name.function.js" + } + } + }, + { + "name": "meta.object.member.js", + "match": "(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)", + "captures": { + "0": { + "name": "meta.object-literal.key.js" + } + } + }, + { + "name": "meta.object.member.js", + "begin": "\\.\\.\\.", + "beginCaptures": { + "0": { + "name": "keyword.operator.spread.js" + } + }, + "end": "(?=,|\\})", + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "name": "meta.object.member.js", + "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=,|\\}|$|\\/\\/|\\/\\*)", + "captures": { + "1": { + "name": "variable.other.readwrite.js" + } + } + }, + { + "name": "meta.object.member.js", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*([,}]|$))", + "captures": { + "1": { + "name": "keyword.control.as.js" + }, + "2": { + "name": "storage.modifier.js" + } + } + }, + { + "name": "meta.object.member.js", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(as)|(satisfies))\\s+", + "beginCaptures": { + "1": { + "name": "keyword.control.as.js" + }, + "2": { + "name": "keyword.control.satisfies.js" + } + }, + "end": "(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|^|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as|satisifies)\\s+))", + "patterns": [ + { + "include": "#type" + } + ] + }, + { + "name": "meta.object.member.js", + "begin": "(?=[_$[:alpha:]][_$[:alnum:]]*\\s*=)", + "end": "(?=,|\\}|$|\\/\\/|\\/\\*)", + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "name": "meta.object.member.js", + "begin": ":", + "beginCaptures": { + "0": { + "name": "meta.object-literal.key.js punctuation.separator.key-value.js" + } + }, + "end": "(?=,|\\})", + "patterns": [ + { + "begin": "(?<=:)\\s*(async)?(?=\\s*(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", + "beginCaptures": { + "1": { + "name": "storage.modifier.async.js" + } + }, + "end": "(?<=\\))", + "patterns": [ + { + "include": "#type-parameters" + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "meta.brace.round.js" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "meta.brace.round.js" + } + }, + "patterns": [ + { + "include": "#expression-inside-possibly-arrow-parens" + } + ] + } + ] + }, + { + "begin": "(?<=:)\\s*(async)?\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", + "beginCaptures": { + "1": { + "name": "storage.modifier.async.js" + }, + "2": { + "name": "meta.brace.round.js" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "meta.brace.round.js" + } + }, + "patterns": [ + { + "include": "#expression-inside-possibly-arrow-parens" + } + ] + }, + { + "begin": "(?<=:)\\s*(async)?\\s*(?=\\<\\s*$)", + "beginCaptures": { + "1": { + "name": "storage.modifier.async.js" + } + }, + "end": "(?<=\\>)", + "patterns": [ + { + "include": "#type-parameters" + } + ] + }, + { + "begin": "(?<=\\>)\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", + "beginCaptures": { + "1": { + "name": "meta.brace.round.js" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "meta.brace.round.js" + } + }, + "patterns": [ + { + "include": "#expression-inside-possibly-arrow-parens" + } + ] + }, + { + "include": "#possibly-arrow-return-type" + }, + { + "include": "#expression" + } + ] + }, + { + "include": "#punctuation-comma" + }, + { + "include": "#decl-block" + } + ] + }, + "ternary-expression": { + "begin": "(?!\\?\\.\\s*[^[:digit:]])(\\?)(?!\\?)", + "beginCaptures": { + "1": { + "name": "keyword.operator.ternary.js" + } + }, + "end": "\\s*(:)", + "endCaptures": { + "1": { + "name": "keyword.operator.ternary.js" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + "function-call": { + "patterns": [ + { + "begin": "(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())", + "end": "(?<=\\))(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())", + "patterns": [ + { + "name": "meta.function-call.js", + "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))", + "end": "(?=\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())", + "patterns": [ + { + "include": "#function-call-target" + } + ] + }, + { + "include": "#comment" + }, + { + "include": "#function-call-optionals" + }, + { + "include": "#type-arguments" + }, + { + "include": "#paren-expression" + } + ] + }, + { + "begin": "(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))", + "end": "(?<=\\>)(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))", + "patterns": [ + { + "name": "meta.function-call.js", + "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))", + "end": "(?=(<\\s*[\\{\\[\\(]\\s*$))", + "patterns": [ + { + "include": "#function-call-target" + } + ] + }, + { + "include": "#comment" + }, + { + "include": "#function-call-optionals" + }, + { + "include": "#type-arguments" + } + ] + } + ] + }, + "function-call-target": { + "patterns": [ + { + "include": "#support-function-call-identifiers" + }, + { + "name": "entity.name.function.js", + "match": "(\\#?[_$[:alpha:]][_$[:alnum:]]*)" + } + ] + }, + "function-call-optionals": { + "patterns": [ + { + "name": "meta.function-call.js punctuation.accessor.optional.js", + "match": "\\?\\." + }, + { + "name": "meta.function-call.js keyword.operator.definiteassignment.js", + "match": "\\!" + } + ] + }, + "support-function-call-identifiers": { + "patterns": [ + { + "include": "#literal" + }, + { + "include": "#support-objects" + }, + { + "include": "#object-identifiers" + }, + { + "include": "#punctuation-accessor" + }, + { + "name": "keyword.operator.expression.import.js", + "match": "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*[\\(]\\s*[\\\"\\'\\`]))" + } + ] + }, + "new-expr": { + "name": "new.expr.js", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(new)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "beginCaptures": { + "1": { + "name": "keyword.operator.new.js" + } + }, + "end": "(?<=\\))|(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))new(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))function((\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\s*[\\(]))))", + "patterns": [ + { + "include": "#expression" + } + ] + }, + "instanceof-expr": { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(instanceof)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "beginCaptures": { + "1": { + "name": "keyword.operator.expression.instanceof.js" + } + }, + "end": "(?<=\\))|(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|(===|!==|==|!=)|(([\\&\\~\\^\\|]\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s+instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))function((\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\s*[\\(]))))", + "patterns": [ + { + "include": "#type" + } + ] + }, + "paren-expression-possibly-arrow": { + "patterns": [ + { + "begin": "(?<=[(=,])\\s*(async)?(?=\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", + "beginCaptures": { + "1": { + "name": "storage.modifier.async.js" + } + }, + "end": "(?<=\\))", + "patterns": [ + { + "include": "#paren-expression-possibly-arrow-with-typeparameters" + } + ] + }, + { + "begin": "(?<=[(=,]|=>|^return|[^\\._$[:alnum:]]return)\\s*(async)?(?=\\s*((((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\()|(<)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)))\\s*$)", + "beginCaptures": { + "1": { + "name": "storage.modifier.async.js" + } + }, + "end": "(?<=\\))", + "patterns": [ + { + "include": "#paren-expression-possibly-arrow-with-typeparameters" + } + ] + }, + { + "include": "#possibly-arrow-return-type" + } + ] + }, + "paren-expression-possibly-arrow-with-typeparameters": { + "patterns": [ + { + "include": "#type-parameters" + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "meta.brace.round.js" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "meta.brace.round.js" + } + }, + "patterns": [ + { + "include": "#expression-inside-possibly-arrow-parens" + } + ] + } + ] + }, + "expression-inside-possibly-arrow-parens": { + "patterns": [ + { + "include": "#expressionWithoutIdentifiers" + }, + { + "include": "#comment" + }, + { + "include": "#string" + }, + { + "include": "#decorator" + }, + { + "include": "#destructuring-parameter" + }, + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)", + "captures": { + "1": { + "name": "storage.modifier.js" + } + } + }, + { + "match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", + "captures": { + "1": { + "name": "storage.modifier.js" + }, + "2": { + "name": "keyword.operator.rest.js" + }, + "3": { + "name": "entity.name.function.js variable.language.this.js" + }, + "4": { + "name": "entity.name.function.js" + }, + "5": { + "name": "keyword.operator.optional.js" + } + } + }, + { + "match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*[:,]|$)", + "captures": { + "1": { + "name": "storage.modifier.js" + }, + "2": { + "name": "keyword.operator.rest.js" + }, + "3": { + "name": "variable.parameter.js variable.language.this.js" + }, + "4": { + "name": "variable.parameter.js" + }, + "5": { + "name": "keyword.operator.optional.js" + } + } + }, + { + "include": "#type-annotation" + }, + { + "include": "#variable-initializer" + }, + { + "name": "punctuation.separator.parameter.js", + "match": "," + }, + { + "include": "#identifiers" + }, + { + "include": "#expressionPunctuations" + } + ] + }, + "paren-expression": { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "meta.brace.round.js" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "meta.brace.round.js" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + "cast": { + "patterns": [ + { + "include": "#jsx" + } + ] + }, + "expression-operators": { + "patterns": [ + { + "name": "keyword.control.flow.js", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(await)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(yield)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?=\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*\\*)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.js" + } + }, + "end": "\\*", + "endCaptures": { + "0": { + "name": "keyword.generator.asterisk.js" + } + }, + "patterns": [ + { + "include": "#comment" + } + ] + }, + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(yield)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s*(\\*))?", + "captures": { + "1": { + "name": "keyword.control.flow.js" + }, + "2": { + "name": "keyword.generator.asterisk.js" + } + } + }, + { + "name": "keyword.operator.expression.delete.js", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))delete(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "name": "keyword.operator.expression.in.js", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))in(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()" + }, + { + "name": "keyword.operator.expression.of.js", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))of(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()" + }, + { + "name": "keyword.operator.expression.instanceof.js", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "name": "keyword.operator.new.js", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))new(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "include": "#typeof-operator" + }, + { + "name": "keyword.operator.expression.void.js", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))void(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*($|[;,:})\\]]))", + "captures": { + "1": { + "name": "keyword.control.as.js" + }, + "2": { + "name": "storage.modifier.js" + } + } + }, + { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(as)|(satisfies))\\s+", + "beginCaptures": { + "1": { + "name": "keyword.control.as.js" + }, + "2": { + "name": "keyword.control.satisfies.js" + } + }, + "end": "(?=^|[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as|satisfies)\\s+)|(\\s+\\<))", + "patterns": [ + { + "include": "#type" + } + ] + }, + { + "name": "keyword.operator.spread.js", + "match": "\\.\\.\\." + }, + { + "name": "keyword.operator.assignment.compound.js", + "match": "\\*=|(?<!\\()/=|%=|\\+=|\\-=" + }, + { + "name": "keyword.operator.assignment.compound.bitwise.js", + "match": "\\&=|\\^=|<<=|>>=|>>>=|\\|=" + }, + { + "name": "keyword.operator.bitwise.shift.js", + "match": "<<|>>>|>>" + }, + { + "name": "keyword.operator.comparison.js", + "match": "===|!==|==|!=" + }, + { + "name": "keyword.operator.relational.js", + "match": "<=|>=|<>|<|>" + }, + { + "match": "(?<=[_$[:alnum:]])(\\!)\\s*(?:(/=)|(?:(/)(?![/*])))", + "captures": { + "1": { + "name": "keyword.operator.logical.js" + }, + "2": { + "name": "keyword.operator.assignment.compound.js" + }, + "3": { + "name": "keyword.operator.arithmetic.js" + } + } + }, + { + "name": "keyword.operator.logical.js", + "match": "\\!|&&|\\|\\||\\?\\?" + }, + { + "name": "keyword.operator.bitwise.js", + "match": "\\&|~|\\^|\\|" + }, + { + "name": "keyword.operator.assignment.js", + "match": "\\=" + }, + { + "name": "keyword.operator.decrement.js", + "match": "--" + }, + { + "name": "keyword.operator.increment.js", + "match": "\\+\\+" + }, + { + "name": "keyword.operator.arithmetic.js", + "match": "%|\\*|/|-|\\+" + }, + { + "begin": "(?<=[_$[:alnum:])\\]])\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)+(?:(/=)|(?:(/)(?![/*]))))", + "end": "(?:(/=)|(?:(/)(?!\\*([^\\*]|(\\*[^\\/]))*\\*\\/)))", + "endCaptures": { + "1": { + "name": "keyword.operator.assignment.compound.js" + }, + "2": { + "name": "keyword.operator.arithmetic.js" + } + }, + "patterns": [ + { + "include": "#comment" + } + ] + }, + { + "match": "(?<=[_$[:alnum:])\\]])\\s*(?:(/=)|(?:(/)(?![/*])))", + "captures": { + "1": { + "name": "keyword.operator.assignment.compound.js" + }, + "2": { + "name": "keyword.operator.arithmetic.js" + } + } + } + ] + }, + "typeof-operator": { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))typeof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "beginCaptures": { + "0": { + "name": "keyword.operator.expression.typeof.js" + } + }, + "end": "(?=[,);}\\]=>:&|{\\?]|(extends\\s+)|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", + "patterns": [ + { + "include": "#type-arguments" + }, + { + "include": "#expression" + } + ] + }, + "literal": { + "patterns": [ + { + "include": "#numeric-literal" + }, + { + "include": "#boolean-literal" + }, + { + "include": "#null-literal" + }, + { + "include": "#undefined-literal" + }, + { + "include": "#numericConstant-literal" + }, + { + "include": "#array-literal" + }, + { + "include": "#this-literal" + }, + { + "include": "#super-literal" + } + ] + }, + "array-literal": { + "name": "meta.array.literal.js", + "begin": "\\s*(\\[)", + "beginCaptures": { + "1": { + "name": "meta.brace.square.js" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "meta.brace.square.js" + } + }, + "patterns": [ + { + "include": "#expression" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "numeric-literal": { + "patterns": [ + { + "name": "constant.numeric.hex.js", + "match": "\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$)", + "captures": { + "1": { + "name": "storage.type.numeric.bigint.js" + } + } + }, + { + "name": "constant.numeric.binary.js", + "match": "\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$)", + "captures": { + "1": { + "name": "storage.type.numeric.bigint.js" + } + } + }, + { + "name": "constant.numeric.octal.js", + "match": "\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$)", + "captures": { + "1": { + "name": "storage.type.numeric.bigint.js" + } + } + }, + { + "match": "(?x)\n(?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$)", + "captures": { + "0": { + "name": "constant.numeric.decimal.js" + }, + "1": { + "name": "meta.delimiter.decimal.period.js" + }, + "2": { + "name": "storage.type.numeric.bigint.js" + }, + "3": { + "name": "meta.delimiter.decimal.period.js" + }, + "4": { + "name": "storage.type.numeric.bigint.js" + }, + "5": { + "name": "meta.delimiter.decimal.period.js" + }, + "6": { + "name": "storage.type.numeric.bigint.js" + }, + "7": { + "name": "storage.type.numeric.bigint.js" + }, + "8": { + "name": "meta.delimiter.decimal.period.js" + }, + "9": { + "name": "storage.type.numeric.bigint.js" + }, + "10": { + "name": "meta.delimiter.decimal.period.js" + }, + "11": { + "name": "storage.type.numeric.bigint.js" + }, + "12": { + "name": "meta.delimiter.decimal.period.js" + }, + "13": { + "name": "storage.type.numeric.bigint.js" + }, + "14": { + "name": "storage.type.numeric.bigint.js" + } + } + } + ] + }, + "boolean-literal": { + "patterns": [ + { + "name": "constant.language.boolean.true.js", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))true(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "name": "constant.language.boolean.false.js", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))false(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + } + ] + }, + "null-literal": { + "name": "constant.language.null.js", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))null(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + "this-literal": { + "name": "variable.language.this.js", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))this\\b(?!\\$)" + }, + "super-literal": { + "name": "variable.language.super.js", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))super\\b(?!\\$)" + }, + "undefined-literal": { + "name": "constant.language.undefined.js", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))undefined(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + "numericConstant-literal": { + "patterns": [ + { + "name": "constant.language.nan.js", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))NaN(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "name": "constant.language.infinity.js", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Infinity(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + } + ] + }, + "support-objects": { + "patterns": [ + { + "name": "variable.language.arguments.js", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(arguments)\\b(?!\\$)" + }, + { + "name": "support.class.promise.js", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(Promise)\\b(?!\\$)" + }, + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(import)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(meta)\\b(?!\\$)", + "captures": { + "1": { + "name": "keyword.control.import.js" + }, + "2": { + "name": "punctuation.accessor.js" + }, + "3": { + "name": "punctuation.accessor.optional.js" + }, + "4": { + "name": "support.variable.property.importmeta.js" + } + } + }, + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(new)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(target)\\b(?!\\$)", + "captures": { + "1": { + "name": "keyword.operator.new.js" + }, + "2": { + "name": "punctuation.accessor.js" + }, + "3": { + "name": "punctuation.accessor.optional.js" + }, + "4": { + "name": "support.variable.property.target.js" + } + } + }, + { + "match": "(?x) (?:(\\.)|(\\?\\.(?!\\s*[[:digit:]]))) \\s* (?:\n (?:(constructor|length|prototype|__proto__)\\b(?!\\$|\\s*(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\())\n |\n (?:(EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\\b(?!\\$)))", + "captures": { + "1": { + "name": "punctuation.accessor.js" + }, + "2": { + "name": "punctuation.accessor.optional.js" + }, + "3": { + "name": "support.variable.property.js" + }, + "4": { + "name": "support.constant.js" + } + } + }, + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(exports)|(module)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))(exports|id|filename|loaded|parent|children))?)\\b(?!\\$)", + "captures": { + "1": { + "name": "support.type.object.module.js" + }, + "2": { + "name": "support.type.object.module.js" + }, + "3": { + "name": "punctuation.accessor.js" + }, + "4": { + "name": "punctuation.accessor.optional.js" + }, + "5": { + "name": "support.type.object.module.js" + } + } + } + ] + }, + "identifiers": { + "patterns": [ + { + "include": "#object-identifiers" + }, + { + "match": "(?x)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*)?([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n))", + "captures": { + "1": { + "name": "punctuation.accessor.js" + }, + "2": { + "name": "punctuation.accessor.optional.js" + }, + "3": { + "name": "entity.name.function.js" + } + } + }, + { + "match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])", + "captures": { + "1": { + "name": "punctuation.accessor.js" + }, + "2": { + "name": "punctuation.accessor.optional.js" + }, + "3": { + "name": "variable.other.constant.property.js" + } + } + }, + { + "match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)", + "captures": { + "1": { + "name": "punctuation.accessor.js" + }, + "2": { + "name": "punctuation.accessor.optional.js" + }, + "3": { + "name": "variable.other.property.js" + } + } + }, + { + "name": "variable.other.constant.js", + "match": "([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])" + }, + { + "name": "variable.other.readwrite.js", + "match": "[_$[:alpha:]][_$[:alnum:]]*" + } + ] + }, + "object-identifiers": { + "patterns": [ + { + "name": "support.class.js", + "match": "([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\\??\\.\\s*prototype\\b(?!\\$))" + }, + { + "match": "(?x)(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(?:\n (\\#?[[:upper:]][_$[:digit:][:upper:]]*) |\n (\\#?[_$[:alpha:]][_$[:alnum:]]*)\n)(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)", + "captures": { + "1": { + "name": "punctuation.accessor.js" + }, + "2": { + "name": "punctuation.accessor.optional.js" + }, + "3": { + "name": "variable.other.constant.object.property.js" + }, + "4": { + "name": "variable.other.object.property.js" + } + } + }, + { + "match": "(?x)(?:\n ([[:upper:]][_$[:digit:][:upper:]]*) |\n ([_$[:alpha:]][_$[:alnum:]]*)\n)(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)", + "captures": { + "1": { + "name": "variable.other.constant.object.js" + }, + "2": { + "name": "variable.other.object.js" + } + } + } + ] + }, + "type-annotation": { + "patterns": [ + { + "name": "meta.type.annotation.js", + "begin": "(:)(?=\\s*\\S)", + "beginCaptures": { + "1": { + "name": "keyword.operator.type.annotation.js" + } + }, + "end": "(?<![:|&])(?!\\s*[|&]\\s+)((?=^|[,);\\}\\]]|//)|(?==[^>])|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))", + "patterns": [ + { + "include": "#type" + } + ] + }, + { + "name": "meta.type.annotation.js", + "begin": "(:)", + "beginCaptures": { + "1": { + "name": "keyword.operator.type.annotation.js" + } + }, + "end": "(?<![:|&])((?=[,);\\}\\]]|\\/\\/)|(?==[^>])|(?=^\\s*$)|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))", + "patterns": [ + { + "include": "#type" + } + ] + } + ] + }, + "parameter-type-annotation": { + "patterns": [ + { + "name": "meta.type.annotation.js", + "begin": "(:)", + "beginCaptures": { + "1": { + "name": "keyword.operator.type.annotation.js" + } + }, + "end": "(?=[,)])|(?==[^>])", + "patterns": [ + { + "include": "#type" + } + ] + } + ] + }, + "return-type": { + "patterns": [ + { + "name": "meta.return.type.js", + "begin": "(?<=\\))\\s*(:)(?=\\s*\\S)", + "beginCaptures": { + "1": { + "name": "keyword.operator.type.annotation.js" + } + }, + "end": "(?<![:|&])(?=$|^|[{};,]|//)", + "patterns": [ + { + "include": "#return-type-core" + } + ] + }, + { + "name": "meta.return.type.js", + "begin": "(?<=\\))\\s*(:)", + "beginCaptures": { + "1": { + "name": "keyword.operator.type.annotation.js" + } + }, + "end": "(?<![:|&])((?=[{};,]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", + "patterns": [ + { + "include": "#return-type-core" + } + ] + } + ] + }, + "return-type-core": { + "patterns": [ + { + "include": "#comment" + }, + { + "begin": "(?<=[:|&])(?=\\s*\\{)", + "end": "(?<=\\})", + "patterns": [ + { + "include": "#type-object" + } + ] + }, + { + "include": "#type-predicate-operator" + }, + { + "include": "#type" + } + ] + }, + "arrow-return-type": { + "name": "meta.return.type.arrow.js", + "begin": "(?<=\\))\\s*(:)", + "beginCaptures": { + "1": { + "name": "keyword.operator.type.annotation.js" + } + }, + "end": "(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))", + "patterns": [ + { + "include": "#arrow-return-type-body" + } + ] + }, + "possibly-arrow-return-type": { + "begin": "(?<=\\)|^)\\s*(:)(?=\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*=>)", + "beginCaptures": { + "1": { + "name": "meta.arrow.js meta.return.type.arrow.js keyword.operator.type.annotation.js" + } + }, + "end": "(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))", + "contentName": "meta.arrow.js meta.return.type.arrow.js", + "patterns": [ + { + "include": "#arrow-return-type-body" + } + ] + }, + "arrow-return-type-body": { + "patterns": [ + { + "begin": "(?<=[:])(?=\\s*\\{)", + "end": "(?<=\\})", + "patterns": [ + { + "include": "#type-object" + } + ] + }, + { + "include": "#type-predicate-operator" + }, + { + "include": "#type" + } + ] + }, + "type-parameters": { + "name": "meta.type.parameters.js", + "begin": "(<)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.typeparameters.begin.js" + } + }, + "end": "(>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.typeparameters.end.js" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "name": "storage.modifier.js", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends|in|out|const)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "include": "#type" + }, + { + "include": "#punctuation-comma" + }, + { + "name": "keyword.operator.assignment.js", + "match": "(=)(?!>)" + } + ] + }, + "type-arguments": { + "name": "meta.type.parameters.js", + "begin": "\\<", + "beginCaptures": { + "0": { + "name": "punctuation.definition.typeparameters.begin.js" + } + }, + "end": "\\>", + "endCaptures": { + "0": { + "name": "punctuation.definition.typeparameters.end.js" + } + }, + "patterns": [ + { + "include": "#type-arguments-body" + } + ] + }, + "type-arguments-body": { + "patterns": [ + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(_)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "captures": { + "0": { + "name": "keyword.operator.type.js" + } + } + }, + { + "include": "#type" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "type": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#type-string" + }, + { + "include": "#numeric-literal" + }, + { + "include": "#type-primitive" + }, + { + "include": "#type-builtin-literals" + }, + { + "include": "#type-parameters" + }, + { + "include": "#type-tuple" + }, + { + "include": "#type-object" + }, + { + "include": "#type-operators" + }, + { + "include": "#type-conditional" + }, + { + "include": "#type-fn-type-parameters" + }, + { + "include": "#type-paren-or-function-parameters" + }, + { + "include": "#type-function-return-type" + }, + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", + "captures": { + "1": { + "name": "storage.modifier.js" + } + } + }, + { + "include": "#type-name" + } + ] + }, + "type-primitive": { + "name": "support.type.primitive.js", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(string|number|bigint|boolean|symbol|any|void|never|unknown)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + "type-builtin-literals": { + "name": "support.type.builtin.js", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + "type-tuple": { + "name": "meta.type.tuple.js", + "begin": "\\[", + "beginCaptures": { + "0": { + "name": "meta.brace.square.js" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "meta.brace.square.js" + } + }, + "patterns": [ + { + "name": "keyword.operator.rest.js", + "match": "\\.\\.\\." + }, + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)", + "captures": { + "1": { + "name": "entity.name.label.js" + }, + "2": { + "name": "keyword.operator.optional.js" + }, + "3": { + "name": "punctuation.separator.label.js" + } + } + }, + { + "include": "#type" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "type-object": { + "name": "meta.object.type.js", + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.block.js" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.js" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#method-declaration" + }, + { + "include": "#indexer-declaration" + }, + { + "include": "#indexer-mapped-type-declaration" + }, + { + "include": "#field-declaration" + }, + { + "include": "#type-annotation" + }, + { + "begin": "\\.\\.\\.", + "beginCaptures": { + "0": { + "name": "keyword.operator.spread.js" + } + }, + "end": "(?=\\}|;|,|$)|(?<=\\})", + "patterns": [ + { + "include": "#type" + } + ] + }, + { + "include": "#punctuation-comma" + }, + { + "include": "#punctuation-semicolon" + }, + { + "include": "#type" + } + ] + }, + "type-conditional": { + "patterns": [ + { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends)\\s+", + "beginCaptures": { + "1": { + "name": "storage.modifier.js" + } + }, + "end": "(?<=:)", + "patterns": [ + { + "begin": "\\?", + "beginCaptures": { + "0": { + "name": "keyword.operator.ternary.js" + } + }, + "end": ":", + "endCaptures": { + "0": { + "name": "keyword.operator.ternary.js" + } + }, + "patterns": [ + { + "include": "#type" + } + ] + }, + { + "include": "#type" + } + ] + } + ] + }, + "type-paren-or-function-parameters": { + "name": "meta.type.paren.cover.js", + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "meta.brace.round.js" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "meta.brace.round.js" + } + }, + "patterns": [ + { + "match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=\\s*(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))", + "captures": { + "1": { + "name": "storage.modifier.js" + }, + "2": { + "name": "keyword.operator.rest.js" + }, + "3": { + "name": "entity.name.function.js variable.language.this.js" + }, + "4": { + "name": "entity.name.function.js" + }, + "5": { + "name": "keyword.operator.optional.js" + } + } + }, + { + "match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=:)", + "captures": { + "1": { + "name": "storage.modifier.js" + }, + "2": { + "name": "keyword.operator.rest.js" + }, + "3": { + "name": "variable.parameter.js variable.language.this.js" + }, + "4": { + "name": "variable.parameter.js" + }, + "5": { + "name": "keyword.operator.optional.js" + } + } + }, + { + "include": "#type-annotation" + }, + { + "name": "punctuation.separator.parameter.js", + "match": "," + }, + { + "include": "#type" + } + ] + }, + "type-fn-type-parameters": { + "patterns": [ + { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b(?=\\s*\\<)", + "beginCaptures": { + "1": { + "name": "meta.type.constructor.js storage.modifier.js" + }, + "2": { + "name": "meta.type.constructor.js keyword.control.new.js" + } + }, + "end": "(?<=>)", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#type-parameters" + } + ] + }, + { + "name": "meta.type.constructor.js", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b\\s*(?=\\()", + "beginCaptures": { + "1": { + "name": "storage.modifier.js" + }, + "2": { + "name": "keyword.control.new.js" + } + }, + "end": "(?<=\\))", + "patterns": [ + { + "include": "#function-parameters" + } + ] + }, + { + "name": "meta.type.function.js", + "begin": "(?x)(\n (?=\n [(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n )\n )\n)", + "end": "(?<=\\))", + "patterns": [ + { + "include": "#function-parameters" + } + ] + } + ] + }, + "type-function-return-type": { + "patterns": [ + { + "name": "meta.type.function.return.js", + "begin": "(=>)(?=\\s*\\S)", + "beginCaptures": { + "1": { + "name": "storage.type.function.arrow.js" + } + }, + "end": "(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>:\\?]|//|$)", + "patterns": [ + { + "include": "#type-function-return-type-core" + } + ] + }, + { + "name": "meta.type.function.return.js", + "begin": "=>", + "beginCaptures": { + "0": { + "name": "storage.type.function.arrow.js" + } + }, + "end": "(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;:\\?>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", + "patterns": [ + { + "include": "#type-function-return-type-core" + } + ] + } + ] + }, + "type-function-return-type-core": { + "patterns": [ + { + "include": "#comment" + }, + { + "begin": "(?<==>)(?=\\s*\\{)", + "end": "(?<=\\})", + "patterns": [ + { + "include": "#type-object" + } + ] + }, + { + "include": "#type-predicate-operator" + }, + { + "include": "#type" + } + ] + }, + "type-operators": { + "patterns": [ + { + "include": "#typeof-operator" + }, + { + "include": "#type-infer" + }, + { + "begin": "([&|])(?=\\s*\\{)", + "beginCaptures": { + "0": { + "name": "keyword.operator.type.js" + } + }, + "end": "(?<=\\})", + "patterns": [ + { + "include": "#type-object" + } + ] + }, + { + "begin": "[&|]", + "beginCaptures": { + "0": { + "name": "keyword.operator.type.js" + } + }, + "end": "(?=\\S)" + }, + { + "name": "keyword.operator.expression.keyof.js", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))keyof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "name": "keyword.operator.ternary.js", + "match": "(\\?|\\:)" + }, + { + "name": "keyword.operator.expression.import.js", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*\\()" + } + ] + }, + "type-infer": { + "patterns": [ + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(infer)\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s+(extends)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))?", + "name": "meta.type.infer.js", + "captures": { + "1": { + "name": "keyword.operator.expression.infer.js" + }, + "2": { + "name": "entity.name.type.js" + }, + "3": { + "name": "keyword.operator.expression.extends.js" + } + } + } + ] + }, + "type-predicate-operator": { + "patterns": [ + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s(is)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "captures": { + "1": { + "name": "keyword.operator.type.asserts.js" + }, + "2": { + "name": "variable.parameter.js variable.language.this.js" + }, + "3": { + "name": "variable.parameter.js" + }, + "4": { + "name": "keyword.operator.expression.is.js" + } + } + }, + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "captures": { + "1": { + "name": "keyword.operator.type.asserts.js" + }, + "2": { + "name": "variable.parameter.js variable.language.this.js" + }, + "3": { + "name": "variable.parameter.js" + } + } + }, + { + "name": "keyword.operator.type.asserts.js", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "name": "keyword.operator.expression.is.js", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + } + ] + }, + "type-name": { + "patterns": [ + { + "begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(<)", + "captures": { + "1": { + "name": "entity.name.type.module.js" + }, + "2": { + "name": "punctuation.accessor.js" + }, + "3": { + "name": "punctuation.accessor.optional.js" + }, + "4": { + "name": "meta.type.parameters.js punctuation.definition.typeparameters.begin.js" + } + }, + "end": "(>)", + "endCaptures": { + "1": { + "name": "meta.type.parameters.js punctuation.definition.typeparameters.end.js" + } + }, + "contentName": "meta.type.parameters.js", + "patterns": [ + { + "include": "#type-arguments-body" + } + ] + }, + { + "begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)", + "beginCaptures": { + "1": { + "name": "entity.name.type.js" + }, + "2": { + "name": "meta.type.parameters.js punctuation.definition.typeparameters.begin.js" + } + }, + "end": "(>)", + "endCaptures": { + "1": { + "name": "meta.type.parameters.js punctuation.definition.typeparameters.end.js" + } + }, + "contentName": "meta.type.parameters.js", + "patterns": [ + { + "include": "#type-arguments-body" + } + ] + }, + { + "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", + "captures": { + "1": { + "name": "entity.name.type.module.js" + }, + "2": { + "name": "punctuation.accessor.js" + }, + "3": { + "name": "punctuation.accessor.optional.js" + } + } + }, + { + "name": "entity.name.type.js", + "match": "[_$[:alpha:]][_$[:alnum:]]*" + } + ] + }, + "punctuation-comma": { + "name": "punctuation.separator.comma.js", + "match": "," + }, + "punctuation-semicolon": { + "name": "punctuation.terminator.statement.js", + "match": ";" + }, + "punctuation-accessor": { + "match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", + "captures": { + "1": { + "name": "punctuation.accessor.js" + }, + "2": { + "name": "punctuation.accessor.optional.js" + } + } + }, + "string": { + "patterns": [ + { + "include": "#qstring-single" + }, + { + "include": "#qstring-double" + }, + { + "include": "#template" + } + ] + }, + "qstring-double": { + "name": "string.quoted.double.js", + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.js" + } + }, + "end": "(\")|((?:[^\\\\\\n])$)", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.js" + }, + "2": { + "name": "invalid.illegal.newline.js" + } + }, + "patterns": [ + { + "include": "#string-character-escape" + } + ] + }, + "qstring-single": { + "name": "string.quoted.single.js", + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.js" + } + }, + "end": "(\\')|((?:[^\\\\\\n])$)", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.js" + }, + "2": { + "name": "invalid.illegal.newline.js" + } + }, + "patterns": [ + { + "include": "#string-character-escape" + } + ] + }, + "string-character-escape": { + "name": "constant.character.escape.js", + "match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)" + }, + "template": { + "patterns": [ + { + "include": "#template-call" + }, + { + "contentName": "string.template.js", + "begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", + "beginCaptures": { + "1": { + "name": "entity.name.function.tagged-template.js" + }, + "2": { + "name": "string.template.js punctuation.definition.string.template.begin.js" + } + }, + "end": "`", + "endCaptures": { + "0": { + "name": "string.template.js punctuation.definition.string.template.end.js" + } + }, + "patterns": [ + { + "include": "#template-substitution-element" + }, + { + "include": "#string-character-escape" + } + ] + } + ] + }, + "template-call": { + "patterns": [ + { + "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*)(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)", + "end": "(?=`)", + "patterns": [ + { + "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))", + "end": "(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)", + "patterns": [ + { + "include": "#support-function-call-identifiers" + }, + { + "name": "entity.name.function.tagged-template.js", + "match": "([_$[:alpha:]][_$[:alnum:]]*)" + } + ] + }, + { + "include": "#type-arguments" + } + ] + }, + { + "begin": "([_$[:alpha:]][_$[:alnum:]]*)?\\s*(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)`)", + "beginCaptures": { + "1": { + "name": "entity.name.function.tagged-template.js" + } + }, + "end": "(?=`)", + "patterns": [ + { + "include": "#type-arguments" + } + ] + } + ] + }, + "template-substitution-element": { + "name": "meta.template.expression.js", + "begin": "\\$\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.template-expression.begin.js" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.template-expression.end.js" + } + }, + "patterns": [ + { + "include": "#expression" + } + ], + "contentName": "meta.embedded.line.js" + }, + "type-string": { + "patterns": [ + { + "include": "#qstring-single" + }, + { + "include": "#qstring-double" + }, + { + "include": "#template-type" + } + ] + }, + "template-type": { + "patterns": [ + { + "include": "#template-call" + }, + { + "contentName": "string.template.js", + "begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", + "beginCaptures": { + "1": { + "name": "entity.name.function.tagged-template.js" + }, + "2": { + "name": "string.template.js punctuation.definition.string.template.begin.js" + } + }, + "end": "`", + "endCaptures": { + "0": { + "name": "string.template.js punctuation.definition.string.template.end.js" + } + }, + "patterns": [ + { + "include": "#template-type-substitution-element" + }, + { + "include": "#string-character-escape" + } + ] + } + ] + }, + "template-type-substitution-element": { + "name": "meta.template.expression.js", + "begin": "\\$\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.template-expression.begin.js" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.template-expression.end.js" + } + }, + "patterns": [ + { + "include": "#type" + } + ], + "contentName": "meta.embedded.line.js" + }, + "regex": { + "patterns": [ + { + "name": "string.regexp.js", + "begin": "(?<!\\+\\+|--|})(?<=[=(:,\\[?+!]|^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case|=>|&&|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))", + "beginCaptures": { + "1": { + "name": "punctuation.definition.string.begin.js" + } + }, + "end": "(/)([dgimsuy]*)", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.js" + }, + "2": { + "name": "keyword.other.js" + } + }, + "patterns": [ + { + "include": "#regexp" + } + ] + }, + { + "name": "string.regexp.js", + "begin": "((?<![_$[:alnum:])\\]]|\\+\\+|--|}|\\*\\/)|((?<=^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case))\\s*)\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.js" + } + }, + "end": "(/)([dgimsuy]*)", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.js" + }, + "2": { + "name": "keyword.other.js" + } + }, + "patterns": [ + { + "include": "#regexp" + } + ] + } + ] + }, + "regexp": { + "patterns": [ + { + "name": "keyword.control.anchor.regexp", + "match": "\\\\[bB]|\\^|\\$" + }, + { + "match": "\\\\[1-9]\\d*|\\\\k<([a-zA-Z_$][\\w$]*)>", + "captures": { + "0": { + "name": "keyword.other.back-reference.regexp" + }, + "1": { + "name": "variable.other.regexp" + } + } + }, + { + "name": "keyword.operator.quantifier.regexp", + "match": "[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??" + }, + { + "name": "keyword.operator.or.regexp", + "match": "\\|" + }, + { + "name": "meta.group.assertion.regexp", + "begin": "(\\()((\\?=)|(\\?!)|(\\?<=)|(\\?<!))", + "beginCaptures": { + "1": { + "name": "punctuation.definition.group.regexp" + }, + "2": { + "name": "punctuation.definition.group.assertion.regexp" + }, + "3": { + "name": "meta.assertion.look-ahead.regexp" + }, + "4": { + "name": "meta.assertion.negative-look-ahead.regexp" + }, + "5": { + "name": "meta.assertion.look-behind.regexp" + }, + "6": { + "name": "meta.assertion.negative-look-behind.regexp" + } + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.definition.group.regexp" + } + }, + "patterns": [ + { + "include": "#regexp" + } + ] + }, + { + "name": "meta.group.regexp", + "begin": "\\((?:(\\?:)|(?:\\?<([a-zA-Z_$][\\w$]*)>))?", + "beginCaptures": { + "0": { + "name": "punctuation.definition.group.regexp" + }, + "1": { + "name": "punctuation.definition.group.no-capture.regexp" + }, + "2": { + "name": "variable.other.regexp" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.group.regexp" + } + }, + "patterns": [ + { + "include": "#regexp" + } + ] + }, + { + "name": "constant.other.character-class.set.regexp", + "begin": "(\\[)(\\^)?", + "beginCaptures": { + "1": { + "name": "punctuation.definition.character-class.regexp" + }, + "2": { + "name": "keyword.operator.negation.regexp" + } + }, + "end": "(\\])", + "endCaptures": { + "1": { + "name": "punctuation.definition.character-class.regexp" + } + }, + "patterns": [ + { + "name": "constant.other.character-class.range.regexp", + "match": "(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))", + "captures": { + "1": { + "name": "constant.character.numeric.regexp" + }, + "2": { + "name": "constant.character.control.regexp" + }, + "3": { + "name": "constant.character.escape.backslash.regexp" + }, + "4": { + "name": "constant.character.numeric.regexp" + }, + "5": { + "name": "constant.character.control.regexp" + }, + "6": { + "name": "constant.character.escape.backslash.regexp" + } + } + }, + { + "include": "#regex-character-class" + } + ] + }, + { + "include": "#regex-character-class" + } + ] + }, + "regex-character-class": { + "patterns": [ + { + "name": "constant.other.character-class.regexp", + "match": "\\\\[wWsSdDtrnvf]|\\." + }, + { + "name": "constant.character.numeric.regexp", + "match": "\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})" + }, + { + "name": "constant.character.control.regexp", + "match": "\\\\c[A-Z]" + }, + { + "name": "constant.character.escape.backslash.regexp", + "match": "\\\\." + } + ] + }, + "comment": { + "patterns": [ + { + "name": "comment.block.documentation.js", + "begin": "/\\*\\*(?!/)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.js" + } + }, + "end": "\\*/", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.js" + } + }, + "patterns": [ + { + "include": "#docblock" + } + ] + }, + { + "name": "comment.block.js", + "begin": "(/\\*)(?:\\s*((@)internal)(?=\\s|(\\*/)))?", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.js" + }, + "2": { + "name": "storage.type.internaldeclaration.js" + }, + "3": { + "name": "punctuation.decorator.internaldeclaration.js" + } + }, + "end": "\\*/", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.js" + } + } + }, + { + "begin": "(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.js" + }, + "2": { + "name": "comment.line.double-slash.js" + }, + "3": { + "name": "punctuation.definition.comment.js" + }, + "4": { + "name": "storage.type.internaldeclaration.js" + }, + "5": { + "name": "punctuation.decorator.internaldeclaration.js" + } + }, + "end": "(?=$)", + "contentName": "comment.line.double-slash.js" + } + ] + }, + "single-line-comment-consuming-line-ending": { + "begin": "(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.js" + }, + "2": { + "name": "comment.line.double-slash.js" + }, + "3": { + "name": "punctuation.definition.comment.js" + }, + "4": { + "name": "storage.type.internaldeclaration.js" + }, + "5": { + "name": "punctuation.decorator.internaldeclaration.js" + } + }, + "end": "(?=^)", + "contentName": "comment.line.double-slash.js" + }, + "directives": { + "name": "comment.line.triple-slash.directive.js", + "begin": "^(///)\\s*(?=<(reference|amd-dependency|amd-module)(\\s+(path|types|no-default-lib|lib|name|resolution-mode)\\s*=\\s*((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)))+\\s*/>\\s*$)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.js" + } + }, + "end": "(?=$)", + "patterns": [ + { + "name": "meta.tag.js", + "begin": "(<)(reference|amd-dependency|amd-module)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.directive.js" + }, + "2": { + "name": "entity.name.tag.directive.js" + } + }, + "end": "/>", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.directive.js" + } + }, + "patterns": [ + { + "name": "entity.other.attribute-name.directive.js", + "match": "path|types|no-default-lib|lib|name|resolution-mode" + }, + { + "name": "keyword.operator.assignment.js", + "match": "=" + }, + { + "include": "#string" + } + ] + } + ] + }, + "docblock": { + "patterns": [ + { + "match": "(?x)\n((@)(?:access|api))\n\\s+\n(private|protected|public)\n\\b", + "captures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + }, + "3": { + "name": "constant.language.access-type.jsdoc" + } + } + }, + { + "match": "(?x)\n((@)author)\n\\s+\n(\n [^@\\s<>*/]\n (?:[^@<>*/]|\\*[^/])*\n)\n(?:\n \\s*\n (<)\n ([^>\\s]+)\n (>)\n)?", + "captures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + }, + "3": { + "name": "entity.name.type.instance.jsdoc" + }, + "4": { + "name": "punctuation.definition.bracket.angle.begin.jsdoc" + }, + "5": { + "name": "constant.other.email.link.underline.jsdoc" + }, + "6": { + "name": "punctuation.definition.bracket.angle.end.jsdoc" + } + } + }, + { + "match": "(?x)\n((@)borrows) \\s+\n((?:[^@\\s*/]|\\*[^/])+) # <that namepath>\n\\s+ (as) \\s+ # as\n((?:[^@\\s*/]|\\*[^/])+) # <this namepath>", + "captures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + }, + "3": { + "name": "entity.name.type.instance.jsdoc" + }, + "4": { + "name": "keyword.operator.control.jsdoc" + }, + "5": { + "name": "entity.name.type.instance.jsdoc" + } + } + }, + { + "name": "meta.example.jsdoc", + "begin": "((@)example)\\s+", + "end": "(?=@|\\*/)", + "beginCaptures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + } + }, + "patterns": [ + { + "match": "^\\s\\*\\s+" + }, + { + "contentName": "constant.other.description.jsdoc", + "begin": "\\G(<)caption(>)", + "beginCaptures": { + "0": { + "name": "entity.name.tag.inline.jsdoc" + }, + "1": { + "name": "punctuation.definition.bracket.angle.begin.jsdoc" + }, + "2": { + "name": "punctuation.definition.bracket.angle.end.jsdoc" + } + }, + "end": "(</)caption(>)|(?=\\*/)", + "endCaptures": { + "0": { + "name": "entity.name.tag.inline.jsdoc" + }, + "1": { + "name": "punctuation.definition.bracket.angle.begin.jsdoc" + }, + "2": { + "name": "punctuation.definition.bracket.angle.end.jsdoc" + } + } + }, + { + "match": "[^\\s@*](?:[^*]|\\*[^/])*", + "captures": { + "0": { + "name": "source.embedded.js" + } + } + } + ] + }, + { + "match": "(?x) ((@)kind) \\s+ (class|constant|event|external|file|function|member|mixin|module|namespace|typedef) \\b", + "captures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + }, + "3": { + "name": "constant.language.symbol-type.jsdoc" + } + } + }, + { + "match": "(?x)\n((@)see)\n\\s+\n(?:\n # URL\n (\n (?=https?://)\n (?:[^\\s*]|\\*[^/])+\n )\n |\n # JSDoc namepath\n (\n (?!\n # Avoid matching bare URIs (also acceptable as links)\n https?://\n |\n # Avoid matching {@inline tags}; we match those below\n (?:\\[[^\\[\\]]*\\])? # Possible description [preceding]{@tag}\n {@(?:link|linkcode|linkplain|tutorial)\\b\n )\n # Matched namepath\n (?:[^@\\s*/]|\\*[^/])+\n )\n)", + "captures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + }, + "3": { + "name": "variable.other.link.underline.jsdoc" + }, + "4": { + "name": "entity.name.type.instance.jsdoc" + } + } + }, + { + "match": "(?x)\n((@)template)\n\\s+\n# One or more valid identifiers\n(\n [A-Za-z_$] # First character: non-numeric word character\n [\\w$.\\[\\]]* # Rest of identifier\n (?: # Possible list of additional identifiers\n \\s* , \\s*\n [A-Za-z_$]\n [\\w$.\\[\\]]*\n )*\n)", + "captures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + }, + "3": { + "name": "variable.other.jsdoc" + } + } + }, + { + "begin": "(?x)((@)template)\\s+(?={)", + "beginCaptures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + } + }, + "end": "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", + "patterns": [ + { + "include": "#jsdoctype" + }, + { + "name": "variable.other.jsdoc", + "match": "([A-Za-z_$][\\w$.\\[\\]]*)" + } + ] + }, + { + "match": "(?x)\n(\n (@)\n (?:arg|argument|const|constant|member|namespace|param|var)\n)\n\\s+\n(\n [A-Za-z_$]\n [\\w$.\\[\\]]*\n)", + "captures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + }, + "3": { + "name": "variable.other.jsdoc" + } + } + }, + { + "begin": "((@)typedef)\\s+(?={)", + "beginCaptures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + } + }, + "end": "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", + "patterns": [ + { + "include": "#jsdoctype" + }, + { + "name": "entity.name.type.instance.jsdoc", + "match": "(?:[^@\\s*/]|\\*[^/])+" + } + ] + }, + { + "begin": "((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\s+(?={)", + "beginCaptures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + } + }, + "end": "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", + "patterns": [ + { + "include": "#jsdoctype" + }, + { + "name": "variable.other.jsdoc", + "match": "([A-Za-z_$][\\w$.\\[\\]]*)" + }, + { + "name": "variable.other.jsdoc", + "match": "(?x)\n(\\[)\\s*\n[\\w$]+\n(?:\n (?:\\[\\])? # Foo[ ].bar properties within an array\n \\. # Foo.Bar namespaced parameter\n [\\w$]+\n)*\n(?:\n \\s*\n (=) # [foo=bar] Default parameter value\n \\s*\n (\n # The inner regexes are to stop the match early at */ and to not stop at escaped quotes\n (?>\n \"(?:(?:\\*(?!/))|(?:\\\\(?!\"))|[^*\\\\])*?\" | # [foo=\"bar\"] Double-quoted\n '(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?' | # [foo='bar'] Single-quoted\n \\[ (?:(?:\\*(?!/))|[^*])*? \\] | # [foo=[1,2]] Array literal\n (?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])* # Everything else\n )*\n )\n)?\n\\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))", + "captures": { + "1": { + "name": "punctuation.definition.optional-value.begin.bracket.square.jsdoc" + }, + "2": { + "name": "keyword.operator.assignment.jsdoc" + }, + "3": { + "name": "source.embedded.js" + }, + "4": { + "name": "punctuation.definition.optional-value.end.bracket.square.jsdoc" + }, + "5": { + "name": "invalid.illegal.syntax.jsdoc" + } + } + } + ] + }, + { + "begin": "(?x)\n(\n (@)\n (?:define|enum|exception|export|extends|lends|implements|modifies\n |namespace|private|protected|returns?|satisfies|suppress|this|throws|type\n |yields?)\n)\n\\s+(?={)", + "beginCaptures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + } + }, + "end": "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", + "patterns": [ + { + "include": "#jsdoctype" + } + ] + }, + { + "match": "(?x)\n(\n (@)\n (?:alias|augments|callback|constructs|emits|event|fires|exports?\n |extends|external|function|func|host|lends|listens|interface|memberof!?\n |method|module|mixes|mixin|name|requires|see|this|typedef|uses)\n)\n\\s+\n(\n (?:\n [^{}@\\s*] | \\*[^/]\n )+\n)", + "captures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + }, + "3": { + "name": "entity.name.type.instance.jsdoc" + } + } + }, + { + "contentName": "variable.other.jsdoc", + "begin": "((@)(?:default(?:value)?|license|version))\\s+(([''\"]))", + "beginCaptures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + }, + "3": { + "name": "variable.other.jsdoc" + }, + "4": { + "name": "punctuation.definition.string.begin.jsdoc" + } + }, + "end": "(\\3)|(?=$|\\*/)", + "endCaptures": { + "0": { + "name": "variable.other.jsdoc" + }, + "1": { + "name": "punctuation.definition.string.end.jsdoc" + } + } + }, + { + "match": "((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)", + "captures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + }, + "3": { + "name": "variable.other.jsdoc" + } + } + }, + { + "name": "storage.type.class.jsdoc", + "match": "(?x) (@) (?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles |callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright |default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception |exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func |function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc |inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method |mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects |override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected |public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary |suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation |version|virtual|writeOnce|yields?) \\b", + "captures": { + "1": { + "name": "punctuation.definition.block.tag.jsdoc" + } + } + }, + { + "include": "#inline-tags" + }, + { + "match": "((@)(?:[_$[:alpha:]][_$[:alnum:]]*))(?=\\s+)", + "captures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + } + } + } + ] + }, + "brackets": { + "patterns": [ + { + "begin": "{", + "end": "}|(?=\\*/)", + "patterns": [ + { + "include": "#brackets" + } + ] + }, + { + "begin": "\\[", + "end": "\\]|(?=\\*/)", + "patterns": [ + { + "include": "#brackets" + } + ] + } + ] + }, + "inline-tags": { + "patterns": [ + { + "name": "constant.other.description.jsdoc", + "match": "(\\[)[^\\]]+(\\])(?={@(?:link|linkcode|linkplain|tutorial))", + "captures": { + "1": { + "name": "punctuation.definition.bracket.square.begin.jsdoc" + }, + "2": { + "name": "punctuation.definition.bracket.square.end.jsdoc" + } + } + }, + { + "name": "entity.name.type.instance.jsdoc", + "begin": "({)((@)(?:link(?:code|plain)?|tutorial))\\s*", + "beginCaptures": { + "1": { + "name": "punctuation.definition.bracket.curly.begin.jsdoc" + }, + "2": { + "name": "storage.type.class.jsdoc" + }, + "3": { + "name": "punctuation.definition.inline.tag.jsdoc" + } + }, + "end": "}|(?=\\*/)", + "endCaptures": { + "0": { + "name": "punctuation.definition.bracket.curly.end.jsdoc" + } + }, + "patterns": [ + { + "match": "\\G((?=https?://)(?:[^|}\\s*]|\\*[/])+)(\\|)?", + "captures": { + "1": { + "name": "variable.other.link.underline.jsdoc" + }, + "2": { + "name": "punctuation.separator.pipe.jsdoc" + } + } + }, + { + "match": "\\G((?:[^{}@\\s|*]|\\*[^/])+)(\\|)?", + "captures": { + "1": { + "name": "variable.other.description.jsdoc" + }, + "2": { + "name": "punctuation.separator.pipe.jsdoc" + } + } + } + ] + } + ] + }, + "jsdoctype": { + "patterns": [ + { + "contentName": "entity.name.type.instance.jsdoc", + "begin": "\\G({)", + "beginCaptures": { + "0": { + "name": "entity.name.type.instance.jsdoc" + }, + "1": { + "name": "punctuation.definition.bracket.curly.begin.jsdoc" + } + }, + "end": "((}))\\s*|(?=\\*/)", + "endCaptures": { + "1": { + "name": "entity.name.type.instance.jsdoc" + }, + "2": { + "name": "punctuation.definition.bracket.curly.end.jsdoc" + } + }, + "patterns": [ + { + "include": "#brackets" + } + ] + } + ] + }, + "jsx": { + "patterns": [ + { + "include": "#jsx-tag-without-attributes-in-expression" + }, + { + "include": "#jsx-tag-in-expression" + } + ] + }, + "jsx-tag-without-attributes-in-expression": { + "begin": "(?<!\\+\\+|--)(?<=[({\\[,?=>:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s*(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>))", + "end": "(?!(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>))", + "patterns": [ + { + "include": "#jsx-tag-without-attributes" + } + ] + }, + "jsx-tag-without-attributes": { + "name": "meta.tag.without-attributes.js", + "begin": "(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>)", + "end": "(</)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.js" + }, + "2": { + "name": "entity.name.tag.namespace.js" + }, + "3": { + "name": "punctuation.separator.namespace.js" + }, + "4": { + "name": "entity.name.tag.js" + }, + "5": { + "name": "support.class.component.js" + }, + "6": { + "name": "punctuation.definition.tag.end.js" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.js" + }, + "2": { + "name": "entity.name.tag.namespace.js" + }, + "3": { + "name": "punctuation.separator.namespace.js" + }, + "4": { + "name": "entity.name.tag.js" + }, + "5": { + "name": "support.class.component.js" + }, + "6": { + "name": "punctuation.definition.tag.end.js" + } + }, + "contentName": "meta.jsx.children.js", + "patterns": [ + { + "include": "#jsx-children" + } + ] + }, + "jsx-tag-in-expression": { + "begin": "(?x)\n (?<!\\+\\+|--)(?<=[({\\[,?=>:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s*\n (?!<\\s*[_$[:alpha:]][_$[:alnum:]]*((\\s+extends\\s+[^=>])|,)) # look ahead is not type parameter of arrow\n (?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))", + "end": "(?!(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))", + "patterns": [ + { + "include": "#jsx-tag" + } + ] + }, + "jsx-tag": { + "name": "meta.tag.js", + "begin": "(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))", + "end": "(/>)|(?:(</)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>))", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.end.js" + }, + "2": { + "name": "punctuation.definition.tag.begin.js" + }, + "3": { + "name": "entity.name.tag.namespace.js" + }, + "4": { + "name": "punctuation.separator.namespace.js" + }, + "5": { + "name": "entity.name.tag.js" + }, + "6": { + "name": "support.class.component.js" + }, + "7": { + "name": "punctuation.definition.tag.end.js" + } + }, + "patterns": [ + { + "begin": "(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.js" + }, + "2": { + "name": "entity.name.tag.namespace.js" + }, + "3": { + "name": "punctuation.separator.namespace.js" + }, + "4": { + "name": "entity.name.tag.js" + }, + "5": { + "name": "support.class.component.js" + } + }, + "end": "(?=[/]?>)", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#type-arguments" + }, + { + "include": "#jsx-tag-attributes" + } + ] + }, + { + "begin": "(>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.end.js" + } + }, + "end": "(?=</)", + "contentName": "meta.jsx.children.js", + "patterns": [ + { + "include": "#jsx-children" + } + ] + } + ] + }, + "jsx-children": { + "patterns": [ + { + "include": "#jsx-tag-without-attributes" + }, + { + "include": "#jsx-tag" + }, + { + "include": "#jsx-evaluated-code" + }, + { + "include": "#jsx-entities" + } + ] + }, + "jsx-evaluated-code": { + "contentName": "meta.embedded.expression.js", + "begin": "\\{", + "end": "\\}", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.js" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.js" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + "jsx-entities": { + "patterns": [ + { + "name": "constant.character.entity.js", + "match": "(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)", + "captures": { + "1": { + "name": "punctuation.definition.entity.js" + }, + "3": { + "name": "punctuation.definition.entity.js" + } + } + } + ] + }, + "jsx-tag-attributes": { + "name": "meta.tag.attributes.js", + "begin": "\\s+", + "end": "(?=[/]?>)", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#jsx-tag-attribute-name" + }, + { + "include": "#jsx-tag-attribute-assignment" + }, + { + "include": "#jsx-string-double-quoted" + }, + { + "include": "#jsx-string-single-quoted" + }, + { + "include": "#jsx-evaluated-code" + }, + { + "include": "#jsx-tag-attributes-illegal" + } + ] + }, + "jsx-tag-attribute-name": { + "match": "(?x)\n \\s*\n (?:([_$[:alpha:]][-_$[:alnum:].]*)(:))?\n ([_$[:alpha:]][-_$[:alnum:]]*)\n (?=\\s|=|/?>|/\\*|//)", + "captures": { + "1": { + "name": "entity.other.attribute-name.namespace.js" + }, + "2": { + "name": "punctuation.separator.namespace.js" + }, + "3": { + "name": "entity.other.attribute-name.js" + } + } + }, + "jsx-tag-attribute-assignment": { + "name": "keyword.operator.assignment.js", + "match": "=(?=\\s*(?:'|\"|{|/\\*|//|\\n))" + }, + "jsx-string-double-quoted": { + "name": "string.quoted.double.js", + "begin": "\"", + "end": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.js" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.js" + } + }, + "patterns": [ + { + "include": "#jsx-entities" + } + ] + }, + "jsx-string-single-quoted": { + "name": "string.quoted.single.js", + "begin": "'", + "end": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.js" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.js" + } + }, + "patterns": [ + { + "include": "#jsx-entities" + } + ] + }, + "jsx-tag-attributes-illegal": { + "name": "invalid.illegal.attribute.js", + "match": "\\S+" + } + } +} diff --git a/docs/shiki/languages/jinja-html.tmLanguage.json b/docs/shiki/languages/jinja-html.tmLanguage.json new file mode 100644 index 00000000..dfc74b56 --- /dev/null +++ b/docs/shiki/languages/jinja-html.tmLanguage.json @@ -0,0 +1,16 @@ +{ + "name": "jinja-html", + "scopeName": "text.html.jinja", + "comment": "Jinja HTML Templates", + "firstLineMatch": "^{% extends [\"'][^\"']+[\"'] %}", + "foldingStartMarker": "(<(?i:(head|table|tr|div|style|script|ul|ol|form|dl))\\b.*?>|{%\\s*(block|filter|for|if|macro|raw))", + "foldingStopMarker": "(</(?i:(head|table|tr|div|style|script|ul|ol|form|dl))\\b.*?>|{%\\s*(endblock|endfilter|endfor|endif|endmacro|endraw)\\s*%})", + "patterns": [ + { + "include": "source.jinja" + }, + { + "include": "text.html.basic" + } + ] +} diff --git a/docs/shiki/languages/jinja.tmLanguage.json b/docs/shiki/languages/jinja.tmLanguage.json new file mode 100644 index 00000000..aafd0614 --- /dev/null +++ b/docs/shiki/languages/jinja.tmLanguage.json @@ -0,0 +1,345 @@ +{ + "name": "jinja", + "scopeName": "source.jinja", + "comment": "Jinja Templates", + "foldingStartMarker": "({%\\s*(block|filter|for|if|macro|raw))", + "foldingStopMarker": "({%\\s*(endblock|endfilter|endfor|endif|endmacro|endraw)\\s*%})", + "patterns": [ + { + "begin": "({%)\\s*(raw)\\s*(%})", + "captures": { + "1": { + "name": "entity.other.jinja.delimiter.tag" + }, + "2": { + "name": "keyword.control.jinja" + }, + "3": { + "name": "entity.other.jinja.delimiter.tag" + } + }, + "end": "({%)\\s*(endraw)\\s*(%})", + "name": "comment.block.jinja.raw" + }, + { + "include": "#comments" + }, + { + "begin": "{{-?", + "captures": [ + { + "name": "variable.entity.other.jinja.delimiter" + } + ], + "end": "-?}}", + "name": "variable.meta.scope.jinja", + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "begin": "{%-?", + "captures": [ + { + "name": "entity.other.jinja.delimiter.tag" + } + ], + "end": "-?%}", + "name": "meta.scope.jinja.tag", + "patterns": [ + { + "include": "#expression" + } + ] + } + ], + "repository": { + "comments": { + "begin": "{#-?", + "captures": [ + { + "name": "entity.other.jinja.delimiter.comment" + } + ], + "end": "-?#}", + "name": "comment.block.jinja", + "patterns": [ + { + "include": "#comments" + } + ] + }, + "escaped_char": { + "match": "\\\\x[0-9A-F]{2}", + "name": "constant.character.escape.hex.jinja" + }, + "escaped_unicode_char": { + "captures": { + "1": { + "name": "constant.character.escape.unicode.16-bit-hex.jinja" + }, + "2": { + "name": "constant.character.escape.unicode.32-bit-hex.jinja" + }, + "3": { + "name": "constant.character.escape.unicode.name.jinja" + } + }, + "match": "(\\\\U[0-9A-Fa-f]{8})|(\\\\u[0-9A-Fa-f]{4})|(\\\\N\\{[a-zA-Z ]+\\})" + }, + "expression": { + "patterns": [ + { + "captures": { + "1": { + "name": "keyword.control.jinja" + }, + "2": { + "name": "variable.other.jinja.block" + } + }, + "match": "\\s*\\b(block)\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.control.jinja" + }, + "2": { + "name": "variable.other.jinja.filter" + } + }, + "match": "\\s*\\b(filter)\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.control.jinja" + }, + "2": { + "name": "variable.other.jinja.test" + } + }, + "match": "\\s*\\b(is)\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.control.jinja" + } + }, + "match": "(?<=\\{\\%-|\\{\\%)\\s*\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b(?!\\s*[,=])" + }, + { + "match": "\\b(and|else|if|in|import|not|or|recursive|with(out)?\\s+context)\\b", + "name": "keyword.control.jinja" + }, + { + "match": "\\b(true|false|none)\\b", + "name": "constant.language.jinja" + }, + { + "match": "\\b(loop|super|self|varargs|kwargs)\\b", + "name": "variable.language.jinja" + }, + { + "match": "[a-zA-Z_][a-zA-Z0-9_]*", + "name": "variable.other.jinja" + }, + { + "match": "(\\+|\\-|\\*\\*|\\*|//|/|%)", + "name": "keyword.operator.arithmetic.jinja" + }, + { + "captures": { + "1": { + "name": "punctuation.other.jinja" + }, + "2": { + "name": "variable.other.jinja.filter" + } + }, + "match": "(\\|)([a-zA-Z_][a-zA-Z0-9_]*)" + }, + { + "captures": { + "1": { + "name": "punctuation.other.jinja" + }, + "2": { + "name": "variable.other.jinja.attribute" + } + }, + "match": "(\\.)([a-zA-Z_][a-zA-Z0-9_]*)" + }, + { + "begin": "\\[", + "captures": [ + { + "name": "punctuation.other.jinja" + } + ], + "end": "\\]", + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "begin": "\\(", + "captures": [ + { + "name": "punctuation.other.jinja" + } + ], + "end": "\\)", + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "begin": "\\{", + "captures": [ + { + "name": "punctuation.other.jinja" + } + ], + "end": "\\}", + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "match": "(\\.|:|\\||,)", + "name": "punctuation.other.jinja" + }, + { + "match": "(==|<=|=>|<|>|!=)", + "name": "keyword.operator.comparison.jinja" + }, + { + "match": "=", + "name": "keyword.operator.assignment.jinja" + }, + { + "begin": "\"", + "beginCaptures": [ + { + "name": "punctuation.definition.string.begin.jinja" + } + ], + "end": "\"", + "endCaptures": [ + { + "name": "punctuation.definition.string.end.jinja" + } + ], + "name": "string.quoted.double.jinja", + "patterns": [ + { + "include": "#string" + } + ] + }, + { + "begin": "'", + "beginCaptures": [ + { + "name": "punctuation.definition.string.begin.jinja" + } + ], + "end": "'", + "endCaptures": [ + { + "name": "punctuation.definition.string.end.jinja" + } + ], + "name": "string.quoted.single.jinja", + "patterns": [ + { + "include": "#string" + } + ] + }, + { + "begin": "@/", + "beginCaptures": [ + { + "name": "punctuation.definition.regexp.begin.jinja" + } + ], + "end": "/", + "endCaptures": [ + { + "name": "punctuation.definition.regexp.end.jinja" + } + ], + "name": "string.regexp.jinja", + "patterns": [ + { + "include": "#simple_escapes" + } + ] + } + ] + }, + "simple_escapes": { + "captures": { + "1": { + "name": "constant.character.escape.newline.jinja" + }, + "2": { + "name": "constant.character.escape.backlash.jinja" + }, + "3": { + "name": "constant.character.escape.double-quote.jinja" + }, + "4": { + "name": "constant.character.escape.single-quote.jinja" + }, + "5": { + "name": "constant.character.escape.bell.jinja" + }, + "6": { + "name": "constant.character.escape.backspace.jinja" + }, + "7": { + "name": "constant.character.escape.formfeed.jinja" + }, + "8": { + "name": "constant.character.escape.linefeed.jinja" + }, + "9": { + "name": "constant.character.escape.return.jinja" + }, + "10": { + "name": "constant.character.escape.tab.jinja" + }, + "11": { + "name": "constant.character.escape.vertical-tab.jinja" + } + }, + "match": "(\\\\\\n)|(\\\\\\\\)|(\\\\\\\")|(\\\\')|(\\\\a)|(\\\\b)|(\\\\f)|(\\\\n)|(\\\\r)|(\\\\t)|(\\\\v)" + }, + "string": { + "patterns": [ + { + "include": "#simple_escapes" + }, + { + "include": "#escaped_char" + }, + { + "include": "#escaped_unicode_char" + } + ] + } + } +} diff --git a/docs/shiki/languages/jison.tmLanguage.json b/docs/shiki/languages/jison.tmLanguage.json new file mode 100644 index 00000000..103ae9b6 --- /dev/null +++ b/docs/shiki/languages/jison.tmLanguage.json @@ -0,0 +1,712 @@ +{ + "name": "jison", + "scopeName": "source.jison", + "fileTypes": ["jison"], + "patterns": [ + { + "begin": "%%", + "end": "\\z", + "beginCaptures": { + "0": { + "name": "meta.separator.section.jison" + } + }, + "patterns": [ + { + "begin": "%%", + "end": "\\z", + "beginCaptures": { + "0": { + "name": "meta.separator.section.jison" + } + }, + "patterns": [ + { + "name": "meta.section.epilogue.jison", + "begin": "\\G", + "end": "\\z", + "contentName": "source.js.embedded.jison", + "patterns": [ + { + "include": "#epilogue_section" + } + ] + } + ] + }, + { + "name": "meta.section.rules.jison", + "begin": "\\G", + "end": "(?=%%)", + "patterns": [ + { + "include": "#rules_section" + } + ] + } + ] + }, + { + "name": "meta.section.declarations.jison", + "begin": "^", + "end": "(?=%%)", + "patterns": [ + { + "include": "#declarations_section" + } + ] + } + ], + "repository": { + "declarations_section": { + "patterns": [ + { + "include": "#comments" + }, + { + "begin": "^\\s*(%lex)\\s*$", + "end": "^\\s*(/lex)\\b", + "beginCaptures": { + "1": { + "name": "entity.name.tag.lexer.begin.jison" + } + }, + "endCaptures": { + "1": { + "name": "entity.name.tag.lexer.end.jison" + } + }, + "patterns": [ + { + "begin": "%%", + "end": "(?=/lex)", + "beginCaptures": { + "0": { + "name": "meta.separator.section.jisonlex" + } + }, + "patterns": [ + { + "begin": "^%%", + "end": "(?=/lex)", + "beginCaptures": { + "0": { + "name": "meta.separator.section.jisonlex" + } + }, + "patterns": [ + { + "name": "meta.section.user-code.jisonlex", + "begin": "\\G", + "end": "(?=/lex)", + "contentName": "source.js.embedded.jisonlex", + "patterns": [ + { + "include": "source.jisonlex#user_code_section" + } + ] + } + ] + }, + { + "name": "meta.section.rules.jisonlex", + "begin": "\\G", + "end": "^(?=%%|/lex)", + "patterns": [ + { + "include": "source.jisonlex#rules_section" + } + ] + } + ] + }, + { + "name": "meta.section.definitions.jisonlex", + "begin": "^", + "end": "(?=%%|/lex)", + "patterns": [ + { + "include": "source.jisonlex#definitions_section" + } + ] + } + ] + }, + { + "name": "meta.section.prologue.jison", + "begin": "(?=%\\{)", + "end": "(?<=%\\})", + "patterns": [ + { + "include": "#user_code_blocks" + } + ] + }, + { + "include": "#options_declarations" + }, + { + "name": "keyword.other.declaration.$1.jison", + "match": "%(ebnf|left|nonassoc|parse-param|right|start)\\b" + }, + { + "include": "#include_declarations" + }, + { + "name": "meta.code.jison", + "begin": "%(code)\\b", + "end": "$", + "beginCaptures": { + "0": { + "name": "keyword.other.declaration.$1.jison" + } + }, + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#rule_actions" + }, + { + "name": "keyword.other.code-qualifier.$1.jison", + "match": "(init|required)" + }, + { + "include": "#quoted_strings" + }, + { + "name": "string.unquoted.jison", + "match": "\\b[[:alpha:]_](?:[\\w-]*\\w)?\\b" + } + ] + }, + { + "name": "meta.parser-type.jison", + "begin": "%(parser-type)\\b", + "end": "$", + "beginCaptures": { + "0": { + "name": "keyword.other.declaration.$1.jison" + } + }, + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#quoted_strings" + }, + { + "name": "string.unquoted.jison", + "match": "\\b[[:alpha:]_](?:[\\w-]*\\w)?\\b" + } + ] + }, + { + "name": "meta.token.jison", + "begin": "%(token)\\b", + "end": "$|(%%|;)", + "beginCaptures": { + "0": { + "name": "keyword.other.declaration.$1.jison" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.terminator.declaration.token.jison" + } + }, + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#numbers" + }, + { + "include": "#quoted_strings" + }, + { + "name": "invalid.unimplemented.jison", + "match": "<[[:alpha:]_](?:[\\w-]*\\w)?>" + }, + { + "name": "entity.other.token.jison", + "match": "\\S+" + } + ] + }, + { + "name": "keyword.other.declaration.$1.jison", + "match": "%(debug|import)\\b" + }, + { + "name": "invalid.illegal.jison", + "match": "%prec\\b" + }, + { + "name": "invalid.unimplemented.jison", + "match": "%[[:alpha:]_](?:[\\w-]*\\w)?\\b" + }, + { + "include": "#numbers" + }, + { + "include": "#quoted_strings" + } + ] + }, + "rules_section": { + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#actions" + }, + { + "include": "#include_declarations" + }, + { + "name": "meta.rule.jison", + "begin": "\\b[[:alpha:]_](?:[\\w-]*\\w)?\\b", + "end": ";", + "beginCaptures": { + "0": { + "name": "entity.name.constant.rule-result.jison" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.rule.jison" + } + }, + "patterns": [ + { + "include": "#comments" + }, + { + "name": "meta.rule-components.jison", + "begin": ":", + "end": "(?=;)", + "beginCaptures": { + "0": { + "name": "keyword.operator.rule-components.assignment.jison" + } + }, + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#quoted_strings" + }, + { + "match": "(\\[)([[:alpha:]_](?:[\\w-]*\\w)?)(\\])", + "captures": { + "1": { + "name": "punctuation.definition.named-reference.begin.jison" + }, + "2": { + "name": "entity.name.other.reference.jison" + }, + "3": { + "name": "punctuation.definition.named-reference.end.jison" + } + } + }, + { + "name": "meta.prec.jison", + "begin": "(%(prec))\\s*", + "end": "(?<=['\"])|(?=\\s)", + "beginCaptures": { + "1": { + "name": "keyword.other.$2.jison" + } + }, + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#quoted_strings" + }, + { + "name": "constant.other.token.jison", + "begin": "(?=\\S)", + "end": "(?=\\s)" + } + ] + }, + { + "name": "keyword.operator.rule-components.separator.jison", + "match": "\\|" + }, + { + "name": "keyword.other.$0.jison", + "match": "\\b(?:EOF|error)\\b" + }, + { + "name": "keyword.other.empty.jison", + "match": "(?:%(?:e(?:mpty|psilon))|\\b[Ɛɛεϵ])\\b" + }, + { + "include": "#rule_actions" + } + ] + } + ] + } + ] + }, + "epilogue_section": { + "patterns": [ + { + "include": "#user_code_include_declarations" + }, + { + "include": "source.js" + } + ] + }, + "actions": { + "patterns": [ + { + "name": "meta.action.jison", + "begin": "\\{\\{", + "end": "\\}\\}", + "beginCaptures": { + "0": { + "name": "punctuation.definition.action.begin.jison" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.action.end.jison" + } + }, + "contentName": "source.js.embedded.jison", + "patterns": [ + { + "include": "source.js" + } + ] + }, + { + "name": "meta.action.jison", + "begin": "(?=%\\{)", + "end": "(?<=%\\})", + "patterns": [ + { + "include": "#user_code_blocks" + } + ] + } + ] + }, + "rule_actions": { + "patterns": [ + { + "include": "#actions" + }, + { + "name": "meta.action.jison", + "begin": "\\{", + "end": "\\}", + "beginCaptures": { + "0": { + "name": "punctuation.definition.action.begin.jison" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.action.end.jison" + } + }, + "contentName": "source.js.embedded.jison", + "patterns": [ + { + "include": "source.js" + } + ] + }, + { + "include": "#include_declarations" + }, + { + "name": "meta.action.jison", + "begin": "->|→", + "end": "$", + "beginCaptures": { + "0": { + "name": "punctuation.definition.action.arrow.jison" + } + }, + "contentName": "source.js.embedded.jison", + "patterns": [ + { + "include": "source.js" + } + ] + } + ] + }, + "comments": { + "patterns": [ + { + "name": "comment.line.double-slash.jison", + "begin": "//", + "end": "$", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.jison" + } + } + }, + { + "name": "comment.block.jison", + "begin": "/\\*", + "end": "\\*/", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.begin.jison" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.end.jison" + } + } + } + ] + }, + "include_declarations": { + "patterns": [ + { + "name": "meta.include.jison", + "begin": "(%(include))\\s*", + "end": "(?<=['\"])|(?=\\s)", + "beginCaptures": { + "1": { + "name": "keyword.other.declaration.$2.jison" + } + }, + "patterns": [ + { + "include": "#include_paths" + } + ] + } + ] + }, + "user_code_include_declarations": { + "patterns": [ + { + "name": "meta.include.jison", + "begin": "^(%(include))\\s*", + "end": "(?<=['\"])|(?=\\s)", + "beginCaptures": { + "1": { + "name": "keyword.other.declaration.$2.jison" + } + }, + "patterns": [ + { + "include": "#include_paths" + } + ] + } + ] + }, + "include_paths": { + "patterns": [ + { + "include": "#quoted_strings" + }, + { + "name": "string.unquoted.jison", + "begin": "(?=\\S)", + "end": "(?=\\s)", + "patterns": [ + { + "include": "source.js#string_escapes" + } + ] + } + ] + }, + "numbers": { + "patterns": [ + { + "match": "(0[Xx])([0-9A-Fa-f]+)", + "captures": { + "1": { + "name": "storage.type.number.jison" + }, + "2": { + "name": "constant.numeric.integer.hexadecimal.jison" + } + } + }, + { + "name": "constant.numeric.integer.decimal.jison", + "match": "\\d+" + } + ] + }, + "options_declarations": { + "patterns": [ + { + "name": "meta.options.jison", + "begin": "%options\\b", + "end": "^(?=\\S|\\s*$)", + "beginCaptures": { + "0": { + "name": "keyword.other.options.jison" + } + }, + "patterns": [ + { + "include": "#comments" + }, + { + "name": "entity.name.constant.jison", + "match": "\\b[[:alpha:]_](?:[\\w-]*\\w)?\\b" + }, + { + "begin": "(=)\\s*", + "end": "(?<=['\"])|(?=\\s)", + "beginCaptures": { + "1": { + "name": "keyword.operator.option.assignment.jison" + } + }, + "patterns": [ + { + "include": "#comments" + }, + { + "name": "constant.language.boolean.$1.jison", + "match": "\\b(true|false)\\b" + }, + { + "include": "#numbers" + }, + { + "include": "#quoted_strings" + }, + { + "name": "string.unquoted.jison", + "match": "\\S+" + } + ] + }, + { + "include": "#quoted_strings" + } + ] + } + ] + }, + "quoted_strings": { + "patterns": [ + { + "name": "string.quoted.double.jison", + "begin": "\"", + "end": "\"", + "patterns": [ + { + "include": "source.js#string_escapes" + } + ] + }, + { + "name": "string.quoted.single.jison", + "begin": "'", + "end": "'", + "patterns": [ + { + "include": "source.js#string_escapes" + } + ] + } + ] + }, + "user_code_blocks": { + "patterns": [ + { + "name": "meta.user-code-block.jison", + "begin": "%\\{", + "end": "%\\}", + "beginCaptures": { + "0": { + "name": "punctuation.definition.user-code-block.begin.jison" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.user-code-block.end.jison" + } + }, + "contentName": "source.js.embedded.jison", + "patterns": [ + { + "include": "source.js" + } + ] + } + ] + } + }, + "injections": { + "L:(meta.action.jison - (comment | string)), source.js.embedded.jison - (comment | string), source.js.embedded.source - (comment | string.quoted.double | string.quoted.single)": { + "patterns": [ + { + "name": "variable.language.semantic-value.jison", + "match": "\\${2}" + }, + { + "name": "variable.language.result-location.jison", + "match": "@\\$" + }, + { + "name": "variable.language.stack-index-0.jison", + "match": "##\\$|\\byysp\\b" + }, + { + "name": "support.variable.token-reference.jison", + "match": "#\\S+#" + }, + { + "name": "variable.language.result-id.jison", + "match": "#\\$" + }, + { + "name": "support.variable.token-value.jison", + "match": "\\$(?:-?\\d+|[[:alpha:]_](?:[\\w-]*\\w)?)" + }, + { + "name": "support.variable.token-location.jison", + "match": "@(?:-?\\d+|[[:alpha:]_](?:[\\w-]*\\w)?)" + }, + { + "name": "support.variable.stack-index.jison", + "match": "##(?:-?\\d+|[[:alpha:]_](?:[\\w-]*\\w)?)" + }, + { + "name": "support.variable.token-id.jison", + "match": "#(?:-?\\d+|[[:alpha:]_](?:[\\w-]*\\w)?)" + }, + { + "name": "variable.language.jison", + "match": "\\byy(?:l(?:eng|ineno|oc|stack)|rulelength|s(?:tate|s?tack)|text|vstack)\\b" + }, + { + "name": "keyword.other.jison", + "match": "\\byy(?:clearin|erro[kr])\\b" + } + ] + } + } +} diff --git a/docs/shiki/languages/json.tmLanguage.json b/docs/shiki/languages/json.tmLanguage.json new file mode 100644 index 00000000..f11db55c --- /dev/null +++ b/docs/shiki/languages/json.tmLanguage.json @@ -0,0 +1,213 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/microsoft/vscode-JSON.tmLanguage/blob/master/JSON.tmLanguage", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/microsoft/vscode-JSON.tmLanguage/commit/9bd83f1c252b375e957203f21793316203f61f70", + "name": "json", + "scopeName": "source.json", + "patterns": [ + { + "include": "#value" + } + ], + "repository": { + "array": { + "begin": "\\[", + "beginCaptures": { + "0": { + "name": "punctuation.definition.array.begin.json" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.array.end.json" + } + }, + "name": "meta.structure.array.json", + "patterns": [ + { + "include": "#value" + }, + { + "match": ",", + "name": "punctuation.separator.array.json" + }, + { + "match": "[^\\s\\]]", + "name": "invalid.illegal.expected-array-separator.json" + } + ] + }, + "comments": { + "patterns": [ + { + "begin": "/\\*\\*(?!/)", + "captures": { + "0": { + "name": "punctuation.definition.comment.json" + } + }, + "end": "\\*/", + "name": "comment.block.documentation.json" + }, + { + "begin": "/\\*", + "captures": { + "0": { + "name": "punctuation.definition.comment.json" + } + }, + "end": "\\*/", + "name": "comment.block.json" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.comment.json" + } + }, + "match": "(//).*$\\n?", + "name": "comment.line.double-slash.js" + } + ] + }, + "constant": { + "match": "\\b(?:true|false|null)\\b", + "name": "constant.language.json" + }, + "number": { + "match": "(?x) # turn on extended mode\n -? # an optional minus\n (?:\n 0 # a zero\n | # ...or...\n [1-9] # a 1-9 character\n \\d* # followed by zero or more digits\n )\n (?:\n (?:\n \\. # a period\n \\d+ # followed by one or more digits\n )?\n (?:\n [eE] # an e character\n [+-]? # followed by an option +/-\n \\d+ # followed by one or more digits\n )? # make exponent optional\n )? # make decimal portion optional", + "name": "constant.numeric.json" + }, + "object": { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.dictionary.begin.json" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.dictionary.end.json" + } + }, + "name": "meta.structure.dictionary.json", + "patterns": [ + { + "comment": "the JSON object key", + "include": "#objectkey" + }, + { + "include": "#comments" + }, + { + "begin": ":", + "beginCaptures": { + "0": { + "name": "punctuation.separator.dictionary.key-value.json" + } + }, + "end": "(,)|(?=\\})", + "endCaptures": { + "1": { + "name": "punctuation.separator.dictionary.pair.json" + } + }, + "name": "meta.structure.dictionary.value.json", + "patterns": [ + { + "comment": "the JSON object value", + "include": "#value" + }, + { + "match": "[^\\s,]", + "name": "invalid.illegal.expected-dictionary-separator.json" + } + ] + }, + { + "match": "[^\\s\\}]", + "name": "invalid.illegal.expected-dictionary-separator.json" + } + ] + }, + "string": { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.json" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.json" + } + }, + "name": "string.quoted.double.json", + "patterns": [ + { + "include": "#stringcontent" + } + ] + }, + "objectkey": { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.support.type.property-name.begin.json" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.support.type.property-name.end.json" + } + }, + "name": "string.json support.type.property-name.json", + "patterns": [ + { + "include": "#stringcontent" + } + ] + }, + "stringcontent": { + "patterns": [ + { + "match": "(?x) # turn on extended mode\n \\\\ # a literal backslash\n (?: # ...followed by...\n [\"\\\\/bfnrt] # one of these characters\n | # ...or...\n u # a u\n [0-9a-fA-F]{4}) # and four hex digits", + "name": "constant.character.escape.json" + }, + { + "match": "\\\\.", + "name": "invalid.illegal.unrecognized-string-escape.json" + } + ] + }, + "value": { + "patterns": [ + { + "include": "#constant" + }, + { + "include": "#number" + }, + { + "include": "#string" + }, + { + "include": "#array" + }, + { + "include": "#object" + }, + { + "include": "#comments" + } + ] + } + } +} diff --git a/docs/shiki/languages/json5.tmLanguage.json b/docs/shiki/languages/json5.tmLanguage.json new file mode 100644 index 00000000..d95c20e6 --- /dev/null +++ b/docs/shiki/languages/json5.tmLanguage.json @@ -0,0 +1,241 @@ +{ + "scopeName": "source.json5", + "fileTypes": ["json5"], + "name": "json5", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#value" + } + ], + "repository": { + "array": { + "begin": "\\[", + "beginCaptures": { + "0": { + "name": "punctuation.definition.array.begin.json5" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.array.end.json5" + } + }, + "name": "meta.structure.array.json5", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#value" + }, + { + "match": ",", + "name": "punctuation.separator.array.json5" + }, + { + "match": "[^\\s\\]]", + "name": "invalid.illegal.expected-array-separator.json5" + } + ] + }, + "constant": { + "match": "\\b(?:true|false|null|Infinity|NaN)\\b", + "name": "constant.language.json5" + }, + "infinity": { + "match": "(-)*\\b(?:Infinity|NaN)\\b", + "name": "constant.language.json5" + }, + "number": { + "patterns": [ + { + "comment": "handles hexadecimal numbers", + "match": "(0x)[0-9a-fA-f]*", + "name": "constant.hex.numeric.json5" + }, + { + "comment": "handles integer and decimal numbers", + "match": "[+-.]?(?=[1-9]|0(?!\\d))\\d+(\\.\\d+)?([eE][+-]?\\d+)?", + "name": "constant.dec.numeric.json5" + } + ] + }, + "object": { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.dictionary.begin.json5" + } + }, + "comment": "a json5 object", + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.dictionary.end.json5" + } + }, + "name": "meta.structure.dictionary.json5", + "patterns": [ + { + "include": "#comments" + }, + { + "comment": "the json5 object key", + "include": "#key" + }, + { + "begin": ":", + "beginCaptures": { + "0": { + "name": "punctuation.separator.dictionary.key-value.json5" + } + }, + "end": "(,)|(?=\\})", + "endCaptures": { + "1": { + "name": "punctuation.separator.dictionary.pair.json5" + } + }, + "name": "meta.structure.dictionary.value.json5", + "patterns": [ + { + "comment": "the json5 object value", + "include": "#value" + }, + { + "match": "[^\\s,]", + "name": "invalid.illegal.expected-dictionary-separator.json5" + } + ] + }, + { + "match": "[^\\s\\}]", + "name": "invalid.illegal.expected-dictionary-separator.json5" + } + ] + }, + "stringSingle": { + "begin": "[']", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.json5" + } + }, + "end": "[']", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.json5" + } + }, + "name": "string.quoted.json5", + "patterns": [ + { + "match": "(?x: # turn on extended mode\n \\\\ # a literal backslash\n (?: # ...followed by...\n [\"\\\\/bfnrt] # one of these characters\n | # ...or...\n u # a u\n [0-9a-fA-F]{4} # and four hex digits\n )\n )", + "name": "constant.character.escape.json5" + }, + { + "match": "\\\\.", + "name": "invalid.illegal.unrecognized-string-escape.json5" + } + ] + }, + "stringDouble": { + "begin": "[\"]", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.json5" + } + }, + "end": "[\"]", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.json5" + } + }, + "name": "string.quoted.json5", + "patterns": [ + { + "match": "(?x: # turn on extended mode\n \\\\ # a literal backslash\n (?: # ...followed by...\n [\"\\\\/bfnrt] # one of these characters\n | # ...or...\n u # a u\n [0-9a-fA-F]{4} # and four hex digits\n )\n )", + "name": "constant.character.escape.json5" + }, + { + "match": "\\\\.", + "name": "invalid.illegal.unrecognized-string-escape.json5" + } + ] + }, + "key": { + "name": "string.key.json5", + "patterns": [ + { + "include": "#stringSingle" + }, + { + "include": "#stringDouble" + }, + { + "match": "[a-zA-Z0-9_-]", + "name": "string.key.json5" + } + ] + }, + "value": { + "comment": "the 'value' diagram at http://json.org", + "patterns": [ + { + "include": "#constant" + }, + { + "include": "#infinity" + }, + { + "include": "#number" + }, + { + "include": "#stringSingle" + }, + { + "include": "#stringDouble" + }, + { + "include": "#array" + }, + { + "include": "#object" + } + ] + }, + "comments": { + "patterns": [ + { + "match": "/{2}.*", + "name": "comment.single.json5" + }, + { + "begin": "/\\*\\*(?!/)", + "captures": { + "0": { + "name": "punctuation.definition.comment.json5" + } + }, + "end": "\\*/", + "name": "comment.block.documentation.json5" + }, + { + "begin": "/\\*", + "captures": { + "0": { + "name": "punctuation.definition.comment.json5" + } + }, + "end": "\\*/", + "name": "comment.block.json5" + } + ] + } + } +} diff --git a/docs/shiki/languages/jsonc.tmLanguage.json b/docs/shiki/languages/jsonc.tmLanguage.json new file mode 100644 index 00000000..a440d4d5 --- /dev/null +++ b/docs/shiki/languages/jsonc.tmLanguage.json @@ -0,0 +1,213 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/microsoft/vscode-JSON.tmLanguage/blob/master/JSON.tmLanguage", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/microsoft/vscode-JSON.tmLanguage/commit/9bd83f1c252b375e957203f21793316203f61f70", + "name": "jsonc", + "scopeName": "source.json.comments", + "patterns": [ + { + "include": "#value" + } + ], + "repository": { + "array": { + "begin": "\\[", + "beginCaptures": { + "0": { + "name": "punctuation.definition.array.begin.json.comments" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.array.end.json.comments" + } + }, + "name": "meta.structure.array.json.comments", + "patterns": [ + { + "include": "#value" + }, + { + "match": ",", + "name": "punctuation.separator.array.json.comments" + }, + { + "match": "[^\\s\\]]", + "name": "invalid.illegal.expected-array-separator.json.comments" + } + ] + }, + "comments": { + "patterns": [ + { + "begin": "/\\*\\*(?!/)", + "captures": { + "0": { + "name": "punctuation.definition.comment.json.comments" + } + }, + "end": "\\*/", + "name": "comment.block.documentation.json.comments" + }, + { + "begin": "/\\*", + "captures": { + "0": { + "name": "punctuation.definition.comment.json.comments" + } + }, + "end": "\\*/", + "name": "comment.block.json.comments" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.comment.json.comments" + } + }, + "match": "(//).*$\\n?", + "name": "comment.line.double-slash.js" + } + ] + }, + "constant": { + "match": "\\b(?:true|false|null)\\b", + "name": "constant.language.json.comments" + }, + "number": { + "match": "(?x) # turn on extended mode\n -? # an optional minus\n (?:\n 0 # a zero\n | # ...or...\n [1-9] # a 1-9 character\n \\d* # followed by zero or more digits\n )\n (?:\n (?:\n \\. # a period\n \\d+ # followed by one or more digits\n )?\n (?:\n [eE] # an e character\n [+-]? # followed by an option +/-\n \\d+ # followed by one or more digits\n )? # make exponent optional\n )? # make decimal portion optional", + "name": "constant.numeric.json.comments" + }, + "object": { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.dictionary.begin.json.comments" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.dictionary.end.json.comments" + } + }, + "name": "meta.structure.dictionary.json.comments", + "patterns": [ + { + "comment": "the JSON object key", + "include": "#objectkey" + }, + { + "include": "#comments" + }, + { + "begin": ":", + "beginCaptures": { + "0": { + "name": "punctuation.separator.dictionary.key-value.json.comments" + } + }, + "end": "(,)|(?=\\})", + "endCaptures": { + "1": { + "name": "punctuation.separator.dictionary.pair.json.comments" + } + }, + "name": "meta.structure.dictionary.value.json.comments", + "patterns": [ + { + "comment": "the JSON object value", + "include": "#value" + }, + { + "match": "[^\\s,]", + "name": "invalid.illegal.expected-dictionary-separator.json.comments" + } + ] + }, + { + "match": "[^\\s\\}]", + "name": "invalid.illegal.expected-dictionary-separator.json.comments" + } + ] + }, + "string": { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.json.comments" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.json.comments" + } + }, + "name": "string.quoted.double.json.comments", + "patterns": [ + { + "include": "#stringcontent" + } + ] + }, + "objectkey": { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.support.type.property-name.begin.json.comments" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.support.type.property-name.end.json.comments" + } + }, + "name": "string.json.comments support.type.property-name.json.comments", + "patterns": [ + { + "include": "#stringcontent" + } + ] + }, + "stringcontent": { + "patterns": [ + { + "match": "(?x) # turn on extended mode\n \\\\ # a literal backslash\n (?: # ...followed by...\n [\"\\\\/bfnrt] # one of these characters\n | # ...or...\n u # a u\n [0-9a-fA-F]{4}) # and four hex digits", + "name": "constant.character.escape.json.comments" + }, + { + "match": "\\\\.", + "name": "invalid.illegal.unrecognized-string-escape.json.comments" + } + ] + }, + "value": { + "patterns": [ + { + "include": "#constant" + }, + { + "include": "#number" + }, + { + "include": "#string" + }, + { + "include": "#array" + }, + { + "include": "#object" + }, + { + "include": "#comments" + } + ] + } + } +} diff --git a/docs/shiki/languages/jsonl.tmLanguage.json b/docs/shiki/languages/jsonl.tmLanguage.json new file mode 100644 index 00000000..f925d274 --- /dev/null +++ b/docs/shiki/languages/jsonl.tmLanguage.json @@ -0,0 +1,213 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/microsoft/vscode-JSON.tmLanguage/blob/master/JSON.tmLanguage", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/microsoft/vscode-JSON.tmLanguage/commit/9bd83f1c252b375e957203f21793316203f61f70", + "name": "jsonl", + "scopeName": "source.json.lines", + "patterns": [ + { + "include": "#value" + } + ], + "repository": { + "array": { + "begin": "\\[", + "beginCaptures": { + "0": { + "name": "punctuation.definition.array.begin.json.lines" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.array.end.json.lines" + } + }, + "name": "meta.structure.array.json.lines", + "patterns": [ + { + "include": "#value" + }, + { + "match": ",", + "name": "punctuation.separator.array.json.lines" + }, + { + "match": "[^\\s\\]]", + "name": "invalid.illegal.expected-array-separator.json.lines" + } + ] + }, + "comments": { + "patterns": [ + { + "begin": "/\\*\\*(?!/)", + "captures": { + "0": { + "name": "punctuation.definition.comment.json.lines" + } + }, + "end": "\\*/", + "name": "comment.block.documentation.json.lines" + }, + { + "begin": "/\\*", + "captures": { + "0": { + "name": "punctuation.definition.comment.json.lines" + } + }, + "end": "\\*/", + "name": "comment.block.json.lines" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.comment.json.lines" + } + }, + "match": "(//).*$\\n?", + "name": "comment.line.double-slash.js" + } + ] + }, + "constant": { + "match": "\\b(?:true|false|null)\\b", + "name": "constant.language.json.lines" + }, + "number": { + "match": "(?x) # turn on extended mode\n -? # an optional minus\n (?:\n 0 # a zero\n | # ...or...\n [1-9] # a 1-9 character\n \\d* # followed by zero or more digits\n )\n (?:\n (?:\n \\. # a period\n \\d+ # followed by one or more digits\n )?\n (?:\n [eE] # an e character\n [+-]? # followed by an option +/-\n \\d+ # followed by one or more digits\n )? # make exponent optional\n )? # make decimal portion optional", + "name": "constant.numeric.json.lines" + }, + "object": { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.dictionary.begin.json.lines" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.dictionary.end.json.lines" + } + }, + "name": "meta.structure.dictionary.json.lines", + "patterns": [ + { + "comment": "the JSON object key", + "include": "#objectkey" + }, + { + "include": "#comments" + }, + { + "begin": ":", + "beginCaptures": { + "0": { + "name": "punctuation.separator.dictionary.key-value.json.lines" + } + }, + "end": "(,)|(?=\\})", + "endCaptures": { + "1": { + "name": "punctuation.separator.dictionary.pair.json.lines" + } + }, + "name": "meta.structure.dictionary.value.json.lines", + "patterns": [ + { + "comment": "the JSON object value", + "include": "#value" + }, + { + "match": "[^\\s,]", + "name": "invalid.illegal.expected-dictionary-separator.json.lines" + } + ] + }, + { + "match": "[^\\s\\}]", + "name": "invalid.illegal.expected-dictionary-separator.json.lines" + } + ] + }, + "string": { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.json.lines" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.json.lines" + } + }, + "name": "string.quoted.double.json.lines", + "patterns": [ + { + "include": "#stringcontent" + } + ] + }, + "objectkey": { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.support.type.property-name.begin.json.lines" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.support.type.property-name.end.json.lines" + } + }, + "name": "string.json.lines support.type.property-name.json.lines", + "patterns": [ + { + "include": "#stringcontent" + } + ] + }, + "stringcontent": { + "patterns": [ + { + "match": "(?x) # turn on extended mode\n \\\\ # a literal backslash\n (?: # ...followed by...\n [\"\\\\/bfnrt] # one of these characters\n | # ...or...\n u # a u\n [0-9a-fA-F]{4}) # and four hex digits", + "name": "constant.character.escape.json.lines" + }, + { + "match": "\\\\.", + "name": "invalid.illegal.unrecognized-string-escape.json.lines" + } + ] + }, + "value": { + "patterns": [ + { + "include": "#constant" + }, + { + "include": "#number" + }, + { + "include": "#string" + }, + { + "include": "#array" + }, + { + "include": "#object" + }, + { + "include": "#comments" + } + ] + } + } +} diff --git a/docs/shiki/languages/jsonnet.tmLanguage.json b/docs/shiki/languages/jsonnet.tmLanguage.json new file mode 100644 index 00000000..231f6e49 --- /dev/null +++ b/docs/shiki/languages/jsonnet.tmLanguage.json @@ -0,0 +1,211 @@ +{ + "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", + "name": "jsonnet", + "patterns": [ + { + "include": "#expression" + }, + { + "include": "#keywords" + } + ], + "repository": { + "builtin-functions": { + "patterns": [ + { + "match": "\\bstd[.](acos|asin|atan|ceil|char|codepoint|cos|exp|exponent)\\b", + "name": "support.function.jsonnet" + }, + { + "match": "\\bstd[.](filter|floor|force|length|log|makeArray|mantissa)\\b", + "name": "support.function.jsonnet" + }, + { + "match": "\\bstd[.](objectFields|objectHas|pow|sin|sqrt|tan|type|thisFile)\\b", + "name": "support.function.jsonnet" + }, + { + "match": "\\bstd[.](acos|asin|atan|ceil|char|codepoint|cos|exp|exponent)\\b", + "name": "support.function.jsonnet" + }, + { + "match": "\\bstd[.](abs|assertEqual|escapeString(Bash|Dollars|Json|Python))\\b", + "name": "support.function.jsonnet" + }, + { + "match": "\\bstd[.](filterMap|flattenArrays|foldl|foldr|format|join)\\b", + "name": "support.function.jsonnet" + }, + { + "match": "\\bstd[.](lines|manifest(Ini|Python(Vars)?)|map|max|min|mod)\\b", + "name": "support.function.jsonnet" + }, + { + "match": "\\bstd[.](set|set(Diff|Inter|Member|Union)|sort)\\b", + "name": "support.function.jsonnet" + }, + { + "match": "\\bstd[.](range|split|stringChars|substr|toString|uniq)\\b", + "name": "support.function.jsonnet" + } + ] + }, + "comment": { + "patterns": [ + { + "begin": "/\\*", + "end": "\\*/", + "name": "comment.block.jsonnet" + }, + { + "match": "//.*$", + "name": "comment.line.jsonnet" + }, + { + "match": "#.*$", + "name": "comment.block.jsonnet" + } + ] + }, + "double-quoted-strings": { + "begin": "\"", + "end": "\"", + "name": "string.quoted.double.jsonnet", + "patterns": [ + { + "match": "\\\\([\"\\\\/bfnrt]|(u[0-9a-fA-F]{4}))", + "name": "constant.character.escape.jsonnet" + }, + { + "match": "\\\\[^\"\\\\/bfnrtu]", + "name": "invalid.illegal.jsonnet" + } + ] + }, + "expression": { + "patterns": [ + { + "include": "#literals" + }, + { + "include": "#comment" + }, + { + "include": "#single-quoted-strings" + }, + { + "include": "#double-quoted-strings" + }, + { + "include": "#triple-quoted-strings" + }, + { + "include": "#builtin-functions" + }, + { + "include": "#functions" + } + ] + }, + "functions": { + "patterns": [ + { + "begin": "\\b([a-zA-Z_][a-z0-9A-Z_]*)\\s*\\(", + "beginCaptures": { + "1": { + "name": "entity.name.function.jsonnet" + } + }, + "end": "\\)", + "name": "meta.function", + "patterns": [ + { + "include": "#expression" + } + ] + } + ] + }, + "keywords": { + "patterns": [ + { + "match": "[!:~\\+\\-&\\|\\^=<>\\*\\/%]", + "name": "keyword.operator.jsonnet" + }, + { + "match": "\\$", + "name": "keyword.other.jsonnet" + }, + { + "match": "\\b(self|super|import|importstr|local|tailstrict)\\b", + "name": "keyword.other.jsonnet" + }, + { + "match": "\\b(if|then|else|for|in|error|assert)\\b", + "name": "keyword.control.jsonnet" + }, + { + "match": "\\b(function)\\b", + "name": "storage.type.jsonnet" + }, + { + "match": "[a-zA-Z_][a-z0-9A-Z_]*\\s*(:::|\\+:::)", + "name": "variable.parameter.jsonnet" + }, + { + "match": "[a-zA-Z_][a-z0-9A-Z_]*\\s*(::|\\+::)", + "name": "entity.name.type" + }, + { + "match": "[a-zA-Z_][a-z0-9A-Z_]*\\s*(:|\\+:)", + "name": "variable.parameter.jsonnet" + } + ] + }, + "literals": { + "patterns": [ + { + "match": "\\b(true|false|null)\\b", + "name": "constant.language.jsonnet" + }, + { + "match": "\\b(\\d+([Ee][+-]?\\d+)?)\\b", + "name": "constant.numeric.jsonnet" + }, + { + "match": "\\b\\d+[.]\\d*([Ee][+-]?\\d+)?\\b", + "name": "constant.numeric.jsonnet" + }, + { + "match": "\\b[.]\\d+([Ee][+-]?\\d+)?\\b", + "name": "constant.numeric.jsonnet" + } + ] + }, + "single-quoted-strings": { + "begin": "'", + "end": "'", + "name": "string.quoted.double.jsonnet", + "patterns": [ + { + "match": "\\\\(['\\\\/bfnrt]|(u[0-9a-fA-F]{4}))", + "name": "constant.character.escape.jsonnet" + }, + { + "match": "\\\\[^'\\\\/bfnrtu]", + "name": "invalid.illegal.jsonnet" + } + ] + }, + "triple-quoted-strings": { + "patterns": [ + { + "begin": "\\|\\|\\|", + "end": "\\|\\|\\|", + "name": "string.quoted.triple.jsonnet" + } + ] + } + }, + "scopeName": "source.jsonnet" +} diff --git a/docs/shiki/languages/jssm.tmLanguage.json b/docs/shiki/languages/jssm.tmLanguage.json new file mode 100644 index 00000000..d251ac03 --- /dev/null +++ b/docs/shiki/languages/jssm.tmLanguage.json @@ -0,0 +1,156 @@ +{ + "fileTypes": ["jssm", "jssm_state"], + "name": "jssm", + "patterns": [ + { + "begin": "/\\*", + "captures": { + "0": { + "name": "punctuation.definition.comment.mn" + } + }, + "comment": "block comment", + "end": "\\*/", + "name": "comment.block.jssm" + }, + { + "begin": "//", + "comment": "block comment", + "end": "$", + "name": "comment.line.jssm" + }, + { + "begin": "\\${", + "captures": { + "0": { + "name": "entity.name.function" + } + }, + "comment": "js outcalls", + "end": "}", + "name": "keyword.other" + }, + { + "comment": "semver", + "match": "([0-9]*)(\\.)([0-9]*)(\\.)([0-9]*)", + "name": "constant.numeric" + }, + { + "comment": "jssm language tokens", + "match": "graph_layout(\\s*)(:)", + "name": "constant.language.jssmLanguage" + }, + { + "comment": "jssm language tokens", + "match": "machine_name(\\s*)(:)", + "name": "constant.language.jssmLanguage" + }, + { + "comment": "jssm language tokens", + "match": "machine_version(\\s*)(:)", + "name": "constant.language.jssmLanguage" + }, + { + "comment": "jssm language tokens", + "match": "jssm_version(\\s*)(:)", + "name": "constant.language.jssmLanguage" + }, + { + "comment": "transitions", + "match": "<->", + "name": "keyword.control.transition.jssmArrow.legal_legal" + }, + { + "comment": "transitions", + "match": "<-", + "name": "keyword.control.transition.jssmArrow.legal_none" + }, + { + "comment": "transitions", + "match": "->", + "name": "keyword.control.transition.jssmArrow.none_legal" + }, + { + "comment": "transitions", + "match": "<=>", + "name": "keyword.control.transition.jssmArrow.main_main" + }, + { + "comment": "transitions", + "match": "=>", + "name": "keyword.control.transition.jssmArrow.none_main" + }, + { + "comment": "transitions", + "match": "<=", + "name": "keyword.control.transition.jssmArrow.main_none" + }, + { + "comment": "transitions", + "match": "<~>", + "name": "keyword.control.transition.jssmArrow.forced_forced" + }, + { + "comment": "transitions", + "match": "~>", + "name": "keyword.control.transition.jssmArrow.none_forced" + }, + { + "comment": "transitions", + "match": "<~", + "name": "keyword.control.transition.jssmArrow.forced_none" + }, + { + "comment": "transitions", + "match": "<-=>", + "name": "keyword.control.transition.jssmArrow.legal_main" + }, + { + "comment": "transitions", + "match": "<=->", + "name": "keyword.control.transition.jssmArrow.main_legal" + }, + { + "comment": "transitions", + "match": "<-~>", + "name": "keyword.control.transition.jssmArrow.legal_forced" + }, + { + "comment": "transitions", + "match": "<~->", + "name": "keyword.control.transition.jssmArrow.forced_legal" + }, + { + "comment": "transitions", + "match": "<=~>", + "name": "keyword.control.transition.jssmArrow.main_forced" + }, + { + "comment": "transitions", + "match": "<~=>", + "name": "keyword.control.transition.jssmArrow.forced_main" + }, + { + "comment": "edge probability annotation", + "match": "([0-9]+)%", + "name": "constant.numeric.jssmProbability" + }, + { + "comment": "action annotation", + "match": "\\'[^']*\\'", + "name": "constant.character.jssmAction" + }, + { + "comment": "jssm label annotation", + "match": "\\\"[^\"]*\\\"", + "name": "entity.name.tag.jssmLabel.doublequoted" + }, + { + "comment": "jssm label annotation", + "match": "([a-zA-Z0-9_.+&()#@!?,])", + "name": "entity.name.tag.jssmLabel.atom" + } + ], + "scopeName": "source.jssm", + "uuid": "2bb22b55-e811-4383-9929-ae6d0ab92aca" +} diff --git a/docs/shiki/languages/jsx.tmLanguage.json b/docs/shiki/languages/jsx.tmLanguage.json new file mode 100644 index 00000000..fd2a14e5 --- /dev/null +++ b/docs/shiki/languages/jsx.tmLanguage.json @@ -0,0 +1,5989 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/microsoft/TypeScript-TmLanguage/blob/master/TypeScriptReact.tmLanguage", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/microsoft/TypeScript-TmLanguage/commit/8c7482b94b548eab56da64dbfb30b82589b3f747", + "name": "jsx", + "scopeName": "source.js.jsx", + "patterns": [ + { + "include": "#directives" + }, + { + "include": "#statements" + }, + { + "include": "#shebang" + } + ], + "repository": { + "shebang": { + "name": "comment.line.shebang.js.jsx", + "match": "\\A(#!).*(?=$)", + "captures": { + "1": { + "name": "punctuation.definition.comment.js.jsx" + } + } + }, + "statements": { + "patterns": [ + { + "include": "#declaration" + }, + { + "include": "#control-statement" + }, + { + "include": "#after-operator-block-as-object-literal" + }, + { + "include": "#decl-block" + }, + { + "include": "#label" + }, + { + "include": "#expression" + }, + { + "include": "#punctuation-semicolon" + }, + { + "include": "#string" + }, + { + "include": "#comment" + } + ] + }, + "declaration": { + "patterns": [ + { + "include": "#decorator" + }, + { + "include": "#var-expr" + }, + { + "include": "#function-declaration" + }, + { + "include": "#class-declaration" + }, + { + "include": "#interface-declaration" + }, + { + "include": "#enum-declaration" + }, + { + "include": "#namespace-declaration" + }, + { + "include": "#type-alias-declaration" + }, + { + "include": "#import-equals-declaration" + }, + { + "include": "#import-declaration" + }, + { + "include": "#export-declaration" + }, + { + "name": "storage.modifier.js.jsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(declare|export)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + } + ] + }, + "control-statement": { + "patterns": [ + { + "include": "#switch-statement" + }, + { + "include": "#for-loop" + }, + { + "name": "keyword.control.trycatch.js.jsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(catch|finally|throw|try)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(break|continue|goto)\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "captures": { + "1": { + "name": "keyword.control.loop.js.jsx" + }, + "2": { + "name": "entity.name.label.js.jsx" + } + } + }, + { + "name": "keyword.control.loop.js.jsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(break|continue|do|goto|while)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(return)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "beginCaptures": { + "0": { + "name": "keyword.control.flow.js.jsx" + } + }, + "end": "(?=[;}]|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "name": "keyword.control.switch.js.jsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(case|default|switch)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "include": "#if-statement" + }, + { + "name": "keyword.control.conditional.js.jsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(else|if)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "name": "keyword.control.with.js.jsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(with)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "name": "keyword.control.js.jsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(package)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "name": "keyword.other.debugger.js.jsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(debugger)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + } + ] + }, + "label": { + "patterns": [ + { + "begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)(?=\\s*\\{)", + "beginCaptures": { + "1": { + "name": "entity.name.label.js.jsx" + }, + "2": { + "name": "punctuation.separator.label.js.jsx" + } + }, + "end": "(?<=\\})", + "patterns": [ + { + "include": "#decl-block" + } + ] + }, + { + "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)", + "captures": { + "1": { + "name": "entity.name.label.js.jsx" + }, + "2": { + "name": "punctuation.separator.label.js.jsx" + } + } + } + ] + }, + "expression": { + "patterns": [ + { + "include": "#expressionWithoutIdentifiers" + }, + { + "include": "#identifiers" + }, + { + "include": "#expressionPunctuations" + } + ] + }, + "expressionWithoutIdentifiers": { + "patterns": [ + { + "include": "#jsx" + }, + { + "include": "#string" + }, + { + "include": "#regex" + }, + { + "include": "#comment" + }, + { + "include": "#function-expression" + }, + { + "include": "#class-expression" + }, + { + "include": "#arrow-function" + }, + { + "include": "#paren-expression-possibly-arrow" + }, + { + "include": "#cast" + }, + { + "include": "#ternary-expression" + }, + { + "include": "#new-expr" + }, + { + "include": "#instanceof-expr" + }, + { + "include": "#object-literal" + }, + { + "include": "#expression-operators" + }, + { + "include": "#function-call" + }, + { + "include": "#literal" + }, + { + "include": "#support-objects" + }, + { + "include": "#paren-expression" + } + ] + }, + "expressionPunctuations": { + "patterns": [ + { + "include": "#punctuation-comma" + }, + { + "include": "#punctuation-accessor" + } + ] + }, + "decorator": { + "name": "meta.decorator.js.jsx", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))\\@", + "beginCaptures": { + "0": { + "name": "punctuation.decorator.js.jsx" + } + }, + "end": "(?=\\s)", + "patterns": [ + { + "include": "#expression" + } + ] + }, + "var-expr": { + "patterns": [ + { + "name": "meta.var.expr.js.jsx", + "begin": "(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))", + "end": "(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=^|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?<!^let|[^\\._$[:alnum:]]let|^var|[^\\._$[:alnum:]]var)(?=\\s*$)))", + "patterns": [ + { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", + "beginCaptures": { + "1": { + "name": "keyword.control.export.js.jsx" + }, + "2": { + "name": "storage.modifier.js.jsx" + }, + "3": { + "name": "storage.type.js.jsx" + } + }, + "end": "(?=\\S)" + }, + { + "include": "#destructuring-variable" + }, + { + "include": "#var-single-variable" + }, + { + "include": "#variable-initializer" + }, + { + "include": "#comment" + }, + { + "begin": "(,)\\s*(?=$|\\/\\/)", + "beginCaptures": { + "1": { + "name": "punctuation.separator.comma.js.jsx" + } + }, + "end": "(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))", + "patterns": [ + { + "include": "#single-line-comment-consuming-line-ending" + }, + { + "include": "#comment" + }, + { + "include": "#destructuring-variable" + }, + { + "include": "#var-single-variable" + }, + { + "include": "#punctuation-comma" + } + ] + }, + { + "include": "#punctuation-comma" + } + ] + }, + { + "name": "meta.var.expr.js.jsx", + "begin": "(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))", + "beginCaptures": { + "1": { + "name": "keyword.control.export.js.jsx" + }, + "2": { + "name": "storage.modifier.js.jsx" + }, + "3": { + "name": "storage.type.js.jsx" + } + }, + "end": "(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=^|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?<!^const|[^\\._$[:alnum:]]const)(?=\\s*$)))", + "patterns": [ + { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", + "beginCaptures": { + "1": { + "name": "keyword.control.export.js.jsx" + }, + "2": { + "name": "storage.modifier.js.jsx" + }, + "3": { + "name": "storage.type.js.jsx" + } + }, + "end": "(?=\\S)" + }, + { + "include": "#destructuring-const" + }, + { + "include": "#var-single-const" + }, + { + "include": "#variable-initializer" + }, + { + "include": "#comment" + }, + { + "begin": "(,)\\s*(?=$|\\/\\/)", + "beginCaptures": { + "1": { + "name": "punctuation.separator.comma.js.jsx" + } + }, + "end": "(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))", + "patterns": [ + { + "include": "#single-line-comment-consuming-line-ending" + }, + { + "include": "#comment" + }, + { + "include": "#destructuring-const" + }, + { + "include": "#var-single-const" + }, + { + "include": "#punctuation-comma" + } + ] + }, + { + "include": "#punctuation-comma" + } + ] + }, + { + "name": "meta.var.expr.js.jsx", + "begin": "(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))", + "beginCaptures": { + "1": { + "name": "keyword.control.export.js.jsx" + }, + "2": { + "name": "storage.modifier.js.jsx" + }, + "3": { + "name": "storage.type.js.jsx" + } + }, + "end": "(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?<!^using|[^\\._$[:alnum:]]using|^await\\s+using|[^\\._$[:alnum:]]await\\s+using)(?=\\s*$)))", + "patterns": [ + { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", + "beginCaptures": { + "1": { + "name": "keyword.control.export.js.jsx" + }, + "2": { + "name": "storage.modifier.js.jsx" + }, + "3": { + "name": "storage.type.js.jsx" + } + }, + "end": "(?=\\S)" + }, + { + "include": "#var-single-const" + }, + { + "include": "#variable-initializer" + }, + { + "include": "#comment" + }, + { + "begin": "(,)\\s*((?!\\S)|(?=\\/\\/))", + "beginCaptures": { + "1": { + "name": "punctuation.separator.comma.js.jsx" + } + }, + "end": "(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))", + "patterns": [ + { + "include": "#single-line-comment-consuming-line-ending" + }, + { + "include": "#comment" + }, + { + "include": "#var-single-const" + }, + { + "include": "#punctuation-comma" + } + ] + }, + { + "include": "#punctuation-comma" + } + ] + } + ] + }, + "var-single-variable": { + "patterns": [ + { + "name": "meta.var-single-variable.expr.js.jsx", + "begin": "(?x)([_$[:alpha:]][_$[:alnum:]]*)(\\!)?(?=\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", + "beginCaptures": { + "1": { + "name": "meta.definition.variable.js.jsx entity.name.function.js.jsx" + }, + "2": { + "name": "keyword.operator.definiteassignment.js.jsx" + } + }, + "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", + "patterns": [ + { + "include": "#var-single-variable-type-annotation" + } + ] + }, + { + "name": "meta.var-single-variable.expr.js.jsx", + "begin": "([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])(\\!)?", + "beginCaptures": { + "1": { + "name": "meta.definition.variable.js.jsx variable.other.constant.js.jsx" + }, + "2": { + "name": "keyword.operator.definiteassignment.js.jsx" + } + }, + "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", + "patterns": [ + { + "include": "#var-single-variable-type-annotation" + } + ] + }, + { + "name": "meta.var-single-variable.expr.js.jsx", + "begin": "([_$[:alpha:]][_$[:alnum:]]*)(\\!)?", + "beginCaptures": { + "1": { + "name": "meta.definition.variable.js.jsx variable.other.readwrite.js.jsx" + }, + "2": { + "name": "keyword.operator.definiteassignment.js.jsx" + } + }, + "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", + "patterns": [ + { + "include": "#var-single-variable-type-annotation" + } + ] + } + ] + }, + "var-single-const": { + "patterns": [ + { + "name": "meta.var-single-variable.expr.js.jsx", + "begin": "(?x)([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", + "beginCaptures": { + "1": { + "name": "meta.definition.variable.js.jsx variable.other.constant.js.jsx entity.name.function.js.jsx" + } + }, + "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", + "patterns": [ + { + "include": "#var-single-variable-type-annotation" + } + ] + }, + { + "name": "meta.var-single-variable.expr.js.jsx", + "begin": "([_$[:alpha:]][_$[:alnum:]]*)", + "beginCaptures": { + "1": { + "name": "meta.definition.variable.js.jsx variable.other.constant.js.jsx" + } + }, + "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", + "patterns": [ + { + "include": "#var-single-variable-type-annotation" + } + ] + } + ] + }, + "var-single-variable-type-annotation": { + "patterns": [ + { + "include": "#type-annotation" + }, + { + "include": "#string" + }, + { + "include": "#comment" + } + ] + }, + "destructuring-variable": { + "patterns": [ + { + "name": "meta.object-binding-pattern-variable.js.jsx", + "begin": "(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\{)", + "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", + "patterns": [ + { + "include": "#object-binding-pattern" + }, + { + "include": "#type-annotation" + }, + { + "include": "#comment" + } + ] + }, + { + "name": "meta.array-binding-pattern-variable.js.jsx", + "begin": "(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\[)", + "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", + "patterns": [ + { + "include": "#array-binding-pattern" + }, + { + "include": "#type-annotation" + }, + { + "include": "#comment" + } + ] + } + ] + }, + "destructuring-const": { + "patterns": [ + { + "name": "meta.object-binding-pattern-variable.js.jsx", + "begin": "(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\{)", + "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", + "patterns": [ + { + "include": "#object-binding-pattern-const" + }, + { + "include": "#type-annotation" + }, + { + "include": "#comment" + } + ] + }, + { + "name": "meta.array-binding-pattern-variable.js.jsx", + "begin": "(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\[)", + "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", + "patterns": [ + { + "include": "#array-binding-pattern-const" + }, + { + "include": "#type-annotation" + }, + { + "include": "#comment" + } + ] + } + ] + }, + "object-binding-element": { + "patterns": [ + { + "include": "#comment" + }, + { + "begin": "(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))", + "end": "(?=,|\\})", + "patterns": [ + { + "include": "#object-binding-element-propertyName" + }, + { + "include": "#binding-element" + } + ] + }, + { + "include": "#object-binding-pattern" + }, + { + "include": "#destructuring-variable-rest" + }, + { + "include": "#variable-initializer" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "object-binding-element-const": { + "patterns": [ + { + "include": "#comment" + }, + { + "begin": "(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))", + "end": "(?=,|\\})", + "patterns": [ + { + "include": "#object-binding-element-propertyName" + }, + { + "include": "#binding-element-const" + } + ] + }, + { + "include": "#object-binding-pattern-const" + }, + { + "include": "#destructuring-variable-rest-const" + }, + { + "include": "#variable-initializer" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "object-binding-element-propertyName": { + "begin": "(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))", + "end": "(:)", + "endCaptures": { + "0": { + "name": "punctuation.destructuring.js.jsx" + } + }, + "patterns": [ + { + "include": "#string" + }, + { + "include": "#array-literal" + }, + { + "include": "#numeric-literal" + }, + { + "name": "variable.object.property.js.jsx", + "match": "([_$[:alpha:]][_$[:alnum:]]*)" + } + ] + }, + "binding-element": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#string" + }, + { + "include": "#numeric-literal" + }, + { + "include": "#regex" + }, + { + "include": "#object-binding-pattern" + }, + { + "include": "#array-binding-pattern" + }, + { + "include": "#destructuring-variable-rest" + }, + { + "include": "#variable-initializer" + } + ] + }, + "binding-element-const": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#string" + }, + { + "include": "#numeric-literal" + }, + { + "include": "#regex" + }, + { + "include": "#object-binding-pattern-const" + }, + { + "include": "#array-binding-pattern-const" + }, + { + "include": "#destructuring-variable-rest-const" + }, + { + "include": "#variable-initializer" + } + ] + }, + "destructuring-variable-rest": { + "match": "(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)", + "captures": { + "1": { + "name": "keyword.operator.rest.js.jsx" + }, + "2": { + "name": "meta.definition.variable.js.jsx variable.other.readwrite.js.jsx" + } + } + }, + "destructuring-variable-rest-const": { + "match": "(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)", + "captures": { + "1": { + "name": "keyword.operator.rest.js.jsx" + }, + "2": { + "name": "meta.definition.variable.js.jsx variable.other.constant.js.jsx" + } + } + }, + "object-binding-pattern": { + "begin": "(?:(\\.\\.\\.)\\s*)?(\\{)", + "beginCaptures": { + "1": { + "name": "keyword.operator.rest.js.jsx" + }, + "2": { + "name": "punctuation.definition.binding-pattern.object.js.jsx" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.binding-pattern.object.js.jsx" + } + }, + "patterns": [ + { + "include": "#object-binding-element" + } + ] + }, + "object-binding-pattern-const": { + "begin": "(?:(\\.\\.\\.)\\s*)?(\\{)", + "beginCaptures": { + "1": { + "name": "keyword.operator.rest.js.jsx" + }, + "2": { + "name": "punctuation.definition.binding-pattern.object.js.jsx" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.binding-pattern.object.js.jsx" + } + }, + "patterns": [ + { + "include": "#object-binding-element-const" + } + ] + }, + "array-binding-pattern": { + "begin": "(?:(\\.\\.\\.)\\s*)?(\\[)", + "beginCaptures": { + "1": { + "name": "keyword.operator.rest.js.jsx" + }, + "2": { + "name": "punctuation.definition.binding-pattern.array.js.jsx" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.binding-pattern.array.js.jsx" + } + }, + "patterns": [ + { + "include": "#binding-element" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "array-binding-pattern-const": { + "begin": "(?:(\\.\\.\\.)\\s*)?(\\[)", + "beginCaptures": { + "1": { + "name": "keyword.operator.rest.js.jsx" + }, + "2": { + "name": "punctuation.definition.binding-pattern.array.js.jsx" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.binding-pattern.array.js.jsx" + } + }, + "patterns": [ + { + "include": "#binding-element-const" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "parameter-name": { + "patterns": [ + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)", + "captures": { + "1": { + "name": "storage.modifier.js.jsx" + } + } + }, + { + "match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", + "captures": { + "1": { + "name": "storage.modifier.js.jsx" + }, + "2": { + "name": "keyword.operator.rest.js.jsx" + }, + "3": { + "name": "entity.name.function.js.jsx variable.language.this.js.jsx" + }, + "4": { + "name": "entity.name.function.js.jsx" + }, + "5": { + "name": "keyword.operator.optional.js.jsx" + } + } + }, + { + "match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)", + "captures": { + "1": { + "name": "storage.modifier.js.jsx" + }, + "2": { + "name": "keyword.operator.rest.js.jsx" + }, + "3": { + "name": "variable.parameter.js.jsx variable.language.this.js.jsx" + }, + "4": { + "name": "variable.parameter.js.jsx" + }, + "5": { + "name": "keyword.operator.optional.js.jsx" + } + } + } + ] + }, + "destructuring-parameter": { + "patterns": [ + { + "name": "meta.parameter.object-binding-pattern.js.jsx", + "begin": "(?<!=|:)\\s*(?:(\\.\\.\\.)\\s*)?(\\{)", + "beginCaptures": { + "1": { + "name": "keyword.operator.rest.js.jsx" + }, + "2": { + "name": "punctuation.definition.binding-pattern.object.js.jsx" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.binding-pattern.object.js.jsx" + } + }, + "patterns": [ + { + "include": "#parameter-object-binding-element" + } + ] + }, + { + "name": "meta.paramter.array-binding-pattern.js.jsx", + "begin": "(?<!=|:)\\s*(?:(\\.\\.\\.)\\s*)?(\\[)", + "beginCaptures": { + "1": { + "name": "keyword.operator.rest.js.jsx" + }, + "2": { + "name": "punctuation.definition.binding-pattern.array.js.jsx" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.binding-pattern.array.js.jsx" + } + }, + "patterns": [ + { + "include": "#parameter-binding-element" + }, + { + "include": "#punctuation-comma" + } + ] + } + ] + }, + "parameter-object-binding-element": { + "patterns": [ + { + "include": "#comment" + }, + { + "begin": "(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))", + "end": "(?=,|\\})", + "patterns": [ + { + "include": "#object-binding-element-propertyName" + }, + { + "include": "#parameter-binding-element" + }, + { + "include": "#paren-expression" + } + ] + }, + { + "include": "#parameter-object-binding-pattern" + }, + { + "include": "#destructuring-parameter-rest" + }, + { + "include": "#variable-initializer" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "parameter-binding-element": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#string" + }, + { + "include": "#numeric-literal" + }, + { + "include": "#regex" + }, + { + "include": "#parameter-object-binding-pattern" + }, + { + "include": "#parameter-array-binding-pattern" + }, + { + "include": "#destructuring-parameter-rest" + }, + { + "include": "#variable-initializer" + } + ] + }, + "destructuring-parameter-rest": { + "match": "(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)", + "captures": { + "1": { + "name": "keyword.operator.rest.js.jsx" + }, + "2": { + "name": "variable.parameter.js.jsx" + } + } + }, + "parameter-object-binding-pattern": { + "begin": "(?:(\\.\\.\\.)\\s*)?(\\{)", + "beginCaptures": { + "1": { + "name": "keyword.operator.rest.js.jsx" + }, + "2": { + "name": "punctuation.definition.binding-pattern.object.js.jsx" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.binding-pattern.object.js.jsx" + } + }, + "patterns": [ + { + "include": "#parameter-object-binding-element" + } + ] + }, + "parameter-array-binding-pattern": { + "begin": "(?:(\\.\\.\\.)\\s*)?(\\[)", + "beginCaptures": { + "1": { + "name": "keyword.operator.rest.js.jsx" + }, + "2": { + "name": "punctuation.definition.binding-pattern.array.js.jsx" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.binding-pattern.array.js.jsx" + } + }, + "patterns": [ + { + "include": "#parameter-binding-element" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "field-declaration": { + "name": "meta.field.declaration.js.jsx", + "begin": "(?x)(?<!\\()(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)\\s+)?(?=\\s*((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|(\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|\\}|$))", + "beginCaptures": { + "1": { + "name": "storage.modifier.js.jsx" + } + }, + "end": "(?x)(?=\\}|;|,|$|(^(?!\\s*((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|(\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|$))))|(?<=\\})", + "patterns": [ + { + "include": "#variable-initializer" + }, + { + "include": "#type-annotation" + }, + { + "include": "#string" + }, + { + "include": "#array-literal" + }, + { + "include": "#numeric-literal" + }, + { + "include": "#comment" + }, + { + "match": "(?x)(\\#?[_$[:alpha:]][_$[:alnum:]]*)(?:(\\?)|(\\!))?(?=\\s*\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", + "captures": { + "1": { + "name": "meta.definition.property.js.jsx entity.name.function.js.jsx" + }, + "2": { + "name": "keyword.operator.optional.js.jsx" + }, + "3": { + "name": "keyword.operator.definiteassignment.js.jsx" + } + } + }, + { + "name": "meta.definition.property.js.jsx variable.object.property.js.jsx", + "match": "\\#?[_$[:alpha:]][_$[:alnum:]]*" + }, + { + "name": "keyword.operator.optional.js.jsx", + "match": "\\?" + }, + { + "name": "keyword.operator.definiteassignment.js.jsx", + "match": "\\!" + } + ] + }, + "variable-initializer": { + "patterns": [ + { + "begin": "(?<!=|!)(=)(?!=)(?=\\s*\\S)(?!\\s*.*=>\\s*$)", + "beginCaptures": { + "1": { + "name": "keyword.operator.assignment.js.jsx" + } + }, + "end": "(?=$|^|[,);}\\]]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "begin": "(?<!=|!)(=)(?!=)", + "beginCaptures": { + "1": { + "name": "keyword.operator.assignment.js.jsx" + } + }, + "end": "(?=[,);}\\]]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))|(?=^\\s*$)|(?<![\\|\\&\\+\\-\\*\\/])(?<=\\S)(?<!=)(?=\\s*$)", + "patterns": [ + { + "include": "#expression" + } + ] + } + ] + }, + "function-declaration": { + "name": "meta.function.js.jsx", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\s*", + "beginCaptures": { + "1": { + "name": "keyword.control.export.js.jsx" + }, + "2": { + "name": "storage.modifier.js.jsx" + }, + "3": { + "name": "storage.modifier.async.js.jsx" + }, + "4": { + "name": "storage.type.function.js.jsx" + }, + "5": { + "name": "keyword.generator.asterisk.js.jsx" + }, + "6": { + "name": "meta.definition.function.js.jsx entity.name.function.js.jsx" + } + }, + "end": "(?=;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|(?<=\\})", + "patterns": [ + { + "include": "#function-name" + }, + { + "include": "#function-body" + } + ] + }, + "function-expression": { + "name": "meta.function.expression.js.jsx", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\s*", + "beginCaptures": { + "1": { + "name": "storage.modifier.async.js.jsx" + }, + "2": { + "name": "storage.type.function.js.jsx" + }, + "3": { + "name": "keyword.generator.asterisk.js.jsx" + }, + "4": { + "name": "meta.definition.function.js.jsx entity.name.function.js.jsx" + } + }, + "end": "(?=;)|(?<=\\})", + "patterns": [ + { + "include": "#function-name" + }, + { + "include": "#single-line-comment-consuming-line-ending" + }, + { + "include": "#function-body" + } + ] + }, + "function-name": { + "name": "meta.definition.function.js.jsx entity.name.function.js.jsx", + "match": "[_$[:alpha:]][_$[:alnum:]]*" + }, + "function-body": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#type-parameters" + }, + { + "include": "#function-parameters" + }, + { + "include": "#return-type" + }, + { + "include": "#type-function-return-type" + }, + { + "include": "#decl-block" + }, + { + "name": "keyword.generator.asterisk.js.jsx", + "match": "\\*" + } + ] + }, + "method-declaration": { + "patterns": [ + { + "name": "meta.method.declaration.js.jsx", + "begin": "(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?\\s*\\b(constructor)\\b(?!:)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "beginCaptures": { + "1": { + "name": "storage.modifier.js.jsx" + }, + "2": { + "name": "storage.modifier.js.jsx" + }, + "3": { + "name": "storage.modifier.js.jsx" + }, + "4": { + "name": "storage.modifier.async.js.jsx" + }, + "5": { + "name": "storage.type.js.jsx" + } + }, + "end": "(?=\\}|;|,|$)|(?<=\\})", + "patterns": [ + { + "include": "#method-declaration-name" + }, + { + "include": "#function-body" + } + ] + }, + { + "name": "meta.method.declaration.js.jsx", + "begin": "(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:(?:\\s*\\b(new)\\b(?!:)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|(?:(\\*)\\s*)?)(?=\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", + "beginCaptures": { + "1": { + "name": "storage.modifier.js.jsx" + }, + "2": { + "name": "storage.modifier.js.jsx" + }, + "3": { + "name": "storage.modifier.js.jsx" + }, + "4": { + "name": "storage.modifier.async.js.jsx" + }, + "5": { + "name": "keyword.operator.new.js.jsx" + }, + "6": { + "name": "keyword.generator.asterisk.js.jsx" + } + }, + "end": "(?=\\}|;|,|$)|(?<=\\})", + "patterns": [ + { + "include": "#method-declaration-name" + }, + { + "include": "#function-body" + } + ] + }, + { + "name": "meta.method.declaration.js.jsx", + "begin": "(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", + "beginCaptures": { + "1": { + "name": "storage.modifier.js.jsx" + }, + "2": { + "name": "storage.modifier.js.jsx" + }, + "3": { + "name": "storage.modifier.js.jsx" + }, + "4": { + "name": "storage.modifier.async.js.jsx" + }, + "5": { + "name": "storage.type.property.js.jsx" + }, + "6": { + "name": "keyword.generator.asterisk.js.jsx" + } + }, + "end": "(?=\\}|;|,|$)|(?<=\\})", + "patterns": [ + { + "include": "#method-declaration-name" + }, + { + "include": "#function-body" + } + ] + } + ] + }, + "object-literal-method-declaration": { + "name": "meta.method.declaration.js.jsx", + "begin": "(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", + "beginCaptures": { + "1": { + "name": "storage.modifier.async.js.jsx" + }, + "2": { + "name": "storage.type.property.js.jsx" + }, + "3": { + "name": "keyword.generator.asterisk.js.jsx" + } + }, + "end": "(?=\\}|;|,)|(?<=\\})", + "patterns": [ + { + "include": "#method-declaration-name" + }, + { + "include": "#function-body" + }, + { + "begin": "(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", + "beginCaptures": { + "1": { + "name": "storage.modifier.async.js.jsx" + }, + "2": { + "name": "storage.type.property.js.jsx" + }, + "3": { + "name": "keyword.generator.asterisk.js.jsx" + } + }, + "end": "(?=\\(|\\<)", + "patterns": [ + { + "include": "#method-declaration-name" + } + ] + } + ] + }, + "method-declaration-name": { + "begin": "(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??)\\s*[\\(\\<])", + "end": "(?=\\(|\\<)", + "patterns": [ + { + "include": "#string" + }, + { + "include": "#array-literal" + }, + { + "include": "#numeric-literal" + }, + { + "name": "meta.definition.method.js.jsx entity.name.function.js.jsx", + "match": "[_$[:alpha:]][_$[:alnum:]]*" + }, + { + "name": "keyword.operator.optional.js.jsx", + "match": "\\?" + } + ] + }, + "arrow-function": { + "patterns": [ + { + "name": "meta.arrow.js.jsx", + "match": "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(\\basync)\\s+)?([_$[:alpha:]][_$[:alnum:]]*)\\s*(?==>)", + "captures": { + "1": { + "name": "storage.modifier.async.js.jsx" + }, + "2": { + "name": "variable.parameter.js.jsx" + } + } + }, + { + "name": "meta.arrow.js.jsx", + "begin": "(?x) (?:\n (?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(\\basync)\n)? ((?<![})!\\]])\\s*\n (?=\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n )\n)", + "beginCaptures": { + "1": { + "name": "storage.modifier.async.js.jsx" + } + }, + "end": "(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#type-parameters" + }, + { + "include": "#function-parameters" + }, + { + "include": "#arrow-return-type" + }, + { + "include": "#possibly-arrow-return-type" + } + ] + }, + { + "name": "meta.arrow.js.jsx", + "begin": "=>", + "beginCaptures": { + "0": { + "name": "storage.type.function.arrow.js.jsx" + } + }, + "end": "((?<=\\}|\\S)(?<!=>)|((?!\\{)(?=\\S)))(?!\\/[\\/\\*])", + "patterns": [ + { + "include": "#single-line-comment-consuming-line-ending" + }, + { + "include": "#decl-block" + }, + { + "include": "#expression" + } + ] + } + ] + }, + "indexer-declaration": { + "name": "meta.indexer.declaration.js.jsx", + "begin": "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)\\s*)?\\s*(\\[)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=:)", + "beginCaptures": { + "1": { + "name": "storage.modifier.js.jsx" + }, + "2": { + "name": "meta.brace.square.js.jsx" + }, + "3": { + "name": "variable.parameter.js.jsx" + } + }, + "end": "(\\])\\s*(\\?\\s*)?|$", + "endCaptures": { + "1": { + "name": "meta.brace.square.js.jsx" + }, + "2": { + "name": "keyword.operator.optional.js.jsx" + } + }, + "patterns": [ + { + "include": "#type-annotation" + } + ] + }, + "indexer-mapped-type-declaration": { + "name": "meta.indexer.mappedtype.declaration.js.jsx", + "begin": "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([+-])?(readonly)\\s*)?\\s*(\\[)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s+(in)\\s+", + "beginCaptures": { + "1": { + "name": "keyword.operator.type.modifier.js.jsx" + }, + "2": { + "name": "storage.modifier.js.jsx" + }, + "3": { + "name": "meta.brace.square.js.jsx" + }, + "4": { + "name": "entity.name.type.js.jsx" + }, + "5": { + "name": "keyword.operator.expression.in.js.jsx" + } + }, + "end": "(\\])([+-])?\\s*(\\?\\s*)?|$", + "endCaptures": { + "1": { + "name": "meta.brace.square.js.jsx" + }, + "2": { + "name": "keyword.operator.type.modifier.js.jsx" + }, + "3": { + "name": "keyword.operator.optional.js.jsx" + } + }, + "patterns": [ + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+", + "captures": { + "1": { + "name": "keyword.control.as.js.jsx" + } + } + }, + { + "include": "#type" + } + ] + }, + "function-parameters": { + "name": "meta.parameters.js.jsx", + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.parameters.begin.js.jsx" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.parameters.end.js.jsx" + } + }, + "patterns": [ + { + "include": "#function-parameters-body" + } + ] + }, + "function-parameters-body": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#string" + }, + { + "include": "#decorator" + }, + { + "include": "#destructuring-parameter" + }, + { + "include": "#parameter-name" + }, + { + "include": "#parameter-type-annotation" + }, + { + "include": "#variable-initializer" + }, + { + "name": "punctuation.separator.parameter.js.jsx", + "match": "," + } + ] + }, + "class-declaration": { + "name": "meta.class.js.jsx", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(?:(abstract)\\s+)?\\b(class)\\b(?=\\s+|/[/*])", + "beginCaptures": { + "1": { + "name": "keyword.control.export.js.jsx" + }, + "2": { + "name": "storage.modifier.js.jsx" + }, + "3": { + "name": "storage.modifier.js.jsx" + }, + "4": { + "name": "storage.type.class.js.jsx" + } + }, + "end": "(?<=\\})", + "patterns": [ + { + "include": "#class-declaration-or-expression-patterns" + } + ] + }, + "class-expression": { + "name": "meta.class.js.jsx", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(class)\\b(?=\\s+|[<{]|\\/[\\/*])", + "beginCaptures": { + "1": { + "name": "storage.modifier.js.jsx" + }, + "2": { + "name": "storage.type.class.js.jsx" + } + }, + "end": "(?<=\\})", + "patterns": [ + { + "include": "#class-declaration-or-expression-patterns" + } + ] + }, + "class-declaration-or-expression-patterns": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#class-or-interface-heritage" + }, + { + "match": "[_$[:alpha:]][_$[:alnum:]]*", + "captures": { + "0": { + "name": "entity.name.type.class.js.jsx" + } + } + }, + { + "include": "#type-parameters" + }, + { + "include": "#class-or-interface-body" + } + ] + }, + "interface-declaration": { + "name": "meta.interface.js.jsx", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(?:(abstract)\\s+)?\\b(interface)\\b(?=\\s+|/[/*])", + "beginCaptures": { + "1": { + "name": "keyword.control.export.js.jsx" + }, + "2": { + "name": "storage.modifier.js.jsx" + }, + "3": { + "name": "storage.modifier.js.jsx" + }, + "4": { + "name": "storage.type.interface.js.jsx" + } + }, + "end": "(?<=\\})", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#class-or-interface-heritage" + }, + { + "match": "[_$[:alpha:]][_$[:alnum:]]*", + "captures": { + "0": { + "name": "entity.name.type.interface.js.jsx" + } + } + }, + { + "include": "#type-parameters" + }, + { + "include": "#class-or-interface-body" + } + ] + }, + "class-or-interface-heritage": { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(extends|implements)\\b)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "beginCaptures": { + "1": { + "name": "storage.modifier.js.jsx" + } + }, + "end": "(?=\\{)", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#class-or-interface-heritage" + }, + { + "include": "#type-parameters" + }, + { + "include": "#expressionWithoutIdentifiers" + }, + { + "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))(?=\\s*[_$[:alpha:]][_$[:alnum:]]*(\\s*\\??\\.\\s*[_$[:alpha:]][_$[:alnum:]]*)*\\s*)", + "captures": { + "1": { + "name": "entity.name.type.module.js.jsx" + }, + "2": { + "name": "punctuation.accessor.js.jsx" + }, + "3": { + "name": "punctuation.accessor.optional.js.jsx" + } + } + }, + { + "match": "([_$[:alpha:]][_$[:alnum:]]*)", + "captures": { + "1": { + "name": "entity.other.inherited-class.js.jsx" + } + } + }, + { + "include": "#expressionPunctuations" + } + ] + }, + "class-or-interface-body": { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.block.js.jsx" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.js.jsx" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#decorator" + }, + { + "begin": "(?<=:)\\s*", + "end": "(?=\\s|[;),}\\]:\\-\\+]|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "include": "#method-declaration" + }, + { + "include": "#indexer-declaration" + }, + { + "include": "#field-declaration" + }, + { + "include": "#string" + }, + { + "include": "#type-annotation" + }, + { + "include": "#variable-initializer" + }, + { + "include": "#access-modifier" + }, + { + "include": "#property-accessor" + }, + { + "include": "#async-modifier" + }, + { + "include": "#after-operator-block-as-object-literal" + }, + { + "include": "#decl-block" + }, + { + "include": "#expression" + }, + { + "include": "#punctuation-comma" + }, + { + "include": "#punctuation-semicolon" + } + ] + }, + "access-modifier": { + "name": "storage.modifier.js.jsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(abstract|declare|override|public|protected|private|readonly|static)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + "property-accessor": { + "name": "storage.type.property.js.jsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(accessor|get|set)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + "async-modifier": { + "name": "storage.modifier.async.js.jsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(async)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + "enum-declaration": { + "name": "meta.enum.declaration.js.jsx", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:\\b(const)\\s+)?\\b(enum)\\s+([_$[:alpha:]][_$[:alnum:]]*)", + "beginCaptures": { + "1": { + "name": "keyword.control.export.js.jsx" + }, + "2": { + "name": "storage.modifier.js.jsx" + }, + "3": { + "name": "storage.modifier.js.jsx" + }, + "4": { + "name": "storage.type.enum.js.jsx" + }, + "5": { + "name": "entity.name.type.enum.js.jsx" + } + }, + "end": "(?<=\\})", + "patterns": [ + { + "include": "#comment" + }, + { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.block.js.jsx" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.js.jsx" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "begin": "([_$[:alpha:]][_$[:alnum:]]*)", + "beginCaptures": { + "0": { + "name": "variable.other.enummember.js.jsx" + } + }, + "end": "(?=,|\\}|$)", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#variable-initializer" + } + ] + }, + { + "begin": "(?=((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\])))", + "end": "(?=,|\\}|$)", + "patterns": [ + { + "include": "#string" + }, + { + "include": "#array-literal" + }, + { + "include": "#comment" + }, + { + "include": "#variable-initializer" + } + ] + }, + { + "include": "#punctuation-comma" + } + ] + } + ] + }, + "namespace-declaration": { + "name": "meta.namespace.declaration.js.jsx", + "begin": "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(namespace|module)\\s+(?=[_$[:alpha:]\"'`]))", + "beginCaptures": { + "1": { + "name": "keyword.control.export.js.jsx" + }, + "2": { + "name": "storage.modifier.js.jsx" + }, + "3": { + "name": "storage.type.namespace.js.jsx" + } + }, + "end": "(?<=\\})|(?=;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#string" + }, + { + "name": "entity.name.type.module.js.jsx", + "match": "([_$[:alpha:]][_$[:alnum:]]*)" + }, + { + "include": "#punctuation-accessor" + }, + { + "include": "#decl-block" + } + ] + }, + "type-alias-declaration": { + "name": "meta.type.declaration.js.jsx", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(type)\\b\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*", + "beginCaptures": { + "1": { + "name": "keyword.control.export.js.jsx" + }, + "2": { + "name": "storage.modifier.js.jsx" + }, + "3": { + "name": "storage.type.type.js.jsx" + }, + "4": { + "name": "entity.name.type.alias.js.jsx" + } + }, + "end": "(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#type-parameters" + }, + { + "begin": "(=)\\s*(intrinsic)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "beginCaptures": { + "1": { + "name": "keyword.operator.assignment.js.jsx" + }, + "2": { + "name": "keyword.control.intrinsic.js.jsx" + } + }, + "end": "(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", + "patterns": [ + { + "include": "#type" + } + ] + }, + { + "begin": "(=)\\s*", + "beginCaptures": { + "1": { + "name": "keyword.operator.assignment.js.jsx" + } + }, + "end": "(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", + "patterns": [ + { + "include": "#type" + } + ] + } + ] + }, + "import-equals-declaration": { + "patterns": [ + { + "name": "meta.import-equals.external.js.jsx", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*(=)\\s*(require)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "keyword.control.export.js.jsx" + }, + "2": { + "name": "storage.modifier.js.jsx" + }, + "3": { + "name": "keyword.control.import.js.jsx" + }, + "4": { + "name": "keyword.control.type.js.jsx" + }, + "5": { + "name": "variable.other.readwrite.alias.js.jsx" + }, + "6": { + "name": "keyword.operator.assignment.js.jsx" + }, + "7": { + "name": "keyword.control.require.js.jsx" + }, + "8": { + "name": "meta.brace.round.js.jsx" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "meta.brace.round.js.jsx" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#string" + } + ] + }, + { + "name": "meta.import-equals.internal.js.jsx", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*(=)\\s*(?!require\\b)", + "beginCaptures": { + "1": { + "name": "keyword.control.export.js.jsx" + }, + "2": { + "name": "storage.modifier.js.jsx" + }, + "3": { + "name": "keyword.control.import.js.jsx" + }, + "4": { + "name": "keyword.control.type.js.jsx" + }, + "5": { + "name": "variable.other.readwrite.alias.js.jsx" + }, + "6": { + "name": "keyword.operator.assignment.js.jsx" + } + }, + "end": "(?=;|$|^)", + "patterns": [ + { + "include": "#single-line-comment-consuming-line-ending" + }, + { + "include": "#comment" + }, + { + "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", + "captures": { + "1": { + "name": "entity.name.type.module.js.jsx" + }, + "2": { + "name": "punctuation.accessor.js.jsx" + }, + "3": { + "name": "punctuation.accessor.optional.js.jsx" + } + } + }, + { + "name": "variable.other.readwrite.js.jsx", + "match": "([_$[:alpha:]][_$[:alnum:]]*)" + } + ] + } + ] + }, + "import-declaration": { + "name": "meta.import.js.jsx", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type)(?!\\s+from))?(?!\\s*[:\\(])(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "beginCaptures": { + "1": { + "name": "keyword.control.export.js.jsx" + }, + "2": { + "name": "storage.modifier.js.jsx" + }, + "3": { + "name": "keyword.control.import.js.jsx" + }, + "4": { + "name": "keyword.control.type.js.jsx" + } + }, + "end": "(?<!^import|[^\\._$[:alnum:]]import)(?=;|$|^)", + "patterns": [ + { + "include": "#single-line-comment-consuming-line-ending" + }, + { + "include": "#comment" + }, + { + "include": "#string" + }, + { + "begin": "(?<=^import|[^\\._$[:alnum:]]import)(?!\\s*[\"'])", + "end": "\\bfrom\\b", + "endCaptures": { + "0": { + "name": "keyword.control.from.js.jsx" + } + }, + "patterns": [ + { + "include": "#import-export-declaration" + } + ] + }, + { + "include": "#import-export-declaration" + } + ] + }, + "export-declaration": { + "patterns": [ + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)\\s+(as)\\s+(namespace)\\s+([_$[:alpha:]][_$[:alnum:]]*)", + "captures": { + "1": { + "name": "keyword.control.export.js.jsx" + }, + "2": { + "name": "keyword.control.as.js.jsx" + }, + "3": { + "name": "storage.type.namespace.js.jsx" + }, + "4": { + "name": "entity.name.type.module.js.jsx" + } + } + }, + { + "name": "meta.export.default.js.jsx", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)(?:\\s+(type))?(?:(?:\\s*(=))|(?:\\s+(default)(?=\\s+)))", + "beginCaptures": { + "1": { + "name": "keyword.control.export.js.jsx" + }, + "2": { + "name": "keyword.control.type.js.jsx" + }, + "3": { + "name": "keyword.operator.assignment.js.jsx" + }, + "4": { + "name": "keyword.control.default.js.jsx" + } + }, + "end": "(?=$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", + "patterns": [ + { + "include": "#interface-declaration" + }, + { + "include": "#expression" + } + ] + }, + { + "name": "meta.export.js.jsx", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)(?:\\s+(type))?\\b(?!(\\$)|(\\s*:))((?=\\s*[\\{*])|((?=\\s*[_$[:alpha:]][_$[:alnum:]]*(\\s|,))(?!\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", + "beginCaptures": { + "1": { + "name": "keyword.control.export.js.jsx" + }, + "2": { + "name": "keyword.control.type.js.jsx" + } + }, + "end": "(?=$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", + "patterns": [ + { + "include": "#import-export-declaration" + } + ] + } + ] + }, + "import-export-declaration": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#string" + }, + { + "include": "#import-export-block" + }, + { + "name": "keyword.control.from.js.jsx", + "match": "\\bfrom\\b" + }, + { + "include": "#import-export-assert-clause" + }, + { + "include": "#import-export-clause" + } + ] + }, + "import-export-assert-clause": { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(assert)\\s*(\\{)", + "beginCaptures": { + "1": { + "name": "keyword.control.assert.js.jsx" + }, + "2": { + "name": "punctuation.definition.block.js.jsx" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.js.jsx" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#string" + }, + { + "name": "meta.object-literal.key.js.jsx", + "match": "(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)" + }, + { + "name": "punctuation.separator.key-value.js.jsx", + "match": ":" + } + ] + }, + "import-export-block": { + "name": "meta.block.js.jsx", + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.block.js.jsx" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.js.jsx" + } + }, + "patterns": [ + { + "include": "#import-export-clause" + } + ] + }, + "import-export-clause": { + "patterns": [ + { + "include": "#comment" + }, + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(?:(\\btype)\\s+)?(?:(\\bdefault)|(\\*)|(\\b[_$[:alpha:]][_$[:alnum:]]*)))\\s+(as)\\s+(?:(default(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|([_$[:alpha:]][_$[:alnum:]]*))", + "captures": { + "1": { + "name": "keyword.control.type.js.jsx" + }, + "2": { + "name": "keyword.control.default.js.jsx" + }, + "3": { + "name": "constant.language.import-export-all.js.jsx" + }, + "4": { + "name": "variable.other.readwrite.js.jsx" + }, + "5": { + "name": "keyword.control.as.js.jsx" + }, + "6": { + "name": "keyword.control.default.js.jsx" + }, + "7": { + "name": "variable.other.readwrite.alias.js.jsx" + } + } + }, + { + "include": "#punctuation-comma" + }, + { + "name": "constant.language.import-export-all.js.jsx", + "match": "\\*" + }, + { + "name": "keyword.control.default.js.jsx", + "match": "\\b(default)\\b" + }, + { + "match": "(?:(\\btype)\\s+)?([_$[:alpha:]][_$[:alnum:]]*)", + "captures": { + "1": { + "name": "keyword.control.type.js.jsx" + }, + "2": { + "name": "variable.other.readwrite.alias.js.jsx" + } + } + } + ] + }, + "switch-statement": { + "name": "switch-statement.expr.js.jsx", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=\\bswitch\\s*\\()", + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.js.jsx" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "name": "switch-expression.expr.js.jsx", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(switch)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "keyword.control.switch.js.jsx" + }, + "2": { + "name": "meta.brace.round.js.jsx" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "meta.brace.round.js.jsx" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "name": "switch-block.expr.js.jsx", + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.block.js.jsx" + } + }, + "end": "(?=\\})", + "patterns": [ + { + "name": "case-clause.expr.js.jsx", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(case|default(?=:))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "beginCaptures": { + "1": { + "name": "keyword.control.switch.js.jsx" + } + }, + "end": "(?=:)", + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "begin": "(:)\\s*(\\{)", + "beginCaptures": { + "1": { + "name": "case-clause.expr.js.jsx punctuation.definition.section.case-statement.js.jsx" + }, + "2": { + "name": "meta.block.js.jsx punctuation.definition.block.js.jsx" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "meta.block.js.jsx punctuation.definition.block.js.jsx" + } + }, + "contentName": "meta.block.js.jsx", + "patterns": [ + { + "include": "#statements" + } + ] + }, + { + "match": "(:)", + "captures": { + "0": { + "name": "case-clause.expr.js.jsx punctuation.definition.section.case-statement.js.jsx" + } + } + }, + { + "include": "#statements" + } + ] + } + ] + }, + "for-loop": { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))for(?=((\\s+|(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*))await)?\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)?(\\())", + "beginCaptures": { + "0": { + "name": "keyword.control.loop.js.jsx" + } + }, + "end": "(?<=\\))", + "patterns": [ + { + "include": "#comment" + }, + { + "name": "keyword.control.loop.js.jsx", + "match": "await" + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "meta.brace.round.js.jsx" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "meta.brace.round.js.jsx" + } + }, + "patterns": [ + { + "include": "#var-expr" + }, + { + "include": "#expression" + }, + { + "include": "#punctuation-semicolon" + } + ] + } + ] + }, + "if-statement": { + "patterns": [ + { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=\\bif\\s*(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))\\s*(?!\\{))", + "end": "(?=;|$|\\})", + "patterns": [ + { + "include": "#comment" + }, + { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(if)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "keyword.control.conditional.js.jsx" + }, + "2": { + "name": "meta.brace.round.js.jsx" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "meta.brace.round.js.jsx" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "name": "string.regexp.js.jsx", + "begin": "(?<=\\))\\s*\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.js.jsx" + } + }, + "end": "(/)([dgimsuy]*)", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.js.jsx" + }, + "2": { + "name": "keyword.other.js.jsx" + } + }, + "patterns": [ + { + "include": "#regexp" + } + ] + }, + { + "include": "#statements" + } + ] + } + ] + }, + "decl-block": { + "name": "meta.block.js.jsx", + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.block.js.jsx" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.js.jsx" + } + }, + "patterns": [ + { + "include": "#statements" + } + ] + }, + "after-operator-block-as-object-literal": { + "name": "meta.objectliteral.js.jsx", + "begin": "(?<!\\+\\+|--)(?<=[:=(,\\[?+!>]|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^yield|[^\\._$[:alnum:]]yield|^throw|[^\\._$[:alnum:]]throw|^in|[^\\._$[:alnum:]]in|^of|[^\\._$[:alnum:]]of|^typeof|[^\\._$[:alnum:]]typeof|&&|\\|\\||\\*)\\s*(\\{)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.block.js.jsx" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.js.jsx" + } + }, + "patterns": [ + { + "include": "#object-member" + } + ] + }, + "object-literal": { + "name": "meta.objectliteral.js.jsx", + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.block.js.jsx" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.js.jsx" + } + }, + "patterns": [ + { + "include": "#object-member" + } + ] + }, + "object-member": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#object-literal-method-declaration" + }, + { + "name": "meta.object.member.js.jsx meta.object-literal.key.js.jsx", + "begin": "(?=\\[)", + "end": "(?=:)|((?<=[\\]])(?=\\s*[\\(\\<]))", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#array-literal" + } + ] + }, + { + "name": "meta.object.member.js.jsx meta.object-literal.key.js.jsx", + "begin": "(?=[\\'\\\"\\`])", + "end": "(?=:)|((?<=[\\'\\\"\\`])(?=((\\s*[\\(\\<,}])|(\\s+(as|satisifies)\\s+))))", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#string" + } + ] + }, + { + "name": "meta.object.member.js.jsx meta.object-literal.key.js.jsx", + "begin": "(?x)(?=(\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$)))", + "end": "(?=:)|(?=\\s*([\\(\\<,}])|(\\s+as|satisifies\\s+))", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#numeric-literal" + } + ] + }, + { + "name": "meta.method.declaration.js.jsx", + "begin": "(?<=[\\]\\'\\\"\\`])(?=\\s*[\\(\\<])", + "end": "(?=\\}|;|,)|(?<=\\})", + "patterns": [ + { + "include": "#function-body" + } + ] + }, + { + "name": "meta.object.member.js.jsx", + "match": "(?![_$[:alpha:]])([[:digit:]]+)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)", + "captures": { + "0": { + "name": "meta.object-literal.key.js.jsx" + }, + "1": { + "name": "constant.numeric.decimal.js.jsx" + } + } + }, + { + "name": "meta.object.member.js.jsx", + "match": "(?x)(?:([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/)*\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", + "captures": { + "0": { + "name": "meta.object-literal.key.js.jsx" + }, + "1": { + "name": "entity.name.function.js.jsx" + } + } + }, + { + "name": "meta.object.member.js.jsx", + "match": "(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)", + "captures": { + "0": { + "name": "meta.object-literal.key.js.jsx" + } + } + }, + { + "name": "meta.object.member.js.jsx", + "begin": "\\.\\.\\.", + "beginCaptures": { + "0": { + "name": "keyword.operator.spread.js.jsx" + } + }, + "end": "(?=,|\\})", + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "name": "meta.object.member.js.jsx", + "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=,|\\}|$|\\/\\/|\\/\\*)", + "captures": { + "1": { + "name": "variable.other.readwrite.js.jsx" + } + } + }, + { + "name": "meta.object.member.js.jsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*([,}]|$))", + "captures": { + "1": { + "name": "keyword.control.as.js.jsx" + }, + "2": { + "name": "storage.modifier.js.jsx" + } + } + }, + { + "name": "meta.object.member.js.jsx", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(as)|(satisfies))\\s+", + "beginCaptures": { + "1": { + "name": "keyword.control.as.js.jsx" + }, + "2": { + "name": "keyword.control.satisfies.js.jsx" + } + }, + "end": "(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|^|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as|satisifies)\\s+))", + "patterns": [ + { + "include": "#type" + } + ] + }, + { + "name": "meta.object.member.js.jsx", + "begin": "(?=[_$[:alpha:]][_$[:alnum:]]*\\s*=)", + "end": "(?=,|\\}|$|\\/\\/|\\/\\*)", + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "name": "meta.object.member.js.jsx", + "begin": ":", + "beginCaptures": { + "0": { + "name": "meta.object-literal.key.js.jsx punctuation.separator.key-value.js.jsx" + } + }, + "end": "(?=,|\\})", + "patterns": [ + { + "begin": "(?<=:)\\s*(async)?(?=\\s*(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", + "beginCaptures": { + "1": { + "name": "storage.modifier.async.js.jsx" + } + }, + "end": "(?<=\\))", + "patterns": [ + { + "include": "#type-parameters" + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "meta.brace.round.js.jsx" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "meta.brace.round.js.jsx" + } + }, + "patterns": [ + { + "include": "#expression-inside-possibly-arrow-parens" + } + ] + } + ] + }, + { + "begin": "(?<=:)\\s*(async)?\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", + "beginCaptures": { + "1": { + "name": "storage.modifier.async.js.jsx" + }, + "2": { + "name": "meta.brace.round.js.jsx" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "meta.brace.round.js.jsx" + } + }, + "patterns": [ + { + "include": "#expression-inside-possibly-arrow-parens" + } + ] + }, + { + "begin": "(?<=:)\\s*(async)?\\s*(?=\\<\\s*$)", + "beginCaptures": { + "1": { + "name": "storage.modifier.async.js.jsx" + } + }, + "end": "(?<=\\>)", + "patterns": [ + { + "include": "#type-parameters" + } + ] + }, + { + "begin": "(?<=\\>)\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", + "beginCaptures": { + "1": { + "name": "meta.brace.round.js.jsx" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "meta.brace.round.js.jsx" + } + }, + "patterns": [ + { + "include": "#expression-inside-possibly-arrow-parens" + } + ] + }, + { + "include": "#possibly-arrow-return-type" + }, + { + "include": "#expression" + } + ] + }, + { + "include": "#punctuation-comma" + }, + { + "include": "#decl-block" + } + ] + }, + "ternary-expression": { + "begin": "(?!\\?\\.\\s*[^[:digit:]])(\\?)(?!\\?)", + "beginCaptures": { + "1": { + "name": "keyword.operator.ternary.js.jsx" + } + }, + "end": "\\s*(:)", + "endCaptures": { + "1": { + "name": "keyword.operator.ternary.js.jsx" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + "function-call": { + "patterns": [ + { + "begin": "(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())", + "end": "(?<=\\))(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())", + "patterns": [ + { + "name": "meta.function-call.js.jsx", + "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))", + "end": "(?=\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())", + "patterns": [ + { + "include": "#function-call-target" + } + ] + }, + { + "include": "#comment" + }, + { + "include": "#function-call-optionals" + }, + { + "include": "#type-arguments" + }, + { + "include": "#paren-expression" + } + ] + }, + { + "begin": "(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))", + "end": "(?<=\\>)(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))", + "patterns": [ + { + "name": "meta.function-call.js.jsx", + "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))", + "end": "(?=(<\\s*[\\{\\[\\(]\\s*$))", + "patterns": [ + { + "include": "#function-call-target" + } + ] + }, + { + "include": "#comment" + }, + { + "include": "#function-call-optionals" + }, + { + "include": "#type-arguments" + } + ] + } + ] + }, + "function-call-target": { + "patterns": [ + { + "include": "#support-function-call-identifiers" + }, + { + "name": "entity.name.function.js.jsx", + "match": "(\\#?[_$[:alpha:]][_$[:alnum:]]*)" + } + ] + }, + "function-call-optionals": { + "patterns": [ + { + "name": "meta.function-call.js.jsx punctuation.accessor.optional.js.jsx", + "match": "\\?\\." + }, + { + "name": "meta.function-call.js.jsx keyword.operator.definiteassignment.js.jsx", + "match": "\\!" + } + ] + }, + "support-function-call-identifiers": { + "patterns": [ + { + "include": "#literal" + }, + { + "include": "#support-objects" + }, + { + "include": "#object-identifiers" + }, + { + "include": "#punctuation-accessor" + }, + { + "name": "keyword.operator.expression.import.js.jsx", + "match": "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*[\\(]\\s*[\\\"\\'\\`]))" + } + ] + }, + "new-expr": { + "name": "new.expr.js.jsx", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(new)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "beginCaptures": { + "1": { + "name": "keyword.operator.new.js.jsx" + } + }, + "end": "(?<=\\))|(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))new(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))function((\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\s*[\\(]))))", + "patterns": [ + { + "include": "#expression" + } + ] + }, + "instanceof-expr": { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(instanceof)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "beginCaptures": { + "1": { + "name": "keyword.operator.expression.instanceof.js.jsx" + } + }, + "end": "(?<=\\))|(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|(===|!==|==|!=)|(([\\&\\~\\^\\|]\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s+instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))function((\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\s*[\\(]))))", + "patterns": [ + { + "include": "#type" + } + ] + }, + "paren-expression-possibly-arrow": { + "patterns": [ + { + "begin": "(?<=[(=,])\\s*(async)?(?=\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", + "beginCaptures": { + "1": { + "name": "storage.modifier.async.js.jsx" + } + }, + "end": "(?<=\\))", + "patterns": [ + { + "include": "#paren-expression-possibly-arrow-with-typeparameters" + } + ] + }, + { + "begin": "(?<=[(=,]|=>|^return|[^\\._$[:alnum:]]return)\\s*(async)?(?=\\s*((((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\()|(<)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)))\\s*$)", + "beginCaptures": { + "1": { + "name": "storage.modifier.async.js.jsx" + } + }, + "end": "(?<=\\))", + "patterns": [ + { + "include": "#paren-expression-possibly-arrow-with-typeparameters" + } + ] + }, + { + "include": "#possibly-arrow-return-type" + } + ] + }, + "paren-expression-possibly-arrow-with-typeparameters": { + "patterns": [ + { + "include": "#type-parameters" + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "meta.brace.round.js.jsx" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "meta.brace.round.js.jsx" + } + }, + "patterns": [ + { + "include": "#expression-inside-possibly-arrow-parens" + } + ] + } + ] + }, + "expression-inside-possibly-arrow-parens": { + "patterns": [ + { + "include": "#expressionWithoutIdentifiers" + }, + { + "include": "#comment" + }, + { + "include": "#string" + }, + { + "include": "#decorator" + }, + { + "include": "#destructuring-parameter" + }, + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)", + "captures": { + "1": { + "name": "storage.modifier.js.jsx" + } + } + }, + { + "match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", + "captures": { + "1": { + "name": "storage.modifier.js.jsx" + }, + "2": { + "name": "keyword.operator.rest.js.jsx" + }, + "3": { + "name": "entity.name.function.js.jsx variable.language.this.js.jsx" + }, + "4": { + "name": "entity.name.function.js.jsx" + }, + "5": { + "name": "keyword.operator.optional.js.jsx" + } + } + }, + { + "match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*[:,]|$)", + "captures": { + "1": { + "name": "storage.modifier.js.jsx" + }, + "2": { + "name": "keyword.operator.rest.js.jsx" + }, + "3": { + "name": "variable.parameter.js.jsx variable.language.this.js.jsx" + }, + "4": { + "name": "variable.parameter.js.jsx" + }, + "5": { + "name": "keyword.operator.optional.js.jsx" + } + } + }, + { + "include": "#type-annotation" + }, + { + "include": "#variable-initializer" + }, + { + "name": "punctuation.separator.parameter.js.jsx", + "match": "," + }, + { + "include": "#identifiers" + }, + { + "include": "#expressionPunctuations" + } + ] + }, + "paren-expression": { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "meta.brace.round.js.jsx" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "meta.brace.round.js.jsx" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + "cast": { + "patterns": [ + { + "include": "#jsx" + } + ] + }, + "expression-operators": { + "patterns": [ + { + "name": "keyword.control.flow.js.jsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(await)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(yield)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?=\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*\\*)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.js.jsx" + } + }, + "end": "\\*", + "endCaptures": { + "0": { + "name": "keyword.generator.asterisk.js.jsx" + } + }, + "patterns": [ + { + "include": "#comment" + } + ] + }, + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(yield)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s*(\\*))?", + "captures": { + "1": { + "name": "keyword.control.flow.js.jsx" + }, + "2": { + "name": "keyword.generator.asterisk.js.jsx" + } + } + }, + { + "name": "keyword.operator.expression.delete.js.jsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))delete(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "name": "keyword.operator.expression.in.js.jsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))in(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()" + }, + { + "name": "keyword.operator.expression.of.js.jsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))of(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()" + }, + { + "name": "keyword.operator.expression.instanceof.js.jsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "name": "keyword.operator.new.js.jsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))new(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "include": "#typeof-operator" + }, + { + "name": "keyword.operator.expression.void.js.jsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))void(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*($|[;,:})\\]]))", + "captures": { + "1": { + "name": "keyword.control.as.js.jsx" + }, + "2": { + "name": "storage.modifier.js.jsx" + } + } + }, + { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(as)|(satisfies))\\s+", + "beginCaptures": { + "1": { + "name": "keyword.control.as.js.jsx" + }, + "2": { + "name": "keyword.control.satisfies.js.jsx" + } + }, + "end": "(?=^|[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as|satisfies)\\s+)|(\\s+\\<))", + "patterns": [ + { + "include": "#type" + } + ] + }, + { + "name": "keyword.operator.spread.js.jsx", + "match": "\\.\\.\\." + }, + { + "name": "keyword.operator.assignment.compound.js.jsx", + "match": "\\*=|(?<!\\()/=|%=|\\+=|\\-=" + }, + { + "name": "keyword.operator.assignment.compound.bitwise.js.jsx", + "match": "\\&=|\\^=|<<=|>>=|>>>=|\\|=" + }, + { + "name": "keyword.operator.bitwise.shift.js.jsx", + "match": "<<|>>>|>>" + }, + { + "name": "keyword.operator.comparison.js.jsx", + "match": "===|!==|==|!=" + }, + { + "name": "keyword.operator.relational.js.jsx", + "match": "<=|>=|<>|<|>" + }, + { + "match": "(?<=[_$[:alnum:]])(\\!)\\s*(?:(/=)|(?:(/)(?![/*])))", + "captures": { + "1": { + "name": "keyword.operator.logical.js.jsx" + }, + "2": { + "name": "keyword.operator.assignment.compound.js.jsx" + }, + "3": { + "name": "keyword.operator.arithmetic.js.jsx" + } + } + }, + { + "name": "keyword.operator.logical.js.jsx", + "match": "\\!|&&|\\|\\||\\?\\?" + }, + { + "name": "keyword.operator.bitwise.js.jsx", + "match": "\\&|~|\\^|\\|" + }, + { + "name": "keyword.operator.assignment.js.jsx", + "match": "\\=" + }, + { + "name": "keyword.operator.decrement.js.jsx", + "match": "--" + }, + { + "name": "keyword.operator.increment.js.jsx", + "match": "\\+\\+" + }, + { + "name": "keyword.operator.arithmetic.js.jsx", + "match": "%|\\*|/|-|\\+" + }, + { + "begin": "(?<=[_$[:alnum:])\\]])\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)+(?:(/=)|(?:(/)(?![/*]))))", + "end": "(?:(/=)|(?:(/)(?!\\*([^\\*]|(\\*[^\\/]))*\\*\\/)))", + "endCaptures": { + "1": { + "name": "keyword.operator.assignment.compound.js.jsx" + }, + "2": { + "name": "keyword.operator.arithmetic.js.jsx" + } + }, + "patterns": [ + { + "include": "#comment" + } + ] + }, + { + "match": "(?<=[_$[:alnum:])\\]])\\s*(?:(/=)|(?:(/)(?![/*])))", + "captures": { + "1": { + "name": "keyword.operator.assignment.compound.js.jsx" + }, + "2": { + "name": "keyword.operator.arithmetic.js.jsx" + } + } + } + ] + }, + "typeof-operator": { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))typeof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "beginCaptures": { + "0": { + "name": "keyword.operator.expression.typeof.js.jsx" + } + }, + "end": "(?=[,);}\\]=>:&|{\\?]|(extends\\s+)|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", + "patterns": [ + { + "include": "#type-arguments" + }, + { + "include": "#expression" + } + ] + }, + "literal": { + "patterns": [ + { + "include": "#numeric-literal" + }, + { + "include": "#boolean-literal" + }, + { + "include": "#null-literal" + }, + { + "include": "#undefined-literal" + }, + { + "include": "#numericConstant-literal" + }, + { + "include": "#array-literal" + }, + { + "include": "#this-literal" + }, + { + "include": "#super-literal" + } + ] + }, + "array-literal": { + "name": "meta.array.literal.js.jsx", + "begin": "\\s*(\\[)", + "beginCaptures": { + "1": { + "name": "meta.brace.square.js.jsx" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "meta.brace.square.js.jsx" + } + }, + "patterns": [ + { + "include": "#expression" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "numeric-literal": { + "patterns": [ + { + "name": "constant.numeric.hex.js.jsx", + "match": "\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$)", + "captures": { + "1": { + "name": "storage.type.numeric.bigint.js.jsx" + } + } + }, + { + "name": "constant.numeric.binary.js.jsx", + "match": "\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$)", + "captures": { + "1": { + "name": "storage.type.numeric.bigint.js.jsx" + } + } + }, + { + "name": "constant.numeric.octal.js.jsx", + "match": "\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$)", + "captures": { + "1": { + "name": "storage.type.numeric.bigint.js.jsx" + } + } + }, + { + "match": "(?x)\n(?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$)", + "captures": { + "0": { + "name": "constant.numeric.decimal.js.jsx" + }, + "1": { + "name": "meta.delimiter.decimal.period.js.jsx" + }, + "2": { + "name": "storage.type.numeric.bigint.js.jsx" + }, + "3": { + "name": "meta.delimiter.decimal.period.js.jsx" + }, + "4": { + "name": "storage.type.numeric.bigint.js.jsx" + }, + "5": { + "name": "meta.delimiter.decimal.period.js.jsx" + }, + "6": { + "name": "storage.type.numeric.bigint.js.jsx" + }, + "7": { + "name": "storage.type.numeric.bigint.js.jsx" + }, + "8": { + "name": "meta.delimiter.decimal.period.js.jsx" + }, + "9": { + "name": "storage.type.numeric.bigint.js.jsx" + }, + "10": { + "name": "meta.delimiter.decimal.period.js.jsx" + }, + "11": { + "name": "storage.type.numeric.bigint.js.jsx" + }, + "12": { + "name": "meta.delimiter.decimal.period.js.jsx" + }, + "13": { + "name": "storage.type.numeric.bigint.js.jsx" + }, + "14": { + "name": "storage.type.numeric.bigint.js.jsx" + } + } + } + ] + }, + "boolean-literal": { + "patterns": [ + { + "name": "constant.language.boolean.true.js.jsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))true(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "name": "constant.language.boolean.false.js.jsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))false(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + } + ] + }, + "null-literal": { + "name": "constant.language.null.js.jsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))null(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + "this-literal": { + "name": "variable.language.this.js.jsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))this\\b(?!\\$)" + }, + "super-literal": { + "name": "variable.language.super.js.jsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))super\\b(?!\\$)" + }, + "undefined-literal": { + "name": "constant.language.undefined.js.jsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))undefined(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + "numericConstant-literal": { + "patterns": [ + { + "name": "constant.language.nan.js.jsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))NaN(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "name": "constant.language.infinity.js.jsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Infinity(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + } + ] + }, + "support-objects": { + "patterns": [ + { + "name": "variable.language.arguments.js.jsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(arguments)\\b(?!\\$)" + }, + { + "name": "support.class.promise.js.jsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(Promise)\\b(?!\\$)" + }, + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(import)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(meta)\\b(?!\\$)", + "captures": { + "1": { + "name": "keyword.control.import.js.jsx" + }, + "2": { + "name": "punctuation.accessor.js.jsx" + }, + "3": { + "name": "punctuation.accessor.optional.js.jsx" + }, + "4": { + "name": "support.variable.property.importmeta.js.jsx" + } + } + }, + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(new)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(target)\\b(?!\\$)", + "captures": { + "1": { + "name": "keyword.operator.new.js.jsx" + }, + "2": { + "name": "punctuation.accessor.js.jsx" + }, + "3": { + "name": "punctuation.accessor.optional.js.jsx" + }, + "4": { + "name": "support.variable.property.target.js.jsx" + } + } + }, + { + "match": "(?x) (?:(\\.)|(\\?\\.(?!\\s*[[:digit:]]))) \\s* (?:\n (?:(constructor|length|prototype|__proto__)\\b(?!\\$|\\s*(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\())\n |\n (?:(EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\\b(?!\\$)))", + "captures": { + "1": { + "name": "punctuation.accessor.js.jsx" + }, + "2": { + "name": "punctuation.accessor.optional.js.jsx" + }, + "3": { + "name": "support.variable.property.js.jsx" + }, + "4": { + "name": "support.constant.js.jsx" + } + } + }, + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(exports)|(module)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))(exports|id|filename|loaded|parent|children))?)\\b(?!\\$)", + "captures": { + "1": { + "name": "support.type.object.module.js.jsx" + }, + "2": { + "name": "support.type.object.module.js.jsx" + }, + "3": { + "name": "punctuation.accessor.js.jsx" + }, + "4": { + "name": "punctuation.accessor.optional.js.jsx" + }, + "5": { + "name": "support.type.object.module.js.jsx" + } + } + } + ] + }, + "identifiers": { + "patterns": [ + { + "include": "#object-identifiers" + }, + { + "match": "(?x)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*)?([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n))", + "captures": { + "1": { + "name": "punctuation.accessor.js.jsx" + }, + "2": { + "name": "punctuation.accessor.optional.js.jsx" + }, + "3": { + "name": "entity.name.function.js.jsx" + } + } + }, + { + "match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])", + "captures": { + "1": { + "name": "punctuation.accessor.js.jsx" + }, + "2": { + "name": "punctuation.accessor.optional.js.jsx" + }, + "3": { + "name": "variable.other.constant.property.js.jsx" + } + } + }, + { + "match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)", + "captures": { + "1": { + "name": "punctuation.accessor.js.jsx" + }, + "2": { + "name": "punctuation.accessor.optional.js.jsx" + }, + "3": { + "name": "variable.other.property.js.jsx" + } + } + }, + { + "name": "variable.other.constant.js.jsx", + "match": "([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])" + }, + { + "name": "variable.other.readwrite.js.jsx", + "match": "[_$[:alpha:]][_$[:alnum:]]*" + } + ] + }, + "object-identifiers": { + "patterns": [ + { + "name": "support.class.js.jsx", + "match": "([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\\??\\.\\s*prototype\\b(?!\\$))" + }, + { + "match": "(?x)(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(?:\n (\\#?[[:upper:]][_$[:digit:][:upper:]]*) |\n (\\#?[_$[:alpha:]][_$[:alnum:]]*)\n)(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)", + "captures": { + "1": { + "name": "punctuation.accessor.js.jsx" + }, + "2": { + "name": "punctuation.accessor.optional.js.jsx" + }, + "3": { + "name": "variable.other.constant.object.property.js.jsx" + }, + "4": { + "name": "variable.other.object.property.js.jsx" + } + } + }, + { + "match": "(?x)(?:\n ([[:upper:]][_$[:digit:][:upper:]]*) |\n ([_$[:alpha:]][_$[:alnum:]]*)\n)(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)", + "captures": { + "1": { + "name": "variable.other.constant.object.js.jsx" + }, + "2": { + "name": "variable.other.object.js.jsx" + } + } + } + ] + }, + "type-annotation": { + "patterns": [ + { + "name": "meta.type.annotation.js.jsx", + "begin": "(:)(?=\\s*\\S)", + "beginCaptures": { + "1": { + "name": "keyword.operator.type.annotation.js.jsx" + } + }, + "end": "(?<![:|&])(?!\\s*[|&]\\s+)((?=^|[,);\\}\\]]|//)|(?==[^>])|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))", + "patterns": [ + { + "include": "#type" + } + ] + }, + { + "name": "meta.type.annotation.js.jsx", + "begin": "(:)", + "beginCaptures": { + "1": { + "name": "keyword.operator.type.annotation.js.jsx" + } + }, + "end": "(?<![:|&])((?=[,);\\}\\]]|\\/\\/)|(?==[^>])|(?=^\\s*$)|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))", + "patterns": [ + { + "include": "#type" + } + ] + } + ] + }, + "parameter-type-annotation": { + "patterns": [ + { + "name": "meta.type.annotation.js.jsx", + "begin": "(:)", + "beginCaptures": { + "1": { + "name": "keyword.operator.type.annotation.js.jsx" + } + }, + "end": "(?=[,)])|(?==[^>])", + "patterns": [ + { + "include": "#type" + } + ] + } + ] + }, + "return-type": { + "patterns": [ + { + "name": "meta.return.type.js.jsx", + "begin": "(?<=\\))\\s*(:)(?=\\s*\\S)", + "beginCaptures": { + "1": { + "name": "keyword.operator.type.annotation.js.jsx" + } + }, + "end": "(?<![:|&])(?=$|^|[{};,]|//)", + "patterns": [ + { + "include": "#return-type-core" + } + ] + }, + { + "name": "meta.return.type.js.jsx", + "begin": "(?<=\\))\\s*(:)", + "beginCaptures": { + "1": { + "name": "keyword.operator.type.annotation.js.jsx" + } + }, + "end": "(?<![:|&])((?=[{};,]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", + "patterns": [ + { + "include": "#return-type-core" + } + ] + } + ] + }, + "return-type-core": { + "patterns": [ + { + "include": "#comment" + }, + { + "begin": "(?<=[:|&])(?=\\s*\\{)", + "end": "(?<=\\})", + "patterns": [ + { + "include": "#type-object" + } + ] + }, + { + "include": "#type-predicate-operator" + }, + { + "include": "#type" + } + ] + }, + "arrow-return-type": { + "name": "meta.return.type.arrow.js.jsx", + "begin": "(?<=\\))\\s*(:)", + "beginCaptures": { + "1": { + "name": "keyword.operator.type.annotation.js.jsx" + } + }, + "end": "(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))", + "patterns": [ + { + "include": "#arrow-return-type-body" + } + ] + }, + "possibly-arrow-return-type": { + "begin": "(?<=\\)|^)\\s*(:)(?=\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*=>)", + "beginCaptures": { + "1": { + "name": "meta.arrow.js.jsx meta.return.type.arrow.js.jsx keyword.operator.type.annotation.js.jsx" + } + }, + "end": "(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))", + "contentName": "meta.arrow.js.jsx meta.return.type.arrow.js.jsx", + "patterns": [ + { + "include": "#arrow-return-type-body" + } + ] + }, + "arrow-return-type-body": { + "patterns": [ + { + "begin": "(?<=[:])(?=\\s*\\{)", + "end": "(?<=\\})", + "patterns": [ + { + "include": "#type-object" + } + ] + }, + { + "include": "#type-predicate-operator" + }, + { + "include": "#type" + } + ] + }, + "type-parameters": { + "name": "meta.type.parameters.js.jsx", + "begin": "(<)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.typeparameters.begin.js.jsx" + } + }, + "end": "(>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.typeparameters.end.js.jsx" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "name": "storage.modifier.js.jsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends|in|out|const)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "include": "#type" + }, + { + "include": "#punctuation-comma" + }, + { + "name": "keyword.operator.assignment.js.jsx", + "match": "(=)(?!>)" + } + ] + }, + "type-arguments": { + "name": "meta.type.parameters.js.jsx", + "begin": "\\<", + "beginCaptures": { + "0": { + "name": "punctuation.definition.typeparameters.begin.js.jsx" + } + }, + "end": "\\>", + "endCaptures": { + "0": { + "name": "punctuation.definition.typeparameters.end.js.jsx" + } + }, + "patterns": [ + { + "include": "#type-arguments-body" + } + ] + }, + "type-arguments-body": { + "patterns": [ + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(_)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "captures": { + "0": { + "name": "keyword.operator.type.js.jsx" + } + } + }, + { + "include": "#type" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "type": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#type-string" + }, + { + "include": "#numeric-literal" + }, + { + "include": "#type-primitive" + }, + { + "include": "#type-builtin-literals" + }, + { + "include": "#type-parameters" + }, + { + "include": "#type-tuple" + }, + { + "include": "#type-object" + }, + { + "include": "#type-operators" + }, + { + "include": "#type-conditional" + }, + { + "include": "#type-fn-type-parameters" + }, + { + "include": "#type-paren-or-function-parameters" + }, + { + "include": "#type-function-return-type" + }, + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", + "captures": { + "1": { + "name": "storage.modifier.js.jsx" + } + } + }, + { + "include": "#type-name" + } + ] + }, + "type-primitive": { + "name": "support.type.primitive.js.jsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(string|number|bigint|boolean|symbol|any|void|never|unknown)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + "type-builtin-literals": { + "name": "support.type.builtin.js.jsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + "type-tuple": { + "name": "meta.type.tuple.js.jsx", + "begin": "\\[", + "beginCaptures": { + "0": { + "name": "meta.brace.square.js.jsx" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "meta.brace.square.js.jsx" + } + }, + "patterns": [ + { + "name": "keyword.operator.rest.js.jsx", + "match": "\\.\\.\\." + }, + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)", + "captures": { + "1": { + "name": "entity.name.label.js.jsx" + }, + "2": { + "name": "keyword.operator.optional.js.jsx" + }, + "3": { + "name": "punctuation.separator.label.js.jsx" + } + } + }, + { + "include": "#type" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "type-object": { + "name": "meta.object.type.js.jsx", + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.block.js.jsx" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.js.jsx" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#method-declaration" + }, + { + "include": "#indexer-declaration" + }, + { + "include": "#indexer-mapped-type-declaration" + }, + { + "include": "#field-declaration" + }, + { + "include": "#type-annotation" + }, + { + "begin": "\\.\\.\\.", + "beginCaptures": { + "0": { + "name": "keyword.operator.spread.js.jsx" + } + }, + "end": "(?=\\}|;|,|$)|(?<=\\})", + "patterns": [ + { + "include": "#type" + } + ] + }, + { + "include": "#punctuation-comma" + }, + { + "include": "#punctuation-semicolon" + }, + { + "include": "#type" + } + ] + }, + "type-conditional": { + "patterns": [ + { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends)\\s+", + "beginCaptures": { + "1": { + "name": "storage.modifier.js.jsx" + } + }, + "end": "(?<=:)", + "patterns": [ + { + "begin": "\\?", + "beginCaptures": { + "0": { + "name": "keyword.operator.ternary.js.jsx" + } + }, + "end": ":", + "endCaptures": { + "0": { + "name": "keyword.operator.ternary.js.jsx" + } + }, + "patterns": [ + { + "include": "#type" + } + ] + }, + { + "include": "#type" + } + ] + } + ] + }, + "type-paren-or-function-parameters": { + "name": "meta.type.paren.cover.js.jsx", + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "meta.brace.round.js.jsx" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "meta.brace.round.js.jsx" + } + }, + "patterns": [ + { + "match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=\\s*(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))", + "captures": { + "1": { + "name": "storage.modifier.js.jsx" + }, + "2": { + "name": "keyword.operator.rest.js.jsx" + }, + "3": { + "name": "entity.name.function.js.jsx variable.language.this.js.jsx" + }, + "4": { + "name": "entity.name.function.js.jsx" + }, + "5": { + "name": "keyword.operator.optional.js.jsx" + } + } + }, + { + "match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=:)", + "captures": { + "1": { + "name": "storage.modifier.js.jsx" + }, + "2": { + "name": "keyword.operator.rest.js.jsx" + }, + "3": { + "name": "variable.parameter.js.jsx variable.language.this.js.jsx" + }, + "4": { + "name": "variable.parameter.js.jsx" + }, + "5": { + "name": "keyword.operator.optional.js.jsx" + } + } + }, + { + "include": "#type-annotation" + }, + { + "name": "punctuation.separator.parameter.js.jsx", + "match": "," + }, + { + "include": "#type" + } + ] + }, + "type-fn-type-parameters": { + "patterns": [ + { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b(?=\\s*\\<)", + "beginCaptures": { + "1": { + "name": "meta.type.constructor.js.jsx storage.modifier.js.jsx" + }, + "2": { + "name": "meta.type.constructor.js.jsx keyword.control.new.js.jsx" + } + }, + "end": "(?<=>)", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#type-parameters" + } + ] + }, + { + "name": "meta.type.constructor.js.jsx", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b\\s*(?=\\()", + "beginCaptures": { + "1": { + "name": "storage.modifier.js.jsx" + }, + "2": { + "name": "keyword.control.new.js.jsx" + } + }, + "end": "(?<=\\))", + "patterns": [ + { + "include": "#function-parameters" + } + ] + }, + { + "name": "meta.type.function.js.jsx", + "begin": "(?x)(\n (?=\n [(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n )\n )\n)", + "end": "(?<=\\))", + "patterns": [ + { + "include": "#function-parameters" + } + ] + } + ] + }, + "type-function-return-type": { + "patterns": [ + { + "name": "meta.type.function.return.js.jsx", + "begin": "(=>)(?=\\s*\\S)", + "beginCaptures": { + "1": { + "name": "storage.type.function.arrow.js.jsx" + } + }, + "end": "(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>:\\?]|//|$)", + "patterns": [ + { + "include": "#type-function-return-type-core" + } + ] + }, + { + "name": "meta.type.function.return.js.jsx", + "begin": "=>", + "beginCaptures": { + "0": { + "name": "storage.type.function.arrow.js.jsx" + } + }, + "end": "(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;:\\?>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", + "patterns": [ + { + "include": "#type-function-return-type-core" + } + ] + } + ] + }, + "type-function-return-type-core": { + "patterns": [ + { + "include": "#comment" + }, + { + "begin": "(?<==>)(?=\\s*\\{)", + "end": "(?<=\\})", + "patterns": [ + { + "include": "#type-object" + } + ] + }, + { + "include": "#type-predicate-operator" + }, + { + "include": "#type" + } + ] + }, + "type-operators": { + "patterns": [ + { + "include": "#typeof-operator" + }, + { + "include": "#type-infer" + }, + { + "begin": "([&|])(?=\\s*\\{)", + "beginCaptures": { + "0": { + "name": "keyword.operator.type.js.jsx" + } + }, + "end": "(?<=\\})", + "patterns": [ + { + "include": "#type-object" + } + ] + }, + { + "begin": "[&|]", + "beginCaptures": { + "0": { + "name": "keyword.operator.type.js.jsx" + } + }, + "end": "(?=\\S)" + }, + { + "name": "keyword.operator.expression.keyof.js.jsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))keyof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "name": "keyword.operator.ternary.js.jsx", + "match": "(\\?|\\:)" + }, + { + "name": "keyword.operator.expression.import.js.jsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*\\()" + } + ] + }, + "type-infer": { + "patterns": [ + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(infer)\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s+(extends)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))?", + "name": "meta.type.infer.js.jsx", + "captures": { + "1": { + "name": "keyword.operator.expression.infer.js.jsx" + }, + "2": { + "name": "entity.name.type.js.jsx" + }, + "3": { + "name": "keyword.operator.expression.extends.js.jsx" + } + } + } + ] + }, + "type-predicate-operator": { + "patterns": [ + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s(is)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "captures": { + "1": { + "name": "keyword.operator.type.asserts.js.jsx" + }, + "2": { + "name": "variable.parameter.js.jsx variable.language.this.js.jsx" + }, + "3": { + "name": "variable.parameter.js.jsx" + }, + "4": { + "name": "keyword.operator.expression.is.js.jsx" + } + } + }, + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "captures": { + "1": { + "name": "keyword.operator.type.asserts.js.jsx" + }, + "2": { + "name": "variable.parameter.js.jsx variable.language.this.js.jsx" + }, + "3": { + "name": "variable.parameter.js.jsx" + } + } + }, + { + "name": "keyword.operator.type.asserts.js.jsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "name": "keyword.operator.expression.is.js.jsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + } + ] + }, + "type-name": { + "patterns": [ + { + "begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(<)", + "captures": { + "1": { + "name": "entity.name.type.module.js.jsx" + }, + "2": { + "name": "punctuation.accessor.js.jsx" + }, + "3": { + "name": "punctuation.accessor.optional.js.jsx" + }, + "4": { + "name": "meta.type.parameters.js.jsx punctuation.definition.typeparameters.begin.js.jsx" + } + }, + "end": "(>)", + "endCaptures": { + "1": { + "name": "meta.type.parameters.js.jsx punctuation.definition.typeparameters.end.js.jsx" + } + }, + "contentName": "meta.type.parameters.js.jsx", + "patterns": [ + { + "include": "#type-arguments-body" + } + ] + }, + { + "begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)", + "beginCaptures": { + "1": { + "name": "entity.name.type.js.jsx" + }, + "2": { + "name": "meta.type.parameters.js.jsx punctuation.definition.typeparameters.begin.js.jsx" + } + }, + "end": "(>)", + "endCaptures": { + "1": { + "name": "meta.type.parameters.js.jsx punctuation.definition.typeparameters.end.js.jsx" + } + }, + "contentName": "meta.type.parameters.js.jsx", + "patterns": [ + { + "include": "#type-arguments-body" + } + ] + }, + { + "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", + "captures": { + "1": { + "name": "entity.name.type.module.js.jsx" + }, + "2": { + "name": "punctuation.accessor.js.jsx" + }, + "3": { + "name": "punctuation.accessor.optional.js.jsx" + } + } + }, + { + "name": "entity.name.type.js.jsx", + "match": "[_$[:alpha:]][_$[:alnum:]]*" + } + ] + }, + "punctuation-comma": { + "name": "punctuation.separator.comma.js.jsx", + "match": "," + }, + "punctuation-semicolon": { + "name": "punctuation.terminator.statement.js.jsx", + "match": ";" + }, + "punctuation-accessor": { + "match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", + "captures": { + "1": { + "name": "punctuation.accessor.js.jsx" + }, + "2": { + "name": "punctuation.accessor.optional.js.jsx" + } + } + }, + "string": { + "patterns": [ + { + "include": "#qstring-single" + }, + { + "include": "#qstring-double" + }, + { + "include": "#template" + } + ] + }, + "qstring-double": { + "name": "string.quoted.double.js.jsx", + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.js.jsx" + } + }, + "end": "(\")|((?:[^\\\\\\n])$)", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.js.jsx" + }, + "2": { + "name": "invalid.illegal.newline.js.jsx" + } + }, + "patterns": [ + { + "include": "#string-character-escape" + } + ] + }, + "qstring-single": { + "name": "string.quoted.single.js.jsx", + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.js.jsx" + } + }, + "end": "(\\')|((?:[^\\\\\\n])$)", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.js.jsx" + }, + "2": { + "name": "invalid.illegal.newline.js.jsx" + } + }, + "patterns": [ + { + "include": "#string-character-escape" + } + ] + }, + "string-character-escape": { + "name": "constant.character.escape.js.jsx", + "match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)" + }, + "template": { + "patterns": [ + { + "include": "#template-call" + }, + { + "contentName": "string.template.js.jsx", + "begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", + "beginCaptures": { + "1": { + "name": "entity.name.function.tagged-template.js.jsx" + }, + "2": { + "name": "string.template.js.jsx punctuation.definition.string.template.begin.js.jsx" + } + }, + "end": "`", + "endCaptures": { + "0": { + "name": "string.template.js.jsx punctuation.definition.string.template.end.js.jsx" + } + }, + "patterns": [ + { + "include": "#template-substitution-element" + }, + { + "include": "#string-character-escape" + } + ] + } + ] + }, + "template-call": { + "patterns": [ + { + "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*)(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)", + "end": "(?=`)", + "patterns": [ + { + "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))", + "end": "(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)", + "patterns": [ + { + "include": "#support-function-call-identifiers" + }, + { + "name": "entity.name.function.tagged-template.js.jsx", + "match": "([_$[:alpha:]][_$[:alnum:]]*)" + } + ] + }, + { + "include": "#type-arguments" + } + ] + }, + { + "begin": "([_$[:alpha:]][_$[:alnum:]]*)?\\s*(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)`)", + "beginCaptures": { + "1": { + "name": "entity.name.function.tagged-template.js.jsx" + } + }, + "end": "(?=`)", + "patterns": [ + { + "include": "#type-arguments" + } + ] + } + ] + }, + "template-substitution-element": { + "name": "meta.template.expression.js.jsx", + "begin": "\\$\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.template-expression.begin.js.jsx" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.template-expression.end.js.jsx" + } + }, + "patterns": [ + { + "include": "#expression" + } + ], + "contentName": "meta.embedded.line.js.jsx" + }, + "type-string": { + "patterns": [ + { + "include": "#qstring-single" + }, + { + "include": "#qstring-double" + }, + { + "include": "#template-type" + } + ] + }, + "template-type": { + "patterns": [ + { + "include": "#template-call" + }, + { + "contentName": "string.template.js.jsx", + "begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", + "beginCaptures": { + "1": { + "name": "entity.name.function.tagged-template.js.jsx" + }, + "2": { + "name": "string.template.js.jsx punctuation.definition.string.template.begin.js.jsx" + } + }, + "end": "`", + "endCaptures": { + "0": { + "name": "string.template.js.jsx punctuation.definition.string.template.end.js.jsx" + } + }, + "patterns": [ + { + "include": "#template-type-substitution-element" + }, + { + "include": "#string-character-escape" + } + ] + } + ] + }, + "template-type-substitution-element": { + "name": "meta.template.expression.js.jsx", + "begin": "\\$\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.template-expression.begin.js.jsx" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.template-expression.end.js.jsx" + } + }, + "patterns": [ + { + "include": "#type" + } + ], + "contentName": "meta.embedded.line.js.jsx" + }, + "regex": { + "patterns": [ + { + "name": "string.regexp.js.jsx", + "begin": "(?<!\\+\\+|--|})(?<=[=(:,\\[?+!]|^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case|=>|&&|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))", + "beginCaptures": { + "1": { + "name": "punctuation.definition.string.begin.js.jsx" + } + }, + "end": "(/)([dgimsuy]*)", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.js.jsx" + }, + "2": { + "name": "keyword.other.js.jsx" + } + }, + "patterns": [ + { + "include": "#regexp" + } + ] + }, + { + "name": "string.regexp.js.jsx", + "begin": "((?<![_$[:alnum:])\\]]|\\+\\+|--|}|\\*\\/)|((?<=^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case))\\s*)\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.js.jsx" + } + }, + "end": "(/)([dgimsuy]*)", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.js.jsx" + }, + "2": { + "name": "keyword.other.js.jsx" + } + }, + "patterns": [ + { + "include": "#regexp" + } + ] + } + ] + }, + "regexp": { + "patterns": [ + { + "name": "keyword.control.anchor.regexp", + "match": "\\\\[bB]|\\^|\\$" + }, + { + "match": "\\\\[1-9]\\d*|\\\\k<([a-zA-Z_$][\\w$]*)>", + "captures": { + "0": { + "name": "keyword.other.back-reference.regexp" + }, + "1": { + "name": "variable.other.regexp" + } + } + }, + { + "name": "keyword.operator.quantifier.regexp", + "match": "[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??" + }, + { + "name": "keyword.operator.or.regexp", + "match": "\\|" + }, + { + "name": "meta.group.assertion.regexp", + "begin": "(\\()((\\?=)|(\\?!)|(\\?<=)|(\\?<!))", + "beginCaptures": { + "1": { + "name": "punctuation.definition.group.regexp" + }, + "2": { + "name": "punctuation.definition.group.assertion.regexp" + }, + "3": { + "name": "meta.assertion.look-ahead.regexp" + }, + "4": { + "name": "meta.assertion.negative-look-ahead.regexp" + }, + "5": { + "name": "meta.assertion.look-behind.regexp" + }, + "6": { + "name": "meta.assertion.negative-look-behind.regexp" + } + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.definition.group.regexp" + } + }, + "patterns": [ + { + "include": "#regexp" + } + ] + }, + { + "name": "meta.group.regexp", + "begin": "\\((?:(\\?:)|(?:\\?<([a-zA-Z_$][\\w$]*)>))?", + "beginCaptures": { + "0": { + "name": "punctuation.definition.group.regexp" + }, + "1": { + "name": "punctuation.definition.group.no-capture.regexp" + }, + "2": { + "name": "variable.other.regexp" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.group.regexp" + } + }, + "patterns": [ + { + "include": "#regexp" + } + ] + }, + { + "name": "constant.other.character-class.set.regexp", + "begin": "(\\[)(\\^)?", + "beginCaptures": { + "1": { + "name": "punctuation.definition.character-class.regexp" + }, + "2": { + "name": "keyword.operator.negation.regexp" + } + }, + "end": "(\\])", + "endCaptures": { + "1": { + "name": "punctuation.definition.character-class.regexp" + } + }, + "patterns": [ + { + "name": "constant.other.character-class.range.regexp", + "match": "(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))", + "captures": { + "1": { + "name": "constant.character.numeric.regexp" + }, + "2": { + "name": "constant.character.control.regexp" + }, + "3": { + "name": "constant.character.escape.backslash.regexp" + }, + "4": { + "name": "constant.character.numeric.regexp" + }, + "5": { + "name": "constant.character.control.regexp" + }, + "6": { + "name": "constant.character.escape.backslash.regexp" + } + } + }, + { + "include": "#regex-character-class" + } + ] + }, + { + "include": "#regex-character-class" + } + ] + }, + "regex-character-class": { + "patterns": [ + { + "name": "constant.other.character-class.regexp", + "match": "\\\\[wWsSdDtrnvf]|\\." + }, + { + "name": "constant.character.numeric.regexp", + "match": "\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})" + }, + { + "name": "constant.character.control.regexp", + "match": "\\\\c[A-Z]" + }, + { + "name": "constant.character.escape.backslash.regexp", + "match": "\\\\." + } + ] + }, + "comment": { + "patterns": [ + { + "name": "comment.block.documentation.js.jsx", + "begin": "/\\*\\*(?!/)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.js.jsx" + } + }, + "end": "\\*/", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.js.jsx" + } + }, + "patterns": [ + { + "include": "#docblock" + } + ] + }, + { + "name": "comment.block.js.jsx", + "begin": "(/\\*)(?:\\s*((@)internal)(?=\\s|(\\*/)))?", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.js.jsx" + }, + "2": { + "name": "storage.type.internaldeclaration.js.jsx" + }, + "3": { + "name": "punctuation.decorator.internaldeclaration.js.jsx" + } + }, + "end": "\\*/", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.js.jsx" + } + } + }, + { + "begin": "(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.js.jsx" + }, + "2": { + "name": "comment.line.double-slash.js.jsx" + }, + "3": { + "name": "punctuation.definition.comment.js.jsx" + }, + "4": { + "name": "storage.type.internaldeclaration.js.jsx" + }, + "5": { + "name": "punctuation.decorator.internaldeclaration.js.jsx" + } + }, + "end": "(?=$)", + "contentName": "comment.line.double-slash.js.jsx" + } + ] + }, + "single-line-comment-consuming-line-ending": { + "begin": "(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.js.jsx" + }, + "2": { + "name": "comment.line.double-slash.js.jsx" + }, + "3": { + "name": "punctuation.definition.comment.js.jsx" + }, + "4": { + "name": "storage.type.internaldeclaration.js.jsx" + }, + "5": { + "name": "punctuation.decorator.internaldeclaration.js.jsx" + } + }, + "end": "(?=^)", + "contentName": "comment.line.double-slash.js.jsx" + }, + "directives": { + "name": "comment.line.triple-slash.directive.js.jsx", + "begin": "^(///)\\s*(?=<(reference|amd-dependency|amd-module)(\\s+(path|types|no-default-lib|lib|name|resolution-mode)\\s*=\\s*((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)))+\\s*/>\\s*$)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.js.jsx" + } + }, + "end": "(?=$)", + "patterns": [ + { + "name": "meta.tag.js.jsx", + "begin": "(<)(reference|amd-dependency|amd-module)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.directive.js.jsx" + }, + "2": { + "name": "entity.name.tag.directive.js.jsx" + } + }, + "end": "/>", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.directive.js.jsx" + } + }, + "patterns": [ + { + "name": "entity.other.attribute-name.directive.js.jsx", + "match": "path|types|no-default-lib|lib|name|resolution-mode" + }, + { + "name": "keyword.operator.assignment.js.jsx", + "match": "=" + }, + { + "include": "#string" + } + ] + } + ] + }, + "docblock": { + "patterns": [ + { + "match": "(?x)\n((@)(?:access|api))\n\\s+\n(private|protected|public)\n\\b", + "captures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + }, + "3": { + "name": "constant.language.access-type.jsdoc" + } + } + }, + { + "match": "(?x)\n((@)author)\n\\s+\n(\n [^@\\s<>*/]\n (?:[^@<>*/]|\\*[^/])*\n)\n(?:\n \\s*\n (<)\n ([^>\\s]+)\n (>)\n)?", + "captures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + }, + "3": { + "name": "entity.name.type.instance.jsdoc" + }, + "4": { + "name": "punctuation.definition.bracket.angle.begin.jsdoc" + }, + "5": { + "name": "constant.other.email.link.underline.jsdoc" + }, + "6": { + "name": "punctuation.definition.bracket.angle.end.jsdoc" + } + } + }, + { + "match": "(?x)\n((@)borrows) \\s+\n((?:[^@\\s*/]|\\*[^/])+) # <that namepath>\n\\s+ (as) \\s+ # as\n((?:[^@\\s*/]|\\*[^/])+) # <this namepath>", + "captures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + }, + "3": { + "name": "entity.name.type.instance.jsdoc" + }, + "4": { + "name": "keyword.operator.control.jsdoc" + }, + "5": { + "name": "entity.name.type.instance.jsdoc" + } + } + }, + { + "name": "meta.example.jsdoc", + "begin": "((@)example)\\s+", + "end": "(?=@|\\*/)", + "beginCaptures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + } + }, + "patterns": [ + { + "match": "^\\s\\*\\s+" + }, + { + "contentName": "constant.other.description.jsdoc", + "begin": "\\G(<)caption(>)", + "beginCaptures": { + "0": { + "name": "entity.name.tag.inline.jsdoc" + }, + "1": { + "name": "punctuation.definition.bracket.angle.begin.jsdoc" + }, + "2": { + "name": "punctuation.definition.bracket.angle.end.jsdoc" + } + }, + "end": "(</)caption(>)|(?=\\*/)", + "endCaptures": { + "0": { + "name": "entity.name.tag.inline.jsdoc" + }, + "1": { + "name": "punctuation.definition.bracket.angle.begin.jsdoc" + }, + "2": { + "name": "punctuation.definition.bracket.angle.end.jsdoc" + } + } + }, + { + "match": "[^\\s@*](?:[^*]|\\*[^/])*", + "captures": { + "0": { + "name": "source.embedded.js.jsx" + } + } + } + ] + }, + { + "match": "(?x) ((@)kind) \\s+ (class|constant|event|external|file|function|member|mixin|module|namespace|typedef) \\b", + "captures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + }, + "3": { + "name": "constant.language.symbol-type.jsdoc" + } + } + }, + { + "match": "(?x)\n((@)see)\n\\s+\n(?:\n # URL\n (\n (?=https?://)\n (?:[^\\s*]|\\*[^/])+\n )\n |\n # JSDoc namepath\n (\n (?!\n # Avoid matching bare URIs (also acceptable as links)\n https?://\n |\n # Avoid matching {@inline tags}; we match those below\n (?:\\[[^\\[\\]]*\\])? # Possible description [preceding]{@tag}\n {@(?:link|linkcode|linkplain|tutorial)\\b\n )\n # Matched namepath\n (?:[^@\\s*/]|\\*[^/])+\n )\n)", + "captures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + }, + "3": { + "name": "variable.other.link.underline.jsdoc" + }, + "4": { + "name": "entity.name.type.instance.jsdoc" + } + } + }, + { + "match": "(?x)\n((@)template)\n\\s+\n# One or more valid identifiers\n(\n [A-Za-z_$] # First character: non-numeric word character\n [\\w$.\\[\\]]* # Rest of identifier\n (?: # Possible list of additional identifiers\n \\s* , \\s*\n [A-Za-z_$]\n [\\w$.\\[\\]]*\n )*\n)", + "captures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + }, + "3": { + "name": "variable.other.jsdoc" + } + } + }, + { + "begin": "(?x)((@)template)\\s+(?={)", + "beginCaptures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + } + }, + "end": "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", + "patterns": [ + { + "include": "#jsdoctype" + }, + { + "name": "variable.other.jsdoc", + "match": "([A-Za-z_$][\\w$.\\[\\]]*)" + } + ] + }, + { + "match": "(?x)\n(\n (@)\n (?:arg|argument|const|constant|member|namespace|param|var)\n)\n\\s+\n(\n [A-Za-z_$]\n [\\w$.\\[\\]]*\n)", + "captures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + }, + "3": { + "name": "variable.other.jsdoc" + } + } + }, + { + "begin": "((@)typedef)\\s+(?={)", + "beginCaptures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + } + }, + "end": "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", + "patterns": [ + { + "include": "#jsdoctype" + }, + { + "name": "entity.name.type.instance.jsdoc", + "match": "(?:[^@\\s*/]|\\*[^/])+" + } + ] + }, + { + "begin": "((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\s+(?={)", + "beginCaptures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + } + }, + "end": "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", + "patterns": [ + { + "include": "#jsdoctype" + }, + { + "name": "variable.other.jsdoc", + "match": "([A-Za-z_$][\\w$.\\[\\]]*)" + }, + { + "name": "variable.other.jsdoc", + "match": "(?x)\n(\\[)\\s*\n[\\w$]+\n(?:\n (?:\\[\\])? # Foo[ ].bar properties within an array\n \\. # Foo.Bar namespaced parameter\n [\\w$]+\n)*\n(?:\n \\s*\n (=) # [foo=bar] Default parameter value\n \\s*\n (\n # The inner regexes are to stop the match early at */ and to not stop at escaped quotes\n (?>\n \"(?:(?:\\*(?!/))|(?:\\\\(?!\"))|[^*\\\\])*?\" | # [foo=\"bar\"] Double-quoted\n '(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?' | # [foo='bar'] Single-quoted\n \\[ (?:(?:\\*(?!/))|[^*])*? \\] | # [foo=[1,2]] Array literal\n (?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])* # Everything else\n )*\n )\n)?\n\\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))", + "captures": { + "1": { + "name": "punctuation.definition.optional-value.begin.bracket.square.jsdoc" + }, + "2": { + "name": "keyword.operator.assignment.jsdoc" + }, + "3": { + "name": "source.embedded.js.jsx" + }, + "4": { + "name": "punctuation.definition.optional-value.end.bracket.square.jsdoc" + }, + "5": { + "name": "invalid.illegal.syntax.jsdoc" + } + } + } + ] + }, + { + "begin": "(?x)\n(\n (@)\n (?:define|enum|exception|export|extends|lends|implements|modifies\n |namespace|private|protected|returns?|satisfies|suppress|this|throws|type\n |yields?)\n)\n\\s+(?={)", + "beginCaptures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + } + }, + "end": "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", + "patterns": [ + { + "include": "#jsdoctype" + } + ] + }, + { + "match": "(?x)\n(\n (@)\n (?:alias|augments|callback|constructs|emits|event|fires|exports?\n |extends|external|function|func|host|lends|listens|interface|memberof!?\n |method|module|mixes|mixin|name|requires|see|this|typedef|uses)\n)\n\\s+\n(\n (?:\n [^{}@\\s*] | \\*[^/]\n )+\n)", + "captures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + }, + "3": { + "name": "entity.name.type.instance.jsdoc" + } + } + }, + { + "contentName": "variable.other.jsdoc", + "begin": "((@)(?:default(?:value)?|license|version))\\s+(([''\"]))", + "beginCaptures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + }, + "3": { + "name": "variable.other.jsdoc" + }, + "4": { + "name": "punctuation.definition.string.begin.jsdoc" + } + }, + "end": "(\\3)|(?=$|\\*/)", + "endCaptures": { + "0": { + "name": "variable.other.jsdoc" + }, + "1": { + "name": "punctuation.definition.string.end.jsdoc" + } + } + }, + { + "match": "((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)", + "captures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + }, + "3": { + "name": "variable.other.jsdoc" + } + } + }, + { + "name": "storage.type.class.jsdoc", + "match": "(?x) (@) (?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles |callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright |default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception |exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func |function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc |inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method |mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects |override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected |public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary |suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation |version|virtual|writeOnce|yields?) \\b", + "captures": { + "1": { + "name": "punctuation.definition.block.tag.jsdoc" + } + } + }, + { + "include": "#inline-tags" + }, + { + "match": "((@)(?:[_$[:alpha:]][_$[:alnum:]]*))(?=\\s+)", + "captures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + } + } + } + ] + }, + "brackets": { + "patterns": [ + { + "begin": "{", + "end": "}|(?=\\*/)", + "patterns": [ + { + "include": "#brackets" + } + ] + }, + { + "begin": "\\[", + "end": "\\]|(?=\\*/)", + "patterns": [ + { + "include": "#brackets" + } + ] + } + ] + }, + "inline-tags": { + "patterns": [ + { + "name": "constant.other.description.jsdoc", + "match": "(\\[)[^\\]]+(\\])(?={@(?:link|linkcode|linkplain|tutorial))", + "captures": { + "1": { + "name": "punctuation.definition.bracket.square.begin.jsdoc" + }, + "2": { + "name": "punctuation.definition.bracket.square.end.jsdoc" + } + } + }, + { + "name": "entity.name.type.instance.jsdoc", + "begin": "({)((@)(?:link(?:code|plain)?|tutorial))\\s*", + "beginCaptures": { + "1": { + "name": "punctuation.definition.bracket.curly.begin.jsdoc" + }, + "2": { + "name": "storage.type.class.jsdoc" + }, + "3": { + "name": "punctuation.definition.inline.tag.jsdoc" + } + }, + "end": "}|(?=\\*/)", + "endCaptures": { + "0": { + "name": "punctuation.definition.bracket.curly.end.jsdoc" + } + }, + "patterns": [ + { + "match": "\\G((?=https?://)(?:[^|}\\s*]|\\*[/])+)(\\|)?", + "captures": { + "1": { + "name": "variable.other.link.underline.jsdoc" + }, + "2": { + "name": "punctuation.separator.pipe.jsdoc" + } + } + }, + { + "match": "\\G((?:[^{}@\\s|*]|\\*[^/])+)(\\|)?", + "captures": { + "1": { + "name": "variable.other.description.jsdoc" + }, + "2": { + "name": "punctuation.separator.pipe.jsdoc" + } + } + } + ] + } + ] + }, + "jsdoctype": { + "patterns": [ + { + "contentName": "entity.name.type.instance.jsdoc", + "begin": "\\G({)", + "beginCaptures": { + "0": { + "name": "entity.name.type.instance.jsdoc" + }, + "1": { + "name": "punctuation.definition.bracket.curly.begin.jsdoc" + } + }, + "end": "((}))\\s*|(?=\\*/)", + "endCaptures": { + "1": { + "name": "entity.name.type.instance.jsdoc" + }, + "2": { + "name": "punctuation.definition.bracket.curly.end.jsdoc" + } + }, + "patterns": [ + { + "include": "#brackets" + } + ] + } + ] + }, + "jsx": { + "patterns": [ + { + "include": "#jsx-tag-without-attributes-in-expression" + }, + { + "include": "#jsx-tag-in-expression" + } + ] + }, + "jsx-tag-without-attributes-in-expression": { + "begin": "(?<!\\+\\+|--)(?<=[({\\[,?=>:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s*(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>))", + "end": "(?!(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>))", + "patterns": [ + { + "include": "#jsx-tag-without-attributes" + } + ] + }, + "jsx-tag-without-attributes": { + "name": "meta.tag.without-attributes.js.jsx", + "begin": "(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>)", + "end": "(</)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.js.jsx" + }, + "2": { + "name": "entity.name.tag.namespace.js.jsx" + }, + "3": { + "name": "punctuation.separator.namespace.js.jsx" + }, + "4": { + "name": "entity.name.tag.js.jsx" + }, + "5": { + "name": "support.class.component.js.jsx" + }, + "6": { + "name": "punctuation.definition.tag.end.js.jsx" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.js.jsx" + }, + "2": { + "name": "entity.name.tag.namespace.js.jsx" + }, + "3": { + "name": "punctuation.separator.namespace.js.jsx" + }, + "4": { + "name": "entity.name.tag.js.jsx" + }, + "5": { + "name": "support.class.component.js.jsx" + }, + "6": { + "name": "punctuation.definition.tag.end.js.jsx" + } + }, + "contentName": "meta.jsx.children.js.jsx", + "patterns": [ + { + "include": "#jsx-children" + } + ] + }, + "jsx-tag-in-expression": { + "begin": "(?x)\n (?<!\\+\\+|--)(?<=[({\\[,?=>:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s*\n (?!<\\s*[_$[:alpha:]][_$[:alnum:]]*((\\s+extends\\s+[^=>])|,)) # look ahead is not type parameter of arrow\n (?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))", + "end": "(?!(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))", + "patterns": [ + { + "include": "#jsx-tag" + } + ] + }, + "jsx-tag": { + "name": "meta.tag.js.jsx", + "begin": "(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))", + "end": "(/>)|(?:(</)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>))", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.end.js.jsx" + }, + "2": { + "name": "punctuation.definition.tag.begin.js.jsx" + }, + "3": { + "name": "entity.name.tag.namespace.js.jsx" + }, + "4": { + "name": "punctuation.separator.namespace.js.jsx" + }, + "5": { + "name": "entity.name.tag.js.jsx" + }, + "6": { + "name": "support.class.component.js.jsx" + }, + "7": { + "name": "punctuation.definition.tag.end.js.jsx" + } + }, + "patterns": [ + { + "begin": "(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.js.jsx" + }, + "2": { + "name": "entity.name.tag.namespace.js.jsx" + }, + "3": { + "name": "punctuation.separator.namespace.js.jsx" + }, + "4": { + "name": "entity.name.tag.js.jsx" + }, + "5": { + "name": "support.class.component.js.jsx" + } + }, + "end": "(?=[/]?>)", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#type-arguments" + }, + { + "include": "#jsx-tag-attributes" + } + ] + }, + { + "begin": "(>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.end.js.jsx" + } + }, + "end": "(?=</)", + "contentName": "meta.jsx.children.js.jsx", + "patterns": [ + { + "include": "#jsx-children" + } + ] + } + ] + }, + "jsx-children": { + "patterns": [ + { + "include": "#jsx-tag-without-attributes" + }, + { + "include": "#jsx-tag" + }, + { + "include": "#jsx-evaluated-code" + }, + { + "include": "#jsx-entities" + } + ] + }, + "jsx-evaluated-code": { + "contentName": "meta.embedded.expression.js.jsx", + "begin": "\\{", + "end": "\\}", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.js.jsx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.js.jsx" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + "jsx-entities": { + "patterns": [ + { + "name": "constant.character.entity.js.jsx", + "match": "(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)", + "captures": { + "1": { + "name": "punctuation.definition.entity.js.jsx" + }, + "3": { + "name": "punctuation.definition.entity.js.jsx" + } + } + } + ] + }, + "jsx-tag-attributes": { + "name": "meta.tag.attributes.js.jsx", + "begin": "\\s+", + "end": "(?=[/]?>)", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#jsx-tag-attribute-name" + }, + { + "include": "#jsx-tag-attribute-assignment" + }, + { + "include": "#jsx-string-double-quoted" + }, + { + "include": "#jsx-string-single-quoted" + }, + { + "include": "#jsx-evaluated-code" + }, + { + "include": "#jsx-tag-attributes-illegal" + } + ] + }, + "jsx-tag-attribute-name": { + "match": "(?x)\n \\s*\n (?:([_$[:alpha:]][-_$[:alnum:].]*)(:))?\n ([_$[:alpha:]][-_$[:alnum:]]*)\n (?=\\s|=|/?>|/\\*|//)", + "captures": { + "1": { + "name": "entity.other.attribute-name.namespace.js.jsx" + }, + "2": { + "name": "punctuation.separator.namespace.js.jsx" + }, + "3": { + "name": "entity.other.attribute-name.js.jsx" + } + } + }, + "jsx-tag-attribute-assignment": { + "name": "keyword.operator.assignment.js.jsx", + "match": "=(?=\\s*(?:'|\"|{|/\\*|//|\\n))" + }, + "jsx-string-double-quoted": { + "name": "string.quoted.double.js.jsx", + "begin": "\"", + "end": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.js.jsx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.js.jsx" + } + }, + "patterns": [ + { + "include": "#jsx-entities" + } + ] + }, + "jsx-string-single-quoted": { + "name": "string.quoted.single.js.jsx", + "begin": "'", + "end": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.js.jsx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.js.jsx" + } + }, + "patterns": [ + { + "include": "#jsx-entities" + } + ] + }, + "jsx-tag-attributes-illegal": { + "name": "invalid.illegal.attribute.js.jsx", + "match": "\\S+" + } + } +} diff --git a/docs/shiki/languages/julia.tmLanguage.json b/docs/shiki/languages/julia.tmLanguage.json new file mode 100644 index 00000000..0454c1c2 --- /dev/null +++ b/docs/shiki/languages/julia.tmLanguage.json @@ -0,0 +1,986 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/JuliaEditorSupport/atom-language-julia/blob/master/grammars/julia_vscode.json", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/JuliaEditorSupport/atom-language-julia/commit/85cf3ef2ddcb7bc9b2b17b2a5f1fc664e1f1e718", + "name": "julia", + "scopeName": "source.julia", + "comment": "This grammar is used by Atom (Oniguruma), GitHub (PCRE), and VSCode (Oniguruma),\nso all regexps must be compatible with both engines.\n\nSpecs:\n- https://github.com/kkos/oniguruma/blob/master/doc/RE\n- https://www.pcre.org/current/doc/html/", + "patterns": [ + { + "include": "#operator" + }, + { + "include": "#array" + }, + { + "include": "#string" + }, + { + "include": "#parentheses" + }, + { + "include": "#bracket" + }, + { + "include": "#function_decl" + }, + { + "include": "#function_call" + }, + { + "include": "#keyword" + }, + { + "include": "#number" + }, + { + "include": "#comment" + }, + { + "include": "#type_decl" + }, + { + "include": "#symbol" + } + ], + "repository": { + "array": { + "patterns": [ + { + "begin": "\\[", + "beginCaptures": { + "0": { + "name": "meta.bracket.julia" + } + }, + "end": "(\\])((?:\\.)?'*)", + "endCaptures": { + "1": { + "name": "meta.bracket.julia" + }, + "2": { + "name": "keyword.operator.transpose.julia" + } + }, + "name": "meta.array.julia", + "patterns": [ + { + "match": "\\bbegin\\b", + "name": "constant.numeric.julia" + }, + { + "match": "\\bend\\b", + "name": "constant.numeric.julia" + }, + { + "match": "\\bfor\\b", + "name": "keyword.control.julia" + }, + { + "include": "$self" + } + ] + } + ] + }, + "parentheses": { + "patterns": [ + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "meta.bracket.julia" + } + }, + "end": "(\\))((?:\\.)?'*)", + "endCaptures": { + "1": { + "name": "meta.bracket.julia" + }, + "2": { + "name": "keyword.operator.transpose.julia" + } + }, + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + "bracket": { + "patterns": [ + { + "match": "(?:\\(|\\)|\\[|\\]|\\{|\\}|,|;)(?!('|(?:\\.'))*\\.?')", + "name": "meta.bracket.julia" + } + ] + }, + "comment_tags": { + "patterns": [ + { + "match": "\\bTODO\\b", + "name": "keyword.other.comment-annotation.julia" + }, + { + "match": "\\bFIXME\\b", + "name": "keyword.other.comment-annotation.julia" + }, + { + "match": "\\bCHANGED\\b", + "name": "keyword.other.comment-annotation.julia" + }, + { + "match": "\\bXXX\\b", + "name": "keyword.other.comment-annotation.julia" + } + ] + }, + "comment": { + "patterns": [ + { + "include": "#comment_block" + }, + { + "begin": "#", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.julia" + } + }, + "end": "\\n", + "name": "comment.line.number-sign.julia", + "patterns": [ + { + "include": "#comment_tags" + } + ] + } + ] + }, + "comment_block": { + "patterns": [ + { + "begin": "#=", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.begin.julia" + } + }, + "end": "=#", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.end.julia" + } + }, + "name": "comment.block.number-sign-equals.julia", + "patterns": [ + { + "include": "#comment_tags" + }, + { + "include": "#comment_block" + } + ] + } + ] + }, + "function_call": { + "patterns": [ + { + "begin": "((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)({(?:[^{}]|{(?:[^{}]|{[^{}]*})*})*})?\\.?(\\()", + "beginCaptures": { + "1": { + "name": "support.function.julia" + }, + "2": { + "name": "support.type.julia" + }, + "3": { + "name": "meta.bracket.julia" + } + }, + "end": "\\)(('|(\\.'))*\\.?')?", + "endCaptures": { + "0": { + "name": "meta.bracket.julia" + }, + "1": { + "name": "keyword.operator.transposed-func.julia" + } + }, + "patterns": [ + { + "match": "\\bfor\\b", + "name": "keyword.control.julia" + }, + { + "include": "$self" + } + ] + } + ] + }, + "function_decl": { + "patterns": [ + { + "captures": { + "1": { + "name": "entity.name.function.julia" + }, + "2": { + "name": "support.type.julia" + } + }, + "match": "((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)({(?:[^{}]|{(?:[^{}]|{[^{}]*})*})*})?(?=\\([^#]*\\)(::[^\\s]+)?(\\s*\\bwhere\\b\\s+.+?)?\\s*?=(?![=>]))", + "comment": "first group is function name\nSecond group is type parameters (e.g. {T<:Number, S})\nThen open parens\nThen a lookahead ensures that we are followed by:\n - anything (function arguments)\n - 0 or more spaces\n - Finally an equal sign\nNegative lookahead ensures we don't have another equal sign (not `==`)" + }, + { + "captures": { + "1": { + "name": "keyword.other.julia" + }, + "2": { + "name": "keyword.operator.dots.julia" + }, + "3": { + "name": "entity.name.function.julia" + }, + "4": { + "name": "support.type.julia" + } + }, + "match": "\\b(function|macro)(?:\\s+(?:(?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*(\\.))?((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)({(?:[^{}]|{(?:[^{}]|{[^{}]*})*})*})?|\\s*)(?=\\()", + "comment": "similar regex to previous, but with keyword not 1-line syntax" + } + ] + }, + "keyword": { + "patterns": [ + { + "match": "\\b(?<![:_\\.])(?:function|mutable\\s+struct|struct|macro|quote|abstract\\s+type|primitive\\s+type|module|baremodule|where)\\b", + "name": "keyword.other.julia" + }, + { + "comment": "special case for blocks to support tokenizing outer properly", + "begin": "\\b(for)\\b", + "beginCaptures": { + "0": { + "name": "keyword.control.julia" + } + }, + "end": "(?<!,|\\s)(\\s*\\n)", + "patterns": [ + { + "match": "\\bouter\\b", + "name": "keyword.other.julia" + }, + { + "include": "$self" + } + ] + }, + { + "match": "\\b(?<![:_])(?:if|else|elseif|while|begin|let|do|try|catch|finally|return|break|continue)\\b", + "name": "keyword.control.julia" + }, + { + "match": "\\b(?<![:_])end\\b", + "name": "keyword.control.end.julia" + }, + { + "match": "\\b(?<![:_])(?:global|local|const)\\b", + "name": "keyword.storage.modifier.julia" + }, + { + "match": "\\b(?<![:_])(?:export)\\b", + "name": "keyword.control.export.julia" + }, + { + "match": "\\b(?<![:_])(?:import)\\b", + "name": "keyword.control.import.julia" + }, + { + "match": "\\b(?<![:_])(?:using)\\b", + "name": "keyword.control.using.julia" + }, + { + "match": "(?<=\\w\\s)\\b(as)\\b(?=\\s\\w)", + "name": "keyword.control.as.julia" + }, + { + "match": "(@(\\.|(?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*))", + "name": "support.function.macro.julia" + } + ] + }, + "number": { + "patterns": [ + { + "match": "((?<!(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿]))(?:(?:\\b0(?:x|X)[0-9a-fA-F](?:_?[0-9a-fA-F])*)|(?:\\b0o[0-7](?:_?[0-7])*)|(?:\\b0b[0-1](?:_?[0-1])*)|(?:(?:\\b[0-9](?:_?[0-9])*\\.?(?!\\.)(?:[_0-9]*))|(?:\\b\\.[0-9](?:_?[0-9])*))(?:[efE][+-]?[0-9](?:_?[0-9])*)?(?:im\\b|Inf(?:16|32|64)?\\b|NaN(?:16|32|64)?\\b|π\\b|pi\\b|ℯ\\b)?|\\b[0-9]+|\\bInf(?:16|32|64)?\\b|\\bNaN(?:16|32|64)?\\b|\\bπ\\b|\\bpi\\b|\\bℯ\\b))('*)", + "captures": { + "1": { + "name": "constant.numeric.julia" + }, + "2": { + "name": "keyword.operator.conjugate-number.julia" + } + } + }, + { + "match": "\\bARGS\\b|\\bC_NULL\\b|\\bDEPOT_PATH\\b|\\bENDIAN_BOM\\b|\\bENV\\b|\\bLOAD_PATH\\b|\\bPROGRAM_FILE\\b|\\bstdin\\b|\\bstdout\\b|\\bstderr\\b|\\bVERSION\\b|\\bdevnull\\b", + "name": "constant.global.julia" + }, + { + "match": "\\btrue\\b|\\bfalse\\b|\\bnothing\\b|\\bmissing\\b", + "name": "constant.language.julia" + } + ] + }, + "operator": { + "patterns": [ + { + "match": "(?:->|<-|-->|=>)", + "name": "keyword.operator.arrow.julia" + }, + { + "match": "(?::=|\\+=|-=|\\*=|//=|/=|\\.//=|\\./=|\\.\\*=|\\\\=|\\.\\\\=|\\^=|\\.\\^=|%=|\\.%=|÷=|\\.÷=|\\|=|&=|\\.&=|⊻=|\\.⊻=|\\$=|<<=|>>=|>>>=|=(?!=))", + "name": "keyword.operator.update.julia" + }, + { + "match": "(?:<<|>>>|>>|\\.>>>|\\.>>|\\.<<)", + "name": "keyword.operator.shift.julia" + }, + { + "match": "(?:\\s*(::|>:|<:)\\s*((?:(?:Union)?\\([^)]*\\)|[[:alpha:]_$∇][[:word:]⁺-ₜ!′\\.]*(?:(?:{(?:[^{}]|{(?:[^{}]|{[^{}]*})*})*})|(?:\".+?(?<!\\\\)\"))?)))(?:\\.\\.\\.)?((?:\\.)?'*)", + "captures": { + "1": { + "name": "keyword.operator.relation.types.julia" + }, + "2": { + "name": "support.type.julia" + }, + "3": { + "name": "keyword.operator.transpose.julia" + } + } + }, + { + "match": "(?:===|∈|\\.∈|∉|\\.∉|∋|\\.∋|∌|\\.∌|≈|\\.≈|≉|\\.≉|≠|\\.≠|≡|\\.≡|≢|\\.≢|⊆|\\.⊆|⊇|\\.⊇|⊈|\\.⊈|⊉|\\.⊉|⊊|\\.⊊|⊋|\\.⊋|\\.==|!==|!=|\\.>=|\\.>|\\.<=|\\.<|\\.≤|\\.≥|==|\\.!=|\\.=|\\.!|<:|>:|:>|(?<!>)>=|(?<!<)<=|>|<|≥|≤)", + "name": "keyword.operator.relation.julia" + }, + { + "match": "(?<=\\s)(?:\\?)(?=\\s)", + "name": "keyword.operator.ternary.julia" + }, + { + "match": "(?<=\\s)(?:\\:)(?=\\s)", + "name": "keyword.operator.ternary.julia" + }, + { + "match": "(?:\\|\\||&&|(?<!(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿]))!)", + "name": "keyword.operator.boolean.julia" + }, + { + "match": "(?<=[[:word:]⁺-ₜ!′∇\\)\\]\\}])(?::)", + "name": "keyword.operator.range.julia" + }, + { + "match": "(?:\\|>)", + "name": "keyword.operator.applies.julia" + }, + { + "match": "(?:\\||\\.\\||\\&|\\.\\&|~|\\.~|⊻|\\.⊻)", + "name": "keyword.operator.bitwise.julia" + }, + { + "match": "(?:\\+\\+|--|\\+|\\.\\+|-|\\.\\-|\\*|\\.\\*|//(?!=)|\\.//(?!=)|/|\\./|%|\\.%|\\\\|\\.\\\\|\\^|\\.\\^|÷|\\.÷|⋅|\\.⋅|∩|\\.∩|∪|\\.∪|×|√|∛)", + "name": "keyword.operator.arithmetic.julia" + }, + { + "match": "(?:∘)", + "name": "keyword.operator.compose.julia" + }, + { + "match": "(?:::|(?<=\\s)isa(?=\\s))", + "name": "keyword.operator.isa.julia" + }, + { + "match": "(?:(?<=\\s)in(?=\\s))", + "name": "keyword.operator.relation.in.julia" + }, + { + "match": "(?:\\.(?=(?:@|_|\\p{L}))|\\.\\.+)", + "name": "keyword.operator.dots.julia" + }, + { + "match": "(?:\\$)(?=.+)", + "name": "keyword.operator.interpolation.julia" + }, + { + "captures": { + "2": { + "name": "keyword.operator.transposed-variable.julia" + } + }, + "match": "((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)(('|(\\.'))*\\.?')" + }, + { + "captures": { + "1": { + "name": "bracket.end.julia" + }, + "2": { + "name": "keyword.operator.transposed-matrix.julia" + } + }, + "match": "(\\])((?:'|(?:\\.'))*\\.?')" + }, + { + "captures": { + "1": { + "name": "bracket.end.julia" + }, + "2": { + "name": "keyword.operator.transposed-parens.julia" + } + }, + "match": "(\\))((?:'|(?:\\.'))*\\.?')" + } + ] + }, + "string": { + "patterns": [ + { + "begin": "(?:(@doc)\\s((?:doc)?\"\"\")|(doc\"\"\"))", + "beginCaptures": { + "1": { + "name": "support.function.macro.julia" + }, + "2": { + "name": "punctuation.definition.string.begin.julia" + } + }, + "end": "(\"\"\") ?(->)?", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.julia" + }, + "2": { + "name": "keyword.operator.arrow.julia" + } + }, + "name": "string.docstring.julia", + "patterns": [ + { + "include": "#string_escaped_char" + }, + { + "include": "#string_dollar_sign_interpolate" + } + ] + }, + { + "begin": "(i?cxx)(\"\"\")", + "beginCaptures": { + "1": { + "name": "support.function.macro.julia" + }, + "2": { + "name": "punctuation.definition.string.begin.julia" + } + }, + "end": "\"\"\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.julia" + } + }, + "name": "embed.cxx.julia", + "contentName": "meta.embedded.inline.cpp", + "patterns": [ + { + "include": "source.cpp#root_context" + }, + { + "include": "#string_dollar_sign_interpolate" + } + ] + }, + { + "begin": "(py)(\"\"\")", + "beginCaptures": { + "1": { + "name": "support.function.macro.julia" + }, + "2": { + "name": "punctuation.definition.string.begin.julia" + } + }, + "end": "([\\s\\w]*)(\"\"\")", + "endCaptures": { + "2": { + "name": "punctuation.definition.string.end.julia" + } + }, + "name": "embed.python.julia", + "contentName": "meta.embedded.inline.python", + "patterns": [ + { + "include": "source.python" + }, + { + "include": "#string_dollar_sign_interpolate" + } + ] + }, + { + "begin": "(js)(\"\"\")", + "beginCaptures": { + "1": { + "name": "support.function.macro.julia" + }, + "2": { + "name": "punctuation.definition.string.begin.julia" + } + }, + "end": "\"\"\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.julia" + } + }, + "name": "embed.js.julia", + "contentName": "meta.embedded.inline.javascript", + "patterns": [ + { + "include": "source.js" + }, + { + "include": "#string_dollar_sign_interpolate" + } + ] + }, + { + "begin": "(R)(\"\"\")", + "beginCaptures": { + "1": { + "name": "support.function.macro.julia" + }, + "2": { + "name": "punctuation.definition.string.begin.julia" + } + }, + "end": "\"\"\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.julia" + } + }, + "name": "embed.R.julia", + "contentName": "meta.embedded.inline.r", + "patterns": [ + { + "include": "source.r" + }, + { + "include": "#string_dollar_sign_interpolate" + } + ] + }, + { + "begin": "(raw)(\"\"\")", + "beginCaptures": { + "1": { + "name": "support.function.macro.julia" + }, + "2": { + "name": "punctuation.definition.string.begin.julia" + } + }, + "end": "\"\"\"", + "name": "string.quoted.other.julia", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.julia" + } + } + }, + { + "begin": "(raw)(\")", + "beginCaptures": { + "1": { + "name": "support.function.macro.julia" + }, + "2": { + "name": "punctuation.definition.string.begin.julia" + } + }, + "end": "\"", + "name": "string.quoted.other.julia", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.julia" + } + } + }, + { + "begin": "(sql)(\"\"\")", + "beginCaptures": { + "1": { + "name": "support.function.macro.julia" + }, + "2": { + "name": "punctuation.definition.string.begin.julia" + } + }, + "end": "\"\"\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.julia" + } + }, + "name": "embed.sql.julia", + "contentName": "meta.embedded.inline.sql", + "patterns": [ + { + "include": "source.sql" + }, + { + "include": "#string_dollar_sign_interpolate" + } + ] + }, + { + "begin": "var\"\"\"", + "end": "\"\"\"", + "name": "constant.other.symbol.julia" + }, + { + "begin": "var\"", + "end": "\"", + "name": "constant.other.symbol.julia" + }, + { + "begin": "^\\s?(doc)?(\"\"\")\\s?$", + "beginCaptures": { + "1": { + "name": "support.function.macro.julia" + }, + "2": { + "name": "punctuation.definition.string.begin.julia" + } + }, + "end": "(\"\"\")", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.julia" + } + }, + "name": "string.docstring.julia", + "comment": "This only matches docstrings that start and end with triple quotes on\ntheir own line in the void", + "patterns": [ + { + "include": "#string_escaped_char" + }, + { + "include": "#string_dollar_sign_interpolate" + } + ] + }, + { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.julia" + } + }, + "end": "'(?!')", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.julia" + } + }, + "name": "string.quoted.single.julia", + "patterns": [ + { + "include": "#string_escaped_char" + } + ] + }, + { + "begin": "\"\"\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.multiline.begin.julia" + } + }, + "end": "\"\"\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.multiline.end.julia" + } + }, + "name": "string.quoted.triple.double.julia", + "comment": "multi-line string with triple double quotes", + "patterns": [ + { + "include": "#string_escaped_char" + }, + { + "include": "#string_dollar_sign_interpolate" + } + ] + }, + { + "name": "string.quoted.double.julia", + "begin": "\"(?!\"\")", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.julia" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.julia" + } + }, + "comment": "String with single pair of double quotes. Regex matches isolated double quote", + "patterns": [ + { + "include": "#string_escaped_char" + }, + { + "include": "#string_dollar_sign_interpolate" + } + ] + }, + { + "begin": "r\"\"\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.regexp.begin.julia" + } + }, + "end": "(\"\"\")([imsx]{0,4})?", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.regexp.end.julia" + }, + "2": { + "comment": "I took this scope name from python regex grammar", + "name": "keyword.other.option-toggle.regexp.julia" + } + }, + "name": "string.regexp.julia", + "patterns": [ + { + "include": "#string_escaped_char" + } + ] + }, + { + "begin": "r\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.regexp.begin.julia" + } + }, + "end": "(\")([imsx]{0,4})?", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.regexp.end.julia" + }, + "2": { + "comment": "I took this scope name from python regex grammar", + "name": "keyword.other.option-toggle.regexp.julia" + } + }, + "name": "string.regexp.julia", + "patterns": [ + { + "include": "#string_escaped_char" + } + ] + }, + { + "begin": "(?<!\")((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)\"\"\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.julia" + }, + "1": { + "name": "support.function.macro.julia" + } + }, + "end": "(\"\"\")((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)?", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.julia" + }, + "2": { + "name": "support.function.macro.julia" + } + }, + "name": "string.quoted.other.julia", + "patterns": [ + { + "include": "#string_escaped_char" + } + ] + }, + { + "begin": "(?<!\")((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.julia" + }, + "1": { + "name": "support.function.macro.julia" + } + }, + "end": "(?<![^\\\\]\\\\)(\")((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)?", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.julia" + }, + "2": { + "name": "support.function.macro.julia" + } + }, + "name": "string.quoted.other.julia", + "patterns": [ + { + "include": "#string_escaped_char" + } + ] + }, + { + "begin": "(?<!`)((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)?```", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.julia" + }, + "1": { + "name": "support.function.macro.julia" + } + }, + "end": "(```)((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)?", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.julia" + }, + "2": { + "name": "support.function.macro.julia" + } + }, + "name": "string.interpolated.backtick.julia", + "patterns": [ + { + "include": "#string_escaped_char" + }, + { + "include": "#string_dollar_sign_interpolate" + } + ] + }, + { + "begin": "(?<!`)((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)?`", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.julia" + }, + "1": { + "name": "support.function.macro.julia" + } + }, + "end": "(?<![^\\\\]\\\\)(`)((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)?", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.julia" + }, + "2": { + "name": "support.function.macro.julia" + } + }, + "name": "string.interpolated.backtick.julia", + "patterns": [ + { + "include": "#string_escaped_char" + }, + { + "include": "#string_dollar_sign_interpolate" + } + ] + } + ] + }, + "string_escaped_char": { + "patterns": [ + { + "match": "\\\\(\\\\|[0-3]\\d{,2}|[4-7]\\d?|x[a-fA-F0-9]{,2}|u[a-fA-F0-9]{,4}|U[a-fA-F0-9]{,8}|.)", + "name": "constant.character.escape.julia" + } + ] + }, + "string_dollar_sign_interpolate": { + "patterns": [ + { + "match": "\\$(?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*", + "name": "variable.interpolation.julia" + }, + { + "begin": "\\$\\(", + "end": "\\)", + "name": "variable.interpolation.julia", + "comment": "`punctuation.section.embedded`, `constant.escape`,\n& `meta.embedded.line` were considered but appear to have even spottier\nsupport among popular syntaxes.", + "patterns": [ + { + "match": "\\bfor\\b", + "name": "keyword.control.julia" + }, + { + "include": "#parentheses" + }, + { + "include": "$self" + } + ] + } + ] + }, + "symbol": { + "patterns": [ + { + "match": "(?<![[:word:]⁺-ₜ!′∇\\)\\]\\}]):(?:(?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)(?!(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿]))(?![\"`])", + "name": "constant.other.symbol.julia", + "comment": "This is string.quoted.symbol.julia in tpoisot's package" + } + ] + }, + "type_decl": { + "patterns": [ + { + "captures": { + "1": { + "name": "entity.name.type.julia" + }, + "2": { + "name": "entity.other.inherited-class.julia" + }, + "3": { + "name": "punctuation.separator.inheritance.julia" + } + }, + "match": "(?>!:_)(?:struct|mutable\\s+struct|abstract\\s+type|primitive\\s+type)\\s+((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)(\\s*(<:)\\s*(?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*(?:{.*})?)?", + "name": "meta.type.julia" + } + ] + } + } +} diff --git a/docs/shiki/languages/kotlin.tmLanguage.json b/docs/shiki/languages/kotlin.tmLanguage.json new file mode 100644 index 00000000..a48519c4 --- /dev/null +++ b/docs/shiki/languages/kotlin.tmLanguage.json @@ -0,0 +1,577 @@ +{ + "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", + "name": "kotlin", + "scopeName": "source.kotlin", + "patterns": [ + { + "include": "#import" + }, + { + "include": "#package" + }, + { + "include": "#code" + } + ], + "fileTypes": ["kt", "kts"], + "repository": { + "import": { + "begin": "\\b(import)\\b\\s*", + "beginCaptures": { + "1": { + "name": "storage.type.import.kotlin" + } + }, + "end": ";|$", + "name": "meta.import.kotlin", + "contentName": "entity.name.package.kotlin", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#hard-keywords" + }, + { + "match": "\\*", + "name": "variable.language.wildcard.kotlin" + } + ] + }, + "package": { + "begin": "\\b(package)\\b\\s*", + "beginCaptures": { + "1": { + "name": "storage.type.package.kotlin" + } + }, + "end": ";|$", + "name": "meta.package.kotlin", + "contentName": "entity.name.package.kotlin", + "patterns": [ + { + "include": "#comments" + } + ] + }, + "code": { + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#keywords" + }, + { + "include": "#annotation-simple" + }, + { + "include": "#annotation-site-list" + }, + { + "include": "#annotation-site" + }, + { + "include": "#class-declaration" + }, + { + "include": "#object-declaration" + }, + { + "include": "#type-alias" + }, + { + "include": "#function-declaration" + }, + { + "include": "#variable-declaration" + }, + { + "include": "#type-constraint" + }, + { + "include": "#type-annotation" + }, + { + "include": "#function-call" + }, + { + "include": "#method-reference" + }, + { + "include": "#key" + }, + { + "include": "#string" + }, + { + "include": "#string-empty" + }, + { + "include": "#string-multiline" + }, + { + "include": "#character" + }, + { + "include": "#lambda-arrow" + }, + { + "include": "#operators" + }, + { + "include": "#self-reference" + }, + { + "include": "#decimal-literal" + }, + { + "include": "#hex-literal" + }, + { + "include": "#binary-literal" + }, + { + "include": "#boolean-literal" + }, + { + "include": "#null-literal" + } + ] + }, + "comments": { + "patterns": [ + { + "include": "#comment-line" + }, + { + "include": "#comment-block" + }, + { + "include": "#comment-javadoc" + } + ] + }, + "comment-line": { + "begin": "//", + "end": "$", + "name": "comment.line.double-slash.kotlin" + }, + "comment-block": { + "begin": "/\\*(?!\\*)", + "end": "\\*/", + "name": "comment.block.kotlin" + }, + "comment-javadoc": { + "patterns": [ + { + "begin": "/\\*\\*", + "end": "\\*/", + "name": "comment.block.javadoc.kotlin", + "patterns": [ + { + "match": "@(return|constructor|receiver|sample|see|author|since|suppress)\\b", + "name": "keyword.other.documentation.javadoc.kotlin" + }, + { + "match": "(@param|@property)\\s+(\\S+)", + "captures": { + "1": { + "name": "keyword.other.documentation.javadoc.kotlin" + }, + "2": { + "name": "variable.parameter.kotlin" + } + } + }, + { + "match": "(@param)\\[(\\S+)\\]", + "captures": { + "1": { + "name": "keyword.other.documentation.javadoc.kotlin" + }, + "2": { + "name": "variable.parameter.kotlin" + } + } + }, + { + "match": "(@(?:exception|throws))\\s+(\\S+)", + "captures": { + "1": { + "name": "keyword.other.documentation.javadoc.kotlin" + }, + "2": { + "name": "entity.name.type.class.kotlin" + } + } + }, + { + "match": "{(@link)\\s+(\\S+)?#([\\w$]+\\s*\\([^\\(\\)]*\\)).*}", + "captures": { + "1": { + "name": "keyword.other.documentation.javadoc.kotlin" + }, + "2": { + "name": "entity.name.type.class.kotlin" + }, + "3": { + "name": "variable.parameter.kotlin" + } + } + } + ] + } + ] + }, + "keywords": { + "patterns": [ + { + "include": "#prefix-modifiers" + }, + { + "include": "#postfix-modifiers" + }, + { + "include": "#soft-keywords" + }, + { + "include": "#hard-keywords" + }, + { + "include": "#control-keywords" + } + ] + }, + "prefix-modifiers": { + "match": "\\b(abstract|final|enum|open|annotation|sealed|data|override|final|lateinit|private|protected|public|internal|inner|companion|noinline|crossinline|vararg|reified|tailrec|operator|infix|inline|external|const|suspend|value)\\b", + "name": "storage.modifier.other.kotlin" + }, + "postfix-modifiers": { + "match": "\\b(where|by|get|set)\\b", + "name": "storage.modifier.other.kotlin" + }, + "soft-keywords": { + "match": "\\b(catch|finally|field)\\b", + "name": "keyword.soft.kotlin" + }, + "hard-keywords": { + "match": "\\b(as|typeof|is|in)\\b", + "name": "keyword.hard.kotlin" + }, + "control-keywords": { + "match": "\\b(if|else|while|do|when|try|throw|break|continue|return|for)\\b", + "name": "keyword.control.kotlin" + }, + "annotation-simple": { + "match": "(?<!\\w)@[\\w\\.]+\\b(?!:)", + "name": "entity.name.type.annotation.kotlin" + }, + "annotation-site-list": { + "begin": "(?<!\\w)(@\\w+):\\s*\\[", + "end": "\\]", + "beginCaptures": { + "1": { + "name": "entity.name.type.annotation-site.kotlin" + } + }, + "patterns": [ + { + "include": "#unescaped-annotation" + } + ] + }, + "annotation-site": { + "begin": "(?<!\\w)(@\\w+):\\s*(?!\\[)", + "end": "$", + "beginCaptures": { + "1": { + "name": "entity.name.type.annotation-site.kotlin" + } + }, + "patterns": [ + { + "include": "#unescaped-annotation" + } + ] + }, + "unescaped-annotation": { + "match": "\\b[\\w\\.]+\\b", + "name": "entity.name.type.annotation.kotlin" + }, + "class-declaration": { + "match": "\\b(class|interface)\\s+(\\b\\w+\\b|`[^`]+`)\\s*(?<GROUP><([^<>]|\\g<GROUP>)+>)?", + "captures": { + "1": { + "name": "storage.type.class.kotlin" + }, + "2": { + "name": "entity.name.type.class.kotlin" + }, + "3": { + "patterns": [ + { + "include": "#type-parameter" + } + ] + } + } + }, + "object-declaration": { + "match": "\\b(object)\\s+(\\b\\w+\\b|`[^`]+`)", + "captures": { + "1": { + "name": "storage.type.object.kotlin" + }, + "2": { + "name": "entity.name.type.object.kotlin" + } + } + }, + "type-alias": { + "match": "\\b(typealias)\\s+(\\b\\w+\\b|`[^`]+`)\\s*(?<GROUP><([^<>]|\\g<GROUP>)+>)?", + "captures": { + "1": { + "name": "storage.type.alias.kotlin" + }, + "2": { + "name": "entity.name.type.kotlin" + }, + "3": { + "patterns": [ + { + "include": "#type-parameter" + } + ] + } + } + }, + "function-declaration": { + "match": "\\b(fun)\\b\\s*(?<GROUP><([^<>]|\\g<GROUP>)+>)?\\s*(?:(\\w+)\\.)?(\\b\\w+\\b|`[^`]+`)", + "captures": { + "1": { + "name": "storage.type.function.kotlin" + }, + "2": { + "patterns": [ + { + "include": "#type-parameter" + } + ] + }, + "4": { + "name": "entity.name.type.class.extension.kotlin" + }, + "5": { + "name": "entity.name.function.declaration.kotlin" + } + } + }, + "variable-declaration": { + "match": "\\b(val|var)\\b\\s*(?<GROUP><([^<>]|\\g<GROUP>)+>)?", + "captures": { + "1": { + "name": "storage.type.variable.kotlin" + }, + "2": { + "patterns": [ + { + "include": "#type-parameter" + } + ] + } + } + }, + "type-parameter": { + "patterns": [ + { + "match": "\\b\\w+\\b", + "name": "entity.name.type.kotlin" + }, + { + "match": "\\b(in|out)\\b", + "name": "storage.modifier.kotlin" + } + ] + }, + "type-annotation": { + "match": "(?<![:?]):\\s*(\\w|\\?|\\s|->|(?<GROUP>[<(]([^<>()\"']|\\g<GROUP>)+[)>]))+", + "captures": { + "0": { + "patterns": [ + { + "include": "#type-parameter" + } + ] + } + } + }, + "function-call": { + "match": "\\??\\.?(\\b\\w+\\b|`[^`]+`)\\s*(?<GROUP><([^<>]|\\g<GROUP>)+>)?\\s*(?=[({])", + "captures": { + "1": { + "name": "entity.name.function.call.kotlin" + }, + "2": { + "patterns": [ + { + "include": "#type-parameter" + } + ] + } + } + }, + "method-reference": { + "match": "\\??::(\\b\\w+\\b|`[^`]+`)", + "captures": { + "1": { + "name": "entity.name.function.reference.kotlin" + } + } + }, + "key": { + "match": "\\b(\\w=)\\s*(=)", + "captures": { + "1": { + "name": "variable.parameter.kotlin" + }, + "2": { + "name": "keyword.operator.assignment.kotlin" + } + } + }, + "string-empty": { + "match": "(?<!\")\"\"(?!\")", + "name": "string.quoted.double.kotlin" + }, + "string": { + "begin": "(?<!\")\"(?!\")", + "end": "\"", + "name": "string.quoted.double.kotlin", + "patterns": [ + { + "match": "\\\\.", + "name": "constant.character.escape.kotlin" + }, + { + "include": "#string-escape-simple" + }, + { + "include": "#string-escape-bracketed" + } + ] + }, + "string-multiline": { + "begin": "\"\"\"", + "end": "\"\"\"", + "name": "string.quoted.double.kotlin", + "patterns": [ + { + "match": "\\\\.", + "name": "constant.character.escape.kotlin" + }, + { + "include": "#string-escape-simple" + }, + { + "include": "#string-escape-bracketed" + } + ] + }, + "string-escape-simple": { + "match": "(?<!\\\\)\\$\\w+\\b", + "name": "variable.string-escape.kotlin" + }, + "string-escape-bracketed": { + "begin": "(?<!\\\\)(\\$\\{)", + "end": "(\\})", + "name": "meta.template.expression.kotlin", + "beginCaptures": { + "1": { + "name": "punctuation.definition.template-expression.begin" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.template-expression.end" + } + }, + "patterns": [ + { + "include": "#code" + } + ] + }, + "character": { + "begin": "'", + "end": "'", + "name": "string.quoted.single.kotlin", + "patterns": [ + { + "match": "\\\\.", + "name": "constant.character.escape.kotlin" + } + ] + }, + "decimal-literal": { + "match": "\\b\\d[\\d_]*(\\.[\\d_]+)?((e|E)\\d+)?(u|U)?(L|F|f)?\\b", + "name": "constant.numeric.decimal.kotlin" + }, + "hex-literal": { + "match": "0(x|X)[A-Fa-f0-9][A-Fa-f0-9_]*(u|U)?", + "name": "constant.numeric.hex.kotlin" + }, + "binary-literal": { + "match": "0(b|B)[01][01_]*", + "name": "constant.numeric.binary.kotlin" + }, + "boolean-literal": { + "match": "\\b(true|false)\\b", + "name": "constant.language.boolean.kotlin" + }, + "null-literal": { + "match": "\\bnull\\b", + "name": "constant.language.null.kotlin" + }, + "lambda-arrow": { + "match": "->", + "name": "storage.type.function.arrow.kotlin" + }, + "operators": { + "patterns": [ + { + "match": "(===?|\\!==?|<=|>=|<|>)", + "name": "keyword.operator.comparison.kotlin" + }, + { + "match": "([+*/%-]=)", + "name": "keyword.operator.assignment.arithmetic.kotlin" + }, + { + "match": "(=)", + "name": "keyword.operator.assignment.kotlin" + }, + { + "match": "([+*/%-])", + "name": "keyword.operator.arithmetic.kotlin" + }, + { + "match": "(!|&&|\\|\\|)", + "name": "keyword.operator.logical.kotlin" + }, + { + "match": "(--|\\+\\+)", + "name": "keyword.operator.increment-decrement.kotlin" + }, + { + "match": "(\\.\\.)", + "name": "keyword.operator.range.kotlin" + } + ] + }, + "self-reference": { + "match": "\\b(this|super)(@\\w+)?\\b", + "name": "variable.language.this.kotlin" + } + } +} diff --git a/docs/shiki/languages/kusto.tmLanguage.json b/docs/shiki/languages/kusto.tmLanguage.json new file mode 100644 index 00000000..49126646 --- /dev/null +++ b/docs/shiki/languages/kusto.tmLanguage.json @@ -0,0 +1,684 @@ +{ + "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", + "scopeName": "source.kusto", + "fileTypes": ["csl", "kusto", "kql"], + "name": "kusto", + "patterns": [ + { + "match": "\\b(by|from|of|to|step|with)\\b", + "name": "keyword.other.operator.kusto", + "comment": "Tabular operators: common helper operators" + }, + { + "match": "\\b(let|set|alias|declare|pattern|query_parameters|restrict|access|set)\\b", + "name": "keyword.control.kusto", + "comment": "Query statements: https://docs.microsoft.com/en-us/azure/kusto/query/statements" + }, + { + "match": "\\b(and|or|has_all|has_any|matches|regex)\\b", + "name": "keyword.other.operator.kusto", + "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/datatypes-string-operators" + }, + { + "match": "\\b(cluster|database)(?:\\s*\\(\\s*(.+?)\\s*\\))?(?!\\w)", + "captures": { + "1": { + "name": "support.function.kusto" + }, + "2": { + "patterns": [ + { + "include": "#Strings" + } + ] + } + }, + "name": "meta.special.database.kusto", + "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/clusterfunction" + }, + { + "match": "\\b(external_table|materialized_view|materialize|table|toscalar)\\b", + "name": "support.function.kusto", + "comment": "Special functions: https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/tablefunction" + }, + { + "match": "(?<!\\w)(!?between)\\b", + "name": "keyword.other.operator.kusto", + "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/betweenoperator" + }, + { + "match": "\\b(binary_and|binary_or|binary_shift_left|binary_shift_right|binary_xor)(?:\\s*\\(\\s*(\\w+)\\s*,\\s*(\\w+)\\s*\\))?(?!\\w)", + "captures": { + "1": { + "name": "support.function.kusto" + }, + "2": { + "patterns": [ + { + "include": "#Numeric" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#Numeric" + } + ] + } + }, + "name": "meta.scalar.bitwise.kusto", + "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/binoperators" + }, + { + "match": "\\b(binary_not|bitset_count_ones)(?:\\s*\\(\\s*(\\w+)\\s*\\))?(?!\\w)", + "captures": { + "1": { + "name": "support.function.kusto" + }, + "2": { + "patterns": [ + { + "include": "#Numeric" + } + ] + } + }, + "name": "meta.scalar.bitwise.kusto", + "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/binary-notfunction" + }, + { + "match": "(?<!\\w)(!?in~?)(?!\\w)", + "name": "keyword.other.operator.kusto", + "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/in-cs-operator" + }, + { + "match": "(?<!\\w)(!?(?:contains|endswith|hasprefix|hassuffix|has|startswith)(?:_cs)?)(?!\\w)", + "name": "keyword.other.operator.kusto", + "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/datatypes-string-operators" + }, + { + "match": "\\b(range)\\s*\\((?:\\s*(\\w+(?:\\(.*?\\))?)\\s*,\\s*(\\w+(?:\\(.*?\\))?)\\s*,?(?:\\s*)?(\\w+(?:\\(.*?\\))?)?\\s*\\))?(?!\\w)", + "captures": { + "1": { + "name": "support.function.kusto" + }, + "2": { + "patterns": [ + { + "include": "#DateTimeTimeSpanDataTypes" + }, + { + "include": "#TimeSpanLiterals" + }, + { + "include": "#DateTimeTimeSpanFunctions" + }, + { + "include": "#Numeric" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#DateTimeTimeSpanDataTypes" + }, + { + "include": "#TimeSpanLiterals" + }, + { + "include": "#DateTimeTimeSpanFunctions" + }, + { + "include": "#Numeric" + } + ] + }, + "4": { + "patterns": [ + { + "include": "#DateTimeTimeSpanDataTypes" + }, + { + "include": "#TimeSpanLiterals" + }, + { + "include": "#DateTimeTimeSpanFunctions" + }, + { + "include": "#Numeric" + } + ] + } + }, + "name": "meta.scalar.function.range.kusto", + "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/rangefunction" + }, + { + "match": "\\b(abs|acos|around|array_concat|array_iff|array_index_of|array_length|array_reverse|array_rotate_left|array_rotate_right|array_shift_left|array_shift_right|array_slice|array_sort_asc|array_sort_desc|array_split|array_sum|asin|assert|atan2|atan|bag_has_key|bag_keys|bag_merge|bag_remove_keys|base64_decode_toarray|base64_decode_tostring|base64_decode_toguid|base64_encode_fromarray|base64_encode_tostring|base64_encode_fromguid|beta_cdf|beta_inv|beta_pdf|bin_at|bin_auto|case|ceiling|coalesce|column_ifexists|convert_angle|convert_energy|convert_force|convert_length|convert_mass|convert_speed|convert_temperature|convert_volume|cos|cot|countof|current_cluster_endpoint|current_database|current_principal_details|current_principal_is_member_of|current_principal|cursor_after|cursor_before_or_at|cursor_current|current_cursor|dcount_hll|degrees|dynamic_to_json|estimate_data_size|exp10|exp2|exp|extent_id|extent_tags|extract_all|extract_json|extractjson|extract|floor|format_bytes|format_ipv4_mask|format_ipv4|gamma|gettype|gzip_compress_to_base64_string|gzip_decompress_from_base64_string|has_any_index|has_any_ipv4_prefix|has_any_ipv4|has_ipv4_prefix|has_ipv4|hash_combine|hash_many|hash_md5|hash_sha1|hash_sha256|hash_xxhash64|hash|iff|iif|indexof_regex|indexof|ingestion_time|ipv4_compare|ipv4_is_in_range|ipv4_is_in_any_range|ipv4_is_match|ipv4_is_private|ipv4_netmask_suffix|ipv6_compare|ipv6_is_match|isascii|isempty|isfinite|isinf|isnan|isnotempty|notempty|isnotnull|notnull|isnull|isutf8|jaccard_index|log10|log2|loggamma|log|make_string|max_of|min_of|new_guid|not|bag_pack|pack_all|pack_array|pack_dictionary|pack|parse_command_line|parse_csv|parse_ipv4_mask|parse_ipv4|parse_ipv6_mask|parse_ipv6|parse_path|parse_urlquery|parse_url|parse_user_agent|parse_version|parse_xml|percentile_tdigest|percentile_array_tdigest|percentrank_tdigest|pi|pow|radians|rand|rank_tdigest|regex_quote|repeat|replace_regex|replace_string|reverse|round|set_difference|set_has_element|set_intersect|set_union|sign|sin|split|sqrt|strcat_array|strcat_delim|strcmp|strcat|string_size|strlen|strrep|substring|tan|to_utf8|tobool|todecimal|todouble|toreal|toguid|tohex|toint|tolong|tolower|tostring|toupper|translate|treepath|trim_end|trim_start|trim|unixtime_microseconds_todatetime|unixtime_milliseconds_todatetime|unixtime_nanoseconds_todatetime|unixtime_seconds_todatetime|url_decode|url_encode_component|url_encode|welch_test|zip|zlib_compress_to_base64_string|zlib_decompress_from_base64_string)\\b", + "name": "support.function.kusto", + "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/scalarfunctions" + }, + { + "match": "\\b(bin)(?:\\s*\\(\\s*(.+?)\\s*,\\s*(.+?)\\s*\\))?(?!\\w)", + "captures": { + "1": { + "name": "support.function.kusto" + }, + "2": { + "patterns": [ + { + "include": "#DateTimeTimeSpanDataTypes" + }, + { + "include": "#TimeSpanLiterals" + }, + { + "include": "#DateTimeTimeSpanFunctions" + }, + { + "include": "#Numeric" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#TimeSpanLiterals" + }, + { + "include": "#Numeric" + } + ] + } + }, + "name": "meta.scalar.function.bin.kusto", + "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/binfunction" + }, + { + "match": "\\b(count)\\s*\\(\\s*\\)(?!\\w)", + "name": "support.function.kusto", + "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/count-aggfunction" + }, + { + "match": "\\b(arg_max|arg_min|avgif|avg|binary_all_and|binary_all_or|binary_all_xor|buildschema|countif|dcount|dcountif|hll|hll_merge|make_bag_if|make_bag|make_list_with_nulls|make_list_if|make_list|make_set_if|make_set|maxif|max|minif|min|percentilesw_array|percentiles_array|percentilesw|percentilew|percentiles|percentile|stdevif|stdevp|stdev|sumif|sum|take_anyif|take_any|tdigest_merge|merge_tdigest|tdigest|varianceif|variancep|variance)\\b", + "name": "support.function.kusto", + "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/aggregation-functions" + }, + { + "match": "\\b(geo_distance_2points|geo_distance_point_to_line|geo_distance_point_to_polygon|geo_intersects_2lines|geo_intersects_2polygons|geo_intersects_line_with_polygon|geo_intersection_2lines|geo_intersection_2polygons|geo_intersection_line_with_polygon|geo_line_centroid|geo_line_densify|geo_line_length|geo_line_simplify|geo_polygon_area|geo_polygon_centroid|geo_polygon_densify|geo_polygon_perimeter|geo_polygon_simplify|geo_polygon_to_s2cells|geo_point_in_circle|geo_point_in_polygon|geo_point_to_geohash|geo_point_to_h3cell|geo_point_to_s2cell|geo_geohash_to_central_point|geo_geohash_neighbors|geo_geohash_to_polygon|geo_s2cell_to_central_point|geo_s2cell_neighbors|geo_s2cell_to_polygon|geo_h3cell_to_central_point|geo_h3cell_neighbors|geo_h3cell_to_polygon|geo_h3cell_parent|geo_h3cell_children|geo_h3cell_level|geo_h3cell_rings|geo_simplify_polygons_array|geo_union_lines_array|geo_union_polygons_array)\\b", + "name": "support.function.kusto", + "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/geospatial-grid-systems" + }, + { + "match": "\\b(next|prev|row_cumsum|row_number|row_rank|row_window_session)\\b", + "name": "support.function.kusto", + "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/windowsfunctions" + }, + { + "match": "\\.(create-or-alter|replace)", + "name": "keyword.control.kusto", + "comment": "User-defined functions: https://docs.microsoft.com/en-us/azure/kusto/query/functions/user-defined-functions" + }, + { + "match": "(?<=let ).+(?=\\W*=)", + "name": "entity.function.name.lambda.kusto", + "comment": "User-defined functions: https://docs.microsoft.com/en-us/azure/kusto/query/functions/user-defined-functions" + }, + { + "match": "\\b(folder|docstring|skipvalidation)\\b", + "name": "keyword.other.operator.kusto", + "comment": "User-defined functions: https://docs.microsoft.com/en-us/azure/kusto/query/functions/user-defined-functions" + }, + { + "match": "\\b(function)\\b", + "name": "storage.type.kusto" + }, + { + "match": "\\b(bool|decimal|dynamic|guid|int|long|real|string)\\b", + "name": "storage.type.kusto", + "comment": "Data types: https://docs.microsoft.com/en-us/azure/kusto/query/scalar-data-types" + }, + { + "match": "\\b(as)\\s+(\\w+)\\b", + "captures": { + "1": { + "name": "keyword.other.query.kusto" + }, + "2": { + "name": "variable.other.kusto" + } + }, + "name": "meta.query.as.kusto", + "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/asoperator" + }, + { + "match": "\\b(datatable)(?=\\W*\\()", + "name": "keyword.other.query.kusto", + "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/datatableoperator" + }, + { + "match": "\\b(facet)(?:\\s+(by))?\\b", + "captures": { + "1": { + "name": "keyword.other.query.kusto" + }, + "2": { + "name": "keyword.other.operator.kusto" + } + }, + "name": "meta.query.facet.kusto", + "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/facetoperator" + }, + { + "match": "\\b(invoke)(?:\\s+(\\w+))?\\b", + "captures": { + "1": { + "name": "keyword.other.query.kusto" + }, + "2": { + "name": "entity.name.function.kusto" + } + }, + "name": "meta.query.invoke.kusto", + "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/invokeoperator" + }, + { + "match": "\\b(order)(?:\\s+(by)\\s+(\\w+))?\\b", + "captures": { + "1": { + "name": "keyword.other.query.kusto" + }, + "2": { + "name": "keyword.other.operator.kusto" + }, + "3": { + "name": "variable.other.column.kusto" + } + }, + "name": "meta.query.order.kusto", + "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/orderoperator" + }, + { + "match": "\\b(range)\\s+(\\w+)\\s+(from)\\s+(\\w+(?:\\(\\w*\\))?)\\s+(to)\\s+(\\w+(?:\\(\\w*\\))?)\\s+(step)\\s+(\\w+(?:\\(\\w*\\))?)\\b", + "captures": { + "1": { + "name": "keyword.other.query.kusto" + }, + "2": { + "name": "variable.other.column.kusto" + }, + "3": { + "name": "keyword.other.operator.kusto" + }, + "4": { + "patterns": [ + { + "include": "#TimeSpanLiterals" + }, + { + "include": "#DateTimeTimeSpanFunctions" + }, + { + "include": "#Numeric" + } + ] + }, + "5": { + "name": "keyword.other.operator.kusto" + }, + "6": { + "patterns": [ + { + "include": "#TimeSpanLiterals" + }, + { + "include": "#DateTimeTimeSpanFunctions" + }, + { + "include": "#Numeric" + } + ] + }, + "7": { + "name": "keyword.other.operator.kusto" + }, + "8": { + "patterns": [ + { + "include": "#TimeSpanLiterals" + }, + { + "include": "#DateTimeTimeSpanFunctions" + }, + { + "include": "#Numeric" + } + ] + } + }, + "name": "meta.query.range.kusto", + "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/rangeoperator" + }, + { + "match": "\\b(sample)(?:\\s+(\\d+))?(?![\\w-])", + "captures": { + "1": { + "name": "keyword.other.query.kusto" + }, + "2": { + "patterns": [ + { + "include": "#Numeric" + } + ] + } + }, + "name": "meta.query.sample.kusto", + "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/sampleoperator" + }, + { + "match": "\\b(sample-distinct)(?:\\s+(\\d+)\\s+(of)\\s+(\\w+))?\\b", + "captures": { + "1": { + "name": "keyword.other.query.kusto" + }, + "2": { + "patterns": [ + { + "include": "#Numeric" + } + ] + }, + "3": { + "name": "keyword.other.operator.kusto" + }, + "4": { + "name": "variable.other.column.kusto" + } + }, + "name": "meta.query.sample-distinct.kusto", + "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/sampledistinctoperator" + }, + { + "match": "\\b(sort)(?:\\s+(by))?\\b", + "captures": { + "1": { + "name": "keyword.other.query.kusto" + }, + "2": { + "name": "keyword.other.operator.kusto" + } + }, + "name": "meta.query.sort.kusto", + "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/sortoperator" + }, + { + "match": "\\b(take|limit)(?:\\s+(\\d+))\\b", + "captures": { + "1": { + "name": "keyword.other.query.kusto" + }, + "2": { + "patterns": [ + { + "include": "#Numeric" + } + ] + } + }, + "name": "meta.query.take.kusto", + "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/takeoperator" + }, + { + "match": "\\b(top)(?:\\s+(\\d+)\\s+(by)\\s+(\\w+))?(?![\\w-])\\b", + "captures": { + "1": { + "name": "keyword.other.query.kusto" + }, + "2": { + "patterns": [ + { + "include": "#Numeric" + } + ] + }, + "3": { + "name": "keyword.other.operator.kusto" + }, + "4": { + "name": "variable.other.column.kusto" + } + }, + "name": "meta.query.top.kusto", + "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/topoperator" + }, + { + "match": "\\b(top-hitters)(?:\\s+(\\d+)\\s+(of)\\s+(\\w+)(?:\\s+(by)\\s+(\\w+))?)?\\b", + "captures": { + "1": { + "name": "keyword.other.query.kusto" + }, + "2": { + "patterns": [ + { + "include": "#Numeric" + } + ] + }, + "3": { + "name": "keyword.other.operator.kusto" + }, + "4": { + "name": "variable.other.column.kusto" + }, + "5": { + "name": "keyword.other.operator.kusto" + }, + "6": { + "name": "variable.other.column.kusto" + } + }, + "name": "meta.query.top-hitters.kusto", + "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/tophittersoperator" + }, + { + "match": "\\b(consume|count|distinct|evaluate|extend|externaldata|find|fork|getschema|join|lookup|make-series|mv-apply|mv-expand|project-away|project-keep|project-rename|project-reorder|project|parse|parse-where|parse-kv|partition|print|reduce|render|scan|search|serialize|shuffle|summarize|top-nested|union|where)\\b", + "name": "keyword.other.query.kusto", + "comment": "Tabular operators: https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/queries" + }, + { + "match": "\\b(active_users_count|activity_counts_metrics|activity_engagement|new_activity_metrics|activity_metrics|autocluster|azure_digital_twins_query_request|bag_unpack|basket|cosmosdb_sql_request|dcount_intersect|diffpatterns|funnel_sequence_completion|funnel_sequence|http_request_post|http_request|infer_storage_schema|ipv4_lookup|mysql_request|narrow|pivot|preview|rolling_percentile|rows_near|schema_merge|session_count|sequence_detect|sliding_window_counts|sql_request)\\b", + "name": "support.function.kusto", + "comment": "Tabular operators: evalute (plugins): https://docs.microsoft.com/en-us/azure/kusto/query/evaluateoperator" + }, + { + "match": "\\b(on|kind|hint\\.remote|hint\\.strategy)\\b", + "name": "keyword.other.operator.kusto", + "comment": "Tabular operators: join: https://docs.microsoft.com/en-us/azure/kusto/query/joinoperator" + }, + { + "match": "(\\$left|\\$right)\\b", + "name": "keyword.other.kusto", + "comment": "Tabular operators: join ($left, $right): https://docs.microsoft.com/en-us/azure/kusto/query/joinoperator" + }, + { + "match": "\\b(innerunique|inner|leftouter|rightouter|fullouter|leftanti|anti|leftantisemi|rightanti|rightantisemi|leftsemi|rightsemi|broadcast)\\b", + "name": "keyword.other.kusto", + "comment": "Tabular operators: join (kinds, strategies): https://docs.microsoft.com/en-us/azure/kusto/query/joinoperator" + }, + { + "match": "\\b(series_abs|series_acos|series_add|series_asin|series_atan|series_cos|series_decompose|series_decompose_anomalies|series_decompose_forecast|series_divide|series_equals|series_exp|series_fft|series_fill_backward|series_fill_const|series_fill_forward|series_fill_linear|series_fir|series_fit_2lines_dynamic|series_fit_2lines|series_fit_line_dynamic|series_fit_line|series_fit_poly|series_greater_equals|series_greater|series_ifft|series_iir|series_less_equals|series_less|series_multiply|series_not_equals|series_outliers|series_pearson_correlation|series_periods_detect|series_periods_validate|series_pow|series_seasonal|series_sign|series_sin|series_stats|series_stats_dynamic|series_subtract|series_tan)\\b", + "name": "support.function.kusto", + "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/machine-learning-and-tsa" + }, + { + "match": "\\b(bag|array)\\b", + "name": "keyword.other.operator.kusto", + "comment": "Tabular operators: mv-expand (bagexpand options): https://docs.microsoft.com/en-us/azure/kusto/query/mvexpandoperator" + }, + { + "match": "\\b(asc|desc|nulls first|nulls last)\\b", + "name": "keyword.other.kusto", + "comment": "Tabular operators: order: https://docs.microsoft.com/en-us/azure/kusto/query/orderoperator" + }, + { + "match": "\\b(regex|simple|relaxed)\\b", + "name": "keyword.other.kusto", + "comment": "Tabular operators: parse: https://docs.microsoft.com/en-us/azure/kusto/query/parseoperator" + }, + { + "match": "\\b(anomalychart|areachart|barchart|card|columnchart|ladderchart|linechart|piechart|pivotchart|scatterchart|stackedareachart|timechart|timepivot)\\b", + "name": "support.function.kusto" + }, + { + "include": "#Strings" + }, + { + "match": "\\{.*?\\}", + "name": "string.other.kusto" + }, + { + "match": "//.*", + "name": "comment.line.kusto", + "comment": "Comments" + }, + { + "include": "#TimeSpanLiterals" + }, + { + "include": "#DateTimeTimeSpanFunctions" + }, + { + "include": "#DateTimeTimeSpanDataTypes" + }, + { + "include": "#Numeric" + }, + { + "match": "\\b(true|false|null)\\b", + "name": "constant.language.kusto" + }, + { + "match": "\\b(anyif|any|array_strcat|base64_decodestring|base64_encodestring|make_dictionary|makelist|makeset|mvexpand|todynamic|parse_json|replace|weekofyear)(?=\\W*\\(|\\b)", + "name": "invalid.deprecated.kusto", + "comment": "Deprecated functions" + } + ], + "repository": { + "Strings": { + "patterns": [ + { + "begin": "([@h]?\")", + "beginCaptures": { + "1": { + "name": "punctuation.definition.string.kusto" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.kusto" + } + }, + "patterns": [ + { + "include": "#Escapes" + } + ], + "name": "string.quoted.double.kusto", + "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/scalar-data-types/string" + }, + { + "begin": "([@h]?')", + "beginCaptures": { + "1": { + "name": "punctuation.definition.string.kusto" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.kusto" + } + }, + "patterns": [ + { + "include": "#Escapes" + } + ], + "name": "string.quoted.single.kusto", + "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/scalar-data-types/string" + } + ] + }, + "Escapes": { + "patterns": [ + { + "match": "\\\\['\"]", + "name": "constant.character.escape.kusto" + } + ] + }, + "Numeric": { + "patterns": [ + { + "match": "\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*+)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?(?=\\b|\\w)", + "name": "constant.numeric.kusto" + } + ] + }, + "TimeSpanLiterals": { + "patterns": [ + { + "match": "[+-]?(?:\\d*\\.)?\\d+(?:microseconds?|ticks?|seconds?|ms|d|h|m|s)\\b", + "name": "constant.numeric.kusto", + "comment": "timespan literals: https://docs.microsoft.com/en-us/azure/kusto/query/scalar-data-types/timespan#timespan-literals" + } + ] + }, + "DateTimeTimeSpanFunctions": { + "patterns": [ + { + "match": "\\b(format_datetime)(?:\\s*\\(\\s*(.+?)\\s*,\\s*(['\"].*?['\"])\\s*\\))?(?!\\w)", + "captures": { + "1": { + "name": "support.function.kusto" + }, + "2": { + "patterns": [ + { + "include": "#DateTimeTimeSpanDataTypes" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#Strings" + } + ] + } + }, + "name": "meta.scalar.function.format_datetime.kusto", + "comment": "https://learn.microsoft.com/en-us/azure/data-explorer/kusto/query/format-datetimefunction" + }, + { + "match": "\\b(ago|datetime_add|datetime_diff|datetime_local_to_utc|datetime_part|datetime_utc_to_local|dayofmonth|dayofweek|dayofyear|endofday|endofmonth|endofweek|endofyear|format_timespan|getmonth|getyear|hourofday|make_datetime|make_timespan|monthofyear|now|startofday|startofmonth|startofweek|startofyear|todatetime|totimespan|week_of_year)(?=\\W*\\()", + "name": "support.function.kusto", + "comment": "Scalar function: DateTime/Timespan Functions: https://docs.microsoft.com/en-us/azure/kusto/query/scalarfunctions#datetimetimespan-functions" + } + ] + }, + "DateTimeTimeSpanDataTypes": { + "patterns": [ + { + "match": "\\b(datetime|timespan|time)\\b", + "name": "storage.type.kusto" + } + ] + } + }, + "uuid": "FF0550E0-3A29-11E3-AA6E-0800200C9B77" +} diff --git a/docs/shiki/languages/latex.tmLanguage.json b/docs/shiki/languages/latex.tmLanguage.json new file mode 100644 index 00000000..7a525cda --- /dev/null +++ b/docs/shiki/languages/latex.tmLanguage.json @@ -0,0 +1,2380 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/jlelong/vscode-latex-basics/blob/master/syntaxes/LaTeX.tmLanguage.json", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/jlelong/vscode-latex-basics/commit/221a2443a5e8ac029685a0f872af39b23cc2b634", + "name": "latex", + "scopeName": "text.tex.latex", + "patterns": [ + { + "comment": "This scope identifies partially typed commands such as `\\tab`. We use this to trigger “Command Completion” only when it makes sense.", + "match": "(?<=\\\\[\\w@]|\\\\[\\w@]{2}|\\\\[\\w@]{3}|\\\\[\\w@]{4}|\\\\[\\w@]{5}|\\\\[\\w@]{6})\\s", + "name": "meta.space-after-command.latex" + }, + { + "begin": "((\\\\)(?:usepackage|documentclass))\\b(?=\\[|\\{)", + "beginCaptures": { + "1": { + "name": "keyword.control.preamble.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + } + }, + "end": "(?<=\\})", + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "name": "meta.preamble.latex", + "patterns": [ + { + "include": "#multiline-optional-arg" + }, + { + "begin": "((?:\\G|(?<=\\]))\\{)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.arguments.begin.latex" + } + }, + "end": "(\\})", + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "contentName": "support.class.latex", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + { + "begin": "((\\\\)(?:include|input))(\\{)", + "beginCaptures": { + "1": { + "name": "keyword.control.include.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.begin.latex" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "name": "meta.include.latex", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "begin": "((\\\\)((?:sub){0,2}section|(?:sub)?paragraph|chapter|part|addpart|addchap|addsec|minisec|frametitle)(?:\\*)?)((?:\\[[^\\[]*?\\]){0,2})(\\{)", + "beginCaptures": { + "1": { + "name": "support.function.section.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "4": { + "patterns": [ + { + "include": "#optional-arg" + } + ] + }, + "5": { + "name": "punctuation.definition.arguments.begin.latex" + } + }, + "comment": "this works OK with all kinds of crazy stuff as long as section is one line", + "contentName": "entity.name.section.latex", + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "name": "meta.function.section.$3.latex", + "patterns": [ + { + "include": "text.tex#braces" + }, + { + "include": "$base" + } + ] + }, + { + "name": "meta.function.environment.songs.latex", + "begin": "((?:\\s*)\\\\begin\\{songs\\}\\{.*\\})", + "end": "(\\\\end\\{songs\\}(?:\\s*\\n)?)", + "captures": { + "1": { + "patterns": [ + { + "include": "#begin-env-tokenizer" + } + ] + } + }, + "contentName": "meta.data.environment.songs.latex", + "patterns": [ + { + "name": "meta.chord.block.latex support.class.chord.block.environment.latex", + "begin": "\\\\\\[", + "end": "\\]", + "patterns": [ + { + "include": "$base" + } + ] + }, + { + "name": "meta.chord.block.latex support.class.chord.block.environment.latex", + "match": "\\^" + }, + { + "include": "$self" + } + ] + }, + { + "begin": "(^\\s*)?\\\\begin\\{(lstlisting|minted|pyglist)\\}(?=\\[|\\{)", + "end": "\\\\end\\{(?:minted|lstlisting|pyglist)\\}", + "captures": { + "0": { + "patterns": [ + { + "include": "#begin-env-tokenizer" + } + ] + } + }, + "patterns": [ + { + "include": "#multiline-optional-arg-no-highlight" + }, + { + "begin": "(?:\\G|(?<=\\]))(\\{)((?:c|cpp))(\\})", + "beginCaptures": { + "1": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "2": { + "name": "variable.parameter.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})", + "contentName": "source.cpp.embedded.latex", + "patterns": [ + { + "include": "source.cpp.embedded.latex" + } + ] + }, + { + "begin": "(?:\\G|(?<=\\]))(\\{)((?:asy|asymptote))(\\})", + "beginCaptures": { + "1": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "2": { + "name": "variable.parameter.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})", + "contentName": "source.asy", + "patterns": [ + { + "include": "source.asy" + } + ] + }, + { + "begin": "(?:\\G|(?<=\\]))(\\{)((?:css))(\\})", + "beginCaptures": { + "1": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "2": { + "name": "variable.parameter.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})", + "contentName": "source.css", + "patterns": [ + { + "include": "source.css" + } + ] + }, + { + "begin": "(?:\\G|(?<=\\]))(\\{)((?:hs|haskell))(\\})", + "beginCaptures": { + "1": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "2": { + "name": "variable.parameter.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})", + "contentName": "source.haskell", + "patterns": [ + { + "include": "source.haskell" + } + ] + }, + { + "begin": "(?:\\G|(?<=\\]))(\\{)((?:html))(\\})", + "beginCaptures": { + "1": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "2": { + "name": "variable.parameter.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})", + "contentName": "text.html", + "patterns": [ + { + "include": "text.html.basic" + } + ] + }, + { + "begin": "(?:\\G|(?<=\\]))(\\{)((?:xml))(\\})", + "beginCaptures": { + "1": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "2": { + "name": "variable.parameter.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})", + "contentName": "text.xml", + "patterns": [ + { + "include": "text.xml" + } + ] + }, + { + "begin": "(?:\\G|(?<=\\]))(\\{)((?:java))(\\})", + "beginCaptures": { + "1": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "2": { + "name": "variable.parameter.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})", + "contentName": "source.java", + "patterns": [ + { + "include": "source.java" + } + ] + }, + { + "begin": "(?:\\G|(?<=\\]))(\\{)((?:lua))(\\})", + "beginCaptures": { + "1": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "2": { + "name": "variable.parameter.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})", + "contentName": "source.lua", + "patterns": [ + { + "include": "source.lua" + } + ] + }, + { + "begin": "(?:\\G|(?<=\\]))(\\{)((?:jl|julia))(\\})", + "beginCaptures": { + "1": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "2": { + "name": "variable.parameter.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})", + "contentName": "source.julia", + "patterns": [ + { + "include": "source.julia" + } + ] + }, + { + "begin": "(?:\\G|(?<=\\]))(\\{)((?:rb|ruby))(\\})", + "beginCaptures": { + "1": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "2": { + "name": "variable.parameter.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})", + "contentName": "source.ruby", + "patterns": [ + { + "include": "source.ruby" + } + ] + }, + { + "begin": "(?:\\G|(?<=\\]))(\\{)((?:js|javascript))(\\})", + "beginCaptures": { + "1": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "2": { + "name": "variable.parameter.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})", + "contentName": "source.js", + "patterns": [ + { + "include": "source.js" + } + ] + }, + { + "begin": "(?:\\G|(?<=\\]))(\\{)((?:ts|typescript))(\\})", + "beginCaptures": { + "1": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "2": { + "name": "variable.parameter.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})", + "contentName": "source.ts", + "patterns": [ + { + "include": "source.ts" + } + ] + }, + { + "begin": "(?:\\G|(?<=\\]))(\\{)((?:py|python))(\\})", + "beginCaptures": { + "1": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "2": { + "name": "variable.parameter.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})", + "contentName": "source.python", + "patterns": [ + { + "include": "source.python" + } + ] + }, + { + "begin": "(?:\\G|(?<=\\]))(\\{)((?:yaml))(\\})", + "beginCaptures": { + "1": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "2": { + "name": "variable.parameter.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})", + "contentName": "source.yaml", + "patterns": [ + { + "include": "source.yaml" + } + ] + }, + { + "begin": "(?:\\G|(?<=\\]))(\\{)((?:rust))(\\})", + "beginCaptures": { + "1": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "2": { + "name": "variable.parameter.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})", + "contentName": "source.rust", + "patterns": [ + { + "include": "source.rust" + } + ] + }, + { + "begin": "(?:\\G|(?<=\\]))(\\{)([a-zA-Z]*)(\\})", + "beginCaptures": { + "1": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "2": { + "name": "variable.parameter.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "contentName": "meta.function.embedded.latex", + "end": "^\\s*(?=\\\\end\\{(?:lstlisting|minted|pyglist)\\})", + "name": "meta.embedded.block.generic.latex" + } + ] + }, + { + "begin": "\\s*\\\\begin\\{(?:cppcode)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)", + "end": "\\s*\\\\end\\{(?:cppcode)\\*?\\}", + "captures": { + "0": { + "patterns": [ + { + "include": "#begin-env-tokenizer" + } + ] + } + }, + "patterns": [ + { + "include": "#multiline-optional-arg-no-highlight" + }, + { + "begin": "(?:\\G|(?<=\\]))(\\{)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.arguments.begin.latex" + } + }, + "end": "(\\})", + "endCaptures": { + "1": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "contentName": "variable.parameter.function.latex" + }, + { + "begin": "^(?=\\s*)", + "end": "^\\s*(?=\\\\end\\{(?:cppcode)\\*?\\})", + "contentName": "source.cpp.embedded.latex", + "patterns": [ + { + "include": "source.cpp.embedded.latex" + } + ] + } + ] + }, + { + "begin": "\\s*\\\\begin\\{(?:hscode)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)", + "end": "\\s*\\\\end\\{(?:hscode)\\*?\\}", + "captures": { + "0": { + "patterns": [ + { + "include": "#begin-env-tokenizer" + } + ] + } + }, + "patterns": [ + { + "include": "#multiline-optional-arg-no-highlight" + }, + { + "begin": "(?:\\G|(?<=\\]))(\\{)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.arguments.begin.latex" + } + }, + "end": "(\\})", + "endCaptures": { + "1": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "contentName": "variable.parameter.function.latex" + }, + { + "begin": "^(?=\\s*)", + "end": "^\\s*(?=\\\\end\\{(?:hscode)\\*?\\})", + "contentName": "source.haskell", + "patterns": [ + { + "include": "source.haskell" + } + ] + } + ] + }, + { + "begin": "\\s*\\\\begin\\{(?:luacode)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)", + "end": "\\s*\\\\end\\{(?:luacode)\\*?\\}", + "captures": { + "0": { + "patterns": [ + { + "include": "#begin-env-tokenizer" + } + ] + } + }, + "patterns": [ + { + "include": "#multiline-optional-arg-no-highlight" + }, + { + "begin": "(?:\\G|(?<=\\]))(\\{)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.arguments.begin.latex" + } + }, + "end": "(\\})", + "endCaptures": { + "1": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "contentName": "variable.parameter.function.latex" + }, + { + "begin": "^(?=\\s*)", + "end": "^\\s*(?=\\\\end\\{(?:luacode)\\*?\\})", + "contentName": "source.lua", + "patterns": [ + { + "include": "source.lua" + } + ] + } + ] + }, + { + "begin": "\\s*\\\\begin\\{(?:jlcode|jlverbatim|jlblock|jlconcode|jlconsole|jlconverbatim)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)", + "end": "\\s*\\\\end\\{(?:jlcode|jlverbatim|jlblock|jlconcode|jlconsole|jlconverbatim)\\*?\\}", + "captures": { + "0": { + "patterns": [ + { + "include": "#begin-env-tokenizer" + } + ] + } + }, + "patterns": [ + { + "include": "#multiline-optional-arg-no-highlight" + }, + { + "begin": "(?:\\G|(?<=\\]))(\\{)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.arguments.begin.latex" + } + }, + "end": "(\\})", + "endCaptures": { + "1": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "contentName": "variable.parameter.function.latex" + }, + { + "begin": "^(?=\\s*)", + "end": "^\\s*(?=\\\\end\\{(?:jlcode|jlverbatim|jlblock|jlconcode|jlconsole|jlconverbatim)\\*?\\})", + "contentName": "source.julia", + "patterns": [ + { + "include": "source.julia" + } + ] + } + ] + }, + { + "begin": "\\s*\\\\begin\\{(?:juliacode|juliaverbatim|juliablock|juliaconcode|juliaconsole|juliaconverbatim)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)", + "end": "\\s*\\\\end\\{(?:juliacode|juliaverbatim|juliablock|juliaconcode|juliaconsole|juliaconverbatim)\\*?\\}", + "captures": { + "0": { + "patterns": [ + { + "include": "#begin-env-tokenizer" + } + ] + } + }, + "patterns": [ + { + "include": "#multiline-optional-arg-no-highlight" + }, + { + "begin": "(?:\\G|(?<=\\]))(\\{)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.arguments.begin.latex" + } + }, + "end": "(\\})", + "endCaptures": { + "1": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "contentName": "variable.parameter.function.latex" + }, + { + "begin": "^(?=\\s*)", + "end": "^\\s*(?=\\\\end\\{(?:juliacode|juliaverbatim|juliablock|juliaconcode|juliaconsole|juliaconverbatim)\\*?\\})", + "contentName": "source.julia", + "patterns": [ + { + "include": "source.julia" + } + ] + } + ] + }, + { + "begin": "\\s*\\\\begin\\{(?:sageblock|sagesilent|sageverbatim|sageexample|sagecommandline|python|pythonq|pythonrepl)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)", + "end": "\\s*\\\\end\\{(?:sageblock|sagesilent|sageverbatim|sageexample|sagecommandline|python|pythonq|pythonrepl)\\*?\\}", + "captures": { + "0": { + "patterns": [ + { + "include": "#begin-env-tokenizer" + } + ] + } + }, + "patterns": [ + { + "include": "#multiline-optional-arg-no-highlight" + }, + { + "begin": "(?:\\G|(?<=\\]))(\\{)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.arguments.begin.latex" + } + }, + "end": "(\\})", + "endCaptures": { + "1": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "contentName": "variable.parameter.function.latex" + }, + { + "begin": "^(?=\\s*)", + "end": "^\\s*(?=\\\\end\\{(?:sageblock|sagesilent|sageverbatim|sageexample|sagecommandline|python|pythonq|pythonrepl)\\*?\\})", + "contentName": "source.python", + "patterns": [ + { + "include": "source.python" + } + ] + } + ] + }, + { + "begin": "\\s*\\\\begin\\{(?:pycode|pyverbatim|pyblock|pyconcode|pyconsole|pyconverbatim)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)", + "end": "\\s*\\\\end\\{(?:pycode|pyverbatim|pyblock|pyconcode|pyconsole|pyconverbatim)\\*?\\}", + "captures": { + "0": { + "patterns": [ + { + "include": "#begin-env-tokenizer" + } + ] + } + }, + "patterns": [ + { + "include": "#multiline-optional-arg-no-highlight" + }, + { + "begin": "(?:\\G|(?<=\\]))(\\{)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.arguments.begin.latex" + } + }, + "end": "(\\})", + "endCaptures": { + "1": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "contentName": "variable.parameter.function.latex" + }, + { + "begin": "^(?=\\s*)", + "end": "^\\s*(?=\\\\end\\{(?:pycode|pyverbatim|pyblock|pyconcode|pyconsole|pyconverbatim)\\*?\\})", + "contentName": "source.python", + "patterns": [ + { + "include": "source.python" + } + ] + } + ] + }, + { + "begin": "\\s*\\\\begin\\{(?:pylabcode|pylabverbatim|pylabblock|pylabconcode|pylabconsole|pylabconverbatim)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)", + "end": "\\s*\\\\end\\{(?:pylabcode|pylabverbatim|pylabblock|pylabconcode|pylabconsole|pylabconverbatim)\\*?\\}", + "captures": { + "0": { + "patterns": [ + { + "include": "#begin-env-tokenizer" + } + ] + } + }, + "patterns": [ + { + "include": "#multiline-optional-arg-no-highlight" + }, + { + "begin": "(?:\\G|(?<=\\]))(\\{)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.arguments.begin.latex" + } + }, + "end": "(\\})", + "endCaptures": { + "1": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "contentName": "variable.parameter.function.latex" + }, + { + "begin": "^(?=\\s*)", + "end": "^\\s*(?=\\\\end\\{(?:pylabcode|pylabverbatim|pylabblock|pylabconcode|pylabconsole|pylabconverbatim)\\*?\\})", + "contentName": "source.python", + "patterns": [ + { + "include": "source.python" + } + ] + } + ] + }, + { + "begin": "\\s*\\\\begin\\{(?:sympycode|sympyverbatim|sympyblock|sympyconcode|sympyconsole|sympyconverbatim)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)", + "end": "\\s*\\\\end\\{(?:sympycode|sympyverbatim|sympyblock|sympyconcode|sympyconsole|sympyconverbatim)\\*?\\}", + "captures": { + "0": { + "patterns": [ + { + "include": "#begin-env-tokenizer" + } + ] + } + }, + "patterns": [ + { + "include": "#multiline-optional-arg-no-highlight" + }, + { + "begin": "(?:\\G|(?<=\\]))(\\{)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.arguments.begin.latex" + } + }, + "end": "(\\})", + "endCaptures": { + "1": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "contentName": "variable.parameter.function.latex" + }, + { + "begin": "^(?=\\s*)", + "end": "^\\s*(?=\\\\end\\{(?:sympycode|sympyverbatim|sympyblock|sympyconcode|sympyconsole|sympyconverbatim)\\*?\\})", + "contentName": "source.python", + "patterns": [ + { + "include": "source.python" + } + ] + } + ] + }, + { + "begin": "\\s*\\\\begin\\{(?:scalacode)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)", + "end": "\\s*\\\\end\\{(?:scalacode)\\*?\\}", + "captures": { + "0": { + "patterns": [ + { + "include": "#begin-env-tokenizer" + } + ] + } + }, + "patterns": [ + { + "include": "#multiline-optional-arg-no-highlight" + }, + { + "begin": "(?:\\G|(?<=\\]))(\\{)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.arguments.begin.latex" + } + }, + "end": "(\\})", + "endCaptures": { + "1": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "contentName": "variable.parameter.function.latex" + }, + { + "begin": "^(?=\\s*)", + "end": "^\\s*(?=\\\\end\\{(?:scalacode)\\*?\\})", + "contentName": "source.scala", + "patterns": [ + { + "include": "source.scala" + } + ] + } + ] + }, + { + "begin": "\\s*\\\\begin\\{(?:asy|asycode)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)", + "end": "\\s*\\\\end\\{(?:asy|asycode)\\*?\\}", + "captures": { + "0": { + "patterns": [ + { + "include": "#begin-env-tokenizer" + } + ] + } + }, + "patterns": [ + { + "include": "#multiline-optional-arg-no-highlight" + }, + { + "begin": "(?:\\G|(?<=\\]))(\\{)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.arguments.begin.latex" + } + }, + "end": "(\\})", + "endCaptures": { + "1": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "contentName": "variable.parameter.function.latex" + }, + { + "begin": "^(?=\\s*)", + "end": "^\\s*(?=\\\\end\\{(?:asy|asycode)\\*?\\})", + "contentName": "source.asymptote", + "patterns": [ + { + "include": "source.asymptote" + } + ] + } + ] + }, + { + "begin": "\\s*\\\\begin\\{(?:dot2tex|dotcode)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)", + "end": "\\s*\\\\end\\{(?:dot2tex|dotcode)\\*?\\}", + "captures": { + "0": { + "patterns": [ + { + "include": "#begin-env-tokenizer" + } + ] + } + }, + "patterns": [ + { + "include": "#multiline-optional-arg-no-highlight" + }, + { + "begin": "(?:\\G|(?<=\\]))(\\{)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.arguments.begin.latex" + } + }, + "end": "(\\})", + "endCaptures": { + "1": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "contentName": "variable.parameter.function.latex" + }, + { + "begin": "^(?=\\s*)", + "end": "^\\s*(?=\\\\end\\{(?:dot2tex|dotcode)\\*?\\})", + "contentName": "source.dot", + "patterns": [ + { + "include": "source.dot" + } + ] + } + ] + }, + { + "begin": "\\s*\\\\begin\\{(?:gnuplot)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)", + "end": "\\s*\\\\end\\{(?:gnuplot)\\*?\\}", + "captures": { + "0": { + "patterns": [ + { + "include": "#begin-env-tokenizer" + } + ] + } + }, + "patterns": [ + { + "include": "#multiline-optional-arg-no-highlight" + }, + { + "begin": "(?:\\G|(?<=\\]))(\\{)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.arguments.begin.latex" + } + }, + "end": "(\\})", + "endCaptures": { + "1": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "contentName": "variable.parameter.function.latex" + }, + { + "begin": "^(?=\\s*)", + "end": "^\\s*(?=\\\\end\\{(?:gnuplot)\\*?\\})", + "contentName": "source.gnuplot", + "patterns": [ + { + "include": "source.gnuplot" + } + ] + } + ] + }, + { + "begin": "((?:\\s*)\\\\begin\\{([a-zA-Z]*code|lstlisting|minted|pyglist)(?:\\*)?\\}(?:\\[.*\\])?(?:\\{.*\\})?)", + "captures": { + "1": { + "patterns": [ + { + "include": "#begin-env-tokenizer" + } + ] + } + }, + "end": "(\\\\end\\{\\2\\}(?:\\s*\\n)?)", + "contentName": "meta.function.embedded.latex", + "name": "meta.embedded.block.generic.latex" + }, + { + "begin": "((\\\\)addplot)(?:\\+?)((?:\\[[^\\[]*\\]))*\\s*(gnuplot)\\s*((?:\\[[^\\[]*\\]))*\\s*(\\{)", + "captures": { + "1": { + "name": "support.function.be.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "patterns": [ + { + "include": "#optional-arg" + } + ] + }, + "4": { + "name": "variable.parameter.function.latex" + }, + "5": { + "patterns": [ + { + "include": "#optional-arg" + } + ] + }, + "6": { + "name": "punctuation.definition.arguments.begin.latex" + } + }, + "patterns": [ + { + "begin": "%", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.latex" + } + }, + "end": "$\\n?", + "name": "comment.line.percentage.latex" + }, + { + "include": "source.gnuplot" + } + ], + "end": "\\s*(\\};)" + }, + { + "begin": "(\\s*\\\\begin\\{((?:fboxv|boxedv|V|v|spv)erbatim\\*?)\\})", + "captures": { + "1": { + "patterns": [ + { + "include": "#begin-env-tokenizer" + } + ] + } + }, + "contentName": "markup.raw.verbatim.latex", + "end": "(\\\\end\\{\\2\\})", + "name": "meta.function.verbatim.latex" + }, + { + "begin": "(\\s*\\\\begin\\{VerbatimOut\\}\\{[^\\}]*\\})", + "captures": { + "1": { + "patterns": [ + { + "include": "#begin-env-tokenizer" + } + ] + } + }, + "contentName": "markup.raw.verbatim.latex", + "end": "(\\\\end\\{\\VerbatimOut\\})", + "name": "meta.function.verbatim.latex" + }, + { + "begin": "(\\s*\\\\begin\\{alltt\\})", + "captures": { + "1": { + "patterns": [ + { + "include": "#begin-env-tokenizer" + } + ] + } + }, + "contentName": "markup.raw.verbatim.latex", + "end": "(\\\\end\\{alltt\\})", + "name": "meta.function.alltt.latex", + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.function.latex" + } + }, + "match": "(\\\\)[A-Za-z]+", + "name": "support.function.general.latex" + } + ] + }, + { + "begin": "(\\s*\\\\begin\\{([Cc]omment)\\})", + "captures": { + "1": { + "patterns": [ + { + "include": "#begin-env-tokenizer" + } + ] + } + }, + "contentName": "punctuation.definition.comment.latex", + "end": "(\\\\end\\{\\2\\})", + "name": "meta.function.verbatim.latex" + }, + { + "captures": { + "1": { + "name": "support.function.url.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "patterns": [ + { + "include": "#optional-arg" + } + ] + }, + "4": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "5": { + "name": "markup.underline.link.latex" + }, + "6": { + "name": "punctuation.definition.arguments.end.latex" + }, + "7": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "8": { + "name": "entity.name.hyperlink.latex" + }, + "9": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "match": "(?:\\s*)((\\\\)(?:url|href|hyperref|hyperimage))(\\[[^\\[]*?\\])?(\\{)([^}]*)(\\})(?:\\{[^}]*\\}){2}?(?:(\\{)([^}]*)(\\}))?", + "name": "meta.function.link.url.latex" + }, + { + "comment": "These two patterns match the \\begin{document} and \\end{document} commands, so that the environment matching pattern following them will ignore those commands.", + "match": "(\\s*\\\\begin\\{document\\})", + "name": "meta.function.begin-document.latex", + "captures": { + "1": { + "patterns": [ + { + "include": "#begin-env-tokenizer" + } + ] + } + } + }, + { + "match": "(\\s*\\\\end\\{document\\})", + "name": "meta.function.end-document.latex", + "captures": { + "1": { + "patterns": [ + { + "include": "#begin-env-tokenizer" + } + ] + } + } + }, + { + "begin": "(?:\\s*)((\\\\)begin)(\\{)((?:\\+?array|equation|(?:IEEE)?eqnarray|multline|align|aligned|alignat|alignedat|flalign|flaligned|flalignat|split|gather|gathered|\\+?cases|(?:display)?math|\\+?[a-zA-Z]*matrix|[pbBvV]?NiceMatrix|[pbBvV]?NiceArray|(?:(?:arg)?(?:mini|maxi)))(?:\\*|!)?)(\\})(\\s*\\n)?", + "captures": { + "1": { + "name": "support.function.be.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "4": { + "name": "variable.parameter.function.latex" + }, + "5": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "contentName": "meta.math.block.latex support.class.math.block.environment.latex", + "end": "(?:\\s*)((\\\\)end)(\\{)(\\4)(\\})(?:\\s*\\n)?", + "name": "meta.function.environment.math.latex", + "patterns": [ + { + "match": "(?<!\\\\)&", + "name": "keyword.control.equation.align.latex" + }, + { + "match": "\\\\\\\\", + "name": "keyword.control.equation.newline.latex" + }, + { + "include": "#definition-label" + }, + { + "include": "text.tex#math" + }, + { + "include": "$base" + } + ] + }, + { + "begin": "(?:\\s*)(\\\\begin\\{empheq\\}(?:\\[.*\\])?)", + "captures": { + "1": { + "patterns": [ + { + "include": "#begin-env-tokenizer" + } + ] + } + }, + "contentName": "meta.math.block.latex support.class.math.block.environment.latex", + "end": "(?:\\s*)(\\\\end\\{empheq\\})", + "name": "meta.function.environment.math.latex", + "patterns": [ + { + "match": "(?<!\\\\)&", + "name": "keyword.control.equation.align.latex" + }, + { + "match": "\\\\\\\\", + "name": "keyword.control.equation.newline.latex" + }, + { + "include": "#definition-label" + }, + { + "include": "text.tex#math" + }, + { + "include": "$base" + } + ] + }, + { + "begin": "(\\s*\\\\begin\\{(tabular[xy*]?|xltabular|longtable|(?:long)?tabu|(?:long|tall)?tblr|NiceTabular[X*]?|booktabs)\\}(\\s*\\n)?)", + "captures": { + "1": { + "patterns": [ + { + "include": "#begin-env-tokenizer" + } + ] + } + }, + "contentName": "meta.data.environment.tabular.latex", + "end": "(\\s*\\\\end\\{(\\2)\\}(?:\\s*\\n)?)", + "name": "meta.function.environment.tabular.latex", + "patterns": [ + { + "match": "(?<!\\\\)&", + "name": "keyword.control.table.cell.latex" + }, + { + "match": "\\\\\\\\", + "name": "keyword.control.table.newline.latex" + }, + { + "include": "$base" + } + ] + }, + { + "begin": "(\\s*\\\\begin\\{(itemize|enumerate|description|list)\\})", + "captures": { + "1": { + "patterns": [ + { + "include": "#begin-env-tokenizer" + } + ] + } + }, + "end": "(\\\\end\\{\\2\\}(?:\\s*\\n)?)", + "name": "meta.function.environment.list.latex", + "patterns": [ + { + "include": "$base" + } + ] + }, + { + "begin": "(\\s*\\\\begin\\{tikzpicture\\})", + "captures": { + "1": { + "patterns": [ + { + "include": "#begin-env-tokenizer" + } + ] + } + }, + "end": "(\\\\end\\{tikzpicture\\}(?:\\s*\\n)?)", + "name": "meta.function.environment.latex.tikz", + "patterns": [ + { + "include": "$base" + } + ] + }, + { + "begin": "(\\s*\\\\begin\\{frame\\})", + "captures": { + "1": { + "patterns": [ + { + "include": "#begin-env-tokenizer" + } + ] + } + }, + "end": "(\\\\end\\{frame\\})", + "name": "meta.function.environment.frame.latex", + "patterns": [ + { + "include": "$base" + } + ] + }, + { + "begin": "(\\s*\\\\begin\\{(mpost\\*?)\\})", + "captures": { + "1": { + "patterns": [ + { + "include": "#begin-env-tokenizer" + } + ] + } + }, + "end": "(\\\\end\\{\\2\\}(?:\\s*\\n)?)", + "name": "meta.function.environment.latex.mpost" + }, + { + "begin": "(\\s*\\\\begin\\{markdown\\})", + "captures": { + "1": { + "patterns": [ + { + "include": "#begin-env-tokenizer" + } + ] + } + }, + "end": "(\\\\end\\{markdown\\})", + "contentName": "meta.embedded.markdown_latex_combined", + "patterns": [ + { + "include": "text.tex.markdown_latex_combined" + } + ] + }, + { + "begin": "(\\s*\\\\begin\\{(\\w+\\*?)\\})", + "captures": { + "1": { + "patterns": [ + { + "include": "#begin-env-tokenizer" + } + ] + } + }, + "end": "(\\\\end\\{\\2\\}(?:\\s*\\n)?)", + "name": "meta.function.environment.general.latex", + "patterns": [ + { + "include": "$base" + } + ] + }, + { + "captures": { + "1": { + "name": "storage.type.function.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.begin.latex" + }, + "4": { + "name": "support.function.general.latex" + }, + "5": { + "name": "punctuation.definition.function.latex" + }, + "6": { + "name": "punctuation.definition.end.latex" + } + }, + "match": "((\\\\)(?:newcommand|renewcommand|(?:re)?newrobustcmd|DeclareRobustCommand))\\*?({)((\\\\)[^}]*)(})" + }, + { + "begin": "((\\\\)marginpar)((?:\\[[^\\[]*?\\])*)(\\{)", + "beginCaptures": { + "1": { + "name": "support.function.marginpar.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "patterns": [ + { + "include": "#optional-arg" + } + ] + }, + "4": { + "name": "punctuation.definition.marginpar.begin.latex" + } + }, + "contentName": "meta.paragraph.margin.latex", + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.marginpar.end.latex" + } + }, + "patterns": [ + { + "include": "text.tex#braces" + }, + { + "include": "$base" + } + ] + }, + { + "begin": "((\\\\)footnote)((?:\\[[^\\[]*?\\])*)(\\{)", + "beginCaptures": { + "1": { + "name": "support.function.footnote.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "patterns": [ + { + "include": "#optional-arg" + } + ] + }, + "4": { + "name": "punctuation.definition.footnote.begin.latex" + } + }, + "contentName": "entity.name.footnote.latex", + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.footnote.end.latex" + } + }, + "patterns": [ + { + "include": "text.tex#braces" + }, + { + "include": "$base" + } + ] + }, + { + "begin": "((\\\\)emph)(\\{)", + "beginCaptures": { + "1": { + "name": "support.function.emph.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.emph.begin.latex" + } + }, + "contentName": "markup.italic.emph.latex", + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.emph.end.latex" + } + }, + "name": "meta.function.emph.latex", + "patterns": [ + { + "include": "text.tex#braces" + }, + { + "include": "$base" + } + ] + }, + { + "begin": "((\\\\)textit)(\\{)", + "captures": { + "1": { + "name": "support.function.textit.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.textit.begin.latex" + } + }, + "comment": "We put the keyword in a capture and name this capture, so that disabling spell checking for “keyword” won't be inherited by the argument to \\textit{...}.\n\nPut specific matches for particular LaTeX keyword.functions before the last two more general functions", + "contentName": "markup.italic.textit.latex", + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.textit.end.latex" + } + }, + "name": "meta.function.textit.latex", + "patterns": [ + { + "include": "text.tex#braces" + }, + { + "include": "$base" + } + ] + }, + { + "begin": "((\\\\)textbf)(\\{)", + "captures": { + "1": { + "name": "support.function.textbf.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.textbf.begin.latex" + } + }, + "contentName": "markup.bold.textbf.latex", + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.textbf.end.latex" + } + }, + "name": "meta.function.textbf.latex", + "patterns": [ + { + "include": "text.tex#braces" + }, + { + "include": "$base" + } + ] + }, + { + "begin": "((\\\\)texttt)(\\{)", + "captures": { + "1": { + "name": "support.function.texttt.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.texttt.begin.latex" + } + }, + "contentName": "markup.raw.texttt.latex", + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.texttt.end.latex" + } + }, + "name": "meta.function.texttt.latex", + "patterns": [ + { + "include": "text.tex#braces" + }, + { + "include": "$base" + } + ] + }, + { + "captures": { + "0": { + "name": "keyword.other.item.latex" + }, + "1": { + "name": "punctuation.definition.keyword.latex" + } + }, + "match": "(\\\\)item\\b", + "name": "meta.scope.item.latex" + }, + { + "begin": "((\\\\)(?:[aA]uto|foot|full|no|ref|short|[tT]ext|[pP]aren|[sS]mart)?[cC]ite(?:al)?(?:p|s|t|author|year(?:par)?|title)?[ANP]*\\*?)((?:(?:\\([^\\)]*\\)){0,2}(?:\\[[^\\]]*\\]){0,2}\\{[\\p{Alphabetic}:.]*\\})*)(?:([<\\[])[^\\]<>]*([>\\]]))?(?:(\\[)[^\\]]*(\\]))?(\\{)", + "captures": { + "1": { + "name": "keyword.control.cite.latex" + }, + "2": { + "name": "punctuation.definition.keyword.latex" + }, + "3": { + "patterns": [ + { + "include": "#autocites-arg" + } + ] + }, + "4": { + "name": "punctuation.definition.arguments.optional.begin.latex" + }, + "5": { + "name": "punctuation.definition.arguments.optional.end.latex" + }, + "6": { + "name": "punctuation.definition.arguments.optional.begin.latex" + }, + "7": { + "name": "punctuation.definition.arguments.optional.end.latex" + }, + "8": { + "name": "punctuation.definition.arguments.begin.latex" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "name": "meta.citation.latex", + "patterns": [ + { + "captures": { + "1": { + "name": "comment.line.percentage.tex" + }, + "2": { + "name": "punctuation.definition.comment.tex" + } + }, + "match": "((%).*)$" + }, + { + "match": "[\\p{Alphabetic}\\p{Number}:.-]+", + "name": "constant.other.reference.citation.latex" + } + ] + }, + { + "begin": "((\\\\)bibentry)(\\{)", + "captures": { + "1": { + "name": "keyword.control.cite.latex" + }, + "2": { + "name": "punctuation.definition.keyword.latex" + }, + "3": { + "name": "punctuation.definition.arguments.begin.latex" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "name": "meta.citation.latex", + "patterns": [ + { + "match": "[\\p{Alphabetic}\\p{Number}:.]+", + "name": "constant.other.reference.citation.latex" + } + ] + }, + { + "begin": "((\\\\)(?:\\w*[rR]ef\\*?))(\\{)", + "beginCaptures": { + "1": { + "name": "keyword.control.ref.latex" + }, + "2": { + "name": "punctuation.definition.keyword.latex" + }, + "3": { + "name": "punctuation.definition.arguments.begin.latex" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "name": "meta.reference.label.latex", + "patterns": [ + { + "match": "[\\p{Alphabetic}\\p{Number}\\.,:/*!^_-]", + "name": "constant.other.reference.label.latex" + } + ] + }, + { + "include": "#definition-label" + }, + { + "begin": "((\\\\)(?:verb|Verb|spverb)\\*?)\\s*((\\\\)scantokens)(\\{)", + "beginCaptures": { + "1": { + "name": "support.function.verb.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "support.function.verb.latex" + }, + "4": { + "name": "punctuation.definition.verb.latex" + }, + "5": { + "name": "punctuation.definition.begin.latex" + } + }, + "contentName": "markup.raw.verb.latex", + "end": "(\\})", + "endCaptures": { + "1": { + "name": "punctuation.definition.end.latex" + } + }, + "name": "meta.function.verb.latex", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "captures": { + "1": { + "name": "support.function.verb.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.verb.latex" + }, + "4": { + "name": "markup.raw.verb.latex" + }, + "5": { + "name": "punctuation.definition.verb.latex" + } + }, + "match": "((\\\\)(?:verb|Verb|spverb)\\*?)\\s*((?<=\\s)\\S|[^a-zA-Z])(.*?)(\\3|$)", + "name": "meta.function.verb.latex" + }, + { + "captures": { + "1": { + "name": "support.function.verb.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "patterns": [ + { + "include": "#optional-arg" + } + ] + }, + "4": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "5": { + "name": "punctuation.definition.arguments.end.latex" + }, + "6": { + "name": "punctuation.definition.verb.latex" + }, + "7": { + "name": "markup.raw.verb.latex" + }, + "8": { + "name": "punctuation.definition.verb.latex" + }, + "9": { + "name": "punctuation.definition.verb.latex" + }, + "10": { + "name": "markup.raw.verb.latex" + }, + "11": { + "name": "punctuation.definition.verb.latex" + } + }, + "match": "((\\\\)(?:mint|mintinline))((?:\\[[^\\[]*?\\])?)(\\{)[a-zA-Z]*(\\})(?:(?:([^a-zA-Z\\{])(.*?)(\\6))|(?:(\\{)(.*?)(\\})))", + "name": "meta.function.verb.latex" + }, + { + "captures": { + "1": { + "name": "support.function.verb.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "patterns": [ + { + "include": "#optional-arg" + } + ] + }, + "4": { + "name": "punctuation.definition.verb.latex" + }, + "5": { + "name": "markup.raw.verb.latex" + }, + "6": { + "name": "punctuation.definition.verb.latex" + }, + "7": { + "name": "punctuation.definition.verb.latex" + }, + "8": { + "name": "markup.raw.verb.latex" + }, + "9": { + "name": "punctuation.definition.verb.latex" + } + }, + "match": "((\\\\)[a-z]+inline)((?:\\[[^\\[]*?\\])?)(?:(?:([^a-zA-Z\\{])(.*?)(\\4))|(?:(\\{)(.*?)(\\})))", + "name": "meta.function.verb.latex" + }, + { + "captures": { + "1": { + "name": "support.function.verb.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "patterns": [ + { + "include": "#optional-arg" + } + ] + }, + "4": { + "name": "punctuation.definition.verb.latex" + }, + "5": { + "name": "source.python", + "patterns": [ + { + "include": "source.python" + } + ] + }, + "6": { + "name": "punctuation.definition.verb.latex" + }, + "7": { + "name": "punctuation.definition.verb.latex" + }, + "8": { + "name": "source.python", + "patterns": [ + { + "include": "source.python" + } + ] + }, + "9": { + "name": "punctuation.definition.verb.latex" + } + }, + "match": "((\\\\)(?:(?:py|pycon|pylab|pylabcon|sympy|sympycon)[cv]?|pyq|pycq|pyif))((?:\\[[^\\[]*?\\])?)(?:(?:([^a-zA-Z\\{])(.*?)(\\4))|(?:(\\{)(.*?)(\\})))", + "name": "meta.function.verb.latex" + }, + { + "captures": { + "1": { + "name": "support.function.verb.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "patterns": [ + { + "include": "#optional-arg" + } + ] + }, + "4": { + "name": "punctuation.definition.verb.latex" + }, + "5": { + "name": "source.julia", + "patterns": [ + { + "include": "source.julia" + } + ] + }, + "6": { + "name": "punctuation.definition.verb.latex" + }, + "7": { + "name": "punctuation.definition.verb.latex" + }, + "8": { + "name": "source.julia", + "patterns": [ + { + "include": "source.julia" + } + ] + }, + "9": { + "name": "punctuation.definition.verb.latex" + } + }, + "match": "((\\\\)(?:jl|julia)[cv]?)((?:\\[[^\\[]*?\\])?)(?:(?:([^a-zA-Z\\{])(.*?)(\\4))|(?:(\\{)(.*?)(\\})))", + "name": "meta.function.verb.latex" + }, + { + "match": "\\\\(?:newline|pagebreak|clearpage|linebreak|pause)(?:\\b)", + "name": "keyword.control.layout.latex" + }, + { + "begin": "\\\\\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.latex" + } + }, + "end": "\\\\\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.latex" + } + }, + "name": "meta.math.block.latex support.class.math.block.environment.latex", + "patterns": [ + { + "include": "text.tex#math" + }, + { + "include": "$base" + } + ] + }, + { + "begin": "(,,)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.string.begin.latex" + } + }, + "end": "(?<!\\\\)(\\`\\`)", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.latex" + } + }, + "name": "string.quoted.double.latex" + }, + { + "begin": "(?<!\\\\|\\\\catcode|\\\\string)(\\`\\`)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.string.begin.latex" + } + }, + "end": "(?<!\\\\)(\\'\\'|\")", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.latex" + } + }, + "name": "string.quoted.double.latex" + }, + { + "begin": "\\$\\$", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.latex" + } + }, + "end": "\\$\\$", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.latex" + } + }, + "name": "meta.math.block.latex support.class.math.block.environment.latex", + "patterns": [ + { + "match": "\\\\\\$", + "name": "constant.character.escape.latex" + }, + { + "include": "text.tex#math" + }, + { + "include": "$base" + } + ] + }, + { + "begin": "\\$", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.tex" + } + }, + "end": "\\$", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.tex" + } + }, + "name": "meta.math.block.tex support.class.math.block.tex", + "patterns": [ + { + "match": "\\\\\\$", + "name": "constant.character.escape.latex" + }, + { + "include": "text.tex#math" + }, + { + "include": "$base" + } + ] + }, + { + "begin": "\\\\\\[", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.latex" + } + }, + "end": "\\\\\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.latex" + } + }, + "name": "meta.math.block.latex support.class.math.block.environment.latex", + "patterns": [ + { + "include": "text.tex#math" + }, + { + "include": "$base" + } + ] + }, + { + "captures": { + "1": { + "name": "punctuation.definition.constant.latex" + } + }, + "match": "(\\\\)(text(s(terling|ixoldstyle|urd|e(ction|venoldstyle|rvicemark))|yen|n(ineoldstyle|umero|aira)|c(ircledP|o(py(left|right)|lonmonetary)|urrency|e(nt(oldstyle)?|lsius))|t(hree(superior|oldstyle|quarters(emdash)?)|i(ldelow|mes)|w(o(superior|oldstyle)|elveudash)|rademark)|interrobang(down)?|zerooldstyle|o(hm|ne(superior|half|oldstyle|quarter)|penbullet|rd(feminine|masculine))|d(i(scount|ed|v(orced)?)|o(ng|wnarrow|llar(oldstyle)?)|egree|agger(dbl)?|blhyphen(char)?)|uparrow|p(ilcrow|e(so|r(t(housand|enthousand)|iodcentered))|aragraph|m)|e(stimated|ightoldstyle|uro)|quotes(traight(dblbase|base)|ingle)|f(iveoldstyle|ouroldstyle|lorin|ractionsolidus)|won|l(not|ira|e(ftarrow|af)|quill|angle|brackdbl)|a(s(cii(caron|dieresis|acute|grave|macron|breve)|teriskcentered)|cutedbl)|r(ightarrow|e(cipe|ferencemark|gistered)|quill|angle|brackdbl)|g(uarani|ravedbl)|m(ho|inus|u(sicalnote)?|arried)|b(igcircle|orn|ullet|lank|a(ht|rdbl)|rokenbar)))\\b", + "name": "constant.character.latex" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.column-specials.begin.latex" + }, + "2": { + "name": "punctuation.definition.column-specials.end.latex" + } + }, + "match": "(?:<|>)(\\{)\\$(\\})", + "name": "meta.column-specials.latex" + }, + { + "include": "text.tex" + } + ], + "repository": { + "optional-arg": { + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.arguments.optional.begin.latex" + }, + "2": { + "name": "variable.parameter.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.optional.end.latex" + } + }, + "match": "(\\[)([^\\[]*?)(\\])", + "name": "meta.parameter.optional.latex" + } + ] + }, + "multiline-optional-arg-no-highlight": { + "begin": "\\G\\[", + "beginCaptures": { + "0": { + "name": "punctuation.definition.arguments.optional.begin.latex" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.optional.end.latex" + } + }, + "name": "meta.parameter.optional.latex", + "patterns": [ + { + "include": "$self" + } + ] + }, + "multiline-optional-arg": { + "begin": "\\G\\[", + "beginCaptures": { + "0": { + "name": "punctuation.definition.arguments.optional.begin.latex" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.optional.end.latex" + } + }, + "name": "meta.parameter.optional.latex", + "contentName": "variable.parameter.function.latex", + "patterns": [ + { + "include": "$self" + } + ] + }, + "autocites-arg": { + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.arguments.optional.begin.latex" + }, + "2": { + "name": "punctuation.definition.arguments.optional.end.latex" + }, + "3": { + "name": "punctuation.definition.arguments.optional.begin.latex" + }, + "4": { + "name": "punctuation.definition.arguments.optional.end.latex" + }, + "5": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "6": { + "name": "constant.other.reference.citation.latex" + }, + "7": { + "name": "punctuation.definition.arguments.end.latex" + }, + "8": { + "patterns": [ + { + "include": "#autocites-arg" + } + ] + } + }, + "match": "(?:(\\()[^\\)]*(\\))){0,2}(?:(\\[)[^\\]]*(\\])){0,2}(\\{)([\\p{Alphabetic}\\p{Number}:.]+)(\\})(.*)" + } + ] + }, + "begin-env-tokenizer": { + "captures": { + "1": { + "name": "support.function.be.latex" + }, + "2": { + "name": "punctuation.definition.function.latex" + }, + "3": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "4": { + "name": "variable.parameter.function.latex" + }, + "5": { + "name": "punctuation.definition.arguments.end.latex" + }, + "6": { + "name": "punctuation.definition.arguments.optional.begin.latex" + }, + "7": { + "patterns": [ + { + "include": "$base" + } + ] + }, + "8": { + "name": "punctuation.definition.arguments.optional.end.latex" + }, + "9": { + "name": "punctuation.definition.arguments.begin.latex" + }, + "10": { + "name": "variable.parameter.function.latex" + }, + "11": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "match": "\\s*((\\\\)(?:begin|end))(\\{)([a-zA-Z]*\\*?)(\\})(?:(\\[)(.*)(\\]))?(?:(\\{)([^{}]*)(\\}))?" + }, + "definition-label": { + "begin": "((\\\\)label)((?:\\[[^\\[]*?\\])*)(\\{)", + "beginCaptures": { + "1": { + "name": "keyword.control.label.latex" + }, + "2": { + "name": "punctuation.definition.keyword.latex" + }, + "3": { + "patterns": [ + { + "include": "#optional-arg" + } + ] + }, + "4": { + "name": "punctuation.definition.arguments.begin.latex" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.end.latex" + } + }, + "name": "meta.definition.label.latex", + "patterns": [ + { + "match": "[\\p{Alphabetic}\\p{Number}\\.,:/*!^_-]", + "name": "variable.parameter.definition.label.latex" + } + ] + } + } +} diff --git a/docs/shiki/languages/less.tmLanguage.json b/docs/shiki/languages/less.tmLanguage.json new file mode 100644 index 00000000..1f265af7 --- /dev/null +++ b/docs/shiki/languages/less.tmLanguage.json @@ -0,0 +1,542 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/atom/language-less/blob/master/grammars/less.cson", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/atom/language-less/commit/87d4d59e8de6796b506b81a16e1dc1fafc99d30f", + "name": "less", + "scopeName": "source.css.less", + "patterns": [ + { + "include": "#strings" + }, + { + "captures": { + "1": { + "name": "entity.other.attribute-name.class.mixin.css" + } + }, + "match": "(\\.[_a-zA-Z][a-zA-Z0-9_-]*(?=\\())" + }, + { + "captures": { + "1": { + "name": "entity.other.attribute-name.class.css" + }, + "2": { + "name": "punctuation.definition.entity.css" + }, + "4": { + "name": "variable.other.interpolation.less" + } + }, + "match": "((\\.)([_a-zA-Z]|(@{[a-zA-Z0-9_-]+}))[a-zA-Z0-9_-]*)" + }, + { + "captures": { + "0": { + "name": "entity.other.attribute-name.parent-selector.css" + }, + "1": { + "name": "punctuation.definition.entity.css" + } + }, + "match": "(&)[a-zA-Z0-9_-]*" + }, + { + "begin": "(format|local|url|attr|counter|counters)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "support.function.misc.css" + }, + "2": { + "name": "punctuation.section.function.css" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.function.css" + } + }, + "patterns": [ + { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.css" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.css" + } + }, + "name": "string.quoted.single.css", + "patterns": [ + { + "match": "\\\\.", + "name": "constant.character.escape.css" + } + ] + }, + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.css" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.css" + } + }, + "name": "string.quoted.double.css", + "patterns": [ + { + "match": "\\\\(\\d{1,6}|.)", + "name": "constant.character.escape.css" + } + ] + }, + { + "match": "[^'\") \\t]+", + "name": "variable.parameter.misc.css" + } + ] + }, + { + "match": "(#)([0-9a-fA-F]{3}|[0-9a-fA-F]{6})\\b(?!.*?(?<!@){)", + "name": "constant.other.rgb-value.css" + }, + { + "captures": { + "1": { + "name": "entity.other.attribute-name.id" + }, + "2": { + "name": "punctuation.definition.entity.css" + }, + "4": { + "name": "variable.other.interpolation.less" + } + }, + "match": "((#)([_a-zA-Z]|(@{[a-zA-Z0-9_-]+}))[a-zA-Z0-9_-]*)", + "name": "meta.selector.css" + }, + { + "begin": "/\\*", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.begin.css" + } + }, + "end": "\\*/", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.end.css" + } + }, + "name": "comment.block.css" + }, + { + "include": "source.css#numeric-values" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.begin.entity.css" + }, + "2": { + "name": "entity.other.attribute-name.attribute.css" + }, + "3": { + "name": "punctuation.separator.operator.css" + }, + "4": { + "name": "string.unquoted.attribute-value.css" + }, + "5": { + "name": "string.quoted.double.attribute-value.css" + }, + "6": { + "name": "punctuation.definition.string.begin.css" + }, + "7": { + "name": "punctuation.definition.string.end.css" + }, + "8": { + "name": "punctuation.definition.end.entity.css" + } + }, + "match": "(?i)(\\[)\\s*(-?[_a-z\\\\[[:^ascii:]]][_a-z0-9\\-\\\\[[:^ascii:]]]*)(?:\\s*([~|^$*]?=)\\s*(?:(-?[_a-z\\\\[[:^ascii:]]][_a-z0-9\\-\\\\[[:^ascii:]]]*)|((?>(['\"])(?:[^\\\\]|\\\\.)*?(\\6)))))?\\s*(\\])", + "name": "meta.attribute-selector.css" + }, + { + "begin": "((@)import\\b)", + "beginCaptures": { + "1": { + "name": "keyword.control.at-rule.import.less" + }, + "2": { + "name": "punctuation.definition.keyword.less" + } + }, + "end": ";", + "endCaptures": { + "0": { + "name": "punctuation.terminator.rule.css" + } + }, + "name": "meta.at-rule.import.css", + "patterns": [ + { + "match": "(?<=\\(|,|\\s)\\b(reference|optional|once|multiple|less|inline)\\b(?=\\)|,)", + "name": "keyword.control.import.option.less" + }, + { + "include": "#brace_round" + }, + { + "include": "source.css#commas" + }, + { + "include": "#strings" + } + ] + }, + { + "captures": { + "1": { + "name": "keyword.control.at-rule.fontface.css" + }, + "2": { + "name": "punctuation.definition.keyword.css" + } + }, + "match": "^\\s*((@)font-face\\b)", + "name": "meta.at-rule.fontface.css" + }, + { + "captures": { + "1": { + "name": "keyword.control.at-rule.media.css" + }, + "2": { + "name": "punctuation.definition.keyword.css" + } + }, + "match": "^\\s*((@)media\\b)", + "name": "meta.at-rule.media.css" + }, + { + "include": "source.css#media-features" + }, + { + "match": "\\b(tv|tty|screen|projection|print|handheld|embossed|braille|aural|all)\\b", + "name": "support.constant.media-type.media.css" + }, + { + "match": "\\b(portrait|landscape)\\b", + "name": "support.constant.property-value.media-property.media.css" + }, + { + "captures": { + "1": { + "name": "support.function.less" + } + }, + "match": "(\\.[a-zA-Z0-9_-]+)\\s*(;|\\()" + }, + { + "begin": "(^[ \\t]+)?(?=//)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.less" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": "//", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.less" + } + }, + "end": "\\n", + "name": "comment.line.double-slash.less" + } + ] + }, + { + "match": "(@|\\-\\-)[\\w-]+(?=\\s*)", + "name": "variable.other.less", + "captures": { + "1": { + "name": "punctuation.definition.variable.less" + } + } + }, + { + "include": "#variable_interpolation" + }, + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.section.property-list.begin.bracket.curly.css" + } + }, + "end": "}", + "endCaptures": { + "0": { + "name": "punctuation.section.property-list.end.bracket.curly.css" + } + }, + "name": "meta.property-list.css", + "patterns": [ + { + "include": "source.css#pseudo-elements" + }, + { + "include": "source.css#pseudo-classes" + }, + { + "include": "source.css#tag-names" + }, + { + "include": "source.css#commas" + }, + { + "include": "#variable_interpolation" + }, + { + "include": "source.css#property-names" + }, + { + "include": "#property_values" + }, + { + "include": "$self" + } + ] + }, + { + "match": "\\!\\s*important", + "name": "keyword.other.important.css" + }, + { + "match": "\\*|\\/|\\-|\\+|~|=|<=|>=|<|>", + "name": "keyword.operator.less" + }, + { + "match": "\\b(not|and|when)\\b", + "name": "keyword.control.logical.operator.less" + }, + { + "include": "source.css#tag-names" + }, + { + "match": "(?<![\\w-])[a-z][\\w&&[^A-Z]]*+-[\\w-&&[^A-Z]]+", + "name": "entity.name.tag.custom.css" + }, + { + "include": "source.css#pseudo-elements" + }, + { + "include": "source.css#pseudo-classes" + }, + { + "captures": { + "1": { + "name": "punctuation.section.property-list.begin.css" + }, + "2": { + "name": "punctuation.section.property-list.end.css" + } + }, + "match": "(\\{)(\\})", + "name": "meta.brace.curly.css" + }, + { + "match": "\\{|\\}", + "name": "meta.brace.curly.css" + }, + { + "include": "#brace_round" + }, + { + "match": "\\[|\\]", + "name": "meta.brace.square.less" + }, + { + "match": ";", + "name": "punctuation.terminator.rule.css" + }, + { + "match": ":", + "name": "punctuation.separator.key-value.css" + }, + { + "match": "\\btrue\\b", + "name": "constant.language.boolean.less" + }, + { + "match": "\\bdefault\\b", + "name": "support.function.default.less" + }, + { + "match": "\\b(isurl|isstring|isnumber|iskeyword|iscolor)\\b", + "name": "support.function.type-checking.less" + }, + { + "match": "\\b(isunit|ispixel|ispercentage|isem)\\b", + "name": "support.function.unit-checking.less" + }, + { + "include": "source.css#property-keywords" + }, + { + "include": "source.css#color-keywords" + }, + { + "include": "source.css#commas" + }, + { + "include": "#less_builtin_functions" + }, + { + "include": "source.css#functions" + } + ], + "repository": { + "variable_interpolation": { + "match": "@{[a-zA-Z0-9_-]+}", + "name": "variable.other.interpolation.less" + }, + "strings": { + "patterns": [ + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.css" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.css" + } + }, + "name": "string.quoted.double.css", + "patterns": [ + { + "match": "\\\\([0-9A-Fa-f]{1,6}|.)", + "name": "constant.character.escape.css" + }, + { + "include": "#variable_interpolation" + } + ] + }, + { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.css" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.css" + } + }, + "name": "string.quoted.single.css", + "patterns": [ + { + "match": "\\\\([0-9A-Fa-f]{1,6}|.)", + "name": "constant.character.escape.css" + }, + { + "include": "#variable_interpolation" + } + ] + } + ] + }, + "brace_round": { + "match": "\\(|\\)", + "name": "meta.brace.round.css" + }, + "property_values": { + "begin": "(?<!&)(:)\\s*(?!(\\s*{))(?!.*(?<!@){)", + "beginCaptures": { + "1": { + "name": "punctuation.separator.key-value.css" + } + }, + "end": "\\s*(;)|\\s*(?=})", + "endCaptures": { + "1": { + "name": "punctuation.terminator.rule.css" + } + }, + "contentName": "meta.property-value.css", + "patterns": [ + { + "begin": "url(\\()", + "beginCaptures": { + "1": { + "name": "meta.brace.round.css" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "meta.brace.round.css" + } + }, + "name": "support.function.any-method.builtin.url.css", + "patterns": [ + { + "include": "#strings" + }, + { + "match": "(\\b|\\.{0,2}/)[^)]*\\b", + "name": "string.url.css" + } + ] + }, + { + "include": "source.css#property-keywords" + }, + { + "include": "source.css#color-keywords" + }, + { + "include": "source.css#commas" + }, + { + "include": "#less_builtin_functions" + }, + { + "include": "source.css#functions" + }, + { + "include": "$self" + } + ] + }, + "less_builtin_functions": { + "match": "\\b(abs|acos|alpha|argb|asin|atan|average|blue|calc|ceil|color|contrast|convert|convert|cos|darken|data-uri|desaturate|difference|e|escape|exclusion|extract|fade|fadein|fadeout|floor|format|green|greyscale|hardlight|hsl|hsla|hsv|hsva|hsvhue|hsvsaturation|hsvvalue|hue|length|lighten|lightness|luma|max|min|mix|mod|multiply|negation|overlay|percentage|pi|pow|red|replace|round|saturate|saturation|screen|sin|softlight|spin|sqrt|tan|unit)\\b", + "name": "support.function.any-method.builtin.less" + } + } +} diff --git a/docs/shiki/languages/liquid.tmLanguage.json b/docs/shiki/languages/liquid.tmLanguage.json new file mode 100644 index 00000000..45fbf6d5 --- /dev/null +++ b/docs/shiki/languages/liquid.tmLanguage.json @@ -0,0 +1,987 @@ +{ + "name": "liquid", + "scopeName": "text.html.liquid", + "fileTypes": ["liquid"], + "foldingStartMarker": "(?x)\n{%\n -?\n \\s*\n (capture|case|comment|for|form|if|javascript|paginate|schema|style)\n [^(%})]+\n%}\n", + "foldingStopMarker": "(?x)\n{%\n \\s*\n (endcapture|endcase|endcomment|endfor|endform|endif|endjavascript|endpaginate|endschema|endstyle)\n [^(%})]+\n%}\n", + "injections": { + "L:meta.embedded.block.js, L:meta.embedded.block.css, L:meta.embedded.block.html, L:string.quoted": { + "patterns": [ + { + "include": "#injection" + } + ] + } + }, + "patterns": [ + { + "include": "#core" + } + ], + "repository": { + "core": { + "patterns": [ + { + "include": "#raw_tag" + }, + { + "include": "#comment_block" + }, + { + "include": "#style_codefence" + }, + { + "include": "#stylesheet_codefence" + }, + { + "include": "#json_codefence" + }, + { + "include": "#javascript_codefence" + }, + { + "include": "#object" + }, + { + "include": "#tag" + }, + { + "include": "text.html.basic" + } + ] + }, + "injection": { + "patterns": [ + { + "include": "#raw_tag" + }, + { + "include": "#comment_block" + }, + { + "include": "#object" + }, + { + "include": "#tag_injection" + } + ] + }, + "raw_tag": { + "begin": "{%-?\\s*(raw)\\s*-?%}", + "end": "{%-?\\s*(endraw)\\s*-?%}", + "beginCaptures": { + "1": { + "name": "entity.name.tag.liquid" + } + }, + "endCaptures": { + "1": { + "name": "entity.name.tag.liquid" + } + }, + "name": "meta.entity.tag.raw.liquid", + "contentName": "string.unquoted.liquid", + "patterns": [ + { + "match": "(.(?!{%-?\\s*endraw\\s*-?%}))*." + } + ] + }, + "comment_block": { + "begin": "{%-?\\s*comment\\s*-?%}", + "end": "{%-?\\s*endcomment\\s*-?%}", + "name": "comment.block.liquid", + "patterns": [ + { + "include": "#comment_block" + }, + { + "match": "(.(?!{%-?\\s*(comment|endcomment)\\s*-?%}))*." + } + ] + }, + "style_codefence": { + "begin": "({%-?)\\s*(style)\\s*(-?%})", + "end": "({%-?)\\s*(endstyle)\\s*(-?%})", + "beginCaptures": { + "0": { + "name": "meta.tag.metadata.style.start.liquid" + }, + "1": { + "name": "punctuation.definition.tag.begin.liquid" + }, + "2": { + "name": "entity.name.tag.style.liquid" + }, + "3": { + "name": "punctuation.definition.tag.begin.liquid" + } + }, + "endCaptures": { + "0": { + "name": "meta.tag.metadata.style.end.liquid" + }, + "1": { + "name": "punctuation.definition.tag.end.liquid" + }, + "2": { + "name": "entity.name.tag.style.liquid" + }, + "3": { + "name": "punctuation.definition.tag.end.liquid" + } + }, + "name": "meta.block.style.liquid", + "contentName": "meta.embedded.block.css", + "patterns": [ + { + "include": "source.css" + } + ] + }, + "stylesheet_codefence": { + "begin": "({%-?)\\s*(stylesheet)\\s*(-?%})", + "end": "({%-?)\\s*(endstylesheet)\\s*(-?%})", + "beginCaptures": { + "0": { + "name": "meta.tag.metadata.style.start.liquid" + }, + "1": { + "name": "punctuation.definition.tag.begin.liquid" + }, + "2": { + "name": "entity.name.tag.style.liquid" + }, + "3": { + "name": "punctuation.definition.tag.begin.liquid" + } + }, + "endCaptures": { + "0": { + "name": "meta.tag.metadata.style.end.liquid" + }, + "1": { + "name": "punctuation.definition.tag.end.liquid" + }, + "2": { + "name": "entity.name.tag.style.liquid" + }, + "3": { + "name": "punctuation.definition.tag.end.liquid" + } + }, + "name": "meta.block.style.liquid", + "contentName": "meta.embedded.block.css", + "patterns": [ + { + "include": "source.css" + } + ] + }, + "json_codefence": { + "begin": "({%-?)\\s*(schema)\\s*(-?%})", + "end": "({%-?)\\s*(endschema)\\s*(-?%})", + "beginCaptures": { + "0": { + "name": "meta.tag.metadata.schema.start.liquid" + }, + "1": { + "name": "punctuation.definition.tag.begin.liquid" + }, + "2": { + "name": "entity.name.tag.schema.liquid" + }, + "3": { + "name": "punctuation.definition.tag.begin.liquid" + } + }, + "endCaptures": { + "0": { + "name": "meta.tag.metadata.schema.end.liquid" + }, + "1": { + "name": "punctuation.definition.tag.end.liquid" + }, + "2": { + "name": "entity.name.tag.schema.liquid" + }, + "3": { + "name": "punctuation.definition.tag.end.liquid" + } + }, + "name": "meta.block.schema.liquid", + "contentName": "meta.embedded.block.json", + "patterns": [ + { + "include": "source.json" + } + ] + }, + "javascript_codefence": { + "begin": "({%-?)\\s*(javascript)\\s*(-?%})", + "end": "({%-?)\\s*(endjavascript)\\s*(-?%})", + "beginCaptures": { + "0": { + "name": "meta.tag.metadata.javascript.start.liquid" + }, + "1": { + "name": "punctuation.definition.tag.begin.liquid" + }, + "2": { + "name": "entity.name.tag.javascript.liquid" + }, + "3": { + "name": "punctuation.definition.tag.begin.liquid" + } + }, + "endCaptures": { + "0": { + "name": "meta.tag.metadata.javascript.end.liquid" + }, + "1": { + "name": "punctuation.definition.tag.end.liquid" + }, + "2": { + "name": "entity.name.tag.javascript.liquid" + }, + "3": { + "name": "punctuation.definition.tag.end.liquid" + } + }, + "name": "meta.block.javascript.liquid", + "contentName": "meta.embedded.block.js", + "patterns": [ + { + "include": "source.js" + } + ] + }, + "tag": { + "begin": "(?<!comment %})(?<!comment -%})(?<!comment%})(?<!comment-%})(?<!raw %})(?<!raw -%})(?<!raw%})(?<!raw-%}){%-?", + "end": "-?%}", + "name": "meta.tag.liquid", + "beginCaptures": { + "0": { + "name": "punctuation.definition.tag.begin.liquid" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.liquid" + } + }, + "patterns": [ + { + "include": "#tag_body" + } + ] + }, + "tag_injection": { + "begin": "(?<!comment %})(?<!comment -%})(?<!comment%})(?<!comment-%})(?<!raw %})(?<!raw -%})(?<!raw%})(?<!raw-%}){%-?(?!-?\\s*(endstyle|endjavascript|endcomment|endraw))", + "end": "-?%}", + "name": "meta.tag.liquid", + "beginCaptures": { + "0": { + "name": "punctuation.definition.tag.end.liquid" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.liquid" + } + }, + "patterns": [ + { + "include": "#tag_body" + } + ] + }, + "tag_body": { + "patterns": [ + { + "include": "#tag_liquid" + }, + { + "include": "#tag_assign" + }, + { + "include": "#tag_comment_inline" + }, + { + "include": "#tag_case" + }, + { + "include": "#tag_conditional" + }, + { + "include": "#tag_for" + }, + { + "include": "#tag_paginate" + }, + { + "include": "#tag_render" + }, + { + "include": "#tag_tablerow" + }, + { + "include": "#tag_expression" + } + ] + }, + "tag_liquid": { + "name": "meta.entity.tag.liquid.liquid", + "begin": "(?:(?:(?<={%)|(?<={%-)|^)\\s*)(liquid)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.liquid.liquid" + } + }, + "end": "(?=%})", + "patterns": [ + { + "include": "#tag_comment_block_liquid" + }, + { + "include": "#tag_comment_inline_liquid" + }, + { + "include": "#tag_assign_liquid" + }, + { + "include": "#tag_case_liquid" + }, + { + "include": "#tag_conditional_liquid" + }, + { + "include": "#tag_for_liquid" + }, + { + "include": "#tag_paginate_liquid" + }, + { + "include": "#tag_render_liquid" + }, + { + "include": "#tag_tablerow_liquid" + }, + { + "include": "#tag_expression_liquid" + } + ] + }, + "tag_comment_block_liquid": { + "name": "comment.block.liquid", + "begin": "(?:^\\s*)(comment)\\b", + "end": "(?:^\\s*)(endcomment)\\b", + "patterns": [ + { + "include": "#tag_comment_block_liquid" + }, + { + "match": "(?:^\\s*)(?!(comment|endcomment)).*" + } + ] + }, + "tag_comment_inline": { + "name": "comment.line.number-sign.liquid", + "begin": "#", + "end": "(?=%})" + }, + "tag_comment_inline_liquid": { + "name": "comment.line.number-sign.liquid", + "begin": "(?:^\\s*)#.*", + "end": "$" + }, + "tag_tablerow": { + "name": "meta.entity.tag.tablerow.liquid", + "begin": "(?:(?:(?<={%)|(?<={%-)|^)\\s*)(tablerow)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.tablerow.liquid" + } + }, + "end": "(?=%})", + "patterns": [ + { + "include": "#tag_tablerow_body" + } + ] + }, + "tag_tablerow_liquid": { + "name": "meta.entity.tag.tablerow.liquid", + "begin": "(?:(?:(?<={%)|(?<={%-)|^)\\s*)(tablerow)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.tablerow.liquid" + } + }, + "end": "$", + "patterns": [ + { + "include": "#tag_tablerow_body" + } + ] + }, + "tag_tablerow_body": { + "patterns": [ + { + "match": "\\b(in)\\b", + "name": "keyword.control.liquid" + }, + { + "match": "\\b(cols|offset|limit):", + "name": "keyword.control.liquid" + }, + { + "include": "#value_expression" + } + ] + }, + "tag_for": { + "name": "meta.entity.tag.for.liquid", + "begin": "(?:(?:(?<={%)|(?<={%-)|^)\\s*)(for)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.for.liquid" + } + }, + "end": "(?=%})", + "patterns": [ + { + "include": "#tag_for_body" + } + ] + }, + "tag_for_liquid": { + "name": "meta.entity.tag.for.liquid", + "begin": "(?:(?:(?<={%)|(?<={%-)|^)\\s*)(for)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.for.liquid" + } + }, + "end": "$", + "patterns": [ + { + "include": "#tag_for_body" + } + ] + }, + "tag_for_body": { + "patterns": [ + { + "match": "\\b(in|reversed)\\b", + "name": "keyword.control.liquid" + }, + { + "match": "\\b(offset|limit):", + "name": "keyword.control.liquid" + }, + { + "include": "#value_expression" + } + ] + }, + "tag_assign": { + "name": "meta.entity.tag.liquid", + "begin": "(?:(?:(?<={%)|(?<={%-)|^)\\s*)(assign|echo)\\b", + "beginCaptures": { + "1": { + "name": "entity.name.tag.liquid" + } + }, + "end": "(?=%})", + "patterns": [ + { + "include": "#filter" + }, + { + "include": "#attribute" + }, + { + "include": "#value_expression" + } + ] + }, + "tag_assign_liquid": { + "name": "meta.entity.tag.liquid", + "begin": "(?:(?:(?<={%)|(?<={%-)|^)\\s*)(assign|echo)\\b", + "beginCaptures": { + "1": { + "name": "entity.name.tag.liquid" + } + }, + "end": "$", + "patterns": [ + { + "include": "#filter" + }, + { + "include": "#attribute_liquid" + }, + { + "include": "#value_expression" + } + ] + }, + "tag_render": { + "name": "meta.entity.tag.render.liquid", + "begin": "(?:(?:(?<={%)|(?<={%-)|^)\\s*)(render)\\b", + "beginCaptures": { + "1": { + "name": "entity.name.tag.render.liquid" + } + }, + "end": "(?=%})", + "patterns": [ + { + "include": "#tag_render_special_keywords" + }, + { + "include": "#attribute" + }, + { + "include": "#value_expression" + } + ] + }, + "tag_render_liquid": { + "name": "meta.entity.tag.render.liquid", + "begin": "(?:(?:(?<={%)|(?<={%-)|^)\\s*)(render)\\b", + "beginCaptures": { + "1": { + "name": "entity.name.tag.render.liquid" + } + }, + "end": "$", + "patterns": [ + { + "include": "#tag_render_special_keywords" + }, + { + "include": "#attribute_liquid" + }, + { + "include": "#value_expression" + } + ] + }, + "tag_render_special_keywords": { + "match": "\\b(with|as|for)\\b", + "name": "keyword.control.other.liquid" + }, + "tag_paginate": { + "name": "meta.entity.tag.paginate.liquid", + "begin": "(?:(?:(?<={%)|(?<={%-)|^)\\s*)(paginate)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.paginate.liquid" + } + }, + "end": "(?=%})", + "patterns": [ + { + "include": "#tag_paginate_body" + } + ] + }, + "tag_paginate_liquid": { + "name": "meta.entity.tag.paginate.liquid", + "begin": "(?:(?:(?<={%)|(?<={%-)|^)\\s*)(paginate)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.paginate.liquid" + } + }, + "end": "$", + "patterns": [ + { + "include": "#tag_paginate_body" + } + ] + }, + "tag_paginate_body": { + "patterns": [ + { + "match": "\\b(by)\\b", + "name": "keyword.control.liquid" + }, + { + "include": "#value_expression" + } + ] + }, + "tag_conditional": { + "name": "meta.entity.tag.conditional.liquid", + "begin": "(?:(?:(?<={%)|(?<={%-)|^)\\s*)(if|elsif|unless)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.conditional.liquid" + } + }, + "end": "(?=%})", + "patterns": [ + { + "include": "#value_expression" + } + ] + }, + "tag_conditional_liquid": { + "name": "meta.entity.tag.conditional.liquid", + "begin": "(?:(?:(?<={%)|(?<={%-)|^)\\s*)(if|elsif|unless)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.conditional.liquid" + } + }, + "end": "$", + "patterns": [ + { + "include": "#value_expression" + } + ] + }, + "tag_case": { + "name": "meta.entity.tag.case.liquid", + "begin": "(?:(?:(?<={%)|(?<={%-)|^)\\s*)(case|when)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.case.liquid" + } + }, + "end": "(?=%})", + "patterns": [ + { + "include": "#value_expression" + } + ] + }, + "tag_case_liquid": { + "name": "meta.entity.tag.case.liquid", + "begin": "(?:(?:(?<={%)|(?<={%-)|^)\\s*)(case|when)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.case.liquid" + } + }, + "end": "$", + "patterns": [ + { + "include": "#value_expression" + } + ] + }, + "tag_expression_without_arguments": { + "patterns": [ + { + "match": "(?:(?:(?<={%)|(?<={%-)|^)\\s*)(endunless|endif)\\b", + "captures": { + "1": { + "name": "keyword.control.conditional.liquid" + } + } + }, + { + "match": "(?:(?:(?<={%)|(?<={%-)|^)\\s*)(endfor|endtablerow|endpaginate)\\b", + "captures": { + "1": { + "name": "keyword.control.loop.liquid" + } + } + }, + { + "match": "(?:(?:(?<={%)|(?<={%-)|^)\\s*)(endcase)\\b", + "captures": { + "1": { + "name": "keyword.control.case.liquid" + } + } + }, + { + "match": "(?:(?:(?<={%)|(?<={%-)|^)\\s*)(capture|case|comment|for|form|if|javascript|paginate|schema|style)\\b", + "captures": { + "1": { + "name": "keyword.control.other.liquid" + } + } + }, + { + "match": "(?:(?:(?<={%)|(?<={%-)|^)\\s*)(endcapture|endcase|endcomment|endfor|endform|endif|endjavascript|endpaginate|endschema|endstyle)\\b", + "captures": { + "1": { + "name": "keyword.control.other.liquid" + } + } + }, + { + "match": "(?:(?:(?<={%)|(?<={%-)|^)\\s*)(else|break|continue)\\b", + "captures": { + "1": { + "name": "keyword.control.other.liquid" + } + } + } + ] + }, + "tag_expression": { + "patterns": [ + { + "include": "#tag_expression_without_arguments" + }, + { + "begin": "(?:(?:(?<={%)|(?<={%-)|^)\\s*)(\\w+)", + "beginCaptures": { + "1": { + "name": "entity.name.tag.liquid" + } + }, + "end": "(?=%})", + "name": "meta.entity.tag.liquid", + "patterns": [ + { + "include": "#value_expression" + } + ] + } + ] + }, + "tag_expression_liquid": { + "patterns": [ + { + "include": "#tag_expression_without_arguments" + }, + { + "begin": "(?:(?:(?<={%)|(?<={%-)|^)\\s*)(\\w+)", + "beginCaptures": { + "1": { + "name": "entity.name.tag.liquid" + } + }, + "end": "$", + "name": "meta.entity.tag.liquid", + "patterns": [ + { + "include": "#value_expression" + } + ] + } + ] + }, + "object": { + "begin": "(?<!comment %})(?<!comment -%})(?<!comment%})(?<!comment-%})(?<!raw %})(?<!raw -%})(?<!raw%})(?<!raw-%}){{-?", + "end": "-?}}", + "name": "meta.object.liquid", + "beginCaptures": { + "0": { + "name": "punctuation.definition.tag.begin.liquid" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.liquid" + } + }, + "patterns": [ + { + "include": "#filter" + }, + { + "include": "#attribute" + }, + { + "include": "#value_expression" + } + ] + }, + "invalid_range": { + "match": "\\((.(?!\\.\\.))+\\)", + "name": "invalid.illegal.range.liquid" + }, + "range": { + "begin": "\\(", + "end": "\\)", + "name": "meta.range.liquid", + "beginCaptures": { + "0": { + "name": "punctuation.section.parens.begin.liquid" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.parens.end.liquid" + } + }, + "patterns": [ + { + "match": "\\.\\.", + "name": "punctuation.range.liquid" + }, + { + "include": "#variable_lookup" + }, + { + "include": "#number" + } + ] + }, + "number": { + "match": "((-|\\+)\\s*)?[0-9]+(\\.[0-9]+)?", + "name": "constant.numeric.liquid" + }, + "string": { + "patterns": [ + { + "include": "#string_single" + }, + { + "include": "#string_double" + } + ] + }, + "string_double": { + "begin": "\"", + "end": "\"", + "name": "string.quoted.double.liquid" + }, + "string_single": { + "begin": "'", + "end": "'", + "name": "string.quoted.single.liquid" + }, + "operator": { + "match": "(?:(?<=\\s)|\\b)(\\=\\=|!\\=|\\>|\\<|\\>\\=|\\<\\=|or|and|contains)(?:(?=\\s)|\\b)", + "captures": { + "1": { + "name": "keyword.operator.expression.liquid" + } + } + }, + "language_constant": { + "match": "\\b(false|true|nil|blank)\\b|empty(?!\\?)", + "name": "constant.language.liquid" + }, + "attribute": { + "begin": "\\w+:", + "end": "(?=,|%}|}}|\\|)", + "beginCaptures": { + "0": { + "name": "entity.other.attribute-name.liquid" + } + }, + "patterns": [ + { + "include": "#value_expression" + } + ] + }, + "attribute_liquid": { + "begin": "\\w+:", + "end": "(?=,|\\|)|$", + "beginCaptures": { + "0": { + "name": "entity.other.attribute-name.liquid" + } + }, + "patterns": [ + { + "include": "#value_expression" + } + ] + }, + "filter": { + "match": "\\|\\s*((?![\\.0-9])[a-zA-Z0-9_-]+\\:?)\\s*", + "captures": { + "1": { + "name": "support.function.liquid" + } + } + }, + "value_expression": { + "patterns": [ + { + "match": "(\\[)(\\|)(?=[^\\]]*)(?=\\])", + "captures": { + "2": { + "name": "invalid.illegal.filter.liquid" + }, + "3": { + "name": "invalid.illegal.filter.liquid" + } + } + }, + { + "match": "(?<=\\s)(\\+|\\-|\\/|\\*)(?=\\s)", + "name": "invalid.illegal.filter.liquid" + }, + { + "include": "#language_constant" + }, + { + "include": "#operator" + }, + { + "include": "#invalid_range" + }, + { + "include": "#range" + }, + { + "include": "#number" + }, + { + "include": "#string" + }, + { + "include": "#variable_lookup" + } + ] + }, + "variable_lookup": { + "patterns": [ + { + "match": "\\b(additional_checkout_buttons|address|all_country_option_tags|all_products|article|articles|block|blog|blogs|canonical_url|cart|checkout|collection|collections|comment|content_for_additional_checkout_buttons|content_for_header|content_for_index|content_for_layout|country_option_tags|currency|current_page|current_tags|customer|customer_address|discount_allocation|discount_application|external_video|font|forloop|form|fulfillment|gift_card|handle|image|images|line_item|link|linklist|linklists|location|localization|metafield|model|model_source|order|page|page_description|page_image|page_title|pages|paginate|part|policy|powered_by_link|predictive_search|product|product_option|product_variant|recommendations|request|routes|script|scripts|search|section|selling_plan|selling_plan_allocation|selling_plan_group|settings|shipping_method|shop|shop_locale|store_availability|tablerow|tax_line|template|theme|transaction|unit_price_measurement|variant|video|video_source)\\b", + "name": "variable.language.liquid" + }, + { + "match": "((?<=\\w\\:\\s)\\w+)", + "name": "variable.parameter.liquid" + }, + { + "begin": "(?<=\\w)\\[", + "beginCaptures": { + "0": { + "name": "punctuation.section.brackets.begin.liquid" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.section.brackets.end.liquid" + } + }, + "name": "meta.brackets.liquid", + "patterns": [ + { + "include": "#string" + } + ] + }, + { + "match": "(?<=(\\w|\\])\\.)([-\\w]+\\??)", + "name": "variable.other.member.liquid" + }, + { + "match": "(?<=\\w)\\.(?=\\w)", + "name": "punctuation.accessor.liquid" + }, + { + "match": "(?i)[a-z_](\\w|(?:-(?!\\}\\})))*", + "name": "variable.other.liquid" + } + ] + } + } +} diff --git a/docs/shiki/languages/lisp.tmLanguage.json b/docs/shiki/languages/lisp.tmLanguage.json new file mode 100644 index 00000000..e7ca6bed --- /dev/null +++ b/docs/shiki/languages/lisp.tmLanguage.json @@ -0,0 +1,117 @@ +{ + "comment": "", + "fileTypes": ["lisp", "cl", "l", "mud", "el"], + "foldingStartMarker": "\\(", + "foldingStopMarker": "\\)", + "keyEquivalent": "^~L", + "name": "lisp", + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.comment.lisp" + } + }, + "match": "(;).*$\\n?", + "name": "comment.line.semicolon.lisp" + }, + { + "captures": { + "1": { + "name": "storage.type.function-type.lisp" + }, + "2": { + "name": "entity.name.function.lisp" + } + }, + "match": "(?:\\()((?i:defgeneric|define-compiler-macro|define-method-combination|define-modify-macro|define-setf-expander|defmacro|defmethod|defsetf|defun||define-\\S+))\\s+((?:\\w|[+\\-<>/*&=.?!$%:@\\[\\]^{}~#|])+)", + "name": "meta.function.lisp" + }, + { + "match": "(?<=\\s)(?i:&allow-other-keys|&aux|&body|&environment|&key|&optional|&rest|&whole)(?=\\s+)", + "name": "meta.function-parameters.lisp" + }, + { + "captures": { + "1": { + "name": "storage.type.function-type.lisp" + }, + "2": { + "name": "entity.name.type.lisp" + } + }, + "match": "(?:\\()((?i:deftype|defstruct|define-condition|defpackage|defclass))\\s+((?:\\w|[+\\-<>/*&=.?!$%:@\\[\\]^{}~#|])+)" + }, + { + "captures": { + "1": { + "name": "storage.type.function-type.lisp" + }, + "2": { + "name": "entity.name.variable.lisp" + } + }, + "match": "(?:\\()((?i:defvar|defconstant|defparameter|define-symbol-macro))\\s+((?:\\w|[+\\-<>/*&=.?!$%:@\\[\\]^{}~#|])+)" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.constant.lisp" + } + }, + "match": "(#)(\\w|[\\\\+-=<>'\"&#])+", + "name": "constant.character.lisp" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.variable.lisp" + }, + "3": { + "name": "punctuation.definition.variable.lisp" + } + }, + "match": "(?<=^|\\s|[()])(\\*)(\\S*)(\\*)(?=$|\\s|[()])", + "name": "variable.other.global.lisp" + }, + { + "match": "(?<=^|\\s|[()]):(\\w|[+\\-<>/*&=.?!$%:@\\[\\]^{}~#|])*", + "name": "keyword.constant.lisp" + }, + { + "match": "(?<=\\()(?i:\\*|\\*\\*|\\*\\*\\*|\\+|\\+\\+|\\+\\+\\+|\\-|/|//|///|/=|1\\+|1\\-|<|<=|=|>|>=|abort|abs|acons|acos|acosh|add-method|adjoin|adjust-array|adjustable-array-p|allocate-instance|alpha-char-p|alphanumericp|and|append|apply|apropos|apropos-list|aref|arithmetic-error|arithmetic-error-operands|arithmetic-error-operation|array|array-dimension|array-dimension-limit|array-dimensions|array-displacement|array-element-type|array-has-fill-pointer-p|array-in-bounds-p|array-rank|array-rank-limit|array-row-major-index|array-total-size|array-total-size-limit|arrayp|ash|asin|asinh|assert|assoc|assoc-if|assoc-if-not|atan|atanh|atom|base-char|base-string|bignum|bit|bit-and|bit-andc1|bit-andc2|bit-eqv|bit-ior|bit-nand|bit-nor|bit-not|bit-orc1|bit-orc2|bit-vector|bit-vector-p|bit-xor|block|boole|boole-1|boole-2|boole-and|boole-andc1|boole-andc2|boole-c1|boole-c2|boole-clr|boole-eqv|boole-ior|boole-nand|boole-nor|boole-orc1|boole-orc2|boole-set|boole-xor|boolean|both-case-p|boundp|break|broadcast-stream|broadcast-stream-streams|built-in-class|butlast|byte|byte-position|byte-size|caaaar|caaadr|caaar|caadar|caaddr|caadr|caar|cadaar|cadadr|cadar|caddar|cadddr|caddr|cadr|call-arguments-limit|call-method|call-next-method|car|case|catch|ccase|cdaaar|cdaadr|cdaar|cdadar|cdaddr|cdadr|cdar|cddaar|cddadr|cddar|cdddar|cddddr|cdddr|cddr|cdr|ceiling|cell-error|cell-error-name|cerror|change-class|char|char-code|char-code-limit|char-downcase|char-equal|char-greaterp|char-int|char-lessp|char-name|char-not-equal|char-not-greaterp|char-not-lessp|char-upcase|char/=|char<|char<=|char=|char>|char>=|character|characterp|check-type|cis|class|class-name|class-of|clear-input|clear-output|close|clrhash|code-char|coerce|compilation-speed|compile|compile-file|compile-file-pathname|compiled-function|compiled-function-p|compiler-macro|compiler-macro-function|complement|complex|complexp|compute-applicable-methods|compute-restarts|concatenate|concatenated-stream|concatenated-stream-streams|cond|condition|conjugate|cons|consp|constantly|constantp|continue|control-error|copy-alist|copy-list|copy-pprint-dispatch|copy-readtable|copy-seq|copy-structure|copy-symbol|copy-tree|cos|cosh|count|count-if|count-if-not|ctypecase|debug|decf|declaim|declaration|declare|decode-float|decode-universal-time|defclass|defconstant|defgeneric|define-compiler-macro|define-condition|define-method-combination|define-modify-macro|define-setf-expander|define-symbol-macro|defmacro|defmethod|defpackage|defparameter|defsetf|defstruct|deftype|defun|defvar|delete|delete-duplicates|delete-file|delete-if|delete-if-not|delete-package|denominator|deposit-field|describe|describe-object|destructuring-bind|digit-char|digit-char-p|directory|directory-namestring|disassemble|division-by-zero|do|do\\*|do-all-symbols|do-external-symbols|do-symbols|documentation|dolist|dotimes|double-float|double-float-epsilon|double-float-negative-epsilon|dpb|dribble|dynamic-extent|ecase|echo-stream|echo-stream-input-stream|echo-stream-output-stream|ed|eighth|elt|encode-universal-time|end-of-file|endp|enough-namestring|ensure-directories-exist|ensure-generic-function|eq|eql|equal|equalp|error|etypecase|eval|eval-when|evenp|every|exp|export|expt|extended-char|fboundp|fceiling|fdefinition|ffloor|fifth|file-author|file-error|file-error-pathname|file-length|file-namestring|file-position|file-stream|file-string-length|file-write-date|fill|fill-pointer|find|find-all-symbols|find-class|find-if|find-if-not|find-method|find-package|find-restart|find-symbol|finish-output|first|fixnum|flet|float|float-digits|float-precision|float-radix|float-sign|floating-point-inexact|floating-point-invalid-operation|floating-point-overflow|floating-point-underflow|floatp|floor|fmakunbound|force-output|format|formatter|fourth|fresh-line|fround|ftruncate|ftype|funcall|function|function-keywords|function-lambda-expression|functionp|gcd|generic-function|gensym|gentemp|get|get-decoded-time|get-dispatch-macro-character|get-internal-real-time|get-internal-run-time|get-macro-character|get-output-stream-string|get-properties|get-setf-expansion|get-universal-time|getf|gethash|go|graphic-char-p|handler-bind|handler-case|hash-table|hash-table-count|hash-table-p|hash-table-rehash-size|hash-table-rehash-threshold|hash-table-size|hash-table-test|host-namestring|identity|if|ignorable|ignore|ignore-errors|imagpart|import|in-package|incf|initialize-instance|inline|input-stream-p|inspect|integer|integer-decode-float|integer-length|integerp|interactive-stream-p|intern|internal-time-units-per-second|intersection|invalid-method-error|invoke-debugger|invoke-restart|invoke-restart-interactively|isqrt|keyword|keywordp|labels|lambda|lambda-list-keywords|lambda-parameters-limit|last|lcm|ldb|ldb-test|ldiff|least-negative-double-float|least-negative-long-float|least-negative-normalized-double-float|least-negative-normalized-long-float|least-negative-normalized-short-float|least-negative-normalized-single-float|least-negative-short-float|least-negative-single-float|least-positive-double-float|least-positive-long-float|least-positive-normalized-double-float|least-positive-normalized-long-float|least-positive-normalized-short-float|least-positive-normalized-single-float|least-positive-short-float|least-positive-single-float|length|let|let\\*|lisp-implementation-type|lisp-implementation-version|list|list\\*|list-all-packages|list-length|listen|listp|load|load-logical-pathname-translations|load-time-value|locally|log|logand|logandc1|logandc2|logbitp|logcount|logeqv|logical-pathname|logical-pathname-translations|logior|lognand|lognor|lognot|logorc1|logorc2|logtest|logxor|long-float|long-float-epsilon|long-float-negative-epsilon|long-site-name|loop|loop-finish|lower-case-p|machine-instance|machine-type|machine-version|macro-function|macroexpand|macroexpand-1|macrolet|make-array|make-broadcast-stream|make-concatenated-stream|make-condition|make-dispatch-macro-character|make-echo-stream|make-hash-table|make-instance|make-instances-obsolete|make-list|make-load-form|make-load-form-saving-slots|make-method|make-package|make-pathname|make-random-state|make-sequence|make-string|make-string-input-stream|make-string-output-stream|make-symbol|make-synonym-stream|make-two-way-stream|makunbound|map|map-into|mapc|mapcan|mapcar|mapcon|maphash|mapl|maplist|mask-field|max|member|member-if|member-if-not|merge|merge-pathnames|method|method-combination|method-combination-error|method-qualifiers|min|minusp|mismatch|mod|most-negative-double-float|most-negative-fixnum|most-negative-long-float|most-negative-short-float|most-negative-single-float|most-positive-double-float|most-positive-fixnum|most-positive-long-float|most-positive-short-float|most-positive-single-float|muffle-warning|multiple-value-bind|multiple-value-call|multiple-value-list|multiple-value-prog1|multiple-value-setq|multiple-values-limit|name-char|namestring|nbutlast|nconc|next-method-p|nil|nintersection|ninth|no-applicable-method|no-next-method|not|notany|notevery|notinline|nreconc|nreverse|nset-difference|nset-exclusive-or|nstring-capitalize|nstring-downcase|nstring-upcase|nsublis|nsubst|nsubst-if|nsubst-if-not|nsubstitute|nsubstitute-if|nsubstitute-if-not|nth|nth-value|nthcdr|null|number|numberp|numerator|nunion|oddp|open|open-stream-p|optimize|or|otherwise|output-stream-p|package|package-error|package-error-package|package-name|package-nicknames|package-shadowing-symbols|package-use-list|package-used-by-list|packagep|pairlis|parse-error|parse-integer|parse-namestring|pathname|pathname-device|pathname-directory|pathname-host|pathname-match-p|pathname-name|pathname-type|pathname-version|pathnamep|peek-char|phase|pi|plusp|pop|position|position-if|position-if-not|pprint|pprint-dispatch|pprint-exit-if-list-exhausted|pprint-fill|pprint-indent|pprint-linear|pprint-logical-block|pprint-newline|pprint-pop|pprint-tab|pprint-tabular|prin1|prin1-to-string|princ|princ-to-string|print|print-not-readable|print-not-readable-object|print-object|print-unreadable-object|probe-file|proclaim|prog|prog\\*|prog1|prog2|progn|program-error|progv|provide|psetf|psetq|push|pushnew|quote|random|random-state|random-state-p|rassoc|rassoc-if|rassoc-if-not|ratio|rational|rationalize|rationalp|read|read-byte|read-char|read-char-no-hang|read-delimited-list|read-from-string|read-line|read-preserving-whitespace|read-sequence|reader-error|readtable|readtable-case|readtablep|real|realp|realpart|reduce|reinitialize-instance|rem|remf|remhash|remove|remove-duplicates|remove-if|remove-if-not|remove-method|remprop|rename-file|rename-package|replace|require|rest|restart|restart-bind|restart-case|restart-name|return|return-from|revappend|reverse|room|rotatef|round|row-major-aref|rplaca|rplacd|safety|satisfies|sbit|scale-float|schar|search|second|sequence|serious-condition|set|set-difference|set-dispatch-macro-character|set-exclusive-or|set-macro-character|set-pprint-dispatch|set-syntax-from-char|setf|setq|seventh|shadow|shadowing-import|shared-initialize|shiftf|short-float|short-float-epsilon|short-float-negative-epsilon|short-site-name|signal|signed-byte|signum|simple-array|simple-base-string|simple-bit-vector|simple-bit-vector-p|simple-condition|simple-condition-format-arguments|simple-condition-format-control|simple-error|simple-string|simple-string-p|simple-type-error|simple-vector|simple-vector-p|simple-warning|sin|single-float|single-float-epsilon|single-float-negative-epsilon|sinh|sixth|sleep|slot-boundp|slot-exists-p|slot-makunbound|slot-missing|slot-unbound|slot-value|software-type|software-version|some|sort|space|special|special-operator-p|speed|sqrt|stable-sort|standard|standard-char|standard-char-p|standard-class|standard-generic-function|standard-method|standard-object|step|storage-condition|store-value|stream|stream-element-type|stream-error|stream-error-stream|stream-external-format|streamp|string|string-capitalize|string-downcase|string-equal|string-greaterp|string-left-trim|string-lessp|string-not-equal|string-not-greaterp|string-not-lessp|string-right-trim|string-stream|string-trim|string-upcase|string/=|string<|string<=|string=|string>|string>=|stringp|structure|structure-class|structure-object|style-warning|sublis|subseq|subsetp|subst|subst-if|subst-if-not|substitute|substitute-if|substitute-if-not|subtypep|svref|sxhash|symbol|symbol-function|symbol-macrolet|symbol-name|symbol-package|symbol-plist|symbol-value|symbolp|synonym-stream|synonym-stream-symbol|t|tagbody|tailp|tan|tanh|tenth|terpri|the|third|throw|time|trace|translate-logical-pathname|translate-pathname|tree-equal|truename|truncate|two-way-stream|two-way-stream-input-stream|two-way-stream-output-stream|type|type-error|type-error-datum|type-error-expected-type|type-of|typecase|typep|unbound-slot|unbound-slot-instance|unbound-variable|undefined-function|unexport|unintern|union|unless|unread-char|unsigned-byte|untrace|unuse-package|unwind-protect|update-instance-for-different-class|update-instance-for-redefined-class|upgraded-array-element-type|upgraded-complex-part-type|upper-case-p|use-package|use-value|user-homedir-pathname|values|values-list|variable|vector|vector-pop|vector-push|vector-push-extend|vectorp|warn|warning|when|wild-pathname-p|with-accessors|with-compilation-unit|with-condition-restarts|with-hash-table-iterator|with-input-from-string|with-open-file|with-open-stream|with-output-to-string|with-package-iterator|with-simple-restart|with-slots|with-standard-io-syntax|write|write-byte|write-char|write-line|write-sequence|write-string|write-to-string|y-or-n-p|yes-or-no-p|zerop|with-\\S+)(?=\\s+)", + "name": "keyword.control.lisp" + }, + { + "match": "(?<=^|\\s|[()])(?i:nil|t)(?=$|\\s|[()])", + "name": "constant.language.lisp" + }, + { + "match": "\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b", + "name": "constant.numeric.lisp" + }, + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.lisp" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.lisp" + } + }, + "name": "string.quoted.double.lisp", + "patterns": [ + { + "match": "\\\\.", + "name": "constant.character.escape.lisp" + } + ] + } + ], + "scopeName": "source.lisp", + "uuid": "00D451C9-6B1D-11D9-8DFA-000D93589AF6" +} diff --git a/docs/shiki/languages/logo.tmLanguage.json b/docs/shiki/languages/logo.tmLanguage.json new file mode 100644 index 00000000..4abee2ae --- /dev/null +++ b/docs/shiki/languages/logo.tmLanguage.json @@ -0,0 +1,56 @@ +{ + "comment": "Roughed out by Paul Bissex <http://e-scribe.com/news/>", + "fileTypes": [], + "keyEquivalent": "^~L", + "name": "logo", + "patterns": [ + { + "match": "^to [\\w.]+", + "name": "entity.name.function.logo" + }, + { + "match": "continue|do\\.until|do\\.while|end|for(each)?|if(else|falsetrue|)|repeat|stop|until", + "name": "keyword.control.logo" + }, + { + "match": "\\b(\\.defmacro|\\.eq|\\.macro|\\.maybeoutput|\\.setbf|\\.setfirst|\\.setitem|\\.setsegmentsize|allopen|allowgetset|and|apply|arc|arctan|arity|array|arrayp|arraytolist|ascii|ashift|back|background|backslashedp|beforep|bitand|bitnot|bitor|bitxor|buried|buriedp|bury|buryall|buryname|butfirst|butfirsts|butlast|bye|cascade|case|caseignoredp|catch|char|clean|clearscreen|cleartext|close|closeall|combine|cond|contents|copydef|cos|count|crossmap|cursor|define|definedp|dequeue|difference|dribble|edall|edit|editfile|edn|edns|edpl|edpls|edps|emptyp|eofp|epspict|equalp|erall|erase|erasefile|ern|erns|erpl|erpls|erps|erract|error|exp|fence|filep|fill|filter|find|first|firsts|forever|form|forward|fput|fullprintp|fullscreen|fulltext|gc|gensym|global|goto|gprop|greaterp|heading|help|hideturtle|home|ignore|int|invoke|iseq|item|keyp|label|last|left|lessp|list|listp|listtoarray|ln|load|loadnoisily|loadpict|local|localmake|log10|lowercase|lput|lshift|macroexpand|macrop|make|map|map.se|mdarray|mditem|mdsetitem|member|memberp|minus|modulo|name|namelist|namep|names|nodes|nodribble|norefresh|not|numberp|openappend|openread|openupdate|openwrite|or|output|palette|parse|pause|pen|pencolor|pendown|pendownp|penerase|penmode|penpaint|penreverse|pensize|penup|pick|plist|plistp|plists|pllist|po|poall|pon|pons|pop|popl|popls|pops|pos|pot|pots|power|pprop|prefix|primitivep|print|printdepthlimit|printwidthlimit|procedurep|procedures|product|push|queue|quoted|quotient|radarctan|radcos|radsin|random|rawascii|readchar|readchars|reader|readlist|readpos|readrawline|readword|redefp|reduce|refresh|remainder|remdup|remove|remprop|repcount|rerandom|reverse|right|round|rseq|run|runparse|runresult|save|savel|savepict|screenmode|scrunch|sentence|setbackground|setcursor|seteditor|setheading|sethelploc|setitem|setlibloc|setmargins|setpalette|setpen|setpencolor|setpensize|setpos|setprefix|setread|setreadpos|setscrunch|settemploc|settextcolor|setwrite|setwritepos|setx|setxy|sety|shell|show|shownp|showturtle|sin|splitscreen|sqrt|standout|startup|step|stepped|steppedp|substringp|sum|tag|test|text|textscreen|thing|throw|towards|trace|traced|tracedp|transfer|turtlemode|type|unbury|unburyall|unburyname|unburyonedit|unstep|untrace|uppercase|usealternatenam|wait|while|window|word|wordp|wrap|writepos|writer|xcor|ycor)\\b", + "name": "keyword.other.logo" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.variable.logo" + } + }, + "match": "(\\:)(?:\\|[^|]*\\||[-\\w.]*)+", + "name": "variable.parameter.logo" + }, + { + "match": "\"(?:\\|[^|]*\\||[-\\w.]*)+", + "name": "string.other.word.logo" + }, + { + "begin": "(^[ \\t]+)?(?=;)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.logo" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": ";", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.logo" + } + }, + "end": "\\n", + "name": "comment.line.semicolon.logo" + } + ] + } + ], + "scopeName": "source.logo", + "uuid": "7613EC24-B0F9-4D01-8706-1D54098BFFD8" +} diff --git a/docs/shiki/languages/lua.tmLanguage.json b/docs/shiki/languages/lua.tmLanguage.json new file mode 100644 index 00000000..bcd70cfb --- /dev/null +++ b/docs/shiki/languages/lua.tmLanguage.json @@ -0,0 +1,942 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/sumneko/lua.tmbundle/blob/master/Syntaxes/Lua.plist", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/sumneko/lua.tmbundle/commit/3a18700941737c3ab66ac5964696f141aee61800", + "name": "lua", + "scopeName": "source.lua", + "patterns": [ + { + "begin": "\\b(?:(local)\\s+)?(function)\\b(?![,:])", + "beginCaptures": { + "1": { + "name": "keyword.local.lua" + }, + "2": { + "name": "keyword.control.lua" + } + }, + "end": "(?<=[\\)\\-{}\\[\\]\"'])", + "name": "meta.function.lua", + "patterns": [ + { + "include": "#comment" + }, + { + "begin": "(\\()", + "beginCaptures": { + "1": { + "name": "punctuation.definition.parameters.begin.lua" + } + }, + "end": "(\\))|(?=[\\-\\.{}\\[\\]\"'])", + "endCaptures": { + "1": { + "name": "punctuation.definition.parameters.finish.lua" + } + }, + "name": "meta.parameter.lua", + "patterns": [ + { + "include": "#comment" + }, + { + "match": "[a-zA-Z_][a-zA-Z0-9_]*", + "name": "variable.parameter.function.lua" + }, + { + "match": ",", + "name": "punctuation.separator.arguments.lua" + }, + { + "begin": ":", + "beginCaptures": { + "0": { + "name": "punctuation.separator.arguments.lua" + } + }, + "end": "(?=[\\),])", + "patterns": [ + { + "include": "#emmydoc.type" + } + ] + } + ] + }, + { + "match": "\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b\\s*(?=:)", + "name": "entity.name.class.lua" + }, + { + "match": "\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b", + "name": "entity.name.function.lua" + } + ] + }, + { + "match": "(?<![\\w\\d.])0[xX][0-9A-Fa-f]+(\\.[0-9A-Fa-f]*)?([eE]-?\\d*)?([pP][-+]\\d+)?", + "name": "constant.numeric.float.hexadecimal.lua" + }, + { + "match": "(?<![\\w\\d.])0[xX]\\.[0-9A-Fa-f]+([eE]-?\\d*)?([pP][-+]\\d+)?", + "name": "constant.numeric.float.hexadecimal.lua" + }, + { + "match": "(?<![\\w\\d.])0[xX][0-9A-Fa-f]+(?![pPeE.0-9])", + "name": "constant.numeric.integer.hexadecimal.lua" + }, + { + "match": "(?<![\\w\\d.])\\d+(\\.\\d*)?([eE]-?\\d*)?", + "name": "constant.numeric.float.lua" + }, + { + "match": "(?<![\\w\\d.])\\.\\d+([eE]-?\\d*)?", + "name": "constant.numeric.float.lua" + }, + { + "match": "(?<![\\w\\d.])\\d+(?![pPeE.0-9])", + "name": "constant.numeric.integer.lua" + }, + { + "include": "#string" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.comment.lua" + } + }, + "match": "\\A(#!).*$\\n?", + "name": "comment.line.shebang.lua" + }, + { + "include": "#comment" + }, + { + "captures": { + "1": { + "name": "keyword.control.goto.lua" + }, + "2": { + "name": "string.tag.lua" + } + }, + "match": "\\b(goto)\\s+([a-zA-Z_][a-zA-Z0-9_]*)" + }, + { + "captures": { + "1": { + "name": "punctuation.section.embedded.begin.lua" + }, + "2": { + "name": "punctuation.section.embedded.end.lua" + } + }, + "match": "(::)\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*(::)", + "name": "string.tag.lua" + }, + { + "match": "<\\s*(const|close)\\s*>", + "captures": { + "1": { + "name": "string.tag.lua" + } + } + }, + { + "match": "\\<[a-zA-Z_\\*][a-zA-Z0-9_\\.\\*\\-]*\\>", + "name": "storage.type.generic.lua" + }, + { + "match": "\\b(break|do|else|for|if|elseif|goto|return|then|repeat|while|until|end|in)\\b", + "name": "keyword.control.lua" + }, + { + "match": "\\b(local|global)\\b", + "name": "keyword.local.lua" + }, + { + "match": "\\b(function)\\b(?![,:])", + "name": "keyword.control.lua" + }, + { + "match": "(?<![^.]\\.|:)\\b(false|nil(?!:)|true|_ENV|_G|_VERSION|math\\.(pi|huge|maxinteger|mininteger)|utf8\\.charpattern|io\\.(stdin|stdout|stderr)|package\\.(config|cpath|loaded|loaders|path|preload|searchers))\\b|(?<![.])\\.{3}(?!\\.)", + "name": "constant.language.lua" + }, + { + "match": "(?<![^.]\\.|:)\\b(self)\\b", + "name": "variable.language.self.lua" + }, + { + "match": "(?<![^.]\\.|:)\\b(assert|collectgarbage|dofile|error|getfenv|getmetatable|ipairs|load|loadfile|loadstring|module|next|pairs|pcall|print|rawequal|rawget|rawlen|rawset|require|select|setfenv|setmetatable|tonumber|tostring|type|unpack|xpcall)\\b(?!\\s*=(?!=))", + "name": "support.function.lua" + }, + { + "match": "(?<![^.]\\.|:)\\b(async)\\b(?!\\s*=(?!=))", + "name": "entity.name.tag.lua" + }, + { + "match": "(?<![^.]\\.|:)\\b(coroutine\\.(create|isyieldable|close|resume|running|status|wrap|yield)|string\\.(byte|char|dump|find|format|gmatch|gsub|len|lower|match|pack|packsize|rep|reverse|sub|unpack|upper)|table\\.(concat|insert|maxn|move|pack|remove|sort|unpack)|math\\.(abs|acos|asin|atan2?|ceil|cosh?|deg|exp|floor|fmod|frexp|ldexp|log|log10|max|min|modf|pow|rad|random|randomseed|sinh?|sqrt|tanh?|tointeger|type)|io\\.(close|flush|input|lines|open|output|popen|read|tmpfile|type|write)|os\\.(clock|date|difftime|execute|exit|getenv|remove|rename|setlocale|time|tmpname)|package\\.(loadlib|seeall|searchpath)|debug\\.(debug|[gs]etfenv|[gs]ethook|getinfo|[gs]etlocal|[gs]etmetatable|getregistry|[gs]etupvalue|[gs]etuservalue|set[Cc]stacklimit|traceback|upvalueid|upvaluejoin)|bit32\\.(arshift|band|bnot|bor|btest|bxor|extract|replace|lrotate|lshift|rrotate|rshift)|utf8\\.(char|codes|codepoint|len|offset))\\b(?!\\s*=(?!=))", + "name": "support.function.library.lua" + }, + { + "match": "\\b(and|or|not|\\|\\||\\&\\&|\\!)\\b", + "name": "keyword.operator.lua" + }, + { + "match": "\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b(?=\\s*(?:[({\"']|\\[\\[))", + "name": "support.function.any-method.lua" + }, + { + "match": "\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b(?=\\s*\\??:)", + "name": "entity.name.class.lua" + }, + { + "match": "(?<=[^.]\\.|:)\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b(?!\\s*=\\s*\\b(function)\\b)", + "name": "entity.other.attribute.lua" + }, + { + "match": "\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b(?!\\s*=\\s*\\b(function)\\b)", + "name": "variable.other.lua" + }, + { + "match": "\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b(?=\\s*=\\s*\\b(function)\\b)", + "name": "entity.name.function.lua" + }, + { + "match": "\\+|-|%|#|\\*|\\/|\\^|==?|~=|!=|<=?|>=?|(?<!\\.)\\.{2}(?!\\.)", + "name": "keyword.operator.lua" + } + ], + "repository": { + "escaped_char": { + "patterns": [ + { + "match": "\\\\[abfnrtv\\\\\"'\\n]", + "name": "constant.character.escape.lua" + }, + { + "match": "\\\\z[\\n\\t ]*", + "name": "constant.character.escape.lua" + }, + { + "match": "\\\\\\d{1,3}", + "name": "constant.character.escape.byte.lua" + }, + { + "match": "\\\\x[0-9A-Fa-f][0-9A-Fa-f]", + "name": "constant.character.escape.byte.lua" + }, + { + "match": "\\\\u\\{[0-9A-Fa-f]+\\}", + "name": "constant.character.escape.unicode.lua" + }, + { + "match": "\\\\.", + "name": "invalid.illegal.character.escape.lua" + } + ] + }, + "string": { + "patterns": [ + { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.lua" + } + }, + "end": "'[ \\t]*|(?=\\n)", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.lua" + } + }, + "name": "string.quoted.single.lua", + "patterns": [ + { + "include": "#escaped_char" + } + ] + }, + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.lua" + } + }, + "end": "\"[ \\t]*|(?=\\n)", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.lua" + } + }, + "name": "string.quoted.double.lua", + "patterns": [ + { + "include": "#escaped_char" + } + ] + }, + { + "begin": "`", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.lua" + } + }, + "end": "`[ \\t]*|(?=\\n)", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.lua" + } + }, + "name": "string.quoted.double.lua" + }, + { + "begin": "(?<=\\.cdef)\\s*(\\[(=*)\\[)", + "beginCaptures": { + "0": { + "name": "string.quoted.other.multiline.lua" + }, + "1": { + "name": "punctuation.definition.string.begin.lua" + } + }, + "contentName": "meta.embedded.lua", + "end": "(\\]\\2\\])[ \\t]*", + "endCaptures": { + "0": { + "name": "string.quoted.other.multiline.lua" + }, + "1": { + "name": "punctuation.definition.string.end.lua" + } + }, + "patterns": [ + { + "include": "source.c" + } + ] + }, + { + "begin": "(?<!--)\\[(=*)\\[", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.lua" + } + }, + "end": "\\]\\1\\][ \\t]*", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.lua" + } + }, + "name": "string.quoted.other.multiline.lua" + } + ] + }, + "comment": { + "patterns": [ + { + "begin": "(^[ \\t]+)?(?=--)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.lua" + } + }, + "end": "(?!\\G)((?!^)[ \\t]+\\n)?", + "endCaptures": { + "1": { + "name": "punctuation.whitespace.comment.trailing.lua" + } + }, + "patterns": [ + { + "begin": "--\\[(=*)\\[", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.begin.lua" + } + }, + "end": "\\]\\1\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.end.lua" + } + }, + "name": "comment.block.lua", + "patterns": [ + { + "include": "#emmydoc" + }, + { + "include": "#ldoc_tag" + } + ] + }, + { + "begin": "----", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.lua" + } + }, + "end": "\\n", + "name": "comment.line.double-dash.lua" + }, + { + "begin": "---", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.lua" + } + }, + "end": "\\n", + "name": "comment.line.double-dash.documentation.lua", + "patterns": [ + { + "include": "#emmydoc" + }, + { + "include": "#ldoc_tag" + } + ] + }, + { + "begin": "--", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.lua" + } + }, + "end": "\\n", + "name": "comment.line.double-dash.lua", + "patterns": [ + { + "include": "#ldoc_tag" + } + ] + } + ] + }, + { + "begin": "\\/\\*", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.begin.lua" + } + }, + "end": "\\*\\/", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.end.lua" + } + }, + "name": "comment.block.lua", + "patterns": [ + { + "include": "#emmydoc" + }, + { + "include": "#ldoc_tag" + } + ] + } + ] + }, + "emmydoc": { + "patterns": [ + { + "begin": "(?<=---[ \\t]*)@class", + "beginCaptures": { + "0": { + "name": "storage.type.annotation.lua" + } + }, + "end": "(?=[\\n@#])", + "patterns": [ + { + "match": "\\b([a-zA-Z_\\*][a-zA-Z0-9_\\.\\*\\-]*)", + "name": "support.class.lua" + }, + { + "match": ":|,", + "name": "keyword.operator.lua" + } + ] + }, + { + "begin": "(?<=---[ \\t]*)@enum", + "beginCaptures": { + "0": { + "name": "storage.type.annotation.lua" + } + }, + "end": "(?=[\\n@#])", + "patterns": [ + { + "begin": "\\b([a-zA-Z_\\*][a-zA-Z0-9_\\.\\*\\-]*)", + "beginCaptures": { + "0": { + "name": "variable.lua" + } + }, + "end": "(?=\\n)" + } + ] + }, + { + "begin": "(?<=---[ \\t]*)@type", + "beginCaptures": { + "0": { + "name": "storage.type.annotation.lua" + } + }, + "end": "(?=[\\n@#])", + "patterns": [ + { + "include": "#emmydoc.type" + } + ] + }, + { + "begin": "(?<=---[ \\t]*)@alias", + "beginCaptures": { + "0": { + "name": "storage.type.annotation.lua" + } + }, + "end": "(?=[\\n@#])", + "patterns": [ + { + "begin": "\\b([a-zA-Z_\\*][a-zA-Z0-9_\\.\\*\\-]*)", + "beginCaptures": { + "0": { + "name": "variable.lua" + } + }, + "end": "(?=[\\n#])", + "patterns": [ + { + "include": "#emmydoc.type" + } + ] + } + ] + }, + { + "begin": "(?<=---[ \\t]*)(@operator)\\s*(\\b[a-z]+)?", + "beginCaptures": { + "1": { + "name": "storage.type.annotation.lua" + }, + "2": { + "name": "support.function.library.lua" + } + }, + "end": "(?=[\\n@#])", + "patterns": [ + { + "include": "#emmydoc.type" + } + ] + }, + { + "begin": "(?<=---[ \\t]*)@cast", + "beginCaptures": { + "0": { + "name": "storage.type.annotation.lua" + } + }, + "end": "(?=[\\n@#])", + "patterns": [ + { + "begin": "\\b([a-zA-Z_\\*][a-zA-Z0-9_\\.\\*\\-]*)", + "beginCaptures": { + "0": { + "name": "variable.other.lua" + } + }, + "end": "(?=\\n)", + "patterns": [ + { + "include": "#emmydoc.type" + }, + { + "match": "([+-|])", + "name": "keyword.operator.lua" + } + ] + } + ] + }, + { + "begin": "(?<=---[ \\t]*)@param", + "beginCaptures": { + "0": { + "name": "storage.type.annotation.lua" + } + }, + "end": "(?=[\\n@#])", + "patterns": [ + { + "begin": "\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b(\\??)", + "beginCaptures": { + "1": { + "name": "entity.name.variable.lua" + }, + "2": { + "name": "keyword.operator.lua" + } + }, + "end": "(?=[\\n#])", + "patterns": [ + { + "include": "#emmydoc.type" + } + ] + } + ] + }, + { + "begin": "(?<=---[ \\t]*)@return", + "beginCaptures": { + "0": { + "name": "storage.type.annotation.lua" + } + }, + "end": "(?=[\\n@#])", + "patterns": [ + { + "match": "\\?", + "name": "keyword.operator.lua" + }, + { + "include": "#emmydoc.type" + } + ] + }, + { + "begin": "(?<=---[ \\t]*)@field", + "beginCaptures": { + "0": { + "name": "storage.type.annotation.lua" + } + }, + "end": "(?=[\\n@#])", + "patterns": [ + { + "begin": "(\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b|(\\[))(\\??)", + "beginCaptures": { + "2": { + "name": "entity.name.variable.lua" + }, + "3": { + "name": "keyword.operator.lua" + } + }, + "end": "(?=[\\n#])", + "patterns": [ + { + "include": "#string" + }, + { + "include": "#emmydoc.type" + }, + { + "match": "\\]", + "name": "keyword.operator.lua" + } + ] + } + ] + }, + { + "begin": "(?<=---[ \\t]*)@generic", + "beginCaptures": { + "0": { + "name": "storage.type.annotation.lua" + } + }, + "end": "(?=[\\n@#])", + "patterns": [ + { + "begin": "\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b", + "beginCaptures": { + "0": { + "name": "storage.type.generic.lua" + } + }, + "end": "(?=\\n)|(,)", + "endCaptures": { + "0": { + "name": "keyword.operator.lua" + } + }, + "patterns": [ + { + "match": ":", + "name": "keyword.operator.lua" + }, + { + "include": "#emmydoc.type" + } + ] + } + ] + }, + { + "begin": "(?<=---[ \\t]*)@vararg", + "beginCaptures": { + "0": { + "name": "storage.type.annotation.lua" + } + }, + "end": "(?=[\\n@#])", + "patterns": [ + { + "include": "#emmydoc.type" + } + ] + }, + { + "begin": "(?<=---[ \\t]*)@overload", + "beginCaptures": { + "0": { + "name": "storage.type.annotation.lua" + } + }, + "end": "(?=[\\n@#])", + "patterns": [ + { + "include": "#emmydoc.type" + } + ] + }, + { + "begin": "(?<=---[ \\t]*)@deprecated", + "beginCaptures": { + "0": { + "name": "storage.type.annotation.lua" + } + }, + "end": "(?=[\\n@#])" + }, + { + "begin": "(?<=---[ \\t]*)@meta", + "beginCaptures": { + "0": { + "name": "storage.type.annotation.lua" + } + }, + "end": "(?=[\\n@#])" + }, + { + "begin": "(?<=---[ \\t]*)@private", + "beginCaptures": { + "0": { + "name": "storage.type.annotation.lua" + } + }, + "end": "(?=[\\n@#])" + }, + { + "begin": "(?<=---[ \\t]*)@protected", + "beginCaptures": { + "0": { + "name": "storage.type.annotation.lua" + } + }, + "end": "(?=[\\n@#])" + }, + { + "begin": "(?<=---[ \\t]*)@package", + "beginCaptures": { + "0": { + "name": "storage.type.annotation.lua" + } + }, + "end": "(?=[\\n@#])" + }, + { + "begin": "(?<=---[ \\t]*)@version", + "beginCaptures": { + "0": { + "name": "storage.type.annotation.lua" + } + }, + "end": "(?=[\\n@#])", + "patterns": [ + { + "match": "\\b(5\\.1|5\\.2|5\\.3|5\\.4|JIT)\\b", + "name": "support.class.lua" + }, + { + "match": ",|\\>|\\<", + "name": "keyword.operator.lua" + } + ] + }, + { + "begin": "(?<=---[ \\t]*)@see", + "beginCaptures": { + "0": { + "name": "storage.type.annotation.lua" + } + }, + "end": "(?=[\\n@#])", + "patterns": [ + { + "match": "\\b([a-zA-Z_\\*][a-zA-Z0-9_\\.\\*\\-]*)", + "name": "support.class.lua" + }, + { + "match": "#", + "name": "keyword.operator.lua" + } + ] + }, + { + "begin": "(?<=---[ \\t]*)@diagnostic", + "beginCaptures": { + "0": { + "name": "storage.type.annotation.lua" + } + }, + "end": "(?=[\\n@#])", + "patterns": [ + { + "begin": "([a-zA-Z_\\-0-9]+)[ \\t]*(:)?", + "beginCaptures": { + "1": { + "name": "keyword.other.unit" + }, + "2": { + "name": "keyword.operator.unit" + } + }, + "end": "(?=\\n)", + "patterns": [ + { + "match": "\\b([a-zA-Z_\\*][a-zA-Z0-9_\\-]*)", + "name": "support.class.lua" + }, + { + "match": ",", + "name": "keyword.operator.lua" + } + ] + } + ] + }, + { + "begin": "(?<=---[ \\t]*)@module", + "beginCaptures": { + "0": { + "name": "storage.type.annotation.lua" + } + }, + "end": "(?=[\\n@#])", + "patterns": [ + { + "include": "#string" + } + ] + }, + { + "match": "(?<=---[ \\t]*)@(async|nodiscard)", + "name": "storage.type.annotation.lua" + }, + { + "begin": "(?<=---)\\|\\s*[\\>\\+]?", + "beginCaptures": { + "0": { + "name": "storage.type.annotation.lua" + } + }, + "end": "(?=[\\n@#])", + "patterns": [ + { + "include": "#string" + } + ] + } + ] + }, + "emmydoc.type": { + "patterns": [ + { + "begin": "\\bfun\\b", + "beginCaptures": { + "0": { + "name": "keyword.control.lua" + } + }, + "end": "(?=[\\s#])", + "patterns": [ + { + "match": "[\\(\\),:\\?][ \\t]*", + "name": "keyword.operator.lua" + }, + { + "match": "([a-zA-Z_][a-zA-Z0-9_\\.\\*\\[\\]\\<\\>\\,\\-]*)(?<!,)[ \\t]*(?=\\??:)", + "name": "entity.name.variable.lua" + }, + { + "include": "#emmydoc.type" + }, + { + "include": "#string" + } + ] + }, + { + "match": "\\<[a-zA-Z_\\*][a-zA-Z0-9_\\.\\*\\-]*\\>", + "name": "storage.type.generic.lua" + }, + { + "match": "\\basync\\b", + "name": "entity.name.tag.lua" + }, + { + "match": "[\\{\\}\\:\\,\\?\\|\\`][ \\t]*", + "name": "keyword.operator.lua" + }, + { + "begin": "(?=[a-zA-Z_\\.\\*\"'\\[])", + "end": "(?=[\\s\\)\\,\\?\\:\\}\\|#])", + "patterns": [ + { + "match": "([a-zA-Z0-9_\\.\\*\\[\\]\\<\\>\\,\\-]+)(?<!,)[ \\t]*", + "name": "support.type.lua" + }, + { + "match": "(\\.\\.\\.)[ \\t]*", + "name": "constant.language.lua" + }, + { + "include": "#string" + } + ] + } + ] + }, + "ldoc_tag": { + "match": "\\G[ \\t]*(@)(alias|annotation|author|charset|class|classmod|comment|constructor|copyright|description|example|export|factory|field|file|fixme|function|include|lfunction|license|local|module|name|param|pragma|private|raise|release|return|script|section|see|set|static|submodule|summary|tfield|thread|tparam|treturn|todo|topic|type|usage|warning|within)\\b", + "end": "(?!@)\\b", + "captures": { + "1": { + "name": "punctuation.definition.block.tag.ldoc" + }, + "2": { + "name": "storage.type.class.ldoc" + } + } + } + } +} diff --git a/docs/shiki/languages/make.tmLanguage.json b/docs/shiki/languages/make.tmLanguage.json new file mode 100644 index 00000000..439f758f --- /dev/null +++ b/docs/shiki/languages/make.tmLanguage.json @@ -0,0 +1,634 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/fadeevab/make.tmbundle/blob/master/Syntaxes/Makefile.plist", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/fadeevab/make.tmbundle/commit/1d4c0b541959995db098df751ffc129da39a294b", + "name": "make", + "scopeName": "source.makefile", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#variables" + }, + { + "include": "#variable-assignment" + }, + { + "include": "#directives" + }, + { + "include": "#recipe" + }, + { + "include": "#target" + } + ], + "repository": { + "comma": { + "match": ",", + "name": "punctuation.separator.delimeter.comma.makefile" + }, + "comment": { + "begin": "(^[ ]+)?((?<!\\\\)(\\\\\\\\)*)(?=#)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.makefile" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": "#", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.makefile" + } + }, + "end": "(?=[^\\\\])$", + "name": "comment.line.number-sign.makefile", + "patterns": [ + { + "match": "\\\\\\n", + "name": "constant.character.escape.continuation.makefile" + } + ] + } + ] + }, + "directives": { + "patterns": [ + { + "begin": "^[ ]*([s\\-]?include)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.include.makefile" + } + }, + "end": "^", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#variables" + }, + { + "match": "%", + "name": "constant.other.placeholder.makefile" + } + ] + }, + { + "begin": "^[ ]*(vpath)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.vpath.makefile" + } + }, + "end": "^", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#variables" + }, + { + "match": "%", + "name": "constant.other.placeholder.makefile" + } + ] + }, + { + "begin": "^\\s*(?:(override)\\s*)?(define)\\s*([^\\s]+)\\s*(=|\\?=|:=|\\+=)?(?=\\s)", + "captures": { + "1": { + "name": "keyword.control.override.makefile" + }, + "2": { + "name": "keyword.control.define.makefile" + }, + "3": { + "name": "variable.other.makefile" + }, + "4": { + "name": "punctuation.separator.key-value.makefile" + } + }, + "end": "^\\s*(endef)\\b", + "name": "meta.scope.conditional.makefile", + "patterns": [ + { + "begin": "\\G(?!\\n)", + "end": "^", + "patterns": [ + { + "include": "#comment" + } + ] + }, + { + "include": "#variables" + }, + { + "include": "#directives" + } + ] + }, + { + "begin": "^[ ]*(export)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.$1.makefile" + } + }, + "end": "^", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#variable-assignment" + }, + { + "match": "[^\\s]+", + "name": "variable.other.makefile" + } + ] + }, + { + "begin": "^[ ]*(override|private)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.$1.makefile" + } + }, + "end": "^", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#variable-assignment" + } + ] + }, + { + "begin": "^[ ]*(unexport|undefine)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.$1.makefile" + } + }, + "end": "^", + "patterns": [ + { + "include": "#comment" + }, + { + "match": "[^\\s]+", + "name": "variable.other.makefile" + } + ] + }, + { + "begin": "^\\s*(ifeq|ifneq|ifdef|ifndef)(?=\\s)", + "captures": { + "1": { + "name": "keyword.control.$1.makefile" + } + }, + "end": "^\\s*(endif)\\b", + "name": "meta.scope.conditional.makefile", + "patterns": [ + { + "begin": "\\G", + "end": "^", + "name": "meta.scope.condition.makefile", + "patterns": [ + { + "include": "#comma" + }, + { + "include": "#variables" + }, + { + "include": "#comment" + } + ] + }, + { + "begin": "^\\s*else(?=\\s)\\s*(ifeq|ifneq|ifdef|ifndef)*(?=\\s)", + "beginCaptures": { + "0": { + "name": "keyword.control.else.makefile" + } + }, + "end": "^", + "patterns": [ + { + "include": "#comma" + }, + { + "include": "#variables" + }, + { + "include": "#comment" + } + ] + }, + { + "include": "$self" + } + ] + } + ] + }, + "target": { + "begin": "^(?!\\t)([^:]*)(:)(?!\\=)", + "beginCaptures": { + "1": { + "patterns": [ + { + "captures": { + "1": { + "name": "support.function.target.$1.makefile" + } + }, + "match": "^\\s*(\\.(PHONY|SUFFIXES|DEFAULT|PRECIOUS|INTERMEDIATE|SECONDARY|SECONDEXPANSION|DELETE_ON_ERROR|IGNORE|LOW_RESOLUTION_TIME|SILENT|EXPORT_ALL_VARIABLES|NOTPARALLEL|ONESHELL|POSIX))\\s*$" + }, + { + "begin": "(?=\\S)", + "end": "(?=\\s|$)", + "name": "entity.name.function.target.makefile", + "patterns": [ + { + "include": "#variables" + }, + { + "match": "%", + "name": "constant.other.placeholder.makefile" + } + ] + } + ] + }, + "2": { + "name": "punctuation.separator.key-value.makefile" + } + }, + "end": "[^\\\\]$", + "name": "meta.scope.target.makefile", + "patterns": [ + { + "begin": "\\G", + "end": "(?=[^\\\\])$", + "name": "meta.scope.prerequisites.makefile", + "patterns": [ + { + "match": "\\\\\\n", + "name": "constant.character.escape.continuation.makefile" + }, + { + "match": "%|\\*", + "name": "constant.other.placeholder.makefile" + }, + { + "include": "#comment" + }, + { + "include": "#variables" + } + ] + } + ] + }, + "recipe": { + "begin": "^\\t([+\\-@]*)", + "beginCaptures": { + "1": { + "name": "keyword.control.$1.makefile" + } + }, + "end": "[^\\\\]$", + "name": "meta.scope.recipe.makefile", + "patterns": [ + { + "match": "\\\\\\n", + "name": "constant.character.escape.continuation.makefile" + }, + { + "include": "#variables" + } + ] + }, + "variable-assignment": { + "begin": "(^[ ]*|\\G\\s*)([^\\s:#=]+)\\s*((?<![?:+!])=|\\?=|:=|\\+=|!=)", + "beginCaptures": { + "2": { + "name": "variable.other.makefile", + "patterns": [ + { + "include": "#variables" + } + ] + }, + "3": { + "name": "punctuation.separator.key-value.makefile" + } + }, + "end": "\\n", + "patterns": [ + { + "match": "\\\\\\n", + "name": "constant.character.escape.continuation.makefile" + }, + { + "include": "#comment" + }, + { + "include": "#variables" + } + ] + }, + "interpolation": { + "patterns": [ + { + "include": "#parentheses-interpolation" + }, + { + "include": "#braces-interpolation" + } + ] + }, + "parentheses-interpolation": { + "begin": "\\(", + "end": "\\)", + "patterns": [ + { + "include": "#variables" + }, + { + "include": "#interpolation" + } + ] + }, + "braces-interpolation": { + "begin": "{", + "end": "}", + "patterns": [ + { + "include": "#variables" + }, + { + "include": "#interpolation" + } + ] + }, + "variables": { + "patterns": [ + { + "include": "#simple-variable" + }, + { + "include": "#variable-parentheses" + }, + { + "include": "#variable-braces" + } + ] + }, + "simple-variable": { + "patterns": [ + { + "match": "\\$[^(){}]", + "name": "variable.language.makefile" + } + ] + }, + "variable-parentheses": { + "patterns": [ + { + "begin": "\\$\\(", + "captures": { + "0": { + "name": "punctuation.definition.variable.makefile" + } + }, + "end": "\\)|((?<!\\\\)\\n)", + "name": "string.interpolated.makefile", + "patterns": [ + { + "include": "#variables" + }, + { + "include": "#builtin-variable-parentheses" + }, + { + "include": "#function-variable-parentheses" + }, + { + "include": "#flavor-variable-parentheses" + }, + { + "include": "#another-variable-parentheses" + } + ] + } + ] + }, + "variable-braces": { + "patterns": [ + { + "begin": "\\${", + "captures": { + "0": { + "name": "punctuation.definition.variable.makefile" + } + }, + "end": "}|((?<!\\\\)\\n)", + "name": "string.interpolated.makefile", + "patterns": [ + { + "include": "#variables" + }, + { + "include": "#builtin-variable-braces" + }, + { + "include": "#function-variable-braces" + }, + { + "include": "#flavor-variable-braces" + }, + { + "include": "#another-variable-braces" + } + ] + } + ] + }, + "builtin-variable-parentheses": { + "patterns": [ + { + "match": "(?<=\\()(MAKEFILES|VPATH|SHELL|MAKESHELL|MAKE|MAKELEVEL|MAKEFLAGS|MAKECMDGOALS|CURDIR|SUFFIXES|\\.LIBPATTERNS)(?=\\s*\\))", + "name": "variable.language.makefile" + } + ] + }, + "builtin-variable-braces": { + "patterns": [ + { + "match": "(?<={)(MAKEFILES|VPATH|SHELL|MAKESHELL|MAKE|MAKELEVEL|MAKEFLAGS|MAKECMDGOALS|CURDIR|SUFFIXES|\\.LIBPATTERNS)(?=\\s*})", + "name": "variable.language.makefile" + } + ] + }, + "function-variable-parentheses": { + "patterns": [ + { + "begin": "(?<=\\()(subst|patsubst|strip|findstring|filter(-out)?|sort|word(list)?|firstword|lastword|dir|notdir|suffix|basename|addsuffix|addprefix|join|wildcard|realpath|abspath|info|error|warning|shell|foreach|if|or|and|call|eval|value|file|guile)\\s", + "beginCaptures": { + "1": { + "name": "support.function.$1.makefile" + } + }, + "end": "(?=\\)|((?<!\\\\)\\n))", + "name": "meta.scope.function-call.makefile", + "patterns": [ + { + "include": "#comma" + }, + { + "include": "#variables" + }, + { + "include": "#interpolation" + }, + { + "match": "%|\\*", + "name": "constant.other.placeholder.makefile" + }, + { + "match": "\\\\\\n", + "name": "constant.character.escape.continuation.makefile" + } + ] + } + ] + }, + "function-variable-braces": { + "patterns": [ + { + "begin": "(?<={)(subst|patsubst|strip|findstring|filter(-out)?|sort|word(list)?|firstword|lastword|dir|notdir|suffix|basename|addsuffix|addprefix|join|wildcard|realpath|abspath|info|error|warning|shell|foreach|if|or|and|call|eval|value|file|guile)\\s", + "beginCaptures": { + "1": { + "name": "support.function.$1.makefile" + } + }, + "end": "(?=}|((?<!\\\\)\\n))", + "name": "meta.scope.function-call.makefile", + "patterns": [ + { + "include": "#comma" + }, + { + "include": "#variables" + }, + { + "include": "#interpolation" + }, + { + "match": "%|\\*", + "name": "constant.other.placeholder.makefile" + }, + { + "match": "\\\\\\n", + "name": "constant.character.escape.continuation.makefile" + } + ] + } + ] + }, + "flavor-variable-parentheses": { + "patterns": [ + { + "begin": "(?<=\\()(origin|flavor)\\s(?=[^\\s)]+\\s*\\))", + "contentName": "variable.other.makefile", + "beginCaptures": { + "1": { + "name": "support.function.$1.makefile" + } + }, + "end": "(?=\\))", + "name": "meta.scope.function-call.makefile", + "patterns": [ + { + "include": "#variables" + } + ] + } + ] + }, + "flavor-variable-braces": { + "patterns": [ + { + "begin": "(?<={)(origin|flavor)\\s(?=[^\\s}]+\\s*})", + "contentName": "variable.other.makefile", + "beginCaptures": { + "1": { + "name": "support.function.$1.makefile" + } + }, + "end": "(?=})", + "name": "meta.scope.function-call.makefile", + "patterns": [ + { + "include": "#variables" + } + ] + } + ] + }, + "another-variable-parentheses": { + "patterns": [ + { + "begin": "(?<=\\()(?!\\))", + "end": "(?=\\)|((?<!\\\\)\\n))", + "name": "variable.other.makefile", + "patterns": [ + { + "include": "#variables" + }, + { + "match": "\\\\\\n", + "name": "constant.character.escape.continuation.makefile" + } + ] + } + ] + }, + "another-variable-braces": { + "patterns": [ + { + "begin": "(?<={)(?!})", + "end": "(?=}|((?<!\\\\)\\n))", + "name": "variable.other.makefile", + "patterns": [ + { + "include": "#variables" + }, + { + "match": "\\\\\\n", + "name": "constant.character.escape.continuation.makefile" + } + ] + } + ] + } + } +} diff --git a/docs/shiki/languages/markdown.tmLanguage.json b/docs/shiki/languages/markdown.tmLanguage.json new file mode 100644 index 00000000..c1c497a2 --- /dev/null +++ b/docs/shiki/languages/markdown.tmLanguage.json @@ -0,0 +1,3076 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/microsoft/vscode-markdown-tm-grammar/blob/master/syntaxes/markdown.tmLanguage", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/microsoft/vscode-markdown-tm-grammar/commit/0a4b23580308fdcfb4ab7b526e3e13ba17d436fb", + "name": "markdown", + "scopeName": "text.html.markdown", + "patterns": [ + { + "include": "#frontMatter" + }, + { + "include": "#block" + } + ], + "repository": { + "block": { + "patterns": [ + { + "include": "#separator" + }, + { + "include": "#heading" + }, + { + "include": "#blockquote" + }, + { + "include": "#lists" + }, + { + "include": "#fenced_code_block" + }, + { + "include": "#raw_block" + }, + { + "include": "#link-def" + }, + { + "include": "#html" + }, + { + "include": "#table" + }, + { + "include": "#paragraph" + } + ] + }, + "blockquote": { + "begin": "(^|\\G)[ ]{0,3}(>) ?", + "captures": { + "2": { + "name": "punctuation.definition.quote.begin.markdown" + } + }, + "name": "markup.quote.markdown", + "patterns": [ + { + "include": "#block" + } + ], + "while": "(^|\\G)\\s*(>) ?" + }, + "fenced_code_block_css": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(css|css.erb)((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.css", + "patterns": [ + { + "include": "source.css" + } + ] + } + ] + }, + "fenced_code_block_basic": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(html|htm|shtml|xhtml|inc|tmpl|tpl)((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.html", + "patterns": [ + { + "include": "text.html.basic" + } + ] + } + ] + }, + "fenced_code_block_ini": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(ini|conf)((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.ini", + "patterns": [ + { + "include": "source.ini" + } + ] + } + ] + }, + "fenced_code_block_java": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(java|bsh)((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.java", + "patterns": [ + { + "include": "source.java" + } + ] + } + ] + }, + "fenced_code_block_lua": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(lua)((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.lua", + "patterns": [ + { + "include": "source.lua" + } + ] + } + ] + }, + "fenced_code_block_makefile": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(Makefile|makefile|GNUmakefile|OCamlMakefile)((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.makefile", + "patterns": [ + { + "include": "source.makefile" + } + ] + } + ] + }, + "fenced_code_block_perl": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(perl|pl|pm|pod|t|PL|psgi|vcl)((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.perl", + "patterns": [ + { + "include": "source.perl" + } + ] + } + ] + }, + "fenced_code_block_r": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(R|r|s|S|Rprofile|\\{\\.r.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.r", + "patterns": [ + { + "include": "source.r" + } + ] + } + ] + }, + "fenced_code_block_ruby": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(ruby|rb|rbx|rjs|Rakefile|rake|cgi|fcgi|gemspec|irbrc|Capfile|ru|prawn|Cheffile|Gemfile|Guardfile|Hobofile|Vagrantfile|Appraisals|Rantfile|Berksfile|Berksfile.lock|Thorfile|Puppetfile)((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.ruby", + "patterns": [ + { + "include": "source.ruby" + } + ] + } + ] + }, + "fenced_code_block_php": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(php|php3|php4|php5|phpt|phtml|aw|ctp)((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.php", + "patterns": [ + { + "include": "text.html.basic" + }, + { + "include": "source.php" + } + ] + } + ] + }, + "fenced_code_block_sql": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(sql|ddl|dml)((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.sql", + "patterns": [ + { + "include": "source.sql" + } + ] + } + ] + }, + "fenced_code_block_vs_net": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(vb)((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.vs_net", + "patterns": [ + { + "include": "source.asp.vb.net" + } + ] + } + ] + }, + "fenced_code_block_xml": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(xml|xsd|tld|jsp|pt|cpt|dtml|rss|opml)((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.xml", + "patterns": [ + { + "include": "text.xml" + } + ] + } + ] + }, + "fenced_code_block_xsl": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(xsl|xslt)((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.xsl", + "patterns": [ + { + "include": "text.xml.xsl" + } + ] + } + ] + }, + "fenced_code_block_yaml": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(yaml|yml)((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.yaml", + "patterns": [ + { + "include": "source.yaml" + } + ] + } + ] + }, + "fenced_code_block_dosbatch": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(bat|batch)((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.dosbatch", + "patterns": [ + { + "include": "source.batchfile" + } + ] + } + ] + }, + "fenced_code_block_clojure": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(clj|cljs|clojure)((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.clojure", + "patterns": [ + { + "include": "source.clojure" + } + ] + } + ] + }, + "fenced_code_block_coffee": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(coffee|Cakefile|coffee.erb)((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.coffee", + "patterns": [ + { + "include": "source.coffee" + } + ] + } + ] + }, + "fenced_code_block_c": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(c|h)((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.c", + "patterns": [ + { + "include": "source.c" + } + ] + } + ] + }, + "fenced_code_block_cpp": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(cpp|c\\+\\+|cxx)((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.cpp source.cpp", + "patterns": [ + { + "include": "source.cpp" + } + ] + } + ] + }, + "fenced_code_block_diff": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(patch|diff|rej)((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.diff", + "patterns": [ + { + "include": "source.diff" + } + ] + } + ] + }, + "fenced_code_block_dockerfile": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(dockerfile|Dockerfile)((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.dockerfile", + "patterns": [ + { + "include": "source.dockerfile" + } + ] + } + ] + }, + "fenced_code_block_git_commit": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(COMMIT_EDITMSG|MERGE_MSG)((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.git_commit", + "patterns": [ + { + "include": "text.git-commit" + } + ] + } + ] + }, + "fenced_code_block_git_rebase": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(git-rebase-todo)((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.git_rebase", + "patterns": [ + { + "include": "text.git-rebase" + } + ] + } + ] + }, + "fenced_code_block_go": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(go|golang)((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.go", + "patterns": [ + { + "include": "source.go" + } + ] + } + ] + }, + "fenced_code_block_groovy": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(groovy|gvy)((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.groovy", + "patterns": [ + { + "include": "source.groovy" + } + ] + } + ] + }, + "fenced_code_block_pug": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(jade|pug)((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.pug", + "patterns": [ + { + "include": "text.pug" + } + ] + } + ] + }, + "fenced_code_block_js": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(js|jsx|javascript|es6|mjs|cjs|dataviewjs|\\{\\.js.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.javascript", + "patterns": [ + { + "include": "source.js" + } + ] + } + ] + }, + "fenced_code_block_js_regexp": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(regexp)((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.js_regexp", + "patterns": [ + { + "include": "source.js.regexp" + } + ] + } + ] + }, + "fenced_code_block_json": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(json|json5|sublime-settings|sublime-menu|sublime-keymap|sublime-mousemap|sublime-theme|sublime-build|sublime-project|sublime-completions)((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.json", + "patterns": [ + { + "include": "source.json" + } + ] + } + ] + }, + "fenced_code_block_jsonc": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(jsonc)((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.jsonc", + "patterns": [ + { + "include": "source.json.comments" + } + ] + } + ] + }, + "fenced_code_block_less": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(less)((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.less", + "patterns": [ + { + "include": "source.css.less" + } + ] + } + ] + }, + "fenced_code_block_objc": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(objectivec|objective-c|mm|objc|obj-c|m|h)((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.objc", + "patterns": [ + { + "include": "source.objc" + } + ] + } + ] + }, + "fenced_code_block_swift": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(swift)((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.swift", + "patterns": [ + { + "include": "source.swift" + } + ] + } + ] + }, + "fenced_code_block_scss": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(scss)((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.scss", + "patterns": [ + { + "include": "source.css.scss" + } + ] + } + ] + }, + "fenced_code_block_perl6": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(perl6|p6|pl6|pm6|nqp)((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.perl6", + "patterns": [ + { + "include": "source.perl.6" + } + ] + } + ] + }, + "fenced_code_block_powershell": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(powershell|ps1|psm1|psd1)((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.powershell", + "patterns": [ + { + "include": "source.powershell" + } + ] + } + ] + }, + "fenced_code_block_python": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(python|py|py3|rpy|pyw|cpy|SConstruct|Sconstruct|sconstruct|SConscript|gyp|gypi|\\{\\.python.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.python", + "patterns": [ + { + "include": "source.python" + } + ] + } + ] + }, + "fenced_code_block_julia": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(julia|\\{\\.julia.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.julia", + "patterns": [ + { + "include": "source.julia" + } + ] + } + ] + }, + "fenced_code_block_regexp_python": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(re)((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.regexp_python", + "patterns": [ + { + "include": "source.regexp.python" + } + ] + } + ] + }, + "fenced_code_block_rust": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(rust|rs|\\{\\.rust.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.rust", + "patterns": [ + { + "include": "source.rust" + } + ] + } + ] + }, + "fenced_code_block_scala": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(scala|sbt)((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.scala", + "patterns": [ + { + "include": "source.scala" + } + ] + } + ] + }, + "fenced_code_block_shell": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(shell|sh|bash|zsh|bashrc|bash_profile|bash_login|profile|bash_logout|.textmate_init|\\{\\.bash.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.shellscript", + "patterns": [ + { + "include": "source.shell" + } + ] + } + ] + }, + "fenced_code_block_ts": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(typescript|ts)((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.typescript", + "patterns": [ + { + "include": "source.ts" + } + ] + } + ] + }, + "fenced_code_block_tsx": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(tsx)((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.typescriptreact", + "patterns": [ + { + "include": "source.tsx" + } + ] + } + ] + }, + "fenced_code_block_csharp": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(cs|csharp|c#)((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.csharp", + "patterns": [ + { + "include": "source.cs" + } + ] + } + ] + }, + "fenced_code_block_fsharp": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(fs|fsharp|f#)((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.fsharp", + "patterns": [ + { + "include": "source.fsharp" + } + ] + } + ] + }, + "fenced_code_block_dart": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(dart)((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.dart", + "patterns": [ + { + "include": "source.dart" + } + ] + } + ] + }, + "fenced_code_block_handlebars": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(handlebars|hbs)((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.handlebars", + "patterns": [ + { + "include": "text.html.handlebars" + } + ] + } + ] + }, + "fenced_code_block_markdown": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(markdown|md)((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.markdown", + "patterns": [ + { + "include": "text.html.markdown" + } + ] + } + ] + }, + "fenced_code_block_log": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(log)((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.log", + "patterns": [ + { + "include": "text.log" + } + ] + } + ] + }, + "fenced_code_block_erlang": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(erlang)((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.erlang", + "patterns": [ + { + "include": "source.erlang" + } + ] + } + ] + }, + "fenced_code_block_elixir": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(elixir)((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.elixir", + "patterns": [ + { + "include": "source.elixir" + } + ] + } + ] + }, + "fenced_code_block_latex": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(latex|tex)((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.latex", + "patterns": [ + { + "include": "text.tex.latex" + } + ] + } + ] + }, + "fenced_code_block_bibtex": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(bibtex)((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.bibtex", + "patterns": [ + { + "include": "text.bibtex" + } + ] + } + ] + }, + "fenced_code_block_twig": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(twig)((\\s+|:|,|\\{|\\?)[^`]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language.markdown" + }, + "5": { + "name": "fenced_code.block.language.attributes.markdown" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.twig", + "patterns": [ + { + "include": "source.twig" + } + ] + } + ] + }, + "fenced_code_block": { + "patterns": [ + { + "include": "#fenced_code_block_css" + }, + { + "include": "#fenced_code_block_basic" + }, + { + "include": "#fenced_code_block_ini" + }, + { + "include": "#fenced_code_block_java" + }, + { + "include": "#fenced_code_block_lua" + }, + { + "include": "#fenced_code_block_makefile" + }, + { + "include": "#fenced_code_block_perl" + }, + { + "include": "#fenced_code_block_r" + }, + { + "include": "#fenced_code_block_ruby" + }, + { + "include": "#fenced_code_block_php" + }, + { + "include": "#fenced_code_block_sql" + }, + { + "include": "#fenced_code_block_vs_net" + }, + { + "include": "#fenced_code_block_xml" + }, + { + "include": "#fenced_code_block_xsl" + }, + { + "include": "#fenced_code_block_yaml" + }, + { + "include": "#fenced_code_block_dosbatch" + }, + { + "include": "#fenced_code_block_clojure" + }, + { + "include": "#fenced_code_block_coffee" + }, + { + "include": "#fenced_code_block_c" + }, + { + "include": "#fenced_code_block_cpp" + }, + { + "include": "#fenced_code_block_diff" + }, + { + "include": "#fenced_code_block_dockerfile" + }, + { + "include": "#fenced_code_block_git_commit" + }, + { + "include": "#fenced_code_block_git_rebase" + }, + { + "include": "#fenced_code_block_go" + }, + { + "include": "#fenced_code_block_groovy" + }, + { + "include": "#fenced_code_block_pug" + }, + { + "include": "#fenced_code_block_js" + }, + { + "include": "#fenced_code_block_js_regexp" + }, + { + "include": "#fenced_code_block_json" + }, + { + "include": "#fenced_code_block_jsonc" + }, + { + "include": "#fenced_code_block_less" + }, + { + "include": "#fenced_code_block_objc" + }, + { + "include": "#fenced_code_block_swift" + }, + { + "include": "#fenced_code_block_scss" + }, + { + "include": "#fenced_code_block_perl6" + }, + { + "include": "#fenced_code_block_powershell" + }, + { + "include": "#fenced_code_block_python" + }, + { + "include": "#fenced_code_block_julia" + }, + { + "include": "#fenced_code_block_regexp_python" + }, + { + "include": "#fenced_code_block_rust" + }, + { + "include": "#fenced_code_block_scala" + }, + { + "include": "#fenced_code_block_shell" + }, + { + "include": "#fenced_code_block_ts" + }, + { + "include": "#fenced_code_block_tsx" + }, + { + "include": "#fenced_code_block_csharp" + }, + { + "include": "#fenced_code_block_fsharp" + }, + { + "include": "#fenced_code_block_dart" + }, + { + "include": "#fenced_code_block_handlebars" + }, + { + "include": "#fenced_code_block_markdown" + }, + { + "include": "#fenced_code_block_log" + }, + { + "include": "#fenced_code_block_erlang" + }, + { + "include": "#fenced_code_block_elixir" + }, + { + "include": "#fenced_code_block_latex" + }, + { + "include": "#fenced_code_block_bibtex" + }, + { + "include": "#fenced_code_block_twig" + }, + { + "include": "#fenced_code_block_unknown" + } + ] + }, + "fenced_code_block_unknown": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?=([^`]*)?$)", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "4": { + "name": "fenced_code.block.language" + } + }, + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "name": "markup.fenced_code.block.markdown" + }, + "heading": { + "match": "(?:^|\\G)[ ]{0,3}(#{1,6}\\s+(.*?)(\\s+#{1,6})?\\s*)$", + "captures": { + "1": { + "patterns": [ + { + "match": "(#{6})\\s+(.*?)(?:\\s+(#+))?\\s*$", + "name": "heading.6.markdown", + "captures": { + "1": { + "name": "punctuation.definition.heading.markdown" + }, + "2": { + "name": "entity.name.section.markdown", + "patterns": [ + { + "include": "#inline" + }, + { + "include": "text.html.derivative" + } + ] + }, + "3": { + "name": "punctuation.definition.heading.markdown" + } + } + }, + { + "match": "(#{5})\\s+(.*?)(?:\\s+(#+))?\\s*$", + "name": "heading.5.markdown", + "captures": { + "1": { + "name": "punctuation.definition.heading.markdown" + }, + "2": { + "name": "entity.name.section.markdown", + "patterns": [ + { + "include": "#inline" + }, + { + "include": "text.html.derivative" + } + ] + }, + "3": { + "name": "punctuation.definition.heading.markdown" + } + } + }, + { + "match": "(#{4})\\s+(.*?)(?:\\s+(#+))?\\s*$", + "name": "heading.4.markdown", + "captures": { + "1": { + "name": "punctuation.definition.heading.markdown" + }, + "2": { + "name": "entity.name.section.markdown", + "patterns": [ + { + "include": "#inline" + }, + { + "include": "text.html.derivative" + } + ] + }, + "3": { + "name": "punctuation.definition.heading.markdown" + } + } + }, + { + "match": "(#{3})\\s+(.*?)(?:\\s+(#+))?\\s*$", + "name": "heading.3.markdown", + "captures": { + "1": { + "name": "punctuation.definition.heading.markdown" + }, + "2": { + "name": "entity.name.section.markdown", + "patterns": [ + { + "include": "#inline" + }, + { + "include": "text.html.derivative" + } + ] + }, + "3": { + "name": "punctuation.definition.heading.markdown" + } + } + }, + { + "match": "(#{2})\\s+(.*?)(?:\\s+(#+))?\\s*$", + "name": "heading.2.markdown", + "captures": { + "1": { + "name": "punctuation.definition.heading.markdown" + }, + "2": { + "name": "entity.name.section.markdown", + "patterns": [ + { + "include": "#inline" + }, + { + "include": "text.html.derivative" + } + ] + }, + "3": { + "name": "punctuation.definition.heading.markdown" + } + } + }, + { + "match": "(#{1})\\s+(.*?)(?:\\s+(#+))?\\s*$", + "name": "heading.1.markdown", + "captures": { + "1": { + "name": "punctuation.definition.heading.markdown" + }, + "2": { + "name": "entity.name.section.markdown", + "patterns": [ + { + "include": "#inline" + }, + { + "include": "text.html.derivative" + } + ] + }, + "3": { + "name": "punctuation.definition.heading.markdown" + } + } + } + ] + } + }, + "name": "markup.heading.markdown", + "patterns": [ + { + "include": "#inline" + } + ] + }, + "heading-setext": { + "patterns": [ + { + "match": "^(={3,})(?=[ \\t]*$\\n?)", + "name": "markup.heading.setext.1.markdown" + }, + { + "match": "^(-{3,})(?=[ \\t]*$\\n?)", + "name": "markup.heading.setext.2.markdown" + } + ] + }, + "html": { + "patterns": [ + { + "begin": "(^|\\G)\\s*(<!--)", + "captures": { + "1": { + "name": "punctuation.definition.comment.html" + }, + "2": { + "name": "punctuation.definition.comment.html" + } + }, + "end": "(-->)", + "name": "comment.block.html" + }, + { + "begin": "(?i)(^|\\G)\\s*(?=<(script|style|pre)(\\s|$|>)(?!.*?</(script|style|pre)>))", + "end": "(?i)(.*)((</)(script|style|pre)(>))", + "endCaptures": { + "1": { + "patterns": [ + { + "include": "text.html.derivative" + } + ] + }, + "2": { + "name": "meta.tag.structure.$4.end.html" + }, + "3": { + "name": "punctuation.definition.tag.begin.html" + }, + "4": { + "name": "entity.name.tag.html" + }, + "5": { + "name": "punctuation.definition.tag.end.html" + } + }, + "patterns": [ + { + "begin": "(\\s*|$)", + "patterns": [ + { + "include": "text.html.derivative" + } + ], + "while": "(?i)^(?!.*</(script|style|pre)>)" + } + ] + }, + { + "begin": "(?i)(^|\\G)\\s*(?=</?[a-zA-Z]+[^\\s/>]*(\\s|$|/?>))", + "patterns": [ + { + "include": "text.html.derivative" + } + ], + "while": "^(?!\\s*$)" + }, + { + "begin": "(^|\\G)\\s*(?=(<[a-zA-Z0-9\\-](/?>|\\s.*?>)|</[a-zA-Z0-9\\-]>)\\s*$)", + "patterns": [ + { + "include": "text.html.derivative" + } + ], + "while": "^(?!\\s*$)" + } + ] + }, + "link-def": { + "captures": { + "1": { + "name": "punctuation.definition.constant.markdown" + }, + "2": { + "name": "constant.other.reference.link.markdown" + }, + "3": { + "name": "punctuation.definition.constant.markdown" + }, + "4": { + "name": "punctuation.separator.key-value.markdown" + }, + "5": { + "name": "punctuation.definition.link.markdown" + }, + "6": { + "name": "markup.underline.link.markdown" + }, + "7": { + "name": "punctuation.definition.link.markdown" + }, + "8": { + "name": "markup.underline.link.markdown" + }, + "9": { + "name": "string.other.link.description.title.markdown" + }, + "10": { + "name": "punctuation.definition.string.begin.markdown" + }, + "11": { + "name": "punctuation.definition.string.end.markdown" + }, + "12": { + "name": "string.other.link.description.title.markdown" + }, + "13": { + "name": "punctuation.definition.string.begin.markdown" + }, + "14": { + "name": "punctuation.definition.string.end.markdown" + }, + "15": { + "name": "string.other.link.description.title.markdown" + }, + "16": { + "name": "punctuation.definition.string.begin.markdown" + }, + "17": { + "name": "punctuation.definition.string.end.markdown" + } + }, + "match": "(?x)\n \\s* # Leading whitespace\n (\\[)([^]]+?)(\\])(:) # Reference name\n [ \\t]* # Optional whitespace\n (?:(<)((?:\\\\[<>]|[^<>\\n])*)(>)|(\\S+?)) # The url\n [ \\t]* # Optional whitespace\n (?:\n ((\\().+?(\\))) # Match title in parens…\n | ((\").+?(\")) # or in double quotes…\n | ((').+?(')) # or in single quotes.\n )? # Title is optional\n \\s* # Optional whitespace\n $\n", + "name": "meta.link.reference.def.markdown" + }, + "list_paragraph": { + "begin": "(^|\\G)(?=\\S)(?![*+->]\\s|[0-9]+\\.\\s)", + "name": "meta.paragraph.markdown", + "patterns": [ + { + "include": "#inline" + }, + { + "include": "text.html.derivative" + }, + { + "include": "#heading-setext" + } + ], + "while": "(^|\\G)(?!\\s*$|#|[ ]{0,3}([-*_>][ ]{2,}){3,}[ \\t]*$\\n?|[ ]{0,3}[*+->]|[ ]{0,3}[0-9]+\\.)" + }, + "lists": { + "patterns": [ + { + "begin": "(^|\\G)([ ]{0,3})([*+-])([ \\t])", + "beginCaptures": { + "3": { + "name": "punctuation.definition.list.begin.markdown" + } + }, + "comment": "Currently does not support un-indented second lines.", + "name": "markup.list.unnumbered.markdown", + "patterns": [ + { + "include": "#block" + }, + { + "include": "#list_paragraph" + } + ], + "while": "((^|\\G)([ ]{2,4}|\\t))|(^[ \\t]*$)" + }, + { + "begin": "(^|\\G)([ ]{0,3})([0-9]+[\\.\\)])([ \\t])", + "beginCaptures": { + "3": { + "name": "punctuation.definition.list.begin.markdown" + } + }, + "name": "markup.list.numbered.markdown", + "patterns": [ + { + "include": "#block" + }, + { + "include": "#list_paragraph" + } + ], + "while": "((^|\\G)([ ]{2,4}|\\t))|(^[ \\t]*$)" + } + ] + }, + "paragraph": { + "begin": "(^|\\G)[ ]{0,3}(?=[^ \\t\\n])", + "name": "meta.paragraph.markdown", + "patterns": [ + { + "include": "#inline" + }, + { + "include": "text.html.derivative" + }, + { + "include": "#heading-setext" + } + ], + "while": "(^|\\G)((?=\\s*[-=]{3,}\\s*$)|[ ]{4,}(?=[^ \\t\\n]))" + }, + "raw_block": { + "begin": "(^|\\G)([ ]{4}|\\t)", + "name": "markup.raw.block.markdown", + "while": "(^|\\G)([ ]{4}|\\t)" + }, + "separator": { + "match": "(^|\\G)[ ]{0,3}([\\*\\-\\_])([ ]{0,2}\\2){2,}[ \\t]*$\\n?", + "name": "meta.separator.markdown" + }, + "frontMatter": { + "begin": "\\A-{3}\\s*$", + "contentName": "meta.embedded.block.frontmatter", + "patterns": [ + { + "include": "source.yaml" + } + ], + "end": "(^|\\G)-{3}|\\.{3}\\s*$" + }, + "table": { + "name": "markup.table.markdown", + "begin": "(^|\\G)(\\|)(?=[^|].+\\|\\s*$)", + "beginCaptures": { + "2": { + "name": "punctuation.definition.table.markdown" + } + }, + "while": "(^|\\G)(?=\\|)", + "patterns": [ + { + "match": "\\|", + "name": "punctuation.definition.table.markdown" + }, + { + "match": "(?<=\\|)\\s*(:?-+:?)\\s*(?=\\|)", + "captures": { + "1": { + "name": "punctuation.separator.table.markdown" + } + } + }, + { + "match": "(?<=\\|)\\s*(?=\\S)((\\\\\\||[^|])+)(?<=\\S)\\s*(?=\\|)", + "captures": { + "1": { + "patterns": [ + { + "include": "#inline" + } + ] + } + } + } + ] + }, + "inline": { + "patterns": [ + { + "include": "#ampersand" + }, + { + "include": "#bracket" + }, + { + "include": "#bold" + }, + { + "include": "#italic" + }, + { + "include": "#raw" + }, + { + "include": "#strikethrough" + }, + { + "include": "#escape" + }, + { + "include": "#image-inline" + }, + { + "include": "#image-ref" + }, + { + "include": "#link-email" + }, + { + "include": "#link-inet" + }, + { + "include": "#link-inline" + }, + { + "include": "#link-ref" + }, + { + "include": "#link-ref-literal" + }, + { + "include": "#link-ref-shortcut" + } + ] + }, + "ampersand": { + "comment": "Markdown will convert this for us. We match it so that the HTML grammar will not mark it up as invalid.", + "match": "&(?!([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+);)", + "name": "meta.other.valid-ampersand.markdown" + }, + "bold": { + "begin": "(?x) (?<open>(\\*\\*(?=\\w)|(?<!\\w)\\*\\*|(?<!\\w)\\b__))(?=\\S) (?=\n (\n <[^>]*+> # HTML tags\n | (?<raw>`+)([^`]|(?!(?<!`)\\k<raw>(?!`))`)*+\\k<raw>\n # Raw\n | \\\\[\\\\`*_{}\\[\\]()#.!+\\->]?+ # Escapes\n | \\[\n (\n (?<square> # Named group\n [^\\[\\]\\\\] # Match most chars\n | \\\\. # Escaped chars\n | \\[ \\g<square>*+ \\] # Nested brackets\n )*+\n \\]\n (\n ( # Reference Link\n [ ]? # Optional space\n \\[[^\\]]*+\\] # Ref name\n )\n | ( # Inline Link\n \\( # Opening paren\n [ \\t]*+ # Optional whitespace\n <?(.*?)>? # URL\n [ \\t]*+ # Optional whitespace\n ( # Optional Title\n (?<title>['\"])\n (.*?)\n \\k<title>\n )?\n \\)\n )\n )\n )\n | (?!(?<=\\S)\\k<open>). # Everything besides\n # style closer\n )++\n (?<=\\S)(?=__\\b|\\*\\*)\\k<open> # Close\n)\n", + "captures": { + "1": { + "name": "punctuation.definition.bold.markdown" + } + }, + "end": "(?<=\\S)(\\1)", + "name": "markup.bold.markdown", + "patterns": [ + { + "applyEndPatternLast": 1, + "begin": "(?=<[^>]*?>)", + "end": "(?<=>)", + "patterns": [ + { + "include": "text.html.derivative" + } + ] + }, + { + "include": "#escape" + }, + { + "include": "#ampersand" + }, + { + "include": "#bracket" + }, + { + "include": "#raw" + }, + { + "include": "#bold" + }, + { + "include": "#italic" + }, + { + "include": "#image-inline" + }, + { + "include": "#link-inline" + }, + { + "include": "#link-inet" + }, + { + "include": "#link-email" + }, + { + "include": "#image-ref" + }, + { + "include": "#link-ref-literal" + }, + { + "include": "#link-ref" + }, + { + "include": "#link-ref-shortcut" + }, + { + "include": "#strikethrough" + } + ] + }, + "bracket": { + "comment": "Markdown will convert this for us. We match it so that the HTML grammar will not mark it up as invalid.", + "match": "<(?![a-zA-Z/?\\$!])", + "name": "meta.other.valid-bracket.markdown" + }, + "escape": { + "match": "\\\\[-`*_#+.!(){}\\[\\]\\\\>]", + "name": "constant.character.escape.markdown" + }, + "image-inline": { + "captures": { + "1": { + "name": "punctuation.definition.link.description.begin.markdown" + }, + "2": { + "name": "string.other.link.description.markdown" + }, + "4": { + "name": "punctuation.definition.link.description.end.markdown" + }, + "5": { + "name": "punctuation.definition.metadata.markdown" + }, + "7": { + "name": "punctuation.definition.link.markdown" + }, + "8": { + "name": "markup.underline.link.image.markdown" + }, + "9": { + "name": "punctuation.definition.link.markdown" + }, + "10": { + "name": "markup.underline.link.image.markdown" + }, + "12": { + "name": "string.other.link.description.title.markdown" + }, + "13": { + "name": "punctuation.definition.string.begin.markdown" + }, + "14": { + "name": "punctuation.definition.string.end.markdown" + }, + "15": { + "name": "string.other.link.description.title.markdown" + }, + "16": { + "name": "punctuation.definition.string.begin.markdown" + }, + "17": { + "name": "punctuation.definition.string.end.markdown" + }, + "18": { + "name": "string.other.link.description.title.markdown" + }, + "19": { + "name": "punctuation.definition.string.begin.markdown" + }, + "20": { + "name": "punctuation.definition.string.end.markdown" + }, + "21": { + "name": "punctuation.definition.metadata.markdown" + } + }, + "match": "(?x)\n (\\!\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])\n # Match the link text.\n (\\() # Opening paren for url\n # The url\n [ \\t]*\n (\n (<)((?:\\\\[<>]|[^<>\\n])*)(>)\n | ((?<url>(?>[^\\s()]+)|\\(\\g<url>*\\))*)\n )\n [ \\t]*\n (?:\n ((\\().+?(\\))) # Match title in parens…\n | ((\").+?(\")) # or in double quotes…\n | ((').+?(')) # or in single quotes.\n )? # Title is optional\n \\s* # Optional whitespace\n (\\))\n", + "name": "meta.image.inline.markdown" + }, + "image-ref": { + "captures": { + "1": { + "name": "punctuation.definition.link.description.begin.markdown" + }, + "2": { + "name": "string.other.link.description.markdown" + }, + "4": { + "name": "punctuation.definition.link.description.end.markdown" + }, + "5": { + "name": "punctuation.definition.constant.markdown" + }, + "6": { + "name": "constant.other.reference.link.markdown" + }, + "7": { + "name": "punctuation.definition.constant.markdown" + } + }, + "match": "(\\!\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])[ ]?(\\[)(.*?)(\\])", + "name": "meta.image.reference.markdown" + }, + "italic": { + "begin": "(?x) (?<open>(\\*(?=\\w)|(?<!\\w)\\*|(?<!\\w)\\b_))(?=\\S) # Open\n (?=\n (\n <[^>]*+> # HTML tags\n | (?<raw>`+)([^`]|(?!(?<!`)\\k<raw>(?!`))`)*+\\k<raw>\n # Raw\n | \\\\[\\\\`*_{}\\[\\]()#.!+\\->]?+ # Escapes\n | \\[\n (\n (?<square> # Named group\n [^\\[\\]\\\\] # Match most chars\n | \\\\. # Escaped chars\n | \\[ \\g<square>*+ \\] # Nested brackets\n )*+\n \\]\n (\n ( # Reference Link\n [ ]? # Optional space\n \\[[^\\]]*+\\] # Ref name\n )\n | ( # Inline Link\n \\( # Opening paren\n [ \\t]*+ # Optional whtiespace\n <?(.*?)>? # URL\n [ \\t]*+ # Optional whtiespace\n ( # Optional Title\n (?<title>['\"])\n (.*?)\n \\k<title>\n )?\n \\)\n )\n )\n )\n | \\k<open>\\k<open> # Must be bold closer\n | (?!(?<=\\S)\\k<open>). # Everything besides\n # style closer\n )++\n (?<=\\S)(?=_\\b|\\*)\\k<open> # Close\n )\n", + "captures": { + "1": { + "name": "punctuation.definition.italic.markdown" + } + }, + "end": "(?<=\\S)(\\1)((?!\\1)|(?=\\1\\1))", + "name": "markup.italic.markdown", + "patterns": [ + { + "applyEndPatternLast": 1, + "begin": "(?=<[^>]*?>)", + "end": "(?<=>)", + "patterns": [ + { + "include": "text.html.derivative" + } + ] + }, + { + "include": "#escape" + }, + { + "include": "#ampersand" + }, + { + "include": "#bracket" + }, + { + "include": "#raw" + }, + { + "include": "#bold" + }, + { + "include": "#image-inline" + }, + { + "include": "#link-inline" + }, + { + "include": "#link-inet" + }, + { + "include": "#link-email" + }, + { + "include": "#image-ref" + }, + { + "include": "#link-ref-literal" + }, + { + "include": "#link-ref" + }, + { + "include": "#link-ref-shortcut" + }, + { + "include": "#strikethrough" + } + ] + }, + "link-email": { + "captures": { + "1": { + "name": "punctuation.definition.link.markdown" + }, + "2": { + "name": "markup.underline.link.markdown" + }, + "4": { + "name": "punctuation.definition.link.markdown" + } + }, + "match": "(<)((?:mailto:)?[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*)(>)", + "name": "meta.link.email.lt-gt.markdown" + }, + "link-inet": { + "captures": { + "1": { + "name": "punctuation.definition.link.markdown" + }, + "2": { + "name": "markup.underline.link.markdown" + }, + "3": { + "name": "punctuation.definition.link.markdown" + } + }, + "match": "(<)((?:https?|ftp)://.*?)(>)", + "name": "meta.link.inet.markdown" + }, + "link-inline": { + "captures": { + "1": { + "name": "punctuation.definition.link.title.begin.markdown" + }, + "2": { + "name": "string.other.link.title.markdown", + "patterns": [ + { + "include": "#raw" + }, + { + "include": "#bold" + }, + { + "include": "#italic" + }, + { + "include": "#strikethrough" + }, + { + "include": "#image-inline" + } + ] + }, + "4": { + "name": "punctuation.definition.link.title.end.markdown" + }, + "5": { + "name": "punctuation.definition.metadata.markdown" + }, + "7": { + "name": "punctuation.definition.link.markdown" + }, + "8": { + "name": "markup.underline.link.markdown" + }, + "9": { + "name": "punctuation.definition.link.markdown" + }, + "10": { + "name": "markup.underline.link.markdown" + }, + "12": { + "name": "string.other.link.description.title.markdown" + }, + "13": { + "name": "punctuation.definition.string.begin.markdown" + }, + "14": { + "name": "punctuation.definition.string.end.markdown" + }, + "15": { + "name": "string.other.link.description.title.markdown" + }, + "16": { + "name": "punctuation.definition.string.begin.markdown" + }, + "17": { + "name": "punctuation.definition.string.end.markdown" + }, + "18": { + "name": "string.other.link.description.title.markdown" + }, + "19": { + "name": "punctuation.definition.string.begin.markdown" + }, + "20": { + "name": "punctuation.definition.string.end.markdown" + }, + "21": { + "name": "punctuation.definition.metadata.markdown" + } + }, + "match": "(?x)\n (\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])\n # Match the link text.\n (\\() # Opening paren for url\n # The url\n [ \\t]*\n (\n (<)((?:\\\\[<>]|[^<>\\n])*)(>)\n | ((?<url>(?>[^\\s()]+)|\\(\\g<url>*\\))*)\n )\n [ \\t]*\n # The title \n (?:\n ((\\()[^()]*(\\))) # Match title in parens…\n | ((\")[^\"]*(\")) # or in double quotes…\n | ((')[^']*(')) # or in single quotes.\n )? # Title is optional\n \\s* # Optional whitespace\n (\\))\n", + "name": "meta.link.inline.markdown" + }, + "link-ref": { + "captures": { + "1": { + "name": "punctuation.definition.link.title.begin.markdown" + }, + "2": { + "name": "string.other.link.title.markdown", + "patterns": [ + { + "include": "#raw" + }, + { + "include": "#bold" + }, + { + "include": "#italic" + }, + { + "include": "#strikethrough" + }, + { + "include": "#image-inline" + } + ] + }, + "4": { + "name": "punctuation.definition.link.title.end.markdown" + }, + "5": { + "name": "punctuation.definition.constant.begin.markdown" + }, + "6": { + "name": "constant.other.reference.link.markdown" + }, + "7": { + "name": "punctuation.definition.constant.end.markdown" + } + }, + "match": "(?<![\\]\\\\])(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])(\\[)([^\\]]*+)(\\])", + "name": "meta.link.reference.markdown" + }, + "link-ref-literal": { + "captures": { + "1": { + "name": "punctuation.definition.link.title.begin.markdown" + }, + "2": { + "name": "string.other.link.title.markdown" + }, + "4": { + "name": "punctuation.definition.link.title.end.markdown" + }, + "5": { + "name": "punctuation.definition.constant.begin.markdown" + }, + "6": { + "name": "punctuation.definition.constant.end.markdown" + } + }, + "match": "(?<![\\]\\\\])(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])[ ]?(\\[)(\\])", + "name": "meta.link.reference.literal.markdown" + }, + "link-ref-shortcut": { + "captures": { + "1": { + "name": "punctuation.definition.link.title.begin.markdown" + }, + "2": { + "name": "string.other.link.title.markdown" + }, + "3": { + "name": "punctuation.definition.link.title.end.markdown" + } + }, + "match": "(?<![\\]\\\\])(\\[)((?:[^\\s\\[\\]\\\\]|\\\\[\\[\\]])+?)((?<!\\\\)\\])", + "name": "meta.link.reference.markdown" + }, + "raw": { + "captures": { + "1": { + "name": "punctuation.definition.raw.markdown" + }, + "3": { + "name": "punctuation.definition.raw.markdown" + } + }, + "match": "(`+)((?:[^`]|(?!(?<!`)\\1(?!`))`)*+)(\\1)", + "name": "markup.inline.raw.string.markdown" + }, + "strikethrough": { + "captures": { + "1": { + "name": "punctuation.definition.strikethrough.markdown" + }, + "2": { + "patterns": [ + { + "applyEndPatternLast": 1, + "begin": "(?=<[^>]*?>)", + "end": "(?<=>)", + "patterns": [ + { + "include": "text.html.derivative" + } + ] + }, + { + "include": "#escape" + }, + { + "include": "#ampersand" + }, + { + "include": "#bracket" + }, + { + "include": "#raw" + }, + { + "include": "#bold" + }, + { + "include": "#italic" + }, + { + "include": "#image-inline" + }, + { + "include": "#link-inline" + }, + { + "include": "#link-inet" + }, + { + "include": "#link-email" + }, + { + "include": "#image-ref" + }, + { + "include": "#link-ref-literal" + }, + { + "include": "#link-ref" + }, + { + "include": "#link-ref-shortcut" + } + ] + }, + "3": { + "name": "punctuation.definition.strikethrough.markdown" + } + }, + "match": "(?<!\\\\)(~{2,})((?:[^~]|(?!(?<![~\\\\])\\1(?!~))~)*+)(\\1)", + "name": "markup.strikethrough.markdown" + } + } +} diff --git a/docs/shiki/languages/marko.tmLanguage.json b/docs/shiki/languages/marko.tmLanguage.json new file mode 100644 index 00000000..db2f7a44 --- /dev/null +++ b/docs/shiki/languages/marko.tmLanguage.json @@ -0,0 +1,1342 @@ +{ + "fileTypes": ["marko"], + "name": "marko", + "patterns": [ + { + "begin": "^\\s*(style)\\s+(\\{)", + "beginCaptures": { + "1": { + "name": "storage.type.marko.css" + }, + "2": { + "name": "punctuation.section.scope.begin.marko.css" + } + }, + "comment": "CSS style block, eg: style { color: green }", + "contentName": "source.css", + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.section.scope.end.marko.css" + } + }, + "name": "meta.embedded.css", + "patterns": [ + { + "include": "source.css" + } + ] + }, + { + "begin": "^\\s*(style)\\.(less)\\s+(\\{)", + "beginCaptures": { + "1": { + "name": "storage.type.marko.css" + }, + "2": { + "name": "storage.modifier.marko.css" + }, + "3": { + "name": "punctuation.section.scope.begin.marko.css" + } + }, + "comment": "Less style block, eg: style.less { color: green }", + "contentName": "source.less", + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.section.scope.end.marko.css" + } + }, + "name": "meta.embedded.less", + "patterns": [ + { + "include": "source.css.less" + } + ] + }, + { + "begin": "^\\s*(style)\\.(scss)\\s+(\\{)", + "beginCaptures": { + "1": { + "name": "storage.type.marko.css" + }, + "2": { + "name": "storage.modifier.marko.css" + }, + "3": { + "name": "punctuation.section.scope.begin.marko.css" + } + }, + "comment": "SCSS style block, eg: style.scss { color: green }", + "contentName": "source.scss", + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.section.scope.end.marko.css" + } + }, + "name": "meta.embedded.scss", + "patterns": [ + { + "include": "source.css.scss" + } + ] + }, + { + "begin": "^\\s*(?:(static )|(?=(?:class|import|export) ))", + "beginCaptures": { + "1": { + "name": "keyword.control.static.marko" + } + }, + "comment": "Top level blocks parsed as JavaScript", + "contentName": "source.js", + "end": "(?=\\n|$)", + "name": "meta.embedded.js", + "patterns": [ + { + "include": "#javascript-statement" + } + ] + }, + { + "include": "#content-concise-mode" + } + ], + "repository": { + "attrs": { + "patterns": [ + { + "applyEndPatternLast": 1, + "begin": "(?:\\s+|,)(?:(key|on[a-zA-Z0-9_$-]+|[a-zA-Z0-9_$]+Change|no-update(?:-body)?(?:-if)?)|([a-zA-Z0-9_$][a-zA-Z0-9_$-]*))(:[a-zA-Z0-9_$][a-zA-Z0-9_$-]*)?", + "beginCaptures": { + "1": { + "name": "support.type.attribute-name.marko" + }, + "2": { + "name": "entity.other.attribute-name.marko" + }, + "3": { + "name": "support.function.attribute-name.marko" + } + }, + "comment": "Attribute with optional value", + "end": "(?=.|$)", + "name": "meta.marko-attribute", + "patterns": [ + { + "include": "#html-args-or-method" + }, + { + "applyEndPatternLast": 1, + "begin": "\\s*(:?=)\\s*", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "source.js" + } + ] + } + }, + "comment": "Attribute value", + "contentName": "source.js", + "end": "(?=.|$)", + "name": "meta.embedded.js", + "patterns": [ + { + "include": "#javascript-expression" + } + ] + } + ] + }, + { + "applyEndPatternLast": 1, + "begin": "(?:\\s+|,)\\.\\.\\.", + "beginCaptures": { + "1": { + "name": "keyword.operator.spread.marko" + } + }, + "comment": "A ...spread attribute", + "contentName": "source.js", + "end": "(?=.|$)", + "name": "meta.marko-spread-attribute", + "patterns": [ + { + "include": "#javascript-expression" + } + ] + }, + { + "begin": "\\s*(,(?!,))", + "captures": { + "1": { + "patterns": [ + { + "include": "source.js" + } + ] + } + }, + "comment": "Consume any whitespace after a comma", + "end": "(?!\\S)" + }, + { + "include": "#javascript-comment-multiline" + }, + { + "include": "#invalid" + } + ] + }, + "concise-html-block": { + "begin": "\\s*(--+)\\s*$", + "beginCaptures": { + "2": { + "name": "punctuation.section.scope.begin.marko" + } + }, + "comment": "--- HTML block within concise mode content. ---", + "end": "\\1", + "endCaptures": { + "1": { + "name": "punctuation.section.scope.end.marko" + } + }, + "name": "meta.section.marko-html-block", + "patterns": [ + { + "include": "#content-html-mode" + } + ] + }, + "concise-html-line": { + "captures": { + "1": { + "name": "punctuation.section.scope.begin.marko" + }, + "2": { + "patterns": [ + { + "include": "#html-comments" + }, + { + "include": "#tag-html" + }, + { + "match": "\\\\.", + "name": "string" + }, + { + "include": "#placeholder" + }, + { + "match": ".+?", + "name": "string" + } + ] + } + }, + "comment": "-- HTML line within concise mode content. (content-html-mode w/o scriptlet)", + "match": "\\s*(--+)(?=\\s+\\S)(.*$)", + "name": "meta.section.marko-html-line" + }, + "concise-open-tag-content": { + "patterns": [ + { + "include": "#tag-before-attrs" + }, + { + "begin": "\\s*\\[", + "beginCaptures": { + "0": { + "name": "punctuation.section.scope.begin.marko" + } + }, + "end": "]", + "endCaptures": { + "0": { + "name": "punctuation.section.scope.end.marko" + } + }, + "patterns": [ + { + "include": "#attrs" + }, + { + "include": "#invalid" + } + ] + }, + { + "begin": "(?!^)(?= )", + "end": "(?=--)|(?<!,)(?=\\n)", + "patterns": [ + { + "include": "#attrs" + }, + { + "include": "#invalid" + } + ] + } + ] + }, + "concise-script-block": { + "begin": "(\\s+)(--+)\\s*$", + "beginCaptures": { + "2": { + "name": "punctuation.section.scope.begin.marko" + } + }, + "comment": "--- Embedded concise script content block. ---", + "end": "(\\2)|(?=^(?!\\1)\\s*\\S)", + "endCaptures": { + "1": { + "name": "punctuation.section.scope.end.marko" + } + }, + "name": "meta.section.marko-script-block", + "patterns": [ + { + "include": "#content-embedded-script" + } + ] + }, + "concise-script-line": { + "applyEndPatternLast": 1, + "begin": "\\s*(--+)", + "beginCaptures": { + "1": { + "name": "punctuation.section.scope.begin.marko" + } + }, + "comment": "-- Embedded concise script content line.", + "end": "$", + "name": "meta.section.marko-script-line", + "patterns": [ + { + "include": "#content-embedded-script" + } + ] + }, + "concise-style-block": { + "begin": "(\\s+)(--+)\\s*$", + "beginCaptures": { + "2": { + "name": "punctuation.section.scope.begin.marko" + } + }, + "comment": "--- Embedded concise style content block. ---", + "contentName": "source.css", + "end": "(\\2)|(?=^(?!\\1)\\s*\\S)", + "endCaptures": { + "1": { + "name": "punctuation.section.scope.end.marko" + } + }, + "name": "meta.section.marko-style-block", + "patterns": [ + { + "include": "#content-embedded-style" + } + ] + }, + "concise-style-block-less": { + "begin": "(\\s+)(--+)\\s*$", + "beginCaptures": { + "2": { + "name": "punctuation.section.scope.begin.marko" + } + }, + "comment": "--- Embedded concise style content block. ---", + "contentName": "source.less", + "end": "(\\2)|(?=^(?!\\1)\\s*\\S)", + "endCaptures": { + "1": { + "name": "punctuation.section.scope.end.marko" + } + }, + "name": "meta.section.marko-style-block", + "patterns": [ + { + "include": "#content-embedded-style-less" + } + ] + }, + "concise-style-block-scss": { + "begin": "(\\s+)(--+)\\s*$", + "beginCaptures": { + "2": { + "name": "punctuation.section.scope.begin.marko" + } + }, + "comment": "--- Embedded concise style content block. ---", + "contentName": "source.scss", + "end": "(\\2)|(?=^(?!\\1)\\s*\\S)", + "endCaptures": { + "1": { + "name": "punctuation.section.scope.end.marko" + } + }, + "name": "meta.section.marko-style-block", + "patterns": [ + { + "include": "#content-embedded-style-scss" + } + ] + }, + "concise-style-line": { + "applyEndPatternLast": 1, + "begin": "\\s*(--+)", + "beginCaptures": { + "1": { + "name": "punctuation.section.scope.begin.marko" + } + }, + "comment": "-- Embedded concise style content line.", + "contentName": "source.css", + "end": "$", + "name": "meta.section.marko-style-line", + "patterns": [ + { + "include": "#content-embedded-style" + } + ] + }, + "concise-style-line-less": { + "applyEndPatternLast": 1, + "begin": "\\s*(--+)", + "beginCaptures": { + "1": { + "name": "punctuation.section.scope.begin.marko" + } + }, + "comment": "-- Embedded concise style content line.", + "contentName": "source.less", + "end": "$", + "name": "meta.section.marko-style-line", + "patterns": [ + { + "include": "#content-embedded-style-less" + } + ] + }, + "concise-style-line-scss": { + "applyEndPatternLast": 1, + "begin": "\\s*(--+)", + "beginCaptures": { + "1": { + "name": "punctuation.section.scope.begin.marko" + } + }, + "comment": "-- Embedded concise style content line.", + "contentName": "source.scss", + "end": "$", + "name": "meta.section.marko-style-line", + "patterns": [ + { + "include": "#content-embedded-style-scss" + } + ] + }, + "content-concise-mode": { + "comment": "Concise mode content block.", + "name": "meta.marko-concise-content", + "patterns": [ + { + "include": "#scriptlet" + }, + { + "include": "#javascript-comments" + }, + { + "include": "#html-comments" + }, + { + "include": "#concise-html-block" + }, + { + "include": "#concise-html-line" + }, + { + "include": "#tag-html" + }, + { + "comment": "A concise html tag.", + "patterns": [ + { + "begin": "^(\\s*)(?=style\\.less\\b)", + "comment": "Concise style tag less", + "patterns": [ + { + "include": "#concise-open-tag-content" + }, + { + "include": "#concise-style-block-less" + }, + { + "include": "#concise-style-line-less" + } + ], + "while": "(?=^\\1\\s+(\\S|$))" + }, + { + "begin": "^(\\s*)(?=style\\.scss\\b)", + "comment": "Concise style tag scss", + "patterns": [ + { + "include": "#concise-open-tag-content" + }, + { + "include": "#concise-style-block-scss" + }, + { + "include": "#concise-style-line-scss" + } + ], + "while": "(?=^\\1\\s+(\\S|$))" + }, + { + "begin": "^(\\s*)(?=style\\b)", + "comment": "Concise style tag", + "patterns": [ + { + "include": "#concise-open-tag-content" + }, + { + "include": "#concise-style-block" + }, + { + "include": "#concise-style-line" + } + ], + "while": "(?=^\\1\\s+(\\S|$))" + }, + { + "begin": "^(\\s*)(?=script\\b)", + "comment": "Concise script tag", + "patterns": [ + { + "include": "#concise-open-tag-content" + }, + { + "include": "#concise-script-block" + }, + { + "include": "#concise-script-line" + } + ], + "while": "(?=^\\1\\s+(\\S|$))" + }, + { + "begin": "^(\\s*)(?=[a-zA-Z0-9_$@])", + "comment": "Normal concise tag", + "patterns": [ + { + "include": "#concise-open-tag-content" + }, + { + "include": "#content-concise-mode" + } + ], + "while": "(?=^\\1\\s+(\\S|$))" + } + ] + }, + { + "include": "#invalid" + } + ] + }, + "content-embedded-script": { + "name": "meta.embedded.js", + "patterns": [ + { + "include": "#placeholder" + }, + { + "include": "source.js" + } + ] + }, + "content-embedded-style": { + "name": "meta.embedded.css", + "patterns": [ + { + "include": "#placeholder" + }, + { + "include": "source.css" + } + ] + }, + "content-embedded-style-less": { + "name": "meta.embedded.css.less", + "patterns": [ + { + "include": "#placeholder" + }, + { + "include": "source.css.less" + } + ] + }, + "content-embedded-style-scss": { + "name": "meta.embedded.css.scss", + "patterns": [ + { + "include": "#placeholder" + }, + { + "include": "source.css.scss" + } + ] + }, + "content-html-mode": { + "comment": "HTML mode content block.", + "patterns": [ + { + "include": "#scriptlet" + }, + { + "include": "#html-comments" + }, + { + "include": "#tag-html" + }, + { + "match": "\\\\.", + "name": "string" + }, + { + "include": "#placeholder" + }, + { + "match": ".+?", + "name": "string" + } + ] + }, + "html-args-or-method": { + "patterns": [ + { + "include": "#javascript-args" + }, + { + "begin": "(?<=\\))\\s*(?=\\{)", + "comment": "Attribute method shorthand following parens", + "contentName": "source.js", + "end": "(?<=\\})", + "name": "meta.embedded.js", + "patterns": [ + { + "include": "source.js" + } + ] + } + ] + }, + "html-comments": { + "patterns": [ + { + "begin": "\\s*(<!(--)?)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.marko" + } + }, + "comment": "HTML comments, doctypes & cdata", + "end": "\\2>", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.marko" + } + }, + "name": "comment.block.marko" + }, + { + "begin": "\\s*(<html-comment>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.marko" + } + }, + "comment": "Preserved HTML comment tag", + "end": "</html-comment>", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.marko" + } + }, + "name": "comment.block.marko" + } + ] + }, + "invalid": { + "match": "[^\\s]", + "name": "invalid.illegal.character-not-allowed-here.marko" + }, + "javascript-args": { + "begin": "(?=\\()", + "comment": "Javascript style arguments", + "contentName": "source.js", + "end": "(?<=\\))", + "name": "meta.embedded.js", + "patterns": [ + { + "include": "source.js" + } + ] + }, + "javascript-comment-line": { + "captures": { + "0": { + "patterns": [ + { + "include": "source.js" + } + ] + } + }, + "comment": "JavaScript // single line comment", + "contentName": "source.js", + "match": "\\s*//.*$" + }, + "javascript-comment-multiline": { + "begin": "\\s*(?=/\\*)", + "comment": "JavaScript /* block comment */", + "contentName": "source.js", + "end": "(?<=\\*/)", + "patterns": [ + { + "include": "source.js" + } + ] + }, + "javascript-comments": { + "patterns": [ + { + "include": "#javascript-comment-multiline" + }, + { + "include": "#javascript-comment-line" + } + ] + }, + "javascript-enclosed": { + "comment": "Matches JavaScript content and ensures enclosed blocks are matched.", + "patterns": [ + { + "include": "#javascript-comments" + }, + { + "include": "#javascript-args" + }, + { + "begin": "(?={)", + "end": "(?<=})", + "patterns": [ + { + "include": "source.js" + } + ] + }, + { + "begin": "(?=\\[)", + "end": "(?<=])", + "patterns": [ + { + "include": "source.js" + } + ] + }, + { + "begin": "(?=\")", + "end": "(?<=\")", + "patterns": [ + { + "include": "source.js" + } + ] + }, + { + "begin": "(?=')", + "end": "(?<=')", + "patterns": [ + { + "include": "source.js" + } + ] + }, + { + "begin": "(?=`)", + "end": "(?<=`)", + "patterns": [ + { + "include": "source.js" + } + ] + }, + { + "begin": "/(?!<[\\]})A-Z0-9.<%]\\s*/)(?!/?>|$)", + "captures": { + "0": { + "name": "string.regexp.js" + } + }, + "contentName": "source.js", + "end": "/[gimsuy]*", + "patterns": [ + { + "include": "source.js#regexp" + }, + { + "include": "source.js" + } + ] + }, + { + "begin": "(?x)\\s*(?:\n\t\t\t\t\t\t\t\t(?:\\b(?:new|typeof|instanceof|in)\\b)| # Keyword operators\n\t\t\t\t\t\t\t\t\\&\\&|\\|\\|| # Logical operators\n\t\t\t\t\t\t\t\t[\\^|&]| # Bitwise operators\n\t\t\t\t\t\t\t\t[!=]=|[!=]==|<|<[=<]|=>| # Comparison operators (Note you cannot use * or ? here)\n\t\t\t\t\t\t\t\t[?:]| # Ternary operators\n\t\t\t\t\t\t\t\t[-+*%](?!-) # Arithmetic operators\n\t\t\t\t\t\t\t)", + "captures": { + "0": { + "patterns": [ + { + "include": "source.js" + } + ] + } + }, + "end": "(?=\\S)" + } + ] + }, + "javascript-expression": { + "patterns": [ + { + "include": "#javascript-enclosed" + }, + { + "captures": { + "0": { + "patterns": [ + { + "include": "source.js" + } + ] + } + }, + "comment": "Match identifiers and member expressions", + "match": "[0-9a-zA-Z$_.]+" + } + ] + }, + "javascript-statement": { + "patterns": [ + { + "include": "#javascript-enclosed" + }, + { + "include": "source.js" + } + ] + }, + "open-tag-content": { + "patterns": [ + { + "include": "#tag-before-attrs" + }, + { + "begin": "(?= )", + "comment": "Attributes begin after the first space within the tag name", + "end": "(?=/?>)", + "patterns": [ + { + "include": "#attrs" + } + ] + } + ] + }, + "placeholder": { + "begin": "\\$!?{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.template-expression.begin.js" + } + }, + "comment": "${ } placeholder", + "contentName": "source.js", + "end": "}", + "endCaptures": { + "0": { + "name": "punctuation.definition.template-expression.end.js" + } + }, + "patterns": [ + { + "include": "source.js" + } + ] + }, + "scriptlet": { + "begin": "^\\s*(\\$)\\s+", + "beginCaptures": { + "1": { + "name": "keyword.control.scriptlet.marko" + } + }, + "comment": "An inline JavaScript scriptlet.", + "contentName": "source.js", + "end": "$", + "name": "meta.embedded.js", + "patterns": [ + { + "include": "#javascript-statement" + } + ] + }, + "tag-before-attrs": { + "comment": "Everything in a tag before the attributes content", + "patterns": [ + { + "include": "#tag-name" + }, + { + "comment": "Shorthand class or ID attribute", + "match": "[#.][a-zA-Z0-9_$][a-zA-Z0-9_$-]*", + "name": "entity.other.attribute-name.marko" + }, + { + "begin": "/(?!/)", + "beginCaptures": { + "0": { + "name": "punctuation.separator.key-value.marko" + } + }, + "comment": "Variable for a tag", + "contentName": "source.js", + "end": "(?=:?\\=|\\s|>|$|\\||\\(|/)", + "name": "meta.embedded.js", + "patterns": [ + { + "comment": "Match identifiers", + "match": "[a-zA-Z$_][0-9a-zA-Z$_]*", + "name": "variable.other.constant.object.js" + }, + { + "include": "source.js#object-binding-pattern" + }, + { + "include": "source.js#array-binding-pattern" + }, + { + "include": "source.js#var-single-variable" + }, + { + "include": "#javascript-expression" + } + ] + }, + { + "applyEndPatternLast": 1, + "begin": "\\s*(:?=)\\s*", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "source.js" + } + ] + } + }, + "comment": "Default attribute value", + "contentName": "source.js", + "end": "(?=.|$)", + "name": "meta.embedded.js", + "patterns": [ + { + "include": "#javascript-expression" + } + ] + }, + { + "begin": "\\|", + "beginCaptures": { + "0": { + "name": "punctuation.section.scope.begin.marko" + } + }, + "comment": "Parameters for a tag", + "end": "\\|", + "endCaptures": { + "0": { + "name": "punctuation.section.scope.end.marko" + } + }, + "patterns": [ + { + "include": "source.js#function-parameters-body" + }, + { + "include": "source.js" + } + ] + }, + { + "include": "#html-args-or-method" + } + ] + }, + "tag-html": { + "comment": "Matches an HTML tag and its contents", + "patterns": [ + { + "begin": "\\s*(<)(?=(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)\\b)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.end.marko" + } + }, + "comment": "HTML void elements", + "end": "/?>", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.marko" + } + }, + "patterns": [ + { + "include": "#open-tag-content" + } + ] + }, + { + "begin": "\\s*(<)(?=style\\.less\\b)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.marko" + } + }, + "comment": "HTML style tag with less", + "end": "/>|(?<=\\>)", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.marko" + } + }, + "patterns": [ + { + "include": "#open-tag-content" + }, + { + "begin": ">", + "beginCaptures": { + "0": { + "name": "punctuation.definition.tag.end.marko" + } + }, + "comment": "Style body content", + "contentName": "source.less", + "end": "\\s*(</)(style)?(>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.end.marko" + }, + "2": { + "patterns": [ + { + "include": "#tag-name" + } + ] + }, + "3": { + "name": "punctuation.definition.tag.end.marko" + } + }, + "patterns": [ + { + "include": "#content-embedded-style-less" + } + ] + } + ] + }, + { + "begin": "\\s*(<)(?=style\\.scss\\b)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.marko" + } + }, + "comment": "HTML style tag with scss", + "end": "/>|(?<=\\>)", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.marko" + } + }, + "patterns": [ + { + "include": "#open-tag-content" + }, + { + "begin": ">", + "beginCaptures": { + "0": { + "name": "punctuation.definition.tag.end.marko" + } + }, + "comment": "Style body content", + "contentName": "source.less", + "end": "\\s*(</)(style)?(>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.end.marko" + }, + "2": { + "patterns": [ + { + "include": "#tag-name" + } + ] + }, + "3": { + "name": "punctuation.definition.tag.end.marko" + } + }, + "patterns": [ + { + "include": "#content-embedded-style-scss" + } + ] + } + ] + }, + { + "begin": "\\s*(<)(?=style\\b)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.marko" + } + }, + "comment": "HTML style tag", + "end": "/>|(?<=\\>)", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.marko" + } + }, + "patterns": [ + { + "include": "#open-tag-content" + }, + { + "begin": ">", + "beginCaptures": { + "0": { + "name": "punctuation.definition.tag.end.marko" + } + }, + "comment": "Style body content", + "contentName": "source.css", + "end": "\\s*(</)(style)?(>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.end.marko" + }, + "2": { + "patterns": [ + { + "include": "#tag-name" + } + ] + }, + "3": { + "name": "punctuation.definition.tag.end.marko" + } + }, + "patterns": [ + { + "include": "#content-embedded-style" + } + ] + } + ] + }, + { + "begin": "\\s*(<)(?=script\\b)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.marko" + } + }, + "comment": "HTML script tag", + "end": "/>|(?<=\\>)", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.marko" + } + }, + "patterns": [ + { + "include": "#open-tag-content" + }, + { + "begin": ">", + "beginCaptures": { + "0": { + "name": "punctuation.definition.tag.end.marko" + } + }, + "comment": "Script body content", + "contentName": "source.js", + "end": "\\s*(</)(script)?(>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.end.marko" + }, + "2": { + "patterns": [ + { + "include": "#tag-name" + } + ] + }, + "3": { + "name": "punctuation.definition.tag.end.marko" + } + }, + "patterns": [ + { + "include": "#content-embedded-script" + } + ] + } + ] + }, + { + "begin": "\\s*(<)(?=[a-zA-Z0-9_$@])", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.marko" + } + }, + "comment": "HTML normal tag", + "end": "/>|(?<=\\>)", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.marko" + } + }, + "patterns": [ + { + "include": "#open-tag-content" + }, + { + "begin": ">", + "beginCaptures": { + "0": { + "name": "punctuation.definition.tag.end.marko" + } + }, + "comment": "Body content", + "end": "\\s*(</)([a-zA-Z0-9_$:@-]+)?(.*?)(>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.end.marko" + }, + "2": { + "patterns": [ + { + "include": "#tag-name" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#invalid" + } + ] + }, + "4": { + "name": "punctuation.definition.tag.end.marko" + } + }, + "patterns": [ + { + "include": "#content-html-mode" + } + ] + } + ] + } + ] + }, + "tag-name": { + "patterns": [ + { + "begin": "\\${", + "beginCaptures": { + "0": { + "name": "punctuation.definition.template-expression.begin.js" + } + }, + "comment": "Dynamic tag.", + "end": "}", + "endCaptures": { + "0": { + "name": "punctuation.definition.template-expression.end.js" + } + }, + "patterns": [ + { + "include": "source.js" + } + ] + }, + { + "captures": { + "1": { + "name": "entity.name.tag.marko" + }, + "2": { + "name": "storage.type.marko.css" + }, + "3": { + "patterns": [ + { + "comment": "Core tag.", + "match": "(attrs|return|import)(?=\\b)", + "name": "support.type.builtin.marko" + }, + { + "comment": "Core tag.", + "match": "(for|if|while|else-if|else|macro|tag|await|let|const|effect|set|get|id|lifecycle)(?=\\b)", + "name": "support.function.marko" + }, + { + "comment": "Attribute tag.", + "match": "@.+", + "name": "entity.other.attribute-name.marko" + }, + { + "comment": "Native or userland tag.", + "match": ".+", + "name": "entity.name.tag.marko" + } + ] + } + }, + "match": "(style)\\.([a-zA-Z0-9$_-]+(?:\\.[a-zA-Z0-9$_-]+)*)|([a-zA-Z0-9_$@][a-zA-Z0-9_$@:-]*)" + } + ] + } + }, + "scopeName": "text.marko", + "uuid": "46c8c3f8-cabe-466a-a633-5deafdc51253" +} diff --git a/docs/shiki/languages/matlab.tmLanguage.json b/docs/shiki/languages/matlab.tmLanguage.json new file mode 100644 index 00000000..e9226ef6 --- /dev/null +++ b/docs/shiki/languages/matlab.tmLanguage.json @@ -0,0 +1,1130 @@ +{ + "fileTypes": ["m"], + "keyEquivalent": "^~M", + "name": "matlab", + "patterns": [ + { + "comment": "This and #all_after_command_dual are split out so #command_dual can be excluded in things like (), {}, []", + "include": "#all_before_command_dual" + }, + { + "include": "#command_dual" + }, + { + "include": "#all_after_command_dual" + } + ], + "repository": { + "all_before_command_dual": { + "patterns": [ + { + "include": "#classdef" + }, + { + "include": "#function" + }, + { + "include": "#blocks" + }, + { + "include": "#control_statements" + }, + { + "include": "#global_persistent" + }, + { + "include": "#parens" + }, + { + "include": "#square_brackets" + }, + { + "include": "#indexing_curly_brackets" + }, + { + "include": "#curly_brackets" + } + ] + }, + "all_after_command_dual": { + "patterns": [ + { + "include": "#string" + }, + { + "include": "#line_continuation" + }, + { + "include": "#comments" + }, + { + "include": "#conjugate_transpose" + }, + { + "include": "#transpose" + }, + { + "include": "#constants" + }, + { + "include": "#variables" + }, + { + "include": "#numbers" + }, + { + "include": "#operators" + } + ] + }, + "blocks": { + "patterns": [ + { + "begin": "\\s*(?:^|[\\s,;])(for)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.for.matlab" + } + }, + "end": "\\s*(?:^|[\\s,;])(end)\\b", + "endCaptures": { + "1": { + "name": "keyword.control.end.for.matlab" + } + }, + "name": "meta.for.matlab", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "begin": "\\s*(?:^|[\\s,;])(if)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.if.matlab" + } + }, + "end": "\\s*(?:^|[\\s,;])(end)\\b", + "endCaptures": { + "1": { + "name": "keyword.control.end.if.matlab" + }, + "2": { + "patterns": [ + { + "include": "$self" + } + ] + } + }, + "name": "meta.if.matlab", + "patterns": [ + { + "captures": { + "2": { + "name": "keyword.control.elseif.matlab" + }, + "3": { + "patterns": [ + { + "include": "$self" + } + ] + } + }, + "end": "^", + "match": "(\\s*)(?:^|[\\s,;])(elseif)\\b(.*)$\\n?", + "name": "meta.elseif.matlab" + }, + { + "captures": { + "2": { + "name": "keyword.control.else.matlab" + }, + "3": { + "patterns": [ + { + "include": "$self" + } + ] + } + }, + "end": "^", + "match": "(\\s*)(?:^|[\\s,;])(else)\\b(.*)?$\\n?", + "name": "meta.else.matlab" + }, + { + "include": "$self" + } + ] + }, + { + "begin": "\\s*(?:^|[\\s,;])(parfor)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.for.matlab" + } + }, + "end": "\\s*(?:^|[\\s,;])(end)\\b", + "endCaptures": { + "1": { + "name": "keyword.control.end.for.matlab" + } + }, + "name": "meta.parfor.matlab", + "patterns": [ + { + "begin": "\\G(?!$)", + "end": "$\\n?", + "name": "meta.parfor-quantity.matlab", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "include": "$self" + } + ] + }, + { + "begin": "\\s*(?:^|[\\s,;])(spmd)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.spmd.matlab" + } + }, + "end": "\\s*(?:^|[\\s,;])(end)\\b", + "endCaptures": { + "1": { + "name": "keyword.control.end.spmd.matlab" + } + }, + "name": "meta.spmd.matlab", + "patterns": [ + { + "begin": "\\G(?!$)", + "end": "$\\n?", + "name": "meta.spmd-statement.matlab", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "include": "$self" + } + ] + }, + { + "begin": "\\s*(?:^|[\\s,;])(switch)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.switch.matlab" + } + }, + "end": "\\s*(?:^|[\\s,;])(end)\\b", + "endCaptures": { + "1": { + "name": "keyword.control.end.switch.matlab" + } + }, + "name": "meta.switch.matlab", + "patterns": [ + { + "captures": { + "2": { + "name": "keyword.control.case.matlab" + }, + "3": { + "patterns": [ + { + "include": "$self" + } + ] + } + }, + "end": "^", + "match": "(\\s*)(?:^|[\\s,;])(case)\\b(.*)$\\n?", + "name": "meta.case.matlab" + }, + { + "captures": { + "2": { + "name": "keyword.control.otherwise.matlab" + }, + "3": { + "patterns": [ + { + "include": "$self" + } + ] + } + }, + "end": "^", + "match": "(\\s*)(?:^|[\\s,;])(otherwise)\\b(.*)?$\\n?", + "name": "meta.otherwise.matlab" + }, + { + "include": "$self" + } + ] + }, + { + "begin": "\\s*(?:^|[\\s,;])(try)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.try.matlab" + } + }, + "end": "\\s*(?:^|[\\s,;])(end)\\b", + "endCaptures": { + "1": { + "name": "keyword.control.end.try.matlab" + } + }, + "name": "meta.try.matlab", + "patterns": [ + { + "captures": { + "2": { + "name": "keyword.control.catch.matlab" + }, + "3": { + "patterns": [ + { + "include": "$self" + } + ] + } + }, + "end": "^", + "match": "(\\s*)(?:^|[\\s,;])(catch)\\b(.*)?$\\n?", + "name": "meta.catch.matlab" + }, + { + "include": "$self" + } + ] + }, + { + "begin": "\\s*(?:^|[\\s,;])(while)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.while.matlab" + } + }, + "end": "\\s*(?:^|[\\s,;])(end)\\b", + "endCaptures": { + "1": { + "name": "keyword.control.end.while.matlab" + } + }, + "name": "meta.while.matlab", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + "classdef": { + "patterns": [ + { + "begin": "(?x)\n\t\t\t\t\t\t\t(^\\s*)\t\t\t\t\t\t\t\t# Leading whitespace\n\t\t\t\t\t\t\t(classdef)\n\t\t\t\t\t\t\t\\b\\s*\n\t\t\t\t\t\t\t(.*)\n\t\t\t\t\t", + "beginCaptures": { + "2": { + "name": "storage.type.class.matlab" + }, + "3": { + "patterns": [ + { + "match": "(?x)\n\t\t\t\t\t\t\t\t\t\t(\t\t\t\t\t\t\t\t\t# Optional attributes\n\t\t\t\t\t\t\t\t\t\t\t \\( [^)]* \\)\n\t\t\t\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t\t\t\t\t\\s*\n\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t([a-zA-Z][a-zA-Z0-9_]*)\t\t\t# Class name\n\t\t\t\t\t\t\t\t\t\t\t(?:\t\t\t\t\t\t\t\t# Optional inheritance\n\t\t\t\t\t\t\t\t\t\t\t\t\\s*\n\t\t\t\t\t\t\t\t\t\t\t\t(<)\n\t\t\t\t\t\t\t\t\t\t\t\t\\s*\n\t\t\t\t\t\t\t\t\t\t\t\t([^%]*)\n\t\t\t\t\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\\s*($|(?=(%|...)).*)\n\t\t\t\t\t\t\t\t\t", + "captures": { + "1": { + "patterns": [ + { + "match": "[a-zA-Z][a-zA-Z0-9_]*", + "name": "variable.parameter.class.matlab" + }, + { + "begin": "=\\s*", + "end": ",|(?=\\))", + "patterns": [ + { + "match": "true|false", + "name": "constant.language.boolean.matlab" + }, + { + "include": "#string" + } + ] + } + ] + }, + "2": { + "name": "meta.class-declaration.matlab" + }, + "3": { + "name": "entity.name.section.class.matlab" + }, + "4": { + "name": "keyword.operator.other.matlab" + }, + "5": { + "patterns": [ + { + "match": "[a-zA-Z][a-zA-Z0-9_]*(\\.[a-zA-Z][a-zA-Z0-9_]*)*", + "name": "entity.other.inherited-class.matlab" + }, + { + "match": "&", + "name": "keyword.operator.other.matlab" + } + ] + }, + "6": { + "patterns": [ + { + "include": "$self" + } + ] + } + } + } + ] + } + }, + "end": "\\s*(?:^|[\\s,;])(end)\\b", + "endCaptures": { + "1": { + "name": "keyword.control.end.class.matlab" + } + }, + "name": "meta.class.matlab", + "patterns": [ + { + "begin": "(?x)\n\t\t\t\t\t\t\t\t\t(^\\s*)\t\t\t\t\t\t\t\t# Leading whitespace\n\t\t\t\t\t\t\t\t\t(properties)\\b([^%]*)\n\t\t\t\t\t\t\t\t\t\\s*\n\t\t\t\t\t\t\t\t\t(\t\t\t\t\t\t\t\t\t# Optional attributes\n\t\t\t\t\t\t\t\t\t\t\\( [^)]* \\)\n\t\t\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t\t\t\t\\s*($|(?=%))\n\t\t\t\t\t\t\t\t", + "beginCaptures": { + "2": { + "name": "keyword.control.properties.matlab" + }, + "3": { + "patterns": [ + { + "match": "[a-zA-Z][a-zA-Z0-9_]*", + "name": "variable.parameter.properties.matlab" + }, + { + "begin": "=\\s*", + "end": ",|(?=\\))", + "patterns": [ + { + "match": "true|false", + "name": "constant.language.boolean.matlab" + }, + { + "match": "public|protected|private", + "name": "constant.language.access.matlab" + } + ] + } + ] + } + }, + "end": "\\s*(?:^|[\\s,;])(end)\\b", + "endCaptures": { + "1": { + "name": "keyword.control.end.properties.matlab" + } + }, + "name": "meta.properties.matlab", + "patterns": [ + { + "include": "#validators" + }, + { + "include": "$self" + } + ] + }, + { + "begin": "(?x)\n\t\t\t\t\t\t\t\t\t(^\\s*)\t\t\t\t\t\t\t\t# Leading whitespace\n\t\t\t\t\t\t\t\t\t(methods)\\b([^%]*)\n\t\t\t\t\t\t\t\t\t\\s*\n\t\t\t\t\t\t\t\t\t(\t\t\t\t\t\t\t\t\t# Optional attributes\n\t\t\t\t\t\t\t\t\t\t\\( [^)]* \\)\n\t\t\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t\t\t\t\\s*($|(?=%))\n\t\t\t\t\t\t\t\t", + "beginCaptures": { + "2": { + "name": "keyword.control.methods.matlab" + }, + "3": { + "patterns": [ + { + "match": "[a-zA-Z][a-zA-Z0-9_]*", + "name": "variable.parameter.methods.matlab" + }, + { + "begin": "=\\s*", + "end": ",|(?=\\))", + "patterns": [ + { + "match": "true|false", + "name": "constant.language.boolean.matlab" + }, + { + "match": "public|protected|private", + "name": "constant.language.access.matlab" + } + ] + } + ] + } + }, + "end": "\\s*(?:^|[\\s,;])(end)\\b", + "endCaptures": { + "1": { + "name": "keyword.control.end.methods.matlab" + } + }, + "name": "meta.methods.matlab", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "begin": "(?x)\n\t\t\t\t\t\t\t\t\t(^\\s*)\t\t\t\t\t\t\t\t# Leading whitespace\n\t\t\t\t\t\t\t\t\t(events)\\b([^%]*)\n\t\t\t\t\t\t\t\t\t\\s*\n\t\t\t\t\t\t\t\t\t(\t\t\t\t\t\t\t\t\t# Optional attributes\n\t\t\t\t\t\t\t\t\t\t\\( [^)]* \\)\n\t\t\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t\t\t\t\\s*($|(?=%))\n\t\t\t\t\t\t\t\t", + "beginCaptures": { + "2": { + "name": "keyword.control.events.matlab" + }, + "3": { + "patterns": [ + { + "match": "[a-zA-Z][a-zA-Z0-9_]*", + "name": "variable.parameter.events.matlab" + }, + { + "begin": "=\\s*", + "end": ",|(?=\\))", + "patterns": [ + { + "match": "true|false", + "name": "constant.language.boolean.matlab" + }, + { + "match": "public|protected|private", + "name": "constant.language.access.matlab" + } + ] + } + ] + } + }, + "end": "\\s*(?:^|[\\s,;])(end)\\b", + "endCaptures": { + "1": { + "name": "keyword.control.end.events.matlab" + } + }, + "name": "meta.events.matlab", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "begin": "(?x)\n\t\t\t\t\t\t\t\t\t(^\\s*)\t\t\t\t\t\t\t\t# Leading whitespace\n\t\t\t\t\t\t\t\t\t(enumeration)\\b([^%]*)\n\t\t\t\t\t\t\t\t\t\\s*($|(?=%))\n\t\t\t\t\t\t\t\t", + "beginCaptures": { + "2": { + "name": "keyword.control.enumeration.matlab" + } + }, + "end": "\\s*(?:^|[\\s,;])(end)\\b", + "endCaptures": { + "1": { + "name": "keyword.control.end.enumeration.matlab" + } + }, + "name": "meta.enumeration.matlab", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "include": "$self" + } + ] + } + ] + }, + "command_dual": { + "captures": { + "1": { + "name": "string.interpolated.matlab" + }, + "2": { + "name": "variable.other.command.matlab" + }, + "28": { + "name": "comment.line.percentage.matlab" + } + }, + "comment": " 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1516 17 18 19 20 21 22 23 24 25 26 27 28", + "match": "^\\s*((?# A> )([b-df-hk-moq-zA-HJ-MO-Z]\\w*|a|an|a([A-Za-mo-z0-9_]\\w*|n[A-Za-rt-z0-9_]\\w*|ns\\w+)|e|ep|e([A-Za-oq-z0-9_]\\w*|p[A-Za-rt-z0-9_]\\w*|ps\\w+)|in|i([A-Za-mo-z0-9_]\\w*|n[A-Za-eg-z0-9_]\\w*|nf\\w+)|I|In|I([A-Za-mo-z0-9_]\\w*|n[A-Za-eg-z0-9_]\\w*|nf\\w+)|j\\w+|N|Na|N([A-Zb-z0-9_]\\w*|a[A-MO-Za-z0-9_]\\w*|aN\\w+)|n|na|nar|narg|nargi|nargo|nargou|n([A-Zb-z0-9_]\\w*|a([A-Za-mo-qs-z0-9_]\\w*|n\\w+|r([A-Za-fh-z0-9_]\\w*|g([A-Za-hj-nq-z0-9_]\\w*|i([A-Za-mo-z0-9_]\\w*|n\\w+)|o([A-Za-tv-z0-9_]\\w*|u([A-Za-su-z]\\w*|t\\w+))))))|p|p[A-Za-hj-z0-9_]\\w*|pi\\w+)(?# <A )\\s+(((?# B> )([^\\s;,%()=.{&|~<>:+\\-*/\\\\@^'\"]|(?=')|(?=\"))(?# <B )|(?# C> )(\\.\\^|\\.\\*|\\./|\\.\\\\|\\.'|\\.\\(|&&|==|\\|\\||&(?=[^&])|\\|(?=[^\\|])|~=|<=|>=|~(?!=)|<(?!=)|>(?!=)|:|\\+|-|\\*|/|\\\\|@|\\^)(?# <C )(?# D> )([^\\s]|\\s*(?=%)|\\s+$|\\s+(,|;|\\)|}|\\]|&|\\||<|>|=|:|\\*|/|\\\\|\\^|@|(\\.[^\\d.]|\\.\\.[^.])))(?# <D )|(?# E> )(\\.[^^*/\\\\'(\\sA-Za-z])(?# <E ))(?# F> )([^%]|'[^']*'|\"[^\"]*\")*(?# <F )|(?# X> )(\\.(?=\\s)|\\.[A-Za-z]|(?={))(?# <X )(?# Y> )([^(=\\'\"%]|==|'[^']*'|\"[^\"]*\"|\\(|\\([^)%]*\\)|\\[|\\[[^\\]%]*\\]|{|{[^}%]*})*(\\.\\.\\.[^%]*)?((?=%)|$)(?# <Y )))(%.*)?$" + }, + "comment_block": { + "begin": "(^[\\s]*)%\\{[^\\n\\S]*+\\n", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.matlab" + } + }, + "end": "^[\\s]*%\\}[^\\n\\S]*+(?:\\n|$)", + "name": "comment.block.percentage.matlab", + "patterns": [ + { + "include": "#comment_block" + }, + { + "match": "^[^\\n]*\\n" + } + ] + }, + "comments": { + "patterns": [ + { + "begin": "(^[ \\t]+)?(?=%%\\s)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.matlab" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": "%%", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.matlab" + } + }, + "end": "\\n", + "name": "comment.line.double-percentage.matlab", + "patterns": [ + { + "begin": "\\G[^\\S\\n]*(?![\\n\\s])", + "contentName": "meta.cell.matlab", + "end": "(?=\\n)" + } + ] + } + ] + }, + { + "include": "#comment_block" + }, + { + "begin": "(^[ \\t]+)?(?=%)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.matlab" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": "%", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.matlab" + } + }, + "end": "\\n", + "name": "comment.line.percentage.matlab" + } + ] + } + ] + }, + "control_statements": { + "captures": { + "1": { + "name": "keyword.control.matlab" + } + }, + "match": "\\s*(?:^|[\\s,;])(break|continue|return)\\b", + "name": "meta.control.matlab" + }, + "function": { + "patterns": [ + { + "begin": "(?x)\n\t\t\t\t\t\t\t(^\\s*)\t\t\t\t\t\t\t\t\t\t\t\t# Leading whitespace\n\t\t\t\t\t\t\t(function)\n\t\t\t\t\t\t\t\\s+\n\t\t\t\t\t\t\t(?:\t\t\t\t\t\t\t\t\t\t\t\t\t# Optional\n\t\t\t\t\t\t\t\t(?:\n\t\t\t\t\t\t\t\t\t(\\[) ([^\\]]*) (\\])\n\t\t\t\t\t\t\t\t | ([a-zA-Z][a-zA-Z0-9_]*)\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\\s* = \\s*\n\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t\t([a-zA-Z][a-zA-Z0-9_]*(\\.[a-zA-Z][a-zA-Z0-9_]*)*)\t# Function name\n\t\t\t\t\t\t\t\\s*\t\t\t\t\t\t\t\t\t\t\t\t\t# Trailing space\n\t\t\t\t\t\t", + "beginCaptures": { + "2": { + "name": "storage.type.function.matlab" + }, + "3": { + "name": "punctuation.definition.arguments.begin.matlab" + }, + "4": { + "patterns": [ + { + "match": "\\w+", + "name": "variable.parameter.output.matlab" + } + ] + }, + "5": { + "name": "punctuation.definition.arguments.end.matlab" + }, + "6": { + "name": "variable.parameter.output.function.matlab" + }, + "7": { + "name": "entity.name.function.matlab" + } + }, + "end": "\\s*(?:^|[\\s,;])(end)\\b(\\s*\\n)?", + "endCaptures": { + "1": { + "name": "keyword.control.end.function.matlab" + } + }, + "name": "meta.function.matlab", + "patterns": [ + { + "begin": "\\G\\(", + "end": "\\)", + "name": "meta.arguments.function.matlab", + "patterns": [ + { + "include": "#line_continuation" + }, + { + "match": "\\w+", + "name": "variable.parameter.input.matlab" + } + ] + }, + { + "begin": "(?x)\n\t\t\t\t\t\t\t\t\t(^\\s*)\t\t\t\t\t\t\t\t# Leading whitespace\n\t\t\t\t\t\t\t\t\t(arguments)\\b([^%]*)\n\t\t\t\t\t\t\t\t\t\\s*\n\t\t\t\t\t\t\t\t\t(\t\t\t\t\t\t\t\t\t# Optional attributes\n\t\t\t\t\t\t\t\t\t\t\\( [^)]* \\)\n\t\t\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t\t\t\t\\s*($|(?=%))\n\t\t\t\t\t\t\t\t", + "beginCaptures": { + "2": { + "name": "keyword.control.arguments.matlab" + }, + "3": { + "patterns": [ + { + "match": "[a-zA-Z][a-zA-Z0-9_]*", + "name": "variable.parameter.arguments.matlab" + } + ] + } + }, + "end": "\\s*(?:^|[\\s,;])(end)\\b", + "endCaptures": { + "1": { + "name": "keyword.control.end.arguments.matlab" + } + }, + "name": "meta.arguments.matlab", + "patterns": [ + { + "include": "#validators" + }, + { + "include": "$self" + } + ] + }, + { + "include": "$self" + } + ] + } + ] + }, + "global_persistent": { + "captures": { + "1": { + "name": "keyword.control.globalpersistent.matlab" + } + }, + "match": "^\\s*(global|persistent)\\b", + "name": "meta.globalpersistent.matlab" + }, + "parens": { + "begin": "\\(", + "end": "(\\)|(?<!\\.\\.\\.).\\n)", + "comment": "We don't include $self here to avoid matching command syntax inside (), [], {}", + "patterns": [ + { + "include": "#end_in_parens" + }, + { + "include": "#all_before_command_dual" + }, + { + "include": "#all_after_command_dual" + }, + { + "comment": "These block keywords pick up any such missed keywords when the block matching for things like (), if-end, etc. don't work. Useful for when someone has partially written", + "include": "#block_keywords" + } + ] + }, + "square_brackets": { + "begin": "\\[", + "end": "\\]", + "comment": "We don't include $self here to avoid matching command syntax inside (), [], {}", + "patterns": [ + { + "include": "#all_before_command_dual" + }, + { + "include": "#all_after_command_dual" + }, + { + "comment": "These block keywords pick up any such missed keywords when the block matching for things like (), if-end, etc. don't work. Useful for when someone has partially written", + "include": "#block_keywords" + } + ] + }, + "curly_brackets": { + "begin": "\\{", + "end": "\\}", + "comment": "We don't include $self here to avoid matching command syntax inside (), [], {}", + "patterns": [ + { + "include": "#end_in_parens" + }, + { + "include": "#all_before_command_dual" + }, + { + "include": "#all_after_command_dual" + }, + { + "include": "#end_in_parens" + }, + { + "comment": "These block keywords pick up any such missed keywords when the block matching for things like (), if-end, etc. don't work. Useful for when someone has partially written", + "include": "#block_keywords" + } + ] + }, + "indexing_curly_brackets": { + "Comment": "Match identifier{idx, idx, } and stop at newline without ... This helps with partially written code like x{idx ", + "begin": "([a-zA-Z][a-zA-Z0-9_\\.]*\\s*)\\{", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "$self" + } + ] + } + }, + "end": "(\\}|(?<!\\.\\.\\.).\\n)", + "comment": "We don't include $self here to avoid matching command syntax inside (), [], {}", + "patterns": [ + { + "include": "#end_in_parens" + }, + { + "include": "#all_before_command_dual" + }, + { + "include": "#all_after_command_dual" + }, + { + "include": "#end_in_parens" + }, + { + "comment": "These block keywords pick up any such missed keywords when the block matching for things like (), if-end, etc. don't work. Useful for when someone has partially written", + "include": "#block_keywords" + } + ] + }, + "line_continuation": { + "captures": { + "1": { + "name": "keyword.operator.symbols.matlab" + }, + "2": { + "name": "comment.line.continuation.matlab" + } + }, + "comment": "Line continuations", + "match": "(\\.\\.\\.)(.*)$", + "name": "meta.linecontinuation.matlab" + }, + "string": { + "patterns": [ + { + "captures": { + "1": { + "name": "string.interpolated.matlab" + }, + "2": { + "name": "punctuation.definition.string.begin.matlab" + } + }, + "comment": "Shell command", + "match": "^\\s*((!).*$\\n?)" + }, + { + "begin": "((?<=(\\[|\\(|\\{|=|\\s|;|:|,|~|<|>|&|\\||-|\\+|\\*|/|\\\\|\\.|\\^))|^)'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.matlab" + } + }, + "comment": "Character vector literal (single-quoted)", + "end": "'(?=(\\[|\\(|\\{|\\]|\\)|\\}|=|~|<|>|&|\\||-|\\+|\\*|/|\\\\|\\.|\\^|\\s|;|:|,))", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.matlab" + } + }, + "name": "string.quoted.single.matlab", + "patterns": [ + { + "match": "''", + "name": "constant.character.escape.matlab" + }, + { + "match": "'(?=.)", + "name": "invalid.illegal.unescaped-quote.matlab" + }, + { + "comment": "Operator symbols", + "match": "((\\%([\\+\\-0]?\\d{0,3}(\\.\\d{1,3})?)(c|d|e|E|f|g|G|s|((b|t)?(o|u|x|X))))|\\%\\%|\\\\(b|f|n|r|t|\\\\))", + "name": "constant.character.escape.matlab" + } + ] + }, + { + "begin": "((?<=(\\[|\\(|\\{|=|\\s|;|:|,|~|<|>|&|\\||-|\\+|\\*|/|\\\\|\\.|\\^))|^)\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.matlab" + } + }, + "comment": "String literal (double-quoted)", + "end": "\"(?=(\\[|\\(|\\{|\\]|\\)|\\}|=|~|<|>|&|\\||-|\\+|\\*|/|\\\\|\\.|\\^|\\||\\s|;|:|,))", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.matlab" + } + }, + "name": "string.quoted.double.matlab", + "patterns": [ + { + "match": "\"\"", + "name": "constant.character.escape.matlab" + }, + { + "match": "\"(?=.)", + "name": "invalid.illegal.unescaped-quote.matlab" + } + ] + } + ] + }, + "conjugate_transpose": { + "match": "((?<=[^\\s])|(?<=\\])|(?<=\\))|(?<=\\}))'", + "name": "keyword.operator.transpose.matlab" + }, + "transpose": { + "match": "\\.'", + "name": "keyword.operator.transpose.matlab" + }, + "constants": { + "comment": "MATLAB Constants", + "match": "(?<!\\.)\\b(eps|false|Inf|inf|intmax|intmin|namelengthmax|NaN|nan|on|off|realmax|realmin|true|pi)\\b", + "name": "constant.language.matlab" + }, + "variables": { + "comment": "MATLAB variables", + "match": "(?<!\\.)\\b(nargin|nargout|varargin|varargout)\\b", + "name": "variable.other.function.matlab" + }, + "end_in_parens": { + "comment": "end as operator symbol", + "match": "\\bend\\b", + "name": "keyword.operator.symbols.matlab" + }, + "numbers": { + "comment": "Valid numbers: 1, .1, 1.1, .1e1, 1.1e1, 1e1, 1i, 1j, 1e2j", + "match": "(?<=[\\s\\-\\+\\*\\/\\\\=:\\[\\(\\{,]|^)\\d*\\.?\\d+([eE][+-]?\\d)?([0-9&&[^\\.]])*(i|j)?\\b", + "name": "constant.numeric.matlab" + }, + "operators": { + "comment": "Operator symbols", + "match": "(?<=\\s)(==|~=|>|>=|<|<=|&|&&|:|\\||\\|\\||\\+|-|\\*|\\.\\*|/|\\./|\\\\|\\.\\\\|\\^|\\.\\^)(?=\\s)", + "name": "keyword.operator.symbols.matlab" + }, + "validators": { + "comment": "Property and argument validation. Match an identifier allowing . and ?.", + "begin": "\\s*[;]?\\s*([a-zA-Z][a-zA-Z0-9_\\.\\?]*)", + "end": "([;\\n%=].*)", + "endCaptures": { + "1": { + "patterns": [ + { + "comment": "Match comments", + "match": "([%].*)", + "captures": { + "1": { + "patterns": [ + { + "include": "$self" + } + ] + } + } + }, + { + "comment": "Handle things like arg = val; nextArg", + "match": "(=[^;]*)", + "captures": { + "1": { + "patterns": [ + { + "include": "$self" + } + ] + } + } + }, + { + "comment": "End of property/argument patterns which start a new property/argument. Look for beginning of identifier after semicolon. Otherwise treat as regular code.", + "match": "([\\n;]\\s*[a-zA-Z].*)", + "captures": { + "1": { + "patterns": [ + { + "include": "#validators" + } + ] + } + } + }, + { + "include": "$self" + } + ] + } + }, + "patterns": [ + { + "include": "#line_continuation" + }, + { + "comment": "Size declaration", + "match": "\\s*(\\([^\\)]*\\))", + "name": "storage.type.matlab" + }, + { + "comment": "Type declaration", + "match": "([a-zA-Z][a-zA-Z0-9_\\.]*)", + "name": "storage.type.matlab" + }, + { + "include": "#braced_validator_list" + } + ] + }, + "braced_validator_list": { + "comment": "Validator functions. Treated as a recursive group to permit nested brackets, quotes, etc.", + "begin": "\\s*({)\\s*", + "beginCaptures": { + "1": { + "name": "storage.type.matlab" + } + }, + "end": "(})", + "endCaptures": { + "1": { + "name": "storage.type.matlab" + } + }, + "patterns": [ + { + "include": "#braced_validator_list" + }, + { + "include": "#validator_strings" + }, + { + "include": "#line_continuation" + }, + { + "match": "([^{}}'\"\\.]+)", + "captures": { + "1": { + "name": "storage.type.matlab" + } + } + }, + { + "match": "\\.", + "name": "storage.type.matlab" + } + ] + }, + "validator_strings": { + "comment": "Simplified string patterns nested inside validator functions which don't change scopes of matches.", + "patterns": [ + { + "patterns": [ + { + "begin": "((?<=(\\[|\\(|\\{|=|\\s|;|:|,|~|<|>|&|\\||-|\\+|\\*|/|\\\\|\\.|\\^))|^)'", + "comment": "Character vector literal (single-quoted)", + "end": "'(?=(\\[|\\(|\\{|\\]|\\)|\\}|=|~|<|>|&|\\||-|\\+|\\*|/|\\\\|\\.|\\^|\\s|;|:|,))", + "name": "storage.type.matlab", + "patterns": [ + { + "match": "''" + }, + { + "match": "'(?=.)" + }, + { + "match": "([^']+)" + } + ] + }, + { + "begin": "((?<=(\\[|\\(|\\{|=|\\s|;|:|,|~|<|>|&|\\||-|\\+|\\*|/|\\\\|\\.|\\^))|^)\"", + "comment": "String literal (double-quoted)", + "end": "\"(?=(\\[|\\(|\\{|\\]|\\)|\\}|=|~|<|>|&|\\||-|\\+|\\*|/|\\\\|\\.|\\^|\\||\\s|;|:|,))", + "name": "storage.type.matlab", + "patterns": [ + { + "match": "\"\"" + }, + { + "match": "\"(?=.)" + }, + { + "match": "[^\"]+" + } + ] + } + ] + } + ] + } + }, + "scopeName": "source.matlab", + "uuid": "48F8858B-72FF-11D9-BFEE-000D93589AF6" +} diff --git a/docs/shiki/languages/mdc.tmLanguage.json b/docs/shiki/languages/mdc.tmLanguage.json new file mode 100644 index 00000000..78e3f2fd --- /dev/null +++ b/docs/shiki/languages/mdc.tmLanguage.json @@ -0,0 +1,571 @@ +{ + "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", + "name": "mdc", + "injectionSelector": "L:text.html.markdown", + "scopeName": "text.markdown.mdc", + "patterns": [ + { + "include": "#component_block" + }, + { + "include": "#inline" + } + ], + "repository": { + "block": { + "patterns": [ + { + "include": "#component_block" + }, + { + "include": "text.html.markdown#separator" + }, + { + "include": "#heading" + }, + { + "include": "#blockquote" + }, + { + "include": "#lists" + }, + { + "include": "text.html.markdown#fenced_code_block" + }, + { + "include": "text.html.markdown#link-def" + }, + { + "include": "text.html.markdown#html" + }, + { + "include": "#paragraph" + } + ] + }, + "inline": { + "patterns": [ + { + "include": "#component_inline" + }, + { + "include": "#span" + }, + { + "include": "#attributes" + } + ] + }, + "span": { + "match": "(?x)\n (\\[) # Open\n ([^]]*)\n (\\])\n ( # attributes\n ({)\n ([^{]*)\n (})\n )?\n \\s", + "name": "span.component.mdc", + "captures": { + "1": { + "name": "punctuation.definition.tag.start.component" + }, + "2": { + "name": "string.other.link.description.title.markdown" + }, + "3": { + "name": "punctuation.definition.tag.end.component" + }, + "4": { + "patterns": [ + { + "include": "#attributes" + } + ] + } + } + }, + "attributes": { + "match": "(?x)( # attributes\n ({)\n ([^{]*)\n (})\n )", + "name": "attributes.mdc", + "captures": { + "1": { + "name": "punctuation.definition.tag.start.component" + }, + "3": { + "patterns": [ + { + "include": "#attribute" + } + ] + }, + "4": { + "name": "punctuation.definition.tag.end.component" + } + } + }, + "component_inline": { + "match": "(?x)\n (^|\\G|\\s+)\n (:) # component colon\n (?i: # component name\n (\\w[\\w\\d-]*)\n )\n (\n ({[^}]*}) # attributes\n (\\[[^\\]]*\\])? # slot\n # reverse order\n | (\\[[^\\]]*\\]) # slot\n ({[^}]*})? # attributes\n )?\n \\s", + "name": "inline.component.mdc", + "captures": { + "2": { + "name": "punctuation.definition.tag.start.component" + }, + "3": { + "name": "entity.name.tag.component" + }, + "5": { + "patterns": [ + { + "include": "#attributes" + } + ] + }, + "6": { + "patterns": [ + { + "include": "#span" + } + ] + }, + "7": { + "patterns": [ + { + "include": "#span" + } + ] + }, + "8": { + "patterns": [ + { + "include": "#attributes" + } + ] + } + } + }, + "component_block": { + "begin": "(?x)\n (^|\\G)(\\s*)\n (:{2,}) # component colons\n (?i:\n (\\w[\\w\\d-]+) # component name\n ( # folowing spaces or attributes\n \\s*\n | \\s*({[^{]*})\n )\n $\n )", + "name": "block.component.mdc", + "end": "(^|\\G)(\\2)(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.tag.start.mdc" + }, + "4": { + "name": "entity.name.tag.mdc" + }, + "5": { + "patterns": [ + { + "include": "#attributes" + } + ] + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.tag.end.mdc" + } + }, + "patterns": [ + { + "match": "(^|\\G)\\s*([:]{2,})$", + "captures": { + "2": { + "name": "punctuation.definition.tag.end.mdc" + } + } + }, + { + "include": "#content" + } + ] + }, + "content": { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([:]{2,})\\s*$)", + "contentName": "meta.embedded.block.mdc", + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(-{3})(\\s*)$", + "end": "(^|\\G)(\\s*(-{3})(\\s*)$)", + "patterns": [ + { + "include": "source.yaml" + } + ] + }, + { + "match": "^(\\s*)(#[\\w\\-\\_]*)\\s*(<!--(.*)-->)?$", + "captures": { + "2": { + "name": "entity.other.attribute-name.html" + }, + "3": { + "name": "comment.block.html" + } + } + }, + { + "include": "#block" + } + ] + }, + "attribute": { + "patterns": [ + { + "match": "(?x)\n (\n ([^=><\\s]*) # attribute name\n ( # attribute value\n =[\"]([^\"]*)([\"])|[']([^']*)(['])\n | =[^\\s'\"}]*\n )?\n \\s*\n )", + "captures": { + "2": { + "name": "entity.other.attribute-name.html" + }, + "3": { + "patterns": [ + { + "include": "#attribute-interior" + } + ] + } + } + } + ] + }, + "attribute-interior": { + "patterns": [ + { + "begin": "=", + "beginCaptures": { + "0": { + "name": "punctuation.separator.key-value.html" + } + }, + "end": "(?<=[^\\s=])(?!\\s*=)|(?=/?>)", + "patterns": [ + { + "match": "([^\\s\"'=<>`/]|/(?!>))+", + "name": "string.unquoted.html" + }, + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.html" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.html" + } + }, + "name": "string.quoted.double.html", + "patterns": [ + { + "include": "#entities" + } + ] + }, + { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.html" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.html" + } + }, + "name": "string.quoted.single.html", + "patterns": [ + { + "include": "#entities" + } + ] + }, + { + "match": "=", + "name": "invalid.illegal.unexpected-equals-sign.html" + } + ] + } + ] + }, + "entities": { + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.entity.html" + }, + "912": { + "name": "punctuation.definition.entity.html" + } + }, + "match": "(?x)\n\t\t\t\t\t\t(&)\t(?=[a-zA-Z])\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t(a(s(ymp(eq)?|cr|t)|n(d(slope|d|v|and)?|g(s(t|ph)|zarr|e|le|rt(vb(d)?)?|msd(a(h|c|d|e|f|a|g|b))?)?)|c(y|irc|d|ute|E)?|tilde|o(pf|gon)|uml|p(id|os|prox(eq)?|e|E|acir)?|elig|f(r)?|w(conint|int)|l(pha|e(ph|fsym))|acute|ring|grave|m(p|a(cr|lg))|breve)|A(s(sign|cr)|nd|MP|c(y|irc)|tilde|o(pf|gon)|uml|pplyFunction|fr|Elig|lpha|acute|ring|grave|macr|breve))\n\t\t\t\t\t\t | (B(scr|cy|opf|umpeq|e(cause|ta|rnoullis)|fr|a(ckslash|r(v|wed))|reve)|b(s(cr|im(e)?|ol(hsub|b)?|emi)|n(ot|e(quiv)?)|c(y|ong)|ig(s(tar|qcup)|c(irc|up|ap)|triangle(down|up)|o(times|dot|plus)|uplus|vee|wedge)|o(t(tom)?|pf|wtie|x(h(d|u|D|U)?|times|H(d|u|D|U)?|d(R|l|r|L)|u(R|l|r|L)|plus|D(R|l|r|L)|v(R|h|H|l|r|L)?|U(R|l|r|L)|V(R|h|H|l|r|L)?|minus|box))|Not|dquo|u(ll(et)?|mp(e(q)?|E)?)|prime|e(caus(e)?|t(h|ween|a)|psi|rnou|mptyv)|karow|fr|l(ock|k(1(2|4)|34)|a(nk|ck(square|triangle(down|left|right)?|lozenge)))|a(ck(sim(eq)?|cong|prime|epsilon)|r(vee|wed(ge)?))|r(eve|vbar)|brk(tbrk)?))\n\t\t\t\t\t\t | (c(s(cr|u(p(e)?|b(e)?))|h(cy|i|eck(mark)?)|ylcty|c(irc|ups(sm)?|edil|a(ps|ron))|tdot|ir(scir|c(eq|le(d(R|circ|S|dash|ast)|arrow(left|right)))?|e|fnint|E|mid)?|o(n(int|g(dot)?)|p(y(sr)?|f|rod)|lon(e(q)?)?|m(p(fn|le(xes|ment))?|ma(t)?))|dot|u(darr(l|r)|p(s|c(up|ap)|or|dot|brcap)?|e(sc|pr)|vee|wed|larr(p)?|r(vearrow(left|right)|ly(eq(succ|prec)|vee|wedge)|arr(m)?|ren))|e(nt(erdot)?|dil|mptyv)|fr|w(conint|int)|lubs(uit)?|a(cute|p(s|c(up|ap)|dot|and|brcup)?|r(on|et))|r(oss|arr))|C(scr|hi|c(irc|onint|edil|aron)|ircle(Minus|Times|Dot|Plus)|Hcy|o(n(tourIntegral|int|gruent)|unterClockwiseContourIntegral|p(f|roduct)|lon(e)?)|dot|up(Cap)?|OPY|e(nterDot|dilla)|fr|lo(seCurly(DoubleQuote|Quote)|ckwiseContourIntegral)|a(yleys|cute|p(italDifferentialD)?)|ross))\n\t\t\t\t\t\t | (d(s(c(y|r)|trok|ol)|har(l|r)|c(y|aron)|t(dot|ri(f)?)|i(sin|e|v(ide(ontimes)?|onx)?|am(s|ond(suit)?)?|gamma)|Har|z(cy|igrarr)|o(t(square|plus|eq(dot)?|minus)?|ublebarwedge|pf|wn(harpoon(left|right)|downarrows|arrow)|llar)|d(otseq|a(rr|gger))?|u(har|arr)|jcy|e(lta|g|mptyv)|f(isht|r)|wangle|lc(orn|rop)|a(sh(v)?|leth|rr|gger)|r(c(orn|rop)|bkarow)|b(karow|lac)|Arr)|D(s(cr|trok)|c(y|aron)|Scy|i(fferentialD|a(critical(Grave|Tilde|Do(t|ubleAcute)|Acute)|mond))|o(t(Dot|Equal)?|uble(Right(Tee|Arrow)|ContourIntegral|Do(t|wnArrow)|Up(DownArrow|Arrow)|VerticalBar|L(ong(RightArrow|Left(RightArrow|Arrow))|eft(RightArrow|Tee|Arrow)))|pf|wn(Right(TeeVector|Vector(Bar)?)|Breve|Tee(Arrow)?|arrow|Left(RightVector|TeeVector|Vector(Bar)?)|Arrow(Bar|UpArrow)?))|Zcy|el(ta)?|D(otrahd)?|Jcy|fr|a(shv|rr|gger)))\n\t\t\t\t\t\t | (e(s(cr|im|dot)|n(sp|g)|c(y|ir(c)?|olon|aron)|t(h|a)|o(pf|gon)|dot|u(ro|ml)|p(si(v|lon)?|lus|ar(sl)?)|e|D(ot|Dot)|q(s(im|lant(less|gtr))|c(irc|olon)|u(iv(DD)?|est|als)|vparsl)|f(Dot|r)|l(s(dot)?|inters|l)?|a(ster|cute)|r(Dot|arr)|g(s(dot)?|rave)?|x(cl|ist|p(onentiale|ectation))|m(sp(1(3|4))?|pty(set|v)?|acr))|E(s(cr|im)|c(y|irc|aron)|ta|o(pf|gon)|NG|dot|uml|TH|psilon|qu(ilibrium|al(Tilde)?)|fr|lement|acute|grave|x(ists|ponentialE)|m(pty(SmallSquare|VerySmallSquare)|acr)))\n\t\t\t\t\t\t | (f(scr|nof|cy|ilig|o(pf|r(k(v)?|all))|jlig|partint|emale|f(ilig|l(ig|lig)|r)|l(tns|lig|at)|allingdotseq|r(own|a(sl|c(1(2|8|3|4|5|6)|78|2(3|5)|3(8|4|5)|45|5(8|6)))))|F(scr|cy|illed(SmallSquare|VerySmallSquare)|o(uriertrf|pf|rAll)|fr))\n\t\t\t\t\t\t | (G(scr|c(y|irc|edil)|t|opf|dot|T|Jcy|fr|amma(d)?|reater(Greater|SlantEqual|Tilde|Equal(Less)?|FullEqual|Less)|g|breve)|g(s(cr|im(e|l)?)|n(sim|e(q(q)?)?|E|ap(prox)?)|c(y|irc)|t(c(c|ir)|dot|quest|lPar|r(sim|dot|eq(qless|less)|less|a(pprox|rr)))?|imel|opf|dot|jcy|e(s(cc|dot(o(l)?)?|l(es)?)?|q(slant|q)?|l)?|v(nE|ertneqq)|fr|E(l)?|l(j|E|a)?|a(cute|p|mma(d)?)|rave|g(g)?|breve))\n\t\t\t\t\t\t | (h(s(cr|trok|lash)|y(phen|bull)|circ|o(ok(leftarrow|rightarrow)|pf|arr|rbar|mtht)|e(llip|arts(uit)?|rcon)|ks(earow|warow)|fr|a(irsp|lf|r(dcy|r(cir|w)?)|milt)|bar|Arr)|H(s(cr|trok)|circ|ilbertSpace|o(pf|rizontalLine)|ump(DownHump|Equal)|fr|a(cek|t)|ARDcy))\n\t\t\t\t\t\t | (i(s(cr|in(s(v)?|dot|v|E)?)|n(care|t(cal|prod|e(rcal|gers)|larhk)?|odot|fin(tie)?)?|c(y|irc)?|t(ilde)?|i(nfin|i(nt|int)|ota)?|o(cy|ta|pf|gon)|u(kcy|ml)|jlig|prod|e(cy|xcl)|quest|f(f|r)|acute|grave|m(of|ped|a(cr|th|g(part|e|line))))|I(scr|n(t(e(rsection|gral))?|visible(Comma|Times))|c(y|irc)|tilde|o(ta|pf|gon)|dot|u(kcy|ml)|Ocy|Jlig|fr|Ecy|acute|grave|m(plies|a(cr|ginaryI))?))\n\t\t\t\t\t\t | (j(s(cr|ercy)|c(y|irc)|opf|ukcy|fr|math)|J(s(cr|ercy)|c(y|irc)|opf|ukcy|fr))\n\t\t\t\t\t\t | (k(scr|hcy|c(y|edil)|opf|jcy|fr|appa(v)?|green)|K(scr|c(y|edil)|Hcy|opf|Jcy|fr|appa))\n\t\t\t\t\t\t | (l(s(h|cr|trok|im(e|g)?|q(uo(r)?|b)|aquo)|h(ar(d|u(l)?)|blk)|n(sim|e(q(q)?)?|E|ap(prox)?)|c(y|ub|e(il|dil)|aron)|Barr|t(hree|c(c|ir)|imes|dot|quest|larr|r(i(e|f)?|Par))?|Har|o(ng(left(arrow|rightarrow)|rightarrow|mapsto)|times|z(enge|f)?|oparrow(left|right)|p(f|lus|ar)|w(ast|bar)|a(ng|rr)|brk)|d(sh|ca|quo(r)?|r(dhar|ushar))|ur(dshar|uhar)|jcy|par(lt)?|e(s(s(sim|dot|eq(qgtr|gtr)|approx|gtr)|cc|dot(o(r)?)?|g(es)?)?|q(slant|q)?|ft(harpoon(down|up)|threetimes|leftarrows|arrow(tail)?|right(squigarrow|harpoons|arrow(s)?))|g)?|v(nE|ertneqq)|f(isht|loor|r)|E(g)?|l(hard|corner|tri|arr)?|a(ng(d|le)?|cute|t(e(s)?|ail)?|p|emptyv|quo|rr(sim|hk|tl|pl|fs|lp|b(fs)?)?|gran|mbda)|r(har(d)?|corner|tri|arr|m)|g(E)?|m(idot|oust(ache)?)|b(arr|r(k(sl(d|u)|e)|ac(e|k))|brk)|A(tail|arr|rr))|L(s(h|cr|trok)|c(y|edil|aron)|t|o(ng(RightArrow|left(arrow|rightarrow)|rightarrow|Left(RightArrow|Arrow))|pf|wer(RightArrow|LeftArrow))|T|e(ss(Greater|SlantEqual|Tilde|EqualGreater|FullEqual|Less)|ft(Right(Vector|Arrow)|Ceiling|T(ee(Vector|Arrow)?|riangle(Bar|Equal)?)|Do(ubleBracket|wn(TeeVector|Vector(Bar)?))|Up(TeeVector|DownVector|Vector(Bar)?)|Vector(Bar)?|arrow|rightarrow|Floor|A(ngleBracket|rrow(RightArrow|Bar)?)))|Jcy|fr|l(eftarrow)?|a(ng|cute|placetrf|rr|mbda)|midot))\n\t\t\t\t\t\t | (M(scr|cy|inusPlus|opf|u|e(diumSpace|llintrf)|fr|ap)|m(s(cr|tpos)|ho|nplus|c(y|omma)|i(nus(d(u)?|b)?|cro|d(cir|dot|ast)?)|o(dels|pf)|dash|u(ltimap|map)?|p|easuredangle|DDot|fr|l(cp|dr)|a(cr|p(sto(down|up|left)?)?|l(t(ese)?|e)|rker)))\n\t\t\t\t\t\t | (n(s(hort(parallel|mid)|c(cue|e|r)?|im(e(q)?)?|u(cc(eq)?|p(set(eq(q)?)?|e|E)?|b(set(eq(q)?)?|e|E)?)|par|qsu(pe|be)|mid)|Rightarrow|h(par|arr|Arr)|G(t(v)?|g)|c(y|ong(dot)?|up|edil|a(p|ron))|t(ilde|lg|riangle(left(eq)?|right(eq)?)|gl)|i(s(d)?|v)?|o(t(ni(v(c|a|b))?|in(dot|v(c|a|b)|E)?)?|pf)|dash|u(m(sp|ero)?)?|jcy|p(olint|ar(sl|t|allel)?|r(cue|e(c(eq)?)?)?)|e(s(im|ear)|dot|quiv|ar(hk|r(ow)?)|xist(s)?|Arr)?|v(sim|infin|Harr|dash|Dash|l(t(rie)?|e|Arr)|ap|r(trie|Arr)|g(t|e))|fr|w(near|ar(hk|r(ow)?)|Arr)|V(dash|Dash)|l(sim|t(ri(e)?)?|dr|e(s(s)?|q(slant|q)?|ft(arrow|rightarrow))?|E|arr|Arr)|a(ng|cute|tur(al(s)?)?|p(id|os|prox|E)?|bla)|r(tri(e)?|ightarrow|arr(c|w)?|Arr)|g(sim|t(r)?|e(s|q(slant|q)?)?|E)|mid|L(t(v)?|eft(arrow|rightarrow)|l)|b(sp|ump(e)?))|N(scr|c(y|edil|aron)|tilde|o(nBreakingSpace|Break|t(R(ightTriangle(Bar|Equal)?|everseElement)|Greater(Greater|SlantEqual|Tilde|Equal|FullEqual|Less)?|S(u(cceeds(SlantEqual|Tilde|Equal)?|perset(Equal)?|bset(Equal)?)|quareSu(perset(Equal)?|bset(Equal)?))|Hump(DownHump|Equal)|Nested(GreaterGreater|LessLess)|C(ongruent|upCap)|Tilde(Tilde|Equal|FullEqual)?|DoubleVerticalBar|Precedes(SlantEqual|Equal)?|E(qual(Tilde)?|lement|xists)|VerticalBar|Le(ss(Greater|SlantEqual|Tilde|Equal|Less)?|ftTriangle(Bar|Equal)?))?|pf)|u|e(sted(GreaterGreater|LessLess)|wLine|gative(MediumSpace|Thi(nSpace|ckSpace)|VeryThinSpace))|Jcy|fr|acute))\n\t\t\t\t\t\t | (o(s(cr|ol|lash)|h(m|bar)|c(y|ir(c)?)|ti(lde|mes(as)?)|S|int|opf|d(sold|iv|ot|ash|blac)|uml|p(erp|lus|ar)|elig|vbar|f(cir|r)|l(c(ir|ross)|t|ine|arr)|a(st|cute)|r(slope|igof|or|d(er(of)?|f|m)?|v|arr)?|g(t|on|rave)|m(i(nus|cron|d)|ega|acr))|O(s(cr|lash)|c(y|irc)|ti(lde|mes)|opf|dblac|uml|penCurly(DoubleQuote|Quote)|ver(B(ar|rac(e|ket))|Parenthesis)|fr|Elig|acute|r|grave|m(icron|ega|acr)))\n\t\t\t\t\t\t | (p(s(cr|i)|h(i(v)?|one|mmat)|cy|i(tchfork|v)?|o(intint|und|pf)|uncsp|er(cnt|tenk|iod|p|mil)|fr|l(us(sim|cir|two|d(o|u)|e|acir|mn|b)?|an(ck(h)?|kv))|ar(s(im|l)|t|a(llel)?)?|r(sim|n(sim|E|ap)|cue|ime(s)?|o(d|p(to)?|f(surf|line|alar))|urel|e(c(sim|n(sim|eqq|approx)|curlyeq|eq|approx)?)?|E|ap)?|m)|P(s(cr|i)|hi|cy|i|o(incareplane|pf)|fr|lusMinus|artialD|r(ime|o(duct|portion(al)?)|ecedes(SlantEqual|Tilde|Equal)?)?))\n\t\t\t\t\t\t | (q(scr|int|opf|u(ot|est(eq)?|at(int|ernions))|prime|fr)|Q(scr|opf|UOT|fr))\n\t\t\t\t\t\t | (R(s(h|cr)|ho|c(y|edil|aron)|Barr|ight(Ceiling|T(ee(Vector|Arrow)?|riangle(Bar|Equal)?)|Do(ubleBracket|wn(TeeVector|Vector(Bar)?))|Up(TeeVector|DownVector|Vector(Bar)?)|Vector(Bar)?|arrow|Floor|A(ngleBracket|rrow(Bar|LeftArrow)?))|o(undImplies|pf)|uleDelayed|e(verse(UpEquilibrium|E(quilibrium|lement)))?|fr|EG|a(ng|cute|rr(tl)?)|rightarrow)|r(s(h|cr|q(uo(r)?|b)|aquo)|h(o(v)?|ar(d|u(l)?))|nmid|c(y|ub|e(il|dil)|aron)|Barr|t(hree|imes|ri(e|f|ltri)?)|i(singdotseq|ng|ght(squigarrow|harpoon(down|up)|threetimes|left(harpoons|arrows)|arrow(tail)?|rightarrows))|Har|o(times|p(f|lus|ar)|a(ng|rr)|brk)|d(sh|ca|quo(r)?|ldhar)|uluhar|p(polint|ar(gt)?)|e(ct|al(s|ine|part)?|g)|f(isht|loor|r)|l(har|arr|m)|a(ng(d|e|le)?|c(ute|e)|t(io(nals)?|ail)|dic|emptyv|quo|rr(sim|hk|c|tl|pl|fs|w|lp|ap|b(fs)?)?)|rarr|x|moust(ache)?|b(arr|r(k(sl(d|u)|e)|ac(e|k))|brk)|A(tail|arr|rr)))\n\t\t\t\t\t\t | (s(s(cr|tarf|etmn|mile)|h(y|c(hcy|y)|ort(parallel|mid)|arp)|c(sim|y|n(sim|E|ap)|cue|irc|polint|e(dil)?|E|a(p|ron))?|t(ar(f)?|r(ns|aight(phi|epsilon)))|i(gma(v|f)?|m(ne|dot|plus|e(q)?|l(E)?|rarr|g(E)?)?)|zlig|o(pf|ftcy|l(b(ar)?)?)|dot(e|b)?|u(ng|cc(sim|n(sim|eqq|approx)|curlyeq|eq|approx)?|p(s(im|u(p|b)|et(neq(q)?|eq(q)?)?)|hs(ol|ub)|1|n(e|E)|2|d(sub|ot)|3|plus|e(dot)?|E|larr|mult)?|m|b(s(im|u(p|b)|et(neq(q)?|eq(q)?)?)|n(e|E)|dot|plus|e(dot)?|E|rarr|mult)?)|pa(des(uit)?|r)|e(swar|ct|tm(n|inus)|ar(hk|r(ow)?)|xt|mi|Arr)|q(su(p(set(eq)?|e)?|b(set(eq)?|e)?)|c(up(s)?|ap(s)?)|u(f|ar(e|f))?)|fr(own)?|w(nwar|ar(hk|r(ow)?)|Arr)|larr|acute|rarr|m(t(e(s)?)?|i(d|le)|eparsl|a(shp|llsetminus))|bquo)|S(scr|hort(RightArrow|DownArrow|UpArrow|LeftArrow)|c(y|irc|edil|aron)?|tar|igma|H(cy|CHcy)|opf|u(c(hThat|ceeds(SlantEqual|Tilde|Equal)?)|p(set|erset(Equal)?)?|m|b(set(Equal)?)?)|OFTcy|q(uare(Su(perset(Equal)?|bset(Equal)?)|Intersection|Union)?|rt)|fr|acute|mallCircle))\n\t\t\t\t\t\t | (t(s(hcy|c(y|r)|trok)|h(i(nsp|ck(sim|approx))|orn|e(ta(sym|v)?|re(4|fore))|k(sim|ap))|c(y|edil|aron)|i(nt|lde|mes(d|b(ar)?)?)|o(sa|p(cir|f(ork)?|bot)?|ea)|dot|prime|elrec|fr|w(ixt|ohead(leftarrow|rightarrow))|a(u|rget)|r(i(sb|time|dot|plus|e|angle(down|q|left(eq)?|right(eq)?)?|minus)|pezium|ade)|brk)|T(s(cr|trok)|RADE|h(i(nSpace|ckSpace)|e(ta|refore))|c(y|edil|aron)|S(cy|Hcy)|ilde(Tilde|Equal|FullEqual)?|HORN|opf|fr|a(u|b)|ripleDot))\n\t\t\t\t\t\t | (u(scr|h(ar(l|r)|blk)|c(y|irc)|t(ilde|dot|ri(f)?)|Har|o(pf|gon)|d(har|arr|blac)|u(arr|ml)|p(si(h|lon)?|harpoon(left|right)|downarrow|uparrows|lus|arrow)|f(isht|r)|wangle|l(c(orn(er)?|rop)|tri)|a(cute|rr)|r(c(orn(er)?|rop)|tri|ing)|grave|m(l|acr)|br(cy|eve)|Arr)|U(scr|n(ion(Plus)?|der(B(ar|rac(e|ket))|Parenthesis))|c(y|irc)|tilde|o(pf|gon)|dblac|uml|p(si(lon)?|downarrow|Tee(Arrow)?|per(RightArrow|LeftArrow)|DownArrow|Equilibrium|arrow|Arrow(Bar|DownArrow)?)|fr|a(cute|rr(ocir)?)|ring|grave|macr|br(cy|eve)))\n\t\t\t\t\t\t | (v(s(cr|u(pn(e|E)|bn(e|E)))|nsu(p|b)|cy|Bar(v)?|zigzag|opf|dash|prop|e(e(eq|bar)?|llip|r(t|bar))|Dash|fr|ltri|a(ngrt|r(s(igma|u(psetneq(q)?|bsetneq(q)?))|nothing|t(heta|riangle(left|right))|p(hi|i|ropto)|epsilon|kappa|r(ho)?))|rtri|Arr)|V(scr|cy|opf|dash(l)?|e(e|r(yThinSpace|t(ical(Bar|Separator|Tilde|Line))?|bar))|Dash|vdash|fr|bar))\n\t\t\t\t\t\t | (w(scr|circ|opf|p|e(ierp|d(ge(q)?|bar))|fr|r(eath)?)|W(scr|circ|opf|edge|fr))\n\t\t\t\t\t\t | (X(scr|i|opf|fr)|x(s(cr|qcup)|h(arr|Arr)|nis|c(irc|up|ap)|i|o(time|dot|p(f|lus))|dtri|u(tri|plus)|vee|fr|wedge|l(arr|Arr)|r(arr|Arr)|map))\n\t\t\t\t\t\t | (y(scr|c(y|irc)|icy|opf|u(cy|ml)|en|fr|ac(y|ute))|Y(scr|c(y|irc)|opf|uml|Icy|Ucy|fr|acute|Acy))\n\t\t\t\t\t\t | (z(scr|hcy|c(y|aron)|igrarr|opf|dot|e(ta|etrf)|fr|w(nj|j)|acute)|Z(scr|c(y|aron)|Hcy|opf|dot|e(ta|roWidthSpace)|fr|acute))\n\t\t\t\t\t\t)\n\t\t\t\t\t\t(;)\n\t\t\t\t\t", + "name": "constant.character.entity.named.$2.html" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.entity.html" + }, + "3": { + "name": "punctuation.definition.entity.html" + } + }, + "match": "(&)#[0-9]+(;)", + "name": "constant.character.entity.numeric.decimal.html" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.entity.html" + }, + "3": { + "name": "punctuation.definition.entity.html" + } + }, + "match": "(&)#[xX][0-9a-fA-F]+(;)", + "name": "constant.character.entity.numeric.hexadecimal.html" + }, + { + "match": "&(?=[a-zA-Z0-9]+;)", + "name": "invalid.illegal.ambiguous-ampersand.html" + } + ] + }, + "heading": { + "match": "(?:^|\\G)[ ]*(#{1,6}\\s+(.*?)(\\s+#{1,6})?\\s*)$", + "captures": { + "1": { + "patterns": [ + { + "match": "(#{6})\\s+(.*?)(?:\\s+(#+))?\\s*$", + "name": "heading.6.markdown", + "captures": { + "1": { + "name": "punctuation.definition.heading.markdown" + }, + "2": { + "name": "entity.name.section.markdown", + "patterns": [ + { + "include": "text.html.markdown#inline" + }, + { + "include": "text.html.derivative" + } + ] + }, + "3": { + "name": "punctuation.definition.heading.markdown" + } + } + }, + { + "match": "(#{5})\\s+(.*?)(?:\\s+(#+))?\\s*$", + "name": "heading.5.markdown", + "captures": { + "1": { + "name": "punctuation.definition.heading.markdown" + }, + "2": { + "name": "entity.name.section.markdown", + "patterns": [ + { + "include": "text.html.markdown#inline" + }, + { + "include": "text.html.derivative" + } + ] + }, + "3": { + "name": "punctuation.definition.heading.markdown" + } + } + }, + { + "match": "(#{4})\\s+(.*?)(?:\\s+(#+))?\\s*$", + "name": "heading.4.markdown", + "captures": { + "1": { + "name": "punctuation.definition.heading.markdown" + }, + "2": { + "name": "entity.name.section.markdown", + "patterns": [ + { + "include": "text.html.markdown#inline" + }, + { + "include": "text.html.derivative" + } + ] + }, + "3": { + "name": "punctuation.definition.heading.markdown" + } + } + }, + { + "match": "(#{3})\\s+(.*?)(?:\\s+(#+))?\\s*$", + "name": "heading.3.markdown", + "captures": { + "1": { + "name": "punctuation.definition.heading.markdown" + }, + "2": { + "name": "entity.name.section.markdown", + "patterns": [ + { + "include": "text.html.markdown#inline" + }, + { + "include": "text.html.derivative" + } + ] + }, + "3": { + "name": "punctuation.definition.heading.markdown" + } + } + }, + { + "match": "(#{2})\\s+(.*?)(?:\\s+(#+))?\\s*$", + "name": "heading.2.markdown", + "captures": { + "1": { + "name": "punctuation.definition.heading.markdown" + }, + "2": { + "name": "entity.name.section.markdown", + "patterns": [ + { + "include": "text.html.markdown#inline" + }, + { + "include": "text.html.derivative" + } + ] + }, + "3": { + "name": "punctuation.definition.heading.markdown" + } + } + }, + { + "match": "(#{1})\\s+(.*?)(?:\\s+(#+))?\\s*$", + "name": "heading.1.markdown", + "captures": { + "1": { + "name": "punctuation.definition.heading.markdown" + }, + "2": { + "name": "entity.name.section.markdown", + "patterns": [ + { + "include": "text.html.markdown#inline" + }, + { + "include": "text.html.derivative" + } + ] + }, + "3": { + "name": "punctuation.definition.heading.markdown" + } + } + } + ] + } + }, + "name": "markup.heading.markdown", + "patterns": [ + { + "include": "text.html.markdown#inline" + } + ] + }, + "heading-setext": { + "patterns": [ + { + "match": "^(={3,})(?=[ \\t]*$\\n?)", + "name": "markup.heading.setext.1.markdown" + }, + { + "match": "^(-{3,})(?=[ \\t]*$\\n?)", + "name": "markup.heading.setext.2.markdown" + } + ] + }, + "lists": { + "patterns": [ + { + "begin": "(^|\\G)([ ]*)([*+-])([ \\t])", + "beginCaptures": { + "3": { + "name": "punctuation.definition.list.begin.markdown" + } + }, + "name": "markup.list.unnumbered.markdown", + "patterns": [ + { + "include": "#block" + }, + { + "include": "text.html.markdown#list_paragraph" + } + ], + "while": "((^|\\G)([ ]*|\\t))|(^[ \\t]*$)" + }, + { + "begin": "(^|\\G)([ ]*)([0-9]+\\.)([ \\t])", + "beginCaptures": { + "3": { + "name": "punctuation.definition.list.begin.markdown" + } + }, + "name": "markup.list.numbered.markdown", + "patterns": [ + { + "include": "#block" + }, + { + "include": "text.html.markdown#list_paragraph" + } + ], + "while": "((^|\\G)([ ]*|\\t))|(^[ \\t]*$)" + } + ] + }, + "paragraph": { + "begin": "(^|\\G)[ ]*(?=\\S)", + "name": "meta.paragraph.markdown", + "patterns": [ + { + "include": "text.html.markdown#inline" + }, + { + "include": "text.html.derivative" + }, + { + "include": "#heading-setext" + } + ], + "while": "(^|\\G)((?=\\s*[-=]{3,}\\s*$)|[ ]{4,}(?=\\S))" + }, + "blockquote": { + "begin": "(^|\\G)[ ]*(>) ?", + "captures": { + "2": { + "name": "punctuation.definition.quote.begin.markdown" + } + }, + "name": "markup.quote.markdown", + "patterns": [ + { + "include": "#block" + } + ], + "while": "(^|\\G)\\s*(>) ?" + } + } +} diff --git a/docs/shiki/languages/mdx.tmLanguage.json b/docs/shiki/languages/mdx.tmLanguage.json new file mode 100644 index 00000000..8b8ba847 --- /dev/null +++ b/docs/shiki/languages/mdx.tmLanguage.json @@ -0,0 +1,5627 @@ +{ + "name": "mdx", + "uuid": "fe65e2cd-7c73-4a27-8b5e-5902893626aa", + "fileTypes": ["mdx"], + "patterns": [ + { + "include": "#markdown-frontmatter" + }, + { + "include": "#markdown-sections" + } + ], + "repository": { + "markdown-frontmatter": { + "patterns": [ + { + "include": "#extension-toml" + }, + { + "include": "#extension-yaml" + } + ] + }, + "markdown-sections": { + "patterns": [ + { + "include": "#commonmark-block-quote" + }, + { + "include": "#commonmark-code-fenced" + }, + { + "include": "#extension-gfm-footnote-definition" + }, + { + "include": "#commonmark-definition" + }, + { + "include": "#commonmark-heading-atx" + }, + { + "include": "#commonmark-thematic-break" + }, + { + "include": "#commonmark-heading-setext" + }, + { + "include": "#commonmark-list-item" + }, + { + "include": "#extension-gfm-table" + }, + { + "include": "#extension-math-flow" + }, + { + "include": "#extension-mdx-esm" + }, + { + "include": "#extension-mdx-expression-flow" + }, + { + "include": "#extension-mdx-jsx-flow" + }, + { + "include": "#commonmark-paragraph" + } + ] + }, + "markdown-string": { + "patterns": [ + { + "include": "#commonmark-character-escape" + }, + { + "include": "#commonmark-character-reference" + } + ] + }, + "markdown-text": { + "patterns": [ + { + "include": "#commonmark-attention" + }, + { + "include": "#commonmark-character-escape" + }, + { + "include": "#commonmark-character-reference" + }, + { + "include": "#commonmark-code-text" + }, + { + "include": "#commonmark-hard-break-trailing" + }, + { + "include": "#commonmark-hard-break-escape" + }, + { + "include": "#commonmark-label-end" + }, + { + "include": "#extension-gfm-footnote-call" + }, + { + "include": "#commonmark-label-start" + }, + { + "include": "#extension-gfm-autolink-literal" + }, + { + "include": "#extension-gfm-strikethrough" + }, + { + "include": "#extension-github-gemoji" + }, + { + "include": "#extension-github-mention" + }, + { + "include": "#extension-github-reference" + }, + { + "include": "#extension-math-text" + }, + { + "include": "#extension-mdx-expression-text" + }, + { + "include": "#extension-mdx-jsx-text" + } + ] + }, + "commonmark-attention": { + "patterns": [ + { + "match": "(?<=\\S)\\*{3,}|\\*{3,}(?=\\S)", + "name": "string.other.strong.emphasis.asterisk.mdx" + }, + { + "match": "(?<=[\\p{L}\\p{N}])_{3,}(?![\\p{L}\\p{N}])|(?<=\\p{P})_{3,}|(?<![\\p{L}\\p{N}]|\\p{P})_{3,}(?!\\s)", + "name": "string.other.strong.emphasis.underscore.mdx" + }, + { + "match": "(?<=\\S)\\*{2}|\\*{2}(?=\\S)", + "name": "string.other.strong.asterisk.mdx" + }, + { + "match": "(?<=[\\p{L}\\p{N}])_{2}(?![\\p{L}\\p{N}])|(?<=\\p{P})_{2}|(?<![\\p{L}\\p{N}]|\\p{P})_{2}(?!\\s)", + "name": "string.other.strong.underscore.mdx" + }, + { + "match": "(?<=\\S)\\*|\\*(?=\\S)", + "name": "string.other.emphasis.asterisk.mdx" + }, + { + "match": "(?<=[\\p{L}\\p{N}])_(?![\\p{L}\\p{N}])|(?<=\\p{P})_|(?<![\\p{L}\\p{N}]|\\p{P})_(?!\\s)", + "name": "string.other.emphasis.underscore.mdx" + } + ] + }, + "commonmark-block-quote": { + "begin": "(?:^|\\G)[\\t ]*(>)[ ]?", + "beginCaptures": { + "0": { + "name": "markup.quote.mdx" + }, + "1": { + "name": "punctuation.definition.quote.begin.mdx" + } + }, + "patterns": [ + { + "include": "#markdown-sections" + } + ], + "name": "markup.quote.mdx", + "while": "(?:^|\\G)[\\t ]*(>)[ ]?", + "whileCaptures": { + "0": { + "name": "markup.quote.mdx" + }, + "1": { + "name": "punctuation.definition.quote.begin.mdx" + } + } + }, + "commonmark-character-escape": { + "match": "\\\\(?:[!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~])", + "name": "constant.language.character-escape.mdx" + }, + "commonmark-character-reference": { + "patterns": [ + { + "include": "#whatwg-html-data-character-reference-named-terminated" + }, + { + "match": "(&)(#)([Xx])([0-9A-Fa-f]{1,6})(;)", + "name": "constant.language.character-reference.numeric.hexadecimal.html", + "captures": { + "1": { + "name": "punctuation.definition.character-reference.begin.html" + }, + "2": { + "name": "punctuation.definition.character-reference.numeric.html" + }, + "3": { + "name": "punctuation.definition.character-reference.numeric.hexadecimal.html" + }, + "4": { + "name": "constant.numeric.integer.hexadecimal.html" + }, + "5": { + "name": "punctuation.definition.character-reference.end.html" + } + } + }, + { + "match": "(&)(#)([0-9]{1,7})(;)", + "name": "constant.language.character-reference.numeric.decimal.html", + "captures": { + "1": { + "name": "punctuation.definition.character-reference.begin.html" + }, + "2": { + "name": "punctuation.definition.character-reference.numeric.html" + }, + "3": { + "name": "constant.numeric.integer.decimal.html" + }, + "4": { + "name": "punctuation.definition.character-reference.end.html" + } + } + } + ] + }, + "commonmark-code-fenced": { + "patterns": [ + { + "include": "#commonmark-code-fenced-apib" + }, + { + "include": "#commonmark-code-fenced-asciidoc" + }, + { + "include": "#commonmark-code-fenced-c" + }, + { + "include": "#commonmark-code-fenced-clojure" + }, + { + "include": "#commonmark-code-fenced-coffee" + }, + { + "include": "#commonmark-code-fenced-console" + }, + { + "include": "#commonmark-code-fenced-cpp" + }, + { + "include": "#commonmark-code-fenced-cs" + }, + { + "include": "#commonmark-code-fenced-css" + }, + { + "include": "#commonmark-code-fenced-diff" + }, + { + "include": "#commonmark-code-fenced-dockerfile" + }, + { + "include": "#commonmark-code-fenced-elixir" + }, + { + "include": "#commonmark-code-fenced-elm" + }, + { + "include": "#commonmark-code-fenced-erlang" + }, + { + "include": "#commonmark-code-fenced-gitconfig" + }, + { + "include": "#commonmark-code-fenced-go" + }, + { + "include": "#commonmark-code-fenced-graphql" + }, + { + "include": "#commonmark-code-fenced-haskell" + }, + { + "include": "#commonmark-code-fenced-html" + }, + { + "include": "#commonmark-code-fenced-ini" + }, + { + "include": "#commonmark-code-fenced-java" + }, + { + "include": "#commonmark-code-fenced-js" + }, + { + "include": "#commonmark-code-fenced-json" + }, + { + "include": "#commonmark-code-fenced-julia" + }, + { + "include": "#commonmark-code-fenced-kotlin" + }, + { + "include": "#commonmark-code-fenced-less" + }, + { + "include": "#commonmark-code-fenced-less" + }, + { + "include": "#commonmark-code-fenced-lua" + }, + { + "include": "#commonmark-code-fenced-makefile" + }, + { + "include": "#commonmark-code-fenced-md" + }, + { + "include": "#commonmark-code-fenced-mdx" + }, + { + "include": "#commonmark-code-fenced-objc" + }, + { + "include": "#commonmark-code-fenced-perl" + }, + { + "include": "#commonmark-code-fenced-php" + }, + { + "include": "#commonmark-code-fenced-php" + }, + { + "include": "#commonmark-code-fenced-python" + }, + { + "include": "#commonmark-code-fenced-r" + }, + { + "include": "#commonmark-code-fenced-raku" + }, + { + "include": "#commonmark-code-fenced-ruby" + }, + { + "include": "#commonmark-code-fenced-rust" + }, + { + "include": "#commonmark-code-fenced-scala" + }, + { + "include": "#commonmark-code-fenced-scss" + }, + { + "include": "#commonmark-code-fenced-shell" + }, + { + "include": "#commonmark-code-fenced-shell-session" + }, + { + "include": "#commonmark-code-fenced-sql" + }, + { + "include": "#commonmark-code-fenced-svg" + }, + { + "include": "#commonmark-code-fenced-swift" + }, + { + "include": "#commonmark-code-fenced-toml" + }, + { + "include": "#commonmark-code-fenced-ts" + }, + { + "include": "#commonmark-code-fenced-tsx" + }, + { + "include": "#commonmark-code-fenced-vbnet" + }, + { + "include": "#commonmark-code-fenced-xml" + }, + { + "include": "#commonmark-code-fenced-yaml" + }, + { + "include": "#commonmark-code-fenced-unknown" + } + ] + }, + "commonmark-code-fenced-unknown": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?:[^\\t\\n\\r` ])+)(?:[\\t ]+((?:[^\\n\\r`])+))?)?(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "markup.raw.code.fenced.mdx", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.other.mdx" + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?:[^\\t\\n\\r ])+)(?:[\\t ]+((?:[^\\n\\r])+))?)?(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "markup.raw.code.fenced.mdx", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.other.mdx" + } + ] + }, + "commonmark-code-text": { + "match": "(?<!`)(`+)(?!`)(.+?)(?<!`)(\\1)(?!`)", + "name": "markup.code.other.mdx", + "captures": { + "1": { + "name": "string.other.begin.code.mdx" + }, + "2": { + "name": "markup.raw.code.mdx markup.inline.raw.code.mdx" + }, + "3": { + "name": "string.other.end.code.mdx" + } + } + }, + "commonmark-definition": { + "match": "(?:^|\\G)[\\t ]*(\\[)((?:[^\\[\\\\\\]]|\\\\[\\[\\\\\\]]?)+?)(\\])(:)[ \\t]*(?:(<)((?:[^\\n<\\\\>]|\\\\[<\\\\>]?)*)(>)|(\\g<destination_raw>))(?:[\\t ]+(?:(\")((?:[^\"\\\\]|\\\\[\"\\\\]?)*)(\")|(')((?:[^'\\\\]|\\\\['\\\\]?)*)(')|(\\()((?:[^\\)\\\\]|\\\\[\\)\\\\]?)*)(\\))))?$(?<destination_raw>(?!\\<)(?:(?:[^\\p{Cc}\\ \\\\\\(\\)]|\\\\[\\(\\)\\\\]?)|\\(\\g<destination_raw>*\\))+){0}", + "name": "meta.link.reference.def.mdx", + "captures": { + "1": { + "name": "string.other.begin.mdx" + }, + "2": { + "name": "entity.name.identifier.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "name": "string.other.end.mdx" + }, + "4": { + "name": "punctuation.separator.key-value.mdx" + }, + "5": { + "name": "string.other.begin.destination.mdx" + }, + "6": { + "name": "string.other.link.destination.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "7": { + "name": "string.other.end.destination.mdx" + }, + "8": { + "name": "string.other.link.destination.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "9": { + "name": "string.other.begin.mdx" + }, + "10": { + "name": "string.quoted.double.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "11": { + "name": "string.other.end.mdx" + }, + "12": { + "name": "string.other.begin.mdx" + }, + "13": { + "name": "string.quoted.single.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "14": { + "name": "string.other.end.mdx" + }, + "15": { + "name": "string.other.begin.mdx" + }, + "16": { + "name": "string.quoted.paren.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "17": { + "name": "string.other.end.mdx" + } + } + }, + "commonmark-hard-break-escape": { + "match": "\\\\$", + "name": "constant.language.character-escape.line-ending.mdx" + }, + "commonmark-hard-break-trailing": { + "match": "( ){2,}$", + "name": "carriage-return constant.language.character-escape.line-ending.mdx" + }, + "commonmark-heading-atx": { + "patterns": [ + { + "match": "(?:^|\\G)[\\t ]*(#{1}(?!#))(?:[ \\t]+([^\\r\\n]+?)(?:[ \\t]+(#+?))?)?[ \\t]*$", + "name": "markup.heading.atx.1.mdx", + "captures": { + "1": { + "name": "punctuation.definition.heading.mdx" + }, + "2": { + "name": "entity.name.section.mdx", + "patterns": [ + { + "include": "#markdown-text" + } + ] + }, + "3": { + "name": "punctuation.definition.heading.mdx" + } + } + }, + { + "match": "(?:^|\\G)[\\t ]*(#{2}(?!#))(?:[ \\t]+([^\\r\\n]+?)(?:[ \\t]+(#+?))?)?[ \\t]*$", + "name": "markup.heading.atx.2.mdx", + "captures": { + "1": { + "name": "punctuation.definition.heading.mdx" + }, + "2": { + "name": "entity.name.section.mdx", + "patterns": [ + { + "include": "#markdown-text" + } + ] + }, + "3": { + "name": "punctuation.definition.heading.mdx" + } + } + }, + { + "match": "(?:^|\\G)[\\t ]*(#{3}(?!#))(?:[ \\t]+([^\\r\\n]+?)(?:[ \\t]+(#+?))?)?[ \\t]*$", + "name": "markup.heading.atx.2.mdx", + "captures": { + "1": { + "name": "punctuation.definition.heading.mdx" + }, + "2": { + "name": "entity.name.section.mdx", + "patterns": [ + { + "include": "#markdown-text" + } + ] + }, + "3": { + "name": "punctuation.definition.heading.mdx" + } + } + }, + { + "match": "(?:^|\\G)[\\t ]*(#{4}(?!#))(?:[ \\t]+([^\\r\\n]+?)(?:[ \\t]+(#+?))?)?[ \\t]*$", + "name": "markup.heading.atx.2.mdx", + "captures": { + "1": { + "name": "punctuation.definition.heading.mdx" + }, + "2": { + "name": "entity.name.section.mdx", + "patterns": [ + { + "include": "#markdown-text" + } + ] + }, + "3": { + "name": "punctuation.definition.heading.mdx" + } + } + }, + { + "match": "(?:^|\\G)[\\t ]*(#{5}(?!#))(?:[ \\t]+([^\\r\\n]+?)(?:[ \\t]+(#+?))?)?[ \\t]*$", + "name": "markup.heading.atx.2.mdx", + "captures": { + "1": { + "name": "punctuation.definition.heading.mdx" + }, + "2": { + "name": "entity.name.section.mdx", + "patterns": [ + { + "include": "#markdown-text" + } + ] + }, + "3": { + "name": "punctuation.definition.heading.mdx" + } + } + }, + { + "match": "(?:^|\\G)[\\t ]*(#{6}(?!#))(?:[ \\t]+([^\\r\\n]+?)(?:[ \\t]+(#+?))?)?[ \\t]*$", + "name": "markup.heading.atx.2.mdx", + "captures": { + "1": { + "name": "punctuation.definition.heading.mdx" + }, + "2": { + "name": "entity.name.section.mdx", + "patterns": [ + { + "include": "#markdown-text" + } + ] + }, + "3": { + "name": "punctuation.definition.heading.mdx" + } + } + } + ] + }, + "commonmark-heading-setext": { + "patterns": [ + { + "match": "(?:^|\\G)[\\t ]*(={1,})[ \\t]*$", + "name": "markup.heading.setext.1.mdx" + }, + { + "match": "(?:^|\\G)[\\t ]*(-{1,})[ \\t]*$", + "name": "markup.heading.setext.2.mdx" + } + ] + }, + "commonmark-label-end": { + "patterns": [ + { + "match": "(\\])(\\()[\\t ]*(?:(?:(<)((?:[^\\n<\\\\>]|\\\\[<\\\\>]?)*)(>)|(\\g<destination_raw>))(?:[\\t ]+(?:(\")((?:[^\"\\\\]|\\\\[\"\\\\]?)*)(\")|(')((?:[^'\\\\]|\\\\['\\\\]?)*)(')|(\\()((?:[^\\)\\\\]|\\\\[\\)\\\\]?)*)(\\))))?)?[\\t ]*(\\))(?<destination_raw>(?!\\<)(?:(?:[^\\p{Cc}\\ \\\\\\(\\)]|\\\\[\\(\\)\\\\]?)|\\(\\g<destination_raw>*\\))+){0}", + "captures": { + "1": { + "name": "string.other.end.mdx" + }, + "2": { + "name": "string.other.begin.mdx" + }, + "3": { + "name": "string.other.begin.destination.mdx" + }, + "4": { + "name": "string.other.link.destination.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "5": { + "name": "string.other.end.destination.mdx" + }, + "6": { + "name": "string.other.link.destination.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "7": { + "name": "string.other.begin.mdx" + }, + "8": { + "name": "string.quoted.double.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "9": { + "name": "string.other.end.mdx" + }, + "10": { + "name": "string.other.begin.mdx" + }, + "11": { + "name": "string.quoted.single.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "12": { + "name": "string.other.end.mdx" + }, + "13": { + "name": "string.other.begin.mdx" + }, + "14": { + "name": "string.quoted.paren.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "15": { + "name": "string.other.end.mdx" + }, + "16": { + "name": "string.other.end.mdx" + } + } + }, + { + "match": "(\\])(\\[)((?:[^\\[\\\\\\]]|\\\\[\\[\\\\\\]]?)+?)(\\])", + "captures": { + "1": { + "name": "string.other.end.mdx" + }, + "2": { + "name": "string.other.begin.mdx" + }, + "3": { + "name": "entity.name.identifier.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "4": { + "name": "string.other.end.mdx" + } + } + }, + { + "match": "(\\])", + "captures": { + "1": { + "name": "string.other.end.mdx" + } + } + } + ] + }, + "commonmark-label-start": { + "patterns": [ + { + "match": "\\!\\[(?!\\^)", + "name": "string.other.begin.image.mdx" + }, + { + "match": "\\[", + "name": "string.other.begin.link.mdx" + } + ] + }, + "commonmark-list-item": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*((?:[*+-]))(?:[ ]{4}(?![ ])|\\t)(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?", + "beginCaptures": { + "1": { + "name": "variable.unordered.list.mdx" + }, + "2": { + "name": "keyword.other.tasklist.mdx" + } + }, + "patterns": [ + { + "include": "#markdown-sections" + } + ], + "while": "^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t)[ ]{1}" + }, + { + "begin": "(?:^|\\G)[\\t ]*((?:[*+-]))(?:[ ]{3}(?![ ]))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?", + "beginCaptures": { + "1": { + "name": "variable.unordered.list.mdx" + }, + "2": { + "name": "keyword.other.tasklist.mdx" + } + }, + "patterns": [ + { + "include": "#markdown-sections" + } + ], + "while": "^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t)" + }, + { + "begin": "(?:^|\\G)[\\t ]*((?:[*+-]))(?:[ ]{2}(?![ ]))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?", + "beginCaptures": { + "1": { + "name": "variable.unordered.list.mdx" + }, + "2": { + "name": "keyword.other.tasklist.mdx" + } + }, + "patterns": [ + { + "include": "#markdown-sections" + } + ], + "while": "^(?=[\\t ]*$)|(?:^|\\G)[ ]{3}" + }, + { + "begin": "(?:^|\\G)[\\t ]*((?:[*+-]))(?:[ ]{1}|(?=\\n))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?", + "beginCaptures": { + "1": { + "name": "variable.unordered.list.mdx" + }, + "2": { + "name": "keyword.other.tasklist.mdx" + } + }, + "patterns": [ + { + "include": "#markdown-sections" + } + ], + "while": "^(?=[\\t ]*$)|(?:^|\\G)[ ]{2}" + }, + { + "begin": "(?:^|\\G)[\\t ]*([0-9]{9})((?:\\.|\\)))(?:[ ]{4}(?![ ])|\\t(?![\\t ]))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?", + "beginCaptures": { + "1": { + "name": "string.other.number.mdx" + }, + "2": { + "name": "variable.ordered.list.mdx" + }, + "3": { + "name": "keyword.other.tasklist.mdx" + } + }, + "patterns": [ + { + "include": "#markdown-sections" + } + ], + "while": "^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t){3}[ ]{2}" + }, + { + "begin": "(?:^|\\G)[\\t ]*(?:([0-9]{9})((?:\\.|\\)))(?:[ ]{3}(?![ ]))|([0-9]{8})((?:\\.|\\)))(?:[ ]{4}(?![ ])))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?", + "beginCaptures": { + "1": { + "name": "string.other.number.mdx" + }, + "2": { + "name": "variable.ordered.list.mdx" + }, + "3": { + "name": "string.other.number.mdx" + }, + "4": { + "name": "variable.ordered.list.mdx" + }, + "5": { + "name": "keyword.other.tasklist.mdx" + } + }, + "patterns": [ + { + "include": "#markdown-sections" + } + ], + "while": "^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t){3}[ ]{1}" + }, + { + "begin": "(?:^|\\G)[\\t ]*(?:([0-9]{9})((?:\\.|\\)))(?:[ ]{2}(?![ ]))|([0-9]{8})((?:\\.|\\)))(?:[ ]{3}(?![ ]))|([0-9]{7})((?:\\.|\\)))(?:[ ]{4}(?![ ])))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?", + "beginCaptures": { + "1": { + "name": "string.other.number.mdx" + }, + "2": { + "name": "variable.ordered.list.mdx" + }, + "3": { + "name": "string.other.number.mdx" + }, + "4": { + "name": "variable.ordered.list.mdx" + }, + "5": { + "name": "string.other.number.mdx" + }, + "6": { + "name": "variable.ordered.list.mdx" + }, + "7": { + "name": "keyword.other.tasklist.mdx" + } + }, + "patterns": [ + { + "include": "#markdown-sections" + } + ], + "while": "^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t){3}" + }, + { + "begin": "(?:^|\\G)[\\t ]*(?:([0-9]{9})((?:\\.|\\)))(?:[ ]{1}|(?=[ \\t]*\\n))|([0-9]{8})((?:\\.|\\)))(?:[ ]{2}(?![ ]))|([0-9]{7})((?:\\.|\\)))(?:[ ]{3}(?![ ]))|([0-9]{6})((?:\\.|\\)))(?:[ ]{4}(?![ ])))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?", + "beginCaptures": { + "1": { + "name": "string.other.number.mdx" + }, + "2": { + "name": "variable.ordered.list.mdx" + }, + "3": { + "name": "string.other.number.mdx" + }, + "4": { + "name": "variable.ordered.list.mdx" + }, + "5": { + "name": "string.other.number.mdx" + }, + "6": { + "name": "variable.ordered.list.mdx" + }, + "7": { + "name": "string.other.number.mdx" + }, + "8": { + "name": "variable.ordered.list.mdx" + }, + "9": { + "name": "keyword.other.tasklist.mdx" + } + }, + "patterns": [ + { + "include": "#markdown-sections" + } + ], + "while": "^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t){2}[ ]{3}" + }, + { + "begin": "(?:^|\\G)[\\t ]*(?:([0-9]{8})((?:\\.|\\)))(?:[ ]{1}|(?=[ \\t]*\\n))|([0-9]{7})((?:\\.|\\)))(?:[ ]{2}(?![ ]))|([0-9]{6})((?:\\.|\\)))(?:[ ]{3}(?![ ]))|([0-9]{5})((?:\\.|\\)))(?:[ ]{4}(?![ ])))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?", + "beginCaptures": { + "1": { + "name": "string.other.number.mdx" + }, + "2": { + "name": "variable.ordered.list.mdx" + }, + "3": { + "name": "string.other.number.mdx" + }, + "4": { + "name": "variable.ordered.list.mdx" + }, + "5": { + "name": "string.other.number.mdx" + }, + "6": { + "name": "variable.ordered.list.mdx" + }, + "7": { + "name": "string.other.number.mdx" + }, + "8": { + "name": "variable.ordered.list.mdx" + }, + "9": { + "name": "keyword.other.tasklist.mdx" + } + }, + "patterns": [ + { + "include": "#markdown-sections" + } + ], + "while": "^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t){2}[ ]{2}" + }, + { + "begin": "(?:^|\\G)[\\t ]*(?:([0-9]{7})((?:\\.|\\)))(?:[ ]{1}|(?=[ \\t]*\\n))|([0-9]{6})((?:\\.|\\)))(?:[ ]{2}(?![ ]))|([0-9]{5})((?:\\.|\\)))(?:[ ]{3}(?![ ]))|([0-9]{4})((?:\\.|\\)))(?:[ ]{4}(?![ ])))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?", + "beginCaptures": { + "1": { + "name": "string.other.number.mdx" + }, + "2": { + "name": "variable.ordered.list.mdx" + }, + "3": { + "name": "string.other.number.mdx" + }, + "4": { + "name": "variable.ordered.list.mdx" + }, + "5": { + "name": "string.other.number.mdx" + }, + "6": { + "name": "variable.ordered.list.mdx" + }, + "7": { + "name": "string.other.number.mdx" + }, + "8": { + "name": "variable.ordered.list.mdx" + }, + "9": { + "name": "keyword.other.tasklist.mdx" + } + }, + "patterns": [ + { + "include": "#markdown-sections" + } + ], + "while": "^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t){2}[ ]{1}" + }, + { + "begin": "(?:^|\\G)[\\t ]*(?:([0-9]{6})((?:\\.|\\)))(?:[ ]{1}|(?=[ \\t]*\\n))|([0-9]{5})((?:\\.|\\)))(?:[ ]{2}(?![ ]))|([0-9]{4})((?:\\.|\\)))(?:[ ]{3}(?![ ]))|([0-9]{3})((?:\\.|\\)))(?:[ ]{4}(?![ ])))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?", + "beginCaptures": { + "1": { + "name": "string.other.number.mdx" + }, + "2": { + "name": "variable.ordered.list.mdx" + }, + "3": { + "name": "string.other.number.mdx" + }, + "4": { + "name": "variable.ordered.list.mdx" + }, + "5": { + "name": "string.other.number.mdx" + }, + "6": { + "name": "variable.ordered.list.mdx" + }, + "7": { + "name": "string.other.number.mdx" + }, + "8": { + "name": "variable.ordered.list.mdx" + }, + "9": { + "name": "keyword.other.tasklist.mdx" + } + }, + "patterns": [ + { + "include": "#markdown-sections" + } + ], + "while": "^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t){2}" + }, + { + "begin": "(?:^|\\G)[\\t ]*(?:([0-9]{5})((?:\\.|\\)))(?:[ ]{1}|(?=[ \\t]*\\n))|([0-9]{4})((?:\\.|\\)))(?:[ ]{2}(?![ ]))|([0-9]{3})((?:\\.|\\)))(?:[ ]{3}(?![ ]))|([0-9]{2})((?:\\.|\\)))(?:[ ]{4}(?![ ])))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?", + "beginCaptures": { + "1": { + "name": "string.other.number.mdx" + }, + "2": { + "name": "variable.ordered.list.mdx" + }, + "3": { + "name": "string.other.number.mdx" + }, + "4": { + "name": "variable.ordered.list.mdx" + }, + "5": { + "name": "string.other.number.mdx" + }, + "6": { + "name": "variable.ordered.list.mdx" + }, + "7": { + "name": "string.other.number.mdx" + }, + "8": { + "name": "variable.ordered.list.mdx" + }, + "9": { + "name": "keyword.other.tasklist.mdx" + } + }, + "patterns": [ + { + "include": "#markdown-sections" + } + ], + "while": "^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t)[ ]{3}" + }, + { + "begin": "(?:^|\\G)[\\t ]*(?:([0-9]{4})((?:\\.|\\)))(?:[ ]{1}|(?=[ \\t]*\\n))|([0-9]{3})((?:\\.|\\)))(?:[ ]{2}(?![ ]))|([0-9]{2})((?:\\.|\\)))(?:[ ]{3}(?![ ]))|([0-9]{1})((?:\\.|\\)))(?:[ ]{4}(?![ ])))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?", + "beginCaptures": { + "1": { + "name": "string.other.number.mdx" + }, + "2": { + "name": "variable.ordered.list.mdx" + }, + "3": { + "name": "string.other.number.mdx" + }, + "4": { + "name": "variable.ordered.list.mdx" + }, + "5": { + "name": "string.other.number.mdx" + }, + "6": { + "name": "variable.ordered.list.mdx" + }, + "7": { + "name": "string.other.number.mdx" + }, + "8": { + "name": "variable.ordered.list.mdx" + }, + "9": { + "name": "keyword.other.tasklist.mdx" + } + }, + "patterns": [ + { + "include": "#markdown-sections" + } + ], + "while": "^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t)[ ]{2}" + }, + { + "begin": "(?:^|\\G)[\\t ]*(?:([0-9]{3})((?:\\.|\\)))(?:[ ]{1}|(?=[ \\t]*\\n))|([0-9]{2})((?:\\.|\\)))(?:[ ]{2}(?![ ]))|([0-9]{1})((?:\\.|\\)))(?:[ ]{3}(?![ ])))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?", + "beginCaptures": { + "1": { + "name": "string.other.number.mdx" + }, + "2": { + "name": "variable.ordered.list.mdx" + }, + "3": { + "name": "string.other.number.mdx" + }, + "4": { + "name": "variable.ordered.list.mdx" + }, + "5": { + "name": "string.other.number.mdx" + }, + "6": { + "name": "variable.ordered.list.mdx" + }, + "7": { + "name": "keyword.other.tasklist.mdx" + } + }, + "patterns": [ + { + "include": "#markdown-sections" + } + ], + "while": "^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t)[ ]{1}" + }, + { + "begin": "(?:^|\\G)[\\t ]*(?:([0-9]{2})((?:\\.|\\)))(?:[ ]{1}|(?=[ \\t]*\\n))|([0-9])((?:\\.|\\)))(?:[ ]{2}(?![ ])))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?", + "beginCaptures": { + "1": { + "name": "string.other.number.mdx" + }, + "2": { + "name": "variable.ordered.list.mdx" + }, + "3": { + "name": "string.other.number.mdx" + }, + "4": { + "name": "variable.ordered.list.mdx" + }, + "5": { + "name": "keyword.other.tasklist.mdx" + } + }, + "patterns": [ + { + "include": "#markdown-sections" + } + ], + "while": "^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t)" + }, + { + "begin": "(?:^|\\G)[\\t ]*([0-9])((?:\\.|\\)))(?:[ ]{1}|(?=[ \\t]*\\n))(\\[[\\t Xx]\\](?=[\\t\\n\\r ]+(?:$|[^\\t\\n\\r ])))?", + "beginCaptures": { + "1": { + "name": "string.other.number.mdx" + }, + "2": { + "name": "variable.ordered.list.mdx" + }, + "3": { + "name": "keyword.other.tasklist.mdx" + } + }, + "patterns": [ + { + "include": "#markdown-sections" + } + ], + "while": "^(?=[\\t ]*$)|(?:^|\\G)[ ]{3}" + } + ] + }, + "commonmark-paragraph": { + "begin": "(?![\\t ]*$)", + "name": "meta.paragraph.mdx", + "patterns": [ + { + "include": "#markdown-text" + } + ], + "while": "(?:^|\\G)(?:[ ]{4}|\\t)" + }, + "commonmark-thematic-break": { + "match": "(?:^|\\G)[\\t ]*([-*_])[ \\t]*(?:\\1[ \\t]*){2,}$", + "name": "meta.separator.mdx" + }, + "extension-gfm-autolink-literal": { + "patterns": [ + { + "match": "(?<=^|[\\t\\n\\r \\(\\*\\_\\[\\]~])(?=(?i:www)\\.[^\\n\\r])(?:(?:[\\p{L}\\p{N}]|-|[\\._](?!(?:[!\"'\\)\\*,\\.:;<\\?_~]*(?:[\\s<]|\\][\\t\\n \\(\\[]))))+\\g<path>?)?(?<path>(?:(?:[^\\t\\n\\r !\"&'\\(\\)\\*,\\.:;<\\?\\]_~]|&(?![A-Za-z]*;(?:[!\"'\\)\\*,\\.:;<\\?_~]*(?:[\\s<]|\\][\\t\\n \\(\\[])))|[!\"'\\)\\*,\\.:;\\?_~](?!(?:[!\"'\\)\\*,\\.:;<\\?_~]*(?:[\\s<]|\\][\\t\\n \\(\\[]))))|\\(\\g<path>*\\))+){0}", + "name": "string.other.link.autolink.literal.www.mdx" + }, + { + "match": "(?<=^|[^A-Za-z])(?i:https?://)(?=[\\p{L}\\p{N}])(?:(?:[\\p{L}\\p{N}]|-|[\\._](?!(?:[!\"'\\)\\*,\\.:;<\\?_~]*(?:[\\s<]|\\][\\t\\n \\(\\[]))))+\\g<path>?)?(?<path>(?:(?:[^\\t\\n\\r !\"&'\\(\\)\\*,\\.:;<\\?\\]_~]|&(?![A-Za-z]*;(?:[!\"'\\)\\*,\\.:;<\\?_~]*(?:[\\s<]|\\][\\t\\n \\(\\[])))|[!\"'\\)\\*,\\.:;\\?_~](?!(?:[!\"'\\)\\*,\\.:;<\\?_~]*(?:[\\s<]|\\][\\t\\n \\(\\[]))))|\\(\\g<path>*\\))+){0}", + "name": "string.other.link.autolink.literal.http.mdx" + }, + { + "match": "(?<=^|[^A-Za-z/])(?i:mailto:|xmpp:)?(?:[0-9A-Za-z+\\-\\._])+@(?:(?:[0-9A-Za-z]|[-_](?!(?:[!\"'\\)\\*,\\.:;<\\?_~]*(?:[\\s<]|\\][\\t\\n \\(\\[]))))+(?:\\.(?!(?:[!\"'\\)\\*,\\.:;<\\?_~]*(?:[\\s<]|\\][\\t\\n \\(\\[])))))+(?:[A-Za-z]|[-_](?!(?:[!\"'\\)\\*,\\.:;<\\?_~]*(?:[\\s<]|\\][\\t\\n \\(\\[]))))+", + "name": "string.other.link.autolink.literal.email.mdx" + } + ] + }, + "extension-gfm-footnote-call": { + "match": "(\\[)(\\^)((?:[^\\t\\n\\r \\[\\\\\\]]|\\\\[\\[\\\\\\]]?)+)(\\])", + "captures": { + "1": { + "name": "string.other.begin.link.mdx" + }, + "2": { + "name": "string.other.begin.footnote.mdx" + }, + "3": { + "name": "entity.name.identifier.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "4": { + "name": "string.other.end.footnote.mdx" + } + } + }, + "extension-gfm-footnote-definition": { + "begin": "(?:^|\\G)[\\t ]*(\\[)(\\^)((?:[^\\t\\n\\r \\[\\\\\\]]|\\\\[\\[\\\\\\]]?)+)(\\])(:)[\\t ]*", + "beginCaptures": { + "1": { + "name": "string.other.begin.link.mdx" + }, + "2": { + "name": "string.other.begin.footnote.mdx" + }, + "3": { + "name": "entity.name.identifier.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "4": { + "name": "string.other.end.footnote.mdx" + } + }, + "patterns": [ + { + "include": "#markdown-sections" + } + ], + "while": "^(?=[\\t ]*$)|(?:^|\\G)(?:[ ]{4}|\\t)" + }, + "extension-gfm-strikethrough": { + "match": "(?<=\\S)(?<!~)~{1,2}(?!~)|(?<!~)~{1,2}(?=\\S)(?!~)", + "name": "string.other.strikethrough.mdx" + }, + "extension-gfm-table": { + "begin": "(?:^|\\G)[\\t ]*(?=\\|[^\\n\\r]+\\|[ \\t]*$)", + "patterns": [ + { + "match": "(?<=\\||(?:^|\\G))[\\t ]*((?:[^\\n\\r\\\\\\|]|\\\\[\\\\\\|]?)+?)[\\t ]*(?=\\||$)", + "captures": { + "1": { + "patterns": [ + { + "include": "#markdown-text" + } + ] + } + } + }, + { + "match": "(?:\\|)", + "name": "markup.list.table-delimiter.mdx" + } + ], + "end": "^(?=[\\t ]*$)" + }, + "extension-github-gemoji": { + "match": "(:)((?:(?:(?:hand_with_index_finger_and_thumb_cros|mailbox_clo|fist_rai|confu)s|r(?:aised_hand_with_fingers_splay|e(?:gister|l(?:iev|ax)))|disappointed_reliev|confound|(?:a(?:ston|ngu)i|flu)sh|unamus|hush)e|(?:chart_with_(?:down|up)wards_tre|large_orange_diamo|small_(?:orang|blu)e_diamo|large_blue_diamo|parasol_on_grou|loud_sou|rewi)n|(?:rightwards_pushing_h|hourglass_flowing_s|leftwards_(?:pushing_)?h|(?:raised_back_of|palm_(?:down|up)|call_me)_h|(?:(?:(?:clippert|ascensi)on|norfolk)_is|christmas_is|desert_is|bouvet_is|new_zea|thai|eng|fin|ire)l|rightwards_h|pinching_h|writing_h|s(?:w(?:itzer|azi)|cot)l|magic_w|ok_h|icel)an|s(?:un_behind_(?:large|small|rain)_clou|hallow_pan_of_foo|tar_of_davi|leeping_be|kateboar|a(?:tisfie|uropo)|hiel|oun|qui)|(?:ear_with_hearing_a|pouring_liqu)i|(?:identification_c|(?:arrow_(?:back|for)|fast_for)w|credit_c|woman_be|biohaz|man_be|l(?:eop|iz))ar|m(?:usical_key|ortar_)boar|(?:drop_of_bl|canned_f)oo|c(?:apital_abc|upi)|person_bal|(?:black_bi|(?:cust|plac)a)r|(?:clip|key)boar|mermai|pea_po|worrie|po(?:la|u)n|threa|dv)d|(?:(?:(?:face_with_open_eyes_and_hand_over|face_with_diagonal|open|no)_mou|h(?:and_over_mou|yacin)|mammo)t|running_shirt_with_sas|(?:(?:fishing_pole_and_|blow)fi|(?:tropical_f|petri_d)i|(?:paint|tooth)bru|banglade|jellyfi)s|(?:camera_fl|wavy_d)as|triump|menora|pouc|blus|watc|das|has)h|(?:s(?:o(?:(?:uth_georgia_south_sandwich|lomon)_island|ck)|miling_face_with_three_heart|t_kitts_nevi|weat_drop|agittariu|c(?:orpiu|issor)|ymbol|hort)|twisted_rightwards_arrow|(?:northern_mariana|heard_mcdonald|(?:british_virgi|us_virgi|pitcair|cayma)n|turks_caicos|us_outlying|(?:falk|a)land|marshall|c(?:anary|ocos)|faroe)_island|(?:face_holding_back_tea|(?:c(?:ard_index_divid|rossed_fing)|pinched_fing)e|night_with_sta)r|(?:two_(?:wo)?men_holding|people_holding|heart|open)_hand|(?:sunrise_over_mountai|(?:congratul|united_n)atio|jea)n|(?:caribbean_)?netherland|(?:f(?:lower_playing_car|ace_in_clou)|crossed_swor|prayer_bea)d|(?:money_with_win|nest_with_eg|crossed_fla|hotsprin)g|revolving_heart|(?:high_brightne|(?:expression|wire)le|(?:tumbler|wine)_gla|milk_gla|compa|dre)s|performing_art|earth_america|orthodox_cros|l(?:ow_brightnes|a(?:tin_cros|o)|ung)|no_pedestrian|c(?:ontrol_kno|lu)b|b(?:ookmark_tab|rick|ean)|nesting_doll|cook_island|(?:fleur_de_l|tenn)i|(?:o(?:ncoming_b|phiuch|ctop)|hi(?:ppopotam|bisc)|trolleyb|m(?:(?:rs|x)_cla|auriti|inib)|belar|cact|abac|(?:cyp|tau)r)u|medal_sport|(?:chopstic|firewor)k|rhinocero|(?:p(?:aw_prin|eanu)|footprin)t|two_heart|princes|(?:hondur|baham)a|barbado|aquariu|c(?:ustom|hain)|maraca|comoro|flag|wale|hug|vh)s|(?:(?:diamond_shape_with_a_dot_ins|playground_sl)id|(?:(?:first_quarter|last_quarter|full|new)_moon_with|(?:zipper|money)_mouth|dotted_line|upside_down|c(?:rying_c|owboy_h)at|(?:disguis|nauseat)ed|neutral|monocle|panda|tired|woozy|clown|nerd|zany|fox)_fac|s(?:t(?:uck_out_tongue_winking_ey|eam_locomotiv)|(?:lightly_(?:frown|smil)|neez|h(?:ush|ak))ing_fac|(?:tudio_micropho|(?:hinto_shr|lot_mach)i|ierra_leo|axopho)n|mall_airplan|un_with_fac|a(?:luting_fac|tellit|k)|haved_ic|y(?:nagogu|ring)|n(?:owfl)?ak|urinam|pong)|(?:black_(?:medium_)?small|white_(?:(?:medium_)?small|large)|(?:black|white)_medium|black_large|orange|purple|yellow|b(?:rown|lue)|red)_squar|(?:(?:perso|woma)n_with_|man_with_)?probing_can|(?:p(?:ut_litter_in_its_pl|outing_f)|frowning_f|cold_f|wind_f|hot_f)ac|(?:arrows_c(?:ounterc)?lockwi|computer_mou|derelict_hou|carousel_hor|c(?:ity_sunri|hee)|heartpul|briefca|racehor|pig_no|lacros)s|(?:(?:face_with_head_band|ideograph_advant|adhesive_band|under|pack)a|currency_exchan|l(?:eft_l)?ugga|woman_jud|name_bad|man_jud|jud)g|face_with_peeking_ey|(?:(?:e(?:uropean_post_off|ar_of_r)|post_off)i|information_sour|ambulan)c|artificial_satellit|(?:busts?_in_silhouet|(?:vulcan_sal|parach)u|m(?:usical_no|ayot)|ro(?:ller_ska|set)|timor_les|ice_ska)t|(?:(?:incoming|red)_envelo|s(?:ao_tome_princi|tethosco)|(?:micro|tele)sco|citysca)p|(?:(?:(?:convenience|department)_st|musical_sc)o|f(?:light_depar|ramed_pic)tu|love_you_gestu|heart_on_fi|japanese_og|cote_divoi|perseve|singapo)r|b(?:ullettrain_sid|eliz|on)|(?:(?:female_|male_)?dete|radioa)ctiv|(?:christmas|deciduous|evergreen|tanabata|palm)_tre|(?:vibration_mo|cape_ver)d|(?:fortune_cook|neckt|self)i|(?:fork_and_)?knif|athletic_sho|(?:p(?:lead|arty)|drool|curs|melt|yawn|ly)ing_fac|vomiting_fac|(?:(?:c(?:urling_st|ycl)|meat_on_b|repeat_|headst)o|(?:fire_eng|tanger|ukra)i|rice_sce|(?:micro|i)pho|champag|pho)n|(?:cricket|video)_gam|(?:boxing_glo|oli)v|(?:d(?:ragon|izzy)|monkey)_fac|(?:m(?:artin|ozamb)iq|fond)u|wind_chim|test_tub|flat_sho|m(?:a(?:ns_sho|t)|icrob|oos|ut)|(?:handsh|fish_c|moon_c|cupc)ak|nail_car|zimbabw|ho(?:neybe|l)|ice_cub|airplan|pensiv|c(?:a(?:n(?:dl|o)|k)|o(?:ffe|oki))|tongu|purs|f(?:lut|iv)|d(?:at|ov)|n(?:iu|os)|kit|rag|ax)e|(?:(?:british_indian_ocean_territo|(?:plate_with_cutl|batt)e|medal_milita|low_batte|hunga|wea)r|family_(?:woman_(?:woman_(?:girl|boy)|girl|boy)|man_(?:woman_(?:girl|boy)|man_(?:girl|boy)|girl|boy))_bo|person_feeding_bab|woman_feeding_bab|s(?:u(?:spension_railwa|nn)|t(?:atue_of_libert|_barthelem|rawberr))|(?:m(?:ountain_cable|ilky_)|aerial_tram)wa|articulated_lorr|man_feeding_bab|mountain_railwa|partly_sunn|(?:vatican_c|infin)it|(?:outbox_tr|inbox_tr|birthd|motorw|paragu|urugu|norw|x_r)a|butterfl|ring_buo|t(?:urke|roph)|angr|fogg)y|(?:(?:perso|woma)n_in_motorized_wheelchai|(?:(?:notebook_with_decorative_c|four_leaf_cl)ov|(?:index_pointing_at_the_vie|white_flo)w|(?:face_with_thermome|non\\-potable_wa|woman_firefigh|desktop_compu|m(?:an_firefigh|otor_scoo)|(?:ro(?:ller_coa|o)|oy)s|potable_wa|kick_scoo|thermome|firefigh|helicop|ot)t|(?:woman_factory_wor|(?:woman_office|woman_health|health)_wor|man_(?:factory|office|health)_wor|(?:factory|office)_wor|rice_crac|black_jo|firecrac)k|telephone_receiv|(?:palms_up_toget|f(?:ire_extinguis|eat)|teac)h|(?:(?:open_)?file_fol|level_sli)d|police_offic|f(?:lying_sauc|arm)|woman_teach|roll_of_pap|(?:m(?:iddle_f|an_s)in|woman_sin|hambur|plun|dag)g|do_not_litt|wilted_flow|woman_farm|man_(?:teach|farm)|(?:bell_pe|hot_pe|fli)pp|l(?:o(?:udspeak|ve_lett|bst)|edg|add)|tokyo_tow|c(?:ucumb|lapp|anc)|b(?:e(?:ginn|av)|adg)|print|hamst)e|(?:perso|woma)n_in_manual_wheelchai|m(?:an(?:_in_motorized|(?:_in_man)?ual)|otorized)_wheelchai|(?:person_(?:white|curly|red)_|wheelc)hai|triangular_rule|(?:film_project|e(?:l_salv|cu)ad|elevat|tract|anch)o|s(?:traight_rul|pace_invad|crewdriv|nowboard|unflow|peak|wimm|ing|occ|how|urf|ki)e|r(?:ed_ca|unne|azo)|d(?:o(?:lla|o)|ee)|barbe)r|(?:(?:cloud_with_(?:lightning_and_)?ra|japanese_gobl|round_pushp|liechtenste|mandar|pengu|dolph|bahra|pushp|viol)i|(?:couple(?:_with_heart_wo|kiss_)man|construction_worker|(?:mountain_bik|bow|row)ing|lotus_position|(?:w(?:eight_lift|alk)|climb)ing|white_haired|curly_haired|raising_hand|super(?:villain|hero)|red_haired|basketball|s(?:(?:wimm|urf)ing|assy)|haircut|no_good|(?:vampir|massag)e|b(?:iking|ald)|zombie|fairy|mage|elf|ng)_(?:wo)?ma|(?:(?:couple_with_heart_man|isle_of)_m|(?:couplekiss_woman_|(?:b(?:ouncing_ball|lond_haired)|tipping_hand|pregnant|kneeling|deaf)_|frowning_|s(?:tanding|auna)_|po(?:uting_|lice)|running_|blonde_|o(?:lder|k)_)wom|(?:perso|woma)n_with_turb|(?:b(?:ouncing_ball|lond_haired)|tipping_hand|pregnant|kneeling|deaf)_m|f(?:olding_hand_f|rowning_m)|man_with_turb|(?:turkmen|afghan|pak)ist|s(?:tanding_m|(?:outh_s)?ud|auna_m)|po(?:uting_|lice)m|running_m|azerbaij|k(?:yrgyz|azakh)st|tajikist|uzbekist|o(?:lder_m|k_m|ce)|(?:orang|bh)ut|taiw|jord)a|s(?:mall_red_triangle_dow|(?:valbard_jan_may|int_maart|ev)e|afety_pi|top_sig|t_marti|(?:corpi|po|o)o|wede)|(?:heavy_(?:d(?:ivision|ollar)|equals|minus|plus)|no_entry|female|male)_sig|(?:arrow_(?:heading|double)_d|p(?:erson_with_cr|oint_d)|arrow_up_d|thumbsd)ow|(?:house_with_gard|l(?:ock_with_ink_p|eafy_gre)|dancing_(?:wo)?m|fountain_p|keycap_t|chick|ali|yem|od)e|(?:izakaya|jack_o)_lanter|(?:funeral_u|(?:po(?:stal_h|pc)|capric)o|unico)r|chess_paw|b(?:a(?:llo|c)o|eni|rai)|l(?:anter|io)|c(?:o(?:ff)?i|row)|melo|rame|oma|yar)n|(?:s(?:t(?:uck_out_tongue_closed_ey|_vincent_grenadin)|kull_and_crossbon|unglass|pad)|(?:french_souther|palestinia)n_territori|(?:face_with_spiral|kissing_smiling)_ey|united_arab_emirat|kissing_closed_ey|(?:clinking_|dark_sun|eye)glass|(?:no_mobile_|head)phon|womans_cloth|b(?:allet_sho|lueberri)|philippin|(?:no_bicyc|seychel)l|roll_ey|(?:cher|a)ri|p(?:ancak|isc)|maldiv|leav)es|(?:f(?:amily_(?:woman_(?:woman_)?|man_(?:woman_|man_)?)girl_gir|earfu)|(?:woman_playing_hand|m(?:an_playing_hand|irror_)|c(?:onfetti|rystal)_|volley|track|base|8)bal|(?:(?:m(?:ailbox_with_(?:no_)?m|onor)|cockt|e\\-m)a|(?:person|bride|woman)_with_ve|man_with_ve|light_ra|braz|ema)i|(?:transgender|baby)_symbo|passport_contro|(?:arrow_(?:down|up)_sm|rice_b|footb)al|(?:dromedary_cam|ferris_whe|love_hot|high_he|pretz|falaf|isra)e|page_with_cur|me(?:dical_symbo|ta)|(?:n(?:ewspaper_ro|o_be)|bellhop_be)l|rugby_footbal|s(?:chool_satche|(?:peak|ee)_no_evi|oftbal|crol|anda|nai|hel)|(?:peace|atom)_symbo|hear_no_evi|cora|hote|bage|labe|rof|ow)l|(?:(?:negative_squared_cross|heavy_exclamation|part_alternation)_mar|(?:eight_spoked_)?asteris|(?:ballot_box_with_che|(?:(?:mantelpiece|alarm|timer)_c|un)lo|(?:ha(?:(?:mmer_and|ir)_p|tch(?:ing|ed)_ch)|baby_ch|joyst)i|railway_tra|lipsti|peaco)c|heavy_check_mar|white_check_mar|tr(?:opical_drin|uc)|national_par|pickup_truc|diving_mas|floppy_dis|s(?:tar_struc|hamroc|kun|har)|chipmun|denmar|duc|hoo|lin)k|(?:leftwards_arrow_with_h|arrow_right_h|(?:o(?:range|pen)|closed|blue)_b)ook|(?:woman_playing_water_pol|m(?:an(?:_(?:playing_water_pol|with_gua_pi_ma|in_tuxed)|g)|ontenegr|o(?:roc|na)c|e(?:xic|tr|m))|(?:perso|woma)n_in_tuxed|(?:trinidad_toba|vir)g|water_buffal|b(?:urkina_fas|a(?:mbo|nj)|ent)|puerto_ric|water_pol|flaming|kangaro|(?:mosqu|burr)it|(?:avoc|torn)ad|curaca|lesoth|potat|ko(?:sov|k)|tomat|d(?:ang|od)|yo_y|hoch|t(?:ac|og)|zer)o|(?:c(?:entral_african|zech)|dominican)_republic|(?:eight_pointed_black_s|six_pointed_s|qa)tar|(?:business_suit_levitat|(?:classical_buil|breast_fee)d|(?:woman_cartwhee|m(?:an_(?:cartwhee|jugg)|en_wrest)|women_wrest|woman_jugg|face_exha|cartwhee|wrest|dump)l|c(?:hildren_cross|amp)|woman_facepalm|woman_shrugg|man_(?:facepalm|shrugg)|people_hugg|(?:person_fe|woman_da|man_da)nc|fist_oncom|horse_rac|(?:no_smo|thin)k|laugh|s(?:eedl|mok)|park|w(?:arn|edd))ing|f(?:a(?:mily(?:_(?:woman_(?:woman_(?:girl|boy)|girl|boy)|man_(?:woman_(?:girl|boy)|man_(?:girl|boy)|girl|boy)))?|ctory)|o(?:u(?:ntain|r)|ot|g)|r(?:owning)?|i(?:re|s[ht])|ly|u)|(?:(?:(?:information_desk|handball|bearded)_|(?:frowning|ok)_|juggling_|mer)pers|(?:previous_track|p(?:lay_or_p)?ause|black_square|white_square|next_track|r(?:ecord|adio)|eject)_butt|(?:wa[nx]ing_(?:crescent|gibbous)_m|bowl_with_sp|crescent_m|racc)o|(?:b(?:ouncing_ball|lond_haired)|tipping_hand|pregnant|kneeling|deaf)_pers|s(?:t(?:_pierre_miquel|op_butt|ati)|tanding_pers|peech_ballo|auna_pers)|r(?:eminder_r)?ibb|thought_ballo|watermel|badmint|c(?:amero|ray)|le(?:ban|m)|oni|bis)on|(?:heavy_heart_exclama|building_construc|heart_decora|exclama)tion|(?:(?:triangular_flag_on_po|(?:(?:woman_)?technolog|m(?:ountain_bicycl|an_technolog)|bicycl)i|(?:wo)?man_scienti|(?:wo)?man_arti|s(?:afety_ve|cienti)|empty_ne)s|(?:vertical_)?traffic_ligh|(?:rescue_worker_helm|military_helm|nazar_amul|city_suns|wastebask|dropl|t(?:rump|oil)|bouqu|buck|magn|secr)e|one_piece_swimsui|(?:(?:arrow_(?:low|upp)er|point)_r|bridge_at_n|copyr|mag_r)igh|(?:bullettrain_fro|(?:potted_pl|croiss|e(?:ggpl|leph))a)n|s(?:t(?:ar_and_cresc|ud)en|cream_ca|mi(?:ley?|rk)_ca|(?:peed|ail)boa|hir)|(?:arrow_(?:low|upp)er|point)_lef|woman_astronau|r(?:o(?:tating_ligh|cke)|eceip)|heart_eyes_ca|man_astronau|(?:woman_stud|circus_t|man_stud|trid)en|(?:ringed_pla|file_cabi)ne|nut_and_bol|(?:older_)?adul|k(?:i(?:ssing_ca|wi_frui)|uwai|no)|(?:pouting_c|c(?:ut_of_m|old_sw)e|womans_h|montserr|(?:(?:motor_|row)b|lab_c)o|heartbe|toph)a|(?:woman_pil|honey_p|man_pil|[cp]arr|teap|rob)o|hiking_boo|arrow_lef|fist_righ|flashligh|f(?:ist_lef|ee)|black_ca|astronau|(?:c(?:hest|oco)|dough)nu|innocen|joy_ca|artis|(?:acce|egy)p|co(?:me|a)|pilo)t|(?:heavy_multiplication_|t\\-re)x|(?:s(?:miling_face_with_te|piral_calend)|oncoming_police_c|chocolate_b|ra(?:ilway|cing)_c|police_c|polar_be|teddy_be|madagasc|blue_c|calend|myanm)ar|c(?:l(?:o(?:ud(?:_with_lightning)?|ck(?:1[0-2]?|[2-9]))|ap)?|o(?:uple(?:_with_heart|kiss)?|nstruction|mputer|ok|p|w)|a(?:r(?:d_index)?|mera)|r(?:icket|y)|h(?:art|ild))|(?:m(?:artial_arts_unifo|echanical_a)r|(?:cherry_)?blosso|b(?:aggage_clai|roo)|ice_?crea|facepal|mushroo|restroo|vietna|dru|yu)m|(?:woman_with_headscar|m(?:obile_phone_of|aple_lea)|fallen_lea|wol)f|(?:(?:closed_lock_with|old)_|field_hoc|ice_hoc|han|don)key|g(?:lobe_with_meridians|r(?:e(?:y_(?:exclama|ques)tion|e(?:n(?:_(?:square|circle|salad|apple|heart|book)|land)|ce)|y_heart|nada)|i(?:mac|nn)ing|apes)|u(?:inea_bissau|ernsey|am|n)|(?:(?:olfing|enie)_(?:wo)?|uards(?:wo)?)man|(?:inger_roo|oal_ne|hos)t|(?:uadeloup|ame_di|iraff|oos)e|ift_heart|i(?:braltar|rl)|(?:uatemal|(?:eorg|amb)i|orill|uyan|han)a|uide_dog|(?:oggl|lov)es|arlic|emini|uitar|abon|oat|ear|b)|construction_worker|(?:(?:envelope_with|bow_and)_ar|left_right_ar|raised_eyeb)row|(?:(?:oncoming_automob|crocod)i|right_anger_bubb|l(?:eft_speech_bubb|otion_bott|ady_beet)|congo_brazzavil|eye_speech_bubb|(?:large_blue|orange|purple|yellow|brown)_circ|(?:(?:european|japanese)_cas|baby_bot)t|b(?:alance_sca|eet)|s(?:ewing_need|weat_smi)|(?:black|white|red)_circ|(?:motor|re)cyc|pood|turt|tama|waff|musc|eag)le|first_quarter_moon|s(?:m(?:all_red_triangle|i(?:ley?|rk))|t(?:uck_out_tongue|ar)|hopping|leeping|p(?:arkle|ider)|unrise|nowman|chool|cream|k(?:ull|i)|weat|ix|a)|(?:(?:b(?:osnia_herzegovi|ana)|wallis_futu|(?:french_gui|botsw)a|argenti|st_hele)n|(?:(?:equatorial|papua_new)_guin|north_kor|eritr)e|t(?:ristan_da_cunh|ad)|(?:(?:(?:french_poly|indo)ne|tuni)s|(?:new_caledo|ma(?:urita|cedo)|lithua|(?:tanz|alb|rom)a|arme|esto)n|diego_garc|s(?:audi_arab|t_luc|lov(?:ak|en)|omal|erb)|e(?:arth_as|thiop)|m(?:icrone|alay)s|(?:austra|mongo)l|c(?:ambod|roat)|(?:bulga|alge)r|(?:colom|nami|zam)b|boliv|l(?:iber|atv))i|(?:wheel_of_dhar|cine|pana)m|(?:(?:(?:closed|beach|open)_)?umbrel|ceuta_melil|venezue|ang(?:uil|o)|koa)l|c(?:ongo_kinshas|anad|ub)|(?:western_saha|a(?:mpho|ndor)|zeb)r|american_samo|video_camer|m(?:o(?:vie_camer|ldov)|alt|eg)|(?:earth_af|costa_)ric|s(?:outh_afric|ri_lank|a(?:mo|nt))|bubble_te|(?:antarct|jama)ic|ni(?:caragu|geri|nj)|austri|pi(?:nat|zz)|arub|k(?:eny|aab)|indi|u7a7|l(?:lam|ib[ry])|dn)a|l(?:ast_quarter_moon|o(?:tus|ck)|ips|eo)|(?:hammer_and_wren|c(?:ockroa|hur)|facepun|wren|crut|pun)ch|s(?:nowman_with_snow|ignal_strength|weet_potato|miling_imp|p(?:ider_web|arkle[rs])|w(?:im_brief|an)|a(?:n(?:_marino|dwich)|lt)|topwatch|t(?:a(?:dium|r[2s])|ew)|l(?:e(?:epy|d)|oth)|hrimp|yria|carf|(?:hee|oa)p|ea[lt]|h(?:oe|i[pt])|o[bs])|(?:s(?:tuffed_flatbre|p(?:iral_notep|eaking_he))|(?:exploding_h|baguette_br|flatbr)e)ad|(?:arrow_(?:heading|double)_u|(?:p(?:lace_of_wor|assenger_)sh|film_str|tul)i|page_facing_u|biting_li|(?:billed_c|world_m)a|mouse_tra|(?:curly_lo|busst)o|thumbsu|lo(?:llip)?o|clam|im)p|(?:anatomical|light_blue|sparkling|kissing|mending|orange|purple|yellow|broken|b(?:rown|l(?:ack|ue))|pink)_heart|(?:(?:transgender|black)_fla|mechanical_le|(?:checkered|pirate)_fla|electric_plu|rainbow_fla|poultry_le|service_do|white_fla|luxembour|fried_eg|moneyba|h(?:edgeh|otd)o|shru)g|(?:cloud_with|mountain)_snow|(?:(?:antigua_barb|berm)u|(?:kh|ug)an|rwan)da|(?:3r|2n)d_place_medal|1(?:st_place_medal|234|00)|lotus_position|(?:w(?:eight_lift|alk)|climb)ing|(?:(?:cup_with_str|auto_ricksh)a|carpentry_sa|windo|jigsa)w|(?:(?:couch_and|diya)_la|f(?:ried_shri|uelpu))mp|(?:woman_mechan|man_mechan|alemb)ic|(?:european_un|accord|collis|reun)ion|(?:flight_arriv|hospit|portug|seneg|nep)al|card_file_box|(?:(?:oncoming_)?tax|m(?:o(?:unt_fuj|ya)|alaw)|s(?:paghett|ush|ar)|b(?:r(?:occol|une)|urund)|(?:djibou|kiriba)t|hait|fij)i|(?:shopping_c|white_he|bar_ch)art|d(?:isappointed|ominica|e(?:sert)?)|raising_hand|super(?:villain|hero)|b(?:e(?:verage_box|ers|d)|u(?:bbles|lb|g)|i(?:k(?:ini|e)|rd)|o(?:o(?:ks|t)|a[rt]|y)|read|a[cn]k)|ra(?:ised_hands|bbit2|t)|(?:hindu_tem|ap)ple|thong_sandal|a(?:r(?:row_(?:right|down|up)|t)|bc?|nt)?|r(?:a(?:i(?:sed_hand|nbow)|bbit|dio|m)|u(?:nning)?|epeat|i(?:ng|ce)|o(?:ck|se))|takeout_box|(?:flying_|mini)disc|(?:(?:interrob|yin_y)a|b(?:o(?:omera|wli)|angba)|(?:ping_p|hong_k)o|calli|mahjo)ng|b(?:a(?:llot_box|sket|th?|by)|o(?:o(?:k(?:mark)?|m)|w)|u(?:tter|s)|e(?:ll|er?|ar))?|heart_eyes|basketball|(?:paperclip|dancer|ticket)s|point_up_2|(?:wo)?man_cook|n(?:ew(?:spaper)?|o(?:tebook|_entry)|iger)|t(?:e(?:lephone|a)|o(?:oth|p)|r(?:oll)?|wo)|h(?:o(?:u(?:rglass|se)|rse)|a(?:mmer|nd)|eart)|paperclip|full_moon|(?:b(?:lack_ni|athtu|om)|her)b|(?:long|oil)_drum|pineapple|(?:clock(?:1[0-2]?|[2-9])3|u6e8)0|p(?:o(?:int_up|ut)|r(?:ince|ay)|i(?:ck|g)|en)|e(?:nvelope|ight|u(?:ro)?|gg|ar|ye|s)|m(?:o(?:u(?:ntain|se)|nkey|on)|echanic|a(?:ilbox|g|n)|irror)?|new_moon|d(?:iamonds|olls|art)|question|k(?:iss(?:ing)?|ey)|haircut|no_good|(?:vampir|massag)e|g(?:olf(?:ing)?|u(?:inea|ard)|e(?:nie|m)|ift|rin)|h(?:a(?:ndbag|msa)|ouses|earts|ut)|postbox|toolbox|(?:pencil|t(?:rain|iger)|whale|cat|dog)2|belgium|(?:volca|kimo)no|(?:vanuat|tuval|pala|naur|maca)u|tokelau|o(?:range|ne?|m|k)?|office|dancer|ticket|dragon|pencil|zombie|w(?:o(?:mens|rm|od)|ave|in[gk]|c)|m(?:o(?:sque|use2)|e(?:rman|ns)|a(?:li|sk))|jersey|tshirt|w(?:heel|oman)|dizzy|j(?:apan|oy)|t(?:rain|iger)|whale|fairy|a(?:nge[lr]|bcd|tm)|c(?:h(?:a(?:ir|d)|ile)|a(?:ndy|mel)|urry|rab|o(?:rn|ol|w2)|[dn])|p(?:ager|e(?:a(?:ch|r)|ru)|i(?:g2|ll|e)|oop)|n(?:otes|ine)|t(?:onga|hree|ent|ram|[mv])|f(?:erry|r(?:ies|ee|og)|ax)|u(?:7(?:533|981|121)|5(?:5b6|408|272)|6(?:307|70[89]))|mage|e(?:yes|nd)|i(?:ra[nq]|t)|cat|dog|elf|z(?:zz|ap)|yen|j(?:ar|p)|leg|id|u[kps]|ng|o[2x]|vs|kr|[\\+\\x2D]1|x|v)(:)", + "name": "string.emoji.mdx", + "captures": { + "1": { + "name": "punctuation.definition.gemoji.begin.mdx" + }, + "2": { + "name": "keyword.control.gemoji.mdx" + }, + "3": { + "name": "punctuation.definition.gemoji.end.mdx" + } + } + }, + "extension-github-mention": { + "match": "(?<![0-9A-Za-z_`])(@)((?:[0-9A-Za-z][0-9A-Za-z-]{0,38})(?:\\/(?:[0-9A-Za-z][0-9A-Za-z-]{0,38}))?)(?![0-9A-Za-z_`])", + "name": "string.mention.mdx", + "captures": { + "1": { + "name": "punctuation.definition.mention.begin.mdx" + }, + "2": { + "name": "string.other.link.mention.mdx" + } + } + }, + "extension-github-reference": { + "patterns": [ + { + "match": "(?<![0-9A-Za-z_])(?:((?i:ghsa-|cve-))([A-Za-z0-9]+)|((?i:gh-|#))([0-9]+))(?![0-9A-Za-z_])", + "name": "string.reference.mdx", + "captures": { + "1": { + "name": "punctuation.definition.reference.begin.mdx" + }, + "2": { + "name": "string.other.link.reference.security-advisory.mdx" + }, + "3": { + "name": "punctuation.definition.reference.begin.mdx" + }, + "4": { + "name": "string.other.link.reference.issue-or-pr.mdx" + } + } + }, + { + "match": "(?<![^\\t\\n\\r \\(@\\[\\{])((?:[0-9A-Za-z][0-9A-Za-z-]{0,38})(?:\\/(?:(?:\\.git[0-9A-Za-z_-]|\\.(?!git)|[0-9A-Za-z_-])+))?)(#)([0-9]+)(?![0-9A-Za-z_])", + "name": "string.reference.mdx", + "captures": { + "1": { + "name": "string.other.link.reference.user.mdx" + }, + "2": { + "name": "punctuation.definition.reference.begin.mdx" + }, + "3": { + "name": "string.other.link.reference.issue-or-pr.mdx" + } + } + } + ] + }, + "extension-math-flow": { + "begin": "(?:^|\\G)[\\t ]*(\\${2,})([^\\n\\r\\$]*)$", + "beginCaptures": { + "1": { + "name": "string.other.begin.math.flow.mdx" + }, + "2": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "markup.raw.math.flow.mdx", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.math.flow.mdx" + } + }, + "name": "markup.code.other.mdx" + }, + "extension-math-text": { + "match": "(?<!\\$)(\\${2,})(?!\\$)(.+?)(?<!\\$)(\\1)(?!\\$)", + "captures": { + "1": { + "name": "string.other.begin.math.mdx" + }, + "2": { + "name": "markup.raw.math.mdx markup.inline.raw.math.mdx" + }, + "3": { + "name": "string.other.end.math.mdx" + } + } + }, + "extension-mdx-esm": { + "name": "meta.embedded.tsx", + "begin": "(?:^|\\G)(?=(?i:export|import)[ ])", + "end": "^(?=[\\t ]*$)", + "patterns": [ + { + "include": "source.tsx#statements" + } + ] + }, + "extension-mdx-expression-flow": { + "begin": "(?:^|\\G)[\\t ]*(\\{)", + "beginCaptures": { + "1": { + "name": "string.other.begin.expression.mdx.js" + } + }, + "contentName": "meta.embedded.tsx", + "end": "(\\})(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.begin.expression.mdx.js" + } + }, + "patterns": [ + { + "include": "source.tsx#expression" + } + ] + }, + "extension-mdx-expression-text": { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "string.other.begin.expression.mdx.js" + } + }, + "contentName": "meta.embedded.tsx", + "end": "\\}", + "endCaptures": { + "0": { + "name": "string.other.begin.expression.mdx.js" + } + }, + "patterns": [ + { + "include": "source.tsx#expression" + } + ] + }, + "extension-mdx-jsx-flow": { + "begin": "(?<=^|\\G|\\>)[\\t ]*(<)(?=(?![\\t\\n\\r ]))(?:\\s*(/))?(?:\\s*(?:(?:((?:[_$[:alpha:]][-_$[:alnum:]]*))\\s*(:)\\s*((?:[_$[:alpha:]][-_$[:alnum:]]*)))|((?:(?:[_$[:alpha:]][_$[:alnum:]]*)(?:\\s*\\.\\s*(?:[_$[:alpha:]][-_$[:alnum:]]*))+))|((?:[_$[:upper:]][_$[:alnum:]]*))|((?:[_$[:alpha:]][-_$[:alnum:]]*)))(?=[\\s\\/\\>\\{]))?", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.end.jsx" + }, + "2": { + "name": "punctuation.definition.tag.closing.jsx" + }, + "3": { + "name": "entity.name.tag.namespace.jsx" + }, + "4": { + "name": "punctuation.separator.namespace.jsx" + }, + "5": { + "name": "entity.name.tag.local.jsx" + }, + "6": { + "name": "support.class.component.jsx" + }, + "7": { + "name": "support.class.component.jsx" + }, + "8": { + "name": "entity.name.tag.jsx" + } + }, + "patterns": [ + { + "include": "source.tsx#jsx-tag-attribute-name" + }, + { + "include": "source.tsx#jsx-tag-attribute-assignment" + }, + { + "include": "source.tsx#jsx-string-double-quoted" + }, + { + "include": "source.tsx#jsx-string-single-quoted" + }, + { + "include": "source.tsx#jsx-evaluated-code" + }, + { + "include": "source.tsx#jsx-tag-attributes-illegal" + } + ], + "end": "(?:(\\/)\\s*)?(>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.self-closing.jsx" + }, + "2": { + "name": "punctuation.definition.tag.end.jsx" + } + } + }, + "extension-mdx-jsx-text": { + "begin": "(<)(?=(?![\\t\\n\\r ]))(?:\\s*(/))?(?:\\s*(?:(?:((?:[_$[:alpha:]][-_$[:alnum:]]*))\\s*(:)\\s*((?:[_$[:alpha:]][-_$[:alnum:]]*)))|((?:(?:[_$[:alpha:]][_$[:alnum:]]*)(?:\\s*\\.\\s*(?:[_$[:alpha:]][-_$[:alnum:]]*))+))|((?:[_$[:upper:]][_$[:alnum:]]*))|((?:[_$[:alpha:]][-_$[:alnum:]]*)))(?=[\\s\\/\\>\\{]))?", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.end.jsx" + }, + "2": { + "name": "punctuation.definition.tag.closing.jsx" + }, + "3": { + "name": "entity.name.tag.namespace.jsx" + }, + "4": { + "name": "punctuation.separator.namespace.jsx" + }, + "5": { + "name": "entity.name.tag.local.jsx" + }, + "6": { + "name": "support.class.component.jsx" + }, + "7": { + "name": "support.class.component.jsx" + }, + "8": { + "name": "entity.name.tag.jsx" + } + }, + "patterns": [ + { + "include": "source.tsx#jsx-tag-attribute-name" + }, + { + "include": "source.tsx#jsx-tag-attribute-assignment" + }, + { + "include": "source.tsx#jsx-string-double-quoted" + }, + { + "include": "source.tsx#jsx-string-single-quoted" + }, + { + "include": "source.tsx#jsx-evaluated-code" + }, + { + "include": "source.tsx#jsx-tag-attributes-illegal" + } + ], + "end": "(?:(\\/)\\s*)?(>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.self-closing.jsx" + }, + "2": { + "name": "punctuation.definition.tag.end.jsx" + } + } + }, + "extension-toml": { + "begin": "\\A\\+{3}$", + "end": "^\\+{3}$", + "beginCaptures": { + "0": { + "name": "string.other.begin.toml" + } + }, + "endCaptures": { + "0": { + "name": "string.other.end.toml" + } + }, + "contentName": "meta.embedded.toml", + "patterns": [ + { + "include": "source.toml" + } + ] + }, + "extension-yaml": { + "begin": "\\A-{3}$", + "end": "^-{3}$", + "beginCaptures": { + "0": { + "name": "string.other.begin.yaml" + } + }, + "endCaptures": { + "0": { + "name": "string.other.end.yaml" + } + }, + "contentName": "meta.embedded.yaml", + "patterns": [ + { + "include": "source.yaml" + } + ] + }, + "whatwg-html-data-character-reference-named-terminated": { + "match": "(&)((?:C(?:(?:o(?:unterClockwiseCo)?|lockwiseCo)ntourIntegra|cedi)|(?:(?:Not(?:S(?:quareSu(?:per|b)set|u(?:cceeds|(?:per|b)set))|Precedes|Greater|Tilde|Less)|Not(?:Righ|Lef)tTriangle|(?:Not(?:(?:Succeed|Precede|Les)s|Greater)|(?:Precede|Succeed)s|Less)Slant|SquareSu(?:per|b)set|(?:Not(?:Greater|Tilde)|Tilde|Less)Full|RightTriangle|LeftTriangle|Greater(?:Slant|Full)|Precedes|Succeeds|Superset|NotHump|Subset|Tilde|Hump)Equ|int(?:er)?c|DotEqu)a|DoubleContourIntegra|(?:n(?:short)?parall|shortparall|p(?:arall|rur))e|(?:rightarrowta|l(?:eftarrowta|ced|ata|Ata)|sced|rata|perm|rced|rAta|ced)i|Proportiona|smepars|e(?:qvpars|pars|xc|um)|Integra|suphso|rarr[pt]|n(?:pars|tg)|l(?:arr[pt]|cei)|Rarrt|(?:hybu|fora)l|ForAl|[GKLNR-Tcknt]cedi|rcei|iexc|gime|fras|[uy]um|oso|dso|ium|Ium)l|D(?:o(?:uble(?:(?:L(?:ong(?:Left)?R|eftR)ight|L(?:ongL)?eft|UpDown|Right|Up)Arrow|Do(?:wnArrow|t))|wn(?:ArrowUpA|TeeA|a)rrow)|iacriticalDot|strok|ashv|cy)|(?:(?:(?:N(?:(?:otN)?estedGreater|ot(?:Greater|Less))|Less(?:Equal)?)Great|GreaterGreat|l[lr]corn|mark|east)e|Not(?:Double)?VerticalBa|(?:Not(?:Righ|Lef)tTriangleB|(?:(?:Righ|Lef)tDown|Right(?:Up)?|Left(?:Up)?)VectorB|RightTriangleB|Left(?:Triangle|Arrow)B|RightArrowB|V(?:er(?:ticalB|b)|b)|UpArrowB|l(?:ur(?:ds|u)h|dr(?:us|d)h|trP|owb|H)|profal|r(?:ulu|dld)h|b(?:igst|rvb)|(?:wed|ve[er])b|s(?:wn|es)w|n(?:wne|ese|sp|hp)|gtlP|d(?:oll|uh|H)|(?:hor|ov)b|u(?:dh|H)|r(?:lh|H)|ohb|hb|St)a|D(?:o(?:wn(?:(?:Left(?:Right|Tee)|RightTee)Vecto|(?:(?:Righ|Lef)tVector|Arrow)Ba)|ubleVerticalBa)|a(?:gge|r)|sc|f)|(?:(?:(?:Righ|Lef)tDown|(?:Righ|Lef)tUp)Tee|(?:Righ|Lef)tUpDown)Vecto|VerticalSeparato|(?:Left(?:Right|Tee)|RightTee)Vecto|less(?:eqq?)?gt|e(?:qslantgt|sc)|(?:RightF|LeftF|[lr]f)loo|u(?:[lr]corne|ar)|timesba|(?:plusa|cirs|apa)ci|U(?:arroci|f)|(?:dzigr|s(?:u(?:pl|br)|imr|[lr])|zigr|angz|nvH|l(?:tl|B)|r[Br])ar|UnderBa|(?:plus|harr|top|mid|of)ci|O(?:verBa|sc|f)|dd?agge|s(?:olba|sc)|g(?:t(?:rar|ci)|sc|f)|c(?:opys|u(?:po|ep)|sc|f)|(?:n(?:(?:v[lr]|w|r)A|l[Aa]|h[Aa]|eA)|x[hlr][Aa]|u(?:ua|da|A)|s[ew]A|rla|o[lr]a|rba|rAa|l[Ablr]a|h(?:oa|A)|era|d(?:ua|A)|cra|vA)r|o(?:lci|sc|ro|pa)|ropa|roar|l(?:o(?:pa|ar)|sc|Ar)|i(?:ma|s)c|ltci|dd?ar|a(?:ma|s)c|R(?:Bar|sc|f)|I(?:mac|f)|(?:u(?:ma|s)|oma|ema|Oma|Ema|[wyz]s|qs|ks|fs|Zs|Ys|Xs|Ws|Vs|Us|Ss|Qs|Ns|Ms|Ks|Is|Gs|Fs|Cs|Bs)c|Umac|x(?:sc|f)|v(?:sc|f)|rsc|n(?:ld|f)|m(?:sc|ld|ac|f)|rAr|h(?:sc|f)|b(?:sc|f)|psc|P(?:sc|f)|L(?:sc|ar|f)|jsc|J(?:sc|f)|E(?:sc|f)|[HT]sc|[yz]f|wf|tf|qf|pf|kf|jf|Zf|Yf|Xf|Wf|Vf|Tf|Sf|Qf|Nf|Mf|Kf|Hf|Gf|Ff|Cf|Bf)r|(?:Diacritical(?:Double)?A|[EINOSYZaisz]a)cute|(?:(?:N(?:egative(?:VeryThin|Thi(?:ck|n))|onBreaking)|NegativeMedium|ZeroWidth|VeryThin|Medium|Thi(?:ck|n))Spac|Filled(?:Very)?SmallSquar|Empty(?:Very)?SmallSquar|(?:N(?:ot(?:Succeeds|Greater|Tilde|Less)T|t)|DiacriticalT|VerticalT|PrecedesT|SucceedsT|NotEqualT|GreaterT|TildeT|EqualT|LessT|at|Ut|It)ild|(?:(?:DiacriticalG|[EIOUaiu]g)ra|(?:u|U)?bre|(?:o|e)?gra)v|(?:doublebar|curly|big|x)wedg|H(?:orizontalLin|ilbertSpac)|Double(?:Righ|Lef)tTe|(?:(?:measured|uw)ang|exponentia|dwang|ssmi|fema)l|(?:Poincarepla|reali|pho|oli)n|(?:black)?lozeng|(?:VerticalL|(?:prof|imag)l)in|SmallCircl|(?:black|dot)squar|rmoustach|l(?:moustach|angl)|(?:b(?:ack)?pr|(?:tri|xo)t|[qt]pr)im|[Tt]herefor|(?:DownB|[Gag]b)rev|(?:infint|nv[lr]tr)i|b(?:arwedg|owti)|an(?:dslop|gl)|(?:cu(?:rly)?v|rthr|lthr|b(?:ig|ar)v|xv)e|n(?:s(?:qsu[bp]|ccu)|prcu)|orslop|NewLin|maltes|Becaus|rangl|incar|(?:otil|Otil|t(?:ra|il))d|[inu]tild|s(?:mil|imn)|(?:sc|pr)cu|Wedg|Prim|Brev)e|(?:CloseCurly(?:Double)?Quo|OpenCurly(?:Double)?Quo|[ry]?acu)te|(?:Reverse(?:Up)?|Up)Equilibrium|C(?:apitalDifferentialD|(?:oproduc|(?:ircleD|enterD|d)o)t|on(?:grue|i)nt|conint|upCap|o(?:lone|pf)|OPY|hi)|(?:(?:(?:left)?rightsquig|(?:longleftr|twoheadr|nleftr|nLeftr|longr|hookr|nR|Rr)ight|(?:twohead|hook)left|longleft|updown|Updown|nright|Right|nleft|nLeft|down|up|Up)a|L(?:(?:ong(?:left)?righ|(?:ong)?lef)ta|eft(?:(?:right)?a|RightA|TeeA))|RightTeeA|LongLeftA|UpTeeA)rrow|(?:(?:RightArrow|Short|Upper|Lower)Left|(?:L(?:eftArrow|o(?:wer|ng))|LongLeft|Short|Upper)Right|ShortUp)Arrow|(?:b(?:lacktriangle(?:righ|lef)|ulle|no)|RightDoubleBracke|RightAngleBracke|Left(?:Doub|Ang)leBracke|(?:vartriangle|downharpoon|c(?:ircl|urv)earrow|upharpoon|looparrow)righ|(?:vartriangle|downharpoon|c(?:ircl|urv)earrow|upharpoon|looparrow|mapsto)lef|(?:UnderBrack|OverBrack|emptys|targ|Sups)e|diamondsui|c(?:ircledas|lubsui|are)|(?:spade|heart)sui|(?:(?:c(?:enter|t)|lmi|ino)d|(?:Triple|mD)D|n(?:otin|e)d|(?:ncong|doteq|su[bp]e|e[gl]s)d|l(?:ess|t)d|isind|c(?:ong|up|ap)?d|b(?:igod|N)|t(?:(?:ri)?d|opb)|s(?:ub|im)d|midd|g(?:tr?)?d|Lmid|DotD|(?:xo|ut|z)d|e(?:s?d|rD|fD|DD)|dtd|Zd|Id|Gd|Ed)o|realpar|i(?:magpar|iin)|S(?:uchTha|qr)|su[bp]mul|(?:(?:lt|i)que|gtque|(?:mid|low)a|e(?:que|xi))s|Produc|s(?:updo|e[cx])|r(?:parg|ec)|lparl|vangr|hamil|(?:homt|[lr]fis|ufis|dfis)h|phmma|t(?:wix|in)|quo|o(?:do|as)|fla|eDo)t|(?:(?:Square)?Intersecti|(?:straight|back|var)epsil|SquareUni|expectati|upsil|epsil|Upsil|eq?col|Epsil|(?:omic|Omic|rca|lca|eca|Sca|[NRTt]ca|Lca|Eca|[Zdz]ca|Dca)r|scar|ncar|herc|ccar|Ccar|iog|Iog)on|Not(?:S(?:quareSu(?:per|b)set|u(?:cceeds|(?:per|b)set))|Precedes|Greater|Tilde|Less)?|(?:(?:(?:Not(?:Reverse)?|Reverse)E|comp|E)leme|NotCongrue|(?:n[gl]|l)eqsla|geqsla|q(?:uat)?i|perc|iiii|coni|cwi|awi|oi)nt|(?:(?:rightleftharpo|leftrightharpo|quaterni)on|(?:(?:N(?:ot(?:NestedLess|Greater|Less)|estedLess)L|(?:eqslant|gtr(?:eqq?)?)l|LessL)e|Greater(?:Equal)?Le|cro)s|(?:rightright|leftleft|upup)arrow|rightleftarrow|(?:(?:(?:righ|lef)tthree|divideon|b(?:igo|ox)|[lr]o)t|InvisibleT)ime|downdownarrow|(?:(?:smallset|tri|dot|box)m|PlusM)inu|(?:RoundImpli|complex|Impli|Otim)e|C(?:ircle(?:Time|Minu|Plu)|ayley|ros)|(?:rationa|mode)l|NotExist|(?:(?:UnionP|MinusP|(?:b(?:ig[ou]|ox)|tri|s(?:u[bp]|im)|dot|xu|mn)p)l|(?:xo|u)pl|o(?:min|pl)|ropl|lopl|epl)u|otimesa|integer|e(?:linter|qual)|setminu|rarrbf|larrb?f|olcros|rarrf|mstpo|lesge|gesle|Exist|[lr]time|strn|napo|fltn|ccap|apo)s|(?:b(?:(?:lack|ig)triangledow|etwee)|(?:righ|lef)tharpoondow|(?:triangle|mapsto)dow|(?:nv|i)infi|ssetm|plusm|lagra|d(?:[lr]cor|isi)|c(?:ompf|aro)|s?frow|(?:hyph|curr)e|kgree|thor|ogo|ye)n|Not(?:Righ|Lef)tTriangle|(?:Up(?:Arrow)?|Short)DownArrow|(?:(?:n(?:triangle(?:righ|lef)t|succ|prec)|(?:trianglerigh|trianglelef|sqsu[bp]se|ques)t|backsim)e|lvertneq|gvertneq|(?:suc|pre)cneq|a(?:pprox|symp)e|(?:succ|prec|vee)e|circe)q|(?:UnderParenthes|OverParenthes|xn)is|(?:(?:Righ|Lef)tDown|Right(?:Up)?|Left(?:Up)?)Vector|D(?:o(?:wn(?:RightVector|LeftVector|Arrow|Tee)|t)|el|D)|l(?:eftrightarrows|br(?:k(?:sl[du]|e)|ac[ek])|tri[ef]|s(?:im[eg]|qb|h)|hard|a(?:tes|ngd|p)|o[pz]f|rm|gE|fr|eg|cy)|(?:NotHumpDownHum|(?:righ|lef)tharpoonu|big(?:(?:triangle|sqc)u|c[au])|HumpDownHum|m(?:apstou|lc)|(?:capbr|xsq)cu|smash|rarr[al]|(?:weie|sha)r|larrl|velli|(?:thin|punc)s|h(?:elli|airs)|(?:u[lr]c|vp)ro|d[lr]cro|c(?:upc[au]|apc[au])|thka|scna|prn?a|oper|n(?:ums|va|cu|bs)|ens|xc[au]|Ma)p|l(?:eftrightarrow|e(?:ftarrow|s(?:dot)?)?|moust|a(?:rrb?|te?|ng)|t(?:ri)?|sim|par|oz|l|g)|n(?:triangle(?:righ|lef)t|succ|prec)|SquareSu(?:per|b)set|(?:I(?:nvisibleComm|ot)|(?:varthe|iio)t|varkapp|(?:vars|S)igm|(?:diga|mco)mm|Cedill|lambd|Lambd|delt|Thet|omeg|Omeg|Kapp|Delt|nabl|zet|to[es]|rdc|ldc|iot|Zet|Bet|Et)a|b(?:lacktriangle|arwed|u(?:mpe?|ll)|sol|o(?:x[HVhv]|t)|brk|ne)|(?:trianglerigh|trianglelef|sqsu[bp]se|ques)t|RightT(?:riangl|e)e|(?:(?:varsu[bp]setn|su(?:psetn?|bsetn?))eq|nsu[bp]seteq|colone|(?:wedg|sim)e|nsime|lneq|gneq)q|DifferentialD|(?:(?:fall|ris)ingdots|(?:suc|pre)ccurly|ddots)eq|A(?:pplyFunction|ssign|(?:tild|grav|brev)e|acute|o(?:gon|pf)|lpha|(?:mac|sc|f)r|c(?:irc|y)|ring|Elig|uml|nd|MP)|(?:varsu[bp]setn|su(?:psetn?|bsetn?))eq|L(?:eft(?:T(?:riangl|e)e|Arrow)|l)|G(?:reaterEqual|amma)|E(?:xponentialE|quilibrium|sim|cy|TH|NG)|(?:(?:RightCeil|LeftCeil|varnoth|ar|Ur)in|(?:b(?:ack)?co|uri)n|vzigza|roan|loan|ffli|amal|sun|rin|n(?:tl|an)|Ran|Lan)g|(?:thick|succn?|precn?|less|g(?:tr|n)|ln|n)approx|(?:s(?:traightph|em)|(?:rtril|xu|u[lr]|xd|v[lr])tr|varph|l[lr]tr|b(?:sem|eps)|Ph)i|(?:circledd|osl|n(?:v[Dd]|V[Dd]|d)|hsl|V(?:vd|D)|Osl|v[Dd]|md)ash|(?:(?:RuleDelay|imp|cuw)e|(?:n(?:s(?:hort)?)?|short|rn)mi|D(?:Dotrah|iamon)|(?:i(?:nt)?pr|peri)o|odsol|llhar|c(?:opro|irmi)|(?:capa|anda|pou)n|Barwe|napi|api)d|(?:cu(?:rlyeq(?:suc|pre)|es)|telre|[ou]dbla|Udbla|Odbla|radi|lesc|gesc|dbla)c|(?:circled|big|eq|[is]|c|x|a|S|[hw]|W|H|G|E|C)circ|rightarrow|R(?:ightArrow|arr|e)|Pr(?:oportion)?|(?:longmapst|varpropt|p(?:lustw|ropt)|varrh|numer|(?:rsa|lsa|sb)qu|m(?:icr|h)|[lr]aqu|bdqu|eur)o|UnderBrace|ImaginaryI|B(?:ernoullis|a(?:ckslash|rv)|umpeq|cy)|(?:(?:Laplace|Mellin|zee)tr|Fo(?:uriertr|p)|(?:profsu|ssta)r|ordero|origo|[ps]op|nop|mop|i(?:op|mo)|h(?:op|al)|f(?:op|no)|dop|bop|Rop|Pop|Nop|Lop|Iop|Hop|Dop|[GJKMOQSTV-Zgjkoqvwyz]op|Bop)f|nsu[bp]seteq|t(?:ri(?:angleq|e)|imesd|he(?:tav|re4)|au)|O(?:verBrace|r)|(?:(?:pitchfo|checkma|t(?:opfo|b)|rob|rbb|l[bo]b)r|intlarh|b(?:brktbr|l(?:oc|an))|perten|NoBrea|rarrh|s[ew]arh|n[ew]arh|l(?:arrh|hbl)|uhbl|Hace)k|(?:NotCupC|(?:mu(?:lti)?|x)m|cupbrc)ap|t(?:riangle|imes|heta|opf?)|Precedes|Succeeds|Superset|NotEqual|(?:n(?:atural|exist|les)|s(?:qc[au]p|mte)|prime)s|c(?:ir(?:cled[RS]|[Ee])|u(?:rarrm|larrp|darr[lr]|ps)|o(?:mmat|pf)|aps|hi)|b(?:sol(?:hsu)?b|ump(?:eq|E)|ox(?:box|[Vv][HLRhlr]|[Hh][DUdu]|[DUdu][LRlr])|e(?:rnou|t[ah])|lk(?:34|1[24])|cy)|(?:l(?:esdot|squ|dqu)o|rsquo|rdquo|ngt)r|a(?:n(?:g(?:msda[a-h]|st|e)|d[dv])|st|p[Ee]|mp|fr|c[Edy])|(?:g(?:esdoto|E)|[lr]haru)l|(?:angrtvb|lrhar|nis)d|(?:(?:th(?:ic)?k|succn?|p(?:r(?:ecn?|n)?|lus)|rarr|l(?:ess|arr)|su[bp]|par|scn|g(?:tr|n)|ne|sc|n[glv]|ln|eq?)si|thetasy|ccupss|alefsy|botto)m|trpezium|(?:hks[ew]|dr?bk|bk)arow|(?:(?:[lr]a|d|c)empty|b(?:nequi|empty)|plank|nequi|odi)v|(?:(?:sc|rp|n)pol|point|fpart)int|(?:c(?:irf|wco)|awco)nint|PartialD|n(?:s(?:u[bp](?:set)?|c)|rarr|ot(?:ni|in)?|warr|e(?:arr)?|a(?:tur|p)|vlt|p(?:re?|ar)|um?|l[et]|ge|i)|n(?:atural|exist|les)|d(?:i(?:am(?:ond)?|v(?:ide)?)|tri|ash|ot|d)|backsim|l(?:esdot|squ|dqu)o|g(?:esdoto|E)|U(?:p(?:Arrow|si)|nion|arr)|angrtvb|p(?:l(?:anckh|us(?:d[ou]|[be]))|ar(?:sl|t)|r(?:od|nE|E)|erp|iv|m)|n(?:ot(?:niv[a-c]|in(?:v[a-c]|E))|rarr[cw]|s(?:u[bp][Ee]|c[er])|part|v(?:le|g[et])|g(?:es|E)|c(?:ap|y)|apE|lE|iv|Ll|Gg)|m(?:inus(?:du|b)|ale|cy|p)|rbr(?:k(?:sl[du]|e)|ac[ek])|(?:suphsu|tris|rcu|lcu)b|supdsub|(?:s[ew]a|n[ew]a)rrow|(?:b(?:ecaus|sim)|n(?:[lr]tri|bump)|csu[bp])e|equivDD|u(?:rcorn|lcorn|psi)|timesb|s(?:u(?:p(?:set)?|b(?:set)?)|q(?:su[bp]|u)|i(?:gma|m)|olb?|dot|mt|fr|ce?)|p(?:l(?:anck|us)|r(?:op|ec?)?|ara?|i)|o(?:times|r(?:d(?:er)?)?)|m(?:i(?:nusd?|d)|a(?:p(?:sto)?|lt)|u)|rmoust|g(?:e(?:s(?:dot|l)?|q)?|sim|n(?:ap|e)|t|l|g)|(?:spade|heart)s|c(?:u(?:rarr|larr|p)|o(?:m(?:ma|p)|lon|py|ng)|lubs|heck|cups|irc?|ent|ap)|colone|a(?:p(?:prox)?|n(?:g(?:msd|rt)?|d)|symp|f|c)|S(?:quare|u[bp]|c)|Subset|b(?:ecaus|sim)|vsu[bp]n[Ee]|s(?:u(?:psu[bp]|b(?:su[bp]|n[Ee]|E)|pn[Ee]|p[1-3E]|m)|q(?:u(?:ar[ef]|f)|su[bp]e)|igma[fv]|etmn|dot[be]|par|mid|hc?y|c[Ey])|f(?:rac(?:78|5[68]|45|3[458]|2[35]|1[2-68])|fr)|e(?:m(?:sp1[34]|ptyv)|psiv|c(?:irc|y)|t[ah]|ng|ll|fr|e)|(?:kappa|isins|vBar|fork|rho|phi|n[GL]t)v|divonx|V(?:dashl|ee)|gammad|G(?:ammad|cy|[Tgt])|[Ldhlt]strok|[HT]strok|(?:c(?:ylct|hc)|(?:s(?:oft|hch)|hard|S(?:OFT|HCH)|jser|J(?:ser|uk)|HARD|tsh|TSH|juk|iuk|I(?:uk|[EO])|zh|yi|nj|lj|k[hj]|gj|dj|ZH|Y[AIU]|NJ|LJ|K[HJ]|GJ|D[JSZ])c|ubrc|Ubrc|(?:yu|i[eo]|dz|v|p|f)c|TSc|SHc|CHc|Vc|Pc|Mc|Fc)y|(?:(?:wre|jm)at|dalet|a(?:ngs|le)p|imat|[lr]ds)h|[CLRUceglnou]acute|ff?llig|(?:f(?:fi|[ij])|sz|oe|ij|ae|OE|IJ)lig|r(?:a(?:tio|rr|ng)|tri|par|eal)|s[ew]arr|s(?:qc[au]p|mte)|prime|rarrb|i(?:n(?:fin|t)?|sin|t|i|c)|e(?:quiv|m(?:pty|sp)|p(?:si|ar)|cir|l|g)|kappa|isins|ncong|doteq|(?:wedg|sim)e|nsime|rsquo|rdquo|[lr]haru|V(?:dash|ert)|Tilde|lrhar|gamma|Equal|UpTee|n(?:[lr]tri|bump)|C(?:olon|up|ap)|v(?:arpi|ert)|u(?:psih|ml)|vnsu[bp]|r(?:tri[ef]|e(?:als|g)|a(?:rr[cw]|ng[de]|ce)|sh|lm|x)|rhard|sim[gl]E|i(?:sin[Ev]|mage|f[fr]|cy)|harrw|(?:n[gl]|l)eqq|g(?:sim[el]|tcc|e(?:qq|l)|nE|l[Eaj]|gg|ap)|ocirc|starf|utrif|d(?:trif|i(?:ams|e)|ashv|sc[ry]|fr|eg)|[du]har[lr]|T(?:HORN|a[bu])|(?:TRAD|[gl]vn)E|odash|[EUaeu]o(?:gon|pf)|alpha|[IJOUYgjuy]c(?:irc|y)|v(?:arr|ee)|succ|sim[gl]|harr|ln(?:ap|e)|lesg|(?:n[gl]|l)eq|ocir|star|utri|vBar|fork|su[bp]e|nsim|lneq|gneq|csu[bp]|zwn?j|yacy|x(?:opf|i)|scnE|o(?:r(?:d[fm]|v)|mid|lt|hm|gt|fr|cy|S)|scap|rsqb|ropf|ltcc|tsc[ry]|QUOT|[EOUYao]uml|rho|phi|n[GL]t|e[gl]s|ngt|I(?:nt|m)|nis|rfr|rcy|lnE|lEg|ufr|S(?:um|cy)|R(?:sh|ho)|psi|Ps?i|[NRTt]cy|L(?:sh|cy|[Tt])|kcy|Kcy|Hat|REG|[Zdz]cy|wr|lE|wp|Xi|Nu|Mu)(;)", + "name": "constant.language.character-reference.named.html", + "captures": { + "1": { + "name": "punctuation.definition.character-reference.begin.html" + }, + "2": { + "name": "keyword.control.character-reference.html" + }, + "3": { + "name": "punctuation.definition.character-reference.end.html" + } + } + }, + "commonmark-code-fenced-apib": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:api\\x2dblueprint|(?:.*\\.)?apib))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.apib", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.apib.mdx", + "patterns": [ + { + "include": "text.html.markdown.source.gfm.apib" + } + ] + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:api\\x2dblueprint|(?:.*\\.)?apib))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.apib", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.apib.mdx", + "patterns": [ + { + "include": "text.html.markdown.source.gfm.apib" + } + ] + } + ] + }, + "commonmark-code-fenced-asciidoc": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?(?:adoc|asciidoc)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.asciidoc", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.asciidoc.mdx", + "patterns": [ + { + "include": "text.html.asciidoc" + } + ] + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?(?:adoc|asciidoc)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.asciidoc", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.asciidoc.mdx", + "patterns": [ + { + "include": "text.html.asciidoc" + } + ] + } + ] + }, + "commonmark-code-fenced-c": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:dtrace|dtrace\\x2dscript|oncrpc|rpc|rpcgen|unified\\x2dparallel\\x2dc|x\\x2dbitmap|x\\x2dpixmap|xdr|(?:.*\\.)?(?:c|cats|h|idc|opencl|upc|xbm|xpm|xs)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.c", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.c.mdx", + "patterns": [ + { + "include": "source.c" + } + ] + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:dtrace|dtrace\\x2dscript|oncrpc|rpc|rpcgen|unified\\x2dparallel\\x2dc|x\\x2dbitmap|x\\x2dpixmap|xdr|(?:.*\\.)?(?:c|cats|h|idc|opencl|upc|xbm|xpm|xs)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.c", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.c.mdx", + "patterns": [ + { + "include": "source.c" + } + ] + } + ] + }, + "commonmark-code-fenced-clojure": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:clojure|rouge|(?:.*\\.)?(?:boot|cl2|clj|cljc|cljs|cljs\\.hl|cljscm|cljx|edn|hic|rg|wisp)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.clojure", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.clojure.mdx", + "patterns": [ + { + "include": "source.clojure" + } + ] + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:clojure|rouge|(?:.*\\.)?(?:boot|cl2|clj|cljc|cljs|cljs\\.hl|cljscm|cljx|edn|hic|rg|wisp)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.clojure", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.clojure.mdx", + "patterns": [ + { + "include": "source.clojure" + } + ] + } + ] + }, + "commonmark-code-fenced-coffee": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:coffee\\x2dscript|coffeescript|(?:.*\\.)?(?:_coffee|cjsx|coffee|cson|em|emberscript|iced)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.coffee", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.coffee.mdx", + "patterns": [ + { + "include": "source.coffee" + } + ] + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:coffee\\x2dscript|coffeescript|(?:.*\\.)?(?:_coffee|cjsx|coffee|cson|em|emberscript|iced)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.coffee", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.coffee.mdx", + "patterns": [ + { + "include": "source.coffee" + } + ] + } + ] + }, + "commonmark-code-fenced-console": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:pycon|python\\x2dconsole))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.console", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.console.mdx", + "patterns": [ + { + "include": "text.python.console" + } + ] + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:pycon|python\\x2dconsole))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.console", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.console.mdx", + "patterns": [ + { + "include": "text.python.console" + } + ] + } + ] + }, + "commonmark-code-fenced-cpp": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:ags|ags\\x2dscript|asymptote|c\\+\\+|edje\\x2ddata\\x2dcollection|game\\x2dmaker\\x2dlanguage|swig|(?:.*\\.)?(?:asc|ash|asy|c\\+\\+|cc|cp|cpp|cppm|cxx|edc|gml|h\\+\\+|hh|hpp|hxx|inl|ino|ipp|ixx|metal|re|tcc|tpp|txx)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.cpp", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.cpp.mdx", + "patterns": [ + { + "include": "source.c++" + }, + { + "include": "source.cpp" + } + ] + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:ags|ags\\x2dscript|asymptote|c\\+\\+|edje\\x2ddata\\x2dcollection|game\\x2dmaker\\x2dlanguage|swig|(?:.*\\.)?(?:asc|ash|asy|c\\+\\+|cc|cp|cpp|cppm|cxx|edc|gml|h\\+\\+|hh|hpp|hxx|inl|ino|ipp|ixx|metal|re|tcc|tpp|txx)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.cpp", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.cpp.mdx", + "patterns": [ + { + "include": "source.c++" + }, + { + "include": "source.cpp" + } + ] + } + ] + }, + "commonmark-code-fenced-cs": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:beef|c#|cakescript|csharp|(?:.*\\.)?(?:bf|cake|cs|csx|eq|linq|uno)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.cs", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.cs.mdx", + "patterns": [ + { + "include": "source.cs" + } + ] + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:beef|c#|cakescript|csharp|(?:.*\\.)?(?:bf|cake|cs|csx|eq|linq|uno)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.cs", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.cs.mdx", + "patterns": [ + { + "include": "source.cs" + } + ] + } + ] + }, + "commonmark-code-fenced-css": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?css))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.css", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.css.mdx", + "patterns": [ + { + "include": "source.css" + } + ] + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?css))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.css", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.css.mdx", + "patterns": [ + { + "include": "source.css" + } + ] + } + ] + }, + "commonmark-code-fenced-diff": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:udiff|(?:.*\\.)?(?:diff|patch)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.diff", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.diff.mdx", + "patterns": [ + { + "include": "source.diff" + } + ] + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:udiff|(?:.*\\.)?(?:diff|patch)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.diff", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.diff.mdx", + "patterns": [ + { + "include": "source.diff" + } + ] + } + ] + }, + "commonmark-code-fenced-dockerfile": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:containerfile|(?:.*\\.)?dockerfile))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.dockerfile", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.dockerfile.mdx", + "patterns": [ + { + "include": "source.dockerfile" + } + ] + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:containerfile|(?:.*\\.)?dockerfile))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.dockerfile", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.dockerfile.mdx", + "patterns": [ + { + "include": "source.dockerfile" + } + ] + } + ] + }, + "commonmark-code-fenced-elixir": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:elixir|(?:.*\\.)?(?:ex|exs)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.elixir", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.elixir.mdx", + "patterns": [ + { + "include": "source.elixir" + } + ] + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:elixir|(?:.*\\.)?(?:ex|exs)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.elixir", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.elixir.mdx", + "patterns": [ + { + "include": "source.elixir" + } + ] + } + ] + }, + "commonmark-code-fenced-elm": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?elm))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.elm", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.elm.mdx", + "patterns": [ + { + "include": "source.elm" + } + ] + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?elm))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.elm", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.elm.mdx", + "patterns": [ + { + "include": "source.elm" + } + ] + } + ] + }, + "commonmark-code-fenced-erlang": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:erlang|(?:.*\\.)?(?:app|app\\.src|erl|es|escript|hrl|xrl|yrl)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.erlang", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.erlang.mdx", + "patterns": [ + { + "include": "source.erlang" + } + ] + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:erlang|(?:.*\\.)?(?:app|app\\.src|erl|es|escript|hrl|xrl|yrl)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.erlang", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.erlang.mdx", + "patterns": [ + { + "include": "source.erlang" + } + ] + } + ] + }, + "commonmark-code-fenced-gitconfig": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:git\\x2dconfig|gitmodules|(?:.*\\.)?gitconfig))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.gitconfig", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.gitconfig.mdx", + "patterns": [ + { + "include": "source.gitconfig" + } + ] + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:git\\x2dconfig|gitmodules|(?:.*\\.)?gitconfig))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.gitconfig", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.gitconfig.mdx", + "patterns": [ + { + "include": "source.gitconfig" + } + ] + } + ] + }, + "commonmark-code-fenced-go": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:golang|(?:.*\\.)?go))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.go", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.go.mdx", + "patterns": [ + { + "include": "source.go" + } + ] + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:golang|(?:.*\\.)?go))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.go", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.go.mdx", + "patterns": [ + { + "include": "source.go" + } + ] + } + ] + }, + "commonmark-code-fenced-graphql": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?(?:gql|graphql|graphqls)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.graphql", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.graphql.mdx", + "patterns": [ + { + "include": "source.graphql" + } + ] + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?(?:gql|graphql|graphqls)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.graphql", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.graphql.mdx", + "patterns": [ + { + "include": "source.graphql" + } + ] + } + ] + }, + "commonmark-code-fenced-haskell": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:bh|bluespec\\x2dbh|bluespec\\x2dclassic|c2hs|c2hs\\x2dhaskell|frege|haskell|(?:.*\\.)?(?:chs|dhall|hs|hs\\x2dboot|hsc)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.haskell", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.haskell.mdx", + "patterns": [ + { + "include": "source.haskell" + } + ] + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:bh|bluespec\\x2dbh|bluespec\\x2dclassic|c2hs|c2hs\\x2dhaskell|frege|haskell|(?:.*\\.)?(?:chs|dhall|hs|hs\\x2dboot|hsc)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.haskell", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.haskell.mdx", + "patterns": [ + { + "include": "source.haskell" + } + ] + } + ] + }, + "commonmark-code-fenced-html": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:html|(?:.*\\.)?(?:hta|htm|html\\.hl|kit|mtml|xht|xhtml)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.html", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.html.mdx", + "patterns": [ + { + "include": "text.html.basic" + } + ] + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:html|(?:.*\\.)?(?:hta|htm|html\\.hl|kit|mtml|xht|xhtml)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.html", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.html.mdx", + "patterns": [ + { + "include": "text.html.basic" + } + ] + } + ] + }, + "commonmark-code-fenced-ini": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:altium|altium\\x2ddesigner|dosini|(?:.*\\.)?(?:cnf|dof|ini|lektorproject|outjob|pcbdoc|prefs|prjpcb|properties|schdoc|url)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.ini", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.ini.mdx", + "patterns": [ + { + "include": "source.ini" + } + ] + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:altium|altium\\x2ddesigner|dosini|(?:.*\\.)?(?:cnf|dof|ini|lektorproject|outjob|pcbdoc|prefs|prjpcb|properties|schdoc|url)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.ini", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.ini.mdx", + "patterns": [ + { + "include": "source.ini" + } + ] + } + ] + }, + "commonmark-code-fenced-java": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:chuck|unrealscript|(?:.*\\.)?(?:ck|jav|java|jsh|uc)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.java", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.java.mdx", + "patterns": [ + { + "include": "source.java" + } + ] + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:chuck|unrealscript|(?:.*\\.)?(?:ck|jav|java|jsh|uc)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.java", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.java.mdx", + "patterns": [ + { + "include": "source.java" + } + ] + } + ] + }, + "commonmark-code-fenced-js": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:cycript|javascript\\+erb|json\\x2dwith\\x2dcomments|node|qt\\x2dscript|(?:.*\\.)?(?:_js|bones|cjs|code\\x2dsnippets|code\\x2dworkspace|cy|es6|jake|javascript|js|js\\.erb|jsb|jscad|jsfl|jslib|jsm|json5|jsonc|jsonld|jspre|jss|jsx|mjs|njs|pac|sjs|ssjs|sublime\\x2dbuild|sublime\\x2dcommands|sublime\\x2dcompletions|sublime\\x2dkeymap|sublime\\x2dmacro|sublime\\x2dmenu|sublime\\x2dmousemap|sublime\\x2dproject|sublime\\x2dsettings|sublime\\x2dtheme|sublime\\x2dworkspace|sublime_metrics|sublime_session|xsjs|xsjslib)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.js", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.js.mdx", + "patterns": [ + { + "include": "source.js" + } + ] + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:cycript|javascript\\+erb|json\\x2dwith\\x2dcomments|node|qt\\x2dscript|(?:.*\\.)?(?:_js|bones|cjs|code\\x2dsnippets|code\\x2dworkspace|cy|es6|jake|javascript|js|js\\.erb|jsb|jscad|jsfl|jslib|jsm|json5|jsonc|jsonld|jspre|jss|jsx|mjs|njs|pac|sjs|ssjs|sublime\\x2dbuild|sublime\\x2dcommands|sublime\\x2dcompletions|sublime\\x2dkeymap|sublime\\x2dmacro|sublime\\x2dmenu|sublime\\x2dmousemap|sublime\\x2dproject|sublime\\x2dsettings|sublime\\x2dtheme|sublime\\x2dworkspace|sublime_metrics|sublime_session|xsjs|xsjslib)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.js", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.js.mdx", + "patterns": [ + { + "include": "source.js" + } + ] + } + ] + }, + "commonmark-code-fenced-json": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:ecere\\x2dprojects|ipython\\x2dnotebook|jupyter\\x2dnotebook|max|max/msp|maxmsp|oasv2\\x2djson|oasv3\\x2djson|(?:.*\\.)?(?:4dform|4dproject|avsc|epj|geojson|gltf|har|ice|ipynb|json|json|json|json\\x2dtmlanguage|jsonl|maxhelp|maxpat|maxproj|mcmeta|mxt|pat|tfstate|tfstate\\.backup|topojson|webapp|webmanifest|yy|yyp)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.json", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.json.mdx", + "patterns": [ + { + "include": "source.json" + } + ] + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:ecere\\x2dprojects|ipython\\x2dnotebook|jupyter\\x2dnotebook|max|max/msp|maxmsp|oasv2\\x2djson|oasv3\\x2djson|(?:.*\\.)?(?:4dform|4dproject|avsc|epj|geojson|gltf|har|ice|ipynb|json|json|json|json\\x2dtmlanguage|jsonl|maxhelp|maxpat|maxproj|mcmeta|mxt|pat|tfstate|tfstate\\.backup|topojson|webapp|webmanifest|yy|yyp)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.json", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.json.mdx", + "patterns": [ + { + "include": "source.json" + } + ] + } + ] + }, + "commonmark-code-fenced-julia": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:julia|(?:.*\\.)?jl))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.julia", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.julia.mdx", + "patterns": [ + { + "include": "source.julia" + } + ] + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:julia|(?:.*\\.)?jl))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.julia", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.julia.mdx", + "patterns": [ + { + "include": "source.julia" + } + ] + } + ] + }, + "commonmark-code-fenced-kotlin": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:gradle\\x2dkotlin\\x2ddsl|kotlin|(?:.*\\.)?(?:gradle\\.kts|kt|ktm|kts)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.kotlin", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.kotlin.mdx", + "patterns": [ + { + "include": "source.kotlin" + } + ] + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:gradle\\x2dkotlin\\x2ddsl|kotlin|(?:.*\\.)?(?:gradle\\.kts|kt|ktm|kts)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.kotlin", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.kotlin.mdx", + "patterns": [ + { + "include": "source.kotlin" + } + ] + } + ] + }, + "commonmark-code-fenced-less": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:less\\x2dcss|(?:.*\\.)?less))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.less", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.less.mdx", + "patterns": [ + { + "include": "source.css.less" + } + ] + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:less\\x2dcss|(?:.*\\.)?less))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.less", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.less.mdx", + "patterns": [ + { + "include": "source.css.less" + } + ] + } + ] + }, + "commonmark-code-fenced-lua": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?(?:fcgi|lua|nse|p8|pd_lua|rbxs|rockspec|wlua)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.lua", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.lua.mdx", + "patterns": [ + { + "include": "source.lua" + } + ] + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?(?:fcgi|lua|nse|p8|pd_lua|rbxs|rockspec|wlua)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.lua", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.lua.mdx", + "patterns": [ + { + "include": "source.lua" + } + ] + } + ] + }, + "commonmark-code-fenced-makefile": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:bsdmake|mf|(?:.*\\.)?(?:mak|make|makefile|mk|mkfile)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.makefile", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.makefile.mdx", + "patterns": [ + { + "include": "source.makefile" + } + ] + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:bsdmake|mf|(?:.*\\.)?(?:mak|make|makefile|mk|mkfile)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.makefile", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.makefile.mdx", + "patterns": [ + { + "include": "source.makefile" + } + ] + } + ] + }, + "commonmark-code-fenced-md": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:md|pandoc|rmarkdown|(?:.*\\.)?(?:livemd|markdown|mdown|mdwn|mkd|mkdn|mkdown|qmd|rmd|ronn|scd|workbook)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.md", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.md.mdx", + "patterns": [ + { + "include": "text.md" + }, + { + "include": "source.gfm" + }, + { + "include": "text.html.markdown" + } + ] + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:md|pandoc|rmarkdown|(?:.*\\.)?(?:livemd|markdown|mdown|mdwn|mkd|mkdn|mkdown|qmd|rmd|ronn|scd|workbook)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.md", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.md.mdx", + "patterns": [ + { + "include": "text.md" + }, + { + "include": "source.gfm" + }, + { + "include": "text.html.markdown" + } + ] + } + ] + }, + "commonmark-code-fenced-mdx": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?mdx))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.mdx", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.mdx.mdx", + "patterns": [ + { + "include": "source.mdx" + } + ] + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?mdx))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.mdx", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.mdx.mdx", + "patterns": [ + { + "include": "source.mdx" + } + ] + } + ] + }, + "commonmark-code-fenced-objc": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:obj\\x2dc|objc|objective\\x2dc|objectivec))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.objc", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.objc.mdx", + "patterns": [ + { + "include": "source.objc" + } + ] + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:obj\\x2dc|objc|objective\\x2dc|objectivec))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.objc", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.objc.mdx", + "patterns": [ + { + "include": "source.objc" + } + ] + } + ] + }, + "commonmark-code-fenced-perl": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:cperl|(?:.*\\.)?(?:cgi|perl|ph|pl|plx|pm|psgi|t)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.perl", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.perl.mdx", + "patterns": [ + { + "include": "source.perl" + } + ] + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:cperl|(?:.*\\.)?(?:cgi|perl|ph|pl|plx|pm|psgi|t)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.perl", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.perl.mdx", + "patterns": [ + { + "include": "source.perl" + } + ] + } + ] + }, + "commonmark-code-fenced-php": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:html\\+php|inc|php|(?:.*\\.)?(?:aw|ctp|php3|php4|php5|phps|phpt|phtml)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.php", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.php.mdx", + "patterns": [ + { + "include": "text.html.php" + } + ] + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:html\\+php|inc|php|(?:.*\\.)?(?:aw|ctp|php3|php4|php5|phps|phpt|phtml)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.php", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.php.mdx", + "patterns": [ + { + "include": "text.html.php" + } + ] + } + ] + }, + "commonmark-code-fenced-python": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:bazel|easybuild|python|python3|rusthon|snakemake|starlark|xonsh|(?:.*\\.)?(?:bzl|eb|gyp|gypi|lmi|py|py3|pyde|pyi|pyp|pyt|pyw|rpy|sage|sagews|smk|snakefile|spec|tac|wsgi|xpy|xsh)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.python", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.python.mdx", + "patterns": [ + { + "include": "source.python" + } + ] + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:bazel|easybuild|python|python3|rusthon|snakemake|starlark|xonsh|(?:.*\\.)?(?:bzl|eb|gyp|gypi|lmi|py|py3|pyde|pyi|pyp|pyt|pyw|rpy|sage|sagews|smk|snakefile|spec|tac|wsgi|xpy|xsh)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.python", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.python.mdx", + "patterns": [ + { + "include": "source.python" + } + ] + } + ] + }, + "commonmark-code-fenced-r": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:rscript|splus|(?:.*\\.)?(?:r|rd|rsx)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.r", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.r.mdx", + "patterns": [ + { + "include": "source.r" + } + ] + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:rscript|splus|(?:.*\\.)?(?:r|rd|rsx)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.r", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.r.mdx", + "patterns": [ + { + "include": "source.r" + } + ] + } + ] + }, + "commonmark-code-fenced-raku": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:perl\\x2d6|perl6|pod\\x2d6|(?:.*\\.)?(?:6pl|6pm|nqp|p6|p6l|p6m|pl6|pm6|pod|pod6|raku|rakumod)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.raku", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.raku.mdx", + "patterns": [ + { + "include": "source.raku" + } + ] + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:perl\\x2d6|perl6|pod\\x2d6|(?:.*\\.)?(?:6pl|6pm|nqp|p6|p6l|p6m|pl6|pm6|pod|pod6|raku|rakumod)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.raku", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.raku.mdx", + "patterns": [ + { + "include": "source.raku" + } + ] + } + ] + }, + "commonmark-code-fenced-ruby": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:jruby|macruby|(?:.*\\.)?(?:builder|druby|duby|eye|gemspec|god|jbuilder|mirah|mspec|pluginspec|podspec|prawn|rabl|rake|rb|rbi|rbuild|rbw|rbx|ru|ruby|thor|watchr)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.ruby", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.ruby.mdx", + "patterns": [ + { + "include": "source.ruby" + } + ] + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:jruby|macruby|(?:.*\\.)?(?:builder|druby|duby|eye|gemspec|god|jbuilder|mirah|mspec|pluginspec|podspec|prawn|rabl|rake|rb|rbi|rbuild|rbw|rbx|ru|ruby|thor|watchr)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.ruby", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.ruby.mdx", + "patterns": [ + { + "include": "source.ruby" + } + ] + } + ] + }, + "commonmark-code-fenced-rust": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:rust|(?:.*\\.)?(?:rs|rs\\.in)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.rust", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.rust.mdx", + "patterns": [ + { + "include": "source.rust" + } + ] + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:rust|(?:.*\\.)?(?:rs|rs\\.in)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.rust", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.rust.mdx", + "patterns": [ + { + "include": "source.rust" + } + ] + } + ] + }, + "commonmark-code-fenced-scala": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?(?:kojo|sbt|sc|scala)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.scala", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.scala.mdx", + "patterns": [ + { + "include": "source.scala" + } + ] + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?(?:kojo|sbt|sc|scala)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.scala", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.scala.mdx", + "patterns": [ + { + "include": "source.scala" + } + ] + } + ] + }, + "commonmark-code-fenced-scss": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?scss))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.scss", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.scss.mdx", + "patterns": [ + { + "include": "source.css.scss" + } + ] + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?scss))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.scss", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.scss.mdx", + "patterns": [ + { + "include": "source.css.scss" + } + ] + } + ] + }, + "commonmark-code-fenced-shell": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:abuild|alpine\\x2dabuild|apkbuild|gentoo\\x2debuild|gentoo\\x2declass|openrc|openrc\\x2drunscript|shell|shell\\x2dscript|(?:.*\\.)?(?:bash|bats|command|csh|ebuild|eclass|ksh|sh|sh\\.in|tcsh|tmux|tool|zsh|zsh\\x2dtheme)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.shell", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.shell.mdx", + "patterns": [ + { + "include": "source.shell" + } + ] + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:abuild|alpine\\x2dabuild|apkbuild|gentoo\\x2debuild|gentoo\\x2declass|openrc|openrc\\x2drunscript|shell|shell\\x2dscript|(?:.*\\.)?(?:bash|bats|command|csh|ebuild|eclass|ksh|sh|sh\\.in|tcsh|tmux|tool|zsh|zsh\\x2dtheme)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.shell", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.shell.mdx", + "patterns": [ + { + "include": "source.shell" + } + ] + } + ] + }, + "commonmark-code-fenced-shell-session": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:bash\\x2dsession|console|shellsession|(?:.*\\.)?sh\\x2dsession))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.shell-session", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.shell-session.mdx", + "patterns": [ + { + "include": "text.shell-session" + } + ] + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:bash\\x2dsession|console|shellsession|(?:.*\\.)?sh\\x2dsession))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.shell-session", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.shell-session.mdx", + "patterns": [ + { + "include": "text.shell-session" + } + ] + } + ] + }, + "commonmark-code-fenced-sql": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:plpgsql|sqlpl|(?:.*\\.)?(?:cql|db2|ddl|mysql|pgsql|prc|sql|sql|sql|tab|udf|viw)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.sql", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.sql.mdx", + "patterns": [ + { + "include": "source.sql" + } + ] + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:plpgsql|sqlpl|(?:.*\\.)?(?:cql|db2|ddl|mysql|pgsql|prc|sql|sql|sql|tab|udf|viw)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.sql", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.sql.mdx", + "patterns": [ + { + "include": "source.sql" + } + ] + } + ] + }, + "commonmark-code-fenced-svg": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?svg))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.svg", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.svg.mdx", + "patterns": [ + { + "include": "text.xml.svg" + }, + { + "include": "text.xml" + } + ] + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?svg))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.svg", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.svg.mdx", + "patterns": [ + { + "include": "text.xml.svg" + }, + { + "include": "text.xml" + } + ] + } + ] + }, + "commonmark-code-fenced-swift": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?swift))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.swift", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.swift.mdx", + "patterns": [ + { + "include": "source.swift" + } + ] + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?swift))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.swift", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.swift.mdx", + "patterns": [ + { + "include": "source.swift" + } + ] + } + ] + }, + "commonmark-code-fenced-toml": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?toml))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.toml", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.toml.mdx", + "patterns": [ + { + "include": "source.toml" + } + ] + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?toml))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.toml", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.toml.mdx", + "patterns": [ + { + "include": "source.toml" + } + ] + } + ] + }, + "commonmark-code-fenced-ts": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:typescript|(?:.*\\.)?(?:cts|mts|ts)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.ts", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.ts.mdx", + "patterns": [ + { + "include": "source.ts" + } + ] + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:typescript|(?:.*\\.)?(?:cts|mts|ts)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.ts", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.ts.mdx", + "patterns": [ + { + "include": "source.ts" + } + ] + } + ] + }, + "commonmark-code-fenced-tsx": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:(?:.*\\.)?tsx))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.tsx", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.tsx.mdx", + "patterns": [ + { + "include": "source.tsx" + } + ] + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:(?:.*\\.)?tsx))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.tsx", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.tsx.mdx", + "patterns": [ + { + "include": "source.tsx" + } + ] + } + ] + }, + "commonmark-code-fenced-vbnet": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:classic\\x2dvisual\\x2dbasic|fb|freebasic|realbasic|vb\\x2d\\.net|vb\\x2d6|vb\\.net|vb6|vbnet|vbscript|visual\\x2dbasic|visual\\x2dbasic\\x2d\\.net|visual\\x2dbasic\\x2d6|visual\\x2dbasic\\x2d6\\.0|visual\\x2dbasic\\x2dclassic|(?:.*\\.)?(?:bi|ctl|dsr|rbbas|rbfrm|rbmnu|rbres|rbtbar|rbuistate|vb|vbhtml|vbs)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.vbnet", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.vbnet.mdx", + "patterns": [ + { + "include": "source.vbnet" + } + ] + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:classic\\x2dvisual\\x2dbasic|fb|freebasic|realbasic|vb\\x2d\\.net|vb\\x2d6|vb\\.net|vb6|vbnet|vbscript|visual\\x2dbasic|visual\\x2dbasic\\x2d\\.net|visual\\x2dbasic\\x2d6|visual\\x2dbasic\\x2d6\\.0|visual\\x2dbasic\\x2dclassic|(?:.*\\.)?(?:bi|ctl|dsr|rbbas|rbfrm|rbmnu|rbres|rbtbar|rbuistate|vb|vbhtml|vbs)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.vbnet", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.vbnet.mdx", + "patterns": [ + { + "include": "source.vbnet" + } + ] + } + ] + }, + "commonmark-code-fenced-xml": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:collada|eagle|labview|web\\x2dontology\\x2dlanguage|xpages|(?:.*\\.)?(?:adml|admx|ant|axaml|axml|brd|builds|ccproj|ccxml|clixml|cproject|cscfg|csdef|csproj|ct|dae|depproj|dita|ditamap|ditaval|dll\\.config|dotsettings|filters|fsproj|fxml|glade|gmx|grxml|hzp|iml|ivy|jelly|jsproj|kml|launch|lvclass|lvlib|lvproj|mdpolicy|mjml|mxml|natvis|ndproj|nproj|nuspec|odd|osm|owl|pkgproj|proj|props|ps1xml|psc1|pt|qhelp|rdf|resx|rss|sch|sch|scxml|sfproj|shproj|srdf|storyboard|sublime\\x2dsnippet|targets|tml|ui|urdf|ux|vbproj|vcxproj|vsixmanifest|vssettings|vstemplate|vxml|wixproj|wsdl|wsf|wxi|wxl|wxs|x3d|xacro|xaml|xib|xlf|xliff|xmi|xml|xml\\.dist|xmp|xpl|xproc|xproj|xsd|xsp\\x2dconfig|xsp\\.metadata|xspec|xul|zcml)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.xml", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.xml.mdx", + "patterns": [ + { + "include": "text.xml" + } + ] + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:collada|eagle|labview|web\\x2dontology\\x2dlanguage|xpages|(?:.*\\.)?(?:adml|admx|ant|axaml|axml|brd|builds|ccproj|ccxml|clixml|cproject|cscfg|csdef|csproj|ct|dae|depproj|dita|ditamap|ditaval|dll\\.config|dotsettings|filters|fsproj|fxml|glade|gmx|grxml|hzp|iml|ivy|jelly|jsproj|kml|launch|lvclass|lvlib|lvproj|mdpolicy|mjml|mxml|natvis|ndproj|nproj|nuspec|odd|osm|owl|pkgproj|proj|props|ps1xml|psc1|pt|qhelp|rdf|resx|rss|sch|sch|scxml|sfproj|shproj|srdf|storyboard|sublime\\x2dsnippet|targets|tml|ui|urdf|ux|vbproj|vcxproj|vsixmanifest|vssettings|vstemplate|vxml|wixproj|wsdl|wsf|wxi|wxl|wxs|x3d|xacro|xaml|xib|xlf|xliff|xmi|xml|xml\\.dist|xmp|xpl|xproc|xproj|xsd|xsp\\x2dconfig|xsp\\.metadata|xspec|xul|zcml)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.xml", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.xml.mdx", + "patterns": [ + { + "include": "text.xml" + } + ] + } + ] + }, + "commonmark-code-fenced-yaml": { + "patterns": [ + { + "begin": "(?:^|\\G)[\\t ]*(`{3,})(?:[\\t ]*((?i:jar\\x2dmanifest|kaitai\\x2dstruct|oasv2\\x2dyaml|oasv3\\x2dyaml|unity3d\\x2dasset|yaml|yml|(?:.*\\.)?(?:anim|asset|ksy|lkml|lookml|mat|meta|mir|prefab|raml|reek|rviz|sublime\\x2dsyntax|syntax|unity|yaml\\x2dtmlanguage|yaml\\.sed|yml\\.mysql)))(?:[\\t ]+((?:[^\\n\\r`])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.yaml", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.yaml.mdx", + "patterns": [ + { + "include": "source.yaml" + } + ] + }, + { + "begin": "(?:^|\\G)[\\t ]*(~{3,})(?:[\\t ]*((?i:jar\\x2dmanifest|kaitai\\x2dstruct|oasv2\\x2dyaml|oasv3\\x2dyaml|unity3d\\x2dasset|yaml|yml|(?:.*\\.)?(?:anim|asset|ksy|lkml|lookml|mat|meta|mir|prefab|raml|reek|rviz|sublime\\x2dsyntax|syntax|unity|yaml\\x2dtmlanguage|yaml\\.sed|yml\\.mysql)))(?:[\\t ]+((?:[^\\n\\r])+))?)(?:[\\t ]*$)", + "beginCaptures": { + "1": { + "name": "string.other.begin.code.fenced.mdx" + }, + "2": { + "name": "entity.name.function.mdx", + "patterns": [ + { + "include": "#markdown-string" + } + ] + }, + "3": { + "patterns": [ + { + "include": "#markdown-string" + } + ] + } + }, + "contentName": "meta.embedded.yaml", + "end": "(?:^|\\G)[\\t ]*(\\1)(?:[\\t ]*$)", + "endCaptures": { + "1": { + "name": "string.other.end.code.fenced.mdx" + } + }, + "name": "markup.code.yaml.mdx", + "patterns": [ + { + "include": "source.yaml" + } + ] + } + ] + } + }, + "scopeName": "source.mdx" +} diff --git a/docs/shiki/languages/mermaid.tmLanguage.json b/docs/shiki/languages/mermaid.tmLanguage.json new file mode 100644 index 00000000..c05db713 --- /dev/null +++ b/docs/shiki/languages/mermaid.tmLanguage.json @@ -0,0 +1,1343 @@ +{ + "fileTypes": ["mermaid"], + "patterns": [ + { + "include": "#mermaid" + } + ], + "repository": { + "mermaid": { + "patterns": [ + { + "comment": "Class Diagram", + "begin": "^\\s*(classDiagram)", + "beginCaptures": { + "1": { + "name": "keyword.control.mermaid" + } + }, + "patterns": [ + { + "match": "\\%%.*", + "name": "comment" + }, + { + "comment": "(class name) (\"multiplicity relationship\")? (relationship) (\"multiplicity relationship\")? (class name) :? (labelText)?", + "match": "([\\w-]+)\\s(\"(?:\\d+|\\*|0..\\d+|1..\\d+|1..\\*)\")?\\s?(--o|--\\*|\\<--|--\\>|<\\.\\.|\\.\\.\\>|\\<\\|\\.\\.|\\.\\.\\|\\>|\\<\\|--|--\\|>|--\\*|--|\\.\\.|\\*--|o--)\\s(\"(?:\\d+|\\*|0..\\d+|1..\\d+|1..\\*)\")?\\s?([\\w-]+)\\s?(:)?\\s(.*)$", + "captures": { + "1": { + "name": "entity.name.type.class.mermaid" + }, + "2": { + "name": "keyword.control.mermaid" + }, + "3": { + "name": "keyword.control.mermaid" + }, + "4": { + "name": "keyword.control.mermaid" + }, + "5": { + "name": "entity.name.type.class.mermaid" + }, + "6": { + "name": "keyword.control.mermaid" + }, + "7": { + "name": "string" + } + } + }, + { + "comment": "(class name) : (visibility)?(function)( (function param/generic param)? )(classifier)? (return/generic return)?$", + "match": "([\\w-]+)\\s?(:)\\s([\\+~#-])?([\\w-]+)(\\()([\\w-]+)?(~)?([\\w-]+)?(~)?\\s?([\\w-]+)?(\\))([*\\$])?\\s?([\\w-]+)?(~)?([\\w-]+)?(~)?$", + "captures": { + "1": { + "name": "entity.name.type.class.mermaid" + }, + "2": { + "name": "keyword.control.mermaid" + }, + "3": { + "name": "keyword.control.mermaid" + }, + "4": { + "name": "entity.name.function.mermaid" + }, + "5": { + "name": "punctuation.parenthesis.open.mermaid" + }, + "6": { + "name": "storage.type.mermaid" + }, + "7": { + "name": "punctuation.definition.typeparameters.begin.mermaid" + }, + "8": { + "name": "storage.type.mermaid" + }, + "9": { + "name": "punctuation.definition.typeparameters.end.mermaid" + }, + "10": { + "name": "entity.name.variable.parameter.mermaid" + }, + "11": { + "name": "punctuation.parenthesis.closed.mermaid" + }, + "12": { + "name": "keyword.control.mermaid" + }, + "13": { + "name": "storage.type.mermaid" + }, + "14": { + "name": "punctuation.definition.typeparameters.begin.mermaid" + }, + "15": { + "name": "storage.type.mermaid" + }, + "16": { + "name": "punctuation.definition.typeparameters.end.mermaid" + } + } + }, + { + "comment": "(class name) : (visibility)?(datatype/generic data type) (attribute name)$", + "match": "([\\w-]+)\\s?(:)\\s([\\+~#-])?([\\w-]+)(~)?([\\w-]+)?(~)?\\s([\\w-]+)?$", + "captures": { + "1": { + "name": "entity.name.type.class.mermaid" + }, + "2": { + "name": "keyword.control.mermaid" + }, + "3": { + "name": "keyword.control.mermaid" + }, + "4": { + "name": "storage.type.mermaid" + }, + "5": { + "name": "punctuation.definition.typeparameters.begin.mermaid" + }, + "6": { + "name": "storage.type.mermaid" + }, + "7": { + "name": "punctuation.definition.typeparameters.end.mermaid" + }, + "8": { + "name": "entity.name.variable.field.mermaid" + } + } + }, + { + "comment": "<<(Annotation)>> (class name)", + "match": "(<<)([\\w-]+)(>>)\\s?([\\w-]+)?", + "captures": { + "1": { + "name": "punctuation.definition.typeparameters.begin.mermaid" + }, + "2": { + "name": "storage.type.mermaid" + }, + "3": { + "name": "punctuation.definition.typeparameters.end.mermaid" + }, + "4": { + "name": "entity.name.type.class.mermaid" + } + } + }, + { + "comment": "class (class name) ~?(generic type)?~? ({)", + "begin": "(class)\\s+([\\w-]+)(~)?([\\w-]+)?(~)?\\s?({)", + "beginCaptures": { + "1": { + "name": "keyword.control.mermaid" + }, + "2": { + "name": "entity.name.type.class.mermaid" + }, + "3": { + "name": "punctuation.definition.typeparameters.begin.mermaid" + }, + "4": { + "name": "storage.type.mermaid" + }, + "5": { + "name": "punctuation.definition.typeparameters.end.mermaid" + }, + "6": { + "name": "keyword.control.mermaid" + } + }, + "patterns": [ + { + "match": "\\%%.*", + "name": "comment" + }, + { + "comment": "(visibility)?(function)( (function param/generic param)? )(classifier)? (return/generic return)?$", + "begin": "\\s([\\+~#-])?([\\w-]+)(\\()", + "beginCaptures": { + "1": { + "name": "keyword.control.mermaid" + }, + "2": { + "name": "entity.name.function.mermaid" + }, + "3": { + "name": "punctuation.parenthesis.open.mermaid" + } + }, + "patterns": [ + { + "comment": "(TBD)", + "match": "\\s*,?\\s*([\\w-]+)?(~)?([\\w-]+)?(~)?\\s?([\\w-]+)?", + "captures": { + "1": { + "name": "storage.type.mermaid" + }, + "2": { + "name": "punctuation.definition.typeparameters.begin.mermaid" + }, + "3": { + "name": "storage.type.mermaid" + }, + "4": { + "name": "punctuation.definition.typeparameters.end.mermaid" + }, + "5": { + "name": "entity.name.variable.parameter.mermaid" + } + } + } + ], + "end": "(\\))([*\\$])?\\s?([\\w-]+)?(~)?([\\w-]+)?(~)?$", + "endCaptures": { + "1": { + "name": "punctuation.parenthesis.closed.mermaid" + }, + "2": { + "name": "keyword.control.mermaid" + }, + "3": { + "name": "storage.type.mermaid" + }, + "4": { + "name": "punctuation.definition.typeparameters.begin.mermaid" + }, + "5": { + "name": "storage.type.mermaid" + }, + "6": { + "name": "punctuation.definition.typeparameters.end.mermaid" + } + } + }, + { + "comment": "(visibility)?(datatype/generic data type) (attribute name)$", + "match": "\\s([\\+~#-])?([\\w-]+)(~)?([\\w-]+)?(~)?\\s([\\w-]+)?$", + "captures": { + "1": { + "name": "keyword.control.mermaid" + }, + "2": { + "name": "storage.type.mermaid" + }, + "3": { + "name": "punctuation.definition.typeparameters.begin.mermaid" + }, + "4": { + "name": "storage.type.mermaid" + }, + "5": { + "name": "punctuation.definition.typeparameters.end.mermaid" + }, + "6": { + "name": "entity.name.variable.field.mermaid" + } + } + }, + { + "comment": "<<(Annotation)>> (class name)", + "match": "(<<)([\\w-]+)(>>)\\s?([\\w-]+)?", + "captures": { + "1": { + "name": "punctuation.definition.typeparameters.begin.mermaid" + }, + "2": { + "name": "storage.type.mermaid" + }, + "3": { + "name": "punctuation.definition.typeparameters.end.mermaid" + }, + "4": { + "name": "entity.name.type.class.mermaid" + } + } + } + ], + "end": "(})", + "endCaptures": { + "1": { + "name": "keyword.control.mermaid" + } + } + }, + { + "comment": "class (class name) ~?(generic type)?~?", + "match": "(class)\\s+([\\w-]+)(~)?([\\w-]+)?(~)?", + "captures": { + "1": { + "name": "keyword.control.mermaid" + }, + "2": { + "name": "entity.name.type.class.mermaid" + }, + "3": { + "name": "punctuation.definition.typeparameters.begin.mermaid" + }, + "4": { + "name": "storage.type.mermaid" + }, + "5": { + "name": "punctuation.definition.typeparameters.end.mermaid" + } + } + } + ], + "end": "(^|\\G)(?=\\s*[`:~]{3,}\\s*$)" + }, + { + "comment": "Entity Relationship Diagram", + "begin": "^\\s*(erDiagram)", + "beginCaptures": { + "1": { + "name": "keyword.control.mermaid" + } + }, + "patterns": [ + { + "match": "\\%%.*", + "name": "comment" + }, + { + "comment": "(entity)", + "match": "^\\s*([\\w-]+)$", + "name": "variable" + }, + { + "comment": "(entity) {", + "begin": "\\s+([\\w-]+)\\s+({)", + "beginCaptures": { + "1": { + "name": "variable" + }, + "2": { + "name": "keyword.control.mermaid" + } + }, + "patterns": [ + { + "comment": "(type) (name) (PK|FK)? (\"comment\")?", + "match": "\\s*([\\w-]+)\\s+([\\w-]+)\\s+(PK|FK)?\\s*(\"[\"\\($&%\\^/#.,?!;:*+=<>\\'\\\\\\-\\w\\s]*\")?\\s*", + "captures": { + "1": { + "name": "storage.type.mermaid" + }, + "2": { + "name": "variable" + }, + "3": { + "name": "keyword.control.mermaid" + }, + "4": { + "name": "string" + } + } + } + ], + "end": "(})", + "endCaptures": { + "1": { + "name": "keyword.control.mermaid" + } + } + }, + { + "comment": "(entity) (relationship) (entity) : (label)", + "match": "\\s*([\\w-]+)\\s+((?:\\|o|\\|\\||}o|}\\|)(?:..|--)(?:o\\||\\|\\||o{|\\|{))\\s+([\\w-]+)\\s+(:)\\s+((?:\"[\\w\\s]*\")|(?:[\\w-]+))", + "captures": { + "1": { + "name": "variable" + }, + "2": { + "name": "keyword.control.mermaid" + }, + "3": { + "name": "variable" + }, + "4": { + "name": "keyword.control.mermaid" + }, + "5": { + "name": "string" + } + } + } + ], + "end": "(^|\\G)(?=\\s*[`:~]{3,}\\s*$)" + }, + { + "comment": "Gantt Diagram", + "begin": "^\\s*(gantt)", + "beginCaptures": { + "1": { + "name": "keyword.control.mermaid" + } + }, + "patterns": [ + { + "match": "\\%%.*", + "name": "comment" + }, + { + "match": "(dateFormat)\\s+([\\w\\-\\.]+)", + "captures": { + "1": { + "name": "keyword.control.mermaid" + }, + "2": { + "name": "entity.name.function.mermaid" + } + } + }, + { + "match": "(axisFormat)\\s+([\\w\\%\\/\\\\\\-\\.]+)", + "captures": { + "1": { + "name": "keyword.control.mermaid" + }, + "2": { + "name": "entity.name.function.mermaid" + } + } + }, + { + "match": "(title)\\s+(\\s*[\"\\(\\)$&%\\^/#.,?!;:*+=<>\\'\\\\\\-\\w\\s]*)", + "captures": { + "1": { + "name": "keyword.control.mermaid" + }, + "2": { + "name": "string" + } + } + }, + { + "match": "(excludes)\\s+((?:[\\d\\-,\\s]+|monday|tuesday|wednesday|thursday|friday|saturday|sunday|weekends)+)", + "captures": { + "1": { + "name": "keyword.control.mermaid" + }, + "2": { + "name": "string" + } + } + }, + { + "match": "^\\s+(todayMarker)\\s+(.*)$", + "captures": { + "1": { + "name": "keyword.control.mermaid" + }, + "2": { + "name": "string" + } + } + }, + { + "match": "(section)\\s+(\\s*[\"\\(\\)$&%\\^/#.,?!;:*+=<>\\'\\\\\\-\\w\\s]*)", + "captures": { + "1": { + "name": "keyword.control.mermaid" + }, + "2": { + "name": "string" + } + } + }, + { + "begin": "^\\s(.*)(:)", + "beginCaptures": { + "1": { + "name": "string" + }, + "2": { + "name": "keyword.control.mermaid" + } + }, + "patterns": [ + { + "match": "(crit|done|active|after)", + "name": "entity.name.function.mermaid" + }, + { + "match": "\\%%.*", + "name": "comment" + } + ], + "end": "$" + } + ], + "end": "(^|\\G)(?=\\s*[`:~]{3,}\\s*$)" + }, + { + "comment": "Git Graph", + "begin": "^\\s*(gitGraph)", + "beginCaptures": { + "1": { + "name": "keyword.control.mermaid" + } + }, + "patterns": [ + { + "match": "\\%%.*", + "name": "comment" + }, + { + "comment": "commit", + "begin": "\\s*(commit)", + "beginCaptures": { + "1": { + "name": "keyword.control.mermaid" + } + }, + "patterns": [ + { + "comment": "(id)(:) (\"id\")", + "match": "\\s*(id)(:)\\s?(\"[^\"\\n]*\")", + "captures": { + "1": { + "name": "keyword.control.mermaid" + }, + "2": { + "name": "keyword.control.mermaid" + }, + "3": { + "name": "string" + } + } + }, + { + "comment": "(type)(:) (COMMIT_TYPE)", + "match": "\\s*(type)(:)\\s?(NORMAL|REVERSE|HIGHLIGHT)", + "captures": { + "1": { + "name": "keyword.control.mermaid" + }, + "2": { + "name": "keyword.control.mermaid" + }, + "3": { + "name": "entity.name.function.mermaid" + } + } + }, + { + "comment": "(tag)(:) (\"tag\")", + "match": "\\s*(tag)(:)\\s?(\"[\\($&%\\^/#.,?!;:*+=<>\\'\\\\\\-\\w\\s]*\")", + "captures": { + "1": { + "name": "keyword.control.mermaid" + }, + "2": { + "name": "keyword.control.mermaid" + }, + "3": { + "name": "string" + } + } + } + ], + "end": "$" + }, + { + "comment": "(checkout) (branch-name)", + "match": "\\s*(checkout)\\s*([^\\s\"]*)", + "captures": { + "1": { + "name": "keyword.control.mermaid" + }, + "2": { + "name": "variable" + } + } + }, + { + "comment": "(branch) (branch-name) (order)?(:) (number)", + "match": "\\s*(branch)\\s*([^\\s\"]*)\\s*(?:(order)(:)\\s?(\\d+))?", + "captures": { + "1": { + "name": "keyword.control.mermaid" + }, + "2": { + "name": "variable" + }, + "3": { + "name": "keyword.control.mermaid" + }, + "4": { + "name": "keyword.control.mermaid" + }, + "5": { + "name": "constant.numeric.decimal.mermaid" + } + } + }, + { + "comment": "(merge) (branch-name) (tag: \"tag-name\")?", + "match": "\\s*(merge)\\s*([^\\s\"]*)\\s*(?:(tag)(:)\\s?(\"[^\"\\n]*\"))?", + "captures": { + "1": { + "name": "keyword.control.mermaid" + }, + "2": { + "name": "variable" + }, + "3": { + "name": "keyword.control.mermaid" + }, + "4": { + "name": "keyword.control.mermaid" + }, + "5": { + "name": "string" + } + } + }, + { + "comment": "(cherry-pick) (id)(:)(\"commit-id\")", + "match": "\\s*(cherry-pick)\\s+(id)(:)\\s*(\"[^\"\\n]*\")", + "captures": { + "1": { + "name": "keyword.control.mermaid" + }, + "2": { + "name": "keyword.control.mermaid" + }, + "3": { + "name": "keyword.control.mermaid" + }, + "4": { + "name": "string" + } + } + } + ], + "end": "(^|\\G)(?=\\s*[`:~]{3,}\\s*$)" + }, + { + "comment": "Graph", + "begin": "^\\s*(graph|flowchart)\\s+([\\p{Letter}\\ 0-9]+)", + "beginCaptures": { + "1": { + "name": "keyword.control.mermaid" + }, + "2": { + "name": "entity.name.function.mermaid" + } + }, + "patterns": [ + { + "match": "\\%%.*", + "name": "comment" + }, + { + "match": "\\b(subgraph)\\s+([\\p{Letter}\\ 0-9]+)", + "captures": { + "1": { + "name": "keyword.control.mermaid" + }, + "2": { + "name": "entity.name.function.mermaid" + } + }, + "name": "meta.function.mermaid" + }, + { + "match": "\\b(end|RB|BT|RL|TD|LR)\\b", + "name": "keyword.control.mermaid" + }, + { + "comment": "(Entity)(Edge/Shape)(Text)(Edge/Shape)", + "begin": "(\\b(?:(?!--|==)[-\\w])+\\b\\s*)(\\(\\[|\\[\\[|\\[\\(|\\[|\\(+|\\>|\\{|\\(\\()", + "beginCaptures": { + "1": { + "name": "variable" + }, + "2": { + "name": "keyword.control.mermaid" + }, + "3": { + "name": "string" + } + }, + "patterns": [ + { + "comment": "(\"multi-line text\")", + "begin": "\\s*(\")", + "beginCaptures": { + "1": { + "name": "string" + } + }, + "patterns": [ + { + "comment": "capture inner text between quotes", + "begin": "([^\"]*)", + "beginCaptures": { + "1": { + "name": "string" + } + }, + "patterns": [ + { + "match": "([^\"]*)", + "captures": { + "1": { + "name": "comment" + } + } + } + ], + "end": "(?=\")" + } + ], + "end": "(\")", + "endCaptures": { + "1": { + "name": "string" + } + } + }, + { + "comment": "(single line text)", + "match": "\\s*([$&%\\^/#.,?!;:*+<>_\\'\\\\\\w\\s]+)", + "captures": { + "1": { + "name": "string" + } + } + } + ], + "end": "(\\]\\)|\\]\\]|\\)\\]|\\]|\\)+|\\}|\\)\\))", + "endCaptures": { + "1": { + "name": "keyword.control.mermaid" + } + } + }, + { + "comment": "(Graph Link)(\"Multiline text\")(Graph Link)", + "begin": "\\s*((?:-{2,5}|={2,5})[xo>]?\\|)", + "beginCaptures": { + "1": { + "name": "keyword.control.mermaid" + } + }, + "patterns": [ + { + "comment": "(\"multi-line text\")", + "begin": "\\s*(\")", + "beginCaptures": { + "1": { + "name": "string" + } + }, + "patterns": [ + { + "comment": "capture inner text between quotes", + "begin": "([^\"]*)", + "beginCaptures": { + "1": { + "name": "string" + } + }, + "patterns": [ + { + "match": "([^\"]*)", + "captures": { + "1": { + "name": "comment" + } + } + } + ], + "end": "(?=\")" + } + ], + "end": "(\")", + "endCaptures": { + "1": { + "name": "string" + } + } + }, + { + "comment": "(single line text)", + "match": "\\s*([$&%\\^/#.,?!;:*+<>_\\'\\\\\\w\\s]+)", + "captures": { + "1": { + "name": "string" + } + } + } + ], + "end": "(\\|)", + "endCaptures": { + "1": { + "name": "keyword.control.mermaid" + } + } + }, + { + "comment": "(Graph Link Start Arrow)(Text)(Graph Link End Arrow)", + "match": "\\s*([xo<]?(?:-{2,5}|={2,5}|-\\.{1,3}|-\\.))((?:(?!--|==)[\\w\\s*+%=\\\\/:\\.\\-'`,\"&^#$!?])*)((?:-{2,5}|={2,5}|\\.{1,3}-|\\.-)[xo>]?)", + "captures": { + "1": { + "name": "keyword.control.mermaid" + }, + "2": { + "name": "string" + }, + "3": { + "name": "keyword.control.mermaid" + } + } + }, + { + "comment": "(Graph Link)", + "match": "\\s*([ox<]?(?:-.{1,3}-|-{1,3}|={1,3})[ox>]?)", + "captures": { + "1": { + "name": "keyword.control.mermaid" + } + } + }, + { + "comment": "Entity", + "match": "(\\b(?:(?!--|==)[-\\w])+\\b\\s*)", + "name": "variable" + }, + { + "comment": "(Class)(Node(s))(ClassName)", + "match": "\\s*(class)\\s+(\\b[-,\\w]+)\\s+(\\b\\w+\\b)", + "captures": { + "1": { + "name": "keyword.control.mermaid" + }, + "2": { + "name": "variable" + }, + "3": { + "name": "string" + } + } + }, + { + "comment": "(ClassDef)(ClassName)(Styles)", + "match": "\\s*(classDef)\\s+(\\b\\w+\\b)\\s+(\\b[-,:;#\\w]+)", + "captures": { + "1": { + "name": "keyword.control.mermaid" + }, + "2": { + "name": "variable" + }, + "3": { + "name": "string" + } + } + }, + { + "comment": "(Click)(Entity)(Link)?(Tooltip)", + "match": "\\s*(click)\\s+(\\b[-\\w]+\\b\\s*)(\\b\\w+\\b)?\\s(\"*.*\")", + "captures": { + "1": { + "name": "keyword.control.mermaid" + }, + "2": { + "name": "variable" + }, + "3": { + "name": "variable" + }, + "4": { + "name": "string" + } + } + } + ], + "end": "(^|\\G)(?=\\s*[`:~]{3,}\\s*$)" + }, + { + "comment": "Pie Chart", + "begin": "^\\s*(pie)", + "beginCaptures": { + "1": { + "name": "keyword.control.mermaid" + } + }, + "patterns": [ + { + "match": "\\%%.*", + "name": "comment" + }, + { + "match": "(title)\\s+(\\s*[\"\\(\\)$&%\\^/#.,?!;:*+=<>\\'\\\\\\-\\w\\s]*)", + "captures": { + "1": { + "name": "keyword.control.mermaid" + }, + "2": { + "name": "string" + } + } + }, + { + "begin": "\\s(.*)(:)", + "beginCaptures": { + "1": { + "name": "string" + }, + "2": { + "name": "keyword.control.mermaid" + } + }, + "patterns": [ + { + "match": "\\%%.*", + "name": "comment" + } + ], + "end": "$" + } + ], + "end": "(^|\\G)(?=\\s*[`:~]{3,}\\s*$)" + }, + { + "comment": "Sequence Diagram", + "begin": "^\\s*(sequenceDiagram)", + "beginCaptures": { + "1": { + "name": "keyword.control.mermaid" + } + }, + "patterns": [ + { + "match": "(\\%%|#).*", + "name": "comment" + }, + { + "comment": "(title)(title text)", + "match": "(title)\\s*(:)?\\s+(\\s*[\"\\(\\)$&%\\^/#.,?!:*+=<>\\'\\\\\\-\\w\\s]*)", + "captures": { + "1": { + "name": "keyword.control.mermaid" + }, + "2": { + "name": "keyword.control.mermaid" + }, + "3": { + "name": "string" + } + } + }, + { + "comment": "(participant)(Actor)(as)?(Label)?", + "match": "\\s*(participant|actor)\\s+((?:(?! as )[\"\\(\\)$&%\\^/#.?!*=<>\\'\\\\\\w\\s])+)\\s*(as)?\\s([\"\\(\\)$&%\\^/#.,?!*=<>\\'\\\\\\w\\s]+)?", + "captures": { + "1": { + "name": "keyword.control.mermaid" + }, + "2": { + "name": "variable" + }, + "3": { + "name": "keyword.control.mermaid" + }, + "4": { + "name": "string" + } + } + }, + { + "comment": "(activate/deactivate)(Actor)", + "match": "\\s*((?:de)?activate)\\s+(\\b[\"\\(\\)$&%\\^/#.?!*=<>\\'\\\\\\w\\s]+\\b\\s*)", + "captures": { + "1": { + "name": "keyword.control.mermaid" + }, + "2": { + "name": "variable" + } + } + }, + { + "comment": "(Note)(direction)(Actor)(,)?(Actor)?(:)(Message)", + "match": "\\s*(Note)\\s+((?:left|right)\\sof|over)\\s+(\\b[\"\\(\\)$&%\\^/#.?!*=<>\\'\\\\\\w\\s]+\\b\\s*)(,)?(\\b[\"\\(\\)$&%\\^/#.?!*=<>\\'\\\\\\w\\s]+\\b\\s*)?(:)(?:\\s+([^;#]*))?", + "captures": { + "1": { + "name": "keyword.control.mermaid" + }, + "2": { + "name": "entity.name.function.mermaid" + }, + "3": { + "name": "variable" + }, + "4": { + "name": "keyword.control.mermaid" + }, + "5": { + "name": "variable" + }, + "6": { + "name": "keyword.control.mermaid" + }, + "7": { + "name": "string" + } + } + }, + { + "comment": "(loop)(loop text)", + "match": "\\s*(loop)(?:\\s+([^;#]*))?", + "captures": { + "1": { + "name": "keyword.control.mermaid" + }, + "2": { + "name": "string" + } + } + }, + { + "comment": "(end)", + "match": "\\s*(end)", + "captures": { + "1": { + "name": "keyword.control.mermaid" + } + } + }, + { + "comment": "(alt/else/opt/par/and/autonumber)(text)", + "match": "\\s*(alt|else|opt|par|and|rect|autonumber)(?:\\s+([^#;]*))?", + "captures": { + "1": { + "name": "keyword.control.mermaid" + }, + "2": { + "name": "string" + } + } + }, + { + "comment": "(Actor)(Arrow)(Actor)(:)(Message)", + "match": "\\s*(\\b[\"\\(\\)$&%\\^/#.?!*=<>\\'\\\\\\w\\s]+\\b)\\s*(-?-(?:\\>|x|\\))\\>?[+-]?)\\s*([\"\\(\\)$&%\\^/#.?!*=<>\\'\\\\\\w\\s]+\\b)\\s*(:)\\s*([^;#]*)", + "captures": { + "1": { + "name": "variable" + }, + "2": { + "name": "keyword.control.mermaid" + }, + "3": { + "name": "variable" + }, + "4": { + "name": "keyword.control.mermaid" + }, + "5": { + "name": "string" + } + } + } + ], + "end": "(^|\\G)(?=\\s*[`:~]{3,}\\s*$)" + }, + { + "comment": "State Diagram", + "begin": "^\\s*(stateDiagram(?:-v2)?)", + "beginCaptures": { + "1": { + "name": "keyword.control.mermaid" + } + }, + "patterns": [ + { + "match": "\\%%.*", + "name": "comment" + }, + { + "comment": "}", + "match": "\\s+(})\\s+", + "captures": { + "1": { + "name": "keyword.control.mermaid" + } + } + }, + { + "comment": "--", + "match": "\\s+(--)\\s+", + "captures": { + "1": { + "name": "keyword.control.mermaid" + } + } + }, + { + "comment": "(state)", + "match": "^\\s*([\\w-]+)$", + "name": "variable" + }, + { + "comment": "(state) : (description)", + "match": "([\\w-]+)\\s+(:)\\s+(\\s*[-\\w\\s]+\\b)", + "captures": { + "1": { + "name": "variable" + }, + "2": { + "name": "keyword.control.mermaid" + }, + "3": { + "name": "string" + } + } + }, + { + "comment": "state", + "begin": "(state)", + "beginCaptures": { + "1": { + "name": "keyword.control.mermaid" + } + }, + "patterns": [ + { + "comment": "\"(description)\" as (state)", + "match": "\\s+(\"[-\\w\\s]+\\b\")\\s+(as)\\s+([\\w-]+)", + "captures": { + "1": { + "name": "string" + }, + "2": { + "name": "keyword.control.mermaid" + }, + "3": { + "name": "variable" + } + } + }, + { + "comment": "(state name) {", + "match": "\\s+([\\w-]+)\\s+({)", + "captures": { + "1": { + "name": "variable" + }, + "2": { + "name": "keyword.control.mermaid" + } + } + }, + { + "comment": "(state name) <<fork|join>>", + "match": "\\s+([\\w-]+)\\s+(<<(?:fork|join)>>)", + "captures": { + "1": { + "name": "variable" + }, + "2": { + "name": "keyword.control.mermaid" + } + } + } + ], + "end": "$" + }, + { + "comment": "(state) -->", + "begin": "([\\w-]+)\\s+(-->)", + "beginCaptures": { + "1": { + "name": "variable" + }, + "2": { + "name": "keyword.control.mermaid" + } + }, + "patterns": [ + { + "comment": "(state) (:)? (transition text)?", + "match": "\\s+([\\w-]+)\\s*(:)?\\s*([^\\n:]+)?", + "captures": { + "1": { + "name": "variable" + }, + "2": { + "name": "keyword.control.mermaid" + }, + "3": { + "name": "string" + } + } + }, + { + "comment": "[*] (:)? (transition text)?", + "match": "(\\[\\*\\])\\s*(:)?\\s*([^\\n:]+)?", + "captures": { + "1": { + "name": "keyword.control.mermaid" + }, + "2": { + "name": "keyword.control.mermaid" + }, + "3": { + "name": "string" + } + } + } + ], + "end": "$" + }, + { + "comment": "[*] --> (state) (:)? (transition text)?", + "match": "(\\[\\*\\])\\s+(-->)\\s+([\\w-]+)\\s*(:)?\\s*([^\\n:]+)?", + "captures": { + "1": { + "name": "keyword.control.mermaid" + }, + "2": { + "name": "keyword.control.mermaid" + }, + "3": { + "name": "variable" + }, + "4": { + "name": "keyword.control.mermaid" + }, + "5": { + "name": "string" + } + } + }, + { + "comment": "note left|right of (state name)", + "match": "(note (?:left|right) of)\\s+([\\w-]+)\\s+(:)\\s*([^\\n:]+)", + "captures": { + "1": { + "name": "keyword.control.mermaid" + }, + "2": { + "name": "variable" + }, + "3": { + "name": "keyword.control.mermaid" + }, + "4": { + "name": "string" + } + } + }, + { + "comment": "note left|right of (state name) (note text) end note", + "begin": "(note (?:left|right) of)\\s+([\\w-]+)(.|\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.mermaid" + }, + "2": { + "name": "variable" + } + }, + "contentName": "string", + "end": "(end note)", + "endCaptures": { + "1": { + "name": "keyword.control.mermaid" + } + } + } + ], + "end": "(^|\\G)(?=\\s*[`:~]{3,}\\s*$)" + }, + { + "comment": "User Journey", + "begin": "^\\s*(journey)", + "beginCaptures": { + "1": { + "name": "keyword.control.mermaid" + } + }, + "patterns": [ + { + "match": "\\%%.*", + "name": "comment" + }, + { + "match": "(title|section)\\s+(\\s*[\"\\(\\)$&%\\^/#.,?!;:*+=<>\\'\\\\\\-\\w\\s]*)", + "captures": { + "1": { + "name": "keyword.control.mermaid" + }, + "2": { + "name": "string" + } + } + }, + { + "begin": "\\s*([\"\\(\\)$&%\\^/.,?!*+=<>\\'\\\\\\-\\w\\s]*)\\s*(:)\\s*(\\d+)\\s*(:)", + "beginCaptures": { + "1": { + "name": "string" + }, + "2": { + "name": "keyword.control.mermaid" + }, + "3": { + "name": "constant.numeric.decimal.mermaid" + }, + "4": { + "name": "keyword.control.mermaid" + } + }, + "patterns": [ + { + "comment": "(taskName)", + "match": "\\s*,?\\s*([^,#\\n]+)", + "captures": { + "1": { + "name": "variable" + } + } + } + ], + "end": "$" + } + ], + "end": "(^|\\G)(?=\\s*[`:~]{3,}\\s*$)" + } + ] + } + }, + "scopeName": "source.mermaid", + "name": "mermaid" +} diff --git a/docs/shiki/languages/mojo.tmLanguage.json b/docs/shiki/languages/mojo.tmLanguage.json new file mode 100644 index 00000000..6caa67b1 --- /dev/null +++ b/docs/shiki/languages/mojo.tmLanguage.json @@ -0,0 +1,4131 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/MagicStack/MagicPython/blob/master/grammars/MagicPython.tmLanguage", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/MagicStack/MagicPython/commit/7d0f2b22a5ad8fccbd7341bc7b7a715169283044", + "name": "mojo", + "scopeName": "source.mojo", + "patterns": [ + { + "include": "#statement" + }, + { + "include": "#expression" + } + ], + "repository": { + "impossible": { + "comment": "This is a special rule that should be used where no match is desired. It is not a good idea to match something like '1{0}' because in some cases that can result in infinite loops in token generation. So the rule instead matches and impossible expression to allow a match to fail and move to the next token.", + "match": "$.^" + }, + "statement": { + "patterns": [ + { + "include": "#import" + }, + { + "include": "#class-declaration" + }, + { + "include": "#function-declaration" + }, + { + "include": "#generator" + }, + { + "include": "#statement-keyword" + }, + { + "include": "#assignment-operator" + }, + { + "include": "#decorator" + }, + { + "include": "#semicolon" + } + ] + }, + "semicolon": { + "patterns": [ + { + "name": "invalid.deprecated.semicolon.python", + "match": "\\;$" + } + ] + }, + "comments": { + "patterns": [ + { + "name": "comment.line.number-sign.python", + "contentName": "meta.typehint.comment.python", + "begin": "(?x)\n (?:\n \\# \\s* (type:)\n \\s*+ (?# we want `\\s*+` which is possessive quantifier since\n we do not actually want to backtrack when matching\n whitespace here)\n (?! $ | \\#)\n )\n", + "end": "(?:$|(?=\\#))", + "beginCaptures": { + "0": { + "name": "meta.typehint.comment.python" + }, + "1": { + "name": "comment.typehint.directive.notation.python" + } + }, + "patterns": [ + { + "name": "comment.typehint.ignore.notation.python", + "match": "(?x)\n \\G ignore\n (?= \\s* (?: $ | \\#))\n" + }, + { + "name": "comment.typehint.type.notation.python", + "match": "(?x)\n (?<!\\.)\\b(\n bool | bytes | float | int | object | str\n | List | Dict | Iterable | Sequence | Set\n | FrozenSet | Callable | Union | Tuple\n | Any | None\n )\\b\n" + }, + { + "name": "comment.typehint.punctuation.notation.python", + "match": "([\\[\\]\\(\\),\\.\\=\\*]|(->))" + }, + { + "name": "comment.typehint.variable.notation.python", + "match": "([[:alpha:]_]\\w*)" + } + ] + }, + { + "include": "#comments-base" + } + ] + }, + "statement-keyword": { + "patterns": [ + { + "name": "storage.type.function.python", + "match": "\\b((async\\s+)?\\s*def)\\b" + }, + { + "name": "keyword.control.flow.python", + "comment": "if `as` is eventually followed by `:` or line continuation\nit's probably control flow like:\n with foo as bar, \\\n Foo as Bar:\n try:\n do_stuff()\n except Exception as e:\n pass\n", + "match": "\\b(?<!\\.)as\\b(?=.*[:\\\\])" + }, + { + "name": "keyword.control.import.python", + "comment": "other legal use of `as` is in an import", + "match": "\\b(?<!\\.)as\\b" + }, + { + "name": "keyword.control.flow.python", + "match": "(?x)\n \\b(?<!\\.)(\n async | continue | del | assert | break | finally | for\n | from | elif | else | if | except | pass | raise\n | return | try | while | with\n )\\b\n" + }, + { + "name": "storage.modifier.declaration.python", + "match": "(?x)\n \\b(?<!\\.)(\n global | nonlocal\n )\\b\n" + }, + { + "name": "storage.type.class.python", + "match": "\\b(?<!\\.)(class|struct)\\b" + }, + { + "match": "(?x)\n ^\\s*(\n case | match\n )(?=\\s*([-+\\w\\d(\\[{'\":#]|$))\\b\n", + "captures": { + "1": { + "name": "keyword.control.flow.python" + } + } + }, + { + "match": "\\b(var|let|alias) \\s*([[:alpha:]_]\\w*)\\b", + "captures": { + "1": { + "name": "storage.modifier.declaration.python" + }, + "2": { + "name": "variable.other.python" + } + } + } + ] + }, + "expression-bare": { + "comment": "valid Python expressions w/o comments and line continuation", + "patterns": [ + { + "include": "#backticks" + }, + { + "include": "#illegal-anno" + }, + { + "include": "#literal" + }, + { + "include": "#regexp" + }, + { + "include": "#string" + }, + { + "include": "#lambda" + }, + { + "include": "#generator" + }, + { + "include": "#illegal-operator" + }, + { + "include": "#operator" + }, + { + "include": "#curly-braces" + }, + { + "include": "#item-access" + }, + { + "include": "#list" + }, + { + "include": "#odd-function-call" + }, + { + "include": "#round-braces" + }, + { + "include": "#function-call" + }, + { + "include": "#builtin-functions" + }, + { + "include": "#builtin-types" + }, + { + "include": "#builtin-exceptions" + }, + { + "include": "#magic-names" + }, + { + "include": "#special-names" + }, + { + "include": "#illegal-names" + }, + { + "include": "#special-variables" + }, + { + "include": "#ellipsis" + }, + { + "include": "#punctuation" + }, + { + "include": "#line-continuation" + } + ] + }, + "expression-base": { + "comment": "valid Python expressions with comments and line continuation", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#expression-bare" + }, + { + "include": "#line-continuation" + } + ] + }, + "expression": { + "comment": "All valid Python expressions", + "patterns": [ + { + "include": "#expression-base" + }, + { + "include": "#member-access" + }, + { + "comment": "Tokenize identifiers to help linters", + "match": "(?x) \\b ([[:alpha:]_]\\w*) \\b" + } + ] + }, + "member-access": { + "name": "meta.member.access.python", + "begin": "(\\.)\\s*(?!\\.)", + "end": "(?x)\n # stop when you've just read non-whitespace followed by non-word\n # i.e. when finished reading an identifier or function call\n (?<=\\S)(?=\\W) |\n # stop when seeing the start of something that's not a word,\n # i.e. when seeing a non-identifier\n (^|(?<=\\s))(?=[^\\\\\\w\\s]) |\n $\n", + "beginCaptures": { + "1": { + "name": "punctuation.separator.period.python" + } + }, + "patterns": [ + { + "include": "#function-call" + }, + { + "include": "#member-access-base" + }, + { + "include": "#member-access-attribute" + } + ] + }, + "member-access-base": { + "patterns": [ + { + "include": "#magic-names" + }, + { + "include": "#illegal-names" + }, + { + "include": "#illegal-object-name" + }, + { + "include": "#special-names" + }, + { + "include": "#line-continuation" + }, + { + "include": "#item-access" + } + ] + }, + "member-access-attribute": { + "comment": "Highlight attribute access in otherwise non-specialized cases.", + "name": "meta.attribute.python", + "match": "(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n" + }, + "special-names": { + "name": "constant.other.caps.python", + "match": "(?x)\n \\b\n # we want to see \"enough\", meaning 2 or more upper-case\n # letters in the beginning of the constant\n #\n # for more details refer to:\n # https://github.com/MagicStack/MagicPython/issues/42\n (\n _* [[:upper:]] [_\\d]* [[:upper:]]\n )\n [[:upper:]\\d]* (_\\w*)?\n \\b\n" + }, + "curly-braces": { + "begin": "\\{", + "end": "\\}", + "beginCaptures": { + "0": { + "name": "punctuation.definition.dict.begin.python" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.dict.end.python" + } + }, + "patterns": [ + { + "name": "punctuation.separator.dict.python", + "match": ":" + }, + { + "include": "#expression" + } + ] + }, + "list": { + "begin": "\\[", + "end": "\\]", + "beginCaptures": { + "0": { + "name": "punctuation.definition.list.begin.python" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.list.end.python" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + "odd-function-call": { + "comment": "A bit obscured function call where there may have been an\narbitrary number of other operations to get the function.\nE.g. \"arr[idx](args)\"\n", + "begin": "(?x)\n (?<= \\] | \\) ) \\s*\n (?=\\()\n", + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.definition.arguments.end.python" + } + }, + "patterns": [ + { + "include": "#function-arguments" + } + ] + }, + "round-braces": { + "begin": "\\(", + "end": "\\)", + "beginCaptures": { + "0": { + "name": "punctuation.parenthesis.begin.python" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.parenthesis.end.python" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + "line-continuation": { + "patterns": [ + { + "match": "(\\\\)\\s*(\\S.*$\\n?)", + "captures": { + "1": { + "name": "punctuation.separator.continuation.line.python" + }, + "2": { + "name": "invalid.illegal.line.continuation.python" + } + } + }, + { + "begin": "(\\\\)\\s*$\\n?", + "end": "(?x)\n (?=^\\s*$)\n |\n (?! (\\s* [rR]? (\\'\\'\\'|\\\"\\\"\\\"|\\'|\\\"))\n |\n (\\G $) (?# '\\G' is necessary for ST)\n )\n", + "beginCaptures": { + "1": { + "name": "punctuation.separator.continuation.line.python" + } + }, + "patterns": [ + { + "include": "#regexp" + }, + { + "include": "#string" + } + ] + } + ] + }, + "assignment-operator": { + "name": "keyword.operator.assignment.python", + "match": "(?x)\n <<= | >>= | //= | \\*\\*=\n | \\+= | -= | /= | @=\n | \\*= | %= | ~= | \\^= | &= | \\|=\n | =(?!=)\n" + }, + "operator": { + "match": "(?x)\n \\b(?<!\\.)\n (?:\n (and | or | not | in | is) (?# 1)\n |\n (for | if | else | await | (?:yield(?:\\s+from)?)) (?# 2)\n )\n (?!\\s*:)\\b\n\n | (<< | >> | & | \\| | \\^ | ~) (?# 3)\n\n | (\\*\\* | \\* | \\+ | - | % | // | / | @) (?# 4)\n\n | (!= | == | >= | <= | < | >) (?# 5)\n\n | (:=) (?# 6)\n", + "captures": { + "1": { + "name": "keyword.operator.logical.python" + }, + "2": { + "name": "keyword.control.flow.python" + }, + "3": { + "name": "keyword.operator.bitwise.python" + }, + "4": { + "name": "keyword.operator.arithmetic.python" + }, + "5": { + "name": "keyword.operator.comparison.python" + }, + "6": { + "name": "keyword.operator.assignment.python" + } + } + }, + "punctuation": { + "patterns": [ + { + "name": "punctuation.separator.colon.python", + "match": ":" + }, + { + "name": "punctuation.separator.element.python", + "match": "," + } + ] + }, + "literal": { + "patterns": [ + { + "name": "constant.language.python", + "match": "\\b(True|False|None|NotImplemented|Ellipsis)\\b" + }, + { + "include": "#number" + } + ] + }, + "number": { + "name": "constant.numeric.python", + "patterns": [ + { + "include": "#number-float" + }, + { + "include": "#number-dec" + }, + { + "include": "#number-hex" + }, + { + "include": "#number-oct" + }, + { + "include": "#number-bin" + }, + { + "include": "#number-long" + }, + { + "name": "invalid.illegal.name.python", + "match": "\\b[0-9]+\\w+" + } + ] + }, + "number-float": { + "name": "constant.numeric.float.python", + "match": "(?x)\n (?<! \\w)(?:\n (?:\n \\.[0-9](?: _?[0-9] )*\n |\n [0-9](?: _?[0-9] )* \\. [0-9](?: _?[0-9] )*\n |\n [0-9](?: _?[0-9] )* \\.\n ) (?: [eE][+-]?[0-9](?: _?[0-9] )* )?\n |\n [0-9](?: _?[0-9] )* (?: [eE][+-]?[0-9](?: _?[0-9] )* )\n )([jJ])?\\b\n", + "captures": { + "1": { + "name": "storage.type.imaginary.number.python" + } + } + }, + "number-dec": { + "name": "constant.numeric.dec.python", + "match": "(?x)\n (?<![\\w\\.])(?:\n [1-9](?: _?[0-9] )*\n |\n 0+\n |\n [0-9](?: _?[0-9] )* ([jJ])\n |\n 0 ([0-9]+)(?![eE\\.])\n )\\b\n", + "captures": { + "1": { + "name": "storage.type.imaginary.number.python" + }, + "2": { + "name": "invalid.illegal.dec.python" + } + } + }, + "number-hex": { + "name": "constant.numeric.hex.python", + "match": "(?x)\n (?<![\\w\\.])\n (0[xX]) (_?[0-9a-fA-F])+\n \\b\n", + "captures": { + "1": { + "name": "storage.type.number.python" + } + } + }, + "number-oct": { + "name": "constant.numeric.oct.python", + "match": "(?x)\n (?<![\\w\\.])\n (0[oO]) (_?[0-7])+\n \\b\n", + "captures": { + "1": { + "name": "storage.type.number.python" + } + } + }, + "number-bin": { + "name": "constant.numeric.bin.python", + "match": "(?x)\n (?<![\\w\\.])\n (0[bB]) (_?[01])+\n \\b\n", + "captures": { + "1": { + "name": "storage.type.number.python" + } + } + }, + "number-long": { + "name": "constant.numeric.bin.python", + "comment": "this is to support python2 syntax for long ints", + "match": "(?x)\n (?<![\\w\\.])\n ([1-9][0-9]* | 0) ([lL])\n \\b\n", + "captures": { + "2": { + "name": "storage.type.number.python" + } + } + }, + "regexp": { + "patterns": [ + { + "include": "#regexp-single-three-line" + }, + { + "include": "#regexp-double-three-line" + }, + { + "include": "#regexp-single-one-line" + }, + { + "include": "#regexp-double-one-line" + } + ] + }, + "string": { + "patterns": [ + { + "include": "#string-quoted-multi-line" + }, + { + "include": "#string-quoted-single-line" + }, + { + "include": "#string-bin-quoted-multi-line" + }, + { + "include": "#string-bin-quoted-single-line" + }, + { + "include": "#string-raw-quoted-multi-line" + }, + { + "include": "#string-raw-quoted-single-line" + }, + { + "include": "#string-raw-bin-quoted-multi-line" + }, + { + "include": "#string-raw-bin-quoted-single-line" + }, + { + "include": "#fstring-fnorm-quoted-multi-line" + }, + { + "include": "#fstring-fnorm-quoted-single-line" + }, + { + "include": "#fstring-normf-quoted-multi-line" + }, + { + "include": "#fstring-normf-quoted-single-line" + }, + { + "include": "#fstring-raw-quoted-multi-line" + }, + { + "include": "#fstring-raw-quoted-single-line" + } + ] + }, + "string-unicode-guts": { + "patterns": [ + { + "include": "#escape-sequence-unicode" + }, + { + "include": "#string-entity" + }, + { + "include": "#string-brace-formatting" + } + ] + }, + "string-consume-escape": { + "match": "\\\\['\"\\n\\\\]" + }, + "string-raw-guts": { + "patterns": [ + { + "include": "#string-consume-escape" + }, + { + "include": "#string-formatting" + }, + { + "include": "#string-brace-formatting" + } + ] + }, + "string-raw-bin-guts": { + "patterns": [ + { + "include": "#string-consume-escape" + }, + { + "include": "#string-formatting" + } + ] + }, + "string-entity": { + "patterns": [ + { + "include": "#escape-sequence" + }, + { + "include": "#string-line-continuation" + }, + { + "include": "#string-formatting" + } + ] + }, + "fstring-guts": { + "patterns": [ + { + "include": "#escape-sequence-unicode" + }, + { + "include": "#escape-sequence" + }, + { + "include": "#string-line-continuation" + }, + { + "include": "#fstring-formatting" + } + ] + }, + "fstring-raw-guts": { + "patterns": [ + { + "include": "#string-consume-escape" + }, + { + "include": "#fstring-formatting" + } + ] + }, + "fstring-illegal-single-brace": { + "comment": "it is illegal to have a multiline brace inside a single-line string", + "begin": "(\\{)(?=[^\\n}]*$\\n?)", + "end": "(\\})|(?=\\n)", + "beginCaptures": { + "1": { + "name": "constant.character.format.placeholder.other.python" + } + }, + "endCaptures": { + "1": { + "name": "constant.character.format.placeholder.other.python" + } + }, + "patterns": [ + { + "include": "#fstring-terminator-single" + }, + { + "include": "#f-expression" + } + ] + }, + "fstring-illegal-multi-brace": { + "patterns": [ + { + "include": "#impossible" + } + ] + }, + "f-expression": { + "comment": "All valid Python expressions, except comments and line continuation", + "patterns": [ + { + "include": "#expression-bare" + }, + { + "include": "#member-access" + }, + { + "comment": "Tokenize identifiers to help linters", + "match": "(?x) \\b ([[:alpha:]_]\\w*) \\b" + } + ] + }, + "escape-sequence-unicode": { + "patterns": [ + { + "name": "constant.character.escape.python", + "match": "(?x)\n \\\\ (\n u[0-9A-Fa-f]{4}\n | U[0-9A-Fa-f]{8}\n | N\\{[\\w\\s]+?\\}\n )\n" + } + ] + }, + "escape-sequence": { + "name": "constant.character.escape.python", + "match": "(?x)\n \\\\ (\n x[0-9A-Fa-f]{2}\n | [0-7]{1,3}\n | [\\\\\"'abfnrtv]\n )\n" + }, + "string-line-continuation": { + "name": "constant.language.python", + "match": "\\\\$" + }, + "string-formatting": { + "name": "meta.format.percent.python", + "match": "(?x)\n (\n % (\\([\\w\\s]*\\))?\n [-+#0 ]*\n (\\d+|\\*)? (\\.(\\d+|\\*))?\n ([hlL])?\n [diouxXeEfFgGcrsab%]\n )\n", + "captures": { + "1": { + "name": "constant.character.format.placeholder.other.python" + } + } + }, + "string-brace-formatting": { + "patterns": [ + { + "name": "meta.format.brace.python", + "match": "(?x)\n (\n {{ | }}\n | (?:\n {\n \\w* (\\.[[:alpha:]_]\\w* | \\[[^\\]'\"]+\\])*\n (![rsa])?\n ( : \\w? [<>=^]? [-+ ]? \\#?\n \\d* ,? (\\.\\d+)? [bcdeEfFgGnosxX%]? )?\n })\n )\n", + "captures": { + "1": { + "name": "constant.character.format.placeholder.other.python" + }, + "3": { + "name": "storage.type.format.python" + }, + "4": { + "name": "storage.type.format.python" + } + } + }, + { + "name": "meta.format.brace.python", + "match": "(?x)\n (\n {\n \\w* (\\.[[:alpha:]_]\\w* | \\[[^\\]'\"]+\\])*\n (![rsa])?\n (:)\n [^'\"{}\\n]* (?:\n \\{ [^'\"}\\n]*? \\} [^'\"{}\\n]*\n )*\n }\n )\n", + "captures": { + "1": { + "name": "constant.character.format.placeholder.other.python" + }, + "3": { + "name": "storage.type.format.python" + }, + "4": { + "name": "storage.type.format.python" + } + } + } + ] + }, + "fstring-formatting": { + "patterns": [ + { + "include": "#fstring-formatting-braces" + }, + { + "include": "#fstring-formatting-singe-brace" + } + ] + }, + "fstring-formatting-singe-brace": { + "name": "invalid.illegal.brace.python", + "match": "(}(?!}))" + }, + "import": { + "comment": "Import statements used to correctly mark `from`, `import`, and `as`\n", + "patterns": [ + { + "begin": "\\b(?<!\\.)(from)\\b(?=.+import)", + "end": "$|(?=import)", + "beginCaptures": { + "1": { + "name": "keyword.control.import.python" + } + }, + "patterns": [ + { + "name": "punctuation.separator.period.python", + "match": "\\.+" + }, + { + "include": "#expression" + } + ] + }, + { + "begin": "\\b(?<!\\.)(import)\\b", + "end": "$", + "beginCaptures": { + "1": { + "name": "keyword.control.import.python" + } + }, + "patterns": [ + { + "name": "keyword.control.import.python", + "match": "\\b(?<!\\.)as\\b" + }, + { + "include": "#expression" + } + ] + } + ] + }, + "class-declaration": { + "patterns": [ + { + "name": "meta.class.python", + "begin": "(?x)\n \\s*(class|struct)\\s+\n (?=\n [[:alpha:]_]\\w* \\s* (:|\\()\n )\n", + "end": "(:)", + "beginCaptures": { + "1": { + "name": "storage.type.class.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.section.class.begin.python" + } + }, + "patterns": [ + { + "include": "#class-name" + }, + { + "include": "#class-inheritance" + } + ] + } + ] + }, + "class-name": { + "patterns": [ + { + "include": "#illegal-object-name" + }, + { + "include": "#builtin-possible-callables" + }, + { + "name": "entity.name.type.class.python", + "match": "(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n" + } + ] + }, + "class-inheritance": { + "name": "meta.class.inheritance.python", + "begin": "(\\()", + "end": "(\\))", + "beginCaptures": { + "1": { + "name": "punctuation.definition.inheritance.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.inheritance.end.python" + } + }, + "patterns": [ + { + "name": "keyword.operator.unpacking.arguments.python", + "match": "(\\*\\*|\\*)" + }, + { + "name": "punctuation.separator.inheritance.python", + "match": "," + }, + { + "name": "keyword.operator.assignment.python", + "match": "=(?!=)" + }, + { + "name": "support.type.metaclass.python", + "match": "\\bmetaclass\\b" + }, + { + "include": "#illegal-names" + }, + { + "include": "#class-kwarg" + }, + { + "include": "#call-wrapper-inheritance" + }, + { + "include": "#expression-base" + }, + { + "include": "#member-access-class" + }, + { + "include": "#inheritance-identifier" + } + ] + }, + "class-kwarg": { + "match": "(?x)\n \\b ([[:alpha:]_]\\w*) \\s*(=)(?!=)\n", + "captures": { + "1": { + "name": "entity.other.inherited-class.python variable.parameter.class.python" + }, + "2": { + "name": "keyword.operator.assignment.python" + } + } + }, + "inheritance-identifier": { + "match": "(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n", + "captures": { + "1": { + "name": "entity.other.inherited-class.python" + } + } + }, + "member-access-class": { + "name": "meta.member.access.python", + "begin": "(\\.)\\s*(?!\\.)", + "end": "(?<=\\S)(?=\\W)|$", + "beginCaptures": { + "1": { + "name": "punctuation.separator.period.python" + } + }, + "patterns": [ + { + "include": "#call-wrapper-inheritance" + }, + { + "include": "#member-access-base" + }, + { + "include": "#inheritance-identifier" + } + ] + }, + "lambda": { + "patterns": [ + { + "match": "((?<=\\.)lambda|lambda(?=\\s*[\\.=]))", + "captures": { + "1": { + "name": "keyword.control.flow.python" + } + } + }, + { + "match": "\\b(lambda)\\s*?(?=[,\\n]|$)", + "captures": { + "1": { + "name": "storage.type.function.lambda.python" + } + } + }, + { + "name": "meta.lambda-function.python", + "begin": "(?x)\n \\b (lambda) \\b\n", + "end": "(:)|(\\n)", + "beginCaptures": { + "1": { + "name": "storage.type.function.lambda.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.section.function.lambda.begin.python" + } + }, + "contentName": "meta.function.lambda.parameters.python", + "patterns": [ + { + "name": "storage.modifier", + "match": "\\b(owned|borrowed|inout)\\b" + }, + { + "name": "keyword.operator.positional.parameter.python", + "match": "/" + }, + { + "name": "keyword.operator.unpacking.parameter.python", + "match": "(\\*\\*|\\*)" + }, + { + "include": "#lambda-nested-incomplete" + }, + { + "include": "#illegal-names" + }, + { + "match": "([[:alpha:]_]\\w*)\\s*(?:(,)|(?=:|$))", + "captures": { + "1": { + "name": "variable.parameter.function.language.python" + }, + "2": { + "name": "punctuation.separator.parameters.python" + } + } + }, + { + "include": "#comments" + }, + { + "include": "#backticks" + }, + { + "include": "#illegal-anno" + }, + { + "include": "#lambda-parameter-with-default" + }, + { + "include": "#line-continuation" + }, + { + "include": "#illegal-operator" + } + ] + } + ] + }, + "lambda-incomplete": { + "name": "storage.type.function.lambda.python", + "match": "\\blambda(?=\\s*[,)])" + }, + "lambda-nested-incomplete": { + "name": "storage.type.function.lambda.python", + "match": "\\blambda(?=\\s*[:,)])" + }, + "lambda-parameter-with-default": { + "begin": "(?x)\n \\b\n ([[:alpha:]_]\\w*) \\s* (=)\n", + "end": "(,)|(?=:|$)", + "beginCaptures": { + "1": { + "name": "variable.parameter.function.language.python" + }, + "2": { + "name": "keyword.operator.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.separator.parameters.python" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + "generator": { + "comment": "Match \"for ... in\" construct used in generators and for loops to\ncorrectly identify the \"in\" as a control flow keyword.\n", + "begin": "\\bfor\\b", + "beginCaptures": { + "0": { + "name": "keyword.control.flow.python" + } + }, + "end": "\\bin\\b", + "endCaptures": { + "0": { + "name": "keyword.control.flow.python" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + "function-declaration": { + "name": "meta.function.python", + "begin": "(?x)\n \\s*\n (?:\\b(async) \\s+)? \\b(def|fn)\\s+\n (?=\n [[:alpha:]_][[:word:]]* \\s* [\\(\\[]\n )\n", + "end": "(:|(?=[#'\"\\n]))", + "beginCaptures": { + "1": { + "name": "storage.type.function.async.python" + }, + "2": { + "name": "storage.type.function.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.section.function.begin.python" + } + }, + "patterns": [ + { + "include": "#raises-modifier" + }, + { + "include": "#function-def-name" + }, + { + "include": "#parameters" + }, + { + "include": "#meta_parameters" + }, + { + "include": "#line-continuation" + }, + { + "include": "#return-annotation" + } + ] + }, + "function-def-name": { + "patterns": [ + { + "include": "#illegal-object-name" + }, + { + "include": "#builtin-possible-callables" + }, + { + "name": "entity.name.function.python", + "match": "(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n" + } + ] + }, + "raises-modifier": { + "name": "storage.modifier", + "match": "(raises)" + }, + "parameters": { + "name": "meta.function.parameters.python", + "begin": "(\\()", + "end": "(\\))", + "beginCaptures": { + "1": { + "name": "punctuation.definition.parameters.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.parameters.end.python" + } + }, + "patterns": [ + { + "name": "storage.modifier", + "match": "\\b(owned|borrowed|inout)\\b" + }, + { + "name": "keyword.operator.positional.parameter.python", + "match": "/" + }, + { + "name": "keyword.operator.unpacking.parameter.python", + "match": "(\\*\\*|\\*)" + }, + { + "include": "#lambda-incomplete" + }, + { + "include": "#illegal-names" + }, + { + "include": "#illegal-object-name" + }, + { + "include": "#parameter-special" + }, + { + "match": "(?x)\n ([[:alpha:]_]\\w*)\n \\s* (?: (,) | (?=[)#\\n=]))\n", + "captures": { + "1": { + "name": "variable.parameter.function.language.python" + }, + "2": { + "name": "punctuation.separator.parameters.python" + } + } + }, + { + "include": "#comments" + }, + { + "include": "#loose-default" + }, + { + "include": "#annotated-parameter" + } + ] + }, + "meta_parameters": { + "name": "meta.function.parameters.python", + "begin": "(\\[)", + "end": "(\\])", + "beginCaptures": { + "1": { + "name": "punctuation.definition.parameters.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.parameters.end.python" + } + }, + "patterns": [ + { + "begin": "(?x)\n \\b\n ([[:alpha:]_]\\w*) \\s* (:)\n", + "end": "(,)|(?=\\])", + "beginCaptures": { + "1": { + "name": "variable.parameter.function.language.python" + }, + "2": { + "name": "punctuation.separator.annotation.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.separator.parameters.python" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "include": "#comments" + } + ] + }, + "parameter-special": { + "match": "(?x)\n \\b ((self)|(cls)) \\b \\s*(?:(,)|(?=\\)))\n", + "captures": { + "1": { + "name": "variable.parameter.function.language.python" + }, + "2": { + "name": "variable.parameter.function.language.special.self.python" + }, + "3": { + "name": "variable.parameter.function.language.special.cls.python" + }, + "4": { + "name": "punctuation.separator.parameters.python" + } + } + }, + "loose-default": { + "begin": "(=)", + "end": "(,)|(?=\\))", + "beginCaptures": { + "1": { + "name": "keyword.operator.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.separator.parameters.python" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + "annotated-parameter": { + "begin": "(?x)\n \\b\n ([[:alpha:]_]\\w*) \\s* (:)\n", + "end": "(,)|(?=\\))", + "beginCaptures": { + "1": { + "name": "variable.parameter.function.language.python" + }, + "2": { + "name": "punctuation.separator.annotation.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.separator.parameters.python" + } + }, + "patterns": [ + { + "include": "#expression" + }, + { + "name": "keyword.operator.assignment.python", + "match": "=(?!=)" + } + ] + }, + "return-annotation": { + "begin": "(->)", + "end": "(?=:)", + "beginCaptures": { + "1": { + "name": "punctuation.separator.annotation.result.python" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + "item-access": { + "patterns": [ + { + "name": "meta.item-access.python", + "begin": "(?x)\n \\b(?=\n [[:alpha:]_]\\w* \\s* \\[\n )\n", + "end": "(\\])", + "endCaptures": { + "1": { + "name": "punctuation.definition.arguments.end.python" + } + }, + "patterns": [ + { + "include": "#item-name" + }, + { + "include": "#item-index" + }, + { + "include": "#expression" + } + ] + } + ] + }, + "item-name": { + "patterns": [ + { + "include": "#special-variables" + }, + { + "include": "#builtin-functions" + }, + { + "include": "#special-names" + }, + { + "name": "meta.indexed-name.python", + "match": "(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n" + } + ] + }, + "item-index": { + "begin": "(\\[)", + "end": "(?=\\])", + "beginCaptures": { + "1": { + "name": "punctuation.definition.arguments.begin.python" + } + }, + "contentName": "meta.item-access.arguments.python", + "patterns": [ + { + "name": "punctuation.separator.slice.python", + "match": ":" + }, + { + "include": "#expression" + } + ] + }, + "decorator": { + "name": "meta.function.decorator.python", + "begin": "(?x)\n ^\\s*\n ((@)) \\s* (?=[[:alpha:]_]\\w*)\n", + "end": "(?x)\n ( \\) )\n # trailing whitespace and comments are legal\n (?: (.*?) (?=\\s*(?:\\#|$)) )\n | (?=\\n|\\#)\n", + "beginCaptures": { + "1": { + "name": "entity.name.function.decorator.python" + }, + "2": { + "name": "punctuation.definition.decorator.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.arguments.end.python" + }, + "2": { + "name": "invalid.illegal.decorator.python" + } + }, + "patterns": [ + { + "include": "#decorator-name" + }, + { + "include": "#function-arguments" + } + ] + }, + "decorator-name": { + "patterns": [ + { + "include": "#builtin-callables" + }, + { + "include": "#illegal-object-name" + }, + { + "name": "entity.name.function.decorator.python", + "match": "(?x)\n ([[:alpha:]_]\\w*) | (\\.)\n", + "captures": { + "2": { + "name": "punctuation.separator.period.python" + } + } + }, + { + "include": "#line-continuation" + }, + { + "name": "invalid.illegal.decorator.python", + "match": "(?x)\n \\s* ([^([:alpha:]\\s_\\.#\\\\] .*?) (?=\\#|$)\n", + "captures": { + "1": { + "name": "invalid.illegal.decorator.python" + } + } + } + ] + }, + "call-wrapper-inheritance": { + "comment": "same as a function call, but in inheritance context", + "name": "meta.function-call.python", + "begin": "(?x)\n \\b(?=\n ([[:alpha:]_]\\w*) \\s* (\\()\n )\n", + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.definition.arguments.end.python" + } + }, + "patterns": [ + { + "include": "#inheritance-name" + }, + { + "include": "#function-arguments" + } + ] + }, + "inheritance-name": { + "patterns": [ + { + "include": "#lambda-incomplete" + }, + { + "include": "#builtin-possible-callables" + }, + { + "include": "#inheritance-identifier" + } + ] + }, + "function-call": { + "name": "meta.function-call.python", + "comment": "Regular function call of the type \"name(args)\"", + "begin": "(?x)\n \\b(?=\n ([[:alpha:]_]\\w*) \\s* (\\()\n )\n", + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.definition.arguments.end.python" + } + }, + "patterns": [ + { + "include": "#special-variables" + }, + { + "include": "#function-name" + }, + { + "include": "#function-arguments" + } + ] + }, + "function-name": { + "patterns": [ + { + "include": "#builtin-possible-callables" + }, + { + "comment": "Some color schemas support meta.function-call.generic scope", + "name": "meta.function-call.generic.python", + "match": "(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n" + } + ] + }, + "function-arguments": { + "begin": "(\\()", + "end": "(?=\\))(?!\\)\\s*\\()", + "beginCaptures": { + "1": { + "name": "punctuation.definition.arguments.begin.python" + } + }, + "contentName": "meta.function-call.arguments.python", + "patterns": [ + { + "name": "punctuation.separator.arguments.python", + "match": "(,)" + }, + { + "match": "(?x)\n (?:(?<=[,(])|^) \\s* (\\*{1,2})\n", + "captures": { + "1": { + "name": "keyword.operator.unpacking.arguments.python" + } + } + }, + { + "include": "#lambda-incomplete" + }, + { + "include": "#illegal-names" + }, + { + "match": "\\b([[:alpha:]_]\\w*)\\s*(=)(?!=)", + "captures": { + "1": { + "name": "variable.parameter.function-call.python" + }, + "2": { + "name": "keyword.operator.assignment.python" + } + } + }, + { + "name": "keyword.operator.assignment.python", + "match": "=(?!=)" + }, + { + "include": "#expression" + }, + { + "match": "\\s*(\\))\\s*(\\()", + "captures": { + "1": { + "name": "punctuation.definition.arguments.end.python" + }, + "2": { + "name": "punctuation.definition.arguments.begin.python" + } + } + } + ] + }, + "builtin-callables": { + "patterns": [ + { + "include": "#illegal-names" + }, + { + "include": "#illegal-object-name" + }, + { + "include": "#builtin-exceptions" + }, + { + "include": "#builtin-functions" + }, + { + "include": "#builtin-types" + } + ] + }, + "builtin-possible-callables": { + "patterns": [ + { + "include": "#builtin-callables" + }, + { + "include": "#magic-names" + } + ] + }, + "builtin-exceptions": { + "name": "support.type.exception.python", + "match": "(?x) (?<!\\.) \\b(\n (\n Arithmetic | Assertion | Attribute | Buffer | BlockingIO\n | BrokenPipe | ChildProcess\n | (Connection (Aborted | Refused | Reset)?)\n | EOF | Environment | FileExists | FileNotFound\n | FloatingPoint | IO | Import | Indentation | Index | Interrupted\n | IsADirectory | NotADirectory | Permission | ProcessLookup\n | Timeout\n | Key | Lookup | Memory | Name | NotImplemented | OS | Overflow\n | Reference | Runtime | Recursion | Syntax | System\n | Tab | Type | UnboundLocal | Unicode(Encode|Decode|Translate)?\n | Value | Windows | ZeroDivision | ModuleNotFound\n ) Error\n|\n ((Pending)?Deprecation | Runtime | Syntax | User | Future | Import\n | Unicode | Bytes | Resource\n )? Warning\n|\n SystemExit | Stop(Async)?Iteration\n | KeyboardInterrupt\n | GeneratorExit | (Base)?Exception\n)\\b\n" + }, + "builtin-functions": { + "patterns": [ + { + "name": "support.function.builtin.python", + "match": "(?x)\n (?<!\\.) \\b(\n __import__ | abs | aiter | all | any | anext | ascii | bin\n | breakpoint | callable | chr | compile | copyright | credits\n | delattr | dir | divmod | enumerate | eval | exec | exit\n | filter | format | getattr | globals | hasattr | hash | help\n | hex | id | input | isinstance | issubclass | iter | len\n | license | locals | map | max | memoryview | min | next\n | oct | open | ord | pow | print | quit | range | reload | repr\n | reversed | round | setattr | sorted | sum | vars | zip\n )\\b\n" + }, + { + "name": "variable.legacy.builtin.python", + "match": "(?x)\n (?<!\\.) \\b(\n file | reduce | intern | raw_input | unicode | cmp | basestring\n | execfile | long | xrange\n )\\b\n" + } + ] + }, + "builtin-types": { + "name": "support.type.python", + "match": "(?x)\n (?<!\\.) \\b(\n __mlir_attr | __mlir_op | __mlir_type | bool | bytearray | bytes | classmethod | complex | dict\n | float | frozenset | int | list | object | property\n | set | slice | staticmethod | str | tuple | type\n\n (?# Although 'super' is not a type, it's related to types,\n and is special enough to be highlighted differently from\n other built-ins)\n | super\n )\\b\n" + }, + "magic-function-names": { + "comment": "these methods have magic interpretation by python and are generally called\nindirectly through syntactic constructs\n", + "match": "(?x)\n \\b(\n __(?:\n abs | add | aenter | aexit | aiter | and | anext\n | await | bool | call | ceil | class_getitem\n | cmp | coerce | complex | contains | copy\n | deepcopy | del | delattr | delete | delitem\n | delslice | dir | div | divmod | enter | eq\n | exit | float | floor | floordiv | format | ge\n | get | getattr | getattribute | getinitargs\n | getitem | getnewargs | getslice | getstate | gt\n | hash | hex | iadd | iand | idiv | ifloordiv |\n | ilshift | imod | imul | index | init\n | instancecheck | int | invert | ior | ipow\n | irshift | isub | iter | itruediv | ixor | le\n | len | long | lshift | lt | missing | mod | mul\n | ne | neg | new | next | nonzero | oct | or | pos\n | pow | radd | rand | rdiv | rdivmod | reduce\n | reduce_ex | repr | reversed | rfloordiv |\n | rlshift | rmod | rmul | ror | round | rpow\n | rrshift | rshift | rsub | rtruediv | rxor | set\n | setattr | setitem | set_name | setslice\n | setstate | sizeof | str | sub | subclasscheck\n | truediv | trunc | unicode | xor | matmul\n | rmatmul | imatmul | init_subclass | set_name\n | fspath | bytes | prepare | length_hint\n )__\n )\\b\n", + "captures": { + "1": { + "name": "support.function.magic.python" + } + } + }, + "magic-variable-names": { + "comment": "magic variables which a class/module may have.", + "match": "(?x)\n \\b(\n __(?:\n all | annotations | bases | builtins | class\n | struct\n | closure | code | debug | defaults | dict | doc | file | func\n | globals | kwdefaults | match_args | members | metaclass | methods\n | module | mro | mro_entries | name | qualname | post_init | self\n | signature | slots | subclasses | version | weakref | wrapped\n | classcell | spec | path | package | future | traceback\n )__\n )\\b\n", + "captures": { + "1": { + "name": "support.variable.magic.python" + } + } + }, + "magic-names": { + "patterns": [ + { + "include": "#magic-function-names" + }, + { + "include": "#magic-variable-names" + } + ] + }, + "illegal-names": { + "match": "(?x)\n \\b(?:\n (\n and | assert | async | await | break | class | struct | continue | def\n | fn\n | del | elif | else | except | finally | for | from | global\n | if | in | is | (?<=\\.)lambda | lambda(?=\\s*[\\.=])\n | nonlocal | not | or | pass | raise | return | try | while | with\n | yield\n ) | (\n as | import\n )\n )\\b\n", + "captures": { + "1": { + "name": "keyword.control.flow.python" + }, + "2": { + "name": "keyword.control.import.python" + } + } + }, + "special-variables": { + "match": "(?x)\n \\b (?<!\\.) (?:\n (self) | (cls)\n )\\b\n", + "captures": { + "1": { + "name": "variable.language.special.self.python" + }, + "2": { + "name": "variable.language.special.cls.python" + } + } + }, + "ellipsis": { + "name": "constant.other.ellipsis.python", + "match": "\\.\\.\\." + }, + "backticks": { + "name": "string.quoted.single.python", + "begin": "\\`", + "end": "(?:\\`|(?<!\\\\)(\\n))" + }, + "illegal-operator": { + "patterns": [ + { + "name": "invalid.illegal.operator.python", + "match": "&&|\\|\\||--|\\+\\+" + }, + { + "name": "invalid.illegal.operator.python", + "match": "[?$]" + }, + { + "name": "invalid.illegal.operator.python", + "comment": "We don't want `!` to flash when we're typing `!=`", + "match": "!\\b" + } + ] + }, + "illegal-object-name": { + "comment": "It's illegal to name class or function \"True\"", + "name": "keyword.illegal.name.python", + "match": "\\b(True|False|None)\\b" + }, + "illegal-anno": { + "name": "invalid.illegal.annotation.python", + "match": "->" + }, + "regexp-base-expression": { + "patterns": [ + { + "include": "#regexp-quantifier" + }, + { + "include": "#regexp-base-common" + } + ] + }, + "fregexp-base-expression": { + "patterns": [ + { + "include": "#fregexp-quantifier" + }, + { + "include": "#fstring-formatting-braces" + }, + { + "match": "\\{.*?\\}" + }, + { + "include": "#regexp-base-common" + } + ] + }, + "fstring-formatting-braces": { + "patterns": [ + { + "comment": "empty braces are illegal", + "match": "({)(\\s*?)(})", + "captures": { + "1": { + "name": "constant.character.format.placeholder.other.python" + }, + "2": { + "name": "invalid.illegal.brace.python" + }, + "3": { + "name": "constant.character.format.placeholder.other.python" + } + } + }, + { + "name": "constant.character.escape.python", + "match": "({{|}})" + } + ] + }, + "regexp-base-common": { + "patterns": [ + { + "name": "support.other.match.any.regexp", + "match": "\\." + }, + { + "name": "support.other.match.begin.regexp", + "match": "\\^" + }, + { + "name": "support.other.match.end.regexp", + "match": "\\$" + }, + { + "name": "keyword.operator.quantifier.regexp", + "match": "[+*?]\\??" + }, + { + "name": "keyword.operator.disjunction.regexp", + "match": "\\|" + }, + { + "include": "#regexp-escape-sequence" + } + ] + }, + "regexp-quantifier": { + "name": "keyword.operator.quantifier.regexp", + "match": "(?x)\n \\{(\n \\d+ | \\d+,(\\d+)? | ,\\d+\n )\\}\n" + }, + "fregexp-quantifier": { + "name": "keyword.operator.quantifier.regexp", + "match": "(?x)\n \\{\\{(\n \\d+ | \\d+,(\\d+)? | ,\\d+\n )\\}\\}\n" + }, + "regexp-backreference-number": { + "name": "meta.backreference.regexp", + "match": "(\\\\[1-9]\\d?)", + "captures": { + "1": { + "name": "entity.name.tag.backreference.regexp" + } + } + }, + "regexp-backreference": { + "name": "meta.backreference.named.regexp", + "match": "(?x)\n (\\() (\\?P= \\w+(?:\\s+[[:alnum:]]+)?) (\\))\n", + "captures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.begin.regexp" + }, + "2": { + "name": "entity.name.tag.named.backreference.regexp" + }, + "3": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.end.regexp" + } + } + }, + "regexp-flags": { + "name": "storage.modifier.flag.regexp", + "match": "\\(\\?[aiLmsux]+\\)" + }, + "regexp-escape-special": { + "name": "support.other.escape.special.regexp", + "match": "\\\\([AbBdDsSwWZ])" + }, + "regexp-escape-character": { + "name": "constant.character.escape.regexp", + "match": "(?x)\n \\\\ (\n x[0-9A-Fa-f]{2}\n | 0[0-7]{1,2}\n | [0-7]{3}\n )\n" + }, + "regexp-escape-unicode": { + "name": "constant.character.unicode.regexp", + "match": "(?x)\n \\\\ (\n u[0-9A-Fa-f]{4}\n | U[0-9A-Fa-f]{8}\n )\n" + }, + "regexp-escape-catchall": { + "name": "constant.character.escape.regexp", + "match": "\\\\(.|\\n)" + }, + "regexp-escape-sequence": { + "patterns": [ + { + "include": "#regexp-escape-special" + }, + { + "include": "#regexp-escape-character" + }, + { + "include": "#regexp-escape-unicode" + }, + { + "include": "#regexp-backreference-number" + }, + { + "include": "#regexp-escape-catchall" + } + ] + }, + "regexp-charecter-set-escapes": { + "patterns": [ + { + "name": "constant.character.escape.regexp", + "match": "\\\\[abfnrtv\\\\]" + }, + { + "include": "#regexp-escape-special" + }, + { + "name": "constant.character.escape.regexp", + "match": "\\\\([0-7]{1,3})" + }, + { + "include": "#regexp-escape-character" + }, + { + "include": "#regexp-escape-unicode" + }, + { + "include": "#regexp-escape-catchall" + } + ] + }, + "codetags": { + "match": "(?:\\b(NOTE|XXX|HACK|FIXME|BUG|TODO)\\b)", + "captures": { + "1": { + "name": "keyword.codetag.notation.python" + } + } + }, + "comments-base": { + "name": "comment.line.number-sign.python", + "begin": "(\\#)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.python" + } + }, + "end": "($)", + "patterns": [ + { + "include": "#codetags" + } + ] + }, + "comments-string-single-three": { + "name": "comment.line.number-sign.python", + "begin": "(\\#)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.python" + } + }, + "end": "($|(?='''))", + "patterns": [ + { + "include": "#codetags" + } + ] + }, + "comments-string-double-three": { + "name": "comment.line.number-sign.python", + "begin": "(\\#)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.python" + } + }, + "end": "($|(?=\"\"\"))", + "patterns": [ + { + "include": "#codetags" + } + ] + }, + "single-one-regexp-expression": { + "patterns": [ + { + "include": "#regexp-base-expression" + }, + { + "include": "#single-one-regexp-character-set" + }, + { + "include": "#single-one-regexp-comments" + }, + { + "include": "#regexp-flags" + }, + { + "include": "#single-one-regexp-named-group" + }, + { + "include": "#regexp-backreference" + }, + { + "include": "#single-one-regexp-lookahead" + }, + { + "include": "#single-one-regexp-lookahead-negative" + }, + { + "include": "#single-one-regexp-lookbehind" + }, + { + "include": "#single-one-regexp-lookbehind-negative" + }, + { + "include": "#single-one-regexp-conditional" + }, + { + "include": "#single-one-regexp-parentheses-non-capturing" + }, + { + "include": "#single-one-regexp-parentheses" + } + ] + }, + "single-one-regexp-character-set": { + "patterns": [ + { + "match": "(?x)\n \\[ \\^? \\] (?! .*?\\])\n" + }, + { + "name": "meta.character.set.regexp", + "begin": "(\\[)(\\^)?(\\])?", + "end": "(\\]|(?=\\'))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "1": { + "name": "punctuation.character.set.begin.regexp constant.other.set.regexp" + }, + "2": { + "name": "keyword.operator.negation.regexp" + }, + "3": { + "name": "constant.character.set.regexp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.character.set.end.regexp constant.other.set.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#regexp-charecter-set-escapes" + }, + { + "name": "constant.character.set.regexp", + "match": "[^\\n]" + } + ] + } + ] + }, + "single-one-regexp-named-group": { + "name": "meta.named.regexp", + "begin": "(?x)\n (\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n", + "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp" + }, + "2": { + "name": "entity.name.tag.named.group.regexp" + } + }, + "endCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-one-regexp-expression" + } + ] + }, + "single-one-regexp-comments": { + "name": "comment.regexp", + "begin": "\\(\\?#", + "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "punctuation.comment.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.comment.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#codetags" + } + ] + }, + "single-one-regexp-lookahead": { + "begin": "(\\()\\?=", + "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookahead.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookahead.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-one-regexp-expression" + } + ] + }, + "single-one-regexp-lookahead-negative": { + "begin": "(\\()\\?!", + "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookahead.negative.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookahead.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-one-regexp-expression" + } + ] + }, + "single-one-regexp-lookbehind": { + "begin": "(\\()\\?<=", + "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookbehind.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookbehind.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-one-regexp-expression" + } + ] + }, + "single-one-regexp-lookbehind-negative": { + "begin": "(\\()\\?<!", + "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookbehind.negative.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookbehind.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-one-regexp-expression" + } + ] + }, + "single-one-regexp-conditional": { + "begin": "(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)", + "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "keyword.operator.conditional.regexp" + }, + "1": { + "name": "punctuation.parenthesis.conditional.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-one-regexp-expression" + } + ] + }, + "single-one-regexp-parentheses-non-capturing": { + "begin": "\\(\\?:", + "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-one-regexp-expression" + } + ] + }, + "single-one-regexp-parentheses": { + "begin": "\\(", + "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-one-regexp-expression" + } + ] + }, + "single-three-regexp-expression": { + "patterns": [ + { + "include": "#regexp-base-expression" + }, + { + "include": "#single-three-regexp-character-set" + }, + { + "include": "#single-three-regexp-comments" + }, + { + "include": "#regexp-flags" + }, + { + "include": "#single-three-regexp-named-group" + }, + { + "include": "#regexp-backreference" + }, + { + "include": "#single-three-regexp-lookahead" + }, + { + "include": "#single-three-regexp-lookahead-negative" + }, + { + "include": "#single-three-regexp-lookbehind" + }, + { + "include": "#single-three-regexp-lookbehind-negative" + }, + { + "include": "#single-three-regexp-conditional" + }, + { + "include": "#single-three-regexp-parentheses-non-capturing" + }, + { + "include": "#single-three-regexp-parentheses" + }, + { + "include": "#comments-string-single-three" + } + ] + }, + "single-three-regexp-character-set": { + "patterns": [ + { + "match": "(?x)\n \\[ \\^? \\] (?! .*?\\])\n" + }, + { + "name": "meta.character.set.regexp", + "begin": "(\\[)(\\^)?(\\])?", + "end": "(\\]|(?=\\'\\'\\'))", + "beginCaptures": { + "1": { + "name": "punctuation.character.set.begin.regexp constant.other.set.regexp" + }, + "2": { + "name": "keyword.operator.negation.regexp" + }, + "3": { + "name": "constant.character.set.regexp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.character.set.end.regexp constant.other.set.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#regexp-charecter-set-escapes" + }, + { + "name": "constant.character.set.regexp", + "match": "[^\\n]" + } + ] + } + ] + }, + "single-three-regexp-named-group": { + "name": "meta.named.regexp", + "begin": "(?x)\n (\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n", + "end": "(\\)|(?=\\'\\'\\'))", + "beginCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp" + }, + "2": { + "name": "entity.name.tag.named.group.regexp" + } + }, + "endCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-three-regexp-expression" + }, + { + "include": "#comments-string-single-three" + } + ] + }, + "single-three-regexp-comments": { + "name": "comment.regexp", + "begin": "\\(\\?#", + "end": "(\\)|(?=\\'\\'\\'))", + "beginCaptures": { + "0": { + "name": "punctuation.comment.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.comment.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#codetags" + } + ] + }, + "single-three-regexp-lookahead": { + "begin": "(\\()\\?=", + "end": "(\\)|(?=\\'\\'\\'))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookahead.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookahead.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-three-regexp-expression" + }, + { + "include": "#comments-string-single-three" + } + ] + }, + "single-three-regexp-lookahead-negative": { + "begin": "(\\()\\?!", + "end": "(\\)|(?=\\'\\'\\'))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookahead.negative.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookahead.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-three-regexp-expression" + }, + { + "include": "#comments-string-single-three" + } + ] + }, + "single-three-regexp-lookbehind": { + "begin": "(\\()\\?<=", + "end": "(\\)|(?=\\'\\'\\'))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookbehind.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookbehind.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-three-regexp-expression" + }, + { + "include": "#comments-string-single-three" + } + ] + }, + "single-three-regexp-lookbehind-negative": { + "begin": "(\\()\\?<!", + "end": "(\\)|(?=\\'\\'\\'))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookbehind.negative.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookbehind.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-three-regexp-expression" + }, + { + "include": "#comments-string-single-three" + } + ] + }, + "single-three-regexp-conditional": { + "begin": "(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)", + "end": "(\\)|(?=\\'\\'\\'))", + "beginCaptures": { + "0": { + "name": "keyword.operator.conditional.regexp" + }, + "1": { + "name": "punctuation.parenthesis.conditional.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-three-regexp-expression" + }, + { + "include": "#comments-string-single-three" + } + ] + }, + "single-three-regexp-parentheses-non-capturing": { + "begin": "\\(\\?:", + "end": "(\\)|(?=\\'\\'\\'))", + "beginCaptures": { + "0": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-three-regexp-expression" + }, + { + "include": "#comments-string-single-three" + } + ] + }, + "single-three-regexp-parentheses": { + "begin": "\\(", + "end": "(\\)|(?=\\'\\'\\'))", + "beginCaptures": { + "0": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-three-regexp-expression" + }, + { + "include": "#comments-string-single-three" + } + ] + }, + "double-one-regexp-expression": { + "patterns": [ + { + "include": "#regexp-base-expression" + }, + { + "include": "#double-one-regexp-character-set" + }, + { + "include": "#double-one-regexp-comments" + }, + { + "include": "#regexp-flags" + }, + { + "include": "#double-one-regexp-named-group" + }, + { + "include": "#regexp-backreference" + }, + { + "include": "#double-one-regexp-lookahead" + }, + { + "include": "#double-one-regexp-lookahead-negative" + }, + { + "include": "#double-one-regexp-lookbehind" + }, + { + "include": "#double-one-regexp-lookbehind-negative" + }, + { + "include": "#double-one-regexp-conditional" + }, + { + "include": "#double-one-regexp-parentheses-non-capturing" + }, + { + "include": "#double-one-regexp-parentheses" + } + ] + }, + "double-one-regexp-character-set": { + "patterns": [ + { + "match": "(?x)\n \\[ \\^? \\] (?! .*?\\])\n" + }, + { + "name": "meta.character.set.regexp", + "begin": "(\\[)(\\^)?(\\])?", + "end": "(\\]|(?=\"))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "1": { + "name": "punctuation.character.set.begin.regexp constant.other.set.regexp" + }, + "2": { + "name": "keyword.operator.negation.regexp" + }, + "3": { + "name": "constant.character.set.regexp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.character.set.end.regexp constant.other.set.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#regexp-charecter-set-escapes" + }, + { + "name": "constant.character.set.regexp", + "match": "[^\\n]" + } + ] + } + ] + }, + "double-one-regexp-named-group": { + "name": "meta.named.regexp", + "begin": "(?x)\n (\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n", + "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp" + }, + "2": { + "name": "entity.name.tag.named.group.regexp" + } + }, + "endCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-one-regexp-expression" + } + ] + }, + "double-one-regexp-comments": { + "name": "comment.regexp", + "begin": "\\(\\?#", + "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "punctuation.comment.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.comment.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#codetags" + } + ] + }, + "double-one-regexp-lookahead": { + "begin": "(\\()\\?=", + "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookahead.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookahead.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-one-regexp-expression" + } + ] + }, + "double-one-regexp-lookahead-negative": { + "begin": "(\\()\\?!", + "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookahead.negative.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookahead.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-one-regexp-expression" + } + ] + }, + "double-one-regexp-lookbehind": { + "begin": "(\\()\\?<=", + "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookbehind.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookbehind.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-one-regexp-expression" + } + ] + }, + "double-one-regexp-lookbehind-negative": { + "begin": "(\\()\\?<!", + "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookbehind.negative.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookbehind.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-one-regexp-expression" + } + ] + }, + "double-one-regexp-conditional": { + "begin": "(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)", + "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "keyword.operator.conditional.regexp" + }, + "1": { + "name": "punctuation.parenthesis.conditional.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-one-regexp-expression" + } + ] + }, + "double-one-regexp-parentheses-non-capturing": { + "begin": "\\(\\?:", + "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-one-regexp-expression" + } + ] + }, + "double-one-regexp-parentheses": { + "begin": "\\(", + "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-one-regexp-expression" + } + ] + }, + "double-three-regexp-expression": { + "patterns": [ + { + "include": "#regexp-base-expression" + }, + { + "include": "#double-three-regexp-character-set" + }, + { + "include": "#double-three-regexp-comments" + }, + { + "include": "#regexp-flags" + }, + { + "include": "#double-three-regexp-named-group" + }, + { + "include": "#regexp-backreference" + }, + { + "include": "#double-three-regexp-lookahead" + }, + { + "include": "#double-three-regexp-lookahead-negative" + }, + { + "include": "#double-three-regexp-lookbehind" + }, + { + "include": "#double-three-regexp-lookbehind-negative" + }, + { + "include": "#double-three-regexp-conditional" + }, + { + "include": "#double-three-regexp-parentheses-non-capturing" + }, + { + "include": "#double-three-regexp-parentheses" + }, + { + "include": "#comments-string-double-three" + } + ] + }, + "double-three-regexp-character-set": { + "patterns": [ + { + "match": "(?x)\n \\[ \\^? \\] (?! .*?\\])\n" + }, + { + "name": "meta.character.set.regexp", + "begin": "(\\[)(\\^)?(\\])?", + "end": "(\\]|(?=\"\"\"))", + "beginCaptures": { + "1": { + "name": "punctuation.character.set.begin.regexp constant.other.set.regexp" + }, + "2": { + "name": "keyword.operator.negation.regexp" + }, + "3": { + "name": "constant.character.set.regexp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.character.set.end.regexp constant.other.set.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#regexp-charecter-set-escapes" + }, + { + "name": "constant.character.set.regexp", + "match": "[^\\n]" + } + ] + } + ] + }, + "double-three-regexp-named-group": { + "name": "meta.named.regexp", + "begin": "(?x)\n (\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n", + "end": "(\\)|(?=\"\"\"))", + "beginCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp" + }, + "2": { + "name": "entity.name.tag.named.group.regexp" + } + }, + "endCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-three-regexp-expression" + }, + { + "include": "#comments-string-double-three" + } + ] + }, + "double-three-regexp-comments": { + "name": "comment.regexp", + "begin": "\\(\\?#", + "end": "(\\)|(?=\"\"\"))", + "beginCaptures": { + "0": { + "name": "punctuation.comment.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.comment.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#codetags" + } + ] + }, + "double-three-regexp-lookahead": { + "begin": "(\\()\\?=", + "end": "(\\)|(?=\"\"\"))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookahead.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookahead.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-three-regexp-expression" + }, + { + "include": "#comments-string-double-three" + } + ] + }, + "double-three-regexp-lookahead-negative": { + "begin": "(\\()\\?!", + "end": "(\\)|(?=\"\"\"))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookahead.negative.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookahead.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-three-regexp-expression" + }, + { + "include": "#comments-string-double-three" + } + ] + }, + "double-three-regexp-lookbehind": { + "begin": "(\\()\\?<=", + "end": "(\\)|(?=\"\"\"))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookbehind.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookbehind.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-three-regexp-expression" + }, + { + "include": "#comments-string-double-three" + } + ] + }, + "double-three-regexp-lookbehind-negative": { + "begin": "(\\()\\?<!", + "end": "(\\)|(?=\"\"\"))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookbehind.negative.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookbehind.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-three-regexp-expression" + }, + { + "include": "#comments-string-double-three" + } + ] + }, + "double-three-regexp-conditional": { + "begin": "(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)", + "end": "(\\)|(?=\"\"\"))", + "beginCaptures": { + "0": { + "name": "keyword.operator.conditional.regexp" + }, + "1": { + "name": "punctuation.parenthesis.conditional.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-three-regexp-expression" + }, + { + "include": "#comments-string-double-three" + } + ] + }, + "double-three-regexp-parentheses-non-capturing": { + "begin": "\\(\\?:", + "end": "(\\)|(?=\"\"\"))", + "beginCaptures": { + "0": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-three-regexp-expression" + }, + { + "include": "#comments-string-double-three" + } + ] + }, + "double-three-regexp-parentheses": { + "begin": "\\(", + "end": "(\\)|(?=\"\"\"))", + "beginCaptures": { + "0": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-three-regexp-expression" + }, + { + "include": "#comments-string-double-three" + } + ] + }, + "regexp-single-one-line": { + "name": "string.regexp.quoted.single.python", + "begin": "\\b(([uU]r)|([bB]r)|(r[bB]?))(\\')", + "end": "(\\')|(?<!\\\\)(\\n)", + "beginCaptures": { + "2": { + "name": "invalid.deprecated.prefix.python" + }, + "3": { + "name": "storage.type.string.python" + }, + "4": { + "name": "storage.type.string.python" + }, + "5": { + "name": "punctuation.definition.string.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-one-regexp-expression" + } + ] + }, + "regexp-single-three-line": { + "name": "string.regexp.quoted.multi.python", + "begin": "\\b(([uU]r)|([bB]r)|(r[bB]?))(\\'\\'\\')", + "end": "(\\'\\'\\')", + "beginCaptures": { + "2": { + "name": "invalid.deprecated.prefix.python" + }, + "3": { + "name": "storage.type.string.python" + }, + "4": { + "name": "storage.type.string.python" + }, + "5": { + "name": "punctuation.definition.string.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-three-regexp-expression" + } + ] + }, + "regexp-double-one-line": { + "name": "string.regexp.quoted.single.python", + "begin": "\\b(([uU]r)|([bB]r)|(r[bB]?))(\")", + "end": "(\")|(?<!\\\\)(\\n)", + "beginCaptures": { + "2": { + "name": "invalid.deprecated.prefix.python" + }, + "3": { + "name": "storage.type.string.python" + }, + "4": { + "name": "storage.type.string.python" + }, + "5": { + "name": "punctuation.definition.string.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-one-regexp-expression" + } + ] + }, + "regexp-double-three-line": { + "name": "string.regexp.quoted.multi.python", + "begin": "\\b(([uU]r)|([bB]r)|(r[bB]?))(\"\"\")", + "end": "(\"\"\")", + "beginCaptures": { + "2": { + "name": "invalid.deprecated.prefix.python" + }, + "3": { + "name": "storage.type.string.python" + }, + "4": { + "name": "storage.type.string.python" + }, + "5": { + "name": "punctuation.definition.string.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-three-regexp-expression" + } + ] + }, + "string-raw-quoted-single-line": { + "name": "string.quoted.raw.single.python", + "begin": "\\b(([uU]R)|(R))((['\"]))", + "end": "(\\4)|((?<!\\\\)\\n)", + "beginCaptures": { + "2": { + "name": "invalid.deprecated.prefix.python" + }, + "3": { + "name": "storage.type.string.python" + }, + "4": { + "name": "punctuation.definition.string.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#string-single-bad-brace1-formatting-raw" + }, + { + "include": "#string-single-bad-brace2-formatting-raw" + }, + { + "include": "#string-raw-guts" + } + ] + }, + "string-bin-quoted-single-line": { + "name": "string.quoted.binary.single.python", + "begin": "(\\b[bB])((['\"]))", + "end": "(\\2)|((?<!\\\\)\\n)", + "beginCaptures": { + "1": { + "name": "storage.type.string.python" + }, + "2": { + "name": "punctuation.definition.string.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#string-entity" + } + ] + }, + "string-raw-bin-quoted-single-line": { + "name": "string.quoted.raw.binary.single.python", + "begin": "(\\b(?:R[bB]|[bB]R))((['\"]))", + "end": "(\\2)|((?<!\\\\)\\n)", + "beginCaptures": { + "1": { + "name": "storage.type.string.python" + }, + "2": { + "name": "punctuation.definition.string.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#string-raw-bin-guts" + } + ] + }, + "string-quoted-single-line": { + "name": "string.quoted.single.python", + "begin": "(?:\\b([rR])(?=[uU]))?([uU])?((['\"]))", + "end": "(\\3)|((?<!\\\\)\\n)", + "beginCaptures": { + "1": { + "name": "invalid.illegal.prefix.python" + }, + "2": { + "name": "storage.type.string.python" + }, + "3": { + "name": "punctuation.definition.string.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#string-single-bad-brace1-formatting-unicode" + }, + { + "include": "#string-single-bad-brace2-formatting-unicode" + }, + { + "include": "#string-unicode-guts" + } + ] + }, + "string-single-bad-brace1-formatting-unicode": { + "comment": "template using {% ... %}", + "begin": "(?x)\n (?= \\{%\n ( .*? (?!(['\"])|((?<!\\\\)\\n)) )\n %\\}\n )\n", + "end": "(?=(['\"])|((?<!\\\\)\\n))", + "patterns": [ + { + "include": "#escape-sequence-unicode" + }, + { + "include": "#escape-sequence" + }, + { + "include": "#string-line-continuation" + } + ] + }, + "string-single-bad-brace1-formatting-raw": { + "comment": "template using {% ... %}", + "begin": "(?x)\n (?= \\{%\n ( .*? (?!(['\"])|((?<!\\\\)\\n)) )\n %\\}\n )\n", + "end": "(?=(['\"])|((?<!\\\\)\\n))", + "patterns": [ + { + "include": "#string-consume-escape" + } + ] + }, + "string-single-bad-brace2-formatting-unicode": { + "comment": "odd format or format-like syntax", + "begin": "(?x)\n (?!\\{\\{)\n (?= \\{ (\n \\w*? (?!(['\"])|((?<!\\\\)\\n)) [^!:\\.\\[}\\w]\n )\n .*?(?!(['\"])|((?<!\\\\)\\n))\n \\}\n )\n", + "end": "(?=(['\"])|((?<!\\\\)\\n))", + "patterns": [ + { + "include": "#escape-sequence-unicode" + }, + { + "include": "#string-entity" + } + ] + }, + "string-single-bad-brace2-formatting-raw": { + "comment": "odd format or format-like syntax", + "begin": "(?x)\n (?!\\{\\{)\n (?= \\{ (\n \\w*? (?!(['\"])|((?<!\\\\)\\n)) [^!:\\.\\[}\\w]\n )\n .*?(?!(['\"])|((?<!\\\\)\\n))\n \\}\n )\n", + "end": "(?=(['\"])|((?<!\\\\)\\n))", + "patterns": [ + { + "include": "#string-consume-escape" + }, + { + "include": "#string-formatting" + } + ] + }, + "string-raw-quoted-multi-line": { + "name": "string.quoted.raw.multi.python", + "begin": "\\b(([uU]R)|(R))('''|\"\"\")", + "end": "(\\4)", + "beginCaptures": { + "2": { + "name": "invalid.deprecated.prefix.python" + }, + "3": { + "name": "storage.type.string.python" + }, + "4": { + "name": "punctuation.definition.string.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#string-multi-bad-brace1-formatting-raw" + }, + { + "include": "#string-multi-bad-brace2-formatting-raw" + }, + { + "include": "#string-raw-guts" + } + ] + }, + "string-bin-quoted-multi-line": { + "name": "string.quoted.binary.multi.python", + "begin": "(\\b[bB])('''|\"\"\")", + "end": "(\\2)", + "beginCaptures": { + "1": { + "name": "storage.type.string.python" + }, + "2": { + "name": "punctuation.definition.string.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#string-entity" + } + ] + }, + "string-raw-bin-quoted-multi-line": { + "name": "string.quoted.raw.binary.multi.python", + "begin": "(\\b(?:R[bB]|[bB]R))('''|\"\"\")", + "end": "(\\2)", + "beginCaptures": { + "1": { + "name": "storage.type.string.python" + }, + "2": { + "name": "punctuation.definition.string.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#string-raw-bin-guts" + } + ] + }, + "string-quoted-multi-line": { + "name": "string.quoted.multi.python", + "begin": "(?:\\b([rR])(?=[uU]))?([uU])?('''|\"\"\")", + "end": "(\\3)", + "beginCaptures": { + "1": { + "name": "invalid.illegal.prefix.python" + }, + "2": { + "name": "storage.type.string.python" + }, + "3": { + "name": "punctuation.definition.string.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#string-multi-bad-brace1-formatting-unicode" + }, + { + "include": "#string-multi-bad-brace2-formatting-unicode" + }, + { + "include": "#string-unicode-guts" + } + ] + }, + "string-multi-bad-brace1-formatting-unicode": { + "comment": "template using {% ... %}", + "begin": "(?x)\n (?= \\{%\n ( .*? (?!'''|\"\"\") )\n %\\}\n )\n", + "end": "(?='''|\"\"\")", + "patterns": [ + { + "include": "#escape-sequence-unicode" + }, + { + "include": "#escape-sequence" + }, + { + "include": "#string-line-continuation" + } + ] + }, + "string-multi-bad-brace1-formatting-raw": { + "comment": "template using {% ... %}", + "begin": "(?x)\n (?= \\{%\n ( .*? (?!'''|\"\"\") )\n %\\}\n )\n", + "end": "(?='''|\"\"\")", + "patterns": [ + { + "include": "#string-consume-escape" + } + ] + }, + "string-multi-bad-brace2-formatting-unicode": { + "comment": "odd format or format-like syntax", + "begin": "(?x)\n (?!\\{\\{)\n (?= \\{ (\n \\w*? (?!'''|\"\"\") [^!:\\.\\[}\\w]\n )\n .*?(?!'''|\"\"\")\n \\}\n )\n", + "end": "(?='''|\"\"\")", + "patterns": [ + { + "include": "#escape-sequence-unicode" + }, + { + "include": "#string-entity" + } + ] + }, + "string-multi-bad-brace2-formatting-raw": { + "comment": "odd format or format-like syntax", + "begin": "(?x)\n (?!\\{\\{)\n (?= \\{ (\n \\w*? (?!'''|\"\"\") [^!:\\.\\[}\\w]\n )\n .*?(?!'''|\"\"\")\n \\}\n )\n", + "end": "(?='''|\"\"\")", + "patterns": [ + { + "include": "#string-consume-escape" + }, + { + "include": "#string-formatting" + } + ] + }, + "fstring-fnorm-quoted-single-line": { + "name": "meta.fstring.python", + "begin": "(\\b[fF])([bBuU])?((['\"]))", + "end": "(\\3)|((?<!\\\\)\\n)", + "beginCaptures": { + "1": { + "name": "string.interpolated.python string.quoted.single.python storage.type.string.python" + }, + "2": { + "name": "invalid.illegal.prefix.python" + }, + "3": { + "name": "punctuation.definition.string.begin.python string.interpolated.python string.quoted.single.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python string.interpolated.python string.quoted.single.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#fstring-guts" + }, + { + "include": "#fstring-illegal-single-brace" + }, + { + "include": "#fstring-single-brace" + }, + { + "include": "#fstring-single-core" + } + ] + }, + "fstring-normf-quoted-single-line": { + "name": "meta.fstring.python", + "begin": "(\\b[bBuU])([fF])((['\"]))", + "end": "(\\3)|((?<!\\\\)\\n)", + "beginCaptures": { + "1": { + "name": "invalid.illegal.prefix.python" + }, + "2": { + "name": "string.interpolated.python string.quoted.single.python storage.type.string.python" + }, + "3": { + "name": "punctuation.definition.string.begin.python string.quoted.single.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python string.interpolated.python string.quoted.single.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#fstring-guts" + }, + { + "include": "#fstring-illegal-single-brace" + }, + { + "include": "#fstring-single-brace" + }, + { + "include": "#fstring-single-core" + } + ] + }, + "fstring-raw-quoted-single-line": { + "name": "meta.fstring.python", + "begin": "(\\b(?:[rR][fF]|[fF][rR]))((['\"]))", + "end": "(\\2)|((?<!\\\\)\\n)", + "beginCaptures": { + "1": { + "name": "string.interpolated.python string.quoted.raw.single.python storage.type.string.python" + }, + "2": { + "name": "punctuation.definition.string.begin.python string.quoted.raw.single.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python string.interpolated.python string.quoted.raw.single.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#fstring-raw-guts" + }, + { + "include": "#fstring-illegal-single-brace" + }, + { + "include": "#fstring-single-brace" + }, + { + "include": "#fstring-raw-single-core" + } + ] + }, + "fstring-single-core": { + "name": "string.interpolated.python string.quoted.single.python", + "match": "(?x)\n (.+?)\n (\n (?# .* and .*? in multi-line match need special handling of\n newlines otherwise SublimeText and Atom will match slightly\n differently.\n\n The guard for newlines has to be separate from the\n lookahead because of special $ matching rule.)\n ($\\n?)\n |\n (?=[\\\\\\}\\{]|(['\"])|((?<!\\\\)\\n))\n )\n (?# due to how multiline regexps are matched we need a special case\n for matching a newline character)\n | \\n\n" + }, + "fstring-raw-single-core": { + "name": "string.interpolated.python string.quoted.raw.single.python", + "match": "(?x)\n (.+?)\n (\n (?# .* and .*? in multi-line match need special handling of\n newlines otherwise SublimeText and Atom will match slightly\n differently.\n\n The guard for newlines has to be separate from the\n lookahead because of special $ matching rule.)\n ($\\n?)\n |\n (?=[\\\\\\}\\{]|(['\"])|((?<!\\\\)\\n))\n )\n (?# due to how multiline regexps are matched we need a special case\n for matching a newline character)\n | \\n\n" + }, + "fstring-single-brace": { + "comment": "value interpolation using { ... }", + "begin": "(\\{)", + "end": "(?x)\n (\\})|(?=\\n)\n", + "beginCaptures": { + "1": { + "name": "constant.character.format.placeholder.other.python" + } + }, + "endCaptures": { + "1": { + "name": "constant.character.format.placeholder.other.python" + } + }, + "patterns": [ + { + "include": "#fstring-terminator-single" + }, + { + "include": "#f-expression" + } + ] + }, + "fstring-terminator-single": { + "patterns": [ + { + "name": "storage.type.format.python", + "match": "(=(![rsa])?)(?=})" + }, + { + "name": "storage.type.format.python", + "match": "(=?![rsa])(?=})" + }, + { + "match": "(?x)\n ( (?: =?) (?: ![rsa])? )\n ( : \\w? [<>=^]? [-+ ]? \\#?\n \\d* ,? (\\.\\d+)? [bcdeEfFgGnosxX%]? )(?=})\n", + "captures": { + "1": { + "name": "storage.type.format.python" + }, + "2": { + "name": "storage.type.format.python" + } + } + }, + { + "include": "#fstring-terminator-single-tail" + } + ] + }, + "fstring-terminator-single-tail": { + "begin": "((?:=?)(?:![rsa])?)(:)(?=.*?{)", + "end": "(?=})|(?=\\n)", + "beginCaptures": { + "1": { + "name": "storage.type.format.python" + }, + "2": { + "name": "storage.type.format.python" + } + }, + "patterns": [ + { + "include": "#fstring-illegal-single-brace" + }, + { + "include": "#fstring-single-brace" + }, + { + "name": "storage.type.format.python", + "match": "([bcdeEfFgGnosxX%])(?=})" + }, + { + "name": "storage.type.format.python", + "match": "(\\.\\d+)" + }, + { + "name": "storage.type.format.python", + "match": "(,)" + }, + { + "name": "storage.type.format.python", + "match": "(\\d+)" + }, + { + "name": "storage.type.format.python", + "match": "(\\#)" + }, + { + "name": "storage.type.format.python", + "match": "([-+ ])" + }, + { + "name": "storage.type.format.python", + "match": "([<>=^])" + }, + { + "name": "storage.type.format.python", + "match": "(\\w)" + } + ] + }, + "fstring-fnorm-quoted-multi-line": { + "name": "meta.fstring.python", + "begin": "(\\b[fF])([bBuU])?('''|\"\"\")", + "end": "(\\3)", + "beginCaptures": { + "1": { + "name": "string.interpolated.python string.quoted.multi.python storage.type.string.python" + }, + "2": { + "name": "invalid.illegal.prefix.python" + }, + "3": { + "name": "punctuation.definition.string.begin.python string.interpolated.python string.quoted.multi.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python string.interpolated.python string.quoted.multi.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#fstring-guts" + }, + { + "include": "#fstring-illegal-multi-brace" + }, + { + "include": "#fstring-multi-brace" + }, + { + "include": "#fstring-multi-core" + } + ] + }, + "fstring-normf-quoted-multi-line": { + "name": "meta.fstring.python", + "begin": "(\\b[bBuU])([fF])('''|\"\"\")", + "end": "(\\3)", + "beginCaptures": { + "1": { + "name": "invalid.illegal.prefix.python" + }, + "2": { + "name": "string.interpolated.python string.quoted.multi.python storage.type.string.python" + }, + "3": { + "name": "punctuation.definition.string.begin.python string.quoted.multi.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python string.interpolated.python string.quoted.multi.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#fstring-guts" + }, + { + "include": "#fstring-illegal-multi-brace" + }, + { + "include": "#fstring-multi-brace" + }, + { + "include": "#fstring-multi-core" + } + ] + }, + "fstring-raw-quoted-multi-line": { + "name": "meta.fstring.python", + "begin": "(\\b(?:[rR][fF]|[fF][rR]))('''|\"\"\")", + "end": "(\\2)", + "beginCaptures": { + "1": { + "name": "string.interpolated.python string.quoted.raw.multi.python storage.type.string.python" + }, + "2": { + "name": "punctuation.definition.string.begin.python string.quoted.raw.multi.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python string.interpolated.python string.quoted.raw.multi.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#fstring-raw-guts" + }, + { + "include": "#fstring-illegal-multi-brace" + }, + { + "include": "#fstring-multi-brace" + }, + { + "include": "#fstring-raw-multi-core" + } + ] + }, + "fstring-multi-core": { + "name": "string.interpolated.python string.quoted.multi.python", + "match": "(?x)\n (.+?)\n (\n (?# .* and .*? in multi-line match need special handling of\n newlines otherwise SublimeText and Atom will match slightly\n differently.\n\n The guard for newlines has to be separate from the\n lookahead because of special $ matching rule.)\n ($\\n?)\n |\n (?=[\\\\\\}\\{]|'''|\"\"\")\n )\n (?# due to how multiline regexps are matched we need a special case\n for matching a newline character)\n | \\n\n" + }, + "fstring-raw-multi-core": { + "name": "string.interpolated.python string.quoted.raw.multi.python", + "match": "(?x)\n (.+?)\n (\n (?# .* and .*? in multi-line match need special handling of\n newlines otherwise SublimeText and Atom will match slightly\n differently.\n\n The guard for newlines has to be separate from the\n lookahead because of special $ matching rule.)\n ($\\n?)\n |\n (?=[\\\\\\}\\{]|'''|\"\"\")\n )\n (?# due to how multiline regexps are matched we need a special case\n for matching a newline character)\n | \\n\n" + }, + "fstring-multi-brace": { + "comment": "value interpolation using { ... }", + "begin": "(\\{)", + "end": "(?x)\n (\\})\n", + "beginCaptures": { + "1": { + "name": "constant.character.format.placeholder.other.python" + } + }, + "endCaptures": { + "1": { + "name": "constant.character.format.placeholder.other.python" + } + }, + "patterns": [ + { + "include": "#fstring-terminator-multi" + }, + { + "include": "#f-expression" + } + ] + }, + "fstring-terminator-multi": { + "patterns": [ + { + "name": "storage.type.format.python", + "match": "(=(![rsa])?)(?=})" + }, + { + "name": "storage.type.format.python", + "match": "(=?![rsa])(?=})" + }, + { + "match": "(?x)\n ( (?: =?) (?: ![rsa])? )\n ( : \\w? [<>=^]? [-+ ]? \\#?\n \\d* ,? (\\.\\d+)? [bcdeEfFgGnosxX%]? )(?=})\n", + "captures": { + "1": { + "name": "storage.type.format.python" + }, + "2": { + "name": "storage.type.format.python" + } + } + }, + { + "include": "#fstring-terminator-multi-tail" + } + ] + }, + "fstring-terminator-multi-tail": { + "begin": "((?:=?)(?:![rsa])?)(:)(?=.*?{)", + "end": "(?=})", + "beginCaptures": { + "1": { + "name": "storage.type.format.python" + }, + "2": { + "name": "storage.type.format.python" + } + }, + "patterns": [ + { + "include": "#fstring-illegal-multi-brace" + }, + { + "include": "#fstring-multi-brace" + }, + { + "name": "storage.type.format.python", + "match": "([bcdeEfFgGnosxX%])(?=})" + }, + { + "name": "storage.type.format.python", + "match": "(\\.\\d+)" + }, + { + "name": "storage.type.format.python", + "match": "(,)" + }, + { + "name": "storage.type.format.python", + "match": "(\\d+)" + }, + { + "name": "storage.type.format.python", + "match": "(\\#)" + }, + { + "name": "storage.type.format.python", + "match": "([-+ ])" + }, + { + "name": "storage.type.format.python", + "match": "([<>=^])" + }, + { + "name": "storage.type.format.python", + "match": "(\\w)" + } + ] + } + } +} diff --git a/docs/shiki/languages/narrat.tmLanguage.json b/docs/shiki/languages/narrat.tmLanguage.json new file mode 100644 index 00000000..1b88942a --- /dev/null +++ b/docs/shiki/languages/narrat.tmLanguage.json @@ -0,0 +1,227 @@ +{ + "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", + "name": "narrat", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#expression" + } + ], + "repository": { + "expression": { + "patterns": [ + { + "include": "#keywords" + }, + { + "include": "#commands" + }, + { + "include": "#operators" + }, + { + "include": "#primitives" + }, + { + "include": "#strings" + }, + { + "include": "#paren-expression" + } + ] + }, + "keywords": { + "patterns": [ + { + "name": "keyword.control.narrat", + "match": "\\b(if|else|choice)\\b" + }, + { + "name": "variable.value.narrat", + "match": "\\$[\\w|\\.]+\\b" + }, + { + "name": "entity.name.function.narrat", + "match": "(?x) # Ignore comments\n ^\\w+ # Find label name\n (?=(\\s|\\w)*:) # Positive lookahead for ':'\n" + }, + { + "name": "invalid.label.narrat", + "match": "(?x) # Ignore comments\n ^\\w+ # Find label name\n (?!(\\s|\\w)*:) # Negative lookahead for ':'\n" + }, + { + "name": "entity.other.attribute-name", + "match": "(?<=\\w)[^^](\\b\\w+\\b)(?=(\\s|\\w)*:)" + } + ] + }, + "commands": { + "patterns": [ + { + "name": "keyword.commands.variables.narrat", + "match": "\\b(set|var)\\b" + }, + { + "name": "keyword.commands.text.narrat", + "match": "\\b(talk|think)\\b" + }, + { + "name": "keyword.commands.flow.narrat", + "match": "\\b(jump|run|wait|return|save|save_prompt)" + }, + { + "name": "keyword.commands.helpers.narrat", + "match": "\\b(log|clear_dialog)\\b" + }, + { + "name": "keyword.commands.screens.narrat", + "match": "\\b(set_screen|empty_layer|set_button)" + }, + { + "name": "keyword.commands.audio.narrat", + "match": "\\b(play|pause|stop)\\b" + }, + { + "name": "keyword.commands.notifications.narrat", + "match": "\\b(notify|enable_notifications|disable_notifications)\\b" + }, + { + "name": "keyword.commands.stats.narrat", + "match": "\\b(set_stat|get_stat_value|add_stat)" + }, + { + "name": "keyword.commands.math.narrat", + "match": "\\b(neg|abs|random|random_float|random_from_args|min|max|clamp|floor|round|ceil|sqrt|^)\\b" + }, + { + "name": "keyword.commands.string.narrat", + "match": "\\b(concat|join)\\b" + }, + { + "name": "keyword.commands.text_field.narrat", + "match": "\\b(text_field)\\b" + }, + { + "name": "keyword.commands.skills.narrat", + "match": "\\b(add_level|set_level|add_xp|roll|get_level|get_xp)\\b" + }, + { + "name": "keyword.commands.inventory.narrat", + "match": "\\b(add_item|remove_item|enable_interaction|disable_interaction|has_item?|item_amount?)" + }, + { + "name": "keyword.commands.quests.narrat", + "match": "\\b(start_quest|start_objective|complete_objective|complete_quest|quest_started?|objective_started?|quest_completed?|objective_completed?)" + } + ] + }, + "operators": { + "patterns": [ + { + "name": "keyword.operator.logic.narrat", + "match": "(&&|\\|\\||!=|==|>=|<=|<|>|!|\\?)\\s" + }, + { + "name": "keyword.operator.arithmetic.narrat", + "match": "(\\+|-|\\*|\\/)\\s" + } + ] + }, + "interpolation": { + "patterns": [ + { + "name": "variable.interpolation.narrat", + "match": "(\\w|\\.)+" + } + ] + }, + "strings": { + "name": "string.quoted.double.narrat", + "begin": "\"", + "end": "\"", + "patterns": [ + { + "name": "constant.character.escape.narrat", + "match": "\\\\." + }, + { + "name": "expression.template", + "begin": "%{", + "end": "}", + "beginCaptures": { + "0": { + "name": "punctuation.template.open" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.template.close.narrat" + } + }, + "patterns": [ + { + "include": "#expression" + }, + { + "include": "#interpolation" + } + ] + } + ] + }, + "paren-expression": { + "begin": "\\(", + "end": "\\)", + "beginCaptures": { + "0": { + "name": "punctuation.paren.open" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.paren.close" + } + }, + "name": "expression.group", + "patterns": [ + { + "include": "#expression" + } + ] + }, + "primitives": { + "patterns": [ + { + "name": "constant.numeric.narrat", + "match": "\\b\\d+\\b" + }, + { + "name": "constant.language.true.narrat", + "match": "\\btrue\\b" + }, + { + "name": "constant.language.false.narrat", + "match": "\\bfalse\\b" + }, + { + "name": "constant.language.null.narrat", + "match": "\\bnull\\b" + }, + { + "name": "constant.language.undefined.narrat", + "match": "\\bundefined\\b" + } + ] + }, + "comments": { + "patterns": [ + { + "name": "comment.line.narrat", + "match": "\\/\\/.*$" + } + ] + } + }, + "scopeName": "source.narrat" +} diff --git a/docs/shiki/languages/nextflow.tmLanguage.json b/docs/shiki/languages/nextflow.tmLanguage.json new file mode 100644 index 00000000..dee964a3 --- /dev/null +++ b/docs/shiki/languages/nextflow.tmLanguage.json @@ -0,0 +1,299 @@ +{ + "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", + "name": "nextflow", + "scopeName": "source.nextflow", + "keyEquivalent": "^~N", + "patterns": [ + { + "include": "#nfl-rules" + } + ], + "repository": { + "nfl-rules": { + "patterns": [ + { + "include": "#process-def" + }, + { + "include": "#workflow-def" + }, + { + "include": "#code-block" + }, + { + "include": "#include-statement" + }, + { + "include": "#implicit-variables" + }, + { + "comment": "method call and parens", + "begin": "(\\w*\\()", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "source.nextflow-groovy" + } + ] + } + }, + "end": "\\)", + "patterns": [ + { + "include": "#nfl-rules" + } + ] + }, + { + "comment": "braces", + "begin": "{", + "end": "}", + "patterns": [ + { + "include": "#nfl-rules" + } + ] + }, + { + "include": "source.nextflow-groovy" + } + ] + }, + "process-def": { + "name": "process.nextflow", + "begin": "^\\s*(process)\\s+(\\w+|\"[^\"]+\"|'[^']+')\\s*{", + "beginCaptures": { + "1": { + "name": "keyword.nextflow" + }, + "2": { + "name": "function.nextflow" + } + }, + "end": "}", + "patterns": [ + { + "include": "#process-body" + } + ] + }, + "process-body": { + "patterns": [ + { + "name": "entity.name.function.nextflow", + "match": "(?:accelerator|afterScript|beforeScript|cache|cpus|conda|container|containerOptions|clusterOptions|debug|disk|echo|errorStrategy|executor|ext|label|machineType|maxErrors|maxForks|maxRetries|memory|module|penv|pod|publishDir|queue|resourceLabels|scratch|stageInMode|stageOutMode|storeDir|tag|time)\\b" + }, + { + "name": "constant.block.nextflow", + "match": "(?:input|output|when|script|shell|exec):" + }, + { + "name": "entity.name.function.nextflow", + "match": "\\b(tuple|set|path|file|val|stdout)(\\(|\\s)" + }, + { + "include": "#implicit-variables" + }, + { + "comment": "method call and parens", + "begin": "(\\w*\\()", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "source.nextflow-groovy" + } + ] + } + }, + "end": "\\)", + "patterns": [ + { + "include": "#process-body" + } + ] + }, + { + "comment": "braces", + "begin": "{", + "end": "}", + "patterns": [ + { + "include": "#process-body" + } + ] + }, + { + "include": "source.nextflow-groovy#comments" + }, + { + "include": "source.nextflow-groovy#support-functions" + }, + { + "include": "source.nextflow-groovy#keyword" + }, + { + "include": "source.nextflow-groovy#values" + }, + { + "include": "source.nextflow-groovy#anonymous-classes-and-new" + }, + { + "include": "source.nextflow-groovy#types" + }, + { + "include": "source.nextflow-groovy#parens" + }, + { + "include": "source.nextflow-groovy#closures" + }, + { + "include": "source.nextflow-groovy#braces" + } + ] + }, + "workflow-def": { + "name": "workflow.nextflow", + "begin": "^\\s*(workflow)(?:\\s+(\\w+|\"[^\"]+\"|'[^']+'))?\\s*{", + "beginCaptures": { + "1": { + "name": "keyword.nextflow" + }, + "2": { + "name": "constant.nextflow" + } + }, + "end": "}", + "patterns": [ + { + "include": "#workflow-body" + } + ] + }, + "workflow-body": { + "patterns": [ + { + "include": "#implicit-variables" + }, + { + "name": "constant.block.nextflow", + "match": "(?:take|main|emit):" + }, + { + "name": "entity.name.function.nextflow", + "match": "(?<=[\\s\\.])(branch|buffer|close|collate|collect|collectFile|combine|concat|count|countBy|cross|distinct|dump|filter|first|flatMap|flatten|groupTuple|ifEmpty|join|last|map|max|merge|min|mix|multiMap|randomSample|reduce|set|splitCsv|splitFasta|splitFastq|splitText|sum|take|tap|toInteger|toList|toSortedList|transpose|unique|until|view)(?=[{\\(\\s])" + }, + { + "comment": "Channel factory single line", + "match": "\\b((?:C|c)hannel\\.)((fromList|fromPath|fromFilePairs|fromSRA|from|of|empty|value|watchPath)\\W)?", + "captures": { + "1": { + "name": "keyword.nextflow" + }, + "2": { + "name": "entity.name.function.nextflow" + } + } + }, + { + "comment": "Channel factory multi-line", + "begin": "\\b((?:C|c)hannel)\\s*$", + "beginCaptures": { + "1": { + "name": "keyword.nextflow" + } + }, + "end": "(^\\s*)(?:(\\.)(fromList|fromPath|fromFilePairs|fromSRA|from|of|empty|value|watchPath)\\W)?", + "endCaptures": { + "1": { + "name": "keyword.nextflow" + }, + "2": { + "name": "keyword.nextflow" + }, + "3": { + "name": "entity.name.function.nextflow" + } + } + }, + { + "comment": "method call and parens", + "begin": "(\\w*\\()", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "source.nextflow-groovy" + } + ] + } + }, + "end": "\\)", + "patterns": [ + { + "include": "#workflow-body" + } + ] + }, + { + "comment": "braces", + "begin": "{", + "end": "}", + "patterns": [ + { + "include": "#workflow-body" + } + ] + }, + { + "include": "source.nextflow-groovy#comments" + }, + { + "include": "source.nextflow-groovy#support-functions" + }, + { + "include": "source.nextflow-groovy#keyword" + }, + { + "include": "source.nextflow-groovy#values" + }, + { + "include": "source.nextflow-groovy#anonymous-classes-and-new" + }, + { + "include": "source.nextflow-groovy#types" + }, + { + "include": "source.nextflow-groovy#parens" + }, + { + "include": "source.nextflow-groovy#closures" + }, + { + "include": "source.nextflow-groovy#braces" + } + ] + }, + "include-statement": { + "patterns": [ + { + "match": "^\\b(include)\\b", + "name": "keyword.nextflow" + }, + { + "match": "\\b(from)\\b", + "name": "keyword.nextflow" + } + ] + }, + "implicit-variables": { + "patterns": [ + { + "match": "(?<=[^\\.\\w]|^)(params|nextflow|workflow|launchDir|moduleDir|projectDir|workDir)\\b", + "name": "variable.language.nextflow" + } + ] + } + } +} diff --git a/docs/shiki/languages/nginx.tmLanguage.json b/docs/shiki/languages/nginx.tmLanguage.json new file mode 100644 index 00000000..8ad689e1 --- /dev/null +++ b/docs/shiki/languages/nginx.tmLanguage.json @@ -0,0 +1,2122 @@ +{ + "fileTypes": [ + "conf.erb", + "conf", + "ngx", + "nginx.conf", + "mime.types", + "fastcgi_params", + "scgi_params", + "uwsgi_params" + ], + "foldingStartMarker": "\\{\\s*$", + "foldingStopMarker": "^\\s*\\}", + "keyEquivalent": "^~N", + "name": "nginx", + "patterns": [ + { + "name": "comment.line.number-sign", + "match": "\\#.*" + }, + { + "name": "meta.context.lua.nginx", + "begin": "\\b((?:content|rewrite|access|init_worker|init|set|log|balancer|ssl_(?:client_hello|session_fetch|certificate))_by_lua(?:_block)?)\\s*\\{", + "end": "\\}", + "beginCaptures": { + "1": { + "name": "storage.type.directive.context.nginx" + } + }, + "contentName": "meta.embedded.block.lua", + "patterns": [ + { + "include": "source.lua" + } + ] + }, + { + "name": "meta.context.lua.nginx", + "begin": "\\b((?:content|rewrite|access|init_worker|init|set|log|balancer|ssl_(?:client_hello|session_fetch|certificate))_by_lua)\\s*'", + "end": "'", + "beginCaptures": { + "1": { + "name": "storage.type.directive.context.nginx" + } + }, + "contentName": "meta.embedded.block.lua", + "patterns": [ + { + "include": "source.lua" + } + ] + }, + { + "name": "meta.context.events.nginx", + "begin": "\\b(events) +\\{", + "end": "\\}", + "beginCaptures": { + "1": { + "name": "storage.type.directive.context.nginx" + } + }, + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "name": "meta.context.http.nginx", + "begin": "\\b(http) +\\{", + "end": "\\}", + "beginCaptures": { + "1": { + "name": "storage.type.directive.context.nginx" + } + }, + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "name": "meta.context.mail.nginx", + "begin": "\\b(mail) +\\{", + "end": "\\}", + "beginCaptures": { + "1": { + "name": "storage.type.directive.context.nginx" + } + }, + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "name": "meta.context.stream.nginx", + "begin": "\\b(stream) +\\{", + "end": "\\}", + "beginCaptures": { + "1": { + "name": "storage.type.directive.context.nginx" + } + }, + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "name": "meta.context.server.nginx", + "begin": "\\b(server) +\\{", + "end": "\\}", + "beginCaptures": { + "1": { + "name": "storage.type.directive.context.nginx" + } + }, + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "name": "meta.context.location.nginx", + "begin": "\\b(location) +([\\^]?~[\\*]?|=) +(.*?)\\{", + "end": "\\}", + "beginCaptures": { + "1": { + "name": "storage.type.directive.context.nginx" + }, + "2": { + "name": "keyword.operator.nginx" + }, + "3": { + "name": "string.regexp.nginx" + } + }, + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "name": "meta.context.location.nginx", + "begin": "\\b(location) +(.*?)\\{", + "end": "\\}", + "beginCaptures": { + "1": { + "name": "storage.type.directive.context.nginx" + }, + "2": { + "name": "entity.name.context.location.nginx" + } + }, + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "name": "meta.context.limit_except.nginx", + "begin": "\\b(limit_except) +\\{", + "end": "\\}", + "beginCaptures": { + "1": { + "name": "storage.type.directive.context.nginx" + } + }, + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "name": "meta.context.if.nginx", + "begin": "\\b(if) +\\(", + "end": "\\)", + "beginCaptures": { + "1": { + "name": "keyword.control.nginx" + } + }, + "patterns": [ + { + "include": "#if_condition" + } + ] + }, + { + "name": "meta.context.upstream.nginx", + "begin": "\\b(upstream) +(.*?)\\{", + "end": "\\}", + "beginCaptures": { + "1": { + "name": "storage.type.directive.context.nginx" + }, + "2": { + "name": "entity.name.context.location.nginx" + } + }, + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "name": "meta.context.types.nginx", + "begin": "\\b(types) +\\{", + "end": "\\}", + "beginCaptures": { + "1": { + "name": "storage.type.directive.context.nginx" + } + }, + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "name": "meta.context.map.nginx", + "begin": "\\b(map) +(\\$)([A-Za-z0-9\\_]+) +(\\$)([A-Za-z0-9\\_]+) *\\{", + "end": "\\}", + "beginCaptures": { + "1": { + "name": "storage.type.directive.context.nginx" + }, + "2": { + "name": "punctuation.definition.variable.nginx" + }, + "3": { + "name": "variable.parameter.nginx" + }, + "4": { + "name": "punctuation.definition.variable.nginx" + }, + "5": { + "name": "variable.other.nginx" + } + }, + "patterns": [ + { + "include": "#values" + }, + { + "name": "punctuation.terminator.nginx", + "match": ";" + }, + { + "name": "comment.line.number-sign", + "match": "\\#.*" + } + ] + }, + { + "name": "meta.block.nginx", + "begin": "\\{", + "end": "\\}", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "begin": "\\b(return)\\b", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.control.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "\\b(rewrite)\\s+", + "end": "(last|break|redirect|permanent)?(;)", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "1": { + "name": "keyword.other.nginx" + }, + "2": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "\\b(server)\\s+", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#server_parameters" + } + ] + }, + { + "begin": "\\b(internal|empty_gif|f4f|flv|hls|mp4|break|status|stub_status|ip_hash|ntlm|least_conn|upstream_conf|least_conn|zone_sync)\\b", + "end": "(;|$)", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.terminator.nginx" + } + } + }, + { + "begin": "([\"'\\s]|^)(accept_)(mutex|mutex_delay)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(debug_)(connection|points)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(error_)(log|page)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(ssl_)(engine|buffer_size|certificate|certificate_key|ciphers|client_certificate|conf_command|crl|dhparam|early_data|ecdh_curve|ocsp|ocsp_cache|ocsp_responder|password_file|prefer_server_ciphers|protocols|reject_handshake|session_cache|session_ticket_key|session_tickets|session_timeout|stapling|stapling_file|stapling_responder|stapling_verify|trusted_certificate|verify_client|verify_depth|alpn|handshake_timeout|preread)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(worker_)(aio_requests|connections|cpu_affinity|priority|processes|rlimit_core|rlimit_nofile|shutdown_timeout)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(auth_)(delay|basic|basic_user_file|jwt|jwt_claim_set|jwt_header_set|jwt_key_file|jwt_key_request|jwt_leeway|jwt_type|jwt_require|request|request_set|http|http_header|http_pass_client_cert|http_timeout)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(client_)(body_buffer_size|body_in_file_only|body_in_single_buffer|body_temp_path|body_timeout|header_buffer_size|header_timeout|max_body_size)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(keepalive_)(disable|requests|time|timeout)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(limit_)(rate|rate_after|conn|conn_dry_run|conn_log_level|conn_status|conn_zone|zone|req|req_dry_run|req_log_level|req_status|req_zone)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(lingering_)(close|time|timeout)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(log_)(not_found|subrequest|format)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(max_)(ranges|errors)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(msie_)(padding|refresh)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(open_)(file_cache|file_cache_errors|file_cache_min_uses|file_cache_valid|log_file_cache)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(send_)(lowat|timeout)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(server_)(name|name_in_redirect|names_hash_bucket_size|names_hash_max_size|tokens)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(tcp_)(nodelay|nopush)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(types_)(hash_bucket_size|hash_max_size)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(variables_)(hash_bucket_size|hash_max_size)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(add_)(before_body|after_body|header|trailer)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(status_)(zone|format)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(autoindex_)(exact_size|format|localtime)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(ancient_)(browser|browser_value)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(modern_)(browser|browser_value)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(charset_)(map|types)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(dav_)(access|methods)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(fastcgi_)(bind|buffer_size|buffering|buffers|busy_buffers_size|cache|cache_background_update|cache_bypass|cache_key|cache_lock|cache_lock_age|cache_lock_timeout|cache_max_range_offset|cache_methods|cache_min_uses|cache_path|cache_purge|cache_revalidate|cache_use_stale|cache_valid|catch_stderr|connect_timeout|force_ranges|hide_header|ignore_client_abort|ignore_headers|index|intercept_errors|keep_conn|limit_rate|max_temp_file_size|next_upstream|next_upstream_timeout|next_upstream_tries|no_cache|param|pass|pass_header|pass_request_body|pass_request_headers|read_timeout|request_buffering|send_lowat|send_timeout|socket_keepalive|split_path_info|store|store_access|temp_file_write_size|temp_path)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(geoip_)(country|city|org|proxy|proxy_recursive)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(grpc_)(bind|buffer_size|connect_timeout|hide_header|ignore_headers|intercept_errors|next_upstream|next_upstream_timeout|next_upstream_tries|pass|pass_header|read_timeout|send_timeout|set_header|socket_keepalive|ssl_certificate|ssl_certificate_key|ssl_ciphers|ssl_conf_command|ssl_crl|ssl_name|ssl_password_file|ssl_protocols|ssl_server_name|ssl_session_reuse|ssl_trusted_certificate|ssl_verify|ssl_verify_depth)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(gzip_)(buffers|comp_level|disable|http_version|min_length|proxied|types|vary|static)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(hls_)(buffers|forward_args|fragment|mp4_buffer_size|mp4_max_buffer_size)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(image_)(filter|filter_buffer|filter_interlace|filter_jpeg_quality|filter_sharpen|filter_transparency|filter_webp_quality)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(map_)(hash_bucket_size|hash_max_size)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(memcached_)(bind|buffer_size|connect_timeout|force_ranges|gzip_flag|next_upstream|next_upstream_timeout|next_upstream_tries|pass|read_timeout|send_timeout|socket_keepalive)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(mp4_)(buffer_size|max_buffer_size|limit_rate|limit_rate_after)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(perl_)(modules|require|set)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(proxy_)(bind|buffer_size|buffering|buffers|busy_buffers_size|cache|cache_background_update|cache_bypass|cache_convert_head|cache_key|cache_lock|cache_lock_age|cache_lock_timeout|cache_max_range_offset|cache_methods|cache_min_uses|cache_path|cache_purge|cache_revalidate|cache_use_stale|cache_valid|connect_timeout|cookie_domain|cookie_flags|cookie_path|force_ranges|headers_hash_bucket_size|headers_hash_max_size|hide_header|http_version|ignore_client_abort|ignore_headers|intercept_errors|limit_rate|max_temp_file_size|method|next_upstream|next_upstream_timeout|next_upstream_tries|no_cache|pass|pass_header|pass_request_body|pass_request_headers|read_timeout|redirect|request_buffering|send_lowat|send_timeout|set_body|set_header|socket_keepalive|ssl_certificate|ssl_certificate_key|ssl_ciphers|ssl_conf_command|ssl_crl|ssl_name|ssl_password_file|ssl_protocols|ssl_server_name|ssl_session_reuse|ssl_trusted_certificate|ssl_verify|ssl_verify_depth|store|store_access|temp_file_write_size|temp_path|buffer|pass_error_message|protocol|smtp_auth|timeout|protocol_timeout|download_rate|half_close|requests|responses|session_drop|ssl|upload_rate)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(real_)(ip_header|ip_recursive)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(referer_)(hash_bucket_size|hash_max_size)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(scgi_)(bind|buffer_size|buffering|buffers|busy_buffers_size|cache|cache_background_update|cache_bypass|cache_key|cache_lock|cache_lock_age|cache_lock_timeout|cache_max_range_offset|cache_methods|cache_min_uses|cache_path|cache_purge|cache_revalidate|cache_use_stale|cache_valid|connect_timeout|force_ranges|hide_header|ignore_client_abort|ignore_headers|intercept_errors|limit_rate|max_temp_file_size|next_upstream|next_upstream_timeout|next_upstream_tries|no_cache|param|pass|pass_header|pass_request_body|pass_request_headers|read_timeout|request_buffering|send_timeout|socket_keepalive|store|store_access|temp_file_write_size|temp_path)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(secure_)(link|link_md5|link_secret)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(session_)(log|log_format|log_zone)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(spdy_)(chunk_size|headers_comp)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(ssi_)(last_modified|min_file_chunk|silent_errors|types|value_length)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(sub_)(filter|filter_last_modified|filter_once|filter_types)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(health_)(check|check_timeout)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(userid_)(domain|expires|flags|mark|name|p3p|path|service)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(uwsgi_)(bind|buffer_size|buffering|buffers|busy_buffers_size|cache|cache_background_update|cache_bypass|cache_key|cache_lock|cache_lock_age|cache_lock_timeout|cache_max_range_offset|cache_methods|cache_min_uses|cache_path|cache_purge|cache_revalidate|cache_use_stale|cache_valid|connect_timeout|force_ranges|hide_header|ignore_client_abort|ignore_headers|intercept_errors|limit_rate|max_temp_file_size|modifier1|modifier2|next_upstream|next_upstream_timeout|next_upstream_tries|no_cache|param|pass|pass_header|pass_request_body|pass_request_headers|read_timeout|request_buffering|send_timeout|socket_keepalive|ssl_certificate|ssl_certificate_key|ssl_ciphers|ssl_conf_command|ssl_crl|ssl_name|ssl_password_file|ssl_protocols|ssl_server_name|ssl_session_reuse|ssl_trusted_certificate|ssl_verify|ssl_verify_depth|store|store_access|temp_file_write_size|temp_path)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(http2_)(body_preread_size|chunk_size|idle_timeout|max_concurrent_pushes|max_concurrent_streams|max_field_size|max_header_size|max_requests|push|push_preload|recv_buffer_size|recv_timeout)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(xslt_)(last_modified|param|string_param|stylesheet|types)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(imap_)(auth|capabilities|client_buffer)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(pop3_)(auth|capabilities)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(smtp_)(auth|capabilities|client_buffer|greeting_delay)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(preread_)(buffer_size|timeout)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(zone_)(sync_buffers|sync_connect_retry_interval|sync_connect_timeout|sync_interval|sync_recv_buffer_size|sync_server|sync_ssl|sync_ssl_certificate|sync_ssl_certificate_key|sync_ssl_ciphers|sync_ssl_conf_command|sync_ssl_crl|sync_ssl_name|sync_ssl_password_file|sync_ssl_protocols|sync_ssl_server_name|sync_ssl_trusted_certificate|sync_ssl_verify|sync_ssl_verify_depth|sync_timeout)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(js_)(body_filter|content|fetch_ciphers|fetch_protocols|fetch_trusted_certificate|fetch_verify_depth|header_filter|import|include|path|set|var|access|filter|preread)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + }, + "4": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "([\"'\\s]|^)(daemon|env|include|pid|use|user|aio|alias|directio|etag|listen|resolver|root|satisfy|sendfile|allow|deny|api|autoindex|charset|geo|gunzip|gzip|expires|index|keyval|mirror|perl|set|slice|ssi|ssl|zone|state|hash|keepalive|queue|random|sticky|match|userid|protocol|timeout|xclient|starttls|load_module|lock_file|master_process|multi_accept|pcre_jit|thread_pool|timer_resolution|working_directory|absolute_redirect|aio_write|chunked_transfer_encoding|connection_pool_size|default_type|directio_alignment|disable_symlinks|if_modified_since|ignore_invalid_headers|large_client_header_buffers|merge_slashes|output_buffers|port_in_redirect|postpone_output|read_ahead|recursive_error_pages|request_pool_size|reset_timedout_connection|resolver_timeout|sendfile_max_chunk|subrequest_output_buffer_size|try_files|underscores_in_headers|addition_types|override_charset|source_charset|create_full_put_path|min_delete_depth|f4f_buffer_size|gunzip_buffers|keyval_zone|access_log|mirror_request_body|random_index|set_real_ip_from|valid_referers|rewrite_log|uninitialized_variable_warn|split_clients|least_time|sticky_cookie_insert|xml_entities|google_perftools_profiles)([\"'\\s]|$)", + "end": ";", + "beginCaptures": { + "1": { + "name": "keyword.directive.nginx" + }, + "2": { + "name": "keyword.directive.nginx" + }, + "3": { + "name": "keyword.directive.nginx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "\\b([a-zA-Z0-9\\_]+)\\s+", + "end": "(;|$)", + "beginCaptures": { + "1": { + "name": "keyword.directive.unknown.nginx" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + }, + { + "begin": "\\b([a-z]+\\/[A-Za-z0-9\\-\\.\\+]+)\\b", + "end": "(;)", + "beginCaptures": { + "1": { + "name": "constant.other.mediatype.nginx" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.terminator.nginx" + } + }, + "patterns": [ + { + "include": "#values" + } + ] + } + ], + "repository": { + "if_condition": { + "patterns": [ + { + "include": "#variables" + }, + { + "name": "keyword.operator.nginx", + "match": "\\!?\\~\\*?\\s" + }, + { + "name": "keyword.operator.nginx", + "match": "\\!?\\-[fdex]\\s" + }, + { + "name": "keyword.operator.nginx", + "match": "\\!?=[^=]" + }, + { + "include": "#regexp_and_string" + } + ] + }, + "server_parameters": { + "patterns": [ + { + "match": "(?:^|\\s)(weight|max_conn|max_fails|fail_timeout|slow_start)(=)([0-9][0-9\\.]*[bBkKmMgGtTsShHdD]?)(?:\\s|;|$)", + "captures": { + "1": { + "name": "variable.parameter.nginx" + }, + "2": { + "name": "keyword.operator.nginx" + }, + "3": { + "name": "constant.numeric.nginx" + } + } + }, + { + "include": "#values" + } + ] + }, + "variables": { + "patterns": [ + { + "match": "(\\$)([A-Za-z0-9\\_]+)\\b", + "captures": { + "1": { + "name": "punctuation.definition.variable.nginx" + }, + "2": { + "name": "variable.other.nginx" + } + } + }, + { + "match": "(\\$\\{)([A-Za-z0-9\\_]+)(\\})", + "captures": { + "1": { + "name": "punctuation.definition.variable.nginx" + }, + "2": { + "name": "variable.other.nginx" + }, + "3": { + "name": "punctuation.definition.variable.nginx" + } + } + } + ] + }, + "regexp_and_string": { + "patterns": [ + { + "name": "string.regexp.nginx", + "match": "\\^.*?\\$" + }, + { + "name": "string.quoted.double.nginx", + "begin": "\"", + "end": "\"", + "patterns": [ + { + "name": "constant.character.escape.nginx", + "match": "\\\\[\"'nt\\\\]" + }, + { + "include": "#variables" + } + ] + }, + { + "name": "string.quoted.single.nginx", + "begin": "'", + "end": "'", + "patterns": [ + { + "name": "constant.character.escape.nginx", + "match": "\\\\[\"'nt\\\\]" + }, + { + "include": "#variables" + } + ] + } + ] + }, + "values": { + "patterns": [ + { + "include": "#variables" + }, + { + "name": "comment.line.number-sign", + "match": "\\#.*" + }, + { + "match": "[\\t ](=?[0-9][0-9\\.]*[bBkKmMgGtTsShHdD]?)(?=[\\t ;])", + "captures": { + "1": { + "name": "constant.numeric.nginx" + } + } + }, + { + "name": "constant.language.nginx", + "match": "[\\t ](on|off|true|false)(?=[\\t ;])" + }, + { + "name": "constant.language.nginx", + "match": "[\\t ](kqueue|rtsig|epoll|\\/dev\\/poll|select|poll|eventport|max|all|default_server|default|main|crit|error|debug|warn|notice|last)(?=[\\t ;])" + }, + { + "name": "keyword.operator.nginx", + "match": "\\\\.*\\ |\\~\\*|\\~|\\!\\~\\*|\\!\\~" + }, + { + "include": "#regexp_and_string" + } + ] + } + }, + "scopeName": "source.nginx", + "uuid": "0C04066A-12D2-43CA-8238-00A12CE4C12D" +} diff --git a/docs/shiki/languages/nim.tmLanguage.json b/docs/shiki/languages/nim.tmLanguage.json new file mode 100644 index 00000000..02d291db --- /dev/null +++ b/docs/shiki/languages/nim.tmLanguage.json @@ -0,0 +1,1521 @@ +{ + "fileTypes": ["nim"], + "keyEquivalent": "^~N", + "name": "nim", + "patterns": [ + { + "begin": "[ \\t]*##\\[", + "contentName": "comment.block.doc-comment.content.nim", + "end": "\\]##", + "name": "comment.block.doc-comment.nim", + "patterns": [ + { + "include": "#multilinedoccomment", + "name": "comment.block.doc-comment.nested.nim" + } + ] + }, + { + "begin": "[ \\t]*#\\[", + "contentName": "comment.block.content.nim", + "end": "\\]#", + "name": "comment.block.nim", + "patterns": [ + { + "include": "#multilinecomment", + "name": "comment.block.nested.nim" + } + ] + }, + { + "begin": "(^[ \\t]+)?(?=##)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.nim" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": "##", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.nim" + } + }, + "end": "\\n", + "name": "comment.line.number-sign.doc-comment.nim" + } + ] + }, + { + "begin": "(^[ \\t]+)?(?=#[^\\[])", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.nim" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": "#", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.nim" + } + }, + "end": "\\n", + "name": "comment.line.number-sign.nim" + } + ] + }, + { + "comment": "A nim procedure or method", + "name": "meta.proc.nim", + "patterns": [ + { + "begin": "\\b(proc|method|template|macro|iterator|converter|func)\\s+\\`?([^\\:\\{\\s\\`\\*\\(]*)\\`?(\\s*\\*)?\\s*(?=\\(|\\=|:|\\[|\\n|\\{)", + "captures": { + "1": { + "name": "keyword.other" + }, + "2": { + "name": "entity.name.function.nim" + }, + "3": { + "name": "keyword.control.export" + } + }, + "end": "\\)", + "patterns": [ + { + "include": "source.nim" + } + ] + } + ] + }, + { + "begin": "discard \"\"\"", + "comment": "A discarded triple string literal comment", + "end": "\"\"\"(?!\")", + "name": "comment.line.discarded.nim" + }, + { + "include": "#float_literal" + }, + { + "include": "#integer_literal" + }, + { + "comment": "Operator as function name", + "match": "(?<=\\`)[^\\` ]+(?=\\`)", + "name": "entity.name.function.nim" + }, + { + "captures": { + "1": { + "name": "keyword.control.export" + } + }, + "comment": "Export qualifier.", + "match": "\\b\\s*(\\*)(?:\\s*(?=[,:])|\\s+(?=[=]))" + }, + { + "comment": "Export qualifier following a type def.", + "match": "\\b([A-Z]\\w+)(\\*)", + "captures": { + "1": { + "name": "support.type.nim" + }, + "2": { + "name": "keyword.control.export" + } + } + }, + { + "include": "#string_literal" + }, + { + "comment": "Language Constants.", + "match": "\\b(true|false|Inf|NegInf|NaN|nil)\\b", + "name": "constant.language.nim" + }, + { + "comment": "Keywords that affect program control flow or scope.", + "match": "\\b(block|break|case|continue|do|elif|else|end|except|finally|for|if|raise|return|try|when|while|yield)\\b", + "name": "keyword.control.nim" + }, + { + "comment": "Keyword boolean operators for expressions.", + "match": "(\\b(and|in|is|isnot|not|notin|or|xor)\\b)", + "name": "keyword.boolean.nim" + }, + { + "comment": "Generic operators for expressions.", + "match": "(=|\\+|-|\\*|/|<|>|@|\\$|~|&|%|!|\\?|\\^|\\.|:|\\\\)+", + "name": "keyword.operator.nim" + }, + { + "comment": "Other keywords.", + "match": "(\\b(addr|as|asm|atomic|bind|cast|const|converter|concept|defer|discard|distinct|div|enum|export|from|import|include|let|mod|mixin|object|of|ptr|ref|shl|shr|static|type|using|var|tuple|iterator|macro|func|method|proc|template)\\b)", + "name": "keyword.other.nim" + }, + { + "comment": "Invalid and unused keywords.", + "match": "(\\b(generic|interface|lambda|out|shared)\\b)", + "name": "invalid.illegal.invalid-keyword.nim" + }, + { + "comment": "Common functions", + "match": "\\b(new|await|assert|echo|defined|declared|newException|countup|countdown|high|low)\\b", + "name": "keyword.other.common.function.nim" + }, + { + "comment": "Built-in, concrete types.", + "match": "\\b(((uint|int)(8|16|32|64)?)|float(32|64)?|bool|string|auto|cstring|char|byte|tobject|typedesc|stmt|expr|any|untyped|typed)\\b", + "name": "storage.type.concrete.nim" + }, + { + "comment": "Built-in, generic types.", + "match": "\\b(range|array|seq|set|pointer)\\b", + "name": "storage.type.generic.nim" + }, + { + "comment": "Special types.", + "match": "\\b(openarray|varargs|void)\\b", + "name": "storage.type.generic.nim" + }, + { + "comment": "Other constants.", + "match": "\\b[A-Z][A-Z0-9_]+\\b", + "name": "support.constant.nim" + }, + { + "comment": "Other types.", + "match": "\\b[A-Z]\\w+\\b", + "name": "support.type.nim" + }, + { + "comment": "Function call.", + "match": "\\b\\w+\\b(?=(\\[([a-zA-Z0-9_,]|\\s)+\\])?\\()", + "name": "support.function.any-method.nim" + }, + { + "comment": "Function call (no parenthesis).", + "match": "(?!(openarray|varargs|void|range|array|seq|set|pointer|new|await|assert|echo|defined|declared|newException|countup|countdown|high|low|((uint|int)(8|16|32|64)?)|float(32|64)?|bool|string|auto|cstring|char|byte|tobject|typedesc|stmt|expr|any|untyped|typed|addr|as|asm|atomic|bind|cast|const|converter|concept|defer|discard|distinct|div|enum|export|from|import|include|let|mod|mixin|object|of|ptr|ref|shl|shr|static|type|using|var|tuple|iterator|macro|func|method|proc|template|and|in|is|isnot|not|notin|or|xor|proc|method|template|macro|iterator|converter|func|true|false|Inf|NegInf|NaN|nil|block|break|case|continue|do|elif|else|end|except|finally|for|if|raise|return|try|when|while|yield)\\b)\\w+\\s+(?!(and|in|is|isnot|not|notin|or|xor|[^a-zA-Z0-9_\"'`(-+]+)\\b)(?=[a-zA-Z0-9_\"'`(-+])", + "name": "support.function.any-method.nim" + }, + { + "begin": "(^\\s*)?(?=\\{\\.emit: ?\"\"\")", + "beginCaptures": { + "0": { + "name": "punctuation.whitespace.embedded.leading.nim" + } + }, + "end": "(?!\\G)(\\s*$\\n?)?", + "endCaptures": { + "0": { + "name": "punctuation.whitespace.embedded.trailing.nim" + } + }, + "patterns": [ + { + "begin": "\\{\\.(emit:) ?(\"\"\")", + "captures": { + "1": { + "name": "keyword.other.nim" + }, + "2": { + "name": "punctuation.section.embedded.begin.nim" + } + }, + "contentName": "source.c", + "end": "(\")\"\"(?!\")(\\.{0,1}\\})?", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.nim" + }, + "1": { + "name": "source.c" + } + }, + "name": "meta.embedded.block.c", + "patterns": [ + { + "begin": "\\`", + "end": "\\`", + "name": "keyword.operator.nim" + }, + { + "include": "source.c" + } + ] + } + ] + }, + { + "begin": "\\{\\.", + "beginCaptures": { + "0": { + "name": "punctuation.pragma.start.nim" + } + }, + "end": "\\.?\\}", + "endCaptures": { + "0": { + "name": "punctuation.pragma.end.nim" + } + }, + "patterns": [ + { + "begin": "\\b([[:alpha:]]\\w*)(?:\\s|\\s*:)", + "beginCaptures": { + "1": { + "name": "meta.preprocessor.pragma.nim" + } + }, + "end": "(?=\\.?\\}|,)", + "patterns": [ + { + "include": "source.nim" + } + ] + }, + { + "begin": "\\b([[:alpha:]]\\w*)\\(", + "beginCaptures": { + "1": { + "name": "meta.preprocessor.pragma.nim" + } + }, + "end": "\\)", + "patterns": [ + { + "include": "source.nim" + } + ] + }, + { + "match": "\\b([[:alpha:]]\\w*)(?=\\.?\\}|,)", + "captures": { + "1": { + "name": "meta.preprocessor.pragma.nim" + } + } + }, + { + "begin": "\\b([[:alpha:]]\\w*)(\"\"\")", + "beginCaptures": { + "1": { + "name": "meta.preprocessor.pragma.nim" + }, + "2": { + "name": "punctuation.definition.string.begin.nim" + } + }, + "end": "\"\"\"(?!\")", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.nim" + } + }, + "name": "string.quoted.triple.raw.nim" + }, + { + "begin": "\\b([[:alpha:]]\\w*)(\")", + "beginCaptures": { + "1": { + "name": "meta.preprocessor.pragma.nim" + }, + "2": { + "name": "punctuation.definition.string.begin.nim" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.nim" + } + }, + "name": "string.quoted.double.raw.nim" + }, + { + "begin": "\\b(hint\\[\\w+\\]):", + "beginCaptures": { + "1": { + "name": "meta.preprocessor.pragma.nim" + } + }, + "end": "(?=\\.?\\}|,)", + "patterns": [ + { + "include": "source.nim" + } + ] + }, + { + "match": ",", + "name": "punctuation.separator.comma.nim" + } + ] + }, + { + "begin": "(^\\s*)?(?=asm \"\"\")", + "beginCaptures": { + "0": { + "name": "punctuation.whitespace.embedded.leading.nim" + } + }, + "end": "(?!\\G)(\\s*$\\n?)?", + "endCaptures": { + "0": { + "name": "punctuation.whitespace.embedded.trailing.nim" + } + }, + "patterns": [ + { + "begin": "(asm) (\"\"\")", + "captures": { + "1": { + "name": "keyword.other.nim" + }, + "2": { + "name": "punctuation.section.embedded.begin.nim" + } + }, + "contentName": "source.asm", + "end": "(\")\"\"(?!\")", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.nim" + }, + "1": { + "name": "source.asm" + } + }, + "name": "meta.embedded.block.asm", + "patterns": [ + { + "begin": "\\`", + "end": "\\`", + "name": "keyword.operator.nim" + }, + { + "include": "source.asm" + } + ] + } + ] + }, + { + "captures": { + "1": { + "name": "storage.type.function.nim" + }, + "2": { + "name": "keyword.operator.nim" + } + }, + "comment": "tmpl specifier", + "match": "(tmpl(i)?)(?=( (html|xml|js|css|glsl|md))?\"\"\")" + }, + { + "begin": "(^\\s*)?(?=html\"\"\")", + "beginCaptures": { + "0": { + "name": "punctuation.whitespace.embedded.leading.nim" + } + }, + "end": "(?!\\G)(\\s*$\\n?)?", + "endCaptures": { + "0": { + "name": "punctuation.whitespace.embedded.trailing.nim" + } + }, + "patterns": [ + { + "begin": "(html)(\"\"\")", + "captures": { + "1": { + "name": "keyword.other.nim" + }, + "2": { + "name": "punctuation.section.embedded.begin.nim" + } + }, + "contentName": "text.html", + "end": "(\")\"\"(?!\")", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.nim" + }, + "1": { + "name": "text.html" + } + }, + "name": "meta.embedded.block.html", + "patterns": [ + { + "begin": "(?<!\\$)(\\$)\\(", + "captures": { + "1": { + "name": "keyword.operator.nim" + } + }, + "end": "\\)", + "patterns": [ + { + "include": "source.nim" + } + ] + }, + { + "begin": "(?<!\\$)(\\$)\\{", + "captures": { + "1": { + "name": "keyword.operator.nim" + }, + "2": { + "name": "keyword.operator.nim" + } + }, + "end": "\\}", + "patterns": [ + { + "include": "source.nim" + } + ] + }, + { + "begin": "(?<!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )", + "captures": { + "1": { + "name": "keyword.operator.nim" + }, + "2": { + "name": "keyword.operator.nim" + } + }, + "end": "(\\{|\\n)", + "endCaptures": { + "1": { + "name": "plain" + } + }, + "patterns": [ + { + "include": "source.nim" + } + ] + }, + { + "match": "(?<!\\$)(\\$\\w+)", + "name": "keyword.operator.nim" + }, + { + "include": "text.html.basic" + } + ] + } + ] + }, + { + "begin": "(^\\s*)?(?=xml\"\"\")", + "beginCaptures": { + "0": { + "name": "punctuation.whitespace.embedded.leading.nim" + } + }, + "end": "(?!\\G)(\\s*$\\n?)?", + "endCaptures": { + "0": { + "name": "punctuation.whitespace.embedded.trailing.nim" + } + }, + "patterns": [ + { + "begin": "(xml)(\"\"\")", + "captures": { + "1": { + "name": "keyword.other.nim" + }, + "2": { + "name": "punctuation.section.embedded.begin.nim" + } + }, + "contentName": "text.xml", + "end": "(\")\"\"(?!\")", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.nim" + }, + "1": { + "name": "text.xml" + } + }, + "name": "meta.embedded.block.xml", + "patterns": [ + { + "begin": "(?<!\\$)(\\$)\\(", + "captures": { + "1": { + "name": "keyword.operator.nim" + } + }, + "end": "\\)", + "patterns": [ + { + "include": "source.nim" + } + ] + }, + { + "begin": "(?<!\\$)(\\$)\\{", + "captures": { + "1": { + "name": "keyword.operator.nim" + }, + "2": { + "name": "keyword.operator.nim" + } + }, + "end": "\\}", + "patterns": [ + { + "include": "source.nim" + } + ] + }, + { + "begin": "(?<!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )", + "captures": { + "1": { + "name": "keyword.operator.nim" + }, + "2": { + "name": "keyword.operator.nim" + } + }, + "end": "(\\{|\\n)", + "endCaptures": { + "1": { + "name": "plain" + } + }, + "patterns": [ + { + "include": "source.nim" + } + ] + }, + { + "match": "(?<!\\$)(\\$\\w+)", + "name": "keyword.operator.nim" + }, + { + "include": "text.xml" + } + ] + } + ] + }, + { + "begin": "(^\\s*)?(?=js\"\"\")", + "beginCaptures": { + "0": { + "name": "punctuation.whitespace.embedded.leading.nim" + } + }, + "end": "(?!\\G)(\\s*$\\n?)?", + "endCaptures": { + "0": { + "name": "punctuation.whitespace.embedded.trailing.nim" + } + }, + "patterns": [ + { + "begin": "(js)(\"\"\")", + "captures": { + "1": { + "name": "keyword.other.nim" + }, + "2": { + "name": "punctuation.section.embedded.begin.nim" + } + }, + "contentName": "source.js", + "end": "(\")\"\"(?!\")", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.nim" + }, + "1": { + "name": "source.js" + } + }, + "name": "meta.embedded.block.js", + "patterns": [ + { + "begin": "(?<!\\$)(\\$)\\(", + "captures": { + "1": { + "name": "keyword.operator.nim" + } + }, + "end": "\\)", + "patterns": [ + { + "include": "source.nim" + } + ] + }, + { + "begin": "(?<!\\$)(\\$)\\{", + "captures": { + "1": { + "name": "keyword.operator.nim" + }, + "2": { + "name": "keyword.operator.nim" + } + }, + "end": "\\}", + "patterns": [ + { + "include": "source.nim" + } + ] + }, + { + "begin": "(?<!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )", + "captures": { + "1": { + "name": "keyword.operator.nim" + }, + "2": { + "name": "keyword.operator.nim" + } + }, + "end": "(\\{|\\n)", + "endCaptures": { + "1": { + "name": "plain" + } + }, + "patterns": [ + { + "include": "source.nim" + } + ] + }, + { + "match": "(?<!\\$)(\\$\\w+)", + "name": "keyword.operator.nim" + }, + { + "include": "source.js" + } + ] + } + ] + }, + { + "begin": "(^\\s*)?(?=css\"\"\")", + "beginCaptures": { + "0": { + "name": "punctuation.whitespace.embedded.leading.nim" + } + }, + "end": "(?!\\G)(\\s*$\\n?)?", + "endCaptures": { + "0": { + "name": "punctuation.whitespace.embedded.trailing.nim" + } + }, + "patterns": [ + { + "begin": "(css)(\"\"\")", + "captures": { + "1": { + "name": "keyword.other.nim" + }, + "2": { + "name": "punctuation.section.embedded.begin.nim" + } + }, + "contentName": "source.css", + "end": "(\")\"\"(?!\")", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.nim" + }, + "1": { + "name": "source.css" + } + }, + "name": "meta.embedded.block.css", + "patterns": [ + { + "begin": "(?<!\\$)(\\$)\\(", + "captures": { + "1": { + "name": "keyword.operator.nim" + } + }, + "end": "\\)", + "patterns": [ + { + "include": "source.nim" + } + ] + }, + { + "begin": "(?<!\\$)(\\$)\\{", + "captures": { + "1": { + "name": "keyword.operator.nim" + }, + "2": { + "name": "keyword.operator.nim" + } + }, + "end": "\\}", + "patterns": [ + { + "include": "source.nim" + } + ] + }, + { + "begin": "(?<!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )", + "captures": { + "1": { + "name": "keyword.operator.nim" + }, + "2": { + "name": "keyword.operator.nim" + } + }, + "end": "(\\{|\\n)", + "endCaptures": { + "1": { + "name": "plain" + } + }, + "patterns": [ + { + "include": "source.nim" + } + ] + }, + { + "match": "(?<!\\$)(\\$\\w+)", + "name": "keyword.operator.nim" + }, + { + "include": "source.css" + } + ] + } + ] + }, + { + "begin": "(^\\s*)?(?=glsl\"\"\")", + "beginCaptures": { + "0": { + "name": "punctuation.whitespace.embedded.leading.nim" + } + }, + "end": "(?!\\G)(\\s*$\\n?)?", + "endCaptures": { + "0": { + "name": "punctuation.whitespace.embedded.trailing.nim" + } + }, + "patterns": [ + { + "begin": "(glsl)(\"\"\")", + "captures": { + "1": { + "name": "keyword.other.nim" + }, + "2": { + "name": "punctuation.section.embedded.begin.nim" + } + }, + "contentName": "source.glsl", + "end": "(\")\"\"(?!\")", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.nim" + }, + "1": { + "name": "source.glsl" + } + }, + "name": "meta.embedded.block.glsl", + "patterns": [ + { + "begin": "(?<!\\$)(\\$)\\(", + "captures": { + "1": { + "name": "keyword.operator.nim" + } + }, + "end": "\\)", + "patterns": [ + { + "include": "source.nim" + } + ] + }, + { + "begin": "(?<!\\$)(\\$)\\{", + "captures": { + "1": { + "name": "keyword.operator.nim" + }, + "2": { + "name": "keyword.operator.nim" + } + }, + "end": "\\}", + "patterns": [ + { + "include": "source.nim" + } + ] + }, + { + "begin": "(?<!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )", + "captures": { + "1": { + "name": "keyword.operator.nim" + }, + "2": { + "name": "keyword.operator.nim" + } + }, + "end": "(\\{|\\n)", + "endCaptures": { + "1": { + "name": "plain" + } + }, + "patterns": [ + { + "include": "source.nim" + } + ] + }, + { + "match": "(?<!\\$)(\\$\\w+)", + "name": "keyword.operator.nim" + }, + { + "include": "source.glsl" + } + ] + } + ] + }, + { + "begin": "(^\\s*)?(?=md\"\"\")", + "beginCaptures": { + "0": { + "name": "punctuation.whitespace.embedded.leading.nim" + } + }, + "end": "(?!\\G)(\\s*$\\n?)?", + "endCaptures": { + "0": { + "name": "punctuation.whitespace.embedded.trailing.nim" + } + }, + "patterns": [ + { + "begin": "(md)(\"\"\")", + "captures": { + "1": { + "name": "keyword.other.nim" + }, + "2": { + "name": "punctuation.section.embedded.begin.nim" + } + }, + "contentName": "text.html.markdown", + "end": "(\")\"\"(?!\")", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.nim" + }, + "1": { + "name": "text.html.markdown" + } + }, + "name": "meta.embedded.block.html.markdown", + "patterns": [ + { + "begin": "(?<!\\$)(\\$)\\(", + "captures": { + "1": { + "name": "keyword.operator.nim" + } + }, + "end": "\\)", + "patterns": [ + { + "include": "source.nim" + } + ] + }, + { + "begin": "(?<!\\$)(\\$)\\{", + "captures": { + "1": { + "name": "keyword.operator.nim" + }, + "2": { + "name": "keyword.operator.nim" + } + }, + "end": "\\}", + "patterns": [ + { + "include": "source.nim" + } + ] + }, + { + "begin": "(?<!\\$)(\\$)(for|while|case|of|when|if|else|elif)( )", + "captures": { + "1": { + "name": "keyword.operator.nim" + }, + "2": { + "name": "keyword.operator.nim" + } + }, + "end": "(\\{|\\n)", + "endCaptures": { + "1": { + "name": "plain" + } + }, + "patterns": [ + { + "include": "source.nim" + } + ] + }, + { + "match": "(?<!\\$)(\\$\\w+)", + "name": "keyword.operator.nim" + }, + { + "include": "text.html.markdown" + } + ] + } + ] + } + ], + "repository": { + "multilinecomment": { + "begin": "#\\[", + "end": "\\]#", + "patterns": [ + { + "include": "#multilinecomment" + } + ] + }, + "multilinedoccomment": { + "begin": "##\\[", + "end": "\\]##", + "patterns": [ + { + "include": "#multilinedoccomment" + } + ] + }, + "char_escapes": { + "patterns": [ + { + "match": "\\\\[cC]|\\\\[rR]", + "name": "constant.character.escape.carriagereturn.nim" + }, + { + "match": "\\\\[lL]|\\\\[nN]", + "name": "constant.character.escape.linefeed.nim" + }, + { + "match": "\\\\[fF]", + "name": "constant.character.escape.formfeed.nim" + }, + { + "match": "\\\\[tT]", + "name": "constant.character.escape.tabulator.nim" + }, + { + "match": "\\\\[vV]", + "name": "constant.character.escape.verticaltabulator.nim" + }, + { + "match": "\\\\\\\"", + "name": "constant.character.escape.double-quote.nim" + }, + { + "match": "\\\\'", + "name": "constant.character.escape.single-quote.nim" + }, + { + "match": "\\\\[0-9]+", + "name": "constant.character.escape.chardecimalvalue.nim" + }, + { + "match": "\\\\[aA]", + "name": "constant.character.escape.alert.nim" + }, + { + "match": "\\\\[bB]", + "name": "constant.character.escape.backspace.nim" + }, + { + "match": "\\\\[eE]", + "name": "constant.character.escape.escape.nim" + }, + { + "match": "\\\\[xX]\\h\\h", + "name": "constant.character.escape.hex.nim" + }, + { + "match": "\\\\\\\\", + "name": "constant.character.escape.backslash.nim" + } + ] + }, + "string_escapes": { + "patterns": [ + { + "match": "\\\\[pP]", + "name": "constant.character.escape.newline.nim" + }, + { + "match": "\\\\[uU]\\h\\h\\h\\h", + "name": "constant.character.escape.hex.nim" + }, + { + "match": "\\\\[uU]\\{\\h+\\}", + "name": "constant.character.escape.hex.nim" + }, + { + "include": "#char_escapes" + } + ] + }, + "raw_string_escapes": { + "match": "[^\"](\"\")", + "captures": { + "1": { + "name": "constant.character.escape.double-quote.nim" + } + } + }, + "fmt_interpolation": { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.template-expression.begin.nim" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.template-expression.end.nim" + } + }, + "patterns": [ + { + "begin": ":", + "end": "(?=\\})", + "name": "meta.template.format-specifier.nim" + }, + { + "include": "source.nim" + } + ], + "name": "meta.template.expression.nim" + }, + "string_literal": { + "patterns": [ + { + "include": "#fmt_string_triple" + }, + { + "include": "#fmt_string_triple_operator" + }, + { + "include": "#extended_string_quoted_triple_raw" + }, + { + "include": "#string_quoted_triple_raw" + }, + { + "include": "#fmt_string_operator" + }, + { + "include": "#fmt_string" + }, + { + "include": "#fmt_string_call" + }, + { + "include": "#string_quoted_double_raw" + }, + { + "include": "#extended_string_quoted_double_raw" + }, + { + "include": "#string_quoted_single" + }, + { + "include": "#string_quoted_triple" + }, + { + "include": "#string_quoted_double" + } + ] + }, + "fmt_string": { + "begin": "\\b(fmt)(\")", + "beginCaptures": { + "1": { + "name": "support.function.any-method.nim" + }, + "2": { + "name": "punctuation.definition.string.begin.nim" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.nim" + } + }, + "name": "string.quoted.double.raw.nim", + "patterns": [ + { + "match": "(?<!\")\"(?!\")", + "name": "invalid.illegal.nim" + }, + { + "include": "#raw_string_escapes" + }, + { + "include": "#fmt_interpolation" + } + ] + }, + "fmt_string_triple": { + "begin": "\\b(fmt)(\"\"\")", + "beginCaptures": { + "1": { + "name": "support.function.any-method.nim" + }, + "2": { + "name": "punctuation.definition.string.begin.nim" + } + }, + "end": "\"\"\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.nim" + } + }, + "name": "string.quoted.triple.raw.nim", + "patterns": [ + { + "include": "#fmt_interpolation" + } + ] + }, + "fmt_string_operator": { + "begin": "(&)(\")", + "beginCaptures": { + "1": { + "name": "keyword.operator.nim" + }, + "2": { + "name": "punctuation.definition.string.begin.nim" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.nim" + } + }, + "name": "string.quoted.double.nim", + "patterns": [ + { + "match": "\"", + "name": "invalid.illegal.nim" + }, + { + "include": "#string_escapes" + }, + { + "include": "#fmt_interpolation" + } + ] + }, + "fmt_string_triple_operator": { + "begin": "(&)(\"\"\")", + "beginCaptures": { + "1": { + "name": "keyword.operator.nim" + }, + "2": { + "name": "punctuation.definition.string.begin.nim" + } + }, + "end": "\"\"\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.nim" + } + }, + "name": "string.quoted.triple.raw.nim", + "patterns": [ + { + "include": "#fmt_interpolation" + } + ] + }, + "fmt_string_call": { + "begin": "(fmt)\\((?=\")", + "beginCaptures": { + "1": { + "name": "support.function.any-method.nim" + } + }, + "end": "\\)", + "patterns": [ + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.nim" + } + }, + "end": "\"(?=\\))", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.nim" + } + }, + "name": "string.quoted.double.nim", + "patterns": [ + { + "match": "\"", + "name": "invalid.illegal.nim" + }, + { + "include": "#string_escapes" + }, + { + "include": "#fmt_interpolation" + } + ] + } + ] + }, + "string_quoted_double": { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.nim" + } + }, + "comment": "Double Quoted String", + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.nim" + } + }, + "name": "string.quoted.double.nim", + "patterns": [ + { + "include": "#string_escapes" + } + ] + }, + "string_quoted_double_raw": { + "begin": "\\br\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.nim" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.nim" + } + }, + "name": "string.quoted.double.raw.nim", + "patterns": [ + { + "include": "#raw_string_escapes" + } + ] + }, + "extended_string_quoted_double_raw": { + "begin": "\\b(\\w+)(\")", + "beginCaptures": { + "1": { + "name": "support.function.any-method.nim" + }, + "2": { + "name": "punctuation.definition.string.begin.nim" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.nim" + } + }, + "name": "string.quoted.double.raw.nim", + "patterns": [ + { + "include": "#raw_string_escapes" + } + ] + }, + "string_quoted_single": { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.nim" + } + }, + "comment": "Single quoted character literal", + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.nim" + } + }, + "name": "string.quoted.single.nim", + "patterns": [ + { + "include": "#char_escapes" + }, + { + "match": "([^']{2,}?)", + "name": "invalid.illegal.character.nim" + } + ] + }, + "string_quoted_triple": { + "begin": "\"\"\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.nim" + } + }, + "comment": "Triple Quoted String", + "end": "\"\"\"(?!\")", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.nim" + } + }, + "name": "string.quoted.triple.nim" + }, + "string_quoted_triple_raw": { + "begin": "r\"\"\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.nim" + } + }, + "comment": "Raw Triple Quoted String", + "end": "\"\"\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.nim" + } + }, + "name": "string.quoted.triple.raw.nim" + }, + "extended_string_quoted_triple_raw": { + "begin": "\\b(\\w+)(\"\"\")", + "beginCaptures": { + "1": { + "name": "support.function.any-method.nim" + }, + "2": { + "name": "punctuation.definition.string.begin.nim" + } + }, + "end": "\"\"\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.nim" + } + }, + "name": "string.quoted.triple.raw.nim" + }, + "float_literal": { + "patterns": [ + { + "match": "\\b\\d[_\\d]*((\\.\\d[_\\d]*([eE][\\+\\-]?\\d[_\\d]*)?)|([eE][\\+\\-]?\\d[_\\d]*))('([fF](32|64|128)|[fFdD]))?", + "name": "constant.numeric.float.decimal.nim" + }, + { + "match": "\\b0[xX]\\h[_\\h]*'([fF](32|64|128)|[fFdD])", + "name": "constant.numeric.float.hexadecimal.nim" + }, + { + "match": "\\b0o[0-7][_0-7]*'([fF](32|64|128)|[fFdD])", + "name": "constant.numeric.float.octal.nim" + }, + { + "match": "\\b0(b|B)[01][_01]*'([fF](32|64|128)|[fFdD])", + "name": "constant.numeric.float.binary.nim" + }, + { + "match": "\\b(\\d[_\\d]*)'([fF](32|64|128)|[fFdD])", + "name": "constant.numeric.float.decimal.nim" + } + ] + }, + "integer_literal": { + "patterns": [ + { + "match": "\\b(0[xX]\\h[_\\h]*)('(([iIuU](8|16|32|64))|[uU]))?", + "name": "constant.numeric.integer.hexadecimal.nim" + }, + { + "match": "\\b(0o[0-7][_0-7]*)('(([iIuU](8|16|32|64))|[uU]))?", + "name": "constant.numeric.integer.octal.nim" + }, + { + "match": "\\b(0(b|B)[01][_01]*)('(([iIuU](8|16|32|64))|[uU]))?", + "name": "constant.numeric.integer.binary.nim" + }, + { + "match": "\\b(\\d[_\\d]*)('(([iIuU](8|16|32|64))|[uU]))?", + "name": "constant.numeric.integer.decimal.nim" + } + ] + } + }, + "scopeName": "source.nim", + "uuid": "6DD62CE8-B129-4554-BD8E-CE5DB490E5A4" +} diff --git a/docs/shiki/languages/nix.tmLanguage.json b/docs/shiki/languages/nix.tmLanguage.json new file mode 100644 index 00000000..103e9964 --- /dev/null +++ b/docs/shiki/languages/nix.tmLanguage.json @@ -0,0 +1,1198 @@ +{ + "fileTypes": ["nix"], + "name": "nix", + "patterns": [ + { + "include": "#expression" + } + ], + "repository": { + "attribute-bind": { + "patterns": [ + { + "include": "#attribute-name" + }, + { + "include": "#attribute-bind-from-equals" + } + ] + }, + "attribute-bind-from-equals": { + "begin": "\\=", + "beginCaptures": { + "0": { + "name": "keyword.operator.bind.nix" + } + }, + "end": "\\;", + "endCaptures": { + "0": { + "name": "punctuation.terminator.bind.nix" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + "attribute-inherit": { + "begin": "\\binherit\\b", + "beginCaptures": { + "0": { + "name": "keyword.other.inherit.nix" + } + }, + "end": "\\;", + "endCaptures": { + "0": { + "name": "punctuation.terminator.inherit.nix" + } + }, + "patterns": [ + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.section.function.arguments.nix" + } + }, + "end": "(?=\\;)", + "patterns": [ + { + "begin": "\\)", + "beginCaptures": { + "0": { + "name": "punctuation.section.function.arguments.nix" + } + }, + "end": "(?=\\;)", + "patterns": [ + { + "include": "#bad-reserved" + }, + { + "include": "#attribute-name-single" + }, + { + "include": "#others" + } + ] + }, + { + "include": "#expression" + } + ] + }, + { + "begin": "(?=[a-zA-Z\\_])", + "end": "(?=\\;)", + "patterns": [ + { + "include": "#bad-reserved" + }, + { + "include": "#attribute-name-single" + }, + { + "include": "#others" + } + ] + }, + { + "include": "#others" + } + ] + }, + "attribute-name": { + "patterns": [ + { + "match": "\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*", + "name": "entity.other.attribute-name.multipart.nix" + }, + { + "match": "\\." + }, + { + "include": "#string-quoted" + }, + { + "include": "#interpolation" + } + ] + }, + "attribute-name-single": { + "match": "\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*", + "name": "entity.other.attribute-name.single.nix" + }, + "attrset-contents": { + "patterns": [ + { + "include": "#attribute-inherit" + }, + { + "include": "#bad-reserved" + }, + { + "include": "#attribute-bind" + }, + { + "include": "#others" + } + ] + }, + "attrset-definition": { + "begin": "(?=\\{)", + "end": "(?=([\\])};,]|\\b(else|then)\\b))", + "patterns": [ + { + "begin": "(\\{)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.attrset.nix" + } + }, + "end": "(\\})", + "endCaptures": { + "0": { + "name": "punctuation.definition.attrset.nix" + } + }, + "patterns": [ + { + "include": "#attrset-contents" + } + ] + }, + { + "begin": "(?<=\\})", + "end": "(?=([\\])};,]|\\b(else|then)\\b))", + "patterns": [ + { + "include": "#expression-cont" + } + ] + } + ] + }, + "attrset-definition-brace-opened": { + "patterns": [ + { + "begin": "(?<=\\})", + "end": "(?=([\\])};,]|\\b(else|then)\\b))", + "patterns": [ + { + "include": "#expression-cont" + } + ] + }, + { + "begin": "(?=.?)", + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.attrset.nix" + } + }, + "patterns": [ + { + "include": "#attrset-contents" + } + ] + } + ] + }, + "attrset-for-sure": { + "patterns": [ + { + "begin": "(?=\\brec\\b)", + "end": "(?=([\\])};,]|\\b(else|then)\\b))", + "patterns": [ + { + "begin": "\\brec\\b", + "beginCaptures": { + "0": { + "name": "keyword.other.nix" + } + }, + "end": "(?=\\{)", + "patterns": [ + { + "include": "#others" + } + ] + }, + { + "include": "#attrset-definition" + }, + { + "include": "#others" + } + ] + }, + { + "begin": "(?=\\{\\s*(\\}|[^,?]*(=|;)))", + "end": "(?=([\\])};,]|\\b(else|then)\\b))", + "patterns": [ + { + "include": "#attrset-definition" + }, + { + "include": "#others" + } + ] + } + ] + }, + "attrset-or-function": { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.attrset-or-function.nix" + } + }, + "end": "(?=([\\])};]|\\b(else|then)\\b))", + "patterns": [ + { + "begin": "(?=(\\s*\\}|\\\"|\\binherit\\b|\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*(\\s*\\.|\\s*=[^=])))", + "end": "(?=([\\])};,]|\\b(else|then)\\b))", + "patterns": [ + { + "include": "#attrset-definition-brace-opened" + } + ] + }, + { + "begin": "(?=(\\.\\.\\.|\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*\\s*[,?]))", + "end": "(?=([\\])};,]|\\b(else|then)\\b))", + "patterns": [ + { + "include": "#function-definition-brace-opened" + } + ] + }, + { + "include": "#bad-reserved" + }, + { + "begin": "\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*", + "beginCaptures": { + "0": { + "name": "variable.parameter.function.maybe.nix" + } + }, + "end": "(?=([\\])};]|\\b(else|then)\\b))", + "patterns": [ + { + "begin": "(?=\\.)", + "end": "(?=([\\])};,]|\\b(else|then)\\b))", + "patterns": [ + { + "include": "#attrset-definition-brace-opened" + } + ] + }, + { + "begin": "\\s*(\\,)", + "beginCaptures": { + "1": { + "name": "keyword.operator.nix" + } + }, + "end": "(?=([\\])};,]|\\b(else|then)\\b))", + "patterns": [ + { + "include": "#function-definition-brace-opened" + } + ] + }, + { + "begin": "(?=\\=)", + "end": "(?=([\\])};,]|\\b(else|then)\\b))", + "patterns": [ + { + "include": "#attribute-bind-from-equals" + }, + { + "include": "#attrset-definition-brace-opened" + } + ] + }, + { + "begin": "(?=\\?)", + "end": "(?=([\\])};,]|\\b(else|then)\\b))", + "patterns": [ + { + "include": "#function-parameter-default" + }, + { + "begin": "\\,", + "beginCaptures": { + "0": { + "name": "keyword.operator.nix" + } + }, + "end": "(?=([\\])};,]|\\b(else|then)\\b))", + "patterns": [ + { + "include": "#function-definition-brace-opened" + } + ] + } + ] + }, + { + "include": "#others" + } + ] + }, + { + "include": "#others" + } + ] + }, + "bad-reserved": { + "match": "\\b(if|then|else|assert|with|let|in|rec|inherit)\\b", + "name": "invalid.illegal.reserved.nix" + }, + "comment": { + "patterns": [ + { + "begin": "/\\*([^*]|\\*[^\\/])*", + "end": "\\*\\/", + "name": "comment.block.nix", + "patterns": [ + { + "include": "#comment-remark" + } + ] + }, + { + "begin": "\\#", + "end": "$", + "name": "comment.line.number-sign.nix", + "patterns": [ + { + "include": "#comment-remark" + } + ] + } + ] + }, + "comment-remark": { + "captures": { + "1": { + "name": "markup.bold.comment.nix" + } + }, + "match": "(TODO|FIXME|BUG|\\!\\!\\!):?" + }, + "constants": { + "patterns": [ + { + "begin": "\\b(builtins|true|false|null)\\b", + "beginCaptures": { + "0": { + "name": "constant.language.nix" + } + }, + "end": "(?=([\\])};,]|\\b(else|then)\\b))", + "patterns": [ + { + "include": "#expression-cont" + } + ] + }, + { + "begin": "\\b(scopedImport|import|isNull|abort|throw|baseNameOf|dirOf|removeAttrs|map|toString|derivationStrict|derivation)\\b", + "beginCaptures": { + "0": { + "name": "support.function.nix" + } + }, + "end": "(?=([\\])};,]|\\b(else|then)\\b))", + "patterns": [ + { + "include": "#expression-cont" + } + ] + }, + { + "begin": "\\b[0-9]+\\b", + "beginCaptures": { + "0": { + "name": "constant.numeric.nix" + } + }, + "end": "(?=([\\])};,]|\\b(else|then)\\b))", + "patterns": [ + { + "include": "#expression-cont" + } + ] + } + ] + }, + "expression": { + "patterns": [ + { + "include": "#parens-and-cont" + }, + { + "include": "#list-and-cont" + }, + { + "include": "#string" + }, + { + "include": "#interpolation" + }, + { + "include": "#with-assert" + }, + { + "include": "#function-for-sure" + }, + { + "include": "#attrset-for-sure" + }, + { + "include": "#attrset-or-function" + }, + { + "include": "#let" + }, + { + "include": "#if" + }, + { + "include": "#operator-unary" + }, + { + "include": "#constants" + }, + { + "include": "#bad-reserved" + }, + { + "include": "#parameter-name-and-cont" + }, + { + "include": "#others" + } + ] + }, + "expression-cont": { + "begin": "(?=.?)", + "end": "(?=([\\])};,]|\\b(else|then)\\b))", + "patterns": [ + { + "include": "#parens" + }, + { + "include": "#list" + }, + { + "include": "#string" + }, + { + "include": "#interpolation" + }, + { + "include": "#function-for-sure" + }, + { + "include": "#attrset-for-sure" + }, + { + "include": "#attrset-or-function" + }, + { + "match": "(\\bor\\b|\\.|==|!=|!|\\<\\=|\\<|\\>\\=|\\>|&&|\\|\\||-\\>|//|\\?|\\+\\+|-|\\*|/(?=([^*]|$))|\\+)", + "name": "keyword.operator.nix" + }, + { + "include": "#constants" + }, + { + "include": "#bad-reserved" + }, + { + "include": "#parameter-name" + }, + { + "include": "#others" + } + ] + }, + "function-body": { + "begin": "(@\\s*([a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*)\\s*)?(\\:)", + "end": "(?=([\\])};,]|\\b(else|then)\\b))", + "patterns": [ + { + "include": "#expression" + } + ] + }, + "function-body-from-colon": { + "begin": "(\\:)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.function.nix" + } + }, + "end": "(?=([\\])};,]|\\b(else|then)\\b))", + "patterns": [ + { + "include": "#expression" + } + ] + }, + "function-contents": { + "patterns": [ + { + "include": "#bad-reserved" + }, + { + "include": "#function-parameter" + }, + { + "include": "#others" + } + ] + }, + "function-definition": { + "begin": "(?=.?)", + "end": "(?=([\\])};,]|\\b(else|then)\\b))", + "patterns": [ + { + "include": "#function-body-from-colon" + }, + { + "begin": "(?=.?)", + "end": "(?=\\:)", + "patterns": [ + { + "begin": "(\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*)", + "beginCaptures": { + "0": { + "name": "variable.parameter.function.4.nix" + } + }, + "end": "(?=\\:)", + "patterns": [ + { + "begin": "\\@", + "end": "(?=\\:)", + "patterns": [ + { + "include": "#function-header-until-colon-no-arg" + }, + { + "include": "#others" + } + ] + }, + { + "include": "#others" + } + ] + }, + { + "begin": "(?=\\{)", + "end": "(?=\\:)", + "patterns": [ + { + "include": "#function-header-until-colon-with-arg" + } + ] + } + ] + }, + { + "include": "#others" + } + ] + }, + "function-definition-brace-opened": { + "begin": "(?=.?)", + "end": "(?=([\\])};,]|\\b(else|then)\\b))", + "patterns": [ + { + "include": "#function-body-from-colon" + }, + { + "begin": "(?=.?)", + "end": "(?=\\:)", + "patterns": [ + { + "include": "#function-header-close-brace-with-arg" + }, + { + "begin": "(?=.?)", + "end": "(?=\\})", + "patterns": [ + { + "include": "#function-contents" + } + ] + } + ] + }, + { + "include": "#others" + } + ] + }, + "function-for-sure": { + "patterns": [ + { + "begin": "(?=(\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*\\s*[:@]|\\{[^}]*\\}\\s*:|\\{[^#}\"'/=]*[,\\?]))", + "end": "(?=([\\])};,]|\\b(else|then)\\b))", + "patterns": [ + { + "include": "#function-definition" + } + ] + } + ] + }, + "function-header-close-brace-no-arg": { + "begin": "\\}", + "beginCaptures": { + "0": { + "name": "punctuation.definition.entity.function.nix" + } + }, + "end": "(?=\\:)", + "patterns": [ + { + "include": "#others" + } + ] + }, + "function-header-close-brace-with-arg": { + "begin": "\\}", + "beginCaptures": { + "0": { + "name": "punctuation.definition.entity.function.nix" + } + }, + "end": "(?=\\:)", + "patterns": [ + { + "include": "#function-header-terminal-arg" + }, + { + "include": "#others" + } + ] + }, + "function-header-open-brace": { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.entity.function.2.nix" + } + }, + "end": "(?=\\})", + "patterns": [ + { + "include": "#function-contents" + } + ] + }, + "function-header-terminal-arg": { + "begin": "(?=@)", + "end": "(?=\\:)", + "patterns": [ + { + "begin": "\\@", + "end": "(?=\\:)", + "patterns": [ + { + "begin": "(\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*)", + "end": "(?=\\:)", + "name": "variable.parameter.function.3.nix" + }, + { + "include": "#others" + } + ] + }, + { + "include": "#others" + } + ] + }, + "function-header-until-colon-no-arg": { + "begin": "(?=\\{)", + "end": "(?=\\:)", + "patterns": [ + { + "include": "#function-header-open-brace" + }, + { + "include": "#function-header-close-brace-no-arg" + } + ] + }, + "function-header-until-colon-with-arg": { + "begin": "(?=\\{)", + "end": "(?=\\:)", + "patterns": [ + { + "include": "#function-header-open-brace" + }, + { + "include": "#function-header-close-brace-with-arg" + } + ] + }, + "function-parameter": { + "patterns": [ + { + "begin": "(\\.\\.\\.)", + "end": "(,|(?=\\}))", + "name": "keyword.operator.nix", + "patterns": [ + { + "include": "#others" + } + ] + }, + { + "begin": "\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*", + "beginCaptures": { + "0": { + "name": "variable.parameter.function.1.nix" + } + }, + "end": "(,|(?=\\}))", + "endCaptures": { + "0": { + "name": "keyword.operator.nix" + } + }, + "patterns": [ + { + "include": "#whitespace" + }, + { + "include": "#comment" + }, + { + "include": "#function-parameter-default" + }, + { + "include": "#expression" + } + ] + }, + { + "include": "#others" + } + ] + }, + "function-parameter-default": { + "begin": "\\?", + "beginCaptures": { + "0": { + "name": "keyword.operator.nix" + } + }, + "end": "(?=[,}])", + "patterns": [ + { + "include": "#expression" + } + ] + }, + "if": { + "begin": "(?=\\bif\\b)", + "end": "(?=([\\])};,]|\\b(else|then)\\b))", + "patterns": [ + { + "begin": "\\bif\\b", + "beginCaptures": { + "0": { + "name": "keyword.other.nix" + } + }, + "end": "\\bth(?=en\\b)", + "endCaptures": { + "0": { + "name": "keyword.other.nix" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "begin": "(?<=th)en\\b", + "beginCaptures": { + "0": { + "name": "keyword.other.nix" + } + }, + "end": "\\bel(?=se\\b)", + "endCaptures": { + "0": { + "name": "keyword.other.nix" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "begin": "(?<=el)se\\b", + "beginCaptures": { + "0": { + "name": "keyword.other.nix" + } + }, + "end": "(?=([\\])};,]|\\b(else|then)\\b))", + "endCaptures": { + "0": { + "name": "keyword.other.nix" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + } + ] + }, + "illegal": { + "match": ".", + "name": "invalid.illegal" + }, + "interpolation": { + "begin": "\\$\\{", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.nix" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.nix" + } + }, + "name": "markup.italic", + "patterns": [ + { + "include": "#expression" + } + ] + }, + "let": { + "begin": "(?=\\blet\\b)", + "end": "(?=([\\])};,]|\\b(else|then)\\b))", + "patterns": [ + { + "begin": "\\blet\\b", + "beginCaptures": { + "0": { + "name": "keyword.other.nix" + } + }, + "end": "(?=([\\])};,]|\\b(in|else|then)\\b))", + "patterns": [ + { + "begin": "(?=\\{)", + "end": "(?=([\\])};,]|\\b(else|then)\\b))", + "patterns": [ + { + "begin": "\\{", + "end": "\\}", + "patterns": [ + { + "include": "#attrset-contents" + } + ] + }, + { + "begin": "(^|(?<=\\}))", + "end": "(?=([\\])};,]|\\b(else|then)\\b))", + "patterns": [ + { + "include": "#expression-cont" + } + ] + }, + { + "include": "#others" + } + ] + }, + { + "include": "#attrset-contents" + }, + { + "include": "#others" + } + ] + }, + { + "begin": "\\bin\\b", + "beginCaptures": { + "0": { + "name": "keyword.other.nix" + } + }, + "end": "(?=([\\])};,]|\\b(else|then)\\b))", + "patterns": [ + { + "include": "#expression" + } + ] + } + ] + }, + "list": { + "begin": "\\[", + "beginCaptures": { + "0": { + "name": "punctuation.definition.list.nix" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.list.nix" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + "list-and-cont": { + "begin": "(?=\\[)", + "end": "(?=([\\])};,]|\\b(else|then)\\b))", + "patterns": [ + { + "include": "#list" + }, + { + "include": "#expression-cont" + } + ] + }, + "operator-unary": { + "match": "(!|-)", + "name": "keyword.operator.unary.nix" + }, + "others": { + "patterns": [ + { + "include": "#whitespace" + }, + { + "include": "#comment" + }, + { + "include": "#illegal" + } + ] + }, + "parameter-name": { + "captures": { + "0": { + "name": "variable.parameter.name.nix" + } + }, + "match": "\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*" + }, + "parameter-name-and-cont": { + "begin": "\\b[a-zA-Z\\_][a-zA-Z0-9\\_\\'\\-]*", + "beginCaptures": { + "0": { + "name": "variable.parameter.name.nix" + } + }, + "end": "(?=([\\])};,]|\\b(else|then)\\b))", + "patterns": [ + { + "include": "#expression-cont" + } + ] + }, + "parens": { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.expression.nix" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.expression.nix" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + "parens-and-cont": { + "begin": "(?=\\()", + "end": "(?=([\\])};,]|\\b(else|then)\\b))", + "patterns": [ + { + "include": "#parens" + }, + { + "include": "#expression-cont" + } + ] + }, + "string": { + "patterns": [ + { + "begin": "(?=\\'\\')", + "end": "(?=([\\])};,]|\\b(else|then)\\b))", + "patterns": [ + { + "begin": "\\'\\'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.other.start.nix" + } + }, + "end": "\\'\\'(?!\\$|\\'|\\\\.)", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.other.end.nix" + } + }, + "name": "string.quoted.other.nix", + "patterns": [ + { + "match": "\\'\\'(\\$|\\'|\\\\.)", + "name": "constant.character.escape.nix" + }, + { + "include": "#interpolation" + } + ] + }, + { + "include": "#expression-cont" + } + ] + }, + { + "begin": "(?=\\\")", + "end": "(?=([\\])};,]|\\b(else|then)\\b))", + "patterns": [ + { + "include": "#string-quoted" + }, + { + "include": "#expression-cont" + } + ] + }, + { + "begin": "([a-zA-Z0-9\\.\\_\\-\\+]*(\\/[a-zA-Z0-9\\.\\_\\-\\+]+)+)", + "beginCaptures": { + "0": { + "name": "string.unquoted.path.nix" + } + }, + "end": "(?=([\\])};,]|\\b(else|then)\\b))", + "patterns": [ + { + "include": "#expression-cont" + } + ] + }, + { + "begin": "(\\<[a-zA-Z0-9\\.\\_\\-\\+]+(\\/[a-zA-Z0-9\\.\\_\\-\\+]+)*\\>)", + "beginCaptures": { + "0": { + "name": "string.unquoted.spath.nix" + } + }, + "end": "(?=([\\])};,]|\\b(else|then)\\b))", + "patterns": [ + { + "include": "#expression-cont" + } + ] + }, + { + "begin": "([a-zA-Z][a-zA-Z0-9\\+\\-\\.]*\\:[a-zA-Z0-9\\%\\/\\?\\:\\@\\&\\=\\+\\$\\,\\-\\_\\.\\!\\~\\*\\']+)", + "beginCaptures": { + "0": { + "name": "string.unquoted.url.nix" + } + }, + "end": "(?=([\\])};,]|\\b(else|then)\\b))", + "patterns": [ + { + "include": "#expression-cont" + } + ] + } + ] + }, + "string-quoted": { + "begin": "\\\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.double.start.nix" + } + }, + "end": "\\\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.double.end.nix" + } + }, + "name": "string.quoted.double.nix", + "patterns": [ + { + "match": "\\\\.", + "name": "constant.character.escape.nix" + }, + { + "include": "#interpolation" + } + ] + }, + "whitespace": { + "match": "\\s+" + }, + "with-assert": { + "begin": "\\b(with|assert)\\b", + "beginCaptures": { + "0": { + "name": "keyword.other.nix" + } + }, + "end": "\\;", + "patterns": [ + { + "include": "#expression" + } + ] + } + }, + "scopeName": "source.nix", + "uuid": "0514fd5f-acb6-436d-b42c-7643e6d36c8f" +} diff --git a/docs/shiki/languages/objective-c.tmLanguage.json b/docs/shiki/languages/objective-c.tmLanguage.json new file mode 100644 index 00000000..aa53580b --- /dev/null +++ b/docs/shiki/languages/objective-c.tmLanguage.json @@ -0,0 +1,3755 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/jeff-hykin/better-objc-syntax/blob/master/autogenerated/objc.tmLanguage.json", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/jeff-hykin/better-objc-syntax/commit/119b75fb1f4d3e8726fa62588e3b935e0b719294", + "name": "objective-c", + "scopeName": "source.objc", + "patterns": [ + { + "include": "#anonymous_pattern_1" + }, + { + "include": "#anonymous_pattern_2" + }, + { + "include": "#anonymous_pattern_3" + }, + { + "include": "#anonymous_pattern_4" + }, + { + "include": "#anonymous_pattern_5" + }, + { + "include": "#apple_foundation_functional_macros" + }, + { + "include": "#anonymous_pattern_7" + }, + { + "include": "#anonymous_pattern_8" + }, + { + "include": "#anonymous_pattern_9" + }, + { + "include": "#anonymous_pattern_10" + }, + { + "include": "#anonymous_pattern_11" + }, + { + "include": "#anonymous_pattern_12" + }, + { + "include": "#anonymous_pattern_13" + }, + { + "include": "#anonymous_pattern_14" + }, + { + "include": "#anonymous_pattern_15" + }, + { + "include": "#anonymous_pattern_16" + }, + { + "include": "#anonymous_pattern_17" + }, + { + "include": "#anonymous_pattern_18" + }, + { + "include": "#anonymous_pattern_19" + }, + { + "include": "#anonymous_pattern_20" + }, + { + "include": "#anonymous_pattern_21" + }, + { + "include": "#anonymous_pattern_22" + }, + { + "include": "#anonymous_pattern_23" + }, + { + "include": "#anonymous_pattern_24" + }, + { + "include": "#anonymous_pattern_25" + }, + { + "include": "#anonymous_pattern_26" + }, + { + "include": "#anonymous_pattern_27" + }, + { + "include": "#anonymous_pattern_28" + }, + { + "include": "#anonymous_pattern_29" + }, + { + "include": "#anonymous_pattern_30" + }, + { + "include": "#bracketed_content" + }, + { + "include": "#c_lang" + } + ], + "repository": { + "anonymous_pattern_1": { + "begin": "((@)(interface|protocol))(?!.+;)\\s+([A-Za-z_][A-Za-z0-9_]*)\\s*((:)(?:\\s*)([A-Za-z][A-Za-z0-9]*))?(\\s|\\n)?", + "captures": { + "1": { + "name": "storage.type.objc" + }, + "2": { + "name": "punctuation.definition.storage.type.objc" + }, + "4": { + "name": "entity.name.type.objc" + }, + "6": { + "name": "punctuation.definition.entity.other.inherited-class.objc" + }, + "7": { + "name": "entity.other.inherited-class.objc" + }, + "8": { + "name": "meta.divider.objc" + }, + "9": { + "name": "meta.inherited-class.objc" + } + }, + "contentName": "meta.scope.interface.objc", + "end": "((@)end)\\b", + "name": "meta.interface-or-protocol.objc", + "patterns": [ + { + "include": "#interface_innards" + } + ] + }, + "anonymous_pattern_10": { + "captures": { + "1": { + "name": "punctuation.definition.keyword.objc" + } + }, + "match": "(@)(defs|encode)\\b", + "name": "keyword.other.objc" + }, + "anonymous_pattern_11": { + "match": "\\bid\\b", + "name": "storage.type.id.objc" + }, + "anonymous_pattern_12": { + "match": "\\b(IBOutlet|IBAction|BOOL|SEL|id|unichar|IMP|Class|instancetype)\\b", + "name": "storage.type.objc" + }, + "anonymous_pattern_13": { + "captures": { + "1": { + "name": "punctuation.definition.storage.type.objc" + } + }, + "match": "(@)(class|protocol)\\b", + "name": "storage.type.objc" + }, + "anonymous_pattern_14": { + "begin": "((@)selector)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "storage.type.objc" + }, + "2": { + "name": "punctuation.definition.storage.type.objc" + }, + "3": { + "name": "punctuation.definition.storage.type.objc" + } + }, + "contentName": "meta.selector.method-name.objc", + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.definition.storage.type.objc" + } + }, + "name": "meta.selector.objc", + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.separator.arguments.objc" + } + }, + "match": "\\b(?:[a-zA-Z_:][\\w]*)+", + "name": "support.function.any-method.name-of-parameter.objc" + } + ] + }, + "anonymous_pattern_15": { + "captures": { + "1": { + "name": "punctuation.definition.storage.modifier.objc" + } + }, + "match": "(@)(synchronized|public|package|private|protected)\\b", + "name": "storage.modifier.objc" + }, + "anonymous_pattern_16": { + "match": "\\b(YES|NO|Nil|nil)\\b", + "name": "constant.language.objc" + }, + "anonymous_pattern_17": { + "match": "\\bNSApp\\b", + "name": "support.variable.foundation.objc" + }, + "anonymous_pattern_18": { + "captures": { + "1": { + "name": "punctuation.whitespace.support.function.cocoa.leopard.objc" + }, + "2": { + "name": "support.function.cocoa.leopard.objc" + } + }, + "match": "(\\s*)\\b(NS(Rect(ToCGRect|FromCGRect)|MakeCollectable|S(tringFromProtocol|ize(ToCGSize|FromCGSize))|Draw(NinePartImage|ThreePartImage)|P(oint(ToCGPoint|FromCGPoint)|rotocolFromString)|EventMaskFromType|Value))\\b" + }, + "anonymous_pattern_19": { + "captures": { + "1": { + "name": "punctuation.whitespace.support.function.leading.cocoa.objc" + }, + "2": { + "name": "support.function.cocoa.objc" + } + }, + "match": "(\\s*)\\b(NS(R(ound(DownToMultipleOfPageSize|UpToMultipleOfPageSize)|un(CriticalAlertPanel(RelativeToWindow)?|InformationalAlertPanel(RelativeToWindow)?|AlertPanel(RelativeToWindow)?)|e(set(MapTable|HashTable)|c(ycleZone|t(Clip(List)?|F(ill(UsingOperation|List(UsingOperation|With(Grays|Colors(UsingOperation)?))?)?|romString))|ordAllocationEvent)|turnAddress|leaseAlertPanel|a(dPixel|l(MemoryAvailable|locateCollectable))|gisterServicesProvider)|angeFromString)|Get(SizeAndAlignment|CriticalAlertPanel|InformationalAlertPanel|UncaughtExceptionHandler|FileType(s)?|WindowServerMemory|AlertPanel)|M(i(n(X|Y)|d(X|Y))|ouseInRect|a(p(Remove|Get|Member|Insert(IfAbsent|KnownAbsent)?)|ke(R(ect|ange)|Size|Point)|x(Range|X|Y)))|B(itsPer(SampleFromDepth|PixelFromDepth)|e(stDepth|ep|gin(CriticalAlertSheet|InformationalAlertSheet|AlertSheet)))|S(ho(uldRetainWithZone|w(sServicesMenuItem|AnimationEffect))|tringFrom(R(ect|ange)|MapTable|S(ize|elector)|HashTable|Class|Point)|izeFromString|e(t(ShowsServicesMenuItem|ZoneName|UncaughtExceptionHandler|FocusRingStyle)|lectorFromString|archPathForDirectoriesInDomains)|wap(Big(ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(ToHost|LongToHost))|Short|Host(ShortTo(Big|Little)|IntTo(Big|Little)|DoubleTo(Big|Little)|FloatTo(Big|Little)|Long(To(Big|Little)|LongTo(Big|Little)))|Int|Double|Float|L(ittle(ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(ToHost|LongToHost))|ong(Long)?)))|H(ighlightRect|o(stByteOrder|meDirectory(ForUser)?)|eight|ash(Remove|Get|Insert(IfAbsent|KnownAbsent)?)|FSType(CodeFromFileType|OfFile))|N(umberOfColorComponents|ext(MapEnumeratorPair|HashEnumeratorItem))|C(o(n(tainsRect|vert(GlyphsToPackedGlyphs|Swapped(DoubleToHost|FloatToHost)|Host(DoubleToSwapped|FloatToSwapped)))|unt(MapTable|HashTable|Frames|Windows(ForContext)?)|py(M(emoryPages|apTableWithZone)|Bits|HashTableWithZone|Object)|lorSpaceFromDepth|mpare(MapTables|HashTables))|lassFromString|reate(MapTable(WithZone)?|HashTable(WithZone)?|Zone|File(namePboardType|ContentsPboardType)))|TemporaryDirectory|I(s(ControllerMarker|EmptyRect|FreedObject)|n(setRect|crementExtraRefCount|te(r(sect(sRect|ionR(ect|ange))|faceStyleForKey)|gralRect)))|Zone(Realloc|Malloc|Name|Calloc|Fr(omPointer|ee))|O(penStepRootDirectory|ffsetRect)|D(i(sableScreenUpdates|videRect)|ottedFrameRect|e(c(imal(Round|Multiply|S(tring|ubtract)|Normalize|Co(py|mpa(ct|re))|IsNotANumber|Divide|Power|Add)|rementExtraRefCountWasZero)|faultMallocZone|allocate(MemoryPages|Object))|raw(Gr(oove|ayBezel)|B(itmap|utton)|ColorTiledRects|TiledRects|DarkBezel|W(hiteBezel|indowBackground)|LightBezel))|U(serName|n(ionR(ect|ange)|registerServicesProvider)|pdateDynamicServices)|Java(Bundle(Setup|Cleanup)|Setup(VirtualMachine)?|Needs(ToLoadClasses|VirtualMachine)|ClassesF(orBundle|romPath)|ObjectNamedInPath|ProvidesClasses)|P(oint(InRect|FromString)|erformService|lanarFromDepth|ageSize)|E(n(d(MapTableEnumeration|HashTableEnumeration)|umerate(MapTable|HashTable)|ableScreenUpdates)|qual(R(ects|anges)|Sizes|Points)|raseRect|xtraRefCount)|F(ileTypeForHFSTypeCode|ullUserName|r(ee(MapTable|HashTable)|ame(Rect(WithWidth(UsingOperation)?)?|Address)))|Wi(ndowList(ForContext)?|dth)|Lo(cationInRange|g(v|PageSize)?)|A(ccessibility(R(oleDescription(ForUIElement)?|aiseBadArgumentException)|Unignored(Children(ForOnlyChild)?|Descendant|Ancestor)|PostNotification|ActionDescription)|pplication(Main|Load)|vailableWindowDepths|ll(MapTable(Values|Keys)|HashTableObjects|ocate(MemoryPages|Collectable|Object)))))\\b" + }, + "anonymous_pattern_2": { + "begin": "((@)(implementation))\\s+([A-Za-z_][A-Za-z0-9_]*)\\s*(?::\\s*([A-Za-z][A-Za-z0-9]*))?", + "captures": { + "1": { + "name": "storage.type.objc" + }, + "2": { + "name": "punctuation.definition.storage.type.objc" + }, + "4": { + "name": "entity.name.type.objc" + }, + "5": { + "name": "entity.other.inherited-class.objc" + } + }, + "contentName": "meta.scope.implementation.objc", + "end": "((@)end)\\b", + "name": "meta.implementation.objc", + "patterns": [ + { + "include": "#implementation_innards" + } + ] + }, + "anonymous_pattern_20": { + "match": "\\bNS(RuleEditor|G(arbageCollector|radient)|MapTable|HashTable|Co(ndition|llectionView(Item)?)|T(oolbarItemGroup|extInputClient|r(eeNode|ackingArea))|InvocationOperation|Operation(Queue)?|D(ictionaryController|ockTile)|P(ointer(Functions|Array)|athC(o(ntrol(Delegate)?|mponentCell)|ell(Delegate)?)|r(intPanelAccessorizing|edicateEditor(RowTemplate)?))|ViewController|FastEnumeration|Animat(ionContext|ablePropertyContainer))\\b", + "name": "support.class.cocoa.leopard.objc" + }, + "anonymous_pattern_21": { + "match": "\\bNS(R(u(nLoop|ler(Marker|View))|e(sponder|cursiveLock|lativeSpecifier)|an(domSpecifier|geSpecifier))|G(etCommand|lyph(Generator|Storage|Info)|raphicsContext)|XML(Node|D(ocument|TD(Node)?)|Parser|Element)|M(iddleSpecifier|ov(ie(View)?|eCommand)|utable(S(tring|et)|C(haracterSet|opying)|IndexSet|D(ictionary|ata)|URLRequest|ParagraphStyle|A(ttributedString|rray))|e(ssagePort(NameServer)?|nu(Item(Cell)?|View)?|t(hodSignature|adata(Item|Query(ResultGroup|AttributeValueTuple)?)))|a(ch(BootstrapServer|Port)|trix))|B(itmapImageRep|ox|u(ndle|tton(Cell)?)|ezierPath|rowser(Cell)?)|S(hadow|c(anner|r(ipt(SuiteRegistry|C(o(ercionHandler|mmand(Description)?)|lassDescription)|ObjectSpecifier|ExecutionContext|WhoseTest)|oll(er|View)|een))|t(epper(Cell)?|atus(Bar|Item)|r(ing|eam))|imple(HorizontalTypesetter|CString)|o(cketPort(NameServer)?|und|rtDescriptor)|p(e(cifierTest|ech(Recognizer|Synthesizer)|ll(Server|Checker))|litView)|e(cureTextField(Cell)?|t(Command)?|archField(Cell)?|rializer|gmentedC(ontrol|ell))|lider(Cell)?|avePanel)|H(ost|TTP(Cookie(Storage)?|URLResponse)|elpManager)|N(ib(Con(nector|trolConnector)|OutletConnector)?|otification(Center|Queue)?|u(ll|mber(Formatter)?)|etService(Browser)?|ameSpecifier)|C(ha(ngeSpelling|racterSet)|o(n(stantString|nection|trol(ler)?|ditionLock)|d(ing|er)|unt(Command|edSet)|pying|lor(Space|P(ick(ing(Custom|Default)|er)|anel)|Well|List)?|m(p(oundPredicate|arisonPredicate)|boBox(Cell)?))|u(stomImageRep|rsor)|IImageRep|ell|l(ipView|o(seCommand|neCommand)|assDescription)|a(ched(ImageRep|URLResponse)|lendar(Date)?)|reateCommand)|T(hread|ypesetter|ime(Zone|r)|o(olbar(Item(Validations)?)?|kenField(Cell)?)|ext(Block|Storage|Container|Tab(le(Block)?)?|Input|View|Field(Cell)?|List|Attachment(Cell)?)?|a(sk|b(le(Header(Cell|View)|Column|View)|View(Item)?))|reeController)|I(n(dex(S(pecifier|et)|Path)|put(Manager|S(tream|erv(iceProvider|er(MouseTracker)?)))|vocation)|gnoreMisspelledWords|mage(Rep|Cell|View)?)|O(ut(putStream|lineView)|pen(GL(Context|Pixel(Buffer|Format)|View)|Panel)|bj(CTypeSerializationCallBack|ect(Controller)?))|D(i(st(antObject(Request)?|ributed(NotificationCenter|Lock))|ctionary|rectoryEnumerator)|ocument(Controller)?|e(serializer|cimalNumber(Behaviors|Handler)?|leteCommand)|at(e(Components|Picker(Cell)?|Formatter)?|a)|ra(wer|ggingInfo))|U(ser(InterfaceValidations|Defaults(Controller)?)|RL(Re(sponse|quest)|Handle(Client)?|C(onnection|ache|redential(Storage)?)|Download(Delegate)?|Prot(ocol(Client)?|ectionSpace)|AuthenticationChallenge(Sender)?)?|n(iqueIDSpecifier|doManager|archiver))|P(ipe|o(sitionalSpecifier|pUpButton(Cell)?|rt(Message|NameServer|Coder)?)|ICTImageRep|ersistentDocument|DFImageRep|a(steboard|nel|ragraphStyle|geLayout)|r(int(Info|er|Operation|Panel)|o(cessInfo|tocolChecker|perty(Specifier|ListSerialization)|gressIndicator|xy)|edicate))|E(numerator|vent|PSImageRep|rror|x(ception|istsCommand|pression))|V(iew(Animation)?|al(idated(ToobarItem|UserInterfaceItem)|ue(Transformer)?))|Keyed(Unarchiver|Archiver)|Qui(ckDrawView|tCommand)|F(ile(Manager|Handle|Wrapper)|o(nt(Manager|Descriptor|Panel)?|rm(Cell|atter)))|W(hoseSpecifier|indow(Controller)?|orkspace)|L(o(c(k(ing)?|ale)|gicalTest)|evelIndicator(Cell)?|ayoutManager)|A(ssertionHandler|nimation|ctionCell|ttributedString|utoreleasePool|TSTypesetter|ppl(ication|e(Script|Event(Manager|Descriptor)))|ffineTransform|lert|r(chiver|ray(Controller)?)))\\b", + "name": "support.class.cocoa.objc" + }, + "anonymous_pattern_22": { + "match": "\\bNS(R(oundingMode|ule(Editor(RowType|NestingMode)|rOrientation)|e(questUserAttentionType|lativePosition))|G(lyphInscription|radientDrawingOptions)|XML(NodeKind|D(ocumentContentKind|TDNodeKind)|ParserError)|M(ultibyteGlyphPacking|apTableOptions)|B(itmapFormat|oxType|ezierPathElement|ackgroundStyle|rowserDropOperation)|S(tr(ing(CompareOptions|DrawingOptions|EncodingConversionOptions)|eam(Status|Event))|p(eechBoundary|litViewDividerStyle)|e(archPathD(irectory|omainMask)|gmentS(tyle|witchTracking))|liderType|aveOptions)|H(TTPCookieAcceptPolicy|ashTableOptions)|N(otification(SuspensionBehavior|Coalescing)|umberFormatter(RoundingMode|Behavior|Style|PadPosition)|etService(sError|Options))|C(haracterCollection|o(lor(RenderingIntent|SpaceModel|PanelMode)|mp(oundPredicateType|arisonPredicateModifier))|ellStateValue|al(culationError|endarUnit))|T(ypesetterControlCharacterAction|imeZoneNameStyle|e(stComparisonOperation|xt(Block(Dimension|V(erticalAlignment|alueType)|Layer)|TableLayoutAlgorithm|FieldBezelStyle))|ableView(SelectionHighlightStyle|ColumnAutoresizingStyle)|rackingAreaOptions)|I(n(sertionPosition|te(rfaceStyle|ger))|mage(RepLoadStatus|Scaling|CacheMode|FrameStyle|LoadStatus|Alignment))|Ope(nGLPixelFormatAttribute|rationQueuePriority)|Date(Picker(Mode|Style)|Formatter(Behavior|Style))|U(RL(RequestCachePolicy|HandleStatus|C(acheStoragePolicy|redentialPersistence))|Integer)|P(o(stingStyle|int(ingDeviceType|erFunctionsOptions)|pUpArrowPosition)|athStyle|r(int(ing(Orientation|PaginationMode)|erTableStatus|PanelOptions)|opertyList(MutabilityOptions|Format)|edicateOperatorType))|ExpressionType|KeyValue(SetMutationKind|Change)|QTMovieLoopMode|F(indPanel(SubstringMatchType|Action)|o(nt(RenderingMode|FamilyClass)|cusRingPlacement))|W(hoseSubelementIdentifier|ind(ingRule|ow(B(utton|ackingLocation)|SharingType|CollectionBehavior)))|L(ine(MovementDirection|SweepDirection|CapStyle|JoinStyle)|evelIndicatorStyle)|Animation(BlockingMode|Curve))\\b", + "name": "support.type.cocoa.leopard.objc" + }, + "anonymous_pattern_23": { + "match": "\\bC(I(Sampler|Co(ntext|lor)|Image(Accumulator)?|PlugIn(Registration)?|Vector|Kernel|Filter(Generator|Shape)?)|A(Renderer|MediaTiming(Function)?|BasicAnimation|ScrollLayer|Constraint(LayoutManager)?|T(iledLayer|extLayer|rans(ition|action))|OpenGLLayer|PropertyAnimation|KeyframeAnimation|Layer|A(nimation(Group)?|ction)))\\b", + "name": "support.class.quartz.objc" + }, + "anonymous_pattern_24": { + "match": "\\bC(G(Float|Point|Size|Rect)|IFormat|AConstraintAttribute)\\b", + "name": "support.type.quartz.objc" + }, + "anonymous_pattern_25": { + "match": "\\bNS(R(ect(Edge)?|ange)|G(lyph(Relation|LayoutMode)?|radientType)|M(odalSession|a(trixMode|p(Table|Enumerator)))|B(itmapImageFileType|orderType|uttonType|ezelStyle|ackingStoreType|rowserColumnResizingType)|S(cr(oll(er(Part|Arrow)|ArrowPosition)|eenAuxiliaryOpaque)|tringEncoding|ize|ocketNativeHandle|election(Granularity|Direction|Affinity)|wapped(Double|Float)|aveOperationType)|Ha(sh(Table|Enumerator)|ndler(2)?)|C(o(ntrol(Size|Tint)|mp(ositingOperation|arisonResult))|ell(State|Type|ImagePosition|Attribute))|T(hreadPrivate|ypesetterGlyphInfo|i(ckMarkPosition|tlePosition|meInterval)|o(ol(TipTag|bar(SizeMode|DisplayMode))|kenStyle)|IFFCompression|ext(TabType|Alignment)|ab(State|leViewDropOperation|ViewType)|rackingRectTag)|ImageInterpolation|Zone|OpenGL(ContextAuxiliary|PixelFormatAuxiliary)|D(ocumentChangeType|atePickerElementFlags|ra(werState|gOperation))|UsableScrollerParts|P(oint|r(intingPageOrder|ogressIndicator(Style|Th(ickness|readInfo))))|EventType|KeyValueObservingOptions|Fo(nt(SymbolicTraits|TraitMask|Action)|cusRingType)|W(indow(OrderingMode|Depth)|orkspace(IconCreationOptions|LaunchOptions)|ritingDirection)|L(ineBreakMode|ayout(Status|Direction))|A(nimation(Progress|Effect)|ppl(ication(TerminateReply|DelegateReply|PrintReply)|eEventManagerSuspensionID)|ffineTransformStruct|lertStyle))\\b", + "name": "support.type.cocoa.objc" + }, + "anonymous_pattern_26": { + "match": "\\bNS(NotFound|Ordered(Ascending|Descending|Same))\\b", + "name": "support.constant.cocoa.objc" + }, + "anonymous_pattern_27": { + "match": "\\bNS(MenuDidBeginTracking|ViewDidUpdateTrackingAreas)?Notification\\b", + "name": "support.constant.notification.cocoa.leopard.objc" + }, + "anonymous_pattern_28": { + "match": "\\bNS(Menu(Did(RemoveItem|SendAction|ChangeItem|EndTracking|AddItem)|WillSendAction)|S(ystemColorsDidChange|plitView(DidResizeSubviews|WillResizeSubviews))|C(o(nt(extHelpModeDid(Deactivate|Activate)|rolT(intDidChange|extDid(BeginEditing|Change|EndEditing)))|lor(PanelColorDidChange|ListDidChange)|mboBox(Selection(IsChanging|DidChange)|Will(Dismiss|PopUp)))|lassDescriptionNeededForClass)|T(oolbar(DidRemoveItem|WillAddItem)|ext(Storage(DidProcessEditing|WillProcessEditing)|Did(BeginEditing|Change|EndEditing)|View(DidChange(Selection|TypingAttributes)|WillChangeNotifyingTextView))|ableView(Selection(IsChanging|DidChange)|ColumnDid(Resize|Move)))|ImageRepRegistryDidChange|OutlineView(Selection(IsChanging|DidChange)|ColumnDid(Resize|Move)|Item(Did(Collapse|Expand)|Will(Collapse|Expand)))|Drawer(Did(Close|Open)|Will(Close|Open))|PopUpButton(CellWillPopUp|WillPopUp)|View(GlobalFrameDidChange|BoundsDidChange|F(ocusDidChange|rameDidChange))|FontSetChanged|W(indow(Did(Resi(ze|gn(Main|Key))|M(iniaturize|ove)|Become(Main|Key)|ChangeScreen(|Profile)|Deminiaturize|Update|E(ndSheet|xpose))|Will(M(iniaturize|ove)|BeginSheet|Close))|orkspace(SessionDid(ResignActive|BecomeActive)|Did(Mount|TerminateApplication|Unmount|PerformFileOperation|Wake|LaunchApplication)|Will(Sleep|Unmount|PowerOff|LaunchApplication)))|A(ntialiasThresholdChanged|ppl(ication(Did(ResignActive|BecomeActive|Hide|ChangeScreenParameters|U(nhide|pdate)|FinishLaunching)|Will(ResignActive|BecomeActive|Hide|Terminate|U(nhide|pdate)|FinishLaunching))|eEventManagerWillProcessFirstEvent)))Notification\\b", + "name": "support.constant.notification.cocoa.objc" + }, + "anonymous_pattern_29": { + "match": "\\bNS(RuleEditor(RowType(Simple|Compound)|NestingMode(Si(ngle|mple)|Compound|List))|GradientDraws(BeforeStartingLocation|AfterEndingLocation)|M(inusSetExpressionType|a(chPortDeallocate(ReceiveRight|SendRight|None)|pTable(StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality)))|B(oxCustom|undleExecutableArchitecture(X86|I386|PPC(64)?)|etweenPredicateOperatorType|ackgroundStyle(Raised|Dark|L(ight|owered)))|S(tring(DrawingTruncatesLastVisibleLine|EncodingConversion(ExternalRepresentation|AllowLossy))|ubqueryExpressionType|p(e(ech(SentenceBoundary|ImmediateBoundary|WordBoundary)|llingState(GrammarFlag|SpellingFlag))|litViewDividerStyleThi(n|ck))|e(rvice(RequestTimedOutError|M(iscellaneousError|alformedServiceDictionaryError)|InvalidPasteboardDataError|ErrorM(inimum|aximum)|Application(NotFoundError|LaunchFailedError))|gmentStyle(Round(Rect|ed)|SmallSquare|Capsule|Textured(Rounded|Square)|Automatic)))|H(UDWindowMask|ashTable(StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality))|N(oModeColorPanel|etServiceNoAutoRename)|C(hangeRedone|o(ntainsPredicateOperatorType|l(orRenderingIntent(RelativeColorimetric|Saturation|Default|Perceptual|AbsoluteColorimetric)|lectorDisabledOption))|ellHit(None|ContentArea|TrackableArea|EditableTextArea))|T(imeZoneNameStyle(S(hort(Standard|DaylightSaving)|tandard)|DaylightSaving)|extFieldDatePickerStyle|ableViewSelectionHighlightStyle(Regular|SourceList)|racking(Mouse(Moved|EnteredAndExited)|CursorUpdate|InVisibleRect|EnabledDuringMouseDrag|A(ssumeInside|ctive(In(KeyWindow|ActiveApp)|WhenFirstResponder|Always))))|I(n(tersectSetExpressionType|dexedColorSpaceModel)|mageScale(None|Proportionally(Down|UpOrDown)|AxesIndependently))|Ope(nGLPFAAllowOfflineRenderers|rationQueue(DefaultMaxConcurrentOperationCount|Priority(High|Normal|Very(High|Low)|Low)))|D(iacriticInsensitiveSearch|ownloadsDirectory)|U(nionSetExpressionType|TF(16(BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)|32(BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)))|P(ointerFunctions(Ma(chVirtualMemory|llocMemory)|Str(ongMemory|uctPersonality)|C(StringPersonality|opyIn)|IntegerPersonality|ZeroingWeakMemory|O(paque(Memory|Personality)|bjectP(ointerPersonality|ersonality)))|at(hStyle(Standard|NavigationBar|PopUp)|ternColorSpaceModel)|rintPanelShows(Scaling|Copies|Orientation|P(a(perSize|ge(Range|SetupAccessory))|review)))|Executable(RuntimeMismatchError|NotLoadableError|ErrorM(inimum|aximum)|L(inkError|oadError)|ArchitectureMismatchError)|KeyValueObservingOption(Initial|Prior)|F(i(ndPanelSubstringMatchType(StartsWith|Contains|EndsWith|FullWord)|leRead(TooLargeError|UnknownStringEncodingError))|orcedOrderingSearch)|Wi(ndow(BackingLocation(MainMemory|Default|VideoMemory)|Sharing(Read(Only|Write)|None)|CollectionBehavior(MoveToActiveSpace|CanJoinAllSpaces|Default))|dthInsensitiveSearch)|AggregateExpressionType)\\b", + "name": "support.constant.cocoa.leopard.objc" + }, + "anonymous_pattern_3": { + "begin": "@\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.objc" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.objc" + } + }, + "name": "string.quoted.double.objc", + "patterns": [ + { + "include": "#string_escaped_char" + }, + { + "match": "(?x)%\n\t\t\t\t\t\t(\\d+\\$)? # field (argument #)\n\t\t\t\t\t\t[#0\\- +']* # flags\n\t\t\t\t\t\t((-?\\d+)|\\*(-?\\d+\\$)?)? # minimum field width\n\t\t\t\t\t\t(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)? # precision\n\t\t\t\t\t\t[@] # conversion type\n\t\t\t\t\t", + "name": "constant.other.placeholder.objc" + }, + { + "include": "#string_placeholder" + } + ] + }, + "anonymous_pattern_30": { + "match": "\\bNS(R(GB(ModeColorPanel|ColorSpaceModel)|ight(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|T(ext(Movement|Alignment)|ab(sBezelBorder|StopType))|ArrowFunctionKey)|ound(RectBezelStyle|Bankers|ed(BezelStyle|TokenStyle|DisclosureBezelStyle)|Down|Up|Plain|Line(CapStyle|JoinStyle))|un(StoppedResponse|ContinuesResponse|AbortedResponse)|e(s(izableWindowMask|et(CursorRectsRunLoopOrdering|FunctionKey))|ce(ssedBezelStyle|iver(sCantHandleCommandScriptError|EvaluationScriptError))|turnTextMovement|doFunctionKey|quiredArgumentsMissingScriptError|l(evancyLevelIndicatorStyle|ative(Before|After))|gular(SquareBezelStyle|ControlSize)|moveTraitFontAction)|a(n(domSubelement|geDateMode)|tingLevelIndicatorStyle|dio(ModeMatrix|Button)))|G(IFFileType|lyph(Below|Inscribe(B(elow|ase)|Over(strike|Below)|Above)|Layout(WithPrevious|A(tAPoint|gainstAPoint))|A(ttribute(BidiLevel|Soft|Inscribe|Elastic)|bove))|r(ooveBorder|eaterThan(Comparison|OrEqualTo(Comparison|PredicateOperatorType)|PredicateOperatorType)|a(y(ModeColorPanel|ColorSpaceModel)|dient(None|Con(cave(Strong|Weak)|vex(Strong|Weak)))|phiteControlTint)))|XML(N(o(tationDeclarationKind|de(CompactEmptyElement|IsCDATA|OptionsNone|Use(SingleQuotes|DoubleQuotes)|Pre(serve(NamespaceOrder|C(haracterReferences|DATA)|DTD|Prefixes|E(ntities|mptyElements)|Quotes|Whitespace|A(ttributeOrder|ll))|ttyPrint)|ExpandEmptyElement))|amespaceKind)|CommentKind|TextKind|InvalidKind|D(ocument(X(MLKind|HTMLKind|Include)|HTMLKind|T(idy(XML|HTML)|extKind)|IncludeContentTypeDeclaration|Validate|Kind)|TDKind)|P(arser(GTRequiredError|XMLDeclNot(StartedError|FinishedError)|Mi(splaced(XMLDeclarationError|CDATAEndStringError)|xedContentDeclNot(StartedError|FinishedError))|S(t(andaloneValueError|ringNot(StartedError|ClosedError))|paceRequiredError|eparatorRequiredError)|N(MTOKENRequiredError|o(t(ationNot(StartedError|FinishedError)|WellBalancedError)|DTDError)|amespaceDeclarationError|AMERequiredError)|C(haracterRef(In(DTDError|PrologError|EpilogError)|AtEOFError)|o(nditionalSectionNot(StartedError|FinishedError)|mment(NotFinishedError|ContainsDoubleHyphenError))|DATANotFinishedError)|TagNameMismatchError|In(ternalError|valid(HexCharacterRefError|C(haracter(RefError|InEntityError|Error)|onditionalSectionError)|DecimalCharacterRefError|URIError|Encoding(NameError|Error)))|OutOfMemoryError|D(ocumentStartError|elegateAbortedParseError|OCTYPEDeclNotFinishedError)|U(RI(RequiredError|FragmentError)|n(declaredEntityError|parsedEntityError|knownEncodingError|finishedTagError))|P(CDATARequiredError|ublicIdentifierRequiredError|arsedEntityRef(MissingSemiError|NoNameError|In(Internal(SubsetError|Error)|PrologError|EpilogError)|AtEOFError)|r(ocessingInstructionNot(StartedError|FinishedError)|ematureDocumentEndError))|E(n(codingNotSupportedError|tity(Ref(In(DTDError|PrologError|EpilogError)|erence(MissingSemiError|WithoutNameError)|LoopError|AtEOFError)|BoundaryError|Not(StartedError|FinishedError)|Is(ParameterError|ExternalError)|ValueRequiredError))|qualExpectedError|lementContentDeclNot(StartedError|FinishedError)|xt(ernalS(tandaloneEntityError|ubsetNotFinishedError)|raContentError)|mptyDocumentError)|L(iteralNot(StartedError|FinishedError)|T(RequiredError|SlashRequiredError)|essThanSymbolInAttributeError)|Attribute(RedefinedError|HasNoValueError|Not(StartedError|FinishedError)|ListNot(StartedError|FinishedError)))|rocessingInstructionKind)|E(ntity(GeneralKind|DeclarationKind|UnparsedKind|P(ar(sedKind|ameterKind)|redefined))|lement(Declaration(MixedKind|UndefinedKind|E(lementKind|mptyKind)|Kind|AnyKind)|Kind))|Attribute(N(MToken(sKind|Kind)|otationKind)|CDATAKind|ID(Ref(sKind|Kind)|Kind)|DeclarationKind|En(tit(yKind|iesKind)|umerationKind)|Kind))|M(i(n(XEdge|iaturizableWindowMask|YEdge|uteCalendarUnit)|terLineJoinStyle|ddleSubelement|xedState)|o(nthCalendarUnit|deSwitchFunctionKey|use(Moved(Mask)?|E(ntered(Mask)?|ventSubtype|xited(Mask)?))|veToBezierPathElement|mentary(ChangeButton|Push(Button|InButton)|Light(Button)?))|enuFunctionKey|a(c(intoshInterfaceStyle|OSRomanStringEncoding)|tchesPredicateOperatorType|ppedRead|x(XEdge|YEdge))|ACHOperatingSystem)|B(MPFileType|o(ttomTabsBezelBorder|ldFontMask|rderlessWindowMask|x(Se(condary|parator)|OldStyle|Primary))|uttLineCapStyle|e(zelBorder|velLineJoinStyle|low(Bottom|Top)|gin(sWith(Comparison|PredicateOperatorType)|FunctionKey))|lueControlTint|ack(spaceCharacter|tabTextMovement|ingStore(Retained|Buffered|Nonretained)|TabCharacter|wardsSearch|groundTab)|r(owser(NoColumnResizing|UserColumnResizing|AutoColumnResizing)|eakFunctionKey))|S(h(ift(JISStringEncoding|KeyMask)|ow(ControlGlyphs|InvisibleGlyphs)|adowlessSquareBezelStyle)|y(s(ReqFunctionKey|tem(D(omainMask|efined(Mask)?)|FunctionKey))|mbolStringEncoding)|c(a(nnedOption|le(None|ToFit|Proportionally))|r(oll(er(NoPart|Increment(Page|Line|Arrow)|Decrement(Page|Line|Arrow)|Knob(Slot)?|Arrows(M(inEnd|axEnd)|None|DefaultSetting))|Wheel(Mask)?|LockFunctionKey)|eenChangedEventType))|t(opFunctionKey|r(ingDrawing(OneShot|DisableScreenFontSubstitution|Uses(DeviceMetrics|FontLeading|LineFragmentOrigin))|eam(Status(Reading|NotOpen|Closed|Open(ing)?|Error|Writing|AtEnd)|Event(Has(BytesAvailable|SpaceAvailable)|None|OpenCompleted|E(ndEncountered|rrorOccurred)))))|i(ngle(DateMode|UnderlineStyle)|ze(DownFontAction|UpFontAction))|olarisOperatingSystem|unOSOperatingSystem|pecialPageOrder|e(condCalendarUnit|lect(By(Character|Paragraph|Word)|i(ng(Next|Previous)|onAffinity(Downstream|Upstream))|edTab|FunctionKey)|gmentSwitchTracking(Momentary|Select(One|Any)))|quareLineCapStyle|witchButton|ave(ToOperation|Op(tions(Yes|No|Ask)|eration)|AsOperation)|mall(SquareBezelStyle|C(ontrolSize|apsFontMask)|IconButtonBezelStyle))|H(ighlightModeMatrix|SBModeColorPanel|o(ur(Minute(SecondDatePickerElementFlag|DatePickerElementFlag)|CalendarUnit)|rizontalRuler|meFunctionKey)|TTPCookieAcceptPolicy(Never|OnlyFromMainDocumentDomain|Always)|e(lp(ButtonBezelStyle|KeyMask|FunctionKey)|avierFontAction)|PUXOperatingSystem)|Year(MonthDa(yDatePickerElementFlag|tePickerElementFlag)|CalendarUnit)|N(o(n(StandardCharacterSetFontMask|ZeroWindingRule|activatingPanelMask|LossyASCIIStringEncoding)|Border|t(ification(SuspensionBehavior(Hold|Coalesce|D(eliverImmediately|rop))|NoCoalescing|CoalescingOn(Sender|Name)|DeliverImmediately|PostToAllSessions)|PredicateType|EqualToPredicateOperatorType)|S(cr(iptError|ollerParts)|ubelement|pecifierError)|CellMask|T(itle|opLevelContainersSpecifierError|abs(BezelBorder|NoBorder|LineBorder))|I(nterfaceStyle|mage)|UnderlineStyle|FontChangeAction)|u(ll(Glyph|CellType)|m(eric(Search|PadKeyMask)|berFormatter(Round(Half(Down|Up|Even)|Ceiling|Down|Up|Floor)|Behavior(10|Default)|S(cientificStyle|pellOutStyle)|NoStyle|CurrencyStyle|DecimalStyle|P(ercentStyle|ad(Before(Suffix|Prefix)|After(Suffix|Prefix))))))|e(t(Services(BadArgumentError|NotFoundError|C(ollisionError|ancelledError)|TimeoutError|InvalidError|UnknownError|ActivityInProgress)|workDomainMask)|wlineCharacter|xt(StepInterfaceStyle|FunctionKey))|EXTSTEPStringEncoding|a(t(iveShortGlyphPacking|uralTextAlignment)|rrowFontMask))|C(hange(ReadOtherContents|GrayCell(Mask)?|BackgroundCell(Mask)?|Cleared|Done|Undone|Autosaved)|MYK(ModeColorPanel|ColorSpaceModel)|ircular(BezelStyle|Slider)|o(n(stantValueExpressionType|t(inuousCapacityLevelIndicatorStyle|entsCellMask|ain(sComparison|erSpecifierError)|rol(Glyph|KeyMask))|densedFontMask)|lor(Panel(RGBModeMask|GrayModeMask|HSBModeMask|C(MYKModeMask|olorListModeMask|ustomPaletteModeMask|rayonModeMask)|WheelModeMask|AllModesMask)|ListModeColorPanel)|reServiceDirectory|m(p(osite(XOR|Source(In|O(ut|ver)|Atop)|Highlight|C(opy|lear)|Destination(In|O(ut|ver)|Atop)|Plus(Darker|Lighter))|ressedFontMask)|mandKeyMask))|u(stom(SelectorPredicateOperatorType|PaletteModeColorPanel)|r(sor(Update(Mask)?|PointingDevice)|veToBezierPathElement))|e(nterT(extAlignment|abStopType)|ll(State|H(ighlighted|as(Image(Horizontal|OnLeftOrBottom)|OverlappingImage))|ChangesContents|Is(Bordered|InsetButton)|Disabled|Editable|LightsBy(Gray|Background|Contents)|AllowsMixedState))|l(ipPagination|o(s(ePathBezierPathElement|ableWindowMask)|ckAndCalendarDatePickerStyle)|ear(ControlTint|DisplayFunctionKey|LineFunctionKey))|a(seInsensitive(Search|PredicateOption)|n(notCreateScriptCommandError|cel(Button|TextMovement))|chesDirectory|lculation(NoError|Overflow|DivideByZero|Underflow|LossOfPrecision)|rriageReturnCharacter)|r(itical(Request|AlertStyle)|ayonModeColorPanel))|T(hick(SquareBezelStyle|erSquareBezelStyle)|ypesetter(Behavior|HorizontalTabAction|ContainerBreakAction|ZeroAdvancementAction|OriginalBehavior|ParagraphBreakAction|WhitespaceAction|L(ineBreakAction|atestBehavior))|i(ckMark(Right|Below|Left|Above)|tledWindowMask|meZoneDatePickerElementFlag)|o(olbarItemVisibilityPriority(Standard|High|User|Low)|pTabsBezelBorder|ggleButton)|IFF(Compression(N(one|EXT)|CCITTFAX(3|4)|OldJPEG|JPEG|PackBits|LZW)|FileType)|e(rminate(Now|Cancel|Later)|xt(Read(InapplicableDocumentTypeError|WriteErrorM(inimum|aximum))|Block(M(i(nimum(Height|Width)|ddleAlignment)|a(rgin|ximum(Height|Width)))|B(o(ttomAlignment|rder)|aselineAlignment)|Height|TopAlignment|P(ercentageValueType|adding)|Width|AbsoluteValueType)|StorageEdited(Characters|Attributes)|CellType|ured(RoundedBezelStyle|BackgroundWindowMask|SquareBezelStyle)|Table(FixedLayoutAlgorithm|AutomaticLayoutAlgorithm)|Field(RoundedBezel|SquareBezel|AndStepperDatePickerStyle)|WriteInapplicableDocumentTypeError|ListPrependEnclosingMarker))|woByteGlyphPacking|ab(Character|TextMovement|le(tP(oint(Mask|EventSubtype)?|roximity(Mask|EventSubtype)?)|Column(NoResizing|UserResizingMask|AutoresizingMask)|View(ReverseSequentialColumnAutoresizingStyle|GridNone|S(olid(HorizontalGridLineMask|VerticalGridLineMask)|equentialColumnAutoresizingStyle)|NoColumnAutoresizing|UniformColumnAutoresizingStyle|FirstColumnOnlyAutoresizingStyle|LastColumnOnlyAutoresizingStyle)))|rackModeMatrix)|I(n(sert(CharFunctionKey|FunctionKey|LineFunctionKey)|t(Type|ernalS(criptError|pecifierError))|dexSubelement|validIndexSpecifierError|formational(Request|AlertStyle)|PredicateOperatorType)|talicFontMask|SO(2022JPStringEncoding|Latin(1StringEncoding|2StringEncoding))|dentityMappingCharacterCollection|llegalTextMovement|mage(R(ight|ep(MatchesDevice|LoadStatus(ReadingHeader|Completed|InvalidData|Un(expectedEOF|knownType)|WillNeedAllData)))|Below|C(ellType|ache(BySize|Never|Default|Always))|Interpolation(High|None|Default|Low)|O(nly|verlaps)|Frame(Gr(oove|ayBezel)|Button|None|Photo)|L(oadStatus(ReadError|C(ompleted|ancelled)|InvalidData|UnexpectedEOF)|eft)|A(lign(Right|Bottom(Right|Left)?|Center|Top(Right|Left)?|Left)|bove)))|O(n(State|eByteGlyphPacking|OffButton|lyScrollerArrows)|ther(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|TextMovement)|SF1OperatingSystem|pe(n(GL(GO(Re(setLibrary|tainRenderers)|ClearFormatCache|FormatCacheSize)|PFA(R(obust|endererID)|M(inimumPolicy|ulti(sample|Screen)|PSafe|aximumPolicy)|BackingStore|S(creenMask|te(ncilSize|reo)|ingleRenderer|upersample|ample(s|Buffers|Alpha))|NoRecovery|C(o(lor(Size|Float)|mpliant)|losestPolicy)|OffScreen|D(oubleBuffer|epthSize)|PixelBuffer|VirtualScreenCount|FullScreen|Window|A(cc(umSize|elerated)|ux(Buffers|DepthStencil)|l(phaSize|lRenderers))))|StepUnicodeReservedBase)|rationNotSupportedForKeyS(criptError|pecifierError))|ffState|KButton|rPredicateType|bjC(B(itfield|oolType)|S(hortType|tr(ingType|uctType)|electorType)|NoType|CharType|ObjectType|DoubleType|UnionType|PointerType|VoidType|FloatType|Long(Type|longType)|ArrayType))|D(i(s(c(losureBezelStyle|reteCapacityLevelIndicatorStyle)|playWindowRunLoopOrdering)|acriticInsensitivePredicateOption|rect(Selection|PredicateModifier))|o(c(ModalWindowMask|ument(Directory|ationDirectory))|ubleType|wn(TextMovement|ArrowFunctionKey))|e(s(cendingPageOrder|ktopDirectory)|cimalTabStopType|v(ice(NColorSpaceModel|IndependentModifierFlagsMask)|eloper(Directory|ApplicationDirectory))|fault(ControlTint|TokenStyle)|lete(Char(acter|FunctionKey)|FunctionKey|LineFunctionKey)|moApplicationDirectory)|a(yCalendarUnit|teFormatter(MediumStyle|Behavior(10|Default)|ShortStyle|NoStyle|FullStyle|LongStyle))|ra(wer(Clos(ingState|edState)|Open(ingState|State))|gOperation(Generic|Move|None|Copy|Delete|Private|Every|Link|All)))|U(ser(CancelledError|D(irectory|omainMask)|FunctionKey)|RL(Handle(NotLoaded|Load(Succeeded|InProgress|Failed))|CredentialPersistence(None|Permanent|ForSession))|n(scaledWindowMask|cachedRead|i(codeStringEncoding|talicFontMask|fiedTitleAndToolbarWindowMask)|d(o(CloseGroupingRunLoopOrdering|FunctionKey)|e(finedDateComponent|rline(Style(Single|None|Thick|Double)|Pattern(Solid|D(ot|ash(Dot(Dot)?)?)))))|known(ColorSpaceModel|P(ointingDevice|ageOrder)|KeyS(criptError|pecifierError))|boldFontMask)|tilityWindowMask|TF8StringEncoding|p(dateWindowsRunLoopOrdering|TextMovement|ArrowFunctionKey))|J(ustifiedTextAlignment|PEG(2000FileType|FileType)|apaneseEUC(GlyphPacking|StringEncoding))|P(o(s(t(Now|erFontMask|WhenIdle|ASAP)|iti(on(Replace|Be(fore|ginning)|End|After)|ve(IntType|DoubleType|FloatType)))|pUp(NoArrow|ArrowAt(Bottom|Center))|werOffEventType|rtraitOrientation)|NGFileType|ush(InCell(Mask)?|OnPushOffButton)|e(n(TipMask|UpperSideMask|PointingDevice|LowerSideMask)|riodic(Mask)?)|P(S(caleField|tatus(Title|Field)|aveButton)|N(ote(Title|Field)|ame(Title|Field))|CopiesField|TitleField|ImageButton|OptionsButton|P(a(perFeedButton|ge(Range(To|From)|ChoiceMatrix))|reviewButton)|LayoutButton)|lainTextTokenStyle|a(useFunctionKey|ragraphSeparatorCharacter|ge(DownFunctionKey|UpFunctionKey))|r(int(ing(ReplyLater|Success|Cancelled|Failure)|ScreenFunctionKey|erTable(NotFound|OK|Error)|FunctionKey)|o(p(ertyList(XMLFormat|MutableContainers(AndLeaves)?|BinaryFormat|Immutable|OpenStepFormat)|rietaryStringEncoding)|gressIndicator(BarStyle|SpinningStyle|Preferred(SmallThickness|Thickness|LargeThickness|AquaThickness)))|e(ssedTab|vFunctionKey))|L(HeightForm|CancelButton|TitleField|ImageButton|O(KButton|rientationMatrix)|UnitsButton|PaperNameButton|WidthForm))|E(n(terCharacter|d(sWith(Comparison|PredicateOperatorType)|FunctionKey))|v(e(nOddWindingRule|rySubelement)|aluatedObjectExpressionType)|qualTo(Comparison|PredicateOperatorType)|ra(serPointingDevice|CalendarUnit|DatePickerElementFlag)|x(clude(10|QuickDrawElementsIconCreationOption)|pandedFontMask|ecuteFunctionKey))|V(i(ew(M(in(XMargin|YMargin)|ax(XMargin|YMargin))|HeightSizable|NotSizable|WidthSizable)|aPanelFontAction)|erticalRuler|a(lidationErrorM(inimum|aximum)|riableExpressionType))|Key(SpecifierEvaluationScriptError|Down(Mask)?|Up(Mask)?|PathExpressionType|Value(MinusSetMutation|SetSetMutation|Change(Re(placement|moval)|Setting|Insertion)|IntersectSetMutation|ObservingOption(New|Old)|UnionSetMutation|ValidationError))|QTMovie(NormalPlayback|Looping(BackAndForthPlayback|Playback))|F(1(1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|7FunctionKey|i(nd(PanelAction(Replace(A(ndFind|ll(InSelection)?))?|S(howFindPanel|e(tFindString|lectAll(InSelection)?))|Next|Previous)|FunctionKey)|tPagination|le(Read(No(SuchFileError|PermissionError)|CorruptFileError|In(validFileNameError|applicableStringEncodingError)|Un(supportedSchemeError|knownError))|HandlingPanel(CancelButton|OKButton)|NoSuchFileError|ErrorM(inimum|aximum)|Write(NoPermissionError|In(validFileNameError|applicableStringEncodingError)|OutOfSpaceError|Un(supportedSchemeError|knownError))|LockingError)|xedPitchFontMask)|2(1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|o(nt(Mo(noSpaceTrait|dernSerifsClass)|BoldTrait|S(ymbolicClass|criptsClass|labSerifsClass|ansSerifClass)|C(o(ndensedTrait|llectionApplicationOnlyMask)|larendonSerifsClass)|TransitionalSerifsClass|I(ntegerAdvancementsRenderingMode|talicTrait)|O(ldStyleSerifsClass|rnamentalsClass)|DefaultRenderingMode|U(nknownClass|IOptimizedTrait)|Panel(S(hadowEffectModeMask|t(andardModesMask|rikethroughEffectModeMask)|izeModeMask)|CollectionModeMask|TextColorEffectModeMask|DocumentColorEffectModeMask|UnderlineEffectModeMask|FaceModeMask|All(ModesMask|EffectsModeMask))|ExpandedTrait|VerticalTrait|F(amilyClassMask|reeformSerifsClass)|Antialiased(RenderingMode|IntegerAdvancementsRenderingMode))|cusRing(Below|Type(None|Default|Exterior)|Only|Above)|urByteGlyphPacking|rm(attingError(M(inimum|aximum))?|FeedCharacter))|8FunctionKey|unction(ExpressionType|KeyMask)|3(1FunctionKey|2FunctionKey|3FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey)|9FunctionKey|4FunctionKey|P(RevertButton|S(ize(Title|Field)|etButton)|CurrentField|Preview(Button|Field))|l(oat(ingPointSamplesBitmapFormat|Type)|agsChanged(Mask)?)|axButton|5FunctionKey|6FunctionKey)|W(heelModeColorPanel|indow(s(NTOperatingSystem|CP125(1StringEncoding|2StringEncoding|3StringEncoding|4StringEncoding|0StringEncoding)|95(InterfaceStyle|OperatingSystem))|M(iniaturizeButton|ovedEventType)|Below|CloseButton|ToolbarButton|ZoomButton|Out|DocumentIconButton|ExposedEventType|Above)|orkspaceLaunch(NewInstance|InhibitingBackgroundOnly|Default|PreferringClassic|WithoutA(ctivation|ddingToRecents)|A(sync|nd(Hide(Others)?|Print)|llowingClassicStartup))|eek(day(CalendarUnit|OrdinalCalendarUnit)|CalendarUnit)|a(ntsBidiLevels|rningAlertStyle)|r(itingDirection(RightToLeft|Natural|LeftToRight)|apCalendarComponents))|L(i(stModeMatrix|ne(Moves(Right|Down|Up|Left)|B(order|reakBy(C(harWrapping|lipping)|Truncating(Middle|Head|Tail)|WordWrapping))|S(eparatorCharacter|weep(Right|Down|Up|Left))|ToBezierPathElement|DoesntMove|arSlider)|teralSearch|kePredicateOperatorType|ghterFontAction|braryDirectory)|ocalDomainMask|e(ssThan(Comparison|OrEqualTo(Comparison|PredicateOperatorType)|PredicateOperatorType)|ft(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|T(ext(Movement|Alignment)|ab(sBezelBorder|StopType))|ArrowFunctionKey))|a(yout(RightToLeft|NotDone|CantFit|OutOfGlyphs|Done|LeftToRight)|ndscapeOrientation)|ABColorSpaceModel)|A(sc(iiWithDoubleByteEUCGlyphPacking|endingPageOrder)|n(y(Type|PredicateModifier|EventMask)|choredSearch|imation(Blocking|Nonblocking(Threaded)?|E(ffect(DisappearingItemDefault|Poof)|ase(In(Out)?|Out))|Linear)|dPredicateType)|t(Bottom|tachmentCharacter|omicWrite|Top)|SCIIStringEncoding|d(obe(GB1CharacterCollection|CNS1CharacterCollection|Japan(1CharacterCollection|2CharacterCollection)|Korea1CharacterCollection)|dTraitFontAction|minApplicationDirectory)|uto(saveOperation|Pagination)|pp(lication(SupportDirectory|D(irectory|e(fined(Mask)?|legateReply(Success|Cancel|Failure)|activatedEventType))|ActivatedEventType)|KitDefined(Mask)?)|l(ternateKeyMask|pha(ShiftKeyMask|NonpremultipliedBitmapFormat|FirstBitmapFormat)|ert(SecondButtonReturn|ThirdButtonReturn|OtherReturn|DefaultReturn|ErrorReturn|FirstButtonReturn|AlternateReturn)|l(ScrollerParts|DomainsMask|PredicateModifier|LibrariesDirectory|ApplicationsDirectory))|rgument(sWrongScriptError|EvaluationScriptError)|bove(Bottom|Top)|WTEventType))\\b", + "name": "support.constant.cocoa.objc" + }, + "anonymous_pattern_4": { + "begin": "\\b(id)\\s*(?=<)", + "beginCaptures": { + "1": { + "name": "storage.type.objc" + } + }, + "end": "(?<=>)", + "name": "meta.id-with-protocol.objc", + "patterns": [ + { + "include": "#protocol_list" + } + ] + }, + "anonymous_pattern_5": { + "match": "\\b(NS_DURING|NS_HANDLER|NS_ENDHANDLER)\\b", + "name": "keyword.control.macro.objc" + }, + "anonymous_pattern_7": { + "captures": { + "1": { + "name": "punctuation.definition.keyword.objc" + } + }, + "match": "(@)(try|catch|finally|throw)\\b", + "name": "keyword.control.exception.objc" + }, + "anonymous_pattern_8": { + "captures": { + "1": { + "name": "punctuation.definition.keyword.objc" + } + }, + "match": "(@)(synchronized)\\b", + "name": "keyword.control.synchronize.objc" + }, + "anonymous_pattern_9": { + "captures": { + "1": { + "name": "punctuation.definition.keyword.objc" + } + }, + "match": "(@)(required|optional)\\b", + "name": "keyword.control.protocol-specification.objc" + }, + "apple_foundation_functional_macros": { + "begin": "(\\b(?:API_AVAILABLE|API_DEPRECATED|API_UNAVAILABLE|NS_AVAILABLE|NS_AVAILABLE_MAC|NS_AVAILABLE_IOS|NS_DEPRECATED|NS_DEPRECATED_MAC|NS_DEPRECATED_IOS|NS_SWIFT_NAME))(?:(?:\\s)+)?(\\()", + "end": "\\)", + "beginCaptures": { + "1": { + "name": "entity.name.function.preprocessor.apple-foundation.objc" + }, + "2": { + "name": "punctuation.section.macro.arguments.begin.bracket.round.apple-foundation.objc" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.macro.arguments.end.bracket.round.apple-foundation.objc" + } + }, + "name": "meta.preprocessor.macro.callable.apple-foundation.objc", + "patterns": [ + { + "include": "#c_lang" + } + ] + }, + "bracketed_content": { + "begin": "\\[", + "beginCaptures": { + "0": { + "name": "punctuation.section.scope.begin.objc" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.section.scope.end.objc" + } + }, + "name": "meta.bracketed.objc", + "patterns": [ + { + "begin": "(?=predicateWithFormat:)(?<=NSPredicate )(predicateWithFormat:)", + "beginCaptures": { + "1": { + "name": "support.function.any-method.objc" + }, + "2": { + "name": "punctuation.separator.arguments.objc" + } + }, + "end": "(?=\\])", + "name": "meta.function-call.predicate.objc", + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.separator.arguments.objc" + } + }, + "match": "\\bargument(Array|s)(:)", + "name": "support.function.any-method.name-of-parameter.objc" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.arguments.objc" + } + }, + "match": "\\b\\w+(:)", + "name": "invalid.illegal.unknown-method.objc" + }, + { + "begin": "@\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.objc" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.objc" + } + }, + "name": "string.quoted.double.objc", + "patterns": [ + { + "match": "\\b(AND|OR|NOT|IN)\\b", + "name": "keyword.operator.logical.predicate.cocoa.objc" + }, + { + "match": "\\b(ALL|ANY|SOME|NONE)\\b", + "name": "constant.language.predicate.cocoa.objc" + }, + { + "match": "\\b(NULL|NIL|SELF|TRUE|YES|FALSE|NO|FIRST|LAST|SIZE)\\b", + "name": "constant.language.predicate.cocoa.objc" + }, + { + "match": "\\b(MATCHES|CONTAINS|BEGINSWITH|ENDSWITH|BETWEEN)\\b", + "name": "keyword.operator.comparison.predicate.cocoa.objc" + }, + { + "match": "\\bC(ASEINSENSITIVE|I)\\b", + "name": "keyword.other.modifier.predicate.cocoa.objc" + }, + { + "match": "\\b(ANYKEY|SUBQUERY|CAST|TRUEPREDICATE|FALSEPREDICATE)\\b", + "name": "keyword.other.predicate.cocoa.objc" + }, + { + "match": "\\\\(\\\\|[abefnrtv'\"?]|[0-3]\\d{,2}|[4-7]\\d?|x[a-zA-Z0-9]+)", + "name": "constant.character.escape.objc" + }, + { + "match": "\\\\.", + "name": "invalid.illegal.unknown-escape.objc" + } + ] + }, + { + "include": "#special_variables" + }, + { + "include": "#c_functions" + }, + { + "include": "$base" + } + ] + }, + { + "begin": "(?=\\w)(?<=[\\w\\])\"] )(\\w+(?:(:)|(?=\\])))", + "beginCaptures": { + "1": { + "name": "support.function.any-method.objc" + }, + "2": { + "name": "punctuation.separator.arguments.objc" + } + }, + "end": "(?=\\])", + "name": "meta.function-call.objc", + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.separator.arguments.objc" + } + }, + "match": "\\b\\w+(:)", + "name": "support.function.any-method.name-of-parameter.objc" + }, + { + "include": "#special_variables" + }, + { + "include": "#c_functions" + }, + { + "include": "$base" + } + ] + }, + { + "include": "#special_variables" + }, + { + "include": "#c_functions" + }, + { + "include": "$self" + } + ] + }, + "c_functions": { + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.whitespace.support.function.leading.objc" + }, + "2": { + "name": "support.function.C99.objc" + } + }, + "match": "(\\s*)\\b(hypot(f|l)?|s(scanf|ystem|nprintf|ca(nf|lb(n(f|l)?|ln(f|l)?))|i(n(h(f|l)?|f|l)?|gn(al|bit))|tr(s(tr|pn)|nc(py|at|mp)|c(spn|hr|oll|py|at|mp)|to(imax|d|u(l(l)?|max)|k|f|l(d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(jmp|vbuf|locale|buf)|qrt(f|l)?|w(scanf|printf)|rand)|n(e(arbyint(f|l)?|xt(toward(f|l)?|after(f|l)?))|an(f|l)?)|c(s(in(h(f|l)?|f|l)?|qrt(f|l)?)|cos(h(f)?|f|l)?|imag(f|l)?|t(ime|an(h(f|l)?|f|l)?)|o(s(h(f|l)?|f|l)?|nj(f|l)?|pysign(f|l)?)|p(ow(f|l)?|roj(f|l)?)|e(il(f|l)?|xp(f|l)?)|l(o(ck|g(f|l)?)|earerr)|a(sin(h(f|l)?|f|l)?|cos(h(f|l)?|f|l)?|tan(h(f|l)?|f|l)?|lloc|rg(f|l)?|bs(f|l)?)|real(f|l)?|brt(f|l)?)|t(ime|o(upper|lower)|an(h(f|l)?|f|l)?|runc(f|l)?|gamma(f|l)?|mp(nam|file))|i(s(space|n(ormal|an)|cntrl|inf|digit|u(nordered|pper)|p(unct|rint)|finite|w(space|c(ntrl|type)|digit|upper|p(unct|rint)|lower|al(num|pha)|graph|xdigit|blank)|l(ower|ess(equal|greater)?)|al(num|pha)|gr(eater(equal)?|aph)|xdigit|blank)|logb(f|l)?|max(div|abs))|di(v|fftime)|_Exit|unget(c|wc)|p(ow(f|l)?|ut(s|c(har)?|wc(har)?)|error|rintf)|e(rf(c(f|l)?|f|l)?|x(it|p(2(f|l)?|f|l|m1(f|l)?)?))|v(s(scanf|nprintf|canf|printf|w(scanf|printf))|printf|f(scanf|printf|w(scanf|printf))|w(scanf|printf)|a_(start|copy|end|arg))|qsort|f(s(canf|e(tpos|ek))|close|tell|open|dim(f|l)?|p(classify|ut(s|c|w(s|c))|rintf)|e(holdexcept|set(e(nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(aiseexcept|ror)|get(e(nv|xceptflag)|round))|flush|w(scanf|ide|printf|rite)|loor(f|l)?|abs(f|l)?|get(s|c|pos|w(s|c))|re(open|e|ad|xp(f|l)?)|m(in(f|l)?|od(f|l)?|a(f|l|x(f|l)?)?))|l(d(iv|exp(f|l)?)|o(ngjmp|cal(time|econv)|g(1(p(f|l)?|0(f|l)?)|2(f|l)?|f|l|b(f|l)?)?)|abs|l(div|abs|r(int(f|l)?|ound(f|l)?))|r(int(f|l)?|ound(f|l)?)|gamma(f|l)?)|w(scanf|c(s(s(tr|pn)|nc(py|at|mp)|c(spn|hr|oll|py|at|mp)|to(imax|d|u(l(l)?|max)|k|f|l(d|l)?|mbs)|pbrk|ftime|len|r(chr|tombs)|xfrm)|to(b|mb)|rtomb)|printf|mem(set|c(hr|py|mp)|move))|a(s(sert|ctime|in(h(f|l)?|f|l)?)|cos(h(f|l)?|f|l)?|t(o(i|f|l(l)?)|exit|an(h(f|l)?|2(f|l)?|f|l)?)|b(s|ort))|g(et(s|c(har)?|env|wc(har)?)|mtime)|r(int(f|l)?|ound(f|l)?|e(name|alloc|wind|m(ove|quo(f|l)?|ainder(f|l)?))|a(nd|ise))|b(search|towc)|m(odf(f|l)?|em(set|c(hr|py|mp)|move)|ktime|alloc|b(s(init|towcs|rtowcs)|towc|len|r(towc|len))))\\b" + }, + { + "captures": { + "1": { + "name": "punctuation.whitespace.function-call.leading.objc" + }, + "2": { + "name": "support.function.any-method.objc" + }, + "3": { + "name": "punctuation.definition.parameters.objc" + } + }, + "match": "(?x) (?: (?= \\s ) (?:(?<=else|new|return) | (?<!\\w)) (\\s+))?\n \t\t\t(\\b \n \t\t\t\t(?!(while|for|do|if|else|switch|catch|enumerate|return|r?iterate)\\s*\\()(?:(?!NS)[A-Za-z_][A-Za-z0-9_]*+\\b | :: )++ # actual name\n \t\t\t)\n \t\t\t \\s*(\\()", + "name": "meta.function-call.objc" + } + ] + }, + "c_lang": { + "patterns": [ + { + "include": "#preprocessor-rule-enabled" + }, + { + "include": "#preprocessor-rule-disabled" + }, + { + "include": "#preprocessor-rule-conditional" + }, + { + "include": "#comments" + }, + { + "include": "#switch_statement" + }, + { + "match": "\\b(break|continue|do|else|for|goto|if|_Pragma|return|while)\\b", + "name": "keyword.control.objc" + }, + { + "include": "#storage_types" + }, + { + "match": "typedef", + "name": "keyword.other.typedef.objc" + }, + { + "match": "\\bin\\b", + "name": "keyword.other.in.objc" + }, + { + "match": "\\b(const|extern|register|restrict|static|volatile|inline|__block)\\b", + "name": "storage.modifier.objc" + }, + { + "match": "\\bk[A-Z]\\w*\\b", + "name": "constant.other.variable.mac-classic.objc" + }, + { + "match": "\\bg[A-Z]\\w*\\b", + "name": "variable.other.readwrite.global.mac-classic.objc" + }, + { + "match": "\\bs[A-Z]\\w*\\b", + "name": "variable.other.readwrite.static.mac-classic.objc" + }, + { + "match": "\\b(NULL|true|false|TRUE|FALSE)\\b", + "name": "constant.language.objc" + }, + { + "include": "#operators" + }, + { + "include": "#numbers" + }, + { + "include": "#strings" + }, + { + "include": "#special_variables" + }, + { + "begin": "(?x)\n^\\s* ((\\#)\\s*define) \\s+\t# define\n((?<id>[a-zA-Z_$][\\w$]*))\t # macro name\n(?:\n (\\()\n\t(\n\t \\s* \\g<id> \\s*\t\t # first argument\n\t ((,) \\s* \\g<id> \\s*)* # additional arguments\n\t (?:\\.\\.\\.)?\t\t\t# varargs ellipsis?\n\t)\n (\\))\n)?", + "beginCaptures": { + "1": { + "name": "keyword.control.directive.define.objc" + }, + "2": { + "name": "punctuation.definition.directive.objc" + }, + "3": { + "name": "entity.name.function.preprocessor.objc" + }, + "5": { + "name": "punctuation.definition.parameters.begin.objc" + }, + "6": { + "name": "variable.parameter.preprocessor.objc" + }, + "8": { + "name": "punctuation.separator.parameters.objc" + }, + "9": { + "name": "punctuation.definition.parameters.end.objc" + } + }, + "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.macro.objc", + "patterns": [ + { + "include": "#preprocessor-rule-define-line-contents" + } + ] + }, + { + "begin": "^\\s*((#)\\s*(error|warning))\\b\\s*", + "beginCaptures": { + "1": { + "name": "keyword.control.directive.diagnostic.$3.objc" + }, + "2": { + "name": "punctuation.definition.directive.objc" + } + }, + "end": "(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.diagnostic.objc", + "patterns": [ + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.objc" + } + }, + "end": "\"|(?<!\\\\)(?=\\s*\\n)", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.objc" + } + }, + "name": "string.quoted.double.objc", + "patterns": [ + { + "include": "#line_continuation_character" + } + ] + }, + { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.objc" + } + }, + "end": "'|(?<!\\\\)(?=\\s*\\n)", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.objc" + } + }, + "name": "string.quoted.single.objc", + "patterns": [ + { + "include": "#line_continuation_character" + } + ] + }, + { + "begin": "[^'\"]", + "end": "(?<!\\\\)(?=\\s*\\n)", + "name": "string.unquoted.single.objc", + "patterns": [ + { + "include": "#line_continuation_character" + }, + { + "include": "#comments" + } + ] + } + ] + }, + { + "begin": "^\\s*((#)\\s*(include(?:_next)?|import))\\b\\s*", + "beginCaptures": { + "1": { + "name": "keyword.control.directive.$3.objc" + }, + "2": { + "name": "punctuation.definition.directive.objc" + } + }, + "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.include.objc", + "patterns": [ + { + "include": "#line_continuation_character" + }, + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.objc" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.objc" + } + }, + "name": "string.quoted.double.include.objc" + }, + { + "begin": "<", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.objc" + } + }, + "end": ">", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.objc" + } + }, + "name": "string.quoted.other.lt-gt.include.objc" + } + ] + }, + { + "include": "#pragma-mark" + }, + { + "begin": "^\\s*((#)\\s*line)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.directive.line.objc" + }, + "2": { + "name": "punctuation.definition.directive.objc" + } + }, + "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.objc", + "patterns": [ + { + "include": "#strings" + }, + { + "include": "#numbers" + }, + { + "include": "#line_continuation_character" + } + ] + }, + { + "begin": "^\\s*(?:((#)\\s*undef))\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.directive.undef.objc" + }, + "2": { + "name": "punctuation.definition.directive.objc" + } + }, + "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.objc", + "patterns": [ + { + "match": "[a-zA-Z_$][\\w$]*", + "name": "entity.name.function.preprocessor.objc" + }, + { + "include": "#line_continuation_character" + } + ] + }, + { + "begin": "^\\s*(?:((#)\\s*pragma))\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.directive.pragma.objc" + }, + "2": { + "name": "punctuation.definition.directive.objc" + } + }, + "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.pragma.objc", + "patterns": [ + { + "include": "#strings" + }, + { + "match": "[a-zA-Z_$][\\w\\-$]*", + "name": "entity.other.attribute-name.pragma.preprocessor.objc" + }, + { + "include": "#numbers" + }, + { + "include": "#line_continuation_character" + } + ] + }, + { + "match": "\\b(u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t)\\b", + "name": "support.type.sys-types.objc" + }, + { + "match": "\\b(pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t)\\b", + "name": "support.type.pthread.objc" + }, + { + "match": "(?x) \\b\n(int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t\n|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t\n|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t\n|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t\n|uintmax_t|uintmax_t)\n\\b", + "name": "support.type.stdint.objc" + }, + { + "match": "\\b(noErr|kNilOptions|kInvalidID|kVariableLengthArray)\\b", + "name": "support.constant.mac-classic.objc" + }, + { + "match": "(?x) \\b\n(AbsoluteTime|Boolean|Byte|ByteCount|ByteOffset|BytePtr|CompTimeValue|ConstLogicalAddress|ConstStrFileNameParam\n|ConstStringPtr|Duration|Fixed|FixedPtr|Float32|Float32Point|Float64|Float80|Float96|FourCharCode|Fract|FractPtr\n|Handle|ItemCount|LogicalAddress|OptionBits|OSErr|OSStatus|OSType|OSTypePtr|PhysicalAddress|ProcessSerialNumber\n|ProcessSerialNumberPtr|ProcHandle|Ptr|ResType|ResTypePtr|ShortFixed|ShortFixedPtr|SignedByte|SInt16|SInt32|SInt64\n|SInt8|Size|StrFileName|StringHandle|StringPtr|TimeBase|TimeRecord|TimeScale|TimeValue|TimeValue64|UInt16|UInt32\n|UInt64|UInt8|UniChar|UniCharCount|UniCharCountPtr|UniCharPtr|UnicodeScalarValue|UniversalProcHandle|UniversalProcPtr\n|UnsignedFixed|UnsignedFixedPtr|UnsignedWide|UTF16Char|UTF32Char|UTF8Char)\n\\b", + "name": "support.type.mac-classic.objc" + }, + { + "match": "\\b([A-Za-z0-9_]+_t)\\b", + "name": "support.type.posix-reserved.objc" + }, + { + "include": "#block" + }, + { + "include": "#parens" + }, + { + "name": "meta.function.objc", + "begin": "(?<!\\w)(?!\\s*(?:not|compl|sizeof|not_eq|bitand|xor|bitor|and|or|and_eq|xor_eq|or_eq|alignof|alignas|_Alignof|_Alignas|while|for|do|if|else|goto|switch|return|break|case|continue|default|void|char|short|int|signed|unsigned|long|float|double|bool|_Bool|_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|NULL|true|false|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t|struct|union|enum|typedef|auto|register|static|extern|thread_local|inline|_Noreturn|const|volatile|restrict|_Atomic)\\s*\\()(?=[a-zA-Z_]\\w*\\s*\\()", + "end": "(?<=\\))", + "patterns": [ + { + "include": "#function-innards" + } + ] + }, + { + "include": "#line_continuation_character" + }, + { + "name": "meta.bracket.square.access.objc", + "begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))?(\\[)(?!\\])", + "beginCaptures": { + "1": { + "name": "variable.object.objc" + }, + "2": { + "name": "punctuation.definition.begin.bracket.square.objc" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.end.bracket.square.objc" + } + }, + "patterns": [ + { + "include": "#function-call-innards" + } + ] + }, + { + "name": "storage.modifier.array.bracket.square.objc", + "match": "\\[\\s*\\]" + }, + { + "match": ";", + "name": "punctuation.terminator.statement.objc" + }, + { + "match": ",", + "name": "punctuation.separator.delimiter.objc" + } + ], + "repository": { + "probably_a_parameter": { + "match": "(?<=(?:[a-zA-Z_0-9] |[&*>\\]\\)]))\\s*([a-zA-Z_]\\w*)\\s*(?=(?:\\[\\]\\s*)?(?:,|\\)))", + "captures": { + "1": { + "name": "variable.parameter.probably.objc" + } + } + }, + "access-method": { + "name": "meta.function-call.member.objc", + "begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))\\s*(?:(\\.)|(->))((?:(?:[a-zA-Z_][a-zA-Z_0-9]*)\\s*(?:(?:\\.)|(?:->)))*)\\s*([a-zA-Z_][a-zA-Z_0-9]*)(\\()", + "beginCaptures": { + "1": { + "name": "variable.object.objc" + }, + "2": { + "name": "punctuation.separator.dot-access.objc" + }, + "3": { + "name": "punctuation.separator.pointer-access.objc" + }, + "4": { + "patterns": [ + { + "match": "\\.", + "name": "punctuation.separator.dot-access.objc" + }, + { + "match": "->", + "name": "punctuation.separator.pointer-access.objc" + }, + { + "match": "[a-zA-Z_][a-zA-Z_0-9]*", + "name": "variable.object.objc" + }, + { + "name": "everything.else.objc", + "match": ".+" + } + ] + }, + "5": { + "name": "entity.name.function.member.objc" + }, + "6": { + "name": "punctuation.section.arguments.begin.bracket.round.function.member.objc" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.function.member.objc" + } + }, + "patterns": [ + { + "include": "#function-call-innards" + } + ] + }, + "block": { + "patterns": [ + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.objc" + } + }, + "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)", + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.objc" + } + }, + "name": "meta.block.objc", + "patterns": [ + { + "include": "#block_innards" + } + ] + } + ] + }, + "block_innards": { + "patterns": [ + { + "include": "#preprocessor-rule-enabled-block" + }, + { + "include": "#preprocessor-rule-disabled-block" + }, + { + "include": "#preprocessor-rule-conditional-block" + }, + { + "include": "#method_access" + }, + { + "include": "#member_access" + }, + { + "include": "#c_function_call" + }, + { + "name": "meta.initialization.objc", + "begin": "(?x)\n(?:\n (?:\n\t(?=\\s)(?<!else|new|return)\n\t(?<=\\w) \\s+(and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas) # or word + space before name\n )\n)\n(\n (?:[A-Za-z_][A-Za-z0-9_]*+ | :: )++ # actual name\n |\n (?:(?<=operator) (?:[-*&<>=+!]+ | \\(\\) | \\[\\]))\n)\n\\s*(\\() # opening bracket", + "beginCaptures": { + "1": { + "name": "variable.other.objc" + }, + "2": { + "name": "punctuation.section.parens.begin.bracket.round.initialization.objc" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.parens.end.bracket.round.initialization.objc" + } + }, + "patterns": [ + { + "include": "#function-call-innards" + } + ] + }, + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.objc" + } + }, + "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)", + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.objc" + } + }, + "patterns": [ + { + "include": "#block_innards" + } + ] + }, + { + "include": "#parens-block" + }, + { + "include": "$base" + } + ] + }, + "c_function_call": { + "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(?=\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)", + "end": "(?<=\\))(?!\\w)", + "name": "meta.function-call.objc", + "patterns": [ + { + "include": "#function-call-innards" + } + ] + }, + "comments": { + "patterns": [ + { + "captures": { + "1": { + "name": "meta.toc-list.banner.block.objc" + } + }, + "match": "^/\\* =(\\s*.*?)\\s*= \\*/$\\n?", + "name": "comment.block.objc" + }, + { + "begin": "/\\*", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.begin.objc" + } + }, + "end": "\\*/", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.end.objc" + } + }, + "name": "comment.block.objc" + }, + { + "captures": { + "1": { + "name": "meta.toc-list.banner.line.objc" + } + }, + "match": "^// =(\\s*.*?)\\s*=\\s*$\\n?", + "name": "comment.line.banner.objc" + }, + { + "begin": "(^[ \\t]+)?(?=//)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.objc" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": "//", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.objc" + } + }, + "end": "(?=\\n)", + "name": "comment.line.double-slash.objc", + "patterns": [ + { + "include": "#line_continuation_character" + } + ] + } + ] + } + ] + }, + "disabled": { + "begin": "^\\s*#\\s*if(n?def)?\\b.*$", + "end": "^\\s*#\\s*endif\\b", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + }, + "line_continuation_character": { + "patterns": [ + { + "match": "(\\\\)\\n", + "captures": { + "1": { + "name": "constant.character.escape.line-continuation.objc" + } + } + } + ] + }, + "parens": { + "name": "meta.parens.objc", + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.section.parens.begin.bracket.round.objc" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.parens.end.bracket.round.objc" + } + }, + "patterns": [ + { + "include": "$base" + } + ] + }, + "parens-block": { + "name": "meta.parens.block.objc", + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.section.parens.begin.bracket.round.objc" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.parens.end.bracket.round.objc" + } + }, + "patterns": [ + { + "include": "#block_innards" + }, + { + "match": "(?-mix:(?<!:):(?!:))", + "name": "punctuation.range-based.objc" + } + ] + }, + "pragma-mark": { + "captures": { + "1": { + "name": "meta.preprocessor.pragma.objc" + }, + "2": { + "name": "keyword.control.directive.pragma.pragma-mark.objc" + }, + "3": { + "name": "punctuation.definition.directive.objc" + }, + "4": { + "name": "entity.name.tag.pragma-mark.objc" + } + }, + "match": "^\\s*(((#)\\s*pragma\\s+mark)\\s+(.*))", + "name": "meta.section.objc" + }, + "operators": { + "patterns": [ + { + "match": "(?<![\\w$])(sizeof)(?![\\w$])", + "name": "keyword.operator.sizeof.objc" + }, + { + "match": "--", + "name": "keyword.operator.decrement.objc" + }, + { + "match": "\\+\\+", + "name": "keyword.operator.increment.objc" + }, + { + "match": "%=|\\+=|-=|\\*=|(?<!\\()/=", + "name": "keyword.operator.assignment.compound.objc" + }, + { + "match": "&=|\\^=|<<=|>>=|\\|=", + "name": "keyword.operator.assignment.compound.bitwise.objc" + }, + { + "match": "<<|>>", + "name": "keyword.operator.bitwise.shift.objc" + }, + { + "match": "!=|<=|>=|==|<|>", + "name": "keyword.operator.comparison.objc" + }, + { + "match": "&&|!|\\|\\|", + "name": "keyword.operator.logical.objc" + }, + { + "match": "&|\\||\\^|~", + "name": "keyword.operator.objc" + }, + { + "match": "=", + "name": "keyword.operator.assignment.objc" + }, + { + "match": "%|\\*|/|-|\\+", + "name": "keyword.operator.objc" + }, + { + "begin": "(\\?)", + "beginCaptures": { + "1": { + "name": "keyword.operator.ternary.objc" + } + }, + "end": "(:)", + "endCaptures": { + "1": { + "name": "keyword.operator.ternary.objc" + } + }, + "patterns": [ + { + "include": "#function-call-innards" + }, + { + "include": "$base" + } + ] + } + ] + }, + "strings": { + "patterns": [ + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.objc" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.objc" + } + }, + "name": "string.quoted.double.objc", + "patterns": [ + { + "include": "#string_escaped_char" + }, + { + "include": "#string_placeholder" + }, + { + "include": "#line_continuation_character" + } + ] + }, + { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.objc" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.objc" + } + }, + "name": "string.quoted.single.objc", + "patterns": [ + { + "include": "#string_escaped_char" + }, + { + "include": "#line_continuation_character" + } + ] + } + ] + }, + "string_escaped_char": { + "patterns": [ + { + "match": "(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3]\\d{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )", + "name": "constant.character.escape.objc" + }, + { + "match": "\\\\.", + "name": "invalid.illegal.unknown-escape.objc" + } + ] + }, + "string_placeholder": { + "patterns": [ + { + "match": "(?x) %\n(\\d+\\$)?\t\t\t\t\t\t # field (argument #)\n[#0\\- +']*\t\t\t\t\t\t # flags\n[,;:_]?\t\t\t\t\t\t\t # separator character (AltiVec)\n((-?\\d+)|\\*(-?\\d+\\$)?)?\t\t # minimum field width\n(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?\t# precision\n(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n[diouxXDOUeEfFgGaACcSspn%]\t\t # conversion type", + "name": "constant.other.placeholder.objc" + }, + { + "match": "(%)(?!\"\\s*(PRI|SCN))", + "captures": { + "1": { + "name": "invalid.illegal.placeholder.objc" + } + } + } + ] + }, + "storage_types": { + "patterns": [ + { + "match": "(?-mix:(?<!\\w)(?:void|char|short|int|signed|unsigned|long|float|double|bool|_Bool)(?!\\w))", + "name": "storage.type.built-in.primitive.objc" + }, + { + "match": "(?-mix:(?<!\\w)(?:_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t)(?!\\w))", + "name": "storage.type.built-in.objc" + }, + { + "match": "(?-mix:\\b(asm|__asm__|enum|struct|union)\\b)", + "name": "storage.type.$1.objc" + } + ] + }, + "vararg_ellipses": { + "match": "(?<!\\.)\\.\\.\\.(?!\\.)", + "name": "punctuation.vararg-ellipses.objc" + }, + "preprocessor-rule-conditional": { + "patterns": [ + { + "begin": "^\\s*((#)\\s*if(?:n?def)?\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objc" + }, + "1": { + "name": "keyword.control.directive.conditional.objc" + }, + "2": { + "name": "punctuation.definition.directive.objc" + } + }, + "end": "^\\s*((#)\\s*endif\\b)", + "endCaptures": { + "0": { + "name": "meta.preprocessor.objc" + }, + "1": { + "name": "keyword.control.directive.conditional.objc" + }, + "2": { + "name": "punctuation.definition.directive.objc" + } + }, + "patterns": [ + { + "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.objc", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "#preprocessor-rule-enabled-elif" + }, + { + "include": "#preprocessor-rule-enabled-else" + }, + { + "include": "#preprocessor-rule-disabled-elif" + }, + { + "begin": "^\\s*((#)\\s*elif\\b)", + "beginCaptures": { + "1": { + "name": "keyword.control.directive.conditional.objc" + }, + "2": { + "name": "punctuation.definition.directive.objc" + } + }, + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.objc", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "$base" + } + ] + }, + { + "match": "^\\s*#\\s*(else|elif|endif)\\b", + "captures": { + "0": { + "name": "invalid.illegal.stray-$1.objc" + } + } + } + ] + }, + "preprocessor-rule-conditional-block": { + "patterns": [ + { + "begin": "^\\s*((#)\\s*if(?:n?def)?\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objc" + }, + "1": { + "name": "keyword.control.directive.conditional.objc" + }, + "2": { + "name": "punctuation.definition.directive.objc" + } + }, + "end": "^\\s*((#)\\s*endif\\b)", + "endCaptures": { + "0": { + "name": "meta.preprocessor.objc" + }, + "1": { + "name": "keyword.control.directive.conditional.objc" + }, + "2": { + "name": "punctuation.definition.directive.objc" + } + }, + "patterns": [ + { + "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.objc", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "#preprocessor-rule-enabled-elif-block" + }, + { + "include": "#preprocessor-rule-enabled-else-block" + }, + { + "include": "#preprocessor-rule-disabled-elif" + }, + { + "begin": "^\\s*((#)\\s*elif\\b)", + "beginCaptures": { + "1": { + "name": "keyword.control.directive.conditional.objc" + }, + "2": { + "name": "punctuation.definition.directive.objc" + } + }, + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.objc", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "#block_innards" + } + ] + }, + { + "match": "^\\s*#\\s*(else|elif|endif)\\b", + "captures": { + "0": { + "name": "invalid.illegal.stray-$1.objc" + } + } + } + ] + }, + "preprocessor-rule-conditional-line": { + "patterns": [ + { + "match": "(?:\\bdefined\\b\\s*$)|(?:\\bdefined\\b(?=\\s*\\(*\\s*(?:(?!defined\\b)[a-zA-Z_$][\\w$]*\\b)\\s*\\)*\\s*(?:\\n|//|/\\*|\\?|\\:|&&|\\|\\||\\\\\\s*\\n)))", + "name": "keyword.control.directive.conditional.objc" + }, + { + "match": "\\bdefined\\b", + "name": "invalid.illegal.macro-name.objc" + }, + { + "include": "#comments" + }, + { + "include": "#strings" + }, + { + "include": "#numbers" + }, + { + "begin": "\\?", + "beginCaptures": { + "0": { + "name": "keyword.operator.ternary.objc" + } + }, + "end": ":", + "endCaptures": { + "0": { + "name": "keyword.operator.ternary.objc" + } + }, + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "#operators" + }, + { + "match": "\\b(NULL|true|false|TRUE|FALSE)\\b", + "name": "constant.language.objc" + }, + { + "match": "[a-zA-Z_$][\\w$]*", + "name": "entity.name.function.preprocessor.objc" + }, + { + "include": "#line_continuation_character" + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.section.parens.begin.bracket.round.objc" + } + }, + "end": "\\)|(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", + "endCaptures": { + "0": { + "name": "punctuation.section.parens.end.bracket.round.objc" + } + }, + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + } + ] + }, + "preprocessor-rule-disabled": { + "patterns": [ + { + "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objc" + }, + "1": { + "name": "keyword.control.directive.conditional.objc" + }, + "2": { + "name": "punctuation.definition.directive.objc" + } + }, + "end": "^\\s*((#)\\s*endif\\b)", + "endCaptures": { + "0": { + "name": "meta.preprocessor.objc" + }, + "1": { + "name": "keyword.control.directive.conditional.objc" + }, + "2": { + "name": "punctuation.definition.directive.objc" + } + }, + "patterns": [ + { + "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)", + "name": "meta.preprocessor.objc", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "#comments" + }, + { + "include": "#preprocessor-rule-enabled-elif" + }, + { + "include": "#preprocessor-rule-enabled-else" + }, + { + "include": "#preprocessor-rule-disabled-elif" + }, + { + "begin": "^\\s*((#)\\s*elif\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objc" + }, + "1": { + "name": "keyword.control.directive.conditional.objc" + }, + "2": { + "name": "punctuation.definition.directive.objc" + } + }, + "end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))", + "patterns": [ + { + "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.objc", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "$base" + } + ] + }, + { + "contentName": "comment.block.preprocessor.if-branch.objc", + "begin": "\\n", + "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + } + ] + } + ] + }, + "preprocessor-rule-disabled-block": { + "patterns": [ + { + "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objc" + }, + "1": { + "name": "keyword.control.directive.conditional.objc" + }, + "2": { + "name": "punctuation.definition.directive.objc" + } + }, + "end": "^\\s*((#)\\s*endif\\b)", + "endCaptures": { + "0": { + "name": "meta.preprocessor.objc" + }, + "1": { + "name": "keyword.control.directive.conditional.objc" + }, + "2": { + "name": "punctuation.definition.directive.objc" + } + }, + "patterns": [ + { + "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)", + "name": "meta.preprocessor.objc", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "#comments" + }, + { + "include": "#preprocessor-rule-enabled-elif-block" + }, + { + "include": "#preprocessor-rule-enabled-else-block" + }, + { + "include": "#preprocessor-rule-disabled-elif" + }, + { + "begin": "^\\s*((#)\\s*elif\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objc" + }, + "1": { + "name": "keyword.control.directive.conditional.objc" + }, + "2": { + "name": "punctuation.definition.directive.objc" + } + }, + "end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))", + "patterns": [ + { + "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.objc", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "#block_innards" + } + ] + }, + { + "contentName": "comment.block.preprocessor.if-branch.in-block.objc", + "begin": "\\n", + "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + } + ] + } + ] + }, + "preprocessor-rule-disabled-elif": { + "begin": "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objc" + }, + "1": { + "name": "keyword.control.directive.conditional.objc" + }, + "2": { + "name": "punctuation.definition.directive.objc" + } + }, + "end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))", + "patterns": [ + { + "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.objc", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "#comments" + }, + { + "contentName": "comment.block.preprocessor.elif-branch.objc", + "begin": "\\n", + "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + } + ] + }, + "preprocessor-rule-enabled": { + "patterns": [ + { + "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objc" + }, + "1": { + "name": "keyword.control.directive.conditional.objc" + }, + "2": { + "name": "punctuation.definition.directive.objc" + }, + "3": { + "name": "constant.numeric.preprocessor.objc" + } + }, + "end": "^\\s*((#)\\s*endif\\b)", + "endCaptures": { + "0": { + "name": "meta.preprocessor.objc" + }, + "1": { + "name": "keyword.control.directive.conditional.objc" + }, + "2": { + "name": "punctuation.definition.directive.objc" + } + }, + "patterns": [ + { + "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)", + "name": "meta.preprocessor.objc", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "#comments" + }, + { + "contentName": "comment.block.preprocessor.else-branch.objc", + "begin": "^\\s*((#)\\s*else\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objc" + }, + "1": { + "name": "keyword.control.directive.conditional.objc" + }, + "2": { + "name": "punctuation.definition.directive.objc" + } + }, + "end": "(?=^\\s*((#)\\s*endif\\b))", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + }, + { + "contentName": "comment.block.preprocessor.if-branch.objc", + "begin": "^\\s*((#)\\s*elif\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objc" + }, + "1": { + "name": "keyword.control.directive.conditional.objc" + }, + "2": { + "name": "punctuation.definition.directive.objc" + } + }, + "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + }, + { + "begin": "\\n", + "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", + "patterns": [ + { + "include": "$base" + } + ] + } + ] + } + ] + }, + "preprocessor-rule-enabled-block": { + "patterns": [ + { + "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objc" + }, + "1": { + "name": "keyword.control.directive.conditional.objc" + }, + "2": { + "name": "punctuation.definition.directive.objc" + } + }, + "end": "^\\s*((#)\\s*endif\\b)", + "endCaptures": { + "0": { + "name": "meta.preprocessor.objc" + }, + "1": { + "name": "keyword.control.directive.conditional.objc" + }, + "2": { + "name": "punctuation.definition.directive.objc" + } + }, + "patterns": [ + { + "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)", + "name": "meta.preprocessor.objc", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "#comments" + }, + { + "contentName": "comment.block.preprocessor.else-branch.in-block.objc", + "begin": "^\\s*((#)\\s*else\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objc" + }, + "1": { + "name": "keyword.control.directive.conditional.objc" + }, + "2": { + "name": "punctuation.definition.directive.objc" + } + }, + "end": "(?=^\\s*((#)\\s*endif\\b))", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + }, + { + "contentName": "comment.block.preprocessor.if-branch.in-block.objc", + "begin": "^\\s*((#)\\s*elif\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objc" + }, + "1": { + "name": "keyword.control.directive.conditional.objc" + }, + "2": { + "name": "punctuation.definition.directive.objc" + } + }, + "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + }, + { + "begin": "\\n", + "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", + "patterns": [ + { + "include": "#block_innards" + } + ] + } + ] + } + ] + }, + "preprocessor-rule-enabled-elif": { + "begin": "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objc" + }, + "1": { + "name": "keyword.control.directive.conditional.objc" + }, + "2": { + "name": "punctuation.definition.directive.objc" + } + }, + "end": "(?=^\\s*((#)\\s*endif\\b))", + "patterns": [ + { + "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.objc", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "#comments" + }, + { + "begin": "\\n", + "end": "(?=^\\s*((#)\\s*(?:endif)\\b))", + "patterns": [ + { + "contentName": "comment.block.preprocessor.elif-branch.objc", + "begin": "^\\s*((#)\\s*(else)\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objc" + }, + "1": { + "name": "keyword.control.directive.conditional.objc" + }, + "2": { + "name": "punctuation.definition.directive.objc" + } + }, + "end": "(?=^\\s*((#)\\s*endif\\b))", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + }, + { + "contentName": "comment.block.preprocessor.elif-branch.objc", + "begin": "^\\s*((#)\\s*(elif)\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objc" + }, + "1": { + "name": "keyword.control.directive.conditional.objc" + }, + "2": { + "name": "punctuation.definition.directive.objc" + } + }, + "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + }, + { + "include": "$base" + } + ] + } + ] + }, + "preprocessor-rule-enabled-elif-block": { + "begin": "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objc" + }, + "1": { + "name": "keyword.control.directive.conditional.objc" + }, + "2": { + "name": "punctuation.definition.directive.objc" + } + }, + "end": "(?=^\\s*((#)\\s*endif\\b))", + "patterns": [ + { + "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.objc", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "#comments" + }, + { + "begin": "\\n", + "end": "(?=^\\s*((#)\\s*(?:endif)\\b))", + "patterns": [ + { + "contentName": "comment.block.preprocessor.elif-branch.in-block.objc", + "begin": "^\\s*((#)\\s*(else)\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objc" + }, + "1": { + "name": "keyword.control.directive.conditional.objc" + }, + "2": { + "name": "punctuation.definition.directive.objc" + } + }, + "end": "(?=^\\s*((#)\\s*endif\\b))", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + }, + { + "contentName": "comment.block.preprocessor.elif-branch.objc", + "begin": "^\\s*((#)\\s*(elif)\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objc" + }, + "1": { + "name": "keyword.control.directive.conditional.objc" + }, + "2": { + "name": "punctuation.definition.directive.objc" + } + }, + "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + }, + { + "include": "#block_innards" + } + ] + } + ] + }, + "preprocessor-rule-enabled-else": { + "begin": "^\\s*((#)\\s*else\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objc" + }, + "1": { + "name": "keyword.control.directive.conditional.objc" + }, + "2": { + "name": "punctuation.definition.directive.objc" + } + }, + "end": "(?=^\\s*((#)\\s*endif\\b))", + "patterns": [ + { + "include": "$base" + } + ] + }, + "preprocessor-rule-enabled-else-block": { + "begin": "^\\s*((#)\\s*else\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objc" + }, + "1": { + "name": "keyword.control.directive.conditional.objc" + }, + "2": { + "name": "punctuation.definition.directive.objc" + } + }, + "end": "(?=^\\s*((#)\\s*endif\\b))", + "patterns": [ + { + "include": "#block_innards" + } + ] + }, + "preprocessor-rule-define-line-contents": { + "patterns": [ + { + "include": "#vararg_ellipses" + }, + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.objc" + } + }, + "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)", + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.objc" + } + }, + "name": "meta.block.objc", + "patterns": [ + { + "include": "#preprocessor-rule-define-line-blocks" + } + ] + }, + { + "match": "\\(", + "name": "punctuation.section.parens.begin.bracket.round.objc" + }, + { + "match": "\\)", + "name": "punctuation.section.parens.end.bracket.round.objc" + }, + { + "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas|asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void)\\s*\\()\n(?=\n (?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name\n |\n (?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)", + "end": "(?<=\\))(?!\\w)|(?<!\\\\)(?=\\s*\\n)", + "name": "meta.function.objc", + "patterns": [ + { + "include": "#preprocessor-rule-define-line-functions" + } + ] + }, + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.objc" + } + }, + "end": "\"|(?<!\\\\)(?=\\s*\\n)", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.objc" + } + }, + "name": "string.quoted.double.objc", + "patterns": [ + { + "include": "#string_escaped_char" + }, + { + "include": "#string_placeholder" + }, + { + "include": "#line_continuation_character" + } + ] + }, + { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.objc" + } + }, + "end": "'|(?<!\\\\)(?=\\s*\\n)", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.objc" + } + }, + "name": "string.quoted.single.objc", + "patterns": [ + { + "include": "#string_escaped_char" + }, + { + "include": "#line_continuation_character" + } + ] + }, + { + "include": "#method_access" + }, + { + "include": "#member_access" + }, + { + "include": "$base" + } + ] + }, + "preprocessor-rule-define-line-blocks": { + "patterns": [ + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.objc" + } + }, + "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)", + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.objc" + } + }, + "patterns": [ + { + "include": "#preprocessor-rule-define-line-blocks" + }, + { + "include": "#preprocessor-rule-define-line-contents" + } + ] + }, + { + "include": "#preprocessor-rule-define-line-contents" + } + ] + }, + "preprocessor-rule-define-line-functions": { + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#storage_types" + }, + { + "include": "#vararg_ellipses" + }, + { + "include": "#method_access" + }, + { + "include": "#member_access" + }, + { + "include": "#operators" + }, + { + "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()", + "beginCaptures": { + "1": { + "name": "entity.name.function.objc" + }, + "2": { + "name": "punctuation.section.arguments.begin.bracket.round.objc" + } + }, + "end": "(\\))|(?<!\\\\)(?=\\s*\\n)", + "endCaptures": { + "1": { + "name": "punctuation.section.arguments.end.bracket.round.objc" + } + }, + "patterns": [ + { + "include": "#preprocessor-rule-define-line-functions" + } + ] + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.section.parens.begin.bracket.round.objc" + } + }, + "end": "(\\))|(?<!\\\\)(?=\\s*\\n)", + "endCaptures": { + "1": { + "name": "punctuation.section.parens.end.bracket.round.objc" + } + }, + "patterns": [ + { + "include": "#preprocessor-rule-define-line-functions" + } + ] + }, + { + "include": "#preprocessor-rule-define-line-contents" + } + ] + }, + "function-innards": { + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#storage_types" + }, + { + "include": "#operators" + }, + { + "include": "#vararg_ellipses" + }, + { + "name": "meta.function.definition.parameters.objc", + "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()", + "beginCaptures": { + "1": { + "name": "entity.name.function.objc" + }, + "2": { + "name": "punctuation.section.parameters.begin.bracket.round.objc" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.parameters.end.bracket.round.objc" + } + }, + "patterns": [ + { + "include": "#probably_a_parameter" + }, + { + "include": "#function-innards" + } + ] + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.section.parens.begin.bracket.round.objc" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.parens.end.bracket.round.objc" + } + }, + "patterns": [ + { + "include": "#function-innards" + } + ] + }, + { + "include": "$base" + } + ] + }, + "function-call-innards": { + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#storage_types" + }, + { + "include": "#method_access" + }, + { + "include": "#member_access" + }, + { + "include": "#operators" + }, + { + "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()", + "beginCaptures": { + "1": { + "name": "entity.name.function.objc" + }, + "2": { + "name": "punctuation.section.arguments.begin.bracket.round.objc" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.objc" + } + }, + "patterns": [ + { + "include": "#function-call-innards" + } + ] + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.section.parens.begin.bracket.round.objc" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.parens.end.bracket.round.objc" + } + }, + "patterns": [ + { + "include": "#function-call-innards" + } + ] + }, + { + "include": "#block_innards" + } + ] + }, + "default_statement": { + "name": "meta.conditional.case.objc", + "begin": "((?<!\\w)default(?!\\w))", + "beginCaptures": { + "1": { + "name": "keyword.control.default.objc" + } + }, + "end": "(:)", + "endCaptures": { + "1": { + "name": "punctuation.separator.case.default.objc" + } + }, + "patterns": [ + { + "include": "#conditional_context" + } + ] + }, + "case_statement": { + "name": "meta.conditional.case.objc", + "begin": "((?<!\\w)case(?!\\w))", + "beginCaptures": { + "1": { + "name": "keyword.control.case.objc" + } + }, + "end": "(:)", + "endCaptures": { + "1": { + "name": "punctuation.separator.case.objc" + } + }, + "patterns": [ + { + "include": "#conditional_context" + } + ] + }, + "switch_statement": { + "name": "meta.block.switch.objc", + "begin": "(((?<!\\w)switch(?!\\w)))", + "beginCaptures": { + "1": { + "name": "meta.head.switch.objc" + }, + "2": { + "name": "keyword.control.switch.objc" + } + }, + "end": "(?:(?<=\\})|(?=[;>\\[\\]=]))", + "patterns": [ + { + "name": "meta.head.switch.objc", + "begin": "\\G ?", + "end": "((?:\\{|(?=;)))", + "endCaptures": { + "1": { + "name": "punctuation.section.block.begin.bracket.curly.switch.objc" + } + }, + "patterns": [ + { + "include": "#switch_conditional_parentheses" + }, + { + "include": "$base" + } + ] + }, + { + "name": "meta.body.switch.objc", + "begin": "(?<=\\{)", + "end": "(\\})", + "endCaptures": { + "1": { + "name": "punctuation.section.block.end.bracket.curly.switch.objc" + } + }, + "patterns": [ + { + "include": "#default_statement" + }, + { + "include": "#case_statement" + }, + { + "include": "$base" + }, + { + "include": "#block_innards" + } + ] + }, + { + "name": "meta.tail.switch.objc", + "begin": "(?<=})[\\s\\n]*", + "end": "[\\s\\n]*(?=;)", + "patterns": [ + { + "include": "$base" + } + ] + } + ] + }, + "switch_conditional_parentheses": { + "name": "meta.conditional.switch.objc", + "begin": "(\\()", + "beginCaptures": { + "1": { + "name": "punctuation.section.parens.begin.bracket.round.conditional.switch.objc" + } + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.section.parens.end.bracket.round.conditional.switch.objc" + } + }, + "patterns": [ + { + "include": "#conditional_context" + } + ] + }, + "static_assert": { + "begin": "(static_assert|_Static_assert)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "keyword.other.static_assert.objc" + }, + "2": { + "name": "punctuation.section.arguments.begin.bracket.round.objc" + } + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.section.arguments.end.bracket.round.objc" + } + }, + "patterns": [ + { + "name": "meta.static_assert.message.objc", + "begin": "(,)\\s*(?=(?:L|u8|u|U\\s*\\\")?)", + "beginCaptures": { + "1": { + "name": "punctuation.separator.delimiter.objc" + } + }, + "end": "(?=\\))", + "patterns": [ + { + "include": "#string_context" + }, + { + "include": "#string_context_c" + } + ] + }, + { + "include": "#function_call_context" + } + ] + }, + "conditional_context": { + "patterns": [ + { + "include": "$base" + }, + { + "include": "#block_innards" + } + ] + }, + "member_access": { + "match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?-mix:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*(\\b(?!(?:void|char|short|int|signed|unsigned|long|float|double|bool|_Bool|_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t))[a-zA-Z_]\\w*\\b(?!\\())", + "captures": { + "1": { + "patterns": [ + { + "include": "#special_variables" + }, + { + "name": "variable.other.object.access.objc", + "match": "(.+)" + } + ] + }, + "2": { + "name": "punctuation.separator.dot-access.objc" + }, + "3": { + "name": "punctuation.separator.pointer-access.objc" + }, + "4": { + "patterns": [ + { + "include": "#member_access" + }, + { + "include": "#method_access" + }, + { + "match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))", + "captures": { + "1": { + "patterns": [ + { + "include": "#special_variables" + }, + { + "name": "variable.other.object.access.objc", + "match": "(.+)" + } + ] + }, + "2": { + "name": "punctuation.separator.dot-access.objc" + }, + "3": { + "name": "punctuation.separator.pointer-access.objc" + } + } + } + ] + }, + "5": { + "name": "variable.other.member.objc" + } + } + }, + "method_access": { + "contentName": "meta.function-call.member.objc", + "begin": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?-mix:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*([a-zA-Z_]\\w*)(\\()", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#special_variables" + }, + { + "name": "variable.other.object.access.objc", + "match": "(.+)" + } + ] + }, + "2": { + "name": "punctuation.separator.dot-access.objc" + }, + "3": { + "name": "punctuation.separator.pointer-access.objc" + }, + "4": { + "patterns": [ + { + "include": "#member_access" + }, + { + "include": "#method_access" + }, + { + "match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))", + "captures": { + "1": { + "patterns": [ + { + "include": "#special_variables" + }, + { + "name": "variable.other.object.access.objc", + "match": "(.+)" + } + ] + }, + "2": { + "name": "punctuation.separator.dot-access.objc" + }, + "3": { + "name": "punctuation.separator.pointer-access.objc" + } + } + } + ] + }, + "5": { + "name": "entity.name.function.member.objc" + }, + "6": { + "name": "punctuation.section.arguments.begin.bracket.round.function.member.objc" + } + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.section.arguments.end.bracket.round.function.member.objc" + } + }, + "patterns": [ + { + "include": "#function-call-innards" + } + ] + }, + "numbers": { + "begin": "(?<!\\w)(?=\\d|\\.\\d)", + "end": "(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))", + "patterns": [ + { + "match": "(\\G0[xX])(?:([0-9a-fA-F](?:(?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?((?:(?<=[0-9a-fA-F])\\.|\\.(?=[0-9a-fA-F])))(?:([0-9a-fA-F](?:(?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?(?:((?<!')([pP])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:([lLfF](?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))", + "captures": { + "1": { + "name": "keyword.other.unit.hexadecimal.objc" + }, + "2": { + "name": "constant.numeric.hexadecimal.objc", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.objc" + } + ] + }, + "3": { + "name": "punctuation.separator.constant.numeric.objc" + }, + "4": { + "name": "constant.numeric.hexadecimal.objc" + }, + "5": { + "name": "constant.numeric.hexadecimal.objc", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.objc" + } + ] + }, + "6": { + "name": "punctuation.separator.constant.numeric.objc" + }, + "8": { + "name": "keyword.other.unit.exponent.hexadecimal.objc" + }, + "9": { + "name": "keyword.operator.plus.exponent.hexadecimal.objc" + }, + "10": { + "name": "keyword.operator.minus.exponent.hexadecimal.objc" + }, + "11": { + "name": "constant.numeric.exponent.hexadecimal.objc", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.objc" + } + ] + }, + "12": { + "name": "keyword.other.unit.suffix.floating-point.objc" + } + } + }, + { + "match": "(\\G(?=[0-9.])(?!0[xXbB]))(?:([0-9](?:(?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?((?:(?<=[0-9])\\.|\\.(?=[0-9])))(?:([0-9](?:(?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?(?:((?<!')([eE])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:([lLfF](?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))", + "captures": { + "2": { + "name": "constant.numeric.decimal.objc", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.objc" + } + ] + }, + "3": { + "name": "punctuation.separator.constant.numeric.objc" + }, + "4": { + "name": "constant.numeric.decimal.point.objc" + }, + "5": { + "name": "constant.numeric.decimal.objc", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.objc" + } + ] + }, + "6": { + "name": "punctuation.separator.constant.numeric.objc" + }, + "8": { + "name": "keyword.other.unit.exponent.decimal.objc" + }, + "9": { + "name": "keyword.operator.plus.exponent.decimal.objc" + }, + "10": { + "name": "keyword.operator.minus.exponent.decimal.objc" + }, + "11": { + "name": "constant.numeric.exponent.decimal.objc", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.objc" + } + ] + }, + "12": { + "name": "keyword.other.unit.suffix.floating-point.objc" + } + } + }, + { + "match": "(\\G0[bB])([01](?:(?:[01]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))", + "captures": { + "1": { + "name": "keyword.other.unit.binary.objc" + }, + "2": { + "name": "constant.numeric.binary.objc", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.objc" + } + ] + }, + "3": { + "name": "punctuation.separator.constant.numeric.objc" + }, + "4": { + "name": "keyword.other.unit.suffix.integer.objc" + } + } + }, + { + "match": "(\\G0)((?:(?:[0-7]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))+)(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))", + "captures": { + "1": { + "name": "keyword.other.unit.octal.objc" + }, + "2": { + "name": "constant.numeric.octal.objc", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.objc" + } + ] + }, + "3": { + "name": "punctuation.separator.constant.numeric.objc" + }, + "4": { + "name": "keyword.other.unit.suffix.integer.objc" + } + } + }, + { + "match": "(\\G0[xX])([0-9a-fA-F](?:(?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)(?:((?<!')([pP])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))", + "captures": { + "1": { + "name": "keyword.other.unit.hexadecimal.objc" + }, + "2": { + "name": "constant.numeric.hexadecimal.objc", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.objc" + } + ] + }, + "3": { + "name": "punctuation.separator.constant.numeric.objc" + }, + "5": { + "name": "keyword.other.unit.exponent.hexadecimal.objc" + }, + "6": { + "name": "keyword.operator.plus.exponent.hexadecimal.objc" + }, + "7": { + "name": "keyword.operator.minus.exponent.hexadecimal.objc" + }, + "8": { + "name": "constant.numeric.exponent.hexadecimal.objc", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.objc" + } + ] + }, + "9": { + "name": "keyword.other.unit.suffix.integer.objc" + } + } + }, + { + "match": "(\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:(?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)(?:((?<!')([eE])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))", + "captures": { + "2": { + "name": "constant.numeric.decimal.objc", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.objc" + } + ] + }, + "3": { + "name": "punctuation.separator.constant.numeric.objc" + }, + "5": { + "name": "keyword.other.unit.exponent.decimal.objc" + }, + "6": { + "name": "keyword.operator.plus.exponent.decimal.objc" + }, + "7": { + "name": "keyword.operator.minus.exponent.decimal.objc" + }, + "8": { + "name": "constant.numeric.exponent.decimal.objc", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.objc" + } + ] + }, + "9": { + "name": "keyword.other.unit.suffix.integer.objc" + } + } + }, + { + "match": "(?:(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))+", + "name": "invalid.illegal.constant.numeric.objc" + } + ] + } + } + }, + "comment": { + "patterns": [ + { + "begin": "/\\*", + "captures": { + "0": { + "name": "punctuation.definition.comment.objc" + } + }, + "end": "\\*/", + "name": "comment.block.objc" + }, + { + "begin": "(^[ \\t]+)?(?=//)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.objc" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": "//", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.objc" + } + }, + "end": "\\n", + "name": "comment.line.double-slash.objc", + "patterns": [ + { + "match": "(?>\\\\\\s*\\n)", + "name": "punctuation.separator.continuation.objc" + } + ] + } + ] + } + ] + }, + "disabled": { + "begin": "^\\s*#\\s*if(n?def)?\\b.*$", + "comment": "eat nested preprocessor if(def)s", + "end": "^\\s*#\\s*endif\\b.*$", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + }, + "implementation_innards": { + "patterns": [ + { + "include": "#preprocessor-rule-enabled-implementation" + }, + { + "include": "#preprocessor-rule-disabled-implementation" + }, + { + "include": "#preprocessor-rule-other-implementation" + }, + { + "include": "#property_directive" + }, + { + "include": "#method_super" + }, + { + "include": "$base" + } + ] + }, + "interface_innards": { + "patterns": [ + { + "include": "#preprocessor-rule-enabled-interface" + }, + { + "include": "#preprocessor-rule-disabled-interface" + }, + { + "include": "#preprocessor-rule-other-interface" + }, + { + "include": "#properties" + }, + { + "include": "#protocol_list" + }, + { + "include": "#method" + }, + { + "include": "$base" + } + ] + }, + "method": { + "begin": "^(-|\\+)\\s*", + "end": "(?=\\{|#)|;", + "name": "meta.function.objc", + "patterns": [ + { + "begin": "(\\()", + "beginCaptures": { + "1": { + "name": "punctuation.definition.type.begin.objc" + } + }, + "end": "(\\))\\s*(\\w+\\b)", + "endCaptures": { + "1": { + "name": "punctuation.definition.type.end.objc" + }, + "2": { + "name": "entity.name.function.objc" + } + }, + "name": "meta.return-type.objc", + "patterns": [ + { + "include": "#protocol_list" + }, + { + "include": "#protocol_type_qualifier" + }, + { + "include": "$base" + } + ] + }, + { + "match": "\\b\\w+(?=:)", + "name": "entity.name.function.name-of-parameter.objc" + }, + { + "begin": "((:))\\s*(\\()", + "beginCaptures": { + "1": { + "name": "entity.name.function.name-of-parameter.objc" + }, + "2": { + "name": "punctuation.separator.arguments.objc" + }, + "3": { + "name": "punctuation.definition.type.begin.objc" + } + }, + "end": "(\\))\\s*(\\w+\\b)?", + "endCaptures": { + "1": { + "name": "punctuation.definition.type.end.objc" + }, + "2": { + "name": "variable.parameter.function.objc" + } + }, + "name": "meta.argument-type.objc", + "patterns": [ + { + "include": "#protocol_list" + }, + { + "include": "#protocol_type_qualifier" + }, + { + "include": "$base" + } + ] + }, + { + "include": "#comment" + } + ] + }, + "method_super": { + "begin": "^(?=-|\\+)", + "end": "(?<=\\})|(?=#)", + "name": "meta.function-with-body.objc", + "patterns": [ + { + "include": "#method" + }, + { + "include": "$base" + } + ] + }, + "pragma-mark": { + "captures": { + "1": { + "name": "meta.preprocessor.objc" + }, + "2": { + "name": "keyword.control.import.pragma.objc" + }, + "3": { + "name": "meta.toc-list.pragma-mark.objc" + } + }, + "match": "^\\s*(#\\s*(pragma\\s+mark)\\s+(.*))", + "name": "meta.section.objc" + }, + "preprocessor-rule-disabled-implementation": { + "begin": "^\\s*(#(if)\\s+(0)\\b).*", + "captures": { + "1": { + "name": "meta.preprocessor.objc" + }, + "2": { + "name": "keyword.control.import.if.objc" + }, + "3": { + "name": "constant.numeric.preprocessor.objc" + } + }, + "end": "^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))", + "patterns": [ + { + "begin": "^\\s*(#\\s*(else)\\b)", + "captures": { + "1": { + "name": "meta.preprocessor.objc" + }, + "2": { + "name": "keyword.control.import.else.objc" + } + }, + "end": "(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))", + "patterns": [ + { + "include": "#interface_innards" + } + ] + }, + { + "begin": "", + "end": "(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))", + "name": "comment.block.preprocessor.if-branch.objc", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + } + ] + }, + "preprocessor-rule-disabled-interface": { + "begin": "^\\s*(#(if)\\s+(0)\\b).*", + "captures": { + "1": { + "name": "meta.preprocessor.objc" + }, + "2": { + "name": "keyword.control.import.if.objc" + }, + "3": { + "name": "constant.numeric.preprocessor.objc" + } + }, + "end": "^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))", + "patterns": [ + { + "begin": "^\\s*(#\\s*(else)\\b)", + "captures": { + "1": { + "name": "meta.preprocessor.objc" + }, + "2": { + "name": "keyword.control.import.else.objc" + } + }, + "end": "(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))", + "patterns": [ + { + "include": "#interface_innards" + } + ] + }, + { + "begin": "", + "end": "(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))", + "name": "comment.block.preprocessor.if-branch.objc", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + } + ] + }, + "preprocessor-rule-enabled-implementation": { + "begin": "^\\s*(#(if)\\s+(0*1)\\b)", + "captures": { + "1": { + "name": "meta.preprocessor.objc" + }, + "2": { + "name": "keyword.control.import.if.objc" + }, + "3": { + "name": "constant.numeric.preprocessor.objc" + } + }, + "end": "^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))", + "patterns": [ + { + "begin": "^\\s*(#\\s*(else)\\b).*", + "captures": { + "1": { + "name": "meta.preprocessor.objc" + }, + "2": { + "name": "keyword.control.import.else.objc" + } + }, + "contentName": "comment.block.preprocessor.else-branch.objc", + "end": "(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + }, + { + "begin": "", + "end": "(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))", + "patterns": [ + { + "include": "#implementation_innards" + } + ] + } + ] + }, + "preprocessor-rule-enabled-interface": { + "begin": "^\\s*(#(if)\\s+(0*1)\\b)", + "captures": { + "1": { + "name": "meta.preprocessor.objc" + }, + "2": { + "name": "keyword.control.import.if.objc" + }, + "3": { + "name": "constant.numeric.preprocessor.objc" + } + }, + "end": "^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))", + "patterns": [ + { + "begin": "^\\s*(#\\s*(else)\\b).*", + "captures": { + "1": { + "name": "meta.preprocessor.objc" + }, + "2": { + "name": "keyword.control.import.else.objc" + } + }, + "contentName": "comment.block.preprocessor.else-branch.objc", + "end": "(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + }, + { + "begin": "", + "end": "(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))", + "patterns": [ + { + "include": "#interface_innards" + } + ] + } + ] + }, + "preprocessor-rule-other-implementation": { + "begin": "^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))", + "captures": { + "1": { + "name": "meta.preprocessor.objc" + }, + "2": { + "name": "keyword.control.import.objc" + } + }, + "end": "^\\s*(#\\s*(endif)\\b).*?(?:(?=(?://|/\\*))|$)", + "patterns": [ + { + "include": "#implementation_innards" + } + ] + }, + "preprocessor-rule-other-interface": { + "begin": "^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))", + "captures": { + "1": { + "name": "meta.preprocessor.objc" + }, + "2": { + "name": "keyword.control.import.objc" + } + }, + "end": "^\\s*(#\\s*(endif)\\b).*?(?:(?=(?://|/\\*))|$)", + "patterns": [ + { + "include": "#interface_innards" + } + ] + }, + "properties": { + "patterns": [ + { + "begin": "((@)property)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "keyword.other.property.objc" + }, + "2": { + "name": "punctuation.definition.keyword.objc" + }, + "3": { + "name": "punctuation.section.scope.begin.objc" + } + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.section.scope.end.objc" + } + }, + "name": "meta.property-with-attributes.objc", + "patterns": [ + { + "match": "\\b(getter|setter|readonly|readwrite|assign|retain|copy|nonatomic|atomic|strong|weak|nonnull|nullable|null_resettable|null_unspecified|class|direct)\\b", + "name": "keyword.other.property.attribute.objc" + } + ] + }, + { + "captures": { + "1": { + "name": "keyword.other.property.objc" + }, + "2": { + "name": "punctuation.definition.keyword.objc" + } + }, + "match": "((@)property)\\b", + "name": "meta.property.objc" + } + ] + }, + "property_directive": { + "captures": { + "1": { + "name": "punctuation.definition.keyword.objc" + } + }, + "match": "(@)(dynamic|synthesize)\\b", + "name": "keyword.other.property.directive.objc" + }, + "protocol_list": { + "begin": "(<)", + "beginCaptures": { + "1": { + "name": "punctuation.section.scope.begin.objc" + } + }, + "end": "(>)", + "endCaptures": { + "1": { + "name": "punctuation.section.scope.end.objc" + } + }, + "name": "meta.protocol-list.objc", + "patterns": [ + { + "match": "\\bNS(GlyphStorage|M(utableCopying|enuItem)|C(hangeSpelling|o(ding|pying|lorPicking(Custom|Default)))|T(oolbarItemValidations|ext(Input|AttachmentCell))|I(nputServ(iceProvider|erMouseTracker)|gnoreMisspelledWords)|Obj(CTypeSerializationCallBack|ect)|D(ecimalNumberBehaviors|raggingInfo)|U(serInterfaceValidations|RL(HandleClient|DownloadDelegate|ProtocolClient|AuthenticationChallengeSender))|Validated(ToobarItem|UserInterfaceItem)|Locking)\\b", + "name": "support.other.protocol.objc" + } + ] + }, + "protocol_type_qualifier": { + "match": "\\b(in|out|inout|oneway|bycopy|byref|nonnull|nullable|_Nonnull|_Nullable|_Null_unspecified)\\b", + "name": "storage.modifier.protocol.objc" + }, + "special_variables": { + "patterns": [ + { + "match": "\\b_cmd\\b", + "name": "variable.other.selector.objc" + }, + { + "match": "\\b(self|super)\\b", + "name": "variable.language.objc" + } + ] + }, + "string_escaped_char": { + "patterns": [ + { + "match": "(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3]\\d{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )", + "name": "constant.character.escape.objc" + }, + { + "match": "\\\\.", + "name": "invalid.illegal.unknown-escape.objc" + } + ] + }, + "string_placeholder": { + "patterns": [ + { + "match": "(?x) %\n(\\d+\\$)?\t\t\t\t\t\t # field (argument #)\n[#0\\- +']*\t\t\t\t\t\t # flags\n[,;:_]?\t\t\t\t\t\t\t # separator character (AltiVec)\n((-?\\d+)|\\*(-?\\d+\\$)?)?\t\t # minimum field width\n(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?\t# precision\n(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n[diouxXDOUeEfFgGaACcSspn%]\t\t # conversion type", + "name": "constant.other.placeholder.objc" + }, + { + "match": "(%)(?!\"\\s*(PRI|SCN))", + "captures": { + "1": { + "name": "invalid.illegal.placeholder.objc" + } + } + } + ] + } + } +} diff --git a/docs/shiki/languages/objective-cpp.tmLanguage.json b/docs/shiki/languages/objective-cpp.tmLanguage.json new file mode 100644 index 00000000..4471b8d7 --- /dev/null +++ b/docs/shiki/languages/objective-cpp.tmLanguage.json @@ -0,0 +1,7247 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/jeff-hykin/better-objcpp-syntax/blob/master/autogenerated/objcpp.tmLanguage.json", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/jeff-hykin/better-objcpp-syntax/commit/5a7eb15eee382dd5aa388bc04fdb60a0d2128e14", + "name": "objective-cpp", + "scopeName": "source.objcpp", + "patterns": [ + { + "include": "#cpp_lang" + }, + { + "include": "#anonymous_pattern_1" + }, + { + "include": "#anonymous_pattern_2" + }, + { + "include": "#anonymous_pattern_3" + }, + { + "include": "#anonymous_pattern_4" + }, + { + "include": "#anonymous_pattern_5" + }, + { + "include": "#apple_foundation_functional_macros" + }, + { + "include": "#anonymous_pattern_7" + }, + { + "include": "#anonymous_pattern_8" + }, + { + "include": "#anonymous_pattern_9" + }, + { + "include": "#anonymous_pattern_10" + }, + { + "include": "#anonymous_pattern_11" + }, + { + "include": "#anonymous_pattern_12" + }, + { + "include": "#anonymous_pattern_13" + }, + { + "include": "#anonymous_pattern_14" + }, + { + "include": "#anonymous_pattern_15" + }, + { + "include": "#anonymous_pattern_16" + }, + { + "include": "#anonymous_pattern_17" + }, + { + "include": "#anonymous_pattern_18" + }, + { + "include": "#anonymous_pattern_19" + }, + { + "include": "#anonymous_pattern_20" + }, + { + "include": "#anonymous_pattern_21" + }, + { + "include": "#anonymous_pattern_22" + }, + { + "include": "#anonymous_pattern_23" + }, + { + "include": "#anonymous_pattern_24" + }, + { + "include": "#anonymous_pattern_25" + }, + { + "include": "#anonymous_pattern_26" + }, + { + "include": "#anonymous_pattern_27" + }, + { + "include": "#anonymous_pattern_28" + }, + { + "include": "#anonymous_pattern_29" + }, + { + "include": "#anonymous_pattern_30" + }, + { + "include": "#bracketed_content" + }, + { + "include": "#c_lang" + } + ], + "repository": { + "anonymous_pattern_1": { + "begin": "((@)(interface|protocol))(?!.+;)\\s+([A-Za-z_][A-Za-z0-9_]*)\\s*((:)(?:\\s*)([A-Za-z][A-Za-z0-9]*))?(\\s|\\n)?", + "captures": { + "1": { + "name": "storage.type.objcpp" + }, + "2": { + "name": "punctuation.definition.storage.type.objcpp" + }, + "4": { + "name": "entity.name.type.objcpp" + }, + "6": { + "name": "punctuation.definition.entity.other.inherited-class.objcpp" + }, + "7": { + "name": "entity.other.inherited-class.objcpp" + }, + "8": { + "name": "meta.divider.objcpp" + }, + "9": { + "name": "meta.inherited-class.objcpp" + } + }, + "contentName": "meta.scope.interface.objcpp", + "end": "((@)end)\\b", + "name": "meta.interface-or-protocol.objcpp", + "patterns": [ + { + "include": "#interface_innards" + } + ] + }, + "anonymous_pattern_10": { + "captures": { + "1": { + "name": "punctuation.definition.keyword.objcpp" + } + }, + "match": "(@)(defs|encode)\\b", + "name": "keyword.other.objcpp" + }, + "anonymous_pattern_11": { + "match": "\\bid\\b", + "name": "storage.type.id.objcpp" + }, + "anonymous_pattern_12": { + "match": "\\b(IBOutlet|IBAction|BOOL|SEL|id|unichar|IMP|Class|instancetype)\\b", + "name": "storage.type.objcpp" + }, + "anonymous_pattern_13": { + "captures": { + "1": { + "name": "punctuation.definition.storage.type.objcpp" + } + }, + "match": "(@)(class|protocol)\\b", + "name": "storage.type.objcpp" + }, + "anonymous_pattern_14": { + "begin": "((@)selector)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "storage.type.objcpp" + }, + "2": { + "name": "punctuation.definition.storage.type.objcpp" + }, + "3": { + "name": "punctuation.definition.storage.type.objcpp" + } + }, + "contentName": "meta.selector.method-name.objcpp", + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.definition.storage.type.objcpp" + } + }, + "name": "meta.selector.objcpp", + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.separator.arguments.objcpp" + } + }, + "match": "\\b(?:[a-zA-Z_:][\\w]*)+", + "name": "support.function.any-method.name-of-parameter.objcpp" + } + ] + }, + "anonymous_pattern_15": { + "captures": { + "1": { + "name": "punctuation.definition.storage.modifier.objcpp" + } + }, + "match": "(@)(synchronized|public|package|private|protected)\\b", + "name": "storage.modifier.objcpp" + }, + "anonymous_pattern_16": { + "match": "\\b(YES|NO|Nil|nil)\\b", + "name": "constant.language.objcpp" + }, + "anonymous_pattern_17": { + "match": "\\bNSApp\\b", + "name": "support.variable.foundation.objcpp" + }, + "anonymous_pattern_18": { + "captures": { + "1": { + "name": "punctuation.whitespace.support.function.cocoa.leopard.objcpp" + }, + "2": { + "name": "support.function.cocoa.leopard.objcpp" + } + }, + "match": "(\\s*)\\b(NS(Rect(ToCGRect|FromCGRect)|MakeCollectable|S(tringFromProtocol|ize(ToCGSize|FromCGSize))|Draw(NinePartImage|ThreePartImage)|P(oint(ToCGPoint|FromCGPoint)|rotocolFromString)|EventMaskFromType|Value))\\b" + }, + "anonymous_pattern_19": { + "captures": { + "1": { + "name": "punctuation.whitespace.support.function.leading.cocoa.objcpp" + }, + "2": { + "name": "support.function.cocoa.objcpp" + } + }, + "match": "(\\s*)\\b(NS(R(ound(DownToMultipleOfPageSize|UpToMultipleOfPageSize)|un(CriticalAlertPanel(RelativeToWindow)?|InformationalAlertPanel(RelativeToWindow)?|AlertPanel(RelativeToWindow)?)|e(set(MapTable|HashTable)|c(ycleZone|t(Clip(List)?|F(ill(UsingOperation|List(UsingOperation|With(Grays|Colors(UsingOperation)?))?)?|romString))|ordAllocationEvent)|turnAddress|leaseAlertPanel|a(dPixel|l(MemoryAvailable|locateCollectable))|gisterServicesProvider)|angeFromString)|Get(SizeAndAlignment|CriticalAlertPanel|InformationalAlertPanel|UncaughtExceptionHandler|FileType(s)?|WindowServerMemory|AlertPanel)|M(i(n(X|Y)|d(X|Y))|ouseInRect|a(p(Remove|Get|Member|Insert(IfAbsent|KnownAbsent)?)|ke(R(ect|ange)|Size|Point)|x(Range|X|Y)))|B(itsPer(SampleFromDepth|PixelFromDepth)|e(stDepth|ep|gin(CriticalAlertSheet|InformationalAlertSheet|AlertSheet)))|S(ho(uldRetainWithZone|w(sServicesMenuItem|AnimationEffect))|tringFrom(R(ect|ange)|MapTable|S(ize|elector)|HashTable|Class|Point)|izeFromString|e(t(ShowsServicesMenuItem|ZoneName|UncaughtExceptionHandler|FocusRingStyle)|lectorFromString|archPathForDirectoriesInDomains)|wap(Big(ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(ToHost|LongToHost))|Short|Host(ShortTo(Big|Little)|IntTo(Big|Little)|DoubleTo(Big|Little)|FloatTo(Big|Little)|Long(To(Big|Little)|LongTo(Big|Little)))|Int|Double|Float|L(ittle(ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(ToHost|LongToHost))|ong(Long)?)))|H(ighlightRect|o(stByteOrder|meDirectory(ForUser)?)|eight|ash(Remove|Get|Insert(IfAbsent|KnownAbsent)?)|FSType(CodeFromFileType|OfFile))|N(umberOfColorComponents|ext(MapEnumeratorPair|HashEnumeratorItem))|C(o(n(tainsRect|vert(GlyphsToPackedGlyphs|Swapped(DoubleToHost|FloatToHost)|Host(DoubleToSwapped|FloatToSwapped)))|unt(MapTable|HashTable|Frames|Windows(ForContext)?)|py(M(emoryPages|apTableWithZone)|Bits|HashTableWithZone|Object)|lorSpaceFromDepth|mpare(MapTables|HashTables))|lassFromString|reate(MapTable(WithZone)?|HashTable(WithZone)?|Zone|File(namePboardType|ContentsPboardType)))|TemporaryDirectory|I(s(ControllerMarker|EmptyRect|FreedObject)|n(setRect|crementExtraRefCount|te(r(sect(sRect|ionR(ect|ange))|faceStyleForKey)|gralRect)))|Zone(Realloc|Malloc|Name|Calloc|Fr(omPointer|ee))|O(penStepRootDirectory|ffsetRect)|D(i(sableScreenUpdates|videRect)|ottedFrameRect|e(c(imal(Round|Multiply|S(tring|ubtract)|Normalize|Co(py|mpa(ct|re))|IsNotANumber|Divide|Power|Add)|rementExtraRefCountWasZero)|faultMallocZone|allocate(MemoryPages|Object))|raw(Gr(oove|ayBezel)|B(itmap|utton)|ColorTiledRects|TiledRects|DarkBezel|W(hiteBezel|indowBackground)|LightBezel))|U(serName|n(ionR(ect|ange)|registerServicesProvider)|pdateDynamicServices)|Java(Bundle(Setup|Cleanup)|Setup(VirtualMachine)?|Needs(ToLoadClasses|VirtualMachine)|ClassesF(orBundle|romPath)|ObjectNamedInPath|ProvidesClasses)|P(oint(InRect|FromString)|erformService|lanarFromDepth|ageSize)|E(n(d(MapTableEnumeration|HashTableEnumeration)|umerate(MapTable|HashTable)|ableScreenUpdates)|qual(R(ects|anges)|Sizes|Points)|raseRect|xtraRefCount)|F(ileTypeForHFSTypeCode|ullUserName|r(ee(MapTable|HashTable)|ame(Rect(WithWidth(UsingOperation)?)?|Address)))|Wi(ndowList(ForContext)?|dth)|Lo(cationInRange|g(v|PageSize)?)|A(ccessibility(R(oleDescription(ForUIElement)?|aiseBadArgumentException)|Unignored(Children(ForOnlyChild)?|Descendant|Ancestor)|PostNotification|ActionDescription)|pplication(Main|Load)|vailableWindowDepths|ll(MapTable(Values|Keys)|HashTableObjects|ocate(MemoryPages|Collectable|Object)))))\\b" + }, + "anonymous_pattern_2": { + "begin": "((@)(implementation))\\s+([A-Za-z_][A-Za-z0-9_]*)\\s*(?::\\s*([A-Za-z][A-Za-z0-9]*))?", + "captures": { + "1": { + "name": "storage.type.objcpp" + }, + "2": { + "name": "punctuation.definition.storage.type.objcpp" + }, + "4": { + "name": "entity.name.type.objcpp" + }, + "5": { + "name": "entity.other.inherited-class.objcpp" + } + }, + "contentName": "meta.scope.implementation.objcpp", + "end": "((@)end)\\b", + "name": "meta.implementation.objcpp", + "patterns": [ + { + "include": "#implementation_innards" + } + ] + }, + "anonymous_pattern_20": { + "match": "\\bNS(RuleEditor|G(arbageCollector|radient)|MapTable|HashTable|Co(ndition|llectionView(Item)?)|T(oolbarItemGroup|extInputClient|r(eeNode|ackingArea))|InvocationOperation|Operation(Queue)?|D(ictionaryController|ockTile)|P(ointer(Functions|Array)|athC(o(ntrol(Delegate)?|mponentCell)|ell(Delegate)?)|r(intPanelAccessorizing|edicateEditor(RowTemplate)?))|ViewController|FastEnumeration|Animat(ionContext|ablePropertyContainer))\\b", + "name": "support.class.cocoa.leopard.objcpp" + }, + "anonymous_pattern_21": { + "match": "\\bNS(R(u(nLoop|ler(Marker|View))|e(sponder|cursiveLock|lativeSpecifier)|an(domSpecifier|geSpecifier))|G(etCommand|lyph(Generator|Storage|Info)|raphicsContext)|XML(Node|D(ocument|TD(Node)?)|Parser|Element)|M(iddleSpecifier|ov(ie(View)?|eCommand)|utable(S(tring|et)|C(haracterSet|opying)|IndexSet|D(ictionary|ata)|URLRequest|ParagraphStyle|A(ttributedString|rray))|e(ssagePort(NameServer)?|nu(Item(Cell)?|View)?|t(hodSignature|adata(Item|Query(ResultGroup|AttributeValueTuple)?)))|a(ch(BootstrapServer|Port)|trix))|B(itmapImageRep|ox|u(ndle|tton(Cell)?)|ezierPath|rowser(Cell)?)|S(hadow|c(anner|r(ipt(SuiteRegistry|C(o(ercionHandler|mmand(Description)?)|lassDescription)|ObjectSpecifier|ExecutionContext|WhoseTest)|oll(er|View)|een))|t(epper(Cell)?|atus(Bar|Item)|r(ing|eam))|imple(HorizontalTypesetter|CString)|o(cketPort(NameServer)?|und|rtDescriptor)|p(e(cifierTest|ech(Recognizer|Synthesizer)|ll(Server|Checker))|litView)|e(cureTextField(Cell)?|t(Command)?|archField(Cell)?|rializer|gmentedC(ontrol|ell))|lider(Cell)?|avePanel)|H(ost|TTP(Cookie(Storage)?|URLResponse)|elpManager)|N(ib(Con(nector|trolConnector)|OutletConnector)?|otification(Center|Queue)?|u(ll|mber(Formatter)?)|etService(Browser)?|ameSpecifier)|C(ha(ngeSpelling|racterSet)|o(n(stantString|nection|trol(ler)?|ditionLock)|d(ing|er)|unt(Command|edSet)|pying|lor(Space|P(ick(ing(Custom|Default)|er)|anel)|Well|List)?|m(p(oundPredicate|arisonPredicate)|boBox(Cell)?))|u(stomImageRep|rsor)|IImageRep|ell|l(ipView|o(seCommand|neCommand)|assDescription)|a(ched(ImageRep|URLResponse)|lendar(Date)?)|reateCommand)|T(hread|ypesetter|ime(Zone|r)|o(olbar(Item(Validations)?)?|kenField(Cell)?)|ext(Block|Storage|Container|Tab(le(Block)?)?|Input|View|Field(Cell)?|List|Attachment(Cell)?)?|a(sk|b(le(Header(Cell|View)|Column|View)|View(Item)?))|reeController)|I(n(dex(S(pecifier|et)|Path)|put(Manager|S(tream|erv(iceProvider|er(MouseTracker)?)))|vocation)|gnoreMisspelledWords|mage(Rep|Cell|View)?)|O(ut(putStream|lineView)|pen(GL(Context|Pixel(Buffer|Format)|View)|Panel)|bj(CTypeSerializationCallBack|ect(Controller)?))|D(i(st(antObject(Request)?|ributed(NotificationCenter|Lock))|ctionary|rectoryEnumerator)|ocument(Controller)?|e(serializer|cimalNumber(Behaviors|Handler)?|leteCommand)|at(e(Components|Picker(Cell)?|Formatter)?|a)|ra(wer|ggingInfo))|U(ser(InterfaceValidations|Defaults(Controller)?)|RL(Re(sponse|quest)|Handle(Client)?|C(onnection|ache|redential(Storage)?)|Download(Delegate)?|Prot(ocol(Client)?|ectionSpace)|AuthenticationChallenge(Sender)?)?|n(iqueIDSpecifier|doManager|archiver))|P(ipe|o(sitionalSpecifier|pUpButton(Cell)?|rt(Message|NameServer|Coder)?)|ICTImageRep|ersistentDocument|DFImageRep|a(steboard|nel|ragraphStyle|geLayout)|r(int(Info|er|Operation|Panel)|o(cessInfo|tocolChecker|perty(Specifier|ListSerialization)|gressIndicator|xy)|edicate))|E(numerator|vent|PSImageRep|rror|x(ception|istsCommand|pression))|V(iew(Animation)?|al(idated(ToobarItem|UserInterfaceItem)|ue(Transformer)?))|Keyed(Unarchiver|Archiver)|Qui(ckDrawView|tCommand)|F(ile(Manager|Handle|Wrapper)|o(nt(Manager|Descriptor|Panel)?|rm(Cell|atter)))|W(hoseSpecifier|indow(Controller)?|orkspace)|L(o(c(k(ing)?|ale)|gicalTest)|evelIndicator(Cell)?|ayoutManager)|A(ssertionHandler|nimation|ctionCell|ttributedString|utoreleasePool|TSTypesetter|ppl(ication|e(Script|Event(Manager|Descriptor)))|ffineTransform|lert|r(chiver|ray(Controller)?)))\\b", + "name": "support.class.cocoa.objcpp" + }, + "anonymous_pattern_22": { + "match": "\\bNS(R(oundingMode|ule(Editor(RowType|NestingMode)|rOrientation)|e(questUserAttentionType|lativePosition))|G(lyphInscription|radientDrawingOptions)|XML(NodeKind|D(ocumentContentKind|TDNodeKind)|ParserError)|M(ultibyteGlyphPacking|apTableOptions)|B(itmapFormat|oxType|ezierPathElement|ackgroundStyle|rowserDropOperation)|S(tr(ing(CompareOptions|DrawingOptions|EncodingConversionOptions)|eam(Status|Event))|p(eechBoundary|litViewDividerStyle)|e(archPathD(irectory|omainMask)|gmentS(tyle|witchTracking))|liderType|aveOptions)|H(TTPCookieAcceptPolicy|ashTableOptions)|N(otification(SuspensionBehavior|Coalescing)|umberFormatter(RoundingMode|Behavior|Style|PadPosition)|etService(sError|Options))|C(haracterCollection|o(lor(RenderingIntent|SpaceModel|PanelMode)|mp(oundPredicateType|arisonPredicateModifier))|ellStateValue|al(culationError|endarUnit))|T(ypesetterControlCharacterAction|imeZoneNameStyle|e(stComparisonOperation|xt(Block(Dimension|V(erticalAlignment|alueType)|Layer)|TableLayoutAlgorithm|FieldBezelStyle))|ableView(SelectionHighlightStyle|ColumnAutoresizingStyle)|rackingAreaOptions)|I(n(sertionPosition|te(rfaceStyle|ger))|mage(RepLoadStatus|Scaling|CacheMode|FrameStyle|LoadStatus|Alignment))|Ope(nGLPixelFormatAttribute|rationQueuePriority)|Date(Picker(Mode|Style)|Formatter(Behavior|Style))|U(RL(RequestCachePolicy|HandleStatus|C(acheStoragePolicy|redentialPersistence))|Integer)|P(o(stingStyle|int(ingDeviceType|erFunctionsOptions)|pUpArrowPosition)|athStyle|r(int(ing(Orientation|PaginationMode)|erTableStatus|PanelOptions)|opertyList(MutabilityOptions|Format)|edicateOperatorType))|ExpressionType|KeyValue(SetMutationKind|Change)|QTMovieLoopMode|F(indPanel(SubstringMatchType|Action)|o(nt(RenderingMode|FamilyClass)|cusRingPlacement))|W(hoseSubelementIdentifier|ind(ingRule|ow(B(utton|ackingLocation)|SharingType|CollectionBehavior)))|L(ine(MovementDirection|SweepDirection|CapStyle|JoinStyle)|evelIndicatorStyle)|Animation(BlockingMode|Curve))\\b", + "name": "support.type.cocoa.leopard.objcpp" + }, + "anonymous_pattern_23": { + "match": "\\bC(I(Sampler|Co(ntext|lor)|Image(Accumulator)?|PlugIn(Registration)?|Vector|Kernel|Filter(Generator|Shape)?)|A(Renderer|MediaTiming(Function)?|BasicAnimation|ScrollLayer|Constraint(LayoutManager)?|T(iledLayer|extLayer|rans(ition|action))|OpenGLLayer|PropertyAnimation|KeyframeAnimation|Layer|A(nimation(Group)?|ction)))\\b", + "name": "support.class.quartz.objcpp" + }, + "anonymous_pattern_24": { + "match": "\\bC(G(Float|Point|Size|Rect)|IFormat|AConstraintAttribute)\\b", + "name": "support.type.quartz.objcpp" + }, + "anonymous_pattern_25": { + "match": "\\bNS(R(ect(Edge)?|ange)|G(lyph(Relation|LayoutMode)?|radientType)|M(odalSession|a(trixMode|p(Table|Enumerator)))|B(itmapImageFileType|orderType|uttonType|ezelStyle|ackingStoreType|rowserColumnResizingType)|S(cr(oll(er(Part|Arrow)|ArrowPosition)|eenAuxiliaryOpaque)|tringEncoding|ize|ocketNativeHandle|election(Granularity|Direction|Affinity)|wapped(Double|Float)|aveOperationType)|Ha(sh(Table|Enumerator)|ndler(2)?)|C(o(ntrol(Size|Tint)|mp(ositingOperation|arisonResult))|ell(State|Type|ImagePosition|Attribute))|T(hreadPrivate|ypesetterGlyphInfo|i(ckMarkPosition|tlePosition|meInterval)|o(ol(TipTag|bar(SizeMode|DisplayMode))|kenStyle)|IFFCompression|ext(TabType|Alignment)|ab(State|leViewDropOperation|ViewType)|rackingRectTag)|ImageInterpolation|Zone|OpenGL(ContextAuxiliary|PixelFormatAuxiliary)|D(ocumentChangeType|atePickerElementFlags|ra(werState|gOperation))|UsableScrollerParts|P(oint|r(intingPageOrder|ogressIndicator(Style|Th(ickness|readInfo))))|EventType|KeyValueObservingOptions|Fo(nt(SymbolicTraits|TraitMask|Action)|cusRingType)|W(indow(OrderingMode|Depth)|orkspace(IconCreationOptions|LaunchOptions)|ritingDirection)|L(ineBreakMode|ayout(Status|Direction))|A(nimation(Progress|Effect)|ppl(ication(TerminateReply|DelegateReply|PrintReply)|eEventManagerSuspensionID)|ffineTransformStruct|lertStyle))\\b", + "name": "support.type.cocoa.objcpp" + }, + "anonymous_pattern_26": { + "match": "\\bNS(NotFound|Ordered(Ascending|Descending|Same))\\b", + "name": "support.constant.cocoa.objcpp" + }, + "anonymous_pattern_27": { + "match": "\\bNS(MenuDidBeginTracking|ViewDidUpdateTrackingAreas)?Notification\\b", + "name": "support.constant.notification.cocoa.leopard.objcpp" + }, + "anonymous_pattern_28": { + "match": "\\bNS(Menu(Did(RemoveItem|SendAction|ChangeItem|EndTracking|AddItem)|WillSendAction)|S(ystemColorsDidChange|plitView(DidResizeSubviews|WillResizeSubviews))|C(o(nt(extHelpModeDid(Deactivate|Activate)|rolT(intDidChange|extDid(BeginEditing|Change|EndEditing)))|lor(PanelColorDidChange|ListDidChange)|mboBox(Selection(IsChanging|DidChange)|Will(Dismiss|PopUp)))|lassDescriptionNeededForClass)|T(oolbar(DidRemoveItem|WillAddItem)|ext(Storage(DidProcessEditing|WillProcessEditing)|Did(BeginEditing|Change|EndEditing)|View(DidChange(Selection|TypingAttributes)|WillChangeNotifyingTextView))|ableView(Selection(IsChanging|DidChange)|ColumnDid(Resize|Move)))|ImageRepRegistryDidChange|OutlineView(Selection(IsChanging|DidChange)|ColumnDid(Resize|Move)|Item(Did(Collapse|Expand)|Will(Collapse|Expand)))|Drawer(Did(Close|Open)|Will(Close|Open))|PopUpButton(CellWillPopUp|WillPopUp)|View(GlobalFrameDidChange|BoundsDidChange|F(ocusDidChange|rameDidChange))|FontSetChanged|W(indow(Did(Resi(ze|gn(Main|Key))|M(iniaturize|ove)|Become(Main|Key)|ChangeScreen(|Profile)|Deminiaturize|Update|E(ndSheet|xpose))|Will(M(iniaturize|ove)|BeginSheet|Close))|orkspace(SessionDid(ResignActive|BecomeActive)|Did(Mount|TerminateApplication|Unmount|PerformFileOperation|Wake|LaunchApplication)|Will(Sleep|Unmount|PowerOff|LaunchApplication)))|A(ntialiasThresholdChanged|ppl(ication(Did(ResignActive|BecomeActive|Hide|ChangeScreenParameters|U(nhide|pdate)|FinishLaunching)|Will(ResignActive|BecomeActive|Hide|Terminate|U(nhide|pdate)|FinishLaunching))|eEventManagerWillProcessFirstEvent)))Notification\\b", + "name": "support.constant.notification.cocoa.objcpp" + }, + "anonymous_pattern_29": { + "match": "\\bNS(RuleEditor(RowType(Simple|Compound)|NestingMode(Si(ngle|mple)|Compound|List))|GradientDraws(BeforeStartingLocation|AfterEndingLocation)|M(inusSetExpressionType|a(chPortDeallocate(ReceiveRight|SendRight|None)|pTable(StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality)))|B(oxCustom|undleExecutableArchitecture(X86|I386|PPC(64)?)|etweenPredicateOperatorType|ackgroundStyle(Raised|Dark|L(ight|owered)))|S(tring(DrawingTruncatesLastVisibleLine|EncodingConversion(ExternalRepresentation|AllowLossy))|ubqueryExpressionType|p(e(ech(SentenceBoundary|ImmediateBoundary|WordBoundary)|llingState(GrammarFlag|SpellingFlag))|litViewDividerStyleThi(n|ck))|e(rvice(RequestTimedOutError|M(iscellaneousError|alformedServiceDictionaryError)|InvalidPasteboardDataError|ErrorM(inimum|aximum)|Application(NotFoundError|LaunchFailedError))|gmentStyle(Round(Rect|ed)|SmallSquare|Capsule|Textured(Rounded|Square)|Automatic)))|H(UDWindowMask|ashTable(StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality))|N(oModeColorPanel|etServiceNoAutoRename)|C(hangeRedone|o(ntainsPredicateOperatorType|l(orRenderingIntent(RelativeColorimetric|Saturation|Default|Perceptual|AbsoluteColorimetric)|lectorDisabledOption))|ellHit(None|ContentArea|TrackableArea|EditableTextArea))|T(imeZoneNameStyle(S(hort(Standard|DaylightSaving)|tandard)|DaylightSaving)|extFieldDatePickerStyle|ableViewSelectionHighlightStyle(Regular|SourceList)|racking(Mouse(Moved|EnteredAndExited)|CursorUpdate|InVisibleRect|EnabledDuringMouseDrag|A(ssumeInside|ctive(In(KeyWindow|ActiveApp)|WhenFirstResponder|Always))))|I(n(tersectSetExpressionType|dexedColorSpaceModel)|mageScale(None|Proportionally(Down|UpOrDown)|AxesIndependently))|Ope(nGLPFAAllowOfflineRenderers|rationQueue(DefaultMaxConcurrentOperationCount|Priority(High|Normal|Very(High|Low)|Low)))|D(iacriticInsensitiveSearch|ownloadsDirectory)|U(nionSetExpressionType|TF(16(BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)|32(BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)))|P(ointerFunctions(Ma(chVirtualMemory|llocMemory)|Str(ongMemory|uctPersonality)|C(StringPersonality|opyIn)|IntegerPersonality|ZeroingWeakMemory|O(paque(Memory|Personality)|bjectP(ointerPersonality|ersonality)))|at(hStyle(Standard|NavigationBar|PopUp)|ternColorSpaceModel)|rintPanelShows(Scaling|Copies|Orientation|P(a(perSize|ge(Range|SetupAccessory))|review)))|Executable(RuntimeMismatchError|NotLoadableError|ErrorM(inimum|aximum)|L(inkError|oadError)|ArchitectureMismatchError)|KeyValueObservingOption(Initial|Prior)|F(i(ndPanelSubstringMatchType(StartsWith|Contains|EndsWith|FullWord)|leRead(TooLargeError|UnknownStringEncodingError))|orcedOrderingSearch)|Wi(ndow(BackingLocation(MainMemory|Default|VideoMemory)|Sharing(Read(Only|Write)|None)|CollectionBehavior(MoveToActiveSpace|CanJoinAllSpaces|Default))|dthInsensitiveSearch)|AggregateExpressionType)\\b", + "name": "support.constant.cocoa.leopard.objcpp" + }, + "anonymous_pattern_3": { + "begin": "@\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.objcpp" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.objcpp" + } + }, + "name": "string.quoted.double.objcpp", + "patterns": [ + { + "include": "#string_escaped_char" + }, + { + "match": "(?x)%\n\t\t\t\t\t\t(\\d+\\$)? # field (argument #)\n\t\t\t\t\t\t[#0\\- +']* # flags\n\t\t\t\t\t\t((-?\\d+)|\\*(-?\\d+\\$)?)? # minimum field width\n\t\t\t\t\t\t(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)? # precision\n\t\t\t\t\t\t[@] # conversion type\n\t\t\t\t\t", + "name": "constant.other.placeholder.objcpp" + }, + { + "include": "#string_placeholder" + } + ] + }, + "anonymous_pattern_30": { + "match": "\\bNS(R(GB(ModeColorPanel|ColorSpaceModel)|ight(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|T(ext(Movement|Alignment)|ab(sBezelBorder|StopType))|ArrowFunctionKey)|ound(RectBezelStyle|Bankers|ed(BezelStyle|TokenStyle|DisclosureBezelStyle)|Down|Up|Plain|Line(CapStyle|JoinStyle))|un(StoppedResponse|ContinuesResponse|AbortedResponse)|e(s(izableWindowMask|et(CursorRectsRunLoopOrdering|FunctionKey))|ce(ssedBezelStyle|iver(sCantHandleCommandScriptError|EvaluationScriptError))|turnTextMovement|doFunctionKey|quiredArgumentsMissingScriptError|l(evancyLevelIndicatorStyle|ative(Before|After))|gular(SquareBezelStyle|ControlSize)|moveTraitFontAction)|a(n(domSubelement|geDateMode)|tingLevelIndicatorStyle|dio(ModeMatrix|Button)))|G(IFFileType|lyph(Below|Inscribe(B(elow|ase)|Over(strike|Below)|Above)|Layout(WithPrevious|A(tAPoint|gainstAPoint))|A(ttribute(BidiLevel|Soft|Inscribe|Elastic)|bove))|r(ooveBorder|eaterThan(Comparison|OrEqualTo(Comparison|PredicateOperatorType)|PredicateOperatorType)|a(y(ModeColorPanel|ColorSpaceModel)|dient(None|Con(cave(Strong|Weak)|vex(Strong|Weak)))|phiteControlTint)))|XML(N(o(tationDeclarationKind|de(CompactEmptyElement|IsCDATA|OptionsNone|Use(SingleQuotes|DoubleQuotes)|Pre(serve(NamespaceOrder|C(haracterReferences|DATA)|DTD|Prefixes|E(ntities|mptyElements)|Quotes|Whitespace|A(ttributeOrder|ll))|ttyPrint)|ExpandEmptyElement))|amespaceKind)|CommentKind|TextKind|InvalidKind|D(ocument(X(MLKind|HTMLKind|Include)|HTMLKind|T(idy(XML|HTML)|extKind)|IncludeContentTypeDeclaration|Validate|Kind)|TDKind)|P(arser(GTRequiredError|XMLDeclNot(StartedError|FinishedError)|Mi(splaced(XMLDeclarationError|CDATAEndStringError)|xedContentDeclNot(StartedError|FinishedError))|S(t(andaloneValueError|ringNot(StartedError|ClosedError))|paceRequiredError|eparatorRequiredError)|N(MTOKENRequiredError|o(t(ationNot(StartedError|FinishedError)|WellBalancedError)|DTDError)|amespaceDeclarationError|AMERequiredError)|C(haracterRef(In(DTDError|PrologError|EpilogError)|AtEOFError)|o(nditionalSectionNot(StartedError|FinishedError)|mment(NotFinishedError|ContainsDoubleHyphenError))|DATANotFinishedError)|TagNameMismatchError|In(ternalError|valid(HexCharacterRefError|C(haracter(RefError|InEntityError|Error)|onditionalSectionError)|DecimalCharacterRefError|URIError|Encoding(NameError|Error)))|OutOfMemoryError|D(ocumentStartError|elegateAbortedParseError|OCTYPEDeclNotFinishedError)|U(RI(RequiredError|FragmentError)|n(declaredEntityError|parsedEntityError|knownEncodingError|finishedTagError))|P(CDATARequiredError|ublicIdentifierRequiredError|arsedEntityRef(MissingSemiError|NoNameError|In(Internal(SubsetError|Error)|PrologError|EpilogError)|AtEOFError)|r(ocessingInstructionNot(StartedError|FinishedError)|ematureDocumentEndError))|E(n(codingNotSupportedError|tity(Ref(In(DTDError|PrologError|EpilogError)|erence(MissingSemiError|WithoutNameError)|LoopError|AtEOFError)|BoundaryError|Not(StartedError|FinishedError)|Is(ParameterError|ExternalError)|ValueRequiredError))|qualExpectedError|lementContentDeclNot(StartedError|FinishedError)|xt(ernalS(tandaloneEntityError|ubsetNotFinishedError)|raContentError)|mptyDocumentError)|L(iteralNot(StartedError|FinishedError)|T(RequiredError|SlashRequiredError)|essThanSymbolInAttributeError)|Attribute(RedefinedError|HasNoValueError|Not(StartedError|FinishedError)|ListNot(StartedError|FinishedError)))|rocessingInstructionKind)|E(ntity(GeneralKind|DeclarationKind|UnparsedKind|P(ar(sedKind|ameterKind)|redefined))|lement(Declaration(MixedKind|UndefinedKind|E(lementKind|mptyKind)|Kind|AnyKind)|Kind))|Attribute(N(MToken(sKind|Kind)|otationKind)|CDATAKind|ID(Ref(sKind|Kind)|Kind)|DeclarationKind|En(tit(yKind|iesKind)|umerationKind)|Kind))|M(i(n(XEdge|iaturizableWindowMask|YEdge|uteCalendarUnit)|terLineJoinStyle|ddleSubelement|xedState)|o(nthCalendarUnit|deSwitchFunctionKey|use(Moved(Mask)?|E(ntered(Mask)?|ventSubtype|xited(Mask)?))|veToBezierPathElement|mentary(ChangeButton|Push(Button|InButton)|Light(Button)?))|enuFunctionKey|a(c(intoshInterfaceStyle|OSRomanStringEncoding)|tchesPredicateOperatorType|ppedRead|x(XEdge|YEdge))|ACHOperatingSystem)|B(MPFileType|o(ttomTabsBezelBorder|ldFontMask|rderlessWindowMask|x(Se(condary|parator)|OldStyle|Primary))|uttLineCapStyle|e(zelBorder|velLineJoinStyle|low(Bottom|Top)|gin(sWith(Comparison|PredicateOperatorType)|FunctionKey))|lueControlTint|ack(spaceCharacter|tabTextMovement|ingStore(Retained|Buffered|Nonretained)|TabCharacter|wardsSearch|groundTab)|r(owser(NoColumnResizing|UserColumnResizing|AutoColumnResizing)|eakFunctionKey))|S(h(ift(JISStringEncoding|KeyMask)|ow(ControlGlyphs|InvisibleGlyphs)|adowlessSquareBezelStyle)|y(s(ReqFunctionKey|tem(D(omainMask|efined(Mask)?)|FunctionKey))|mbolStringEncoding)|c(a(nnedOption|le(None|ToFit|Proportionally))|r(oll(er(NoPart|Increment(Page|Line|Arrow)|Decrement(Page|Line|Arrow)|Knob(Slot)?|Arrows(M(inEnd|axEnd)|None|DefaultSetting))|Wheel(Mask)?|LockFunctionKey)|eenChangedEventType))|t(opFunctionKey|r(ingDrawing(OneShot|DisableScreenFontSubstitution|Uses(DeviceMetrics|FontLeading|LineFragmentOrigin))|eam(Status(Reading|NotOpen|Closed|Open(ing)?|Error|Writing|AtEnd)|Event(Has(BytesAvailable|SpaceAvailable)|None|OpenCompleted|E(ndEncountered|rrorOccurred)))))|i(ngle(DateMode|UnderlineStyle)|ze(DownFontAction|UpFontAction))|olarisOperatingSystem|unOSOperatingSystem|pecialPageOrder|e(condCalendarUnit|lect(By(Character|Paragraph|Word)|i(ng(Next|Previous)|onAffinity(Downstream|Upstream))|edTab|FunctionKey)|gmentSwitchTracking(Momentary|Select(One|Any)))|quareLineCapStyle|witchButton|ave(ToOperation|Op(tions(Yes|No|Ask)|eration)|AsOperation)|mall(SquareBezelStyle|C(ontrolSize|apsFontMask)|IconButtonBezelStyle))|H(ighlightModeMatrix|SBModeColorPanel|o(ur(Minute(SecondDatePickerElementFlag|DatePickerElementFlag)|CalendarUnit)|rizontalRuler|meFunctionKey)|TTPCookieAcceptPolicy(Never|OnlyFromMainDocumentDomain|Always)|e(lp(ButtonBezelStyle|KeyMask|FunctionKey)|avierFontAction)|PUXOperatingSystem)|Year(MonthDa(yDatePickerElementFlag|tePickerElementFlag)|CalendarUnit)|N(o(n(StandardCharacterSetFontMask|ZeroWindingRule|activatingPanelMask|LossyASCIIStringEncoding)|Border|t(ification(SuspensionBehavior(Hold|Coalesce|D(eliverImmediately|rop))|NoCoalescing|CoalescingOn(Sender|Name)|DeliverImmediately|PostToAllSessions)|PredicateType|EqualToPredicateOperatorType)|S(cr(iptError|ollerParts)|ubelement|pecifierError)|CellMask|T(itle|opLevelContainersSpecifierError|abs(BezelBorder|NoBorder|LineBorder))|I(nterfaceStyle|mage)|UnderlineStyle|FontChangeAction)|u(ll(Glyph|CellType)|m(eric(Search|PadKeyMask)|berFormatter(Round(Half(Down|Up|Even)|Ceiling|Down|Up|Floor)|Behavior(10|Default)|S(cientificStyle|pellOutStyle)|NoStyle|CurrencyStyle|DecimalStyle|P(ercentStyle|ad(Before(Suffix|Prefix)|After(Suffix|Prefix))))))|e(t(Services(BadArgumentError|NotFoundError|C(ollisionError|ancelledError)|TimeoutError|InvalidError|UnknownError|ActivityInProgress)|workDomainMask)|wlineCharacter|xt(StepInterfaceStyle|FunctionKey))|EXTSTEPStringEncoding|a(t(iveShortGlyphPacking|uralTextAlignment)|rrowFontMask))|C(hange(ReadOtherContents|GrayCell(Mask)?|BackgroundCell(Mask)?|Cleared|Done|Undone|Autosaved)|MYK(ModeColorPanel|ColorSpaceModel)|ircular(BezelStyle|Slider)|o(n(stantValueExpressionType|t(inuousCapacityLevelIndicatorStyle|entsCellMask|ain(sComparison|erSpecifierError)|rol(Glyph|KeyMask))|densedFontMask)|lor(Panel(RGBModeMask|GrayModeMask|HSBModeMask|C(MYKModeMask|olorListModeMask|ustomPaletteModeMask|rayonModeMask)|WheelModeMask|AllModesMask)|ListModeColorPanel)|reServiceDirectory|m(p(osite(XOR|Source(In|O(ut|ver)|Atop)|Highlight|C(opy|lear)|Destination(In|O(ut|ver)|Atop)|Plus(Darker|Lighter))|ressedFontMask)|mandKeyMask))|u(stom(SelectorPredicateOperatorType|PaletteModeColorPanel)|r(sor(Update(Mask)?|PointingDevice)|veToBezierPathElement))|e(nterT(extAlignment|abStopType)|ll(State|H(ighlighted|as(Image(Horizontal|OnLeftOrBottom)|OverlappingImage))|ChangesContents|Is(Bordered|InsetButton)|Disabled|Editable|LightsBy(Gray|Background|Contents)|AllowsMixedState))|l(ipPagination|o(s(ePathBezierPathElement|ableWindowMask)|ckAndCalendarDatePickerStyle)|ear(ControlTint|DisplayFunctionKey|LineFunctionKey))|a(seInsensitive(Search|PredicateOption)|n(notCreateScriptCommandError|cel(Button|TextMovement))|chesDirectory|lculation(NoError|Overflow|DivideByZero|Underflow|LossOfPrecision)|rriageReturnCharacter)|r(itical(Request|AlertStyle)|ayonModeColorPanel))|T(hick(SquareBezelStyle|erSquareBezelStyle)|ypesetter(Behavior|HorizontalTabAction|ContainerBreakAction|ZeroAdvancementAction|OriginalBehavior|ParagraphBreakAction|WhitespaceAction|L(ineBreakAction|atestBehavior))|i(ckMark(Right|Below|Left|Above)|tledWindowMask|meZoneDatePickerElementFlag)|o(olbarItemVisibilityPriority(Standard|High|User|Low)|pTabsBezelBorder|ggleButton)|IFF(Compression(N(one|EXT)|CCITTFAX(3|4)|OldJPEG|JPEG|PackBits|LZW)|FileType)|e(rminate(Now|Cancel|Later)|xt(Read(InapplicableDocumentTypeError|WriteErrorM(inimum|aximum))|Block(M(i(nimum(Height|Width)|ddleAlignment)|a(rgin|ximum(Height|Width)))|B(o(ttomAlignment|rder)|aselineAlignment)|Height|TopAlignment|P(ercentageValueType|adding)|Width|AbsoluteValueType)|StorageEdited(Characters|Attributes)|CellType|ured(RoundedBezelStyle|BackgroundWindowMask|SquareBezelStyle)|Table(FixedLayoutAlgorithm|AutomaticLayoutAlgorithm)|Field(RoundedBezel|SquareBezel|AndStepperDatePickerStyle)|WriteInapplicableDocumentTypeError|ListPrependEnclosingMarker))|woByteGlyphPacking|ab(Character|TextMovement|le(tP(oint(Mask|EventSubtype)?|roximity(Mask|EventSubtype)?)|Column(NoResizing|UserResizingMask|AutoresizingMask)|View(ReverseSequentialColumnAutoresizingStyle|GridNone|S(olid(HorizontalGridLineMask|VerticalGridLineMask)|equentialColumnAutoresizingStyle)|NoColumnAutoresizing|UniformColumnAutoresizingStyle|FirstColumnOnlyAutoresizingStyle|LastColumnOnlyAutoresizingStyle)))|rackModeMatrix)|I(n(sert(CharFunctionKey|FunctionKey|LineFunctionKey)|t(Type|ernalS(criptError|pecifierError))|dexSubelement|validIndexSpecifierError|formational(Request|AlertStyle)|PredicateOperatorType)|talicFontMask|SO(2022JPStringEncoding|Latin(1StringEncoding|2StringEncoding))|dentityMappingCharacterCollection|llegalTextMovement|mage(R(ight|ep(MatchesDevice|LoadStatus(ReadingHeader|Completed|InvalidData|Un(expectedEOF|knownType)|WillNeedAllData)))|Below|C(ellType|ache(BySize|Never|Default|Always))|Interpolation(High|None|Default|Low)|O(nly|verlaps)|Frame(Gr(oove|ayBezel)|Button|None|Photo)|L(oadStatus(ReadError|C(ompleted|ancelled)|InvalidData|UnexpectedEOF)|eft)|A(lign(Right|Bottom(Right|Left)?|Center|Top(Right|Left)?|Left)|bove)))|O(n(State|eByteGlyphPacking|OffButton|lyScrollerArrows)|ther(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|TextMovement)|SF1OperatingSystem|pe(n(GL(GO(Re(setLibrary|tainRenderers)|ClearFormatCache|FormatCacheSize)|PFA(R(obust|endererID)|M(inimumPolicy|ulti(sample|Screen)|PSafe|aximumPolicy)|BackingStore|S(creenMask|te(ncilSize|reo)|ingleRenderer|upersample|ample(s|Buffers|Alpha))|NoRecovery|C(o(lor(Size|Float)|mpliant)|losestPolicy)|OffScreen|D(oubleBuffer|epthSize)|PixelBuffer|VirtualScreenCount|FullScreen|Window|A(cc(umSize|elerated)|ux(Buffers|DepthStencil)|l(phaSize|lRenderers))))|StepUnicodeReservedBase)|rationNotSupportedForKeyS(criptError|pecifierError))|ffState|KButton|rPredicateType|bjC(B(itfield|oolType)|S(hortType|tr(ingType|uctType)|electorType)|NoType|CharType|ObjectType|DoubleType|UnionType|PointerType|VoidType|FloatType|Long(Type|longType)|ArrayType))|D(i(s(c(losureBezelStyle|reteCapacityLevelIndicatorStyle)|playWindowRunLoopOrdering)|acriticInsensitivePredicateOption|rect(Selection|PredicateModifier))|o(c(ModalWindowMask|ument(Directory|ationDirectory))|ubleType|wn(TextMovement|ArrowFunctionKey))|e(s(cendingPageOrder|ktopDirectory)|cimalTabStopType|v(ice(NColorSpaceModel|IndependentModifierFlagsMask)|eloper(Directory|ApplicationDirectory))|fault(ControlTint|TokenStyle)|lete(Char(acter|FunctionKey)|FunctionKey|LineFunctionKey)|moApplicationDirectory)|a(yCalendarUnit|teFormatter(MediumStyle|Behavior(10|Default)|ShortStyle|NoStyle|FullStyle|LongStyle))|ra(wer(Clos(ingState|edState)|Open(ingState|State))|gOperation(Generic|Move|None|Copy|Delete|Private|Every|Link|All)))|U(ser(CancelledError|D(irectory|omainMask)|FunctionKey)|RL(Handle(NotLoaded|Load(Succeeded|InProgress|Failed))|CredentialPersistence(None|Permanent|ForSession))|n(scaledWindowMask|cachedRead|i(codeStringEncoding|talicFontMask|fiedTitleAndToolbarWindowMask)|d(o(CloseGroupingRunLoopOrdering|FunctionKey)|e(finedDateComponent|rline(Style(Single|None|Thick|Double)|Pattern(Solid|D(ot|ash(Dot(Dot)?)?)))))|known(ColorSpaceModel|P(ointingDevice|ageOrder)|KeyS(criptError|pecifierError))|boldFontMask)|tilityWindowMask|TF8StringEncoding|p(dateWindowsRunLoopOrdering|TextMovement|ArrowFunctionKey))|J(ustifiedTextAlignment|PEG(2000FileType|FileType)|apaneseEUC(GlyphPacking|StringEncoding))|P(o(s(t(Now|erFontMask|WhenIdle|ASAP)|iti(on(Replace|Be(fore|ginning)|End|After)|ve(IntType|DoubleType|FloatType)))|pUp(NoArrow|ArrowAt(Bottom|Center))|werOffEventType|rtraitOrientation)|NGFileType|ush(InCell(Mask)?|OnPushOffButton)|e(n(TipMask|UpperSideMask|PointingDevice|LowerSideMask)|riodic(Mask)?)|P(S(caleField|tatus(Title|Field)|aveButton)|N(ote(Title|Field)|ame(Title|Field))|CopiesField|TitleField|ImageButton|OptionsButton|P(a(perFeedButton|ge(Range(To|From)|ChoiceMatrix))|reviewButton)|LayoutButton)|lainTextTokenStyle|a(useFunctionKey|ragraphSeparatorCharacter|ge(DownFunctionKey|UpFunctionKey))|r(int(ing(ReplyLater|Success|Cancelled|Failure)|ScreenFunctionKey|erTable(NotFound|OK|Error)|FunctionKey)|o(p(ertyList(XMLFormat|MutableContainers(AndLeaves)?|BinaryFormat|Immutable|OpenStepFormat)|rietaryStringEncoding)|gressIndicator(BarStyle|SpinningStyle|Preferred(SmallThickness|Thickness|LargeThickness|AquaThickness)))|e(ssedTab|vFunctionKey))|L(HeightForm|CancelButton|TitleField|ImageButton|O(KButton|rientationMatrix)|UnitsButton|PaperNameButton|WidthForm))|E(n(terCharacter|d(sWith(Comparison|PredicateOperatorType)|FunctionKey))|v(e(nOddWindingRule|rySubelement)|aluatedObjectExpressionType)|qualTo(Comparison|PredicateOperatorType)|ra(serPointingDevice|CalendarUnit|DatePickerElementFlag)|x(clude(10|QuickDrawElementsIconCreationOption)|pandedFontMask|ecuteFunctionKey))|V(i(ew(M(in(XMargin|YMargin)|ax(XMargin|YMargin))|HeightSizable|NotSizable|WidthSizable)|aPanelFontAction)|erticalRuler|a(lidationErrorM(inimum|aximum)|riableExpressionType))|Key(SpecifierEvaluationScriptError|Down(Mask)?|Up(Mask)?|PathExpressionType|Value(MinusSetMutation|SetSetMutation|Change(Re(placement|moval)|Setting|Insertion)|IntersectSetMutation|ObservingOption(New|Old)|UnionSetMutation|ValidationError))|QTMovie(NormalPlayback|Looping(BackAndForthPlayback|Playback))|F(1(1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|7FunctionKey|i(nd(PanelAction(Replace(A(ndFind|ll(InSelection)?))?|S(howFindPanel|e(tFindString|lectAll(InSelection)?))|Next|Previous)|FunctionKey)|tPagination|le(Read(No(SuchFileError|PermissionError)|CorruptFileError|In(validFileNameError|applicableStringEncodingError)|Un(supportedSchemeError|knownError))|HandlingPanel(CancelButton|OKButton)|NoSuchFileError|ErrorM(inimum|aximum)|Write(NoPermissionError|In(validFileNameError|applicableStringEncodingError)|OutOfSpaceError|Un(supportedSchemeError|knownError))|LockingError)|xedPitchFontMask)|2(1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|o(nt(Mo(noSpaceTrait|dernSerifsClass)|BoldTrait|S(ymbolicClass|criptsClass|labSerifsClass|ansSerifClass)|C(o(ndensedTrait|llectionApplicationOnlyMask)|larendonSerifsClass)|TransitionalSerifsClass|I(ntegerAdvancementsRenderingMode|talicTrait)|O(ldStyleSerifsClass|rnamentalsClass)|DefaultRenderingMode|U(nknownClass|IOptimizedTrait)|Panel(S(hadowEffectModeMask|t(andardModesMask|rikethroughEffectModeMask)|izeModeMask)|CollectionModeMask|TextColorEffectModeMask|DocumentColorEffectModeMask|UnderlineEffectModeMask|FaceModeMask|All(ModesMask|EffectsModeMask))|ExpandedTrait|VerticalTrait|F(amilyClassMask|reeformSerifsClass)|Antialiased(RenderingMode|IntegerAdvancementsRenderingMode))|cusRing(Below|Type(None|Default|Exterior)|Only|Above)|urByteGlyphPacking|rm(attingError(M(inimum|aximum))?|FeedCharacter))|8FunctionKey|unction(ExpressionType|KeyMask)|3(1FunctionKey|2FunctionKey|3FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey)|9FunctionKey|4FunctionKey|P(RevertButton|S(ize(Title|Field)|etButton)|CurrentField|Preview(Button|Field))|l(oat(ingPointSamplesBitmapFormat|Type)|agsChanged(Mask)?)|axButton|5FunctionKey|6FunctionKey)|W(heelModeColorPanel|indow(s(NTOperatingSystem|CP125(1StringEncoding|2StringEncoding|3StringEncoding|4StringEncoding|0StringEncoding)|95(InterfaceStyle|OperatingSystem))|M(iniaturizeButton|ovedEventType)|Below|CloseButton|ToolbarButton|ZoomButton|Out|DocumentIconButton|ExposedEventType|Above)|orkspaceLaunch(NewInstance|InhibitingBackgroundOnly|Default|PreferringClassic|WithoutA(ctivation|ddingToRecents)|A(sync|nd(Hide(Others)?|Print)|llowingClassicStartup))|eek(day(CalendarUnit|OrdinalCalendarUnit)|CalendarUnit)|a(ntsBidiLevels|rningAlertStyle)|r(itingDirection(RightToLeft|Natural|LeftToRight)|apCalendarComponents))|L(i(stModeMatrix|ne(Moves(Right|Down|Up|Left)|B(order|reakBy(C(harWrapping|lipping)|Truncating(Middle|Head|Tail)|WordWrapping))|S(eparatorCharacter|weep(Right|Down|Up|Left))|ToBezierPathElement|DoesntMove|arSlider)|teralSearch|kePredicateOperatorType|ghterFontAction|braryDirectory)|ocalDomainMask|e(ssThan(Comparison|OrEqualTo(Comparison|PredicateOperatorType)|PredicateOperatorType)|ft(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|T(ext(Movement|Alignment)|ab(sBezelBorder|StopType))|ArrowFunctionKey))|a(yout(RightToLeft|NotDone|CantFit|OutOfGlyphs|Done|LeftToRight)|ndscapeOrientation)|ABColorSpaceModel)|A(sc(iiWithDoubleByteEUCGlyphPacking|endingPageOrder)|n(y(Type|PredicateModifier|EventMask)|choredSearch|imation(Blocking|Nonblocking(Threaded)?|E(ffect(DisappearingItemDefault|Poof)|ase(In(Out)?|Out))|Linear)|dPredicateType)|t(Bottom|tachmentCharacter|omicWrite|Top)|SCIIStringEncoding|d(obe(GB1CharacterCollection|CNS1CharacterCollection|Japan(1CharacterCollection|2CharacterCollection)|Korea1CharacterCollection)|dTraitFontAction|minApplicationDirectory)|uto(saveOperation|Pagination)|pp(lication(SupportDirectory|D(irectory|e(fined(Mask)?|legateReply(Success|Cancel|Failure)|activatedEventType))|ActivatedEventType)|KitDefined(Mask)?)|l(ternateKeyMask|pha(ShiftKeyMask|NonpremultipliedBitmapFormat|FirstBitmapFormat)|ert(SecondButtonReturn|ThirdButtonReturn|OtherReturn|DefaultReturn|ErrorReturn|FirstButtonReturn|AlternateReturn)|l(ScrollerParts|DomainsMask|PredicateModifier|LibrariesDirectory|ApplicationsDirectory))|rgument(sWrongScriptError|EvaluationScriptError)|bove(Bottom|Top)|WTEventType))\\b", + "name": "support.constant.cocoa.objcpp" + }, + "anonymous_pattern_4": { + "begin": "\\b(id)\\s*(?=<)", + "beginCaptures": { + "1": { + "name": "storage.type.objcpp" + } + }, + "end": "(?<=>)", + "name": "meta.id-with-protocol.objcpp", + "patterns": [ + { + "include": "#protocol_list" + } + ] + }, + "anonymous_pattern_5": { + "match": "\\b(NS_DURING|NS_HANDLER|NS_ENDHANDLER)\\b", + "name": "keyword.control.macro.objcpp" + }, + "anonymous_pattern_7": { + "captures": { + "1": { + "name": "punctuation.definition.keyword.objcpp" + } + }, + "match": "(@)(try|catch|finally|throw)\\b", + "name": "keyword.control.exception.objcpp" + }, + "anonymous_pattern_8": { + "captures": { + "1": { + "name": "punctuation.definition.keyword.objcpp" + } + }, + "match": "(@)(synchronized)\\b", + "name": "keyword.control.synchronize.objcpp" + }, + "anonymous_pattern_9": { + "captures": { + "1": { + "name": "punctuation.definition.keyword.objcpp" + } + }, + "match": "(@)(required|optional)\\b", + "name": "keyword.control.protocol-specification.objcpp" + }, + "apple_foundation_functional_macros": { + "begin": "(\\b(?:API_AVAILABLE|API_DEPRECATED|API_UNAVAILABLE|NS_AVAILABLE|NS_AVAILABLE_MAC|NS_AVAILABLE_IOS|NS_DEPRECATED|NS_DEPRECATED_MAC|NS_DEPRECATED_IOS|NS_SWIFT_NAME))(?:(?:\\s)+)?(\\()", + "end": "\\)", + "beginCaptures": { + "1": { + "name": "entity.name.function.preprocessor.apple-foundation.objcpp" + }, + "2": { + "name": "punctuation.section.macro.arguments.begin.bracket.round.apple-foundation.objcpp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.macro.arguments.end.bracket.round.apple-foundation.objcpp" + } + }, + "name": "meta.preprocessor.macro.callable.apple-foundation.objcpp", + "patterns": [ + { + "include": "#c_lang" + } + ] + }, + "bracketed_content": { + "begin": "\\[", + "beginCaptures": { + "0": { + "name": "punctuation.section.scope.begin.objcpp" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.section.scope.end.objcpp" + } + }, + "name": "meta.bracketed.objcpp", + "patterns": [ + { + "begin": "(?=predicateWithFormat:)(?<=NSPredicate )(predicateWithFormat:)", + "beginCaptures": { + "1": { + "name": "support.function.any-method.objcpp" + }, + "2": { + "name": "punctuation.separator.arguments.objcpp" + } + }, + "end": "(?=\\])", + "name": "meta.function-call.predicate.objcpp", + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.separator.arguments.objcpp" + } + }, + "match": "\\bargument(Array|s)(:)", + "name": "support.function.any-method.name-of-parameter.objcpp" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.arguments.objcpp" + } + }, + "match": "\\b\\w+(:)", + "name": "invalid.illegal.unknown-method.objcpp" + }, + { + "begin": "@\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.objcpp" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.objcpp" + } + }, + "name": "string.quoted.double.objcpp", + "patterns": [ + { + "match": "\\b(AND|OR|NOT|IN)\\b", + "name": "keyword.operator.logical.predicate.cocoa.objcpp" + }, + { + "match": "\\b(ALL|ANY|SOME|NONE)\\b", + "name": "constant.language.predicate.cocoa.objcpp" + }, + { + "match": "\\b(NULL|NIL|SELF|TRUE|YES|FALSE|NO|FIRST|LAST|SIZE)\\b", + "name": "constant.language.predicate.cocoa.objcpp" + }, + { + "match": "\\b(MATCHES|CONTAINS|BEGINSWITH|ENDSWITH|BETWEEN)\\b", + "name": "keyword.operator.comparison.predicate.cocoa.objcpp" + }, + { + "match": "\\bC(ASEINSENSITIVE|I)\\b", + "name": "keyword.other.modifier.predicate.cocoa.objcpp" + }, + { + "match": "\\b(ANYKEY|SUBQUERY|CAST|TRUEPREDICATE|FALSEPREDICATE)\\b", + "name": "keyword.other.predicate.cocoa.objcpp" + }, + { + "match": "\\\\(\\\\|[abefnrtv'\"?]|[0-3]\\d{,2}|[4-7]\\d?|x[a-zA-Z0-9]+)", + "name": "constant.character.escape.objcpp" + }, + { + "match": "\\\\.", + "name": "invalid.illegal.unknown-escape.objcpp" + } + ] + }, + { + "include": "#special_variables" + }, + { + "include": "#c_functions" + }, + { + "include": "$base" + } + ] + }, + { + "begin": "(?=\\w)(?<=[\\w\\])\"] )(\\w+(?:(:)|(?=\\])))", + "beginCaptures": { + "1": { + "name": "support.function.any-method.objcpp" + }, + "2": { + "name": "punctuation.separator.arguments.objcpp" + } + }, + "end": "(?=\\])", + "name": "meta.function-call.objcpp", + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.separator.arguments.objcpp" + } + }, + "match": "\\b\\w+(:)", + "name": "support.function.any-method.name-of-parameter.objcpp" + }, + { + "include": "#special_variables" + }, + { + "include": "#c_functions" + }, + { + "include": "$base" + } + ] + }, + { + "include": "#special_variables" + }, + { + "include": "#c_functions" + }, + { + "include": "$self" + } + ] + }, + "c_functions": { + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.whitespace.support.function.leading.objcpp" + }, + "2": { + "name": "support.function.C99.objcpp" + } + }, + "match": "(\\s*)\\b(hypot(f|l)?|s(scanf|ystem|nprintf|ca(nf|lb(n(f|l)?|ln(f|l)?))|i(n(h(f|l)?|f|l)?|gn(al|bit))|tr(s(tr|pn)|nc(py|at|mp)|c(spn|hr|oll|py|at|mp)|to(imax|d|u(l(l)?|max)|k|f|l(d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(jmp|vbuf|locale|buf)|qrt(f|l)?|w(scanf|printf)|rand)|n(e(arbyint(f|l)?|xt(toward(f|l)?|after(f|l)?))|an(f|l)?)|c(s(in(h(f|l)?|f|l)?|qrt(f|l)?)|cos(h(f)?|f|l)?|imag(f|l)?|t(ime|an(h(f|l)?|f|l)?)|o(s(h(f|l)?|f|l)?|nj(f|l)?|pysign(f|l)?)|p(ow(f|l)?|roj(f|l)?)|e(il(f|l)?|xp(f|l)?)|l(o(ck|g(f|l)?)|earerr)|a(sin(h(f|l)?|f|l)?|cos(h(f|l)?|f|l)?|tan(h(f|l)?|f|l)?|lloc|rg(f|l)?|bs(f|l)?)|real(f|l)?|brt(f|l)?)|t(ime|o(upper|lower)|an(h(f|l)?|f|l)?|runc(f|l)?|gamma(f|l)?|mp(nam|file))|i(s(space|n(ormal|an)|cntrl|inf|digit|u(nordered|pper)|p(unct|rint)|finite|w(space|c(ntrl|type)|digit|upper|p(unct|rint)|lower|al(num|pha)|graph|xdigit|blank)|l(ower|ess(equal|greater)?)|al(num|pha)|gr(eater(equal)?|aph)|xdigit|blank)|logb(f|l)?|max(div|abs))|di(v|fftime)|_Exit|unget(c|wc)|p(ow(f|l)?|ut(s|c(har)?|wc(har)?)|error|rintf)|e(rf(c(f|l)?|f|l)?|x(it|p(2(f|l)?|f|l|m1(f|l)?)?))|v(s(scanf|nprintf|canf|printf|w(scanf|printf))|printf|f(scanf|printf|w(scanf|printf))|w(scanf|printf)|a_(start|copy|end|arg))|qsort|f(s(canf|e(tpos|ek))|close|tell|open|dim(f|l)?|p(classify|ut(s|c|w(s|c))|rintf)|e(holdexcept|set(e(nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(aiseexcept|ror)|get(e(nv|xceptflag)|round))|flush|w(scanf|ide|printf|rite)|loor(f|l)?|abs(f|l)?|get(s|c|pos|w(s|c))|re(open|e|ad|xp(f|l)?)|m(in(f|l)?|od(f|l)?|a(f|l|x(f|l)?)?))|l(d(iv|exp(f|l)?)|o(ngjmp|cal(time|econv)|g(1(p(f|l)?|0(f|l)?)|2(f|l)?|f|l|b(f|l)?)?)|abs|l(div|abs|r(int(f|l)?|ound(f|l)?))|r(int(f|l)?|ound(f|l)?)|gamma(f|l)?)|w(scanf|c(s(s(tr|pn)|nc(py|at|mp)|c(spn|hr|oll|py|at|mp)|to(imax|d|u(l(l)?|max)|k|f|l(d|l)?|mbs)|pbrk|ftime|len|r(chr|tombs)|xfrm)|to(b|mb)|rtomb)|printf|mem(set|c(hr|py|mp)|move))|a(s(sert|ctime|in(h(f|l)?|f|l)?)|cos(h(f|l)?|f|l)?|t(o(i|f|l(l)?)|exit|an(h(f|l)?|2(f|l)?|f|l)?)|b(s|ort))|g(et(s|c(har)?|env|wc(har)?)|mtime)|r(int(f|l)?|ound(f|l)?|e(name|alloc|wind|m(ove|quo(f|l)?|ainder(f|l)?))|a(nd|ise))|b(search|towc)|m(odf(f|l)?|em(set|c(hr|py|mp)|move)|ktime|alloc|b(s(init|towcs|rtowcs)|towc|len|r(towc|len))))\\b" + }, + { + "captures": { + "1": { + "name": "punctuation.whitespace.function-call.leading.objcpp" + }, + "2": { + "name": "support.function.any-method.objcpp" + }, + "3": { + "name": "punctuation.definition.parameters.objcpp" + } + }, + "match": "(?x) (?: (?= \\s ) (?:(?<=else|new|return) | (?<!\\w)) (\\s+))?\n \t\t\t(\\b \n \t\t\t\t(?!(while|for|do|if|else|switch|catch|enumerate|return|r?iterate)\\s*\\()(?:(?!NS)[A-Za-z_][A-Za-z0-9_]*+\\b | :: )++ # actual name\n \t\t\t)\n \t\t\t \\s*(\\()", + "name": "meta.function-call.objcpp" + } + ] + }, + "c_lang": { + "patterns": [ + { + "include": "#preprocessor-rule-enabled" + }, + { + "include": "#preprocessor-rule-disabled" + }, + { + "include": "#preprocessor-rule-conditional" + }, + { + "include": "#comments" + }, + { + "include": "#switch_statement" + }, + { + "match": "\\b(break|continue|do|else|for|goto|if|_Pragma|return|while)\\b", + "name": "keyword.control.objcpp" + }, + { + "include": "#storage_types" + }, + { + "match": "typedef", + "name": "keyword.other.typedef.objcpp" + }, + { + "match": "\\bin\\b", + "name": "keyword.other.in.objcpp" + }, + { + "match": "\\b(const|extern|register|restrict|static|volatile|inline|__block)\\b", + "name": "storage.modifier.objcpp" + }, + { + "match": "\\bk[A-Z]\\w*\\b", + "name": "constant.other.variable.mac-classic.objcpp" + }, + { + "match": "\\bg[A-Z]\\w*\\b", + "name": "variable.other.readwrite.global.mac-classic.objcpp" + }, + { + "match": "\\bs[A-Z]\\w*\\b", + "name": "variable.other.readwrite.static.mac-classic.objcpp" + }, + { + "match": "\\b(NULL|true|false|TRUE|FALSE)\\b", + "name": "constant.language.objcpp" + }, + { + "include": "#operators" + }, + { + "include": "#numbers" + }, + { + "include": "#strings" + }, + { + "include": "#special_variables" + }, + { + "begin": "(?x)\n^\\s* ((\\#)\\s*define) \\s+\t# define\n((?<id>[a-zA-Z_$][\\w$]*))\t # macro name\n(?:\n (\\()\n\t(\n\t \\s* \\g<id> \\s*\t\t # first argument\n\t ((,) \\s* \\g<id> \\s*)* # additional arguments\n\t (?:\\.\\.\\.)?\t\t\t# varargs ellipsis?\n\t)\n (\\))\n)?", + "beginCaptures": { + "1": { + "name": "keyword.control.directive.define.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + }, + "3": { + "name": "entity.name.function.preprocessor.objcpp" + }, + "5": { + "name": "punctuation.definition.parameters.begin.objcpp" + }, + "6": { + "name": "variable.parameter.preprocessor.objcpp" + }, + "8": { + "name": "punctuation.separator.parameters.objcpp" + }, + "9": { + "name": "punctuation.definition.parameters.end.objcpp" + } + }, + "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.macro.objcpp", + "patterns": [ + { + "include": "#preprocessor-rule-define-line-contents" + } + ] + }, + { + "begin": "^\\s*((#)\\s*(error|warning))\\b\\s*", + "beginCaptures": { + "1": { + "name": "keyword.control.directive.diagnostic.$3.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.diagnostic.objcpp", + "patterns": [ + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.objcpp" + } + }, + "end": "\"|(?<!\\\\)(?=\\s*\\n)", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.objcpp" + } + }, + "name": "string.quoted.double.objcpp", + "patterns": [ + { + "include": "#line_continuation_character" + } + ] + }, + { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.objcpp" + } + }, + "end": "'|(?<!\\\\)(?=\\s*\\n)", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.objcpp" + } + }, + "name": "string.quoted.single.objcpp", + "patterns": [ + { + "include": "#line_continuation_character" + } + ] + }, + { + "begin": "[^'\"]", + "end": "(?<!\\\\)(?=\\s*\\n)", + "name": "string.unquoted.single.objcpp", + "patterns": [ + { + "include": "#line_continuation_character" + }, + { + "include": "#comments" + } + ] + } + ] + }, + { + "begin": "^\\s*((#)\\s*(include(?:_next)?|import))\\b\\s*", + "beginCaptures": { + "1": { + "name": "keyword.control.directive.$3.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.include.objcpp", + "patterns": [ + { + "include": "#line_continuation_character" + }, + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.objcpp" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.objcpp" + } + }, + "name": "string.quoted.double.include.objcpp" + }, + { + "begin": "<", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.objcpp" + } + }, + "end": ">", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.objcpp" + } + }, + "name": "string.quoted.other.lt-gt.include.objcpp" + } + ] + }, + { + "include": "#pragma-mark" + }, + { + "begin": "^\\s*((#)\\s*line)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.directive.line.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.objcpp", + "patterns": [ + { + "include": "#strings" + }, + { + "include": "#numbers" + }, + { + "include": "#line_continuation_character" + } + ] + }, + { + "begin": "^\\s*(?:((#)\\s*undef))\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.directive.undef.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.objcpp", + "patterns": [ + { + "match": "[a-zA-Z_$][\\w$]*", + "name": "entity.name.function.preprocessor.objcpp" + }, + { + "include": "#line_continuation_character" + } + ] + }, + { + "begin": "^\\s*(?:((#)\\s*pragma))\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.directive.pragma.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.pragma.objcpp", + "patterns": [ + { + "include": "#strings" + }, + { + "match": "[a-zA-Z_$][\\w\\-$]*", + "name": "entity.other.attribute-name.pragma.preprocessor.objcpp" + }, + { + "include": "#numbers" + }, + { + "include": "#line_continuation_character" + } + ] + }, + { + "match": "\\b(u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t)\\b", + "name": "support.type.sys-types.objcpp" + }, + { + "match": "\\b(pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t)\\b", + "name": "support.type.pthread.objcpp" + }, + { + "match": "(?x) \\b\n(int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t\n|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t\n|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t\n|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t\n|uintmax_t|uintmax_t)\n\\b", + "name": "support.type.stdint.objcpp" + }, + { + "match": "\\b(noErr|kNilOptions|kInvalidID|kVariableLengthArray)\\b", + "name": "support.constant.mac-classic.objcpp" + }, + { + "match": "(?x) \\b\n(AbsoluteTime|Boolean|Byte|ByteCount|ByteOffset|BytePtr|CompTimeValue|ConstLogicalAddress|ConstStrFileNameParam\n|ConstStringPtr|Duration|Fixed|FixedPtr|Float32|Float32Point|Float64|Float80|Float96|FourCharCode|Fract|FractPtr\n|Handle|ItemCount|LogicalAddress|OptionBits|OSErr|OSStatus|OSType|OSTypePtr|PhysicalAddress|ProcessSerialNumber\n|ProcessSerialNumberPtr|ProcHandle|Ptr|ResType|ResTypePtr|ShortFixed|ShortFixedPtr|SignedByte|SInt16|SInt32|SInt64\n|SInt8|Size|StrFileName|StringHandle|StringPtr|TimeBase|TimeRecord|TimeScale|TimeValue|TimeValue64|UInt16|UInt32\n|UInt64|UInt8|UniChar|UniCharCount|UniCharCountPtr|UniCharPtr|UnicodeScalarValue|UniversalProcHandle|UniversalProcPtr\n|UnsignedFixed|UnsignedFixedPtr|UnsignedWide|UTF16Char|UTF32Char|UTF8Char)\n\\b", + "name": "support.type.mac-classic.objcpp" + }, + { + "match": "\\b([A-Za-z0-9_]+_t)\\b", + "name": "support.type.posix-reserved.objcpp" + }, + { + "include": "#block" + }, + { + "include": "#parens" + }, + { + "name": "meta.function.objcpp", + "begin": "(?<!\\w)(?!\\s*(?:not|compl|sizeof|not_eq|bitand|xor|bitor|and|or|and_eq|xor_eq|or_eq|alignof|alignas|_Alignof|_Alignas|while|for|do|if|else|goto|switch|return|break|case|continue|default|void|char|short|int|signed|unsigned|long|float|double|bool|_Bool|_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|NULL|true|false|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t|struct|union|enum|typedef|auto|register|static|extern|thread_local|inline|_Noreturn|const|volatile|restrict|_Atomic)\\s*\\()(?=[a-zA-Z_]\\w*\\s*\\()", + "end": "(?<=\\))", + "patterns": [ + { + "include": "#function-innards" + } + ] + }, + { + "include": "#line_continuation_character" + }, + { + "name": "meta.bracket.square.access.objcpp", + "begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))?(\\[)(?!\\])", + "beginCaptures": { + "1": { + "name": "variable.object.objcpp" + }, + "2": { + "name": "punctuation.definition.begin.bracket.square.objcpp" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.end.bracket.square.objcpp" + } + }, + "patterns": [ + { + "include": "#function-call-innards" + } + ] + }, + { + "name": "storage.modifier.array.bracket.square.objcpp", + "match": "\\[\\s*\\]" + }, + { + "match": ";", + "name": "punctuation.terminator.statement.objcpp" + }, + { + "match": ",", + "name": "punctuation.separator.delimiter.objcpp" + } + ], + "repository": { + "probably_a_parameter": { + "match": "(?<=(?:[a-zA-Z_0-9] |[&*>\\]\\)]))\\s*([a-zA-Z_]\\w*)\\s*(?=(?:\\[\\]\\s*)?(?:,|\\)))", + "captures": { + "1": { + "name": "variable.parameter.probably.objcpp" + } + } + }, + "access-method": { + "name": "meta.function-call.member.objcpp", + "begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))\\s*(?:(\\.)|(->))((?:(?:[a-zA-Z_][a-zA-Z_0-9]*)\\s*(?:(?:\\.)|(?:->)))*)\\s*([a-zA-Z_][a-zA-Z_0-9]*)(\\()", + "beginCaptures": { + "1": { + "name": "variable.object.objcpp" + }, + "2": { + "name": "punctuation.separator.dot-access.objcpp" + }, + "3": { + "name": "punctuation.separator.pointer-access.objcpp" + }, + "4": { + "patterns": [ + { + "match": "\\.", + "name": "punctuation.separator.dot-access.objcpp" + }, + { + "match": "->", + "name": "punctuation.separator.pointer-access.objcpp" + }, + { + "match": "[a-zA-Z_][a-zA-Z_0-9]*", + "name": "variable.object.objcpp" + }, + { + "name": "everything.else.objcpp", + "match": ".+" + } + ] + }, + "5": { + "name": "entity.name.function.member.objcpp" + }, + "6": { + "name": "punctuation.section.arguments.begin.bracket.round.function.member.objcpp" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.function.member.objcpp" + } + }, + "patterns": [ + { + "include": "#function-call-innards" + } + ] + }, + "block": { + "patterns": [ + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.objcpp" + } + }, + "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)", + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.objcpp" + } + }, + "name": "meta.block.objcpp", + "patterns": [ + { + "include": "#block_innards" + } + ] + } + ] + }, + "block_innards": { + "patterns": [ + { + "include": "#preprocessor-rule-enabled-block" + }, + { + "include": "#preprocessor-rule-disabled-block" + }, + { + "include": "#preprocessor-rule-conditional-block" + }, + { + "include": "#method_access" + }, + { + "include": "#member_access" + }, + { + "include": "#c_function_call" + }, + { + "name": "meta.initialization.objcpp", + "begin": "(?x)\n(?:\n (?:\n\t(?=\\s)(?<!else|new|return)\n\t(?<=\\w) \\s+(and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas) # or word + space before name\n )\n)\n(\n (?:[A-Za-z_][A-Za-z0-9_]*+ | :: )++ # actual name\n |\n (?:(?<=operator) (?:[-*&<>=+!]+ | \\(\\) | \\[\\]))\n)\n\\s*(\\() # opening bracket", + "beginCaptures": { + "1": { + "name": "variable.other.objcpp" + }, + "2": { + "name": "punctuation.section.parens.begin.bracket.round.initialization.objcpp" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.parens.end.bracket.round.initialization.objcpp" + } + }, + "patterns": [ + { + "include": "#function-call-innards" + } + ] + }, + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.objcpp" + } + }, + "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)", + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.objcpp" + } + }, + "patterns": [ + { + "include": "#block_innards" + } + ] + }, + { + "include": "#parens-block" + }, + { + "include": "$base" + } + ] + }, + "c_function_call": { + "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(?=\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)", + "end": "(?<=\\))(?!\\w)", + "name": "meta.function-call.objcpp", + "patterns": [ + { + "include": "#function-call-innards" + } + ] + }, + "comments": { + "patterns": [ + { + "captures": { + "1": { + "name": "meta.toc-list.banner.block.objcpp" + } + }, + "match": "^/\\* =(\\s*.*?)\\s*= \\*/$\\n?", + "name": "comment.block.objcpp" + }, + { + "begin": "/\\*", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.begin.objcpp" + } + }, + "end": "\\*/", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.end.objcpp" + } + }, + "name": "comment.block.objcpp" + }, + { + "captures": { + "1": { + "name": "meta.toc-list.banner.line.objcpp" + } + }, + "match": "^// =(\\s*.*?)\\s*=\\s*$\\n?", + "name": "comment.line.banner.objcpp" + }, + { + "begin": "(^[ \\t]+)?(?=//)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.objcpp" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": "//", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.objcpp" + } + }, + "end": "(?=\\n)", + "name": "comment.line.double-slash.objcpp", + "patterns": [ + { + "include": "#line_continuation_character" + } + ] + } + ] + } + ] + }, + "disabled": { + "begin": "^\\s*#\\s*if(n?def)?\\b.*$", + "end": "^\\s*#\\s*endif\\b", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + }, + "line_continuation_character": { + "patterns": [ + { + "match": "(\\\\)\\n", + "captures": { + "1": { + "name": "constant.character.escape.line-continuation.objcpp" + } + } + } + ] + }, + "parens": { + "name": "meta.parens.objcpp", + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.section.parens.begin.bracket.round.objcpp" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.parens.end.bracket.round.objcpp" + } + }, + "patterns": [ + { + "include": "$base" + } + ] + }, + "parens-block": { + "name": "meta.parens.block.objcpp", + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.section.parens.begin.bracket.round.objcpp" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.parens.end.bracket.round.objcpp" + } + }, + "patterns": [ + { + "include": "#block_innards" + }, + { + "match": "(?-mix:(?<!:):(?!:))", + "name": "punctuation.range-based.objcpp" + } + ] + }, + "pragma-mark": { + "captures": { + "1": { + "name": "meta.preprocessor.pragma.objcpp" + }, + "2": { + "name": "keyword.control.directive.pragma.pragma-mark.objcpp" + }, + "3": { + "name": "punctuation.definition.directive.objcpp" + }, + "4": { + "name": "entity.name.tag.pragma-mark.objcpp" + } + }, + "match": "^\\s*(((#)\\s*pragma\\s+mark)\\s+(.*))", + "name": "meta.section.objcpp" + }, + "operators": { + "patterns": [ + { + "match": "(?<![\\w$])(sizeof)(?![\\w$])", + "name": "keyword.operator.sizeof.objcpp" + }, + { + "match": "--", + "name": "keyword.operator.decrement.objcpp" + }, + { + "match": "\\+\\+", + "name": "keyword.operator.increment.objcpp" + }, + { + "match": "%=|\\+=|-=|\\*=|(?<!\\()/=", + "name": "keyword.operator.assignment.compound.objcpp" + }, + { + "match": "&=|\\^=|<<=|>>=|\\|=", + "name": "keyword.operator.assignment.compound.bitwise.objcpp" + }, + { + "match": "<<|>>", + "name": "keyword.operator.bitwise.shift.objcpp" + }, + { + "match": "!=|<=|>=|==|<|>", + "name": "keyword.operator.comparison.objcpp" + }, + { + "match": "&&|!|\\|\\|", + "name": "keyword.operator.logical.objcpp" + }, + { + "match": "&|\\||\\^|~", + "name": "keyword.operator.objcpp" + }, + { + "match": "=", + "name": "keyword.operator.assignment.objcpp" + }, + { + "match": "%|\\*|/|-|\\+", + "name": "keyword.operator.objcpp" + }, + { + "begin": "(\\?)", + "beginCaptures": { + "1": { + "name": "keyword.operator.ternary.objcpp" + } + }, + "end": "(:)", + "endCaptures": { + "1": { + "name": "keyword.operator.ternary.objcpp" + } + }, + "patterns": [ + { + "include": "#function-call-innards" + }, + { + "include": "$base" + } + ] + } + ] + }, + "strings": { + "patterns": [ + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.objcpp" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.objcpp" + } + }, + "name": "string.quoted.double.objcpp", + "patterns": [ + { + "include": "#string_escaped_char" + }, + { + "include": "#string_placeholder" + }, + { + "include": "#line_continuation_character" + } + ] + }, + { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.objcpp" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.objcpp" + } + }, + "name": "string.quoted.single.objcpp", + "patterns": [ + { + "include": "#string_escaped_char" + }, + { + "include": "#line_continuation_character" + } + ] + } + ] + }, + "string_escaped_char": { + "patterns": [ + { + "match": "(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3]\\d{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )", + "name": "constant.character.escape.objcpp" + }, + { + "match": "\\\\.", + "name": "invalid.illegal.unknown-escape.objcpp" + } + ] + }, + "string_placeholder": { + "patterns": [ + { + "match": "(?x) %\n(\\d+\\$)?\t\t\t\t\t\t # field (argument #)\n[#0\\- +']*\t\t\t\t\t\t # flags\n[,;:_]?\t\t\t\t\t\t\t # separator character (AltiVec)\n((-?\\d+)|\\*(-?\\d+\\$)?)?\t\t # minimum field width\n(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?\t# precision\n(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n[diouxXDOUeEfFgGaACcSspn%]\t\t # conversion type", + "name": "constant.other.placeholder.objcpp" + }, + { + "match": "(%)(?!\"\\s*(PRI|SCN))", + "captures": { + "1": { + "name": "invalid.illegal.placeholder.objcpp" + } + } + } + ] + }, + "storage_types": { + "patterns": [ + { + "match": "(?-mix:(?<!\\w)(?:void|char|short|int|signed|unsigned|long|float|double|bool|_Bool)(?!\\w))", + "name": "storage.type.built-in.primitive.objcpp" + }, + { + "match": "(?-mix:(?<!\\w)(?:_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t)(?!\\w))", + "name": "storage.type.built-in.objcpp" + }, + { + "match": "(?-mix:\\b(asm|__asm__|enum|struct|union)\\b)", + "name": "storage.type.$1.objcpp" + } + ] + }, + "vararg_ellipses": { + "match": "(?<!\\.)\\.\\.\\.(?!\\.)", + "name": "punctuation.vararg-ellipses.objcpp" + }, + "preprocessor-rule-conditional": { + "patterns": [ + { + "begin": "^\\s*((#)\\s*if(?:n?def)?\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "^\\s*((#)\\s*endif\\b)", + "endCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "patterns": [ + { + "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.objcpp", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "#preprocessor-rule-enabled-elif" + }, + { + "include": "#preprocessor-rule-enabled-else" + }, + { + "include": "#preprocessor-rule-disabled-elif" + }, + { + "begin": "^\\s*((#)\\s*elif\\b)", + "beginCaptures": { + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.objcpp", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "$base" + } + ] + }, + { + "match": "^\\s*#\\s*(else|elif|endif)\\b", + "captures": { + "0": { + "name": "invalid.illegal.stray-$1.objcpp" + } + } + } + ] + }, + "preprocessor-rule-conditional-block": { + "patterns": [ + { + "begin": "^\\s*((#)\\s*if(?:n?def)?\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "^\\s*((#)\\s*endif\\b)", + "endCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "patterns": [ + { + "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.objcpp", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "#preprocessor-rule-enabled-elif-block" + }, + { + "include": "#preprocessor-rule-enabled-else-block" + }, + { + "include": "#preprocessor-rule-disabled-elif" + }, + { + "begin": "^\\s*((#)\\s*elif\\b)", + "beginCaptures": { + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.objcpp", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "#block_innards" + } + ] + }, + { + "match": "^\\s*#\\s*(else|elif|endif)\\b", + "captures": { + "0": { + "name": "invalid.illegal.stray-$1.objcpp" + } + } + } + ] + }, + "preprocessor-rule-conditional-line": { + "patterns": [ + { + "match": "(?:\\bdefined\\b\\s*$)|(?:\\bdefined\\b(?=\\s*\\(*\\s*(?:(?!defined\\b)[a-zA-Z_$][\\w$]*\\b)\\s*\\)*\\s*(?:\\n|//|/\\*|\\?|\\:|&&|\\|\\||\\\\\\s*\\n)))", + "name": "keyword.control.directive.conditional.objcpp" + }, + { + "match": "\\bdefined\\b", + "name": "invalid.illegal.macro-name.objcpp" + }, + { + "include": "#comments" + }, + { + "include": "#strings" + }, + { + "include": "#numbers" + }, + { + "begin": "\\?", + "beginCaptures": { + "0": { + "name": "keyword.operator.ternary.objcpp" + } + }, + "end": ":", + "endCaptures": { + "0": { + "name": "keyword.operator.ternary.objcpp" + } + }, + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "#operators" + }, + { + "match": "\\b(NULL|true|false|TRUE|FALSE)\\b", + "name": "constant.language.objcpp" + }, + { + "match": "[a-zA-Z_$][\\w$]*", + "name": "entity.name.function.preprocessor.objcpp" + }, + { + "include": "#line_continuation_character" + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.section.parens.begin.bracket.round.objcpp" + } + }, + "end": "\\)|(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", + "endCaptures": { + "0": { + "name": "punctuation.section.parens.end.bracket.round.objcpp" + } + }, + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + } + ] + }, + "preprocessor-rule-disabled": { + "patterns": [ + { + "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "^\\s*((#)\\s*endif\\b)", + "endCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "patterns": [ + { + "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)", + "name": "meta.preprocessor.objcpp", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "#comments" + }, + { + "include": "#preprocessor-rule-enabled-elif" + }, + { + "include": "#preprocessor-rule-enabled-else" + }, + { + "include": "#preprocessor-rule-disabled-elif" + }, + { + "begin": "^\\s*((#)\\s*elif\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))", + "patterns": [ + { + "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.objcpp", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "$base" + } + ] + }, + { + "contentName": "comment.block.preprocessor.if-branch.objcpp", + "begin": "\\n", + "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + } + ] + } + ] + }, + "preprocessor-rule-disabled-block": { + "patterns": [ + { + "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "^\\s*((#)\\s*endif\\b)", + "endCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "patterns": [ + { + "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)", + "name": "meta.preprocessor.objcpp", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "#comments" + }, + { + "include": "#preprocessor-rule-enabled-elif-block" + }, + { + "include": "#preprocessor-rule-enabled-else-block" + }, + { + "include": "#preprocessor-rule-disabled-elif" + }, + { + "begin": "^\\s*((#)\\s*elif\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))", + "patterns": [ + { + "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.objcpp", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "#block_innards" + } + ] + }, + { + "contentName": "comment.block.preprocessor.if-branch.in-block.objcpp", + "begin": "\\n", + "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + } + ] + } + ] + }, + "preprocessor-rule-disabled-elif": { + "begin": "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))", + "patterns": [ + { + "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.objcpp", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "#comments" + }, + { + "contentName": "comment.block.preprocessor.elif-branch.objcpp", + "begin": "\\n", + "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + } + ] + }, + "preprocessor-rule-enabled": { + "patterns": [ + { + "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + }, + "3": { + "name": "constant.numeric.preprocessor.objcpp" + } + }, + "end": "^\\s*((#)\\s*endif\\b)", + "endCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "patterns": [ + { + "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)", + "name": "meta.preprocessor.objcpp", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "#comments" + }, + { + "contentName": "comment.block.preprocessor.else-branch.objcpp", + "begin": "^\\s*((#)\\s*else\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "(?=^\\s*((#)\\s*endif\\b))", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + }, + { + "contentName": "comment.block.preprocessor.if-branch.objcpp", + "begin": "^\\s*((#)\\s*elif\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + }, + { + "begin": "\\n", + "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", + "patterns": [ + { + "include": "$base" + } + ] + } + ] + } + ] + }, + "preprocessor-rule-enabled-block": { + "patterns": [ + { + "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "^\\s*((#)\\s*endif\\b)", + "endCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "patterns": [ + { + "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)", + "name": "meta.preprocessor.objcpp", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "#comments" + }, + { + "contentName": "comment.block.preprocessor.else-branch.in-block.objcpp", + "begin": "^\\s*((#)\\s*else\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "(?=^\\s*((#)\\s*endif\\b))", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + }, + { + "contentName": "comment.block.preprocessor.if-branch.in-block.objcpp", + "begin": "^\\s*((#)\\s*elif\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + }, + { + "begin": "\\n", + "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", + "patterns": [ + { + "include": "#block_innards" + } + ] + } + ] + } + ] + }, + "preprocessor-rule-enabled-elif": { + "begin": "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "(?=^\\s*((#)\\s*endif\\b))", + "patterns": [ + { + "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.objcpp", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "#comments" + }, + { + "begin": "\\n", + "end": "(?=^\\s*((#)\\s*(?:endif)\\b))", + "patterns": [ + { + "contentName": "comment.block.preprocessor.elif-branch.objcpp", + "begin": "^\\s*((#)\\s*(else)\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "(?=^\\s*((#)\\s*endif\\b))", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + }, + { + "contentName": "comment.block.preprocessor.elif-branch.objcpp", + "begin": "^\\s*((#)\\s*(elif)\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + }, + { + "include": "$base" + } + ] + } + ] + }, + "preprocessor-rule-enabled-elif-block": { + "begin": "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "(?=^\\s*((#)\\s*endif\\b))", + "patterns": [ + { + "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.objcpp", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "#comments" + }, + { + "begin": "\\n", + "end": "(?=^\\s*((#)\\s*(?:endif)\\b))", + "patterns": [ + { + "contentName": "comment.block.preprocessor.elif-branch.in-block.objcpp", + "begin": "^\\s*((#)\\s*(else)\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "(?=^\\s*((#)\\s*endif\\b))", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + }, + { + "contentName": "comment.block.preprocessor.elif-branch.objcpp", + "begin": "^\\s*((#)\\s*(elif)\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + }, + { + "include": "#block_innards" + } + ] + } + ] + }, + "preprocessor-rule-enabled-else": { + "begin": "^\\s*((#)\\s*else\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "(?=^\\s*((#)\\s*endif\\b))", + "patterns": [ + { + "include": "$base" + } + ] + }, + "preprocessor-rule-enabled-else-block": { + "begin": "^\\s*((#)\\s*else\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "(?=^\\s*((#)\\s*endif\\b))", + "patterns": [ + { + "include": "#block_innards" + } + ] + }, + "preprocessor-rule-define-line-contents": { + "patterns": [ + { + "include": "#vararg_ellipses" + }, + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.objcpp" + } + }, + "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)", + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.objcpp" + } + }, + "name": "meta.block.objcpp", + "patterns": [ + { + "include": "#preprocessor-rule-define-line-blocks" + } + ] + }, + { + "match": "\\(", + "name": "punctuation.section.parens.begin.bracket.round.objcpp" + }, + { + "match": "\\)", + "name": "punctuation.section.parens.end.bracket.round.objcpp" + }, + { + "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas|asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void)\\s*\\()\n(?=\n (?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name\n |\n (?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)", + "end": "(?<=\\))(?!\\w)|(?<!\\\\)(?=\\s*\\n)", + "name": "meta.function.objcpp", + "patterns": [ + { + "include": "#preprocessor-rule-define-line-functions" + } + ] + }, + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.objcpp" + } + }, + "end": "\"|(?<!\\\\)(?=\\s*\\n)", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.objcpp" + } + }, + "name": "string.quoted.double.objcpp", + "patterns": [ + { + "include": "#string_escaped_char" + }, + { + "include": "#string_placeholder" + }, + { + "include": "#line_continuation_character" + } + ] + }, + { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.objcpp" + } + }, + "end": "'|(?<!\\\\)(?=\\s*\\n)", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.objcpp" + } + }, + "name": "string.quoted.single.objcpp", + "patterns": [ + { + "include": "#string_escaped_char" + }, + { + "include": "#line_continuation_character" + } + ] + }, + { + "include": "#method_access" + }, + { + "include": "#member_access" + }, + { + "include": "$base" + } + ] + }, + "preprocessor-rule-define-line-blocks": { + "patterns": [ + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.objcpp" + } + }, + "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)", + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.objcpp" + } + }, + "patterns": [ + { + "include": "#preprocessor-rule-define-line-blocks" + }, + { + "include": "#preprocessor-rule-define-line-contents" + } + ] + }, + { + "include": "#preprocessor-rule-define-line-contents" + } + ] + }, + "preprocessor-rule-define-line-functions": { + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#storage_types" + }, + { + "include": "#vararg_ellipses" + }, + { + "include": "#method_access" + }, + { + "include": "#member_access" + }, + { + "include": "#operators" + }, + { + "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()", + "beginCaptures": { + "1": { + "name": "entity.name.function.objcpp" + }, + "2": { + "name": "punctuation.section.arguments.begin.bracket.round.objcpp" + } + }, + "end": "(\\))|(?<!\\\\)(?=\\s*\\n)", + "endCaptures": { + "1": { + "name": "punctuation.section.arguments.end.bracket.round.objcpp" + } + }, + "patterns": [ + { + "include": "#preprocessor-rule-define-line-functions" + } + ] + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.section.parens.begin.bracket.round.objcpp" + } + }, + "end": "(\\))|(?<!\\\\)(?=\\s*\\n)", + "endCaptures": { + "1": { + "name": "punctuation.section.parens.end.bracket.round.objcpp" + } + }, + "patterns": [ + { + "include": "#preprocessor-rule-define-line-functions" + } + ] + }, + { + "include": "#preprocessor-rule-define-line-contents" + } + ] + }, + "function-innards": { + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#storage_types" + }, + { + "include": "#operators" + }, + { + "include": "#vararg_ellipses" + }, + { + "name": "meta.function.definition.parameters.objcpp", + "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()", + "beginCaptures": { + "1": { + "name": "entity.name.function.objcpp" + }, + "2": { + "name": "punctuation.section.parameters.begin.bracket.round.objcpp" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.parameters.end.bracket.round.objcpp" + } + }, + "patterns": [ + { + "include": "#probably_a_parameter" + }, + { + "include": "#function-innards" + } + ] + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.section.parens.begin.bracket.round.objcpp" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.parens.end.bracket.round.objcpp" + } + }, + "patterns": [ + { + "include": "#function-innards" + } + ] + }, + { + "include": "$base" + } + ] + }, + "function-call-innards": { + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#storage_types" + }, + { + "include": "#method_access" + }, + { + "include": "#member_access" + }, + { + "include": "#operators" + }, + { + "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()", + "beginCaptures": { + "1": { + "name": "entity.name.function.objcpp" + }, + "2": { + "name": "punctuation.section.arguments.begin.bracket.round.objcpp" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.objcpp" + } + }, + "patterns": [ + { + "include": "#function-call-innards" + } + ] + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.section.parens.begin.bracket.round.objcpp" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.parens.end.bracket.round.objcpp" + } + }, + "patterns": [ + { + "include": "#function-call-innards" + } + ] + }, + { + "include": "#block_innards" + } + ] + }, + "default_statement": { + "name": "meta.conditional.case.objcpp", + "begin": "((?<!\\w)default(?!\\w))", + "beginCaptures": { + "1": { + "name": "keyword.control.default.objcpp" + } + }, + "end": "(:)", + "endCaptures": { + "1": { + "name": "punctuation.separator.case.default.objcpp" + } + }, + "patterns": [ + { + "include": "#conditional_context" + } + ] + }, + "case_statement": { + "name": "meta.conditional.case.objcpp", + "begin": "((?<!\\w)case(?!\\w))", + "beginCaptures": { + "1": { + "name": "keyword.control.case.objcpp" + } + }, + "end": "(:)", + "endCaptures": { + "1": { + "name": "punctuation.separator.case.objcpp" + } + }, + "patterns": [ + { + "include": "#conditional_context" + } + ] + }, + "switch_statement": { + "name": "meta.block.switch.objcpp", + "begin": "(((?<!\\w)switch(?!\\w)))", + "beginCaptures": { + "1": { + "name": "meta.head.switch.objcpp" + }, + "2": { + "name": "keyword.control.switch.objcpp" + } + }, + "end": "(?:(?<=\\})|(?=[;>\\[\\]=]))", + "patterns": [ + { + "name": "meta.head.switch.objcpp", + "begin": "\\G ?", + "end": "((?:\\{|(?=;)))", + "endCaptures": { + "1": { + "name": "punctuation.section.block.begin.bracket.curly.switch.objcpp" + } + }, + "patterns": [ + { + "include": "#switch_conditional_parentheses" + }, + { + "include": "$base" + } + ] + }, + { + "name": "meta.body.switch.objcpp", + "begin": "(?<=\\{)", + "end": "(\\})", + "endCaptures": { + "1": { + "name": "punctuation.section.block.end.bracket.curly.switch.objcpp" + } + }, + "patterns": [ + { + "include": "#default_statement" + }, + { + "include": "#case_statement" + }, + { + "include": "$base" + }, + { + "include": "#block_innards" + } + ] + }, + { + "name": "meta.tail.switch.objcpp", + "begin": "(?<=})[\\s\\n]*", + "end": "[\\s\\n]*(?=;)", + "patterns": [ + { + "include": "$base" + } + ] + } + ] + }, + "switch_conditional_parentheses": { + "name": "meta.conditional.switch.objcpp", + "begin": "(\\()", + "beginCaptures": { + "1": { + "name": "punctuation.section.parens.begin.bracket.round.conditional.switch.objcpp" + } + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.section.parens.end.bracket.round.conditional.switch.objcpp" + } + }, + "patterns": [ + { + "include": "#conditional_context" + } + ] + }, + "static_assert": { + "begin": "(static_assert|_Static_assert)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "keyword.other.static_assert.objcpp" + }, + "2": { + "name": "punctuation.section.arguments.begin.bracket.round.objcpp" + } + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.section.arguments.end.bracket.round.objcpp" + } + }, + "patterns": [ + { + "name": "meta.static_assert.message.objcpp", + "begin": "(,)\\s*(?=(?:L|u8|u|U\\s*\\\")?)", + "beginCaptures": { + "1": { + "name": "punctuation.separator.delimiter.objcpp" + } + }, + "end": "(?=\\))", + "patterns": [ + { + "include": "#string_context" + }, + { + "include": "#string_context_c" + } + ] + }, + { + "include": "#function_call_context" + } + ] + }, + "conditional_context": { + "patterns": [ + { + "include": "$base" + }, + { + "include": "#block_innards" + } + ] + }, + "member_access": { + "match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?-mix:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*(\\b(?!(?:void|char|short|int|signed|unsigned|long|float|double|bool|_Bool|_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t))[a-zA-Z_]\\w*\\b(?!\\())", + "captures": { + "1": { + "patterns": [ + { + "include": "#special_variables" + }, + { + "name": "variable.other.object.access.objcpp", + "match": "(.+)" + } + ] + }, + "2": { + "name": "punctuation.separator.dot-access.objcpp" + }, + "3": { + "name": "punctuation.separator.pointer-access.objcpp" + }, + "4": { + "patterns": [ + { + "include": "#member_access" + }, + { + "include": "#method_access" + }, + { + "match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))", + "captures": { + "1": { + "patterns": [ + { + "include": "#special_variables" + }, + { + "name": "variable.other.object.access.objcpp", + "match": "(.+)" + } + ] + }, + "2": { + "name": "punctuation.separator.dot-access.objcpp" + }, + "3": { + "name": "punctuation.separator.pointer-access.objcpp" + } + } + } + ] + }, + "5": { + "name": "variable.other.member.objcpp" + } + } + }, + "method_access": { + "contentName": "meta.function-call.member.objcpp", + "begin": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?-mix:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*([a-zA-Z_]\\w*)(\\()", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#special_variables" + }, + { + "name": "variable.other.object.access.objcpp", + "match": "(.+)" + } + ] + }, + "2": { + "name": "punctuation.separator.dot-access.objcpp" + }, + "3": { + "name": "punctuation.separator.pointer-access.objcpp" + }, + "4": { + "patterns": [ + { + "include": "#member_access" + }, + { + "include": "#method_access" + }, + { + "match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))", + "captures": { + "1": { + "patterns": [ + { + "include": "#special_variables" + }, + { + "name": "variable.other.object.access.objcpp", + "match": "(.+)" + } + ] + }, + "2": { + "name": "punctuation.separator.dot-access.objcpp" + }, + "3": { + "name": "punctuation.separator.pointer-access.objcpp" + } + } + } + ] + }, + "5": { + "name": "entity.name.function.member.objcpp" + }, + "6": { + "name": "punctuation.section.arguments.begin.bracket.round.function.member.objcpp" + } + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.section.arguments.end.bracket.round.function.member.objcpp" + } + }, + "patterns": [ + { + "include": "#function-call-innards" + } + ] + }, + "numbers": { + "begin": "(?<!\\w)(?=\\d|\\.\\d)", + "end": "(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))", + "patterns": [ + { + "match": "(\\G0[xX])(?:([0-9a-fA-F](?:(?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?((?:(?<=[0-9a-fA-F])\\.|\\.(?=[0-9a-fA-F])))(?:([0-9a-fA-F](?:(?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?(?:((?<!')([pP])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:([lLfF](?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))", + "captures": { + "1": { + "name": "keyword.other.unit.hexadecimal.objcpp" + }, + "2": { + "name": "constant.numeric.hexadecimal.objcpp", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.objcpp" + } + ] + }, + "3": { + "name": "punctuation.separator.constant.numeric.objcpp" + }, + "4": { + "name": "constant.numeric.hexadecimal.objcpp" + }, + "5": { + "name": "constant.numeric.hexadecimal.objcpp", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.objcpp" + } + ] + }, + "6": { + "name": "punctuation.separator.constant.numeric.objcpp" + }, + "8": { + "name": "keyword.other.unit.exponent.hexadecimal.objcpp" + }, + "9": { + "name": "keyword.operator.plus.exponent.hexadecimal.objcpp" + }, + "10": { + "name": "keyword.operator.minus.exponent.hexadecimal.objcpp" + }, + "11": { + "name": "constant.numeric.exponent.hexadecimal.objcpp", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.objcpp" + } + ] + }, + "12": { + "name": "keyword.other.unit.suffix.floating-point.objcpp" + } + } + }, + { + "match": "(\\G(?=[0-9.])(?!0[xXbB]))(?:([0-9](?:(?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?((?:(?<=[0-9])\\.|\\.(?=[0-9])))(?:([0-9](?:(?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?(?:((?<!')([eE])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:([lLfF](?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))", + "captures": { + "2": { + "name": "constant.numeric.decimal.objcpp", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.objcpp" + } + ] + }, + "3": { + "name": "punctuation.separator.constant.numeric.objcpp" + }, + "4": { + "name": "constant.numeric.decimal.point.objcpp" + }, + "5": { + "name": "constant.numeric.decimal.objcpp", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.objcpp" + } + ] + }, + "6": { + "name": "punctuation.separator.constant.numeric.objcpp" + }, + "8": { + "name": "keyword.other.unit.exponent.decimal.objcpp" + }, + "9": { + "name": "keyword.operator.plus.exponent.decimal.objcpp" + }, + "10": { + "name": "keyword.operator.minus.exponent.decimal.objcpp" + }, + "11": { + "name": "constant.numeric.exponent.decimal.objcpp", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.objcpp" + } + ] + }, + "12": { + "name": "keyword.other.unit.suffix.floating-point.objcpp" + } + } + }, + { + "match": "(\\G0[bB])([01](?:(?:[01]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))", + "captures": { + "1": { + "name": "keyword.other.unit.binary.objcpp" + }, + "2": { + "name": "constant.numeric.binary.objcpp", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.objcpp" + } + ] + }, + "3": { + "name": "punctuation.separator.constant.numeric.objcpp" + }, + "4": { + "name": "keyword.other.unit.suffix.integer.objcpp" + } + } + }, + { + "match": "(\\G0)((?:(?:[0-7]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))+)(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))", + "captures": { + "1": { + "name": "keyword.other.unit.octal.objcpp" + }, + "2": { + "name": "constant.numeric.octal.objcpp", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.objcpp" + } + ] + }, + "3": { + "name": "punctuation.separator.constant.numeric.objcpp" + }, + "4": { + "name": "keyword.other.unit.suffix.integer.objcpp" + } + } + }, + { + "match": "(\\G0[xX])([0-9a-fA-F](?:(?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)(?:((?<!')([pP])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))", + "captures": { + "1": { + "name": "keyword.other.unit.hexadecimal.objcpp" + }, + "2": { + "name": "constant.numeric.hexadecimal.objcpp", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.objcpp" + } + ] + }, + "3": { + "name": "punctuation.separator.constant.numeric.objcpp" + }, + "5": { + "name": "keyword.other.unit.exponent.hexadecimal.objcpp" + }, + "6": { + "name": "keyword.operator.plus.exponent.hexadecimal.objcpp" + }, + "7": { + "name": "keyword.operator.minus.exponent.hexadecimal.objcpp" + }, + "8": { + "name": "constant.numeric.exponent.hexadecimal.objcpp", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.objcpp" + } + ] + }, + "9": { + "name": "keyword.other.unit.suffix.integer.objcpp" + } + } + }, + { + "match": "(\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:(?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)(?:((?<!')([eE])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))", + "captures": { + "2": { + "name": "constant.numeric.decimal.objcpp", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.objcpp" + } + ] + }, + "3": { + "name": "punctuation.separator.constant.numeric.objcpp" + }, + "5": { + "name": "keyword.other.unit.exponent.decimal.objcpp" + }, + "6": { + "name": "keyword.operator.plus.exponent.decimal.objcpp" + }, + "7": { + "name": "keyword.operator.minus.exponent.decimal.objcpp" + }, + "8": { + "name": "constant.numeric.exponent.decimal.objcpp", + "patterns": [ + { + "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", + "name": "punctuation.separator.constant.numeric.objcpp" + } + ] + }, + "9": { + "name": "keyword.other.unit.suffix.integer.objcpp" + } + } + }, + { + "match": "(?:(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))+", + "name": "invalid.illegal.constant.numeric.objcpp" + } + ] + } + } + }, + "comment": { + "patterns": [ + { + "begin": "/\\*", + "captures": { + "0": { + "name": "punctuation.definition.comment.objcpp" + } + }, + "end": "\\*/", + "name": "comment.block.objcpp" + }, + { + "begin": "(^[ \\t]+)?(?=//)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.objcpp" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": "//", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.objcpp" + } + }, + "end": "\\n", + "name": "comment.line.double-slash.objcpp", + "patterns": [ + { + "match": "(?>\\\\\\s*\\n)", + "name": "punctuation.separator.continuation.objcpp" + } + ] + } + ] + } + ] + }, + "cpp_lang": { + "patterns": [ + { + "include": "#special_block" + }, + { + "include": "#strings" + }, + { + "match": "\\b(friend|explicit|virtual|override|final|noexcept)\\b", + "name": "storage.modifier.objcpp" + }, + { + "match": "\\b(private:|protected:|public:)", + "name": "storage.type.modifier.access.objcpp" + }, + { + "match": "\\b(catch|try|throw|using)\\b", + "name": "keyword.control.objcpp" + }, + { + "match": "\\bdelete\\b(\\s*\\[\\])?|\\bnew\\b(?!])", + "name": "keyword.control.objcpp" + }, + { + "match": "\\b(f|m)[A-Z]\\w*\\b", + "name": "variable.other.readwrite.member.objcpp" + }, + { + "match": "\\bthis\\b", + "name": "variable.language.this.objcpp" + }, + { + "match": "\\bnullptr\\b", + "name": "constant.language.objcpp" + }, + { + "include": "#template_definition" + }, + { + "match": "\\btemplate\\b\\s*", + "name": "storage.type.template.objcpp" + }, + { + "match": "\\b(const_cast|dynamic_cast|reinterpret_cast|static_cast)\\b\\s*", + "name": "keyword.operator.cast.objcpp" + }, + { + "name": "punctuation.separator.namespace.access.objcpp", + "match": "((?:[a-zA-Z_][a-zA-Z_0-9]*::)*)([a-zA-Z_][a-zA-Z_0-9]*)(::)", + "captures": { + "1": { + "name": "entity.scope.objcpp" + }, + "2": { + "name": "entity.scope.name.objcpp" + }, + "3": { + "name": "punctuation.separator.namespace.access.objcpp" + } + } + }, + { + "match": "\\b(and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\b", + "name": "keyword.operator.objcpp" + }, + { + "match": "\\b(decltype|wchar_t|char16_t|char32_t)\\b", + "name": "storage.type.objcpp" + }, + { + "match": "\\b(constexpr|export|mutable|typename|thread_local)\\b", + "name": "storage.modifier.objcpp" + }, + { + "begin": "(?x)\n(?:\n ^ | # beginning of line\n (?:(?<!else|new|=)) # or word + space before name\n)\n((?:[A-Za-z_][A-Za-z0-9_]*::)*+~[A-Za-z_][A-Za-z0-9_]*) # actual name\n\\s*(\\() # opening bracket", + "beginCaptures": { + "1": { + "name": "entity.name.function.objcpp" + }, + "2": { + "name": "punctuation.definition.parameters.begin.objcpp" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.parameters.end.objcpp" + } + }, + "name": "meta.function.destructor.objcpp", + "patterns": [ + { + "include": "$base" + } + ] + }, + { + "begin": "(?x)\n(?:\n ^ | # beginning of line\n (?:(?<!else|new|=)) # or word + space before name\n)\n((?:[A-Za-z_][A-Za-z0-9_]*::)*+~[A-Za-z_][A-Za-z0-9_]*) # actual name\n\\s*(\\() # opening bracket", + "beginCaptures": { + "1": { + "name": "entity.name.function.objcpp" + }, + "2": { + "name": "punctuation.definition.parameters.begin.objcpp" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.parameters.end.objcpp" + } + }, + "name": "meta.function.destructor.prototype.objcpp", + "patterns": [ + { + "include": "$base" + } + ] + }, + { + "include": "#c_lang" + } + ], + "repository": { + "template_definition": { + "begin": "\\b(template)\\s*(<)\\s*", + "beginCaptures": { + "1": { + "name": "storage.type.template.objcpp" + }, + "2": { + "name": "meta.template.angle-brackets.start.objcpp" + } + }, + "end": ">", + "endCaptures": { + "0": { + "name": "meta.template.angle-brackets.end.objcpp" + } + }, + "name": "template.definition.objcpp", + "patterns": [ + { + "include": "#template_definition_argument" + } + ] + }, + "template_definition_argument": { + "match": "\\s*(?:([a-zA-Z_][a-zA-Z_0-9]*\\s*)|((?:[a-zA-Z_][a-zA-Z_0-9]*\\s+)*)([a-zA-Z_][a-zA-Z_0-9]*)|([a-zA-Z_][a-zA-Z_0-9]*)\\s*(\\.\\.\\.)\\s*([a-zA-Z_][a-zA-Z_0-9]*)|((?:[a-zA-Z_][a-zA-Z_0-9]*\\s+)*)([a-zA-Z_][a-zA-Z_0-9]*)\\s*(=)\\s*(\\w+))(,|(?=>))", + "captures": { + "1": { + "name": "storage.type.template.objcpp" + }, + "2": { + "name": "storage.type.template.objcpp" + }, + "3": { + "name": "entity.name.type.template.objcpp" + }, + "4": { + "name": "storage.type.template.objcpp" + }, + "5": { + "name": "meta.template.operator.ellipsis.objcpp" + }, + "6": { + "name": "entity.name.type.template.objcpp" + }, + "7": { + "name": "storage.type.template.objcpp" + }, + "8": { + "name": "entity.name.type.template.objcpp" + }, + "9": { + "name": "keyword.operator.assignment.objcpp" + }, + "10": { + "name": "constant.language.objcpp" + }, + "11": { + "name": "meta.template.operator.comma.objcpp" + } + } + }, + "angle_brackets": { + "begin": "<", + "end": ">", + "name": "meta.angle-brackets.objcpp", + "patterns": [ + { + "include": "#angle_brackets" + }, + { + "include": "$base" + } + ] + }, + "block": { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.objcpp" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.objcpp" + } + }, + "name": "meta.block.objcpp", + "patterns": [ + { + "captures": { + "1": { + "name": "support.function.any-method.objcpp" + }, + "2": { + "name": "punctuation.definition.parameters.objcpp" + } + }, + "match": "(?x)\n(\n (?!while|for|do|if|else|switch|catch|enumerate|return|r?iterate)\n (?:\\b[A-Za-z_][A-Za-z0-9_]*+\\b|::)*+ # actual name\n)\n\\s*(\\() # opening bracket", + "name": "meta.function-call.objcpp" + }, + { + "include": "$base" + } + ] + }, + "constructor": { + "patterns": [ + { + "begin": "(?x)\n(?:^\\s*) # beginning of line\n((?!while|for|do|if|else|switch|catch|enumerate|r?iterate)[A-Za-z_][A-Za-z0-9_:]*) # actual name\n\\s*(\\() # opening bracket", + "beginCaptures": { + "1": { + "name": "entity.name.function.constructor.objcpp" + }, + "2": { + "name": "punctuation.definition.parameters.begin.objcpp" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.parameters.end.objcpp" + } + }, + "name": "meta.function.constructor.objcpp", + "patterns": [ + { + "include": "#probably_a_parameter" + }, + { + "include": "#function-innards" + } + ] + }, + { + "begin": "(?x)\n(:)\n(\n (?=\n \\s*[A-Za-z_][A-Za-z0-9_:]* # actual name\n \\s* (\\() # opening bracket\n )\n)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.parameters.objcpp" + } + }, + "end": "(?=\\{)", + "name": "meta.function.constructor.initializer-list.objcpp", + "patterns": [ + { + "include": "$base" + } + ] + } + ] + }, + "special_block": { + "patterns": [ + { + "begin": "\\b(using)\\b\\s*(namespace)\\b\\s*((?:[_A-Za-z][_A-Za-z0-9]*\\b(::)?)*)", + "beginCaptures": { + "1": { + "name": "keyword.control.objcpp" + }, + "2": { + "name": "storage.type.namespace.objcpp" + }, + "3": { + "name": "entity.name.type.objcpp" + } + }, + "end": ";", + "endCaptures": { + "0": { + "name": "punctuation.terminator.statement.objcpp" + } + }, + "name": "meta.using-namespace-declaration.objcpp" + }, + { + "begin": "\\b(namespace)\\b\\s*([_A-Za-z][_A-Za-z0-9]*\\b)?+", + "beginCaptures": { + "1": { + "name": "storage.type.namespace.objcpp" + }, + "2": { + "name": "entity.name.type.objcpp" + } + }, + "captures": { + "1": { + "name": "keyword.control.namespace.$2.objcpp" + } + }, + "end": "(?<=\\})|(?=(;|,|\\(|\\)|>|\\[|\\]|=))", + "name": "meta.namespace-block.objcpp", + "patterns": [ + { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.scope.objcpp" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.scope.objcpp" + } + }, + "patterns": [ + { + "include": "#special_block" + }, + { + "include": "#constructor" + }, + { + "include": "$base" + } + ] + }, + { + "include": "$base" + } + ] + }, + { + "begin": "\\b(?:(class)|(struct))\\b\\s*([_A-Za-z][_A-Za-z0-9]*\\b)?+(\\s*:\\s*(public|protected|private)\\s*([_A-Za-z][_A-Za-z0-9]*\\b)((\\s*,\\s*(public|protected|private)\\s*[_A-Za-z][_A-Za-z0-9]*\\b)*))?", + "beginCaptures": { + "1": { + "name": "storage.type.class.objcpp" + }, + "2": { + "name": "storage.type.struct.objcpp" + }, + "3": { + "name": "entity.name.type.objcpp" + }, + "5": { + "name": "storage.type.modifier.access.objcpp" + }, + "6": { + "name": "entity.name.type.inherited.objcpp" + }, + "7": { + "patterns": [ + { + "match": "(public|protected|private)", + "name": "storage.type.modifier.access.objcpp" + }, + { + "match": "[_A-Za-z][_A-Za-z0-9]*", + "name": "entity.name.type.inherited.objcpp" + } + ] + } + }, + "end": "(?<=\\})|(?=(;|\\(|\\)|>|\\[|\\]|=))", + "name": "meta.class-struct-block.objcpp", + "patterns": [ + { + "include": "#angle_brackets" + }, + { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.objcpp" + } + }, + "end": "(\\})(\\s*\\n)?", + "endCaptures": { + "1": { + "name": "punctuation.section.block.end.bracket.curly.objcpp" + }, + "2": { + "name": "invalid.illegal.you-forgot-semicolon.objcpp" + } + }, + "patterns": [ + { + "include": "#special_block" + }, + { + "include": "#constructor" + }, + { + "include": "$base" + } + ] + }, + { + "include": "$base" + } + ] + }, + { + "begin": "\\b(extern)(?=\\s*\")", + "beginCaptures": { + "1": { + "name": "storage.modifier.objcpp" + } + }, + "end": "(?<=\\})|(?=\\w)|(?=\\s*#\\s*endif\\b)", + "name": "meta.extern-block.objcpp", + "patterns": [ + { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.objcpp" + } + }, + "end": "\\}|(?=\\s*#\\s*endif\\b)", + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.objcpp" + } + }, + "patterns": [ + { + "include": "#special_block" + }, + { + "include": "$base" + } + ] + }, + { + "include": "$base" + } + ] + } + ] + }, + "strings": { + "patterns": [ + { + "begin": "(u|u8|U|L)?\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.objcpp" + }, + "1": { + "name": "meta.encoding.objcpp" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.objcpp" + } + }, + "name": "string.quoted.double.objcpp", + "patterns": [ + { + "match": "\\\\u\\h{4}|\\\\U\\h{8}", + "name": "constant.character.escape.objcpp" + }, + { + "match": "\\\\['\"?\\\\abfnrtv]", + "name": "constant.character.escape.objcpp" + }, + { + "match": "\\\\[0-7]{1,3}", + "name": "constant.character.escape.objcpp" + }, + { + "match": "\\\\x\\h+", + "name": "constant.character.escape.objcpp" + }, + { + "include": "#string_placeholder" + } + ] + }, + { + "begin": "(u|u8|U|L)?R\"(?:([^ ()\\\\\\t]{0,16})|([^ ()\\\\\\t]*))\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.objcpp" + }, + "1": { + "name": "meta.encoding.objcpp" + }, + "3": { + "name": "invalid.illegal.delimiter-too-long.objcpp" + } + }, + "end": "\\)\\2(\\3)\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.objcpp" + }, + "1": { + "name": "invalid.illegal.delimiter-too-long.objcpp" + } + }, + "name": "string.quoted.double.raw.objcpp" + } + ] + } + } + }, + "cpp_lang_newish": { + "patterns": [ + { + "include": "#special_block" + }, + { + "match": "(?-mix:##[a-zA-Z_]\\w*(?!\\w))", + "name": "variable.other.macro.argument.objcpp" + }, + { + "include": "#strings" + }, + { + "match": "(?<!\\w)((?:inline|constexpr|mutable|friend|explicit|virtual))(?!\\w)", + "name": "storage.modifier.specificer.functional.pre-parameters.$1.objcpp" + }, + { + "match": "(?<!\\w)((?:final|override|volatile|const|noexcept))(?!\\w)(?=\\s*(?:(?:(?:(?:\\{|;))|[\\n\\r])))", + "name": "storage.modifier.specifier.functional.post-parameters.$1.objcpp" + }, + { + "match": "(?<!\\w)((?:const|static|volatile|register|restrict|extern))(?!\\w)", + "name": "storage.modifier.specifier.$1.objcpp" + }, + { + "match": "(?<!\\w)((?:private|protected|public)) *:", + "name": "storage.type.modifier.access.control.$1.objcpp" + }, + { + "match": "(?<!\\w)(?:throw|try|catch)(?!\\w)", + "name": "keyword.control.exception.$1.objcpp" + }, + { + "match": "(?<!\\w)(using|typedef)(?!\\w)", + "name": "keyword.other.$1.objcpp" + }, + { + "include": "#memory_operators" + }, + { + "match": "\\bthis\\b", + "name": "variable.language.this.objcpp" + }, + { + "include": "#constants" + }, + { + "include": "#template_definition" + }, + { + "match": "\\btemplate\\b\\s*", + "name": "storage.type.template.objcpp" + }, + { + "match": "\\b(const_cast|dynamic_cast|reinterpret_cast|static_cast)\\b\\s*", + "name": "keyword.operator.cast.$1.objcpp" + }, + { + "include": "#scope_resolution" + }, + { + "match": "\\b(decltype|wchar_t|char16_t|char32_t)\\b", + "name": "storage.type.objcpp" + }, + { + "match": "\\b(constexpr|export|mutable|typename|thread_local)\\b", + "name": "storage.modifier.objcpp" + }, + { + "begin": "(?x)\n(?:\n ^ | # beginning of line\n (?:(?<!else|new|=)) # or word + space before name\n)\n((?:[A-Za-z_][A-Za-z0-9_]*::)*+~[A-Za-z_][A-Za-z0-9_]*) # actual name\n\\s*(\\() # opening bracket", + "beginCaptures": { + "1": { + "name": "entity.name.function.destructor.objcpp" + }, + "2": { + "name": "punctuation.definition.parameters.begin.destructor.objcpp" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.parameters.end.destructor.objcpp" + } + }, + "name": "meta.function.destructor.objcpp", + "patterns": [ + { + "include": "$base" + } + ] + }, + { + "begin": "(?x)\n(?:\n ^ | # beginning of line\n (?:(?<!else|new|=)) # or word + space before name\n)\n((?:[A-Za-z_][A-Za-z0-9_]*::)*+~[A-Za-z_][A-Za-z0-9_]*) # actual name\n\\s*(\\() # opening bracket", + "beginCaptures": { + "1": { + "name": "entity.name.function.objcpp" + }, + "2": { + "name": "punctuation.definition.parameters.begin.objcpp" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.parameters.end.objcpp" + } + }, + "name": "meta.function.destructor.prototype.objcpp", + "patterns": [ + { + "include": "$base" + } + ] + }, + { + "include": "#preprocessor-rule-enabled" + }, + { + "include": "#preprocessor-rule-disabled" + }, + { + "include": "#preprocessor-rule-conditional" + }, + { + "include": "#comments-c" + }, + { + "match": "\\b(break|case|continue|default|do|else|for|goto|if|_Pragma|return|switch|while)\\b", + "name": "keyword.control.$1.objcpp" + }, + { + "include": "#storage_types_c" + }, + { + "match": "\\b(const|extern|register|restrict|static|volatile|inline)\\b", + "name": "storage.modifier.objcpp" + }, + { + "include": "#operators" + }, + { + "include": "#operator_overload" + }, + { + "include": "#number_literal" + }, + { + "include": "#strings-c" + }, + { + "begin": "(?x)\n^\\s* ((\\#)\\s*define) \\s+\t# define\n((?<id>[a-zA-Z_$][\\w$]*))\t # macro name\n(?:\n (\\()\n\t(\n\t \\s* \\g<id> \\s*\t\t # first argument\n\t ((,) \\s* \\g<id> \\s*)* # additional arguments\n\t (?:\\.\\.\\.)?\t\t\t# varargs ellipsis?\n\t)\n (\\))\n)?", + "beginCaptures": { + "1": { + "name": "keyword.control.directive.define.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + }, + "3": { + "name": "entity.name.function.preprocessor.objcpp" + }, + "5": { + "name": "punctuation.definition.parameters.begin.objcpp" + }, + "6": { + "name": "variable.parameter.preprocessor.objcpp" + }, + "8": { + "name": "punctuation.separator.parameters.objcpp" + }, + "9": { + "name": "punctuation.definition.parameters.end.objcpp" + } + }, + "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.macro.objcpp", + "patterns": [ + { + "include": "#preprocessor-rule-define-line-contents" + } + ] + }, + { + "begin": "^\\s*((#)\\s*(error|warning))\\b\\s*", + "beginCaptures": { + "1": { + "name": "keyword.control.directive.diagnostic.$3.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.diagnostic.objcpp", + "patterns": [ + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.objcpp" + } + }, + "end": "\"|(?<!\\\\)(?=\\s*\\n)", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.objcpp" + } + }, + "name": "string.quoted.double.objcpp", + "patterns": [ + { + "include": "#line_continuation_character" + } + ] + }, + { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.objcpp" + } + }, + "end": "'|(?<!\\\\)(?=\\s*\\n)", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.objcpp" + } + }, + "name": "string.quoted.single.objcpp", + "patterns": [ + { + "include": "#line_continuation_character" + } + ] + }, + { + "begin": "[^'\"]", + "end": "(?<!\\\\)(?=\\s*\\n)", + "name": "string.unquoted.single.objcpp", + "patterns": [ + { + "include": "#line_continuation_character" + }, + { + "include": "#comments-c" + } + ] + } + ] + }, + { + "begin": "^\\s*((#)\\s*(include(?:_next)?|import))\\b\\s*", + "beginCaptures": { + "1": { + "name": "keyword.control.directive.$3.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.include.objcpp", + "patterns": [ + { + "include": "#line_continuation_character" + }, + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.objcpp" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.objcpp" + } + }, + "name": "string.quoted.double.include.objcpp" + }, + { + "begin": "<", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.objcpp" + } + }, + "end": ">", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.objcpp" + } + }, + "name": "string.quoted.other.lt-gt.include.objcpp" + } + ] + }, + { + "include": "#pragma-mark" + }, + { + "begin": "^\\s*((#)\\s*line)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.directive.line.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.objcpp", + "patterns": [ + { + "include": "#strings-c" + }, + { + "include": "#number_literal" + }, + { + "include": "#line_continuation_character" + } + ] + }, + { + "begin": "^\\s*(?:((#)\\s*undef))\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.directive.undef.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.objcpp", + "patterns": [ + { + "match": "[a-zA-Z_$][\\w$]*", + "name": "entity.name.function.preprocessor.objcpp" + }, + { + "include": "#line_continuation_character" + } + ] + }, + { + "begin": "^\\s*(?:((#)\\s*pragma))\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.directive.pragma.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.pragma.objcpp", + "patterns": [ + { + "include": "#strings-c" + }, + { + "match": "[a-zA-Z_$][\\w\\-$]*", + "name": "entity.other.attribute-name.pragma.preprocessor.objcpp" + }, + { + "include": "#number_literal" + }, + { + "include": "#line_continuation_character" + } + ] + }, + { + "match": "\\b(u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t)\\b", + "name": "support.type.sys-types.objcpp" + }, + { + "match": "\\b(pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t)\\b", + "name": "support.type.pthread.objcpp" + }, + { + "match": "(?x) \\b\n(int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t\n|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t\n|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t\n|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t\n|uintmax_t|uintmax_t)\n\\b", + "name": "support.type.stdint.objcpp" + }, + { + "match": "(?<!\\w)[a-zA-Z_](?:\\w)*_t(?!\\w)", + "name": "support.type.posix-reserved.objcpp" + }, + { + "include": "#block-c" + }, + { + "include": "#parens-c" + }, + { + "begin": "(?<!\\w)(?!\\s*(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|auto|void|char|short|int|signed|unsigned|long|float|double|bool|wchar_t|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|NULL|true|false|nullptr|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\s*\\()(?=[a-zA-Z_]\\w*\\s*\\()", + "end": "(?<=\\))", + "name": "meta.function.definition.objcpp", + "patterns": [ + { + "include": "#function-innards-c" + } + ] + }, + { + "include": "#line_continuation_character" + }, + { + "name": "meta.bracket.square.access.objcpp", + "begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))?(\\[)(?!\\])", + "beginCaptures": { + "1": { + "name": "variable.other.object.objcpp" + }, + "2": { + "name": "punctuation.definition.begin.bracket.square.objcpp" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.end.bracket.square.objcpp" + } + }, + "patterns": [ + { + "include": "#function-call-innards-c" + } + ] + }, + { + "name": "storage.modifier.array.bracket.square.objcpp", + "match": "(?-mix:(?<!delete))\\\\[\\\\s*\\\\]" + }, + { + "match": ";", + "name": "punctuation.terminator.statement.objcpp" + }, + { + "match": ",", + "name": "punctuation.separator.delimiter.objcpp" + } + ], + "repository": { + "literal_numeric_seperator": { + "match": "(?<!')'(?!')", + "name": "punctuation.separator.constant.numeric.objcpp" + }, + "number_literal": { + "match": "((?<!\\w)(?:(?:(?:(0[xX])(?:([0-9a-fA-F](?:(?:(?:[0-9a-fA-F]|((?<!')'(?!')))))*))?((?:(?:(?<=[0-9a-fA-F])\\.|\\.(?=[0-9a-fA-F]))))(?:([0-9a-fA-F](?:(?:(?:[0-9a-fA-F]|((?<!')'(?!')))))*))?(?:([pP])(\\+)?(\\-)?((?:[0-9](?:(?:(?:[0-9]|(?:(?<!')'(?!')))))*)))?|(?:([0-9](?:(?:(?:[0-9]|((?<!')'(?!')))))*))?((?:(?:(?<=[0-9])\\.|\\.(?=[0-9]))))(?:([0-9](?:(?:(?:[0-9]|((?<!')'(?!')))))*))?(?:([eE])(\\+)?(\\-)?((?:[0-9](?:(?:(?:[0-9]|(?:(?<!')'(?!')))))*)))?)(?:([lLfF](?!\\w)))?|(?:(?:(?:(?:(?:(0[bB])((?:(?:(?:[01]|((?<!')'(?!')))))+)|(0)((?:(?:(?:[0-7]|((?<!')'(?!')))))+)))|(0[xX])([0-9a-fA-F](?:(?:(?:[0-9a-fA-F]|((?<!')'(?!')))))*)(?:([pP])(\\+)?(\\-)?((?:[0-9](?:(?:(?:[0-9]|(?:(?<!')'(?!')))))*)))?))|([0-9](?:(?:(?:[0-9]|((?<!')'(?!')))))*)(?:([eE])(\\+)?(\\-)?((?:[0-9](?:(?:(?:[0-9]|(?:(?<!')'(?!')))))*)))?)(?:((?:(?:(?:(?:(?:(?:(?:(?:(?:(?:(?:(?:LL[uU]|ll[uU]))|[uU]LL))|[uU]ll))|ll))|LL))|[uUlL]))(?!\\w)))?))(\\w*))", + "captures": { + "2": { + "name": "keyword.other.unit.hexadecimal.objcpp" + }, + "3": { + "name": "constant.numeric.hexadecimal.objcpp", + "patterns": [ + { + "include": "#literal_numeric_seperator" + } + ] + }, + "4": { + "name": "punctuation.separator.constant.numeric.objcpp" + }, + "5": { + "name": "constant.numeric.hexadecimal.objcpp" + }, + "6": { + "name": "constant.numeric.hexadecimal.objcpp", + "patterns": [ + { + "include": "#literal_numeric_seperator" + } + ] + }, + "7": { + "name": "punctuation.separator.constant.numeric.objcpp" + }, + "8": { + "name": "keyword.other.unit.exponent.hexadecimal.objcpp" + }, + "9": { + "name": "keyword.operator.plus.exponent.hexadecimal.objcpp" + }, + "10": { + "name": "keyword.operator.minus.exponent.hexadecimal.objcpp" + }, + "11": { + "name": "constant.numeric.exponent.hexadecimal.objcpp", + "patterns": [ + { + "include": "#literal_numeric_seperator" + } + ] + }, + "12": { + "name": "constant.numeric.decimal.objcpp", + "patterns": [ + { + "include": "#literal_numeric_seperator" + } + ] + }, + "13": { + "name": "punctuation.separator.constant.numeric.objcpp" + }, + "14": { + "name": "constant.numeric.decimal.point.objcpp" + }, + "15": { + "name": "constant.numeric.decimal.objcpp", + "patterns": [ + { + "include": "#literal_numeric_seperator" + } + ] + }, + "16": { + "name": "punctuation.separator.constant.numeric.objcpp" + }, + "17": { + "name": "keyword.other.unit.exponent.decimal.objcpp" + }, + "18": { + "name": "keyword.operator.plus.exponent.decimal.objcpp" + }, + "19": { + "name": "keyword.operator.minus.exponent.decimal.objcpp" + }, + "20": { + "name": "constant.numeric.exponent.decimal.objcpp", + "patterns": [ + { + "include": "#literal_numeric_seperator" + } + ] + }, + "21": { + "name": "keyword.other.unit.suffix.floating-point.objcpp" + }, + "22": { + "name": "keyword.other.unit.binary.objcpp" + }, + "23": { + "name": "constant.numeric.binary.objcpp", + "patterns": [ + { + "include": "#literal_numeric_seperator" + } + ] + }, + "24": { + "name": "punctuation.separator.constant.numeric.objcpp" + }, + "25": { + "name": "keyword.other.unit.octal.objcpp" + }, + "26": { + "name": "constant.numeric.octal.objcpp", + "patterns": [ + { + "include": "#literal_numeric_seperator" + } + ] + }, + "27": { + "name": "punctuation.separator.constant.numeric.objcpp" + }, + "28": { + "name": "keyword.other.unit.hexadecimal.objcpp" + }, + "29": { + "name": "constant.numeric.hexadecimal.objcpp", + "patterns": [ + { + "include": "#literal_numeric_seperator" + } + ] + }, + "30": { + "name": "punctuation.separator.constant.numeric.objcpp" + }, + "31": { + "name": "keyword.other.unit.exponent.hexadecimal.objcpp" + }, + "32": { + "name": "keyword.operator.plus.exponent.hexadecimal.objcpp" + }, + "33": { + "name": "keyword.operator.minus.exponent.hexadecimal.objcpp" + }, + "34": { + "name": "constant.numeric.exponent.hexadecimal.objcpp", + "patterns": [ + { + "include": "#literal_numeric_seperator" + } + ] + }, + "35": { + "name": "constant.numeric.decimal.objcpp", + "patterns": [ + { + "include": "#literal_numeric_seperator" + } + ] + }, + "36": { + "name": "punctuation.separator.constant.numeric.objcpp" + }, + "37": { + "name": "keyword.other.unit.exponent.decimal.objcpp" + }, + "38": { + "name": "keyword.operator.plus.exponent.decimal.objcpp" + }, + "39": { + "name": "keyword.operator.minus.exponent.decimal.objcpp" + }, + "40": { + "name": "constant.numeric.exponent.decimal.objcpp", + "patterns": [ + { + "include": "#literal_numeric_seperator" + } + ] + }, + "41": { + "name": "keyword.other.unit.suffix.integer.objcpp" + }, + "42": { + "name": "keyword.other.unit.user-defined.objcpp" + } + } + }, + "constants": { + "match": "(?<!\\w)(?:NULL|true|false|nullptr)(?!\\w)", + "name": "constant.language.objcpp" + }, + "storage_types_c": { + "patterns": [ + { + "match": "(?<!\\w)(?:auto|void|char|short|int|signed|unsigned|long|float|double|bool|wchar_t)(?!\\w)", + "name": "storage.type.primitive.objcpp" + }, + { + "match": "(?<!\\w)(?:u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t)(?!\\w)", + "name": "storage.type.objcpp" + }, + { + "match": "(?<!\\w)(asm|__asm__|enum|union|struct)(?!\\w)", + "name": "storage.type.$1.objcpp" + } + ] + }, + "memory_operators": { + "match": "(?<!\\w)(?:(?:(delete)\\s*(\\[\\])|(delete))|(new))(?!\\w)", + "captures": { + "1": { + "name": "keyword.operator.memory.delete.array.objcpp" + }, + "2": { + "name": "keyword.operator.memory.delete.array.bracket.objcpp" + }, + "3": { + "name": "keyword.operator.memory.delete.objcpp" + }, + "4": { + "name": "keyword.operator.memory.new.objcpp" + } + }, + "name": "keyword.operator.memory.objcpp" + }, + "template_call_innards": { + "match": "<(?:[\\s<>,\\w])*>\\s*", + "captures": { + "0": { + "name": "meta.template.call.objcpp", + "patterns": [ + { + "include": "#storage_types_c" + }, + { + "include": "#constants" + }, + { + "include": "#scope_resolution" + }, + { + "match": "(?<!\\w)[a-zA-Z_]\\w*(?!\\w)", + "name": "storage.type.user-defined.objcpp" + }, + { + "include": "#operators" + }, + { + "include": "#number_literal" + }, + { + "include": "#strings" + }, + { + "match": ",", + "name": "punctuation.separator.comma.template.argument.objcpp" + } + ] + } + } + }, + "template_definition": { + "name": "meta.template.definition.objcpp", + "begin": "(?-mix:(?<!\\w)(template)\\s*(<))", + "beginCaptures": { + "1": { + "name": "storage.type.template.objcpp" + }, + "2": { + "name": "punctuation.section.angle-brackets.start.template.definition.objcpp" + } + }, + "end": "(?-mix:(>))", + "endCaptures": { + "1": { + "name": "punctuation.section.angle-brackets.end.template.definition.objcpp" + } + }, + "patterns": [ + { + "include": "#scope_resolution" + }, + { + "include": "#template_definition_argument" + }, + { + "include": "#template_call_innards" + } + ] + }, + "template_definition_argument": { + "match": "((?:(?:(?:(?:(?:(?:\\s*([a-zA-Z_]\\w*)|((?:[a-zA-Z_]\\w*\\s+)+)([a-zA-Z_]\\w*)))|([a-zA-Z_]\\w*)\\s*(\\.\\.\\.)\\s*([a-zA-Z_]\\w*)))|((?:[a-zA-Z_]\\w*\\s+)*)([a-zA-Z_]\\w*)\\s*([=])\\s*(\\w+)))\\s*(?:(?:(,)|(?=>))))", + "captures": { + "2": { + "name": "storage.type.template.argument.$1.objcpp" + }, + "3": { + "name": "storage.type.template.argument.$2.objcpp" + }, + "4": { + "name": "entity.name.type.template.objcpp" + }, + "5": { + "name": "storage.type.template.objcpp" + }, + "6": { + "name": "keyword.operator.ellipsis.template.definition.objcpp" + }, + "7": { + "name": "entity.name.type.template.objcpp" + }, + "8": { + "name": "storage.type.template.objcpp" + }, + "9": { + "name": "entity.name.type.template.objcpp" + }, + "10": { + "name": "keyword.operator.assignment.objcpp" + }, + "11": { + "name": "constant.other.objcpp" + }, + "12": { + "name": "punctuation.separator.comma.template.argument.objcpp" + } + } + }, + "scope_resolution": { + "match": "((?:[a-zA-Z_]\\w*\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?::)*\\s*)([a-zA-Z_]\\w*)\\s*((?:<(?:[\\s<>,\\w])*>\\s*))?(::)", + "captures": { + "1": { + "patterns": [ + { + "include": "#scope_resolution" + } + ] + }, + "2": { + "name": "entity.name.namespace.scope-resolution.objcpp" + }, + "3": { + "patterns": [ + { + "include": "#template_call_innards" + } + ] + }, + "4": { + "name": "punctuation.separator.namespace.access.objcpp" + } + }, + "name": "meta.scope-resolution.objcpp" + }, + "angle_brackets": { + "begin": "<", + "end": ">", + "name": "meta.angle-brackets.objcpp", + "patterns": [ + { + "include": "#angle_brackets" + }, + { + "include": "$base" + } + ] + }, + "block": { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.objcpp" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.objcpp" + } + }, + "name": "meta.block.objcpp", + "patterns": [ + { + "captures": { + "1": { + "name": "support.function.any-method.objcpp" + }, + "2": { + "name": "punctuation.definition.parameters.objcpp" + } + }, + "match": "(?x)\n(\n (?!while|for|do|if|else|switch|catch|return)\n (?:\\b[A-Za-z_][A-Za-z0-9_]*+\\b|::)*+ # actual name\n)\n\\s*(\\() # opening bracket", + "name": "meta.function-call.objcpp" + }, + { + "include": "$base" + } + ] + }, + "constructor": { + "patterns": [ + { + "begin": "(?x)\n(?:^\\s*) # beginning of line\n((?!while|for|do|if|else|switch|catch)[A-Za-z_][A-Za-z0-9_:]*) # actual name\n\\s*(\\() # opening bracket", + "beginCaptures": { + "1": { + "name": "entity.name.function.constructor.objcpp" + }, + "2": { + "name": "punctuation.definition.parameters.begin.constructor.objcpp" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.parameters.end.constructor.objcpp" + } + }, + "name": "meta.function.constructor.objcpp", + "patterns": [ + { + "include": "#probably_a_parameter" + }, + { + "include": "#function-innards-c" + } + ] + }, + { + "begin": "(?x)\n(:)\n(\n (?=\n \\s*[A-Za-z_][A-Za-z0-9_:]* # actual name\n \\s* (\\() # opening bracket\n )\n)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.initializer-list.parameters.objcpp" + } + }, + "end": "(?=\\{)", + "name": "meta.function.constructor.initializer-list.objcpp", + "patterns": [ + { + "include": "$base" + } + ] + } + ] + }, + "special_block": { + "patterns": [ + { + "comment": "https://en.cppreference.com/w/cpp/language/namespace", + "begin": "\\b(using)\\s+(namespace)\\s+(?:((?:[a-zA-Z_]\\w*\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?::)*)\\s*)?((?<!\\w)[a-zA-Z_]\\w*(?!\\w))(?=;|\\n)", + "beginCaptures": { + "1": { + "name": "keyword.other.using.directive.objcpp" + }, + "2": { + "name": "keyword.other.namespace.directive.objcpp storage.type.namespace.directive.objcpp" + }, + "3": { + "patterns": [ + { + "include": "#scope_resolution" + } + ] + }, + "4": { + "name": "entity.name.namespace.objcpp" + } + }, + "end": ";", + "endCaptures": { + "0": { + "name": "punctuation.terminator.statement.objcpp" + } + }, + "name": "meta.using-namespace-declaration.objcpp" + }, + { + "begin": "(?<!\\w)(namespace)\\s+(?:(?:((?:[a-zA-Z_]\\w*\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?::)*[a-zA-Z_]\\w*)|(?={)))", + "beginCaptures": { + "1": { + "name": "keyword.other.namespace.definition.objcpp storage.type.namespace.definition.objcpp" + }, + "2": { + "patterns": [ + { + "match": "(?-mix:(?<!\\w)[a-zA-Z_]\\w*(?!\\w))", + "name": "entity.name.type.objcpp" + }, + { + "match": "::", + "name": "punctuation.separator.namespace.access.objcpp" + } + ] + } + }, + "end": "(?<=\\})|(?=(;|,|\\(|\\)|>|\\[|\\]|=))", + "name": "meta.namespace-block.objcpp", + "patterns": [ + { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.scope.objcpp" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.scope.objcpp" + } + }, + "patterns": [ + { + "include": "#special_block" + }, + { + "include": "#constructor" + }, + { + "include": "$base" + } + ] + }, + { + "include": "$base" + } + ] + }, + { + "begin": "\\b(?:(class)|(struct))\\b\\s*([_A-Za-z][_A-Za-z0-9]*\\b)?+(\\s*:\\s*(public|protected|private)\\s*([_A-Za-z][_A-Za-z0-9]*\\b)((\\s*,\\s*(public|protected|private)\\s*[_A-Za-z][_A-Za-z0-9]*\\b)*))?", + "beginCaptures": { + "1": { + "name": "storage.type.class.objcpp" + }, + "2": { + "name": "storage.type.struct.objcpp" + }, + "3": { + "name": "entity.name.type.objcpp" + }, + "5": { + "name": "storage.type.modifier.access.objcpp" + }, + "6": { + "name": "entity.name.type.inherited.objcpp" + }, + "7": { + "patterns": [ + { + "match": "(public|protected|private)", + "name": "storage.type.modifier.access.objcpp" + }, + { + "match": "[_A-Za-z][_A-Za-z0-9]*", + "name": "entity.name.type.inherited.objcpp" + } + ] + } + }, + "end": "(?<=\\})|(;)|(?=(\\(|\\)|>|\\[|\\]|=))", + "endCaptures": { + "1": { + "name": "punctuation.terminator.statement.objcpp" + } + }, + "name": "meta.class-struct-block.objcpp", + "patterns": [ + { + "include": "#angle_brackets" + }, + { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.objcpp" + } + }, + "end": "(\\})(\\s*\\n)?", + "endCaptures": { + "1": { + "name": "punctuation.section.block.end.bracket.curly.objcpp" + }, + "2": { + "name": "invalid.illegal.you-forgot-semicolon.objcpp" + } + }, + "patterns": [ + { + "include": "#special_block" + }, + { + "include": "#constructor" + }, + { + "include": "$base" + } + ] + }, + { + "include": "$base" + } + ] + }, + { + "begin": "\\b(extern)(?=\\s*\")", + "beginCaptures": { + "1": { + "name": "storage.modifier.objcpp" + } + }, + "end": "(?<=\\})|(?=\\w)|(?=\\s*#\\s*endif\\b)", + "name": "meta.extern-block.objcpp", + "patterns": [ + { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.objcpp" + } + }, + "end": "\\}|(?=\\s*#\\s*endif\\b)", + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.objcpp" + } + }, + "patterns": [ + { + "include": "#special_block" + }, + { + "include": "$base" + } + ] + }, + { + "include": "$base" + } + ] + } + ] + }, + "strings": { + "patterns": [ + { + "begin": "(u|u8|U|L)?\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.objcpp" + }, + "1": { + "name": "meta.encoding.objcpp" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.objcpp" + } + }, + "name": "string.quoted.double.objcpp", + "patterns": [ + { + "match": "\\\\u\\h{4}|\\\\U\\h{8}", + "name": "constant.character.escape.objcpp" + }, + { + "match": "\\\\['\"?\\\\abfnrtv]", + "name": "constant.character.escape.objcpp" + }, + { + "match": "\\\\[0-7]{1,3}", + "name": "constant.character.escape.objcpp" + }, + { + "match": "\\\\x\\h+", + "name": "constant.character.escape.objcpp" + }, + { + "include": "#string_placeholder-c" + } + ] + }, + { + "begin": "(u|u8|U|L)?R\"(?:([^ ()\\\\\\t]{0,16})|([^ ()\\\\\\t]*))\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.objcpp" + }, + "1": { + "name": "meta.encoding.objcpp" + }, + "3": { + "name": "invalid.illegal.delimiter-too-long.objcpp" + } + }, + "end": "\\)\\2(\\3)\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.objcpp" + }, + "1": { + "name": "invalid.illegal.delimiter-too-long.objcpp" + } + }, + "name": "string.quoted.double.raw.objcpp" + } + ] + }, + "probably_a_parameter": { + "match": "(?:(?:([a-zA-Z_]\\w*)\\s*(?==)|(?<=\\w\\s|\\*\\/|[&*>\\]\\)])\\s*([a-zA-Z_]\\w*)\\s*(?=(?:\\[\\]\\s*)?(?:(?:,|\\))))))", + "captures": { + "1": { + "name": "variable.parameter.probably.defaulted.objcpp" + }, + "2": { + "name": "variable.parameter.probably.objcpp" + } + } + }, + "operator_overload": { + "begin": "((?:[a-zA-Z_]\\w*\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?::)*)\\s*(operator)((?:(?:\\s*(?:\\+\\+|\\-\\-|\\(\\)|\\[\\]|\\->|\\+\\+|\\-\\-|\\+|\\-|!|~|\\*|&|\\->\\*|\\*|\\/|%|\\+|\\-|<<|>>|<=>|<|<=|>|>=|==|!=|&|\\^|\\||&&|\\|\\||=|\\+=|\\-=|\\*=|\\/=|%=|<<=|>>=|&=|\\^=|\\|=|,)|\\s+(?:(?:(?:new|new\\[\\]|delete|delete\\[\\])|(?:[a-zA-Z_]\\w*\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?::)*[a-zA-Z_]\\w*\\s*(?:&)?)))))\\s*(\\()", + "beginCaptures": { + "1": { + "name": "entity.scope.objcpp" + }, + "2": { + "name": "keyword.other.operator.overload.objcpp" + }, + "3": { + "name": "entity.name.operator.overloadee.objcpp" + }, + "4": { + "name": "punctuation.section.parameters.begin.bracket.round.objcpp" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.parameters.end.bracket.round.objcpp" + } + }, + "name": "meta.function.definition.parameters.operator-overload.objcpp", + "patterns": [ + { + "include": "#probably_a_parameter" + }, + { + "include": "#function-innards-c" + } + ] + }, + "access-method": { + "name": "meta.function-call.member.objcpp", + "begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))\\s*(?:(\\.)|(->))((?:(?:[a-zA-Z_][a-zA-Z_0-9]*)\\s*(?:(?:\\.)|(?:->)))*)\\s*([a-zA-Z_][a-zA-Z_0-9]*)(\\()", + "beginCaptures": { + "1": { + "name": "variable.other.object.objcpp" + }, + "2": { + "name": "punctuation.separator.dot-access.objcpp" + }, + "3": { + "name": "punctuation.separator.pointer-access.objcpp" + }, + "4": { + "patterns": [ + { + "match": "\\.", + "name": "punctuation.separator.dot-access.objcpp" + }, + { + "match": "->", + "name": "punctuation.separator.pointer-access.objcpp" + }, + { + "match": "[a-zA-Z_][a-zA-Z_0-9]*", + "name": "variable.other.object.objcpp" + }, + { + "name": "everything.else.objcpp", + "match": ".+" + } + ] + }, + "5": { + "name": "entity.name.function.member.objcpp" + }, + "6": { + "name": "punctuation.section.arguments.begin.bracket.round.function.member.objcpp" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.function.member.objcpp" + } + }, + "patterns": [ + { + "include": "#function-call-innards-c" + } + ] + }, + "access-member": { + "name": "variable.other.object.access.objcpp", + "match": "(?:(?:([a-zA-Z_]\\w*)|(?<=\\]|\\))))\\s*(?:(?:((?:(?:\\.|\\.\\*)))|((?:(?:->|->\\*)))))\\s*((?:[a-zA-Z_]\\w*\\s*(?:(?:\\.|->))\\s*)*)\\b(?!(?:auto|void|char|short|int|signed|unsigned|long|float|double|bool|wchar_t|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t))([a-zA-Z_]\\w*)\\b(?!\\()", + "captures": { + "1": { + "name": "variable.other.object.objcpp" + }, + "2": { + "name": "punctuation.separator.dot-access.objcpp" + }, + "3": { + "name": "punctuation.separator.pointer-access.objcpp" + }, + "4": { + "patterns": [ + { + "match": "\\.", + "name": "punctuation.separator.dot-access.objcpp" + }, + { + "match": "->", + "name": "punctuation.separator.pointer-access.objcpp" + }, + { + "match": "[a-zA-Z_]\\w*", + "name": "variable.other.object.objcpp" + }, + { + "match": ".+", + "name": "everything.else.objcpp" + } + ] + }, + "5": { + "name": "variable.other.member.objcpp" + } + } + }, + "block-c": { + "patterns": [ + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.objcpp" + } + }, + "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)", + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.objcpp" + } + }, + "name": "meta.block.objcpp", + "patterns": [ + { + "include": "#block_innards-c" + } + ] + } + ] + }, + "block_innards-c": { + "patterns": [ + { + "include": "#preprocessor-rule-enabled-block" + }, + { + "include": "#preprocessor-rule-disabled-block" + }, + { + "include": "#preprocessor-rule-conditional-block" + }, + { + "include": "#access-method" + }, + { + "include": "#access-member" + }, + { + "include": "#c_function_call" + }, + { + "name": "meta.initialization.objcpp", + "begin": "(?x)\n(?:\n (?:\n\t(?=\\s)(?<!else|new|return)\n\t(?<=\\w) \\s+(and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas) # or word + space before name\n )\n)\n(\n (?:[A-Za-z_][A-Za-z0-9_]*+ | :: )++ # actual name\n |\n (?:(?<=operator) (?:[-*&<>=+!]+ | \\(\\) | \\[\\]))\n)\n\\s*(\\() # opening bracket", + "beginCaptures": { + "1": { + "name": "variable.other.objcpp" + }, + "2": { + "name": "punctuation.section.parens.begin.bracket.round.initialization.objcpp" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.parens.end.bracket.round.initialization.objcpp" + } + }, + "patterns": [ + { + "include": "#function-call-innards-c" + } + ] + }, + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.objcpp" + } + }, + "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)", + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.objcpp" + } + }, + "patterns": [ + { + "include": "#block_innards-c" + } + ] + }, + { + "include": "#parens-block-c" + }, + { + "include": "$base" + } + ] + }, + "c_function_call": { + "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|return|typeid|alignof|alignas|sizeof|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(?=\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?\\( # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)", + "end": "(?<=\\))(?!\\w)", + "name": "meta.function-call.objcpp", + "patterns": [ + { + "include": "#function-call-innards-c" + } + ] + }, + "comments-c": { + "patterns": [ + { + "captures": { + "1": { + "name": "meta.toc-list.banner.block.objcpp" + } + }, + "match": "^/\\* =(\\s*.*?)\\s*= \\*/$\\n?", + "name": "comment.block.objcpp" + }, + { + "begin": "/\\*", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.begin.objcpp" + } + }, + "end": "\\*/", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.end.objcpp" + } + }, + "name": "comment.block.objcpp" + }, + { + "captures": { + "1": { + "name": "meta.toc-list.banner.line.objcpp" + } + }, + "match": "^// =(\\s*.*?)\\s*=\\s*$\\n?", + "name": "comment.line.banner.objcpp" + }, + { + "begin": "(^[ \\t]+)?(?=//)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.objcpp" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": "//", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.objcpp" + } + }, + "end": "(?=\\n)", + "name": "comment.line.double-slash.objcpp", + "patterns": [ + { + "include": "#line_continuation_character" + } + ] + } + ] + } + ] + }, + "disabled": { + "begin": "^\\s*#\\s*if(n?def)?\\b.*$", + "end": "^\\s*#\\s*endif\\b", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + }, + "line_continuation_character": { + "patterns": [ + { + "match": "(\\\\)\\n", + "captures": { + "1": { + "name": "constant.character.escape.line-continuation.objcpp" + } + } + } + ] + }, + "parens-c": { + "name": "punctuation.section.parens-c\b.objcpp", + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.section.parens.begin.bracket.round.objcpp" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.parens.end.bracket.round.objcpp" + } + }, + "patterns": [ + { + "include": "$base" + } + ] + }, + "parens-block-c": { + "name": "meta.block.parens.objcpp", + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.section.parens.begin.bracket.round.objcpp" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.parens.end.bracket.round.objcpp" + } + }, + "patterns": [ + { + "include": "#block_innards-c" + }, + { + "match": "(?<!:):(?!:)", + "name": "punctuation.range-based.objcpp" + } + ] + }, + "pragma-mark": { + "captures": { + "1": { + "name": "meta.preprocessor.pragma.objcpp" + }, + "2": { + "name": "keyword.control.directive.pragma.pragma-mark.objcpp" + }, + "3": { + "name": "punctuation.definition.directive.objcpp" + }, + "4": { + "name": "entity.name.tag.pragma-mark.objcpp" + } + }, + "match": "^\\s*(((#)\\s*pragma\\s+mark)\\s+(.*))", + "name": "meta.section.objcpp" + }, + "operators": { + "patterns": [ + { + "match": "(?-mix:(?<!\\w)((?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept))(?!\\w))", + "name": "keyword.operator.$1.objcpp" + }, + { + "match": "--", + "name": "keyword.operator.decrement.objcpp" + }, + { + "match": "\\+\\+", + "name": "keyword.operator.increment.objcpp" + }, + { + "match": "%=|\\+=|-=|\\*=|(?<!\\()/=", + "name": "keyword.operator.assignment.compound.objcpp" + }, + { + "match": "&=|\\^=|<<=|>>=|\\|=", + "name": "keyword.operator.assignment.compound.bitwise.objcpp" + }, + { + "match": "<<|>>", + "name": "keyword.operator.bitwise.shift.objcpp" + }, + { + "match": "!=|<=|>=|==|<|>", + "name": "keyword.operator.comparison.objcpp" + }, + { + "match": "&&|!|\\|\\|", + "name": "keyword.operator.logical.objcpp" + }, + { + "match": "&|\\||\\^|~", + "name": "keyword.operator.objcpp" + }, + { + "match": "=", + "name": "keyword.operator.assignment.objcpp" + }, + { + "match": "%|\\*|/|-|\\+", + "name": "keyword.operator.objcpp" + }, + { + "begin": "\\?", + "beginCaptures": { + "0": { + "name": "keyword.operator.ternary.objcpp" + } + }, + "end": ":", + "applyEndPatternLast": true, + "endCaptures": { + "0": { + "name": "keyword.operator.ternary.objcpp" + } + }, + "patterns": [ + { + "include": "#access-method" + }, + { + "include": "#access-member" + }, + { + "include": "#c_function_call" + }, + { + "include": "$base" + } + ] + } + ] + }, + "strings-c": { + "patterns": [ + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.objcpp" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.objcpp" + } + }, + "name": "string.quoted.double.objcpp", + "patterns": [ + { + "include": "#string_escaped_char-c" + }, + { + "include": "#string_placeholder-c" + }, + { + "include": "#line_continuation_character" + } + ] + }, + { + "begin": "(?-mix:(?<![\\da-fA-F])')", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.objcpp" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.objcpp" + } + }, + "name": "string.quoted.single.objcpp", + "patterns": [ + { + "include": "#string_escaped_char-c" + }, + { + "include": "#line_continuation_character" + } + ] + } + ] + }, + "string_escaped_char-c": { + "patterns": [ + { + "match": "(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3]\\d{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )", + "name": "constant.character.escape.objcpp" + }, + { + "match": "\\\\.", + "name": "invalid.illegal.unknown-escape.objcpp" + } + ] + }, + "string_placeholder-c": { + "patterns": [ + { + "match": "(?x) %\n(\\d+\\$)?\t\t\t\t\t\t # field (argument #)\n[#0\\- +']*\t\t\t\t\t\t # flags\n[,;:_]?\t\t\t\t\t\t\t # separator character (AltiVec)\n((-?\\d+)|\\*(-?\\d+\\$)?)?\t\t # minimum field width\n(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?\t# precision\n(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n[diouxXDOUeEfFgGaACcSspn%]\t\t # conversion type", + "name": "constant.other.placeholder.objcpp" + } + ] + }, + "vararg_ellipses-c": { + "match": "(?<!\\.)\\.\\.\\.(?!\\.)", + "name": "punctuation.vararg-ellipses.objcpp" + }, + "preprocessor-rule-conditional": { + "patterns": [ + { + "begin": "^\\s*((#)\\s*if(?:n?def)?\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "^\\s*((#)\\s*endif\\b)", + "endCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "patterns": [ + { + "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.objcpp", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "#preprocessor-rule-enabled-elif" + }, + { + "include": "#preprocessor-rule-enabled-else" + }, + { + "include": "#preprocessor-rule-disabled-elif" + }, + { + "begin": "^\\s*((#)\\s*elif\\b)", + "beginCaptures": { + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.objcpp", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "$base" + } + ] + }, + { + "match": "^\\s*#\\s*(else|elif|endif)\\b", + "captures": { + "0": { + "name": "invalid.illegal.stray-$1.objcpp" + } + } + } + ] + }, + "preprocessor-rule-conditional-block": { + "patterns": [ + { + "begin": "^\\s*((#)\\s*if(?:n?def)?\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "^\\s*((#)\\s*endif\\b)", + "endCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "patterns": [ + { + "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.objcpp", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "#preprocessor-rule-enabled-elif-block" + }, + { + "include": "#preprocessor-rule-enabled-else-block" + }, + { + "include": "#preprocessor-rule-disabled-elif" + }, + { + "begin": "^\\s*((#)\\s*elif\\b)", + "beginCaptures": { + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.objcpp", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "#block_innards-c" + } + ] + }, + { + "match": "^\\s*#\\s*(else|elif|endif)\\b", + "captures": { + "0": { + "name": "invalid.illegal.stray-$1.objcpp" + } + } + } + ] + }, + "preprocessor-rule-conditional-line": { + "patterns": [ + { + "match": "(?:\\bdefined\\b\\s*$)|(?:\\bdefined\\b(?=\\s*\\(*\\s*(?:(?!defined\\b)[a-zA-Z_$][\\w$]*\\b)\\s*\\)*\\s*(?:\\n|//|/\\*|\\?|\\:|&&|\\|\\||\\\\\\s*\\n)))", + "name": "keyword.control.directive.conditional.objcpp" + }, + { + "match": "\\bdefined\\b", + "name": "invalid.illegal.macro-name.objcpp" + }, + { + "include": "#comments-c" + }, + { + "include": "#strings-c" + }, + { + "include": "#number_literal" + }, + { + "begin": "\\?", + "beginCaptures": { + "0": { + "name": "keyword.operator.ternary.objcpp" + } + }, + "end": ":", + "endCaptures": { + "0": { + "name": "keyword.operator.ternary.objcpp" + } + }, + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "#operators" + }, + { + "include": "#constants" + }, + { + "match": "[a-zA-Z_$][\\w$]*", + "name": "entity.name.function.preprocessor.objcpp" + }, + { + "include": "#line_continuation_character" + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.section.parens.begin.bracket.round.objcpp" + } + }, + "end": "\\)|(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", + "endCaptures": { + "0": { + "name": "punctuation.section.parens.end.bracket.round.objcpp" + } + }, + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + } + ] + }, + "preprocessor-rule-disabled": { + "patterns": [ + { + "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "^\\s*((#)\\s*endif\\b)", + "endCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "patterns": [ + { + "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)", + "name": "meta.preprocessor.objcpp", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "#comments-c" + }, + { + "include": "#preprocessor-rule-enabled-elif" + }, + { + "include": "#preprocessor-rule-enabled-else" + }, + { + "include": "#preprocessor-rule-disabled-elif" + }, + { + "begin": "^\\s*((#)\\s*elif\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))", + "patterns": [ + { + "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.objcpp", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "$base" + } + ] + }, + { + "begin": "\\n", + "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", + "contentName": "comment.block.preprocessor.if-branch.objcpp", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + } + ] + } + ] + }, + "preprocessor-rule-disabled-block": { + "patterns": [ + { + "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "^\\s*((#)\\s*endif\\b)", + "endCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "patterns": [ + { + "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)", + "name": "meta.preprocessor.objcpp", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "#comments-c" + }, + { + "include": "#preprocessor-rule-enabled-elif-block" + }, + { + "include": "#preprocessor-rule-enabled-else-block" + }, + { + "include": "#preprocessor-rule-disabled-elif" + }, + { + "begin": "^\\s*((#)\\s*elif\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))", + "patterns": [ + { + "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.objcpp", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "#block_innards-c" + } + ] + }, + { + "begin": "\\n", + "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", + "contentName": "comment.block.preprocessor.if-branch.in-block.objcpp", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + } + ] + } + ] + }, + "preprocessor-rule-disabled-elif": { + "begin": "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))", + "patterns": [ + { + "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.objcpp", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "#comments-c" + }, + { + "begin": "\\n", + "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", + "contentName": "comment.block.preprocessor.elif-branch.objcpp", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + } + ] + }, + "preprocessor-rule-enabled": { + "patterns": [ + { + "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + }, + "3": { + "name": "constant.numeric.preprocessor.objcpp" + } + }, + "end": "^\\s*((#)\\s*endif\\b)", + "endCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "patterns": [ + { + "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)", + "name": "meta.preprocessor.objcpp", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "#comments-c" + }, + { + "begin": "^\\s*((#)\\s*else\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "(?=^\\s*((#)\\s*endif\\b))", + "contentName": "comment.block.preprocessor.else-branch.objcpp", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + }, + { + "begin": "^\\s*((#)\\s*elif\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", + "contentName": "comment.block.preprocessor.if-branch.objcpp", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + }, + { + "begin": "\\n", + "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", + "patterns": [ + { + "include": "$base" + } + ] + } + ] + } + ] + }, + "preprocessor-rule-enabled-block": { + "patterns": [ + { + "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "^\\s*((#)\\s*endif\\b)", + "endCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "patterns": [ + { + "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)", + "name": "meta.preprocessor.objcpp", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "#comments-c" + }, + { + "begin": "^\\s*((#)\\s*else\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "(?=^\\s*((#)\\s*endif\\b))", + "contentName": "comment.block.preprocessor.else-branch.in-block.objcpp", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + }, + { + "begin": "^\\s*((#)\\s*elif\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", + "contentName": "comment.block.preprocessor.if-branch.in-block.objcpp", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + }, + { + "begin": "\\n", + "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", + "patterns": [ + { + "include": "#block_innards-c" + } + ] + } + ] + } + ] + }, + "preprocessor-rule-enabled-elif": { + "begin": "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "(?=^\\s*((#)\\s*endif\\b))", + "patterns": [ + { + "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.objcpp", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "#comments-c" + }, + { + "begin": "\\n", + "end": "(?=^\\s*((#)\\s*(?:endif)\\b))", + "patterns": [ + { + "begin": "^\\s*((#)\\s*(else)\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "(?=^\\s*((#)\\s*endif\\b))", + "contentName": "comment.block.preprocessor.elif-branch.objcpp", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + }, + { + "begin": "^\\s*((#)\\s*(elif)\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", + "contentName": "comment.block.preprocessor.elif-branch.objcpp", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + }, + { + "include": "$base" + } + ] + } + ] + }, + "preprocessor-rule-enabled-elif-block": { + "begin": "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "(?=^\\s*((#)\\s*endif\\b))", + "patterns": [ + { + "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", + "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", + "name": "meta.preprocessor.objcpp", + "patterns": [ + { + "include": "#preprocessor-rule-conditional-line" + } + ] + }, + { + "include": "#comments-c" + }, + { + "begin": "\\n", + "end": "(?=^\\s*((#)\\s*(?:endif)\\b))", + "patterns": [ + { + "begin": "^\\s*((#)\\s*(else)\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "(?=^\\s*((#)\\s*endif\\b))", + "contentName": "comment.block.preprocessor.elif-branch.in-block.objcpp", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + }, + { + "begin": "^\\s*((#)\\s*(elif)\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", + "contentName": "comment.block.preprocessor.elif-branch.objcpp", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + }, + { + "include": "#block_innards-c" + } + ] + } + ] + }, + "preprocessor-rule-enabled-else": { + "begin": "^\\s*((#)\\s*else\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "(?=^\\s*((#)\\s*endif\\b))", + "patterns": [ + { + "include": "$base" + } + ] + }, + "preprocessor-rule-enabled-else-block": { + "begin": "^\\s*((#)\\s*else\\b)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.objcpp" + }, + "1": { + "name": "keyword.control.directive.conditional.objcpp" + }, + "2": { + "name": "punctuation.definition.directive.objcpp" + } + }, + "end": "(?=^\\s*((#)\\s*endif\\b))", + "patterns": [ + { + "include": "#block_innards-c" + } + ] + }, + "preprocessor-rule-define-line-contents": { + "patterns": [ + { + "include": "#vararg_ellipses-c" + }, + { + "match": "(?-mix:##?[a-zA-Z_]\\w*(?!\\w))", + "name": "variable.other.macro.argument.objcpp" + }, + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.objcpp" + } + }, + "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)", + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.objcpp" + } + }, + "name": "meta.block.objcpp", + "patterns": [ + { + "include": "#preprocessor-rule-define-line-blocks" + } + ] + }, + { + "match": "\\(", + "name": "punctuation.section.parens.begin.bracket.round.objcpp" + }, + { + "match": "\\)", + "name": "punctuation.section.parens.end.bracket.round.objcpp" + }, + { + "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|return|typeid|alignof|alignas|sizeof|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas|asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void)\\s*\\()\n(?=\n (?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name\n |\n (?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)", + "end": "(?<=\\))(?!\\w)|(?<!\\\\)(?=\\s*\\n)", + "name": "meta.function.objcpp", + "patterns": [ + { + "include": "#preprocessor-rule-define-line-functions" + } + ] + }, + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.objcpp" + } + }, + "end": "\"|(?<!\\\\)(?=\\s*\\n)", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.objcpp" + } + }, + "name": "string.quoted.double.objcpp", + "patterns": [ + { + "include": "#string_escaped_char-c" + }, + { + "include": "#string_placeholder-c" + }, + { + "include": "#line_continuation_character" + } + ] + }, + { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.objcpp" + } + }, + "end": "'|(?<!\\\\)(?=\\s*\\n)", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.objcpp" + } + }, + "name": "string.quoted.single.objcpp", + "patterns": [ + { + "include": "#string_escaped_char-c" + }, + { + "include": "#line_continuation_character" + } + ] + }, + { + "include": "#access-method" + }, + { + "include": "#access-member" + }, + { + "include": "$base" + } + ] + }, + "preprocessor-rule-define-line-blocks": { + "patterns": [ + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.section.block.begin.bracket.curly.objcpp" + } + }, + "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)", + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.bracket.curly.objcpp" + } + }, + "patterns": [ + { + "include": "#preprocessor-rule-define-line-blocks" + }, + { + "include": "#preprocessor-rule-define-line-contents" + } + ] + }, + { + "include": "#preprocessor-rule-define-line-contents" + } + ] + }, + "preprocessor-rule-define-line-functions": { + "patterns": [ + { + "include": "#comments-c" + }, + { + "include": "#storage_types_c" + }, + { + "include": "#vararg_ellipses-c" + }, + { + "include": "#access-method" + }, + { + "include": "#access-member" + }, + { + "include": "#operators" + }, + { + "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|return|typeid|alignof|alignas|sizeof|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()", + "beginCaptures": { + "1": { + "name": "entity.name.function.objcpp" + }, + "2": { + "name": "punctuation.section.arguments.begin.bracket.round.objcpp" + } + }, + "end": "(\\))|(?<!\\\\)(?=\\s*\\n)", + "endCaptures": { + "1": { + "name": "punctuation.section.arguments.end.bracket.round.objcpp" + } + }, + "patterns": [ + { + "include": "#preprocessor-rule-define-line-functions" + } + ] + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.section.parens.begin.bracket.round.objcpp" + } + }, + "end": "(\\))|(?<!\\\\)(?=\\s*\\n)", + "endCaptures": { + "1": { + "name": "punctuation.section.parens.end.bracket.round.objcpp" + } + }, + "patterns": [ + { + "include": "#preprocessor-rule-define-line-functions" + } + ] + }, + { + "include": "#preprocessor-rule-define-line-contents" + } + ] + }, + "function-innards-c": { + "patterns": [ + { + "include": "#comments-c" + }, + { + "include": "#storage_types_c" + }, + { + "include": "#operators" + }, + { + "include": "#vararg_ellipses-c" + }, + { + "name": "meta.function.definition.parameters.objcpp", + "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|return|typeid|alignof|alignas|sizeof|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()", + "beginCaptures": { + "1": { + "name": "entity.name.function.objcpp" + }, + "2": { + "name": "punctuation.section.parameters.begin.bracket.round.objcpp" + } + }, + "end": "\\)|:", + "endCaptures": { + "0": { + "name": "punctuation.section.parameters.end.bracket.round.objcpp" + } + }, + "patterns": [ + { + "include": "#probably_a_parameter" + }, + { + "include": "#function-innards-c" + } + ] + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.section.parens.begin.bracket.round.objcpp" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.parens.end.bracket.round.objcpp" + } + }, + "patterns": [ + { + "include": "#function-innards-c" + } + ] + }, + { + "include": "$base" + } + ] + }, + "function-call-innards-c": { + "patterns": [ + { + "include": "#comments-c" + }, + { + "include": "#storage_types_c" + }, + { + "include": "#access-method" + }, + { + "include": "#access-member" + }, + { + "include": "#operators" + }, + { + "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|return|typeid|alignof|alignas|sizeof|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:new)\\s*((?:(?:<(?:[\\s<>,\\w])*>\\s*))?) # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()", + "beginCaptures": { + "1": { + "name": "keyword.operator.memory.new.objcpp" + }, + "2": { + "patterns": [ + { + "include": "#template_call_innards" + } + ] + }, + "3": { + "name": "punctuation.section.arguments.begin.bracket.round.objcpp" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.objcpp" + } + }, + "patterns": [ + { + "include": "#function-call-innards-c" + } + ] + }, + { + "begin": "(?<!\\w)(?!\\s*(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|auto|void|char|short|int|signed|unsigned|long|float|double|bool|wchar_t|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|NULL|true|false|nullptr|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\s*\\()((?:[a-zA-Z_]\\w*\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?::)*)\\s*([a-zA-Z_]\\w*)\\s*(?:((?:<(?:[\\s<>,\\w])*>\\s*)))?(\\()", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#scope_resolution" + } + ] + }, + "2": { + "name": "entity.name.function.call.objcpp" + }, + "3": { + "patterns": [ + { + "include": "#template_call_innards" + } + ] + }, + "4": { + "name": "punctuation.section.arguments.begin.bracket.round.objcpp" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.arguments.end.bracket.round.objcpp" + } + }, + "patterns": [ + { + "include": "#function-call-innards-c" + } + ] + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.section.parens.begin.bracket.round.objcpp" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.parens.end.bracket.round.objcpp" + } + }, + "patterns": [ + { + "include": "#function-call-innards-c" + } + ] + }, + { + "include": "#block_innards-c" + } + ] + } + } + }, + "disabled": { + "begin": "^\\s*#\\s*if(n?def)?\\b.*$", + "comment": "eat nested preprocessor if(def)s", + "end": "^\\s*#\\s*endif\\b.*$", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + }, + "implementation_innards": { + "patterns": [ + { + "include": "#preprocessor-rule-enabled-implementation" + }, + { + "include": "#preprocessor-rule-disabled-implementation" + }, + { + "include": "#preprocessor-rule-other-implementation" + }, + { + "include": "#property_directive" + }, + { + "include": "#method_super" + }, + { + "include": "$base" + } + ] + }, + "interface_innards": { + "patterns": [ + { + "include": "#preprocessor-rule-enabled-interface" + }, + { + "include": "#preprocessor-rule-disabled-interface" + }, + { + "include": "#preprocessor-rule-other-interface" + }, + { + "include": "#properties" + }, + { + "include": "#protocol_list" + }, + { + "include": "#method" + }, + { + "include": "$base" + } + ] + }, + "method": { + "begin": "^(-|\\+)\\s*", + "end": "(?=\\{|#)|;", + "name": "meta.function.objcpp", + "patterns": [ + { + "begin": "(\\()", + "beginCaptures": { + "1": { + "name": "punctuation.definition.type.begin.objcpp" + } + }, + "end": "(\\))\\s*(\\w+\\b)", + "endCaptures": { + "1": { + "name": "punctuation.definition.type.end.objcpp" + }, + "2": { + "name": "entity.name.function.objcpp" + } + }, + "name": "meta.return-type.objcpp", + "patterns": [ + { + "include": "#protocol_list" + }, + { + "include": "#protocol_type_qualifier" + }, + { + "include": "$base" + } + ] + }, + { + "match": "\\b\\w+(?=:)", + "name": "entity.name.function.name-of-parameter.objcpp" + }, + { + "begin": "((:))\\s*(\\()", + "beginCaptures": { + "1": { + "name": "entity.name.function.name-of-parameter.objcpp" + }, + "2": { + "name": "punctuation.separator.arguments.objcpp" + }, + "3": { + "name": "punctuation.definition.type.begin.objcpp" + } + }, + "end": "(\\))\\s*(\\w+\\b)?", + "endCaptures": { + "1": { + "name": "punctuation.definition.type.end.objcpp" + }, + "2": { + "name": "variable.parameter.function.objcpp" + } + }, + "name": "meta.argument-type.objcpp", + "patterns": [ + { + "include": "#protocol_list" + }, + { + "include": "#protocol_type_qualifier" + }, + { + "include": "$base" + } + ] + }, + { + "include": "#comment" + } + ] + }, + "method_super": { + "begin": "^(?=-|\\+)", + "end": "(?<=\\})|(?=#)", + "name": "meta.function-with-body.objcpp", + "patterns": [ + { + "include": "#method" + }, + { + "include": "$base" + } + ] + }, + "pragma-mark": { + "captures": { + "1": { + "name": "meta.preprocessor.objcpp" + }, + "2": { + "name": "keyword.control.import.pragma.objcpp" + }, + "3": { + "name": "meta.toc-list.pragma-mark.objcpp" + } + }, + "match": "^\\s*(#\\s*(pragma\\s+mark)\\s+(.*))", + "name": "meta.section.objcpp" + }, + "preprocessor-rule-disabled-implementation": { + "begin": "^\\s*(#(if)\\s+(0)\\b).*", + "captures": { + "1": { + "name": "meta.preprocessor.objcpp" + }, + "2": { + "name": "keyword.control.import.if.objcpp" + }, + "3": { + "name": "constant.numeric.preprocessor.objcpp" + } + }, + "end": "^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))", + "patterns": [ + { + "begin": "^\\s*(#\\s*(else)\\b)", + "captures": { + "1": { + "name": "meta.preprocessor.objcpp" + }, + "2": { + "name": "keyword.control.import.else.objcpp" + } + }, + "end": "(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))", + "patterns": [ + { + "include": "#interface_innards" + } + ] + }, + { + "begin": "", + "end": "(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))", + "name": "comment.block.preprocessor.if-branch.objcpp", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + } + ] + }, + "preprocessor-rule-disabled-interface": { + "begin": "^\\s*(#(if)\\s+(0)\\b).*", + "captures": { + "1": { + "name": "meta.preprocessor.objcpp" + }, + "2": { + "name": "keyword.control.import.if.objcpp" + }, + "3": { + "name": "constant.numeric.preprocessor.objcpp" + } + }, + "end": "^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))", + "patterns": [ + { + "begin": "^\\s*(#\\s*(else)\\b)", + "captures": { + "1": { + "name": "meta.preprocessor.objcpp" + }, + "2": { + "name": "keyword.control.import.else.objcpp" + } + }, + "end": "(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))", + "patterns": [ + { + "include": "#interface_innards" + } + ] + }, + { + "begin": "", + "end": "(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))", + "name": "comment.block.preprocessor.if-branch.objcpp", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + } + ] + }, + "preprocessor-rule-enabled-implementation": { + "begin": "^\\s*(#(if)\\s+(0*1)\\b)", + "captures": { + "1": { + "name": "meta.preprocessor.objcpp" + }, + "2": { + "name": "keyword.control.import.if.objcpp" + }, + "3": { + "name": "constant.numeric.preprocessor.objcpp" + } + }, + "end": "^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))", + "patterns": [ + { + "begin": "^\\s*(#\\s*(else)\\b).*", + "captures": { + "1": { + "name": "meta.preprocessor.objcpp" + }, + "2": { + "name": "keyword.control.import.else.objcpp" + } + }, + "contentName": "comment.block.preprocessor.else-branch.objcpp", + "end": "(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + }, + { + "begin": "", + "end": "(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))", + "patterns": [ + { + "include": "#implementation_innards" + } + ] + } + ] + }, + "preprocessor-rule-enabled-interface": { + "begin": "^\\s*(#(if)\\s+(0*1)\\b)", + "captures": { + "1": { + "name": "meta.preprocessor.objcpp" + }, + "2": { + "name": "keyword.control.import.if.objcpp" + }, + "3": { + "name": "constant.numeric.preprocessor.objcpp" + } + }, + "end": "^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))", + "patterns": [ + { + "begin": "^\\s*(#\\s*(else)\\b).*", + "captures": { + "1": { + "name": "meta.preprocessor.objcpp" + }, + "2": { + "name": "keyword.control.import.else.objcpp" + } + }, + "contentName": "comment.block.preprocessor.else-branch.objcpp", + "end": "(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))", + "patterns": [ + { + "include": "#disabled" + }, + { + "include": "#pragma-mark" + } + ] + }, + { + "begin": "", + "end": "(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))", + "patterns": [ + { + "include": "#interface_innards" + } + ] + } + ] + }, + "preprocessor-rule-other-implementation": { + "begin": "^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))", + "captures": { + "1": { + "name": "meta.preprocessor.objcpp" + }, + "2": { + "name": "keyword.control.import.objcpp" + } + }, + "end": "^\\s*(#\\s*(endif)\\b).*?(?:(?=(?://|/\\*))|$)", + "patterns": [ + { + "include": "#implementation_innards" + } + ] + }, + "preprocessor-rule-other-interface": { + "begin": "^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))", + "captures": { + "1": { + "name": "meta.preprocessor.objcpp" + }, + "2": { + "name": "keyword.control.import.objcpp" + } + }, + "end": "^\\s*(#\\s*(endif)\\b).*?(?:(?=(?://|/\\*))|$)", + "patterns": [ + { + "include": "#interface_innards" + } + ] + }, + "properties": { + "patterns": [ + { + "begin": "((@)property)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "keyword.other.property.objcpp" + }, + "2": { + "name": "punctuation.definition.keyword.objcpp" + }, + "3": { + "name": "punctuation.section.scope.begin.objcpp" + } + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.section.scope.end.objcpp" + } + }, + "name": "meta.property-with-attributes.objcpp", + "patterns": [ + { + "match": "\\b(getter|setter|readonly|readwrite|assign|retain|copy|nonatomic|atomic|strong|weak|nonnull|nullable|null_resettable|null_unspecified|class|direct)\\b", + "name": "keyword.other.property.attribute.objcpp" + } + ] + }, + { + "captures": { + "1": { + "name": "keyword.other.property.objcpp" + }, + "2": { + "name": "punctuation.definition.keyword.objcpp" + } + }, + "match": "((@)property)\\b", + "name": "meta.property.objcpp" + } + ] + }, + "property_directive": { + "captures": { + "1": { + "name": "punctuation.definition.keyword.objcpp" + } + }, + "match": "(@)(dynamic|synthesize)\\b", + "name": "keyword.other.property.directive.objcpp" + }, + "protocol_list": { + "begin": "(<)", + "beginCaptures": { + "1": { + "name": "punctuation.section.scope.begin.objcpp" + } + }, + "end": "(>)", + "endCaptures": { + "1": { + "name": "punctuation.section.scope.end.objcpp" + } + }, + "name": "meta.protocol-list.objcpp", + "patterns": [ + { + "match": "\\bNS(GlyphStorage|M(utableCopying|enuItem)|C(hangeSpelling|o(ding|pying|lorPicking(Custom|Default)))|T(oolbarItemValidations|ext(Input|AttachmentCell))|I(nputServ(iceProvider|erMouseTracker)|gnoreMisspelledWords)|Obj(CTypeSerializationCallBack|ect)|D(ecimalNumberBehaviors|raggingInfo)|U(serInterfaceValidations|RL(HandleClient|DownloadDelegate|ProtocolClient|AuthenticationChallengeSender))|Validated(ToobarItem|UserInterfaceItem)|Locking)\\b", + "name": "support.other.protocol.objcpp" + } + ] + }, + "protocol_type_qualifier": { + "match": "\\b(in|out|inout|oneway|bycopy|byref|nonnull|nullable|_Nonnull|_Nullable|_Null_unspecified)\\b", + "name": "storage.modifier.protocol.objcpp" + }, + "special_variables": { + "patterns": [ + { + "match": "\\b_cmd\\b", + "name": "variable.other.selector.objcpp" + }, + { + "match": "\\b(self|super)\\b", + "name": "variable.language.objcpp" + } + ] + }, + "string_escaped_char": { + "patterns": [ + { + "match": "(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3]\\d{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )", + "name": "constant.character.escape.objcpp" + }, + { + "match": "\\\\.", + "name": "invalid.illegal.unknown-escape.objcpp" + } + ] + }, + "string_placeholder": { + "patterns": [ + { + "match": "(?x) %\n(\\d+\\$)?\t\t\t\t\t\t # field (argument #)\n[#0\\- +']*\t\t\t\t\t\t # flags\n[,;:_]?\t\t\t\t\t\t\t # separator character (AltiVec)\n((-?\\d+)|\\*(-?\\d+\\$)?)?\t\t # minimum field width\n(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?\t# precision\n(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n[diouxXDOUeEfFgGaACcSspn%]\t\t # conversion type", + "name": "constant.other.placeholder.objcpp" + }, + { + "match": "(%)(?!\"\\s*(PRI|SCN))", + "captures": { + "1": { + "name": "invalid.illegal.placeholder.objcpp" + } + } + } + ] + } + } +} diff --git a/docs/shiki/languages/ocaml.tmLanguage.json b/docs/shiki/languages/ocaml.tmLanguage.json new file mode 100644 index 00000000..f32d70e9 --- /dev/null +++ b/docs/shiki/languages/ocaml.tmLanguage.json @@ -0,0 +1,2961 @@ +{ + "name": "ocaml", + "scopeName": "source.ocaml", + "fileTypes": [".ml", ".mli"], + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#pragma" + }, + { + "include": "#decl" + } + ], + "repository": { + "attribute": { + "begin": "(\\[)[[:space:]]*((?<![#\\-:!?.@*/&%^+<=>|~$])@{1,3}(?![#\\-:!?.@*/&%^+<=>|~$]))", + "end": "\\]", + "beginCaptures": { + "1": { + "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong" + }, + "2": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp" + } + }, + "endCaptures": { + "0": { + "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong" + } + }, + "patterns": [ + { + "include": "#attributePayload" + } + ] + }, + "attributeIdentifier": { + "match": "((?<![#\\-:!?.@*/&%^+<=>|~$])%(?![#\\-:!?.@*/&%^+<=>|~$]))((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))", + "captures": { + "1": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp strong" + }, + "2": { + "name": "punctuation.definition.tag" + } + } + }, + "attributePayload": { + "patterns": [ + { + "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]%|^%))(?![#\\-:!?.@*/&%^+<=>|~$]))", + "end": "((?<![#\\-:!?.@*/&%^+<=>|~$])[:\\?](?![#\\-:!?.@*/&%^+<=>|~$]))|(?<=[[:space:]])|(?=\\])", + "endCaptures": { + "1": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp" + } + }, + "patterns": [ + { + "include": "#pathModuleExtended" + }, + { + "include": "#pathRecord" + } + ] + }, + { + "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))", + "end": "(?=\\])", + "patterns": [ + { + "include": "#signature" + }, + { + "include": "#type" + } + ] + }, + { + "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]\\?|^\\?))(?![#\\-:!?.@*/&%^+<=>|~$]))", + "end": "(?=\\])", + "patterns": [ + { + "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]\\?|^\\?))(?![#\\-:!?.@*/&%^+<=>|~$]))", + "end": "(?=\\])|\\bwhen\\b", + "endCaptures": { + "1": {} + }, + "patterns": [ + { + "include": "#pattern" + } + ] + }, + { + "begin": "(?:(?<=(?:[^[:word:]]when|^when))(?![[:word:]]))", + "end": "(?=\\])", + "patterns": [ + { + "include": "#term" + } + ] + } + ] + }, + { + "include": "#term" + } + ] + }, + "bindClassTerm": { + "patterns": [ + { + "begin": "(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]class|^class|[^[:word:]]type|^type))(?![[:word:]]))", + "end": "(?<![#\\-:!?.@*/&%^+<=>|~$])(:)|(=)(?![#\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", + "endCaptures": { + "1": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp strong" + }, + "2": { + "name": "support.type strong" + } + }, + "patterns": [ + { + "begin": "(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]class|^class|[^[:word:]]type|^type))(?![[:word:]]))", + "end": "(?=(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)[[:space:]]*,|[^[:space:][:lower:]%])|(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)|(?=\\btype\\b)", + "endCaptures": { + "0": { + "name": "entity.name.function strong emphasis" + } + }, + "patterns": [ + { + "include": "#attributeIdentifier" + } + ] + }, + { + "begin": "\\[", + "end": "\\]", + "captures": { + "0": { + "name": "punctuation.definition.tag" + } + }, + "patterns": [ + { + "include": "#type" + } + ] + }, + { + "include": "#bindTermArgs" + } + ] + }, + { + "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))", + "end": "(?<![#\\-:!?.@*/&%^+<=>|~$])=(?![#\\-:!?.@*/&%^+<=>|~$])|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|val)\\b)", + "endCaptures": { + "0": { + "name": "support.type strong" + } + }, + "patterns": [ + { + "include": "#literalClassType" + } + ] + }, + { + "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))", + "end": "\\band\\b|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", + "endCaptures": { + "0": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp markup.underline" + } + }, + "patterns": [ + { + "include": "#term" + } + ] + } + ] + }, + "bindClassType": { + "patterns": [ + { + "begin": "(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]class|^class|[^[:word:]]type|^type))(?![[:word:]]))", + "end": "(?<![#\\-:!?.@*/&%^+<=>|~$])(:)|(=)(?![#\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", + "endCaptures": { + "1": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp strong" + }, + "2": { + "name": "support.type strong" + } + }, + "patterns": [ + { + "begin": "(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]class|^class|[^[:word:]]type|^type))(?![[:word:]]))", + "end": "(?=(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)[[:space:]]*,|[^[:space:][:lower:]%])|(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)|(?=\\btype\\b)", + "endCaptures": { + "0": { + "name": "entity.name.function strong emphasis" + } + }, + "patterns": [ + { + "include": "#attributeIdentifier" + } + ] + }, + { + "begin": "\\[", + "end": "\\]", + "captures": { + "0": { + "name": "punctuation.definition.tag" + } + }, + "patterns": [ + { + "include": "#type" + } + ] + }, + { + "include": "#bindTermArgs" + } + ] + }, + { + "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))", + "end": "(?<![#\\-:!?.@*/&%^+<=>|~$])=(?![#\\-:!?.@*/&%^+<=>|~$])|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|val)\\b)", + "endCaptures": { + "0": { + "name": "support.type strong" + } + }, + "patterns": [ + { + "include": "#literalClassType" + } + ] + }, + { + "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))", + "end": "\\band\\b|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", + "endCaptures": { + "0": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp markup.underline" + } + }, + "patterns": [ + { + "include": "#literalClassType" + } + ] + } + ] + }, + "bindConstructor": { + "patterns": [ + { + "begin": "(?:(?<=(?:[^[:word:]]exception|^exception))(?![[:word:]]))|(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]\\+=|^\\+=|[^#\\-:!?.@*/&%^+<=>|~$]=|^=|[^#\\-:!?.@*/&%^+<=>|~$]\\||^\\|))(?![#\\-:!?.@*/&%^+<=>|~$]))", + "end": "(:)|(\\bof\\b)|((?<![#\\-:!?.@*/&%^+<=>|~$])\\|(?![#\\-:!?.@*/&%^+<=>|~$]))|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", + "endCaptures": { + "1": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp strong" + }, + "2": { + "name": "punctuation.definition.tag" + }, + "3": { + "name": "support.type strong" + } + }, + "patterns": [ + { + "include": "#attributeIdentifier" + }, + { + "match": "\\.\\.", + "name": "variable.other.class.js message.error variable.interpolation string.regexp" + }, + { + "match": "\\b(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)\\b(?![[:space:]]*(?:\\.|\\([^\\*]))", + "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong" + }, + { + "include": "#type" + } + ] + }, + { + "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))|(?:(?<=(?:[^[:word:]]of|^of))(?![[:word:]]))", + "end": "(?<![#\\-:!?.@*/&%^+<=>|~$])\\|(?![#\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", + "endCaptures": { + "0": { + "name": "support.type strong" + } + }, + "patterns": [ + { + "include": "#type" + } + ] + } + ] + }, + "bindSignature": { + "patterns": [ + { + "include": "#comment" + }, + { + "begin": "(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))", + "end": "(?<![#\\-:!?.@*/&%^+<=>|~$])=(?![#\\-:!?.@*/&%^+<=>|~$])", + "endCaptures": { + "0": { + "name": "support.type strong" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#pathModuleExtended" + } + ] + }, + { + "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))", + "end": "\\band\\b|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", + "endCaptures": { + "0": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp markup.underline" + } + }, + "patterns": [ + { + "include": "#signature" + } + ] + } + ] + }, + "bindStructure": { + "patterns": [ + { + "include": "#comment" + }, + { + "begin": "(?:(?<=(?:[^[:word:]]and|^and))(?![[:word:]]))|(?=[[:upper:]])", + "end": "(?<![#\\-:!?.@*/&%^+<=>|~$])(:(?!=))|(:?=)(?![#\\-:!?.@*/&%^+<=>|~$])|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|open|type|val)\\b)", + "endCaptures": { + "1": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp strong" + }, + "2": { + "name": "support.type strong" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "match": "\\bmodule\\b", + "name": "markup.inserted constant.language support.constant.property-value entity.name.filename" + }, + { + "match": "(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)", + "name": "entity.name.function strong emphasis" + }, + { + "begin": "\\((?!\\))", + "end": "\\)", + "captures": { + "0": { + "name": "punctuation.definition.tag" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "begin": "(?<![#\\-:!?.@*/&%^+<=>|~$]):(?![#\\-:!?.@*/&%^+<=>|~$])", + "end": "(?=\\))", + "beginCaptures": { + "0": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp strong" + } + }, + "patterns": [ + { + "include": "#signature" + } + ] + }, + { + "include": "#variableModule" + } + ] + }, + { + "include": "#literalUnit" + } + ] + }, + { + "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))", + "end": "\\b(and)\\b|((?<![#\\-:!?.@*/&%^+<=>|~$])=(?![#\\-:!?.@*/&%^+<=>|~$]))|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", + "endCaptures": { + "1": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp markup.underline" + }, + "2": { + "name": "support.type strong" + } + }, + "patterns": [ + { + "include": "#signature" + } + ] + }, + { + "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:=|^:=|[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))", + "end": "\\b(?:(and)|(with))\\b|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", + "endCaptures": { + "1": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp markup.underline" + }, + "2": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp markup.underline" + } + }, + "patterns": [ + { + "include": "#structure" + } + ] + } + ] + }, + "bindTerm": { + "patterns": [ + { + "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]!|^!))(?![#\\-:!?.@*/&%^+<=>|~$]))|(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]external|^external|[^[:word:]]let|^let|[^[:word:]]method|^method|[^[:word:]]val|^val))(?![[:word:]]))", + "end": "(\\bmodule\\b)|(\\bopen\\b)|(?<![#\\-:!?.@*/&%^+<=>|~$])(:)|((?<![#\\-:!?.@*/&%^+<=>|~$])=(?![#\\-:!?.@*/&%^+<=>|~$]))(?![#\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", + "endCaptures": { + "1": { + "name": "markup.inserted constant.language support.constant.property-value entity.name.filename" + }, + "2": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp" + }, + "3": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp strong" + }, + "4": { + "name": "support.type strong" + } + }, + "patterns": [ + { + "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]!|^!))(?![#\\-:!?.@*/&%^+<=>|~$]))|(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]external|^external|[^[:word:]]let|^let|[^[:word:]]method|^method|[^[:word:]]val|^val))(?![[:word:]]))", + "end": "(?=\\b(?:module|open)\\b)|(?=(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)[[:space:]]*,|[^[:space:][:lower:]%])|(\\brec\\b)|((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))", + "endCaptures": { + "1": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp" + }, + "2": { + "name": "entity.name.function strong emphasis" + } + }, + "patterns": [ + { + "include": "#attributeIdentifier" + }, + { + "include": "#comment" + } + ] + }, + { + "begin": "(?:(?<=(?:[^[:word:]]rec|^rec))(?![[:word:]]))", + "end": "((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))|(?=[^[:space:][:alpha:]])", + "endCaptures": { + "0": { + "name": "entity.name.function strong emphasis" + } + }, + "patterns": [ + { + "include": "#bindTermArgs" + } + ] + }, + { + "include": "#bindTermArgs" + } + ] + }, + { + "begin": "(?:(?<=(?:[^[:word:]]module|^module))(?![[:word:]]))", + "end": "(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", + "patterns": [ + { + "include": "#declModule" + } + ] + }, + { + "begin": "(?:(?<=(?:[^[:word:]]open|^open))(?![[:word:]]))", + "end": "(?=\\bin\\b)|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", + "patterns": [ + { + "include": "#pathModuleSimple" + } + ] + }, + { + "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))", + "end": "(?<![#\\-:!?.@*/&%^+<=>|~$])=(?![#\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", + "endCaptures": { + "0": { + "name": "support.type strong" + } + }, + "patterns": [ + { + "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))", + "end": "\\btype\\b|(?=[^[:space:]])", + "endCaptures": { + "0": { + "name": "keyword.control" + } + } + }, + { + "begin": "(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))", + "end": "(?<![#\\-:!?.@*/&%^+<=>|~$])\\.(?![#\\-:!?.@*/&%^+<=>|~$])", + "endCaptures": { + "0": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp" + } + }, + "patterns": [ + { + "include": "#pattern" + } + ] + }, + { + "include": "#type" + } + ] + }, + { + "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))", + "end": "\\band\\b|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", + "endCaptures": { + "0": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp markup.underline" + } + }, + "patterns": [ + { + "include": "#term" + } + ] + } + ] + }, + "bindTermArgs": { + "patterns": [ + { + "begin": "~|\\?", + "end": ":|(?=[^[:space:]])", + "applyEndPatternLast": true, + "beginCaptures": { + "0": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp" + } + }, + "endCaptures": { + "0": { + "name": "keyword" + } + }, + "patterns": [ + { + "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]~|^~|[^#\\-:!?.@*/&%^+<=>|~$]\\?|^\\?))(?![#\\-:!?.@*/&%^+<=>|~$]))", + "end": "(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)|(?<=\\))", + "endCaptures": { + "0": { + "name": "markup.inserted constant.language support.constant.property-value entity.name.filename" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "begin": "\\((?!\\*)", + "end": "\\)", + "captures": { + "0": { + "name": "punctuation.definition.tag" + } + }, + "patterns": [ + { + "begin": "(?<=\\()", + "end": ":|=", + "endCaptures": { + "0": { + "name": "keyword" + } + }, + "patterns": [ + { + "match": "(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)", + "name": "markup.inserted constant.language support.constant.property-value entity.name.filename" + } + ] + }, + { + "begin": "(?<=:)", + "end": "=|(?=\\))", + "endCaptures": { + "0": { + "name": "keyword" + } + }, + "patterns": [ + { + "include": "#type" + } + ] + }, + { + "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))", + "end": "(?=\\))", + "patterns": [ + { + "include": "#term" + } + ] + } + ] + } + ] + } + ] + }, + { + "include": "#pattern" + } + ] + }, + "bindType": { + "patterns": [ + { + "begin": "(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]type|^type))(?![[:word:]]))", + "end": "(?<![#\\-:!?.@*/&%^+<=>|~$])\\+=|=(?![#\\-:!?.@*/&%^+<=>|~$])|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", + "endCaptures": { + "0": { + "name": "support.type strong" + } + }, + "patterns": [ + { + "include": "#attributeIdentifier" + }, + { + "include": "#pathType" + }, + { + "match": "(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)", + "name": "entity.name.function strong" + }, + { + "include": "#type" + } + ] + }, + { + "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]\\+=|^\\+=|[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))", + "end": "\\band\\b|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", + "endCaptures": { + "0": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp markup.underline" + } + }, + "patterns": [ + { + "include": "#bindConstructor" + } + ] + } + ] + }, + "comment": { + "patterns": [ + { + "include": "#attribute" + }, + { + "include": "#extension" + }, + { + "include": "#commentBlock" + }, + { + "include": "#commentDoc" + } + ] + }, + "commentBlock": { + "begin": "\\(\\*(?!\\*[^\\)])", + "end": "\\*\\)", + "name": "comment constant.regexp meta.separator.markdown", + "contentName": "emphasis", + "patterns": [ + { + "include": "#commentBlock" + }, + { + "include": "#commentDoc" + } + ] + }, + "commentDoc": { + "begin": "\\(\\*\\*", + "end": "\\*\\)", + "name": "comment constant.regexp meta.separator.markdown", + "patterns": [ + { + "match": "\\*" + }, + { + "include": "#comment" + } + ] + }, + "decl": { + "patterns": [ + { + "include": "#declClass" + }, + { + "include": "#declException" + }, + { + "include": "#declInclude" + }, + { + "include": "#declModule" + }, + { + "include": "#declOpen" + }, + { + "include": "#declTerm" + }, + { + "include": "#declType" + } + ] + }, + "declClass": { + "begin": "\\bclass\\b", + "end": ";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", + "beginCaptures": { + "0": { + "name": "entity.name.class constant.numeric markup.underline" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.tag" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#pragma" + }, + { + "begin": "(?:(?<=(?:[^[:word:]]class|^class))(?![[:word:]]))", + "end": "\\btype\\b|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|val)\\b)", + "beginCaptures": { + "0": { + "name": "entity.name.class constant.numeric markup.underline" + } + }, + "endCaptures": { + "0": { + "name": "keyword" + } + }, + "patterns": [ + { + "include": "#bindClassTerm" + } + ] + }, + { + "begin": "(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))", + "end": "(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", + "patterns": [ + { + "include": "#bindClassType" + } + ] + } + ] + }, + "declException": { + "begin": "\\bexception\\b", + "end": ";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", + "beginCaptures": { + "0": { + "name": "keyword markup.underline" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.tag" + } + }, + "patterns": [ + { + "include": "#attributeIdentifier" + }, + { + "include": "#comment" + }, + { + "include": "#pragma" + }, + { + "include": "#bindConstructor" + } + ] + }, + "declInclude": { + "begin": "\\binclude\\b", + "end": ";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", + "beginCaptures": { + "0": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.tag" + } + }, + "patterns": [ + { + "include": "#attributeIdentifier" + }, + { + "include": "#comment" + }, + { + "include": "#pragma" + }, + { + "include": "#signature" + } + ] + }, + "declModule": { + "begin": "(?:(?<=(?:[^[:word:]]module|^module))(?![[:word:]]))|\\bmodule\\b", + "end": ";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", + "beginCaptures": { + "0": { + "name": "markup.inserted constant.language support.constant.property-value entity.name.filename markup.underline" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.tag" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#pragma" + }, + { + "begin": "(?:(?<=(?:[^[:word:]]module|^module))(?![[:word:]]))", + "end": "(\\btype\\b)|(?=[[:upper:]])", + "endCaptures": { + "0": { + "name": "keyword" + } + }, + "patterns": [ + { + "include": "#attributeIdentifier" + }, + { + "include": "#comment" + }, + { + "match": "\\brec\\b", + "name": "variable.other.class.js message.error variable.interpolation string.regexp" + } + ] + }, + { + "begin": "(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))", + "end": "(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", + "patterns": [ + { + "include": "#bindSignature" + } + ] + }, + { + "begin": "(?=[[:upper:]])", + "end": "(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", + "patterns": [ + { + "include": "#bindStructure" + } + ] + } + ] + }, + "declOpen": { + "begin": "\\bopen\\b", + "end": ";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", + "beginCaptures": { + "0": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.tag" + } + }, + "patterns": [ + { + "include": "#attributeIdentifier" + }, + { + "include": "#comment" + }, + { + "include": "#pragma" + }, + { + "include": "#pathModuleExtended" + } + ] + }, + "declTerm": { + "begin": "\\b(?:(external|val)|(method)|(let))\\b(!?)", + "end": ";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", + "beginCaptures": { + "1": { + "name": "support.type markup.underline" + }, + "2": { + "name": "storage.type markup.underline" + }, + "3": { + "name": "keyword.control markup.underline" + }, + "4": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.tag" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#pragma" + }, + { + "include": "#bindTerm" + } + ] + }, + "declType": { + "begin": "(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))|\\btype\\b", + "end": ";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", + "beginCaptures": { + "0": { + "name": "keyword markup.underline" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.tag" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#pragma" + }, + { + "include": "#bindType" + } + ] + }, + "extension": { + "begin": "(\\[)((?<![#\\-:!?.@*/&%^+<=>|~$])%{1,3}(?![#\\-:!?.@*/&%^+<=>|~$]))", + "end": "\\]", + "beginCaptures": { + "1": { + "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong" + }, + "2": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp" + } + }, + "endCaptures": { + "0": { + "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong" + } + }, + "patterns": [ + { + "include": "#attributePayload" + } + ] + }, + "literal": { + "patterns": [ + { + "include": "#termConstructor" + }, + { + "include": "#literalArray" + }, + { + "include": "#literalBoolean" + }, + { + "include": "#literalCharacter" + }, + { + "include": "#literalList" + }, + { + "include": "#literalNumber" + }, + { + "include": "#literalObjectTerm" + }, + { + "include": "#literalString" + }, + { + "include": "#literalRecord" + }, + { + "include": "#literalUnit" + } + ] + }, + "literalArray": { + "begin": "\\[\\|", + "end": "\\|\\]", + "captures": { + "0": { + "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong" + } + }, + "patterns": [ + { + "include": "#term" + } + ] + }, + "literalBoolean": { + "match": "\\bfalse|true\\b", + "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong" + }, + "literalCharacter": { + "begin": "(?<![[:word:]])'", + "end": "'", + "name": "markup.punctuation.quote.beginning", + "patterns": [ + { + "include": "#literalCharacterEscape" + } + ] + }, + "literalCharacterEscape": { + "match": "\\\\(?:[\\\\\"'ntbr]|[[:digit:]][[:digit:]][[:digit:]]|x[[:xdigit:]][[:xdigit:]]|o[0-3][0-7][0-7])" + }, + "literalClassType": { + "patterns": [ + { + "include": "#comment" + }, + { + "begin": "\\bobject\\b", + "end": "\\bend\\b", + "captures": { + "0": { + "name": "punctuation.definition.tag emphasis" + } + }, + "patterns": [ + { + "begin": "\\binherit\\b", + "end": ";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", + "beginCaptures": { + "0": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.tag" + } + }, + "patterns": [ + { + "begin": "\\bas\\b", + "end": ";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", + "beginCaptures": { + "0": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp" + } + }, + "patterns": [ + { + "include": "#variablePattern" + } + ] + }, + { + "include": "#type" + } + ] + }, + { + "include": "#pattern" + }, + { + "include": "#declTerm" + } + ] + }, + { + "begin": "\\[", + "end": "\\]" + } + ] + }, + "literalList": { + "patterns": [ + { + "begin": "\\[", + "end": "\\]", + "captures": { + "0": { + "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong" + } + }, + "patterns": [ + { + "include": "#term" + } + ] + } + ] + }, + "literalNumber": { + "match": "(?<![[:alpha:]])[[:digit:]][[:digit:]]*(\\.[[:digit:]][[:digit:]]*)?", + "name": "constant.numeric" + }, + "literalObjectTerm": { + "patterns": [ + { + "include": "#comment" + }, + { + "begin": "\\bobject\\b", + "end": "\\bend\\b", + "captures": { + "0": { + "name": "punctuation.definition.tag emphasis" + } + }, + "patterns": [ + { + "begin": "\\binherit\\b", + "end": ";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", + "beginCaptures": { + "0": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.tag" + } + }, + "patterns": [ + { + "begin": "\\bas\\b", + "end": ";;|(?=\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", + "beginCaptures": { + "0": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp" + } + }, + "patterns": [ + { + "include": "#variablePattern" + } + ] + }, + { + "include": "#term" + } + ] + }, + { + "include": "#pattern" + }, + { + "include": "#declTerm" + } + ] + }, + { + "begin": "\\[", + "end": "\\]" + } + ] + }, + "literalRecord": { + "begin": "\\{", + "end": "\\}", + "captures": { + "0": { + "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong strong" + } + }, + "patterns": [ + { + "begin": "(?<=\\{|;)", + "end": "(:)|(=)|(;)|(with)|(?=\\})", + "endCaptures": { + "1": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp strong" + }, + "2": { + "name": "support.type strong" + }, + "3": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp" + }, + "4": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#pathModulePrefixSimple" + }, + { + "match": "(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)", + "name": "markup.inserted constant.language support.constant.property-value entity.name.filename emphasis" + } + ] + }, + { + "begin": "(?:(?<=(?:[^[:word:]]with|^with))(?![[:word:]]))", + "end": "(:)|(=)|(;)|(?=\\})", + "endCaptures": { + "1": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp strong" + }, + "2": { + "name": "support.type strong" + }, + "3": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp" + } + }, + "patterns": [ + { + "match": "(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)", + "name": "markup.inserted constant.language support.constant.property-value entity.name.filename emphasis" + } + ] + }, + { + "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))", + "end": "(;)|(=)|(?=\\})", + "endCaptures": { + "1": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp" + }, + "2": { + "name": "support.type strong" + } + }, + "patterns": [ + { + "include": "#type" + } + ] + }, + { + "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))", + "end": ";|(?=\\})", + "endCaptures": { + "0": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp" + } + }, + "patterns": [ + { + "include": "#term" + } + ] + } + ] + }, + "literalString": { + "patterns": [ + { + "begin": "\"", + "end": "\"", + "name": "string beginning.punctuation.definition.quote.markdown", + "patterns": [ + { + "include": "#literalStringEscape" + } + ] + }, + { + "begin": "(\\{)([_[:lower:]]*?)(\\|)", + "end": "(\\|)(\\2)(\\})", + "name": "string beginning.punctuation.definition.quote.markdown", + "patterns": [ + { + "include": "#literalStringEscape" + } + ] + } + ] + }, + "literalStringEscape": { + "match": "\\\\(?:[\\\\\"ntbr]|[[:digit:]][[:digit:]][[:digit:]]|x[[:xdigit:]][[:xdigit:]]|o[0-3][0-7][0-7])" + }, + "literalUnit": { + "match": "\\(\\)", + "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong" + }, + "pathModuleExtended": { + "patterns": [ + { + "include": "#pathModulePrefixExtended" + }, + { + "match": "(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)", + "name": "entity.name.class constant.numeric" + } + ] + }, + "pathModulePrefixExtended": { + "begin": "(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\.|$|\\()", + "end": "(?![[:space:]\\.]|$|\\()", + "beginCaptures": { + "0": { + "name": "entity.name.class constant.numeric" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "begin": "\\(", + "end": "\\)", + "captures": { + "0": { + "name": "keyword.control" + } + }, + "patterns": [ + { + "match": "((?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\)))", + "name": "string.other.link variable.language variable.parameter emphasis" + }, + { + "include": "#structure" + } + ] + }, + { + "begin": "(?<![#\\-:!?.@*/&%^+<=>|~$])\\.(?![#\\-:!?.@*/&%^+<=>|~$])", + "end": "((?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\.|$))|((?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*(?:$|\\()))|((?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\)))|(?![[:space:]\\.[:upper:]]|$|\\()", + "beginCaptures": { + "0": { + "name": "keyword strong" + } + }, + "endCaptures": { + "1": { + "name": "entity.name.class constant.numeric" + }, + "2": { + "name": "entity.name.function strong" + }, + "3": { + "name": "string.other.link variable.language variable.parameter emphasis" + } + } + } + ] + }, + "pathModulePrefixExtendedParens": { + "begin": "\\(", + "end": "\\)", + "captures": { + "0": { + "name": "keyword.control" + } + }, + "patterns": [ + { + "match": "((?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\)))", + "name": "string.other.link variable.language variable.parameter emphasis" + }, + { + "include": "#structure" + } + ] + }, + "pathModulePrefixSimple": { + "begin": "(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\.)", + "end": "(?![[:space:]\\.])", + "beginCaptures": { + "0": { + "name": "entity.name.class constant.numeric" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "begin": "(?<![#\\-:!?.@*/&%^+<=>|~$])\\.(?![#\\-:!?.@*/&%^+<=>|~$])", + "end": "((?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*\\.))|((?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)(?=[[:space:]]*))|(?![[:space:]\\.[:upper:]])", + "beginCaptures": { + "0": { + "name": "keyword strong" + } + }, + "endCaptures": { + "1": { + "name": "entity.name.class constant.numeric" + }, + "2": { + "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong" + } + } + } + ] + }, + "pathModuleSimple": { + "patterns": [ + { + "include": "#pathModulePrefixSimple" + }, + { + "match": "(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)", + "name": "entity.name.class constant.numeric" + } + ] + }, + "pathRecord": { + "patterns": [ + { + "begin": "(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)", + "end": "(?=[^[:space:]\\.])(?!\\(\\*)", + "patterns": [ + { + "include": "#comment" + }, + { + "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]\\.|^\\.))(?![#\\-:!?.@*/&%^+<=>|~$]))|(?<![#\\-:!?.@*/&%^+<=>|~$])\\.(?![#\\-:!?.@*/&%^+<=>|~$])", + "end": "((?<![#\\-:!?.@*/&%^+<=>|~$])\\.(?![#\\-:!?.@*/&%^+<=>|~$]))|((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|mutable|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))|(?<=\\))|(?<=\\])", + "beginCaptures": { + "0": { + "name": "keyword strong" + } + }, + "endCaptures": { + "1": { + "name": "keyword strong" + }, + "2": { + "name": "markup.inserted constant.language support.constant.property-value entity.name.filename" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#pathModulePrefixSimple" + }, + { + "begin": "\\((?!\\*)", + "end": "\\)", + "captures": { + "0": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp" + } + }, + "patterns": [ + { + "include": "#term" + } + ] + }, + { + "begin": "\\[", + "end": "\\]", + "captures": { + "0": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp" + } + }, + "patterns": [ + { + "include": "#pattern" + } + ] + } + ] + } + ] + } + ] + }, + "pattern": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#patternArray" + }, + { + "include": "#patternLazy" + }, + { + "include": "#patternList" + }, + { + "include": "#patternMisc" + }, + { + "include": "#patternModule" + }, + { + "include": "#patternRecord" + }, + { + "include": "#literal" + }, + { + "include": "#patternParens" + }, + { + "include": "#patternType" + }, + { + "include": "#variablePattern" + }, + { + "include": "#termOperator" + } + ] + }, + "patternArray": { + "begin": "\\[\\|", + "end": "\\|\\]", + "captures": { + "0": { + "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong" + } + }, + "patterns": [ + { + "include": "#pattern" + } + ] + }, + "patternLazy": { + "match": "lazy", + "name": "variable.other.class.js message.error variable.interpolation string.regexp" + }, + "patternList": { + "begin": "\\[", + "end": "\\]", + "captures": { + "0": { + "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong" + } + }, + "patterns": [ + { + "include": "#pattern" + } + ] + }, + "patternMisc": { + "match": "((?<![#\\-:!?.@*/&%^+<=>|~$]),(?![#\\-:!?.@*/&%^+<=>|~$]))|([#\\-:!?.@*/&%^+<=>|~$]+)|\\b(as)\\b", + "captures": { + "1": { + "name": "string.regexp strong" + }, + "2": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp" + }, + "3": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp" + } + } + }, + "patternModule": { + "begin": "\\bmodule\\b", + "end": "(?=\\))", + "beginCaptures": { + "0": { + "name": "markup.inserted constant.language support.constant.property-value entity.name.filename" + } + }, + "patterns": [ + { + "include": "#declModule" + } + ] + }, + "patternParens": { + "begin": "\\((?!\\))", + "end": "\\)", + "captures": { + "0": { + "name": "punctuation.definition.tag" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "begin": "(?<![#\\-:!?.@*/&%^+<=>|~$]):(?![#\\-:!?.@*/&%^+<=>|~$])", + "end": "(?=\\))", + "beginCaptures": { + "0": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp strong" + } + }, + "patterns": [ + { + "include": "#type" + } + ] + }, + { + "include": "#pattern" + } + ] + }, + "patternRecord": { + "begin": "\\{", + "end": "\\}", + "captures": { + "0": { + "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong strong" + } + }, + "patterns": [ + { + "begin": "(?<=\\{|;)", + "end": "(:)|(=)|(;)|(with)|(?=\\})", + "endCaptures": { + "1": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp strong" + }, + "2": { + "name": "support.type strong" + }, + "3": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp" + }, + "4": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#pathModulePrefixSimple" + }, + { + "match": "(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)", + "name": "markup.inserted constant.language support.constant.property-value entity.name.filename emphasis" + } + ] + }, + { + "begin": "(?:(?<=(?:[^[:word:]]with|^with))(?![[:word:]]))", + "end": "(:)|(=)|(;)|(?=\\})", + "endCaptures": { + "1": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp strong" + }, + "2": { + "name": "support.type strong" + }, + "3": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp" + } + }, + "patterns": [ + { + "match": "(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)", + "name": "markup.inserted constant.language support.constant.property-value entity.name.filename emphasis" + } + ] + }, + { + "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))", + "end": "(;)|(=)|(?=\\})", + "endCaptures": { + "1": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp" + }, + "2": { + "name": "support.type strong" + } + }, + "patterns": [ + { + "include": "#type" + } + ] + }, + { + "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))", + "end": ";|(?=\\})", + "endCaptures": { + "0": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp" + } + }, + "patterns": [ + { + "include": "#pattern" + } + ] + } + ] + }, + "patternType": { + "begin": "\\btype\\b", + "end": "(?=\\))", + "beginCaptures": { + "0": { + "name": "keyword" + } + }, + "patterns": [ + { + "include": "#declType" + } + ] + }, + "pragma": { + "begin": "(?<![#\\-:!?.@*/&%^+<=>|~$])#(?![#\\-:!?.@*/&%^+<=>|~$])", + "end": "(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.tag" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#literalNumber" + }, + { + "include": "#literalString" + } + ] + }, + "signature": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#signatureLiteral" + }, + { + "include": "#signatureFunctor" + }, + { + "include": "#pathModuleExtended" + }, + { + "include": "#signatureParens" + }, + { + "include": "#signatureRecovered" + }, + { + "include": "#signatureConstraints" + } + ] + }, + "signatureConstraints": { + "begin": "\\bwith\\b", + "end": "(?=\\))|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", + "beginCaptures": { + "0": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp markup.underline" + } + }, + "patterns": [ + { + "begin": "(?:(?<=(?:[^[:word:]]with|^with))(?![[:word:]]))", + "end": "\\b(?:(module)|(type))\\b", + "endCaptures": { + "1": { + "name": "markup.inserted constant.language support.constant.property-value entity.name.filename" + }, + "2": { + "name": "keyword" + } + } + }, + { + "include": "#declModule" + }, + { + "include": "#declType" + } + ] + }, + "signatureFunctor": { + "patterns": [ + { + "begin": "\\bfunctor\\b", + "end": "(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", + "beginCaptures": { + "0": { + "name": "keyword" + } + }, + "patterns": [ + { + "begin": "(?:(?<=(?:[^[:word:]]functor|^functor))(?![[:word:]]))", + "end": "(\\(\\))|(\\((?!\\)))", + "endCaptures": { + "1": { + "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong" + }, + "2": { + "name": "punctuation.definition.tag" + } + } + }, + { + "begin": "(?<=\\()", + "end": "(:)|(\\))", + "endCaptures": { + "1": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp strong" + }, + "2": { + "name": "punctuation.definition.tag" + } + }, + "patterns": [ + { + "include": "#variableModule" + } + ] + }, + { + "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))", + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag" + } + }, + "patterns": [ + { + "include": "#signature" + } + ] + }, + { + "begin": "(?<=\\))", + "end": "(\\()|((?<![#\\-:!?.@*/&%^+<=>|~$])->(?![#\\-:!?.@*/&%^+<=>|~$]))", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag" + }, + "2": { + "name": "support.type strong" + } + } + }, + { + "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]->|^->))(?![#\\-:!?.@*/&%^+<=>|~$]))", + "end": "(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", + "patterns": [ + { + "include": "#signature" + } + ] + } + ] + }, + { + "match": "(?<![#\\-:!?.@*/&%^+<=>|~$])->(?![#\\-:!?.@*/&%^+<=>|~$])", + "name": "support.type strong" + } + ] + }, + "signatureLiteral": { + "begin": "\\bsig\\b", + "end": "\\bend\\b", + "captures": { + "0": { + "name": "punctuation.definition.tag emphasis" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#pragma" + }, + { + "include": "#decl" + } + ] + }, + "signatureParens": { + "begin": "\\((?!\\))", + "end": "\\)", + "captures": { + "0": { + "name": "punctuation.definition.tag" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "begin": "(?<![#\\-:!?.@*/&%^+<=>|~$]):(?![#\\-:!?.@*/&%^+<=>|~$])", + "end": "(?=\\))", + "beginCaptures": { + "0": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp strong" + } + }, + "patterns": [ + { + "include": "#signature" + } + ] + }, + { + "include": "#signature" + } + ] + }, + "signatureRecovered": { + "patterns": [ + { + "begin": "\\(|(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:|[^#\\-:!?.@*/&%^+<=>|~$]->|^->))(?![#\\-:!?.@*/&%^+<=>|~$]))|(?:(?<=(?:[^[:word:]]include|^include|[^[:word:]]open|^open))(?![[:word:]]))", + "end": "\\bmodule\\b|(?!$|[[:space:]]|\\bmodule\\b)", + "endCaptures": { + "0": { + "name": "markup.inserted constant.language support.constant.property-value entity.name.filename" + } + } + }, + { + "begin": "(?:(?<=(?:[^[:word:]]module|^module))(?![[:word:]]))", + "end": "(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", + "patterns": [ + { + "begin": "(?:(?<=(?:[^[:word:]]module|^module))(?![[:word:]]))", + "end": "\\btype\\b", + "endCaptures": { + "0": { + "name": "keyword" + } + } + }, + { + "begin": "(?:(?<=(?:[^[:word:]]type|^type))(?![[:word:]]))", + "end": "\\bof\\b", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag" + } + } + }, + { + "begin": "(?:(?<=(?:[^[:word:]]of|^of))(?![[:word:]]))", + "end": "(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", + "patterns": [ + { + "include": "#signature" + } + ] + } + ] + } + ] + }, + "structure": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#structureLiteral" + }, + { + "include": "#structureFunctor" + }, + { + "include": "#pathModuleExtended" + }, + { + "include": "#structureParens" + } + ] + }, + "structureFunctor": { + "patterns": [ + { + "begin": "\\bfunctor\\b", + "end": "(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", + "beginCaptures": { + "0": { + "name": "keyword" + } + }, + "patterns": [ + { + "begin": "(?:(?<=(?:[^[:word:]]functor|^functor))(?![[:word:]]))", + "end": "(\\(\\))|(\\((?!\\)))", + "endCaptures": { + "1": { + "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong" + }, + "2": { + "name": "punctuation.definition.tag" + } + } + }, + { + "begin": "(?<=\\()", + "end": "(:)|(\\))", + "endCaptures": { + "1": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp strong" + }, + "2": { + "name": "punctuation.definition.tag" + } + }, + "patterns": [ + { + "include": "#variableModule" + } + ] + }, + { + "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))", + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag" + } + }, + "patterns": [ + { + "include": "#signature" + } + ] + }, + { + "begin": "(?<=\\))", + "end": "(\\()|((?<![#\\-:!?.@*/&%^+<=>|~$])->(?![#\\-:!?.@*/&%^+<=>|~$]))", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag" + }, + "2": { + "name": "support.type strong" + } + } + }, + { + "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]->|^->))(?![#\\-:!?.@*/&%^+<=>|~$]))", + "end": "(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", + "patterns": [ + { + "include": "#structure" + } + ] + } + ] + }, + { + "match": "(?<![#\\-:!?.@*/&%^+<=>|~$])->(?![#\\-:!?.@*/&%^+<=>|~$])", + "name": "support.type strong" + } + ] + }, + "structureLiteral": { + "begin": "\\bstruct\\b", + "end": "\\bend\\b", + "captures": { + "0": { + "name": "punctuation.definition.tag emphasis" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#pragma" + }, + { + "include": "#decl" + } + ] + }, + "structureParens": { + "begin": "\\(", + "end": "\\)", + "captures": { + "0": { + "name": "punctuation.definition.tag" + } + }, + "patterns": [ + { + "include": "#structureUnpack" + }, + { + "include": "#structure" + } + ] + }, + "structureUnpack": { + "begin": "\\bval\\b", + "end": "(?=\\))", + "beginCaptures": { + "0": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp" + } + } + }, + "term": { + "patterns": [ + { + "include": "#termLet" + }, + { + "include": "#termAtomic" + } + ] + }, + "termAtomic": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#termConditional" + }, + { + "include": "#termConstructor" + }, + { + "include": "#termDelim" + }, + { + "include": "#termFor" + }, + { + "include": "#termFunction" + }, + { + "include": "#literal" + }, + { + "include": "#termMatch" + }, + { + "include": "#termMatchRule" + }, + { + "include": "#termPun" + }, + { + "include": "#termOperator" + }, + { + "include": "#termTry" + }, + { + "include": "#termWhile" + }, + { + "include": "#pathRecord" + } + ] + }, + "termConditional": { + "match": "\\b(?:if|then|else)\\b", + "name": "keyword.control" + }, + "termConstructor": { + "patterns": [ + { + "include": "#pathModulePrefixSimple" + }, + { + "match": "(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)", + "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong" + } + ] + }, + "termDelim": { + "patterns": [ + { + "begin": "\\((?!\\))", + "end": "\\)", + "captures": { + "0": { + "name": "punctuation.definition.tag" + } + }, + "patterns": [ + { + "include": "#term" + } + ] + }, + { + "begin": "\\bbegin\\b", + "end": "\\bend\\b", + "captures": { + "0": { + "name": "punctuation.definition.tag" + } + }, + "patterns": [ + { + "include": "#attributeIdentifier" + }, + { + "include": "#term" + } + ] + } + ] + }, + "termFor": { + "patterns": [ + { + "begin": "\\bfor\\b", + "end": "\\bdone\\b", + "beginCaptures": { + "0": { + "name": "keyword.control" + } + }, + "endCaptures": { + "0": { + "name": "keyword.control" + } + }, + "patterns": [ + { + "begin": "(?:(?<=(?:[^[:word:]]for|^for))(?![[:word:]]))", + "end": "(?<![#\\-:!?.@*/&%^+<=>|~$])=(?![#\\-:!?.@*/&%^+<=>|~$])", + "endCaptures": { + "0": { + "name": "support.type strong" + } + }, + "patterns": [ + { + "include": "#pattern" + } + ] + }, + { + "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))", + "end": "\\b(?:downto|to)\\b", + "endCaptures": { + "0": { + "name": "keyword.control" + } + }, + "patterns": [ + { + "include": "#term" + } + ] + }, + { + "begin": "(?:(?<=(?:[^[:word:]]to|^to))(?![[:word:]]))", + "end": "\\bdo\\b", + "endCaptures": { + "0": { + "name": "keyword.control" + } + }, + "patterns": [ + { + "include": "#term" + } + ] + }, + { + "begin": "(?:(?<=(?:[^[:word:]]do|^do))(?![[:word:]]))", + "end": "(?=\\bdone\\b)", + "patterns": [ + { + "include": "#term" + } + ] + } + ] + } + ] + }, + "termFunction": { + "match": "\\b(?:(fun)|(function))\\b", + "captures": { + "1": { + "name": "storage.type" + }, + "2": { + "name": "storage.type" + } + } + }, + "termLet": { + "patterns": [ + { + "begin": "(?:(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=|[^#\\-:!?.@*/&%^+<=>|~$]->|^->))(?![#\\-:!?.@*/&%^+<=>|~$]))|(?<=;|\\())(?=[[:space:]]|\\blet\\b)|(?:(?<=(?:[^[:word:]]begin|^begin|[^[:word:]]do|^do|[^[:word:]]else|^else|[^[:word:]]in|^in|[^[:word:]]struct|^struct|[^[:word:]]then|^then|[^[:word:]]try|^try))(?![[:word:]]))|(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]@@|^@@))(?![#\\-:!?.@*/&%^+<=>|~$]))[[:space:]]+", + "end": "\\b(?:(and)|(let))\\b|(?=[^[:space:]])(?!\\(\\*)", + "endCaptures": { + "1": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp markup.underline" + }, + "2": { + "name": "storage.type markup.underline" + } + }, + "patterns": [ + { + "include": "#comment" + } + ] + }, + { + "begin": "(?:(?<=(?:[^[:word:]]and|^and|[^[:word:]]let|^let))(?![[:word:]]))|(let)", + "end": "\\b(?:(and)|(in))\\b|(?=\\}|\\)|\\]|\\b(?:end|class|exception|external|include|inherit|initializer|let|method|module|open|type|val)\\b)", + "beginCaptures": { + "1": { + "name": "storage.type markup.underline" + } + }, + "endCaptures": { + "1": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp markup.underline" + }, + "2": { + "name": "storage.type markup.underline" + } + }, + "patterns": [ + { + "include": "#bindTerm" + } + ] + } + ] + }, + "termMatch": { + "begin": "\\bmatch\\b", + "end": "\\bwith\\b", + "captures": { + "0": { + "name": "keyword.control" + } + }, + "patterns": [ + { + "include": "#term" + } + ] + }, + "termMatchRule": { + "patterns": [ + { + "begin": "(?:(?<=(?:[^[:word:]]fun|^fun|[^[:word:]]function|^function|[^[:word:]]with|^with))(?![[:word:]]))", + "end": "(?<![#\\-:!?.@*/&%^+<=>|~$])(\\|)|(->)(?![#\\-:!?.@*/&%^+<=>|~$])", + "endCaptures": { + "1": { + "name": "support.type strong" + }, + "2": { + "name": "support.type strong" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#attributeIdentifier" + }, + { + "include": "#pattern" + } + ] + }, + { + "begin": "(?:(?<=(?:[^\\[#\\-:!?.@*/&%^+<=>|~$]\\||^\\|))(?![#\\-:!?.@*/&%^+<=>|~$]))|(?<![#\\-:!?.@*/&%^+<=>|~$])\\|(?![#\\-:!?.@*/&%^+<=>|~$])", + "end": "(?<![#\\-:!?.@*/&%^+<=>|~$])(\\|)|(->)(?![#\\-:!?.@*/&%^+<=>|~$])", + "beginCaptures": { + "0": { + "name": "support.type strong" + } + }, + "endCaptures": { + "1": { + "name": "support.type strong" + }, + "2": { + "name": "support.type strong" + } + }, + "patterns": [ + { + "include": "#pattern" + }, + { + "begin": "\\bwhen\\b", + "end": "(?=(?<![#\\-:!?.@*/&%^+<=>|~$])->(?![#\\-:!?.@*/&%^+<=>|~$]))", + "beginCaptures": { + "0": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp" + } + }, + "patterns": [ + { + "include": "#term" + } + ] + } + ] + } + ] + }, + "termOperator": { + "patterns": [ + { + "begin": "(?<![#\\-:!?.@*/&%^+<=>|~$])#(?![#\\-:!?.@*/&%^+<=>|~$])", + "end": "(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)", + "beginCaptures": { + "0": { + "name": "keyword" + } + }, + "endCaptures": { + "0": { + "name": "entity.name.function" + } + } + }, + { + "match": "<-", + "captures": { + "0": { + "name": "keyword.control strong" + } + } + }, + { + "match": "(,|[#\\-:!?.@*/&%^+<=>|~$]+)|(;)", + "captures": { + "1": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp" + }, + "2": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp" + } + } + }, + { + "match": "\\b(?:and|assert|asr|land|lazy|lsr|lxor|mod|new|or)\\b", + "name": "variable.other.class.js message.error variable.interpolation string.regexp" + } + ] + }, + "termPun": { + "begin": "(?<![#\\-:!?.@*/&%^+<=>|~$])\\?|~(?![#\\-:!?.@*/&%^+<=>|~$])", + "end": ":|(?=[^[:space:]:])", + "applyEndPatternLast": true, + "beginCaptures": { + "0": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp" + } + }, + "endCaptures": { + "0": { + "name": "keyword" + } + }, + "patterns": [ + { + "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]\\?|^\\?|[^#\\-:!?.@*/&%^+<=>|~$]~|^~))(?![#\\-:!?.@*/&%^+<=>|~$]))", + "end": "(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)", + "endCaptures": { + "0": { + "name": "markup.inserted constant.language support.constant.property-value entity.name.filename" + } + } + } + ] + }, + "termTry": { + "begin": "\\btry\\b", + "end": "\\bwith\\b", + "captures": { + "0": { + "name": "keyword.control" + } + }, + "patterns": [ + { + "include": "#term" + } + ] + }, + "termWhile": { + "patterns": [ + { + "begin": "\\bwhile\\b", + "end": "\\bdone\\b", + "beginCaptures": { + "0": { + "name": "keyword.control" + } + }, + "endCaptures": { + "0": { + "name": "keyword.control" + } + }, + "patterns": [ + { + "begin": "(?:(?<=(?:[^[:word:]]while|^while))(?![[:word:]]))", + "end": "\\bdo\\b", + "endCaptures": { + "0": { + "name": "keyword.control" + } + }, + "patterns": [ + { + "include": "#term" + } + ] + }, + { + "begin": "(?:(?<=(?:[^[:word:]]do|^do))(?![[:word:]]))", + "end": "(?=\\bdone\\b)", + "patterns": [ + { + "include": "#term" + } + ] + } + ] + } + ] + }, + "type": { + "patterns": [ + { + "include": "#comment" + }, + { + "match": "\\bnonrec\\b", + "name": "variable.other.class.js message.error variable.interpolation string.regexp" + }, + { + "include": "#pathModulePrefixExtended" + }, + { + "include": "#typeLabel" + }, + { + "include": "#typeObject" + }, + { + "include": "#typeOperator" + }, + { + "include": "#typeParens" + }, + { + "include": "#typePolymorphicVariant" + }, + { + "include": "#typeRecord" + }, + { + "include": "#typeConstructor" + } + ] + }, + "typeConstructor": { + "patterns": [ + { + "begin": "(_)|((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))|(')((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))|(?<=[^\\*]\\)|\\])", + "end": "(?=\\((?!\\*)|\\*|:|,|=|\\.|>|-|\\{|\\[|\\+|\\}|\\)|\\]|;|\\|)|((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))[:space:]*(?!\\(\\*|[[:word:]])|(?=;;|\\}|\\)|\\]|\\b(?:end|and|class|exception|external|in|include|inherit|initializer|let|method|module|open|type|val)\\b)", + "beginCaptures": { + "1": { + "name": "comment constant.regexp meta.separator.markdown" + }, + "3": { + "name": "string.other.link variable.language variable.parameter emphasis strong emphasis" + }, + "4": { + "name": "keyword.control emphasis" + } + }, + "endCaptures": { + "1": { + "name": "entity.name.function strong" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#pathModulePrefixExtended" + } + ] + } + ] + }, + "typeLabel": { + "patterns": [ + { + "begin": "(\\??)((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))[[:space:]]*((?<![#\\-:!?.@*/&%^+<=>|~$]):(?![#\\-:!?.@*/&%^+<=>|~$]))", + "end": "(?=(?<![#\\-:!?.@*/&%^+<=>|~$])->(?![#\\-:!?.@*/&%^+<=>|~$]))", + "captures": { + "1": { + "name": "keyword strong emphasis" + }, + "2": { + "name": "markup.inserted constant.language support.constant.property-value entity.name.filename emphasis" + }, + "3": { + "name": "keyword" + } + }, + "patterns": [ + { + "include": "#type" + } + ] + } + ] + }, + "typeModule": { + "begin": "\\bmodule\\b", + "end": "(?=\\))", + "beginCaptures": { + "0": { + "name": "markup.inserted constant.language support.constant.property-value entity.name.filename" + } + }, + "patterns": [ + { + "include": "#pathModuleExtended" + }, + { + "include": "#signatureConstraints" + } + ] + }, + "typeObject": { + "begin": "<", + "end": ">", + "captures": { + "0": { + "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong strong" + } + }, + "patterns": [ + { + "begin": "(?<=<|;)", + "end": "(:)|(?=>)", + "endCaptures": { + "1": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp strong" + }, + "3": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp" + }, + "4": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#pathModulePrefixSimple" + }, + { + "match": "(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)", + "name": "markup.inserted constant.language support.constant.property-value entity.name.filename emphasis" + } + ] + }, + { + "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))", + "end": "(;)|(?=>)", + "endCaptures": { + "1": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp" + }, + "2": { + "name": "support.type strong" + } + }, + "patterns": [ + { + "include": "#type" + } + ] + } + ] + }, + "typeOperator": { + "patterns": [ + { + "match": ",|;|[#\\-:!?.@*/&%^+<=>|~$]+", + "name": "variable.other.class.js message.error variable.interpolation string.regexp strong" + } + ] + }, + "typeParens": { + "begin": "\\(", + "end": "\\)", + "captures": { + "0": { + "name": "punctuation.definition.tag" + } + }, + "patterns": [ + { + "match": ",", + "name": "variable.other.class.js message.error variable.interpolation string.regexp" + }, + { + "include": "#typeModule" + }, + { + "include": "#type" + } + ] + }, + "typePolymorphicVariant": { + "begin": "\\[", + "end": "\\]", + "patterns": [] + }, + "typeRecord": { + "begin": "\\{", + "end": "\\}", + "captures": { + "0": { + "name": "constant.language constant.numeric entity.other.attribute-name.id.css strong strong" + } + }, + "patterns": [ + { + "begin": "(?<=\\{|;)", + "end": "(:)|(=)|(;)|(with)|(?=\\})", + "endCaptures": { + "1": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp strong" + }, + "2": { + "name": "support.type strong" + }, + "3": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp" + }, + "4": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#pathModulePrefixSimple" + }, + { + "match": "(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)", + "name": "markup.inserted constant.language support.constant.property-value entity.name.filename emphasis" + } + ] + }, + { + "begin": "(?:(?<=(?:[^[:word:]]with|^with))(?![[:word:]]))", + "end": "(:)|(=)|(;)|(?=\\})", + "endCaptures": { + "1": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp strong" + }, + "2": { + "name": "support.type strong" + }, + "3": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp" + } + }, + "patterns": [ + { + "match": "(?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*)", + "name": "markup.inserted constant.language support.constant.property-value entity.name.filename emphasis" + } + ] + }, + { + "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]:|^:))(?![#\\-:!?.@*/&%^+<=>|~$]))", + "end": "(;)|(=)|(?=\\})", + "endCaptures": { + "1": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp" + }, + "2": { + "name": "support.type strong" + } + }, + "patterns": [ + { + "include": "#type" + } + ] + }, + { + "begin": "(?:(?<=(?:[^#\\-:!?.@*/&%^+<=>|~$]=|^=))(?![#\\-:!?.@*/&%^+<=>|~$]))", + "end": ";|(?=\\})", + "endCaptures": { + "0": { + "name": "variable.other.class.js message.error variable.interpolation string.regexp" + } + }, + "patterns": [ + { + "include": "#type" + } + ] + } + ] + }, + "variableModule": { + "match": "(?:\\b(?=[[:upper:]])[[:alpha:]_][[:word:]']*)", + "captures": { + "0": { + "name": "string.other.link variable.language variable.parameter emphasis" + } + } + }, + "variablePattern": { + "match": "(\\b_\\b)|((?:(?!\\b(?:and|'|as|asr|assert|\\*|begin|class|:|,|@|constraint|do|done|downto|else|end|=|exception|external|false|for|\\.|fun|function|functor|>|-|if|in|include|inherit|initializer|land|lazy|\\{|\\(|\\[|<|let|lor|lsl|lsr|lxor|match|method|mod|module|mutable|new|nonrec|#|object|of|open|or|%|\\+|private|\\?|\"|rec|\\\\|\\}|\\)|\\]|;|sig|/|struct|then|~|to|true|try|type|val|\\||virtual|when|while|with)\\b(?:[^']|$))\\b(?=[[:lower:]_])[[:alpha:]_][[:word:]']*))", + "captures": { + "1": { + "name": "comment constant.regexp meta.separator.markdown" + }, + "2": { + "name": "string.other.link variable.language variable.parameter emphasis" + } + } + } + } +} diff --git a/docs/shiki/languages/pascal.tmLanguage.json b/docs/shiki/languages/pascal.tmLanguage.json new file mode 100644 index 00000000..4b05ee3a --- /dev/null +++ b/docs/shiki/languages/pascal.tmLanguage.json @@ -0,0 +1,145 @@ +{ + "fileTypes": ["pas", "p", "pp", "dfm", "fmx", "dpr", "dpk", "lfm", "lpr"], + "keyEquivalent": "^~P", + "name": "pascal", + "patterns": [ + { + "match": "\\b(?i:(absolute|abstract|add|all|and_then|array|as|asc|asm|assembler|async|attribute|autoreleasepool|await|begin|bindable|block|by|case|cdecl|class|concat|const|constref|copy|cppdecl|contains|default|delegate|deprecated|desc|distinct|div|each|else|empty|end|ensure|enum|equals|event|except|export|exports|extension|external|far|file|finalization|finalizer|finally|flags|forward|from|future|generic|goto|group|has|helper|if|implements|implies|import|in|index|inherited|initialization|inline|interrupt|into|invariants|is|iterator|label|library|join|lazy|lifetimestrategy|locked|locking|loop|mapped|matching|method|mod|module|name|namespace|near|nested|new|nostackframe|not|notify|nullable|object|of|old|oldfpccall|on|only|operator|optional|or_else|order|otherwise|out|override|package|packed|parallel|params|partial|pascal|pinned|platform|pow|private|program|protected|public|published|interface|implementation|qualified|queryable|raises|read|readonly|record|reference|register|remove|resident|require|requires|resourcestring|restricted|result|reverse|safecall|sealed|segment|select|selector|sequence|set|shl|shr|skip|specialize|soft|static|stored|stdcall|step|strict|strong|take|then|threadvar|to|try|tuple|type|unconstrained|unit|unmanaged|unretained|unsafe|uses|using|var|view|virtual|volatile|weak|dynamic|overload|reintroduce|where|with|write|xor|yield))\\b", + "name": "keyword.pascal" + }, + { + "captures": { + "1": { + "name": "storage.type.prototype.pascal" + }, + "2": { + "name": "entity.name.function.prototype.pascal" + } + }, + "match": "\\b(?i:(function|procedure|constructor|destructor))\\b\\s+(\\w+(\\.\\w+)?)(\\(.*?\\))?;\\s*(?=(?i:attribute|forward|external))", + "name": "meta.function.prototype.pascal" + }, + { + "captures": { + "1": { + "name": "storage.type.function.pascal" + }, + "2": { + "name": "entity.name.function.pascal" + } + }, + "match": "\\b(?i:(function|procedure|constructor|destructor|property|read|write))\\b\\s+(\\w+(\\.\\w+)?)", + "name": "meta.function.pascal" + }, + { + "match": "\\b(?i:(self|result))\\b", + "name": "token.variable" + }, + { + "match": "\\b(?i:(and|or))\\b", + "name": "keyword.operator.pascal" + }, + { + "match": "\\b(?i:(break|continue|exit|abort|while|do|downto|for|raise|repeat|until))\\b", + "name": "keyword.control.pascal" + }, + { + "begin": "\\{\\$", + "captures": { + "0": { + "name": "string.regexp" + } + }, + "end": "\\}", + "name": "string.regexp" + }, + { + "match": "\\b(?i:(ansichar|ansistring|boolean|byte|cardinal|char|comp|currency|double|dword|extended|file|integer|int64|longint|longword|nativeint|nativeuint|olevariant|pansichar|pchar|pwidechar|pointer|real|shortint|shortstring|single|smallint|string|uint64|variant|widechar|widestring|word|wordbool))\\b", + "name": "storage.support.type.pascal" + }, + { + "match": "\\b(\\d+)|(\\d*\\.\\d+([eE][\\-+]?\\d+)?)\\b", + "name": "constant.numeric.pascal" + }, + { + "match": "\\$[0-9a-fA-F]{1,16}\\b", + "name": "constant.numeric.hex.pascal" + }, + { + "match": "\\b(?i:(true|false|nil))\\b", + "name": "constant.language.pascal" + }, + { + "match": "\\b(?i:(Assert))\\b", + "name": "keyword.control" + }, + { + "begin": "(^[ \\t]+)?(?=//)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.pascal" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": "//", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.pascal" + } + }, + "end": "\\n", + "name": "comment.line.double-slash.pascal.two" + } + ] + }, + { + "begin": "\\(\\*", + "captures": { + "0": { + "name": "punctuation.definition.comment.pascal" + } + }, + "end": "\\*\\)", + "name": "comment.block.pascal.one" + }, + { + "begin": "\\{(?!\\$)", + "captures": { + "0": { + "name": "punctuation.definition.comment.pascal" + } + }, + "end": "\\}", + "name": "comment.block.pascal.two" + }, + { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.pascal" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.pascal" + } + }, + "name": "string.quoted.single.pascal", + "patterns": [ + { + "match": "''", + "name": "constant.character.escape.apostrophe.pascal" + } + ] + }, + { + "match": "\\#\\d+", + "name": "string.other.pascal" + } + ], + "scopeName": "source.pascal", + "uuid": "F42FA544-6B1C-11D9-9517-000D93589AF6" +} diff --git a/docs/shiki/languages/perl.tmLanguage.json b/docs/shiki/languages/perl.tmLanguage.json new file mode 100644 index 00000000..8639b4e4 --- /dev/null +++ b/docs/shiki/languages/perl.tmLanguage.json @@ -0,0 +1,2977 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/textmate/perl.tmbundle/blob/master/Syntaxes/Perl.plist", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/textmate/perl.tmbundle/commit/a85927a902d6e5d7805f56a653f324d34dfad53a", + "name": "perl", + "scopeName": "source.perl", + "comment": "\n\tTODO:\tInclude RegExp syntax\n", + "patterns": [ + { + "include": "#line_comment" + }, + { + "begin": "^(?==[a-zA-Z]+)", + "end": "^(=cut\\b.*$)", + "endCaptures": { + "1": { + "patterns": [ + { + "include": "#pod" + } + ] + } + }, + "name": "comment.block.documentation.perl", + "patterns": [ + { + "include": "#pod" + } + ] + }, + { + "include": "#variable" + }, + { + "applyEndPatternLast": 1, + "begin": "\\b(?=qr\\s*[^\\s\\w])", + "comment": "string.regexp.compile.perl", + "end": "((([egimosxradlupcn]*)))(?=(\\s+\\S|\\s*[;\\,\\#\\{\\}\\)]|\\s*$))", + "endCaptures": { + "1": { + "name": "string.regexp.compile.perl" + }, + "2": { + "name": "punctuation.definition.string.perl" + }, + "3": { + "name": "keyword.control.regexp-option.perl" + } + }, + "patterns": [ + { + "begin": "(qr)\\s*\\{", + "captures": { + "0": { + "name": "punctuation.definition.string.perl" + }, + "1": { + "name": "support.function.perl" + } + }, + "end": "\\}", + "name": "string.regexp.compile.nested_braces.perl", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#variable" + }, + { + "include": "#nested_braces_interpolated" + } + ] + }, + { + "begin": "(qr)\\s*\\[", + "captures": { + "0": { + "name": "punctuation.definition.string.perl" + }, + "1": { + "name": "support.function.perl" + } + }, + "end": "\\]", + "name": "string.regexp.compile.nested_brackets.perl", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#variable" + }, + { + "include": "#nested_brackets_interpolated" + } + ] + }, + { + "begin": "(qr)\\s*<", + "captures": { + "0": { + "name": "punctuation.definition.string.perl" + }, + "1": { + "name": "support.function.perl" + } + }, + "end": ">", + "name": "string.regexp.compile.nested_ltgt.perl", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#variable" + }, + { + "include": "#nested_ltgt_interpolated" + } + ] + }, + { + "begin": "(qr)\\s*\\(", + "captures": { + "0": { + "name": "punctuation.definition.string.perl" + }, + "1": { + "name": "support.function.perl" + } + }, + "end": "\\)", + "name": "string.regexp.compile.nested_parens.perl", + "patterns": [ + { + "comment": "This is to prevent thinks like qr/foo$/ to treat $/ as a variable", + "match": "\\$(?=[^\\s\\w\\\\'\\{\\[\\(\\<])" + }, + { + "include": "#escaped_char" + }, + { + "include": "#variable" + }, + { + "include": "#nested_parens_interpolated" + } + ] + }, + { + "begin": "(qr)\\s*'", + "captures": { + "0": { + "name": "punctuation.definition.string.perl" + }, + "1": { + "name": "support.function.perl" + } + }, + "end": "'", + "name": "string.regexp.compile.single-quote.perl", + "patterns": [ + { + "include": "#escaped_char" + } + ] + }, + { + "begin": "(qr)\\s*([^\\s\\w'\\{\\[\\(\\<])", + "captures": { + "0": { + "name": "punctuation.definition.string.perl" + }, + "1": { + "name": "support.function.perl" + } + }, + "end": "\\2", + "name": "string.regexp.compile.simple-delimiter.perl", + "patterns": [ + { + "comment": "This is to prevent thinks like qr/foo$/ to treat $/ as a variable", + "match": "\\$(?=[^\\s\\w'\\{\\[\\(\\<])", + "name": "keyword.control.anchor.perl" + }, + { + "include": "#escaped_char" + }, + { + "include": "#variable" + }, + { + "include": "#nested_parens_interpolated" + } + ] + } + ] + }, + { + "applyEndPatternLast": 1, + "begin": "(?<!\\{|\\+|\\-)\\b(?=m\\s*[^\\sa-zA-Z0-9])", + "comment": "string.regexp.find-m.perl", + "end": "((([egimosxradlupcn]*)))(?=(\\s+\\S|\\s*[;\\,\\#\\{\\}\\)]|\\s*$))", + "endCaptures": { + "1": { + "name": "string.regexp.find-m.perl" + }, + "2": { + "name": "punctuation.definition.string.perl" + }, + "3": { + "name": "keyword.control.regexp-option.perl" + } + }, + "patterns": [ + { + "begin": "(m)\\s*\\{", + "captures": { + "0": { + "name": "punctuation.definition.string.perl" + }, + "1": { + "name": "support.function.perl" + } + }, + "end": "\\}", + "name": "string.regexp.find-m.nested_braces.perl", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#variable" + }, + { + "include": "#nested_braces_interpolated" + } + ] + }, + { + "begin": "(m)\\s*\\[", + "captures": { + "0": { + "name": "punctuation.definition.string.perl" + }, + "1": { + "name": "support.function.perl" + } + }, + "end": "\\]", + "name": "string.regexp.find-m.nested_brackets.perl", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#variable" + }, + { + "include": "#nested_brackets_interpolated" + } + ] + }, + { + "begin": "(m)\\s*<", + "captures": { + "0": { + "name": "punctuation.definition.string.perl" + }, + "1": { + "name": "support.function.perl" + } + }, + "end": ">", + "name": "string.regexp.find-m.nested_ltgt.perl", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#variable" + }, + { + "include": "#nested_ltgt_interpolated" + } + ] + }, + { + "begin": "(m)\\s*\\(", + "captures": { + "0": { + "name": "punctuation.definition.string.perl" + }, + "1": { + "name": "support.function.perl" + } + }, + "end": "\\)", + "name": "string.regexp.find-m.nested_parens.perl", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#variable" + }, + { + "include": "#nested_parens_interpolated" + } + ] + }, + { + "begin": "(m)\\s*'", + "captures": { + "0": { + "name": "punctuation.definition.string.perl" + }, + "1": { + "name": "support.function.perl" + } + }, + "end": "'", + "name": "string.regexp.find-m.single-quote.perl", + "patterns": [ + { + "include": "#escaped_char" + } + ] + }, + { + "begin": "\\G(?<!\\{|\\+|\\-)(m)(?!_)\\s*([^\\sa-zA-Z0-9'\\{\\[\\(\\<])", + "captures": { + "0": { + "name": "punctuation.definition.string.perl" + }, + "1": { + "name": "support.function.perl" + } + }, + "end": "\\2", + "name": "string.regexp.find-m.simple-delimiter.perl", + "patterns": [ + { + "comment": "This is to prevent thinks like qr/foo$/ to treat $/ as a variable", + "match": "\\$(?=[^\\sa-zA-Z0-9'\\{\\[\\(\\<])", + "name": "keyword.control.anchor.perl" + }, + { + "include": "#escaped_char" + }, + { + "include": "#variable" + }, + { + "begin": "\\[", + "beginCaptures": { + "1": { + "name": "punctuation.definition.character-class.begin.perl" + } + }, + "end": "\\]", + "endCaptures": { + "1": { + "name": "punctuation.definition.character-class.end.perl" + } + }, + "name": "constant.other.character-class.set.perl", + "patterns": [ + { + "comment": "This is to prevent thinks like qr/foo$/ to treat $/ as a variable", + "match": "\\$(?=[^\\s\\w'\\{\\[\\(\\<])", + "name": "keyword.control.anchor.perl" + }, + { + "include": "#escaped_char" + } + ] + }, + { + "include": "#nested_parens_interpolated" + } + ] + } + ] + }, + { + "applyEndPatternLast": 1, + "begin": "\\b(?=(?<!\\&)(s)(\\s+\\S|\\s*[;\\,\\{\\}\\(\\)\\[<]|$))", + "comment": "string.regexp.replace.perl", + "end": "((([egimosxradlupcn]*)))(?=(\\s+\\S|\\s*[;\\,\\{\\}\\)\\]>]|\\s*$))", + "endCaptures": { + "1": { + "name": "string.regexp.replace.perl" + }, + "2": { + "name": "punctuation.definition.string.perl" + }, + "3": { + "name": "keyword.control.regexp-option.perl" + } + }, + "patterns": [ + { + "begin": "(s)\\s*\\{", + "captures": { + "0": { + "name": "punctuation.definition.string.perl" + }, + "1": { + "name": "support.function.perl" + } + }, + "end": "\\}", + "name": "string.regexp.nested_braces.perl", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#nested_braces" + } + ] + }, + { + "begin": "(s)\\s*\\[", + "captures": { + "0": { + "name": "punctuation.definition.string.perl" + }, + "1": { + "name": "support.function.perl" + } + }, + "end": "\\]", + "name": "string.regexp.nested_brackets.perl", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#nested_brackets" + } + ] + }, + { + "begin": "(s)\\s*<", + "captures": { + "0": { + "name": "punctuation.definition.string.perl" + }, + "1": { + "name": "support.function.perl" + } + }, + "end": ">", + "name": "string.regexp.nested_ltgt.perl", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#nested_ltgt" + } + ] + }, + { + "begin": "(s)\\s*\\(", + "captures": { + "0": { + "name": "punctuation.definition.string.perl" + }, + "1": { + "name": "support.function.perl" + } + }, + "end": "\\)", + "name": "string.regexp.nested_parens.perl", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#nested_parens" + } + ] + }, + { + "begin": "\\{", + "captures": { + "0": { + "name": "punctuation.definition.string.perl" + } + }, + "end": "\\}", + "name": "string.regexp.format.nested_braces.perl", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#variable" + }, + { + "include": "#nested_braces_interpolated" + } + ] + }, + { + "begin": "\\[", + "captures": { + "0": { + "name": "punctuation.definition.string.perl" + } + }, + "end": "\\]", + "name": "string.regexp.format.nested_brackets.perl", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#variable" + }, + { + "include": "#nested_brackets_interpolated" + } + ] + }, + { + "begin": "<", + "captures": { + "0": { + "name": "punctuation.definition.string.perl" + } + }, + "end": ">", + "name": "string.regexp.format.nested_ltgt.perl", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#variable" + }, + { + "include": "#nested_ltgt_interpolated" + } + ] + }, + { + "begin": "\\(", + "captures": { + "0": { + "name": "punctuation.definition.string.perl" + } + }, + "end": "\\)", + "name": "string.regexp.format.nested_parens.perl", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#variable" + }, + { + "include": "#nested_parens_interpolated" + } + ] + }, + { + "begin": "'", + "captures": { + "0": { + "name": "punctuation.definition.string.perl" + } + }, + "end": "'", + "name": "string.regexp.format.single_quote.perl", + "patterns": [ + { + "match": "\\\\['\\\\]", + "name": "constant.character.escape.perl" + } + ] + }, + { + "begin": "([^\\s\\w\\[({<;])", + "captures": { + "0": { + "name": "punctuation.definition.string.perl" + } + }, + "end": "\\1", + "name": "string.regexp.format.simple_delimiter.perl", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#variable" + } + ] + }, + { + "match": "\\s+" + } + ] + }, + { + "begin": "\\b(?=s([^\\sa-zA-Z0-9\\[({<]).*\\1([egimosxradlupcn]*)([\\}\\)\\;\\,]|\\s+))", + "comment": "string.regexp.replaceXXX", + "end": "((([egimosxradlupcn]*)))(?=([\\}\\)\\;\\,]|\\s+|\\s*$))", + "endCaptures": { + "1": { + "name": "string.regexp.replace.perl" + }, + "2": { + "name": "punctuation.definition.string.perl" + }, + "3": { + "name": "keyword.control.regexp-option.perl" + } + }, + "patterns": [ + { + "begin": "(s\\s*)([^\\sa-zA-Z0-9\\[({<])", + "captures": { + "0": { + "name": "punctuation.definition.string.perl" + }, + "1": { + "name": "support.function.perl" + } + }, + "end": "(?=\\2)", + "name": "string.regexp.replaceXXX.simple_delimiter.perl", + "patterns": [ + { + "include": "#escaped_char" + } + ] + }, + { + "begin": "'", + "captures": { + "0": { + "name": "punctuation.definition.string.perl" + } + }, + "end": "'", + "name": "string.regexp.replaceXXX.format.single_quote.perl", + "patterns": [ + { + "match": "\\\\['\\\\]", + "name": "constant.character.escape.perl.perl" + } + ] + }, + { + "begin": "([^\\sa-zA-Z0-9\\[({<])", + "captures": { + "0": { + "name": "punctuation.definition.string.perl" + } + }, + "end": "\\1", + "name": "string.regexp.replaceXXX.format.simple_delimiter.perl", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#variable" + } + ] + } + ] + }, + { + "begin": "\\b(?=(?<!\\\\)s\\s*([^\\s\\w\\[({<>]))", + "comment": "string.regexp.replace.extended", + "end": "((([egimosradlupc]*x[egimosradlupc]*)))\\b", + "endCaptures": { + "1": { + "name": "string.regexp.replace.perl" + }, + "2": { + "name": "punctuation.definition.string.perl" + }, + "3": { + "name": "keyword.control.regexp-option.perl" + } + }, + "patterns": [ + { + "begin": "(s)\\s*(.)", + "captures": { + "0": { + "name": "punctuation.definition.string.perl" + }, + "1": { + "name": "support.function.perl" + } + }, + "end": "(?=\\2)", + "name": "string.regexp.replace.extended.simple_delimiter.perl", + "patterns": [ + { + "include": "#escaped_char" + } + ] + }, + { + "begin": "'", + "captures": { + "0": { + "name": "punctuation.definition.string.perl" + } + }, + "end": "'(?=[egimosradlupc]*x[egimosradlupc]*)\\b", + "name": "string.regexp.replace.extended.simple_delimiter.perl", + "patterns": [ + { + "include": "#escaped_char" + } + ] + }, + { + "begin": "(.)", + "captures": { + "0": { + "name": "punctuation.definition.string.perl" + } + }, + "end": "\\1(?=[egimosradlupc]*x[egimosradlupc]*)\\b", + "name": "string.regexp.replace.extended.simple_delimiter.perl", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#variable" + } + ] + } + ] + }, + { + "begin": "(?<=\\(|\\{|~|&|\\||if|unless|^)\\s*((\\/))", + "beginCaptures": { + "1": { + "name": "string.regexp.find.perl" + }, + "2": { + "name": "punctuation.definition.string.perl" + } + }, + "contentName": "string.regexp.find.perl", + "end": "((\\1([egimosxradlupcn]*)))(?=(\\s+\\S|\\s*[;\\,\\#\\{\\}\\)]|\\s*$))", + "endCaptures": { + "1": { + "name": "string.regexp.find.perl" + }, + "2": { + "name": "punctuation.definition.string.perl" + }, + "3": { + "name": "keyword.control.regexp-option.perl" + } + }, + "patterns": [ + { + "comment": "This is to prevent thinks like /foo$/ to treat $/ as a variable", + "match": "\\$(?=\\/)", + "name": "keyword.control.anchor.perl" + }, + { + "include": "#escaped_char" + }, + { + "include": "#variable" + } + ] + }, + { + "captures": { + "1": { + "name": "constant.other.key.perl" + } + }, + "match": "\\b(\\w+)\\s*(?==>)" + }, + { + "match": "(?<={)\\s*\\w+\\s*(?=})", + "name": "constant.other.bareword.perl" + }, + { + "captures": { + "1": { + "name": "keyword.control.perl" + }, + "2": { + "name": "entity.name.type.class.perl" + } + }, + "match": "^\\s*(package)\\s+([^\\s;]+)", + "name": "meta.class.perl" + }, + { + "captures": { + "1": { + "name": "storage.type.sub.perl" + }, + "2": { + "name": "entity.name.function.perl" + }, + "3": { + "name": "storage.type.method.perl" + } + }, + "match": "\\b(sub)(?:\\s+([-a-zA-Z0-9_]+))?\\s*(?:\\([\\$\\@\\*;]*\\))?[^\\w\\{]", + "name": "meta.function.perl" + }, + { + "captures": { + "1": { + "name": "entity.name.function.perl" + }, + "2": { + "name": "punctuation.definition.parameters.perl" + }, + "3": { + "name": "variable.parameter.function.perl" + } + }, + "match": "^\\s*(BEGIN|UNITCHECK|CHECK|INIT|END|DESTROY)\\b", + "name": "meta.function.perl" + }, + { + "begin": "^(?=(\\t| {4}))", + "end": "(?=[^\\t\\s])", + "name": "meta.leading-tabs", + "patterns": [ + { + "captures": { + "1": { + "name": "meta.odd-tab" + }, + "2": { + "name": "meta.even-tab" + } + }, + "match": "(\\t| {4})(\\t| {4})?" + } + ] + }, + { + "captures": { + "1": { + "name": "support.function.perl" + }, + "2": { + "name": "punctuation.definition.string.perl" + }, + "5": { + "name": "punctuation.definition.string.perl" + }, + "8": { + "name": "punctuation.definition.string.perl" + } + }, + "match": "\\b(tr|y)\\s*([^A-Za-z0-9\\s])(.*?)(?<!\\\\)(\\\\{2})*(\\2)(.*?)(?<!\\\\)(\\\\{2})*(\\2)", + "name": "string.regexp.replace.perl" + }, + { + "match": "\\b(__FILE__|__LINE__|__PACKAGE__|__SUB__)\\b", + "name": "constant.language.perl" + }, + { + "begin": "\\b(__DATA__|__END__)\\n?", + "beginCaptures": { + "1": { + "name": "constant.language.perl" + } + }, + "contentName": "comment.block.documentation.perl", + "end": "\\z", + "patterns": [ + { + "include": "#pod" + } + ] + }, + { + "match": "(?<!->)\\b(continue|default|die|do|else|elsif|exit|for|foreach|given|goto|if|last|next|redo|return|select|unless|until|wait|when|while|switch|case|require|use|eval)\\b", + "name": "keyword.control.perl" + }, + { + "match": "\\b(my|our|local)\\b", + "name": "storage.modifier.perl" + }, + { + "match": "(?<!\\w)\\-[rwxoRWXOezsfdlpSbctugkTBMAC]\\b", + "name": "keyword.operator.filetest.perl" + }, + { + "match": "\\b(and|or|xor|as|not)\\b", + "name": "keyword.operator.logical.perl" + }, + { + "match": "(<=>|=>|->)", + "name": "keyword.operator.comparison.perl" + }, + { + "include": "#heredoc" + }, + { + "begin": "\\bqq\\s*([^\\(\\{\\[\\<\\w\\s])", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.perl" + } + }, + "end": "\\1", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.perl" + } + }, + "name": "string.quoted.other.qq.perl", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#variable" + } + ] + }, + { + "begin": "\\bqx\\s*([^'\\(\\{\\[\\<\\w\\s])", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.perl" + } + }, + "end": "\\1", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.perl" + } + }, + "name": "string.interpolated.qx.perl", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#variable" + } + ] + }, + { + "begin": "\\bqx\\s*'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.perl" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.perl" + } + }, + "name": "string.interpolated.qx.single-quote.perl", + "patterns": [ + { + "include": "#escaped_char" + } + ] + }, + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.perl" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.perl" + } + }, + "name": "string.quoted.double.perl", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#variable" + } + ] + }, + { + "begin": "(?<!->)\\bqw?\\s*([^\\(\\{\\[\\<\\w\\s])", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.perl" + } + }, + "end": "\\1", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.perl" + } + }, + "name": "string.quoted.other.q.perl" + }, + { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.perl" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.perl" + } + }, + "name": "string.quoted.single.perl", + "patterns": [ + { + "match": "\\\\['\\\\]", + "name": "constant.character.escape.perl" + } + ] + }, + { + "begin": "`", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.perl" + } + }, + "end": "`", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.perl" + } + }, + "name": "string.interpolated.perl", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#variable" + } + ] + }, + { + "begin": "(?<!->)\\bqq\\s*\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.perl" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.perl" + } + }, + "name": "string.quoted.other.qq-paren.perl", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#nested_parens_interpolated" + }, + { + "include": "#variable" + } + ] + }, + { + "begin": "\\bqq\\s*\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.perl" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.perl" + } + }, + "name": "string.quoted.other.qq-brace.perl", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#nested_braces_interpolated" + }, + { + "include": "#variable" + } + ] + }, + { + "begin": "\\bqq\\s*\\[", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.perl" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.perl" + } + }, + "name": "string.quoted.other.qq-bracket.perl", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#nested_brackets_interpolated" + }, + { + "include": "#variable" + } + ] + }, + { + "begin": "\\bqq\\s*\\<", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.perl" + } + }, + "end": "\\>", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.perl" + } + }, + "name": "string.quoted.other.qq-ltgt.perl", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#nested_ltgt_interpolated" + }, + { + "include": "#variable" + } + ] + }, + { + "begin": "(?<!->)\\bqx\\s*\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.perl" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.perl" + } + }, + "name": "string.interpolated.qx-paren.perl", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#nested_parens_interpolated" + }, + { + "include": "#variable" + } + ] + }, + { + "begin": "\\bqx\\s*\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.perl" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.perl" + } + }, + "name": "string.interpolated.qx-brace.perl", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#nested_braces_interpolated" + }, + { + "include": "#variable" + } + ] + }, + { + "begin": "\\bqx\\s*\\[", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.perl" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.perl" + } + }, + "name": "string.interpolated.qx-bracket.perl", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#nested_brackets_interpolated" + }, + { + "include": "#variable" + } + ] + }, + { + "begin": "\\bqx\\s*\\<", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.perl" + } + }, + "end": "\\>", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.perl" + } + }, + "name": "string.interpolated.qx-ltgt.perl", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#nested_ltgt_interpolated" + }, + { + "include": "#variable" + } + ] + }, + { + "begin": "(?<!->)\\bqw?\\s*\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.perl" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.perl" + } + }, + "name": "string.quoted.other.q-paren.perl", + "patterns": [ + { + "include": "#nested_parens" + } + ] + }, + { + "begin": "\\bqw?\\s*\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.perl" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.perl" + } + }, + "name": "string.quoted.other.q-brace.perl", + "patterns": [ + { + "include": "#nested_braces" + } + ] + }, + { + "begin": "\\bqw?\\s*\\[", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.perl" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.perl" + } + }, + "name": "string.quoted.other.q-bracket.perl", + "patterns": [ + { + "include": "#nested_brackets" + } + ] + }, + { + "begin": "\\bqw?\\s*\\<", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.perl" + } + }, + "end": "\\>", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.perl" + } + }, + "name": "string.quoted.other.q-ltgt.perl", + "patterns": [ + { + "include": "#nested_ltgt" + } + ] + }, + { + "begin": "^__\\w+__", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.perl" + } + }, + "end": "$", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.perl" + } + }, + "name": "string.unquoted.program-block.perl" + }, + { + "begin": "\\b(format)\\s+(\\w+)\\s*=", + "beginCaptures": { + "1": { + "name": "support.function.perl" + }, + "2": { + "name": "entity.name.function.format.perl" + } + }, + "end": "^\\.\\s*$", + "name": "meta.format.perl", + "patterns": [ + { + "include": "#line_comment" + }, + { + "include": "#variable" + } + ] + }, + { + "captures": { + "1": { + "name": "support.function.perl" + }, + "2": { + "name": "entity.name.function.perl" + } + }, + "match": "\\b(x)\\s*(\\d+)\\b" + }, + { + "match": "\\b(ARGV|DATA|ENV|SIG|STDERR|STDIN|STDOUT|atan2|bind|binmode|bless|caller|chdir|chmod|chomp|chop|chown|chr|chroot|close|closedir|cmp|connect|cos|crypt|dbmclose|dbmopen|defined|delete|dump|each|endgrent|endhostent|endnetent|endprotoent|endpwent|endservent|eof|eq|eval|exec|exists|exp|fcntl|fileno|flock|fork|formline|ge|getc|getgrent|getgrgid|getgrnam|gethostbyaddr|gethostbyname|gethostent|getlogin|getnetbyaddr|getnetbyname|getnetent|getpeername|getpgrp|getppid|getpriority|getprotobyname|getprotobynumber|getprotoent|getpwent|getpwnam|getpwuid|getservbyname|getservbyport|getservent|getsockname|getsockopt|glob|gmtime|grep|gt|hex|import|index|int|ioctl|join|keys|kill|lc|lcfirst|le|length|link|listen|local|localtime|log|lstat|lt|m|map|mkdir|msgctl|msgget|msgrcv|msgsnd|ne|no|oct|open|opendir|ord|pack|pipe|pop|pos|print|printf|push|quotemeta|rand|read|readdir|readlink|recv|ref|rename|reset|reverse|rewinddir|rindex|rmdir|s|say|scalar|seek|seekdir|semctl|semget|semop|send|setgrent|sethostent|setnetent|setpgrp|setpriority|setprotoent|setpwent|setservent|setsockopt|shift|shmctl|shmget|shmread|shmwrite|shutdown|sin|sleep|socket|socketpair|sort|splice|split|sprintf|sqrt|srand|stat|study|substr|symlink|syscall|sysopen|sysread|system|syswrite|tell|telldir|tie|tied|time|times|tr|truncate|uc|ucfirst|umask|undef|unlink|unpack|unshift|untie|utime|values|vec|waitpid|wantarray|warn|write|y)\\b", + "name": "support.function.perl" + }, + { + "captures": { + "1": { + "name": "punctuation.section.scope.begin.perl" + }, + "2": { + "name": "punctuation.section.scope.end.perl" + } + }, + "comment": "Match empty brackets for ↩ snippet", + "match": "(\\{)(\\})" + }, + { + "captures": { + "1": { + "name": "punctuation.section.scope.begin.perl" + }, + "2": { + "name": "punctuation.section.scope.end.perl" + } + }, + "comment": "Match empty parenthesis for ↩ snippet", + "match": "(\\()(\\))" + } + ], + "repository": { + "escaped_char": { + "patterns": [ + { + "match": "\\\\\\d+", + "name": "constant.character.escape.perl" + }, + { + "match": "\\\\c[^\\s\\\\]", + "name": "constant.character.escape.perl" + }, + { + "match": "\\\\g(?:\\{(?:\\w*|-\\d+)\\}|\\d+)", + "name": "constant.character.escape.perl" + }, + { + "match": "\\\\k(?:\\{\\w*\\}|<\\w*>|'\\w*')", + "name": "constant.character.escape.perl" + }, + { + "match": "\\\\N\\{[^\\}]*\\}", + "name": "constant.character.escape.perl" + }, + { + "match": "\\\\o\\{\\d*\\}", + "name": "constant.character.escape.perl" + }, + { + "match": "\\\\(?:p|P)(?:\\{\\w*\\}|P)", + "name": "constant.character.escape.perl" + }, + { + "match": "\\\\x(?:[0-9a-zA-Z]{2}|\\{\\w*\\})?", + "name": "constant.character.escape.perl" + }, + { + "match": "\\\\.", + "name": "constant.character.escape.perl" + } + ] + }, + "heredoc": { + "patterns": [ + { + "begin": "((((<<(~)?) *')(HTML)(')))(.*)\\n?", + "beginCaptures": { + "1": { + "name": "string.unquoted.heredoc.raw.perl" + }, + "2": { + "name": "punctuation.definition.string.begin.perl" + }, + "3": { + "name": "punctuation.definition.delimiter.begin.perl" + }, + "7": { + "name": "punctuation.definition.delimiter.end.perl" + }, + "8": { + "patterns": [ + { + "include": "$self" + } + ] + } + }, + "contentName": "string.unquoted.heredoc.raw.perl", + "end": "^((?!\\5)\\s+)?((\\6))$", + "endCaptures": { + "2": { + "name": "string.unquoted.heredoc.raw.perl" + }, + "3": { + "name": "punctuation.definition.string.end.perl" + } + }, + "name": "meta.embedded.block.html", + "patterns": [ + { + "begin": "^", + "end": "\\n", + "name": "text.html.basic", + "patterns": [ + { + "include": "text.html.basic" + } + ] + } + ] + }, + { + "begin": "((((<<(~)?) *')(XML)(')))(.*)\\n?", + "beginCaptures": { + "1": { + "name": "string.unquoted.heredoc.raw.perl" + }, + "2": { + "name": "punctuation.definition.string.begin.perl" + }, + "3": { + "name": "punctuation.definition.delimiter.begin.perl" + }, + "7": { + "name": "punctuation.definition.delimiter.end.perl" + }, + "8": { + "patterns": [ + { + "include": "$self" + } + ] + } + }, + "contentName": "string.unquoted.heredoc.raw.perl", + "end": "^((?!\\5)\\s+)?((\\6))$", + "endCaptures": { + "2": { + "name": "string.unquoted.heredoc.raw.perl" + }, + "3": { + "name": "punctuation.definition.string.end.perl" + } + }, + "name": "meta.embedded.block.xml", + "patterns": [ + { + "begin": "^", + "end": "\\n", + "name": "text.xml", + "patterns": [ + { + "include": "text.xml" + } + ] + } + ] + }, + { + "begin": "((((<<(~)?) *')(CSS)(')))(.*)\\n?", + "beginCaptures": { + "1": { + "name": "string.unquoted.heredoc.raw.perl" + }, + "2": { + "name": "punctuation.definition.string.begin.perl" + }, + "3": { + "name": "punctuation.definition.delimiter.begin.perl" + }, + "7": { + "name": "punctuation.definition.delimiter.end.perl" + }, + "8": { + "patterns": [ + { + "include": "$self" + } + ] + } + }, + "contentName": "string.unquoted.heredoc.raw.perl", + "end": "^((?!\\5)\\s+)?((\\6))$", + "endCaptures": { + "2": { + "name": "string.unquoted.heredoc.raw.perl" + }, + "3": { + "name": "punctuation.definition.string.end.perl" + } + }, + "name": "meta.embedded.block.css", + "patterns": [ + { + "begin": "^", + "end": "\\n", + "name": "source.css", + "patterns": [ + { + "include": "source.css" + } + ] + } + ] + }, + { + "begin": "((((<<(~)?) *')(JAVASCRIPT)(')))(.*)\\n?", + "beginCaptures": { + "1": { + "name": "string.unquoted.heredoc.raw.perl" + }, + "2": { + "name": "punctuation.definition.string.begin.perl" + }, + "3": { + "name": "punctuation.definition.delimiter.begin.perl" + }, + "7": { + "name": "punctuation.definition.delimiter.end.perl" + }, + "8": { + "patterns": [ + { + "include": "$self" + } + ] + } + }, + "contentName": "string.unquoted.heredoc.raw.perl", + "end": "^((?!\\5)\\s+)?((\\6))$", + "endCaptures": { + "2": { + "name": "string.unquoted.heredoc.raw.perl" + }, + "3": { + "name": "punctuation.definition.string.end.perl" + } + }, + "name": "meta.embedded.block.js", + "patterns": [ + { + "begin": "^", + "end": "\\n", + "name": "source.js", + "patterns": [ + { + "include": "source.js" + } + ] + } + ] + }, + { + "begin": "((((<<(~)?) *')(SQL)(')))(.*)\\n?", + "beginCaptures": { + "1": { + "name": "string.unquoted.heredoc.raw.perl" + }, + "2": { + "name": "punctuation.definition.string.begin.perl" + }, + "3": { + "name": "punctuation.definition.delimiter.begin.perl" + }, + "7": { + "name": "punctuation.definition.delimiter.end.perl" + }, + "8": { + "patterns": [ + { + "include": "$self" + } + ] + } + }, + "contentName": "string.unquoted.heredoc.raw.perl", + "end": "^((?!\\5)\\s+)?((\\6))$", + "endCaptures": { + "2": { + "name": "string.unquoted.heredoc.raw.perl" + }, + "3": { + "name": "punctuation.definition.string.end.perl" + } + }, + "name": "meta.embedded.block.sql", + "patterns": [ + { + "begin": "^", + "end": "\\n", + "name": "source.sql", + "patterns": [ + { + "include": "source.sql" + } + ] + } + ] + }, + { + "begin": "((((<<(~)?) *')(POSTSCRIPT)(')))(.*)\\n?", + "beginCaptures": { + "1": { + "name": "string.unquoted.heredoc.raw.perl" + }, + "2": { + "name": "punctuation.definition.string.begin.perl" + }, + "3": { + "name": "punctuation.definition.delimiter.begin.perl" + }, + "7": { + "name": "punctuation.definition.delimiter.end.perl" + }, + "8": { + "patterns": [ + { + "include": "$self" + } + ] + } + }, + "contentName": "string.unquoted.heredoc.raw.perl", + "end": "^((?!\\5)\\s+)?((\\6))$", + "endCaptures": { + "2": { + "name": "string.unquoted.heredoc.raw.perl" + }, + "3": { + "name": "punctuation.definition.string.end.perl" + } + }, + "name": "meta.embedded.block.postscript", + "patterns": [ + { + "begin": "^", + "end": "\\n", + "name": "source.postscript", + "patterns": [ + { + "include": "source.postscript" + } + ] + } + ] + }, + { + "begin": "((((<<(~)?) *')([^']*)(')))(.*)\\n?", + "beginCaptures": { + "1": { + "name": "string.unquoted.heredoc.raw.perl" + }, + "2": { + "name": "punctuation.definition.string.begin.perl" + }, + "3": { + "name": "punctuation.definition.delimiter.begin.perl" + }, + "7": { + "name": "punctuation.definition.delimiter.end.perl" + }, + "8": { + "patterns": [ + { + "include": "$self" + } + ] + } + }, + "contentName": "string.unquoted.heredoc.raw.perl", + "end": "^((?!\\5)\\s+)?((\\6))$", + "endCaptures": { + "2": { + "name": "string.unquoted.heredoc.raw.perl" + }, + "3": { + "name": "punctuation.definition.string.end.perl" + } + } + }, + { + "begin": "((((<<(~)?) *\\\\)((?![=\\d\\$\\( ])[^;,'\"`\\s\\)]*)()))(.*)\\n?", + "beginCaptures": { + "1": { + "name": "string.unquoted.heredoc.raw.perl" + }, + "2": { + "name": "punctuation.definition.string.begin.perl" + }, + "3": { + "name": "punctuation.definition.delimiter.begin.perl" + }, + "7": { + "name": "punctuation.definition.delimiter.end.perl" + }, + "8": { + "patterns": [ + { + "include": "$self" + } + ] + } + }, + "contentName": "string.unquoted.heredoc.raw.perl", + "end": "^((?!\\5)\\s+)?((\\6))$", + "endCaptures": { + "2": { + "name": "string.unquoted.heredoc.raw.perl" + }, + "3": { + "name": "punctuation.definition.string.end.perl" + } + } + }, + { + "begin": "((((<<(~)?) *\")(HTML)(\")))(.*)\\n?", + "beginCaptures": { + "1": { + "name": "string.unquoted.heredoc.interpolated.perl" + }, + "2": { + "name": "punctuation.definition.string.begin.perl" + }, + "3": { + "name": "punctuation.definition.delimiter.begin.perl" + }, + "7": { + "name": "punctuation.definition.delimiter.end.perl" + }, + "8": { + "patterns": [ + { + "include": "$self" + } + ] + } + }, + "contentName": "string.unquoted.heredoc.interpolated.perl", + "end": "^((?!\\5)\\s+)?((\\6))$", + "endCaptures": { + "2": { + "name": "string.unquoted.heredoc.interpolated.perl" + }, + "3": { + "name": "punctuation.definition.string.end.perl" + } + }, + "name": "meta.embedded.block.html", + "patterns": [ + { + "begin": "^", + "end": "\\n", + "name": "text.html.basic", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#variable" + }, + { + "include": "text.html.basic" + } + ] + } + ] + }, + { + "begin": "((((<<(~)?) *\")(XML)(\")))(.*)\\n?", + "beginCaptures": { + "1": { + "name": "string.unquoted.heredoc.interpolated.perl" + }, + "2": { + "name": "punctuation.definition.string.begin.perl" + }, + "3": { + "name": "punctuation.definition.delimiter.begin.perl" + }, + "7": { + "name": "punctuation.definition.delimiter.end.perl" + }, + "8": { + "patterns": [ + { + "include": "$self" + } + ] + } + }, + "contentName": "string.unquoted.heredoc.interpolated.perl", + "end": "^((?!\\5)\\s+)?((\\6))$", + "endCaptures": { + "2": { + "name": "string.unquoted.heredoc.interpolated.perl" + }, + "3": { + "name": "punctuation.definition.string.end.perl" + } + }, + "name": "meta.embedded.block.xml", + "patterns": [ + { + "begin": "^", + "end": "\\n", + "name": "text.xml", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#variable" + }, + { + "include": "text.xml" + } + ] + } + ] + }, + { + "begin": "((((<<(~)?) *\")(CSS)(\")))(.*)\\n?", + "beginCaptures": { + "1": { + "name": "string.unquoted.heredoc.interpolated.perl" + }, + "2": { + "name": "punctuation.definition.string.begin.perl" + }, + "3": { + "name": "punctuation.definition.delimiter.begin.perl" + }, + "7": { + "name": "punctuation.definition.delimiter.end.perl" + }, + "8": { + "patterns": [ + { + "include": "$self" + } + ] + } + }, + "contentName": "string.unquoted.heredoc.interpolated.perl", + "end": "^((?!\\5)\\s+)?((\\6))$", + "endCaptures": { + "2": { + "name": "string.unquoted.heredoc.interpolated.perl" + }, + "3": { + "name": "punctuation.definition.string.end.perl" + } + }, + "name": "meta.embedded.block.css", + "patterns": [ + { + "begin": "^", + "end": "\\n", + "name": "source.css", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#variable" + }, + { + "include": "source.css" + } + ] + } + ] + }, + { + "begin": "((((<<(~)?) *\")(JAVASCRIPT)(\")))(.*)\\n?", + "beginCaptures": { + "1": { + "name": "string.unquoted.heredoc.interpolated.perl" + }, + "2": { + "name": "punctuation.definition.string.begin.perl" + }, + "3": { + "name": "punctuation.definition.delimiter.begin.perl" + }, + "7": { + "name": "punctuation.definition.delimiter.end.perl" + }, + "8": { + "patterns": [ + { + "include": "$self" + } + ] + } + }, + "contentName": "string.unquoted.heredoc.interpolated.perl", + "end": "^((?!\\5)\\s+)?((\\6))$", + "endCaptures": { + "2": { + "name": "string.unquoted.heredoc.interpolated.perl" + }, + "3": { + "name": "punctuation.definition.string.end.perl" + } + }, + "name": "meta.embedded.block.js", + "patterns": [ + { + "begin": "^", + "end": "\\n", + "name": "source.js", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#variable" + }, + { + "include": "source.js" + } + ] + } + ] + }, + { + "begin": "((((<<(~)?) *\")(SQL)(\")))(.*)\\n?", + "beginCaptures": { + "1": { + "name": "string.unquoted.heredoc.interpolated.perl" + }, + "2": { + "name": "punctuation.definition.string.begin.perl" + }, + "3": { + "name": "punctuation.definition.delimiter.begin.perl" + }, + "7": { + "name": "punctuation.definition.delimiter.end.perl" + }, + "8": { + "patterns": [ + { + "include": "$self" + } + ] + } + }, + "contentName": "string.unquoted.heredoc.interpolated.perl", + "end": "^((?!\\5)\\s+)?((\\6))$", + "endCaptures": { + "2": { + "name": "string.unquoted.heredoc.interpolated.perl" + }, + "3": { + "name": "punctuation.definition.string.end.perl" + } + }, + "name": "meta.embedded.block.sql", + "patterns": [ + { + "begin": "^", + "end": "\\n", + "name": "source.sql", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#variable" + }, + { + "include": "source.sql" + } + ] + } + ] + }, + { + "begin": "((((<<(~)?) *\")(POSTSCRIPT)(\")))(.*)\\n?", + "beginCaptures": { + "1": { + "name": "string.unquoted.heredoc.interpolated.perl" + }, + "2": { + "name": "punctuation.definition.string.begin.perl" + }, + "3": { + "name": "punctuation.definition.delimiter.begin.perl" + }, + "7": { + "name": "punctuation.definition.delimiter.end.perl" + }, + "8": { + "patterns": [ + { + "include": "$self" + } + ] + } + }, + "contentName": "string.unquoted.heredoc.interpolated.perl", + "end": "^((?!\\5)\\s+)?((\\6))$", + "endCaptures": { + "2": { + "name": "string.unquoted.heredoc.interpolated.perl" + }, + "3": { + "name": "punctuation.definition.string.end.perl" + } + }, + "name": "meta.embedded.block.postscript", + "patterns": [ + { + "begin": "^", + "end": "\\n", + "name": "source.postscript", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#variable" + }, + { + "include": "source.postscript" + } + ] + } + ] + }, + { + "begin": "((((<<(~)?) *\")([^\"]*)(\")))(.*)\\n?", + "beginCaptures": { + "1": { + "name": "string.unquoted.heredoc.interpolated.perl" + }, + "2": { + "name": "punctuation.definition.string.begin.perl" + }, + "3": { + "name": "punctuation.definition.delimiter.begin.perl" + }, + "7": { + "name": "punctuation.definition.delimiter.end.perl" + }, + "8": { + "patterns": [ + { + "include": "$self" + } + ] + } + }, + "contentName": "string.unquoted.heredoc.interpolated.perl", + "end": "^((?!\\5)\\s+)?((\\6))$", + "endCaptures": { + "2": { + "name": "string.unquoted.heredoc.interpolated.perl" + }, + "3": { + "name": "punctuation.definition.string.end.perl" + } + }, + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#variable" + } + ] + }, + { + "begin": "((((<<(~)?) *)(HTML)()))(.*)\\n?", + "beginCaptures": { + "1": { + "name": "string.unquoted.heredoc.interpolated.perl" + }, + "2": { + "name": "punctuation.definition.string.begin.perl" + }, + "3": { + "name": "punctuation.definition.delimiter.begin.perl" + }, + "7": { + "name": "punctuation.definition.delimiter.end.perl" + }, + "8": { + "patterns": [ + { + "include": "$self" + } + ] + } + }, + "contentName": "string.unquoted.heredoc.interpolated.perl", + "end": "^((?!\\5)\\s+)?((\\6))$", + "endCaptures": { + "2": { + "name": "string.unquoted.heredoc.interpolated.perl" + }, + "3": { + "name": "punctuation.definition.string.end.perl" + } + }, + "name": "meta.embedded.block.html", + "patterns": [ + { + "begin": "^", + "end": "\\n", + "name": "text.html.basic", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#variable" + }, + { + "include": "text.html.basic" + } + ] + } + ] + }, + { + "begin": "((((<<(~)?) *)(XML)()))(.*)\\n?", + "beginCaptures": { + "1": { + "name": "string.unquoted.heredoc.interpolated.perl" + }, + "2": { + "name": "punctuation.definition.string.begin.perl" + }, + "3": { + "name": "punctuation.definition.delimiter.begin.perl" + }, + "7": { + "name": "punctuation.definition.delimiter.end.perl" + }, + "8": { + "patterns": [ + { + "include": "$self" + } + ] + } + }, + "contentName": "string.unquoted.heredoc.interpolated.perl", + "end": "^((?!\\5)\\s+)?((\\6))$", + "endCaptures": { + "2": { + "name": "string.unquoted.heredoc.interpolated.perl" + }, + "3": { + "name": "punctuation.definition.string.end.perl" + } + }, + "name": "meta.embedded.block.xml", + "patterns": [ + { + "begin": "^", + "end": "\\n", + "name": "text.xml", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#variable" + }, + { + "include": "text.xml" + } + ] + } + ] + }, + { + "begin": "((((<<(~)?) *)(CSS)()))(.*)\\n?", + "beginCaptures": { + "1": { + "name": "string.unquoted.heredoc.interpolated.perl" + }, + "2": { + "name": "punctuation.definition.string.begin.perl" + }, + "3": { + "name": "punctuation.definition.delimiter.begin.perl" + }, + "7": { + "name": "punctuation.definition.delimiter.end.perl" + }, + "8": { + "patterns": [ + { + "include": "$self" + } + ] + } + }, + "contentName": "string.unquoted.heredoc.interpolated.perl", + "end": "^((?!\\5)\\s+)?((\\6))$", + "endCaptures": { + "2": { + "name": "string.unquoted.heredoc.interpolated.perl" + }, + "3": { + "name": "punctuation.definition.string.end.perl" + } + }, + "name": "meta.embedded.block.css", + "patterns": [ + { + "begin": "^", + "end": "\\n", + "name": "source.css", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#variable" + }, + { + "include": "source.css" + } + ] + } + ] + }, + { + "begin": "((((<<(~)?) *)(JAVASCRIPT)()))(.*)\\n?", + "beginCaptures": { + "1": { + "name": "string.unquoted.heredoc.interpolated.perl" + }, + "2": { + "name": "punctuation.definition.string.begin.perl" + }, + "3": { + "name": "punctuation.definition.delimiter.begin.perl" + }, + "7": { + "name": "punctuation.definition.delimiter.end.perl" + }, + "8": { + "patterns": [ + { + "include": "$self" + } + ] + } + }, + "contentName": "string.unquoted.heredoc.interpolated.perl", + "end": "^((?!\\5)\\s+)?((\\6))$", + "endCaptures": { + "2": { + "name": "string.unquoted.heredoc.interpolated.perl" + }, + "3": { + "name": "punctuation.definition.string.end.perl" + } + }, + "name": "meta.embedded.block.js", + "patterns": [ + { + "begin": "^", + "end": "\\n", + "name": "source.js", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#variable" + }, + { + "include": "source.js" + } + ] + } + ] + }, + { + "begin": "((((<<(~)?) *)(SQL)()))(.*)\\n?", + "beginCaptures": { + "1": { + "name": "string.unquoted.heredoc.interpolated.perl" + }, + "2": { + "name": "punctuation.definition.string.begin.perl" + }, + "3": { + "name": "punctuation.definition.delimiter.begin.perl" + }, + "7": { + "name": "punctuation.definition.delimiter.end.perl" + }, + "8": { + "patterns": [ + { + "include": "$self" + } + ] + } + }, + "contentName": "string.unquoted.heredoc.interpolated.perl", + "end": "^((?!\\5)\\s+)?((\\6))$", + "endCaptures": { + "2": { + "name": "string.unquoted.heredoc.interpolated.perl" + }, + "3": { + "name": "punctuation.definition.string.end.perl" + } + }, + "name": "meta.embedded.block.sql", + "patterns": [ + { + "begin": "^", + "end": "\\n", + "name": "source.sql", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#variable" + }, + { + "include": "source.sql" + } + ] + } + ] + }, + { + "begin": "((((<<(~)?) *)(POSTSCRIPT)()))(.*)\\n?", + "beginCaptures": { + "1": { + "name": "string.unquoted.heredoc.interpolated.perl" + }, + "2": { + "name": "punctuation.definition.string.begin.perl" + }, + "3": { + "name": "punctuation.definition.delimiter.begin.perl" + }, + "7": { + "name": "punctuation.definition.delimiter.end.perl" + }, + "8": { + "patterns": [ + { + "include": "$self" + } + ] + } + }, + "contentName": "string.unquoted.heredoc.interpolated.perl", + "end": "^((?!\\5)\\s+)?((\\6))$", + "endCaptures": { + "2": { + "name": "string.unquoted.heredoc.interpolated.perl" + }, + "3": { + "name": "punctuation.definition.string.end.perl" + } + }, + "name": "meta.embedded.block.postscript", + "patterns": [ + { + "begin": "^", + "end": "\\n", + "name": "source.postscript", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#variable" + }, + { + "include": "source.postscript" + } + ] + } + ] + }, + { + "begin": "((((<<(~)?) *)((?![=\\d\\$\\( ])[^;,'\"`\\s\\)]*)()))(.*)\\n?", + "beginCaptures": { + "1": { + "name": "string.unquoted.heredoc.interpolated.perl" + }, + "2": { + "name": "punctuation.definition.string.begin.perl" + }, + "3": { + "name": "punctuation.definition.delimiter.begin.perl" + }, + "7": { + "name": "punctuation.definition.delimiter.end.perl" + }, + "8": { + "patterns": [ + { + "include": "$self" + } + ] + } + }, + "contentName": "string.unquoted.heredoc.interpolated.perl", + "end": "^((?!\\5)\\s+)?((\\6))$", + "endCaptures": { + "2": { + "name": "string.unquoted.heredoc.interpolated.perl" + }, + "3": { + "name": "punctuation.definition.string.end.perl" + } + }, + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#variable" + } + ] + }, + { + "begin": "((((<<(~)?) *`)([^`]*)(`)))(.*)\\n?", + "beginCaptures": { + "1": { + "name": "string.unquoted.heredoc.interpolated.perl" + }, + "2": { + "name": "punctuation.definition.string.begin.perl" + }, + "3": { + "name": "punctuation.definition.delimiter.begin.perl" + }, + "7": { + "name": "punctuation.definition.delimiter.end.perl" + }, + "8": { + "patterns": [ + { + "include": "$self" + } + ] + } + }, + "contentName": "string.unquoted.heredoc.shell.perl", + "end": "^((?!\\5)\\s+)?((\\6))$", + "endCaptures": { + "2": { + "name": "string.unquoted.heredoc.interpolated.perl" + }, + "3": { + "name": "punctuation.definition.string.end.perl" + } + }, + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#variable" + } + ] + } + ] + }, + "line_comment": { + "patterns": [ + { + "begin": "(^[ \\t]+)?(?=#)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.perl" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": "#", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.perl" + } + }, + "end": "\\n", + "name": "comment.line.number-sign.perl" + } + ] + } + ] + }, + "nested_braces": { + "begin": "\\{", + "captures": { + "1": { + "name": "punctuation.section.scope.perl" + } + }, + "end": "\\}", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#nested_braces" + } + ] + }, + "nested_braces_interpolated": { + "begin": "\\{", + "captures": { + "1": { + "name": "punctuation.section.scope.perl" + } + }, + "end": "\\}", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#variable" + }, + { + "include": "#nested_braces_interpolated" + } + ] + }, + "nested_brackets": { + "begin": "\\[", + "captures": { + "1": { + "name": "punctuation.section.scope.perl" + } + }, + "end": "\\]", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#nested_brackets" + } + ] + }, + "nested_brackets_interpolated": { + "begin": "\\[", + "captures": { + "1": { + "name": "punctuation.section.scope.perl" + } + }, + "end": "\\]", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#variable" + }, + { + "include": "#nested_brackets_interpolated" + } + ] + }, + "nested_ltgt": { + "begin": "<", + "captures": { + "1": { + "name": "punctuation.section.scope.perl" + } + }, + "end": ">", + "patterns": [ + { + "include": "#nested_ltgt" + } + ] + }, + "nested_ltgt_interpolated": { + "begin": "<", + "captures": { + "1": { + "name": "punctuation.section.scope.perl" + } + }, + "end": ">", + "patterns": [ + { + "include": "#variable" + }, + { + "include": "#nested_ltgt_interpolated" + } + ] + }, + "nested_parens": { + "begin": "\\(", + "captures": { + "1": { + "name": "punctuation.section.scope.perl" + } + }, + "end": "\\)", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#nested_parens" + } + ] + }, + "nested_parens_interpolated": { + "begin": "\\(", + "captures": { + "1": { + "name": "punctuation.section.scope.perl" + } + }, + "end": "\\)", + "patterns": [ + { + "comment": "This is to prevent thinks like qr/foo$/ to treat $/ as a variable", + "match": "\\$(?=[^\\s\\w'\\{\\[\\(\\<])", + "name": "keyword.control.anchor.perl" + }, + { + "include": "#escaped_char" + }, + { + "include": "#variable" + }, + { + "include": "#nested_parens_interpolated" + } + ] + }, + "pod": { + "patterns": [ + { + "match": "^=(pod|back|cut)\\b", + "name": "storage.type.class.pod.perl" + }, + { + "begin": "^(=begin)\\s+(html)\\s*$", + "beginCaptures": { + "1": { + "name": "storage.type.class.pod.perl" + }, + "2": { + "name": "variable.other.pod.perl" + } + }, + "contentName": "text.embedded.html.basic", + "end": "^(=end)\\s+(html)|^(?==cut)", + "endCaptures": { + "1": { + "name": "storage.type.class.pod.perl" + }, + "2": { + "name": "variable.other.pod.perl" + } + }, + "name": "meta.embedded.pod.perl", + "patterns": [ + { + "include": "text.html.basic" + } + ] + }, + { + "captures": { + "1": { + "name": "storage.type.class.pod.perl" + }, + "2": { + "name": "variable.other.pod.perl", + "patterns": [ + { + "include": "#pod-formatting" + } + ] + } + }, + "match": "^(=(?:head[1-4]|item|over|encoding|begin|end|for))\\b\\s*(.*)" + }, + { + "include": "#pod-formatting" + } + ] + }, + "pod-formatting": { + "patterns": [ + { + "captures": { + "1": { + "name": "markup.italic.pod.perl" + }, + "2": { + "name": "markup.italic.pod.perl" + } + }, + "match": "I(?:<([^<>]+)>|<+(\\s+(?:(?<!\\s)>|[^>])+\\s+)>+)", + "name": "entity.name.type.instance.pod.perl" + }, + { + "captures": { + "1": { + "name": "markup.bold.pod.perl" + }, + "2": { + "name": "markup.bold.pod.perl" + } + }, + "match": "B(?:<([^<>]+)>|<+(\\s+(?:(?<!\\s)>|[^>])+\\s+)>+)", + "name": "entity.name.type.instance.pod.perl" + }, + { + "captures": { + "1": { + "name": "markup.raw.pod.perl" + }, + "2": { + "name": "markup.raw.pod.perl" + } + }, + "match": "C(?:<([^<>]+)>|<+(\\\\s+(?:(?<!\\\\s)>|[^>])+\\\\s+)>+)", + "name": "entity.name.type.instance.pod.perl" + }, + { + "captures": { + "1": { + "name": "markup.underline.link.hyperlink.pod.perl" + } + }, + "match": "L<([^>]+)>", + "name": "entity.name.type.instance.pod.perl" + }, + { + "match": "[EFSXZ]<[^>]*>", + "name": "entity.name.type.instance.pod.perl" + } + ] + }, + "variable": { + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.variable.perl" + } + }, + "match": "(\\$)&(?![A-Za-z0-9_])", + "name": "variable.other.regexp.match.perl" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.variable.perl" + } + }, + "match": "(\\$)`(?![A-Za-z0-9_])", + "name": "variable.other.regexp.pre-match.perl" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.variable.perl" + } + }, + "match": "(\\$)'(?![A-Za-z0-9_])", + "name": "variable.other.regexp.post-match.perl" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.variable.perl" + } + }, + "match": "(\\$)\\+(?![A-Za-z0-9_])", + "name": "variable.other.regexp.last-paren-match.perl" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.variable.perl" + } + }, + "match": "(\\$)\"(?![A-Za-z0-9_])", + "name": "variable.other.readwrite.list-separator.perl" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.variable.perl" + } + }, + "match": "(\\$)0(?![A-Za-z0-9_])", + "name": "variable.other.predefined.program-name.perl" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.variable.perl" + } + }, + "match": "(\\$)[_ab\\*\\.\\/\\|,\\\\;#%=\\-~^:?!\\$<>\\(\\)\\[\\]@](?![A-Za-z0-9_])", + "name": "variable.other.predefined.perl" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.variable.perl" + } + }, + "match": "(\\$)[0-9]+(?![A-Za-z0-9_])", + "name": "variable.other.subpattern.perl" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.variable.perl" + } + }, + "match": "([\\$\\@\\%](#)?)([a-zA-Zx7f-xff\\$]|::)([a-zA-Z0-9_x7f-xff\\$]|::)*\\b", + "name": "variable.other.readwrite.global.perl" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.variable.perl" + }, + "2": { + "name": "punctuation.definition.variable.perl" + } + }, + "match": "(\\$\\{)(?:[a-zA-Zx7f-xff\\$]|::)(?:[a-zA-Z0-9_x7f-xff\\$]|::)*(\\})", + "name": "variable.other.readwrite.global.perl" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.variable.perl" + } + }, + "match": "([\\$\\@\\%](#)?)[0-9_]\\b", + "name": "variable.other.readwrite.global.special.perl" + } + ] + } + } +} diff --git a/docs/shiki/languages/php-html.tmLanguage.json b/docs/shiki/languages/php-html.tmLanguage.json new file mode 100644 index 00000000..0cea77f6 --- /dev/null +++ b/docs/shiki/languages/php-html.tmLanguage.json @@ -0,0 +1,98 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/KapitanOczywisty/language-php/blob/master/grammars/html.cson", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/KapitanOczywisty/language-php/commit/ff64523c94c014d68f5dec189b05557649c5872a", + "name": "php-html", + "scopeName": "text.html.php", + "injections": { + "L:meta.embedded.php.blade": { + "patterns": [ + { + "include": "text.html.basic" + }, + { + "include": "text.html.php.blade#blade" + } + ] + }, + "text.html.php - (meta.embedded | meta.tag), L:((text.html.php meta.tag) - (meta.embedded.block.php | meta.embedded.line.php)), L:(source.js - (meta.embedded.block.php | meta.embedded.line.php)), L:(source.css - (meta.embedded.block.php | meta.embedded.line.php))": { + "patterns": [ + { + "include": "#php-tag" + } + ] + } + }, + "patterns": [ + { + "begin": "\\A#!", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.php" + } + }, + "end": "$", + "name": "comment.line.shebang.php" + }, + { + "include": "text.html.derivative" + } + ], + "repository": { + "php-tag": { + "patterns": [ + { + "begin": "<\\?(?i:php|=)?(?![^?]*\\?>)", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + } + }, + "end": "(\\?)>", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "source.php" + } + }, + "name": "meta.embedded.block.php", + "contentName": "source.php", + "patterns": [ + { + "include": "source.php" + } + ] + }, + { + "begin": "<\\?(?i:php|=)?", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + } + }, + "end": "(\\?)>", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "source.php" + } + }, + "name": "meta.embedded.line.php", + "contentName": "source.php", + "patterns": [ + { + "include": "source.php" + } + ] + } + ] + } + } +} diff --git a/docs/shiki/languages/php.tmLanguage.json b/docs/shiki/languages/php.tmLanguage.json new file mode 100644 index 00000000..7dc24a39 --- /dev/null +++ b/docs/shiki/languages/php.tmLanguage.json @@ -0,0 +1,4030 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/KapitanOczywisty/language-php/blob/master/grammars/php.cson", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/KapitanOczywisty/language-php/commit/5e8f000cb5a20f44f7a7a89d07ad0774031c53f3", + "scopeName": "source.php", + "patterns": [ + { + "include": "#attribute" + }, + { + "include": "#comments" + }, + { + "match": "(?i)(?:^|(?<=<\\?php))\\s*(namespace)\\s+([a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)(?=\\s*;)", + "name": "meta.namespace.php", + "captures": { + "1": { + "name": "keyword.other.namespace.php" + }, + "2": { + "name": "entity.name.type.namespace.php", + "patterns": [ + { + "match": "\\\\", + "name": "punctuation.separator.inheritance.php" + } + ] + } + } + }, + { + "begin": "(?i)(?:^|(?<=<\\?php))\\s*(namespace)\\s+", + "beginCaptures": { + "1": { + "name": "keyword.other.namespace.php" + } + }, + "end": "(?<=})|(?=\\?>)", + "name": "meta.namespace.php", + "patterns": [ + { + "include": "#comments" + }, + { + "match": "(?i)[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+", + "name": "entity.name.type.namespace.php", + "captures": { + "0": { + "patterns": [ + { + "match": "\\\\", + "name": "punctuation.separator.inheritance.php" + } + ] + } + } + }, + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.namespace.begin.bracket.curly.php" + } + }, + "end": "}|(?=\\?>)", + "endCaptures": { + "0": { + "name": "punctuation.definition.namespace.end.bracket.curly.php" + } + }, + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "match": "[^\\s]+", + "name": "invalid.illegal.identifier.php" + } + ] + }, + { + "match": "\\s+(?=use\\b)" + }, + { + "begin": "(?i)\\buse\\b", + "beginCaptures": { + "0": { + "name": "keyword.other.use.php" + } + }, + "end": "(?<=})|(?=;)|(?=\\?>)", + "name": "meta.use.php", + "patterns": [ + { + "match": "\\b(const|function)\\b", + "name": "storage.type.${1:/downcase}.php" + }, + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.use.begin.bracket.curly.php" + } + }, + "end": "}", + "endCaptures": { + "0": { + "name": "punctuation.definition.use.end.bracket.curly.php" + } + }, + "patterns": [ + { + "include": "#scope-resolution" + }, + { + "match": "(?xi)\n\\b(as)\n\\s+(final|abstract|public|private|protected|static)\n\\s+([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)", + "captures": { + "1": { + "name": "keyword.other.use-as.php" + }, + "2": { + "name": "storage.modifier.php" + }, + "3": { + "name": "entity.other.alias.php" + } + } + }, + { + "match": "(?xi)\n\\b(as)\n\\s+([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)", + "captures": { + "1": { + "name": "keyword.other.use-as.php" + }, + "2": { + "patterns": [ + { + "match": "^(?:final|abstract|public|private|protected|static)$", + "name": "storage.modifier.php" + }, + { + "match": ".+", + "name": "entity.other.alias.php" + } + ] + } + } + }, + { + "match": "(?i)\\b(insteadof)\\s+([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)", + "captures": { + "1": { + "name": "keyword.other.use-insteadof.php" + }, + "2": { + "name": "support.class.php" + } + } + }, + { + "match": ";", + "name": "punctuation.terminator.expression.php" + }, + { + "include": "#use-inner" + } + ] + }, + { + "include": "#use-inner" + } + ] + }, + { + "begin": "(?ix)\n\\b(trait)\\s+([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)", + "beginCaptures": { + "1": { + "name": "storage.type.trait.php" + }, + "2": { + "name": "entity.name.type.trait.php" + } + }, + "end": "}|(?=\\?>)", + "endCaptures": { + "0": { + "name": "punctuation.definition.trait.end.bracket.curly.php" + } + }, + "name": "meta.trait.php", + "patterns": [ + { + "include": "#comments" + }, + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.trait.begin.bracket.curly.php" + } + }, + "end": "(?=}|\\?>)", + "contentName": "meta.trait.body.php", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + { + "begin": "(?ix)\n\\b(interface)\\s+([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)", + "beginCaptures": { + "1": { + "name": "storage.type.interface.php" + }, + "2": { + "name": "entity.name.type.interface.php" + } + }, + "end": "}|(?=\\?>)", + "endCaptures": { + "0": { + "name": "punctuation.definition.interface.end.bracket.curly.php" + } + }, + "name": "meta.interface.php", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#interface-extends" + }, + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.interface.begin.bracket.curly.php" + } + }, + "end": "(?=}|\\?>)", + "contentName": "meta.interface.body.php", + "patterns": [ + { + "include": "#class-constant" + }, + { + "include": "$self" + } + ] + } + ] + }, + { + "begin": "(?ix)\n\\b(enum)\\s+([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)\n(?: \\s* (:) \\s* (int | string) \\b )?", + "beginCaptures": { + "1": { + "name": "storage.type.enum.php" + }, + "2": { + "name": "entity.name.type.enum.php" + }, + "3": { + "name": "keyword.operator.return-value.php" + }, + "4": { + "name": "keyword.other.type.php" + } + }, + "end": "}|(?=\\?>)", + "endCaptures": { + "0": { + "name": "punctuation.definition.enum.end.bracket.curly.php" + } + }, + "name": "meta.enum.php", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#class-implements" + }, + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.enum.begin.bracket.curly.php" + } + }, + "end": "(?=}|\\?>)", + "contentName": "meta.enum.body.php", + "patterns": [ + { + "match": "(?i)\\b(case)\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)", + "captures": { + "1": { + "name": "storage.modifier.php" + }, + "2": { + "name": "constant.enum.php" + } + } + }, + { + "include": "#class-constant" + }, + { + "include": "$self" + } + ] + } + ] + }, + { + "begin": "(?ix)\n(?:\n \\b((?:(?:final|abstract|readonly)\\s+)*)(class)\\s+([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)\n |\\b(new)\\b\\s*(\\#\\[.*\\])?\\s*(?:(readonly)\\s+)?\\b(class)\\b # anonymous class\n)", + "beginCaptures": { + "1": { + "patterns": [ + { + "match": "final|abstract", + "name": "storage.modifier.${0:/downcase}.php" + }, + { + "match": "readonly", + "name": "storage.modifier.php" + } + ] + }, + "2": { + "name": "storage.type.class.php" + }, + "3": { + "name": "entity.name.type.class.php" + }, + "4": { + "name": "keyword.other.new.php" + }, + "5": { + "patterns": [ + { + "include": "#attribute" + } + ] + }, + "6": { + "name": "storage.modifier.php" + }, + "7": { + "name": "storage.type.class.php" + } + }, + "end": "}|(?=\\?>)", + "endCaptures": { + "0": { + "name": "punctuation.definition.class.end.bracket.curly.php" + } + }, + "name": "meta.class.php", + "patterns": [ + { + "begin": "(?<=class)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "punctuation.definition.arguments.begin.bracket.round.php" + } + }, + "end": "\\)|(?=\\?>)", + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.end.bracket.round.php" + } + }, + "name": "meta.function-call.php", + "patterns": [ + { + "include": "#named-arguments" + }, + { + "include": "$self" + } + ] + }, + { + "include": "#comments" + }, + { + "include": "#class-extends" + }, + { + "include": "#class-implements" + }, + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.class.begin.bracket.curly.php" + } + }, + "end": "(?=}|\\?>)", + "contentName": "meta.class.body.php", + "patterns": [ + { + "include": "#class-constant" + }, + { + "include": "$self" + } + ] + } + ] + }, + { + "include": "#match_statement" + }, + { + "include": "#switch_statement" + }, + { + "match": "\\s*\\b(yield\\s+from)\\b", + "captures": { + "1": { + "name": "keyword.control.yield-from.php" + } + } + }, + { + "match": "(?x)\n\\b(\n break|case|continue|declare|default|die|do|\n else(if)?|end(declare|for(each)?|if|switch|while)|exit|\n for(each)?|if|return|switch|use|while|yield\n)\\b", + "captures": { + "1": { + "name": "keyword.control.${1:/downcase}.php" + } + } + }, + { + "begin": "(?i)\\b((?:require|include)(?:_once)?)(\\s+|(?=\\())", + "beginCaptures": { + "1": { + "name": "keyword.control.import.include.php" + } + }, + "end": "(?=\\s|;|$|\\?>)", + "name": "meta.include.php", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "begin": "\\b(catch)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "keyword.control.exception.catch.php" + }, + "2": { + "name": "punctuation.definition.parameters.begin.bracket.round.php" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.parameters.end.bracket.round.php" + } + }, + "name": "meta.catch.php", + "patterns": [ + { + "match": "(?xi)\n([a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ (?: \\s*\\|\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)*) # union or single exception class\n\\s*\n((\\$+)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)? # Variable", + "captures": { + "1": { + "patterns": [ + { + "match": "\\|", + "name": "punctuation.separator.delimiter.php" + }, + { + "begin": "(?i)(?=[\\\\a-z_\\x{7f}-\\x{10ffff}])", + "end": "(?xi)\n( [a-z_\\x{7f}-\\x{10ffff}] [a-z0-9_\\x{7f}-\\x{10ffff}]* )\n(?![a-z0-9_\\x{7f}-\\x{10ffff}\\\\])", + "endCaptures": { + "1": { + "name": "support.class.exception.php" + } + }, + "patterns": [ + { + "include": "#namespace" + } + ] + } + ] + }, + "2": { + "name": "variable.other.php" + }, + "3": { + "name": "punctuation.definition.variable.php" + } + } + } + ] + }, + { + "match": "\\b(catch|try|throw|exception|finally)\\b", + "name": "keyword.control.exception.php" + }, + { + "begin": "(?i)\\b(function)\\s*(?=&?\\s*\\()", + "beginCaptures": { + "1": { + "name": "storage.type.function.php" + } + }, + "end": "(?=\\s*{)", + "name": "meta.function.closure.php", + "patterns": [ + { + "include": "#comments" + }, + { + "begin": "(&)?\\s*(\\()", + "beginCaptures": { + "1": { + "name": "storage.modifier.reference.php" + }, + "2": { + "name": "punctuation.definition.parameters.begin.bracket.round.php" + } + }, + "contentName": "meta.function.parameters.php", + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.parameters.end.bracket.round.php" + } + }, + "patterns": [ + { + "include": "#function-parameters" + } + ] + }, + { + "begin": "(?i)(use)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "keyword.other.function.use.php" + }, + "2": { + "name": "punctuation.definition.parameters.begin.bracket.round.php" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.parameters.end.bracket.round.php" + } + }, + "name": "meta.function.closure.use.php", + "patterns": [ + { + "match": ",", + "name": "punctuation.separator.delimiter.php" + }, + { + "captures": { + "1": { + "name": "variable.other.php" + }, + "2": { + "name": "storage.modifier.reference.php" + }, + "3": { + "name": "punctuation.definition.variable.php" + } + }, + "match": "(?i)((?:(&)\\s*)?(\\$+)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)\\s*(?=,|\\))" + } + ] + }, + { + "match": "(?xi)\n(:)\\s*\n(\n # nullable type\n (?:\\?\\s*)? [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ |\n # union, intersection or DNF type\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n (?: \\s*[|&]\\s*\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n )+\n)\n(?=\\s*(?:{|/[/*]|\\#|$))", + "captures": { + "1": { + "name": "keyword.operator.return-value.php" + }, + "2": { + "patterns": [ + { + "include": "#php-types" + } + ] + } + } + } + ] + }, + { + "begin": "(?i)\\b(fn)\\s*(?=&?\\s*\\()", + "beginCaptures": { + "1": { + "name": "storage.type.function.php" + } + }, + "end": "=>", + "endCaptures": { + "0": { + "name": "punctuation.definition.arrow.php" + } + }, + "name": "meta.function.closure.php", + "patterns": [ + { + "begin": "(?:(&)\\s*)?(\\()", + "beginCaptures": { + "1": { + "name": "storage.modifier.reference.php" + }, + "2": { + "name": "punctuation.definition.parameters.begin.bracket.round.php" + } + }, + "contentName": "meta.function.parameters.php", + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.parameters.end.bracket.round.php" + } + }, + "patterns": [ + { + "include": "#function-parameters" + } + ] + }, + { + "match": "(?xi)\n(:)\\s*\n(\n # nullable type\n (?:\\?\\s*)? [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ |\n # union, intersection or DNF type\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n (?: \\s*[|&]\\s*\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n )+\n)\n(?=\\s*(?:=>|/[/*]|\\#|$))", + "captures": { + "1": { + "name": "keyword.operator.return-value.php" + }, + "2": { + "patterns": [ + { + "include": "#php-types" + } + ] + } + } + } + ] + }, + { + "begin": "(?x)\n((?:(?:final|abstract|public|private|protected)\\s+)*)\n(function)\\s+(__construct)\n\\s*(\\()", + "beginCaptures": { + "1": { + "patterns": [ + { + "match": "final|abstract|public|private|protected", + "name": "storage.modifier.php" + } + ] + }, + "2": { + "name": "storage.type.function.php" + }, + "3": { + "name": "support.function.constructor.php" + }, + "4": { + "name": "punctuation.definition.parameters.begin.bracket.round.php" + } + }, + "contentName": "meta.function.parameters.php", + "end": "(?xi)\n(\\)) \\s* ( : \\s*\n (?:\\?\\s*)? (?!\\s) [a-z0-9_\\x{7f}-\\x{10ffff}\\\\\\s\\|&()]+ (?<!\\s)\n)?\n(?=\\s*(?:{|/[/*]|\\#|$|;))", + "endCaptures": { + "1": { + "name": "punctuation.definition.parameters.end.bracket.round.php" + }, + "2": { + "name": "invalid.illegal.return-type.php" + } + }, + "name": "meta.function.php", + "patterns": [ + { + "include": "#comments" + }, + { + "match": ",", + "name": "punctuation.separator.delimiter.php" + }, + { + "begin": "(?xi)\n((?:(?:public|private|protected|readonly)(?:\\s+|(?=\\?)))++)\n(?: (\n # nullable type\n (?:\\?\\s*)? [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ |\n # union, intersection or DNF type\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n (?: \\s*[|&]\\s*\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n )+\n) \\s+ )?\n((?:(&)\\s*)?(\\$)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*) # Variable name with possible reference", + "beginCaptures": { + "1": { + "patterns": [ + { + "match": "public|private|protected|readonly", + "name": "storage.modifier.php" + } + ] + }, + "2": { + "patterns": [ + { + "include": "#php-types" + } + ] + }, + "3": { + "name": "variable.other.php" + }, + "4": { + "name": "storage.modifier.reference.php" + }, + "5": { + "name": "punctuation.definition.variable.php" + } + }, + "end": "(?=\\s*(?:,|\\)|/[/*]|\\#))", + "name": "meta.function.parameter.promoted-property.php", + "patterns": [ + { + "begin": "=", + "beginCaptures": { + "0": { + "name": "keyword.operator.assignment.php" + } + }, + "end": "(?=\\s*(?:,|\\)|/[/*]|\\#))", + "patterns": [ + { + "include": "#parameter-default-types" + } + ] + } + ] + }, + { + "include": "#function-parameters" + } + ] + }, + { + "begin": "(?x)\n((?:(?:final|abstract|public|private|protected|static)\\s+)*)\n(function)\\s+\n(?i:\n (__(?:call|construct|debugInfo|destruct|get|set|isset|unset|toString|\n clone|set_state|sleep|wakeup|autoload|invoke|callStatic|serialize|unserialize))\n |(?:(&)?\\s*([a-zA-Z_\\x{7f}-\\x{10ffff}][a-zA-Z0-9_\\x{7f}-\\x{10ffff}]*))\n)\n\\s*(\\()", + "beginCaptures": { + "1": { + "patterns": [ + { + "match": "final|abstract|public|private|protected|static", + "name": "storage.modifier.php" + } + ] + }, + "2": { + "name": "storage.type.function.php" + }, + "3": { + "name": "support.function.magic.php" + }, + "4": { + "name": "storage.modifier.reference.php" + }, + "5": { + "name": "entity.name.function.php" + }, + "6": { + "name": "punctuation.definition.parameters.begin.bracket.round.php" + } + }, + "contentName": "meta.function.parameters.php", + "end": "(?xi)\n(\\)) (?: \\s* (:) \\s* (\n # nullable type\n (?:\\?\\s*)? [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ |\n # union, intersection or DNF type\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n (?: \\s*[|&]\\s*\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n )+\n) )?\n(?=\\s*(?:{|/[/*]|\\#|$|;))", + "endCaptures": { + "1": { + "name": "punctuation.definition.parameters.end.bracket.round.php" + }, + "2": { + "name": "keyword.operator.return-value.php" + }, + "3": { + "patterns": [ + { + "match": "\\b(static)\\b", + "name": "storage.type.php" + }, + { + "match": "\\b(never)\\b", + "name": "keyword.other.type.never.php" + }, + { + "include": "#php-types" + } + ] + } + }, + "name": "meta.function.php", + "patterns": [ + { + "include": "#function-parameters" + } + ] + }, + { + "match": "(?xi)\n((?:(?:public|private|protected|static|readonly)(?:\\s+|(?=\\?)))++) # At least one modifier\n(\n # nullable type\n (?:\\?\\s*)? [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ |\n # union, intersection or DNF type\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n (?: \\s*[|&]\\s*\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n )+\n)?\n\\s+ ((\\$)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*) # Variable name", + "captures": { + "1": { + "patterns": [ + { + "match": "public|private|protected|static|readonly", + "name": "storage.modifier.php" + } + ] + }, + "2": { + "patterns": [ + { + "include": "#php-types" + } + ] + }, + "3": { + "name": "variable.other.php" + }, + "4": { + "name": "punctuation.definition.variable.php" + } + } + }, + { + "include": "#invoke-call" + }, + { + "include": "#scope-resolution" + }, + { + "include": "#variables" + }, + { + "include": "#strings" + }, + { + "captures": { + "1": { + "name": "support.function.construct.php" + }, + "2": { + "name": "punctuation.definition.array.begin.bracket.round.php" + }, + "3": { + "name": "punctuation.definition.array.end.bracket.round.php" + } + }, + "match": "(array)(\\()(\\))", + "name": "meta.array.empty.php" + }, + { + "begin": "(array)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "support.function.construct.php" + }, + "2": { + "name": "punctuation.definition.array.begin.bracket.round.php" + } + }, + "end": "\\)|(?=\\?>)", + "endCaptures": { + "0": { + "name": "punctuation.definition.array.end.bracket.round.php" + } + }, + "name": "meta.array.php", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "match": "(?i)(\\()\\s*(array|real|double|float|int(?:eger)?|bool(?:ean)?|string|object|binary|unset)\\s*(\\))", + "captures": { + "1": { + "name": "punctuation.definition.storage-type.begin.bracket.round.php" + }, + "2": { + "name": "storage.type.php" + }, + "3": { + "name": "punctuation.definition.storage-type.end.bracket.round.php" + } + } + }, + { + "match": "(?i)\\b(array|real|double|float|int(eger)?|bool(ean)?|string|class|var|function|interface|trait|parent|self|object|mixed)\\b", + "name": "storage.type.php" + }, + { + "match": "(?i)\\b(global|abstract|const|final|private|protected|public|static)\\b", + "name": "storage.modifier.php" + }, + { + "include": "#object" + }, + { + "match": ";", + "name": "punctuation.terminator.expression.php" + }, + { + "match": ":", + "name": "punctuation.terminator.statement.php" + }, + { + "include": "#heredoc" + }, + { + "include": "#numbers" + }, + { + "match": "(?i)\\bclone\\b", + "name": "keyword.other.clone.php" + }, + { + "match": "\\.\\.\\.", + "name": "keyword.operator.spread.php" + }, + { + "match": "\\.=?", + "name": "keyword.operator.string.php" + }, + { + "match": "=>", + "name": "keyword.operator.key.php" + }, + { + "captures": { + "1": { + "name": "keyword.operator.assignment.php" + }, + "2": { + "name": "storage.modifier.reference.php" + }, + "3": { + "name": "storage.modifier.reference.php" + } + }, + "match": "(?i)(\\=)(&)|(&)(?=[$a-z_])" + }, + { + "match": "@", + "name": "keyword.operator.error-control.php" + }, + { + "match": "===|==|!==|!=|<>", + "name": "keyword.operator.comparison.php" + }, + { + "match": "=|\\+=|\\-=|\\*\\*?=|/=|%=|&=|\\|=|\\^=|<<=|>>=|\\?\\?=", + "name": "keyword.operator.assignment.php" + }, + { + "match": "<=>|<=|>=|<|>", + "name": "keyword.operator.comparison.php" + }, + { + "match": "\\-\\-|\\+\\+", + "name": "keyword.operator.increment-decrement.php" + }, + { + "match": "\\-|\\+|\\*\\*?|/|%", + "name": "keyword.operator.arithmetic.php" + }, + { + "match": "(?i)(!|&&|\\|\\|)|\\b(and|or|xor|as)\\b", + "name": "keyword.operator.logical.php" + }, + { + "include": "#function-call" + }, + { + "match": "<<|>>|~|\\^|&|\\|", + "name": "keyword.operator.bitwise.php" + }, + { + "begin": "(?i)\\b(instanceof)\\s+(?=[\\\\$a-z_])", + "beginCaptures": { + "1": { + "name": "keyword.operator.type.php" + } + }, + "end": "(?i)(?=[^\\\\$a-z0-9_\\x{7f}-\\x{10ffff}])", + "patterns": [ + { + "include": "#class-name" + }, + { + "include": "#variable-name" + } + ] + }, + { + "include": "#instantiation" + }, + { + "captures": { + "1": { + "name": "keyword.control.goto.php" + }, + "2": { + "name": "support.other.php" + } + }, + "match": "(?i)(goto)\\s+([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)" + }, + { + "captures": { + "1": { + "name": "entity.name.goto-label.php" + } + }, + "match": "(?i)^\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*(?<!default))\\s*:(?!:)" + }, + { + "include": "#string-backtick" + }, + { + "include": "#ternary_shorthand" + }, + { + "include": "#null_coalescing" + }, + { + "include": "#ternary_expression" + }, + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.begin.bracket.curly.php" + } + }, + "end": "}|(?=\\?>)", + "endCaptures": { + "0": { + "name": "punctuation.definition.end.bracket.curly.php" + } + }, + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "begin": "\\[", + "beginCaptures": { + "0": { + "name": "punctuation.section.array.begin.php" + } + }, + "end": "\\]|(?=\\?>)", + "endCaptures": { + "0": { + "name": "punctuation.section.array.end.php" + } + }, + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.begin.bracket.round.php" + } + }, + "end": "\\)|(?=\\?>)", + "endCaptures": { + "0": { + "name": "punctuation.definition.end.bracket.round.php" + } + }, + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "include": "#constants" + }, + { + "match": ",", + "name": "punctuation.separator.delimiter.php" + } + ], + "repository": { + "attribute-name": { + "patterns": [ + { + "begin": "(?i)(?=\\\\?[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*\\\\)", + "end": "(?xi)\n( [a-z_\\x{7f}-\\x{10ffff}] [a-z0-9_\\x{7f}-\\x{10ffff}]* )?\n(?![a-z0-9_\\x{7f}-\\x{10ffff}\\\\])", + "endCaptures": { + "1": { + "name": "support.attribute.php" + } + }, + "patterns": [ + { + "include": "#namespace" + } + ] + }, + { + "match": "(?xi)\n(\\\\)?\\b(Attribute|SensitiveParameter|AllowDynamicProperties|ReturnTypeWillChange)\\b", + "name": "support.attribute.builtin.php", + "captures": { + "1": { + "name": "punctuation.separator.inheritance.php" + } + } + }, + { + "begin": "(?i)(?=[\\\\a-z_\\x{7f}-\\x{10ffff}])", + "end": "(?xi)\n( [a-z_\\x{7f}-\\x{10ffff}] [a-z0-9_\\x{7f}-\\x{10ffff}]* )?\n(?![a-z0-9_\\x{7f}-\\x{10ffff}\\\\])", + "endCaptures": { + "1": { + "name": "support.attribute.php" + } + }, + "patterns": [ + { + "include": "#namespace" + } + ] + } + ] + }, + "attribute": { + "begin": "\\#\\[", + "end": "\\]", + "name": "meta.attribute.php", + "patterns": [ + { + "match": ",", + "name": "punctuation.separator.delimiter.php" + }, + { + "begin": "([a-zA-Z0-9_\\x{7f}-\\x{10ffff}\\\\]+)\\s*(\\()", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#attribute-name" + } + ] + }, + "2": { + "name": "punctuation.definition.arguments.begin.bracket.round.php" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.end.bracket.round.php" + } + }, + "patterns": [ + { + "include": "#named-arguments" + }, + { + "include": "$self" + } + ] + }, + { + "include": "#attribute-name" + } + ] + }, + "class-builtin": { + "patterns": [ + { + "match": "(?xi)\n(\\\\)?\\b\n(Attribute|(APC|Append)Iterator|Array(Access|Iterator|Object)\n|Bad(Function|Method)CallException\n|(Caching|CallbackFilter)Iterator|Collator|Collectable|Cond|Countable|CURLFile\n|Date(Interval|Period|Time(Interface|Immutable|Zone)?)?|Directory(Iterator)?|DomainException\n|DOM(Attr|CdataSection|CharacterData|Comment|Document(Fragment)?|Element|EntityReference\n |Implementation|NamedNodeMap|Node(list)?|ProcessingInstruction|Text|XPath)\n|(Error)?Exception|EmptyIterator\n|finfo\n|Ev(Check|Child|Embed|Fork|Idle|Io|Loop|Periodic|Prepare|Signal|Stat|Timer|Watcher)?\n|Event(Base|Buffer(Event)?|SslContext|Http(Request|Connection)?|Config|DnsBase|Util|Listener)?\n|FANNConnection|(Filter|Filesystem)Iterator\n|Gender\\\\Gender|GlobIterator|Gmagick(Draw|Pixel)?\n|Haru(Annotation|Destination|Doc|Encoder|Font|Image|Outline|Page)\n|Http((Inflate|Deflate)?Stream|Message|Request(Pool)?|Response|QueryString)\n|HRTime\\\\(PerformanceCounter|StopWatch)\n|Intl(Calendar|((CodePoint|RuleBased)?Break|Parts)?Iterator|DateFormatter|TimeZone)\n|Imagick(Draw|Pixel(Iterator)?)?\n|InfiniteIterator|InvalidArgumentException|Iterator(Aggregate|Iterator)?\n|JsonSerializable\n|KTaglib_(MPEG_(File|AudioProperties)|Tag|ID3v2_(Tag|(AttachedPicture)?Frame))\n|Lapack|(Length|Locale|Logic)Exception|LimitIterator|Lua(Closure)?\n|Mongo(BinData|Client|Code|Collection|CommandCursor|Cursor(Exception)?|Date|DB(Ref)?|DeleteBatch\n |Grid(FS(Cursor|File)?)|Id|InsertBatch|Int(32|64)|Log|Pool|Regex|ResultException|Timestamp\n |UpdateBatch|Write(Batch|ConcernException))?\n|Memcache(d)?|MessageFormatter|MultipleIterator|Mutex\n|mysqli(_(driver|stmt|warning|result))?\n|MysqlndUh(Connection|PreparedStatement)\n|NoRewindIterator|Normalizer|NumberFormatter\n|OCI-(Collection|Lob)|OuterIterator|(OutOf(Bounds|Range)|Overflow)Exception\n|ParentIterator|PDO(Statement)?|Phar(Data|FileInfo)?|php_user_filter|Pool\n|QuickHash(Int(Set|StringHash)|StringIntHash)\n|Recursive(Array|Caching|Directory|Fallback|Filter|Iterator|Regex|Tree)?Iterator\n|Reflection(Class|Function(Abstract)?|Method|Object|Parameter|Property|(Zend)?Extension)?\n|RangeException|Reflector|RegexIterator|ResourceBundle|RuntimeException|RRD(Creator|Graph|Updater)\n|SAM(Connection|Message)|SCA(_(SoapProxy|LocalProxy))?\n|SDO_(DAS_(ChangeSummary|Data(Factory|Object)|Relational|Setting|XML(_Document)?)\n |Data(Factory|Object)|Exception|List|Model_(Property|ReflectionDataObject|Type)|Sequence)\n|SeekableIterator|Serializable|SessionHandler(Interface)?|SimpleXML(Iterator|Element)|SNMP\n|Soap(Client|Fault|Header|Param|Server|Var)\n|SphinxClient|Spoofchecker\n|Spl(DoublyLinkedList|Enum|File(Info|Object)|FixedArray|(Max|Min)?Heap|Observer|ObjectStorage\n |(Priority)?Queue|Stack|Subject|Type|TempFileObject)\n|SQLite(3(Result|Stmt)?|Database|Result|Unbuffered)\n|stdClass|streamWrapper|SVM(Model)?|Swish(Result(s)?|Search)?|Sync(Event|Mutex|ReaderWriter|Semaphore)\n|Thread(ed)?|tidy(Node)?|TokyoTyrant(Table|Iterator|Query)?|Transliterator|Traversable\n|UConverter|(Underflow|UnexpectedValue)Exception\n|V8Js(Exception)?|Varnish(Admin|Log|Stat)\n|Worker|Weak(Map|Ref)\n|XML(Diff\\\\(Base|DOM|File|Memory)|Reader|Writer)|XsltProcessor\n|Yaf_(Route_(Interface|Map|Regex|Rewrite|Simple|Supervar)\n |Action_Abstract|Application|Config_(Simple|Ini|Abstract)|Controller_Abstract\n |Dispatcher|Exception|Loader|Plugin_Abstract|Registry|Request_(Abstract|Simple|Http)\n |Response_Abstract|Router|Session|View_(Simple|Interface))\n|Yar_(Client(_Exception)?|Concurrent_Client|Server(_Exception)?)\n|ZipArchive|ZMQ(Context|Device|Poll|Socket)?)\n\\b", + "name": "support.class.builtin.php", + "captures": { + "1": { + "name": "punctuation.separator.inheritance.php" + } + } + } + ] + }, + "class-name": { + "patterns": [ + { + "begin": "(?i)(?=\\\\?[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*\\\\)", + "end": "(?xi)\n( [a-z_\\x{7f}-\\x{10ffff}] [a-z0-9_\\x{7f}-\\x{10ffff}]* )?\n(?![a-z0-9_\\x{7f}-\\x{10ffff}\\\\])", + "endCaptures": { + "1": { + "name": "support.class.php" + } + }, + "patterns": [ + { + "include": "#namespace" + } + ] + }, + { + "include": "#class-builtin" + }, + { + "begin": "(?i)(?=[\\\\a-z_\\x{7f}-\\x{10ffff}])", + "end": "(?xi)\n( [a-z_\\x{7f}-\\x{10ffff}] [a-z0-9_\\x{7f}-\\x{10ffff}]* )?\n(?![a-z0-9_\\x{7f}-\\x{10ffff}\\\\])", + "endCaptures": { + "1": { + "name": "support.class.php" + } + }, + "patterns": [ + { + "include": "#namespace" + } + ] + } + ] + }, + "inheritance-single": { + "patterns": [ + { + "begin": "(?i)(?=\\\\?[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*\\\\)", + "end": "(?i)([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)?(?=[^a-z0-9_\\x{7f}-\\x{10ffff}\\\\])", + "endCaptures": { + "1": { + "name": "entity.other.inherited-class.php" + } + }, + "patterns": [ + { + "include": "#namespace" + } + ] + }, + { + "include": "#class-builtin" + }, + { + "include": "#namespace" + }, + { + "match": "(?i)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*", + "name": "entity.other.inherited-class.php" + } + ] + }, + "class-extends": { + "patterns": [ + { + "begin": "(?i)(extends)\\s+", + "beginCaptures": { + "1": { + "name": "storage.modifier.extends.php" + } + }, + "end": "(?i)(?=[^A-Za-z0-9_\\x{7f}-\\x{10ffff}\\\\])", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#inheritance-single" + } + ] + } + ] + }, + "interface-extends": { + "patterns": [ + { + "begin": "(?i)(extends)\\s+", + "beginCaptures": { + "1": { + "name": "storage.modifier.extends.php" + } + }, + "end": "(?i)(?={)", + "patterns": [ + { + "include": "#comments" + }, + { + "match": ",", + "name": "punctuation.separator.classes.php" + }, + { + "include": "#inheritance-single" + } + ] + } + ] + }, + "class-implements": { + "patterns": [ + { + "begin": "(?i)(implements)\\s+", + "beginCaptures": { + "1": { + "name": "storage.modifier.implements.php" + } + }, + "end": "(?i)(?={)", + "patterns": [ + { + "include": "#comments" + }, + { + "match": ",", + "name": "punctuation.separator.classes.php" + }, + { + "include": "#inheritance-single" + } + ] + } + ] + }, + "class-constant": { + "patterns": [ + { + "match": "(?i)\\b(const)\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)", + "captures": { + "1": { + "name": "storage.modifier.php" + }, + "2": { + "name": "constant.other.php" + } + } + } + ] + }, + "comments": { + "patterns": [ + { + "begin": "/\\*\\*(?=\\s)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.php" + } + }, + "end": "\\*/", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.php" + } + }, + "name": "comment.block.documentation.phpdoc.php", + "patterns": [ + { + "include": "#php_doc" + } + ] + }, + { + "begin": "/\\*", + "captures": { + "0": { + "name": "punctuation.definition.comment.php" + } + }, + "end": "\\*/", + "name": "comment.block.php" + }, + { + "begin": "(^\\s+)?(?=//)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.php" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": "//", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.php" + } + }, + "end": "\\n|(?=\\?>)", + "name": "comment.line.double-slash.php" + } + ] + }, + { + "begin": "(^\\s+)?(?=#)(?!#\\[)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.php" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": "#", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.php" + } + }, + "end": "\\n|(?=\\?>)", + "name": "comment.line.number-sign.php" + } + ] + } + ] + }, + "constants": { + "patterns": [ + { + "match": "(?i)\\b(TRUE|FALSE|NULL|__(FILE|DIR|FUNCTION|CLASS|METHOD|LINE|NAMESPACE)__|ON|OFF|YES|NO|NL|BR|TAB)\\b", + "name": "constant.language.php" + }, + { + "match": "(?x)\n(\\\\)?\\b\n(DEFAULT_INCLUDE_PATH\n|EAR_(INSTALL|EXTENSION)_DIR\n|E_(ALL|COMPILE_(ERROR|WARNING)|CORE_(ERROR|WARNING)|DEPRECATED|ERROR|NOTICE\n |PARSE|RECOVERABLE_ERROR|STRICT|USER_(DEPRECATED|ERROR|NOTICE|WARNING)|WARNING)\n|PHP_(ROUND_HALF_(DOWN|EVEN|ODD|UP)|(MAJOR|MINOR|RELEASE)_VERSION|MAXPATHLEN\n |BINDIR|SHLIB_SUFFIX|SYSCONFDIR|SAPI|CONFIG_FILE_(PATH|SCAN_DIR)\n |INT_(MAX|SIZE)|ZTS|OS|OUTPUT_HANDLER_(START|CONT|END)|DEBUG|DATADIR\n |URL_(SCHEME|HOST|USER|PORT|PASS|PATH|QUERY|FRAGMENT)|PREFIX\n |EXTRA_VERSION|EXTENSION_DIR|EOL|VERSION(_ID)?\n |WINDOWS_(NT_(SERVER|DOMAIN_CONTROLLER|WORKSTATION)\n |VERSION_(MAJOR|MINOR)|BUILD|SUITEMASK|SP_(MAJOR|MINOR)\n |PRODUCTTYPE|PLATFORM)\n |LIBDIR|LOCALSTATEDIR)\n|STD(ERR|IN|OUT)|ZEND_(DEBUG_BUILD|THREAD_SAFE))\n\\b", + "name": "support.constant.core.php", + "captures": { + "1": { + "name": "punctuation.separator.inheritance.php" + } + } + }, + { + "match": "(?x)\n(\\\\)?\\b\n(__COMPILER_HALT_OFFSET__|AB(MON_(1|2|3|4|5|6|7|8|9|10|11|12)|DAY[1-7])\n|AM_STR|ASSERT_(ACTIVE|BAIL|CALLBACK_QUIET_EVAL|WARNING)|ALT_DIGITS\n|CASE_(UPPER|LOWER)|CHAR_MAX|CONNECTION_(ABORTED|NORMAL|TIMEOUT)|CODESET|COUNT_(NORMAL|RECURSIVE)\n|CREDITS_(ALL|DOCS|FULLPAGE|GENERAL|GROUP|MODULES|QA|SAPI)\n|CRYPT_(BLOWFISH|EXT_DES|MD5|SHA(256|512)|SALT_LENGTH|STD_DES)|CURRENCY_SYMBOL\n|D_(T_)?FMT|DATE_(ATOM|COOKIE|ISO8601|RFC(822|850|1036|1123|2822|3339)|RSS|W3C)\n|DAY_[1-7]|DECIMAL_POINT|DIRECTORY_SEPARATOR\n|ENT_(COMPAT|IGNORE|(NO)?QUOTES)|EXTR_(IF_EXISTS|OVERWRITE|PREFIX_(ALL|IF_EXISTS|INVALID|SAME)|REFS|SKIP)\n|ERA(_(D_(T_)?FMT)|T_FMT|YEAR)?|FRAC_DIGITS|GROUPING|HASH_HMAC|HTML_(ENTITIES|SPECIALCHARS)\n|INF|INFO_(ALL|CREDITS|CONFIGURATION|ENVIRONMENT|GENERAL|LICENSEMODULES|VARIABLES)\n|INI_(ALL|CANNER_(NORMAL|RAW)|PERDIR|SYSTEM|USER)|INT_(CURR_SYMBOL|FRAC_DIGITS)\n|LC_(ALL|COLLATE|CTYPE|MESSAGES|MONETARY|NUMERIC|TIME)|LOCK_(EX|NB|SH|UN)\n|LOG_(ALERT|AUTH(PRIV)?|CRIT|CRON|CONS|DAEMON|DEBUG|EMERG|ERR|INFO|LOCAL[1-7]|LPR|KERN|MAIL\n |NEWS|NODELAY|NOTICE|NOWAIT|ODELAY|PID|PERROR|WARNING|SYSLOG|UCP|USER)\n|M_(1_PI|SQRT(1_2|2|3|PI)|2_(SQRT)?PI|PI(_(2|4))?|E(ULER)?|LN(10|2|PI)|LOG(10|2)E)\n|MON_(1|2|3|4|5|6|7|8|9|10|11|12|DECIMAL_POINT|GROUPING|THOUSANDS_SEP)\n|N_(CS_PRECEDES|SEP_BY_SPACE|SIGN_POSN)|NAN|NEGATIVE_SIGN|NO(EXPR|STR)\n|P_(CS_PRECEDES|SEP_BY_SPACE|SIGN_POSN)|PM_STR|POSITIVE_SIGN\n|PATH(_SEPARATOR|INFO_(EXTENSION|(BASE|DIR|FILE)NAME))|RADIXCHAR\n|SEEK_(CUR|END|SET)|SORT_(ASC|DESC|LOCALE_STRING|REGULAR|STRING)|STR_PAD_(BOTH|LEFT|RIGHT)\n|T_FMT(_AMPM)?|THOUSEP|THOUSANDS_SEP\n|UPLOAD_ERR_(CANT_WRITE|EXTENSION|(FORM|INI)_SIZE|NO_(FILE|TMP_DIR)|OK|PARTIAL)\n|YES(EXPR|STR))\n\\b", + "name": "support.constant.std.php", + "captures": { + "1": { + "name": "punctuation.separator.inheritance.php" + } + } + }, + { + "match": "(?x)\n(\\\\)?\\b\n(GLOB_(MARK|BRACE|NO(SORT|CHECK|ESCAPE)|ONLYDIR|ERR|AVAILABLE_FLAGS)\n|XML_(SAX_IMPL|(DTD|DOCUMENT(_(FRAG|TYPE))?|HTML_DOCUMENT|NOTATION|NAMESPACE_DECL|PI|COMMENT|DATA_SECTION|TEXT)_NODE\n |OPTION_(SKIP_(TAGSTART|WHITE)|CASE_FOLDING|TARGET_ENCODING)\n |ERROR_((BAD_CHAR|(ATTRIBUTE_EXTERNAL|BINARY|PARAM|RECURSIVE)_ENTITY)_REF|MISPLACED_XML_PI|SYNTAX|NONE\n |NO_(MEMORY|ELEMENTS)|TAG_MISMATCH|INCORRECT_ENCODING|INVALID_TOKEN|DUPLICATE_ATTRIBUTE\n |UNCLOSED_(CDATA_SECTION|TOKEN)|UNDEFINED_ENTITY|UNKNOWN_ENCODING|JUNK_AFTER_DOC_ELEMENT\n |PARTIAL_CHAR|EXTERNAL_ENTITY_HANDLING|ASYNC_ENTITY)\n |ENTITY_(((REF|DECL)_)?NODE)|ELEMENT(_DECL)?_NODE|LOCAL_NAMESPACE|ATTRIBUTE_(NMTOKEN(S)?|NOTATION|NODE)\n |CDATA|ID(REF(S)?)?|DECL_NODE|ENTITY|ENUMERATION)\n|MHASH_(RIPEMD(128|160|256|320)|GOST|MD(2|4|5)|SHA(1|224|256|384|512)|SNEFRU256|HAVAL(128|160|192|224|256)\n |CRC23(B)?|TIGER(128|160)?|WHIRLPOOL|ADLER32)\n|MYSQL_(BOTH|NUM|CLIENT_(SSL|COMPRESS|IGNORE_SPACE|INTERACTIVE|ASSOC))\n|MYSQLI_(REPORT_(STRICT|INDEX|OFF|ERROR|ALL)|REFRESH_(GRANT|MASTER|BACKUP_LOG|STATUS|SLAVE|HOSTS|THREADS|TABLES|LOG)\n |READ_DEFAULT_(FILE|GROUP)|(GROUP|MULTIPLE_KEY|BINARY|BLOB)_FLAG|BOTH\n |STMT_ATTR_(CURSOR_TYPE|UPDATE_MAX_LENGTH|PREFETCH_ROWS)|STORE_RESULT\n |SERVER_QUERY_(NO_((GOOD_)?INDEX_USED)|WAS_SLOW)|SET_(CHARSET_NAME|FLAG)\n |NO_(DEFAULT_VALUE_FLAG|DATA)|NOT_NULL_FLAG|NUM(_FLAG)?\n |CURSOR_TYPE_(READ_ONLY|SCROLLABLE|NO_CURSOR|FOR_UPDATE)\n |CLIENT_(SSL|NO_SCHEMA|COMPRESS|IGNORE_SPACE|INTERACTIVE|FOUND_ROWS)\n |TYPE_(GEOMETRY|((MEDIUM|LONG|TINY)_)?BLOB|BIT|SHORT|STRING|SET|YEAR|NULL|NEWDECIMAL|NEWDATE|CHAR\n |TIME(STAMP)?|TINY|INT24|INTERVAL|DOUBLE|DECIMAL|DATE(TIME)?|ENUM|VAR_STRING|FLOAT|LONG(LONG)?)\n |TIME_STAMP_FLAG|INIT_COMMAND|ZEROFILL_FLAG|ON_UPDATE_NOW_FLAG\n |OPT_(NET_((CMD|READ)_BUFFER_SIZE)|CONNECT_TIMEOUT|INT_AND_FLOAT_NATIVE|LOCAL_INFILE)\n |DEBUG_TRACE_ENABLED|DATA_TRUNCATED|USE_RESULT|(ENUM|(PART|PRI|UNIQUE)_KEY|UNSIGNED)_FLAG\n |ASSOC|ASYNC|AUTO_INCREMENT_FLAG)\n|MCRYPT_(RC(2|6)|RIJNDAEL_(128|192|256)|RAND|GOST|XTEA|MODE_(STREAM|NOFB|CBC|CFB|OFB|ECB)|MARS\n |BLOWFISH(_COMPAT)?|SERPENT|SKIPJACK|SAFER(64|128|PLUS)|CRYPT|CAST_(128|256)|TRIPLEDES|THREEWAY\n |TWOFISH|IDEA|(3)?DES|DECRYPT|DEV_(U)?RANDOM|PANAMA|ENCRYPT|ENIGNA|WAKE|LOKI97|ARCFOUR(_IV)?)\n|STREAM_(REPORT_ERRORS|MUST_SEEK|MKDIR_RECURSIVE|BUFFER_(NONE|FULL|LINE)|SHUT_(RD)?WR\n |SOCK_(RDM|RAW|STREAM|SEQPACKET|DGRAM)|SERVER_(BIND|LISTEN)\n |NOTIFY_(REDIRECTED|RESOLVE|MIME_TYPE_IS|SEVERITY_(INFO|ERR|WARN)|COMPLETED|CONNECT|PROGRESS\n |FILE_SIZE_IS|FAILURE|AUTH_(REQUIRED|RESULT))\n |CRYPTO_METHOD_((SSLv2(3)?|SSLv3|TLS)_(CLIENT|SERVER))|CLIENT_((ASYNC_)?CONNECT|PERSISTENT)\n |CAST_(AS_STREAM|FOR_SELECT)|(IGNORE|IS)_URL|IPPROTO_(RAW|TCP|ICMP|IP|UDP)|OOB\n |OPTION_(READ_(BUFFER|TIMEOUT)|BLOCKING|WRITE_BUFFER)|URL_STAT_(LINK|QUIET)|USE_PATH\n |PEEK|PF_(INET(6)?|UNIX)|ENFORCE_SAFE_MODE|FILTER_(ALL|READ|WRITE))\n|SUNFUNCS_RET_(DOUBLE|STRING|TIMESTAMP)\n|SQLITE_(READONLY|ROW|MISMATCH|MISUSE|BOTH|BUSY|SCHEMA|NOMEM|NOTFOUND|NOTADB|NOLFS|NUM|CORRUPT\n |CONSTRAINT|CANTOPEN|TOOBIG|INTERRUPT|INTERNAL|IOERR|OK|DONE|PROTOCOL|PERM|ERROR|EMPTY\n |FORMAT|FULL|LOCKED|ABORT|ASSOC|AUTH)\n|SQLITE3_(BOTH|BLOB|NUM|NULL|TEXT|INTEGER|OPEN_(READ(ONLY|WRITE)|CREATE)|FLOAT_ASSOC)\n|CURL(M_(BAD_((EASY)?HANDLE)|CALL_MULTI_PERFORM|INTERNAL_ERROR|OUT_OF_MEMORY|OK)\n |MSG_DONE|SSH_AUTH_(HOST|NONE|DEFAULT|PUBLICKEY|PASSWORD|KEYBOARD)\n |CLOSEPOLICY_(SLOWEST|CALLBACK|OLDEST|LEAST_(RECENTLY_USED|TRAFFIC)\n |INFO_(REDIRECT_(COUNT|TIME)|REQUEST_SIZE|SSL_VERIFYRESULT|STARTTRANSFER_TIME\n |(SIZE|SPEED)_(DOWNLOAD|UPLOAD)|HTTP_CODE|HEADER_(OUT|SIZE)|NAMELOOKUP_TIME\n |CONNECT_TIME|CONTENT_(TYPE|LENGTH_(DOWNLOAD|UPLOAD))|CERTINFO|TOTAL_TIME\n |PRIVATE|PRETRANSFER_TIME|EFFECTIVE_URL|FILETIME)\n |OPT_(RESUME_FROM|RETURNTRANSFER|REDIR_PROTOCOLS|REFERER|READ(DATA|FUNCTION)|RANGE|RANDOM_FILE\n |MAX(CONNECTS|REDIRS)|BINARYTRANSFER|BUFFERSIZE\n |SSH_(HOST_PUBLIC_KEY_MD5|(PRIVATE|PUBLIC)_KEYFILE)|AUTH_TYPES)\n |SSL(CERT(TYPE|PASSWD)?|ENGINE(_DEFAULT)?|VERSION|KEY(TYPE|PASSWD)?)\n |SSL_(CIPHER_LIST|VERIFY(HOST|PEER))\n |STDERR|HTTP(GET|HEADER|200ALIASES|_VERSION|PROXYTUNNEL|AUTH)\n |HEADER(FUNCTION)?|NO(BODY|SIGNAL|PROGRESS)|NETRC|CRLF|CONNECTTIMEOUT(_MS)?\n |COOKIE(SESSION|JAR|FILE)?|CUSTOMREQUEST|CERTINFO|CLOSEPOLICY|CA(INFO|PATH)|TRANSFERTEXT\n |TCP_NODELAY|TIME(CONDITION|OUT(_MS)?|VALUE)|INTERFACE|INFILE(SIZE)?|IPRESOLVE\n |DNS_(CACHE_TIMEOUT|USE_GLOBAL_CACHE)|URL|USER(AGENT|PWD)|UNRESTRICTED_AUTH|UPLOAD\n |PRIVATE|PROGRESSFUNCTION|PROXY(TYPE|USERPWD|PORT|AUTH)?|PROTOCOLS|PORT\n |POST(REDIR|QUOTE|FIELDS)?|PUT|EGDSOCKET|ENCODING|VERBOSE|KRB4LEVEL|KEYPASSWD|QUOTE|FRESH_CONNECT\n |FTP(APPEND|LISTONLY|PORT|SSLAUTH)\n |FTP_(SSL|SKIP_PASV_IP|CREATE_MISSING_DIRS|USE_EP(RT|SV)|FILEMETHOD)\n |FILE(TIME)?|FORBID_REUSE|FOLLOWLOCATION|FAILONERROR|WRITE(FUNCTION|HEADER)|LOW_SPEED_(LIMIT|TIME)\n |AUTOREFERER)\n |PROXY_(HTTP|SOCKS(4|5))|PROTO_(SCP|SFTP|HTTP(S)?|TELNET|TFTP|DICT|FTP(S)?|FILE|LDAP(S)?|ALL)\n |E_((RECV|READ)_ERROR|GOT_NOTHING|MALFORMAT_USER\n |BAD_(CONTENT_ENCODING|CALLING_ORDER|PASSWORD_ENTERED|FUNCTION_ARGUMENT)\n |SSH|SSL_(CIPHER|CONNECT_ERROR|CERTPROBLEM|CACERT|PEER_CERTIFICATE|ENGINE_(NOTFOUND|SETFAILED))\n |SHARE_IN_USE|SEND_ERROR|HTTP_(RANGE_ERROR|NOT_FOUND|PORT_FAILED|POST_ERROR)\n |COULDNT_(RESOLVE_(HOST|PROXY)|CONNECT)|TOO_MANY_REDIRECTS|TELNET_OPTION_SYNTAX|OBSOLETE\n |OUT_OF_MEMORY|OPERATION|TIMEOUTED|OK|URL_MALFORMAT(_USER)?|UNSUPPORTED_PROTOCOL\n |UNKNOWN_TELNET_OPTION|PARTIAL_FILE\n |FTP_(BAD_DOWNLOAD_RESUME|SSL_FAILED|COULDNT_(RETR_FILE|GET_SIZE|STOR_FILE|SET_(BINARY|ASCII)|USE_REST)\n |CANT_(GET_HOST|RECONNECT)|USER_PASSWORD_INCORRECT|PORT_FAILED|QUOTE_ERROR|WRITE_ERROR\n |WEIRD_((PASS|PASV|SERVER|USER)_REPLY|227_FORMAT)|ACCESS_DENIED)\n |FILESIZE_EXCEEDED|FILE_COULDNT_READ_FILE|FUNCTION_NOT_FOUND|FAILED_INIT|WRITE_ERROR|LIBRARY_NOT_FOUND\n |LDAP_(SEARCH_FAILED|CANNOT_BIND|INVALID_URL)|ABORTED_BY_CALLBACK)\n |VERSION_NOW\n |FTP(METHOD_(MULTI|SINGLE|NO)CWD|SSL_(ALL|NONE|CONTROL|TRY)|AUTH_(DEFAULT|SSL|TLS))\n |AUTH_(ANY(SAFE)?|BASIC|DIGEST|GSSNEGOTIATE|NTLM))\n|CURL_(HTTP_VERSION_(1_(0|1)|NONE)|NETRC_(REQUIRED|IGNORED|OPTIONAL)|TIMECOND_(IF(UN)?MODSINCE|LASTMOD)\n |IPRESOLVE_(V(4|6)|WHATEVER)|VERSION_(SSL|IPV6|KERBEROS4|LIBZ))\n|IMAGETYPE_(GIF|XBM|BMP|SWF|COUNT|TIFF_(MM|II)|ICO|IFF|UNKNOWN|JB2|JPX|JP2|JPC|JPEG(2000)?|PSD|PNG|WBMP)\n|INPUT_(REQUEST|GET|SERVER|SESSION|COOKIE|POST|ENV)|ICONV_(MIME_DECODE_(STRICT|CONTINUE_ON_ERROR)|IMPL|VERSION)\n|DNS_(MX|SRV|SOA|HINFO|NS|NAPTR|CNAME|TXT|PTR|ANY|ALL|AAAA|A(6)?)\n|DOM(STRING_SIZE_ERR)\n|DOM_((SYNTAX|HIERARCHY_REQUEST|NO_(MODIFICATION_ALLOWED|DATA_ALLOWED)|NOT_(FOUND|SUPPORTED)|NAMESPACE\n |INDEX_SIZE|USE_ATTRIBUTE|VALID_(MODIFICATION|STATE|CHARACTER|ACCESS)|PHP|VALIDATION|WRONG_DOCUMENT)_ERR)\n|JSON_(HEX_(TAG|QUOT|AMP|APOS)|NUMERIC_CHECK|ERROR_(SYNTAX|STATE_MISMATCH|NONE|CTRL_CHAR|DEPTH|UTF8)|FORCE_OBJECT)\n|PREG_((D_UTF8(_OFFSET)?|NO|INTERNAL|(BACKTRACK|RECURSION)_LIMIT)_ERROR|GREP_INVERT\n |SPLIT_(NO_EMPTY|(DELIM|OFFSET)_CAPTURE)|SET_ORDER|OFFSET_CAPTURE|PATTERN_ORDER)\n|PSFS_(PASS_ON|ERR_FATAL|FEED_ME|FLAG_(NORMAL|FLUSH_(CLOSE|INC)))\n|PCRE_VERSION|POSIX_((F|R|W|X)_OK|S_IF(REG|BLK|SOCK|CHR|IFO))\n|FNM_(NOESCAPE|CASEFOLD|PERIOD|PATHNAME)\n|FILTER_(REQUIRE_(SCALAR|ARRAY)|NULL_ON_FAILURE|CALLBACK|DEFAULT|UNSAFE_RAW\n |SANITIZE_(MAGIC_QUOTES|STRING|STRIPPED|SPECIAL_CHARS|NUMBER_(INT|FLOAT)|URL\n |EMAIL|ENCODED|FULL_SPCIAL_CHARS)\n |VALIDATE_(REGEXP|BOOLEAN|INT|IP|URL|EMAIL|FLOAT)\n |FORCE_ARRAY\n |FLAG_(SCHEME_REQUIRED|STRIP_(BACKTICK|HIGH|LOW)|HOST_REQUIRED|NONE|NO_(RES|PRIV)_RANGE|ENCODE_QUOTES\n |IPV(4|6)|PATH_REQUIRED|EMPTY_STRING_NULL|ENCODE_(HIGH|LOW|AMP)|QUERY_REQUIRED\n |ALLOW_(SCIENTIFIC|HEX|THOUSAND|OCTAL|FRACTION)))\n|FILE_(BINARY|SKIP_EMPTY_LINES|NO_DEFAULT_CONTEXT|TEXT|IGNORE_NEW_LINES|USE_INCLUDE_PATH|APPEND)\n|FILEINFO_(RAW|MIME(_(ENCODING|TYPE))?|SYMLINK|NONE|CONTINUE|DEVICES|PRESERVE_ATIME)\n|FORCE_(DEFLATE|GZIP)\n|LIBXML_(XINCLUDE|NSCLEAN|NO(XMLDECL|BLANKS|NET|CDATA|ERROR|EMPTYTAG|ENT|WARNING)\n |COMPACT|DTD(VALID|LOAD|ATTR)|((DOTTED|LOADED)_)?VERSION|PARSEHUGE|ERR_(NONE|ERROR|FATAL|WARNING)))\n\\b", + "name": "support.constant.ext.php", + "captures": { + "1": { + "name": "punctuation.separator.inheritance.php" + } + } + }, + { + "match": "(?x)\n(\\\\)?\\b\n(T_(RETURN|REQUIRE(_ONCE)?|GOTO|GLOBAL|(MINUS|MOD|MUL|XOR)_EQUAL|METHOD_C|ML_COMMENT|BREAK\n |BOOL_CAST|BOOLEAN_(AND|OR)|BAD_CHARACTER|SR(_EQUAL)?|STRING(_CAST|VARNAME)?|START_HEREDOC|STATIC\n |SWITCH|SL(_EQUAL)?|HALT_COMPILER|NS_(C|SEPARATOR)|NUM_STRING|NEW|NAMESPACE|CHARACTER|COMMENT\n |CONSTANT(_ENCAPSED_STRING)?|CONCAT_EQUAL|CONTINUE|CURLY_OPEN|CLOSE_TAG|CLONE|CLASS(_C)?\n |CASE|CATCH|TRY|THROW|IMPLEMENTS|ISSET|IS_((GREATER|SMALLER)_OR_EQUAL|(NOT_)?(IDENTICAL|EQUAL))\n |INSTANCEOF|INCLUDE(_ONCE)?|INC|INT_CAST|INTERFACE|INLINE_HTML|IF|OR_EQUAL|OBJECT_(CAST|OPERATOR)\n |OPEN_TAG(_WITH_ECHO)?|OLD_FUNCTION|DNUMBER|DIR|DIV_EQUAL|DOC_COMMENT|DOUBLE_(ARROW|CAST|COLON)\n |DOLLAR_OPEN_CURLY_BRACES|DO|DEC|DECLARE|DEFAULT|USE|UNSET(_CAST)?|PRINT|PRIVATE|PROTECTED|PUBLIC\n |PLUS_EQUAL|PAAMAYIM_NEKUDOTAYIM|EXTENDS|EXIT|EMPTY|ENCAPSED_AND_WHITESPACE\n |END(SWITCH|IF|DECLARE|FOR(EACH)?|WHILE)|END_HEREDOC|ECHO|EVAL|ELSE(IF)?|VAR(IABLE)?|FINAL|FILE\n |FOR(EACH)?|FUNC_C|FUNCTION|WHITESPACE|WHILE|LNUMBER|LIST|LINE|LOGICAL_(AND|OR|XOR)\n |ARRAY_(CAST)?|ABSTRACT|AS|AND_EQUAL))\n\\b", + "name": "support.constant.parser-token.php", + "captures": { + "1": { + "name": "punctuation.separator.inheritance.php" + } + } + }, + { + "match": "(?i)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*", + "name": "constant.other.php" + } + ] + }, + "function-parameters": { + "patterns": [ + { + "include": "#attribute" + }, + { + "include": "#comments" + }, + { + "match": ",", + "name": "punctuation.separator.delimiter.php" + }, + { + "match": "(?xi)\n(?: (\n # nullable type\n (?:\\?\\s*)? [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ |\n # union, intersection or DNF type\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n (?: \\s*[|&]\\s*\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n )+\n) \\s+ )?\n((?:(&)\\s*)?(\\.\\.\\.)(\\$)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*) # Variable name with possible reference\n(?=\\s*(?:,|\\)|/[/*]|\\#|$)) # A closing parentheses (end of argument list) or a comma or a comment", + "captures": { + "1": { + "patterns": [ + { + "include": "#php-types" + } + ] + }, + "2": { + "name": "variable.other.php" + }, + "3": { + "name": "storage.modifier.reference.php" + }, + "4": { + "name": "keyword.operator.variadic.php" + }, + "5": { + "name": "punctuation.definition.variable.php" + } + }, + "name": "meta.function.parameter.variadic.php" + }, + { + "begin": "(?xi)\n(\n # nullable type\n (?:\\?\\s*)? [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ |\n # union, intersection or DNF type\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n (?: \\s*[|&]\\s*\n (?: [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+ | \\(\\s* [a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+(?:\\s*&\\s*[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+)+ \\s*\\) )\n )+\n)\n\\s+ ((?:(&)\\s*)?(\\$)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*) # Variable name with possible reference", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#php-types" + } + ] + }, + "2": { + "name": "variable.other.php" + }, + "3": { + "name": "storage.modifier.reference.php" + }, + "4": { + "name": "punctuation.definition.variable.php" + } + }, + "end": "(?=\\s*(?:,|\\)|/[/*]|\\#))", + "name": "meta.function.parameter.typehinted.php", + "patterns": [ + { + "begin": "=", + "beginCaptures": { + "0": { + "name": "keyword.operator.assignment.php" + } + }, + "end": "(?=\\s*(?:,|\\)|/[/*]|\\#))", + "patterns": [ + { + "include": "#parameter-default-types" + } + ] + } + ] + }, + { + "match": "(?xi)\n((?:(&)\\s*)?(\\$)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*) # Variable name with possible reference\n(?=\\s*(?:,|\\)|/[/*]|\\#|$)) # A closing parentheses (end of argument list) or a comma or a comment", + "captures": { + "1": { + "name": "variable.other.php" + }, + "2": { + "name": "storage.modifier.reference.php" + }, + "3": { + "name": "punctuation.definition.variable.php" + } + }, + "name": "meta.function.parameter.no-default.php" + }, + { + "begin": "(?xi)\n((?:(&)\\s*)?(\\$)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*) # Variable name with possible reference\n\\s*(=)\\s*", + "beginCaptures": { + "1": { + "name": "variable.other.php" + }, + "2": { + "name": "storage.modifier.reference.php" + }, + "3": { + "name": "punctuation.definition.variable.php" + }, + "4": { + "name": "keyword.operator.assignment.php" + } + }, + "end": "(?=\\s*(?:,|\\)|/[/*]|\\#))", + "name": "meta.function.parameter.default.php", + "patterns": [ + { + "include": "#parameter-default-types" + } + ] + } + ] + }, + "named-arguments": { + "match": "(?i)(?<=^|\\(|,)\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)\\s*(:)(?!:)", + "captures": { + "1": { + "name": "entity.name.variable.parameter.php" + }, + "2": { + "name": "punctuation.separator.colon.php" + } + } + }, + "function-call": { + "patterns": [ + { + "begin": "(?x)\n(\n \\\\?(?<![a-zA-Z0-9_\\x{7f}-\\x{10ffff}]) # Optional root namespace\n [a-zA-Z_\\x{7f}-\\x{10ffff}][a-zA-Z0-9_\\x{7f}-\\x{10ffff}]* # First namespace\n (?:\\\\[a-zA-Z_\\x{7f}-\\x{10ffff}][a-zA-Z0-9_\\x{7f}-\\x{10ffff}]*)+ # Additional namespaces\n)\\s*(\\()", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#namespace" + }, + { + "match": "(?i)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*", + "name": "entity.name.function.php" + } + ] + }, + "2": { + "name": "punctuation.definition.arguments.begin.bracket.round.php" + } + }, + "end": "\\)|(?=\\?>)", + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.end.bracket.round.php" + } + }, + "name": "meta.function-call.php", + "patterns": [ + { + "include": "#named-arguments" + }, + { + "include": "$self" + } + ] + }, + { + "begin": "(\\\\)?(?<![a-zA-Z0-9_\\x{7f}-\\x{10ffff}])([a-zA-Z_\\x{7f}-\\x{10ffff}][a-zA-Z0-9_\\x{7f}-\\x{10ffff}]*)\\s*(\\()", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#namespace" + } + ] + }, + "2": { + "patterns": [ + { + "include": "#support" + }, + { + "match": "(?i)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*", + "name": "entity.name.function.php" + } + ] + }, + "3": { + "name": "punctuation.definition.arguments.begin.bracket.round.php" + } + }, + "end": "\\)|(?=\\?>)", + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.end.bracket.round.php" + } + }, + "name": "meta.function-call.php", + "patterns": [ + { + "include": "#named-arguments" + }, + { + "include": "$self" + } + ] + }, + { + "match": "(?i)\\b(print|echo)\\b", + "name": "support.function.construct.output.php" + } + ] + }, + "heredoc": { + "patterns": [ + { + "begin": "(?i)(?=<<<\\s*(\"?)([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)(\\1)\\s*$)", + "end": "(?!\\G)", + "name": "string.unquoted.heredoc.php", + "patterns": [ + { + "include": "#heredoc_interior" + } + ] + }, + { + "begin": "(?=<<<\\s*'([a-zA-Z_]+[a-zA-Z0-9_]*)'\\s*$)", + "end": "(?!\\G)", + "name": "string.unquoted.nowdoc.php", + "patterns": [ + { + "include": "#nowdoc_interior" + } + ] + } + ] + }, + "heredoc_interior": { + "patterns": [ + { + "begin": "(<<<)\\s*(\"?)(HTML)(\\2)(\\s*)$", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + }, + "1": { + "name": "punctuation.definition.string.php" + }, + "3": { + "name": "keyword.operator.heredoc.php" + }, + "5": { + "name": "invalid.illegal.trailing-whitespace.php" + } + }, + "contentName": "text.html", + "end": "^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "keyword.operator.heredoc.php" + } + }, + "name": "meta.embedded.html", + "patterns": [ + { + "include": "#interpolation" + }, + { + "include": "text.html.basic" + } + ] + }, + { + "begin": "(<<<)\\s*(\"?)(XML)(\\2)(\\s*)$", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + }, + "1": { + "name": "punctuation.definition.string.php" + }, + "3": { + "name": "keyword.operator.heredoc.php" + }, + "5": { + "name": "invalid.illegal.trailing-whitespace.php" + } + }, + "contentName": "text.xml", + "end": "^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "keyword.operator.heredoc.php" + } + }, + "name": "meta.embedded.xml", + "patterns": [ + { + "include": "#interpolation" + }, + { + "include": "text.xml" + } + ] + }, + { + "begin": "(<<<)\\s*(\"?)([DS]QL)(\\2)(\\s*)$", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + }, + "1": { + "name": "punctuation.definition.string.php" + }, + "3": { + "name": "keyword.operator.heredoc.php" + }, + "5": { + "name": "invalid.illegal.trailing-whitespace.php" + } + }, + "contentName": "source.sql", + "end": "^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "keyword.operator.heredoc.php" + } + }, + "name": "meta.embedded.sql", + "patterns": [ + { + "include": "#interpolation" + }, + { + "include": "source.sql" + } + ] + }, + { + "begin": "(<<<)\\s*(\"?)(JAVASCRIPT|JS)(\\2)(\\s*)$", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + }, + "1": { + "name": "punctuation.definition.string.php" + }, + "3": { + "name": "keyword.operator.heredoc.php" + }, + "5": { + "name": "invalid.illegal.trailing-whitespace.php" + } + }, + "contentName": "source.js", + "end": "^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "keyword.operator.heredoc.php" + } + }, + "name": "meta.embedded.js", + "patterns": [ + { + "include": "#interpolation" + }, + { + "include": "source.js" + } + ] + }, + { + "begin": "(<<<)\\s*(\"?)(JSON)(\\2)(\\s*)$", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + }, + "1": { + "name": "punctuation.definition.string.php" + }, + "3": { + "name": "keyword.operator.heredoc.php" + }, + "5": { + "name": "invalid.illegal.trailing-whitespace.php" + } + }, + "contentName": "source.json", + "end": "^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "keyword.operator.heredoc.php" + } + }, + "name": "meta.embedded.json", + "patterns": [ + { + "include": "#interpolation" + }, + { + "include": "source.json" + } + ] + }, + { + "begin": "(<<<)\\s*(\"?)(CSS)(\\2)(\\s*)$", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + }, + "1": { + "name": "punctuation.definition.string.php" + }, + "3": { + "name": "keyword.operator.heredoc.php" + }, + "5": { + "name": "invalid.illegal.trailing-whitespace.php" + } + }, + "contentName": "source.css", + "end": "^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "keyword.operator.heredoc.php" + } + }, + "name": "meta.embedded.css", + "patterns": [ + { + "include": "#interpolation" + }, + { + "include": "source.css" + } + ] + }, + { + "begin": "(<<<)\\s*(\"?)(REGEXP?)(\\2)(\\s*)$", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + }, + "1": { + "name": "punctuation.definition.string.php" + }, + "3": { + "name": "keyword.operator.heredoc.php" + }, + "5": { + "name": "invalid.illegal.trailing-whitespace.php" + } + }, + "contentName": "string.regexp.heredoc.php", + "end": "^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "keyword.operator.heredoc.php" + } + }, + "patterns": [ + { + "include": "#interpolation" + }, + { + "match": "(\\\\){1,2}[.$^\\[\\]{}]", + "name": "constant.character.escape.regex.php" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.arbitrary-repitition.php" + }, + "3": { + "name": "punctuation.definition.arbitrary-repitition.php" + } + }, + "match": "({)\\d+(,\\d+)?(})", + "name": "string.regexp.arbitrary-repitition.php" + }, + { + "begin": "\\[(?:\\^?\\])?", + "captures": { + "0": { + "name": "punctuation.definition.character-class.php" + } + }, + "end": "\\]", + "name": "string.regexp.character-class.php", + "patterns": [ + { + "match": "\\\\[\\\\'\\[\\]]", + "name": "constant.character.escape.php" + } + ] + }, + { + "match": "[$^+*]", + "name": "keyword.operator.regexp.php" + }, + { + "begin": "(?i)(?<=^|\\s)(#)\\s(?=[[a-z0-9_\\x{7f}-\\x{10ffff},. \\t?!-][^\\x{00}-\\x{7f}]]*$)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.php" + } + }, + "end": "$", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.php" + } + }, + "name": "comment.line.number-sign.php" + } + ] + }, + { + "begin": "(<<<)\\s*(\"?)(BLADE)(\\2)(\\s*)$", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + }, + "1": { + "name": "punctuation.definition.string.php" + }, + "3": { + "name": "keyword.operator.heredoc.php" + }, + "5": { + "name": "invalid.illegal.trailing-whitespace.php" + } + }, + "contentName": "text.html.php.blade", + "end": "^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "keyword.operator.heredoc.php" + } + }, + "name": "meta.embedded.php.blade", + "patterns": [ + { + "include": "#interpolation" + } + ] + }, + { + "begin": "(?i)(<<<)\\s*(\"?)([a-z_\\x{7f}-\\x{10ffff}]+[a-z0-9_\\x{7f}-\\x{10ffff}]*)(\\2)(\\s*)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.string.php" + }, + "3": { + "name": "keyword.operator.heredoc.php" + }, + "5": { + "name": "invalid.illegal.trailing-whitespace.php" + } + }, + "end": "^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])", + "endCaptures": { + "1": { + "name": "keyword.operator.heredoc.php" + } + }, + "patterns": [ + { + "include": "#interpolation" + } + ] + } + ] + }, + "nowdoc_interior": { + "patterns": [ + { + "begin": "(<<<)\\s*'(HTML)'(\\s*)$", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + }, + "1": { + "name": "punctuation.definition.string.php" + }, + "2": { + "name": "keyword.operator.nowdoc.php" + }, + "3": { + "name": "invalid.illegal.trailing-whitespace.php" + } + }, + "contentName": "text.html", + "end": "^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "keyword.operator.nowdoc.php" + } + }, + "name": "meta.embedded.html", + "patterns": [ + { + "include": "text.html.basic" + } + ] + }, + { + "begin": "(<<<)\\s*'(XML)'(\\s*)$", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + }, + "1": { + "name": "punctuation.definition.string.php" + }, + "2": { + "name": "keyword.operator.nowdoc.php" + }, + "3": { + "name": "invalid.illegal.trailing-whitespace.php" + } + }, + "contentName": "text.xml", + "end": "^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "keyword.operator.nowdoc.php" + } + }, + "name": "meta.embedded.xml", + "patterns": [ + { + "include": "text.xml" + } + ] + }, + { + "begin": "(<<<)\\s*'([DS]QL)'(\\s*)$", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + }, + "1": { + "name": "punctuation.definition.string.php" + }, + "2": { + "name": "keyword.operator.nowdoc.php" + }, + "3": { + "name": "invalid.illegal.trailing-whitespace.php" + } + }, + "contentName": "source.sql", + "end": "^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "keyword.operator.nowdoc.php" + } + }, + "name": "meta.embedded.sql", + "patterns": [ + { + "include": "source.sql" + } + ] + }, + { + "begin": "(<<<)\\s*'(JAVASCRIPT|JS)'(\\s*)$", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + }, + "1": { + "name": "punctuation.definition.string.php" + }, + "2": { + "name": "keyword.operator.nowdoc.php" + }, + "3": { + "name": "invalid.illegal.trailing-whitespace.php" + } + }, + "contentName": "source.js", + "end": "^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "keyword.operator.nowdoc.php" + } + }, + "name": "meta.embedded.js", + "patterns": [ + { + "include": "source.js" + } + ] + }, + { + "begin": "(<<<)\\s*'(JSON)'(\\s*)$", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + }, + "1": { + "name": "punctuation.definition.string.php" + }, + "2": { + "name": "keyword.operator.nowdoc.php" + }, + "3": { + "name": "invalid.illegal.trailing-whitespace.php" + } + }, + "contentName": "source.json", + "end": "^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "keyword.operator.nowdoc.php" + } + }, + "name": "meta.embedded.json", + "patterns": [ + { + "include": "source.json" + } + ] + }, + { + "begin": "(<<<)\\s*'(CSS)'(\\s*)$", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + }, + "1": { + "name": "punctuation.definition.string.php" + }, + "2": { + "name": "keyword.operator.nowdoc.php" + }, + "3": { + "name": "invalid.illegal.trailing-whitespace.php" + } + }, + "contentName": "source.css", + "end": "^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "keyword.operator.nowdoc.php" + } + }, + "name": "meta.embedded.css", + "patterns": [ + { + "include": "source.css" + } + ] + }, + { + "begin": "(<<<)\\s*'(REGEXP?)'(\\s*)$", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + }, + "1": { + "name": "punctuation.definition.string.php" + }, + "2": { + "name": "keyword.operator.nowdoc.php" + }, + "3": { + "name": "invalid.illegal.trailing-whitespace.php" + } + }, + "contentName": "string.regexp.nowdoc.php", + "end": "^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "keyword.operator.nowdoc.php" + } + }, + "patterns": [ + { + "match": "(\\\\){1,2}[.$^\\[\\]{}]", + "name": "constant.character.escape.regex.php" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.arbitrary-repitition.php" + }, + "3": { + "name": "punctuation.definition.arbitrary-repitition.php" + } + }, + "match": "({)\\d+(,\\d+)?(})", + "name": "string.regexp.arbitrary-repitition.php" + }, + { + "begin": "\\[(?:\\^?\\])?", + "captures": { + "0": { + "name": "punctuation.definition.character-class.php" + } + }, + "end": "\\]", + "name": "string.regexp.character-class.php", + "patterns": [ + { + "match": "\\\\[\\\\'\\[\\]]", + "name": "constant.character.escape.php" + } + ] + }, + { + "match": "[$^+*]", + "name": "keyword.operator.regexp.php" + }, + { + "begin": "(?i)(?<=^|\\s)(#)\\s(?=[[a-z0-9_\\x{7f}-\\x{10ffff},. \\t?!-][^\\x{00}-\\x{7f}]]*$)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.php" + } + }, + "end": "$", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.php" + } + }, + "name": "comment.line.number-sign.php" + } + ] + }, + { + "begin": "(<<<)\\s*'(BLADE)'(\\s*)$", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.php" + }, + "1": { + "name": "punctuation.definition.string.php" + }, + "2": { + "name": "keyword.operator.nowdoc.php" + }, + "3": { + "name": "invalid.illegal.trailing-whitespace.php" + } + }, + "contentName": "text.html.php.blade", + "end": "^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.php" + }, + "1": { + "name": "keyword.operator.nowdoc.php" + } + }, + "name": "meta.embedded.php.blade" + }, + { + "begin": "(?i)(<<<)\\s*'([a-z_\\x{7f}-\\x{10ffff}]+[a-z0-9_\\x{7f}-\\x{10ffff}]*)'(\\s*)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.string.php" + }, + "2": { + "name": "keyword.operator.nowdoc.php" + }, + "3": { + "name": "invalid.illegal.trailing-whitespace.php" + } + }, + "end": "^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{10ffff}])", + "endCaptures": { + "1": { + "name": "keyword.operator.nowdoc.php" + } + } + } + ] + }, + "instantiation": { + "begin": "(?i)(new)\\s+(?!class\\b)", + "beginCaptures": { + "1": { + "name": "keyword.other.new.php" + } + }, + "end": "(?i)(?=[^a-z0-9_\\x{7f}-\\x{10ffff}\\\\])", + "patterns": [ + { + "match": "(?i)(parent|static|self)(?![a-z0-9_\\x{7f}-\\x{10ffff}])", + "name": "storage.type.php" + }, + { + "include": "#class-name" + }, + { + "include": "#variable-name" + } + ] + }, + "interpolation": { + "patterns": [ + { + "match": "\\\\[0-7]{1,3}", + "name": "constant.character.escape.octal.php" + }, + { + "match": "\\\\x[0-9A-Fa-f]{1,2}", + "name": "constant.character.escape.hex.php" + }, + { + "match": "\\\\u{[0-9A-Fa-f]+}", + "name": "constant.character.escape.unicode.php" + }, + { + "match": "\\\\[nrtvef$\\\\]", + "name": "constant.character.escape.php" + }, + { + "begin": "{(?=\\$.*?})", + "beginCaptures": { + "0": { + "name": "punctuation.definition.variable.php" + } + }, + "end": "}", + "endCaptures": { + "0": { + "name": "punctuation.definition.variable.php" + } + }, + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "include": "#variable-name" + } + ] + }, + "interpolation_double_quoted": { + "patterns": [ + { + "match": "\\\\\"", + "name": "constant.character.escape.php" + }, + { + "include": "#interpolation" + } + ] + }, + "invoke-call": { + "captures": { + "1": { + "name": "variable.other.php" + }, + "2": { + "name": "punctuation.definition.variable.php" + } + }, + "match": "(?i)((\\$+)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)(?=\\s*\\()", + "name": "meta.function-call.invoke.php" + }, + "namespace": { + "begin": "(?i)(?:(namespace)|[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)?(\\\\)", + "beginCaptures": { + "1": { + "name": "variable.language.namespace.php" + }, + "2": { + "name": "punctuation.separator.inheritance.php" + } + }, + "end": "(?i)(?![a-z0-9_\\x{7f}-\\x{10ffff}]*\\\\)", + "name": "support.other.namespace.php", + "patterns": [ + { + "match": "\\\\", + "name": "punctuation.separator.inheritance.php" + } + ] + }, + "numbers": { + "patterns": [ + { + "match": "0[xX][0-9a-fA-F]+(?:_[0-9a-fA-F]+)*", + "name": "constant.numeric.hex.php" + }, + { + "match": "0[bB][01]+(?:_[01]+)*", + "name": "constant.numeric.binary.php" + }, + { + "match": "0[oO][0-7]+(?:_[0-7]+)*", + "name": "constant.numeric.octal.php" + }, + { + "match": "0(?:_?[0-7]+)+", + "name": "constant.numeric.octal.php" + }, + { + "match": "(?x)\n(?:\n (?:[0-9]+(?:_[0-9]+)*)?(\\.)[0-9]+(?:_[0-9]+)*(?:[eE][+-]?[0-9]+(?:_[0-9]+)*)?| # .3\n [0-9]+(?:_[0-9]+)*(\\.)(?:[0-9]+(?:_[0-9]+)*)?(?:[eE][+-]?[0-9]+(?:_[0-9]+)*)?| # 3.\n [0-9]+(?:_[0-9]+)*[eE][+-]?[0-9]+(?:_[0-9]+)* # 2e-3\n)", + "name": "constant.numeric.decimal.php", + "captures": { + "1": { + "name": "punctuation.separator.decimal.period.php" + }, + "2": { + "name": "punctuation.separator.decimal.period.php" + } + } + }, + { + "match": "0|[1-9](?:_?[0-9]+)*", + "name": "constant.numeric.decimal.php" + } + ] + }, + "object": { + "patterns": [ + { + "begin": "(\\??->)\\s*(\\$?{)", + "beginCaptures": { + "1": { + "name": "keyword.operator.class.php" + }, + "2": { + "name": "punctuation.definition.variable.php" + } + }, + "end": "}", + "endCaptures": { + "0": { + "name": "punctuation.definition.variable.php" + } + }, + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "begin": "(?i)(\\??->)\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "keyword.operator.class.php" + }, + "2": { + "name": "entity.name.function.php" + }, + "3": { + "name": "punctuation.definition.arguments.begin.bracket.round.php" + } + }, + "end": "\\)|(?=\\?>)", + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.end.bracket.round.php" + } + }, + "name": "meta.method-call.php", + "patterns": [ + { + "include": "#named-arguments" + }, + { + "include": "$self" + } + ] + }, + { + "captures": { + "1": { + "name": "keyword.operator.class.php" + }, + "2": { + "name": "variable.other.property.php" + }, + "3": { + "name": "punctuation.definition.variable.php" + } + }, + "match": "(?i)(\\??->)\\s*((\\$+)?[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)?" + } + ] + }, + "php-types": { + "patterns": [ + { + "match": "\\?", + "name": "keyword.operator.nullable-type.php" + }, + { + "match": "[|&]", + "name": "punctuation.separator.delimiter.php" + }, + { + "match": "(?i)\\b(null|int|float|bool|string|array|object|callable|iterable|true|false|mixed|void)\\b", + "name": "keyword.other.type.php" + }, + { + "match": "(?i)\\b(parent|self)\\b", + "name": "storage.type.php" + }, + { + "match": "\\(", + "name": "punctuation.definition.type.begin.bracket.round.php" + }, + { + "match": "\\)", + "name": "punctuation.definition.type.end.bracket.round.php" + }, + { + "include": "#class-name" + } + ] + }, + "parameter-default-types": { + "patterns": [ + { + "include": "#strings" + }, + { + "include": "#numbers" + }, + { + "include": "#string-backtick" + }, + { + "include": "#variables" + }, + { + "match": "=>", + "name": "keyword.operator.key.php" + }, + { + "match": "=", + "name": "keyword.operator.assignment.php" + }, + { + "match": "&(?=\\s*\\$)", + "name": "storage.modifier.reference.php" + }, + { + "begin": "(array)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "support.function.construct.php" + }, + "2": { + "name": "punctuation.definition.array.begin.bracket.round.php" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.array.end.bracket.round.php" + } + }, + "name": "meta.array.php", + "patterns": [ + { + "include": "#parameter-default-types" + } + ] + }, + { + "begin": "\\[", + "beginCaptures": { + "0": { + "name": "punctuation.section.array.begin.php" + } + }, + "end": "\\]|(?=\\?>)", + "endCaptures": { + "0": { + "name": "punctuation.section.array.end.php" + } + }, + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "include": "#instantiation" + }, + { + "begin": "(?xi)\n(?=[a-z0-9_\\x{7f}-\\x{10ffff}\\\\]+\n (::)\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)?\n)", + "end": "(?i)(::)\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)?", + "endCaptures": { + "1": { + "name": "keyword.operator.class.php" + }, + "2": { + "name": "constant.other.class.php" + } + }, + "patterns": [ + { + "include": "#class-name" + } + ] + }, + { + "include": "#constants" + } + ] + }, + "php_doc": { + "patterns": [ + { + "match": "^(?!\\s*\\*).*?(?:(?=\\*\\/)|$\\n?)", + "name": "invalid.illegal.missing-asterisk.phpdoc.php" + }, + { + "captures": { + "1": { + "name": "keyword.other.phpdoc.php" + }, + "3": { + "name": "storage.modifier.php" + }, + "4": { + "name": "invalid.illegal.wrong-access-type.phpdoc.php" + } + }, + "match": "^\\s*\\*\\s*(@access)\\s+((public|private|protected)|(.+))\\s*$" + }, + { + "captures": { + "1": { + "name": "keyword.other.phpdoc.php" + }, + "2": { + "name": "markup.underline.link.php" + } + }, + "match": "(@xlink)\\s+(.+)\\s*$" + }, + { + "begin": "(@(?:global|param|property(-(read|write))?|return|throws|var))\\s+(?=[?A-Za-z_\\x{7f}-\\x{10ffff}\\\\]|\\()", + "beginCaptures": { + "1": { + "name": "keyword.other.phpdoc.php" + } + }, + "end": "(?=\\s|\\*/)", + "contentName": "meta.other.type.phpdoc.php", + "patterns": [ + { + "include": "#php_doc_types_array_multiple" + }, + { + "include": "#php_doc_types_array_single" + }, + { + "include": "#php_doc_types" + } + ] + }, + { + "match": "(?x)\n@\n(\n api|abstract|author|category|copyright|example|global|inherit[Dd]oc|internal|\n license|link|method|property(-(read|write))?|package|param|return|see|since|source|\n static|subpackage|throws|todo|var|version|uses|deprecated|final|ignore\n)\\b", + "name": "keyword.other.phpdoc.php" + }, + { + "captures": { + "1": { + "name": "keyword.other.phpdoc.php" + } + }, + "match": "{(@(link|inherit[Dd]oc)).+?}", + "name": "meta.tag.inline.phpdoc.php" + } + ] + }, + "php_doc_types": { + "match": "(?i)\\??[a-z_\\x{7f}-\\x{10ffff}\\\\][a-z0-9_\\x{7f}-\\x{10ffff}\\\\]*([|&]\\??[a-z_\\x{7f}-\\x{10ffff}\\\\][a-z0-9_\\x{7f}-\\x{10ffff}\\\\]*)*", + "captures": { + "0": { + "patterns": [ + { + "match": "\\?", + "name": "keyword.operator.nullable-type.php" + }, + { + "match": "(?x)\\b\n(string|integer|int|boolean|bool|float|double|object|mixed\n|array|resource|void|null|callback|false|true|self|static)\\b", + "name": "keyword.other.type.php" + }, + { + "include": "#class-name" + }, + { + "match": "[|&]", + "name": "punctuation.separator.delimiter.php" + }, + { + "match": "\\(", + "name": "punctuation.definition.type.begin.bracket.round.php" + }, + { + "match": "\\)", + "name": "punctuation.definition.type.end.bracket.round.php" + } + ] + } + } + }, + "php_doc_types_array_multiple": { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.type.begin.bracket.round.phpdoc.php" + } + }, + "end": "(\\))(\\[\\])|(?=\\*/)", + "endCaptures": { + "1": { + "name": "punctuation.definition.type.end.bracket.round.phpdoc.php" + }, + "2": { + "name": "keyword.other.array.phpdoc.php" + } + }, + "patterns": [ + { + "include": "#php_doc_types_array_multiple" + }, + { + "include": "#php_doc_types_array_single" + }, + { + "include": "#php_doc_types" + }, + { + "match": "[|&]", + "name": "punctuation.separator.delimiter.php" + } + ] + }, + "php_doc_types_array_single": { + "match": "(?i)([a-z_\\x{7f}-\\x{10ffff}\\\\][a-z0-9_\\x{7f}-\\x{10ffff}\\\\]*)(\\[\\])", + "captures": { + "1": { + "patterns": [ + { + "include": "#php_doc_types" + } + ] + }, + "2": { + "name": "keyword.other.array.phpdoc.php" + } + } + }, + "regex-double-quoted": { + "begin": "\"/(?=(\\\\.|[^\"/])++/[imsxeADSUXu]*\")", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.php" + } + }, + "end": "(/)([imsxeADSUXu]*)(\")", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.php" + } + }, + "name": "string.regexp.double-quoted.php", + "patterns": [ + { + "match": "(\\\\){1,2}[.$^\\[\\]{}]", + "name": "constant.character.escape.regex.php" + }, + { + "include": "#interpolation_double_quoted" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.arbitrary-repetition.php" + }, + "3": { + "name": "punctuation.definition.arbitrary-repetition.php" + } + }, + "match": "({)\\d+(,\\d+)?(})", + "name": "string.regexp.arbitrary-repetition.php" + }, + { + "begin": "\\[(?:\\^?\\])?", + "captures": { + "0": { + "name": "punctuation.definition.character-class.php" + } + }, + "end": "\\]", + "name": "string.regexp.character-class.php", + "patterns": [ + { + "include": "#interpolation_double_quoted" + } + ] + }, + { + "match": "[$^+*]", + "name": "keyword.operator.regexp.php" + } + ] + }, + "regex-single-quoted": { + "begin": "'/(?=(\\\\(?:\\\\(?:\\\\[\\\\']?|[^'])|.)|[^'/])++/[imsxeADSUXu]*')", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.php" + } + }, + "end": "(/)([imsxeADSUXu]*)(')", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.php" + } + }, + "name": "string.regexp.single-quoted.php", + "patterns": [ + { + "include": "#single_quote_regex_escape" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.arbitrary-repetition.php" + }, + "3": { + "name": "punctuation.definition.arbitrary-repetition.php" + } + }, + "match": "({)\\d+(,\\d+)?(})", + "name": "string.regexp.arbitrary-repetition.php" + }, + { + "begin": "\\[(?:\\^?\\])?", + "captures": { + "0": { + "name": "punctuation.definition.character-class.php" + } + }, + "end": "\\]", + "name": "string.regexp.character-class.php" + }, + { + "match": "[$^+*]", + "name": "keyword.operator.regexp.php" + } + ] + }, + "scope-resolution": { + "patterns": [ + { + "match": "([A-Za-z_\\x{7f}-\\x{10ffff}\\\\][A-Za-z0-9_\\x{7f}-\\x{10ffff}\\\\]*)(?=\\s*::)", + "captures": { + "1": { + "patterns": [ + { + "match": "\\b(self|static|parent)\\b", + "name": "storage.type.php" + }, + { + "include": "#class-name" + }, + { + "include": "#variable-name" + } + ] + } + } + }, + { + "begin": "(?i)(::)\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "keyword.operator.class.php" + }, + "2": { + "name": "entity.name.function.php" + }, + "3": { + "name": "punctuation.definition.arguments.begin.bracket.round.php" + } + }, + "end": "\\)|(?=\\?>)", + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.end.bracket.round.php" + } + }, + "name": "meta.method-call.static.php", + "patterns": [ + { + "include": "#named-arguments" + }, + { + "include": "$self" + } + ] + }, + { + "match": "(?i)(::)\\s*(class)\\b", + "captures": { + "1": { + "name": "keyword.operator.class.php" + }, + "2": { + "name": "keyword.other.class.php" + } + } + }, + { + "match": "(?xi)\n(::)\\s*\n(?:\n ((\\$+)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*) # Variable\n |\n ([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*) # Constant\n)?", + "captures": { + "1": { + "name": "keyword.operator.class.php" + }, + "2": { + "name": "variable.other.class.php" + }, + "3": { + "name": "punctuation.definition.variable.php" + }, + "4": { + "name": "constant.other.class.php" + } + } + } + ] + }, + "single_quote_regex_escape": { + "match": "\\\\(?:\\\\(?:\\\\[\\\\']?|[^'])|.)", + "name": "constant.character.escape.php" + }, + "sql-string-double-quoted": { + "begin": "\"\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER|AND|WITH)\\b)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.php" + } + }, + "contentName": "source.sql.embedded.php", + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.php" + } + }, + "name": "string.quoted.double.sql.php", + "patterns": [ + { + "match": "(#)(\\\\\"|[^\"])*(?=\"|$)", + "name": "comment.line.number-sign.sql", + "captures": { + "1": { + "name": "punctuation.definition.comment.sql" + } + } + }, + { + "match": "(--)(\\\\\"|[^\"])*(?=\"|$)", + "name": "comment.line.double-dash.sql", + "captures": { + "1": { + "name": "punctuation.definition.comment.sql" + } + } + }, + { + "match": "\\\\[\\\\\"`']", + "name": "constant.character.escape.php" + }, + { + "match": "'(?=((\\\\')|[^'\"])*(\"|$))", + "name": "string.quoted.single.unclosed.sql" + }, + { + "match": "`(?=((\\\\`)|[^`\"])*(\"|$))", + "name": "string.quoted.other.backtick.unclosed.sql" + }, + { + "begin": "'", + "end": "'", + "name": "string.quoted.single.sql", + "patterns": [ + { + "include": "#interpolation_double_quoted" + } + ] + }, + { + "begin": "`", + "end": "`", + "name": "string.quoted.other.backtick.sql", + "patterns": [ + { + "include": "#interpolation_double_quoted" + } + ] + }, + { + "include": "#interpolation_double_quoted" + }, + { + "include": "source.sql" + } + ] + }, + "sql-string-single-quoted": { + "begin": "'\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER|AND|WITH)\\b)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.php" + } + }, + "contentName": "source.sql.embedded.php", + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.php" + } + }, + "name": "string.quoted.single.sql.php", + "patterns": [ + { + "match": "(#)(\\\\'|[^'])*(?='|$)", + "name": "comment.line.number-sign.sql", + "captures": { + "1": { + "name": "punctuation.definition.comment.sql" + } + } + }, + { + "match": "(--)(\\\\'|[^'])*(?='|$)", + "name": "comment.line.double-dash.sql", + "captures": { + "1": { + "name": "punctuation.definition.comment.sql" + } + } + }, + { + "match": "\\\\[\\\\'`\"]", + "name": "constant.character.escape.php" + }, + { + "match": "`(?=((\\\\`)|[^`'])*('|$))", + "name": "string.quoted.other.backtick.unclosed.sql" + }, + { + "match": "\"(?=((\\\\\")|[^\"'])*('|$))", + "name": "string.quoted.double.unclosed.sql" + }, + { + "include": "source.sql" + } + ] + }, + "string-backtick": { + "begin": "`", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.php" + } + }, + "end": "`", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.php" + } + }, + "name": "string.interpolated.php", + "patterns": [ + { + "match": "\\\\`", + "name": "constant.character.escape.php" + }, + { + "include": "#interpolation" + } + ] + }, + "string-double-quoted": { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.php" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.php" + } + }, + "name": "string.quoted.double.php", + "patterns": [ + { + "include": "#interpolation_double_quoted" + } + ] + }, + "string-single-quoted": { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.php" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.php" + } + }, + "name": "string.quoted.single.php", + "patterns": [ + { + "match": "\\\\[\\\\']", + "name": "constant.character.escape.php" + } + ] + }, + "strings": { + "patterns": [ + { + "include": "#regex-double-quoted" + }, + { + "include": "#sql-string-double-quoted" + }, + { + "include": "#string-double-quoted" + }, + { + "include": "#regex-single-quoted" + }, + { + "include": "#sql-string-single-quoted" + }, + { + "include": "#string-single-quoted" + } + ] + }, + "support": { + "patterns": [ + { + "match": "(?xi)\n\\b\napc_(\n store|sma_info|compile_file|clear_cache|cas|cache_info|inc|dec|define_constants|delete(_file)?|\n exists|fetch|load_constants|add|bin_(dump|load)(file)?\n)\\b", + "name": "support.function.apc.php" + }, + { + "match": "(?xi)\\b\n(\n shuffle|sizeof|sort|next|nat(case)?sort|count|compact|current|in_array|usort|uksort|uasort|\n pos|prev|end|each|extract|ksort|key(_exists)?|krsort|list|asort|arsort|rsort|reset|range|\n array(_(shift|sum|splice|search|slice|chunk|change_key_case|count_values|column|combine|\n (diff|intersect)(_(u)?(key|assoc))?|u(diff|intersect)(_(u)?assoc)?|unshift|unique|\n pop|push|pad|product|values|keys|key_exists|filter|fill(_keys)?|flip|walk(_recursive)?|\n reduce|replace(_recursive)?|reverse|rand|multisort|merge(_recursive)?|map)?)\n)\\b", + "name": "support.function.array.php" + }, + { + "match": "(?xi)\\b\n(\n show_source|sys_getloadavg|sleep|highlight_(file|string)|constant|connection_(aborted|status)|\n time_(nanosleep|sleep_until)|ignore_user_abort|die|define(d)?|usleep|uniqid|unpack|__halt_compiler|\n php_(check_syntax|strip_whitespace)|pack|eval|exit|get_browser\n)\\b", + "name": "support.function.basic_functions.php" + }, + { + "match": "(?i)\\bbc(scale|sub|sqrt|comp|div|pow(mod)?|add|mod|mul)\\b", + "name": "support.function.bcmath.php" + }, + { + "match": "(?i)\\bblenc_encrypt\\b", + "name": "support.function.blenc.php" + }, + { + "match": "(?i)\\bbz(compress|close|open|decompress|errstr|errno|error|flush|write|read)\\b", + "name": "support.function.bz2.php" + }, + { + "match": "(?xi)\\b\n(\n (French|Gregorian|Jewish|Julian)ToJD|cal_(to_jd|info|days_in_month|from_jd)|unixtojd|\n jdto(unix|jewish)|easter_(date|days)|JD(MonthName|To(Gregorian|Julian|French)|DayOfWeek)\n)\\b", + "name": "support.function.calendar.php" + }, + { + "match": "(?xi)\\b\n(\n class_alias|all_user_method(_array)?|is_(a|subclass_of)|__autoload|(class|interface|method|property|trait)_exists|\n get_(class(_(vars|methods))?|(called|parent)_class|object_vars|declared_(classes|interfaces|traits))\n)\\b", + "name": "support.function.classobj.php" + }, + { + "match": "(?xi)\\b\n(\n com_(create_guid|print_typeinfo|event_sink|load_typelib|get_active_object|message_pump)|\n variant_(sub|set(_type)?|not|neg|cast|cat|cmp|int|idiv|imp|or|div|date_(from|to)_timestamp|\n pow|eqv|fix|and|add|abs|round|get_type|xor|mod|mul)\n)\\b", + "name": "support.function.com.php" + }, + { + "match": "(?i)\\b(isset|unset|eval|empty|list)\\b", + "name": "support.function.construct.php" + }, + { + "match": "(?i)\\b(print|echo)\\b", + "name": "support.function.construct.output.php" + }, + { + "match": "(?i)\\bctype_(space|cntrl|digit|upper|punct|print|lower|alnum|alpha|graph|xdigit)\\b", + "name": "support.function.ctype.php" + }, + { + "match": "(?xi)\\b\ncurl_(\n share_(close|init|setopt)|strerror|setopt(_array)?|copy_handle|close|init|unescape|pause|escape|\n errno|error|exec|version|file_create|reset|getinfo|\n multi_(strerror|setopt|select|close|init|info_read|(add|remove)_handle|getcontent|exec)\n)\\b", + "name": "support.function.curl.php" + }, + { + "match": "(?xi)\\b\n(\n strtotime|str[fp]time|checkdate|time|timezone_name_(from_abbr|get)|idate|\n timezone_((location|offset|transitions|version)_get|(abbreviations|identifiers)_list|open)|\n date(_(sun(rise|set)|sun_info|sub|create(_(immutable_)?from_format)?|timestamp_(get|set)|timezone_(get|set)|time_set|\n isodate_set|interval_(create_from_date_string|format)|offset_get|diff|default_timezone_(get|set)|date_set|\n parse(_from_format)?|format|add|get_last_errors|modify))?|\n localtime|get(date|timeofday)|gm(strftime|date|mktime)|microtime|mktime\n)\\b", + "name": "support.function.datetime.php" + }, + { + "match": "(?i)\\bdba_(sync|handlers|nextkey|close|insert|optimize|open|delete|popen|exists|key_split|firstkey|fetch|list|replace)\\b", + "name": "support.function.dba.php" + }, + { + "match": "(?i)\\bdbx_(sort|connect|compare|close|escape_string|error|query|fetch_row)\\b", + "name": "support.function.dbx.php" + }, + { + "match": "(?i)\\b(scandir|chdir|chroot|closedir|opendir|dir|rewinddir|readdir|getcwd)\\b", + "name": "support.function.dir.php" + }, + { + "match": "(?xi)\\b\neio_(\n sync(fs)?|sync_file_range|symlink|stat(vfs)?|sendfile|set_min_parallel|set_max_(idle|poll_(reqs|time)|parallel)|\n seek|n(threads|op|pending|reqs|ready)|chown|chmod|custom|close|cancel|truncate|init|open|dup2|unlink|utime|poll|\n event_loop|f(sync|stat(vfs)?|chown|chmod|truncate|datasync|utime|allocate)|write|lstat|link|rename|realpath|\n read(ahead|dir|link)?|rmdir|get_(event_stream|last_error)|grp(_(add|cancel|limit))?|mknod|mkdir|busy\n)\\b", + "name": "support.function.eio.php" + }, + { + "match": "(?xi)\\b\nenchant_(\n dict_(store_replacement|suggest|check|is_in_session|describe|quick_check|add_to_(personal|session)|get_error)|\n broker_(set_ordering|init|dict_exists|describe|free(_dict)?|list_dicts|request_(pwl_)?dict|get_error)\n)\\b", + "name": "support.function.enchant.php" + }, + { + "match": "(?i)\\b(split(i)?|sql_regcase|ereg(i)?(_replace)?)\\b", + "name": "support.function.ereg.php" + }, + { + "match": "(?i)\\b((restore|set)_(error_handler|exception_handler)|trigger_error|debug_(print_)?backtrace|user_error|error_(log|reporting|get_last))\\b", + "name": "support.function.errorfunc.php" + }, + { + "match": "(?i)\\b(shell_exec|system|passthru|proc_(nice|close|terminate|open|get_status)|escapeshell(arg|cmd)|exec)\\b", + "name": "support.function.exec.php" + }, + { + "match": "(?i)\\b(exif_(thumbnail|tagname|imagetype|read_data)|read_exif_data)\\b", + "name": "support.function.exif.php" + }, + { + "match": "(?xi)\\b\nfann_(\n (duplicate|length|merge|shuffle|subset)_train_data|scale_(train(_data)?|(input|output)(_train_data)?)|\n set_(scaling_params|sarprop_(step_error_(shift|threshold_factor)|temperature|weight_decay_shift)|\n cascade_(num_candidate_groups|candidate_(change_fraction|limit|stagnation_epochs)|\n output_(change_fraction|stagnation_epochs)|weight_multiplier|activation_(functions|steepnesses)|\n (max|min)_(cand|out)_epochs)|\n callback|training_algorithm|train_(error|stop)_function|(input|output)_scaling_params|error_log|\n quickprop_(decay|mu)|weight(_array)?|learning_(momentum|rate)|bit_fail_limit|\n activation_(function|steepness)(_(hidden|layer|output))?|\n rprop_((decrease|increase)_factor|delta_(max|min|zero)))|\n save(_train)?|num_(input|output)_train_data|copy|clear_scaling_params|cascadetrain_on_(file|data)|\n create_((sparse|shortcut|standard)(_array)?|train(_from_callback)?|from_file)|\n test(_data)?|train(_(on_(file|data)|epoch))?|init_weights|descale_(input|output|train)|destroy(_train)?|\n print_error|run|reset_(MSE|err(no|str))|read_train_from_file|randomize_weights|\n get_(sarprop_(step_error_(shift|threshold_factor)|temperature|weight_decay_shift)|num_(input|output|layers)|\n network_type|MSE|connection_(array|rate)|bias_array|bit_fail(_limit)?|\n cascade_(num_(candidates|candidate_groups)|(candidate|output)_(change_fraction|limit|stagnation_epochs)|\n weight_multiplier|activation_(functions|steepnesses)(_count)?|(max|min)_(cand|out)_epochs)|\n total_(connections|neurons)|training_algorithm|train_(error|stop)_function|err(no|str)|\n quickprop_(decay|mu)|learning_(momentum|rate)|layer_array|activation_(function|steepness)|\n rprop_((decrease|increase)_factor|delta_(max|min|zero)))\n)\\b", + "name": "support.function.fann.php" + }, + { + "match": "(?xi)\\b\n(\n symlink|stat|set_file_buffer|chown|chgrp|chmod|copy|clearstatcache|touch|tempnam|tmpfile|\n is_(dir|(uploaded_)?file|executable|link|readable|writ(e)?able)|disk_(free|total)_space|diskfreespace|\n dirname|delete|unlink|umask|pclose|popen|pathinfo|parse_ini_(file|string)|fscanf|fstat|fseek|fnmatch|\n fclose|ftell|ftruncate|file(size|[acm]time|type|inode|owner|perms|group)?|file_(exists|(get|put)_contents)|\n f(open|puts|putcsv|passthru|eof|flush|write|lock|read|gets(s)?|getc(sv)?)|lstat|lchown|lchgrp|link(info)?|\n rename|rewind|read(file|link)|realpath(_cache_(get|size))?|rmdir|glob|move_uploaded_file|mkdir|basename\n)\\b", + "name": "support.function.file.php" + }, + { + "match": "(?i)\\b(finfo_(set_flags|close|open|file|buffer)|mime_content_type)\\b", + "name": "support.function.fileinfo.php" + }, + { + "match": "(?i)\\bfilter_(has_var|input(_array)?|id|var(_array)?|list)\\b", + "name": "support.function.filter.php" + }, + { + "match": "(?i)\\bfastcgi_finish_request\\b", + "name": "support.function.fpm.php" + }, + { + "match": "(?i)\\b(call_user_(func|method)(_array)?|create_function|unregister_tick_function|forward_static_call(_array)?|function_exists|func_(num_args|get_arg(s)?)|register_(shutdown|tick)_function|get_defined_functions)\\b", + "name": "support.function.funchand.php" + }, + { + "match": "(?i)\\b((n)?gettext|textdomain|d((n)?gettext|c(n)?gettext)|bind(textdomain|_textdomain_codeset))\\b", + "name": "support.function.gettext.php" + }, + { + "match": "(?xi)\\b\ngmp_(\n scan[01]|strval|sign|sub|setbit|sqrt(rem)?|hamdist|neg|nextprime|com|clrbit|cmp|testbit|\n intval|init|invert|import|or|div(exact)?|div_(q|qr|r)|jacobi|popcount|pow(m)?|perfect_square|\n prob_prime|export|fact|legendre|and|add|abs|root(rem)?|random(_(bits|range))?|gcd(ext)?|xor|mod|mul\n)\\b", + "name": "support.function.gmp.php" + }, + { + "match": "(?i)\\bhash(_(hmac(_file)?|copy|init|update(_(file|stream))?|pbkdf2|equals|file|final|algos))?\\b", + "name": "support.function.hash.php" + }, + { + "match": "(?xi)\\b\n(\n http_(support|send_(status|stream|content_(disposition|type)|data|file|last_modified)|head|\n negotiate_(charset|content_type|language)|chunked_decode|cache_(etag|last_modified)|throttle|\n inflate|deflate|date|post_(data|fields)|put_(data|file|stream)|persistent_handles_(count|clean|ident)|\n parse_(cookie|headers|message|params)|redirect|request(_(method_(exists|name|(un)?register)|body_encode))?|\n get(_request_(headers|body(_stream)?))?|match_(etag|modified|request_header)|build_(cookie|str|url))|\n ob_(etag|deflate|inflate)handler\n)\\b", + "name": "support.function.http.php" + }, + { + "match": "(?i)\\b(iconv(_(str(pos|len|rpos)|substr|(get|set)_encoding|mime_(decode(_headers)?|encode)))?|ob_iconv_handler)\\b", + "name": "support.function.iconv.php" + }, + { + "match": "(?i)\\biis_((start|stop)_(service|server)|set_(script_map|server_rights|dir_security|app_settings)|(add|remove)_server|get_(script_map|service_state|server_(rights|by_(comment|path))|dir_security))\\b", + "name": "support.function.iisfunc.php" + }, + { + "match": "(?xi)\\b\n(\n iptc(embed|parse)|(jpeg|png)2wbmp|gd_info|getimagesize(fromstring)?|\n image(s[xy]|scale|(char|string)(up)?|set(style|thickness|tile|interpolation|pixel|brush)|savealpha|\n convolution|copy(resampled|resized|merge(gray)?)?|colors(forindex|total)|\n color(set|closest(alpha|hwb)?|transparent|deallocate|(allocate|exact|resolve)(alpha)?|at|match)|\n crop(auto)?|create(truecolor|from(string|jpeg|png|wbmp|webp|gif|gd(2(part)?)?|xpm|xbm))?|\n types|ttf(bbox|text)|truecolortopalette|istruecolor|interlace|2wbmp|destroy|dashedline|jpeg|\n _type_to_(extension|mime_type)|ps(slantfont|text|(encode|extend|free|load)font|bbox)|png|polygon|\n palette(copy|totruecolor)|ellipse|ft(text|bbox)|filter|fill|filltoborder|\n filled(arc|ellipse|polygon|rectangle)|font(height|width)|flip|webp|wbmp|line|loadfont|layereffect|\n antialias|affine(matrix(concat|get))?|alphablending|arc|rotate|rectangle|gif|gd(2)?|gammacorrect|\n grab(screen|window)|xbm)\n)\\b", + "name": "support.function.image.php" + }, + { + "match": "(?xi)\\b\n(\n sys_get_temp_dir|set_(time_limit|include_path|magic_quotes_runtime)|cli_(get|set)_process_title|\n ini_(alter|get(_all)?|restore|set)|zend_(thread_id|version|logo_guid)|dl|php(credits|info|version)|\n php_(sapi_name|ini_(scanned_files|loaded_file)|uname|logo_guid)|putenv|extension_loaded|version_compare|\n assert(_options)?|restore_include_path|gc_(collect_cycles|disable|enable(d)?)|getopt|\n get_(cfg_var|current_user|defined_constants|extension_funcs|include_path|included_files|loaded_extensions|\n magic_quotes_(gpc|runtime)|required_files|resources)|\n get(env|lastmod|rusage|my(inode|[gup]id))|\n memory_get_(peak_)?usage|main|magic_quotes_runtime\n)\\b", + "name": "support.function.info.php" + }, + { + "match": "(?xi)\\b\nibase_(\n set_event_handler|service_(attach|detach)|server_info|num_(fields|params)|name_result|connect|\n commit(_ret)?|close|trans|delete_user|drop_db|db_info|pconnect|param_info|prepare|err(code|msg)|\n execute|query|field_info|fetch_(assoc|object|row)|free_(event_handler|query|result)|wait_event|\n add_user|affected_rows|rollback(_ret)?|restore|gen_id|modify_user|maintain_db|backup|\n blob_(cancel|close|create|import|info|open|echo|add|get)\n)\\b", + "name": "support.function.interbase.php" + }, + { + "match": "(?xi)\\b\n(\n normalizer_(normalize|is_normalized)|idn_to_(unicode|utf8|ascii)|\n numfmt_(set_(symbol|(text_)?attribute|pattern)|create|(parse|format)(_currency)?|\n get_(symbol|(text_)?attribute|pattern|error_(code|message)|locale))|\n collator_(sort(_with_sort_keys)?|set_(attribute|strength)|compare|create|asort|\n get_(strength|sort_key|error_(code|message)|locale|attribute))|\n transliterator_(create(_(inverse|from_rules))?|transliterate|list_ids|get_error_(code|message))|\n intl(cal|tz)_get_error_(code|message)|intl_(is_failure|error_name|get_error_(code|message))|\n datefmt_(set_(calendar|lenient|pattern|timezone(_id)?)|create|is_lenient|parse|format(_object)?|localtime|\n get_(calendar(_object)?|time(type|zone(_id)?)|datetype|pattern|error_(code|message)|locale))|\n locale_(set_default|compose|canonicalize|parse|filter_matches|lookup|accept_from_http|\n get_(script|display_(script|name|variant|language|region)|default|primary_language|keywords|all_variants|region))|\n resourcebundle_(create|count|locales|get(_(error_(code|message)))?)|\n grapheme_(str(i?str|r?i?pos|len)|substr|extract)|\n msgfmt_(set_pattern|create|(format|parse)(_message)?|get_(pattern|error_(code|message)|locale))\n)\\b", + "name": "support.function.intl.php" + }, + { + "match": "(?i)\\bjson_(decode|encode|last_error(_msg)?)\\b", + "name": "support.function.json.php" + }, + { + "match": "(?xi)\\b\nldap_(\n start|tls|sort|search|sasl_bind|set_(option|rebind_proc)|(first|next)_(attribute|entry|reference)|\n connect|control_paged_result(_response)?|count_entries|compare|close|t61_to_8859|8859_to_t61|\n dn2ufn|delete|unbind|parse_(reference|result)|escape|errno|err2str|error|explode_dn|bind|\n free_result|list|add|rename|read|get_(option|dn|entries|values(_len)?|attributes)|modify(_batch)?|\n mod_(add|del|replace)\n)\\b", + "name": "support.function.ldap.php" + }, + { + "match": "(?i)\\blibxml_(set_(streams_context|external_entity_loader)|clear_errors|disable_entity_loader|use_internal_errors|get_(errors|last_error))\\b", + "name": "support.function.libxml.php" + }, + { + "match": "(?i)\\b(ezmlm_hash|mail)\\b", + "name": "support.function.mail.php" + }, + { + "match": "(?xi)\\b\n(\n (a)?(cos|sin|tan)(h)?|sqrt|srand|hypot|hexdec|ceil|is_(nan|(in)?finite)|octdec|dec(hex|oct|bin)|deg2rad|\n pi|pow|exp(m1)?|floor|fmod|lcg_value|log(1(p|0))?|atan2|abs|round|rand|rad2deg|getrandmax|\n mt_(srand|rand|getrandmax)|max|min|bindec|base_convert\n)\\b", + "name": "support.function.math.php" + }, + { + "match": "(?xi)\\b\nmb_(\n str(cut|str|to(lower|upper)|istr|ipos|imwidth|pos|width|len|rchr|richr|ripos|rpos)|\n substitute_character|substr(_count)?|split|send_mail|http_(input|output)|check_encoding|\n convert_(case|encoding|kana|variables)|internal_encoding|output_handler|decode_(numericentity|mimeheader)|\n detect_(encoding|order)|parse_str|preferred_mime_name|encoding_aliases|encode_(numericentity|mimeheader)|\n ereg(i(_replace)?)?|ereg_(search(_(get(pos|regs)|init|regs|(set)?pos))?|replace(_callback)?|match)|\n list_encodings|language|regex_(set_options|encoding)|get_info\n)\\b", + "name": "support.function.mbstring.php" + }, + { + "match": "(?xi)\\b\n(\n mcrypt_(\n cfb|create_iv|cbc|ofb|decrypt|encrypt|ecb|list_(algorithms|modes)|generic(_((de)?init|end))?|\n enc_(self_test|is_block_(algorithm|algorithm_mode|mode)|\n get_(supported_key_sizes|(block|iv|key)_size|(algorithms|modes)_name))|\n get_(cipher_name|(block|iv|key)_size)|\n module_(close|self_test|is_block_(algorithm|algorithm_mode|mode)|open|\n get_(supported_key_sizes|algo_(block|key)_size)))|\n mdecrypt_generic\n)\\b", + "name": "support.function.mcrypt.php" + }, + { + "match": "(?i)\\bmemcache_debug\\b", + "name": "support.function.memcache.php" + }, + { + "match": "(?i)\\bmhash(_(count|keygen_s2k|get_(hash_name|block_size)))?\\b", + "name": "support.function.mhash.php" + }, + { + "match": "(?i)\\b(log_(cmd_(insert|delete|update)|killcursor|write_batch|reply|getmore)|bson_(decode|encode))\\b", + "name": "support.function.mongo.php" + }, + { + "match": "(?xi)\\b\nmysql_(\n stat|set_charset|select_db|num_(fields|rows)|connect|client_encoding|close|create_db|escape_string|\n thread_id|tablename|insert_id|info|data_seek|drop_db|db_(name|query)|unbuffered_query|pconnect|ping|\n errno|error|query|field_(seek|name|type|table|flags|len)|fetch_(object|field|lengths|assoc|array|row)|\n free_result|list_(tables|dbs|processes|fields)|affected_rows|result|real_escape_string|\n get_(client|host|proto|server)_info\n)\\b", + "name": "support.function.mysql.php" + }, + { + "match": "(?xi)\\b\nmysqli_(\n ssl_set|store_result|stat|send_(query|long_data)|set_(charset|opt|local_infile_(default|handler))|\n stmt_(store_result|send_long_data|next_result|close|init|data_seek|prepare|execute|fetch|free_result|\n attr_(get|set)|result_metadata|reset|get_(result|warnings)|more_results|bind_(param|result))|\n select_db|slave_query|savepoint|next_result|change_user|character_set_name|connect|commit|\n client_encoding|close|thread_safe|init|options|(enable|disable)_(reads_from_master|rpl_parse)|\n dump_debug_info|debug|data_seek|use_result|ping|poll|param_count|prepare|escape_string|execute|\n embedded_server_(start|end)|kill|query|field_seek|free_result|autocommit|rollback|report|refresh|\n fetch(_(object|fields|field(_direct)?|assoc|all|array|row))?|rpl_(parse_enabled|probe|query_type)|\n release_savepoint|reap_async_query|real_(connect|escape_string|query)|more_results|multi_query|\n get_(charset|connection_stats|client_(stats|info|version)|cache_stats|warnings|links_stats|metadata)|\n master_query|bind_(param|result)|begin_transaction\n)\\b", + "name": "support.function.mysqli.php" + }, + { + "match": "(?i)\\bmysqlnd_memcache_(set|get_config)\\b", + "name": "support.function.mysqlnd-memcache.php" + }, + { + "match": "(?i)\\bmysqlnd_ms_(set_(user_pick_server|qos)|dump_servers|query_is_select|fabric_select_(shard|global)|get_(stats|last_(used_connection|gtid))|xa_(commit|rollback|gc|begin)|match_wild)\\b", + "name": "support.function.mysqlnd-ms.php" + }, + { + "match": "(?i)\\bmysqlnd_qc_(set_(storage_handler|cache_condition|is_select|user_handlers)|clear_cache|get_(normalized_query_trace_log|core_stats|cache_info|query_trace_log|available_handlers))\\b", + "name": "support.function.mysqlnd-qc.php" + }, + { + "match": "(?i)\\bmysqlnd_uh_(set_(statement|connection)_proxy|convert_to_mysqlnd)\\b", + "name": "support.function.mysqlnd-uh.php" + }, + { + "match": "(?xi)\\b\n(\n syslog|socket_(set_(blocking|timeout)|get_status)|set(raw)?cookie|http_response_code|openlog|\n headers_(list|sent)|header(_(register_callback|remove))?|checkdnsrr|closelog|inet_(ntop|pton)|ip2long|\n openlog|dns_(check_record|get_(record|mx))|define_syslog_variables|(p)?fsockopen|long2ip|\n get(servby(name|port)|host(name|by(name(l)?|addr))|protoby(name|number)|mxrr)\n)\\b", + "name": "support.function.network.php" + }, + { + "match": "(?i)\\bnsapi_(virtual|response_headers|request_headers)\\b", + "name": "support.function.nsapi.php" + }, + { + "match": "(?xi)\\b\n(\n oci(statementtype|setprefetch|serverversion|savelob(file)?|numcols|new(collection|cursor|descriptor)|nlogon|\n column(scale|size|name|type(raw)?|isnull|precision)|coll(size|trim|assign(elem)?|append|getelem|max)|commit|\n closelob|cancel|internaldebug|definebyname|plogon|parse|error|execute|fetch(statement|into)?|\n free(statement|collection|cursor|desc)|write(temporarylob|lobtofile)|loadlob|log(on|off)|rowcount|rollback|\n result|bindbyname)|\n oci_(statement_type|set_(client_(info|identifier)|prefetch|edition|action|module_name)|server_version|\n num_(fields|rows)|new_(connect|collection|cursor|descriptor)|connect|commit|client_version|close|cancel|\n internal_debug|define_by_name|pconnect|password_change|parse|error|execute|bind_(array_)?by_name|\n field_(scale|size|name|type(_raw)?|is_null|precision)|fetch(_(object|assoc|all|array|row))?|\n free_(statement|descriptor)|lob_(copy|is_equal)|rollback|result|get_implicit_resultset)\n)\\b", + "name": "support.function.oci8.php" + }, + { + "match": "(?i)\\bopcache_(compile_file|invalidate|reset|get_(status|configuration))\\b", + "name": "support.function.opcache.php" + }, + { + "match": "(?xi)\\b\nopenssl_(\n sign|spki_(new|export(_challenge)?|verify)|seal|csr_(sign|new|export(_to_file)?|get_(subject|public_key))|\n cipher_iv_length|open|dh_compute_key|digest|decrypt|public_(decrypt|encrypt)|encrypt|error_string|\n pkcs12_(export(_to_file)?|read)|pkcs7_(sign|decrypt|encrypt|verify)|verify|free_key|random_pseudo_bytes|\n pkey_(new|export(_to_file)?|free|get_(details|public|private))|private_(decrypt|encrypt)|pbkdf2|\n get_((cipher|md)_methods|cert_locations|(public|private)key)|\n x509_(check_private_key|checkpurpose|parse|export(_to_file)?|fingerprint|free|read)\n)\\b", + "name": "support.function.openssl.php" + }, + { + "match": "(?xi)\\b\n(\n output_(add_rewrite_var|reset_rewrite_vars)|flush|\n ob_(start|clean|implicit_flush|end_(clean|flush)|flush|list_handlers|gzhandler|\n get_(status|contents|clean|flush|length|level))\n)\\b", + "name": "support.function.output.php" + }, + { + "match": "(?i)\\bpassword_(hash|needs_rehash|verify|get_info)\\b", + "name": "support.function.password.php" + }, + { + "match": "(?xi)\\b\npcntl_(\n strerror|signal(_dispatch)?|sig(timedwait|procmask|waitinfo)|setpriority|errno|exec|fork|\n w(stopsig|termsig|if(stopped|signaled|exited))|wait(pid)?|alarm|getpriority|get_last_error\n)\\b", + "name": "support.function.pcntl.php" + }, + { + "match": "(?xi)\\b\npg_(\n socket|send_(prepare|execute|query(_params)?)|set_(client_encoding|error_verbosity)|select|host|\n num_(fields|rows)|consume_input|connection_(status|reset|busy)|connect(_poll)?|convert|copy_(from|to)|\n client_encoding|close|cancel_query|tty|transaction_status|trace|insert|options|delete|dbname|untrace|\n unescape_bytea|update|pconnect|ping|port|put_line|parameter_status|prepare|version|query(_params)?|\n escape_(string|identifier|literal|bytea)|end_copy|execute|flush|free_result|last_(notice|error|oid)|\n field_(size|num|name|type(_oid)?|table|is_null|prtlen)|affected_rows|result_(status|seek|error(_field)?)|\n fetch_(object|assoc|all(_columns)?|array|row|result)|get_(notify|pid|result)|meta_data|\n lo_(seek|close|create|tell|truncate|import|open|unlink|export|write|read(_all)?)|\n)\\b", + "name": "support.function.pgsql.php" + }, + { + "match": "(?i)\\b(virtual|getallheaders|apache_((get|set)env|note|child_terminate|lookup_uri|response_headers|reset_timeout|request_headers|get_(version|modules)))\\b", + "name": "support.function.php_apache.php" + }, + { + "match": "(?i)\\bdom_import_simplexml\\b", + "name": "support.function.php_dom.php" + }, + { + "match": "(?xi)\\b\nftp_(\n ssl_connect|systype|site|size|set_option|nlist|nb_(continue|f?(put|get))|ch(dir|mod)|connect|cdup|close|\n delete|put|pwd|pasv|exec|quit|f(put|get)|login|alloc|rename|raw(list)?|rmdir|get(_option)?|mdtm|mkdir\n)\\b", + "name": "support.function.php_ftp.php" + }, + { + "match": "(?xi)\\b\nimap_(\n (create|delete|list|rename|scan)(mailbox)?|status|sort|subscribe|set_quota|set(flag_full|acl)|search|savebody|\n num_(recent|msg)|check|close|clearflag_full|thread|timeout|open|header(info)?|headers|append|alerts|reopen|\n 8bit|unsubscribe|undelete|utf7_(decode|encode)|utf8|uid|ping|errors|expunge|qprint|gc|\n fetch(structure|header|text|mime|body)|fetch_overview|lsub|list(scan|subscribed)|last_error|\n rfc822_(parse_(headers|adrlist)|write_address)|get(subscribed|acl|mailboxes)|get_quota(root)?|\n msgno|mime_header_decode|mail_(copy|compose|move)|mail|mailboxmsginfo|binary|body(struct)?|base64\n)\\b", + "name": "support.function.php_imap.php" + }, + { + "match": "(?xi)\\b\nmssql_(\n select_db|num_(fields|rows)|next_result|connect|close|init|data_seek|pconnect|execute|query|\n field_(seek|name|type|length)|fetch_(object|field|assoc|array|row|batch)|free_(statement|result)|\n rows_affected|result|guid_string|get_last_message|min_(error|message)_severity|bind\n)\\b", + "name": "support.function.php_mssql.php" + }, + { + "match": "(?xi)\\b\nodbc_(\n statistics|specialcolumns|setoption|num_(fields|rows)|next_result|connect|columns|columnprivileges|commit|\n cursor|close(_all)?|tables|tableprivileges|do|data_source|pconnect|primarykeys|procedures|procedurecolumns|\n prepare|error(msg)?|exec(ute)?|field_(scale|num|name|type|precision|len)|foreignkeys|free_result|\n fetch_(into|object|array|row)|longreadlen|autocommit|rollback|result(_all)?|gettypeinfo|binmode\n)\\b", + "name": "support.function.php_odbc.php" + }, + { + "match": "(?i)\\bpreg_(split|quote|filter|last_error|replace(_callback)?|grep|match(_all)?)\\b", + "name": "support.function.php_pcre.php" + }, + { + "match": "(?i)\\b(spl_(classes|object_hash|autoload(_(call|unregister|extensions|functions|register))?)|class_(implements|uses|parents)|iterator_(count|to_array|apply))\\b", + "name": "support.function.php_spl.php" + }, + { + "match": "(?i)\\bzip_(close|open|entry_(name|compressionmethod|compressedsize|close|open|filesize|read)|read)\\b", + "name": "support.function.php_zip.php" + }, + { + "match": "(?xi)\\b\nposix_(\n strerror|set(s|e?u|[ep]?g)id|ctermid|ttyname|times|isatty|initgroups|uname|errno|kill|access|\n get(sid|cwd|uid|pid|ppid|pwnam|pwuid|pgid|pgrp|euid|egid|login|rlimit|gid|grnam|groups|grgid)|\n get_last_error|mknod|mkfifo\n)\\b", + "name": "support.function.posix.php" + }, + { + "match": "(?i)\\bset(thread|proc)title\\b", + "name": "support.function.proctitle.php" + }, + { + "match": "(?xi)\\b\npspell_(\n store_replacement|suggest|save_wordlist|new(_(config|personal))?|check|clear_session|\n config_(save_repl|create|ignore|(data|dict)_dir|personal|runtogether|repl|mode)|add_to_(session|personal)\n)\\b", + "name": "support.function.pspell.php" + }, + { + "match": "(?i)\\breadline(_(completion_function|clear_history|callback_(handler_(install|remove)|read_char)|info|on_new_line|write_history|list_history|add_history|redisplay|read_history))?\\b", + "name": "support.function.readline.php" + }, + { + "match": "(?i)\\brecode(_(string|file))?\\b", + "name": "support.function.recode.php" + }, + { + "match": "(?i)\\brrd(c_disconnect|_(create|tune|info|update|error|version|first|fetch|last(update)?|restore|graph|xport))\\b", + "name": "support.function.rrd.php" + }, + { + "match": "(?xi)\\b\n(\n shm_((get|has|remove|put)_var|detach|attach|remove)|sem_(acquire|release|remove|get)|ftok|\n msg_((get|remove|set|stat)_queue|send|queue_exists|receive)\n)\\b", + "name": "support.function.sem.php" + }, + { + "match": "(?xi)\\b\nsession_(\n status|start|set_(save_handler|cookie_params)|save_path|name|commit|cache_(expire|limiter)|\n is_registered|id|destroy|decode|unset|unregister|encode|write_close|abort|reset|register(_shutdown)?|\n regenerate_id|get_cookie_params|module_name\n)\\b", + "name": "support.function.session.php" + }, + { + "match": "(?i)\\bshmop_(size|close|open|delete|write|read)\\b", + "name": "support.function.shmop.php" + }, + { + "match": "(?i)\\bsimplexml_(import_dom|load_(string|file))\\b", + "name": "support.function.simplexml.php" + }, + { + "match": "(?xi)\\b\n(\n snmp(walk(oid)?|realwalk|get(next)?|set)|\n snmp_(set_(valueretrieval|quick_print|enum_print|oid_(numeric_print|output_format))|read_mib|\n get_(valueretrieval|quick_print))|\n snmp[23]_(set|walk|real_walk|get(next)?)\n)\\b", + "name": "support.function.snmp.php" + }, + { + "match": "(?i)\\b(is_soap_fault|use_soap_error_handler)\\b", + "name": "support.function.soap.php" + }, + { + "match": "(?xi)\\b\nsocket_(\n shutdown|strerror|send(to|msg)?|set_((non)?block|option)|select|connect|close|clear_error|bind|\n create(_(pair|listen))?|cmsg_space|import_stream|write|listen|last_error|accept|recv(from|msg)?|\n read|get(peer|sock)name|get_option\n)\\b", + "name": "support.function.sockets.php" + }, + { + "match": "(?xi)\\b\nsqlite_(\n single_query|seek|has_(more|prev)|num_(fields|rows)|next|changes|column|current|close|\n create_(aggregate|function)|open|unbuffered_query|udf_(decode|encode)_binary|popen|prev|\n escape_string|error_string|exec|valid|key|query|field_name|factory|\n fetch_(string|single|column_types|object|all|array)|lib(encoding|version)|\n last_(insert_rowid|error)|array_query|rewind|busy_timeout\n)\\b", + "name": "support.function.sqlite.php" + }, + { + "match": "(?xi)\\b\nsqlsrv_(\n send_stream_data|server_info|has_rows|num_(fields|rows)|next_result|connect|configure|commit|\n client_info|close|cancel|prepare|errors|execute|query|field_metadata|fetch(_(array|object))?|\n free_stmt|rows_affected|rollback|get_(config|field)|begin_transaction\n)\\b", + "name": "support.function.sqlsrv.php" + }, + { + "match": "(?xi)\\b\nstats_(\n harmonic_mean|covariance|standard_deviation|skew|\n cdf_(noncentral_(chisquare|f)|negative_binomial|chisquare|cauchy|t|uniform|poisson|exponential|f|weibull|\n logistic|laplace|gamma|binomial|beta)|\n stat_(noncentral_t|correlation|innerproduct|independent_t|powersum|percentile|paired_t|gennch|binomial_coef)|\n dens_(normal|negative_binomial|chisquare|cauchy|t|pmf_(hypergeometric|poisson|binomial)|exponential|f|\n weibull|logistic|laplace|gamma|beta)|\n den_uniform|variance|kurtosis|absolute_deviation|\n rand_(setall|phrase_to_seeds|ranf|get_seeds|\n gen_(noncentral_[ft]|noncenral_chisquare|normal|chisquare|t|int|\n i(uniform|poisson|binomial(_negative)?)|exponential|f(uniform)?|gamma|beta))\n)\\b", + "name": "support.function.stats.php" + }, + { + "match": "(?xi)\\b\n(\n set_socket_blocking|\n stream_(socket_(shutdown|sendto|server|client|pair|enable_crypto|accept|recvfrom|get_name)|\n set_(chunk_size|timeout|(read|write)_buffer|blocking)|select|notification_callback|supports_lock|\n context_(set_(option|default|params)|create|get_(options|default|params))|copy_to_stream|is_local|\n encoding|filter_(append|prepend|register|remove)|wrapper_((un)?register|restore)|\n resolve_include_path|register_wrapper|get_(contents|transports|filters|wrappers|line|meta_data)|\n bucket_(new|prepend|append|make_writeable)\n )\n)\\b", + "name": "support.function.streamsfuncs.php" + }, + { + "match": "(?xi)\\b\n(\n money_format|md5(_file)?|metaphone|bin2hex|sscanf|sha1(_file)?|\n str(str|c?spn|n(at)?(case)?cmp|chr|coll|(case)?cmp|to(upper|lower)|tok|tr|istr|pos|pbrk|len|rchr|ri?pos|rev)|\n str_(getcsv|ireplace|pad|repeat|replace|rot13|shuffle|split|word_count)|\n strip(c?slashes|os)|strip_tags|similar_text|soundex|substr(_(count|compare|replace))?|setlocale|\n html(specialchars(_decode)?|entities)|html_entity_decode|hex2bin|hebrev(c)?|number_format|nl2br|nl_langinfo|\n chop|chunk_split|chr|convert_(cyr_string|uu(decode|encode))|count_chars|crypt|crc32|trim|implode|ord|\n uc(first|words)|join|parse_str|print(f)?|echo|explode|v?[fs]?printf|quoted_printable_(decode|encode)|\n quotemeta|wordwrap|lcfirst|[lr]trim|localeconv|levenshtein|addc?slashes|get_html_translation_table\n)\\b", + "name": "support.function.string.php" + }, + { + "match": "(?xi)\\b\nsybase_(\n set_message_handler|select_db|num_(fields|rows)|connect|close|deadlock_retry_count|data_seek|\n unbuffered_query|pconnect|query|field_seek|fetch_(object|field|assoc|array|row)|free_result|\n affected_rows|result|get_last_message|min_(client|error|message|server)_severity\n)\\b", + "name": "support.function.sybase.php" + }, + { + "match": "(?i)\\b(taint|is_tainted|untaint)\\b", + "name": "support.function.taint.php" + }, + { + "match": "(?xi)\\b\n(\n tidy_((get|set)opt|set_encoding|save_config|config_count|clean_repair|is_(xhtml|xml)|diagnose|\n (access|error|warning)_count|load_config|reset_config|(parse|repair)_(string|file)|\n get_(status|html(_ver)?|head|config|output|opt_doc|root|release|body))|\n ob_tidyhandler\n)\\b", + "name": "support.function.tidy.php" + }, + { + "match": "(?i)\\btoken_(name|get_all)\\b", + "name": "support.function.tokenizer.php" + }, + { + "match": "(?xi)\\b\ntrader_(\n stoch(f|r|rsi)?|stddev|sin(h)?|sum|sub|set_(compat|unstable_period)|sqrt|sar(ext)?|sma|\n ht_(sine|trend(line|mode)|dc(period|phase)|phasor)|natr|cci|cos(h)?|correl|\n cdl(shootingstar|shortline|sticksandwich|stalledpattern|spinningtop|separatinglines|\n hikkake(mod)?|highwave|homingpigeon|hangingman|harami(cross)?|hammer|concealbabyswall|\n counterattack|closingmarubozu|thrusting|tasukigap|takuri|tristar|inneck|invertedhammer|\n identical3crows|2crows|onneck|doji(star)?|darkcloudcover|dragonflydoji|unique3river|\n upsidegap2crows|3(starsinsouth|inside|outside|whitesoldiers|linestrike|blackcrows)|\n piercing|engulfing|evening(doji)?star|kicking(bylength)?|longline|longleggeddoji|\n ladderbottom|advanceblock|abandonedbaby|risefall3methods|rickshawman|gapsidesidewhite|\n gravestonedoji|xsidegap3methods|morning(doji)?star|mathold|matchinglow|marubozu|\n belthold|breakaway)|\n ceil|cmo|tsf|typprice|t3|tema|tan(h)?|trix|trima|trange|obv|div|dema|dx|ultosc|ppo|\n plus_d[im]|errno|exp|ema|var|kama|floor|wclprice|willr|wma|ln|log10|bop|beta|bbands|\n linearreg(_(slope|intercept|angle))?|asin|acos|atan|atr|adosc|ad|add|adx(r)?|apo|avgprice|\n aroon(osc)?|rsi|roc|rocp|rocr(100)?|get_(compat|unstable_period)|min(index)?|minus_d[im]|\n minmax(index)?|mid(point|price)|mom|mult|medprice|mfi|macd(ext|fix)?|mavp|max(index)?|ma(ma)?\n)\\b", + "name": "support.function.trader.php" + }, + { + "match": "(?i)\\buopz_(copy|compose|implement|overload|delete|undefine|extend|function|flags|restore|rename|redefine|backup)\\b", + "name": "support.function.uopz.php" + }, + { + "match": "(?i)\\b(http_build_query|(raw)?url(decode|encode)|parse_url|get_(headers|meta_tags)|base64_(decode|encode))\\b", + "name": "support.function.url.php" + }, + { + "match": "(?xi)\\b\n(\n strval|settype|serialize|(bool|double|float)val|debug_zval_dump|intval|import_request_variables|isset|\n is_(scalar|string|null|numeric|callable|int(eger)?|object|double|float|long|array|resource|real|bool)|\n unset|unserialize|print_r|empty|var_(dump|export)|gettype|get_(defined_vars|resource_type)\n)\\b", + "name": "support.function.var.php" + }, + { + "match": "(?i)\\bwddx_(serialize_(value|vars)|deserialize|packet_(start|end)|add_vars)\\b", + "name": "support.function.wddx.php" + }, + { + "match": "(?i)\\bxhprof_(sample_)?(disable|enable)\\b", + "name": "support.function.xhprof.php" + }, + { + "match": "(?xi)\n\\b\n(\n utf8_(decode|encode)|\n xml_(set_((notation|(end|start)_namespace|unparsed_entity)_decl_handler|\n (character_data|default|element|external_entity_ref|processing_instruction)_handler|object)|\n parse(_into_struct)?|parser_((get|set)_option|create(_ns)?|free)|error_string|\n get_(current_((column|line)_number|byte_index)|error_code))\n)\\b", + "name": "support.function.xml.php" + }, + { + "match": "(?xi)\\b\nxmlrpc_(\n server_(call_method|create|destroy|add_introspection_data|register_(introspection_callback|method))|\n is_fault|decode(_request)?|parse_method_descriptions|encode(_request)?|(get|set)_type\n)\\b", + "name": "support.function.xmlrpc.php" + }, + { + "match": "(?xi)\\b\nxmlwriter_(\n (end|start|write)_(comment|cdata|dtd(_(attlist|entity|element))?|document|pi|attribute|element)|\n (start|write)_(attribute|element)_ns|write_raw|set_indent(_string)?|text|output_memory|open_(memory|uri)|\n full_end_element|flush|\n)\\b", + "name": "support.function.xmlwriter.php" + }, + { + "match": "(?xi)\\b\n(\n zlib_(decode|encode|get_coding_type)|readgzfile|\n gz(seek|compress|close|tell|inflate|open|decode|deflate|uncompress|puts|passthru|encode|eof|file|\n write|rewind|read|getc|getss?)\n)\\b", + "name": "support.function.zlib.php" + }, + { + "match": "(?i)\\bis_int(eger)?\\b", + "name": "support.function.alias.php" + } + ] + }, + "switch_statement": { + "patterns": [ + { + "match": "\\s+(?=switch\\b)" + }, + { + "begin": "\\bswitch\\b(?!\\s*\\(.*\\)\\s*:)", + "beginCaptures": { + "0": { + "name": "keyword.control.switch.php" + } + }, + "end": "}|(?=\\?>)", + "endCaptures": { + "0": { + "name": "punctuation.definition.section.switch-block.end.bracket.curly.php" + } + }, + "name": "meta.switch-statement.php", + "patterns": [ + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.switch-expression.begin.bracket.round.php" + } + }, + "end": "\\)|(?=\\?>)", + "endCaptures": { + "0": { + "name": "punctuation.definition.switch-expression.end.bracket.round.php" + } + }, + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.section.switch-block.begin.bracket.curly.php" + } + }, + "end": "(?=}|\\?>)", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + } + ] + }, + "match_statement": { + "patterns": [ + { + "match": "\\s+(?=match\\b)" + }, + { + "begin": "\\bmatch\\b", + "beginCaptures": { + "0": { + "name": "keyword.control.match.php" + } + }, + "end": "}|(?=\\?>)", + "endCaptures": { + "0": { + "name": "punctuation.definition.section.match-block.end.bracket.curly.php" + } + }, + "name": "meta.match-statement.php", + "patterns": [ + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.match-expression.begin.bracket.round.php" + } + }, + "end": "\\)|(?=\\?>)", + "endCaptures": { + "0": { + "name": "punctuation.definition.match-expression.end.bracket.round.php" + } + }, + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.section.match-block.begin.bracket.curly.php" + } + }, + "end": "(?=}|\\?>)", + "patterns": [ + { + "match": "=>", + "name": "keyword.definition.arrow.php" + }, + { + "include": "$self" + } + ] + } + ] + } + ] + }, + "use-inner": { + "patterns": [ + { + "include": "#comments" + }, + { + "begin": "(?i)\\b(as)\\s+", + "beginCaptures": { + "1": { + "name": "keyword.other.use-as.php" + } + }, + "end": "(?i)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*", + "endCaptures": { + "0": { + "name": "entity.other.alias.php" + } + } + }, + { + "include": "#class-name" + }, + { + "match": ",", + "name": "punctuation.separator.delimiter.php" + } + ] + }, + "var_basic": { + "patterns": [ + { + "match": "(?i)(\\$+)[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*", + "name": "variable.other.php", + "captures": { + "1": { + "name": "punctuation.definition.variable.php" + } + } + } + ] + }, + "var_global": { + "captures": { + "1": { + "name": "punctuation.definition.variable.php" + } + }, + "match": "(\\$)((_(COOKIE|FILES|GET|POST|REQUEST))|arg(v|c))\\b", + "name": "variable.other.global.php" + }, + "var_global_safer": { + "captures": { + "1": { + "name": "punctuation.definition.variable.php" + } + }, + "match": "(\\$)((GLOBALS|_(ENV|SERVER|SESSION)))", + "name": "variable.other.global.safer.php" + }, + "var_language": { + "match": "(\\$)this\\b", + "name": "variable.language.this.php", + "captures": { + "1": { + "name": "punctuation.definition.variable.php" + } + } + }, + "variable-name": { + "patterns": [ + { + "include": "#var_global" + }, + { + "include": "#var_global_safer" + }, + { + "captures": { + "1": { + "name": "variable.other.php" + }, + "2": { + "name": "punctuation.definition.variable.php" + }, + "4": { + "name": "keyword.operator.class.php" + }, + "5": { + "name": "variable.other.property.php" + }, + "6": { + "name": "punctuation.section.array.begin.php" + }, + "7": { + "name": "constant.numeric.index.php" + }, + "8": { + "name": "variable.other.index.php" + }, + "9": { + "name": "punctuation.definition.variable.php" + }, + "10": { + "name": "string.unquoted.index.php" + }, + "11": { + "name": "punctuation.section.array.end.php" + } + }, + "match": "(?xi)\n((\\$)(?<name>[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*))\\s*\n(?:\n (\\??->)\\s*(\\g<name>)\n |\n (\\[)(?:(\\d+)|((\\$)\\g<name>)|([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*))(\\])\n)?" + }, + { + "captures": { + "1": { + "name": "variable.other.php" + }, + "2": { + "name": "punctuation.definition.variable.php" + }, + "4": { + "name": "punctuation.definition.variable.php" + } + }, + "match": "(?i)((\\${)(?<name>[a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)(}))" + } + ] + }, + "variables": { + "patterns": [ + { + "include": "#var_language" + }, + { + "include": "#var_global" + }, + { + "include": "#var_global_safer" + }, + { + "include": "#var_basic" + }, + { + "begin": "\\${(?=.*?})", + "beginCaptures": { + "0": { + "name": "punctuation.definition.variable.php" + } + }, + "end": "}", + "endCaptures": { + "0": { + "name": "punctuation.definition.variable.php" + } + }, + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + "ternary_shorthand": { + "match": "\\?:", + "name": "keyword.operator.ternary.php" + }, + "ternary_expression": { + "begin": "\\?", + "beginCaptures": { + "0": { + "name": "keyword.operator.ternary.php" + } + }, + "end": "(?<!:):(?!:)", + "endCaptures": { + "0": { + "name": "keyword.operator.ternary.php" + } + }, + "patterns": [ + { + "match": "(?i)^\\s*([a-z_\\x{7f}-\\x{10ffff}][a-z0-9_\\x{7f}-\\x{10ffff}]*)\\s*(?=:(?!:))", + "captures": { + "1": { + "patterns": [ + { + "include": "$self" + } + ] + } + } + }, + { + "include": "$self" + } + ] + }, + "null_coalescing": { + "match": "\\?\\?", + "name": "keyword.operator.null-coalescing.php" + } + }, + "name": "php" +} diff --git a/docs/shiki/languages/plsql.tmLanguage.json b/docs/shiki/languages/plsql.tmLanguage.json new file mode 100644 index 00000000..1a1f38b9 --- /dev/null +++ b/docs/shiki/languages/plsql.tmLanguage.json @@ -0,0 +1,232 @@ +{ + "fileTypes": ["sql", "ddl", "dml", "pkh", "pks", "pkb", "pck", "pls", "plb"], + "foldingStartMarker": "(?i)^\\s*(begin|if|loop)\\b", + "foldingStopMarker": "(?i)^\\s*(end)\\b", + "keyEquivalent": "^~S", + "name": "plsql", + "patterns": [ + { + "begin": "/\\*", + "end": "\\*/", + "name": "comment.block.oracle" + }, + { + "match": "--.*$", + "name": "comment.line.double-dash.oracle" + }, + { + "match": "(?i)(?:^\\s*)rem(?:\\s+.*$)", + "name": "comment.line.sqlplus.oracle" + }, + { + "match": "(?i)(?:^\\s*)prompt(?:\\s+.*$)", + "name": "comment.line.sqlplus-prompt.oracle" + }, + { + "captures": { + "1": { + "name": "keyword.other.oracle" + }, + "2": { + "name": "keyword.other.oracle" + } + }, + "match": "(?i)^\\s*(create)(\\s+or\\s+replace)?\\s+", + "name": "meta.create.oracle" + }, + { + "captures": { + "1": { + "name": "keyword.other.oracle" + }, + "2": { + "name": "keyword.other.oracle" + }, + "3": { + "name": "entity.name.type.oracle" + } + }, + "match": "(?i)\\b(package)(\\s+body)?\\s+(\\S+)", + "name": "meta.package.oracle" + }, + { + "captures": { + "1": { + "name": "keyword.other.oracle" + }, + "2": { + "name": "entity.name.type.oracle" + } + }, + "match": "(?i)\\b(type)\\s+\"([^\"]+)\"", + "name": "meta.type.oracle" + }, + { + "captures": { + "1": { + "name": "keyword.other.oracle" + }, + "2": { + "name": "entity.name.function.oracle" + } + }, + "match": "(?i)^\\s*(function|procedure)\\s+\"?([-a-z0-9_]+)\"?", + "name": "meta.procedure.oracle" + }, + { + "match": "[!<>:]?=|<>|<|>|\\+|(?<!\\.)\\*|-|(?<!^)/|\\|\\|", + "name": "keyword.operator.oracle" + }, + { + "match": "(?i)\\b(true|false|null|is\\s+(not\\s+)?null)\\b", + "name": "constant.language.oracle" + }, + { + "match": "\\b\\d+(\\.\\d+)?\\b", + "name": "constant.numeric.oracle" + }, + { + "match": "(?i)\\b(if|elsif|else|end\\s+if|loop|end\\s+loop|for|while|case|end\\s+case|continue|return|goto)\\b", + "name": "keyword.control.oracle" + }, + { + "match": "(?i)\\b(or|and|not|like)\\b", + "name": "keyword.other.oracle" + }, + { + "match": "(?i)\\b(%(isopen|found|notfound|rowcount)|commit|rollback|sqlerrm)\\b", + "name": "support.function.oracle" + }, + { + "match": "(?i)\\b(sql|sqlcode)\\b", + "name": "variable.language.oracle" + }, + { + "match": "(?i)\\b(ascii|asciistr|chr|compose|concat|convert|decompose|dump|initcap|instr|instrb|instrc|instr2|instr4|unistr|length|lengthb|lengthc|length2|length4|lower|lpad|ltrim|nchr|replace|rpad|rtrim|soundex|substr|translate|trim|upper|vsize)\\b", + "name": "support.function.builtin.char.oracle" + }, + { + "match": "(?i)\\b(add_months|current_date|current_timestamp|dbtimezone|last_day|localtimestamp|months_between|new_time|next_day|round|sessiontimezone|sysdate|tz_offset|systimestamp)\\b", + "name": "support.function.builtin.date.oracle" + }, + { + "match": "(?i)\\b(avg|count|sum|max|min|median|corr|corr_\\w+|covar_(pop|samp)|cume_dist|dense_rank|first|group_id|grouping|grouping_id|last|percentile_cont|percentile_disc|percent_rank|rank|regr_\\w+|row_number|stats_binomial_test|stats_crosstab|stats_f_test|stats_ks_test|stats_mode|stats_mw_test|stats_one_way_anova|stats_t_test_\\w+|stats_wsr_test|stddev|stddev_pop|stddev_samp|var_pop|var_samp|variance)\\b", + "name": "support.function.builtin.aggregate.oracle" + }, + { + "match": "(?i)\\b(bfilename|cardinality|coalesce|decode|empty_(blob|clob)|lag|lead|listagg|lnnvl|nanvl|nullif|nvl|nvl2|sys_(context|guid|typeid|connect_by_path|extract_utc)|uid|(current\\s+)?user|userenv|cardinality|(bulk\\s+)?collect|powermultiset(_by_cardinality)?|ora_hash|standard_hash|execute\\s+immediate|alter\\s+session)\\b", + "name": "support.function.builtin.advanced.oracle" + }, + { + "match": "(?i)\\b(bin_to_num|cast|chartorowid|from_tz|hextoraw|numtodsinterval|numtoyminterval|rawtohex|rawtonhex|to_char|to_clob|to_date|to_dsinterval|to_lob|to_multi_byte|to_nclob|to_number|to_single_byte|to_timestamp|to_timestamp_tz|to_yminterval|scn_to_timestamp|timestamp_to_scn|rowidtochar|rowidtonchar|to_binary_double|to_binary_float|to_blob|to_nchar|con_dbid_to_id|con_guid_to_id|con_name_to_id|con_uid_to_id)\\b", + "name": "support.function.builtin.convert.oracle" + }, + { + "match": "(?i)\\b(abs|acos|asin|atan|atan2|bit_(and|or|xor)|ceil|cos|cosh|exp|extract|floor|greatest|least|ln|log|mod|power|remainder|round|sign|sin|sinh|sqrt|tan|tanh|trunc)\\b", + "name": "support.function.builtin.math.oracle" + }, + { + "match": "(?i)\\b(\\.(count|delete|exists|extend|first|last|limit|next|prior|trim|reverse))\\b", + "name": "support.function.builtin.collection.oracle" + }, + { + "match": "(?i)\\b(cluster_details|cluster_distance|cluster_id|cluster_probability|cluster_set|feature_details|feature_id|feature_set|feature_value|prediction|prediction_bounds|prediction_cost|prediction_details|prediction_probability|prediction_set)\\b", + "name": "support.function.builtin.data_mining.oracle" + }, + { + "match": "(?i)\\b(appendchildxml|deletexml|depth|extract|existsnode|extractvalue|insertchildxml|insertxmlbefore|xmlcast|xmldiff|xmlelement|xmlexists|xmlisvalid|insertchildxmlafter|insertchildxmlbefore|path|sys_dburigen|sys_xmlagg|sys_xmlgen|updatexml|xmlagg|xmlcdata|xmlcolattval|xmlcomment|xmlconcat|xmlforest|xmlparse|xmlpi|xmlquery|xmlroot|xmlsequence|xmlserialize|xmltable|xmltransform)\\b", + "name": "support.function.builtin.xml.oracle" + }, + { + "match": "(?i)\\b(pragma\\s+(autonomous_transaction|serially_reusable|restrict_references|exception_init|inline))\\b", + "name": "keyword.other.pragma.oracle" + }, + { + "match": "(?i)\\b(p(i|o|io)_[-a-z0-9_]+)\\b", + "name": "variable.parameter.oracle" + }, + { + "match": "(?i)\\b(l_[-a-z0-9_]+)\\b", + "name": "variable.other.oracle" + }, + { + "match": "(?i):\\b(new|old)\\b", + "name": "variable.trigger.oracle" + }, + { + "match": "(?i)\\b(connect\\s+by\\s+(nocycle\\s+)?(prior|level)|connect_by_(root|icycle)|level|start\\s+with)\\b", + "name": "keyword.hierarchical.sql.oracle" + }, + { + "match": "(?i)\\b(language|name|java|c)\\b", + "name": "keyword.wrapper.oracle" + }, + { + "match": "(?i)\\b(end|then|deterministic|exception|when|declare|begin|in|out|nocopy|is|as|exit|open|fetch|into|close|subtype|type|rowtype|default|exclusive|mode|lock|record|index\\s+by|result_cache|constant|comment|\\.(nextval|currval))\\b", + "name": "keyword.other.oracle" + }, + { + "match": "(?i)\\b(grant|revoke|alter|drop|force|add|check|constraint|primary\\s+key|foreign\\s+key|references|unique(\\s+index)?|column|sequence|increment\\s+by|cache|(materialized\\s+)?view|trigger|storage|tablespace|pct(free|used)|(init|max)trans|logging)\\b", + "name": "keyword.other.ddl.oracle" + }, + { + "match": "(?i)\\b(with|select|from|where|order\\s+(siblings\\s+)?by|group\\s+by|rollup|cube|((left|right|cross|natural)\\s+(outer\\s+)?)?join|on|asc|desc|update|set|insert|into|values|delete|distinct|union|minus|intersect|having|limit|table|between|like|of|row|(range|rows)\\s+between|nulls\\s+first|nulls\\s+last|before|after|all|any|exists|rownum|cursor|returning|over|partition\\s+by|merge|using|matched|pivot|unpivot)\\b", + "name": "keyword.other.sql.oracle" + }, + { + "match": "(?i)\\b(define|whenever\\s+sqlerror|exec|timing\\s+start|timing\\s+stop)\\b", + "name": "keyword.other.sqlplus.oracle" + }, + { + "match": "(?i)\\b(access_into_null|case_not_found|collection_is_null|cursor_already_open|dup_val_on_index|invalid_cursor|invalid_number|login_denied|no_data_found|not_logged_on|program_error|rowtype_mismatch|self_is_null|storage_error|subscript_beyond_count|subscript_outside_limit|sys_invalid_rowid|timeout_on_resource|too_many_rows|value_error|zero_divide|others)\\b", + "name": "support.type.exception.oracle" + }, + { + "captures": { + "3": { + "name": "support.class.oracle" + } + }, + "match": "(?i)\\b((dbms|utl|owa|apex)_\\w+\\.(\\w+))\\b", + "name": "support.function.oracle" + }, + { + "captures": { + "3": { + "name": "support.class.oracle" + } + }, + "match": "(?i)\\b((htf|htp)\\.(\\w+))\\b", + "name": "support.function.oracle" + }, + { + "captures": { + "3": { + "name": "support.class.user-defined.oracle" + } + }, + "match": "(?i)\\b((\\w+_pkg|pkg_\\w+)\\.(\\w+))\\b", + "name": "support.function.user-defined.oracle" + }, + { + "match": "(?i)\\b(raise|raise_application_error)\\b", + "name": "support.function.oracle" + }, + { + "begin": "'", + "end": "'", + "name": "string.quoted.single.oracle" + }, + { + "begin": "\"", + "end": "\"", + "name": "string.quoted.double.oracle" + }, + { + "match": "(?i)\\b(char|varchar|varchar2|nchar|nvarchar2|boolean|date|timestamp(\\s+with(\\s+local)?\\s+time\\s+zone)?|interval\\s*day(\\(\\d*\\))?\\s*to\\s*month|interval\\s*year(\\(\\d*\\))?\\s*to\\s*second(\\(\\d*\\))?|xmltype|blob|clob|nclob|bfile|long|long\\s+raw|raw|number|integer|decimal|smallint|float|binary_(float|double|integer)|pls_(float|double|integer)|rowid|urowid|vararray|natural|naturaln|positive|positiven|signtype|simple_(float|double|integer))\\b", + "name": "storage.type.oracle" + } + ], + "scopeName": "source.plsql.oracle", + "uuid": "28DCE4DD-F5E1-4ED3-8847-64DA6B1F9163" +} diff --git a/docs/shiki/languages/postcss.tmLanguage.json b/docs/shiki/languages/postcss.tmLanguage.json new file mode 100644 index 00000000..85693160 --- /dev/null +++ b/docs/shiki/languages/postcss.tmLanguage.json @@ -0,0 +1,374 @@ +{ + "patterns": [ + { + "patterns": [ + { + "include": "#comment-tag" + } + ], + "begin": "/\\*", + "name": "comment.block.postcss", + "end": "\\*/" + }, + { + "include": "#double-slash" + }, + { + "include": "#double-quoted" + }, + { + "include": "#single-quoted" + }, + { + "include": "#interpolation" + }, + { + "include": "#placeholder-selector" + }, + { + "include": "#variable" + }, + { + "include": "#variable-root-css" + }, + { + "include": "#numeric" + }, + { + "include": "#unit" + }, + { + "include": "#flag" + }, + { + "include": "#dotdotdot" + }, + { + "captures": { + "0": { + "name": "keyword.control.at-rule.css.postcss" + } + }, + "begin": "@include", + "name": "support.function.name.postcss.library", + "end": "(?=\\n|\\(|{|;)" + }, + { + "captures": { + "0": { + "name": "keyword.control.at-rule.css.postcss" + } + }, + "patterns": [ + { + "name": "entity.name.function", + "match": "[\\w-]+" + } + ], + "begin": "@mixin|@function", + "name": "support.function.name.postcss.no-completions", + "end": "$\\n?|(?=\\(|{)" + }, + { + "name": "string.quoted.double.css.postcss", + "match": "(?<=@import)\\s[\\w/.*-]+" + }, + { + "begin": "@", + "name": "keyword.control.at-rule.css.postcss", + "end": "$\\n?|\\s(?!(all|braille|embossed|handheld|print|projection|screen|speech|tty|tv|if|only|not)(\\s|,))|(?=;)" + }, + { + "patterns": [ + { + "include": "#interpolation" + }, + { + "include": "#pseudo-class" + } + ], + "begin": "#", + "name": "entity.other.attribute-name.id.css.postcss", + "end": "$\\n?|(?=\\s|,|;|\\(|\\)|\\.|\\[|{|>)" + }, + { + "patterns": [ + { + "include": "#interpolation" + }, + { + "include": "#pseudo-class" + } + ], + "begin": "\\.|(?<=&)(-|_)", + "name": "entity.other.attribute-name.class.css.postcss", + "end": "$\\n?|(?=\\s|,|;|\\(|\\)|\\[|{|>)" + }, + { + "patterns": [ + { + "include": "#double-quoted" + }, + { + "include": "#single-quoted" + }, + { + "name": "keyword.other.regex.postcss", + "match": "\\^|\\$|\\*|~" + } + ], + "begin": "\\[", + "name": "entity.other.attribute-selector.postcss", + "end": "\\]" + }, + { + "name": "entity.other.attribute-name.pseudo-class.css.postcss", + "match": "(?<=\\]|\\)|not\\(|\\*|>|>\\s):[a-z:-]+|(::|:-)[a-z:-]+" + }, + { + "patterns": [ + { + "include": "#double-slash" + }, + { + "include": "#double-quoted" + }, + { + "include": "#single-quoted" + }, + { + "include": "#interpolation" + }, + { + "include": "#variable" + }, + { + "include": "#rgb-value" + }, + { + "include": "#numeric" + }, + { + "include": "#unit" + }, + { + "include": "#flag" + }, + { + "include": "#function" + }, + { + "include": "#function-content" + }, + { + "include": "#function-content-var" + }, + { + "include": "#operator" + }, + { + "include": "#parent-selector" + }, + { + "include": "#property-value" + } + ], + "begin": ":", + "name": "meta.property-list.css.postcss", + "end": "$\\n?|(?=;|\\s\\(|and\\(|{|}|\\),)" + }, + { + "include": "#rgb-value" + }, + { + "include": "#function" + }, + { + "include": "#function-content" + }, + { + "patterns": [ + { + "include": "#interpolation" + }, + { + "include": "#pseudo-class" + } + ], + "begin": "(?<!\\-|\\()\\b(a|abbr|acronym|address|applet|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|datalist|dd|del|details|dfn|dialog|div|dl|dt|em|embed|eventsource|fieldset|figure|figcaption|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|label|legend|li|link|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|picture|pre|progress|q|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video|main|svg|rect|ruby|center|circle|ellipse|line|polyline|polygon|path|text|u|x)\\b(?!-|\\)|:\\s)|&", + "name": "entity.name.tag.css.postcss.symbol", + "end": "(?=\\s|,|;|\\(|\\)|\\.|\\[|{|>|-|_)" + }, + { + "include": "#operator" + }, + { + "name": "support.type.property-name.css.postcss", + "match": "[a-z-]+((?=:|#{))" + }, + { + "include": "#reserved-words" + }, + { + "include": "#property-value" + } + ], + "name": "postcss", + "repository": { + "reserved-words": { + "name": "support.type.property-name.css.postcss", + "match": "\\b(false|from|in|not|null|through|to|true)\\b" + }, + "double-quoted": { + "patterns": [ + { + "include": "#quoted-interpolation" + } + ], + "begin": "\"", + "name": "string.quoted.double.css.postcss", + "end": "\"" + }, + "operator": { + "name": "keyword.operator.postcss", + "match": "\\+|\\s-\\s|\\s-(?=\\$)|(?<=\\()-(?=\\$)|\\s-(?=\\()|\\*|/|%|=|!|<|>|~" + }, + "function-content": { + "name": "string.quoted.double.css.postcss", + "match": "(?<=url\\(|format\\(|attr\\().+?(?=\\))" + }, + "double-slash": { + "patterns": [ + { + "include": "#comment-tag" + } + ], + "begin": "//", + "name": "comment.line.postcss", + "end": "$" + }, + "numeric": { + "name": "constant.numeric.css.postcss", + "match": "(-|\\.)?[0-9]+(\\.[0-9]+)?" + }, + "variable-root-css": { + "name": "variable.parameter.postcss", + "match": "(?<!&)--[\\w-]+" + }, + "function": { + "name": "support.function.name.postcss", + "match": "(?<=[\\s|\\(|,|:])(?!url|format|attr)[\\w-][\\w-]*(?=\\()" + }, + "rgb-value": { + "name": "constant.other.color.rgb-value.css.postcss", + "match": "(#)([0-9a-fA-F]{3}|[0-9a-fA-F]{6})\\b" + }, + "comment-tag": { + "patterns": [ + { + "name": "comment.tag.postcss", + "match": "[\\w-]+" + } + ], + "begin": "{{", + "name": "comment.tags.postcss", + "end": "}}" + }, + "interpolation": { + "patterns": [ + { + "include": "#variable" + }, + { + "include": "#numeric" + }, + { + "include": "#operator" + }, + { + "include": "#unit" + }, + { + "include": "#double-quoted" + }, + { + "include": "#single-quoted" + } + ], + "begin": "#{", + "name": "support.function.interpolation.postcss", + "end": "}" + }, + "unit": { + "name": "keyword.other.unit.css.postcss", + "match": "(?<=[\\d]|})(ch|cm|deg|dpcm|dpi|dppx|em|ex|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vw|%)" + }, + "function-content-var": { + "name": "variable.parameter.postcss", + "match": "(?<=var\\()[\\w-]+(?=\\))" + }, + "dotdotdot": { + "name": "variable.other", + "match": "\\.{3}" + }, + "variable": { + "name": "variable.parameter.postcss", + "match": "\\$[\\w-]+" + }, + "single-quoted": { + "patterns": [ + { + "include": "#quoted-interpolation" + } + ], + "begin": "'", + "name": "string.quoted.single.css.postcss", + "end": "'" + }, + "quoted-interpolation": { + "patterns": [ + { + "include": "#variable" + }, + { + "include": "#numeric" + }, + { + "include": "#operator" + }, + { + "include": "#unit" + } + ], + "begin": "#{", + "name": "support.function.interpolation.postcss", + "end": "}" + }, + "pseudo-class": { + "name": "entity.other.attribute-name.pseudo-class.css.postcss", + "match": ":[a-z:-]+" + }, + "property-value": { + "name": "meta.property-value.css.postcss, support.constant.property-value.css.postcss", + "match": "[\\w-]+" + }, + "placeholder-selector": { + "begin": "(?<!\\d)%(?!\\d)", + "name": "entity.other.attribute-name.placeholder-selector.postcss", + "end": "$\\n?|\\s|(?=;|{)" + }, + "flag": { + "name": "keyword.other.important.css.postcss", + "match": "!(important|default|optional|global)" + }, + "parent-selector": { + "name": "entity.name.tag.css.postcss", + "match": "&" + } + }, + "foldingStartMarker": "/\\*|^#|^\\*|^\\b|^\\.", + "foldingStopMarker": "\\*/|^\\s*$", + "fileTypes": ["pcss", "postcss"], + "uuid": "90DAEA60-88AA-11E2-9E96-0800200C9A66", + "scopeName": "source.css.postcss" +} diff --git a/docs/shiki/languages/powerquery.tmLanguage.json b/docs/shiki/languages/powerquery.tmLanguage.json new file mode 100644 index 00000000..5ffcfab3 --- /dev/null +++ b/docs/shiki/languages/powerquery.tmLanguage.json @@ -0,0 +1,346 @@ +{ + "name": "powerquery", + "scopeName": "source.powerquery", + "fileTypes": ["pq", "pqm"], + "uuid": "41968B57-12E6-4AC5-92A4-A837010E8B0A", + "patterns": [ + { + "include": "#Noise" + }, + { + "include": "#LiteralExpression" + }, + { + "include": "#Keywords" + }, + { + "include": "#ImplicitVariable" + }, + { + "include": "#IntrinsicVariable" + }, + { + "include": "#Operators" + }, + { + "include": "#DotOperators" + }, + { + "include": "#TypeName" + }, + { + "include": "#RecordExpression" + }, + { + "include": "#Punctuation" + }, + { + "include": "#QuotedIdentifier" + }, + { + "include": "#Identifier" + } + ], + "repository": { + "Keywords": { + "match": "\\b(?:(and|or|not)|(if|then|else)|(try|otherwise)|(as|each|in|is|let|meta|type|error)|(section|shared))\\b", + "captures": { + "1": { + "name": "keyword.operator.word.logical.powerquery" + }, + "2": { + "name": "keyword.control.conditional.powerquery" + }, + "3": { + "name": "keyword.control.exception.powerquery" + }, + "4": { + "name": "keyword.other.powerquery" + }, + "5": { + "name": "keyword.powerquery" + } + } + }, + "TypeName": { + "match": "\\b(?:(optional|nullable)|(action|any|anynonnull|binary|date|datetime|datetimezone|duration|function|list|logical|none|null|number|record|table|text|type))\\b", + "captures": { + "1": { + "name": "storage.modifier.powerquery" + }, + "2": { + "name": "storage.type.powerquery" + } + } + }, + "LiteralExpression": { + "patterns": [ + { + "include": "#String" + }, + { + "include": "#NumericConstant" + }, + { + "include": "#LogicalConstant" + }, + { + "include": "#NullConstant" + }, + { + "include": "#FloatNumber" + }, + { + "include": "#DecimalNumber" + }, + { + "include": "#HexNumber" + }, + { + "include": "#IntNumber" + } + ] + }, + "Noise": { + "patterns": [ + { + "include": "#BlockComment" + }, + { + "include": "#LineComment" + }, + { + "include": "#Whitespace" + } + ] + }, + "Whitespace": { + "match": "\\s+" + }, + "BlockComment": { + "begin": "/\\*", + "end": "\\*/", + "name": "comment.block.powerquery" + }, + "LineComment": { + "match": "//.*", + "name": "comment.line.double-slash.powerquery" + }, + "String": { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.powerquery" + } + }, + "end": "\"(?!\")", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.powerquery" + } + }, + "patterns": [ + { + "match": "\"\"", + "name": "constant.character.escape.quote.powerquery" + }, + { + "include": "#EscapeSequence" + } + ], + "name": "string.quoted.double.powerquery" + }, + "QuotedIdentifier": { + "begin": "#\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.quotedidentifier.begin.powerquery" + } + }, + "end": "\"(?!\")", + "endCaptures": { + "0": { + "name": "punctuation.definition.quotedidentifier.end.powerquery" + } + }, + "patterns": [ + { + "match": "\"\"", + "name": "constant.character.escape.quote.powerquery" + }, + { + "include": "#EscapeSequence" + } + ], + "name": "entity.name.powerquery" + }, + "EscapeSequence": { + "begin": "#\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.escapesequence.begin.powerquery" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.escapesequence.end.powerquery" + } + }, + "patterns": [ + { + "match": "(#|\\h{4}|\\h{8}|cr|lf|tab)(?:,(#|\\h{4}|\\h{8}|cr|lf|tab))*" + }, + { + "match": "[^\\)]", + "name": "invalid.illegal.escapesequence.powerquery" + } + ], + "name": "constant.character.escapesequence.powerquery" + }, + "LogicalConstant": { + "match": "\\b(true|false)\\b", + "name": "constant.language.logical.powerquery" + }, + "NullConstant": { + "match": "\\b(null)\\b", + "name": "constant.language.null.powerquery" + }, + "NumericConstant": { + "match": "(?<![\\d\\w])(#infinity|#nan)\\b", + "captures": { + "1": { + "name": "constant.language.numeric.float.powerquery" + } + } + }, + "HexNumber": { + "match": "0(x|X)\\h+", + "name": "constant.numeric.integer.hexadecimal.powerquery" + }, + "IntNumber": { + "match": "\\b(\\d+)\\b", + "captures": { + "1": { + "name": "constant.numeric.integer.powerquery" + } + } + }, + "DecimalNumber": { + "match": "(?<![\\d\\w])(\\d*\\.\\d+)\\b", + "name": "constant.numeric.decimal.powerquery" + }, + "FloatNumber": { + "match": "(\\d*\\.)?\\d+(e|E)(\\+|-)?\\d+", + "name": "constant.numeric.float.powerquery" + }, + "InclusiveIdentifier": { + "match": "@", + "captures": { + "0": { + "name": "inclusiveidentifier.powerquery" + } + } + }, + "Identifier": { + "match": "(?x:(?<![\\._\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Nd}\\p{Pc}\\p{Mn}\\p{Mc}\\p{Cf}])(@?)([_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}][_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Nd}\\p{Pc}\\p{Mn}\\p{Mc}\\p{Cf}]*(?:\\.[_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}][_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Nd}\\p{Pc}\\p{Mn}\\p{Mc}\\p{Cf}])*)\\b)", + "captures": { + "1": { + "name": "keyword.operator.inclusiveidentifier.powerquery" + }, + "2": { + "name": "entity.name.powerquery" + } + } + }, + "Operators": { + "match": "(=>)|(=)|(<>|<|>|<=|>=)|(&)|(\\+|-|\\*|\\/)|(!)|(\\?)", + "captures": { + "1": { + "name": "keyword.operator.function.powerquery" + }, + "2": { + "name": "keyword.operator.assignment-or-comparison.powerquery" + }, + "3": { + "name": "keyword.operator.comparison.powerquery" + }, + "4": { + "name": "keyword.operator.combination.powerquery" + }, + "5": { + "name": "keyword.operator.arithmetic.powerquery" + }, + "6": { + "name": "keyword.operator.sectionaccess.powerquery" + }, + "7": { + "name": "keyword.operator.optional.powerquery" + } + } + }, + "DotOperators": { + "match": "(?<!\\.)(?:(\\.\\.\\.)|(\\.\\.))(?!\\.)", + "captures": { + "1": { + "name": "keyword.operator.ellipsis.powerquery" + }, + "2": { + "name": "keyword.operator.list.powerquery" + } + } + }, + "RecordExpression": { + "begin": "\\[", + "beginCaptures": { + "0": { + "name": "punctuation.section.brackets.begin.powerquery" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.section.brackets.end.powerquery" + } + }, + "patterns": [ + { + "include": "$self" + } + ], + "contentName": "meta.recordexpression.powerquery" + }, + "Punctuation": { + "match": "(,)|(\\()|(\\))|({)|(})", + "captures": { + "1": { + "name": "punctuation.separator.powerquery" + }, + "2": { + "name": "punctuation.section.parens.begin.powerquery" + }, + "3": { + "name": "punctuation.section.parens.end.powerquery" + }, + "4": { + "name": "punctuation.section.braces.begin.powerquery" + }, + "5": { + "name": "punctuation.section.braces.end.powerquery" + } + } + }, + "ImplicitVariable": { + "match": "\\b_\\b", + "name": "keyword.operator.implicitvariable.powerquery" + }, + "IntrinsicVariable": { + "match": "(?<![\\d\\w])(#sections|#shared)\\b", + "captures": { + "1": { + "name": "constant.language.intrinsicvariable.powerquery" + } + } + } + } +} diff --git a/docs/shiki/languages/powershell.tmLanguage.json b/docs/shiki/languages/powershell.tmLanguage.json new file mode 100644 index 00000000..61d40c63 --- /dev/null +++ b/docs/shiki/languages/powershell.tmLanguage.json @@ -0,0 +1,1029 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/PowerShell/EditorSyntax/blob/master/PowerShellSyntax.tmLanguage", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/PowerShell/EditorSyntax/commit/742f0b5d4b60f5930c0b47fcc1f646860521296e", + "name": "powershell", + "scopeName": "source.powershell", + "patterns": [ + { + "begin": "<#", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.block.begin.powershell" + } + }, + "end": "#>", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.block.end.powershell" + } + }, + "name": "comment.block.powershell", + "patterns": [ + { + "include": "#commentEmbeddedDocs" + } + ] + }, + { + "match": "[2-6]>&1|>>|>|<<|<|>|>\\||[1-6]>|[1-6]>>", + "name": "keyword.operator.redirection.powershell" + }, + { + "include": "#commands" + }, + { + "include": "#commentLine" + }, + { + "include": "#variable" + }, + { + "include": "#subexpression" + }, + { + "include": "#function" + }, + { + "include": "#attribute" + }, + { + "include": "#UsingDirective" + }, + { + "include": "#type" + }, + { + "include": "#hashtable" + }, + { + "include": "#doubleQuotedString" + }, + { + "include": "#scriptblock" + }, + { + "comment": "Needed to parse stuff correctly in 'argument mode'. (See about_parsing.)", + "include": "#doubleQuotedStringEscapes" + }, + { + "begin": "['\\x{2018}-\\x{201B}]", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.powershell" + } + }, + "end": "['\\x{2018}-\\x{201B}]", + "applyEndPatternLast": true, + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.powershell" + } + }, + "name": "string.quoted.single.powershell", + "patterns": [ + { + "match": "['\\x{2018}-\\x{201B}]{2}", + "name": "constant.character.escape.powershell" + } + ] + }, + { + "begin": "(@[\"\\x{201C}-\\x{201E}])\\s*$", + "beginCaptures": { + "1": { + "name": "punctuation.definition.string.begin.powershell" + } + }, + "end": "^[\"\\x{201C}-\\x{201E}]@", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.powershell" + } + }, + "name": "string.quoted.double.heredoc.powershell", + "patterns": [ + { + "include": "#variableNoProperty" + }, + { + "include": "#doubleQuotedStringEscapes" + }, + { + "include": "#interpolation" + } + ] + }, + { + "begin": "(@['\\x{2018}-\\x{201B}])\\s*$", + "beginCaptures": { + "1": { + "name": "punctuation.definition.string.begin.powershell" + } + }, + "end": "^['\\x{2018}-\\x{201B}]@", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.powershell" + } + }, + "name": "string.quoted.single.heredoc.powershell" + }, + { + "include": "#numericConstant" + }, + { + "begin": "(@)(\\()", + "beginCaptures": { + "1": { + "name": "keyword.other.array.begin.powershell" + }, + "2": { + "name": "punctuation.section.group.begin.powershell" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.group.end.powershell" + } + }, + "name": "meta.group.array-expression.powershell", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "begin": "((\\$))(\\()", + "beginCaptures": { + "1": { + "name": "keyword.other.substatement.powershell" + }, + "2": { + "name": "punctuation.definition.subexpression.powershell" + }, + "3": { + "name": "punctuation.section.group.begin.powershell" + } + }, + "comment": "TODO: move to repo; make recursive.", + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.group.end.powershell" + } + }, + "name": "meta.group.complex.subexpression.powershell", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "match": "(\\b(([A-Za-z0-9\\-_\\.]+)\\.(?i:exe|com|cmd|bat))\\b)", + "name": "support.function.powershell" + }, + { + "match": "(?<!\\w|-|\\.)((?i:begin|break|catch|clean|continue|data|default|define|do|dynamicparam|else|elseif|end|exit|finally|for|from|if|in|inlinescript|parallel|param|process|return|sequence|switch|throw|trap|try|until|var|while)|%|\\?)(?!\\w)", + "name": "keyword.control.powershell" + }, + { + "match": "(?<!\\w|-|[^\\)]\\.)((?i:(foreach|where)(?!-object))|%|\\?)(?!\\w)", + "name": "keyword.control.powershell" + }, + { + "begin": "(?<!\\w)(--%)(?!\\w)", + "beginCaptures": { + "1": { + "name": "keyword.control.powershell" + } + }, + "end": "$", + "patterns": [ + { + "match": ".+", + "name": "string.unquoted.powershell" + } + ], + "comment": "This should be moved to the repository at some point." + }, + { + "comment": "This should only be relevant inside a class but will require a rework of how classes are matched. This is a temp fix.", + "match": "(?<!\\w)((?i:hidden|static))(?!\\w)", + "name": "storage.modifier.powershell" + }, + { + "captures": { + "1": { + "name": "storage.type.powershell" + }, + "2": { + "name": "entity.name.function" + } + }, + "comment": "capture should be entity.name.type, but it doesn't provide a good color in the default schema.", + "match": "(?<!\\w|-)((?i:class)|%|\\?)(?:\\s)+((?:\\p{L}|\\d|_|-|)+)\\b" + }, + { + "match": "(?<!\\w)-(?i:is(?:not)?|as)\\b", + "name": "keyword.operator.comparison.powershell" + }, + { + "match": "(?<!\\w)-(?i:[ic]?(?:eq|ne|[gl][te]|(?:not)?(?:like|match|contains|in)|replace))(?!\\p{L})", + "name": "keyword.operator.comparison.powershell" + }, + { + "match": "(?<!\\w)-(?i:join|split)(?!\\p{L})|!", + "name": "keyword.operator.unary.powershell" + }, + { + "match": "(?<!\\w)-(?i:and|or|not|xor)(?!\\p{L})|!", + "name": "keyword.operator.logical.powershell" + }, + { + "match": "(?<!\\w)-(?i:band|bor|bnot|bxor|shl|shr)(?!\\p{L})", + "name": "keyword.operator.bitwise.powershell" + }, + { + "match": "(?<!\\w)-(?i:f)(?!\\p{L})", + "name": "keyword.operator.string-format.powershell" + }, + { + "match": "[+%*/-]?=|[+/*%-]", + "name": "keyword.operator.assignment.powershell" + }, + { + "match": "\\|{2}|&{2}|;", + "name": "punctuation.terminator.statement.powershell" + }, + { + "match": "&|(?<!\\w)\\.(?= )|`|,|\\|", + "name": "keyword.operator.other.powershell" + }, + { + "comment": "This is very imprecise, is there a syntax for 'must come after...' ", + "match": "(?<!\\s|^)\\.\\.(?=\\-?\\d|\\(|\\$)", + "name": "keyword.operator.range.powershell" + } + ], + "repository": { + "commentLine": { + "begin": "(?<![`\\\\-])(#)#*", + "captures": { + "1": { + "name": "punctuation.definition.comment.powershell" + } + }, + "end": "$\\n?", + "name": "comment.line.powershell", + "patterns": [ + { + "include": "#commentEmbeddedDocs" + }, + { + "include": "#RequiresDirective" + } + ] + }, + "attribute": { + "begin": "(\\[)\\s*\\b(?i)(cmdletbinding|alias|outputtype|parameter|validatenotnull|validatenotnullorempty|validatecount|validateset|allownull|allowemptycollection|allowemptystring|validatescript|validaterange|validatepattern|validatelength|supportswildcards)\\b", + "beginCaptures": { + "1": { + "name": "punctuation.section.bracket.begin.powershell" + }, + "2": { + "name": "support.function.attribute.powershell" + } + }, + "end": "(\\])", + "endCaptures": { + "1": { + "name": "punctuation.section.bracket.end.powershell" + } + }, + "name": "meta.attribute.powershell", + "patterns": [ + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.section.group.begin.powershell" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.group.end.powershell" + } + }, + "patterns": [ + { + "include": "$self" + }, + { + "match": "(?i)\\b(mandatory|valuefrompipeline|valuefrompipelinebypropertyname|valuefromremainingarguments|position|parametersetname|defaultparametersetname|supportsshouldprocess|supportspaging|positionalbinding|helpuri|confirmimpact|helpmessage)\\b(?:\\s+)?(=)?", + "captures": { + "1": { + "name": "variable.parameter.attribute.powershell" + }, + "2": { + "name": "keyword.operator.assignment.powershell" + } + } + } + ] + } + ] + }, + "commands": { + "patterns": [ + { + "comment": "Verb-Noun pattern:", + "match": "(?:(\\p{L}|\\d|_|-|\\\\|\\:)*\\\\)?\\b(?i:Add|Approve|Assert|Backup|Block|Build|Checkpoint|Clear|Close|Compare|Complete|Compress|Confirm|Connect|Convert|ConvertFrom|ConvertTo|Copy|Debug|Deny|Deploy|Disable|Disconnect|Dismount|Edit|Enable|Enter|Exit|Expand|Export|Find|Format|Get|Grant|Group|Hide|Import|Initialize|Install|Invoke|Join|Limit|Lock|Measure|Merge|Mount|Move|New|Open|Optimize|Out|Ping|Pop|Protect|Publish|Push|Read|Receive|Redo|Register|Remove|Rename|Repair|Request|Reset|Resize|Resolve|Restart|Restore|Resume|Revoke|Save|Search|Select|Send|Set|Show|Skip|Split|Start|Step|Stop|Submit|Suspend|Switch|Sync|Test|Trace|Unblock|Undo|Uninstall|Unlock|Unprotect|Unpublish|Unregister|Update|Use|Wait|Watch|Write)\\-.+?(?:\\.(?i:exe|cmd|bat|ps1))?\\b", + "name": "support.function.powershell" + }, + { + "comment": "Builtin cmdlets with reserved verbs", + "match": "(?<!\\w)(?i:foreach-object)(?!\\w)", + "name": "support.function.powershell" + }, + { + "comment": "Builtin cmdlets with reserved verbs", + "match": "(?<!\\w)(?i:where-object)(?!\\w)", + "name": "support.function.powershell" + }, + { + "comment": "Builtin cmdlets with reserved verbs", + "match": "(?<!\\w)(?i:sort-object)(?!\\w)", + "name": "support.function.powershell" + }, + { + "comment": "Builtin cmdlets with reserved verbs", + "match": "(?<!\\w)(?i:tee-object)(?!\\w)", + "name": "support.function.powershell" + } + ] + }, + "commentEmbeddedDocs": { + "patterns": [ + { + "captures": { + "1": { + "name": "constant.string.documentation.powershell" + }, + "2": { + "name": "keyword.operator.documentation.powershell" + } + }, + "comment": "these embedded doc keywords do not support arguments, must be the only thing on the line", + "match": "(?:^|\\G)(?i:\\s*(\\.)(COMPONENT|DESCRIPTION|EXAMPLE|FUNCTIONALITY|INPUTS|LINK|NOTES|OUTPUTS|ROLE|SYNOPSIS))\\s*$", + "name": "comment.documentation.embedded.powershell" + }, + { + "captures": { + "1": { + "name": "constant.string.documentation.powershell" + }, + "2": { + "name": "keyword.operator.documentation.powershell" + }, + "3": { + "name": "keyword.operator.documentation.powershell" + } + }, + "comment": "these embedded doc keywords require arguments though the type required may be inconsistent, they may not all be able to use the same argument match", + "match": "(?:^|\\G)(?i:\\s*(\\.)(EXTERNALHELP|FORWARDHELP(?:CATEGORY|TARGETNAME)|PARAMETER|REMOTEHELPRUNSPACE))\\s+(.+?)\\s*$", + "name": "comment.documentation.embedded.powershell" + } + ] + }, + "doubleQuotedStringEscapes": { + "patterns": [ + { + "match": "`[`0abefnrtv'\"\\x{2018}-\\x{201E}$]", + "name": "constant.character.escape.powershell" + }, + { + "include": "#unicodeEscape" + } + ] + }, + "unicodeEscape": { + "comment": "`u{xxxx} added in PowerShell 6.0", + "patterns": [ + { + "match": "`u\\{(?:(?:10)?([0-9a-fA-F]){1,4}|0?\\g<1>{1,5})}", + "name": "constant.character.escape.powershell" + }, + { + "match": "`u(?:\\{[0-9a-fA-F]{,6}.)?", + "name": "invalid.character.escape.powershell" + } + ] + }, + "function": { + "begin": "^(?:\\s*+)(?i)(function|filter|configuration|workflow)\\s+(?:(global|local|script|private):)?((?:\\p{L}|\\d|_|-|\\.)+)", + "beginCaptures": { + "0": { + "name": "meta.function.powershell" + }, + "1": { + "name": "storage.type.powershell" + }, + "2": { + "name": "storage.modifier.scope.powershell" + }, + "3": { + "name": "entity.name.function.powershell" + } + }, + "end": "(?=\\{|\\()", + "patterns": [ + { + "include": "#commentLine" + } + ] + }, + "subexpression": { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.section.group.begin.powershell" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.group.end.powershell" + } + }, + "name": "meta.group.simple.subexpression.powershell", + "patterns": [ + { + "include": "$self" + } + ] + }, + "interpolation": { + "begin": "(((\\$)))((\\())", + "beginCaptures": { + "1": { + "name": "keyword.other.substatement.powershell" + }, + "2": { + "name": "punctuation.definition.substatement.powershell" + }, + "3": { + "name": "punctuation.section.embedded.substatement.begin.powershell" + }, + "4": { + "name": "punctuation.section.group.begin.powershell" + }, + "5": { + "name": "punctuation.section.embedded.substatement.begin.powershell" + } + }, + "contentName": "interpolated.complex.source.powershell", + "end": "(\\))", + "endCaptures": { + "0": { + "name": "punctuation.section.group.end.powershell" + }, + "1": { + "name": "punctuation.section.embedded.substatement.end.powershell" + } + }, + "name": "meta.embedded.substatement.powershell", + "patterns": [ + { + "include": "$self" + } + ] + }, + "numericConstant": { + "patterns": [ + { + "captures": { + "1": { + "name": "constant.numeric.hex.powershell" + }, + "2": { + "name": "keyword.other.powershell" + } + }, + "match": "(?<!\\w)([-+]?0(?:x|X)[0-9a-fA-F_]+(?:U|u|L|l|UL|Ul|uL|ul|LU|Lu|lU|lu)?)((?i:[kmgtp]b)?)\\b" + }, + { + "captures": { + "1": { + "name": "constant.numeric.integer.powershell" + }, + "2": { + "name": "keyword.other.powershell" + } + }, + "match": "(?<!\\w)([-+]?(?:[0-9_]+)?\\.[0-9_]+(?:(?:e|E)[0-9]+)?(?:F|f|D|d|M|m)?)((?i:[kmgtp]b)?)\\b" + }, + { + "captures": { + "1": { + "name": "constant.numeric.octal.powershell" + }, + "2": { + "name": "keyword.other.powershell" + } + }, + "match": "(?<!\\w)([-+]?0(?:b|B)[01_]+(?:U|u|L|l|UL|Ul|uL|ul|LU|Lu|lU|lu)?)((?i:[kmgtp]b)?)\\b" + }, + { + "captures": { + "1": { + "name": "constant.numeric.integer.powershell" + }, + "2": { + "name": "keyword.other.powershell" + } + }, + "match": "(?<!\\w)([-+]?[0-9_]+(?:e|E)(?:[0-9_])?+(?:F|f|D|d|M|m)?)((?i:[kmgtp]b)?)\\b" + }, + { + "captures": { + "1": { + "name": "constant.numeric.integer.powershell" + }, + "2": { + "name": "keyword.other.powershell" + } + }, + "match": "(?<!\\w)([-+]?[0-9_]+\\.(?:e|E)(?:[0-9_])?+(?:F|f|D|d|M|m)?)((?i:[kmgtp]b)?)\\b" + }, + { + "captures": { + "1": { + "name": "constant.numeric.integer.powershell" + }, + "2": { + "name": "keyword.other.powershell" + } + }, + "match": "(?<!\\w)([-+]?[0-9_]+[\\.]?(?:F|f|D|d|M|m))((?i:[kmgtp]b)?)\\b" + }, + { + "captures": { + "1": { + "name": "constant.numeric.integer.powershell" + }, + "2": { + "name": "keyword.other.powershell" + } + }, + "match": "(?<!\\w)([-+]?[0-9_]+[\\.]?(?:U|u|L|l|UL|Ul|uL|ul|LU|Lu|lU|lu)?)((?i:[kmgtp]b)?)\\b" + } + ] + }, + "scriptblock": { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.section.braces.begin.powershell" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.section.braces.end.powershell" + } + }, + "name": "meta.scriptblock.powershell", + "patterns": [ + { + "include": "$self" + } + ] + }, + "type": { + "begin": "\\[", + "beginCaptures": { + "0": { + "name": "punctuation.section.bracket.begin.powershell" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.section.bracket.end.powershell" + } + }, + "patterns": [ + { + "match": "(?!\\d+|\\.)(?:\\p{L}|\\p{N}|\\.)+", + "name": "storage.type.powershell" + }, + { + "include": "$self" + } + ] + }, + "variable": { + "patterns": [ + { + "captures": { + "0": { + "name": "constant.language.powershell" + }, + "1": { + "name": "punctuation.definition.variable.powershell" + } + }, + "comment": "These are special constants.", + "match": "(\\$)(?i:(False|Null|True))\\b" + }, + { + "captures": { + "0": { + "name": "support.constant.variable.powershell" + }, + "1": { + "name": "punctuation.definition.variable.powershell" + }, + "3": { + "name": "variable.other.member.powershell" + } + }, + "comment": "These are the other built-in constants.", + "match": "(\\$)(?i:(Error|ExecutionContext|Host|Home|PID|PsHome|PsVersionTable|ShellID))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?\\b" + }, + { + "captures": { + "0": { + "name": "support.variable.automatic.powershell" + }, + "1": { + "name": "punctuation.definition.variable.powershell" + }, + "3": { + "name": "variable.other.member.powershell" + } + }, + "comment": "Automatic variables are not constants, but they are read-only. In monokai (default) color schema support.variable doesn't have color, so we use constant.", + "match": "(\\$)((?:[$^?])|(?i:_|Args|ConsoleFileName|Event|EventArgs|EventSubscriber|ForEach|Input|LastExitCode|Matches|MyInvocation|NestedPromptLevel|Profile|PSBoundParameters|PsCmdlet|PsCulture|PSDebugContext|PSItem|PSCommandPath|PSScriptRoot|PsUICulture|Pwd|Sender|SourceArgs|SourceEventArgs|StackTrace|Switch|This)\\b)((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?" + }, + { + "captures": { + "0": { + "name": "variable.language.powershell" + }, + "1": { + "name": "punctuation.definition.variable.powershell" + }, + "3": { + "name": "variable.other.member.powershell" + } + }, + "comment": "Style preference variables as language variables so that they stand out.", + "match": "(\\$)(?i:(ConfirmPreference|DebugPreference|ErrorActionPreference|ErrorView|FormatEnumerationLimit|InformationPreference|LogCommandHealthEvent|LogCommandLifecycleEvent|LogEngineHealthEvent|LogEngineLifecycleEvent|LogProviderHealthEvent|LogProviderLifecycleEvent|MaximumAliasCount|MaximumDriveCount|MaximumErrorCount|MaximumFunctionCount|MaximumHistoryCount|MaximumVariableCount|OFS|OutputEncoding|PSCulture|PSDebugContext|PSDefaultParameterValues|PSEmailServer|PSItem|PSModuleAutoLoadingPreference|PSModuleAutoloadingPreference|PSSenderInfo|PSSessionApplicationName|PSSessionConfigurationName|PSSessionOption|ProgressPreference|VerbosePreference|WarningPreference|WhatIfPreference))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?\\b" + }, + { + "captures": { + "0": { + "name": "variable.other.readwrite.powershell" + }, + "1": { + "name": "punctuation.definition.variable.powershell" + }, + "2": { + "name": "storage.modifier.scope.powershell" + }, + "4": { + "name": "variable.other.member.powershell" + } + }, + "match": "(?i:(\\$|@)(global|local|private|script|using|workflow):((?:\\p{L}|\\d|_)+))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?" + }, + { + "captures": { + "0": { + "name": "variable.other.readwrite.powershell" + }, + "1": { + "name": "punctuation.definition.variable.powershell" + }, + "2": { + "name": "punctuation.section.braces.begin.powershell" + }, + "3": { + "name": "storage.modifier.scope.powershell" + }, + "5": { + "name": "punctuation.section.braces.end.powershell" + }, + "6": { + "name": "variable.other.member.powershell" + } + }, + "match": "(?i:(\\$)(\\{)(global|local|private|script|using|workflow):([^}]*[^}`])(\\}))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?" + }, + { + "captures": { + "0": { + "name": "variable.other.readwrite.powershell" + }, + "1": { + "name": "punctuation.definition.variable.powershell" + }, + "2": { + "name": "support.variable.drive.powershell" + }, + "4": { + "name": "variable.other.member.powershell" + } + }, + "match": "(?i:(\\$|@)((?:\\p{L}|\\d|_)+:)?((?:\\p{L}|\\d|_)+))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?" + }, + { + "captures": { + "0": { + "name": "variable.other.readwrite.powershell" + }, + "1": { + "name": "punctuation.definition.variable.powershell" + }, + "2": { + "name": "punctuation.section.braces.begin.powershell" + }, + "3": { + "name": "support.variable.drive.powershell" + }, + "5": { + "name": "punctuation.section.braces.end.powershell" + }, + "6": { + "name": "variable.other.member.powershell" + } + }, + "match": "(?i:(\\$)(\\{)((?:\\p{L}|\\d|_)+:)?([^}]*[^}`])(\\}))((?:\\.(?:\\p{L}|\\d|_)+)*\\b)?" + } + ] + }, + "UsingDirective": { + "match": "(?<!\\w)(?i:(using))\\s+(?i:(namespace|module))\\s+(?i:((?:\\w+(?:\\.)?)+))", + "captures": { + "1": { + "name": "keyword.control.using.powershell" + }, + "2": { + "name": "keyword.other.powershell" + }, + "3": { + "name": "variable.parameter.powershell" + } + } + }, + "RequiresDirective": { + "begin": "(?<=#)(?i:(requires))\\s", + "beginCaptures": { + "0": { + "name": "keyword.control.requires.powershell" + } + }, + "end": "$", + "name": "meta.requires.powershell", + "patterns": [ + { + "match": "\\-(?i:Modules|PSSnapin|RunAsAdministrator|ShellId|Version|Assembly|PSEdition)", + "name": "keyword.other.powershell" + }, + { + "match": "(?<!-)\\b\\p{L}+|\\d+(?:\\.\\d+)*", + "name": "variable.parameter.powershell" + }, + { + "include": "#hashtable" + } + ] + }, + "variableNoProperty": { + "patterns": [ + { + "captures": { + "0": { + "name": "constant.language.powershell" + }, + "1": { + "name": "punctuation.definition.variable.powershell" + } + }, + "comment": "These are special constants.", + "match": "(\\$)(?i:(False|Null|True))\\b" + }, + { + "captures": { + "0": { + "name": "support.constant.variable.powershell" + }, + "1": { + "name": "punctuation.definition.variable.powershell" + }, + "3": { + "name": "variable.other.member.powershell" + } + }, + "comment": "These are the other built-in constants.", + "match": "(\\$)(?i:(Error|ExecutionContext|Host|Home|PID|PsHome|PsVersionTable|ShellID))\\b" + }, + { + "captures": { + "0": { + "name": "support.variable.automatic.powershell" + }, + "1": { + "name": "punctuation.definition.variable.powershell" + }, + "3": { + "name": "variable.other.member.powershell" + } + }, + "comment": "Automatic variables are not constants, but they are read-only...", + "match": "(\\$)((?:[$^?])|(?i:_|Args|ConsoleFileName|Event|EventArgs|EventSubscriber|ForEach|Input|LastExitCode|Matches|MyInvocation|NestedPromptLevel|Profile|PSBoundParameters|PsCmdlet|PsCulture|PSDebugContext|PSItem|PSCommandPath|PSScriptRoot|PsUICulture|Pwd|Sender|SourceArgs|SourceEventArgs|StackTrace|Switch|This)\\b)" + }, + { + "captures": { + "0": { + "name": "variable.language.powershell" + }, + "1": { + "name": "punctuation.definition.variable.powershell" + }, + "3": { + "name": "variable.other.member.powershell" + } + }, + "comment": "Style preference variables as language variables so that they stand out.", + "match": "(\\$)(?i:(ConfirmPreference|DebugPreference|ErrorActionPreference|ErrorView|FormatEnumerationLimit|InformationPreference|LogCommandHealthEvent|LogCommandLifecycleEvent|LogEngineHealthEvent|LogEngineLifecycleEvent|LogProviderHealthEvent|LogProviderLifecycleEvent|MaximumAliasCount|MaximumDriveCount|MaximumErrorCount|MaximumFunctionCount|MaximumHistoryCount|MaximumVariableCount|OFS|OutputEncoding|PSCulture|PSDebugContext|PSDefaultParameterValues|PSEmailServer|PSItem|PSModuleAutoLoadingPreference|PSModuleAutoloadingPreference|PSSenderInfo|PSSessionApplicationName|PSSessionConfigurationName|PSSessionOption|ProgressPreference|VerbosePreference|WarningPreference|WhatIfPreference))\\b" + }, + { + "captures": { + "0": { + "name": "variable.other.readwrite.powershell" + }, + "1": { + "name": "punctuation.definition.variable.powershell" + }, + "2": { + "name": "storage.modifier.scope.powershell" + }, + "4": { + "name": "variable.other.member.powershell" + } + }, + "match": "(?i:(\\$)(global|local|private|script|using|workflow):((?:\\p{L}|\\d|_)+))" + }, + { + "captures": { + "0": { + "name": "variable.other.readwrite.powershell" + }, + "1": { + "name": "punctuation.definition.variable.powershell" + }, + "2": { + "name": "storage.modifier.scope.powershell" + }, + "4": { + "name": "keyword.other.powershell" + }, + "5": { + "name": "variable.other.member.powershell" + } + }, + "match": "(?i:(\\$)(\\{)(global|local|private|script|using|workflow):([^}]*[^}`])(\\}))" + }, + { + "captures": { + "0": { + "name": "variable.other.readwrite.powershell" + }, + "1": { + "name": "punctuation.definition.variable.powershell" + }, + "2": { + "name": "support.variable.drive.powershell" + }, + "4": { + "name": "variable.other.member.powershell" + } + }, + "match": "(?i:(\\$)((?:\\p{L}|\\d|_)+:)?((?:\\p{L}|\\d|_)+))" + }, + { + "captures": { + "0": { + "name": "variable.other.readwrite.powershell" + }, + "1": { + "name": "punctuation.definition.variable.powershell" + }, + "2": { + "name": "punctuation.section.braces.begin" + }, + "3": { + "name": "support.variable.drive.powershell" + }, + "5": { + "name": "punctuation.section.braces.end" + } + }, + "match": "(?i:(\\$)(\\{)((?:\\p{L}|\\d|_)+:)?([^}]*[^}`])(\\}))" + } + ] + }, + "hashtable": { + "begin": "(@)(\\{)", + "beginCaptures": { + "1": { + "name": "keyword.other.hashtable.begin.powershell" + }, + "2": { + "name": "punctuation.section.braces.begin.powershell" + } + }, + "end": "(\\})", + "endCaptures": { + "1": { + "name": "punctuation.section.braces.end.powershell" + } + }, + "name": "meta.hashtable.powershell", + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.string.begin.powershell" + }, + "2": { + "name": "variable.other.readwrite.powershell" + }, + "3": { + "name": "punctuation.definition.string.end.powershell" + }, + "4": { + "name": "keyword.operator.assignment.powershell" + } + }, + "match": "\\b((?:\\'|\\\")?)(\\w+)((?:\\'|\\\")?)(?:\\s+)?(=)(?:\\s+)?", + "name": "meta.hashtable.assignment.powershell" + }, + { + "include": "#scriptblock" + }, + { + "include": "$self" + } + ] + }, + "doubleQuotedString": { + "begin": "[\"\\x{201C}-\\x{201E}]", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.powershell" + } + }, + "end": "[\"\\x{201C}-\\x{201E}]", + "applyEndPatternLast": true, + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.powershell" + } + }, + "name": "string.quoted.double.powershell", + "patterns": [ + { + "match": "(?i)\\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,64}\\b" + }, + { + "include": "#variableNoProperty" + }, + { + "include": "#doubleQuotedStringEscapes" + }, + { + "match": "[\"\\x{201C}-\\x{201E}]{2}", + "name": "constant.character.escape.powershell" + }, + { + "include": "#interpolation" + }, + { + "match": "`\\s*$", + "name": "keyword.other.powershell" + } + ] + } + } +} diff --git a/docs/shiki/languages/prisma.tmLanguage.json b/docs/shiki/languages/prisma.tmLanguage.json new file mode 100644 index 00000000..f5b3b23d --- /dev/null +++ b/docs/shiki/languages/prisma.tmLanguage.json @@ -0,0 +1,441 @@ +{ + "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", + "name": "prisma", + "scopeName": "source.prisma", + "fileTypes": ["prisma"], + "patterns": [ + { + "include": "#triple_comment" + }, + { + "include": "#double_comment" + }, + { + "include": "#model_block_definition" + }, + { + "include": "#config_block_definition" + }, + { + "include": "#enum_block_definition" + }, + { + "include": "#type_definition" + } + ], + "repository": { + "model_block_definition": { + "begin": "^\\s*(model|type|view)\\s+([A-Za-z][\\w]*)\\s*({)", + "name": "source.prisma.embedded.source", + "beginCaptures": { + "1": { + "name": "storage.type.model.prisma" + }, + "2": { + "name": "entity.name.type.model.prisma" + }, + "3": { + "name": "punctuation.definition.tag.prisma" + } + }, + "patterns": [ + { + "include": "#triple_comment" + }, + { + "include": "#double_comment" + }, + { + "include": "#field_definition" + } + ], + "end": "\\s*\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.prisma" + } + } + }, + "enum_block_definition": { + "begin": "^\\s*(enum)\\s+([A-Za-z][\\w]*)\\s+({)", + "name": "source.prisma.embedded.source", + "beginCaptures": { + "1": { + "name": "storage.type.enum.prisma" + }, + "2": { + "name": "entity.name.type.enum.prisma" + }, + "3": { + "name": "punctuation.definition.tag.prisma" + } + }, + "patterns": [ + { + "include": "#triple_comment" + }, + { + "include": "#double_comment" + }, + { + "include": "#enum_value_definition" + } + ], + "end": "\\s*\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.prisma" + } + } + }, + "config_block_definition": { + "begin": "^\\s*(generator|datasource)\\s+([A-Za-z][\\w]*)\\s+({)", + "name": "source.prisma.embedded.source", + "beginCaptures": { + "1": { + "name": "storage.type.config.prisma" + }, + "2": { + "name": "entity.name.type.config.prisma" + }, + "3": { + "name": "punctuation.definition.tag.prisma" + } + }, + "patterns": [ + { + "include": "#triple_comment" + }, + { + "include": "#double_comment" + }, + { + "include": "#assignment" + } + ], + "end": "\\s*\\}", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.prisma" + } + } + }, + "assignment": { + "patterns": [ + { + "begin": "^\\s*(\\w+)\\s*(=)\\s*", + "beginCaptures": { + "1": { + "name": "variable.other.assignment.prisma" + }, + "2": { + "name": "keyword.operator.terraform" + } + }, + "patterns": [ + { + "include": "#value" + }, + { + "include": "#double_comment_inline" + } + ], + "end": "\\n" + } + ] + }, + "field_definition": { + "name": "scalar.field", + "patterns": [ + { + "match": "^\\s*(\\w+)(\\s*:)?\\s+((?!(?:Int|BigInt|String|DateTime|Bytes|Decimal|Float|Json|Boolean)\\b)\\b\\w+)?(Int|BigInt|String|DateTime|Bytes|Decimal|Float|Json|Boolean)?(\\[\\])?(\\?)?(\\!)?", + "captures": { + "1": { + "name": "variable.other.assignment.prisma" + }, + "2": { + "name": "invalid.illegal.colon.prisma" + }, + "3": { + "name": "variable.language.relations.prisma" + }, + "4": { + "name": "support.type.primitive.prisma" + }, + "5": { + "name": "keyword.operator.list_type.prisma" + }, + "6": { + "name": "keyword.operator.optional_type.prisma" + }, + "7": { + "name": "invalid.illegal.required_type.prisma" + } + } + }, + { + "include": "#attribute_with_arguments" + }, + { + "include": "#attribute" + } + ] + }, + "type_definition": { + "patterns": [ + { + "match": "^\\s*(type)\\s+(\\w+)\\s*=\\s*(\\w+)", + "captures": { + "1": { + "name": "storage.type.type.prisma" + }, + "2": { + "name": "entity.name.type.type.prisma" + }, + "3": { + "name": "support.type.primitive.prisma" + } + } + }, + { + "include": "#attribute_with_arguments" + }, + { + "include": "#attribute" + } + ] + }, + "enum_value_definition": { + "patterns": [ + { + "match": "^\\s*(\\w+)\\s*", + "captures": { + "1": { + "name": "variable.other.assignment.prisma" + } + } + }, + { + "include": "#attribute_with_arguments" + }, + { + "include": "#attribute" + } + ] + }, + "attribute_with_arguments": { + "name": "source.prisma.attribute.with_arguments", + "begin": "(@@?[\\w\\.]+)(\\()", + "beginCaptures": { + "1": { + "name": "entity.name.function.attribute.prisma" + }, + "2": { + "name": "punctuation.definition.tag.prisma" + } + }, + "patterns": [ + { + "include": "#named_argument" + }, + { + "include": "#value" + } + ], + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.prisma" + } + } + }, + "attribute": { + "name": "source.prisma.attribute", + "match": "(@@?[\\w\\.]+)", + "captures": { + "1": { + "name": "entity.name.function.attribute.prisma" + } + } + }, + "array": { + "name": "source.prisma.array", + "begin": "\\[", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.prisma" + } + }, + "patterns": [ + { + "include": "#value" + } + ], + "end": "\\]", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.prisma" + } + } + }, + "value": { + "name": "source.prisma.value", + "patterns": [ + { + "include": "#array" + }, + { + "include": "#functional" + }, + { + "include": "#literal" + } + ] + }, + "functional": { + "name": "source.prisma.functional", + "begin": "(\\w+)(\\()", + "beginCaptures": { + "1": { + "name": "support.function.functional.prisma" + }, + "2": { + "name": "punctuation.definition.tag.prisma" + } + }, + "patterns": [ + { + "include": "#value" + } + ], + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.prisma" + } + } + }, + "literal": { + "name": "source.prisma.literal", + "patterns": [ + { + "include": "#boolean" + }, + { + "include": "#number" + }, + { + "include": "#double_quoted_string" + }, + { + "include": "#identifier" + } + ] + }, + "identifier": { + "patterns": [ + { + "match": "\\b(\\w)+\\b", + "name": "support.constant.constant.prisma" + } + ] + }, + "map_key": { + "name": "source.prisma.key", + "patterns": [ + { + "match": "(\\w+)\\s*(:)\\s*", + "captures": { + "1": { + "name": "variable.parameter.key.prisma" + }, + "2": { + "name": "punctuation.definition.separator.key-value.prisma" + } + } + } + ] + }, + "named_argument": { + "name": "source.prisma.named_argument", + "patterns": [ + { + "include": "#map_key" + }, + { + "include": "#value" + } + ] + }, + "triple_comment": { + "begin": "///", + "end": "$\\n?", + "name": "comment.prisma" + }, + "double_comment": { + "begin": "//", + "end": "$\\n?", + "name": "comment.prisma" + }, + "double_comment_inline": { + "match": "//[^\\n]*", + "name": "comment.prisma" + }, + "boolean": { + "match": "\\b(true|false)\\b", + "name": "constant.language.boolean.prisma" + }, + "number": { + "match": "((0(x|X)[0-9a-fA-F]*)|(\\+|-)?\\b(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)([LlFfUuDdg]|UL|ul)?\\b", + "name": "constant.numeric.prisma" + }, + "double_quoted_string": { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "string.quoted.double.start.prisma" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "string.quoted.double.end.prisma" + } + }, + "patterns": [ + { + "include": "#string_interpolation" + }, + { + "match": "([\\w\\-\\/\\._\\\\%@:\\?=]+)", + "name": "string.quoted.double.prisma" + } + ], + "name": "unnamed" + }, + "string_interpolation": { + "patterns": [ + { + "begin": "\\$\\{", + "beginCaptures": { + "0": { + "name": "keyword.control.interpolation.start.prisma" + } + }, + "end": "\\s*\\}", + "endCaptures": { + "0": { + "name": "keyword.control.interpolation.end.prisma" + } + }, + "name": "source.tag.embedded.source.prisma", + "patterns": [ + { + "include": "#value" + } + ] + } + ] + } + } +} diff --git a/docs/shiki/languages/prolog.tmLanguage.json b/docs/shiki/languages/prolog.tmLanguage.json new file mode 100644 index 00000000..b871d358 --- /dev/null +++ b/docs/shiki/languages/prolog.tmLanguage.json @@ -0,0 +1,296 @@ +{ + "comment": "This Source Code Form is subject to the terms of the Mozilla Public License,\nv. 2.0. If a copy of the MPL was not distributed with this file, You can obtain\none at http://mozilla.org/MPL/2.0/.", + "name": "prolog", + "scopeName": "source.prolog", + "fileTypes": ["pl", "pro"], + "uuid": "df89928b-6612-475a-b414-f319d9b98664", + "patterns": [ + { + "include": "#comments" + }, + { + "name": "meta.clause.body.prolog", + "begin": "(?<=:-)\\s*", + "end": "(\\.)", + "endCaptures": { + "1": { + "name": "keyword.control.clause.bodyend.prolog" + } + }, + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#builtin" + }, + { + "include": "#controlandkeywords" + }, + { + "include": "#atom" + }, + { + "include": "#variable" + }, + { + "include": "#constants" + }, + { + "name": "meta.clause.body.prolog", + "match": "." + } + ] + }, + { + "name": "meta.clause.head.prolog", + "begin": "^\\s*([a-z][a-zA-Z0-9_]*)(\\(?)(?=.*:-.*)", + "beginCaptures": { + "1": { + "name": "entity.name.function.clause.prolog" + }, + "2": { + "name": "punctuation.definition.parameters.begin" + } + }, + "end": "((\\)?))\\s*(:-)", + "endCaptures": { + "1": { + "name": "punctuation.definition.parameters.end" + }, + "3": { + "name": "keyword.control.clause.bodybegin.prolog" + } + }, + "patterns": [ + { + "include": "#atom" + }, + { + "include": "#variable" + }, + { + "include": "#constants" + } + ] + }, + { + "name": "meta.dcg.head.prolog", + "begin": "^\\s*([a-z][a-zA-Z0-9_]*)(\\(?)(?=.*-->.*)", + "beginCaptures": { + "1": { + "name": "entity.name.function.dcg.prolog" + }, + "2": { + "name": "punctuation.definition.parameters.begin" + } + }, + "end": "((\\)?))\\s*(-->)", + "endCaptures": { + "1": { + "name": "punctuation.definition.parameters.end" + }, + "3": { + "name": "keyword.control.dcg.bodybegin.prolog" + } + }, + "patterns": [ + { + "include": "#atom" + }, + { + "include": "#variable" + }, + { + "include": "#constants" + } + ] + }, + { + "name": "meta.dcg.body.prolog", + "begin": "(?<=-->)\\s*", + "end": "(\\.)", + "endCaptures": { + "1": { + "name": "keyword.control.dcg.bodyend.prolog" + } + }, + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#controlandkeywords" + }, + { + "include": "#atom" + }, + { + "include": "#variable" + }, + { + "include": "#constants" + }, + { + "name": "meta.dcg.body.prolog", + "match": "." + } + ] + }, + { + "name": "meta.fact.prolog", + "begin": "^\\s*([a-zA-Z][a-zA-Z0-9_]*)(\\(?)(?!.*(:-|-->).*)", + "beginCaptures": { + "1": { + "name": "entity.name.function.fact.prolog" + }, + "2": { + "name": "punctuation.definition.parameters.begin" + } + }, + "end": "((\\)?))\\s*(\\.)(?!\\d+)", + "endCaptures": { + "1": { + "name": "punctuation.definition.parameters.end" + }, + "3": { + "name": "keyword.control.fact.end.prolog" + } + }, + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#atom" + }, + { + "include": "#variable" + }, + { + "include": "#constants" + } + ] + } + ], + "repository": { + "atom": { + "patterns": [ + { + "name": "constant.other.atom.simple.prolog", + "match": "(?<![a-zA-Z0-9_])[a-z][a-zA-Z0-9_]*(?!\\s*\\(|[a-zA-Z0-9_])" + }, + { + "name": "constant.other.atom.quoted.prolog", + "match": "'.*?'" + }, + { + "name": "constant.other.atom.emptylist.prolog", + "match": "\\[\\]" + } + ] + }, + "builtin": { + "patterns": [ + { + "name": "keyword.other", + "match": "\\b(op|nl|fail|dynamic|discontiguous|initialization|meta_predicate|module_transparent|multifile|public|thread_local|thread_initialization|volatile)\\b" + }, + { + "name": "support.function.builtin.prolog", + "match": "\\b(abolish|abort|abs|absolute_file_name|access_file|acos|acosh|acyclic_term|add_import_module|append|apropos|arg|asin|asinh|assert|asserta|assertz|at_end_of_stream|at_halt|atan|atanh|atom|atom_chars|atom_codes|atom_concat|atom_length|atom_number|atom_prefix|atom_string|atom_to_stem_list|atom_to_term|atomic|atomic_concat|atomic_list_concat|atomics_to_string|attach_packs|attr_portray_hook|attr_unify_hook|attribute_goals|attvar|autoload|autoload_path|b_getval|b_set_dict|b_setval|bagof|begin_tests|between|blob|break|byte_count|call_dcg|call_residue_vars|callable|cancel_halt|catch|ceil|ceiling|char_code|char_conversion|char_type|character_count|chdir|chr_leash|chr_notrace|chr_show_store|chr_trace|clause|clause_property|close|close_dde_conversation|close_table|code_type|collation_key|compare|compare_strings|compile_aux_clauses|compile_predicates|compiling|compound|compound_name_arguments|compound_name_arity|consult|context_module|copy_predicate_clauses|copy_stream_data|copy_term|copy_term_nat|copysign|cos|cosh|cputime|create_prolog_flag|current_arithmetic_function|current_atom|current_blob|current_char_conversion|current_engine|current_flag|current_format_predicate|current_functor|current_input|current_key|current_locale|current_module|current_op|current_output|current_predicate|current_prolog_flag|current_signal|current_stream|current_trie|cyclic_term|date_time_stamp|date_time_value|day_of_the_week|dcg_translate_rule|dde_current_connection|dde_current_service|dde_execute|dde_poke|dde_register_service|dde_request|dde_unregister_service|debug|debugging|default_module|del_attr|del_attrs|del_dict|delete_directory|delete_file|delete_import_module|deterministic|dict_create|dict_pairs|dif|directory_files|divmod|doc_browser|doc_collect|doc_load_library|doc_server|double_metaphone|downcase_atom|dtd|dtd_property|duplicate_term|dwim_match|dwim_predicate|e|edit|encoding|engine_create|engine_fetch|engine_next|engine_next_reified|engine_post|engine_self|engine_yield|ensure_loaded|epsilon|erase|erf|erfc|eval|exception|exists_directory|exists_file|exists_source|exp|expand_answer|expand_file_name|expand_file_search_path|expand_goal|expand_query|expand_term|explain|fast_read|fast_term_serialized|fast_write|file_base_name|file_directory_name|file_name_extension|file_search_path|fill_buffer|find_chr_constraint|findall|findnsols|flag|float|float_fractional_part|float_integer_part|floor|flush_output|forall|format|format_predicate|format_time|free_dtd|free_sgml_parser|free_table|freeze|frozen|functor|garbage_collect|garbage_collect_atoms|garbage_collect_clauses|gdebug|get|get_attr|get_attrs|get_byte|get_char|get_code|get_dict|get_flag|get_sgml_parser|get_single_char|get_string_code|get_table_attribute|get_time|getbit|getenv|goal_expansion|ground|gspy|gtrace|guitracer|gxref|gzopen|halt|help|import_module|in_pce_thread|in_pce_thread_sync|in_table|include|inf|instance|integer|iri_xml_namespace|is_absolute_file_name|is_dict|is_engine|is_list|is_stream|is_thread|keysort|known_licenses|leash|length|lgamma|library_directory|license|line_count|line_position|list_strings|listing|load_dtd|load_files|load_html|load_rdf|load_sgml|load_structure|load_test_files|load_xml|locale_create|locale_destroy|locale_property|locale_sort|log|lsb|make|make_directory|make_library_index|max|memberchk|message_hook|message_property|message_queue_create|message_queue_destroy|message_queue_property|message_to_string|min|module|module_property|msb|msort|mutex_create|mutex_destroy|mutex_lock|mutex_property|mutex_statistics|mutex_trylock|mutex_unlock|name|nan|nb_current|nb_delete|nb_getval|nb_link_dict|nb_linkarg|nb_linkval|nb_set_dict|nb_setarg|nb_setval|new_dtd|new_order_table|new_sgml_parser|new_table|nl|nodebug|noguitracer|nonvar|noprotocol|normalize_space|nospy|nospyall|notrace|nth_clause|nth_integer_root_and_remainder|number|number_chars|number_codes|number_string|numbervars|odbc_close_statement|odbc_connect|odbc_current_connection|odbc_current_table|odbc_data_source|odbc_debug|odbc_disconnect|odbc_driver_connect|odbc_end_transaction|odbc_execute|odbc_fetch|odbc_free_statement|odbc_get_connection|odbc_prepare|odbc_query|odbc_set_connection|odbc_statistics|odbc_table_column|odbc_table_foreign_key|odbc_table_primary_key|odbc_type|on_signal|op|open|open_dde_conversation|open_dtd|open_null_stream|open_resource|open_string|open_table|order_table_mapping|parse_time|passed|pce_dispatch|pdt_install_console|peek_byte|peek_char|peek_code|peek_string|phrase|plus|popcount|porter_stem|portray|portray_clause|powm|predicate_property|predsort|prefix_string|print|print_message|print_message_lines|process_rdf|profile|profiler|project_attributes|prolog|prolog_choice_attribute|prolog_current_choice|prolog_current_frame|prolog_cut_to|prolog_debug|prolog_exception_hook|prolog_file_type|prolog_frame_attribute|prolog_ide|prolog_list_goal|prolog_load_context|prolog_load_file|prolog_nodebug|prolog_skip_frame|prolog_skip_level|prolog_stack_property|prolog_to_os_filename|prolog_trace_interception|prompt|protocol|protocola|protocolling|put|put_attr|put_attrs|put_byte|put_char|put_code|put_dict|qcompile|qsave_program|random|random_float|random_property|rational|rationalize|rdf_write_xml|read|read_clause|read_history|read_link|read_pending_chars|read_pending_codes|read_string|read_table_fields|read_table_record|read_table_record_data|read_term|read_term_from_atom|recorda|recorded|recordz|redefine_system_predicate|reexport|reload_library_index|rename_file|require|reset|reset_profiler|resource|retract|retractall|round|run_tests|running_tests|same_file|same_term|see|seeing|seek|seen|select_dict|set_end_of_stream|set_flag|set_input|set_locale|set_module|set_output|set_prolog_IO|set_prolog_flag|set_prolog_stack|set_random|set_sgml_parser|set_stream|set_stream_position|set_test_options|setarg|setenv|setlocale|setof|sgml_parse|shell|shift|show_coverage|show_profile|sign|sin|sinh|size_file|skip|sleep|sort|source_exports|source_file|source_file_property|source_location|split_string|spy|sqrt|stamp_date_time|statistics|stream_pair|stream_position_data|stream_property|string|string_chars|string_code|string_codes|string_concat|string_length|string_lower|string_upper|strip_module|style_check|sub_atom|sub_atom_icasechk|sub_string|subsumes_term|succ|suite|swritef|tab|table_previous_record|table_start_of_record|table_version|table_window|tan|tanh|tell|telling|term_attvars|term_expansion|term_hash|term_string|term_subsumer|term_to_atom|term_variables|test|test_report|text_to_string|thread_at_exit|thread_create|thread_detach|thread_exit|thread_get_message|thread_join|thread_message_hook|thread_peek_message|thread_property|thread_self|thread_send_message|thread_setconcurrency|thread_signal|thread_statistics|throw|time|time_file|tmp_file|tmp_file_stream|tokenize_atom|told|trace|tracing|trie_destroy|trie_gen|trie_insert|trie_insert_new|trie_lookup|trie_new|trie_property|trie_term|trim_stacks|truncate|tty_get_capability|tty_goto|tty_put|tty_size|ttyflush|unaccent_atom|unifiable|unify_with_occurs_check|unix|unknown|unload_file|unsetenv|upcase_atom|use_module|var|var_number|var_property|variant_hash|version|visible|wait_for_input|when|wildcard_match|win_add_dll_directory|win_exec|win_folder|win_has_menu|win_insert_menu|win_insert_menu_item|win_registry_get_value|win_remove_dll_directory|win_shell|win_window_pos|window_title|with_mutex|with_output_to|working_directory|write|write_canonical|write_length|write_term|writef|writeln|writeq|xml_is_dom|xml_to_rdf|zopen)\\b" + } + ] + }, + "comments": { + "patterns": [ + { + "name": "comment.line.percent-sign.prolog", + "match": "%.*" + }, + { + "name": "comment.block.prolog", + "begin": "/\\*", + "end": "\\*/", + "captures": { + "0": { + "name": "punctuation.definition.comment.prolog" + } + } + } + ] + }, + "constants": { + "patterns": [ + { + "name": "constant.numeric.integer.prolog", + "match": "(?<![a-zA-Z]|/)(\\d+|(\\d+\\.\\d+))" + }, + { + "name": "string.quoted.double.prolog", + "match": "\".*?\"" + } + ] + }, + "controlandkeywords": { + "patterns": [ + { + "name": "meta.if.prolog", + "begin": "(->)", + "beginCaptures": { + "1": { + "name": "keyword.control.if.prolog" + } + }, + "end": "(;)", + "endCaptures": { + "1": { + "name": "keyword.control.else.prolog" + } + }, + "patterns": [ + { + "include": "$self" + }, + { + "include": "#builtin" + }, + { + "include": "#comments" + }, + { + "include": "#atom" + }, + { + "include": "#variable" + }, + { + "name": "meta.if.body.prolog", + "match": "." + } + ] + }, + { + "name": "keyword.control.cut.prolog", + "match": "!" + }, + { + "name": "keyword.operator.prolog", + "match": "(\\s(is)\\s)|=:=|=\\.\\.|=?\\\\?=|\\\\\\+|@?>|@?=?<|\\+|\\*|\\-" + } + ] + }, + "variable": { + "patterns": [ + { + "name": "variable.parameter.uppercase.prolog", + "match": "(?<![a-zA-Z0-9_])[A-Z][a-zA-Z0-9_]*" + }, + { + "name": "variable.language.anonymous.prolog", + "match": "(?<!\\w)_" + } + ] + } + } +} diff --git a/docs/shiki/languages/proto.tmLanguage.json b/docs/shiki/languages/proto.tmLanguage.json new file mode 100644 index 00000000..3d55f7a2 --- /dev/null +++ b/docs/shiki/languages/proto.tmLanguage.json @@ -0,0 +1,504 @@ +{ + "name": "proto", + "scopeName": "source.proto", + "fileTypes": ["proto"], + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#syntax" + }, + { + "include": "#package" + }, + { + "include": "#import" + }, + { + "include": "#optionStmt" + }, + { + "include": "#message" + }, + { + "include": "#enum" + }, + { + "include": "#service" + } + ], + "repository": { + "comments": { + "patterns": [ + { + "name": "comment.block.proto", + "begin": "/\\*", + "end": "\\*/" + }, + { + "name": "comment.line.double-slash.proto", + "begin": "//", + "end": "$\\n?" + } + ] + }, + "syntax": { + "match": "\\s*(syntax)\\s*(=)\\s*(\"proto[23]\")\\s*(;)", + "captures": { + "1": { + "name": "keyword.other.proto" + }, + "2": { + "name": "keyword.operator.assignment.proto" + }, + "3": { + "name": "string.quoted.double.proto.syntax" + }, + "4": { + "name": "punctuation.terminator.proto" + } + } + }, + "package": { + "match": "\\s*(package)\\s+([\\w.]+)\\s*(;)", + "captures": { + "1": { + "name": "keyword.other.proto" + }, + "2": { + "name": "string.unquoted.proto.package" + }, + "3": { + "name": "punctuation.terminator.proto" + } + } + }, + "import": { + "match": "\\s*(import)\\s+(weak|public)?\\s*(\"[^\"]+\")\\s*(;)", + "captures": { + "1": { + "name": "keyword.other.proto" + }, + "2": { + "name": "keyword.other.proto" + }, + "3": { + "name": "string.quoted.double.proto.import" + }, + "4": { + "name": "punctuation.terminator.proto" + } + } + }, + "optionStmt": { + "begin": "(option)\\s+(\\w+|\\(\\w+(\\.\\w+)*\\))(\\.\\w+)*\\s*(=)", + "beginCaptures": { + "1": { + "name": "keyword.other.proto" + }, + "2": { + "name": "support.other.proto" + }, + "3": { + "name": "support.other.proto" + }, + "4": { + "name": "support.other.proto" + }, + "5": { + "name": "keyword.operator.assignment.proto" + } + }, + "end": "(;)", + "endCaptures": { + "1": { + "name": "punctuation.terminator.proto" + } + }, + "patterns": [ + { + "include": "#constants" + }, + { + "include": "#number" + }, + { + "include": "#string" + }, + { + "include": "#subMsgOption" + } + ] + }, + "subMsgOption": { + "begin": "\\{", + "end": "\\}", + "patterns": [ + { + "include": "#kv" + }, + { + "include": "#comments" + } + ] + }, + "kv": { + "begin": "(\\w+)\\s*(:)", + "beginCaptures": { + "1": { + "name": "keyword.other.proto" + }, + "2": { + "name": "punctuation.separator.key-value.proto" + } + }, + "end": "(;)|,|(?=[}/_a-zA-Z])", + "endCaptures": { + "1": { + "name": "punctuation.terminator.proto" + } + }, + "patterns": [ + { + "include": "#constants" + }, + { + "include": "#number" + }, + { + "include": "#string" + }, + { + "include": "#subMsgOption" + } + ] + }, + "fieldOptions": { + "begin": "\\[", + "end": "\\]", + "patterns": [ + { + "include": "#constants" + }, + { + "include": "#number" + }, + { + "include": "#string" + }, + { + "include": "#subMsgOption" + }, + { + "include": "#optionName" + } + ] + }, + "optionName": { + "match": "(\\w+|\\(\\w+(\\.\\w+)*\\))(\\.\\w+)*", + "captures": { + "1": { + "name": "support.other.proto" + }, + "2": { + "name": "support.other.proto" + }, + "3": { + "name": "support.other.proto" + } + } + }, + "message": { + "begin": "(message|extend)(\\s+)([A-Za-z_][A-Za-z0-9_.]*)(\\s*)(\\{)?", + "beginCaptures": { + "1": { + "name": "keyword.other.proto" + }, + "3": { + "name": "entity.name.class.message.proto" + } + }, + "end": "\\}", + "patterns": [ + { + "include": "#reserved" + }, + { + "include": "$self" + }, + { + "include": "#enum" + }, + { + "include": "#optionStmt" + }, + { + "include": "#comments" + }, + { + "include": "#oneof" + }, + { + "include": "#field" + }, + { + "include": "#mapfield" + } + ] + }, + "reserved": { + "begin": "(reserved)\\s+", + "beginCaptures": { + "1": { + "name": "keyword.other.proto" + } + }, + "end": "(;)", + "endCaptures": { + "1": { + "name": "punctuation.terminator.proto" + } + }, + "patterns": [ + { + "match": "(\\d+)(\\s+(to)\\s+(\\d+))?", + "captures": { + "1": { + "name": "constant.numeric.proto" + }, + "3": { + "name": "keyword.other.proto" + }, + "4": { + "name": "constant.numeric.proto" + } + } + }, + { + "include": "#string" + } + ] + }, + "field": { + "begin": "\\s*(optional|repeated|required)?\\s*\\b([\\w.]+)\\s+(\\w+)\\s*(=)\\s*(0[xX][0-9a-fA-F]+|[0-9]+)", + "beginCaptures": { + "1": { + "name": "storage.modifier.proto" + }, + "2": { + "name": "storage.type.proto" + }, + "3": { + "name": "variable.other.proto" + }, + "4": { + "name": "keyword.operator.assignment.proto" + }, + "5": { + "name": "constant.numeric.proto" + } + }, + "end": "(;)", + "endCaptures": { + "1": { + "name": "punctuation.terminator.proto" + } + }, + "patterns": [ + { + "include": "#fieldOptions" + } + ] + }, + "mapfield": { + "begin": "\\s*(map)\\s*(<)\\s*([\\w.]+)\\s*,\\s*([\\w.]+)\\s*(>)\\s+(\\w+)\\s*(=)\\s*(\\d+)", + "beginCaptures": { + "1": { + "name": "storage.type.proto" + }, + "2": { + "name": "punctuation.definition.typeparameters.begin.proto" + }, + "3": { + "name": "storage.type.proto" + }, + "4": { + "name": "storage.type.proto" + }, + "5": { + "name": "punctuation.definition.typeparameters.end.proto" + }, + "6": { + "name": "variable.other.proto" + }, + "7": { + "name": "keyword.operator.assignment.proto" + }, + "8": { + "name": "constant.numeric.proto" + } + }, + "end": "(;)", + "endCaptures": { + "1": { + "name": "punctuation.terminator.proto" + } + }, + "patterns": [ + { + "include": "#fieldOptions" + } + ] + }, + "oneof": { + "begin": "(oneof)\\s+([A-Za-z][A-Za-z0-9_]*)\\s*\\{?", + "beginCaptures": { + "1": { + "name": "keyword.other.proto" + }, + "2": { + "name": "variable.other.proto" + } + }, + "end": "\\}", + "patterns": [ + { + "include": "#optionStmt" + }, + { + "include": "#comments" + }, + { + "include": "#field" + } + ] + }, + "enum": { + "begin": "(enum)(\\s+)([A-Za-z][A-Za-z0-9_]*)(\\s*)(\\{)?", + "beginCaptures": { + "1": { + "name": "keyword.other.proto" + }, + "3": { + "name": "entity.name.class.proto" + } + }, + "end": "\\}", + "patterns": [ + { + "include": "#reserved" + }, + { + "include": "#optionStmt" + }, + { + "include": "#comments" + }, + { + "begin": "([A-Za-z][A-Za-z0-9_]*)\\s*(=)\\s*(0[xX][0-9a-fA-F]+|[0-9]+)", + "beginCaptures": { + "1": { + "name": "variable.other.proto" + }, + "2": { + "name": "keyword.operator.assignment.proto" + }, + "3": { + "name": "constant.numeric.proto" + } + }, + "end": "(;)", + "endCaptures": { + "1": { + "name": "punctuation.terminator.proto" + } + }, + "patterns": [ + { + "include": "#fieldOptions" + } + ] + } + ] + }, + "service": { + "begin": "(service)\\s+([A-Za-z][A-Za-z0-9_.]*)\\s*\\{?", + "beginCaptures": { + "1": { + "name": "keyword.other.proto" + }, + "2": { + "name": "entity.name.class.message.proto" + } + }, + "end": "\\}", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#optionStmt" + }, + { + "include": "#method" + } + ] + }, + "method": { + "begin": "(rpc)\\s+([A-Za-z][A-Za-z0-9_]*)", + "beginCaptures": { + "1": { + "name": "keyword.other.proto" + }, + "2": { + "name": "entity.name.function" + } + }, + "end": "\\}|(;)", + "endCaptures": { + "1": { + "name": "punctuation.terminator.proto" + } + }, + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#optionStmt" + }, + { + "include": "#rpcKeywords" + }, + { + "include": "#ident" + } + ] + }, + "rpcKeywords": { + "match": "\\b(stream|returns)\\b", + "name": "keyword.other.proto" + }, + "ident": { + "match": "[A-Za-z][A-Za-z0-9_]*", + "name": "entity.name.class.proto" + }, + "constants": { + "match": "\\b(true|false|max|[A-Z_]+)\\b", + "name": "constant.language.proto" + }, + "storagetypes": { + "match": "\\b(double|float|int32|int64|uint32|uint64|sint32|sint64|fixed32|fixed64|sfixed32|sfixed64|bool|string|bytes)\\b", + "name": "storage.type.proto" + }, + "string": { + "match": "('([^']|\\')*')|(\"([^\"]|\\\")*\")", + "name": "string.quoted.double.proto" + }, + "number": { + "name": "constant.numeric.proto", + "match": "\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)\\b" + } + } +} diff --git a/docs/shiki/languages/pug.tmLanguage.json b/docs/shiki/languages/pug.tmLanguage.json new file mode 100644 index 00000000..44700bc3 --- /dev/null +++ b/docs/shiki/languages/pug.tmLanguage.json @@ -0,0 +1,1038 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/davidrios/pug-tmbundle/blob/master/Syntaxes/Pug.JSON-tmLanguage", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/davidrios/pug-tmbundle/commit/ae1dd60ca4aa4b45617f236d584216cd8d19eecf", + "name": "pug", + "scopeName": "text.pug", + "patterns": [ + { + "match": "^(!!!|doctype)(\\s*[a-zA-Z0-9-_]+)?", + "name": "meta.tag.sgml.doctype.html", + "comment": "Doctype declaration." + }, + { + "begin": "^(\\s*)//-", + "end": "^(?!(\\1\\s)|\\s*$)", + "name": "comment.unbuffered.block.pug", + "comment": "Unbuffered (pug-only) comments." + }, + { + "begin": "^(\\s*)//", + "end": "^(?!(\\1\\s)|\\s*$)", + "name": "string.comment.buffered.block.pug", + "comment": "Buffered (html) comments.", + "patterns": [ + { + "captures": { + "1": { + "name": "invalid.illegal.comment.comment.block.pug" + } + }, + "match": "^\\s*(//)(?!-)", + "name": "string.comment.buffered.block.pug", + "comment": "Buffered comments inside buffered comments will generate invalid html." + } + ] + }, + { + "begin": "<!--", + "end": "--\\s*>", + "name": "comment.unbuffered.block.pug", + "patterns": [ + { + "match": "--", + "name": "invalid.illegal.comment.comment.block.pug" + } + ] + }, + { + "begin": "^(\\s*)-$", + "end": "^(?!(\\1\\s)|\\s*$)", + "name": "source.js", + "comment": "Unbuffered code block.", + "patterns": [ + { + "include": "source.js" + } + ] + }, + { + "begin": "^(\\s*)(script)((\\.$)|(?=[^\\n]*((text|application)/javascript|module).*\\.$))", + "beginCaptures": { + "2": { + "name": "entity.name.tag.pug" + } + }, + "end": "^(?!(\\1\\s)|\\s*$)", + "name": "meta.tag.other", + "comment": "Script tag with JavaScript code.", + "patterns": [ + { + "begin": "\\G(?=\\()", + "end": "$", + "patterns": [ + { + "include": "#tag_attributes" + } + ] + }, + { + "begin": "\\G(?=[.#])", + "end": "$", + "patterns": [ + { + "include": "#complete_tag" + } + ] + }, + { + "include": "source.js" + } + ] + }, + { + "begin": "^(\\s*)(style)((\\.$)|(?=[.#(].*\\.$))", + "beginCaptures": { + "2": { + "name": "entity.name.tag.pug" + } + }, + "end": "^(?!(\\1\\s)|\\s*$)", + "name": "meta.tag.other", + "comment": "Style tag with CSS code.", + "patterns": [ + { + "begin": "\\G(?=\\()", + "end": "$", + "patterns": [ + { + "include": "#tag_attributes" + } + ] + }, + { + "begin": "\\G(?=[.#])", + "end": "$", + "patterns": [ + { + "include": "#complete_tag" + } + ] + }, + { + "include": "source.css" + } + ] + }, + { + "begin": "^(\\s*):(sass)(?=\\(|$)", + "beginCaptures": { + "2": { + "name": "constant.language.name.sass.filter.pug" + } + }, + "end": "^(?!(\\1\\s)|\\s*$)", + "name": "source.sass.filter.pug", + "patterns": [ + { + "include": "#tag_attributes" + }, + { + "include": "source.sass" + } + ] + }, + { + "begin": "^(\\s*):(scss)(?=\\(|$)", + "beginCaptures": { + "2": { + "name": "constant.language.name.scss.filter.pug" + } + }, + "end": "^(?!(\\1\\s)|\\s*$)", + "name": "source.css.scss.filter.pug", + "patterns": [ + { + "include": "#tag_attributes" + }, + { + "include": "source.css.scss" + } + ] + }, + { + "begin": "^(\\s*):(less)(?=\\(|$)", + "beginCaptures": { + "2": { + "name": "constant.language.name.less.filter.pug" + } + }, + "end": "^(?!(\\1\\s)|\\s*$)", + "name": "source.less.filter.pug", + "patterns": [ + { + "include": "#tag_attributes" + }, + { + "include": "source.less" + } + ] + }, + { + "begin": "^(\\s*):(stylus)(?=\\(|$)", + "beginCaptures": { + "2": { + "name": "constant.language.name.stylus.filter.pug" + } + }, + "end": "^(?!(\\1\\s)|\\s*$)", + "patterns": [ + { + "include": "#tag_attributes" + }, + { + "include": "source.stylus" + } + ] + }, + { + "begin": "^(\\s*):(coffee(-?script)?)(?=\\(|$)", + "beginCaptures": { + "2": { + "name": "constant.language.name.coffeescript.filter.pug" + } + }, + "end": "^(?!(\\1\\s)|\\s*$)", + "name": "source.coffeescript.filter.pug", + "patterns": [ + { + "include": "#tag_attributes" + }, + { + "include": "source.coffee" + } + ] + }, + { + "begin": "^(\\s*):(uglify-js)(?=\\(|$)", + "beginCaptures": { + "2": { + "name": "constant.language.name.js.filter.pug" + } + }, + "end": "^(?!(\\1\\s)|\\s*$)", + "name": "source.js.filter.pug", + "patterns": [ + { + "include": "#tag_attributes" + }, + { + "include": "source.js" + } + ] + }, + { + "begin": "^(\\s*)((:(?=.))|(:$))", + "beginCaptures": { + "4": { + "name": "invalid.illegal.empty.generic.filter.pug" + } + }, + "end": "^(?!(\\1\\s)|\\s*$)", + "comment": "Generic Pug filter.", + "patterns": [ + { + "begin": "\\G(?<=:)(?=.)", + "end": "$", + "name": "name.generic.filter.pug", + "patterns": [ + { + "match": "\\G\\(", + "name": "invalid.illegal.name.generic.filter.pug" + }, + { + "match": "[\\w-]", + "name": "constant.language.name.generic.filter.pug" + }, + { + "include": "#tag_attributes" + }, + { + "match": "\\W", + "name": "invalid.illegal.name.generic.filter.pug" + } + ] + } + ] + }, + { + "begin": "^(\\s*)(?:(?=\\.$)|(?:(?=[\\w.#].*?\\.$)(?=(?:(?:(?:(?:(?:#[\\w-]+)|(?:\\.[\\w-]+))|(?:(?:[#!]\\{[^}]*\\})|(?:\\w(?:(?:[\\w:-]+[\\w-])|(?:[\\w-]*)))))(?:(?:#[\\w-]+)|(?:\\.[\\w-]+)|(?:\\((?:[^()\\'\\\"]*(?:(?:\\'(?:[^\\']|(?:(?<!\\\\)\\\\\\'))*\\')|(?:\\\"(?:[^\\\"]|(?:(?<!\\\\)\\\\\\\"))*\\\")))*[^()]*\\))*)*)(?:(?:(?::\\s+)|(?<=\\)))(?:(?:(?:(?:#[\\w-]+)|(?:\\.[\\w-]+))|(?:(?:[#!]\\{[^}]*\\})|(?:\\w(?:(?:[\\w:-]+[\\w-])|(?:[\\w-]*)))))(?:(?:#[\\w-]+)|(?:\\.[\\w-]+)|(?:\\((?:[^()\\'\\\"]*(?:(?:\\'(?:[^\\']|(?:(?<!\\\\)\\\\\\'))*\\')|(?:\\\"(?:[^\\\"]|(?:(?<!\\\\)\\\\\\\"))*\\\")))*[^()]*\\))*)*))*)\\.$)(?:(?:(#[\\w-]+)|(\\.[\\w-]+))|((?:[#!]\\{[^}]*\\})|(?:\\w(?:(?:[\\w:-]+[\\w-])|(?:[\\w-]*)))))))", + "beginCaptures": { + "2": { + "name": "meta.selector.css entity.other.attribute-name.id.css.pug" + }, + "3": { + "name": "meta.selector.css entity.other.attribute-name.class.css.pug" + }, + "4": { + "name": "meta.tag.other entity.name.tag.pug" + } + }, + "end": "^(?!(\\1\\s)|\\s*$)", + "comment": "Generated from dot_block_tag.py", + "patterns": [ + { + "match": "\\.$", + "name": "storage.type.function.pug.dot-block-dot" + }, + { + "include": "#tag_attributes" + }, + { + "include": "#complete_tag" + }, + { + "begin": "^(?=.)", + "end": "$", + "name": "text.block.pug", + "patterns": [ + { + "include": "#inline_pug" + }, + { + "include": "#embedded_html" + }, + { + "include": "#html_entity" + }, + { + "include": "#interpolated_value" + }, + { + "include": "#interpolated_error" + } + ] + } + ] + }, + { + "begin": "^\\s*", + "end": "$", + "comment": "All constructs that generally span a single line starting with any number of white-spaces.", + "patterns": [ + { + "include": "#inline_pug" + }, + { + "include": "#blocks_and_includes" + }, + { + "include": "#unbuffered_code" + }, + { + "include": "#mixin_definition" + }, + { + "include": "#mixin_call" + }, + { + "include": "#flow_control" + }, + { + "include": "#flow_control_each" + }, + { + "include": "#case_conds" + }, + { + "begin": "\\|", + "end": "$", + "name": "text.block.pipe.pug", + "comment": "Tag pipe text line.", + "patterns": [ + { + "include": "#inline_pug" + }, + { + "include": "#embedded_html" + }, + { + "include": "#html_entity" + }, + { + "include": "#interpolated_value" + }, + { + "include": "#interpolated_error" + } + ] + }, + { + "include": "#printed_expression" + }, + { + "begin": "\\G(?=(#[^\\{\\w-])|[^\\w.#])", + "end": "$", + "comment": "Line starting with characters incompatible with tag name/id/class is standalone text.", + "patterns": [ + { + "begin": "</?(?=[!#])", + "end": ">|$", + "patterns": [ + { + "include": "#inline_pug" + }, + { + "include": "#interpolated_value" + }, + { + "include": "#interpolated_error" + } + ] + }, + { + "include": "#inline_pug" + }, + { + "include": "#embedded_html" + }, + { + "include": "#html_entity" + }, + { + "include": "#interpolated_value" + }, + { + "include": "#interpolated_error" + } + ] + }, + { + "include": "#complete_tag" + } + ] + } + ], + "repository": { + "blocks_and_includes": { + "captures": { + "1": { + "name": "storage.type.import.include.pug" + }, + "4": { + "name": "variable.control.import.include.pug" + } + }, + "match": "(extends|include|yield|append|prepend|block( (append|prepend))?)\\s+(.*)$", + "name": "meta.first-class.pug", + "comment": "Template blocks and includes." + }, + "unbuffered_code": { + "begin": "(-|(([a-zA-Z0-9_]+)\\s+=))", + "beginCaptures": { + "3": { + "name": "variable.parameter.javascript.embedded.pug" + } + }, + "end": "(?=\\])|(({\\s*)?$)", + "name": "source.js", + "comment": "name = function() {}", + "patterns": [ + { + "include": "#js_brackets" + }, + { + "include": "#babel_parens" + }, + { + "include": "source.js" + } + ] + }, + "mixin_definition": { + "match": "(mixin\\s+)([\\w-]+)(?:(\\()\\s*((?:[a-zA-Z_]\\w*\\s*)(?:,\\s*[a-zA-Z_]\\w*\\s*)*)(\\)))?$", + "captures": { + "1": { + "name": "storage.type.function.pug" + }, + "2": { + "name": "meta.tag.other entity.name.function.pug" + }, + "3": { + "name": "punctuation.definition.parameters.begin.js" + }, + "4": { + "name": "variable.parameter.function.js" + }, + "5": { + "name": "punctuation.definition.parameters.begin.js" + } + } + }, + "mixin_call": { + "begin": "((?:mixin\\s+)|\\+)([\\w-]+)", + "beginCaptures": { + "1": { + "name": "storage.type.function.pug" + }, + "2": { + "name": "meta.tag.other entity.name.function.pug" + } + }, + "end": "(?!\\()|$", + "patterns": [ + { + "begin": "(?<!\\))\\(", + "end": "\\)", + "name": "args.mixin.pug", + "patterns": [ + { + "include": "#js_parens" + }, + { + "match": "([^\\s(),=/]+)\\s*=\\s*", + "captures": { + "1": { + "name": "meta.tag.other entity.other.attribute-name.tag.pug" + } + } + }, + { + "include": "source.js" + } + ] + }, + { + "include": "#tag_attributes" + } + ] + }, + "flow_control": { + "begin": "(for|if|else if|else|until|while|unless|case)(\\s+|$)", + "captures": { + "1": { + "name": "storage.type.function.pug" + } + }, + "end": "$", + "name": "meta.control.flow.pug", + "comment": "Pug control flow.", + "patterns": [ + { + "begin": "", + "end": "$", + "name": "js.embedded.control.flow.pug", + "patterns": [ + { + "include": "source.js" + } + ] + } + ] + }, + "flow_control_each": { + "begin": "(each)(\\s+|$)", + "captures": { + "1": { + "name": "storage.type.function.pug" + } + }, + "end": "$", + "name": "meta.control.flow.pug.each", + "patterns": [ + { + "match": "([\\w$_]+)(?:\\s*,\\s*([\\w$_]+))?", + "name": "variable.other.pug.each-var" + }, + { + "begin": "", + "end": "$", + "name": "js.embedded.control.flow.pug", + "patterns": [ + { + "include": "source.js" + } + ] + } + ] + }, + "case_when_paren": { + "begin": "\\(", + "end": "\\)", + "name": "js.when.control.flow.pug", + "patterns": [ + { + "include": "#case_when_paren" + }, + { + "match": ":", + "name": "invalid.illegal.name.tag.pug" + }, + { + "include": "source.js" + } + ] + }, + "case_conds": { + "begin": "(default|when)((\\s+|(?=:))|$)", + "captures": { + "1": { + "name": "storage.type.function.pug" + } + }, + "end": "$", + "name": "meta.control.flow.pug", + "comment": "Pug case conditionals.", + "patterns": [ + { + "begin": "\\G(?!:)", + "end": "(?=:\\s+)|$", + "name": "js.embedded.control.flow.pug", + "patterns": [ + { + "include": "#case_when_paren" + }, + { + "include": "source.js" + } + ] + }, + { + "begin": ":\\s+", + "end": "$", + "name": "tag.case.control.flow.pug", + "patterns": [ + { + "include": "#complete_tag" + } + ] + } + ] + }, + "complete_tag": { + "begin": "(?=[\\w.#])|(:\\s*)", + "end": "(\\.?$)|(?=:.)", + "endCaptures": { + "1": { + "name": "storage.type.function.pug.dot-block-dot" + } + }, + "patterns": [ + { + "include": "#blocks_and_includes" + }, + { + "include": "#unbuffered_code" + }, + { + "include": "#mixin_call" + }, + { + "include": "#flow_control" + }, + { + "include": "#flow_control_each" + }, + { + "match": "(?<=:)\\w.*$", + "name": "invalid.illegal.name.tag.pug" + }, + { + "include": "#tag_name" + }, + { + "include": "#tag_id" + }, + { + "include": "#tag_classes" + }, + { + "include": "#tag_attributes" + }, + { + "include": "#tag_mixin_attributes" + }, + { + "match": "((\\.)\\s+$)|((:)\\s*$)", + "captures": { + "2": { + "name": "invalid.illegal.end.tag.pug" + }, + "4": { + "name": "invalid.illegal.end.tag.pug" + } + } + }, + { + "include": "#printed_expression" + }, + { + "include": "#tag_text" + } + ] + }, + "tag_name": { + "begin": "([#!]\\{(?=.*?\\}))|(\\w(([\\w:-]+[\\w-])|([\\w-]*)))", + "end": "(\\G(?<!\\5[^\\w-]))|\\}|$", + "name": "meta.tag.other entity.name.tag.pug", + "patterns": [ + { + "begin": "\\G(?<=\\{)", + "end": "(?=\\})", + "name": "meta.tag.other entity.name.tag.pug", + "patterns": [ + { + "match": "{", + "name": "invalid.illegal.tag.pug" + }, + { + "include": "source.js" + } + ] + } + ] + }, + "tag_id": { + "match": "#[\\w-]+", + "name": "meta.selector.css entity.other.attribute-name.id.css.pug" + }, + "tag_classes": { + "match": "\\.([^\\w-])?[\\w-]*", + "captures": { + "1": { + "name": "invalid.illegal.tag.pug" + } + }, + "name": "meta.selector.css entity.other.attribute-name.class.css.pug" + }, + "tag_attributes": { + "begin": "(\\(\\s*)", + "captures": { + "1": { + "name": "constant.name.attribute.tag.pug" + } + }, + "end": "(\\))", + "name": "meta.tag.other", + "patterns": [ + { + "include": "#tag_attribute_name_paren" + }, + { + "include": "#tag_attribute_name" + }, + { + "match": "!(?!=)", + "name": "invalid.illegal.tag.pug" + }, + { + "begin": "=\\s*", + "end": "$|(?=,|(?:\\s+[^!%&*\\-+~|<>?/])|\\))", + "name": "attribute_value", + "patterns": [ + { + "include": "#js_parens" + }, + { + "include": "#js_brackets" + }, + { + "include": "#js_braces" + }, + { + "include": "source.js" + } + ] + }, + { + "begin": "(?<=[%&*\\-+~|<>:?/])\\s+", + "end": "$|(?=,|(?:\\s+[^!%&*\\-+~|<>?/])|\\))", + "name": "attribute_value2", + "patterns": [ + { + "include": "#js_parens" + }, + { + "include": "#js_brackets" + }, + { + "include": "#js_braces" + }, + { + "include": "source.js" + } + ] + } + ] + }, + "tag_attribute_name": { + "match": "([^\\s(),=/!]+)\\s*", + "captures": { + "1": { + "name": "entity.other.attribute-name.tag.pug" + } + } + }, + "tag_attribute_name_paren": { + "begin": "\\(\\s*", + "end": "\\)", + "name": "entity.other.attribute-name.tag.pug", + "patterns": [ + { + "include": "#tag_attribute_name_paren" + }, + { + "include": "#tag_attribute_name" + } + ] + }, + "tag_mixin_attributes": { + "begin": "(&attributes\\()", + "captures": { + "1": { + "name": "entity.name.function.pug" + } + }, + "end": "(\\))", + "name": "meta.tag.other", + "patterns": [ + { + "match": "attributes(?=\\))", + "name": "storage.type.keyword.pug" + }, + { + "include": "source.js" + } + ] + }, + "tag_text": { + "begin": "(?=.)", + "end": "$", + "patterns": [ + { + "include": "#inline_pug" + }, + { + "include": "#embedded_html" + }, + { + "include": "#html_entity" + }, + { + "include": "#interpolated_value" + }, + { + "include": "#interpolated_error" + } + ] + }, + "inline_pug_text": { + "begin": "", + "end": "(?=\\])", + "patterns": [ + { + "begin": "\\[", + "end": "\\]", + "patterns": [ + { + "include": "#inline_pug_text" + } + ] + }, + { + "include": "#inline_pug" + }, + { + "include": "#embedded_html" + }, + { + "include": "#html_entity" + }, + { + "include": "#interpolated_value" + }, + { + "include": "#interpolated_error" + } + ] + }, + "inline_pug": { + "begin": "(?<!\\\\)(#\\[)", + "captures": { + "1": { + "name": "entity.name.function.pug" + }, + "2": { + "name": "entity.name.function.pug" + } + }, + "end": "(\\])", + "name": "inline.pug", + "patterns": [ + { + "include": "#inline_pug" + }, + { + "include": "#mixin_call" + }, + { + "begin": "(?<!\\])(?=[\\w.#])|(:\\s*)", + "end": "(?=\\]|(:.)|=|\\s)", + "name": "tag.inline.pug", + "patterns": [ + { + "include": "#tag_name" + }, + { + "include": "#tag_id" + }, + { + "include": "#tag_classes" + }, + { + "include": "#tag_attributes" + }, + { + "include": "#tag_mixin_attributes" + }, + { + "include": "#inline_pug" + }, + { + "match": "\\[", + "name": "invalid.illegal.tag.pug" + } + ] + }, + { + "include": "#unbuffered_code" + }, + { + "include": "#printed_expression" + }, + { + "match": "\\[", + "name": "invalid.illegal.tag.pug" + }, + { + "include": "#inline_pug_text" + } + ] + }, + "html_entity": { + "patterns": [ + { + "match": "(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)", + "name": "constant.character.entity.html.text.pug" + }, + { + "match": "[<>&]", + "name": "invalid.illegal.html_entity.text.pug" + } + ] + }, + "interpolated_value": { + "begin": "(?<!\\\\)[#!]\\{(?=.*?\\})", + "end": "\\}", + "name": "string.interpolated.pug", + "patterns": [ + { + "match": "{", + "name": "invalid.illegal.tag.pug" + }, + { + "include": "source.js" + } + ] + }, + "interpolated_error": { + "match": "(?<!\\\\)[#!]\\{(?=[^}]*$)", + "name": "invalid.illegal.tag.pug" + }, + "printed_expression": { + "begin": "(!?\\=)\\s*", + "captures": { + "1": { + "name": "constant" + } + }, + "end": "(?=\\])|$", + "name": "source.js", + "patterns": [ + { + "include": "#js_brackets" + }, + { + "include": "source.js" + } + ] + }, + "embedded_html": { + "begin": "(?=<[^>]*>)", + "end": "$|(?=>)", + "name": "html", + "patterns": [ + { + "include": "text.html.basic" + }, + { + "include": "#interpolated_value" + }, + { + "include": "#interpolated_error" + } + ] + }, + "js_parens": { + "begin": "\\(", + "end": "\\)", + "patterns": [ + { + "include": "#js_parens" + }, + { + "include": "source.js" + } + ] + }, + "js_brackets": { + "begin": "\\[", + "end": "\\]", + "patterns": [ + { + "include": "#js_brackets" + }, + { + "include": "source.js" + } + ] + }, + "js_braces": { + "begin": "\\{", + "end": "\\}", + "patterns": [ + { + "include": "#js_braces" + }, + { + "include": "source.js" + } + ] + }, + "babel_parens": { + "begin": "\\(", + "end": "\\)|(({\\s*)?$)", + "patterns": [ + { + "include": "#babel_parens" + }, + { + "include": "source.js" + } + ] + } + } +} diff --git a/docs/shiki/languages/puppet.tmLanguage.json b/docs/shiki/languages/puppet.tmLanguage.json new file mode 100644 index 00000000..ad50dd44 --- /dev/null +++ b/docs/shiki/languages/puppet.tmLanguage.json @@ -0,0 +1,774 @@ +{ + "scopeName": "source.puppet", + "fileTypes": ["pp"], + "foldingStartMarker": "(^\\s*/\\*|(\\{|\\[|\\()\\s*$)", + "foldingStopMarker": "(\\*/|^\\s*(\\}|\\]|\\)))", + "name": "puppet", + "patterns": [ + { + "include": "#line_comment" + }, + { + "include": "#constants" + }, + { + "begin": "^\\s*/\\*", + "end": "\\*/", + "name": "comment.block.puppet" + }, + { + "begin": "\\b(node)\\b", + "captures": { + "1": { + "name": "storage.type.puppet" + }, + "2": { + "name": "entity.name.type.class.puppet" + } + }, + "end": "(?={)", + "name": "meta.definition.class.puppet", + "patterns": [ + { + "match": "\\bdefault\\b", + "name": "keyword.puppet" + }, + { + "include": "#strings" + }, + { + "include": "#regex-literal" + } + ] + }, + { + "begin": "\\b(class)\\s+((?#Qualified Resource Name)(?:[a-z][a-z0-9_]*)?(?:::[a-z][a-z0-9_]*)+|(?#Bareword Resource Name)[a-z][a-z0-9_]*)\\s*", + "captures": { + "1": { + "name": "storage.type.puppet" + }, + "2": { + "name": "entity.name.type.class.puppet" + } + }, + "end": "(?={)", + "name": "meta.definition.class.puppet", + "patterns": [ + { + "begin": "\\b(inherits)\\b\\s+", + "captures": { + "1": { + "name": "storage.modifier.puppet" + } + }, + "end": "(?=\\(|{)", + "name": "meta.definition.class.inherits.puppet", + "patterns": [ + { + "match": "\\b((?:[-_A-Za-z0-9\".]+::)*[-_A-Za-z0-9\".]+)\\b", + "name": "support.type.puppet" + } + ] + }, + { + "include": "#line_comment" + }, + { + "include": "#resource-parameters" + }, + { + "include": "#parameter-default-types" + } + ] + }, + { + "begin": "^\\s*(plan)\\s+((?#Qualified Resource Name)(?:[a-z][a-z0-9_]*)?(?:::[a-z][a-z0-9_]*)+|(?#Bareword Resource Name)[a-z][a-z0-9_]*)\\s*", + "captures": { + "1": { + "name": "storage.type.puppet" + }, + "2": { + "name": "entity.name.type.plan.puppet" + } + }, + "end": "(?={)", + "name": "meta.definition.plan.puppet", + "patterns": [ + { + "include": "#line_comment" + }, + { + "include": "#resource-parameters" + }, + { + "include": "#parameter-default-types" + } + ] + }, + { + "begin": "^\\s*(define|function)\\s+((?#Bareword Resource Name)[a-z][a-z0-9_]*|(?#Qualified Resource Name)(?:[a-z][a-z0-9_]*)?(?:::[a-z][a-z0-9_]*)+)\\s*(\\()", + "captures": { + "1": { + "name": "storage.type.function.puppet" + }, + "2": { + "name": "entity.name.function.puppet" + } + }, + "end": "(?={)", + "name": "meta.function.puppet", + "patterns": [ + { + "include": "#line_comment" + }, + { + "include": "#resource-parameters" + }, + { + "include": "#parameter-default-types" + } + ] + }, + { + "match": "\\b(case|else|elsif|if|unless)(?!::)\\b", + "captures": { + "1": { + "name": "keyword.control.puppet" + } + } + }, + { + "include": "#keywords" + }, + { + "include": "#resource-definition" + }, + { + "include": "#heredoc" + }, + { + "include": "#strings" + }, + { + "include": "#puppet-datatypes" + }, + { + "include": "#array" + }, + { + "match": "((\\$?)\"?[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*\"?):(?=\\s+|$)", + "name": "entity.name.section.puppet" + }, + { + "include": "#numbers" + }, + { + "include": "#variable" + }, + { + "begin": "\\b(import|include|contain|require)\\s+(?!.*=>)", + "beginCaptures": { + "1": { + "name": "keyword.control.import.include.puppet" + } + }, + "end": "(?=\\s|$)", + "contentName": "variable.parameter.include.puppet", + "name": "meta.include.puppet" + }, + { + "match": "\\b\\w+\\s*(?==>)\\s*", + "name": "constant.other.key.puppet" + }, + { + "match": "(?<={)\\s*\\w+\\s*(?=})", + "name": "constant.other.bareword.puppet" + }, + { + "match": "\\b(alert|crit|debug|defined|emerg|err|escape|fail|failed|file|generate|gsub|info|notice|package|realize|search|tag|tagged|template|warning)\\b(?!.*{)", + "name": "support.function.puppet" + }, + { + "match": "=>", + "name": "punctuation.separator.key-value.puppet" + }, + { + "match": "->", + "name": "keyword.control.orderarrow.puppet" + }, + { + "match": "~>", + "name": "keyword.control.notifyarrow.puppet" + }, + { + "include": "#regex-literal" + } + ], + "repository": { + "constants": { + "patterns": [ + { + "match": "\\b(absent|directory|false|file|present|running|stopped|true)\\b(?!.*{)", + "name": "constant.language.puppet" + } + ] + }, + "double-quoted-string": { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.puppet" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.puppet" + } + }, + "name": "string.quoted.double.interpolated.puppet", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#interpolated_puppet" + } + ] + }, + "interpolated_puppet": { + "patterns": [ + { + "begin": "(\\${)(\\d+)", + "beginCaptures": { + "1": { + "name": "punctuation.section.embedded.begin.puppet" + }, + "2": { + "name": "source.puppet variable.other.readwrite.global.pre-defined.puppet" + } + }, + "end": "}", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.puppet" + } + }, + "contentName": "source.puppet", + "name": "meta.embedded.line.puppet", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "begin": "(\\${)(_[a-zA-Z0-9_]*)", + "beginCaptures": { + "1": { + "name": "punctuation.section.embedded.begin.puppet" + }, + "2": { + "name": "source.puppet variable.other.readwrite.global.puppet" + } + }, + "end": "}", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.puppet" + } + }, + "contentName": "source.puppet", + "name": "meta.embedded.line.puppet", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "begin": "(\\${)(([a-z][a-z0-9_]*)?(?:::[a-z][a-z0-9_]*)*)", + "beginCaptures": { + "1": { + "name": "punctuation.section.embedded.begin.puppet" + }, + "2": { + "name": "source.puppet variable.other.readwrite.global.puppet" + } + }, + "end": "}", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.puppet" + } + }, + "contentName": "source.puppet", + "name": "meta.embedded.line.puppet", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "begin": "\\${", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.puppet" + } + }, + "end": "}", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.puppet" + } + }, + "contentName": "source.puppet", + "name": "meta.embedded.line.puppet", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + "escaped_char": { + "match": "\\\\.", + "name": "constant.character.escape.puppet" + }, + "line_comment": { + "patterns": [ + { + "captures": { + "1": { + "name": "comment.line.number-sign.puppet" + }, + "2": { + "name": "punctuation.definition.comment.puppet" + } + }, + "match": "^((#).*$\\n?)", + "name": "meta.comment.full-line.puppet" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.comment.puppet" + } + }, + "match": "(#).*$\\n?", + "name": "comment.line.number-sign.puppet" + } + ] + }, + "nested_braces": { + "begin": "\\{", + "captures": { + "1": { + "name": "punctuation.section.scope.puppet" + } + }, + "end": "\\}", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#nested_braces" + } + ] + }, + "nested_braces_interpolated": { + "begin": "\\{", + "captures": { + "1": { + "name": "punctuation.section.scope.puppet" + } + }, + "end": "\\}", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#variable" + }, + { + "include": "#nested_braces_interpolated" + } + ] + }, + "nested_brackets": { + "begin": "\\[", + "captures": { + "1": { + "name": "punctuation.section.scope.puppet" + } + }, + "end": "\\]", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#nested_brackets" + } + ] + }, + "nested_brackets_interpolated": { + "begin": "\\[", + "captures": { + "1": { + "name": "punctuation.section.scope.puppet" + } + }, + "end": "\\]", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#variable" + }, + { + "include": "#nested_brackets_interpolated" + } + ] + }, + "nested_parens": { + "begin": "\\(", + "captures": { + "1": { + "name": "punctuation.section.scope.puppet" + } + }, + "end": "\\)", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#nested_parens" + } + ] + }, + "nested_parens_interpolated": { + "begin": "\\(", + "captures": { + "1": { + "name": "punctuation.section.scope.puppet" + } + }, + "end": "\\)", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#variable" + }, + { + "include": "#nested_parens_interpolated" + } + ] + }, + "parameter-default-types": { + "patterns": [ + { + "include": "#strings" + }, + { + "include": "#numbers" + }, + { + "include": "#variable" + }, + { + "include": "#hash" + }, + { + "include": "#array" + }, + { + "include": "#function_call" + }, + { + "include": "#constants" + }, + { + "include": "#puppet-datatypes" + } + ] + }, + "resource-parameters": { + "patterns": [ + { + "captures": { + "1": { + "name": "variable.other.puppet" + }, + "2": { + "name": "punctuation.definition.variable.puppet" + } + }, + "match": "((\\$+)[a-zA-Z_][a-zA-Z0-9_]*)\\s*(?=,|\\))", + "name": "meta.function.argument.puppet" + }, + { + "begin": "((\\$+)[a-zA-Z_][a-zA-Z0-9_]*)(?:\\s*(=)\\s*)\\s*", + "captures": { + "1": { + "name": "variable.other.puppet" + }, + "2": { + "name": "punctuation.definition.variable.puppet" + }, + "3": { + "name": "keyword.operator.assignment.puppet" + } + }, + "end": "(?=,|\\))", + "name": "meta.function.argument.puppet", + "patterns": [ + { + "include": "#parameter-default-types" + } + ] + } + ] + }, + "array": { + "begin": "(\\[)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.array.begin.puppet" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.array.end.puppet" + } + }, + "name": "meta.array.puppet", + "patterns": [ + { + "match": "\\s*,\\s*" + }, + { + "include": "#parameter-default-types" + }, + { + "include": "#line_comment" + } + ] + }, + "hash": { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.hash.begin.puppet" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.hash.end.puppet" + } + }, + "name": "meta.hash.puppet", + "patterns": [ + { + "match": "\\b\\w+\\s*(?==>)\\s*", + "name": "constant.other.key.puppet" + }, + { + "include": "#parameter-default-types" + }, + { + "include": "#line_comment" + } + ] + }, + "single-quoted-string": { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.puppet" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.puppet" + } + }, + "name": "string.quoted.single.puppet", + "patterns": [ + { + "include": "#escaped_char" + } + ] + }, + "strings": { + "patterns": [ + { + "include": "#double-quoted-string" + }, + { + "include": "#single-quoted-string" + } + ] + }, + "keywords": { + "match": "\\b(undef)\\b", + "captures": { + "1": { + "name": "keyword.puppet" + } + } + }, + "numbers": { + "patterns": [ + { + "comment": "HEX 0x 0-f", + "match": "(?<!\\w|\\d)([-+]?)(?i:0x)(?i:[0-9a-f])+(?!\\w|\\d)", + "name": "constant.numeric.hexadecimal.puppet" + }, + { + "comment": "INTEGERS [(+|-)] digits [e [(+|-)] digits]", + "match": "(?<!\\w|\\.)([-+]?)(?<!\\d)\\d+(?i:e(\\+|-){0,1}\\d+){0,1}(?!\\w|\\d|\\.)", + "name": "constant.numeric.integer.puppet" + }, + { + "comment": "FLOAT [(+|-)] digits . digits [e [(+|-)] digits]", + "match": "(?<!\\w)([-+]?)\\d+\\.\\d+(?i:e(\\+|-){0,1}\\d+){0,1}(?!\\w|\\d)", + "name": "constant.numeric.integer.puppet" + } + ] + }, + "resource-definition": { + "begin": "(?:^|\\b)((?#Toplevel Bareword)::[a-z][a-z0-9_]*|(?#Bareword Resource Name)[a-z][a-z0-9_]*|(?#Qualified Resource Name)(?:[a-z][a-z0-9_]*)?(?:::[a-z][a-z0-9_]*)+)\\s*({)\\s*", + "beginCaptures": { + "1": { + "name": "meta.definition.resource.puppet storage.type.puppet" + } + }, + "end": ":", + "contentName": "entity.name.section.puppet", + "patterns": [ + { + "include": "#strings" + }, + { + "include": "#variable" + }, + { + "include": "#array" + } + ] + }, + "variable": { + "patterns": [ + { + "match": "(\\$)(\\d+)", + "name": "variable.other.readwrite.global.pre-defined.puppet", + "captures": { + "1": { + "name": "punctuation.definition.variable.puppet" + } + } + }, + { + "match": "(\\$)_[a-zA-Z0-9_]*", + "name": "variable.other.readwrite.global.puppet", + "captures": { + "1": { + "name": "punctuation.definition.variable.puppet" + } + } + }, + { + "match": "(\\$)(([a-z][a-zA-Z0-9_]*)?(?:::[a-z][a-zA-Z0-9_]*)*)", + "name": "variable.other.readwrite.global.puppet", + "captures": { + "1": { + "name": "punctuation.definition.variable.puppet" + } + } + } + ] + }, + "function_call": { + "begin": "([a-zA-Z_][a-zA-Z0-9_]*)(\\()", + "end": "\\)", + "name": "meta.function-call.puppet", + "patterns": [ + { + "include": "#parameter-default-types" + }, + { + "match": ",", + "name": "punctuation.separator.parameters.puppet" + } + ] + }, + "puppet-datatypes": { + "patterns": [ + { + "comment": "Puppet Data type", + "match": "(?<![a-zA-Z\\$])([A-Z][a-zA-Z0-9_]*)(?![a-zA-Z0-9_])", + "name": "storage.type.puppet" + } + ] + }, + "regex-literal": { + "match": "(\\/)(.+?)(?:[^\\\\]\\/)", + "name": "string.regexp.literal.puppet", + "comment": "Puppet Regular expression literal without interpolation" + }, + "heredoc": { + "patterns": [ + { + "begin": "@\\([[:blank:]]*\"([^:\\/) \\t]+)\"[[:blank:]]*(:[[:blank:]]*[a-z][a-zA-Z0-9_+]*[[:blank:]]*)?(\\/[[:blank:]]*[tsrnL$]*)?[[:blank:]]*\\)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.puppet" + } + }, + "end": "^[[:blank:]]*(\\|[[:blank:]]*-|\\||-)?[[:blank:]]*\\1", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.puppet" + } + }, + "name": "string.interpolated.heredoc.puppet", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#interpolated_puppet" + } + ] + }, + { + "begin": "@\\([[:blank:]]*([^:\\/) \\t]+)[[:blank:]]*(:[[:blank:]]*[a-z][a-zA-Z0-9_+]*[[:blank:]]*)?(\\/[[:blank:]]*[tsrnL$]*)?[[:blank:]]*\\)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.puppet" + } + }, + "end": "^[[:blank:]]*(\\|[[:blank:]]*-|\\||-)?[[:blank:]]*\\1", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.puppet" + } + }, + "name": "string.unquoted.heredoc.puppet" + } + ] + } + } +} diff --git a/docs/shiki/languages/purescript.tmLanguage.json b/docs/shiki/languages/purescript.tmLanguage.json new file mode 100644 index 00000000..333c6a0f --- /dev/null +++ b/docs/shiki/languages/purescript.tmLanguage.json @@ -0,0 +1,886 @@ +{ + "fileTypes": ["purs"], + "name": "purescript", + "scopeName": "source.purescript", + "macros": { + "functionNameOne": "[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*", + "classNameOne": "[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*", + "functionName": "(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*", + "className": "[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*", + "operatorChar": "[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]", + "operator": "[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]+", + "operatorFun": "(?:\\((?!--+\\))[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]+\\))", + "character": "(?:[ -\\[\\]-~]|(\\\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\"'\\&]))|(\\\\o[0-7]+)|(\\\\x[0-9A-Fa-f]+)|(\\^[A-Z@\\[\\]\\\\\\^_]))", + "classConstraint": "(?:(?:([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)\\s+)(?:(?<classConstraint>(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)(?:\\s*(?:\\s+)\\s*\\g<classConstraint>)?)))", + "functionTypeDeclaration": "([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\\s*(::|∷)", + "ctorArgs": "(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:(?:[\\w()'→⇒\\[\\],]|->|=>)+\\s*)+)", + "ctor": "(?:(?:\\b([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)\\s+)(?:(?<ctorArgs>(?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:(?:[\\w()'→⇒\\[\\],]|->|=>)+\\s*)+))(?:\\s*(?:\\s+)\\s*\\g<ctorArgs>)?)?))", + "typeDecl": ".+?", + "indentChar": "[ \\t]", + "indentBlockEnd": "^(?!\\1[ \\t]|[ \\t]*$)", + "maybeBirdTrack": "^" + }, + "patterns": [ + { + "name": "keyword.operator.function.infix.purescript", + "match": "(`)(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(`)", + "captures": { + "1": { + "name": "punctuation.definition.entity.purescript" + }, + "2": { + "name": "punctuation.definition.entity.purescript" + } + } + }, + { + "name": "meta.declaration.module.purescript", + "begin": "^\\s*\\b(module)(?!')\\b", + "end": "(where)", + "beginCaptures": { + "1": { + "name": "keyword.other.purescript" + } + }, + "endCaptures": { + "1": { + "name": "keyword.other.purescript" + } + }, + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#module_name" + }, + { + "include": "#module_exports" + }, + { + "name": "invalid.purescript", + "match": "[a-z]+" + } + ] + }, + { + "name": "meta.declaration.typeclass.purescript", + "begin": "^\\s*\\b(class)(?!')\\b", + "end": "\\b(where)\\b|$", + "beginCaptures": { + "1": { + "name": "storage.type.class.purescript" + } + }, + "endCaptures": { + "1": { + "name": "keyword.other.purescript" + } + }, + "patterns": [ + { + "include": "#type_signature" + } + ] + }, + { + "name": "meta.declaration.instance.purescript", + "begin": "^\\s*\\b(else\\s+)?(derive\\s+)?(newtype\\s+)?(instance)(?!')\\b", + "end": "\\b(where)\\b|$", + "contentName": "meta.type-signature.purescript", + "beginCaptures": { + "1": { + "name": "keyword.other.purescript" + }, + "2": { + "name": "keyword.other.purescript" + }, + "3": { + "name": "keyword.other.purescript" + }, + "4": { + "name": "keyword.other.purescript" + } + }, + "endCaptures": { + "1": { + "name": "keyword.other.purescript" + } + }, + "patterns": [ + { + "include": "#type_signature" + } + ] + }, + { + "name": "meta.foreign.data.purescript", + "begin": "^(\\s*)(foreign)\\s+(import)\\s+(data)\\s+([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)", + "end": "^(?!\\1[ \\t]|[ \\t]*$)", + "contentName": "meta.kind-signature.purescript", + "beginCaptures": { + "2": { + "name": "keyword.other.purescript" + }, + "3": { + "name": "keyword.other.purescript" + }, + "4": { + "name": "keyword.other.purescript" + }, + "5": { + "name": "entity.name.type.purescript" + }, + "6": { + "name": "keyword.other.double-colon.purescript" + } + }, + "patterns": [ + { + "include": "#double_colon" + }, + { + "include": "#kind_signature" + } + ] + }, + { + "name": "meta.foreign.purescript", + "begin": "^(\\s*)(foreign)\\s+(import)\\s+([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)", + "end": "^(?!\\1[ \\t]|[ \\t]*$)", + "contentName": "meta.type-signature.purescript", + "beginCaptures": { + "2": { + "name": "keyword.other.purescript" + }, + "3": { + "name": "keyword.other.purescript" + }, + "4": { + "name": "entity.name.function.purescript" + } + }, + "patterns": [ + { + "include": "#double_colon" + }, + { + "include": "#type_signature" + } + ] + }, + { + "name": "meta.import.purescript", + "begin": "^\\s*\\b(import)(?!')\\b", + "end": "($|(?=--))", + "beginCaptures": { + "1": { + "name": "keyword.other.purescript" + } + }, + "patterns": [ + { + "include": "#module_name" + }, + { + "include": "#module_exports" + }, + { + "match": "\\b(as|hiding)\\b", + "captures": { + "1": { + "name": "keyword.other.purescript" + } + } + } + ] + }, + { + "name": "meta.declaration.type.data.purescript", + "begin": "^(\\s)*(data|newtype)\\s+(.+?)\\s*(?=\\=|$)", + "end": "^(?!\\1[ \\t]|[ \\t]*$)", + "beginCaptures": { + "2": { + "name": "storage.type.data.purescript" + }, + "3": { + "name": "meta.type-signature.purescript", + "patterns": [ + { + "include": "#type_signature" + } + ] + } + }, + "patterns": [ + { + "include": "#comments" + }, + { + "match": "=", + "captures": { + "0": { + "name": "keyword.operator.assignment.purescript" + } + } + }, + { + "match": "(?:(?:\\b([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)\\s+)(?:(?<ctorArgs>(?:(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:(?:[\\w()'→⇒\\[\\],]|->|=>)+\\s*)+))(?:\\s*(?:\\s+)\\s*\\g<ctorArgs>)?)?))", + "captures": { + "1": { + "patterns": [ + { + "include": "#data_ctor" + } + ] + }, + "2": { + "name": "meta.type-signature.purescript", + "patterns": [ + { + "include": "#type_signature" + } + ] + } + } + }, + { + "match": "\\|", + "captures": { + "0": { + "name": "punctuation.separator.pipe.purescript" + } + } + }, + { + "include": "#record_types" + } + ] + }, + { + "name": "meta.declaration.type.type.purescript", + "begin": "^(\\s)*(type)\\s+(.+?)\\s*(?=\\=|$)", + "end": "^(?!\\1[ \\t]|[ \\t]*$)", + "contentName": "meta.type-signature.purescript", + "beginCaptures": { + "2": { + "name": "storage.type.data.purescript" + }, + "3": { + "name": "meta.type-signature.purescript", + "patterns": [ + { + "include": "#type_signature" + } + ] + } + }, + "patterns": [ + { + "match": "=", + "captures": { + "0": { + "name": "keyword.operator.assignment.purescript" + } + } + }, + { + "include": "#type_signature" + }, + { + "include": "#record_types" + }, + { + "include": "#comments" + } + ] + }, + { + "name": "keyword.other.purescript", + "match": "^\\s*\\b(derive|where|data|type|newtype|infix[lr]?|foreign(\\s+import)?(\\s+data)?)(?!')\\b" + }, + { + "name": "entity.name.function.typed-hole.purescript", + "match": "\\?(?:[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)" + }, + { + "name": "storage.type.purescript", + "match": "^\\s*\\b(data|type|newtype)(?!')\\b" + }, + { + "name": "keyword.control.purescript", + "match": "\\b(do|ado|if|then|else|case|of|let|in)(?!('|\\s*(:|=)))\\b" + }, + { + "name": "constant.numeric.hex.purescript", + "match": "\\b(?<!\\$)0(x|X)[0-9a-fA-F]+\\b(?!\\$)" + }, + { + "name": "constant.numeric.decimal.purescript", + "match": "(?x)\n(?<!\\$)(?:\n (?:\\b[0-9]+(\\.)[0-9]+[eE][+-]?[0-9]+\\b)| # 1.1E+3\n (?:\\b[0-9]+[eE][+-]?[0-9]+\\b)| # 1E+3\n (?:\\b[0-9]+(\\.)[0-9]+\\b)| # 1.1\n (?:\\b[0-9]+\\b(?!\\.)) # 1\n)(?!\\$)", + "captures": { + "0": { + "name": "constant.numeric.decimal.purescript" + }, + "1": { + "name": "meta.delimiter.decimal.period.purescript" + }, + "2": { + "name": "meta.delimiter.decimal.period.purescript" + }, + "3": { + "name": "meta.delimiter.decimal.period.purescript" + }, + "4": { + "name": "meta.delimiter.decimal.period.purescript" + }, + "5": { + "name": "meta.delimiter.decimal.period.purescript" + }, + "6": { + "name": "meta.delimiter.decimal.period.purescript" + } + } + }, + { + "name": "constant.language.boolean.purescript", + "match": "\\b(true|false)\\b" + }, + { + "name": "constant.numeric.purescript", + "match": "\\b(([0-9]+_?)*[0-9]+|0([xX][0-9a-fA-F]+|[oO][0-7]+))\\b" + }, + { + "name": "string.quoted.triple.purescript", + "begin": "\"\"\"", + "end": "\"\"\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.purescript" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.purescript" + } + } + }, + { + "name": "string.quoted.double.purescript", + "begin": "\"", + "end": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.purescript" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.purescript" + } + }, + "patterns": [ + { + "include": "#characters" + }, + { + "begin": "\\\\\\s", + "end": "\\\\", + "beginCaptures": { + "0": { + "name": "markup.other.escape.newline.begin.purescript" + } + }, + "endCaptures": { + "0": { + "name": "markup.other.escape.newline.end.purescript" + } + }, + "patterns": [ + { + "match": "\\S+", + "name": "invalid.illegal.character-not-allowed-here.purescript" + } + ] + } + ] + }, + { + "name": "markup.other.escape.newline.purescript", + "match": "\\\\$" + }, + { + "name": "string.quoted.single.purescript", + "match": "(')((?:[ -\\[\\]-~]|(\\\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\"'\\&]))|(\\\\o[0-7]+)|(\\\\x[0-9A-Fa-f]+)|(\\^[A-Z@\\[\\]\\\\\\^_])))(')", + "captures": { + "1": { + "name": "punctuation.definition.string.begin.purescript" + }, + "2": { + "patterns": [ + { + "include": "#characters" + } + ] + }, + "7": { + "name": "punctuation.definition.string.end.purescript" + } + } + }, + { + "include": "#function_type_declaration" + }, + { + "match": "\\((?<paren>(?:[^()]|\\(\\g<paren>\\))*)(::|∷)(?<paren2>(?:[^()]|\\(\\g<paren2>\\))*)\\)", + "captures": { + "1": { + "patterns": [ + { + "include": "$self" + } + ] + }, + "2": { + "name": "keyword.other.double-colon.purescript" + }, + "3": { + "name": "meta.type-signature.purescript", + "patterns": [ + { + "include": "#type_signature" + } + ] + } + } + }, + { + "begin": "^(\\s*)(?:(::|∷))", + "beginCaptures": { + "2": { + "name": "keyword.other.double-colon.purescript" + } + }, + "end": "^(?!\\1[ \\t]*|[ \\t]*$)", + "patterns": [ + { + "include": "#type_signature" + } + ] + }, + { + "include": "#data_ctor" + }, + { + "include": "#comments" + }, + { + "include": "#infix_op" + }, + { + "name": "keyword.other.arrow.purescript", + "match": "\\<-|-\\>" + }, + { + "name": "keyword.operator.purescript", + "match": "[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]+" + }, + { + "name": "punctuation.separator.comma.purescript", + "match": "," + } + ], + "repository": { + "block_comment": { + "patterns": [ + { + "name": "comment.block.documentation.purescript", + "begin": "\\{-\\s*\\|", + "end": "-\\}", + "applyEndPatternLast": 1, + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.documentation.purescript" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.documentation.purescript" + } + }, + "patterns": [ + { + "include": "#block_comment" + } + ] + }, + { + "name": "comment.block.purescript", + "begin": "\\{-", + "end": "-\\}", + "applyEndPatternLast": 1, + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.purescript" + } + }, + "patterns": [ + { + "include": "#block_comment" + } + ] + } + ] + }, + "record_types": { + "patterns": [ + { + "name": "meta.type.record.purescript", + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "keyword.operator.type.record.begin.purescript" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "keyword.operator.type.record.end.purescript" + } + }, + "patterns": [ + { + "name": "punctuation.separator.comma.purescript", + "match": "," + }, + { + "include": "#record_field_declaration" + }, + { + "include": "#comments" + } + ] + } + ] + }, + "comments": { + "patterns": [ + { + "begin": "(^[ \\t]+)?(?=--+\\s+\\|)", + "end": "(?!\\G)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.purescript" + } + }, + "patterns": [ + { + "name": "comment.line.double-dash.documentation.purescript", + "begin": "(--+)\\s+(\\|)", + "end": "\\n", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.purescript" + }, + "2": { + "name": "punctuation.definition.comment.documentation.purescript" + } + } + } + ] + }, + { + "begin": "(^[ \\t]+)?(?=--+(?![\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]))", + "end": "(?!\\G)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.purescript" + } + }, + "patterns": [ + { + "name": "comment.line.double-dash.purescript", + "begin": "--", + "end": "\\n", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.purescript" + } + } + } + ] + }, + { + "include": "#block_comment" + } + ] + }, + "characters": { + "patterns": [ + { + "match": "(?:[ -\\[\\]-~]|(\\\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\"'\\&]))|(\\\\o[0-7]+)|(\\\\x[0-9A-Fa-f]+)|(\\^[A-Z@\\[\\]\\\\\\^_]))", + "captures": { + "1": { + "name": "constant.character.escape.purescript" + }, + "2": { + "name": "constant.character.escape.octal.purescript" + }, + "3": { + "name": "constant.character.escape.hexadecimal.purescript" + }, + "4": { + "name": "constant.character.escape.control.purescript" + } + } + } + ] + }, + "infix_op": { + "patterns": [ + { + "name": "entity.name.function.infix.purescript", + "match": "(?:\\((?!--+\\))[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]+\\))" + } + ] + }, + "module_exports": { + "patterns": [ + { + "name": "meta.declaration.exports.purescript", + "begin": "\\(", + "end": "\\)", + "patterns": [ + { + "include": "#comments" + }, + { + "name": "entity.name.function.purescript", + "match": "\\b(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*" + }, + { + "include": "#type_name" + }, + { + "name": "punctuation.separator.comma.purescript", + "match": "," + }, + { + "include": "#infix_op" + }, + { + "name": "meta.other.constructor-list.purescript", + "match": "\\(.*?\\)" + } + ] + } + ] + }, + "module_name": { + "patterns": [ + { + "name": "support.other.module.purescript", + "match": "(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)*[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.?" + } + ] + }, + "function_type_declaration": { + "patterns": [ + { + "name": "meta.function.type-declaration.purescript", + "begin": "^(\\s*)([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\\s*(?:(::|∷)(?!.*<-))", + "end": "^(?!\\1[ \\t]|[ \\t]*$)", + "contentName": "meta.type-signature.purescript", + "beginCaptures": { + "2": { + "name": "entity.name.function.purescript" + }, + "3": { + "name": "keyword.other.double-colon.purescript" + } + }, + "patterns": [ + { + "include": "#double_colon" + }, + { + "include": "#type_signature" + } + ] + } + ] + }, + "record_field_declaration": { + "patterns": [ + { + "name": "meta.record-field.type-declaration.purescript", + "begin": "([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\\s*(::|∷)", + "end": "(?=([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\\s*(::|∷)|})", + "contentName": "meta.type-signature.purescript", + "beginCaptures": { + "1": { + "patterns": [ + { + "name": "entity.other.attribute-name.purescript", + "match": "(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*" + } + ] + }, + "2": { + "name": "keyword.other.double-colon.purescript" + } + }, + "patterns": [ + { + "include": "#type_signature" + }, + { + "include": "#record_types" + } + ] + } + ] + }, + "kind_signature": { + "patterns": [ + { + "name": "keyword.other.star.purescript", + "match": "\\*" + }, + { + "name": "keyword.other.exclaimation-point.purescript", + "match": "!" + }, + { + "name": "keyword.other.pound-sign.purescript", + "match": "#" + }, + { + "name": "keyword.other.arrow.purescript", + "match": "->|→" + } + ] + }, + "type_signature": { + "patterns": [ + { + "name": "meta.class-constraints.purescript", + "match": "(?:(?:\\()(?:(?<classConstraints>(?:(?:(?:([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)\\s+)(?:(?<classConstraint>(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)(?:\\s*(?:\\s+)\\s*\\g<classConstraint>)?))))(?:\\s*(?:,)\\s*\\g<classConstraints>)?))(?:\\))(?:\\s*(=>|<=|⇐|⇒)))", + "captures": { + "1": { + "patterns": [ + { + "include": "#class_constraint" + } + ] + }, + "4": { + "name": "keyword.other.big-arrow.purescript" + } + } + }, + { + "name": "meta.class-constraints.purescript", + "match": "((?:(?:([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)\\s+)(?:(?<classConstraint>(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)(?:\\s*(?:\\s+)\\s*\\g<classConstraint>)?))))\\s*(=>|<=|⇐|⇒)", + "captures": { + "1": { + "patterns": [ + { + "include": "#class_constraint" + } + ] + }, + "4": { + "name": "keyword.other.big-arrow.purescript" + } + } + }, + { + "name": "keyword.other.arrow.purescript", + "match": "->|→" + }, + { + "name": "keyword.other.big-arrow.purescript", + "match": "=>|⇒" + }, + { + "name": "keyword.other.big-arrow-left.purescript", + "match": "<=|⇐" + }, + { + "name": "keyword.other.forall.purescript", + "match": "forall|∀" + }, + { + "include": "#generic_type" + }, + { + "include": "#type_name" + }, + { + "include": "#comments" + } + ] + }, + "type_name": { + "patterns": [ + { + "name": "entity.name.type.purescript", + "match": "\\b[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*" + } + ] + }, + "data_ctor": { + "patterns": [ + { + "name": "entity.name.tag.purescript", + "match": "\\b[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*" + } + ] + }, + "generic_type": { + "patterns": [ + { + "name": "variable.other.generic-type.purescript", + "match": "\\b(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*" + } + ] + }, + "double_colon": { + "patterns": [ + { + "name": "keyword.other.double-colon.purescript", + "match": "(?:::|∷)" + } + ] + }, + "class_constraint": { + "patterns": [ + { + "name": "meta.class-constraint.purescript", + "match": "(?:(?:([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)\\s+)(?:(?<classConstraint>(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)(?:\\s*(?:\\s+)\\s*\\g<classConstraint>)?)))", + "captures": { + "1": { + "patterns": [ + { + "name": "entity.name.type.purescript", + "match": "\\b[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*" + } + ] + }, + "2": { + "patterns": [ + { + "include": "#type_name" + }, + { + "include": "#generic_type" + } + ] + } + } + } + ] + } + } +} diff --git a/docs/shiki/languages/python.tmLanguage.json b/docs/shiki/languages/python.tmLanguage.json new file mode 100644 index 00000000..22715db9 --- /dev/null +++ b/docs/shiki/languages/python.tmLanguage.json @@ -0,0 +1,4213 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/MagicStack/MagicPython/blob/master/grammars/MagicPython.tmLanguage", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/MagicStack/MagicPython/commit/7d0f2b22a5ad8fccbd7341bc7b7a715169283044", + "name": "python", + "scopeName": "source.python", + "patterns": [ + { + "include": "#statement" + }, + { + "include": "#expression" + } + ], + "repository": { + "impossible": { + "comment": "This is a special rule that should be used where no match is desired. It is not a good idea to match something like '1{0}' because in some cases that can result in infinite loops in token generation. So the rule instead matches and impossible expression to allow a match to fail and move to the next token.", + "match": "$.^" + }, + "statement": { + "patterns": [ + { + "include": "#import" + }, + { + "include": "#class-declaration" + }, + { + "include": "#function-declaration" + }, + { + "include": "#generator" + }, + { + "include": "#statement-keyword" + }, + { + "include": "#assignment-operator" + }, + { + "include": "#decorator" + }, + { + "include": "#docstring-statement" + }, + { + "include": "#semicolon" + } + ] + }, + "semicolon": { + "patterns": [ + { + "name": "invalid.deprecated.semicolon.python", + "match": "\\;$" + } + ] + }, + "comments": { + "patterns": [ + { + "name": "comment.line.number-sign.python", + "contentName": "meta.typehint.comment.python", + "begin": "(?x)\n (?:\n \\# \\s* (type:)\n \\s*+ (?# we want `\\s*+` which is possessive quantifier since\n we do not actually want to backtrack when matching\n whitespace here)\n (?! $ | \\#)\n )\n", + "end": "(?:$|(?=\\#))", + "beginCaptures": { + "0": { + "name": "meta.typehint.comment.python" + }, + "1": { + "name": "comment.typehint.directive.notation.python" + } + }, + "patterns": [ + { + "name": "comment.typehint.ignore.notation.python", + "match": "(?x)\n \\G ignore\n (?= \\s* (?: $ | \\#))\n" + }, + { + "name": "comment.typehint.type.notation.python", + "match": "(?x)\n (?<!\\.)\\b(\n bool | bytes | float | int | object | str\n | List | Dict | Iterable | Sequence | Set\n | FrozenSet | Callable | Union | Tuple\n | Any | None\n )\\b\n" + }, + { + "name": "comment.typehint.punctuation.notation.python", + "match": "([\\[\\]\\(\\),\\.\\=\\*]|(->))" + }, + { + "name": "comment.typehint.variable.notation.python", + "match": "([[:alpha:]_]\\w*)" + } + ] + }, + { + "include": "#comments-base" + } + ] + }, + "docstring-statement": { + "begin": "^(?=\\s*[rR]?(\\'\\'\\'|\\\"\\\"\\\"|\\'|\\\"))", + "comment": "the string either terminates correctly or by the beginning of a new line (this is for single line docstrings that aren't terminated) AND it's not followed by another docstring", + "end": "((?<=\\1)|^)(?!\\s*[rR]?(\\'\\'\\'|\\\"\\\"\\\"|\\'|\\\"))", + "patterns": [ + { + "include": "#docstring" + } + ] + }, + "docstring": { + "patterns": [ + { + "name": "string.quoted.docstring.multi.python", + "begin": "(\\'\\'\\'|\\\"\\\"\\\")", + "end": "(\\1)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.string.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python" + } + }, + "patterns": [ + { + "include": "#docstring-prompt" + }, + { + "include": "#codetags" + }, + { + "include": "#docstring-guts-unicode" + } + ] + }, + { + "name": "string.quoted.docstring.raw.multi.python", + "begin": "([rR])(\\'\\'\\'|\\\"\\\"\\\")", + "end": "(\\2)", + "beginCaptures": { + "1": { + "name": "storage.type.string.python" + }, + "2": { + "name": "punctuation.definition.string.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python" + } + }, + "patterns": [ + { + "include": "#string-consume-escape" + }, + { + "include": "#docstring-prompt" + }, + { + "include": "#codetags" + } + ] + }, + { + "name": "string.quoted.docstring.single.python", + "begin": "(\\'|\\\")", + "end": "(\\1)|(\\n)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.string.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#codetags" + }, + { + "include": "#docstring-guts-unicode" + } + ] + }, + { + "name": "string.quoted.docstring.raw.single.python", + "begin": "([rR])(\\'|\\\")", + "end": "(\\2)|(\\n)", + "beginCaptures": { + "1": { + "name": "storage.type.string.python" + }, + "2": { + "name": "punctuation.definition.string.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#string-consume-escape" + }, + { + "include": "#codetags" + } + ] + } + ] + }, + "docstring-guts-unicode": { + "patterns": [ + { + "include": "#escape-sequence-unicode" + }, + { + "include": "#escape-sequence" + }, + { + "include": "#string-line-continuation" + } + ] + }, + "docstring-prompt": { + "match": "(?x)\n (?:\n (?:^|\\G) \\s* (?# '\\G' is necessary for ST)\n ((?:>>>|\\.\\.\\.) \\s) (?=\\s*\\S)\n )\n", + "captures": { + "1": { + "name": "keyword.control.flow.python" + } + } + }, + "statement-keyword": { + "patterns": [ + { + "name": "storage.type.function.python", + "match": "\\b((async\\s+)?\\s*def)\\b" + }, + { + "name": "keyword.control.flow.python", + "comment": "if `as` is eventually followed by `:` or line continuation\nit's probably control flow like:\n with foo as bar, \\\n Foo as Bar:\n try:\n do_stuff()\n except Exception as e:\n pass\n", + "match": "\\b(?<!\\.)as\\b(?=.*[:\\\\])" + }, + { + "name": "keyword.control.import.python", + "comment": "other legal use of `as` is in an import", + "match": "\\b(?<!\\.)as\\b" + }, + { + "name": "keyword.control.flow.python", + "match": "(?x)\n \\b(?<!\\.)(\n async | continue | del | assert | break | finally | for\n | from | elif | else | if | except | pass | raise\n | return | try | while | with\n )\\b\n" + }, + { + "name": "storage.modifier.declaration.python", + "match": "(?x)\n \\b(?<!\\.)(\n global | nonlocal\n )\\b\n" + }, + { + "name": "storage.type.class.python", + "match": "\\b(?<!\\.)(class)\\b" + }, + { + "match": "(?x)\n ^\\s*(\n case | match\n )(?=\\s*([-+\\w\\d(\\[{'\":#]|$))\\b\n", + "captures": { + "1": { + "name": "keyword.control.flow.python" + } + } + } + ] + }, + "expression-bare": { + "comment": "valid Python expressions w/o comments and line continuation", + "patterns": [ + { + "include": "#backticks" + }, + { + "include": "#illegal-anno" + }, + { + "include": "#literal" + }, + { + "include": "#regexp" + }, + { + "include": "#string" + }, + { + "include": "#lambda" + }, + { + "include": "#generator" + }, + { + "include": "#illegal-operator" + }, + { + "include": "#operator" + }, + { + "include": "#curly-braces" + }, + { + "include": "#item-access" + }, + { + "include": "#list" + }, + { + "include": "#odd-function-call" + }, + { + "include": "#round-braces" + }, + { + "include": "#function-call" + }, + { + "include": "#builtin-functions" + }, + { + "include": "#builtin-types" + }, + { + "include": "#builtin-exceptions" + }, + { + "include": "#magic-names" + }, + { + "include": "#special-names" + }, + { + "include": "#illegal-names" + }, + { + "include": "#special-variables" + }, + { + "include": "#ellipsis" + }, + { + "include": "#punctuation" + }, + { + "include": "#line-continuation" + } + ] + }, + "expression-base": { + "comment": "valid Python expressions with comments and line continuation", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#expression-bare" + }, + { + "include": "#line-continuation" + } + ] + }, + "expression": { + "comment": "All valid Python expressions", + "patterns": [ + { + "include": "#expression-base" + }, + { + "include": "#member-access" + }, + { + "comment": "Tokenize identifiers to help linters", + "match": "(?x) \\b ([[:alpha:]_]\\w*) \\b" + } + ] + }, + "member-access": { + "name": "meta.member.access.python", + "begin": "(\\.)\\s*(?!\\.)", + "end": "(?x)\n # stop when you've just read non-whitespace followed by non-word\n # i.e. when finished reading an identifier or function call\n (?<=\\S)(?=\\W) |\n # stop when seeing the start of something that's not a word,\n # i.e. when seeing a non-identifier\n (^|(?<=\\s))(?=[^\\\\\\w\\s]) |\n $\n", + "beginCaptures": { + "1": { + "name": "punctuation.separator.period.python" + } + }, + "patterns": [ + { + "include": "#function-call" + }, + { + "include": "#member-access-base" + }, + { + "include": "#member-access-attribute" + } + ] + }, + "member-access-base": { + "patterns": [ + { + "include": "#magic-names" + }, + { + "include": "#illegal-names" + }, + { + "include": "#illegal-object-name" + }, + { + "include": "#special-names" + }, + { + "include": "#line-continuation" + }, + { + "include": "#item-access" + } + ] + }, + "member-access-attribute": { + "comment": "Highlight attribute access in otherwise non-specialized cases.", + "name": "meta.attribute.python", + "match": "(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n" + }, + "special-names": { + "name": "constant.other.caps.python", + "match": "(?x)\n \\b\n # we want to see \"enough\", meaning 2 or more upper-case\n # letters in the beginning of the constant\n #\n # for more details refer to:\n # https://github.com/MagicStack/MagicPython/issues/42\n (\n _* [[:upper:]] [_\\d]* [[:upper:]]\n )\n [[:upper:]\\d]* (_\\w*)?\n \\b\n" + }, + "curly-braces": { + "begin": "\\{", + "end": "\\}", + "beginCaptures": { + "0": { + "name": "punctuation.definition.dict.begin.python" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.dict.end.python" + } + }, + "patterns": [ + { + "name": "punctuation.separator.dict.python", + "match": ":" + }, + { + "include": "#expression" + } + ] + }, + "list": { + "begin": "\\[", + "end": "\\]", + "beginCaptures": { + "0": { + "name": "punctuation.definition.list.begin.python" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.list.end.python" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + "odd-function-call": { + "comment": "A bit obscured function call where there may have been an\narbitrary number of other operations to get the function.\nE.g. \"arr[idx](args)\"\n", + "begin": "(?x)\n (?<= \\] | \\) ) \\s*\n (?=\\()\n", + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.definition.arguments.end.python" + } + }, + "patterns": [ + { + "include": "#function-arguments" + } + ] + }, + "round-braces": { + "begin": "\\(", + "end": "\\)", + "beginCaptures": { + "0": { + "name": "punctuation.parenthesis.begin.python" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.parenthesis.end.python" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + "line-continuation": { + "patterns": [ + { + "match": "(\\\\)\\s*(\\S.*$\\n?)", + "captures": { + "1": { + "name": "punctuation.separator.continuation.line.python" + }, + "2": { + "name": "invalid.illegal.line.continuation.python" + } + } + }, + { + "begin": "(\\\\)\\s*$\\n?", + "end": "(?x)\n (?=^\\s*$)\n |\n (?! (\\s* [rR]? (\\'\\'\\'|\\\"\\\"\\\"|\\'|\\\"))\n |\n (\\G $) (?# '\\G' is necessary for ST)\n )\n", + "beginCaptures": { + "1": { + "name": "punctuation.separator.continuation.line.python" + } + }, + "patterns": [ + { + "include": "#regexp" + }, + { + "include": "#string" + } + ] + } + ] + }, + "assignment-operator": { + "name": "keyword.operator.assignment.python", + "match": "(?x)\n <<= | >>= | //= | \\*\\*=\n | \\+= | -= | /= | @=\n | \\*= | %= | ~= | \\^= | &= | \\|=\n | =(?!=)\n" + }, + "operator": { + "match": "(?x)\n \\b(?<!\\.)\n (?:\n (and | or | not | in | is) (?# 1)\n |\n (for | if | else | await | (?:yield(?:\\s+from)?)) (?# 2)\n )\n (?!\\s*:)\\b\n\n | (<< | >> | & | \\| | \\^ | ~) (?# 3)\n\n | (\\*\\* | \\* | \\+ | - | % | // | / | @) (?# 4)\n\n | (!= | == | >= | <= | < | >) (?# 5)\n\n | (:=) (?# 6)\n", + "captures": { + "1": { + "name": "keyword.operator.logical.python" + }, + "2": { + "name": "keyword.control.flow.python" + }, + "3": { + "name": "keyword.operator.bitwise.python" + }, + "4": { + "name": "keyword.operator.arithmetic.python" + }, + "5": { + "name": "keyword.operator.comparison.python" + }, + "6": { + "name": "keyword.operator.assignment.python" + } + } + }, + "punctuation": { + "patterns": [ + { + "name": "punctuation.separator.colon.python", + "match": ":" + }, + { + "name": "punctuation.separator.element.python", + "match": "," + } + ] + }, + "literal": { + "patterns": [ + { + "name": "constant.language.python", + "match": "\\b(True|False|None|NotImplemented|Ellipsis)\\b" + }, + { + "include": "#number" + } + ] + }, + "number": { + "name": "constant.numeric.python", + "patterns": [ + { + "include": "#number-float" + }, + { + "include": "#number-dec" + }, + { + "include": "#number-hex" + }, + { + "include": "#number-oct" + }, + { + "include": "#number-bin" + }, + { + "include": "#number-long" + }, + { + "name": "invalid.illegal.name.python", + "match": "\\b[0-9]+\\w+" + } + ] + }, + "number-float": { + "name": "constant.numeric.float.python", + "match": "(?x)\n (?<! \\w)(?:\n (?:\n \\.[0-9](?: _?[0-9] )*\n |\n [0-9](?: _?[0-9] )* \\. [0-9](?: _?[0-9] )*\n |\n [0-9](?: _?[0-9] )* \\.\n ) (?: [eE][+-]?[0-9](?: _?[0-9] )* )?\n |\n [0-9](?: _?[0-9] )* (?: [eE][+-]?[0-9](?: _?[0-9] )* )\n )([jJ])?\\b\n", + "captures": { + "1": { + "name": "storage.type.imaginary.number.python" + } + } + }, + "number-dec": { + "name": "constant.numeric.dec.python", + "match": "(?x)\n (?<![\\w\\.])(?:\n [1-9](?: _?[0-9] )*\n |\n 0+\n |\n [0-9](?: _?[0-9] )* ([jJ])\n |\n 0 ([0-9]+)(?![eE\\.])\n )\\b\n", + "captures": { + "1": { + "name": "storage.type.imaginary.number.python" + }, + "2": { + "name": "invalid.illegal.dec.python" + } + } + }, + "number-hex": { + "name": "constant.numeric.hex.python", + "match": "(?x)\n (?<![\\w\\.])\n (0[xX]) (_?[0-9a-fA-F])+\n \\b\n", + "captures": { + "1": { + "name": "storage.type.number.python" + } + } + }, + "number-oct": { + "name": "constant.numeric.oct.python", + "match": "(?x)\n (?<![\\w\\.])\n (0[oO]) (_?[0-7])+\n \\b\n", + "captures": { + "1": { + "name": "storage.type.number.python" + } + } + }, + "number-bin": { + "name": "constant.numeric.bin.python", + "match": "(?x)\n (?<![\\w\\.])\n (0[bB]) (_?[01])+\n \\b\n", + "captures": { + "1": { + "name": "storage.type.number.python" + } + } + }, + "number-long": { + "name": "constant.numeric.bin.python", + "comment": "this is to support python2 syntax for long ints", + "match": "(?x)\n (?<![\\w\\.])\n ([1-9][0-9]* | 0) ([lL])\n \\b\n", + "captures": { + "2": { + "name": "storage.type.number.python" + } + } + }, + "regexp": { + "patterns": [ + { + "include": "#regexp-single-three-line" + }, + { + "include": "#regexp-double-three-line" + }, + { + "include": "#regexp-single-one-line" + }, + { + "include": "#regexp-double-one-line" + } + ] + }, + "string": { + "patterns": [ + { + "include": "#string-quoted-multi-line" + }, + { + "include": "#string-quoted-single-line" + }, + { + "include": "#string-bin-quoted-multi-line" + }, + { + "include": "#string-bin-quoted-single-line" + }, + { + "include": "#string-raw-quoted-multi-line" + }, + { + "include": "#string-raw-quoted-single-line" + }, + { + "include": "#string-raw-bin-quoted-multi-line" + }, + { + "include": "#string-raw-bin-quoted-single-line" + }, + { + "include": "#fstring-fnorm-quoted-multi-line" + }, + { + "include": "#fstring-fnorm-quoted-single-line" + }, + { + "include": "#fstring-normf-quoted-multi-line" + }, + { + "include": "#fstring-normf-quoted-single-line" + }, + { + "include": "#fstring-raw-quoted-multi-line" + }, + { + "include": "#fstring-raw-quoted-single-line" + } + ] + }, + "string-unicode-guts": { + "patterns": [ + { + "include": "#escape-sequence-unicode" + }, + { + "include": "#string-entity" + }, + { + "include": "#string-brace-formatting" + } + ] + }, + "string-consume-escape": { + "match": "\\\\['\"\\n\\\\]" + }, + "string-raw-guts": { + "patterns": [ + { + "include": "#string-consume-escape" + }, + { + "include": "#string-formatting" + }, + { + "include": "#string-brace-formatting" + } + ] + }, + "string-raw-bin-guts": { + "patterns": [ + { + "include": "#string-consume-escape" + }, + { + "include": "#string-formatting" + } + ] + }, + "string-entity": { + "patterns": [ + { + "include": "#escape-sequence" + }, + { + "include": "#string-line-continuation" + }, + { + "include": "#string-formatting" + } + ] + }, + "fstring-guts": { + "patterns": [ + { + "include": "#escape-sequence-unicode" + }, + { + "include": "#escape-sequence" + }, + { + "include": "#string-line-continuation" + }, + { + "include": "#fstring-formatting" + } + ] + }, + "fstring-raw-guts": { + "patterns": [ + { + "include": "#string-consume-escape" + }, + { + "include": "#fstring-formatting" + } + ] + }, + "fstring-illegal-single-brace": { + "comment": "it is illegal to have a multiline brace inside a single-line string", + "begin": "(\\{)(?=[^\\n}]*$\\n?)", + "end": "(\\})|(?=\\n)", + "beginCaptures": { + "1": { + "name": "constant.character.format.placeholder.other.python" + } + }, + "endCaptures": { + "1": { + "name": "constant.character.format.placeholder.other.python" + } + }, + "patterns": [ + { + "include": "#fstring-terminator-single" + }, + { + "include": "#f-expression" + } + ] + }, + "fstring-illegal-multi-brace": { + "patterns": [ + { + "include": "#impossible" + } + ] + }, + "f-expression": { + "comment": "All valid Python expressions, except comments and line continuation", + "patterns": [ + { + "include": "#expression-bare" + }, + { + "include": "#member-access" + }, + { + "comment": "Tokenize identifiers to help linters", + "match": "(?x) \\b ([[:alpha:]_]\\w*) \\b" + } + ] + }, + "escape-sequence-unicode": { + "patterns": [ + { + "name": "constant.character.escape.python", + "match": "(?x)\n \\\\ (\n u[0-9A-Fa-f]{4}\n | U[0-9A-Fa-f]{8}\n | N\\{[\\w\\s]+?\\}\n )\n" + } + ] + }, + "escape-sequence": { + "name": "constant.character.escape.python", + "match": "(?x)\n \\\\ (\n x[0-9A-Fa-f]{2}\n | [0-7]{1,3}\n | [\\\\\"'abfnrtv]\n )\n" + }, + "string-line-continuation": { + "name": "constant.language.python", + "match": "\\\\$" + }, + "string-formatting": { + "name": "meta.format.percent.python", + "match": "(?x)\n (\n % (\\([\\w\\s]*\\))?\n [-+#0 ]*\n (\\d+|\\*)? (\\.(\\d+|\\*))?\n ([hlL])?\n [diouxXeEfFgGcrsab%]\n )\n", + "captures": { + "1": { + "name": "constant.character.format.placeholder.other.python" + } + } + }, + "string-brace-formatting": { + "patterns": [ + { + "name": "meta.format.brace.python", + "match": "(?x)\n (\n {{ | }}\n | (?:\n {\n \\w* (\\.[[:alpha:]_]\\w* | \\[[^\\]'\"]+\\])*\n (![rsa])?\n ( : \\w? [<>=^]? [-+ ]? \\#?\n \\d* ,? (\\.\\d+)? [bcdeEfFgGnosxX%]? )?\n })\n )\n", + "captures": { + "1": { + "name": "constant.character.format.placeholder.other.python" + }, + "3": { + "name": "storage.type.format.python" + }, + "4": { + "name": "storage.type.format.python" + } + } + }, + { + "name": "meta.format.brace.python", + "match": "(?x)\n (\n {\n \\w* (\\.[[:alpha:]_]\\w* | \\[[^\\]'\"]+\\])*\n (![rsa])?\n (:)\n [^'\"{}\\n]* (?:\n \\{ [^'\"}\\n]*? \\} [^'\"{}\\n]*\n )*\n }\n )\n", + "captures": { + "1": { + "name": "constant.character.format.placeholder.other.python" + }, + "3": { + "name": "storage.type.format.python" + }, + "4": { + "name": "storage.type.format.python" + } + } + } + ] + }, + "fstring-formatting": { + "patterns": [ + { + "include": "#fstring-formatting-braces" + }, + { + "include": "#fstring-formatting-singe-brace" + } + ] + }, + "fstring-formatting-singe-brace": { + "name": "invalid.illegal.brace.python", + "match": "(}(?!}))" + }, + "import": { + "comment": "Import statements used to correctly mark `from`, `import`, and `as`\n", + "patterns": [ + { + "begin": "\\b(?<!\\.)(from)\\b(?=.+import)", + "end": "$|(?=import)", + "beginCaptures": { + "1": { + "name": "keyword.control.import.python" + } + }, + "patterns": [ + { + "name": "punctuation.separator.period.python", + "match": "\\.+" + }, + { + "include": "#expression" + } + ] + }, + { + "begin": "\\b(?<!\\.)(import)\\b", + "end": "$", + "beginCaptures": { + "1": { + "name": "keyword.control.import.python" + } + }, + "patterns": [ + { + "name": "keyword.control.import.python", + "match": "\\b(?<!\\.)as\\b" + }, + { + "include": "#expression" + } + ] + } + ] + }, + "class-declaration": { + "patterns": [ + { + "name": "meta.class.python", + "begin": "(?x)\n \\s*(class)\\s+\n (?=\n [[:alpha:]_]\\w* \\s* (:|\\()\n )\n", + "end": "(:)", + "beginCaptures": { + "1": { + "name": "storage.type.class.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.section.class.begin.python" + } + }, + "patterns": [ + { + "include": "#class-name" + }, + { + "include": "#class-inheritance" + } + ] + } + ] + }, + "class-name": { + "patterns": [ + { + "include": "#illegal-object-name" + }, + { + "include": "#builtin-possible-callables" + }, + { + "name": "entity.name.type.class.python", + "match": "(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n" + } + ] + }, + "class-inheritance": { + "name": "meta.class.inheritance.python", + "begin": "(\\()", + "end": "(\\))", + "beginCaptures": { + "1": { + "name": "punctuation.definition.inheritance.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.inheritance.end.python" + } + }, + "patterns": [ + { + "name": "keyword.operator.unpacking.arguments.python", + "match": "(\\*\\*|\\*)" + }, + { + "name": "punctuation.separator.inheritance.python", + "match": "," + }, + { + "name": "keyword.operator.assignment.python", + "match": "=(?!=)" + }, + { + "name": "support.type.metaclass.python", + "match": "\\bmetaclass\\b" + }, + { + "include": "#illegal-names" + }, + { + "include": "#class-kwarg" + }, + { + "include": "#call-wrapper-inheritance" + }, + { + "include": "#expression-base" + }, + { + "include": "#member-access-class" + }, + { + "include": "#inheritance-identifier" + } + ] + }, + "class-kwarg": { + "match": "(?x)\n \\b ([[:alpha:]_]\\w*) \\s*(=)(?!=)\n", + "captures": { + "1": { + "name": "entity.other.inherited-class.python variable.parameter.class.python" + }, + "2": { + "name": "keyword.operator.assignment.python" + } + } + }, + "inheritance-identifier": { + "match": "(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n", + "captures": { + "1": { + "name": "entity.other.inherited-class.python" + } + } + }, + "member-access-class": { + "name": "meta.member.access.python", + "begin": "(\\.)\\s*(?!\\.)", + "end": "(?<=\\S)(?=\\W)|$", + "beginCaptures": { + "1": { + "name": "punctuation.separator.period.python" + } + }, + "patterns": [ + { + "include": "#call-wrapper-inheritance" + }, + { + "include": "#member-access-base" + }, + { + "include": "#inheritance-identifier" + } + ] + }, + "lambda": { + "patterns": [ + { + "match": "((?<=\\.)lambda|lambda(?=\\s*[\\.=]))", + "captures": { + "1": { + "name": "keyword.control.flow.python" + } + } + }, + { + "match": "\\b(lambda)\\s*?(?=[,\\n]|$)", + "captures": { + "1": { + "name": "storage.type.function.lambda.python" + } + } + }, + { + "name": "meta.lambda-function.python", + "begin": "(?x)\n \\b (lambda) \\b\n", + "end": "(:)|(\\n)", + "beginCaptures": { + "1": { + "name": "storage.type.function.lambda.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.section.function.lambda.begin.python" + } + }, + "contentName": "meta.function.lambda.parameters.python", + "patterns": [ + { + "name": "keyword.operator.positional.parameter.python", + "match": "/" + }, + { + "name": "keyword.operator.unpacking.parameter.python", + "match": "(\\*\\*|\\*)" + }, + { + "include": "#lambda-nested-incomplete" + }, + { + "include": "#illegal-names" + }, + { + "match": "([[:alpha:]_]\\w*)\\s*(?:(,)|(?=:|$))", + "captures": { + "1": { + "name": "variable.parameter.function.language.python" + }, + "2": { + "name": "punctuation.separator.parameters.python" + } + } + }, + { + "include": "#comments" + }, + { + "include": "#backticks" + }, + { + "include": "#illegal-anno" + }, + { + "include": "#lambda-parameter-with-default" + }, + { + "include": "#line-continuation" + }, + { + "include": "#illegal-operator" + } + ] + } + ] + }, + "lambda-incomplete": { + "name": "storage.type.function.lambda.python", + "match": "\\blambda(?=\\s*[,)])" + }, + "lambda-nested-incomplete": { + "name": "storage.type.function.lambda.python", + "match": "\\blambda(?=\\s*[:,)])" + }, + "lambda-parameter-with-default": { + "begin": "(?x)\n \\b\n ([[:alpha:]_]\\w*) \\s* (=)\n", + "end": "(,)|(?=:|$)", + "beginCaptures": { + "1": { + "name": "variable.parameter.function.language.python" + }, + "2": { + "name": "keyword.operator.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.separator.parameters.python" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + "generator": { + "comment": "Match \"for ... in\" construct used in generators and for loops to\ncorrectly identify the \"in\" as a control flow keyword.\n", + "begin": "\\bfor\\b", + "beginCaptures": { + "0": { + "name": "keyword.control.flow.python" + } + }, + "end": "\\bin\\b", + "endCaptures": { + "0": { + "name": "keyword.control.flow.python" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + "function-declaration": { + "name": "meta.function.python", + "begin": "(?x)\n \\s*\n (?:\\b(async) \\s+)? \\b(def)\\s+\n (?=\n [[:alpha:]_][[:word:]]* \\s* \\(\n )\n", + "end": "(:|(?=[#'\"\\n]))", + "beginCaptures": { + "1": { + "name": "storage.type.function.async.python" + }, + "2": { + "name": "storage.type.function.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.section.function.begin.python" + } + }, + "patterns": [ + { + "include": "#function-def-name" + }, + { + "include": "#parameters" + }, + { + "include": "#line-continuation" + }, + { + "include": "#return-annotation" + } + ] + }, + "function-def-name": { + "patterns": [ + { + "include": "#illegal-object-name" + }, + { + "include": "#builtin-possible-callables" + }, + { + "name": "entity.name.function.python", + "match": "(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n" + } + ] + }, + "parameters": { + "name": "meta.function.parameters.python", + "begin": "(\\()", + "end": "(\\))", + "beginCaptures": { + "1": { + "name": "punctuation.definition.parameters.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.parameters.end.python" + } + }, + "patterns": [ + { + "name": "keyword.operator.positional.parameter.python", + "match": "/" + }, + { + "name": "keyword.operator.unpacking.parameter.python", + "match": "(\\*\\*|\\*)" + }, + { + "include": "#lambda-incomplete" + }, + { + "include": "#illegal-names" + }, + { + "include": "#illegal-object-name" + }, + { + "include": "#parameter-special" + }, + { + "match": "(?x)\n ([[:alpha:]_]\\w*)\n \\s* (?: (,) | (?=[)#\\n=]))\n", + "captures": { + "1": { + "name": "variable.parameter.function.language.python" + }, + "2": { + "name": "punctuation.separator.parameters.python" + } + } + }, + { + "include": "#comments" + }, + { + "include": "#loose-default" + }, + { + "include": "#annotated-parameter" + } + ] + }, + "parameter-special": { + "match": "(?x)\n \\b ((self)|(cls)) \\b \\s*(?:(,)|(?=\\)))\n", + "captures": { + "1": { + "name": "variable.parameter.function.language.python" + }, + "2": { + "name": "variable.parameter.function.language.special.self.python" + }, + "3": { + "name": "variable.parameter.function.language.special.cls.python" + }, + "4": { + "name": "punctuation.separator.parameters.python" + } + } + }, + "loose-default": { + "begin": "(=)", + "end": "(,)|(?=\\))", + "beginCaptures": { + "1": { + "name": "keyword.operator.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.separator.parameters.python" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + "annotated-parameter": { + "begin": "(?x)\n \\b\n ([[:alpha:]_]\\w*) \\s* (:)\n", + "end": "(,)|(?=\\))", + "beginCaptures": { + "1": { + "name": "variable.parameter.function.language.python" + }, + "2": { + "name": "punctuation.separator.annotation.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.separator.parameters.python" + } + }, + "patterns": [ + { + "include": "#expression" + }, + { + "name": "keyword.operator.assignment.python", + "match": "=(?!=)" + } + ] + }, + "return-annotation": { + "begin": "(->)", + "end": "(?=:)", + "beginCaptures": { + "1": { + "name": "punctuation.separator.annotation.result.python" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + "item-access": { + "patterns": [ + { + "name": "meta.item-access.python", + "begin": "(?x)\n \\b(?=\n [[:alpha:]_]\\w* \\s* \\[\n )\n", + "end": "(\\])", + "endCaptures": { + "1": { + "name": "punctuation.definition.arguments.end.python" + } + }, + "patterns": [ + { + "include": "#item-name" + }, + { + "include": "#item-index" + }, + { + "include": "#expression" + } + ] + } + ] + }, + "item-name": { + "patterns": [ + { + "include": "#special-variables" + }, + { + "include": "#builtin-functions" + }, + { + "include": "#special-names" + }, + { + "name": "meta.indexed-name.python", + "match": "(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n" + } + ] + }, + "item-index": { + "begin": "(\\[)", + "end": "(?=\\])", + "beginCaptures": { + "1": { + "name": "punctuation.definition.arguments.begin.python" + } + }, + "contentName": "meta.item-access.arguments.python", + "patterns": [ + { + "name": "punctuation.separator.slice.python", + "match": ":" + }, + { + "include": "#expression" + } + ] + }, + "decorator": { + "name": "meta.function.decorator.python", + "begin": "(?x)\n ^\\s*\n ((@)) \\s* (?=[[:alpha:]_]\\w*)\n", + "end": "(?x)\n ( \\) )\n # trailing whitespace and comments are legal\n (?: (.*?) (?=\\s*(?:\\#|$)) )\n | (?=\\n|\\#)\n", + "beginCaptures": { + "1": { + "name": "entity.name.function.decorator.python" + }, + "2": { + "name": "punctuation.definition.decorator.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.arguments.end.python" + }, + "2": { + "name": "invalid.illegal.decorator.python" + } + }, + "patterns": [ + { + "include": "#decorator-name" + }, + { + "include": "#function-arguments" + } + ] + }, + "decorator-name": { + "patterns": [ + { + "include": "#builtin-callables" + }, + { + "include": "#illegal-object-name" + }, + { + "name": "entity.name.function.decorator.python", + "match": "(?x)\n ([[:alpha:]_]\\w*) | (\\.)\n", + "captures": { + "2": { + "name": "punctuation.separator.period.python" + } + } + }, + { + "include": "#line-continuation" + }, + { + "name": "invalid.illegal.decorator.python", + "match": "(?x)\n \\s* ([^([:alpha:]\\s_\\.#\\\\] .*?) (?=\\#|$)\n", + "captures": { + "1": { + "name": "invalid.illegal.decorator.python" + } + } + } + ] + }, + "call-wrapper-inheritance": { + "comment": "same as a function call, but in inheritance context", + "name": "meta.function-call.python", + "begin": "(?x)\n \\b(?=\n ([[:alpha:]_]\\w*) \\s* (\\()\n )\n", + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.definition.arguments.end.python" + } + }, + "patterns": [ + { + "include": "#inheritance-name" + }, + { + "include": "#function-arguments" + } + ] + }, + "inheritance-name": { + "patterns": [ + { + "include": "#lambda-incomplete" + }, + { + "include": "#builtin-possible-callables" + }, + { + "include": "#inheritance-identifier" + } + ] + }, + "function-call": { + "name": "meta.function-call.python", + "comment": "Regular function call of the type \"name(args)\"", + "begin": "(?x)\n \\b(?=\n ([[:alpha:]_]\\w*) \\s* (\\()\n )\n", + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.definition.arguments.end.python" + } + }, + "patterns": [ + { + "include": "#special-variables" + }, + { + "include": "#function-name" + }, + { + "include": "#function-arguments" + } + ] + }, + "function-name": { + "patterns": [ + { + "include": "#builtin-possible-callables" + }, + { + "comment": "Some color schemas support meta.function-call.generic scope", + "name": "meta.function-call.generic.python", + "match": "(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n" + } + ] + }, + "function-arguments": { + "begin": "(\\()", + "end": "(?=\\))(?!\\)\\s*\\()", + "beginCaptures": { + "1": { + "name": "punctuation.definition.arguments.begin.python" + } + }, + "contentName": "meta.function-call.arguments.python", + "patterns": [ + { + "name": "punctuation.separator.arguments.python", + "match": "(,)" + }, + { + "match": "(?x)\n (?:(?<=[,(])|^) \\s* (\\*{1,2})\n", + "captures": { + "1": { + "name": "keyword.operator.unpacking.arguments.python" + } + } + }, + { + "include": "#lambda-incomplete" + }, + { + "include": "#illegal-names" + }, + { + "match": "\\b([[:alpha:]_]\\w*)\\s*(=)(?!=)", + "captures": { + "1": { + "name": "variable.parameter.function-call.python" + }, + "2": { + "name": "keyword.operator.assignment.python" + } + } + }, + { + "name": "keyword.operator.assignment.python", + "match": "=(?!=)" + }, + { + "include": "#expression" + }, + { + "match": "\\s*(\\))\\s*(\\()", + "captures": { + "1": { + "name": "punctuation.definition.arguments.end.python" + }, + "2": { + "name": "punctuation.definition.arguments.begin.python" + } + } + } + ] + }, + "builtin-callables": { + "patterns": [ + { + "include": "#illegal-names" + }, + { + "include": "#illegal-object-name" + }, + { + "include": "#builtin-exceptions" + }, + { + "include": "#builtin-functions" + }, + { + "include": "#builtin-types" + } + ] + }, + "builtin-possible-callables": { + "patterns": [ + { + "include": "#builtin-callables" + }, + { + "include": "#magic-names" + } + ] + }, + "builtin-exceptions": { + "name": "support.type.exception.python", + "match": "(?x) (?<!\\.) \\b(\n (\n Arithmetic | Assertion | Attribute | Buffer | BlockingIO\n | BrokenPipe | ChildProcess\n | (Connection (Aborted | Refused | Reset)?)\n | EOF | Environment | FileExists | FileNotFound\n | FloatingPoint | IO | Import | Indentation | Index | Interrupted\n | IsADirectory | NotADirectory | Permission | ProcessLookup\n | Timeout\n | Key | Lookup | Memory | Name | NotImplemented | OS | Overflow\n | Reference | Runtime | Recursion | Syntax | System\n | Tab | Type | UnboundLocal | Unicode(Encode|Decode|Translate)?\n | Value | Windows | ZeroDivision | ModuleNotFound\n ) Error\n|\n ((Pending)?Deprecation | Runtime | Syntax | User | Future | Import\n | Unicode | Bytes | Resource\n )? Warning\n|\n SystemExit | Stop(Async)?Iteration\n | KeyboardInterrupt\n | GeneratorExit | (Base)?Exception\n)\\b\n" + }, + "builtin-functions": { + "patterns": [ + { + "name": "support.function.builtin.python", + "match": "(?x)\n (?<!\\.) \\b(\n __import__ | abs | aiter | all | any | anext | ascii | bin\n | breakpoint | callable | chr | compile | copyright | credits\n | delattr | dir | divmod | enumerate | eval | exec | exit\n | filter | format | getattr | globals | hasattr | hash | help\n | hex | id | input | isinstance | issubclass | iter | len\n | license | locals | map | max | memoryview | min | next\n | oct | open | ord | pow | print | quit | range | reload | repr\n | reversed | round | setattr | sorted | sum | vars | zip\n )\\b\n" + }, + { + "name": "variable.legacy.builtin.python", + "match": "(?x)\n (?<!\\.) \\b(\n file | reduce | intern | raw_input | unicode | cmp | basestring\n | execfile | long | xrange\n )\\b\n" + } + ] + }, + "builtin-types": { + "name": "support.type.python", + "match": "(?x)\n (?<!\\.) \\b(\n bool | bytearray | bytes | classmethod | complex | dict\n | float | frozenset | int | list | object | property\n | set | slice | staticmethod | str | tuple | type\n\n (?# Although 'super' is not a type, it's related to types,\n and is special enough to be highlighted differently from\n other built-ins)\n | super\n )\\b\n" + }, + "magic-function-names": { + "comment": "these methods have magic interpretation by python and are generally called\nindirectly through syntactic constructs\n", + "match": "(?x)\n \\b(\n __(?:\n abs | add | aenter | aexit | aiter | and | anext\n | await | bool | call | ceil | class_getitem\n | cmp | coerce | complex | contains | copy\n | deepcopy | del | delattr | delete | delitem\n | delslice | dir | div | divmod | enter | eq\n | exit | float | floor | floordiv | format | ge\n | get | getattr | getattribute | getinitargs\n | getitem | getnewargs | getslice | getstate | gt\n | hash | hex | iadd | iand | idiv | ifloordiv |\n | ilshift | imod | imul | index | init\n | instancecheck | int | invert | ior | ipow\n | irshift | isub | iter | itruediv | ixor | le\n | len | long | lshift | lt | missing | mod | mul\n | ne | neg | new | next | nonzero | oct | or | pos\n | pow | radd | rand | rdiv | rdivmod | reduce\n | reduce_ex | repr | reversed | rfloordiv |\n | rlshift | rmod | rmul | ror | round | rpow\n | rrshift | rshift | rsub | rtruediv | rxor | set\n | setattr | setitem | set_name | setslice\n | setstate | sizeof | str | sub | subclasscheck\n | truediv | trunc | unicode | xor | matmul\n | rmatmul | imatmul | init_subclass | set_name\n | fspath | bytes | prepare | length_hint\n )__\n )\\b\n", + "captures": { + "1": { + "name": "support.function.magic.python" + } + } + }, + "magic-variable-names": { + "comment": "magic variables which a class/module may have.", + "match": "(?x)\n \\b(\n __(?:\n all | annotations | bases | builtins | class\n | closure | code | debug | defaults | dict | doc | file | func\n | globals | kwdefaults | match_args | members | metaclass | methods\n | module | mro | mro_entries | name | qualname | post_init | self\n | signature | slots | subclasses | version | weakref | wrapped\n | classcell | spec | path | package | future | traceback\n )__\n )\\b\n", + "captures": { + "1": { + "name": "support.variable.magic.python" + } + } + }, + "magic-names": { + "patterns": [ + { + "include": "#magic-function-names" + }, + { + "include": "#magic-variable-names" + } + ] + }, + "illegal-names": { + "match": "(?x)\n \\b(?:\n (\n and | assert | async | await | break | class | continue | def\n | del | elif | else | except | finally | for | from | global\n | if | in | is | (?<=\\.)lambda | lambda(?=\\s*[\\.=])\n | nonlocal | not | or | pass | raise | return | try | while | with\n | yield\n ) | (\n as | import\n )\n )\\b\n", + "captures": { + "1": { + "name": "keyword.control.flow.python" + }, + "2": { + "name": "keyword.control.import.python" + } + } + }, + "special-variables": { + "match": "(?x)\n \\b (?<!\\.) (?:\n (self) | (cls)\n )\\b\n", + "captures": { + "1": { + "name": "variable.language.special.self.python" + }, + "2": { + "name": "variable.language.special.cls.python" + } + } + }, + "ellipsis": { + "name": "constant.other.ellipsis.python", + "match": "\\.\\.\\." + }, + "backticks": { + "name": "invalid.deprecated.backtick.python", + "begin": "\\`", + "end": "(?:\\`|(?<!\\\\)(\\n))", + "patterns": [ + { + "include": "#expression" + } + ] + }, + "illegal-operator": { + "patterns": [ + { + "name": "invalid.illegal.operator.python", + "match": "&&|\\|\\||--|\\+\\+" + }, + { + "name": "invalid.illegal.operator.python", + "match": "[?$]" + }, + { + "name": "invalid.illegal.operator.python", + "comment": "We don't want `!` to flash when we're typing `!=`", + "match": "!\\b" + } + ] + }, + "illegal-object-name": { + "comment": "It's illegal to name class or function \"True\"", + "name": "keyword.illegal.name.python", + "match": "\\b(True|False|None)\\b" + }, + "illegal-anno": { + "name": "invalid.illegal.annotation.python", + "match": "->" + }, + "regexp-base-expression": { + "patterns": [ + { + "include": "#regexp-quantifier" + }, + { + "include": "#regexp-base-common" + } + ] + }, + "fregexp-base-expression": { + "patterns": [ + { + "include": "#fregexp-quantifier" + }, + { + "include": "#fstring-formatting-braces" + }, + { + "match": "\\{.*?\\}" + }, + { + "include": "#regexp-base-common" + } + ] + }, + "fstring-formatting-braces": { + "patterns": [ + { + "comment": "empty braces are illegal", + "match": "({)(\\s*?)(})", + "captures": { + "1": { + "name": "constant.character.format.placeholder.other.python" + }, + "2": { + "name": "invalid.illegal.brace.python" + }, + "3": { + "name": "constant.character.format.placeholder.other.python" + } + } + }, + { + "name": "constant.character.escape.python", + "match": "({{|}})" + } + ] + }, + "regexp-base-common": { + "patterns": [ + { + "name": "support.other.match.any.regexp", + "match": "\\." + }, + { + "name": "support.other.match.begin.regexp", + "match": "\\^" + }, + { + "name": "support.other.match.end.regexp", + "match": "\\$" + }, + { + "name": "keyword.operator.quantifier.regexp", + "match": "[+*?]\\??" + }, + { + "name": "keyword.operator.disjunction.regexp", + "match": "\\|" + }, + { + "include": "#regexp-escape-sequence" + } + ] + }, + "regexp-quantifier": { + "name": "keyword.operator.quantifier.regexp", + "match": "(?x)\n \\{(\n \\d+ | \\d+,(\\d+)? | ,\\d+\n )\\}\n" + }, + "fregexp-quantifier": { + "name": "keyword.operator.quantifier.regexp", + "match": "(?x)\n \\{\\{(\n \\d+ | \\d+,(\\d+)? | ,\\d+\n )\\}\\}\n" + }, + "regexp-backreference-number": { + "name": "meta.backreference.regexp", + "match": "(\\\\[1-9]\\d?)", + "captures": { + "1": { + "name": "entity.name.tag.backreference.regexp" + } + } + }, + "regexp-backreference": { + "name": "meta.backreference.named.regexp", + "match": "(?x)\n (\\() (\\?P= \\w+(?:\\s+[[:alnum:]]+)?) (\\))\n", + "captures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.begin.regexp" + }, + "2": { + "name": "entity.name.tag.named.backreference.regexp" + }, + "3": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.end.regexp" + } + } + }, + "regexp-flags": { + "name": "storage.modifier.flag.regexp", + "match": "\\(\\?[aiLmsux]+\\)" + }, + "regexp-escape-special": { + "name": "support.other.escape.special.regexp", + "match": "\\\\([AbBdDsSwWZ])" + }, + "regexp-escape-character": { + "name": "constant.character.escape.regexp", + "match": "(?x)\n \\\\ (\n x[0-9A-Fa-f]{2}\n | 0[0-7]{1,2}\n | [0-7]{3}\n )\n" + }, + "regexp-escape-unicode": { + "name": "constant.character.unicode.regexp", + "match": "(?x)\n \\\\ (\n u[0-9A-Fa-f]{4}\n | U[0-9A-Fa-f]{8}\n )\n" + }, + "regexp-escape-catchall": { + "name": "constant.character.escape.regexp", + "match": "\\\\(.|\\n)" + }, + "regexp-escape-sequence": { + "patterns": [ + { + "include": "#regexp-escape-special" + }, + { + "include": "#regexp-escape-character" + }, + { + "include": "#regexp-escape-unicode" + }, + { + "include": "#regexp-backreference-number" + }, + { + "include": "#regexp-escape-catchall" + } + ] + }, + "regexp-charecter-set-escapes": { + "patterns": [ + { + "name": "constant.character.escape.regexp", + "match": "\\\\[abfnrtv\\\\]" + }, + { + "include": "#regexp-escape-special" + }, + { + "name": "constant.character.escape.regexp", + "match": "\\\\([0-7]{1,3})" + }, + { + "include": "#regexp-escape-character" + }, + { + "include": "#regexp-escape-unicode" + }, + { + "include": "#regexp-escape-catchall" + } + ] + }, + "codetags": { + "match": "(?:\\b(NOTE|XXX|HACK|FIXME|BUG|TODO)\\b)", + "captures": { + "1": { + "name": "keyword.codetag.notation.python" + } + } + }, + "comments-base": { + "name": "comment.line.number-sign.python", + "begin": "(\\#)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.python" + } + }, + "end": "($)", + "patterns": [ + { + "include": "#codetags" + } + ] + }, + "comments-string-single-three": { + "name": "comment.line.number-sign.python", + "begin": "(\\#)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.python" + } + }, + "end": "($|(?='''))", + "patterns": [ + { + "include": "#codetags" + } + ] + }, + "comments-string-double-three": { + "name": "comment.line.number-sign.python", + "begin": "(\\#)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.python" + } + }, + "end": "($|(?=\"\"\"))", + "patterns": [ + { + "include": "#codetags" + } + ] + }, + "single-one-regexp-expression": { + "patterns": [ + { + "include": "#regexp-base-expression" + }, + { + "include": "#single-one-regexp-character-set" + }, + { + "include": "#single-one-regexp-comments" + }, + { + "include": "#regexp-flags" + }, + { + "include": "#single-one-regexp-named-group" + }, + { + "include": "#regexp-backreference" + }, + { + "include": "#single-one-regexp-lookahead" + }, + { + "include": "#single-one-regexp-lookahead-negative" + }, + { + "include": "#single-one-regexp-lookbehind" + }, + { + "include": "#single-one-regexp-lookbehind-negative" + }, + { + "include": "#single-one-regexp-conditional" + }, + { + "include": "#single-one-regexp-parentheses-non-capturing" + }, + { + "include": "#single-one-regexp-parentheses" + } + ] + }, + "single-one-regexp-character-set": { + "patterns": [ + { + "match": "(?x)\n \\[ \\^? \\] (?! .*?\\])\n" + }, + { + "name": "meta.character.set.regexp", + "begin": "(\\[)(\\^)?(\\])?", + "end": "(\\]|(?=\\'))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "1": { + "name": "punctuation.character.set.begin.regexp constant.other.set.regexp" + }, + "2": { + "name": "keyword.operator.negation.regexp" + }, + "3": { + "name": "constant.character.set.regexp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.character.set.end.regexp constant.other.set.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#regexp-charecter-set-escapes" + }, + { + "name": "constant.character.set.regexp", + "match": "[^\\n]" + } + ] + } + ] + }, + "single-one-regexp-named-group": { + "name": "meta.named.regexp", + "begin": "(?x)\n (\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n", + "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp" + }, + "2": { + "name": "entity.name.tag.named.group.regexp" + } + }, + "endCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-one-regexp-expression" + } + ] + }, + "single-one-regexp-comments": { + "name": "comment.regexp", + "begin": "\\(\\?#", + "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "punctuation.comment.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.comment.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#codetags" + } + ] + }, + "single-one-regexp-lookahead": { + "begin": "(\\()\\?=", + "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookahead.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookahead.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-one-regexp-expression" + } + ] + }, + "single-one-regexp-lookahead-negative": { + "begin": "(\\()\\?!", + "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookahead.negative.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookahead.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-one-regexp-expression" + } + ] + }, + "single-one-regexp-lookbehind": { + "begin": "(\\()\\?<=", + "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookbehind.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookbehind.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-one-regexp-expression" + } + ] + }, + "single-one-regexp-lookbehind-negative": { + "begin": "(\\()\\?<!", + "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookbehind.negative.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookbehind.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-one-regexp-expression" + } + ] + }, + "single-one-regexp-conditional": { + "begin": "(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)", + "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "keyword.operator.conditional.regexp" + }, + "1": { + "name": "punctuation.parenthesis.conditional.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-one-regexp-expression" + } + ] + }, + "single-one-regexp-parentheses-non-capturing": { + "begin": "\\(\\?:", + "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-one-regexp-expression" + } + ] + }, + "single-one-regexp-parentheses": { + "begin": "\\(", + "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-one-regexp-expression" + } + ] + }, + "single-three-regexp-expression": { + "patterns": [ + { + "include": "#regexp-base-expression" + }, + { + "include": "#single-three-regexp-character-set" + }, + { + "include": "#single-three-regexp-comments" + }, + { + "include": "#regexp-flags" + }, + { + "include": "#single-three-regexp-named-group" + }, + { + "include": "#regexp-backreference" + }, + { + "include": "#single-three-regexp-lookahead" + }, + { + "include": "#single-three-regexp-lookahead-negative" + }, + { + "include": "#single-three-regexp-lookbehind" + }, + { + "include": "#single-three-regexp-lookbehind-negative" + }, + { + "include": "#single-three-regexp-conditional" + }, + { + "include": "#single-three-regexp-parentheses-non-capturing" + }, + { + "include": "#single-three-regexp-parentheses" + }, + { + "include": "#comments-string-single-three" + } + ] + }, + "single-three-regexp-character-set": { + "patterns": [ + { + "match": "(?x)\n \\[ \\^? \\] (?! .*?\\])\n" + }, + { + "name": "meta.character.set.regexp", + "begin": "(\\[)(\\^)?(\\])?", + "end": "(\\]|(?=\\'\\'\\'))", + "beginCaptures": { + "1": { + "name": "punctuation.character.set.begin.regexp constant.other.set.regexp" + }, + "2": { + "name": "keyword.operator.negation.regexp" + }, + "3": { + "name": "constant.character.set.regexp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.character.set.end.regexp constant.other.set.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#regexp-charecter-set-escapes" + }, + { + "name": "constant.character.set.regexp", + "match": "[^\\n]" + } + ] + } + ] + }, + "single-three-regexp-named-group": { + "name": "meta.named.regexp", + "begin": "(?x)\n (\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n", + "end": "(\\)|(?=\\'\\'\\'))", + "beginCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp" + }, + "2": { + "name": "entity.name.tag.named.group.regexp" + } + }, + "endCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-three-regexp-expression" + }, + { + "include": "#comments-string-single-three" + } + ] + }, + "single-three-regexp-comments": { + "name": "comment.regexp", + "begin": "\\(\\?#", + "end": "(\\)|(?=\\'\\'\\'))", + "beginCaptures": { + "0": { + "name": "punctuation.comment.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.comment.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#codetags" + } + ] + }, + "single-three-regexp-lookahead": { + "begin": "(\\()\\?=", + "end": "(\\)|(?=\\'\\'\\'))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookahead.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookahead.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-three-regexp-expression" + }, + { + "include": "#comments-string-single-three" + } + ] + }, + "single-three-regexp-lookahead-negative": { + "begin": "(\\()\\?!", + "end": "(\\)|(?=\\'\\'\\'))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookahead.negative.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookahead.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-three-regexp-expression" + }, + { + "include": "#comments-string-single-three" + } + ] + }, + "single-three-regexp-lookbehind": { + "begin": "(\\()\\?<=", + "end": "(\\)|(?=\\'\\'\\'))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookbehind.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookbehind.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-three-regexp-expression" + }, + { + "include": "#comments-string-single-three" + } + ] + }, + "single-three-regexp-lookbehind-negative": { + "begin": "(\\()\\?<!", + "end": "(\\)|(?=\\'\\'\\'))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookbehind.negative.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookbehind.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-three-regexp-expression" + }, + { + "include": "#comments-string-single-three" + } + ] + }, + "single-three-regexp-conditional": { + "begin": "(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)", + "end": "(\\)|(?=\\'\\'\\'))", + "beginCaptures": { + "0": { + "name": "keyword.operator.conditional.regexp" + }, + "1": { + "name": "punctuation.parenthesis.conditional.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-three-regexp-expression" + }, + { + "include": "#comments-string-single-three" + } + ] + }, + "single-three-regexp-parentheses-non-capturing": { + "begin": "\\(\\?:", + "end": "(\\)|(?=\\'\\'\\'))", + "beginCaptures": { + "0": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-three-regexp-expression" + }, + { + "include": "#comments-string-single-three" + } + ] + }, + "single-three-regexp-parentheses": { + "begin": "\\(", + "end": "(\\)|(?=\\'\\'\\'))", + "beginCaptures": { + "0": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-three-regexp-expression" + }, + { + "include": "#comments-string-single-three" + } + ] + }, + "double-one-regexp-expression": { + "patterns": [ + { + "include": "#regexp-base-expression" + }, + { + "include": "#double-one-regexp-character-set" + }, + { + "include": "#double-one-regexp-comments" + }, + { + "include": "#regexp-flags" + }, + { + "include": "#double-one-regexp-named-group" + }, + { + "include": "#regexp-backreference" + }, + { + "include": "#double-one-regexp-lookahead" + }, + { + "include": "#double-one-regexp-lookahead-negative" + }, + { + "include": "#double-one-regexp-lookbehind" + }, + { + "include": "#double-one-regexp-lookbehind-negative" + }, + { + "include": "#double-one-regexp-conditional" + }, + { + "include": "#double-one-regexp-parentheses-non-capturing" + }, + { + "include": "#double-one-regexp-parentheses" + } + ] + }, + "double-one-regexp-character-set": { + "patterns": [ + { + "match": "(?x)\n \\[ \\^? \\] (?! .*?\\])\n" + }, + { + "name": "meta.character.set.regexp", + "begin": "(\\[)(\\^)?(\\])?", + "end": "(\\]|(?=\"))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "1": { + "name": "punctuation.character.set.begin.regexp constant.other.set.regexp" + }, + "2": { + "name": "keyword.operator.negation.regexp" + }, + "3": { + "name": "constant.character.set.regexp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.character.set.end.regexp constant.other.set.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#regexp-charecter-set-escapes" + }, + { + "name": "constant.character.set.regexp", + "match": "[^\\n]" + } + ] + } + ] + }, + "double-one-regexp-named-group": { + "name": "meta.named.regexp", + "begin": "(?x)\n (\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n", + "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp" + }, + "2": { + "name": "entity.name.tag.named.group.regexp" + } + }, + "endCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-one-regexp-expression" + } + ] + }, + "double-one-regexp-comments": { + "name": "comment.regexp", + "begin": "\\(\\?#", + "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "punctuation.comment.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.comment.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#codetags" + } + ] + }, + "double-one-regexp-lookahead": { + "begin": "(\\()\\?=", + "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookahead.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookahead.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-one-regexp-expression" + } + ] + }, + "double-one-regexp-lookahead-negative": { + "begin": "(\\()\\?!", + "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookahead.negative.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookahead.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-one-regexp-expression" + } + ] + }, + "double-one-regexp-lookbehind": { + "begin": "(\\()\\?<=", + "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookbehind.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookbehind.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-one-regexp-expression" + } + ] + }, + "double-one-regexp-lookbehind-negative": { + "begin": "(\\()\\?<!", + "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookbehind.negative.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookbehind.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-one-regexp-expression" + } + ] + }, + "double-one-regexp-conditional": { + "begin": "(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)", + "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "keyword.operator.conditional.regexp" + }, + "1": { + "name": "punctuation.parenthesis.conditional.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-one-regexp-expression" + } + ] + }, + "double-one-regexp-parentheses-non-capturing": { + "begin": "\\(\\?:", + "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-one-regexp-expression" + } + ] + }, + "double-one-regexp-parentheses": { + "begin": "\\(", + "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-one-regexp-expression" + } + ] + }, + "double-three-regexp-expression": { + "patterns": [ + { + "include": "#regexp-base-expression" + }, + { + "include": "#double-three-regexp-character-set" + }, + { + "include": "#double-three-regexp-comments" + }, + { + "include": "#regexp-flags" + }, + { + "include": "#double-three-regexp-named-group" + }, + { + "include": "#regexp-backreference" + }, + { + "include": "#double-three-regexp-lookahead" + }, + { + "include": "#double-three-regexp-lookahead-negative" + }, + { + "include": "#double-three-regexp-lookbehind" + }, + { + "include": "#double-three-regexp-lookbehind-negative" + }, + { + "include": "#double-three-regexp-conditional" + }, + { + "include": "#double-three-regexp-parentheses-non-capturing" + }, + { + "include": "#double-three-regexp-parentheses" + }, + { + "include": "#comments-string-double-three" + } + ] + }, + "double-three-regexp-character-set": { + "patterns": [ + { + "match": "(?x)\n \\[ \\^? \\] (?! .*?\\])\n" + }, + { + "name": "meta.character.set.regexp", + "begin": "(\\[)(\\^)?(\\])?", + "end": "(\\]|(?=\"\"\"))", + "beginCaptures": { + "1": { + "name": "punctuation.character.set.begin.regexp constant.other.set.regexp" + }, + "2": { + "name": "keyword.operator.negation.regexp" + }, + "3": { + "name": "constant.character.set.regexp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.character.set.end.regexp constant.other.set.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#regexp-charecter-set-escapes" + }, + { + "name": "constant.character.set.regexp", + "match": "[^\\n]" + } + ] + } + ] + }, + "double-three-regexp-named-group": { + "name": "meta.named.regexp", + "begin": "(?x)\n (\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n", + "end": "(\\)|(?=\"\"\"))", + "beginCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp" + }, + "2": { + "name": "entity.name.tag.named.group.regexp" + } + }, + "endCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-three-regexp-expression" + }, + { + "include": "#comments-string-double-three" + } + ] + }, + "double-three-regexp-comments": { + "name": "comment.regexp", + "begin": "\\(\\?#", + "end": "(\\)|(?=\"\"\"))", + "beginCaptures": { + "0": { + "name": "punctuation.comment.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.comment.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#codetags" + } + ] + }, + "double-three-regexp-lookahead": { + "begin": "(\\()\\?=", + "end": "(\\)|(?=\"\"\"))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookahead.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookahead.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-three-regexp-expression" + }, + { + "include": "#comments-string-double-three" + } + ] + }, + "double-three-regexp-lookahead-negative": { + "begin": "(\\()\\?!", + "end": "(\\)|(?=\"\"\"))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookahead.negative.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookahead.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-three-regexp-expression" + }, + { + "include": "#comments-string-double-three" + } + ] + }, + "double-three-regexp-lookbehind": { + "begin": "(\\()\\?<=", + "end": "(\\)|(?=\"\"\"))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookbehind.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookbehind.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-three-regexp-expression" + }, + { + "include": "#comments-string-double-three" + } + ] + }, + "double-three-regexp-lookbehind-negative": { + "begin": "(\\()\\?<!", + "end": "(\\)|(?=\"\"\"))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookbehind.negative.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookbehind.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-three-regexp-expression" + }, + { + "include": "#comments-string-double-three" + } + ] + }, + "double-three-regexp-conditional": { + "begin": "(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)", + "end": "(\\)|(?=\"\"\"))", + "beginCaptures": { + "0": { + "name": "keyword.operator.conditional.regexp" + }, + "1": { + "name": "punctuation.parenthesis.conditional.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-three-regexp-expression" + }, + { + "include": "#comments-string-double-three" + } + ] + }, + "double-three-regexp-parentheses-non-capturing": { + "begin": "\\(\\?:", + "end": "(\\)|(?=\"\"\"))", + "beginCaptures": { + "0": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-three-regexp-expression" + }, + { + "include": "#comments-string-double-three" + } + ] + }, + "double-three-regexp-parentheses": { + "begin": "\\(", + "end": "(\\)|(?=\"\"\"))", + "beginCaptures": { + "0": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-three-regexp-expression" + }, + { + "include": "#comments-string-double-three" + } + ] + }, + "regexp-single-one-line": { + "name": "string.regexp.quoted.single.python", + "begin": "\\b(([uU]r)|([bB]r)|(r[bB]?))(\\')", + "end": "(\\')|(?<!\\\\)(\\n)", + "beginCaptures": { + "2": { + "name": "invalid.deprecated.prefix.python" + }, + "3": { + "name": "storage.type.string.python" + }, + "4": { + "name": "storage.type.string.python" + }, + "5": { + "name": "punctuation.definition.string.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-one-regexp-expression" + } + ] + }, + "regexp-single-three-line": { + "name": "string.regexp.quoted.multi.python", + "begin": "\\b(([uU]r)|([bB]r)|(r[bB]?))(\\'\\'\\')", + "end": "(\\'\\'\\')", + "beginCaptures": { + "2": { + "name": "invalid.deprecated.prefix.python" + }, + "3": { + "name": "storage.type.string.python" + }, + "4": { + "name": "storage.type.string.python" + }, + "5": { + "name": "punctuation.definition.string.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-three-regexp-expression" + } + ] + }, + "regexp-double-one-line": { + "name": "string.regexp.quoted.single.python", + "begin": "\\b(([uU]r)|([bB]r)|(r[bB]?))(\")", + "end": "(\")|(?<!\\\\)(\\n)", + "beginCaptures": { + "2": { + "name": "invalid.deprecated.prefix.python" + }, + "3": { + "name": "storage.type.string.python" + }, + "4": { + "name": "storage.type.string.python" + }, + "5": { + "name": "punctuation.definition.string.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-one-regexp-expression" + } + ] + }, + "regexp-double-three-line": { + "name": "string.regexp.quoted.multi.python", + "begin": "\\b(([uU]r)|([bB]r)|(r[bB]?))(\"\"\")", + "end": "(\"\"\")", + "beginCaptures": { + "2": { + "name": "invalid.deprecated.prefix.python" + }, + "3": { + "name": "storage.type.string.python" + }, + "4": { + "name": "storage.type.string.python" + }, + "5": { + "name": "punctuation.definition.string.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-three-regexp-expression" + } + ] + }, + "string-raw-quoted-single-line": { + "name": "string.quoted.raw.single.python", + "begin": "\\b(([uU]R)|(R))((['\"]))", + "end": "(\\4)|((?<!\\\\)\\n)", + "beginCaptures": { + "2": { + "name": "invalid.deprecated.prefix.python" + }, + "3": { + "name": "storage.type.string.python" + }, + "4": { + "name": "punctuation.definition.string.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#string-single-bad-brace1-formatting-raw" + }, + { + "include": "#string-single-bad-brace2-formatting-raw" + }, + { + "include": "#string-raw-guts" + } + ] + }, + "string-bin-quoted-single-line": { + "name": "string.quoted.binary.single.python", + "begin": "(\\b[bB])((['\"]))", + "end": "(\\2)|((?<!\\\\)\\n)", + "beginCaptures": { + "1": { + "name": "storage.type.string.python" + }, + "2": { + "name": "punctuation.definition.string.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#string-entity" + } + ] + }, + "string-raw-bin-quoted-single-line": { + "name": "string.quoted.raw.binary.single.python", + "begin": "(\\b(?:R[bB]|[bB]R))((['\"]))", + "end": "(\\2)|((?<!\\\\)\\n)", + "beginCaptures": { + "1": { + "name": "storage.type.string.python" + }, + "2": { + "name": "punctuation.definition.string.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#string-raw-bin-guts" + } + ] + }, + "string-quoted-single-line": { + "name": "string.quoted.single.python", + "begin": "(?:\\b([rR])(?=[uU]))?([uU])?((['\"]))", + "end": "(\\3)|((?<!\\\\)\\n)", + "beginCaptures": { + "1": { + "name": "invalid.illegal.prefix.python" + }, + "2": { + "name": "storage.type.string.python" + }, + "3": { + "name": "punctuation.definition.string.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#string-single-bad-brace1-formatting-unicode" + }, + { + "include": "#string-single-bad-brace2-formatting-unicode" + }, + { + "include": "#string-unicode-guts" + } + ] + }, + "string-single-bad-brace1-formatting-unicode": { + "comment": "template using {% ... %}", + "begin": "(?x)\n (?= \\{%\n ( .*? (?!(['\"])|((?<!\\\\)\\n)) )\n %\\}\n )\n", + "end": "(?=(['\"])|((?<!\\\\)\\n))", + "patterns": [ + { + "include": "#escape-sequence-unicode" + }, + { + "include": "#escape-sequence" + }, + { + "include": "#string-line-continuation" + } + ] + }, + "string-single-bad-brace1-formatting-raw": { + "comment": "template using {% ... %}", + "begin": "(?x)\n (?= \\{%\n ( .*? (?!(['\"])|((?<!\\\\)\\n)) )\n %\\}\n )\n", + "end": "(?=(['\"])|((?<!\\\\)\\n))", + "patterns": [ + { + "include": "#string-consume-escape" + } + ] + }, + "string-single-bad-brace2-formatting-unicode": { + "comment": "odd format or format-like syntax", + "begin": "(?x)\n (?!\\{\\{)\n (?= \\{ (\n \\w*? (?!(['\"])|((?<!\\\\)\\n)) [^!:\\.\\[}\\w]\n )\n .*?(?!(['\"])|((?<!\\\\)\\n))\n \\}\n )\n", + "end": "(?=(['\"])|((?<!\\\\)\\n))", + "patterns": [ + { + "include": "#escape-sequence-unicode" + }, + { + "include": "#string-entity" + } + ] + }, + "string-single-bad-brace2-formatting-raw": { + "comment": "odd format or format-like syntax", + "begin": "(?x)\n (?!\\{\\{)\n (?= \\{ (\n \\w*? (?!(['\"])|((?<!\\\\)\\n)) [^!:\\.\\[}\\w]\n )\n .*?(?!(['\"])|((?<!\\\\)\\n))\n \\}\n )\n", + "end": "(?=(['\"])|((?<!\\\\)\\n))", + "patterns": [ + { + "include": "#string-consume-escape" + }, + { + "include": "#string-formatting" + } + ] + }, + "string-raw-quoted-multi-line": { + "name": "string.quoted.raw.multi.python", + "begin": "\\b(([uU]R)|(R))('''|\"\"\")", + "end": "(\\4)", + "beginCaptures": { + "2": { + "name": "invalid.deprecated.prefix.python" + }, + "3": { + "name": "storage.type.string.python" + }, + "4": { + "name": "punctuation.definition.string.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#string-multi-bad-brace1-formatting-raw" + }, + { + "include": "#string-multi-bad-brace2-formatting-raw" + }, + { + "include": "#string-raw-guts" + } + ] + }, + "string-bin-quoted-multi-line": { + "name": "string.quoted.binary.multi.python", + "begin": "(\\b[bB])('''|\"\"\")", + "end": "(\\2)", + "beginCaptures": { + "1": { + "name": "storage.type.string.python" + }, + "2": { + "name": "punctuation.definition.string.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#string-entity" + } + ] + }, + "string-raw-bin-quoted-multi-line": { + "name": "string.quoted.raw.binary.multi.python", + "begin": "(\\b(?:R[bB]|[bB]R))('''|\"\"\")", + "end": "(\\2)", + "beginCaptures": { + "1": { + "name": "storage.type.string.python" + }, + "2": { + "name": "punctuation.definition.string.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#string-raw-bin-guts" + } + ] + }, + "string-quoted-multi-line": { + "name": "string.quoted.multi.python", + "begin": "(?:\\b([rR])(?=[uU]))?([uU])?('''|\"\"\")", + "end": "(\\3)", + "beginCaptures": { + "1": { + "name": "invalid.illegal.prefix.python" + }, + "2": { + "name": "storage.type.string.python" + }, + "3": { + "name": "punctuation.definition.string.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#string-multi-bad-brace1-formatting-unicode" + }, + { + "include": "#string-multi-bad-brace2-formatting-unicode" + }, + { + "include": "#string-unicode-guts" + } + ] + }, + "string-multi-bad-brace1-formatting-unicode": { + "comment": "template using {% ... %}", + "begin": "(?x)\n (?= \\{%\n ( .*? (?!'''|\"\"\") )\n %\\}\n )\n", + "end": "(?='''|\"\"\")", + "patterns": [ + { + "include": "#escape-sequence-unicode" + }, + { + "include": "#escape-sequence" + }, + { + "include": "#string-line-continuation" + } + ] + }, + "string-multi-bad-brace1-formatting-raw": { + "comment": "template using {% ... %}", + "begin": "(?x)\n (?= \\{%\n ( .*? (?!'''|\"\"\") )\n %\\}\n )\n", + "end": "(?='''|\"\"\")", + "patterns": [ + { + "include": "#string-consume-escape" + } + ] + }, + "string-multi-bad-brace2-formatting-unicode": { + "comment": "odd format or format-like syntax", + "begin": "(?x)\n (?!\\{\\{)\n (?= \\{ (\n \\w*? (?!'''|\"\"\") [^!:\\.\\[}\\w]\n )\n .*?(?!'''|\"\"\")\n \\}\n )\n", + "end": "(?='''|\"\"\")", + "patterns": [ + { + "include": "#escape-sequence-unicode" + }, + { + "include": "#string-entity" + } + ] + }, + "string-multi-bad-brace2-formatting-raw": { + "comment": "odd format or format-like syntax", + "begin": "(?x)\n (?!\\{\\{)\n (?= \\{ (\n \\w*? (?!'''|\"\"\") [^!:\\.\\[}\\w]\n )\n .*?(?!'''|\"\"\")\n \\}\n )\n", + "end": "(?='''|\"\"\")", + "patterns": [ + { + "include": "#string-consume-escape" + }, + { + "include": "#string-formatting" + } + ] + }, + "fstring-fnorm-quoted-single-line": { + "name": "meta.fstring.python", + "begin": "(\\b[fF])([bBuU])?((['\"]))", + "end": "(\\3)|((?<!\\\\)\\n)", + "beginCaptures": { + "1": { + "name": "string.interpolated.python string.quoted.single.python storage.type.string.python" + }, + "2": { + "name": "invalid.illegal.prefix.python" + }, + "3": { + "name": "punctuation.definition.string.begin.python string.interpolated.python string.quoted.single.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python string.interpolated.python string.quoted.single.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#fstring-guts" + }, + { + "include": "#fstring-illegal-single-brace" + }, + { + "include": "#fstring-single-brace" + }, + { + "include": "#fstring-single-core" + } + ] + }, + "fstring-normf-quoted-single-line": { + "name": "meta.fstring.python", + "begin": "(\\b[bBuU])([fF])((['\"]))", + "end": "(\\3)|((?<!\\\\)\\n)", + "beginCaptures": { + "1": { + "name": "invalid.illegal.prefix.python" + }, + "2": { + "name": "string.interpolated.python string.quoted.single.python storage.type.string.python" + }, + "3": { + "name": "punctuation.definition.string.begin.python string.quoted.single.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python string.interpolated.python string.quoted.single.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#fstring-guts" + }, + { + "include": "#fstring-illegal-single-brace" + }, + { + "include": "#fstring-single-brace" + }, + { + "include": "#fstring-single-core" + } + ] + }, + "fstring-raw-quoted-single-line": { + "name": "meta.fstring.python", + "begin": "(\\b(?:[rR][fF]|[fF][rR]))((['\"]))", + "end": "(\\2)|((?<!\\\\)\\n)", + "beginCaptures": { + "1": { + "name": "string.interpolated.python string.quoted.raw.single.python storage.type.string.python" + }, + "2": { + "name": "punctuation.definition.string.begin.python string.quoted.raw.single.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python string.interpolated.python string.quoted.raw.single.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#fstring-raw-guts" + }, + { + "include": "#fstring-illegal-single-brace" + }, + { + "include": "#fstring-single-brace" + }, + { + "include": "#fstring-raw-single-core" + } + ] + }, + "fstring-single-core": { + "name": "string.interpolated.python string.quoted.single.python", + "match": "(?x)\n (.+?)\n (\n (?# .* and .*? in multi-line match need special handling of\n newlines otherwise SublimeText and Atom will match slightly\n differently.\n\n The guard for newlines has to be separate from the\n lookahead because of special $ matching rule.)\n ($\\n?)\n |\n (?=[\\\\\\}\\{]|(['\"])|((?<!\\\\)\\n))\n )\n (?# due to how multiline regexps are matched we need a special case\n for matching a newline character)\n | \\n\n" + }, + "fstring-raw-single-core": { + "name": "string.interpolated.python string.quoted.raw.single.python", + "match": "(?x)\n (.+?)\n (\n (?# .* and .*? in multi-line match need special handling of\n newlines otherwise SublimeText and Atom will match slightly\n differently.\n\n The guard for newlines has to be separate from the\n lookahead because of special $ matching rule.)\n ($\\n?)\n |\n (?=[\\\\\\}\\{]|(['\"])|((?<!\\\\)\\n))\n )\n (?# due to how multiline regexps are matched we need a special case\n for matching a newline character)\n | \\n\n" + }, + "fstring-single-brace": { + "comment": "value interpolation using { ... }", + "begin": "(\\{)", + "end": "(?x)\n (\\})|(?=\\n)\n", + "beginCaptures": { + "1": { + "name": "constant.character.format.placeholder.other.python" + } + }, + "endCaptures": { + "1": { + "name": "constant.character.format.placeholder.other.python" + } + }, + "patterns": [ + { + "include": "#fstring-terminator-single" + }, + { + "include": "#f-expression" + } + ] + }, + "fstring-terminator-single": { + "patterns": [ + { + "name": "storage.type.format.python", + "match": "(=(![rsa])?)(?=})" + }, + { + "name": "storage.type.format.python", + "match": "(=?![rsa])(?=})" + }, + { + "match": "(?x)\n ( (?: =?) (?: ![rsa])? )\n ( : \\w? [<>=^]? [-+ ]? \\#?\n \\d* ,? (\\.\\d+)? [bcdeEfFgGnosxX%]? )(?=})\n", + "captures": { + "1": { + "name": "storage.type.format.python" + }, + "2": { + "name": "storage.type.format.python" + } + } + }, + { + "include": "#fstring-terminator-single-tail" + } + ] + }, + "fstring-terminator-single-tail": { + "begin": "((?:=?)(?:![rsa])?)(:)(?=.*?{)", + "end": "(?=})|(?=\\n)", + "beginCaptures": { + "1": { + "name": "storage.type.format.python" + }, + "2": { + "name": "storage.type.format.python" + } + }, + "patterns": [ + { + "include": "#fstring-illegal-single-brace" + }, + { + "include": "#fstring-single-brace" + }, + { + "name": "storage.type.format.python", + "match": "([bcdeEfFgGnosxX%])(?=})" + }, + { + "name": "storage.type.format.python", + "match": "(\\.\\d+)" + }, + { + "name": "storage.type.format.python", + "match": "(,)" + }, + { + "name": "storage.type.format.python", + "match": "(\\d+)" + }, + { + "name": "storage.type.format.python", + "match": "(\\#)" + }, + { + "name": "storage.type.format.python", + "match": "([-+ ])" + }, + { + "name": "storage.type.format.python", + "match": "([<>=^])" + }, + { + "name": "storage.type.format.python", + "match": "(\\w)" + } + ] + }, + "fstring-fnorm-quoted-multi-line": { + "name": "meta.fstring.python", + "begin": "(\\b[fF])([bBuU])?('''|\"\"\")", + "end": "(\\3)", + "beginCaptures": { + "1": { + "name": "string.interpolated.python string.quoted.multi.python storage.type.string.python" + }, + "2": { + "name": "invalid.illegal.prefix.python" + }, + "3": { + "name": "punctuation.definition.string.begin.python string.interpolated.python string.quoted.multi.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python string.interpolated.python string.quoted.multi.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#fstring-guts" + }, + { + "include": "#fstring-illegal-multi-brace" + }, + { + "include": "#fstring-multi-brace" + }, + { + "include": "#fstring-multi-core" + } + ] + }, + "fstring-normf-quoted-multi-line": { + "name": "meta.fstring.python", + "begin": "(\\b[bBuU])([fF])('''|\"\"\")", + "end": "(\\3)", + "beginCaptures": { + "1": { + "name": "invalid.illegal.prefix.python" + }, + "2": { + "name": "string.interpolated.python string.quoted.multi.python storage.type.string.python" + }, + "3": { + "name": "punctuation.definition.string.begin.python string.quoted.multi.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python string.interpolated.python string.quoted.multi.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#fstring-guts" + }, + { + "include": "#fstring-illegal-multi-brace" + }, + { + "include": "#fstring-multi-brace" + }, + { + "include": "#fstring-multi-core" + } + ] + }, + "fstring-raw-quoted-multi-line": { + "name": "meta.fstring.python", + "begin": "(\\b(?:[rR][fF]|[fF][rR]))('''|\"\"\")", + "end": "(\\2)", + "beginCaptures": { + "1": { + "name": "string.interpolated.python string.quoted.raw.multi.python storage.type.string.python" + }, + "2": { + "name": "punctuation.definition.string.begin.python string.quoted.raw.multi.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python string.interpolated.python string.quoted.raw.multi.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#fstring-raw-guts" + }, + { + "include": "#fstring-illegal-multi-brace" + }, + { + "include": "#fstring-multi-brace" + }, + { + "include": "#fstring-raw-multi-core" + } + ] + }, + "fstring-multi-core": { + "name": "string.interpolated.python string.quoted.multi.python", + "match": "(?x)\n (.+?)\n (\n (?# .* and .*? in multi-line match need special handling of\n newlines otherwise SublimeText and Atom will match slightly\n differently.\n\n The guard for newlines has to be separate from the\n lookahead because of special $ matching rule.)\n ($\\n?)\n |\n (?=[\\\\\\}\\{]|'''|\"\"\")\n )\n (?# due to how multiline regexps are matched we need a special case\n for matching a newline character)\n | \\n\n" + }, + "fstring-raw-multi-core": { + "name": "string.interpolated.python string.quoted.raw.multi.python", + "match": "(?x)\n (.+?)\n (\n (?# .* and .*? in multi-line match need special handling of\n newlines otherwise SublimeText and Atom will match slightly\n differently.\n\n The guard for newlines has to be separate from the\n lookahead because of special $ matching rule.)\n ($\\n?)\n |\n (?=[\\\\\\}\\{]|'''|\"\"\")\n )\n (?# due to how multiline regexps are matched we need a special case\n for matching a newline character)\n | \\n\n" + }, + "fstring-multi-brace": { + "comment": "value interpolation using { ... }", + "begin": "(\\{)", + "end": "(?x)\n (\\})\n", + "beginCaptures": { + "1": { + "name": "constant.character.format.placeholder.other.python" + } + }, + "endCaptures": { + "1": { + "name": "constant.character.format.placeholder.other.python" + } + }, + "patterns": [ + { + "include": "#fstring-terminator-multi" + }, + { + "include": "#f-expression" + } + ] + }, + "fstring-terminator-multi": { + "patterns": [ + { + "name": "storage.type.format.python", + "match": "(=(![rsa])?)(?=})" + }, + { + "name": "storage.type.format.python", + "match": "(=?![rsa])(?=})" + }, + { + "match": "(?x)\n ( (?: =?) (?: ![rsa])? )\n ( : \\w? [<>=^]? [-+ ]? \\#?\n \\d* ,? (\\.\\d+)? [bcdeEfFgGnosxX%]? )(?=})\n", + "captures": { + "1": { + "name": "storage.type.format.python" + }, + "2": { + "name": "storage.type.format.python" + } + } + }, + { + "include": "#fstring-terminator-multi-tail" + } + ] + }, + "fstring-terminator-multi-tail": { + "begin": "((?:=?)(?:![rsa])?)(:)(?=.*?{)", + "end": "(?=})", + "beginCaptures": { + "1": { + "name": "storage.type.format.python" + }, + "2": { + "name": "storage.type.format.python" + } + }, + "patterns": [ + { + "include": "#fstring-illegal-multi-brace" + }, + { + "include": "#fstring-multi-brace" + }, + { + "name": "storage.type.format.python", + "match": "([bcdeEfFgGnosxX%])(?=})" + }, + { + "name": "storage.type.format.python", + "match": "(\\.\\d+)" + }, + { + "name": "storage.type.format.python", + "match": "(,)" + }, + { + "name": "storage.type.format.python", + "match": "(\\d+)" + }, + { + "name": "storage.type.format.python", + "match": "(\\#)" + }, + { + "name": "storage.type.format.python", + "match": "([-+ ])" + }, + { + "name": "storage.type.format.python", + "match": "([<>=^])" + }, + { + "name": "storage.type.format.python", + "match": "(\\w)" + } + ] + } + } +} diff --git a/docs/shiki/languages/r.tmLanguage.json b/docs/shiki/languages/r.tmLanguage.json new file mode 100644 index 00000000..05252dae --- /dev/null +++ b/docs/shiki/languages/r.tmLanguage.json @@ -0,0 +1,642 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/REditorSupport/vscode-R/blob/master/syntax/r.json", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/REditorSupport/vscode-R/commit/ad966f3b2de8a83594f90aa5b51f5b569cf02c08", + "name": "r", + "scopeName": "source.r", + "patterns": [ + { + "include": "#roxygen" + }, + { + "include": "#comments" + }, + { + "include": "#constants" + }, + { + "include": "#keywords" + }, + { + "include": "#storage-type" + }, + { + "include": "#strings" + }, + { + "include": "#brackets" + }, + { + "include": "#function-declarations" + }, + { + "include": "#lambda-functions" + }, + { + "include": "#builtin-functions" + }, + { + "include": "#function-calls" + }, + { + "include": "#general-variables" + } + ], + "repository": { + "comments": { + "patterns": [ + { + "captures": { + "1": { + "name": "comment.line.pragma.r" + }, + "2": { + "name": "entity.name.pragma.name.r" + } + }, + "match": "^(#pragma[ \\t]+mark)[ \\t](.*)", + "name": "comment.line.pragma-mark.r" + }, + { + "begin": "(^[ \\t]+)?(?=#)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.r" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": "#", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.r" + } + }, + "end": "\\n", + "name": "comment.line.number-sign.r" + } + ] + } + ] + }, + "constants": { + "patterns": [ + { + "match": "\\b(pi|letters|LETTERS|month\\.abb|month\\.name)\\b", + "name": "support.constant.misc.r" + }, + { + "match": "\\b(TRUE|FALSE|NULL|NA|NA_integer_|NA_real_|NA_complex_|NA_character_|Inf|NaN)\\b", + "name": "constant.language.r" + }, + { + "match": "\\b0(x|X)[0-9a-fA-F]+i\\b", + "name": "constant.numeric.imaginary.hexadecimal.r" + }, + { + "match": "\\b[0-9]+\\.?[0-9]*(?:(e|E)(\\+|-)?[0-9]+)?i\\b", + "name": "constant.numeric.imaginary.decimal.r" + }, + { + "match": "\\.[0-9]+(?:(e|E)(\\+|-)?[0-9]+)?i\\b", + "name": "constant.numeric.imaginary.decimal.r" + }, + { + "match": "\\b0(x|X)[0-9a-fA-F]+L\\b", + "name": "constant.numeric.integer.hexadecimal.r" + }, + { + "match": "\\b(?:[0-9]+\\.?[0-9]*)(?:(e|E)(\\+|-)?[0-9]+)?L\\b", + "name": "constant.numeric.integer.decimal.r" + }, + { + "match": "\\b0(x|X)[0-9a-fA-F]+\\b", + "name": "constant.numeric.float.hexadecimal.r" + }, + { + "match": "\\b[0-9]+\\.?[0-9]*(?:(e|E)(\\+|-)?[0-9]+)?\\b", + "name": "constant.numeric.float.decimal.r" + }, + { + "match": "\\.[0-9]+(?:(e|E)(\\+|-)?[0-9]+)?\\b", + "name": "constant.numeric.float.decimal.r" + } + ] + }, + "general-variables": { + "patterns": [ + { + "captures": { + "1": { + "name": "variable.parameter.r" + }, + "2": { + "name": "keyword.operator.assignment.r" + } + }, + "match": "([[:alpha:].][[:alnum:]._]*)\\s*(=)(?=[^=])" + }, + { + "captures": { + "1": { + "name": "variable.parameter.r" + }, + "2": { + "name": "keyword.operator.assignment.r" + } + }, + "match": "(`[^`]+`)\\s*(=)(?=[^=])" + }, + { + "match": "\\b([\\d_][[:alnum:]._]+)\\b", + "name": "invalid.illegal.variable.other.r" + }, + { + "match": "\\b([[:alnum:]_]+)(?=::)", + "name": "entity.namespace.r" + }, + { + "match": "\\b([[:alnum:]._]+)\\b", + "name": "variable.other.r" + }, + { + "match": "(`[^`]+`)", + "name": "variable.other.r" + } + ] + }, + "keywords": { + "patterns": [ + { + "match": "\\b(break|next|repeat|else|in)\\b", + "name": "keyword.control.r" + }, + { + "match": "\\b(ifelse|if|for|return|switch|while|invisible)\\b(?=\\s*\\()", + "name": "keyword.control.r" + }, + { + "match": "(\\-|\\+|\\*|\\/|%\\/%|%%|%\\*%|%o%|%x%|\\^)", + "name": "keyword.operator.arithmetic.r" + }, + { + "match": "(:=|<-|<<-|->|->>)", + "name": "keyword.operator.assignment.r" + }, + { + "match": "(==|<=|>=|!=|<>|<|>|%in%)", + "name": "keyword.operator.comparison.r" + }, + { + "match": "(!|&{1,2}|[|]{1,2})", + "name": "keyword.operator.logical.r" + }, + { + "match": "(\\|>)", + "name": "keyword.operator.pipe.r" + }, + { + "match": "(%between%|%chin%|%like%|%\\+%|%\\+replace%|%:%|%do%|%dopar%|%>%|%<>%|%T>%|%\\$%)", + "name": "keyword.operator.other.r" + }, + { + "match": "(\\.\\.\\.|\\$|:|\\~|@)", + "name": "keyword.other.r" + } + ] + }, + "storage-type": { + "patterns": [ + { + "match": "\\b(character|complex|double|expression|integer|list|logical|numeric|single|raw)\\b(?=\\s*\\()", + "name": "storage.type.r" + } + ] + }, + "strings": { + "patterns": [ + { + "begin": "[rR]\"(-*)\\[", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.raw.begin.r" + } + }, + "end": "\\]\\1\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.raw.end.r" + } + }, + "name": "string.quoted.double.raw.r" + }, + { + "begin": "[rR]'(-*)\\[", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.raw.begin.r" + } + }, + "end": "\\]\\1'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.raw.end.r" + } + }, + "name": "string.quoted.single.raw.r" + }, + { + "begin": "[rR]\"(-*)\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.raw.begin.r" + } + }, + "end": "\\}\\1\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.raw.end.r" + } + }, + "name": "string.quoted.double.raw.r" + }, + { + "begin": "[rR]'(-*)\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.raw.begin.r" + } + }, + "end": "\\}\\1'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.raw.end.r" + } + }, + "name": "string.quoted.single.raw.r" + }, + { + "begin": "[rR]\"(-*)\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.raw.begin.r" + } + }, + "end": "\\)\\1\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.raw.end.r" + } + }, + "name": "string.quoted.double.raw.r" + }, + { + "begin": "[rR]'(-*)\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.raw.begin.r" + } + }, + "end": "\\)\\1'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.raw.end.r" + } + }, + "name": "string.quoted.single.raw.r" + }, + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.r" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.r" + } + }, + "name": "string.quoted.double.r", + "patterns": [ + { + "match": "\\\\.", + "name": "constant.character.escape.r" + } + ] + }, + { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.r" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.r" + } + }, + "name": "string.quoted.single.r", + "patterns": [ + { + "match": "\\\\.", + "name": "constant.character.escape.r" + } + ] + } + ] + }, + "brackets": { + "patterns": [ + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.section.parens.begin.r" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.parens.end.r" + } + }, + "patterns": [ + { + "include": "source.r" + } + ] + }, + { + "begin": "\\[(?!\\[)", + "beginCaptures": { + "0": { + "name": "punctuation.section.brackets.single.begin.r" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.section.brackets.single.end.r" + } + }, + "patterns": [ + { + "include": "source.r" + } + ] + }, + { + "begin": "\\[\\[", + "beginCaptures": { + "0": { + "name": "punctuation.section.brackets.double.begin.r" + } + }, + "end": "\\]\\]", + "endCaptures": { + "0": { + "name": "punctuation.section.brackets.double.end.r" + } + }, + "contentName": "meta.item-access.arguments.r", + "patterns": [ + { + "include": "source.r" + } + ] + }, + { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.section.braces.begin.r" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.section.braces.end.r" + } + }, + "patterns": [ + { + "include": "source.r" + } + ] + } + ] + }, + "function-declarations": { + "patterns": [ + { + "match": "((?:`[^`\\\\]*(?:\\\\.[^`\\\\]*)*`)|(?:[[:alpha:].][[:alnum:]._]*))\\s*(<?<-|=(?!=))\\s*(function|\\\\)(?!\\w)", + "captures": { + "1": { + "name": "entity.name.function.r" + }, + "2": { + "name": "keyword.operator.assignment.r" + }, + "3": { + "name": "keyword.control.r" + } + }, + "name": "meta.function.r", + "patterns": [ + { + "include": "#lambda-functions" + } + ] + } + ] + }, + "lambda-functions": { + "patterns": [ + { + "begin": "\\b(function)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "keyword.control.r" + }, + "2": { + "name": "punctuation.section.parens.begin.r" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.parens.end.r" + } + }, + "name": "meta.function.r", + "contentName": "meta.function.parameters.r", + "patterns": [ + { + "include": "#comments" + }, + { + "match": "(?:[a-zA-Z._][\\w.]*|`[^`]+`)", + "name": "variable.other.r" + }, + { + "begin": "(?==)", + "end": "(?=[,)])", + "patterns": [ + { + "include": "source.r" + } + ] + }, + { + "match": ",", + "name": "punctuation.separator.parameters.r" + } + ] + } + ] + }, + "function-calls": { + "begin": "(?:\\b|(?=\\.))((?:[a-zA-Z._][\\w.]*|`[^`]+`))\\s*(\\()", + "beginCaptures": { + "1": { + "name": "variable.function.r" + }, + "2": { + "name": "punctuation.section.parens.begin.r" + } + }, + "contentName": "meta.function-call.arguments.r", + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.section.parens.end.r" + } + }, + "name": "meta.function-call.r", + "patterns": [ + { + "include": "#function-parameters" + } + ] + }, + "function-parameters": { + "patterns": [ + { + "name": "meta.function-call.r", + "contentName": "meta.function-call.parameters.r" + }, + { + "match": "(?:[a-zA-Z._][\\w.]*|`[^`]+`)(?=\\s[^=])", + "name": "variable.other.r" + }, + { + "begin": "(?==)", + "end": "(?=[,)])", + "patterns": [ + { + "include": "source.r" + } + ] + }, + { + "match": ",", + "name": "punctuation.separator.parameters.r" + }, + { + "include": "source.r" + } + ] + }, + "roxygen": { + "patterns": [ + { + "begin": "^\\s*(#')\\s*", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.r" + } + }, + "end": "$\\n?", + "name": "comment.line.roxygen.r", + "patterns": [ + { + "captures": { + "1": { + "name": "keyword.other.r" + }, + "2": { + "name": "variable.parameter.r" + } + }, + "match": "(@param)\\s*((?:[a-zA-Z._][\\w.]*|`[^`]+`))" + }, + { + "match": "@[a-zA-Z0-9]+", + "name": "keyword.other.r" + } + ] + } + ] + }, + "builtin-functions": { + "patterns": [ + { + "match": "\\b(abbreviate|abs|acos|acosh|activeBindingFunction|addNA|addTaskCallback|agrep|agrepl|alist|all|all\\.equal|all\\.equal\\.character|all\\.equal\\.default|all\\.equal\\.environment|all\\.equal\\.envRefClass|all\\.equal\\.factor|all\\.equal\\.formula|all\\.equal\\.function|all\\.equal\\.language|all\\.equal\\.list|all\\.equal\\.numeric|all\\.equal\\.POSIXt|all\\.equal\\.raw|all\\.names|allowInterrupts|all\\.vars|any|anyDuplicated|anyDuplicated\\.array|anyDuplicated\\.data\\.frame|anyDuplicated\\.default|anyDuplicated\\.matrix|anyNA|anyNA\\.data\\.frame|anyNA\\.numeric_version|anyNA\\.POSIXlt|aperm|aperm\\.default|aperm\\.table|append|apply|Arg|args|array|arrayInd|as\\.array|as\\.array\\.default|as\\.call|as\\.character|as\\.character\\.condition|as\\.character\\.Date|as\\.character\\.default|as\\.character\\.error|as\\.character\\.factor|as\\.character\\.hexmode|as\\.character\\.numeric_version|as\\.character\\.octmode|as\\.character\\.POSIXt|as\\.character\\.srcref|as\\.complex|as\\.data\\.frame|as\\.data\\.frame\\.array|as\\.data\\.frame\\.AsIs|as\\.data\\.frame\\.character|as\\.data\\.frame\\.complex|as\\.data\\.frame\\.data\\.frame|as\\.data\\.frame\\.Date|as\\.data\\.frame\\.default|as\\.data\\.frame\\.difftime|as\\.data\\.frame\\.factor|as\\.data\\.frame\\.integer|as\\.data\\.frame\\.list|as\\.data\\.frame\\.logical|as\\.data\\.frame\\.matrix|as\\.data\\.frame\\.model\\.matrix|as\\.data\\.frame\\.noquote|as\\.data\\.frame\\.numeric|as\\.data\\.frame\\.numeric_version|as\\.data\\.frame\\.ordered|as\\.data\\.frame\\.POSIXct|as\\.data\\.frame\\.POSIXlt|as\\.data\\.frame\\.raw|as\\.data\\.frame\\.table|as\\.data\\.frame\\.ts|as\\.data\\.frame\\.vector|as\\.Date|as\\.Date\\.character|as\\.Date\\.default|as\\.Date\\.factor|as\\.Date\\.numeric|as\\.Date\\.POSIXct|as\\.Date\\.POSIXlt|as\\.difftime|as\\.double|as\\.double\\.difftime|as\\.double\\.POSIXlt|as\\.environment|as\\.expression|as\\.expression\\.default|as\\.factor|as\\.function|as\\.function\\.default|as\\.hexmode|asin|asinh|as\\.integer|as\\.list|as\\.list\\.data\\.frame|as\\.list\\.Date|as\\.list\\.default|as\\.list\\.difftime|as\\.list\\.environment|as\\.list\\.factor|as\\.list\\.function|as\\.list\\.numeric_version|as\\.list\\.POSIXct|as\\.list\\.POSIXlt|as\\.logical|as\\.logical\\.factor|as\\.matrix|as\\.matrix\\.data\\.frame|as\\.matrix\\.default|as\\.matrix\\.noquote|as\\.matrix\\.POSIXlt|as\\.name|asNamespace|as\\.null|as\\.null\\.default|as\\.numeric|as\\.numeric_version|as\\.octmode|as\\.ordered|as\\.package_version|as\\.pairlist|asplit|as\\.POSIXct|as\\.POSIXct\\.Date|as\\.POSIXct\\.default|as\\.POSIXct\\.numeric|as\\.POSIXct\\.POSIXlt|as\\.POSIXlt|as\\.POSIXlt\\.character|as\\.POSIXlt\\.Date|as\\.POSIXlt\\.default|as\\.POSIXlt\\.factor|as\\.POSIXlt\\.numeric|as\\.POSIXlt\\.POSIXct|as\\.qr|as\\.raw|asS3|asS4|assign|as\\.single|as\\.single\\.default|as\\.symbol|as\\.table|as\\.table\\.default|as\\.vector|as\\.vector\\.factor|atan|atan2|atanh|attach|attachNamespace|attr|attr\\.all\\.equal|attributes|autoload|autoloader|backsolve|baseenv|basename|besselI|besselJ|besselK|besselY|beta|bindingIsActive|bindingIsLocked|bindtextdomain|bitwAnd|bitwNot|bitwOr|bitwShiftL|bitwShiftR|bitwXor|body|bquote|break|browser|browserCondition|browserSetDebug|browserText|builtins|by|by\\.data\\.frame|by\\.default|bzfile|c|call|callCC|capabilities|casefold|cat|cbind|cbind\\.data\\.frame|c\\.Date|c\\.difftime|ceiling|c\\.factor|character|char\\.expand|charmatch|charToRaw|chartr|check_tzones|chkDots|chol|chol2inv|chol\\.default|choose|class|clearPushBack|close|closeAllConnections|close\\.connection|close\\.srcfile|close\\.srcfilealias|c\\.noquote|c\\.numeric_version|col|colMeans|colnames|colSums|commandArgs|comment|complex|computeRestarts|conditionCall|conditionCall\\.condition|conditionMessage|conditionMessage\\.condition|conflictRules|conflicts|Conj|contributors|cos|cosh|cospi|c\\.POSIXct|c\\.POSIXlt|crossprod|Cstack_info|cummax|cummin|cumprod|cumsum|curlGetHeaders|cut|cut\\.Date|cut\\.default|cut\\.POSIXt|c\\.warnings|data\\.class|data\\.frame|data\\.matrix|date|debug|debuggingState|debugonce|default\\.stringsAsFactors|delayedAssign|deparse|deparse1|det|detach|determinant|determinant\\.matrix|dget|diag|diff|diff\\.Date|diff\\.default|diff\\.difftime|diff\\.POSIXt|difftime|digamma|dim|dim\\.data\\.frame|dimnames|dimnames\\.data\\.frame|dir|dir\\.create|dir\\.exists|dirname|do\\.call|dontCheck|double|dput|dQuote|drop|droplevels|droplevels\\.data\\.frame|droplevels\\.factor|dump|duplicated|duplicated\\.array|duplicated\\.data\\.frame|duplicated\\.default|duplicated\\.matrix|duplicated\\.numeric_version|duplicated\\.POSIXlt|duplicated\\.warnings|dynGet|dyn\\.load|dyn\\.unload|eapply|eigen|emptyenv|enc2native|enc2utf8|encodeString|Encoding|endsWith|enquote|environment|environmentIsLocked|environmentName|env\\.profile|errorCondition|eval|eval\\.parent|evalq|exists|exp|expand\\.grid|expm1|expression|extSoftVersion|factor|factorial|fifo|file|file\\.access|file\\.append|file\\.choose|file\\.copy|file\\.create|file\\.exists|file\\.info|file\\.link|file\\.mode|file\\.mtime|file\\.path|file\\.remove|file\\.rename|file\\.show|file\\.size|file\\.symlink|Filter|Find|findInterval|find\\.package|findPackageEnv|findRestart|floor|flush|flush\\.connection|for|force|forceAndCall|formals|format|format\\.AsIs|formatC|format\\.data\\.frame|format\\.Date|format\\.default|format\\.difftime|formatDL|format\\.factor|format\\.hexmode|format\\.info|format\\.libraryIQR|format\\.numeric_version|format\\.octmode|format\\.packageInfo|format\\.POSIXct|format\\.POSIXlt|format\\.pval|format\\.summaryDefault|forwardsolve|function|gamma|gc|gcinfo|gc\\.time|gctorture|gctorture2|get|get0|getAllConnections|getCallingDLL|getCallingDLLe|getConnection|getDLLRegisteredRoutines|getDLLRegisteredRoutines\\.character|getDLLRegisteredRoutines\\.DLLInfo|getElement|geterrmessage|getExportedValue|getHook|getLoadedDLLs|getNamespace|getNamespaceExports|getNamespaceImports|getNamespaceInfo|getNamespaceName|getNamespaceUsers|getNamespaceVersion|getNativeSymbolInfo|getOption|getRversion|getSrcLines|getTaskCallbackNames|gettext|gettextf|getwd|gl|globalCallingHandlers|globalenv|gregexec|gregexpr|grep|grepl|grepRaw|grouping|gsub|gzcon|gzfile|I|iconv|iconvlist|icuGetCollate|icuSetCollate|identical|identity|if|ifelse|Im|importIntoEnv|infoRDS|inherits|integer|interaction|interactive|intersect|intToBits|intToUtf8|inverse\\.rle|invisible|invokeRestart|invokeRestartInteractively|isa|is\\.array|is\\.atomic|isatty|isBaseNamespace|is\\.call|is\\.character|is\\.complex|is\\.data\\.frame|isdebugged|is\\.double|is\\.element|is\\.environment|is\\.expression|is\\.factor|isFALSE|is\\.finite|is\\.function|isIncomplete|is\\.infinite|is\\.integer|is\\.language|is\\.list|is\\.loaded|is\\.logical|is\\.matrix|is\\.na|is\\.na\\.data\\.frame|is\\.name|isNamespace|isNamespaceLoaded|is\\.nan|is\\.na\\.numeric_version|is\\.na\\.POSIXlt|is\\.null|is\\.numeric|is\\.numeric\\.Date|is\\.numeric\\.difftime|is\\.numeric\\.POSIXt|is\\.numeric_version|is\\.object|ISOdate|ISOdatetime|isOpen|is\\.ordered|is\\.package_version|is\\.pairlist|is\\.primitive|is\\.qr|is\\.R|is\\.raw|is\\.recursive|isRestart|isS4|isSeekable|is\\.single|is\\.symbol|isSymmetric|isSymmetric\\.matrix|is\\.table|isTRUE|is\\.unsorted|is\\.vector|jitter|julian|julian\\.Date|julian\\.POSIXt|kappa|kappa\\.default|kappa\\.lm|kappa\\.qr|kronecker|l10n_info|labels|labels\\.default|La_library|lapply|La\\.svd|La_version|lazyLoad|lazyLoadDBexec|lazyLoadDBfetch|lbeta|lchoose|length|length\\.POSIXlt|lengths|levels|levels\\.default|lfactorial|lgamma|libcurlVersion|library|library\\.dynam|library\\.dynam\\.unload|licence|license|list|list2DF|list2env|list\\.dirs|list\\.files|load|loadedNamespaces|loadingNamespaceInfo|loadNamespace|local|lockBinding|lockEnvironment|log|log10|log1p|log2|logb|logical|lower\\.tri|ls|makeActiveBinding|make\\.names|make\\.unique|Map|mapply|marginSums|margin\\.table|match|match\\.arg|match\\.call|match\\.fun|Math\\.data\\.frame|Math\\.Date|Math\\.difftime|Math\\.factor|Math\\.POSIXt|mat\\.or\\.vec|matrix|max|max\\.col|mean|mean\\.Date|mean\\.default|mean\\.difftime|mean\\.POSIXct|mean\\.POSIXlt|memCompress|memDecompress|mem\\.maxNSize|mem\\.maxVSize|memory\\.profile|merge|merge\\.data\\.frame|merge\\.default|message|mget|min|missing|Mod|mode|months|months\\.Date|months\\.POSIXt|names|namespaceExport|namespaceImport|namespaceImportClasses|namespaceImportFrom|namespaceImportMethods|names\\.POSIXlt|nargs|nchar|ncol|NCOL|Negate|new\\.env|next|NextMethod|ngettext|nlevels|noquote|norm|normalizePath|nrow|NROW|nullfile|numeric|numeric_version|numToBits|numToInts|nzchar|objects|oldClass|OlsonNames|on\\.exit|open|open\\.connection|open\\.srcfile|open\\.srcfilealias|open\\.srcfilecopy|Ops\\.data\\.frame|Ops\\.Date|Ops\\.difftime|Ops\\.factor|Ops\\.numeric_version|Ops\\.ordered|Ops\\.POSIXt|options|order|ordered|outer|packageEvent|packageHasNamespace|packageNotFoundError|packageStartupMessage|package_version|packBits|pairlist|parent\\.env|parent\\.frame|parse|parseNamespaceFile|paste|paste0|path\\.expand|path\\.package|pcre_config|pi|pipe|plot|pmatch|pmax|pmax\\.int|pmin|pmin\\.int|polyroot|Position|pos\\.to\\.env|pretty|pretty\\.default|prettyNum|print|print\\.AsIs|print\\.by|print\\.condition|print\\.connection|print\\.data\\.frame|print\\.Date|print\\.default|print\\.difftime|print\\.Dlist|print\\.DLLInfo|print\\.DLLInfoList|print\\.DLLRegisteredRoutines|print\\.eigen|print\\.factor|print\\.function|print\\.hexmode|print\\.libraryIQR|print\\.listof|print\\.NativeRoutineList|print\\.noquote|print\\.numeric_version|print\\.octmode|print\\.packageInfo|print\\.POSIXct|print\\.POSIXlt|print\\.proc_time|print\\.restart|print\\.rle|print\\.simple\\.list|print\\.srcfile|print\\.srcref|print\\.summaryDefault|print\\.summary\\.table|print\\.summary\\.warnings|print\\.table|print\\.warnings|prmatrix|proc\\.time|prod|proportions|prop\\.table|provideDimnames|psigamma|pushBack|pushBackLength|q|qr|qr\\.coef|qr\\.default|qr\\.fitted|qr\\.Q|qr\\.qty|qr\\.qy|qr\\.R|qr\\.resid|qr\\.solve|qr\\.X|quarters|quarters\\.Date|quarters\\.POSIXt|quit|quote|range|range\\.default|rank|rapply|raw|rawConnection|rawConnectionValue|rawShift|rawToBits|rawToChar|rbind|rbind\\.data\\.frame|rcond|Re|readBin|readChar|read\\.dcf|readline|readLines|readRDS|readRenviron|Recall|Reduce|regexec|regexpr|reg\\.finalizer|registerS3method|registerS3methods|regmatches|remove|removeTaskCallback|rep|rep\\.Date|rep\\.difftime|repeat|rep\\.factor|rep\\.int|replace|rep_len|replicate|rep\\.numeric_version|rep\\.POSIXct|rep\\.POSIXlt|require|requireNamespace|restartDescription|restartFormals|retracemem|return|returnValue|rev|rev\\.default|R\\.home|rle|rm|RNGkind|RNGversion|round|round\\.Date|round\\.POSIXt|row|rowMeans|rownames|row\\.names|row\\.names\\.data\\.frame|row\\.names\\.default|rowsum|rowsum\\.data\\.frame|rowsum\\.default|rowSums|R_system_version|R\\.version|R\\.Version|R\\.version\\.string|sample|sample\\.int|sapply|save|save\\.image|saveRDS|scale|scale\\.default|scan|search|searchpaths|seek|seek\\.connection|seq|seq_along|seq\\.Date|seq\\.default|seq\\.int|seq_len|seq\\.POSIXt|sequence|sequence\\.default|serialize|serverSocket|setdiff|setequal|setHook|setNamespaceInfo|set\\.seed|setSessionTimeLimit|setTimeLimit|setwd|showConnections|shQuote|sign|signalCondition|signif|simpleCondition|simpleError|simpleMessage|simpleWarning|simplify2array|sin|single|sinh|sink|sink\\.number|sinpi|slice\\.index|socketAccept|socketConnection|socketSelect|socketTimeout|solve|solve\\.default|solve\\.qr|sort|sort\\.default|sort\\.int|sort\\.list|sort\\.POSIXlt|source|split|split\\.data\\.frame|split\\.Date|split\\.default|split\\.POSIXct|sprintf|sqrt|sQuote|srcfile|srcfilealias|srcfilecopy|srcref|standardGeneric|startsWith|stderr|stdin|stdout|stop|stopifnot|storage\\.mode|str2expression|str2lang|strftime|strptime|strrep|strsplit|strtoi|strtrim|structure|strwrap|sub|subset|subset\\.data\\.frame|subset\\.default|subset\\.matrix|substitute|substr|substring|sum|summary|summary\\.connection|summary\\.data\\.frame|Summary\\.data\\.frame|summary\\.Date|Summary\\.Date|summary\\.default|Summary\\.difftime|summary\\.factor|Summary\\.factor|summary\\.matrix|Summary\\.numeric_version|Summary\\.ordered|summary\\.POSIXct|Summary\\.POSIXct|summary\\.POSIXlt|Summary\\.POSIXlt|summary\\.proc_time|summary\\.srcfile|summary\\.srcref|summary\\.table|summary\\.warnings|suppressMessages|suppressPackageStartupMessages|suppressWarnings|suspendInterrupts|svd|sweep|switch|sys\\.call|sys\\.calls|Sys\\.chmod|Sys\\.Date|sys\\.frame|sys\\.frames|sys\\.function|Sys\\.getenv|Sys\\.getlocale|Sys\\.getpid|Sys\\.glob|Sys\\.info|sys\\.load\\.image|Sys\\.localeconv|sys\\.nframe|sys\\.on\\.exit|sys\\.parent|sys\\.parents|Sys\\.readlink|sys\\.save\\.image|Sys\\.setenv|Sys\\.setFileTime|Sys\\.setlocale|Sys\\.sleep|sys\\.source|sys\\.status|system|system2|system\\.file|system\\.time|Sys\\.time|Sys\\.timezone|Sys\\.umask|Sys\\.unsetenv|Sys\\.which|t|table|tabulate|tan|tanh|tanpi|tapply|taskCallbackManager|tcrossprod|t\\.data\\.frame|t\\.default|tempdir|tempfile|textConnection|textConnectionValue|tolower|topenv|toString|toString\\.default|toupper|trace|traceback|tracemem|tracingState|transform|transform\\.data\\.frame|transform\\.default|trigamma|trimws|trunc|truncate|truncate\\.connection|trunc\\.Date|trunc\\.POSIXt|try|tryCatch|tryInvokeRestart|typeof|unclass|undebug|union|unique|unique\\.array|unique\\.data\\.frame|unique\\.default|unique\\.matrix|unique\\.numeric_version|unique\\.POSIXlt|unique\\.warnings|units|units\\.difftime|unix\\.time|unlink|unlist|unloadNamespace|unlockBinding|unname|unserialize|unsplit|untrace|untracemem|unz|upper\\.tri|url|UseMethod|utf8ToInt|validEnc|validUTF8|vapply|vector|Vectorize|version|warning|warningCondition|warnings|weekdays|weekdays\\.Date|weekdays\\.POSIXt|which|which\\.max|which\\.min|while|with|withAutoprint|withCallingHandlers|with\\.default|within|within\\.data\\.frame|within\\.list|withRestarts|withVisible|write|writeBin|writeChar|write\\.dcf|writeLines|xor|xpdrows\\.data\\.frame|xtfrm|xtfrm\\.AsIs|xtfrm\\.data\\.frame|xtfrm\\.Date|xtfrm\\.default|xtfrm\\.difftime|xtfrm\\.factor|xtfrm\\.numeric_version|xtfrm\\.POSIXct|xtfrm\\.POSIXlt|xzfile|zapsmall)\\s*(\\()", + "captures": { + "1": { + "name": "support.function.r" + } + } + }, + { + "match": "\\b(abline|arrows|assocplot|axis|Axis|axis\\.Date|axis\\.POSIXct|axTicks|barplot|barplot\\.default|box|boxplot|boxplot\\.default|boxplot\\.matrix|bxp|cdplot|clip|close\\.screen|co\\.intervals|contour|contour\\.default|coplot|curve|dotchart|erase\\.screen|filled\\.contour|fourfoldplot|frame|grconvertX|grconvertY|grid|hist|hist\\.default|identify|image|image\\.default|layout|layout\\.show|lcm|legend|lines|lines\\.default|locator|matlines|matplot|matpoints|mosaicplot|mtext|pairs|pairs\\.default|panel\\.smooth|par|persp|pie|plot|plot\\.default|plot\\.design|plot\\.function|plot\\.new|plot\\.window|plot\\.xy|points|points\\.default|polygon|polypath|rasterImage|rect|rug|screen|segments|smoothScatter|spineplot|split\\.screen|stars|stem|strheight|stripchart|strwidth|sunflowerplot|symbols|text|text\\.default|title|xinch|xspline|xyinch|yinch)\\s*(\\()", + "captures": { + "1": { + "name": "support.function.r" + } + } + }, + { + "match": "\\b(adjustcolor|as\\.graphicsAnnot|as\\.raster|axisTicks|bitmap|blues9|bmp|boxplot\\.stats|cairo_pdf|cairo_ps|cairoSymbolFont|check\\.options|chull|CIDFont|cm|cm\\.colors|col2rgb|colorConverter|colorRamp|colorRampPalette|colors|colorspaces|colours|contourLines|convertColor|densCols|dev2bitmap|devAskNewPage|dev\\.capabilities|dev\\.capture|dev\\.control|dev\\.copy|dev\\.copy2eps|dev\\.copy2pdf|dev\\.cur|dev\\.flush|dev\\.hold|deviceIsInteractive|dev\\.interactive|dev\\.list|dev\\.new|dev\\.next|dev\\.off|dev\\.prev|dev\\.print|dev\\.set|dev\\.size|embedFonts|extendrange|getGraphicsEvent|getGraphicsEventEnv|graphics\\.off|gray|gray\\.colors|grey|grey\\.colors|grSoftVersion|hcl|hcl\\.colors|hcl\\.pals|heat\\.colors|Hershey|hsv|is\\.raster|jpeg|make\\.rgb|n2mfrow|nclass\\.FD|nclass\\.scott|nclass\\.Sturges|palette|palette\\.colors|palette\\.pals|pdf|pdfFonts|pdf\\.options|pictex|png|postscript|postscriptFonts|ps\\.options|quartz|quartzFont|quartzFonts|quartz\\.options|quartz\\.save|rainbow|recordGraphics|recordPlot|replayPlot|rgb|rgb2hsv|savePlot|setEPS|setGraphicsEventEnv|setGraphicsEventHandlers|setPS|svg|terrain\\.colors|tiff|topo\\.colors|trans3d|Type1Font|x11|X11|X11Font|X11Fonts|X11\\.options|xfig|xy\\.coords|xyTable|xyz\\.coords)\\s*(\\()", + "captures": { + "1": { + "name": "support.function.r" + } + } + }, + { + "match": "\\b(addNextMethod|allNames|Arith|as|asMethodDefinition|assignClassDef|assignMethodsMetaData|balanceMethodsList|cacheGenericsMetaData|cacheMetaData|cacheMethod|callGeneric|callNextMethod|canCoerce|cbind2|checkAtAssignment|checkSlotAssignment|classesToAM|classLabel|classMetaName|className|coerce|Compare|completeClassDefinition|completeExtends|completeSubclasses|Complex|conformMethod|defaultDumpName|defaultPrototype|doPrimitiveMethod|dumpMethod|dumpMethods|el|elNamed|empty\\.dump|emptyMethodsList|evalOnLoad|evalqOnLoad|evalSource|existsFunction|existsMethod|extends|externalRefMethod|finalDefaultMethod|findClass|findFunction|findMethod|findMethods|findMethodSignatures|findUnique|fixPre1\\.8|formalArgs|functionBody|generic\\.skeleton|getAllSuperClasses|getClass|getClassDef|getClasses|getDataPart|getFunction|getGeneric|getGenerics|getGroup|getGroupMembers|getLoadActions|getMethod|getMethods|getMethodsForDispatch|getMethodsMetaData|getPackageName|getRefClass|getSlots|getValidity|hasArg|hasLoadAction|hasMethod|hasMethods|implicitGeneric|inheritedSlotNames|initFieldArgs|initialize|initRefFields|insertClassMethods|insertMethod|insertSource|is|isClass|isClassDef|isClassUnion|isGeneric|isGrammarSymbol|isGroup|isRematched|isSealedClass|isSealedMethod|isVirtualClass|isXS3Class|kronecker|languageEl|linearizeMlist|listFromMethods|listFromMlist|loadMethod|Logic|makeClassRepresentation|makeExtends|makeGeneric|makeMethodsList|makePrototypeFromClassDef|makeStandardGeneric|matchSignature|Math|Math2|mergeMethods|metaNameUndo|MethodAddCoerce|methodSignatureMatrix|method\\.skeleton|MethodsList|MethodsListSelect|methodsPackageMetaName|missingArg|multipleClasses|new|newBasic|newClassRepresentation|newEmptyObject|Ops|packageSlot|possibleExtends|prohibitGeneric|promptClass|promptMethods|prototype|Quote|rbind2|reconcilePropertiesAndPrototype|registerImplicitGenerics|rematchDefinition|removeClass|removeGeneric|removeMethod|removeMethods|representation|requireMethods|resetClass|resetGeneric|S3Class|S3Part|sealClass|selectMethod|selectSuperClasses|setAs|setClass|setClassUnion|setDataPart|setGeneric|setGenericImplicit|setGroupGeneric|setIs|setLoadAction|setLoadActions|setMethod|setOldClass|setPackageName|setPrimitiveMethods|setRefClass|setReplaceMethod|setValidity|show|showClass|showDefault|showExtends|showMethods|showMlist|signature|SignatureMethod|sigToEnv|slot|slotNames|slotsFromS3|substituteDirect|substituteFunctionArgs|Summary|superClassDepth|testInheritedMethods|testVirtual|tryNew|unRematchDefinition|validObject|validSlotNames)\\s*(\\()", + "captures": { + "1": { + "name": "support.function.r" + } + } + }, + { + "match": "\\b(acf|acf2AR|add1|addmargins|add\\.scope|aggregate|aggregate\\.data\\.frame|aggregate\\.ts|AIC|alias|anova|ansari\\.test|aov|approx|approxfun|ar|ar\\.burg|arima|arima0|arima0\\.diag|arima\\.sim|ARMAacf|ARMAtoMA|ar\\.mle|ar\\.ols|ar\\.yw|as\\.dendrogram|as\\.dist|as\\.formula|as\\.hclust|asOneSidedFormula|as\\.stepfun|as\\.ts|ave|bandwidth\\.kernel|bartlett\\.test|BIC|binomial|binom\\.test|biplot|Box\\.test|bw\\.bcv|bw\\.nrd|bw\\.nrd0|bw\\.SJ|bw\\.ucv|C|cancor|case\\.names|ccf|chisq\\.test|cmdscale|coef|coefficients|complete\\.cases|confint|confint\\.default|confint\\.lm|constrOptim|contrasts|contr\\.helmert|contr\\.poly|contr\\.SAS|contr\\.sum|contr\\.treatment|convolve|cooks\\.distance|cophenetic|cor|cor\\.test|cov|cov2cor|covratio|cov\\.wt|cpgram|cutree|cycle|D|dbeta|dbinom|dcauchy|dchisq|decompose|delete\\.response|deltat|dendrapply|density|density\\.default|deriv|deriv3|deviance|dexp|df|DF2formula|dfbeta|dfbetas|dffits|df\\.kernel|df\\.residual|dgamma|dgeom|dhyper|diffinv|dist|dlnorm|dlogis|dmultinom|dnbinom|dnorm|dpois|drop1|drop\\.scope|drop\\.terms|dsignrank|dt|dummy\\.coef|dummy\\.coef\\.lm|dunif|dweibull|dwilcox|ecdf|eff\\.aovlist|effects|embed|end|estVar|expand\\.model\\.frame|extractAIC|factanal|factor\\.scope|family|fft|filter|fisher\\.test|fitted|fitted\\.values|fivenum|fligner\\.test|formula|frequency|friedman\\.test|ftable|Gamma|gaussian|get_all_vars|getCall|getInitial|glm|glm\\.control|glm\\.fit|hasTsp|hat|hatvalues|hclust|heatmap|HoltWinters|influence|influence\\.measures|integrate|interaction\\.plot|inverse\\.gaussian|IQR|is\\.empty\\.model|is\\.leaf|is\\.mts|isoreg|is\\.stepfun|is\\.ts|is\\.tskernel|KalmanForecast|KalmanLike|KalmanRun|KalmanSmooth|kernapply|kernel|kmeans|knots|kruskal\\.test|ksmooth|ks\\.test|lag|lag\\.plot|line|lm|lm\\.fit|lm\\.influence|lm\\.wfit|loadings|loess|loess\\.control|loess\\.smooth|logLik|loglin|lowess|ls\\.diag|lsfit|ls\\.print|mad|mahalanobis|makeARIMA|make\\.link|makepredictcall|manova|mantelhaen\\.test|mauchly\\.test|mcnemar\\.test|median|median\\.default|medpolish|model\\.extract|model\\.frame|model\\.frame\\.default|model\\.matrix|model\\.matrix\\.default|model\\.matrix\\.lm|model\\.offset|model\\.response|model\\.tables|model\\.weights|monthplot|mood\\.test|mvfft|na\\.action|na\\.contiguous|na\\.exclude|na\\.fail|na\\.omit|na\\.pass|napredict|naprint|naresid|nextn|nlm|nlminb|nls|nls\\.control|NLSstAsymptotic|NLSstClosestX|NLSstLfAsymptote|NLSstRtAsymptote|nobs|numericDeriv|offset|oneway\\.test|optim|optimHess|optimise|optimize|order\\.dendrogram|pacf|p\\.adjust|p\\.adjust\\.methods|Pair|pairwise\\.prop\\.test|pairwise\\.table|pairwise\\.t\\.test|pairwise\\.wilcox\\.test|pbeta|pbinom|pbirthday|pcauchy|pchisq|pexp|pf|pgamma|pgeom|phyper|plclust|plnorm|plogis|plot\\.ecdf|plot\\.spec\\.coherency|plot\\.spec\\.phase|plot\\.stepfun|plot\\.ts|pnbinom|pnorm|poisson|poisson\\.test|poly|polym|power|power\\.anova\\.test|power\\.prop\\.test|power\\.t\\.test|ppoints|ppois|ppr|PP\\.test|prcomp|predict|predict\\.glm|predict\\.lm|preplot|princomp|printCoefmat|profile|proj|promax|prop\\.test|prop\\.trend\\.test|psignrank|pt|ptukey|punif|pweibull|pwilcox|qbeta|qbinom|qbirthday|qcauchy|qchisq|qexp|qf|qgamma|qgeom|qhyper|qlnorm|qlogis|qnbinom|qnorm|qpois|qqline|qqnorm|qqplot|qsignrank|qt|qtukey|quade\\.test|quantile|quasi|quasibinomial|quasipoisson|qunif|qweibull|qwilcox|r2dtable|rbeta|rbinom|rcauchy|rchisq|read\\.ftable|rect\\.hclust|reformulate|relevel|reorder|replications|reshape|resid|residuals|residuals\\.glm|residuals\\.lm|rexp|rf|rgamma|rgeom|rhyper|rlnorm|rlogis|rmultinom|rnbinom|rnorm|rpois|rsignrank|rstandard|rstudent|rt|runif|runmed|rweibull|rwilcox|rWishart|scatter\\.smooth|screeplot|sd|se\\.contrast|selfStart|setNames|shapiro\\.test|sigma|simulate|smooth|smoothEnds|smooth\\.spline|sortedXyData|spec\\.ar|spec\\.pgram|spec\\.taper|spectrum|spline|splinefun|splinefunH|SSasymp|SSasympOff|SSasympOrig|SSbiexp|SSD|SSfol|SSfpl|SSgompertz|SSlogis|SSmicmen|SSweibull|start|stat\\.anova|step|stepfun|stl|StructTS|summary\\.aov|summary\\.glm|summary\\.lm|summary\\.manova|summary\\.stepfun|supsmu|symnum|termplot|terms|terms\\.formula|time|toeplitz|ts|tsdiag|ts\\.intersect|tsp|ts\\.plot|tsSmooth|ts\\.union|t\\.test|TukeyHSD|uniroot|update|update\\.default|update\\.formula|var|variable\\.names|varimax|var\\.test|vcov|weighted\\.mean|weighted\\.residuals|weights|wilcox\\.test|window|write\\.ftable|xtabs)\\s*(\\()", + "captures": { + "1": { + "name": "support.function.r" + } + } + }, + { + "match": "\\b(adist|alarm|apropos|aregexec|argsAnywhere|asDateBuilt|askYesNo|aspell|aspell_package_C_files|aspell_package_Rd_files|aspell_package_R_files|aspell_package_vignettes|aspell_write_personal_dictionary_file|as\\.person|as\\.personList|as\\.relistable|as\\.roman|assignInMyNamespace|assignInNamespace|available\\.packages|bibentry|browseEnv|browseURL|browseVignettes|bug\\.report|capture\\.output|changedFiles|charClass|checkCRAN|chooseBioCmirror|chooseCRANmirror|citation|cite|citeNatbib|citEntry|citFooter|citHeader|close\\.socket|combn|compareVersion|contrib\\.url|count\\.fields|create\\.post|data|dataentry|data\\.entry|de|debugcall|debugger|demo|de\\.ncols|de\\.restore|de\\.setup|download\\.file|download\\.packages|dump\\.frames|edit|emacs|example|file\\.edit|fileSnapshot|file_test|find|findLineNum|fix|fixInNamespace|flush\\.console|formatOL|formatUL|getAnywhere|getCRANmirrors|getFromNamespace|getParseData|getParseText|getS3method|getSrcDirectory|getSrcFilename|getSrcLocation|getSrcref|getTxtProgressBar|glob2rx|globalVariables|hasName|head|head\\.matrix|help|help\\.request|help\\.search|help\\.start|history|hsearch_db|hsearch_db_concepts|hsearch_db_keywords|installed\\.packages|install\\.packages|is\\.relistable|isS3method|isS3stdGeneric|limitedLabels|loadhistory|localeToCharset|lsf\\.str|ls\\.str|maintainer|make\\.packages\\.html|makeRweaveLatexCodeRunner|make\\.socket|memory\\.limit|memory\\.size|menu|methods|mirror2html|modifyList|new\\.packages|news|nsl|object\\.size|old\\.packages|osVersion|packageDate|packageDescription|packageName|package\\.skeleton|packageStatus|packageVersion|page|person|personList|pico|process\\.events|prompt|promptData|promptImport|promptPackage|rc\\.getOption|rc\\.options|rc\\.settings|rc\\.status|readCitationFile|read\\.csv|read\\.csv2|read\\.delim|read\\.delim2|read\\.DIF|read\\.fortran|read\\.fwf|read\\.socket|read\\.table|recover|relist|remove\\.packages|removeSource|Rprof|Rprofmem|RShowDoc|RSiteSearch|rtags|Rtangle|RtangleFinish|RtangleRuncode|RtangleSetup|RtangleWritedoc|RweaveChunkPrefix|RweaveEvalWithOpt|RweaveLatex|RweaveLatexFinish|RweaveLatexOptions|RweaveLatexSetup|RweaveLatexWritedoc|RweaveTryStop|savehistory|select\\.list|sessionInfo|setBreakpoint|setRepositories|setTxtProgressBar|stack|Stangle|str|strcapture|strOptions|summaryRprof|suppressForeignCheck|Sweave|SweaveHooks|SweaveSyntaxLatex|SweaveSyntaxNoweb|SweaveSyntConv|tail|tail\\.matrix|tar|timestamp|toBibtex|toLatex|txtProgressBar|type\\.convert|undebugcall|unstack|untar|unzip|update\\.packages|upgrade|URLdecode|URLencode|url\\.show|vi|View|vignette|warnErrList|write\\.csv|write\\.csv2|write\\.socket|write\\.table|xedit|xemacs|zip)\\s*(\\()", + "captures": { + "1": { + "name": "support.function.r" + } + } + } + ] + } + } +} diff --git a/docs/shiki/languages/raku.tmLanguage.json b/docs/shiki/languages/raku.tmLanguage.json new file mode 100644 index 00000000..4bf7a157 --- /dev/null +++ b/docs/shiki/languages/raku.tmLanguage.json @@ -0,0 +1,315 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/textmate/perl.tmbundle/blob/master/Syntaxes/Perl%206.tmLanguage", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/textmate/perl.tmbundle/commit/d9841a0878239fa43f88c640f8d458590f97e8f5", + "name": "raku", + "scopeName": "source.perl.6", + "patterns": [ + { + "begin": "^=begin", + "end": "^=end", + "name": "comment.block.perl" + }, + { + "begin": "(^[ \\t]+)?(?=#)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.perl" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": "#", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.perl" + } + }, + "end": "\\n", + "name": "comment.line.number-sign.perl" + } + ] + }, + { + "captures": { + "1": { + "name": "storage.type.class.perl.6" + }, + "3": { + "name": "entity.name.type.class.perl.6" + } + }, + "match": "(class|enum|grammar|knowhow|module|package|role|slang|subset)(\\s+)(((?:::|')?(?:([a-zA-Z_\\x{C0}-\\x{FF}\\$])([a-zA-Z0-9_\\x{C0}-\\x{FF}\\\\$]|[\\-'][a-zA-Z0-9_\\x{C0}-\\x{FF}\\$])*))+)", + "name": "meta.class.perl.6" + }, + { + "begin": "(?<=\\s)'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.perl" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.perl" + } + }, + "name": "string.quoted.single.perl", + "patterns": [ + { + "match": "\\\\['\\\\]", + "name": "constant.character.escape.perl" + } + ] + }, + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.perl" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.perl" + } + }, + "name": "string.quoted.double.perl", + "patterns": [ + { + "match": "\\\\[abtnfre\"\\\\]", + "name": "constant.character.escape.perl" + } + ] + }, + { + "begin": "q(q|to|heredoc)*\\s*:?(q|to|heredoc)*\\s*/(.+)/", + "end": "\\3", + "name": "string.quoted.single.heredoc.perl" + }, + { + "begin": "(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*{{", + "end": "}}", + "name": "string.quoted.double.heredoc.brace.perl", + "patterns": [ + { + "include": "#qq_brace_string_content" + } + ] + }, + { + "begin": "(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*\\(\\(", + "end": "\\)\\)", + "name": "string.quoted.double.heredoc.paren.perl", + "patterns": [ + { + "include": "#qq_paren_string_content" + } + ] + }, + { + "begin": "(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*\\[\\[", + "end": "\\]\\]", + "name": "string.quoted.double.heredoc.bracket.perl", + "patterns": [ + { + "include": "#qq_bracket_string_content" + } + ] + }, + { + "begin": "(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*{", + "end": "}", + "name": "string.quoted.single.heredoc.brace.perl", + "patterns": [ + { + "include": "#qq_brace_string_content" + } + ] + }, + { + "begin": "(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*/", + "end": "/", + "name": "string.quoted.single.heredoc.slash.perl", + "patterns": [ + { + "include": "#qq_slash_string_content" + } + ] + }, + { + "begin": "(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*\\(", + "end": "\\)", + "name": "string.quoted.single.heredoc.paren.perl", + "patterns": [ + { + "include": "#qq_paren_string_content" + } + ] + }, + { + "begin": "(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*\\[", + "end": "\\]", + "name": "string.quoted.single.heredoc.bracket.perl", + "patterns": [ + { + "include": "#qq_bracket_string_content" + } + ] + }, + { + "begin": "(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*'", + "end": "'", + "name": "string.quoted.single.heredoc.single.perl", + "patterns": [ + { + "include": "#qq_single_string_content" + } + ] + }, + { + "begin": "(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*\"", + "end": "\"", + "name": "string.quoted.single.heredoc.double.perl", + "patterns": [ + { + "include": "#qq_double_string_content" + } + ] + }, + { + "match": "\\b\\$\\w+\\b", + "name": "variable.other.perl" + }, + { + "match": "\\b(macro|sub|submethod|method|multi|proto|only|rule|token|regex|category)\\b", + "name": "storage.type.declare.routine.perl" + }, + { + "match": "\\b(self)\\b", + "name": "variable.language.perl" + }, + { + "match": "\\b(use|require)\\b", + "name": "keyword.other.include.perl" + }, + { + "match": "\\b(if|else|elsif|unless)\\b", + "name": "keyword.control.conditional.perl" + }, + { + "match": "\\b(let|my|our|state|temp|has|constant)\\b", + "name": "storage.type.variable.perl" + }, + { + "match": "\\b(for|loop|repeat|while|until|gather|given)\\b", + "name": "keyword.control.repeat.perl" + }, + { + "match": "\\b(take|do|when|next|last|redo|return|contend|maybe|defer|default|exit|make|continue|break|goto|leave|async|lift)\\b", + "name": "keyword.control.flowcontrol.perl" + }, + { + "match": "\\b(is|as|but|trusts|of|returns|handles|where|augment|supersede)\\b", + "name": "storage.modifier.type.constraints.perl" + }, + { + "match": "\\b(BEGIN|CHECK|INIT|START|FIRST|ENTER|LEAVE|KEEP|UNDO|NEXT|LAST|PRE|POST|END|CATCH|CONTROL|TEMP)\\b", + "name": "meta.function.perl" + }, + { + "match": "\\b(die|fail|try|warn)\\b", + "name": "keyword.control.control-handlers.perl" + }, + { + "match": "\\b(prec|irs|ofs|ors|export|deep|binary|unary|reparsed|rw|parsed|cached|readonly|defequiv|will|ref|copy|inline|tighter|looser|equiv|assoc|required)\\b", + "name": "storage.modifier.perl" + }, + { + "match": "\\b(NaN|Inf)\\b", + "name": "constant.numeric.perl" + }, + { + "match": "\\b(oo|fatal)\\b", + "name": "keyword.other.pragma.perl" + }, + { + "match": "\\b(Object|Any|Junction|Whatever|Capture|MatchSignature|Proxy|Matcher|Package|Module|ClassGrammar|Scalar|Array|Hash|KeyHash|KeySet|KeyBagPair|List|Seq|Range|Set|Bag|Mapping|Void|UndefFailure|Exception|Code|Block|Routine|Sub|MacroMethod|Submethod|Regex|Str|str|Blob|Char|ByteCodepoint|Grapheme|StrPos|StrLen|Version|NumComplex|num|complex|Bit|bit|bool|True|FalseIncreasing|Decreasing|Ordered|Callable|AnyCharPositional|Associative|Ordering|KeyExtractorComparator|OrderingPair|IO|KitchenSink|RoleInt|int|int1|int2|int4|int8|int16|int32|int64Rat|rat|rat1|rat2|rat4|rat8|rat16|rat32|rat64Buf|buf|buf1|buf2|buf4|buf8|buf16|buf32|buf64UInt|uint|uint1|uint2|uint4|uint8|uint16|uint32uint64|Abstraction|utf8|utf16|utf32)\\b", + "name": "support.type.perl6" + }, + { + "match": "\\b(div|xx|x|mod|also|leg|cmp|before|after|eq|ne|le|lt|not|gt|ge|eqv|ff|fff|and|andthen|or|xor|orelse|extra|lcm|gcd)\\b", + "name": "keyword.operator.perl" + }, + { + "match": "(\\$|@|%|&)(\\*|:|!|\\^|~|=|\\?|(<(?=.+>)))?([a-zA-Z_\\x{C0}-\\x{FF}\\$])([a-zA-Z0-9_\\x{C0}-\\x{FF}\\$]|[\\-'][a-zA-Z0-9_\\x{C0}-\\x{FF}\\$])*", + "name": "variable.other.identifier.perl.6" + }, + { + "match": "\\b(eager|hyper|substr|index|rindex|grep|map|sort|join|lines|hints|chmod|split|reduce|min|max|reverse|truncate|zip|cat|roundrobin|classify|first|sum|keys|values|pairs|defined|delete|exists|elems|end|kv|any|all|one|wrap|shape|key|value|name|pop|push|shift|splice|unshift|floor|ceiling|abs|exp|log|log10|rand|sign|sqrt|sin|cos|tan|round|strand|roots|cis|unpolar|polar|atan2|pick|chop|p5chop|chomp|p5chomp|lc|lcfirst|uc|ucfirst|capitalize|normalize|pack|unpack|quotemeta|comb|samecase|sameaccent|chars|nfd|nfc|nfkd|nfkc|printf|sprintf|caller|evalfile|run|runinstead|nothing|want|bless|chr|ord|gmtime|time|eof|localtime|gethost|getpw|chroot|getlogin|getpeername|kill|fork|wait|perl|graphs|codes|bytes|clone|print|open|read|write|readline|say|seek|close|opendir|readdir|slurp|spurt|shell|run|pos|fmt|vec|link|unlink|symlink|uniq|pair|asin|atan|sec|cosec|cotan|asec|acosec|acotan|sinh|cosh|tanh|asinh|done|acos|acosh|atanh|sech|cosech|cotanh|sech|acosech|acotanh|asech|ok|nok|plan_ok|dies_ok|lives_ok|skip|todo|pass|flunk|force_todo|use_ok|isa_ok|diag|is_deeply|isnt|like|skip_rest|unlike|cmp_ok|eval_dies_ok|nok_error|eval_lives_ok|approx|is_approx|throws_ok|version_lt|plan|EVAL|succ|pred|times|nonce|once|signature|new|connect|operator|undef|undefine|sleep|from|to|infix|postfix|prefix|circumfix|postcircumfix|minmax|lazy|count|unwrap|getc|pi|e|context|void|quasi|body|each|contains|rewinddir|subst|can|isa|flush|arity|assuming|rewind|callwith|callsame|nextwith|nextsame|attr|eval_elsewhere|none|srand|trim|trim_start|trim_end|lastcall|WHAT|WHERE|HOW|WHICH|VAR|WHO|WHENCE|ACCEPTS|REJECTS|not|true|iterator|by|re|im|invert|flip|gist|flat|tree|is-prime|throws_like|trans)\\b", + "name": "support.function.perl" + } + ], + "repository": { + "qq_brace_string_content": { + "begin": "{", + "end": "}", + "patterns": [ + { + "include": "#qq_brace_string_content" + } + ] + }, + "qq_bracket_string_content": { + "begin": "\\[", + "end": "\\]", + "patterns": [ + { + "include": "#qq_bracket_string_content" + } + ] + }, + "qq_double_string_content": { + "begin": "\"", + "end": "\"", + "patterns": [ + { + "include": "#qq_double_string_content" + } + ] + }, + "qq_paren_string_content": { + "begin": "\\(", + "end": "\\)", + "patterns": [ + { + "include": "#qq_paren_string_content" + } + ] + }, + "qq_single_string_content": { + "begin": "'", + "end": "'", + "patterns": [ + { + "include": "#qq_single_string_content" + } + ] + }, + "qq_slash_string_content": { + "begin": "\\\\/", + "end": "\\\\/", + "patterns": [ + { + "include": "#qq_slash_string_content" + } + ] + } + } +} diff --git a/docs/shiki/languages/razor.tmLanguage.json b/docs/shiki/languages/razor.tmLanguage.json new file mode 100644 index 00000000..01f03506 --- /dev/null +++ b/docs/shiki/languages/razor.tmLanguage.json @@ -0,0 +1,1809 @@ +{ + "name": "razor", + "scopeName": "text.aspnetcorerazor", + "fileTypes": ["razor", "cshtml"], + "patterns": [ + { + "include": "#razor-control-structures" + }, + { + "include": "text.html.basic" + } + ], + "repository": { + "razor-control-structures": { + "patterns": [ + { + "include": "#razor-comment" + }, + { + "include": "#razor-codeblock" + }, + { + "include": "#explicit-razor-expression" + }, + { + "include": "#escaped-transition" + }, + { + "include": "#directives" + }, + { + "include": "#transitioned-csharp-control-structures" + }, + { + "include": "#implicit-expression" + } + ] + }, + "optionally-transitioned-razor-control-structures": { + "patterns": [ + { + "include": "#razor-comment" + }, + { + "include": "#razor-codeblock" + }, + { + "include": "#explicit-razor-expression" + }, + { + "include": "#escaped-transition" + }, + { + "include": "#directives" + }, + { + "include": "#optionally-transitioned-csharp-control-structures" + }, + { + "include": "#implicit-expression" + } + ] + }, + "escaped-transition": { + "name": "constant.character.escape.razor.transition", + "match": "@@" + }, + "transition": { + "match": "@", + "name": "keyword.control.cshtml.transition" + }, + "razor-codeblock": { + "name": "meta.structure.razor.codeblock", + "begin": "(@)(\\{)", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#transition" + } + ] + }, + "2": { + "name": "keyword.control.razor.directive.codeblock.open" + } + }, + "contentName": "source.cs", + "patterns": [ + { + "include": "#razor-codeblock-body" + } + ], + "end": "(\\})", + "endCaptures": { + "1": { + "name": "keyword.control.razor.directive.codeblock.close" + } + } + }, + "razor-codeblock-body": { + "patterns": [ + { + "include": "#text-tag" + }, + { + "include": "#wellformed-html" + }, + { + "include": "#razor-single-line-markup" + }, + { + "include": "#optionally-transitioned-razor-control-structures" + }, + { + "include": "source.cs" + } + ] + }, + "razor-single-line-markup": { + "match": "(\\@\\:)([^$]*)$", + "captures": { + "1": { + "name": "keyword.control.razor.singleLineMarkup" + }, + "2": { + "patterns": [ + { + "include": "#razor-control-structures" + }, + { + "include": "text.html.basic" + } + ] + } + } + }, + "text-tag": { + "begin": "(<text\\s*>)", + "beginCaptures": { + "1": { + "name": "keyword.control.cshtml.transition.textTag.open" + } + }, + "patterns": [ + { + "include": "#wellformed-html" + }, + { + "include": "$self" + } + ], + "end": "(</text>)", + "endCaptures": { + "1": { + "name": "keyword.control.cshtml.transition.textTag.close" + } + } + }, + "razor-comment": { + "name": "meta.comment.razor", + "begin": "(@)(\\*)", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#transition" + } + ] + }, + "2": { + "name": "keyword.control.razor.comment.star" + } + }, + "contentName": "comment.block.razor", + "end": "(\\*)(@)", + "endCaptures": { + "1": { + "name": "keyword.control.razor.comment.star" + }, + "2": { + "patterns": [ + { + "include": "#transition" + } + ] + } + } + }, + "wellformed-html": { + "patterns": [ + { + "include": "#void-tag" + }, + { + "include": "#non-void-tag" + } + ] + }, + "void-tag": { + "name": "meta.tag.structure.$3.void.html", + "begin": "(?i)(<)(!)?(area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)(?=\\s|/?>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "constant.character.escape.razor.tagHelperOptOut" + }, + "3": { + "name": "entity.name.tag.html" + } + }, + "patterns": [ + { + "include": "text.html.basic#attribute" + } + ], + "end": "/?>", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.html" + } + } + }, + "non-void-tag": { + "begin": "(?=<(!)?([^/\\s>]+)(\\s|/?>))", + "end": "(</)(\\2)\\s*(>)|(/>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + }, + "3": { + "name": "punctuation.definition.tag.end.html" + }, + "4": { + "name": "punctuation.definition.tag.end.html" + } + }, + "patterns": [ + { + "begin": "(<)(!)?([^/\\s>]+)(?=\\s|/?>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "constant.character.escape.razor.tagHelperOptOut" + }, + "3": { + "name": "entity.name.tag.html" + } + }, + "end": "(?=/?>)", + "patterns": [ + { + "include": "#razor-control-structures" + }, + { + "include": "text.html.basic#attribute" + } + ] + }, + { + "begin": ">", + "beginCaptures": { + "0": { + "name": "punctuation.definition.tag.end.html" + } + }, + "end": "(?=</)", + "patterns": [ + { + "include": "#wellformed-html" + }, + { + "include": "$self" + } + ] + } + ] + }, + "explicit-razor-expression": { + "name": "meta.expression.explicit.cshtml", + "begin": "(@)\\(", + "beginCaptures": { + "0": { + "name": "keyword.control.cshtml" + }, + "1": { + "patterns": [ + { + "include": "#transition" + } + ] + } + }, + "patterns": [ + { + "include": "source.cs#expression" + } + ], + "end": "\\)", + "endCaptures": { + "0": { + "name": "keyword.control.cshtml" + } + } + }, + "implicit-expression": { + "name": "meta.expression.implicit.cshtml", + "contentName": "source.cs", + "begin": "(?<![[:alpha:][:alnum:]])(@)", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#transition" + } + ] + } + }, + "patterns": [ + { + "include": "#await-prefix" + }, + { + "include": "#implicit-expression-body" + } + ], + "end": "(?=[\\s<>\\{\\}\\)\\]'\"])" + }, + "implicit-expression-body": { + "patterns": [ + { + "include": "#implicit-expression-invocation-start" + }, + { + "include": "#implicit-expression-accessor-start" + } + ], + "end": "(?=[\\s<>\\{\\}\\)\\]'\"])" + }, + "implicit-expression-invocation-start": { + "begin": "([_[:alpha:]][_[:alnum:]]*)(?=\\()", + "beginCaptures": { + "1": { + "name": "entity.name.function.cs" + } + }, + "patterns": [ + { + "include": "#implicit-expression-continuation" + } + ], + "end": "(?=[\\s<>\\{\\}\\)\\]'\"])" + }, + "implicit-expression-accessor-start": { + "begin": "([_[:alpha:]][_[:alnum:]]*)", + "beginCaptures": { + "1": { + "name": "variable.other.object.cs" + } + }, + "patterns": [ + { + "include": "#implicit-expression-continuation" + } + ], + "end": "(?=[\\s<>\\{\\}\\)\\]'\"])" + }, + "implicit-expression-continuation": { + "patterns": [ + { + "include": "#balanced-parenthesis-csharp" + }, + { + "include": "#balanced-brackets-csharp" + }, + { + "include": "#implicit-expression-invocation" + }, + { + "include": "#implicit-expression-accessor" + }, + { + "include": "#implicit-expression-extension" + } + ], + "end": "(?=[\\s<>\\{\\}\\)\\]'\"])" + }, + "implicit-expression-accessor": { + "match": "(?<=\\.)[_[:alpha:]][_[:alnum:]]*", + "name": "variable.other.object.property.cs" + }, + "implicit-expression-invocation": { + "match": "(?<=\\.)[_[:alpha:]][_[:alnum:]]*(?=\\()", + "name": "entity.name.function.cs" + }, + "implicit-expression-operator": { + "patterns": [ + { + "include": "#implicit-expression-dot-operator" + }, + { + "include": "#implicit-expression-null-conditional-operator" + }, + { + "include": "#implicit-expression-null-forgiveness-operator" + } + ] + }, + "implicit-expression-dot-operator": { + "match": "(\\.)(?=[_[:alpha:]][_[:alnum:]]*)", + "captures": { + "1": { + "name": "punctuation.accessor.cs" + } + } + }, + "implicit-expression-null-conditional-operator": { + "match": "(\\?)(?=[.\\[])", + "captures": { + "1": { + "name": "keyword.operator.null-conditional.cs" + } + } + }, + "implicit-expression-null-forgiveness-operator": { + "match": "(\\!)(?=(?:\\.[_[:alpha:]][_[:alnum:]]*)|\\?|[\\[\\(])", + "captures": { + "1": { + "name": "keyword.operator.logical.cs" + } + } + }, + "balanced-parenthesis-csharp": { + "begin": "(\\()", + "beginCaptures": { + "1": { + "name": "punctuation.parenthesis.open.cs" + } + }, + "name": "razor.test.balanced.parenthesis", + "patterns": [ + { + "include": "source.cs" + } + ], + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.parenthesis.close.cs" + } + } + }, + "balanced-brackets-csharp": { + "begin": "(\\[)", + "beginCaptures": { + "1": { + "name": "punctuation.squarebracket.open.cs" + } + }, + "name": "razor.test.balanced.brackets", + "patterns": [ + { + "include": "source.cs" + } + ], + "end": "(\\])", + "endCaptures": { + "1": { + "name": "punctuation.squarebracket.close.cs" + } + } + }, + "directives": { + "patterns": [ + { + "include": "#code-directive" + }, + { + "include": "#functions-directive" + }, + { + "include": "#page-directive" + }, + { + "include": "#addTagHelper-directive" + }, + { + "include": "#removeTagHelper-directive" + }, + { + "include": "#tagHelperPrefix-directive" + }, + { + "include": "#model-directive" + }, + { + "include": "#inherits-directive" + }, + { + "include": "#implements-directive" + }, + { + "include": "#namespace-directive" + }, + { + "include": "#inject-directive" + }, + { + "include": "#attribute-directive" + }, + { + "include": "#section-directive" + }, + { + "include": "#layout-directive" + }, + { + "include": "#using-directive" + } + ] + }, + "code-directive": { + "begin": "(@)(code)((?=\\{)|\\s+)", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#transition" + } + ] + }, + "2": { + "name": "keyword.control.razor.directive.code" + } + }, + "patterns": [ + { + "include": "#directive-codeblock" + } + ], + "end": "(?<=})|\\s" + }, + "functions-directive": { + "begin": "(@)(functions)((?=\\{)|\\s+)", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#transition" + } + ] + }, + "2": { + "name": "keyword.control.razor.directive.functions" + } + }, + "patterns": [ + { + "include": "#directive-codeblock" + } + ], + "end": "(?<=})|\\s" + }, + "directive-codeblock": { + "begin": "(\\{)", + "beginCaptures": { + "1": { + "name": "keyword.control.razor.directive.codeblock.open" + } + }, + "name": "meta.structure.razor.directive.codeblock", + "contentName": "source.cs", + "patterns": [ + { + "include": "source.cs#class-or-struct-members" + } + ], + "end": "(\\})", + "endCaptures": { + "1": { + "name": "keyword.control.razor.directive.codeblock.close" + } + } + }, + "page-directive": { + "name": "meta.directive", + "match": "(@)(page)\\s+([^$]+)?", + "captures": { + "1": { + "patterns": [ + { + "include": "#transition" + } + ] + }, + "2": { + "name": "keyword.control.razor.directive.page" + }, + "3": { + "patterns": [ + { + "include": "source.cs#string-literal" + } + ] + } + } + }, + "addTagHelper-directive": { + "name": "meta.directive", + "match": "(@)(addTagHelper)\\s+([^$]+)?", + "captures": { + "1": { + "patterns": [ + { + "include": "#transition" + } + ] + }, + "2": { + "name": "keyword.control.razor.directive.addTagHelper" + }, + "3": { + "patterns": [ + { + "include": "#tagHelper-directive-argument" + } + ] + } + } + }, + "removeTagHelper-directive": { + "name": "meta.directive", + "match": "(@)(removeTagHelper)\\s+([^$]+)?", + "captures": { + "1": { + "patterns": [ + { + "include": "#transition" + } + ] + }, + "2": { + "name": "keyword.control.razor.directive.removeTagHelper" + }, + "3": { + "patterns": [ + { + "include": "#tagHelper-directive-argument" + } + ] + } + } + }, + "tagHelperPrefix-directive": { + "name": "meta.directive", + "match": "(@)(tagHelperPrefix)\\s+([^$]+)?", + "captures": { + "1": { + "patterns": [ + { + "include": "#transition" + } + ] + }, + "2": { + "name": "keyword.control.razor.directive.tagHelperPrefix" + }, + "3": { + "patterns": [ + { + "include": "#tagHelper-directive-argument" + } + ] + } + } + }, + "tagHelper-directive-argument": { + "patterns": [ + { + "include": "source.cs#string-literal" + }, + { + "include": "#unquoted-string-argument" + } + ] + }, + "unquoted-string-argument": { + "name": "string.quoted.double.cs", + "match": "[^$]+" + }, + "model-directive": { + "name": "meta.directive", + "match": "(@)(model)\\s+([^$]+)?", + "captures": { + "1": { + "patterns": [ + { + "include": "#transition" + } + ] + }, + "2": { + "name": "keyword.control.razor.directive.model" + }, + "3": { + "patterns": [ + { + "include": "source.cs#type" + } + ] + } + } + }, + "inherits-directive": { + "name": "meta.directive", + "match": "(@)(inherits)\\s+([^$]+)?", + "captures": { + "1": { + "patterns": [ + { + "include": "#transition" + } + ] + }, + "2": { + "name": "keyword.control.razor.directive.inherits" + }, + "3": { + "patterns": [ + { + "include": "source.cs#type" + } + ] + } + } + }, + "implements-directive": { + "name": "meta.directive", + "match": "(@)(implements)\\s+([^$]+)?", + "captures": { + "1": { + "patterns": [ + { + "include": "#transition" + } + ] + }, + "2": { + "name": "keyword.control.razor.directive.implements" + }, + "3": { + "patterns": [ + { + "include": "source.cs#type" + } + ] + } + } + }, + "layout-directive": { + "name": "meta.directive", + "match": "(@)(layout)\\s+([^$]+)?", + "captures": { + "1": { + "patterns": [ + { + "include": "#transition" + } + ] + }, + "2": { + "name": "keyword.control.razor.directive.layout" + }, + "3": { + "patterns": [ + { + "include": "source.cs#type" + } + ] + } + } + }, + "namespace-directive": { + "name": "meta.directive", + "match": "(@)(namespace)\\s+([^\\s]+)?", + "captures": { + "1": { + "patterns": [ + { + "include": "#transition" + } + ] + }, + "2": { + "name": "keyword.control.razor.directive.namespace" + }, + "3": { + "patterns": [ + { + "include": "#namespace-directive-argument" + } + ] + } + } + }, + "namespace-directive-argument": { + "match": "([_[:alpha:]][_[:alnum:]]*)(\\.)?", + "captures": { + "1": { + "name": "entity.name.type.namespace.cs" + }, + "2": { + "name": "punctuation.accessor.cs" + } + } + }, + "inject-directive": { + "name": "meta.directive", + "match": "(@)(inject)\\s*([\\S\\s]+?)?\\s*([_[:alpha:]][_[:alnum:]]*)?\\s*(?=$)", + "captures": { + "1": { + "patterns": [ + { + "include": "#transition" + } + ] + }, + "2": { + "name": "keyword.control.razor.directive.inject" + }, + "3": { + "patterns": [ + { + "include": "source.cs#type" + } + ] + }, + "4": { + "name": "entity.name.variable.property.cs" + } + } + }, + "attribute-directive": { + "name": "meta.directive", + "begin": "(@)(attribute)\\b\\s+", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#transition" + } + ] + }, + "2": { + "name": "keyword.control.razor.directive.attribute" + } + }, + "patterns": [ + { + "include": "source.cs#attribute-section" + } + ], + "end": "(?<=\\])|$" + }, + "section-directive": { + "name": "meta.directive.block", + "begin": "(@)(section)\\b\\s+([_[:alpha:]][_[:alnum:]]*)?", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#transition" + } + ] + }, + "2": { + "name": "keyword.control.razor.directive.section" + }, + "3": { + "name": "variable.other.razor.directive.sectionName" + } + }, + "patterns": [ + { + "include": "#directive-markupblock" + } + ], + "end": "(?<=})" + }, + "directive-markupblock": { + "name": "meta.structure.razor.directive.markblock", + "begin": "(\\{)", + "beginCaptures": { + "1": { + "name": "keyword.control.razor.directive.codeblock.open" + } + }, + "patterns": [ + { + "include": "$self" + } + ], + "end": "(\\})", + "endCaptures": { + "1": { + "name": "keyword.control.razor.directive.codeblock.close" + } + } + }, + "using-directive": { + "name": "meta.directive", + "match": "(@)(using)\\b\\s+(?!\\(|\\s)(.+?)?(;)?$", + "captures": { + "1": { + "patterns": [ + { + "include": "#transition" + } + ] + }, + "2": { + "name": "keyword.other.using.cs" + }, + "3": { + "patterns": [ + { + "include": "#using-static-directive" + }, + { + "include": "#using-alias-directive" + }, + { + "include": "#using-standard-directive" + } + ] + }, + "4": { + "name": "keyword.control.razor.optionalSemicolon" + } + } + }, + "using-static-directive": { + "match": "(static)\\b\\s+(.+)", + "captures": { + "1": { + "name": "keyword.other.static.cs" + }, + "2": { + "patterns": [ + { + "include": "source.cs#type" + } + ] + } + } + }, + "using-alias-directive": { + "match": "([_[:alpha:]][_[:alnum:]]*)\\b\\s*(=)\\s*(.+)\\s*", + "captures": { + "1": { + "name": "entity.name.type.alias.cs" + }, + "2": { + "name": "keyword.operator.assignment.cs" + }, + "3": { + "patterns": [ + { + "include": "source.cs#type" + } + ] + } + } + }, + "using-standard-directive": { + "match": "([_[:alpha:]][_[:alnum:]]*)\\s*", + "captures": { + "1": { + "name": "entity.name.type.namespace.cs" + } + } + }, + "optionally-transitioned-csharp-control-structures": { + "patterns": [ + { + "include": "#using-statement-with-optional-transition" + }, + { + "include": "#if-statement-with-optional-transition" + }, + { + "include": "#else-part" + }, + { + "include": "#foreach-statement-with-optional-transition" + }, + { + "include": "#for-statement-with-optional-transition" + }, + { + "include": "#while-statement" + }, + { + "include": "#switch-statement-with-optional-transition" + }, + { + "include": "#lock-statement-with-optional-transition" + }, + { + "include": "#do-statement-with-optional-transition" + }, + { + "include": "#try-statement-with-optional-transition" + } + ] + }, + "transitioned-csharp-control-structures": { + "patterns": [ + { + "include": "#using-statement" + }, + { + "include": "#if-statement" + }, + { + "include": "#else-part" + }, + { + "include": "#foreach-statement" + }, + { + "include": "#for-statement" + }, + { + "include": "#while-statement" + }, + { + "include": "#switch-statement" + }, + { + "include": "#lock-statement" + }, + { + "include": "#do-statement" + }, + { + "include": "#try-statement" + } + ] + }, + "using-statement": { + "name": "meta.statement.using.razor", + "begin": "(?:(@))(using)\\b\\s*(?=\\()", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#transition" + } + ] + }, + "2": { + "name": "keyword.other.using.cs" + } + }, + "patterns": [ + { + "include": "#csharp-condition" + }, + { + "include": "#csharp-code-block" + }, + { + "include": "#razor-codeblock-body" + } + ], + "end": "(?<=})" + }, + "using-statement-with-optional-transition": { + "name": "meta.statement.using.razor", + "begin": "(?:^\\s*|(@))(using)\\b\\s*(?=\\()", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#transition" + } + ] + }, + "2": { + "name": "keyword.other.using.cs" + } + }, + "patterns": [ + { + "include": "#csharp-condition" + }, + { + "include": "#csharp-code-block" + }, + { + "include": "#razor-codeblock-body" + } + ], + "end": "(?<=})" + }, + "if-statement": { + "name": "meta.statement.if.razor", + "begin": "(?:(@))(if)\\b\\s*(?=\\()", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#transition" + } + ] + }, + "2": { + "name": "keyword.control.conditional.if.cs" + } + }, + "patterns": [ + { + "include": "#csharp-condition" + }, + { + "include": "#csharp-code-block" + }, + { + "include": "#razor-codeblock-body" + } + ], + "end": "(?<=})" + }, + "if-statement-with-optional-transition": { + "name": "meta.statement.if.razor", + "begin": "(?:^\\s*|(@))(if)\\b\\s*(?=\\()", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#transition" + } + ] + }, + "2": { + "name": "keyword.control.conditional.if.cs" + } + }, + "patterns": [ + { + "include": "#csharp-condition" + }, + { + "include": "#csharp-code-block" + }, + { + "include": "#razor-codeblock-body" + } + ], + "end": "(?<=})" + }, + "else-part": { + "name": "meta.statement.else.razor", + "begin": "(?:^|(?<=}))\\s*(else)\\b\\s*?(?: (if))?\\s*?(?=[\\n\\(\\{])", + "beginCaptures": { + "1": { + "name": "keyword.control.conditional.else.cs" + }, + "2": { + "name": "keyword.control.conditional.if.cs" + } + }, + "patterns": [ + { + "include": "#csharp-condition" + }, + { + "include": "#csharp-code-block" + }, + { + "include": "#razor-codeblock-body" + } + ], + "end": "(?<=})" + }, + "for-statement": { + "name": "meta.statement.for.razor", + "begin": "(?:(@))(for)\\b\\s*(?=\\()", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#transition" + } + ] + }, + "2": { + "name": "keyword.control.loop.for.cs" + } + }, + "patterns": [ + { + "include": "#csharp-condition" + }, + { + "include": "#csharp-code-block" + }, + { + "include": "#razor-codeblock-body" + } + ], + "end": "(?<=})" + }, + "for-statement-with-optional-transition": { + "name": "meta.statement.for.razor", + "begin": "(?:^\\s*|(@))(for)\\b\\s*(?=\\()", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#transition" + } + ] + }, + "2": { + "name": "keyword.control.loop.for.cs" + } + }, + "patterns": [ + { + "include": "#csharp-condition" + }, + { + "include": "#csharp-code-block" + }, + { + "include": "#razor-codeblock-body" + } + ], + "end": "(?<=})" + }, + "foreach-statement": { + "name": "meta.statement.foreach.razor", + "begin": "(?:(@)(await\\s+)?)(foreach)\\b\\s*(?=\\()", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#transition" + } + ] + }, + "2": { + "patterns": [ + { + "include": "#await-prefix" + } + ] + }, + "3": { + "name": "keyword.control.loop.foreach.cs" + } + }, + "patterns": [ + { + "include": "#foreach-condition" + }, + { + "include": "#csharp-code-block" + }, + { + "include": "#razor-codeblock-body" + } + ], + "end": "(?<=})" + }, + "foreach-statement-with-optional-transition": { + "name": "meta.statement.foreach.razor", + "begin": "(?:^\\s*|(@)(await\\s+)?)(foreach)\\b\\s*(?=\\()", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#transition" + } + ] + }, + "2": { + "patterns": [ + { + "include": "#await-prefix" + } + ] + }, + "3": { + "name": "keyword.control.loop.foreach.cs" + } + }, + "patterns": [ + { + "include": "#foreach-condition" + }, + { + "include": "#csharp-code-block" + }, + { + "include": "#razor-codeblock-body" + } + ], + "end": "(?<=})" + }, + "foreach-condition": { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.parenthesis.open.cs" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.parenthesis.close.cs" + } + }, + "patterns": [ + { + "match": "(?x)\n(?:\n (\\bvar\\b)|\n (?<type-name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name-and-type-args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type-args>\\s*<(?:[^<>]|\\g<type-args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name-and-type-args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n )\n)\\s+\n(\\g<identifier>)\\s+\n\\b(in)\\b", + "captures": { + "1": { + "name": "keyword.other.var.cs" + }, + "2": { + "patterns": [ + { + "include": "source.cs#type" + } + ] + }, + "7": { + "name": "entity.name.variable.local.cs" + }, + "8": { + "name": "keyword.control.loop.in.cs" + } + } + }, + { + "match": "(?x) # match foreach (var (x, y) in ...)\n(?:\\b(var)\\b\\s*)?\n(?<tuple>\\((?:[^\\(\\)]|\\g<tuple>)+\\))\\s+\n\\b(in)\\b", + "captures": { + "1": { + "name": "keyword.other.var.cs" + }, + "2": { + "patterns": [ + { + "include": "source.cs#tuple-declaration-deconstruction-element-list" + } + ] + }, + "3": { + "name": "keyword.control.loop.in.cs" + } + } + }, + { + "include": "source.cs#expression" + } + ] + }, + "do-statement": { + "name": "meta.statement.do.razor", + "begin": "(?:(@))(do)\\b\\s", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#transition" + } + ] + }, + "2": { + "name": "keyword.control.loop.do.cs" + } + }, + "patterns": [ + { + "include": "#csharp-condition" + }, + { + "include": "#csharp-code-block" + }, + { + "include": "#razor-codeblock-body" + } + ], + "end": "(?<=})" + }, + "do-statement-with-optional-transition": { + "name": "meta.statement.do.razor", + "begin": "(?:^\\s*|(@))(do)\\b\\s", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#transition" + } + ] + }, + "2": { + "name": "keyword.control.loop.do.cs" + } + }, + "patterns": [ + { + "include": "#csharp-condition" + }, + { + "include": "#csharp-code-block" + }, + { + "include": "#razor-codeblock-body" + } + ], + "end": "(?<=})" + }, + "while-statement": { + "name": "meta.statement.while.razor", + "begin": "(?:(@)|^\\s*|(?<=})\\s*)(while)\\b\\s*(?=\\()", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#transition" + } + ] + }, + "2": { + "name": "keyword.control.loop.while.cs" + } + }, + "patterns": [ + { + "include": "#csharp-condition" + }, + { + "include": "#csharp-code-block" + }, + { + "include": "#razor-codeblock-body" + } + ], + "end": "(?<=})|(;)", + "endCaptures": { + "1": { + "name": "punctuation.terminator.statement.cs" + } + } + }, + "switch-statement": { + "name": "meta.statement.switch.razor", + "begin": "(?:(@))(switch)\\b\\s*(?=\\()", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#transition" + } + ] + }, + "2": { + "name": "keyword.control.switch.cs" + } + }, + "patterns": [ + { + "include": "#csharp-condition" + }, + { + "include": "#switch-code-block" + }, + { + "include": "#razor-codeblock-body" + } + ], + "end": "(?<=})" + }, + "switch-statement-with-optional-transition": { + "name": "meta.statement.switch.razor", + "begin": "(?:^\\s*|(@))(switch)\\b\\s*(?=\\()", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#transition" + } + ] + }, + "2": { + "name": "keyword.control.switch.cs" + } + }, + "patterns": [ + { + "include": "#csharp-condition" + }, + { + "include": "#switch-code-block" + }, + { + "include": "#razor-codeblock-body" + } + ], + "end": "(?<=})" + }, + "switch-code-block": { + "name": "meta.structure.razor.csharp.codeblock.switch", + "begin": "(\\{)", + "beginCaptures": { + "1": { + "name": "punctuation.curlybrace.open.cs" + } + }, + "patterns": [ + { + "include": "source.cs#switch-label" + }, + { + "include": "#razor-codeblock-body" + } + ], + "end": "(\\})", + "endCaptures": { + "1": { + "name": "punctuation.curlybrace.close.cs" + } + } + }, + "lock-statement": { + "name": "meta.statement.lock.razor", + "begin": "(?:(@))(lock)\\b\\s*(?=\\()", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#transition" + } + ] + }, + "2": { + "name": "keyword.other.lock.cs" + } + }, + "patterns": [ + { + "include": "#csharp-condition" + }, + { + "include": "#csharp-code-block" + }, + { + "include": "#razor-codeblock-body" + } + ], + "end": "(?<=})" + }, + "lock-statement-with-optional-transition": { + "name": "meta.statement.lock.razor", + "begin": "(?:^\\s*|(@))(lock)\\b\\s*(?=\\()", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#transition" + } + ] + }, + "2": { + "name": "keyword.other.lock.cs" + } + }, + "patterns": [ + { + "include": "#csharp-condition" + }, + { + "include": "#csharp-code-block" + }, + { + "include": "#razor-codeblock-body" + } + ], + "end": "(?<=})" + }, + "try-statement": { + "patterns": [ + { + "include": "#try-block" + }, + { + "include": "#catch-clause" + }, + { + "include": "#finally-clause" + } + ] + }, + "try-statement-with-optional-transition": { + "patterns": [ + { + "include": "#try-block-with-optional-transition" + }, + { + "include": "#catch-clause" + }, + { + "include": "#finally-clause" + } + ] + }, + "try-block": { + "name": "meta.statement.try.razor", + "begin": "(?:(@))(try)\\b\\s*", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#transition" + } + ] + }, + "2": { + "name": "keyword.control.try.cs" + } + }, + "patterns": [ + { + "include": "#csharp-condition" + }, + { + "include": "#csharp-code-block" + }, + { + "include": "#razor-codeblock-body" + } + ], + "end": "(?<=})" + }, + "try-block-with-optional-transition": { + "name": "meta.statement.try.razor", + "begin": "(?:^\\s*|(@))(try)\\b\\s*", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#transition" + } + ] + }, + "2": { + "name": "keyword.control.try.cs" + } + }, + "patterns": [ + { + "include": "#csharp-condition" + }, + { + "include": "#csharp-code-block" + }, + { + "include": "#razor-codeblock-body" + } + ], + "end": "(?<=})" + }, + "catch-clause": { + "name": "meta.statement.catch.razor", + "begin": "(?:^|(?<=}))\\s*(catch)\\b\\s*?(?=[\\n\\(\\{])", + "beginCaptures": { + "1": { + "name": "keyword.control.try.catch.cs" + } + }, + "patterns": [ + { + "include": "#catch-condition" + }, + { + "include": "source.cs#when-clause" + }, + { + "include": "#csharp-code-block" + }, + { + "include": "#razor-codeblock-body" + } + ], + "end": "(?<=})" + }, + "catch-condition": { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.parenthesis.open.cs" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.parenthesis.close.cs" + } + }, + "patterns": [ + { + "match": "(?x)\n(?<type-name>\n (?:\n (?:\n (?:(?<identifier>@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (?<name-and-type-args> # identifier + type arguments (if any)\n \\g<identifier>\\s*\n (?<type-args>\\s*<(?:[^<>]|\\g<type-args>)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g<name-and-type-args>)* | # Are there any more names being dotted into?\n (?<tuple>\\s*\\((?:[^\\(\\)]|\\g<tuple>)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)\\s*\n(?:(\\g<identifier>)\\b)?", + "captures": { + "1": { + "patterns": [ + { + "include": "source.cs#type" + } + ] + }, + "6": { + "name": "entity.name.variable.local.cs" + } + } + } + ] + }, + "finally-clause": { + "name": "meta.statement.finally.razor", + "begin": "(?:^|(?<=}))\\s*(finally)\\b\\s*?(?=[\\n\\{])", + "beginCaptures": { + "1": { + "name": "keyword.control.try.finally.cs" + } + }, + "patterns": [ + { + "include": "#csharp-code-block" + }, + { + "include": "#razor-codeblock-body" + } + ], + "end": "(?<=})" + }, + "await-prefix": { + "name": "keyword.other.await.cs", + "match": "(await)\\s+" + }, + "csharp-code-block": { + "name": "meta.structure.razor.csharp.codeblock", + "begin": "(\\{)", + "beginCaptures": { + "1": { + "name": "punctuation.curlybrace.open.cs" + } + }, + "patterns": [ + { + "include": "#razor-codeblock-body" + } + ], + "end": "(\\})", + "endCaptures": { + "1": { + "name": "punctuation.curlybrace.close.cs" + } + } + }, + "csharp-condition": { + "begin": "(\\()", + "beginCaptures": { + "1": { + "name": "punctuation.parenthesis.open.cs" + } + }, + "patterns": [ + { + "include": "source.cs#local-variable-declaration" + }, + { + "include": "source.cs#expression" + }, + { + "include": "source.cs#punctuation-comma" + }, + { + "include": "source.cs#punctuation-semicolon" + } + ], + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.parenthesis.close.cs" + } + } + } + } +} diff --git a/docs/shiki/languages/reg.tmLanguage.json b/docs/shiki/languages/reg.tmLanguage.json new file mode 100644 index 00000000..a04132fe --- /dev/null +++ b/docs/shiki/languages/reg.tmLanguage.json @@ -0,0 +1,133 @@ +{ + "fileTypes": ["reg", "REG"], + "name": "reg", + "patterns": [ + { + "match": "Windows Registry Editor Version 5\\.00|REGEDIT4", + "name": "keyword.control.import.reg" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.comment.reg" + } + }, + "match": "(;).*$", + "name": "comment.line.semicolon.reg" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.section.reg" + }, + "2": { + "name": "entity.section.reg" + }, + "3": { + "name": "punctuation.definition.section.reg" + } + }, + "match": "^\\s*(\\[(?!-))(.*?)(\\])", + "name": "entity.name.function.section.add.reg" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.section.reg" + }, + "2": { + "name": "entity.section.reg" + }, + "3": { + "name": "punctuation.definition.section.reg" + } + }, + "match": "^\\s*(\\[-)(.*?)(\\])", + "name": "entity.name.function.section.delete.reg" + }, + { + "captures": { + "2": { + "name": "punctuation.definition.quote.reg" + }, + "3": { + "name": "support.function.regname.ini" + }, + "4": { + "name": "punctuation.definition.quote.reg" + }, + "5": { + "name": "punctuation.definition.equals.reg" + }, + "7": { + "name": "keyword.operator.arithmetic.minus.reg" + }, + "9": { + "name": "punctuation.definition.quote.reg" + }, + "10": { + "name": "string.name.regdata.reg" + }, + "11": { + "name": "punctuation.definition.quote.reg" + }, + "13": { + "name": "support.type.dword.reg" + }, + "14": { + "name": "keyword.operator.arithmetic.colon.reg" + }, + "15": { + "name": "constant.numeric.dword.reg" + }, + "17": { + "name": "support.type.dword.reg" + }, + "18": { + "name": "keyword.operator.arithmetic.parenthesis.reg" + }, + "19": { + "name": "keyword.operator.arithmetic.parenthesis.reg" + }, + "20": { + "name": "constant.numeric.hex.size.reg" + }, + "21": { + "name": "keyword.operator.arithmetic.parenthesis.reg" + }, + "22": { + "name": "keyword.operator.arithmetic.colon.reg" + }, + "23": { + "name": "constant.numeric.hex.reg" + }, + "24": { + "name": "keyword.operator.arithmetic.linecontinuation.reg" + }, + "25": { + "name": "comment.declarationline.semicolon.reg" + } + }, + "match": "^(\\s*([\"']?)(.+?)([\"']?)\\s*(=))?\\s*((-)|(([\"'])(.*?)([\"']))|(((?i:dword))(\\:)\\s*([\\dabcdefABCDEF]{1,8}))|(((?i:hex))((\\()([\\d]*)(\\)))?(\\:)(.*?)(\\\\?)))\\s*(;.*)?$", + "name": "meta.declaration.reg" + }, + { + "match": "[0-9]+", + "name": "constant.numeric.reg" + }, + { + "match": "[a-fA-F]+", + "name": "constant.numeric.hex.reg" + }, + { + "match": ",+", + "name": "constant.numeric.hex.comma.reg" + }, + { + "match": "\\\\", + "name": "keyword.operator.arithmetic.linecontinuation.reg" + } + ], + "scopeName": "source.reg", + "uuid": "B7773F5B-C43A-4BB9-843A-4AC119250EBD" +} diff --git a/docs/shiki/languages/rel.tmLanguage.json b/docs/shiki/languages/rel.tmLanguage.json new file mode 100644 index 00000000..c8e72f5f --- /dev/null +++ b/docs/shiki/languages/rel.tmLanguage.json @@ -0,0 +1,200 @@ +{ + "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", + "name": "rel", + "patterns": [ + { + "include": "#strings" + }, + { + "include": "#comment" + }, + { + "include": "#single-line-comment-consuming-line-ending" + }, + { + "include": "#deprecated-temporary" + }, + { + "include": "#operators" + }, + { + "include": "#symbols" + }, + { + "include": "#keywords" + }, + { + "include": "#otherkeywords" + }, + { + "include": "#types" + }, + { + "include": "#constants" + } + ], + "repository": { + "strings": { + "name": "string.quoted.double.rel", + "begin": "\"", + "end": "\"", + "patterns": [ + { + "name": "constant.character.escape.rel", + "match": "\\\\." + } + ] + }, + "comment": { + "patterns": [ + { + "name": "comment.block.documentation.rel", + "begin": "/\\*\\*(?!/)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.rel" + } + }, + "end": "\\*/", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.rel" + } + }, + "patterns": [ + { + "include": "#docblock" + } + ] + }, + { + "name": "comment.block.rel", + "begin": "(/\\*)(?:\\s*((@)internal)(?=\\s|(\\*/)))?", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.rel" + }, + "2": { + "name": "storage.type.internaldeclaration.rel" + }, + "3": { + "name": "punctuation.decorator.internaldeclaration.rel" + } + }, + "end": "\\*/", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.rel" + } + } + }, + { + "name": "comment.block.documentation.rel", + "begin": "doc\"\"\"", + "end": "\"\"\"" + }, + { + "begin": "(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.rel" + }, + "2": { + "name": "comment.line.double-slash.rel" + }, + "3": { + "name": "punctuation.definition.comment.rel" + }, + "4": { + "name": "storage.type.internaldeclaration.rel" + }, + "5": { + "name": "punctuation.decorator.internaldeclaration.rel" + } + }, + "end": "(?=$)", + "contentName": "comment.line.double-slash.rel" + } + ] + }, + "single-line-comment-consuming-line-ending": { + "begin": "(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.rel" + }, + "2": { + "name": "comment.line.double-slash.rel" + }, + "3": { + "name": "punctuation.definition.comment.rel" + }, + "4": { + "name": "storage.type.internaldeclaration.rel" + }, + "5": { + "name": "punctuation.decorator.internaldeclaration.rel" + } + }, + "end": "(?=^)", + "contentName": "comment.line.double-slash.rel" + }, + "deprecated-temporary": { + "patterns": [ + { + "name": "keyword.other.rel", + "match": "@inspect" + } + ] + }, + "operators": { + "patterns": [ + { + "name": "keyword.other.rel", + "match": "(\\b(if|then|else|and|or|not|eq|neq|lt|lt_eq|gt|gt_eq)\\b)|(\\+|\\-|\\*|\\/|÷|\\^|\\%|\\=|\\!\\=|≠|\\<|\\<\\=|≤|\\>|\\>\\=|≥|\\&)|\\s+(end)" + } + ] + }, + "symbols": { + "patterns": [ + { + "name": "variable.parameter.rel", + "match": "(:[\\[_$[:alpha:]](\\]|[_$[:alnum:]]*))" + } + ] + }, + "keywords": { + "patterns": [ + { + "name": "keyword.control.rel", + "match": "(\\b(def|entity|bound|include|ic|forall|exists|∀|∃|return|module|^end)\\b)|(((\\<)?\\|(\\>)?)|∀|∃)" + } + ] + }, + "otherkeywords": { + "patterns": [ + { + "name": "keyword.other.rel", + "match": "\\s*(@inline)\\s*|\\s*(@auto_number)\\s*|\\s*(function)\\s|(\\b(implies|select|from|∈|where|for|in)\\b)|(((\\<)?\\|(\\>)?)|∈)" + } + ] + }, + "types": { + "patterns": [ + { + "name": "entity.name.type.rel", + "match": "(\\b(Symbol|Char|Bool|Rational|FixedDecimal|Float16|Float32|Float64|Int8|Int16|Int32|Int64|Int128|UInt8|UInt16|UInt32|UInt64|UInt128|Date|DateTime|Day|Week|Month|Year|Nanosecond|Microsecond|Millisecond|Second|Minute|Hour|FilePos|HashValue|AutoNumberValue)\\b)" + } + ] + }, + "constants": { + "patterns": [ + { + "name": "constant.language.rel", + "match": "(\\b(true|false)\\b)" + } + ] + } + }, + "scopeName": "source.rel" +} diff --git a/docs/shiki/languages/riscv.tmLanguage.json b/docs/shiki/languages/riscv.tmLanguage.json new file mode 100644 index 00000000..ba928b5a --- /dev/null +++ b/docs/shiki/languages/riscv.tmLanguage.json @@ -0,0 +1,294 @@ +{ + "fileTypes": ["S", "s", "riscv", "asm"], + "keyEquivalent": "^~M", + "name": "riscv", + "patterns": [ + { + "comment": "ok actually this are instructions, but one also could call them funtions…", + "match": "\\b(la|lb|lh|lw|ld|nop|li|mv|not|neg|negw|sext\\.w|seqz|snez|sltz|sgtz|beqz|bnez|blez|bgez|bltz|bgtz|bgt|ble|bgtu|bleu|j|jal|jr|ret|call|tail|fence|csr[r|w|s|c]|csr[w|s|c]i)\\b", + "name": "support.function.pseudo.riscv" + }, + { + "match": "\\b(add|addw|auipc|lui|jalr|beq|bne|blt|bge|bltu|bgeu|lb|lh|lw|ld|lbu|lhu|sb|sh|sw|sd|addi|addiw|slti|sltiu|xori|ori|andi|slli|slliw|srli|srliw|srai|sraiw|sub|subw|sll|sllw|slt|sltu|xor|srl|srlw|sra|sraw|or|and|fence|fence\\.i|csrrw|csrrs|csrrc|csrrwi|csrrsi|csrrci)\\b", + "name": "support.function.riscv" + }, + { + "comment": "priviledged instructions", + "match": "\\b(ecall|ebreak|sfence\\.vma|mret|sret|uret|wfi)\\b", + "name": "support.function.riscv.privileged" + }, + { + "comment": "M extension (multiplication and division)", + "match": "\\b(mul|mulh|mulhsu|mulhu|div|divu|rem|remu|mulw|divw|divuw|remw|remuw)\\b", + "name": "support.function.riscv.m" + }, + { + "comment": "C extension (compressed instructions)", + "match": "\\b(c\\.addi4spn|c\\.fld|c\\.lq|c\\.lw|c\\.flw|c\\.ld|c\\.fsd|c\\.sq|c\\.sw|c\\.fsw|c\\.sd|c\\.nop|c\\.addi|c\\.jal|c\\.addiw|c\\.li|c\\.addi16sp|c\\.lui|c\\.srli|c\\.srli64|c\\.srai|c\\.srai64|c\\.andi|c\\.sub|c\\.xor|c\\.or|c\\.and|c\\.subw|c\\.addw|c\\.j|c\\.beqz|c\\.bnez)\\b", + "name": "support.function.riscv.c" + }, + { + "comment": "A extension (atomic instructions)", + "match": "\\b(lr\\.[w|d]|sc\\.[w|d]|amoswap\\.[w|d]|amoadd\\.[w|d]|amoxor\\.[w|d]|amoand\\.[w|d]|amoor\\.[w|d]|amomin\\.[w|d]|amomax\\.[w|d]|amominu\\.[w|d]|amomaxu\\.[w|d])\\b", + "name": "support.function.riscv.a" + }, + { + "comment": "F extension (single precision floating point)", + "match": "\\b(flw|fsw|fmadd\\.s|fmsub\\.s|fnmsub\\.s|fnmadd\\.s|fadd\\.s|fsub\\.s|fmul\\.s|fdiv\\.s|fsqrt\\.s|fsgnj\\.s|fsgnjn\\.s|fsgnjx\\.s|fmin\\.s|fmax\\.s|fcvt\\.w\\.s|fcvt\\.wu\\.s|fmv\\.x\\.w|feq\\.s|flt\\.s|fle\\.s|fclass\\.s|fcvt\\.s\\.w|fcvt\\.s\\.wu|fmv\\.w\\.x|fcvt\\.l\\.s|fcvt\\.lu\\.s|fcvt\\.s\\.l|fcvt\\.s\\.lu)\\b", + "name": "support.function.riscv.f" + }, + { + "comment": "D extension (double precision floating point)", + "match": "\\b(fld|fsd|fmadd\\.d|fmsub\\.d|fnmsub\\.d|fnmadd\\.d|fadd\\.d|fsub\\.d|fmul\\.d|fdiv\\.d|fsqrt\\.d|fsgnj\\.d|fsgnjn\\.d|fsgnjx\\.d|fmin\\.d|fmax\\.d|fcvt\\.s\\.d|fcvt\\.d\\.s|feq\\.d|flt\\.d|fle\\.d|fclass\\.d|fcvt\\.w\\.d|fcvt\\.wu\\.d|fcvt\\.d\\.w|fcvt\\.d\\.wu|fcvt\\.l\\.d|fcvt\\.lu\\.d|fmv\\.x\\.d|fcvt\\.d\\.l|fcvt\\.d\\.lu|fmv\\.d\\.x)\\b", + "name": "support.function.riscv.d" + }, + { + "match": "\\.(skip|ascii|asciiz|byte|[2|4|8]byte|data|double|float|half|kdata|ktext|space|text|word|dword|dtprelword|dtpreldword|set\\s*(noat|at)|[s|u]leb128|string|incbin|zero|rodata|comm|common)\\b", + "name": "storage.type.riscv" + }, + { + "match": "\\.(balign|align|p2align|extern|globl|global|local|pushsection|section|bss|insn|option|type|equ|macro|endm|file|ident)\\b", + "name": "storage.modifier.riscv" + }, + { + "captures": { + "1": { + "name": "entity.name.function.label.riscv" + } + }, + "match": "\\b([A-Za-z0-9_]+):", + "name": "meta.function.label.riscv" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.variable.riscv" + } + }, + "match": "\\b(x([0-9]|1[0-9]|2[0-9]|3[0-1]))\\b", + "name": "variable.other.register.usable.by-number.riscv" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.variable.riscv" + } + }, + "match": "\\b(zero|ra|sp|gp|tp|t[0-6]|a[0-7]|s[0-9]|fp|s1[0-1])\\b", + "name": "variable.other.register.usable.by-name.riscv" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.variable.riscv" + } + }, + "match": "\\b(([umsh]|vs)status|([umsh]|vs)ie|([ums]|vs)tvec|([ums]|vs)scratch|([ums]|vs)epc|([ums]|vs)cause|([umsh]|vs)tval|([umsh]|vs)ip|fflags|frm|fcsr|m?cycleh?|timeh?|m?instreth?|m?hpmcounter([3-9]|[12][0-9]|3[01])h?|[msh][ei]deleg|[msh]counteren|v?satp|hgeie|hgeip|[hm]tinst|hvip|hgatp|htimedeltah?|mvendorid|marchid|mimpid|mhartid|misa|mstatush|mtval2|pmpcfg[0-3]|pmpaddr([0-9]|1[0-5])|mcountinhibit|mhpmevent([3-9]|[12][0-9]|3[01])|tselect|tdata[1-3]|dcsr|dpc|dscratch[0-1])\\b", + "name": "variable.other.csr.names.riscv" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.variable.riscv" + } + }, + "match": "\\bf([0-9]|1[0-9]|2[0-9]|3[0-1])\\b", + "name": "variable.other.register.usable.floating-point.riscv" + }, + { + "match": "\\b\\d+\\.\\d+\\b", + "name": "constant.numeric.float.riscv" + }, + { + "match": "\\b(\\d+|0(x|X)[a-fA-F0-9]+)\\b", + "name": "constant.numeric.integer.riscv" + }, + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.riscv" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.riscv" + } + }, + "name": "string.quoted.double.riscv", + "patterns": [ + { + "match": "\\\\[rnt\\\\\"]", + "name": "constant.character.escape.riscv" + } + ] + }, + { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.riscv" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.riscv" + } + }, + "name": "string.quoted.single.riscv", + "patterns": [ + { + "match": "\\\\[rnt\\\\\"]", + "name": "constant.character.escape.riscv" + } + ] + }, + { + "begin": "\\/\\*", + "end": "\\*\\/", + "name": "comment.block" + }, + { + "begin": "\\/\\/", + "end": "\\n", + "name": "comment.line.double-slash" + }, + { + "begin": "(?x)\n ^\\s*\\#\\s*(define)\\s+ # define\n ((?<id>[a-zA-Z_][a-zA-Z0-9_]*)) # macro name\n (?: # and optionally:\n (\\() # an open parenthesis\n (\n \\s* \\g<id> \\s* # first argument\n ((,) \\s* \\g<id> \\s*)* # additional arguments\n (?:\\.\\.\\.)? # varargs ellipsis?\n )\n (\\)) # a close parenthesis\n )?\n ", + "beginCaptures": { + "1": { + "name": "keyword.control.import.define.c" + }, + "2": { + "name": "entity.name.function.preprocessor.c" + }, + "4": { + "name": "punctuation.definition.parameters.c" + }, + "5": { + "name": "variable.parameter.preprocessor.c" + }, + "7": { + "name": "punctuation.separator.parameters.c" + }, + "8": { + "name": "punctuation.definition.parameters.c" + } + }, + "end": "(?=(?://|/\\*))|$", + "name": "meta.preprocessor.macro.c", + "patterns": [ + { + "match": "(?>\\\\\\s*\\n)", + "name": "punctuation.separator.continuation.c" + }, + { + "include": "$base" + } + ] + }, + { + "begin": "^\\s*#\\s*(error|warning)\\b", + "captures": { + "1": { + "name": "keyword.control.import.error.c" + } + }, + "end": "$", + "name": "meta.preprocessor.diagnostic.c", + "patterns": [ + { + "match": "(?>\\\\\\s*\\n)", + "name": "punctuation.separator.continuation.c" + } + ] + }, + { + "begin": "^\\s*#\\s*(include|import)\\b\\s+", + "captures": { + "1": { + "name": "keyword.control.import.include.c" + } + }, + "end": "(?=(?://|/\\*))|$", + "name": "meta.preprocessor.c.include", + "patterns": [ + { + "match": "(?>\\\\\\s*\\n)", + "name": "punctuation.separator.continuation.c" + }, + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.c" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.c" + } + }, + "name": "string.quoted.double.include.c" + }, + { + "begin": "<", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.c" + } + }, + "end": ">", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.c" + } + }, + "name": "string.quoted.other.lt-gt.include.c" + } + ] + }, + { + "begin": "^\\s*#\\s*(define|defined|elif|else|if|ifdef|ifndef|line|pragma|undef|endif)\\b", + "captures": { + "1": { + "name": "keyword.control.import.c" + } + }, + "end": "(?=(?://|/\\*))|$", + "name": "meta.preprocessor.c", + "patterns": [ + { + "match": "(?>\\\\\\s*\\n)", + "name": "punctuation.separator.continuation.c" + } + ] + }, + { + "begin": "(^[ \\t]+)?(?=#)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.riscv" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": "#|(\\/\\/)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.riscv" + } + }, + "end": "\\n", + "name": "comment.line.number-sign.riscv" + } + ] + } + ], + "scopeName": "source.riscv", + "uuid": "003223C7-B8D1-4B7F-BF91-5E0062B19B53" +} diff --git a/docs/shiki/languages/rst.tmLanguage.json b/docs/shiki/languages/rst.tmLanguage.json new file mode 100644 index 00000000..0c6247ea --- /dev/null +++ b/docs/shiki/languages/rst.tmLanguage.json @@ -0,0 +1,740 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/trond-snekvik/vscode-rst/blob/master/syntaxes/rst.tmLanguage.json", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/trond-snekvik/vscode-rst/commit/7f2d6bb4e20642b60f2979afcb594cfe4b48117a", + "scopeName": "source.rst", + "patterns": [ + { + "include": "#body" + } + ], + "repository": { + "body": { + "patterns": [ + { + "include": "#title" + }, + { + "include": "#inline-markup" + }, + { + "include": "#anchor" + }, + { + "include": "#line-block" + }, + { + "include": "#replace-include" + }, + { + "include": "#footnote" + }, + { + "include": "#substitution" + }, + { + "include": "#blocks" + }, + { + "include": "#table" + }, + { + "include": "#simple-table" + }, + { + "include": "#options-list" + } + ] + }, + "title": { + "match": "^(\\*{3,}|#{3,}|\\={3,}|~{3,}|\\+{3,}|-{3,}|`{3,}|\\^{3,}|:{3,}|\"{3,}|_{3,}|'{3,})$", + "name": "markup.heading" + }, + "inline-markup": { + "patterns": [ + { + "include": "#escaped" + }, + { + "include": "#ignore" + }, + { + "include": "#ref" + }, + { + "include": "#literal" + }, + { + "include": "#monospaced" + }, + { + "include": "#citation" + }, + { + "include": "#bold" + }, + { + "include": "#italic" + }, + { + "include": "#list" + }, + { + "include": "#macro" + }, + { + "include": "#reference" + }, + { + "include": "#footnote-ref" + } + ] + }, + "ignore": { + "patterns": [ + { + "match": "'[`*]+'" + }, + { + "match": "<[`*]+>" + }, + { + "match": "{[`*]+}" + }, + { + "match": "\\([`*]+\\)" + }, + { + "match": "\\[[`*]+\\]" + }, + { + "match": "\"[`*]+\"" + } + ] + }, + "table": { + "begin": "^\\s*\\+[=+-]+\\+\\s*$", + "end": "^(?![+|])", + "beginCaptures": { + "0": { + "name": "keyword.control.table" + } + }, + "patterns": [ + { + "match": "[=+|-]", + "name": "keyword.control.table" + } + ] + }, + "simple-table": { + "match": "^[=\\s]+$", + "name": "keyword.control.table" + }, + "ref": { + "begin": "(:ref:)`", + "end": "`|^\\s*$", + "name": "entity.name.tag", + "beginCaptures": { + "1": { + "name": "keyword.control" + } + }, + "patterns": [ + { + "match": "<.*?>", + "name": "markup.underline.link" + } + ] + }, + "reference": { + "match": "[\\w-]*[a-zA-Z\\d-]__?\\b", + "name": "entity.name.tag" + }, + "macro": { + "match": "\\|[^\\|]+\\|", + "name": "entity.name.tag" + }, + "literal": { + "match": "(:\\S+:)(`.*?`\\\\?)", + "captures": { + "1": { + "name": "keyword.control" + }, + "2": { + "name": "entity.name.tag" + } + } + }, + "monospaced": { + "begin": "(?<=[\\s\"'(\\[{<]|^)``[^\\s`]", + "end": "``|^\\s*$", + "name": "string.interpolated" + }, + "citation": { + "begin": "(?<=[\\s\"'(\\[{<]|^)`[^\\s`]", + "end": "`_{,2}|^\\s*$", + "name": "entity.name.tag", + "applyEndPatternLast": 0 + }, + "bold": { + "begin": "(?<=[\\s\"'(\\[{<]|^)\\*{2}[^\\s*]", + "end": "\\*{2}|^\\s*$", + "name": "markup.bold" + }, + "italic": { + "begin": "(?<=[\\s\"'(\\[{<]|^)\\*[^\\s*]", + "end": "\\*|^\\s*$", + "name": "markup.italic" + }, + "escaped": { + "match": "\\\\.", + "name": "constant.character.escape" + }, + "list": { + "match": "^\\s*(\\d+\\.|\\* -|[a-zA-Z#]\\.|[iIvVxXmMcC]+\\.|\\(\\d+\\)|\\d+\\)|[*+-])\\s+", + "name": "keyword.control" + }, + "line-block": { + "match": "^\\|\\s+", + "name": "keyword.control" + }, + "raw-html": { + "begin": "^(\\s*)(\\.{2}\\s+raw\\s*::)\\s+(html)\\s*$", + "while": "^\\1(?=\\s)|^\\s*$", + "beginCaptures": { + "2": { + "name": "keyword.control" + }, + "3": { + "name": "variable.parameter.html" + } + }, + "patterns": [ + { + "include": "#block-param" + }, + { + "include": "text.html.derivative" + } + ] + }, + "anchor": { + "match": "^\\.{2}\\s+(_[^:]+:)\\s*", + "name": "entity.name.tag.anchor" + }, + "replace-include": { + "match": "^\\s*(\\.{2})\\s+(\\|[^\\|]+\\|)\\s+(replace::)", + "captures": { + "1": { + "name": "keyword.control" + }, + "2": { + "name": "entity.name.tag" + }, + "3": { + "name": "keyword.control" + } + } + }, + "footnote": { + "match": "^\\s*\\.{2}\\s+\\[(?:[\\w\\.-]+|[#*]|#\\w+)\\]\\s+", + "name": "entity.name.tag" + }, + "footnote-ref": { + "match": "\\[(?:[\\w\\.-]+|[#*])\\]_", + "name": "entity.name.tag" + }, + "substitution": { + "match": "^\\.{2}\\s*\\|([^|]+)\\|", + "name": "entity.name.tag" + }, + "options-list": { + "match": "(?:(?:^|,\\s+)(?:[-+]\\w|--?[a-zA-Z][\\w-]+|/\\w+)(?:[ =](?:\\w+|<[^<>]+?>))?)+(?= |\\t|$)", + "name": "variable.parameter" + }, + "blocks": { + "patterns": [ + { + "include": "#domains" + }, + { + "include": "#doctest" + }, + { + "include": "#code-block-cpp" + }, + { + "include": "#code-block-py" + }, + { + "include": "#code-block-console" + }, + { + "include": "#code-block-javascript" + }, + { + "include": "#code-block-yaml" + }, + { + "include": "#code-block-cmake" + }, + { + "include": "#code-block-kconfig" + }, + { + "include": "#code-block-ruby" + }, + { + "include": "#code-block-dts" + }, + { + "include": "#code-block" + }, + { + "include": "#doctest-block" + }, + { + "include": "#raw-html" + }, + { + "include": "#block" + }, + { + "include": "#literal-block" + }, + { + "include": "#block-comment" + } + ] + }, + "block-comment": { + "begin": "^(\\s*)\\.{2}(\\s+|$)", + "end": "^(?=\\S)|^\\s*$", + "name": "comment.block", + "patterns": [ + { + "begin": "^\\s{3,}(?=\\S)", + "while": "^\\s{3}.*|^\\s*$", + "name": "comment.block" + } + ] + }, + "literal-block": { + "begin": "^(\\s*)(.*)(::)\\s*$", + "while": "^\\1(?=\\s)|^\\s*$", + "beginCaptures": { + "2": { + "patterns": [ + { + "include": "#inline-markup" + } + ] + }, + "3": { + "name": "keyword.control" + } + } + }, + "block": { + "begin": "^(\\s*)(\\.{2}\\s+\\S+::)(.*)", + "end": "^(?!\\1\\s|\\s*$)", + "beginCaptures": { + "2": { + "name": "keyword.control" + }, + "3": { + "name": "variable" + } + }, + "patterns": [ + { + "include": "#block-param" + }, + { + "include": "#body" + } + ] + }, + "block-param": { + "patterns": [ + { + "match": "(:param\\s+(.+?):)(?:\\s|$)", + "captures": { + "1": { + "name": "keyword.control" + }, + "2": { + "name": "variable.parameter" + } + } + }, + { + "match": "(:.+?:)(?:$|\\s+(.*))", + "captures": { + "1": { + "name": "keyword.control" + }, + "2": { + "patterns": [ + { + "match": "\\b(0x[a-fA-F\\d]+|\\d+)\\b", + "name": "constant.numeric" + }, + { + "include": "#inline-markup" + } + ] + } + } + } + ] + }, + "domains": { + "patterns": [ + { + "include": "#domain-cpp" + }, + { + "include": "#domain-py" + }, + { + "include": "#domain-auto" + }, + { + "include": "#domain-js" + } + ] + }, + "domain-cpp": { + "begin": "^(\\s*)(\\.{2}\\s+(?:cpp|c):(?:class|struct|function|member|var|type|enum|enum-struct|enum-class|enumerator|union|concept)::)\\s*(?:(@\\w+)|(.*))", + "while": "^\\1(?=\\s)|^\\s*$", + "beginCaptures": { + "2": { + "name": "keyword.control" + }, + "3": { + "name": "entity.name.tag" + }, + "4": { + "patterns": [ + { + "include": "source.cpp" + } + ] + } + }, + "patterns": [ + { + "include": "#block-param" + }, + { + "include": "#body" + } + ] + }, + "domain-py": { + "begin": "^(\\s*)(\\.{2}\\s+py:(?:module|function|data|exception|class|attribute|property|method|staticmethod|classmethod|decorator|decoratormethod)::)\\s*(.*)", + "while": "^\\1(?=\\s)|^\\s*$", + "beginCaptures": { + "2": { + "name": "keyword.control" + }, + "3": { + "patterns": [ + { + "include": "source.python" + } + ] + } + }, + "patterns": [ + { + "include": "#block-param" + }, + { + "include": "#body" + } + ] + }, + "domain-auto": { + "begin": "^(\\s*)(\\.{2}\\s+auto(?:class|module|exception|function|decorator|data|method|attribute|property)::)\\s*(.*)", + "while": "^\\1(?=\\s)|^\\s*$", + "beginCaptures": { + "2": { + "name": "keyword.control.py" + }, + "3": { + "patterns": [ + { + "include": "source.python" + } + ] + } + }, + "patterns": [ + { + "include": "#block-param" + }, + { + "include": "#body" + } + ] + }, + "domain-js": { + "begin": "^(\\s*)(\\.{2}\\s+js:\\w+::)\\s*(.*)", + "end": "^(?!\\1[ \\t]|$)", + "beginCaptures": { + "2": { + "name": "keyword.control" + }, + "3": { + "patterns": [ + { + "include": "source.js" + } + ] + } + }, + "patterns": [ + { + "include": "#block-param" + }, + { + "include": "#body" + } + ] + }, + "doctest": { + "begin": "^(>>>)\\s*(.*)", + "end": "^\\s*$", + "beginCaptures": { + "1": { + "name": "keyword.control" + }, + "2": { + "patterns": [ + { + "include": "source.python" + } + ] + } + } + }, + "code-block-cpp": { + "begin": "^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(c|c\\+\\+|cpp|C|C\\+\\+|CPP|Cpp)\\s*$", + "while": "^\\1(?=\\s)|^\\s*$", + "beginCaptures": { + "2": { + "name": "keyword.control" + }, + "4": { + "name": "variable.parameter.codeblock.cpp" + } + }, + "patterns": [ + { + "include": "#block-param" + }, + { + "include": "source.cpp" + } + ] + }, + "code-block-console": { + "begin": "^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(console|shell|bash)\\s*$", + "while": "^\\1(?=\\s)|^\\s*$", + "beginCaptures": { + "2": { + "name": "keyword.control" + }, + "4": { + "name": "variable.parameter.codeblock.console" + } + }, + "patterns": [ + { + "include": "#block-param" + }, + { + "include": "source.shell" + } + ] + }, + "code-block-py": { + "begin": "^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(python)\\s*$", + "while": "^\\1(?=\\s)|^\\s*$", + "beginCaptures": { + "2": { + "name": "keyword.control" + }, + "4": { + "name": "variable.parameter.codeblock.py" + } + }, + "patterns": [ + { + "include": "#block-param" + }, + { + "include": "source.python" + } + ] + }, + "code-block-javascript": { + "begin": "^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(javascript)\\s*$", + "while": "^\\1(?=\\s)|^\\s*$", + "beginCaptures": { + "2": { + "name": "keyword.control" + }, + "4": { + "name": "variable.parameter.codeblock.js" + } + }, + "patterns": [ + { + "include": "#block-param" + }, + { + "include": "source.js" + } + ] + }, + "code-block-yaml": { + "begin": "^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(ya?ml)\\s*$", + "while": "^\\1(?=\\s)|^\\s*$", + "beginCaptures": { + "2": { + "name": "keyword.control" + }, + "4": { + "name": "variable.parameter.codeblock.yaml" + } + }, + "patterns": [ + { + "include": "#block-param" + }, + { + "include": "source.yaml" + } + ] + }, + "code-block-cmake": { + "begin": "^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(cmake)\\s*$", + "while": "^\\1(?=\\s)|^\\s*$", + "beginCaptures": { + "2": { + "name": "keyword.control" + }, + "4": { + "name": "variable.parameter.codeblock.cmake" + } + }, + "patterns": [ + { + "include": "#block-param" + }, + { + "include": "source.cmake" + } + ] + }, + "code-block-kconfig": { + "begin": "^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*([kK]config)\\s*$", + "while": "^\\1(?=\\s)|^\\s*$", + "beginCaptures": { + "2": { + "name": "keyword.control" + }, + "4": { + "name": "variable.parameter.codeblock.kconfig" + } + }, + "patterns": [ + { + "include": "#block-param" + }, + { + "include": "source.kconfig" + } + ] + }, + "code-block-ruby": { + "begin": "^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(ruby)\\s*$", + "while": "^\\1(?=\\s)|^\\s*$", + "beginCaptures": { + "2": { + "name": "keyword.control" + }, + "4": { + "name": "variable.parameter.codeblock.ruby" + } + }, + "patterns": [ + { + "include": "#block-param" + }, + { + "include": "source.ruby" + } + ] + }, + "code-block-dts": { + "begin": "^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(dts|DTS|devicetree)\\s*$", + "while": "^\\1(?=\\s)|^\\s*$", + "beginCaptures": { + "2": { + "name": "keyword.control" + }, + "4": { + "name": "variable.parameter.codeblock.dts" + } + }, + "patterns": [ + { + "include": "#block-param" + }, + { + "include": "source.dts" + } + ] + }, + "code-block": { + "begin": "^(\\s*)(\\.{2}\\s+(code|code-block)::)", + "while": "^\\1(?=\\s)|^\\s*$", + "beginCaptures": { + "2": { + "name": "keyword.control" + } + }, + "patterns": [ + { + "include": "#block-param" + } + ] + }, + "doctest-block": { + "begin": "^(\\s*)(\\.{2}\\s+doctest::)\\s*$", + "while": "^\\1(?=\\s)|^\\s*$", + "beginCaptures": { + "2": { + "name": "keyword.control" + } + }, + "patterns": [ + { + "include": "#block-param" + }, + { + "include": "source.python" + } + ] + } + }, + "name": "rst" +} diff --git a/docs/shiki/languages/ruby.tmLanguage.json b/docs/shiki/languages/ruby.tmLanguage.json new file mode 100644 index 00000000..0b044057 --- /dev/null +++ b/docs/shiki/languages/ruby.tmLanguage.json @@ -0,0 +1,2775 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/textmate/ruby.tmbundle/blob/master/Syntaxes/Ruby.plist", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/textmate/ruby.tmbundle/commit/efcb8941c701343f1b2e9fb105c678152fea6892", + "name": "ruby", + "scopeName": "source.ruby", + "comment": "\n\tTODO: unresolved issues\n\n\ttext:\n\t\"p <<end\n\tprint me!\n\tend\"\n\tsymptoms:\n\tnot recognized as a heredoc\n\tsolution:\n\tthere is no way to distinguish perfectly between the << operator and the start\n\tof a heredoc. Currently, we require assignment to recognize a heredoc. More\n\trefinement is possible.\n\t• Heredocs with indented terminators (<<-) are always distinguishable, however.\n\t• Nested heredocs are not really supportable at present\n\n\ttext:\n\tprint <<-'THERE' \n\tThis is single quoted. \n\tThe above used #{Time.now} \n\tTHERE \n\tsymtoms:\n\tFrom Programming Ruby p306; should be a non-interpolated heredoc.\n\t\n text:\n val?(a):p(b)\n val?'a':'b'\n symptoms:\n ':p' is recognized as a symbol.. its 2 things ':' and 'p'.\n :'b' has same problem.\n solution:\n ternary operator rule, precedence stuff, symbol rule.\n but also consider 'a.b?(:c)' ??\n", + "patterns": [ + { + "captures": { + "1": { + "name": "keyword.control.class.ruby" + }, + "2": { + "name": "entity.name.type.class.ruby" + }, + "3": { + "name": "keyword.operator.other.ruby" + }, + "4": { + "name": "entity.other.inherited-class.ruby" + }, + "5": { + "name": "keyword.operator.other.ruby" + }, + "6": { + "name": "variable.other.object.ruby" + } + }, + "match": "^\\s*(class)\\s+(?:([.a-zA-Z0-9_:]+)(?:\\s*(<)\\s*([.a-zA-Z0-9_:]+))?|(<<)\\s*([.a-zA-Z0-9_:]+))", + "name": "meta.class.ruby" + }, + { + "captures": { + "1": { + "name": "keyword.control.module.ruby" + }, + "2": { + "name": "entity.name.type.module.ruby" + }, + "3": { + "name": "entity.other.inherited-class.module.first.ruby" + }, + "4": { + "name": "punctuation.separator.inheritance.ruby" + }, + "5": { + "name": "entity.other.inherited-class.module.second.ruby" + }, + "6": { + "name": "punctuation.separator.inheritance.ruby" + }, + "7": { + "name": "entity.other.inherited-class.module.third.ruby" + }, + "8": { + "name": "punctuation.separator.inheritance.ruby" + } + }, + "match": "^\\s*(module)\\s+(([A-Z]\\w*(::))?([A-Z]\\w*(::))?([A-Z]\\w*(::))*[A-Z]\\w*)", + "name": "meta.module.ruby" + }, + { + "comment": "else if is a common mistake carried over from other languages. it works if you put in a second end, but it’s never what you want.", + "match": "(?<!\\.)\\belse(\\s)+if\\b", + "name": "invalid.deprecated.ruby" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.constant.ruby" + } + }, + "comment": "symbols as hash key (1.9 syntax)", + "match": "(?>[a-zA-Z_]\\w*(?>[?!])?)(:)(?!:)", + "name": "constant.other.symbol.hashkey.ruby" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.constant.ruby" + } + }, + "comment": "symbols as hash key (1.8 syntax)", + "match": "(?<!:)(:)(?>[a-zA-Z_]\\w*(?>[?!])?)(?=\\s*=>)", + "name": "constant.other.symbol.hashkey.ruby" + }, + { + "comment": "everything being a reserved word, not a value and needing a 'end' is a..", + "match": "(?<!\\.)\\b(BEGIN|begin|case|class|else|elsif|END|end|ensure|for|if|in|module|rescue|then|unless|until|when|while)\\b(?![?!])", + "name": "keyword.control.ruby" + }, + { + "comment": "contextual smart pair support for block parameters", + "match": "(?<!\\.)\\bdo\\b", + "name": "keyword.control.start-block.ruby" + }, + { + "comment": "contextual smart pair support", + "match": "(?<=\\{)(\\s+)", + "name": "meta.syntax.ruby.start-block" + }, + { + "match": "(?<!\\.)\\b(alias|alias_method|block_given[?]|break|defined[?]|iterator[?]|next|redo|retry|return|super|undef|yield)(\\b|(?<=[?]))(?![?!])", + "name": "keyword.control.pseudo-method.ruby" + }, + { + "match": "\\b(nil|true|false)\\b(?![?!])", + "name": "constant.language.ruby" + }, + { + "match": "\\b(__(dir|FILE|LINE)__)\\b(?![?!])", + "name": "variable.language.ruby" + }, + { + "begin": "^__END__\\n", + "captures": { + "0": { + "name": "string.unquoted.program-block.ruby" + } + }, + "comment": "__END__ marker", + "contentName": "text.plain", + "end": "(?=not)impossible", + "patterns": [ + { + "begin": "(?=<?xml|<(?i:html\\b)|!DOCTYPE (?i:html\\b))", + "end": "(?=not)impossible", + "name": "text.html.embedded.ruby", + "patterns": [ + { + "include": "text.html.basic" + } + ] + } + ] + }, + { + "match": "\\b(self)\\b(?![?!])", + "name": "variable.language.self.ruby" + }, + { + "comment": " everything being a method but having a special function is a..", + "match": "\\b(initialize|new|loop|include|extend|prepend|fail|raise|attr_reader|attr_writer|attr_accessor|attr|catch|throw|private|private_class_method|module_function|public|public_class_method|protected|refine|using)\\b(?![?!])", + "name": "keyword.other.special-method.ruby" + }, + { + "begin": "\\b(?<!\\.|::)(require|require_relative)\\b", + "captures": { + "1": { + "name": "keyword.other.special-method.ruby" + } + }, + "end": "$|(?=#|\\})", + "name": "meta.require.ruby", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "captures": { + "1": { + "name": "punctuation.definition.variable.ruby" + } + }, + "match": "(@)[a-zA-Z_]\\w*", + "name": "variable.other.readwrite.instance.ruby" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.variable.ruby" + } + }, + "match": "(@@)[a-zA-Z_]\\w*", + "name": "variable.other.readwrite.class.ruby" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.variable.ruby" + } + }, + "match": "(\\$)[a-zA-Z_]\\w*", + "name": "variable.other.readwrite.global.ruby" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.variable.ruby" + } + }, + "match": "(\\$)(!|@|&|`|'|\\+|\\d+|~|=|/|\\\\|,|;|\\.|<|>|_|\\*|\\$|\\?|:|\"|-[0adFiIlpvw])", + "name": "variable.other.readwrite.global.pre-defined.ruby" + }, + { + "begin": "\\b(ENV)\\[", + "beginCaptures": { + "1": { + "name": "variable.other.constant.ruby" + } + }, + "end": "\\]", + "name": "meta.environment-variable.ruby", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "match": "\\b[A-Z]\\w*(?=((\\.|::)[A-Za-z]|\\[))", + "name": "support.class.ruby" + }, + { + "match": "\\b(abort|at_exit|autoload[?]?|binding|callcc|caller|caller_locations|chomp|chop|eval|exec|exit|exit!|fork|format|gets|global_variables|gsub|lambda|load|local_variables|open|p|print|printf|proc|putc|puts|rand|readline|readlines|select|set_trace_func|sleep|spawn|sprintf|srand|sub|syscall|system|test|trace_var|trap|untrace_var|warn)(\\b|(?<=[?!]))(?![?!])", + "name": "support.function.kernel.ruby" + }, + { + "match": "\\b[A-Z]\\w*\\b", + "name": "variable.other.constant.ruby" + }, + { + "begin": "(?x)\n\t\t\t (?=def\\b) # an optimization to help Oniguruma fail fast\n\t\t\t (?<=^|\\s)(def)\\s+ # the def keyword\n\t\t\t ( (?>[a-zA-Z_]\\w*(?>\\.|::))? # a method name prefix\n\t\t\t (?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))? # the method name\n\t\t\t |===?|!=|!~|>[>=]?|<=>|<[<=]?|[%&`/\\|^]|\\*\\*?|=?~|[-+]@?|\\[\\]=?) ) # …or an operator method\n\t\t\t \\s*(\\() # the openning parenthesis for arguments\n\t\t\t ", + "beginCaptures": { + "1": { + "name": "keyword.control.def.ruby" + }, + "2": { + "name": "entity.name.function.ruby" + }, + "3": { + "name": "punctuation.definition.parameters.ruby" + } + }, + "comment": "the method pattern comes from the symbol pattern, see there for a explaination", + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.parameters.ruby" + } + }, + "name": "meta.function.method.with-arguments.ruby", + "patterns": [ + { + "begin": "(?=[&*_a-zA-Z])", + "end": "(?=[,)])", + "patterns": [ + { + "captures": { + "1": { + "name": "storage.type.variable.ruby" + }, + "2": { + "name": "constant.other.symbol.hashkey.parameter.function.ruby" + }, + "3": { + "name": "punctuation.definition.constant.ruby" + }, + "4": { + "name": "variable.parameter.function.ruby" + } + }, + "match": "\\G([&*]?)(?:([_a-zA-Z]\\w*(:))|([_a-zA-Z]\\w*))" + }, + { + "include": "#parens" + }, + { + "include": "#braces" + }, + { + "include": "$self" + } + ] + } + ], + "repository": { + "braces": { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.section.function.begin.ruby" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.section.function.end.ruby" + } + }, + "patterns": [ + { + "include": "#parens" + }, + { + "include": "#braces" + }, + { + "include": "$self" + } + ] + }, + "parens": { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.section.function.begin.ruby" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.function.end.ruby" + } + }, + "patterns": [ + { + "include": "#parens" + }, + { + "include": "#braces" + }, + { + "include": "$self" + } + ] + } + } + }, + { + "begin": "(?x)\n\t\t\t (?=def\\b) # an optimization to help Oniguruma fail fast\n\t\t\t (?<=^|\\s)(def)\\s+ # the def keyword\n\t\t\t ( (?>[a-zA-Z_]\\w*(?>\\.|::))? # a method name prefix\n\t\t\t (?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))? # the method name\n\t\t\t |===?|!=|!~|>[>=]?|<=>|<[<=]?|[%&`/\\|^]|\\*\\*?|=?~|[-+]@?|\\[\\]=?) ) # …or an operator method\n\t\t\t [ \\t] # the space separating the arguments\n\t\t\t (?=[ \\t]*[^\\s#;]) # make sure arguments and not a comment follow\n\t\t\t ", + "beginCaptures": { + "1": { + "name": "keyword.control.def.ruby" + }, + "2": { + "name": "entity.name.function.ruby" + } + }, + "comment": "same as the previous rule, but without parentheses around the arguments", + "end": "$", + "name": "meta.function.method.with-arguments.ruby", + "patterns": [ + { + "begin": "(?![\\s,])", + "end": "(?=,|$)", + "patterns": [ + { + "captures": { + "1": { + "name": "storage.type.variable.ruby" + }, + "2": { + "name": "constant.other.symbol.hashkey.parameter.function.ruby" + }, + "3": { + "name": "punctuation.definition.constant.ruby" + }, + "4": { + "name": "variable.parameter.function.ruby" + } + }, + "match": "\\G([&*]?)(?:([_a-zA-Z]\\w*(:))|([_a-zA-Z]\\w*))", + "name": "variable.parameter.function.ruby" + }, + { + "include": "$self" + } + ] + } + ] + }, + { + "captures": { + "1": { + "name": "keyword.control.def.ruby" + }, + "3": { + "name": "entity.name.function.ruby" + } + }, + "comment": " the optional name is just to catch the def also without a method-name", + "match": "(?x)\n\t\t\t (?=def\\b) # an optimization to help Oniguruma fail fast\n\t\t\t (?<=^|\\s)(def)\\b # the def keyword\n\t\t\t ( \\s+ # an optional group of whitespace followed by…\n\t\t\t ( (?>[a-zA-Z_]\\w*(?>\\.|::))? # a method name prefix\n\t\t\t (?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))? # the method name\n\t\t\t |===?|!=|!~|>[>=]?|<=>|<[<=]?|[%&`/\\|^]|\\*\\*?|=?~|[-+]@?|\\[\\]=?) ) )? # …or an operator method\n\t\t\t ", + "name": "meta.function.method.without-arguments.ruby" + }, + { + "match": "\\b\\d(?>_?\\d)*(?=\\.\\d|[eE])(\\.\\d(?>_?\\d)*)?([eE][-+]?\\d(?>_?\\d)*)?r?i?\\b", + "name": "constant.numeric.float.ruby" + }, + { + "match": "\\b(0|(0[dD]\\d|[1-9])(?>_?\\d)*)r?i?\\b", + "name": "constant.numeric.integer.ruby" + }, + { + "match": "\\b0[xX]\\h(?>_?\\h)*r?i?\\b", + "name": "constant.numeric.hex.ruby" + }, + { + "match": "\\b0[bB][01](?>_?[01])*r?i?\\b", + "name": "constant.numeric.binary.ruby" + }, + { + "match": "\\b0([oO]?[0-7](?>_?[0-7])*)?r?i?\\b", + "name": "constant.numeric.octal.ruby" + }, + { + "begin": ":'", + "captures": { + "0": { + "name": "punctuation.definition.constant.ruby" + } + }, + "end": "'", + "name": "constant.other.symbol.single-quoted.ruby", + "patterns": [ + { + "match": "\\\\['\\\\]", + "name": "constant.character.escape.ruby" + } + ] + }, + { + "begin": ":\"", + "captures": { + "0": { + "name": "punctuation.definition.constant.ruby" + } + }, + "end": "\"", + "name": "constant.other.symbol.double-quoted.ruby", + "patterns": [ + { + "include": "#interpolated_ruby" + }, + { + "include": "#escaped_char" + } + ] + }, + { + "comment": "Needs higher precedence than regular expressions.", + "match": "(?<!\\()/=", + "name": "keyword.operator.assignment.augmented.ruby" + }, + { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.ruby" + } + }, + "comment": "single quoted string (does not allow interpolation)", + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.ruby" + } + }, + "name": "string.quoted.single.ruby", + "patterns": [ + { + "match": "\\\\'|\\\\\\\\", + "name": "constant.character.escape.ruby" + } + ] + }, + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.ruby" + } + }, + "comment": "double quoted string (allows for interpolation)", + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.ruby" + } + }, + "name": "string.quoted.double.ruby", + "patterns": [ + { + "include": "#interpolated_ruby" + }, + { + "include": "#escaped_char" + } + ] + }, + { + "begin": "`", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.ruby" + } + }, + "comment": "execute string (allows for interpolation)", + "end": "`", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.ruby" + } + }, + "name": "string.interpolated.ruby", + "patterns": [ + { + "include": "#interpolated_ruby" + }, + { + "include": "#escaped_char" + } + ] + }, + { + "include": "#percent_literals" + }, + { + "begin": "(?x)\n\t\t\t (?:\n\t\t\t ^ # beginning of line\n\t\t\t | (?<= # or look-behind on:\n\t\t\t [=>~(?:\\[,|&;]\n\t\t\t | [\\s;]if\\s\t\t\t# keywords\n\t\t\t | [\\s;]elsif\\s\n\t\t\t | [\\s;]while\\s\n\t\t\t | [\\s;]unless\\s\n\t\t\t | [\\s;]when\\s\n\t\t\t | [\\s;]assert_match\\s\n\t\t\t | [\\s;]or\\s\t\t\t# boolean opperators\n\t\t\t | [\\s;]and\\s\n\t\t\t | [\\s;]not\\s\n\t\t\t | [\\s.]index\\s\t\t\t# methods\n\t\t\t | [\\s.]scan\\s\n\t\t\t | [\\s.]sub\\s\n\t\t\t | [\\s.]sub!\\s\n\t\t\t | [\\s.]gsub\\s\n\t\t\t | [\\s.]gsub!\\s\n\t\t\t | [\\s.]match\\s\n\t\t\t )\n\t\t\t | (?<= # or a look-behind with line anchor:\n\t\t\t ^when\\s # duplication necessary due to limits of regex\n\t\t\t | ^if\\s\n\t\t\t | ^elsif\\s\n\t\t\t | ^while\\s\n\t\t\t | ^unless\\s\n\t\t\t )\n\t\t\t )\n\t\t\t \\s*((/))(?![*+{}?])\n\t\t\t", + "captures": { + "1": { + "name": "string.regexp.classic.ruby" + }, + "2": { + "name": "punctuation.definition.string.ruby" + } + }, + "comment": "regular expressions (normal)\n\t\t\twe only start a regexp if the character before it (excluding whitespace)\n\t\t\tis what we think is before a regexp\n\t\t\t", + "contentName": "string.regexp.classic.ruby", + "end": "((/[eimnosux]*))", + "patterns": [ + { + "include": "#regex_sub" + } + ] + }, + { + "captures": { + "1": { + "name": "punctuation.definition.constant.ruby" + } + }, + "comment": "symbols", + "match": "(?<!:)(:)(?>[a-zA-Z_]\\w*(?>[?!]|=(?![>=]))?|===?|>[>=]?|<=>|<[<=]?|[%&`/\\|]|\\*\\*?|=?~|[-+]@?|\\[\\]=?|(@@?|\\$)[a-zA-Z_]\\w*)", + "name": "constant.other.symbol.ruby" + }, + { + "begin": "^=begin", + "captures": { + "0": { + "name": "punctuation.definition.comment.ruby" + } + }, + "comment": "multiline comments", + "end": "^=end", + "name": "comment.block.documentation.ruby" + }, + { + "begin": "(^[ \\t]+)?(?=#)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.ruby" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": "#", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.ruby" + } + }, + "end": "\\n", + "name": "comment.line.number-sign.ruby" + } + ] + }, + { + "comment": "\n\t\t\tmatches questionmark-letters.\n\n\t\t\texamples (1st alternation = hex):\n\t\t\t?\\x1 ?\\x61\n\n\t\t\texamples (2nd alternation = octal):\n\t\t\t?\\0 ?\\07 ?\\017\n\n\t\t\texamples (3rd alternation = escaped):\n\t\t\t?\\n ?\\b\n\n\t\t\texamples (4th alternation = meta-ctrl):\n\t\t\t?\\C-a ?\\M-a ?\\C-\\M-\\C-\\M-a\n\n\t\t\texamples (4th alternation = normal):\n\t\t\t?a ?A ?0 \n\t\t\t?* ?\" ?( \n\t\t\t?. ?#\n\t\t\t\n\t\t\t\n\t\t\tthe negative lookbehind prevents against matching\n\t\t\tp(42.tainted?)\n\t\t\t", + "match": "(?<!\\w)\\?(\\\\(x\\h{1,2}(?!\\h)\\b|0[0-7]{0,2}(?![0-7])\\b|[^x0MC])|(\\\\[MC]-)+\\w|[^\\s\\\\])", + "name": "constant.numeric.ruby" + }, + { + "begin": "(?=(?><<[-~](\"?)((?:[_\\w]+_|)HTML)\\b\\1))", + "comment": "Heredoc with embedded html", + "end": "(?!\\G)", + "name": "meta.embedded.block.html", + "patterns": [ + { + "begin": "(?><<[-~](\"?)((?:[_\\w]+_|)HTML)\\b\\1)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.ruby" + } + }, + "contentName": "text.html", + "end": "\\s*\\2$\\n?", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.ruby" + } + }, + "name": "string.unquoted.heredoc.ruby", + "patterns": [ + { + "include": "#heredoc" + }, + { + "include": "#interpolated_ruby" + }, + { + "include": "text.html.basic" + }, + { + "include": "#escaped_char" + } + ] + } + ] + }, + { + "begin": "(?=(?><<[-~](\"?)((?:[_\\w]+_|)XML)\\b\\1))", + "comment": "Heredoc with embedded xml", + "end": "(?!\\G)", + "name": "meta.embedded.block.xml", + "patterns": [ + { + "begin": "(?><<[-~](\"?)((?:[_\\w]+_|)XML)\\b\\1)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.ruby" + } + }, + "contentName": "text.xml", + "end": "\\s*\\2$\\n?", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.ruby" + } + }, + "name": "string.unquoted.heredoc.ruby", + "patterns": [ + { + "include": "#heredoc" + }, + { + "include": "#interpolated_ruby" + }, + { + "include": "text.xml" + }, + { + "include": "#escaped_char" + } + ] + } + ] + }, + { + "begin": "(?=(?><<[-~](\"?)((?:[_\\w]+_|)SQL)\\b\\1))", + "comment": "Heredoc with embedded sql", + "end": "(?!\\G)", + "name": "meta.embedded.block.sql", + "patterns": [ + { + "begin": "(?><<[-~](\"?)((?:[_\\w]+_|)SQL)\\b\\1)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.ruby" + } + }, + "contentName": "source.sql", + "end": "\\s*\\2$\\n?", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.ruby" + } + }, + "name": "string.unquoted.heredoc.ruby", + "patterns": [ + { + "include": "#heredoc" + }, + { + "include": "#interpolated_ruby" + }, + { + "include": "source.sql" + }, + { + "include": "#escaped_char" + } + ] + } + ] + }, + { + "begin": "(?=(?><<[-~](\"?)((?:[_\\w]+_|)CSS)\\b\\1))", + "comment": "Heredoc with embedded css", + "end": "(?!\\G)", + "name": "meta.embedded.block.css", + "patterns": [ + { + "begin": "(?><<[-~](\"?)((?:[_\\w]+_|)CSS)\\b\\1)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.ruby" + } + }, + "contentName": "source.css", + "end": "\\s*\\2$\\n?", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.ruby" + } + }, + "name": "string.unquoted.heredoc.ruby", + "patterns": [ + { + "include": "#heredoc" + }, + { + "include": "#interpolated_ruby" + }, + { + "include": "source.css" + }, + { + "include": "#escaped_char" + } + ] + } + ] + }, + { + "begin": "(?=(?><<[-~](\"?)((?:[_\\w]+_|)CPP)\\b\\1))", + "comment": "Heredoc with embedded c++", + "end": "(?!\\G)", + "name": "meta.embedded.block.c++", + "patterns": [ + { + "begin": "(?><<[-~](\"?)((?:[_\\w]+_|)CPP)\\b\\1)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.ruby" + } + }, + "contentName": "source.c++", + "end": "\\s*\\2$\\n?", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.ruby" + } + }, + "name": "string.unquoted.heredoc.ruby", + "patterns": [ + { + "include": "#heredoc" + }, + { + "include": "#interpolated_ruby" + }, + { + "include": "source.c++" + }, + { + "include": "#escaped_char" + } + ] + } + ] + }, + { + "begin": "(?=(?><<[-~](\"?)((?:[_\\w]+_|)C)\\b\\1))", + "comment": "Heredoc with embedded c", + "end": "(?!\\G)", + "name": "meta.embedded.block.c", + "patterns": [ + { + "begin": "(?><<[-~](\"?)((?:[_\\w]+_|)C)\\b\\1)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.ruby" + } + }, + "contentName": "source.c", + "end": "\\s*\\2$\\n?", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.ruby" + } + }, + "name": "string.unquoted.heredoc.ruby", + "patterns": [ + { + "include": "#heredoc" + }, + { + "include": "#interpolated_ruby" + }, + { + "include": "source.c" + }, + { + "include": "#escaped_char" + } + ] + } + ] + }, + { + "begin": "(?=(?><<[-~](\"?)((?:[_\\w]+_|)(?:JS|JAVASCRIPT))\\b\\1))", + "comment": "Heredoc with embedded javascript", + "end": "(?!\\G)", + "name": "meta.embedded.block.js", + "patterns": [ + { + "begin": "(?><<[-~](\"?)((?:[_\\w]+_|)(?:JS|JAVASCRIPT))\\b\\1)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.ruby" + } + }, + "contentName": "source.js", + "end": "\\s*\\2$\\n?", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.ruby" + } + }, + "name": "string.unquoted.heredoc.ruby", + "patterns": [ + { + "include": "#heredoc" + }, + { + "include": "#interpolated_ruby" + }, + { + "include": "source.js" + }, + { + "include": "#escaped_char" + } + ] + } + ] + }, + { + "begin": "(?=(?><<[-~](\"?)((?:[_\\w]+_|)JQUERY)\\b\\1))", + "comment": "Heredoc with embedded jQuery javascript", + "end": "(?!\\G)", + "name": "meta.embedded.block.js.jquery", + "patterns": [ + { + "begin": "(?><<[-~](\"?)((?:[_\\w]+_|)JQUERY)\\b\\1)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.ruby" + } + }, + "contentName": "source.js.jquery", + "end": "\\s*\\2$\\n?", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.ruby" + } + }, + "name": "string.unquoted.heredoc.ruby", + "patterns": [ + { + "include": "#heredoc" + }, + { + "include": "#interpolated_ruby" + }, + { + "include": "source.js.jquery" + }, + { + "include": "#escaped_char" + } + ] + } + ] + }, + { + "begin": "(?=(?><<[-~](\"?)((?:[_\\w]+_|)(?:SH|SHELL))\\b\\1))", + "comment": "Heredoc with embedded shell", + "end": "(?!\\G)", + "name": "meta.embedded.block.shell", + "patterns": [ + { + "begin": "(?><<[-~](\"?)((?:[_\\w]+_|)(?:SH|SHELL))\\b\\1)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.ruby" + } + }, + "contentName": "source.shell", + "end": "\\s*\\2$\\n?", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.ruby" + } + }, + "name": "string.unquoted.heredoc.ruby", + "patterns": [ + { + "include": "#heredoc" + }, + { + "include": "#interpolated_ruby" + }, + { + "include": "source.shell" + }, + { + "include": "#escaped_char" + } + ] + } + ] + }, + { + "begin": "(?=(?><<[-~](\"?)((?:[_\\w]+_|)LUA)\\b\\1))", + "comment": "Heredoc with embedded lua", + "end": "(?!\\G)", + "name": "meta.embedded.block.lua", + "patterns": [ + { + "begin": "(?><<[-~](\"?)((?:[_\\w]+_|)LUA)\\b\\1)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.ruby" + } + }, + "contentName": "source.lua", + "end": "\\s*\\2$\\n?", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.ruby" + } + }, + "name": "string.unquoted.heredoc.ruby", + "patterns": [ + { + "include": "#heredoc" + }, + { + "include": "#interpolated_ruby" + }, + { + "include": "source.lua" + }, + { + "include": "#escaped_char" + } + ] + } + ] + }, + { + "begin": "(?=(?><<[-~](\"?)((?:[_\\w]+_|)RUBY)\\b\\1))", + "comment": "Heredoc with embedded ruby", + "end": "(?!\\G)", + "name": "meta.embedded.block.ruby", + "patterns": [ + { + "begin": "(?><<[-~](\"?)((?:[_\\w]+_|)RUBY)\\b\\1)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.ruby" + } + }, + "contentName": "source.ruby", + "end": "\\s*\\2$\\n?", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.ruby" + } + }, + "name": "string.unquoted.heredoc.ruby", + "patterns": [ + { + "include": "#heredoc" + }, + { + "include": "#interpolated_ruby" + }, + { + "include": "source.ruby" + }, + { + "include": "#escaped_char" + } + ] + } + ] + }, + { + "begin": "(?>=\\s*<<(\\w+))", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.ruby" + } + }, + "end": "^\\1$", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.ruby" + } + }, + "name": "string.unquoted.heredoc.ruby", + "patterns": [ + { + "include": "#heredoc" + }, + { + "include": "#interpolated_ruby" + }, + { + "include": "#escaped_char" + } + ] + }, + { + "begin": "(?><<[-~](\\w+))", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.ruby" + } + }, + "comment": "heredoc with indented terminator", + "end": "\\s*\\1$", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.ruby" + } + }, + "name": "string.unquoted.heredoc.ruby", + "patterns": [ + { + "include": "#heredoc" + }, + { + "include": "#interpolated_ruby" + }, + { + "include": "#escaped_char" + } + ] + }, + { + "begin": "(?<=\\{|do|\\{\\s|do\\s)(\\|)", + "captures": { + "1": { + "name": "punctuation.separator.arguments.ruby" + } + }, + "end": "(?<!\\|)(\\|)(?!\\|)", + "patterns": [ + { + "include": "$self" + }, + { + "match": "[_a-zA-Z][_a-zA-Z0-9]*", + "name": "variable.other.block.ruby" + }, + { + "match": ",", + "name": "punctuation.separator.variable.ruby" + } + ] + }, + { + "match": "=>", + "name": "punctuation.separator.key-value" + }, + { + "match": "->", + "name": "support.function.kernel.lambda.ruby" + }, + { + "match": "<<=|%=|&{1,2}=|\\*=|\\*\\*=|\\+=|-=|\\^=|\\|{1,2}=|<<", + "name": "keyword.operator.assignment.augmented.ruby" + }, + { + "match": "<=>|<(?!<|=)|>(?!<|=|>)|<=|>=|===|==|=~|!=|!~|(?<=[ \\t])\\?", + "name": "keyword.operator.comparison.ruby" + }, + { + "match": "(?<!\\.)\\b(and|not|or)\\b(?![?!])", + "name": "keyword.operator.logical.ruby" + }, + { + "comment": "Make sure this goes after assignment and comparison", + "match": "(?<=^|[ \\t])!|&&|\\|\\||\\^", + "name": "keyword.operator.logical.ruby" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.method.ruby" + } + }, + "comment": "Safe navigation operator - Added in 2.3", + "match": "(&\\.)\\s*(?![A-Z])" + }, + { + "match": "(%|&|\\*\\*|\\*|\\+|-|/)", + "name": "keyword.operator.arithmetic.ruby" + }, + { + "match": "=", + "name": "keyword.operator.assignment.ruby" + }, + { + "match": "\\||~|>>", + "name": "keyword.operator.other.ruby" + }, + { + "match": ";", + "name": "punctuation.separator.statement.ruby" + }, + { + "match": ",", + "name": "punctuation.separator.object.ruby" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.namespace.ruby" + } + }, + "comment": "Mark as namespace separator if double colons followed by capital letter", + "match": "(::)\\s*(?=[A-Z])" + }, + { + "captures": { + "1": { + "name": "punctuation.separator.method.ruby" + } + }, + "comment": "Mark as method separator if double colons not followed by capital letter", + "match": "(\\.|::)\\s*(?![A-Z])" + }, + { + "comment": "Must come after method and constant separators to prefer double colons", + "match": ":", + "name": "punctuation.separator.other.ruby" + }, + { + "match": "\\{", + "name": "punctuation.section.scope.begin.ruby" + }, + { + "match": "\\}", + "name": "punctuation.section.scope.end.ruby" + }, + { + "match": "\\[", + "name": "punctuation.section.array.begin.ruby" + }, + { + "match": "\\]", + "name": "punctuation.section.array.end.ruby" + }, + { + "match": "\\(|\\)", + "name": "punctuation.section.function.ruby" + } + ], + "repository": { + "escaped_char": { + "match": "\\\\(?:[0-7]{1,3}|x[\\da-fA-F]{1,2}|.)", + "name": "constant.character.escape.ruby" + }, + "heredoc": { + "begin": "^<<[-~]?\\w+", + "end": "$", + "patterns": [ + { + "include": "$self" + } + ] + }, + "interpolated_ruby": { + "patterns": [ + { + "begin": "#\\{", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.ruby" + } + }, + "contentName": "source.ruby", + "end": "(\\})", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.ruby" + }, + "1": { + "name": "source.ruby" + } + }, + "name": "meta.embedded.line.ruby", + "patterns": [ + { + "include": "#nest_curly_and_self" + }, + { + "include": "$self" + } + ], + "repository": { + "nest_curly_and_self": { + "patterns": [ + { + "begin": "\\{", + "captures": { + "0": { + "name": "punctuation.section.scope.ruby" + } + }, + "end": "\\}", + "patterns": [ + { + "include": "#nest_curly_and_self" + } + ] + }, + { + "include": "$self" + } + ] + } + } + }, + { + "captures": { + "1": { + "name": "punctuation.definition.variable.ruby" + } + }, + "match": "(#@)[a-zA-Z_]\\w*", + "name": "variable.other.readwrite.instance.ruby" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.variable.ruby" + } + }, + "match": "(#@@)[a-zA-Z_]\\w*", + "name": "variable.other.readwrite.class.ruby" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.variable.ruby" + } + }, + "match": "(#\\$)[a-zA-Z_]\\w*", + "name": "variable.other.readwrite.global.ruby" + } + ] + }, + "percent_literals": { + "patterns": [ + { + "begin": "%i(?:([(\\[{<])|([^\\w\\s]|_))", + "beginCaptures": { + "0": { + "name": "punctuation.section.array.begin.ruby" + } + }, + "end": "[)\\]}>]\\2|\\1\\2", + "endCaptures": { + "0": { + "name": "punctuation.section.array.end.ruby" + } + }, + "name": "meta.array.symbol.ruby", + "patterns": [ + { + "begin": "\\G(?<=\\()(?!\\))", + "end": "(?=\\))", + "patterns": [ + { + "include": "#parens" + }, + { + "include": "#symbol" + } + ] + }, + { + "begin": "\\G(?<=\\[)(?!\\])", + "end": "(?=\\])", + "patterns": [ + { + "include": "#brackets" + }, + { + "include": "#symbol" + } + ] + }, + { + "begin": "\\G(?<=\\{)(?!\\})", + "end": "(?=\\})", + "patterns": [ + { + "include": "#braces" + }, + { + "include": "#symbol" + } + ] + }, + { + "begin": "\\G(?<=<)(?!>)", + "end": "(?=>)", + "patterns": [ + { + "include": "#angles" + }, + { + "include": "#symbol" + } + ] + }, + { + "include": "#symbol" + } + ], + "repository": { + "angles": { + "patterns": [ + { + "captures": { + "0": { + "name": "constant.character.escape.ruby" + } + }, + "match": "\\\\<|\\\\>", + "name": "constant.other.symbol.ruby" + }, + { + "begin": "<", + "captures": { + "0": { + "name": "constant.other.symbol.ruby" + } + }, + "end": ">", + "patterns": [ + { + "include": "#angles" + }, + { + "include": "#symbol" + } + ] + } + ] + }, + "braces": { + "patterns": [ + { + "captures": { + "0": { + "name": "constant.character.escape.ruby" + } + }, + "match": "\\\\\\{|\\\\\\}", + "name": "constant.other.symbol.ruby" + }, + { + "begin": "\\{", + "captures": { + "0": { + "name": "constant.other.symbol.ruby" + } + }, + "end": "\\}", + "patterns": [ + { + "include": "#braces" + }, + { + "include": "#symbol" + } + ] + } + ] + }, + "brackets": { + "patterns": [ + { + "captures": { + "0": { + "name": "constant.character.escape.ruby" + } + }, + "match": "\\\\\\[|\\\\\\]", + "name": "constant.other.symbol.ruby" + }, + { + "begin": "\\[", + "captures": { + "0": { + "name": "constant.other.symbol.ruby" + } + }, + "end": "\\]", + "patterns": [ + { + "include": "#brackets" + }, + { + "include": "#symbol" + } + ] + } + ] + }, + "parens": { + "patterns": [ + { + "captures": { + "0": { + "name": "constant.character.escape.ruby" + } + }, + "match": "\\\\\\(|\\\\\\)", + "name": "constant.other.symbol.ruby" + }, + { + "begin": "\\(", + "captures": { + "0": { + "name": "constant.other.symbol.ruby" + } + }, + "end": "\\)", + "patterns": [ + { + "include": "#parens" + }, + { + "include": "#symbol" + } + ] + } + ] + }, + "symbol": { + "patterns": [ + { + "captures": { + "0": { + "name": "constant.character.escape.ruby" + } + }, + "match": "\\\\\\\\|\\\\[ ]", + "name": "constant.other.symbol.ruby" + }, + { + "match": "\\S\\w*", + "name": "constant.other.symbol.ruby" + } + ] + } + } + }, + { + "begin": "%I(?:([(\\[{<])|([^\\w\\s]|_))", + "beginCaptures": { + "0": { + "name": "punctuation.section.array.begin.ruby" + } + }, + "end": "[)\\]}>]\\2|\\1\\2", + "endCaptures": { + "0": { + "name": "punctuation.section.array.end.ruby" + } + }, + "name": "meta.array.symbol.interpolated.ruby", + "patterns": [ + { + "begin": "\\G(?<=\\()(?!\\))", + "end": "(?=\\))", + "patterns": [ + { + "include": "#parens" + }, + { + "include": "#symbol" + } + ] + }, + { + "begin": "\\G(?<=\\[)(?!\\])", + "end": "(?=\\])", + "patterns": [ + { + "include": "#brackets" + }, + { + "include": "#symbol" + } + ] + }, + { + "begin": "\\G(?<=\\{)(?!\\})", + "end": "(?=\\})", + "patterns": [ + { + "include": "#braces" + }, + { + "include": "#symbol" + } + ] + }, + { + "begin": "\\G(?<=<)(?!>)", + "end": "(?=>)", + "patterns": [ + { + "include": "#angles" + }, + { + "include": "#symbol" + } + ] + }, + { + "include": "#symbol" + } + ], + "repository": { + "angles": { + "patterns": [ + { + "begin": "<", + "captures": { + "0": { + "name": "constant.other.symbol.ruby" + } + }, + "end": ">", + "patterns": [ + { + "include": "#angles" + }, + { + "include": "#symbol" + } + ] + } + ] + }, + "braces": { + "patterns": [ + { + "begin": "\\{", + "captures": { + "0": { + "name": "constant.other.symbol.ruby" + } + }, + "end": "\\}", + "patterns": [ + { + "include": "#braces" + }, + { + "include": "#symbol" + } + ] + } + ] + }, + "brackets": { + "patterns": [ + { + "begin": "\\[", + "captures": { + "0": { + "name": "constant.other.symbol.ruby" + } + }, + "end": "\\]", + "patterns": [ + { + "include": "#brackets" + }, + { + "include": "#symbol" + } + ] + } + ] + }, + "parens": { + "patterns": [ + { + "begin": "\\(", + "captures": { + "0": { + "name": "constant.other.symbol.ruby" + } + }, + "end": "\\)", + "patterns": [ + { + "include": "#parens" + }, + { + "include": "#symbol" + } + ] + } + ] + }, + "symbol": { + "patterns": [ + { + "begin": "(?=\\\\|#\\{)", + "end": "(?!\\G)", + "name": "constant.other.symbol.ruby", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#interpolated_ruby" + } + ] + }, + { + "match": "\\S\\w*", + "name": "constant.other.symbol.ruby" + } + ] + } + } + }, + { + "begin": "%q(?:([(\\[{<])|([^\\w\\s]|_))", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.ruby" + } + }, + "end": "[)\\]}>]\\2|\\1\\2", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.ruby" + } + }, + "name": "string.quoted.other.ruby", + "patterns": [ + { + "begin": "\\G(?<=\\()(?!\\))", + "end": "(?=\\))", + "patterns": [ + { + "include": "#parens" + } + ] + }, + { + "begin": "\\G(?<=\\[)(?!\\])", + "end": "(?=\\])", + "patterns": [ + { + "include": "#brackets" + } + ] + }, + { + "begin": "\\G(?<=\\{)(?!\\})", + "end": "(?=\\})", + "patterns": [ + { + "include": "#braces" + } + ] + }, + { + "begin": "\\G(?<=<)(?!>)", + "end": "(?=>)", + "patterns": [ + { + "include": "#angles" + } + ] + } + ], + "repository": { + "angles": { + "patterns": [ + { + "match": "\\\\<|\\\\>|\\\\\\\\", + "name": "constant.character.escape.ruby" + }, + { + "begin": "<", + "end": ">", + "patterns": [ + { + "include": "#angles" + } + ] + } + ] + }, + "braces": { + "patterns": [ + { + "match": "\\\\\\{|\\\\\\}|\\\\\\\\", + "name": "constant.character.escape.ruby" + }, + { + "begin": "\\{", + "end": "\\}", + "patterns": [ + { + "include": "#braces" + } + ] + } + ] + }, + "brackets": { + "patterns": [ + { + "match": "\\\\\\[|\\\\\\]|\\\\\\\\", + "name": "constant.character.escape.ruby" + }, + { + "begin": "\\[", + "end": "\\]", + "patterns": [ + { + "include": "#brackets" + } + ] + } + ] + }, + "parens": { + "patterns": [ + { + "match": "\\\\\\(|\\\\\\)|\\\\\\\\", + "name": "constant.character.escape.ruby" + }, + { + "begin": "\\(", + "end": "\\)", + "patterns": [ + { + "include": "#parens" + } + ] + } + ] + } + } + }, + { + "begin": "%Q?(?:([(\\[{<])|([^\\w\\s=]|_))", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.ruby" + } + }, + "end": "[)\\]}>]\\2|\\1\\2", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.ruby" + } + }, + "name": "string.quoted.other.interpolated.ruby", + "patterns": [ + { + "begin": "\\G(?<=\\()(?!\\))", + "end": "(?=\\))", + "patterns": [ + { + "include": "#parens" + } + ] + }, + { + "begin": "\\G(?<=\\[)(?!\\])", + "end": "(?=\\])", + "patterns": [ + { + "include": "#brackets" + } + ] + }, + { + "begin": "\\G(?<=\\{)(?!\\})", + "end": "(?=\\})", + "patterns": [ + { + "include": "#braces" + } + ] + }, + { + "begin": "\\G(?<=<)(?!>)", + "end": "(?=>)", + "patterns": [ + { + "include": "#angles" + } + ] + }, + { + "include": "#escaped_char" + }, + { + "include": "#interpolated_ruby" + } + ], + "repository": { + "angles": { + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#interpolated_ruby" + }, + { + "begin": "<", + "end": ">", + "patterns": [ + { + "include": "#angles" + } + ] + } + ] + }, + "braces": { + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#interpolated_ruby" + }, + { + "begin": "\\{", + "end": "\\}", + "patterns": [ + { + "include": "#braces" + } + ] + } + ] + }, + "brackets": { + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#interpolated_ruby" + }, + { + "begin": "\\[", + "end": "\\]", + "patterns": [ + { + "include": "#brackets" + } + ] + } + ] + }, + "parens": { + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#interpolated_ruby" + }, + { + "begin": "\\(", + "end": "\\)", + "patterns": [ + { + "include": "#parens" + } + ] + } + ] + } + } + }, + { + "begin": "%r(?:([(\\[{<])|([^\\w\\s]|_))", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.ruby" + } + }, + "end": "([)\\]}>]\\2|\\1\\2)[eimnosux]*", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.ruby" + } + }, + "name": "string.regexp.percent.ruby", + "patterns": [ + { + "begin": "\\G(?<=\\()(?!\\))", + "end": "(?=\\))", + "patterns": [ + { + "include": "#parens" + } + ] + }, + { + "begin": "\\G(?<=\\[)(?!\\])", + "end": "(?=\\])", + "patterns": [ + { + "include": "#brackets" + } + ] + }, + { + "begin": "\\G(?<=\\{)(?!\\})", + "end": "(?=\\})", + "patterns": [ + { + "include": "#braces" + } + ] + }, + { + "begin": "\\G(?<=<)(?!>)", + "end": "(?=>)", + "patterns": [ + { + "include": "#angles" + } + ] + }, + { + "include": "#regex_sub" + } + ], + "repository": { + "angles": { + "patterns": [ + { + "include": "#regex_sub" + }, + { + "begin": "<", + "end": ">", + "patterns": [ + { + "include": "#angles" + } + ] + } + ] + }, + "braces": { + "patterns": [ + { + "include": "#regex_sub" + }, + { + "begin": "\\{", + "end": "\\}", + "patterns": [ + { + "include": "#braces" + } + ] + } + ] + }, + "brackets": { + "patterns": [ + { + "include": "#regex_sub" + }, + { + "begin": "\\[", + "end": "\\]", + "patterns": [ + { + "include": "#brackets" + } + ] + } + ] + }, + "parens": { + "patterns": [ + { + "include": "#regex_sub" + }, + { + "begin": "\\(", + "end": "\\)", + "patterns": [ + { + "include": "#parens" + } + ] + } + ] + } + } + }, + { + "begin": "%s(?:([(\\[{<])|([^\\w\\s]|_))", + "beginCaptures": { + "0": { + "name": "punctuation.definition.constant.begin.ruby" + } + }, + "end": "[)\\]}>]\\2|\\1\\2", + "endCaptures": { + "0": { + "name": "punctuation.definition.constant.end.ruby" + } + }, + "name": "constant.other.symbol.percent.ruby", + "patterns": [ + { + "begin": "\\G(?<=\\()(?!\\))", + "end": "(?=\\))", + "patterns": [ + { + "include": "#parens" + } + ] + }, + { + "begin": "\\G(?<=\\[)(?!\\])", + "end": "(?=\\])", + "patterns": [ + { + "include": "#brackets" + } + ] + }, + { + "begin": "\\G(?<=\\{)(?!\\})", + "end": "(?=\\})", + "patterns": [ + { + "include": "#braces" + } + ] + }, + { + "begin": "\\G(?<=<)(?!>)", + "end": "(?=>)", + "patterns": [ + { + "include": "#angles" + } + ] + } + ], + "repository": { + "angles": { + "patterns": [ + { + "match": "\\\\<|\\\\>|\\\\\\\\", + "name": "constant.character.escape.ruby" + }, + { + "begin": "<", + "end": ">", + "patterns": [ + { + "include": "#angles" + } + ] + } + ] + }, + "braces": { + "patterns": [ + { + "match": "\\\\\\{|\\\\\\}|\\\\\\\\", + "name": "constant.character.escape.ruby" + }, + { + "begin": "\\{", + "end": "\\}", + "patterns": [ + { + "include": "#braces" + } + ] + } + ] + }, + "brackets": { + "patterns": [ + { + "match": "\\\\\\[|\\\\\\]|\\\\\\\\", + "name": "constant.character.escape.ruby" + }, + { + "begin": "\\[", + "end": "\\]", + "patterns": [ + { + "include": "#brackets" + } + ] + } + ] + }, + "parens": { + "patterns": [ + { + "match": "\\\\\\(|\\\\\\)|\\\\\\\\", + "name": "constant.character.escape.ruby" + }, + { + "begin": "\\(", + "end": "\\)", + "patterns": [ + { + "include": "#parens" + } + ] + } + ] + } + } + }, + { + "begin": "%w(?:([(\\[{<])|([^\\w\\s]|_))", + "beginCaptures": { + "0": { + "name": "punctuation.section.array.begin.ruby" + } + }, + "end": "[)\\]}>]\\2|\\1\\2", + "endCaptures": { + "0": { + "name": "punctuation.section.array.end.ruby" + } + }, + "name": "meta.array.string.ruby", + "patterns": [ + { + "begin": "\\G(?<=\\()(?!\\))", + "end": "(?=\\))", + "patterns": [ + { + "include": "#parens" + }, + { + "include": "#string" + } + ] + }, + { + "begin": "\\G(?<=\\[)(?!\\])", + "end": "(?=\\])", + "patterns": [ + { + "include": "#brackets" + }, + { + "include": "#string" + } + ] + }, + { + "begin": "\\G(?<=\\{)(?!\\})", + "end": "(?=\\})", + "patterns": [ + { + "include": "#braces" + }, + { + "include": "#string" + } + ] + }, + { + "begin": "\\G(?<=<)(?!>)", + "end": "(?=>)", + "patterns": [ + { + "include": "#angles" + }, + { + "include": "#string" + } + ] + }, + { + "include": "#string" + } + ], + "repository": { + "angles": { + "patterns": [ + { + "captures": { + "0": { + "name": "constant.character.escape.ruby" + } + }, + "match": "\\\\<|\\\\>", + "name": "string.other.ruby" + }, + { + "begin": "<", + "captures": { + "0": { + "name": "string.other.ruby" + } + }, + "end": ">", + "patterns": [ + { + "include": "#angles" + }, + { + "include": "#string" + } + ] + } + ] + }, + "braces": { + "patterns": [ + { + "captures": { + "0": { + "name": "constant.character.escape.ruby" + } + }, + "match": "\\\\\\{|\\\\\\}", + "name": "string.other.ruby" + }, + { + "begin": "\\{", + "captures": { + "0": { + "name": "string.other.ruby" + } + }, + "end": "\\}", + "patterns": [ + { + "include": "#braces" + }, + { + "include": "#string" + } + ] + } + ] + }, + "brackets": { + "patterns": [ + { + "captures": { + "0": { + "name": "constant.character.escape.ruby" + } + }, + "match": "\\\\\\[|\\\\\\]", + "name": "string.other.ruby" + }, + { + "begin": "\\[", + "captures": { + "0": { + "name": "string.other.ruby" + } + }, + "end": "\\]", + "patterns": [ + { + "include": "#brackets" + }, + { + "include": "#string" + } + ] + } + ] + }, + "parens": { + "patterns": [ + { + "captures": { + "0": { + "name": "constant.character.escape.ruby" + } + }, + "match": "\\\\\\(|\\\\\\)", + "name": "string.other.ruby" + }, + { + "begin": "\\(", + "captures": { + "0": { + "name": "string.other.ruby" + } + }, + "end": "\\)", + "patterns": [ + { + "include": "#parens" + }, + { + "include": "#string" + } + ] + } + ] + }, + "string": { + "patterns": [ + { + "captures": { + "0": { + "name": "constant.character.escape.ruby" + } + }, + "match": "\\\\\\\\|\\\\[ ]", + "name": "string.other.ruby" + }, + { + "match": "\\S\\w*", + "name": "string.other.ruby" + } + ] + } + } + }, + { + "begin": "%W(?:([(\\[{<])|([^\\w\\s]|_))", + "beginCaptures": { + "0": { + "name": "punctuation.section.array.begin.ruby" + } + }, + "end": "[)\\]}>]\\2|\\1\\2", + "endCaptures": { + "0": { + "name": "punctuation.section.array.end.ruby" + } + }, + "name": "meta.array.string.interpolated.ruby", + "patterns": [ + { + "begin": "\\G(?<=\\()(?!\\))", + "end": "(?=\\))", + "patterns": [ + { + "include": "#parens" + }, + { + "include": "#string" + } + ] + }, + { + "begin": "\\G(?<=\\[)(?!\\])", + "end": "(?=\\])", + "patterns": [ + { + "include": "#brackets" + }, + { + "include": "#string" + } + ] + }, + { + "begin": "\\G(?<=\\{)(?!\\})", + "end": "(?=\\})", + "patterns": [ + { + "include": "#braces" + }, + { + "include": "#string" + } + ] + }, + { + "begin": "\\G(?<=<)(?!>)", + "end": "(?=>)", + "patterns": [ + { + "include": "#angles" + }, + { + "include": "#string" + } + ] + }, + { + "include": "#string" + } + ], + "repository": { + "angles": { + "patterns": [ + { + "begin": "<", + "captures": { + "0": { + "name": "string.other.ruby" + } + }, + "end": ">", + "patterns": [ + { + "include": "#angles" + }, + { + "include": "#string" + } + ] + } + ] + }, + "braces": { + "patterns": [ + { + "begin": "\\{", + "captures": { + "0": { + "name": "string.other.ruby" + } + }, + "end": "\\}", + "patterns": [ + { + "include": "#braces" + }, + { + "include": "#string" + } + ] + } + ] + }, + "brackets": { + "patterns": [ + { + "begin": "\\[", + "captures": { + "0": { + "name": "string.other.ruby" + } + }, + "end": "\\]", + "patterns": [ + { + "include": "#brackets" + }, + { + "include": "#string" + } + ] + } + ] + }, + "parens": { + "patterns": [ + { + "begin": "\\(", + "captures": { + "0": { + "name": "string.other.ruby" + } + }, + "end": "\\)", + "patterns": [ + { + "include": "#parens" + }, + { + "include": "#string" + } + ] + } + ] + }, + "string": { + "patterns": [ + { + "begin": "(?=\\\\|#\\{)", + "end": "(?!\\G)", + "name": "string.other.ruby", + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#interpolated_ruby" + } + ] + }, + { + "match": "\\S\\w*", + "name": "string.other.ruby" + } + ] + } + } + }, + { + "begin": "%x(?:([(\\[{<])|([^\\w\\s]|_))", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.ruby" + } + }, + "end": "[)\\]}>]\\2|\\1\\2", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.ruby" + } + }, + "name": "string.interpolated.percent.ruby", + "patterns": [ + { + "begin": "\\G(?<=\\()(?!\\))", + "end": "(?=\\))", + "patterns": [ + { + "include": "#parens" + } + ] + }, + { + "begin": "\\G(?<=\\[)(?!\\])", + "end": "(?=\\])", + "patterns": [ + { + "include": "#brackets" + } + ] + }, + { + "begin": "\\G(?<=\\{)(?!\\})", + "end": "(?=\\})", + "patterns": [ + { + "include": "#braces" + } + ] + }, + { + "begin": "\\G(?<=<)(?!>)", + "end": "(?=>)", + "patterns": [ + { + "include": "#angles" + } + ] + }, + { + "include": "#escaped_char" + }, + { + "include": "#interpolated_ruby" + } + ], + "repository": { + "angles": { + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#interpolated_ruby" + }, + { + "begin": "<", + "end": ">", + "patterns": [ + { + "include": "#angles" + } + ] + } + ] + }, + "braces": { + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#interpolated_ruby" + }, + { + "begin": "\\{", + "end": "\\}", + "patterns": [ + { + "include": "#braces" + } + ] + } + ] + }, + "brackets": { + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#interpolated_ruby" + }, + { + "begin": "\\[", + "end": "\\]", + "patterns": [ + { + "include": "#brackets" + } + ] + } + ] + }, + "parens": { + "patterns": [ + { + "include": "#escaped_char" + }, + { + "include": "#interpolated_ruby" + }, + { + "begin": "\\(", + "end": "\\)", + "patterns": [ + { + "include": "#parens" + } + ] + } + ] + } + } + } + ] + }, + "regex_sub": { + "patterns": [ + { + "include": "#interpolated_ruby" + }, + { + "include": "#escaped_char" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.quantifier.begin.ruby" + }, + "3": { + "name": "punctuation.definition.quantifier.end.ruby" + } + }, + "match": "(\\{)\\d+(,\\d+)?(\\})", + "name": "keyword.operator.quantifier.ruby" + }, + { + "begin": "\\[\\^?", + "beginCaptures": { + "0": { + "name": "punctuation.definition.character-class.begin.ruby" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.character-class.end.ruby" + } + }, + "name": "constant.other.character-class.set.ruby", + "patterns": [ + { + "include": "#escaped_char" + } + ] + }, + { + "begin": "\\(\\?#", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.begin.ruby" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.end.ruby" + } + }, + "name": "comment.line.number-sign.ruby", + "patterns": [ + { + "include": "#escaped_char" + } + ] + }, + { + "begin": "\\(", + "captures": { + "0": { + "name": "punctuation.definition.group.ruby" + } + }, + "end": "\\)", + "name": "meta.group.regexp.ruby", + "patterns": [ + { + "include": "#regex_sub" + } + ] + }, + { + "begin": "(?<=^|\\s)(#)\\s(?=[[a-zA-Z0-9,. \\t?!-][^\\x{00}-\\x{7F}]]*$)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.ruby" + } + }, + "comment": "We are restrictive in what we allow to go after the comment character to avoid false positives, since the availability of comments depend on regexp flags.", + "end": "$\\n?", + "name": "comment.line.number-sign.ruby" + } + ] + } + } +} diff --git a/docs/shiki/languages/rust.tmLanguage.json b/docs/shiki/languages/rust.tmLanguage.json new file mode 100644 index 00000000..bfe24851 --- /dev/null +++ b/docs/shiki/languages/rust.tmLanguage.json @@ -0,0 +1,1170 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/dustypomerleau/rust-syntax/blob/master/syntaxes/rust.tmLanguage.json", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/dustypomerleau/rust-syntax/commit/328a68299533bc2b8c71028be741cce78a9e0d53", + "name": "rust", + "scopeName": "source.rust", + "patterns": [ + { + "comment": "boxed slice literal", + "begin": "(<)(\\[)", + "beginCaptures": { + "1": { + "name": "punctuation.brackets.angle.rust" + }, + "2": { + "name": "punctuation.brackets.square.rust" + } + }, + "end": ">", + "endCaptures": { + "0": { + "name": "punctuation.brackets.angle.rust" + } + }, + "patterns": [ + { + "include": "#block-comments" + }, + { + "include": "#comments" + }, + { + "include": "#gtypes" + }, + { + "include": "#lvariables" + }, + { + "include": "#lifetimes" + }, + { + "include": "#punctuation" + }, + { + "include": "#types" + } + ] + }, + { + "comment": "macro type metavariables", + "name": "meta.macro.metavariable.type.rust", + "match": "(\\$)((crate)|([A-Z][A-Za-z0-9_]*))((:)(block|expr|ident|item|lifetime|literal|meta|path?|stmt|tt|ty|vis))?", + "captures": { + "1": { + "name": "keyword.operator.macro.dollar.rust" + }, + "3": { + "name": "keyword.other.crate.rust" + }, + "4": { + "name": "entity.name.type.metavariable.rust" + }, + "6": { + "name": "keyword.operator.key-value.rust" + }, + "7": { + "name": "variable.other.metavariable.specifier.rust" + } + }, + "patterns": [ + { + "include": "#keywords" + } + ] + }, + { + "comment": "macro metavariables", + "name": "meta.macro.metavariable.rust", + "match": "(\\$)([a-z][A-Za-z0-9_]*)((:)(block|expr|ident|item|lifetime|literal|meta|path?|stmt|tt|ty|vis))?", + "captures": { + "1": { + "name": "keyword.operator.macro.dollar.rust" + }, + "2": { + "name": "variable.other.metavariable.name.rust" + }, + "4": { + "name": "keyword.operator.key-value.rust" + }, + "5": { + "name": "variable.other.metavariable.specifier.rust" + } + }, + "patterns": [ + { + "include": "#keywords" + } + ] + }, + { + "comment": "macro rules", + "name": "meta.macro.rules.rust", + "match": "\\b(macro_rules!)\\s+(([a-z0-9_]+)|([A-Z][a-z0-9_]*))\\s+(\\{)", + "captures": { + "1": { + "name": "entity.name.function.macro.rules.rust" + }, + "3": { + "name": "entity.name.function.macro.rust" + }, + "4": { + "name": "entity.name.type.macro.rust" + }, + "5": { + "name": "punctuation.brackets.curly.rust" + } + } + }, + { + "comment": "attributes", + "name": "meta.attribute.rust", + "begin": "(#)(\\!?)(\\[)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.attribute.rust" + }, + "2": { + "name": "keyword.operator.attribute.inner.rust" + }, + "3": { + "name": "punctuation.brackets.attribute.rust" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.brackets.attribute.rust" + } + }, + "patterns": [ + { + "include": "#block-comments" + }, + { + "include": "#comments" + }, + { + "include": "#keywords" + }, + { + "include": "#lifetimes" + }, + { + "include": "#punctuation" + }, + { + "include": "#strings" + }, + { + "include": "#gtypes" + }, + { + "include": "#types" + } + ] + }, + { + "comment": "modules", + "match": "(mod)\\s+((?:r#(?!crate|[Ss]elf|super))?[a-z][A-Za-z0-9_]*)", + "captures": { + "1": { + "name": "storage.type.rust" + }, + "2": { + "name": "entity.name.module.rust" + } + } + }, + { + "comment": "external crate imports", + "name": "meta.import.rust", + "begin": "\\b(extern)\\s+(crate)", + "beginCaptures": { + "1": { + "name": "storage.type.rust" + }, + "2": { + "name": "keyword.other.crate.rust" + } + }, + "end": ";", + "endCaptures": { + "0": { + "name": "punctuation.semi.rust" + } + }, + "patterns": [ + { + "include": "#block-comments" + }, + { + "include": "#comments" + }, + { + "include": "#keywords" + }, + { + "include": "#punctuation" + } + ] + }, + { + "comment": "use statements", + "name": "meta.use.rust", + "begin": "\\b(use)\\s", + "beginCaptures": { + "1": { + "name": "keyword.other.rust" + } + }, + "end": ";", + "endCaptures": { + "0": { + "name": "punctuation.semi.rust" + } + }, + "patterns": [ + { + "include": "#block-comments" + }, + { + "include": "#comments" + }, + { + "include": "#keywords" + }, + { + "include": "#namespaces" + }, + { + "include": "#punctuation" + }, + { + "include": "#types" + }, + { + "include": "#lvariables" + } + ] + }, + { + "include": "#block-comments" + }, + { + "include": "#comments" + }, + { + "include": "#lvariables" + }, + { + "include": "#constants" + }, + { + "include": "#gtypes" + }, + { + "include": "#functions" + }, + { + "include": "#types" + }, + { + "include": "#keywords" + }, + { + "include": "#lifetimes" + }, + { + "include": "#macros" + }, + { + "include": "#namespaces" + }, + { + "include": "#punctuation" + }, + { + "include": "#strings" + }, + { + "include": "#variables" + } + ], + "repository": { + "comments": { + "patterns": [ + { + "comment": "documentation comments", + "name": "comment.line.documentation.rust", + "match": "^\\s*///.*" + }, + { + "comment": "line comments", + "name": "comment.line.double-slash.rust", + "match": "\\s*//.*" + } + ] + }, + "block-comments": { + "patterns": [ + { + "comment": "empty block comments", + "name": "comment.block.rust", + "match": "/\\*\\*/" + }, + { + "comment": "block documentation comments", + "name": "comment.block.documentation.rust", + "begin": "/\\*\\*", + "end": "\\*/", + "patterns": [ + { + "include": "#block-comments" + } + ] + }, + { + "comment": "block comments", + "name": "comment.block.rust", + "begin": "/\\*(?!\\*)", + "end": "\\*/", + "patterns": [ + { + "include": "#block-comments" + } + ] + } + ] + }, + "constants": { + "patterns": [ + { + "comment": "ALL CAPS constants", + "name": "constant.other.caps.rust", + "match": "\\b[A-Z]{2}[A-Z0-9_]*\\b" + }, + { + "comment": "constant declarations", + "match": "\\b(const)\\s+([A-Z][A-Za-z0-9_]*)\\b", + "captures": { + "1": { + "name": "storage.type.rust" + }, + "2": { + "name": "constant.other.caps.rust" + } + } + }, + { + "comment": "decimal integers and floats", + "name": "constant.numeric.decimal.rust", + "match": "\\b\\d[\\d_]*(\\.?)[\\d_]*(?:(E|e)([+-]?)([\\d_]+))?(f32|f64|i128|i16|i32|i64|i8|isize|u128|u16|u32|u64|u8|usize)?\\b", + "captures": { + "1": { + "name": "punctuation.separator.dot.decimal.rust" + }, + "2": { + "name": "keyword.operator.exponent.rust" + }, + "3": { + "name": "keyword.operator.exponent.sign.rust" + }, + "4": { + "name": "constant.numeric.decimal.exponent.mantissa.rust" + }, + "5": { + "name": "entity.name.type.numeric.rust" + } + } + }, + { + "comment": "hexadecimal integers", + "name": "constant.numeric.hex.rust", + "match": "\\b0x[\\da-fA-F_]+(i128|i16|i32|i64|i8|isize|u128|u16|u32|u64|u8|usize)?\\b", + "captures": { + "1": { + "name": "entity.name.type.numeric.rust" + } + } + }, + { + "comment": "octal integers", + "name": "constant.numeric.oct.rust", + "match": "\\b0o[0-7_]+(i128|i16|i32|i64|i8|isize|u128|u16|u32|u64|u8|usize)?\\b", + "captures": { + "1": { + "name": "entity.name.type.numeric.rust" + } + } + }, + { + "comment": "binary integers", + "name": "constant.numeric.bin.rust", + "match": "\\b0b[01_]+(i128|i16|i32|i64|i8|isize|u128|u16|u32|u64|u8|usize)?\\b", + "captures": { + "1": { + "name": "entity.name.type.numeric.rust" + } + } + }, + { + "comment": "booleans", + "name": "constant.language.bool.rust", + "match": "\\b(true|false)\\b" + } + ] + }, + "escapes": { + "comment": "escapes: ASCII, byte, Unicode, quote, regex", + "name": "constant.character.escape.rust", + "match": "(\\\\)(?:(?:(x[0-7][0-7a-fA-F])|(u(\\{)[\\da-fA-F]{4,6}(\\}))|.))", + "captures": { + "1": { + "name": "constant.character.escape.backslash.rust" + }, + "2": { + "name": "constant.character.escape.bit.rust" + }, + "3": { + "name": "constant.character.escape.unicode.rust" + }, + "4": { + "name": "constant.character.escape.unicode.punctuation.rust" + }, + "5": { + "name": "constant.character.escape.unicode.punctuation.rust" + } + } + }, + "functions": { + "patterns": [ + { + "comment": "pub as a function", + "match": "\\b(pub)(\\()", + "captures": { + "1": { + "name": "keyword.other.rust" + }, + "2": { + "name": "punctuation.brackets.round.rust" + } + } + }, + { + "comment": "function definition", + "name": "meta.function.definition.rust", + "begin": "\\b(fn)\\s+((?:r#(?!crate|[Ss]elf|super))?[A-Za-z0-9_]+)((\\()|(<))", + "beginCaptures": { + "1": { + "name": "keyword.other.fn.rust" + }, + "2": { + "name": "entity.name.function.rust" + }, + "4": { + "name": "punctuation.brackets.round.rust" + }, + "5": { + "name": "punctuation.brackets.angle.rust" + } + }, + "end": "\\{|;", + "endCaptures": { + "0": { + "name": "punctuation.brackets.curly.rust" + } + }, + "patterns": [ + { + "include": "#block-comments" + }, + { + "include": "#comments" + }, + { + "include": "#keywords" + }, + { + "include": "#lvariables" + }, + { + "include": "#constants" + }, + { + "include": "#gtypes" + }, + { + "include": "#functions" + }, + { + "include": "#lifetimes" + }, + { + "include": "#macros" + }, + { + "include": "#namespaces" + }, + { + "include": "#punctuation" + }, + { + "include": "#strings" + }, + { + "include": "#types" + }, + { + "include": "#variables" + } + ] + }, + { + "comment": "function/method calls, chaining", + "name": "meta.function.call.rust", + "begin": "((?:r#(?!crate|[Ss]elf|super))?[A-Za-z0-9_]+)(\\()", + "beginCaptures": { + "1": { + "name": "entity.name.function.rust" + }, + "2": { + "name": "punctuation.brackets.round.rust" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.brackets.round.rust" + } + }, + "patterns": [ + { + "include": "#block-comments" + }, + { + "include": "#comments" + }, + { + "include": "#keywords" + }, + { + "include": "#lvariables" + }, + { + "include": "#constants" + }, + { + "include": "#gtypes" + }, + { + "include": "#functions" + }, + { + "include": "#lifetimes" + }, + { + "include": "#macros" + }, + { + "include": "#namespaces" + }, + { + "include": "#punctuation" + }, + { + "include": "#strings" + }, + { + "include": "#types" + }, + { + "include": "#variables" + } + ] + }, + { + "comment": "function/method calls with turbofish", + "name": "meta.function.call.rust", + "begin": "((?:r#(?!crate|[Ss]elf|super))?[A-Za-z0-9_]+)(?=::<.*>\\()", + "beginCaptures": { + "1": { + "name": "entity.name.function.rust" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.brackets.round.rust" + } + }, + "patterns": [ + { + "include": "#block-comments" + }, + { + "include": "#comments" + }, + { + "include": "#keywords" + }, + { + "include": "#lvariables" + }, + { + "include": "#constants" + }, + { + "include": "#gtypes" + }, + { + "include": "#functions" + }, + { + "include": "#lifetimes" + }, + { + "include": "#macros" + }, + { + "include": "#namespaces" + }, + { + "include": "#punctuation" + }, + { + "include": "#strings" + }, + { + "include": "#types" + }, + { + "include": "#variables" + } + ] + } + ] + }, + "keywords": { + "patterns": [ + { + "comment": "control flow keywords", + "name": "keyword.control.rust", + "match": "\\b(await|break|continue|do|else|for|if|loop|match|return|try|while|yield)\\b" + }, + { + "comment": "storage keywords", + "name": "keyword.other.rust storage.type.rust", + "match": "\\b(extern|let|macro|mod)\\b" + }, + { + "comment": "const keyword", + "name": "storage.modifier.rust", + "match": "\\b(const)\\b" + }, + { + "comment": "type keyword", + "name": "keyword.declaration.type.rust storage.type.rust", + "match": "\\b(type)\\b" + }, + { + "comment": "enum keyword", + "name": "keyword.declaration.enum.rust storage.type.rust", + "match": "\\b(enum)\\b" + }, + { + "comment": "trait keyword", + "name": "keyword.declaration.trait.rust storage.type.rust", + "match": "\\b(trait)\\b" + }, + { + "comment": "struct keyword", + "name": "keyword.declaration.struct.rust storage.type.rust", + "match": "\\b(struct)\\b" + }, + { + "comment": "storage modifiers", + "name": "storage.modifier.rust", + "match": "\\b(abstract|static)\\b" + }, + { + "comment": "other keywords", + "name": "keyword.other.rust", + "match": "\\b(as|async|become|box|dyn|move|final|impl|in|override|priv|pub|ref|typeof|union|unsafe|unsized|use|virtual|where)\\b" + }, + { + "comment": "fn", + "name": "keyword.other.fn.rust", + "match": "\\bfn\\b" + }, + { + "comment": "crate", + "name": "keyword.other.crate.rust", + "match": "\\bcrate\\b" + }, + { + "comment": "mut", + "name": "storage.modifier.mut.rust", + "match": "\\bmut\\b" + }, + { + "comment": "logical operators", + "name": "keyword.operator.logical.rust", + "match": "(\\^|\\||\\|\\||&&|<<|>>|!)(?!=)" + }, + { + "comment": "logical AND, borrow references", + "name": "keyword.operator.borrow.and.rust", + "match": "&(?![&=])" + }, + { + "comment": "assignment operators", + "name": "keyword.operator.assignment.rust", + "match": "(\\+=|-=|\\*=|/=|%=|\\^=|&=|\\|=|<<=|>>=)" + }, + { + "comment": "single equal", + "name": "keyword.operator.assignment.equal.rust", + "match": "(?<![<>])=(?!=|>)" + }, + { + "comment": "comparison operators", + "name": "keyword.operator.comparison.rust", + "match": "(=(=)?(?!>)|!=|<=|(?<!=)>=)" + }, + { + "comment": "math operators", + "name": "keyword.operator.math.rust", + "match": "(([+%]|(\\*(?!\\w)))(?!=))|(-(?!>))|(/(?!/))" + }, + { + "comment": "less than, greater than (special case)", + "match": "(?:\\b|(?:(\\))|(\\])|(\\})))[ \\t]+([<>])[ \\t]+(?:\\b|(?:(\\()|(\\[)|(\\{)))", + "captures": { + "1": { + "name": "punctuation.brackets.round.rust" + }, + "2": { + "name": "punctuation.brackets.square.rust" + }, + "3": { + "name": "punctuation.brackets.curly.rust" + }, + "4": { + "name": "keyword.operator.comparison.rust" + }, + "5": { + "name": "punctuation.brackets.round.rust" + }, + "6": { + "name": "punctuation.brackets.square.rust" + }, + "7": { + "name": "punctuation.brackets.curly.rust" + } + } + }, + { + "comment": "namespace operator", + "name": "keyword.operator.namespace.rust", + "match": "::" + }, + { + "comment": "dereference asterisk", + "match": "(\\*)(?=\\w+)", + "captures": { + "1": { + "name": "keyword.operator.dereference.rust" + } + } + }, + { + "comment": "subpattern binding", + "name": "keyword.operator.subpattern.rust", + "match": "@" + }, + { + "comment": "dot access", + "name": "keyword.operator.access.dot.rust", + "match": "\\.(?!\\.)" + }, + { + "comment": "ranges, range patterns", + "name": "keyword.operator.range.rust", + "match": "\\.{2}(=|\\.)?" + }, + { + "comment": "colon", + "name": "keyword.operator.key-value.rust", + "match": ":(?!:)" + }, + { + "comment": "dashrocket, skinny arrow", + "name": "keyword.operator.arrow.skinny.rust", + "match": "->" + }, + { + "comment": "hashrocket, fat arrow", + "name": "keyword.operator.arrow.fat.rust", + "match": "=>" + }, + { + "comment": "dollar macros", + "name": "keyword.operator.macro.dollar.rust", + "match": "\\$" + }, + { + "comment": "question mark operator, questionably sized, macro kleene matcher", + "name": "keyword.operator.question.rust", + "match": "\\?" + } + ] + }, + "interpolations": { + "comment": "curly brace interpolations", + "name": "meta.interpolation.rust", + "match": "({)[^\"{}]*(})", + "captures": { + "1": { + "name": "punctuation.definition.interpolation.rust" + }, + "2": { + "name": "punctuation.definition.interpolation.rust" + } + } + }, + "lifetimes": { + "patterns": [ + { + "comment": "named lifetime parameters", + "match": "(['])([a-zA-Z_][0-9a-zA-Z_]*)(?!['])\\b", + "captures": { + "1": { + "name": "punctuation.definition.lifetime.rust" + }, + "2": { + "name": "entity.name.type.lifetime.rust" + } + } + }, + { + "comment": "borrowing references to named lifetimes", + "match": "(\\&)(['])([a-zA-Z_][0-9a-zA-Z_]*)(?!['])\\b", + "captures": { + "1": { + "name": "keyword.operator.borrow.rust" + }, + "2": { + "name": "punctuation.definition.lifetime.rust" + }, + "3": { + "name": "entity.name.type.lifetime.rust" + } + } + } + ] + }, + "macros": { + "patterns": [ + { + "comment": "macros", + "name": "meta.macro.rust", + "match": "(([a-z_][A-Za-z0-9_]*!)|([A-Z_][A-Za-z0-9_]*!))", + "captures": { + "2": { + "name": "entity.name.function.macro.rust" + }, + "3": { + "name": "entity.name.type.macro.rust" + } + } + } + ] + }, + "namespaces": { + "patterns": [ + { + "comment": "namespace (non-type, non-function path segment)", + "match": "(?<![A-Za-z0-9_])([A-Za-z0-9_]+)((?<!super|self)::)", + "captures": { + "1": { + "name": "entity.name.namespace.rust" + }, + "2": { + "name": "keyword.operator.namespace.rust" + } + } + } + ] + }, + "types": { + "patterns": [ + { + "comment": "numeric types", + "match": "(?<![A-Za-z])(f32|f64|i128|i16|i32|i64|i8|isize|u128|u16|u32|u64|u8|usize)\\b", + "captures": { + "1": { + "name": "entity.name.type.numeric.rust" + } + } + }, + { + "comment": "parameterized types", + "begin": "\\b([A-Z][A-Za-z0-9]*)(<)", + "beginCaptures": { + "1": { + "name": "entity.name.type.rust" + }, + "2": { + "name": "punctuation.brackets.angle.rust" + } + }, + "end": ">", + "endCaptures": { + "0": { + "name": "punctuation.brackets.angle.rust" + } + }, + "patterns": [ + { + "include": "#block-comments" + }, + { + "include": "#comments" + }, + { + "include": "#keywords" + }, + { + "include": "#lvariables" + }, + { + "include": "#lifetimes" + }, + { + "include": "#punctuation" + }, + { + "include": "#types" + }, + { + "include": "#variables" + } + ] + }, + { + "comment": "primitive types", + "name": "entity.name.type.primitive.rust", + "match": "\\b(bool|char|str)\\b" + }, + { + "comment": "trait declarations", + "match": "\\b(trait)\\s+([A-Z][A-Za-z0-9]*)\\b", + "captures": { + "1": { + "name": "keyword.declaration.trait.rust storage.type.rust" + }, + "2": { + "name": "entity.name.type.trait.rust" + } + } + }, + { + "comment": "struct declarations", + "match": "\\b(struct)\\s+([A-Z][A-Za-z0-9]*)\\b", + "captures": { + "1": { + "name": "keyword.declaration.struct.rust storage.type.rust" + }, + "2": { + "name": "entity.name.type.struct.rust" + } + } + }, + { + "comment": "enum declarations", + "match": "\\b(enum)\\s+([A-Z][A-Za-z0-9_]*)\\b", + "captures": { + "1": { + "name": "keyword.declaration.enum.rust storage.type.rust" + }, + "2": { + "name": "entity.name.type.enum.rust" + } + } + }, + { + "comment": "type declarations", + "match": "\\b(type)\\s+([A-Z][A-Za-z0-9_]*)\\b", + "captures": { + "1": { + "name": "keyword.declaration.type.rust storage.type.rust" + }, + "2": { + "name": "entity.name.type.declaration.rust" + } + } + }, + { + "comment": "types", + "name": "entity.name.type.rust", + "match": "\\b[A-Z][A-Za-z0-9]*\\b(?!!)" + } + ] + }, + "gtypes": { + "patterns": [ + { + "comment": "option types", + "name": "entity.name.type.option.rust", + "match": "\\b(Some|None)\\b" + }, + { + "comment": "result types", + "name": "entity.name.type.result.rust", + "match": "\\b(Ok|Err)\\b" + } + ] + }, + "punctuation": { + "patterns": [ + { + "comment": "comma", + "name": "punctuation.comma.rust", + "match": "," + }, + { + "comment": "curly braces", + "name": "punctuation.brackets.curly.rust", + "match": "[{}]" + }, + { + "comment": "parentheses, round brackets", + "name": "punctuation.brackets.round.rust", + "match": "[()]" + }, + { + "comment": "semicolon", + "name": "punctuation.semi.rust", + "match": ";" + }, + { + "comment": "square brackets", + "name": "punctuation.brackets.square.rust", + "match": "[\\[\\]]" + }, + { + "comment": "angle brackets", + "name": "punctuation.brackets.angle.rust", + "match": "(?<!=)[<>]" + } + ] + }, + "strings": { + "patterns": [ + { + "comment": "double-quoted strings and byte strings", + "name": "string.quoted.double.rust", + "begin": "(b?)(\")", + "beginCaptures": { + "1": { + "name": "string.quoted.byte.raw.rust" + }, + "2": { + "name": "punctuation.definition.string.rust" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.rust" + } + }, + "patterns": [ + { + "include": "#escapes" + }, + { + "include": "#interpolations" + } + ] + }, + { + "comment": "double-quoted raw strings and raw byte strings", + "name": "string.quoted.double.rust", + "begin": "(b?r)(#*)(\")", + "beginCaptures": { + "1": { + "name": "string.quoted.byte.raw.rust" + }, + "2": { + "name": "punctuation.definition.string.raw.rust" + }, + "3": { + "name": "punctuation.definition.string.rust" + } + }, + "end": "(\")(\\2)", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.rust" + }, + "2": { + "name": "punctuation.definition.string.raw.rust" + } + } + }, + { + "comment": "characters and bytes", + "name": "string.quoted.single.char.rust", + "begin": "(b)?(')", + "beginCaptures": { + "1": { + "name": "string.quoted.byte.raw.rust" + }, + "2": { + "name": "punctuation.definition.char.rust" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.char.rust" + } + }, + "patterns": [ + { + "include": "#escapes" + } + ] + } + ] + }, + "lvariables": { + "patterns": [ + { + "comment": "self", + "name": "variable.language.self.rust", + "match": "\\b[Ss]elf\\b" + }, + { + "comment": "super", + "name": "variable.language.super.rust", + "match": "\\bsuper\\b" + } + ] + }, + "variables": { + "patterns": [ + { + "comment": "variables", + "name": "variable.other.rust", + "match": "\\b(?<!(?<!\\.)\\.)(?:r#(?!(crate|[Ss]elf|super)))?[a-z0-9_]+\\b" + } + ] + } + } +} diff --git a/docs/shiki/languages/sas.tmLanguage.json b/docs/shiki/languages/sas.tmLanguage.json new file mode 100644 index 00000000..b8a9b32b --- /dev/null +++ b/docs/shiki/languages/sas.tmLanguage.json @@ -0,0 +1,301 @@ +{ + "comment": "A work in progress--improves over the existing in that it populates symbols, and handles comments more gracefully.", + "fileTypes": ["sas"], + "foldingStartMarker": "(?i:(proc|data|%macro).*;$)", + "foldingStopMarker": "(?i:(run|quit|%mend)\\s?);", + "name": "sas", + "patterns": [ + { + "include": "#starComment" + }, + { + "include": "#blockComment" + }, + { + "include": "#macro" + }, + { + "include": "#constant" + }, + { + "include": "#quote" + }, + { + "include": "#operator" + }, + { + "begin": "\\b(?i:(data))\\s+", + "beginCaptures": { + "1": { + "name": "keyword.other.sas" + } + }, + "comment": "Begins a DATA step and provides names for any output SAS data sets, views, or programs.", + "end": "(;)", + "patterns": [ + { + "include": "#blockComment" + }, + { + "include": "#dataSet" + }, + { + "captures": { + "1": { + "name": "keyword.other.sas" + }, + "2": { + "name": "keyword.other.sas" + } + }, + "match": "(?i:(?:(stack|pgm|view|source)\\s?=\\s?)|(debug|nesting|nolist))" + } + ] + }, + { + "begin": "\\b(?i:(set|update|modify|merge))\\s+", + "beginCaptures": { + "1": { + "name": "support.function.sas" + }, + "2": { + "name": "entity.name.class.sas" + }, + "3": { + "name": "entity.name.class.sas" + } + }, + "comment": "DATA set File-Handling Statements for DATA step", + "end": "(;)", + "patterns": [ + { + "include": "#blockComment" + }, + { + "include": "#dataSet" + } + ] + }, + { + "match": "(?i:\\b(if|while|until|for|do|end|then|else|run|quit|cancel|options)\\b)", + "name": "keyword.control.sas" + }, + { + "captures": { + "1": { + "name": "support.class.sas" + }, + "3": { + "name": "entity.name.function.sas" + } + }, + "match": "(?i:(%(bquote|do|else|end|eval|global|goto|if|inc|include|index|input|length|let|list|local|lowcase|macro|mend|nrbquote|nrquote|nrstr|put|qscan|qsysfunc|quote|run|scan|str|substr|syscall|sysevalf|sysexec|sysfunc|sysrc|then|to|unquote|upcase|until|while|window)\\b))\\s*(\\w*)", + "name": "keyword.other.sas" + }, + { + "begin": "(?i:\\b(proc\\s*(sql))\\b)", + "beginCaptures": { + "1": { + "name": "support.function.sas" + }, + "2": { + "name": "support.class.sas" + } + }, + "comment": "Looks like for this to work there must be a *name* as well as the patterns/include bit.", + "end": "(?i:\\b(quit)\\s*;)", + "endCaptures": { + "1": { + "name": "keyword.control.sas" + } + }, + "name": "meta.sql.sas", + "patterns": [ + { + "include": "#starComment" + }, + { + "include": "#blockComment" + }, + { + "include": "source.sql" + } + ] + }, + { + "match": "(?i:\\b(by|label|format)\\b)", + "name": "keyword.datastep.sas" + }, + { + "captures": { + "1": { + "name": "support.function.sas" + }, + "2": { + "name": "support.class.sas" + } + }, + "match": "(?i:\\b(proc (\\w+))\\b)", + "name": "meta.function-call.sas" + }, + { + "match": "(?i:\\b(_n_|_error_)\\b)", + "name": "variable.language.sas" + }, + { + "captures": { + "1": { + "name": "support.class.sas" + } + }, + "match": "\\b(?i:(_all_|_character_|_cmd_|_freq_|_i_|_infile_|_last_|_msg_|_null_|_numeric_|_temporary_|_type_|abort|abs|addr|adjrsq|airy|alpha|alter|altlog|altprint|and|arcos|array|arsin|as|atan|attrc|attrib|attrn|authserver|autoexec|awscontrol|awsdef|awsmenu|awsmenumerge|awstitle|backward|band|base|betainv|between|blocksize|blshift|bnot|bor|brshift|bufno|bufsize|bxor|by|byerr|byline|byte|calculated|call|cards|cards4|case|catcache|cbufno|cdf|ceil|center|cexist|change|chisq|cinv|class|cleanup|close|cnonct|cntllev|coalesce|codegen|col|collate|collin|column|comamid|comaux1|comaux2|comdef|compbl|compound|compress|config|continue|convert|cos|cosh|cpuid|create|cross|crosstab|css|curobs|cv|daccdb|daccdbsl|daccsl|daccsyd|dacctab|dairy|datalines|datalines4|date|datejul|datepart|datetime|day|dbcslang|dbcstype|dclose|ddm|delete|delimiter|depdb|depdbsl|depsl|depsyd|deptab|dequote|descending|descript|design=|device|dflang|dhms|dif|digamma|dim|dinfo|display|distinct|dkricond|dkrocond|dlm|dnum|do|dopen|doptname|doptnum|dread|drop|dropnote|dsname|dsnferr|echo|else|emaildlg|emailid|emailpw|emailserver|emailsys|encrypt|end|endsas|engine|eof|eov|erf|erfc|error|errorcheck|errors|exist|exp|fappend|fclose|fcol|fdelete|feedback|fetch|fetchobs|fexist|fget|file|fileclose|fileexist|filefmt|filename|fileref|filevar|finfo|finv|fipname|fipnamel|fipstate|first|firstobs|floor|fmterr|fmtsearch|fnonct|fnote|font|fontalias|footnote[1-9]?|fopen|foptname|foptnum|force|formatted|formchar|formdelim|formdlim|forward|fpoint|fpos|fput|fread|frewind|frlen|from|fsep|full|fullstimer|fuzz|fwrite|gaminv|gamma|getoption|getvarc|getvarn|go|goto|group|gwindow|hbar|hbound|helpenv|helploc|hms|honorappearance|hosthelp|hostprint|hour|hpct|html|hvar|ibessel|ibr|id|if|index|indexc|indexw|infile|informat|initcmd|initstmt|inner|input|inputc|inputn|inr|insert|int|intck|intnx|into|intrr|invaliddata|irr|is|jbessel|join|juldate|keep|kentb|kurtosis|label|lag|last|lbound|leave|left|length|levels|lgamma|lib|libname|library|libref|line|linesize|link|list|log|log10|log2|logpdf|logpmf|logsdf|lostcard|lowcase|lrecl|ls|macro|macrogen|maps|mautosource|max|maxdec|maxr|mdy|mean|measures|median|memtype|merge|merror|min|minute|missing|missover|mlogic|mod|mode|model|modify|month|mopen|mort|mprint|mrecall|msglevel|msymtabmax|mvarsize|myy|n|nest|netpv|new|news|nmiss|no|nobatch|nobs|nocaps|nocardimage|nocenter|nocharcode|nocmdmac|nocol|nocum|nodate|nodbcs|nodetails|nodmr|nodms|nodmsbatch|nodup|nodupkey|noduplicates|noechoauto|noequals|noerrorabend|noexitwindows|nofullstimer|noicon|noimplmac|noint|nolist|noloadlist|nomiss|nomlogic|nomprint|nomrecall|nomsgcase|nomstored|nomultenvappl|nonotes|nonumber|noobs|noovp|nopad|nopercent|noprint|noprintinit|normal|norow|norsasuser|nosetinit|nosource|nosource2|nosplash|nosymbolgen|note|notes|notitle|notitles|notsorted|noverbose|noxsync|noxwait|npv|null|number|numkeys|nummousekeys|nway|obs|ods|on|open|option|order|ordinal|otherwise|out|outer|outp=|output|over|ovp|p(1|5|10|25|50|75|90|95|99)|pad|pad2|page|pageno|pagesize|paired|parm|parmcards|path|pathdll|pathname|pdf|peek|peekc|pfkey|pmf|point|poisson|poke|position|printer|probbeta|probbnml|probchi|probf|probgam|probhypr|probit|probnegb|probnorm|probsig|probt|procleave|project|prt|propcase|prxmatch|prxparse|prxchange|prxposn|ps|put|putc|putn|pw|pwreq|qtr|quote|r|ranbin|rancau|ranexp|rangam|range|ranks|rannor|ranpoi|rantbl|rantri|ranuni|read|recfm|register|regr|remote|remove|rename|repeat|replace|resolve|retain|return|reuse|reverse|rewind|right|round|rsquare|rtf|rtrace|rtraceloc|s|s2|samploc|sasautos|sascontrol|sasfrscr|sashelp|sasmsg|sasmstore|sasscript|sasuser|saving|scan|sdf|second|select|selection|separated|seq|serror|set|setcomm|setot|sign|simple|sin|sinh|siteinfo|skewness|skip|sle|sls|sortedby|sortpgm|sortseq|sortsize|soundex|source2|spedis|splashlocation|split|spool|sqrt|start|std|stderr|stdin|stfips|stimer|stname|stnamel|stop|stopover|strip|subgroup|subpopn|substr|sum|sumwgt|symbol|symbolgen|symget|symput|sysget|sysin|sysleave|sysmsg|sysparm|sysprint|sysprintfont|sysprod|sysrc|system|t|table|tables|tan|tanh|tapeclose|tbufsize|terminal|test|then|time|timepart|tinv|title[1-9]?|tnonct|to|today|tol|tooldef|totper|transformout|translate|trantab|tranwrd|trigamma|trim|trimn|trunc|truncover|type|unformatted|uniform|union|until|upcase|update|user|usericon|uss|validate|value|var|varfmt|varinfmt|varlabel|varlen|varname|varnum|varray|varrayx|vartype|verify|vformat|vformatd|vformatdx|vformatn|vformatnx|vformatw|vformatwx|vformatx|vinarray|vinarrayx|vinformat|vinformatd|vinformatdx|vinformatn|vinformatnx|vinformatw|vinformatwx|vinformatx|vlabel|vlabelx|vlength|vlengthx|vname|vnamex|vnferr|vtype|vtypex|weekday|weight|when|where|while|wincharset|window|work|workinit|workterm|write|wsum|wsumx|x|xsync|xwait|year|yearcutoff|yes|yyq|zipfips|zipname|zipnamel|zipstate))\\b", + "name": "support.function.sas" + } + ], + "repository": { + "blockComment": { + "patterns": [ + { + "begin": "\\/\\*", + "end": "\\*\\/", + "name": "comment.block.slashstar.sas" + } + ] + }, + "constant": { + "patterns": [ + { + "comment": "numeric constant", + "match": "(?<![&\\}])\\b[0-9]*\\.?[0-9]+([eEdD][-+]?[0-9]+)?\\b", + "name": "constant.numeric.sas" + }, + { + "comment": "single quote numeric-type constant", + "match": "(')([^']+)(')(dt|[dt])", + "name": "constant.numeric.quote.single.sas" + }, + { + "comment": "double quote numeric-type constant", + "match": "(\")([^\"]+)(\")(dt|[dt])", + "name": "constant.numeric.quote.double.sas" + } + ] + }, + "dataSet": { + "patterns": [ + { + "begin": "((\\w+)\\.)?(\\w+)\\s?\\(", + "beginCaptures": { + "2": { + "name": "entity.name.class.libref.sas" + }, + "3": { + "name": "entity.name.class.dsname.sas" + } + }, + "comment": "data set with options", + "end": "\\)", + "patterns": [ + { + "include": "#dataSetOptions" + }, + { + "include": "#blockComment" + }, + { + "include": "#macro" + }, + { + "include": "#constant" + }, + { + "include": "#quote" + }, + { + "include": "#operator" + } + ] + }, + { + "captures": { + "2": { + "name": "entity.name.class.libref.sas" + }, + "3": { + "name": "entity.name.class.dsname.sas" + } + }, + "comment": "data set without options", + "match": "\\b((\\w+)\\.)?(\\w+)\\b" + } + ] + }, + "dataSetOptions": { + "patterns": [ + { + "match": "(?<=\\s|\\(|\\))(?i:ALTER|BUFNO|BUFSIZE|CNTLLEV|COMPRESS|DLDMGACTION|ENCRYPT|ENCRYPTKEY|EXTENDOBSCOUNTER|GENMAX|GENNUM|INDEX|LABEL|OBSBUF|OUTREP|PW|PWREQ|READ|REPEMPTY|REPLACE|REUSE|ROLE|SORTEDBY|SPILL|TOBSNO|TYPE|WRITE|FILECLOSE|FIRSTOBS|IN|OBS|POINTOBS|WHERE|WHEREUP|IDXNAME|IDXWHERE|DROP|KEEP|RENAME)\\s?=", + "name": "keyword.other.sas" + } + ] + }, + "macro": { + "patterns": [ + { + "match": "(&+(?i:[a-z_]([a-z0-9_]+)?)(\\.+)?)\\b", + "name": "variable.other.macro.sas" + } + ] + }, + "operator": { + "patterns": [ + { + "match": "([\\+\\-\\*\\^\\/])", + "name": "keyword.operator.arithmetic.sas" + }, + { + "match": "\\b(?i:(eq|ne|gt|lt|ge|le|in|not|&|and|or|min|max))\\b", + "name": "keyword.operator.comparison.sas" + }, + { + "match": "([¬<>^~]?=(:)?|>|<|\\||!|¦|¬|^|~|<>|><|\\|\\|)", + "name": "keyword.operator.sas" + } + ] + }, + "quote": { + "patterns": [ + { + "begin": "(?<!%)(')", + "comment": "single quoted string block", + "end": "(')([bx])?", + "name": "string.quoted.single.sas" + }, + { + "begin": "(\")", + "comment": "double quoted string block", + "end": "(\")([bx])?", + "name": "string.quoted.double.sas" + } + ] + }, + "starComment": { + "patterns": [ + { + "include": "#blockcomment" + }, + { + "begin": "(?<=;)[\\s%]*\\*", + "end": ";", + "name": "comment.line.inline.star.sas" + }, + { + "begin": "^[\\s%]*\\*", + "end": ";", + "name": "comment.line.start.sas" + } + ] + } + }, + "scopeName": "source.sas", + "uuid": "7e721b1e-6265-4865-bc4b-308d49affba1" +} diff --git a/docs/shiki/languages/sass.tmLanguage.json b/docs/shiki/languages/sass.tmLanguage.json new file mode 100644 index 00000000..25eb7b8a --- /dev/null +++ b/docs/shiki/languages/sass.tmLanguage.json @@ -0,0 +1,615 @@ +{ + "fileTypes": ["sass"], + "foldingStartMarker": "/\\*|^#|^\\*|^\\b|*#?region|^\\.", + "foldingStopMarker": "\\*/|*#?endregion|^\\s*$", + "name": "sass", + "patterns": [ + { + "begin": "^(\\s*)(/\\*)", + "end": "(\\*/)|^(?!\\s\\1)", + "name": "comment.block.sass", + "patterns": [ + { + "include": "#comment-tag" + }, + { + "include": "#comment-param" + } + ] + }, + { + "match": "^[\\t ]*/?//[\\t ]*[SRI][\\t ]*$", + "name": "keyword.other.sass.formatter.action" + }, + { + "begin": "^[\\t ]*//[\\t ]*(import)[\\t ]*(css-variables)[\\t ]*(from)", + "end": "$\\n?", + "name": "comment.import.css.variables", + "captures": { + "1": { + "name": "keyword.control" + }, + "2": { + "name": "variable" + }, + "3": { + "name": "keyword.control" + } + }, + "patterns": [ + { + "include": "#import-quotes" + } + ] + }, + { + "include": "#double-slash" + }, + { + "include": "#double-quoted" + }, + { + "include": "#single-quoted" + }, + { + "include": "#interpolation" + }, + { + "include": "#curly-brackets" + }, + { + "include": "#placeholder-selector" + }, + { + "begin": "\\$[a-zA-Z0-9_-]+(?=:)", + "end": "$\\n?|(?=\\)\\s\\)|\\)\\n)", + "name": "sass.script.maps", + "captures": { + "0": { + "name": "variable.other.name" + } + }, + "patterns": [ + { + "include": "#double-slash" + }, + { + "include": "#double-quoted" + }, + { + "include": "#single-quoted" + }, + { + "include": "#interpolation" + }, + { + "include": "#variable" + }, + { + "include": "#rgb-value" + }, + { + "include": "#numeric" + }, + { + "include": "#unit" + }, + { + "include": "#flag" + }, + { + "include": "#comma" + }, + { + "include": "#function" + }, + { + "include": "#function-content" + }, + { + "include": "#operator" + }, + { + "include": "#reserved-words" + }, + { + "include": "#parent-selector" + }, + { + "include": "#property-value" + }, + { + "include": "#semicolon" + }, + { + "include": "#dotdotdot" + } + ] + }, + { + "include": "#variable-root" + }, + { + "include": "#numeric" + }, + { + "include": "#unit" + }, + { + "include": "#flag" + }, + { + "include": "#comma" + }, + { + "include": "#semicolon" + }, + { + "include": "#dotdotdot" + }, + { + "begin": "@include|\\+(?!\\W|\\d)", + "end": "(?=\\n|\\()", + "name": "support.function.name.sass.library", + "captures": { + "0": { + "name": "keyword.control.at-rule.css.sass" + } + } + }, + { + "begin": "^(@use)", + "end": "(?=\\n)", + "name": "sass.use", + "captures": { + "0": { + "name": "keyword.control.at-rule.css.sass.use" + } + }, + "patterns": [ + { + "match": "as|with", + "name": "support.type.css.sass" + }, + { + "include": "#numeric" + }, + { + "include": "#unit" + }, + { + "include": "#variable-root" + }, + { + "include": "#rgb-value" + }, + { + "include": "#comma" + }, + { + "include": "#parenthesis-open" + }, + { + "include": "#parenthesis-close" + }, + { + "include": "#colon" + }, + { + "include": "#import-quotes" + } + ] + }, + { + "begin": "^@import(.*?)( as.*)?$", + "end": "(?=\\n)", + "name": "keyword.control.at-rule.use", + "captures": { + "1": { + "name": "constant.character.css.sass" + }, + "2": { + "name": "invalid" + } + } + }, + { + "begin": "@mixin|^[\\t ]*=|@function", + "end": "$\\n?|(?=\\()", + "name": "support.function.name.sass", + "captures": { + "0": { + "name": "keyword.control.at-rule.css.sass" + } + }, + "patterns": [ + { + "match": "[\\w-]+", + "name": "entity.name.function" + } + ] + }, + { + "begin": "@", + "end": "$\\n?|\\s(?!(all|braille|embossed|handheld|print|projection|screen|speech|tty|tv|if|only|not)(\\s|,))", + "name": "keyword.control.at-rule.css.sass" + }, + { + "begin": "(?<!\\-|\\()\\b(a|abbr|acronym|address|applet|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|datalist|dd|del|details|dfn|dialog|div|dl|dt|em|embed|eventsource|fieldset|figure|figcaption|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|label|legend|li|link|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|picture|pre|progress|q|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video|main|svg|rect|ruby|center|circle|ellipse|line|polyline|polygon|path|text|u|slot)\\b(?!-|\\)|:\\s)|&", + "end": "$\\n?|(?=\\s|,|\\(|\\)|\\.|\\#|\\[|>|-|_)", + "name": "entity.name.tag.css.sass.symbol", + "patterns": [ + { + "include": "#interpolation" + }, + { + "include": "#pseudo-class" + } + ] + }, + { + "begin": "#", + "end": "$\\n?|(?=\\s|,|\\(|\\)|\\.|\\[|>)", + "name": "entity.other.attribute-name.id.css.sass", + "patterns": [ + { + "include": "#interpolation" + }, + { + "include": "#pseudo-class" + } + ] + }, + { + "begin": "\\.|(?<=&)(-|_)", + "end": "$\\n?|(?=\\s|,|\\(|\\)|\\[|>)", + "name": "entity.other.attribute-name.class.css.sass", + "patterns": [ + { + "include": "#interpolation" + }, + { + "include": "#pseudo-class" + } + ] + }, + { + "begin": "\\[", + "end": "\\]", + "name": "entity.other.attribute-selector.sass", + "patterns": [ + { + "include": "#double-quoted" + }, + { + "include": "#single-quoted" + }, + { + "match": "\\^|\\$|\\*|~", + "name": "keyword.other.regex.sass" + } + ] + }, + { + "match": "^((?<=\\]|\\)|not\\(|\\*|>|>\\s)|\n*):[a-z:-]+|(::|:-)[a-z:-]+", + "name": "entity.other.attribute-name.pseudo-class.css.sass" + }, + { + "include": "#module" + }, + { + "match": "[\\w-]*\\(", + "name": "entity.name.function" + }, + { + "match": "\\)", + "name": "entity.name.function.close" + }, + { + "begin": ":", + "end": "$\\n?|(?=\\s\\(|and\\(|\\),)", + "name": "meta.property-list.css.sass.prop", + "patterns": [ + { + "match": "(?<=:)[a-z-]+\\s", + "name": "support.type.property-name.css.sass.prop.name" + }, + { + "include": "#double-slash" + }, + { + "include": "#double-quoted" + }, + { + "include": "#single-quoted" + }, + { + "include": "#interpolation" + }, + { + "include": "#curly-brackets" + }, + { + "include": "#variable" + }, + { + "include": "#rgb-value" + }, + { + "include": "#numeric" + }, + { + "include": "#unit" + }, + { + "include": "#module" + }, + { + "match": "--.+?(?=\\))", + "name": "variable.css" + }, + { + "match": "[\\w-]*\\(", + "name": "entity.name.function" + }, + { + "match": "\\)", + "name": "entity.name.function.close" + }, + { + "include": "#flag" + }, + { + "include": "#comma" + }, + { + "include": "#semicolon" + }, + { + "include": "#function" + }, + { + "include": "#function-content" + }, + { + "include": "#operator" + }, + { + "include": "#parent-selector" + }, + { + "include": "#property-value" + } + ] + }, + { + "include": "#rgb-value" + }, + { + "include": "#function" + }, + { + "include": "#function-content" + }, + { + "begin": "(?<=})(?!\\n|\\(|\\)|[a-zA-Z0-9_-]+:)", + "end": "\\s|(?=,|\\.|\\[|\\)|\\n)", + "name": "entity.name.tag.css.sass", + "patterns": [ + { + "include": "#interpolation" + }, + { + "include": "#pseudo-class" + } + ] + }, + { + "include": "#operator" + }, + { + "match": "[a-z-]+((?=:|#{))", + "name": "support.type.property-name.css.sass.prop.name" + }, + { + "include": "#reserved-words" + }, + { + "include": "#property-value" + } + ], + "repository": { + "module": { + "match": "([\\w-]+?)(\\.)", + "name": "constant.character.module", + "captures": { + "1": { + "name": "constant.character.module.name" + }, + "2": { + "name": "constant.numeric.module.dot" + } + } + }, + "comma": { + "match": "\\band\\b|\\bor\\b|,", + "name": "comment.punctuation.comma.sass" + }, + "comment-tag": { + "begin": "(?<={{)", + "end": "(?=}})", + "name": "comment.tag.sass" + }, + "comment-param": { + "match": "\\@(\\w+)", + "name": "storage.type.class.jsdoc" + }, + "curly-brackets": { + "match": "{|}", + "name": "invalid" + }, + "dotdotdot": { + "match": "\\.\\.\\.", + "name": "variable.other" + }, + "double-slash": { + "begin": "//", + "end": "$\\n?", + "name": "comment.line.sass", + "patterns": [ + { + "include": "#comment-tag" + } + ] + }, + "double-quoted": { + "begin": "\"", + "end": "\"", + "name": "string.quoted.double.css.sass", + "patterns": [ + { + "include": "#quoted-interpolation" + } + ] + }, + "flag": { + "match": "!(important|default|optional|global)", + "name": "keyword.other.important.css.sass" + }, + "function": { + "match": "(?<=[\\s|\\(|,|:])(?!url|format|attr)[a-zA-Z0-9_-][\\w-]*(?=\\()", + "name": "support.function.name.sass" + }, + "function-content": { + "begin": "(?<=url\\(|format\\(|attr\\()", + "end": ".(?=\\))", + "name": "string.quoted.double.css.sass" + }, + "parenthesis-open": { + "match": "\\(", + "name": "entity.name.function.parenthesis.open" + }, + "parenthesis-close": { + "match": "\\)", + "name": "entity.name.function.parenthesis.close" + }, + "colon": { + "match": ":", + "name": "meta.property-list.css.sass.colon" + }, + "interpolation": { + "begin": "#{", + "end": "}", + "name": "support.function.interpolation.sass", + "patterns": [ + { + "include": "#variable" + }, + { + "include": "#numeric" + }, + { + "include": "#operator" + }, + { + "include": "#unit" + }, + { + "include": "#comma" + }, + { + "include": "#double-quoted" + }, + { + "include": "#single-quoted" + } + ] + }, + "numeric": { + "match": "(-|\\.)?[0-9]+(\\.[0-9]+)?", + "name": "constant.numeric.css.sass" + }, + "operator": { + "match": "\\+|\\s-\\s|\\s-(?=\\$)|(?<=\\()-(?=\\$)|\\s-(?=\\()|\\*|/|%|=|!|<|>|~", + "name": "keyword.operator.sass" + }, + "parent-selector": { + "match": "&", + "name": "entity.name.tag.css.sass" + }, + "placeholder-selector": { + "begin": "(?<!\\d)%(?!\\d)", + "end": "$\\n?|\\s", + "name": "entity.other.inherited-class.placeholder-selector.css.sass" + }, + "property-value": { + "match": "[a-zA-Z0-9_-]+", + "name": "meta.property-value.css.sass support.constant.property-value.css.sass" + }, + "pseudo-class": { + "match": ":[a-z:-]+", + "name": "entity.other.attribute-name.pseudo-class.css.sass" + }, + "quoted-interpolation": { + "begin": "#{", + "end": "}", + "name": "support.function.interpolation.sass", + "patterns": [ + { + "include": "#variable" + }, + { + "include": "#numeric" + }, + { + "include": "#operator" + }, + { + "include": "#unit" + }, + { + "include": "#comma" + } + ] + }, + "reserved-words": { + "match": "\\b(false|from|in|not|null|through|to|true)\\b", + "name": "support.type.property-name.css.sass" + }, + "rgb-value": { + "match": "(#)([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})\\b", + "name": "constant.language.color.rgb-value.css.sass" + }, + "semicolon": { + "match": ";", + "name": "invalid" + }, + "single-quoted": { + "begin": "'", + "end": "'", + "name": "string.quoted.single.css.sass", + "patterns": [ + { + "include": "#quoted-interpolation" + } + ] + }, + "unit": { + "match": "(?<=[\\d]|})(ch|cm|deg|dpcm|dpi|dppx|em|ex|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vw|fr|%)", + "name": "keyword.control.unit.css.sass" + }, + "variable-root": { + "match": "\\$[a-zA-Z0-9_-]+", + "name": "variable.other.root" + }, + "variable": { + "match": "\\$[a-zA-Z0-9_-]+", + "name": "variable.other.value" + }, + "import-quotes": { + "match": "[\"']?\\.{0,2}[\\w/]+[\"']?", + "name": "constant.character.css.sass" + } + }, + "scopeName": "source.sass" +} diff --git a/docs/shiki/languages/scala.tmLanguage.json b/docs/shiki/languages/scala.tmLanguage.json new file mode 100644 index 00000000..11b23a20 --- /dev/null +++ b/docs/shiki/languages/scala.tmLanguage.json @@ -0,0 +1,1312 @@ +{ + "fileTypes": ["scala"], + "firstLineMatch": "^#!/.*\\b\\w*scala\\b", + "foldingStartMarker": "/\\*\\*|\\{\\s*$", + "foldingStopMarker": "\\*\\*/|^\\s*\\}", + "keyEquivalent": "^~S", + "repository": { + "empty-parentheses": { + "match": "(\\(\\))", + "captures": { + "1": { + "name": "meta.bracket.scala" + } + }, + "name": "meta.parentheses.scala" + }, + "imports": { + "end": "(?<=[\\n;])", + "begin": "\\b(import)\\s+", + "beginCaptures": { + "1": { + "name": "keyword.other.import.scala" + } + }, + "patterns": [ + { + "include": "#comments" + }, + { + "match": "\\b(given)\\b", + "name": "keyword.other.import.given.scala" + }, + { + "match": "[A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?", + "name": "entity.name.class.import.scala" + }, + { + "match": "(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+))", + "name": "entity.name.import.scala" + }, + { + "match": "\\.", + "name": "punctuation.definition.import" + }, + { + "end": "}", + "begin": "{", + "beginCaptures": { + "0": { + "name": "meta.bracket.scala" + } + }, + "patterns": [ + { + "match": "(?x)(given\\s)?\\s*(?:([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?)|(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)))\\s*(=>)\\s*(?:([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?)|(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)))\\s*", + "captures": { + "1": { + "name": "keyword.other.import.given.scala" + }, + "2": { + "name": "entity.name.class.import.renamed-from.scala" + }, + "3": { + "name": "entity.name.import.renamed-from.scala" + }, + "4": { + "name": "keyword.other.arrow.scala" + }, + "5": { + "name": "entity.name.class.import.renamed-to.scala" + }, + "6": { + "name": "entity.name.import.renamed-to.scala" + } + } + }, + { + "match": "\\b(given)\\b", + "name": "keyword.other.import.given.scala" + }, + { + "match": "(given\\s+)?(?:([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?)|(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)))", + "captures": { + "1": { + "name": "keyword.other.import.given.scala" + }, + "2": { + "name": "entity.name.class.import.scala" + }, + "3": { + "name": "entity.name.import.scala" + } + } + } + ], + "endCaptures": { + "0": { + "name": "meta.bracket.scala" + } + }, + "name": "meta.import.selector.scala" + } + ], + "name": "meta.import.scala" + }, + "exports": { + "end": "(?<=[\\n;])", + "begin": "\\b(export)\\s+", + "beginCaptures": { + "1": { + "name": "keyword.other.export.scala" + } + }, + "patterns": [ + { + "include": "#comments" + }, + { + "match": "\\b(given)\\b", + "name": "keyword.other.export.given.scala" + }, + { + "match": "[A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?", + "name": "entity.name.class.export.scala" + }, + { + "match": "(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+))", + "name": "entity.name.export.scala" + }, + { + "match": "\\.", + "name": "punctuation.definition.export" + }, + { + "end": "}", + "begin": "{", + "beginCaptures": { + "0": { + "name": "meta.bracket.scala" + } + }, + "patterns": [ + { + "match": "(?x)(given\\s)?\\s*(?:([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?)|(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)))\\s*(=>)\\s*(?:([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?)|(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)))\\s*", + "captures": { + "1": { + "name": "keyword.other.export.given.scala" + }, + "2": { + "name": "entity.name.class.export.renamed-from.scala" + }, + "3": { + "name": "entity.name.export.renamed-from.scala" + }, + "4": { + "name": "keyword.other.arrow.scala" + }, + "5": { + "name": "entity.name.class.export.renamed-to.scala" + }, + "6": { + "name": "entity.name.export.renamed-to.scala" + } + } + }, + { + "match": "\\b(given)\\b", + "name": "keyword.other.export.given.scala" + }, + { + "match": "(given\\s+)?(?:([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?)|(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)))", + "captures": { + "1": { + "name": "keyword.other.export.given.scala" + }, + "2": { + "name": "entity.name.class.export.scala" + }, + "3": { + "name": "entity.name.export.scala" + } + } + } + ], + "endCaptures": { + "0": { + "name": "meta.bracket.scala" + } + }, + "name": "meta.export.selector.scala" + } + ], + "name": "meta.export.scala" + }, + "constants": { + "patterns": [ + { + "match": "\\b(false|null|true)\\b", + "name": "constant.language.scala" + }, + { + "match": "\\b(0[xX][0-9a-fA-F_]*)\\b", + "name": "constant.numeric.scala" + }, + { + "match": "\\b(([0-9][0-9_]*(\\.[0-9][0-9_]*)?)([eE](\\+|-)?[0-9][0-9_]*)?|[0-9][0-9_]*)[LlFfDd]?\\b", + "name": "constant.numeric.scala" + }, + { + "match": "(\\.[0-9][0-9_]*)([eE](\\+|-)?[0-9][0-9_]*)?[LlFfDd]?\\b", + "name": "constant.numeric.scala" + }, + { + "match": "\\b(this|super)\\b", + "name": "variable.language.scala" + } + ] + }, + "script-header": { + "match": "^#!(.*)$", + "captures": { + "1": { + "name": "string.unquoted.shebang.scala" + } + }, + "name": "comment.block.shebang.scala" + }, + "code": { + "patterns": [ + { + "include": "#using-directive" + }, + { + "include": "#script-header" + }, + { + "include": "#storage-modifiers" + }, + { + "include": "#declarations" + }, + { + "include": "#inheritance" + }, + { + "include": "#extension" + }, + { + "include": "#imports" + }, + { + "include": "#exports" + }, + { + "include": "#comments" + }, + { + "include": "#strings" + }, + { + "include": "#initialization" + }, + { + "include": "#xml-literal" + }, + { + "include": "#keywords" + }, + { + "include": "#using" + }, + { + "include": "#constants" + }, + { + "include": "#singleton-type" + }, + { + "include": "#inline" + }, + { + "include": "#scala-quoted-or-symbol" + }, + { + "include": "#char-literal" + }, + { + "include": "#empty-parentheses" + }, + { + "include": "#parameter-list" + }, + { + "include": "#qualifiedClassName" + }, + { + "include": "#backQuotedVariable" + }, + { + "include": "#curly-braces" + }, + { + "include": "#meta-brackets" + }, + { + "include": "#meta-bounds" + }, + { + "include": "#meta-colons" + } + ] + }, + "strings": { + "patterns": [ + { + "end": "\"\"\"(?!\")", + "begin": "\"\"\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.scala" + } + }, + "patterns": [ + { + "match": "\\\\\\\\|\\\\u[0-9A-Fa-f]{4}", + "name": "constant.character.escape.scala" + } + ], + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.scala" + } + }, + "name": "string.quoted.triple.scala" + }, + { + "begin": "\\b(raw)(\"\"\")", + "end": "(\"\"\")(?!\")|\\$\n|(\\$[^\\$\"_{A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}])", + "beginCaptures": { + "1": { + "name": "keyword.interpolation.scala" + }, + "2": { + "name": "string.quoted.triple.interpolated.scala punctuation.definition.string.begin.scala" + } + }, + "patterns": [ + { + "match": "\\$[\\$\"]", + "name": "constant.character.escape.scala" + }, + { + "include": "#string-interpolation" + }, + { + "match": ".", + "name": "string.quoted.triple.interpolated.scala" + } + ], + "endCaptures": { + "1": { + "name": "string.quoted.triple.interpolated.scala punctuation.definition.string.end.scala" + }, + "2": { + "name": "invalid.illegal.unrecognized-string-escape.scala" + } + } + }, + { + "begin": "\\b((?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?))(\"\"\")", + "end": "(\"\"\")(?!\")|\\$\n|(\\$[^\\$\"_{A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}])", + "beginCaptures": { + "1": { + "name": "keyword.interpolation.scala" + }, + "2": { + "name": "string.quoted.triple.interpolated.scala punctuation.definition.string.begin.scala" + } + }, + "patterns": [ + { + "include": "#string-interpolation" + }, + { + "match": "\\\\\\\\|\\\\u[0-9A-Fa-f]{4}", + "name": "constant.character.escape.scala" + }, + { + "match": ".", + "name": "string.quoted.triple.interpolated.scala" + } + ], + "endCaptures": { + "1": { + "name": "string.quoted.triple.interpolated.scala punctuation.definition.string.end.scala" + }, + "2": { + "name": "invalid.illegal.unrecognized-string-escape.scala" + } + } + }, + { + "end": "\"", + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.scala" + } + }, + "patterns": [ + { + "match": "\\\\(?:[btnfr\\\\\"']|[0-7]{1,3}|u[0-9A-Fa-f]{4})", + "name": "constant.character.escape.scala" + }, + { + "match": "\\\\.", + "name": "invalid.illegal.unrecognized-string-escape.scala" + } + ], + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.scala" + } + }, + "name": "string.quoted.double.scala" + }, + { + "begin": "\\b(raw)(\")", + "end": "(\")|\\$\n|(\\$[^\\$\"_{A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}])", + "beginCaptures": { + "1": { + "name": "keyword.interpolation.scala" + }, + "2": { + "name": "string.quoted.double.interpolated.scala punctuation.definition.string.begin.scala" + } + }, + "patterns": [ + { + "match": "\\$[\\$\"]", + "name": "constant.character.escape.scala" + }, + { + "include": "#string-interpolation" + }, + { + "match": ".", + "name": "string.quoted.double.interpolated.scala" + } + ], + "endCaptures": { + "1": { + "name": "string.quoted.double.interpolated.scala punctuation.definition.string.end.scala" + }, + "2": { + "name": "invalid.illegal.unrecognized-string-escape.scala" + } + } + }, + { + "begin": "\\b((?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?))(\")", + "end": "(\")|\\$\n|(\\$[^\\$\"_{A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}])", + "beginCaptures": { + "1": { + "name": "keyword.interpolation.scala" + }, + "2": { + "name": "string.quoted.double.interpolated.scala punctuation.definition.string.begin.scala" + } + }, + "patterns": [ + { + "match": "\\$[\\$\"]", + "name": "constant.character.escape.scala" + }, + { + "include": "#string-interpolation" + }, + { + "match": "\\\\(?:[btnfr\\\\\"']|[0-7]{1,3}|u[0-9A-Fa-f]{4})", + "name": "constant.character.escape.scala" + }, + { + "match": "\\\\.", + "name": "invalid.illegal.unrecognized-string-escape.scala" + }, + { + "match": ".", + "name": "string.quoted.double.interpolated.scala" + } + ], + "endCaptures": { + "1": { + "name": "string.quoted.double.interpolated.scala punctuation.definition.string.end.scala" + }, + "2": { + "name": "invalid.illegal.unrecognized-string-escape.scala" + } + } + } + ] + }, + "using": { + "patterns": [ + { + "match": "(?<=\\()\\s*(using)\\s", + "captures": { + "1": { + "name": "keyword.declaration.scala" + } + } + } + ] + }, + "string-interpolation": { + "patterns": [ + { + "name": "constant.character.escape.interpolation.scala", + "match": "\\$\\$" + }, + { + "name": "meta.template.expression.scala", + "match": "(\\$)([A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\p{Lo}\\p{Nl}\\p{Ll}0-9]*)", + "captures": { + "1": { + "name": "punctuation.definition.template-expression.begin.scala" + } + } + }, + { + "name": "meta.template.expression.scala", + "begin": "\\$\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.template-expression.begin.scala" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.template-expression.end.scala" + } + }, + "patterns": [ + { + "include": "#code" + } + ], + "contentName": "meta.embedded.line.scala" + } + ] + }, + "xml-entity": { + "match": "(&)([:a-zA-Z_][:a-zA-Z0-9_.-]*|#[0-9]+|#x[0-9a-fA-F]+)(;)", + "captures": { + "1": { + "name": "punctuation.definition.constant.xml" + }, + "3": { + "name": "punctuation.definition.constant.xml" + } + }, + "name": "constant.character.entity.xml" + }, + "xml-singlequotedString": { + "end": "'", + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.xml" + } + }, + "patterns": [ + { + "include": "#xml-entity" + } + ], + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.xml" + } + }, + "name": "string.quoted.single.xml" + }, + "meta-colons": { + "patterns": [ + { + "match": "(?<!:):(?!:)", + "name": "meta.colon.scala" + } + ], + "comment": "For themes: Matching type colons" + }, + "keywords": { + "patterns": [ + { + "match": "\\b(return|throw)\\b", + "name": "keyword.control.flow.jump.scala" + }, + { + "match": "\\b(classOf|isInstanceOf|asInstanceOf)\\b", + "name": "support.function.type-of.scala" + }, + { + "match": "\\b(else|if|then|do|while|for|yield|match|case)\\b", + "name": "keyword.control.flow.scala" + }, + { + "match": "^\\s*(end)\\s+(if|while|for|match)(?=\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)", + "name": "keyword.control.flow.end.scala" + }, + { + "match": "^\\s*(end)\\s+(val)(?=\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)", + "name": "keyword.declaration.stable.end.scala" + }, + { + "match": "^\\s*(end)\\s+(var)(?=\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)", + "name": "keyword.declaration.volatile.end.scala" + }, + { + "match": "^\\s*(end)\\s+(?:(new|extension)|([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?))(?=\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)", + "captures": { + "1": { + "name": "keyword.declaration.end.scala" + }, + "2": { + "name": "keyword.declaration.end.scala" + }, + "3": { + "name": "entity.name.type.declaration" + } + } + }, + { + "match": "\\b(catch|finally|try)\\b", + "name": "keyword.control.exception.scala" + }, + { + "match": "^\\s*(end)\\s+(try)(?=\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)", + "name": "keyword.control.exception.end.scala" + }, + { + "match": "^\\s*(end)\\s+(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+))?(?=\\s*(//.*|/\\*(?!.*\\*/\\s*\\S.*).*)?$)", + "captures": { + "1": { + "name": "keyword.declaration.end.scala" + }, + "2": { + "name": "entity.name.declaration" + } + } + }, + { + "match": "(==?|!=|<=|>=|<>|<|>)", + "name": "keyword.operator.comparison.scala" + }, + { + "match": "(\\-|\\+|\\*|/(?![/*])|%|~)", + "name": "keyword.operator.arithmetic.scala" + }, + { + "match": "(?<![!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]|_)(!|&&|\\|\\|)(?![!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}])", + "name": "keyword.operator.logical.scala" + }, + { + "match": "(<-|←|->|→|=>|⇒|\\?|\\:+|@|\\|)+", + "name": "keyword.operator.scala" + } + ] + }, + "singleton-type": { + "match": "\\.(type)(?![A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[0-9])", + "captures": { + "1": { + "name": "keyword.type.scala" + } + } + }, + "inline": { + "patterns": [ + { + "match": "\\b(inline)(?=\\s+((?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`)\\s*:)", + "name": "storage.modifier.other" + }, + { + "match": "\\b(inline)\\b(?=(?:.(?!\\b(?:val|def|given)\\b))*\\b(if|match)\\b)", + "name": "keyword.control.flow.scala" + } + ] + }, + "scala-quoted-or-symbol": { + "patterns": [ + { + "match": "(')((?>(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)))(?!')", + "captures": { + "1": { + "name": "keyword.control.flow.staging.scala constant.other.symbol.scala" + }, + "2": { + "name": "constant.other.symbol.scala" + } + } + }, + { + "match": "'(?=\\s*\\{(?!'))", + "name": "keyword.control.flow.staging.scala" + }, + { + "match": "'(?=\\s*\\[(?!'))", + "name": "keyword.control.flow.staging.scala" + }, + { + "match": "\\$(?=\\s*\\{)", + "name": "keyword.control.flow.staging.scala" + } + ] + }, + "xml-doublequotedString": { + "end": "\"", + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.xml" + } + }, + "patterns": [ + { + "include": "#xml-entity" + } + ], + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.xml" + } + }, + "name": "string.quoted.double.xml" + }, + "declarations": { + "patterns": [ + { + "match": "\\b(def)\\b\\s*(?!//|/\\*)((?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`))?", + "captures": { + "1": { + "name": "keyword.declaration.scala" + }, + "2": { + "name": "entity.name.function.declaration" + } + } + }, + { + "match": "\\b(trait)\\b\\s*(?!//|/\\*)((?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`))?", + "captures": { + "1": { + "name": "keyword.declaration.scala" + }, + "2": { + "name": "entity.name.class.declaration" + } + } + }, + { + "match": "\\b(?:(case)\\s+)?(class|object|enum)\\b\\s*(?!//|/\\*)((?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`))?", + "captures": { + "1": { + "name": "keyword.declaration.scala" + }, + "2": { + "name": "keyword.declaration.scala" + }, + "3": { + "name": "entity.name.class.declaration" + } + } + }, + { + "match": "(?<!\\.)\\b(type)\\b\\s*(?!//|/\\*)((?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`))?", + "captures": { + "1": { + "name": "keyword.declaration.scala" + }, + "2": { + "name": "entity.name.type.declaration" + } + } + }, + { + "match": "\\b(?:(val)|(var))\\b\\s*(?!//|/\\*)(?=(?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`)?\\()", + "captures": { + "1": { + "name": "keyword.declaration.stable.scala" + }, + "2": { + "name": "keyword.declaration.volatile.scala" + } + } + }, + { + "match": "\\b(val)\\b\\s*(?!//|/\\*)((?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`)(?:\\s*,\\s*(?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`))*)?", + "captures": { + "1": { + "name": "keyword.declaration.stable.scala" + }, + "2": { + "name": "variable.stable.declaration.scala" + } + } + }, + { + "match": "\\b(var)\\b\\s*(?!//|/\\*)((?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`)(?:\\s*,\\s*(?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`))*)?", + "captures": { + "1": { + "name": "keyword.declaration.volatile.scala" + }, + "2": { + "name": "variable.volatile.declaration.scala" + } + } + }, + { + "match": "\\b(package)\\s+(object)\\b\\s*(?!//|/\\*)((?:(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)|`[^`]+`))?", + "captures": { + "1": { + "name": "keyword.other.scoping.scala" + }, + "2": { + "name": "keyword.declaration.scala" + }, + "3": { + "name": "entity.name.class.declaration" + } + } + }, + { + "end": "(?<=[\\n;])", + "begin": "\\b(package)\\s+", + "beginCaptures": { + "1": { + "name": "keyword.other.import.scala" + } + }, + "patterns": [ + { + "include": "#comments" + }, + { + "match": "(`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+))", + "name": "entity.name.package.scala" + }, + { + "match": "\\.", + "name": "punctuation.definition.package" + } + ], + "name": "meta.package.scala" + }, + { + "match": "\\b(given)\\b\\s*([_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|`[^`]+`)?", + "captures": { + "1": { + "name": "keyword.declaration.scala" + }, + "2": { + "name": "entity.name.given.declaration" + } + } + } + ] + }, + "char-literal": { + "end": "'|$", + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.character.begin.scala" + } + }, + "patterns": [ + { + "match": "\\\\(?:[btnfr\\\\\"']|[0-7]{1,3}|u[0-9A-Fa-f]{4})", + "name": "constant.character.escape.scala" + }, + { + "match": "\\\\.", + "name": "invalid.illegal.unrecognized-character-escape.scala" + }, + { + "match": "[^']{2,}", + "name": "invalid.illegal.character-literal-too-long" + }, + { + "match": "(?<!')[^']", + "name": "invalid.illegal.character-literal-too-long" + } + ], + "endCaptures": { + "0": { + "name": "punctuation.definition.character.end.scala" + } + }, + "name": "string.quoted.other constant.character.literal.scala" + }, + "initialization": { + "match": "\\b(new)\\b", + "captures": { + "1": { + "name": "keyword.declaration.scala" + } + } + }, + "curly-braces": { + "begin": "\\{", + "end": "\\}", + "beginCaptures": { + "0": { + "name": "punctuation.section.block.begin.scala" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.block.end.scala" + } + }, + "patterns": [ + { + "include": "#code" + } + ] + }, + "meta-brackets": { + "patterns": [ + { + "match": "\\{", + "comment": "The punctuation.section.*.begin is needed for return snippet in source bundle", + "name": "punctuation.section.block.begin.scala" + }, + { + "match": "\\}", + "comment": "The punctuation.section.*.end is needed for return snippet in source bundle", + "name": "punctuation.section.block.end.scala" + }, + { + "match": "{|}|\\(|\\)|\\[|\\]", + "name": "meta.bracket.scala" + } + ], + "comment": "For themes: Brackets look nice when colored." + }, + "qualifiedClassName": { + "match": "(\\b([A-Z][\\w]*)(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?)", + "captures": { + "1": { + "name": "entity.name.class" + } + } + }, + "backQuotedVariable": { + "match": "`[^`]+`" + }, + "storage-modifiers": { + "patterns": [ + { + "match": "\\b(private\\[\\S+\\]|protected\\[\\S+\\]|private|protected)\\b", + "name": "storage.modifier.access" + }, + { + "match": "\\b(synchronized|@volatile|abstract|final|lazy|sealed|implicit|override|@transient|@native)\\b", + "name": "storage.modifier.other" + }, + { + "match": "(?<=^|\\s)\\b(transparent|opaque|infix|open|inline)\\b(?=[a-z\\s]*\\b(def|val|var|given|type|class|trait|object|enum)\\b)", + "name": "storage.modifier.other" + } + ] + }, + "meta-bounds": { + "match": "<%|=:=|<:<|<%<|>:|<:", + "comment": "For themes: Matching view bounds", + "name": "meta.bounds.scala" + }, + "using-directive": { + "end": "\\n", + "begin": "^\\s*(//>)\\s*(using)[^\\S\\n]+(?:(\\S+))?", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.scala" + }, + "2": { + "name": "keyword.other.import.scala" + }, + "3": { + "patterns": [ + { + "match": "[A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|`[^`]+`|(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)", + "name": "entity.name.import.scala" + }, + { + "match": "\\.", + "name": "punctuation.definition.import" + } + ] + } + }, + "patterns": [ + { + "include": "#constants" + }, + { + "include": "#strings" + }, + { + "match": "[^\\s,]+", + "name": "string.quoted.double.scala" + } + ], + "name": "comment.line.shebang.scala" + }, + "comments": { + "patterns": [ + { + "include": "#block-comments" + }, + { + "end": "(?!\\G)", + "begin": "(^[ \\t]+)?(?=//)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.scala" + } + }, + "patterns": [ + { + "end": "\\n", + "begin": "//", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.scala" + } + }, + "name": "comment.line.double-slash.scala" + } + ] + } + ] + }, + "block-comments": { + "patterns": [ + { + "match": "/\\*\\*/", + "captures": { + "0": { + "name": "punctuation.definition.comment.scala" + } + }, + "name": "comment.block.empty.scala" + }, + { + "end": "\\*/", + "begin": "^\\s*(/\\*\\*)(?!/)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.scala" + } + }, + "patterns": [ + { + "match": "(@param)\\s+(\\S+)", + "captures": { + "1": { + "name": "keyword.other.documentation.scaladoc.scala" + }, + "2": { + "name": "variable.parameter.scala" + } + } + }, + { + "match": "(@(?:tparam|throws))\\s+(\\S+)", + "captures": { + "1": { + "name": "keyword.other.documentation.scaladoc.scala" + }, + "2": { + "name": "entity.name.class" + } + } + }, + { + "match": "@(return|see|note|example|constructor|usecase|author|version|since|todo|deprecated|migration|define|inheritdoc)\\b", + "name": "keyword.other.documentation.scaladoc.scala" + }, + { + "match": "(\\[\\[)([^\\]]+)(\\]\\])", + "captures": { + "1": { + "name": "punctuation.definition.documentation.link.scala" + }, + "2": { + "name": "string.other.link.title.markdown" + }, + "3": { + "name": "punctuation.definition.documentation.link.scala" + } + } + }, + { + "include": "#block-comments" + } + ], + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.scala" + } + }, + "name": "comment.block.documentation.scala" + }, + { + "end": "\\*/", + "begin": "/\\*", + "captures": { + "0": { + "name": "punctuation.definition.comment.scala" + } + }, + "patterns": [ + { + "include": "#block-comments" + } + ], + "name": "comment.block.scala" + } + ] + }, + "xml-embedded-content": { + "patterns": [ + { + "end": "}", + "begin": "{", + "patterns": [ + { + "include": "#code" + } + ], + "captures": { + "0": { + "name": "meta.bracket.scala" + } + }, + "name": "meta.source.embedded.scala" + }, + { + "match": " (?:([-_a-zA-Z0-9]+)((:)))?([_a-zA-Z-]+)=", + "captures": { + "1": { + "name": "entity.other.attribute-name.namespace.xml" + }, + "2": { + "name": "entity.other.attribute-name.xml" + }, + "3": { + "name": "punctuation.separator.namespace.xml" + }, + "4": { + "name": "entity.other.attribute-name.localname.xml" + } + } + }, + { + "include": "#xml-doublequotedString" + }, + { + "include": "#xml-singlequotedString" + } + ] + }, + "inheritance": { + "patterns": [ + { + "match": "\\b(extends|with|derives)\\b\\s*([A-Z\\p{Lt}\\p{Lu}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|`[^`]+`|(?=\\([^\\)]+=>)|(?=(?:[A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?|[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+))|(?=\"))?", + "captures": { + "1": { + "name": "keyword.declaration.scala" + }, + "2": { + "name": "entity.name.class" + } + } + } + ] + }, + "extension": { + "patterns": [ + { + "match": "^\\s*(extension)\\s+(?=[\\[\\(])", + "captures": { + "1": { + "name": "keyword.declaration.scala" + } + } + } + ] + }, + "parameter-list": { + "patterns": [ + { + "match": "(?<=[^\\._$a-zA-Z0-9])(`[^`]+`|[_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}][A-Z\\p{Lt}\\p{Lu}_a-z\\$\\p{Lo}\\p{Nl}\\p{Ll}0-9]*(?:(?<=_)[!#%&*+\\-\\/:<>=?@^|~\\p{Sm}\\p{So}]+)?)\\s*(:)\\s+", + "captures": { + "1": { + "name": "variable.parameter.scala" + }, + "2": { + "name": "meta.colon.scala" + } + } + } + ] + }, + "xml-literal": { + "patterns": [ + { + "end": "(>(<))/(?:([-_a-zA-Z0-9]+)((:)))?([-_a-zA-Z0-9:]*[_a-zA-Z0-9])(>)", + "begin": "(<)((?:([_a-zA-Z0-9][_a-zA-Z0-9]*)((:)))?([_a-zA-Z0-9][-_a-zA-Z0-9:]*))(?=(\\s[^>]*)?></\\2>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.xml" + }, + "3": { + "name": "entity.name.tag.namespace.xml" + }, + "4": { + "name": "entity.name.tag.xml" + }, + "5": { + "name": "punctuation.separator.namespace.xml" + }, + "6": { + "name": "entity.name.tag.localname.xml" + } + }, + "patterns": [ + { + "include": "#xml-embedded-content" + } + ], + "comment": "We do not allow a tag name to start with a - since this would likely conflict with the <- operator. This is not very common for tag names anyway. Also code such as -- if (val <val2 || val> val3) will falsly be recognized as an xml tag. The solution is to put a space on either side of the comparison operator", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.xml" + }, + "2": { + "name": "meta.scope.between-tag-pair.xml" + }, + "3": { + "name": "entity.name.tag.namespace.xml" + }, + "4": { + "name": "entity.name.tag.xml" + }, + "5": { + "name": "punctuation.separator.namespace.xml" + }, + "6": { + "name": "entity.name.tag.localname.xml" + }, + "7": { + "name": "punctuation.definition.tag.xml" + } + }, + "name": "meta.tag.no-content.xml" + }, + { + "end": "(/?>)", + "begin": "(</?)(?:([_a-zA-Z0-9][-_a-zA-Z0-9]*)((:)))?([_a-zA-Z0-9][-_a-zA-Z0-9:]*)(?=[^>]*?>)", + "patterns": [ + { + "include": "#xml-embedded-content" + } + ], + "captures": { + "1": { + "name": "punctuation.definition.tag.xml" + }, + "2": { + "name": "entity.name.tag.namespace.xml" + }, + "3": { + "name": "entity.name.tag.xml" + }, + "4": { + "name": "punctuation.separator.namespace.xml" + }, + "5": { + "name": "entity.name.tag.localname.xml" + } + }, + "name": "meta.tag.xml" + }, + { + "include": "#xml-entity" + } + ] + } + }, + "uuid": "158C0929-299A-40C8-8D89-316BE0C446E8", + "patterns": [ + { + "include": "#code" + } + ], + "name": "scala", + "scopeName": "source.scala" +} diff --git a/docs/shiki/languages/scheme.tmLanguage.json b/docs/shiki/languages/scheme.tmLanguage.json new file mode 100644 index 00000000..a56273e9 --- /dev/null +++ b/docs/shiki/languages/scheme.tmLanguage.json @@ -0,0 +1,381 @@ +{ + "comment": "\n\t\tThe foldings do not currently work the way I want them to. This\n\t\tmay be a limitation of the way they are applied rather than the\n\t\tregexps in use. Nonetheless, the foldings will end on the last\n\t\tidentically indented blank line following an s-expression. Not\n\t\tideal perhaps, but it works. Also, the #illegal pattern never\n\t\tmatches an unpaired ( as being illegal. Why?! -- Rob Rix\n\t\t\n\t\tOk, hopefully this grammar works better on quoted stuff now. It\n\t\tmay break for fancy macros, but should generally work pretty\n\t\tsmoothly. -- Jacob Rus\n\t\t\n\t\tI have attempted to get this under control but because of the way folding\n\t\tand indentation interact in Textmate, I am not sure if it is possible. In the\n\t\tmeantime, I have implemented Python-style folding anchored at newlines.\n\t\tAdditionally, I have made some minor improvements to the numeric constant\n\t\thighlighting. Next up is square bracket expressions, I guess, but that\n\t\tshould be trivial. -- ozy`\n\t", + "fileTypes": ["scm", "ss", "sch", "rkt"], + "keyEquivalent": "^~S", + "name": "scheme", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#block-comment" + }, + { + "include": "#sexp" + }, + { + "include": "#string" + }, + { + "include": "#language-functions" + }, + { + "include": "#quote" + }, + { + "include": "#illegal" + } + ], + "repository": { + "comment": { + "begin": "(^[ \\t]+)?(?=;)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.scheme" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": ";", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.scheme" + } + }, + "end": "\\n", + "name": "comment.line.semicolon.scheme" + } + ] + }, + "block-comment": { + "begin": "\\#\\|", + "contentName": "comment", + "end": "\\|\\#", + "name": "comment", + "patterns": [ + { + "include": "#block-comment", + "name": "comment" + } + ] + }, + "constants": { + "patterns": [ + { + "match": "#[t|f]", + "name": "constant.language.boolean.scheme" + }, + { + "match": "(?<=[\\(\\s])((#e|#i)?[0-9]+(\\.[0-9]+)?|(#x)[0-9a-fA-F]+|(#o)[0-7]+|(#b)[01]+)(?=[\\s;()'\",\\[\\]])", + "name": "constant.numeric.scheme" + } + ] + }, + "illegal": { + "match": "[()\\[\\]]", + "name": "invalid.illegal.parenthesis.scheme" + }, + "language-functions": { + "patterns": [ + { + "match": "(?x)\n\t\t\t\t\t\t(?<=(\\s|\\(|\\[)) # preceded by space or ( \n\t\t\t\t\t\t( do|or|and|else|quasiquote|begin|if|case|set!|\n\t\t\t\t\t\t cond|let|unquote|define|let\\*|unquote-splicing|delay|\n\t\t\t\t\t\t letrec)\n\t\t\t\t\t\t(?=(\\s|\\())", + "name": "keyword.control.scheme" + }, + { + "comment": "\n\t\t\t\t\t\tThese functions run a test, and return a boolean\n\t\t\t\t\t\tanswer.\n\t\t\t\t\t", + "match": "(?x)\n\t\t\t\t\t\t(?<=(\\s|\\()) # preceded by space or (\n\t\t\t\t\t\t( char-alphabetic|char-lower-case|char-numeric|\n\t\t\t\t\t\t char-ready|char-upper-case|char-whitespace|\n\t\t\t\t\t\t (?:char|string)(?:-ci)?(?:=|<=?|>=?)|\n\t\t\t\t\t\t atom|boolean|bound-identifier=|char|complex|\n\t\t\t\t\t\t identifier|integer|symbol|free-identifier=|inexact|\n\t\t\t\t\t\t eof-object|exact|list|(?:input|output)-port|pair|\n\t\t\t\t\t\t real|rational|zero|vector|negative|odd|null|string|\n\t\t\t\t\t\t eq|equal|eqv|even|number|positive|procedure\n\t\t\t\t\t\t)\n\t\t\t\t\t\t(\\?)\t\t# name ends with ? sign\n\t\t\t\t\t\t(?=(\\s|\\()) # followed by space or (\n\t\t\t\t\t", + "name": "support.function.boolean-test.scheme" + }, + { + "comment": "\n\t\t\t\t\t\tThese functions change one type into another.\n\t\t\t\t\t", + "match": "(?x)\n\t\t\t\t\t\t(?<=(\\s|\\()) # preceded by space or (\n\t\t\t\t\t\t( char->integer|exact->inexact|inexact->exact|\n\t\t\t\t\t\t integer->char|symbol->string|list->vector|\n\t\t\t\t\t\t list->string|identifier->symbol|vector->list|\n\t\t\t\t\t\t string->list|string->number|string->symbol|\n\t\t\t\t\t\t number->string\n\t\t\t\t\t\t)\n\t\t\t\t\t\t(?=(\\s|\\()) # followed by space or (\t\t\t\t\t\n\t\t\t\t\t", + "name": "support.function.convert-type.scheme" + }, + { + "comment": "\n\t\t\t\t\t\tThese functions are potentially dangerous because\n\t\t\t\t\t\tthey have side-effects which could affect other\n\t\t\t\t\t\tparts of the program.\n\t\t\t\t\t", + "match": "(?x)\n\t\t\t\t\t\t(?<=(\\s|\\()) # preceded by space or (\n\t\t\t\t\t\t( set-(?:car|cdr)|\t\t\t\t # set car/cdr\n\t\t\t\t\t\t (?:vector|string)-(?:fill|set) # fill/set string/vector\n\t\t\t\t\t\t)\n\t\t\t\t\t\t(!)\t\t\t# name ends with ! sign\n\t\t\t\t\t\t(?=(\\s|\\()) # followed by space or (\n\t\t\t\t\t", + "name": "support.function.with-side-effects.scheme" + }, + { + "comment": "\n\t\t\t\t\t\t+, -, *, /, =, >, etc. \n\t\t\t\t\t", + "match": "(?x)\n\t\t\t\t\t\t(?<=(\\s|\\()) # preceded by space or (\n\t\t\t\t\t\t( >=?|<=?|=|[*/+-])\n\t\t\t\t\t\t(?=(\\s|\\()) # followed by space or (\n\t\t\t\t\t\t", + "name": "keyword.operator.arithmetic.scheme" + }, + { + "match": "(?x)\n\t\t\t\t\t\t(?<=(\\s|\\()) # preceded by space or (\n\t\t\t\t\t\t( append|apply|approximate|\n\t\t\t\t\t\t call-with-current-continuation|call/cc|catch|\n\t\t\t\t\t\t construct-identifier|define-syntax|display|foo|\n\t\t\t\t\t\t for-each|force|format|cd|gen-counter|gen-loser|\n\t\t\t\t\t\t generate-identifier|last-pair|length|let-syntax|\n\t\t\t\t\t\t letrec-syntax|list|list-ref|list-tail|load|log|\n\t\t\t\t\t\t macro|magnitude|map|map-streams|max|member|memq|\n\t\t\t\t\t\t memv|min|newline|nil|not|peek-char|rationalize|\n\t\t\t\t\t\t read|read-char|return|reverse|sequence|substring|\n\t\t\t\t\t\t syntax|syntax-rules|transcript-off|transcript-on|\n\t\t\t\t\t\t truncate|unwrap-syntax|values-list|write|write-char|\n\t\t\t\t\t\t \n\t\t\t\t\t\t # cons, car, cdr, etc\n\t\t\t\t\t\t cons|c(a|d){1,4}r| \n \n\t\t\t\t\t\t # unary math operators\n\t\t\t\t\t\t abs|acos|angle|asin|assoc|assq|assv|atan|ceiling|\n\t\t\t\t\t\t cos|floor|round|sin|sqrt|tan|\n\t\t\t\t\t\t (?:real|imag)-part|numerator|denominator\n \n\t\t\t\t\t\t # other math operators\n\t\t\t\t\t\t modulo|exp|expt|remainder|quotient|lcm|\n \n\t\t\t\t\t\t # ports / files\n\t\t\t\t\t\t call-with-(?:input|output)-file|\n\t\t\t\t\t\t (?:close|current)-(?:input|output)-port|\n\t\t\t\t\t\t with-(?:input|output)-from-file|\n\t\t\t\t\t\t open-(?:input|output)-file|\n\t\t\t\t\t\t \n\t\t\t\t\t\t # char-«foo»\n\t\t\t\t\t\t char-(?:downcase|upcase|ready)|\n\t\t\t\t\t\t \n\t\t\t\t\t\t # make-«foo»\n\t\t\t\t\t\t make-(?:polar|promise|rectangular|string|vector)\n\t\t\t\t\t\t \n\t\t\t\t\t\t # string-«foo», vector-«foo»\n\t\t\t\t\t\t string(?:-(?:append|copy|length|ref))?|\n\t\t\t\t\t\t vector(?:-length|-ref)\n\t\t\t\t\t\t)\n\t\t\t\t\t\t(?=(\\s|\\()) # followed by space or (\n\t\t\t\t\t", + "name": "support.function.general.scheme" + } + ] + }, + "quote": { + "comment": "\n\t\t\t\tWe need to be able to quote any kind of item, which creates\n\t\t\t\ta tiny bit of complexity in our grammar. It is hopefully\n\t\t\t\tnot overwhelming complexity.\n\t\t\t\t\n\t\t\t\tNote: the first two matches are special cases. quoted\n\t\t\t\tsymbols, and quoted empty lists are considered constant.other\n\t\t\t\t\n\t\t\t", + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.section.quoted.symbol.scheme" + } + }, + "match": "(?x)\n\t\t\t\t\t\t(')\\s*\n\t\t\t\t\t\t([[:alnum:]][[:alnum:]!$%&*+-./:<=>?@^_~]*)\n\t\t\t\t\t", + "name": "constant.other.symbol.scheme" + }, + { + "captures": { + "1": { + "name": "punctuation.section.quoted.empty-list.scheme" + }, + "2": { + "name": "meta.expression.scheme" + }, + "3": { + "name": "punctuation.section.expression.begin.scheme" + }, + "4": { + "name": "punctuation.section.expression.end.scheme" + } + }, + "match": "(?x)\n\t\t\t\t\t\t(')\\s*\n\t\t\t\t\t\t((\\()\\s*(\\)))\n\t\t\t\t\t", + "name": "constant.other.empty-list.schem" + }, + { + "begin": "(')\\s*", + "beginCaptures": { + "1": { + "name": "punctuation.section.quoted.scheme" + } + }, + "comment": "quoted double-quoted string or s-expression", + "end": "(?=[\\s()])|(?<=\\n)", + "name": "string.other.quoted-object.scheme", + "patterns": [ + { + "include": "#quoted" + } + ] + } + ] + }, + "quote-sexp": { + "begin": "(?<=\\()\\s*(quote)\\s+", + "beginCaptures": { + "1": { + "name": "keyword.control.quote.scheme" + } + }, + "comment": "\n\t\t\t\tSomething quoted with (quote «thing»). In this case «thing»\n\t\t\t\twill not be evaluated, so we are considering it a string.\n\t\t\t", + "contentName": "string.other.quote.scheme", + "end": "(?=[\\s)])|(?<=\\n)", + "patterns": [ + { + "include": "#quoted" + } + ] + }, + "quoted": { + "patterns": [ + { + "include": "#string" + }, + { + "begin": "(\\()", + "beginCaptures": { + "1": { + "name": "punctuation.section.expression.begin.scheme" + } + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.section.expression.end.scheme" + } + }, + "name": "meta.expression.scheme", + "patterns": [ + { + "include": "#quoted" + } + ] + }, + { + "include": "#quote" + }, + { + "include": "#illegal" + } + ] + }, + "sexp": { + "begin": "(\\()", + "beginCaptures": { + "1": { + "name": "punctuation.section.expression.begin.scheme" + } + }, + "end": "(\\))(\\n)?", + "endCaptures": { + "1": { + "name": "punctuation.section.expression.end.scheme" + }, + "2": { + "name": "meta.after-expression.scheme" + } + }, + "name": "meta.expression.scheme", + "patterns": [ + { + "include": "#comment" + }, + { + "begin": "(?x)\n\t\t\t\t\t\t(?<=\\() # preceded by (\n\t\t\t\t\t\t(define)\\s+ # define\n\t\t\t\t\t\t(\\() # list of parameters\n\t\t\t\t\t\t ([[:alnum:]][[:alnum:]!$%&*+-./:<=>?@^_~]*)\n\t\t\t\t\t\t ((\\s+\n\t\t\t\t\t\t ([[:alnum:]][[:alnum:]!$%&*+-./:<=>?@^_~]*|[._])\n\t\t\t\t\t\t )*\n\t\t\t\t\t\t )\\s*\n\t\t\t\t\t\t(\\))\n\t\t\t\t\t", + "captures": { + "1": { + "name": "keyword.control.scheme" + }, + "2": { + "name": "punctuation.definition.function.scheme" + }, + "3": { + "name": "entity.name.function.scheme" + }, + "4": { + "name": "variable.parameter.function.scheme" + }, + "7": { + "name": "punctuation.definition.function.scheme" + } + }, + "end": "(?=\\))", + "name": "meta.declaration.procedure.scheme", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#sexp" + }, + { + "include": "#illegal" + } + ] + }, + { + "begin": "(?x)\n\t\t\t\t\t\t(?<=\\() # preceded by (\n\t\t\t\t\t\t(lambda)\\s+\n\t\t\t\t\t\t(\\() # opening paren\n\t\t\t\t\t\t((?:\n\t\t\t\t\t\t ([[:alnum:]][[:alnum:]!$%&*+-./:<=>?@^_~]*|[._])\n\t\t\t\t\t\t \\s+\n\t\t\t\t\t\t)*(?:\n\t\t\t\t\t\t ([[:alnum:]][[:alnum:]!$%&*+-./:<=>?@^_~]*|[._])\n\t\t\t\t\t\t)?)\n\t\t\t\t\t\t(\\)) # closing paren\n\t\t\t\t\t", + "captures": { + "1": { + "name": "keyword.control.scheme" + }, + "2": { + "name": "punctuation.definition.variable.scheme" + }, + "3": { + "name": "variable.parameter.scheme" + }, + "6": { + "name": "punctuation.definition.variable.scheme" + } + }, + "comment": "\n\t\t\t\t\t\tNot sure this one is quite correct. That \\s* is\n\t\t\t\t\t\tparticularly troubling\n\t\t\t\t\t", + "end": "(?=\\))", + "name": "meta.declaration.procedure.scheme", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#sexp" + }, + { + "include": "#illegal" + } + ] + }, + { + "begin": "(?<=\\()(define)\\s([[:alnum:]][[:alnum:]!$%&*+-./:<=>?@^_~]*)\\s*.*?", + "captures": { + "1": { + "name": "keyword.control.scheme" + }, + "2": { + "name": "variable.other.scheme" + } + }, + "end": "(?=\\))", + "name": "meta.declaration.variable.scheme", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#sexp" + }, + { + "include": "#illegal" + } + ] + }, + { + "include": "#quote-sexp" + }, + { + "include": "#quote" + }, + { + "include": "#language-functions" + }, + { + "include": "#string" + }, + { + "include": "#constants" + }, + { + "match": "(?<=[\\(\\s])(#\\\\)(space|newline|tab)(?=[\\s\\)])", + "name": "constant.character.named.scheme" + }, + { + "match": "(?<=[\\(\\s])(#\\\\)x[0-9A-F]{2,4}(?=[\\s\\)])", + "name": "constant.character.hex-literal.scheme" + }, + { + "match": "(?<=[\\(\\s])(#\\\\).(?=[\\s\\)])", + "name": "constant.character.escape.scheme" + }, + { + "comment": "\n\t\t\t\t\t\tthe . in (a . b) which conses together two elements\n\t\t\t\t\t\ta and b. (a b c) == (a . (b . (c . nil)))\n\t\t\t\t\t", + "match": "(?<=[ ()])\\.(?=[ ()])", + "name": "punctuation.separator.cons.scheme" + }, + { + "include": "#sexp" + }, + { + "include": "#illegal" + } + ] + }, + "string": { + "begin": "(\")", + "beginCaptures": { + "1": { + "name": "punctuation.definition.string.begin.scheme" + } + }, + "end": "(\")", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.scheme" + } + }, + "name": "string.quoted.double.scheme", + "patterns": [ + { + "match": "\\\\.", + "name": "constant.character.escape.scheme" + } + ] + } + }, + "scopeName": "source.scheme", + "uuid": "3EC2CFD0-909C-4692-AC29-1A60ADBC161E" +} diff --git a/docs/shiki/languages/scss.tmLanguage.json b/docs/shiki/languages/scss.tmLanguage.json new file mode 100644 index 00000000..23e26ce4 --- /dev/null +++ b/docs/shiki/languages/scss.tmLanguage.json @@ -0,0 +1,1879 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/atom/language-sass/blob/master/grammars/scss.cson", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/atom/language-sass/commit/f52ab12f7f9346cc2568129d8c4419bd3d506b47", + "name": "scss", + "scopeName": "source.css.scss", + "patterns": [ + { + "include": "#variable_setting" + }, + { + "include": "#at_rule_forward" + }, + { + "include": "#at_rule_use" + }, + { + "include": "#at_rule_include" + }, + { + "include": "#at_rule_import" + }, + { + "include": "#general" + }, + { + "include": "#flow_control" + }, + { + "include": "#rules" + }, + { + "include": "#property_list" + }, + { + "include": "#at_rule_mixin" + }, + { + "include": "#at_rule_media" + }, + { + "include": "#at_rule_function" + }, + { + "include": "#at_rule_charset" + }, + { + "include": "#at_rule_option" + }, + { + "include": "#at_rule_namespace" + }, + { + "include": "#at_rule_fontface" + }, + { + "include": "#at_rule_page" + }, + { + "include": "#at_rule_keyframes" + }, + { + "include": "#at_rule_at_root" + }, + { + "include": "#at_rule_supports" + }, + { + "match": ";", + "name": "punctuation.terminator.rule.css" + } + ], + "repository": { + "at_rule_charset": { + "begin": "\\s*((@)charset\\b)\\s*", + "captures": { + "1": { + "name": "keyword.control.at-rule.charset.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + }, + "end": "\\s*((?=;|$))", + "name": "meta.at-rule.charset.scss", + "patterns": [ + { + "include": "#variable" + }, + { + "include": "#string_single" + }, + { + "include": "#string_double" + } + ] + }, + "at_rule_content": { + "begin": "\\s*((@)content\\b)\\s*", + "captures": { + "1": { + "name": "keyword.control.content.scss" + } + }, + "end": "\\s*((?=;))", + "name": "meta.content.scss", + "patterns": [ + { + "include": "#variable" + }, + { + "include": "#selectors" + }, + { + "include": "#property_values" + } + ] + }, + "at_rule_each": { + "begin": "\\s*((@)each\\b)\\s*", + "captures": { + "1": { + "name": "keyword.control.each.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + }, + "end": "\\s*((?=}))", + "name": "meta.at-rule.each.scss", + "patterns": [ + { + "match": "\\b(in|,)\\b", + "name": "keyword.control.operator" + }, + { + "include": "#variable" + }, + { + "include": "#property_values" + }, + { + "include": "$self" + } + ] + }, + "at_rule_else": { + "begin": "\\s*((@)else(\\s*(if)?))\\s*", + "captures": { + "1": { + "name": "keyword.control.else.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + }, + "end": "\\s*(?={)", + "name": "meta.at-rule.else.scss", + "patterns": [ + { + "include": "#conditional_operators" + }, + { + "include": "#variable" + }, + { + "include": "#property_values" + } + ] + }, + "at_rule_extend": { + "begin": "\\s*((@)extend\\b)\\s*", + "captures": { + "1": { + "name": "keyword.control.at-rule.extend.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + }, + "end": "\\s*(?=;)", + "name": "meta.at-rule.extend.scss", + "patterns": [ + { + "include": "#variable" + }, + { + "include": "#selectors" + }, + { + "include": "#property_values" + } + ] + }, + "at_rule_fontface": { + "patterns": [ + { + "begin": "^\\s*((@)font-face\\b)", + "beginCaptures": { + "1": { + "name": "keyword.control.at-rule.fontface.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + }, + "end": "\\s*(?={)", + "name": "meta.at-rule.fontface.scss", + "patterns": [ + { + "include": "#function_attributes" + } + ] + } + ] + }, + "at_rule_for": { + "begin": "\\s*((@)for\\b)\\s*", + "captures": { + "1": { + "name": "keyword.control.for.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + }, + "end": "\\s*(?={)", + "name": "meta.at-rule.for.scss", + "patterns": [ + { + "match": "(==|!=|<=|>=|<|>|from|to|through)", + "name": "keyword.control.operator" + }, + { + "include": "#variable" + }, + { + "include": "#property_values" + }, + { + "include": "$self" + } + ] + }, + "at_rule_forward": { + "begin": "\\s*((@)forward\\b)\\s*", + "captures": { + "1": { + "name": "keyword.control.at-rule.forward.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + }, + "end": "\\s*(?=;)", + "name": "meta.at-rule.forward.scss", + "patterns": [ + { + "match": "\\b(as|hide|show)\\b", + "name": "keyword.control.operator" + }, + { + "match": "\\b([\\w-]+)(\\*)", + "captures": { + "1": { + "name": "entity.other.attribute-name.module.scss" + }, + "2": { + "name": "punctuation.definition.wildcard.scss" + } + } + }, + { + "match": "\\b[\\w-]+\\b", + "name": "entity.name.function.scss" + }, + { + "include": "#variable" + }, + { + "include": "#string_single" + }, + { + "include": "#string_double" + }, + { + "include": "#comment_line" + }, + { + "include": "#comment_block" + } + ] + }, + "at_rule_function": { + "patterns": [ + { + "begin": "\\s*((@)function\\b)\\s*", + "captures": { + "1": { + "name": "keyword.control.at-rule.function.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + }, + "3": { + "name": "entity.name.function.scss" + } + }, + "end": "\\s*(?={)", + "name": "meta.at-rule.function.scss", + "patterns": [ + { + "include": "#function_attributes" + } + ] + }, + { + "captures": { + "1": { + "name": "keyword.control.at-rule.function.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + }, + "3": { + "name": "entity.name.function.scss" + } + }, + "match": "\\s*((@)function\\b)\\s*", + "name": "meta.at-rule.function.scss" + } + ] + }, + "at_rule_if": { + "begin": "\\s*((@)if\\b)\\s*", + "captures": { + "1": { + "name": "keyword.control.if.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + }, + "end": "\\s*(?={)", + "name": "meta.at-rule.if.scss", + "patterns": [ + { + "include": "#conditional_operators" + }, + { + "include": "#variable" + }, + { + "include": "#property_values" + } + ] + }, + "at_rule_import": { + "begin": "\\s*((@)import\\b)\\s*", + "captures": { + "1": { + "name": "keyword.control.at-rule.import.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + }, + "end": "\\s*((?=;)|(?=}))", + "name": "meta.at-rule.import.scss", + "patterns": [ + { + "include": "#variable" + }, + { + "include": "#string_single" + }, + { + "include": "#string_double" + }, + { + "include": "#functions" + }, + { + "include": "#comment_line" + } + ] + }, + "at_rule_include": { + "patterns": [ + { + "begin": "(?<=@include)\\s+(?:([\\w-]+)\\s*(\\.))?([\\w-]+)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "variable.scss" + }, + "2": { + "name": "punctuation.access.module.scss" + }, + "3": { + "name": "entity.name.function.scss" + }, + "4": { + "name": "punctuation.definition.parameters.begin.bracket.round.scss" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.parameters.end.bracket.round.scss" + } + }, + "name": "meta.at-rule.include.scss", + "patterns": [ + { + "include": "#function_attributes" + } + ] + }, + { + "match": "(?<=@include)\\s+(?:([\\w-]+)\\s*(\\.))?([\\w-]+)", + "captures": { + "0": { + "name": "meta.at-rule.include.scss" + }, + "1": { + "name": "variable.scss" + }, + "2": { + "name": "punctuation.access.module.scss" + }, + "3": { + "name": "entity.name.function.scss" + } + } + }, + { + "match": "((@)include)\\b", + "captures": { + "0": { + "name": "meta.at-rule.include.scss" + }, + "1": { + "name": "keyword.control.at-rule.include.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + } + } + ] + }, + "at_rule_keyframes": { + "begin": "(?<=^|\\s)(@)(?:-(?:webkit|moz)-)?keyframes\\b", + "beginCaptures": { + "0": { + "name": "keyword.control.at-rule.keyframes.scss" + }, + "1": { + "name": "punctuation.definition.keyword.scss" + } + }, + "end": "(?<=})", + "name": "meta.at-rule.keyframes.scss", + "patterns": [ + { + "match": "(?<=@keyframes)\\s+((?:[_A-Za-z][-\\w]|-[_A-Za-z])[-\\w]*)", + "captures": { + "1": { + "name": "entity.name.function.scss" + } + } + }, + { + "begin": "(?<=@keyframes)\\s+(\")", + "beginCaptures": { + "1": { + "name": "punctuation.definition.string.begin.scss" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.scss" + } + }, + "name": "string.quoted.double.scss", + "contentName": "entity.name.function.scss", + "patterns": [ + { + "match": "\\\\(\\h{1,6}|.)", + "name": "constant.character.escape.scss" + }, + { + "include": "#interpolation" + } + ] + }, + { + "begin": "(?<=@keyframes)\\s+(')", + "beginCaptures": { + "1": { + "name": "punctuation.definition.string.begin.scss" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.scss" + } + }, + "name": "string.quoted.single.scss", + "contentName": "entity.name.function.scss", + "patterns": [ + { + "match": "\\\\(\\h{1,6}|.)", + "name": "constant.character.escape.scss" + }, + { + "include": "#interpolation" + } + ] + }, + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.section.keyframes.begin.scss" + } + }, + "end": "}", + "endCaptures": { + "0": { + "name": "punctuation.section.keyframes.end.scss" + } + }, + "patterns": [ + { + "match": "\\b(?:(?:100|[1-9]\\d|\\d)%|from|to)(?=\\s*{)", + "name": "entity.other.attribute-name.scss" + }, + { + "include": "#flow_control" + }, + { + "include": "#interpolation" + }, + { + "include": "#property_list" + }, + { + "include": "#rules" + } + ] + } + ] + }, + "at_rule_media": { + "patterns": [ + { + "begin": "^\\s*((@)media)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.at-rule.media.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + }, + "end": "\\s*(?={)", + "name": "meta.at-rule.media.scss", + "patterns": [ + { + "include": "#comment_docblock" + }, + { + "include": "#comment_block" + }, + { + "include": "#comment_line" + }, + { + "match": "\\b(only)\\b", + "name": "keyword.control.operator.css.scss" + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.media-query.begin.bracket.round.scss" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.media-query.end.bracket.round.scss" + } + }, + "name": "meta.property-list.media-query.scss", + "patterns": [ + { + "begin": "(?<![-a-z])(?=[-a-z])", + "end": "$|(?![-a-z])", + "name": "meta.property-name.media-query.scss", + "patterns": [ + { + "include": "source.css#media-features" + }, + { + "include": "source.css#property-names" + } + ] + }, + { + "begin": "(:)\\s*(?!(\\s*{))", + "beginCaptures": { + "1": { + "name": "punctuation.separator.key-value.scss" + } + }, + "end": "\\s*(;|(?=}|\\)))", + "endCaptures": { + "1": { + "name": "punctuation.terminator.rule.scss" + } + }, + "contentName": "meta.property-value.media-query.scss", + "patterns": [ + { + "include": "#general" + }, + { + "include": "#property_values" + } + ] + } + ] + }, + { + "include": "#variable" + }, + { + "include": "#conditional_operators" + }, + { + "include": "source.css#media-types" + } + ] + } + ] + }, + "at_rule_mixin": { + "patterns": [ + { + "begin": "(?<=@mixin)\\s+([\\w-]+)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "entity.name.function.scss" + }, + "2": { + "name": "punctuation.definition.parameters.begin.bracket.round.scss" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.parameters.end.bracket.round.scss" + } + }, + "name": "meta.at-rule.mixin.scss", + "patterns": [ + { + "include": "#function_attributes" + } + ] + }, + { + "match": "(?<=@mixin)\\s+([\\w-]+)", + "captures": { + "1": { + "name": "entity.name.function.scss" + } + }, + "name": "meta.at-rule.mixin.scss" + }, + { + "match": "((@)mixin)\\b", + "captures": { + "1": { + "name": "keyword.control.at-rule.mixin.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + }, + "name": "meta.at-rule.mixin.scss" + } + ] + }, + "at_rule_namespace": { + "patterns": [ + { + "begin": "(?<=@namespace)\\s+(?=url)", + "end": "(?=;|$)", + "name": "meta.at-rule.namespace.scss", + "patterns": [ + { + "include": "#property_values" + }, + { + "include": "#string_single" + }, + { + "include": "#string_double" + } + ] + }, + { + "begin": "(?<=@namespace)\\s+([\\w-]*)", + "captures": { + "1": { + "name": "entity.name.namespace-prefix.scss" + } + }, + "end": "(?=;|$)", + "name": "meta.at-rule.namespace.scss", + "patterns": [ + { + "include": "#variables" + }, + { + "include": "#property_values" + }, + { + "include": "#string_single" + }, + { + "include": "#string_double" + } + ] + }, + { + "match": "((@)namespace)\\b", + "captures": { + "1": { + "name": "keyword.control.at-rule.namespace.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + }, + "name": "meta.at-rule.namespace.scss" + } + ] + }, + "at_rule_option": { + "captures": { + "1": { + "name": "keyword.control.at-rule.charset.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + }, + "match": "^\\s*((@)option\\b)\\s*", + "name": "meta.at-rule.option.scss" + }, + "at_rule_page": { + "patterns": [ + { + "begin": "^\\s*((@)page)(?=:|\\s)\\s*([-:\\w]*)", + "captures": { + "1": { + "name": "keyword.control.at-rule.page.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + }, + "3": { + "name": "entity.name.function.scss" + } + }, + "end": "\\s*(?={)", + "name": "meta.at-rule.page.scss" + } + ] + }, + "at_rule_return": { + "begin": "\\s*((@)(return)\\b)", + "captures": { + "1": { + "name": "keyword.control.return.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + }, + "end": "\\s*((?=;))", + "name": "meta.at-rule.return.scss", + "patterns": [ + { + "include": "#variable" + }, + { + "include": "#property_values" + } + ] + }, + "at_rule_at_root": { + "begin": "\\s*((@)(at-root))(\\s+|$)", + "end": "\\s*(?={)", + "beginCaptures": { + "1": { + "name": "keyword.control.at-rule.at-root.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + }, + "name": "meta.at-rule.at-root.scss", + "patterns": [ + { + "include": "#function_attributes" + }, + { + "include": "#functions" + }, + { + "include": "#selectors" + } + ] + }, + "at_rule_supports": { + "begin": "(?<=^|\\s)(@)supports\\b", + "captures": { + "0": { + "name": "keyword.control.at-rule.supports.scss" + }, + "1": { + "name": "punctuation.definition.keyword.scss" + } + }, + "end": "(?={)|$", + "name": "meta.at-rule.supports.scss", + "patterns": [ + { + "include": "#logical_operators" + }, + { + "include": "#properties" + }, + { + "match": "\\(", + "name": "punctuation.definition.condition.begin.bracket.round.scss" + }, + { + "match": "\\)", + "name": "punctuation.definition.condition.end.bracket.round.scss" + } + ] + }, + "at_rule_use": { + "begin": "\\s*((@)use\\b)\\s*", + "captures": { + "1": { + "name": "keyword.control.at-rule.use.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + }, + "end": "\\s*(?=;)", + "name": "meta.at-rule.use.scss", + "patterns": [ + { + "match": "\\b(as|with)\\b", + "name": "keyword.control.operator" + }, + { + "match": "\\b[\\w-]+\\b", + "name": "variable.scss" + }, + { + "match": "\\*", + "name": "variable.language.expanded-namespace.scss" + }, + { + "include": "#string_single" + }, + { + "include": "#string_double" + }, + { + "include": "#comment_line" + }, + { + "include": "#comment_block" + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.parameters.begin.bracket.round.scss" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.parameters.end.bracket.round.scss" + } + }, + "patterns": [ + { + "include": "#function_attributes" + } + ] + } + ] + }, + "at_rule_warn": { + "begin": "\\s*((@)(warn|debug|error)\\b)\\s*", + "captures": { + "1": { + "name": "keyword.control.warn.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + }, + "end": "\\s*(?=;)", + "name": "meta.at-rule.warn.scss", + "patterns": [ + { + "include": "#variable" + }, + { + "include": "#string_double" + }, + { + "include": "#string_single" + } + ] + }, + "at_rule_while": { + "begin": "\\s*((@)while\\b)\\s*", + "captures": { + "1": { + "name": "keyword.control.while.scss" + }, + "2": { + "name": "punctuation.definition.keyword.scss" + } + }, + "end": "\\s*(?=})", + "name": "meta.at-rule.while.scss", + "patterns": [ + { + "include": "#conditional_operators" + }, + { + "include": "#variable" + }, + { + "include": "#property_values" + }, + { + "include": "$self" + } + ] + }, + "comment_docblock": { + "name": "comment.block.documentation.scss", + "begin": "///", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.scss" + } + }, + "end": "(?=$)", + "patterns": [ + { + "include": "source.sassdoc" + } + ] + }, + "comment_block": { + "begin": "/\\*", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.scss" + } + }, + "end": "\\*/", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.scss" + } + }, + "name": "comment.block.scss" + }, + "comment_line": { + "begin": "//", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.scss" + } + }, + "end": "\\n", + "name": "comment.line.scss" + }, + "constant_default": { + "match": "!default", + "name": "keyword.other.default.scss" + }, + "constant_functions": { + "begin": "(?:([\\w-]+)(\\.))?([\\w-]+)(\\()", + "beginCaptures": { + "1": { + "name": "variable.scss" + }, + "2": { + "name": "punctuation.access.module.scss" + }, + "3": { + "name": "support.function.misc.scss" + }, + "4": { + "name": "punctuation.section.function.scss" + } + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.section.function.scss" + } + }, + "patterns": [ + { + "include": "#parameters" + } + ] + }, + "constant_important": { + "match": "!important", + "name": "keyword.other.important.scss" + }, + "constant_mathematical_symbols": { + "match": "\\b(\\+|-|\\*|/)\\b", + "name": "support.constant.mathematical-symbols.scss" + }, + "constant_optional": { + "match": "!optional", + "name": "keyword.other.optional.scss" + }, + "constant_sass_functions": { + "begin": "(headings|stylesheet-url|rgba?|hsla?|ie-hex-str|red|green|blue|alpha|opacity|hue|saturation|lightness|prefixed|prefix|-moz|-svg|-css2|-pie|-webkit|-ms|font-(?:files|url)|grid-image|image-(?:width|height|url|color)|sprites?|sprite-(?:map|map-name|file|url|position)|inline-(?:font-files|image)|opposite-position|grad-point|grad-end-position|color-stops|color-stops-in-percentages|grad-color-stops|(?:radial|linear)-(?:gradient|svg-gradient)|opacify|fade-?in|transparentize|fade-?out|lighten|darken|saturate|desaturate|grayscale|adjust-(?:hue|lightness|saturation|color)|scale-(?:lightness|saturation|color)|change-color|spin|complement|invert|mix|-compass-(?:list|space-list|slice|nth|list-size)|blank|compact|nth|first-value-of|join|length|append|nest|append-selector|headers|enumerate|range|percentage|unitless|unit|if|type-of|comparable|elements-of-type|quote|unquote|escape|e|sin|cos|tan|abs|round|ceil|floor|pi|translate(?:X|Y))(\\()", + "beginCaptures": { + "1": { + "name": "support.function.misc.scss" + }, + "2": { + "name": "punctuation.section.function.scss" + } + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.section.function.scss" + } + }, + "patterns": [ + { + "include": "#parameters" + } + ] + }, + "flow_control": { + "patterns": [ + { + "include": "#at_rule_if" + }, + { + "include": "#at_rule_else" + }, + { + "include": "#at_rule_warn" + }, + { + "include": "#at_rule_for" + }, + { + "include": "#at_rule_while" + }, + { + "include": "#at_rule_each" + }, + { + "include": "#at_rule_return" + } + ] + }, + "function_attributes": { + "patterns": [ + { + "match": ":", + "name": "punctuation.separator.key-value.scss" + }, + { + "include": "#general" + }, + { + "include": "#property_values" + }, + { + "match": "[={}\\?;@]", + "name": "invalid.illegal.scss" + } + ] + }, + "functions": { + "patterns": [ + { + "begin": "([\\w-]{1,})(\\()\\s*", + "beginCaptures": { + "1": { + "name": "support.function.misc.scss" + }, + "2": { + "name": "punctuation.section.function.scss" + } + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.section.function.scss" + } + }, + "patterns": [ + { + "include": "#parameters" + } + ] + }, + { + "match": "([\\w-]{1,})", + "name": "support.function.misc.scss" + } + ] + }, + "general": { + "patterns": [ + { + "include": "#variable" + }, + { + "include": "#comment_docblock" + }, + { + "include": "#comment_block" + }, + { + "include": "#comment_line" + } + ] + }, + "interpolation": { + "begin": "#{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.interpolation.begin.bracket.curly.scss" + } + }, + "end": "}", + "endCaptures": { + "0": { + "name": "punctuation.definition.interpolation.end.bracket.curly.scss" + } + }, + "name": "variable.interpolation.scss", + "patterns": [ + { + "include": "#variable" + }, + { + "include": "#property_values" + } + ] + }, + "conditional_operators": { + "patterns": [ + { + "include": "#comparison_operators" + }, + { + "include": "#logical_operators" + } + ] + }, + "comparison_operators": { + "match": "==|!=|<=|>=|<|>", + "name": "keyword.operator.comparison.scss" + }, + "logical_operators": { + "match": "\\b(not|or|and)\\b", + "name": "keyword.operator.logical.scss" + }, + "map": { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.map.begin.bracket.round.scss" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.map.end.bracket.round.scss" + } + }, + "name": "meta.definition.variable.map.scss", + "patterns": [ + { + "include": "#comment_docblock" + }, + { + "include": "#comment_block" + }, + { + "include": "#comment_line" + }, + { + "match": "\\b([\\w-]+)\\s*(:)", + "captures": { + "1": { + "name": "support.type.map.key.scss" + }, + "2": { + "name": "punctuation.separator.key-value.scss" + } + } + }, + { + "match": ",", + "name": "punctuation.separator.delimiter.scss" + }, + { + "include": "#map" + }, + { + "include": "#variable" + }, + { + "include": "#property_values" + } + ] + }, + "operators": { + "match": "[-+*/](?!\\s*[-+*/])", + "name": "keyword.operator.css" + }, + "parameters": { + "patterns": [ + { + "include": "#variable" + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.begin.bracket.round.scss" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.end.bracket.round.scss" + } + }, + "patterns": [ + { + "include": "#function_attributes" + } + ] + }, + { + "include": "#property_values" + }, + { + "include": "#comment_block" + }, + { + "match": "[^'\",) \\t]+", + "name": "variable.parameter.url.scss" + }, + { + "match": ",", + "name": "punctuation.separator.delimiter.scss" + } + ] + }, + "properties": { + "patterns": [ + { + "begin": "(?<![-a-z])(?=[-a-z])", + "end": "$|(?![-a-z])", + "name": "meta.property-name.scss", + "patterns": [ + { + "include": "source.css#property-names" + }, + { + "include": "#at_rule_include" + } + ] + }, + { + "begin": "(:)\\s*(?!(\\s*{))", + "beginCaptures": { + "1": { + "name": "punctuation.separator.key-value.scss" + } + }, + "end": "\\s*(;|(?=}|\\)))", + "endCaptures": { + "1": { + "name": "punctuation.terminator.rule.scss" + } + }, + "contentName": "meta.property-value.scss", + "patterns": [ + { + "include": "#general" + }, + { + "include": "#property_values" + } + ] + } + ] + }, + "property_list": { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.section.property-list.begin.bracket.curly.scss" + } + }, + "end": "}", + "endCaptures": { + "0": { + "name": "punctuation.section.property-list.end.bracket.curly.scss" + } + }, + "name": "meta.property-list.scss", + "patterns": [ + { + "include": "#flow_control" + }, + { + "include": "#rules" + }, + { + "include": "#properties" + }, + { + "include": "$self" + } + ] + }, + "property_values": { + "patterns": [ + { + "include": "#string_single" + }, + { + "include": "#string_double" + }, + { + "include": "#constant_functions" + }, + { + "include": "#constant_sass_functions" + }, + { + "include": "#constant_important" + }, + { + "include": "#constant_default" + }, + { + "include": "#constant_optional" + }, + { + "include": "source.css#numeric-values" + }, + { + "include": "source.css#property-keywords" + }, + { + "include": "source.css#color-keywords" + }, + { + "include": "source.css#property-names" + }, + { + "include": "#constant_mathematical_symbols" + }, + { + "include": "#operators" + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.begin.bracket.round.scss" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.end.bracket.round.scss" + } + }, + "patterns": [ + { + "include": "#general" + }, + { + "include": "#property_values" + } + ] + } + ] + }, + "rules": { + "patterns": [ + { + "include": "#general" + }, + { + "include": "#at_rule_extend" + }, + { + "include": "#at_rule_content" + }, + { + "include": "#at_rule_include" + }, + { + "include": "#at_rule_media" + }, + { + "include": "#selectors" + } + ] + }, + "selector_attribute": { + "match": "(?xi)\n(\\[)\n\\s*\n(\n (?:\n [-a-zA-Z_0-9]|[^\\x00-\\x7F] # Valid identifier characters\n | \\\\(?:[0-9a-fA-F]{1,6}|.) # Escape sequence\n | \\#\\{ # Interpolation (escaped to avoid Coffeelint errors)\n | \\.?\\$ # Possible start of interpolation variable\n | } # Possible end of interpolation\n )+?\n)\n(?:\n \\s*([~|^$*]?=)\\s*\n (?:\n (\n (?:\n [-a-zA-Z_0-9]|[^\\x00-\\x7F] # Valid identifier characters\n | \\\\(?:[0-9a-fA-F]{1,6}|.) # Escape sequence\n | \\#\\{ # Interpolation (escaped to avoid Coffeelint errors)\n | \\.?\\$ # Possible start of interpolation variable\n | } # Possible end of interpolation\n )+\n )\n |\n ((\")(.*?)(\"))\n |\n ((')(.*?)('))\n )\n)?\n\\s*\n(\\])", + "name": "meta.attribute-selector.scss", + "captures": { + "1": { + "name": "punctuation.definition.attribute-selector.begin.bracket.square.scss" + }, + "2": { + "name": "entity.other.attribute-name.attribute.scss", + "patterns": [ + { + "include": "#interpolation" + }, + { + "match": "\\\\([0-9a-fA-F]{1,6}|.)", + "name": "constant.character.escape.scss" + }, + { + "match": "\\$|}", + "name": "invalid.illegal.scss" + } + ] + }, + "3": { + "name": "keyword.operator.scss" + }, + "4": { + "name": "string.unquoted.attribute-value.scss", + "patterns": [ + { + "include": "#interpolation" + }, + { + "match": "\\\\([0-9a-fA-F]{1,6}|.)", + "name": "constant.character.escape.scss" + }, + { + "match": "\\$|}", + "name": "invalid.illegal.scss" + } + ] + }, + "5": { + "name": "string.quoted.double.attribute-value.scss" + }, + "6": { + "name": "punctuation.definition.string.begin.scss" + }, + "7": { + "patterns": [ + { + "include": "#interpolation" + }, + { + "match": "\\\\([0-9a-fA-F]{1,6}|.)", + "name": "constant.character.escape.scss" + }, + { + "match": "\\$|}", + "name": "invalid.illegal.scss" + } + ] + }, + "8": { + "name": "punctuation.definition.string.end.scss" + }, + "9": { + "name": "string.quoted.single.attribute-value.scss" + }, + "10": { + "name": "punctuation.definition.string.begin.scss" + }, + "11": { + "patterns": [ + { + "include": "#interpolation" + }, + { + "match": "\\\\([0-9a-fA-F]{1,6}|.)", + "name": "constant.character.escape.scss" + }, + { + "match": "\\$|}", + "name": "invalid.illegal.scss" + } + ] + }, + "12": { + "name": "punctuation.definition.string.end.scss" + }, + "13": { + "name": "punctuation.definition.attribute-selector.end.bracket.square.scss" + } + } + }, + "selector_class": { + "match": "(?x)\n(\\.) # Valid class-name\n(\n (?: [-a-zA-Z_0-9]|[^\\x00-\\x7F] # Valid identifier characters\n | \\\\(?:[0-9a-fA-F]{1,6}|.) # Escape sequence\n | \\#\\{ # Interpolation (escaped to avoid Coffeelint errors)\n | \\.?\\$ # Possible start of interpolation variable\n | } # Possible end of interpolation\n )+\n) # Followed by either:\n(?= $ # - End of the line\n | [\\s,\\#)\\[:{>+~|] # - Another selector\n | \\.[^$] # - Class selector, negating module variable\n | /\\* # - A block comment\n | ; # - A semicolon\n)", + "name": "entity.other.attribute-name.class.css", + "captures": { + "1": { + "name": "punctuation.definition.entity.css" + }, + "2": { + "patterns": [ + { + "include": "#interpolation" + }, + { + "match": "\\\\([0-9a-fA-F]{1,6}|.)", + "name": "constant.character.escape.scss" + }, + { + "match": "\\$|}", + "name": "invalid.illegal.scss" + } + ] + } + } + }, + "selector_custom": { + "match": "\\b([a-zA-Z0-9]+(-[a-zA-Z0-9]+)+)(?=\\.|\\s++[^:]|\\s*[,\\[{]|:(link|visited|hover|active|focus|target|lang|disabled|enabled|checked|indeterminate|root|nth-(child|last-child|of-type|last-of-type)|first-child|last-child|first-of-type|last-of-type|only-child|only-of-type|empty|not|valid|invalid)(\\([0-9A-Za-z]*\\))?)", + "name": "entity.name.tag.custom.scss" + }, + "selector_id": { + "match": "(?x)\n(\\#) # Valid id-name\n(\n (?: [-a-zA-Z_0-9]|[^\\x00-\\x7F] # Valid identifier characters\n | \\\\(?:[0-9a-fA-F]{1,6}|.) # Escape sequence\n | \\#\\{ # Interpolation (escaped to avoid Coffeelint errors)\n | \\.?\\$ # Possible start of interpolation variable\n | } # Possible end of interpolation\n )+\n) # Followed by either:\n(?= $ # - End of the line\n | [\\s,\\#)\\[:{>+~|] # - Another selector\n | \\.[^$] # - Class selector, negating module variable\n | /\\* # - A block comment\n)", + "name": "entity.other.attribute-name.id.css", + "captures": { + "1": { + "name": "punctuation.definition.entity.css" + }, + "2": { + "patterns": [ + { + "include": "#interpolation" + }, + { + "match": "\\\\([0-9a-fA-F]{1,6}|.)", + "name": "constant.character.escape.scss" + }, + { + "match": "\\$|}", + "name": "invalid.illegal.identifier.scss" + } + ] + } + } + }, + "selector_placeholder": { + "match": "(?x)\n(%) # Valid placeholder-name\n(\n (?: [-a-zA-Z_0-9]|[^\\x00-\\x7F] # Valid identifier characters\n | \\\\(?:[0-9a-fA-F]{1,6}|.) # Escape sequence\n | \\#\\{ # Interpolation (escaped to avoid Coffeelint errors)\n | \\.\\$ # Possible start of interpolation module scope variable\n | \\$ # Possible start of interpolation variable\n | } # Possible end of interpolation\n )+\n) # Followed by either:\n(?= ; # - End of statement\n | $ # - End of the line\n | [\\s,\\#)\\[:{>+~|] # - Another selector\n | \\.[^$] # - Class selector, negating module variable\n | /\\* # - A block comment\n)", + "name": "entity.other.attribute-name.placeholder.css", + "captures": { + "1": { + "name": "punctuation.definition.entity.css" + }, + "2": { + "patterns": [ + { + "include": "#interpolation" + }, + { + "match": "\\\\([0-9a-fA-F]{1,6}|.)", + "name": "constant.character.escape.scss" + }, + { + "match": "\\$|}", + "name": "invalid.illegal.identifier.scss" + } + ] + } + } + }, + "parent_selector_suffix": { + "match": "(?x)\n(?<=&)\n(\n (?: [-a-zA-Z_0-9]|[^\\x00-\\x7F] # Valid identifier characters\n | \\\\(?:[0-9a-fA-F]{1,6}|.) # Escape sequence\n | \\#\\{ # Interpolation (escaped to avoid Coffeelint errors)\n | \\$ # Possible start of interpolation variable\n | } # Possible end of interpolation\n )+\n) # Followed by either:\n(?= $ # - End of the line\n | [\\s,.\\#)\\[:{>+~|] # - Another selector\n | /\\* # - A block comment\n)", + "name": "entity.other.attribute-name.parent-selector-suffix.css", + "captures": { + "1": { + "name": "punctuation.definition.entity.css" + }, + "2": { + "patterns": [ + { + "include": "#interpolation" + }, + { + "match": "\\\\([0-9a-fA-F]{1,6}|.)", + "name": "constant.character.escape.scss" + }, + { + "match": "\\$|}", + "name": "invalid.illegal.identifier.scss" + } + ] + } + } + }, + "selector_pseudo_class": { + "patterns": [ + { + "begin": "((:)\\bnth-(?:child|last-child|of-type|last-of-type))(\\()", + "beginCaptures": { + "1": { + "name": "entity.other.attribute-name.pseudo-class.css" + }, + "2": { + "name": "punctuation.definition.entity.css" + }, + "3": { + "name": "punctuation.definition.pseudo-class.begin.bracket.round.css" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.pseudo-class.end.bracket.round.css" + } + }, + "patterns": [ + { + "include": "#interpolation" + }, + { + "match": "\\d+", + "name": "constant.numeric.css" + }, + { + "match": "(?<=\\d)n\\b|\\b(n|even|odd)\\b", + "name": "constant.other.scss" + }, + { + "match": "\\w+", + "name": "invalid.illegal.scss" + } + ] + }, + { + "include": "source.css#pseudo-classes" + }, + { + "include": "source.css#pseudo-elements" + }, + { + "include": "source.css#functional-pseudo-classes" + } + ] + }, + "selectors": { + "patterns": [ + { + "include": "source.css#tag-names" + }, + { + "include": "#selector_custom" + }, + { + "include": "#selector_class" + }, + { + "include": "#selector_id" + }, + { + "include": "#selector_pseudo_class" + }, + { + "include": "#tag_wildcard" + }, + { + "include": "#tag_parent_reference" + }, + { + "include": "source.css#pseudo-elements" + }, + { + "include": "#selector_attribute" + }, + { + "include": "#selector_placeholder" + }, + { + "include": "#parent_selector_suffix" + } + ] + }, + "string_double": { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.scss" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.scss" + } + }, + "name": "string.quoted.double.scss", + "patterns": [ + { + "match": "\\\\(\\h{1,6}|.)", + "name": "constant.character.escape.scss" + }, + { + "include": "#interpolation" + } + ] + }, + "string_single": { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.scss" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.scss" + } + }, + "name": "string.quoted.single.scss", + "patterns": [ + { + "match": "\\\\(\\h{1,6}|.)", + "name": "constant.character.escape.scss" + }, + { + "include": "#interpolation" + } + ] + }, + "tag_parent_reference": { + "match": "&", + "name": "entity.name.tag.reference.scss" + }, + "tag_wildcard": { + "match": "\\*", + "name": "entity.name.tag.wildcard.scss" + }, + "variable": { + "patterns": [ + { + "include": "#variables" + }, + { + "include": "#interpolation" + } + ] + }, + "variable_setting": { + "begin": "(?=\\$[\\w-]+\\s*:)", + "end": ";", + "endCaptures": { + "0": { + "name": "punctuation.terminator.rule.scss" + } + }, + "contentName": "meta.definition.variable.scss", + "patterns": [ + { + "match": "\\$[\\w-]+(?=\\s*:)", + "name": "variable.scss" + }, + { + "begin": ":", + "beginCaptures": { + "0": { + "name": "punctuation.separator.key-value.scss" + } + }, + "end": "(?=;)", + "patterns": [ + { + "include": "#comment_docblock" + }, + { + "include": "#comment_block" + }, + { + "include": "#comment_line" + }, + { + "include": "#map" + }, + { + "include": "#property_values" + }, + { + "include": "#variable" + }, + { + "match": ",", + "name": "punctuation.separator.delimiter.scss" + } + ] + } + ] + }, + "variables": { + "patterns": [ + { + "match": "\\b([\\w-]+)(\\.)(\\$[\\w-]+)\\b", + "captures": { + "1": { + "name": "variable.scss" + }, + "2": { + "name": "punctuation.access.module.scss" + }, + "3": { + "name": "variable.scss" + } + } + }, + { + "match": "(\\$|\\-\\-)[A-Za-z0-9_-]+\\b", + "name": "variable.scss" + } + ] + } + } +} diff --git a/docs/shiki/languages/shaderlab.tmLanguage.json b/docs/shiki/languages/shaderlab.tmLanguage.json new file mode 100644 index 00000000..5913b10a --- /dev/null +++ b/docs/shiki/languages/shaderlab.tmLanguage.json @@ -0,0 +1,204 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/tgjones/shaders-tmLanguage/blob/master/grammars/shaderlab.json", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/tgjones/shaders-tmLanguage/commit/c72c8b39380ba5a86c58ceed053b5d965ebf38b3", + "name": "shaderlab", + "scopeName": "source.shaderlab", + "patterns": [ + { + "name": "comment.line.double-slash.shaderlab", + "begin": "//", + "end": "$" + }, + { + "name": "support.type.basic.shaderlab", + "match": "\\b(?i:Range|Float|Int|Color|Vector|2D|3D|Cube|Any)\\b" + }, + { + "include": "#numbers" + }, + { + "name": "storage.type.structure.shaderlab", + "match": "\\b(?i:Shader|Properties|SubShader|Pass|Category)\\b" + }, + { + "name": "support.type.propertyname.shaderlab", + "match": "\\b(?i:Name|Tags|Fallback|CustomEditor|Cull|ZWrite|ZTest|Offset|Blend|BlendOp|ColorMask|AlphaToMask|LOD|Lighting|Stencil|Ref|ReadMask|WriteMask|Comp|CompBack|CompFront|Fail|ZFail|UsePass|GrabPass|Dependency|Material|Diffuse|Ambient|Shininess|Specular|Emission|Fog|Mode|Density|SeparateSpecular|SetTexture|Combine|ConstantColor|Matrix|AlphaTest|ColorMaterial|BindChannels|Bind)\\b" + }, + { + "name": "support.constant.property-value.shaderlab", + "match": "\\b(?i:Back|Front|On|Off|[RGBA]{1,3}|AmbientAndDiffuse|Emission)\\b" + }, + { + "name": "support.constant.property-value.comparisonfunction.shaderlab", + "match": "\\b(?i:Less|Greater|LEqual|GEqual|Equal|NotEqual|Always|Never)\\b" + }, + { + "name": "support.constant.property-value.stenciloperation.shaderlab", + "match": "\\b(?i:Keep|Zero|Replace|IncrSat|DecrSat|Invert|IncrWrap|DecrWrap)\\b" + }, + { + "name": "support.constant.property-value.texturecombiners.shaderlab", + "match": "\\b(?i:Previous|Primary|Texture|Constant|Lerp|Double|Quad|Alpha)\\b" + }, + { + "name": "support.constant.property-value.fog.shaderlab", + "match": "\\b(?i:Global|Linear|Exp2|Exp)\\b" + }, + { + "name": "support.constant.property-value.bindchannels.shaderlab", + "match": "\\b(?i:Vertex|Normal|Tangent|TexCoord0|TexCoord1)\\b" + }, + { + "name": "support.constant.property-value.blendoperations.shaderlab", + "match": "\\b(?i:Add|Sub|RevSub|Min|Max|LogicalClear|LogicalSet|LogicalCopyInverted|LogicalCopy|LogicalNoop|LogicalInvert|LogicalAnd|LogicalNand|LogicalOr|LogicalNor|LogicalXor|LogicalEquiv|LogicalAndReverse|LogicalAndInverted|LogicalOrReverse|LogicalOrInverted)\\b" + }, + { + "name": "support.constant.property-value.blendfactors.shaderlab", + "match": "\\b(?i:One|Zero|SrcColor|SrcAlpha|DstColor|DstAlpha|OneMinusSrcColor|OneMinusSrcAlpha|OneMinusDstColor|OneMinusDstAlpha)\\b" + }, + { + "name": "support.variable.reference.shaderlab", + "match": "\\[([a-zA-Z_][a-zA-Z0-9_]*)\\](?!\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\(\")" + }, + { + "name": "meta.attribute.shaderlab", + "begin": "(\\[)", + "end": "(\\])", + "patterns": [ + { + "name": "support.type.attributename.shaderlab", + "match": "\\G([a-zA-Z]+)\\b" + }, + { + "include": "#numbers" + } + ] + }, + { + "name": "support.variable.declaration.shaderlab", + "match": "\\b([a-zA-Z_][a-zA-Z0-9_]*)\\s*\\(" + }, + { + "name": "meta.cgblock", + "begin": "\\b(CGPROGRAM|CGINCLUDE)\\b", + "beginCaptures": { + "1": { + "name": "keyword.other" + } + }, + "end": "\\b(ENDCG)\\b", + "endCaptures": { + "1": { + "name": "keyword.other" + } + }, + "patterns": [ + { + "include": "#hlsl-embedded" + } + ] + }, + { + "name": "meta.hlslblock", + "begin": "\\b(HLSLPROGRAM|HLSLINCLUDE)\\b", + "beginCaptures": { + "1": { + "name": "keyword.other" + } + }, + "end": "\\b(ENDHLSL)\\b", + "endCaptures": { + "1": { + "name": "keyword.other" + } + }, + "patterns": [ + { + "include": "#hlsl-embedded" + } + ] + }, + { + "name": "string.quoted.double.shaderlab", + "begin": "\"", + "end": "\"" + } + ], + "repository": { + "numbers": { + "patterns": [ + { + "name": "constant.numeric.shaderlab", + "match": "\\b([0-9]+\\.?[0-9]*)\\b" + } + ] + }, + "hlsl-embedded": { + "patterns": [ + { + "include": "source.hlsl" + }, + { + "name": "storage.type.basic.shaderlab", + "match": "\\b(fixed([1-4](x[1-4])?)?)\\b" + }, + { + "name": "support.variable.transformations.shaderlab", + "match": "\\b(UNITY_MATRIX_MVP|UNITY_MATRIX_MV|UNITY_MATRIX_M|UNITY_MATRIX_V|UNITY_MATRIX_P|UNITY_MATRIX_VP|UNITY_MATRIX_T_MV|UNITY_MATRIX_I_V|UNITY_MATRIX_IT_MV|_Object2World|_World2Object|unity_ObjectToWorld|unity_WorldToObject)\\b" + }, + { + "name": "support.variable.camera.shaderlab", + "match": "\\b(_WorldSpaceCameraPos|_ProjectionParams|_ScreenParams|_ZBufferParams|unity_OrthoParams|unity_CameraProjection|unity_CameraInvProjection|unity_CameraWorldClipPlanes)\\b" + }, + { + "name": "support.variable.time.shaderlab", + "match": "\\b(_Time|_SinTime|_CosTime|unity_DeltaTime)\\b" + }, + { + "name": "support.variable.lighting.shaderlab", + "match": "\\b(_LightColor0|_WorldSpaceLightPos0|_LightMatrix0|unity_4LightPosX0|unity_4LightPosY0|unity_4LightPosZ0|unity_4LightAtten0|unity_LightColor|_LightColor|unity_LightPosition|unity_LightAtten|unity_SpotDirection)\\b" + }, + { + "name": "support.variable.fog.shaderlab", + "match": "\\b(unity_AmbientSky|unity_AmbientEquator|unity_AmbientGround|UNITY_LIGHTMODEL_AMBIENT|unity_FogColor|unity_FogParams)\\b" + }, + { + "name": "support.variable.various.shaderlab", + "match": "\\b(unity_LODFade)\\b" + }, + { + "name": "support.variable.preprocessor.targetplatform.shaderlab", + "match": "\\b(SHADER_API_D3D9|SHADER_API_D3D11|SHADER_API_GLCORE|SHADER_API_OPENGL|SHADER_API_GLES|SHADER_API_GLES3|SHADER_API_METAL|SHADER_API_D3D11_9X|SHADER_API_PSSL|SHADER_API_XBOXONE|SHADER_API_PSP2|SHADER_API_WIIU|SHADER_API_MOBILE|SHADER_API_GLSL)\\b" + }, + { + "name": "support.variable.preprocessor.targetmodel.shaderlab", + "match": "\\b(SHADER_TARGET)\\b" + }, + { + "name": "support.variable.preprocessor.unityversion.shaderlab", + "match": "\\b(UNITY_VERSION)\\b" + }, + { + "name": "support.variable.preprocessor.platformdifference.shaderlab", + "match": "\\b(UNITY_BRANCH|UNITY_FLATTEN|UNITY_NO_SCREENSPACE_SHADOWS|UNITY_NO_LINEAR_COLORSPACE|UNITY_NO_RGBM|UNITY_NO_DXT5nm|UNITY_FRAMEBUFFER_FETCH_AVAILABLE|UNITY_USE_RGBA_FOR_POINT_SHADOWS|UNITY_ATTEN_CHANNEL|UNITY_HALF_TEXEL_OFFSET|UNITY_UV_STARTS_AT_TOP|UNITY_MIGHT_NOT_HAVE_DEPTH_Texture|UNITY_NEAR_CLIP_VALUE|UNITY_VPOS_TYPE|UNITY_CAN_COMPILE_TESSELLATION|UNITY_COMPILER_HLSL|UNITY_COMPILER_HLSL2GLSL|UNITY_COMPILER_CG|UNITY_REVERSED_Z)\\b" + }, + { + "name": "support.variable.preprocessor.texture2D.shaderlab", + "match": "\\b(UNITY_PASS_FORWARDBASE|UNITY_PASS_FORWARDADD|UNITY_PASS_DEFERRED|UNITY_PASS_SHADOWCASTER|UNITY_PASS_PREPASSBASE|UNITY_PASS_PREPASSFINAL)\\b" + }, + { + "name": "support.class.structures.shaderlab", + "match": "\\b(appdata_base|appdata_tan|appdata_full|appdata_img)\\b" + }, + { + "name": "support.class.surface.shaderlab", + "match": "\\b(SurfaceOutputStandardSpecular|SurfaceOutputStandard|SurfaceOutput|Input)\\b" + } + ] + } + } +} diff --git a/docs/shiki/languages/shellscript.tmLanguage.json b/docs/shiki/languages/shellscript.tmLanguage.json new file mode 100644 index 00000000..dc09b111 --- /dev/null +++ b/docs/shiki/languages/shellscript.tmLanguage.json @@ -0,0 +1,2009 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/jeff-hykin/better-shell-syntax/blob/master/autogenerated/shell.tmLanguage.json", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/jeff-hykin/better-shell-syntax/commit/a3de7b32f1537194a83ee848838402fbf4b67424", + "name": "shellscript", + "scopeName": "source.shell", + "patterns": [ + { + "include": "#initial_context" + } + ], + "repository": { + "alias_statement": { + "begin": "(alias)[ \\t]*+[ \\t]*+(?:((?<=^|;|&|[ \\t])(?:readonly|declare|typeset|export|local)(?=[ \\t]|;|&|$))[ \\t]*+)?((?<!\\w)[a-zA-Z_0-9-]+(?!\\w))(?:(\\[)((?:(?:(?:\\$)?(?<!\\w)[a-zA-Z_0-9-]+(?!\\w)|@)|\\*))(\\]))?(?:(?:(\\=)|(\\+\\=))|(\\-\\=))", + "end": "(?:(?= |\\t|$)|(?:(?:(?:(?:(;)|(&&))|(\\|\\|))|(&))|\\n))", + "beginCaptures": { + "1": { + "name": "storage.type.alias.shell" + }, + "2": { + "name": "storage.modifier.$2.shell" + }, + "3": { + "name": "variable.other.assignment.shell" + }, + "4": { + "name": "punctuation.definition.array.access.shell" + }, + "5": { + "name": "variable.other.assignment.shell" + }, + "6": { + "name": "punctuation.definition.array.access.shell" + }, + "7": { + "name": "keyword.operator.assignment.shell" + }, + "8": { + "name": "keyword.operator.assignment.compound.shell" + }, + "9": { + "name": "keyword.operator.assignment.compound.shell" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.terminator.statement.semicolon.shell" + }, + "2": { + "name": "punctuation.separator.statement.and.shell" + }, + "3": { + "name": "punctuation.separator.statement.or.shell" + }, + "4": { + "name": "punctuation.separator.statement.background.shell" + } + }, + "name": "meta.expression.assignment.shell", + "patterns": [ + { + "include": "#normal_statement_context" + } + ] + }, + "argument": { + "begin": "[ \\t]++(?!(?:&|\\||\\(|\\[|#|\\n|$|;))", + "end": "(?= |\\t|;|\\||&|$|\\n|\\)|\\`)", + "beginCaptures": {}, + "endCaptures": {}, + "name": "meta.argument.shell", + "patterns": [ + { + "include": "#argument_context" + }, + { + "include": "#line_continuation" + } + ] + }, + "argument_context": { + "patterns": [ + { + "match": "[ \\t]*+([^ \t\n'&;<>\\(\\)\\$`\\\\\"\\|]+(?!>))", + "captures": { + "1": { + "name": "string.unquoted.argument.shell", + "patterns": [ + { + "match": "\\*", + "name": "variable.language.special.wildcard.shell" + }, + { + "include": "#variable" + }, + { + "include": "#numeric_literal" + }, + { + "match": "(?<!\\w)(\\b(?:true|false)\\b)(?!\\w)", + "captures": { + "1": { + "name": "constant.language.$1.shell" + } + } + } + ] + } + } + }, + { + "include": "#normal_statement_context" + } + ] + }, + "assignment": { + "patterns": [ + { + "begin": "[ \\t]*+(?:((?<=^|;|&|[ \\t])(?:readonly|declare|typeset|export|local)(?=[ \\t]|;|&|$))[ \\t]*+)?((?<!\\w)[a-zA-Z_0-9-]+(?!\\w))(?:(\\[)((?:(?:(?:\\$)?(?<!\\w)[a-zA-Z_0-9-]+(?!\\w)|@)|\\*))(\\]))?(?:(?:(\\=)|(\\+\\=))|(\\-\\=))[ \\t]*+(\\()", + "end": "\\)", + "beginCaptures": { + "1": { + "name": "storage.modifier.$1.shell" + }, + "2": { + "name": "variable.other.assignment.shell" + }, + "3": { + "name": "punctuation.definition.array.access.shell" + }, + "4": { + "name": "variable.other.assignment.shell" + }, + "5": { + "name": "punctuation.definition.array.access.shell" + }, + "6": { + "name": "keyword.operator.assignment.shell" + }, + "7": { + "name": "keyword.operator.assignment.compound.shell" + }, + "8": { + "name": "keyword.operator.assignment.compound.shell" + }, + "9": { + "name": "punctuation.shell" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.shell" + } + }, + "name": "meta.expression.assignment.shell", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#argument_context" + } + ] + }, + { + "begin": "[ \\t]*+(?:((?<=^|;|&|[ \\t])(?:readonly|declare|typeset|export|local)(?=[ \\t]|;|&|$))[ \\t]*+)?((?<!\\w)[a-zA-Z_0-9-]+(?!\\w))(?:(\\[)((?:(?:(?:\\$)?(?<!\\w)[a-zA-Z_0-9-]+(?!\\w)|@)|\\*))(\\]))?(?:(?:(\\=)|(\\+\\=))|(\\-\\=))", + "end": "(?:(?= |\\t|$)|(?:(?:(?:(?:(;)|(&&))|(\\|\\|))|(&))|\\n))", + "beginCaptures": { + "1": { + "name": "storage.modifier.$1.shell" + }, + "2": { + "name": "variable.other.assignment.shell" + }, + "3": { + "name": "punctuation.definition.array.access.shell" + }, + "4": { + "name": "variable.other.assignment.shell" + }, + "5": { + "name": "punctuation.definition.array.access.shell" + }, + "6": { + "name": "keyword.operator.assignment.shell" + }, + "7": { + "name": "keyword.operator.assignment.compound.shell" + }, + "8": { + "name": "keyword.operator.assignment.compound.shell" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.terminator.statement.semicolon.shell" + }, + "2": { + "name": "punctuation.separator.statement.and.shell" + }, + "3": { + "name": "punctuation.separator.statement.or.shell" + }, + "4": { + "name": "punctuation.separator.statement.background.shell" + } + }, + "name": "meta.expression.assignment.shell", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#argument_context" + } + ] + } + ] + }, + "basic_command_name": { + "match": "(?!(?:!|&|\\||\\(|\\)|\\{|\\[|<|>|#|\\n|$|;|[ \\t]))(?!foreach\\b(?!\\/)|select\\b(?!\\/)|repeat\\b(?!\\/)|until\\b(?!\\/)|while\\b(?!\\/)|case\\b(?!\\/)|done\\b(?!\\/)|elif\\b(?!\\/)|else\\b(?!\\/)|esac\\b(?!\\/)|then\\b(?!\\/)|for\\b(?!\\/)|end\\b(?!\\/)|in\\b(?!\\/)|fi\\b(?!\\/)|do\\b(?!\\/)|if\\b(?!\\/))(?:((?<=^|;|&|[ \\t])(?:readonly|declare|typeset|export|local)(?=[ \\t]|;|&|$))|((?!\"|'|\\\\\\n?$)[^!'\" \\t\\n\\r]+?))(?:(?= |\\t)|(?=;|\\||&|\\n|\\)|\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\))", + "captures": { + "1": { + "name": "storage.modifier.$1.shell" + }, + "2": { + "name": "entity.name.function.call.shell entity.name.command.shell", + "patterns": [ + { + "match": "(?<!\\w)(?:continue|return|break)(?!\\w)", + "name": "keyword.control.$0.shell" + }, + { + "match": "(?<!\\w)(?:unfunction|continue|autoload|unsetopt|bindkey|builtin|getopts|command|declare|unalias|history|unlimit|typeset|suspend|source|printf|unhash|disown|ulimit|return|which|alias|break|false|print|shift|times|umask|umask|unset|read|type|exec|eval|wait|echo|dirs|jobs|kill|hash|stat|exit|test|trap|true|let|set|pwd|cd|fg|bg|fc|:|\\.)(?!\\/)(?!\\w)", + "name": "support.function.builtin.shell" + }, + { + "include": "#variable" + } + ] + } + }, + "name": "meta.statement.command.name.basic.shell" + }, + "block_comment": { + "begin": "\\s*+(\\/\\*)", + "end": "\\*\\/", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.begin.shell" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.end.shell" + } + }, + "name": "comment.block.shell" + }, + "boolean": { + "match": "\\b(?:true|false)\\b", + "name": "constant.language.$0.shell" + }, + "case-clause": { + "patterns": [ + { + "begin": "(?=\\S)", + "end": ";;&?|;&", + "endCaptures": { + "0": { + "name": "punctuation.terminator.case-clause.shell" + } + }, + "name": "meta.scope.case-clause.shell", + "patterns": [ + { + "begin": "\\(|(?=\\S)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.case-pattern.shell" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.case-pattern.shell" + } + }, + "name": "meta.scope.case-pattern.shell", + "patterns": [ + { + "match": "\\|", + "name": "punctuation.separator.pipe-sign.shell" + }, + { + "include": "#string" + }, + { + "include": "#variable" + }, + { + "include": "#interpolation" + }, + { + "include": "#pathname" + } + ] + }, + { + "begin": "(?<=\\))", + "end": "(?=;;&?|;&)", + "name": "meta.scope.case-clause-body.shell", + "patterns": [ + { + "include": "#initial_context" + } + ] + } + ] + } + ] + }, + "comment": { + "match": "(?:^|[ \\t]++)(?:((#!).*)|((#).*))", + "captures": { + "1": { + "name": "comment.line.number-sign.shell meta.shebang.shell" + }, + "2": { + "name": "punctuation.definition.comment.shebang.shell" + }, + "3": { + "name": "comment.line.number-sign.shell" + }, + "4": { + "name": "punctuation.definition.comment.shell" + } + } + }, + "comments": { + "patterns": [ + { + "include": "#block_comment" + }, + { + "include": "#line_comment" + } + ] + }, + "compound-command": { + "patterns": [ + { + "begin": "\\[{1,2}", + "beginCaptures": { + "0": { + "name": "punctuation.definition.logical-expression.shell" + } + }, + "end": "\\]{1,2}", + "endCaptures": { + "0": { + "name": "punctuation.definition.logical-expression.shell" + } + }, + "name": "meta.scope.logical-expression.shell", + "patterns": [ + { + "include": "#logical-expression" + }, + { + "include": "#initial_context" + } + ] + }, + { + "begin": "\\({2}", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.shell" + } + }, + "end": "\\){2}", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.shell" + } + }, + "name": "string.other.math.shell", + "patterns": [ + { + "include": "#math" + } + ] + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.subshell.shell" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.subshell.shell" + } + }, + "name": "meta.scope.subshell.shell", + "patterns": [ + { + "include": "#initial_context" + } + ] + }, + { + "begin": "(?<=\\s|^){(?=\\s|$)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.group.shell" + } + }, + "end": "(?<=^|;)\\s*(})", + "endCaptures": { + "1": { + "name": "punctuation.definition.group.shell" + } + }, + "name": "meta.scope.group.shell", + "patterns": [ + { + "include": "#initial_context" + } + ] + } + ] + }, + "continuation_of_double_quoted_command_name": { + "begin": "\\G(?<=\")", + "end": "\"", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "string.quoted.double.shell punctuation.definition.string.end.shell entity.name.function.call.shell entity.name.command.shell" + } + }, + "contentName": "meta.statement.command.name.continuation string.quoted.double entity.name.function.call entity.name.command", + "patterns": [ + { + "match": "\\\\[\\$\\n`\"\\\\]", + "name": "constant.character.escape.shell" + }, + { + "include": "#variable" + }, + { + "include": "#interpolation" + } + ] + }, + "continuation_of_single_quoted_command_name": { + "begin": "\\G(?<=')", + "end": "'", + "beginCaptures": {}, + "endCaptures": { + "0": { + "name": "string.quoted.single.shell punctuation.definition.string.end.shell entity.name.function.call.shell entity.name.command.shell" + } + }, + "contentName": "meta.statement.command.name.continuation string.quoted.single entity.name.function.call entity.name.command" + }, + "custom_command_names": { + "patterns": [] + }, + "custom_commands": { + "patterns": [] + }, + "double_quote_context": { + "patterns": [ + { + "match": "\\\\[\\$`\"\\\\\\n]", + "name": "constant.character.escape.shell" + }, + { + "include": "#variable" + }, + { + "include": "#interpolation" + } + ] + }, + "double_quote_escape_char": { + "match": "\\\\[\\$`\"\\\\\\n]", + "name": "constant.character.escape.shell" + }, + "function_definition": { + "begin": "[ \\t]*+(?:(\\bfunction\\b)[ \\t]*+([^ \\t\\n\\r\\(\\)=]+)(?:(\\()[ \\t]*+(\\)))?|([^ \\t\\n\\r\\(\\)=]+)[ \\t]*+(\\()[ \\t]*+(\\)))", + "end": "(?<=\\}|\\))", + "beginCaptures": { + "1": { + "name": "storage.type.function.shell" + }, + "2": { + "name": "entity.name.function.shell" + }, + "3": { + "name": "punctuation.definition.arguments.shell" + }, + "4": { + "name": "punctuation.definition.arguments.shell" + }, + "5": { + "name": "entity.name.function.shell" + }, + "6": { + "name": "punctuation.definition.arguments.shell" + }, + "7": { + "name": "punctuation.definition.arguments.shell" + } + }, + "endCaptures": {}, + "name": "meta.function.shell", + "patterns": [ + { + "match": "\\G(?:\\t| |\\n)" + }, + { + "begin": "\\{", + "end": "\\}", + "beginCaptures": { + "0": { + "name": "punctuation.definition.group.shell punctuation.section.function.definition.shell" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.group.shell punctuation.section.function.definition.shell" + } + }, + "name": "meta.function.body.shell", + "patterns": [ + { + "include": "#initial_context" + } + ] + }, + { + "begin": "\\(", + "end": "\\)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.group.shell punctuation.section.function.definition.shell" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.group.shell punctuation.section.function.definition.shell" + } + }, + "name": "meta.function.body.shell", + "patterns": [ + { + "include": "#initial_context" + } + ] + } + ], + "applyEndPatternLast": 1 + }, + "heredoc": { + "patterns": [ + { + "begin": "((?<!<)<<-)[ \\t]*+(\"|')[ \\t]*+((?<!\\w)[a-zA-Z_0-9-]+(?!\\w))(?=\\s|;|&|<|\"|')(?:\\2)(.*)", + "end": "^\\t*(?:\\3)(?=\\s|;|&|$)", + "beginCaptures": { + "1": { + "name": "keyword.operator.heredoc.shell" + }, + "2": {}, + "3": { + "name": "punctuation.definition.string.heredoc.shell" + }, + "4": { + "patterns": [ + { + "include": "#normal_statement_context" + } + ] + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.string.heredoc.shell" + } + }, + "contentName": "string.quoted.heredoc.indent", + "patterns": [] + }, + { + "begin": "((?<!<)<<(?!<))[ \\t]*+(\"|')[ \\t]*+((?<!\\w)[a-zA-Z_0-9-]+(?!\\w))(?=\\s|;|&|<|\"|')(?:\\2)(.*)", + "end": "^(?:\\3)(?=\\s|;|&|$)", + "beginCaptures": { + "1": { + "name": "keyword.operator.heredoc.shell" + }, + "2": {}, + "3": { + "name": "punctuation.definition.string.heredoc.shell" + }, + "4": { + "patterns": [ + { + "include": "#normal_statement_context" + } + ] + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.string.heredoc.shell" + } + }, + "contentName": "string.quoted.heredoc.no-indent", + "patterns": [] + }, + { + "begin": "((?<!<)<<-)[ \\t]*+((?<!\\w)[a-zA-Z_0-9-]+(?!\\w))(?=\\s|;|&|<|\"|')(.*)", + "end": "^\\t*(?:\\2)(?=\\s|;|&|$)", + "beginCaptures": { + "1": { + "name": "keyword.operator.heredoc.shell" + }, + "2": { + "name": "punctuation.definition.string.heredoc.shell" + }, + "3": { + "patterns": [ + { + "include": "#normal_statement_context" + } + ] + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.string.heredoc.shell" + } + }, + "contentName": "string.unquoted.heredoc.indent", + "patterns": [ + { + "include": "#double_quote_escape_char" + }, + { + "include": "#variable" + }, + { + "include": "#interpolation" + } + ] + }, + { + "begin": "((?<!<)<<(?!<))[ \\t]*+((?<!\\w)[a-zA-Z_0-9-]+(?!\\w))(?=\\s|;|&|<|\"|')(.*)", + "end": "^(?:\\2)(?=\\s|;|&|$)", + "beginCaptures": { + "1": { + "name": "keyword.operator.heredoc.shell" + }, + "2": { + "name": "punctuation.definition.string.heredoc.shell" + }, + "3": { + "patterns": [ + { + "include": "#normal_statement_context" + } + ] + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.string.heredoc.shell" + } + }, + "contentName": "string.unquoted.heredoc.no-indent", + "patterns": [ + { + "include": "#double_quote_escape_char" + }, + { + "include": "#variable" + }, + { + "include": "#interpolation" + } + ] + } + ] + }, + "herestring": { + "patterns": [ + { + "begin": "(<<<)\\s*(('))", + "beginCaptures": { + "1": { + "name": "keyword.operator.herestring.shell" + }, + "2": { + "name": "string.quoted.single.shell" + }, + "3": { + "name": "punctuation.definition.string.begin.shell" + } + }, + "end": "(')", + "endCaptures": { + "0": { + "name": "string.quoted.single.shell" + }, + "1": { + "name": "punctuation.definition.string.end.shell" + } + }, + "name": "meta.herestring.shell", + "contentName": "string.quoted.single.shell" + }, + { + "begin": "(<<<)\\s*((\"))", + "beginCaptures": { + "1": { + "name": "keyword.operator.herestring.shell" + }, + "2": { + "name": "string.quoted.double.shell" + }, + "3": { + "name": "punctuation.definition.string.begin.shell" + } + }, + "end": "(\")", + "endCaptures": { + "0": { + "name": "string.quoted.double.shell" + }, + "1": { + "name": "punctuation.definition.string.end.shell" + } + }, + "name": "meta.herestring.shell", + "contentName": "string.quoted.double.shell", + "patterns": [ + { + "include": "#double_quote_context" + } + ] + }, + { + "captures": { + "1": { + "name": "keyword.operator.herestring.shell" + }, + "2": { + "name": "string.unquoted.herestring.shell", + "patterns": [ + { + "include": "#initial_context" + } + ] + } + }, + "match": "(<<<)\\s*(([^\\s)\\\\]|\\\\.)+)", + "name": "meta.herestring.shell" + } + ] + }, + "initial_context": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#pipeline" + }, + { + "include": "#normal_statement_seperator" + }, + { + "include": "#logical_expression_double" + }, + { + "include": "#logical_expression_single" + }, + { + "include": "#misc_ranges" + }, + { + "include": "#loop" + }, + { + "include": "#function_definition" + }, + { + "include": "#variable" + }, + { + "include": "#interpolation" + }, + { + "include": "#heredoc" + }, + { + "include": "#herestring" + }, + { + "include": "#redirection" + }, + { + "include": "#pathname" + }, + { + "include": "#keyword" + }, + { + "include": "#alias_statement" + }, + { + "include": "#normal_statement" + }, + { + "include": "#string" + }, + { + "include": "#support" + } + ] + }, + "inline_comment": { + "match": "(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/))", + "captures": { + "1": { + "name": "comment.block.shell punctuation.definition.comment.begin.shell" + }, + "2": { + "name": "comment.block.shell" + }, + "3": { + "patterns": [ + { + "match": "\\*\\/", + "name": "comment.block.shell punctuation.definition.comment.end.shell" + }, + { + "match": "\\*", + "name": "comment.block.shell" + } + ] + } + } + }, + "interpolation": { + "patterns": [ + { + "begin": "\\$\\({2}", + "beginCaptures": { + "0": { + "name": "punctuation.definition.evaluation.arithmetic.begin.shell" + } + }, + "end": "\\)\\s*\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.evaluation.arithmetic.end.shell" + } + }, + "name": "string.other.math.shell", + "patterns": [ + { + "include": "#math" + } + ] + }, + { + "begin": "`", + "beginCaptures": { + "0": { + "name": "punctuation.definition.evaluation.backticks.shell" + } + }, + "end": "`", + "endCaptures": { + "0": { + "name": "punctuation.definition.evaluation.backticks.shell" + } + }, + "name": "string.interpolated.backtick.shell", + "patterns": [ + { + "match": "\\\\[`\\\\$]", + "name": "constant.character.escape.shell" + }, + { + "begin": "(?<=\\W)(?=#)(?!#{)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.shell" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": "#", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.shell" + } + }, + "end": "(?=`)", + "name": "comment.line.number-sign.shell" + } + ] + }, + { + "include": "#initial_context" + } + ] + }, + { + "begin": "\\$\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.evaluation.parens.begin.shell" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.evaluation.parens.end.shell" + } + }, + "name": "string.interpolated.dollar.shell", + "patterns": [ + { + "include": "#initial_context" + } + ] + } + ] + }, + "keyword": { + "patterns": [ + { + "match": "(?<=^|;|&| |\\t)(?:continue|foreach|return|select|repeat|break|until|while|case|done|elif|else|esac|then|for|end|do|if|fi|in)(?= |\\t|;|&|$)", + "name": "keyword.control.$0.shell" + } + ] + }, + "line_comment": { + "begin": "\\s*+(\\/\\/)", + "end": "(?<=\\n)(?<!\\\\\\n)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.shell" + } + }, + "endCaptures": {}, + "name": "comment.line.double-slash.shell", + "patterns": [ + { + "include": "#line_continuation_character" + } + ] + }, + "line_continuation": { + "match": "\\\\(?=\\n)", + "name": "constant.character.escape.line-continuation.shell" + }, + "logical-expression": { + "patterns": [ + { + "comment": "do we want a special rule for ( expr )?", + "match": "=[=~]?|!=?|<|>|&&|\\|\\|", + "name": "keyword.operator.logical.shell" + }, + { + "match": "(?<!\\S)-(nt|ot|ef|eq|ne|l[te]|g[te]|[a-hknoprstuwxzOGLSN])\\b", + "name": "keyword.operator.logical.shell" + } + ] + }, + "logical_expression_context": { + "patterns": [ + { + "include": "#regex_comparison" + }, + { + "include": "#logical-expression" + }, + { + "include": "#logical_expression_single" + }, + { + "include": "#logical_expression_double" + }, + { + "include": "#comment" + }, + { + "include": "#boolean" + }, + { + "include": "#redirect_number" + }, + { + "include": "#numeric_literal" + }, + { + "include": "#pipeline" + }, + { + "include": "#normal_statement_seperator" + }, + { + "include": "#string" + }, + { + "include": "#variable" + }, + { + "include": "#interpolation" + }, + { + "include": "#heredoc" + }, + { + "include": "#herestring" + }, + { + "include": "#pathname" + }, + { + "include": "#keyword" + }, + { + "include": "#support" + } + ] + }, + "logical_expression_double": { + "begin": "\\[\\[", + "end": "\\]\\]", + "beginCaptures": { + "0": { + "name": "punctuation.definition.logical-expression.shell" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.logical-expression.shell" + } + }, + "name": "meta.scope.logical-expression.shell", + "patterns": [ + { + "include": "#logical_expression_context" + } + ] + }, + "logical_expression_single": { + "begin": "\\[", + "end": "\\]", + "beginCaptures": { + "0": { + "name": "punctuation.definition.logical-expression.shell" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.logical-expression.shell" + } + }, + "name": "meta.scope.logical-expression.shell", + "patterns": [ + { + "include": "#logical_expression_context" + } + ] + }, + "loop": { + "patterns": [ + { + "begin": "(?<=^|;|&|\\s)(for)\\s+(?=\\({2})", + "beginCaptures": { + "1": { + "name": "keyword.control.shell" + } + }, + "end": "(?<=^|;|&|\\s)done(?=\\s|;|&|$|\\))", + "endCaptures": { + "0": { + "name": "keyword.control.shell" + } + }, + "name": "meta.scope.for-loop.shell", + "patterns": [ + { + "include": "#initial_context" + } + ] + }, + { + "begin": "(?<=^|;|&|\\s)(for)\\s+(.+?)\\s+(in)(?=\\s|;|&|$)", + "beginCaptures": { + "1": { + "name": "keyword.control.shell" + }, + "2": { + "name": "variable.other.loop.shell", + "patterns": [ + { + "include": "#string" + } + ] + }, + "3": { + "name": "keyword.control.shell" + } + }, + "end": "(?<=^|;|&|\\s)done(?=\\s|;|&|$|\\))", + "endCaptures": { + "0": { + "name": "keyword.control.shell" + } + }, + "name": "meta.scope.for-in-loop.shell", + "patterns": [ + { + "include": "#initial_context" + } + ] + }, + { + "begin": "(?<=^|;|&|\\s)(while|until)(?=\\s|;|&|$)", + "beginCaptures": { + "1": { + "name": "keyword.control.shell" + } + }, + "end": "(?<=^|;|&|\\s)done(?=\\s|;|&|$|\\))", + "endCaptures": { + "0": { + "name": "keyword.control.shell" + } + }, + "name": "meta.scope.while-loop.shell", + "patterns": [ + { + "include": "#initial_context" + } + ] + }, + { + "begin": "(?<=^|;|&|\\s)(select)\\s+((?:[^\\s\\\\]|\\\\.)+)(?=\\s|;|&|$)", + "beginCaptures": { + "1": { + "name": "keyword.control.shell" + }, + "2": { + "name": "variable.other.loop.shell" + } + }, + "end": "(?<=^|;|&|\\s)(done)(?=\\s|;|&|$|\\))", + "endCaptures": { + "1": { + "name": "keyword.control.shell" + } + }, + "name": "meta.scope.select-block.shell", + "patterns": [ + { + "include": "#initial_context" + } + ] + }, + { + "begin": "(?<=^|;|&|\\s)case(?=\\s|;|&|$)", + "beginCaptures": { + "0": { + "name": "keyword.control.shell" + } + }, + "end": "(?<=^|;|&|\\s)esac(?=\\s|;|&|$)", + "endCaptures": { + "0": { + "name": "keyword.control.shell" + } + }, + "name": "meta.scope.case-block.shell", + "patterns": [ + { + "begin": "(?<=^|;|&|\\s)in(?=\\s|;|&|$)", + "beginCaptures": { + "0": { + "name": "keyword.control.shell" + } + }, + "end": "(?<=^|;|&|\\s)(?=esac(\\s|;|&|$))", + "name": "meta.scope.case-body.shell", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#case-clause" + } + ] + }, + { + "include": "#initial_context" + } + ] + }, + { + "begin": "(?<=^|;|&|\\s)if(?=\\s|;|&|$)", + "beginCaptures": { + "0": { + "name": "keyword.control.shell" + } + }, + "end": "(?<=^|;|&|\\s)fi(?=\\s|;|&|$)", + "endCaptures": { + "0": { + "name": "keyword.control.shell" + } + }, + "name": "meta.scope.if-block.shell", + "patterns": [ + { + "include": "#initial_context" + } + ] + } + ] + }, + "math": { + "patterns": [ + { + "include": "#variable" + }, + { + "match": "\\+{1,2}|-{1,2}|!|~|\\*{1,2}|/|%|<[<=]?|>[>=]?|==|!=|^|\\|{1,2}|&{1,2}|\\?|\\:|,|=|[*/%+\\-&^|]=|<<=|>>=", + "name": "keyword.operator.arithmetic.shell" + }, + { + "match": "0[xX][0-9A-Fa-f]+", + "name": "constant.numeric.hex.shell" + }, + { + "match": "0\\d+", + "name": "constant.numeric.octal.shell" + }, + { + "match": "\\d{1,2}#[0-9a-zA-Z@_]+", + "name": "constant.numeric.other.shell" + }, + { + "match": "\\d+", + "name": "constant.numeric.integer.shell" + } + ] + }, + "misc_ranges": { + "patterns": [ + { + "include": "#logical_expression_single" + }, + { + "include": "#logical_expression_double" + }, + { + "begin": "\\(\\(", + "end": "\\)\\)", + "beginCaptures": { + "0": { + "name": "punctuation.section.arithmetic.shell" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.arithmetic.shell" + } + }, + "name": "meta.arithmetic.shell", + "patterns": [ + { + "include": "#math" + } + ] + }, + { + "begin": "(?<!=)\\(", + "end": "\\)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.subshell" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.subshell" + } + }, + "name": "meta.scope.subshell", + "patterns": [ + { + "include": "#initial_context" + } + ] + }, + { + "begin": "(?<![^ \\t])({)", + "end": "}", + "beginCaptures": { + "1": { + "name": "punctuation.definition.group.shell" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.group.shell" + } + }, + "name": "meta.scope.group.shell", + "patterns": [ + { + "include": "#initial_context" + } + ] + } + ] + }, + "modifiers": { + "match": "(?<=^|;|&|[ \\t])(?:readonly|declare|typeset|export|local)(?=[ \\t]|;|&|$)", + "name": "storage.modifier.$0.shell" + }, + "normal_statement": { + "begin": "(?!^[ \\t]*+$)(?:(?<=^until | until |\\tuntil |^while | while |\\twhile |^elif | elif |\\telif |^else | else |\\telse |^then | then |\\tthen |^do | do |\\tdo |^if | if |\\tif )|(?<=(?:^|;|\\||&|!|\\(|\\{|\\`)))[ \\t]*+(?!nocorrect\\W|nocorrect\\$|function\\W|function\\$|foreach\\W|foreach\\$|repeat\\W|repeat\\$|logout\\W|logout\\$|coproc\\W|coproc\\$|select\\W|select\\$|while\\W|while\\$|pushd\\W|pushd\\$|until\\W|until\\$|case\\W|case\\$|done\\W|done\\$|elif\\W|elif\\$|else\\W|else\\$|esac\\W|esac\\$|popd\\W|popd\\$|then\\W|then\\$|time\\W|time\\$|for\\W|for\\$|end\\W|end\\$|fi\\W|fi\\$|do\\W|do\\$|in\\W|in\\$|if\\W|if\\$)", + "end": "(?=;|\\||&|\\n|\\)|\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\)", + "beginCaptures": {}, + "endCaptures": {}, + "name": "meta.statement.shell", + "patterns": [ + { + "include": "#function_definition" + }, + { + "include": "#assignment" + }, + { + "begin": "[ \\t]*+(?!(?:!|&|\\||\\(|\\)|\\{|\\[|<|>|#|\\n|$|;|[ \\t]))(?!foreach\\b(?!\\/)|select\\b(?!\\/)|repeat\\b(?!\\/)|until\\b(?!\\/)|while\\b(?!\\/)|case\\b(?!\\/)|done\\b(?!\\/)|elif\\b(?!\\/)|else\\b(?!\\/)|esac\\b(?!\\/)|then\\b(?!\\/)|for\\b(?!\\/)|end\\b(?!\\/)|in\\b(?!\\/)|fi\\b(?!\\/)|do\\b(?!\\/)|if\\b(?!\\/))(?!\\\\\\n?$)", + "end": "(?=;|\\||&|\\n|\\)|\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\)", + "beginCaptures": {}, + "endCaptures": {}, + "name": "meta.statement.command.shell", + "patterns": [ + { + "begin": "\\G", + "end": "(?= |\\t|;|\\||&|$|\\n|\\)|\\`)", + "beginCaptures": {}, + "endCaptures": {}, + "name": "meta.statement.command.name.shell", + "patterns": [ + { + "include": "#modifiers" + }, + { + "match": "(?<!\\w)(?:continue|return|break)(?!\\w)", + "name": "entity.name.function.call.shell entity.name.command.shell keyword.control.$0.shell" + }, + { + "match": "(?<!\\w)(?:unfunction|continue|autoload|unsetopt|bindkey|builtin|getopts|command|declare|unalias|history|unlimit|typeset|suspend|source|printf|unhash|disown|ulimit|return|which|alias|break|false|print|shift|times|umask|umask|unset|read|type|exec|eval|wait|echo|dirs|jobs|kill|hash|stat|exit|test|trap|true|let|set|pwd|cd|fg|bg|fc|:|\\.)(?!\\/)(?!\\w)", + "name": "entity.name.function.call.shell entity.name.command.shell support.function.builtin.shell" + }, + { + "include": "#variable" + }, + { + "match": "(?<=\\G|'|\"|\\}|\\))([^ \\n\\t\\r\"'=;&\\|`\\)\\{]+)", + "captures": { + "1": { + "name": "entity.name.function.call.shell entity.name.command.shell" + } + } + }, + { + "begin": "(?:\\G|(?<! |\\t|;|\\||&|\\n|\\{|#))((?:\\$)?)((?:(\")|(')))", + "end": "(?<!\\G)(?<=(?:\\2))", + "beginCaptures": { + "1": { + "name": "meta.statement.command.name.quoted.shell punctuation.definition.string.shell entity.name.function.call.shell entity.name.command.shell" + }, + "2": {}, + "3": { + "name": "meta.statement.command.name.quoted.shell string.quoted.double.shell punctuation.definition.string.begin.shell entity.name.function.call.shell entity.name.command.shell" + }, + "4": { + "name": "meta.statement.command.name.quoted.shell string.quoted.single.shell punctuation.definition.string.begin.shell entity.name.function.call.shell entity.name.command.shell" + } + }, + "endCaptures": {}, + "patterns": [ + { + "include": "#continuation_of_single_quoted_command_name" + }, + { + "include": "#continuation_of_double_quoted_command_name" + } + ] + }, + { + "include": "#line_continuation" + } + ] + }, + { + "include": "#line_continuation" + }, + { + "include": "#option" + }, + { + "include": "#argument" + }, + { + "include": "#statement_context" + }, + { + "include": "#string" + } + ] + }, + { + "include": "#line_continuation" + }, + { + "include": "#normal_statement_context" + } + ] + }, + "normal_statement_context": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#pipeline" + }, + { + "include": "#normal_statement_seperator" + }, + { + "include": "#misc_ranges" + }, + { + "include": "#boolean" + }, + { + "include": "#redirect_number" + }, + { + "include": "#numeric_literal" + }, + { + "include": "#string" + }, + { + "include": "#variable" + }, + { + "include": "#interpolation" + }, + { + "include": "#heredoc" + }, + { + "include": "#herestring" + }, + { + "include": "#redirection" + }, + { + "include": "#pathname" + }, + { + "include": "#keyword" + }, + { + "include": "#support" + } + ] + }, + "normal_statement_seperator": { + "match": "(?:(?:(?:(?:(;)|(&&))|(\\|\\|))|(&))|\\n)", + "captures": { + "1": { + "name": "punctuation.terminator.statement.semicolon.shell" + }, + "2": { + "name": "punctuation.separator.statement.and.shell" + }, + "3": { + "name": "punctuation.separator.statement.or.shell" + }, + "4": { + "name": "punctuation.separator.statement.background.shell" + } + } + }, + "numeric_literal": { + "match": "[ \\t]*+(?<==| |\\t|^|\\{|\\(|\\[)(?:(?:(?:(?:(0[xX][0-9A-Fa-f]+)|(0\\d+))|(\\d{1,2}#[0-9a-zA-Z@_]+))|(-?\\d+\\.\\d+))|(-?\\d+))(?!>)", + "captures": { + "1": { + "name": "constant.numeric.shell constant.numeric.hex.shell" + }, + "2": { + "name": "constant.numeric.shell constant.numeric.octal.shell" + }, + "3": { + "name": "constant.numeric.shell constant.numeric.other.shell" + }, + "4": { + "name": "constant.numeric.shell constant.numeric.integer.shell" + }, + "5": { + "name": "constant.numeric.shell constant.numeric.integer.shell" + } + } + }, + "option": { + "begin": "[ \\t]++(-)((?!(?:!|&|\\||\\(|\\)|\\{|\\[|<|>|#|\\n|$|;|[ \\t])))", + "end": "(?:(?=[ \\t])|(?=;|\\||&|\\n|\\)|\\`|\\{|\\}|[ \\t]*#|\\])(?<!\\\\))", + "beginCaptures": { + "1": { + "name": "string.unquoted.argument.shell constant.other.option.dash.shell" + }, + "2": { + "name": "string.unquoted.argument.shell constant.other.option.shell" + } + }, + "endCaptures": {}, + "contentName": "string.unquoted.argument constant.other.option", + "patterns": [ + { + "include": "#option_context" + } + ] + }, + "option_context": { + "patterns": [ + { + "include": "#misc_ranges" + }, + { + "include": "#string" + }, + { + "include": "#variable" + }, + { + "include": "#interpolation" + }, + { + "include": "#heredoc" + }, + { + "include": "#herestring" + }, + { + "include": "#redirection" + }, + { + "include": "#pathname" + }, + { + "include": "#keyword" + }, + { + "include": "#support" + } + ] + }, + "pathname": { + "patterns": [ + { + "match": "(?<=\\s|:|=|^)~", + "name": "keyword.operator.tilde.shell" + }, + { + "match": "\\*|\\?", + "name": "keyword.operator.glob.shell" + }, + { + "begin": "([?*+@!])(\\()", + "beginCaptures": { + "1": { + "name": "keyword.operator.extglob.shell" + }, + "2": { + "name": "punctuation.definition.extglob.shell" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.extglob.shell" + } + }, + "name": "meta.structure.extglob.shell", + "patterns": [ + { + "include": "#initial_context" + } + ] + } + ] + }, + "pipeline": { + "patterns": [ + { + "match": "(?<=^|;|&|\\s)(time)(?=\\s|;|&|$)", + "name": "keyword.other.shell" + }, + { + "match": "[|!]", + "name": "keyword.operator.pipe.shell" + } + ] + }, + "redirect_number": { + "match": "(?<=[ \\t])(?:(1)|(2)|(\\d+))(?=>)", + "captures": { + "1": { + "name": "keyword.operator.redirect.stdout.shell" + }, + "2": { + "name": "keyword.operator.redirect.stderr.shell" + }, + "3": { + "name": "keyword.operator.redirect.$3.shell" + } + } + }, + "redirection": { + "patterns": [ + { + "begin": "[><]\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.shell" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.shell" + } + }, + "name": "string.interpolated.process-substitution.shell", + "patterns": [ + { + "include": "#initial_context" + } + ] + }, + { + "match": "(?<![<>])(&>|\\d*>&\\d*|\\d*(>>|>|<)|\\d*<&|\\d*<>)(?![<>])", + "name": "keyword.operator.redirect.shell" + } + ] + }, + "regex_comparison": { + "match": "\\=~", + "name": "keyword.operator.logical.regex.shell" + }, + "regexp": { + "patterns": [ + { + "match": ".+" + } + ] + }, + "simple_options": { + "match": "(?:[ \\t]++\\-\\w+)*", + "captures": { + "0": { + "patterns": [ + { + "match": "[ \\t]++(\\-)(\\w+)", + "captures": { + "1": { + "name": "string.unquoted.argument.shell constant.other.option.dash.shell" + }, + "2": { + "name": "string.unquoted.argument.shell constant.other.option.shell" + } + } + } + ] + } + } + }, + "start_of_command": { + "match": "[ \\t]*+(?!(?:!|&|\\||\\(|\\)|\\{|\\[|<|>|#|\\n|$|;|[ \\t]))(?!foreach\\b(?!\\/)|select\\b(?!\\/)|repeat\\b(?!\\/)|until\\b(?!\\/)|while\\b(?!\\/)|case\\b(?!\\/)|done\\b(?!\\/)|elif\\b(?!\\/)|else\\b(?!\\/)|esac\\b(?!\\/)|then\\b(?!\\/)|for\\b(?!\\/)|end\\b(?!\\/)|in\\b(?!\\/)|fi\\b(?!\\/)|do\\b(?!\\/)|if\\b(?!\\/))(?!\\\\\\n?$)" + }, + "start_of_double_quoted_command_name": { + "match": "(?!(?:!|&|\\||\\(|\\)|\\{|\\[|<|>|#|\\n|$|;|[ \\t]))(?:[ \\t]*+([^ \t\n'&;<>\\(\\)\\$`\\\\\"\\|]+(?!>)))?(?:(?:\\$\")|\")", + "captures": { + "1": { + "name": "entity.name.function.call.shell entity.name.command.shell", + "patterns": [ + { + "match": "\\*", + "name": "variable.language.special.wildcard.shell" + }, + { + "include": "#variable" + }, + { + "include": "#numeric_literal" + }, + { + "match": "(?<!\\w)(\\b(?:true|false)\\b)(?!\\w)", + "captures": { + "1": { + "name": "constant.language.$1.shell" + } + } + } + ] + } + }, + "name": "meta.statement.command.name.quoted.shell string.quoted.double.shell punctuation.definition.string.begin.shell entity.name.function.call.shell entity.name.command.shell" + }, + "start_of_single_quoted_command_name": { + "match": "(?!(?:!|&|\\||\\(|\\)|\\{|\\[|<|>|#|\\n|$|;|[ \\t]))(?:[ \\t]*+([^ \t\n'&;<>\\(\\)\\$`\\\\\"\\|]+(?!>)))?(?:(?:\\$')|')", + "captures": { + "1": { + "name": "entity.name.function.call.shell entity.name.command.shell", + "patterns": [ + { + "match": "\\*", + "name": "variable.language.special.wildcard.shell" + }, + { + "include": "#variable" + }, + { + "include": "#numeric_literal" + }, + { + "match": "(?<!\\w)(\\b(?:true|false)\\b)(?!\\w)", + "captures": { + "1": { + "name": "constant.language.$1.shell" + } + } + } + ] + } + }, + "name": "meta.statement.command.name.quoted.shell string.quoted.single.shell punctuation.definition.string.begin.shell entity.name.function.call.shell entity.name.command.shell" + }, + "string": { + "patterns": [ + { + "match": "\\\\.", + "name": "constant.character.escape.shell" + }, + { + "begin": "'", + "end": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.shell" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.shell" + } + }, + "name": "string.quoted.single.shell" + }, + { + "begin": "\\$?\"", + "end": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.shell" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.shell" + } + }, + "name": "string.quoted.double.shell", + "patterns": [ + { + "match": "\\\\[\\$\\n`\"\\\\]", + "name": "constant.character.escape.shell" + }, + { + "include": "#variable" + }, + { + "include": "#interpolation" + } + ] + }, + { + "begin": "\\$'", + "end": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.shell" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.shell" + } + }, + "name": "string.quoted.single.dollar.shell", + "patterns": [ + { + "match": "\\\\(?:a|b|e|f|n|r|t|v|\\\\|')", + "name": "constant.character.escape.ansi-c.shell" + }, + { + "match": "\\\\[0-9]{3}\"", + "name": "constant.character.escape.octal.shell" + }, + { + "match": "\\\\x[0-9a-fA-F]{2}\"", + "name": "constant.character.escape.hex.shell" + }, + { + "match": "\\\\c.\"", + "name": "constant.character.escape.control-char.shell" + } + ] + } + ] + }, + "support": { + "patterns": [ + { + "match": "(?<=^|;|&|\\s)(?::|\\.)(?=\\s|;|&|$)", + "name": "support.function.builtin.shell" + } + ] + }, + "variable": { + "patterns": [ + { + "match": "(\\$)(\\@(?!\\w))", + "captures": { + "1": { + "name": "punctuation.definition.variable.shell variable.parameter.positional.all.shell" + }, + "2": { + "name": "variable.parameter.positional.all.shell" + } + } + }, + { + "match": "(\\$)([0-9](?!\\w))", + "captures": { + "1": { + "name": "punctuation.definition.variable.shell variable.parameter.positional.shell" + }, + "2": { + "name": "variable.parameter.positional.shell" + } + } + }, + { + "match": "(\\$)([-*#?$!0_](?!\\w))", + "captures": { + "1": { + "name": "punctuation.definition.variable.shell variable.language.special.shell" + }, + "2": { + "name": "variable.language.special.shell" + } + } + }, + { + "begin": "(\\$)(\\{)[ \\t]*+(?=\\d)", + "end": "\\}", + "beginCaptures": { + "1": { + "name": "punctuation.definition.variable.shell variable.parameter.positional.shell" + }, + "2": { + "name": "punctuation.section.bracket.curly.variable.begin.shell punctuation.definition.variable.shell variable.parameter.positional.shell" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.bracket.curly.variable.end.shell punctuation.definition.variable.shell variable.parameter.positional.shell" + } + }, + "contentName": "meta.parameter-expansion", + "patterns": [ + { + "match": "!|:[-=?]?|\\*|@|##|#|%%|%|\\/", + "name": "keyword.operator.expansion.shell" + }, + { + "match": "(\\[)[^\\]]+(\\])", + "captures": { + "1": { + "name": "punctuation.section.array.shell" + }, + "2": { + "name": "punctuation.section.array.shell" + } + } + }, + { + "match": "[0-9]+", + "name": "variable.parameter.positional.shell" + }, + { + "match": "(?<!\\w)[a-zA-Z_0-9-]+(?!\\w)", + "name": "variable.other.normal.shell" + }, + { + "include": "#variable" + }, + { + "include": "#string" + } + ] + }, + { + "begin": "(\\$)(\\{)", + "end": "\\}", + "beginCaptures": { + "1": { + "name": "punctuation.definition.variable.shell" + }, + "2": { + "name": "punctuation.section.bracket.curly.variable.begin.shell punctuation.definition.variable.shell" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.bracket.curly.variable.end.shell punctuation.definition.variable.shell" + } + }, + "contentName": "meta.parameter-expansion", + "patterns": [ + { + "match": "!|:[-=?]?|\\*|@|##|#|%%|%|\\/", + "name": "keyword.operator.expansion.shell" + }, + { + "match": "(\\[)[^\\]]+(\\])", + "captures": { + "1": { + "name": "punctuation.section.array.shell" + }, + "2": { + "name": "punctuation.section.array.shell" + } + } + }, + { + "match": "(?<!\\w)[a-zA-Z_0-9-]+(?!\\w)", + "name": "variable.other.normal.shell" + }, + { + "include": "#variable" + }, + { + "include": "#string" + } + ] + }, + { + "match": "(\\$)(\\w+(?!\\w))", + "captures": { + "1": { + "name": "punctuation.definition.variable.shell variable.other.normal.shell" + }, + "2": { + "name": "variable.other.normal.shell" + } + } + } + ] + } + } +} diff --git a/docs/shiki/languages/shellsession.tmLanguage.json b/docs/shiki/languages/shellsession.tmLanguage.json new file mode 100644 index 00000000..66be461f --- /dev/null +++ b/docs/shiki/languages/shellsession.tmLanguage.json @@ -0,0 +1,30 @@ +{ + "name": "shellsession", + "scopeName": "text.shell-session", + "patterns": [ + { + "match": "(?x) ^ (?: ( (?:\\(\\S+\\)\\s*)? (?: sh\\S*? | \\w+\\S+[@:]\\S+(?:\\s+\\S+)? | \\[\\S+?[@:][^\\n]+?\\].*? ) ) \\s* )? ( [>$#%❯➜] | \\p{Greek} ) \\s+ (.*) $", + "captures": { + "1": { + "name": "entity.other.prompt-prefix.shell-session" + }, + "2": { + "name": "punctuation.separator.prompt.shell-session" + }, + "3": { + "name": "source.shell", + "patterns": [ + { + "include": "source.shell" + } + ] + } + } + }, + { + "name": "meta.output.shell-session", + "match": "^.+$" + } + ], + "fileTypes": ["sh-session"] +} diff --git a/docs/shiki/languages/smalltalk.tmLanguage.json b/docs/shiki/languages/smalltalk.tmLanguage.json new file mode 100644 index 00000000..6b6410af --- /dev/null +++ b/docs/shiki/languages/smalltalk.tmLanguage.json @@ -0,0 +1,239 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/textmate/smalltalk.tmbundle/blob/master/Syntaxes/SmallTalk.tmLanguage", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "name": "smalltalk", + "foldingStartMarker": "\\[", + "foldingStopMarker": "^\\s*\\]|^\\s\\]", + "keyEquivalent": "^~S", + "fileTypes": ["st"], + "patterns": [ + { + "match": "\\$.", + "name": "constant.character.smalltalk" + }, + { + "match": "\\b(class)\\b", + "name": "storage.type.$1.smalltalk" + }, + { + "match": "\\b(extend|super|self)\\b", + "name": "storage.modifier.$1.smalltalk" + }, + { + "match": "\\b(yourself|new|Smalltalk)\\b", + "name": "keyword.control.$1.smalltalk" + }, + { + "match": ":=", + "name": "keyword.operator.assignment.smalltalk" + }, + { + "comment": "Parse the variable declaration like: |a b c|", + "match": "/^:\\w*\\s*\\|/", + "name": "constant.other.block.smalltalk" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.instance-variables.begin.smalltalk" + }, + "2": { + "patterns": [ + { + "match": "\\w+", + "name": "support.type.variable.declaration.smalltalk" + } + ] + }, + "3": { + "name": "punctuation.definition.instance-variables.end.smalltalk" + } + }, + "match": "(\\|)(\\s*\\w[\\w ]*)(\\|)" + }, + { + "captures": { + "1": { + "patterns": [ + { + "match": ":\\w+", + "name": "entity.name.function.block.smalltalk" + } + ] + } + }, + "comment": "Parse the blocks like: [ :a :b | ...... ]", + "match": "\\[((\\s+|:\\w+)*)\\|" + }, + { + "include": "#numeric" + }, + { + "match": "<(?!<|=)|>(?!<|=|>)|<=|>=|=|==|~=|~~|>>|\\^", + "name": "keyword.operator.comparison.smalltalk" + }, + { + "match": "(\\*|\\+|\\-|/|\\\\)", + "name": "keyword.operator.arithmetic.smalltalk" + }, + { + "match": "(?<=[ \\t])!+|\\bnot\\b|&|\\band\\b|\\||\\bor\\b", + "name": "keyword.operator.logical.smalltalk" + }, + { + "comment": "Fake reserved word -> main Smalltalk messages", + "match": "(?<!\\.)\\b(ensure|resume|retry|signal)\\b(?![?!])", + "name": "keyword.control.smalltalk" + }, + { + "comment": "Fake conditionals. Smalltalk Methods.", + "match": "ifCurtailed:|ifTrue:|ifFalse:|whileFalse:|whileTrue:", + "name": "keyword.control.conditionals.smalltalk" + }, + { + "captures": { + "1": { + "name": "entity.other.inherited-class.smalltalk" + }, + "3": { + "name": "keyword.control.smalltalk" + }, + "4": { + "name": "entity.name.type.class.smalltalk" + } + }, + "match": "(\\w+)(\\s+(subclass:))\\s*(\\w*)", + "name": "meta.class.smalltalk" + }, + { + "begin": "\"", + "beginCaptures": [ + { + "name": "punctuation.definition.comment.begin.smalltalk" + } + ], + "end": "\"", + "endCaptures": [ + { + "name": "punctuation.definition.comment.end.smalltalk" + } + ], + "name": "comment.block.smalltalk" + }, + { + "match": "\\b(true|false)\\b", + "name": "constant.language.boolean.smalltalk" + }, + { + "match": "\\b(nil)\\b", + "name": "constant.language.nil.smalltalk" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.constant.smalltalk" + } + }, + "comment": "messages/methods", + "match": "(?>[a-zA-Z_]\\w*(?>[?!])?)(:)(?!:)", + "name": "constant.other.messages.smalltalk" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.constant.smalltalk" + } + }, + "comment": "symbols", + "match": "(#)[a-zA-Z_][a-zA-Z0-9_:]*", + "name": "constant.other.symbol.smalltalk" + }, + { + "begin": "#\\[", + "beginCaptures": [ + { + "name": "punctuation.definition.constant.begin.smalltalk" + } + ], + "end": "\\]", + "endCaptures": [ + { + "name": "punctuation.definition.constant.end.smalltalk" + } + ], + "name": "meta.array.byte.smalltalk", + "patterns": [ + { + "match": "[0-9]+(r[a-zA-Z0-9]+)?", + "name": "constant.numeric.integer.smalltalk" + }, + { + "match": "[^\\s\\]]+", + "name": "invalid.illegal.character-not-allowed-here.smalltalk" + } + ] + }, + { + "begin": "#\\(", + "beginCaptures": [ + { + "name": "punctuation.definition.constant.begin.smalltalk" + } + ], + "comment": "Array Constructor", + "end": "\\)", + "endCaptures": [ + { + "name": "punctuation.definition.constant.end.smalltalk" + } + ], + "name": "constant.other.array.smalltalk" + }, + { + "begin": "'", + "beginCaptures": [ + { + "name": "punctuation.definition.string.begin.smalltalk" + } + ], + "end": "'", + "endCaptures": [ + { + "name": "punctuation.definition.string.end.smalltalk" + } + ], + "name": "string.quoted.single.smalltalk" + }, + { + "match": "\\b[A-Z]\\w*\\b", + "name": "variable.other.constant.smalltalk" + } + ], + "repository": { + "numeric": { + "patterns": [ + { + "match": "(?<!\\w)[0-9]+\\.[0-9]+s[0-9]*", + "name": "constant.numeric.float.scaled.smalltalk" + }, + { + "match": "(?<!\\w)[0-9]+\\.[0-9]+([edq]-?[0-9]+)?", + "name": "constant.numeric.float.smalltalk" + }, + { + "match": "(?<!\\w)-?[0-9]+r[a-zA-Z0-9]+", + "name": "constant.numeric.integer.radix.smalltalk" + }, + { + "match": "(?<!\\w)-?[0-9]+([edq]-?[0-9]+)?", + "name": "constant.numeric.integer.smalltalk" + } + ] + } + }, + "scopeName": "source.smalltalk", + "uuid": "1ED64A34-BCB1-44E1-A0FE-84053003E232" +} diff --git a/docs/shiki/languages/solidity.tmLanguage.json b/docs/shiki/languages/solidity.tmLanguage.json new file mode 100644 index 00000000..30a4731a --- /dev/null +++ b/docs/shiki/languages/solidity.tmLanguage.json @@ -0,0 +1,1208 @@ +{ + "fileTypes": ["sol"], + "name": "solidity", + "patterns": [ + { + "include": "#natspec" + }, + { + "include": "#declaration-userType" + }, + { + "include": "#comment" + }, + { + "include": "#operator" + }, + { + "include": "#global" + }, + { + "include": "#control" + }, + { + "include": "#constant" + }, + { + "include": "#primitive" + }, + { + "include": "#type-primitive" + }, + { + "include": "#type-modifier-extended-scope" + }, + { + "include": "#declaration" + }, + { + "include": "#function-call" + }, + { + "include": "#assembly" + }, + { + "include": "#punctuation" + } + ], + "repository": { + "natspec": { + "patterns": [ + { + "begin": "/\\*\\*", + "end": "\\*/", + "name": "comment.block.documentation", + "patterns": [ + { + "include": "#natspec-tags" + } + ] + }, + { + "begin": "///", + "end": "$", + "name": "comment.block.documentation", + "patterns": [ + { + "include": "#natspec-tags" + } + ] + } + ] + }, + "natspec-tags": { + "patterns": [ + { + "include": "#comment-todo" + }, + { + "include": "#natspec-tag-title" + }, + { + "include": "#natspec-tag-author" + }, + { + "include": "#natspec-tag-notice" + }, + { + "include": "#natspec-tag-dev" + }, + { + "include": "#natspec-tag-param" + }, + { + "include": "#natspec-tag-return" + }, + { + "include": "#natspec-tag-custom" + }, + { + "include": "#natspec-tag-inheritdoc" + } + ] + }, + "natspec-tag-title": { + "match": "(@title)\\b", + "name": "storage.type.title.natspec" + }, + "natspec-tag-author": { + "match": "(@author)\\b", + "name": "storage.type.author.natspec" + }, + "natspec-tag-notice": { + "match": "(@notice)\\b", + "name": "storage.type.dev.natspec" + }, + "natspec-tag-custom": { + "match": "(@custom:\\w*)\\b", + "name": "storage.type.dev.natspec" + }, + "natspec-tag-inheritdoc": { + "match": "(@inheritdoc)\\b", + "name": "storage.type.author.natspec" + }, + "natspec-tag-dev": { + "match": "(@dev)\\b", + "name": "storage.type.dev.natspec" + }, + "natspec-tag-param": { + "match": "(@param)(\\s+([A-Za-z_]\\w*))?\\b", + "captures": { + "1": { + "name": "storage.type.param.natspec" + }, + "3": { + "name": "variable.other.natspec" + } + } + }, + "natspec-tag-return": { + "match": "(@return)(\\s+([A-Za-z_]\\w*))?\\b", + "captures": { + "1": { + "name": "storage.type.return.natspec" + }, + "3": { + "name": "variable.other.natspec" + } + } + }, + "comment": { + "patterns": [ + { + "include": "#comment-line" + }, + { + "include": "#comment-block" + } + ] + }, + "comment-todo": { + "match": "(?i)\\b(FIXME|TODO|CHANGED|XXX|IDEA|HACK|NOTE|REVIEW|NB|BUG|QUESTION|COMBAK|TEMP|SUPPRESS|LINT|\\w+-disable|\\w+-suppress)\\b(?-i)", + "name": "keyword.comment.todo" + }, + "comment-line": { + "begin": "(?<!tp:)//", + "end": "$", + "name": "comment.line", + "patterns": [ + { + "include": "#comment-todo" + } + ] + }, + "comment-block": { + "begin": "/\\*", + "end": "\\*/", + "name": "comment.block", + "patterns": [ + { + "include": "#comment-todo" + } + ] + }, + "operator": { + "patterns": [ + { + "include": "#operator-logic" + }, + { + "include": "#operator-mapping" + }, + { + "include": "#operator-arithmetic" + }, + { + "include": "#operator-binary" + }, + { + "include": "#operator-assignment" + } + ] + }, + "operator-logic": { + "match": "(==|\\!=|<(?!<)|<=|>(?!>)|>=|\\&\\&|\\|\\||\\:(?!=)|\\?|\\!)", + "name": "keyword.operator.logic" + }, + "operator-mapping": { + "match": "(=>)", + "name": "keyword.operator.mapping" + }, + "operator-arithmetic": { + "match": "(\\+|\\-|\\/|\\*)", + "name": "keyword.operator.arithmetic" + }, + "operator-binary": { + "match": "(\\^|\\&|\\||<<|>>)", + "name": "keyword.operator.binary" + }, + "operator-assignment": { + "match": "(\\:?=)", + "name": "keyword.operator.assignment" + }, + "control": { + "patterns": [ + { + "include": "#control-flow" + }, + { + "include": "#control-using" + }, + { + "include": "#control-import" + }, + { + "include": "#control-pragma" + }, + { + "include": "#control-underscore" + }, + { + "include": "#control-unchecked" + }, + { + "include": "#control-other" + } + ] + }, + "control-flow": { + "patterns": [ + { + "match": "\\b(if|else|for|while|do|break|continue|try|catch|finally|throw|return|global)\\b", + "name": "keyword.control.flow" + }, + { + "begin": "\\b(returns)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.return" + } + }, + "end": "(?=\\))", + "patterns": [ + { + "include": "#declaration-function-parameters" + } + ] + } + ] + }, + "control-using": { + "patterns": [ + { + "match": "\\b(using)\\b\\s+\\b([A-Za-z\\d_]+)\\b\\s+\\b(for)\\b\\s+\\b([A-Za-z\\d_]+)", + "captures": { + "1": { + "name": "keyword.control.using" + }, + "2": { + "name": "entity.name.type.library" + }, + "3": { + "name": "keyword.control.for" + }, + "4": { + "name": "entity.name.type" + } + } + }, + { + "match": "\\b(using)\\b", + "name": "keyword.control.using" + } + ] + }, + "control-import": { + "patterns": [ + { + "begin": "\\b(import)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.import" + } + }, + "end": "(?=\\;)", + "patterns": [ + { + "begin": "((?=\\{))", + "end": "((?=\\}))", + "patterns": [ + { + "match": "\\b(\\w+)\\b", + "name": "entity.name.type.interface" + } + ] + }, + { + "match": "\\b(from)\\b", + "name": "keyword.control.import.from" + }, + { + "include": "#string" + }, + { + "include": "#punctuation" + } + ] + }, + { + "match": "\\b(import)\\b", + "name": "keyword.control.import" + } + ] + }, + "control-unchecked": { + "match": "\\b(unchecked)\\b", + "name": "keyword.control.unchecked" + }, + "control-pragma": { + "match": "\\b(pragma)(?:\\s+([A-Za-z_]\\w+)\\s+([^\\s]+))?\\b", + "captures": { + "1": { + "name": "keyword.control.pragma" + }, + "2": { + "name": "entity.name.tag.pragma" + }, + "3": { + "name": "constant.other.pragma" + } + } + }, + "control-underscore": { + "match": "\\b(_)\\b", + "name": "constant.other.underscore" + }, + "control-other": { + "match": "\\b(new|delete|emit)\\b", + "name": "keyword.control" + }, + "constant": { + "patterns": [ + { + "include": "#constant-boolean" + }, + { + "include": "#constant-time" + }, + { + "include": "#constant-currency" + } + ] + }, + "constant-boolean": { + "match": "\\b(true|false)\\b", + "name": "constant.language.boolean" + }, + "constant-time": { + "match": "\\b(seconds|minutes|hours|days|weeks|years)\\b", + "name": "constant.language.time" + }, + "constant-currency": { + "match": "\\b(ether|wei|gwei|finney|szabo)\\b", + "name": "constant.language.currency" + }, + "number": { + "patterns": [ + { + "include": "#number-decimal" + }, + { + "include": "#number-hex" + }, + { + "include": "#number-scientific" + } + ] + }, + "number-decimal": { + "match": "\\b([0-9_]+(\\.[0-9_]+)?)\\b", + "name": "constant.numeric.decimal" + }, + "number-hex": { + "match": "\\b(0[xX][a-fA-F0-9]+)\\b", + "name": "constant.numeric.hexadecimal" + }, + "number-scientific": { + "match": "\\b(?:0\\.(?:0[0-9]|[0-9][0-9_]?)|[0-9][0-9_]*(?:\\.\\d{1,2})?)(?:e[+-]?[0-9_]+)?", + "name": "constant.numeric.scientific" + }, + "string": { + "patterns": [ + { + "match": "\\\"(?:\\\\\"|[^\\\"])*\\\"", + "name": "string.quoted.double" + }, + { + "match": "\\'(?:\\\\'|[^\\'])*\\'", + "name": "string.quoted.single" + } + ] + }, + "primitive": { + "patterns": [ + { + "include": "#number-decimal" + }, + { + "include": "#number-hex" + }, + { + "include": "#number-scientific" + }, + { + "include": "#string" + } + ] + }, + "type-primitive": { + "patterns": [ + { + "begin": "\\b(address|string\\d*|bytes\\d*|int\\d*|uint\\d*|bool|hash\\d*)\\b(?:\\[\\])(\\()", + "beginCaptures": { + "1": { + "name": "support.type.primitive" + } + }, + "end": "(\\))", + "patterns": [ + { + "include": "#primitive" + }, + { + "include": "#punctuation" + }, + { + "include": "#global" + }, + { + "include": "#variable" + } + ] + }, + { + "match": "\\b(address|string\\d*|bytes\\d*|int\\d*|uint\\d*|bool|hash\\d*)\\b", + "name": "support.type.primitive" + } + ] + }, + "global": { + "patterns": [ + { + "include": "#global-variables" + }, + { + "include": "#global-functions" + } + ] + }, + "global-variables": { + "patterns": [ + { + "match": "\\b(this)\\b", + "name": "variable.language.this" + }, + { + "match": "\\b(super)\\b", + "name": "variable.language.super" + }, + { + "match": "\\b(abi)\\b", + "name": "variable.language.builtin.abi" + }, + { + "match": "\\b(msg\\.sender|msg|block|tx|now)\\b", + "name": "variable.language.transaction" + }, + { + "match": "\\b(tx\\.origin|tx\\.gasprice|msg\\.data|msg\\.sig|msg\\.value)\\b", + "name": "variable.language.transaction" + } + ] + }, + "global-functions": { + "patterns": [ + { + "match": "\\b(require|assert|revert)\\b", + "name": "keyword.control.exceptions" + }, + { + "match": "\\b(selfdestruct|suicide)\\b", + "name": "keyword.control.contract" + }, + { + "match": "\\b(addmod|mulmod|keccak256|sha256|sha3|ripemd160|ecrecover)\\b", + "name": "support.function.math" + }, + { + "match": "\\b(unicode)\\b", + "name": "support.function.string" + }, + { + "match": "\\b(blockhash|gasleft)\\b", + "name": "variable.language.transaction" + }, + { + "match": "\\b(type)\\b", + "name": "variable.language.type" + } + ] + }, + "type-modifier-access": { + "match": "\\b(internal|external|private|public)\\b", + "name": "storage.type.modifier.access" + }, + "type-modifier-payable": { + "match": "\\b(nonpayable|payable)\\b", + "name": "storage.type.modifier.payable" + }, + "type-modifier-constant": { + "match": "\\b(constant)\\b", + "name": "storage.type.modifier.readonly" + }, + "type-modifier-immutable": { + "match": "\\b(immutable)\\b", + "name": "storage.type.modifier.readonly" + }, + "type-modifier-extended-scope": { + "match": "\\b(pure|view|inherited|indexed|storage|memory|virtual|calldata|override|abstract)\\b", + "name": "storage.type.modifier.extendedscope" + }, + "variable": { + "patterns": [ + { + "match": "\\b(\\_\\w+)\\b", + "captures": { + "1": { + "name": "variable.parameter.function" + } + } + }, + { + "match": "(?:\\.)(\\w+)\\b", + "captures": { + "1": { + "name": "support.variable.property" + } + } + }, + { + "match": "\\b(\\w+)\\b", + "captures": { + "1": { + "name": "variable.parameter.other" + } + } + } + ] + }, + "modifier-call": { + "patterns": [ + { + "include": "#function-call" + }, + { + "match": "\\b(\\w+)\\b", + "name": "entity.name.function.modifier" + } + ] + }, + "declaration": { + "patterns": [ + { + "include": "#declaration-contract" + }, + { + "include": "#declaration-userType" + }, + { + "include": "#declaration-interface" + }, + { + "include": "#declaration-library" + }, + { + "include": "#declaration-function" + }, + { + "include": "#declaration-modifier" + }, + { + "include": "#declaration-constructor" + }, + { + "include": "#declaration-event" + }, + { + "include": "#declaration-storage" + }, + { + "include": "#declaration-error" + } + ] + }, + "declaration-storage-field": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#control" + }, + { + "include": "#type-primitive" + }, + { + "include": "#type-modifier-access" + }, + { + "include": "#type-modifier-immutable" + }, + { + "include": "#type-modifier-extend-scope" + }, + { + "include": "#type-modifier-payable" + }, + { + "include": "#type-modifier-constant" + }, + { + "include": "#primitive" + }, + { + "include": "#constant" + }, + { + "include": "#operator" + }, + { + "include": "#punctuation" + } + ] + }, + "declaration-storage": { + "patterns": [ + { + "include": "#declaration-storage-mapping" + }, + { + "include": "#declaration-struct" + }, + { + "include": "#declaration-enum" + }, + { + "include": "#declaration-storage-field" + } + ] + }, + "declaration-userType": { + "match": "\\b(type)\\b\\s+(\\w+)\\b\\s+\\b(is)\\b", + "captures": { + "1": { + "name": "storage.type.userType" + }, + "2": { + "name": "entity.name.type.userType" + }, + "3": { + "name": "storage.modifier.is" + } + } + }, + "declaration-contract": { + "patterns": [ + { + "begin": "\\b(contract)\\b\\s+(\\w+)\\b\\s+\\b(is)\\b\\s+", + "end": "(?=\\{)", + "beginCaptures": { + "1": { + "name": "storage.type.contract" + }, + "2": { + "name": "entity.name.type.contract" + }, + "3": { + "name": "storage.modifier.is" + } + }, + "patterns": [ + { + "match": "\\b(\\w+)\\b", + "name": "entity.name.type.contract.extend" + } + ] + }, + { + "match": "\\b(contract)(\\s+([A-Za-z_]\\w*))?\\b", + "captures": { + "1": { + "name": "storage.type.contract" + }, + "2": { + "name": "entity.name.type.contract" + } + } + } + ] + }, + "declaration-interface": { + "patterns": [ + { + "begin": "\\b(interface)\\b\\s+(\\w+)\\b\\s+\\b(is)\\b\\s+", + "end": "(?=\\{)", + "beginCaptures": { + "1": { + "name": "storage.type.interface" + }, + "2": { + "name": "entity.name.type.interface" + }, + "3": { + "name": "storage.modifier.is" + } + }, + "patterns": [ + { + "match": "\\b(\\w+)\\b", + "name": "entity.name.type.interface.extend" + } + ] + }, + { + "match": "\\b(interface)(\\s+([A-Za-z_]\\w*))?\\b", + "captures": { + "1": { + "name": "storage.type.interface" + }, + "2": { + "name": "entity.name.type.interface" + } + } + } + ] + }, + "declaration-library": { + "match": "\\b(library)(\\s+([A-Za-z_]\\w*))?\\b", + "captures": { + "1": { + "name": "storage.type.library" + }, + "3": { + "name": "entity.name.type.library" + } + } + }, + "declaration-struct": { + "patterns": [ + { + "match": "\\b(struct)(\\s+([A-Za-z_]\\w*))?\\b", + "captures": { + "1": { + "name": "storage.type.struct" + }, + "3": { + "name": "entity.name.type.struct" + } + } + }, + { + "begin": "\\b(struct)\\b\\s*(\\w+)?\\b\\s*(?=\\{)", + "beginCaptures": { + "1": { + "name": "storage.type.struct" + }, + "2": { + "name": "entity.name.type.struct" + } + }, + "end": "(?=\\})", + "patterns": [ + { + "include": "#type-primitive" + }, + { + "include": "#variable" + }, + { + "include": "#punctuation" + }, + { + "include": "#comment" + } + ] + } + ] + }, + "declaration-event": { + "patterns": [ + { + "begin": "\\b(event)\\b(?:\\s+(\\w+)\\b)?", + "end": "(?=\\))", + "beginCaptures": { + "1": { + "name": "storage.type.event" + }, + "2": { + "name": "entity.name.type.event" + } + }, + "patterns": [ + { + "include": "#type-primitive" + }, + { + "match": "\\b(?:(indexed)\\s)?(\\w+)(?:,\\s*|)", + "captures": { + "1": { + "name": "storage.type.modifier.indexed" + }, + "2": { + "name": "variable.parameter.event" + } + } + }, + { + "include": "#punctuation" + } + ] + }, + { + "match": "\\b(event)(\\s+([A-Za-z_]\\w*))?\\b", + "captures": { + "1": { + "name": "storage.type.event" + }, + "3": { + "name": "entity.name.type.event" + } + } + } + ] + }, + "declaration-constructor": { + "patterns": [ + { + "begin": "\\b(constructor)\\b", + "beginCaptures": { + "1": { + "name": "storage.type.constructor" + } + }, + "end": "(?=\\{)", + "patterns": [ + { + "begin": "\\G\\s*(?=\\()", + "end": "(?=\\))", + "patterns": [ + { + "include": "#declaration-function-parameters" + } + ] + }, + { + "begin": "(?<=\\))", + "end": "(?=\\{)", + "patterns": [ + { + "include": "#type-modifier-access" + }, + { + "include": "#function-call" + } + ] + } + ] + }, + { + "match": "\\b(constructor)\\b", + "captures": { + "1": { + "name": "storage.type.constructor" + } + } + } + ] + }, + "declaration-enum": { + "patterns": [ + { + "begin": "\\b(enum)\\s+(\\w+)\\b", + "beginCaptures": { + "1": { + "name": "storage.type.enum" + }, + "2": { + "name": "entity.name.type.enum" + } + }, + "end": "(?=\\})", + "patterns": [ + { + "match": "\\b(\\w+)\\b", + "name": "variable.other.enummember" + }, + { + "include": "#punctuation" + }, + { + "include": "#comment" + } + ] + }, + { + "match": "\\b(enum)(\\s+([A-Za-z_]\\w*))?\\b", + "captures": { + "1": { + "name": "storage.type.enum" + }, + "3": { + "name": "entity.name.type.enum" + } + } + } + ] + }, + "declaration-function-parameters": { + "begin": "\\G\\s*(?=\\()", + "end": "(?=\\))", + "patterns": [ + { + "include": "#type-primitive" + }, + { + "include": "#type-modifier-extended-scope" + }, + { + "match": "\\b([A-Z]\\w*)\\b", + "captures": { + "1": { + "name": "storage.type.struct" + } + } + }, + { + "include": "#variable" + }, + { + "include": "#punctuation" + }, + { + "include": "#comment" + } + ] + }, + "declaration-function": { + "patterns": [ + { + "begin": "\\b(function)\\s+(\\w+)\\b", + "beginCaptures": { + "1": { + "name": "storage.type.function" + }, + "2": { + "name": "entity.name.function" + } + }, + "end": "(?=\\{|;)", + "patterns": [ + { + "include": "#natspec" + }, + { + "include": "#global" + }, + { + "include": "#declaration-function-parameters" + }, + { + "include": "#type-modifier-access" + }, + { + "include": "#type-modifier-payable" + }, + { + "include": "#type-modifier-immutable" + }, + { + "include": "#type-modifier-extended-scope" + }, + { + "include": "#control-flow" + }, + { + "include": "#function-call" + }, + { + "include": "#modifier-call" + }, + { + "include": "#punctuation" + } + ] + }, + { + "match": "\\b(function)\\s+([A-Za-z_]\\w*)\\b", + "captures": { + "1": { + "name": "storage.type.function" + }, + "2": { + "name": "entity.name.function" + } + } + } + ] + }, + "declaration-modifier": { + "patterns": [ + { + "begin": "\\b(modifier)\\b\\s*(\\w+)", + "beginCaptures": { + "1": { + "name": "storage.type.function.modifier" + }, + "2": { + "name": "entity.name.function.modifier" + } + }, + "end": "(?=\\{)", + "patterns": [ + { + "include": "#declaration-function-parameters" + }, + { + "begin": "(?<=\\))", + "end": "(?=\\{)", + "patterns": [ + { + "include": "#declaration-function-parameters" + }, + { + "include": "#type-modifier-access" + }, + { + "include": "#type-modifier-payable" + }, + { + "include": "#type-modifier-immutable" + }, + { + "include": "#type-modifier-extended-scope" + }, + { + "include": "#function-call" + }, + { + "include": "#modifier-call" + }, + { + "include": "#control-flow" + } + ] + } + ] + }, + { + "match": "\\b(modifier)(\\s+([A-Za-z_]\\w*))?\\b", + "captures": { + "1": { + "name": "storage.type.modifier" + }, + "3": { + "name": "entity.name.function" + } + } + } + ] + }, + "declaration-storage-mapping": { + "patterns": [ + { + "begin": "\\b(mapping)\\b", + "beginCaptures": { + "1": { + "name": "storage.type.mapping" + } + }, + "end": "(?=\\))", + "patterns": [ + { + "include": "#declaration-storage-mapping" + }, + { + "include": "#type-primitive" + }, + { + "include": "#punctuation" + }, + { + "include": "#operator" + } + ] + }, + { + "match": "\\b(mapping)\\b", + "name": "storage.type.mapping" + } + ] + }, + "declaration-error": { + "match": "\\b(error)(\\s+([A-Za-z_]\\w*))?\\b", + "captures": { + "1": { + "name": "storage.type.error" + }, + "3": { + "name": "entity.name.type.error" + } + } + }, + "function-call": { + "match": "\\b([A-Za-z_]\\w*)\\s*(\\()", + "captures": { + "1": { + "name": "entity.name.function" + }, + "2": { + "name": "punctuation.parameters.begin" + } + } + }, + "assembly": { + "patterns": [ + { + "match": "\\b(assembly)\\b", + "name": "keyword.control.assembly" + }, + { + "match": "\\b(let)\\b", + "name": "storage.type.assembly" + } + ] + }, + "punctuation": { + "patterns": [ + { + "match": ";", + "name": "punctuation.terminator.statement" + }, + { + "match": "\\.", + "name": "punctuation.accessor" + }, + { + "match": ",", + "name": "punctuation.separator" + }, + { + "match": "\\{", + "name": "punctuation.brace.curly.begin" + }, + { + "match": "\\}", + "name": "punctuation.brace.curly.end" + }, + { + "match": "\\[", + "name": "punctuation.brace.square.begin" + }, + { + "match": "\\]", + "name": "punctuation.brace.square.end" + }, + { + "match": "\\(", + "name": "punctuation.parameters.begin" + }, + { + "match": "\\)", + "name": "punctuation.parameters.end" + } + ] + } + }, + "scopeName": "source.solidity", + "uuid": "ad87d2cd-8575-4afe-984e-9421a3788933" +} diff --git a/docs/shiki/languages/sparql.tmLanguage.json b/docs/shiki/languages/sparql.tmLanguage.json new file mode 100644 index 00000000..b40e5542 --- /dev/null +++ b/docs/shiki/languages/sparql.tmLanguage.json @@ -0,0 +1,40 @@ +{ + "name": "sparql", + "scopeName": "source.sparql", + "fileTypes": ["rq", "sparql", "sq"], + "patterns": [ + { + "include": "source.turtle" + }, + { + "include": "#query-keyword-operators" + }, + { + "include": "#functions" + }, + { + "include": "#variables" + }, + { + "include": "#expression-operators" + } + ], + "repository": { + "query-keyword-operators": { + "name": "keyword.control.sparql", + "match": "\\b(?i:define|select|distinct|reduced|from|named|construct|ask|describe|where|graph|having|bind|as|filter|optional|union|order|by|group|limit|offset|values|insert data|delete data|with|delete|insert|clear|silent|default|all|create|drop|copy|move|add|to|using|service|not exists|exists|not in|in|minus|load)\\b" + }, + "functions": { + "name": "support.function.sparql", + "match": "\\b(?i:concat|regex|asc|desc|bound|isiri|isuri|isblank|isliteral|isnumeric|str|lang|datatype|sameterm|langmatches|avg|count|group_concat|separator|max|min|sample|sum|iri|uri|bnode|strdt|uuid|struuid|strlang|strlen|substr|ucase|lcase|strstarts|strends|contains|strbefore|strafter|encode_for_uri|replace|abs|round|ceil|floor|rand|now|year|month|day|hours|minutes|seconds|timezone|tz|md5|sha1|sha256|sha384|sha512|coalesce|if)\\b" + }, + "variables": { + "name": "constant.variable.sparql.turtle", + "match": "(?<!\\w)[?$]\\w+" + }, + "expression-operators": { + "name": "support.class.sparql", + "match": "(?:\\|\\||&&|=|!=|<|>|<=|>=|\\*|/|\\+|-|\\||\\^|\\?|\\!)" + } + } +} diff --git a/docs/shiki/languages/splunk.tmLanguage.json b/docs/shiki/languages/splunk.tmLanguage.json new file mode 100644 index 00000000..745ef4e2 --- /dev/null +++ b/docs/shiki/languages/splunk.tmLanguage.json @@ -0,0 +1,87 @@ +{ + "fileTypes": ["splunk", "spl"], + "name": "splunk", + "patterns": [ + { + "comment": "Splunk Built-in functions", + "match": "(?<=(\\||\\[))([\\s]*)\\b(abstract|accum|addcoltotals|addinfo|addtotals|analyzefields|anomalies|anomalousvalue|append|appendcols|appendpipe|arules|associate|audit|autoregress|bucket|bucketdir|chart|cluster|collect|concurrency|contingency|convert|correlate|crawl|datamodel|dbinspect|dbxquery|dbxlookup|dedup|delete|delta|diff|dispatch|erex|eval|eventcount|eventstats|extract|fieldformat|fields|fieldsummary|file|filldown|fillnull|findtypes|folderize|foreach|format|from|gauge|gentimes|geostats|head|highlight|history|input|inputcsv|inputlookup|iplocation|join|kmeans|kvform|loadjob|localize|localop|lookup|makecontinuous|makemv|makeresults|map|metadata|metasearch|multikv|multisearch|mvcombine|mvexpand|nomv|outlier|outputcsv|outputlookup|outputtext|overlap|pivot|predict|rangemap|rare|regex|relevancy|reltime|rename|replace|rest|return|reverse|rex|rtorder|run|savedsearch|script|scrub|search|searchtxn|selfjoin|sendemail|set|setfields|sichart|sirare|sistats|sitimechart|sitop|sort|spath|stats|strcat|streamstats|table|tags|tail|timechart|top|transaction|transpose|trendline|tscollect|tstats|typeahead|typelearner|typer|uniq|untable|where|x11|xmlkv|xmlunescape|xpath|xyseries)\\b(?=[\\s])", + "name": "support.class.splunk_search" + }, + { + "comment": "Splunk Eval functions", + "match": "\\b(abs|acos|acosh|asin|asinh|atan|atan2|atanh|case|cidrmatch|ceiling|coalesce|commands|cos|cosh|exact|exp|floor|hypot|if|in|isbool|isint|isnotnull|isnull|isnum|isstr|len|like|ln|log|lower|ltrim|match|max|md5|min|mvappend|mvcount|mvdedup|mvfilter|mvfind|mvindex|mvjoin|mvrange|mvsort|mvzip|now|null|nullif|pi|pow|printf|random|relative_time|replace|round|rtrim|searchmatch|sha1|sha256|sha512|sigfig|sin|sinh|spath|split|sqrt|strftime|strptime|substr|tan|tanh|time|tonumber|tostring|trim|typeof|upper|urldecode|validate)(?=\\()\\b", + "name": "support.function.splunk_search" + }, + { + "comment": "Splunk Transforming functions", + "match": "\\b(avg|count|distinct_count|estdc|estdc_error|eval|max|mean|median|min|mode|percentile|range|stdev|stdevp|sum|sumsq|var|varp|first|last|list|values|earliest|earliest_time|latest|latest_time|per_day|per_hour|per_minute|per_second|rate)\\b", + "name": "support.function.splunk_search" + }, + { + "comment": "Splunk Macro Names", + "match": "(?<=\\`)[\\w]+(?=\\(|\\`)", + "name": "entity.name.function.splunk_search" + }, + { + "comment": "Digits", + "match": "\\b(\\d+)\\b", + "name": "constant.numeric.splunk_search" + }, + { + "comment": "Escape Characters", + "match": "(\\\\\\\\|\\\\\\||\\\\\\*|\\\\\\=)", + "name": "contant.character.escape.splunk_search" + }, + { + "comment": "Splunk Operators", + "match": "(\\|,)", + "name": "keyword.operator.splunk_search" + }, + { + "comment": "Splunk Language Constants", + "match": "(?i)\\b(as|by|or|and|over|where|output|outputnew)\\b|(?-i)\\b(NOT|true|false)\\b", + "name": "constant.language.splunk_search" + }, + { + "comment": "Splunk Macro Parameters", + "match": "(?<=\\(|,|[^=]\\s{300})([^\\(\\)\\\",=]+)(?=\\)|,)", + "name": "variable.parameter.splunk_search" + }, + { + "comment": "Splunk Variables", + "match": "([\\w\\.]+)(\\[\\]|\\{\\})?([\\s]*)(?=\\=)", + "name": "variable.splunk_search" + }, + { + "comment": "Comparison or assignment", + "match": "=", + "name": "keyword.operator.splunk_search" + }, + { + "begin": "(?<!\\\\)\"", + "end": "(?<!\\\\)\"", + "name": "string.quoted.double.splunk_search" + }, + { + "begin": "(?<!\\\\)'", + "end": "(?<!\\\\)'", + "name": "string.quoted.single.splunk_search" + }, + { + "begin": "query=\\\"", + "end": "(?<!\\\\)\"", + "name": "meta.embedded.block.sql" + }, + { + "begin": "(?<!\\\\)```", + "end": "(?<!\\\\)```", + "name": "comment.block.splunk_search" + }, + { + "begin": "`comment\\(", + "end": "\\)`", + "name": "comment.block.splunk_search" + } + ], + "scopeName": "source.splunk_search" +} diff --git a/docs/shiki/languages/sql.tmLanguage.json b/docs/shiki/languages/sql.tmLanguage.json new file mode 100644 index 00000000..0e6bb0df --- /dev/null +++ b/docs/shiki/languages/sql.tmLanguage.json @@ -0,0 +1,635 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/microsoft/vscode-mssql/blob/master/syntaxes/SQL.plist", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/microsoft/vscode-mssql/commit/9cb3529a978ddf599bf5bdd228f21bbcfe2914f5", + "name": "sql", + "scopeName": "source.sql", + "patterns": [ + { + "match": "((?<!@)@)\\b(\\w+)\\b", + "name": "text.variable" + }, + { + "match": "(\\[)[^\\]]*(\\])", + "name": "text.bracketed" + }, + { + "include": "#comments" + }, + { + "captures": { + "1": { + "name": "keyword.other.create.sql" + }, + "2": { + "name": "keyword.other.sql" + }, + "5": { + "name": "entity.name.function.sql" + } + }, + "match": "(?i:^\\s*(create(?:\\s+or\\s+replace)?)\\s+(aggregate|conversion|database|domain|function|group|(unique\\s+)?index|language|operator class|operator|rule|schema|sequence|table|tablespace|trigger|type|user|view)\\s+)(['\"`]?)(\\w+)\\4", + "name": "meta.create.sql" + }, + { + "captures": { + "1": { + "name": "keyword.other.create.sql" + }, + "2": { + "name": "keyword.other.sql" + } + }, + "match": "(?i:^\\s*(drop)\\s+(aggregate|conversion|database|domain|function|group|index|language|operator class|operator|rule|schema|sequence|table|tablespace|trigger|type|user|view))", + "name": "meta.drop.sql" + }, + { + "captures": { + "1": { + "name": "keyword.other.create.sql" + }, + "2": { + "name": "keyword.other.table.sql" + }, + "3": { + "name": "entity.name.function.sql" + }, + "4": { + "name": "keyword.other.cascade.sql" + } + }, + "match": "(?i:\\s*(drop)\\s+(table)\\s+(\\w+)(\\s+cascade)?\\b)", + "name": "meta.drop.sql" + }, + { + "captures": { + "1": { + "name": "keyword.other.create.sql" + }, + "2": { + "name": "keyword.other.table.sql" + } + }, + "match": "(?i:^\\s*(alter)\\s+(aggregate|conversion|database|domain|function|group|index|language|operator class|operator|proc(edure)?|rule|schema|sequence|table|tablespace|trigger|type|user|view)\\s+)", + "name": "meta.alter.sql" + }, + { + "captures": { + "1": { + "name": "storage.type.sql" + }, + "2": { + "name": "storage.type.sql" + }, + "3": { + "name": "constant.numeric.sql" + }, + "4": { + "name": "storage.type.sql" + }, + "5": { + "name": "constant.numeric.sql" + }, + "6": { + "name": "storage.type.sql" + }, + "7": { + "name": "constant.numeric.sql" + }, + "8": { + "name": "constant.numeric.sql" + }, + "9": { + "name": "storage.type.sql" + }, + "10": { + "name": "constant.numeric.sql" + }, + "11": { + "name": "storage.type.sql" + }, + "12": { + "name": "storage.type.sql" + }, + "13": { + "name": "storage.type.sql" + }, + "14": { + "name": "constant.numeric.sql" + }, + "15": { + "name": "storage.type.sql" + } + }, + "match": "(?xi)\n\n\t\t\t\t# normal stuff, capture 1\n\t\t\t\t \\b(bigint|bigserial|bit|boolean|box|bytea|cidr|circle|date|double\\sprecision|inet|int|integer|line|lseg|macaddr|money|oid|path|point|polygon|real|serial|smallint|sysdate|text)\\b\n\n\t\t\t\t# numeric suffix, capture 2 + 3i\n\t\t\t\t|\\b(bit\\svarying|character\\s(?:varying)?|tinyint|var\\schar|float|interval)\\((\\d+)\\)\n\n\t\t\t\t# optional numeric suffix, capture 4 + 5i\n\t\t\t\t|\\b(char|number|varchar\\d?)\\b(?:\\((\\d+)\\))?\n\n\t\t\t\t# special case, capture 6 + 7i + 8i\n\t\t\t\t|\\b(numeric|decimal)\\b(?:\\((\\d+),(\\d+)\\))?\n\n\t\t\t\t# special case, captures 9, 10i, 11\n\t\t\t\t|\\b(times?)\\b(?:\\((\\d+)\\))?(\\swith(?:out)?\\stime\\szone\\b)?\n\n\t\t\t\t# special case, captures 12, 13, 14i, 15\n\t\t\t\t|\\b(timestamp)(?:(s|tz))?\\b(?:\\((\\d+)\\))?(\\s(with|without)\\stime\\szone\\b)?\n\n\t\t\t" + }, + { + "match": "(?i:\\b((?:primary|foreign)\\s+key|references|on\\sdelete(\\s+cascade)?|nocheck|check|constraint|collate|default)\\b)", + "name": "storage.modifier.sql" + }, + { + "match": "\\b\\d+\\b", + "name": "constant.numeric.sql" + }, + { + "match": "(?i:\\b(select(\\s+(all|distinct))?|insert\\s+(ignore\\s+)?into|update|delete|from|set|where|group\\s+by|or|like|and|union(\\s+all)?|having|order\\s+by|limit|cross\\s+join|join|straight_join|(inner|(left|right|full)(\\s+outer)?)\\s+join|natural(\\s+(inner|(left|right|full)(\\s+outer)?))?\\s+join)\\b)", + "name": "keyword.other.DML.sql" + }, + { + "match": "(?i:\\b(on|off|((is\\s+)?not\\s+)?null)\\b)", + "name": "keyword.other.DDL.create.II.sql" + }, + { + "match": "(?i:\\bvalues\\b)", + "name": "keyword.other.DML.II.sql" + }, + { + "match": "(?i:\\b(begin(\\s+work)?|start\\s+transaction|commit(\\s+work)?|rollback(\\s+work)?)\\b)", + "name": "keyword.other.LUW.sql" + }, + { + "match": "(?i:\\b(grant(\\swith\\sgrant\\soption)?|revoke)\\b)", + "name": "keyword.other.authorization.sql" + }, + { + "match": "(?i:\\bin\\b)", + "name": "keyword.other.data-integrity.sql" + }, + { + "match": "(?i:^\\s*(comment\\s+on\\s+(table|column|aggregate|constraint|database|domain|function|index|operator|rule|schema|sequence|trigger|type|view))\\s+.*?\\s+(is)\\s+)", + "name": "keyword.other.object-comments.sql" + }, + { + "match": "(?i)\\bAS\\b", + "name": "keyword.other.alias.sql" + }, + { + "match": "(?i)\\b(DESC|ASC)\\b", + "name": "keyword.other.order.sql" + }, + { + "match": "\\*", + "name": "keyword.operator.star.sql" + }, + { + "match": "[!<>]?=|<>|<|>", + "name": "keyword.operator.comparison.sql" + }, + { + "match": "-|\\+|/", + "name": "keyword.operator.math.sql" + }, + { + "match": "\\|\\|", + "name": "keyword.operator.concatenator.sql" + }, + { + "match": "(?i)\\b(approx_count_distinct|approx_percentile_cont|approx_percentile_disc|avg|checksum_agg|count|count_big|group|grouping|grouping_id|max|min|sum|stdev|stdevp|var|varp)\\b\\s*\\(", + "captures": { + "1": { + "name": "support.function.aggregate.sql" + } + } + }, + { + "match": "(?i)\\b(cume_dist|first_value|lag|last_value|lead|percent_rank|percentile_cont|percentile_disc)\\b\\s*\\(", + "captures": { + "1": { + "name": "support.function.analytic.sql" + } + } + }, + { + "match": "(?i)\\b(bit_count|get_bit|left_shift|right_shift|set_bit)\\b\\s*\\(", + "captures": { + "1": { + "name": "support.function.bitmanipulation.sql" + } + } + }, + { + "match": "(?i)\\b(cast|convert|parse|try_cast|try_convert|try_parse)\\b\\s*\\(", + "captures": { + "1": { + "name": "support.function.conversion.sql" + } + } + }, + { + "match": "(?i)\\b(collationproperty|tertiary_weights)\\b\\s*\\(", + "captures": { + "1": { + "name": "support.function.collation.sql" + } + } + }, + { + "match": "(?i)\\b(asymkey_id|asymkeyproperty|certproperty|cert_id|crypt_gen_random|decryptbyasymkey|decryptbycert|decryptbykey|decryptbykeyautoasymkey|decryptbykeyautocert|decryptbypassphrase|encryptbyasymkey|encryptbycert|encryptbykey|encryptbypassphrase|hashbytes|is_objectsigned|key_guid|key_id|key_name|signbyasymkey|signbycert|symkeyproperty|verifysignedbycert|verifysignedbyasymkey)\\b\\s*\\(", + "captures": { + "1": { + "name": "support.function.cryptographic.sql" + } + } + }, + { + "match": "(?i)\\b(cursor_status)\\b\\s*\\(", + "captures": { + "1": { + "name": "support.function.cursor.sql" + } + } + }, + { + "match": "(?i)\\b(sysdatetime|sysdatetimeoffset|sysutcdatetime|current_time(stamp)?|getdate|getutcdate|datename|datepart|day|month|year|datefromparts|datetime2fromparts|datetimefromparts|datetimeoffsetfromparts|smalldatetimefromparts|timefromparts|datediff|dateadd|datetrunc|eomonth|switchoffset|todatetimeoffset|isdate|date_bucket)\\b\\s*\\(", + "captures": { + "1": { + "name": "support.function.datetime.sql" + } + } + }, + { + "match": "(?i)\\b(datalength|ident_current|ident_incr|ident_seed|identity|sql_variant_property)\\b\\s*\\(", + "captures": { + "1": { + "name": "support.function.datatype.sql" + } + } + }, + { + "match": "(?i)\\b(coalesce|nullif)\\b\\s*\\(", + "captures": { + "1": { + "name": "support.function.expression.sql" + } + } + }, + { + "match": "(?<!@)@@(?i)\\b(cursor_rows|connections|cpu_busy|datefirst|dbts|error|fetch_status|identity|idle|io_busy|langid|language|lock_timeout|max_connections|max_precision|nestlevel|options|packet_errors|pack_received|pack_sent|procid|remserver|rowcount|servername|servicename|spid|textsize|timeticks|total_errors|total_read|total_write|trancount|version)\\b\\s*\\(", + "captures": { + "1": { + "name": "support.function.globalvar.sql" + } + } + }, + { + "match": "(?i)\\b(json|isjson|json_object|json_array|json_value|json_query|json_modify|json_path_exists)\\b\\s*\\(", + "captures": { + "1": { + "name": "support.function.json.sql" + } + } + }, + { + "match": "(?i)\\b(choose|iif|greatest|least)\\b\\s*\\(", + "captures": { + "1": { + "name": "support.function.logical.sql" + } + } + }, + { + "match": "(?i)\\b(abs|acos|asin|atan|atn2|ceiling|cos|cot|degrees|exp|floor|log|log10|pi|power|radians|rand|round|sign|sin|sqrt|square|tan)\\b\\s*\\(", + "captures": { + "1": { + "name": "support.function.mathematical.sql" + } + } + }, + { + "match": "(?i)\\b(app_name|applock_mode|applock_test|assemblyproperty|col_length|col_name|columnproperty|database_principal_id|databasepropertyex|db_id|db_name|file_id|file_idex|file_name|filegroup_id|filegroup_name|filegroupproperty|fileproperty|fulltextcatalogproperty|fulltextserviceproperty|index_col|indexkey_property|indexproperty|object_definition|object_id|object_name|object_schema_name|objectproperty|objectpropertyex|original_db_name|parsename|schema_id|schema_name|scope_identity|serverproperty|stats_date|type_id|type_name|typeproperty)\\b\\s*\\(", + "captures": { + "1": { + "name": "support.function.metadata.sql" + } + } + }, + { + "match": "(?i)\\b(rank|dense_rank|ntile|row_number)\\b\\s*\\(", + "captures": { + "1": { + "name": "support.function.ranking.sql" + } + } + }, + { + "match": "(?i)\\b(generate_series|opendatasource|openjson|openrowset|openquery|openxml|predict|string_split)\\b\\s*\\(", + "captures": { + "1": { + "name": "support.function.rowset.sql" + } + } + }, + { + "match": "(?i)\\b(certencoded|certprivatekey|current_user|database_principal_id|has_perms_by_name|is_member|is_rolemember|is_srvrolemember|original_login|permissions|pwdcompare|pwdencrypt|schema_id|schema_name|session_user|suser_id|suser_sid|suser_sname|system_user|suser_name|user_id|user_name)\\b\\s*\\(", + "captures": { + "1": { + "name": "support.function.security.sql" + } + } + }, + { + "match": "(?i)\\b(ascii|char|charindex|concat|difference|format|left|len|lower|ltrim|nchar|nodes|patindex|quotename|replace|replicate|reverse|right|rtrim|soundex|space|str|string_agg|string_escape|string_split|stuff|substring|translate|trim|unicode|upper)\\b\\s*\\(", + "captures": { + "1": { + "name": "support.function.string.sql" + } + } + }, + { + "match": "(?i)\\b(binary_checksum|checksum|compress|connectionproperty|context_info|current_request_id|current_transaction_id|decompress|error_line|error_message|error_number|error_procedure|error_severity|error_state|formatmessage|get_filestream_transaction_context|getansinull|host_id|host_name|isnull|isnumeric|min_active_rowversion|newid|newsequentialid|rowcount_big|session_context|session_id|xact_state)\\b\\s*\\(", + "captures": { + "1": { + "name": "support.function.system.sql" + } + } + }, + { + "match": "(?i)\\b(patindex|textptr|textvalid)\\b\\s*\\(", + "captures": { + "1": { + "name": "support.function.textimage.sql" + } + } + }, + { + "captures": { + "1": { + "name": "constant.other.database-name.sql" + }, + "2": { + "name": "constant.other.table-name.sql" + } + }, + "match": "(\\w+?)\\.(\\w+)" + }, + { + "include": "#strings" + }, + { + "include": "#regexps" + }, + { + "match": "\\b(?i)(abort|abort_after_wait|absent|absolute|accent_sensitivity|acceptable_cursopt|acp|action|activation|add|address|admin|aes_128|aes_192|aes_256|affinity|after|aggregate|algorithm|all_constraints|all_errormsgs|all_indexes|all_levels|all_results|allow_connections|allow_dup_row|allow_encrypted_value_modifications|allow_page_locks|allow_row_locks|allow_snapshot_isolation|alter|altercolumn|always|anonymous|ansi_defaults|ansi_null_default|ansi_null_dflt_off|ansi_null_dflt_on|ansi_nulls|ansi_padding|ansi_warnings|appdomain|append|application|apply|arithabort|arithignore|array|assembly|asymmetric|asynchronous_commit|at|atan2|atomic|attach|attach_force_rebuild_log|attach_rebuild_log|audit|auth_realm|authentication|auto|auto_cleanup|auto_close|auto_create_statistics|auto_drop|auto_shrink|auto_update_statistics|auto_update_statistics_async|automated_backup_preference|automatic|autopilot|availability|availability_mode|backup|backup_priority|base64|basic|batches|batchsize|before|between|bigint|binary|binding|bit|block|blockers|blocksize|bmk|both|break|broker|broker_instance|bucket_count|buffer|buffercount|bulk_logged|by|call|caller|card|case|catalog|catch|cert|certificate|change_retention|change_tracking|change_tracking_context|changes|char|character|character_set|check_expiration|check_policy|checkconstraints|checkindex|checkpoint|checksum|cleanup_policy|clear|clear_port|close|clustered|codepage|collection|column_encryption_key|column_master_key|columnstore|columnstore_archive|colv_80_to_100|colv_100_to_80|commit_differential_base|committed|compatibility_level|compress_all_row_groups|compression|compression_delay|concat_null_yields_null|concatenate|configuration|connect|containment|continue|continue_after_error|contract|contract_name|control|conversation|conversation_group_id|conversation_handle|copy|copy_only|count_rows|counter|create(\\\\s+or\\\\s+alter)?|credential|cross|cryptographic|cryptographic_provider|cube|cursor|cursor_close_on_commit|cursor_default|data|data_compression|data_flush_interval_seconds|data_mirroring|data_purity|data_source|database|database_name|database_snapshot|datafiletype|date_correlation_optimization|date|datefirst|dateformat|date_format|datetime|datetime2|datetimeoffset|day(s)?|db_chaining|dbid|dbidexec|dbo_only|deadlock_priority|deallocate|dec|decimal|declare|decrypt|decrypt_a|decryption|default_database|default_fulltext_language|default_language|default_logon_domain|default_schema|definition|delay|delayed_durability|delimitedtext|density_vector|dependent|des|description|desired_state|desx|differential|digest|disable|disable_broker|disable_def_cnst_chk|disabled|disk|distinct|distributed|distribution|drop|drop_existing|dts_buffers|dump|durability|dynamic|edition|elements|else|emergency|empty|enable|enable_broker|enabled|encoding|encrypted|encrypted_value|encryption|encryption_type|end|endpoint|endpoint_url|enhancedintegrity|entry|error_broker_conversations|errorfile|estimateonly|event|except|exec|executable|execute|exists|expand|expiredate|expiry_date|explicit|external|external_access|failover|failover_mode|failure_condition_level|fast|fast_forward|fastfirstrow|federated_service_account|fetch|field_terminator|fieldterminator|file|filelistonly|filegroup|filegrowth|filename|filestream|filestream_log|filestream_on|filetable|file_format|filter|first_row|fips_flagger|fire_triggers|first|firstrow|float|flush_interval_seconds|fmtonly|following|for|force|force_failover_allow_data_loss|force_service_allow_data_loss|forced|forceplan|formatfile|format_options|format_type|formsof|forward_only|free_cursors|free_exec_context|fullscan|fulltext|fulltextall|fulltextkey|function|generated|get|geography|geometry|global|go|goto|governor|guid|hadoop|hardening|hash|hashed|header_limit|headeronly|health_check_timeout|hidden|hierarchyid|histogram|histogram_steps|hits_cursors|hits_exec_context|hour(s)?|http|identity|identity_value|if|ifnull|ignore|ignore_constraints|ignore_dup_key|ignore_dup_row|ignore_triggers|image|immediate|implicit_transactions|include|include_null_values|incremental|index|inflectional|init|initiator|insensitive|insert|instead|int|integer|integrated|intersect|intermediate|interval_length_minutes|into|inuse_cursors|inuse_exec_context|io|is|isabout|iso_week|isolation|job_tracker_location|json|keep|keep_nulls|keep_replication|keepdefaults|keepfixed|keepidentity|keepnulls|kerberos|key|key_path|key_source|key_store_provider_name|keyset|kill|kilobytes_per_batch|labelonly|langid|language|last|lastrow|leading|legacy_cardinality_estimation|length|level|lifetime|lineage_80_to_100|lineage_100_to_80|listener_ip|listener_port|load|loadhistory|lob_compaction|local|local_service_name|locate|location|lock_escalation|lock_timeout|lockres|log|login|login_type|loop|manual|mark_in_use_for_removal|masked|master|matched|max_queue_readers|max_duration|max_outstanding_io_per_volume|maxdop|maxerrors|maxlength|maxtransfersize|max_plans_per_query|max_storage_size_mb|mediadescription|medianame|mediapassword|memogroup|memory_optimized|merge|message|message_forward_size|message_forwarding|microsecond|millisecond|minute(s)?|mirror_address|misses_cursors|misses_exec_context|mixed|modify|money|month|move|multi_user|must_change|name|namespace|nanosecond|native|native_compilation|nchar|ncharacter|nested_triggers|never|new_account|new_broker|newname|next|no|no_browsetable|no_checksum|no_compression|no_infomsgs|no_triggers|no_truncate|nocount|noexec|noexpand|noformat|noinit|nolock|nonatomic|nonclustered|nondurable|none|norecompute|norecovery|noreset|norewind|noskip|not|notification|nounload|now|nowait|ntext|ntlm|nulls|numeric|numeric_roundabort|nvarchar|object|objid|oem|offline|old_account|online|operation_mode|open|openjson|optimistic|option|orc|out|outer|output|over|override|owner|ownership|pad_index|page|page_checksum|page_verify|pagecount|paglock|param|parameter_sniffing|parameter_type_expansion|parameterization|parquet|parseonly|partial|partition|partner|password|path|pause|percentage|permission_set|persisted|period|physical_only|plan_forcing_mode|policy|pool|population|ports|preceding|precision|predicate|presume_abort|primary|primary_role|print|prior|priority |priority_level|private|proc(edure)?|procedure_name|profile|provider|quarter|query_capture_mode|query_governor_cost_limit|query_optimizer_hotfixes|query_store|queue|quoted_identifier|raiserror|range|raw|rcfile|rc2|rc4|rc4_128|rdbms|read_committed_snapshot|read|read_only|read_write|readcommitted|readcommittedlock|readonly|readpast|readuncommitted|readwrite|real|rebuild|receive|recmodel_70backcomp|recompile|reconfigure|recovery|recursive|recursive_triggers|redo_queue|reject_sample_value|reject_type|reject_value|relative|remote|remote_data_archive|remote_proc_transactions|remote_service_name|remove|removed_cursors|removed_exec_context|reorganize|repeat|repeatable|repeatableread|replace|replica|replicated|replnick_100_to_80|replnickarray_80_to_100|replnickarray_100_to_80|required|required_cursopt|resample|reset|resource|resource_manager_location|respect|restart|restore|restricted_user|resume|retaindays|retention|return|revert|rewind|rewindonly|returns|robust|role|rollup|root|round_robin|route|row|rowdump|rowguidcol|rowlock|row_terminator|rows|rows_per_batch|rowsets_only|rowterminator|rowversion|rsa_1024|rsa_2048|rsa_3072|rsa_4096|rsa_512|safe|safety|sample|save|scalar|schema|schemabinding|scoped|scroll|scroll_locks|sddl|second|secexpr|seconds|secondary|secondary_only|secondary_role|secret|security|securityaudit|selective|self|send|sent|sequence|serde_method|serializable|server|service|service_broker|service_name|service_objective|session_timeout|session|sessions|seterror|setopts|sets|shard_map_manager|shard_map_name|sharded|shared_memory|show_statistics|showplan_all|showplan_text|showplan_xml|showplan_xml_with_recompile|shrinkdb|shutdown|sid|signature|simple|single_blob|single_clob|single_nclob|single_user|singleton|site|size|size_based_cleanup_mode|skip|smalldatetime|smallint|smallmoney|snapshot|snapshot_import|snapshotrestorephase|soap|softnuma|sort_in_tempdb|sorted_data|sorted_data_reorg|spatial|sql|sql_bigint|sql_binary|sql_bit|sql_char|sql_date|sql_decimal|sql_double|sql_float|sql_guid|sql_handle|sql_longvarbinary|sql_longvarchar|sql_numeric|sql_real|sql_smallint|sql_time|sql_timestamp|sql_tinyint|sql_tsi_day|sql_tsi_frac_second|sql_tsi_hour|sql_tsi_minute|sql_tsi_month|sql_tsi_quarter|sql_tsi_second|sql_tsi_week|sql_tsi_year|sql_type_date|sql_type_time|sql_type_timestamp|sql_varbinary|sql_varchar|sql_variant|sql_wchar|sql_wlongvarchar|ssl|ssl_port|standard|standby|start|start_date|started|stat_header|state|statement|static|statistics|statistics_incremental|statistics_norecompute|statistics_only|statman|stats|stats_stream|status|stop|stop_on_error|stopat|stopatmark|stopbeforemark|stoplist|stopped|string_delimiter|subject|supplemental_logging|supported|suspend|symmetric|synchronous_commit|synonym|sysname|system|system_time|system_versioning|table|tableresults|tablock|tablockx|take|tape|target|target_index|target_partition|target_recovery_time|tcp|temporal_history_retention|text|textimage_on|then|thesaurus|throw|time|timeout|timestamp|tinyint|to|top|torn_page_detection|track_columns_updated|trailing|tran|transaction|transfer|transform_noise_words|triple_des|triple_des_3key|truncate|trustworthy|try|tsql|two_digit_year_cutoff|type|type_desc|type_warning|tzoffset|uid|unbounded|uncommitted|unique|uniqueidentifier|unlimited|unload|unlock|unsafe|updlock|url|use|useplan|useroptions|use_type_default|using|utcdatetime|valid_xml|validation|value|values|varbinary|varchar|verbose|verifyonly|version|view_metadata|virtual_device|visiblity|wait_at_low_priority|waitfor|webmethod|week|weekday|weight|well_formed_xml|when|while|widechar|widechar_ansi|widenative|window|windows|with|within|within group|witness|without|without_array_wrapper|workload|wsdl|xact_abort|xlock|xml|xmlschema|xquery|xsinil|year|zone)\\b", + "name": "keyword.other.sql" + }, + { + "captures": { + "1": { + "name": "punctuation.section.scope.begin.sql" + }, + "2": { + "name": "punctuation.section.scope.end.sql" + } + }, + "comment": "Allow for special ↩ behavior", + "match": "(\\()(\\))", + "name": "meta.block.sql" + } + ], + "repository": { + "comments": { + "patterns": [ + { + "begin": "(^[ \\t]+)?(?=--)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.sql" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": "--", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.sql" + } + }, + "end": "\\n", + "name": "comment.line.double-dash.sql" + } + ] + }, + { + "begin": "(^[ \\t]+)?(?=#)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.sql" + } + }, + "end": "(?!\\G)", + "patterns": [] + }, + { + "include": "#comment-block" + } + ] + }, + "comment-block": { + "begin": "/\\*", + "captures": { + "0": { + "name": "punctuation.definition.comment.sql" + } + }, + "end": "\\*/", + "name": "comment.block", + "patterns": [ + { + "include": "#comment-block" + } + ] + }, + "regexps": { + "patterns": [ + { + "begin": "/(?=\\S.*/)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.sql" + } + }, + "end": "/", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.sql" + } + }, + "name": "string.regexp.sql", + "patterns": [ + { + "include": "#string_interpolation" + }, + { + "match": "\\\\/", + "name": "constant.character.escape.slash.sql" + } + ] + }, + { + "begin": "%r\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.sql" + } + }, + "comment": "We should probably handle nested bracket pairs!?! -- Allan", + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.sql" + } + }, + "name": "string.regexp.modr.sql", + "patterns": [ + { + "include": "#string_interpolation" + } + ] + } + ] + }, + "string_escape": { + "match": "\\\\.", + "name": "constant.character.escape.sql" + }, + "string_interpolation": { + "captures": { + "1": { + "name": "punctuation.definition.string.begin.sql" + }, + "3": { + "name": "punctuation.definition.string.end.sql" + } + }, + "match": "(#\\{)([^\\}]*)(\\})", + "name": "string.interpolated.sql" + }, + "strings": { + "patterns": [ + { + "captures": { + "2": { + "name": "punctuation.definition.string.begin.sql" + }, + "3": { + "name": "punctuation.definition.string.end.sql" + } + }, + "comment": "this is faster than the next begin/end rule since sub-pattern will match till end-of-line and SQL files tend to have very long lines.", + "match": "(N)?(')[^']*(')", + "name": "string.quoted.single.sql" + }, + { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.sql" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.sql" + } + }, + "name": "string.quoted.single.sql", + "patterns": [ + { + "include": "#string_escape" + } + ] + }, + { + "captures": { + "1": { + "name": "punctuation.definition.string.begin.sql" + }, + "2": { + "name": "punctuation.definition.string.end.sql" + } + }, + "comment": "this is faster than the next begin/end rule since sub-pattern will match till end-of-line and SQL files tend to have very long lines.", + "match": "(`)[^`\\\\]*(`)", + "name": "string.quoted.other.backtick.sql" + }, + { + "begin": "`", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.sql" + } + }, + "end": "`", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.sql" + } + }, + "name": "string.quoted.other.backtick.sql", + "patterns": [ + { + "include": "#string_escape" + } + ] + }, + { + "captures": { + "1": { + "name": "punctuation.definition.string.begin.sql" + }, + "2": { + "name": "punctuation.definition.string.end.sql" + } + }, + "comment": "this is faster than the next begin/end rule since sub-pattern will match till end-of-line and SQL files tend to have very long lines.", + "match": "(\")[^\"#]*(\")", + "name": "string.quoted.double.sql" + }, + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.sql" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.sql" + } + }, + "name": "string.quoted.double.sql", + "patterns": [ + { + "include": "#string_interpolation" + } + ] + }, + { + "begin": "%\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.sql" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.sql" + } + }, + "name": "string.other.quoted.brackets.sql", + "patterns": [ + { + "include": "#string_interpolation" + } + ] + } + ] + } + } +} diff --git a/docs/shiki/languages/ssh-config.tmLanguage.json b/docs/shiki/languages/ssh-config.tmLanguage.json new file mode 100644 index 00000000..0d097e38 --- /dev/null +++ b/docs/shiki/languages/ssh-config.tmLanguage.json @@ -0,0 +1,84 @@ +{ + "fileTypes": ["ssh_config", ".ssh/config", "sshd_config"], + "name": "ssh-config", + "patterns": [ + { + "match": "\\b(A(cceptEnv|dd(ressFamily|KeysToAgent)|llow(AgentForwarding|Groups|StreamLocalForwarding|TcpForwarding|Users)|uth(enticationMethods|orized((Keys(Command(User)?|File)|Principals(Command(User)?|File)))))|B(anner|atchMode|ind(Address|Interface))|C(anonical(Domains|ize(FallbackLocal|Hostname|MaxDots|PermittedCNAMEs))|ertificateFile|hallengeResponseAuthentication|heckHostIP|hrootDirectory|iphers?|learAllForwardings|ientAlive(CountMax|Interval)|ompression(Level)?|onnect(Timeout|ionAttempts)|ontrolMaster|ontrolPath|ontrolPersist)|D(eny(Groups|Users)|isableForwarding|ynamicForward)|E(nableSSHKeysign|scapeChar|xitOnForwardFailure|xposeAuthInfo)|F(ingerprintHash|orceCommand|orward(Agent|X11(Timeout|Trusted)?))|G(atewayPorts|SSAPI(Authentication|CleanupCredentials|ClientIdentity|DelegateCredentials|KeyExchange|RenewalForcesRekey|ServerIdentity|StrictAcceptorCheck|TrustDns)|atewayPorts|lobalKnownHostsFile)|H(ashKnownHosts|ost(based(AcceptedKeyTypes|Authentication|KeyTypes|UsesNameFromPacketOnly)|Certificate|Key(Agent|Algorithms|Alias)?|Name))|I(dentit(iesOnly|y(Agent|File))|gnore(Rhosts|Unknown|UserKnownHosts)|nclude|PQoS)|K(bdInteractive(Authentication|Devices)|erberos(Authentication|GetAFSToken|OrLocalPasswd|TicketCleanup)|exAlgorithms)|L(istenAddress|ocal(Command|Forward)|oginGraceTime|ogLevel)|M(ACs|atch|ax(AuthTries|Sessions|Startups))|N(oHostAuthenticationForLocalhost|umberOfPasswordPrompts)|P(KCS11Provider|asswordAuthentication|ermit(EmptyPasswords|LocalCommand|Open|RootLogin|TTY|Tunnel|User(Environment|RC))|idFile|ort|referredAuthentications|rint(LastLog|Motd)|rotocol|roxy(Command|Jump|UseFdpass)|ubkey(AcceptedKeyTypes|Authentication))|R(Domain|SAAuthentication|ekeyLimit|emote(Command|Forward)|equestTTY|evoked(HostKeys|Keys)|hostsRSAAuthentication)|S(endEnv|erverAlive(CountMax|Interval)|treamLocalBind(Mask|Unlink)|trict(HostKeyChecking|Modes)|ubsystem|yslogFacility)|T(CPKeepAlive|rustedUserCAKeys|unnel(Device)?)|U(pdateHostKeys|se(BlacklistedKeys|DNS|Keychain|PAM|PrivilegedPort|r(KnownHostsFile)?))|V(erifyHostKeyDNS|ersionAddendum|isualHostKey)|X(11(DisplayOffset|Forwarding|UseLocalhost)|AuthLocation))\\b", + "name": "keyword.other.ssh-config" + }, + { + "begin": "(^[ \\t]+)?(?=#)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.ssh-config" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": "#", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.ssh-config" + } + }, + "end": "\\n", + "name": "comment.line.number-sign.ssh-config" + } + ] + }, + { + "begin": "(^[ \\t]+)?(?=//)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.ssh-config" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": "//", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.ssh-config" + } + }, + "end": "\\n", + "name": "comment.line.double-slash.ssh-config" + } + ] + }, + { + "captures": { + "1": { + "name": "storage.type.ssh-config" + }, + "2": { + "name": "entity.name.section.ssh-config" + }, + "3": { + "name": "meta.toc-list.ssh-config" + } + }, + "match": "(?:^| |\\t)(Host)\\s+((.*))$" + }, + { + "match": "\\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b", + "name": "constant.numeric.ssh-config" + }, + { + "match": "\\b[0-9]+\\b", + "name": "constant.numeric.ssh-config" + }, + { + "match": "\\b(yes|no)\\b", + "name": "constant.language.ssh-config" + }, + { + "match": "\\b[A-Z_]+\\b", + "name": "constant.language.ssh-config" + } + ], + "scopeName": "source.ssh-config", + "uuid": "B273855C-59D3-4DF3-9B7C-E68E0057D315" +} diff --git a/docs/shiki/languages/stata.tmLanguage.json b/docs/shiki/languages/stata.tmLanguage.json new file mode 100644 index 00000000..f0786ece --- /dev/null +++ b/docs/shiki/languages/stata.tmLanguage.json @@ -0,0 +1,3045 @@ +{ + "scopeName": "source.stata", + "name": "stata", + "fileTypes": ["do", "ado", "mata"], + "foldingStartMarker": "\\{\\s*$", + "foldingStopMarker": "^\\s*\\}", + "patterns": [ + { + "include": "#ascii-regex-functions" + }, + { + "include": "#unicode-regex-functions" + }, + { + "include": "#constants" + }, + { + "include": "#functions" + }, + { + "include": "#comments" + }, + { + "include": "#subscripts" + }, + { + "include": "#operators" + }, + { + "include": "#macro-local" + }, + { + "include": "#macro-global" + }, + { + "include": "#string-compound" + }, + { + "include": "#string-regular" + }, + { + "include": "#builtin_variables" + }, + { + "include": "#macro-commands" + }, + { + "comment": "keywords that delimit flow conditionals", + "name": "keyword.control.conditional.stata", + "match": "\\b(if|else if|else)\\b" + }, + { + "captures": { + "1": { + "name": "storage.type.scalar.stata" + } + }, + "match": "^\\s*(sca(lar|la|l)?(\\s+de(fine|fin|fi|f)?)?)\\s+(?!(drop|dir?|l(ist|is|i)?)\\s+)" + }, + { + "begin": "\\b(mer(ge|g)?)\\s+(1|m|n)(:)(1|m|n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.stata" + }, + "3": { + "patterns": [ + { + "include": "#constants" + }, + { + "match": "m|n", + "name": "" + } + ] + }, + "4": { + "name": "punctuation.separator.key-value" + }, + "5": { + "patterns": [ + { + "include": "#constants" + }, + { + "match": "m|n", + "name": "" + } + ] + } + }, + "end": "using", + "patterns": [ + { + "include": "#builtin_variables" + }, + { + "include": "#macro-local" + }, + { + "include": "#macro-global" + }, + { + "include": "#comments" + } + ] + }, + { + "match": "\\b(foreach)\\s+((?!in|of).+)\\s+(in|of var(list|lis|li|l)?|of new(list|lis|li|l)?|of num(list|lis|li|l)?)\\b", + "captures": { + "1": { + "name": "keyword.control.flow.stata" + }, + "2": { + "patterns": [ + { + "include": "#macro-local-identifiers" + }, + { + "include": "#macro-local" + }, + { + "include": "#macro-global" + } + ] + }, + "3": { + "name": "keyword.control.flow.stata" + } + } + }, + { + "begin": "\\b(foreach)\\s+((?!in|of).+)\\s+(of loc(al|a)?|of glo(bal|ba|b)?)\\b\\s*", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.stata" + }, + "2": { + "patterns": [ + { + "include": "#macro-local-identifiers" + }, + { + "include": "#macro-local" + }, + { + "include": "#macro-global" + } + ] + }, + "3": { + "name": "keyword.control.flow.stata" + } + }, + "end": "(?=\\s*\\{)", + "patterns": [ + { + "include": "#macro-local-identifiers" + }, + { + "include": "#macro-local" + }, + { + "include": "#macro-global" + } + ] + }, + { + "begin": "\\b(forvalues|forvalue|forvalu|forval|forva|forv)\\s*", + "end": "\\s*(=)\\s*([^\\{]+)\\s*|(?=\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.stata" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.assignment.stata" + }, + "2": { + "patterns": [ + { + "include": "#constants" + }, + { + "include": "#operators" + }, + { + "include": "#macro-local" + }, + { + "include": "#macro-global" + } + ] + } + }, + "patterns": [ + { + "include": "#macro-local-identifiers" + }, + { + "include": "#macro-local" + }, + { + "include": "#macro-global" + } + ] + }, + { + "comment": "keywords that delimit loops", + "name": "keyword.control.flow.stata", + "match": "\\b(while|continue)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.other.stata" + } + }, + "comment": "keywords that haven't fit into other groups (yet).", + "match": "\\b(as|ass|asse|asser|assert)\\b" + }, + { + "match": "\\b(by(sort|sor|so|s)?|statsby|rolling|bootstrap|jackknife|permute|simulate|svy|mi est(imate|imat|ima|im|i)?|nestreg|stepwise|xi|fp|mfp|vers(ion|io|i)?)\\b", + "name": "storage.type.function.stata", + "comment": "prefixes that require a colon" + }, + { + "comment": "prefixes that don't need a colon", + "name": "keyword.control.flow.stata", + "match": "\\b(qui(etly|etl|et|e)?|n(oisily|oisil|oisi|ois|oi|o)?|cap(ture|tur|tu|t)?)\\b:?" + }, + { + "match": "\\s*(pr(ogram|ogra|ogr|og|o)?)\\s+((di(r)?|drop|l(ist|is|i)?)\\s+)([\\w&&[^0-9]]\\w{0,31})", + "captures": { + "1": { + "name": "storage.type.function.stata" + }, + "3": { + "name": "storage.type.function.stata" + }, + "7": { + "name": "entity.name.function.stata" + } + } + }, + { + "begin": "^\\s*(pr(ogram|ogra|ogr|og|o)?)\\s+(de(fine|fin|fi|f)?\\s+)?", + "beginCaptures": { + "1": { + "name": "storage.type.function.stata" + }, + "3": { + "name": "storage.type.function.stata" + } + }, + "end": "(?=,|\\n|/)", + "patterns": [ + { + "include": "#macro-local" + }, + { + "include": "#macro-global" + }, + { + "match": "[\\w&&[^0-9]]\\w{0,31}", + "name": "entity.name.function.stata" + }, + { + "match": "[^A-za-z_0-9,\\n/ ]+", + "name": "invalid.illegal.name.stata" + } + ] + }, + { + "match": "\\b(form(at|a)?)\\s*([\\w&&[^0-9]]\\w{0,31})*\\s*(%)(-)?(0)?([0-9]+)(.)([0-9]+)(e|f|g)(c)?", + "captures": { + "1": "keyword.functions.data.stata.test" + } + }, + { + "include": "#braces-with-error" + }, + { + "begin": "(?=syntax)", + "end": "\\n", + "patterns": [ + { + "comment": "color before the comma", + "begin": "syntax", + "beginCaptures": { + "0": { + "name": "keyword.functions.program.stata" + } + }, + "end": "(?=,|\\n)", + "patterns": [ + { + "begin": "///", + "end": "\\n", + "name": "comment.block.stata" + }, + { + "match": "\\[", + "name": "punctuation.definition.parameters.begin.stata" + }, + { + "match": "\\]", + "name": "punctuation.definition.parameters.end.stata" + }, + { + "match": "\\b(varlist|varname|newvarlist|newvarname|namelist|name|anything)\\b", + "name": "entity.name.type.class.stata" + }, + { + "match": "\\b((if|in|using|fweight|aweight|pweight|iweight))\\b(/)?", + "captures": { + "2": { + "name": "entity.name.type.class.stata" + }, + "3": { + "name": "keyword.operator.arithmetic.stata" + } + } + }, + { + "match": "(/)?(exp)", + "captures": { + "1": { + "name": "keyword.operator.arithmetic.stata" + }, + "2": { + "name": "entity.name.type.class.stata" + } + } + }, + { + "include": "#constants" + }, + { + "include": "#operators" + }, + { + "include": "#string-compound" + }, + { + "include": "#string-regular" + }, + { + "include": "#macro-local" + }, + { + "include": "#macro-global" + }, + { + "include": "#builtin_variables" + } + ] + }, + { + "comment": "things to color after the comma", + "begin": ",", + "beginCaptures": { + "0": { + "name": "punctuation.definition.variable.begin.stata" + } + }, + "end": "(?=\\n)", + "patterns": [ + { + "begin": "///", + "end": "\\n", + "name": "comment.block.stata" + }, + { + "comment": "color options with parentheses", + "begin": "([^\\s\\[\\]]+)(\\()", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#macro-local-identifiers" + }, + { + "include": "#macro-local" + }, + { + "include": "#macro-global" + } + ], + "comment": "these are the names that become macros" + }, + "2": { + "name": "keyword.operator.parentheses.stata" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "keyword.operator.parentheses.stata" + } + }, + "patterns": [ + { + "comment": "the first word is often a type", + "match": "\\b(integer|intege|integ|inte|int|real|string|strin|stri|str)\\b", + "captures": { + "0": { + "name": "support.type.stata" + } + } + }, + { + "include": "#constants" + }, + { + "include": "#operators" + }, + { + "include": "#string-compound" + }, + { + "include": "#string-regular" + }, + { + "include": "#macro-local" + }, + { + "include": "#macro-global" + }, + { + "include": "#builtin_variables" + } + ] + }, + { + "include": "#macro-local-identifiers" + }, + { + "include": "#constants" + }, + { + "include": "#operators" + }, + { + "include": "#string-compound" + }, + { + "include": "#string-regular" + }, + { + "include": "#macro-local" + }, + { + "include": "#macro-global" + }, + { + "include": "#builtin_variables" + } + ] + } + ] + }, + { + "captures": { + "1": { + "name": "keyword.functions.data.stata" + } + }, + "comment": "one-word commands", + "match": "\\b(sa(v|ve)|saveold|destring|tostring|u(se|s)?|note(s)?|form(at|a)?)\\b" + }, + { + "match": "\\b(exit|end)\\b", + "name": "keyword.functions.data.stata", + "comment": "programming commands" + }, + { + "match": "\\b(replace)\\s+([^=]+)\\s*((==)|(=))", + "captures": { + "1": { + "name": "keyword.functions.data.stata" + }, + "2": { + "patterns": [ + { + "include": "#macro-local" + } + ] + }, + "4": { + "name": "invalid.illegal.name.stata" + }, + "5": { + "name": "keyword.operator.assignment.stata" + } + } + }, + { + "match": "\\b(g(enerate|enerat|enera|ener|ene|en|e)?|egen)\\s+((byte|int|long|float|double|str[1-9]?[0-9]?[0-9]?[0-9]?|strL)\\s+)?([^=\\s]+)\\s*((==)|(=))", + "captures": { + "1": { + "name": "keyword.functions.data.stata" + }, + "3": { + "name": "support.type.stata" + }, + "5": { + "patterns": [ + { + "include": "#reserved-names" + }, + { + "include": "#macro-local" + } + ] + }, + "7": { + "name": "invalid.illegal.name.stata" + }, + "8": { + "name": "keyword.operator.assignment.stata" + } + } + }, + { + "match": "\\b(set ty(pe|p)?)\\s+((byte|int|long|float|double|str[1-9]?[0-9]?[0-9]?[0-9]?|strL)?\\s+)\\b", + "captures": { + "1": { + "name": "keyword.functions.data.stata" + }, + "3": { + "name": "support.type.stata" + } + } + }, + { + "match": "\\b(la(bel|be|b)?)\\s+(var(iable|iabl|iab|ia|i)?)\\s+([\\w&&[^0-9]]\\w{0,31})\\s+(`\")(.+)(\"')", + "captures": { + "1": { + "name": "keyword.functions.data.stata" + }, + "3": { + "name": "keyword.functions.data.stata" + }, + "6": { + "name": "punctuation.definition.string.begin.stata" + }, + "7": { + "patterns": [ + { + "include": "#string-compound" + }, + { + "include": "#macro-local-escaped" + }, + { + "include": "#macro-global-escaped" + }, + { + "include": "#macro-local" + }, + { + "include": "#macro-global" + }, + { + "match": "[^`\\$]{81,}", + "name": "invalid.illegal.name.stata" + }, + { + "match": ".", + "name": "string.quoted.double.compound.stata" + } + ] + }, + "8": { + "name": "punctuation.definition.string.begin.stata" + } + } + }, + { + "match": "\\b(la(bel|be|b)?)\\s+(var(iable|iabl|iab|ia|i)?)\\s+([\\w&&[^0-9]]\\w{0,31})\\s+(\")(.+)(\")", + "captures": { + "1": { + "name": "keyword.functions.data.stata" + }, + "3": { + "name": "keyword.functions.data.stata" + }, + "6": { + "name": "punctuation.definition.string.begin.stata" + }, + "7": { + "patterns": [ + { + "include": "#macro-local-escaped" + }, + { + "include": "#macro-global-escaped" + }, + { + "include": "#macro-local" + }, + { + "include": "#macro-global" + }, + { + "match": "[^`\\$]{81,}", + "name": "invalid.illegal.name.stata" + }, + { + "match": ".", + "name": "string.quoted.double.stata" + } + ] + }, + "8": { + "name": "punctuation.definition.string.begin.stata" + } + } + }, + { + "match": "\\b(la(bel|be|b)?)\\s+(da(ta|t)?|var(iable|iabl|iab|ia|i)?|de(f|fi|fin|fine)?|val(ues|ue|u)?|di(r)?|l(ist|is|i)?|copy|drop|save|lang(uage|uag|ua|u)?)\\b", + "captures": { + "1": { + "name": "keyword.functions.data.stata" + }, + "3": { + "name": "keyword.functions.data.stata" + } + } + }, + { + "begin": "\\b(drop|keep)\\b(?!\\s+(if|in)\\b)", + "beginCaptures": { + "1": { + "name": "keyword.functions.data.stata" + } + }, + "end": "\\n", + "patterns": [ + { + "match": "\\b(if|in)\\b", + "name": "invalid.illegal.name.stata" + }, + { + "include": "#comments" + }, + { + "include": "#macro-local" + }, + { + "include": "#macro-global" + }, + { + "include": "#operators" + } + ] + }, + { + "match": "\\b(drop|keep)\\s+(if|in)\\b", + "captures": { + "1": { + "name": "keyword.functions.data.stata" + }, + "2": { + "name": "keyword.functions.data.stata" + } + } + }, + { + "begin": "^\\s*mata:?\\s*$", + "comment": "won't match single-line Mata statements", + "end": "^\\s*end\\s*$\\n?", + "name": "meta.embedded.block.mata", + "patterns": [ + { + "match": "(?<![^$\\s])(version|pragma|if|else|for|while|do|break|continue|goto|return)(?=\\s)", + "name": "keyword.control.mata" + }, + { + "captures": { + "1": { + "name": "storage.type.eltype.mata" + }, + "4": { + "name": "storage.type.orgtype.mata" + } + }, + "match": "\\b(transmorphic|string|numeric|real|complex|(pointer(\\([^)]+\\))?))\\s+(matrix|vector|rowvector|colvector|scalar)\\b", + "name": "storage.type.mata" + }, + { + "comment": "need to end with whitespace character here or last group doesn't match", + "match": "\\b(transmorphic|string|numeric|real|complex|(pointer(\\([^)]+\\))?))\\s", + "name": "storage.type.eltype.mata" + }, + { + "match": "\\b(matrix|vector|rowvector|colvector|scalar)\\b", + "name": "storage.type.orgtype.mata" + }, + { + "match": "\\!|\\+\\+|\\-\\-|\\&|\\'|\\?|\\\\|\\:\\:|\\,|\\.\\.|\\||\\=|\\=\\=|\\>\\=|\\<\\=|\\<|\\>|\\!\\=|\\#|\\+|\\-|\\*|\\^|\\/", + "name": "keyword.operator.mata" + }, + { + "include": "$self" + } + ] + }, + { + "begin": "\\b(odbc)\\b", + "beginCaptures": { + "0": { + "name": "keyword.control.flow.stata" + } + }, + "end": "\\n", + "patterns": [ + { + "begin": "///", + "end": "\\n", + "name": "comment.block.stata" + }, + { + "begin": "(exec?)(\\(\")", + "beginCaptures": { + "1": { + "name": "support.function.builtin.stata" + }, + "2": { + "name": "punctuation.definition.parameters.begin.stata" + } + }, + "end": "\"\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.parameters.end.stata" + } + }, + "patterns": [ + { + "include": "source.sql" + } + ] + }, + { + "include": "$self" + } + ] + }, + { + "include": "#commands-other" + } + ], + "repository": { + "functions": { + "patterns": [ + { + "begin": "\\b((abbrev|abs|acos|acosh|asin|asinh|atan|atan2|atanh|autocode|betaden|binomial|binomialp|binomialtail|binormalbofd|byteorder|c|cauchy|cauchyden|cauchytail|Cdhms|ceil|char|chi2|chi2den|chi2tail|Chms|cholesky|chop|clip|clock|Clock|cloglog|Cmdyhms|cofC|Cofc|cofd|Cofd|coleqnumb|collatorlocale|collatorversion|colnfreeparms|colnumb|colsof|comb|cond|corr|cos|cosh|daily|date|day|det|dgammapda|dgammapdada|dgammapdadx|dgammapdx|dgammapdxdx|dhms|diag|diag0cnt|digamma|dofb|dofc|dofC|dofh|dofm|dofq|dofw|dofy|dow|doy|dunnettprob|e|el|epsdouble|epsfloat|exp|exponential|exponentialden|exponentialtail|F|Fden|fileexists|fileread|filereaderror|filewrite|float|floor|fmtwidth|Ftail|gammaden|gammap|gammaptail|get|hadamard|halfyear|halfyearly|hh|hhC|hms|hofd|hours|hypergeometric|hypergeometricp|I|ibeta|ibetatail|igaussian|igaussianden|igaussiantail|indexnot|inlist|inrange|int|inv|invbinomial|invbinomialtail|invcauchy|invcauchytail|invchi2|invchi2tail|invcloglog|invdunnettprob|invexponential|invexponentialtail|invF|invFtail|invgammap|invgammaptail|invibeta|invibetatail|invigaussian|invigaussiantail|invlaplace|invlaplacetail|invlogistic|invlogistictail|invlogit|invnbinomial|invnbinomialtail|invnchi2|invnchi2tail|invnF|invnFtail|invnibeta|invnormal|invnt|invnttail|invpoisson|invpoissontail|invsym|invt|invttail|invtukeyprob|invweibull|invweibullph|invweibullphtail|invweibulltail|irecode|issymmetric|itrim|J|laplace|laplaceden|laplacetail|length|ln|lncauchyden|lnfactorial|lngamma|lnigammaden|lnigaussianden|lniwishartden|lnlaplaceden|lnmvnormalden|lnnormal|lnnormalden|lnwishartden|log|log10|logistic|logisticden|logistictail|logit|lower|ltrim|matmissing|matrix|matuniform|max|maxbyte|maxdouble|maxfloat|maxint|maxlong|mdy|mdyhms|mi|min|minbyte|mindouble|minfloat|minint|minlong|minutes|missing|mm|mmC|mod|mofd|month|monthly|mreldif|msofhours|msofminutes|msofseconds|nbetaden|nbinomial|nbinomialp|nbinomialtail|nchi2|nchi2den|nchi2tail|nF|nFden|nFtail|nibeta|normal|normalden|npnchi2|npnF|npnt|nt|ntden|nttail|nullmat|plural|poisson|poissonp|poissontail|proper|qofd|quarter|quarterly|r|rbeta|rbinomial|rcauchy|rchi2|real|recode|regexs|reldif|replay|return|reverse|rexponential|rgamma|rhypergeometric|rigaussian|rlaplace|rlogistic|rnbinomial|rnormal|round|roweqnumb|rownfreeparms|rownumb|rowsof|rpoisson|rt|rtrim|runiform|runiformint|rweibull|rweibullph|s|scalar|seconds|sign|sin|sinh|smallestdouble|soundex|sqrt|ss|ssC|string|stritrim|strlen|strlower|strltrim|strmatch|strofreal|strpos|strproper|strreverse|strrpos|strrtrim|strtoname|strtrim|strupper|subinstr|subinword|substr|sum|sweep|t|tan|tanh|tc|tC|td|tden|th|tin|tm|tobytes|tq|trace|trigamma|trim|trunc|ttail|tukeyprob|tw|twithin|uchar|udstrlen|udsubstr|uisdigit|uisletter|upper|ustrcompare|ustrcompareex|ustrfix|ustrfrom|ustrinvalidcnt|ustrleft|ustrlen|ustrlower|ustrltrim|ustrnormalize|ustrpos|ustrregexs|ustrreverse|ustrright|ustrrpos|ustrrtrim|ustrsortkey|ustrsortkeyex|ustrtitle|ustrto|ustrtohex|ustrtoname|ustrtrim|ustrunescape|ustrupper|ustrword|ustrwordcount|usubinstr|usubstr|vec|vecdiag|week|weekly|weibull|weibullden|weibullph|weibullphden|weibullphtail|weibulltail|wofd|word|wordbreaklocale|wordcount|year|yearly|yh|ym|yofd|yq|yw)|([\\w&&[^0-9]]\\w{0,31}))(\\()", + "beginCaptures": { + "2": { + "name": "support.function.builtin.stata" + }, + "3": { + "name": "support.function.custom.stata" + }, + "4": { + "name": "punctuation.definition.parameters.begin.stata" + } + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.definition.parameters.end.stata" + } + }, + "patterns": [ + { + "match": "[\\w&&[^0-9]]\\w{0,31}", + "name": "variable.parameter.function.stata" + }, + { + "begin": "\\(", + "end": "\\)", + "beginCaptures": { + "0": { + "name": "keyword.operator.parentheses.stata" + } + }, + "endCaptures": { + "0": { + "name": "keyword.operator.parentheses.stata" + } + }, + "patterns": [ + { + "include": "#ascii-regex-functions" + }, + { + "include": "#unicode-regex-functions" + }, + { + "include": "#functions" + }, + { + "include": "#subscripts" + }, + { + "include": "#constants" + }, + { + "include": "#comments" + }, + { + "include": "#operators" + }, + { + "include": "#macro-local" + }, + { + "include": "#macro-global" + }, + { + "include": "#string-compound" + }, + { + "include": "#string-regular" + }, + { + "include": "#builtin_variables" + }, + { + "include": "#macro-commands" + }, + { + "include": "#braces-without-error" + }, + { + "match": "[\\w&&[^0-9]]\\w{0,31}", + "name": "variable.parameter.function.stata" + } + ] + }, + { + "include": "#ascii-regex-functions" + }, + { + "include": "#unicode-regex-functions" + }, + { + "include": "#functions" + }, + { + "include": "#subscripts" + }, + { + "include": "#constants" + }, + { + "include": "#comments" + }, + { + "include": "#operators" + }, + { + "include": "#macro-local" + }, + { + "include": "#macro-global" + }, + { + "include": "#string-compound" + }, + { + "include": "#string-regular" + }, + { + "include": "#builtin_variables" + }, + { + "include": "#macro-commands" + }, + { + "include": "#braces-without-error" + } + ] + } + ] + }, + "builtin_types": { + "patterns": [ + { + "match": "\\b(byte|int|long|float|double|str[1-9]?[0-9]?[0-9]?[0-9]?|strL)\\b", + "name": "support.type.stata" + } + ] + }, + "builtin_variables": { + "patterns": [ + { + "match": "\\b(_b|_coef|_cons|_n|_N|_rc|_se)\\b", + "name": "variable.object.stata" + } + ] + }, + "braces-without-error": { + "patterns": [ + { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "keyword.control.block.begin.stata" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "keyword.control.block.end.stata" + } + } + } + ] + }, + "braces-with-error": { + "patterns": [ + { + "comment": "correct with nothing else on the line but whitespace; before and after; before; after; correct", + "begin": "(\\{)\\s*([^\\n]*)(?=\\n)", + "beginCaptures": { + "1": { + "name": "keyword.control.block.begin.stata" + }, + "2": { + "patterns": [ + { + "include": "#comments" + }, + { + "match": "[^\\n]+", + "name": "illegal.invalid.name.stata" + } + ] + } + }, + "end": "^\\s*(\\})\\s*$|^\\s*([^\\*\"\\}]+)\\s+(\\})\\s*([^\\*\"\\}/\\n]+)|^\\s*([^\"\\*\\}]+)\\s+(\\})|\\s*(\\})\\s*([^\"\\*\\}/\\n]+)|(\\})$", + "endCaptures": { + "1": { + "name": "keyword.control.block.end.stata" + }, + "2": { + "name": "invalid.illegal.name.stata" + }, + "3": { + "name": "keyword.control.block.end.stata" + }, + "4": { + "name": "invalid.illegal.name.stata" + }, + "5": { + "name": "invalid.illegal.name.stata" + }, + "6": { + "name": "keyword.control.block.end.stata" + }, + "7": { + "name": "keyword.control.block.end.stata" + }, + "8": { + "name": "invalid.illegal.name.stata" + }, + "9": { + "name": "keyword.control.block.end.stata" + } + }, + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + "commands-other": { + "patterns": [ + { + "comment": "Add on commands", + "match": "\\b(reghdfe|ivreghdfe|ivreg2|outreg|gcollapse|gcontract|gegen|gisid|glevelsof|gquantiles)\\b", + "name": "keyword.control.flow.stata" + }, + { + "comment": "Built in commands", + "match": "\\b(about|ac|acprplot|ado|adopath|adoupdate|alpha|ameans|an|ano|anov|anova|anova_terms|anovadef|aorder|ap|app|appe|appen|append|arch|arch_dr|arch_estat|arch_p|archlm|areg|areg_p|args|arima|arima_dr|arima_estat|arima_p|asmprobit|asmprobit_estat|asmprobit_lf|asmprobit_mfx__dlg|asmprobit_p|avplot|avplots|bcskew0|bgodfrey|binreg|bip0_lf|biplot|bipp_lf|bipr_lf|bipr_p|biprobit|bitest|bitesti|bitowt|blogit|bmemsize|boot|bootsamp|boxco_l|boxco_p|boxcox|boxcox_p|bprobit|br|break|brier|bro|brow|brows|browse|brr|brrstat|bs|bsampl_w|bsample|bsqreg|bstat|bstrap|ca|ca_estat|ca_p|cabiplot|camat|canon|canon_estat|canon_p|caprojection|cat|cc|cchart|cci|cd|censobs_table|centile|cf|char|chdir|checkdlgfiles|checkestimationsample|checkhlpfiles|checksum|chelp|ci|cii|cl|class|classutil|clear|cli|clis|clist|clog|clog_lf|clog_p|clogi|clogi_sw|clogit|clogit_lf|clogit_p|clogitp|clogl_sw|cloglog|clonevar|clslistarray|cluster|cluster_measures|cluster_stop|cluster_tree|cluster_tree_8|clustermat|cmdlog|cnr|cnre|cnreg|cnreg_p|cnreg_sw|cnsreg|codebook|collaps4|collapse|colormult_nb|colormult_nw|compare|compress|conf|confi|confir|confirm|conren|cons|const|constr|constra|constrai|constrain|constraint|contract|copy|copyright|copysource|cor|corc|corr|corr2data|corr_anti|corr_kmo|corr_smc|corre|correl|correla|correlat|correlate|corrgram|cou|coun|count|cprplot|crc|cret|cretu|cretur|creturn|cross|cs|cscript|cscript_log|csi|ct|ct_is|ctset|ctst_st|cttost|cumsp|cumul|cusum|cutil|d|datasig|datasign|datasigna|datasignat|datasignatu|datasignatur|datasignature|datetof|db|dbeta|de|dec|deco|decod|decode|deff|des|desc|descr|descri|describ|describe|dfbeta|dfgls|dfuller|di|di_g|dir|dirstats|dis|discard|disp|disp_res|disp_s|displ|displa|display|do|doe|doed|doedi|doedit|dotplot|dprobit|drawnorm|ds|ds_util|dstdize|duplicates|durbina|dwstat|dydx|ed|edi|edit|eivreg|emdef|en|enc|enco|encod|encode|eq|erase|ereg|ereg_lf|ereg_p|ereg_sw|ereghet|ereghet_glf|ereghet_glf_sh|ereghet_gp|ereghet_ilf|ereghet_ilf_sh|ereghet_ip|eret|eretu|eretur|ereturn|err|erro|error|est|est_cfexist|est_cfname|est_clickable|est_expand|est_hold|est_table|est_unhold|est_unholdok|estat|estat_default|estat_summ|estat_vce_only|esti|estimates|etodow|etof|etomdy|expand|expandcl|fac|fact|facto|factor|factor_estat|factor_p|factor_pca_rotated|factor_rotate|factormat|fcast|fcast_compute|fcast_graph|fdades|fdadesc|fdadescr|fdadescri|fdadescrib|fdadescribe|fdasav|fdasave|fdause|fh_st|file|filefilter|fillin|find_hlp_file|findfile|findit|fit|fl|fli|flis|flist|fpredict|frac_adj|frac_chk|frac_cox|frac_ddp|frac_dis|frac_dv|frac_in|frac_mun|frac_pp|frac_pq|frac_pv|frac_wgt|frac_xo|fracgen|fracplot|fracpoly|fracpred|fron_ex|fron_hn|fron_p|fron_tn|fron_tn2|frontier|ftodate|ftoe|ftomdy|ftowdate|gamhet_glf|gamhet_gp|gamhet_ilf|gamhet_ip|gamma|gamma_d2|gamma_p|gamma_sw|gammahet|gdi_hexagon|gdi_spokes|genrank|genstd|genvmean|gettoken|gladder|glim_l01|glim_l02|glim_l03|glim_l04|glim_l05|glim_l06|glim_l07|glim_l08|glim_l09|glim_l10|glim_l11|glim_l12|glim_lf|glim_mu|glim_nw1|glim_nw2|glim_nw3|glim_p|glim_v1|glim_v2|glim_v3|glim_v4|glim_v5|glim_v6|glim_v7|glm|glm_p|glm_sw|glmpred|glogit|glogit_p|gmeans|gnbre_lf|gnbreg|gnbreg_p|gomp_lf|gompe_sw|gomper_p|gompertz|gompertzhet|gomphet_glf|gomphet_glf_sh|gomphet_gp|gomphet_ilf|gomphet_ilf_sh|gomphet_ip|gphdot|gphpen|gphprint|gprefs|gprobi_p|gprobit|gr|gr7|gr_copy|gr_current|gr_db|gr_describe|gr_dir|gr_draw|gr_draw_replay|gr_drop|gr_edit|gr_editviewopts|gr_example|gr_example2|gr_export|gr_print|gr_qscheme|gr_query|gr_read|gr_rename|gr_replay|gr_save|gr_set|gr_setscheme|gr_table|gr_undo|gr_use|graph|grebar|greigen|grmeanby|gs_fileinfo|gs_filetype|gs_graphinfo|gs_stat|gsort|gwood|h|hareg|hausman|haver|he|heck_d2|heckma_p|heckman|heckp_lf|heckpr_p|heckprob|hel|help|hereg|hetpr_lf|hetpr_p|hetprob|hettest|hexdump|hilite|hist|histogram|hlogit|hlu|hmeans|hotel|hotelling|hprobit|hreg|hsearch|icd9|icd9_ff|icd9p|iis|impute|imtest|inbase|include|inf|infi|infil|infile|infix|inp|inpu|input|ins|insheet|insp|inspe|inspec|inspect|integ|inten|intreg|intreg_p|intrg2_ll|intrg_ll|intrg_ll2|ipolate|iqreg|ir|irf|irf_create|irfm|iri|is_svy|is_svysum|isid|istdize|ivprobit|ivprobit_p|ivreg|ivreg_footnote|ivtob_lf|ivtobit|ivtobit_p|jacknife|jknife|jkstat|joinby|kalarma1|kap|kapmeier|kappa|kapwgt|kdensity|ksm|ksmirnov|ktau|kwallis|labelbook|ladder|levelsof|leverage|lfit|lfit_p|li|lincom|line|linktest|lis|list|lloghet_glf|lloghet_glf_sh|lloghet_gp|lloghet_ilf|lloghet_ilf_sh|lloghet_ip|llogi_sw|llogis_p|llogist|llogistic|llogistichet|lnorm_lf|lnorm_sw|lnorma_p|lnormal|lnormalhet|lnormhet_glf|lnormhet_glf_sh|lnormhet_gp|lnormhet_ilf|lnormhet_ilf_sh|lnormhet_ip|lnskew0|loadingplot|(?<!\\.)log|logi|logis_lf|logistic|logistic_p|logit|logit_estat|logit_p|loglogs|logrank|loneway|lookfor|lookup|lowess|lpredict|lrecomp|lroc|lrtest|ls|lsens|lsens_x|lstat|ltable|ltriang|lv|lvr2plot|m|ma|mac|macr|macro|makecns|man|manova|manovatest|mantel|mark|markin|markout|marksample|mat|mat_capp|mat_order|mat_put_rr|mat_rapp|mata|mata_clear|mata_describe|mata_drop|mata_matdescribe|mata_matsave|mata_matuse|mata_memory|mata_mlib|mata_mosave|mata_rename|mata_which|matalabel|matcproc|matlist|matname|matr|matri|matrix|matrix_input__dlg|matstrik|mcc|mcci|md0_|md1_|md1debug_|md2_|md2debug_|mds|mds_estat|mds_p|mdsconfig|mdslong|mdsmat|mdsshepard|mdytoe|mdytof|me_derd|mean|means|median|memory|memsize|mfp|mfx|mhelp|mhodds|minbound|mixed_ll|mixed_ll_reparm|mkassert|mkdir|mkmat|mkspline|ml|ml_adjs|ml_bhhhs|ml_c_d|ml_check|ml_clear|ml_cnt|ml_debug|ml_defd|ml_e0|ml_e0_bfgs|ml_e0_cycle|ml_e0_dfp|ml_e0i|ml_e1|ml_e1_bfgs|ml_e1_bhhh|ml_e1_cycle|ml_e1_dfp|ml_e2|ml_e2_cycle|ml_ebfg0|ml_ebfr0|ml_ebfr1|ml_ebh0q|ml_ebhh0|ml_ebhr0|ml_ebr0i|ml_ecr0i|ml_edfp0|ml_edfr0|ml_edfr1|ml_edr0i|ml_eds|ml_eer0i|ml_egr0i|ml_elf|ml_elf_bfgs|ml_elf_bhhh|ml_elf_cycle|ml_elf_dfp|ml_elfi|ml_elfs|ml_enr0i|ml_enrr0|ml_erdu0|ml_erdu0_bfgs|ml_erdu0_bhhh|ml_erdu0_bhhhq|ml_erdu0_cycle|ml_erdu0_dfp|ml_erdu0_nrbfgs|ml_exde|ml_footnote|ml_geqnr|ml_grad0|ml_graph|ml_hbhhh|ml_hd0|ml_hold|ml_init|ml_inv|ml_log|ml_max|ml_mlout|ml_mlout_8|ml_model|ml_nb0|ml_opt|ml_p|ml_plot|ml_query|ml_rdgrd|ml_repor|ml_s_e|ml_score|ml_searc|ml_technique|ml_unhold|mleval|mlf_|mlmatbysum|mlmatsum|mlog|mlogi|mlogit|mlogit_footnote|mlogit_p|mlopts|mlsum|mlvecsum|mnl0_|mor|more|mov|move|mprobit|mprobit_lf|mprobit_p|mrdu0_|mrdu1_|mvdecode|mvencode|mvreg|mvreg_estat|nbreg|nbreg_al|nbreg_lf|nbreg_p|nbreg_sw|nestreg|net|newey|newey_p|news|nl|nlcom|nlcom_p|nlexp2|nlexp2a|nlexp3|nlgom3|nlgom4|nlinit|nllog3|nllog4|nlog_rd|nlogit|nlogit_p|nlogitgen|nlogittree|nlpred|nobreak|notes_dlg|nptrend|numlabel|numlist|old_ver|olo|olog|ologi|ologi_sw|ologit|ologit_p|ologitp|on|one|onew|onewa|oneway|op_colnm|op_comp|op_diff|op_inv|op_str|opr|opro|oprob|oprob_sw|oprobi|oprobi_p|oprobit|oprobitp|opts_exclusive|order|orthog|orthpoly|ou|out|outf|outfi|outfil|outfile|outs|outsh|outshe|outshee|outsheet|ovtest|pac|palette|parse_dissim|pause|pca|pca_display|pca_estat|pca_p|pca_rotate|pcamat|pchart|pchi|pcorr|pctile|pentium|pergram|personal|peto_st|pkcollapse|pkcross|pkequiv|pkexamine|pkshape|pksumm|plugin|pnorm|poisgof|poiss_lf|poiss_sw|poisso_p|poisson|poisson_estat|post|postclose|postfile|postutil|pperron|prais|prais_e|prais_e2|prais_p|predict|predictnl|preserve|print|prob|probi|probit|probit_estat|probit_p|proc_time|procoverlay|procrustes|procrustes_estat|procrustes_p|profiler|prop|proportion|prtest|prtesti|pwcorr|pwd|qs|qby|qbys|qchi|qladder|qnorm|qqplot|qreg|qreg_c|qreg_p|qreg_sw|qu|quadchk|quantile|que|quer|query|range|ranksum|ratio|rchart|rcof|recast|recode|reg|reg3|reg3_p|regdw|regr|regre|regre_p2|regres|regres_p|regress|regress_estat|regriv_p|remap|ren|rena|renam|rename|renpfix|repeat|reshape|restore|ret|retu|retur|return|rmdir|robvar|roccomp|rocf_lf|rocfit|rocgold|rocplot|roctab|rologit|rologit_p|rot|rota|rotat|rotate|rotatemat|rreg|rreg_p|ru|run|runtest|rvfplot|rvpplot|safesum|sample|sampsi|savedresults|sc|scatter|scm_mine|sco|scob_lf|scob_p|scobi_sw|scobit|scor|score|scoreplot|scoreplot_help|scree|screeplot|screeplot_help|sdtest|sdtesti|se|search|separate|seperate|serrbar|serset|set|set_defaults|sfrancia|sh|she|shel|shell|shewhart|signestimationsample|signrank|signtest|simul|sktest|sleep|slogit|slogit_d2|slogit_p|smooth|snapspan|so|sor|sort|spearman|spikeplot|spikeplt|spline_x|split|sqreg|sqreg_p|sret|sretu|sretur|sreturn|ssc|st|st_ct|st_hc|st_hcd|st_hcd_sh|st_is|st_issys|st_note|st_promo|st_set|st_show|st_smpl|st_subid|stack|stbase|stci|stcox|stcox_estat|stcox_fr|stcox_fr_ll|stcox_p|stcox_sw|stcoxkm|stcstat|stcurv|stcurve|stdes|stem|stepwise|stfill|stgen|stir|stjoin|stmc|stmh|stphplot|stphtest|stptime|strate|streg|streg_sw|streset|sts|stset|stsplit|stsum|sttocc|sttoct|stvary|su|suest|sum|summ|summa|summar|summari|summariz|summarize|sunflower|sureg|survcurv|survsum|svar|svar_p|svmat|svy_disp|svy_dreg|svy_est|svy_est_7|svy_estat|svy_get|svy_gnbreg_p|svy_head|svy_header|svy_heckman_p|svy_heckprob_p|svy_intreg_p|svy_ivreg_p|svy_logistic_p|svy_logit_p|svy_mlogit_p|svy_nbreg_p|svy_ologit_p|svy_oprobit_p|svy_poisson_p|svy_probit_p|svy_regress_p|svy_sub|svy_sub_7|svy_x|svy_x_7|svy_x_p|svydes|svygen|svygnbreg|svyheckman|svyheckprob|svyintreg|svyintrg|svyivreg|svylc|svylog_p|svylogit|svymarkout|svymean|svymlog|svymlogit|svynbreg|svyolog|svyologit|svyoprob|svyoprobit|svyopts|svypois|svypoisson|svyprobit|svyprobt|svyprop|svyratio|svyreg|svyreg_p|svyregress|svyset|svytab|svytest|svytotal|sw|swilk|symmetry|symmi|symplot|sysdescribe|sysdir|sysuse|szroeter|ta|tab|tab1|tab2|tab_or|tabd|tabdi|tabdis|tabdisp|tabi|table|tabodds|tabstat|tabu|tabul|tabula|tabulat|tabulate|te|tes|test|testnl|testparm|teststd|tetrachoric|time_it|timer|tis|tob|tobi|tobit|tobit_p|tobit_sw|token|tokeni|tokeniz|tokenize|total|translate|translator|transmap|treat_ll|treatr_p|treatreg|trim|trnb_cons|trnb_mean|trpoiss_d2|trunc_ll|truncr_p|truncreg|tsappend|tset|tsfill|tsline|tsline_ex|tsreport|tsrevar|tsrline|tsset|tssmooth|tsunab|ttest|ttesti|tut_chk|tut_wait|tutorial|tw|tware_st|two|twoway|twoway__fpfit_serset|twoway__function_gen|twoway__histogram_gen|twoway__ipoint_serset|twoway__ipoints_serset|twoway__kdensity_gen|twoway__lfit_serset|twoway__normgen_gen|twoway__pci_serset|twoway__qfit_serset|twoway__scatteri_serset|twoway__sunflower_gen|twoway_ksm_serset|ty|typ|type|typeof|unab|unabbrev|unabcmd|update|uselabel|var|var_mkcompanion|var_p|varbasic|varfcast|vargranger|varirf|varirf_add|varirf_cgraph|varirf_create|varirf_ctable|varirf_describe|varirf_dir|varirf_drop|varirf_erase|varirf_graph|varirf_ograph|varirf_rename|varirf_set|varirf_table|varlmar|varnorm|varsoc|varstable|varstable_w|varstable_w2|varwle|vec|vec_fevd|vec_mkphi|vec_p|vec_p_w|vecirf_create|veclmar|veclmar_w|vecnorm|vecnorm_w|vecrank|vecstable|verinst|vers|versi|versio|version|view|viewsource|vif|vwls|wdatetof|webdescribe|webseek|webuse|wh|whelp|whi|which|wilc_st|wilcoxon|win|wind|windo|window|winexec|wntestb|wntestq|xchart|xcorr|xi|xmlsav|xmlsave|xmluse|xpose|xsh|xshe|xshel|xshell|xt_iis|xt_tis|xtab_p|xtabond|xtbin_p|xtclog|xtcloglog|xtcloglog_d2|xtcloglog_pa_p|xtcloglog_re_p|xtcnt_p|xtcorr|xtdata|xtdes|xtfront_p|xtfrontier|xtgee|xtgee_elink|xtgee_estat|xtgee_makeivar|xtgee_p|xtgee_plink|xtgls|xtgls_p|xthaus|xthausman|xtht_p|xthtaylor|xtile|xtint_p|xtintreg|xtintreg_d2|xtintreg_p|xtivreg|xtline|xtline_ex|xtlogit|xtlogit_d2|xtlogit_fe_p|xtlogit_pa_p|xtlogit_re_p|xtmixed|xtmixed_estat|xtmixed_p|xtnb_fe|xtnb_lf|xtnbreg|xtnbreg_pa_p|xtnbreg_refe_p|xtpcse|xtpcse_p|xtpois|xtpoisson|xtpoisson_d2|xtpoisson_pa_p|xtpoisson_refe_p|xtpred|xtprobit|xtprobit_d2|xtprobit_re_p|xtps_fe|xtps_lf|xtps_ren|xtps_ren_8|xtrar_p|xtrc|xtrc_p|xtrchh|xtrefe_p|yx|yxview__barlike_draw|yxview_area_draw|yxview_bar_draw|yxview_dot_draw|yxview_dropline_draw|yxview_function_draw|yxview_iarrow_draw|yxview_ilabels_draw|yxview_normal_draw|yxview_pcarrow_draw|yxview_pcbarrow_draw|yxview_pccapsym_draw|yxview_pcscatter_draw|yxview_pcspike_draw|yxview_rarea_draw|yxview_rbar_draw|yxview_rbarm_draw|yxview_rcap_draw|yxview_rcapsym_draw|yxview_rconnected_draw|yxview_rline_draw|yxview_rscatter_draw|yxview_rspike_draw|yxview_spike_draw|yxview_sunflower_draw|zap_s|zinb|zinb_llf|zinb_plf|zip|zip_llf|zip_p|zip_plf|zt_ct_5|zt_hc_5|zt_hcd_5|zt_is_5|zt_iss_5|zt_sho_5|zt_smp_5|ztnb|ztnb_p|ztp|ztp_p|prtab|prchange|eststo|estout|esttab|estadd|estpost|ivregress|xtreg|xtreg_be|xtreg_fe|xtreg_ml|xtreg_pa_p|xtreg_re|xtregar|xtrere_p|xtset|xtsf_ll|xtsf_llti|xtsum|xttab|xttest0|xttobit|xttobit_p|xttrans)\\b", + "name": "keyword.control.flow.stata" + } + ] + }, + "comments": { + "patterns": [ + { + "include": "#comments-double-slash" + }, + { + "include": "#comments-star" + }, + { + "include": "#comments-block" + }, + { + "include": "#comments-triple-slash" + } + ] + }, + "comments-block": { + "patterns": [ + { + "begin": "/\\*", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.begin.stata" + } + }, + "end": "(\\*/\\s+\\*[^\\n]*)|(\\*/(?!\\*))", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.end.stata" + } + }, + "name": "comment.block.stata", + "patterns": [ + { + "match": "\\*/\\*", + "comment": "this ends and restarts a comment block. but need to catch this so that it doesn't start _another_ level of comment blocks" + }, + { + "include": "#docblockr-comment" + }, + { + "include": "#comments-block" + }, + { + "include": "#docstring" + } + ] + } + ] + }, + "comments-star": { + "patterns": [ + { + "captures": { + "0": { + "name": "punctuation.definition.comment.stata" + } + }, + "begin": "^\\s*(\\*)", + "name": "comment.line.star.stata", + "end": "(?=\\n)", + "comment": "TODO! need to except out the occasion that a * comes after a /// on the previous line. May be easiest to join with the comment.line.triple-slash.stata below", + "patterns": [ + { + "include": "#docblockr-comment" + }, + { + "begin": "///", + "end": "\\n", + "name": "comment.line-continuation.stata" + }, + { + "include": "#comments" + } + ] + } + ] + }, + "comments-triple-slash": { + "patterns": [ + { + "captures": { + "0": { + "name": "punctuation.definition.comment.stata" + } + }, + "begin": "(^///|(?<=\\s)///)", + "end": "(?=\\n)", + "name": "comment.line.triple-slash.stata", + "patterns": [ + { + "include": "#docblockr-comment" + } + ] + } + ] + }, + "comments-double-slash": { + "patterns": [ + { + "captures": { + "0": { + "name": "punctuation.definition.comment.stata" + } + }, + "begin": "(^//|(?<=\\s)//)(?!/)", + "end": "(?=\\n)", + "name": "comment.line.double-slash.stata", + "patterns": [ + { + "include": "#docblockr-comment" + } + ] + } + ] + }, + "docblockr-comment": { + "patterns": [ + { + "match": "(?<!\\w)(@(error|ERROR|Error))\\b", + "captures": { + "1": { + "name": "invalid.illegal.name.stata" + } + } + }, + { + "match": "(?<!\\w)(@\\w+)\\b", + "captures": { + "1": { + "name": "keyword.docblockr.stata" + } + } + } + ] + }, + "docstring": { + "patterns": [ + { + "begin": "'''", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.stata" + } + }, + "end": "'''", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.begin.stata" + } + }, + "name": "string.quoted.docstring.stata" + }, + { + "begin": "\"\"\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.stata" + } + }, + "end": "\"\"\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.begin.stata" + } + }, + "name": "string.quoted.docstring.stata" + } + ] + }, + "macro-commands": { + "patterns": [ + { + "begin": "\\b(loc(al|a)?)\\s+([\\w'`\\$\\(\\)\\{\\}]+)\\s*(?=:|=)", + "beginCaptures": { + "1": { + "name": "keyword.macro.stata" + }, + "3": { + "patterns": [ + { + "include": "#macro-local-identifiers" + }, + { + "include": "#macro-local" + }, + { + "include": "#macro-global" + } + ] + } + }, + "end": "\\n", + "patterns": [ + { + "begin": "=", + "beginCaptures": { + "0": { + "name": "keyword.operator.arithmetic.stata" + } + }, + "end": "(?=\\n)", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "begin": ":", + "beginCaptures": { + "0": { + "name": "keyword.operator.arithmetic.stata" + } + }, + "end": "(?=\\n)", + "patterns": [ + { + "include": "#macro-extended-functions" + } + ] + } + ] + }, + { + "begin": "\\b(gl(obal|oba|ob|o)?)\\s+(?=[\\w`\\$])", + "beginCaptures": { + "1": { + "name": "keyword.macro.stata" + } + }, + "end": "(\\})|(?=\\\"|\\s|\\n|/|,|=)", + "patterns": [ + { + "include": "#reserved-names" + }, + { + "match": "[\\w&&[^0-9_]]\\w{0,31}", + "name": "entity.name.type.class.stata" + }, + { + "include": "#macro-local" + }, + { + "include": "#macro-global" + } + ] + }, + { + "begin": "\\b(loc(al|a)?)\\s+(\\+\\+|\\-\\-)?(?=[\\w`\\$])", + "beginCaptures": { + "1": { + "name": "keyword.macro.stata" + }, + "3": { + "name": "keyword.operator.arithmetic.stata" + } + }, + "end": "(?=\\\"|\\s|\\n|/|,|=)", + "patterns": [ + { + "include": "#macro-local-identifiers" + }, + { + "include": "#macro-local" + }, + { + "include": "#macro-global" + } + ] + }, + { + "begin": "\\b(tempvar|tempname|tempfile)\\s*(?=\\s)", + "beginCaptures": { + "1": { + "name": "keyword.macro.stata" + } + }, + "end": "\\n", + "patterns": [ + { + "begin": "///", + "end": "\\n", + "name": "comment.block.stata" + }, + { + "include": "#macro-local-identifiers" + }, + { + "include": "#macro-local" + }, + { + "include": "#macro-global" + } + ] + }, + { + "begin": "\\b(ma(cro|cr|c)?)\\s+(drop|l(ist|is|i)?)\\s*(?=\\s)", + "beginCaptures": { + "0": { + "name": "keyword.macro.stata" + } + }, + "end": "\\n", + "patterns": [ + { + "begin": "///", + "end": "\\n", + "name": "comment.block.stata" + }, + { + "match": "\\*", + "name": "keyword.operator.arithmetic.stata" + }, + { + "include": "#constants" + }, + { + "include": "#macro-global" + }, + { + "include": "#macro-local" + }, + { + "include": "#comments" + }, + { + "match": "\\w{1,31}", + "name": "entity.name.type.class.stata" + } + ] + } + ] + }, + "macro-extended-functions": { + "patterns": [ + { + "match": "\\b(properties)\\b", + "name": "keyword.macro.extendedfcn.stata" + }, + { + "match": "\\b(t(ype|yp|y)?|f(ormat|orma|orm|or|o)?|val(ue|u)?\\s+l(able|abl|ab|a)?|var(iable|iabl|iab|ia|i)?\\s+l(abel|abe|ab|a)?|data\\s+l(able|abl|ab|a)?|sort(edby|edb|ed|e)?|lab(el|e)?|maxlength|constraint|char)\\b", + "name": "keyword.macro.extendedfcn.stata" + }, + { + "match": "\\b(permname)\\b", + "name": "keyword.macro.extendedfcn.stata" + }, + { + "match": "\\b(adosubdir|dir|files?|dirs?|other|sysdir)\\b", + "name": "keyword.macro.extendedfcn.stata" + }, + { + "match": "\\b(env(ironment|ironmen|ironme|ironm|iron|iro|ir|i)?)\\b", + "name": "keyword.macro.extendedfcn.stata" + }, + { + "match": "\\b(all\\s+(globals|scalars|matrices)|((numeric|string)\\s+scalars))\\b", + "name": "keyword.macro.extendedfcn.stata" + }, + { + "match": "\\b(list)\\s+(uniq|dups|sort|clean|retok(enize|eniz|eni|en|e)?|sizeof)\\s+(\\w{1,32})", + "captures": { + "1": { + "name": "keyword.macro.extendedfcn.stata" + }, + "2": { + "name": "keyword.macro.extendedfcn.stata" + }, + "3": { + "name": "entity.name.type.class.stata" + } + } + }, + { + "match": "\\b(list)\\s+(\\w{1,32})\\s+(\\||&|\\-|===|==|in)\\s+(\\w{1,32})", + "captures": { + "1": { + "name": "keyword.macro.extendedfcn.stata" + }, + "2": { + "name": "entity.name.type.class.stata" + }, + "3": { + "name": "keyword.operator.list.stata" + }, + "4": { + "name": "entity.name.type.class.stata" + } + } + }, + { + "match": "\\b(list\\s+posof)\\s+(\")(\\w+)(\")\\s+(in)\\s+(\\w{1,32})", + "captures": { + "1": { + "name": "keyword.macro.extendedfcn.stata" + }, + "2": { + "name": "punctuation.definition.string.begin.stata" + }, + "3": { + "name": "string.quoted.double.stata" + }, + "4": { + "name": "punctuation.definition.string.end.stata" + }, + "5": { + "name": "keyword.macro.extendedfcn.stata" + }, + "6": { + "name": "entity.name.type.class.stata" + } + } + }, + { + "match": "\\b(rown(ames|ame|am|a)?|coln(ames|ame|am|a)?|rowf(ullnames|ullname|ullnam|ullna|ulln|ull|ul|u)?|colf(ullnames|ullname|ullnam|ullna|ulln|ull|ul|u)?|roweq?|coleq?|rownumb|colnumb|roweqnumb|coleqnumb|rownfreeparms|colnfreeparms|rownlfs|colnlfs|rowsof|colsof|rowvarlist|colvarlist|rowlfnames|collfnames)\\b", + "name": "keyword.macro.extendedfcn.stata" + }, + { + "match": "\\b(tsnorm)\\b", + "name": "keyword.macro.extendedfcn.stata" + }, + { + "match": "\\b((copy|(ud|u)?strlen)\\s+(loc(al|a)?|gl(obal|oba|ob|o)?))\\s+([^']+)", + "captures": { + "1": { + "name": "keyword.macro.extendedfcn.stata" + }, + "7": { + "patterns": [ + { + "include": "#macro-local" + }, + { + "include": "#macro-global" + } + ] + } + } + }, + { + "match": "\\b(word\\s+count)", + "captures": { + "1": { + "name": "keyword.macro.extendedfcn.stata" + } + } + }, + { + "match": "(word|piece)\\s+([\\s`'\\w]+)\\s+(of)", + "captures": { + "1": { + "name": "keyword.macro.extendedfcn.stata" + }, + "2": { + "patterns": [ + { + "include": "#macro-local" + }, + { + "include": "#constants" + } + ] + }, + "3": { + "name": "keyword.macro.extendedfcn.stata" + } + } + }, + { + "begin": "\\b(subinstr\\s+(loc(al|a)?|gl(obal|oba|ob|o)?))\\s+(\\w{1,32})", + "end": "(?=//|\\n)", + "beginCaptures": { + "1": { + "name": "keyword.macro.extendedfcn.stata" + }, + "5": { + "name": "entity.name.type.class.stata" + } + }, + "patterns": [ + { + "include": "#macro-local" + }, + { + "include": "#macro-global" + }, + { + "include": "#string-compound" + }, + { + "include": "#string-regular" + }, + { + "match": "(count|coun|cou|co|c)(\\()(local|loca|loc|global|globa|glob|glo|gl)\\s+(\\w{1,32})(\\))", + "captures": { + "1": { + "name": "support.function.builtin.stata" + }, + "2": { + "name": "punctuation.definition.parameters.begin.stata" + }, + "3": { + "name": "keyword.macro.extendedfcn.stata" + }, + "4": { + "name": "entity.name.type.class.stata" + }, + "5": { + "name": "punctuation.definition.parameters.end.stata" + } + } + } + ] + }, + { + "include": "#comments" + }, + { + "include": "#macro-local" + }, + { + "include": "#macro-global" + }, + { + "include": "$self" + } + ] + }, + "macro-local-escaped": { + "patterns": [ + { + "comment": "appropriately color macros that have embedded escaped `,', and $ characters for lazy evaluation", + "begin": "\\\\`(?!\")", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.stata" + } + }, + "end": "\\\\'|'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.stata" + } + }, + "patterns": [ + { + "include": "#macro-local" + }, + { + "include": "#macro-global" + }, + { + "match": "\\w{1,31}", + "name": "entity.name.type.class.stata" + } + ] + } + ] + }, + "macro-local": { + "patterns": [ + { + "begin": "(`)(=)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.string.begin.stata" + }, + "2": { + "name": "keyword.operator.comparison.stata" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.stata" + } + }, + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "begin": "(`)(:)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.string.begin.stata" + }, + "2": { + "name": "keyword.operator.comparison.stata" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.stata" + } + }, + "contentName": "meta.macro-extended-function.stata", + "patterns": [ + { + "include": "#macro-local" + }, + { + "include": "#macro-extended-functions" + }, + { + "include": "#constants" + }, + { + "include": "#string-compound" + }, + { + "include": "#string-regular" + } + ] + }, + { + "begin": "(`)(macval)(\\()", + "beginCaptures": { + "1": { + "name": "punctuation.definition.string.begin.stata" + }, + "2": { + "name": "support.function.builtin.stata" + }, + "3": { + "name": "punctuation.definition.parameters.begin.stata" + } + }, + "end": "(\\))(')", + "endCaptures": { + "1": { + "name": "punctuation.definition.parameters.begin.stata" + }, + "2": { + "name": "punctuation.definition.string.end.stata" + } + }, + "contentName": "meta.macro-extended-function.stata", + "patterns": [ + { + "include": "#macro-local" + }, + { + "include": "#macro-global" + }, + { + "match": "\\w{1,31}", + "name": "entity.name.type.class.stata" + } + ] + }, + { + "begin": "`(?!\")", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.stata" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.stata" + } + }, + "patterns": [ + { + "match": "\\+\\+|\\-\\-", + "name": "keyword.operator.arithmetic.stata" + }, + { + "include": "#macro-local" + }, + { + "include": "#macro-global" + }, + { + "include": "#comments-block" + }, + { + "begin": "[^\\w]", + "end": "\\n|(?=')", + "name": "comment.line.stata" + }, + { + "match": "\\w{1,31}", + "name": "entity.name.type.class.stata" + } + ] + } + ] + }, + "macro-global-escaped": { + "patterns": [ + { + "begin": "(\\\\\\$)(\\\\\\{)?", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.stata" + } + }, + "end": "(\\\\\\})|(?=\\\"|\\s|\\n|/|,)", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.stata" + } + }, + "patterns": [ + { + "include": "#macro-local" + }, + { + "include": "#macro-global" + }, + { + "match": "[\\w&&[^0-9_]]\\w{0,31}|_\\w{1,31}", + "name": "entity.name.type.class.stata" + } + ] + } + ] + }, + "macro-global": { + "patterns": [ + { + "begin": "(\\$)(\\{)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.stata" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.stata" + } + }, + "patterns": [ + { + "include": "#macro-local" + }, + { + "include": "#macro-global" + }, + { + "include": "#comments-block" + }, + { + "begin": "[^\\w]", + "end": "\\n|(?=})", + "name": "comment.line.stata" + }, + { + "match": "\\w{1,32}", + "name": "entity.name.type.class.stata" + } + ] + }, + { + "begin": "\\$", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.stata" + } + }, + "end": "(?!\\w)", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.stata" + } + }, + "patterns": [ + { + "include": "#macro-local" + }, + { + "include": "#macro-global" + }, + { + "match": "[\\w&&[^0-9_]]\\w{0,31}|_\\w{1,31}", + "name": "entity.name.type.class.stata" + } + ] + } + ] + }, + "constants": { + "patterns": [ + { + "include": "#factorvariables" + }, + { + "match": "\\b(?i:(\\d+\\.\\d*(e[\\-\\+]?\\d+)?))(?=[^a-zA-Z_])", + "name": "constant.numeric.float.stata" + }, + { + "match": "(?<=[^0-9a-zA-Z_])(?i:(\\.\\d+(e[\\-\\+]?\\d+)?))", + "name": "constant.numeric.float.stata" + }, + { + "match": "\\b(?i:(\\d+e[\\-\\+]?\\d+))", + "name": "constant.numeric.float.stata" + }, + { + "match": "\\b(\\d+)\\b", + "name": "constant.numeric.integer.decimal.stata" + }, + { + "match": "(?<![\\w])(\\.(?![\\./]))(?![\\w])", + "name": "constant.language.missing.stata" + }, + { + "match": "\\b_all\\b", + "name": "constant.language.allvars.stata" + } + ] + }, + "factorvariables": { + "patterns": [ + { + "match": "\\b(i|c|o)\\.(?=[\\w&&[^0-9]]|\\([\\w&&[^0-9]])", + "name": "constant.language.factorvars.stata" + }, + { + "match": "\\b(i?b)((\\d+)|n)\\.(?=[\\w&&[^0-9]]|\\([\\w&&[^0-9]])", + "captures": { + "0": { + "name": "constant.language.factorvars.stata" + }, + "3": { + "patterns": [ + { + "include": "#constants" + } + ] + } + } + }, + { + "match": "\\b(i?b)(\\()(#\\d+|first|last|freq)(\\))\\.(?=[\\w&&[^0-9]]|\\([\\w&&[^0-9]])", + "captures": { + "0": { + "name": "constant.language.factorvars.stata" + }, + "2": { + "name": "keyword.operator.parentheses.stata" + }, + "3": { + "patterns": [ + { + "include": "#constants" + }, + { + "include": "#operators" + } + ] + }, + "4": { + "name": "keyword.operator.parentheses.stata" + } + } + }, + { + "match": "\\b(i?o?)(\\d+)\\.(?=[\\w&&[^0-9]]|\\([\\w&&[^0-9]])", + "captures": { + "0": { + "name": "constant.language.factorvars.stata" + }, + "2": { + "patterns": [ + { + "include": "#constants" + } + ] + } + } + }, + { + "match": "\\b(i?o?)(\\()(.*?)(\\))(\\.)(?=[\\w&&[^0-9]]|\\([\\w&&[^0-9]])", + "captures": { + "1": { + "name": "constant.language.factorvars.stata" + }, + "2": { + "name": "keyword.operator.parentheses.stata" + }, + "3": { + "patterns": [ + { + "include": "$self" + } + ] + }, + "4": { + "name": "keyword.operator.parentheses.stata" + }, + "5": { + "name": "constant.language.factorvars.stata" + } + } + } + ] + }, + "operators": { + "patterns": [ + { + "match": "\\+\\+|\\-\\-|\\+|\\-|\\*|\\^", + "name": "keyword.operator.arithmetic.stata", + "comment": "++ and -- must come first to support ligatures" + }, + { + "comment": "match division operator but not path separator", + "match": "(?<![\\w.&&[^0-9]])/(?![\\w.&&[^0-9]]|$)", + "name": "keyword.operator.arithmetic.stata" + }, + { + "comment": "match division operator but not path separator", + "match": "(?<![\\w.&&[^0-9]])\\\\(?![\\w.&&[^0-9]]|$)", + "name": "keyword.operator.matrix.addrow.stata" + }, + { + "match": "\\|\\|", + "name": "keyword.operator.graphcombine.stata" + }, + { + "match": "\\&|\\|", + "name": "keyword.operator.logical.stata" + }, + { + "match": "(?:<=|>=|:=|==|!=|~=|<|>|=|!!|!)", + "name": "keyword.operator.comparison.stata" + }, + { + "match": "\\(|\\)", + "name": "keyword.operator.parentheses.stata" + }, + { + "match": "(##|#)", + "name": "keyword.operator.factor-variables.stata" + }, + { + "match": "%", + "name": "keyword.operator.format.stata" + }, + { + "match": ":", + "name": "punctuation.separator.key-value" + }, + { + "match": "\\[", + "name": "punctuation.definition.parameters.begin.stata" + }, + { + "match": "\\]", + "name": "punctuation.definition.parameters.end.stata" + }, + { + "match": ",", + "name": "punctuation.definition.variable.begin.stata" + }, + { + "match": ";", + "name": "keyword.operator.delimiter.stata" + } + ] + }, + "string-compound": { + "patterns": [ + { + "begin": "`\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.stata" + } + }, + "end": "\"'|(?=\n)", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.stata" + } + }, + "name": "string.quoted.double.compound.stata", + "patterns": [ + { + "match": "\"", + "name": "string.quoted.double.compound.stata", + "comment": "This must come before #string-regular and #string-compound to accurately color `\"\"\"' in strings" + }, + { + "match": "```(?=[^']*\")", + "name": "meta.markdown.code.block.stata", + "comment": "see https://github.com/kylebarron/language-stata/issues/53" + }, + { + "include": "#string-regular" + }, + { + "include": "#string-compound" + }, + { + "include": "#macro-local-escaped" + }, + { + "include": "#macro-global-escaped" + }, + { + "include": "#macro-local" + }, + { + "include": "#macro-global" + } + ] + } + ] + }, + "string-regular": { + "patterns": [ + { + "begin": "(?<!`)\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.stata" + } + }, + "end": "(\")(')?|(?=\n)", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.stata" + }, + "2": { + "name": "invalid.illegal.punctuation.stata" + } + }, + "name": "string.quoted.double.stata", + "patterns": [ + { + "match": "```(?=[^']*\")", + "name": "meta.markdown.code.block.stata", + "comment": "see https://github.com/kylebarron/language-stata/issues/53" + }, + { + "include": "#macro-local-escaped" + }, + { + "include": "#macro-global-escaped" + }, + { + "include": "#macro-local" + }, + { + "include": "#macro-global" + } + ] + } + ] + }, + "subscripts": { + "patterns": [ + { + "comment": "highlight expressions, like [_n], when using subscripts on a variable", + "begin": "(?<=[\\w'])(\\[)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.parameters.begin.stata" + } + }, + "end": "(\\])", + "endCaptures": { + "1": { + "name": "punctuation.definition.parameters.end.stata" + } + }, + "name": "meta.subscripts.stata", + "patterns": [ + { + "include": "#macro-local" + }, + { + "include": "#macro-global" + }, + { + "include": "#builtin_variables" + }, + { + "include": "#operators" + }, + { + "include": "#constants" + }, + { + "include": "#functions" + } + ] + } + ] + }, + "reserved-names": { + "patterns": [ + { + "match": "\\b(_all|_b|byte|_coef|_cons|double|float|if|in|int|long|_n|_N|_pi|_pred|_rc|_skip|str[0-9]+|strL|using|with)\\b", + "name": "invalid.illegal.name.stata" + }, + { + "match": "[^\\w'`\\$\\(\\)\\s]", + "name": "invalid.illegal.name.stata" + }, + { + "match": "[0-9][\\w]{31,}", + "name": "invalid.illegal.name.stata" + }, + { + "match": "\\w{33,}", + "name": "invalid.illegal.name.stata" + } + ] + }, + "macro-local-identifiers": { + "patterns": [ + { + "match": "[^\\w'`\\$\\(\\)\\s]", + "name": "invalid.illegal.name.stata" + }, + { + "match": "\\w{32,}", + "name": "invalid.illegal.name.stata" + }, + { + "match": "\\w{1,31}", + "name": "entity.name.type.class.stata" + } + ] + }, + "ascii-regex-functions": { + "patterns": [ + { + "comment": "color regexm with regular quotes i.e. \" ", + "match": "\\b(regexm)(\\()([^,]+)(,)\\s*(\")([^\"]+)(\"(')?)\\s*(\\))", + "captures": { + "1": { + "name": "support.function.builtin.stata" + }, + "2": { + "name": "punctuation.definition.parameters.begin.stata" + }, + "3": { + "patterns": [ + { + "include": "#string-compound" + }, + { + "include": "#string-regular" + }, + { + "include": "#macro-local" + }, + { + "include": "#macro-global" + }, + { + "include": "#functions" + }, + { + "match": "[\\w&&[^0-9]]\\w{0,31}", + "name": "variable.parameter.function.stata" + }, + { + "include": "#comments-triple-slash" + } + ] + }, + "4": { + "name": "punctuation.definition.variable.begin.stata" + }, + "5": { + "name": "punctuation.definition.string.begin.stata" + }, + "6": { + "patterns": [ + { + "include": "#ascii-regex-internals" + } + ] + }, + "7": { + "name": "punctuation.definition.string.end.stata" + }, + "8": { + "name": "invalid.illegal.punctuation.stata" + }, + "9": { + "name": "punctuation.definition.parameters.end.stata" + } + } + }, + { + "comment": "color regexm with compound quotes", + "match": "\\b(regexm)(\\()([^,]+)(,)\\s*(`\")([^\"]+)(\"')\\s*(\\))", + "captures": { + "1": { + "name": "support.function.builtin.stata" + }, + "2": { + "name": "punctuation.definition.parameters.begin.stata" + }, + "3": { + "patterns": [ + { + "include": "#string-compound" + }, + { + "include": "#string-regular" + }, + { + "include": "#macro-local" + }, + { + "include": "#macro-global" + }, + { + "include": "#functions" + }, + { + "match": "[\\w&&[^0-9]]\\w{0,31}", + "name": "variable.parameter.function.stata" + }, + { + "include": "#comments-triple-slash" + } + ] + }, + "4": { + "name": "punctuation.definition.variable.begin.stata" + }, + "5": { + "name": "punctuation.definition.string.begin.stata" + }, + "6": { + "patterns": [ + { + "include": "#ascii-regex-internals" + } + ] + }, + "7": { + "name": "punctuation.definition.string.end.stata" + }, + "8": { + "name": "punctuation.definition.parameters.end.stata" + } + } + }, + { + "comment": "color regexr with regular quotes i.e. \" ", + "match": "\\b(regexr)(\\()([^,]+)(,)\\s*(\")([^\"]+)(\"(')?)\\s*([^\\)]*)(\\))", + "captures": { + "1": { + "name": "support.function.builtin.stata" + }, + "2": { + "name": "punctuation.definition.parameters.begin.stata" + }, + "3": { + "patterns": [ + { + "include": "#string-compound" + }, + { + "include": "#string-regular" + }, + { + "include": "#macro-local" + }, + { + "include": "#macro-global" + }, + { + "include": "#functions" + }, + { + "match": "[\\w&&[^0-9]]\\w{0,31}", + "name": "variable.parameter.function.stata" + }, + { + "include": "#comments" + } + ] + }, + "4": { + "name": "punctuation.definition.variable.begin.stata" + }, + "5": { + "name": "punctuation.definition.string.begin.stata" + }, + "6": { + "patterns": [ + { + "include": "#ascii-regex-internals" + } + ] + }, + "7": { + "name": "punctuation.definition.string.end.stata" + }, + "8": { + "name": "invalid.illegal.punctuation.stata" + }, + "9": { + "patterns": [ + { + "match": ",", + "name": "punctuation.definition.variable.begin.stata" + }, + { + "include": "#string-compound" + }, + { + "include": "#string-regular" + }, + { + "include": "#macro-local" + }, + { + "include": "#macro-global" + }, + { + "include": "#functions" + }, + { + "match": "[\\w&&[^0-9]]\\w{0,31}", + "name": "variable.parameter.function.stata" + }, + { + "include": "#comments-triple-slash" + } + ] + }, + "10": { + "name": "punctuation.definition.parameters.end.stata" + } + } + }, + { + "comment": "color regexr with compound quotes i.e. `\"text\"' ", + "match": "\\b(regexr)(\\()([^,]+)(,)\\s*(`\")([^\"]+)(\"')\\s*([^\\)]*)(\\))", + "captures": { + "1": { + "name": "support.function.builtin.stata" + }, + "2": { + "name": "punctuation.definition.parameters.begin.stata" + }, + "3": { + "patterns": [ + { + "include": "#string-compound" + }, + { + "include": "#string-regular" + }, + { + "include": "#macro-local" + }, + { + "include": "#macro-global" + }, + { + "include": "#functions" + }, + { + "match": "[\\w&&[^0-9]]\\w{0,31}", + "name": "variable.parameter.function.stata" + }, + { + "include": "#comments" + } + ] + }, + "4": { + "name": "punctuation.definition.variable.begin.stata" + }, + "5": { + "name": "punctuation.definition.string.begin.stata" + }, + "6": { + "patterns": [ + { + "include": "#ascii-regex-internals" + } + ] + }, + "7": { + "name": "punctuation.definition.string.end.stata" + }, + "8": { + "patterns": [ + { + "match": ",", + "name": "punctuation.definition.variable.begin.stata" + }, + { + "include": "#string-compound" + }, + { + "include": "#string-regular" + }, + { + "include": "#macro-local" + }, + { + "include": "#macro-global" + }, + { + "include": "#functions" + }, + { + "match": "[\\w&&[^0-9]]\\w{0,31}", + "name": "variable.parameter.function.stata" + }, + { + "include": "#comments-triple-slash" + } + ] + }, + "9": { + "name": "punctuation.definition.parameters.end.stata" + } + } + } + ] + }, + "ascii-regex-internals": { + "patterns": [ + { + "match": "\\^", + "name": "keyword.control.anchor.stata" + }, + { + "match": "\\$(?![a-zA-Z_\\{])", + "name": "keyword.control.anchor.stata", + "comment": "matched when not a global, but must be ascii" + }, + { + "match": "[\\?\\+\\*]", + "name": "keyword.control.quantifier.stata" + }, + { + "match": "\\|", + "name": "keyword.control.or.stata" + }, + { + "begin": "(\\()(?=\\?|\\*|\\+)", + "beginCaptures": { + "1": { + "name": "keyword.operator.group.stata" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "keyword.operator.group.stata" + } + }, + "contentName": "invalid.illegal.regexm.stata" + }, + { + "begin": "(\\()", + "beginCaptures": { + "1": { + "name": "keyword.operator.group.stata" + } + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "keyword.operator.group.stata" + } + }, + "patterns": [ + { + "include": "#ascii-regex-internals" + } + ] + }, + { + "include": "#ascii-regex-character-class" + }, + { + "include": "#macro-local" + }, + { + "include": "#macro-global" + }, + { + "comment": "NOTE: Error if I have .+ No idea why but it works fine it seems with just .", + "match": ".", + "name": "string.quoted.stata" + } + ] + }, + "ascii-regex-character-class": { + "patterns": [ + { + "match": "\\\\[\\*\\+\\?\\-\\.\\^\\$\\|\\[\\]\\(\\)\\\\]", + "name": "constant.character.escape.backslash.stata" + }, + { + "match": "\\.", + "name": "constant.character.character-class.stata" + }, + { + "match": "\\\\.", + "name": "illegal.invalid.character-class.stata" + }, + { + "begin": "(\\[)(\\^)?", + "beginCaptures": { + "1": { + "name": "punctuation.definition.character-class.stata" + }, + "2": { + "name": "keyword.operator.negation.stata" + } + }, + "end": "(\\])", + "endCaptures": { + "1": { + "name": "punctuation.definition.character-class.stata" + } + }, + "name": "constant.other.character-class.set.stata", + "patterns": [ + { + "include": "#ascii-regex-character-class" + }, + { + "captures": { + "2": { + "name": "constant.character.escape.backslash.stata" + }, + "4": { + "name": "constant.character.escape.backslash.stata" + } + }, + "match": "((\\\\.)|.)\\-((\\\\.)|[^\\]])", + "name": "constant.other.character-class.range.stata" + } + ] + } + ] + }, + "unicode-regex-functions": { + "patterns": [ + { + "comment": "color regexm with regular quotes i.e. \" ", + "match": "\\b(ustrregexm)(\\()([^,]+)(,)\\s*(\")([^\"]+)(\"(')?)([,0-9\\s]*)?\\s*(\\))", + "captures": { + "1": { + "name": "support.function.builtin.stata" + }, + "2": { + "name": "punctuation.definition.parameters.begin.stata" + }, + "3": { + "patterns": [ + { + "include": "#string-compound" + }, + { + "include": "#string-regular" + }, + { + "include": "#macro-local" + }, + { + "include": "#macro-global" + }, + { + "include": "#functions" + }, + { + "match": "[\\w&&[^0-9]]\\w{0,31}", + "name": "variable.parameter.function.stata" + }, + { + "include": "#comments-triple-slash" + } + ] + }, + "4": { + "name": "punctuation.definition.variable.begin.stata" + }, + "5": { + "name": "punctuation.definition.string.begin.stata" + }, + "6": { + "patterns": [ + { + "include": "#unicode-regex-internals" + } + ] + }, + "7": { + "name": "punctuation.definition.string.end.stata" + }, + "8": { + "name": "invalid.illegal.punctuation.stata" + }, + "9": { + "patterns": [ + { + "include": "#constants" + }, + { + "match": ",", + "name": "punctuation.definition.variable.begin.stata" + } + ] + }, + "10": { + "name": "punctuation.definition.parameters.end.stata" + } + } + }, + { + "comment": "color regexm with compound quotes", + "match": "\\b(ustrregexm)(\\()([^,]+)(,)\\s*(`\")([^\"]+)(\"')([,0-9\\s]*)?\\s*(\\))", + "captures": { + "1": { + "name": "support.function.builtin.stata" + }, + "2": { + "name": "punctuation.definition.parameters.begin.stata" + }, + "3": { + "patterns": [ + { + "include": "#string-compound" + }, + { + "include": "#string-regular" + }, + { + "include": "#macro-local" + }, + { + "include": "#macro-global" + }, + { + "include": "#functions" + }, + { + "match": "[\\w&&[^0-9]]\\w{0,31}", + "name": "variable.parameter.function.stata" + }, + { + "include": "#comments-triple-slash" + } + ] + }, + "4": { + "name": "punctuation.definition.variable.begin.stata" + }, + "5": { + "name": "punctuation.definition.string.begin.stata" + }, + "6": { + "patterns": [ + { + "include": "#unicode-regex-internals" + } + ] + }, + "7": { + "name": "punctuation.definition.string.end.stata" + }, + "8": { + "patterns": [ + { + "include": "#constants" + }, + { + "match": ",", + "name": "punctuation.definition.variable.begin.stata" + } + ] + }, + "9": { + "name": "punctuation.definition.parameters.end.stata" + } + } + }, + { + "comment": "color regexr with regular quotes i.e. \" ", + "match": "\\b(ustrregexrf|ustrregexra)(\\()([^,]+)(,)\\s*(\")([^\"]+)(\"(')?)\\s*([^\\)]*)(\\))", + "captures": { + "1": { + "name": "support.function.builtin.stata" + }, + "2": { + "name": "punctuation.definition.parameters.begin.stata" + }, + "3": { + "patterns": [ + { + "include": "#string-compound" + }, + { + "include": "#string-regular" + }, + { + "include": "#macro-local" + }, + { + "include": "#macro-global" + }, + { + "include": "#functions" + }, + { + "match": "[\\w&&[^0-9]]\\w{0,31}", + "name": "variable.parameter.function.stata" + }, + { + "include": "#comments" + } + ] + }, + "4": { + "name": "punctuation.definition.variable.begin.stata" + }, + "5": { + "name": "punctuation.definition.string.begin.stata" + }, + "6": { + "patterns": [ + { + "include": "#unicode-regex-internals" + } + ] + }, + "7": { + "name": "punctuation.definition.string.end.stata" + }, + "8": { + "name": "invalid.illegal.punctuation.stata" + }, + "9": { + "patterns": [ + { + "match": ",", + "name": "punctuation.definition.variable.begin.stata" + }, + { + "include": "#string-compound" + }, + { + "include": "#string-regular" + }, + { + "include": "#macro-local" + }, + { + "include": "#macro-global" + }, + { + "include": "#functions" + }, + { + "match": "[\\w&&[^0-9]]\\w{0,31}", + "name": "variable.parameter.function.stata" + }, + { + "include": "#comments-triple-slash" + }, + { + "include": "#constants" + } + ] + }, + "10": { + "name": "punctuation.definition.parameters.end.stata" + } + } + }, + { + "comment": "color regexr with compound quotes i.e. `\"text\"' ", + "match": "\\b(ustrregexrf|ustrregexra)(\\()([^,]+)(,)\\s*(`\")([^\"]+)(\"')\\s*([^\\)]*)(\\))", + "captures": { + "1": { + "name": "support.function.builtin.stata" + }, + "2": { + "name": "punctuation.definition.parameters.begin.stata" + }, + "3": { + "patterns": [ + { + "include": "#string-compound" + }, + { + "include": "#string-regular" + }, + { + "include": "#macro-local" + }, + { + "include": "#macro-global" + }, + { + "include": "#functions" + }, + { + "match": "[\\w&&[^0-9]]\\w{0,31}", + "name": "variable.parameter.function.stata" + }, + { + "include": "#comments" + } + ] + }, + "4": { + "name": "punctuation.definition.variable.begin.stata" + }, + "5": { + "name": "punctuation.definition.string.begin.stata" + }, + "6": { + "patterns": [ + { + "include": "#unicode-regex-internals" + } + ] + }, + "7": { + "name": "punctuation.definition.string.end.stata" + }, + "8": { + "patterns": [ + { + "match": ",", + "name": "punctuation.definition.variable.begin.stata" + }, + { + "include": "#string-compound" + }, + { + "include": "#string-regular" + }, + { + "include": "#macro-local" + }, + { + "include": "#macro-global" + }, + { + "include": "#functions" + }, + { + "match": "[\\w&&[^0-9]]\\w{0,31}", + "name": "variable.parameter.function.stata" + }, + { + "include": "#comments-triple-slash" + }, + { + "include": "#constants" + } + ] + }, + "9": { + "name": "punctuation.definition.parameters.end.stata" + } + } + } + ] + }, + "unicode-regex-internals": { + "patterns": [ + { + "match": "\\\\[bBAZzG]|\\^", + "name": "keyword.control.anchor.stata" + }, + { + "match": "\\$(?![[\\w&&[^0-9_]][\\w]{0,31}|_[\\w]{1,31}\\{])", + "name": "keyword.control.anchor.stata", + "comment": "matched when not a global" + }, + { + "match": "\\\\[1-9][0-9]?", + "name": "keyword.other.back-reference.stata" + }, + { + "match": "[?+*][?+]?|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??", + "name": "keyword.operator.quantifier.stata" + }, + { + "match": "\\|", + "name": "keyword.operator.or.stata" + }, + { + "begin": "\\((?!\\?\\#|\\?=|\\?!|\\?<=|\\?<!)", + "end": "\\)", + "name": "keyword.operator.group.stata", + "patterns": [ + { + "include": "#unicode-regex-internals" + } + ] + }, + { + "begin": "\\(\\?\\#", + "end": "\\)", + "name": "comment.block.stata" + }, + { + "comment": "We are restrictive in what we allow to go after the comment character to avoid false positives, since the availability of comments depend on regexp flags.", + "match": "(?<=^|\\s)#\\s[[a-zA-Z0-9,. \\t?!-:][^\\x{00}-\\x{7F}]]*$", + "name": "comment.line.number-sign.stata" + }, + { + "match": "\\(\\?[iLmsux]+\\)", + "name": "keyword.other.option-toggle.stata" + }, + { + "begin": "(\\()((\\?=)|(\\?!)|(\\?<=)|(\\?<!))", + "beginCaptures": { + "1": { + "name": "keyword.operator.group.stata" + }, + "2": { + "name": "punctuation.definition.group.assertion.stata" + }, + "3": { + "name": "keyword.assertion.look-ahead.stata" + }, + "4": { + "name": "keyword.assertion.negative-look-ahead.stata" + }, + "5": { + "name": "keyword.assertion.look-behind.stata" + }, + "6": { + "name": "keyword.assertion.negative-look-behind.stata" + } + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "keyword.operator.group.stata" + } + }, + "name": "meta.group.assertion.stata", + "patterns": [ + { + "include": "#unicode-regex-internals" + } + ] + }, + { + "begin": "(\\()(\\?\\(([1-9][0-9]?|[a-zA-Z_][a-zA-Z_0-9]*)\\))", + "beginCaptures": { + "1": { + "name": "punctuation.definition.group.stata" + }, + "2": { + "name": "punctuation.definition.group.assertion.conditional.stata" + }, + "3": { + "name": "entity.name.section.back-reference.stata" + } + }, + "comment": "we can make this more sophisticated to match the | character that separates yes-pattern from no-pattern, but it's not really necessary.", + "end": "(\\))", + "name": "meta.group.assertion.conditional.stata", + "patterns": [ + { + "include": "#unicode-regex-internals" + } + ] + }, + { + "include": "#unicode-regex-character-class" + }, + { + "include": "#macro-local" + }, + { + "include": "#macro-global" + }, + { + "comment": "NOTE: Error if I have .+ No idea why but it works fine it seems with just .", + "match": ".", + "name": "string.quoted.stata" + } + ] + }, + "unicode-regex-character-class": { + "patterns": [ + { + "match": "\\\\[wWsSdD]|\\.", + "name": "constant.character.character-class.stata" + }, + { + "match": "\\\\.", + "name": "constant.character.escape.backslash.stata" + }, + { + "begin": "(\\[)(\\^)?", + "beginCaptures": { + "1": { + "name": "punctuation.definition.character-class.stata" + }, + "2": { + "name": "keyword.operator.negation.stata" + } + }, + "end": "(\\])", + "endCaptures": { + "1": { + "name": "punctuation.definition.character-class.stata" + } + }, + "name": "constant.other.character-class.set.stata", + "patterns": [ + { + "include": "#unicode-regex-character-class" + }, + { + "captures": { + "2": { + "name": "constant.character.escape.backslash.stata" + }, + "4": { + "name": "constant.character.escape.backslash.stata" + } + }, + "match": "((\\\\.)|.)\\-((\\\\.)|[^\\]])", + "name": "constant.other.character-class.range.stata" + } + ] + } + ] + } + } +} diff --git a/docs/shiki/languages/stylus.tmLanguage.json b/docs/shiki/languages/stylus.tmLanguage.json new file mode 100644 index 00000000..13a7d7ba --- /dev/null +++ b/docs/shiki/languages/stylus.tmLanguage.json @@ -0,0 +1,1202 @@ +{ + "name": "stylus", + "scopeName": "source.stylus", + "fileTypes": ["styl", "stylus", "css.styl", "css.stylus"], + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#at_rule" + }, + { + "include": "#language_keywords" + }, + { + "include": "#language_constants" + }, + { + "include": "#variable_declaration" + }, + { + "include": "#function" + }, + { + "include": "#selector" + }, + { + "include": "#declaration" + }, + { + "captures": { + "1": { + "name": "punctuation.section.property-list.begin.css" + }, + "2": { + "name": "punctuation.section.property-list.end.css" + } + }, + "match": "(\\{)(\\})", + "name": "meta.brace.curly.css" + }, + { + "match": "\\{|\\}", + "name": "meta.brace.curly.css" + }, + { + "include": "#numeric" + }, + { + "include": "#string" + }, + { + "include": "#operator" + } + ], + "repository": { + "comment": { + "patterns": [ + { + "include": "#comment_block" + }, + { + "include": "#comment_line" + } + ] + }, + "comment_block": { + "begin": "/\\*", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.begin.css" + } + }, + "end": "\\*/", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.end.css" + } + }, + "name": "comment.block.css" + }, + "comment_line": { + "begin": "(^[ \\t]+)?(?=//)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.stylus" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": "//", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.stylus" + } + }, + "end": "(?=\\n)", + "name": "comment.line.double-slash.stylus" + } + ] + }, + "selector": { + "patterns": [ + { + "match": "(?:(?=\\w)(?<![\\w-]))(a|abbr|acronym|address|area|article|aside|audio|b|base|bdi|bdo|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|data|datalist|dd|del|details|dfn|dialog|div|dl|dt|em|embed|eventsource|fieldset|figure|figcaption|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|main|map|mark|math|menu|menuitem|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|picture|pre|progress|q|rb|rp|rt|rtc|ruby|s|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|svg|table|tbody|td|template|textarea|tfoot|th|thead|time|title|tr|track|tt|u|ul|var|video|wbr)(?:(?<=\\w)(?![\\w-]))", + "name": "entity.name.tag.css" + }, + { + "match": "(?:(?=\\w)(?<![\\w-]))(vkern|view|use|tspan|tref|title|textPath|text|symbol|switch|svg|style|stop|set|script|rect|radialGradient|polyline|polygon|pattern|path|mpath|missing-glyph|metadata|mask|marker|linearGradient|line|image|hkern|glyphRef|glyph|g|foreignObject|font-face-uri|font-face-src|font-face-name|font-face-format|font-face|font|filter|feTurbulence|feTile|feSpotLight|feSpecularLighting|fePointLight|feOffset|feMorphology|feMergeNode|feMerge|feImage|feGaussianBlur|feFuncR|feFuncG|feFuncB|feFuncA|feFlood|feDistantLight|feDisplacementMap|feDiffuseLighting|feConvolveMatrix|feComposite|feComponentTransfer|feColorMatrix|feBlend|ellipse|desc|defs|cursor|color-profile|clipPath|circle|animateTransform|animateMotion|animateColor|animate|altGlyphItem|altGlyphDef|altGlyph|a)(?:(?<=\\w)(?![\\w-]))", + "name": "entity.name.tag.svg.css" + }, + { + "match": "\\s*(\\,)\\s*", + "name": "meta.selector.stylus" + }, + { + "match": "\\*", + "name": "meta.selector.stylus" + }, + { + "match": "\\s*(\\&)([a-zA-Z0-9_-]+)\\s*", + "captures": { + "2": { + "name": "entity.other.attribute-name.parent-selector-suffix.stylus" + } + }, + "name": "meta.selector.stylus" + }, + { + "match": "\\s*(\\&)\\s*", + "name": "meta.selector.stylus" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.entity.css" + } + }, + "match": "(\\.)[a-zA-Z0-9_-]+", + "name": "entity.other.attribute-name.class.css" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.entity.css" + } + }, + "match": "(#)[a-zA-Z][a-zA-Z0-9_-]*", + "name": "entity.other.attribute-name.id.css" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.entity.css" + } + }, + "match": "(:+)(after|before|content|first-letter|first-line|host|(-(moz|webkit|ms)-)?selection)\\b", + "name": "entity.other.attribute-name.pseudo-element.css" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.entity.css" + } + }, + "match": "(:)((first|last)-child|(first|last|only)-of-type|empty|root|target|first|left|right)\\b", + "name": "entity.other.attribute-name.pseudo-class.css" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.entity.css" + } + }, + "match": "(:)(checked|enabled|default|disabled|indeterminate|invalid|optional|required|valid)\\b", + "name": "entity.other.attribute-name.pseudo-class.ui-state.css" + }, + { + "begin": "((:)not)(\\()", + "beginCaptures": { + "1": { + "name": "entity.other.attribute-name.pseudo-class.css" + }, + "2": { + "name": "punctuation.definition.entity.css" + }, + "3": { + "name": "punctuation.section.function.css" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.function.css" + } + }, + "patterns": [ + { + "include": "#selector" + } + ] + }, + { + "captures": { + "1": { + "name": "entity.other.attribute-name.pseudo-class.css" + }, + "2": { + "name": "punctuation.definition.entity.css" + }, + "3": { + "name": "punctuation.section.function.css" + }, + "4": { + "name": "constant.numeric.css" + }, + "5": { + "name": "punctuation.section.function.css" + } + }, + "match": "((:)nth-(?:(?:last-)?child|(?:last-)?of-type))(\\()(\\-?(?:\\d+n?|n)(?:\\+\\d+)?|even|odd)(\\))" + }, + { + "match": "((:)dir)\\s*(?:(\\()(ltr|rtl)?(\\)))?", + "captures": { + "1": { + "name": "entity.other.attribute-name.pseudo-class.css" + }, + "2": { + "name": "puncutation.definition.entity.css" + }, + "3": { + "name": "punctuation.section.function.css" + }, + "4": { + "name": "constant.language.css" + }, + "5": { + "name": "punctuation.section.function.css" + } + } + }, + { + "match": "((:)lang)\\s*(?:(\\()(\\w+(-\\w+)?)?(\\)))?", + "captures": { + "1": { + "name": "entity.other.attribute-name.pseudo-class.css" + }, + "2": { + "name": "puncutation.definition.entity.css" + }, + "3": { + "name": "punctuation.section.function.css" + }, + "4": { + "name": "constant.language.css" + }, + "6": { + "name": "punctuation.section.function.css" + } + } + }, + { + "captures": { + "1": { + "name": "punctuation.definition.entity.css" + } + }, + "match": "(:)(active|hover|link|visited|focus)\\b", + "name": "entity.other.attribute-name.pseudo-class.css" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.entity.css" + } + }, + "match": "(::)(shadow)\\b", + "name": "entity.other.attribute-name.pseudo-class.css" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.entity.css" + }, + "2": { + "name": "entity.other.attribute-name.attribute.css" + }, + "3": { + "name": "punctuation.separator.operator.css" + }, + "4": { + "name": "string.unquoted.attribute-value.css" + }, + "5": { + "name": "string.quoted.double.attribute-value.css" + }, + "6": { + "name": "punctuation.definition.string.begin.css" + }, + "7": { + "name": "punctuation.definition.string.end.css" + }, + "8": { + "name": "punctuation.definition.entity.css" + } + }, + "match": "(?i)(\\[)\\s*(-?[_a-z\\\\[[:^ascii:]]][_a-z0-9\\-\\\\[[:^ascii:]]]*)(?:\\s*([~|^$*]?=)\\s*(?:(-?[_a-z\\\\[[:^ascii:]]][_a-z0-9\\-\\\\[[:^ascii:]]]*)|((?>(['\"])(?:[^\\\\]|\\\\.)*?(\\6)))))?\\s*(\\])", + "name": "meta.attribute-selector.css" + }, + { + "include": "#interpolation" + }, + { + "include": "#variable" + } + ] + }, + "variable_declaration": { + "begin": "^[^\\S\\n]*(\\$?[a-zA-Z_-][a-zA-Z0-9_-]*)[^\\S\\n]*(\\=|\\?\\=|\\:\\=)", + "beginCaptures": { + "1": { + "name": "variable.stylus" + }, + "2": { + "name": "keyword.operator.stylus" + } + }, + "end": "(\\n)|(;)|(?=\\})", + "endCaptures": { + "2": { + "name": "punctuation.terminator.rule.css" + } + }, + "patterns": [ + { + "include": "#property_values" + } + ] + }, + "declaration": { + "begin": "((?<=^)[^\\S\\n]+)|((?<=;)[^\\S\\n]*)|((?<=\\{)[^\\S\\n]*)", + "end": "(?=\\n)|(;)|(?=\\})|(\\n)", + "endCaptures": { + "2": { + "name": "punctuation.terminator.rule.css" + } + }, + "name": "meta.property-list.css", + "patterns": [ + { + "match": "(?x) (?<![\\w-])\n--\n(?:[-a-zA-Z_] | [^\\x00-\\x7F]) # First letter\n(?:[-a-zA-Z0-9_] | [^\\x00-\\x7F] # Remainder of identifier\n |\\\\(?:[0-9a-fA-F]{1,6}|.)\n)*", + "name": "variable.css" + }, + { + "include": "#language_keywords" + }, + { + "include": "#language_constants" + }, + { + "match": "(?:(?<=^)[^\\S\\n]+(\\n))" + }, + { + "match": "\\G\\s*(counter-reset|counter-increment)(?:(:)|[^\\S\\n])[^\\S\\n]*([a-zA-Z_-][a-zA-Z0-9_-]*)", + "captures": { + "1": { + "name": "support.type.property-name.css" + }, + "2": { + "name": "punctuation.separator.key-value.css" + }, + "3": { + "name": "variable.section.css" + } + }, + "name": "meta.property.counter.css" + }, + { + "begin": "\\G\\s*(filter)(?:(:)|[^\\S\\n])[^\\S\\n]*", + "beginCaptures": { + "1": { + "name": "support.type.property-name.css" + }, + "2": { + "name": "punctuation.separator.key-value.css" + } + }, + "end": "(?=\\n|;|\\}|$)", + "name": "meta.property.filter.css", + "patterns": [ + { + "include": "#function" + }, + { + "include": "#property_values" + } + ] + }, + { + "include": "#property" + }, + { + "include": "#interpolation" + }, + { + "include": "$self" + } + ] + }, + "property": { + "begin": "(?x:\\G\\s*(?:\n (-webkit-[-A-Za-z]+|-moz-[-A-Za-z]+|-o-[-A-Za-z]+|-ms-[-A-Za-z]+|-khtml-[-A-Za-z]+|zoom|z-index|y|x|wrap|word-wrap|word-spacing|word-break|word|width|widows|white-space-collapse|white-space|white|weight|volume|voice-volume|voice-stress|voice-rate|voice-pitch-range|voice-pitch|voice-family|voice-duration|voice-balance|voice|visibility|vertical-align|variant|user-select|up|unicode-bidi|unicode-range|unicode|trim|transition-timing-function|transition-property|transition-duration|transition-delay|transition|transform|touch-action|top-width|top-style|top-right-radius|top-left-radius|top-color|top|timing-function|text-wrap|text-transform|text-shadow|text-replace|text-rendering|text-overflow|text-outline|text-justify|text-indent|text-height|text-emphasis|text-decoration|text-align-last|text-align|text|target-position|target-new|target-name|target|table-layout|tab-size|style-type|style-position|style-image|style|string-set|stretch|stress|stacking-strategy|stacking-shift|stacking-ruby|stacking|src|speed|speech-rate|speech|speak-punctuation|speak-numeral|speak-header|speak|span|spacing|space-collapse|space|sizing|size-adjust|size|shadow|respond-to|rule-width|rule-style|rule-color|rule|ruby-span|ruby-position|ruby-overhang|ruby-align|ruby|rows|rotation-point|rotation|role|right-width|right-style|right-color|right|richness|rest-before|rest-after|rest|resource|resize|reset|replace|repeat|rendering-intent|rate|radius|quotes|punctuation-trim|punctuation|property|profile|presentation-level|presentation|position|pointer-events|point|play-state|play-during|play-count|pitch-range|pitch|phonemes|pause-before|pause-after|pause|page-policy|page-break-inside|page-break-before|page-break-after|page|padding-top|padding-right|padding-left|padding-bottom|padding|pack|overhang|overflow-y|overflow-x|overflow-style|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|origin|orientation|orient|ordinal-group|order|opacity|offset|numeral|new|nav-up|nav-right|nav-left|nav-index|nav-down|nav|name|move-to|model|mix-blend-mode|min-width|min-height|min|max-width|max-height|max|marquee-style|marquee-speed|marquee-play-count|marquee-direction|marquee|marks|mark-before|mark-after|mark|margin-top|margin-right|margin-left|margin-bottom|margin|mask-image|list-style-type|list-style-position|list-style-image|list-style|list|lines|line-stacking-strategy|line-stacking-shift|line-stacking-ruby|line-stacking|line-height|line-break|level|letter-spacing|length|left-width|left-style|left-color|left|label|justify-content|justify|iteration-count|inline-box-align|initial-value|initial-size|initial-before-align|initial-before-adjust|initial-after-align|initial-after-adjust|index|indent|increment|image-resolution|image-orientation|image|icon|hyphens|hyphenate-resource|hyphenate-lines|hyphenate-character|hyphenate-before|hyphenate-after|hyphenate|height|header|hanging-punctuation|gap|grid|grid-area|grid-auto-columns|grid-auto-flow|grid-auto-rows|grid-column|grid-column-end|grid-column-start|grid-row|grid-row-end|grid-row-start|grid-template|grid-template-areas|grid-template-columns|grid-template-rows|row-gap|gap|font-kerning|font-language-override|font-weight|font-variant-caps|font-variant|font-style|font-synthesis|font-stretch|font-size-adjust|font-size|font-family|font|float-offset|float|flex-wrap|flex-shrink|flex-grow|flex-group|flex-flow|flex-direction|flex-basis|flex|fit-position|fit|fill|filter|family|empty-cells|emphasis|elevation|duration|drop-initial-value|drop-initial-size|drop-initial-before-align|drop-initial-before-adjust|drop-initial-after-align|drop-initial-after-adjust|drop|down|dominant-baseline|display-role|display-model|display|direction|delay|decoration-break|decoration|cursor|cue-before|cue-after|cue|crop|counter-reset|counter-increment|counter|count|content|columns|column-width|column-span|column-rule-width|column-rule-style|column-rule-color|column-rule|column-gap|column-fill|column-count|column-break-before|column-break-after|column|color-profile|color|collapse|clip|clear|character|caption-side|break-inside|break-before|break-after|break|box-sizing|box-shadow|box-pack|box-orient|box-ordinal-group|box-lines|box-flex-group|box-flex|box-direction|box-decoration-break|box-align|box|bottom-width|bottom-style|bottom-right-radius|bottom-left-radius|bottom-color|bottom|border-width|border-top-width|border-top-style|border-top-right-radius|border-top-left-radius|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-radius|border-length|border-left-width|border-left-style|border-left-color|border-left|border-image|border-color|border-collapse|border-bottom-width|border-bottom-style|border-bottom-right-radius|border-bottom-left-radius|border-bottom-color|border-bottom|border|bookmark-target|bookmark-level|bookmark-label|bookmark|binding|bidi|before|baseline-shift|baseline|balance|background-blend-mode|background-size|background-repeat|background-position|background-origin|background-image|background-color|background-clip|background-break|background-attachment|background|azimuth|attachment|appearance|animation-timing-function|animation-play-state|animation-name|animation-iteration-count|animation-duration|animation-direction|animation-delay|animation-fill-mode|animation|alignment-baseline|alignment-adjust|alignment|align-self|align-last|align-items|align-content|align|after|adjust|will-change)|\n (writing-mode|text-anchor|stroke-width|stroke-opacity|stroke-miterlimit|stroke-linejoin|stroke-linecap|stroke-dashoffset|stroke-dasharray|stroke|stop-opacity|stop-color|shape-rendering|marker-start|marker-mid|marker-end|lighting-color|kerning|image-rendering|glyph-orientation-vertical|glyph-orientation-horizontal|flood-opacity|flood-color|fill-rule|fill-opacity|fill|enable-background|color-rendering|color-interpolation-filters|color-interpolation|clip-rule|clip-path)|\n ([a-zA-Z_-][a-zA-Z0-9_-]*)\n)(?!([^\\S\\n]*&)|([^\\S\\n]*\\{))(?=:|([^\\S\\n]+[^\\s])))", + "beginCaptures": { + "1": { + "name": "support.type.property-name.css" + }, + "2": { + "name": "support.type.property-name.svg.css" + }, + "3": { + "name": "support.function.mixin.stylus" + } + }, + "end": "(;)|(?=\\n|\\}|$)", + "endCaptures": { + "1": { + "name": "punctuation.terminator.rule.css" + } + }, + "patterns": [ + { + "include": "#property_value" + } + ] + }, + "property_value": { + "begin": "\\G(?:(:)|(\\s))(\\s*)(?!&)", + "beginCaptures": { + "1": { + "name": "punctuation.separator.key-value.css" + }, + "2": { + "name": "punctuation.separator.key-value.css" + } + }, + "end": "(?=\\n|;|\\})", + "endCaptures": { + "1": { + "name": "punctuation.terminator.rule.css" + } + }, + "name": "meta.property-value.css", + "patterns": [ + { + "include": "#property_values" + }, + { + "match": "[^\\n]+?" + } + ] + }, + "property_values": { + "patterns": [ + { + "include": "#function" + }, + { + "include": "#comment" + }, + { + "include": "#language_keywords" + }, + { + "include": "#language_constants" + }, + { + "match": "(?:(?=\\w)(?<![\\w-]))(wrap-reverse|wrap|whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|unicase|underline|ultra-expanded|ultra-condensed|transparent|transform|top|titling-caps|thin|thick|text-top|text-bottom|text|tb-rl|table-row-group|table-row|table-header-group|table-footer-group|table-column-group|table-column|table-cell|table|sw-resize|super|strict|stretch|step-start|step-end|static|square|space-between|space-around|space|solid|soft-light|small-caps|separate|semi-expanded|semi-condensed|se-resize|scroll|screen|saturation|s-resize|running|rtl|row-reverse|row-resize|row|round|right|ridge|reverse|repeat-y|repeat-x|repeat|relative|progressive|progress|pre-wrap|pre-line|pre|pointer|petite-caps|paused|pan-x|pan-left|pan-right|pan-y|pan-up|pan-down|padding-box|overline|overlay|outside|outset|optimizeSpeed|optimizeLegibility|opacity|oblique|nw-resize|nowrap|not-allowed|normal|none|no-repeat|no-drop|newspaper|ne-resize|n-resize|multiply|move|middle|medium|max-height|manipulation|main-size|luminosity|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|local|list-item|linear(?!-)|line-through|line-edge|line|lighter|lighten|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline-block|inline|inherit|infinite|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|hue|horizontal|hidden|help|hard-light|hand|groove|geometricPrecision|forwards|flex-start|flex-end|flex|fixed|extra-expanded|extra-condensed|expanded|exclusion|ellipsis|ease-out|ease-in-out|ease-in|ease|e-resize|double|dotted|distribute-space|distribute-letter|distribute-all-lines|distribute|disc|disabled|difference|default|decimal|dashed|darken|currentColor|crosshair|cover|content-box|contain|condensed|column-reverse|column|color-dodge|color-burn|color|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|border-box|bolder|bold|block|bidi-override|below|baseline|balance|backwards|auto|antialiased|always|alternate-reverse|alternate|all-small-caps|all-scroll|all-petite-caps|all|absolute)(?:(?<=\\w)(?![\\w-]))", + "name": "support.constant.property-value.css" + }, + { + "match": "(?:(?=\\w)(?<![\\w-]))(start|sRGB|square|round|optimizeSpeed|optimizeQuality|nonzero|miter|middle|linearRGB|geometricPrecision |evenodd |end |crispEdges|butt|bevel)(?:(?<=\\w)(?![\\w-]))", + "name": "support.constant.property-value.svg.css" + }, + { + "include": "#font_name" + }, + { + "include": "#numeric" + }, + { + "include": "#color" + }, + { + "include": "#string" + }, + { + "match": "\\!\\s*important", + "name": "keyword.other.important.css" + }, + { + "include": "#operator" + }, + { + "include": "#stylus_keywords" + }, + { + "include": "#property_variable" + } + ] + }, + "numeric": { + "patterns": [ + { + "captures": { + "1": { + "name": "keyword.other.unit.css" + } + }, + "match": "(?x) (?<!\\w|-)(?:(?:-|\\+)?(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+)) ((?:px|pt|ch|cm|mm|in|r?em|ex|pc|deg|g?rad|dpi|dpcm|dppx|fr|ms|s|turn|vh|vmax|vmin|vw)\\b|%)?", + "name": "constant.numeric.css" + } + ] + }, + "color": { + "patterns": [ + { + "begin": "\\b(rgb|rgba|hsl|hsla)(\\()", + "beginCaptures": { + "1": { + "name": "support.function.color.css" + }, + "2": { + "name": "punctuation.section.function.css" + } + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.section.function.css" + } + }, + "name": "meta.function.color.css", + "patterns": [ + { + "match": "\\s*(,)\\s*", + "name": "punctuation.separator.parameter.css" + }, + { + "include": "#numeric" + }, + { + "include": "#property_variable" + } + ] + }, + { + "captures": { + "1": { + "name": "punctuation.definition.constant.css" + } + }, + "match": "(#)([0-9a-fA-F]{3}|[0-9a-fA-F]{6})\\b", + "name": "constant.other.color.rgb-value.css" + }, + { + "comment": "http://www.w3.org/TR/CSS21/syndata.html#value-def-color", + "match": "\\b(aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)\\b", + "name": "support.constant.color.w3c-standard-color-name.css" + }, + { + "comment": "http://www.w3.org/TR/css3-color/#svg-color", + "match": "\\b(aliceblue|antiquewhite|aquamarine|azure|beige|bisque|blanchedalmond|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|gainsboro|ghostwhite|gold|goldenrod|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|limegreen|linen|magenta|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|oldlace|olivedrab|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|thistle|tomato|turquoise|violet|wheat|whitesmoke|yellowgreen)\\b", + "name": "support.constant.color.w3c-extended-color-name.css" + } + ] + }, + "string": { + "patterns": [ + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.css" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.css" + } + }, + "name": "string.quoted.double.css", + "patterns": [ + { + "match": "\\\\([a-fA-F0-9]{1,6}|.)", + "name": "constant.character.escape.css" + } + ] + }, + { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.css" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.css" + } + }, + "name": "string.quoted.single.css", + "patterns": [ + { + "match": "\\\\([a-fA-F0-9]{1,6}|.)", + "name": "constant.character.escape.css" + } + ] + } + ] + }, + "at_rule": { + "patterns": [ + { + "begin": "\\s*((@)(import|require))\\b\\s*", + "beginCaptures": { + "1": { + "name": "keyword.control.at-rule.import.stylus" + }, + "2": { + "name": "punctuation.definition.keyword.stylus" + } + }, + "end": "\\s*((?=;|$|\\n))", + "endCaptures": { + "1": { + "name": "punctuation.terminator.rule.css" + } + }, + "name": "meta.at-rule.import.css", + "patterns": [ + { + "include": "#string" + } + ] + }, + { + "begin": "\\s*((@)(extend[s]?)\\b)\\s*", + "beginCaptures": { + "1": { + "name": "keyword.control.at-rule.extend.stylus" + }, + "2": { + "name": "punctuation.definition.keyword.stylus" + } + }, + "end": "\\s*((?=;|$|\\n))", + "endCaptures": { + "1": { + "name": "punctuation.terminator.rule.css" + } + }, + "name": "meta.at-rule.extend.css", + "patterns": [ + { + "include": "#selector" + } + ] + }, + { + "match": "^\\s*((@)font-face)\\b", + "captures": { + "1": { + "name": "keyword.control.at-rule.fontface.stylus" + }, + "2": { + "name": "punctuation.definition.keyword.stylus" + } + }, + "name": "meta.at-rule.fontface.stylus" + }, + { + "match": "^\\s*((@)css)\\b", + "captures": { + "1": { + "name": "keyword.control.at-rule.css.stylus" + }, + "2": { + "name": "punctuation.definition.keyword.stylus" + } + }, + "name": "meta.at-rule.css.stylus" + }, + { + "begin": "\\s*((@)charset)\\b\\s*", + "beginCaptures": { + "1": { + "name": "keyword.control.at-rule.charset.stylus" + }, + "2": { + "name": "punctuation.definition.keyword.stylus" + } + }, + "end": "\\s*((?=;|$|\\n))", + "name": "meta.at-rule.charset.stylus", + "patterns": [ + { + "include": "#string" + } + ] + }, + { + "begin": "\\s*((@)keyframes)\\b\\s+([a-zA-Z_-][a-zA-Z0-9_-]*)", + "beginCaptures": { + "1": { + "name": "keyword.control.at-rule.keyframes.stylus" + }, + "2": { + "name": "punctuation.definition.keyword.stylus" + }, + "3": { + "name": "entity.name.function.keyframe.stylus" + } + }, + "end": "\\s*((?=\\{|$|\\n))", + "name": "meta.at-rule.keyframes.stylus" + }, + { + "begin": "(?=(\\b(\\d+%|from\\b|to\\b)))", + "end": "(?=(\\{|\\n))", + "name": "meta.at-rule.keyframes.stylus", + "patterns": [ + { + "match": "(\\b(\\d+%|from\\b|to\\b))", + "name": "entity.other.attribute-name.stylus" + } + ] + }, + { + "match": "^\\s*((@)media)\\b", + "captures": { + "1": { + "name": "keyword.control.at-rule.media.stylus" + }, + "2": { + "name": "punctuation.definition.keyword.stylus" + } + }, + "name": "meta.at-rule.media.stylus" + }, + { + "match": "(?:(?=\\w)(?<![\\w-]))(width|scan|resolution|orientation|monochrome|min-width|min-resolution|min-monochrome|min-height|min-device-width|min-device-height|min-device-aspect-ratio|min-color-index|min-color|min-aspect-ratio|max-width|max-resolution|max-monochrome|max-height|max-device-width|max-device-height|max-device-aspect-ratio|max-color-index|max-color|max-aspect-ratio|height|grid|device-width|device-height|device-aspect-ratio|color-index|color|aspect-ratio)(?:(?<=\\w)(?![\\w-]))", + "name": "support.type.property-name.media-feature.media.css" + }, + { + "match": "(?:(?=\\w)(?<![\\w-]))(tv|tty|screen|projection|print|handheld|embossed|braille|aural|all)(?:(?<=\\w)(?![\\w-]))", + "name": "support.constant.media-type.media.css" + }, + { + "match": "(?:(?=\\w)(?<![\\w-]))(portrait|landscape)(?:(?<=\\w)(?![\\w-]))", + "name": "support.constant.property-value.media-property.media.css" + } + ] + }, + "operator": { + "patterns": [ + { + "match": "((?:\\?|:|!|~|\\+|(\\s-\\s)|(?:\\*)?\\*|\\/|%|(\\.)?\\.\\.|<|>|(?:=|:|\\?|\\+|-|\\*|\\/|%|<|>)?=|!=)|\\b(?:in|is(?:nt)?|(?<!:)not|or|and)\\b)", + "name": "keyword.operator.stylus" + }, + { + "include": "#char_escape" + } + ] + }, + "font_name": { + "match": "(\\b(?i:arial|century|comic|courier|cursive|fantasy|futura|garamond|georgia|helvetica|impact|lucida|monospace|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif)\\b)", + "name": "support.constant.font-name.css" + }, + "variable": { + "match": "(\\$[a-zA-Z_-][a-zA-Z0-9_-]*)", + "name": "variable.stylus" + }, + "property_variable": { + "patterns": [ + { + "include": "#variable" + }, + { + "match": "(?<!^)(\\@[a-zA-Z_-][a-zA-Z0-9_-]*)", + "name": "variable.property.stylus" + } + ] + }, + "function": { + "begin": "(?=[a-zA-Z_-][a-zA-Z0-9_-]*\\()", + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.section.function.css" + } + }, + "patterns": [ + { + "begin": "(format|url|local)(\\()", + "beginCaptures": { + "1": { + "name": "support.function.misc.css" + }, + "2": { + "name": "punctuation.section.function.css" + } + }, + "end": "(?=\\))", + "name": "meta.function.misc.css", + "patterns": [ + { + "match": "(?<=\\()[^\\)\\s]*(?=\\))", + "name": "string.css" + }, + { + "include": "#string" + }, + { + "include": "#variable" + }, + { + "include": "#operator" + }, + { + "match": "\\s*" + } + ] + }, + { + "match": "(counter)(\\()([a-zA-Z_-][a-zA-Z0-9_-]*)(?=\\))", + "captures": { + "1": { + "name": "support.function.misc.counter.css" + }, + "2": { + "name": "punctuation.section.function.css" + }, + "3": { + "name": "variable.section.css" + } + }, + "name": "meta.function.misc.counter.css" + }, + { + "begin": "(counters)(\\()", + "beginCaptures": { + "1": { + "name": "support.function.misc.counters.css" + }, + "2": { + "name": "punctuation.section.function.css" + } + }, + "end": "(?=\\))", + "name": "meta.function.misc.counters.css", + "patterns": [ + { + "match": "\\G[a-zA-Z_-][a-zA-Z0-9_-]*", + "name": "variable.section.css" + }, + { + "match": "\\s*(,)\\s*", + "name": "punctuation.separator.parameter.css" + }, + { + "include": "#string" + }, + { + "include": "#interpolation" + } + ] + }, + { + "begin": "(attr)(\\()", + "beginCaptures": { + "1": { + "name": "support.function.misc.attr.css" + }, + "2": { + "name": "punctuation.section.function.css" + } + }, + "end": "(?=\\))", + "name": "meta.function.misc.attr.css", + "patterns": [ + { + "match": "\\G[a-zA-Z_-][a-zA-Z0-9_-]*", + "name": "entity.other.attribute-name.attribute.css" + }, + { + "match": "(?<=[a-zA-Z0-9_-])\\s*\\b(string|color|url|integer|number|length|em|ex|px|rem|vw|vh|vmin|vmax|mm|cm|in|pt|pc|angle|deg|grad|rad|time|s|ms|frequency|Hz|kHz|%)\\b", + "name": "support.type.attr.css" + }, + { + "match": "\\s*(,)\\s*", + "name": "punctuation.separator.parameter.css" + }, + { + "include": "#string" + }, + { + "include": "#interpolation" + } + ] + }, + { + "begin": "(calc)(\\()", + "beginCaptures": { + "1": { + "name": "support.function.misc.calc.css" + }, + "2": { + "name": "punctuation.section.function.css" + } + }, + "end": "(?=\\))", + "name": "meta.function.misc.calc.css", + "patterns": [ + { + "include": "#property_values" + } + ] + }, + { + "begin": "(cubic-bezier)(\\()", + "beginCaptures": { + "1": { + "name": "support.function.timing.cubic-bezier.css" + }, + "2": { + "name": "punctuation.section.function.css" + } + }, + "end": "(?=\\))", + "name": "meta.function.timing.cubic-bezier.css", + "patterns": [ + { + "match": "\\s*(,)\\s*", + "name": "punctuation.separator.parameter.css" + }, + { + "include": "#numeric" + }, + { + "include": "#interpolation" + } + ] + }, + { + "begin": "(steps)(\\()", + "beginCaptures": { + "1": { + "name": "support.function.timing.steps.css" + }, + "2": { + "name": "punctuation.section.function.css" + } + }, + "end": "(?=\\))", + "name": "meta.function.timing.steps.css", + "patterns": [ + { + "match": "\\s*(,)\\s*", + "name": "punctuation.separator.parameter.css" + }, + { + "include": "#numeric" + }, + { + "match": "\\b(start|end)\\b", + "name": "support.constant.timing.steps.direction.css" + }, + { + "include": "#interpolation" + } + ] + }, + { + "begin": "(linear-gradient|radial-gradient|repeating-linear-gradient|repeating-radial-gradient)(\\()", + "beginCaptures": { + "1": { + "name": "support.function.gradient.css" + }, + "2": { + "name": "punctuation.section.function.css" + } + }, + "end": "(?=\\))", + "name": "meta.function.gradient.css", + "patterns": [ + { + "match": "\\s*(,)\\s*", + "name": "punctuation.separator.parameter.css" + }, + { + "include": "#numeric" + }, + { + "include": "#color" + }, + { + "match": "\\b(to|bottom|right|left|top|circle|ellipse|center|closest-side|closest-corner|farthest-side|farthest-corner|at)\\b", + "name": "support.constant.gradient.css" + }, + { + "include": "#interpolation" + } + ] + }, + { + "begin": "(blur|brightness|contrast|grayscale|hue-rotate|invert|opacity|saturate|sepia)(\\()", + "beginCaptures": { + "1": { + "name": "support.function.filter.css" + }, + "2": { + "name": "punctuation.section.function.css" + } + }, + "end": "(?=\\))", + "name": "meta.function.filter.css", + "patterns": [ + { + "include": "#numeric" + }, + { + "include": "#property_variable" + }, + { + "include": "#interpolation" + } + ] + }, + { + "begin": "(drop-shadow)(\\()", + "beginCaptures": { + "1": { + "name": "support.function.filter.drop-shadow.css" + }, + "2": { + "name": "punctuation.section.function.css" + } + }, + "end": "(?=\\))", + "name": "meta.function.filter.drop-shadow.css", + "patterns": [ + { + "include": "#numeric" + }, + { + "include": "#color" + }, + { + "include": "#property_variable" + }, + { + "include": "#interpolation" + } + ] + }, + { + "begin": "(matrix|matrix3d|perspective|rotate|rotate3d|rotate[Xx]|rotate[yY]|rotate[zZ]|scale|scale3d|scale[xX]|scale[yY]|scale[zZ]|skew|skew[xX]|skew[yY]|translate|translate3d|translate[xX]|translate[yY]|translate[zZ])(\\()", + "beginCaptures": { + "1": { + "name": "support.function.transform.css" + }, + "2": { + "name": "punctuation.section.function.css" + } + }, + "end": "(?=\\))", + "name": "meta.function.transform.css", + "patterns": [ + { + "include": "#numeric" + }, + { + "include": "#property_variable" + }, + { + "include": "#interpolation" + } + ] + }, + { + "match": "(url|local|format|counter|counters|attr|calc)(?=\\()", + "name": "support.function.misc.css" + }, + { + "match": "(cubic-bezier|steps)(?=\\()", + "name": "support.function.timing.css" + }, + { + "match": "(linear-gradient|radial-gradient|repeating-linear-gradient|repeating-radial-gradient)(?=\\()", + "name": "support.function.gradient.css" + }, + { + "match": "(blur|brightness|contrast|drop-shadow|grayscale|hue-rotate|invert|opacity|saturate|sepia)(?=\\()", + "name": "support.function.filter.css" + }, + { + "match": "(matrix|matrix3d|perspective|rotate|rotate3d|rotate[Xx]|rotate[yY]|rotate[zZ]|scale|scale3d|scale[xX]|scale[yY]|scale[zZ]|skew|skew[xX]|skew[yY]|translate|translate3d|translate[xX]|translate[yY]|translate[zZ])(?=\\()", + "name": "support.function.transform.css" + }, + { + "begin": "([a-zA-Z_-][a-zA-Z0-9_-]*)(\\()", + "beginCaptures": { + "1": { + "name": "entity.name.function.stylus" + }, + "2": { + "name": "punctuation.section.function.css" + } + }, + "end": "(?=\\))", + "name": "meta.function.stylus", + "patterns": [ + { + "name": "variable.argument.stylus", + "match": "(?x)\n--\n(?:[-a-zA-Z_] | [^\\x00-\\x7F]) # First letter\n(?:[-a-zA-Z0-9_] | [^\\x00-\\x7F] # Remainder of identifier\n |\\\\(?:[0-9a-fA-F]{1,6}|.)\n)*" + }, + { + "match": "\\s*(,)\\s*", + "name": "punctuation.separator.parameter.css" + }, + { + "include": "#interpolation" + }, + { + "include": "#property_values" + } + ] + }, + { + "match": "\\(", + "name": "punctuation.section.function.css" + } + ] + }, + "interpolation": { + "name": "meta.interpolation.stylus", + "begin": "(?:(\\{)[^\\S\\n]*)(?=[^;=]*[^\\S\\n]*\\})", + "beginCaptures": { + "1": { + "name": "meta.brace.curly" + } + }, + "end": "(?:[^\\S\\n]*(\\}))|\\n|$", + "endCaptures": { + "1": { + "name": "meta.brace.curly" + } + }, + "patterns": [ + { + "include": "#variable" + }, + { + "include": "#numeric" + }, + { + "include": "#string" + }, + { + "include": "#operator" + } + ] + }, + "char_escape": { + "name": "constant.character.escape.stylus", + "match": "\\\\(.)" + }, + "language_constants": { + "match": "\\b(true|false|null)\\b", + "name": "constant.language.stylus" + }, + "language_keywords": { + "patterns": [ + { + "match": "(\\b|\\s)(return|else|for|unless|if|else)\\b", + "name": "keyword.control.stylus" + }, + { + "match": "(\\b|\\s)(!important|in|is defined|is a)\\b", + "name": "keyword.other.stylus" + }, + { + "match": "\\barguments\\b", + "name": "variable.language.stylus" + } + ] + } + } +} diff --git a/docs/shiki/languages/svelte.tmLanguage.json b/docs/shiki/languages/svelte.tmLanguage.json new file mode 100644 index 00000000..1b27523b --- /dev/null +++ b/docs/shiki/languages/svelte.tmLanguage.json @@ -0,0 +1,1161 @@ +{ + "name": "svelte", + "scopeName": "source.svelte", + "fileTypes": ["svelte"], + "uuid": "7582b62f-51d9-4a84-8c8d-fc189530faf6", + "injections": { + "L:(meta.script.svelte | meta.style.svelte) (meta.lang.js | meta.lang.javascript) - (meta source)": { + "patterns": [ + { + "begin": "(?<=>)(?!</)", + "end": "(?=</)", + "name": "meta.embedded.block.svelte", + "contentName": "source.js", + "patterns": [ + { + "include": "source.js" + } + ] + } + ] + }, + "L:(meta.script.svelte | meta.style.svelte) (meta.lang.ts | meta.lang.typescript) - (meta source)": { + "patterns": [ + { + "begin": "(?<=>)(?!</)", + "end": "(?=</)", + "name": "meta.embedded.block.svelte", + "contentName": "source.ts", + "patterns": [ + { + "include": "source.ts" + } + ] + } + ] + }, + "L:(meta.script.svelte | meta.style.svelte) meta.lang.coffee - (meta source)": { + "patterns": [ + { + "begin": "(?<=>)(?!</)", + "end": "(?=</)", + "name": "meta.embedded.block.svelte", + "contentName": "source.coffee", + "patterns": [ + { + "include": "source.coffee" + } + ] + } + ] + }, + "L:meta.script.svelte - meta.lang - (meta source)": { + "patterns": [ + { + "begin": "(?<=>)(?!</)", + "end": "(?=</)", + "name": "meta.embedded.block.svelte", + "contentName": "source.js", + "patterns": [ + { + "include": "source.js" + } + ] + } + ] + }, + "L:meta.style.svelte meta.lang.stylus - (meta source)": { + "patterns": [ + { + "begin": "(?<=>)(?!</)", + "end": "(?=</)", + "name": "meta.embedded.block.svelte", + "contentName": "source.stylus", + "patterns": [ + { + "include": "source.stylus" + } + ] + } + ] + }, + "L:meta.style.svelte meta.lang.sass - (meta source)": { + "patterns": [ + { + "begin": "(?<=>)(?!</)", + "end": "(?=</)", + "name": "meta.embedded.block.svelte", + "contentName": "source.sass", + "patterns": [ + { + "include": "source.sass" + } + ] + } + ] + }, + "L:meta.style.svelte meta.lang.css - (meta source)": { + "patterns": [ + { + "begin": "(?<=>)(?!</)", + "end": "(?=</)", + "name": "meta.embedded.block.svelte", + "contentName": "source.css", + "patterns": [ + { + "include": "source.css" + } + ] + } + ] + }, + "L:meta.style.svelte meta.lang.scss - (meta source)": { + "patterns": [ + { + "begin": "(?<=>)(?!</)", + "end": "(?=</)", + "name": "meta.embedded.block.svelte", + "contentName": "source.css.scss", + "patterns": [ + { + "include": "source.css.scss" + } + ] + } + ] + }, + "L:meta.style.svelte meta.lang.less - (meta source)": { + "patterns": [ + { + "begin": "(?<=>)(?!</)", + "end": "(?=</)", + "name": "meta.embedded.block.svelte", + "contentName": "source.css.less", + "patterns": [ + { + "include": "source.css.less" + } + ] + } + ] + }, + "L:meta.style.svelte meta.lang.postcss - (meta source)": { + "patterns": [ + { + "begin": "(?<=>)(?!</)", + "end": "(?=</)", + "name": "meta.embedded.block.svelte", + "contentName": "source.css.postcss", + "patterns": [ + { + "include": "source.css.postcss" + } + ] + } + ] + }, + "L:meta.style.svelte - meta.lang - (meta source)": { + "patterns": [ + { + "begin": "(?<=>)(?!</)", + "end": "(?=</)", + "name": "meta.embedded.block.svelte", + "contentName": "source.css", + "patterns": [ + { + "include": "source.css" + } + ] + } + ] + }, + "L:meta.template.svelte meta.lang.pug - (meta source)": { + "patterns": [ + { + "begin": "(?<=>)(?!</)", + "end": "(?=</)", + "name": "meta.embedded.block.svelte", + "contentName": "text.pug", + "patterns": [ + { + "include": "text.pug" + } + ] + } + ] + }, + "L:meta.template.svelte - meta.lang - (meta source)": { + "patterns": [ + { + "begin": "(?<=>)\\s", + "end": "(?=</template)", + "patterns": [ + { + "include": "#scope" + } + ] + } + ] + }, + "L:(source.ts, source.js, source.coffee)": { + "patterns": [ + { + "match": "(?<![_$./'\"[:alnum:]])\\$(?=[_[:alpha:]][_$[:alnum:]]*)", + "name": "punctuation.definition.variable.svelte" + }, + { + "match": "(?<![_$./'\"[:alnum:]])(\\$\\$)(?=props|restProps|slots)", + "name": "punctuation.definition.variable.svelte" + } + ] + } + }, + "patterns": [ + { + "include": "#scope" + } + ], + "repository": { + "scope": { + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#special-tags" + }, + { + "include": "#tags" + }, + { + "include": "#interpolation" + }, + { + "begin": "(?<=>|})", + "end": "(?=<|{)", + "name": "text.svelte" + } + ] + }, + "comments": { + "begin": "<!--", + "end": "-->", + "captures": { + "0": { + "name": "punctuation.definition.comment.svelte" + } + }, + "name": "comment.block.svelte", + "patterns": [ + { + "begin": "(@)(component)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.keyword.svelte" + }, + "2": { + "name": "storage.type.class.component.svelte keyword.declaration.class.component.svelte" + } + }, + "end": "(?=-->)", + "contentName": "comment.block.documentation.svelte", + "patterns": [ + { + "match": ".*?(?=-->)", + "captures": { + "0": { + "patterns": [ + { + "include": "text.html.markdown" + } + ] + } + } + }, + { + "include": "text.html.markdown" + } + ] + }, + { + "match": "\\G-?>|<!--(?!>)|<!-(?=-->)|--!>", + "name": "invalid.illegal.characters-not-allowed-here.svelte" + } + ] + }, + "destructuring": { + "patterns": [ + { + "begin": "(?={)", + "end": "(?<=})", + "name": "meta.embedded.expression.svelte source.ts", + "patterns": [ + { + "include": "source.ts#object-binding-pattern" + } + ] + }, + { + "begin": "(?=\\[)", + "end": "(?<=\\])", + "name": "meta.embedded.expression.svelte source.ts", + "patterns": [ + { + "include": "source.ts#array-binding-pattern" + } + ] + } + ] + }, + "destructuring-const": { + "patterns": [ + { + "begin": "(?={)", + "end": "(?<=})", + "name": "meta.embedded.expression.svelte source.ts", + "patterns": [ + { + "include": "source.ts#object-binding-pattern-const" + } + ] + }, + { + "begin": "(?=\\[)", + "end": "(?<=\\])", + "name": "meta.embedded.expression.svelte source.ts", + "patterns": [ + { + "include": "source.ts#array-binding-pattern-const" + } + ] + } + ] + }, + "interpolation": { + "patterns": [ + { + "begin": "\\{", + "end": "\\}", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.svelte" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.svelte" + } + }, + "contentName": "meta.embedded.expression.svelte source.ts", + "patterns": [ + { + "begin": "\\G\\s*(?={)", + "end": "(?<=})", + "patterns": [ + { + "include": "source.ts#object-literal" + } + ] + }, + { + "include": "source.ts" + } + ] + } + ] + }, + "special-tags": { + "patterns": [ + { + "include": "#special-tags-void" + }, + { + "include": "#special-tags-block-begin" + }, + { + "include": "#special-tags-block-end" + } + ] + }, + "special-tags-keywords": { + "match": "([#@/:])(else\\s+if|[a-z]*)", + "captures": { + "1": { + "name": "punctuation.definition.keyword.svelte" + }, + "2": { + "patterns": [ + { + "match": "if|else\\s+if|else", + "name": "keyword.control.conditional.svelte" + }, + { + "match": "each|key", + "name": "keyword.control.svelte" + }, + { + "match": "await|then|catch", + "name": "keyword.control.flow.svelte" + }, + { + "match": "html", + "name": "keyword.other.svelte" + }, + { + "match": "debug", + "name": "keyword.other.debugger.svelte" + }, + { + "match": "const", + "name": "storage.type.svelte" + } + ] + } + } + }, + "special-tags-modes": { + "patterns": [ + { + "begin": "(?<=(if|key|then|catch|html).*?)\\G", + "end": "(?=})", + "name": "meta.embedded.expression.svelte source.ts", + "patterns": [ + { + "include": "source.ts" + } + ] + }, + { + "begin": "(?<=const.*?)\\G", + "end": "(?=})", + "patterns": [ + { + "include": "#destructuring-const" + }, + { + "begin": "\\G\\s*([_$[:alpha:]][_$[:alnum:]]+)\\s*", + "end": "(?=\\=)", + "beginCaptures": { + "1": { + "name": "variable.other.constant.svelte" + } + } + }, + { + "begin": "(?=\\=)", + "name": "meta.embedded.expression.svelte source.ts", + "end": "(?=})", + "patterns": [ + { + "include": "source.ts" + } + ] + } + ] + }, + { + "begin": "(?<=each.*?)\\G", + "end": "(?=})", + "patterns": [ + { + "begin": "\\G\\s*?(?=\\S)", + "end": "(?=(?:^\\s*|\\s+)(as))", + "contentName": "meta.embedded.expression.svelte source.ts", + "patterns": [ + { + "include": "source.ts" + } + ] + }, + { + "begin": "(as)", + "beginCaptures": { + "1": { + "name": "keyword.control.as.svelte" + } + }, + "end": "(?=})", + "patterns": [ + { + "include": "#destructuring" + }, + { + "begin": "\\(", + "end": "\\)|(?=})", + "captures": { + "0": { + "name": "meta.brace.round.svelte" + } + }, + "contentName": "meta.embedded.expression.svelte source.ts", + "patterns": [ + { + "include": "source.ts" + } + ] + }, + { + "match": "(\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s*)", + "captures": { + "1": { + "name": "meta.embedded.expression.svelte source.ts", + "patterns": [ + { + "include": "source.ts" + } + ] + } + } + }, + { + "match": ",", + "name": "punctuation.separator.svelte" + } + ] + } + ] + }, + { + "begin": "(?<=await.*?)\\G", + "end": "(?=})", + "patterns": [ + { + "begin": "\\G\\s*?(?=\\S)", + "end": "\\s+(then)|(?=})", + "endCaptures": { + "1": { + "name": "keyword.control.flow.svelte" + } + }, + "contentName": "meta.embedded.expression.svelte source.ts", + "patterns": [ + { + "include": "source.ts" + } + ] + }, + { + "begin": "(?<=then\\b)", + "end": "(?=})", + "contentName": "meta.embedded.expression.svelte source.ts", + "patterns": [ + { + "include": "source.ts" + } + ] + } + ] + }, + { + "begin": "(?<=debug.*?)\\G", + "end": "(?=})", + "patterns": [ + { + "match": "[_$[:alpha:]][_$[:alnum:]]*", + "captures": { + "0": { + "name": "meta.embedded.expression.svelte source.ts", + "patterns": [ + { + "include": "source.ts" + } + ] + } + } + }, + { + "match": ",", + "name": "punctuation.separator.svelte" + } + ] + } + ] + }, + "special-tags-void": { + "begin": "({)\\s*((?:[@:])(else\\s+if|[a-z]*))", + "beginCaptures": { + "1": { + "name": "punctuation.definition.block.begin.svelte" + }, + "2": { + "patterns": [ + { + "include": "#special-tags-keywords" + } + ] + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.end.svelte" + } + }, + "name": "meta.special.$3.svelte", + "patterns": [ + { + "include": "#special-tags-modes" + } + ] + }, + "special-tags-block-begin": { + "begin": "({)\\s*(#([a-z]*))", + "end": "(})", + "name": "meta.special.$3.svelte meta.special.start.svelte", + "beginCaptures": { + "1": { + "name": "punctuation.definition.block.begin.svelte" + }, + "2": { + "patterns": [ + { + "include": "#special-tags-keywords" + } + ] + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.block.end.svelte" + } + }, + "patterns": [ + { + "include": "#special-tags-modes" + } + ] + }, + "special-tags-block-end": { + "begin": "({)\\s*(/([a-z]*))", + "end": "(})", + "name": "meta.special.$3.svelte meta.special.end.svelte", + "beginCaptures": { + "1": { + "name": "punctuation.definition.block.begin.svelte" + }, + "2": { + "patterns": [ + { + "include": "#special-tags-keywords" + } + ] + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.block.end.svelte" + } + } + }, + "attributes": { + "patterns": [ + { + "include": "#attributes-directives" + }, + { + "include": "#attributes-keyvalue" + }, + { + "include": "#attributes-interpolated" + } + ] + }, + "attributes-interpolated": { + "begin": "(?<!:|=)\\s*({)", + "end": "(\\})", + "captures": { + "1": { + "name": "entity.other.attribute-name.svelte" + } + }, + "contentName": "meta.embedded.expression.svelte source.ts", + "patterns": [ + { + "include": "source.ts" + } + ] + }, + "attributes-keyvalue": { + "begin": "((?:--)?[_$[:alpha:]][_\\-$[:alnum:]]*)", + "beginCaptures": { + "0": { + "patterns": [ + { + "match": "--.*", + "name": "support.type.property-name.svelte" + }, + { + "match": ".*", + "name": "entity.other.attribute-name.svelte" + } + ] + } + }, + "end": "(?=\\s*+[^=\\s])", + "name": "meta.attribute.$1.svelte", + "patterns": [ + { + "begin": "=", + "beginCaptures": { + "0": { + "name": "punctuation.separator.key-value.svelte" + } + }, + "end": "(?<=[^\\s=])(?!\\s*=)|(?=/?>)", + "patterns": [ + { + "include": "#attributes-value" + } + ] + } + ] + }, + "attributes-value": { + "patterns": [ + { + "include": "#interpolation" + }, + { + "match": "(?:(['\"])([0-9._]+[\\w%]{,4})(\\1))|(?:([0-9._]+[\\w%]{,4})(?=\\s|/?>))", + "captures": { + "1": { + "name": "punctuation.definition.string.begin.svelte" + }, + "2": { + "name": "constant.numeric.decimal.svelte" + }, + "3": { + "name": "punctuation.definition.string.end.svelte" + }, + "4": { + "name": "constant.numeric.decimal.svelte" + } + } + }, + { + "match": "([^\\s\"'=<>`/]|/(?!>))+", + "name": "string.unquoted.svelte", + "patterns": [ + { + "include": "#interpolation" + } + ] + }, + { + "begin": "(['\"])", + "end": "\\1", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.svelte" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.svelte" + } + }, + "name": "string.quoted.svelte", + "patterns": [ + { + "include": "#interpolation" + } + ] + } + ] + }, + "attributes-directives-keywords": { + "patterns": [ + { + "match": "on|use|bind", + "name": "keyword.control.svelte" + }, + { + "match": "transition|in|out|animate", + "name": "keyword.other.animation.svelte" + }, + { + "match": "let", + "name": "storage.type.svelte" + }, + { + "match": "class|style", + "name": "entity.other.attribute-name.svelte" + } + ] + }, + "attributes-directives-types": { + "patterns": [ + { + "match": "(?<=(on):).*$", + "name": "entity.name.type.svelte" + }, + { + "match": "(?<=(bind):).*$", + "name": "variable.parameter.svelte" + }, + { + "match": "(?<=(use|transition|in|out|animate):).*$", + "name": "variable.function.svelte" + }, + { + "match": "(?<=(let|class|style):).*$", + "name": "variable.parameter.svelte" + } + ] + }, + "attributes-directives-types-assigned": { + "patterns": [ + { + "match": "(?<=(bind):)this$", + "name": "variable.language.svelte" + }, + { + "match": "(?<=(bind):).*$", + "name": "entity.name.type.svelte" + }, + { + "match": "(?<=(class):).*$", + "name": "entity.other.attribute-name.class.svelte" + }, + { + "match": "(?<=(style):).*$", + "name": "support.type.property-name.svelte" + }, + { + "include": "#attributes-directives-types" + } + ] + }, + "attributes-directives": { + "begin": "(?<!<)(on|use|bind|transition|in|out|animate|let|class|style)(:)(?:((?:--)?[_$[:alpha:]][_\\-$[:alnum:]]*(?=\\s*=))|((?:--)?[_$[:alpha:]][_\\-$[:alnum:]]*))((\\|\\w+)*)", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#attributes-directives-keywords" + } + ] + }, + "2": { + "name": "punctuation.definition.keyword.svelte" + }, + "3": { + "patterns": [ + { + "include": "#attributes-directives-types-assigned" + } + ] + }, + "4": { + "patterns": [ + { + "include": "#attributes-directives-types" + } + ] + }, + "5": { + "patterns": [ + { + "match": "\\w+", + "name": "support.function.svelte" + }, + { + "match": "\\|", + "name": "punctuation.separator.svelte" + } + ] + } + }, + "end": "(?=\\s*+[^=\\s])", + "name": "meta.directive.$1.svelte", + "patterns": [ + { + "begin": "=", + "beginCaptures": { + "0": { + "name": "punctuation.separator.key-value.svelte" + } + }, + "end": "(?<=[^\\s=])(?!\\s*=)|(?=/?>)", + "patterns": [ + { + "include": "#attributes-value" + } + ] + } + ] + }, + "attributes-generics": { + "begin": "(generics)(=)([\"'])", + "beginCaptures": { + "1": { + "name": "entity.other.attribute-name.svelte" + }, + "2": { + "name": "punctuation.separator.key-value.svelte" + }, + "3": { + "name": "punctuation.definition.string.begin.svelte" + } + }, + "end": "(\\3)", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.svelte" + } + }, + "contentName": "meta.embedded.expression.svelte source.ts", + "patterns": [ + { + "include": "#type-parameters" + } + ] + }, + "type-parameters": { + "name": "meta.type.parameters.ts", + "patterns": [ + { + "include": "source.ts#comment" + }, + { + "name": "storage.modifier.ts", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends|in|out|const)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "include": "source.ts#type" + }, + { + "include": "source.ts#punctuation-comma" + }, + { + "name": "keyword.operator.assignment.ts", + "match": "(=)(?!>)" + } + ] + }, + "tags": { + "patterns": [ + { + "include": "#tags-lang" + }, + { + "include": "#tags-void" + }, + { + "include": "#tags-general-end" + }, + { + "include": "#tags-general-start" + } + ] + }, + "tags-name": { + "patterns": [ + { + "match": "(svelte)(:)([a-z][\\w0-9:-]*)", + "captures": { + "1": { + "name": "keyword.control.svelte" + }, + "2": { + "name": "punctuation.definition.keyword.svelte" + }, + "3": { + "name": "entity.name.tag.svelte" + } + } + }, + { + "match": "slot", + "name": "keyword.control.svelte" + }, + { + "match": "[A-Z][a-zA-Z0-9_]*", + "name": "support.class.component.svelte" + }, + { + "match": "[a-z][\\w0-9:]*-[\\w0-9:-]*", + "name": "meta.tag.custom.svelte entity.name.tag.svelte" + }, + { + "match": "[a-z][\\w0-9:-]*", + "name": "entity.name.tag.svelte" + } + ] + }, + "tags-start-attributes": { + "begin": "\\G", + "end": "(?=/?>)", + "name": "meta.tag.start.svelte", + "patterns": [ + { + "include": "#attributes" + } + ] + }, + "tags-lang-start-attributes": { + "begin": "\\G", + "end": "(?=/>)|>", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.end.svelte" + } + }, + "name": "meta.tag.start.svelte", + "patterns": [ + { + "include": "#attributes-generics" + }, + { + "include": "#attributes" + } + ] + }, + "tags-start-node": { + "match": "(<)([^/\\s>/]*)", + "captures": { + "1": { + "name": "punctuation.definition.tag.begin.svelte" + }, + "2": { + "patterns": [ + { + "include": "#tags-name" + } + ] + } + }, + "name": "meta.tag.start.svelte" + }, + "tags-end-node": { + "match": "(</)(.*?)\\s*(>)|(/>)", + "captures": { + "1": { + "name": "meta.tag.end.svelte punctuation.definition.tag.begin.svelte" + }, + "2": { + "name": "meta.tag.end.svelte", + "patterns": [ + { + "include": "#tags-name" + } + ] + }, + "3": { + "name": "meta.tag.end.svelte punctuation.definition.tag.end.svelte" + }, + "4": { + "name": "meta.tag.start.svelte punctuation.definition.tag.end.svelte" + } + } + }, + "tags-lang": { + "begin": "<(script|style|template)", + "end": "</\\1\\s*>|/>", + "beginCaptures": { + "0": { + "patterns": [ + { + "include": "#tags-start-node" + } + ] + } + }, + "endCaptures": { + "0": { + "patterns": [ + { + "include": "#tags-end-node" + } + ] + } + }, + "name": "meta.$1.svelte", + "patterns": [ + { + "begin": "\\G(?=\\s*[^>]*?(type|lang)\\s*=\\s*(['\"]|)(?:text/)?(\\w+)\\2)", + "end": "(?=</|/>)", + "name": "meta.lang.$3.svelte", + "patterns": [ + { + "include": "#tags-lang-start-attributes" + } + ] + }, + { + "include": "#tags-lang-start-attributes" + } + ] + }, + "tags-void": { + "begin": "(<)(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)(?=\\s|/?>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.svelte" + }, + "2": { + "name": "entity.name.tag.svelte" + } + }, + "end": "/?>", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.begin.svelte" + } + }, + "name": "meta.tag.void.svelte", + "patterns": [ + { + "include": "#attributes" + } + ] + }, + "tags-general-start": { + "begin": "(<)([^/\\s>/]*)", + "end": "(/?>)", + "beginCaptures": { + "0": { + "patterns": [ + { + "include": "#tags-start-node" + } + ] + } + }, + "endCaptures": { + "1": { + "name": "meta.tag.start.svelte punctuation.definition.tag.end.svelte" + } + }, + "name": "meta.scope.tag.$2.svelte", + "patterns": [ + { + "include": "#tags-start-attributes" + } + ] + }, + "tags-general-end": { + "begin": "(</)([^/\\s>]*)", + "end": "(>)", + "beginCaptures": { + "1": { + "name": "meta.tag.end.svelte punctuation.definition.tag.begin.svelte" + }, + "2": { + "name": "meta.tag.end.svelte", + "patterns": [ + { + "include": "#tags-name" + } + ] + } + }, + "endCaptures": { + "1": { + "name": "meta.tag.end.svelte punctuation.definition.tag.end.svelte" + } + }, + "name": "meta.scope.tag.$2.svelte" + } + } +} diff --git a/docs/shiki/languages/swift.tmLanguage.json b/docs/shiki/languages/swift.tmLanguage.json new file mode 100644 index 00000000..0081b141 --- /dev/null +++ b/docs/shiki/languages/swift.tmLanguage.json @@ -0,0 +1,3303 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/textmate/swift.tmbundle/blob/master/Syntaxes/Swift.tmLanguage", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/textmate/swift.tmbundle/commit/7a35637eb70aef3114b091c4ff6fbf6a2faa881b", + "name": "swift", + "scopeName": "source.swift", + "comment": "See swift.tmbundle/grammar-test.swift for test cases.", + "patterns": [ + { + "include": "#root" + } + ], + "repository": { + "async-throws": { + "captures": { + "1": { + "name": "invalid.illegal.await-must-precede-throws.swift" + }, + "2": { + "name": "keyword.control.exception.swift" + }, + "3": { + "name": "keyword.control.async.swift" + } + }, + "match": "\\b(?:(throws\\s+async|rethrows\\s+async)|(throws|rethrows)|(async))\\b" + }, + "attributes": { + "patterns": [ + { + "begin": "((@)available)(\\()", + "beginCaptures": { + "1": { + "name": "storage.modifier.attribute.swift" + }, + "2": { + "name": "punctuation.definition.attribute.swift" + }, + "3": { + "name": "punctuation.definition.arguments.begin.swift" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.end.swift" + } + }, + "name": "meta.attribute.available.swift", + "patterns": [ + { + "captures": { + "1": { + "name": "keyword.other.platform.os.swift" + }, + "2": { + "name": "constant.numeric.swift" + } + }, + "match": "\\b(swift|(?:iOS|macOS|OSX|watchOS|tvOS|UIKitForMac)(?:ApplicationExtension)?)\\b(?:\\s+([0-9]+(?:\\.[0-9]+)*\\b))?" + }, + { + "begin": "\\b(introduced|deprecated|obsoleted)\\s*(:)\\s*", + "beginCaptures": { + "1": { + "name": "keyword.other.swift" + }, + "2": { + "name": "punctuation.separator.key-value.swift" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "match": "\\b[0-9]+(?:\\.[0-9]+)*\\b", + "name": "constant.numeric.swift" + } + ] + }, + { + "begin": "\\b(message|renamed)\\s*(:)\\s*(?=\")", + "beginCaptures": { + "1": { + "name": "keyword.other.swift" + }, + "2": { + "name": "punctuation.separator.key-value.swift" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "include": "#literals" + } + ] + }, + { + "captures": { + "1": { + "name": "keyword.other.platform.all.swift" + }, + "2": { + "name": "keyword.other.swift" + }, + "3": { + "name": "invalid.illegal.character-not-allowed-here.swift" + } + }, + "match": "(?:(\\*)|\\b(deprecated|unavailable|noasync)\\b)\\s*(.*?)(?=[,)])" + } + ] + }, + { + "begin": "((@)objc)(\\()", + "beginCaptures": { + "1": { + "name": "storage.modifier.attribute.swift" + }, + "2": { + "name": "punctuation.definition.attribute.swift" + }, + "3": { + "name": "punctuation.definition.arguments.begin.swift" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.end.swift" + } + }, + "name": "meta.attribute.objc.swift", + "patterns": [ + { + "captures": { + "1": { + "name": "invalid.illegal.missing-colon-after-selector-piece.swift" + } + }, + "match": "\\w*(?::(?:\\w*:)*(\\w*))?", + "name": "entity.name.function.swift" + } + ] + }, + { + "begin": "(@)(?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>)", + "beginCaptures": { + "0": { + "name": "storage.modifier.attribute.swift" + }, + "1": { + "name": "punctuation.definition.attribute.swift" + }, + "2": { + "name": "punctuation.definition.identifier.swift" + }, + "3": { + "name": "punctuation.definition.identifier.swift" + } + }, + "comment": "any other attribute", + "end": "(?!\\G\\()", + "name": "meta.attribute.swift", + "patterns": [ + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.arguments.begin.swift" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.end.swift" + } + }, + "name": "meta.arguments.attribute.swift", + "patterns": [ + { + "include": "#expressions" + } + ] + } + ] + } + ] + }, + "builtin-functions": { + "patterns": [ + { + "comment": "Member functions in the standard library in Swift 3 which may be used with trailing closures and no parentheses", + "match": "(?<=\\.)(?:s(?:ort(?:ed)?|plit)|contains|index|partition|f(?:i(?:lter|rst)|orEach|latMap)|with(?:MutableCharacters|CString|U(?:nsafe(?:Mutable(?:BufferPointer|Pointer(?:s|To(?:Header|Elements)))|BufferPointer)|TF8Buffer))|m(?:in|a(?:p|x)))(?=\\s*[({])\\b", + "name": "support.function.swift" + }, + { + "comment": "Member functions in the standard library in Swift 3", + "match": "(?<=\\.)(?:s(?:ymmetricDifference|t(?:oreBytes|arts|ride)|ortInPlace|u(?:ccessor|ffix|btract(?:ing|InPlace|WithOverflow)?)|quareRoot|amePosition)|h(?:oldsUnique(?:Reference|OrPinnedReference)|as(?:Suffix|Prefix))|ne(?:gate(?:d)?|xt)|c(?:o(?:untByEnumerating|py(?:Bytes)?)|lamp(?:ed)?|reate)|t(?:o(?:IntMax|Opaque|UIntMax)|ake(?:RetainedValue|UnretainedValue)|r(?:uncatingRemainder|a(?:nscodedLength|ilSurrogate)))|i(?:s(?:MutableAndUniquelyReferenced(?:OrPinned)?|S(?:trictSu(?:perset(?:Of)?|bset(?:Of)?)|u(?:perset(?:Of)?|bset(?:Of)?))|Continuation|T(?:otallyOrdered|railSurrogate)|Disjoint(?:With)?|Unique(?:Reference|lyReferenced(?:OrPinned)?)|Equal|Le(?:ss(?:ThanOrEqualTo)?|adSurrogate))|n(?:sert(?:ContentsOf)?|tersect(?:ion|InPlace)?|itialize(?:Memory|From)?|dex(?:Of|ForKey)))|o(?:verlaps|bjectAt)|d(?:i(?:stance(?:To)?|vide(?:d|WithOverflow)?)|e(?:s(?:cendant|troy)|code(?:CString)?|initialize|alloc(?:ate(?:Capacity)?)?)|rop(?:First|Last))|u(?:n(?:ion(?:InPlace)?|derestimateCount|wrappedOrError)|p(?:date(?:Value)?|percased))|join(?:ed|WithSeparator)|p(?:op(?:First|Last)|ass(?:Retained|Unretained)|re(?:decessor|fix))|e(?:scape(?:d)?|n(?:code|umerate(?:d)?)|lementsEqual|xclusiveOr(?:InPlace)?)|f(?:orm(?:Remainder|S(?:ymmetricDifference|quareRoot)|TruncatingRemainder|In(?:tersection|dex)|Union)|latten|rom(?:CString(?:RepairingIllFormedUTF8)?|Opaque))|w(?:i(?:thMemoryRebound|dth)|rite(?:To)?)|l(?:o(?:wercased|ad)|e(?:adSurrogate|xicographical(?:Compare|lyPrecedes)))|a(?:ss(?:ign(?:BackwardFrom|From)?|umingMemoryBound)|d(?:d(?:ing(?:Product)?|Product|WithOverflow)?|vanced(?:By)?)|utorelease|ppend(?:ContentsOf)?|lloc(?:ate)?|bs)|r(?:ound(?:ed)?|e(?:serveCapacity|tain|duce|place(?:Range|Subrange)?|verse(?:d)?|quest(?:NativeBuffer|UniqueMutableBackingBuffer)|lease|m(?:ove(?:Range|Subrange|Value(?:ForKey)?|First|Last|A(?:tIndex|ll))?|ainder(?:WithOverflow)?)))|ge(?:nerate|t(?:Objects|Element))|m(?:in(?:imum(?:Magnitude)?|Element)|ove(?:Initialize(?:Memory|BackwardFrom|From)?|Assign(?:From)?)?|ultipl(?:y(?:WithOverflow)?|ied)|easure|a(?:ke(?:Iterator|Description)|x(?:imum(?:Magnitude)?|Element)))|bindMemory)(?=\\s*\\()", + "name": "support.function.swift" + }, + { + "comment": "Member functions in the standard library in Swift 2 only", + "match": "(?<=\\.)(?:s(?:uperclassMirror|amePositionIn|tartsWith)|nextObject|c(?:haracterAtIndex|o(?:untByEnumeratingWithState|pyWithZone)|ustom(?:Mirror|PlaygroundQuickLook))|is(?:EmptyInput|ASCII)|object(?:Enumerator|ForKey|AtIndex)|join|put|keyEnumerator|withUnsafeMutablePointerToValue|length|getMirror|m(?:oveInitializeAssignFrom|ember))(?=\\s*\\()", + "name": "support.function.swift" + } + ] + }, + "builtin-global-functions": { + "patterns": [ + { + "begin": "\\b(type)(\\()\\s*(of)(:)", + "beginCaptures": { + "1": { + "name": "support.function.dynamic-type.swift" + }, + "2": { + "name": "punctuation.definition.arguments.begin.swift" + }, + "3": { + "name": "support.variable.parameter.swift" + }, + "4": { + "name": "punctuation.separator.argument-label.begin.swift" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.end.swift" + } + }, + "patterns": [ + { + "include": "#expressions" + } + ] + }, + { + "comment": "Global functions available in Swift 3 which may be used with trailing closures and no parentheses", + "match": "\\b(?:anyGenerator|autoreleasepool)(?=\\s*[({])\\b", + "name": "support.function.swift" + }, + { + "comment": "Global functions available in Swift 3", + "match": "\\b(?:s(?:tride(?:of(?:Value)?)?|izeof(?:Value)?|equence|wap)|numericCast|transcode|is(?:UniquelyReferenced(?:NonObjC)?|KnownUniquelyReferenced)|zip|d(?:ump|ebugPrint)|unsafe(?:BitCast|Downcast|Unwrap|Address(?:Of)?)|pr(?:int|econdition(?:Failure)?)|fatalError|with(?:Unsafe(?:MutablePointer|Pointer)|ExtendedLifetime|VaList)|a(?:ssert(?:ionFailure)?|lignof(?:Value)?|bs)|re(?:peatElement|adLine)|getVaList|m(?:in|ax))(?=\\s*\\()", + "name": "support.function.swift" + }, + { + "comment": "Global functions available in Swift 2 only", + "match": "\\b(?:s(?:ort|uffix|pli(?:ce|t))|insert|overlaps|d(?:istance|rop(?:First|Last))|join|prefix|extend|withUnsafe(?:MutablePointers|Pointers)|lazy|advance|re(?:flect|move(?:Range|Last|A(?:tIndex|ll))))(?=\\s*\\()", + "name": "support.function.swift" + } + ] + }, + "builtin-properties": { + "patterns": [ + { + "comment": "The simpler (?<=\\bProcess\\.|\\bCommandLine\\.) breaks VS Code / Atom, see https://github.com/textmate/swift.tmbundle/issues/29", + "match": "(?<=^Process\\.|\\WProcess\\.|^CommandLine\\.|\\WCommandLine\\.)(arguments|argc|unsafeArgv)", + "name": "support.variable.swift" + }, + { + "comment": "Properties in the standard library in Swift 3", + "match": "(?<=\\.)(?:s(?:t(?:artIndex|ri(?:ngValue|de))|i(?:ze|gn(?:BitIndex|ificand(?:Bit(?:Count|Pattern)|Width)?|alingNaN)?)|u(?:perclassMirror|mmary|bscriptBaseAddress))|h(?:eader|as(?:hValue|PointerRepresentation))|n(?:ulTerminatedUTF8|ext(?:Down|Up)|a(?:n|tiveOwner))|c(?:haracters|ount(?:TrailingZeros)?|ustom(?:Mirror|PlaygroundQuickLook)|apacity)|i(?:s(?:S(?:ign(?:Minus|aling(?:NaN)?)|ubnormal)|N(?:ormal|aN)|Canonical|Infinite|Zero|Empty|Finite|ASCII)|n(?:dices|finity)|dentity)|owner|de(?:scription|bugDescription)|u(?:n(?:safelyUnwrapped|icodeScalar(?:s)?|derestimatedCount)|tf(?:16|8(?:Start|C(?:String|odeUnitCount))?)|intValue|ppercaseString|lp(?:OfOne)?)|p(?:i|ointee)|e(?:ndIndex|lements|xponent(?:Bit(?:Count|Pattern))?)|value(?:s)?|keys|quietNaN|f(?:irst(?:ElementAddress(?:IfContiguous)?)?|loatingPointClass)|l(?:ittleEndian|owercaseString|eastNo(?:nzeroMagnitude|rmalMagnitude)|a(?:st|zy))|a(?:l(?:ignment|l(?:ocatedElementCount|Zeros))|rray(?:PropertyIsNativeTypeChecked)?)|ra(?:dix|wValue)|greatestFiniteMagnitude|m(?:in|emory|ax)|b(?:yteS(?:ize|wapped)|i(?:nade|tPattern|gEndian)|uffer|ase(?:Address)?))\\b", + "name": "support.variable.swift" + }, + { + "comment": "Properties in the standard library in Swift 2 only", + "match": "(?<=\\.)(?:boolValue|disposition|end|objectIdentifier|quickLookObject|start|valueType)\\b", + "name": "support.variable.swift" + }, + { + "comment": "Enum cases in the standard library - note that there is some overlap between these and the properties", + "match": "(?<=\\.)(?:s(?:calarValue|i(?:ze|gnalingNaN)|o(?:und|me)|uppressed|prite|et)|n(?:one|egative(?:Subnormal|Normal|Infinity|Zero))|c(?:ol(?:or|lection)|ustomized)|t(?:o(?:NearestOr(?:Even|AwayFromZero)|wardZero)|uple|ext)|i(?:nt|mage)|optional|d(?:ictionary|o(?:uble|wn))|u(?:Int|p|rl)|p(?:o(?:sitive(?:Subnormal|Normal|Infinity|Zero)|int)|lus)|e(?:rror|mptyInput)|view|quietNaN|float|a(?:ttributedString|wayFromZero)|r(?:ectangle|ange)|generated|minus|b(?:ool|ezierPath))\\b", + "name": "support.variable.swift" + } + ] + }, + "builtin-types": { + "comment": "Types provided in the standard library", + "patterns": [ + { + "include": "#builtin-class-type" + }, + { + "include": "#builtin-enum-type" + }, + { + "include": "#builtin-protocol-type" + }, + { + "include": "#builtin-struct-type" + }, + { + "include": "#builtin-typealias" + }, + { + "match": "\\bAny\\b", + "name": "support.type.any.swift" + } + ], + "repository": { + "builtin-class-type": { + "comment": "Builtin class types", + "match": "\\b(Managed(Buffer|ProtoBuffer)|NonObjectiveCBase|AnyGenerator)\\b", + "name": "support.class.swift" + }, + "builtin-enum-type": { + "patterns": [ + { + "comment": "CommandLine is an enum, but it acts like a constant", + "match": "\\b(?:CommandLine|Process(?=\\.))\\b", + "name": "support.constant.swift" + }, + { + "comment": "The return type of a function that never returns", + "match": "\\bNever\\b", + "name": "support.constant.never.swift" + }, + { + "comment": "Enum types in the standard library in Swift 3", + "match": "\\b(?:ImplicitlyUnwrappedOptional|Representation|MemoryLayout|FloatingPointClassification|SetIndexRepresentation|SetIteratorRepresentation|FloatingPointRoundingRule|UnicodeDecodingResult|Optional|DictionaryIndexRepresentation|AncestorRepresentation|DisplayStyle|PlaygroundQuickLook|Never|FloatingPointSign|Bit|DictionaryIteratorRepresentation)\\b", + "name": "support.type.swift" + }, + { + "comment": "Enum types in the standard library in Swift 2 only", + "match": "\\b(?:MirrorDisposition|QuickLookObject)\\b", + "name": "support.type.swift" + } + ] + }, + "builtin-protocol-type": { + "patterns": [ + { + "comment": "Protocols in the standard library in Swift 3", + "match": "\\b(?:Ra(?:n(?:domAccess(?:Collection|Indexable)|geReplaceable(?:Collection|Indexable))|wRepresentable)|M(?:irrorPath|utable(?:Collection|Indexable))|Bi(?:naryFloatingPoint|twiseOperations|directional(?:Collection|Indexable))|S(?:tr(?:ideable|eamable)|igned(?:Number|Integer)|e(?:tAlgebra|quence))|Hashable|C(?:o(?:llection|mparable)|ustom(?:Reflectable|StringConvertible|DebugStringConvertible|PlaygroundQuickLookable|LeafReflectable)|VarArg)|TextOutputStream|I(?:n(?:teger(?:Arithmetic)?|dexable(?:Base)?)|teratorProtocol)|OptionSet|Un(?:signedInteger|icodeCodec)|E(?:quatable|rror|xpressibleBy(?:BooleanLiteral|String(?:Interpolation|Literal)|NilLiteral|IntegerLiteral|DictionaryLiteral|UnicodeScalarLiteral|ExtendedGraphemeClusterLiteral|FloatLiteral|ArrayLiteral))|FloatingPoint|L(?:osslessStringConvertible|azy(?:SequenceProtocol|CollectionProtocol))|A(?:nyObject|bsoluteValuable))\\b", + "name": "support.type.swift" + }, + { + "comment": "Protocols in the standard library in Swift 2 only", + "match": "\\b(?:Ran(?:domAccessIndexType|geReplaceableCollectionType)|GeneratorType|M(?:irror(?:Type|PathType)|utable(?:Sliceable|CollectionType))|B(?:i(?:twiseOperationsType|directionalIndexType)|oolean(?:Type|LiteralConvertible))|S(?:tring(?:InterpolationConvertible|LiteralConvertible)|i(?:nkType|gned(?:NumberType|IntegerType))|e(?:tAlgebraType|quenceType)|liceable)|NilLiteralConvertible|C(?:ollectionType|VarArgType)|Inte(?:rvalType|ger(?:Type|LiteralConvertible|ArithmeticType))|O(?:utputStreamType|ptionSetType)|DictionaryLiteralConvertible|Un(?:signedIntegerType|icode(?:ScalarLiteralConvertible|CodecType))|E(?:rrorType|xten(?:sibleCollectionType|dedGraphemeClusterLiteralConvertible))|F(?:orwardIndexType|loat(?:ingPointType|LiteralConvertible))|A(?:nyCollectionType|rrayLiteralConvertible))\\b", + "name": "support.type.swift" + } + ] + }, + "builtin-struct-type": { + "patterns": [ + { + "comment": "Structs in the standard library in Swift 3", + "match": "\\b(?:R(?:e(?:peat(?:ed)?|versed(?:RandomAccess(?:Collection|Index)|Collection|Index))|an(?:domAccessSlice|ge(?:Replaceable(?:RandomAccessSlice|BidirectionalSlice|Slice)|Generator)?))|Generator(?:Sequence|OfOne)|M(?:irror|utable(?:Ran(?:domAccessSlice|geReplaceable(?:RandomAccessSlice|BidirectionalSlice|Slice))|BidirectionalSlice|Slice)|anagedBufferPointer)|B(?:idirectionalSlice|ool)|S(?:t(?:aticString|ri(?:ng|deT(?:hrough(?:Generator|Iterator)?|o(?:Generator|Iterator)?)))|et(?:I(?:ndex|terator))?|lice)|HalfOpenInterval|C(?:haracter(?:View)?|o(?:ntiguousArray|untable(?:Range|ClosedRange)|llectionOfOne)|OpaquePointer|losed(?:Range(?:I(?:ndex|terator))?|Interval)|VaListPointer)|I(?:n(?:t(?:16|8|32|64)?|d(?:ices|ex(?:ing(?:Generator|Iterator))?))|terator(?:Sequence|OverOne)?)|Zip2(?:Sequence|Iterator)|O(?:paquePointer|bjectIdentifier)|D(?:ictionary(?:I(?:ndex|terator)|Literal)?|ouble|efault(?:RandomAccessIndices|BidirectionalIndices|Indices))|U(?:n(?:safe(?:RawPointer|Mutable(?:RawPointer|BufferPointer|Pointer)|BufferPointer(?:Generator|Iterator)?|Pointer)|icodeScalar(?:View)?|foldSequence|managed)|TF(?:16(?:View)?|8(?:View)?|32)|Int(?:16|8|32|64)?)|Join(?:Generator|ed(?:Sequence|Iterator))|PermutationGenerator|E(?:numerate(?:Generator|Sequence|d(?:Sequence|Iterator))|mpty(?:Generator|Collection|Iterator))|Fl(?:oat(?:80)?|atten(?:Generator|BidirectionalCollection(?:Index)?|Sequence|Collection(?:Index)?|Iterator))|L(?:egacyChildren|azy(?:RandomAccessCollection|Map(?:RandomAccessCollection|Generator|BidirectionalCollection|Sequence|Collection|Iterator)|BidirectionalCollection|Sequence|Collection|Filter(?:Generator|BidirectionalCollection|Sequence|Collection|I(?:ndex|terator))))|A(?:ny(?:RandomAccessCollection|Generator|BidirectionalCollection|Sequence|Hashable|Collection|I(?:ndex|terator))|utoreleasingUnsafeMutablePointer|rray(?:Slice)?))\\b", + "name": "support.type.swift" + }, + { + "comment": "Structs in the standard library in Swift 2 only", + "match": "\\b(?:R(?:everse(?:RandomAccess(?:Collection|Index)|Collection|Index)|awByte)|Map(?:Generator|Sequence|Collection)|S(?:inkOf|etGenerator)|Zip2Generator|DictionaryGenerator|Filter(?:Generator|Sequence|Collection(?:Index)?)|LazyForwardCollection|Any(?:RandomAccessIndex|BidirectionalIndex|Forward(?:Collection|Index)))\\b", + "name": "support.type.swift" + } + ] + }, + "builtin-typealias": { + "patterns": [ + { + "comment": "Typealiases in the standard library in Swift 3", + "match": "\\b(?:Raw(?:Significand|Exponent|Value)|B(?:ooleanLiteralType|uffer|ase)|S(?:t(?:orage|r(?:i(?:ngLiteralType|de)|eam(?:1|2)))|ubSequence)|NativeBuffer|C(?:hild(?:ren)?|Bool|S(?:hort|ignedChar)|odeUnit|Char(?:16|32)?|Int|Double|Unsigned(?:Short|Char|Int|Long(?:Long)?)|Float|WideChar|Long(?:Long)?)|I(?:n(?:t(?:Max|egerLiteralType)|d(?:ices|ex(?:Distance)?))|terator)|Distance|U(?:n(?:icodeScalar(?:Type|Index|View|LiteralType)|foldFirstSequence)|TF(?:16(?:Index|View)|8Index)|IntMax)|E(?:lement(?:s)?|x(?:tendedGraphemeCluster(?:Type|LiteralType)|ponent))|V(?:oid|alue)|Key|Float(?:32|LiteralType|64)|AnyClass)\\b", + "name": "support.type.swift" + }, + { + "comment": "Typealiases in the standard library in Swift 2 only", + "match": "\\b(?:Generator|PlaygroundQuickLook|UWord|Word)\\b", + "name": "support.type.swift" + } + ] + } + } + }, + "code-block": { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.section.scope.begin.swift" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.section.scope.end.swift" + } + }, + "patterns": [ + { + "include": "$self" + } + ] + }, + "comments": { + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.comment.swift" + } + }, + "match": "\\A^(#!).*$\\n?", + "name": "comment.line.number-sign.swift" + }, + { + "begin": "/\\*\\*(?!/)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.begin.swift" + } + }, + "end": "\\*/", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.end.swift" + } + }, + "name": "comment.block.documentation.swift", + "patterns": [ + { + "include": "#nested" + } + ] + }, + { + "begin": "/\\*:", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.begin.swift" + } + }, + "end": "\\*/", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.end.swift" + } + }, + "name": "comment.block.documentation.playground.swift", + "patterns": [ + { + "include": "#nested" + } + ] + }, + { + "begin": "/\\*", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.begin.swift" + } + }, + "end": "\\*/", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.end.swift" + } + }, + "name": "comment.block.swift", + "patterns": [ + { + "include": "#nested" + } + ] + }, + { + "match": "\\*/", + "name": "invalid.illegal.unexpected-end-of-block-comment.swift" + }, + { + "begin": "(^[ \\t]+)?(?=//)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.swift" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": "///", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.swift" + } + }, + "end": "^", + "name": "comment.line.triple-slash.documentation.swift" + }, + { + "begin": "//:", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.swift" + } + }, + "end": "^", + "name": "comment.line.double-slash.documentation.swift" + }, + { + "begin": "//", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.swift" + } + }, + "end": "^", + "name": "comment.line.double-slash.swift" + } + ] + } + ], + "repository": { + "nested": { + "begin": "/\\*", + "end": "\\*/", + "patterns": [ + { + "include": "#nested" + } + ] + } + } + }, + "compiler-control": { + "patterns": [ + { + "begin": "^\\s*(#)(if|elseif)\\s+(false)\\b.*?(?=$|//|/\\*)", + "beginCaptures": { + "0": { + "name": "meta.preprocessor.conditional.swift" + }, + "1": { + "name": "punctuation.definition.preprocessor.swift" + }, + "2": { + "name": "keyword.control.preprocessor.conditional.swift" + }, + "3": { + "name": "constant.language.boolean.swift" + } + }, + "contentName": "comment.block.preprocessor.swift", + "end": "(?=^\\s*(#(elseif|else|endif)\\b))" + }, + { + "begin": "^\\s*(#)(if|elseif)\\s+", + "captures": { + "1": { + "name": "punctuation.definition.preprocessor.swift" + }, + "2": { + "name": "keyword.control.preprocessor.conditional.swift" + } + }, + "end": "(?=\\s*(?://|/\\*))|$", + "name": "meta.preprocessor.conditional.swift", + "patterns": [ + { + "match": "(&&|\\|\\|)", + "name": "keyword.operator.logical.swift" + }, + { + "match": "\\b(true|false)\\b", + "name": "constant.language.boolean.swift" + }, + { + "captures": { + "1": { + "name": "keyword.other.condition.swift" + }, + "2": { + "name": "punctuation.definition.parameters.begin.swift" + }, + "3": { + "name": "support.constant.platform.architecture.swift" + }, + "4": { + "name": "punctuation.definition.parameters.end.swift" + } + }, + "match": "\\b(arch)\\s*(\\()\\s*(?:(arm|arm64|powerpc64|powerpc64le|i386|x86_64|s390x)|\\w+)\\s*(\\))" + }, + { + "captures": { + "1": { + "name": "keyword.other.condition.swift" + }, + "2": { + "name": "punctuation.definition.parameters.begin.swift" + }, + "3": { + "name": "support.constant.platform.os.swift" + }, + "4": { + "name": "punctuation.definition.parameters.end.swift" + } + }, + "match": "\\b(os)\\s*(\\()\\s*(?:(macOS|OSX|iOS|tvOS|watchOS|Android|Linux|FreeBSD|Windows|PS4)|\\w+)\\s*(\\))" + }, + { + "captures": { + "1": { + "name": "keyword.other.condition.swift" + }, + "2": { + "name": "punctuation.definition.parameters.begin.swift" + }, + "3": { + "name": "entity.name.type.module.swift" + }, + "4": { + "name": "punctuation.definition.parameters.end.swift" + } + }, + "match": "\\b(canImport)\\s*(\\()([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)(\\))" + }, + { + "begin": "\\b(targetEnvironment)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "keyword.other.condition.swift" + }, + "2": { + "name": "punctuation.definition.parameters.begin.swift" + } + }, + "end": "(\\))|$", + "endCaptures": { + "1": { + "name": "punctuation.definition.parameters.end.swift" + } + }, + "patterns": [ + { + "match": "\\b(simulator|UIKitForMac)\\b", + "name": "support.constant.platform.environment.swift" + } + ] + }, + { + "begin": "\\b(swift|compiler)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "keyword.other.condition.swift" + }, + "2": { + "name": "punctuation.definition.parameters.begin.swift" + } + }, + "end": "(\\))|$", + "endCaptures": { + "1": { + "name": "punctuation.definition.parameters.end.swift" + } + }, + "patterns": [ + { + "match": ">=|<", + "name": "keyword.operator.comparison.swift" + }, + { + "match": "\\b[0-9]+(?:\\.[0-9]+)*\\b", + "name": "constant.numeric.swift" + } + ] + } + ] + }, + { + "captures": { + "1": { + "name": "punctuation.definition.preprocessor.swift" + }, + "2": { + "name": "keyword.control.preprocessor.conditional.swift" + }, + "3": { + "patterns": [ + { + "match": "\\S+", + "name": "invalid.illegal.character-not-allowed-here.swift" + } + ] + } + }, + "match": "^\\s*(#)(else|endif)(.*?)(?=$|//|/\\*)", + "name": "meta.preprocessor.conditional.swift" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.preprocessor.swift" + }, + "2": { + "name": "keyword.control.preprocessor.sourcelocation.swift" + }, + "4": { + "name": "punctuation.definition.parameters.begin.swift" + }, + "5": { + "patterns": [ + { + "begin": "(file)\\s*(:)\\s*(?=\")", + "beginCaptures": { + "1": { + "name": "support.variable.parameter.swift" + }, + "2": { + "name": "punctuation.separator.key-value.swift" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "include": "#literals" + } + ] + }, + { + "captures": { + "1": { + "name": "support.variable.parameter.swift" + }, + "2": { + "name": "punctuation.separator.key-value.swift" + }, + "3": { + "name": "constant.numeric.integer.swift" + } + }, + "match": "(line)\\s*(:)\\s*([0-9]+)" + }, + { + "match": ",", + "name": "punctuation.separator.parameters.swift" + }, + { + "match": "\\S+", + "name": "invalid.illegal.character-not-allowed-here.swift" + } + ] + }, + "6": { + "name": "punctuation.definition.parameters.begin.swift" + }, + "7": { + "patterns": [ + { + "match": "\\S+", + "name": "invalid.illegal.character-not-allowed-here.swift" + } + ] + } + }, + "match": "^\\s*(#)(sourceLocation)((\\()([^)]*)(\\)))(.*?)(?=$|//|/\\*)", + "name": "meta.preprocessor.sourcelocation.swift" + } + ] + }, + "declarations": { + "patterns": [ + { + "include": "#function" + }, + { + "include": "#function-initializer" + }, + { + "include": "#typed-variable-declaration" + }, + { + "include": "#import" + }, + { + "include": "#operator" + }, + { + "include": "#precedencegroup" + }, + { + "include": "#protocol" + }, + { + "include": "#type" + }, + { + "include": "#extension" + }, + { + "include": "#typealias" + } + ], + "repository": { + "available-types": { + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#builtin-types" + }, + { + "include": "#attributes" + }, + { + "match": "\\basync\\b", + "name": "keyword.control.async.swift" + }, + { + "match": "\\b(?:throws|rethrows)\\b", + "name": "keyword.control.exception.swift" + }, + { + "match": "\\bsome\\b", + "name": "keyword.operator.type.opaque.swift" + }, + { + "match": "\\bany\\b", + "name": "keyword.operator.type.existential.swift" + }, + { + "match": "\\b(?:inout|isolated)\\b", + "name": "storage.modifier.swift" + }, + { + "match": "\\bSelf\\b", + "name": "variable.language.swift" + }, + { + "captures": { + "1": { + "name": "keyword.operator.type.function.swift" + } + }, + "match": "(?<![/=\\-+!*%<>&|\\^~.])(->)(?![/=\\-+!*%<>&|\\^~.])" + }, + { + "captures": { + "1": { + "name": "keyword.operator.type.composition.swift" + } + }, + "comment": "Swift 3: A & B", + "match": "(?<![/=\\-+!*%<>&|\\^~.])(&)(?![/=\\-+!*%<>&|\\^~.])" + }, + { + "match": "[?!]", + "name": "keyword.operator.type.optional.swift" + }, + { + "match": "\\.\\.\\.", + "name": "keyword.operator.function.variadic-parameter.swift" + }, + { + "comment": "Swift 2: protocol<A, B>", + "match": "\\bprotocol\\b", + "name": "keyword.operator.type.composition.swift" + }, + { + "match": "(?<=\\.)(?:Protocol|Type)\\b", + "name": "keyword.operator.type.metatype.swift" + }, + { + "include": "#tuple-type" + }, + { + "include": "#collection-type" + }, + { + "include": "#generic-argument-clause" + } + ], + "repository": { + "collection-type": { + "begin": "\\[", + "beginCaptures": { + "0": { + "name": "punctuation.section.collection-type.begin.swift" + } + }, + "comment": "array and dictionary types [Value] and [Key: Value]", + "end": "\\]|(?=[>){}])", + "endCaptures": { + "0": { + "name": "punctuation.section.collection-type.end.swift" + } + }, + "patterns": [ + { + "include": "#available-types" + }, + { + "begin": ":", + "beginCaptures": { + "0": { + "name": "punctuation.separator.key-value.swift" + } + }, + "end": "(?=\\]|[>){}])", + "patterns": [ + { + "match": ":", + "name": "invalid.illegal.extra-colon-in-dictionary-type.swift" + }, + { + "include": "#available-types" + } + ] + } + ] + }, + "tuple-type": { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.section.tuple-type.begin.swift" + } + }, + "end": "\\)|(?=[>\\]{}])", + "endCaptures": { + "0": { + "name": "punctuation.section.tuple-type.end.swift" + } + }, + "patterns": [ + { + "include": "#available-types" + } + ] + } + } + }, + "extension": { + "begin": "\\b(extension)\\s+((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))", + "beginCaptures": { + "1": { + "name": "storage.type.$1.swift" + }, + "2": { + "name": "entity.name.type.swift", + "patterns": [ + { + "include": "#available-types" + } + ] + }, + "3": { + "name": "punctuation.definition.identifier.swift" + }, + "4": { + "name": "punctuation.definition.identifier.swift" + } + }, + "end": "(?<=\\})", + "name": "meta.definition.type.$1.swift", + "patterns": [ + { + "include": "#comments" + }, + { + "comment": "SE-0143: Conditional Conformances", + "include": "#generic-where-clause" + }, + { + "include": "#inheritance-clause" + }, + { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.type.begin.swift" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.type.end.swift" + } + }, + "name": "meta.definition.type.body.swift", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + "function": { + "begin": "(?x)\n\t\t\t\t\t\t\\b\n\t\t\t\t\t\t(?:(nonisolated)\\s+)?\n\t\t\t\t\t\t(func)\n\t\t\t\t\t\t\\s+\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t(?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>)\n\t\t\t\t\t\t | (?:\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?<oph>\t\t\t\t\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t\t[/=\\-+!*%<>&|^~?]\n\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\\g<oph>\n\t\t\t\t\t\t\t\t\t | (?<opc>\t\t\t\t\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t\t\t[\\x{0300}-\\x{036F}]\n\t\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t)*\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t | ( \\. ( \\g<oph> | \\g<opc> | \\. )+ )\t\t\t# Dot operators\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\\s*\n\t\t\t\t\t\t(?=\\(|<)\n\t\t\t\t\t", + "beginCaptures": { + "1": { + "name": "storage.modifier.swift" + }, + "2": { + "name": "storage.type.function.swift" + }, + "3": { + "name": "entity.name.function.swift" + }, + "4": { + "name": "punctuation.definition.identifier.swift" + }, + "5": { + "name": "punctuation.definition.identifier.swift" + } + }, + "end": "(?<=\\})|$(?# functions in protocol declarations or generated interfaces have no body)", + "name": "meta.definition.function.swift", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#generic-parameter-clause" + }, + { + "include": "#parameter-clause" + }, + { + "include": "#function-result" + }, + { + "include": "#async-throws" + }, + { + "comment": "Swift 3: generic constraints after the parameters and return type", + "include": "#generic-where-clause" + }, + { + "begin": "(\\{)", + "beginCaptures": { + "1": { + "name": "punctuation.section.function.begin.swift" + } + }, + "end": "(\\})", + "endCaptures": { + "1": { + "name": "punctuation.section.function.end.swift" + } + }, + "name": "meta.definition.function.body.swift", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + "function-initializer": { + "begin": "(?<!\\.)\\b(init[?!]*(?# only one is valid, but we want the in⇥ snippet to produce something that looks good))\\s*(?=\\(|<)", + "beginCaptures": { + "1": { + "name": "storage.type.function.swift", + "patterns": [ + { + "match": "(?<=[?!])[?!]+", + "name": "invalid.illegal.character-not-allowed-here.swift" + } + ] + } + }, + "end": "(?<=\\})|$", + "name": "meta.definition.function.initializer.swift", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#generic-parameter-clause" + }, + { + "include": "#parameter-clause" + }, + { + "include": "#async-throws" + }, + { + "comment": "Swift 3: generic constraints after the parameters and return type", + "include": "#generic-where-clause" + }, + { + "begin": "(\\{)", + "beginCaptures": { + "1": { + "name": "punctuation.section.function.begin.swift" + } + }, + "end": "(\\})", + "endCaptures": { + "1": { + "name": "punctuation.section.function.end.swift" + } + }, + "name": "meta.definition.function.body.swift", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + "function-result": { + "begin": "(?<![/=\\-+!*%<>&|\\^~.])(->)(?![/=\\-+!*%<>&|\\^~.])\\s*", + "beginCaptures": { + "1": { + "name": "keyword.operator.function-result.swift" + } + }, + "end": "(?!\\G)(?=\\{|\\bwhere\\b|;)|$", + "name": "meta.function-result.swift", + "patterns": [ + { + "include": "#available-types" + } + ] + }, + "generic-argument-clause": { + "begin": "<", + "beginCaptures": { + "0": { + "name": "punctuation.separator.generic-argument-clause.begin.swift" + } + }, + "end": ">|(?=[)\\]{}])", + "endCaptures": { + "0": { + "name": "punctuation.separator.generic-argument-clause.end.swift" + } + }, + "name": "meta.generic-argument-clause.swift", + "patterns": [ + { + "include": "#available-types" + } + ] + }, + "generic-parameter-clause": { + "begin": "<", + "beginCaptures": { + "0": { + "name": "punctuation.separator.generic-parameter-clause.begin.swift" + } + }, + "end": ">|(?=[^\\w\\d:<>\\s,=&`])(?# characters besides these are never valid in a generic param list -- even if it's not really a valid clause, we should stop trying to parse it if we see one of them.)", + "endCaptures": { + "0": { + "name": "punctuation.separator.generic-parameter-clause.end.swift" + } + }, + "name": "meta.generic-parameter-clause.swift", + "patterns": [ + { + "include": "#comments" + }, + { + "comment": "Swift 2: constraints inside the generic param list", + "include": "#generic-where-clause" + }, + { + "captures": { + "1": { + "name": "variable.language.generic-parameter.swift" + } + }, + "match": "\\b((?!\\d)\\w[\\w\\d]*)\\b" + }, + { + "match": ",", + "name": "punctuation.separator.generic-parameters.swift" + }, + { + "begin": "(:)\\s*", + "beginCaptures": { + "1": { + "name": "punctuation.separator.generic-parameter-constraint.swift" + } + }, + "end": "(?=[,>]|(?!\\G)\\bwhere\\b)", + "name": "meta.generic-parameter-constraint.swift", + "patterns": [ + { + "begin": "\\G", + "end": "(?=[,>]|(?!\\G)\\bwhere\\b)", + "name": "entity.other.inherited-class.swift", + "patterns": [ + { + "include": "#type-identifier" + } + ] + } + ] + } + ] + }, + "generic-where-clause": { + "begin": "\\b(where)\\b\\s*", + "beginCaptures": { + "1": { + "name": "keyword.other.generic-constraint-introducer.swift" + } + }, + "end": "(?!\\G)$|(?=[>{};\\n]|//|/\\*)", + "name": "meta.generic-where-clause.swift", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#requirement-list" + } + ], + "repository": { + "requirement-list": { + "begin": "\\G|,\\s*", + "end": "(?=[,>{};\\n]|//|/\\*)", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#constraint" + }, + { + "include": "#available-types" + }, + { + "begin": "(?<![/=\\-+!*%<>&|\\^~.])(==)(?![/=\\-+!*%<>&|\\^~.])", + "beginCaptures": { + "1": { + "name": "keyword.operator.generic-constraint.same-type.swift" + } + }, + "end": "(?=\\s*[,>{};\\n]|//|/\\*)", + "name": "meta.generic-where-clause.same-type-requirement.swift", + "patterns": [ + { + "include": "#available-types" + } + ] + }, + { + "begin": "(?<![/=\\-+!*%<>&|\\^~.])(:)(?![/=\\-+!*%<>&|\\^~.])", + "beginCaptures": { + "1": { + "name": "keyword.operator.generic-constraint.conforms-to.swift" + } + }, + "end": "(?=\\s*[,>{};\\n]|//|/\\*)", + "name": "meta.generic-where-clause.conformance-requirement.swift", + "patterns": [ + { + "begin": "\\G\\s*", + "contentName": "entity.other.inherited-class.swift", + "end": "(?=\\s*[,>{};\\n]|//|/\\*)", + "patterns": [ + { + "include": "#available-types" + } + ] + } + ] + } + ] + } + } + }, + "import": { + "begin": "(?<!\\.)\\b(import)\\s+", + "beginCaptures": { + "1": { + "name": "keyword.control.import.swift" + } + }, + "end": "(;)|$\\n?|(?=//|/\\*)", + "endCaptures": { + "1": { + "name": "punctuation.terminator.statement.swift" + } + }, + "name": "meta.import.swift", + "patterns": [ + { + "begin": "\\G(?!;|$|//|/\\*)(?:(typealias|struct|class|actor|enum|protocol|var|func)\\s+)?", + "beginCaptures": { + "1": { + "name": "storage.modifier.swift" + } + }, + "end": "(?=;|$|//|/\\*)", + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.identifier.swift" + }, + "2": { + "name": "punctuation.definition.identifier.swift" + } + }, + "match": "(?x)\n\t\t\t\t\t\t\t\t\t\t(?<=\\G|\\.)\n\t\t\t\t\t\t\t\t\t\t(?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>)\n\t\t\t\t\t\t\t\t\t", + "name": "entity.name.type.swift" + }, + { + "match": "(?x)\n\t\t\t\t\t\t\t\t\t\t(?<=\\G|\\.)\n\t\t\t\t\t\t\t\t\t\t\\$[0-9]+\n\t\t\t\t\t\t\t\t\t", + "name": "entity.name.type.swift" + }, + { + "captures": { + "1": { + "patterns": [ + { + "match": "\\.", + "name": "invalid.illegal.dot-not-allowed-here.swift" + } + ] + } + }, + "match": "(?x)\n\t\t\t\t\t\t\t\t\t\t(?<=\\G|\\.)\n\t\t\t\t\t\t\t\t\t\t(?:\n\t\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t\t(?<oph>\t\t\t\t\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t\t\t\t\t[/=\\-+!*%<>&|^~?]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\\g<oph>\n\t\t\t\t\t\t\t\t\t\t\t\t | (?<opc>\t\t\t\t\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\\x{0300}-\\x{036F}]\n\t\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t)*\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t | ( \\. ( \\g<oph> | \\g<opc> | \\. )+ )\t\t\t# Dot operators\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t(?=\\.|;|$|//|/\\*|\\s)\n\t\t\t\t\t\t\t\t\t", + "name": "entity.name.type.swift" + }, + { + "match": "\\.", + "name": "punctuation.separator.import.swift" + }, + { + "begin": "(?!\\s*(;|$|//|/\\*))", + "end": "(?=\\s*(;|$|//|/\\*))", + "name": "invalid.illegal.character-not-allowed-here.swift" + } + ] + } + ] + }, + "inheritance-clause": { + "begin": "(:)(?=\\s*\\{)|(:)\\s*", + "beginCaptures": { + "1": { + "name": "invalid.illegal.empty-inheritance-clause.swift" + }, + "2": { + "name": "punctuation.separator.inheritance-clause.swift" + } + }, + "end": "(?!\\G)$|(?=[={}]|(?!\\G)\\bwhere\\b)", + "name": "meta.inheritance-clause.swift", + "patterns": [ + { + "begin": "\\bclass\\b", + "beginCaptures": { + "0": { + "name": "storage.type.class.swift" + } + }, + "end": "(?=[={}]|(?!\\G)\\bwhere\\b)", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#more-types" + } + ] + }, + { + "begin": "\\G", + "end": "(?!\\G)$|(?=[={}]|(?!\\G)\\bwhere\\b)", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#inherited-type" + }, + { + "include": "#more-types" + } + ] + } + ], + "repository": { + "inherited-type": { + "begin": "(?=[`\\p{L}_])", + "end": "(?!\\G)", + "name": "entity.other.inherited-class.swift", + "patterns": [ + { + "include": "#type-identifier" + } + ] + }, + "more-types": { + "begin": ",\\s*", + "end": "(?!\\G)(?!//|/\\*)|(?=[,={}]|(?!\\G)\\bwhere\\b)", + "name": "meta.inheritance-list.more-types", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#inherited-type" + }, + { + "include": "#more-types" + } + ] + } + } + }, + "operator": { + "begin": "(?x)\n\t\t\t\t\t\t(?:\n\t\t\t\t\t\t\t\\b(prefix|infix|postfix)\n\t\t\t\t\t\t\t\\s+\n\t\t\t\t\t\t)?\n\t\t\t\t\t\t\\b\n\t\t\t\t\t\t(operator)\n\t\t\t\t\t\t\\s+\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t(?<oph>\t\t\t\t\t\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t[/=\\-+!*%<>&|^~?]\n\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\\g<oph>\n\t\t\t\t\t\t\t\t | \\.\t\t\t\t\t\t\t\t\t# Invalid dot\n\t\t\t\t\t\t\t\t | (?<opc>\t\t\t\t\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t\t[\\x{0300}-\\x{036F}]\n\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)*+\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t | ( \\. ( \\g<oph> | \\g<opc> | \\. )++ )\t\t\t# Dot operators\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\\s*\n\t\t\t\t\t", + "beginCaptures": { + "1": { + "name": "storage.modifier.swift" + }, + "2": { + "name": "storage.type.function.operator.swift" + }, + "3": { + "name": "entity.name.function.operator.swift" + }, + "4": { + "patterns": [ + { + "match": "\\.", + "name": "invalid.illegal.dot-not-allowed-here.swift" + } + ] + } + }, + "end": "(;)|$\\n?|(?=//|/\\*)", + "endCaptures": { + "1": { + "name": "punctuation.terminator.statement.swift" + } + }, + "name": "meta.definition.operator.swift", + "patterns": [ + { + "include": "#swift2" + }, + { + "include": "#swift3" + }, + { + "match": "((?!$|;|//|/\\*)\\S)+", + "name": "invalid.illegal.character-not-allowed-here.swift" + } + ], + "repository": { + "swift2": { + "begin": "\\G(\\{)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.operator.begin.swift" + } + }, + "end": "(\\})", + "endCaptures": { + "1": { + "name": "punctuation.definition.operator.end.swift" + } + }, + "patterns": [ + { + "include": "#comments" + }, + { + "captures": { + "1": { + "name": "storage.modifier.swift" + }, + "2": { + "name": "keyword.other.operator.associativity.swift" + } + }, + "match": "\\b(associativity)\\s+(left|right)\\b" + }, + { + "captures": { + "1": { + "name": "storage.modifier.swift" + }, + "2": { + "name": "constant.numeric.integer.swift" + } + }, + "match": "\\b(precedence)\\s+([0-9]+)\\b" + }, + { + "captures": { + "1": { + "name": "storage.modifier.swift" + } + }, + "match": "\\b(assignment)\\b" + } + ] + }, + "swift3": { + "captures": { + "2": { + "name": "entity.other.inherited-class.swift", + "patterns": [ + { + "include": "#types-precedencegroup" + } + ] + }, + "3": { + "name": "punctuation.definition.identifier.swift" + }, + "4": { + "name": "punctuation.definition.identifier.swift" + } + }, + "match": "\\G(:)\\s*((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))" + } + } + }, + "parameter-clause": { + "begin": "(\\()", + "beginCaptures": { + "1": { + "name": "punctuation.definition.parameters.begin.swift" + } + }, + "end": "(\\))(?:\\s*(async)\\b)?", + "endCaptures": { + "1": { + "name": "punctuation.definition.parameters.end.swift" + }, + "2": { + "name": "keyword.control.async.swift" + } + }, + "name": "meta.parameter-clause.swift", + "patterns": [ + { + "include": "#parameter-list" + } + ] + }, + "parameter-list": { + "patterns": [ + { + "captures": { + "1": { + "name": "entity.name.function.swift" + }, + "2": { + "name": "punctuation.definition.identifier.swift" + }, + "3": { + "name": "punctuation.definition.identifier.swift" + }, + "4": { + "name": "variable.parameter.function.swift" + }, + "5": { + "name": "punctuation.definition.identifier.swift" + }, + "6": { + "name": "punctuation.definition.identifier.swift" + } + }, + "comment": "External parameter labels are considered part of the function name", + "match": "((?<q1>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q1>))\\s+((?<q2>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q2>))(?=\\s*:)" + }, + { + "captures": { + "1": { + "name": "variable.parameter.function.swift" + }, + "2": { + "name": "entity.name.function.swift" + }, + "3": { + "name": "punctuation.definition.identifier.swift" + }, + "4": { + "name": "punctuation.definition.identifier.swift" + } + }, + "comment": "If no external label is given, the name is both the external label and the internal variable name", + "match": "(((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>)))(?=\\s*:)" + }, + { + "begin": ":\\s*(?!\\s)", + "end": "(?=[,)])", + "patterns": [ + { + "include": "#available-types" + }, + { + "match": ":", + "name": "invalid.illegal.extra-colon-in-parameter-list.swift" + }, + { + "begin": "=", + "beginCaptures": { + "0": { + "name": "keyword.operator.assignment.swift" + } + }, + "comment": "a parameter's default value", + "end": "(?=[,)])", + "patterns": [ + { + "include": "#expressions" + } + ] + } + ] + } + ] + }, + "precedencegroup": { + "begin": "\\b(precedencegroup)\\s+((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))\\s*(?=\\{)", + "beginCaptures": { + "1": { + "name": "storage.type.precedencegroup.swift" + }, + "2": { + "name": "entity.name.type.precedencegroup.swift" + }, + "3": { + "name": "punctuation.definition.identifier.swift" + }, + "4": { + "name": "punctuation.definition.identifier.swift" + } + }, + "end": "(?!\\G)", + "name": "meta.definition.precedencegroup.swift", + "patterns": [ + { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.precedencegroup.begin.swift" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.precedencegroup.end.swift" + } + }, + "patterns": [ + { + "include": "#comments" + }, + { + "captures": { + "1": { + "name": "storage.modifier.swift" + }, + "2": { + "name": "entity.other.inherited-class.swift", + "patterns": [ + { + "include": "#types-precedencegroup" + } + ] + }, + "3": { + "name": "punctuation.definition.identifier.swift" + }, + "4": { + "name": "punctuation.definition.identifier.swift" + } + }, + "match": "\\b(higherThan|lowerThan)\\s*:\\s*((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))" + }, + { + "captures": { + "1": { + "name": "storage.modifier.swift" + }, + "2": { + "name": "keyword.other.operator.associativity.swift" + } + }, + "match": "\\b(associativity)\\b(?:\\s*:\\s*(right|left|none)\\b)?" + }, + { + "captures": { + "1": { + "name": "storage.modifier.swift" + }, + "2": { + "name": "constant.language.boolean.swift" + } + }, + "match": "\\b(assignment)\\b(?:\\s*:\\s*(true|false)\\b)?" + } + ] + } + ] + }, + "protocol": { + "begin": "\\b(protocol)\\s+((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))", + "beginCaptures": { + "1": { + "name": "storage.type.$1.swift" + }, + "2": { + "name": "entity.name.type.$1.swift" + }, + "3": { + "name": "punctuation.definition.identifier.swift" + }, + "4": { + "name": "punctuation.definition.identifier.swift" + } + }, + "end": "(?<=\\})", + "name": "meta.definition.type.protocol.swift", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#inheritance-clause" + }, + { + "comment": "SE-0142: Permit where clauses to constrain associated types", + "include": "#generic-where-clause" + }, + { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.type.begin.swift" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.type.end.swift" + } + }, + "name": "meta.definition.type.body.swift", + "patterns": [ + { + "include": "#protocol-method" + }, + { + "include": "#protocol-initializer" + }, + { + "include": "#associated-type" + }, + { + "include": "$self" + } + ] + } + ], + "repository": { + "associated-type": { + "begin": "\\b(associatedtype)\\s+((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))\\s*", + "beginCaptures": { + "1": { + "name": "keyword.other.declaration-specifier.swift" + }, + "2": { + "name": "variable.language.associatedtype.swift" + }, + "3": { + "name": "punctuation.definition.identifier.swift" + }, + "4": { + "name": "punctuation.definition.identifier.swift" + } + }, + "end": "(?!\\G)$|(?=[;}]|$)", + "name": "meta.definition.associatedtype.swift", + "patterns": [ + { + "include": "#inheritance-clause" + }, + { + "comment": "SE-0142: Permit where clauses to constrain associated types", + "include": "#generic-where-clause" + }, + { + "include": "#typealias-assignment" + } + ] + }, + "protocol-initializer": { + "begin": "(?<!\\.)\\b(init[?!]*(?# only one is valid, but we want the in⇥ snippet to produce something that looks good))\\s*(?=\\(|<)", + "beginCaptures": { + "1": { + "name": "storage.type.function.swift", + "patterns": [ + { + "match": "(?<=[?!])[?!]+", + "name": "invalid.illegal.character-not-allowed-here.swift" + } + ] + } + }, + "end": "$|(?=;|//|/\\*|\\})", + "name": "meta.definition.function.initializer.swift", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#generic-parameter-clause" + }, + { + "include": "#parameter-clause" + }, + { + "include": "#async-throws" + }, + { + "comment": "Swift 3: generic constraints after the parameters and return type", + "include": "#generic-where-clause" + }, + { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.section.function.begin.swift" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.section.function.end.swift" + } + }, + "name": "invalid.illegal.function-body-not-allowed-in-protocol.swift", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + "protocol-method": { + "begin": "(?x)\n\t\t\t\t\t\t\t\t\\b\n\t\t\t\t\t\t\t\t(func)\n\t\t\t\t\t\t\t\t\\s+\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>)\n\t\t \t\t\t\t\t\t | (?:\n\t\t \t\t\t\t\t\t\t\t(\n\t\t \t\t\t\t\t\t\t\t\t(?<oph>\t\t\t\t\t\t\t\t# operator-head\n\t\t \t\t\t\t\t\t\t\t\t\t[/=\\-+!*%<>&|^~?]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t \t\t\t\t\t\t\t\t\t)\n\t\t \t\t\t\t\t\t\t\t\t(\n\t\t \t\t\t\t\t\t\t\t\t\t\\g<oph>\n\t\t \t\t\t\t\t\t\t\t\t | (?<opc>\t\t\t\t\t\t\t\t# operator-character\n\t\t \t\t\t\t\t\t\t\t\t\t\t[\\x{0300}-\\x{036F}]\n\t\t \t\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t \t\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t \t\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t \t\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t \t\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t \t\t\t\t\t\t\t\t\t\t)\n\t\t \t\t\t\t\t\t\t\t\t)*\n\t\t \t\t\t\t\t\t\t\t)\n\t\t \t\t\t\t\t\t\t | ( \\. ( \\g<oph> | \\g<opc> | \\. )+ )\t\t\t# Dot operators\n\t\t \t\t\t\t\t\t\t)\n\t\t \t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\\s*\n\t\t\t\t\t\t\t\t(?=\\(|<)\n\t\t\t\t\t\t\t", + "beginCaptures": { + "1": { + "name": "storage.type.function.swift" + }, + "2": { + "name": "entity.name.function.swift" + }, + "3": { + "name": "punctuation.definition.identifier.swift" + }, + "4": { + "name": "punctuation.definition.identifier.swift" + } + }, + "end": "$|(?=;|//|/\\*|\\})", + "name": "meta.definition.function.swift", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#generic-parameter-clause" + }, + { + "include": "#parameter-clause" + }, + { + "include": "#function-result" + }, + { + "include": "#async-throws" + }, + { + "comment": "Swift 3: generic constraints after the parameters and return type", + "include": "#generic-where-clause" + }, + { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.section.function.begin.swift" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.section.function.end.swift" + } + }, + "name": "invalid.illegal.function-body-not-allowed-in-protocol.swift", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + } + } + }, + "type": { + "patterns": [ + { + "begin": "\\b(class(?!\\s+(?:func|var|let)\\b)|struct|actor)\\s+((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))", + "beginCaptures": { + "1": { + "name": "storage.type.$1.swift" + }, + "2": { + "name": "entity.name.type.$1.swift" + }, + "3": { + "name": "punctuation.definition.identifier.swift" + }, + "4": { + "name": "punctuation.definition.identifier.swift" + } + }, + "end": "(?<=\\})", + "name": "meta.definition.type.$1.swift", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#generic-parameter-clause" + }, + { + "comment": "Swift 3: generic constraints after the generic param list", + "include": "#generic-where-clause" + }, + { + "include": "#inheritance-clause" + }, + { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.type.begin.swift" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.type.end.swift" + } + }, + "name": "meta.definition.type.body.swift", + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + { + "include": "#type-enum" + } + ] + }, + "type-enum": { + "begin": "\\b(enum)\\s+((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))", + "beginCaptures": { + "1": { + "name": "storage.type.$1.swift" + }, + "2": { + "name": "entity.name.type.$1.swift" + }, + "3": { + "name": "punctuation.definition.identifier.swift" + }, + "4": { + "name": "punctuation.definition.identifier.swift" + } + }, + "end": "(?<=\\})", + "name": "meta.definition.type.$1.swift", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#generic-parameter-clause" + }, + { + "comment": "Swift 3: generic constraints after the generic param list", + "include": "#generic-where-clause" + }, + { + "include": "#inheritance-clause" + }, + { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.type.begin.swift" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.type.end.swift" + } + }, + "name": "meta.definition.type.body.swift", + "patterns": [ + { + "include": "#enum-case-clause" + }, + { + "include": "$self" + } + ] + } + ], + "repository": { + "associated-values": { + "begin": "\\G\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.parameters.begin.swift" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.parameters.end.swift" + } + }, + "patterns": [ + { + "include": "#comments" + }, + { + "begin": "(?x)\n\t\t\t\t\t\t\t\t\t\t(?:(_)|((?<q1>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*\\k<q1>))\n\t\t\t\t\t\t\t\t\t\t\\s+\n\t\t\t\t\t\t\t\t\t\t(((?<q2>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*\\k<q2>))\n\t\t\t\t\t\t\t\t\t\t\\s*(:)", + "beginCaptures": { + "1": { + "name": "entity.name.function.swift" + }, + "2": { + "name": "invalid.illegal.distinct-labels-not-allowed.swift" + }, + "5": { + "name": "variable.parameter.function.swift" + }, + "7": { + "name": "punctuation.separator.argument-label.swift" + } + }, + "end": "(?=[,)\\]])", + "patterns": [ + { + "include": "#available-types" + } + ] + }, + { + "begin": "(((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*\\k<q>))\\s*(:)", + "beginCaptures": { + "1": { + "name": "entity.name.function.swift" + }, + "2": { + "name": "variable.parameter.function.swift" + }, + "4": { + "name": "punctuation.separator.argument-label.swift" + } + }, + "end": "(?=[,)\\]])", + "patterns": [ + { + "include": "#available-types" + } + ] + }, + { + "begin": "(?![,)\\]])(?=\\S)", + "comment": "an element without a label (i.e. anything else)", + "end": "(?=[,)\\]])", + "patterns": [ + { + "include": "#available-types" + }, + { + "match": ":", + "name": "invalid.illegal.extra-colon-in-parameter-list.swift" + } + ] + } + ] + }, + "enum-case": { + "begin": "(?x)((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))\\s*", + "beginCaptures": { + "1": { + "name": "constant.other.swift" + } + }, + "end": "(?<=\\))|(?![=(])", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#associated-values" + }, + { + "include": "#raw-value-assignment" + } + ] + }, + "enum-case-clause": { + "begin": "\\b(case)\\b\\s*", + "beginCaptures": { + "1": { + "name": "storage.type.enum.case.swift" + } + }, + "end": "(?=[;}])|(?!\\G)(?!//|/\\*)(?=[^\\s,])", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#enum-case" + }, + { + "include": "#more-cases" + } + ] + }, + "more-cases": { + "begin": ",\\s*", + "end": "(?!\\G)(?!//|/\\*)(?=[;}]|[^\\s,])", + "name": "meta.enum-case.more-cases", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#enum-case" + }, + { + "include": "#more-cases" + } + ] + }, + "raw-value-assignment": { + "begin": "(=)\\s*", + "beginCaptures": { + "1": { + "name": "keyword.operator.assignment.swift" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#literals" + } + ] + } + } + }, + "type-identifier": { + "begin": "((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))\\s*", + "beginCaptures": { + "1": { + "name": "meta.type-name.swift", + "patterns": [ + { + "include": "#builtin-types" + } + ] + }, + "2": { + "name": "punctuation.definition.identifier.swift" + }, + "3": { + "name": "punctuation.definition.identifier.swift" + } + }, + "end": "(?!<)", + "patterns": [ + { + "begin": "(?=<)", + "end": "(?!\\G)", + "patterns": [ + { + "include": "#generic-argument-clause" + } + ] + } + ] + }, + "typealias": { + "begin": "\\b(typealias)\\s+((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))\\s*", + "beginCaptures": { + "1": { + "name": "keyword.other.declaration-specifier.swift" + }, + "2": { + "name": "entity.name.type.typealias.swift" + }, + "3": { + "name": "punctuation.definition.identifier.swift" + }, + "4": { + "name": "punctuation.definition.identifier.swift" + } + }, + "end": "(?!\\G)$|(?=;|//|/\\*|$)", + "name": "meta.definition.typealias.swift", + "patterns": [ + { + "begin": "\\G(?=<)", + "end": "(?!\\G)", + "patterns": [ + { + "include": "#generic-parameter-clause" + } + ] + }, + { + "include": "#typealias-assignment" + } + ] + }, + "typealias-assignment": { + "begin": "(=)\\s*", + "beginCaptures": { + "1": { + "name": "keyword.operator.assignment.swift" + } + }, + "end": "(?!\\G)$|(?=;|//|/\\*|$)", + "patterns": [ + { + "include": "#available-types" + } + ] + }, + "typed-variable-declaration": { + "begin": "(?x)\n\t\t\t\t\t\t\\b(?:(async)\\s+)?(let|var)\\b\\s+\n\t\t\t\t\t\t(?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>)\\s*\n\t\t\t\t\t\t:\n\t\t\t\t\t", + "beginCaptures": { + "1": { + "name": "keyword.control.async.swift" + }, + "2": { + "name": "keyword.other.declaration-specifier.swift" + } + }, + "end": "(?=$|[={])", + "patterns": [ + { + "include": "#available-types" + } + ] + }, + "types-precedencegroup": { + "patterns": [ + { + "comment": "Precedence groups in the standard library", + "match": "\\b(?:BitwiseShift|Assignment|RangeFormation|Casting|Addition|NilCoalescing|Comparison|LogicalConjunction|LogicalDisjunction|Default|Ternary|Multiplication|FunctionArrow)Precedence\\b", + "name": "support.type.swift" + } + ] + } + } + }, + "expressions": { + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#code-block" + }, + { + "include": "#attributes" + }, + { + "include": "#closure-parameter" + }, + { + "include": "#literals" + }, + { + "include": "#operators" + }, + { + "include": "#builtin-types" + }, + { + "include": "#builtin-functions" + }, + { + "include": "#builtin-global-functions" + }, + { + "include": "#builtin-properties" + }, + { + "include": "#compound-name" + }, + { + "include": "#keywords" + }, + { + "include": "#function-call-expression" + }, + { + "include": "#subscript-expression" + }, + { + "include": "#parenthesized-expression" + }, + { + "include": "#member-reference" + }, + { + "include": "#availability-condition" + }, + { + "match": "\\b_\\b", + "name": "support.variable.discard-value.swift" + } + ], + "repository": { + "availability-condition": { + "begin": "\\B(#(?:un)?available)(\\()", + "beginCaptures": { + "1": { + "name": "support.function.availability-condition.swift" + }, + "2": { + "name": "punctuation.definition.arguments.begin.swift" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.end.swift" + } + }, + "patterns": [ + { + "captures": { + "1": { + "name": "keyword.other.platform.os.swift" + }, + "2": { + "name": "constant.numeric.swift" + } + }, + "match": "\\s*\\b((?:iOS|macOS|OSX|watchOS|tvOS|UIKitForMac)(?:ApplicationExtension)?)\\b(?:\\s+([0-9]+(?:\\.[0-9]+)*\\b))" + }, + { + "captures": { + "1": { + "name": "keyword.other.platform.all.swift" + }, + "2": { + "name": "invalid.illegal.character-not-allowed-here.swift" + } + }, + "match": "(\\*)\\s*(.*?)(?=[,)])" + }, + { + "match": "[^\\s,)]+", + "name": "invalid.illegal.character-not-allowed-here.swift" + } + ] + }, + "closure-parameter": { + "match": "\\$[0-9]+", + "name": "variable.language.closure-parameter.swift" + }, + "compound-name": { + "captures": { + "1": { + "name": "entity.name.function.compound-name.swift" + }, + "2": { + "name": "punctuation.definition.entity.swift" + }, + "3": { + "name": "punctuation.definition.entity.swift" + }, + "4": { + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.entity.swift" + }, + "2": { + "name": "punctuation.definition.entity.swift" + } + }, + "match": "(?<q>`?)(?!_:)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>):", + "name": "entity.name.function.compound-name.swift" + } + ] + } + }, + "comment": "a reference to a function with disambiguating argument labels, such as foo(_:), foo(bar:), etc.", + "match": "(?x)\n\t\t\t\t\t\t((?<q1>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q1>)) \t\t# function name\n\t\t\t\t\t\t\\(\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t((?<q2>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q2>)) \t# argument label\n\t\t\t\t\t\t\t\t\t:\t\t\t\t\t\t\t\t\t\t\t\t# colon\n\t\t\t\t\t\t\t\t)+\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\\)\n\t\t\t\t\t" + }, + "expression-element-list": { + "patterns": [ + { + "include": "#comments" + }, + { + "begin": "((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))\\s*(:)", + "beginCaptures": { + "1": { + "name": "support.function.any-method.swift" + }, + "2": { + "name": "punctuation.definition.identifier.swift" + }, + "3": { + "name": "punctuation.definition.identifier.swift" + }, + "4": { + "name": "punctuation.separator.argument-label.swift" + } + }, + "comment": "an element with a label", + "end": "(?=[,)\\]])", + "patterns": [ + { + "include": "#expressions" + } + ] + }, + { + "begin": "(?![,)\\]])(?=\\S)", + "comment": "an element without a label (i.e. anything else)", + "end": "(?=[,)\\]])", + "patterns": [ + { + "include": "#expressions" + } + ] + } + ] + }, + "function-call-expression": { + "patterns": [ + { + "begin": "((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))\\s*(\\()", + "beginCaptures": { + "1": { + "name": "support.function.any-method.swift" + }, + "2": { + "name": "punctuation.definition.identifier.swift" + }, + "3": { + "name": "punctuation.definition.identifier.swift" + }, + "4": { + "name": "punctuation.definition.arguments.begin.swift" + } + }, + "comment": "foo(args) -- a call whose callee is a highlightable name", + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.end.swift" + } + }, + "name": "meta.function-call.swift", + "patterns": [ + { + "include": "#expression-element-list" + } + ] + }, + { + "begin": "(?<=[`\\])}>\\p{L}_\\p{N}\\p{M}])\\s*(\\()", + "beginCaptures": { + "1": { + "name": "punctuation.definition.arguments.begin.swift" + } + }, + "comment": "[Int](args) -- a call whose callee is a more complicated expression", + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.end.swift" + } + }, + "name": "meta.function-call.swift", + "patterns": [ + { + "include": "#expression-element-list" + } + ] + } + ] + }, + "member-reference": { + "patterns": [ + { + "captures": { + "1": { + "name": "variable.other.swift" + }, + "2": { + "name": "punctuation.definition.identifier.swift" + }, + "3": { + "name": "punctuation.definition.identifier.swift" + } + }, + "match": "(?<=\\.)((?<q>`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k<q>))" + } + ] + }, + "parenthesized-expression": { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.section.tuple.begin.swift" + } + }, + "comment": "correctly matching closure expressions is too hard (depends on trailing \"in\") so we just tack on some basics to the end of parenthesized-expression", + "end": "(\\))\\s*((?:\\b(?:async|throws|rethrows)\\s)*)", + "endCaptures": { + "1": { + "name": "punctuation.section.tuple.end.swift" + }, + "2": { + "patterns": [ + { + "match": "\\brethrows\\b", + "name": "invalid.illegal.rethrows-only-allowed-on-function-declarations.swift" + }, + { + "include": "#async-throws" + } + ] + } + }, + "patterns": [ + { + "include": "#expression-element-list" + } + ] + }, + "subscript-expression": { + "begin": "(?<=[`\\p{L}_\\p{N}\\p{M}])\\s*(\\[)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.arguments.begin.swift" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.end.swift" + } + }, + "name": "meta.subscript-expression.swift", + "patterns": [ + { + "include": "#expression-element-list" + } + ] + } + } + }, + "keywords": { + "patterns": [ + { + "match": "(?<!\\.)\\b(?:if|else|guard|where|switch|case|default|fallthrough)\\b", + "name": "keyword.control.branch.swift" + }, + { + "match": "(?<!\\.)\\b(?:continue|break|fallthrough|return)\\b", + "name": "keyword.control.transfer.swift" + }, + { + "match": "(?<!\\.)\\b(?:while|for|in)\\b", + "name": "keyword.control.loop.swift" + }, + { + "captures": { + "1": { + "name": "keyword.control.loop.swift" + }, + "2": { + "name": "punctuation.whitespace.trailing.repeat.swift" + } + }, + "comment": "extra scopes for repeat-while snippet", + "match": "(?<!\\.)\\b(repeat)\\b(\\s*)" + }, + { + "match": "(?<!\\.)\\bdefer\\b", + "name": "keyword.control.defer.swift" + }, + { + "captures": { + "1": { + "name": "invalid.illegal.try-must-precede-await.swift" + }, + "2": { + "name": "keyword.control.await.swift" + } + }, + "match": "(?<!\\.)\\b(?:(await\\s+try)|(await)\\b)" + }, + { + "match": "(?<!\\.)\\b(?:catch|throws?|rethrows|try)\\b|\\btry[?!]\\B", + "name": "keyword.control.exception.swift" + }, + { + "captures": { + "1": { + "name": "keyword.control.exception.swift" + }, + "2": { + "name": "punctuation.whitespace.trailing.do.swift" + } + }, + "comment": "extra scopes for do-catch snippet", + "match": "(?<!\\.)\\b(do)\\b(\\s*)" + }, + { + "captures": { + "1": { + "name": "keyword.control.async.swift" + }, + "2": { + "name": "storage.modifier.swift" + }, + "3": { + "name": "keyword.other.declaration-specifier.swift" + } + }, + "match": "(?<!\\.)\\b(?:(?:(async)|(nonisolated))\\s+)?(let|var)\\b" + }, + { + "match": "(?<!\\.)\\b(?:associatedtype|operator|typealias)\\b", + "name": "keyword.other.declaration-specifier.swift" + }, + { + "match": "(?<!\\.)\\b(class|enum|extension|precedencegroup|protocol|struct|actor)\\b", + "name": "storage.type.$1.swift" + }, + { + "match": "(?<!\\.)\\b(?:inout|static|final|lazy|mutating|nonmutating|optional|indirect|required|override|dynamic|convenience|infix|prefix|postfix)\\b", + "name": "storage.modifier.swift" + }, + { + "match": "\\binit[?!]|\\binit\\b|(?<!\\.)\\b(?:func|deinit|subscript|didSet|get|set|willSet)\\b", + "name": "storage.type.function.swift" + }, + { + "match": "(?<!\\.)\\b(?:fileprivate|private|internal|public|open)\\b", + "name": "keyword.other.declaration-specifier.accessibility.swift" + }, + { + "comment": "matches weak, unowned, unowned(safe), unowned(unsafe)", + "match": "(?<!\\.)\\bunowned\\((?:safe|unsafe)\\)|(?<!\\.)\\b(?:weak|unowned)\\b", + "name": "keyword.other.capture-specifier.swift" + }, + { + "captures": { + "1": { + "name": "keyword.operator.type.swift" + }, + "2": { + "name": "keyword.operator.type.metatype.swift" + } + }, + "match": "(?<=\\.)(?:(dynamicType|self)|(Protocol|Type))\\b" + }, + { + "match": "(?<!\\.)\\b(?:super|self|Self)\\b", + "name": "variable.language.swift" + }, + { + "match": "\\B(?:#file|#filePath|#fileID|#line|#column|#function|#dsohandle)\\b|\\b(?:__FILE__|__LINE__|__COLUMN__|__FUNCTION__|__DSO_HANDLE__)\\b", + "name": "support.variable.swift" + }, + { + "match": "(?<!\\.)\\bimport\\b", + "name": "keyword.control.import.swift" + } + ] + }, + "literals": { + "patterns": [ + { + "include": "#boolean" + }, + { + "include": "#numeric" + }, + { + "include": "#string" + }, + { + "match": "\\bnil\\b", + "name": "constant.language.nil.swift" + }, + { + "comment": "object \"literals\" used in playgrounds", + "match": "\\B#(colorLiteral|imageLiteral|fileLiteral)\\b", + "name": "support.function.object-literal.swift" + }, + { + "match": "\\B#keyPath\\b", + "name": "support.function.key-path.swift" + }, + { + "begin": "\\B(#selector)(\\()(?:\\s*(getter|setter)\\s*(:))?", + "beginCaptures": { + "1": { + "name": "support.function.selector-reference.swift" + }, + "2": { + "name": "punctuation.definition.arguments.begin.swift" + }, + "3": { + "name": "support.variable.parameter.swift" + }, + "4": { + "name": "punctuation.separator.argument-label.swift" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.end.swift" + } + }, + "patterns": [ + { + "include": "#expressions" + } + ] + } + ], + "repository": { + "boolean": { + "match": "\\b(true|false)\\b", + "name": "constant.language.boolean.swift" + }, + "numeric": { + "patterns": [ + { + "comment": "0.1, -4_2.5, 6.022e23, 10E-5", + "match": "(\\B\\-|\\b)(?<![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)[0-9][0-9_]*(?=\\.[0-9]|[eE])(?:\\.[0-9][0-9_]*)?(?:[eE][-+]?[0-9][0-9_]*)?\\b(?!\\.[0-9])", + "name": "constant.numeric.float.decimal.swift" + }, + { + "comment": "-0x1.ap2_3, 0x31p-4", + "match": "(\\B\\-|\\b)(?<![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)(0x[0-9a-fA-F][0-9a-fA-F_]*)(?:\\.[0-9a-fA-F][0-9a-fA-F_]*)?[pP][-+]?[0-9][0-9_]*\\b(?!\\.[0-9])", + "name": "constant.numeric.float.hexadecimal.swift" + }, + { + "comment": "0x1p, 0x1p_2, 0x1.5pa, 0x1.1p+1f, 0x1pz", + "match": "(\\B\\-|\\b)(?<![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)(0x[0-9a-fA-F][0-9a-fA-F_]*)(?:\\.[0-9a-fA-F][0-9a-fA-F_]*)?(?:[pP][-+]?\\w*)\\b(?!\\.[0-9])", + "name": "invalid.illegal.numeric.float.invalid-exponent.swift" + }, + { + "comment": "0x1.5w (note that 0x1.f may be a valid expression)", + "match": "(\\B\\-|\\b)(?<![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)(0x[0-9a-fA-F][0-9a-fA-F_]*)\\.[0-9][\\w.]*", + "name": "invalid.illegal.numeric.float.missing-exponent.swift" + }, + { + "comment": "-.5, .2f (note that 1.-.5 may be a valid expression)", + "match": "(?<=\\s|^)\\-?\\.[0-9][\\w.]*", + "name": "invalid.illegal.numeric.float.missing-leading-zero.swift" + }, + { + "comment": "0b_0_1, 0x_1p+3q", + "match": "(\\B\\-|\\b)0[box]_[0-9a-fA-F_]*(?:[pPeE][+-]?\\w+)?[\\w.]+", + "name": "invalid.illegal.numeric.leading-underscore.swift" + }, + { + "comment": "tuple positional member: not really a numeric literal, but not invalid", + "match": "(?<=[\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)[0-9]+\\b" + }, + { + "comment": "0b010, 0b1_0", + "match": "(\\B\\-|\\b)(?<![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)0b[01][01_]*\\b(?!\\.[0-9])", + "name": "constant.numeric.integer.binary.swift" + }, + { + "comment": "0o1, 0o7_3", + "match": "(\\B\\-|\\b)(?<![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)0o[0-7][0-7_]*\\b(?!\\.[0-9])", + "name": "constant.numeric.integer.octal.swift" + }, + { + "comment": "02, 3_456", + "match": "(\\B\\-|\\b)(?<![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)[0-9][0-9_]*\\b(?!\\.[0-9])", + "name": "constant.numeric.integer.decimal.swift" + }, + { + "comment": "0x4, 0xF_7", + "match": "(\\B\\-|\\b)(?<![\\[\\](){}\\p{L}_\\p{N}\\p{M}]\\.)0x[0-9a-fA-F][0-9a-fA-F_]*\\b(?!\\.[0-9])", + "name": "constant.numeric.integer.hexadecimal.swift" + }, + { + "match": "(\\B\\-|\\b)[0-9][\\w.]*", + "name": "invalid.illegal.numeric.other.swift" + } + ] + }, + "string": { + "patterns": [ + { + "begin": "\"\"\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.swift" + } + }, + "comment": "SE-0168: Multi-Line String Literals", + "end": "\"\"\"(#*)", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.swift" + }, + "1": { + "name": "invalid.illegal.extra-closing-delimiter.swift" + } + }, + "name": "string.quoted.double.block.swift", + "patterns": [ + { + "match": "\\G.+(?=\"\"\")|\\G.+", + "name": "invalid.illegal.content-after-opening-delimiter.swift" + }, + { + "match": "\\\\\\s*\\n", + "name": "constant.character.escape.newline.swift" + }, + { + "include": "#string-guts" + }, + { + "comment": "Allow \\(\"\"\"...\"\"\") to appear inside a block string", + "match": "\\S((?!\\\\\\().)*(?=\"\"\")", + "name": "invalid.illegal.content-before-closing-delimiter.swift" + } + ] + }, + { + "begin": "#\"\"\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.swift" + } + }, + "end": "\"\"\"#(#*)", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.swift" + }, + "1": { + "name": "invalid.illegal.extra-closing-delimiter.swift" + } + }, + "name": "string.quoted.double.block.raw.swift", + "patterns": [ + { + "match": "\\G.+(?=\"\"\")|\\G.+", + "name": "invalid.illegal.content-after-opening-delimiter.swift" + }, + { + "match": "\\\\#\\s*\\n", + "name": "constant.character.escape.newline.swift" + }, + { + "include": "#raw-string-guts" + }, + { + "comment": "Allow \\(\"\"\"...\"\"\") to appear inside a block string", + "match": "\\S((?!\\\\#\\().)*(?=\"\"\")", + "name": "invalid.illegal.content-before-closing-delimiter.swift" + } + ] + }, + { + "begin": "(##+)\"\"\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.swift" + } + }, + "end": "\"\"\"\\1(#*)", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.swift" + }, + "1": { + "name": "invalid.illegal.extra-closing-delimiter.swift" + } + }, + "name": "string.quoted.double.block.raw.swift", + "patterns": [ + { + "match": "\\G.+(?=\"\"\")|\\G.+", + "name": "invalid.illegal.content-after-opening-delimiter.swift" + } + ] + }, + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.swift" + } + }, + "end": "\"(#*)", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.swift" + }, + "1": { + "name": "invalid.illegal.extra-closing-delimiter.swift" + } + }, + "name": "string.quoted.double.single-line.swift", + "patterns": [ + { + "match": "\\r|\\n", + "name": "invalid.illegal.returns-not-allowed.swift" + }, + { + "include": "#string-guts" + } + ] + }, + { + "begin": "(##+)\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.raw.swift" + } + }, + "comment": "SE-0168: raw string literals (more than one #, grammar limitations prevent us from supporting escapes)", + "end": "\"\\1(#*)", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.raw.swift" + }, + "1": { + "name": "invalid.illegal.extra-closing-delimiter.swift" + } + }, + "name": "string.quoted.double.single-line.raw.swift", + "patterns": [ + { + "match": "\\r|\\n", + "name": "invalid.illegal.returns-not-allowed.swift" + } + ] + }, + { + "begin": "#\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.raw.swift" + } + }, + "comment": "SE-0168: raw string literals (one #, escapes supported)", + "end": "\"#(#*)", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.raw.swift" + }, + "1": { + "name": "invalid.illegal.extra-closing-delimiter.swift" + } + }, + "name": "string.quoted.double.single-line.raw.swift", + "patterns": [ + { + "match": "\\r|\\n", + "name": "invalid.illegal.returns-not-allowed.swift" + }, + { + "include": "#raw-string-guts" + } + ] + } + ], + "repository": { + "raw-string-guts": { + "comment": "the same as #string-guts but with # in escapes", + "patterns": [ + { + "match": "\\\\#[0\\\\tnr\"']", + "name": "constant.character.escape.swift" + }, + { + "match": "\\\\#u\\{[0-9a-fA-F]{1,8}\\}", + "name": "constant.character.escape.unicode.swift" + }, + { + "begin": "\\\\#\\(", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.swift" + } + }, + "contentName": "source.swift", + "end": "(\\))", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.swift" + }, + "1": { + "name": "source.swift" + } + }, + "name": "meta.embedded.line.swift", + "patterns": [ + { + "include": "$self" + }, + { + "begin": "\\(", + "comment": "Nested parens", + "end": "\\)" + } + ] + }, + { + "match": "\\\\#.", + "name": "invalid.illegal.escape-not-recognized" + } + ] + }, + "string-guts": { + "patterns": [ + { + "match": "\\\\[0\\\\tnr\"']", + "name": "constant.character.escape.swift" + }, + { + "match": "\\\\u\\{[0-9a-fA-F]{1,8}\\}", + "name": "constant.character.escape.unicode.swift" + }, + { + "begin": "\\\\\\(", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.swift" + } + }, + "contentName": "source.swift", + "end": "(\\))", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.swift" + }, + "1": { + "name": "source.swift" + } + }, + "name": "meta.embedded.line.swift", + "patterns": [ + { + "include": "$self" + }, + { + "begin": "\\(", + "comment": "Nested parens", + "end": "\\)" + } + ] + }, + { + "match": "\\\\.", + "name": "invalid.illegal.escape-not-recognized" + } + ] + } + } + } + } + }, + "operators": { + "patterns": [ + { + "comment": "Type casting", + "match": "\\b(is\\b|as([!?]\\B|\\b))", + "name": "keyword.operator.type-casting.swift" + }, + { + "begin": "(?x)\n\t\t\t\t\t\t(?=\n\t\t\t\t\t\t\t(?<oph>\t\t\t\t\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t[/=\\-+!*%<>&|^~?]\n\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t | \\.\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\\g<oph>\t\t\t\t\t\t\t# operator-head\n\t\t\t\t\t\t\t | \\.\n\t\t\t\t\t\t\t | [\\x{0300}-\\x{036F}]\t\t\t\t# operator-character\n\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t", + "comment": "This rule helps us speed up the matching.", + "end": "(?!\\G)", + "patterns": [ + { + "captures": { + "0": { + "patterns": [ + { + "match": "\\G(\\+\\+|\\-\\-)$", + "name": "keyword.operator.increment-or-decrement.swift" + }, + { + "match": "\\G(\\+|\\-)$", + "name": "keyword.operator.arithmetic.unary.swift" + }, + { + "match": "\\G!$", + "name": "keyword.operator.logical.not.swift" + }, + { + "match": "\\G~$", + "name": "keyword.operator.bitwise.not.swift" + }, + { + "match": ".+", + "name": "keyword.operator.custom.prefix.swift" + } + ] + } + }, + "comment": "Prefix unary operator", + "match": "(?x)\n\t\t\t\t\t\t\t\t\\G\t\t\t\t\t\t\t\t\t\t# Matching from the beginning ensures\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# that we start with operator-head\n\t\t\t\t\t\t\t\t(?<=^|[\\s(\\[{,;:])\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?!(//|/\\*|\\*/))\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t[/=\\-+!*%<>&|^~?]\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t | [\\x{0300}-\\x{036F}]\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)++\n\t\t\t\t\t\t\t\t(?![\\s)\\]},;:]|\\z)\n\t\t\t\t\t\t\t" + }, + { + "captures": { + "0": { + "patterns": [ + { + "match": "\\G(\\+\\+|\\-\\-)$", + "name": "keyword.operator.increment-or-decrement.swift" + }, + { + "match": "\\G!$", + "name": "keyword.operator.increment-or-decrement.swift" + }, + { + "match": ".+", + "name": "keyword.operator.custom.postfix.swift" + } + ] + } + }, + "comment": "Postfix unary operator", + "match": "(?x)\n\t\t\t\t\t\t\t\t\\G\t\t\t\t\t\t\t\t\t\t# Matching from the beginning ensures\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# that we start with operator-head\n\t\t\t\t\t\t\t\t(?<!^|[\\s(\\[{,;:])\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?!(//|/\\*|\\*/))\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t[/=\\-+!*%<>&|^~?]\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t | [\\x{0300}-\\x{036F}]\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)++\n\t\t\t\t\t\t\t\t(?=[\\s)\\]},;:]|\\z)\n\t\t\t\t\t\t\t" + }, + { + "captures": { + "0": { + "patterns": [ + { + "match": "\\G=$", + "name": "keyword.operator.assignment.swift" + }, + { + "match": "\\G(\\+|\\-|\\*|/|%|<<|>>|&|\\^|\\||&&|\\|\\|)=$", + "name": "keyword.operator.assignment.compound.swift" + }, + { + "match": "\\G(\\+|\\-|\\*|/)$", + "name": "keyword.operator.arithmetic.swift" + }, + { + "match": "\\G&(\\+|\\-|\\*)$", + "name": "keyword.operator.arithmetic.overflow.swift" + }, + { + "match": "\\G%$", + "name": "keyword.operator.arithmetic.remainder.swift" + }, + { + "match": "\\G(==|!=|>|<|>=|<=|~=)$", + "name": "keyword.operator.comparison.swift" + }, + { + "match": "\\G\\?\\?$", + "name": "keyword.operator.coalescing.swift" + }, + { + "match": "\\G(&&|\\|\\|)$", + "name": "keyword.operator.logical.swift" + }, + { + "match": "\\G(&|\\||\\^|<<|>>)$", + "name": "keyword.operator.bitwise.swift" + }, + { + "match": "\\G(===|!==)$", + "name": "keyword.operator.bitwise.swift" + }, + { + "match": "\\G\\?$", + "name": "keyword.operator.ternary.swift" + }, + { + "match": ".+", + "name": "keyword.operator.custom.infix.swift" + } + ] + } + }, + "comment": "Infix operator", + "match": "(?x)\n\t\t\t\t\t\t\t\t\\G\t\t\t\t\t\t\t\t\t\t# Matching from the beginning ensures\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# that we start with operator-head\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?!(//|/\\*|\\*/))\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t[/=\\-+!*%<>&|^~?]\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t | [\\x{0300}-\\x{036F}]\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)++\n\t\t\t\t\t\t\t" + }, + { + "captures": { + "0": { + "patterns": [ + { + "match": ".+", + "name": "keyword.operator.custom.prefix.dot.swift" + } + ] + } + }, + "comment": "Dot prefix unary operator", + "match": "(?x)\n\t\t\t\t\t\t\t\t\\G\t\t\t\t\t\t\t\t\t\t# Matching from the beginning ensures\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# that we start with operator-head\n\t\t\t\t\t\t\t\t(?<=^|[\\s(\\[{,;:])\n\t\t\t\t\t\t\t\t\\.\t\t\t\t\t\t\t\t\t\t# dot\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?!(//|/\\*|\\*/))\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\\.\t\t\t\t\t\t\t\t# dot\n\t\t\t\t\t\t\t\t\t | [/=\\-+!*%<>&|^~?]\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t | [\\x{0300}-\\x{036F}]\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)++\n\t\t\t\t\t\t\t\t(?![\\s)\\]},;:]|\\z)\n\t\t\t\t\t\t\t" + }, + { + "captures": { + "0": { + "patterns": [ + { + "match": ".+", + "name": "keyword.operator.custom.postfix.dot.swift" + } + ] + } + }, + "comment": "Dot postfix unary operator", + "match": "(?x)\n\t\t\t\t\t\t\t\t\\G\t\t\t\t\t\t\t\t\t\t# Matching from the beginning ensures\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# that we start with operator-head\n\t\t\t\t\t\t\t\t(?<!^|[\\s(\\[{,;:])\n\t\t\t\t\t\t\t\t\\.\t\t\t\t\t\t\t\t\t\t# dot\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?!(//|/\\*|\\*/))\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\\.\t\t\t\t\t\t\t\t# dot\n\t\t\t\t\t\t\t\t\t | [/=\\-+!*%<>&|^~?]\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t | [\\x{0300}-\\x{036F}]\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)++\n\t\t\t\t\t\t\t\t(?=[\\s)\\]},;:]|\\z)\n\t\t\t\t\t\t\t" + }, + { + "captures": { + "0": { + "patterns": [ + { + "match": "\\G\\.\\.[.<]$", + "name": "keyword.operator.range.swift" + }, + { + "match": ".+", + "name": "keyword.operator.custom.infix.dot.swift" + } + ] + } + }, + "comment": "Dot infix operator", + "match": "(?x)\n\t\t\t\t\t\t\t\t\\G\t\t\t\t\t\t\t\t\t\t# Matching from the beginning ensures\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# that we start with operator-head\n\t\t\t\t\t\t\t\t\\.\t\t\t\t\t\t\t\t\t\t# dot\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?!(//|/\\*|\\*/))\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\\.\t\t\t\t\t\t\t\t# dot\n\t\t\t\t\t\t\t\t\t | [/=\\-+!*%<>&|^~?]\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t | [\\x{0300}-\\x{036F}]\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)++\n\t\t\t\t\t\t\t" + } + ] + }, + { + "match": ":", + "name": "keyword.operator.ternary.swift" + } + ] + }, + "root": { + "patterns": [ + { + "include": "#compiler-control" + }, + { + "include": "#declarations" + }, + { + "include": "#expressions" + } + ] + } + } +} diff --git a/docs/shiki/languages/system-verilog.tmLanguage.json b/docs/shiki/languages/system-verilog.tmLanguage.json new file mode 100644 index 00000000..7727808b --- /dev/null +++ b/docs/shiki/languages/system-verilog.tmLanguage.json @@ -0,0 +1,1055 @@ +{ + "fileTypes": ["sv", "SV", "v", "V", "svh", "SVH", "vh", "VH"], + "hidden": true, + "name": "system-verilog", + "patterns": [ + { + "begin": "\\s*\\b(function|task)\\b(\\s+automatic)?", + "beginCaptures": { + "1": { + "name": "keyword.control.systemverilog" + }, + "2": { + "name": "keyword.control.systemverilog" + } + }, + "end": ";", + "patterns": [ + { + "match": "\\b([a-zA-Z_][a-zA-Z0-9_]*\\s+)?([a-zA-Z_][a-zA-Z0-9_:]*)\\s*(?=\\(|;)", + "captures": { + "1": { + "name": "storage.type.systemverilog" + }, + "2": { + "name": "entity.name.function.systemverilog" + } + } + }, + { + "include": "#port-dir" + }, + { + "include": "#base-grammar" + } + ], + "name": "meta.function.systemverilog" + }, + { + "match": "\\s*\\b(task)\\s+(automatic)?\\s*(\\w+)\\s*;", + "captures": { + "1": { + "name": "keyword.control.systemverilog" + }, + "2": { + "name": "keyword.control.systemverilog" + }, + "3": { + "name": "entity.name.function.systemverilog" + } + }, + "name": "meta.task.simple.systemverilog" + }, + { + "begin": "\\s*\\b(typedef\\s+(struct|enum|union)\\b)\\s*(packed)?\\s*([a-zA-Z_][a-zA-Z0-9_]*)?", + "beginCaptures": { + "1": { + "name": "keyword.control.systemverilog" + }, + "2": { + "name": "keyword.control.systemverilog" + }, + "3": { + "name": "keyword.control.systemverilog" + }, + "4": { + "name": "storage.type.systemverilog" + } + }, + "end": "(})\\s*([a-zA-Z_][a-zA-Z0-9_]*)\\s*;", + "endCaptures": { + "1": { + "name": "keyword.operator.other.systemverilog" + }, + "2": { + "name": "entity.name.function.systemverilog" + } + }, + "patterns": [ + { + "include": "#struct-anonymous" + }, + { + "include": "#base-grammar" + } + ], + "name": "meta.typedef.struct.systemverilog" + }, + { + "match": "\\s*\\b(typedef\\s+class)\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\s*;", + "captures": { + "1": { + "name": "keyword.control.systemverilog" + }, + "2": { + "name": "entity.name.declaration.systemverilog" + } + }, + "name": "meta.typedef.class.systemverilog" + }, + { + "begin": "\\s*\\b(typedef)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.systemverilog" + } + }, + "end": "([a-zA-Z_][a-zA-Z0-9_]*)\\s*(?=(\\[[a-zA-Z0-9_:\\$\\-\\+]*\\])?;)", + "endCaptures": { + "1": { + "name": "entity.name.function.systemverilog" + } + }, + "patterns": [ + { + "match": "\\b([a-zA-Z_]\\w*)\\s*(#)\\(", + "captures": { + "1": { + "name": "storage.type.userdefined.systemverilog" + }, + "2": { + "name": "keyword.operator.param.systemverilog" + } + }, + "name": "meta.typedef.class.systemverilog" + }, + { + "include": "#base-grammar" + }, + { + "include": "#module-binding" + } + ], + "name": "meta.typedef.simple.systemverilog" + }, + { + "begin": "\\s*(module)\\s+\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.systemverilog" + }, + "2": { + "name": "entity.name.type.module.systemverilog" + } + }, + "end": ";", + "endCaptures": { + "1": { + "name": "entity.name.function.systemverilog" + } + }, + "patterns": [ + { + "include": "#port-dir" + }, + { + "match": "\\s*(parameter)", + "name": "keyword.other.systemverilog" + }, + { + "include": "#base-grammar" + }, + { + "include": "#ifmodport" + }, + { + "match": "\\$\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b", + "name": "support.function.systemverilog" + } + ], + "name": "meta.module.systemverilog" + }, + { + "captures": { + "1": { + "name": "keyword.control.systemverilog" + }, + "2": { + "name": "entity.name.function.systemverilog" + } + }, + "match": "\\b(sequence)\\s+([a-zA-Z_][a-zA-Z0-9_]*)", + "name": "meta.sequence.systemverilog" + }, + { + "match": "\\b(bind)\\s+([a-zA-Z_][a-zA-Z0-9_\\.]*)\\b", + "captures": { + "1": { + "name": "keyword.control.systemverilog" + } + } + }, + { + "captures": { + "0": { + "name": "meta.section.begin.systemverilog" + }, + "1": { + "name": "keyword.other.block.systemverilog" + }, + "3": { + "name": "keyword.operator.systemverilog" + }, + "4": { + "name": "entity.name.section.systemverilog" + } + }, + "match": "\\s*(begin|fork)\\s*((:)\\s*([a-zA-Z_][a-zA-Z0-9_]*))\\b", + "name": "meta.definition.systemverilog" + }, + { + "match": "\\b(asset|cover)\\s(property)\\s+(\\w+)", + "captures": { + "1": { + "name": "keyword.sva.systemverilog" + }, + "2": { + "name": "entity.name.sva.systemverilog" + } + } + }, + { + "match": "\\b(\\w+)\\s*(:)\\s*(assert)\\b", + "captures": { + "1": { + "name": "entity.name.sva.systemverilog" + }, + "2": { + "name": "keyword.operator.systemverilog" + }, + "3": { + "name": "keyword.sva.systemverilog" + } + } + }, + { + "begin": "\\s*(//)\\s*(psl)\\s+((\\w+)\\s*(:))?\\s*(default|assert|assume)", + "beginCaptures": { + "0": { + "name": "meta.psl.systemverilog" + }, + "1": { + "name": "comment.line.double-slash.systemverilog" + }, + "2": { + "name": "keyword.psl.systemverilog" + }, + "4": { + "name": "entity.psl.name.systemverilog" + }, + "5": { + "name": "keyword.operator.systemverilog" + }, + "6": { + "name": "keyword.psl.systemverilog" + } + }, + "end": ";", + "patterns": [ + { + "match": "\\b(never|always|default|clock|within|rose|fell|stable|until|before|next|eventually|abort|posedge)\\b", + "name": "keyword.psl.systemverilog" + }, + { + "include": "#operators" + }, + { + "include": "#functions" + }, + { + "include": "#constants" + } + ], + "name": "meta.psl.systemverilog" + }, + { + "begin": "\\s*(/\\*)\\s*(psl)", + "beginCaptures": { + "0": { + "name": "meta.psl.systemverilog" + }, + "1": { + "name": "comment.block.systemverilog" + }, + "2": { + "name": "keyword.psl.systemverilog" + } + }, + "end": "(\\*/)", + "endCaptures": { + "1": { + "name": "comment.block.systemverilog" + } + }, + "patterns": [ + { + "match": "^\\s*((\\w+)\\s*(:))?\\s*(default|assert|assume)", + "captures": { + "0": { + "name": "meta.psl.systemverilog" + }, + "2": { + "name": "entity.psl.name.systemverilog" + }, + "3": { + "name": "keyword.operator.systemverilog" + }, + "4": { + "name": "keyword.psl.systemverilog" + } + } + }, + { + "match": "\\b(asset|cover)\\s+(property)\\s+(\\w+)", + "captures": { + "1": { + "name": "keyword.psl.systemverilog" + }, + "2": { + "name": "entity.psl.name.systemverilog" + } + } + }, + { + "match": "\\b(never|always|default|clock|within|rose|fell|stable|until|before|next|eventually|abort|posedge|negedge)\\b", + "name": "keyword.psl.systemverilog" + }, + { + "include": "#operators" + }, + { + "include": "#functions" + }, + { + "include": "#constants" + } + ], + "name": "meta.psl.systemverilog" + }, + { + "match": "\\s*\\b(automatic|cell|config|deassign|defparam|design|disable|edge|endconfig|endgenerate|endspecify|endtable|event|generate|genvar|ifnone|incdir|instance|liblist|library|macromodule|negedge|noshowcancelled|posedge|pulsestyle_onevent|pulsestyle_ondetect|scalared|showcancelled|specify|specparam|table|use|vectored)\\b", + "captures": { + "1": { + "name": "keyword.other.systemverilog" + } + } + }, + { + "match": "\\s*\\b(initial|always|wait|force|release|assign|always_comb|always_ff|always_latch|forever|repeat|while|for|if|iff|else|case|casex|casez|default|endcase|return|break|continue|do|foreach|with|inside|dist|clocking|cover|coverpoint|property|bins|binsof|illegal_bins|ignore_bins|randcase|modport|matches|solve|static|assert|assume|before|expect|cross|ref|first_match|srandom|struct|packed|final|chandle|alias|tagged|extern|throughout|timeprecision|timeunit|priority|type|union|uwire|wait_order|triggered|randsequence|import|export|context|pure|intersect|wildcard|within|new|typedef|enum|this|super|begin|fork|forkjoin|unique|unique0|priority)\\b", + "captures": { + "1": { + "name": "keyword.control.systemverilog" + } + } + }, + { + "match": "\\s*\\b(end|endtask|endmodule|endfunction|endprimitive|endclass|endpackage|endsequence|endprogram|endclocking|endproperty|endgroup|endinterface|join|join_any|join_none)\\b(\\s*(:)\\s*(\\w+))?", + "captures": { + "1": { + "name": "keyword.control.systemverilog" + }, + "3": { + "name": "keyword.operator.systemverilog" + }, + "4": { + "name": "entity.label.systemverilog" + } + }, + "name": "meta.object.end.systemverilog" + }, + { + "match": "\\b(std)\\b::", + "name": "support.class.systemverilog" + }, + { + "captures": { + "1": { + "name": "constant.other.define.systemverilog" + }, + "2": { + "name": "entity.name.type.define.systemverilog" + } + }, + "match": "^\\s*(`define)\\s+([a-zA-Z_][a-zA-Z0-9_]*)", + "name": "meta.define.systemverilog" + }, + { + "captures": { + "1": { + "name": "constant.other.undef.systemverilog" + }, + "2": { + "name": "entity.name.type.undef.systemverilog" + } + }, + "match": "^\\s*(`undef)\\s+([a-zA-Z_][a-zA-Z0-9_]*)", + "name": "meta.undef.systemverilog" + }, + { + "include": "#comments" + }, + { + "captures": { + "1": { + "name": "keyword.control.systemverilog" + }, + "2": { + "name": "entity.name.type.class.systemverilog" + } + }, + "match": "\\s*(primitive|package|constraint|interface|covergroup|program)\\s+\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b", + "name": "meta.definition.systemverilog" + }, + { + "captures": { + "2": { + "name": "entity.name.type.class.systemverilog" + }, + "3": { + "name": "keyword.operator.other.systemverilog" + }, + "4": { + "name": "keyword.control.systemverilog" + } + }, + "match": "(([a-zA-Z_][a-zA-Z0-9_]*)\\s*(:))?\\s*(coverpoint|cross)\\s+([a-zA-Z_][a-zA-Z0-9_]*)", + "name": "meta.definition.systemverilog" + }, + { + "captures": { + "1": { + "name": "keyword.control.systemverilog" + }, + "2": { + "name": "keyword.control.systemverilog" + }, + "3": { + "name": "entity.name.type.class.systemverilog" + } + }, + "match": "\\b(virtual\\s+)?(class)\\s+\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b", + "name": "meta.definition.class.systemverilog" + }, + { + "captures": { + "1": { + "name": "keyword.control.systemverilog" + }, + "2": { + "name": "entity.other.inherited-class.systemverilog" + } + }, + "match": "\\b(extends)\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\b", + "name": "meta.definition.systemverilog" + }, + { + "include": "#all-types" + }, + { + "include": "#operators" + }, + { + "include": "#port-dir" + }, + { + "match": "\\b(and|nand|nor|or|xor|xnor|buf|not|bufif[01]|notif[01]|r?[npc]mos|tran|r?tranif[01]|pullup|pulldown)\\b", + "name": "support.type.systemverilog" + }, + { + "include": "#strings" + }, + { + "match": "\\$\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b", + "name": "support.function.systemverilog" + }, + { + "match": "\\b([a-zA-Z_][a-zA-Z0-9_]*)(')(?=\\()", + "name": "meta.cast.systemverilog", + "captures": { + "1": { + "name": "storage.type.systemverilog" + }, + "2": { + "name": "keyword.operator.cast.systemverilog" + } + } + }, + { + "match": "^\\s*(localparam|parameter)\\s+([A-Z_][A-Z0-9_]*)\\b\\s*(?=(=))", + "name": "meta.param.systemverilog", + "captures": { + "1": { + "name": "keyword.other.systemverilog" + }, + "2": { + "name": "constant.other.systemverilog" + } + } + }, + { + "match": "^\\s*(localparam|parameter)\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\b\\s*(?=(=))", + "name": "meta.param.systemverilog", + "captures": { + "1": { + "name": "keyword.other.systemverilog" + } + } + }, + { + "match": "^\\s*(local\\s+|protected\\s+|localparam\\s+|parameter\\s+)?(const\\s+|virtual\\s+)?(rand\\s+|randc\\s+)?(([a-zA-Z_][a-zA-Z0-9_]*)(::))?([a-zA-Z_][a-zA-Z0-9_]*)\\b\\s*(?=(#\\s*\\([\\w,]+\\)\\s*)?([a-zA-Z][a-zA-Z0-9_\\s\\[\\]']*)(;|,|=|'\\{))", + "name": "meta.userdefined.systemverilog", + "captures": { + "1": { + "name": "keyword.other.systemverilog" + }, + "2": { + "name": "keyword.other.systemverilog" + }, + "3": { + "name": "storage.type.rand.systemverilog" + }, + "5": { + "name": "support.type.scope.systemverilog" + }, + "6": { + "name": "keyword.operator.scope.systemverilog" + }, + "7": { + "name": "storage.type.userdefined.systemverilog" + } + } + }, + { + "match": "\\s*\\b(option)\\.", + "captures": { + "1": { + "name": "keyword.cover.systemverilog" + } + } + }, + { + "match": "\\s*\\b(local|const|protected|virtual|localparam|parameter)\\b", + "captures": { + "1": { + "name": "keyword.other.systemverilog" + } + } + }, + { + "match": "\\s*\\b(rand|randc)\\b", + "name": "storage.type.rand.systemverilog" + }, + { + "begin": "^(\\s*(bind)\\s+([a-zA-Z_][\\w\\.]*))?\\s*([a-zA-Z_][a-zA-Z0-9_]*)\\s*(?=#[^#])", + "beginCaptures": { + "2": { + "name": "keyword.control.systemverilog" + }, + "4": { + "name": "storage.module.systemverilog" + } + }, + "end": "(?=;|=|:)", + "patterns": [ + { + "include": "#module-binding" + }, + { + "include": "#module-param" + }, + { + "include": "#comments" + }, + { + "include": "#operators" + }, + { + "include": "#constants" + }, + { + "include": "#strings" + }, + { + "match": "\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b(?=\\s*(\\(|$))", + "name": "entity.name.type.module.systemverilog" + } + ], + "name": "meta.module.inst.param.systemverilog" + }, + { + "begin": "\\b([a-zA-Z_][a-zA-Z0-9_]*)\\s+(?!intersect|and|or|throughout|within)([a-zA-Z_][a-zA-Z0-9_]*)\\s*(\\[(\\d+)(\\:(\\d+))?\\])?\\s*(\\(|$)", + "beginCaptures": { + "1": { + "name": "storage.module.systemverilog" + }, + "2": { + "name": "entity.name.type.module.systemverilog" + }, + "4": { + "name": "constant.numeric.systemverilog" + }, + "6": { + "name": "constant.numeric.systemverilog" + } + }, + "end": ";", + "patterns": [ + { + "include": "#module-binding" + }, + { + "include": "#comments" + }, + { + "include": "#strings" + }, + { + "include": "#operators" + }, + { + "include": "#constants" + } + ], + "name": "meta.module.inst.systemverilog" + }, + { + "name": "meta.struct.assign.systemverilog", + "begin": "\\b\\s+(<?=)\\s*(\\'{)", + "beginCaptures": { + "1": { + "name": "keyword.operator.other.systemverilog" + }, + "2": { + "name": "keyword.operator.other.systemverilog" + }, + "3": { + "name": "keyword.operator.other.systemverilog" + } + }, + "end": ";", + "patterns": [ + { + "match": "\\b(\\w+)\\s*(:)(?!:)", + "captures": { + "1": { + "name": "support.function.field.systemverilog" + }, + "2": { + "name": "keyword.operator.other.systemverilog" + } + } + }, + { + "include": "#comments" + }, + { + "include": "#strings" + }, + { + "include": "#operators" + }, + { + "include": "#constants" + }, + { + "include": "#storage-scope-systemverilog" + } + ] + }, + { + "include": "#storage-scope-systemverilog" + }, + { + "include": "#functions" + }, + { + "include": "#constants" + } + ], + "repository": { + "functions": { + "match": "\\b(\\w+)(?=\\s*\\()", + "name": "support.function.generic.systemverilog" + }, + "all-types": { + "patterns": [ + { + "include": "#storage-type-systemverilog" + }, + { + "include": "#storage-modifier-systemverilog" + } + ] + }, + "constants": { + "patterns": [ + { + "match": "(\\b\\d+)?'(s?[bB]\\s*[0-1xXzZ?][0-1_xXzZ?]*|s?[oO]\\s*[0-7xXzZ?][0-7_xXzZ?]*|s?[dD]\\s*[0-9xXzZ?][0-9_xXzZ?]*|s?[hH]\\s*[0-9a-fA-FxXzZ?][0-9a-fA-F_xXzZ?]*)((e|E)(\\+|-)?[0-9]+)?(?!'|\\w)", + "name": "constant.numeric.systemverilog" + }, + { + "match": "'[01xXzZ]", + "name": "constant.numeric.bit.systemverilog" + }, + { + "match": "\\b((\\d[\\d_]*)(e|E)(\\+|-)?[0-9]+)\\b", + "name": "constant.numeric.exp.systemverilog" + }, + { + "match": "\\b(\\d[\\d_]*)\\b", + "name": "constant.numeric.decimal.systemverilog" + }, + { + "match": "\\b(\\d+(fs|ps|ns|us|ms|s)?)\\b", + "name": "constant.numeric.time.systemverilog" + }, + { + "match": "\\b([A-Z][A-Z0-9_]*)\\b", + "name": "constant.other.net.systemverilog" + }, + { + "match": "(`ifdef|`ifndef|`default_nettype)\\s+(\\w+)", + "captures": { + "1": { + "name": "constant.other.preprocessor.systemverilog" + }, + "2": { + "name": "support.variable.systemverilog" + } + } + }, + { + "match": "`(celldefine|else|elsif|endcelldefine|endif|include|line|nounconnected_drive|resetall|timescale|unconnected_drive|undef|begin_\\w+|end_\\w+|remove_\\w+|restore_\\w+)\\b", + "name": "constant.other.preprocessor.systemverilog" + }, + { + "match": "`\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b", + "name": "constant.other.define.systemverilog" + }, + { + "match": "\\b(null)\\b", + "name": "support.constant.systemverilog" + } + ] + }, + "operators": { + "patterns": [ + { + "match": "(=|==|===|!=|!==|<=|>=|<|>)", + "name": "keyword.operator.comparison.systemverilog" + }, + { + "match": "(\\-|\\+|\\*|\\/|%)", + "name": "keyword.operator.arithmetic.systemverilog" + }, + { + "match": "(!|&&|\\|\\||\\bor\\b)", + "name": "keyword.operator.logical.systemverilog" + }, + { + "match": "(&|\\||\\^|~|{|'{|}|<<|>>|\\?|:)", + "name": "keyword.operator.bitwise.systemverilog" + }, + { + "match": "(#|@)", + "name": "keyword.operator.other.systemverilog" + } + ] + }, + "comments": { + "patterns": [ + { + "begin": "/\\*", + "captures": { + "0": { + "name": "punctuation.definition.comment.systemverilog" + } + }, + "end": "\\*/", + "name": "comment.block.systemverilog" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.comment.systemverilog" + } + }, + "match": "(//).*$\\n?", + "name": "comment.line.double-slash.systemverilog" + } + ] + }, + "port-dir": { + "patterns": [ + { + "match": "\\s*\\b(output|input|inout|ref)\\s+(([a-zA-Z_][a-zA-Z0-9_]*)(::))?([a-zA-Z_][a-zA-Z0-9_]*)?\\s+(?=\\[[a-zA-Z0-9_\\-\\+]*:[a-zA-Z0-9_\\-\\+]*\\]\\s+[a-zA-Z_][a-zA-Z0-9_\\s]*)", + "captures": { + "1": { + "name": "support.type.systemverilog" + }, + "3": { + "name": "support.type.scope.systemverilog" + }, + "4": { + "name": "keyword.operator.scope.systemverilog" + }, + "5": { + "name": "storage.type.interface.systemverilog" + } + } + }, + { + "match": "\\s*\\b(output|input|inout|ref)\\s+(([a-zA-Z_][a-zA-Z0-9_]*)(::))?([a-zA-Z_][a-zA-Z0-9_]*)?\\s+(?=[a-zA-Z_][a-zA-Z0-9_\\s]*)", + "captures": { + "1": { + "name": "support.type.systemverilog" + }, + "3": { + "name": "support.type.scope.systemverilog" + }, + "4": { + "name": "keyword.operator.scope.systemverilog" + }, + "5": { + "name": "storage.type.interface.systemverilog" + } + } + }, + { + "match": "\\s*\\b(output|input|inout|ref)\\b", + "name": "support.type.systemverilog" + } + ] + }, + "base-grammar": { + "patterns": [ + { + "include": "#all-types" + }, + { + "include": "#comments" + }, + { + "include": "#operators" + }, + { + "include": "#constants" + }, + { + "include": "#strings" + }, + { + "match": "^\\s*([a-zA-Z_][a-zA-Z0-9_]*)\\s+[a-zA-Z_][a-zA-Z0-9_,=\\s]*", + "captures": { + "1": { + "name": "storage.type.interface.systemverilog" + } + } + }, + { + "include": "#storage-scope-systemverilog" + } + ] + }, + "storage-type-systemverilog": { + "patterns": [ + { + "match": "\\s*\\b(var|wire|tri|tri[01]|supply[01]|wand|triand|wor|trior|trireg|reg|integer|int|longint|shortint|logic|bit|byte|shortreal|string|time|realtime|real|process|void)\\b", + "name": "storage.type.systemverilog" + }, + { + "match": "\\s*\\b(uvm_transaction|uvm_component|uvm_monitor|uvm_driver|uvm_test|uvm_env|uvm_object|uvm_agent|uvm_sequence_base|uvm_sequence|uvm_sequence_item|uvm_sequence_state|uvm_sequencer|uvm_sequencer_base|uvm_component_registry|uvm_analysis_imp|uvm_analysis_port|uvm_analysis_export|uvm_config_db|uvm_active_passive_enum|uvm_phase|uvm_verbosity|uvm_tlm_analysis_fifo|uvm_tlm_fifo|uvm_report_server|uvm_objection|uvm_recorder|uvm_domain|uvm_reg_field|uvm_reg|uvm_reg_block|uvm_bitstream_t|uvm_radix_enum|uvm_printer|uvm_packer|uvm_comparer|uvm_scope_stack)\\b", + "name": "storage.type.uvm.systemverilog" + } + ] + }, + "storage-scope-systemverilog": { + "match": "\\b([a-zA-Z_][a-zA-Z0-9_]*)(::)", + "captures": { + "1": { + "name": "support.type.systemverilog" + }, + "2": { + "name": "keyword.operator.scope.systemverilog" + } + }, + "name": "meta.scope.systemverilog" + }, + "storage-modifier-systemverilog": { + "match": "\\b(signed|unsigned|small|medium|large|supply[01]|strong[01]|pull[01]|weak[01]|highz[01])\\b", + "name": "storage.modifier.systemverilog" + }, + "ifmodport": { + "match": "\\b([a-zA-Z_][a-zA-Z0-9_]*)\\.([a-zA-Z_][a-zA-Z0-9_]*)\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\b", + "captures": { + "1": { + "name": "storage.type.interface.systemverilog" + }, + "2": { + "name": "support.modport.systemverilog" + } + } + }, + "strings": { + "patterns": [ + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.systemverilog" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.systemverilog" + } + }, + "name": "string.quoted.double.systemverilog", + "patterns": [ + { + "match": "\\\\.", + "name": "constant.character.escape.systemverilog" + }, + { + "match": "(?x)%\n (\\d+\\$)? # field (argument #)\n [#0\\- +']* # flags\n [,;:_]? # separator character (AltiVec)\n ((-?\\d+)|\\*(-?\\d+\\$)?)? # minimum field width\n (\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)? # precision\n (hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n [bdiouxXhHDOUeEfFgGaACcSspnmt%] # conversion type\n ", + "name": "constant.other.placeholder.systemverilog" + }, + { + "match": "%", + "name": "invalid.illegal.placeholder.systemverilog" + } + ] + } + ] + }, + "module-binding": { + "begin": "\\.([a-zA-Z_][a-zA-Z0-9_]*)\\s*\\(", + "beginCaptures": { + "1": { + "name": "support.function.port.systemverilog" + } + }, + "end": "\\)", + "patterns": [ + { + "include": "#constants" + }, + { + "include": "#comments" + }, + { + "include": "#operators" + }, + { + "include": "#strings" + }, + { + "include": "#constants" + }, + { + "match": "\\b([a-zA-Z_]\\w*)(::)", + "captures": { + "1": { + "name": "support.type.scope.systemverilog" + }, + "2": { + "name": "keyword.operator.scope.systemverilog" + } + } + }, + { + "match": "\\b([a-zA-Z_]\\w*)(')", + "captures": { + "1": { + "name": "storage.type.interface.systemverilog" + }, + "2": { + "name": "keyword.operator.cast.systemverilog" + } + } + }, + { + "match": "\\$\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b", + "name": "support.function.systemverilog" + }, + { + "match": "\\b(virtual)\\b", + "name": "keyword.control.systemverilog" + } + ], + "match": "\\.([a-zA-Z_][a-zA-Z0-9_]*)\\s*", + "captures": { + "1": { + "name": "support.function.port.implicit.systemverilog" + } + } + }, + "module-param": { + "name": "meta.module-param.systemverilog", + "begin": "(#)\\s*\\(", + "beginCaptures": { + "1": { + "name": "keyword.operator.param.systemverilog" + } + }, + "end": "\\)", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#constants" + }, + { + "include": "#operators" + }, + { + "include": "#strings" + }, + { + "include": "#module-binding" + }, + { + "match": "\\b(virtual)\\b", + "name": "keyword.control.systemverilog" + } + ] + }, + "struct-anonymous": { + "begin": "\\s*\\b(struct|union)\\s*(packed)?\\s*", + "beginCaptures": { + "1": { + "name": "keyword.control.systemverilog" + }, + "2": { + "name": "keyword.control.systemverilog" + } + }, + "end": "(})\\s*([a-zA-Z_]\\w*)\\s*;", + "endCaptures": { + "1": { + "name": "keyword.operator.other.systemverilog" + } + }, + "patterns": [ + { + "include": "#base-grammar" + } + ], + "name": "meta.struct.anonymous.systemverilog" + } + }, + "scopeName": "source.systemverilog", + "uuid": "789be04c-8b74-352e-8f37-63d336001277" +} diff --git a/docs/shiki/languages/tasl.tmLanguage.json b/docs/shiki/languages/tasl.tmLanguage.json new file mode 100644 index 00000000..6ca4a891 --- /dev/null +++ b/docs/shiki/languages/tasl.tmLanguage.json @@ -0,0 +1,290 @@ +{ + "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", + "scopeName": "source.tasl", + "name": "tasl", + "fileTypes": ["tasl"], + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#namespace" + }, + { + "include": "#type" + }, + { + "include": "#class" + }, + { + "include": "#edge" + } + ], + "repository": { + "comment": { + "match": "(#).*$", + "name": "comment.line.number-sign.tasl", + "captures": { + "1": { + "name": "punctuation.definition.comment.tasl" + } + } + }, + "namespace": { + "match": "(?:^\\s*)(namespace)\\b(.*)", + "captures": { + "1": { + "name": "keyword.control.tasl.namespace" + }, + "2": { + "patterns": [ + { + "include": "#namespaceURI" + }, + { + "match": "[a-zA-Z][a-zA-Z0-9]*\\b", + "name": "entity.name" + } + ] + } + } + }, + "type": { + "begin": "(?:^\\s*)(type)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.tasl.type" + } + }, + "end": "$", + "patterns": [ + { + "include": "#expression" + } + ] + }, + "class": { + "begin": "(?:^\\s*)(class)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.tasl.class" + } + }, + "end": "$", + "patterns": [ + { + "include": "#key" + }, + { + "include": "#export" + }, + { + "include": "#expression" + } + ] + }, + "edge": { + "begin": "(?:^\\s*)(edge)\\b", + "beginCaptures": { + "1": { + "name": "keyword.control.tasl.edge" + } + }, + "end": "$", + "patterns": [ + { + "include": "#key" + }, + { + "include": "#export" + }, + { + "match": "=/", + "name": "punctuation.separator.tasl.edge.source" + }, + { + "match": "/=>", + "name": "punctuation.separator.tasl.edge.target" + }, + { + "match": "=>", + "name": "punctuation.separator.tasl.edge" + }, + { + "include": "#expression" + } + ] + }, + "export": { + "match": "::", + "name": "keyword.operator.tasl.export" + }, + "expression": { + "patterns": [ + { + "include": "#literal" + }, + { + "include": "#uri" + }, + { + "include": "#product" + }, + { + "include": "#coproduct" + }, + { + "include": "#reference" + }, + { + "include": "#optional" + }, + { + "include": "#identifier" + } + ] + }, + "literal": { + "patterns": [ + { + "include": "#datatype" + } + ] + }, + "uri": { + "match": "<>", + "name": "variable.other.constant" + }, + "product": { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.block.tasl.product" + } + }, + "end": "}", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.tasl.product" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#term" + }, + { + "include": "#component" + } + ] + }, + "component": { + "begin": "->", + "end": "$", + "beginCaptures": { + "0": { + "name": "punctuation.separator.tasl.component" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + "coproduct": { + "begin": "\\[", + "beginCaptures": { + "0": { + "name": "punctuation.definition.block.tasl.coproduct" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.tasl.coproduct" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#term" + }, + { + "include": "#option" + } + ] + }, + "option": { + "begin": "<-", + "end": "$", + "beginCaptures": { + "0": { + "name": "punctuation.separator.tasl.option" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + "reference": { + "match": "(\\*)\\s*(.*)", + "captures": { + "1": { + "name": "markup.bold keyword.operator" + }, + "2": { + "patterns": [ + { + "include": "#key" + } + ] + } + } + }, + "identifier": { + "match": "([a-zA-Z][a-zA-Z0-9]*)\\b", + "captures": { + "1": { + "name": "variable" + } + } + }, + "optional": { + "begin": "\\?", + "beginCaptures": { + "0": { + "name": "keyword.operator" + } + }, + "end": "$", + "patterns": [ + { + "include": "#expression" + } + ] + }, + "namespaceURI": { + "match": "[a-z]+:[a-zA-Z0-9-._~:\\/?#\\[\\]@!$&'()*+,;%=]+", + "name": "markup.underline.link" + }, + "key": { + "match": "[a-zA-Z][a-zA-Z0-9]*:(?:[A-Za-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9A-Fa-f]{2})+", + "name": "markup.bold entity.name.class" + }, + "datatype": { + "match": "[a-zA-Z][a-zA-Z0-9]*:(?:[A-Za-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9A-Fa-f]{2})+", + "name": "string.regexp" + }, + "term": { + "match": "[a-zA-Z][a-zA-Z0-9]*:(?:[A-Za-z0-9\\-._~!$&'()*+,;=:@/?]|%[0-9A-Fa-f]{2})+", + "name": "entity.other.tasl.key" + } + } +} diff --git a/docs/shiki/languages/tcl.tmLanguage.json b/docs/shiki/languages/tcl.tmLanguage.json new file mode 100644 index 00000000..6203b364 --- /dev/null +++ b/docs/shiki/languages/tcl.tmLanguage.json @@ -0,0 +1,290 @@ +{ + "fileTypes": ["tcl"], + "foldingStartMarker": "\\{\\s*$", + "foldingStopMarker": "^\\s*\\}", + "keyEquivalent": "^~T", + "name": "tcl", + "patterns": [ + { + "begin": "(?<=^|;)\\s*((#))", + "beginCaptures": { + "1": { + "name": "comment.line.number-sign.tcl" + }, + "2": { + "name": "punctuation.definition.comment.tcl" + } + }, + "contentName": "comment.line.number-sign.tcl", + "end": "\\n", + "patterns": [ + { + "match": "(\\\\\\\\|\\\\\\n)" + } + ] + }, + { + "captures": { + "1": { + "name": "keyword.control.tcl" + } + }, + "match": "(?<=^|[\\[{;])\\s*(if|while|for|catch|default|return|break|continue|switch|exit|foreach|try|throw)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.control.tcl" + } + }, + "match": "(?<=^|})\\s*(then|elseif|else)\\b" + }, + { + "captures": { + "1": { + "name": "keyword.other.tcl" + }, + "2": { + "name": "entity.name.function.tcl" + } + }, + "match": "(?<=^|{)\\s*(proc)\\s+([^\\s]+)" + }, + { + "captures": { + "1": { + "name": "keyword.other.tcl" + } + }, + "match": "(?<=^|[\\[{;])\\s*(after|append|array|auto_execok|auto_import|auto_load|auto_mkindex|auto_mkindex_old|auto_qualify|auto_reset|bgerror|binary|cd|clock|close|concat|dde|encoding|eof|error|eval|exec|expr|fblocked|fconfigure|fcopy|file|fileevent|filename|flush|format|gets|glob|global|history|http|incr|info|interp|join|lappend|library|lindex|linsert|list|llength|load|lrange|lreplace|lsearch|lset|lsort|memory|msgcat|namespace|open|package|parray|pid|pkg::create|pkg_mkIndex|proc|puts|pwd|re_syntax|read|registry|rename|resource|scan|seek|set|socket|SafeBase|source|split|string|subst|Tcl|tcl_endOfWord|tcl_findLibrary|tcl_startOfNextWord|tcl_startOfPreviousWord|tcl_wordBreakAfter|tcl_wordBreakBefore|tcltest|tclvars|tell|time|trace|unknown|unset|update|uplevel|upvar|variable|vwait)\\b" + }, + { + "begin": "(?<=^|[\\[{;])\\s*(regexp|regsub)\\b\\s*", + "beginCaptures": { + "1": { + "name": "keyword.other.tcl" + } + }, + "comment": "special-case regexp/regsub keyword in order to handle the expression", + "end": "[\\n;\\]]", + "patterns": [ + { + "match": "\\\\(?:.|\\n)", + "name": "constant.character.escape.tcl" + }, + { + "comment": "switch for regexp", + "match": "-\\w+\\s*" + }, + { + "applyEndPatternLast": 1, + "begin": "--\\s*", + "comment": "end of switches", + "end": "", + "patterns": [ + { + "include": "#regexp" + } + ] + }, + { + "include": "#regexp" + } + ] + }, + { + "include": "#escape" + }, + { + "include": "#variable" + }, + { + "include": "#operator" + }, + { + "include": "#numeric" + }, + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.tcl" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.tcl" + } + }, + "name": "string.quoted.double.tcl", + "patterns": [ + { + "include": "#escape" + }, + { + "include": "#variable" + }, + { + "include": "#embedded" + } + ] + } + ], + "repository": { + "bare-string": { + "begin": "(?:^|(?<=\\s))\"", + "comment": "matches a single quote-enclosed word without scoping", + "end": "\"([^\\s\\]]*)", + "endCaptures": { + "1": { + "name": "invalid.illegal.tcl" + } + }, + "patterns": [ + { + "include": "#escape" + }, + { + "include": "#variable" + } + ] + }, + "braces": { + "begin": "(?:^|(?<=\\s))\\{", + "comment": "matches a single brace-enclosed word", + "end": "\\}([^\\s\\]]*)", + "endCaptures": { + "1": { + "name": "invalid.illegal.tcl" + } + }, + "patterns": [ + { + "match": "\\\\[{}\\n]", + "name": "constant.character.escape.tcl" + }, + { + "include": "#inner-braces" + } + ] + }, + "embedded": { + "begin": "\\[", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.tcl" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.tcl" + } + }, + "name": "source.tcl.embedded", + "patterns": [ + { + "include": "source.tcl" + } + ] + }, + "escape": { + "match": "\\\\(\\d{1,3}|x[a-fA-F0-9]+|u[a-fA-F0-9]{1,4}|.|\\n)", + "name": "constant.character.escape.tcl" + }, + "inner-braces": { + "begin": "\\{", + "comment": "matches a nested brace in a brace-enclosed word", + "end": "\\}", + "patterns": [ + { + "match": "\\\\[{}\\n]", + "name": "constant.character.escape.tcl" + }, + { + "include": "#inner-braces" + } + ] + }, + "regexp": { + "begin": "(?=\\S)(?![\\n;\\]])", + "comment": "matches a single word, named as a regexp, then swallows the rest of the command", + "end": "(?=[\\n;\\]])", + "patterns": [ + { + "begin": "(?=[^ \\t\\n;])", + "end": "(?=[ \\t\\n;])", + "name": "string.regexp.tcl", + "patterns": [ + { + "include": "#braces" + }, + { + "include": "#bare-string" + }, + { + "include": "#escape" + }, + { + "include": "#variable" + } + ] + }, + { + "begin": "[ \\t]", + "comment": "swallow the rest of the command", + "end": "(?=[\\n;\\]])", + "patterns": [ + { + "include": "#variable" + }, + { + "include": "#embedded" + }, + { + "include": "#escape" + }, + { + "include": "#braces" + }, + { + "include": "#string" + } + ] + } + ] + }, + "string": { + "applyEndPatternLast": 1, + "begin": "(?:^|(?<=\\s))(?=\")", + "comment": "matches a single quote-enclosed word with scoping", + "end": "", + "name": "string.quoted.double.tcl", + "patterns": [ + { + "include": "#bare-string" + } + ] + }, + "variable": { + "captures": { + "1": { + "name": "punctuation.definition.variable.tcl" + } + }, + "match": "(\\$)((?:[a-zA-Z0-9_]|::)+(\\([^\\)]+\\))?|\\{[^\\}]*\\})", + "name": "support.function.tcl" + }, + "numeric": { + "match": "(?<![a-zA-Z])([+-]?([0-9]*[.])?[0-9]+f?)(?![\\.a-zA-Z])", + "name": "constant.numeric.tcl" + }, + "operator": { + "match": "(?<= |\\d)(-|\\+|~|&{1,2}|\\|{1,2}|<{1,2}|>{1,2}|\\*{1,2}|!|%|\\/|<=|>=|={1,2}|!=|\\^)(?= |\\d)", + "name": "keyword.operator.tcl" + } + }, + "scopeName": "source.tcl", + "uuid": "62E11136-D9E5-461C-BE98-54E3A2A9E5E3" +} diff --git a/docs/shiki/languages/tex.tmLanguage.json b/docs/shiki/languages/tex.tmLanguage.json new file mode 100644 index 00000000..dd44356c --- /dev/null +++ b/docs/shiki/languages/tex.tmLanguage.json @@ -0,0 +1,286 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/jlelong/vscode-latex-basics/blob/master/syntaxes/TeX.tmLanguage.json", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/jlelong/vscode-latex-basics/commit/3ae82b457c28f0368cbbb47024b0245ef1ff3d33", + "name": "tex", + "scopeName": "text.tex", + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.keyword.tex" + } + }, + "match": "(\\\\)(backmatter|csname|else|endcsname|fi|frontmatter|mainmatter|unless|if(case|cat|csname|defined|dim|eof|false|fontchar|hbox|hmode|inner|mmode|num|odd|true|vbox|vmode|void|x)?)(?![a-zA-Z@])", + "name": "keyword.control.tex" + }, + { + "captures": { + "1": { + "name": "keyword.control.catcode.tex" + }, + "2": { + "name": "punctuation.definition.keyword.tex" + }, + "3": { + "name": "punctuation.separator.key-value.tex" + }, + "4": { + "name": "constant.numeric.category.tex" + } + }, + "match": "((\\\\)catcode)`(?:\\\\)?.(=)(\\d+)", + "name": "meta.catcode.tex" + }, + { + "begin": "(^[ \\t]+)?(?=%)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.tex" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": "%:?", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.tex" + } + }, + "end": "$\\n?", + "name": "comment.line.percentage.tex" + }, + { + "begin": "^(%!TEX) (\\S*) =", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.tex" + } + }, + "end": "$\\n?", + "name": "comment.line.percentage.directive.tex" + } + ] + }, + { + "match": "[\\[\\]]", + "name": "punctuation.definition.brackets.tex" + }, + { + "begin": "(\\$\\$|\\$)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.string.begin.tex" + } + }, + "end": "(\\1)", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.tex" + } + }, + "name": "meta.math.block.tex support.class.math.block.tex", + "patterns": [ + { + "match": "\\\\\\$", + "name": "constant.character.escape.tex" + }, + { + "include": "#math" + }, + { + "include": "$self" + } + ] + }, + { + "match": "\\\\\\\\", + "name": "keyword.control.newline.tex" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.function.tex" + } + }, + "match": "(\\\\)(?:[\\p{Alphabetic}@]+|[,;])", + "name": "support.function.general.tex" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.keyword.tex" + } + }, + "match": "(\\\\)[^a-zA-Z@]", + "name": "constant.character.escape.tex" + } + ], + "repository": { + "math": { + "patterns": [ + { + "begin": "((\\\\)(?:text|mbox))(\\{)", + "beginCaptures": { + "1": { + "name": "constant.other.math.tex" + }, + "2": { + "name": "punctuation.definition.function.tex" + }, + "3": { + "name": "punctuation.definition.arguments.begin.tex meta.text.normal.tex" + } + }, + "contentName": "meta.text.normal.tex", + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.arguments.end.tex meta.text.normal.tex" + } + }, + "patterns": [ + { + "include": "#math" + }, + { + "include": "$base" + } + ] + }, + { + "match": "\\\\{|\\\\}", + "name": "punctuation.math.bracket.pair.tex" + }, + { + "match": "\\\\(left|right|((big|bigg|Big|Bigg)[lr]?))([\\(\\[\\<\\>\\]\\)\\.\\|]|\\\\[{}|]|\\\\[lr]?[Vv]ert|\\\\[lr]angle)", + "name": "punctuation.math.bracket.pair.big.tex" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.constant.math.tex" + } + }, + "match": "(\\\\)(s(s(earrow|warrow|lash)|h(ort(downarrow|uparrow|parallel|leftarrow|rightarrow|mid)|arp)|tar|i(gma|m(eq)?)|u(cc(sim|n(sim|approx)|curlyeq|eq|approx)?|pset(neq(q)?|plus(eq)?|eq(q)?)?|rd|m|bset(neq(q)?|plus(eq)?|eq(q)?)?)|p(hericalangle|adesuit)|e(tminus|arrow)|q(su(pset(eq)?|bset(eq)?)|c(up|ap)|uare)|warrow|m(ile|all(s(etminus|mile)|frown)))|h(slash|ook(leftarrow|rightarrow)|eartsuit|bar)|R(sh|ightarrow|e|bag)|Gam(e|ma)|n(s(hort(parallel|mid)|im|u(cc(eq)?|pseteq(q)?|bseteq))|Rightarrow|n(earrow|warrow)|cong|triangle(left(eq(slant)?)?|right(eq(slant)?)?)|i(plus)?|u|p(lus|arallel|rec(eq)?)|e(q|arrow|g|xists)|v(dash|Dash)|warrow|le(ss|q(slant|q)?|ft(arrow|rightarrow))|a(tural|bla)|VDash|rightarrow|g(tr|eq(slant|q)?)|mid|Left(arrow|rightarrow))|c(hi|irc(eq|le(d(circ|S|dash|ast)|arrow(left|right)))?|o(ng|prod|lon|mplement)|dot(s|p)?|u(p|r(vearrow(left|right)|ly(eq(succ|prec)|vee(downarrow|uparrow)?|wedge(downarrow|uparrow)?)))|enterdot|lubsuit|ap)|Xi|Maps(to(char)?|from(char)?)|B(ox|umpeq|bbk)|t(h(ick(sim|approx)|e(ta|refore))|imes|op|wohead(leftarrow|rightarrow)|a(u|lloblong)|riangle(down|q|left(eq(slant)?)?|right(eq(slant)?)?)?)|i(n(t(er(cal|leave))?|plus|fty)?|ota|math)|S(igma|u(pset|bset))|zeta|o(slash|times|int|dot|plus|vee|wedge|lessthan|greaterthan|m(inus|ega)|b(slash|long|ar))|d(i(v(ideontimes)?|a(g(down|up)|mond(suit)?)|gamma)|o(t(plus|eq(dot)?)|ublebarwedge|wn(harpoon(left|right)|downarrows|arrow))|d(ots|agger)|elta|a(sh(v|leftarrow|rightarrow)|leth|gger))|Y(down|up|left|right)|C(up|ap)|u(n(lhd|rhd)|p(silon|harpoon(left|right)|downarrow|uparrows|lus|arrow)|lcorner|rcorner)|jmath|Theta|Im|p(si|hi|i(tchfork)?|erp|ar(tial|allel)|r(ime|o(d|pto)|ec(sim|n(sim|approx)|curlyeq|eq|approx)?)|m)|e(t(h|a)|psilon|q(slant(less|gtr)|circ|uiv)|ll|xists|mptyset)|Omega|D(iamond|ownarrow|elta)|v(d(ots|ash)|ee(bar)?|Dash|ar(s(igma|u(psetneq(q)?|bsetneq(q)?))|nothing|curly(vee|wedge)|t(heta|imes|riangle(left|right)?)|o(slash|circle|times|dot|plus|vee|wedge|lessthan|ast|greaterthan|minus|b(slash|ar))|p(hi|i|ropto)|epsilon|kappa|rho|bigcirc))|kappa|Up(silon|downarrow|arrow)|Join|f(orall|lat|a(t(s(emi|lash)|bslash)|llingdotseq)|rown)|P(si|hi|i)|w(p|edge|r)|l(hd|n(sim|eq(q)?|approx)|ceil|times|ightning|o(ng(left(arrow|rightarrow)|rightarrow|maps(to|from))|zenge|oparrow(left|right))|dot(s|p)|e(ss(sim|dot|eq(qgtr|gtr)|approx|gtr)|q(slant|q)?|ft(slice|harpoon(down|up)|threetimes|leftarrows|arrow(t(ail|riangle))?|right(squigarrow|harpoons|arrow(s|triangle|eq)?))|adsto)|vertneqq|floor|l(c(orner|eil)|floor|l|bracket)?|a(ngle|mbda)|rcorner|bag)|a(s(ymp|t)|ngle|pprox(eq)?|l(pha|eph)|rrownot|malg)|V(dash|vdash)|r(h(o|d)|ceil|times|i(singdotseq|ght(s(quigarrow|lice)|harpoon(down|up)|threetimes|left(harpoons|arrows)|arrow(t(ail|riangle))?|rightarrows))|floor|angle|r(ceil|parenthesis|floor|bracket)|bag)|g(n(sim|eq(q)?|approx)|tr(sim|dot|eq(qless|less)|less|approx)|imel|eq(slant|q)?|vertneqq|amma|g(g)?)|Finv|xi|m(ho|i(nuso|d)|o(o|dels)|u(ltimap)?|p|e(asuredangle|rge)|aps(to|from(char)?))|b(i(n(dnasrepma|ampersand)|g(s(tar|qc(up|ap))|nplus|c(irc|u(p|rly(vee|wedge))|ap)|triangle(down|up)|interleave|o(times|dot|plus)|uplus|parallel|vee|wedge|box))|o(t|wtie|x(slash|circle|times|dot|plus|empty|ast|minus|b(slash|ox|ar)))|u(llet|mpeq)|e(cause|t(h|ween|a))|lack(square|triangle(down|left|right)?|lozenge)|a(ck(s(im(eq)?|lash)|prime|epsilon)|r(o|wedge))|bslash)|L(sh|ong(left(arrow|rightarrow)|rightarrow|maps(to|from))|eft(arrow|rightarrow)|leftarrow|ambda|bag)|Arrownot)(?![a-zA-Z])", + "name": "constant.character.math.tex" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.constant.math.tex" + } + }, + "match": "(\\\\)(sum|prod|coprod|int|oint|bigcap|bigcup|bigsqcup|bigvee|bigwedge|bigodot|bigotimes|bogoplus|biguplus)\\b", + "name": "constant.character.math.tex" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.constant.math.tex" + } + }, + "match": "(\\\\)(arccos|arcsin|arctan|arg|cos|cosh|cot|coth|csc|deg|det|dim|exp|gcd|hom|inf|ker|lg|lim|liminf|limsup|ln|log|max|min|pr|sec|sin|sinh|sup|tan|tanh)\\b", + "name": "constant.other.math.tex" + }, + { + "begin": "((\\\\)Sexpr(\\{))", + "beginCaptures": { + "1": { + "name": "support.function.sexpr.math.tex" + }, + "2": { + "name": "punctuation.definition.function.math.tex" + }, + "3": { + "name": "punctuation.section.embedded.begin.math.tex" + } + }, + "contentName": "support.function.sexpr.math.tex", + "end": "(((\\})))", + "endCaptures": { + "1": { + "name": "support.function.sexpr.math.tex" + }, + "2": { + "name": "punctuation.section.embedded.end.math.tex" + }, + "3": { + "name": "source.r" + } + }, + "name": "meta.embedded.line.r", + "patterns": [ + { + "begin": "\\G(?!\\})", + "end": "(?=\\})", + "name": "source.r", + "patterns": [ + { + "include": "source.r" + } + ] + } + ] + }, + { + "captures": { + "1": { + "name": "punctuation.definition.constant.math.tex" + } + }, + "match": "(\\\\)(?!begin\\{|verb)([A-Za-z]+)", + "name": "constant.other.general.math.tex" + }, + { + "match": "(?<!\\\\)\\{", + "name": "punctuation.math.begin.bracket.curly.tex" + }, + { + "match": "(?<!\\\\)\\}", + "name": "punctuation.math.end.bracket.curly.tex" + }, + { + "match": "(?<!\\\\)\\(", + "name": "punctuation.math.begin.bracket.round.tex" + }, + { + "match": "(?<!\\\\)\\)", + "name": "punctuation.math.end.bracket.round.tex" + }, + { + "match": "(([0-9]*[\\.][0-9]+)|[0-9]+)", + "name": "constant.numeric.math.tex" + }, + { + "match": "[\\+\\*/_\\^-]", + "name": "punctuation.math.operator.tex" + } + ] + }, + "braces": { + "begin": "(?<!\\\\)\\{", + "beginCaptures": { + "0": { + "name": "punctuation.group.begin.tex" + } + }, + "end": "(?<!\\\\)\\}", + "endCaptures": { + "0": { + "name": "punctuation.group.end.tex" + } + }, + "name": "meta.group.braces.tex", + "patterns": [ + { + "include": "#braces" + } + ] + } + } +} diff --git a/docs/shiki/languages/toml.tmLanguage.json b/docs/shiki/languages/toml.tmLanguage.json new file mode 100644 index 00000000..6386b523 --- /dev/null +++ b/docs/shiki/languages/toml.tmLanguage.json @@ -0,0 +1,430 @@ +{ + "fileTypes": ["toml"], + "keyEquivalent": "^~T", + "name": "toml", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#groups" + }, + { + "include": "#key_pair" + }, + { + "include": "#invalid" + } + ], + "repository": { + "comments": { + "begin": "(^[ \\t]+)?(?=#)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.toml" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": "#", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.toml" + } + }, + "end": "\\n", + "name": "comment.line.number-sign.toml" + } + ] + }, + "groups": { + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.section.begin.toml" + }, + "2": { + "patterns": [ + { + "match": "[^\\s.]+", + "name": "entity.name.section.toml" + } + ] + }, + "3": { + "name": "punctuation.definition.section.begin.toml" + } + }, + "match": "^\\s*(\\[)([^\\[\\]]*)(\\])", + "name": "meta.group.toml" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.section.begin.toml" + }, + "2": { + "patterns": [ + { + "match": "[^\\s.]+", + "name": "entity.name.section.toml" + } + ] + }, + "3": { + "name": "punctuation.definition.section.begin.toml" + } + }, + "match": "^\\s*(\\[\\[)([^\\[\\]]*)(\\]\\])", + "name": "meta.group.double.toml" + } + ] + }, + "invalid": { + "match": "\\S+(\\s*(?=\\S))?", + "name": "invalid.illegal.not-allowed-here.toml" + }, + "key_pair": { + "patterns": [ + { + "begin": "([A-Za-z0-9_-]+)\\s*(=)\\s*", + "captures": { + "1": { + "name": "variable.other.key.toml" + }, + "2": { + "name": "punctuation.separator.key-value.toml" + } + }, + "end": "(?<=\\S)(?<!=)|$", + "patterns": [ + { + "include": "#primatives" + } + ] + }, + { + "begin": "((\")(.*?)(\"))\\s*(=)\\s*", + "captures": { + "1": { + "name": "variable.other.key.toml" + }, + "2": { + "name": "punctuation.definition.variable.begin.toml" + }, + "3": { + "patterns": [ + { + "match": "\\\\([btnfr\"\\\\]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})", + "name": "constant.character.escape.toml" + }, + { + "match": "\\\\[^btnfr\"\\\\]", + "name": "invalid.illegal.escape.toml" + }, + { + "match": "\"", + "name": "invalid.illegal.not-allowed-here.toml" + } + ] + }, + "4": { + "name": "punctuation.definition.variable.end.toml" + }, + "5": { + "name": "punctuation.separator.key-value.toml" + } + }, + "end": "(?<=\\S)(?<!=)|$", + "patterns": [ + { + "include": "#primatives" + } + ] + }, + { + "begin": "((')([^']*)('))\\s*(=)\\s*", + "captures": { + "1": { + "name": "variable.other.key.toml" + }, + "2": { + "name": "punctuation.definition.variable.begin.toml" + }, + "4": { + "name": "punctuation.definition.variable.end.toml" + }, + "5": { + "name": "punctuation.separator.key-value.toml" + } + }, + "end": "(?<=\\S)(?<!=)|$", + "patterns": [ + { + "include": "#primatives" + } + ] + }, + { + "begin": "(?x)\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t(?:\n\t\t\t\t\t\t\t\t\t[A-Za-z0-9_-]+\t\t\t\t# Bare key\n\t\t\t\t\t\t\t\t | \" (?:[^\"\\\\]|\\\\.)* \"\t\t# Double quoted key\n\t\t\t\t\t\t\t\t | ' [^']* '\t\t# Sindle quoted key\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t(?:\n\t\t\t\t\t\t\t\t\t\\s* \\. \\s*\t\t\t\t\t# Dot\n\t\t\t\t\t\t\t\t | (?= \\s* =)\t\t\t\t\t# or look-ahead for equals\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t){2,}\t\t\t\t\t\t\t\t# Ensure at least one dot\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\\s*(=)\\s*\n\t\t\t\t\t", + "captures": { + "1": { + "name": "variable.other.key.toml", + "patterns": [ + { + "match": "\\.", + "name": "punctuation.separator.variable.toml" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.variable.begin.toml" + }, + "2": { + "patterns": [ + { + "match": "\\\\([btnfr\"\\\\]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})", + "name": "constant.character.escape.toml" + }, + { + "match": "\\\\[^btnfr\"\\\\]", + "name": "invalid.illegal.escape.toml" + } + ] + }, + "3": { + "name": "punctuation.definition.variable.end.toml" + } + }, + "match": "(\")((?:[^\"\\\\]|\\\\.)*)(\")" + }, + { + "captures": { + "1": { + "name": "punctuation.definition.variable.begin.toml" + }, + "2": { + "name": "punctuation.definition.variable.end.toml" + } + }, + "match": "(')[^']*(')" + } + ] + }, + "3": { + "name": "punctuation.separator.key-value.toml" + } + }, + "comment": "Dotted key", + "end": "(?<=\\S)(?<!=)|$", + "patterns": [ + { + "include": "#primatives" + } + ] + } + ] + }, + "primatives": { + "patterns": [ + { + "begin": "\\G\"\"\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.toml" + } + }, + "end": "\"{3,5}", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.toml" + } + }, + "name": "string.quoted.triple.double.toml", + "patterns": [ + { + "match": "\\\\([btnfr\"\\\\]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})", + "name": "constant.character.escape.toml" + }, + { + "match": "\\\\[^btnfr\"\\\\\\n]", + "name": "invalid.illegal.escape.toml" + } + ] + }, + { + "begin": "\\G\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.toml" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.toml" + } + }, + "name": "string.quoted.double.toml", + "patterns": [ + { + "match": "\\\\([btnfr\"\\\\]|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})", + "name": "constant.character.escape.toml" + }, + { + "match": "\\\\[^btnfr\"\\\\]", + "name": "invalid.illegal.escape.toml" + } + ] + }, + { + "begin": "\\G'''", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.toml" + } + }, + "end": "'{3,5}", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.toml" + } + }, + "name": "string.quoted.triple.single.toml" + }, + { + "begin": "\\G'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.toml" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.toml" + } + }, + "name": "string.quoted.single.toml" + }, + { + "match": "\\G(?x)\n\t\t\t\t\t\t[0-9]{4}\n\t\t\t\t\t\t-\n\t\t\t\t\t\t(0[1-9]|1[012])\n\t\t\t\t\t\t-\n\t\t\t\t\t\t(?!00|3[2-9])[0-3][0-9]\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t[Tt ]\n\t\t\t\t\t\t\t(?!2[5-9])[0-2][0-9]\n\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t[0-5][0-9]\n\t\t\t\t\t\t\t:\n\t\t\t\t\t\t\t(?!6[1-9])[0-6][0-9]\n\t\t\t\t\t\t\t(\\.[0-9]+)?\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\tZ\n\t\t\t\t\t\t\t | [+-](?!2[5-9])[0-2][0-9]:[0-5][0-9]\n\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t)?\n\t\t\t\t\t", + "name": "constant.other.date.toml" + }, + { + "match": "\\G(?x)\n\t\t\t\t\t\t(?!2[5-9])[0-2][0-9]\n\t\t\t\t\t\t:\n\t\t\t\t\t\t[0-5][0-9]\n\t\t\t\t\t\t:\n\t\t\t\t\t\t(?!6[1-9])[0-6][0-9]\n\t\t\t\t\t\t(\\.[0-9]+)?\n\t\t\t\t\t", + "name": "constant.other.time.toml" + }, + { + "match": "\\G(true|false)", + "name": "constant.language.boolean.toml" + }, + { + "match": "\\G0x\\h(\\h|_\\h)*", + "name": "constant.numeric.hex.toml" + }, + { + "match": "\\G0o[0-7]([0-7]|_[0-7])*", + "name": "constant.numeric.octal.toml" + }, + { + "match": "\\G0b[01]([01]|_[01])*", + "name": "constant.numeric.binary.toml" + }, + { + "match": "\\G[+-]?(inf|nan)", + "name": "constant.numeric.toml" + }, + { + "match": "(?x)\n\t\t\t\t\t\t\\G\n\t\t\t\t\t\t(\n\t\t\t\t\t\t [+-]?\n\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t0\n\t\t\t\t\t\t\t | ([1-9](([0-9]|_[0-9])+)?)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t\t(?=[.eE])\n\t\t\t\t\t\t(\n\t\t\t\t\t\t \\.\n\t\t\t\t\t\t ([0-9](([0-9]|_[0-9])+)?)\n\t\t\t\t\t\t)?\n\t\t\t\t\t\t(\n\t\t\t\t\t\t [eE]\n\t\t\t\t\t\t ([+-]?[0-9](([0-9]|_[0-9])+)?)\n\t\t\t\t\t\t)?\n\t\t\t\t\t", + "name": "constant.numeric.float.toml" + }, + { + "match": "(?x)\n\t\t\t\t\t\t\\G\n\t\t\t\t\t\t(\n\t\t\t\t\t\t [+-]?\n\t\t\t\t\t\t (\n\t\t\t\t\t\t\t\t0\n\t\t\t\t\t\t\t | ([1-9](([0-9]|_[0-9])+)?)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t", + "name": "constant.numeric.integer.toml" + }, + { + "begin": "\\G\\[", + "beginCaptures": { + "0": { + "name": "punctuation.definition.array.begin.toml" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.array.end.toml" + } + }, + "name": "meta.array.toml", + "patterns": [ + { + "begin": "(?=[\"'']|[+-]?[0-9]|[+-]?(inf|nan)|true|false|\\[|\\{)", + "end": ",|(?=])", + "endCaptures": { + "0": { + "name": "punctuation.separator.array.toml" + } + }, + "patterns": [ + { + "include": "#primatives" + }, + { + "include": "#comments" + }, + { + "include": "#invalid" + } + ] + }, + { + "include": "#comments" + }, + { + "include": "#invalid" + } + ] + }, + { + "begin": "\\G\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.inline-table.begin.toml" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.inline-table.end.toml" + } + }, + "name": "meta.inline-table.toml", + "patterns": [ + { + "begin": "(?=\\S)", + "end": ",|(?=})", + "endCaptures": { + "0": { + "name": "punctuation.separator.inline-table.toml" + } + }, + "patterns": [ + { + "include": "#key_pair" + } + ] + }, + { + "include": "#comments" + } + ] + } + ] + } + }, + "scopeName": "source.toml", + "uuid": "7DEF2EDB-5BB7-4DD2-9E78-3541A26B7923" +} diff --git a/docs/shiki/languages/tsx.tmLanguage.json b/docs/shiki/languages/tsx.tmLanguage.json new file mode 100644 index 00000000..06dd4000 --- /dev/null +++ b/docs/shiki/languages/tsx.tmLanguage.json @@ -0,0 +1,5989 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/microsoft/TypeScript-TmLanguage/blob/master/TypeScriptReact.tmLanguage", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/microsoft/TypeScript-TmLanguage/commit/8c7482b94b548eab56da64dbfb30b82589b3f747", + "name": "tsx", + "scopeName": "source.tsx", + "patterns": [ + { + "include": "#directives" + }, + { + "include": "#statements" + }, + { + "include": "#shebang" + } + ], + "repository": { + "shebang": { + "name": "comment.line.shebang.tsx", + "match": "\\A(#!).*(?=$)", + "captures": { + "1": { + "name": "punctuation.definition.comment.tsx" + } + } + }, + "statements": { + "patterns": [ + { + "include": "#declaration" + }, + { + "include": "#control-statement" + }, + { + "include": "#after-operator-block-as-object-literal" + }, + { + "include": "#decl-block" + }, + { + "include": "#label" + }, + { + "include": "#expression" + }, + { + "include": "#punctuation-semicolon" + }, + { + "include": "#string" + }, + { + "include": "#comment" + } + ] + }, + "declaration": { + "patterns": [ + { + "include": "#decorator" + }, + { + "include": "#var-expr" + }, + { + "include": "#function-declaration" + }, + { + "include": "#class-declaration" + }, + { + "include": "#interface-declaration" + }, + { + "include": "#enum-declaration" + }, + { + "include": "#namespace-declaration" + }, + { + "include": "#type-alias-declaration" + }, + { + "include": "#import-equals-declaration" + }, + { + "include": "#import-declaration" + }, + { + "include": "#export-declaration" + }, + { + "name": "storage.modifier.tsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(declare|export)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + } + ] + }, + "control-statement": { + "patterns": [ + { + "include": "#switch-statement" + }, + { + "include": "#for-loop" + }, + { + "name": "keyword.control.trycatch.tsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(catch|finally|throw|try)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(break|continue|goto)\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "captures": { + "1": { + "name": "keyword.control.loop.tsx" + }, + "2": { + "name": "entity.name.label.tsx" + } + } + }, + { + "name": "keyword.control.loop.tsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(break|continue|do|goto|while)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(return)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "beginCaptures": { + "0": { + "name": "keyword.control.flow.tsx" + } + }, + "end": "(?=[;}]|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "name": "keyword.control.switch.tsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(case|default|switch)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "include": "#if-statement" + }, + { + "name": "keyword.control.conditional.tsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(else|if)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "name": "keyword.control.with.tsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(with)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "name": "keyword.control.tsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(package)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "name": "keyword.other.debugger.tsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(debugger)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + } + ] + }, + "label": { + "patterns": [ + { + "begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)(?=\\s*\\{)", + "beginCaptures": { + "1": { + "name": "entity.name.label.tsx" + }, + "2": { + "name": "punctuation.separator.label.tsx" + } + }, + "end": "(?<=\\})", + "patterns": [ + { + "include": "#decl-block" + } + ] + }, + { + "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)", + "captures": { + "1": { + "name": "entity.name.label.tsx" + }, + "2": { + "name": "punctuation.separator.label.tsx" + } + } + } + ] + }, + "expression": { + "patterns": [ + { + "include": "#expressionWithoutIdentifiers" + }, + { + "include": "#identifiers" + }, + { + "include": "#expressionPunctuations" + } + ] + }, + "expressionWithoutIdentifiers": { + "patterns": [ + { + "include": "#jsx" + }, + { + "include": "#string" + }, + { + "include": "#regex" + }, + { + "include": "#comment" + }, + { + "include": "#function-expression" + }, + { + "include": "#class-expression" + }, + { + "include": "#arrow-function" + }, + { + "include": "#paren-expression-possibly-arrow" + }, + { + "include": "#cast" + }, + { + "include": "#ternary-expression" + }, + { + "include": "#new-expr" + }, + { + "include": "#instanceof-expr" + }, + { + "include": "#object-literal" + }, + { + "include": "#expression-operators" + }, + { + "include": "#function-call" + }, + { + "include": "#literal" + }, + { + "include": "#support-objects" + }, + { + "include": "#paren-expression" + } + ] + }, + "expressionPunctuations": { + "patterns": [ + { + "include": "#punctuation-comma" + }, + { + "include": "#punctuation-accessor" + } + ] + }, + "decorator": { + "name": "meta.decorator.tsx", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))\\@", + "beginCaptures": { + "0": { + "name": "punctuation.decorator.tsx" + } + }, + "end": "(?=\\s)", + "patterns": [ + { + "include": "#expression" + } + ] + }, + "var-expr": { + "patterns": [ + { + "name": "meta.var.expr.tsx", + "begin": "(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))", + "end": "(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=^|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?<!^let|[^\\._$[:alnum:]]let|^var|[^\\._$[:alnum:]]var)(?=\\s*$)))", + "patterns": [ + { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", + "beginCaptures": { + "1": { + "name": "keyword.control.export.tsx" + }, + "2": { + "name": "storage.modifier.tsx" + }, + "3": { + "name": "storage.type.tsx" + } + }, + "end": "(?=\\S)" + }, + { + "include": "#destructuring-variable" + }, + { + "include": "#var-single-variable" + }, + { + "include": "#variable-initializer" + }, + { + "include": "#comment" + }, + { + "begin": "(,)\\s*(?=$|\\/\\/)", + "beginCaptures": { + "1": { + "name": "punctuation.separator.comma.tsx" + } + }, + "end": "(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))", + "patterns": [ + { + "include": "#single-line-comment-consuming-line-ending" + }, + { + "include": "#comment" + }, + { + "include": "#destructuring-variable" + }, + { + "include": "#var-single-variable" + }, + { + "include": "#punctuation-comma" + } + ] + }, + { + "include": "#punctuation-comma" + } + ] + }, + { + "name": "meta.var.expr.tsx", + "begin": "(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))", + "beginCaptures": { + "1": { + "name": "keyword.control.export.tsx" + }, + "2": { + "name": "storage.modifier.tsx" + }, + "3": { + "name": "storage.type.tsx" + } + }, + "end": "(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=^|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?<!^const|[^\\._$[:alnum:]]const)(?=\\s*$)))", + "patterns": [ + { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", + "beginCaptures": { + "1": { + "name": "keyword.control.export.tsx" + }, + "2": { + "name": "storage.modifier.tsx" + }, + "3": { + "name": "storage.type.tsx" + } + }, + "end": "(?=\\S)" + }, + { + "include": "#destructuring-const" + }, + { + "include": "#var-single-const" + }, + { + "include": "#variable-initializer" + }, + { + "include": "#comment" + }, + { + "begin": "(,)\\s*(?=$|\\/\\/)", + "beginCaptures": { + "1": { + "name": "punctuation.separator.comma.tsx" + } + }, + "end": "(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))", + "patterns": [ + { + "include": "#single-line-comment-consuming-line-ending" + }, + { + "include": "#comment" + }, + { + "include": "#destructuring-const" + }, + { + "include": "#var-single-const" + }, + { + "include": "#punctuation-comma" + } + ] + }, + { + "include": "#punctuation-comma" + } + ] + }, + { + "name": "meta.var.expr.tsx", + "begin": "(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))", + "beginCaptures": { + "1": { + "name": "keyword.control.export.tsx" + }, + "2": { + "name": "storage.modifier.tsx" + }, + "3": { + "name": "storage.type.tsx" + } + }, + "end": "(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?<!^using|[^\\._$[:alnum:]]using|^await\\s+using|[^\\._$[:alnum:]]await\\s+using)(?=\\s*$)))", + "patterns": [ + { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", + "beginCaptures": { + "1": { + "name": "keyword.control.export.tsx" + }, + "2": { + "name": "storage.modifier.tsx" + }, + "3": { + "name": "storage.type.tsx" + } + }, + "end": "(?=\\S)" + }, + { + "include": "#var-single-const" + }, + { + "include": "#variable-initializer" + }, + { + "include": "#comment" + }, + { + "begin": "(,)\\s*((?!\\S)|(?=\\/\\/))", + "beginCaptures": { + "1": { + "name": "punctuation.separator.comma.tsx" + } + }, + "end": "(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))", + "patterns": [ + { + "include": "#single-line-comment-consuming-line-ending" + }, + { + "include": "#comment" + }, + { + "include": "#var-single-const" + }, + { + "include": "#punctuation-comma" + } + ] + }, + { + "include": "#punctuation-comma" + } + ] + } + ] + }, + "var-single-variable": { + "patterns": [ + { + "name": "meta.var-single-variable.expr.tsx", + "begin": "(?x)([_$[:alpha:]][_$[:alnum:]]*)(\\!)?(?=\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", + "beginCaptures": { + "1": { + "name": "meta.definition.variable.tsx entity.name.function.tsx" + }, + "2": { + "name": "keyword.operator.definiteassignment.tsx" + } + }, + "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", + "patterns": [ + { + "include": "#var-single-variable-type-annotation" + } + ] + }, + { + "name": "meta.var-single-variable.expr.tsx", + "begin": "([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])(\\!)?", + "beginCaptures": { + "1": { + "name": "meta.definition.variable.tsx variable.other.constant.tsx" + }, + "2": { + "name": "keyword.operator.definiteassignment.tsx" + } + }, + "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", + "patterns": [ + { + "include": "#var-single-variable-type-annotation" + } + ] + }, + { + "name": "meta.var-single-variable.expr.tsx", + "begin": "([_$[:alpha:]][_$[:alnum:]]*)(\\!)?", + "beginCaptures": { + "1": { + "name": "meta.definition.variable.tsx variable.other.readwrite.tsx" + }, + "2": { + "name": "keyword.operator.definiteassignment.tsx" + } + }, + "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", + "patterns": [ + { + "include": "#var-single-variable-type-annotation" + } + ] + } + ] + }, + "var-single-const": { + "patterns": [ + { + "name": "meta.var-single-variable.expr.tsx", + "begin": "(?x)([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", + "beginCaptures": { + "1": { + "name": "meta.definition.variable.tsx variable.other.constant.tsx entity.name.function.tsx" + } + }, + "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", + "patterns": [ + { + "include": "#var-single-variable-type-annotation" + } + ] + }, + { + "name": "meta.var-single-variable.expr.tsx", + "begin": "([_$[:alpha:]][_$[:alnum:]]*)", + "beginCaptures": { + "1": { + "name": "meta.definition.variable.tsx variable.other.constant.tsx" + } + }, + "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", + "patterns": [ + { + "include": "#var-single-variable-type-annotation" + } + ] + } + ] + }, + "var-single-variable-type-annotation": { + "patterns": [ + { + "include": "#type-annotation" + }, + { + "include": "#string" + }, + { + "include": "#comment" + } + ] + }, + "destructuring-variable": { + "patterns": [ + { + "name": "meta.object-binding-pattern-variable.tsx", + "begin": "(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\{)", + "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", + "patterns": [ + { + "include": "#object-binding-pattern" + }, + { + "include": "#type-annotation" + }, + { + "include": "#comment" + } + ] + }, + { + "name": "meta.array-binding-pattern-variable.tsx", + "begin": "(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\[)", + "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", + "patterns": [ + { + "include": "#array-binding-pattern" + }, + { + "include": "#type-annotation" + }, + { + "include": "#comment" + } + ] + } + ] + }, + "destructuring-const": { + "patterns": [ + { + "name": "meta.object-binding-pattern-variable.tsx", + "begin": "(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\{)", + "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", + "patterns": [ + { + "include": "#object-binding-pattern-const" + }, + { + "include": "#type-annotation" + }, + { + "include": "#comment" + } + ] + }, + { + "name": "meta.array-binding-pattern-variable.tsx", + "begin": "(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\[)", + "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", + "patterns": [ + { + "include": "#array-binding-pattern-const" + }, + { + "include": "#type-annotation" + }, + { + "include": "#comment" + } + ] + } + ] + }, + "object-binding-element": { + "patterns": [ + { + "include": "#comment" + }, + { + "begin": "(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))", + "end": "(?=,|\\})", + "patterns": [ + { + "include": "#object-binding-element-propertyName" + }, + { + "include": "#binding-element" + } + ] + }, + { + "include": "#object-binding-pattern" + }, + { + "include": "#destructuring-variable-rest" + }, + { + "include": "#variable-initializer" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "object-binding-element-const": { + "patterns": [ + { + "include": "#comment" + }, + { + "begin": "(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))", + "end": "(?=,|\\})", + "patterns": [ + { + "include": "#object-binding-element-propertyName" + }, + { + "include": "#binding-element-const" + } + ] + }, + { + "include": "#object-binding-pattern-const" + }, + { + "include": "#destructuring-variable-rest-const" + }, + { + "include": "#variable-initializer" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "object-binding-element-propertyName": { + "begin": "(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))", + "end": "(:)", + "endCaptures": { + "0": { + "name": "punctuation.destructuring.tsx" + } + }, + "patterns": [ + { + "include": "#string" + }, + { + "include": "#array-literal" + }, + { + "include": "#numeric-literal" + }, + { + "name": "variable.object.property.tsx", + "match": "([_$[:alpha:]][_$[:alnum:]]*)" + } + ] + }, + "binding-element": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#string" + }, + { + "include": "#numeric-literal" + }, + { + "include": "#regex" + }, + { + "include": "#object-binding-pattern" + }, + { + "include": "#array-binding-pattern" + }, + { + "include": "#destructuring-variable-rest" + }, + { + "include": "#variable-initializer" + } + ] + }, + "binding-element-const": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#string" + }, + { + "include": "#numeric-literal" + }, + { + "include": "#regex" + }, + { + "include": "#object-binding-pattern-const" + }, + { + "include": "#array-binding-pattern-const" + }, + { + "include": "#destructuring-variable-rest-const" + }, + { + "include": "#variable-initializer" + } + ] + }, + "destructuring-variable-rest": { + "match": "(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)", + "captures": { + "1": { + "name": "keyword.operator.rest.tsx" + }, + "2": { + "name": "meta.definition.variable.tsx variable.other.readwrite.tsx" + } + } + }, + "destructuring-variable-rest-const": { + "match": "(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)", + "captures": { + "1": { + "name": "keyword.operator.rest.tsx" + }, + "2": { + "name": "meta.definition.variable.tsx variable.other.constant.tsx" + } + } + }, + "object-binding-pattern": { + "begin": "(?:(\\.\\.\\.)\\s*)?(\\{)", + "beginCaptures": { + "1": { + "name": "keyword.operator.rest.tsx" + }, + "2": { + "name": "punctuation.definition.binding-pattern.object.tsx" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.binding-pattern.object.tsx" + } + }, + "patterns": [ + { + "include": "#object-binding-element" + } + ] + }, + "object-binding-pattern-const": { + "begin": "(?:(\\.\\.\\.)\\s*)?(\\{)", + "beginCaptures": { + "1": { + "name": "keyword.operator.rest.tsx" + }, + "2": { + "name": "punctuation.definition.binding-pattern.object.tsx" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.binding-pattern.object.tsx" + } + }, + "patterns": [ + { + "include": "#object-binding-element-const" + } + ] + }, + "array-binding-pattern": { + "begin": "(?:(\\.\\.\\.)\\s*)?(\\[)", + "beginCaptures": { + "1": { + "name": "keyword.operator.rest.tsx" + }, + "2": { + "name": "punctuation.definition.binding-pattern.array.tsx" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.binding-pattern.array.tsx" + } + }, + "patterns": [ + { + "include": "#binding-element" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "array-binding-pattern-const": { + "begin": "(?:(\\.\\.\\.)\\s*)?(\\[)", + "beginCaptures": { + "1": { + "name": "keyword.operator.rest.tsx" + }, + "2": { + "name": "punctuation.definition.binding-pattern.array.tsx" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.binding-pattern.array.tsx" + } + }, + "patterns": [ + { + "include": "#binding-element-const" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "parameter-name": { + "patterns": [ + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)", + "captures": { + "1": { + "name": "storage.modifier.tsx" + } + } + }, + { + "match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", + "captures": { + "1": { + "name": "storage.modifier.tsx" + }, + "2": { + "name": "keyword.operator.rest.tsx" + }, + "3": { + "name": "entity.name.function.tsx variable.language.this.tsx" + }, + "4": { + "name": "entity.name.function.tsx" + }, + "5": { + "name": "keyword.operator.optional.tsx" + } + } + }, + { + "match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)", + "captures": { + "1": { + "name": "storage.modifier.tsx" + }, + "2": { + "name": "keyword.operator.rest.tsx" + }, + "3": { + "name": "variable.parameter.tsx variable.language.this.tsx" + }, + "4": { + "name": "variable.parameter.tsx" + }, + "5": { + "name": "keyword.operator.optional.tsx" + } + } + } + ] + }, + "destructuring-parameter": { + "patterns": [ + { + "name": "meta.parameter.object-binding-pattern.tsx", + "begin": "(?<!=|:)\\s*(?:(\\.\\.\\.)\\s*)?(\\{)", + "beginCaptures": { + "1": { + "name": "keyword.operator.rest.tsx" + }, + "2": { + "name": "punctuation.definition.binding-pattern.object.tsx" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.binding-pattern.object.tsx" + } + }, + "patterns": [ + { + "include": "#parameter-object-binding-element" + } + ] + }, + { + "name": "meta.paramter.array-binding-pattern.tsx", + "begin": "(?<!=|:)\\s*(?:(\\.\\.\\.)\\s*)?(\\[)", + "beginCaptures": { + "1": { + "name": "keyword.operator.rest.tsx" + }, + "2": { + "name": "punctuation.definition.binding-pattern.array.tsx" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.binding-pattern.array.tsx" + } + }, + "patterns": [ + { + "include": "#parameter-binding-element" + }, + { + "include": "#punctuation-comma" + } + ] + } + ] + }, + "parameter-object-binding-element": { + "patterns": [ + { + "include": "#comment" + }, + { + "begin": "(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))", + "end": "(?=,|\\})", + "patterns": [ + { + "include": "#object-binding-element-propertyName" + }, + { + "include": "#parameter-binding-element" + }, + { + "include": "#paren-expression" + } + ] + }, + { + "include": "#parameter-object-binding-pattern" + }, + { + "include": "#destructuring-parameter-rest" + }, + { + "include": "#variable-initializer" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "parameter-binding-element": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#string" + }, + { + "include": "#numeric-literal" + }, + { + "include": "#regex" + }, + { + "include": "#parameter-object-binding-pattern" + }, + { + "include": "#parameter-array-binding-pattern" + }, + { + "include": "#destructuring-parameter-rest" + }, + { + "include": "#variable-initializer" + } + ] + }, + "destructuring-parameter-rest": { + "match": "(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)", + "captures": { + "1": { + "name": "keyword.operator.rest.tsx" + }, + "2": { + "name": "variable.parameter.tsx" + } + } + }, + "parameter-object-binding-pattern": { + "begin": "(?:(\\.\\.\\.)\\s*)?(\\{)", + "beginCaptures": { + "1": { + "name": "keyword.operator.rest.tsx" + }, + "2": { + "name": "punctuation.definition.binding-pattern.object.tsx" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.binding-pattern.object.tsx" + } + }, + "patterns": [ + { + "include": "#parameter-object-binding-element" + } + ] + }, + "parameter-array-binding-pattern": { + "begin": "(?:(\\.\\.\\.)\\s*)?(\\[)", + "beginCaptures": { + "1": { + "name": "keyword.operator.rest.tsx" + }, + "2": { + "name": "punctuation.definition.binding-pattern.array.tsx" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.binding-pattern.array.tsx" + } + }, + "patterns": [ + { + "include": "#parameter-binding-element" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "field-declaration": { + "name": "meta.field.declaration.tsx", + "begin": "(?x)(?<!\\()(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)\\s+)?(?=\\s*((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|(\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|\\}|$))", + "beginCaptures": { + "1": { + "name": "storage.modifier.tsx" + } + }, + "end": "(?x)(?=\\}|;|,|$|(^(?!\\s*((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|(\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|$))))|(?<=\\})", + "patterns": [ + { + "include": "#variable-initializer" + }, + { + "include": "#type-annotation" + }, + { + "include": "#string" + }, + { + "include": "#array-literal" + }, + { + "include": "#numeric-literal" + }, + { + "include": "#comment" + }, + { + "match": "(?x)(\\#?[_$[:alpha:]][_$[:alnum:]]*)(?:(\\?)|(\\!))?(?=\\s*\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", + "captures": { + "1": { + "name": "meta.definition.property.tsx entity.name.function.tsx" + }, + "2": { + "name": "keyword.operator.optional.tsx" + }, + "3": { + "name": "keyword.operator.definiteassignment.tsx" + } + } + }, + { + "name": "meta.definition.property.tsx variable.object.property.tsx", + "match": "\\#?[_$[:alpha:]][_$[:alnum:]]*" + }, + { + "name": "keyword.operator.optional.tsx", + "match": "\\?" + }, + { + "name": "keyword.operator.definiteassignment.tsx", + "match": "\\!" + } + ] + }, + "variable-initializer": { + "patterns": [ + { + "begin": "(?<!=|!)(=)(?!=)(?=\\s*\\S)(?!\\s*.*=>\\s*$)", + "beginCaptures": { + "1": { + "name": "keyword.operator.assignment.tsx" + } + }, + "end": "(?=$|^|[,);}\\]]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "begin": "(?<!=|!)(=)(?!=)", + "beginCaptures": { + "1": { + "name": "keyword.operator.assignment.tsx" + } + }, + "end": "(?=[,);}\\]]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))|(?=^\\s*$)|(?<![\\|\\&\\+\\-\\*\\/])(?<=\\S)(?<!=)(?=\\s*$)", + "patterns": [ + { + "include": "#expression" + } + ] + } + ] + }, + "function-declaration": { + "name": "meta.function.tsx", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\s*", + "beginCaptures": { + "1": { + "name": "keyword.control.export.tsx" + }, + "2": { + "name": "storage.modifier.tsx" + }, + "3": { + "name": "storage.modifier.async.tsx" + }, + "4": { + "name": "storage.type.function.tsx" + }, + "5": { + "name": "keyword.generator.asterisk.tsx" + }, + "6": { + "name": "meta.definition.function.tsx entity.name.function.tsx" + } + }, + "end": "(?=;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|(?<=\\})", + "patterns": [ + { + "include": "#function-name" + }, + { + "include": "#function-body" + } + ] + }, + "function-expression": { + "name": "meta.function.expression.tsx", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\s*", + "beginCaptures": { + "1": { + "name": "storage.modifier.async.tsx" + }, + "2": { + "name": "storage.type.function.tsx" + }, + "3": { + "name": "keyword.generator.asterisk.tsx" + }, + "4": { + "name": "meta.definition.function.tsx entity.name.function.tsx" + } + }, + "end": "(?=;)|(?<=\\})", + "patterns": [ + { + "include": "#function-name" + }, + { + "include": "#single-line-comment-consuming-line-ending" + }, + { + "include": "#function-body" + } + ] + }, + "function-name": { + "name": "meta.definition.function.tsx entity.name.function.tsx", + "match": "[_$[:alpha:]][_$[:alnum:]]*" + }, + "function-body": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#type-parameters" + }, + { + "include": "#function-parameters" + }, + { + "include": "#return-type" + }, + { + "include": "#type-function-return-type" + }, + { + "include": "#decl-block" + }, + { + "name": "keyword.generator.asterisk.tsx", + "match": "\\*" + } + ] + }, + "method-declaration": { + "patterns": [ + { + "name": "meta.method.declaration.tsx", + "begin": "(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?\\s*\\b(constructor)\\b(?!:)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "beginCaptures": { + "1": { + "name": "storage.modifier.tsx" + }, + "2": { + "name": "storage.modifier.tsx" + }, + "3": { + "name": "storage.modifier.tsx" + }, + "4": { + "name": "storage.modifier.async.tsx" + }, + "5": { + "name": "storage.type.tsx" + } + }, + "end": "(?=\\}|;|,|$)|(?<=\\})", + "patterns": [ + { + "include": "#method-declaration-name" + }, + { + "include": "#function-body" + } + ] + }, + { + "name": "meta.method.declaration.tsx", + "begin": "(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:(?:\\s*\\b(new)\\b(?!:)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|(?:(\\*)\\s*)?)(?=\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", + "beginCaptures": { + "1": { + "name": "storage.modifier.tsx" + }, + "2": { + "name": "storage.modifier.tsx" + }, + "3": { + "name": "storage.modifier.tsx" + }, + "4": { + "name": "storage.modifier.async.tsx" + }, + "5": { + "name": "keyword.operator.new.tsx" + }, + "6": { + "name": "keyword.generator.asterisk.tsx" + } + }, + "end": "(?=\\}|;|,|$)|(?<=\\})", + "patterns": [ + { + "include": "#method-declaration-name" + }, + { + "include": "#function-body" + } + ] + }, + { + "name": "meta.method.declaration.tsx", + "begin": "(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", + "beginCaptures": { + "1": { + "name": "storage.modifier.tsx" + }, + "2": { + "name": "storage.modifier.tsx" + }, + "3": { + "name": "storage.modifier.tsx" + }, + "4": { + "name": "storage.modifier.async.tsx" + }, + "5": { + "name": "storage.type.property.tsx" + }, + "6": { + "name": "keyword.generator.asterisk.tsx" + } + }, + "end": "(?=\\}|;|,|$)|(?<=\\})", + "patterns": [ + { + "include": "#method-declaration-name" + }, + { + "include": "#function-body" + } + ] + } + ] + }, + "object-literal-method-declaration": { + "name": "meta.method.declaration.tsx", + "begin": "(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", + "beginCaptures": { + "1": { + "name": "storage.modifier.async.tsx" + }, + "2": { + "name": "storage.type.property.tsx" + }, + "3": { + "name": "keyword.generator.asterisk.tsx" + } + }, + "end": "(?=\\}|;|,)|(?<=\\})", + "patterns": [ + { + "include": "#method-declaration-name" + }, + { + "include": "#function-body" + }, + { + "begin": "(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", + "beginCaptures": { + "1": { + "name": "storage.modifier.async.tsx" + }, + "2": { + "name": "storage.type.property.tsx" + }, + "3": { + "name": "keyword.generator.asterisk.tsx" + } + }, + "end": "(?=\\(|\\<)", + "patterns": [ + { + "include": "#method-declaration-name" + } + ] + } + ] + }, + "method-declaration-name": { + "begin": "(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??)\\s*[\\(\\<])", + "end": "(?=\\(|\\<)", + "patterns": [ + { + "include": "#string" + }, + { + "include": "#array-literal" + }, + { + "include": "#numeric-literal" + }, + { + "name": "meta.definition.method.tsx entity.name.function.tsx", + "match": "[_$[:alpha:]][_$[:alnum:]]*" + }, + { + "name": "keyword.operator.optional.tsx", + "match": "\\?" + } + ] + }, + "arrow-function": { + "patterns": [ + { + "name": "meta.arrow.tsx", + "match": "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(\\basync)\\s+)?([_$[:alpha:]][_$[:alnum:]]*)\\s*(?==>)", + "captures": { + "1": { + "name": "storage.modifier.async.tsx" + }, + "2": { + "name": "variable.parameter.tsx" + } + } + }, + { + "name": "meta.arrow.tsx", + "begin": "(?x) (?:\n (?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(\\basync)\n)? ((?<![})!\\]])\\s*\n (?=\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n )\n)", + "beginCaptures": { + "1": { + "name": "storage.modifier.async.tsx" + } + }, + "end": "(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#type-parameters" + }, + { + "include": "#function-parameters" + }, + { + "include": "#arrow-return-type" + }, + { + "include": "#possibly-arrow-return-type" + } + ] + }, + { + "name": "meta.arrow.tsx", + "begin": "=>", + "beginCaptures": { + "0": { + "name": "storage.type.function.arrow.tsx" + } + }, + "end": "((?<=\\}|\\S)(?<!=>)|((?!\\{)(?=\\S)))(?!\\/[\\/\\*])", + "patterns": [ + { + "include": "#single-line-comment-consuming-line-ending" + }, + { + "include": "#decl-block" + }, + { + "include": "#expression" + } + ] + } + ] + }, + "indexer-declaration": { + "name": "meta.indexer.declaration.tsx", + "begin": "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)\\s*)?\\s*(\\[)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=:)", + "beginCaptures": { + "1": { + "name": "storage.modifier.tsx" + }, + "2": { + "name": "meta.brace.square.tsx" + }, + "3": { + "name": "variable.parameter.tsx" + } + }, + "end": "(\\])\\s*(\\?\\s*)?|$", + "endCaptures": { + "1": { + "name": "meta.brace.square.tsx" + }, + "2": { + "name": "keyword.operator.optional.tsx" + } + }, + "patterns": [ + { + "include": "#type-annotation" + } + ] + }, + "indexer-mapped-type-declaration": { + "name": "meta.indexer.mappedtype.declaration.tsx", + "begin": "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([+-])?(readonly)\\s*)?\\s*(\\[)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s+(in)\\s+", + "beginCaptures": { + "1": { + "name": "keyword.operator.type.modifier.tsx" + }, + "2": { + "name": "storage.modifier.tsx" + }, + "3": { + "name": "meta.brace.square.tsx" + }, + "4": { + "name": "entity.name.type.tsx" + }, + "5": { + "name": "keyword.operator.expression.in.tsx" + } + }, + "end": "(\\])([+-])?\\s*(\\?\\s*)?|$", + "endCaptures": { + "1": { + "name": "meta.brace.square.tsx" + }, + "2": { + "name": "keyword.operator.type.modifier.tsx" + }, + "3": { + "name": "keyword.operator.optional.tsx" + } + }, + "patterns": [ + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+", + "captures": { + "1": { + "name": "keyword.control.as.tsx" + } + } + }, + { + "include": "#type" + } + ] + }, + "function-parameters": { + "name": "meta.parameters.tsx", + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.parameters.begin.tsx" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.parameters.end.tsx" + } + }, + "patterns": [ + { + "include": "#function-parameters-body" + } + ] + }, + "function-parameters-body": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#string" + }, + { + "include": "#decorator" + }, + { + "include": "#destructuring-parameter" + }, + { + "include": "#parameter-name" + }, + { + "include": "#parameter-type-annotation" + }, + { + "include": "#variable-initializer" + }, + { + "name": "punctuation.separator.parameter.tsx", + "match": "," + } + ] + }, + "class-declaration": { + "name": "meta.class.tsx", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(?:(abstract)\\s+)?\\b(class)\\b(?=\\s+|/[/*])", + "beginCaptures": { + "1": { + "name": "keyword.control.export.tsx" + }, + "2": { + "name": "storage.modifier.tsx" + }, + "3": { + "name": "storage.modifier.tsx" + }, + "4": { + "name": "storage.type.class.tsx" + } + }, + "end": "(?<=\\})", + "patterns": [ + { + "include": "#class-declaration-or-expression-patterns" + } + ] + }, + "class-expression": { + "name": "meta.class.tsx", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(class)\\b(?=\\s+|[<{]|\\/[\\/*])", + "beginCaptures": { + "1": { + "name": "storage.modifier.tsx" + }, + "2": { + "name": "storage.type.class.tsx" + } + }, + "end": "(?<=\\})", + "patterns": [ + { + "include": "#class-declaration-or-expression-patterns" + } + ] + }, + "class-declaration-or-expression-patterns": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#class-or-interface-heritage" + }, + { + "match": "[_$[:alpha:]][_$[:alnum:]]*", + "captures": { + "0": { + "name": "entity.name.type.class.tsx" + } + } + }, + { + "include": "#type-parameters" + }, + { + "include": "#class-or-interface-body" + } + ] + }, + "interface-declaration": { + "name": "meta.interface.tsx", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(?:(abstract)\\s+)?\\b(interface)\\b(?=\\s+|/[/*])", + "beginCaptures": { + "1": { + "name": "keyword.control.export.tsx" + }, + "2": { + "name": "storage.modifier.tsx" + }, + "3": { + "name": "storage.modifier.tsx" + }, + "4": { + "name": "storage.type.interface.tsx" + } + }, + "end": "(?<=\\})", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#class-or-interface-heritage" + }, + { + "match": "[_$[:alpha:]][_$[:alnum:]]*", + "captures": { + "0": { + "name": "entity.name.type.interface.tsx" + } + } + }, + { + "include": "#type-parameters" + }, + { + "include": "#class-or-interface-body" + } + ] + }, + "class-or-interface-heritage": { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(extends|implements)\\b)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "beginCaptures": { + "1": { + "name": "storage.modifier.tsx" + } + }, + "end": "(?=\\{)", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#class-or-interface-heritage" + }, + { + "include": "#type-parameters" + }, + { + "include": "#expressionWithoutIdentifiers" + }, + { + "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))(?=\\s*[_$[:alpha:]][_$[:alnum:]]*(\\s*\\??\\.\\s*[_$[:alpha:]][_$[:alnum:]]*)*\\s*)", + "captures": { + "1": { + "name": "entity.name.type.module.tsx" + }, + "2": { + "name": "punctuation.accessor.tsx" + }, + "3": { + "name": "punctuation.accessor.optional.tsx" + } + } + }, + { + "match": "([_$[:alpha:]][_$[:alnum:]]*)", + "captures": { + "1": { + "name": "entity.other.inherited-class.tsx" + } + } + }, + { + "include": "#expressionPunctuations" + } + ] + }, + "class-or-interface-body": { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.block.tsx" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.tsx" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#decorator" + }, + { + "begin": "(?<=:)\\s*", + "end": "(?=\\s|[;),}\\]:\\-\\+]|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "include": "#method-declaration" + }, + { + "include": "#indexer-declaration" + }, + { + "include": "#field-declaration" + }, + { + "include": "#string" + }, + { + "include": "#type-annotation" + }, + { + "include": "#variable-initializer" + }, + { + "include": "#access-modifier" + }, + { + "include": "#property-accessor" + }, + { + "include": "#async-modifier" + }, + { + "include": "#after-operator-block-as-object-literal" + }, + { + "include": "#decl-block" + }, + { + "include": "#expression" + }, + { + "include": "#punctuation-comma" + }, + { + "include": "#punctuation-semicolon" + } + ] + }, + "access-modifier": { + "name": "storage.modifier.tsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(abstract|declare|override|public|protected|private|readonly|static)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + "property-accessor": { + "name": "storage.type.property.tsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(accessor|get|set)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + "async-modifier": { + "name": "storage.modifier.async.tsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(async)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + "enum-declaration": { + "name": "meta.enum.declaration.tsx", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:\\b(const)\\s+)?\\b(enum)\\s+([_$[:alpha:]][_$[:alnum:]]*)", + "beginCaptures": { + "1": { + "name": "keyword.control.export.tsx" + }, + "2": { + "name": "storage.modifier.tsx" + }, + "3": { + "name": "storage.modifier.tsx" + }, + "4": { + "name": "storage.type.enum.tsx" + }, + "5": { + "name": "entity.name.type.enum.tsx" + } + }, + "end": "(?<=\\})", + "patterns": [ + { + "include": "#comment" + }, + { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.block.tsx" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.tsx" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "begin": "([_$[:alpha:]][_$[:alnum:]]*)", + "beginCaptures": { + "0": { + "name": "variable.other.enummember.tsx" + } + }, + "end": "(?=,|\\}|$)", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#variable-initializer" + } + ] + }, + { + "begin": "(?=((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\])))", + "end": "(?=,|\\}|$)", + "patterns": [ + { + "include": "#string" + }, + { + "include": "#array-literal" + }, + { + "include": "#comment" + }, + { + "include": "#variable-initializer" + } + ] + }, + { + "include": "#punctuation-comma" + } + ] + } + ] + }, + "namespace-declaration": { + "name": "meta.namespace.declaration.tsx", + "begin": "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(namespace|module)\\s+(?=[_$[:alpha:]\"'`]))", + "beginCaptures": { + "1": { + "name": "keyword.control.export.tsx" + }, + "2": { + "name": "storage.modifier.tsx" + }, + "3": { + "name": "storage.type.namespace.tsx" + } + }, + "end": "(?<=\\})|(?=;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#string" + }, + { + "name": "entity.name.type.module.tsx", + "match": "([_$[:alpha:]][_$[:alnum:]]*)" + }, + { + "include": "#punctuation-accessor" + }, + { + "include": "#decl-block" + } + ] + }, + "type-alias-declaration": { + "name": "meta.type.declaration.tsx", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(type)\\b\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*", + "beginCaptures": { + "1": { + "name": "keyword.control.export.tsx" + }, + "2": { + "name": "storage.modifier.tsx" + }, + "3": { + "name": "storage.type.type.tsx" + }, + "4": { + "name": "entity.name.type.alias.tsx" + } + }, + "end": "(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#type-parameters" + }, + { + "begin": "(=)\\s*(intrinsic)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "beginCaptures": { + "1": { + "name": "keyword.operator.assignment.tsx" + }, + "2": { + "name": "keyword.control.intrinsic.tsx" + } + }, + "end": "(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", + "patterns": [ + { + "include": "#type" + } + ] + }, + { + "begin": "(=)\\s*", + "beginCaptures": { + "1": { + "name": "keyword.operator.assignment.tsx" + } + }, + "end": "(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", + "patterns": [ + { + "include": "#type" + } + ] + } + ] + }, + "import-equals-declaration": { + "patterns": [ + { + "name": "meta.import-equals.external.tsx", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*(=)\\s*(require)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "keyword.control.export.tsx" + }, + "2": { + "name": "storage.modifier.tsx" + }, + "3": { + "name": "keyword.control.import.tsx" + }, + "4": { + "name": "keyword.control.type.tsx" + }, + "5": { + "name": "variable.other.readwrite.alias.tsx" + }, + "6": { + "name": "keyword.operator.assignment.tsx" + }, + "7": { + "name": "keyword.control.require.tsx" + }, + "8": { + "name": "meta.brace.round.tsx" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "meta.brace.round.tsx" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#string" + } + ] + }, + { + "name": "meta.import-equals.internal.tsx", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*(=)\\s*(?!require\\b)", + "beginCaptures": { + "1": { + "name": "keyword.control.export.tsx" + }, + "2": { + "name": "storage.modifier.tsx" + }, + "3": { + "name": "keyword.control.import.tsx" + }, + "4": { + "name": "keyword.control.type.tsx" + }, + "5": { + "name": "variable.other.readwrite.alias.tsx" + }, + "6": { + "name": "keyword.operator.assignment.tsx" + } + }, + "end": "(?=;|$|^)", + "patterns": [ + { + "include": "#single-line-comment-consuming-line-ending" + }, + { + "include": "#comment" + }, + { + "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", + "captures": { + "1": { + "name": "entity.name.type.module.tsx" + }, + "2": { + "name": "punctuation.accessor.tsx" + }, + "3": { + "name": "punctuation.accessor.optional.tsx" + } + } + }, + { + "name": "variable.other.readwrite.tsx", + "match": "([_$[:alpha:]][_$[:alnum:]]*)" + } + ] + } + ] + }, + "import-declaration": { + "name": "meta.import.tsx", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type)(?!\\s+from))?(?!\\s*[:\\(])(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "beginCaptures": { + "1": { + "name": "keyword.control.export.tsx" + }, + "2": { + "name": "storage.modifier.tsx" + }, + "3": { + "name": "keyword.control.import.tsx" + }, + "4": { + "name": "keyword.control.type.tsx" + } + }, + "end": "(?<!^import|[^\\._$[:alnum:]]import)(?=;|$|^)", + "patterns": [ + { + "include": "#single-line-comment-consuming-line-ending" + }, + { + "include": "#comment" + }, + { + "include": "#string" + }, + { + "begin": "(?<=^import|[^\\._$[:alnum:]]import)(?!\\s*[\"'])", + "end": "\\bfrom\\b", + "endCaptures": { + "0": { + "name": "keyword.control.from.tsx" + } + }, + "patterns": [ + { + "include": "#import-export-declaration" + } + ] + }, + { + "include": "#import-export-declaration" + } + ] + }, + "export-declaration": { + "patterns": [ + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)\\s+(as)\\s+(namespace)\\s+([_$[:alpha:]][_$[:alnum:]]*)", + "captures": { + "1": { + "name": "keyword.control.export.tsx" + }, + "2": { + "name": "keyword.control.as.tsx" + }, + "3": { + "name": "storage.type.namespace.tsx" + }, + "4": { + "name": "entity.name.type.module.tsx" + } + } + }, + { + "name": "meta.export.default.tsx", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)(?:\\s+(type))?(?:(?:\\s*(=))|(?:\\s+(default)(?=\\s+)))", + "beginCaptures": { + "1": { + "name": "keyword.control.export.tsx" + }, + "2": { + "name": "keyword.control.type.tsx" + }, + "3": { + "name": "keyword.operator.assignment.tsx" + }, + "4": { + "name": "keyword.control.default.tsx" + } + }, + "end": "(?=$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", + "patterns": [ + { + "include": "#interface-declaration" + }, + { + "include": "#expression" + } + ] + }, + { + "name": "meta.export.tsx", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)(?:\\s+(type))?\\b(?!(\\$)|(\\s*:))((?=\\s*[\\{*])|((?=\\s*[_$[:alpha:]][_$[:alnum:]]*(\\s|,))(?!\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", + "beginCaptures": { + "1": { + "name": "keyword.control.export.tsx" + }, + "2": { + "name": "keyword.control.type.tsx" + } + }, + "end": "(?=$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", + "patterns": [ + { + "include": "#import-export-declaration" + } + ] + } + ] + }, + "import-export-declaration": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#string" + }, + { + "include": "#import-export-block" + }, + { + "name": "keyword.control.from.tsx", + "match": "\\bfrom\\b" + }, + { + "include": "#import-export-assert-clause" + }, + { + "include": "#import-export-clause" + } + ] + }, + "import-export-assert-clause": { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(assert)\\s*(\\{)", + "beginCaptures": { + "1": { + "name": "keyword.control.assert.tsx" + }, + "2": { + "name": "punctuation.definition.block.tsx" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.tsx" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#string" + }, + { + "name": "meta.object-literal.key.tsx", + "match": "(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)" + }, + { + "name": "punctuation.separator.key-value.tsx", + "match": ":" + } + ] + }, + "import-export-block": { + "name": "meta.block.tsx", + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.block.tsx" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.tsx" + } + }, + "patterns": [ + { + "include": "#import-export-clause" + } + ] + }, + "import-export-clause": { + "patterns": [ + { + "include": "#comment" + }, + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(?:(\\btype)\\s+)?(?:(\\bdefault)|(\\*)|(\\b[_$[:alpha:]][_$[:alnum:]]*)))\\s+(as)\\s+(?:(default(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|([_$[:alpha:]][_$[:alnum:]]*))", + "captures": { + "1": { + "name": "keyword.control.type.tsx" + }, + "2": { + "name": "keyword.control.default.tsx" + }, + "3": { + "name": "constant.language.import-export-all.tsx" + }, + "4": { + "name": "variable.other.readwrite.tsx" + }, + "5": { + "name": "keyword.control.as.tsx" + }, + "6": { + "name": "keyword.control.default.tsx" + }, + "7": { + "name": "variable.other.readwrite.alias.tsx" + } + } + }, + { + "include": "#punctuation-comma" + }, + { + "name": "constant.language.import-export-all.tsx", + "match": "\\*" + }, + { + "name": "keyword.control.default.tsx", + "match": "\\b(default)\\b" + }, + { + "match": "(?:(\\btype)\\s+)?([_$[:alpha:]][_$[:alnum:]]*)", + "captures": { + "1": { + "name": "keyword.control.type.tsx" + }, + "2": { + "name": "variable.other.readwrite.alias.tsx" + } + } + } + ] + }, + "switch-statement": { + "name": "switch-statement.expr.tsx", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=\\bswitch\\s*\\()", + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.tsx" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "name": "switch-expression.expr.tsx", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(switch)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "keyword.control.switch.tsx" + }, + "2": { + "name": "meta.brace.round.tsx" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "meta.brace.round.tsx" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "name": "switch-block.expr.tsx", + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.block.tsx" + } + }, + "end": "(?=\\})", + "patterns": [ + { + "name": "case-clause.expr.tsx", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(case|default(?=:))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "beginCaptures": { + "1": { + "name": "keyword.control.switch.tsx" + } + }, + "end": "(?=:)", + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "begin": "(:)\\s*(\\{)", + "beginCaptures": { + "1": { + "name": "case-clause.expr.tsx punctuation.definition.section.case-statement.tsx" + }, + "2": { + "name": "meta.block.tsx punctuation.definition.block.tsx" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "meta.block.tsx punctuation.definition.block.tsx" + } + }, + "contentName": "meta.block.tsx", + "patterns": [ + { + "include": "#statements" + } + ] + }, + { + "match": "(:)", + "captures": { + "0": { + "name": "case-clause.expr.tsx punctuation.definition.section.case-statement.tsx" + } + } + }, + { + "include": "#statements" + } + ] + } + ] + }, + "for-loop": { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))for(?=((\\s+|(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*))await)?\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)?(\\())", + "beginCaptures": { + "0": { + "name": "keyword.control.loop.tsx" + } + }, + "end": "(?<=\\))", + "patterns": [ + { + "include": "#comment" + }, + { + "name": "keyword.control.loop.tsx", + "match": "await" + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "meta.brace.round.tsx" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "meta.brace.round.tsx" + } + }, + "patterns": [ + { + "include": "#var-expr" + }, + { + "include": "#expression" + }, + { + "include": "#punctuation-semicolon" + } + ] + } + ] + }, + "if-statement": { + "patterns": [ + { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=\\bif\\s*(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))\\s*(?!\\{))", + "end": "(?=;|$|\\})", + "patterns": [ + { + "include": "#comment" + }, + { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(if)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "keyword.control.conditional.tsx" + }, + "2": { + "name": "meta.brace.round.tsx" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "meta.brace.round.tsx" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "name": "string.regexp.tsx", + "begin": "(?<=\\))\\s*\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.tsx" + } + }, + "end": "(/)([dgimsuy]*)", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.tsx" + }, + "2": { + "name": "keyword.other.tsx" + } + }, + "patterns": [ + { + "include": "#regexp" + } + ] + }, + { + "include": "#statements" + } + ] + } + ] + }, + "decl-block": { + "name": "meta.block.tsx", + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.block.tsx" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.tsx" + } + }, + "patterns": [ + { + "include": "#statements" + } + ] + }, + "after-operator-block-as-object-literal": { + "name": "meta.objectliteral.tsx", + "begin": "(?<!\\+\\+|--)(?<=[:=(,\\[?+!>]|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^yield|[^\\._$[:alnum:]]yield|^throw|[^\\._$[:alnum:]]throw|^in|[^\\._$[:alnum:]]in|^of|[^\\._$[:alnum:]]of|^typeof|[^\\._$[:alnum:]]typeof|&&|\\|\\||\\*)\\s*(\\{)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.block.tsx" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.tsx" + } + }, + "patterns": [ + { + "include": "#object-member" + } + ] + }, + "object-literal": { + "name": "meta.objectliteral.tsx", + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.block.tsx" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.tsx" + } + }, + "patterns": [ + { + "include": "#object-member" + } + ] + }, + "object-member": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#object-literal-method-declaration" + }, + { + "name": "meta.object.member.tsx meta.object-literal.key.tsx", + "begin": "(?=\\[)", + "end": "(?=:)|((?<=[\\]])(?=\\s*[\\(\\<]))", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#array-literal" + } + ] + }, + { + "name": "meta.object.member.tsx meta.object-literal.key.tsx", + "begin": "(?=[\\'\\\"\\`])", + "end": "(?=:)|((?<=[\\'\\\"\\`])(?=((\\s*[\\(\\<,}])|(\\s+(as|satisifies)\\s+))))", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#string" + } + ] + }, + { + "name": "meta.object.member.tsx meta.object-literal.key.tsx", + "begin": "(?x)(?=(\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$)))", + "end": "(?=:)|(?=\\s*([\\(\\<,}])|(\\s+as|satisifies\\s+))", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#numeric-literal" + } + ] + }, + { + "name": "meta.method.declaration.tsx", + "begin": "(?<=[\\]\\'\\\"\\`])(?=\\s*[\\(\\<])", + "end": "(?=\\}|;|,)|(?<=\\})", + "patterns": [ + { + "include": "#function-body" + } + ] + }, + { + "name": "meta.object.member.tsx", + "match": "(?![_$[:alpha:]])([[:digit:]]+)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)", + "captures": { + "0": { + "name": "meta.object-literal.key.tsx" + }, + "1": { + "name": "constant.numeric.decimal.tsx" + } + } + }, + { + "name": "meta.object.member.tsx", + "match": "(?x)(?:([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/)*\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", + "captures": { + "0": { + "name": "meta.object-literal.key.tsx" + }, + "1": { + "name": "entity.name.function.tsx" + } + } + }, + { + "name": "meta.object.member.tsx", + "match": "(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)", + "captures": { + "0": { + "name": "meta.object-literal.key.tsx" + } + } + }, + { + "name": "meta.object.member.tsx", + "begin": "\\.\\.\\.", + "beginCaptures": { + "0": { + "name": "keyword.operator.spread.tsx" + } + }, + "end": "(?=,|\\})", + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "name": "meta.object.member.tsx", + "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=,|\\}|$|\\/\\/|\\/\\*)", + "captures": { + "1": { + "name": "variable.other.readwrite.tsx" + } + } + }, + { + "name": "meta.object.member.tsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*([,}]|$))", + "captures": { + "1": { + "name": "keyword.control.as.tsx" + }, + "2": { + "name": "storage.modifier.tsx" + } + } + }, + { + "name": "meta.object.member.tsx", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(as)|(satisfies))\\s+", + "beginCaptures": { + "1": { + "name": "keyword.control.as.tsx" + }, + "2": { + "name": "keyword.control.satisfies.tsx" + } + }, + "end": "(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|^|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as|satisifies)\\s+))", + "patterns": [ + { + "include": "#type" + } + ] + }, + { + "name": "meta.object.member.tsx", + "begin": "(?=[_$[:alpha:]][_$[:alnum:]]*\\s*=)", + "end": "(?=,|\\}|$|\\/\\/|\\/\\*)", + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "name": "meta.object.member.tsx", + "begin": ":", + "beginCaptures": { + "0": { + "name": "meta.object-literal.key.tsx punctuation.separator.key-value.tsx" + } + }, + "end": "(?=,|\\})", + "patterns": [ + { + "begin": "(?<=:)\\s*(async)?(?=\\s*(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", + "beginCaptures": { + "1": { + "name": "storage.modifier.async.tsx" + } + }, + "end": "(?<=\\))", + "patterns": [ + { + "include": "#type-parameters" + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "meta.brace.round.tsx" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "meta.brace.round.tsx" + } + }, + "patterns": [ + { + "include": "#expression-inside-possibly-arrow-parens" + } + ] + } + ] + }, + { + "begin": "(?<=:)\\s*(async)?\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", + "beginCaptures": { + "1": { + "name": "storage.modifier.async.tsx" + }, + "2": { + "name": "meta.brace.round.tsx" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "meta.brace.round.tsx" + } + }, + "patterns": [ + { + "include": "#expression-inside-possibly-arrow-parens" + } + ] + }, + { + "begin": "(?<=:)\\s*(async)?\\s*(?=\\<\\s*$)", + "beginCaptures": { + "1": { + "name": "storage.modifier.async.tsx" + } + }, + "end": "(?<=\\>)", + "patterns": [ + { + "include": "#type-parameters" + } + ] + }, + { + "begin": "(?<=\\>)\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", + "beginCaptures": { + "1": { + "name": "meta.brace.round.tsx" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "meta.brace.round.tsx" + } + }, + "patterns": [ + { + "include": "#expression-inside-possibly-arrow-parens" + } + ] + }, + { + "include": "#possibly-arrow-return-type" + }, + { + "include": "#expression" + } + ] + }, + { + "include": "#punctuation-comma" + }, + { + "include": "#decl-block" + } + ] + }, + "ternary-expression": { + "begin": "(?!\\?\\.\\s*[^[:digit:]])(\\?)(?!\\?)", + "beginCaptures": { + "1": { + "name": "keyword.operator.ternary.tsx" + } + }, + "end": "\\s*(:)", + "endCaptures": { + "1": { + "name": "keyword.operator.ternary.tsx" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + "function-call": { + "patterns": [ + { + "begin": "(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())", + "end": "(?<=\\))(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())", + "patterns": [ + { + "name": "meta.function-call.tsx", + "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))", + "end": "(?=\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())", + "patterns": [ + { + "include": "#function-call-target" + } + ] + }, + { + "include": "#comment" + }, + { + "include": "#function-call-optionals" + }, + { + "include": "#type-arguments" + }, + { + "include": "#paren-expression" + } + ] + }, + { + "begin": "(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))", + "end": "(?<=\\>)(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))", + "patterns": [ + { + "name": "meta.function-call.tsx", + "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))", + "end": "(?=(<\\s*[\\{\\[\\(]\\s*$))", + "patterns": [ + { + "include": "#function-call-target" + } + ] + }, + { + "include": "#comment" + }, + { + "include": "#function-call-optionals" + }, + { + "include": "#type-arguments" + } + ] + } + ] + }, + "function-call-target": { + "patterns": [ + { + "include": "#support-function-call-identifiers" + }, + { + "name": "entity.name.function.tsx", + "match": "(\\#?[_$[:alpha:]][_$[:alnum:]]*)" + } + ] + }, + "function-call-optionals": { + "patterns": [ + { + "name": "meta.function-call.tsx punctuation.accessor.optional.tsx", + "match": "\\?\\." + }, + { + "name": "meta.function-call.tsx keyword.operator.definiteassignment.tsx", + "match": "\\!" + } + ] + }, + "support-function-call-identifiers": { + "patterns": [ + { + "include": "#literal" + }, + { + "include": "#support-objects" + }, + { + "include": "#object-identifiers" + }, + { + "include": "#punctuation-accessor" + }, + { + "name": "keyword.operator.expression.import.tsx", + "match": "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*[\\(]\\s*[\\\"\\'\\`]))" + } + ] + }, + "new-expr": { + "name": "new.expr.tsx", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(new)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "beginCaptures": { + "1": { + "name": "keyword.operator.new.tsx" + } + }, + "end": "(?<=\\))|(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))new(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))function((\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\s*[\\(]))))", + "patterns": [ + { + "include": "#expression" + } + ] + }, + "instanceof-expr": { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(instanceof)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "beginCaptures": { + "1": { + "name": "keyword.operator.expression.instanceof.tsx" + } + }, + "end": "(?<=\\))|(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|(===|!==|==|!=)|(([\\&\\~\\^\\|]\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s+instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))function((\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\s*[\\(]))))", + "patterns": [ + { + "include": "#type" + } + ] + }, + "paren-expression-possibly-arrow": { + "patterns": [ + { + "begin": "(?<=[(=,])\\s*(async)?(?=\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", + "beginCaptures": { + "1": { + "name": "storage.modifier.async.tsx" + } + }, + "end": "(?<=\\))", + "patterns": [ + { + "include": "#paren-expression-possibly-arrow-with-typeparameters" + } + ] + }, + { + "begin": "(?<=[(=,]|=>|^return|[^\\._$[:alnum:]]return)\\s*(async)?(?=\\s*((((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\()|(<)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)))\\s*$)", + "beginCaptures": { + "1": { + "name": "storage.modifier.async.tsx" + } + }, + "end": "(?<=\\))", + "patterns": [ + { + "include": "#paren-expression-possibly-arrow-with-typeparameters" + } + ] + }, + { + "include": "#possibly-arrow-return-type" + } + ] + }, + "paren-expression-possibly-arrow-with-typeparameters": { + "patterns": [ + { + "include": "#type-parameters" + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "meta.brace.round.tsx" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "meta.brace.round.tsx" + } + }, + "patterns": [ + { + "include": "#expression-inside-possibly-arrow-parens" + } + ] + } + ] + }, + "expression-inside-possibly-arrow-parens": { + "patterns": [ + { + "include": "#expressionWithoutIdentifiers" + }, + { + "include": "#comment" + }, + { + "include": "#string" + }, + { + "include": "#decorator" + }, + { + "include": "#destructuring-parameter" + }, + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)", + "captures": { + "1": { + "name": "storage.modifier.tsx" + } + } + }, + { + "match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", + "captures": { + "1": { + "name": "storage.modifier.tsx" + }, + "2": { + "name": "keyword.operator.rest.tsx" + }, + "3": { + "name": "entity.name.function.tsx variable.language.this.tsx" + }, + "4": { + "name": "entity.name.function.tsx" + }, + "5": { + "name": "keyword.operator.optional.tsx" + } + } + }, + { + "match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*[:,]|$)", + "captures": { + "1": { + "name": "storage.modifier.tsx" + }, + "2": { + "name": "keyword.operator.rest.tsx" + }, + "3": { + "name": "variable.parameter.tsx variable.language.this.tsx" + }, + "4": { + "name": "variable.parameter.tsx" + }, + "5": { + "name": "keyword.operator.optional.tsx" + } + } + }, + { + "include": "#type-annotation" + }, + { + "include": "#variable-initializer" + }, + { + "name": "punctuation.separator.parameter.tsx", + "match": "," + }, + { + "include": "#identifiers" + }, + { + "include": "#expressionPunctuations" + } + ] + }, + "paren-expression": { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "meta.brace.round.tsx" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "meta.brace.round.tsx" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + "cast": { + "patterns": [ + { + "include": "#jsx" + } + ] + }, + "expression-operators": { + "patterns": [ + { + "name": "keyword.control.flow.tsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(await)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(yield)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?=\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*\\*)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.tsx" + } + }, + "end": "\\*", + "endCaptures": { + "0": { + "name": "keyword.generator.asterisk.tsx" + } + }, + "patterns": [ + { + "include": "#comment" + } + ] + }, + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(yield)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s*(\\*))?", + "captures": { + "1": { + "name": "keyword.control.flow.tsx" + }, + "2": { + "name": "keyword.generator.asterisk.tsx" + } + } + }, + { + "name": "keyword.operator.expression.delete.tsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))delete(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "name": "keyword.operator.expression.in.tsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))in(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()" + }, + { + "name": "keyword.operator.expression.of.tsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))of(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()" + }, + { + "name": "keyword.operator.expression.instanceof.tsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "name": "keyword.operator.new.tsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))new(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "include": "#typeof-operator" + }, + { + "name": "keyword.operator.expression.void.tsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))void(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*($|[;,:})\\]]))", + "captures": { + "1": { + "name": "keyword.control.as.tsx" + }, + "2": { + "name": "storage.modifier.tsx" + } + } + }, + { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(as)|(satisfies))\\s+", + "beginCaptures": { + "1": { + "name": "keyword.control.as.tsx" + }, + "2": { + "name": "keyword.control.satisfies.tsx" + } + }, + "end": "(?=^|[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as|satisfies)\\s+)|(\\s+\\<))", + "patterns": [ + { + "include": "#type" + } + ] + }, + { + "name": "keyword.operator.spread.tsx", + "match": "\\.\\.\\." + }, + { + "name": "keyword.operator.assignment.compound.tsx", + "match": "\\*=|(?<!\\()/=|%=|\\+=|\\-=" + }, + { + "name": "keyword.operator.assignment.compound.bitwise.tsx", + "match": "\\&=|\\^=|<<=|>>=|>>>=|\\|=" + }, + { + "name": "keyword.operator.bitwise.shift.tsx", + "match": "<<|>>>|>>" + }, + { + "name": "keyword.operator.comparison.tsx", + "match": "===|!==|==|!=" + }, + { + "name": "keyword.operator.relational.tsx", + "match": "<=|>=|<>|<|>" + }, + { + "match": "(?<=[_$[:alnum:]])(\\!)\\s*(?:(/=)|(?:(/)(?![/*])))", + "captures": { + "1": { + "name": "keyword.operator.logical.tsx" + }, + "2": { + "name": "keyword.operator.assignment.compound.tsx" + }, + "3": { + "name": "keyword.operator.arithmetic.tsx" + } + } + }, + { + "name": "keyword.operator.logical.tsx", + "match": "\\!|&&|\\|\\||\\?\\?" + }, + { + "name": "keyword.operator.bitwise.tsx", + "match": "\\&|~|\\^|\\|" + }, + { + "name": "keyword.operator.assignment.tsx", + "match": "\\=" + }, + { + "name": "keyword.operator.decrement.tsx", + "match": "--" + }, + { + "name": "keyword.operator.increment.tsx", + "match": "\\+\\+" + }, + { + "name": "keyword.operator.arithmetic.tsx", + "match": "%|\\*|/|-|\\+" + }, + { + "begin": "(?<=[_$[:alnum:])\\]])\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)+(?:(/=)|(?:(/)(?![/*]))))", + "end": "(?:(/=)|(?:(/)(?!\\*([^\\*]|(\\*[^\\/]))*\\*\\/)))", + "endCaptures": { + "1": { + "name": "keyword.operator.assignment.compound.tsx" + }, + "2": { + "name": "keyword.operator.arithmetic.tsx" + } + }, + "patterns": [ + { + "include": "#comment" + } + ] + }, + { + "match": "(?<=[_$[:alnum:])\\]])\\s*(?:(/=)|(?:(/)(?![/*])))", + "captures": { + "1": { + "name": "keyword.operator.assignment.compound.tsx" + }, + "2": { + "name": "keyword.operator.arithmetic.tsx" + } + } + } + ] + }, + "typeof-operator": { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))typeof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "beginCaptures": { + "0": { + "name": "keyword.operator.expression.typeof.tsx" + } + }, + "end": "(?=[,);}\\]=>:&|{\\?]|(extends\\s+)|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", + "patterns": [ + { + "include": "#type-arguments" + }, + { + "include": "#expression" + } + ] + }, + "literal": { + "patterns": [ + { + "include": "#numeric-literal" + }, + { + "include": "#boolean-literal" + }, + { + "include": "#null-literal" + }, + { + "include": "#undefined-literal" + }, + { + "include": "#numericConstant-literal" + }, + { + "include": "#array-literal" + }, + { + "include": "#this-literal" + }, + { + "include": "#super-literal" + } + ] + }, + "array-literal": { + "name": "meta.array.literal.tsx", + "begin": "\\s*(\\[)", + "beginCaptures": { + "1": { + "name": "meta.brace.square.tsx" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "meta.brace.square.tsx" + } + }, + "patterns": [ + { + "include": "#expression" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "numeric-literal": { + "patterns": [ + { + "name": "constant.numeric.hex.tsx", + "match": "\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$)", + "captures": { + "1": { + "name": "storage.type.numeric.bigint.tsx" + } + } + }, + { + "name": "constant.numeric.binary.tsx", + "match": "\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$)", + "captures": { + "1": { + "name": "storage.type.numeric.bigint.tsx" + } + } + }, + { + "name": "constant.numeric.octal.tsx", + "match": "\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$)", + "captures": { + "1": { + "name": "storage.type.numeric.bigint.tsx" + } + } + }, + { + "match": "(?x)\n(?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$)", + "captures": { + "0": { + "name": "constant.numeric.decimal.tsx" + }, + "1": { + "name": "meta.delimiter.decimal.period.tsx" + }, + "2": { + "name": "storage.type.numeric.bigint.tsx" + }, + "3": { + "name": "meta.delimiter.decimal.period.tsx" + }, + "4": { + "name": "storage.type.numeric.bigint.tsx" + }, + "5": { + "name": "meta.delimiter.decimal.period.tsx" + }, + "6": { + "name": "storage.type.numeric.bigint.tsx" + }, + "7": { + "name": "storage.type.numeric.bigint.tsx" + }, + "8": { + "name": "meta.delimiter.decimal.period.tsx" + }, + "9": { + "name": "storage.type.numeric.bigint.tsx" + }, + "10": { + "name": "meta.delimiter.decimal.period.tsx" + }, + "11": { + "name": "storage.type.numeric.bigint.tsx" + }, + "12": { + "name": "meta.delimiter.decimal.period.tsx" + }, + "13": { + "name": "storage.type.numeric.bigint.tsx" + }, + "14": { + "name": "storage.type.numeric.bigint.tsx" + } + } + } + ] + }, + "boolean-literal": { + "patterns": [ + { + "name": "constant.language.boolean.true.tsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))true(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "name": "constant.language.boolean.false.tsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))false(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + } + ] + }, + "null-literal": { + "name": "constant.language.null.tsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))null(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + "this-literal": { + "name": "variable.language.this.tsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))this\\b(?!\\$)" + }, + "super-literal": { + "name": "variable.language.super.tsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))super\\b(?!\\$)" + }, + "undefined-literal": { + "name": "constant.language.undefined.tsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))undefined(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + "numericConstant-literal": { + "patterns": [ + { + "name": "constant.language.nan.tsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))NaN(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "name": "constant.language.infinity.tsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Infinity(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + } + ] + }, + "support-objects": { + "patterns": [ + { + "name": "variable.language.arguments.tsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(arguments)\\b(?!\\$)" + }, + { + "name": "support.class.promise.tsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(Promise)\\b(?!\\$)" + }, + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(import)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(meta)\\b(?!\\$)", + "captures": { + "1": { + "name": "keyword.control.import.tsx" + }, + "2": { + "name": "punctuation.accessor.tsx" + }, + "3": { + "name": "punctuation.accessor.optional.tsx" + }, + "4": { + "name": "support.variable.property.importmeta.tsx" + } + } + }, + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(new)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(target)\\b(?!\\$)", + "captures": { + "1": { + "name": "keyword.operator.new.tsx" + }, + "2": { + "name": "punctuation.accessor.tsx" + }, + "3": { + "name": "punctuation.accessor.optional.tsx" + }, + "4": { + "name": "support.variable.property.target.tsx" + } + } + }, + { + "match": "(?x) (?:(\\.)|(\\?\\.(?!\\s*[[:digit:]]))) \\s* (?:\n (?:(constructor|length|prototype|__proto__)\\b(?!\\$|\\s*(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\())\n |\n (?:(EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\\b(?!\\$)))", + "captures": { + "1": { + "name": "punctuation.accessor.tsx" + }, + "2": { + "name": "punctuation.accessor.optional.tsx" + }, + "3": { + "name": "support.variable.property.tsx" + }, + "4": { + "name": "support.constant.tsx" + } + } + }, + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(exports)|(module)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))(exports|id|filename|loaded|parent|children))?)\\b(?!\\$)", + "captures": { + "1": { + "name": "support.type.object.module.tsx" + }, + "2": { + "name": "support.type.object.module.tsx" + }, + "3": { + "name": "punctuation.accessor.tsx" + }, + "4": { + "name": "punctuation.accessor.optional.tsx" + }, + "5": { + "name": "support.type.object.module.tsx" + } + } + } + ] + }, + "identifiers": { + "patterns": [ + { + "include": "#object-identifiers" + }, + { + "match": "(?x)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*)?([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n))", + "captures": { + "1": { + "name": "punctuation.accessor.tsx" + }, + "2": { + "name": "punctuation.accessor.optional.tsx" + }, + "3": { + "name": "entity.name.function.tsx" + } + } + }, + { + "match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])", + "captures": { + "1": { + "name": "punctuation.accessor.tsx" + }, + "2": { + "name": "punctuation.accessor.optional.tsx" + }, + "3": { + "name": "variable.other.constant.property.tsx" + } + } + }, + { + "match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)", + "captures": { + "1": { + "name": "punctuation.accessor.tsx" + }, + "2": { + "name": "punctuation.accessor.optional.tsx" + }, + "3": { + "name": "variable.other.property.tsx" + } + } + }, + { + "name": "variable.other.constant.tsx", + "match": "([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])" + }, + { + "name": "variable.other.readwrite.tsx", + "match": "[_$[:alpha:]][_$[:alnum:]]*" + } + ] + }, + "object-identifiers": { + "patterns": [ + { + "name": "support.class.tsx", + "match": "([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\\??\\.\\s*prototype\\b(?!\\$))" + }, + { + "match": "(?x)(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(?:\n (\\#?[[:upper:]][_$[:digit:][:upper:]]*) |\n (\\#?[_$[:alpha:]][_$[:alnum:]]*)\n)(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)", + "captures": { + "1": { + "name": "punctuation.accessor.tsx" + }, + "2": { + "name": "punctuation.accessor.optional.tsx" + }, + "3": { + "name": "variable.other.constant.object.property.tsx" + }, + "4": { + "name": "variable.other.object.property.tsx" + } + } + }, + { + "match": "(?x)(?:\n ([[:upper:]][_$[:digit:][:upper:]]*) |\n ([_$[:alpha:]][_$[:alnum:]]*)\n)(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)", + "captures": { + "1": { + "name": "variable.other.constant.object.tsx" + }, + "2": { + "name": "variable.other.object.tsx" + } + } + } + ] + }, + "type-annotation": { + "patterns": [ + { + "name": "meta.type.annotation.tsx", + "begin": "(:)(?=\\s*\\S)", + "beginCaptures": { + "1": { + "name": "keyword.operator.type.annotation.tsx" + } + }, + "end": "(?<![:|&])(?!\\s*[|&]\\s+)((?=^|[,);\\}\\]]|//)|(?==[^>])|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))", + "patterns": [ + { + "include": "#type" + } + ] + }, + { + "name": "meta.type.annotation.tsx", + "begin": "(:)", + "beginCaptures": { + "1": { + "name": "keyword.operator.type.annotation.tsx" + } + }, + "end": "(?<![:|&])((?=[,);\\}\\]]|\\/\\/)|(?==[^>])|(?=^\\s*$)|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))", + "patterns": [ + { + "include": "#type" + } + ] + } + ] + }, + "parameter-type-annotation": { + "patterns": [ + { + "name": "meta.type.annotation.tsx", + "begin": "(:)", + "beginCaptures": { + "1": { + "name": "keyword.operator.type.annotation.tsx" + } + }, + "end": "(?=[,)])|(?==[^>])", + "patterns": [ + { + "include": "#type" + } + ] + } + ] + }, + "return-type": { + "patterns": [ + { + "name": "meta.return.type.tsx", + "begin": "(?<=\\))\\s*(:)(?=\\s*\\S)", + "beginCaptures": { + "1": { + "name": "keyword.operator.type.annotation.tsx" + } + }, + "end": "(?<![:|&])(?=$|^|[{};,]|//)", + "patterns": [ + { + "include": "#return-type-core" + } + ] + }, + { + "name": "meta.return.type.tsx", + "begin": "(?<=\\))\\s*(:)", + "beginCaptures": { + "1": { + "name": "keyword.operator.type.annotation.tsx" + } + }, + "end": "(?<![:|&])((?=[{};,]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", + "patterns": [ + { + "include": "#return-type-core" + } + ] + } + ] + }, + "return-type-core": { + "patterns": [ + { + "include": "#comment" + }, + { + "begin": "(?<=[:|&])(?=\\s*\\{)", + "end": "(?<=\\})", + "patterns": [ + { + "include": "#type-object" + } + ] + }, + { + "include": "#type-predicate-operator" + }, + { + "include": "#type" + } + ] + }, + "arrow-return-type": { + "name": "meta.return.type.arrow.tsx", + "begin": "(?<=\\))\\s*(:)", + "beginCaptures": { + "1": { + "name": "keyword.operator.type.annotation.tsx" + } + }, + "end": "(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))", + "patterns": [ + { + "include": "#arrow-return-type-body" + } + ] + }, + "possibly-arrow-return-type": { + "begin": "(?<=\\)|^)\\s*(:)(?=\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*=>)", + "beginCaptures": { + "1": { + "name": "meta.arrow.tsx meta.return.type.arrow.tsx keyword.operator.type.annotation.tsx" + } + }, + "end": "(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))", + "contentName": "meta.arrow.tsx meta.return.type.arrow.tsx", + "patterns": [ + { + "include": "#arrow-return-type-body" + } + ] + }, + "arrow-return-type-body": { + "patterns": [ + { + "begin": "(?<=[:])(?=\\s*\\{)", + "end": "(?<=\\})", + "patterns": [ + { + "include": "#type-object" + } + ] + }, + { + "include": "#type-predicate-operator" + }, + { + "include": "#type" + } + ] + }, + "type-parameters": { + "name": "meta.type.parameters.tsx", + "begin": "(<)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.typeparameters.begin.tsx" + } + }, + "end": "(>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.typeparameters.end.tsx" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "name": "storage.modifier.tsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends|in|out|const)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "include": "#type" + }, + { + "include": "#punctuation-comma" + }, + { + "name": "keyword.operator.assignment.tsx", + "match": "(=)(?!>)" + } + ] + }, + "type-arguments": { + "name": "meta.type.parameters.tsx", + "begin": "\\<", + "beginCaptures": { + "0": { + "name": "punctuation.definition.typeparameters.begin.tsx" + } + }, + "end": "\\>", + "endCaptures": { + "0": { + "name": "punctuation.definition.typeparameters.end.tsx" + } + }, + "patterns": [ + { + "include": "#type-arguments-body" + } + ] + }, + "type-arguments-body": { + "patterns": [ + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(_)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "captures": { + "0": { + "name": "keyword.operator.type.tsx" + } + } + }, + { + "include": "#type" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "type": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#type-string" + }, + { + "include": "#numeric-literal" + }, + { + "include": "#type-primitive" + }, + { + "include": "#type-builtin-literals" + }, + { + "include": "#type-parameters" + }, + { + "include": "#type-tuple" + }, + { + "include": "#type-object" + }, + { + "include": "#type-operators" + }, + { + "include": "#type-conditional" + }, + { + "include": "#type-fn-type-parameters" + }, + { + "include": "#type-paren-or-function-parameters" + }, + { + "include": "#type-function-return-type" + }, + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", + "captures": { + "1": { + "name": "storage.modifier.tsx" + } + } + }, + { + "include": "#type-name" + } + ] + }, + "type-primitive": { + "name": "support.type.primitive.tsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(string|number|bigint|boolean|symbol|any|void|never|unknown)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + "type-builtin-literals": { + "name": "support.type.builtin.tsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + "type-tuple": { + "name": "meta.type.tuple.tsx", + "begin": "\\[", + "beginCaptures": { + "0": { + "name": "meta.brace.square.tsx" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "meta.brace.square.tsx" + } + }, + "patterns": [ + { + "name": "keyword.operator.rest.tsx", + "match": "\\.\\.\\." + }, + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)", + "captures": { + "1": { + "name": "entity.name.label.tsx" + }, + "2": { + "name": "keyword.operator.optional.tsx" + }, + "3": { + "name": "punctuation.separator.label.tsx" + } + } + }, + { + "include": "#type" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "type-object": { + "name": "meta.object.type.tsx", + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.block.tsx" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.tsx" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#method-declaration" + }, + { + "include": "#indexer-declaration" + }, + { + "include": "#indexer-mapped-type-declaration" + }, + { + "include": "#field-declaration" + }, + { + "include": "#type-annotation" + }, + { + "begin": "\\.\\.\\.", + "beginCaptures": { + "0": { + "name": "keyword.operator.spread.tsx" + } + }, + "end": "(?=\\}|;|,|$)|(?<=\\})", + "patterns": [ + { + "include": "#type" + } + ] + }, + { + "include": "#punctuation-comma" + }, + { + "include": "#punctuation-semicolon" + }, + { + "include": "#type" + } + ] + }, + "type-conditional": { + "patterns": [ + { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends)\\s+", + "beginCaptures": { + "1": { + "name": "storage.modifier.tsx" + } + }, + "end": "(?<=:)", + "patterns": [ + { + "begin": "\\?", + "beginCaptures": { + "0": { + "name": "keyword.operator.ternary.tsx" + } + }, + "end": ":", + "endCaptures": { + "0": { + "name": "keyword.operator.ternary.tsx" + } + }, + "patterns": [ + { + "include": "#type" + } + ] + }, + { + "include": "#type" + } + ] + } + ] + }, + "type-paren-or-function-parameters": { + "name": "meta.type.paren.cover.tsx", + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "meta.brace.round.tsx" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "meta.brace.round.tsx" + } + }, + "patterns": [ + { + "match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=\\s*(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))", + "captures": { + "1": { + "name": "storage.modifier.tsx" + }, + "2": { + "name": "keyword.operator.rest.tsx" + }, + "3": { + "name": "entity.name.function.tsx variable.language.this.tsx" + }, + "4": { + "name": "entity.name.function.tsx" + }, + "5": { + "name": "keyword.operator.optional.tsx" + } + } + }, + { + "match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=:)", + "captures": { + "1": { + "name": "storage.modifier.tsx" + }, + "2": { + "name": "keyword.operator.rest.tsx" + }, + "3": { + "name": "variable.parameter.tsx variable.language.this.tsx" + }, + "4": { + "name": "variable.parameter.tsx" + }, + "5": { + "name": "keyword.operator.optional.tsx" + } + } + }, + { + "include": "#type-annotation" + }, + { + "name": "punctuation.separator.parameter.tsx", + "match": "," + }, + { + "include": "#type" + } + ] + }, + "type-fn-type-parameters": { + "patterns": [ + { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b(?=\\s*\\<)", + "beginCaptures": { + "1": { + "name": "meta.type.constructor.tsx storage.modifier.tsx" + }, + "2": { + "name": "meta.type.constructor.tsx keyword.control.new.tsx" + } + }, + "end": "(?<=>)", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#type-parameters" + } + ] + }, + { + "name": "meta.type.constructor.tsx", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b\\s*(?=\\()", + "beginCaptures": { + "1": { + "name": "storage.modifier.tsx" + }, + "2": { + "name": "keyword.control.new.tsx" + } + }, + "end": "(?<=\\))", + "patterns": [ + { + "include": "#function-parameters" + } + ] + }, + { + "name": "meta.type.function.tsx", + "begin": "(?x)(\n (?=\n [(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n )\n )\n)", + "end": "(?<=\\))", + "patterns": [ + { + "include": "#function-parameters" + } + ] + } + ] + }, + "type-function-return-type": { + "patterns": [ + { + "name": "meta.type.function.return.tsx", + "begin": "(=>)(?=\\s*\\S)", + "beginCaptures": { + "1": { + "name": "storage.type.function.arrow.tsx" + } + }, + "end": "(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>:\\?]|//|$)", + "patterns": [ + { + "include": "#type-function-return-type-core" + } + ] + }, + { + "name": "meta.type.function.return.tsx", + "begin": "=>", + "beginCaptures": { + "0": { + "name": "storage.type.function.arrow.tsx" + } + }, + "end": "(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;:\\?>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", + "patterns": [ + { + "include": "#type-function-return-type-core" + } + ] + } + ] + }, + "type-function-return-type-core": { + "patterns": [ + { + "include": "#comment" + }, + { + "begin": "(?<==>)(?=\\s*\\{)", + "end": "(?<=\\})", + "patterns": [ + { + "include": "#type-object" + } + ] + }, + { + "include": "#type-predicate-operator" + }, + { + "include": "#type" + } + ] + }, + "type-operators": { + "patterns": [ + { + "include": "#typeof-operator" + }, + { + "include": "#type-infer" + }, + { + "begin": "([&|])(?=\\s*\\{)", + "beginCaptures": { + "0": { + "name": "keyword.operator.type.tsx" + } + }, + "end": "(?<=\\})", + "patterns": [ + { + "include": "#type-object" + } + ] + }, + { + "begin": "[&|]", + "beginCaptures": { + "0": { + "name": "keyword.operator.type.tsx" + } + }, + "end": "(?=\\S)" + }, + { + "name": "keyword.operator.expression.keyof.tsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))keyof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "name": "keyword.operator.ternary.tsx", + "match": "(\\?|\\:)" + }, + { + "name": "keyword.operator.expression.import.tsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*\\()" + } + ] + }, + "type-infer": { + "patterns": [ + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(infer)\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s+(extends)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))?", + "name": "meta.type.infer.tsx", + "captures": { + "1": { + "name": "keyword.operator.expression.infer.tsx" + }, + "2": { + "name": "entity.name.type.tsx" + }, + "3": { + "name": "keyword.operator.expression.extends.tsx" + } + } + } + ] + }, + "type-predicate-operator": { + "patterns": [ + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s(is)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "captures": { + "1": { + "name": "keyword.operator.type.asserts.tsx" + }, + "2": { + "name": "variable.parameter.tsx variable.language.this.tsx" + }, + "3": { + "name": "variable.parameter.tsx" + }, + "4": { + "name": "keyword.operator.expression.is.tsx" + } + } + }, + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "captures": { + "1": { + "name": "keyword.operator.type.asserts.tsx" + }, + "2": { + "name": "variable.parameter.tsx variable.language.this.tsx" + }, + "3": { + "name": "variable.parameter.tsx" + } + } + }, + { + "name": "keyword.operator.type.asserts.tsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "name": "keyword.operator.expression.is.tsx", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + } + ] + }, + "type-name": { + "patterns": [ + { + "begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(<)", + "captures": { + "1": { + "name": "entity.name.type.module.tsx" + }, + "2": { + "name": "punctuation.accessor.tsx" + }, + "3": { + "name": "punctuation.accessor.optional.tsx" + }, + "4": { + "name": "meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx" + } + }, + "end": "(>)", + "endCaptures": { + "1": { + "name": "meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx" + } + }, + "contentName": "meta.type.parameters.tsx", + "patterns": [ + { + "include": "#type-arguments-body" + } + ] + }, + { + "begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)", + "beginCaptures": { + "1": { + "name": "entity.name.type.tsx" + }, + "2": { + "name": "meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx" + } + }, + "end": "(>)", + "endCaptures": { + "1": { + "name": "meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx" + } + }, + "contentName": "meta.type.parameters.tsx", + "patterns": [ + { + "include": "#type-arguments-body" + } + ] + }, + { + "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", + "captures": { + "1": { + "name": "entity.name.type.module.tsx" + }, + "2": { + "name": "punctuation.accessor.tsx" + }, + "3": { + "name": "punctuation.accessor.optional.tsx" + } + } + }, + { + "name": "entity.name.type.tsx", + "match": "[_$[:alpha:]][_$[:alnum:]]*" + } + ] + }, + "punctuation-comma": { + "name": "punctuation.separator.comma.tsx", + "match": "," + }, + "punctuation-semicolon": { + "name": "punctuation.terminator.statement.tsx", + "match": ";" + }, + "punctuation-accessor": { + "match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", + "captures": { + "1": { + "name": "punctuation.accessor.tsx" + }, + "2": { + "name": "punctuation.accessor.optional.tsx" + } + } + }, + "string": { + "patterns": [ + { + "include": "#qstring-single" + }, + { + "include": "#qstring-double" + }, + { + "include": "#template" + } + ] + }, + "qstring-double": { + "name": "string.quoted.double.tsx", + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.tsx" + } + }, + "end": "(\")|((?:[^\\\\\\n])$)", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.tsx" + }, + "2": { + "name": "invalid.illegal.newline.tsx" + } + }, + "patterns": [ + { + "include": "#string-character-escape" + } + ] + }, + "qstring-single": { + "name": "string.quoted.single.tsx", + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.tsx" + } + }, + "end": "(\\')|((?:[^\\\\\\n])$)", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.tsx" + }, + "2": { + "name": "invalid.illegal.newline.tsx" + } + }, + "patterns": [ + { + "include": "#string-character-escape" + } + ] + }, + "string-character-escape": { + "name": "constant.character.escape.tsx", + "match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)" + }, + "template": { + "patterns": [ + { + "include": "#template-call" + }, + { + "contentName": "string.template.tsx", + "begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", + "beginCaptures": { + "1": { + "name": "entity.name.function.tagged-template.tsx" + }, + "2": { + "name": "string.template.tsx punctuation.definition.string.template.begin.tsx" + } + }, + "end": "`", + "endCaptures": { + "0": { + "name": "string.template.tsx punctuation.definition.string.template.end.tsx" + } + }, + "patterns": [ + { + "include": "#template-substitution-element" + }, + { + "include": "#string-character-escape" + } + ] + } + ] + }, + "template-call": { + "patterns": [ + { + "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*)(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)", + "end": "(?=`)", + "patterns": [ + { + "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))", + "end": "(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)", + "patterns": [ + { + "include": "#support-function-call-identifiers" + }, + { + "name": "entity.name.function.tagged-template.tsx", + "match": "([_$[:alpha:]][_$[:alnum:]]*)" + } + ] + }, + { + "include": "#type-arguments" + } + ] + }, + { + "begin": "([_$[:alpha:]][_$[:alnum:]]*)?\\s*(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)`)", + "beginCaptures": { + "1": { + "name": "entity.name.function.tagged-template.tsx" + } + }, + "end": "(?=`)", + "patterns": [ + { + "include": "#type-arguments" + } + ] + } + ] + }, + "template-substitution-element": { + "name": "meta.template.expression.tsx", + "begin": "\\$\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.template-expression.begin.tsx" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.template-expression.end.tsx" + } + }, + "patterns": [ + { + "include": "#expression" + } + ], + "contentName": "meta.embedded.line.tsx" + }, + "type-string": { + "patterns": [ + { + "include": "#qstring-single" + }, + { + "include": "#qstring-double" + }, + { + "include": "#template-type" + } + ] + }, + "template-type": { + "patterns": [ + { + "include": "#template-call" + }, + { + "contentName": "string.template.tsx", + "begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", + "beginCaptures": { + "1": { + "name": "entity.name.function.tagged-template.tsx" + }, + "2": { + "name": "string.template.tsx punctuation.definition.string.template.begin.tsx" + } + }, + "end": "`", + "endCaptures": { + "0": { + "name": "string.template.tsx punctuation.definition.string.template.end.tsx" + } + }, + "patterns": [ + { + "include": "#template-type-substitution-element" + }, + { + "include": "#string-character-escape" + } + ] + } + ] + }, + "template-type-substitution-element": { + "name": "meta.template.expression.tsx", + "begin": "\\$\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.template-expression.begin.tsx" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.template-expression.end.tsx" + } + }, + "patterns": [ + { + "include": "#type" + } + ], + "contentName": "meta.embedded.line.tsx" + }, + "regex": { + "patterns": [ + { + "name": "string.regexp.tsx", + "begin": "(?<!\\+\\+|--|})(?<=[=(:,\\[?+!]|^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case|=>|&&|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))", + "beginCaptures": { + "1": { + "name": "punctuation.definition.string.begin.tsx" + } + }, + "end": "(/)([dgimsuy]*)", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.tsx" + }, + "2": { + "name": "keyword.other.tsx" + } + }, + "patterns": [ + { + "include": "#regexp" + } + ] + }, + { + "name": "string.regexp.tsx", + "begin": "((?<![_$[:alnum:])\\]]|\\+\\+|--|}|\\*\\/)|((?<=^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case))\\s*)\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.tsx" + } + }, + "end": "(/)([dgimsuy]*)", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.tsx" + }, + "2": { + "name": "keyword.other.tsx" + } + }, + "patterns": [ + { + "include": "#regexp" + } + ] + } + ] + }, + "regexp": { + "patterns": [ + { + "name": "keyword.control.anchor.regexp", + "match": "\\\\[bB]|\\^|\\$" + }, + { + "match": "\\\\[1-9]\\d*|\\\\k<([a-zA-Z_$][\\w$]*)>", + "captures": { + "0": { + "name": "keyword.other.back-reference.regexp" + }, + "1": { + "name": "variable.other.regexp" + } + } + }, + { + "name": "keyword.operator.quantifier.regexp", + "match": "[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??" + }, + { + "name": "keyword.operator.or.regexp", + "match": "\\|" + }, + { + "name": "meta.group.assertion.regexp", + "begin": "(\\()((\\?=)|(\\?!)|(\\?<=)|(\\?<!))", + "beginCaptures": { + "1": { + "name": "punctuation.definition.group.regexp" + }, + "2": { + "name": "punctuation.definition.group.assertion.regexp" + }, + "3": { + "name": "meta.assertion.look-ahead.regexp" + }, + "4": { + "name": "meta.assertion.negative-look-ahead.regexp" + }, + "5": { + "name": "meta.assertion.look-behind.regexp" + }, + "6": { + "name": "meta.assertion.negative-look-behind.regexp" + } + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.definition.group.regexp" + } + }, + "patterns": [ + { + "include": "#regexp" + } + ] + }, + { + "name": "meta.group.regexp", + "begin": "\\((?:(\\?:)|(?:\\?<([a-zA-Z_$][\\w$]*)>))?", + "beginCaptures": { + "0": { + "name": "punctuation.definition.group.regexp" + }, + "1": { + "name": "punctuation.definition.group.no-capture.regexp" + }, + "2": { + "name": "variable.other.regexp" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.group.regexp" + } + }, + "patterns": [ + { + "include": "#regexp" + } + ] + }, + { + "name": "constant.other.character-class.set.regexp", + "begin": "(\\[)(\\^)?", + "beginCaptures": { + "1": { + "name": "punctuation.definition.character-class.regexp" + }, + "2": { + "name": "keyword.operator.negation.regexp" + } + }, + "end": "(\\])", + "endCaptures": { + "1": { + "name": "punctuation.definition.character-class.regexp" + } + }, + "patterns": [ + { + "name": "constant.other.character-class.range.regexp", + "match": "(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))", + "captures": { + "1": { + "name": "constant.character.numeric.regexp" + }, + "2": { + "name": "constant.character.control.regexp" + }, + "3": { + "name": "constant.character.escape.backslash.regexp" + }, + "4": { + "name": "constant.character.numeric.regexp" + }, + "5": { + "name": "constant.character.control.regexp" + }, + "6": { + "name": "constant.character.escape.backslash.regexp" + } + } + }, + { + "include": "#regex-character-class" + } + ] + }, + { + "include": "#regex-character-class" + } + ] + }, + "regex-character-class": { + "patterns": [ + { + "name": "constant.other.character-class.regexp", + "match": "\\\\[wWsSdDtrnvf]|\\." + }, + { + "name": "constant.character.numeric.regexp", + "match": "\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})" + }, + { + "name": "constant.character.control.regexp", + "match": "\\\\c[A-Z]" + }, + { + "name": "constant.character.escape.backslash.regexp", + "match": "\\\\." + } + ] + }, + "comment": { + "patterns": [ + { + "name": "comment.block.documentation.tsx", + "begin": "/\\*\\*(?!/)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.tsx" + } + }, + "end": "\\*/", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.tsx" + } + }, + "patterns": [ + { + "include": "#docblock" + } + ] + }, + { + "name": "comment.block.tsx", + "begin": "(/\\*)(?:\\s*((@)internal)(?=\\s|(\\*/)))?", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.tsx" + }, + "2": { + "name": "storage.type.internaldeclaration.tsx" + }, + "3": { + "name": "punctuation.decorator.internaldeclaration.tsx" + } + }, + "end": "\\*/", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.tsx" + } + } + }, + { + "begin": "(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.tsx" + }, + "2": { + "name": "comment.line.double-slash.tsx" + }, + "3": { + "name": "punctuation.definition.comment.tsx" + }, + "4": { + "name": "storage.type.internaldeclaration.tsx" + }, + "5": { + "name": "punctuation.decorator.internaldeclaration.tsx" + } + }, + "end": "(?=$)", + "contentName": "comment.line.double-slash.tsx" + } + ] + }, + "single-line-comment-consuming-line-ending": { + "begin": "(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.tsx" + }, + "2": { + "name": "comment.line.double-slash.tsx" + }, + "3": { + "name": "punctuation.definition.comment.tsx" + }, + "4": { + "name": "storage.type.internaldeclaration.tsx" + }, + "5": { + "name": "punctuation.decorator.internaldeclaration.tsx" + } + }, + "end": "(?=^)", + "contentName": "comment.line.double-slash.tsx" + }, + "directives": { + "name": "comment.line.triple-slash.directive.tsx", + "begin": "^(///)\\s*(?=<(reference|amd-dependency|amd-module)(\\s+(path|types|no-default-lib|lib|name|resolution-mode)\\s*=\\s*((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)))+\\s*/>\\s*$)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.tsx" + } + }, + "end": "(?=$)", + "patterns": [ + { + "name": "meta.tag.tsx", + "begin": "(<)(reference|amd-dependency|amd-module)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.directive.tsx" + }, + "2": { + "name": "entity.name.tag.directive.tsx" + } + }, + "end": "/>", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.directive.tsx" + } + }, + "patterns": [ + { + "name": "entity.other.attribute-name.directive.tsx", + "match": "path|types|no-default-lib|lib|name|resolution-mode" + }, + { + "name": "keyword.operator.assignment.tsx", + "match": "=" + }, + { + "include": "#string" + } + ] + } + ] + }, + "docblock": { + "patterns": [ + { + "match": "(?x)\n((@)(?:access|api))\n\\s+\n(private|protected|public)\n\\b", + "captures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + }, + "3": { + "name": "constant.language.access-type.jsdoc" + } + } + }, + { + "match": "(?x)\n((@)author)\n\\s+\n(\n [^@\\s<>*/]\n (?:[^@<>*/]|\\*[^/])*\n)\n(?:\n \\s*\n (<)\n ([^>\\s]+)\n (>)\n)?", + "captures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + }, + "3": { + "name": "entity.name.type.instance.jsdoc" + }, + "4": { + "name": "punctuation.definition.bracket.angle.begin.jsdoc" + }, + "5": { + "name": "constant.other.email.link.underline.jsdoc" + }, + "6": { + "name": "punctuation.definition.bracket.angle.end.jsdoc" + } + } + }, + { + "match": "(?x)\n((@)borrows) \\s+\n((?:[^@\\s*/]|\\*[^/])+) # <that namepath>\n\\s+ (as) \\s+ # as\n((?:[^@\\s*/]|\\*[^/])+) # <this namepath>", + "captures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + }, + "3": { + "name": "entity.name.type.instance.jsdoc" + }, + "4": { + "name": "keyword.operator.control.jsdoc" + }, + "5": { + "name": "entity.name.type.instance.jsdoc" + } + } + }, + { + "name": "meta.example.jsdoc", + "begin": "((@)example)\\s+", + "end": "(?=@|\\*/)", + "beginCaptures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + } + }, + "patterns": [ + { + "match": "^\\s\\*\\s+" + }, + { + "contentName": "constant.other.description.jsdoc", + "begin": "\\G(<)caption(>)", + "beginCaptures": { + "0": { + "name": "entity.name.tag.inline.jsdoc" + }, + "1": { + "name": "punctuation.definition.bracket.angle.begin.jsdoc" + }, + "2": { + "name": "punctuation.definition.bracket.angle.end.jsdoc" + } + }, + "end": "(</)caption(>)|(?=\\*/)", + "endCaptures": { + "0": { + "name": "entity.name.tag.inline.jsdoc" + }, + "1": { + "name": "punctuation.definition.bracket.angle.begin.jsdoc" + }, + "2": { + "name": "punctuation.definition.bracket.angle.end.jsdoc" + } + } + }, + { + "match": "[^\\s@*](?:[^*]|\\*[^/])*", + "captures": { + "0": { + "name": "source.embedded.tsx" + } + } + } + ] + }, + { + "match": "(?x) ((@)kind) \\s+ (class|constant|event|external|file|function|member|mixin|module|namespace|typedef) \\b", + "captures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + }, + "3": { + "name": "constant.language.symbol-type.jsdoc" + } + } + }, + { + "match": "(?x)\n((@)see)\n\\s+\n(?:\n # URL\n (\n (?=https?://)\n (?:[^\\s*]|\\*[^/])+\n )\n |\n # JSDoc namepath\n (\n (?!\n # Avoid matching bare URIs (also acceptable as links)\n https?://\n |\n # Avoid matching {@inline tags}; we match those below\n (?:\\[[^\\[\\]]*\\])? # Possible description [preceding]{@tag}\n {@(?:link|linkcode|linkplain|tutorial)\\b\n )\n # Matched namepath\n (?:[^@\\s*/]|\\*[^/])+\n )\n)", + "captures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + }, + "3": { + "name": "variable.other.link.underline.jsdoc" + }, + "4": { + "name": "entity.name.type.instance.jsdoc" + } + } + }, + { + "match": "(?x)\n((@)template)\n\\s+\n# One or more valid identifiers\n(\n [A-Za-z_$] # First character: non-numeric word character\n [\\w$.\\[\\]]* # Rest of identifier\n (?: # Possible list of additional identifiers\n \\s* , \\s*\n [A-Za-z_$]\n [\\w$.\\[\\]]*\n )*\n)", + "captures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + }, + "3": { + "name": "variable.other.jsdoc" + } + } + }, + { + "begin": "(?x)((@)template)\\s+(?={)", + "beginCaptures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + } + }, + "end": "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", + "patterns": [ + { + "include": "#jsdoctype" + }, + { + "name": "variable.other.jsdoc", + "match": "([A-Za-z_$][\\w$.\\[\\]]*)" + } + ] + }, + { + "match": "(?x)\n(\n (@)\n (?:arg|argument|const|constant|member|namespace|param|var)\n)\n\\s+\n(\n [A-Za-z_$]\n [\\w$.\\[\\]]*\n)", + "captures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + }, + "3": { + "name": "variable.other.jsdoc" + } + } + }, + { + "begin": "((@)typedef)\\s+(?={)", + "beginCaptures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + } + }, + "end": "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", + "patterns": [ + { + "include": "#jsdoctype" + }, + { + "name": "entity.name.type.instance.jsdoc", + "match": "(?:[^@\\s*/]|\\*[^/])+" + } + ] + }, + { + "begin": "((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\s+(?={)", + "beginCaptures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + } + }, + "end": "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", + "patterns": [ + { + "include": "#jsdoctype" + }, + { + "name": "variable.other.jsdoc", + "match": "([A-Za-z_$][\\w$.\\[\\]]*)" + }, + { + "name": "variable.other.jsdoc", + "match": "(?x)\n(\\[)\\s*\n[\\w$]+\n(?:\n (?:\\[\\])? # Foo[ ].bar properties within an array\n \\. # Foo.Bar namespaced parameter\n [\\w$]+\n)*\n(?:\n \\s*\n (=) # [foo=bar] Default parameter value\n \\s*\n (\n # The inner regexes are to stop the match early at */ and to not stop at escaped quotes\n (?>\n \"(?:(?:\\*(?!/))|(?:\\\\(?!\"))|[^*\\\\])*?\" | # [foo=\"bar\"] Double-quoted\n '(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?' | # [foo='bar'] Single-quoted\n \\[ (?:(?:\\*(?!/))|[^*])*? \\] | # [foo=[1,2]] Array literal\n (?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])* # Everything else\n )*\n )\n)?\n\\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))", + "captures": { + "1": { + "name": "punctuation.definition.optional-value.begin.bracket.square.jsdoc" + }, + "2": { + "name": "keyword.operator.assignment.jsdoc" + }, + "3": { + "name": "source.embedded.tsx" + }, + "4": { + "name": "punctuation.definition.optional-value.end.bracket.square.jsdoc" + }, + "5": { + "name": "invalid.illegal.syntax.jsdoc" + } + } + } + ] + }, + { + "begin": "(?x)\n(\n (@)\n (?:define|enum|exception|export|extends|lends|implements|modifies\n |namespace|private|protected|returns?|satisfies|suppress|this|throws|type\n |yields?)\n)\n\\s+(?={)", + "beginCaptures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + } + }, + "end": "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", + "patterns": [ + { + "include": "#jsdoctype" + } + ] + }, + { + "match": "(?x)\n(\n (@)\n (?:alias|augments|callback|constructs|emits|event|fires|exports?\n |extends|external|function|func|host|lends|listens|interface|memberof!?\n |method|module|mixes|mixin|name|requires|see|this|typedef|uses)\n)\n\\s+\n(\n (?:\n [^{}@\\s*] | \\*[^/]\n )+\n)", + "captures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + }, + "3": { + "name": "entity.name.type.instance.jsdoc" + } + } + }, + { + "contentName": "variable.other.jsdoc", + "begin": "((@)(?:default(?:value)?|license|version))\\s+(([''\"]))", + "beginCaptures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + }, + "3": { + "name": "variable.other.jsdoc" + }, + "4": { + "name": "punctuation.definition.string.begin.jsdoc" + } + }, + "end": "(\\3)|(?=$|\\*/)", + "endCaptures": { + "0": { + "name": "variable.other.jsdoc" + }, + "1": { + "name": "punctuation.definition.string.end.jsdoc" + } + } + }, + { + "match": "((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)", + "captures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + }, + "3": { + "name": "variable.other.jsdoc" + } + } + }, + { + "name": "storage.type.class.jsdoc", + "match": "(?x) (@) (?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles |callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright |default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception |exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func |function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc |inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method |mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects |override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected |public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary |suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation |version|virtual|writeOnce|yields?) \\b", + "captures": { + "1": { + "name": "punctuation.definition.block.tag.jsdoc" + } + } + }, + { + "include": "#inline-tags" + }, + { + "match": "((@)(?:[_$[:alpha:]][_$[:alnum:]]*))(?=\\s+)", + "captures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + } + } + } + ] + }, + "brackets": { + "patterns": [ + { + "begin": "{", + "end": "}|(?=\\*/)", + "patterns": [ + { + "include": "#brackets" + } + ] + }, + { + "begin": "\\[", + "end": "\\]|(?=\\*/)", + "patterns": [ + { + "include": "#brackets" + } + ] + } + ] + }, + "inline-tags": { + "patterns": [ + { + "name": "constant.other.description.jsdoc", + "match": "(\\[)[^\\]]+(\\])(?={@(?:link|linkcode|linkplain|tutorial))", + "captures": { + "1": { + "name": "punctuation.definition.bracket.square.begin.jsdoc" + }, + "2": { + "name": "punctuation.definition.bracket.square.end.jsdoc" + } + } + }, + { + "name": "entity.name.type.instance.jsdoc", + "begin": "({)((@)(?:link(?:code|plain)?|tutorial))\\s*", + "beginCaptures": { + "1": { + "name": "punctuation.definition.bracket.curly.begin.jsdoc" + }, + "2": { + "name": "storage.type.class.jsdoc" + }, + "3": { + "name": "punctuation.definition.inline.tag.jsdoc" + } + }, + "end": "}|(?=\\*/)", + "endCaptures": { + "0": { + "name": "punctuation.definition.bracket.curly.end.jsdoc" + } + }, + "patterns": [ + { + "match": "\\G((?=https?://)(?:[^|}\\s*]|\\*[/])+)(\\|)?", + "captures": { + "1": { + "name": "variable.other.link.underline.jsdoc" + }, + "2": { + "name": "punctuation.separator.pipe.jsdoc" + } + } + }, + { + "match": "\\G((?:[^{}@\\s|*]|\\*[^/])+)(\\|)?", + "captures": { + "1": { + "name": "variable.other.description.jsdoc" + }, + "2": { + "name": "punctuation.separator.pipe.jsdoc" + } + } + } + ] + } + ] + }, + "jsdoctype": { + "patterns": [ + { + "contentName": "entity.name.type.instance.jsdoc", + "begin": "\\G({)", + "beginCaptures": { + "0": { + "name": "entity.name.type.instance.jsdoc" + }, + "1": { + "name": "punctuation.definition.bracket.curly.begin.jsdoc" + } + }, + "end": "((}))\\s*|(?=\\*/)", + "endCaptures": { + "1": { + "name": "entity.name.type.instance.jsdoc" + }, + "2": { + "name": "punctuation.definition.bracket.curly.end.jsdoc" + } + }, + "patterns": [ + { + "include": "#brackets" + } + ] + } + ] + }, + "jsx": { + "patterns": [ + { + "include": "#jsx-tag-without-attributes-in-expression" + }, + { + "include": "#jsx-tag-in-expression" + } + ] + }, + "jsx-tag-without-attributes-in-expression": { + "begin": "(?<!\\+\\+|--)(?<=[({\\[,?=>:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s*(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>))", + "end": "(?!(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>))", + "patterns": [ + { + "include": "#jsx-tag-without-attributes" + } + ] + }, + "jsx-tag-without-attributes": { + "name": "meta.tag.without-attributes.tsx", + "begin": "(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>)", + "end": "(</)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.tsx" + }, + "2": { + "name": "entity.name.tag.namespace.tsx" + }, + "3": { + "name": "punctuation.separator.namespace.tsx" + }, + "4": { + "name": "entity.name.tag.tsx" + }, + "5": { + "name": "support.class.component.tsx" + }, + "6": { + "name": "punctuation.definition.tag.end.tsx" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.tsx" + }, + "2": { + "name": "entity.name.tag.namespace.tsx" + }, + "3": { + "name": "punctuation.separator.namespace.tsx" + }, + "4": { + "name": "entity.name.tag.tsx" + }, + "5": { + "name": "support.class.component.tsx" + }, + "6": { + "name": "punctuation.definition.tag.end.tsx" + } + }, + "contentName": "meta.jsx.children.tsx", + "patterns": [ + { + "include": "#jsx-children" + } + ] + }, + "jsx-tag-in-expression": { + "begin": "(?x)\n (?<!\\+\\+|--)(?<=[({\\[,?=>:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s*\n (?!<\\s*[_$[:alpha:]][_$[:alnum:]]*((\\s+extends\\s+[^=>])|,)) # look ahead is not type parameter of arrow\n (?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))", + "end": "(?!(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))", + "patterns": [ + { + "include": "#jsx-tag" + } + ] + }, + "jsx-tag": { + "name": "meta.tag.tsx", + "begin": "(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>))", + "end": "(/>)|(?:(</)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))?\\s*(>))", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.end.tsx" + }, + "2": { + "name": "punctuation.definition.tag.begin.tsx" + }, + "3": { + "name": "entity.name.tag.namespace.tsx" + }, + "4": { + "name": "punctuation.separator.namespace.tsx" + }, + "5": { + "name": "entity.name.tag.tsx" + }, + "6": { + "name": "support.class.component.tsx" + }, + "7": { + "name": "punctuation.definition.tag.end.tsx" + } + }, + "patterns": [ + { + "begin": "(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?<!\\.|-)(:))?((?:[a-z][a-z0-9]*|([_$[:alpha:]][-_$[:alnum:].]*))(?<!\\.|-))(?=((<\\s*)|(\\s+))(?!\\?)|\\/?>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.tsx" + }, + "2": { + "name": "entity.name.tag.namespace.tsx" + }, + "3": { + "name": "punctuation.separator.namespace.tsx" + }, + "4": { + "name": "entity.name.tag.tsx" + }, + "5": { + "name": "support.class.component.tsx" + } + }, + "end": "(?=[/]?>)", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#type-arguments" + }, + { + "include": "#jsx-tag-attributes" + } + ] + }, + { + "begin": "(>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.end.tsx" + } + }, + "end": "(?=</)", + "contentName": "meta.jsx.children.tsx", + "patterns": [ + { + "include": "#jsx-children" + } + ] + } + ] + }, + "jsx-children": { + "patterns": [ + { + "include": "#jsx-tag-without-attributes" + }, + { + "include": "#jsx-tag" + }, + { + "include": "#jsx-evaluated-code" + }, + { + "include": "#jsx-entities" + } + ] + }, + "jsx-evaluated-code": { + "contentName": "meta.embedded.expression.tsx", + "begin": "\\{", + "end": "\\}", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.tsx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.tsx" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + "jsx-entities": { + "patterns": [ + { + "name": "constant.character.entity.tsx", + "match": "(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)", + "captures": { + "1": { + "name": "punctuation.definition.entity.tsx" + }, + "3": { + "name": "punctuation.definition.entity.tsx" + } + } + } + ] + }, + "jsx-tag-attributes": { + "name": "meta.tag.attributes.tsx", + "begin": "\\s+", + "end": "(?=[/]?>)", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#jsx-tag-attribute-name" + }, + { + "include": "#jsx-tag-attribute-assignment" + }, + { + "include": "#jsx-string-double-quoted" + }, + { + "include": "#jsx-string-single-quoted" + }, + { + "include": "#jsx-evaluated-code" + }, + { + "include": "#jsx-tag-attributes-illegal" + } + ] + }, + "jsx-tag-attribute-name": { + "match": "(?x)\n \\s*\n (?:([_$[:alpha:]][-_$[:alnum:].]*)(:))?\n ([_$[:alpha:]][-_$[:alnum:]]*)\n (?=\\s|=|/?>|/\\*|//)", + "captures": { + "1": { + "name": "entity.other.attribute-name.namespace.tsx" + }, + "2": { + "name": "punctuation.separator.namespace.tsx" + }, + "3": { + "name": "entity.other.attribute-name.tsx" + } + } + }, + "jsx-tag-attribute-assignment": { + "name": "keyword.operator.assignment.tsx", + "match": "=(?=\\s*(?:'|\"|{|/\\*|//|\\n))" + }, + "jsx-string-double-quoted": { + "name": "string.quoted.double.tsx", + "begin": "\"", + "end": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.tsx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.tsx" + } + }, + "patterns": [ + { + "include": "#jsx-entities" + } + ] + }, + "jsx-string-single-quoted": { + "name": "string.quoted.single.tsx", + "begin": "'", + "end": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.tsx" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.tsx" + } + }, + "patterns": [ + { + "include": "#jsx-entities" + } + ] + }, + "jsx-tag-attributes-illegal": { + "name": "invalid.illegal.attribute.tsx", + "match": "\\S+" + } + } +} diff --git a/docs/shiki/languages/turtle.tmLanguage.json b/docs/shiki/languages/turtle.tmLanguage.json new file mode 100644 index 00000000..9abdbf3c --- /dev/null +++ b/docs/shiki/languages/turtle.tmLanguage.json @@ -0,0 +1,257 @@ +{ + "name": "turtle", + "scopeName": "source.turtle", + "fileTypes": ["turtle", "ttl", "acl"], + "patterns": [ + { + "include": "#rule-constraint" + }, + { + "include": "#iriref" + }, + { + "include": "#prefix" + }, + { + "include": "#prefixed-name" + }, + { + "include": "#comment" + }, + { + "include": "#special-predicate" + }, + { + "include": "#literals" + }, + { + "include": "#language-tag" + } + ], + "uuid": "230498230498sdfkj8909-34df-23dfs", + "repository": { + "prefix": { + "name": "keyword.operator.turtle", + "match": "(?i:@?base|@?prefix)\\s" + }, + "iriref": { + "name": "entity.name.type.iriref.turtle", + "match": "<[^\\x20-\\x20<>\"{}|^`\\\\]*>" + }, + "prefixed-name": { + "name": "constant.complex.turtle", + "match": "(\\w*:)(\\w*)", + "captures": { + "1": { + "name": "storage.type.PNAME_NS.turtle" + }, + "2": { + "name": "support.variable.PN_LOCAL.turtle" + } + } + }, + "comment": { + "name": "comment.line.number-sign.turtle", + "match": "#.*$" + }, + "special-predicate": { + "name": "meta.specialPredicate.turtle", + "match": "\\s(a)\\s", + "captures": { + "1": { + "name": "keyword.control.turtle" + } + } + }, + "literals": { + "patterns": [ + { + "include": "#string" + }, + { + "include": "#numeric" + }, + { + "include": "#boolean" + } + ] + }, + "string": { + "patterns": [ + { + "include": "#triple-squote-string-literal" + }, + { + "include": "#triple-dquote-string-literal" + }, + { + "include": "#single-squote-string-literal" + }, + { + "include": "#single-dquote-string-literal" + }, + { + "include": "#triple-tick-string-literal" + } + ] + }, + "single-squote-string-literal": { + "name": "string.quoted.single.turtle", + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.turtle" + } + }, + "end": "'", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.turtle" + }, + "2": { + "name": "invalid.illegal.newline.turtle" + } + }, + "patterns": [ + { + "include": "#string-character-escape" + } + ] + }, + "single-dquote-string-literal": { + "name": "string.quoted.double.turtle", + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.turtle" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.turtle" + } + }, + "patterns": [ + { + "include": "#string-character-escape" + } + ] + }, + "triple-squote-string-literal": { + "name": "string.quoted.triple.turtle", + "begin": "'''", + "end": "'''", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.turtle" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.turtle" + } + }, + "patterns": [ + { + "include": "#string-character-escape" + } + ] + }, + "triple-dquote-string-literal": { + "name": "string.quoted.triple.turtle", + "begin": "\"\"\"", + "end": "\"\"\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.turtle" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.turtle" + } + }, + "patterns": [ + { + "include": "#string-character-escape" + } + ] + }, + "triple-tick-string-literal": { + "name": "string.quoted.triple.turtle", + "begin": "```", + "end": "```", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.turtle" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.turtle" + } + }, + "patterns": [ + { + "include": "#string-character-escape" + } + ] + }, + "string-character-escape": { + "name": "constant.character.escape.turtle", + "match": "\\\\(x\\h{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)" + }, + "numeric": { + "patterns": [ + { + "include": "#integer" + } + ] + }, + "integer": { + "name": "constant.numeric.turtle", + "match": "[+-]?(?:\\d+|[0-9]+\\.[0-9]*|\\.[0-9]+(?:[eE][+-]?\\d+)?)" + }, + "boolean": { + "name": "constant.language.sparql", + "match": "\\b(?i:true|false)\\b" + }, + "language-tag": { + "name": "meta.string-literal-language-tag.turtle", + "match": "@(\\w+)", + "captures": { + "1": { + "name": "entity.name.class.turtle" + } + } + }, + "rule-constraint": { + "name": "meta.rule-constraint.turtle", + "begin": "(rule:content) (\"\"\")", + "beginCaptures": { + "1": { + "patterns": [ + { + "include": "#prefixed-name" + } + ] + }, + "2": { + "name": "string.quoted.triple.turtle" + } + }, + "end": "\"\"\"", + "endCaptures": { + "0": { + "name": "string.quoted.triple.turtle" + } + }, + "patterns": [ + { + "include": "source.srs" + } + ] + } + } +} diff --git a/docs/shiki/languages/twig.tmLanguage.json b/docs/shiki/languages/twig.tmLanguage.json new file mode 100644 index 00000000..501020e9 --- /dev/null +++ b/docs/shiki/languages/twig.tmLanguage.json @@ -0,0 +1,1372 @@ +{ + "fileTypes": ["twig", "html.twig"], + "firstLineMatch": "<!(?i:DOCTYPE)|<(?i:html)|<\\?(?i:php)|\\{\\{|\\{%|\\{#", + "foldingStartMarker": "(?x)\n (<(?i:body|div|dl|fieldset|form|head|li|ol|script|select|style|table|tbody|tfoot|thead|tr|ul)\\b.*?>\n |<!--(?!.*--\\s*>)\n |^<!--\\ \\#tminclude\\ (?>.*?-->)$\n |\\{%\\s+(autoescape|block|embed|filter|for|if|macro|raw|sandbox|set|spaceless|trans|verbatim)\n )", + "foldingStopMarker": "(?x)\n (</(?i:body|div|dl|fieldset|form|head|li|ol|script|select|style|table|tbody|tfoot|thead|tr|ul)>\n |^(?!.*?<!--).*?--\\s*>\n |^<!--\\ end\\ tminclude\\ -->$\n |\\{%\\s+end(autoescape|block|embed|filter|for|if|macro|raw|sandbox|set|spaceless|trans|verbatim)\n )", + "keyEquivalent": "^~T", + "name": "twig", + "patterns": [ + { + "begin": "(<)([a-zA-Z0-9:]++)(?=[^>]*></\\2>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.html" + }, + "2": { + "name": "entity.name.tag.html" + } + }, + "end": "(>(<)/)(\\2)(>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.html" + }, + "2": { + "name": "meta.scope.between-tag-pair.html" + }, + "3": { + "name": "entity.name.tag.html" + }, + "4": { + "name": "punctuation.definition.tag.html" + } + }, + "name": "meta.tag.any.html", + "patterns": [ + { + "include": "#tag-stuff" + } + ] + }, + { + "begin": "(<\\?)(xml)", + "captures": { + "1": { + "name": "punctuation.definition.tag.html" + }, + "2": { + "name": "entity.name.tag.xml.html" + } + }, + "end": "(\\?>)", + "name": "meta.tag.preprocessor.xml.html", + "patterns": [ + { + "include": "#tag-generic-attribute" + }, + { + "include": "#string-double-quoted" + }, + { + "include": "#string-single-quoted" + } + ] + }, + { + "begin": "<!--", + "captures": { + "0": { + "name": "punctuation.definition.comment.html" + } + }, + "end": "--\\s*>", + "name": "comment.block.html", + "patterns": [ + { + "match": "--", + "name": "invalid.illegal.bad-comments-or-CDATA.html" + }, + { + "include": "#embedded-code" + } + ] + }, + { + "begin": "<!", + "captures": { + "0": { + "name": "punctuation.definition.tag.html" + } + }, + "end": ">", + "name": "meta.tag.sgml.html", + "patterns": [ + { + "begin": "(?i:DOCTYPE)", + "captures": { + "1": { + "name": "entity.name.tag.doctype.html" + } + }, + "end": "(?=>)", + "name": "meta.tag.sgml.doctype.html", + "patterns": [ + { + "match": "\"[^\">]*\"", + "name": "string.quoted.double.doctype.identifiers-and-DTDs.html" + } + ] + }, + { + "begin": "\\[CDATA\\[", + "end": "]](?=>)", + "name": "constant.other.inline-data.html" + }, + { + "match": "(\\s*)(?!--|>)\\S(\\s*)", + "name": "invalid.illegal.bad-comments-or-CDATA.html" + } + ] + }, + { + "include": "#embedded-code" + }, + { + "begin": "(?:^\\s+)?(<)((?i:style))\\b(?![^>]*/>)", + "captures": { + "1": { + "name": "punctuation.definition.tag.html" + }, + "2": { + "name": "entity.name.tag.style.html" + }, + "3": { + "name": "punctuation.definition.tag.html" + } + }, + "end": "(</)((?i:style))(>)(?:\\s*\\n)?", + "name": "source.css.embedded.html", + "patterns": [ + { + "include": "#tag-stuff" + }, + { + "begin": "(>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.html" + } + }, + "end": "(?=</(?i:style))", + "patterns": [ + { + "include": "#embedded-code" + }, + { + "include": "source.css" + } + ] + } + ] + }, + { + "begin": "(?:^\\s+)?(<)((?i:script))\\b(?![^>]*/>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.html" + }, + "2": { + "name": "entity.name.tag.script.html" + } + }, + "end": "(?<=</(script|SCRIPT))(>)(?:\\s*\\n)?", + "endCaptures": { + "2": { + "name": "punctuation.definition.tag.html" + } + }, + "name": "source.js.embedded.html", + "patterns": [ + { + "include": "#tag-stuff" + }, + { + "begin": "(?<!</(?:script|SCRIPT))(>)", + "captures": { + "1": { + "name": "punctuation.definition.tag.html" + }, + "2": { + "name": "entity.name.tag.script.html" + } + }, + "end": "(</)((?i:script))", + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.comment.js" + } + }, + "match": "(//).*?((?=</script)|$\\n?)", + "name": "comment.line.double-slash.js" + }, + { + "begin": "/\\*", + "captures": { + "0": { + "name": "punctuation.definition.comment.js" + } + }, + "end": "\\*/|(?=</script)", + "name": "comment.block.js" + }, + { + "include": "#php" + }, + { + "include": "#twig-print-tag" + }, + { + "include": "#twig-statement-tag" + }, + { + "include": "#twig-comment-tag" + }, + { + "include": "source.js" + } + ] + } + ] + }, + { + "begin": "(?ix) # Enable free spacing mode, case insensitive\n # Make sure our opening js tag has word boundaries\n (?<=\\{\\%\\sjs\\s\\%\\}|\\{\\%\\sincludejs\\s\\%\\})\n ", + "comment": "Add JS support to set tags that use the pattern \"css\" in their name", + "end": "(?ix)(?=\\{\\%\\sendjs\\s\\%\\}|\\{\\%\\sendincludejs\\s\\%\\})", + "name": "source.js.embedded.twig", + "patterns": [ + { + "include": "source.js" + } + ] + }, + { + "begin": "(?ix) # Enable free spacing mode, case insensitive\n (?<=\\{\\%\\scss\\s\\%\\}|\\{\\%\\sincludecss\\s\\%\\}|\\{\\%\\sincludehirescss\\s\\%\\})\n ", + "comment": "Add CSS support to set tags that use the pattern \"css\" in their name", + "end": "(?ix)(?=\\{\\%\\sendcss\\s\\%\\}|\\{\\%\\sendincludecss\\s\\%\\}|\\{\\%\\sendincludehirescss\\s\\%\\})", + "name": "source.css.embedded.twig", + "patterns": [ + { + "include": "source.css" + } + ] + }, + { + "begin": "(</?)((?i:body|head|html)\\b)", + "captures": { + "1": { + "name": "punctuation.definition.tag.html" + }, + "2": { + "name": "entity.name.tag.structure.any.html" + } + }, + "end": "(>)", + "name": "meta.tag.structure.any.html", + "patterns": [ + { + "include": "#tag-stuff" + } + ] + }, + { + "begin": "(</?)((?i:address|blockquote|dd|div|dl|dt|fieldset|form|frame|frameset|h1|h2|h3|h4|h5|h6|iframe|noframes|object|ol|p|ul|applet|center|dir|hr|menu|pre)\\b)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.block.any.html" + } + }, + "end": "(>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.block.any.html", + "patterns": [ + { + "include": "#tag-stuff" + } + ] + }, + { + "begin": "(</?)((?i:a|abbr|acronym|area|b|base|basefont|bdo|big|br|button|caption|cite|code|col|colgroup|del|dfn|em|font|head|html|i|img|input|ins|isindex|kbd|label|legend|li|link|map|meta|noscript|optgroup|option|param|q|s|samp|script|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|title|tr|tt|u|var)\\b)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.inline.any.html" + } + }, + "end": "((?: ?/)?>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.inline.any.html", + "patterns": [ + { + "include": "#tag-stuff" + } + ] + }, + { + "begin": "(</?)([a-zA-Z0-9:]+)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.other.html" + } + }, + "end": "(>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.end.html" + } + }, + "name": "meta.tag.other.html", + "patterns": [ + { + "include": "#tag-stuff" + } + ] + }, + { + "include": "#entities" + }, + { + "match": "<>", + "name": "invalid.illegal.incomplete.html" + }, + { + "match": "<", + "name": "invalid.illegal.bad-angle-bracket.html" + }, + { + "include": "#twig-print-tag" + }, + { + "include": "#twig-statement-tag" + }, + { + "include": "#twig-comment-tag" + } + ], + "repository": { + "embedded-code": { + "patterns": [ + { + "include": "#ruby" + }, + { + "include": "#php" + }, + { + "include": "#twig-print-tag" + }, + { + "include": "#twig-statement-tag" + }, + { + "include": "#twig-comment-tag" + }, + { + "include": "#python" + } + ] + }, + "entities": { + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.entity.html" + }, + "3": { + "name": "punctuation.definition.entity.html" + } + }, + "match": "(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)", + "name": "constant.character.entity.html" + }, + { + "match": "&", + "name": "invalid.illegal.bad-ampersand.html" + } + ] + }, + "twig-print-tag": { + "begin": "\\{\\{-?", + "beginCaptures": { + "0": { + "name": "punctuation.section.tag.twig" + } + }, + "end": "-?\\}\\}", + "endCaptures": { + "0": { + "name": "punctuation.section.tag.twig" + } + }, + "name": "meta.tag.template.value.twig", + "patterns": [ + { + "include": "#twig-constants" + }, + { + "include": "#twig-operators" + }, + { + "include": "#twig-functions-warg" + }, + { + "include": "#twig-functions" + }, + { + "include": "#twig-macros" + }, + { + "include": "#twig-objects" + }, + { + "include": "#twig-properties" + }, + { + "include": "#twig-filters-warg" + }, + { + "include": "#twig-filters" + }, + { + "include": "#twig-filters-warg-ud" + }, + { + "include": "#twig-filters-ud" + }, + { + "include": "#twig-strings" + }, + { + "include": "#twig-arrays" + }, + { + "include": "#twig-hashes" + } + ] + }, + "twig-statement-tag": { + "begin": "\\{%-?", + "beginCaptures": { + "0": { + "name": "punctuation.section.tag.twig" + } + }, + "end": "-?%\\}", + "endCaptures": { + "0": { + "name": "punctuation.section.tag.twig" + } + }, + "name": "meta.tag.template.block.twig", + "patterns": [ + { + "include": "#twig-constants" + }, + { + "include": "#twig-keywords" + }, + { + "include": "#twig-operators" + }, + { + "include": "#twig-functions-warg" + }, + { + "include": "#twig-functions" + }, + { + "include": "#twig-macros" + }, + { + "include": "#twig-filters-warg" + }, + { + "include": "#twig-filters" + }, + { + "include": "#twig-filters-warg-ud" + }, + { + "include": "#twig-filters-ud" + }, + { + "include": "#twig-objects" + }, + { + "include": "#twig-properties" + }, + { + "include": "#twig-strings" + }, + { + "include": "#twig-arrays" + }, + { + "include": "#twig-hashes" + } + ] + }, + "twig-comment-tag": { + "begin": "\\{#-?", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.begin.twig" + } + }, + "end": "-?#\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.end.twig" + } + }, + "name": "comment.block.twig" + }, + "twig-constants": { + "patterns": [ + { + "match": "(?i)(?<=[\\s\\[\\(\\{:,])(?:true|false|null|none)(?=[\\s\\)\\]\\}\\,])", + "name": "constant.language.twig" + }, + { + "match": "(?<=[\\s\\[\\(\\{:,]|\\.\\.|\\*\\*)[0-9]+(?:\\.[0-9]+)?(?=[\\s\\)\\]\\}\\,]|\\.\\.|\\*\\*)", + "name": "constant.numeric.twig" + } + ] + }, + "twig-operators": { + "patterns": [ + { + "captures": { + "1": { + "name": "keyword.operator.arithmetic.twig" + } + }, + "match": "(?<=\\s)(\\+|-|//?|%|\\*\\*?)(?=\\s)" + }, + { + "captures": { + "1": { + "name": "keyword.operator.assignment.twig" + } + }, + "match": "(?<=\\s)(=|~)(?=\\s)" + }, + { + "captures": { + "1": { + "name": "keyword.operator.bitwise.twig" + } + }, + "match": "(?<=\\s)(b-(?:and|or|xor))(?=\\s)" + }, + { + "captures": { + "1": { + "name": "keyword.operator.comparison.twig" + } + }, + "match": "(?<=\\s)((?:!|=)=|<=?|>=?|(?:not )?in|is(?: not)?|(?:ends|starts) with|matches)(?=\\s)" + }, + { + "captures": { + "1": { + "name": "keyword.operator.logical.twig" + } + }, + "match": "(?<=\\s)(\\?|:|and|not|or)(?=\\s)" + }, + { + "captures": { + "0": { + "name": "keyword.operator.other.twig" + } + }, + "match": "(?<=[a-zA-Z0-9_\\x{7f}-\\x{ff}\\]\\)'\"])\\.\\.(?=[a-zA-Z0-9_\\x{7f}-\\x{ff}'\"])" + }, + { + "captures": { + "0": { + "name": "keyword.operator.other.twig" + } + }, + "match": "(?<=[a-zA-Z0-9_\\x{7f}-\\x{ff}\\]\\}\\)'\"])\\|(?=[a-zA-Z_\\x{7f}-\\x{ff}])" + } + ] + }, + "twig-objects": { + "captures": { + "1": { + "name": "variable.other.twig" + } + }, + "match": "(?<=[\\s\\{\\[\\(:,])([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)(?=[\\s\\}\\[\\]\\(\\)\\.\\|,:])" + }, + "twig-properties": { + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.separator.property.twig" + }, + "2": { + "name": "variable.other.property.twig" + } + }, + "match": "(?x)\n (?<=[a-zA-Z0-9_\\x{7f}-\\x{ff}])\n (\\.)([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n (?=[\\.\\s\\|\\[\\)\\]\\}:,])\n " + }, + { + "begin": "(?x)\n (?<=[a-zA-Z0-9_\\x{7f}-\\x{ff}])\n (\\.)([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n (\\()\n ", + "beginCaptures": { + "1": { + "name": "punctuation.separator.property.twig" + }, + "2": { + "name": "variable.other.property.twig" + }, + "3": { + "name": "punctuation.definition.parameters.begin.twig" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.parameters.end.twig" + } + }, + "patterns": [ + { + "include": "#twig-constants" + }, + { + "include": "#twig-functions-warg" + }, + { + "include": "#twig-functions" + }, + { + "include": "#twig-macros" + }, + { + "include": "#twig-objects" + }, + { + "include": "#twig-properties" + }, + { + "include": "#twig-filters-warg" + }, + { + "include": "#twig-filters" + }, + { + "include": "#twig-filters-warg-ud" + }, + { + "include": "#twig-filters-ud" + }, + { + "include": "#twig-strings" + }, + { + "include": "#twig-arrays" + } + ], + "contentName": "meta.function.arguments.twig" + }, + { + "captures": { + "1": { + "name": "punctuation.section.array.begin.twig" + }, + "2": { + "name": "variable.other.property.twig" + }, + "3": { + "name": "punctuation.section.array.end.twig" + }, + "4": { + "name": "punctuation.section.array.begin.twig" + }, + "5": { + "name": "variable.other.property.twig" + }, + "6": { + "name": "punctuation.section.array.end.twig" + }, + "7": { + "name": "punctuation.section.array.begin.twig" + }, + "8": { + "name": "variable.other.property.twig" + }, + "9": { + "name": "punctuation.section.array.end.twig" + } + }, + "match": "(?x)\n (?<=[a-zA-Z0-9_\\x{7f}-\\x{ff}\\]])\n (?:\n (\\[)('[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*')(\\])\n |(\\[)(\"[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*\")(\\])\n |(\\[)([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)(\\])\n )\n " + } + ] + }, + "twig-strings": { + "patterns": [ + { + "begin": "(?:(?<!\\\\)|(?<=\\\\\\\\))'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.twig" + } + }, + "end": "(?:(?<!\\\\)|(?<=\\\\\\\\))'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.twig" + } + }, + "name": "string.quoted.single.twig" + }, + { + "begin": "(?:(?<!\\\\)|(?<=\\\\\\\\))\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.twig" + } + }, + "end": "(?:(?<!\\\\)|(?<=\\\\\\\\))\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.twig" + } + }, + "name": "string.quoted.double.twig" + } + ] + }, + "twig-arrays": { + "begin": "(?<=[\\s\\(\\{\\[:,])\\[", + "beginCaptures": { + "0": { + "name": "punctuation.section.array.begin.twig" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.section.array.end.twig" + } + }, + "patterns": [ + { + "include": "#twig-arrays" + }, + { + "include": "#twig-hashes" + }, + { + "include": "#twig-constants" + }, + { + "include": "#twig-strings" + }, + { + "include": "#twig-functions-warg" + }, + { + "include": "#twig-functions" + }, + { + "include": "#twig-macros" + }, + { + "include": "#twig-objects" + }, + { + "include": "#twig-properties" + }, + { + "include": "#twig-filters-warg" + }, + { + "include": "#twig-filters" + }, + { + "include": "#twig-filters-warg-ud" + }, + { + "include": "#twig-filters-ud" + }, + { + "match": ",", + "name": "punctuation.separator.object.twig" + } + ], + "name": "meta.array.twig" + }, + "twig-hashes": { + "begin": "(?<=[\\s\\(\\{\\[:,])\\{", + "beginCaptures": { + "0": { + "name": "punctuation.section.hash.begin.twig" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.section.hash.end.twig" + } + }, + "patterns": [ + { + "include": "#twig-hashes" + }, + { + "include": "#twig-arrays" + }, + { + "include": "#twig-constants" + }, + { + "include": "#twig-strings" + }, + { + "include": "#twig-functions-warg" + }, + { + "include": "#twig-functions" + }, + { + "include": "#twig-macros" + }, + { + "include": "#twig-objects" + }, + { + "include": "#twig-properties" + }, + { + "include": "#twig-filters-warg" + }, + { + "include": "#twig-filters" + }, + { + "include": "#twig-filters-warg-ud" + }, + { + "include": "#twig-filters-ud" + }, + { + "match": ":", + "name": "punctuation.separator.key-value.twig" + }, + { + "match": ",", + "name": "punctuation.separator.object.twig" + } + ], + "name": "meta.hash.twig" + }, + "twig-keywords": { + "match": "(?<=\\s)((?:end)?(?:autoescape|block|embed|filter|for|if|macro|raw|sandbox|set|spaceless|trans|verbatim)|as|do|else|elseif|extends|flush|from|ignore missing|import|include|only|use|with)(?=\\s)", + "name": "keyword.control.twig" + }, + "twig-functions-warg": { + "begin": "(?<=[\\s\\(\\[\\{:,])(attribute|block|constant|cycle|date|divisible by|dump|include|max|min|parent|random|range|same as|source|template_from_string)(\\()", + "beginCaptures": { + "1": { + "name": "support.function.twig" + }, + "2": { + "name": "punctuation.definition.parameters.begin.twig" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.parameters.end.twig" + } + }, + "patterns": [ + { + "include": "#twig-constants" + }, + { + "include": "#twig-functions-warg" + }, + { + "include": "#twig-functions" + }, + { + "include": "#twig-macros" + }, + { + "include": "#twig-objects" + }, + { + "include": "#twig-properties" + }, + { + "include": "#twig-filters-warg" + }, + { + "include": "#twig-filters" + }, + { + "include": "#twig-filters-warg-ud" + }, + { + "include": "#twig-filters-ud" + }, + { + "include": "#twig-strings" + }, + { + "include": "#twig-arrays" + } + ], + "contentName": "meta.function.arguments.twig" + }, + "twig-functions": { + "captures": { + "1": { + "name": "support.function.twig" + } + }, + "match": "(?<=is\\s)(defined|empty|even|iterable|odd)" + }, + "twig-macros": { + "begin": "(?x)\n (?<=[\\s\\(\\[\\{:,])\n ([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n (?:\n (\\.)([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n )?\n (\\()\n ", + "beginCaptures": { + "1": { + "name": "meta.function-call.twig" + }, + "2": { + "name": "punctuation.separator.property.twig" + }, + "3": { + "name": "variable.other.property.twig" + }, + "4": { + "name": "punctuation.definition.parameters.begin.twig" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.parameters.end.twig" + } + }, + "patterns": [ + { + "include": "#twig-constants" + }, + { + "include": "#twig-operators" + }, + { + "include": "#twig-functions-warg" + }, + { + "include": "#twig-functions" + }, + { + "include": "#twig-macros" + }, + { + "include": "#twig-objects" + }, + { + "include": "#twig-properties" + }, + { + "include": "#twig-filters-warg" + }, + { + "include": "#twig-filters" + }, + { + "include": "#twig-filters-warg-ud" + }, + { + "include": "#twig-filters-ud" + }, + { + "include": "#twig-strings" + }, + { + "include": "#twig-arrays" + }, + { + "include": "#twig-hashes" + } + ], + "contentName": "meta.function.arguments.twig" + }, + "twig-filters-warg": { + "begin": "(?<=(?:[a-zA-Z0-9_\\x{7f}-\\x{ff}\\]\\)\\'\\\"]\\|)|\\{%\\sfilter\\s)(batch|convert_encoding|date|date_modify|default|e(?:scape)?|format|join|merge|number_format|replace|round|slice|split|trim)(\\()", + "beginCaptures": { + "1": { + "name": "support.function.twig" + }, + "2": { + "name": "punctuation.definition.parameters.begin.twig" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.parameters.end.twig" + } + }, + "patterns": [ + { + "include": "#twig-constants" + }, + { + "include": "#twig-functions-warg" + }, + { + "include": "#twig-functions" + }, + { + "include": "#twig-macros" + }, + { + "include": "#twig-objects" + }, + { + "include": "#twig-properties" + }, + { + "include": "#twig-filters-warg" + }, + { + "include": "#twig-filters" + }, + { + "include": "#twig-filters-warg-ud" + }, + { + "include": "#twig-filters-ud" + }, + { + "include": "#twig-strings" + }, + { + "include": "#twig-arrays" + }, + { + "include": "#twig-hashes" + } + ], + "contentName": "meta.function.arguments.twig" + }, + "twig-filters": { + "captures": { + "1": { + "name": "support.function.twig" + } + }, + "match": "(?<=(?:[a-zA-Z0-9_\\x{7f}-\\x{ff}\\]\\)\\'\\\"]\\|)|\\{%\\sfilter\\s)(abs|capitalize|e(?:scape)?|first|join|(?:json|url)_encode|keys|last|length|lower|nl2br|number_format|raw|reverse|round|sort|striptags|title|trim|upper)(?=[\\s\\|\\]\\}\\):,]|\\.\\.|\\*\\*)" + }, + "twig-filters-warg-ud": { + "begin": "(?<=(?:[a-zA-Z0-9_\\x{7f}-\\x{ff}\\]\\)\\'\\\"]\\|)|\\{%\\sfilter\\s)([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)(\\()", + "beginCaptures": { + "1": { + "name": "meta.function-call.other.twig" + }, + "2": { + "name": "punctuation.definition.parameters.begin.twig" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.parameters.end.twig" + } + }, + "patterns": [ + { + "include": "#twig-constants" + }, + { + "include": "#twig-functions-warg" + }, + { + "include": "#twig-functions" + }, + { + "include": "#twig-macros" + }, + { + "include": "#twig-objects" + }, + { + "include": "#twig-properties" + }, + { + "include": "#twig-filters-warg" + }, + { + "include": "#twig-filters" + }, + { + "include": "#twig-filters-warg-ud" + }, + { + "include": "#twig-filters-ud" + }, + { + "include": "#twig-strings" + }, + { + "include": "#twig-arrays" + }, + { + "include": "#twig-hashes" + } + ], + "contentName": "meta.function.arguments.twig" + }, + "twig-filters-ud": { + "captures": { + "1": { + "name": "meta.function-call.other.twig" + } + }, + "match": "(?<=(?:[a-zA-Z0-9_\\x{7f}-\\x{ff}\\]\\)\\'\\\"]\\|)|\\{%\\sfilter\\s)([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)" + }, + "php": { + "begin": "(?=(^\\s*)?<\\?)", + "end": "(?!(^\\s*)?<\\?)", + "patterns": [ + { + "include": "source.php" + } + ] + }, + "python": { + "begin": "(?:^\\s*)<\\?python(?!.*\\?>)", + "end": "\\?>(?:\\s*$\\n)?", + "name": "source.python.embedded.html", + "patterns": [ + { + "include": "source.python" + } + ] + }, + "ruby": { + "patterns": [ + { + "begin": "<%+#", + "captures": { + "0": { + "name": "punctuation.definition.comment.erb" + } + }, + "end": "%>", + "name": "comment.block.erb" + }, + { + "begin": "<%+(?!>)=?", + "captures": { + "0": { + "name": "punctuation.section.embedded.ruby" + } + }, + "end": "-?%>", + "name": "source.ruby.embedded.html", + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.comment.ruby" + } + }, + "match": "(#).*?(?=-?%>)", + "name": "comment.line.number-sign.ruby" + }, + { + "include": "source.ruby" + } + ] + }, + { + "begin": "<\\?r(?!>)=?", + "captures": { + "0": { + "name": "punctuation.section.embedded.ruby.nitro" + } + }, + "end": "-?\\?>", + "name": "source.ruby.nitro.embedded.html", + "patterns": [ + { + "captures": { + "1": { + "name": "punctuation.definition.comment.ruby.nitro" + } + }, + "match": "(#).*?(?=-?\\?>)", + "name": "comment.line.number-sign.ruby.nitro" + }, + { + "include": "source.ruby" + } + ] + } + ] + }, + "string-double-quoted": { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.html" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.html" + } + }, + "name": "string.quoted.double.html", + "patterns": [ + { + "include": "#embedded-code" + }, + { + "include": "#entities" + } + ] + }, + "string-single-quoted": { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.html" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.html" + } + }, + "name": "string.quoted.single.html", + "patterns": [ + { + "include": "#embedded-code" + }, + { + "include": "#entities" + } + ] + }, + "tag-generic-attribute": { + "match": "\\b([a-zA-Z\\-:]+)", + "name": "entity.other.attribute-name.html" + }, + "tag-id-attribute": { + "begin": "\\b(id)\\b\\s*(=)", + "captures": { + "1": { + "name": "entity.other.attribute-name.id.html" + }, + "2": { + "name": "punctuation.separator.key-value.html" + } + }, + "end": "(?<='|\")", + "name": "meta.attribute-with-value.id.html", + "patterns": [ + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.html" + } + }, + "contentName": "meta.toc-list.id.html", + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.html" + } + }, + "name": "string.quoted.double.html", + "patterns": [ + { + "include": "#embedded-code" + }, + { + "include": "#entities" + } + ] + }, + { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.html" + } + }, + "contentName": "meta.toc-list.id.html", + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.html" + } + }, + "name": "string.quoted.single.html", + "patterns": [ + { + "include": "#embedded-code" + }, + { + "include": "#entities" + } + ] + } + ] + }, + "tag-stuff": { + "patterns": [ + { + "include": "#tag-id-attribute" + }, + { + "include": "#tag-generic-attribute" + }, + { + "include": "#string-double-quoted" + }, + { + "include": "#string-single-quoted" + }, + { + "include": "#embedded-code" + } + ] + } + }, + "scopeName": "text.html.twig", + "uuid": "C220B028-86FF-44CB-8A59-27937FC83730" +} diff --git a/docs/shiki/languages/typescript.tmLanguage.json b/docs/shiki/languages/typescript.tmLanguage.json new file mode 100644 index 00000000..06fede73 --- /dev/null +++ b/docs/shiki/languages/typescript.tmLanguage.json @@ -0,0 +1,5740 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/microsoft/TypeScript-TmLanguage/blob/master/TypeScript.tmLanguage", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/microsoft/TypeScript-TmLanguage/commit/8c7482b94b548eab56da64dbfb30b82589b3f747", + "name": "typescript", + "scopeName": "source.ts", + "patterns": [ + { + "include": "#directives" + }, + { + "include": "#statements" + }, + { + "include": "#shebang" + } + ], + "repository": { + "shebang": { + "name": "comment.line.shebang.ts", + "match": "\\A(#!).*(?=$)", + "captures": { + "1": { + "name": "punctuation.definition.comment.ts" + } + } + }, + "statements": { + "patterns": [ + { + "include": "#declaration" + }, + { + "include": "#control-statement" + }, + { + "include": "#after-operator-block-as-object-literal" + }, + { + "include": "#decl-block" + }, + { + "include": "#label" + }, + { + "include": "#expression" + }, + { + "include": "#punctuation-semicolon" + }, + { + "include": "#string" + }, + { + "include": "#comment" + } + ] + }, + "declaration": { + "patterns": [ + { + "include": "#decorator" + }, + { + "include": "#var-expr" + }, + { + "include": "#function-declaration" + }, + { + "include": "#class-declaration" + }, + { + "include": "#interface-declaration" + }, + { + "include": "#enum-declaration" + }, + { + "include": "#namespace-declaration" + }, + { + "include": "#type-alias-declaration" + }, + { + "include": "#import-equals-declaration" + }, + { + "include": "#import-declaration" + }, + { + "include": "#export-declaration" + }, + { + "name": "storage.modifier.ts", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(declare|export)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + } + ] + }, + "control-statement": { + "patterns": [ + { + "include": "#switch-statement" + }, + { + "include": "#for-loop" + }, + { + "name": "keyword.control.trycatch.ts", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(catch|finally|throw|try)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(break|continue|goto)\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "captures": { + "1": { + "name": "keyword.control.loop.ts" + }, + "2": { + "name": "entity.name.label.ts" + } + } + }, + { + "name": "keyword.control.loop.ts", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(break|continue|do|goto|while)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(return)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "beginCaptures": { + "0": { + "name": "keyword.control.flow.ts" + } + }, + "end": "(?=[;}]|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "name": "keyword.control.switch.ts", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(case|default|switch)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "include": "#if-statement" + }, + { + "name": "keyword.control.conditional.ts", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(else|if)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "name": "keyword.control.with.ts", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(with)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "name": "keyword.control.ts", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(package)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "name": "keyword.other.debugger.ts", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(debugger)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + } + ] + }, + "label": { + "patterns": [ + { + "begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)(?=\\s*\\{)", + "beginCaptures": { + "1": { + "name": "entity.name.label.ts" + }, + "2": { + "name": "punctuation.separator.label.ts" + } + }, + "end": "(?<=\\})", + "patterns": [ + { + "include": "#decl-block" + } + ] + }, + { + "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(:)", + "captures": { + "1": { + "name": "entity.name.label.ts" + }, + "2": { + "name": "punctuation.separator.label.ts" + } + } + } + ] + }, + "expression": { + "patterns": [ + { + "include": "#expressionWithoutIdentifiers" + }, + { + "include": "#identifiers" + }, + { + "include": "#expressionPunctuations" + } + ] + }, + "expressionWithoutIdentifiers": { + "patterns": [ + { + "include": "#string" + }, + { + "include": "#regex" + }, + { + "include": "#comment" + }, + { + "include": "#function-expression" + }, + { + "include": "#class-expression" + }, + { + "include": "#arrow-function" + }, + { + "include": "#paren-expression-possibly-arrow" + }, + { + "include": "#cast" + }, + { + "include": "#ternary-expression" + }, + { + "include": "#new-expr" + }, + { + "include": "#instanceof-expr" + }, + { + "include": "#object-literal" + }, + { + "include": "#expression-operators" + }, + { + "include": "#function-call" + }, + { + "include": "#literal" + }, + { + "include": "#support-objects" + }, + { + "include": "#paren-expression" + } + ] + }, + "expressionPunctuations": { + "patterns": [ + { + "include": "#punctuation-comma" + }, + { + "include": "#punctuation-accessor" + } + ] + }, + "decorator": { + "name": "meta.decorator.ts", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))\\@", + "beginCaptures": { + "0": { + "name": "punctuation.decorator.ts" + } + }, + "end": "(?=\\s)", + "patterns": [ + { + "include": "#expression" + } + ] + }, + "var-expr": { + "patterns": [ + { + "name": "meta.var.expr.ts", + "begin": "(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))", + "end": "(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=^|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?<!^let|[^\\._$[:alnum:]]let|^var|[^\\._$[:alnum:]]var)(?=\\s*$)))", + "patterns": [ + { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(var|let)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", + "beginCaptures": { + "1": { + "name": "keyword.control.export.ts" + }, + "2": { + "name": "storage.modifier.ts" + }, + "3": { + "name": "storage.type.ts" + } + }, + "end": "(?=\\S)" + }, + { + "include": "#destructuring-variable" + }, + { + "include": "#var-single-variable" + }, + { + "include": "#variable-initializer" + }, + { + "include": "#comment" + }, + { + "begin": "(,)\\s*(?=$|\\/\\/)", + "beginCaptures": { + "1": { + "name": "punctuation.separator.comma.ts" + } + }, + "end": "(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))", + "patterns": [ + { + "include": "#single-line-comment-consuming-line-ending" + }, + { + "include": "#comment" + }, + { + "include": "#destructuring-variable" + }, + { + "include": "#var-single-variable" + }, + { + "include": "#punctuation-comma" + } + ] + }, + { + "include": "#punctuation-comma" + } + ] + }, + { + "name": "meta.var.expr.ts", + "begin": "(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))", + "beginCaptures": { + "1": { + "name": "keyword.control.export.ts" + }, + "2": { + "name": "storage.modifier.ts" + }, + "3": { + "name": "storage.type.ts" + } + }, + "end": "(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=^|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?<!^const|[^\\._$[:alnum:]]const)(?=\\s*$)))", + "patterns": [ + { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(const(?!\\s+enum\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", + "beginCaptures": { + "1": { + "name": "keyword.control.export.ts" + }, + "2": { + "name": "storage.modifier.ts" + }, + "3": { + "name": "storage.type.ts" + } + }, + "end": "(?=\\S)" + }, + { + "include": "#destructuring-const" + }, + { + "include": "#var-single-const" + }, + { + "include": "#variable-initializer" + }, + { + "include": "#comment" + }, + { + "begin": "(,)\\s*(?=$|\\/\\/)", + "beginCaptures": { + "1": { + "name": "punctuation.separator.comma.ts" + } + }, + "end": "(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))", + "patterns": [ + { + "include": "#single-line-comment-consuming-line-ending" + }, + { + "include": "#comment" + }, + { + "include": "#destructuring-const" + }, + { + "include": "#var-single-const" + }, + { + "include": "#punctuation-comma" + } + ] + }, + { + "include": "#punctuation-comma" + } + ] + }, + { + "name": "meta.var.expr.ts", + "begin": "(?=(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))", + "beginCaptures": { + "1": { + "name": "keyword.control.export.ts" + }, + "2": { + "name": "storage.modifier.ts" + }, + "3": { + "name": "storage.type.ts" + } + }, + "end": "(?!(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))((?=;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|((?<!^using|[^\\._$[:alnum:]]using|^await\\s+using|[^\\._$[:alnum:]]await\\s+using)(?=\\s*$)))", + "patterns": [ + { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b((?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", + "beginCaptures": { + "1": { + "name": "keyword.control.export.ts" + }, + "2": { + "name": "storage.modifier.ts" + }, + "3": { + "name": "storage.type.ts" + } + }, + "end": "(?=\\S)" + }, + { + "include": "#var-single-const" + }, + { + "include": "#variable-initializer" + }, + { + "include": "#comment" + }, + { + "begin": "(,)\\s*((?!\\S)|(?=\\/\\/))", + "beginCaptures": { + "1": { + "name": "punctuation.separator.comma.ts" + } + }, + "end": "(?<!,)(((?==|;|}|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|^\\s*$))|((?<=\\S)(?=\\s*$)))", + "patterns": [ + { + "include": "#single-line-comment-consuming-line-ending" + }, + { + "include": "#comment" + }, + { + "include": "#var-single-const" + }, + { + "include": "#punctuation-comma" + } + ] + }, + { + "include": "#punctuation-comma" + } + ] + } + ] + }, + "var-single-variable": { + "patterns": [ + { + "name": "meta.var-single-variable.expr.ts", + "begin": "(?x)([_$[:alpha:]][_$[:alnum:]]*)(\\!)?(?=\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", + "beginCaptures": { + "1": { + "name": "meta.definition.variable.ts entity.name.function.ts" + }, + "2": { + "name": "keyword.operator.definiteassignment.ts" + } + }, + "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", + "patterns": [ + { + "include": "#var-single-variable-type-annotation" + } + ] + }, + { + "name": "meta.var-single-variable.expr.ts", + "begin": "([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])(\\!)?", + "beginCaptures": { + "1": { + "name": "meta.definition.variable.ts variable.other.constant.ts" + }, + "2": { + "name": "keyword.operator.definiteassignment.ts" + } + }, + "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", + "patterns": [ + { + "include": "#var-single-variable-type-annotation" + } + ] + }, + { + "name": "meta.var-single-variable.expr.ts", + "begin": "([_$[:alpha:]][_$[:alnum:]]*)(\\!)?", + "beginCaptures": { + "1": { + "name": "meta.definition.variable.ts variable.other.readwrite.ts" + }, + "2": { + "name": "keyword.operator.definiteassignment.ts" + } + }, + "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", + "patterns": [ + { + "include": "#var-single-variable-type-annotation" + } + ] + } + ] + }, + "var-single-const": { + "patterns": [ + { + "name": "meta.var-single-variable.expr.ts", + "begin": "(?x)([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", + "beginCaptures": { + "1": { + "name": "meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts" + } + }, + "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", + "patterns": [ + { + "include": "#var-single-variable-type-annotation" + } + ] + }, + { + "name": "meta.var-single-variable.expr.ts", + "begin": "([_$[:alpha:]][_$[:alnum:]]*)", + "beginCaptures": { + "1": { + "name": "meta.definition.variable.ts variable.other.constant.ts" + } + }, + "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+)|(;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", + "patterns": [ + { + "include": "#var-single-variable-type-annotation" + } + ] + } + ] + }, + "var-single-variable-type-annotation": { + "patterns": [ + { + "include": "#type-annotation" + }, + { + "include": "#string" + }, + { + "include": "#comment" + } + ] + }, + "destructuring-variable": { + "patterns": [ + { + "name": "meta.object-binding-pattern-variable.ts", + "begin": "(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\{)", + "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", + "patterns": [ + { + "include": "#object-binding-pattern" + }, + { + "include": "#type-annotation" + }, + { + "include": "#comment" + } + ] + }, + { + "name": "meta.array-binding-pattern-variable.ts", + "begin": "(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\[)", + "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", + "patterns": [ + { + "include": "#array-binding-pattern" + }, + { + "include": "#type-annotation" + }, + { + "include": "#comment" + } + ] + } + ] + }, + "destructuring-const": { + "patterns": [ + { + "name": "meta.object-binding-pattern-variable.ts", + "begin": "(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\{)", + "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", + "patterns": [ + { + "include": "#object-binding-pattern-const" + }, + { + "include": "#type-annotation" + }, + { + "include": "#comment" + } + ] + }, + { + "name": "meta.array-binding-pattern-variable.ts", + "begin": "(?<!=|:|^of|[^\\._$[:alnum:]]of|^in|[^\\._$[:alnum:]]in)\\s*(?=\\[)", + "end": "(?=$|^|[;,=}]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", + "patterns": [ + { + "include": "#array-binding-pattern-const" + }, + { + "include": "#type-annotation" + }, + { + "include": "#comment" + } + ] + } + ] + }, + "object-binding-element": { + "patterns": [ + { + "include": "#comment" + }, + { + "begin": "(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))", + "end": "(?=,|\\})", + "patterns": [ + { + "include": "#object-binding-element-propertyName" + }, + { + "include": "#binding-element" + } + ] + }, + { + "include": "#object-binding-pattern" + }, + { + "include": "#destructuring-variable-rest" + }, + { + "include": "#variable-initializer" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "object-binding-element-const": { + "patterns": [ + { + "include": "#comment" + }, + { + "begin": "(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))", + "end": "(?=,|\\})", + "patterns": [ + { + "include": "#object-binding-element-propertyName" + }, + { + "include": "#binding-element-const" + } + ] + }, + { + "include": "#object-binding-pattern-const" + }, + { + "include": "#destructuring-variable-rest-const" + }, + { + "include": "#variable-initializer" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "object-binding-element-propertyName": { + "begin": "(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))", + "end": "(:)", + "endCaptures": { + "0": { + "name": "punctuation.destructuring.ts" + } + }, + "patterns": [ + { + "include": "#string" + }, + { + "include": "#array-literal" + }, + { + "include": "#numeric-literal" + }, + { + "name": "variable.object.property.ts", + "match": "([_$[:alpha:]][_$[:alnum:]]*)" + } + ] + }, + "binding-element": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#string" + }, + { + "include": "#numeric-literal" + }, + { + "include": "#regex" + }, + { + "include": "#object-binding-pattern" + }, + { + "include": "#array-binding-pattern" + }, + { + "include": "#destructuring-variable-rest" + }, + { + "include": "#variable-initializer" + } + ] + }, + "binding-element-const": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#string" + }, + { + "include": "#numeric-literal" + }, + { + "include": "#regex" + }, + { + "include": "#object-binding-pattern-const" + }, + { + "include": "#array-binding-pattern-const" + }, + { + "include": "#destructuring-variable-rest-const" + }, + { + "include": "#variable-initializer" + } + ] + }, + "destructuring-variable-rest": { + "match": "(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)", + "captures": { + "1": { + "name": "keyword.operator.rest.ts" + }, + "2": { + "name": "meta.definition.variable.ts variable.other.readwrite.ts" + } + } + }, + "destructuring-variable-rest-const": { + "match": "(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)", + "captures": { + "1": { + "name": "keyword.operator.rest.ts" + }, + "2": { + "name": "meta.definition.variable.ts variable.other.constant.ts" + } + } + }, + "object-binding-pattern": { + "begin": "(?:(\\.\\.\\.)\\s*)?(\\{)", + "beginCaptures": { + "1": { + "name": "keyword.operator.rest.ts" + }, + "2": { + "name": "punctuation.definition.binding-pattern.object.ts" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.binding-pattern.object.ts" + } + }, + "patterns": [ + { + "include": "#object-binding-element" + } + ] + }, + "object-binding-pattern-const": { + "begin": "(?:(\\.\\.\\.)\\s*)?(\\{)", + "beginCaptures": { + "1": { + "name": "keyword.operator.rest.ts" + }, + "2": { + "name": "punctuation.definition.binding-pattern.object.ts" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.binding-pattern.object.ts" + } + }, + "patterns": [ + { + "include": "#object-binding-element-const" + } + ] + }, + "array-binding-pattern": { + "begin": "(?:(\\.\\.\\.)\\s*)?(\\[)", + "beginCaptures": { + "1": { + "name": "keyword.operator.rest.ts" + }, + "2": { + "name": "punctuation.definition.binding-pattern.array.ts" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.binding-pattern.array.ts" + } + }, + "patterns": [ + { + "include": "#binding-element" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "array-binding-pattern-const": { + "begin": "(?:(\\.\\.\\.)\\s*)?(\\[)", + "beginCaptures": { + "1": { + "name": "keyword.operator.rest.ts" + }, + "2": { + "name": "punctuation.definition.binding-pattern.array.ts" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.binding-pattern.array.ts" + } + }, + "patterns": [ + { + "include": "#binding-element-const" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "parameter-name": { + "patterns": [ + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)", + "captures": { + "1": { + "name": "storage.modifier.ts" + } + } + }, + { + "match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", + "captures": { + "1": { + "name": "storage.modifier.ts" + }, + "2": { + "name": "keyword.operator.rest.ts" + }, + "3": { + "name": "entity.name.function.ts variable.language.this.ts" + }, + "4": { + "name": "entity.name.function.ts" + }, + "5": { + "name": "keyword.operator.optional.ts" + } + } + }, + { + "match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)", + "captures": { + "1": { + "name": "storage.modifier.ts" + }, + "2": { + "name": "keyword.operator.rest.ts" + }, + "3": { + "name": "variable.parameter.ts variable.language.this.ts" + }, + "4": { + "name": "variable.parameter.ts" + }, + "5": { + "name": "keyword.operator.optional.ts" + } + } + } + ] + }, + "destructuring-parameter": { + "patterns": [ + { + "name": "meta.parameter.object-binding-pattern.ts", + "begin": "(?<!=|:)\\s*(?:(\\.\\.\\.)\\s*)?(\\{)", + "beginCaptures": { + "1": { + "name": "keyword.operator.rest.ts" + }, + "2": { + "name": "punctuation.definition.binding-pattern.object.ts" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.binding-pattern.object.ts" + } + }, + "patterns": [ + { + "include": "#parameter-object-binding-element" + } + ] + }, + { + "name": "meta.paramter.array-binding-pattern.ts", + "begin": "(?<!=|:)\\s*(?:(\\.\\.\\.)\\s*)?(\\[)", + "beginCaptures": { + "1": { + "name": "keyword.operator.rest.ts" + }, + "2": { + "name": "punctuation.definition.binding-pattern.array.ts" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.binding-pattern.array.ts" + } + }, + "patterns": [ + { + "include": "#parameter-binding-element" + }, + { + "include": "#punctuation-comma" + } + ] + } + ] + }, + "parameter-object-binding-element": { + "patterns": [ + { + "include": "#comment" + }, + { + "begin": "(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(:))", + "end": "(?=,|\\})", + "patterns": [ + { + "include": "#object-binding-element-propertyName" + }, + { + "include": "#parameter-binding-element" + }, + { + "include": "#paren-expression" + } + ] + }, + { + "include": "#parameter-object-binding-pattern" + }, + { + "include": "#destructuring-parameter-rest" + }, + { + "include": "#variable-initializer" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "parameter-binding-element": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#string" + }, + { + "include": "#numeric-literal" + }, + { + "include": "#regex" + }, + { + "include": "#parameter-object-binding-pattern" + }, + { + "include": "#parameter-array-binding-pattern" + }, + { + "include": "#destructuring-parameter-rest" + }, + { + "include": "#variable-initializer" + } + ] + }, + "destructuring-parameter-rest": { + "match": "(?:(\\.\\.\\.)\\s*)?([_$[:alpha:]][_$[:alnum:]]*)", + "captures": { + "1": { + "name": "keyword.operator.rest.ts" + }, + "2": { + "name": "variable.parameter.ts" + } + } + }, + "parameter-object-binding-pattern": { + "begin": "(?:(\\.\\.\\.)\\s*)?(\\{)", + "beginCaptures": { + "1": { + "name": "keyword.operator.rest.ts" + }, + "2": { + "name": "punctuation.definition.binding-pattern.object.ts" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.binding-pattern.object.ts" + } + }, + "patterns": [ + { + "include": "#parameter-object-binding-element" + } + ] + }, + "parameter-array-binding-pattern": { + "begin": "(?:(\\.\\.\\.)\\s*)?(\\[)", + "beginCaptures": { + "1": { + "name": "keyword.operator.rest.ts" + }, + "2": { + "name": "punctuation.definition.binding-pattern.array.ts" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.binding-pattern.array.ts" + } + }, + "patterns": [ + { + "include": "#parameter-binding-element" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "field-declaration": { + "name": "meta.field.declaration.ts", + "begin": "(?x)(?<!\\()(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)\\s+)?(?=\\s*((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|(\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|\\}|$))", + "beginCaptures": { + "1": { + "name": "storage.modifier.ts" + } + }, + "end": "(?x)(?=\\}|;|,|$|(^(?!\\s*((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|(\\#?[_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(?:(?:(\\?)|(\\!))\\s*)?(=|:|;|,|$))))|(?<=\\})", + "patterns": [ + { + "include": "#variable-initializer" + }, + { + "include": "#type-annotation" + }, + { + "include": "#string" + }, + { + "include": "#array-literal" + }, + { + "include": "#numeric-literal" + }, + { + "include": "#comment" + }, + { + "match": "(?x)(\\#?[_$[:alpha:]][_$[:alnum:]]*)(?:(\\?)|(\\!))?(?=\\s*\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", + "captures": { + "1": { + "name": "meta.definition.property.ts entity.name.function.ts" + }, + "2": { + "name": "keyword.operator.optional.ts" + }, + "3": { + "name": "keyword.operator.definiteassignment.ts" + } + } + }, + { + "name": "meta.definition.property.ts variable.object.property.ts", + "match": "\\#?[_$[:alpha:]][_$[:alnum:]]*" + }, + { + "name": "keyword.operator.optional.ts", + "match": "\\?" + }, + { + "name": "keyword.operator.definiteassignment.ts", + "match": "\\!" + } + ] + }, + "variable-initializer": { + "patterns": [ + { + "begin": "(?<!=|!)(=)(?!=)(?=\\s*\\S)(?!\\s*.*=>\\s*$)", + "beginCaptures": { + "1": { + "name": "keyword.operator.assignment.ts" + } + }, + "end": "(?=$|^|[,);}\\]]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))", + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "begin": "(?<!=|!)(=)(?!=)", + "beginCaptures": { + "1": { + "name": "keyword.operator.assignment.ts" + } + }, + "end": "(?=[,);}\\]]|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(of|in)\\s+))|(?=^\\s*$)|(?<![\\|\\&\\+\\-\\*\\/])(?<=\\S)(?<!=)(?=\\s*$)", + "patterns": [ + { + "include": "#expression" + } + ] + } + ] + }, + "function-declaration": { + "name": "meta.function.ts", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\s*", + "beginCaptures": { + "1": { + "name": "keyword.control.export.ts" + }, + "2": { + "name": "storage.modifier.ts" + }, + "3": { + "name": "storage.modifier.async.ts" + }, + "4": { + "name": "storage.type.function.ts" + }, + "5": { + "name": "keyword.generator.asterisk.ts" + }, + "6": { + "name": "meta.definition.function.ts entity.name.function.ts" + } + }, + "end": "(?=;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))|(?<=\\})", + "patterns": [ + { + "include": "#function-name" + }, + { + "include": "#function-body" + } + ] + }, + "function-expression": { + "name": "meta.function.expression.ts", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(async)\\s+)?(function\\b)(?:\\s*(\\*))?(?:(?:\\s+|(?<=\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\s*", + "beginCaptures": { + "1": { + "name": "storage.modifier.async.ts" + }, + "2": { + "name": "storage.type.function.ts" + }, + "3": { + "name": "keyword.generator.asterisk.ts" + }, + "4": { + "name": "meta.definition.function.ts entity.name.function.ts" + } + }, + "end": "(?=;)|(?<=\\})", + "patterns": [ + { + "include": "#function-name" + }, + { + "include": "#single-line-comment-consuming-line-ending" + }, + { + "include": "#function-body" + } + ] + }, + "function-name": { + "name": "meta.definition.function.ts entity.name.function.ts", + "match": "[_$[:alpha:]][_$[:alnum:]]*" + }, + "function-body": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#type-parameters" + }, + { + "include": "#function-parameters" + }, + { + "include": "#return-type" + }, + { + "include": "#type-function-return-type" + }, + { + "include": "#decl-block" + }, + { + "name": "keyword.generator.asterisk.ts", + "match": "\\*" + } + ] + }, + "method-declaration": { + "patterns": [ + { + "name": "meta.method.declaration.ts", + "begin": "(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?\\s*\\b(constructor)\\b(?!:)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "beginCaptures": { + "1": { + "name": "storage.modifier.ts" + }, + "2": { + "name": "storage.modifier.ts" + }, + "3": { + "name": "storage.modifier.ts" + }, + "4": { + "name": "storage.modifier.async.ts" + }, + "5": { + "name": "storage.type.ts" + } + }, + "end": "(?=\\}|;|,|$)|(?<=\\})", + "patterns": [ + { + "include": "#method-declaration-name" + }, + { + "include": "#function-body" + } + ] + }, + { + "name": "meta.method.declaration.ts", + "begin": "(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:(?:\\s*\\b(new)\\b(?!:)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|(?:(\\*)\\s*)?)(?=\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", + "beginCaptures": { + "1": { + "name": "storage.modifier.ts" + }, + "2": { + "name": "storage.modifier.ts" + }, + "3": { + "name": "storage.modifier.ts" + }, + "4": { + "name": "storage.modifier.async.ts" + }, + "5": { + "name": "keyword.operator.new.ts" + }, + "6": { + "name": "keyword.generator.asterisk.ts" + } + }, + "end": "(?=\\}|;|,|$)|(?<=\\})", + "patterns": [ + { + "include": "#method-declaration-name" + }, + { + "include": "#function-body" + } + ] + }, + { + "name": "meta.method.declaration.ts", + "begin": "(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(override)\\s+)?(?:\\b(public|private|protected)\\s+)?(?:\\b(abstract)\\s+)?(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", + "beginCaptures": { + "1": { + "name": "storage.modifier.ts" + }, + "2": { + "name": "storage.modifier.ts" + }, + "3": { + "name": "storage.modifier.ts" + }, + "4": { + "name": "storage.modifier.async.ts" + }, + "5": { + "name": "storage.type.property.ts" + }, + "6": { + "name": "keyword.generator.asterisk.ts" + } + }, + "end": "(?=\\}|;|,|$)|(?<=\\})", + "patterns": [ + { + "include": "#method-declaration-name" + }, + { + "include": "#function-body" + } + ] + } + ] + }, + "object-literal-method-declaration": { + "name": "meta.method.declaration.ts", + "begin": "(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", + "beginCaptures": { + "1": { + "name": "storage.modifier.async.ts" + }, + "2": { + "name": "storage.type.property.ts" + }, + "3": { + "name": "keyword.generator.asterisk.ts" + } + }, + "end": "(?=\\}|;|,)|(?<=\\})", + "patterns": [ + { + "include": "#method-declaration-name" + }, + { + "include": "#function-body" + }, + { + "begin": "(?x)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(async)\\s+)?(?:\\b(get|set)\\s+)?(?:(\\*)\\s*)?(?=\\s*(((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??))\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", + "beginCaptures": { + "1": { + "name": "storage.modifier.async.ts" + }, + "2": { + "name": "storage.type.property.ts" + }, + "3": { + "name": "keyword.generator.asterisk.ts" + } + }, + "end": "(?=\\(|\\<)", + "patterns": [ + { + "include": "#method-declaration-name" + } + ] + } + ] + }, + "method-declaration-name": { + "begin": "(?x)(?=((\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$))|([_$[:alpha:]][_$[:alnum:]]*)|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\]))\\s*(\\??)\\s*[\\(\\<])", + "end": "(?=\\(|\\<)", + "patterns": [ + { + "include": "#string" + }, + { + "include": "#array-literal" + }, + { + "include": "#numeric-literal" + }, + { + "name": "meta.definition.method.ts entity.name.function.ts", + "match": "[_$[:alpha:]][_$[:alnum:]]*" + }, + { + "name": "keyword.operator.optional.ts", + "match": "\\?" + } + ] + }, + "arrow-function": { + "patterns": [ + { + "name": "meta.arrow.ts", + "match": "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(\\basync)\\s+)?([_$[:alpha:]][_$[:alnum:]]*)\\s*(?==>)", + "captures": { + "1": { + "name": "storage.modifier.async.ts" + }, + "2": { + "name": "variable.parameter.ts" + } + } + }, + { + "name": "meta.arrow.ts", + "begin": "(?x) (?:\n (?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(\\basync)\n)? ((?<![})!\\]])\\s*\n (?=\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n )\n)", + "beginCaptures": { + "1": { + "name": "storage.modifier.async.ts" + } + }, + "end": "(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#type-parameters" + }, + { + "include": "#function-parameters" + }, + { + "include": "#arrow-return-type" + }, + { + "include": "#possibly-arrow-return-type" + } + ] + }, + { + "name": "meta.arrow.ts", + "begin": "=>", + "beginCaptures": { + "0": { + "name": "storage.type.function.arrow.ts" + } + }, + "end": "((?<=\\}|\\S)(?<!=>)|((?!\\{)(?=\\S)))(?!\\/[\\/\\*])", + "patterns": [ + { + "include": "#single-line-comment-consuming-line-ending" + }, + { + "include": "#decl-block" + }, + { + "include": "#expression" + } + ] + } + ] + }, + "indexer-declaration": { + "name": "meta.indexer.declaration.ts", + "begin": "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)\\s*)?\\s*(\\[)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=:)", + "beginCaptures": { + "1": { + "name": "storage.modifier.ts" + }, + "2": { + "name": "meta.brace.square.ts" + }, + "3": { + "name": "variable.parameter.ts" + } + }, + "end": "(\\])\\s*(\\?\\s*)?|$", + "endCaptures": { + "1": { + "name": "meta.brace.square.ts" + }, + "2": { + "name": "keyword.operator.optional.ts" + } + }, + "patterns": [ + { + "include": "#type-annotation" + } + ] + }, + "indexer-mapped-type-declaration": { + "name": "meta.indexer.mappedtype.declaration.ts", + "begin": "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([+-])?(readonly)\\s*)?\\s*(\\[)\\s*([_$[:alpha:]][_$[:alnum:]]*)\\s+(in)\\s+", + "beginCaptures": { + "1": { + "name": "keyword.operator.type.modifier.ts" + }, + "2": { + "name": "storage.modifier.ts" + }, + "3": { + "name": "meta.brace.square.ts" + }, + "4": { + "name": "entity.name.type.ts" + }, + "5": { + "name": "keyword.operator.expression.in.ts" + } + }, + "end": "(\\])([+-])?\\s*(\\?\\s*)?|$", + "endCaptures": { + "1": { + "name": "meta.brace.square.ts" + }, + "2": { + "name": "keyword.operator.type.modifier.ts" + }, + "3": { + "name": "keyword.operator.optional.ts" + } + }, + "patterns": [ + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+", + "captures": { + "1": { + "name": "keyword.control.as.ts" + } + } + }, + { + "include": "#type" + } + ] + }, + "function-parameters": { + "name": "meta.parameters.ts", + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.parameters.begin.ts" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.parameters.end.ts" + } + }, + "patterns": [ + { + "include": "#function-parameters-body" + } + ] + }, + "function-parameters-body": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#string" + }, + { + "include": "#decorator" + }, + { + "include": "#destructuring-parameter" + }, + { + "include": "#parameter-name" + }, + { + "include": "#parameter-type-annotation" + }, + { + "include": "#variable-initializer" + }, + { + "name": "punctuation.separator.parameter.ts", + "match": "," + } + ] + }, + "class-declaration": { + "name": "meta.class.ts", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(?:(abstract)\\s+)?\\b(class)\\b(?=\\s+|/[/*])", + "beginCaptures": { + "1": { + "name": "keyword.control.export.ts" + }, + "2": { + "name": "storage.modifier.ts" + }, + "3": { + "name": "storage.modifier.ts" + }, + "4": { + "name": "storage.type.class.ts" + } + }, + "end": "(?<=\\})", + "patterns": [ + { + "include": "#class-declaration-or-expression-patterns" + } + ] + }, + "class-expression": { + "name": "meta.class.ts", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(class)\\b(?=\\s+|[<{]|\\/[\\/*])", + "beginCaptures": { + "1": { + "name": "storage.modifier.ts" + }, + "2": { + "name": "storage.type.class.ts" + } + }, + "end": "(?<=\\})", + "patterns": [ + { + "include": "#class-declaration-or-expression-patterns" + } + ] + }, + "class-declaration-or-expression-patterns": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#class-or-interface-heritage" + }, + { + "match": "[_$[:alpha:]][_$[:alnum:]]*", + "captures": { + "0": { + "name": "entity.name.type.class.ts" + } + } + }, + { + "include": "#type-parameters" + }, + { + "include": "#class-or-interface-body" + } + ] + }, + "interface-declaration": { + "name": "meta.interface.ts", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(?:(abstract)\\s+)?\\b(interface)\\b(?=\\s+|/[/*])", + "beginCaptures": { + "1": { + "name": "keyword.control.export.ts" + }, + "2": { + "name": "storage.modifier.ts" + }, + "3": { + "name": "storage.modifier.ts" + }, + "4": { + "name": "storage.type.interface.ts" + } + }, + "end": "(?<=\\})", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#class-or-interface-heritage" + }, + { + "match": "[_$[:alpha:]][_$[:alnum:]]*", + "captures": { + "0": { + "name": "entity.name.type.interface.ts" + } + } + }, + { + "include": "#type-parameters" + }, + { + "include": "#class-or-interface-body" + } + ] + }, + "class-or-interface-heritage": { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:\\b(extends|implements)\\b)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "beginCaptures": { + "1": { + "name": "storage.modifier.ts" + } + }, + "end": "(?=\\{)", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#class-or-interface-heritage" + }, + { + "include": "#type-parameters" + }, + { + "include": "#expressionWithoutIdentifiers" + }, + { + "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))(?=\\s*[_$[:alpha:]][_$[:alnum:]]*(\\s*\\??\\.\\s*[_$[:alpha:]][_$[:alnum:]]*)*\\s*)", + "captures": { + "1": { + "name": "entity.name.type.module.ts" + }, + "2": { + "name": "punctuation.accessor.ts" + }, + "3": { + "name": "punctuation.accessor.optional.ts" + } + } + }, + { + "match": "([_$[:alpha:]][_$[:alnum:]]*)", + "captures": { + "1": { + "name": "entity.other.inherited-class.ts" + } + } + }, + { + "include": "#expressionPunctuations" + } + ] + }, + "class-or-interface-body": { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.block.ts" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.ts" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#decorator" + }, + { + "begin": "(?<=:)\\s*", + "end": "(?=\\s|[;),}\\]:\\-\\+]|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "include": "#method-declaration" + }, + { + "include": "#indexer-declaration" + }, + { + "include": "#field-declaration" + }, + { + "include": "#string" + }, + { + "include": "#type-annotation" + }, + { + "include": "#variable-initializer" + }, + { + "include": "#access-modifier" + }, + { + "include": "#property-accessor" + }, + { + "include": "#async-modifier" + }, + { + "include": "#after-operator-block-as-object-literal" + }, + { + "include": "#decl-block" + }, + { + "include": "#expression" + }, + { + "include": "#punctuation-comma" + }, + { + "include": "#punctuation-semicolon" + } + ] + }, + "access-modifier": { + "name": "storage.modifier.ts", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(abstract|declare|override|public|protected|private|readonly|static)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + "property-accessor": { + "name": "storage.type.property.ts", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(accessor|get|set)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + "async-modifier": { + "name": "storage.modifier.async.ts", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(async)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + "enum-declaration": { + "name": "meta.enum.declaration.ts", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?(?:\\b(const)\\s+)?\\b(enum)\\s+([_$[:alpha:]][_$[:alnum:]]*)", + "beginCaptures": { + "1": { + "name": "keyword.control.export.ts" + }, + "2": { + "name": "storage.modifier.ts" + }, + "3": { + "name": "storage.modifier.ts" + }, + "4": { + "name": "storage.type.enum.ts" + }, + "5": { + "name": "entity.name.type.enum.ts" + } + }, + "end": "(?<=\\})", + "patterns": [ + { + "include": "#comment" + }, + { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.block.ts" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.ts" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "begin": "([_$[:alpha:]][_$[:alnum:]]*)", + "beginCaptures": { + "0": { + "name": "variable.other.enummember.ts" + } + }, + "end": "(?=,|\\}|$)", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#variable-initializer" + } + ] + }, + { + "begin": "(?=((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])+\\])))", + "end": "(?=,|\\}|$)", + "patterns": [ + { + "include": "#string" + }, + { + "include": "#array-literal" + }, + { + "include": "#comment" + }, + { + "include": "#variable-initializer" + } + ] + }, + { + "include": "#punctuation-comma" + } + ] + } + ] + }, + "namespace-declaration": { + "name": "meta.namespace.declaration.ts", + "begin": "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(namespace|module)\\s+(?=[_$[:alpha:]\"'`]))", + "beginCaptures": { + "1": { + "name": "keyword.control.export.ts" + }, + "2": { + "name": "storage.modifier.ts" + }, + "3": { + "name": "storage.type.namespace.ts" + } + }, + "end": "(?<=\\})|(?=;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#string" + }, + { + "name": "entity.name.type.module.ts", + "match": "([_$[:alpha:]][_$[:alnum:]]*)" + }, + { + "include": "#punctuation-accessor" + }, + { + "include": "#decl-block" + } + ] + }, + "type-alias-declaration": { + "name": "meta.type.declaration.ts", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(type)\\b\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*", + "beginCaptures": { + "1": { + "name": "keyword.control.export.ts" + }, + "2": { + "name": "storage.modifier.ts" + }, + "3": { + "name": "storage.type.type.ts" + }, + "4": { + "name": "entity.name.type.alias.ts" + } + }, + "end": "(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#type-parameters" + }, + { + "begin": "(=)\\s*(intrinsic)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "beginCaptures": { + "1": { + "name": "keyword.operator.assignment.ts" + }, + "2": { + "name": "keyword.control.intrinsic.ts" + } + }, + "end": "(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", + "patterns": [ + { + "include": "#type" + } + ] + }, + { + "begin": "(=)\\s*", + "beginCaptures": { + "1": { + "name": "keyword.operator.assignment.ts" + } + }, + "end": "(?=\\}|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", + "patterns": [ + { + "include": "#type" + } + ] + } + ] + }, + "import-equals-declaration": { + "patterns": [ + { + "name": "meta.import-equals.external.ts", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*(=)\\s*(require)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "keyword.control.export.ts" + }, + "2": { + "name": "storage.modifier.ts" + }, + "3": { + "name": "keyword.control.import.ts" + }, + "4": { + "name": "keyword.control.type.ts" + }, + "5": { + "name": "variable.other.readwrite.alias.ts" + }, + "6": { + "name": "keyword.operator.assignment.ts" + }, + "7": { + "name": "keyword.control.require.ts" + }, + "8": { + "name": "meta.brace.round.ts" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "meta.brace.round.ts" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#string" + } + ] + }, + { + "name": "meta.import-equals.internal.ts", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type))?\\s+([_$[:alpha:]][_$[:alnum:]]*)\\s*(=)\\s*(?!require\\b)", + "beginCaptures": { + "1": { + "name": "keyword.control.export.ts" + }, + "2": { + "name": "storage.modifier.ts" + }, + "3": { + "name": "keyword.control.import.ts" + }, + "4": { + "name": "keyword.control.type.ts" + }, + "5": { + "name": "variable.other.readwrite.alias.ts" + }, + "6": { + "name": "keyword.operator.assignment.ts" + } + }, + "end": "(?=;|$|^)", + "patterns": [ + { + "include": "#single-line-comment-consuming-line-ending" + }, + { + "include": "#comment" + }, + { + "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", + "captures": { + "1": { + "name": "entity.name.type.module.ts" + }, + "2": { + "name": "punctuation.accessor.ts" + }, + "3": { + "name": "punctuation.accessor.optional.ts" + } + } + }, + { + "name": "variable.other.readwrite.ts", + "match": "([_$[:alpha:]][_$[:alnum:]]*)" + } + ] + } + ] + }, + "import-declaration": { + "name": "meta.import.ts", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(\\bexport)\\s+)?(?:(\\bdeclare)\\s+)?\\b(import)(?:\\s+(type)(?!\\s+from))?(?!\\s*[:\\(])(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "beginCaptures": { + "1": { + "name": "keyword.control.export.ts" + }, + "2": { + "name": "storage.modifier.ts" + }, + "3": { + "name": "keyword.control.import.ts" + }, + "4": { + "name": "keyword.control.type.ts" + } + }, + "end": "(?<!^import|[^\\._$[:alnum:]]import)(?=;|$|^)", + "patterns": [ + { + "include": "#single-line-comment-consuming-line-ending" + }, + { + "include": "#comment" + }, + { + "include": "#string" + }, + { + "begin": "(?<=^import|[^\\._$[:alnum:]]import)(?!\\s*[\"'])", + "end": "\\bfrom\\b", + "endCaptures": { + "0": { + "name": "keyword.control.from.ts" + } + }, + "patterns": [ + { + "include": "#import-export-declaration" + } + ] + }, + { + "include": "#import-export-declaration" + } + ] + }, + "export-declaration": { + "patterns": [ + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)\\s+(as)\\s+(namespace)\\s+([_$[:alpha:]][_$[:alnum:]]*)", + "captures": { + "1": { + "name": "keyword.control.export.ts" + }, + "2": { + "name": "keyword.control.as.ts" + }, + "3": { + "name": "storage.type.namespace.ts" + }, + "4": { + "name": "entity.name.type.module.ts" + } + } + }, + { + "name": "meta.export.default.ts", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)(?:\\s+(type))?(?:(?:\\s*(=))|(?:\\s+(default)(?=\\s+)))", + "beginCaptures": { + "1": { + "name": "keyword.control.export.ts" + }, + "2": { + "name": "keyword.control.type.ts" + }, + "3": { + "name": "keyword.operator.assignment.ts" + }, + "4": { + "name": "keyword.control.default.ts" + } + }, + "end": "(?=$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", + "patterns": [ + { + "include": "#interface-declaration" + }, + { + "include": "#expression" + } + ] + }, + { + "name": "meta.export.ts", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(export)(?:\\s+(type))?\\b(?!(\\$)|(\\s*:))((?=\\s*[\\{*])|((?=\\s*[_$[:alpha:]][_$[:alnum:]]*(\\s|,))(?!\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b)))", + "beginCaptures": { + "1": { + "name": "keyword.control.export.ts" + }, + "2": { + "name": "keyword.control.type.ts" + } + }, + "end": "(?=$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", + "patterns": [ + { + "include": "#import-export-declaration" + } + ] + } + ] + }, + "import-export-declaration": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#string" + }, + { + "include": "#import-export-block" + }, + { + "name": "keyword.control.from.ts", + "match": "\\bfrom\\b" + }, + { + "include": "#import-export-assert-clause" + }, + { + "include": "#import-export-clause" + } + ] + }, + "import-export-assert-clause": { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(assert)\\s*(\\{)", + "beginCaptures": { + "1": { + "name": "keyword.control.assert.ts" + }, + "2": { + "name": "punctuation.definition.block.ts" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.ts" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#string" + }, + { + "name": "meta.object-literal.key.ts", + "match": "(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)" + }, + { + "name": "punctuation.separator.key-value.ts", + "match": ":" + } + ] + }, + "import-export-block": { + "name": "meta.block.ts", + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.block.ts" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.ts" + } + }, + "patterns": [ + { + "include": "#import-export-clause" + } + ] + }, + "import-export-clause": { + "patterns": [ + { + "include": "#comment" + }, + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(?:(\\btype)\\s+)?(?:(\\bdefault)|(\\*)|(\\b[_$[:alpha:]][_$[:alnum:]]*)))\\s+(as)\\s+(?:(default(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|([_$[:alpha:]][_$[:alnum:]]*))", + "captures": { + "1": { + "name": "keyword.control.type.ts" + }, + "2": { + "name": "keyword.control.default.ts" + }, + "3": { + "name": "constant.language.import-export-all.ts" + }, + "4": { + "name": "variable.other.readwrite.ts" + }, + "5": { + "name": "keyword.control.as.ts" + }, + "6": { + "name": "keyword.control.default.ts" + }, + "7": { + "name": "variable.other.readwrite.alias.ts" + } + } + }, + { + "include": "#punctuation-comma" + }, + { + "name": "constant.language.import-export-all.ts", + "match": "\\*" + }, + { + "name": "keyword.control.default.ts", + "match": "\\b(default)\\b" + }, + { + "match": "(?:(\\btype)\\s+)?([_$[:alpha:]][_$[:alnum:]]*)", + "captures": { + "1": { + "name": "keyword.control.type.ts" + }, + "2": { + "name": "variable.other.readwrite.alias.ts" + } + } + } + ] + }, + "switch-statement": { + "name": "switch-statement.expr.ts", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=\\bswitch\\s*\\()", + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.ts" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "name": "switch-expression.expr.ts", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(switch)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "keyword.control.switch.ts" + }, + "2": { + "name": "meta.brace.round.ts" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "meta.brace.round.ts" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "name": "switch-block.expr.ts", + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.block.ts" + } + }, + "end": "(?=\\})", + "patterns": [ + { + "name": "case-clause.expr.ts", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(case|default(?=:))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "beginCaptures": { + "1": { + "name": "keyword.control.switch.ts" + } + }, + "end": "(?=:)", + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "begin": "(:)\\s*(\\{)", + "beginCaptures": { + "1": { + "name": "case-clause.expr.ts punctuation.definition.section.case-statement.ts" + }, + "2": { + "name": "meta.block.ts punctuation.definition.block.ts" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "meta.block.ts punctuation.definition.block.ts" + } + }, + "contentName": "meta.block.ts", + "patterns": [ + { + "include": "#statements" + } + ] + }, + { + "match": "(:)", + "captures": { + "0": { + "name": "case-clause.expr.ts punctuation.definition.section.case-statement.ts" + } + } + }, + { + "include": "#statements" + } + ] + } + ] + }, + "for-loop": { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))for(?=((\\s+|(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*))await)?\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)?(\\())", + "beginCaptures": { + "0": { + "name": "keyword.control.loop.ts" + } + }, + "end": "(?<=\\))", + "patterns": [ + { + "include": "#comment" + }, + { + "name": "keyword.control.loop.ts", + "match": "await" + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "meta.brace.round.ts" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "meta.brace.round.ts" + } + }, + "patterns": [ + { + "include": "#var-expr" + }, + { + "include": "#expression" + }, + { + "include": "#punctuation-semicolon" + } + ] + } + ] + }, + "if-statement": { + "patterns": [ + { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?=\\bif\\s*(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))\\s*(?!\\{))", + "end": "(?=;|$|\\})", + "patterns": [ + { + "include": "#comment" + }, + { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(if)\\s*(\\()", + "beginCaptures": { + "1": { + "name": "keyword.control.conditional.ts" + }, + "2": { + "name": "meta.brace.round.ts" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "meta.brace.round.ts" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "name": "string.regexp.ts", + "begin": "(?<=\\))\\s*\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.ts" + } + }, + "end": "(/)([dgimsuy]*)", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.ts" + }, + "2": { + "name": "keyword.other.ts" + } + }, + "patterns": [ + { + "include": "#regexp" + } + ] + }, + { + "include": "#statements" + } + ] + } + ] + }, + "decl-block": { + "name": "meta.block.ts", + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.block.ts" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.ts" + } + }, + "patterns": [ + { + "include": "#statements" + } + ] + }, + "after-operator-block-as-object-literal": { + "name": "meta.objectliteral.ts", + "begin": "(?<!\\+\\+|--)(?<=[:=(,\\[?+!>]|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^yield|[^\\._$[:alnum:]]yield|^throw|[^\\._$[:alnum:]]throw|^in|[^\\._$[:alnum:]]in|^of|[^\\._$[:alnum:]]of|^typeof|[^\\._$[:alnum:]]typeof|&&|\\|\\||\\*)\\s*(\\{)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.block.ts" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.ts" + } + }, + "patterns": [ + { + "include": "#object-member" + } + ] + }, + "object-literal": { + "name": "meta.objectliteral.ts", + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.block.ts" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.ts" + } + }, + "patterns": [ + { + "include": "#object-member" + } + ] + }, + "object-member": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#object-literal-method-declaration" + }, + { + "name": "meta.object.member.ts meta.object-literal.key.ts", + "begin": "(?=\\[)", + "end": "(?=:)|((?<=[\\]])(?=\\s*[\\(\\<]))", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#array-literal" + } + ] + }, + { + "name": "meta.object.member.ts meta.object-literal.key.ts", + "begin": "(?=[\\'\\\"\\`])", + "end": "(?=:)|((?<=[\\'\\\"\\`])(?=((\\s*[\\(\\<,}])|(\\s+(as|satisifies)\\s+))))", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#string" + } + ] + }, + { + "name": "meta.object.member.ts meta.object-literal.key.ts", + "begin": "(?x)(?=(\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$))|(\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$))|((?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$)))", + "end": "(?=:)|(?=\\s*([\\(\\<,}])|(\\s+as|satisifies\\s+))", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#numeric-literal" + } + ] + }, + { + "name": "meta.method.declaration.ts", + "begin": "(?<=[\\]\\'\\\"\\`])(?=\\s*[\\(\\<])", + "end": "(?=\\}|;|,)|(?<=\\})", + "patterns": [ + { + "include": "#function-body" + } + ] + }, + { + "name": "meta.object.member.ts", + "match": "(?![_$[:alpha:]])([[:digit:]]+)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)", + "captures": { + "0": { + "name": "meta.object-literal.key.ts" + }, + "1": { + "name": "constant.numeric.decimal.ts" + } + } + }, + { + "name": "meta.object.member.ts", + "match": "(?x)(?:([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:(\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/)*\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", + "captures": { + "0": { + "name": "meta.object-literal.key.ts" + }, + "1": { + "name": "entity.name.function.ts" + } + } + }, + { + "name": "meta.object.member.ts", + "match": "(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)", + "captures": { + "0": { + "name": "meta.object-literal.key.ts" + } + } + }, + { + "name": "meta.object.member.ts", + "begin": "\\.\\.\\.", + "beginCaptures": { + "0": { + "name": "keyword.operator.spread.ts" + } + }, + "end": "(?=,|\\})", + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "name": "meta.object.member.ts", + "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=,|\\}|$|\\/\\/|\\/\\*)", + "captures": { + "1": { + "name": "variable.other.readwrite.ts" + } + } + }, + { + "name": "meta.object.member.ts", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*([,}]|$))", + "captures": { + "1": { + "name": "keyword.control.as.ts" + }, + "2": { + "name": "storage.modifier.ts" + } + } + }, + { + "name": "meta.object.member.ts", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(as)|(satisfies))\\s+", + "beginCaptures": { + "1": { + "name": "keyword.control.as.ts" + }, + "2": { + "name": "keyword.control.satisfies.ts" + } + }, + "end": "(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|^|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as|satisifies)\\s+))", + "patterns": [ + { + "include": "#type" + } + ] + }, + { + "name": "meta.object.member.ts", + "begin": "(?=[_$[:alpha:]][_$[:alnum:]]*\\s*=)", + "end": "(?=,|\\}|$|\\/\\/|\\/\\*)", + "patterns": [ + { + "include": "#expression" + } + ] + }, + { + "name": "meta.object.member.ts", + "begin": ":", + "beginCaptures": { + "0": { + "name": "meta.object-literal.key.ts punctuation.separator.key-value.ts" + } + }, + "end": "(?=,|\\})", + "patterns": [ + { + "begin": "(?<=:)\\s*(async)?(?=\\s*(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", + "beginCaptures": { + "1": { + "name": "storage.modifier.async.ts" + } + }, + "end": "(?<=\\))", + "patterns": [ + { + "include": "#type-parameters" + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "meta.brace.round.ts" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "meta.brace.round.ts" + } + }, + "patterns": [ + { + "include": "#expression-inside-possibly-arrow-parens" + } + ] + } + ] + }, + { + "begin": "(?<=:)\\s*(async)?\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", + "beginCaptures": { + "1": { + "name": "storage.modifier.async.ts" + }, + "2": { + "name": "meta.brace.round.ts" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "meta.brace.round.ts" + } + }, + "patterns": [ + { + "include": "#expression-inside-possibly-arrow-parens" + } + ] + }, + { + "begin": "(?<=:)\\s*(async)?\\s*(?=\\<\\s*$)", + "beginCaptures": { + "1": { + "name": "storage.modifier.async.ts" + } + }, + "end": "(?<=\\>)", + "patterns": [ + { + "include": "#type-parameters" + } + ] + }, + { + "begin": "(?<=\\>)\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", + "beginCaptures": { + "1": { + "name": "meta.brace.round.ts" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "meta.brace.round.ts" + } + }, + "patterns": [ + { + "include": "#expression-inside-possibly-arrow-parens" + } + ] + }, + { + "include": "#possibly-arrow-return-type" + }, + { + "include": "#expression" + } + ] + }, + { + "include": "#punctuation-comma" + }, + { + "include": "#decl-block" + } + ] + }, + "ternary-expression": { + "begin": "(?!\\?\\.\\s*[^[:digit:]])(\\?)(?!\\?)", + "beginCaptures": { + "1": { + "name": "keyword.operator.ternary.ts" + } + }, + "end": "\\s*(:)", + "endCaptures": { + "1": { + "name": "keyword.operator.ternary.ts" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + "function-call": { + "patterns": [ + { + "begin": "(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())", + "end": "(?<=\\))(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())", + "patterns": [ + { + "name": "meta.function-call.ts", + "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))", + "end": "(?=\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?\\())", + "patterns": [ + { + "include": "#function-call-target" + } + ] + }, + { + "include": "#comment" + }, + { + "include": "#function-call-optionals" + }, + { + "include": "#type-arguments" + }, + { + "include": "#paren-expression" + } + ] + }, + { + "begin": "(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))", + "end": "(?<=\\>)(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))", + "patterns": [ + { + "name": "meta.function-call.ts", + "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))", + "end": "(?=(<\\s*[\\{\\[\\(]\\s*$))", + "patterns": [ + { + "include": "#function-call-target" + } + ] + }, + { + "include": "#comment" + }, + { + "include": "#function-call-optionals" + }, + { + "include": "#type-arguments" + } + ] + } + ] + }, + "function-call-target": { + "patterns": [ + { + "include": "#support-function-call-identifiers" + }, + { + "name": "entity.name.function.ts", + "match": "(\\#?[_$[:alpha:]][_$[:alnum:]]*)" + } + ] + }, + "function-call-optionals": { + "patterns": [ + { + "name": "meta.function-call.ts punctuation.accessor.optional.ts", + "match": "\\?\\." + }, + { + "name": "meta.function-call.ts keyword.operator.definiteassignment.ts", + "match": "\\!" + } + ] + }, + "support-function-call-identifiers": { + "patterns": [ + { + "include": "#literal" + }, + { + "include": "#support-objects" + }, + { + "include": "#object-identifiers" + }, + { + "include": "#punctuation-accessor" + }, + { + "name": "keyword.operator.expression.import.ts", + "match": "(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*[\\(]\\s*[\\\"\\'\\`]))" + } + ] + }, + "new-expr": { + "name": "new.expr.ts", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(new)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "beginCaptures": { + "1": { + "name": "keyword.operator.new.ts" + } + }, + "end": "(?<=\\))|(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))new(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))function((\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\s*[\\(]))))", + "patterns": [ + { + "include": "#expression" + } + ] + }, + "instanceof-expr": { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(instanceof)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "beginCaptures": { + "1": { + "name": "keyword.operator.expression.instanceof.ts" + } + }, + "end": "(?<=\\))|(?=[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|(===|!==|==|!=)|(([\\&\\~\\^\\|]\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s+instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))function((\\s+[_$[:alpha:]][_$[:alnum:]]*)|(\\s*[\\(]))))", + "patterns": [ + { + "include": "#type" + } + ] + }, + "paren-expression-possibly-arrow": { + "patterns": [ + { + "begin": "(?<=[(=,])\\s*(async)?(?=\\s*((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", + "beginCaptures": { + "1": { + "name": "storage.modifier.async.ts" + } + }, + "end": "(?<=\\))", + "patterns": [ + { + "include": "#paren-expression-possibly-arrow-with-typeparameters" + } + ] + }, + { + "begin": "(?<=[(=,]|=>|^return|[^\\._$[:alnum:]]return)\\s*(async)?(?=\\s*((((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\()|(<)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)))\\s*$)", + "beginCaptures": { + "1": { + "name": "storage.modifier.async.ts" + } + }, + "end": "(?<=\\))", + "patterns": [ + { + "include": "#paren-expression-possibly-arrow-with-typeparameters" + } + ] + }, + { + "include": "#possibly-arrow-return-type" + } + ] + }, + "paren-expression-possibly-arrow-with-typeparameters": { + "patterns": [ + { + "include": "#type-parameters" + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "meta.brace.round.ts" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "meta.brace.round.ts" + } + }, + "patterns": [ + { + "include": "#expression-inside-possibly-arrow-parens" + } + ] + } + ] + }, + "expression-inside-possibly-arrow-parens": { + "patterns": [ + { + "include": "#expressionWithoutIdentifiers" + }, + { + "include": "#comment" + }, + { + "include": "#string" + }, + { + "include": "#decorator" + }, + { + "include": "#destructuring-parameter" + }, + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|protected|private|readonly)\\s+(?=(override|public|protected|private|readonly)\\s+)", + "captures": { + "1": { + "name": "storage.modifier.ts" + } + } + }, + { + "match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*\n# function assignment |\n(=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", + "captures": { + "1": { + "name": "storage.modifier.ts" + }, + "2": { + "name": "keyword.operator.rest.ts" + }, + "3": { + "name": "entity.name.function.ts variable.language.this.ts" + }, + "4": { + "name": "entity.name.function.ts" + }, + "5": { + "name": "keyword.operator.optional.ts" + } + } + }, + { + "match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(override|public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*(\\??)(?=\\s*[:,]|$)", + "captures": { + "1": { + "name": "storage.modifier.ts" + }, + "2": { + "name": "keyword.operator.rest.ts" + }, + "3": { + "name": "variable.parameter.ts variable.language.this.ts" + }, + "4": { + "name": "variable.parameter.ts" + }, + "5": { + "name": "keyword.operator.optional.ts" + } + } + }, + { + "include": "#type-annotation" + }, + { + "include": "#variable-initializer" + }, + { + "name": "punctuation.separator.parameter.ts", + "match": "," + }, + { + "include": "#identifiers" + }, + { + "include": "#expressionPunctuations" + } + ] + }, + "paren-expression": { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "meta.brace.round.ts" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "meta.brace.round.ts" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + "cast": { + "patterns": [ + { + "name": "cast.expr.ts", + "match": "\\s*(<)\\s*(const)\\s*(>)", + "captures": { + "1": { + "name": "meta.brace.angle.ts" + }, + "2": { + "name": "storage.modifier.ts" + }, + "3": { + "name": "meta.brace.angle.ts" + } + } + }, + { + "name": "cast.expr.ts", + "begin": "(?:(?<!\\+\\+|--)(?<=^return|[^\\._$[:alnum:]]return|^throw|[^\\._$[:alnum:]]throw|^yield|[^\\._$[:alnum:]]yield|^await|[^\\._$[:alnum:]]await|^default|[^\\._$[:alnum:]]default|[=(,:>*?\\&\\|\\^]|[^_$[:alnum:]](?:\\+\\+|\\-\\-)|[^\\+]\\+|[^\\-]\\-))\\s*(<)(?!<?\\=)(?!\\s*$)", + "beginCaptures": { + "1": { + "name": "meta.brace.angle.ts" + } + }, + "end": "(\\>)", + "endCaptures": { + "1": { + "name": "meta.brace.angle.ts" + } + }, + "patterns": [ + { + "include": "#type" + } + ] + }, + { + "name": "cast.expr.ts", + "begin": "(?:(?<=^))\\s*(<)(?=[_$[:alpha:]][_$[:alnum:]]*\\s*>)", + "beginCaptures": { + "1": { + "name": "meta.brace.angle.ts" + } + }, + "end": "(\\>)", + "endCaptures": { + "1": { + "name": "meta.brace.angle.ts" + } + }, + "patterns": [ + { + "include": "#type" + } + ] + } + ] + }, + "expression-operators": { + "patterns": [ + { + "name": "keyword.control.flow.ts", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(await)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(yield)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?=\\s*\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*\\*)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.ts" + } + }, + "end": "\\*", + "endCaptures": { + "0": { + "name": "keyword.generator.asterisk.ts" + } + }, + "patterns": [ + { + "include": "#comment" + } + ] + }, + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(yield)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s*(\\*))?", + "captures": { + "1": { + "name": "keyword.control.flow.ts" + }, + "2": { + "name": "keyword.generator.asterisk.ts" + } + } + }, + { + "name": "keyword.operator.expression.delete.ts", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))delete(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "name": "keyword.operator.expression.in.ts", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))in(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()" + }, + { + "name": "keyword.operator.expression.of.ts", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))of(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?!\\()" + }, + { + "name": "keyword.operator.expression.instanceof.ts", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "name": "keyword.operator.new.ts", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))new(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "include": "#typeof-operator" + }, + { + "name": "keyword.operator.expression.void.ts", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))void(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as)\\s+(const)(?=\\s*($|[;,:})\\]]))", + "captures": { + "1": { + "name": "keyword.control.as.ts" + }, + "2": { + "name": "storage.modifier.ts" + } + } + }, + { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(as)|(satisfies))\\s+", + "beginCaptures": { + "1": { + "name": "keyword.control.as.ts" + }, + "2": { + "name": "keyword.control.satisfies.ts" + } + }, + "end": "(?=^|[;),}\\]:?\\-\\+\\>]|\\|\\||\\&\\&|\\!\\=\\=|$|((?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(as|satisfies)\\s+)|(\\s+\\<))", + "patterns": [ + { + "include": "#type" + } + ] + }, + { + "name": "keyword.operator.spread.ts", + "match": "\\.\\.\\." + }, + { + "name": "keyword.operator.assignment.compound.ts", + "match": "\\*=|(?<!\\()/=|%=|\\+=|\\-=" + }, + { + "name": "keyword.operator.assignment.compound.bitwise.ts", + "match": "\\&=|\\^=|<<=|>>=|>>>=|\\|=" + }, + { + "name": "keyword.operator.bitwise.shift.ts", + "match": "<<|>>>|>>" + }, + { + "name": "keyword.operator.comparison.ts", + "match": "===|!==|==|!=" + }, + { + "name": "keyword.operator.relational.ts", + "match": "<=|>=|<>|<|>" + }, + { + "match": "(?<=[_$[:alnum:]])(\\!)\\s*(?:(/=)|(?:(/)(?![/*])))", + "captures": { + "1": { + "name": "keyword.operator.logical.ts" + }, + "2": { + "name": "keyword.operator.assignment.compound.ts" + }, + "3": { + "name": "keyword.operator.arithmetic.ts" + } + } + }, + { + "name": "keyword.operator.logical.ts", + "match": "\\!|&&|\\|\\||\\?\\?" + }, + { + "name": "keyword.operator.bitwise.ts", + "match": "\\&|~|\\^|\\|" + }, + { + "name": "keyword.operator.assignment.ts", + "match": "\\=" + }, + { + "name": "keyword.operator.decrement.ts", + "match": "--" + }, + { + "name": "keyword.operator.increment.ts", + "match": "\\+\\+" + }, + { + "name": "keyword.operator.arithmetic.ts", + "match": "%|\\*|/|-|\\+" + }, + { + "begin": "(?<=[_$[:alnum:])\\]])\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)+(?:(/=)|(?:(/)(?![/*]))))", + "end": "(?:(/=)|(?:(/)(?!\\*([^\\*]|(\\*[^\\/]))*\\*\\/)))", + "endCaptures": { + "1": { + "name": "keyword.operator.assignment.compound.ts" + }, + "2": { + "name": "keyword.operator.arithmetic.ts" + } + }, + "patterns": [ + { + "include": "#comment" + } + ] + }, + { + "match": "(?<=[_$[:alnum:])\\]])\\s*(?:(/=)|(?:(/)(?![/*])))", + "captures": { + "1": { + "name": "keyword.operator.assignment.compound.ts" + }, + "2": { + "name": "keyword.operator.arithmetic.ts" + } + } + } + ] + }, + "typeof-operator": { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))typeof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "beginCaptures": { + "0": { + "name": "keyword.operator.expression.typeof.ts" + } + }, + "end": "(?=[,);}\\]=>:&|{\\?]|(extends\\s+)|$|;|^\\s*$|(?:^\\s*(?:abstract|async|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|break|case|catch|class|const|continue|declare|do|else|enum|export|finally|function|for|goto|if|import|interface|let|module|namespace|switch|return|throw|try|type|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|var|while)\\b))", + "patterns": [ + { + "include": "#type-arguments" + }, + { + "include": "#expression" + } + ] + }, + "literal": { + "patterns": [ + { + "include": "#numeric-literal" + }, + { + "include": "#boolean-literal" + }, + { + "include": "#null-literal" + }, + { + "include": "#undefined-literal" + }, + { + "include": "#numericConstant-literal" + }, + { + "include": "#array-literal" + }, + { + "include": "#this-literal" + }, + { + "include": "#super-literal" + } + ] + }, + "array-literal": { + "name": "meta.array.literal.ts", + "begin": "\\s*(\\[)", + "beginCaptures": { + "1": { + "name": "meta.brace.square.ts" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "meta.brace.square.ts" + } + }, + "patterns": [ + { + "include": "#expression" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "numeric-literal": { + "patterns": [ + { + "name": "constant.numeric.hex.ts", + "match": "\\b(?<!\\$)0(?:x|X)[0-9a-fA-F][0-9a-fA-F_]*(n)?\\b(?!\\$)", + "captures": { + "1": { + "name": "storage.type.numeric.bigint.ts" + } + } + }, + { + "name": "constant.numeric.binary.ts", + "match": "\\b(?<!\\$)0(?:b|B)[01][01_]*(n)?\\b(?!\\$)", + "captures": { + "1": { + "name": "storage.type.numeric.bigint.ts" + } + } + }, + { + "name": "constant.numeric.octal.ts", + "match": "\\b(?<!\\$)0(?:o|O)?[0-7][0-7_]*(n)?\\b(?!\\$)", + "captures": { + "1": { + "name": "storage.type.numeric.bigint.ts" + } + } + }, + { + "match": "(?x)\n(?<!\\$)(?:\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.1E+3\n (?:\\b[0-9][0-9_]*(\\.)[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1.E+3\n (?:\\B(\\.)[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # .1E+3\n (?:\\b[0-9][0-9_]*[eE][+-]?[0-9][0-9_]*(n)?\\b)| # 1E+3\n (?:\\b[0-9][0-9_]*(\\.)[0-9][0-9_]*(n)?\\b)| # 1.1\n (?:\\b[0-9][0-9_]*(\\.)(n)?\\B)| # 1.\n (?:\\B(\\.)[0-9][0-9_]*(n)?\\b)| # .1\n (?:\\b[0-9][0-9_]*(n)?\\b(?!\\.)) # 1\n)(?!\\$)", + "captures": { + "0": { + "name": "constant.numeric.decimal.ts" + }, + "1": { + "name": "meta.delimiter.decimal.period.ts" + }, + "2": { + "name": "storage.type.numeric.bigint.ts" + }, + "3": { + "name": "meta.delimiter.decimal.period.ts" + }, + "4": { + "name": "storage.type.numeric.bigint.ts" + }, + "5": { + "name": "meta.delimiter.decimal.period.ts" + }, + "6": { + "name": "storage.type.numeric.bigint.ts" + }, + "7": { + "name": "storage.type.numeric.bigint.ts" + }, + "8": { + "name": "meta.delimiter.decimal.period.ts" + }, + "9": { + "name": "storage.type.numeric.bigint.ts" + }, + "10": { + "name": "meta.delimiter.decimal.period.ts" + }, + "11": { + "name": "storage.type.numeric.bigint.ts" + }, + "12": { + "name": "meta.delimiter.decimal.period.ts" + }, + "13": { + "name": "storage.type.numeric.bigint.ts" + }, + "14": { + "name": "storage.type.numeric.bigint.ts" + } + } + } + ] + }, + "boolean-literal": { + "patterns": [ + { + "name": "constant.language.boolean.true.ts", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))true(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "name": "constant.language.boolean.false.ts", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))false(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + } + ] + }, + "null-literal": { + "name": "constant.language.null.ts", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))null(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + "this-literal": { + "name": "variable.language.this.ts", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))this\\b(?!\\$)" + }, + "super-literal": { + "name": "variable.language.super.ts", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))super\\b(?!\\$)" + }, + "undefined-literal": { + "name": "constant.language.undefined.ts", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))undefined(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + "numericConstant-literal": { + "patterns": [ + { + "name": "constant.language.nan.ts", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))NaN(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "name": "constant.language.infinity.ts", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Infinity(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + } + ] + }, + "support-objects": { + "patterns": [ + { + "name": "variable.language.arguments.ts", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(arguments)\\b(?!\\$)" + }, + { + "name": "support.class.promise.ts", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(Promise)\\b(?!\\$)" + }, + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(import)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(meta)\\b(?!\\$)", + "captures": { + "1": { + "name": "keyword.control.import.ts" + }, + "2": { + "name": "punctuation.accessor.ts" + }, + "3": { + "name": "punctuation.accessor.optional.ts" + }, + "4": { + "name": "support.variable.property.importmeta.ts" + } + } + }, + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(new)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(target)\\b(?!\\$)", + "captures": { + "1": { + "name": "keyword.operator.new.ts" + }, + "2": { + "name": "punctuation.accessor.ts" + }, + "3": { + "name": "punctuation.accessor.optional.ts" + }, + "4": { + "name": "support.variable.property.target.ts" + } + } + }, + { + "match": "(?x) (?:(\\.)|(\\?\\.(?!\\s*[[:digit:]]))) \\s* (?:\n (?:(constructor|length|prototype|__proto__)\\b(?!\\$|\\s*(<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\())\n |\n (?:(EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\\b(?!\\$)))", + "captures": { + "1": { + "name": "punctuation.accessor.ts" + }, + "2": { + "name": "punctuation.accessor.optional.ts" + }, + "3": { + "name": "support.variable.property.ts" + }, + "4": { + "name": "support.constant.ts" + } + } + }, + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(exports)|(module)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))(exports|id|filename|loaded|parent|children))?)\\b(?!\\$)", + "captures": { + "1": { + "name": "support.type.object.module.ts" + }, + "2": { + "name": "support.type.object.module.ts" + }, + "3": { + "name": "punctuation.accessor.ts" + }, + "4": { + "name": "punctuation.accessor.optional.ts" + }, + "5": { + "name": "support.type.object.module.ts" + } + } + } + ] + }, + "identifiers": { + "patterns": [ + { + "include": "#object-identifiers" + }, + { + "match": "(?x)(?:(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*)?([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n))", + "captures": { + "1": { + "name": "punctuation.accessor.ts" + }, + "2": { + "name": "punctuation.accessor.optional.ts" + }, + "3": { + "name": "entity.name.function.ts" + } + } + }, + { + "match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])", + "captures": { + "1": { + "name": "punctuation.accessor.ts" + }, + "2": { + "name": "punctuation.accessor.optional.ts" + }, + "3": { + "name": "variable.other.constant.property.ts" + } + } + }, + { + "match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)", + "captures": { + "1": { + "name": "punctuation.accessor.ts" + }, + "2": { + "name": "punctuation.accessor.optional.ts" + }, + "3": { + "name": "variable.other.property.ts" + } + } + }, + { + "name": "variable.other.constant.ts", + "match": "([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])" + }, + { + "name": "variable.other.readwrite.ts", + "match": "[_$[:alpha:]][_$[:alnum:]]*" + } + ] + }, + "object-identifiers": { + "patterns": [ + { + "name": "support.class.ts", + "match": "([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\\??\\.\\s*prototype\\b(?!\\$))" + }, + { + "match": "(?x)(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(?:\n (\\#?[[:upper:]][_$[:digit:][:upper:]]*) |\n (\\#?[_$[:alpha:]][_$[:alnum:]]*)\n)(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)", + "captures": { + "1": { + "name": "punctuation.accessor.ts" + }, + "2": { + "name": "punctuation.accessor.optional.ts" + }, + "3": { + "name": "variable.other.constant.object.property.ts" + }, + "4": { + "name": "variable.other.object.property.ts" + } + } + }, + { + "match": "(?x)(?:\n ([[:upper:]][_$[:digit:][:upper:]]*) |\n ([_$[:alpha:]][_$[:alnum:]]*)\n)(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)", + "captures": { + "1": { + "name": "variable.other.constant.object.ts" + }, + "2": { + "name": "variable.other.object.ts" + } + } + } + ] + }, + "type-annotation": { + "patterns": [ + { + "name": "meta.type.annotation.ts", + "begin": "(:)(?=\\s*\\S)", + "beginCaptures": { + "1": { + "name": "keyword.operator.type.annotation.ts" + } + }, + "end": "(?<![:|&])(?!\\s*[|&]\\s+)((?=^|[,);\\}\\]]|//)|(?==[^>])|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))", + "patterns": [ + { + "include": "#type" + } + ] + }, + { + "name": "meta.type.annotation.ts", + "begin": "(:)", + "beginCaptures": { + "1": { + "name": "keyword.operator.type.annotation.ts" + } + }, + "end": "(?<![:|&])((?=[,);\\}\\]]|\\/\\/)|(?==[^>])|(?=^\\s*$)|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))", + "patterns": [ + { + "include": "#type" + } + ] + } + ] + }, + "parameter-type-annotation": { + "patterns": [ + { + "name": "meta.type.annotation.ts", + "begin": "(:)", + "beginCaptures": { + "1": { + "name": "keyword.operator.type.annotation.ts" + } + }, + "end": "(?=[,)])|(?==[^>])", + "patterns": [ + { + "include": "#type" + } + ] + } + ] + }, + "return-type": { + "patterns": [ + { + "name": "meta.return.type.ts", + "begin": "(?<=\\))\\s*(:)(?=\\s*\\S)", + "beginCaptures": { + "1": { + "name": "keyword.operator.type.annotation.ts" + } + }, + "end": "(?<![:|&])(?=$|^|[{};,]|//)", + "patterns": [ + { + "include": "#return-type-core" + } + ] + }, + { + "name": "meta.return.type.ts", + "begin": "(?<=\\))\\s*(:)", + "beginCaptures": { + "1": { + "name": "keyword.operator.type.annotation.ts" + } + }, + "end": "(?<![:|&])((?=[{};,]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", + "patterns": [ + { + "include": "#return-type-core" + } + ] + } + ] + }, + "return-type-core": { + "patterns": [ + { + "include": "#comment" + }, + { + "begin": "(?<=[:|&])(?=\\s*\\{)", + "end": "(?<=\\})", + "patterns": [ + { + "include": "#type-object" + } + ] + }, + { + "include": "#type-predicate-operator" + }, + { + "include": "#type" + } + ] + }, + "arrow-return-type": { + "name": "meta.return.type.arrow.ts", + "begin": "(?<=\\))\\s*(:)", + "beginCaptures": { + "1": { + "name": "keyword.operator.type.annotation.ts" + } + }, + "end": "(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))", + "patterns": [ + { + "include": "#arrow-return-type-body" + } + ] + }, + "possibly-arrow-return-type": { + "begin": "(?<=\\)|^)\\s*(:)(?=\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*=>)", + "beginCaptures": { + "1": { + "name": "meta.arrow.ts meta.return.type.arrow.ts keyword.operator.type.annotation.ts" + } + }, + "end": "(?==>|\\{|(^\\s*(export|function|class|interface|let|var|(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)|(?:\\bawait\\s+(?:\\busing(?=\\s+(?!in\\b|of\\b(?!\\s*(?:of\\b|=)))[_$[:alpha:]])\\b)\\b)|const|import|enum|namespace|module|type|abstract|declare)\\s+))", + "contentName": "meta.arrow.ts meta.return.type.arrow.ts", + "patterns": [ + { + "include": "#arrow-return-type-body" + } + ] + }, + "arrow-return-type-body": { + "patterns": [ + { + "begin": "(?<=[:])(?=\\s*\\{)", + "end": "(?<=\\})", + "patterns": [ + { + "include": "#type-object" + } + ] + }, + { + "include": "#type-predicate-operator" + }, + { + "include": "#type" + } + ] + }, + "type-parameters": { + "name": "meta.type.parameters.ts", + "begin": "(<)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.typeparameters.begin.ts" + } + }, + "end": "(>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.typeparameters.end.ts" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "name": "storage.modifier.ts", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends|in|out|const)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "include": "#type" + }, + { + "include": "#punctuation-comma" + }, + { + "name": "keyword.operator.assignment.ts", + "match": "(=)(?!>)" + } + ] + }, + "type-arguments": { + "name": "meta.type.parameters.ts", + "begin": "\\<", + "beginCaptures": { + "0": { + "name": "punctuation.definition.typeparameters.begin.ts" + } + }, + "end": "\\>", + "endCaptures": { + "0": { + "name": "punctuation.definition.typeparameters.end.ts" + } + }, + "patterns": [ + { + "include": "#type-arguments-body" + } + ] + }, + "type-arguments-body": { + "patterns": [ + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(_)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "captures": { + "0": { + "name": "keyword.operator.type.ts" + } + } + }, + { + "include": "#type" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "type": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#type-string" + }, + { + "include": "#numeric-literal" + }, + { + "include": "#type-primitive" + }, + { + "include": "#type-builtin-literals" + }, + { + "include": "#type-parameters" + }, + { + "include": "#type-tuple" + }, + { + "include": "#type-object" + }, + { + "include": "#type-operators" + }, + { + "include": "#type-conditional" + }, + { + "include": "#type-fn-type-parameters" + }, + { + "include": "#type-paren-or-function-parameters" + }, + { + "include": "#type-function-return-type" + }, + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(readonly)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))\\s*", + "captures": { + "1": { + "name": "storage.modifier.ts" + } + } + }, + { + "include": "#type-name" + } + ] + }, + "type-primitive": { + "name": "support.type.primitive.ts", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(string|number|bigint|boolean|symbol|any|void|never|unknown)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + "type-builtin-literals": { + "name": "support.type.builtin.ts", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(this|true|false|undefined|null|object)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + "type-tuple": { + "name": "meta.type.tuple.ts", + "begin": "\\[", + "beginCaptures": { + "0": { + "name": "meta.brace.square.ts" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "meta.brace.square.ts" + } + }, + "patterns": [ + { + "name": "keyword.operator.rest.ts", + "match": "\\.\\.\\." + }, + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))([_$[:alpha:]][_$[:alnum:]]*)\\s*(\\?)?\\s*(:)", + "captures": { + "1": { + "name": "entity.name.label.ts" + }, + "2": { + "name": "keyword.operator.optional.ts" + }, + "3": { + "name": "punctuation.separator.label.ts" + } + } + }, + { + "include": "#type" + }, + { + "include": "#punctuation-comma" + } + ] + }, + "type-object": { + "name": "meta.object.type.ts", + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.block.ts" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.block.ts" + } + }, + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#method-declaration" + }, + { + "include": "#indexer-declaration" + }, + { + "include": "#indexer-mapped-type-declaration" + }, + { + "include": "#field-declaration" + }, + { + "include": "#type-annotation" + }, + { + "begin": "\\.\\.\\.", + "beginCaptures": { + "0": { + "name": "keyword.operator.spread.ts" + } + }, + "end": "(?=\\}|;|,|$)|(?<=\\})", + "patterns": [ + { + "include": "#type" + } + ] + }, + { + "include": "#punctuation-comma" + }, + { + "include": "#punctuation-semicolon" + }, + { + "include": "#type" + } + ] + }, + "type-conditional": { + "patterns": [ + { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends)\\s+", + "beginCaptures": { + "1": { + "name": "storage.modifier.ts" + } + }, + "end": "(?<=:)", + "patterns": [ + { + "begin": "\\?", + "beginCaptures": { + "0": { + "name": "keyword.operator.ternary.ts" + } + }, + "end": ":", + "endCaptures": { + "0": { + "name": "keyword.operator.ternary.ts" + } + }, + "patterns": [ + { + "include": "#type" + } + ] + }, + { + "include": "#type" + } + ] + } + ] + }, + "type-paren-or-function-parameters": { + "name": "meta.type.paren.cover.ts", + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "meta.brace.round.ts" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "meta.brace.round.ts" + } + }, + "patterns": [ + { + "match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=\\s*(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))Function(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))) |\n(:\\s*((<\\s*$)|((<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*(((const\\s+)?[_$[:alpha:]])|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))", + "captures": { + "1": { + "name": "storage.modifier.ts" + }, + "2": { + "name": "keyword.operator.rest.ts" + }, + "3": { + "name": "entity.name.function.ts variable.language.this.ts" + }, + "4": { + "name": "entity.name.function.ts" + }, + "5": { + "name": "keyword.operator.optional.ts" + } + } + }, + { + "match": "(?x)(?:(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(public|private|protected|readonly)\\s+)?(?:(\\.\\.\\.)\\s*)?(?<!=|:)(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s*(\\??)(?=:)", + "captures": { + "1": { + "name": "storage.modifier.ts" + }, + "2": { + "name": "keyword.operator.rest.ts" + }, + "3": { + "name": "variable.parameter.ts variable.language.this.ts" + }, + "4": { + "name": "variable.parameter.ts" + }, + "5": { + "name": "keyword.operator.optional.ts" + } + } + }, + { + "include": "#type-annotation" + }, + { + "name": "punctuation.separator.parameter.ts", + "match": "," + }, + { + "include": "#type" + } + ] + }, + "type-fn-type-parameters": { + "patterns": [ + { + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b(?=\\s*\\<)", + "beginCaptures": { + "1": { + "name": "meta.type.constructor.ts storage.modifier.ts" + }, + "2": { + "name": "meta.type.constructor.ts keyword.control.new.ts" + } + }, + "end": "(?<=>)", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#type-parameters" + } + ] + }, + { + "name": "meta.type.constructor.ts", + "begin": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(abstract)\\s+)?(new)\\b\\s*(?=\\()", + "beginCaptures": { + "1": { + "name": "storage.modifier.ts" + }, + "2": { + "name": "keyword.control.new.ts" + } + }, + "end": "(?<=\\))", + "patterns": [ + { + "include": "#function-parameters" + } + ] + }, + { + "name": "meta.type.function.ts", + "begin": "(?x)(\n (?=\n [(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n )\n )\n)", + "end": "(?<=\\))", + "patterns": [ + { + "include": "#function-parameters" + } + ] + } + ] + }, + "type-function-return-type": { + "patterns": [ + { + "name": "meta.type.function.return.ts", + "begin": "(=>)(?=\\s*\\S)", + "beginCaptures": { + "1": { + "name": "storage.type.function.arrow.ts" + } + }, + "end": "(?<!=>)(?<![|&])(?=[,\\]\\)\\{\\}=;>:\\?]|//|$)", + "patterns": [ + { + "include": "#type-function-return-type-core" + } + ] + }, + { + "name": "meta.type.function.return.ts", + "begin": "=>", + "beginCaptures": { + "0": { + "name": "storage.type.function.arrow.ts" + } + }, + "end": "(?<!=>)(?<![|&])((?=[,\\]\\)\\{\\}=;:\\?>]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", + "patterns": [ + { + "include": "#type-function-return-type-core" + } + ] + } + ] + }, + "type-function-return-type-core": { + "patterns": [ + { + "include": "#comment" + }, + { + "begin": "(?<==>)(?=\\s*\\{)", + "end": "(?<=\\})", + "patterns": [ + { + "include": "#type-object" + } + ] + }, + { + "include": "#type-predicate-operator" + }, + { + "include": "#type" + } + ] + }, + "type-operators": { + "patterns": [ + { + "include": "#typeof-operator" + }, + { + "include": "#type-infer" + }, + { + "begin": "([&|])(?=\\s*\\{)", + "beginCaptures": { + "0": { + "name": "keyword.operator.type.ts" + } + }, + "end": "(?<=\\})", + "patterns": [ + { + "include": "#type-object" + } + ] + }, + { + "begin": "[&|]", + "beginCaptures": { + "0": { + "name": "keyword.operator.type.ts" + } + }, + "end": "(?=\\S)" + }, + { + "name": "keyword.operator.expression.keyof.ts", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))keyof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "name": "keyword.operator.ternary.ts", + "match": "(\\?|\\:)" + }, + { + "name": "keyword.operator.expression.import.ts", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))import(?=\\s*\\()" + } + ] + }, + "type-infer": { + "patterns": [ + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(infer)\\s+([_$[:alpha:]][_$[:alnum:]]*)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))(?:\\s+(extends)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))?", + "name": "meta.type.infer.ts", + "captures": { + "1": { + "name": "keyword.operator.expression.infer.ts" + }, + "2": { + "name": "entity.name.type.ts" + }, + "3": { + "name": "keyword.operator.expression.extends.ts" + } + } + } + ] + }, + "type-predicate-operator": { + "patterns": [ + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(?:(asserts)\\s+)?(?!asserts)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))\\s(is)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "captures": { + "1": { + "name": "keyword.operator.type.asserts.ts" + }, + "2": { + "name": "variable.parameter.ts variable.language.this.ts" + }, + "3": { + "name": "variable.parameter.ts" + }, + "4": { + "name": "keyword.operator.expression.is.ts" + } + } + }, + { + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(asserts)\\s+(?!is)(?:(this)|([_$[:alpha:]][_$[:alnum:]]*))(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))", + "captures": { + "1": { + "name": "keyword.operator.type.asserts.ts" + }, + "2": { + "name": "variable.parameter.ts variable.language.this.ts" + }, + "3": { + "name": "variable.parameter.ts" + } + } + }, + { + "name": "keyword.operator.type.asserts.ts", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))asserts(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "name": "keyword.operator.expression.is.ts", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))is(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + } + ] + }, + "type-name": { + "patterns": [ + { + "begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(<)", + "captures": { + "1": { + "name": "entity.name.type.module.ts" + }, + "2": { + "name": "punctuation.accessor.ts" + }, + "3": { + "name": "punctuation.accessor.optional.ts" + }, + "4": { + "name": "meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts" + } + }, + "end": "(>)", + "endCaptures": { + "1": { + "name": "meta.type.parameters.ts punctuation.definition.typeparameters.end.ts" + } + }, + "contentName": "meta.type.parameters.ts", + "patterns": [ + { + "include": "#type-arguments-body" + } + ] + }, + { + "begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)", + "beginCaptures": { + "1": { + "name": "entity.name.type.ts" + }, + "2": { + "name": "meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts" + } + }, + "end": "(>)", + "endCaptures": { + "1": { + "name": "meta.type.parameters.ts punctuation.definition.typeparameters.end.ts" + } + }, + "contentName": "meta.type.parameters.ts", + "patterns": [ + { + "include": "#type-arguments-body" + } + ] + }, + { + "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", + "captures": { + "1": { + "name": "entity.name.type.module.ts" + }, + "2": { + "name": "punctuation.accessor.ts" + }, + "3": { + "name": "punctuation.accessor.optional.ts" + } + } + }, + { + "name": "entity.name.type.ts", + "match": "[_$[:alpha:]][_$[:alnum:]]*" + } + ] + }, + "punctuation-comma": { + "name": "punctuation.separator.comma.ts", + "match": "," + }, + "punctuation-semicolon": { + "name": "punctuation.terminator.statement.ts", + "match": ";" + }, + "punctuation-accessor": { + "match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", + "captures": { + "1": { + "name": "punctuation.accessor.ts" + }, + "2": { + "name": "punctuation.accessor.optional.ts" + } + } + }, + "string": { + "patterns": [ + { + "include": "#qstring-single" + }, + { + "include": "#qstring-double" + }, + { + "include": "#template" + } + ] + }, + "qstring-double": { + "name": "string.quoted.double.ts", + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.ts" + } + }, + "end": "(\")|((?:[^\\\\\\n])$)", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.ts" + }, + "2": { + "name": "invalid.illegal.newline.ts" + } + }, + "patterns": [ + { + "include": "#string-character-escape" + } + ] + }, + "qstring-single": { + "name": "string.quoted.single.ts", + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.ts" + } + }, + "end": "(\\')|((?:[^\\\\\\n])$)", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.ts" + }, + "2": { + "name": "invalid.illegal.newline.ts" + } + }, + "patterns": [ + { + "include": "#string-character-escape" + } + ] + }, + "string-character-escape": { + "name": "constant.character.escape.ts", + "match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)" + }, + "template": { + "patterns": [ + { + "include": "#template-call" + }, + { + "contentName": "string.template.ts", + "begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", + "beginCaptures": { + "1": { + "name": "entity.name.function.tagged-template.ts" + }, + "2": { + "name": "string.template.ts punctuation.definition.string.template.begin.ts" + } + }, + "end": "`", + "endCaptures": { + "0": { + "name": "string.template.ts punctuation.definition.string.template.end.ts" + } + }, + "patterns": [ + { + "include": "#template-substitution-element" + }, + { + "include": "#string-character-escape" + } + ] + } + ] + }, + "template-call": { + "patterns": [ + { + "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*)(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)", + "end": "(?=`)", + "patterns": [ + { + "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))", + "end": "(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)?`)", + "patterns": [ + { + "include": "#support-function-call-identifiers" + }, + { + "name": "entity.name.function.tagged-template.ts", + "match": "([_$[:alpha:]][_$[:alnum:]]*)" + } + ] + }, + { + "include": "#type-arguments" + } + ] + }, + { + "begin": "([_$[:alpha:]][_$[:alnum:]]*)?\\s*(?=(<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?<!=)\\>))*(?<!=)\\>)*(?<!=)>\\s*)`)", + "beginCaptures": { + "1": { + "name": "entity.name.function.tagged-template.ts" + } + }, + "end": "(?=`)", + "patterns": [ + { + "include": "#type-arguments" + } + ] + } + ] + }, + "template-substitution-element": { + "name": "meta.template.expression.ts", + "begin": "\\$\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.template-expression.begin.ts" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.template-expression.end.ts" + } + }, + "patterns": [ + { + "include": "#expression" + } + ], + "contentName": "meta.embedded.line.ts" + }, + "type-string": { + "patterns": [ + { + "include": "#qstring-single" + }, + { + "include": "#qstring-double" + }, + { + "include": "#template-type" + } + ] + }, + "template-type": { + "patterns": [ + { + "include": "#template-call" + }, + { + "contentName": "string.template.ts", + "begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", + "beginCaptures": { + "1": { + "name": "entity.name.function.tagged-template.ts" + }, + "2": { + "name": "string.template.ts punctuation.definition.string.template.begin.ts" + } + }, + "end": "`", + "endCaptures": { + "0": { + "name": "string.template.ts punctuation.definition.string.template.end.ts" + } + }, + "patterns": [ + { + "include": "#template-type-substitution-element" + }, + { + "include": "#string-character-escape" + } + ] + } + ] + }, + "template-type-substitution-element": { + "name": "meta.template.expression.ts", + "begin": "\\$\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.template-expression.begin.ts" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.template-expression.end.ts" + } + }, + "patterns": [ + { + "include": "#type" + } + ], + "contentName": "meta.embedded.line.ts" + }, + "regex": { + "patterns": [ + { + "name": "string.regexp.ts", + "begin": "(?<!\\+\\+|--|})(?<=[=(:,\\[?+!]|^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case|=>|&&|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))", + "beginCaptures": { + "1": { + "name": "punctuation.definition.string.begin.ts" + } + }, + "end": "(/)([dgimsuy]*)", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.ts" + }, + "2": { + "name": "keyword.other.ts" + } + }, + "patterns": [ + { + "include": "#regexp" + } + ] + }, + { + "name": "string.regexp.ts", + "begin": "((?<![_$[:alnum:])\\]]|\\+\\+|--|}|\\*\\/)|((?<=^return|[^\\._$[:alnum:]]return|^case|[^\\._$[:alnum:]]case))\\s*)\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([dgimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.ts" + } + }, + "end": "(/)([dgimsuy]*)", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.ts" + }, + "2": { + "name": "keyword.other.ts" + } + }, + "patterns": [ + { + "include": "#regexp" + } + ] + } + ] + }, + "regexp": { + "patterns": [ + { + "name": "keyword.control.anchor.regexp", + "match": "\\\\[bB]|\\^|\\$" + }, + { + "match": "\\\\[1-9]\\d*|\\\\k<([a-zA-Z_$][\\w$]*)>", + "captures": { + "0": { + "name": "keyword.other.back-reference.regexp" + }, + "1": { + "name": "variable.other.regexp" + } + } + }, + { + "name": "keyword.operator.quantifier.regexp", + "match": "[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??" + }, + { + "name": "keyword.operator.or.regexp", + "match": "\\|" + }, + { + "name": "meta.group.assertion.regexp", + "begin": "(\\()((\\?=)|(\\?!)|(\\?<=)|(\\?<!))", + "beginCaptures": { + "1": { + "name": "punctuation.definition.group.regexp" + }, + "2": { + "name": "punctuation.definition.group.assertion.regexp" + }, + "3": { + "name": "meta.assertion.look-ahead.regexp" + }, + "4": { + "name": "meta.assertion.negative-look-ahead.regexp" + }, + "5": { + "name": "meta.assertion.look-behind.regexp" + }, + "6": { + "name": "meta.assertion.negative-look-behind.regexp" + } + }, + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.definition.group.regexp" + } + }, + "patterns": [ + { + "include": "#regexp" + } + ] + }, + { + "name": "meta.group.regexp", + "begin": "\\((?:(\\?:)|(?:\\?<([a-zA-Z_$][\\w$]*)>))?", + "beginCaptures": { + "0": { + "name": "punctuation.definition.group.regexp" + }, + "1": { + "name": "punctuation.definition.group.no-capture.regexp" + }, + "2": { + "name": "variable.other.regexp" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.group.regexp" + } + }, + "patterns": [ + { + "include": "#regexp" + } + ] + }, + { + "name": "constant.other.character-class.set.regexp", + "begin": "(\\[)(\\^)?", + "beginCaptures": { + "1": { + "name": "punctuation.definition.character-class.regexp" + }, + "2": { + "name": "keyword.operator.negation.regexp" + } + }, + "end": "(\\])", + "endCaptures": { + "1": { + "name": "punctuation.definition.character-class.regexp" + } + }, + "patterns": [ + { + "name": "constant.other.character-class.range.regexp", + "match": "(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))", + "captures": { + "1": { + "name": "constant.character.numeric.regexp" + }, + "2": { + "name": "constant.character.control.regexp" + }, + "3": { + "name": "constant.character.escape.backslash.regexp" + }, + "4": { + "name": "constant.character.numeric.regexp" + }, + "5": { + "name": "constant.character.control.regexp" + }, + "6": { + "name": "constant.character.escape.backslash.regexp" + } + } + }, + { + "include": "#regex-character-class" + } + ] + }, + { + "include": "#regex-character-class" + } + ] + }, + "regex-character-class": { + "patterns": [ + { + "name": "constant.other.character-class.regexp", + "match": "\\\\[wWsSdDtrnvf]|\\." + }, + { + "name": "constant.character.numeric.regexp", + "match": "\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})" + }, + { + "name": "constant.character.control.regexp", + "match": "\\\\c[A-Z]" + }, + { + "name": "constant.character.escape.backslash.regexp", + "match": "\\\\." + } + ] + }, + "comment": { + "patterns": [ + { + "name": "comment.block.documentation.ts", + "begin": "/\\*\\*(?!/)", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.ts" + } + }, + "end": "\\*/", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.ts" + } + }, + "patterns": [ + { + "include": "#docblock" + } + ] + }, + { + "name": "comment.block.ts", + "begin": "(/\\*)(?:\\s*((@)internal)(?=\\s|(\\*/)))?", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.ts" + }, + "2": { + "name": "storage.type.internaldeclaration.ts" + }, + "3": { + "name": "punctuation.decorator.internaldeclaration.ts" + } + }, + "end": "\\*/", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.ts" + } + } + }, + { + "begin": "(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.ts" + }, + "2": { + "name": "comment.line.double-slash.ts" + }, + "3": { + "name": "punctuation.definition.comment.ts" + }, + "4": { + "name": "storage.type.internaldeclaration.ts" + }, + "5": { + "name": "punctuation.decorator.internaldeclaration.ts" + } + }, + "end": "(?=$)", + "contentName": "comment.line.double-slash.ts" + } + ] + }, + "single-line-comment-consuming-line-ending": { + "begin": "(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.ts" + }, + "2": { + "name": "comment.line.double-slash.ts" + }, + "3": { + "name": "punctuation.definition.comment.ts" + }, + "4": { + "name": "storage.type.internaldeclaration.ts" + }, + "5": { + "name": "punctuation.decorator.internaldeclaration.ts" + } + }, + "end": "(?=^)", + "contentName": "comment.line.double-slash.ts" + }, + "directives": { + "name": "comment.line.triple-slash.directive.ts", + "begin": "^(///)\\s*(?=<(reference|amd-dependency|amd-module)(\\s+(path|types|no-default-lib|lib|name|resolution-mode)\\s*=\\s*((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)))+\\s*/>\\s*$)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.ts" + } + }, + "end": "(?=$)", + "patterns": [ + { + "name": "meta.tag.ts", + "begin": "(<)(reference|amd-dependency|amd-module)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.directive.ts" + }, + "2": { + "name": "entity.name.tag.directive.ts" + } + }, + "end": "/>", + "endCaptures": { + "0": { + "name": "punctuation.definition.tag.directive.ts" + } + }, + "patterns": [ + { + "name": "entity.other.attribute-name.directive.ts", + "match": "path|types|no-default-lib|lib|name|resolution-mode" + }, + { + "name": "keyword.operator.assignment.ts", + "match": "=" + }, + { + "include": "#string" + } + ] + } + ] + }, + "docblock": { + "patterns": [ + { + "match": "(?x)\n((@)(?:access|api))\n\\s+\n(private|protected|public)\n\\b", + "captures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + }, + "3": { + "name": "constant.language.access-type.jsdoc" + } + } + }, + { + "match": "(?x)\n((@)author)\n\\s+\n(\n [^@\\s<>*/]\n (?:[^@<>*/]|\\*[^/])*\n)\n(?:\n \\s*\n (<)\n ([^>\\s]+)\n (>)\n)?", + "captures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + }, + "3": { + "name": "entity.name.type.instance.jsdoc" + }, + "4": { + "name": "punctuation.definition.bracket.angle.begin.jsdoc" + }, + "5": { + "name": "constant.other.email.link.underline.jsdoc" + }, + "6": { + "name": "punctuation.definition.bracket.angle.end.jsdoc" + } + } + }, + { + "match": "(?x)\n((@)borrows) \\s+\n((?:[^@\\s*/]|\\*[^/])+) # <that namepath>\n\\s+ (as) \\s+ # as\n((?:[^@\\s*/]|\\*[^/])+) # <this namepath>", + "captures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + }, + "3": { + "name": "entity.name.type.instance.jsdoc" + }, + "4": { + "name": "keyword.operator.control.jsdoc" + }, + "5": { + "name": "entity.name.type.instance.jsdoc" + } + } + }, + { + "name": "meta.example.jsdoc", + "begin": "((@)example)\\s+", + "end": "(?=@|\\*/)", + "beginCaptures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + } + }, + "patterns": [ + { + "match": "^\\s\\*\\s+" + }, + { + "contentName": "constant.other.description.jsdoc", + "begin": "\\G(<)caption(>)", + "beginCaptures": { + "0": { + "name": "entity.name.tag.inline.jsdoc" + }, + "1": { + "name": "punctuation.definition.bracket.angle.begin.jsdoc" + }, + "2": { + "name": "punctuation.definition.bracket.angle.end.jsdoc" + } + }, + "end": "(</)caption(>)|(?=\\*/)", + "endCaptures": { + "0": { + "name": "entity.name.tag.inline.jsdoc" + }, + "1": { + "name": "punctuation.definition.bracket.angle.begin.jsdoc" + }, + "2": { + "name": "punctuation.definition.bracket.angle.end.jsdoc" + } + } + }, + { + "match": "[^\\s@*](?:[^*]|\\*[^/])*", + "captures": { + "0": { + "name": "source.embedded.ts" + } + } + } + ] + }, + { + "match": "(?x) ((@)kind) \\s+ (class|constant|event|external|file|function|member|mixin|module|namespace|typedef) \\b", + "captures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + }, + "3": { + "name": "constant.language.symbol-type.jsdoc" + } + } + }, + { + "match": "(?x)\n((@)see)\n\\s+\n(?:\n # URL\n (\n (?=https?://)\n (?:[^\\s*]|\\*[^/])+\n )\n |\n # JSDoc namepath\n (\n (?!\n # Avoid matching bare URIs (also acceptable as links)\n https?://\n |\n # Avoid matching {@inline tags}; we match those below\n (?:\\[[^\\[\\]]*\\])? # Possible description [preceding]{@tag}\n {@(?:link|linkcode|linkplain|tutorial)\\b\n )\n # Matched namepath\n (?:[^@\\s*/]|\\*[^/])+\n )\n)", + "captures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + }, + "3": { + "name": "variable.other.link.underline.jsdoc" + }, + "4": { + "name": "entity.name.type.instance.jsdoc" + } + } + }, + { + "match": "(?x)\n((@)template)\n\\s+\n# One or more valid identifiers\n(\n [A-Za-z_$] # First character: non-numeric word character\n [\\w$.\\[\\]]* # Rest of identifier\n (?: # Possible list of additional identifiers\n \\s* , \\s*\n [A-Za-z_$]\n [\\w$.\\[\\]]*\n )*\n)", + "captures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + }, + "3": { + "name": "variable.other.jsdoc" + } + } + }, + { + "begin": "(?x)((@)template)\\s+(?={)", + "beginCaptures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + } + }, + "end": "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", + "patterns": [ + { + "include": "#jsdoctype" + }, + { + "name": "variable.other.jsdoc", + "match": "([A-Za-z_$][\\w$.\\[\\]]*)" + } + ] + }, + { + "match": "(?x)\n(\n (@)\n (?:arg|argument|const|constant|member|namespace|param|var)\n)\n\\s+\n(\n [A-Za-z_$]\n [\\w$.\\[\\]]*\n)", + "captures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + }, + "3": { + "name": "variable.other.jsdoc" + } + } + }, + { + "begin": "((@)typedef)\\s+(?={)", + "beginCaptures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + } + }, + "end": "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", + "patterns": [ + { + "include": "#jsdoctype" + }, + { + "name": "entity.name.type.instance.jsdoc", + "match": "(?:[^@\\s*/]|\\*[^/])+" + } + ] + }, + { + "begin": "((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\s+(?={)", + "beginCaptures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + } + }, + "end": "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", + "patterns": [ + { + "include": "#jsdoctype" + }, + { + "name": "variable.other.jsdoc", + "match": "([A-Za-z_$][\\w$.\\[\\]]*)" + }, + { + "name": "variable.other.jsdoc", + "match": "(?x)\n(\\[)\\s*\n[\\w$]+\n(?:\n (?:\\[\\])? # Foo[ ].bar properties within an array\n \\. # Foo.Bar namespaced parameter\n [\\w$]+\n)*\n(?:\n \\s*\n (=) # [foo=bar] Default parameter value\n \\s*\n (\n # The inner regexes are to stop the match early at */ and to not stop at escaped quotes\n (?>\n \"(?:(?:\\*(?!/))|(?:\\\\(?!\"))|[^*\\\\])*?\" | # [foo=\"bar\"] Double-quoted\n '(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?' | # [foo='bar'] Single-quoted\n \\[ (?:(?:\\*(?!/))|[^*])*? \\] | # [foo=[1,2]] Array literal\n (?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])* # Everything else\n )*\n )\n)?\n\\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))", + "captures": { + "1": { + "name": "punctuation.definition.optional-value.begin.bracket.square.jsdoc" + }, + "2": { + "name": "keyword.operator.assignment.jsdoc" + }, + "3": { + "name": "source.embedded.ts" + }, + "4": { + "name": "punctuation.definition.optional-value.end.bracket.square.jsdoc" + }, + "5": { + "name": "invalid.illegal.syntax.jsdoc" + } + } + } + ] + }, + { + "begin": "(?x)\n(\n (@)\n (?:define|enum|exception|export|extends|lends|implements|modifies\n |namespace|private|protected|returns?|satisfies|suppress|this|throws|type\n |yields?)\n)\n\\s+(?={)", + "beginCaptures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + } + }, + "end": "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", + "patterns": [ + { + "include": "#jsdoctype" + } + ] + }, + { + "match": "(?x)\n(\n (@)\n (?:alias|augments|callback|constructs|emits|event|fires|exports?\n |extends|external|function|func|host|lends|listens|interface|memberof!?\n |method|module|mixes|mixin|name|requires|see|this|typedef|uses)\n)\n\\s+\n(\n (?:\n [^{}@\\s*] | \\*[^/]\n )+\n)", + "captures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + }, + "3": { + "name": "entity.name.type.instance.jsdoc" + } + } + }, + { + "contentName": "variable.other.jsdoc", + "begin": "((@)(?:default(?:value)?|license|version))\\s+(([''\"]))", + "beginCaptures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + }, + "3": { + "name": "variable.other.jsdoc" + }, + "4": { + "name": "punctuation.definition.string.begin.jsdoc" + } + }, + "end": "(\\3)|(?=$|\\*/)", + "endCaptures": { + "0": { + "name": "variable.other.jsdoc" + }, + "1": { + "name": "punctuation.definition.string.end.jsdoc" + } + } + }, + { + "match": "((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)", + "captures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + }, + "3": { + "name": "variable.other.jsdoc" + } + } + }, + { + "name": "storage.type.class.jsdoc", + "match": "(?x) (@) (?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles |callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright |default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception |exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func |function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc |inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method |mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects |override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected |public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary |suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation |version|virtual|writeOnce|yields?) \\b", + "captures": { + "1": { + "name": "punctuation.definition.block.tag.jsdoc" + } + } + }, + { + "include": "#inline-tags" + }, + { + "match": "((@)(?:[_$[:alpha:]][_$[:alnum:]]*))(?=\\s+)", + "captures": { + "1": { + "name": "storage.type.class.jsdoc" + }, + "2": { + "name": "punctuation.definition.block.tag.jsdoc" + } + } + } + ] + }, + "brackets": { + "patterns": [ + { + "begin": "{", + "end": "}|(?=\\*/)", + "patterns": [ + { + "include": "#brackets" + } + ] + }, + { + "begin": "\\[", + "end": "\\]|(?=\\*/)", + "patterns": [ + { + "include": "#brackets" + } + ] + } + ] + }, + "inline-tags": { + "patterns": [ + { + "name": "constant.other.description.jsdoc", + "match": "(\\[)[^\\]]+(\\])(?={@(?:link|linkcode|linkplain|tutorial))", + "captures": { + "1": { + "name": "punctuation.definition.bracket.square.begin.jsdoc" + }, + "2": { + "name": "punctuation.definition.bracket.square.end.jsdoc" + } + } + }, + { + "name": "entity.name.type.instance.jsdoc", + "begin": "({)((@)(?:link(?:code|plain)?|tutorial))\\s*", + "beginCaptures": { + "1": { + "name": "punctuation.definition.bracket.curly.begin.jsdoc" + }, + "2": { + "name": "storage.type.class.jsdoc" + }, + "3": { + "name": "punctuation.definition.inline.tag.jsdoc" + } + }, + "end": "}|(?=\\*/)", + "endCaptures": { + "0": { + "name": "punctuation.definition.bracket.curly.end.jsdoc" + } + }, + "patterns": [ + { + "match": "\\G((?=https?://)(?:[^|}\\s*]|\\*[/])+)(\\|)?", + "captures": { + "1": { + "name": "variable.other.link.underline.jsdoc" + }, + "2": { + "name": "punctuation.separator.pipe.jsdoc" + } + } + }, + { + "match": "\\G((?:[^{}@\\s|*]|\\*[^/])+)(\\|)?", + "captures": { + "1": { + "name": "variable.other.description.jsdoc" + }, + "2": { + "name": "punctuation.separator.pipe.jsdoc" + } + } + } + ] + } + ] + }, + "jsdoctype": { + "patterns": [ + { + "contentName": "entity.name.type.instance.jsdoc", + "begin": "\\G({)", + "beginCaptures": { + "0": { + "name": "entity.name.type.instance.jsdoc" + }, + "1": { + "name": "punctuation.definition.bracket.curly.begin.jsdoc" + } + }, + "end": "((}))\\s*|(?=\\*/)", + "endCaptures": { + "1": { + "name": "entity.name.type.instance.jsdoc" + }, + "2": { + "name": "punctuation.definition.bracket.curly.end.jsdoc" + } + }, + "patterns": [ + { + "include": "#brackets" + } + ] + } + ] + } + } +} diff --git a/docs/shiki/languages/v.tmLanguage.json b/docs/shiki/languages/v.tmLanguage.json new file mode 100644 index 00000000..5b995069 --- /dev/null +++ b/docs/shiki/languages/v.tmLanguage.json @@ -0,0 +1,994 @@ +{ + "name": "v", + "scopeName": "source.v", + "fileTypes": [".v", ".vh", ".vsh", ".vv", "v.mod"], + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#function-decl" + }, + { + "include": "#as-is" + }, + { + "include": "#attributes" + }, + { + "include": "#assignment" + }, + { + "include": "#module-decl" + }, + { + "include": "#import-decl" + }, + { + "include": "#hash-decl" + }, + { + "include": "#brackets" + }, + { + "include": "#builtin-fix" + }, + { + "include": "#escaped-fix" + }, + { + "include": "#operators" + }, + { + "include": "#function-limited-overload-decl" + }, + { + "include": "#function-extend-decl" + }, + { + "include": "#function-exist" + }, + { + "include": "#generic" + }, + { + "include": "#constants" + }, + { + "include": "#type" + }, + { + "include": "#enum" + }, + { + "include": "#interface" + }, + { + "include": "#struct" + }, + { + "include": "#keywords" + }, + { + "include": "#storage" + }, + { + "include": "#numbers" + }, + { + "include": "#strings" + }, + { + "include": "#types" + }, + { + "include": "#punctuations" + }, + { + "include": "#variable-assign" + }, + { + "include": "#function-decl" + } + ], + "repository": { + "as-is": { + "begin": "\\s+(as|is)\\s+", + "beginCaptures": { + "1": { + "name": "keyword.$1.v" + } + }, + "end": "([\\w.]*)", + "endCaptures": { + "1": { + "name": "entity.name.alias.v" + } + } + }, + "assignment": { + "name": "meta.definition.variable.v", + "match": "\\s+((?:\\:|\\+|\\-|\\*|/|\\%|\\&|\\||\\^)?=)\\s+", + "captures": { + "1": { + "patterns": [ + { + "include": "#operators" + } + ] + } + } + }, + "attributes": { + "name": "meta.definition.attribute.v", + "match": "^\\s*((\\[)(deprecated|unsafe|console|heap|manualfree|typedef|live|inline|flag|ref_only|direct_array_access|callconv)(\\]))", + "captures": { + "1": { + "name": "meta.function.attribute.v" + }, + "2": { + "name": "punctuation.definition.begin.bracket.square.v" + }, + "3": { + "name": "storage.modifier.attribute.v" + }, + "4": { + "name": "punctuation.definition.end.bracket.square.v" + } + } + }, + "variable-assign": { + "match": "[a-zA-Z_]\\w*(?:,\\s*[a-zA-Z_]\\w*)*(?=\\s*(?:=|:=))", + "captures": { + "0": { + "patterns": [ + { + "match": "[a-zA-Z_]\\w*", + "name": "variable.other.assignment.v" + }, + { + "include": "#punctuation" + } + ] + } + } + }, + "module-decl": { + "name": "meta.module.v", + "begin": "^\\s*(module)\\s+", + "beginCaptures": { + "1": { + "name": "keyword.module.v" + } + }, + "end": "([\\w.]+)", + "endCaptures": { + "1": { + "name": "entity.name.module.v" + } + } + }, + "import-decl": { + "name": "meta.import.v", + "begin": "^\\s*(import)\\s+", + "beginCaptures": { + "1": { + "name": "keyword.import.v" + } + }, + "end": "([\\w.]+)", + "endCaptures": { + "1": { + "name": "entity.name.import.v" + } + } + }, + "hash-decl": { + "name": "markup.bold.v", + "begin": "^\\s*(#)", + "end": "$" + }, + "brackets": { + "patterns": [ + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.bracket.curly.begin.v" + } + }, + "end": "}", + "endCaptures": { + "0": { + "name": "punctuation.definition.bracket.curly.end.v" + } + }, + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.definition.bracket.round.begin.v" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.bracket.round.end.v" + } + }, + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "begin": "\\[", + "beginCaptures": { + "0": { + "name": "punctuation.definition.bracket.square.begin.v" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.bracket.square.end.v" + } + }, + "patterns": [ + { + "include": "$self" + } + ] + } + ] + }, + "builtin-fix": { + "patterns": [ + { + "patterns": [ + { + "name": "storage.modifier.v", + "match": "(const)(?=\\s*\\()" + }, + { + "name": "keyword.$1.v", + "match": "\\b(fn|type|enum|struct|union|interface|map|assert|sizeof|typeof|__offsetof)\\b(?=\\s*\\()" + } + ] + }, + { + "patterns": [ + { + "name": "keyword.control.v", + "match": "(\\$if|\\$else)(?=\\s*\\()" + }, + { + "name": "keyword.control.v", + "match": "\\b(as|in|is|or|break|continue|default|unsafe|match|if|else|for|go|spawn|goto|defer|return|shared|select|rlock|lock|atomic|asm)\\b(?=\\s*\\()" + } + ] + }, + { + "patterns": [ + { + "match": "(?<!.)(i?(?:8|16|nt|64|128)|u?(?:16|32|64|128)|f?(?:32|64))(?=\\s*\\()", + "captures": { + "1": { + "name": "storage.type.numeric.v" + } + }, + "name": "meta.expr.numeric.cast.v" + }, + { + "match": "(bool|byte|byteptr|charptr|voidptr|string|rune|size_t|[ui]size)(?=\\s*\\()", + "captures": { + "1": { + "name": "storage.type.$1.v" + } + }, + "name": "meta.expr.bool.cast.v" + } + ] + } + ] + }, + "comments": { + "patterns": [ + { + "name": "comment.block.documentation.v", + "begin": "/\\*", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.begin.v" + } + }, + "end": "\\*/", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.end.v" + } + }, + "patterns": [ + { + "include": "#comments" + } + ] + }, + { + "name": "comment.line.double-slash.v", + "begin": "//", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.begin.v" + } + }, + "end": "$" + } + ] + }, + "constants": { + "name": "constant.language.v", + "match": "\\b(true|false|none)\\b" + }, + "generic": { + "patterns": [ + { + "name": "meta.definition.generic.v", + "match": "(?<=[\\w\\s+])(\\<)(\\w+)(\\>)", + "captures": { + "1": { + "name": "punctuation.definition.bracket.angle.begin.v" + }, + "2": { + "patterns": [ + { + "include": "#illegal-name" + }, + { + "match": "\\w+", + "name": "entity.name.generic.v" + } + ] + }, + "3": { + "name": "punctuation.definition.bracket.angle.end.v" + } + } + } + ] + }, + "function-decl": { + "name": "meta.definition.function.v", + "match": "^(\\bpub\\b\\s+)?(\\bfn\\b)\\s+(?:\\([^\\)]+\\)\\s+)?(?:(?:C\\.)?)(\\w+)\\s*((?<=[\\w\\s+])(\\<)(\\w+)(\\>))?", + "captures": { + "1": { + "name": "storage.modifier.v" + }, + "2": { + "name": "keyword.fn.v" + }, + "3": { + "name": "entity.name.function.v" + }, + "4": { + "patterns": [ + { + "include": "#generic" + } + ] + } + } + }, + "function-extend-decl": { + "name": "meta.definition.function.v", + "match": "^\\s*(pub)?\\s*(fn)\\s*(\\()([^\\)]*)(\\))\\s*(?:(?:C\\.)?)(\\w+)\\s*((?<=[\\w\\s+])(\\<)(\\w+)(\\>))?", + "captures": { + "1": { + "name": "storage.modifier.v" + }, + "2": { + "name": "keyword.fn.v" + }, + "3": { + "name": "punctuation.definition.bracket.round.begin.v" + }, + "4": { + "patterns": [ + { + "include": "#brackets" + }, + { + "include": "#storage" + }, + { + "include": "#generic" + }, + { + "include": "#types" + }, + { + "include": "#punctuation" + } + ] + }, + "5": { + "name": "punctuation.definition.bracket.round.end.v" + }, + "6": { + "patterns": [ + { + "include": "#illegal-name" + }, + { + "match": "\\w+", + "name": "entity.name.function.v" + } + ] + }, + "7": { + "patterns": [ + { + "include": "#generic" + } + ] + } + } + }, + "function-limited-overload-decl": { + "name": "meta.definition.function.v", + "match": "^\\s*(pub)?\\s*(fn)\\s*(\\()([^\\)]*)(\\))\\s*([\\+\\-\\*\\/])?\\s*(\\()([^\\)]*)(\\))\\s*(?:(?:C\\.)?)(\\w+)", + "captures": { + "1": { + "name": "storage.modifier.v" + }, + "2": { + "name": "keyword.fn.v" + }, + "3": { + "name": "punctuation.definition.bracket.round.begin.v" + }, + "4": { + "patterns": [ + { + "include": "#brackets" + }, + { + "include": "#storage" + }, + { + "include": "#generic" + }, + { + "include": "#types" + }, + { + "include": "#punctuation" + } + ] + }, + "5": { + "name": "punctuation.definition.bracket.round.end.v" + }, + "6": { + "patterns": [ + { + "include": "#operators" + } + ] + }, + "7": { + "name": "punctuation.definition.bracket.round.begin.v" + }, + "8": { + "patterns": [ + { + "include": "#brackets" + }, + { + "include": "#storage" + }, + { + "include": "#generic" + }, + { + "include": "#types" + }, + { + "include": "#punctuation" + } + ] + }, + "9": { + "name": "punctuation.definition.bracket.round.end.v" + }, + "10": { + "patterns": [ + { + "include": "#illegal-name" + }, + { + "match": "\\w+", + "name": "entity.name.function.v" + } + ] + } + } + }, + "function-exist": { + "name": "meta.support.function.v", + "match": "(\\w+)((?<=[\\w\\s+])(\\<)(\\w+)(\\>))?(?=\\s*\\()", + "captures": { + "0": { + "name": "meta.function.call.v" + }, + "1": { + "patterns": [ + { + "include": "#illegal-name" + }, + { + "match": "\\w+", + "name": "entity.name.function.v" + } + ] + }, + "2": { + "patterns": [ + { + "include": "#generic" + } + ] + } + } + }, + "type": { + "name": "meta.definition.type.v", + "match": "^\\s*(?:(pub)?\\s+)?(type)\\s+(\\w*)\\s+(?:\\w+\\.+)?(\\w*)", + "captures": { + "1": { + "name": "storage.modifier.$1.v" + }, + "2": { + "name": "storage.type.type.v" + }, + "3": { + "patterns": [ + { + "include": "#illegal-name" + }, + { + "include": "#types" + }, + { + "name": "entity.name.type.v", + "match": "\\w+" + } + ] + }, + "4": { + "patterns": [ + { + "include": "#illegal-name" + }, + { + "include": "#types" + }, + { + "name": "entity.name.type.v", + "match": "\\w+" + } + ] + } + } + }, + "enum": { + "name": "meta.definition.enum.v", + "match": "^\\s*(?:(pub)?\\s+)?(enum)\\s+(?:\\w+\\.)?(\\w*)", + "captures": { + "1": { + "name": "storage.modifier.$1.v" + }, + "2": { + "name": "storage.type.enum.v" + }, + "3": { + "name": "entity.name.enum.v" + } + } + }, + "interface": { + "name": "meta.definition.interface.v", + "match": "^\\s*(?:(pub)?\\s+)?(interface)\\s+(\\w*)", + "captures": { + "1": { + "name": "storage.modifier.$1.v" + }, + "2": { + "name": "keyword.interface.v" + }, + "3": { + "patterns": [ + { + "include": "#illegal-name" + }, + { + "name": "entity.name.interface.v", + "match": "\\w+" + } + ] + } + } + }, + "struct": { + "patterns": [ + { + "name": "meta.definition.struct.v", + "begin": "^\\s*(?:(mut|pub(?:\\s+mut)?|__global)\\s+)?(struct|union)\\s+([\\w.]+)\\s*|({)", + "beginCaptures": { + "1": { + "name": "storage.modifier.$1.v" + }, + "2": { + "name": "storage.type.struct.v" + }, + "3": { + "name": "entity.name.type.v" + }, + "4": { + "name": "punctuation.definition.bracket.curly.begin.v" + } + }, + "end": "\\s*|(})", + "endCaptures": { + "1": { + "name": "punctuation.definition.bracket.curly.end.v" + } + }, + "patterns": [ + { + "include": "#struct-access-modifier" + }, + { + "match": "\\b(\\w+)\\s+([\\w\\[\\]\\*&.]+)(?:\\s*(=)\\s*((?:.(?=$|//|/\\*))*+))?", + "captures": { + "1": { + "name": "variable.other.property.v" + }, + "2": { + "patterns": [ + { + "include": "#numbers" + }, + { + "include": "#brackets" + }, + { + "include": "#types" + }, + { + "match": "\\w+", + "name": "storage.type.other.v" + } + ] + }, + "3": { + "name": "keyword.operator.assignment.v" + }, + "4": { + "patterns": [ + { + "include": "$self" + } + ] + } + } + }, + { + "include": "#types" + }, + { + "include": "$self" + } + ] + }, + { + "name": "meta.definition.struct.v", + "match": "^\\s*(?:(mut|pub(?:\\s+mut)?|__global))\\s+?(struct)\\s+(?:\\s+([\\w.]+))?", + "captures": { + "1": { + "name": "storage.modifier.$1.v" + }, + "2": { + "name": "storage.type.struct.v" + }, + "3": { + "name": "entity.name.struct.v" + } + } + } + ] + }, + "struct-access-modifier": { + "match": "(?<=\\s|^)(mut|pub(?:\\s+mut)?|__global)(:|\\b)", + "captures": { + "1": { + "name": "storage.modifier.$1.v" + }, + "2": { + "name": "punctuation.separator.struct.key-value.v" + } + } + }, + "punctuation": { + "patterns": [ + { + "name": "punctuation.delimiter.period.dot.v", + "match": "\\." + }, + { + "name": "punctuation.delimiter.comma.v", + "match": "," + }, + { + "name": "punctuation.separator.key-value.colon.v", + "match": ":" + }, + { + "name": "punctuation.definition.other.semicolon.v", + "match": ";" + }, + { + "name": "punctuation.definition.other.questionmark.v", + "match": "\\?" + }, + { + "name": "punctuation.hash.v", + "match": "#" + } + ] + }, + "keywords": { + "patterns": [ + { + "name": "keyword.control.v", + "match": "(\\$if|\\$else)" + }, + { + "name": "keyword.control.v", + "match": "(?<!@)\\b(as|it|is|in|or|break|continue|default|unsafe|match|if|else|for|go|spawn|goto|defer|return|shared|select|rlock|lock|atomic|asm)\\b" + }, + { + "name": "keyword.$1.v", + "match": "(?<!@)\\b(fn|type|typeof|enum|struct|interface|map|assert|sizeof|__offsetof)\\b" + } + ] + }, + "storage": { + "name": "storage.modifier.v", + "match": "\\b(const|mut|pub)\\b" + }, + "types": { + "patterns": [ + { + "name": "storage.type.numeric.v", + "match": "(?<!\\.)\\b(i(8|16|nt|64|128)|u(8|16|32|64|128)|f(32|64))\\b" + }, + { + "name": "storage.type.$1.v", + "match": "(?<!\\.)\\b(bool|byte|byteptr|charptr|voidptr|string|ustring|rune)\\b" + } + ] + }, + "operators": { + "patterns": [ + { + "name": "keyword.operator.arithmetic.v", + "match": "(\\+|\\-|\\*|\\/|\\%|\\+\\+|\\-\\-|\\>\\>|\\<\\<)" + }, + { + "name": "keyword.operator.relation.v", + "match": "(\\=\\=|\\!\\=|\\>|\\<|\\>\\=|\\<\\=)" + }, + { + "name": "keyword.operator.assignment.v", + "match": "(\\:\\=|\\=|\\+\\=|\\-\\=|\\*\\=|\\/\\=|\\%\\=|\\&\\=|\\|\\=|\\^\\=|\\~\\=|\\&\\&\\=|\\|\\|\\=|\\>\\>\\=|\\<\\<\\=)" + }, + { + "name": "keyword.operator.bitwise.v", + "match": "(\\&|\\||\\^|\\~|<(?!<)|>(?!>))" + }, + { + "name": "keyword.operator.logical.v", + "match": "(\\&\\&|\\|\\||\\!)" + }, + { + "name": "keyword.operator.optional.v", + "match": "\\?" + } + ] + }, + "numbers": { + "patterns": [ + { + "name": "constant.numeric.exponential.v", + "match": "([0-9]+(_?))+(\\.)([0-9]+[eE][-+]?[0-9]+)" + }, + { + "name": "constant.numeric.float.v", + "match": "([0-9]+(_?))+(\\.)([0-9]+)" + }, + { + "name": "constant.numeric.binary.v", + "match": "(?:0b)(?:(?:[0-1]+)(?:_?))+" + }, + { + "name": "constant.numeric.octal.v", + "match": "(?:0o)(?:(?:[0-7]+)(?:_?))+" + }, + { + "name": "constant.numeric.hex.v", + "match": "(?:0x)(?:(?:[0-9a-fA-F]+)(?:_?))+" + }, + { + "name": "constant.numeric.integer.v", + "match": "(?:(?:[0-9]+)(?:[_]?))+" + } + ] + }, + "punctuations": { + "patterns": [ + { + "name": "punctuation.accessor.v", + "match": "(?:\\.)" + }, + { + "name": "punctuation.separator.comma.v", + "match": "(?:,)" + } + ] + }, + "strings": { + "patterns": [ + { + "begin": "`", + "end": "`", + "name": "string.quoted.rune.v", + "patterns": [ + { + "include": "#string-escaped-char" + }, + { + "include": "#string-interpolation" + }, + { + "include": "#string-placeholder" + } + ] + }, + { + "begin": "(r)'", + "beginCaptures": { + "1": { + "name": "storage.type.string.v" + } + }, + "end": "'", + "name": "string.quoted.raw.v", + "patterns": [ + { + "include": "#string-interpolation" + }, + { + "include": "#string-placeholder" + } + ] + }, + { + "begin": "(r)\"", + "beginCaptures": { + "1": { + "name": "storage.type.string.v" + } + }, + "end": "\"", + "name": "string.quoted.raw.v", + "patterns": [ + { + "include": "#string-interpolation" + }, + { + "include": "#string-placeholder" + } + ] + }, + { + "begin": "(c?)'", + "beginCaptures": { + "1": { + "name": "storage.type.string.v" + } + }, + "end": "'", + "name": "string.quoted.v", + "patterns": [ + { + "include": "#string-escaped-char" + }, + { + "include": "#string-interpolation" + }, + { + "include": "#string-placeholder" + } + ] + }, + { + "begin": "(c?)\"", + "beginCaptures": { + "1": { + "name": "storage.type.string.v" + } + }, + "end": "\"", + "name": "string.quoted.v", + "patterns": [ + { + "include": "#string-escaped-char" + }, + { + "include": "#string-interpolation" + }, + { + "include": "#string-placeholder" + } + ] + } + ] + }, + "string-escaped-char": { + "patterns": [ + { + "name": "constant.character.escape.v", + "match": "\\\\([0-7]{3}|[\\$abfnrtv\\\\'\"]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})" + }, + { + "name": "invalid.illegal.unknown-escape.v", + "match": "\\\\[^0-7\\$xuUabfnrtv\\'\"]" + } + ] + }, + "string-interpolation": { + "name": "meta.string.interpolation.v", + "match": "(\\$([\\w.]+|\\{.*?\\}))", + "captures": { + "1": { + "patterns": [ + { + "name": "invalid.illegal.v", + "match": "\\$\\d[\\.\\w]+" + }, + { + "name": "variable.other.interpolated.v", + "match": "\\$([\\.\\w]+|\\{.*?\\})" + } + ] + } + } + }, + "string-placeholder": { + "match": "%(\\[\\d+\\])?([\\+#\\-0\\x20]{,2}((\\d+|\\*)?(\\.?(\\d+|\\*|(\\[\\d+\\])\\*?)?(\\[\\d+\\])?)?))?[vT%tbcdoqxXUbeEfFgGsp]", + "name": "constant.other.placeholder.v" + }, + "illegal-name": { + "match": "\\d\\w+", + "name": "invalid.illegal.v" + } + } +} diff --git a/docs/shiki/languages/vb.tmLanguage.json b/docs/shiki/languages/vb.tmLanguage.json new file mode 100644 index 00000000..096d7da0 --- /dev/null +++ b/docs/shiki/languages/vb.tmLanguage.json @@ -0,0 +1,238 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/textmate/asp.vb.net.tmbundle/blob/master/Syntaxes/ASP%20VB.net.plist", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/textmate/asp.vb.net.tmbundle/commit/72d44550b3286d0382d7be0624140cf97857ff69", + "name": "vb", + "scopeName": "source.asp.vb.net", + "comment": "Modified from the original ASP bundle. Originally modified by Thomas Aylott subtleGradient.com", + "patterns": [ + { + "match": "\\n", + "name": "meta.ending-space" + }, + { + "include": "#round-brackets" + }, + { + "begin": "^(?=\\t)", + "end": "(?=[^\\t])", + "name": "meta.leading-space", + "patterns": [ + { + "captures": { + "1": { + "name": "meta.odd-tab.tabs" + }, + "2": { + "name": "meta.even-tab.tabs" + } + }, + "match": "(\\t)(\\t)?" + } + ] + }, + { + "begin": "^(?= )", + "end": "(?=[^ ])", + "name": "meta.leading-space", + "patterns": [ + { + "captures": { + "1": { + "name": "meta.odd-tab.spaces" + }, + "2": { + "name": "meta.even-tab.spaces" + } + }, + "match": "( )( )?" + } + ] + }, + { + "captures": { + "1": { + "name": "storage.type.function.asp" + }, + "2": { + "name": "entity.name.function.asp" + }, + "3": { + "name": "punctuation.definition.parameters.asp" + }, + "4": { + "name": "variable.parameter.function.asp" + }, + "5": { + "name": "punctuation.definition.parameters.asp" + } + }, + "match": "^\\s*((?i:function|sub))\\s*([a-zA-Z_]\\w*)\\s*(\\()([^)]*)(\\)).*\\n?", + "name": "meta.function.asp" + }, + { + "begin": "(^[ \\t]+)?(?=')", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.asp" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.asp" + } + }, + "end": "\\n", + "name": "comment.line.apostrophe.asp" + } + ] + }, + { + "match": "(?i:\\b(If|Then|Else|ElseIf|Else If|End If|While|Wend|For|To|Each|Case|Select|End Select|Return|Continue|Do|Until|Loop|Next|With|Exit Do|Exit For|Exit Function|Exit Property|Exit Sub|IIf)\\b)", + "name": "keyword.control.asp" + }, + { + "match": "(?i:\\b(Mod|And|Not|Or|Xor|as)\\b)", + "name": "keyword.operator.asp" + }, + { + "captures": { + "1": { + "name": "storage.type.asp" + }, + "2": { + "name": "variable.other.bfeac.asp" + }, + "3": { + "name": "meta.separator.comma.asp" + } + }, + "match": "(?i:(dim)\\s*(?:(\\b[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\b)\\s*(,?)))", + "name": "variable.other.dim.asp" + }, + { + "match": "(?i:\\s*\\b(Call|Class|Const|Dim|Redim|Function|Sub|Private Sub|Public Sub|End Sub|End Function|End Class|End Property|Public Property|Private Property|Set|Let|Get|New|Randomize|Option Explicit|On Error Resume Next|On Error GoTo)\\b\\s*)", + "name": "storage.type.asp" + }, + { + "match": "(?i:\\b(Private|Public|Default)\\b)", + "name": "storage.modifier.asp" + }, + { + "match": "(?i:\\s*\\b(Empty|False|Nothing|Null|True)\\b)", + "name": "constant.language.asp" + }, + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.asp" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.asp" + } + }, + "name": "string.quoted.double.asp", + "patterns": [ + { + "match": "\"\"", + "name": "constant.character.escape.apostrophe.asp" + } + ] + }, + { + "captures": { + "1": { + "name": "punctuation.definition.variable.asp" + } + }, + "match": "(\\$)[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\b\\s*", + "name": "variable.other.asp" + }, + { + "match": "(?i:\\b(Application|ObjectContext|Request|Response|Server|Session)\\b)", + "name": "support.class.asp" + }, + { + "match": "(?i:\\b(Contents|StaticObjects|ClientCertificate|Cookies|Form|QueryString|ServerVariables)\\b)", + "name": "support.class.collection.asp" + }, + { + "match": "(?i:\\b(TotalBytes|Buffer|CacheControl|Charset|ContentType|Expires|ExpiresAbsolute|IsClientConnected|PICS|Status|ScriptTimeout|CodePage|LCID|SessionID|Timeout)\\b)", + "name": "support.constant.asp" + }, + { + "match": "(?i:\\b(Lock|Unlock|SetAbort|SetComplete|BinaryRead|AddHeader|AppendToLog|BinaryWrite|Clear|End|Flush|Redirect|Write|CreateObject|HTMLEncode|MapPath|URLEncode|Abandon|Convert|Regex)\\b)", + "name": "support.function.asp" + }, + { + "match": "(?i:\\b(Application_OnEnd|Application_OnStart|OnTransactionAbort|OnTransactionCommit|Session_OnEnd|Session_OnStart)\\b)", + "name": "support.function.event.asp" + }, + { + "match": "(?i:(?<=as )(\\b[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\b))", + "name": "support.type.vb.asp" + }, + { + "match": "(?i:\\b(Array|Add|Asc|Atn|CBool|CByte|CCur|CDate|CDbl|Chr|CInt|CLng|Conversions|Cos|CreateObject|CSng|CStr|Date|DateAdd|DateDiff|DatePart|DateSerial|DateValue|Day|Derived|Math|Escape|Eval|Exists|Exp|Filter|FormatCurrency|FormatDateTime|FormatNumber|FormatPercent|GetLocale|GetObject|GetRef|Hex|Hour|InputBox|InStr|InStrRev|Int|Fix|IsArray|IsDate|IsEmpty|IsNull|IsNumeric|IsObject|Item|Items|Join|Keys|LBound|LCase|Left|Len|LoadPicture|Log|LTrim|RTrim|Trim|Maths|Mid|Minute|Month|MonthName|MsgBox|Now|Oct|Remove|RemoveAll|Replace|RGB|Right|Rnd|Round|ScriptEngine|ScriptEngineBuildVersion|ScriptEngineMajorVersion|ScriptEngineMinorVersion|Second|SetLocale|Sgn|Sin|Space|Split|Sqr|StrComp|String|StrReverse|Tan|Time|Timer|TimeSerial|TimeValue|TypeName|UBound|UCase|Unescape|VarType|Weekday|WeekdayName|Year)\\b)", + "name": "support.function.vb.asp" + }, + { + "match": "-?\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f)?\\b", + "name": "constant.numeric.asp" + }, + { + "match": "(?i:\\b(vbtrue|vbfalse|vbcr|vbcrlf|vbformfeed|vblf|vbnewline|vbnullchar|vbnullstring|int32|vbtab|vbverticaltab|vbbinarycompare|vbtextcomparevbsunday|vbmonday|vbtuesday|vbwednesday|vbthursday|vbfriday|vbsaturday|vbusesystemdayofweek|vbfirstjan1|vbfirstfourdays|vbfirstfullweek|vbgeneraldate|vblongdate|vbshortdate|vblongtime|vbshorttime|vbobjecterror|vbEmpty|vbNull|vbInteger|vbLong|vbSingle|vbDouble|vbCurrency|vbDate|vbString|vbObject|vbError|vbBoolean|vbVariant|vbDataObject|vbDecimal|vbByte|vbArray)\\b)", + "name": "support.type.vb.asp" + }, + { + "captures": { + "1": { + "name": "entity.name.function.asp" + } + }, + "match": "(?i:(\\b[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\b)(?=\\(\\)?))", + "name": "support.function.asp" + }, + { + "match": "(?i:((?<=(\\+|=|-|\\&|\\\\|/|<|>|\\(|,))\\s*\\b([a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?)\\b(?!(\\(|\\.))|\\b([a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?)\\b(?=\\s*(\\+|=|-|\\&|\\\\|/|<|>|\\(|\\)))))", + "name": "variable.other.asp" + }, + { + "match": "!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|/=|%=|\\+=|\\-=|&=|\\^=|\\b(in|instanceof|new|delete|typeof|void)\\b", + "name": "keyword.operator.js" + } + ], + "repository": { + "round-brackets": { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.section.round-brackets.begin.asp" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.round-brackets.end.asp" + } + }, + "name": "meta.round-brackets", + "patterns": [ + { + "include": "source.asp.vb.net" + } + ] + } + } +} diff --git a/docs/shiki/languages/verilog.tmLanguage.json b/docs/shiki/languages/verilog.tmLanguage.json new file mode 100644 index 00000000..2d895d7e --- /dev/null +++ b/docs/shiki/languages/verilog.tmLanguage.json @@ -0,0 +1,303 @@ +{ + "fileTypes": ["v", "vh"], + "keyEquivalent": "^~V", + "name": "verilog", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#module_pattern" + }, + { + "include": "#keywords" + }, + { + "include": "#constants" + }, + { + "include": "#strings" + }, + { + "include": "#operators" + } + ], + "repository": { + "comments": { + "patterns": [ + { + "begin": "(^[ \\t]+)?(?=//)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.verilog" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": "//", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.verilog" + } + }, + "end": "\\n", + "name": "comment.line.double-slash.verilog" + } + ] + }, + { + "begin": "/\\*", + "end": "\\*/", + "name": "comment.block.c-style.verilog" + } + ] + }, + "constants": { + "patterns": [ + { + "match": "`(?!(celldefine|endcelldefine|default_nettype|define|undef|ifdef|ifndef|else|endif|include|resetall|timescale|unconnected_drive|nounconnected_drive))[a-z_A-Z][a-zA-Z0-9_$]*", + "name": "variable.other.constant.verilog" + }, + { + "match": "[0-9]*'[bBoOdDhH][a-fA-F0-9_xXzZ]+\\b", + "name": "constant.numeric.sized_integer.verilog" + }, + { + "captures": { + "1": { + "name": "constant.numeric.integer.verilog" + }, + "2": { + "name": "punctuation.separator.range.verilog" + }, + "3": { + "name": "constant.numeric.integer.verilog" + } + }, + "match": "\\b(\\d+)(:)(\\d+)\\b", + "name": "meta.block.numeric.range.verilog" + }, + { + "match": "\\b\\d[\\d_]*(?i:e\\d+)?\\b", + "name": "constant.numeric.integer.verilog" + }, + { + "match": "\\b\\d+\\.\\d+(?i:e\\d+)?\\b", + "name": "constant.numeric.real.verilog" + }, + { + "match": "#\\d+", + "name": "constant.numeric.delay.verilog" + }, + { + "match": "\\b[01xXzZ]+\\b", + "name": "constant.numeric.logic.verilog" + } + ] + }, + "instantiation_patterns": { + "patterns": [ + { + "include": "#keywords" + }, + { + "begin": "^\\s*([a-zA-Z][a-zA-Z0-9_]*)\\s+([a-zA-Z][a-zA-Z0-9_]*)(?<!begin|if)\\s*(?=\\(|$)", + "beginCaptures": { + "1": { + "name": "entity.name.tag.module.reference.verilog" + }, + "2": { + "name": "entity.name.tag.module.identifier.verilog" + } + }, + "end": ";", + "endCaptures": { + "0": { + "name": "punctuation.terminator.expression.verilog" + } + }, + "name": "meta.block.instantiation.parameterless.verilog", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#constants" + }, + { + "include": "#strings" + } + ] + }, + { + "begin": "^\\s*([a-zA-Z][a-zA-Z0-9_]*)\\s*(#)(?=\\s*\\()", + "beginCaptures": { + "1": { + "name": "entity.name.tag.module.reference.verilog" + } + }, + "end": ";", + "endCaptures": { + "0": { + "name": "punctuation.terminator.expression.verilog" + } + }, + "name": "meta.block.instantiation.with.parameters.verilog", + "patterns": [ + { + "include": "#parenthetical_list" + }, + { + "match": "[a-zA-Z][a-zA-Z0-9_]*", + "name": "entity.name.tag.module.identifier.verilog" + } + ] + } + ] + }, + "keywords": { + "patterns": [ + { + "match": "\\b(always|and|assign|attribute|begin|buf|bufif0|bufif1|case[xz]?|cmos|deassign|default|defparam|disable|edge|else|end(attribute|case|function|generate|module|primitive|specify|table|task)?|event|for|force|forever|fork|function|generate|genvar|highz(01)|if(none)?|initial|inout|input|integer|join|localparam|medium|module|large|macromodule|nand|negedge|nmos|nor|not|notif(01)|or|output|parameter|pmos|posedge|primitive|pull0|pull1|pulldown|pullup|rcmos|real|realtime|reg|release|repeat|rnmos|rpmos|rtran|rtranif(01)|scalared|signed|small|specify|specparam|strength|strong0|strong1|supply0|supply1|table|task|time|tran|tranif(01)|tri(01)?|tri(and|or|reg)|unsigned|vectored|wait|wand|weak(01)|while|wire|wor|xnor|xor)\\b", + "name": "keyword.other.verilog" + }, + { + "match": "^\\s*`((cell)?define|default_(decay_time|nettype|trireg_strength)|delay_mode_(path|unit|zero)|ifdef|ifndef|include|end(if|celldefine)|else|(no)?unconnected_drive|resetall|timescale|undef)\\b", + "name": "keyword.other.compiler.directive.verilog" + }, + { + "match": "\\$(f(open|close)|readmem(b|h)|timeformat|printtimescale|stop|finish|(s|real)?time|realtobits|bitstoreal|rtoi|itor|(f)?(display|write(h|b)))\\b", + "name": "support.function.system.console.tasks.verilog" + }, + { + "match": "\\$(random|dist_(chi_square|erlang|exponential|normal|poisson|t|uniform))\\b", + "name": "support.function.system.random_number.tasks.verilog" + }, + { + "match": "\\$((a)?sync\\$((n)?and|(n)or)\\$(array|plane))\\b", + "name": "support.function.system.pld_modeling.tasks.verilog" + }, + { + "match": "\\$(q_(initialize|add|remove|full|exam))\\b", + "name": "support.function.system.stochastic.tasks.verilog" + }, + { + "match": "\\$(hold|nochange|period|recovery|setup(hold)?|skew|width)\\b", + "name": "support.function.system.timing.tasks.verilog" + }, + { + "match": "\\$(dump(file|vars|off|on|all|limit|flush))\\b", + "name": "support.function.system.vcd.tasks.verilog" + }, + { + "match": "\\$(countdrivers|list|input|scope|showscopes|(no)?(key|log)|reset(_count|_value)?|(inc)?save|restart|showvars|getpattern|sreadmem(b|h)|scale)", + "name": "support.function.non-standard.tasks.verilog" + } + ] + }, + "module_pattern": { + "patterns": [ + { + "begin": "\\b(module)\\s+([a-zA-Z][a-zA-Z0-9_]*)", + "beginCaptures": { + "1": { + "name": "storage.type.module.verilog" + }, + "2": { + "name": "entity.name.type.module.verilog" + } + }, + "end": "\\bendmodule\\b", + "endCaptures": { + "0": { + "name": "storage.type.module.verilog" + } + }, + "name": "meta.block.module.verilog", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#keywords" + }, + { + "include": "#constants" + }, + { + "include": "#strings" + }, + { + "include": "#instantiation_patterns" + }, + { + "include": "#operators" + } + ] + } + ] + }, + "operators": { + "patterns": [ + { + "match": "\\+|-|\\*|/|%|(<|>)=?|(!|=)?==?|!|&&?|\\|\\|?|\\^?~|~\\^?", + "name": "keyword.operator.verilog" + } + ] + }, + "parenthetical_list": { + "patterns": [ + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.section.list.verilog" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.list.verilog" + } + }, + "name": "meta.block.parenthetical_list.verilog", + "patterns": [ + { + "include": "#parenthetical_list" + }, + { + "include": "#comments" + }, + { + "include": "#keywords" + }, + { + "include": "#constants" + }, + { + "include": "#strings" + } + ] + } + ] + }, + "strings": { + "patterns": [ + { + "begin": "\"", + "end": "\"", + "name": "string.quoted.double.verilog", + "patterns": [ + { + "match": "\\\\.", + "name": "constant.character.escape.verilog" + } + ] + } + ] + } + }, + "scopeName": "source.verilog", + "uuid": "7F4396B3-A33E-44F0-8502-98CA6C25971F" +} diff --git a/docs/shiki/languages/vhdl.tmLanguage.json b/docs/shiki/languages/vhdl.tmLanguage.json new file mode 100644 index 00000000..4323a498 --- /dev/null +++ b/docs/shiki/languages/vhdl.tmLanguage.json @@ -0,0 +1,1436 @@ +{ + "fileTypes": ["vhd", "vhdl", "vho", "vht"], + "name": "vhdl", + "patterns": [ + { + "include": "#block_processing" + }, + { + "include": "#cleanup" + } + ], + "repository": { + "architecture_pattern": { + "patterns": [ + { + "begin": "(?x)\n\n\t\t\t\t\t\t# The word architecture $1\n\t\t\t\t\t\t\\b((?i:architecture))\\s+\n\t\t\t\t\t\t\n\t\t\t\t\t\t# Followed up by a valid $3 or invalid identifier $4\n\t\t\t\t\t\t(([a-zA-z][a-zA-z0-9_]*)|(.+))(?=\\s)\\s+\n\n\t\t\t\t\t\t# The word of $5\n\t\t\t\t\t\t((?i:of))\\s+\n\n\t\t\t\t\t\t# Followed by a valid $7 or invalid identifier $8\n\t\t\t\t\t\t(([a-zA-Z][a-zA-Z0-9_]*)|(.+?))(?=\\s*(?i:is))\\b\n\t\t\t\t\t", + "beginCaptures": { + "1": { + "name": "keyword.language.vhdl" + }, + "3": { + "name": "entity.name.type.architecture.begin.vhdl" + }, + "4": { + "name": "invalid.illegal.invalid.identifier.vhdl" + }, + "5": { + "name": "keyword.language.vhdl" + }, + "7": { + "name": "entity.name.type.entity.reference.vhdl" + }, + "8": { + "name": "invalid.illegal.invalid.identifier.vhdl" + } + }, + "end": "(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end))\n\n\t\t\t\t\t\t# Optional word architecture $3\n\t\t\t\t\t\t(\\s+((?i:architecture)))?\n\n\t\t\t\t\t\t# Optional same identifier $6 or illegal identifier $7\n\t\t\t\t\t\t(\\s+((\\3)|(.+?)))?\n\n\t\t\t\t\t\t# This will cause the previous to capture until just before the ; or $\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t", + "endCaptures": { + "1": { + "name": "keyword.language.vhdl" + }, + "3": { + "name": "keyword.language.vhdl" + }, + "6": { + "name": "entity.name.type.architecture.end.vhdl" + }, + "7": { + "name": "invalid.illegal.mismatched.identifier.vhdl" + } + }, + "name": "support.block.architecture", + "patterns": [ + { + "include": "#function_definition_pattern" + }, + { + "include": "#procedure_definition_pattern" + }, + { + "include": "#component_pattern" + }, + { + "include": "#if_pattern" + }, + { + "include": "#process_pattern" + }, + { + "include": "#type_pattern" + }, + { + "include": "#record_pattern" + }, + { + "include": "#for_pattern" + }, + { + "include": "#entity_instantiation_pattern" + }, + { + "include": "#component_instantiation_pattern" + }, + { + "include": "#cleanup" + } + ] + } + ] + }, + "attribute_list": { + "patterns": [ + { + "begin": "\\'\\(", + "beginCaptures": { + "0": { + "name": "punctuation.vhdl" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.vhdl" + } + }, + "patterns": [ + { + "include": "#parenthetical_list" + }, + { + "include": "#cleanup" + } + ] + } + ] + }, + "block_processing": { + "patterns": [ + { + "include": "#package_pattern" + }, + { + "include": "#package_body_pattern" + }, + { + "include": "#entity_pattern" + }, + { + "include": "#architecture_pattern" + } + ] + }, + "case_pattern": { + "patterns": [ + { + "begin": "(?x)\n\t\t\t\t\t\t# Beginning of line ...\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# Optional identifier ... $3 or invalid identifier $4\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t ([a-zA-Z][a-zA-Z0-9_]*)\n\t\t\t\t\t\t\t\t|(.+?)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\\s*:\\s*\n\t\t\t\t\t\t)?\n\n\t\t\t\t\t\t# The word case $5\n\t\t\t\t\t\t\\b((?i:case))\\b\n\t\t\t\t\t", + "beginCaptures": { + "3": { + "name": "entity.name.tag.case.begin.vhdl" + }, + "4": { + "name": "invalid.illegal.invalid.identifier.vhdl" + }, + "5": { + "name": "keyword.language.vhdl" + } + }, + "end": "(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end))\\s*\n\n\t\t\t\t\t\t# The word case $4 or invalid word $5\n\t\t\t\t\t\t(\\s+(((?i:case))|(.*?)))\n\n\t\t\t\t\t\t# Optional identifier from before $8 or illegal $9\n\t\t\t\t\t\t(\\s+((\\2)|(.*?)))?\n\n\t\t\t\t\t\t# Ending with a semicolon\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t", + "endCaptures": { + "1": { + "name": "keyword.language.vhdl" + }, + "4": { + "name": "keyword.language.vhdl" + }, + "5": { + "name": "invalid.illegal.case.required.vhdl" + }, + "8": { + "name": "entity.name.tag.case.end.vhdl" + }, + "9": { + "name": "invalid.illegal.mismatched.identifier.vhdl" + } + }, + "patterns": [ + { + "include": "#control_patterns" + }, + { + "include": "#cleanup" + } + ] + } + ] + }, + "cleanup": { + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#constants_numeric" + }, + { + "include": "#strings" + }, + { + "include": "#attribute_list" + }, + { + "include": "#syntax_highlighting" + } + ] + }, + "comments": { + "patterns": [ + { + "match": "--.*$\\n?", + "name": "comment.line.double-dash.vhdl" + } + ] + }, + "component_instantiation_pattern": { + "patterns": [ + { + "begin": "(?x)\n\t\t\t\t\t\t# From the beginning of the line ...\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# Match a valid identifier $1\n\t\t\t\t\t\t([a-zA-Z][a-zA-Z0-9_]*)\n\n\t\t\t\t\t\t# Colon! $2\n\t\t\t\t\t\t\\s*(:)\\s*\n\n\t\t\t\t\t\t# Another valid identifier $3\n\t\t\t\t\t\t([a-zA-Z][a-zA-Z0-9_]*)\\b\n\n\t\t\t\t\t\t# Make sure we are just the other word, or the beginning of\n\t\t\t\t\t\t# a generic or port mapping\n\t\t\t\t\t\t(?=\\s*($|generic|port))\n\t\t\t\t\t", + "beginCaptures": { + "1": { + "name": "entity.name.section.component_instantiation.vhdl" + }, + "2": { + "name": "punctuation.vhdl" + }, + "3": { + "name": "entity.name.tag.component.reference.vhdl" + } + }, + "end": ";", + "endCaptures": { + "0": { + "name": "punctuation.vhdl" + } + }, + "patterns": [ + { + "include": "#parenthetical_list" + }, + { + "include": "#cleanup" + } + ] + } + ] + }, + "component_pattern": { + "patterns": [ + { + "begin": "(?x)\n\t\t\t\t\t\t# From the beginning of the line ...\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# The word component $1\n\t\t\t\t\t\t\\b((?i:component))\\s+\n\n\t\t\t\t\t\t# A valid identifier $3 or invalid identifier $4\n\t\t\t\t\t\t(([a-zA-Z_][a-zA-Z0-9_]*)\\s*|(.+?))(?=\\b(?i:is|port)\\b|$|--)\n\n\t\t\t\t\t\t# Optional word is $6\n\t\t\t\t\t\t(\\b((?i:is\\b)))?\n\t\t\t\t\t", + "beginCaptures": { + "1": { + "name": "keyword.language.vhdl" + }, + "3": { + "name": "entity.name.type.component.begin.vhdl" + }, + "4": { + "name": "invalid.illegal.invalid.identifier.vhdl" + }, + "6": { + "name": "keyword.language.vhdl" + } + }, + "end": "(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end))\\s+\n\n\t\t\t\t\t\t# The word component $3 or illegal word $4\n\t\t\t\t\t\t(((?i:component\\b))|(.+?))(?=\\s*|;)\n\t\t\t\t\t\t\n\t\t\t\t\t\t# Optional identifier $7 or illegal mismatched $8\n\t\t\t\t\t\t(\\s+((\\3)|(.+?)))?(?=\\s*;)\n\t\t\t\t\t", + "endCaptures": { + "1": { + "name": "keyword.language.vhdl" + }, + "3": { + "name": "keyword.language.vhdl" + }, + "4": { + "name": "invalid.illegal.component.keyword.required.vhdl" + }, + "7": { + "name": "entity.name.type.component.end.vhdl" + }, + "8": { + "name": "invalid.illegal.mismatched.identifier.vhdl" + } + }, + "patterns": [ + { + "include": "#generic_list_pattern" + }, + { + "include": "#port_list_pattern" + }, + { + "include": "#comments" + } + ] + } + ] + }, + "constants_numeric": { + "patterns": [ + { + "match": "\\b([+\\-]?[\\d_]+\\.[\\d_]+([eE][+\\-]?[\\d_]+)?)\\b", + "name": "constant.numeric.floating_point.vhdl" + }, + { + "match": "\\b\\d+#[\\h_]+#\\b", + "name": "constant.numeric.base_pound_number_pound.vhdl" + }, + { + "match": "\\b[\\d_]+([eE][\\d_]+)?\\b", + "name": "constant.numeric.integer.vhdl" + }, + { + "match": "[xX]\"[0-9a-fA-F_uUxXzZwWlLhH\\-]+\"", + "name": "constant.numeric.quoted.double.string.hex.vhdl" + }, + { + "match": "[oO]\"[0-7_uUxXzZwWlLhH\\-]+\"", + "name": "constant.numeric.quoted.double.string.octal.vhdl" + }, + { + "match": "[bB]?\"[01_uUxXzZwWlLhH\\-]+\"", + "name": "constant.numeric.quoted.double.string.binary.vhdl" + }, + { + "captures": { + "1": { + "name": "invalid.illegal.quoted.double.string.vhdl" + } + }, + "match": "([bBoOxX]\".+?\")", + "name": "constant.numeric.quoted.double.string.illegal.vhdl" + }, + { + "match": "'[01uUxXzZwWlLhH\\-]'", + "name": "constant.numeric.quoted.single.std_logic" + } + ] + }, + "control_patterns": { + "patterns": [ + { + "include": "#case_pattern" + }, + { + "include": "#if_pattern" + }, + { + "include": "#for_pattern" + }, + { + "include": "#while_pattern" + } + ] + }, + "entity_instantiation_pattern": { + "patterns": [ + { + "begin": "(?x)\n\t\t\t\t\t\t# From the beginning of the line\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# Component identifier or illegal identifier $1\n\t\t\t\t\t\t([a-zA-Z][a-zA-Z0-9_]*)\n\n\t\t\t\t\t\t# Colon! $2\n\t\t\t\t\t\t\\s*(:)\\s*\n\n\t\t\t\t\t\t# Optional word use $4\n\t\t\t\t\t\t(((?i:use))\\s+)?\n\n\t\t\t\t\t\t# Required word entity $5\n\t\t\t\t\t\t((?i:entity))\\s+\n\n\t\t\t\t\t\t# Optional library unit identifier $8 for invalid identifier $9 followed by a dot $10\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t(([a-zA-Z][a-zA-Z0-9_]*)|(.+?))\n\t\t\t\t\t\t\t(\\.)\n\t\t\t\t\t\t)?\n\n\t\t\t\t\t\t# Entity name reference $12 or illegal identifier $13\n\t\t\t\t\t\t(([a-zA-Z][a-zA-Z0-9_]*)|(.+?))\n\n\t\t\t\t\t\t# Check to see if we are being followed by either open paren, end of line, or port or generic words\n\t\t\t\t\t\t(?=\\s*(\\(|$|(?i:port|generic)))\n\n\t\t\t\t\t\t# Optional architecture elaboration\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# Open paren $16\n\t\t\t\t\t\t\t\\s*(\\()\\s*\n\n\t\t\t\t\t\t\t# Arch identifier $18 or invalid identifier $19\n\t\t\t\t\t\t\t(([a-zA-Z][a-zA-Z0-9_]*)|(.+?))(?=\\s*\\))\n\n\t\t\t\t\t\t\t# Close paren $21\n\t\t\t\t\t\t\t\\s*(\\))\n\t\t\t\t\t\t)?\n\t\t\t\t\t", + "beginCaptures": { + "1": { + "name": "entity.name.section.entity_instantiation.vhdl" + }, + "2": { + "name": "punctuation.vhdl" + }, + "4": { + "name": "keyword.language.vhdl" + }, + "5": { + "name": "keyword.language.vhdl" + }, + "8": { + "name": "entity.name.tag.library.reference.vhdl" + }, + "9": { + "name": "invalid.illegal.invalid.identifier.vhdl" + }, + "10": { + "name": "punctuation.vhdl" + }, + "12": { + "name": "entity.name.tag.entity.reference.vhdl" + }, + "13": { + "name": "invalid.illegal.invalid.identifier.vhdl" + }, + "16": { + "name": "punctuation.vhdl" + }, + "18": { + "name": "entity.name.tag.architecture.reference.vhdl" + }, + "19": { + "name": "invalid.illegal.invalid.identifier.vhdl" + }, + "21": { + "name": "punctuation.vhdl" + } + }, + "end": ";", + "endCaptures": { + "0": { + "name": "punctuation.vhdl" + } + }, + "patterns": [ + { + "include": "#parenthetical_list" + }, + { + "include": "#cleanup" + } + ] + } + ] + }, + "entity_pattern": { + "patterns": [ + { + "begin": "(?x)\n\t\t\t\t\t\t# From the beginning of the line ...\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# The word entity $1\n\t\t\t\t\t\t((?i:entity\\b))\\s+\n\n\t\t\t\t\t\t# The identifier $3 or an invalid identifier $4\n\t\t\t\t\t\t(([a-zA-Z][a-zA-Z\\d_]*)|(.+?))(?=\\s)\n\t\t\t\t\t", + "beginCaptures": { + "1": { + "name": "keyword.language.vhdl" + }, + "3": { + "name": "entity.name.type.entity.begin.vhdl" + }, + "4": { + "name": "invalid.illegal.invalid.identifier.vhdl" + } + }, + "end": "(?x)\n\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end\\b))\n\n\t\t\t\t\t\t# Optional word entity $3\n\t\t\t\t\t\t(\\s+((?i:entity)))?\n\n\t\t\t\t\t\t# Optional identifier match $6 or indentifier mismatch $7\n\t\t\t\t\t\t(\\s+((\\3)|(.+?)))?\n\t\t\t\t\t\t\n\t\t\t\t\t\t# Make sure there is a semicolon following\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t", + "endCaptures": { + "1": { + "name": "keyword.language.vhdl" + }, + "3": { + "name": "keyword.language.vhdl" + }, + "6": { + "name": "entity.name.type.entity.end.vhdl" + }, + "7": { + "name": "invalid.illegal.mismatched.identifier.vhdl" + } + }, + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#generic_list_pattern" + }, + { + "include": "#port_list_pattern" + }, + { + "include": "#cleanup" + } + ] + } + ] + }, + "for_pattern": { + "patterns": [ + { + "begin": "(?x)\n\t\t\t\t\t\t# From the beginning of the line\n\t\t\t\t\t\t^\\s*\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# Check for an identifier $2\n\t\t\t\t\t\t\t([a-zA-Z][a-zA-Z0-9_]*)\n\n\t\t\t\t\t\t\t# Followed by a colon $3\n\t\t\t\t\t\t\t\\s*(:)\\s*\n\t\t\t\t\t\t)?\n\n\t\t\t\t\t\t# Make sure the next word is not wait\n\t\t\t\t\t\t(?!(?i:wait\\s*))\n\n\t\t\t\t\t\t# The for keyword $4\n\t\t\t\t\t\t\\b((?i:for))\\b\n\n\t\t\t\t\t\t# Make sure the next word is not all\n\t\t\t\t\t\t(?!\\s*(?i:all))\n\n\t\t\t\t\t", + "beginCaptures": { + "2": { + "name": "entity.name.tag.for.generate.begin.vhdl" + }, + "3": { + "name": "punctuation.vhdl" + }, + "4": { + "name": "keyword.language.vhdl" + } + }, + "end": "(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end))\\s+\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# Followed by generate or loop $3\n\t\t\t\t\t\t\t ((?i:generate|loop))\n\n\t\t\t\t\t\t\t# But it really is required $4\n\t\t\t\t\t\t\t|(\\S+)\n\t\t\t\t\t\t)\\b\n\n\t\t\t\t\t\t# The matching identifier $7 or an invalid identifier $8\n\t\t\t\t\t\t(\\s+((\\2)|(.+?)))?\n\n\t\t\t\t\t\t# Only space and a semicolon left\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t", + "endCaptures": { + "1": { + "name": "keyword.language.vhdl" + }, + "3": { + "name": "keyword.language.vhdl" + }, + "4": { + "name": "invalid.illegal.loop.or.generate.required.vhdl" + }, + "7": { + "name": "entity.name.tag.for.generate.end.vhdl" + }, + "8": { + "name": "invalid.illegal.mismatched.identifier.vhdl" + } + }, + "patterns": [ + { + "include": "#control_patterns" + }, + { + "include": "#entity_instantiation_pattern" + }, + { + "include": "#component_pattern" + }, + { + "include": "#component_instantiation_pattern" + }, + { + "include": "#process_pattern" + }, + { + "include": "#cleanup" + } + ] + } + ] + }, + "function_definition_pattern": { + "patterns": [ + { + "begin": "(?x)\n\t\t\t\t\t\t# From the beginning of the line\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# The word function $1\n\t\t\t\t\t\t((?i:impure)?\\s*(?i:function))\\s+\n\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# A valid normal identifier $3\n\t\t\t\t\t\t\t ([a-zA-Z][a-zA-Z\\d_]*)\n\t\t\t\t\t\t\t# A valid string quoted identifier $4\n\t\t\t\t\t\t\t|(\"\\S+\")\n\t\t\t\t\t\t\t# A valid backslash escaped identifier $5\n\t\t\t\t\t\t\t|(\\\\.+\\\\)\n\t\t\t\t\t\t\t# An invalid identifier $5\n\t\t\t\t\t\t\t|(.+?)\n\t\t\t\t\t\t)\n\n\t\t\t\t\t\t# Check to make sure we have a list or we return\n\t\t\t\t\t\t(?=\\s*\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t \\(\n\t\t\t\t\t\t\t\t|(?i:\\breturn\\b)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t", + "beginCaptures": { + "1": { + "name": "keyword.language.vhdl" + }, + "3": { + "name": "entity.name.function.function.begin.vhdl" + }, + "4": { + "name": "entity.name.function.function.begin.vhdl" + }, + "5": { + "name": "entity.name.function.function.begin.vhdl" + }, + "6": { + "name": "invalid.illegal.invalid.identifier.vhdl" + } + }, + "end": "(?x)\n\t\t\t\t\t\t# From the beginning of the line\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t((?i:end))\n\n\t\t\t\t\t\t# Optional word function $3\n\t\t\t\t\t\t(\\s+((?i:function)))?\n\n\t\t\t\t\t\t# Optional matched identifier $6 or mismatched identifier $7\n\t\t\t\t\t\t(\\s+((\\3|\\4|\\5)|(.+?)))?\n\n\t\t\t\t\t\t# Ending with whitespace and semicolon\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t", + "endCaptures": { + "1": { + "name": "keyword.language.vhdl" + }, + "3": { + "name": "keyword.language.vhdl" + }, + "6": { + "name": "entity.name.function.function.end.vhdl" + }, + "7": { + "name": "invalid.illegal.mismatched.identifier.vhdl" + } + }, + "patterns": [ + { + "include": "#control_patterns" + }, + { + "include": "#parenthetical_list" + }, + { + "include": "#type_pattern" + }, + { + "include": "#record_pattern" + }, + { + "include": "#cleanup" + } + ] + } + ] + }, + "function_prototype_pattern": { + "patterns": [ + { + "begin": "(?x)\n\t\t\t\t\t\t# From the beginning of the line\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# The word function $1\n\t\t\t\t\t\t((?i:impure)?\\s*(?i:function))\\s+\n\t\t\t\t\t\t\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# A valid normal identifier $3\n\t\t\t\t\t\t\t ([a-zA-Z][a-zA-Z\\d_]*)\n\t\t\t\t\t\t\t# A valid quoted identifier $4\n\t\t\t\t\t\t\t|(\"\\S+\")\n\t\t\t\t\t\t\t# A valid backslash escaped identifier $5\n\t\t\t\t\t\t\t|(\\\\.+\\\\)\n\t\t\t\t\t\t\t# An invalid identifier $6\n\t\t\t\t\t\t\t|(.+?)\n\t\t\t\t\t\t)\n\n\t\t\t\t\t\t# Check to make sure we have a list or we return\n\t\t\t\t\t\t(?=\\s*\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t \\(\n\t\t\t\t\t\t\t\t|(?i:\\breturn\\b)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t", + "beginCaptures": { + "1": { + "name": "keyword.language.vhdl" + }, + "3": { + "name": "entity.name.function.function.prototype.vhdl" + }, + "4": { + "name": "entity.name.function.function.prototype.vhdl" + }, + "5": { + "name": "entity.name.function.function.prototype.vhdl" + }, + "6": { + "name": "invalid.illegal.function.name.vhdl" + } + }, + "end": "(?<=;)", + "patterns": [ + { + "begin": "\\b(?i:return)(?=\\s+[^;]+\\s*;)", + "beginCaptures": { + "0": { + "name": "keyword.language.vhdl" + } + }, + "end": "\\;", + "endCaptures": { + "0": { + "name": "punctuation.terminator.function_prototype.vhdl" + } + }, + "patterns": [ + { + "include": "#parenthetical_list" + }, + { + "include": "#cleanup" + } + ] + }, + { + "include": "#parenthetical_list" + }, + { + "include": "#cleanup" + } + ] + } + ] + }, + "generic_list_pattern": { + "patterns": [ + { + "begin": "\\b(?i:generic)\\b", + "beginCaptures": { + "0": { + "name": "keyword.language.vhdl" + } + }, + "end": ";", + "endCaptures": { + "0": { + "name": "punctuation.vhdl" + } + }, + "patterns": [ + { + "include": "#parenthetical_list" + } + ] + } + ] + }, + "if_pattern": { + "patterns": [ + { + "begin": "(?x)\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# Optional identifier $2\n\t\t\t\t\t\t\t([a-zA-Z][a-zA-Z0-9_]*)\n\n\t\t\t\t\t\t\t# Followed by a colon $3\n\t\t\t\t\t\t\t\\s*(:)\\s*\n\t\t\t\t\t\t)?\n\n\t\t\t\t\t\t# Keyword if $4\n\t\t\t\t\t\t\\b((?i:if))\\b\n\t\t\t\t\t", + "beginCaptures": { + "2": { + "name": "entity.name.tag.if.generate.begin.vhdl" + }, + "3": { + "name": "punctuation.vhdl" + }, + "4": { + "name": "keyword.language.vhdl" + } + }, + "end": "(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end))\\s+\n\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t# Optional generate or if keyword $4\n\t\t\t\t\t\t\t\t ((?i:generate|if))\n\n\t\t\t\t\t\t\t\t# Keyword if or generate required $5\n\t\t\t\t\t\t\t\t|(\\S+)\n\t\t\t\t\t\t\t)\\b\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\\s+\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t# Optional matching identifier $8\n\t\t\t\t\t\t\t\t\t (\\2)\n\n\t\t\t\t\t\t\t\t\t# Mismatched identifier $9\n\t\t\t\t\t\t\t\t\t|(.+?)\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t)?\n\n\t\t\t\t\t\t# Followed by a semicolon\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t", + "endCaptures": { + "1": { + "name": "keyword.language.vhdl" + }, + "4": { + "name": "keyword.language.vhdl" + }, + "5": { + "name": "invalid.illegal.if.or.generate.required.vhdl" + }, + "8": { + "name": "entity.name.tag.if.generate.end.vhdl" + }, + "9": { + "name": "invalid.illegal.mismatched.identifier.vhdl" + } + }, + "patterns": [ + { + "include": "#control_patterns" + }, + { + "include": "#process_pattern" + }, + { + "include": "#entity_instantiation_pattern" + }, + { + "include": "#component_pattern" + }, + { + "include": "#component_instantiation_pattern" + }, + { + "include": "#cleanup" + } + ] + } + ] + }, + "keywords": { + "patterns": [ + { + "match": "'(?i:active|ascending|base|delayed|driving|event|high|image|instance|instance_name|last|last_value|left|leftof|length|low|path|path_name|pos|pred|quiet|range|reverse|reverse_range|right|rightof|simple|simple_name|stable|succ|transaction|val|value)\\b", + "name": "keyword.attributes.vhdl" + }, + { + "match": "\\b(?i:abs|access|after|alias|all|and|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|context|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|mod|nand|new|next|nor|not|null|of|on|open|or|others|out|package|port|postponed|procedure|process|protected|pure|range|record|register|reject|rem|report|return|rol|ror|select|severity|shared|signal|sla|sll|sra|srl|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with|xnor|xor)\\b", + "name": "keyword.language.vhdl" + }, + { + "match": "\\b(?i:std|ieee|work|standard|textio|std_logic_1164|std_logic_arith|std_logic_misc|std_logic_signed|std_logic_textio|std_logic_unsigned|numeric_bit|numeric_std|math_complex|math_real|vital_primitives|vital_timing)\\b", + "name": "standard.library.language.vhdl" + }, + { + "match": "(\\+|\\-|<=|=|=>|:=|>=|>|<|/|\\||&|(\\*{1,2}))", + "name": "keyword.operator.vhdl" + } + ] + }, + "package_body_pattern": { + "patterns": [ + { + "begin": "(?x)\n\t\t\t\t\t\t# The word package $1\n\t\t\t\t\t\t\\b((?i:package))\\s+\n\n\t\t\t\t\t\t# ... but we want to be a package body $2\n\t\t\t\t\t\t((?i:body))\\s+\n\n\t\t\t\t\t\t# The valid identifier $4 or the invalid one $5\n\t\t\t\t\t\t(([a-zA-Z][a-zA-Z\\d_]*)|(.+?))\\s+\n\n\t\t\t\t\t\t# ... and we end it with an is $6\n\t\t\t\t\t\t((?i:is))\\b\n\t\t\t\t\t", + "beginCaptures": { + "1": { + "name": "keyword.language.vhdl" + }, + "2": { + "name": "keyword.language.vhdl" + }, + "4": { + "name": "entity.name.section.package_body.begin.vhdl" + }, + "5": { + "name": "invalid.illegal.invalid.identifier.vhdl" + }, + "6": { + "name": "keyword.language.vhdl" + } + }, + "end": "(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end\\b))\n\n\t\t\t\t\t\t# Optional word package $3 body $4\n\t\t\t\t\t\t(\\s+((?i:package))\\s+((?i:body)))?\n\n\t\t\t\t\t\t# Optional identifier $7 or mismatched identifier $8\n\t\t\t\t\t\t(\\s+((\\4)|(.+?)))?(?=\\s*;)", + "endCaptures": { + "1": { + "name": "keyword.language.vhdl" + }, + "3": { + "name": "keyword.language.vhdl" + }, + "4": { + "name": "keyword.language.vhdl" + }, + "7": { + "name": "entity.name.section.package_body.end.vhdl" + }, + "8": { + "name": "invalid.illegal.mismatched.identifier.vhdl" + } + }, + "patterns": [ + { + "include": "#protected_body_pattern" + }, + { + "include": "#function_definition_pattern" + }, + { + "include": "#procedure_definition_pattern" + }, + { + "include": "#type_pattern" + }, + { + "include": "#subtype_pattern" + }, + { + "include": "#record_pattern" + }, + { + "include": "#cleanup" + } + ] + } + ] + }, + "package_pattern": { + "patterns": [ + { + "begin": "(?x)\n\t\t\t\t\t\t# The word package $1\n\t\t\t\t\t\t\\b((?i:package))\\s+\n\n\t\t\t\t\t\t# ... but we do not want to be a package body\n\t\t\t\t\t\t(?!(?i:body))\n\n\t\t\t\t\t\t# The valid identifier $3 or the invalid one $4\n\t\t\t\t\t\t(([a-zA-Z][a-zA-Z\\d_]*)|(.+?))\\s+\n\n\t\t\t\t\t\t# ... and we end it with an is $5\n\t\t\t\t\t\t((?i:is))\\b\n\t\t\t\t\t", + "beginCaptures": { + "1": { + "name": "keyword.language.vhdl" + }, + "3": { + "name": "entity.name.section.package.begin.vhdl" + }, + "4": { + "name": "invalid.illegal.invalid.identifier.vhdl" + }, + "5": { + "name": "keyword.language.vhdl" + } + }, + "end": "(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end\\b))\n\n\t\t\t\t\t\t# Optional word package $3\n\t\t\t\t\t\t(\\s+((?i:package)))?\n\n\t\t\t\t\t\t# Optional identifier $6 or mismatched identifier $7\n\t\t\t\t\t\t(\\s+((\\2)|(.+?)))?(?=\\s*;)", + "endCaptures": { + "1": { + "name": "keyword.language.vhdl" + }, + "3": { + "name": "keyword.language.vhdl" + }, + "6": { + "name": "entity.name.section.package.end.vhdl" + }, + "7": { + "name": "invalid.illegal.mismatched.identifier.vhdl" + } + }, + "patterns": [ + { + "include": "#protected_pattern" + }, + { + "include": "#function_prototype_pattern" + }, + { + "include": "#procedure_prototype_pattern" + }, + { + "include": "#type_pattern" + }, + { + "include": "#subtype_pattern" + }, + { + "include": "#record_pattern" + }, + { + "include": "#component_pattern" + }, + { + "include": "#cleanup" + } + ] + } + ] + }, + "protected_body_pattern": { + "patterns": [ + { + "begin": "(?x)\n\t\t\t\t\t\t\\b((?i:type))\\s+\n\n\t\t\t\t\t\t# The valid identifier $2 or the invalid one $3\n\t\t\t\t\t\t(([a-zA-Z][a-zA-Z\\d_]*)|(.+?))\\s+\n\n\t\t\t\t\t\t\\b((?i:is\\s+protected\\s+body))\\s+\n\t\t\t\t\t", + "beginCaptures": { + "1": { + "name": "keyword.language.vhdl" + }, + "3": { + "name": "entity.name.section.protected_body.begin.vhdl" + }, + "4": { + "name": "invalid.illegal.invalid.identifier.vhdl" + }, + "5": { + "name": "keyword.language.vhdl" + } + }, + "end": "(?x)\n\t\t\t\t\t\t\\b((?i:end\\s+protected\\s+body))\n\n\t\t\t\t\t\t# Optional identifier\n\t\t\t\t\t\t(\\s+((\\3)|(.+?)))?\n\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t\t", + "endCaptures": { + "1": { + "name": "keyword.language.vhdl" + }, + "4": { + "name": "entity.name.section.protected_body.end.vhdl" + }, + "5": { + "name": "invalid.illegal.mismatched.identifier.vhdl" + } + }, + "patterns": [ + { + "include": "#function_definition_pattern" + }, + { + "include": "#procedure_definition_pattern" + }, + { + "include": "#type_pattern" + }, + { + "include": "#subtype_pattern" + }, + { + "include": "#record_pattern" + }, + { + "include": "#cleanup" + } + ] + } + ] + }, + "protected_pattern": { + "patterns": [ + { + "begin": "(?x)\n\t\t\t\t\t\t\\b((?i:type))\\s+\n\n\t\t\t\t\t\t# The valid identifier $2 or the invalid one $3\n\t\t\t\t\t\t(([a-zA-Z][a-zA-Z\\d_]*)|(.+?))\\s+\n\n\t\t\t\t\t\t\\b((?i:is\\s+protected))\\s+\n\n\t\t\t\t\t\t# Not body\n\t\t\t\t\t\t(?!(?i:body))\n\t\t\t\t\t", + "beginCaptures": { + "1": { + "name": "keyword.language.vhdls" + }, + "3": { + "name": "entity.name.section.protected.begin.vhdl" + }, + "4": { + "name": "invalid.illegal.invalid.identifier.vhdl" + }, + "5": { + "name": "keyword.language.vhdl" + } + }, + "end": "(?x)\n\t\t\t\t\t\t\\b((?i:end\\s+protected))\n\n\t\t\t\t\t\t# Optional identifier\n\t\t\t\t\t\t(\\s+((\\3)|(.+?)))?\n\n\t\t\t\t\t\t# Not body\n\t\t\t\t\t\t(?!(?i:body))\n\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t", + "endCaptures": { + "1": { + "name": "keyword.language.vhdl" + }, + "4": { + "name": "entity.name.section.protected.end.vhdl" + }, + "5": { + "name": "invalid.illegal.mismatched.identifier.vhdl" + } + }, + "patterns": [ + { + "include": "#function_prototype_pattern" + }, + { + "include": "#procedure_prototype_pattern" + }, + { + "include": "#type_pattern" + }, + { + "include": "#subtype_pattern" + }, + { + "include": "#record_pattern" + }, + { + "include": "#component_pattern" + }, + { + "include": "#cleanup" + } + ] + } + ] + }, + "parenthetical_list": { + "patterns": [ + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.vhdl" + } + }, + "end": "(?<=\\))", + "patterns": [ + { + "begin": "(?=['\"a-zA-Z0-9])", + "end": "(;|\\)|,)", + "endCaptures": { + "0": { + "name": "punctuation.vhdl" + } + }, + "name": "source.vhdl", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#parenthetical_pair" + }, + { + "include": "#cleanup" + } + ] + }, + { + "match": "\\)", + "name": "invalid.illegal.unexpected.parenthesis.vhdl" + }, + { + "include": "#cleanup" + } + ] + } + ] + }, + "parenthetical_pair": { + "patterns": [ + { + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.vhdl" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.vhdl" + } + }, + "patterns": [ + { + "include": "#parenthetical_pair" + }, + { + "include": "#cleanup" + } + ] + } + ] + }, + "port_list_pattern": { + "patterns": [ + { + "begin": "\\b(?i:port)\\b", + "beginCaptures": { + "0": { + "name": "keyword.language.vhdl" + } + }, + "end": "(?<=\\))\\s*;", + "endCaptures": { + "0": { + "name": "punctuation.vhdl" + } + }, + "patterns": [ + { + "include": "#parenthetical_list" + } + ] + } + ] + }, + "procedure_definition_pattern": { + "patterns": [ + { + "begin": "(?x)\n\t\t\t\t\t\t# From the beginning of the line\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# The word function $1\n\t\t\t\t\t\t((?i:procedure))\\s+\n\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# A valid normal identifier $3\n\t\t\t\t\t\t\t ([a-zA-Z][a-zA-Z\\d_]*)\n\t\t\t\t\t\t\t# A valid quoted identifier $4\n\t\t\t\t\t\t\t|(\"\\S+\")\n\t\t\t\t\t\t\t# An invalid identifier $5\n\t\t\t\t\t\t\t|(.+?)\n\t\t\t\t\t\t)\n\n\t\t\t\t\t\t# Check to make sure we have a list is\n\t\t\t\t\t\t(?=\\s*(\\(|(?i:is)))\n\t\t\t\t\t", + "beginCaptures": { + "1": { + "name": "keyword.language.vhdl" + }, + "3": { + "name": "entity.name.function.procedure.begin.vhdl" + }, + "4": { + "name": "entity.name.function.procedure.begin.vhdl" + }, + "5": { + "name": "invalid.illegal.invalid.identifier.vhdl" + } + }, + "end": "(?x)\n\t\t\t\t\t\t# From the beginning of the line\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t((?i:end))\n\n\t\t\t\t\t\t# Optional word function $3\n\t\t\t\t\t\t(\\s+((?i:procedure)))?\n\n\t\t\t\t\t\t# Optional matched identifier $6 or mismatched identifier $7\n\t\t\t\t\t\t(\\s+((\\3|\\4)|(.+?)))?\n\n\t\t\t\t\t\t# Ending with whitespace and semicolon\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t", + "endCaptures": { + "1": { + "name": "keyword.language.vhdl" + }, + "3": { + "name": "keyword.language.vhdl" + }, + "6": { + "name": "entity.name.function.procedure.end.vhdl" + }, + "7": { + "name": "invalid.illegal.mismatched.identifier.vhdl" + } + }, + "patterns": [ + { + "include": "#parenthetical_list" + }, + { + "include": "#control_patterns" + }, + { + "include": "#type_pattern" + }, + { + "include": "#record_pattern" + }, + { + "include": "#cleanup" + } + ] + } + ] + }, + "procedure_prototype_pattern": { + "patterns": [ + { + "begin": "(?x)\n\t\t\t\t\t\t\\b((?i:procedure))\\s+\n\t\t\t\t\t\t(([a-zA-Z][a-zA-Z0-9_]*)|(.+?))\n\t\t\t\t\t\t(?=\\s*(\\(|;))\n\t\t\t\t\t", + "beginCaptures": { + "1": { + "name": "keyword.language.vhdl" + }, + "3": { + "name": "entity.name.function.procedure.begin.vhdl" + }, + "4": { + "name": "invalid.illegal.invalid.identifier.vhdl" + } + }, + "end": ";", + "endCaptures": { + "0": { + "name": "punctual.vhdl" + } + }, + "patterns": [ + { + "include": "#parenthetical_list" + } + ] + } + ] + }, + "process_pattern": { + "patterns": [ + { + "begin": "(?x)\n\t\t\t\t\t\t# From the beginning of the line\n\t\t\t\t\t\t^\\s*\n\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# Optional identifier $2\n\t\t\t\t\t\t\t([a-zA-Z][a-zA-Z0-9_]*)\n\n\t\t\t\t\t\t\t# Colon $3\n\t\t\t\t\t\t\t\\s*(:)\\s*\n\t\t\t\t\t\t)?\n\n\t\t\t\t\t\t# The word process #4\n\t\t\t\t\t\t((?i:process\\b))\n\t\t\t\t\t", + "beginCaptures": { + "2": { + "name": "entity.name.section.process.begin.vhdl" + }, + "3": { + "name": "punctuation.vhdl" + }, + "4": { + "name": "keyword.language.vhdl" + } + }, + "end": "(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t((?i:end))\n\n\t\t\t\t\t\t# Optional word process $3\n\t\t\t\t\t\t(\\s+((?i:process)))\n\n\t\t\t\t\t\t# Optional identifier $6 or invalid identifier $7\n\t\t\t\t\t\t(\\s+((\\2)|(.+?)))?\n\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t", + "endCaptures": { + "1": { + "name": "keyword.language.vhdl" + }, + "3": { + "name": "keyword.language.vhdl" + }, + "6": { + "name": "entity.name.section.process.end.vhdl" + }, + "7": { + "name": "invalid.illegal.invalid.identifier.vhdl" + } + }, + "patterns": [ + { + "include": "#control_patterns" + }, + { + "include": "#cleanup" + } + ] + } + ] + }, + "punctuation": { + "patterns": [ + { + "match": "(\\.|,|:|;|\\(|\\))", + "name": "punctuation.vhdl" + } + ] + }, + "record_pattern": { + "patterns": [ + { + "begin": "\\b(?i:record)\\b", + "beginCaptures": { + "0": { + "name": "keyword.language.vhdl" + } + }, + "end": "(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end))\n\n\t\t\t\t\t\t# The word record $2\n\t\t\t\t\t\t\\s+((?i:record))\n\n\t\t\t\t\t\t# Optional identifier $5 or invalid identifier $6\n\t\t\t\t\t\t(\\s+(([a-zA-Z][a-zA-Z\\d_]*)|(.*?)))?\n\n\t\t\t\t\t\t# Only whitespace and semicolons can be left\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t", + "endCaptures": { + "1": { + "name": "keyword.language.vhdl" + }, + "2": { + "name": "keyword.language.vhdl" + }, + "5": { + "name": "entity.name.type.record.vhdl" + }, + "6": { + "name": "invalid.illegal.invalid.identifier.vhdl" + } + }, + "patterns": [ + { + "include": "#cleanup" + } + ] + }, + { + "include": "#cleanup" + } + ] + }, + "strings": { + "patterns": [ + { + "match": "'.'", + "name": "string.quoted.single.vhdl" + }, + { + "begin": "\"", + "end": "\"", + "name": "string.quoted.double.vhdl", + "patterns": [ + { + "match": "\\\\.", + "name": "constant.character.escape.vhdl" + } + ] + }, + { + "begin": "\\\\", + "end": "\\\\", + "name": "string.other.backslash.vhdl" + } + ] + }, + "subtype_pattern": { + "patterns": [ + { + "begin": "(?x)\n\t\t\t\t\t\t# The word subtype $1\n\t\t\t\t\t\t\\b((?i:subtype))\\s+\n\n\t\t\t\t\t\t# Valid identifier $3 or invalid identifier $4\n\t\t\t\t\t\t(([a-zA-Z][a-zA-Z0-9_]*)|(.+?))\\s+\n\n\t\t\t\t\t\t# The word is $5\n\t\t\t\t\t\t((?i:is))\\b\n\t\t\t\t\t", + "beginCaptures": { + "1": { + "name": "keyword.language.vhdl" + }, + "3": { + "name": "entity.name.type.subtype.vhdl" + }, + "4": { + "name": "invalid.illegal.invalid.identifier.vhdl" + }, + "5": { + "name": "keyword.language.vhdl" + } + }, + "end": ";", + "endCaptures": { + "0": { + "name": "punctuation.vhdl" + } + }, + "patterns": [ + { + "include": "#cleanup" + } + ] + } + ] + }, + "support_constants": { + "patterns": [ + { + "match": "\\b(?i:math_1_over_e|math_1_over_pi|math_1_over_sqrt_2|math_2_pi|math_3_pi_over_2|math_deg_to_rad|math_e|math_log10_of_e|math_log2_of_e|math_log_of_10|math_log_of_2|math_pi|math_pi_over_2|math_pi_over_3|math_pi_over_4|math_rad_to_deg|math_sqrt_2|math_sqrt_pi)\\b", + "name": "support.constant.ieee.math_real.vhdl" + }, + { + "match": "\\b(?i:math_cbase_1|math_cbase_j|math_czero|positive_real|principal_value)\\b", + "name": "support.constant.ieee.math_complex.vhdl" + }, + { + "match": "\\b(?i:true|false)\\b", + "name": "support.constant.std.standard.vhdl" + } + ] + }, + "support_functions": { + "patterns": [ + { + "match": "\\b(?i:finish|stop|resolution_limit)\\b", + "name": "support.function.std.env.vhdl" + }, + { + "match": "\\b(?i:readline|read|writeline|write|endfile|endline)\\b", + "name": "support.function.std.textio.vhdl" + }, + { + "match": "\\b(?i:rising_edge|falling_edge|to_bit|to_bitvector|to_stdulogic|to_stdlogicvector|to_stdulogicvector|is_x)\\b", + "name": "support.function.ieee.std_logic_1164.vhdl" + }, + { + "match": "\\b(?i:shift_left|shift_right|rotate_left|rotate_right|resize|to_integer|to_unsigned|to_signed)\\b", + "name": "support.function.ieee.numeric_std.vhdl" + }, + { + "match": "\\b(?i:arccos(h?)|arcsin(h?)|arctan|arctanh|cbrt|ceil|cos|cosh|exp|floor|log10|log2|log|realmax|realmin|round|sign|sin|sinh|sqrt|tan|tanh|trunc)\\b", + "name": "support.function.ieee.math_real.vhdl" + }, + { + "match": "\\b(?i:arg|cmplx|complex_to_polar|conj|get_principal_value|polar_to_complex)\\b", + "name": "support.function.ieee.math_complex.vhdl" + } + ] + }, + "support_types": { + "patterns": [ + { + "match": "\\b(?i:boolean|bit|character|severity_level|integer|real|time|delay_length|now|natural|positive|string|bit_vector|file_open_kind|file_open_status|fs|ps|ns|us|ms|sec|min|hr|severity_level|note|warning|error|failure)\\b", + "name": "support.type.std.standard.vhdl" + }, + { + "match": "\\b(?i:line|text|side|width|input|output)\\b", + "name": "support.type.std.textio.vhdl" + }, + { + "match": "\\b(?i:std_logic|std_ulogic|std_logic_vector|std_ulogic_vector)\\b", + "name": "support.type.ieee.std_logic_1164.vhdl" + }, + { + "match": "\\b(?i:signed|unsigned)\\b", + "name": "support.type.ieee.numeric_std.vhdl" + }, + { + "match": "\\b(?i:complex|complex_polar)\\b", + "name": "support.type.ieee.math_complex.vhdl" + } + ] + }, + "syntax_highlighting": { + "patterns": [ + { + "include": "#keywords" + }, + { + "include": "#punctuation" + }, + { + "include": "#support_constants" + }, + { + "include": "#support_types" + }, + { + "include": "#support_functions" + } + ] + }, + "type_pattern": { + "patterns": [ + { + "begin": "(?x)\n\t\t\t\t\t\t# The word type $1\n\t\t\t\t\t\t\\b((?i:type))\\s+\n\n\t\t\t\t\t\t# Valid identifier $3 or invalid identifier $4\n\t\t\t\t\t\t(([a-zA-Z][a-zA-Z0-9_]*)|(.+?))\n\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# A semicolon is coming up if we are incomplete\n\t\t\t\t\t\t\t (?=\\s*;)\n\n\t\t\t\t\t\t\t# Or the word is comes up $7\n\t\t\t\t\t\t\t|(\\s+((?i:is)))\n\t\t\t\t\t\t)\\b\n\t\t\t\t\t", + "beginCaptures": { + "1": { + "name": "keyword.language.vhdl" + }, + "3": { + "name": "entity.name.type.type.vhdl" + }, + "4": { + "name": "invalid.illegal.invalid.identifier.vhdl" + }, + "7": { + "name": "keyword.language.vhdl" + } + }, + "end": ";", + "endCaptures": { + "0": { + "name": "punctuation.vhdl" + } + }, + "patterns": [ + { + "include": "#record_pattern" + }, + { + "include": "#cleanup" + } + ] + } + ] + }, + "while_pattern": { + "patterns": [ + { + "begin": "(?x)\n\t\t\t\t\t\t# From the beginning of the line\n\t\t\t\t\t\t^\\s*\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# Check for an identifier $2\n\t\t\t\t\t\t\t([a-zA-Z][a-zA-Z0-9_]*)\n\n\t\t\t\t\t\t\t# Followed by a colon $3\n\t\t\t\t\t\t\t\\s*(:)\\s*\n\t\t\t\t\t\t)?\n\n\t\t\t\t\t\t# The for keyword $4\n\t\t\t\t\t\t\\b((?i:while))\\b\n\t\t\t\t\t", + "beginCaptures": { + "2": { + "name": "" + }, + "3": { + "name": "punctuation.vhdl" + }, + "4": { + "name": "keyword.language.vhdl" + } + }, + "end": "(?x)\n\t\t\t\t\t\t# The word end $1\n\t\t\t\t\t\t\\b((?i:end))\\s+\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t# Followed by keyword loop $3\n\t\t\t\t\t\t\t ((?i:loop))\n\n\t\t\t\t\t\t\t# But it really is required $4\n\t\t\t\t\t\t\t|(\\S+)\n\t\t\t\t\t\t)\\b\n\n\t\t\t\t\t\t# The matching identifier $7 or an invalid identifier $8\n\t\t\t\t\t\t(\\s+((\\2)|(.+?)))?\n\n\t\t\t\t\t\t# Only space and a semicolon left\n\t\t\t\t\t\t(?=\\s*;)\n\t\t\t\t\t", + "endCaptures": { + "1": { + "name": "keyword.language.vhdl" + }, + "3": { + "name": "keyword.language.vhdl" + }, + "4": { + "name": "invalid.illegal.loop.keyword.required.vhdl" + }, + "7": { + "name": "entity.name.tag.while.loop.vhdl" + }, + "8": { + "name": "invalid.illegal.mismatched.identifier" + } + }, + "patterns": [ + { + "include": "#control_patterns" + }, + { + "include": "#cleanup" + } + ] + } + ] + } + }, + "scopeName": "source.vhdl" +} diff --git a/docs/shiki/languages/viml.tmLanguage.json b/docs/shiki/languages/viml.tmLanguage.json new file mode 100644 index 00000000..99b7fccf --- /dev/null +++ b/docs/shiki/languages/viml.tmLanguage.json @@ -0,0 +1,441 @@ +{ + "repository": { + "commands": { + "patterns": [ + { + "name": "storage.other.command.viml", + "match": "\\bcom(\\s|\\!)" + }, + { + "name": "storage.other.command.viml", + "match": "\\bau(\\s|\\!)" + }, + { + "name": "storage.other.command.bang.viml", + "match": "-bang" + }, + { + "name": "storage.other.command.args.viml", + "match": "-nargs=[*+0-9]+" + }, + { + "name": "storage.other.command.completion.viml", + "match": "-complete=\\S+" + }, + { + "begin": "(aug(roup)?)", + "end": "(augroup\\sEND|$)", + "name": "support.function.augroup.viml" + } + ] + }, + "comment": { + "patterns": [ + { + "begin": "((\\s+)?\"\"\")", + "end": "^(?!\")", + "name": "comment.block.documentation.viml" + }, + { + "match": "^\"\\svim:.*", + "name": "comment.block.modeline.viml" + }, + { + "name": "comment.line.viml", + "begin": "(\\s+\"\\s+)(?!\")", + "end": "$", + "patterns": [ + { + "match": "\\{\\{\\{\\d?$", + "name": "comment.line.foldmarker.viml" + }, + { + "match": "\\}\\}\\}\\d?", + "name": "comment.line.foldmarker.viml" + } + ] + }, + { + "name": "comment.line.viml", + "begin": "^(\\s+)?\"", + "end": "$", + "patterns": [ + { + "match": "\\{\\{\\{\\d?$", + "name": "comment.line.foldmarker.viml" + }, + { + "match": "\\}\\}\\}\\d?", + "name": "comment.line.foldmarker.viml" + } + ] + } + ] + }, + "entity": { + "patterns": [ + { + "name": "entity.name.function.viml", + "match": "(([absg]\\:)?[a-zA-Z0-9_#.]{2,})\\b(?=\\()" + } + ] + }, + "map": { + "patterns": [ + { + "begin": "(\\<)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.map.viml" + } + }, + "end": "(\\>|\\s)", + "endCaptures": { + "1": { + "name": "punctuation.definition.map.viml" + } + }, + "patterns": [ + { + "name": "constant.character.map.rhs.viml", + "match": "(?<=:\\s)(.+)" + }, + { + "name": "constant.character.map.special.viml", + "match": "(?i:(bang|buffer|expr|nop|plug|sid|silent))" + }, + { + "name": "constant.character.map.key.viml", + "match": "(?i:([adcms]-\\w))" + }, + { + "name": "constant.character.map.key.fn.viml", + "match": "(?i:(F[0-9]+))" + }, + { + "name": "constant.character.map.viml", + "match": "(?i:(bs|bar|cr|del|down|esc|left|right|space|tab|up|leader))" + } + ] + }, + { + "name": "storage.type.map.viml", + "match": "(\\b([cinostvx]?(nore)?map)\\b)" + } + ] + }, + "operators": { + "patterns": [ + { + "name": "keyword.operator.viml", + "match": "([#+?!=~\\\\])" + }, + { + "name": "keyword.operator.viml", + "match": " ([:\\-.]|[&|]{2})( |$)" + }, + { + "name": "keyword.operator.viml", + "match": "([.]{3})" + }, + { + "name": "keyword.operator.viml", + "match": "( [<>] )" + }, + { + "name": "keyword.operator.viml", + "match": "(>=)" + } + ] + }, + "option": { + "patterns": [ + { + "name": "support.type.option.viml", + "match": "&?\\b(al|aleph|anti|antialias|arab|arabic|arshape|arabicshape|ari|allowrevins|akm|altkeymap|ambw|ambiwidth|acd|autochdir|ai|autoindent|ar|autoread|aw|autowrite|awa|autowriteall|bg|background|bs|backspace|bk|backup|bkc|backupcopy|bdir|backupdir|bex|backupext|bsk|backupskip|bdlay|balloondelay|beval|ballooneval|bevalterm|balloonevalterm|bexpr|balloonexpr|bo|belloff|bin|binary|bomb|brk|breakat|bri|breakindent|briopt|breakindentopt|bsdir|browsedir|bh|bufhidden|bl|buflisted|bt|buftype|cmp|casemap|cd|cdpath|cedit|ccv|charconvert|cin|cindent|cink|cinkeys|cino|cinoptions|cinw|cinwords|cb|clipboard|ch|cmdheight|cwh|cmdwinheight|cc|colorcolumn|co|columns|com|comments|cms|commentstring|cp|compatible|cpt|complete|cocu|concealcursor|cole|conceallevel|cfu|completefunc|cot|completeopt|cf|confirm|ci|copyindent|cpo|cpoptions|cm|cryptmethod|cspc|cscopepathcomp|csprg|cscopeprg|csqf|cscopequickfix|csre|cscoperelative|cst|cscopetag|csto|cscopetagorder|csverb|cscopeverbose|crb|cursorbind|cuc|cursorcolumn|cul|cursorline|debug|def|define|deco|delcombine|dict|dictionary|diff|dex|diffexpr|dip|diffopt|dg|digraph|dir|directory|dy|display|ead|eadirection|ed|edcompatible|emo|emoji|enc|encoding|eol|endofline|ea|equalalways|ep|equalprg|eb|errorbells|ef|errorfile|efm|errorformat|ek|esckeys|ei|eventignore|et|expandtab|ex|exrc|fenc|fileencoding|fencs|fileencodings|ff|fileformat|ffs|fileformats|fic|fileignorecase|ft|filetype|fcs|fillchars|fixeol|fixendofline|fk|fkmap|fcl|foldclose|fdc|foldcolumn|fen|foldenable|fde|foldexpr|fdi|foldignore|fdl|foldlevel|fdls|foldlevelstart|fmr|foldmarker|fdm|foldmethod|fml|foldminlines|fdn|foldnestmax|fdo|foldopen|fdt|foldtext|fex|formatexpr|fo|formatoptions|flp|formatlistpat|fp|formatprg|fs|fsync|gd|gdefault|gfm|grepformat|gp|grepprg|gcr|guicursor|gfn|guifont|gfs|guifontset|gfw|guifontwide|ghr|guiheadroom|go|guioptions|guipty|gtl|guitablabel|gtt|guitabtooltip|hf|helpfile|hh|helpheight|hlg|helplang|hid|hidden|hl|highlight|hi|history|hk|hkmap|hkp|hkmapp|hls|hlsearch|icon|iconstring|ic|ignorecase|imaf|imactivatefunc|imak|imactivatekey|imc|imcmdline|imd|imdisable|imi|iminsert|ims|imsearch|imsf|imstatusfunc|imst|imstyle|inc|include|inex|includeexpr|is|incsearch|inde|indentexpr|indk|indentkeys|inf|infercase|im|insertmode|isf|isfname|isi|isident|isk|iskeyword|isp|isprint|js|joinspaces|key|kmp|keymap|km|keymodel|kp|keywordprg|lmap|langmap|lm|langmenu|lnr|langnoremap|lrm|langremap|ls|laststatus|lz|lazyredraw|lbr|linebreak|lines|lsp|linespace|lisp|lw|lispwords|list|lcs|listchars|lpl|loadplugins|luadll|macatsui|magic|mef|makeef|menc|makeencoding|mp|makeprg|mps|matchpairs|mat|matchtime|mco|maxcombine|mfd|maxfuncdepth|mmd|maxmapdepth|mm|maxmem|mmp|maxmempattern|mmt|maxmemtot|mis|menuitems|msm|mkspellmem|ml|modeline|mls|modelines|ma|modifiable|mod|modified|more|mouse|mousef|mousefocus|mh|mousehide|mousem|mousemodel|mouses|mouseshape|mouset|mousetime|mzschemedll|mzschemegcdll|mzq|mzquantum|nf|nrformats|nu|number|nuw|numberwidth|ofu|omnifunc|odev|opendevice|opfunc|operatorfunc|pp|packpath|para|paragraphs|paste|pt|pastetoggle|pex|patchexpr|pm|patchmode|pa|path|perldll|pi|preserveindent|pvh|previewheight|pvw|previewwindow|pdev|printdevice|penc|printencoding|pexpr|printexpr|pfn|printfont|pheader|printheader|pmbcs|printmbcharset|pmbfn|printmbfont|popt|printoptions|prompt|ph|pumheight|pythonthreedll|pythondll|pyx|pyxversion|qe|quoteescape|ro|readonly|rdt|redrawtime|re|regexpengine|rnu|relativenumber|remap|rop|renderoptions|report|rs|restorescreen|ri|revins|rl|rightleft|rlc|rightleftcmd|rubydll|ru|ruler|ruf|rulerformat|rtp|runtimepath|scr|scroll|scb|scrollbind|sj|scrolljump|so|scrolloff|sbo|scrollopt|sect|sections|secure|sel|selection|slm|selectmode|ssop|sessionoptions|sh|shell|shcf|shellcmdflag|sp|shellpipe|shq|shellquote|srr|shellredir|ssl|shellslash|stmp|shelltemp|st|shelltype|sxq|shellxquote|sxe|shellxescape|sr|shiftround|sw|shiftwidth|shm|shortmess|sn|shortname|sbr|showbreak|sc|showcmd|sft|showfulltag|sm|showmatch|smd|showmode|stal|showtabline|ss|sidescroll|siso|sidescrolloff|scl|signcolumn|scs|smartcase|si|smartindent|sta|smarttab|sts|softtabstop|spell|spc|spellcapcheck|spf|spellfile|spl|spelllang|sps|spellsuggest|sb|splitbelow|spr|splitright|sol|startofline|stl|statusline|su|suffixes|sua|suffixesadd|swf|swapfile|sws|swapsync|swb|switchbuf|smc|synmaxcol|syn|syntax|tal|tabline|tpm|tabpagemax|ts|tabstop|tbs|tagbsearch|tc|tagcase|tl|taglength|tr|tagrelative|tag|tags|tgst|tagstack|tcldll|term|tbidi|termbidi|tenc|termencoding|tgc|termguicolors|tk|termkey|tms|termsize|terse|ta|textauto|tx|textmode|tw|textwidth|tsr|thesaurus|top|tildeop|to|timeout|tm|timeoutlen|title|titlelen|titleold|titlestring|tb|toolbar|tbis|toolbariconsize|ttimeout|ttm|ttimeoutlen|tbi|ttybuiltin|tf|ttyfast|ttym|ttymouse|tsl|ttyscroll|tty|ttytype|udir|undodir|udf|undofile|ul|undolevels|ur|undoreload|uc|updatecount|ut|updatetime|vbs|verbose|vfile|verbosefile|vdir|viewdir|vop|viewoptions|vi|viminfo|vif|viminfofile|ve|virtualedit|vb|visualbell|warn|wiv|weirdinvert|ww|whichwrap|wc|wildchar|wcm|wildcharm|wig|wildignore|wic|wildignorecase|wmnu|wildmenu|wim|wildmode|wop|wildoptions|wak|winaltkeys|wi|window|wh|winheight|wfh|winfixheight|wfw|winfixwidth|wmh|winminheight|wmw|winminwidth|winptydll|wiw|winwidth|wrap|wm|wrapmargin|ws|wrapscan|write|wa|writeany|wb|writebackup|wd|writedelay)\\b" + }, + { + "name": "support.type.option.viml", + "match": "&?\\b(aleph|allowrevins|altkeymap|ambiwidth|autochdir|arabic|arabicshape|autoindent|autoread|autowrite|autowriteall|background|backspace|backup|backupcopy|backupdir|backupext|backupskip|balloondelay|ballooneval|balloonexpr|belloff|binary|bomb|breakat|breakindent|breakindentopt|browsedir|bufhidden|buflisted|buftype|casemap|cdpath|cedit|charconvert|cindent|cinkeys|cinoptions|cinwords|clipboard|cmdheight|cmdwinheight|colorcolumn|columns|comments|commentstring|complete|completefunc|completeopt|concealcursor|conceallevel|confirm|copyindent|cpoptions|cscopepathcomp|cscopeprg|cscopequickfix|cscoperelative|cscopetag|cscopetagorder|cscopeverbose|cursorbind|cursorcolumn|cursorline|debug|define|delcombine|dictionary|diff|diffexpr|diffopt|digraph|directory|display|eadirection|encoding|endofline|equalalways|equalprg|errorbells|errorfile|errorformat|eventignore|expandtab|exrc|fileencoding|fileencodings|fileformat|fileformats|fileignorecase|filetype|fillchars|fixendofline|fkmap|foldclose|foldcolumn|foldenable|foldexpr|foldignore|foldlevel|foldlevelstart|foldmarker|foldmethod|foldminlines|foldnestmax|foldopen|foldtext|formatexpr|formatlistpat|formatoptions|formatprg|fsync|gdefault|grepformat|grepprg|guicursor|guifont|guifontset|guifontwide|guioptions|guitablabel|guitabtooltip|helpfile|helpheight|helplang|hidden|hlsearch|history|hkmap|hkmapp|icon|iconstring|ignorecase|imcmdline|imdisable|iminsert|imsearch|include|includeexpr|incsearch|indentexpr|indentkeys|infercase|insertmode|isfname|isident|iskeyword|isprint|joinspaces|keymap|keymodel|keywordprg|langmap|langmenu|langremap|laststatus|lazyredraw|linebreak|lines|linespace|lisp|lispwords|list|listchars|loadplugins|magic|makeef|makeprg|matchpairs|matchtime|maxcombine|maxfuncdepth|maxmapdepth|maxmem|maxmempattern|maxmemtot|menuitems|mkspellmem|modeline|modelines|modifiable|modified|more|mouse|mousefocus|mousehide|mousemodel|mouseshape|mousetime|nrformats|number|numberwidth|omnifunc|opendevice|operatorfunc|packpath|paragraphs|paste|pastetoggle|patchexpr|patchmode|path|perldll|preserveindent|previewheight|previewwindow|printdevice|printencoding|printexpr|printfont|printheader|printmbcharset|printmbfont|printoptions|prompt|pumheight|pythondll|pythonthreedll|quoteescape|readonly|redrawtime|regexpengine|relativenumber|remap|report|revins|rightleft|rightleftcmd|rubydll|ruler|rulerformat|runtimepath|scroll|scrollbind|scrolljump|scrolloff|scrollopt|sections|secure|selection|selectmode|sessionoptions|shada|shell|shellcmdflag|shellpipe|shellquote|shellredir|shellslash|shelltemp|shellxescape|shellxquote|shiftround|shiftwidth|shortmess|showbreak|showcmd|showfulltag|showmatch|showmode|showtabline|sidescroll|sidescrolloff|signcolumn|smartcase|smartindent|smarttab|softtabstop|spell|spellcapcheck|spellfile|spelllang|spellsuggest|splitbelow|splitright|startofline|statusline|suffixes|suffixesadd|swapfile|switchbuf|synmaxcol|syntax|tabline|tabpagemax|tabstop|tagbsearch|tagcase|taglength|tagrelative|tags|tagstack|term|termbidi|terse|textwidth|thesaurus|tildeop|timeout|timeoutlen|title|titlelen|titleold|titlestring|ttimeout|ttimeoutlen|ttytype|undodir|undofile|undolevels|undoreload|updatecount|updatetime|verbose|verbosefile|viewdir|viewoptions|virtualedit|visualbell|warn|whichwrap|wildchar|wildcharm|wildignore|wildignorecase|wildmenu|wildmode|wildoptions|winaltkeys|window|winheight|winfixheight|winfixwidth|winminheight|winminwidth|winwidth|wrap|wrapmargin|wrapscan|write|writeany|writebackup|writedelay)\\b" + }, + { + "name": "support.type.option.shortname.viml", + "match": "&?\\b(al|ari|akm|ambw|acd|arab|arshape|ai|ar|aw|awa|bg|bs|bk|bkc|bdir|bex|bsk|bdlay|beval|bexpr|bo|bin|bomb|brk|bri|briopt|bsdir|bh|bl|bt|cmp|cd|cedit|ccv|cin|cink|cino|cinw|cb|ch|cwh|cc|co|com|cms|cpt|cfu|cot|cocu|cole|cf|ci|cpo|cspc|csprg|csqf|csre|cst|csto|cpo|crb|cuc|cul|debug|def|deco|dict|diff|dex|dip|dg|dir|dy|ead|enc|eol|ea|ep|eb|ef|efm|ei|et|ex|fenc|fencs|ff|ffs|fic|ft|fcs|fixeol|fk|fcl|fdc|fen|fde|fdi|fdl|fdls|fmr|fdm|fml|fdn|fdo|fdt|fex|flp|fo|fp|fs|gd|gfm|gp|gcr|gfn|gfs|gfw|go|gtl|gtt|hf|hh|hlg|hid|hls|hi|hk|hkp|icon|iconstring|ic|imc|imd|imi|ims|inc|inex|is|inde|indk|inf|im|isf|isi|isk|isp|js|kmp|km|kp|lmap|lm|lrm|ls|lz|lbr|lines|lsp|lisp|lw|list|lcs|lpl|magic|mef|mp|mps|mat|mco|mfd|mmd|mm|mmp|mmt|mis|msm|ml|mls|ma|mod|more|mouse|mousef|mh|mousem|mouses|mouset|nf|nu|nuw|ofu|odev|opfunc|pp|para|paste|pt|pex|pm|pa|perldll|pi|pvh|pvw|pdev|penc|pexpr|pfn|pheader|pmbcs|pmbfn|popt|prompt|ph|pythondll|pythonthreedlll|qe|ro|rdt|re|rnu|remap|report|ri|rl|rlc|rubydll|ru|ruf|rtp|scr|scb|sj|so|sbo|sect|secure|sel|slm|ssop|sd|sh|shcf|sp|shq|srr|ssl|stmp|sxe|sxq|sr|sw|shm|sbr|sc|sft|sm|smd|stal|ss|siso|scl|scs|si|sta|sts|spell|spc|spf|spl|sps|sb|spr|sol|stl|su|sua|swf|swb|smc|syn|tal|tpm|ts|tbs|tc|tl|tr|tag|tgst|term|tbidi|terse|tw|tsr|top|to|tm|title|titlelen|titleold|titlestring|ttimeout|ttm|tty|udir|udf|ul|ur|uc|ut|vbs|vfile|vdir|vop|ve|vb|warn|ww|wc|wcm|wig|wic|wmnu|wim|wop|wak|wi|wh|wfh|wfw|wmh|wmw|wiw|wrap|wm|ws|write|wa|wb|wd)\\b" + }, + { + "name": "support.type.option.off.viml", + "match": "\\b(noanti|noantialias|noarab|noarabic|noarshape|noarabicshape|noari|noallowrevins|noakm|noaltkeymap|noacd|noautochdir|noai|noautoindent|noar|noautoread|noaw|noautowrite|noawa|noautowriteall|nobk|nobackup|nobeval|noballooneval|nobevalterm|noballoonevalterm|nobin|nobinary|nobomb|nobri|nobreakindent|nobl|nobuflisted|nocin|nocindent|nocp|nocompatible|nocf|noconfirm|noci|nocopyindent|nocsre|nocscoperelative|nocst|nocscopetag|nocsverb|nocscopeverbose|nocrb|nocursorbind|nocuc|nocursorcolumn|nocul|nocursorline|nodeco|nodelcombine|nodiff|nodg|nodigraph|noed|noedcompatible|noemo|noemoji|noeol|noendofline|noea|noequalalways|noeb|noerrorbells|noek|noesckeys|noet|noexpandtab|noex|noexrc|nofic|nofileignorecase|nofixeol|nofixendofline|nofk|nofkmap|nofen|nofoldenable|nofs|nofsync|nogd|nogdefault|noguipty|nohid|nohidden|nohk|nohkmap|nohkp|nohkmapp|nohls|nohlsearch|noicon|noic|noignorecase|noimc|noimcmdline|noimd|noimdisable|nois|noincsearch|noinf|noinfercase|noim|noinsertmode|nojs|nojoinspaces|nolnr|nolangnoremap|nolrm|nolangremap|nolz|nolazyredraw|nolbr|nolinebreak|nolisp|nolist|nolpl|noloadplugins|nomacatsui|nomagic|noml|nomodeline|noma|nomodifiable|nomod|nomodified|nomore|nomousef|nomousefocus|nomh|nomousehide|nonu|nonumber|noodev|noopendevice|nopaste|nopi|nopreserveindent|nopvw|nopreviewwindow|noprompt|noro|noreadonly|nornu|norelativenumber|nors|norestorescreen|nori|norevins|norl|norightleft|noru|noruler|noscb|noscrollbind|nosecure|nossl|noshellslash|nostmp|noshelltemp|nosr|noshiftround|nosn|noshortname|nosc|noshowcmd|nosft|noshowfulltag|nosm|noshowmatch|nosmd|noshowmode|noscs|nosmartcase|nosi|nosmartindent|nosta|nosmarttab|nospell|nosb|nosplitbelow|nospr|nosplitright|nosol|nostartofline|noswf|noswapfile|notbs|notagbsearch|notr|notagrelative|notgst|notagstack|notbidi|notermbidi|notgc|notermguicolors|noterse|nota|notextauto|notx|notextmode|notop|notildeop|noto|notimeout|notitle|nottimeout|notbi|nottybuiltin|notf|nottyfast|noudf|noundofile|novb|novisualbell|nowarn|nowiv|noweirdinvert|nowic|nowildignorecase|nowmnu|nowildmenu|nowfh|nowinfixheight|nowfw|nowinfixwidth|nowrapscan|nowrap|nows|nowrite|nowa|nowriteany|nowb|nowritebackup)\\b" + } + ] + }, + "punctuation": { + "patterns": [ + { + "name": "punctuation.parens.viml", + "match": "([()])" + }, + { + "name": "punctuation.comma.viml", + "match": "([,])" + } + ] + }, + "strings": { + "patterns": [ + { + "name": "string.quoted.double.viml", + "begin": "\"", + "end": "(\"|$)", + "patterns": [] + }, + { + "name": "string.quoted.single.viml", + "begin": "'", + "end": "('|$)", + "patterns": [] + }, + { + "match": "/(\\\\\\\\|\\\\/|[^\\n/])*/", + "name": "string.regexp.viml" + } + ] + }, + "support": { + "patterns": [ + { + "name": "support.function.viml", + "match": "(add|call|delete|empty|extend|get|has|isdirectory|join|printf)(?=\\()" + }, + { + "name": "support.function.viml", + "match": "\\b(echo(m|hl)?|exe(cute)?|redir|redraw|sleep|so(urce)?|wincmd|setf)\\b" + }, + { + "name": "support.type.builtin.vim-variable.viml", + "match": "(v\\:(beval_col|beval_bufnr|beval_lnum|beval_text|beval_winnr|char|charconvert_from|charconvert_to|cmdarg|cmdbang|count|count1|ctype|dying|errmsg|exception|fcs_reason|fcs_choice|fname_in|fname_out|fname_new|fname_diff|folddashes|foldlevel|foldend|foldstart|insertmode|key|lang|lc_time|lnum|mouse_win|mouse_lnum|mouse_col|oldfiles|operator|prevcount|profiling|progname|register|scrollstart|servername|searchforward|shell_error|statusmsg|swapname|swapchoice|swapcommand|termresponse|this_session|throwpoint|val|version|warningmsg|windowid))" + }, + { + "name": "support.type.builtin.viml", + "match": "(&(cpo|isk|omnifunc|paste|previewwindow|rtp|tags|term|wrap))" + }, + { + "name": "support.type.builtin.viml", + "match": "(&(shell(cmdflag|redir)?))" + }, + { + "name": "support.variable.args.viml", + "match": "\\<args\\>" + }, + { + "name": "support.type.syntax.viml", + "match": "\\b(None|ErrorMsg|WarningMsg)\\b" + }, + { + "name": "support.type.event.viml", + "match": "\\b(BufNewFile|BufReadPre|BufRead|BufReadPost|BufReadCmd|FileReadPre|FileReadPost|FileReadCmd|FilterReadPre|FilterReadPost|StdinReadPre|StdinReadPost|BufWrite|BufWritePre|BufWritePost|BufWriteCmd|FileWritePre|FileWritePost|FileWriteCmd|FileAppendPre|FileAppendPost|FileAppendCmd|FilterWritePre|FilterWritePost|BufAdd|BufCreate|BufDelete|BufWipeout|BufFilePre|BufFilePost|BufEnter|BufLeave|BufWinEnter|BufWinLeave|BufUnload|BufHidden|BufNew|SwapExists|TermOpen|TermClose|FileType|Syntax|OptionSet|VimEnter|GUIEnter|GUIFailed|TermResponse|QuitPre|VimLeavePre|VimLeave|DirChanged|FileChangedShell|FileChangedShellPost|FileChangedRO|ShellCmdPost|ShellFilterPost|CmdUndefined|FuncUndefined|SpellFileMissing|SourcePre|SourceCmd|VimResized|FocusGained|FocusLost|CursorHold|CursorHoldI|CursorMoved|CursorMovedI|WinNew|WinEnter|WinLeave|TabEnter|TabLeave|TabNew|TabNewEntered|TabClosed|CmdlineEnter|CmdlineLeave|CmdwinEnter|CmdwinLeave|InsertEnter|InsertChange|InsertLeave|InsertCharPre|TextYankPost|TextChanged|TextChangedI|ColorScheme|RemoteReply|QuickFixCmdPre|QuickFixCmdPost|SessionLoadPost|MenuPopup|CompleteDone|User)\\b" + }, + { + "name": "support.type.syntax-group.viml", + "match": "\\b(Comment|Constant|String|Character|Number|Boolean|Float|Identifier|Function|Statement|Conditional|Repeat|Label|Operator|Keyword|Exception|PreProc|Include|Define|Macro|PreCondit|Type|StorageClass|Structure|Typedef|Special|SpecialChar|Tag|Delimiter|SpecialComment|Debug|Underlined|Ignore|Error|Todo)\\b" + } + ] + }, + "syntax": { + "patterns": [ + { + "name": "keyword.control.syntax.viml", + "match": "syn(tax)? case (ignore|match)" + }, + { + "name": "keyword.control.syntax.viml", + "match": "syn(tax)? (clear|enable|include|off|on|manual|sync)" + }, + { + "name": "keyword.other.syntax.viml", + "match": "\\b(contained|display|excludenl|fold|keepend|oneline|skipnl|skipwhite|transparent)\\b" + }, + { + "name": "keyword.other.syntax.viml", + "match": "\\b(add|containedin|contains|matchgroup|nextgroup)\\=" + }, + { + "captures": { + "1": { + "name": "keyword.other.syntax-range.viml" + }, + "3": { + "name": "string.regexp.viml" + } + }, + "match": "((start|skip|end)\\=)(\\+\\S+\\+\\s)?" + }, + { + "captures": { + "0": { + "name": "support.type.syntax.viml" + }, + "1": { + "name": "storage.syntax.viml" + }, + "3": { + "name": "variable.other.syntax-scope.viml" + }, + "4": { + "name": "storage.modifier.syntax.viml" + } + }, + "match": "(syn|syntax)\\s+(cluster|keyword|match|region)(\\s+\\w+\\s+)(contained)?", + "patterns": [] + }, + { + "captures": { + "1": { + "name": "storage.highlight.viml" + }, + "2": { + "name": "storage.modifier.syntax.viml" + }, + "3": { + "name": "support.function.highlight.viml" + }, + "4": { + "name": "variable.other.viml" + }, + "5": { + "name": "variable.other.viml" + } + }, + "match": "(hi|highlight)(?:\\s+)(def|default)(?:\\s+)(link)(?:\\s+)(\\w+)(?:\\s+)(\\w+)", + "patterns": [] + } + ] + }, + "keyword": { + "patterns": [ + { + "name": "keyword.control.viml", + "match": "\\b(if|while|for|return|au(g|group)|else(if|)?|do|in)\\b" + }, + { + "name": "keyword.control.viml", + "match": "\\b(end|endif|endfor|endwhile)\\s|$" + }, + { + "name": "keyword.control.viml", + "match": "\\b(break|continue|try|catch|endtry|finally|finish|throw|range)\\b" + }, + { + "name": "keyword.function.viml", + "match": "\\b(fun|func|function|endfunction|endfunc)\\b" + }, + { + "name": "keyword.other.viml", + "match": "\\b(normal|silent)\\b" + }, + { + "include": "#operators" + } + ] + }, + "storage": { + "patterns": [ + { + "match": "\\b(call|let|unlet)\\b", + "name": "storage.viml" + }, + { + "match": "\\b(abort|autocmd)\\b", + "name": "storage.viml" + }, + { + "match": "\\b(set(l|local)?)\\b", + "name": "storage.viml" + }, + { + "match": "\\b(com(mand)?)\\b", + "name": "storage.viml" + }, + { + "match": "\\b(color(scheme)?)\\b", + "name": "storage.viml" + }, + { + "match": "\\b(Plug|Plugin)\\b", + "name": "storage.plugin.viml" + } + ] + }, + "variable": { + "patterns": [ + { + "name": "variable.other.link.viml", + "match": "https?://\\S+" + }, + { + "name": "variable.parameter.viml", + "match": "(?<=\\()([a-zA-Z]+)(?=\\))" + }, + { + "name": "variable.other.viml", + "match": "\\b([absgl]:[a-zA-Z0-9_.#]+)\\b(?!\\()" + } + ] + }, + "constant": { + "patterns": [ + { + "name": "constant.language.boolean.viml", + "match": "\\b(true|false)\\b" + }, + { + "name": "constant.numeric.viml", + "match": "\\b([0-9]+)\\b" + } + ] + } + }, + "$schema": "https://raw.githubusercontent.com/dunstontc/textmate/master/schema/tmLanguage.schema.json", + "name": "viml", + "scopeName": "source.viml", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#constant" + }, + { + "include": "#entity" + }, + { + "include": "#keyword" + }, + { + "include": "#punctuation" + }, + { + "include": "#storage" + }, + { + "include": "#strings" + }, + { + "include": "#support" + }, + { + "include": "#variable" + }, + { + "include": "#syntax" + }, + { + "include": "#commands" + }, + { + "include": "#option" + }, + { + "include": "#map" + } + ] +} diff --git a/docs/shiki/languages/vue-html.tmLanguage.json b/docs/shiki/languages/vue-html.tmLanguage.json new file mode 100644 index 00000000..c1d8e114 --- /dev/null +++ b/docs/shiki/languages/vue-html.tmLanguage.json @@ -0,0 +1,558 @@ +{ + "name": "vue-html", + "scopeName": "text.html.vue-html", + "fileTypes": [], + "uuid": "ca2e4260-5d62-45bf-8cf1-d8b5cc19c8f8", + "patterns": [ + { + "include": "source.vue#vue-interpolations" + }, + { + "name": "meta.tag.any.html", + "begin": "(<)([A-Z][a-zA-Z0-9:-]*)(?=[^>]*></\\2>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "support.class.component.html" + } + }, + "end": "(>)(<)(/)(\\2)(>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.end.html" + }, + "2": { + "name": "punctuation.definition.tag.begin.html meta.scope.between-tag-pair.html" + }, + "3": { + "name": "punctuation.definition.tag.begin.html" + }, + "4": { + "name": "support.class.component.html" + }, + "5": { + "name": "punctuation.definition.tag.end.html" + } + }, + "patterns": [ + { + "include": "#tag-stuff" + } + ] + }, + { + "name": "meta.tag.any.html", + "begin": "(<)([a-z][a-zA-Z0-9:-]*)(?=[^>]*></\\2>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.html" + } + }, + "end": "(>)(<)(/)(\\2)(>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.end.html" + }, + "2": { + "name": "punctuation.definition.tag.begin.html meta.scope.between-tag-pair.html" + }, + "3": { + "name": "punctuation.definition.tag.begin.html" + }, + "4": { + "name": "entity.name.tag.html" + }, + "5": { + "name": "punctuation.definition.tag.end.html" + } + }, + "patterns": [ + { + "include": "#tag-stuff" + } + ] + }, + { + "name": "meta.tag.preprocessor.xml.html", + "begin": "(<\\?)(xml)", + "end": "(\\?>)", + "captures": { + "1": { + "name": "punctuation.definition.tag.html" + }, + "2": { + "name": "entity.name.tag.xml.html" + } + }, + "patterns": [ + { + "include": "#tag-generic-attribute" + }, + { + "include": "#string-double-quoted" + }, + { + "include": "#string-single-quoted" + } + ] + }, + { + "name": "comment.block.html", + "begin": "<!--", + "end": "-->", + "captures": { + "0": { + "name": "punctuation.definition.comment.html" + } + } + }, + { + "name": "meta.tag.sgml.html", + "begin": "<!", + "end": ">", + "captures": { + "0": { + "name": "punctuation.definition.tag.html" + } + }, + "patterns": [ + { + "name": "meta.tag.sgml.doctype.html", + "begin": "(?i:DOCTYPE)", + "end": "(?=>)", + "captures": { + "1": { + "name": "entity.name.tag.doctype.html" + } + }, + "patterns": [ + { + "name": "string.quoted.double.doctype.identifiers-and-DTDs.html", + "match": "\"[^\">]*\"" + } + ] + }, + { + "name": "constant.other.inline-data.html", + "begin": "\\[CDATA\\[", + "end": "]](?=>)" + }, + { + "name": "invalid.illegal.bad-comments-or-CDATA.html", + "match": "(\\s*)(?!--|>)\\S(\\s*)" + } + ] + }, + { + "name": "meta.tag.block.any.html", + "begin": "(</?)([A-Z][a-zA-Z0-9:-]*\\b)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "support.class.component.html" + } + }, + "end": "(>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.end.html" + } + }, + "patterns": [ + { + "include": "#tag-stuff" + } + ] + }, + { + "name": "meta.tag.block.any.html", + "begin": "(</?)([a-z][a-zA-Z0-9:-]*\\b)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.block.any.html" + } + }, + "end": "(>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.end.html" + } + }, + "patterns": [ + { + "include": "#tag-stuff" + } + ] + }, + { + "name": "meta.tag.structure.any.html", + "begin": "(</?)((?i:body|head|html)\\b)", + "end": "(>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.end.html" + } + }, + "captures": { + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.structure.any.html" + } + }, + "patterns": [ + { + "include": "#tag-stuff" + } + ] + }, + { + "name": "meta.tag.block.any.html", + "begin": "(</?)((?i:address|blockquote|dd|div|dl|dt|fieldset|form|frame|frameset|h1|h2|h3|h4|h5|h6|iframe|noframes|object|ol|p|ul|applet|center|dir|hr|menu|pre)(?!-)\\b)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.block.any.html" + } + }, + "end": "(>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.end.html" + } + }, + "patterns": [ + { + "include": "#tag-stuff" + } + ] + }, + { + "name": "meta.tag.inline.any.html", + "begin": "(</?)((?i:a|abbr|acronym|area|b|base|basefont|bdo|big|br|button|caption|cite|code|col|colgroup|del|dfn|em|font|head|html|i|img|input|ins|isindex|kbd|label|legend|li|link|map|meta|noscript|optgroup|option|param|q|s|samp|script|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|title|tr|tt|u|var)(?!-)\\b)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.inline.any.html" + } + }, + "end": "(/?>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.end.html" + } + }, + "patterns": [ + { + "include": "#tag-stuff" + } + ] + }, + { + "name": "meta.tag.other.html", + "begin": "(</?)([a-zA-Z0-9:-]+)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html" + }, + "2": { + "name": "entity.name.tag.other.html" + } + }, + "end": "(/?>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.end.html" + } + }, + "patterns": [ + { + "include": "#tag-stuff" + } + ] + }, + { + "include": "#entities" + }, + { + "name": "invalid.illegal.incomplete.html", + "match": "<>" + }, + { + "name": "invalid.illegal.bad-angle-bracket.html", + "match": "<" + } + ], + "repository": { + "entities": { + "patterns": [ + { + "name": "constant.character.entity.html", + "match": "(&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)", + "captures": { + "1": { + "name": "punctuation.definition.entity.html" + }, + "3": { + "name": "punctuation.definition.entity.html" + } + } + }, + { + "name": "invalid.illegal.bad-ampersand.html", + "match": "&" + } + ] + }, + "string-double-quoted": { + "name": "string.quoted.double.html", + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.html" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.html" + } + }, + "patterns": [ + { + "include": "source.vue#vue-interpolations" + }, + { + "include": "#entities" + } + ] + }, + "string-single-quoted": { + "name": "string.quoted.single.html", + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.html" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.html" + } + }, + "patterns": [ + { + "include": "source.vue#vue-interpolations" + }, + { + "include": "#entities" + } + ] + }, + "tag-generic-attribute": { + "name": "entity.other.attribute-name.html", + "match": "(?<=[^=])\\b([a-zA-Z0-9:\\-_]+)" + }, + "tag-id-attribute": { + "name": "meta.attribute-with-value.id.html", + "begin": "\\b(id)\\b\\s*(=)", + "end": "(?!\\G)(?<='|\"|[^\\s<>/])", + "captures": { + "1": { + "name": "entity.other.attribute-name.id.html" + }, + "2": { + "name": "punctuation.separator.key-value.html" + } + }, + "patterns": [ + { + "name": "string.quoted.double.html", + "contentName": "meta.toc-list.id.html", + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.html" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.html" + } + }, + "patterns": [ + { + "include": "source.vue#vue-interpolations" + }, + { + "include": "#entities" + } + ] + }, + { + "name": "string.quoted.single.html", + "contentName": "meta.toc-list.id.html", + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.html" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.html" + } + }, + "patterns": [ + { + "include": "source.vue#vue-interpolations" + }, + { + "include": "#entities" + } + ] + }, + { + "name": "string.unquoted.html", + "match": "(?<==)(?:[^\\s<>/'\"]|/(?!>))+", + "captures": { + "0": { + "name": "meta.toc-list.id.html" + } + } + } + ] + }, + "tag-stuff": { + "patterns": [ + { + "include": "#vue-directives" + }, + { + "include": "#tag-id-attribute" + }, + { + "include": "#tag-generic-attribute" + }, + { + "include": "#string-double-quoted" + }, + { + "include": "#string-single-quoted" + }, + { + "include": "#unquoted-attribute" + } + ] + }, + "unquoted-attribute": { + "name": "string.unquoted.html", + "match": "(?<==)(?:[^\\s<>/'\"]|/(?!>))+" + }, + "vue-directives": { + "name": "meta.directive.vue", + "begin": "(?:\\b(v-)|(:|@|#))([a-zA-Z0-9\\-_]+)(?:\\:([a-zA-Z\\-_]+))?(?:\\.([a-zA-Z\\-_]+))*\\s*(=)", + "end": "(?<='|\")|(?=[\\s<>`])", + "captures": { + "1": { + "name": "entity.other.attribute-name.html" + }, + "2": { + "name": "punctuation.separator.key-value.html" + }, + "3": { + "name": "entity.other.attribute-name.html" + }, + "4": { + "name": "entity.other.attribute-name.html" + }, + "5": { + "name": "entity.other.attribute-name.html" + }, + "6": { + "name": "punctuation.separator.key-value.html" + } + }, + "patterns": [ + { + "name": "source.directive.vue", + "begin": "`", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.html" + } + }, + "end": "`", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.html" + } + }, + "patterns": [ + { + "include": "source.js#expression" + } + ] + }, + { + "name": "source.directive.vue", + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.html" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.html" + } + }, + "patterns": [ + { + "include": "source.js#expression" + } + ] + }, + { + "name": "source.directive.vue", + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.html" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.html" + } + }, + "patterns": [ + { + "include": "source.js#expression" + } + ] + } + ] + } + } +} diff --git a/docs/shiki/languages/vue.tmLanguage.json b/docs/shiki/languages/vue.tmLanguage.json new file mode 100644 index 00000000..16d976f4 --- /dev/null +++ b/docs/shiki/languages/vue.tmLanguage.json @@ -0,0 +1,1237 @@ +{ + "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", + "name": "vue", + "scopeName": "source.vue", + "patterns": [ + { + "include": "text.html.basic#comment" + }, + { + "include": "#self-closing-tag" + }, + { + "begin": "(<)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html.vue" + } + }, + "end": "(>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.end.html.vue" + } + }, + "patterns": [ + { + "begin": "([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)md\\b\\2)", + "beginCaptures": { + "1": { + "name": "entity.name.tag.$1.html.vue" + } + }, + "end": "(</)(\\1)\\s*(?=>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html.vue" + }, + "2": { + "name": "entity.name.tag.$2.html.vue" + } + }, + "patterns": [ + { + "include": "#tag-stuff" + }, + { + "begin": "(?<=>)", + "end": "(?=<\\/)", + "name": "text.html.markdown", + "patterns": [ + { + "include": "text.html.markdown" + } + ] + } + ] + }, + { + "begin": "([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)html\\b\\2)", + "beginCaptures": { + "1": { + "name": "entity.name.tag.$1.html.vue" + } + }, + "end": "(</)(\\1)\\s*(?=>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html.vue" + }, + "2": { + "name": "entity.name.tag.$2.html.vue" + } + }, + "patterns": [ + { + "include": "#tag-stuff" + }, + { + "begin": "(?<=>)", + "end": "(?=<\\/)", + "name": "text.html.derivative", + "patterns": [ + { + "include": "#html-stuff" + } + ] + } + ] + }, + { + "begin": "([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)pug\\b\\2)", + "beginCaptures": { + "1": { + "name": "entity.name.tag.$1.html.vue" + } + }, + "end": "(</)(\\1)\\s*(?=>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html.vue" + }, + "2": { + "name": "entity.name.tag.$2.html.vue" + } + }, + "patterns": [ + { + "include": "#tag-stuff" + }, + { + "begin": "(?<=>)", + "end": "(?=<\\/)", + "name": "text.pug", + "patterns": [ + { + "include": "text.pug" + } + ] + } + ] + }, + { + "begin": "([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)stylus\\b\\2)", + "beginCaptures": { + "1": { + "name": "entity.name.tag.$1.html.vue" + } + }, + "end": "(</)(\\1)\\s*(?=>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html.vue" + }, + "2": { + "name": "entity.name.tag.$2.html.vue" + } + }, + "patterns": [ + { + "include": "#tag-stuff" + }, + { + "begin": "(?<=>)", + "end": "(?=<\\/)", + "name": "source.stylus", + "patterns": [ + { + "include": "source.stylus" + } + ] + } + ] + }, + { + "begin": "([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)postcss\\b\\2)", + "beginCaptures": { + "1": { + "name": "entity.name.tag.$1.html.vue" + } + }, + "end": "(</)(\\1)\\s*(?=>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html.vue" + }, + "2": { + "name": "entity.name.tag.$2.html.vue" + } + }, + "patterns": [ + { + "include": "#tag-stuff" + }, + { + "begin": "(?<=>)", + "end": "(?=<\\/)", + "name": "source.postcss", + "patterns": [ + { + "include": "source.postcss" + } + ] + } + ] + }, + { + "begin": "([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)sass\\b\\2)", + "beginCaptures": { + "1": { + "name": "entity.name.tag.$1.html.vue" + } + }, + "end": "(</)(\\1)\\s*(?=>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html.vue" + }, + "2": { + "name": "entity.name.tag.$2.html.vue" + } + }, + "patterns": [ + { + "include": "#tag-stuff" + }, + { + "begin": "(?<=>)", + "end": "(?=<\\/)", + "name": "source.sass", + "patterns": [ + { + "include": "source.sass" + } + ] + } + ] + }, + { + "begin": "([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)css\\b\\2)", + "beginCaptures": { + "1": { + "name": "entity.name.tag.$1.html.vue" + } + }, + "end": "(</)(\\1)\\s*(?=>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html.vue" + }, + "2": { + "name": "entity.name.tag.$2.html.vue" + } + }, + "patterns": [ + { + "include": "#tag-stuff" + }, + { + "begin": "(?<=>)", + "end": "(?=<\\/)", + "name": "source.css", + "patterns": [ + { + "include": "source.css" + } + ] + } + ] + }, + { + "begin": "([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)scss\\b\\2)", + "beginCaptures": { + "1": { + "name": "entity.name.tag.$1.html.vue" + } + }, + "end": "(</)(\\1)\\s*(?=>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html.vue" + }, + "2": { + "name": "entity.name.tag.$2.html.vue" + } + }, + "patterns": [ + { + "include": "#tag-stuff" + }, + { + "begin": "(?<=>)", + "end": "(?=<\\/)", + "name": "source.css.scss", + "patterns": [ + { + "include": "source.css.scss" + } + ] + } + ] + }, + { + "begin": "([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)less\\b\\2)", + "beginCaptures": { + "1": { + "name": "entity.name.tag.$1.html.vue" + } + }, + "end": "(</)(\\1)\\s*(?=>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html.vue" + }, + "2": { + "name": "entity.name.tag.$2.html.vue" + } + }, + "patterns": [ + { + "include": "#tag-stuff" + }, + { + "begin": "(?<=>)", + "end": "(?=<\\/)", + "name": "source.css.less", + "patterns": [ + { + "include": "source.css.less" + } + ] + } + ] + }, + { + "begin": "([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)js\\b\\2)", + "beginCaptures": { + "1": { + "name": "entity.name.tag.$1.html.vue" + } + }, + "end": "(</)(\\1)\\s*(?=>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html.vue" + }, + "2": { + "name": "entity.name.tag.$2.html.vue" + } + }, + "patterns": [ + { + "include": "#tag-stuff" + }, + { + "begin": "(?<=>)", + "end": "(?=<\\/)", + "name": "source.js", + "patterns": [ + { + "include": "source.js" + } + ] + } + ] + }, + { + "begin": "([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)ts\\b\\2)", + "beginCaptures": { + "1": { + "name": "entity.name.tag.$1.html.vue" + } + }, + "end": "(</)(\\1)\\s*(?=>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html.vue" + }, + "2": { + "name": "entity.name.tag.$2.html.vue" + } + }, + "patterns": [ + { + "include": "#tag-stuff" + }, + { + "begin": "(?<=>)", + "end": "(?=<\\/)", + "name": "source.ts", + "patterns": [ + { + "include": "source.ts" + } + ] + } + ] + }, + { + "begin": "([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)jsx\\b\\2)", + "beginCaptures": { + "1": { + "name": "entity.name.tag.$1.html.vue" + } + }, + "end": "(</)(\\1)\\s*(?=>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html.vue" + }, + "2": { + "name": "entity.name.tag.$2.html.vue" + } + }, + "patterns": [ + { + "include": "#tag-stuff" + }, + { + "begin": "(?<=>)", + "end": "(?=<\\/)", + "name": "source.js.jsx", + "patterns": [ + { + "include": "source.js.jsx" + } + ] + } + ] + }, + { + "begin": "([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)tsx\\b\\2)", + "beginCaptures": { + "1": { + "name": "entity.name.tag.$1.html.vue" + } + }, + "end": "(</)(\\1)\\s*(?=>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html.vue" + }, + "2": { + "name": "entity.name.tag.$2.html.vue" + } + }, + "patterns": [ + { + "include": "#tag-stuff" + }, + { + "begin": "(?<=>)", + "end": "(?=<\\/)", + "name": "source.tsx", + "patterns": [ + { + "include": "source.tsx" + } + ] + } + ] + }, + { + "begin": "([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)json\\b\\2)", + "beginCaptures": { + "1": { + "name": "entity.name.tag.$1.html.vue" + } + }, + "end": "(</)(\\1)\\s*(?=>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html.vue" + }, + "2": { + "name": "entity.name.tag.$2.html.vue" + } + }, + "patterns": [ + { + "include": "#tag-stuff" + }, + { + "begin": "(?<=>)", + "end": "(?=<\\/)", + "name": "source.json", + "patterns": [ + { + "include": "source.json" + } + ] + } + ] + }, + { + "begin": "([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)jsonc\\b\\2)", + "beginCaptures": { + "1": { + "name": "entity.name.tag.$1.html.vue" + } + }, + "end": "(</)(\\1)\\s*(?=>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html.vue" + }, + "2": { + "name": "entity.name.tag.$2.html.vue" + } + }, + "patterns": [ + { + "include": "#tag-stuff" + }, + { + "begin": "(?<=>)", + "end": "(?=<\\/)", + "name": "source.json.comments", + "patterns": [ + { + "include": "source.json.comments" + } + ] + } + ] + }, + { + "begin": "([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)json5\\b\\2)", + "beginCaptures": { + "1": { + "name": "entity.name.tag.$1.html.vue" + } + }, + "end": "(</)(\\1)\\s*(?=>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html.vue" + }, + "2": { + "name": "entity.name.tag.$2.html.vue" + } + }, + "patterns": [ + { + "include": "#tag-stuff" + }, + { + "begin": "(?<=>)", + "end": "(?=<\\/)", + "name": "source.json5", + "patterns": [ + { + "include": "source.json5" + } + ] + } + ] + }, + { + "begin": "([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)yaml\\b\\2)", + "beginCaptures": { + "1": { + "name": "entity.name.tag.$1.html.vue" + } + }, + "end": "(</)(\\1)\\s*(?=>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html.vue" + }, + "2": { + "name": "entity.name.tag.$2.html.vue" + } + }, + "patterns": [ + { + "include": "#tag-stuff" + }, + { + "begin": "(?<=>)", + "end": "(?=<\\/)", + "name": "source.yaml", + "patterns": [ + { + "include": "source.yaml" + } + ] + } + ] + }, + { + "begin": "([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)toml\\b\\2)", + "beginCaptures": { + "1": { + "name": "entity.name.tag.$1.html.vue" + } + }, + "end": "(</)(\\1)\\s*(?=>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html.vue" + }, + "2": { + "name": "entity.name.tag.$2.html.vue" + } + }, + "patterns": [ + { + "include": "#tag-stuff" + }, + { + "begin": "(?<=>)", + "end": "(?=<\\/)", + "name": "source.toml", + "patterns": [ + { + "include": "source.toml" + } + ] + } + ] + }, + { + "begin": "([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)(gql|graphql)\\b\\2)", + "beginCaptures": { + "1": { + "name": "entity.name.tag.$1.html.vue" + } + }, + "end": "(</)(\\1)\\s*(?=>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html.vue" + }, + "2": { + "name": "entity.name.tag.$2.html.vue" + } + }, + "patterns": [ + { + "include": "#tag-stuff" + }, + { + "begin": "(?<=>)", + "end": "(?=<\\/)", + "name": "source.graphql", + "patterns": [ + { + "include": "source.graphql" + } + ] + } + ] + }, + { + "begin": "([a-zA-Z0-9:-]+)\\b(?=[^>]*\\blang\\s*=\\s*(['\"]?)vue\\b\\2)", + "beginCaptures": { + "1": { + "name": "entity.name.tag.$1.html.vue" + } + }, + "end": "(</)(\\1)\\s*(?=>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html.vue" + }, + "2": { + "name": "entity.name.tag.$2.html.vue" + } + }, + "patterns": [ + { + "include": "#tag-stuff" + }, + { + "begin": "(?<=>)", + "end": "(?=<\\/)", + "name": "source.vue", + "patterns": [ + { + "include": "source.vue" + } + ] + } + ] + }, + { + "begin": "(template)\\b", + "beginCaptures": { + "1": { + "name": "entity.name.tag.$1.html.vue" + } + }, + "end": "(</)(\\1)\\s*(?=>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html.vue" + }, + "2": { + "name": "entity.name.tag.$2.html.vue" + } + }, + "patterns": [ + { + "include": "#tag-stuff" + }, + { + "begin": "(?<=>)", + "end": "(?=<\\/template\\b)", + "name": "text.html.derivative", + "patterns": [ + { + "include": "#html-stuff" + } + ] + } + ] + }, + { + "begin": "(script)\\b", + "beginCaptures": { + "1": { + "name": "entity.name.tag.$1.html.vue" + } + }, + "end": "(</)(\\1)\\s*(?=>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html.vue" + }, + "2": { + "name": "entity.name.tag.$2.html.vue" + } + }, + "patterns": [ + { + "include": "#tag-stuff" + }, + { + "begin": "(?<=>)", + "end": "(?=<\\/script\\b)", + "name": "source.js", + "patterns": [ + { + "include": "source.js" + } + ] + } + ] + }, + { + "begin": "(style)\\b", + "beginCaptures": { + "1": { + "name": "entity.name.tag.$1.html.vue" + } + }, + "end": "(</)(\\1)\\s*(?=>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html.vue" + }, + "2": { + "name": "entity.name.tag.$2.html.vue" + } + }, + "patterns": [ + { + "include": "#tag-stuff" + }, + { + "begin": "(?<=>)", + "end": "(?=<\\/style\\b)", + "name": "source.css", + "patterns": [ + { + "include": "source.css" + } + ] + } + ] + }, + { + "begin": "([a-zA-Z0-9:-]+)", + "beginCaptures": { + "1": { + "name": "entity.name.tag.$1.html.vue" + } + }, + "end": "(</)(\\1)\\s*(?=>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html.vue" + }, + "2": { + "name": "entity.name.tag.$2.html.vue" + } + }, + "patterns": [ + { + "include": "#tag-stuff" + }, + { + "begin": "(?<=>)", + "end": "(?=<\\/)", + "name": "text" + } + ] + } + ] + } + ], + "repository": { + "self-closing-tag": { + "begin": "(<)([a-zA-Z0-9:-]+)(?=([^>]+/>))", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html.vue" + }, + "2": { + "name": "entity.name.tag.$2.html.vue" + } + }, + "end": "(/>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.end.html.vue" + } + }, + "name": "self-closing-tag", + "patterns": [ + { + "include": "#tag-stuff" + } + ] + }, + "template-tag": { + "patterns": [ + { + "include": "#template-tag-1" + }, + { + "include": "#template-tag-2" + } + ] + }, + "template-tag-1": { + "begin": "(<)(template)\\b(>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html.vue" + }, + "2": { + "name": "entity.name.tag.$2.html.vue" + }, + "3": { + "name": "punctuation.definition.tag.end.html.vue" + } + }, + "end": "(/?>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.end.html.vue" + } + }, + "name": "meta.template-tag.start", + "patterns": [ + { + "begin": "\\G", + "end": "(?=/>)|((</)(template)\\b)", + "endCaptures": { + "2": { + "name": "punctuation.definition.tag.begin.html.vue" + }, + "3": { + "name": "entity.name.tag.$3.html.vue" + } + }, + "name": "meta.template-tag.end", + "patterns": [ + { + "include": "#html-stuff" + } + ] + } + ] + }, + "template-tag-2": { + "begin": "(<)(template)\\b", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.begin.html.vue" + }, + "2": { + "name": "entity.name.tag.$2.html.vue" + } + }, + "end": "(/?>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.end.html.vue" + } + }, + "name": "meta.template-tag.start", + "patterns": [ + { + "begin": "\\G", + "end": "(?=/>)|((</)(template)\\b)", + "endCaptures": { + "2": { + "name": "punctuation.definition.tag.begin.html.vue" + }, + "3": { + "name": "entity.name.tag.$3.html.vue" + } + }, + "name": "meta.template-tag.end", + "patterns": [ + { + "include": "#tag-stuff" + }, + { + "include": "#html-stuff" + } + ] + } + ] + }, + "html-stuff": { + "patterns": [ + { + "include": "#template-tag" + }, + { + "include": "text.html.derivative" + }, + { + "include": "text.html.basic" + } + ] + }, + "tag-stuff": { + "begin": "\\G", + "end": "(?=/>)|(>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.end.html.vue" + } + }, + "name": "meta.tag-stuff", + "patterns": [ + { + "include": "#vue-directives" + }, + { + "include": "text.html.basic#attribute" + } + ] + }, + "vue-directives": { + "patterns": [ + { + "include": "#vue-directives-control" + }, + { + "include": "#vue-directives-style-attr" + }, + { + "include": "#vue-directives-original" + }, + { + "include": "#vue-directives-generic-attr" + } + ] + }, + "vue-directives-original": { + "begin": "(?:\\b(v-)|(:)|(@)|(#))(\\[?)([\\w\\-]*)(\\]?)(?:\\.([\\w\\-]*))*", + "beginCaptures": { + "1": { + "name": "entity.other.attribute-name.html.vue" + }, + "2": { + "name": "punctuation.attribute-shorthand.bind.html.vue" + }, + "3": { + "name": "punctuation.attribute-shorthand.event.html.vue" + }, + "4": { + "name": "punctuation.attribute-shorthand.slot.html.vue" + }, + "5": { + "name": "punctuation.separator.key-value.html.vue" + }, + "6": { + "name": "entity.other.attribute-name.html.vue" + }, + "7": { + "name": "punctuation.separator.key-value.html.vue" + }, + "8": { + "name": "entity.other.attribute-name.html.vue" + }, + "9": { + "name": "punctuation.separator.key-value.html.vue" + } + }, + "end": "(?=\\s*+[^=\\s])", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.html.vue" + } + }, + "name": "meta.attribute.directive.vue", + "patterns": [ + { + "include": "#vue-directives-expression" + } + ] + }, + "vue-directives-control": { + "begin": "(v-for)|(v-if|v-else-if|v-else)", + "captures": { + "1": { + "name": "keyword.control.loop.vue" + }, + "2": { + "name": "keyword.control.conditional.vue" + } + }, + "end": "(?=\\s*+[^=\\s])", + "name": "meta.attribute.directive.control.vue", + "patterns": [ + { + "include": "#vue-directives-expression" + } + ] + }, + "vue-directives-expression": { + "patterns": [ + { + "begin": "(=)\\s*('|\"|`)", + "beginCaptures": { + "1": { + "name": "punctuation.separator.key-value.html.vue" + }, + "2": { + "name": "punctuation.definition.string.begin.html.vue" + } + }, + "end": "(\\2)", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.html.vue" + } + }, + "patterns": [ + { + "begin": "(?<=('|\"|`))", + "end": "(?=\\1)", + "name": "source.ts.embedded.html.vue", + "patterns": [ + { + "include": "source.ts" + } + ] + } + ] + }, + { + "begin": "(=)\\s*(?=[^'\"`])", + "beginCaptures": { + "1": { + "name": "punctuation.separator.key-value.html.vue" + } + }, + "end": "(?=(\\s|>|\\/>))", + "patterns": [ + { + "begin": "(?=[^'\"`])", + "end": "(?=(\\s|>|\\/>))", + "name": "source.ts.embedded.html.vue", + "patterns": [ + { + "include": "source.ts" + } + ] + } + ] + } + ] + }, + "vue-directives-style-attr": { + "begin": "\\b(style)\\s*(=)", + "captures": { + "1": { + "name": "entity.other.attribute-name.html.vue" + }, + "2": { + "name": "punctuation.separator.key-value.html.vue" + } + }, + "end": "(?<='|\")", + "name": "meta.attribute.style.vue", + "patterns": [ + { + "comment": "Copy from source.css#rule-list-innards", + "begin": "('|\")", + "beginCaptures": { + "1": { + "name": "punctuation.definition.string.begin.html.vue" + } + }, + "end": "(\\1)", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.html.vue" + } + }, + "name": "source.css.embedded.html.vue", + "patterns": [ + { + "include": "source.css#comment-block" + }, + { + "include": "source.css#escapes" + }, + { + "include": "source.css#font-features" + }, + { + "match": "(?x) (?<![\\w-])\n--\n(?:[-a-zA-Z_] | [^\\x00-\\x7F]) # First letter\n(?:[-a-zA-Z0-9_] | [^\\x00-\\x7F] # Remainder of identifier\n |\\\\(?:[0-9a-fA-F]{1,6}|.)\n)*", + "name": "variable.css" + }, + { + "begin": "(?<![-a-zA-Z])(?=[-a-zA-Z])", + "end": "$|(?![-a-zA-Z])", + "name": "meta.property-name.css", + "patterns": [ + { + "include": "source.css#property-names" + } + ] + }, + { + "comment": "Modify end to fix #199. TODO: handle ' character.", + "begin": "(:)\\s*", + "beginCaptures": { + "1": { + "name": "punctuation.separator.key-value.css" + } + }, + "end": "\\s*(;)|\\s*(?='|\")", + "endCaptures": { + "1": { + "name": "punctuation.terminator.rule.css" + } + }, + "contentName": "meta.property-value.css", + "patterns": [ + { + "include": "source.css#comment-block" + }, + { + "include": "source.css#property-values" + } + ] + }, + { + "match": ";", + "name": "punctuation.terminator.rule.css" + } + ] + } + ] + }, + "vue-directives-generic-attr": { + "begin": "\\b(generic)\\s*(=)", + "captures": { + "1": { + "name": "entity.other.attribute-name.html.vue" + }, + "2": { + "name": "punctuation.separator.key-value.html.vue" + } + }, + "end": "(?<='|\")", + "name": "meta.attribute.generic.vue", + "patterns": [ + { + "begin": "('|\")", + "beginCaptures": { + "1": { + "name": "punctuation.definition.string.begin.html.vue" + } + }, + "end": "(\\1)", + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.html.vue" + } + }, + "name": "meta.type.parameters.vue", + "comment": "https://github.com/microsoft/vscode/blob/fd4346210f59135fad81a8b8c4cea7bf5a9ca6b4/extensions/typescript-basics/syntaxes/TypeScript.tmLanguage.json#L4002-L4020", + "patterns": [ + { + "include": "source.ts#comment" + }, + { + "name": "storage.modifier.ts", + "match": "(?<![_$[:alnum:]])(?:(?<=\\.\\.\\.)|(?<!\\.))(extends|in|out)(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))" + }, + { + "include": "source.ts#type" + }, + { + "include": "source.ts#punctuation-comma" + }, + { + "name": "keyword.operator.assignment.ts", + "match": "(=)(?!>)" + } + ] + } + ] + }, + "vue-interpolations": { + "patterns": [ + { + "begin": "(\\{\\{)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.interpolation.begin.html.vue" + } + }, + "end": "(\\}\\})", + "endCaptures": { + "1": { + "name": "punctuation.definition.interpolation.end.html.vue" + } + }, + "name": "expression.embedded.vue", + "patterns": [ + { + "begin": "\\G", + "end": "(?=\\}\\})", + "name": "source.ts.embedded.html.vue", + "patterns": [ + { + "include": "source.ts" + } + ] + } + ] + } + ] + } + } +} diff --git a/docs/shiki/languages/vyper.tmLanguage.json b/docs/shiki/languages/vyper.tmLanguage.json new file mode 100644 index 00000000..995927ab --- /dev/null +++ b/docs/shiki/languages/vyper.tmLanguage.json @@ -0,0 +1,5420 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/MagicStack/MagicPython/blob/master/grammars/MagicPython.tmLanguage", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/MagicStack/MagicPython/commit/b2b4f4ae7b4e6284e80bda8080106b93bd588f9e", + "name": "vyper", + "scopeName": "source.vyper", + "patterns": [ + { + "include": "#statement" + }, + { + "include": "#expression" + }, + { + "include": "#reserved-names-vyper" + } + ], + "repository": { + "impossible": { + "comment": "This is a special rule that should be used where no match is desired. It is not a good idea to match something like '1{0}' because in some cases that can result in infinite loops in token generation. So the rule instead matches and impossible expression to allow a match to fail and move to the next token.", + "match": "$.^" + }, + "statement": { + "patterns": [ + { + "include": "#import" + }, + { + "include": "#class-declaration" + }, + { + "include": "#function-declaration" + }, + { + "include": "#generator" + }, + { + "include": "#statement-keyword" + }, + { + "include": "#assignment-operator" + }, + { + "include": "#decorator" + }, + { + "include": "#docstring-statement" + }, + { + "include": "#semicolon" + } + ] + }, + "semicolon": { + "patterns": [ + { + "name": "invalid.deprecated.semicolon.python", + "match": "\\;$" + } + ] + }, + "comments": { + "patterns": [ + { + "name": "comment.line.number-sign.python", + "contentName": "meta.typehint.comment.python", + "begin": "(?x)\n (?:\n \\# \\s* (type:)\n \\s*+ (?# we want `\\s*+` which is possessive quantifier since\n we do not actually want to backtrack when matching\n whitespace here)\n (?! $ | \\#)\n )\n", + "end": "(?:$|(?=\\#))", + "beginCaptures": { + "0": { + "name": "meta.typehint.comment.python" + }, + "1": { + "name": "comment.typehint.directive.notation.python" + } + }, + "patterns": [ + { + "name": "comment.typehint.ignore.notation.python", + "match": "(?x)\n \\G ignore\n (?= \\s* (?: $ | \\#))\n" + }, + { + "name": "comment.typehint.type.notation.python", + "match": "(?x)\n (?<!\\.)\\b(\n bool | bytes | float | int | object | str\n | List | Dict | Iterable | Sequence | Set\n | FrozenSet | Callable | Union | Tuple\n | Any | None\n )\\b\n" + }, + { + "name": "comment.typehint.punctuation.notation.python", + "match": "([\\[\\]\\(\\),\\.\\=\\*]|(->))" + }, + { + "name": "comment.typehint.variable.notation.python", + "match": "([[:alpha:]_]\\w*)" + } + ] + }, + { + "include": "#comments-base" + } + ] + }, + "docstring-statement": { + "begin": "^(?=\\s*[rR]?(\\'\\'\\'|\\\"\\\"\\\"|\\'|\\\"))", + "comment": "the string either terminates correctly or by the beginning of a new line (this is for single line docstrings that aren't terminated) AND it's not followed by another docstring", + "end": "((?<=\\1)|^)(?!\\s*[rR]?(\\'\\'\\'|\\\"\\\"\\\"|\\'|\\\"))", + "patterns": [ + { + "include": "#docstring" + } + ] + }, + "docstring": { + "patterns": [ + { + "name": "string.quoted.docstring.multi.python", + "begin": "(\\'\\'\\'|\\\"\\\"\\\")", + "end": "(\\1)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.string.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python" + } + }, + "patterns": [ + { + "include": "#docstring-prompt" + }, + { + "include": "#codetags" + }, + { + "include": "#docstring-guts-unicode" + } + ] + }, + { + "name": "string.quoted.docstring.raw.multi.python", + "begin": "([rR])(\\'\\'\\'|\\\"\\\"\\\")", + "end": "(\\2)", + "beginCaptures": { + "1": { + "name": "storage.type.string.python" + }, + "2": { + "name": "punctuation.definition.string.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python" + } + }, + "patterns": [ + { + "include": "#string-consume-escape" + }, + { + "include": "#docstring-prompt" + }, + { + "include": "#codetags" + } + ] + }, + { + "name": "string.quoted.docstring.single.python", + "begin": "(\\'|\\\")", + "end": "(\\1)|(\\n)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.string.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#codetags" + }, + { + "include": "#docstring-guts-unicode" + } + ] + }, + { + "name": "string.quoted.docstring.raw.single.python", + "begin": "([rR])(\\'|\\\")", + "end": "(\\2)|(\\n)", + "beginCaptures": { + "1": { + "name": "storage.type.string.python" + }, + "2": { + "name": "punctuation.definition.string.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#string-consume-escape" + }, + { + "include": "#codetags" + } + ] + } + ] + }, + "docstring-guts-unicode": { + "patterns": [ + { + "include": "#escape-sequence-unicode" + }, + { + "include": "#escape-sequence" + }, + { + "include": "#string-line-continuation" + } + ] + }, + "docstring-prompt": { + "match": "(?x)\n (?:\n (?:^|\\G) \\s* (?# '\\G' is necessary for ST)\n ((?:>>>|\\.\\.\\.) \\s) (?=\\s*\\S)\n )\n", + "captures": { + "1": { + "name": "keyword.control.flow.python" + } + } + }, + "statement-keyword": { + "patterns": [ + { + "name": "storage.type.function.python", + "match": "\\b((async\\s+)?\\s*def)\\b" + }, + { + "name": "keyword.control.flow.python", + "comment": "if `as` is eventually followed by `:` or line continuation\nit's probably control flow like:\n with foo as bar, \\\n Foo as Bar:\n try:\n do_stuff()\n except Exception as e:\n pass\n", + "match": "\\b(?<!\\.)as\\b(?=.*[:\\\\])" + }, + { + "name": "keyword.control.import.python", + "comment": "other legal use of `as` is in an import", + "match": "\\b(?<!\\.)as\\b" + }, + { + "name": "keyword.control.flow.python", + "match": "(?x)\n \\b(?<!\\.)(\n async | continue | del | assert | break | finally | for\n | from | elif | else | if | except | pass | raise\n | return | try | while | with\n )\\b\n" + }, + { + "name": "storage.modifier.declaration.python", + "match": "(?x)\n \\b(?<!\\.)(\n global | nonlocal\n )\\b\n" + }, + { + "name": "storage.type.class.python", + "match": "\\b(?<!\\.)(class)\\b" + } + ] + }, + "expression-bare": { + "comment": "valid Python expressions w/o comments and line continuation", + "patterns": [ + { + "include": "#backticks" + }, + { + "include": "#illegal-anno" + }, + { + "include": "#literal" + }, + { + "include": "#regexp" + }, + { + "include": "#string" + }, + { + "include": "#lambda" + }, + { + "include": "#generator" + }, + { + "include": "#illegal-operator" + }, + { + "include": "#operator" + }, + { + "include": "#curly-braces" + }, + { + "include": "#item-access" + }, + { + "include": "#list" + }, + { + "include": "#odd-function-call" + }, + { + "include": "#round-braces" + }, + { + "include": "#function-call" + }, + { + "include": "#builtin-functions" + }, + { + "include": "#builtin-types" + }, + { + "include": "#builtin-exceptions" + }, + { + "include": "#magic-names" + }, + { + "include": "#special-names" + }, + { + "include": "#illegal-names" + }, + { + "include": "#special-variables" + }, + { + "include": "#ellipsis" + }, + { + "include": "#punctuation" + }, + { + "include": "#line-continuation" + }, + { + "include": "#special-variables-types" + } + ] + }, + "expression-base": { + "comment": "valid Python expressions with comments and line continuation", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#expression-bare" + }, + { + "include": "#line-continuation" + } + ] + }, + "expression": { + "comment": "All valid Python expressions", + "patterns": [ + { + "include": "#expression-base" + }, + { + "include": "#member-access" + }, + { + "comment": "Tokenize identifiers to help linters", + "match": "(?x) \\b ([[:alpha:]_]\\w*) \\b" + } + ] + }, + "member-access": { + "name": "meta.member.access.python", + "begin": "(\\.)\\s*(?!\\.)", + "end": "(?x)\n # stop when you've just read non-whitespace followed by non-word\n # i.e. when finished reading an identifier or function call\n (?<=\\S)(?=\\W) |\n # stop when seeing the start of something that's not a word,\n # i.e. when seeing a non-identifier\n (^|(?<=\\s))(?=[^\\\\\\w\\s]) |\n $\n", + "beginCaptures": { + "1": { + "name": "punctuation.separator.period.python" + } + }, + "patterns": [ + { + "include": "#function-call" + }, + { + "include": "#member-access-base" + }, + { + "include": "#member-access-attribute" + } + ] + }, + "member-access-base": { + "patterns": [ + { + "include": "#magic-names" + }, + { + "include": "#illegal-names" + }, + { + "include": "#illegal-object-name" + }, + { + "include": "#special-names" + }, + { + "include": "#line-continuation" + }, + { + "include": "#item-access" + }, + { + "include": "#special-variables-types" + } + ] + }, + "member-access-attribute": { + "comment": "Highlight attribute access in otherwise non-specialized cases.", + "name": "meta.attribute.python", + "match": "(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n" + }, + "special-names": { + "name": "constant.other.caps.python", + "match": "(?x)\n \\b\n # we want to see \"enough\", meaning 2 or more upper-case\n # letters in the beginning of the constant\n #\n # for more details refer to:\n # https://github.com/MagicStack/MagicPython/issues/42\n (\n _* [[:upper:]] [_\\d]* [[:upper:]]\n )\n [[:upper:]\\d]* (_\\w*)?\n \\b\n" + }, + "curly-braces": { + "begin": "\\{", + "end": "\\}", + "beginCaptures": { + "0": { + "name": "punctuation.definition.dict.begin.python" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.dict.end.python" + } + }, + "patterns": [ + { + "name": "punctuation.separator.dict.python", + "match": ":" + }, + { + "include": "#expression" + } + ] + }, + "list": { + "begin": "\\[", + "end": "\\]", + "beginCaptures": { + "0": { + "name": "punctuation.definition.list.begin.python" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.list.end.python" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + "odd-function-call": { + "comment": "A bit obscured function call where there may have been an\narbitrary number of other operations to get the function.\nE.g. \"arr[idx](args)\"\n", + "begin": "(?x)\n (?<= \\] | \\) ) \\s*\n (?=\\()\n", + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.definition.arguments.end.python" + } + }, + "patterns": [ + { + "include": "#function-arguments" + } + ] + }, + "round-braces": { + "begin": "\\(", + "end": "\\)", + "beginCaptures": { + "0": { + "name": "punctuation.parenthesis.begin.python" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.parenthesis.end.python" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + "line-continuation": { + "patterns": [ + { + "match": "(\\\\)\\s*(\\S.*$\\n?)", + "captures": { + "1": { + "name": "punctuation.separator.continuation.line.python" + }, + "2": { + "name": "invalid.illegal.line.continuation.python" + } + } + }, + { + "begin": "(\\\\)\\s*$\\n?", + "end": "(?x)\n (?=^\\s*$)\n |\n (?! (\\s* [rR]? (\\'\\'\\'|\\\"\\\"\\\"|\\'|\\\"))\n |\n (\\G $) (?# '\\G' is necessary for ST)\n )\n", + "beginCaptures": { + "1": { + "name": "punctuation.separator.continuation.line.python" + } + }, + "patterns": [ + { + "include": "#regexp" + }, + { + "include": "#string" + } + ] + } + ] + }, + "assignment-operator": { + "name": "keyword.operator.assignment.python", + "match": "(?x)\n <<= | >>= | //= | \\*\\*=\n | \\+= | -= | /= | @=\n | \\*= | %= | ~= | \\^= | &= | \\|=\n | =(?!=)\n" + }, + "operator": { + "match": "(?x)\n \\b(?<!\\.)\n (?:\n (and | or | not | in | is) (?# 1)\n |\n (for | if | else | await | (?:yield(?:\\s+from)?)) (?# 2)\n )\n (?!\\s*:)\\b\n\n | (<< | >> | & | \\| | \\^ | ~) (?# 3)\n\n | (\\*\\* | \\* | \\+ | - | % | // | / | @) (?# 4)\n\n | (!= | == | >= | <= | < | >) (?# 5)\n", + "captures": { + "1": { + "name": "keyword.operator.logical.python" + }, + "2": { + "name": "keyword.control.flow.python" + }, + "3": { + "name": "keyword.operator.bitwise.python" + }, + "4": { + "name": "keyword.operator.arithmetic.python" + }, + "5": { + "name": "keyword.operator.comparison.python" + } + } + }, + "punctuation": { + "patterns": [ + { + "name": "punctuation.separator.colon.python", + "match": ":" + }, + { + "name": "punctuation.separator.element.python", + "match": "," + } + ] + }, + "literal": { + "patterns": [ + { + "name": "constant.language.python", + "match": "\\b(True|False|None|NotImplemented|Ellipsis)\\b" + }, + { + "include": "#number" + } + ] + }, + "number": { + "name": "constant.numeric.python", + "patterns": [ + { + "include": "#number-float" + }, + { + "include": "#number-dec" + }, + { + "include": "#number-hex" + }, + { + "include": "#number-oct" + }, + { + "include": "#number-bin" + }, + { + "include": "#number-long" + }, + { + "name": "invalid.illegal.name.python", + "match": "\\b[0-9]+\\w+" + } + ] + }, + "number-float": { + "name": "constant.numeric.float.python", + "match": "(?x)\n (?<! \\w)(?:\n (?:\n \\.[0-9](?: _?[0-9] )*\n |\n [0-9](?: _?[0-9] )* \\. [0-9](?: _?[0-9] )*\n |\n [0-9](?: _?[0-9] )* \\.\n ) (?: [eE][+-]?[0-9](?: _?[0-9] )* )?\n |\n [0-9](?: _?[0-9] )* (?: [eE][+-]?[0-9](?: _?[0-9] )* )\n )([jJ])?\\b\n", + "captures": { + "1": { + "name": "storage.type.imaginary.number.python" + } + } + }, + "number-dec": { + "name": "constant.numeric.dec.python", + "match": "(?x)\n (?<![\\w\\.])(?:\n [1-9](?: _?[0-9] )*\n |\n 0+\n |\n [0-9](?: _?[0-9] )* ([jJ])\n |\n 0 ([0-9]+)(?![eE\\.])\n )\\b\n", + "captures": { + "1": { + "name": "storage.type.imaginary.number.python" + }, + "2": { + "name": "invalid.illegal.dec.python" + } + } + }, + "number-hex": { + "name": "constant.numeric.hex.python", + "match": "(?x)\n (?<![\\w\\.])\n (0[xX]) (_?[0-9a-fA-F])+\n \\b\n", + "captures": { + "1": { + "name": "storage.type.number.python" + } + } + }, + "number-oct": { + "name": "constant.numeric.oct.python", + "match": "(?x)\n (?<![\\w\\.])\n (0[oO]) (_?[0-7])+\n \\b\n", + "captures": { + "1": { + "name": "storage.type.number.python" + } + } + }, + "number-bin": { + "name": "constant.numeric.bin.python", + "match": "(?x)\n (?<![\\w\\.])\n (0[bB]) (_?[01])+\n \\b\n", + "captures": { + "1": { + "name": "storage.type.number.python" + } + } + }, + "number-long": { + "name": "constant.numeric.bin.python", + "comment": "this is to support python2 syntax for long ints", + "match": "(?x)\n (?<![\\w\\.])\n ([1-9][0-9]* | 0) ([lL])\n \\b\n", + "captures": { + "2": { + "name": "storage.type.number.python" + } + } + }, + "regexp": { + "patterns": [ + { + "include": "#regexp-single-three-line" + }, + { + "include": "#regexp-double-three-line" + }, + { + "include": "#regexp-single-one-line" + }, + { + "include": "#regexp-double-one-line" + }, + { + "include": "#fregexp-single-three-line" + }, + { + "include": "#fregexp-double-three-line" + }, + { + "include": "#fregexp-single-one-line" + }, + { + "include": "#fregexp-double-one-line" + } + ] + }, + "string": { + "patterns": [ + { + "include": "#string-quoted-multi-line" + }, + { + "include": "#string-quoted-single-line" + }, + { + "include": "#string-bin-quoted-multi-line" + }, + { + "include": "#string-bin-quoted-single-line" + }, + { + "include": "#string-raw-quoted-multi-line" + }, + { + "include": "#string-raw-quoted-single-line" + }, + { + "include": "#string-raw-bin-quoted-multi-line" + }, + { + "include": "#string-raw-bin-quoted-single-line" + }, + { + "include": "#fstring-fnorm-quoted-multi-line" + }, + { + "include": "#fstring-fnorm-quoted-single-line" + }, + { + "include": "#fstring-normf-quoted-multi-line" + }, + { + "include": "#fstring-normf-quoted-single-line" + }, + { + "include": "#fstring-raw-quoted-multi-line" + }, + { + "include": "#fstring-raw-quoted-single-line" + } + ] + }, + "string-unicode-guts": { + "patterns": [ + { + "include": "#escape-sequence-unicode" + }, + { + "include": "#string-entity" + }, + { + "include": "#string-brace-formatting" + } + ] + }, + "string-consume-escape": { + "match": "\\\\['\"\\n\\\\]" + }, + "string-raw-guts": { + "patterns": [ + { + "include": "#string-consume-escape" + }, + { + "include": "#string-formatting" + }, + { + "include": "#string-brace-formatting" + } + ] + }, + "string-raw-bin-guts": { + "patterns": [ + { + "include": "#string-consume-escape" + }, + { + "include": "#string-formatting" + } + ] + }, + "string-entity": { + "patterns": [ + { + "include": "#escape-sequence" + }, + { + "include": "#string-line-continuation" + }, + { + "include": "#string-formatting" + } + ] + }, + "fstring-guts": { + "patterns": [ + { + "include": "#escape-sequence-unicode" + }, + { + "include": "#escape-sequence" + }, + { + "include": "#string-line-continuation" + }, + { + "include": "#fstring-formatting" + } + ] + }, + "fstring-raw-guts": { + "patterns": [ + { + "include": "#string-consume-escape" + }, + { + "include": "#fstring-formatting" + } + ] + }, + "fstring-illegal-single-brace": { + "comment": "it is illegal to have a multiline brace inside a single-line string", + "begin": "(\\{)(?=[^\\n}]*$\\n?)", + "end": "(\\})|(?=\\n)", + "beginCaptures": { + "1": { + "name": "constant.character.format.placeholder.other.python" + } + }, + "endCaptures": { + "1": { + "name": "constant.character.format.placeholder.other.python" + } + }, + "patterns": [ + { + "include": "#fstring-terminator-single" + }, + { + "include": "#f-expression" + } + ] + }, + "fstring-illegal-multi-brace": { + "patterns": [ + { + "include": "#impossible" + } + ] + }, + "f-expression": { + "comment": "All valid Python expressions, except comments and line continuation", + "patterns": [ + { + "include": "#expression-bare" + }, + { + "include": "#member-access" + }, + { + "comment": "Tokenize identifiers to help linters", + "match": "(?x) \\b ([[:alpha:]_]\\w*) \\b" + } + ] + }, + "escape-sequence-unicode": { + "patterns": [ + { + "name": "constant.character.escape.python", + "match": "(?x)\n \\\\ (\n u[0-9A-Fa-f]{4}\n | U[0-9A-Fa-f]{8}\n | N\\{[\\w\\s]+?\\}\n )\n" + } + ] + }, + "escape-sequence": { + "name": "constant.character.escape.python", + "match": "(?x)\n \\\\ (\n x[0-9A-Fa-f]{2}\n | [0-7]{1,3}\n | [\\\\\"'abfnrtv]\n )\n" + }, + "string-line-continuation": { + "name": "constant.language.python", + "match": "\\\\$" + }, + "string-formatting": { + "name": "meta.format.percent.python", + "match": "(?x)\n (\n % (\\([\\w\\s]*\\))?\n [-+#0 ]*\n (\\d+|\\*)? (\\.(\\d+|\\*))?\n ([hlL])?\n [diouxXeEfFgGcrsab%]\n )\n", + "captures": { + "1": { + "name": "constant.character.format.placeholder.other.python" + } + } + }, + "string-brace-formatting": { + "patterns": [ + { + "name": "meta.format.brace.python", + "match": "(?x)\n (\n {{ | }}\n | (?:\n {\n \\w* (\\.[[:alpha:]_]\\w* | \\[[^\\]'\"]+\\])*\n (![rsa])?\n ( : \\w? [<>=^]? [-+ ]? \\#?\n \\d* ,? (\\.\\d+)? [bcdeEfFgGnosxX%]? )?\n })\n )\n", + "captures": { + "1": { + "name": "constant.character.format.placeholder.other.python" + }, + "3": { + "name": "storage.type.format.python" + }, + "4": { + "name": "storage.type.format.python" + } + } + }, + { + "name": "meta.format.brace.python", + "match": "(?x)\n (\n {\n \\w* (\\.[[:alpha:]_]\\w* | \\[[^\\]'\"]+\\])*\n (![rsa])?\n (:)\n [^'\"{}\\n]* (?:\n \\{ [^'\"}\\n]*? \\} [^'\"{}\\n]*\n )*\n }\n )\n", + "captures": { + "1": { + "name": "constant.character.format.placeholder.other.python" + }, + "3": { + "name": "storage.type.format.python" + }, + "4": { + "name": "storage.type.format.python" + } + } + } + ] + }, + "fstring-formatting": { + "patterns": [ + { + "include": "#fstring-formatting-braces" + }, + { + "include": "#fstring-formatting-singe-brace" + } + ] + }, + "fstring-formatting-singe-brace": { + "name": "invalid.illegal.brace.python", + "match": "(}(?!}))" + }, + "import": { + "comment": "Import statements used to correctly mark `from`, `import`, and `as`\n", + "patterns": [ + { + "begin": "\\b(?<!\\.)(from)\\b(?=.+import)", + "end": "$|(?=import)", + "beginCaptures": { + "1": { + "name": "keyword.control.import.python" + } + }, + "patterns": [ + { + "name": "punctuation.separator.period.python", + "match": "\\.+" + }, + { + "include": "#expression" + } + ] + }, + { + "begin": "\\b(?<!\\.)(import)\\b", + "end": "$", + "beginCaptures": { + "1": { + "name": "keyword.control.import.python" + } + }, + "patterns": [ + { + "name": "keyword.control.import.python", + "match": "\\b(?<!\\.)as\\b" + }, + { + "include": "#expression" + } + ] + } + ] + }, + "class-declaration": { + "patterns": [ + { + "name": "meta.class.python", + "begin": "(?x)\n \\s*(class)\\s+\n (?=\n [[:alpha:]_]\\w* \\s* (:|\\()\n )\n", + "end": "(:)", + "beginCaptures": { + "1": { + "name": "storage.type.class.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.section.class.begin.python" + } + }, + "patterns": [ + { + "include": "#class-name" + }, + { + "include": "#class-inheritance" + } + ] + } + ] + }, + "class-name": { + "patterns": [ + { + "include": "#illegal-object-name" + }, + { + "include": "#builtin-possible-callables" + }, + { + "name": "entity.name.type.class.python", + "match": "(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n" + } + ] + }, + "class-inheritance": { + "name": "meta.class.inheritance.python", + "begin": "(\\()", + "end": "(\\))", + "beginCaptures": { + "1": { + "name": "punctuation.definition.inheritance.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.inheritance.end.python" + } + }, + "patterns": [ + { + "name": "keyword.operator.unpacking.arguments.python", + "match": "(\\*\\*|\\*)" + }, + { + "name": "punctuation.separator.inheritance.python", + "match": "," + }, + { + "name": "keyword.operator.assignment.python", + "match": "=(?!=)" + }, + { + "name": "support.type.metaclass.python", + "match": "\\bmetaclass\\b" + }, + { + "include": "#illegal-names" + }, + { + "include": "#class-kwarg" + }, + { + "include": "#call-wrapper-inheritance" + }, + { + "include": "#expression-base" + }, + { + "include": "#member-access-class" + }, + { + "include": "#inheritance-identifier" + } + ] + }, + "class-kwarg": { + "match": "(?x)\n \\b ([[:alpha:]_]\\w*) \\s*(=)(?!=)\n", + "captures": { + "1": { + "name": "entity.other.inherited-class.python variable.parameter.class.python" + }, + "2": { + "name": "keyword.operator.assignment.python" + } + } + }, + "inheritance-identifier": { + "match": "(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n", + "captures": { + "1": { + "name": "entity.other.inherited-class.python" + } + } + }, + "member-access-class": { + "name": "meta.member.access.python", + "begin": "(\\.)\\s*(?!\\.)", + "end": "(?<=\\S)(?=\\W)|$", + "beginCaptures": { + "1": { + "name": "punctuation.separator.period.python" + } + }, + "patterns": [ + { + "include": "#call-wrapper-inheritance" + }, + { + "include": "#member-access-base" + }, + { + "include": "#inheritance-identifier" + } + ] + }, + "lambda": { + "patterns": [ + { + "match": "((?<=\\.)lambda|lambda(?=\\s*[\\.=]))", + "captures": { + "1": { + "name": "keyword.control.flow.python" + } + } + }, + { + "match": "\\b(lambda)\\s*?(?=[,\\n]|$)", + "captures": { + "1": { + "name": "storage.type.function.lambda.python" + } + } + }, + { + "name": "meta.lambda-function.python", + "begin": "(?x)\n \\b (lambda) \\b\n", + "end": "(:)|(\\n)", + "beginCaptures": { + "1": { + "name": "storage.type.function.lambda.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.section.function.lambda.begin.python" + } + }, + "contentName": "meta.function.lambda.parameters.python", + "patterns": [ + { + "name": "keyword.operator.unpacking.parameter.python", + "match": "(\\*\\*|\\*)" + }, + { + "include": "#lambda-nested-incomplete" + }, + { + "include": "#illegal-names" + }, + { + "match": "([[:alpha:]_]\\w*)\\s*(?:(,)|(?=:|$))", + "captures": { + "1": { + "name": "variable.parameter.function.language.python" + }, + "2": { + "name": "punctuation.separator.parameters.python" + } + } + }, + { + "include": "#comments" + }, + { + "include": "#backticks" + }, + { + "include": "#illegal-anno" + }, + { + "include": "#lambda-parameter-with-default" + }, + { + "include": "#line-continuation" + }, + { + "include": "#illegal-operator" + } + ] + } + ] + }, + "lambda-incomplete": { + "name": "storage.type.function.lambda.python", + "match": "\\blambda(?=\\s*[,)])" + }, + "lambda-nested-incomplete": { + "name": "storage.type.function.lambda.python", + "match": "\\blambda(?=\\s*[:,)])" + }, + "lambda-parameter-with-default": { + "begin": "(?x)\n \\b\n ([[:alpha:]_]\\w*) \\s* (=)\n", + "end": "(,)|(?=:|$)", + "beginCaptures": { + "1": { + "name": "variable.parameter.function.language.python" + }, + "2": { + "name": "keyword.operator.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.separator.parameters.python" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + "generator": { + "comment": "Match \"for ... in\" construct used in generators and for loops to\ncorrectly identify the \"in\" as a control flow keyword.\n", + "begin": "\\bfor\\b", + "beginCaptures": { + "0": { + "name": "keyword.control.flow.python" + } + }, + "end": "\\bin\\b", + "endCaptures": { + "0": { + "name": "keyword.control.flow.python" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + "function-declaration": { + "name": "meta.function.python", + "begin": "(?x)\n \\s*\n (?:\\b(async) \\s+)? \\b(def)\\s+\n (?=\n [[:alpha:]_][[:word:]]* \\s* \\(\n )\n", + "end": "(:|(?=[#'\"\\n]))", + "beginCaptures": { + "1": { + "name": "storage.type.function.async.python" + }, + "2": { + "name": "storage.type.function.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.section.function.begin.python" + } + }, + "patterns": [ + { + "include": "#function-def-name" + }, + { + "include": "#parameters" + }, + { + "include": "#line-continuation" + }, + { + "include": "#return-annotation" + } + ] + }, + "function-def-name": { + "patterns": [ + { + "name": "entity.name.function.fallback.vyper", + "match": "(?x)\n \\b (__default__) \\b\n" + }, + { + "name": "entity.name.function.constructor.vyper", + "match": "(?x)\n \\b (__init__) \\b\n" + }, + { + "include": "#illegal-object-name" + }, + { + "include": "#builtin-possible-callables" + }, + { + "name": "entity.name.function.python", + "match": "(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n" + } + ] + }, + "parameters": { + "name": "meta.function.parameters.python", + "begin": "(\\()", + "end": "(\\))", + "beginCaptures": { + "1": { + "name": "punctuation.definition.parameters.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.parameters.end.python" + } + }, + "patterns": [ + { + "name": "keyword.operator.unpacking.parameter.python", + "match": "(\\*\\*|\\*)" + }, + { + "include": "#lambda-incomplete" + }, + { + "include": "#illegal-names" + }, + { + "include": "#illegal-object-name" + }, + { + "include": "#parameter-special" + }, + { + "match": "(?x)\n ([[:alpha:]_]\\w*)\n \\s* (?: (,) | (?=[)#\\n=]))\n", + "captures": { + "1": { + "name": "variable.parameter.function.language.python" + }, + "2": { + "name": "punctuation.separator.parameters.python" + } + } + }, + { + "include": "#comments" + }, + { + "include": "#loose-default" + }, + { + "include": "#annotated-parameter" + } + ] + }, + "parameter-special": { + "match": "(?x)\n \\b ((self)|(cls)) \\b \\s*(?:(,)|(?=\\)))\n", + "captures": { + "1": { + "name": "variable.parameter.function.language.python" + }, + "2": { + "name": "variable.parameter.function.language.special.self.python" + }, + "3": { + "name": "variable.parameter.function.language.special.cls.python" + }, + "4": { + "name": "punctuation.separator.parameters.python" + } + } + }, + "loose-default": { + "begin": "(=)", + "end": "(,)|(?=\\))", + "beginCaptures": { + "1": { + "name": "keyword.operator.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.separator.parameters.python" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + "annotated-parameter": { + "begin": "(?x)\n \\b\n ([[:alpha:]_]\\w*) \\s* (:)\n", + "end": "(,)|(?=\\))", + "beginCaptures": { + "1": { + "name": "variable.parameter.function.language.python" + }, + "2": { + "name": "punctuation.separator.annotation.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.separator.parameters.python" + } + }, + "patterns": [ + { + "include": "#expression" + }, + { + "name": "keyword.operator.assignment.python", + "match": "=(?!=)" + } + ] + }, + "return-annotation": { + "begin": "(->)", + "end": "(?=:)", + "beginCaptures": { + "1": { + "name": "punctuation.separator.annotation.result.python" + } + }, + "patterns": [ + { + "include": "#expression" + } + ] + }, + "item-access": { + "patterns": [ + { + "name": "meta.item-access.python", + "begin": "(?x)\n \\b(?=\n [[:alpha:]_]\\w* \\s* \\[\n )\n", + "end": "(\\])", + "endCaptures": { + "1": { + "name": "punctuation.definition.arguments.end.python" + } + }, + "patterns": [ + { + "include": "#item-name" + }, + { + "include": "#item-index" + }, + { + "include": "#expression" + } + ] + } + ] + }, + "item-name": { + "patterns": [ + { + "include": "#special-variables" + }, + { + "include": "#builtin-functions" + }, + { + "include": "#special-names" + }, + { + "name": "meta.indexed-name.python", + "match": "(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n" + }, + { + "include": "#special-variables-types" + } + ] + }, + "item-index": { + "begin": "(\\[)", + "end": "(?=\\])", + "beginCaptures": { + "1": { + "name": "punctuation.definition.arguments.begin.python" + } + }, + "contentName": "meta.item-access.arguments.python", + "patterns": [ + { + "name": "punctuation.separator.slice.python", + "match": ":" + }, + { + "include": "#expression" + } + ] + }, + "decorator": { + "name": "meta.function.decorator.python", + "begin": "(?x)\n ^\\s*\n ((@)) \\s* (?=[[:alpha:]_]\\w*)\n", + "end": "(?x)\n ( \\) )\n # trailing whitespace and comments are legal\n (?: (.*?) (?=\\s*(?:\\#|$)) )\n | (?=\\n|\\#)\n", + "beginCaptures": { + "1": { + "name": "entity.name.function.decorator.python" + }, + "2": { + "name": "punctuation.definition.decorator.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.arguments.end.python" + }, + "2": { + "name": "invalid.illegal.decorator.python" + } + }, + "patterns": [ + { + "include": "#decorator-name" + }, + { + "include": "#function-arguments" + } + ] + }, + "decorator-name": { + "patterns": [ + { + "include": "#builtin-callables" + }, + { + "include": "#illegal-object-name" + }, + { + "name": "entity.name.function.decorator.python", + "match": "(?x)\n ([[:alpha:]_]\\w*) | (\\.)\n", + "captures": { + "2": { + "name": "punctuation.separator.period.python" + } + } + }, + { + "include": "#line-continuation" + }, + { + "name": "invalid.illegal.decorator.python", + "match": "(?x)\n \\s* ([^([:alpha:]\\s_\\.#\\\\] .*?) (?=\\#|$)\n", + "captures": { + "1": { + "name": "invalid.illegal.decorator.python" + } + } + } + ] + }, + "call-wrapper-inheritance": { + "comment": "same as a function call, but in inheritance context", + "name": "meta.function-call.python", + "begin": "(?x)\n \\b(?=\n ([[:alpha:]_]\\w*) \\s* (\\()\n )\n", + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.definition.arguments.end.python" + } + }, + "patterns": [ + { + "include": "#inheritance-name" + }, + { + "include": "#function-arguments" + } + ] + }, + "inheritance-name": { + "patterns": [ + { + "include": "#lambda-incomplete" + }, + { + "include": "#builtin-possible-callables" + }, + { + "include": "#inheritance-identifier" + } + ] + }, + "function-call": { + "name": "meta.function-call.python", + "comment": "Regular function call of the type \"name(args)\"", + "begin": "(?x)\n \\b(?=\n ([[:alpha:]_]\\w*) \\s* (\\()\n )\n", + "end": "(\\))", + "endCaptures": { + "1": { + "name": "punctuation.definition.arguments.end.python" + } + }, + "patterns": [ + { + "include": "#special-variables" + }, + { + "include": "#function-name" + }, + { + "include": "#function-arguments" + } + ] + }, + "function-name": { + "patterns": [ + { + "include": "#builtin-possible-callables" + }, + { + "comment": "Some color schemas support meta.function-call.generic scope", + "name": "meta.function-call.generic.python", + "match": "(?x)\n \\b ([[:alpha:]_]\\w*) \\b\n" + } + ] + }, + "function-arguments": { + "begin": "(\\()", + "end": "(?=\\))(?!\\)\\s*\\()", + "beginCaptures": { + "1": { + "name": "punctuation.definition.arguments.begin.python" + } + }, + "contentName": "meta.function-call.arguments.python", + "patterns": [ + { + "name": "punctuation.separator.arguments.python", + "match": "(,)" + }, + { + "match": "(?x)\n (?:(?<=[,(])|^) \\s* (\\*{1,2})\n", + "captures": { + "1": { + "name": "keyword.operator.unpacking.arguments.python" + } + } + }, + { + "include": "#lambda-incomplete" + }, + { + "include": "#illegal-names" + }, + { + "match": "\\b([[:alpha:]_]\\w*)\\s*(=)(?!=)", + "captures": { + "1": { + "name": "variable.parameter.function-call.python" + }, + "2": { + "name": "keyword.operator.assignment.python" + } + } + }, + { + "name": "keyword.operator.assignment.python", + "match": "=(?!=)" + }, + { + "include": "#expression" + }, + { + "match": "\\s*(\\))\\s*(\\()", + "captures": { + "1": { + "name": "punctuation.definition.arguments.end.python" + }, + "2": { + "name": "punctuation.definition.arguments.begin.python" + } + } + } + ] + }, + "builtin-callables": { + "patterns": [ + { + "include": "#illegal-names" + }, + { + "include": "#illegal-object-name" + }, + { + "include": "#builtin-exceptions" + }, + { + "include": "#builtin-functions" + }, + { + "include": "#builtin-types" + } + ] + }, + "builtin-possible-callables": { + "patterns": [ + { + "include": "#builtin-callables" + }, + { + "include": "#magic-names" + } + ] + }, + "builtin-exceptions": { + "name": "support.type.exception.python", + "match": "(?x) (?<!\\.) \\b(\n (\n Arithmetic | Assertion | Attribute | Buffer | BlockingIO\n | BrokenPipe | ChildProcess\n | (Connection (Aborted | Refused | Reset)?)\n | EOF | Environment | FileExists | FileNotFound\n | FloatingPoint | IO | Import | Indentation | Index | Interrupted\n | IsADirectory | NotADirectory | Permission | ProcessLookup\n | Timeout\n | Key | Lookup | Memory | Name | NotImplemented | OS | Overflow\n | Reference | Runtime | Recursion | Syntax | System\n | Tab | Type | UnboundLocal | Unicode(Encode|Decode|Translate)?\n | Value | Windows | ZeroDivision | ModuleNotFound\n ) Error\n|\n ((Pending)?Deprecation | Runtime | Syntax | User | Future | Import\n | Unicode | Bytes | Resource\n )? Warning\n|\n SystemExit | Stop(Async)?Iteration\n | KeyboardInterrupt\n | GeneratorExit | (Base)?Exception\n)\\b\n" + }, + "builtin-functions": { + "patterns": [ + { + "name": "support.function.builtin.python", + "match": "(?x)\n (?<!\\.) \\b(\n __import__ | abs | all | any | ascii | bin | breakpoint | callable\n | chr | compile | copyright | credits | delattr | dir | divmod\n | enumerate | eval | exec | exit | filter | format | getattr\n | globals | hasattr | hash | help | hex | id | input\n | isinstance | issubclass | iter | len | license | locals | map\n | max | memoryview | min | next | oct | open | ord | pow | print\n | quit | range | reload | repr | reversed | round\n | setattr | sorted | sum | vars | zip\n )\\b\n" + }, + { + "name": "variable.legacy.builtin.python", + "match": "(?x)\n (?<!\\.) \\b(\n file | reduce | intern | raw_input | unicode | cmp | basestring\n | execfile | long | xrange\n )\\b\n" + }, + { + "name": "support.function.builtin.vyper", + "match": "(?x)\n (?<!\\.) \\b(\n _abi_encode | floor | ceil | convert | slice | len | concat | sha256 | method_id | keccak256 | ecrecover | ecadd | ecmul | extract32 | as_wei_value | raw_call | blockhash | bitwise_and | bitwise_or | bitwise_xor | bitwise_not | uint256_addmod | uint256_mulmod | pow_mod256 | sqrt | shift | create_forwarder_to | min | max | empty | abs )\\b\n" + }, + { + "name": "support.function.builtin.lowlevel.vyper", + "match": "(?x)\n (?<!\\.) \\b(\n send | selfdestruct | raw_call | raw_log | create_forwarder_to )\\b\n" + }, + { + "name": "support.type.event.vyper", + "match": "(?x)\n (?<!\\.) \\b(\n event )\\b\n" + }, + { + "name": "support.type.reference.vyper", + "match": "(?x)\n (?<!\\.) \\b(\n map | struct | HashMap )\\b\n" + }, + { + "name": "support.function.builtin.modifiers.safe.vyper", + "match": "(?x)\n (?<!\\.) \\b(\n private | nonreentrant | constant | event | internal | view | pure )\\b\n" + }, + { + "name": "support.function.builtin.modifiers.unsafe.vyper", + "match": "(?x)\n (?<!\\.) \\b(\n public | payable | modifying | external )\\b\n" + } + ] + }, + "builtin-types": { + "patterns": [ + { + "name": "support.type.python", + "match": "(?x)\n (?<!\\.) \\b(\n bool | bytearray | bytes | classmethod | complex | dict\n | float | frozenset | int | list | object | property\n | set | slice | staticmethod | str | tuple | type\n\n (?# Although 'super' is not a type, it's related to types,\n and is special enough to be highlighted differently from\n other built-ins)\n | super\n )\\b\n" + }, + { + "name": "support.type.basetype.vyper", + "match": "(?x)\n (?<!\\.) \\b(\n bytes32 | bytearray | wei_value | timestamp | int256 | uint8 | uint256 | decimal | timedelta | string | int128 | address | bool | bytes )\\b\n" + }, + { + "name": "support.type.keywords.vyper", + "match": "(?x)\n (?<!\\.) \\b(\n finney | gwei | range | def | ____init____ | timedelta | babbage | zero_address | raise | external | empty_bytes32 | assert | continue | wei | ada | min_int256 | min_int128 | chainid | max_decimal | default | indexed | selfdestruct | lovelace | immutable | throw | kwei | max_int128 | while | constant | ___default___ | balance | twei | codesize | false | max_int256 | _default_ | init | mwei | if | ____default____ | true | payable | internal | until | this | nonpayable | pass | public | nonreentrant | blockhash | max_uint256 | shannon | none | units | _init_ | ___init___ | is_contract | for | zero_wei | min_decimal | szabo | timestamp | ether | pwei | send )\\b\n" + }, + { + "name": "support.type.unit.vyper", + "match": "(?x)\n (?<!\\.) \\b(\n shannon | finney | gwei | twei | kwei | wei | lovelace | ether | szabo | pwei | babbage | mwei | ada \n\n (?# Although 'super' is not a type, it's related to types,\n and is special enough to be highlighted differently from\n other built-ins)\n | super\n )\\b\n" + }, + { + "name": "support.type.constant.vyper", + "match": "(?x)\n (?<!\\.) \\b(\n ZERO_ADDRESS | EMPTY_BYTES32 | MAX_INT128 | MIN_INT128 | MAX_DECIMAL | MIN_DECIMAL | MAX_UINT256 \n\n (?# Although 'super' is not a type, it's related to types,\n and is special enough to be highlighted differently from\n other built-ins)\n | super\n )\\b\n" + }, + { + "name": "entity.other.inherited-class.interface.vyper", + "match": "(?x)\n (?<!\\.) \\b(\n implements )\\b\n" + } + ] + }, + "magic-function-names": { + "comment": "these methods have magic interpretation by python and are generally called\nindirectly through syntactic constructs\n", + "match": "(?x)\n \\b(\n __(?:\n abs | add | aenter | aexit | aiter | and | anext | await\n | bool | call | ceil | cmp | coerce | complex | contains\n | copy | deepcopy | del | delattr | delete | delitem\n | delslice | dir | div | divmod | enter | eq | exit | float\n | floor | floordiv | format | ge | get | getattr\n | getattribute | getinitargs | getitem | getnewargs\n | getslice | getstate | gt | hash | hex | iadd | iand | idiv\n | ifloordiv | ilshift | imod | imul | index | init\n | instancecheck | int | invert | ior | ipow | irshift | isub\n | iter | itruediv | ixor | le | len | long | lshift | lt\n | missing | mod | mul | ne | neg | new | next | nonzero | oct | or\n | pos | pow | radd | rand | rdiv | rdivmod | reduce\n | reduce_ex | repr | reversed | rfloordiv | rlshift | rmod\n | rmul | ror | round | rpow | rrshift | rshift | rsub\n | rtruediv | rxor | set | setattr | setitem | setslice\n | setstate | sizeof | str | sub | subclasscheck | truediv\n | trunc | unicode | xor | matmul | rmatmul | imatmul\n | init_subclass | set_name | fspath | bytes | prepare\n )__\n )\\b\n", + "captures": { + "1": { + "name": "support.function.magic.python" + } + } + }, + "magic-variable-names": { + "comment": "magic variables which a class/module may have.", + "match": "(?x)\n \\b(\n __(?:\n all | bases | builtins | class | class_getitem | code | debug\n | defaults | dict | doc | file | func | kwdefaults | members\n | metaclass | methods | module | mro | mro_entries | name\n | qualname | post_init | self | signature | slots | subclasses\n | version | weakref | wrapped | annotations | classcell\n | spec | path | package | future | traceback\n )__\n )\\b\n", + "captures": { + "1": { + "name": "support.variable.magic.python" + } + } + }, + "magic-names": { + "patterns": [ + { + "include": "#magic-function-names" + }, + { + "include": "#magic-variable-names" + } + ] + }, + "illegal-names": { + "match": "(?x)\n \\b(?:\n (\n and | assert | async | await | break | class | continue | def\n | del | elif | else | except | finally | for | from | global\n | if | in | is | (?<=\\.)lambda | lambda(?=\\s*[\\.=])\n | nonlocal | not | or | pass | raise | return | try | while | with\n | yield\n ) | (\n as | import\n )\n )\\b\n", + "captures": { + "1": { + "name": "keyword.control.flow.python" + }, + "2": { + "name": "keyword.control.import.python" + } + } + }, + "special-variables": { + "match": "(?x)\n \\b (?<!\\.) (?:\n (self) | (cls)\n )\\b\n", + "captures": { + "1": { + "name": "variable.language.special.self.python" + }, + "2": { + "name": "variable.language.special.cls.python" + } + } + }, + "ellipsis": { + "name": "constant.other.ellipsis.python", + "match": "\\.\\.\\." + }, + "backticks": { + "name": "invalid.deprecated.backtick.python", + "begin": "\\`", + "end": "(?:\\`|(?<!\\\\)(\\n))", + "patterns": [ + { + "include": "#expression" + } + ] + }, + "illegal-operator": { + "patterns": [ + { + "name": "invalid.illegal.operator.python", + "match": "&&|\\|\\||--|\\+\\+" + }, + { + "name": "invalid.illegal.operator.python", + "match": "[?$]" + }, + { + "name": "invalid.illegal.operator.python", + "comment": "We don't want `!` to flash when we're typing `!=`", + "match": "!\\b" + } + ] + }, + "illegal-object-name": { + "comment": "It's illegal to name class or function \"True\"", + "name": "keyword.illegal.name.python", + "match": "\\b(True|False|None)\\b" + }, + "illegal-anno": { + "name": "invalid.illegal.annotation.python", + "match": "->" + }, + "regexp-base-expression": { + "patterns": [ + { + "include": "#regexp-quantifier" + }, + { + "include": "#regexp-base-common" + } + ] + }, + "fregexp-base-expression": { + "patterns": [ + { + "include": "#fregexp-quantifier" + }, + { + "include": "#fstring-formatting-braces" + }, + { + "match": "\\{.*?\\}" + }, + { + "include": "#regexp-base-common" + } + ] + }, + "fstring-formatting-braces": { + "patterns": [ + { + "comment": "empty braces are illegal", + "match": "({)(\\s*?)(})", + "captures": { + "1": { + "name": "constant.character.format.placeholder.other.python" + }, + "2": { + "name": "invalid.illegal.brace.python" + }, + "3": { + "name": "constant.character.format.placeholder.other.python" + } + } + }, + { + "name": "constant.character.escape.python", + "match": "({{|}})" + } + ] + }, + "regexp-base-common": { + "patterns": [ + { + "name": "support.other.match.any.regexp", + "match": "\\." + }, + { + "name": "support.other.match.begin.regexp", + "match": "\\^" + }, + { + "name": "support.other.match.end.regexp", + "match": "\\$" + }, + { + "name": "keyword.operator.quantifier.regexp", + "match": "[+*?]\\??" + }, + { + "name": "keyword.operator.disjunction.regexp", + "match": "\\|" + }, + { + "include": "#regexp-escape-sequence" + } + ] + }, + "regexp-quantifier": { + "name": "keyword.operator.quantifier.regexp", + "match": "(?x)\n \\{(\n \\d+ | \\d+,(\\d+)? | ,\\d+\n )\\}\n" + }, + "fregexp-quantifier": { + "name": "keyword.operator.quantifier.regexp", + "match": "(?x)\n \\{\\{(\n \\d+ | \\d+,(\\d+)? | ,\\d+\n )\\}\\}\n" + }, + "regexp-backreference-number": { + "name": "meta.backreference.regexp", + "match": "(\\\\[1-9]\\d?)", + "captures": { + "1": { + "name": "entity.name.tag.backreference.regexp" + } + } + }, + "regexp-backreference": { + "name": "meta.backreference.named.regexp", + "match": "(?x)\n (\\() (\\?P= \\w+(?:\\s+[[:alnum:]]+)?) (\\))\n", + "captures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.begin.regexp" + }, + "2": { + "name": "entity.name.tag.named.backreference.regexp" + }, + "3": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.backreference.named.end.regexp" + } + } + }, + "regexp-flags": { + "name": "storage.modifier.flag.regexp", + "match": "\\(\\?[aiLmsux]+\\)" + }, + "regexp-escape-special": { + "name": "support.other.escape.special.regexp", + "match": "\\\\([AbBdDsSwWZ])" + }, + "regexp-escape-character": { + "name": "constant.character.escape.regexp", + "match": "(?x)\n \\\\ (\n x[0-9A-Fa-f]{2}\n | 0[0-7]{1,2}\n | [0-7]{3}\n )\n" + }, + "regexp-escape-unicode": { + "name": "constant.character.unicode.regexp", + "match": "(?x)\n \\\\ (\n u[0-9A-Fa-f]{4}\n | U[0-9A-Fa-f]{8}\n )\n" + }, + "regexp-escape-catchall": { + "name": "constant.character.escape.regexp", + "match": "\\\\(.|\\n)" + }, + "regexp-escape-sequence": { + "patterns": [ + { + "include": "#regexp-escape-special" + }, + { + "include": "#regexp-escape-character" + }, + { + "include": "#regexp-escape-unicode" + }, + { + "include": "#regexp-backreference-number" + }, + { + "include": "#regexp-escape-catchall" + } + ] + }, + "regexp-charecter-set-escapes": { + "patterns": [ + { + "name": "constant.character.escape.regexp", + "match": "\\\\[abfnrtv\\\\]" + }, + { + "include": "#regexp-escape-special" + }, + { + "name": "constant.character.escape.regexp", + "match": "\\\\([0-7]{1,3})" + }, + { + "include": "#regexp-escape-character" + }, + { + "include": "#regexp-escape-unicode" + }, + { + "include": "#regexp-escape-catchall" + } + ] + }, + "codetags": { + "match": "(?:\\b(NOTE|XXX|HACK|FIXME|BUG|TODO)\\b)", + "captures": { + "1": { + "name": "keyword.codetag.notation.python" + } + } + }, + "comments-base": { + "name": "comment.line.number-sign.python", + "begin": "(\\#)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.python" + } + }, + "end": "($)", + "patterns": [ + { + "include": "#codetags" + } + ] + }, + "comments-string-single-three": { + "name": "comment.line.number-sign.python", + "begin": "(\\#)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.python" + } + }, + "end": "($|(?='''))", + "patterns": [ + { + "include": "#codetags" + } + ] + }, + "comments-string-double-three": { + "name": "comment.line.number-sign.python", + "begin": "(\\#)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.python" + } + }, + "end": "($|(?=\"\"\"))", + "patterns": [ + { + "include": "#codetags" + } + ] + }, + "single-one-regexp-expression": { + "patterns": [ + { + "include": "#regexp-base-expression" + }, + { + "include": "#single-one-regexp-character-set" + }, + { + "include": "#single-one-regexp-comments" + }, + { + "include": "#regexp-flags" + }, + { + "include": "#single-one-regexp-named-group" + }, + { + "include": "#regexp-backreference" + }, + { + "include": "#single-one-regexp-lookahead" + }, + { + "include": "#single-one-regexp-lookahead-negative" + }, + { + "include": "#single-one-regexp-lookbehind" + }, + { + "include": "#single-one-regexp-lookbehind-negative" + }, + { + "include": "#single-one-regexp-conditional" + }, + { + "include": "#single-one-regexp-parentheses-non-capturing" + }, + { + "include": "#single-one-regexp-parentheses" + } + ] + }, + "single-one-regexp-character-set": { + "patterns": [ + { + "match": "(?x)\n \\[ \\^? \\] (?! .*?\\])\n" + }, + { + "name": "meta.character.set.regexp", + "begin": "(\\[)(\\^)?(\\])?", + "end": "(\\]|(?=\\'))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "1": { + "name": "punctuation.character.set.begin.regexp constant.other.set.regexp" + }, + "2": { + "name": "keyword.operator.negation.regexp" + }, + "3": { + "name": "constant.character.set.regexp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.character.set.end.regexp constant.other.set.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#regexp-charecter-set-escapes" + }, + { + "name": "constant.character.set.regexp", + "match": "[^\\n]" + } + ] + } + ] + }, + "single-one-regexp-named-group": { + "name": "meta.named.regexp", + "begin": "(?x)\n (\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n", + "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp" + }, + "2": { + "name": "entity.name.tag.named.group.regexp" + } + }, + "endCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-one-regexp-expression" + } + ] + }, + "single-one-regexp-comments": { + "name": "comment.regexp", + "begin": "\\(\\?#", + "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "punctuation.comment.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.comment.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#codetags" + } + ] + }, + "single-one-regexp-lookahead": { + "begin": "(\\()\\?=", + "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookahead.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookahead.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-one-regexp-expression" + } + ] + }, + "single-one-regexp-lookahead-negative": { + "begin": "(\\()\\?!", + "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookahead.negative.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookahead.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-one-regexp-expression" + } + ] + }, + "single-one-regexp-lookbehind": { + "begin": "(\\()\\?<=", + "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookbehind.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookbehind.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-one-regexp-expression" + } + ] + }, + "single-one-regexp-lookbehind-negative": { + "begin": "(\\()\\?<!", + "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookbehind.negative.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookbehind.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-one-regexp-expression" + } + ] + }, + "single-one-regexp-conditional": { + "begin": "(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)", + "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "keyword.operator.conditional.regexp" + }, + "1": { + "name": "punctuation.parenthesis.conditional.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-one-regexp-expression" + } + ] + }, + "single-one-regexp-parentheses-non-capturing": { + "begin": "\\(\\?:", + "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-one-regexp-expression" + } + ] + }, + "single-one-regexp-parentheses": { + "begin": "\\(", + "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-one-regexp-expression" + } + ] + }, + "single-three-regexp-expression": { + "patterns": [ + { + "include": "#regexp-base-expression" + }, + { + "include": "#single-three-regexp-character-set" + }, + { + "include": "#single-three-regexp-comments" + }, + { + "include": "#regexp-flags" + }, + { + "include": "#single-three-regexp-named-group" + }, + { + "include": "#regexp-backreference" + }, + { + "include": "#single-three-regexp-lookahead" + }, + { + "include": "#single-three-regexp-lookahead-negative" + }, + { + "include": "#single-three-regexp-lookbehind" + }, + { + "include": "#single-three-regexp-lookbehind-negative" + }, + { + "include": "#single-three-regexp-conditional" + }, + { + "include": "#single-three-regexp-parentheses-non-capturing" + }, + { + "include": "#single-three-regexp-parentheses" + }, + { + "include": "#comments-string-single-three" + } + ] + }, + "single-three-regexp-character-set": { + "patterns": [ + { + "match": "(?x)\n \\[ \\^? \\] (?! .*?\\])\n" + }, + { + "name": "meta.character.set.regexp", + "begin": "(\\[)(\\^)?(\\])?", + "end": "(\\]|(?=\\'\\'\\'))", + "beginCaptures": { + "1": { + "name": "punctuation.character.set.begin.regexp constant.other.set.regexp" + }, + "2": { + "name": "keyword.operator.negation.regexp" + }, + "3": { + "name": "constant.character.set.regexp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.character.set.end.regexp constant.other.set.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#regexp-charecter-set-escapes" + }, + { + "name": "constant.character.set.regexp", + "match": "[^\\n]" + } + ] + } + ] + }, + "single-three-regexp-named-group": { + "name": "meta.named.regexp", + "begin": "(?x)\n (\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n", + "end": "(\\)|(?=\\'\\'\\'))", + "beginCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp" + }, + "2": { + "name": "entity.name.tag.named.group.regexp" + } + }, + "endCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-three-regexp-expression" + }, + { + "include": "#comments-string-single-three" + } + ] + }, + "single-three-regexp-comments": { + "name": "comment.regexp", + "begin": "\\(\\?#", + "end": "(\\)|(?=\\'\\'\\'))", + "beginCaptures": { + "0": { + "name": "punctuation.comment.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.comment.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#codetags" + } + ] + }, + "single-three-regexp-lookahead": { + "begin": "(\\()\\?=", + "end": "(\\)|(?=\\'\\'\\'))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookahead.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookahead.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-three-regexp-expression" + }, + { + "include": "#comments-string-single-three" + } + ] + }, + "single-three-regexp-lookahead-negative": { + "begin": "(\\()\\?!", + "end": "(\\)|(?=\\'\\'\\'))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookahead.negative.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookahead.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-three-regexp-expression" + }, + { + "include": "#comments-string-single-three" + } + ] + }, + "single-three-regexp-lookbehind": { + "begin": "(\\()\\?<=", + "end": "(\\)|(?=\\'\\'\\'))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookbehind.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookbehind.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-three-regexp-expression" + }, + { + "include": "#comments-string-single-three" + } + ] + }, + "single-three-regexp-lookbehind-negative": { + "begin": "(\\()\\?<!", + "end": "(\\)|(?=\\'\\'\\'))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookbehind.negative.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookbehind.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-three-regexp-expression" + }, + { + "include": "#comments-string-single-three" + } + ] + }, + "single-three-regexp-conditional": { + "begin": "(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)", + "end": "(\\)|(?=\\'\\'\\'))", + "beginCaptures": { + "0": { + "name": "keyword.operator.conditional.regexp" + }, + "1": { + "name": "punctuation.parenthesis.conditional.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-three-regexp-expression" + }, + { + "include": "#comments-string-single-three" + } + ] + }, + "single-three-regexp-parentheses-non-capturing": { + "begin": "\\(\\?:", + "end": "(\\)|(?=\\'\\'\\'))", + "beginCaptures": { + "0": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-three-regexp-expression" + }, + { + "include": "#comments-string-single-three" + } + ] + }, + "single-three-regexp-parentheses": { + "begin": "\\(", + "end": "(\\)|(?=\\'\\'\\'))", + "beginCaptures": { + "0": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-three-regexp-expression" + }, + { + "include": "#comments-string-single-three" + } + ] + }, + "double-one-regexp-expression": { + "patterns": [ + { + "include": "#regexp-base-expression" + }, + { + "include": "#double-one-regexp-character-set" + }, + { + "include": "#double-one-regexp-comments" + }, + { + "include": "#regexp-flags" + }, + { + "include": "#double-one-regexp-named-group" + }, + { + "include": "#regexp-backreference" + }, + { + "include": "#double-one-regexp-lookahead" + }, + { + "include": "#double-one-regexp-lookahead-negative" + }, + { + "include": "#double-one-regexp-lookbehind" + }, + { + "include": "#double-one-regexp-lookbehind-negative" + }, + { + "include": "#double-one-regexp-conditional" + }, + { + "include": "#double-one-regexp-parentheses-non-capturing" + }, + { + "include": "#double-one-regexp-parentheses" + } + ] + }, + "double-one-regexp-character-set": { + "patterns": [ + { + "match": "(?x)\n \\[ \\^? \\] (?! .*?\\])\n" + }, + { + "name": "meta.character.set.regexp", + "begin": "(\\[)(\\^)?(\\])?", + "end": "(\\]|(?=\"))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "1": { + "name": "punctuation.character.set.begin.regexp constant.other.set.regexp" + }, + "2": { + "name": "keyword.operator.negation.regexp" + }, + "3": { + "name": "constant.character.set.regexp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.character.set.end.regexp constant.other.set.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#regexp-charecter-set-escapes" + }, + { + "name": "constant.character.set.regexp", + "match": "[^\\n]" + } + ] + } + ] + }, + "double-one-regexp-named-group": { + "name": "meta.named.regexp", + "begin": "(?x)\n (\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n", + "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp" + }, + "2": { + "name": "entity.name.tag.named.group.regexp" + } + }, + "endCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-one-regexp-expression" + } + ] + }, + "double-one-regexp-comments": { + "name": "comment.regexp", + "begin": "\\(\\?#", + "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "punctuation.comment.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.comment.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#codetags" + } + ] + }, + "double-one-regexp-lookahead": { + "begin": "(\\()\\?=", + "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookahead.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookahead.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-one-regexp-expression" + } + ] + }, + "double-one-regexp-lookahead-negative": { + "begin": "(\\()\\?!", + "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookahead.negative.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookahead.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-one-regexp-expression" + } + ] + }, + "double-one-regexp-lookbehind": { + "begin": "(\\()\\?<=", + "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookbehind.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookbehind.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-one-regexp-expression" + } + ] + }, + "double-one-regexp-lookbehind-negative": { + "begin": "(\\()\\?<!", + "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookbehind.negative.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookbehind.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-one-regexp-expression" + } + ] + }, + "double-one-regexp-conditional": { + "begin": "(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)", + "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "keyword.operator.conditional.regexp" + }, + "1": { + "name": "punctuation.parenthesis.conditional.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-one-regexp-expression" + } + ] + }, + "double-one-regexp-parentheses-non-capturing": { + "begin": "\\(\\?:", + "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-one-regexp-expression" + } + ] + }, + "double-one-regexp-parentheses": { + "begin": "\\(", + "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-one-regexp-expression" + } + ] + }, + "double-three-regexp-expression": { + "patterns": [ + { + "include": "#regexp-base-expression" + }, + { + "include": "#double-three-regexp-character-set" + }, + { + "include": "#double-three-regexp-comments" + }, + { + "include": "#regexp-flags" + }, + { + "include": "#double-three-regexp-named-group" + }, + { + "include": "#regexp-backreference" + }, + { + "include": "#double-three-regexp-lookahead" + }, + { + "include": "#double-three-regexp-lookahead-negative" + }, + { + "include": "#double-three-regexp-lookbehind" + }, + { + "include": "#double-three-regexp-lookbehind-negative" + }, + { + "include": "#double-three-regexp-conditional" + }, + { + "include": "#double-three-regexp-parentheses-non-capturing" + }, + { + "include": "#double-three-regexp-parentheses" + }, + { + "include": "#comments-string-double-three" + } + ] + }, + "double-three-regexp-character-set": { + "patterns": [ + { + "match": "(?x)\n \\[ \\^? \\] (?! .*?\\])\n" + }, + { + "name": "meta.character.set.regexp", + "begin": "(\\[)(\\^)?(\\])?", + "end": "(\\]|(?=\"\"\"))", + "beginCaptures": { + "1": { + "name": "punctuation.character.set.begin.regexp constant.other.set.regexp" + }, + "2": { + "name": "keyword.operator.negation.regexp" + }, + "3": { + "name": "constant.character.set.regexp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.character.set.end.regexp constant.other.set.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#regexp-charecter-set-escapes" + }, + { + "name": "constant.character.set.regexp", + "match": "[^\\n]" + } + ] + } + ] + }, + "double-three-regexp-named-group": { + "name": "meta.named.regexp", + "begin": "(?x)\n (\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n", + "end": "(\\)|(?=\"\"\"))", + "beginCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp" + }, + "2": { + "name": "entity.name.tag.named.group.regexp" + } + }, + "endCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-three-regexp-expression" + }, + { + "include": "#comments-string-double-three" + } + ] + }, + "double-three-regexp-comments": { + "name": "comment.regexp", + "begin": "\\(\\?#", + "end": "(\\)|(?=\"\"\"))", + "beginCaptures": { + "0": { + "name": "punctuation.comment.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.comment.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#codetags" + } + ] + }, + "double-three-regexp-lookahead": { + "begin": "(\\()\\?=", + "end": "(\\)|(?=\"\"\"))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookahead.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookahead.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-three-regexp-expression" + }, + { + "include": "#comments-string-double-three" + } + ] + }, + "double-three-regexp-lookahead-negative": { + "begin": "(\\()\\?!", + "end": "(\\)|(?=\"\"\"))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookahead.negative.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookahead.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-three-regexp-expression" + }, + { + "include": "#comments-string-double-three" + } + ] + }, + "double-three-regexp-lookbehind": { + "begin": "(\\()\\?<=", + "end": "(\\)|(?=\"\"\"))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookbehind.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookbehind.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-three-regexp-expression" + }, + { + "include": "#comments-string-double-three" + } + ] + }, + "double-three-regexp-lookbehind-negative": { + "begin": "(\\()\\?<!", + "end": "(\\)|(?=\"\"\"))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookbehind.negative.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookbehind.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-three-regexp-expression" + }, + { + "include": "#comments-string-double-three" + } + ] + }, + "double-three-regexp-conditional": { + "begin": "(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)", + "end": "(\\)|(?=\"\"\"))", + "beginCaptures": { + "0": { + "name": "keyword.operator.conditional.regexp" + }, + "1": { + "name": "punctuation.parenthesis.conditional.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-three-regexp-expression" + }, + { + "include": "#comments-string-double-three" + } + ] + }, + "double-three-regexp-parentheses-non-capturing": { + "begin": "\\(\\?:", + "end": "(\\)|(?=\"\"\"))", + "beginCaptures": { + "0": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-three-regexp-expression" + }, + { + "include": "#comments-string-double-three" + } + ] + }, + "double-three-regexp-parentheses": { + "begin": "\\(", + "end": "(\\)|(?=\"\"\"))", + "beginCaptures": { + "0": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-three-regexp-expression" + }, + { + "include": "#comments-string-double-three" + } + ] + }, + "regexp-single-one-line": { + "name": "string.regexp.quoted.single.python", + "begin": "\\b(([uU]r)|([bB]r)|(r[bB]?))(\\')", + "end": "(\\')|(?<!\\\\)(\\n)", + "beginCaptures": { + "2": { + "name": "invalid.deprecated.prefix.python" + }, + "3": { + "name": "storage.type.string.python" + }, + "4": { + "name": "storage.type.string.python" + }, + "5": { + "name": "punctuation.definition.string.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-one-regexp-expression" + } + ] + }, + "regexp-single-three-line": { + "name": "string.regexp.quoted.multi.python", + "begin": "\\b(([uU]r)|([bB]r)|(r[bB]?))(\\'\\'\\')", + "end": "(\\'\\'\\')", + "beginCaptures": { + "2": { + "name": "invalid.deprecated.prefix.python" + }, + "3": { + "name": "storage.type.string.python" + }, + "4": { + "name": "storage.type.string.python" + }, + "5": { + "name": "punctuation.definition.string.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-three-regexp-expression" + } + ] + }, + "regexp-double-one-line": { + "name": "string.regexp.quoted.single.python", + "begin": "\\b(([uU]r)|([bB]r)|(r[bB]?))(\")", + "end": "(\")|(?<!\\\\)(\\n)", + "beginCaptures": { + "2": { + "name": "invalid.deprecated.prefix.python" + }, + "3": { + "name": "storage.type.string.python" + }, + "4": { + "name": "storage.type.string.python" + }, + "5": { + "name": "punctuation.definition.string.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-one-regexp-expression" + } + ] + }, + "regexp-double-three-line": { + "name": "string.regexp.quoted.multi.python", + "begin": "\\b(([uU]r)|([bB]r)|(r[bB]?))(\"\"\")", + "end": "(\"\"\")", + "beginCaptures": { + "2": { + "name": "invalid.deprecated.prefix.python" + }, + "3": { + "name": "storage.type.string.python" + }, + "4": { + "name": "storage.type.string.python" + }, + "5": { + "name": "punctuation.definition.string.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-three-regexp-expression" + } + ] + }, + "single-one-fregexp-expression": { + "patterns": [ + { + "include": "#fregexp-base-expression" + }, + { + "include": "#single-one-regexp-character-set" + }, + { + "include": "#single-one-regexp-comments" + }, + { + "include": "#regexp-flags" + }, + { + "include": "#single-one-regexp-named-group" + }, + { + "include": "#regexp-backreference" + }, + { + "include": "#single-one-fregexp-lookahead" + }, + { + "include": "#single-one-fregexp-lookahead-negative" + }, + { + "include": "#single-one-fregexp-lookbehind" + }, + { + "include": "#single-one-fregexp-lookbehind-negative" + }, + { + "include": "#single-one-fregexp-conditional" + }, + { + "include": "#single-one-fregexp-parentheses-non-capturing" + }, + { + "include": "#single-one-fregexp-parentheses" + } + ] + }, + "single-one-fregexp-named-group": { + "name": "meta.named.regexp", + "begin": "(?x)\n (\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n", + "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp" + }, + "2": { + "name": "entity.name.tag.named.group.regexp" + } + }, + "endCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-one-fregexp-expression" + } + ] + }, + "single-one-fregexp-lookahead": { + "begin": "(\\()\\?=", + "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookahead.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookahead.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-one-fregexp-expression" + } + ] + }, + "single-one-fregexp-lookahead-negative": { + "begin": "(\\()\\?!", + "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookahead.negative.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookahead.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-one-fregexp-expression" + } + ] + }, + "single-one-fregexp-lookbehind": { + "begin": "(\\()\\?<=", + "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookbehind.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookbehind.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-one-fregexp-expression" + } + ] + }, + "single-one-fregexp-lookbehind-negative": { + "begin": "(\\()\\?<!", + "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookbehind.negative.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookbehind.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-one-fregexp-expression" + } + ] + }, + "single-one-fregexp-conditional": { + "begin": "(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)", + "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "keyword.operator.conditional.regexp" + }, + "1": { + "name": "punctuation.parenthesis.conditional.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-one-fregexp-expression" + } + ] + }, + "single-one-fregexp-parentheses-non-capturing": { + "begin": "\\(\\?:", + "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-one-fregexp-expression" + } + ] + }, + "single-one-fregexp-parentheses": { + "begin": "\\(", + "end": "(\\)|(?=\\'))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-one-fregexp-expression" + } + ] + }, + "single-three-fregexp-expression": { + "patterns": [ + { + "include": "#fregexp-base-expression" + }, + { + "include": "#single-three-regexp-character-set" + }, + { + "include": "#single-three-regexp-comments" + }, + { + "include": "#regexp-flags" + }, + { + "include": "#single-three-regexp-named-group" + }, + { + "include": "#regexp-backreference" + }, + { + "include": "#single-three-fregexp-lookahead" + }, + { + "include": "#single-three-fregexp-lookahead-negative" + }, + { + "include": "#single-three-fregexp-lookbehind" + }, + { + "include": "#single-three-fregexp-lookbehind-negative" + }, + { + "include": "#single-three-fregexp-conditional" + }, + { + "include": "#single-three-fregexp-parentheses-non-capturing" + }, + { + "include": "#single-three-fregexp-parentheses" + }, + { + "include": "#comments-string-single-three" + } + ] + }, + "single-three-fregexp-named-group": { + "name": "meta.named.regexp", + "begin": "(?x)\n (\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n", + "end": "(\\)|(?=\\'\\'\\'))", + "beginCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp" + }, + "2": { + "name": "entity.name.tag.named.group.regexp" + } + }, + "endCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-three-fregexp-expression" + }, + { + "include": "#comments-string-single-three" + } + ] + }, + "single-three-fregexp-lookahead": { + "begin": "(\\()\\?=", + "end": "(\\)|(?=\\'\\'\\'))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookahead.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookahead.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-three-fregexp-expression" + }, + { + "include": "#comments-string-single-three" + } + ] + }, + "single-three-fregexp-lookahead-negative": { + "begin": "(\\()\\?!", + "end": "(\\)|(?=\\'\\'\\'))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookahead.negative.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookahead.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-three-fregexp-expression" + }, + { + "include": "#comments-string-single-three" + } + ] + }, + "single-three-fregexp-lookbehind": { + "begin": "(\\()\\?<=", + "end": "(\\)|(?=\\'\\'\\'))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookbehind.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookbehind.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-three-fregexp-expression" + }, + { + "include": "#comments-string-single-three" + } + ] + }, + "single-three-fregexp-lookbehind-negative": { + "begin": "(\\()\\?<!", + "end": "(\\)|(?=\\'\\'\\'))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookbehind.negative.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookbehind.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-three-fregexp-expression" + }, + { + "include": "#comments-string-single-three" + } + ] + }, + "single-three-fregexp-conditional": { + "begin": "(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)", + "end": "(\\)|(?=\\'\\'\\'))", + "beginCaptures": { + "0": { + "name": "keyword.operator.conditional.regexp" + }, + "1": { + "name": "punctuation.parenthesis.conditional.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-three-fregexp-expression" + }, + { + "include": "#comments-string-single-three" + } + ] + }, + "single-three-fregexp-parentheses-non-capturing": { + "begin": "\\(\\?:", + "end": "(\\)|(?=\\'\\'\\'))", + "beginCaptures": { + "0": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-three-fregexp-expression" + }, + { + "include": "#comments-string-single-three" + } + ] + }, + "single-three-fregexp-parentheses": { + "begin": "\\(", + "end": "(\\)|(?=\\'\\'\\'))", + "beginCaptures": { + "0": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-three-fregexp-expression" + }, + { + "include": "#comments-string-single-three" + } + ] + }, + "double-one-fregexp-expression": { + "patterns": [ + { + "include": "#fregexp-base-expression" + }, + { + "include": "#double-one-regexp-character-set" + }, + { + "include": "#double-one-regexp-comments" + }, + { + "include": "#regexp-flags" + }, + { + "include": "#double-one-regexp-named-group" + }, + { + "include": "#regexp-backreference" + }, + { + "include": "#double-one-fregexp-lookahead" + }, + { + "include": "#double-one-fregexp-lookahead-negative" + }, + { + "include": "#double-one-fregexp-lookbehind" + }, + { + "include": "#double-one-fregexp-lookbehind-negative" + }, + { + "include": "#double-one-fregexp-conditional" + }, + { + "include": "#double-one-fregexp-parentheses-non-capturing" + }, + { + "include": "#double-one-fregexp-parentheses" + } + ] + }, + "double-one-fregexp-named-group": { + "name": "meta.named.regexp", + "begin": "(?x)\n (\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n", + "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp" + }, + "2": { + "name": "entity.name.tag.named.group.regexp" + } + }, + "endCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-one-fregexp-expression" + } + ] + }, + "double-one-fregexp-lookahead": { + "begin": "(\\()\\?=", + "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookahead.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookahead.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-one-fregexp-expression" + } + ] + }, + "double-one-fregexp-lookahead-negative": { + "begin": "(\\()\\?!", + "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookahead.negative.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookahead.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-one-fregexp-expression" + } + ] + }, + "double-one-fregexp-lookbehind": { + "begin": "(\\()\\?<=", + "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookbehind.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookbehind.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-one-fregexp-expression" + } + ] + }, + "double-one-fregexp-lookbehind-negative": { + "begin": "(\\()\\?<!", + "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookbehind.negative.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookbehind.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-one-fregexp-expression" + } + ] + }, + "double-one-fregexp-conditional": { + "begin": "(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)", + "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "keyword.operator.conditional.regexp" + }, + "1": { + "name": "punctuation.parenthesis.conditional.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-one-fregexp-expression" + } + ] + }, + "double-one-fregexp-parentheses-non-capturing": { + "begin": "\\(\\?:", + "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-one-fregexp-expression" + } + ] + }, + "double-one-fregexp-parentheses": { + "begin": "\\(", + "end": "(\\)|(?=\"))|((?=(?<!\\\\)\\n))", + "beginCaptures": { + "0": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-one-fregexp-expression" + } + ] + }, + "double-three-fregexp-expression": { + "patterns": [ + { + "include": "#fregexp-base-expression" + }, + { + "include": "#double-three-regexp-character-set" + }, + { + "include": "#double-three-regexp-comments" + }, + { + "include": "#regexp-flags" + }, + { + "include": "#double-three-regexp-named-group" + }, + { + "include": "#regexp-backreference" + }, + { + "include": "#double-three-fregexp-lookahead" + }, + { + "include": "#double-three-fregexp-lookahead-negative" + }, + { + "include": "#double-three-fregexp-lookbehind" + }, + { + "include": "#double-three-fregexp-lookbehind-negative" + }, + { + "include": "#double-three-fregexp-conditional" + }, + { + "include": "#double-three-fregexp-parentheses-non-capturing" + }, + { + "include": "#double-three-fregexp-parentheses" + }, + { + "include": "#comments-string-double-three" + } + ] + }, + "double-three-fregexp-named-group": { + "name": "meta.named.regexp", + "begin": "(?x)\n (\\() (\\?P <\\w+(?:\\s+[[:alnum:]]+)?>)\n", + "end": "(\\)|(?=\"\"\"))", + "beginCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.begin.regexp" + }, + "2": { + "name": "entity.name.tag.named.group.regexp" + } + }, + "endCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.named.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-three-fregexp-expression" + }, + { + "include": "#comments-string-double-three" + } + ] + }, + "double-three-fregexp-lookahead": { + "begin": "(\\()\\?=", + "end": "(\\)|(?=\"\"\"))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookahead.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookahead.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookahead.regexp punctuation.parenthesis.lookahead.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-three-fregexp-expression" + }, + { + "include": "#comments-string-double-three" + } + ] + }, + "double-three-fregexp-lookahead-negative": { + "begin": "(\\()\\?!", + "end": "(\\)|(?=\"\"\"))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookahead.negative.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookahead.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookahead.negative.regexp punctuation.parenthesis.lookahead.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-three-fregexp-expression" + }, + { + "include": "#comments-string-double-three" + } + ] + }, + "double-three-fregexp-lookbehind": { + "begin": "(\\()\\?<=", + "end": "(\\)|(?=\"\"\"))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookbehind.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookbehind.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookbehind.regexp punctuation.parenthesis.lookbehind.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-three-fregexp-expression" + }, + { + "include": "#comments-string-double-three" + } + ] + }, + "double-three-fregexp-lookbehind-negative": { + "begin": "(\\()\\?<!", + "end": "(\\)|(?=\"\"\"))", + "beginCaptures": { + "0": { + "name": "keyword.operator.lookbehind.negative.regexp" + }, + "1": { + "name": "punctuation.parenthesis.lookbehind.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.lookbehind.negative.regexp punctuation.parenthesis.lookbehind.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-three-fregexp-expression" + }, + { + "include": "#comments-string-double-three" + } + ] + }, + "double-three-fregexp-conditional": { + "begin": "(\\()\\?\\((\\w+(?:\\s+[[:alnum:]]+)?|\\d+)\\)", + "end": "(\\)|(?=\"\"\"))", + "beginCaptures": { + "0": { + "name": "keyword.operator.conditional.regexp" + }, + "1": { + "name": "punctuation.parenthesis.conditional.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "keyword.operator.conditional.negative.regexp punctuation.parenthesis.conditional.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-three-fregexp-expression" + }, + { + "include": "#comments-string-double-three" + } + ] + }, + "double-three-fregexp-parentheses-non-capturing": { + "begin": "\\(\\?:", + "end": "(\\)|(?=\"\"\"))", + "beginCaptures": { + "0": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.non-capturing.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-three-fregexp-expression" + }, + { + "include": "#comments-string-double-three" + } + ] + }, + "double-three-fregexp-parentheses": { + "begin": "\\(", + "end": "(\\)|(?=\"\"\"))", + "beginCaptures": { + "0": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.begin.regexp" + } + }, + "endCaptures": { + "1": { + "name": "support.other.parenthesis.regexp punctuation.parenthesis.end.regexp" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-three-fregexp-expression" + }, + { + "include": "#comments-string-double-three" + } + ] + }, + "fregexp-single-one-line": { + "name": "string.interpolated.python string.regexp.quoted.single.python", + "begin": "\\b(([uU]r)|([fF]r)|(r[fF]?))(\\')", + "end": "(\\')|(?<!\\\\)(\\n)", + "beginCaptures": { + "2": { + "name": "invalid.deprecated.prefix.python" + }, + "3": { + "name": "storage.type.string.python" + }, + "4": { + "name": "storage.type.string.python" + }, + "5": { + "name": "punctuation.definition.string.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-one-fregexp-expression" + } + ] + }, + "fregexp-single-three-line": { + "name": "string.interpolated.python string.regexp.quoted.multi.python", + "begin": "\\b(([uU]r)|([fF]r)|(r[fF]?))(\\'\\'\\')", + "end": "(\\'\\'\\')", + "beginCaptures": { + "2": { + "name": "invalid.deprecated.prefix.python" + }, + "3": { + "name": "storage.type.string.python" + }, + "4": { + "name": "storage.type.string.python" + }, + "5": { + "name": "punctuation.definition.string.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#single-three-fregexp-expression" + } + ] + }, + "fregexp-double-one-line": { + "name": "string.interpolated.python string.regexp.quoted.single.python", + "begin": "\\b(([uU]r)|([fF]r)|(r[fF]?))(\")", + "end": "(\")|(?<!\\\\)(\\n)", + "beginCaptures": { + "2": { + "name": "invalid.deprecated.prefix.python" + }, + "3": { + "name": "storage.type.string.python" + }, + "4": { + "name": "storage.type.string.python" + }, + "5": { + "name": "punctuation.definition.string.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-one-fregexp-expression" + } + ] + }, + "fregexp-double-three-line": { + "name": "string.interpolated.python string.regexp.quoted.multi.python", + "begin": "\\b(([uU]r)|([fF]r)|(r[fF]?))(\"\"\")", + "end": "(\"\"\")", + "beginCaptures": { + "2": { + "name": "invalid.deprecated.prefix.python" + }, + "3": { + "name": "storage.type.string.python" + }, + "4": { + "name": "storage.type.string.python" + }, + "5": { + "name": "punctuation.definition.string.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#double-three-fregexp-expression" + } + ] + }, + "string-raw-quoted-single-line": { + "name": "string.quoted.raw.single.python", + "begin": "\\b(([uU]R)|(R))((['\"]))", + "end": "(\\4)|((?<!\\\\)\\n)", + "beginCaptures": { + "2": { + "name": "invalid.deprecated.prefix.python" + }, + "3": { + "name": "storage.type.string.python" + }, + "4": { + "name": "punctuation.definition.string.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#string-single-bad-brace1-formatting-raw" + }, + { + "include": "#string-single-bad-brace2-formatting-raw" + }, + { + "include": "#string-raw-guts" + } + ] + }, + "string-bin-quoted-single-line": { + "name": "string.quoted.binary.single.python", + "begin": "(\\b[bB])((['\"]))", + "end": "(\\2)|((?<!\\\\)\\n)", + "beginCaptures": { + "1": { + "name": "storage.type.string.python" + }, + "2": { + "name": "punctuation.definition.string.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#string-entity" + } + ] + }, + "string-raw-bin-quoted-single-line": { + "name": "string.quoted.raw.binary.single.python", + "begin": "(\\b(?:R[bB]|[bB]R))((['\"]))", + "end": "(\\2)|((?<!\\\\)\\n)", + "beginCaptures": { + "1": { + "name": "storage.type.string.python" + }, + "2": { + "name": "punctuation.definition.string.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#string-raw-bin-guts" + } + ] + }, + "string-quoted-single-line": { + "name": "string.quoted.single.python", + "begin": "(?:\\b([rR])(?=[uU]))?([uU])?((['\"]))", + "end": "(\\3)|((?<!\\\\)\\n)", + "beginCaptures": { + "1": { + "name": "invalid.illegal.prefix.python" + }, + "2": { + "name": "storage.type.string.python" + }, + "3": { + "name": "punctuation.definition.string.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#string-single-bad-brace1-formatting-unicode" + }, + { + "include": "#string-single-bad-brace2-formatting-unicode" + }, + { + "include": "#string-unicode-guts" + } + ] + }, + "string-single-bad-brace1-formatting-unicode": { + "comment": "template using {% ... %}", + "begin": "(?x)\n (?= \\{%\n ( .*? (?!(['\"])|((?<!\\\\)\\n)) )\n %\\}\n )\n", + "end": "(?=(['\"])|((?<!\\\\)\\n))", + "patterns": [ + { + "include": "#escape-sequence-unicode" + }, + { + "include": "#escape-sequence" + }, + { + "include": "#string-line-continuation" + } + ] + }, + "string-single-bad-brace1-formatting-raw": { + "comment": "template using {% ... %}", + "begin": "(?x)\n (?= \\{%\n ( .*? (?!(['\"])|((?<!\\\\)\\n)) )\n %\\}\n )\n", + "end": "(?=(['\"])|((?<!\\\\)\\n))", + "patterns": [ + { + "include": "#string-consume-escape" + } + ] + }, + "string-single-bad-brace2-formatting-unicode": { + "comment": "odd format or format-like syntax", + "begin": "(?x)\n (?!\\{\\{)\n (?= \\{ (\n \\w*? (?!(['\"])|((?<!\\\\)\\n)) [^!:\\.\\[}\\w]\n )\n .*?(?!(['\"])|((?<!\\\\)\\n))\n \\}\n )\n", + "end": "(?=(['\"])|((?<!\\\\)\\n))", + "patterns": [ + { + "include": "#escape-sequence-unicode" + }, + { + "include": "#string-entity" + } + ] + }, + "string-single-bad-brace2-formatting-raw": { + "comment": "odd format or format-like syntax", + "begin": "(?x)\n (?!\\{\\{)\n (?= \\{ (\n \\w*? (?!(['\"])|((?<!\\\\)\\n)) [^!:\\.\\[}\\w]\n )\n .*?(?!(['\"])|((?<!\\\\)\\n))\n \\}\n )\n", + "end": "(?=(['\"])|((?<!\\\\)\\n))", + "patterns": [ + { + "include": "#string-consume-escape" + }, + { + "include": "#string-formatting" + } + ] + }, + "string-raw-quoted-multi-line": { + "name": "string.quoted.raw.multi.python", + "begin": "\\b(([uU]R)|(R))('''|\"\"\")", + "end": "(\\4)", + "beginCaptures": { + "2": { + "name": "invalid.deprecated.prefix.python" + }, + "3": { + "name": "storage.type.string.python" + }, + "4": { + "name": "punctuation.definition.string.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#string-multi-bad-brace1-formatting-raw" + }, + { + "include": "#string-multi-bad-brace2-formatting-raw" + }, + { + "include": "#string-raw-guts" + } + ] + }, + "string-bin-quoted-multi-line": { + "name": "string.quoted.binary.multi.python", + "begin": "(\\b[bB])('''|\"\"\")", + "end": "(\\2)", + "beginCaptures": { + "1": { + "name": "storage.type.string.python" + }, + "2": { + "name": "punctuation.definition.string.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#string-entity" + } + ] + }, + "string-raw-bin-quoted-multi-line": { + "name": "string.quoted.raw.binary.multi.python", + "begin": "(\\b(?:R[bB]|[bB]R))('''|\"\"\")", + "end": "(\\2)", + "beginCaptures": { + "1": { + "name": "storage.type.string.python" + }, + "2": { + "name": "punctuation.definition.string.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#string-raw-bin-guts" + } + ] + }, + "string-quoted-multi-line": { + "name": "string.quoted.multi.python", + "begin": "(?:\\b([rR])(?=[uU]))?([uU])?('''|\"\"\")", + "end": "(\\3)", + "beginCaptures": { + "1": { + "name": "invalid.illegal.prefix.python" + }, + "2": { + "name": "storage.type.string.python" + }, + "3": { + "name": "punctuation.definition.string.begin.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#string-multi-bad-brace1-formatting-unicode" + }, + { + "include": "#string-multi-bad-brace2-formatting-unicode" + }, + { + "include": "#string-unicode-guts" + } + ] + }, + "string-multi-bad-brace1-formatting-unicode": { + "comment": "template using {% ... %}", + "begin": "(?x)\n (?= \\{%\n ( .*? (?!'''|\"\"\") )\n %\\}\n )\n", + "end": "(?='''|\"\"\")", + "patterns": [ + { + "include": "#escape-sequence-unicode" + }, + { + "include": "#escape-sequence" + }, + { + "include": "#string-line-continuation" + } + ] + }, + "string-multi-bad-brace1-formatting-raw": { + "comment": "template using {% ... %}", + "begin": "(?x)\n (?= \\{%\n ( .*? (?!'''|\"\"\") )\n %\\}\n )\n", + "end": "(?='''|\"\"\")", + "patterns": [ + { + "include": "#string-consume-escape" + } + ] + }, + "string-multi-bad-brace2-formatting-unicode": { + "comment": "odd format or format-like syntax", + "begin": "(?x)\n (?!\\{\\{)\n (?= \\{ (\n \\w*? (?!'''|\"\"\") [^!:\\.\\[}\\w]\n )\n .*?(?!'''|\"\"\")\n \\}\n )\n", + "end": "(?='''|\"\"\")", + "patterns": [ + { + "include": "#escape-sequence-unicode" + }, + { + "include": "#string-entity" + } + ] + }, + "string-multi-bad-brace2-formatting-raw": { + "comment": "odd format or format-like syntax", + "begin": "(?x)\n (?!\\{\\{)\n (?= \\{ (\n \\w*? (?!'''|\"\"\") [^!:\\.\\[}\\w]\n )\n .*?(?!'''|\"\"\")\n \\}\n )\n", + "end": "(?='''|\"\"\")", + "patterns": [ + { + "include": "#string-consume-escape" + }, + { + "include": "#string-formatting" + } + ] + }, + "fstring-fnorm-quoted-single-line": { + "name": "meta.fstring.python", + "begin": "(\\b[fF])([bBuU])?((['\"]))", + "end": "(\\3)|((?<!\\\\)\\n)", + "beginCaptures": { + "1": { + "name": "string.interpolated.python string.quoted.single.python storage.type.string.python" + }, + "2": { + "name": "invalid.illegal.prefix.python" + }, + "3": { + "name": "punctuation.definition.string.begin.python string.interpolated.python string.quoted.single.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python string.interpolated.python string.quoted.single.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#fstring-guts" + }, + { + "include": "#fstring-illegal-single-brace" + }, + { + "include": "#fstring-single-brace" + }, + { + "include": "#fstring-single-core" + } + ] + }, + "fstring-normf-quoted-single-line": { + "name": "meta.fstring.python", + "begin": "(\\b[bBuU])([fF])((['\"]))", + "end": "(\\3)|((?<!\\\\)\\n)", + "beginCaptures": { + "1": { + "name": "invalid.illegal.prefix.python" + }, + "2": { + "name": "string.interpolated.python string.quoted.single.python storage.type.string.python" + }, + "3": { + "name": "punctuation.definition.string.begin.python string.quoted.single.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python string.interpolated.python string.quoted.single.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#fstring-guts" + }, + { + "include": "#fstring-illegal-single-brace" + }, + { + "include": "#fstring-single-brace" + }, + { + "include": "#fstring-single-core" + } + ] + }, + "fstring-raw-quoted-single-line": { + "name": "meta.fstring.python", + "begin": "(\\b(?:[R][fF]|[fF][R]))((['\"]))", + "end": "(\\2)|((?<!\\\\)\\n)", + "beginCaptures": { + "1": { + "name": "string.interpolated.python string.quoted.raw.single.python storage.type.string.python" + }, + "2": { + "name": "punctuation.definition.string.begin.python string.quoted.raw.single.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python string.interpolated.python string.quoted.raw.single.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#fstring-raw-guts" + }, + { + "include": "#fstring-illegal-single-brace" + }, + { + "include": "#fstring-single-brace" + }, + { + "include": "#fstring-raw-single-core" + } + ] + }, + "fstring-single-core": { + "name": "string.interpolated.python string.quoted.single.python", + "match": "(?x)\n (.+?)\n (\n (?# .* and .*? in multi-line match need special handling of\n newlines otherwise SublimeText and Atom will match slightly\n differently.\n\n The guard for newlines has to be separate from the\n lookahead because of special $ matching rule.)\n ($\\n?)\n |\n (?=[\\\\\\}\\{]|(['\"])|((?<!\\\\)\\n))\n )\n (?# due to how multiline regexps are matched we need a special case\n for matching a newline character)\n | \\n\n" + }, + "fstring-raw-single-core": { + "name": "string.interpolated.python string.quoted.raw.single.python", + "match": "(?x)\n (.+?)\n (\n (?# .* and .*? in multi-line match need special handling of\n newlines otherwise SublimeText and Atom will match slightly\n differently.\n\n The guard for newlines has to be separate from the\n lookahead because of special $ matching rule.)\n ($\\n?)\n |\n (?=[\\\\\\}\\{]|(['\"])|((?<!\\\\)\\n))\n )\n (?# due to how multiline regexps are matched we need a special case\n for matching a newline character)\n | \\n\n" + }, + "fstring-single-brace": { + "comment": "value interpolation using { ... }", + "begin": "(\\{)", + "end": "(?x)\n (\\})|(?=\\n)\n", + "beginCaptures": { + "1": { + "name": "constant.character.format.placeholder.other.python" + } + }, + "endCaptures": { + "1": { + "name": "constant.character.format.placeholder.other.python" + } + }, + "patterns": [ + { + "include": "#fstring-terminator-single" + }, + { + "include": "#f-expression" + } + ] + }, + "fstring-terminator-single": { + "patterns": [ + { + "name": "storage.type.format.python", + "match": "(![rsa])(?=})" + }, + { + "match": "(?x)\n (![rsa])?\n ( : \\w? [<>=^]? [-+ ]? \\#?\n \\d* ,? (\\.\\d+)? [bcdeEfFgGnosxX%]? )(?=})\n", + "captures": { + "1": { + "name": "storage.type.format.python" + }, + "2": { + "name": "storage.type.format.python" + } + } + }, + { + "include": "#fstring-terminator-single-tail" + } + ] + }, + "fstring-terminator-single-tail": { + "begin": "(![rsa])?(:)(?=.*?{)", + "end": "(?=})|(?=\\n)", + "beginCaptures": { + "1": { + "name": "storage.type.format.python" + }, + "2": { + "name": "storage.type.format.python" + } + }, + "patterns": [ + { + "include": "#fstring-illegal-single-brace" + }, + { + "include": "#fstring-single-brace" + }, + { + "name": "storage.type.format.python", + "match": "([bcdeEfFgGnosxX%])(?=})" + }, + { + "name": "storage.type.format.python", + "match": "(\\.\\d+)" + }, + { + "name": "storage.type.format.python", + "match": "(,)" + }, + { + "name": "storage.type.format.python", + "match": "(\\d+)" + }, + { + "name": "storage.type.format.python", + "match": "(\\#)" + }, + { + "name": "storage.type.format.python", + "match": "([-+ ])" + }, + { + "name": "storage.type.format.python", + "match": "([<>=^])" + }, + { + "name": "storage.type.format.python", + "match": "(\\w)" + } + ] + }, + "fstring-fnorm-quoted-multi-line": { + "name": "meta.fstring.python", + "begin": "(\\b[fF])([bBuU])?('''|\"\"\")", + "end": "(\\3)", + "beginCaptures": { + "1": { + "name": "string.interpolated.python string.quoted.multi.python storage.type.string.python" + }, + "2": { + "name": "invalid.illegal.prefix.python" + }, + "3": { + "name": "punctuation.definition.string.begin.python string.interpolated.python string.quoted.multi.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python string.interpolated.python string.quoted.multi.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#fstring-guts" + }, + { + "include": "#fstring-illegal-multi-brace" + }, + { + "include": "#fstring-multi-brace" + }, + { + "include": "#fstring-multi-core" + } + ] + }, + "fstring-normf-quoted-multi-line": { + "name": "meta.fstring.python", + "begin": "(\\b[bBuU])([fF])('''|\"\"\")", + "end": "(\\3)", + "beginCaptures": { + "1": { + "name": "invalid.illegal.prefix.python" + }, + "2": { + "name": "string.interpolated.python string.quoted.multi.python storage.type.string.python" + }, + "3": { + "name": "punctuation.definition.string.begin.python string.quoted.multi.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python string.interpolated.python string.quoted.multi.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#fstring-guts" + }, + { + "include": "#fstring-illegal-multi-brace" + }, + { + "include": "#fstring-multi-brace" + }, + { + "include": "#fstring-multi-core" + } + ] + }, + "fstring-raw-quoted-multi-line": { + "name": "meta.fstring.python", + "begin": "(\\b(?:[R][fF]|[fF][R]))('''|\"\"\")", + "end": "(\\2)", + "beginCaptures": { + "1": { + "name": "string.interpolated.python string.quoted.raw.multi.python storage.type.string.python" + }, + "2": { + "name": "punctuation.definition.string.begin.python string.quoted.raw.multi.python" + } + }, + "endCaptures": { + "1": { + "name": "punctuation.definition.string.end.python string.interpolated.python string.quoted.raw.multi.python" + }, + "2": { + "name": "invalid.illegal.newline.python" + } + }, + "patterns": [ + { + "include": "#fstring-raw-guts" + }, + { + "include": "#fstring-illegal-multi-brace" + }, + { + "include": "#fstring-multi-brace" + }, + { + "include": "#fstring-raw-multi-core" + } + ] + }, + "fstring-multi-core": { + "name": "string.interpolated.python string.quoted.multi.python", + "match": "(?x)\n (.+?)\n (\n (?# .* and .*? in multi-line match need special handling of\n newlines otherwise SublimeText and Atom will match slightly\n differently.\n\n The guard for newlines has to be separate from the\n lookahead because of special $ matching rule.)\n ($\\n?)\n |\n (?=[\\\\\\}\\{]|'''|\"\"\")\n )\n (?# due to how multiline regexps are matched we need a special case\n for matching a newline character)\n | \\n\n" + }, + "fstring-raw-multi-core": { + "name": "string.interpolated.python string.quoted.raw.multi.python", + "match": "(?x)\n (.+?)\n (\n (?# .* and .*? in multi-line match need special handling of\n newlines otherwise SublimeText and Atom will match slightly\n differently.\n\n The guard for newlines has to be separate from the\n lookahead because of special $ matching rule.)\n ($\\n?)\n |\n (?=[\\\\\\}\\{]|'''|\"\"\")\n )\n (?# due to how multiline regexps are matched we need a special case\n for matching a newline character)\n | \\n\n" + }, + "fstring-multi-brace": { + "comment": "value interpolation using { ... }", + "begin": "(\\{)", + "end": "(?x)\n (\\})\n", + "beginCaptures": { + "1": { + "name": "constant.character.format.placeholder.other.python" + } + }, + "endCaptures": { + "1": { + "name": "constant.character.format.placeholder.other.python" + } + }, + "patterns": [ + { + "include": "#fstring-terminator-multi" + }, + { + "include": "#f-expression" + } + ] + }, + "fstring-terminator-multi": { + "patterns": [ + { + "name": "storage.type.format.python", + "match": "(![rsa])(?=})" + }, + { + "match": "(?x)\n (![rsa])?\n ( : \\w? [<>=^]? [-+ ]? \\#?\n \\d* ,? (\\.\\d+)? [bcdeEfFgGnosxX%]? )(?=})\n", + "captures": { + "1": { + "name": "storage.type.format.python" + }, + "2": { + "name": "storage.type.format.python" + } + } + }, + { + "include": "#fstring-terminator-multi-tail" + } + ] + }, + "fstring-terminator-multi-tail": { + "begin": "(![rsa])?(:)(?=.*?{)", + "end": "(?=})", + "beginCaptures": { + "1": { + "name": "storage.type.format.python" + }, + "2": { + "name": "storage.type.format.python" + } + }, + "patterns": [ + { + "include": "#fstring-illegal-multi-brace" + }, + { + "include": "#fstring-multi-brace" + }, + { + "name": "storage.type.format.python", + "match": "([bcdeEfFgGnosxX%])(?=})" + }, + { + "name": "storage.type.format.python", + "match": "(\\.\\d+)" + }, + { + "name": "storage.type.format.python", + "match": "(,)" + }, + { + "name": "storage.type.format.python", + "match": "(\\d+)" + }, + { + "name": "storage.type.format.python", + "match": "(\\#)" + }, + { + "name": "storage.type.format.python", + "match": "([-+ ])" + }, + { + "name": "storage.type.format.python", + "match": "([<>=^])" + }, + { + "name": "storage.type.format.python", + "match": "(\\w)" + } + ] + }, + "special-variables-types": { + "patterns": [ + { + "name": "variable.language.special.log.vyper", + "match": "(?x)\n (?<!\\.) \\b(\n log )\\b\n" + }, + { + "name": "variable.language.special.msg.vyper", + "match": "(?x)\n (?<!\\.) \\b(\n msg )\\b\n" + }, + { + "name": "variable.language.special.block.vyper", + "match": "(?x)\n (?<!\\.) \\b(\n block )\\b\n" + } + ] + }, + "reserved-names-vyper": { + "name": "name.reserved.vyper", + "match": "(?x)\n \\b (finney | gwei | range | def | ____init____ | timedelta | babbage | zero_address | raise | external | empty_bytes32 | assert | continue | wei | ada | min_int256 | min_int128 | chainid | max_decimal | default | indexed | selfdestruct | lovelace | immutable | throw | kwei | max_int128 | while | constant | ___default___ | balance | twei | codesize | false | max_int256 | _default_ | init | mwei | if | ____default____ | true | payable | internal | until | this | nonpayable | pass | public | nonreentrant | blockhash | max_uint256 | shannon | none | units | _init_ | ___init___ | is_contract | for | zero_wei | min_decimal | szabo | timestamp | ether | pwei | send) \\b\n" + } + } +} diff --git a/docs/shiki/languages/wasm.tmLanguage.json b/docs/shiki/languages/wasm.tmLanguage.json new file mode 100644 index 00000000..882bdb71 --- /dev/null +++ b/docs/shiki/languages/wasm.tmLanguage.json @@ -0,0 +1,830 @@ +{ + "name": "wasm", + "scopeName": "source.wat", + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#strings" + }, + { + "include": "#instructions" + }, + { + "include": "#types" + }, + { + "include": "#modules" + }, + { + "include": "#constants" + }, + { + "include": "#invalid" + } + ], + "repository": { + "comments": { + "patterns": [ + { + "comment": "Line comment", + "name": "comment.line.wat", + "match": "(;;).*$", + "captures": { + "1": { + "name": "punctuation.definition.comment.wat" + } + } + }, + { + "comment": "Block comment", + "name": "comment.block.wat", + "begin": "\\(;", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.wat" + } + }, + "end": ";\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.wat" + } + } + } + ] + }, + "strings": { + "comment": "String literal", + "name": "string.quoted.double.wat", + "begin": "\"", + "end": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin" + } + }, + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end" + } + }, + "patterns": [ + { + "name": "constant.character.escape.wat", + "match": "\\\\(n|t|\\\\|'|\"|[0-9a-fA-F]{2})" + } + ] + }, + "instructions": { + "patterns": [ + { + "comment": "Non-trapping float-to-int conversions", + "patterns": [ + { + "comment": "Conversion instruction [nontrapping-float-to-int-conversions]", + "name": "keyword.operator.word.wat", + "match": "\\b(i32|i64)\\.trunc_sat_f(?:32|64)_[su]\\b", + "captures": { + "1": { + "name": "support.class.wat" + } + } + } + ] + }, + { + "comment": "Sign-extension operators", + "patterns": [ + { + "comment": "Numeric instruction (i32) [sign-extension-ops]", + "name": "keyword.operator.word.wat", + "match": "\\b(i32)\\.(?:extend(?:8|16)_s)\\b", + "captures": { + "1": { + "name": "support.class.wat" + } + } + }, + { + "comment": "Numeric instruction (i64) [sign-extension-ops]", + "name": "keyword.operator.word.wat", + "match": "\\b(i64)\\.(?:extend(?:8|16|32)_s)\\b", + "captures": { + "1": { + "name": "support.class.wat" + } + } + } + ] + }, + { + "comment": "Bulk memory operations", + "patterns": [ + { + "comment": "Memory instruction [bulk-memory-operations]", + "name": "keyword.operator.word.wat", + "match": "\\b(memory)\\.(?:copy|fill|init|drop)\\b", + "captures": { + "1": { + "name": "support.class.wat" + } + } + } + ] + }, + { + "comment": "Fixed-width SIMD", + "patterns": [ + { + "comment": "Vector instruction (v128) [simd]", + "name": "keyword.operator.word.wat", + "match": "\\b(v128)\\.(?:const|and|or|xor|not|andnot|bitselect|load|store)\\b", + "captures": { + "1": { + "name": "support.class.wat" + } + } + }, + { + "comment": "Vector instruction (i8x16) [simd]", + "name": "keyword.operator.word.wat", + "match": "\\b(i8x16)\\.(?:splat|replace_lane|add|sub|mul|neg|shl|shr_[su]|eq|ne|lt_[su]|le_[su]|gt_[su]|ge_[su]|min_[su]|max_[su]|any_true|all_true|extract_lane_[su]|add_saturate_[su]|sub_saturate_[su]|avgr_u|narrow_i16x8_[su])\\b", + "captures": { + "1": { + "name": "support.class.wat" + } + } + }, + { + "comment": "Vector instruction (i16x8) [simd]", + "name": "keyword.operator.word.wat", + "match": "\\b(i16x8)\\.(?:splat|replace_lane|add|sub|mul|neg|shl|shr_[su]|eq|ne|lt_[su]|le_[su]|gt_[su]|ge_[su]|min_[su]|max_[su]|any_true|all_true|extract_lane_[su]|add_saturate_[su]|sub_saturate_[su]|avgr_u|load8x8_[su]|narrow_i32x4_[su]|widen_(low|high)_i8x16_[su])\\b", + "captures": { + "1": { + "name": "support.class.wat" + } + } + }, + { + "comment": "Vector instruction (i32x4) [simd]", + "name": "keyword.operator.word.wat", + "match": "\\b(i32x4)\\.(?:splat|replace_lane|add|sub|mul|neg|shl|shr_[su]|eq|ne|lt_[su]|le_[su]|gt_[su]|ge_[su]|min_[su]|max_[su]|any_true|all_true|extract_lane|load16x4_[su]|trunc_sat_f32x4_[su]|widen_(low|high)_i16x8_[su])\\b", + "captures": { + "1": { + "name": "support.class.wat" + } + } + }, + { + "comment": "Vector instruction (i64x2) [simd]", + "name": "keyword.operator.word.wat", + "match": "\\b(i64x2)\\.(?:splat|replace_lane|add|sub|mul|neg|shl|shr_[su]|extract_lane|load32x2_[su])\\b", + "captures": { + "1": { + "name": "support.class.wat" + } + } + }, + { + "comment": "Vector instruction (f32x4) [simd]", + "name": "keyword.operator.word.wat", + "match": "\\b(f32x4)\\.(?:splat|replace_lane|add|sub|mul|neg|extract_lane|eq|ne|lt|le|gt|ge|abs|min|max|div|sqrt|convert_i32x4_[su])\\b", + "captures": { + "1": { + "name": "support.class.wat" + } + } + }, + { + "comment": "Vector instruction (f64x2) [simd]", + "name": "keyword.operator.word.wat", + "match": "\\b(f64x2)\\.(?:splat|replace_lane|add|sub|mul|neg|extract_lane|eq|ne|lt|le|gt|ge|abs|min|max|div|sqrt)\\b", + "captures": { + "1": { + "name": "support.class.wat" + } + } + }, + { + "comment": "Vector instruction (v8x16) [simd]", + "name": "keyword.operator.word.wat", + "match": "\\b(v8x16)\\.(?:load_splat|shuffle|swizzle)\\b", + "captures": { + "1": { + "name": "support.class.wat" + } + } + }, + { + "comment": "Vector instruction (v16x8) [simd]", + "name": "keyword.operator.word.wat", + "match": "\\b(v16x8)\\.load_splat\\b", + "captures": { + "1": { + "name": "support.class.wat" + } + } + }, + { + "comment": "Vector instruction (v32x4) [simd]", + "name": "keyword.operator.word.wat", + "match": "\\b(v32x4)\\.load_splat\\b", + "captures": { + "1": { + "name": "support.class.wat" + } + } + }, + { + "comment": "Vector instruction (v64x2) [simd]", + "name": "keyword.operator.word.wat", + "match": "\\b(v64x2)\\.load_splat\\b", + "captures": { + "1": { + "name": "support.class.wat" + } + } + } + ] + }, + { + "comment": "Threads", + "patterns": [ + { + "comment": "Atomic instruction (i32) [threads]", + "name": "keyword.operator.word.wat", + "match": "\\b(i32)\\.(atomic)\\.(?:load(?:8_u|16_u)?|store(?:8|16)?|wait|(rmw)\\.(?:add|sub|and|or|xor|xchg|cmpxchg)|(rmw8|rmw16)\\.(?:add_u|sub_u|and_u|or_u|xor_u|xchg_u|cmpxchg_u))\\b", + "captures": { + "1": { + "name": "support.class.wat" + }, + "2": { + "name": "support.class.wat" + }, + "3": { + "name": "support.class.wat" + }, + "4": { + "name": "support.class.wat" + } + } + }, + { + "comment": "Atomic instruction (i64) [threads]", + "name": "keyword.operator.word.wat", + "match": "\\b(i64)\\.(atomic)\\.(?:load(?:8_u|16_u|32_u)?|store(?:8|16|32)?|wait|(rmw)\\.(?:add|sub|and|or|xor|xchg|cmpxchg)|(rmw8|rmw16|rmw32)\\.(?:add_u|sub_u|and_u|or_u|xor_u|xchg_u|cmpxchg_u))\\b", + "captures": { + "1": { + "name": "support.class.wat" + }, + "2": { + "name": "support.class.wat" + }, + "3": { + "name": "support.class.wat" + }, + "4": { + "name": "support.class.wat" + } + } + }, + { + "comment": "Atomic instruction [threads]", + "name": "keyword.operator.word.wat", + "match": "\\b(atomic)\\.(?:notify|fence)\\b", + "captures": { + "1": { + "name": "support.class.wat" + } + } + }, + { + "comment": "Shared modifier [threads]", + "name": "storage.modifier.wat", + "match": "\\bshared\\b" + } + ] + }, + { + "comment": "Reference types", + "patterns": [ + { + "comment": "Reference instruction [reference-types]", + "name": "keyword.operator.word.wat", + "match": "\\b(ref)\\.(?:null|is_null|func|extern)\\b", + "captures": { + "1": { + "name": "support.class.wat" + } + } + }, + { + "comment": "Table instruction [reference-types]", + "name": "keyword.operator.word.wat", + "match": "\\b(table)\\.(?:get|size|grow|fill|init|copy)\\b", + "captures": { + "1": { + "name": "support.class.wat" + } + } + }, + { + "comment": "Type name [reference-types]", + "name": "entity.name.type.wat", + "match": "\\b(?:externref|funcref|nullref)\\b" + } + ] + }, + { + "comment": "Tail Call", + "patterns": [ + { + "comment": "Control instruction [tail-call]", + "name": "keyword.control.wat", + "match": "\\breturn_call(?:_indirect)?\\b" + } + ] + }, + { + "comment": "Exception handling", + "patterns": [ + { + "comment": "Control instruction [exception-handling]", + "name": "keyword.control.wat", + "match": "\\b(?:try|catch|throw|rethrow|br_on_exn)\\b" + }, + { + "comment": "Module element [exception-handling]", + "name": "storage.type.wat", + "match": "(?<=\\()event\\b" + } + ] + }, + { + "comment": "Binaryen extensions", + "patterns": [ + { + "comment": "Pseudo stack instruction [binaryen]", + "name": "keyword.operator.word.wat", + "match": "\\b(i32|i64|f32|f64|externref|funcref|nullref|exnref)\\.(?:push|pop)\\b", + "captures": { + "1": { + "name": "support.class.wat" + } + } + } + ] + }, + { + "comment": "MVP", + "patterns": [ + { + "comment": "Memory instruction (i32) [mvp]", + "name": "keyword.operator.word.wat", + "match": "\\b(i32)\\.(?:load|load(?:8|16)(?:_[su])?|store(?:8|16)?)\\b", + "captures": { + "1": { + "name": "support.class.type.wat" + } + } + }, + { + "comment": "Memory instruction (i64) [mvp]", + "name": "keyword.operator.word.wat", + "match": "\\b(i64)\\.(?:load|load(?:8|16|32)(?:_[su])?|store(?:8|16|32)?)\\b", + "captures": { + "1": { + "name": "support.class.type.wat" + } + } + }, + { + "comment": "Memory instruction (f32/f64) [mvp]", + "name": "keyword.operator.word.wat", + "match": "\\b(f32|f64)\\.(?:load|store)\\b", + "captures": { + "1": { + "name": "support.class.type.wat" + } + } + }, + { + "comment": "Memory instruction [mvp]", + "name": "keyword.operator.word.wat", + "match": "\\b(memory)\\.(?:size|grow)\\b", + "captures": { + "1": { + "name": "support.class.memory.wat" + } + } + }, + { + "comment": "Memory instruction attribute [mvp]", + "match": "\\b(offset|align)=\\b", + "captures": { + "1": { + "name": "entity.other.attribute-name.wat" + } + } + }, + { + "comment": "Variable instruction (local) [mvp]", + "name": "keyword.operator.word.wat", + "match": "\\b(local)\\.(?:get|set|tee)\\b", + "captures": { + "1": { + "name": "support.class.local.wat" + } + } + }, + { + "comment": "Variable instruction (global) [mvp]", + "name": "keyword.operator.word.wat", + "match": "\\b(global)\\.(?:get|set)\\b", + "captures": { + "1": { + "name": "support.class.global.wat" + } + } + }, + { + "comment": "Numeric instruction (i32/i64) [mvp]", + "name": "keyword.operator.word.wat", + "match": "\\b(i32|i64)\\.(const|eqz|eq|ne|lt_[su]|gt_[su]|le_[su]|ge_[su]|clz|ctz|popcnt|add|sub|mul|div_[su]|rem_[su]|and|or|xor|shl|shr_[su]|rotl|rotr)\\b", + "captures": { + "1": { + "name": "support.class.type.wat" + } + } + }, + { + "comment": "Numeric instruction (f32/f64) [mvp]", + "name": "keyword.operator.word.wat", + "match": "\\b(f32|f64)\\.(const|eq|ne|lt|gt|le|ge|abs|neg|ceil|floor|trunc|nearest|sqrt|add|sub|mul|div|min|max|copysign)\\b", + "captures": { + "1": { + "name": "support.class.type.wat" + } + } + }, + { + "comment": "Conversion instruction (i32) [mvp]", + "name": "keyword.operator.word.wat", + "match": "\\b(i32)\\.(wrap_i64|trunc_(f32|f64)_[su]|reinterpret_f32)\\b", + "captures": { + "1": { + "name": "support.class.type.wat" + } + } + }, + { + "comment": "Conversion instruction (i64) [mvp]", + "name": "keyword.operator.word.wat", + "match": "\\b(i64)\\.(extend_i32_[su]|trunc_f(32|64)_[su]|reinterpret_f64)\\b", + "captures": { + "1": { + "name": "support.class.type.wat" + } + } + }, + { + "comment": "Conversion instruction (f32) [mvp]", + "name": "keyword.operator.word.wat", + "match": "\\b(f32)\\.(convert_i(32|64)_[su]|demote_f64|reinterpret_i32)\\b", + "captures": { + "1": { + "name": "support.class.type.wat" + } + } + }, + { + "comment": "Conversion instruction (f64) [mvp]", + "name": "keyword.operator.word.wat", + "match": "\\b(f64)\\.(convert_i(32|64)_[su]|promote_f32|reinterpret_i64)\\b", + "captures": { + "1": { + "name": "support.class.type.wat" + } + } + }, + { + "comment": "Control instruction [mvp]", + "name": "keyword.control.wat", + "match": "\\b(?:unreachable|nop|block|loop|if|then|else|end|br|br_if|br_table|return|call|call_indirect)\\b" + }, + { + "comment": "Parametric instruction [mvp]", + "name": "keyword.operator.word.wat", + "match": "\\b(?:drop|select)\\b" + } + ] + }, + { + "comment": "GC Instructions", + "patterns": [ + { + "comment": "Reference Instructions [GC]", + "name": "keyword.operator.word.wat", + "match": "\\b(ref)\\.(?:eq|test|cast)\\b", + "captures": { + "1": { + "name": "support.class.wat" + } + } + }, + { + "comment": "Struct Instructions [GC]", + "name": "keyword.operator.word.wat", + "match": "\\b(struct)\\.(?:new_canon|new_canon_default|get|get_s|get_u|set)\\b", + "captures": { + "1": { + "name": "support.class.wat" + } + } + }, + { + "comment": "Array Instructions [GC]", + "name": "keyword.operator.word.wat", + "match": "\\b(array)\\.(?:new_canon|new_canon_default|get|get_s|get_u|set|len|new_canon_fixed|new_canon_data|new_canon_elem)\\b", + "captures": { + "1": { + "name": "support.class.wat" + } + } + }, + { + "comment": "i31 Instructions [GC]", + "name": "keyword.operator.word.wat", + "match": "\\b(i31)\\.(?:new|get_s|get_u)\\b", + "captures": { + "1": { + "name": "support.class.wat" + } + } + }, + { + "comment": "Branch Instructions [GC]", + "name": "keyword.operator.word.wat", + "match": "\\b(?:br_on_non_null|br_on_cast|br_on_cast_fail)\\b", + "captures": { + "1": { + "name": "support.class.wat" + } + } + }, + { + "comment": "Reference Instructions [GC]", + "name": "keyword.operator.word.wat", + "match": "\\b(extern)\\.(?:internalize|externalize)\\b", + "captures": { + "1": { + "name": "support.class.wat" + } + } + } + ] + } + ] + }, + "types": { + "patterns": [ + { + "comment": "Fixed-width SIMD", + "patterns": [ + { + "comment": "Type name [simd]", + "name": "entity.name.type.wat", + "match": "\\bv128\\b(?!\\.)" + } + ] + }, + { + "comment": "Reference types", + "patterns": [ + { + "comment": "Type name [reference-types]", + "name": "entity.name.type.wat", + "match": "\\b(?:externref|funcref|nullref)\\b(?!\\.)" + } + ] + }, + { + "comment": "Exception handling", + "patterns": [ + { + "comment": "Type name [exception-handling]", + "name": "entity.name.type.wat", + "match": "\\bexnref\\b(?!\\.)" + } + ] + }, + { + "comment": "MVP", + "patterns": [ + { + "comment": "Type name [mvp]", + "name": "entity.name.type.wat", + "match": "\\b(?:i32|i64|f32|f64)\\b(?!\\.)" + } + ] + }, + { + "comment": "GC Types", + "patterns": [ + { + "comment": "Type name [GC]", + "name": "entity.name.type.wat", + "match": "\\b(?:i8|i16|ref|funcref|externref|anyref|eqref|i31ref|nullfuncref|nullexternref|structref|arrayref|nullref)\\b(?!\\.)" + } + ] + }, + { + "comment": "GC Heap Types", + "patterns": [ + { + "comment": "Type name [GC]", + "name": "entity.name.type.wat", + "match": "\\b(?:type|func|extern|any|eq|nofunc|noextern|struct|array|none)\\b(?!\\.)" + } + ] + }, + { + "comment": "GC Structured and sub Types", + "patterns": [ + { + "comment": "Type name [GC]", + "name": "entity.name.type.wat", + "match": "\\b(?:struct|array|sub|final|rec|field|mut)\\b(?!\\.)" + } + ] + } + ] + }, + "modules": { + "patterns": [ + { + "comment": "Bulk memory operations", + "patterns": [ + { + "comment": "Passive modifier [bulk-memory-operations]", + "match": "(?<=\\(data)\\s+(passive)\\b", + "captures": { + "1": { + "name": "storage.modifier.wat" + } + } + } + ] + }, + { + "comment": "MVP", + "patterns": [ + { + "comment": "Module element [mvp]", + "name": "storage.type.wat", + "match": "(?<=\\()(?:module|import|export|memory|data|table|elem|start|func|type|param|result|global|local)\\b" + }, + { + "comment": "Mutable global modifier [mvp]", + "name": "storage.modifier.wat", + "match": "(?<=\\()\\s*(mut)\\b", + "captures": { + "1": { + "name": "storage.modifier.wat" + } + } + }, + { + "comment": "Function name [mvp]", + "match": "(?<=\\(func|\\(start|call|return_call|ref\\.func)\\s+(\\$[0-9A-Za-z!#$%&'*+\\-./:<=>?@\\\\^_`|~]*)", + "captures": { + "1": { + "name": "entity.name.function.wat" + } + } + }, + { + "comment": "Function name(s) (elem) [mvp]", + "begin": "\\)\\s+(\\$[0-9A-Za-z!#$%&'*+\\-./:<=>?@\\\\^_`|~]*)", + "beginCaptures": { + "1": { + "name": "entity.name.function.wat" + } + }, + "end": "\\)", + "patterns": [ + { + "name": "entity.name.function.wat", + "match": "(?<=\\s)\\$[0-9A-Za-z!#$%&'*+\\-./:<=>?@\\\\^_`|~]*" + } + ] + }, + { + "comment": "Function type [mvp]", + "match": "(?<=\\(type)\\s+(\\$[0-9A-Za-z!#$%&'*+\\-./:<=>?@\\\\^_`|~]*)", + "captures": { + "1": { + "name": "support.type.function.wat" + } + } + }, + { + "comment": "Variable name or branch label [mvp]", + "name": "variable.other.wat", + "match": "\\$[0-9A-Za-z!#$%&'*+\\-./:<=>?@\\\\^_`|~]*\\b" + } + ] + } + ] + }, + "constants": { + "patterns": [ + { + "comment": "Fixed-width SIMD", + "patterns": [ + { + "comment": "Vector literal (i8x16) [simd]", + "name": "constant.numeric.vector.wat", + "match": "\\b(i8x16)(?:\\s+0x[0-9a-fA-F]{1,2}){16}\\b", + "captures": { + "1": { + "name": "support.type.wat" + } + } + }, + { + "comment": "Vector literal (i16x8) [simd]", + "name": "constant.numeric.vector.wat", + "match": "\\b(i16x8)(?:\\s+0x[0-9a-fA-F]{1,4}){8}\\b", + "captures": { + "1": { + "name": "support.type.wat" + } + } + }, + { + "comment": "Vector literal (i32x4) [simd]", + "name": "constant.numeric.vector.wat", + "match": "\\b(i32x4)(?:\\s+0x[0-9a-fA-F]{1,8}){4}\\b", + "captures": { + "1": { + "name": "support.type.wat" + } + } + }, + { + "comment": "Vector literal (i64x2) [simd]", + "name": "constant.numeric.vector.wat", + "match": "\\b(i64x2)(?:\\s+0x[0-9a-fA-F]{1,16}){2}\\b", + "captures": { + "1": { + "name": "support.type.wat" + } + } + } + ] + }, + { + "comment": "MVP", + "patterns": [ + { + "comment": "Floating point literal", + "name": "constant.numeric.float.wat", + "match": "[+-]?\\b[0-9][0-9]*(?:\\.[0-9][0-9]*)?(?:[eE][+-]?[0-9]+)?\\b" + }, + { + "comment": "Floating point hexadecimal literal", + "name": "constant.numeric.float.wat", + "match": "[+-]?\\b0x([0-9a-fA-F]*\\.[0-9a-fA-F]+|[0-9a-fA-F]+\\.?)[Pp][+-]?[0-9]+\\b" + }, + { + "comment": "Floating point infinity", + "name": "constant.numeric.float.wat", + "match": "[+-]?\\binf\\b" + }, + { + "comment": "Floating point literal (NaN)", + "name": "constant.numeric.float.wat", + "match": "[+-]?\\bnan:0x[0-9a-fA-F][0-9a-fA-F]*\\b" + }, + { + "comment": "Integer literal", + "name": "constant.numeric.integer.wat", + "match": "[+-]?\\b(?:0x[0-9a-fA-F][0-9a-fA-F]*|\\d[\\d]*)\\b" + } + ] + } + ] + }, + "invalid": { + "patterns": [ + { + "name": "invalid.wat", + "match": "[^\\s()]+" + } + ] + } + } +} diff --git a/docs/shiki/languages/wenyan.tmLanguage.json b/docs/shiki/languages/wenyan.tmLanguage.json new file mode 100644 index 00000000..d2142ae1 --- /dev/null +++ b/docs/shiki/languages/wenyan.tmLanguage.json @@ -0,0 +1,129 @@ +{ + "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", + "scopeName": "source.wenyan", + "name": "wenyan", + "patterns": [ + { + "include": "#keywords" + }, + { + "include": "#constants" + }, + { + "include": "#operators" + }, + { + "include": "#symbols" + }, + { + "include": "#expression" + }, + { + "include": "#comment-blocks" + }, + { + "include": "#comment-lines" + } + ], + "repository": { + "expression": { + "patterns": [ + { + "include": "#variables" + } + ] + }, + "keywords": { + "patterns": [ + { + "name": "storage.type", + "match": "數|列|言|術|爻|物|元" + }, + { + "name": "keyword.control", + "match": "乃行是術曰|若其不然者|乃歸空無|欲行是術|乃止是遍|若其然者|其物如是|乃得矣|之術也|必先得|是術曰|恆為是|之物也|乃得|是謂|云云|中之|為是|乃止|若非|或若|之長|其餘" + }, + { + "name": "keyword.control", + "match": "或云|蓋謂" + }, + { + "name": "keyword.operator", + "match": "中有陽乎|中無陰乎|所餘幾何|不等於|不大於|不小於|等於|大於|小於|加|減|乘|除|變|以|於" + }, + { + "name": "keyword.other", + "match": "不知何禍歟|不復存矣|姑妄行此|如事不諧|名之曰|吾嘗觀|之禍歟|乃作罷|吾有|今有|物之|書之|以施|昔之|是矣|之書|方悟|之義|嗚呼|之禍|有|施|曰|噫|取|今|夫|中|豈" + }, + { + "name": "keyword.control", + "match": "也|凡|遍|若|者|之|充|銜" + } + ] + }, + "comment-lines": { + "name": "comment.line", + "begin": "注曰|疏曰|批曰", + "end": "$", + "patterns": [ + { + "name": "constant.character", + "match": "\\\\." + } + ] + }, + "comment-blocks": { + "name": "comment.block", + "begin": "(注曰|疏曰|批曰)。?(「「|『)", + "end": "(」」|』)", + "patterns": [ + { + "name": "constant.character", + "match": "\\\\." + } + ] + }, + "constants": { + "patterns": [ + { + "name": "constant.numeric", + "match": "負|·|又|零|〇|一|二|三|四|五|六|七|八|九|十|百|千|萬|億|兆|京|垓|秭|穰|溝|澗|正|載|極|分|釐|毫|絲|忽|微|纖|沙|塵|埃|渺|漠" + }, + { + "name": "constant.language", + "match": "其|陰|陽" + }, + { + "name": "string.quoted", + "begin": "「「|『", + "end": "」」|』", + "patterns": [ + { + "name": "constant.character", + "match": "\\\\." + } + ] + } + ] + }, + "symbols": { + "patterns": [ + { + "name": "punctuation.separator", + "match": "。|、" + } + ] + }, + "variables": { + "name": "variable.other", + "begin": "「", + "end": "」", + "patterns": [ + { + "name": "constant.character", + "match": "\\\\." + } + ] + } + } +} diff --git a/docs/shiki/languages/wgsl.tmLanguage.json b/docs/shiki/languages/wgsl.tmLanguage.json new file mode 100644 index 00000000..6297ff72 --- /dev/null +++ b/docs/shiki/languages/wgsl.tmLanguage.json @@ -0,0 +1,390 @@ +{ + "name": "wgsl", + "scopeName": "source.wgsl", + "patterns": [ + { + "include": "#line_comments" + }, + { + "include": "#block_comments" + }, + { + "include": "#keywords" + }, + { + "include": "#attributes" + }, + { + "include": "#functions" + }, + { + "include": "#function_calls" + }, + { + "include": "#constants" + }, + { + "include": "#types" + }, + { + "include": "#variables" + }, + { + "include": "#punctuation" + } + ], + "repository": { + "line_comments": { + "comment": "single line comment", + "name": "comment.line.double-slash.wgsl", + "match": "\\s*//.*" + }, + "block_comments": { + "patterns": [ + { + "comment": "empty block comments", + "name": "comment.block.wgsl", + "match": "/\\*\\*/" + }, + { + "comment": "block documentation comments", + "name": "comment.block.documentation.wgsl", + "begin": "/\\*\\*", + "end": "\\*/", + "patterns": [ + { + "include": "#block_comments" + } + ] + }, + { + "comment": "block comments", + "name": "comment.block.wgsl", + "begin": "/\\*(?!\\*)", + "end": "\\*/", + "patterns": [ + { + "include": "#block_comments" + } + ] + } + ] + }, + "attributes": { + "patterns": [ + { + "comment": "attribute declaration", + "name": "meta.attribute.wgsl", + "match": "(@)([A-Za-z_]+)", + "captures": { + "1": { + "name": "keyword.operator.attribute.at" + }, + "2": { + "name": "entity.name.attribute.wgsl" + } + } + } + ] + }, + "functions": { + "patterns": [ + { + "comment": "function definition", + "name": "meta.function.definition.wgsl", + "begin": "\\b(fn)\\s+([A-Za-z0-9_]+)((\\()|(<))", + "beginCaptures": { + "1": { + "name": "keyword.other.fn.wgsl" + }, + "2": { + "name": "entity.name.function.wgsl" + }, + "4": { + "name": "punctuation.brackets.round.wgsl" + } + }, + "end": "\\{", + "endCaptures": { + "0": { + "name": "punctuation.brackets.curly.wgsl" + } + }, + "patterns": [ + { + "include": "#line_comments" + }, + { + "include": "#block_comments" + }, + { + "include": "#keywords" + }, + { + "include": "#attributes" + }, + { + "include": "#function_calls" + }, + { + "include": "#constants" + }, + { + "include": "#types" + }, + { + "include": "#variables" + }, + { + "include": "#punctuation" + } + ] + } + ] + }, + "function_calls": { + "patterns": [ + { + "comment": "function/method calls", + "name": "meta.function.call.wgsl", + "begin": "([A-Za-z0-9_]+)(\\()", + "beginCaptures": { + "1": { + "name": "entity.name.function.wgsl" + }, + "2": { + "name": "punctuation.brackets.round.wgsl" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.brackets.round.wgsl" + } + }, + "patterns": [ + { + "include": "#line_comments" + }, + { + "include": "#block_comments" + }, + { + "include": "#keywords" + }, + { + "include": "#attributes" + }, + { + "include": "#function_calls" + }, + { + "include": "#constants" + }, + { + "include": "#types" + }, + { + "include": "#variables" + }, + { + "include": "#punctuation" + } + ] + } + ] + }, + "constants": { + "patterns": [ + { + "comment": "decimal float literal", + "name": "constant.numeric.float.wgsl", + "match": "(-?\\b[0-9][0-9]*\\.[0-9][0-9]*)([eE][+-]?[0-9]+)?\\b" + }, + { + "comment": "int literal", + "name": "constant.numeric.decimal.wgsl", + "match": "-?\\b0x[0-9a-fA-F]+\\b|\\b0\\b|-?\\b[1-9][0-9]*\\b" + }, + { + "comment": "uint literal", + "name": "constant.numeric.decimal.wgsl", + "match": "\\b0x[0-9a-fA-F]+u\\b|\\b0u\\b|\\b[1-9][0-9]*u\\b" + }, + { + "comment": "boolean constant", + "name": "constant.language.boolean.wgsl", + "match": "\\b(true|false)\\b" + } + ] + }, + "types": { + "comment": "types", + "name": "storage.type.wgsl", + "patterns": [ + { + "comment": "scalar Types", + "name": "storage.type.wgsl", + "match": "\\b(bool|i32|u32|f32)\\b" + }, + { + "comment": "reserved scalar Types", + "name": "storage.type.wgsl", + "match": "\\b(i64|u64|f64)\\b" + }, + { + "comment": "vector type aliasses", + "name": "storage.type.wgsl", + "match": "\\b(vec2i|vec3i|vec4i|vec2u|vec3u|vec4u|vec2f|vec3f|vec4f|vec2h|vec3h|vec4h)\\b" + }, + { + "comment": "matrix type aliasses", + "name": "storage.type.wgsl", + "match": "\\b(mat2x2f|mat2x3f|mat2x4f|mat3x2f|mat3x3f|mat3x4f|mat4x2f|mat4x3f|mat4x4f|mat2x2h|mat2x3h|mat2x4h|mat3x2h|mat3x3h|mat3x4h|mat4x2h|mat4x3h|mat4x4h)\\b" + }, + { + "comment": "vector/matrix types", + "name": "storage.type.wgsl", + "match": "\\b(vec[2-4]|mat[2-4]x[2-4])\\b" + }, + { + "comment": "atomic types", + "name": "storage.type.wgsl", + "match": "\\b(atomic)\\b" + }, + { + "comment": "array types", + "name": "storage.type.wgsl", + "match": "\\b(array)\\b" + }, + { + "comment": "Custom type", + "name": "entity.name.type.wgsl", + "match": "\\b([A-Z][A-Za-z0-9]*)\\b" + } + ] + }, + "variables": { + "patterns": [ + { + "comment": "variables", + "name": "variable.other.wgsl", + "match": "\\b(?<!(?<!\\.)\\.)(?:r#(?!(crate|[Ss]elf|super)))?[a-z0-9_]+\\b" + } + ] + }, + "punctuation": { + "patterns": [ + { + "comment": "comma", + "name": "punctuation.comma.wgsl", + "match": "," + }, + { + "comment": "curly braces", + "name": "punctuation.brackets.curly.wgsl", + "match": "[{}]" + }, + { + "comment": "parentheses, round brackets", + "name": "punctuation.brackets.round.wgsl", + "match": "[()]" + }, + { + "comment": "semicolon", + "name": "punctuation.semi.wgsl", + "match": ";" + }, + { + "comment": "square brackets", + "name": "punctuation.brackets.square.wgsl", + "match": "[\\[\\]]" + }, + { + "comment": "angle brackets", + "name": "punctuation.brackets.angle.wgsl", + "match": "(?<![=-])[<>]" + } + ] + }, + "keywords": { + "patterns": [ + { + "comment": "other keywords", + "name": "keyword.control.wgsl", + "match": "\\b(bitcast|block|break|case|continue|continuing|default|discard|else|elseif|enable|fallthrough|for|function|if|loop|private|read|read_write|return|storage|switch|uniform|while|workgroup|write)\\b" + }, + { + "comment": "reserved keywords", + "name": "keyword.control.wgsl", + "match": "\\b(asm|const|do|enum|handle|mat|premerge|regardless|typedef|unless|using|vec|void)\\b" + }, + { + "comment": "storage keywords", + "name": "keyword.other.wgsl storage.type.wgsl", + "match": "\\b(let|var)\\b" + }, + { + "comment": "type keyword", + "name": "keyword.declaration.type.wgsl storage.type.wgsl", + "match": "\\b(type)\\b" + }, + { + "comment": "enum keyword", + "name": "keyword.declaration.enum.wgsl storage.type.wgsl", + "match": "\\b(enum)\\b" + }, + { + "comment": "struct keyword", + "name": "keyword.declaration.struct.wgsl storage.type.wgsl", + "match": "\\b(struct)\\b" + }, + { + "comment": "fn", + "name": "keyword.other.fn.wgsl", + "match": "\\bfn\\b" + }, + { + "comment": "logical operators", + "name": "keyword.operator.logical.wgsl", + "match": "(\\^|\\||\\|\\||&&|<<|>>|!)(?!=)" + }, + { + "comment": "logical AND, borrow references", + "name": "keyword.operator.borrow.and.wgsl", + "match": "&(?![&=])" + }, + { + "comment": "assignment operators", + "name": "keyword.operator.assignment.wgsl", + "match": "(\\+=|-=|\\*=|/=|%=|\\^=|&=|\\|=|<<=|>>=)" + }, + { + "comment": "single equal", + "name": "keyword.operator.assignment.equal.wgsl", + "match": "(?<![<>])=(?!=|>)" + }, + { + "comment": "comparison operators", + "name": "keyword.operator.comparison.wgsl", + "match": "(=(=)?(?!>)|!=|<=|(?<!=)>=)" + }, + { + "comment": "math operators", + "name": "keyword.operator.math.wgsl", + "match": "(([+%]|(\\*(?!\\w)))(?!=))|(-(?!>))|(/(?!/))" + }, + { + "comment": "dot access", + "name": "keyword.operator.access.dot.wgsl", + "match": "\\.(?!\\.)" + }, + { + "comment": "dashrocket, skinny arrow", + "name": "keyword.operator.arrow.skinny.wgsl", + "match": "->" + } + ] + } + } +} diff --git a/docs/shiki/languages/wolfram.tmLanguage.json b/docs/shiki/languages/wolfram.tmLanguage.json new file mode 100644 index 00000000..e5d05c91 --- /dev/null +++ b/docs/shiki/languages/wolfram.tmLanguage.json @@ -0,0 +1,2363 @@ +{ + "name": "wolfram", + "scopeName": "source.wolfram", + "fileTypes": ["wl", "m", "wls", "wlt", "mt"], + "patterns": [ + { + "include": "#main" + } + ], + "repository": { + "main": { + "patterns": [ + { + "include": "#shebang" + }, + { + "include": "#simple-toplevel-definitions" + }, + { + "include": "#expressions" + } + ] + }, + "shebang": { + "name": "comment.line.shebang.wolfram", + "match": "\\A(#!).*(?=$)", + "captures": { + "1": { + "name": "punctuation.definition.comment.wolfram" + } + } + }, + "simple-toplevel-definitions": { + "patterns": [ + { + "match": "^\\s*(Attributes|Format|Options)\\s*(\\[)(`?(?:(?:[$[:alpha:]][$[:alnum:]]*)`)*)((?:[$[:alpha:]][$[:alnum:]]*))(\\])\\s*(:=|=(?!!|=|\\.))", + "captures": { + "1": { + "name": "support.function.builtin.wolfram" + }, + "2": { + "name": "punctuation.section.brackets.begin.wolfram" + }, + "3": { + "name": "meta.function.wolfram entity.name.Context.wolfram" + }, + "4": { + "name": "meta.function.wolfram entity.name.function.wolfram" + }, + "5": { + "name": "punctuation.section.brackets.end.wolfram" + }, + "6": { + "name": "keyword.operator.assignment.wolfram" + } + } + }, + { + "match": "^\\s*(`?(?:(?:[$[:alpha:]][$[:alnum:]]*)`)*)((?:[$[:alpha:]][$[:alnum:]]*))(?=\\s*(\\[(?>[^\\[\\]]+|\\g<-1>)*\\])\\s*(?:/;.*)?(?::=|=(?!!|=|\\.)))", + "captures": { + "1": { + "name": "meta.function.wolfram entity.name.Context.wolfram" + }, + "2": { + "name": "meta.function.wolfram entity.name.function.wolfram" + } + } + }, + { + "match": "^\\s*(`?(?:(?:[$[:alpha:]][$[:alnum:]]*)`)*)((?:[$[:alpha:]][$[:alnum:]]*))(?=\\s*(?:/;.*)?(?::=|=(?!!|=|\\.)))", + "captures": { + "1": { + "name": "meta.function.wolfram entity.name.Context.wolfram" + }, + "2": { + "name": "meta.function.wolfram entity.name.constant.wolfram" + } + } + } + ] + }, + "expressions": { + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#escaped_character_symbols" + }, + { + "include": "#escaped_characters" + }, + { + "include": "#out" + }, + { + "include": "#slot" + }, + { + "include": "#literals" + }, + { + "include": "#groups" + }, + { + "include": "#stringifying-operators" + }, + { + "include": "#operators" + }, + { + "include": "#pattern-operators" + }, + { + "include": "#symbols" + }, + { + "match": "(?:!|&|'|\\*|\\+|,|-|\\.|/|:|;|<|=|>|\\?|@|\\\\|\\^|\\||~)", + "name": "invalid.illegal" + } + ] + }, + "comments": { + "patterns": [ + { + "name": "comment.block", + "begin": "\\(\\*", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.wolfram" + } + }, + "end": "\\*\\)", + "endCaptures": { + "0": { + "name": "punctuation.definition.comment.wolfram" + } + }, + "patterns": [ + { + "include": "#comments" + } + ] + }, + { + "match": "\\*\\)", + "name": "invalid.illegal.stray-comment-end.wolfram" + } + ] + }, + "escaped_character_symbols": { + "patterns": [ + { + "match": "System`\\\\\\[(?:F(?:ormalA|ormalAlpha|ormalB|ormalBeta|ormalC|ormalCapitalA|ormalCapitalAlpha|ormalCapitalB|ormalCapitalBeta|ormalCapitalC|ormalCapitalChi|ormalCapitalD|ormalCapitalDelta|ormalCapitalDigamma|ormalCapitalE|ormalCapitalEpsilon|ormalCapitalEta|ormalCapitalF|ormalCapitalG|ormalCapitalGamma|ormalCapitalH|ormalCapitalI|ormalCapitalIota|ormalCapitalJ|ormalCapitalK|ormalCapitalKappa|ormalCapitalKoppa|ormalCapitalL|ormalCapitalLambda|ormalCapitalM|ormalCapitalMu|ormalCapitalN|ormalCapitalNu|ormalCapitalO|ormalCapitalOmega|ormalCapitalOmicron|ormalCapitalP|ormalCapitalPhi|ormalCapitalPi|ormalCapitalPsi|ormalCapitalQ|ormalCapitalR|ormalCapitalRho|ormalCapitalS|ormalCapitalSampi|ormalCapitalSigma|ormalCapitalStigma|ormalCapitalT|ormalCapitalTau|ormalCapitalTheta|ormalCapitalU|ormalCapitalUpsilon|ormalCapitalV|ormalCapitalW|ormalCapitalX|ormalCapitalXi|ormalCapitalY|ormalCapitalZ|ormalCapitalZeta|ormalChi|ormalCurlyCapitalUpsilon|ormalCurlyEpsilon|ormalCurlyKappa|ormalCurlyPhi|ormalCurlyPi|ormalCurlyRho|ormalCurlyTheta|ormalD|ormalDelta|ormalDigamma|ormalE|ormalEpsilon|ormalEta|ormalF|ormalFinalSigma|ormalG|ormalGamma|ormalH|ormalI|ormalIota|ormalJ|ormalK|ormalKappa|ormalKoppa|ormalL|ormalLambda|ormalM|ormalMu|ormalN|ormalNu|ormalO|ormalOmega|ormalOmicron|ormalP|ormalPhi|ormalPi|ormalPsi|ormalQ|ormalR|ormalRho|ormalS|ormalSampi|ormalScriptA|ormalScriptB|ormalScriptC|ormalScriptCapitalA|ormalScriptCapitalB|ormalScriptCapitalC|ormalScriptCapitalD|ormalScriptCapitalE|ormalScriptCapitalF|ormalScriptCapitalG|ormalScriptCapitalH|ormalScriptCapitalI|ormalScriptCapitalJ|ormalScriptCapitalK|ormalScriptCapitalL|ormalScriptCapitalM|ormalScriptCapitalN|ormalScriptCapitalO|ormalScriptCapitalP|ormalScriptCapitalQ|ormalScriptCapitalR|ormalScriptCapitalS|ormalScriptCapitalT|ormalScriptCapitalU|ormalScriptCapitalV|ormalScriptCapitalW|ormalScriptCapitalX|ormalScriptCapitalY|ormalScriptCapitalZ|ormalScriptD|ormalScriptE|ormalScriptF|ormalScriptG|ormalScriptH|ormalScriptI|ormalScriptJ|ormalScriptK|ormalScriptL|ormalScriptM|ormalScriptN|ormalScriptO|ormalScriptP|ormalScriptQ|ormalScriptR|ormalScriptS|ormalScriptT|ormalScriptU|ormalScriptV|ormalScriptW|ormalScriptX|ormalScriptY|ormalScriptZ|ormalSigma|ormalStigma|ormalT|ormalTau|ormalTheta|ormalU|ormalUpsilon|ormalV|ormalW|ormalX|ormalXi|ormalY|ormalZ|ormalZeta))\\](?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "System`\\\\\\[(?:S(?:ystemsModelDelay))\\](?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "\\\\\\[(?:F(?:ormalA|ormalAlpha|ormalB|ormalBeta|ormalC|ormalCapitalA|ormalCapitalAlpha|ormalCapitalB|ormalCapitalBeta|ormalCapitalC|ormalCapitalChi|ormalCapitalD|ormalCapitalDelta|ormalCapitalDigamma|ormalCapitalE|ormalCapitalEpsilon|ormalCapitalEta|ormalCapitalF|ormalCapitalG|ormalCapitalGamma|ormalCapitalH|ormalCapitalI|ormalCapitalIota|ormalCapitalJ|ormalCapitalK|ormalCapitalKappa|ormalCapitalKoppa|ormalCapitalL|ormalCapitalLambda|ormalCapitalM|ormalCapitalMu|ormalCapitalN|ormalCapitalNu|ormalCapitalO|ormalCapitalOmega|ormalCapitalOmicron|ormalCapitalP|ormalCapitalPhi|ormalCapitalPi|ormalCapitalPsi|ormalCapitalQ|ormalCapitalR|ormalCapitalRho|ormalCapitalS|ormalCapitalSampi|ormalCapitalSigma|ormalCapitalStigma|ormalCapitalT|ormalCapitalTau|ormalCapitalTheta|ormalCapitalU|ormalCapitalUpsilon|ormalCapitalV|ormalCapitalW|ormalCapitalX|ormalCapitalXi|ormalCapitalY|ormalCapitalZ|ormalCapitalZeta|ormalChi|ormalCurlyCapitalUpsilon|ormalCurlyEpsilon|ormalCurlyKappa|ormalCurlyPhi|ormalCurlyPi|ormalCurlyRho|ormalCurlyTheta|ormalD|ormalDelta|ormalDigamma|ormalE|ormalEpsilon|ormalEta|ormalF|ormalFinalSigma|ormalG|ormalGamma|ormalH|ormalI|ormalIota|ormalJ|ormalK|ormalKappa|ormalKoppa|ormalL|ormalLambda|ormalM|ormalMu|ormalN|ormalNu|ormalO|ormalOmega|ormalOmicron|ormalP|ormalPhi|ormalPi|ormalPsi|ormalQ|ormalR|ormalRho|ormalS|ormalSampi|ormalScriptA|ormalScriptB|ormalScriptC|ormalScriptCapitalA|ormalScriptCapitalB|ormalScriptCapitalC|ormalScriptCapitalD|ormalScriptCapitalE|ormalScriptCapitalF|ormalScriptCapitalG|ormalScriptCapitalH|ormalScriptCapitalI|ormalScriptCapitalJ|ormalScriptCapitalK|ormalScriptCapitalL|ormalScriptCapitalM|ormalScriptCapitalN|ormalScriptCapitalO|ormalScriptCapitalP|ormalScriptCapitalQ|ormalScriptCapitalR|ormalScriptCapitalS|ormalScriptCapitalT|ormalScriptCapitalU|ormalScriptCapitalV|ormalScriptCapitalW|ormalScriptCapitalX|ormalScriptCapitalY|ormalScriptCapitalZ|ormalScriptD|ormalScriptE|ormalScriptF|ormalScriptG|ormalScriptH|ormalScriptI|ormalScriptJ|ormalScriptK|ormalScriptL|ormalScriptM|ormalScriptN|ormalScriptO|ormalScriptP|ormalScriptQ|ormalScriptR|ormalScriptS|ormalScriptT|ormalScriptU|ormalScriptV|ormalScriptW|ormalScriptX|ormalScriptY|ormalScriptZ|ormalSigma|ormalStigma|ormalT|ormalTau|ormalTheta|ormalU|ormalUpsilon|ormalV|ormalW|ormalX|ormalXi|ormalY|ormalZ|ormalZeta))\\](?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "\\\\\\[(?:S(?:ystemsModelDelay))\\](?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "\\\\\\[(?:D(?:egree))\\](?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "\\\\\\[(?:E(?:xponentialE))\\](?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "\\\\\\[(?:I(?:maginaryI|maginaryJ|nfinity))\\](?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "\\\\\\[(?:P(?:i))\\](?![`$[:alnum:]])", + "name": "constant.language.wolfram" + } + ] + }, + "escaped_characters": { + "patterns": [ + { + "match": "\\\\[!%&()*+/@^_` ]", + "name": "donothighlight.constant.character.escape" + }, + { + "match": "\\\\\\[(?:A(?:kuz|ndy))\\]", + "name": "donothighlight.constant.character.escape.undocumented" + }, + { + "match": "\\\\\\[(?:C(?:ontinuedFractionK|url))\\]", + "name": "donothighlight.constant.character.escape.undocumented" + }, + { + "match": "\\\\\\[(?:D(?:ivergence|ivisionSlash))\\]", + "name": "donothighlight.constant.character.escape.undocumented" + }, + { + "match": "\\\\\\[(?:E(?:xpectationE))\\]", + "name": "donothighlight.constant.character.escape.undocumented" + }, + { + "match": "\\\\\\[(?:F(?:reeformPrompt))\\]", + "name": "donothighlight.constant.character.escape.undocumented" + }, + { + "match": "\\\\\\[(?:G(?:radient))\\]", + "name": "donothighlight.constant.character.escape.undocumented" + }, + { + "match": "\\\\\\[(?:L(?:aplacian))\\]", + "name": "donothighlight.constant.character.escape.undocumented" + }, + { + "match": "\\\\\\[(?:M(?:inus|oon))\\]", + "name": "donothighlight.constant.character.escape.undocumented" + }, + { + "match": "\\\\\\[(?:N(?:umberComma))\\]", + "name": "donothighlight.constant.character.escape.undocumented" + }, + { + "match": "\\\\\\[(?:P(?:ageBreakAbove|ageBreakBelow|robabilityPr))\\]", + "name": "donothighlight.constant.character.escape.undocumented" + }, + { + "match": "\\\\\\[(?:S(?:pooky|tepperDown|tepperLeft|tepperRight|tepperUp|un))\\]", + "name": "donothighlight.constant.character.escape.undocumented" + }, + { + "match": "\\\\\\[(?:U(?:nknownGlyph))\\]", + "name": "donothighlight.constant.character.escape.undocumented" + }, + { + "match": "\\\\\\[(?:V(?:illa))\\]", + "name": "donothighlight.constant.character.escape.undocumented" + }, + { + "match": "\\\\\\[(?:W(?:olframAlphaPrompt))\\]", + "name": "donothighlight.constant.character.escape.undocumented" + }, + { + "match": "\\\\\\[(?:C(?:OMPATIBILITYKanjiSpace|OMPATIBILITYNoBreak))\\]", + "name": "invalid.illegal.unsupported" + }, + { + "match": "\\\\\\[(?:I(?:nlinePart))\\]", + "name": "invalid.illegal.unsupported" + }, + { + "match": "\\\\\\[(?:A(?:Acute|Bar|Cup|DoubleDot|E|Grave|Hat|Ring|Tilde|leph|liasDelimiter|liasIndicator|lignmentMarker|lpha|ltKey|nd|ngle|ngstrom|pplication|quariusSign|riesSign|scendingEllipsis|utoLeftMatch|utoOperand|utoPlaceholder|utoRightMatch|utoSpace))\\]", + "name": "donothighlight.constant.character.escape" + }, + { + "match": "\\\\\\[(?:B(?:ackslash|eamedEighthNote|eamedSixteenthNote|ecause|et|eta|lackBishop|lackKing|lackKnight|lackPawn|lackQueen|lackRook|reve|ullet))\\]", + "name": "donothighlight.constant.character.escape" + }, + { + "match": "\\\\\\[(?:C(?:Acute|Cedilla|Hacek|ancerSign|ap|apitalAAcute|apitalABar|apitalACup|apitalADoubleDot|apitalAE|apitalAGrave|apitalAHat|apitalARing|apitalATilde|apitalAlpha|apitalBeta|apitalCAcute|apitalCCedilla|apitalCHacek|apitalChi|apitalDHacek|apitalDelta|apitalDifferentialD|apitalDigamma|apitalEAcute|apitalEBar|apitalECup|apitalEDoubleDot|apitalEGrave|apitalEHacek|apitalEHat|apitalEpsilon|apitalEta|apitalEth|apitalGamma|apitalIAcute|apitalICup|apitalIDoubleDot|apitalIGrave|apitalIHat|apitalIota|apitalKappa|apitalKoppa|apitalLSlash|apitalLambda|apitalMu|apitalNHacek|apitalNTilde|apitalNu|apitalOAcute|apitalODoubleAcute|apitalODoubleDot|apitalOE|apitalOGrave|apitalOHat|apitalOSlash|apitalOTilde|apitalOmega|apitalOmicron|apitalPhi|apitalPi|apitalPsi|apitalRHacek|apitalRho|apitalSHacek|apitalSampi|apitalSigma|apitalStigma|apitalTHacek|apitalTau|apitalTheta|apitalThorn|apitalUAcute|apitalUDoubleAcute|apitalUDoubleDot|apitalUGrave|apitalUHat|apitalURing|apitalUpsilon|apitalXi|apitalYAcute|apitalZHacek|apitalZeta|apricornSign|edilla|ent|enterDot|enterEllipsis|heckedBox|heckmark|heckmarkedBox|hi|ircleDot|ircleMinus|irclePlus|ircleTimes|lockwiseContourIntegral|loseCurlyDoubleQuote|loseCurlyQuote|loverLeaf|lubSuit|olon|ommandKey|onditioned|ongruent|onjugate|onjugateTranspose|onstantC|ontinuation|ontourIntegral|ontrolKey|oproduct|opyright|ounterClockwiseContourIntegral|ross|ubeRoot|up|upCap|urlyCapitalUpsilon|urlyEpsilon|urlyKappa|urlyPhi|urlyPi|urlyRho|urlyTheta|urrency))\\]", + "name": "donothighlight.constant.character.escape" + }, + { + "match": "\\\\\\[(?:D(?:Hacek|agger|alet|ash|egree|el|eleteKey|elta|escendingEllipsis|iameter|iamond|iamondSuit|ifferenceDelta|ifferentialD|igamma|irectedEdge|iscreteRatio|iscreteShift|iscretionaryHyphen|iscretionaryLineSeparator|iscretionaryPageBreakAbove|iscretionaryPageBreakBelow|iscretionaryParagraphSeparator|istributed|ivide|ivides|otEqual|otlessI|otlessJ|ottedSquare|oubleContourIntegral|oubleDagger|oubleDot|oubleDownArrow|oubleLeftArrow|oubleLeftRightArrow|oubleLeftTee|oubleLongLeftArrow|oubleLongLeftRightArrow|oubleLongRightArrow|oublePrime|oubleRightArrow|oubleRightTee|oubleStruckA|oubleStruckB|oubleStruckC|oubleStruckCapitalA|oubleStruckCapitalB|oubleStruckCapitalC|oubleStruckCapitalD|oubleStruckCapitalE|oubleStruckCapitalF|oubleStruckCapitalG|oubleStruckCapitalH|oubleStruckCapitalI|oubleStruckCapitalJ|oubleStruckCapitalK|oubleStruckCapitalL|oubleStruckCapitalM|oubleStruckCapitalN|oubleStruckCapitalO|oubleStruckCapitalP|oubleStruckCapitalQ|oubleStruckCapitalR|oubleStruckCapitalS|oubleStruckCapitalT|oubleStruckCapitalU|oubleStruckCapitalV|oubleStruckCapitalW|oubleStruckCapitalX|oubleStruckCapitalY|oubleStruckCapitalZ|oubleStruckD|oubleStruckE|oubleStruckEight|oubleStruckF|oubleStruckFive|oubleStruckFour|oubleStruckG|oubleStruckH|oubleStruckI|oubleStruckJ|oubleStruckK|oubleStruckL|oubleStruckM|oubleStruckN|oubleStruckNine|oubleStruckO|oubleStruckOne|oubleStruckP|oubleStruckQ|oubleStruckR|oubleStruckS|oubleStruckSeven|oubleStruckSix|oubleStruckT|oubleStruckThree|oubleStruckTwo|oubleStruckU|oubleStruckV|oubleStruckW|oubleStruckX|oubleStruckY|oubleStruckZ|oubleStruckZero|oubleUpArrow|oubleUpDownArrow|oubleVerticalBar|oubledGamma|oubledPi|ownArrow|ownArrowBar|ownArrowUpArrow|ownBreve|ownExclamation|ownLeftRightVector|ownLeftTeeVector|ownLeftVector|ownLeftVectorBar|ownPointer|ownQuestion|ownRightTeeVector|ownRightVector|ownRightVectorBar|ownTee|ownTeeArrow))\\]", + "name": "donothighlight.constant.character.escape" + }, + { + "match": "\\\\\\[(?:E(?:Acute|Bar|Cup|DoubleDot|Grave|Hacek|Hat|arth|ighthNote|lement|llipsis|mptyCircle|mptyDiamond|mptyDownTriangle|mptyRectangle|mptySet|mptySmallCircle|mptySmallSquare|mptySquare|mptyUpTriangle|mptyVerySmallSquare|nterKey|ntityEnd|ntityStart|psilon|qual|qualTilde|quilibrium|quivalent|rrorIndicator|scapeKey|ta|th|uro|xists|xponentialE))\\]", + "name": "donothighlight.constant.character.escape" + }, + { + "match": "\\\\\\[(?:F(?:iLigature|illedCircle|illedDiamond|illedDownTriangle|illedLeftTriangle|illedRectangle|illedRightTriangle|illedSmallCircle|illedSmallSquare|illedSquare|illedUpTriangle|illedVerySmallSquare|inalSigma|irstPage|ivePointedStar|lLigature|lat|lorin|orAll|ormalA|ormalAlpha|ormalB|ormalBeta|ormalC|ormalCapitalA|ormalCapitalAlpha|ormalCapitalB|ormalCapitalBeta|ormalCapitalC|ormalCapitalChi|ormalCapitalD|ormalCapitalDelta|ormalCapitalDigamma|ormalCapitalE|ormalCapitalEpsilon|ormalCapitalEta|ormalCapitalF|ormalCapitalG|ormalCapitalGamma|ormalCapitalH|ormalCapitalI|ormalCapitalIota|ormalCapitalJ|ormalCapitalK|ormalCapitalKappa|ormalCapitalKoppa|ormalCapitalL|ormalCapitalLambda|ormalCapitalM|ormalCapitalMu|ormalCapitalN|ormalCapitalNu|ormalCapitalO|ormalCapitalOmega|ormalCapitalOmicron|ormalCapitalP|ormalCapitalPhi|ormalCapitalPi|ormalCapitalPsi|ormalCapitalQ|ormalCapitalR|ormalCapitalRho|ormalCapitalS|ormalCapitalSampi|ormalCapitalSigma|ormalCapitalStigma|ormalCapitalT|ormalCapitalTau|ormalCapitalTheta|ormalCapitalU|ormalCapitalUpsilon|ormalCapitalV|ormalCapitalW|ormalCapitalX|ormalCapitalXi|ormalCapitalY|ormalCapitalZ|ormalCapitalZeta|ormalChi|ormalCurlyCapitalUpsilon|ormalCurlyEpsilon|ormalCurlyKappa|ormalCurlyPhi|ormalCurlyPi|ormalCurlyRho|ormalCurlyTheta|ormalD|ormalDelta|ormalDigamma|ormalE|ormalEpsilon|ormalEta|ormalF|ormalFinalSigma|ormalG|ormalGamma|ormalH|ormalI|ormalIota|ormalJ|ormalK|ormalKappa|ormalKoppa|ormalL|ormalLambda|ormalM|ormalMu|ormalN|ormalNu|ormalO|ormalOmega|ormalOmicron|ormalP|ormalPhi|ormalPi|ormalPsi|ormalQ|ormalR|ormalRho|ormalS|ormalSampi|ormalScriptA|ormalScriptB|ormalScriptC|ormalScriptCapitalA|ormalScriptCapitalB|ormalScriptCapitalC|ormalScriptCapitalD|ormalScriptCapitalE|ormalScriptCapitalF|ormalScriptCapitalG|ormalScriptCapitalH|ormalScriptCapitalI|ormalScriptCapitalJ|ormalScriptCapitalK|ormalScriptCapitalL|ormalScriptCapitalM|ormalScriptCapitalN|ormalScriptCapitalO|ormalScriptCapitalP|ormalScriptCapitalQ|ormalScriptCapitalR|ormalScriptCapitalS|ormalScriptCapitalT|ormalScriptCapitalU|ormalScriptCapitalV|ormalScriptCapitalW|ormalScriptCapitalX|ormalScriptCapitalY|ormalScriptCapitalZ|ormalScriptD|ormalScriptE|ormalScriptF|ormalScriptG|ormalScriptH|ormalScriptI|ormalScriptJ|ormalScriptK|ormalScriptL|ormalScriptM|ormalScriptN|ormalScriptO|ormalScriptP|ormalScriptQ|ormalScriptR|ormalScriptS|ormalScriptT|ormalScriptU|ormalScriptV|ormalScriptW|ormalScriptX|ormalScriptY|ormalScriptZ|ormalSigma|ormalStigma|ormalT|ormalTau|ormalTheta|ormalU|ormalUpsilon|ormalV|ormalW|ormalX|ormalXi|ormalY|ormalZ|ormalZeta|reakedSmiley|unction))\\]", + "name": "donothighlight.constant.character.escape" + }, + { + "match": "\\\\\\[(?:G(?:amma|eminiSign|imel|othicA|othicB|othicC|othicCapitalA|othicCapitalB|othicCapitalC|othicCapitalD|othicCapitalE|othicCapitalF|othicCapitalG|othicCapitalH|othicCapitalI|othicCapitalJ|othicCapitalK|othicCapitalL|othicCapitalM|othicCapitalN|othicCapitalO|othicCapitalP|othicCapitalQ|othicCapitalR|othicCapitalS|othicCapitalT|othicCapitalU|othicCapitalV|othicCapitalW|othicCapitalX|othicCapitalY|othicCapitalZ|othicD|othicE|othicEight|othicF|othicFive|othicFour|othicG|othicH|othicI|othicJ|othicK|othicL|othicM|othicN|othicNine|othicO|othicOne|othicP|othicQ|othicR|othicS|othicSeven|othicSix|othicT|othicThree|othicTwo|othicU|othicV|othicW|othicX|othicY|othicZ|othicZero|rayCircle|raySquare|reaterEqual|reaterEqualLess|reaterFullEqual|reaterGreater|reaterLess|reaterSlantEqual|reaterTilde))\\]", + "name": "donothighlight.constant.character.escape" + }, + { + "match": "\\\\\\[(?:H(?:Bar|acek|appySmiley|eartSuit|ermitianConjugate|orizontalLine|umpDownHump|umpEqual|yphen))\\]", + "name": "donothighlight.constant.character.escape" + }, + { + "match": "\\\\\\[(?:I(?:Acute|Cup|DoubleDot|Grave|Hat|maginaryI|maginaryJ|mplicitPlus|mplies|ndentingNewLine|nfinity|ntegral|ntersection|nvisibleApplication|nvisibleComma|nvisiblePostfixScriptBase|nvisiblePrefixScriptBase|nvisibleSpace|nvisibleTimes|ota))\\]", + "name": "donothighlight.constant.character.escape" + }, + { + "match": "\\\\\\[(?:J(?:upiter))\\]", + "name": "donothighlight.constant.character.escape" + }, + { + "match": "\\\\\\[(?:K(?:appa|ernelIcon|eyBar|oppa))\\]", + "name": "donothighlight.constant.character.escape" + }, + { + "match": "\\\\\\[(?:L(?:Slash|ambda|astPage|eftAngleBracket|eftArrow|eftArrowBar|eftArrowRightArrow|eftAssociation|eftBracketingBar|eftCeiling|eftDoubleBracket|eftDoubleBracketingBar|eftDownTeeVector|eftDownVector|eftDownVectorBar|eftFloor|eftGuillemet|eftModified|eftPointer|eftRightArrow|eftRightVector|eftSkeleton|eftTee|eftTeeArrow|eftTeeVector|eftTriangle|eftTriangleBar|eftTriangleEqual|eftUpDownVector|eftUpTeeVector|eftUpVector|eftUpVectorBar|eftVector|eftVectorBar|eoSign|essEqual|essEqualGreater|essFullEqual|essGreater|essLess|essSlantEqual|essTilde|etterSpace|ibraSign|ightBulb|imit|ineSeparator|ongDash|ongEqual|ongLeftArrow|ongLeftRightArrow|ongRightArrow|owerLeftArrow|owerRightArrow))\\]", + "name": "donothighlight.constant.character.escape" + }, + { + "match": "\\\\\\[(?:M(?:ars|athematicaIcon|axLimit|easuredAngle|ediumSpace|ercury|ho|icro|inLimit|inusPlus|od1Key|od2Key|u))\\]", + "name": "donothighlight.constant.character.escape" + }, + { + "match": "\\\\\\[(?:N(?:Hacek|Tilde|and|atural|egativeMediumSpace|egativeThickSpace|egativeThinSpace|egativeVeryThinSpace|eptune|estedGreaterGreater|estedLessLess|eutralSmiley|ewLine|oBreak|onBreakingSpace|or|ot|otCongruent|otCupCap|otDoubleVerticalBar|otElement|otEqual|otEqualTilde|otExists|otGreater|otGreaterEqual|otGreaterFullEqual|otGreaterGreater|otGreaterLess|otGreaterSlantEqual|otGreaterTilde|otHumpDownHump|otHumpEqual|otLeftTriangle|otLeftTriangleBar|otLeftTriangleEqual|otLess|otLessEqual|otLessFullEqual|otLessGreater|otLessLess|otLessSlantEqual|otLessTilde|otNestedGreaterGreater|otNestedLessLess|otPrecedes|otPrecedesEqual|otPrecedesSlantEqual|otPrecedesTilde|otReverseElement|otRightTriangle|otRightTriangleBar|otRightTriangleEqual|otSquareSubset|otSquareSubsetEqual|otSquareSuperset|otSquareSupersetEqual|otSubset|otSubsetEqual|otSucceeds|otSucceedsEqual|otSucceedsSlantEqual|otSucceedsTilde|otSuperset|otSupersetEqual|otTilde|otTildeEqual|otTildeFullEqual|otTildeTilde|otVerticalBar|u|ull|umberSign))\\]", + "name": "donothighlight.constant.character.escape" + }, + { + "match": "\\\\\\[(?:O(?:Acute|DoubleAcute|DoubleDot|E|Grave|Hat|Slash|Tilde|mega|micron|penCurlyDoubleQuote|penCurlyQuote|ptionKey|r|verBrace|verBracket|verParenthesis))\\]", + "name": "donothighlight.constant.character.escape" + }, + { + "match": "\\\\\\[(?:P(?:aragraph|aragraphSeparator|artialD|ermutationProduct|erpendicular|hi|i|iecewise|iscesSign|laceholder|lusMinus|luto|recedes|recedesEqual|recedesSlantEqual|recedesTilde|rime|roduct|roportion|roportional|si))\\]", + "name": "donothighlight.constant.character.escape" + }, + { + "match": "\\\\\\[(?:Q(?:uarterNote))\\]", + "name": "donothighlight.constant.character.escape" + }, + { + "match": "\\\\\\[(?:R(?:Hacek|awAmpersand|awAt|awBackquote|awBackslash|awColon|awComma|awDash|awDollar|awDot|awDoubleQuote|awEqual|awEscape|awExclamation|awGreater|awLeftBrace|awLeftBracket|awLeftParenthesis|awLess|awNumberSign|awPercent|awPlus|awQuestion|awQuote|awReturn|awRightBrace|awRightBracket|awRightParenthesis|awSemicolon|awSlash|awSpace|awStar|awTab|awTilde|awUnderscore|awVerticalBar|awWedge|egisteredTrademark|eturnIndicator|eturnKey|everseDoublePrime|everseElement|everseEquilibrium|eversePrime|everseUpEquilibrium|ho|ightAngle|ightAngleBracket|ightArrow|ightArrowBar|ightArrowLeftArrow|ightAssociation|ightBracketingBar|ightCeiling|ightDoubleBracket|ightDoubleBracketingBar|ightDownTeeVector|ightDownVector|ightDownVectorBar|ightFloor|ightGuillemet|ightModified|ightPointer|ightSkeleton|ightTee|ightTeeArrow|ightTeeVector|ightTriangle|ightTriangleBar|ightTriangleEqual|ightUpDownVector|ightUpTeeVector|ightUpVector|ightUpVectorBar|ightVector|ightVectorBar|oundImplies|oundSpaceIndicator|ule|uleDelayed|upee))\\]", + "name": "donothighlight.constant.character.escape" + }, + { + "match": "\\\\\\[(?:S(?:Hacek|Z|adSmiley|agittariusSign|ampi|aturn|corpioSign|criptA|criptB|criptC|criptCapitalA|criptCapitalB|criptCapitalC|criptCapitalD|criptCapitalE|criptCapitalF|criptCapitalG|criptCapitalH|criptCapitalI|criptCapitalJ|criptCapitalK|criptCapitalL|criptCapitalM|criptCapitalN|criptCapitalO|criptCapitalP|criptCapitalQ|criptCapitalR|criptCapitalS|criptCapitalT|criptCapitalU|criptCapitalV|criptCapitalW|criptCapitalX|criptCapitalY|criptCapitalZ|criptD|criptDotlessI|criptDotlessJ|criptE|criptEight|criptF|criptFive|criptFour|criptG|criptH|criptI|criptJ|criptK|criptL|criptM|criptN|criptNine|criptO|criptOne|criptP|criptQ|criptR|criptS|criptSeven|criptSix|criptT|criptThree|criptTwo|criptU|criptV|criptW|criptX|criptY|criptZ|criptZero|ection|electionPlaceholder|hah|harp|hiftKey|hortDownArrow|hortLeftArrow|hortRightArrow|hortUpArrow|igma|ixPointedStar|keletonIndicator|mallCircle|paceIndicator|paceKey|padeSuit|panFromAbove|panFromBoth|panFromLeft|phericalAngle|qrt|quare|quareIntersection|quareSubset|quareSubsetEqual|quareSuperset|quareSupersetEqual|quareUnion|tar|terling|tigma|ubset|ubsetEqual|ucceeds|ucceedsEqual|ucceedsSlantEqual|ucceedsTilde|uchThat|um|uperset|upersetEqual|ystemEnterKey|ystemsModelDelay))\\]", + "name": "donothighlight.constant.character.escape" + }, + { + "match": "\\\\\\[(?:T(?:Hacek|abKey|au|aurusSign|ensorProduct|ensorWedge|herefore|heta|hickSpace|hinSpace|horn|ilde|ildeEqual|ildeFullEqual|ildeTilde|imes|rademark|ranspose|ripleDot|woWayRule))\\]", + "name": "donothighlight.constant.character.escape" + }, + { + "match": "\\\\\\[(?:U(?:Acute|DoubleAcute|DoubleDot|Grave|Hat|Ring|nderBrace|nderBracket|nderParenthesis|ndirectedEdge|nion|nionPlus|pArrow|pArrowBar|pArrowDownArrow|pDownArrow|pEquilibrium|pPointer|pTee|pTeeArrow|pperLeftArrow|pperRightArrow|psilon|ranus))\\]", + "name": "donothighlight.constant.character.escape" + }, + { + "match": "\\\\\\[(?:V(?:ectorGreater|ectorGreaterEqual|ectorLess|ectorLessEqual|ee|enus|erticalBar|erticalEllipsis|erticalLine|erticalSeparator|erticalTilde|eryThinSpace|irgoSign))\\]", + "name": "donothighlight.constant.character.escape" + }, + { + "match": "\\\\\\[(?:W(?:arningSign|atchIcon|edge|eierstrassP|hiteBishop|hiteKing|hiteKnight|hitePawn|hiteQueen|hiteRook|olf|olframLanguageLogo|olframLanguageLogoCircle))\\]", + "name": "donothighlight.constant.character.escape" + }, + { + "match": "\\\\\\[(?:X(?:i|nor|or))\\]", + "name": "donothighlight.constant.character.escape" + }, + { + "match": "\\\\\\[(?:Y(?:Acute|DoubleDot|en))\\]", + "name": "donothighlight.constant.character.escape" + }, + { + "match": "\\\\\\[(?:Z(?:Hacek|eta))\\]", + "name": "donothighlight.constant.character.escape" + }, + { + "match": "\\\\\\[(?:[$[:alpha:]][$[:alnum:]]*)?\\]?", + "name": "invalid.illegal.BadLongName" + }, + { + "match": "\\\\(?:[$[:alpha:]][$[:alnum:]]*)\\]", + "name": "invalid.illegal.BadLongName" + }, + { + "match": "\\\\:\\h{4}", + "name": "donothighlight.constant.character.escape" + }, + { + "match": "\\\\:\\h{1,3}", + "name": "invalid.illegal" + }, + { + "match": "\\\\\\.\\h{2}", + "name": "donothighlight.constant.character.escape" + }, + { + "match": "\\\\\\.\\h{1}", + "name": "invalid.illegal" + }, + { + "match": "\\\\\\|0\\h{5}", + "name": "donothighlight.constant.character.escape" + }, + { + "match": "\\\\\\|10\\h{4}", + "name": "donothighlight.constant.character.escape" + }, + { + "match": "\\\\\\|\\h{1,6}", + "name": "invalid.illegal" + }, + { + "match": "\\\\[0-7]{3}", + "name": "donothighlight.constant.character.escape" + }, + { + "match": "\\\\[0-7]{1,2}", + "name": "invalid.illegal" + }, + { + "match": "\\\\$", + "name": "donothighlight.constant.character.escape punctuation.separator.continuation" + }, + { + "match": "\\\\.", + "name": "invalid.illegal" + } + ] + }, + "string_escaped_characters": { + "patterns": [ + { + "match": "\\\\[bfnrt\\\"\\\\<>]", + "name": "donothighlight.constant.character.escape" + }, + { + "include": "#escaped_characters" + } + ] + }, + "literals": { + "patterns": [ + { + "include": "#numbers" + }, + { + "include": "#strings" + } + ] + }, + "numbers": { + "patterns": [ + { + "match": "2\\^\\^(?:(?:0|1)+(?:\\.(?!\\.)(?:0|1)*)?+|\\.(?!\\.)(?:0|1)+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))(?:\\*\\^(?:-|\\+)?+\\d+)", + "name": "constant.numeric.wolfram" + }, + { + "match": "2\\^\\^(?:(?:0|1)+(?:\\.(?!\\.)(?:0|1)*)?+|\\.(?!\\.)(?:0|1)+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))\\*\\^", + "name": "invalid.illegal" + }, + { + "match": "2\\^\\^(?:(?:0|1)+(?:\\.(?!\\.)(?:0|1)*)?+|\\.(?!\\.)(?:0|1)+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))", + "name": "constant.numeric.wolfram" + }, + { + "match": "2\\^\\^(?:(?:0|1)+(?:\\.(?!\\.)(?:0|1)*)?+|\\.(?!\\.)(?:0|1)+)``", + "name": "invalid.illegal" + }, + { + "match": "2\\^\\^(?:(?:0|1)+(?:\\.(?!\\.)(?:0|1)*)?+|\\.(?!\\.)(?:0|1)+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)(?:\\*\\^(?:-|\\+)?+\\d+)", + "name": "constant.numeric.wolfram" + }, + { + "match": "2\\^\\^(?:(?:0|1)+(?:\\.(?!\\.)(?:0|1)*)?+|\\.(?!\\.)(?:0|1)+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)\\*\\^", + "name": "invalid.illegal" + }, + { + "match": "2\\^\\^(?:(?:0|1)+(?:\\.(?!\\.)(?:0|1)*)?+|\\.(?!\\.)(?:0|1)+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)", + "name": "constant.numeric.wolfram" + }, + { + "match": "2\\^\\^(?:(?:0|1)+(?:\\.(?!\\.)(?:0|1)*)?+|\\.(?!\\.)(?:0|1)+)(?:\\*\\^(?:-|\\+)?+\\d+)", + "name": "constant.numeric.wolfram" + }, + { + "match": "2\\^\\^(?:(?:0|1)+(?:\\.(?!\\.)(?:0|1)*)?+|\\.(?!\\.)(?:0|1)+)\\*\\^", + "name": "invalid.illegal" + }, + { + "match": "2\\^\\^(?:(?:0|1)+(?:\\.(?!\\.)(?:0|1)*)?+|\\.(?!\\.)(?:0|1)+)", + "name": "constant.numeric.wolfram" + }, + { + "match": "2\\^\\^", + "name": "invalid.illegal" + }, + { + "match": "8\\^\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\.(?!\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\.(?!\\.)(?:0|1|2|3|4|5|6|7)+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))(?:\\*\\^(?:-|\\+)?+\\d+)", + "name": "constant.numeric.wolfram" + }, + { + "match": "8\\^\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\.(?!\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\.(?!\\.)(?:0|1|2|3|4|5|6|7)+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))\\*\\^", + "name": "invalid.illegal" + }, + { + "match": "8\\^\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\.(?!\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\.(?!\\.)(?:0|1|2|3|4|5|6|7)+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))", + "name": "constant.numeric.wolfram" + }, + { + "match": "8\\^\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\.(?!\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\.(?!\\.)(?:0|1|2|3|4|5|6|7)+)``", + "name": "invalid.illegal" + }, + { + "match": "8\\^\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\.(?!\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\.(?!\\.)(?:0|1|2|3|4|5|6|7)+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)(?:\\*\\^(?:-|\\+)?+\\d+)", + "name": "constant.numeric.wolfram" + }, + { + "match": "8\\^\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\.(?!\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\.(?!\\.)(?:0|1|2|3|4|5|6|7)+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)\\*\\^", + "name": "invalid.illegal" + }, + { + "match": "8\\^\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\.(?!\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\.(?!\\.)(?:0|1|2|3|4|5|6|7)+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)", + "name": "constant.numeric.wolfram" + }, + { + "match": "8\\^\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\.(?!\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\.(?!\\.)(?:0|1|2|3|4|5|6|7)+)(?:\\*\\^(?:-|\\+)?+\\d+)", + "name": "constant.numeric.wolfram" + }, + { + "match": "8\\^\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\.(?!\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\.(?!\\.)(?:0|1|2|3|4|5|6|7)+)\\*\\^", + "name": "invalid.illegal" + }, + { + "match": "8\\^\\^(?:(?:0|1|2|3|4|5|6|7)+(?:\\.(?!\\.)(?:0|1|2|3|4|5|6|7)*)?+|\\.(?!\\.)(?:0|1|2|3|4|5|6|7)+)", + "name": "constant.numeric.wolfram" + }, + { + "match": "8\\^\\^", + "name": "invalid.illegal" + }, + { + "match": "16\\^\\^(?:\\h+(?:\\.(?!\\.)\\h*)?+|\\.(?!\\.)\\h+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))(?:\\*\\^(?:-|\\+)?+\\d+)", + "name": "constant.numeric.wolfram" + }, + { + "match": "16\\^\\^(?:\\h+(?:\\.(?!\\.)\\h*)?+|\\.(?!\\.)\\h+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))\\*\\^", + "name": "invalid.illegal" + }, + { + "match": "16\\^\\^(?:\\h+(?:\\.(?!\\.)\\h*)?+|\\.(?!\\.)\\h+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))", + "name": "constant.numeric.wolfram" + }, + { + "match": "16\\^\\^(?:\\h+(?:\\.(?!\\.)\\h*)?+|\\.(?!\\.)\\h+)``", + "name": "invalid.illegal" + }, + { + "match": "16\\^\\^(?:\\h+(?:\\.(?!\\.)\\h*)?+|\\.(?!\\.)\\h+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)(?:\\*\\^(?:-|\\+)?+\\d+)", + "name": "constant.numeric.wolfram" + }, + { + "match": "16\\^\\^(?:\\h+(?:\\.(?!\\.)\\h*)?+|\\.(?!\\.)\\h+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)\\*\\^", + "name": "invalid.illegal" + }, + { + "match": "16\\^\\^(?:\\h+(?:\\.(?!\\.)\\h*)?+|\\.(?!\\.)\\h+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)", + "name": "constant.numeric.wolfram" + }, + { + "match": "16\\^\\^(?:\\h+(?:\\.(?!\\.)\\h*)?+|\\.(?!\\.)\\h+)(?:\\*\\^(?:-|\\+)?+\\d+)", + "name": "constant.numeric.wolfram" + }, + { + "match": "16\\^\\^(?:\\h+(?:\\.(?!\\.)\\h*)?+|\\.(?!\\.)\\h+)\\*\\^", + "name": "invalid.illegal" + }, + { + "match": "16\\^\\^(?:\\h+(?:\\.(?!\\.)\\h*)?+|\\.(?!\\.)\\h+)", + "name": "constant.numeric.wolfram" + }, + { + "match": "16\\^\\^", + "name": "invalid.illegal" + }, + { + "match": "(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))(?:\\*\\^(?:-|\\+)?+\\d+)", + "name": "constant.numeric.wolfram" + }, + { + "match": "(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))\\*\\^", + "name": "invalid.illegal" + }, + { + "match": "(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)(?:``(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)))", + "name": "constant.numeric.wolfram" + }, + { + "match": "(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)``", + "name": "invalid.illegal" + }, + { + "match": "(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)(?:\\*\\^(?:-|\\+)?+\\d+)", + "name": "constant.numeric.wolfram" + }, + { + "match": "(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)\\*\\^", + "name": "invalid.illegal" + }, + { + "match": "(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)(?:`(?:(?:-|\\+)?+(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+))?+)", + "name": "constant.numeric.wolfram" + }, + { + "match": "(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)(?:\\*\\^(?:-|\\+)?+\\d+)", + "name": "constant.numeric.wolfram" + }, + { + "match": "(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)\\*\\^", + "name": "invalid.illegal" + }, + { + "match": "(?:\\d+(?:\\.(?!\\.)\\d*)?+|\\.(?!\\.)\\d+)", + "name": "constant.numeric.wolfram" + } + ] + }, + "strings": { + "patterns": [ + { + "name": "string.quoted.double", + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end" + } + }, + "patterns": [ + { + "include": "#string_escaped_characters" + } + ] + } + ] + }, + "stringifying-operators": { + "patterns": [ + { + "match": "(>>>)(?=\\s*\")", + "captures": { + "1": { + "name": "keyword.operator.PutAppend.wolfram" + } + } + }, + { + "match": "(>>>)\\s*(\\w+)", + "captures": { + "1": { + "name": "keyword.operator.PutAppend.wolfram" + }, + "2": { + "name": "string.unquoted.wolfram" + } + } + }, + { + "match": ">>>", + "name": "invalid.illegal" + }, + { + "match": "(::)(?=\\s*\")", + "captures": { + "1": { + "name": "keyword.operator.MessageName.wolfram" + } + } + }, + { + "match": "(::)([[:alpha:]][[:alnum:]]*)", + "captures": { + "1": { + "name": "keyword.operator.MessageName.wolfram" + }, + "2": { + "name": "string.unquoted.wolfram" + } + } + }, + { + "match": "::", + "name": "invalid.illegal" + }, + { + "match": "(<<)(?=\\s*\")", + "captures": { + "1": { + "name": "keyword.operator.Get.wolfram" + } + } + }, + { + "match": "(<<)\\s*([`[:alpha:]][`[:alnum:]]*)", + "captures": { + "1": { + "name": "keyword.operator.Get.wolfram" + }, + "2": { + "name": "string.unquoted.wolfram" + } + } + }, + { + "match": "<<", + "name": "invalid.illegal" + }, + { + "match": "(>>)(?=\\s*\")", + "captures": { + "1": { + "name": "keyword.operator.Put.wolfram" + } + } + }, + { + "match": "(>>)\\s*(\\w*)", + "captures": { + "1": { + "name": "keyword.operator.Put.wolfram" + }, + "2": { + "name": "string.unquoted.wolfram" + } + } + }, + { + "match": ">>", + "name": "invalid.illegal" + } + ] + }, + "operators": { + "patterns": [ + { + "match": "(?:\\^:=)", + "name": "keyword.operator.assignment.UpSetDelayed.wolfram" + }, + { + "match": "(?:\\^:)", + "name": "invalid.illegal" + }, + { + "match": "(?:===)", + "name": "keyword.operator.SameQ.wolfram" + }, + { + "match": "(?:=!=|\\.\\.\\.|//\\.|@@@|<->|//@)", + "name": "keyword.operator.wolfram" + }, + { + "match": "(?:\\|->)", + "name": "keyword.operator.Function.wolfram" + }, + { + "match": "(?://=)", + "name": "keyword.operator.assignment.ApplyTo.wolfram" + }, + { + "match": "(?:--|\\+\\+)", + "name": "keyword.operator.arithmetic.wolfram" + }, + { + "match": "(?:\\|\\||&&)", + "name": "keyword.operator.logical.wolfram" + }, + { + "match": "(?::=)", + "name": "keyword.operator.assignment.SetDelayed.wolfram" + }, + { + "match": "(?:\\^=)", + "name": "keyword.operator.assignment.UpSet.wolfram" + }, + { + "match": "(?:/=)", + "name": "keyword.operator.assignment.DivideBy.wolfram" + }, + { + "match": "(?:\\+=)", + "name": "keyword.operator.assignment.AddTo.wolfram" + }, + { + "match": "(?:=\\s+\\.(?![0-9]))", + "name": "invalid.whitespace.Unset.wolfram" + }, + { + "match": "(?:=\\.(?![0-9]))", + "name": "keyword.operator.assignment.Unset.wolfram" + }, + { + "match": "(?:\\*=)", + "name": "keyword.operator.assignment.TimesBy.wolfram" + }, + { + "match": "(?:-=)", + "name": "keyword.operator.assignment.SubtractFrom.wolfram" + }, + { + "match": "(?:/:)", + "name": "keyword.operator.assignment.Tag.wolfram" + }, + { + "match": "(?:;;)$", + "name": "invalid.endofline.Span.wolfram" + }, + { + "match": "(?:;;)", + "name": "keyword.operator.Span.wolfram" + }, + { + "match": "(?:!=)", + "name": "keyword.operator.Unequal.wolfram" + }, + { + "match": "(?:==)", + "name": "keyword.operator.Equal.wolfram" + }, + { + "match": "(?:!!)", + "name": "keyword.operator.BangBang.wolfram" + }, + { + "match": "(?:\\?\\?)", + "name": "invalid.illegal.Information.wolfram" + }, + { + "match": "(?:<=|>=|\\.\\.|:>|<>|->|/@|/;|/\\.|//|/\\*|@@|@\\*|~~|\\*\\*)", + "name": "keyword.operator.wolfram" + }, + { + "match": "(?:-|\\+|/|\\*)", + "name": "keyword.operator.arithmetic.wolfram" + }, + { + "match": "(?:=)", + "name": "keyword.operator.assignment.Set.wolfram" + }, + { + "match": "(?:<)", + "name": "keyword.operator.Less.wolfram" + }, + { + "match": "(?:\\|)", + "name": "keyword.operator.Alternatives.wolfram" + }, + { + "match": "(?:!)", + "name": "keyword.operator.Bang.wolfram" + }, + { + "match": "(?:;)", + "name": "keyword.operator.CompoundExpression.wolfram punctuation.terminator" + }, + { + "match": "(?:,)", + "name": "keyword.operator.Comma.wolfram punctuation.separator" + }, + { + "match": "^(?:\\?)", + "name": "invalid.startofline.Information.wolfram" + }, + { + "match": "(?:\\?)", + "name": "keyword.operator.PatternTest.wolfram" + }, + { + "match": "(?:')", + "name": "keyword.operator.Derivative.wolfram" + }, + { + "match": "(?:&)", + "name": "keyword.operator.Function.wolfram" + }, + { + "match": "(?:>|\\^|\\.|:|@|~)", + "name": "keyword.operator.wolfram" + } + ] + }, + "symbols": { + "patterns": [ + { + "match": "System`(?:A(?:ASTriangle|PIFunction|RCHProcess|RIMAProcess|RMAProcess|RProcess|SATriangle|belianGroup|bort|bortKernels|bortProtect|bs|bsArg|bsArgPlot|bsoluteCorrelation|bsoluteCorrelationFunction|bsoluteCurrentValue|bsoluteDashing|bsoluteFileName|bsoluteOptions|bsolutePointSize|bsoluteThickness|bsoluteTime|bsoluteTiming|ccountingForm|ccumulate|ccuracy|cousticAbsorbingValue|cousticImpedanceValue|cousticNormalVelocityValue|cousticPDEComponent|cousticPressureCondition|cousticRadiationValue|cousticSoundHardValue|cousticSoundSoftCondition|ctionMenu|ctivate|cyclicGraphQ|ddSides|ddTo|ddUsers|djacencyGraph|djacencyList|djacencyMatrix|djacentMeshCells|djugate|djustTimeSeriesForecast|djustmentBox|dministrativeDivisionData|ffineHalfSpace|ffineSpace|ffineStateSpaceModel|ffineTransform|irPressureData|irSoundAttenuation|irTemperatureData|ircraftData|irportData|iryAi|iryAiPrime|iryAiZero|iryBi|iryBiPrime|iryBiZero|lgebraicIntegerQ|lgebraicNumber|lgebraicNumberDenominator|lgebraicNumberNorm|lgebraicNumberPolynomial|lgebraicNumberTrace|lgebraicUnitQ|llTrue|lphaChannel|lphabet|lphabeticOrder|lphabeticSort|lternatingFactorial|lternatingGroup|lternatives|mbientLight|mbiguityList|natomyData|natomyPlot3D|natomyStyling|nd|ndersonDarlingTest|ngerJ|ngleBracket|nglePath|nglePath3D|ngleVector|ngularGauge|nimate|nimator|nnotate|nnotation|nnotationDelete|nnotationKeys|nnotationValue|nnuity|nnuityDue|nnulus|nomalyDetection|nomalyDetectorFunction|ntihermitian|ntihermitianMatrixQ|ntisymmetric|ntisymmetricMatrixQ|ntonyms|nyOrder|nySubset|nyTrue|part|partSquareFree|ppellF1|ppend|ppendTo|pply|pplySides|pplyTo|rcCos|rcCosh|rcCot|rcCoth|rcCsc|rcCsch|rcCurvature|rcLength|rcSec|rcSech|rcSin|rcSinDistribution|rcSinh|rcTan|rcTanh|rea|rg|rgMax|rgMin|rgumentsOptions|rithmeticGeometricMean|rray|rrayComponents|rrayDepth|rrayFilter|rrayFlatten|rrayMesh|rrayPad|rrayPlot|rrayPlot3D|rrayQ|rrayResample|rrayReshape|rrayRules|rrays|rrow|rrowheads|ssert|ssociateTo|ssociation|ssociationMap|ssociationQ|ssociationThread|ssuming|symptotic|symptoticDSolveValue|symptoticEqual|symptoticEquivalent|symptoticExpectation|symptoticGreater|symptoticGreaterEqual|symptoticIntegrate|symptoticLess|symptoticLessEqual|symptoticOutputTracker|symptoticProbability|symptoticProduct|symptoticRSolveValue|symptoticSolve|symptoticSum|tomQ|ttributes|udio|udioAmplify|udioBlockMap|udioCapture|udioChannelCombine|udioChannelMix|udioChannelSeparate|udioChannels|udioData|udioDelay|udioDelete|udioDistance|udioFade|udioFrequencyShift|udioGenerator|udioInsert|udioIntervals|udioJoin|udioLength|udioLocalMeasurements|udioLoudness|udioMeasurements|udioNormalize|udioOverlay|udioPad|udioPan|udioPartition|udioPitchShift|udioPlot|udioQ|udioReplace|udioResample|udioReverb|udioReverse|udioSampleRate|udioSpectralMap|udioSpectralTransformation|udioSplit|udioTimeStretch|udioTrim|udioType|ugmentedPolyhedron|ugmentedSymmetricPolynomial|uthenticationDialog|utoRefreshed|utoSubmitting|utocorrelationTest))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "System`(?:B(?:SplineBasis|SplineCurve|SplineFunction|SplineSurface|abyMonsterGroupB|ackslash|all|and|andpassFilter|andstopFilter|arChart|arChart3D|arLegend|arabasiAlbertGraphDistribution|arcodeImage|arcodeRecognize|aringhausHenzeTest|arlowProschanImportance|arnesG|artlettHannWindow|artlettWindow|aseDecode|aseEncode|aseForm|atesDistribution|attleLemarieWavelet|ecause|eckmannDistribution|eep|egin|eginDialogPacket|eginPackage|ellB|ellY|enfordDistribution|eniniDistribution|enktanderGibratDistribution|enktanderWeibullDistribution|ernoulliB|ernoulliDistribution|ernoulliGraphDistribution|ernoulliProcess|ernsteinBasis|esselFilterModel|esselI|esselJ|esselJZero|esselK|esselY|esselYZero|eta|etaBinomialDistribution|etaDistribution|etaNegativeBinomialDistribution|etaPrimeDistribution|etaRegularized|etween|etweennessCentrality|eveledPolyhedron|ezierCurve|ezierFunction|ilateralFilter|ilateralLaplaceTransform|ilateralZTransform|inCounts|inLists|inarize|inaryDeserialize|inaryDistance|inaryImageQ|inaryRead|inaryReadList|inarySerialize|inaryWrite|inomial|inomialDistribution|inomialProcess|inormalDistribution|iorthogonalSplineWavelet|ipartiteGraphQ|iquadraticFilterModel|irnbaumImportance|irnbaumSaundersDistribution|itAnd|itClear|itGet|itLength|itNot|itOr|itSet|itShiftLeft|itShiftRight|itXor|iweightLocation|iweightMidvariance|lackmanHarrisWindow|lackmanNuttallWindow|lackmanWindow|lank|lankNullSequence|lankSequence|lend|lock|lockMap|lockRandom|lomqvistBeta|lomqvistBetaTest|lur|lurring|odePlot|ohmanWindow|oole|ooleanConsecutiveFunction|ooleanConvert|ooleanCountingFunction|ooleanFunction|ooleanGraph|ooleanMaxterms|ooleanMinimize|ooleanMinterms|ooleanQ|ooleanRegion|ooleanTable|ooleanVariables|orderDimensions|orelTannerDistribution|ottomHatTransform|oundaryDiscretizeGraphics|oundaryDiscretizeRegion|oundaryMesh|oundaryMeshRegion|oundaryMeshRegionQ|oundedRegionQ|oundingRegion|oxData|oxMatrix|oxObject|oxWhiskerChart|racketingBar|rayCurtisDistance|readthFirstScan|reak|ridgeData|rightnessEqualize|roadcastStationData|rownForsytheTest|rownianBridgeProcess|ubbleChart|ubbleChart3D|uckyballGraph|uildingData|ulletGauge|usinessDayQ|utterflyGraph|utterworthFilterModel|utton|uttonBar|uttonBox|uttonNotebook|yteArray|yteArrayFormat|yteArrayFormatQ|yteArrayQ|yteArrayToString|yteCount))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "System`(?:C(?:|DF|DFDeploy|DFWavelet|Form|MYKColor|SGRegion|SGRegionQ|SGRegionTree|alendarConvert|alendarData|allPacket|allout|anberraDistance|ancel|ancelButton|andlestickChart|anonicalGraph|anonicalName|anonicalWarpingCorrespondence|anonicalWarpingDistance|anonicalizePolygon|anonicalizePolyhedron|anonicalizeRegion|antorMesh|antorStaircase|ap|apForm|apitalDifferentialD|apitalize|apsuleShape|aputoD|arlemanLinearize|arlsonRC|arlsonRD|arlsonRE|arlsonRF|arlsonRG|arlsonRJ|arlsonRK|arlsonRM|armichaelLambda|aseSensitive|ases|ashflow|asoratian|atalanNumber|atch|atenate|auchyDistribution|auchyMatrix|auchyWindow|ayleyGraph|eiling|ell|ellGroup|ellGroupData|ellObject|ellPrint|ells|ellularAutomaton|ensoredDistribution|ensoring|enterArray|enterDot|enteredInterval|entralFeature|entralMoment|entralMomentGeneratingFunction|epstrogram|epstrogramArray|epstrumArray|hampernowneNumber|hanVeseBinarize|haracterCounts|haracterName|haracterRange|haracteristicFunction|haracteristicPolynomial|haracters|hebyshev1FilterModel|hebyshev2FilterModel|hebyshevT|hebyshevU|heck|heckAbort|heckArguments|heckbox|heckboxBar|hemicalData|hessboardDistance|hiDistribution|hiSquareDistribution|hineseRemainder|hoiceButtons|hoiceDialog|holeskyDecomposition|hop|hromaticPolynomial|hromaticityPlot|hromaticityPlot3D|ircle|ircleDot|ircleMinus|irclePlus|irclePoints|ircleThrough|ircleTimes|irculantGraph|ircularArcThrough|ircularOrthogonalMatrixDistribution|ircularQuaternionMatrixDistribution|ircularRealMatrixDistribution|ircularSymplecticMatrixDistribution|ircularUnitaryMatrixDistribution|ircumsphere|ityData|lassifierFunction|lassifierMeasurements|lassifierMeasurementsObject|lassify|lear|learAll|learAttributes|learCookies|learPermissions|learSystemCache|lebschGordan|lickPane|lickToCopy|lip|lock|lockGauge|lose|loseKernels|losenessCentrality|losing|loudAccountData|loudConnect|loudDeploy|loudDirectory|loudDisconnect|loudEvaluate|loudExport|loudFunction|loudGet|loudImport|loudLoggingData|loudObject|loudObjects|loudPublish|loudPut|loudSave|loudShare|loudSubmit|loudSymbol|loudUnshare|lusterClassify|lusteringComponents|lusteringMeasurements|lusteringTree|oefficient|oefficientArrays|oefficientList|oefficientRules|oifletWavelet|ollect|ollinearPoints|olon|olorBalance|olorCombine|olorConvert|olorData|olorDataFunction|olorDetect|olorDistance|olorNegate|olorProfileData|olorQ|olorQuantize|olorReplace|olorSeparate|olorSetter|olorSlider|olorToneMapping|olorize|olorsNear|olumn|ometData|ommonName|ommonUnits|ommonest|ommonestFilter|ommunityGraphPlot|ompanyData|ompatibleUnitQ|ompile|ompiledFunction|omplement|ompleteGraph|ompleteGraphQ|ompleteIntegral|ompleteKaryTree|omplex|omplexArrayPlot|omplexContourPlot|omplexExpand|omplexListPlot|omplexPlot|omplexPlot3D|omplexRegionPlot|omplexStreamPlot|omplexVectorPlot|omponentMeasurements|omposeList|omposeSeries|ompositeQ|omposition|ompoundElement|ompoundExpression|ompoundPoissonDistribution|ompoundPoissonProcess|ompoundRenewalProcess|ompress|oncaveHullMesh|ondition|onditionalExpression|onditioned|one|onfirm|onfirmAssert|onfirmBy|onfirmMatch|onformAudio|onformImages|ongruent|onicGradientFilling|onicHullRegion|onicOptimization|onjugate|onjugateTranspose|onjunction|onnectLibraryCallbackFunction|onnectedComponents|onnectedGraphComponents|onnectedGraphQ|onnectedMeshComponents|onnesWindow|onoverTest|onservativeConvectionPDETerm|onstantArray|onstantImage|onstantRegionQ|onstellationData|onstruct|ontainsAll|ontainsAny|ontainsExactly|ontainsNone|ontainsOnly|ontext|ontextToFileName|ontexts|ontinue|ontinuedFraction|ontinuedFractionK|ontinuousMarkovProcess|ontinuousTask|ontinuousTimeModelQ|ontinuousWaveletData|ontinuousWaveletTransform|ontourDetect|ontourPlot|ontourPlot3D|ontraharmonicMean|ontrol|ontrolActive|ontrollabilityGramian|ontrollabilityMatrix|ontrollableDecomposition|ontrollableModelQ|ontrollerInformation|ontrollerManipulate|ontrollerState|onvectionPDETerm|onvergents|onvexHullMesh|onvexHullRegion|onvexOptimization|onvexPolygonQ|onvexPolyhedronQ|onvexRegionQ|onvolve|onwayGroupCo1|onwayGroupCo2|onwayGroupCo3|oordinateBoundingBox|oordinateBoundingBoxArray|oordinateBounds|oordinateBoundsArray|oordinateChartData|oordinateTransform|oordinateTransformData|oplanarPoints|oprimeQ|oproduct|opulaDistribution|opyDatabin|opyDirectory|opyFile|opyToClipboard|oreNilpotentDecomposition|ornerFilter|orrelation|orrelationDistance|orrelationFunction|orrelationTest|os|osIntegral|osh|oshIntegral|osineDistance|osineWindow|ot|oth|oulombF|oulombG|oulombH1|oulombH2|ount|ountDistinct|ountDistinctBy|ountRoots|ountryData|ounts|ountsBy|ovariance|ovarianceFunction|oxIngersollRossProcess|oxModel|oxModelFit|oxianDistribution|ramerVonMisesTest|reateArchive|reateDatabin|reateDialog|reateDirectory|reateDocument|reateFile|reateManagedLibraryExpression|reateNotebook|reatePacletArchive|reatePalette|reatePermissionsGroup|reateUUID|reateWindow|riticalSection|riticalityFailureImportance|riticalitySuccessImportance|ross|rossMatrix|rossingCount|rossingDetect|rossingPolygon|sc|sch|ube|ubeRoot|uboid|umulant|umulantGeneratingFunction|umulativeFeatureImpactPlot|up|upCap|url|urrencyConvert|urrentDate|urrentImage|urrentValue|urvatureFlowFilter|ycleGraph|ycleIndexPolynomial|ycles|yclicGroup|yclotomic|ylinder|ylindricalDecomposition|ylindricalDecompositionFunction))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "System`(?:D(?:|Eigensystem|Eigenvalues|GaussianWavelet|MSList|MSString|Solve|SolveValue|agumDistribution|amData|amerauLevenshteinDistance|arker|ashing|ataDistribution|atabin|atabinAdd|atabinUpload|atabins|ataset|ateBounds|ateDifference|ateHistogram|ateList|ateListLogPlot|ateListPlot|ateListStepPlot|ateObject|ateObjectQ|ateOverlapsQ|atePattern|atePlus|ateRange|ateScale|ateSelect|ateString|ateValue|ateWithinQ|ated|atedUnit|aubechiesWavelet|avisDistribution|awsonF|ayCount|ayHemisphere|ayMatchQ|ayName|ayNightTerminator|ayPlus|ayRange|ayRound|aylightQ|eBruijnGraph|eBruijnSequence|ecapitalize|ecimalForm|eclarePackage|ecompose|ecrement|ecrypt|edekindEta|eepSpaceProbeData|efault|efaultButton|efaultValues|efer|efineInputStreamMethod|efineOutputStreamMethod|efineResourceFunction|efinition|egreeCentrality|egreeGraphDistribution|el|elaunayMesh|elayed|elete|eleteAdjacentDuplicates|eleteAnomalies|eleteBorderComponents|eleteCases|eleteDirectory|eleteDuplicates|eleteDuplicatesBy|eleteFile|eleteMissing|eleteObject|eletePermissionsKey|eleteSmallComponents|eleteStopwords|elimitedSequence|endrogram|enominator|ensityHistogram|ensityPlot|ensityPlot3D|eploy|epth|epthFirstScan|erivative|erivativeFilter|erivativePDETerm|esignMatrix|et|eviceClose|eviceConfigure|eviceExecute|eviceExecuteAsynchronous|eviceObject|eviceOpen|eviceRead|eviceReadBuffer|eviceReadLatest|eviceReadList|eviceReadTimeSeries|eviceStreams|eviceWrite|eviceWriteBuffer|evices|iagonal|iagonalMatrix|iagonalMatrixQ|iagonalizableMatrixQ|ialog|ialogInput|ialogNotebook|ialogReturn|iamond|iamondMatrix|iceDissimilarity|ictionaryLookup|ictionaryWordQ|ifferenceDelta|ifferenceQuotient|ifferenceRoot|ifferenceRootReduce|ifferences|ifferentialD|ifferentialRoot|ifferentialRootReduce|ifferentiatorFilter|iffusionPDETerm|igitCount|igitQ|ihedralAngle|ihedralGroup|ilation|imensionReduce|imensionReducerFunction|imensionReduction|imensionalCombinations|imensionalMeshComponents|imensions|iracComb|iracDelta|irectedEdge|irectedGraph|irectedGraphQ|irectedInfinity|irectionalLight|irective|irectory|irectoryName|irectoryQ|irectoryStack|irichletBeta|irichletCharacter|irichletCondition|irichletConvolve|irichletDistribution|irichletEta|irichletL|irichletLambda|irichletTransform|irichletWindow|iscreteAsymptotic|iscreteChirpZTransform|iscreteConvolve|iscreteDelta|iscreteHadamardTransform|iscreteIndicator|iscreteInputOutputModel|iscreteLQEstimatorGains|iscreteLQRegulatorGains|iscreteLimit|iscreteLyapunovSolve|iscreteMarkovProcess|iscreteMaxLimit|iscreteMinLimit|iscretePlot|iscretePlot3D|iscreteRatio|iscreteRiccatiSolve|iscreteShift|iscreteTimeModelQ|iscreteUniformDistribution|iscreteWaveletData|iscreteWaveletPacketTransform|iscreteWaveletTransform|iscretizeGraphics|iscretizeRegion|iscriminant|isjointQ|isjunction|isk|iskMatrix|iskSegment|ispatch|isplayEndPacket|isplayForm|isplayPacket|istanceMatrix|istanceTransform|istribute|istributeDefinitions|istributed|istributionChart|istributionFitTest|istributionParameterAssumptions|istributionParameterQ|iv|ivide|ivideBy|ivideSides|ivisible|ivisorSigma|ivisorSum|ivisors|o|ocumentGenerator|ocumentGeneratorInformation|ocumentGenerators|ocumentNotebook|odecahedron|ominantColors|ominatorTreeGraph|ominatorVertexList|ot|otEqual|oubleBracketingBar|oubleDownArrow|oubleLeftArrow|oubleLeftRightArrow|oubleLeftTee|oubleLongLeftArrow|oubleLongLeftRightArrow|oubleLongRightArrow|oubleRightArrow|oubleRightTee|oubleUpArrow|oubleUpDownArrow|oubleVerticalBar|ownArrow|ownArrowBar|ownArrowUpArrow|ownLeftRightVector|ownLeftTeeVector|ownLeftVector|ownLeftVectorBar|ownRightTeeVector|ownRightVector|ownRightVectorBar|ownTee|ownTeeArrow|ownValues|ownsample|razinInverse|rop|ropShadowing|t|ualPlanarGraph|ualPolyhedron|ualSystemsModel|umpSave|uplicateFreeQ|uration|ynamic|ynamicGeoGraphics|ynamicModule|ynamicSetting|ynamicWrapper))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "System`(?:E(?:arthImpactData|arthquakeData|ccentricityCentrality|choEvaluation|choFunction|choLabel|dgeAdd|dgeBetweennessCentrality|dgeChromaticNumber|dgeConnectivity|dgeContract|dgeCount|dgeCoverQ|dgeCycleMatrix|dgeDelete|dgeDetect|dgeForm|dgeIndex|dgeList|dgeQ|dgeRules|dgeTaggedGraph|dgeTaggedGraphQ|dgeTags|dgeTransitiveGraphQ|dgeWeightedGraphQ|ditDistance|ffectiveInterest|igensystem|igenvalues|igenvectorCentrality|igenvectors|lement|lementData|liminate|llipsoid|llipticE|llipticExp|llipticExpPrime|llipticF|llipticFilterModel|llipticK|llipticLog|llipticNomeQ|llipticPi|llipticTheta|llipticThetaPrime|mbedCode|mbeddedHTML|mbeddedService|mitSound|mpiricalDistribution|mptyGraphQ|mptyRegion|nclose|ncode|ncrypt|ncryptedObject|nd|ndDialogPacket|ndPackage|ngineeringForm|nterExpressionPacket|nterTextPacket|ntity|ntityClass|ntityClassList|ntityCopies|ntityGroup|ntityInstance|ntityList|ntityPrefetch|ntityProperties|ntityProperty|ntityPropertyClass|ntityRegister|ntityStores|ntityTypeName|ntityUnregister|ntityValue|ntropy|ntropyFilter|nvironment|qual|qualTilde|qualTo|quilibrium|quirippleFilterKernel|quivalent|rf|rfc|rfi|rlangB|rlangC|rlangDistribution|rosion|rrorBox|stimatedBackground|stimatedDistribution|stimatedPointNormals|stimatedProcess|stimatorGains|stimatorRegulator|uclideanDistance|ulerAngles|ulerCharacteristic|ulerE|ulerMatrix|ulerPhi|ulerianGraphQ|valuate|valuatePacket|valuationBox|valuationCell|valuationData|valuationNotebook|valuationObject|venQ|ventData|ventHandler|ventSeries|xactBlackmanWindow|xactNumberQ|xampleData|xcept|xists|xoplanetData|xp|xpGammaDistribution|xpIntegralE|xpIntegralEi|xpToTrig|xpand|xpandAll|xpandDenominator|xpandFileName|xpandNumerator|xpectation|xponent|xponentialDistribution|xponentialGeneratingFunction|xponentialMovingAverage|xponentialPowerDistribution|xport|xportByteArray|xportForm|xportString|xpressionCell|xpressionGraph|xtendedGCD|xternalBundle|xtract|xtractArchive|xtractPacletArchive|xtremeValueDistribution))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "System`(?:F(?:ARIMAProcess|RatioDistribution|aceAlign|aceForm|acialFeatures|actor|actorInteger|actorList|actorSquareFree|actorSquareFreeList|actorTerms|actorTermsList|actorial|actorial2|actorialMoment|actorialMomentGeneratingFunction|actorialPower|ailure|ailureDistribution|ailureQ|areySequence|eatureImpactPlot|eatureNearest|eatureSpacePlot|eatureSpacePlot3D|eatureValueDependencyPlot|eatureValueImpactPlot|eedbackLinearize|etalGrowthData|ibonacci|ibonorial|ile|ileBaseName|ileByteCount|ileDate|ileExistsQ|ileExtension|ileFormat|ileFormatQ|ileHash|ileNameDepth|ileNameDrop|ileNameJoin|ileNameSetter|ileNameSplit|ileNameTake|ileNames|ilePrint|ileSize|ileSystemMap|ileSystemScan|ileTemplate|ileTemplateApply|ileType|illedCurve|illedTorus|illingTransform|ilterRules|inancialBond|inancialData|inancialDerivative|inancialIndicator|ind|indAnomalies|indArgMax|indArgMin|indClique|indClusters|indCookies|indCurvePath|indCycle|indDevices|indDistribution|indDistributionParameters|indDivisions|indEdgeColoring|indEdgeCover|indEdgeCut|indEdgeIndependentPaths|indEulerianCycle|indFaces|indFile|indFit|indFormula|indFundamentalCycles|indGeneratingFunction|indGeoLocation|indGeometricTransform|indGraphCommunities|indGraphIsomorphism|indGraphPartition|indHamiltonianCycle|indHamiltonianPath|indHiddenMarkovStates|indIndependentEdgeSet|indIndependentVertexSet|indInstance|indIntegerNullVector|indIsomorphicSubgraph|indKClan|indKClique|indKClub|indKPlex|indLibrary|indLinearRecurrence|indList|indMatchingColor|indMaxValue|indMaximum|indMaximumCut|indMaximumFlow|indMeshDefects|indMinValue|indMinimum|indMinimumCostFlow|indMinimumCut|indPath|indPeaks|indPermutation|indPlanarColoring|indPostmanTour|indProcessParameters|indRegionTransform|indRepeat|indRoot|indSequenceFunction|indShortestPath|indShortestTour|indSpanningTree|indSubgraphIsomorphism|indThreshold|indTransientRepeat|indVertexColoring|indVertexCover|indVertexCut|indVertexIndependentPaths|inishDynamic|initeAbelianGroupCount|initeGroupCount|initeGroupData|irst|irstCase|irstPassageTimeDistribution|irstPosition|ischerGroupFi22|ischerGroupFi23|ischerGroupFi24Prime|isherHypergeometricDistribution|isherRatioTest|isherZDistribution|it|ittedModel|ixedOrder|ixedPoint|ixedPointList|latShading|latTopWindow|latten|lattenAt|lightData|lipView|loor|lowPolynomial|old|oldList|oldPair|oldPairList|oldWhile|oldWhileList|or|orAll|ormBox|ormFunction|ormObject|ormPage|ormat|ormulaData|ormulaLookup|ortranForm|ourier|ourierCoefficient|ourierCosCoefficient|ourierCosSeries|ourierCosTransform|ourierDCT|ourierDCTFilter|ourierDCTMatrix|ourierDST|ourierDSTMatrix|ourierMatrix|ourierSequenceTransform|ourierSeries|ourierSinCoefficient|ourierSinSeries|ourierSinTransform|ourierTransform|ourierTrigSeries|oxH|ractionBox|ractionalBrownianMotionProcess|ractionalD|ractionalGaussianNoiseProcess|ractionalPart|rameBox|ramed|rechetDistribution|reeQ|renetSerretSystem|requencySamplingFilterKernel|resnelC|resnelF|resnelG|resnelS|robeniusNumber|robeniusSolve|romAbsoluteTime|romCharacterCode|romCoefficientRules|romContinuedFraction|romDMS|romDateString|romDigits|romEntity|romJulianDate|romLetterNumber|romPolarCoordinates|romRomanNumeral|romSphericalCoordinates|romUnixTime|rontEndExecute|rontEndToken|rontEndTokenExecute|ullDefinition|ullForm|ullGraphics|ullInformationOutputRegulator|ullRegion|ullSimplify|unction|unctionAnalytic|unctionBijective|unctionContinuous|unctionConvexity|unctionDiscontinuities|unctionDomain|unctionExpand|unctionInjective|unctionInterpolation|unctionMeromorphic|unctionMonotonicity|unctionPeriod|unctionRange|unctionSign|unctionSingularities|unctionSurjective|ussellVeselyImportance))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "System`(?:G(?:ARCHProcess|CD|aborFilter|aborMatrix|aborWavelet|ainMargins|ainPhaseMargins|alaxyData|amma|ammaDistribution|ammaRegularized|ather|atherBy|aussianFilter|aussianMatrix|aussianOrthogonalMatrixDistribution|aussianSymplecticMatrixDistribution|aussianUnitaryMatrixDistribution|aussianWindow|egenbauerC|eneralizedLinearModelFit|enerateAsymmetricKeyPair|enerateDocument|enerateHTTPResponse|enerateSymmetricKey|eneratingFunction|enericCylindricalDecomposition|enomeData|enomeLookup|eoAntipode|eoArea|eoBoundary|eoBoundingBox|eoBounds|eoBoundsRegion|eoBoundsRegionBoundary|eoBubbleChart|eoCircle|eoContourPlot|eoDensityPlot|eoDestination|eoDirection|eoDisk|eoDisplacement|eoDistance|eoDistanceList|eoElevationData|eoEntities|eoGraphPlot|eoGraphics|eoGridDirectionDifference|eoGridPosition|eoGridUnitArea|eoGridUnitDistance|eoGridVector|eoGroup|eoHemisphere|eoHemisphereBoundary|eoHistogram|eoIdentify|eoImage|eoLength|eoListPlot|eoMarker|eoNearest|eoPath|eoPolygon|eoPosition|eoPositionENU|eoPositionXYZ|eoProjectionData|eoRegionValuePlot|eoSmoothHistogram|eoStreamPlot|eoStyling|eoVariant|eoVector|eoVectorENU|eoVectorPlot|eoVectorXYZ|eoVisibleRegion|eoVisibleRegionBoundary|eoWithinQ|eodesicClosing|eodesicDilation|eodesicErosion|eodesicOpening|eodesicPolyhedron|eodesyData|eogravityModelData|eologicalPeriodData|eomagneticModelData|eometricBrownianMotionProcess|eometricDistribution|eometricMean|eometricMeanFilter|eometricOptimization|eometricTransformation|estureHandler|et|etEnvironment|lobalClusteringCoefficient|low|ompertzMakehamDistribution|oochShading|oodmanKruskalGamma|oodmanKruskalGammaTest|oto|ouraudShading|rad|radientFilter|radientFittedMesh|radientOrientationFilter|rammarApply|rammarRules|rammarToken|raph|raph3D|raphAssortativity|raphAutomorphismGroup|raphCenter|raphComplement|raphData|raphDensity|raphDiameter|raphDifference|raphDisjointUnion|raphDistance|raphDistanceMatrix|raphEmbedding|raphHub|raphIntersection|raphJoin|raphLinkEfficiency|raphPeriphery|raphPlot|raphPlot3D|raphPower|raphProduct|raphPropertyDistribution|raphQ|raphRadius|raphReciprocity|raphSum|raphUnion|raphics|raphics3D|raphicsColumn|raphicsComplex|raphicsGrid|raphicsGroup|raphicsRow|rayLevel|reater|reaterEqual|reaterEqualLess|reaterEqualThan|reaterFullEqual|reaterGreater|reaterLess|reaterSlantEqual|reaterThan|reaterTilde|reenFunction|rid|ridBox|ridGraph|roebnerBasis|roupBy|roupCentralizer|roupElementFromWord|roupElementPosition|roupElementQ|roupElementToWord|roupElements|roupGenerators|roupMultiplicationTable|roupOrbits|roupOrder|roupSetwiseStabilizer|roupStabilizer|roupStabilizerChain|roupings|rowCutComponents|udermannian|uidedFilter|umbelDistribution))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "System`(?:H(?:ITSCentrality|TTPErrorResponse|TTPRedirect|TTPRequest|TTPRequestData|TTPResponse|aarWavelet|adamardMatrix|alfLine|alfNormalDistribution|alfPlane|alfSpace|alftoneShading|amiltonianGraphQ|ammingDistance|ammingWindow|ankelH1|ankelH2|ankelMatrix|ankelTransform|annPoissonWindow|annWindow|aradaNortonGroupHN|araryGraph|armonicMean|armonicMeanFilter|armonicNumber|ash|atchFilling|atchShading|aversine|azardFunction|ead|eatFluxValue|eatInsulationValue|eatOutflowValue|eatRadiationValue|eatSymmetryValue|eatTemperatureCondition|eatTransferPDEComponent|eatTransferValue|eavisideLambda|eavisidePi|eavisideTheta|eldGroupHe|elmholtzPDEComponent|ermiteDecomposition|ermiteH|ermitian|ermitianMatrixQ|essenbergDecomposition|eunB|eunBPrime|eunC|eunCPrime|eunD|eunDPrime|eunG|eunGPrime|eunT|eunTPrime|exahedron|iddenMarkovProcess|ighlightGraph|ighlightImage|ighlightMesh|ighlighted|ighpassFilter|igmanSimsGroupHS|ilbertCurve|ilbertFilter|ilbertMatrix|istogram|istogram3D|istogramDistribution|istogramList|istogramTransform|istogramTransformInterpolation|istoricalPeriodData|itMissTransform|jorthDistribution|odgeDual|oeffdingD|oeffdingDTest|old|oldComplete|oldForm|oldPattern|orizontalGauge|ornerForm|ostLookup|otellingTSquareDistribution|oytDistribution|ue|umanGrowthData|umpDownHump|umpEqual|urwitzLerchPhi|urwitzZeta|yperbolicDistribution|ypercubeGraph|yperexponentialDistribution|yperfactorial|ypergeometric0F1|ypergeometric0F1Regularized|ypergeometric1F1|ypergeometric1F1Regularized|ypergeometric2F1|ypergeometric2F1Regularized|ypergeometricDistribution|ypergeometricPFQ|ypergeometricPFQRegularized|ypergeometricU|yperlink|yperplane|ypoexponentialDistribution|ypothesisTestData))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "System`(?:I(?:PAddress|conData|conize|cosahedron|dentity|dentityMatrix|f|fCompiled|gnoringInactive|m|mage|mage3D|mage3DProjection|mage3DSlices|mageAccumulate|mageAdd|mageAdjust|mageAlign|mageApply|mageApplyIndexed|mageAspectRatio|mageAssemble|mageCapture|mageChannels|mageClip|mageCollage|mageColorSpace|mageCompose|mageConvolve|mageCooccurrence|mageCorners|mageCorrelate|mageCorrespondingPoints|mageCrop|mageData|mageDeconvolve|mageDemosaic|mageDifference|mageDimensions|mageDisplacements|mageDistance|mageEffect|mageExposureCombine|mageFeatureTrack|mageFileApply|mageFileFilter|mageFileScan|mageFilter|mageFocusCombine|mageForestingComponents|mageForwardTransformation|mageHistogram|mageIdentify|mageInstanceQ|mageKeypoints|mageLevels|mageLines|mageMarker|mageMeasurements|mageMesh|mageMultiply|magePad|magePartition|magePeriodogram|magePerspectiveTransformation|mageQ|mageRecolor|mageReflect|mageResize|mageRestyle|mageRotate|mageSaliencyFilter|mageScaled|mageScan|mageSubtract|mageTake|mageTransformation|mageTrim|mageType|mageValue|mageValuePositions|mageVectorscopePlot|mageWaveformPlot|mplicitD|mplicitRegion|mplies|mport|mportByteArray|mportString|mprovementImportance|nactivate|nactive|ncidenceGraph|ncidenceList|ncidenceMatrix|ncrement|ndefiniteMatrixQ|ndependenceTest|ndependentEdgeSetQ|ndependentPhysicalQuantity|ndependentUnit|ndependentUnitDimension|ndependentVertexSetQ|ndexEdgeTaggedGraph|ndexGraph|ndexed|nexactNumberQ|nfiniteLine|nfiniteLineThrough|nfinitePlane|nfix|nflationAdjust|nformation|nhomogeneousPoissonProcess|nner|nnerPolygon|nnerPolyhedron|npaint|nput|nputField|nputForm|nputNamePacket|nputNotebook|nputPacket|nputStream|nputString|nputStringPacket|nsert|nsertLinebreaks|nset|nsphere|nstall|nstallService|ntegerDigits|ntegerExponent|ntegerLength|ntegerName|ntegerPart|ntegerPartitions|ntegerQ|ntegerReverse|ntegerString|ntegrate|nteractiveTradingChart|nternallyBalancedDecomposition|nterpolatingFunction|nterpolatingPolynomial|nterpolation|nterpretation|nterpretationBox|nterpreter|nterquartileRange|nterrupt|ntersectingQ|ntersection|nterval|ntervalIntersection|ntervalMemberQ|ntervalSlider|ntervalUnion|nverse|nverseBetaRegularized|nverseBilateralLaplaceTransform|nverseBilateralZTransform|nverseCDF|nverseChiSquareDistribution|nverseContinuousWaveletTransform|nverseDistanceTransform|nverseEllipticNomeQ|nverseErf|nverseErfc|nverseFourier|nverseFourierCosTransform|nverseFourierSequenceTransform|nverseFourierSinTransform|nverseFourierTransform|nverseFunction|nverseGammaDistribution|nverseGammaRegularized|nverseGaussianDistribution|nverseGudermannian|nverseHankelTransform|nverseHaversine|nverseJacobiCD|nverseJacobiCN|nverseJacobiCS|nverseJacobiDC|nverseJacobiDN|nverseJacobiDS|nverseJacobiNC|nverseJacobiND|nverseJacobiNS|nverseJacobiSC|nverseJacobiSD|nverseJacobiSN|nverseLaplaceTransform|nverseMellinTransform|nversePermutation|nverseRadon|nverseRadonTransform|nverseSeries|nverseShortTimeFourier|nverseSpectrogram|nverseSurvivalFunction|nverseTransformedRegion|nverseWaveletTransform|nverseWeierstrassP|nverseWishartMatrixDistribution|nverseZTransform|nvisible|rreduciblePolynomialQ|slandData|solatingInterval|somorphicGraphQ|somorphicSubgraphQ|sotopeData|tem|toProcess))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "System`(?:J(?:accardDissimilarity|acobiAmplitude|acobiCD|acobiCN|acobiCS|acobiDC|acobiDN|acobiDS|acobiEpsilon|acobiNC|acobiND|acobiNS|acobiP|acobiSC|acobiSD|acobiSN|acobiSymbol|acobiZN|acobiZeta|ankoGroupJ1|ankoGroupJ2|ankoGroupJ3|ankoGroupJ4|arqueBeraALMTest|ohnsonDistribution|oin|oinAcross|oinForm|oinedCurve|ordanDecomposition|ordanModelDecomposition|uliaSetBoettcher|uliaSetIterationCount|uliaSetPlot|uliaSetPoints|ulianDate))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "System`(?:K(?:CoreComponents|Distribution|EdgeConnectedComponents|EdgeConnectedGraphQ|VertexConnectedComponents|VertexConnectedGraphQ|agiChart|aiserBesselWindow|aiserWindow|almanEstimator|almanFilter|arhunenLoeveDecomposition|aryTree|atzCentrality|elvinBei|elvinBer|elvinKei|elvinKer|endallTau|endallTauTest|ernelMixtureDistribution|ernelObject|ernels|ey|eyComplement|eyDrop|eyDropFrom|eyExistsQ|eyFreeQ|eyIntersection|eyMap|eyMemberQ|eySelect|eySort|eySortBy|eyTake|eyUnion|eyValueMap|eyValuePattern|eys|illProcess|irchhoffGraph|irchhoffMatrix|leinInvariantJ|napsackSolve|nightTourGraph|notData|nownUnitQ|ochCurve|olmogorovSmirnovTest|roneckerDelta|roneckerModelDecomposition|roneckerProduct|roneckerSymbol|uiperTest|umaraswamyDistribution|urtosis|uwaharaFilter))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "System`(?:L(?:ABColor|CHColor|CM|QEstimatorGains|QGRegulator|QOutputRegulatorGains|QRegulatorGains|UDecomposition|UVColor|abel|abeled|aguerreL|akeData|ambdaComponents|ameC|ameCPrime|ameEigenvalueA|ameEigenvalueB|ameS|ameSPrime|aminaData|anczosWindow|andauDistribution|anguageData|anguageIdentify|aplaceDistribution|aplaceTransform|aplacian|aplacianFilter|aplacianGaussianFilter|aplacianPDETerm|ast|atitude|atitudeLongitude|atticeData|atticeReduce|aunchKernels|ayeredGraphPlot|ayeredGraphPlot3D|eafCount|eapVariant|eapYearQ|earnDistribution|earnedDistribution|eastSquares|eastSquaresFilterKernel|eftArrow|eftArrowBar|eftArrowRightArrow|eftDownTeeVector|eftDownVector|eftDownVectorBar|eftRightArrow|eftRightVector|eftTee|eftTeeArrow|eftTeeVector|eftTriangle|eftTriangleBar|eftTriangleEqual|eftUpDownVector|eftUpTeeVector|eftUpVector|eftUpVectorBar|eftVector|eftVectorBar|egended|egendreP|egendreQ|ength|engthWhile|erchPhi|ess|essEqual|essEqualGreater|essEqualThan|essFullEqual|essGreater|essLess|essSlantEqual|essThan|essTilde|etterCounts|etterNumber|etterQ|evel|eveneTest|eviCivitaTensor|evyDistribution|exicographicOrder|exicographicSort|ibraryDataType|ibraryFunction|ibraryFunctionError|ibraryFunctionInformation|ibraryFunctionLoad|ibraryFunctionUnload|ibraryLoad|ibraryUnload|iftingFilterData|iftingWaveletTransform|ighter|ikelihood|imit|indleyDistribution|ine|ineBreakChart|ineGraph|ineIntegralConvolutionPlot|ineLegend|inearFractionalOptimization|inearFractionalTransform|inearGradientFilling|inearGradientImage|inearModelFit|inearOptimization|inearRecurrence|inearSolve|inearSolveFunction|inearizingTransformationData|inkActivate|inkClose|inkConnect|inkCreate|inkInterrupt|inkLaunch|inkObject|inkPatterns|inkRankCentrality|inkRead|inkReadyQ|inkWrite|inks|iouvilleLambda|ist|istAnimate|istContourPlot|istContourPlot3D|istConvolve|istCorrelate|istCurvePathPlot|istDeconvolve|istDensityPlot|istDensityPlot3D|istFourierSequenceTransform|istInterpolation|istLineIntegralConvolutionPlot|istLinePlot|istLinePlot3D|istLogLinearPlot|istLogLogPlot|istLogPlot|istPicker|istPickerBox|istPlay|istPlot|istPlot3D|istPointPlot3D|istPolarPlot|istQ|istSliceContourPlot3D|istSliceDensityPlot3D|istSliceVectorPlot3D|istStepPlot|istStreamDensityPlot|istStreamPlot|istStreamPlot3D|istSurfacePlot3D|istVectorDensityPlot|istVectorDisplacementPlot|istVectorDisplacementPlot3D|istVectorPlot|istVectorPlot3D|istZTransform|ocalAdaptiveBinarize|ocalCache|ocalClusteringCoefficient|ocalEvaluate|ocalObject|ocalObjects|ocalSubmit|ocalSymbol|ocalTime|ocalTimeZone|ocationEquivalenceTest|ocationTest|ocator|ocatorPane|og|og10|og2|ogBarnesG|ogGamma|ogGammaDistribution|ogIntegral|ogLikelihood|ogLinearPlot|ogLogPlot|ogLogisticDistribution|ogMultinormalDistribution|ogNormalDistribution|ogPlot|ogRankTest|ogSeriesDistribution|ogicalExpand|ogisticDistribution|ogisticSigmoid|ogitModelFit|ongLeftArrow|ongLeftRightArrow|ongRightArrow|ongest|ongestCommonSequence|ongestCommonSequencePositions|ongestCommonSubsequence|ongestCommonSubsequencePositions|ongestOrderedSequence|ongitude|ookup|oopFreeGraphQ|owerCaseQ|owerLeftArrow|owerRightArrow|owerTriangularMatrix|owerTriangularMatrixQ|owerTriangularize|owpassFilter|ucasL|uccioSamiComponents|unarEclipse|yapunovSolve|yonsGroupLy))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "System`(?:M(?:AProcess|achineNumberQ|agnify|ailReceiverFunction|ajority|akeBoxes|akeExpression|anagedLibraryExpressionID|anagedLibraryExpressionQ|andelbrotSetBoettcher|andelbrotSetDistance|andelbrotSetIterationCount|andelbrotSetMemberQ|andelbrotSetPlot|angoldtLambda|anhattanDistance|anipulate|anipulator|annWhitneyTest|annedSpaceMissionData|antissaExponent|ap|apAll|apApply|apAt|apIndexed|apThread|archenkoPasturDistribution|arcumQ|ardiaCombinedTest|ardiaKurtosisTest|ardiaSkewnessTest|arginalDistribution|arkovProcessProperties|assConcentrationCondition|assFluxValue|assImpermeableBoundaryValue|assOutflowValue|assSymmetryValue|assTransferValue|assTransportPDEComponent|atchQ|atchingDissimilarity|aterialShading|athMLForm|athematicalFunctionData|athieuC|athieuCPrime|athieuCharacteristicA|athieuCharacteristicB|athieuCharacteristicExponent|athieuGroupM11|athieuGroupM12|athieuGroupM22|athieuGroupM23|athieuGroupM24|athieuS|athieuSPrime|atrices|atrixExp|atrixForm|atrixFunction|atrixLog|atrixNormalDistribution|atrixPlot|atrixPower|atrixPropertyDistribution|atrixQ|atrixRank|atrixTDistribution|ax|axDate|axDetect|axFilter|axLimit|axMemoryUsed|axStableDistribution|axValue|aximalBy|aximize|axwellDistribution|cLaughlinGroupMcL|ean|eanClusteringCoefficient|eanDegreeConnectivity|eanDeviation|eanFilter|eanGraphDistance|eanNeighborDegree|eanShift|eanShiftFilter|edian|edianDeviation|edianFilter|edicalTestData|eijerG|eijerGReduce|eixnerDistribution|ellinConvolve|ellinTransform|emberQ|emoryAvailable|emoryConstrained|emoryInUse|engerMesh|enuPacket|enuView|erge|ersennePrimeExponent|ersennePrimeExponentQ|eshCellCount|eshCellIndex|eshCells|eshConnectivityGraph|eshCoordinates|eshPrimitives|eshRegion|eshRegionQ|essage|essageDialog|essageList|essageName|essagePacket|essages|eteorShowerData|exicanHatWavelet|eyerWavelet|in|inDate|inDetect|inFilter|inLimit|inMax|inStableDistribution|inValue|ineralData|inimalBy|inimalPolynomial|inimalStateSpaceModel|inimize|inimumTimeIncrement|inkowskiQuestionMark|inorPlanetData|inors|inus|inusPlus|issing|issingQ|ittagLefflerE|ixedFractionParts|ixedGraphQ|ixedMagnitude|ixedRadix|ixedRadixQuantity|ixedUnit|ixtureDistribution|od|odelPredictiveController|odularInverse|odularLambda|odule|oebiusMu|oment|omentConvert|omentEvaluate|omentGeneratingFunction|omentOfInertia|onitor|onomialList|onsterGroupM|oonPhase|oonPosition|orletWavelet|orphologicalBinarize|orphologicalBranchPoints|orphologicalComponents|orphologicalEulerNumber|orphologicalGraph|orphologicalPerimeter|orphologicalTransform|ortalityData|ost|ountainData|ouseAnnotation|ouseAppearance|ousePosition|ouseover|ovieData|ovingAverage|ovingMap|ovingMedian|oyalDistribution|ulticolumn|ultigraphQ|ultinomial|ultinomialDistribution|ultinormalDistribution|ultiplicativeOrder|ultiplySides|ultivariateHypergeometricDistribution|ultivariatePoissonDistribution|ultivariateTDistribution))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "System`(?:N(?:|ArgMax|ArgMin|Cache|CaputoD|DEigensystem|DEigenvalues|DSolve|DSolveValue|Expectation|FractionalD|Integrate|MaxValue|Maximize|MinValue|Minimize|Probability|Product|Roots|Solve|SolveValues|Sum|akagamiDistribution|ameQ|ames|and|earest|earestFunction|earestMeshCells|earestNeighborGraph|earestTo|ebulaData|eedlemanWunschSimilarity|eeds|egative|egativeBinomialDistribution|egativeDefiniteMatrixQ|egativeMultinomialDistribution|egativeSemidefiniteMatrixQ|egativelyOrientedPoints|eighborhoodData|eighborhoodGraph|est|estGraph|estList|estWhile|estWhileList|estedGreaterGreater|estedLessLess|eumannValue|evilleThetaC|evilleThetaD|evilleThetaN|evilleThetaS|extCell|extDate|extPrime|icholsPlot|ightHemisphere|onCommutativeMultiply|onNegative|onPositive|oncentralBetaDistribution|oncentralChiSquareDistribution|oncentralFRatioDistribution|oncentralStudentTDistribution|ondimensionalizationTransform|oneTrue|onlinearModelFit|onlinearStateSpaceModel|onlocalMeansFilter|or|orlundB|orm|ormal|ormalDistribution|ormalMatrixQ|ormalize|ormalizedSquaredEuclideanDistance|ot|otCongruent|otCupCap|otDoubleVerticalBar|otElement|otEqualTilde|otExists|otGreater|otGreaterEqual|otGreaterFullEqual|otGreaterGreater|otGreaterLess|otGreaterSlantEqual|otGreaterTilde|otHumpDownHump|otHumpEqual|otLeftTriangle|otLeftTriangleBar|otLeftTriangleEqual|otLess|otLessEqual|otLessFullEqual|otLessGreater|otLessLess|otLessSlantEqual|otLessTilde|otNestedGreaterGreater|otNestedLessLess|otPrecedes|otPrecedesEqual|otPrecedesSlantEqual|otPrecedesTilde|otReverseElement|otRightTriangle|otRightTriangleBar|otRightTriangleEqual|otSquareSubset|otSquareSubsetEqual|otSquareSuperset|otSquareSupersetEqual|otSubset|otSubsetEqual|otSucceeds|otSucceedsEqual|otSucceedsSlantEqual|otSucceedsTilde|otSuperset|otSupersetEqual|otTilde|otTildeEqual|otTildeFullEqual|otTildeTilde|otVerticalBar|otebook|otebookApply|otebookClose|otebookDelete|otebookDirectory|otebookEvaluate|otebookFileName|otebookFind|otebookGet|otebookImport|otebookInformation|otebookLocate|otebookObject|otebookOpen|otebookPrint|otebookPut|otebookRead|otebookSave|otebookSelection|otebookTemplate|otebookWrite|otebooks|othing|uclearExplosionData|uclearReactorData|ullSpace|umberCompose|umberDecompose|umberDigit|umberExpand|umberFieldClassNumber|umberFieldDiscriminant|umberFieldFundamentalUnits|umberFieldIntegralBasis|umberFieldNormRepresentatives|umberFieldRegulator|umberFieldRootsOfUnity|umberFieldSignature|umberForm|umberLinePlot|umberQ|umerator|umeratorDenominator|umericQ|umericalOrder|umericalSort|uttallWindow|yquistPlot))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "System`(?:O(?:|NanGroupON|bservabilityGramian|bservabilityMatrix|bservableDecomposition|bservableModelQ|ceanData|ctahedron|ddQ|ff|ffset|n|nce|pacity|penAppend|penRead|penWrite|pener|penerView|pening|perate|ptimumFlowData|ptionValue|ptional|ptionalElement|ptions|ptionsPattern|r|rder|rderDistribution|rderedQ|rdering|rderingBy|rderlessPatternSequence|rnsteinUhlenbeckProcess|rthogonalMatrixQ|rthogonalize|uter|uterPolygon|uterPolyhedron|utputControllabilityMatrix|utputControllableModelQ|utputForm|utputNamePacket|utputResponse|utputStream|verBar|verDot|verHat|verTilde|verVector|verflow|verlay|verscript|verscriptBox|wenT|wnValues))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "System`(?:P(?:DF|ERTDistribution|IDTune|acletDataRebuild|acletDirectoryLoad|acletDirectoryUnload|acletDisable|acletEnable|acletFind|acletFindRemote|acletInstall|acletInstallSubmit|acletNewerQ|acletObject|acletSiteObject|acletSiteRegister|acletSiteUnregister|acletSiteUpdate|acletSites|acletUninstall|adLeft|adRight|addedForm|adeApproximant|ageRankCentrality|airedBarChart|airedHistogram|airedSmoothHistogram|airedTTest|airedZTest|aletteNotebook|alindromeQ|ane|aneSelector|anel|arabolicCylinderD|arallelArray|arallelAxisPlot|arallelCombine|arallelDo|arallelEvaluate|arallelKernels|arallelMap|arallelNeeds|arallelProduct|arallelSubmit|arallelSum|arallelTable|arallelTry|arallelepiped|arallelize|arallelogram|arameterMixtureDistribution|arametricConvexOptimization|arametricFunction|arametricNDSolve|arametricNDSolveValue|arametricPlot|arametricPlot3D|arametricRegion|arentBox|arentCell|arentDirectory|arentNotebook|aretoDistribution|aretoPickandsDistribution|arkData|art|artOfSpeech|artialCorrelationFunction|articleAcceleratorData|articleData|artition|artitionsP|artitionsQ|arzenWindow|ascalDistribution|aste|asteButton|athGraph|athGraphQ|attern|atternSequence|atternTest|aulWavelet|auliMatrix|ause|eakDetect|eanoCurve|earsonChiSquareTest|earsonCorrelationTest|earsonDistribution|ercentForm|erfectNumber|erfectNumberQ|erimeter|eriodicBoundaryCondition|eriodogram|eriodogramArray|ermanent|ermissionsGroup|ermissionsGroupMemberQ|ermissionsGroups|ermissionsKey|ermissionsKeys|ermutationCycles|ermutationCyclesQ|ermutationGroup|ermutationLength|ermutationList|ermutationListQ|ermutationMatrix|ermutationMax|ermutationMin|ermutationOrder|ermutationPower|ermutationProduct|ermutationReplace|ermutationSupport|ermutations|ermute|eronaMalikFilter|ersonData|etersenGraph|haseMargins|hongShading|hysicalSystemData|ick|ieChart|ieChart3D|iecewise|iecewiseExpand|illaiTrace|illaiTraceTest|ingTime|ixelValue|ixelValuePositions|laced|laceholder|lanarAngle|lanarFaceList|lanarGraph|lanarGraphQ|lanckRadiationLaw|laneCurveData|lanetData|lanetaryMoonData|lantData|lay|lot|lot3D|luralize|lus|lusMinus|ochhammer|oint|ointFigureChart|ointLegend|ointLight|ointSize|oissonConsulDistribution|oissonDistribution|oissonPDEComponent|oissonProcess|oissonWindow|olarPlot|olyGamma|olyLog|olyaAeppliDistribution|olygon|olygonAngle|olygonCoordinates|olygonDecomposition|olygonalNumber|olyhedron|olyhedronAngle|olyhedronCoordinates|olyhedronData|olyhedronDecomposition|olyhedronGenus|olynomialExpressionQ|olynomialExtendedGCD|olynomialGCD|olynomialLCM|olynomialMod|olynomialQ|olynomialQuotient|olynomialQuotientRemainder|olynomialReduce|olynomialRemainder|olynomialSumOfSquaresList|opupMenu|opupView|opupWindow|osition|ositionIndex|ositionLargest|ositionSmallest|ositive|ositiveDefiniteMatrixQ|ositiveSemidefiniteMatrixQ|ositivelyOrientedPoints|ossibleZeroQ|ostfix|ower|owerDistribution|owerExpand|owerMod|owerModList|owerRange|owerSpectralDensity|owerSymmetricPolynomial|owersRepresentations|reDecrement|reIncrement|recedenceForm|recedes|recedesEqual|recedesSlantEqual|recedesTilde|recision|redict|redictorFunction|redictorMeasurements|redictorMeasurementsObject|reemptProtect|refix|repend|rependTo|reviousCell|reviousDate|riceGraphDistribution|rime|rimeNu|rimeOmega|rimePi|rimePowerQ|rimeQ|rimeZetaP|rimitivePolynomialQ|rimitiveRoot|rimitiveRootList|rincipalComponents|rintTemporary|rintableASCIIQ|rintout3D|rism|rivateKey|robability|robabilityDistribution|robabilityPlot|robabilityScalePlot|robitModelFit|rocessConnection|rocessInformation|rocessObject|rocessParameterAssumptions|rocessParameterQ|rocessStatus|rocesses|roduct|roductDistribution|roductLog|rogressIndicator|rojection|roportion|roportional|rotect|roteinData|runing|seudoInverse|sychrometricPropertyData|ublicKey|ulsarData|ut|utAppend|yramid))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "System`(?:Q(?:Binomial|Factorial|Gamma|HypergeometricPFQ|Pochhammer|PolyGamma|RDecomposition|nDispersion|uadraticIrrationalQ|uadraticOptimization|uantile|uantilePlot|uantity|uantityArray|uantityDistribution|uantityForm|uantityMagnitude|uantityQ|uantityUnit|uantityVariable|uantityVariableCanonicalUnit|uantityVariableDimensions|uantityVariableIdentifier|uantityVariablePhysicalQuantity|uartileDeviation|uartileSkewness|uartiles|uery|ueueProperties|ueueingNetworkProcess|ueueingProcess|uiet|uietEcho|uotient|uotientRemainder))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "System`(?:R(?:GBColor|Solve|SolveValue|adialAxisPlot|adialGradientFilling|adialGradientImage|adialityCentrality|adicalBox|adioButton|adioButtonBar|adon|adonTransform|amanujanTau|amanujanTauL|amanujanTauTheta|amanujanTauZ|amp|andomChoice|andomColor|andomComplex|andomDate|andomEntity|andomFunction|andomGeneratorState|andomGeoPosition|andomGraph|andomImage|andomInteger|andomPermutation|andomPoint|andomPolygon|andomPolyhedron|andomPrime|andomReal|andomSample|andomTime|andomVariate|andomWalkProcess|andomWord|ange|angeFilter|ankedMax|ankedMin|arerProbability|aster|aster3D|asterize|ational|ationalExpressionQ|ationalize|atios|awBoxes|awData|ayleighDistribution|e|eIm|eImPlot|eactionPDETerm|ead|eadByteArray|eadLine|eadList|eadString|ealAbs|ealDigits|ealExponent|ealSign|eap|econstructionMesh|ectangle|ectangleChart|ectangleChart3D|ectangularRepeatingElement|ecurrenceFilter|ecurrenceTable|educe|efine|eflectionMatrix|eflectionTransform|efresh|egion|egionBinarize|egionBoundary|egionBounds|egionCentroid|egionCongruent|egionConvert|egionDifference|egionDilation|egionDimension|egionDisjoint|egionDistance|egionDistanceFunction|egionEmbeddingDimension|egionEqual|egionErosion|egionFit|egionImage|egionIntersection|egionMeasure|egionMember|egionMemberFunction|egionMoment|egionNearest|egionNearestFunction|egionPlot|egionPlot3D|egionProduct|egionQ|egionResize|egionSimilar|egionSymmetricDifference|egionUnion|egionWithin|egularExpression|egularPolygon|egularlySampledQ|elationGraph|eleaseHold|eliabilityDistribution|eliefImage|eliefPlot|emove|emoveAlphaChannel|emoveBackground|emoveDiacritics|emoveInputStreamMethod|emoveOutputStreamMethod|emoveUsers|enameDirectory|enameFile|enewalProcess|enkoChart|epairMesh|epeated|epeatedNull|epeatedTiming|epeatingElement|eplace|eplaceAll|eplaceAt|eplaceImageValue|eplaceList|eplacePart|eplacePixelValue|eplaceRepeated|esamplingAlgorithmData|escale|escalingTransform|esetDirectory|esidue|esidueSum|esolve|esourceData|esourceObject|esourceSearch|esponseForm|est|estricted|esultant|eturn|eturnExpressionPacket|eturnPacket|eturnTextPacket|everse|everseBiorthogonalSplineWavelet|everseElement|everseEquilibrium|everseGraph|everseSort|everseSortBy|everseUpEquilibrium|evolutionPlot3D|iccatiSolve|iceDistribution|idgeFilter|iemannR|iemannSiegelTheta|iemannSiegelZ|iemannXi|iffle|ightArrow|ightArrowBar|ightArrowLeftArrow|ightComposition|ightCosetRepresentative|ightDownTeeVector|ightDownVector|ightDownVectorBar|ightTee|ightTeeArrow|ightTeeVector|ightTriangle|ightTriangleBar|ightTriangleEqual|ightUpDownVector|ightUpTeeVector|ightUpVector|ightUpVectorBar|ightVector|ightVectorBar|iskAchievementImportance|iskReductionImportance|obustConvexOptimization|ogersTanimotoDissimilarity|ollPitchYawAngles|ollPitchYawMatrix|omanNumeral|oot|ootApproximant|ootIntervals|ootLocusPlot|ootMeanSquare|ootOfUnityQ|ootReduce|ootSum|oots|otate|otateLeft|otateRight|otationMatrix|otationTransform|ound|ow|owBox|owReduce|udinShapiro|udvalisGroupRu|ule|uleDelayed|ulePlot|un|unProcess|unThrough|ussellRaoDissimilarity))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "System`(?:S(?:ARIMAProcess|ARMAProcess|ASTriangle|SSTriangle|ameAs|ameQ|ampledSoundFunction|ampledSoundList|atelliteData|atisfiabilityCount|atisfiabilityInstances|atisfiableQ|ave|avitzkyGolayMatrix|awtoothWave|cale|caled|calingMatrix|calingTransform|can|cheduledTask|churDecomposition|cientificForm|corerGi|corerGiPrime|corerHi|corerHiPrime|ec|ech|echDistribution|econdOrderConeOptimization|ectorChart|ectorChart3D|eedRandom|elect|electComponents|electFirst|electedCells|electedNotebook|electionCreateCell|electionEvaluate|electionEvaluateCreateCell|electionMove|emanticImport|emanticImportString|emanticInterpretation|emialgebraicComponentInstances|emidefiniteOptimization|endMail|endMessage|equence|equenceAlignment|equenceCases|equenceCount|equenceFold|equenceFoldList|equencePosition|equenceReplace|equenceSplit|eries|eriesCoefficient|eriesData|erviceConnect|erviceDisconnect|erviceExecute|erviceObject|essionSubmit|essionTime|et|etAccuracy|etAlphaChannel|etAttributes|etCloudDirectory|etCookies|etDelayed|etDirectory|etEnvironment|etFileDate|etOptions|etPermissions|etPrecision|etSelectedNotebook|etSharedFunction|etSharedVariable|etStreamPosition|etSystemOptions|etUsers|etter|etterBar|etting|hallow|hannonWavelet|hapiroWilkTest|hare|harpen|hearingMatrix|hearingTransform|hellRegion|henCastanMatrix|hiftRegisterSequence|hiftedGompertzDistribution|hort|hortDownArrow|hortLeftArrow|hortRightArrow|hortTimeFourier|hortTimeFourierData|hortUpArrow|hortest|hortestPathFunction|how|iderealTime|iegelTheta|iegelTukeyTest|ierpinskiCurve|ierpinskiMesh|ign|ignTest|ignature|ignedRankTest|ignedRegionDistance|impleGraph|impleGraphQ|implePolygonQ|implePolyhedronQ|implex|implify|in|inIntegral|inc|inghMaddalaDistribution|ingularValueDecomposition|ingularValueList|ingularValuePlot|inh|inhIntegral|ixJSymbol|keleton|keletonTransform|kellamDistribution|kewNormalDistribution|kewness|kip|liceContourPlot3D|liceDensityPlot3D|liceDistribution|liceVectorPlot3D|lideView|lider|lider2D|liderBox|lot|lotSequence|mallCircle|mithDecomposition|mithDelayCompensator|mithWatermanSimilarity|moothDensityHistogram|moothHistogram|moothHistogram3D|moothKernelDistribution|nDispersion|ocketConnect|ocketListen|ocketListener|ocketObject|ocketOpen|ocketReadMessage|ocketReadyQ|ocketWaitAll|ocketWaitNext|ockets|okalSneathDissimilarity|olarEclipse|olarSystemFeatureData|olarTime|olidAngle|olidData|olidRegionQ|olve|olveAlways|olveValues|ort|ortBy|ound|oundNote|ourcePDETerm|ow|paceCurveData|pacer|pan|parseArray|parseArrayQ|patialGraphDistribution|patialMedian|peak|pearmanRankTest|pearmanRho|peciesData|pectralLineData|pectrogram|pectrogramArray|pecularity|peechSynthesize|pellingCorrectionList|phere|pherePoints|phericalBesselJ|phericalBesselY|phericalHankelH1|phericalHankelH2|phericalHarmonicY|phericalPlot3D|phericalShell|pheroidalEigenvalue|pheroidalJoiningFactor|pheroidalPS|pheroidalPSPrime|pheroidalQS|pheroidalQSPrime|pheroidalRadialFactor|pheroidalS1|pheroidalS1Prime|pheroidalS2|pheroidalS2Prime|plicedDistribution|plit|plitBy|pokenString|potLight|qrt|qrtBox|quare|quareFreeQ|quareIntersection|quareMatrixQ|quareRepeatingElement|quareSubset|quareSubsetEqual|quareSuperset|quareSupersetEqual|quareUnion|quareWave|quaredEuclideanDistance|quaresR|tableDistribution|tack|tackBegin|tackComplete|tackInhibit|tackedDateListPlot|tackedListPlot|tadiumShape|tandardAtmosphereData|tandardDeviation|tandardDeviationFilter|tandardForm|tandardOceanData|tandardize|tandbyDistribution|tar|tarClusterData|tarData|tarGraph|tartProcess|tateFeedbackGains|tateOutputEstimator|tateResponse|tateSpaceModel|tateSpaceTransform|tateTransformationLinearize|tationaryDistribution|tationaryWaveletPacketTransform|tationaryWaveletTransform|tatusArea|tatusCentrality|tieltjesGamma|tippleShading|tirlingS1|tirlingS2|toppingPowerData|tratonovichProcess|treamDensityPlot|treamPlot|treamPlot3D|treamPosition|treams|tringCases|tringContainsQ|tringCount|tringDelete|tringDrop|tringEndsQ|tringExpression|tringExtract|tringForm|tringFormat|tringFormatQ|tringFreeQ|tringInsert|tringJoin|tringLength|tringMatchQ|tringPadLeft|tringPadRight|tringPart|tringPartition|tringPosition|tringQ|tringRepeat|tringReplace|tringReplaceList|tringReplacePart|tringReverse|tringRiffle|tringRotateLeft|tringRotateRight|tringSkeleton|tringSplit|tringStartsQ|tringTake|tringTakeDrop|tringTemplate|tringToByteArray|tringToStream|tringTrim|tripBoxes|tructuralImportance|truveH|truveL|tudentTDistribution|tyle|tyleBox|tyleData|ubMinus|ubPlus|ubStar|ubValues|ubdivide|ubfactorial|ubgraph|ubresultantPolynomialRemainders|ubresultantPolynomials|ubresultants|ubscript|ubscriptBox|ubsequences|ubset|ubsetEqual|ubsetMap|ubsetQ|ubsets|ubstitutionSystem|ubsuperscript|ubsuperscriptBox|ubtract|ubtractFrom|ubtractSides|ucceeds|ucceedsEqual|ucceedsSlantEqual|ucceedsTilde|uccess|uchThat|um|umConvergence|unPosition|unrise|unset|uperDagger|uperMinus|uperPlus|uperStar|upernovaData|uperscript|uperscriptBox|uperset|upersetEqual|urd|urfaceArea|urfaceData|urvivalDistribution|urvivalFunction|urvivalModel|urvivalModelFit|uzukiDistribution|uzukiGroupSuz|watchLegend|witch|ymbol|ymbolName|ymletWavelet|ymmetric|ymmetricGroup|ymmetricKey|ymmetricMatrixQ|ymmetricPolynomial|ymmetricReduction|ymmetrize|ymmetrizedArray|ymmetrizedArrayRules|ymmetrizedDependentComponents|ymmetrizedIndependentComponents|ymmetrizedReplacePart|ynonyms|yntaxInformation|yntaxLength|yntaxPacket|yntaxQ|ystemDialogInput|ystemInformation|ystemOpen|ystemOptions|ystemProcessData|ystemProcesses|ystemsConnectionsModel|ystemsModelControllerData|ystemsModelDelay|ystemsModelDelayApproximate|ystemsModelDelete|ystemsModelDimensions|ystemsModelExtract|ystemsModelFeedbackConnect|ystemsModelLinearity|ystemsModelMerge|ystemsModelOrder|ystemsModelParallelConnect|ystemsModelSeriesConnect|ystemsModelStateFeedbackConnect|ystemsModelVectorRelativeOrders))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "System`(?:T(?:Test|abView|able|ableForm|agBox|agSet|agSetDelayed|agUnset|ake|akeDrop|akeLargest|akeLargestBy|akeList|akeSmallest|akeSmallestBy|akeWhile|ally|an|anh|askAbort|askExecute|askObject|askRemove|askResume|askSuspend|askWait|asks|autologyQ|eXForm|elegraphProcess|emplateApply|emplateBox|emplateExpression|emplateIf|emplateObject|emplateSequence|emplateSlot|emplateWith|emporalData|ensorContract|ensorDimensions|ensorExpand|ensorProduct|ensorRank|ensorReduce|ensorSymmetry|ensorTranspose|ensorWedge|erminatedEvaluation|estReport|estReportObject|estResultObject|etrahedron|ext|extCell|extData|extGrid|extPacket|extRecognize|extSentences|extString|extTranslation|extWords|exture|herefore|hermodynamicData|hermometerGauge|hickness|hinning|hompsonGroupTh|hread|hreeJSymbol|hreshold|hrough|hrow|hueMorse|humbnail|ideData|ilde|ildeEqual|ildeFullEqual|ildeTilde|imeConstrained|imeObject|imeObjectQ|imeRemaining|imeSeries|imeSeriesAggregate|imeSeriesForecast|imeSeriesInsert|imeSeriesInvertibility|imeSeriesMap|imeSeriesMapThread|imeSeriesModel|imeSeriesModelFit|imeSeriesResample|imeSeriesRescale|imeSeriesShift|imeSeriesThread|imeSeriesWindow|imeSystemConvert|imeUsed|imeValue|imeZoneConvert|imeZoneOffset|imelinePlot|imes|imesBy|iming|itsGroupT|oBoxes|oCharacterCode|oContinuousTimeModel|oDiscreteTimeModel|oEntity|oExpression|oInvertibleTimeSeries|oLowerCase|oNumberField|oPolarCoordinates|oRadicals|oRules|oSphericalCoordinates|oString|oUpperCase|oeplitzMatrix|ogether|oggler|ogglerBar|ooltip|oonShading|opHatTransform|opologicalSort|orus|orusGraph|otal|otalVariationFilter|ouchPosition|r|race|raceDialog|racePrint|raceScan|racyWidomDistribution|radingChart|raditionalForm|ransferFunctionCancel|ransferFunctionExpand|ransferFunctionFactor|ransferFunctionModel|ransferFunctionPoles|ransferFunctionTransform|ransferFunctionZeros|ransformationFunction|ransformationMatrix|ransformedDistribution|ransformedField|ransformedProcess|ransformedRegion|ransitiveClosureGraph|ransitiveReductionGraph|ranslate|ranslationTransform|ransliterate|ranspose|ravelDirections|ravelDirectionsData|ravelDistance|ravelDistanceList|ravelTime|reeForm|reeGraph|reeGraphQ|reePlot|riangle|riangleWave|riangularDistribution|riangulateMesh|rigExpand|rigFactor|rigFactorList|rigReduce|rigToExp|rigger|rimmedMean|rimmedVariance|ropicalStormData|rueQ|runcatedDistribution|runcatedPolyhedron|sallisQExponentialDistribution|sallisQGaussianDistribution|ube|ukeyLambdaDistribution|ukeyWindow|unnelData|uples|uranGraph|uringMachine|uttePolynomial|woWayRule|ypeHint))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "System`(?:U(?:RL|RLBuild|RLDecode|RLDispatcher|RLDownload|RLEncode|RLExecute|RLExpand|RLParse|RLQueryDecode|RLQueryEncode|RLRead|RLResponseTime|RLShorten|RLSubmit|nateQ|ncompress|nderBar|nderflow|nderoverscript|nderoverscriptBox|nderscript|nderscriptBox|nderseaFeatureData|ndirectedEdge|ndirectedGraph|ndirectedGraphQ|nequal|nequalTo|nevaluated|niformDistribution|niformGraphDistribution|niformPolyhedron|niformSumDistribution|ninstall|nion|nionPlus|nique|nitBox|nitConvert|nitDimensions|nitRootTest|nitSimplify|nitStep|nitTriangle|nitVector|nitaryMatrixQ|nitize|niverseModelData|niversityData|nixTime|nprotect|nsameQ|nset|nsetShared|ntil|pArrow|pArrowBar|pArrowDownArrow|pDownArrow|pEquilibrium|pSet|pSetDelayed|pTee|pTeeArrow|pTo|pValues|pdate|pperCaseQ|pperLeftArrow|pperRightArrow|pperTriangularMatrix|pperTriangularMatrixQ|pperTriangularize|psample|singFrontEnd))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "System`(?:V(?:alueQ|alues|ariables|ariance|arianceEquivalenceTest|arianceGammaDistribution|arianceTest|ectorAngle|ectorDensityPlot|ectorDisplacementPlot|ectorDisplacementPlot3D|ectorGreater|ectorGreaterEqual|ectorLess|ectorLessEqual|ectorPlot|ectorPlot3D|ectorQ|ectors|ee|erbatim|erificationTest|ertexAdd|ertexChromaticNumber|ertexComponent|ertexConnectivity|ertexContract|ertexCorrelationSimilarity|ertexCosineSimilarity|ertexCount|ertexCoverQ|ertexDegree|ertexDelete|ertexDiceSimilarity|ertexEccentricity|ertexInComponent|ertexInComponentGraph|ertexInDegree|ertexIndex|ertexJaccardSimilarity|ertexList|ertexOutComponent|ertexOutComponentGraph|ertexOutDegree|ertexQ|ertexReplace|ertexTransitiveGraphQ|ertexWeightedGraphQ|erticalBar|erticalGauge|erticalSeparator|erticalSlider|erticalTilde|oiceStyleData|oigtDistribution|olcanoData|olume|onMisesDistribution|oronoiMesh))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "System`(?:W(?:aitAll|aitNext|akebyDistribution|alleniusHypergeometricDistribution|aringYuleDistribution|arpingCorrespondence|arpingDistance|atershedComponents|atsonUSquareTest|attsStrogatzGraphDistribution|avePDEComponent|aveletBestBasis|aveletFilterCoefficients|aveletImagePlot|aveletListPlot|aveletMapIndexed|aveletMatrixPlot|aveletPhi|aveletPsi|aveletScalogram|aveletThreshold|eakStationarity|eaklyConnectedComponents|eaklyConnectedGraphComponents|eaklyConnectedGraphQ|eatherData|eatherForecastData|eberE|edge|eibullDistribution|eierstrassE1|eierstrassE2|eierstrassE3|eierstrassEta1|eierstrassEta2|eierstrassEta3|eierstrassHalfPeriodW1|eierstrassHalfPeriodW2|eierstrassHalfPeriodW3|eierstrassHalfPeriods|eierstrassInvariantG2|eierstrassInvariantG3|eierstrassInvariants|eierstrassP|eierstrassPPrime|eierstrassSigma|eierstrassZeta|eightedAdjacencyGraph|eightedAdjacencyMatrix|eightedData|eightedGraphQ|elchWindow|heelGraph|henEvent|hich|hile|hiteNoiseProcess|hittakerM|hittakerW|ienerFilter|ienerProcess|ignerD|ignerSemicircleDistribution|ikipediaData|ilksW|ilksWTest|indDirectionData|indSpeedData|indVectorData|indingCount|indingPolygon|insorizedMean|insorizedVariance|ishartMatrixDistribution|ith|olframAlpha|olframLanguageData|ordCloud|ordCount|ordCounts|ordData|ordDefinition|ordFrequency|ordFrequencyData|ordList|ordStem|ordTranslation|rite|riteLine|riteString|ronskian))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "System`(?:X(?:MLElement|MLObject|MLTemplate|YZColor|nor|or))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "System`(?:Y(?:uleDissimilarity))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "System`(?:Z(?:IPCodeData|Test|Transform|ernikeR|eroSymmetric|eta|etaZero|ipfDistribution))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "System`(?:A(?:cceptanceThreshold|ccuracyGoal|ctiveStyle|ddOnHelpPath|djustmentBoxOptions|lignment|lignmentPoint|llowGroupClose|llowInlineCells|llowLooseGrammar|llowReverseGroupClose|llowScriptLevelChange|llowVersionUpdate|llowedCloudExtraParameters|llowedCloudParameterExtensions|llowedDimensions|llowedFrequencyRange|llowedHeads|lternativeHypothesis|ltitudeMethod|mbiguityFunction|natomySkinStyle|nchoredSearch|nimationDirection|nimationRate|nimationRepetitions|nimationRunTime|nimationRunning|nimationTimeIndex|nnotationRules|ntialiasing|ppearance|ppearanceElements|ppearanceRules|spectRatio|ssociationFormat|ssumptions|synchronous|ttachedCell|udioChannelAssignment|udioEncoding|udioInputDevice|udioLabel|udioOutputDevice|uthentication|utoAction|utoCopy|utoDelete|utoGeneratedPackage|utoIndent|utoItalicWords|utoMultiplicationSymbol|utoOpenNotebooks|utoOpenPalettes|utoOperatorRenderings|utoRemove|utoScroll|utoSpacing|utoloadPath|utorunSequencing|xes|xesEdge|xesLabel|xesOrigin|xesStyle))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "System`(?:B(?:ackground|arOrigin|arSpacing|aseStyle|aselinePosition|inaryFormat|ookmarks|ooleanStrings|oundaryStyle|oxBaselineShift|oxFormFormatTypes|oxFrame|oxMargins|oxRatios|oxStyle|oxed|ubbleScale|ubbleSizes|uttonBoxOptions|uttonData|uttonFunction|uttonMinHeight|uttonSource|yteOrdering))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "System`(?:C(?:alendarType|alloutMarker|alloutStyle|aptureRunning|aseOrdering|elestialSystem|ellAutoOverwrite|ellBaseline|ellBracketOptions|ellChangeTimes|ellContext|ellDingbat|ellDingbatMargin|ellDynamicExpression|ellEditDuplicate|ellEpilog|ellEvaluationDuplicate|ellEvaluationFunction|ellEventActions|ellFrame|ellFrameColor|ellFrameLabelMargins|ellFrameLabels|ellFrameMargins|ellGrouping|ellGroupingRules|ellHorizontalScrolling|ellID|ellLabel|ellLabelAutoDelete|ellLabelMargins|ellLabelPositioning|ellLabelStyle|ellLabelTemplate|ellMargins|ellOpen|ellProlog|ellSize|ellTags|haracterEncoding|haracterEncodingsPath|hartBaseStyle|hartElementFunction|hartElements|hartLabels|hartLayout|hartLegends|hartStyle|lassPriors|lickToCopyEnabled|lipPlanes|lipPlanesStyle|lipRange|lippingStyle|losingAutoSave|loudBase|loudObjectNameFormat|loudObjectURLType|lusterDissimilarityFunction|odeAssistOptions|olorCoverage|olorFunction|olorFunctionBinning|olorFunctionScaling|olorRules|olorSelectorSettings|olorSpace|olumnAlignments|olumnLines|olumnSpacings|olumnWidths|olumnsEqual|ombinerFunction|ommonDefaultFormatTypes|ommunityBoundaryStyle|ommunityLabels|ommunityRegionStyle|ompilationOptions|ompilationTarget|ompiled|omplexityFunction|ompressionLevel|onfidenceLevel|onfidenceRange|onfidenceTransform|onfigurationPath|onstants|ontentPadding|ontentSelectable|ontentSize|ontinuousAction|ontourLabels|ontourShading|ontourStyle|ontours|ontrolPlacement|ontrolType|ontrollerLinking|ontrollerMethod|ontrollerPath|ontrolsRendering|onversionRules|ookieFunction|oordinatesToolOptions|opyFunction|opyable|ornerNeighbors|ounterAssignments|ounterFunction|ounterIncrements|ounterStyleMenuListing|ovarianceEstimatorFunction|reateCellID|reateIntermediateDirectories|riterionFunction|ubics|urveClosed))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "System`(?:D(?:ataRange|ataReversed|atasetTheme|ateFormat|ateFunction|ateGranularity|ateReduction|ateTicksFormat|ayCountConvention|efaultDuplicateCellStyle|efaultDuration|efaultElement|efaultFontProperties|efaultFormatType|efaultInlineFormatType|efaultNaturalLanguage|efaultNewCellStyle|efaultNewInlineCellStyle|efaultNotebook|efaultOptions|efaultPrintPrecision|efaultStyleDefinitions|einitialization|eletable|eleteContents|eletionWarning|elimiterAutoMatching|elimiterFlashTime|elimiterMatching|elimiters|eliveryFunction|ependentVariables|eployed|escriptorStateSpace|iacriticalPositioning|ialogProlog|ialogSymbols|igitBlock|irectedEdges|irection|iscreteVariables|ispersionEstimatorFunction|isplayAllSteps|isplayFunction|istanceFunction|istributedContexts|ithering|ividers|ockedCell|ockedCells|ynamicEvaluationTimeout|ynamicModuleValues|ynamicUpdating))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "System`(?:E(?:clipseType|dgeCapacity|dgeCost|dgeLabelStyle|dgeLabels|dgeShapeFunction|dgeStyle|dgeValueRange|dgeValueSizes|dgeWeight|ditCellTagsSettings|ditable|lidedForms|nabled|pilog|pilogFunction|scapeRadius|valuatable|valuationCompletionAction|valuationElements|valuationMonitor|valuator|valuatorNames|ventLabels|xcludePods|xcludedContexts|xcludedForms|xcludedLines|xcludedPhysicalQuantities|xclusions|xclusionsStyle|xponentFunction|xponentPosition|xponentStep|xponentialFamily|xportAutoReplacements|xpressionUUID|xtension|xtentElementFunction|xtentMarkers|xtentSize|xternalDataCharacterEncoding|xternalOptions|xternalTypeSignature))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "System`(?:F(?:aceGrids|aceGridsStyle|ailureAction|eatureNames|eatureTypes|eedbackSector|eedbackSectorStyle|eedbackType|ieldCompletionFunction|ieldHint|ieldHintStyle|ieldMasked|ieldSize|ileNameDialogSettings|ileNameForms|illing|illingStyle|indSettings|itRegularization|ollowRedirects|ontColor|ontFamily|ontSize|ontSlant|ontSubstitutions|ontTracking|ontVariations|ontWeight|orceVersionInstall|ormBoxOptions|ormLayoutFunction|ormProtectionMethod|ormatType|ormatTypeAutoConvert|ourierParameters|ractionBoxOptions|ractionLine|rame|rameBoxOptions|rameLabel|rameMargins|rameRate|rameStyle|rameTicks|rameTicksStyle|rontEndEventActions|unctionSpace))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "System`(?:G(?:apPenalty|augeFaceElementFunction|augeFaceStyle|augeFrameElementFunction|augeFrameSize|augeFrameStyle|augeLabels|augeMarkers|augeStyle|aussianIntegers|enerateConditions|eneratedCell|eneratedDocumentBinding|eneratedParameters|eneratedQuantityMagnitudes|eneratorDescription|eneratorHistoryLength|eneratorOutputType|eoArraySize|eoBackground|eoCenter|eoGridLines|eoGridLinesStyle|eoGridRange|eoGridRangePadding|eoLabels|eoLocation|eoModel|eoProjection|eoRange|eoRangePadding|eoResolution|eoScaleBar|eoServer|eoStylingImageFunction|eoZoomLevel|radient|raphHighlight|raphHighlightStyle|raphLayerStyle|raphLayers|raphLayout|ridCreationSettings|ridDefaultElement|ridFrame|ridFrameMargins|ridLines|ridLinesStyle|roupActionBase|roupPageBreakWithin))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "System`(?:H(?:eaderAlignment|eaderBackground|eaderDisplayFunction|eaderLines|eaderSize|eaderStyle|eads|elpBrowserSettings|iddenItems|olidayCalendar|yperlinkAction|yphenation))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "System`(?:I(?:conRules|gnoreCase|gnoreDiacritics|gnorePunctuation|mageCaptureFunction|mageFormattingWidth|mageLabels|mageLegends|mageMargins|magePadding|magePreviewFunction|mageRegion|mageResolution|mageSize|mageSizeAction|mageSizeMultipliers|magingDevice|mportAutoReplacements|mportOptions|ncludeConstantBasis|ncludeDefinitions|ncludeDirectories|ncludeFileExtension|ncludeGeneratorTasks|ncludeInflections|ncludeMetaInformation|ncludePods|ncludeQuantities|ncludeSingularSolutions|ncludeWindowTimes|ncludedContexts|ndeterminateThreshold|nflationMethod|nheritScope|nitialSeeding|nitialization|nitializationCell|nitializationCellEvaluation|nitializationCellWarning|nputAliases|nputAssumptions|nputAutoReplacements|nsertResults|nsertionFunction|nteractive|nterleaving|nterpolationOrder|nterpolationPoints|nterpretationBoxOptions|nterpretationFunction|ntervalMarkers|ntervalMarkersStyle|nverseFunctions|temAspectRatio|temDisplayFunction|temSize|temStyle))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "System`(?:J(?:oined))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "System`(?:K(?:eepExistingVersion|eyCollisionFunction|eypointStrength))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "System`(?:L(?:abelStyle|abelVisibility|abelingFunction|abelingSize|anguage|anguageCategory|ayerSizeFunction|eaderSize|earningRate|egendAppearance|egendFunction|egendLabel|egendLayout|egendMargins|egendMarkerSize|egendMarkers|ighting|ightingAngle|imitsPositioning|imitsPositioningTokens|ineBreakWithin|ineIndent|ineIndentMaxFraction|ineIntegralConvolutionScale|ineSpacing|inearOffsetFunction|inebreakAdjustments|inkFunction|inkProtocol|istFormat|istPickerBoxOptions|ocalizeVariables|ocatorAutoCreate|ocatorRegion|ooping))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "System`(?:M(?:agnification|ailAddressValidation|ailResponseFunction|ailSettings|asking|atchLocalNames|axCellMeasure|axColorDistance|axDuration|axExtraBandwidths|axExtraConditions|axFeatureDisplacement|axFeatures|axItems|axIterations|axMixtureKernels|axOverlapFraction|axPlotPoints|axRecursion|axStepFraction|axStepSize|axSteps|emoryConstraint|enuCommandKey|enuSortingValue|enuStyle|esh|eshCellHighlight|eshCellLabel|eshCellMarker|eshCellShapeFunction|eshCellStyle|eshFunctions|eshQualityGoal|eshRefinementFunction|eshShading|eshStyle|etaInformation|ethod|inColorDistance|inIntervalSize|inPointSeparation|issingBehavior|issingDataMethod|issingDataRules|issingString|issingStyle|odal|odulus|ultiaxisArrangement|ultiedgeStyle|ultilaunchWarning|ultilineFunction|ultiselection))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "System`(?:N(?:icholsGridLines|ominalVariables|onConstants|ormFunction|ormalized|ormalsFunction|otebookAutoSave|otebookBrowseDirectory|otebookConvertSettings|otebookDynamicExpression|otebookEventActions|otebookPath|otebooksMenu|otificationFunction|ullRecords|ullWords|umberFormat|umberMarks|umberMultiplier|umberPadding|umberPoint|umberSeparator|umberSigns|yquistGridLines))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "System`(?:O(?:pacityFunction|pacityFunctionScaling|peratingSystem|ptionInspectorSettings|utputAutoOverwrite|utputSizeLimit|verlaps|verscriptBoxOptions|verwriteTarget))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "System`(?:P(?:IDDerivativeFilter|IDFeedforward|acletSite|adding|addingSize|ageBreakAbove|ageBreakBelow|ageBreakWithin|ageFooterLines|ageFooters|ageHeaderLines|ageHeaders|ageTheme|ageWidth|alettePath|aneled|aragraphIndent|aragraphSpacing|arallelization|arameterEstimator|artBehavior|artitionGranularity|assEventsDown|assEventsUp|asteBoxFormInlineCells|ath|erformanceGoal|ermissions|haseRange|laceholderReplace|layRange|lotLabel|lotLabels|lotLayout|lotLegends|lotMarkers|lotPoints|lotRange|lotRangeClipping|lotRangePadding|lotRegion|lotStyle|lotTheme|odStates|odWidth|olarAxes|olarAxesOrigin|olarGridLines|olarTicks|oleZeroMarkers|recisionGoal|referencesPath|reprocessingRules|reserveColor|reserveImageOptions|rincipalValue|rintAction|rintPrecision|rintingCopies|rintingOptions|rintingPageRange|rintingStartingPageNumber|rintingStyleEnvironment|rintout3DPreviewer|rivateCellOptions|rivateEvaluationOptions|rivateFontOptions|rivateNotebookOptions|rivatePaths|rocessDirectory|rocessEnvironment|rocessEstimator|rogressReporting|rolog|ropagateAborts))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "System`(?:Q(?:uartics))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "System`(?:R(?:adicalBoxOptions|andomSeeding|asterSize|eImLabels|eImStyle|ealBlockDiagonalForm|ecognitionPrior|ecordLists|ecordSeparators|eferenceLineStyle|efreshRate|egionBoundaryStyle|egionFillingStyle|egionFunction|egionSize|egularization|enderingOptions|equiredPhysicalQuantities|esampling|esamplingMethod|esolveContextAliases|estartInterval|eturnReceiptFunction|evolutionAxis|otateLabel|otationAction|oundingRadius|owAlignments|owLines|owMinHeight|owSpacings|owsEqual|ulerUnits|untimeAttributes|untimeOptions))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "System`(?:S(?:ameTest|ampleDepth|ampleRate|amplingPeriod|aveConnection|aveDefinitions|aveable|caleDivisions|caleOrigin|calePadding|caleRangeStyle|caleRanges|calingFunctions|cientificNotationThreshold|creenStyleEnvironment|criptBaselineShifts|criptLevel|criptMinSize|criptSizeMultipliers|crollPosition|crollbars|crollingOptions|ectorOrigin|ectorSpacing|electable|elfLoopStyle|eriesTermGoal|haringList|howAutoSpellCheck|howAutoStyles|howCellBracket|howCellLabel|howCellTags|howClosedCellArea|howContents|howCursorTracker|howGroupOpener|howPageBreaks|howSelection|howShortBoxForm|howSpecialCharacters|howStringCharacters|hrinkingDelay|ignPadding|ignificanceLevel|imilarityRules|ingleLetterItalics|liderBoxOptions|ortedBy|oundVolume|pacings|panAdjustments|panCharacterRounding|panLineThickness|panMaxSize|panMinSize|panSymmetric|pecificityGoal|pellingCorrection|pellingDictionaries|pellingDictionariesPath|pellingOptions|phericalRegion|plineClosed|plineDegree|plineKnots|plineWeights|qrtBoxOptions|tabilityMargins|tabilityMarginsStyle|tandardized|tartingStepSize|tateSpaceRealization|tepMonitor|trataVariables|treamColorFunction|treamColorFunctionScaling|treamMarkers|treamPoints|treamScale|treamStyle|trictInequalities|tripOnInput|tripWrapperBoxes|tructuredSelection|tyleBoxAutoDelete|tyleDefinitions|tyleHints|tyleMenuListing|tyleNameDialogSettings|tyleSheetPath|ubscriptBoxOptions|ubsuperscriptBoxOptions|ubtitleEncoding|uperscriptBoxOptions|urdForm|ynchronousInitialization|ynchronousUpdating|yntaxForm|ystemHelpPath|ystemsModelLabels))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "System`(?:T(?:abFilling|abSpacings|ableAlignments|ableDepth|ableDirections|ableHeadings|ableSpacing|agBoxOptions|aggingRules|argetFunctions|argetUnits|emplateBoxOptions|emporalRegularity|estID|extAlignment|extClipboardType|extJustification|extureCoordinateFunction|extureCoordinateScaling|icks|icksStyle|imeConstraint|imeDirection|imeFormat|imeGoal|imeSystem|imeZone|okenWords|olerance|ooltipDelay|ooltipStyle|otalWidth|ouchscreenAutoZoom|ouchscreenControlPlacement|raceAbove|raceBackward|raceDepth|raceForward|raceOff|raceOn|raceOriginal|rackedSymbols|rackingFunction|raditionalFunctionNotation|ransformationClass|ransformationFunctions|ransitionDirection|ransitionDuration|ransitionEffect|ranslationOptions|ravelMethod|rendStyle|rig))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "System`(?:U(?:nderoverscriptBoxOptions|nderscriptBoxOptions|ndoOptions|ndoTrackedVariables|nitSystem|nityDimensions|nsavedVariables|pdateInterval|pdatePacletSites|tilityFunction))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "System`(?:V(?:alidationLength|alidationSet|alueDimensions|arianceEstimatorFunction|ectorAspectRatio|ectorColorFunction|ectorColorFunctionScaling|ectorMarkers|ectorPoints|ectorRange|ectorScaling|ectorSizes|ectorStyle|erifyConvergence|erifySecurityCertificates|erifySolutions|erifyTestAssumptions|ersionedPreferences|ertexCapacity|ertexColors|ertexCoordinates|ertexDataCoordinates|ertexLabelStyle|ertexLabels|ertexNormals|ertexShape|ertexShapeFunction|ertexSize|ertexStyle|ertexTextureCoordinates|ertexWeight|ideoEncoding|iewAngle|iewCenter|iewMatrix|iewPoint|iewProjection|iewRange|iewVector|iewVertical|isible))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "System`(?:W(?:aveletScale|eights|hitePoint|indowClickSelect|indowElements|indowFloating|indowFrame|indowFrameElements|indowMargins|indowOpacity|indowSize|indowStatusArea|indowTitle|indowToolbars|ordOrientation|ordSearch|ordSelectionFunction|ordSeparators|ordSpacings|orkingPrecision|rapAround))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "System`(?:Z(?:eroTest|eroWidthTimes))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "System`(?:A(?:bove|fter|lgebraics|ll|nonymous|utomatic|xis))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "System`(?:B(?:ack|ackward|aseline|efore|elow|lack|lue|old|ooleans|ottom|oxes|rown|yte))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "System`(?:C(?:atalan|ellStyle|enter|haracter|omplexInfinity|omplexes|onstant|yan))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "System`(?:D(?:ashed|efaultAxesStyle|efaultBaseStyle|efaultBoxStyle|efaultFaceGridsStyle|efaultFieldHintStyle|efaultFrameStyle|efaultFrameTicksStyle|efaultGridLinesStyle|efaultLabelStyle|efaultMenuStyle|efaultTicksStyle|efaultTooltipStyle|egree|elimiter|igitCharacter|otDashed|otted))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "System`(?:E(?:|ndOfBuffer|ndOfFile|ndOfLine|ndOfString|ulerGamma|xpression))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "System`(?:F(?:alse|lat|ontProperties|orward|orwardBackward|riday|ront|rontEndDynamicExpression|ull))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "System`(?:G(?:eneral|laisher|oldenAngle|oldenRatio|ray|reen))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "System`(?:H(?:ere|exadecimalCharacter|oldAll|oldAllComplete|oldFirst|oldRest))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "System`(?:I(?:|ndeterminate|nfinity|nherited|nteger|ntegers|talic))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "System`(?:K(?:hinchin))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "System`(?:L(?:arge|arger|eft|etterCharacter|ightBlue|ightBrown|ightCyan|ightGray|ightGreen|ightMagenta|ightOrange|ightPink|ightPurple|ightRed|ightYellow|istable|ocked))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "System`(?:M(?:achinePrecision|agenta|anual|edium|eshCellCentroid|eshCellMeasure|eshCellQuality|onday))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "System`(?:N(?:HoldAll|HoldFirst|HoldRest|egativeIntegers|egativeRationals|egativeReals|oWhitespace|onNegativeIntegers|onNegativeRationals|onNegativeReals|onPositiveIntegers|onPositiveRationals|onPositiveReals|one|ow|ull|umber|umberString|umericFunction))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "System`(?:O(?:neIdentity|range|rderless))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "System`(?:P(?:i|ink|lain|ositiveIntegers|ositiveRationals|ositiveReals|rimes|rotected|unctuationCharacter|urple))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "System`(?:R(?:ationals|eadProtected|eal|eals|ecord|ed|ight))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "System`(?:S(?:aturday|equenceHold|mall|maller|panFromAbove|panFromBoth|panFromLeft|tartOfLine|tartOfString|tring|truckthrough|tub|unday))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "System`(?:T(?:emporary|hick|hin|hursday|iny|oday|omorrow|op|ransparent|rue|uesday))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "System`(?:U(?:ndefined|nderlined))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "System`(?:W(?:ednesday|hite|hitespace|hitespaceCharacter|ord|ordBoundary|ordCharacter))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "System`(?:Y(?:ellow|esterday))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "System`(?:\\$(?:Aborted|ActivationKey|AllowDataUpdates|AllowInternet|AssertFunction|Assumptions|AudioInputDevices|AudioOutputDevices|BaseDirectory|BasePacletsDirectory|BatchInput|BatchOutput|ByteOrdering|CacheBaseDirectory|Canceled|CharacterEncoding|CharacterEncodings|CloudAccountName|CloudBase|CloudConnected|CloudCreditsAvailable|CloudEvaluation|CloudExpressionBase|CloudObjectNameFormat|CloudObjectURLType|CloudRootDirectory|CloudSymbolBase|CloudUserID|CloudUserUUID|CloudVersion|CommandLine|CompilationTarget|Context|ContextAliases|ContextPath|ControlActiveSetting|Cookies|CreationDate|CurrentLink|CurrentTask|DateStringFormat|DefaultAudioInputDevice|DefaultAudioOutputDevice|DefaultFrontEnd|DefaultImagingDevice|DefaultKernels|DefaultLocalBase|DefaultLocalKernel|Display|DisplayFunction|DistributedContexts|DynamicEvaluation|Echo|EmbedCodeEnvironments|EmbeddableServices|Epilog|EvaluationCloudBase|EvaluationCloudObject|EvaluationEnvironment|ExportFormats|Failed|FontFamilies|FrontEnd|FrontEndSession|GeoLocation|GeoLocationCity|GeoLocationCountry|GeoLocationSource|HomeDirectory|IgnoreEOF|ImageFormattingWidth|ImageResolution|ImagingDevice|ImagingDevices|ImportFormats|InitialDirectory|Input|InputFileName|InputStreamMethods|Inspector|InstallationDirectory|InterpreterTypes|IterationLimit|KernelCount|KernelID|Language|LibraryPath|LicenseExpirationDate|LicenseID|LicenseServer|Linked|LocalBase|LocalSymbolBase|MachineAddresses|MachineDomains|MachineEpsilon|MachineID|MachineName|MachinePrecision|MachineType|MaxExtraPrecision|MaxMachineNumber|MaxNumber|MaxPiecewiseCases|MaxPrecision|MaxRootDegree|MessageGroups|MessageList|MessagePrePrint|Messages|MinMachineNumber|MinNumber|MinPrecision|MobilePhone|ModuleNumber|NetworkConnected|NewMessage|NewSymbol|NotebookInlineStorageLimit|Notebooks|NumberMarks|OperatingSystem|Output|OutputSizeLimit|OutputStreamMethods|Packages|ParentLink|ParentProcessID|PasswordFile|Path|PathnameSeparator|PerformanceGoal|Permissions|PlotTheme|Printout3DPreviewer|ProcessID|ProcessorCount|ProcessorType|ProgressReporting|RandomGeneratorState|RecursionLimit|ReleaseNumber|RequesterAddress|RequesterCloudUserID|RequesterCloudUserUUID|RequesterWolframID|RequesterWolframUUID|RootDirectory|ScriptCommandLine|ScriptInputString|Services|SessionID|SharedFunctions|SharedVariables|SoundDisplayFunction|SynchronousEvaluation|System|SystemCharacterEncoding|SystemID|SystemShell|SystemTimeZone|SystemWordLength|TemplatePath|TemporaryDirectory|TimeUnit|TimeZone|TimeZoneEntity|TimedOut|UnitSystem|Urgent|UserAgentString|UserBaseDirectory|UserBasePacletsDirectory|UserDocumentsDirectory|UserURLBase|Username|Version|VersionNumber|WolframDocumentsDirectory|WolframID|WolframUUID))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "System`(?:A(?:bortScheduledTask|ctive|lgebraicRules|lternateImage|natomyForm|nimationCycleOffset|nimationCycleRepetitions|nimationDisplayTime|spectRatioFixed|stronomicalData|synchronousTaskObject|synchronousTasks|udioDevice|udioLooping))(?![`$[:alnum:]])", + "name": "invalid.deprecated.wolfram" + }, + { + "match": "System`(?:B(?:uttonEvaluator|uttonExpandable|uttonFrame|uttonMargins|uttonNote|uttonStyle))(?![`$[:alnum:]])", + "name": "invalid.deprecated.wolfram" + }, + { + "match": "System`(?:C(?:DFInformation|hebyshevDistance|lassifierInformation|lipFill|olorOutput|olumnForm|ompose|onstantArrayLayer|onstantPlusLayer|onstantTimesLayer|onstrainedMax|onstrainedMin|ontourGraphics|ontourLines|onversionOptions|reateScheduledTask|reateTemporary|urry))(?![`$[:alnum:]])", + "name": "invalid.deprecated.wolfram" + }, + { + "match": "System`(?:D(?:atabinRemove|ate|ebug|efaultColor|efaultFont|ensityGraphics|isplay|isplayString|otPlusLayer|ragAndDrop))(?![`$[:alnum:]])", + "name": "invalid.deprecated.wolfram" + }, + { + "match": "System`(?:E(?:dgeLabeling|dgeRenderingFunction|valuateScheduledTask|xpectedValue))(?![`$[:alnum:]])", + "name": "invalid.deprecated.wolfram" + }, + { + "match": "System`(?:F(?:actorComplete|ontForm|ormTheme|romDate|ullOptions))(?![`$[:alnum:]])", + "name": "invalid.deprecated.wolfram" + }, + { + "match": "System`(?:G(?:raphStyle|raphicsArray|raphicsSpacing|ridBaseline))(?![`$[:alnum:]])", + "name": "invalid.deprecated.wolfram" + }, + { + "match": "System`(?:H(?:TMLSave|eldPart|iddenSurface|omeDirectory))(?![`$[:alnum:]])", + "name": "invalid.deprecated.wolfram" + }, + { + "match": "System`(?:I(?:mageRotated|nstanceNormalizationLayer))(?![`$[:alnum:]])", + "name": "invalid.deprecated.wolfram" + }, + { + "match": "System`(?:L(?:UBackSubstitution|egendreType|ightSources|inearProgramming|inkOpen|iteral|ongestMatch))(?![`$[:alnum:]])", + "name": "invalid.deprecated.wolfram" + }, + { + "match": "System`(?:M(?:eshRange|oleculeEquivalentQ))(?![`$[:alnum:]])", + "name": "invalid.deprecated.wolfram" + }, + { + "match": "System`(?:N(?:etInformation|etSharedArray|extScheduledTaskTime|otebookCreate))(?![`$[:alnum:]])", + "name": "invalid.deprecated.wolfram" + }, + { + "match": "System`(?:O(?:penTemporary))(?![`$[:alnum:]])", + "name": "invalid.deprecated.wolfram" + }, + { + "match": "System`(?:P(?:IDData|ackingMethod|ersistentValue|ixelConstrained|lot3Matrix|lotDivision|lotJoined|olygonIntersections|redictorInformation|roperties|roperty|ropertyList|ropertyValue))(?![`$[:alnum:]])", + "name": "invalid.deprecated.wolfram" + }, + { + "match": "System`(?:R(?:andom|asterArray|ecognitionThreshold|elease|emoteKernelObject|emoveAsynchronousTask|emoveProperty|emoveScheduledTask|enderAll|eplaceHeldPart|esetScheduledTask|esumePacket|unScheduledTask))(?![`$[:alnum:]])", + "name": "invalid.deprecated.wolfram" + }, + { + "match": "System`(?:S(?:cheduledTaskActiveQ|cheduledTaskInformation|cheduledTaskObject|cheduledTasks|creenRectangle|electionAnimate|equenceAttentionLayer|equenceForm|etProperty|hading|hortestMatch|ingularValues|kinStyle|ocialMediaData|tartAsynchronousTask|tartScheduledTask|tateDimensions|topAsynchronousTask|topScheduledTask|tructuredArray|tyleForm|tylePrint|ubscripted|urfaceColor|urfaceGraphics|uspendPacket|ystemModelProgressReporting))(?![`$[:alnum:]])", + "name": "invalid.deprecated.wolfram" + }, + { + "match": "System`(?:T(?:eXSave|extStyle|imeWarpingCorrespondence|imeWarpingDistance|oDate|oFileName|oHeldExpression))(?![`$[:alnum:]])", + "name": "invalid.deprecated.wolfram" + }, + { + "match": "System`(?:U(?:RLFetch|RLFetchAsynchronous|RLSave|RLSaveAsynchronous))(?![`$[:alnum:]])", + "name": "invalid.deprecated.wolfram" + }, + { + "match": "System`(?:V(?:ectorScale|ertexCoordinateRules|ertexLabeling|ertexRenderingFunction))(?![`$[:alnum:]])", + "name": "invalid.deprecated.wolfram" + }, + { + "match": "System`(?:W(?:aitAsynchronousTask|indowMovable))(?![`$[:alnum:]])", + "name": "invalid.deprecated.wolfram" + }, + { + "match": "System`(?:\\$(?:AsynchronousTask|ConfiguredKernels|DefaultFont|EntityStores|FormatType|HTTPCookies|InstallationDate|MachineDomain|ProductInformation|ProgramName|RandomState|ScheduledTask|SummaryBoxDataSizeLimit|TemporaryPrefix|TextStyle|TopDirectory|UserAddOnsDirectory))(?![`$[:alnum:]])", + "name": "invalid.deprecated.wolfram" + }, + { + "match": "System`(?:A(?:ctionDelay|ctionMenuBox|ctionMenuBoxOptions|ctiveItem|lgebraicRulesData|lignmentMarker|llowAdultContent|llowChatServices|llowIncomplete|nalytic|nimatorBox|nimatorBoxOptions|nimatorElements|ppendCheck|rgumentCountQ|rrow3DBox|rrowBox|uthenticate|utoEvaluateEvents|utoIndentSpacings|utoMatch|utoNumberFormatting|utoQuoteCharacters|utoScaling|utoStyleOptions|utoStyleWords|utomaticImageSize|xis3DBox|xis3DBoxOptions|xisBox|xisBoxOptions))(?![`$[:alnum:]])", + "name": "support.function.undocumented.wolfram" + }, + { + "match": "System`(?:B(?:SplineCurve3DBox|SplineCurve3DBoxOptions|SplineCurveBox|SplineCurveBoxOptions|SplineSurface3DBox|SplineSurface3DBoxOptions|ackFaceColor|ackFaceGlowColor|ackFaceOpacity|ackFaceSpecularColor|ackFaceSpecularExponent|ackFaceSurfaceAppearance|ackFaceTexture|ackgroundAppearance|ackgroundTasksSettings|acksubstitution|eveled|ezierCurve3DBox|ezierCurve3DBoxOptions|ezierCurveBox|ezierCurveBoxOptions|lankForm|ounds|ox|oxDimensions|oxForm|oxID|oxRotation|oxRotationPoint|ra|raKet|rowserCategory|uttonCell|uttonContents|uttonStyleMenuListing))(?![`$[:alnum:]])", + "name": "support.function.undocumented.wolfram" + }, + { + "match": "System`(?:C(?:acheGraphics|achedValue|ardinalBSplineBasis|ellBoundingBox|ellContents|ellElementSpacings|ellElementsBoundingBox|ellFrameStyle|ellInsertionPointCell|ellTrayPosition|ellTrayWidgets|hangeOptions|hannelDatabin|hannelListenerWait|hannelPreSendFunction|hartElementData|hartElementDataFunction|heckAll|heckboxBox|heckboxBoxOptions|ircleBox|lipboardNotebook|lockwiseContourIntegral|losed|losingEvent|loudConnections|loudObjectInformation|loudObjectInformationData|loudUserID|oarse|oefficientDomain|olonForm|olorSetterBox|olorSetterBoxOptions|olumnBackgrounds|ompilerEnvironmentAppend|ompletionsListPacket|omponentwiseContextMenu|ompressedData|oneBox|onicHullRegion3DBox|onicHullRegion3DBoxOptions|onicHullRegionBox|onicHullRegionBoxOptions|onnect|ontentsBoundingBox|ontextMenu|ontinuation|ontourIntegral|ontourSmoothing|ontrolAlignment|ontrollerDuration|ontrollerInformationData|onvertToPostScript|onvertToPostScriptPacket|ookies|opyTag|ounterBox|ounterBoxOptions|ounterClockwiseContourIntegral|ounterEvaluator|ounterStyle|uboidBox|uboidBoxOptions|urlyDoubleQuote|urlyQuote|ylinderBox|ylinderBoxOptions))(?![`$[:alnum:]])", + "name": "support.function.undocumented.wolfram" + }, + { + "match": "System`(?:D(?:OSTextFormat|ampingFactor|ataCompression|atasetDisplayPanel|ateDelimiters|ebugTag|ecimal|efault2DTool|efault3DTool|efaultAttachedCellStyle|efaultControlPlacement|efaultDockedCellStyle|efaultInputFormatType|efaultOutputFormatType|efaultStyle|efaultTextFormatType|efaultTextInlineFormatType|efaultValue|efineExternal|egreeLexicographic|egreeReverseLexicographic|eleteWithContents|elimitedArray|estroyAfterEvaluation|eviceOpenQ|ialogIndent|ialogLevel|ifferenceOrder|igitBlockMinimum|isableConsolePrintPacket|iskBox|iskBoxOptions|ispatchQ|isplayRules|isplayTemporary|istributionDomain|ivergence|ocumentGeneratorInformationData|omainRegistrationInformation|oubleContourIntegral|oublyInfinite|own|rawBackFaces|rawFrontFaces|rawHighlighted|ualLinearProgramming|umpGet|ynamicBox|ynamicBoxOptions|ynamicLocation|ynamicModuleBox|ynamicModuleBoxOptions|ynamicModuleParent|ynamicName|ynamicNamespace|ynamicReference|ynamicWrapperBox|ynamicWrapperBoxOptions))(?![`$[:alnum:]])", + "name": "support.function.undocumented.wolfram" + }, + { + "match": "System`(?:E(?:ditButtonSettings|liminationOrder|llipticReducedHalfPeriods|mbeddingObject|mphasizeSyntaxErrors|mpty|nableConsolePrintPacket|ndAdd|ngineEnvironment|nter|qualColumns|qualRows|quatedTo|rrorBoxOptions|rrorNorm|rrorPacket|rrorsDialogSettings|valuated|valuationMode|valuationOrder|valuationRateLimit|ventEvaluator|ventHandlerTag|xactRootIsolation|xitDialog|xpectationE|xportPacket|xpressionPacket|xternalCall|xternalFunctionName))(?![`$[:alnum:]])", + "name": "support.function.undocumented.wolfram" + }, + { + "match": "System`(?:F(?:EDisableConsolePrintPacket|EEnableConsolePrintPacket|ail|ileInformation|ileName|illForm|illedCurveBox|illedCurveBoxOptions|ine|itAll|lashSelection|ont|ontName|ontOpacity|ontPostScriptName|ontReencoding|ormatRules|ormatValues|rameInset|rameless|rontEndObject|rontEndResource|rontEndResourceString|rontEndStackSize|rontEndValueCache|rontEndVersion|rontFaceColor|rontFaceGlowColor|rontFaceOpacity|rontFaceSpecularColor|rontFaceSpecularExponent|rontFaceSurfaceAppearance|rontFaceTexture|ullAxes))(?![`$[:alnum:]])", + "name": "support.function.undocumented.wolfram" + }, + { + "match": "System`(?:G(?:eneratedCellStyles|eneric|eometricTransformation3DBox|eometricTransformation3DBoxOptions|eometricTransformationBox|eometricTransformationBoxOptions|estureHandlerTag|etContext|etFileName|etLinebreakInformationPacket|lobalPreferences|lobalSession|raphLayerLabels|raphRoot|raphics3DBox|raphics3DBoxOptions|raphicsBaseline|raphicsBox|raphicsBoxOptions|raphicsComplex3DBox|raphicsComplex3DBoxOptions|raphicsComplexBox|raphicsComplexBoxOptions|raphicsContents|raphicsData|raphicsGridBox|raphicsGroup3DBox|raphicsGroup3DBoxOptions|raphicsGroupBox|raphicsGroupBoxOptions|raphicsGrouping|raphicsStyle|reekStyle|ridBoxAlignment|ridBoxBackground|ridBoxDividers|ridBoxFrame|ridBoxItemSize|ridBoxItemStyle|ridBoxOptions|ridBoxSpacings|ridElementStyleOptions|roupOpenerColor|roupOpenerInsideFrame|roupTogetherGrouping|roupTogetherNestedGrouping))(?![`$[:alnum:]])", + "name": "support.function.undocumented.wolfram" + }, + { + "match": "System`(?:H(?:eadCompose|eaders|elpBrowserLookup|elpBrowserNotebook|elpViewerSettings|essian|exahedronBox|exahedronBoxOptions|ighlightString|omePage|orizontal|orizontalForm|orizontalScrollPosition|yperlinkCreationSettings|yphenationOptions))(?![`$[:alnum:]])", + "name": "support.function.undocumented.wolfram" + }, + { + "match": "System`(?:I(?:conizedObject|gnoreSpellCheck|mageCache|mageCacheValid|mageEditMode|mageMarkers|mageOffset|mageRangeCache|mageSizeCache|mageSizeRaw|nactiveStyle|ncludeSingularTerm|ndent|ndentMaxFraction|ndentingNewlineSpacings|ndexCreationOptions|ndexTag|nequality|nexactNumbers|nformationData|nformationDataGrid|nlineCounterAssignments|nlineCounterIncrements|nlineRules|nputFieldBox|nputFieldBoxOptions|nputGrouping|nputSettings|nputToBoxFormPacket|nsertionPointObject|nset3DBox|nset3DBoxOptions|nsetBox|nsetBoxOptions|ntegral|nterlaced|nterpolationPrecision|nterpretTemplate|nterruptSettings|nto|nvisibleApplication|nvisibleTimes|temBox|temBoxOptions))(?![`$[:alnum:]])", + "name": "support.function.undocumented.wolfram" + }, + { + "match": "System`(?:J(?:acobian|oinedCurveBox|oinedCurveBoxOptions))(?![`$[:alnum:]])", + "name": "support.function.undocumented.wolfram" + }, + { + "match": "System`(?:K(?:|ernelExecute|et))(?![`$[:alnum:]])", + "name": "support.function.undocumented.wolfram" + }, + { + "match": "System`(?:L(?:abeledSlider|ambertW|anguageOptions|aunch|ayoutInformation|exicographic|icenseID|ine3DBox|ine3DBoxOptions|ineBox|ineBoxOptions|ineBreak|ineWrapParts|inearFilter|inebreakSemicolonWeighting|inkConnectedQ|inkError|inkFlush|inkHost|inkMode|inkOptions|inkReadHeld|inkService|inkWriteHeld|istPickerBoxBackground|isten|iteralSearch|ocalizeDefinitions|ocatorBox|ocatorBoxOptions|ocatorCentering|ocatorPaneBox|ocatorPaneBoxOptions|ongEqual|ongForm|oopback))(?![`$[:alnum:]])", + "name": "support.function.undocumented.wolfram" + }, + { + "match": "System`(?:M(?:achineID|achineName|acintoshSystemPageSetup|ainSolve|aintainDynamicCaches|akeRules|atchLocalNameQ|aterial|athMLText|athematicaNotation|axBend|axPoints|enu|enuAppearance|enuEvaluator|enuItem|enuList|ergeDifferences|essageObject|essageOptions|essagesNotebook|etaCharacters|ethodOptions|inRecursion|inSize|ode|odular|onomialOrder|ouseAppearanceTag|ouseButtons|ousePointerNote|ultiLetterItalics|ultiLetterStyle|ultiplicity|ultiscriptBoxOptions))(?![`$[:alnum:]])", + "name": "support.function.undocumented.wolfram" + }, + { + "match": "System`(?:N(?:BernoulliB|ProductFactors|SumTerms|Values|amespaceBox|amespaceBoxOptions|estedScriptRules|etworkPacketRecordingDuring|ext|onAssociative|ormalGrouping|otebookDefault|otebookInterfaceObject))(?![`$[:alnum:]])", + "name": "support.function.undocumented.wolfram" + }, + { + "match": "System`(?:O(?:LEData|bjectExistsQ|pen|penFunctionInspectorPacket|penSpecialOptions|penerBox|penerBoxOptions|ptionQ|ptionValueBox|ptionValueBoxOptions|ptionsPacket|utputFormData|utputGrouping|utputMathEditExpression|ver|verlayBox|verlayBoxOptions))(?![`$[:alnum:]])", + "name": "support.function.undocumented.wolfram" + }, + { + "match": "System`(?:P(?:ackPaclet|ackage|acletDirectoryAdd|acletDirectoryRemove|acletInformation|acletObjectQ|acletUpdate|ageHeight|alettesMenuSettings|aneBox|aneBoxOptions|aneSelectorBox|aneSelectorBoxOptions|anelBox|anelBoxOptions|aperWidth|arameter|arameterVariables|arentConnect|arentForm|arentList|arenthesize|artialD|asteAutoQuoteCharacters|ausedTime|eriodicInterpolation|erpendicular|ickMode|ickedElements|ivoting|lotRangeClipPlanesStyle|oint3DBox|oint3DBoxOptions|ointBox|ointBoxOptions|olygon3DBox|olygon3DBoxOptions|olygonBox|olygonBoxOptions|olygonHoleScale|olygonScale|olyhedronBox|olyhedronBoxOptions|olynomialForm|olynomials|opupMenuBox|opupMenuBoxOptions|ostScript|recedence|redictionRoot|referencesSettings|revious|rimaryPlaceholder|rintForm|rismBox|rismBoxOptions|rivateFrontEndOptions|robabilityPr|rocessStateDomain|rocessTimeDomain|rogressIndicatorBox|rogressIndicatorBoxOptions|romptForm|yramidBox|yramidBoxOptions))(?![`$[:alnum:]])", + "name": "support.function.undocumented.wolfram" + }, + { + "match": "System`(?:R(?:adioButtonBox|adioButtonBoxOptions|andomSeed|angeSpecification|aster3DBox|aster3DBoxOptions|asterBox|asterBoxOptions|ationalFunctions|awArray|awMedium|ebuildPacletData|ectangleBox|ecurringDigitsForm|eferenceMarkerStyle|eferenceMarkers|einstall|emoved|epeatedString|esourceAcquire|esourceSubmissionObject|eturnCreatesNewCell|eturnEntersInput|eturnInputFormPacket|otationBox|otationBoxOptions|oundImplies|owBackgrounds|owHeights|uleCondition|uleForm))(?![`$[:alnum:]])", + "name": "support.function.undocumented.wolfram" + }, + { + "match": "System`(?:S(?:aveAutoDelete|caledMousePosition|cheduledTaskInformationData|criptForm|criptRules|ectionGrouping|electWithContents|election|electionCell|electionCellCreateCell|electionCellDefaultStyle|electionCellParentStyle|electionPlaceholder|elfLoops|erviceResponse|etOptionsPacket|etSecuredAuthenticationKey|etbacks|etterBox|etterBoxOptions|howAutoConvert|howCodeAssist|howControls|howGroupOpenCloseIcon|howInvisibleCharacters|howPredictiveInterface|howSyntaxStyles|hrinkWrapBoundingBox|ingleEvaluation|ingleLetterStyle|lider2DBox|lider2DBoxOptions|ocket|olveDelayed|oundAndGraphics|pace|paceForm|panningCharacters|phereBox|phereBoxOptions|tartupSound|tringBreak|tringByteCount|tripStyleOnPaste|trokeForm|tructuredArrayHeadQ|tyleKeyMapping|tyleNames|urfaceAppearance|yntax|ystemException|ystemGet|ystemInformationData|ystemStub|ystemTest))(?![`$[:alnum:]])", + "name": "support.function.undocumented.wolfram" + }, + { + "match": "System`(?:T(?:ab|abViewBox|abViewBoxOptions|ableViewBox|ableViewBoxAlignment|ableViewBoxBackground|ableViewBoxHeaders|ableViewBoxItemSize|ableViewBoxItemStyle|ableViewBoxOptions|agBoxNote|agStyle|emplateEvaluate|emplateSlotSequence|emplateUnevaluated|emplateVerbatim|emporaryVariable|ensorQ|etrahedronBox|etrahedronBoxOptions|ext3DBox|ext3DBoxOptions|extBand|extBoundingBox|extBox|extForm|extLine|extParagraph|hisLink|itleGrouping|oColor|oggle|oggleFalse|ogglerBox|ogglerBoxOptions|ooBig|ooltipBox|ooltipBoxOptions|otalHeight|raceAction|raceInternal|raceLevel|rackCellChangeTimes|raditionalNotation|raditionalOrder|ransparentColor|rapEnterKey|rapSelection|ubeBSplineCurveBox|ubeBSplineCurveBoxOptions|ubeBezierCurveBox|ubeBezierCurveBoxOptions|ubeBox|ubeBoxOptions))(?![`$[:alnum:]])", + "name": "support.function.undocumented.wolfram" + }, + { + "match": "System`(?:U(?:ntrackedVariables|p|seGraphicsRange|serDefinedWavelet|sing))(?![`$[:alnum:]])", + "name": "support.function.undocumented.wolfram" + }, + { + "match": "System`(?:V(?:2Get|alueBox|alueBoxOptions|alueForm|aluesData|ectorGlyphData|erbose|ertical|erticalForm|iewPointSelectorSettings|iewPort|irtualGroupData|isibleCell))(?![`$[:alnum:]])", + "name": "support.function.undocumented.wolfram" + }, + { + "match": "System`(?:W(?:aitUntil|ebPageMetaInformation|holeCellGroupOpener|indowPersistentStyles|indowSelected|indowWidth|olframAlphaDate|olframAlphaQuantity|olframAlphaResult|olframCloudSettings))(?![`$[:alnum:]])", + "name": "support.function.undocumented.wolfram" + }, + { + "match": "System`(?:\\$(?:ActivationGroupID|ActivationUserRegistered|AddOnsDirectory|BoxForms|CloudConnection|CloudVersionNumber|CloudWolframEngineVersionNumber|ConditionHold|DefaultMailbox|DefaultPath|FinancialDataSource|GeoEntityTypes|GeoLocationPrecision|HTMLExportRules|HTTPRequest|LaunchDirectory|LicenseProcesses|LicenseSubprocesses|LicenseType|LinkSupported|LoadedFiles|MaxLicenseProcesses|MaxLicenseSubprocesses|MinorReleaseNumber|NetworkLicense|Off|OutputForms|PatchLevelID|PermissionsGroupBase|PipeSupported|PreferencesDirectory|PrintForms|PrintLiteral|RegisteredDeviceClasses|RegisteredUserName|SecuredAuthenticationKeyTokens|SetParentLink|SoundDisplay|SuppressInputFormHeads|SystemMemory|TraceOff|TraceOn|TracePattern|TracePostAction|TracePreAction|UserAgentLanguages|UserAgentMachine|UserAgentName|UserAgentOperatingSystem|UserAgentVersion|UserName))(?![`$[:alnum:]])", + "name": "support.function.undocumented.wolfram" + }, + { + "match": "System`(?:A(?:ctiveClassification|ctiveClassificationObject|ctivePrediction|ctivePredictionObject|ddToSearchIndex|ggregatedEntityClass|ggregationLayer|ngleBisector|nimatedImage|nimationVideo|nomalyDetector|ppendLayer|pplication|pplyReaction|round|roundReplace|rrayReduce|sk|skAppend|skConfirm|skDisplay|skFunction|skState|skTemplateDisplay|skedQ|skedValue|ssessmentFunction|ssessmentResultObject|ssumeDeterministic|stroAngularSeparation|stroBackground|stroCenter|stroDistance|stroGraphics|stroGridLines|stroGridLinesStyle|stroPosition|stroProjection|stroRange|stroRangePadding|stroReferenceFrame|stroStyling|stroZoomLevel|tom|tomCoordinates|tomCount|tomDiagramCoordinates|tomLabelStyle|tomLabels|tomList|ttachCell|ttentionLayer|udioAnnotate|udioAnnotationLookup|udioIdentify|udioInstanceQ|udioPause|udioPlay|udioRecord|udioStop|udioStream|udioStreams|udioTrackApply|udioTrackSelection|utocomplete|utocompletionFunction|xiomaticTheory|xisLabel|xisObject|xisStyle))(?![`$[:alnum:]])", + "name": "support.function.experimental.wolfram" + }, + { + "match": "System`(?:B(?:asicRecurrentLayer|atchNormalizationLayer|atchSize|ayesianMaximization|ayesianMaximizationObject|ayesianMinimization|ayesianMinimizationObject|esagL|innedVariogramList|inomialPointProcess|ioSequence|ioSequenceBackTranslateList|ioSequenceComplement|ioSequenceInstances|ioSequenceModify|ioSequencePlot|ioSequenceQ|ioSequenceReverseComplement|ioSequenceTranscribe|ioSequenceTranslate|itRate|lockDiagonalMatrix|lockLowerTriangularMatrix|lockUpperTriangularMatrix|lockchainAddressData|lockchainBase|lockchainBlockData|lockchainContractValue|lockchainData|lockchainGet|lockchainKeyEncode|lockchainPut|lockchainTokenData|lockchainTransaction|lockchainTransactionData|lockchainTransactionSign|lockchainTransactionSubmit|ond|ondCount|ondLabelStyle|ondLabels|ondList|ondQ|uildCompiledComponent))(?![`$[:alnum:]])", + "name": "support.function.experimental.wolfram" + }, + { + "match": "System`(?:C(?:TCLossLayer|achePersistence|anvas|ast|ategoricalDistribution|atenateLayer|auchyPointProcess|hannelBase|hannelBrokerAction|hannelHistoryLength|hannelListen|hannelListener|hannelListeners|hannelObject|hannelReceiverFunction|hannelSend|hannelSubscribers|haracterNormalize|hemicalConvert|hemicalFormula|hemicalInstance|hemicalReaction|loudExpression|loudExpressions|loudRenderingMethod|ombinatorB|ombinatorC|ombinatorI|ombinatorK|ombinatorS|ombinatorW|ombinatorY|ombinedEntityClass|ompiledCodeFunction|ompiledComponent|ompiledExpressionDeclaration|ompiledLayer|ompilerCallback|ompilerEnvironment|ompilerEnvironmentAppendTo|ompilerEnvironmentObject|ompilerOptions|omplementedEntityClass|omputeUncertainty|onfirmQuiet|onformationMethod|onnectSystemModelComponents|onnectSystemModelController|onnectedMoleculeComponents|onnectedMoleculeQ|onnectionSettings|ontaining|ontentDetectorFunction|ontentFieldOptions|ontentLocationFunction|ontentObject|ontrastiveLossLayer|onvolutionLayer|reateChannel|reateCloudExpression|reateCompilerEnvironment|reateDataStructure|reateDataSystemModel|reateLicenseEntitlement|reateSearchIndex|reateSystemModel|reateTypeInstance|rossEntropyLossLayer|urrentNotebookImage|urrentScreenImage|urryApplied))(?![`$[:alnum:]])", + "name": "support.function.experimental.wolfram" + }, + { + "match": "System`(?:D(?:SolveChangeVariables|ataStructure|ataStructureQ|atabaseConnect|atabaseDisconnect|atabaseReference|atabinSubmit|ateInterval|eclareCompiledComponent|econvolutionLayer|ecryptFile|eleteChannel|eleteCloudExpression|eleteElements|eleteSearchIndex|erivedKey|iggleGatesPointProcess|iggleGrattonPointProcess|igitalSignature|isableFormatting|ocumentWeightingRules|otLayer|ownValuesFunction|ropoutLayer|ynamicImage))(?![`$[:alnum:]])", + "name": "support.function.experimental.wolfram" + }, + { + "match": "System`(?:E(?:choTiming|lementwiseLayer|mbeddedSQLEntityClass|mbeddedSQLExpression|mbeddingLayer|mptySpaceF|ncryptFile|ntityFunction|ntityStore|stimatedPointProcess|stimatedVariogramModel|valuationEnvironment|valuationPrivileges|xpirationDate|xpressionTree|xtendedEntityClass|xternalEvaluate|xternalFunction|xternalIdentifier|xternalObject|xternalSessionObject|xternalSessions|xternalStorageBase|xternalStorageDownload|xternalStorageGet|xternalStorageObject|xternalStoragePut|xternalStorageUpload|xternalValue|xtractLayer))(?![`$[:alnum:]])", + "name": "support.function.experimental.wolfram" + }, + { + "match": "System`(?:F(?:aceRecognize|eatureDistance|eatureExtract|eatureExtraction|eatureExtractor|eatureExtractorFunction|ileConvert|ileFormatProperties|ileNameToFormatList|ileSystemTree|ilteredEntityClass|indChannels|indEquationalProof|indExternalEvaluators|indGeometricConjectures|indImageText|indIsomers|indMoleculeSubstructure|indPointProcessParameters|indSystemModelEquilibrium|indTextualAnswer|lattenLayer|orAllType|ormControl|orwardCloudCredentials|oxHReduce|rameListVideo|romRawPointer|unctionCompile|unctionCompileExport|unctionCompileExportByteArray|unctionCompileExportLibrary|unctionCompileExportString|unctionDeclaration|unctionLayer|unctionPoles))(?![`$[:alnum:]])", + "name": "support.function.experimental.wolfram" + }, + { + "match": "System`(?:G(?:alleryView|atedRecurrentLayer|enerateDerivedKey|enerateDigitalSignature|enerateFileSignature|enerateSecuredAuthenticationKey|eneratedAssetFormat|eneratedAssetLocation|eoGraphValuePlot|eoOrientationData|eometricAssertion|eometricScene|eometricStep|eometricStylingRules|eometricTest|ibbsPointProcess|raphTree|ridVideo))(?![`$[:alnum:]])", + "name": "support.function.experimental.wolfram" + }, + { + "match": "System`(?:H(?:andlerFunctions|andlerFunctionsKeys|ardcorePointProcess|istogramPointDensity))(?![`$[:alnum:]])", + "name": "support.function.experimental.wolfram" + }, + { + "match": "System`(?:I(?:gnoreIsotopes|gnoreStereochemistry|mageAugmentationLayer|mageBoundingBoxes|mageCases|mageContainsQ|mageContents|mageGraphics|magePosition|magePyramid|magePyramidApply|mageStitch|mportedObject|ncludeAromaticBonds|ncludeHydrogens|ncludeRelatedTables|nertEvaluate|nertExpression|nfiniteFuture|nfinitePast|nhomogeneousPoissonPointProcess|nitialEvaluationHistory|nitializationObject|nitializationObjects|nitializationValue|nitialize|nputPorts|ntegrateChangeVariables|nterfaceSwitched|ntersectedEntityClass|nverseImagePyramid))(?![`$[:alnum:]])", + "name": "support.function.experimental.wolfram" + }, + { + "match": "System`(?:K(?:ernelConfiguration|ernelFunction))(?![`$[:alnum:]])", + "name": "support.function.experimental.wolfram" + }, + { + "match": "System`(?:L(?:earningRateMultipliers|ibraryFunctionDeclaration|icenseEntitlementObject|icenseEntitlements|icensingSettings|inearLayer|iteralType|oadCompiledComponent|ocalResponseNormalizationLayer|ongShortTermMemoryLayer|ossFunction))(?![`$[:alnum:]])", + "name": "support.function.experimental.wolfram" + }, + { + "match": "System`(?:M(?:IMETypeToFormatList|ailExecute|ailFolder|ailItem|ailSearch|ailServerConnect|ailServerConnection|aternPointProcess|axDisplayedChildren|axTrainingRounds|axWordGap|eanAbsoluteLossLayer|eanAround|eanPointDensity|eanSquaredLossLayer|ergingFunction|idpoint|issingValuePattern|issingValueSynthesis|olecule|oleculeAlign|oleculeContainsQ|oleculeDraw|oleculeFreeQ|oleculeGraph|oleculeMatchQ|oleculeMaximumCommonSubstructure|oleculeModify|oleculeName|oleculePattern|oleculePlot|oleculePlot3D|oleculeProperty|oleculeQ|oleculeRecognize|oleculeSubstructureCount|oleculeValue))(?![`$[:alnum:]])", + "name": "support.function.experimental.wolfram" + }, + { + "match": "System`(?:N(?:BodySimulation|BodySimulationData|earestNeighborG|estTree|etAppend|etArray|etArrayLayer|etBidirectionalOperator|etChain|etDecoder|etDelete|etDrop|etEncoder|etEvaluationMode|etExternalObject|etExtract|etFlatten|etFoldOperator|etGANOperator|etGraph|etInitialize|etInsert|etInsertSharedArrays|etJoin|etMapOperator|etMapThreadOperator|etMeasurements|etModel|etNestOperator|etPairEmbeddingOperator|etPort|etPortGradient|etPrepend|etRename|etReplace|etReplacePart|etStateObject|etTake|etTrain|etTrainResultsObject|etUnfold|etworkPacketCapture|etworkPacketRecording|etworkPacketTrace|eymanScottPointProcess|ominalScale|ormalizationLayer|umericArray|umericArrayQ|umericArrayType))(?![`$[:alnum:]])", + "name": "support.function.experimental.wolfram" + }, + { + "match": "System`(?:O(?:peratorApplied|rderingLayer|rdinalScale|utputPorts|verlayVideo))(?![`$[:alnum:]])", + "name": "support.function.experimental.wolfram" + }, + { + "match": "System`(?:P(?:acletSymbol|addingLayer|agination|airCorrelationG|arametricRampLayer|arentEdgeLabel|arentEdgeLabelFunction|arentEdgeLabelStyle|arentEdgeShapeFunction|arentEdgeStyle|arentEdgeStyleFunction|artLayer|artProtection|atternFilling|atternReaction|enttinenPointProcess|erpendicularBisector|ersistenceLocation|ersistenceTime|ersistentObject|ersistentObjects|ersistentSymbol|itchRecognize|laceholderLayer|laybackSettings|ointCountDistribution|ointDensity|ointDensityFunction|ointProcessEstimator|ointProcessFitTest|ointProcessParameterAssumptions|ointProcessParameterQ|ointStatisticFunction|ointValuePlot|oissonPointProcess|oolingLayer|rependLayer|roofObject|ublisherID))(?![`$[:alnum:]])", + "name": "support.function.experimental.wolfram" + }, + { + "match": "System`(?:Q(?:uestionGenerator|uestionInterface|uestionObject|uestionSelector))(?![`$[:alnum:]])", + "name": "support.function.experimental.wolfram" + }, + { + "match": "System`(?:R(?:andomArrayLayer|andomInstance|andomPointConfiguration|andomTree|eactionBalance|eactionBalancedQ|ecalibrationFunction|egisterExternalEvaluator|elationalDatabase|emoteAuthorizationCaching|emoteBatchJobAbort|emoteBatchJobObject|emoteBatchJobs|emoteBatchMapSubmit|emoteBatchSubmissionEnvironment|emoteBatchSubmit|emoteConnect|emoteConnectionObject|emoteEvaluate|emoteFile|emoteInputFiles|emoteProviderSettings|emoteRun|emoteRunProcess|emovalConditions|emoveAudioStream|emoveChannelListener|emoveChannelSubscribers|emoveVideoStream|eplicateLayer|eshapeLayer|esizeLayer|esourceFunction|esourceRegister|esourceRemove|esourceSubmit|esourceSystemBase|esourceSystemPath|esourceUpdate|esourceVersion|everseApplied|ipleyK|ipleyRassonRegion|ootTree|ulesTree))(?![`$[:alnum:]])", + "name": "support.function.experimental.wolfram" + }, + { + "match": "System`(?:S(?:ameTestProperties|ampledEntityClass|earchAdjustment|earchIndexObject|earchIndices|earchQueryString|earchResultObject|ecuredAuthenticationKey|ecuredAuthenticationKeys|ecurityCertificate|equenceIndicesLayer|equenceLastLayer|equenceMostLayer|equencePredict|equencePredictorFunction|equenceRestLayer|equenceReverseLayer|erviceRequest|erviceSubmit|etFileFormatProperties|etSystemModel|lideShowVideo|moothPointDensity|nippet|nippetsVideo|nubPolyhedron|oftmaxLayer|olidBoundaryLoadValue|olidDisplacementCondition|olidFixedCondition|olidMechanicsPDEComponent|olidMechanicsStrain|olidMechanicsStress|ortedEntityClass|ourceLink|patialBinnedPointData|patialBoundaryCorrection|patialEstimate|patialEstimatorFunction|patialJ|patialNoiseLevel|patialObservationRegionQ|patialPointData|patialPointSelect|patialRandomnessTest|patialTransformationLayer|patialTrendFunction|peakerMatchQ|peechCases|peechInterpreter|peechRecognize|plice|tartExternalSession|tartWebSession|tereochemistryElements|traussHardcorePointProcess|traussPointProcess|ubsetCases|ubsetCount|ubsetPosition|ubsetReplace|ubtitleTrackSelection|ummationLayer|ymmetricDifference|ynthesizeMissingValues|ystemCredential|ystemCredentialData|ystemCredentialKey|ystemCredentialKeys|ystemCredentialStoreObject|ystemInstall|ystemModel|ystemModelExamples|ystemModelLinearize|ystemModelMeasurements|ystemModelParametricSimulate|ystemModelPlot|ystemModelReliability|ystemModelSimulate|ystemModelSimulateSensitivity|ystemModelSimulationData|ystemModeler|ystemModels))(?![`$[:alnum:]])", + "name": "support.function.experimental.wolfram" + }, + { + "match": "System`(?:T(?:ableView|argetDevice|argetSystem|ernaryListPlot|ernaryPlotCorners|extCases|extContents|extElement|extPosition|extSearch|extSearchReport|extStructure|homasPointProcess|hreaded|hreadingLayer|ickDirection|ickLabelOrientation|ickLabelPositioning|ickLabels|ickLengths|ickPositions|oRawPointer|otalLayer|ourVideo|rainImageContentDetector|rainTextContentDetector|rainingProgressCheckpointing|rainingProgressFunction|rainingProgressMeasurements|rainingProgressReporting|rainingStoppingCriterion|rainingUpdateSchedule|ransposeLayer|ree|reeCases|reeChildren|reeCount|reeData|reeDelete|reeDepth|reeElementCoordinates|reeElementLabel|reeElementLabelFunction|reeElementLabelStyle|reeElementShape|reeElementShapeFunction|reeElementSize|reeElementSizeFunction|reeElementStyle|reeElementStyleFunction|reeExpression|reeExtract|reeFold|reeInsert|reeLayout|reeLeafCount|reeLeafQ|reeLeaves|reeLevel|reeMap|reeMapAt|reeOutline|reePosition|reeQ|reeReplacePart|reeRules|reeScan|reeSelect|reeSize|reeTraversalOrder|riangleCenter|riangleConstruct|riangleMeasurement|ypeDeclaration|ypeEvaluate|ypeOf|ypeSpecifier|yped))(?![`$[:alnum:]])", + "name": "support.function.experimental.wolfram" + }, + { + "match": "System`(?:U(?:RLDownloadSubmit|nconstrainedParameters|nionedEntityClass|niqueElements|nitVectorLayer|nlabeledTree|nmanageObject|nregisterExternalEvaluator|pdateSearchIndex|seEmbeddedLibrary))(?![`$[:alnum:]])", + "name": "support.function.experimental.wolfram" + }, + { + "match": "System`(?:V(?:alenceErrorHandling|alenceFilling|aluePreprocessingFunction|andermondeMatrix|arianceGammaPointProcess|ariogramFunction|ariogramModel|ectorAround|erifyDerivedKey|erifyDigitalSignature|erifyFileSignature|erifyInterpretation|ideo|ideoCapture|ideoCombine|ideoDelete|ideoExtractFrames|ideoFrameList|ideoFrameMap|ideoGenerator|ideoInsert|ideoIntervals|ideoJoin|ideoMap|ideoMapList|ideoMapTimeSeries|ideoPadding|ideoPause|ideoPlay|ideoQ|ideoRecord|ideoReplace|ideoScreenCapture|ideoSplit|ideoStop|ideoStream|ideoStreams|ideoTimeStretch|ideoTrackSelection|ideoTranscode|ideoTransparency|ideoTrim))(?![`$[:alnum:]])", + "name": "support.function.experimental.wolfram" + }, + { + "match": "System`(?:W(?:ebAudioSearch|ebColumn|ebElementObject|ebExecute|ebImage|ebImageSearch|ebItem|ebRow|ebSearch|ebSessionObject|ebSessions|ebWindowObject|ikidataData|ikidataSearch|ikipediaSearch|ithCleanup|ithLock))(?![`$[:alnum:]])", + "name": "support.function.experimental.wolfram" + }, + { + "match": "System`(?:Z(?:oomCenter|oomFactor))(?![`$[:alnum:]])", + "name": "support.function.experimental.wolfram" + }, + { + "match": "System`(?:\\$(?:AllowExternalChannelFunctions|AudioDecoders|AudioEncoders|BlockchainBase|ChannelBase|CompilerEnvironment|CookieStore|CryptographicEllipticCurveNames|CurrentWebSession|DataStructures|DefaultNetworkInterface|DefaultProxyRules|DefaultRemoteBatchSubmissionEnvironment|DefaultRemoteKernel|DefaultSystemCredentialStore|ExternalIdentifierTypes|ExternalStorageBase|GeneratedAssetLocation|IncomingMailSettings|Initialization|InitializationContexts|MaxDisplayedChildren|NetworkInterfaces|NoValue|PersistenceBase|PersistencePath|PreInitialization|PublisherID|ResourceSystemBase|ResourceSystemPath|SSHAuthentication|ServiceCreditsAvailable|SourceLink|SubtitleDecoders|SubtitleEncoders|SystemCredentialStore|TargetSystems|TestFileName|VideoDecoders|VideoEncoders|VoiceStyles))(?![`$[:alnum:]])", + "name": "support.function.experimental.wolfram" + }, + { + "match": "System`(?:E(?:cho|xit))(?![`$[:alnum:]])", + "name": "invalid.session.wolfram" + }, + { + "match": "System`(?:I(?:n|nString))(?![`$[:alnum:]])", + "name": "invalid.session.wolfram" + }, + { + "match": "System`(?:O(?:ut))(?![`$[:alnum:]])", + "name": "invalid.session.wolfram" + }, + { + "match": "System`(?:P(?:rint))(?![`$[:alnum:]])", + "name": "invalid.session.wolfram" + }, + { + "match": "System`(?:Q(?:uit))(?![`$[:alnum:]])", + "name": "invalid.session.wolfram" + }, + { + "match": "System`(?:\\$(?:HistoryLength|Line|Post|Pre|PrePrint|PreRead|SyntaxHandler))(?![`$[:alnum:]])", + "name": "invalid.session.wolfram" + }, + { + "match": "System`(?:[$[:alpha:]][$[:alnum:]]*)(?![`$[:alnum:]])", + "name": "invalid.illegal.system.wolfram" + }, + { + "match": "(?:[$[:alpha:]][$[:alnum:]]*)(?:`(?:[$[:alpha:]][$[:alnum:]]*))+(?=\\s*(\\[(?!\\s*\\[)|@(?!@)))", + "name": "variable.function.wolfram" + }, + { + "match": "(?:[$[:alpha:]][$[:alnum:]]*)(?:`(?:[$[:alpha:]][$[:alnum:]]*))+", + "name": "symbol.unrecognized.wolfram" + }, + { + "match": "(?:[$[:alpha:]][$[:alnum:]]*)`", + "name": "invalid.illegal.wolfram" + }, + { + "match": "(?:`(?:[$[:alpha:]][$[:alnum:]]*))+(?=\\s*(\\[(?!\\s*\\[)|@(?!@)))", + "name": "variable.function.wolfram" + }, + { + "match": "(?:`(?:[$[:alpha:]][$[:alnum:]]*))+", + "name": "symbol.unrecognized.wolfram" + }, + { + "match": "`", + "name": "invalid.illegal.wolfram" + }, + { + "match": "(?:A(?:ASTriangle|PIFunction|RCHProcess|RIMAProcess|RMAProcess|RProcess|SATriangle|belianGroup|bort|bortKernels|bortProtect|bs|bsArg|bsArgPlot|bsoluteCorrelation|bsoluteCorrelationFunction|bsoluteCurrentValue|bsoluteDashing|bsoluteFileName|bsoluteOptions|bsolutePointSize|bsoluteThickness|bsoluteTime|bsoluteTiming|ccountingForm|ccumulate|ccuracy|cousticAbsorbingValue|cousticImpedanceValue|cousticNormalVelocityValue|cousticPDEComponent|cousticPressureCondition|cousticRadiationValue|cousticSoundHardValue|cousticSoundSoftCondition|ctionMenu|ctivate|cyclicGraphQ|ddSides|ddTo|ddUsers|djacencyGraph|djacencyList|djacencyMatrix|djacentMeshCells|djugate|djustTimeSeriesForecast|djustmentBox|dministrativeDivisionData|ffineHalfSpace|ffineSpace|ffineStateSpaceModel|ffineTransform|irPressureData|irSoundAttenuation|irTemperatureData|ircraftData|irportData|iryAi|iryAiPrime|iryAiZero|iryBi|iryBiPrime|iryBiZero|lgebraicIntegerQ|lgebraicNumber|lgebraicNumberDenominator|lgebraicNumberNorm|lgebraicNumberPolynomial|lgebraicNumberTrace|lgebraicUnitQ|llTrue|lphaChannel|lphabet|lphabeticOrder|lphabeticSort|lternatingFactorial|lternatingGroup|lternatives|mbientLight|mbiguityList|natomyData|natomyPlot3D|natomyStyling|nd|ndersonDarlingTest|ngerJ|ngleBracket|nglePath|nglePath3D|ngleVector|ngularGauge|nimate|nimator|nnotate|nnotation|nnotationDelete|nnotationKeys|nnotationValue|nnuity|nnuityDue|nnulus|nomalyDetection|nomalyDetectorFunction|ntihermitian|ntihermitianMatrixQ|ntisymmetric|ntisymmetricMatrixQ|ntonyms|nyOrder|nySubset|nyTrue|part|partSquareFree|ppellF1|ppend|ppendTo|pply|pplySides|pplyTo|rcCos|rcCosh|rcCot|rcCoth|rcCsc|rcCsch|rcCurvature|rcLength|rcSec|rcSech|rcSin|rcSinDistribution|rcSinh|rcTan|rcTanh|rea|rg|rgMax|rgMin|rgumentsOptions|rithmeticGeometricMean|rray|rrayComponents|rrayDepth|rrayFilter|rrayFlatten|rrayMesh|rrayPad|rrayPlot|rrayPlot3D|rrayQ|rrayResample|rrayReshape|rrayRules|rrays|rrow|rrowheads|ssert|ssociateTo|ssociation|ssociationMap|ssociationQ|ssociationThread|ssuming|symptotic|symptoticDSolveValue|symptoticEqual|symptoticEquivalent|symptoticExpectation|symptoticGreater|symptoticGreaterEqual|symptoticIntegrate|symptoticLess|symptoticLessEqual|symptoticOutputTracker|symptoticProbability|symptoticProduct|symptoticRSolveValue|symptoticSolve|symptoticSum|tomQ|ttributes|udio|udioAmplify|udioBlockMap|udioCapture|udioChannelCombine|udioChannelMix|udioChannelSeparate|udioChannels|udioData|udioDelay|udioDelete|udioDistance|udioFade|udioFrequencyShift|udioGenerator|udioInsert|udioIntervals|udioJoin|udioLength|udioLocalMeasurements|udioLoudness|udioMeasurements|udioNormalize|udioOverlay|udioPad|udioPan|udioPartition|udioPitchShift|udioPlot|udioQ|udioReplace|udioResample|udioReverb|udioReverse|udioSampleRate|udioSpectralMap|udioSpectralTransformation|udioSplit|udioTimeStretch|udioTrim|udioType|ugmentedPolyhedron|ugmentedSymmetricPolynomial|uthenticationDialog|utoRefreshed|utoSubmitting|utocorrelationTest))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "(?:B(?:SplineBasis|SplineCurve|SplineFunction|SplineSurface|abyMonsterGroupB|ackslash|all|and|andpassFilter|andstopFilter|arChart|arChart3D|arLegend|arabasiAlbertGraphDistribution|arcodeImage|arcodeRecognize|aringhausHenzeTest|arlowProschanImportance|arnesG|artlettHannWindow|artlettWindow|aseDecode|aseEncode|aseForm|atesDistribution|attleLemarieWavelet|ecause|eckmannDistribution|eep|egin|eginDialogPacket|eginPackage|ellB|ellY|enfordDistribution|eniniDistribution|enktanderGibratDistribution|enktanderWeibullDistribution|ernoulliB|ernoulliDistribution|ernoulliGraphDistribution|ernoulliProcess|ernsteinBasis|esselFilterModel|esselI|esselJ|esselJZero|esselK|esselY|esselYZero|eta|etaBinomialDistribution|etaDistribution|etaNegativeBinomialDistribution|etaPrimeDistribution|etaRegularized|etween|etweennessCentrality|eveledPolyhedron|ezierCurve|ezierFunction|ilateralFilter|ilateralLaplaceTransform|ilateralZTransform|inCounts|inLists|inarize|inaryDeserialize|inaryDistance|inaryImageQ|inaryRead|inaryReadList|inarySerialize|inaryWrite|inomial|inomialDistribution|inomialProcess|inormalDistribution|iorthogonalSplineWavelet|ipartiteGraphQ|iquadraticFilterModel|irnbaumImportance|irnbaumSaundersDistribution|itAnd|itClear|itGet|itLength|itNot|itOr|itSet|itShiftLeft|itShiftRight|itXor|iweightLocation|iweightMidvariance|lackmanHarrisWindow|lackmanNuttallWindow|lackmanWindow|lank|lankNullSequence|lankSequence|lend|lock|lockMap|lockRandom|lomqvistBeta|lomqvistBetaTest|lur|lurring|odePlot|ohmanWindow|oole|ooleanConsecutiveFunction|ooleanConvert|ooleanCountingFunction|ooleanFunction|ooleanGraph|ooleanMaxterms|ooleanMinimize|ooleanMinterms|ooleanQ|ooleanRegion|ooleanTable|ooleanVariables|orderDimensions|orelTannerDistribution|ottomHatTransform|oundaryDiscretizeGraphics|oundaryDiscretizeRegion|oundaryMesh|oundaryMeshRegion|oundaryMeshRegionQ|oundedRegionQ|oundingRegion|oxData|oxMatrix|oxObject|oxWhiskerChart|racketingBar|rayCurtisDistance|readthFirstScan|reak|ridgeData|rightnessEqualize|roadcastStationData|rownForsytheTest|rownianBridgeProcess|ubbleChart|ubbleChart3D|uckyballGraph|uildingData|ulletGauge|usinessDayQ|utterflyGraph|utterworthFilterModel|utton|uttonBar|uttonBox|uttonNotebook|yteArray|yteArrayFormat|yteArrayFormatQ|yteArrayQ|yteArrayToString|yteCount))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "(?:C(?:|DF|DFDeploy|DFWavelet|Form|MYKColor|SGRegion|SGRegionQ|SGRegionTree|alendarConvert|alendarData|allPacket|allout|anberraDistance|ancel|ancelButton|andlestickChart|anonicalGraph|anonicalName|anonicalWarpingCorrespondence|anonicalWarpingDistance|anonicalizePolygon|anonicalizePolyhedron|anonicalizeRegion|antorMesh|antorStaircase|ap|apForm|apitalDifferentialD|apitalize|apsuleShape|aputoD|arlemanLinearize|arlsonRC|arlsonRD|arlsonRE|arlsonRF|arlsonRG|arlsonRJ|arlsonRK|arlsonRM|armichaelLambda|aseSensitive|ases|ashflow|asoratian|atalanNumber|atch|atenate|auchyDistribution|auchyMatrix|auchyWindow|ayleyGraph|eiling|ell|ellGroup|ellGroupData|ellObject|ellPrint|ells|ellularAutomaton|ensoredDistribution|ensoring|enterArray|enterDot|enteredInterval|entralFeature|entralMoment|entralMomentGeneratingFunction|epstrogram|epstrogramArray|epstrumArray|hampernowneNumber|hanVeseBinarize|haracterCounts|haracterName|haracterRange|haracteristicFunction|haracteristicPolynomial|haracters|hebyshev1FilterModel|hebyshev2FilterModel|hebyshevT|hebyshevU|heck|heckAbort|heckArguments|heckbox|heckboxBar|hemicalData|hessboardDistance|hiDistribution|hiSquareDistribution|hineseRemainder|hoiceButtons|hoiceDialog|holeskyDecomposition|hop|hromaticPolynomial|hromaticityPlot|hromaticityPlot3D|ircle|ircleDot|ircleMinus|irclePlus|irclePoints|ircleThrough|ircleTimes|irculantGraph|ircularArcThrough|ircularOrthogonalMatrixDistribution|ircularQuaternionMatrixDistribution|ircularRealMatrixDistribution|ircularSymplecticMatrixDistribution|ircularUnitaryMatrixDistribution|ircumsphere|ityData|lassifierFunction|lassifierMeasurements|lassifierMeasurementsObject|lassify|lear|learAll|learAttributes|learCookies|learPermissions|learSystemCache|lebschGordan|lickPane|lickToCopy|lip|lock|lockGauge|lose|loseKernels|losenessCentrality|losing|loudAccountData|loudConnect|loudDeploy|loudDirectory|loudDisconnect|loudEvaluate|loudExport|loudFunction|loudGet|loudImport|loudLoggingData|loudObject|loudObjects|loudPublish|loudPut|loudSave|loudShare|loudSubmit|loudSymbol|loudUnshare|lusterClassify|lusteringComponents|lusteringMeasurements|lusteringTree|oefficient|oefficientArrays|oefficientList|oefficientRules|oifletWavelet|ollect|ollinearPoints|olon|olorBalance|olorCombine|olorConvert|olorData|olorDataFunction|olorDetect|olorDistance|olorNegate|olorProfileData|olorQ|olorQuantize|olorReplace|olorSeparate|olorSetter|olorSlider|olorToneMapping|olorize|olorsNear|olumn|ometData|ommonName|ommonUnits|ommonest|ommonestFilter|ommunityGraphPlot|ompanyData|ompatibleUnitQ|ompile|ompiledFunction|omplement|ompleteGraph|ompleteGraphQ|ompleteIntegral|ompleteKaryTree|omplex|omplexArrayPlot|omplexContourPlot|omplexExpand|omplexListPlot|omplexPlot|omplexPlot3D|omplexRegionPlot|omplexStreamPlot|omplexVectorPlot|omponentMeasurements|omposeList|omposeSeries|ompositeQ|omposition|ompoundElement|ompoundExpression|ompoundPoissonDistribution|ompoundPoissonProcess|ompoundRenewalProcess|ompress|oncaveHullMesh|ondition|onditionalExpression|onditioned|one|onfirm|onfirmAssert|onfirmBy|onfirmMatch|onformAudio|onformImages|ongruent|onicGradientFilling|onicHullRegion|onicOptimization|onjugate|onjugateTranspose|onjunction|onnectLibraryCallbackFunction|onnectedComponents|onnectedGraphComponents|onnectedGraphQ|onnectedMeshComponents|onnesWindow|onoverTest|onservativeConvectionPDETerm|onstantArray|onstantImage|onstantRegionQ|onstellationData|onstruct|ontainsAll|ontainsAny|ontainsExactly|ontainsNone|ontainsOnly|ontext|ontextToFileName|ontexts|ontinue|ontinuedFraction|ontinuedFractionK|ontinuousMarkovProcess|ontinuousTask|ontinuousTimeModelQ|ontinuousWaveletData|ontinuousWaveletTransform|ontourDetect|ontourPlot|ontourPlot3D|ontraharmonicMean|ontrol|ontrolActive|ontrollabilityGramian|ontrollabilityMatrix|ontrollableDecomposition|ontrollableModelQ|ontrollerInformation|ontrollerManipulate|ontrollerState|onvectionPDETerm|onvergents|onvexHullMesh|onvexHullRegion|onvexOptimization|onvexPolygonQ|onvexPolyhedronQ|onvexRegionQ|onvolve|onwayGroupCo1|onwayGroupCo2|onwayGroupCo3|oordinateBoundingBox|oordinateBoundingBoxArray|oordinateBounds|oordinateBoundsArray|oordinateChartData|oordinateTransform|oordinateTransformData|oplanarPoints|oprimeQ|oproduct|opulaDistribution|opyDatabin|opyDirectory|opyFile|opyToClipboard|oreNilpotentDecomposition|ornerFilter|orrelation|orrelationDistance|orrelationFunction|orrelationTest|os|osIntegral|osh|oshIntegral|osineDistance|osineWindow|ot|oth|oulombF|oulombG|oulombH1|oulombH2|ount|ountDistinct|ountDistinctBy|ountRoots|ountryData|ounts|ountsBy|ovariance|ovarianceFunction|oxIngersollRossProcess|oxModel|oxModelFit|oxianDistribution|ramerVonMisesTest|reateArchive|reateDatabin|reateDialog|reateDirectory|reateDocument|reateFile|reateManagedLibraryExpression|reateNotebook|reatePacletArchive|reatePalette|reatePermissionsGroup|reateUUID|reateWindow|riticalSection|riticalityFailureImportance|riticalitySuccessImportance|ross|rossMatrix|rossingCount|rossingDetect|rossingPolygon|sc|sch|ube|ubeRoot|uboid|umulant|umulantGeneratingFunction|umulativeFeatureImpactPlot|up|upCap|url|urrencyConvert|urrentDate|urrentImage|urrentValue|urvatureFlowFilter|ycleGraph|ycleIndexPolynomial|ycles|yclicGroup|yclotomic|ylinder|ylindricalDecomposition|ylindricalDecompositionFunction))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "(?:D(?:|Eigensystem|Eigenvalues|GaussianWavelet|MSList|MSString|Solve|SolveValue|agumDistribution|amData|amerauLevenshteinDistance|arker|ashing|ataDistribution|atabin|atabinAdd|atabinUpload|atabins|ataset|ateBounds|ateDifference|ateHistogram|ateList|ateListLogPlot|ateListPlot|ateListStepPlot|ateObject|ateObjectQ|ateOverlapsQ|atePattern|atePlus|ateRange|ateScale|ateSelect|ateString|ateValue|ateWithinQ|ated|atedUnit|aubechiesWavelet|avisDistribution|awsonF|ayCount|ayHemisphere|ayMatchQ|ayName|ayNightTerminator|ayPlus|ayRange|ayRound|aylightQ|eBruijnGraph|eBruijnSequence|ecapitalize|ecimalForm|eclarePackage|ecompose|ecrement|ecrypt|edekindEta|eepSpaceProbeData|efault|efaultButton|efaultValues|efer|efineInputStreamMethod|efineOutputStreamMethod|efineResourceFunction|efinition|egreeCentrality|egreeGraphDistribution|el|elaunayMesh|elayed|elete|eleteAdjacentDuplicates|eleteAnomalies|eleteBorderComponents|eleteCases|eleteDirectory|eleteDuplicates|eleteDuplicatesBy|eleteFile|eleteMissing|eleteObject|eletePermissionsKey|eleteSmallComponents|eleteStopwords|elimitedSequence|endrogram|enominator|ensityHistogram|ensityPlot|ensityPlot3D|eploy|epth|epthFirstScan|erivative|erivativeFilter|erivativePDETerm|esignMatrix|et|eviceClose|eviceConfigure|eviceExecute|eviceExecuteAsynchronous|eviceObject|eviceOpen|eviceRead|eviceReadBuffer|eviceReadLatest|eviceReadList|eviceReadTimeSeries|eviceStreams|eviceWrite|eviceWriteBuffer|evices|iagonal|iagonalMatrix|iagonalMatrixQ|iagonalizableMatrixQ|ialog|ialogInput|ialogNotebook|ialogReturn|iamond|iamondMatrix|iceDissimilarity|ictionaryLookup|ictionaryWordQ|ifferenceDelta|ifferenceQuotient|ifferenceRoot|ifferenceRootReduce|ifferences|ifferentialD|ifferentialRoot|ifferentialRootReduce|ifferentiatorFilter|iffusionPDETerm|igitCount|igitQ|ihedralAngle|ihedralGroup|ilation|imensionReduce|imensionReducerFunction|imensionReduction|imensionalCombinations|imensionalMeshComponents|imensions|iracComb|iracDelta|irectedEdge|irectedGraph|irectedGraphQ|irectedInfinity|irectionalLight|irective|irectory|irectoryName|irectoryQ|irectoryStack|irichletBeta|irichletCharacter|irichletCondition|irichletConvolve|irichletDistribution|irichletEta|irichletL|irichletLambda|irichletTransform|irichletWindow|iscreteAsymptotic|iscreteChirpZTransform|iscreteConvolve|iscreteDelta|iscreteHadamardTransform|iscreteIndicator|iscreteInputOutputModel|iscreteLQEstimatorGains|iscreteLQRegulatorGains|iscreteLimit|iscreteLyapunovSolve|iscreteMarkovProcess|iscreteMaxLimit|iscreteMinLimit|iscretePlot|iscretePlot3D|iscreteRatio|iscreteRiccatiSolve|iscreteShift|iscreteTimeModelQ|iscreteUniformDistribution|iscreteWaveletData|iscreteWaveletPacketTransform|iscreteWaveletTransform|iscretizeGraphics|iscretizeRegion|iscriminant|isjointQ|isjunction|isk|iskMatrix|iskSegment|ispatch|isplayEndPacket|isplayForm|isplayPacket|istanceMatrix|istanceTransform|istribute|istributeDefinitions|istributed|istributionChart|istributionFitTest|istributionParameterAssumptions|istributionParameterQ|iv|ivide|ivideBy|ivideSides|ivisible|ivisorSigma|ivisorSum|ivisors|o|ocumentGenerator|ocumentGeneratorInformation|ocumentGenerators|ocumentNotebook|odecahedron|ominantColors|ominatorTreeGraph|ominatorVertexList|ot|otEqual|oubleBracketingBar|oubleDownArrow|oubleLeftArrow|oubleLeftRightArrow|oubleLeftTee|oubleLongLeftArrow|oubleLongLeftRightArrow|oubleLongRightArrow|oubleRightArrow|oubleRightTee|oubleUpArrow|oubleUpDownArrow|oubleVerticalBar|ownArrow|ownArrowBar|ownArrowUpArrow|ownLeftRightVector|ownLeftTeeVector|ownLeftVector|ownLeftVectorBar|ownRightTeeVector|ownRightVector|ownRightVectorBar|ownTee|ownTeeArrow|ownValues|ownsample|razinInverse|rop|ropShadowing|t|ualPlanarGraph|ualPolyhedron|ualSystemsModel|umpSave|uplicateFreeQ|uration|ynamic|ynamicGeoGraphics|ynamicModule|ynamicSetting|ynamicWrapper))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "(?:E(?:arthImpactData|arthquakeData|ccentricityCentrality|choEvaluation|choFunction|choLabel|dgeAdd|dgeBetweennessCentrality|dgeChromaticNumber|dgeConnectivity|dgeContract|dgeCount|dgeCoverQ|dgeCycleMatrix|dgeDelete|dgeDetect|dgeForm|dgeIndex|dgeList|dgeQ|dgeRules|dgeTaggedGraph|dgeTaggedGraphQ|dgeTags|dgeTransitiveGraphQ|dgeWeightedGraphQ|ditDistance|ffectiveInterest|igensystem|igenvalues|igenvectorCentrality|igenvectors|lement|lementData|liminate|llipsoid|llipticE|llipticExp|llipticExpPrime|llipticF|llipticFilterModel|llipticK|llipticLog|llipticNomeQ|llipticPi|llipticTheta|llipticThetaPrime|mbedCode|mbeddedHTML|mbeddedService|mitSound|mpiricalDistribution|mptyGraphQ|mptyRegion|nclose|ncode|ncrypt|ncryptedObject|nd|ndDialogPacket|ndPackage|ngineeringForm|nterExpressionPacket|nterTextPacket|ntity|ntityClass|ntityClassList|ntityCopies|ntityGroup|ntityInstance|ntityList|ntityPrefetch|ntityProperties|ntityProperty|ntityPropertyClass|ntityRegister|ntityStores|ntityTypeName|ntityUnregister|ntityValue|ntropy|ntropyFilter|nvironment|qual|qualTilde|qualTo|quilibrium|quirippleFilterKernel|quivalent|rf|rfc|rfi|rlangB|rlangC|rlangDistribution|rosion|rrorBox|stimatedBackground|stimatedDistribution|stimatedPointNormals|stimatedProcess|stimatorGains|stimatorRegulator|uclideanDistance|ulerAngles|ulerCharacteristic|ulerE|ulerMatrix|ulerPhi|ulerianGraphQ|valuate|valuatePacket|valuationBox|valuationCell|valuationData|valuationNotebook|valuationObject|venQ|ventData|ventHandler|ventSeries|xactBlackmanWindow|xactNumberQ|xampleData|xcept|xists|xoplanetData|xp|xpGammaDistribution|xpIntegralE|xpIntegralEi|xpToTrig|xpand|xpandAll|xpandDenominator|xpandFileName|xpandNumerator|xpectation|xponent|xponentialDistribution|xponentialGeneratingFunction|xponentialMovingAverage|xponentialPowerDistribution|xport|xportByteArray|xportForm|xportString|xpressionCell|xpressionGraph|xtendedGCD|xternalBundle|xtract|xtractArchive|xtractPacletArchive|xtremeValueDistribution))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "(?:F(?:ARIMAProcess|RatioDistribution|aceAlign|aceForm|acialFeatures|actor|actorInteger|actorList|actorSquareFree|actorSquareFreeList|actorTerms|actorTermsList|actorial|actorial2|actorialMoment|actorialMomentGeneratingFunction|actorialPower|ailure|ailureDistribution|ailureQ|areySequence|eatureImpactPlot|eatureNearest|eatureSpacePlot|eatureSpacePlot3D|eatureValueDependencyPlot|eatureValueImpactPlot|eedbackLinearize|etalGrowthData|ibonacci|ibonorial|ile|ileBaseName|ileByteCount|ileDate|ileExistsQ|ileExtension|ileFormat|ileFormatQ|ileHash|ileNameDepth|ileNameDrop|ileNameJoin|ileNameSetter|ileNameSplit|ileNameTake|ileNames|ilePrint|ileSize|ileSystemMap|ileSystemScan|ileTemplate|ileTemplateApply|ileType|illedCurve|illedTorus|illingTransform|ilterRules|inancialBond|inancialData|inancialDerivative|inancialIndicator|ind|indAnomalies|indArgMax|indArgMin|indClique|indClusters|indCookies|indCurvePath|indCycle|indDevices|indDistribution|indDistributionParameters|indDivisions|indEdgeColoring|indEdgeCover|indEdgeCut|indEdgeIndependentPaths|indEulerianCycle|indFaces|indFile|indFit|indFormula|indFundamentalCycles|indGeneratingFunction|indGeoLocation|indGeometricTransform|indGraphCommunities|indGraphIsomorphism|indGraphPartition|indHamiltonianCycle|indHamiltonianPath|indHiddenMarkovStates|indIndependentEdgeSet|indIndependentVertexSet|indInstance|indIntegerNullVector|indIsomorphicSubgraph|indKClan|indKClique|indKClub|indKPlex|indLibrary|indLinearRecurrence|indList|indMatchingColor|indMaxValue|indMaximum|indMaximumCut|indMaximumFlow|indMeshDefects|indMinValue|indMinimum|indMinimumCostFlow|indMinimumCut|indPath|indPeaks|indPermutation|indPlanarColoring|indPostmanTour|indProcessParameters|indRegionTransform|indRepeat|indRoot|indSequenceFunction|indShortestPath|indShortestTour|indSpanningTree|indSubgraphIsomorphism|indThreshold|indTransientRepeat|indVertexColoring|indVertexCover|indVertexCut|indVertexIndependentPaths|inishDynamic|initeAbelianGroupCount|initeGroupCount|initeGroupData|irst|irstCase|irstPassageTimeDistribution|irstPosition|ischerGroupFi22|ischerGroupFi23|ischerGroupFi24Prime|isherHypergeometricDistribution|isherRatioTest|isherZDistribution|it|ittedModel|ixedOrder|ixedPoint|ixedPointList|latShading|latTopWindow|latten|lattenAt|lightData|lipView|loor|lowPolynomial|old|oldList|oldPair|oldPairList|oldWhile|oldWhileList|or|orAll|ormBox|ormFunction|ormObject|ormPage|ormat|ormulaData|ormulaLookup|ortranForm|ourier|ourierCoefficient|ourierCosCoefficient|ourierCosSeries|ourierCosTransform|ourierDCT|ourierDCTFilter|ourierDCTMatrix|ourierDST|ourierDSTMatrix|ourierMatrix|ourierSequenceTransform|ourierSeries|ourierSinCoefficient|ourierSinSeries|ourierSinTransform|ourierTransform|ourierTrigSeries|oxH|ractionBox|ractionalBrownianMotionProcess|ractionalD|ractionalGaussianNoiseProcess|ractionalPart|rameBox|ramed|rechetDistribution|reeQ|renetSerretSystem|requencySamplingFilterKernel|resnelC|resnelF|resnelG|resnelS|robeniusNumber|robeniusSolve|romAbsoluteTime|romCharacterCode|romCoefficientRules|romContinuedFraction|romDMS|romDateString|romDigits|romEntity|romJulianDate|romLetterNumber|romPolarCoordinates|romRomanNumeral|romSphericalCoordinates|romUnixTime|rontEndExecute|rontEndToken|rontEndTokenExecute|ullDefinition|ullForm|ullGraphics|ullInformationOutputRegulator|ullRegion|ullSimplify|unction|unctionAnalytic|unctionBijective|unctionContinuous|unctionConvexity|unctionDiscontinuities|unctionDomain|unctionExpand|unctionInjective|unctionInterpolation|unctionMeromorphic|unctionMonotonicity|unctionPeriod|unctionRange|unctionSign|unctionSingularities|unctionSurjective|ussellVeselyImportance))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "(?:G(?:ARCHProcess|CD|aborFilter|aborMatrix|aborWavelet|ainMargins|ainPhaseMargins|alaxyData|amma|ammaDistribution|ammaRegularized|ather|atherBy|aussianFilter|aussianMatrix|aussianOrthogonalMatrixDistribution|aussianSymplecticMatrixDistribution|aussianUnitaryMatrixDistribution|aussianWindow|egenbauerC|eneralizedLinearModelFit|enerateAsymmetricKeyPair|enerateDocument|enerateHTTPResponse|enerateSymmetricKey|eneratingFunction|enericCylindricalDecomposition|enomeData|enomeLookup|eoAntipode|eoArea|eoBoundary|eoBoundingBox|eoBounds|eoBoundsRegion|eoBoundsRegionBoundary|eoBubbleChart|eoCircle|eoContourPlot|eoDensityPlot|eoDestination|eoDirection|eoDisk|eoDisplacement|eoDistance|eoDistanceList|eoElevationData|eoEntities|eoGraphPlot|eoGraphics|eoGridDirectionDifference|eoGridPosition|eoGridUnitArea|eoGridUnitDistance|eoGridVector|eoGroup|eoHemisphere|eoHemisphereBoundary|eoHistogram|eoIdentify|eoImage|eoLength|eoListPlot|eoMarker|eoNearest|eoPath|eoPolygon|eoPosition|eoPositionENU|eoPositionXYZ|eoProjectionData|eoRegionValuePlot|eoSmoothHistogram|eoStreamPlot|eoStyling|eoVariant|eoVector|eoVectorENU|eoVectorPlot|eoVectorXYZ|eoVisibleRegion|eoVisibleRegionBoundary|eoWithinQ|eodesicClosing|eodesicDilation|eodesicErosion|eodesicOpening|eodesicPolyhedron|eodesyData|eogravityModelData|eologicalPeriodData|eomagneticModelData|eometricBrownianMotionProcess|eometricDistribution|eometricMean|eometricMeanFilter|eometricOptimization|eometricTransformation|estureHandler|et|etEnvironment|lobalClusteringCoefficient|low|ompertzMakehamDistribution|oochShading|oodmanKruskalGamma|oodmanKruskalGammaTest|oto|ouraudShading|rad|radientFilter|radientFittedMesh|radientOrientationFilter|rammarApply|rammarRules|rammarToken|raph|raph3D|raphAssortativity|raphAutomorphismGroup|raphCenter|raphComplement|raphData|raphDensity|raphDiameter|raphDifference|raphDisjointUnion|raphDistance|raphDistanceMatrix|raphEmbedding|raphHub|raphIntersection|raphJoin|raphLinkEfficiency|raphPeriphery|raphPlot|raphPlot3D|raphPower|raphProduct|raphPropertyDistribution|raphQ|raphRadius|raphReciprocity|raphSum|raphUnion|raphics|raphics3D|raphicsColumn|raphicsComplex|raphicsGrid|raphicsGroup|raphicsRow|rayLevel|reater|reaterEqual|reaterEqualLess|reaterEqualThan|reaterFullEqual|reaterGreater|reaterLess|reaterSlantEqual|reaterThan|reaterTilde|reenFunction|rid|ridBox|ridGraph|roebnerBasis|roupBy|roupCentralizer|roupElementFromWord|roupElementPosition|roupElementQ|roupElementToWord|roupElements|roupGenerators|roupMultiplicationTable|roupOrbits|roupOrder|roupSetwiseStabilizer|roupStabilizer|roupStabilizerChain|roupings|rowCutComponents|udermannian|uidedFilter|umbelDistribution))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "(?:H(?:ITSCentrality|TTPErrorResponse|TTPRedirect|TTPRequest|TTPRequestData|TTPResponse|aarWavelet|adamardMatrix|alfLine|alfNormalDistribution|alfPlane|alfSpace|alftoneShading|amiltonianGraphQ|ammingDistance|ammingWindow|ankelH1|ankelH2|ankelMatrix|ankelTransform|annPoissonWindow|annWindow|aradaNortonGroupHN|araryGraph|armonicMean|armonicMeanFilter|armonicNumber|ash|atchFilling|atchShading|aversine|azardFunction|ead|eatFluxValue|eatInsulationValue|eatOutflowValue|eatRadiationValue|eatSymmetryValue|eatTemperatureCondition|eatTransferPDEComponent|eatTransferValue|eavisideLambda|eavisidePi|eavisideTheta|eldGroupHe|elmholtzPDEComponent|ermiteDecomposition|ermiteH|ermitian|ermitianMatrixQ|essenbergDecomposition|eunB|eunBPrime|eunC|eunCPrime|eunD|eunDPrime|eunG|eunGPrime|eunT|eunTPrime|exahedron|iddenMarkovProcess|ighlightGraph|ighlightImage|ighlightMesh|ighlighted|ighpassFilter|igmanSimsGroupHS|ilbertCurve|ilbertFilter|ilbertMatrix|istogram|istogram3D|istogramDistribution|istogramList|istogramTransform|istogramTransformInterpolation|istoricalPeriodData|itMissTransform|jorthDistribution|odgeDual|oeffdingD|oeffdingDTest|old|oldComplete|oldForm|oldPattern|orizontalGauge|ornerForm|ostLookup|otellingTSquareDistribution|oytDistribution|ue|umanGrowthData|umpDownHump|umpEqual|urwitzLerchPhi|urwitzZeta|yperbolicDistribution|ypercubeGraph|yperexponentialDistribution|yperfactorial|ypergeometric0F1|ypergeometric0F1Regularized|ypergeometric1F1|ypergeometric1F1Regularized|ypergeometric2F1|ypergeometric2F1Regularized|ypergeometricDistribution|ypergeometricPFQ|ypergeometricPFQRegularized|ypergeometricU|yperlink|yperplane|ypoexponentialDistribution|ypothesisTestData))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "(?:I(?:PAddress|conData|conize|cosahedron|dentity|dentityMatrix|f|fCompiled|gnoringInactive|m|mage|mage3D|mage3DProjection|mage3DSlices|mageAccumulate|mageAdd|mageAdjust|mageAlign|mageApply|mageApplyIndexed|mageAspectRatio|mageAssemble|mageCapture|mageChannels|mageClip|mageCollage|mageColorSpace|mageCompose|mageConvolve|mageCooccurrence|mageCorners|mageCorrelate|mageCorrespondingPoints|mageCrop|mageData|mageDeconvolve|mageDemosaic|mageDifference|mageDimensions|mageDisplacements|mageDistance|mageEffect|mageExposureCombine|mageFeatureTrack|mageFileApply|mageFileFilter|mageFileScan|mageFilter|mageFocusCombine|mageForestingComponents|mageForwardTransformation|mageHistogram|mageIdentify|mageInstanceQ|mageKeypoints|mageLevels|mageLines|mageMarker|mageMeasurements|mageMesh|mageMultiply|magePad|magePartition|magePeriodogram|magePerspectiveTransformation|mageQ|mageRecolor|mageReflect|mageResize|mageRestyle|mageRotate|mageSaliencyFilter|mageScaled|mageScan|mageSubtract|mageTake|mageTransformation|mageTrim|mageType|mageValue|mageValuePositions|mageVectorscopePlot|mageWaveformPlot|mplicitD|mplicitRegion|mplies|mport|mportByteArray|mportString|mprovementImportance|nactivate|nactive|ncidenceGraph|ncidenceList|ncidenceMatrix|ncrement|ndefiniteMatrixQ|ndependenceTest|ndependentEdgeSetQ|ndependentPhysicalQuantity|ndependentUnit|ndependentUnitDimension|ndependentVertexSetQ|ndexEdgeTaggedGraph|ndexGraph|ndexed|nexactNumberQ|nfiniteLine|nfiniteLineThrough|nfinitePlane|nfix|nflationAdjust|nformation|nhomogeneousPoissonProcess|nner|nnerPolygon|nnerPolyhedron|npaint|nput|nputField|nputForm|nputNamePacket|nputNotebook|nputPacket|nputStream|nputString|nputStringPacket|nsert|nsertLinebreaks|nset|nsphere|nstall|nstallService|ntegerDigits|ntegerExponent|ntegerLength|ntegerName|ntegerPart|ntegerPartitions|ntegerQ|ntegerReverse|ntegerString|ntegrate|nteractiveTradingChart|nternallyBalancedDecomposition|nterpolatingFunction|nterpolatingPolynomial|nterpolation|nterpretation|nterpretationBox|nterpreter|nterquartileRange|nterrupt|ntersectingQ|ntersection|nterval|ntervalIntersection|ntervalMemberQ|ntervalSlider|ntervalUnion|nverse|nverseBetaRegularized|nverseBilateralLaplaceTransform|nverseBilateralZTransform|nverseCDF|nverseChiSquareDistribution|nverseContinuousWaveletTransform|nverseDistanceTransform|nverseEllipticNomeQ|nverseErf|nverseErfc|nverseFourier|nverseFourierCosTransform|nverseFourierSequenceTransform|nverseFourierSinTransform|nverseFourierTransform|nverseFunction|nverseGammaDistribution|nverseGammaRegularized|nverseGaussianDistribution|nverseGudermannian|nverseHankelTransform|nverseHaversine|nverseJacobiCD|nverseJacobiCN|nverseJacobiCS|nverseJacobiDC|nverseJacobiDN|nverseJacobiDS|nverseJacobiNC|nverseJacobiND|nverseJacobiNS|nverseJacobiSC|nverseJacobiSD|nverseJacobiSN|nverseLaplaceTransform|nverseMellinTransform|nversePermutation|nverseRadon|nverseRadonTransform|nverseSeries|nverseShortTimeFourier|nverseSpectrogram|nverseSurvivalFunction|nverseTransformedRegion|nverseWaveletTransform|nverseWeierstrassP|nverseWishartMatrixDistribution|nverseZTransform|nvisible|rreduciblePolynomialQ|slandData|solatingInterval|somorphicGraphQ|somorphicSubgraphQ|sotopeData|tem|toProcess))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "(?:J(?:accardDissimilarity|acobiAmplitude|acobiCD|acobiCN|acobiCS|acobiDC|acobiDN|acobiDS|acobiEpsilon|acobiNC|acobiND|acobiNS|acobiP|acobiSC|acobiSD|acobiSN|acobiSymbol|acobiZN|acobiZeta|ankoGroupJ1|ankoGroupJ2|ankoGroupJ3|ankoGroupJ4|arqueBeraALMTest|ohnsonDistribution|oin|oinAcross|oinForm|oinedCurve|ordanDecomposition|ordanModelDecomposition|uliaSetBoettcher|uliaSetIterationCount|uliaSetPlot|uliaSetPoints|ulianDate))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "(?:K(?:CoreComponents|Distribution|EdgeConnectedComponents|EdgeConnectedGraphQ|VertexConnectedComponents|VertexConnectedGraphQ|agiChart|aiserBesselWindow|aiserWindow|almanEstimator|almanFilter|arhunenLoeveDecomposition|aryTree|atzCentrality|elvinBei|elvinBer|elvinKei|elvinKer|endallTau|endallTauTest|ernelMixtureDistribution|ernelObject|ernels|ey|eyComplement|eyDrop|eyDropFrom|eyExistsQ|eyFreeQ|eyIntersection|eyMap|eyMemberQ|eySelect|eySort|eySortBy|eyTake|eyUnion|eyValueMap|eyValuePattern|eys|illProcess|irchhoffGraph|irchhoffMatrix|leinInvariantJ|napsackSolve|nightTourGraph|notData|nownUnitQ|ochCurve|olmogorovSmirnovTest|roneckerDelta|roneckerModelDecomposition|roneckerProduct|roneckerSymbol|uiperTest|umaraswamyDistribution|urtosis|uwaharaFilter))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "(?:L(?:ABColor|CHColor|CM|QEstimatorGains|QGRegulator|QOutputRegulatorGains|QRegulatorGains|UDecomposition|UVColor|abel|abeled|aguerreL|akeData|ambdaComponents|ameC|ameCPrime|ameEigenvalueA|ameEigenvalueB|ameS|ameSPrime|aminaData|anczosWindow|andauDistribution|anguageData|anguageIdentify|aplaceDistribution|aplaceTransform|aplacian|aplacianFilter|aplacianGaussianFilter|aplacianPDETerm|ast|atitude|atitudeLongitude|atticeData|atticeReduce|aunchKernels|ayeredGraphPlot|ayeredGraphPlot3D|eafCount|eapVariant|eapYearQ|earnDistribution|earnedDistribution|eastSquares|eastSquaresFilterKernel|eftArrow|eftArrowBar|eftArrowRightArrow|eftDownTeeVector|eftDownVector|eftDownVectorBar|eftRightArrow|eftRightVector|eftTee|eftTeeArrow|eftTeeVector|eftTriangle|eftTriangleBar|eftTriangleEqual|eftUpDownVector|eftUpTeeVector|eftUpVector|eftUpVectorBar|eftVector|eftVectorBar|egended|egendreP|egendreQ|ength|engthWhile|erchPhi|ess|essEqual|essEqualGreater|essEqualThan|essFullEqual|essGreater|essLess|essSlantEqual|essThan|essTilde|etterCounts|etterNumber|etterQ|evel|eveneTest|eviCivitaTensor|evyDistribution|exicographicOrder|exicographicSort|ibraryDataType|ibraryFunction|ibraryFunctionError|ibraryFunctionInformation|ibraryFunctionLoad|ibraryFunctionUnload|ibraryLoad|ibraryUnload|iftingFilterData|iftingWaveletTransform|ighter|ikelihood|imit|indleyDistribution|ine|ineBreakChart|ineGraph|ineIntegralConvolutionPlot|ineLegend|inearFractionalOptimization|inearFractionalTransform|inearGradientFilling|inearGradientImage|inearModelFit|inearOptimization|inearRecurrence|inearSolve|inearSolveFunction|inearizingTransformationData|inkActivate|inkClose|inkConnect|inkCreate|inkInterrupt|inkLaunch|inkObject|inkPatterns|inkRankCentrality|inkRead|inkReadyQ|inkWrite|inks|iouvilleLambda|ist|istAnimate|istContourPlot|istContourPlot3D|istConvolve|istCorrelate|istCurvePathPlot|istDeconvolve|istDensityPlot|istDensityPlot3D|istFourierSequenceTransform|istInterpolation|istLineIntegralConvolutionPlot|istLinePlot|istLinePlot3D|istLogLinearPlot|istLogLogPlot|istLogPlot|istPicker|istPickerBox|istPlay|istPlot|istPlot3D|istPointPlot3D|istPolarPlot|istQ|istSliceContourPlot3D|istSliceDensityPlot3D|istSliceVectorPlot3D|istStepPlot|istStreamDensityPlot|istStreamPlot|istStreamPlot3D|istSurfacePlot3D|istVectorDensityPlot|istVectorDisplacementPlot|istVectorDisplacementPlot3D|istVectorPlot|istVectorPlot3D|istZTransform|ocalAdaptiveBinarize|ocalCache|ocalClusteringCoefficient|ocalEvaluate|ocalObject|ocalObjects|ocalSubmit|ocalSymbol|ocalTime|ocalTimeZone|ocationEquivalenceTest|ocationTest|ocator|ocatorPane|og|og10|og2|ogBarnesG|ogGamma|ogGammaDistribution|ogIntegral|ogLikelihood|ogLinearPlot|ogLogPlot|ogLogisticDistribution|ogMultinormalDistribution|ogNormalDistribution|ogPlot|ogRankTest|ogSeriesDistribution|ogicalExpand|ogisticDistribution|ogisticSigmoid|ogitModelFit|ongLeftArrow|ongLeftRightArrow|ongRightArrow|ongest|ongestCommonSequence|ongestCommonSequencePositions|ongestCommonSubsequence|ongestCommonSubsequencePositions|ongestOrderedSequence|ongitude|ookup|oopFreeGraphQ|owerCaseQ|owerLeftArrow|owerRightArrow|owerTriangularMatrix|owerTriangularMatrixQ|owerTriangularize|owpassFilter|ucasL|uccioSamiComponents|unarEclipse|yapunovSolve|yonsGroupLy))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "(?:M(?:AProcess|achineNumberQ|agnify|ailReceiverFunction|ajority|akeBoxes|akeExpression|anagedLibraryExpressionID|anagedLibraryExpressionQ|andelbrotSetBoettcher|andelbrotSetDistance|andelbrotSetIterationCount|andelbrotSetMemberQ|andelbrotSetPlot|angoldtLambda|anhattanDistance|anipulate|anipulator|annWhitneyTest|annedSpaceMissionData|antissaExponent|ap|apAll|apApply|apAt|apIndexed|apThread|archenkoPasturDistribution|arcumQ|ardiaCombinedTest|ardiaKurtosisTest|ardiaSkewnessTest|arginalDistribution|arkovProcessProperties|assConcentrationCondition|assFluxValue|assImpermeableBoundaryValue|assOutflowValue|assSymmetryValue|assTransferValue|assTransportPDEComponent|atchQ|atchingDissimilarity|aterialShading|athMLForm|athematicalFunctionData|athieuC|athieuCPrime|athieuCharacteristicA|athieuCharacteristicB|athieuCharacteristicExponent|athieuGroupM11|athieuGroupM12|athieuGroupM22|athieuGroupM23|athieuGroupM24|athieuS|athieuSPrime|atrices|atrixExp|atrixForm|atrixFunction|atrixLog|atrixNormalDistribution|atrixPlot|atrixPower|atrixPropertyDistribution|atrixQ|atrixRank|atrixTDistribution|ax|axDate|axDetect|axFilter|axLimit|axMemoryUsed|axStableDistribution|axValue|aximalBy|aximize|axwellDistribution|cLaughlinGroupMcL|ean|eanClusteringCoefficient|eanDegreeConnectivity|eanDeviation|eanFilter|eanGraphDistance|eanNeighborDegree|eanShift|eanShiftFilter|edian|edianDeviation|edianFilter|edicalTestData|eijerG|eijerGReduce|eixnerDistribution|ellinConvolve|ellinTransform|emberQ|emoryAvailable|emoryConstrained|emoryInUse|engerMesh|enuPacket|enuView|erge|ersennePrimeExponent|ersennePrimeExponentQ|eshCellCount|eshCellIndex|eshCells|eshConnectivityGraph|eshCoordinates|eshPrimitives|eshRegion|eshRegionQ|essage|essageDialog|essageList|essageName|essagePacket|essages|eteorShowerData|exicanHatWavelet|eyerWavelet|in|inDate|inDetect|inFilter|inLimit|inMax|inStableDistribution|inValue|ineralData|inimalBy|inimalPolynomial|inimalStateSpaceModel|inimize|inimumTimeIncrement|inkowskiQuestionMark|inorPlanetData|inors|inus|inusPlus|issing|issingQ|ittagLefflerE|ixedFractionParts|ixedGraphQ|ixedMagnitude|ixedRadix|ixedRadixQuantity|ixedUnit|ixtureDistribution|od|odelPredictiveController|odularInverse|odularLambda|odule|oebiusMu|oment|omentConvert|omentEvaluate|omentGeneratingFunction|omentOfInertia|onitor|onomialList|onsterGroupM|oonPhase|oonPosition|orletWavelet|orphologicalBinarize|orphologicalBranchPoints|orphologicalComponents|orphologicalEulerNumber|orphologicalGraph|orphologicalPerimeter|orphologicalTransform|ortalityData|ost|ountainData|ouseAnnotation|ouseAppearance|ousePosition|ouseover|ovieData|ovingAverage|ovingMap|ovingMedian|oyalDistribution|ulticolumn|ultigraphQ|ultinomial|ultinomialDistribution|ultinormalDistribution|ultiplicativeOrder|ultiplySides|ultivariateHypergeometricDistribution|ultivariatePoissonDistribution|ultivariateTDistribution))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "(?:N(?:|ArgMax|ArgMin|Cache|CaputoD|DEigensystem|DEigenvalues|DSolve|DSolveValue|Expectation|FractionalD|Integrate|MaxValue|Maximize|MinValue|Minimize|Probability|Product|Roots|Solve|SolveValues|Sum|akagamiDistribution|ameQ|ames|and|earest|earestFunction|earestMeshCells|earestNeighborGraph|earestTo|ebulaData|eedlemanWunschSimilarity|eeds|egative|egativeBinomialDistribution|egativeDefiniteMatrixQ|egativeMultinomialDistribution|egativeSemidefiniteMatrixQ|egativelyOrientedPoints|eighborhoodData|eighborhoodGraph|est|estGraph|estList|estWhile|estWhileList|estedGreaterGreater|estedLessLess|eumannValue|evilleThetaC|evilleThetaD|evilleThetaN|evilleThetaS|extCell|extDate|extPrime|icholsPlot|ightHemisphere|onCommutativeMultiply|onNegative|onPositive|oncentralBetaDistribution|oncentralChiSquareDistribution|oncentralFRatioDistribution|oncentralStudentTDistribution|ondimensionalizationTransform|oneTrue|onlinearModelFit|onlinearStateSpaceModel|onlocalMeansFilter|or|orlundB|orm|ormal|ormalDistribution|ormalMatrixQ|ormalize|ormalizedSquaredEuclideanDistance|ot|otCongruent|otCupCap|otDoubleVerticalBar|otElement|otEqualTilde|otExists|otGreater|otGreaterEqual|otGreaterFullEqual|otGreaterGreater|otGreaterLess|otGreaterSlantEqual|otGreaterTilde|otHumpDownHump|otHumpEqual|otLeftTriangle|otLeftTriangleBar|otLeftTriangleEqual|otLess|otLessEqual|otLessFullEqual|otLessGreater|otLessLess|otLessSlantEqual|otLessTilde|otNestedGreaterGreater|otNestedLessLess|otPrecedes|otPrecedesEqual|otPrecedesSlantEqual|otPrecedesTilde|otReverseElement|otRightTriangle|otRightTriangleBar|otRightTriangleEqual|otSquareSubset|otSquareSubsetEqual|otSquareSuperset|otSquareSupersetEqual|otSubset|otSubsetEqual|otSucceeds|otSucceedsEqual|otSucceedsSlantEqual|otSucceedsTilde|otSuperset|otSupersetEqual|otTilde|otTildeEqual|otTildeFullEqual|otTildeTilde|otVerticalBar|otebook|otebookApply|otebookClose|otebookDelete|otebookDirectory|otebookEvaluate|otebookFileName|otebookFind|otebookGet|otebookImport|otebookInformation|otebookLocate|otebookObject|otebookOpen|otebookPrint|otebookPut|otebookRead|otebookSave|otebookSelection|otebookTemplate|otebookWrite|otebooks|othing|uclearExplosionData|uclearReactorData|ullSpace|umberCompose|umberDecompose|umberDigit|umberExpand|umberFieldClassNumber|umberFieldDiscriminant|umberFieldFundamentalUnits|umberFieldIntegralBasis|umberFieldNormRepresentatives|umberFieldRegulator|umberFieldRootsOfUnity|umberFieldSignature|umberForm|umberLinePlot|umberQ|umerator|umeratorDenominator|umericQ|umericalOrder|umericalSort|uttallWindow|yquistPlot))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "(?:O(?:|NanGroupON|bservabilityGramian|bservabilityMatrix|bservableDecomposition|bservableModelQ|ceanData|ctahedron|ddQ|ff|ffset|n|nce|pacity|penAppend|penRead|penWrite|pener|penerView|pening|perate|ptimumFlowData|ptionValue|ptional|ptionalElement|ptions|ptionsPattern|r|rder|rderDistribution|rderedQ|rdering|rderingBy|rderlessPatternSequence|rnsteinUhlenbeckProcess|rthogonalMatrixQ|rthogonalize|uter|uterPolygon|uterPolyhedron|utputControllabilityMatrix|utputControllableModelQ|utputForm|utputNamePacket|utputResponse|utputStream|verBar|verDot|verHat|verTilde|verVector|verflow|verlay|verscript|verscriptBox|wenT|wnValues))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "(?:P(?:DF|ERTDistribution|IDTune|acletDataRebuild|acletDirectoryLoad|acletDirectoryUnload|acletDisable|acletEnable|acletFind|acletFindRemote|acletInstall|acletInstallSubmit|acletNewerQ|acletObject|acletSiteObject|acletSiteRegister|acletSiteUnregister|acletSiteUpdate|acletSites|acletUninstall|adLeft|adRight|addedForm|adeApproximant|ageRankCentrality|airedBarChart|airedHistogram|airedSmoothHistogram|airedTTest|airedZTest|aletteNotebook|alindromeQ|ane|aneSelector|anel|arabolicCylinderD|arallelArray|arallelAxisPlot|arallelCombine|arallelDo|arallelEvaluate|arallelKernels|arallelMap|arallelNeeds|arallelProduct|arallelSubmit|arallelSum|arallelTable|arallelTry|arallelepiped|arallelize|arallelogram|arameterMixtureDistribution|arametricConvexOptimization|arametricFunction|arametricNDSolve|arametricNDSolveValue|arametricPlot|arametricPlot3D|arametricRegion|arentBox|arentCell|arentDirectory|arentNotebook|aretoDistribution|aretoPickandsDistribution|arkData|art|artOfSpeech|artialCorrelationFunction|articleAcceleratorData|articleData|artition|artitionsP|artitionsQ|arzenWindow|ascalDistribution|aste|asteButton|athGraph|athGraphQ|attern|atternSequence|atternTest|aulWavelet|auliMatrix|ause|eakDetect|eanoCurve|earsonChiSquareTest|earsonCorrelationTest|earsonDistribution|ercentForm|erfectNumber|erfectNumberQ|erimeter|eriodicBoundaryCondition|eriodogram|eriodogramArray|ermanent|ermissionsGroup|ermissionsGroupMemberQ|ermissionsGroups|ermissionsKey|ermissionsKeys|ermutationCycles|ermutationCyclesQ|ermutationGroup|ermutationLength|ermutationList|ermutationListQ|ermutationMatrix|ermutationMax|ermutationMin|ermutationOrder|ermutationPower|ermutationProduct|ermutationReplace|ermutationSupport|ermutations|ermute|eronaMalikFilter|ersonData|etersenGraph|haseMargins|hongShading|hysicalSystemData|ick|ieChart|ieChart3D|iecewise|iecewiseExpand|illaiTrace|illaiTraceTest|ingTime|ixelValue|ixelValuePositions|laced|laceholder|lanarAngle|lanarFaceList|lanarGraph|lanarGraphQ|lanckRadiationLaw|laneCurveData|lanetData|lanetaryMoonData|lantData|lay|lot|lot3D|luralize|lus|lusMinus|ochhammer|oint|ointFigureChart|ointLegend|ointLight|ointSize|oissonConsulDistribution|oissonDistribution|oissonPDEComponent|oissonProcess|oissonWindow|olarPlot|olyGamma|olyLog|olyaAeppliDistribution|olygon|olygonAngle|olygonCoordinates|olygonDecomposition|olygonalNumber|olyhedron|olyhedronAngle|olyhedronCoordinates|olyhedronData|olyhedronDecomposition|olyhedronGenus|olynomialExpressionQ|olynomialExtendedGCD|olynomialGCD|olynomialLCM|olynomialMod|olynomialQ|olynomialQuotient|olynomialQuotientRemainder|olynomialReduce|olynomialRemainder|olynomialSumOfSquaresList|opupMenu|opupView|opupWindow|osition|ositionIndex|ositionLargest|ositionSmallest|ositive|ositiveDefiniteMatrixQ|ositiveSemidefiniteMatrixQ|ositivelyOrientedPoints|ossibleZeroQ|ostfix|ower|owerDistribution|owerExpand|owerMod|owerModList|owerRange|owerSpectralDensity|owerSymmetricPolynomial|owersRepresentations|reDecrement|reIncrement|recedenceForm|recedes|recedesEqual|recedesSlantEqual|recedesTilde|recision|redict|redictorFunction|redictorMeasurements|redictorMeasurementsObject|reemptProtect|refix|repend|rependTo|reviousCell|reviousDate|riceGraphDistribution|rime|rimeNu|rimeOmega|rimePi|rimePowerQ|rimeQ|rimeZetaP|rimitivePolynomialQ|rimitiveRoot|rimitiveRootList|rincipalComponents|rintTemporary|rintableASCIIQ|rintout3D|rism|rivateKey|robability|robabilityDistribution|robabilityPlot|robabilityScalePlot|robitModelFit|rocessConnection|rocessInformation|rocessObject|rocessParameterAssumptions|rocessParameterQ|rocessStatus|rocesses|roduct|roductDistribution|roductLog|rogressIndicator|rojection|roportion|roportional|rotect|roteinData|runing|seudoInverse|sychrometricPropertyData|ublicKey|ulsarData|ut|utAppend|yramid))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "(?:Q(?:Binomial|Factorial|Gamma|HypergeometricPFQ|Pochhammer|PolyGamma|RDecomposition|nDispersion|uadraticIrrationalQ|uadraticOptimization|uantile|uantilePlot|uantity|uantityArray|uantityDistribution|uantityForm|uantityMagnitude|uantityQ|uantityUnit|uantityVariable|uantityVariableCanonicalUnit|uantityVariableDimensions|uantityVariableIdentifier|uantityVariablePhysicalQuantity|uartileDeviation|uartileSkewness|uartiles|uery|ueueProperties|ueueingNetworkProcess|ueueingProcess|uiet|uietEcho|uotient|uotientRemainder))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "(?:R(?:GBColor|Solve|SolveValue|adialAxisPlot|adialGradientFilling|adialGradientImage|adialityCentrality|adicalBox|adioButton|adioButtonBar|adon|adonTransform|amanujanTau|amanujanTauL|amanujanTauTheta|amanujanTauZ|amp|andomChoice|andomColor|andomComplex|andomDate|andomEntity|andomFunction|andomGeneratorState|andomGeoPosition|andomGraph|andomImage|andomInteger|andomPermutation|andomPoint|andomPolygon|andomPolyhedron|andomPrime|andomReal|andomSample|andomTime|andomVariate|andomWalkProcess|andomWord|ange|angeFilter|ankedMax|ankedMin|arerProbability|aster|aster3D|asterize|ational|ationalExpressionQ|ationalize|atios|awBoxes|awData|ayleighDistribution|e|eIm|eImPlot|eactionPDETerm|ead|eadByteArray|eadLine|eadList|eadString|ealAbs|ealDigits|ealExponent|ealSign|eap|econstructionMesh|ectangle|ectangleChart|ectangleChart3D|ectangularRepeatingElement|ecurrenceFilter|ecurrenceTable|educe|efine|eflectionMatrix|eflectionTransform|efresh|egion|egionBinarize|egionBoundary|egionBounds|egionCentroid|egionCongruent|egionConvert|egionDifference|egionDilation|egionDimension|egionDisjoint|egionDistance|egionDistanceFunction|egionEmbeddingDimension|egionEqual|egionErosion|egionFit|egionImage|egionIntersection|egionMeasure|egionMember|egionMemberFunction|egionMoment|egionNearest|egionNearestFunction|egionPlot|egionPlot3D|egionProduct|egionQ|egionResize|egionSimilar|egionSymmetricDifference|egionUnion|egionWithin|egularExpression|egularPolygon|egularlySampledQ|elationGraph|eleaseHold|eliabilityDistribution|eliefImage|eliefPlot|emove|emoveAlphaChannel|emoveBackground|emoveDiacritics|emoveInputStreamMethod|emoveOutputStreamMethod|emoveUsers|enameDirectory|enameFile|enewalProcess|enkoChart|epairMesh|epeated|epeatedNull|epeatedTiming|epeatingElement|eplace|eplaceAll|eplaceAt|eplaceImageValue|eplaceList|eplacePart|eplacePixelValue|eplaceRepeated|esamplingAlgorithmData|escale|escalingTransform|esetDirectory|esidue|esidueSum|esolve|esourceData|esourceObject|esourceSearch|esponseForm|est|estricted|esultant|eturn|eturnExpressionPacket|eturnPacket|eturnTextPacket|everse|everseBiorthogonalSplineWavelet|everseElement|everseEquilibrium|everseGraph|everseSort|everseSortBy|everseUpEquilibrium|evolutionPlot3D|iccatiSolve|iceDistribution|idgeFilter|iemannR|iemannSiegelTheta|iemannSiegelZ|iemannXi|iffle|ightArrow|ightArrowBar|ightArrowLeftArrow|ightComposition|ightCosetRepresentative|ightDownTeeVector|ightDownVector|ightDownVectorBar|ightTee|ightTeeArrow|ightTeeVector|ightTriangle|ightTriangleBar|ightTriangleEqual|ightUpDownVector|ightUpTeeVector|ightUpVector|ightUpVectorBar|ightVector|ightVectorBar|iskAchievementImportance|iskReductionImportance|obustConvexOptimization|ogersTanimotoDissimilarity|ollPitchYawAngles|ollPitchYawMatrix|omanNumeral|oot|ootApproximant|ootIntervals|ootLocusPlot|ootMeanSquare|ootOfUnityQ|ootReduce|ootSum|oots|otate|otateLeft|otateRight|otationMatrix|otationTransform|ound|ow|owBox|owReduce|udinShapiro|udvalisGroupRu|ule|uleDelayed|ulePlot|un|unProcess|unThrough|ussellRaoDissimilarity))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "(?:S(?:ARIMAProcess|ARMAProcess|ASTriangle|SSTriangle|ameAs|ameQ|ampledSoundFunction|ampledSoundList|atelliteData|atisfiabilityCount|atisfiabilityInstances|atisfiableQ|ave|avitzkyGolayMatrix|awtoothWave|cale|caled|calingMatrix|calingTransform|can|cheduledTask|churDecomposition|cientificForm|corerGi|corerGiPrime|corerHi|corerHiPrime|ec|ech|echDistribution|econdOrderConeOptimization|ectorChart|ectorChart3D|eedRandom|elect|electComponents|electFirst|electedCells|electedNotebook|electionCreateCell|electionEvaluate|electionEvaluateCreateCell|electionMove|emanticImport|emanticImportString|emanticInterpretation|emialgebraicComponentInstances|emidefiniteOptimization|endMail|endMessage|equence|equenceAlignment|equenceCases|equenceCount|equenceFold|equenceFoldList|equencePosition|equenceReplace|equenceSplit|eries|eriesCoefficient|eriesData|erviceConnect|erviceDisconnect|erviceExecute|erviceObject|essionSubmit|essionTime|et|etAccuracy|etAlphaChannel|etAttributes|etCloudDirectory|etCookies|etDelayed|etDirectory|etEnvironment|etFileDate|etOptions|etPermissions|etPrecision|etSelectedNotebook|etSharedFunction|etSharedVariable|etStreamPosition|etSystemOptions|etUsers|etter|etterBar|etting|hallow|hannonWavelet|hapiroWilkTest|hare|harpen|hearingMatrix|hearingTransform|hellRegion|henCastanMatrix|hiftRegisterSequence|hiftedGompertzDistribution|hort|hortDownArrow|hortLeftArrow|hortRightArrow|hortTimeFourier|hortTimeFourierData|hortUpArrow|hortest|hortestPathFunction|how|iderealTime|iegelTheta|iegelTukeyTest|ierpinskiCurve|ierpinskiMesh|ign|ignTest|ignature|ignedRankTest|ignedRegionDistance|impleGraph|impleGraphQ|implePolygonQ|implePolyhedronQ|implex|implify|in|inIntegral|inc|inghMaddalaDistribution|ingularValueDecomposition|ingularValueList|ingularValuePlot|inh|inhIntegral|ixJSymbol|keleton|keletonTransform|kellamDistribution|kewNormalDistribution|kewness|kip|liceContourPlot3D|liceDensityPlot3D|liceDistribution|liceVectorPlot3D|lideView|lider|lider2D|liderBox|lot|lotSequence|mallCircle|mithDecomposition|mithDelayCompensator|mithWatermanSimilarity|moothDensityHistogram|moothHistogram|moothHistogram3D|moothKernelDistribution|nDispersion|ocketConnect|ocketListen|ocketListener|ocketObject|ocketOpen|ocketReadMessage|ocketReadyQ|ocketWaitAll|ocketWaitNext|ockets|okalSneathDissimilarity|olarEclipse|olarSystemFeatureData|olarTime|olidAngle|olidData|olidRegionQ|olve|olveAlways|olveValues|ort|ortBy|ound|oundNote|ourcePDETerm|ow|paceCurveData|pacer|pan|parseArray|parseArrayQ|patialGraphDistribution|patialMedian|peak|pearmanRankTest|pearmanRho|peciesData|pectralLineData|pectrogram|pectrogramArray|pecularity|peechSynthesize|pellingCorrectionList|phere|pherePoints|phericalBesselJ|phericalBesselY|phericalHankelH1|phericalHankelH2|phericalHarmonicY|phericalPlot3D|phericalShell|pheroidalEigenvalue|pheroidalJoiningFactor|pheroidalPS|pheroidalPSPrime|pheroidalQS|pheroidalQSPrime|pheroidalRadialFactor|pheroidalS1|pheroidalS1Prime|pheroidalS2|pheroidalS2Prime|plicedDistribution|plit|plitBy|pokenString|potLight|qrt|qrtBox|quare|quareFreeQ|quareIntersection|quareMatrixQ|quareRepeatingElement|quareSubset|quareSubsetEqual|quareSuperset|quareSupersetEqual|quareUnion|quareWave|quaredEuclideanDistance|quaresR|tableDistribution|tack|tackBegin|tackComplete|tackInhibit|tackedDateListPlot|tackedListPlot|tadiumShape|tandardAtmosphereData|tandardDeviation|tandardDeviationFilter|tandardForm|tandardOceanData|tandardize|tandbyDistribution|tar|tarClusterData|tarData|tarGraph|tartProcess|tateFeedbackGains|tateOutputEstimator|tateResponse|tateSpaceModel|tateSpaceTransform|tateTransformationLinearize|tationaryDistribution|tationaryWaveletPacketTransform|tationaryWaveletTransform|tatusArea|tatusCentrality|tieltjesGamma|tippleShading|tirlingS1|tirlingS2|toppingPowerData|tratonovichProcess|treamDensityPlot|treamPlot|treamPlot3D|treamPosition|treams|tringCases|tringContainsQ|tringCount|tringDelete|tringDrop|tringEndsQ|tringExpression|tringExtract|tringForm|tringFormat|tringFormatQ|tringFreeQ|tringInsert|tringJoin|tringLength|tringMatchQ|tringPadLeft|tringPadRight|tringPart|tringPartition|tringPosition|tringQ|tringRepeat|tringReplace|tringReplaceList|tringReplacePart|tringReverse|tringRiffle|tringRotateLeft|tringRotateRight|tringSkeleton|tringSplit|tringStartsQ|tringTake|tringTakeDrop|tringTemplate|tringToByteArray|tringToStream|tringTrim|tripBoxes|tructuralImportance|truveH|truveL|tudentTDistribution|tyle|tyleBox|tyleData|ubMinus|ubPlus|ubStar|ubValues|ubdivide|ubfactorial|ubgraph|ubresultantPolynomialRemainders|ubresultantPolynomials|ubresultants|ubscript|ubscriptBox|ubsequences|ubset|ubsetEqual|ubsetMap|ubsetQ|ubsets|ubstitutionSystem|ubsuperscript|ubsuperscriptBox|ubtract|ubtractFrom|ubtractSides|ucceeds|ucceedsEqual|ucceedsSlantEqual|ucceedsTilde|uccess|uchThat|um|umConvergence|unPosition|unrise|unset|uperDagger|uperMinus|uperPlus|uperStar|upernovaData|uperscript|uperscriptBox|uperset|upersetEqual|urd|urfaceArea|urfaceData|urvivalDistribution|urvivalFunction|urvivalModel|urvivalModelFit|uzukiDistribution|uzukiGroupSuz|watchLegend|witch|ymbol|ymbolName|ymletWavelet|ymmetric|ymmetricGroup|ymmetricKey|ymmetricMatrixQ|ymmetricPolynomial|ymmetricReduction|ymmetrize|ymmetrizedArray|ymmetrizedArrayRules|ymmetrizedDependentComponents|ymmetrizedIndependentComponents|ymmetrizedReplacePart|ynonyms|yntaxInformation|yntaxLength|yntaxPacket|yntaxQ|ystemDialogInput|ystemInformation|ystemOpen|ystemOptions|ystemProcessData|ystemProcesses|ystemsConnectionsModel|ystemsModelControllerData|ystemsModelDelay|ystemsModelDelayApproximate|ystemsModelDelete|ystemsModelDimensions|ystemsModelExtract|ystemsModelFeedbackConnect|ystemsModelLinearity|ystemsModelMerge|ystemsModelOrder|ystemsModelParallelConnect|ystemsModelSeriesConnect|ystemsModelStateFeedbackConnect|ystemsModelVectorRelativeOrders))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "(?:T(?:Test|abView|able|ableForm|agBox|agSet|agSetDelayed|agUnset|ake|akeDrop|akeLargest|akeLargestBy|akeList|akeSmallest|akeSmallestBy|akeWhile|ally|an|anh|askAbort|askExecute|askObject|askRemove|askResume|askSuspend|askWait|asks|autologyQ|eXForm|elegraphProcess|emplateApply|emplateBox|emplateExpression|emplateIf|emplateObject|emplateSequence|emplateSlot|emplateWith|emporalData|ensorContract|ensorDimensions|ensorExpand|ensorProduct|ensorRank|ensorReduce|ensorSymmetry|ensorTranspose|ensorWedge|erminatedEvaluation|estReport|estReportObject|estResultObject|etrahedron|ext|extCell|extData|extGrid|extPacket|extRecognize|extSentences|extString|extTranslation|extWords|exture|herefore|hermodynamicData|hermometerGauge|hickness|hinning|hompsonGroupTh|hread|hreeJSymbol|hreshold|hrough|hrow|hueMorse|humbnail|ideData|ilde|ildeEqual|ildeFullEqual|ildeTilde|imeConstrained|imeObject|imeObjectQ|imeRemaining|imeSeries|imeSeriesAggregate|imeSeriesForecast|imeSeriesInsert|imeSeriesInvertibility|imeSeriesMap|imeSeriesMapThread|imeSeriesModel|imeSeriesModelFit|imeSeriesResample|imeSeriesRescale|imeSeriesShift|imeSeriesThread|imeSeriesWindow|imeSystemConvert|imeUsed|imeValue|imeZoneConvert|imeZoneOffset|imelinePlot|imes|imesBy|iming|itsGroupT|oBoxes|oCharacterCode|oContinuousTimeModel|oDiscreteTimeModel|oEntity|oExpression|oInvertibleTimeSeries|oLowerCase|oNumberField|oPolarCoordinates|oRadicals|oRules|oSphericalCoordinates|oString|oUpperCase|oeplitzMatrix|ogether|oggler|ogglerBar|ooltip|oonShading|opHatTransform|opologicalSort|orus|orusGraph|otal|otalVariationFilter|ouchPosition|r|race|raceDialog|racePrint|raceScan|racyWidomDistribution|radingChart|raditionalForm|ransferFunctionCancel|ransferFunctionExpand|ransferFunctionFactor|ransferFunctionModel|ransferFunctionPoles|ransferFunctionTransform|ransferFunctionZeros|ransformationFunction|ransformationMatrix|ransformedDistribution|ransformedField|ransformedProcess|ransformedRegion|ransitiveClosureGraph|ransitiveReductionGraph|ranslate|ranslationTransform|ransliterate|ranspose|ravelDirections|ravelDirectionsData|ravelDistance|ravelDistanceList|ravelTime|reeForm|reeGraph|reeGraphQ|reePlot|riangle|riangleWave|riangularDistribution|riangulateMesh|rigExpand|rigFactor|rigFactorList|rigReduce|rigToExp|rigger|rimmedMean|rimmedVariance|ropicalStormData|rueQ|runcatedDistribution|runcatedPolyhedron|sallisQExponentialDistribution|sallisQGaussianDistribution|ube|ukeyLambdaDistribution|ukeyWindow|unnelData|uples|uranGraph|uringMachine|uttePolynomial|woWayRule|ypeHint))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "(?:U(?:RL|RLBuild|RLDecode|RLDispatcher|RLDownload|RLEncode|RLExecute|RLExpand|RLParse|RLQueryDecode|RLQueryEncode|RLRead|RLResponseTime|RLShorten|RLSubmit|nateQ|ncompress|nderBar|nderflow|nderoverscript|nderoverscriptBox|nderscript|nderscriptBox|nderseaFeatureData|ndirectedEdge|ndirectedGraph|ndirectedGraphQ|nequal|nequalTo|nevaluated|niformDistribution|niformGraphDistribution|niformPolyhedron|niformSumDistribution|ninstall|nion|nionPlus|nique|nitBox|nitConvert|nitDimensions|nitRootTest|nitSimplify|nitStep|nitTriangle|nitVector|nitaryMatrixQ|nitize|niverseModelData|niversityData|nixTime|nprotect|nsameQ|nset|nsetShared|ntil|pArrow|pArrowBar|pArrowDownArrow|pDownArrow|pEquilibrium|pSet|pSetDelayed|pTee|pTeeArrow|pTo|pValues|pdate|pperCaseQ|pperLeftArrow|pperRightArrow|pperTriangularMatrix|pperTriangularMatrixQ|pperTriangularize|psample|singFrontEnd))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "(?:V(?:alueQ|alues|ariables|ariance|arianceEquivalenceTest|arianceGammaDistribution|arianceTest|ectorAngle|ectorDensityPlot|ectorDisplacementPlot|ectorDisplacementPlot3D|ectorGreater|ectorGreaterEqual|ectorLess|ectorLessEqual|ectorPlot|ectorPlot3D|ectorQ|ectors|ee|erbatim|erificationTest|ertexAdd|ertexChromaticNumber|ertexComponent|ertexConnectivity|ertexContract|ertexCorrelationSimilarity|ertexCosineSimilarity|ertexCount|ertexCoverQ|ertexDegree|ertexDelete|ertexDiceSimilarity|ertexEccentricity|ertexInComponent|ertexInComponentGraph|ertexInDegree|ertexIndex|ertexJaccardSimilarity|ertexList|ertexOutComponent|ertexOutComponentGraph|ertexOutDegree|ertexQ|ertexReplace|ertexTransitiveGraphQ|ertexWeightedGraphQ|erticalBar|erticalGauge|erticalSeparator|erticalSlider|erticalTilde|oiceStyleData|oigtDistribution|olcanoData|olume|onMisesDistribution|oronoiMesh))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "(?:W(?:aitAll|aitNext|akebyDistribution|alleniusHypergeometricDistribution|aringYuleDistribution|arpingCorrespondence|arpingDistance|atershedComponents|atsonUSquareTest|attsStrogatzGraphDistribution|avePDEComponent|aveletBestBasis|aveletFilterCoefficients|aveletImagePlot|aveletListPlot|aveletMapIndexed|aveletMatrixPlot|aveletPhi|aveletPsi|aveletScalogram|aveletThreshold|eakStationarity|eaklyConnectedComponents|eaklyConnectedGraphComponents|eaklyConnectedGraphQ|eatherData|eatherForecastData|eberE|edge|eibullDistribution|eierstrassE1|eierstrassE2|eierstrassE3|eierstrassEta1|eierstrassEta2|eierstrassEta3|eierstrassHalfPeriodW1|eierstrassHalfPeriodW2|eierstrassHalfPeriodW3|eierstrassHalfPeriods|eierstrassInvariantG2|eierstrassInvariantG3|eierstrassInvariants|eierstrassP|eierstrassPPrime|eierstrassSigma|eierstrassZeta|eightedAdjacencyGraph|eightedAdjacencyMatrix|eightedData|eightedGraphQ|elchWindow|heelGraph|henEvent|hich|hile|hiteNoiseProcess|hittakerM|hittakerW|ienerFilter|ienerProcess|ignerD|ignerSemicircleDistribution|ikipediaData|ilksW|ilksWTest|indDirectionData|indSpeedData|indVectorData|indingCount|indingPolygon|insorizedMean|insorizedVariance|ishartMatrixDistribution|ith|olframAlpha|olframLanguageData|ordCloud|ordCount|ordCounts|ordData|ordDefinition|ordFrequency|ordFrequencyData|ordList|ordStem|ordTranslation|rite|riteLine|riteString|ronskian))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "(?:X(?:MLElement|MLObject|MLTemplate|YZColor|nor|or))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "(?:Y(?:uleDissimilarity))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "(?:Z(?:IPCodeData|Test|Transform|ernikeR|eroSymmetric|eta|etaZero|ipfDistribution))(?![`$[:alnum:]])", + "name": "support.function.builtin.wolfram" + }, + { + "match": "(?:A(?:cceptanceThreshold|ccuracyGoal|ctiveStyle|ddOnHelpPath|djustmentBoxOptions|lignment|lignmentPoint|llowGroupClose|llowInlineCells|llowLooseGrammar|llowReverseGroupClose|llowScriptLevelChange|llowVersionUpdate|llowedCloudExtraParameters|llowedCloudParameterExtensions|llowedDimensions|llowedFrequencyRange|llowedHeads|lternativeHypothesis|ltitudeMethod|mbiguityFunction|natomySkinStyle|nchoredSearch|nimationDirection|nimationRate|nimationRepetitions|nimationRunTime|nimationRunning|nimationTimeIndex|nnotationRules|ntialiasing|ppearance|ppearanceElements|ppearanceRules|spectRatio|ssociationFormat|ssumptions|synchronous|ttachedCell|udioChannelAssignment|udioEncoding|udioInputDevice|udioLabel|udioOutputDevice|uthentication|utoAction|utoCopy|utoDelete|utoGeneratedPackage|utoIndent|utoItalicWords|utoMultiplicationSymbol|utoOpenNotebooks|utoOpenPalettes|utoOperatorRenderings|utoRemove|utoScroll|utoSpacing|utoloadPath|utorunSequencing|xes|xesEdge|xesLabel|xesOrigin|xesStyle))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "(?:B(?:ackground|arOrigin|arSpacing|aseStyle|aselinePosition|inaryFormat|ookmarks|ooleanStrings|oundaryStyle|oxBaselineShift|oxFormFormatTypes|oxFrame|oxMargins|oxRatios|oxStyle|oxed|ubbleScale|ubbleSizes|uttonBoxOptions|uttonData|uttonFunction|uttonMinHeight|uttonSource|yteOrdering))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "(?:C(?:alendarType|alloutMarker|alloutStyle|aptureRunning|aseOrdering|elestialSystem|ellAutoOverwrite|ellBaseline|ellBracketOptions|ellChangeTimes|ellContext|ellDingbat|ellDingbatMargin|ellDynamicExpression|ellEditDuplicate|ellEpilog|ellEvaluationDuplicate|ellEvaluationFunction|ellEventActions|ellFrame|ellFrameColor|ellFrameLabelMargins|ellFrameLabels|ellFrameMargins|ellGrouping|ellGroupingRules|ellHorizontalScrolling|ellID|ellLabel|ellLabelAutoDelete|ellLabelMargins|ellLabelPositioning|ellLabelStyle|ellLabelTemplate|ellMargins|ellOpen|ellProlog|ellSize|ellTags|haracterEncoding|haracterEncodingsPath|hartBaseStyle|hartElementFunction|hartElements|hartLabels|hartLayout|hartLegends|hartStyle|lassPriors|lickToCopyEnabled|lipPlanes|lipPlanesStyle|lipRange|lippingStyle|losingAutoSave|loudBase|loudObjectNameFormat|loudObjectURLType|lusterDissimilarityFunction|odeAssistOptions|olorCoverage|olorFunction|olorFunctionBinning|olorFunctionScaling|olorRules|olorSelectorSettings|olorSpace|olumnAlignments|olumnLines|olumnSpacings|olumnWidths|olumnsEqual|ombinerFunction|ommonDefaultFormatTypes|ommunityBoundaryStyle|ommunityLabels|ommunityRegionStyle|ompilationOptions|ompilationTarget|ompiled|omplexityFunction|ompressionLevel|onfidenceLevel|onfidenceRange|onfidenceTransform|onfigurationPath|onstants|ontentPadding|ontentSelectable|ontentSize|ontinuousAction|ontourLabels|ontourShading|ontourStyle|ontours|ontrolPlacement|ontrolType|ontrollerLinking|ontrollerMethod|ontrollerPath|ontrolsRendering|onversionRules|ookieFunction|oordinatesToolOptions|opyFunction|opyable|ornerNeighbors|ounterAssignments|ounterFunction|ounterIncrements|ounterStyleMenuListing|ovarianceEstimatorFunction|reateCellID|reateIntermediateDirectories|riterionFunction|ubics|urveClosed))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "(?:D(?:ataRange|ataReversed|atasetTheme|ateFormat|ateFunction|ateGranularity|ateReduction|ateTicksFormat|ayCountConvention|efaultDuplicateCellStyle|efaultDuration|efaultElement|efaultFontProperties|efaultFormatType|efaultInlineFormatType|efaultNaturalLanguage|efaultNewCellStyle|efaultNewInlineCellStyle|efaultNotebook|efaultOptions|efaultPrintPrecision|efaultStyleDefinitions|einitialization|eletable|eleteContents|eletionWarning|elimiterAutoMatching|elimiterFlashTime|elimiterMatching|elimiters|eliveryFunction|ependentVariables|eployed|escriptorStateSpace|iacriticalPositioning|ialogProlog|ialogSymbols|igitBlock|irectedEdges|irection|iscreteVariables|ispersionEstimatorFunction|isplayAllSteps|isplayFunction|istanceFunction|istributedContexts|ithering|ividers|ockedCell|ockedCells|ynamicEvaluationTimeout|ynamicModuleValues|ynamicUpdating))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "(?:E(?:clipseType|dgeCapacity|dgeCost|dgeLabelStyle|dgeLabels|dgeShapeFunction|dgeStyle|dgeValueRange|dgeValueSizes|dgeWeight|ditCellTagsSettings|ditable|lidedForms|nabled|pilog|pilogFunction|scapeRadius|valuatable|valuationCompletionAction|valuationElements|valuationMonitor|valuator|valuatorNames|ventLabels|xcludePods|xcludedContexts|xcludedForms|xcludedLines|xcludedPhysicalQuantities|xclusions|xclusionsStyle|xponentFunction|xponentPosition|xponentStep|xponentialFamily|xportAutoReplacements|xpressionUUID|xtension|xtentElementFunction|xtentMarkers|xtentSize|xternalDataCharacterEncoding|xternalOptions|xternalTypeSignature))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "(?:F(?:aceGrids|aceGridsStyle|ailureAction|eatureNames|eatureTypes|eedbackSector|eedbackSectorStyle|eedbackType|ieldCompletionFunction|ieldHint|ieldHintStyle|ieldMasked|ieldSize|ileNameDialogSettings|ileNameForms|illing|illingStyle|indSettings|itRegularization|ollowRedirects|ontColor|ontFamily|ontSize|ontSlant|ontSubstitutions|ontTracking|ontVariations|ontWeight|orceVersionInstall|ormBoxOptions|ormLayoutFunction|ormProtectionMethod|ormatType|ormatTypeAutoConvert|ourierParameters|ractionBoxOptions|ractionLine|rame|rameBoxOptions|rameLabel|rameMargins|rameRate|rameStyle|rameTicks|rameTicksStyle|rontEndEventActions|unctionSpace))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "(?:G(?:apPenalty|augeFaceElementFunction|augeFaceStyle|augeFrameElementFunction|augeFrameSize|augeFrameStyle|augeLabels|augeMarkers|augeStyle|aussianIntegers|enerateConditions|eneratedCell|eneratedDocumentBinding|eneratedParameters|eneratedQuantityMagnitudes|eneratorDescription|eneratorHistoryLength|eneratorOutputType|eoArraySize|eoBackground|eoCenter|eoGridLines|eoGridLinesStyle|eoGridRange|eoGridRangePadding|eoLabels|eoLocation|eoModel|eoProjection|eoRange|eoRangePadding|eoResolution|eoScaleBar|eoServer|eoStylingImageFunction|eoZoomLevel|radient|raphHighlight|raphHighlightStyle|raphLayerStyle|raphLayers|raphLayout|ridCreationSettings|ridDefaultElement|ridFrame|ridFrameMargins|ridLines|ridLinesStyle|roupActionBase|roupPageBreakWithin))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "(?:H(?:eaderAlignment|eaderBackground|eaderDisplayFunction|eaderLines|eaderSize|eaderStyle|eads|elpBrowserSettings|iddenItems|olidayCalendar|yperlinkAction|yphenation))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "(?:I(?:conRules|gnoreCase|gnoreDiacritics|gnorePunctuation|mageCaptureFunction|mageFormattingWidth|mageLabels|mageLegends|mageMargins|magePadding|magePreviewFunction|mageRegion|mageResolution|mageSize|mageSizeAction|mageSizeMultipliers|magingDevice|mportAutoReplacements|mportOptions|ncludeConstantBasis|ncludeDefinitions|ncludeDirectories|ncludeFileExtension|ncludeGeneratorTasks|ncludeInflections|ncludeMetaInformation|ncludePods|ncludeQuantities|ncludeSingularSolutions|ncludeWindowTimes|ncludedContexts|ndeterminateThreshold|nflationMethod|nheritScope|nitialSeeding|nitialization|nitializationCell|nitializationCellEvaluation|nitializationCellWarning|nputAliases|nputAssumptions|nputAutoReplacements|nsertResults|nsertionFunction|nteractive|nterleaving|nterpolationOrder|nterpolationPoints|nterpretationBoxOptions|nterpretationFunction|ntervalMarkers|ntervalMarkersStyle|nverseFunctions|temAspectRatio|temDisplayFunction|temSize|temStyle))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "(?:J(?:oined))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "(?:K(?:eepExistingVersion|eyCollisionFunction|eypointStrength))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "(?:L(?:abelStyle|abelVisibility|abelingFunction|abelingSize|anguage|anguageCategory|ayerSizeFunction|eaderSize|earningRate|egendAppearance|egendFunction|egendLabel|egendLayout|egendMargins|egendMarkerSize|egendMarkers|ighting|ightingAngle|imitsPositioning|imitsPositioningTokens|ineBreakWithin|ineIndent|ineIndentMaxFraction|ineIntegralConvolutionScale|ineSpacing|inearOffsetFunction|inebreakAdjustments|inkFunction|inkProtocol|istFormat|istPickerBoxOptions|ocalizeVariables|ocatorAutoCreate|ocatorRegion|ooping))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "(?:M(?:agnification|ailAddressValidation|ailResponseFunction|ailSettings|asking|atchLocalNames|axCellMeasure|axColorDistance|axDuration|axExtraBandwidths|axExtraConditions|axFeatureDisplacement|axFeatures|axItems|axIterations|axMixtureKernels|axOverlapFraction|axPlotPoints|axRecursion|axStepFraction|axStepSize|axSteps|emoryConstraint|enuCommandKey|enuSortingValue|enuStyle|esh|eshCellHighlight|eshCellLabel|eshCellMarker|eshCellShapeFunction|eshCellStyle|eshFunctions|eshQualityGoal|eshRefinementFunction|eshShading|eshStyle|etaInformation|ethod|inColorDistance|inIntervalSize|inPointSeparation|issingBehavior|issingDataMethod|issingDataRules|issingString|issingStyle|odal|odulus|ultiaxisArrangement|ultiedgeStyle|ultilaunchWarning|ultilineFunction|ultiselection))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "(?:N(?:icholsGridLines|ominalVariables|onConstants|ormFunction|ormalized|ormalsFunction|otebookAutoSave|otebookBrowseDirectory|otebookConvertSettings|otebookDynamicExpression|otebookEventActions|otebookPath|otebooksMenu|otificationFunction|ullRecords|ullWords|umberFormat|umberMarks|umberMultiplier|umberPadding|umberPoint|umberSeparator|umberSigns|yquistGridLines))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "(?:O(?:pacityFunction|pacityFunctionScaling|peratingSystem|ptionInspectorSettings|utputAutoOverwrite|utputSizeLimit|verlaps|verscriptBoxOptions|verwriteTarget))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "(?:P(?:IDDerivativeFilter|IDFeedforward|acletSite|adding|addingSize|ageBreakAbove|ageBreakBelow|ageBreakWithin|ageFooterLines|ageFooters|ageHeaderLines|ageHeaders|ageTheme|ageWidth|alettePath|aneled|aragraphIndent|aragraphSpacing|arallelization|arameterEstimator|artBehavior|artitionGranularity|assEventsDown|assEventsUp|asteBoxFormInlineCells|ath|erformanceGoal|ermissions|haseRange|laceholderReplace|layRange|lotLabel|lotLabels|lotLayout|lotLegends|lotMarkers|lotPoints|lotRange|lotRangeClipping|lotRangePadding|lotRegion|lotStyle|lotTheme|odStates|odWidth|olarAxes|olarAxesOrigin|olarGridLines|olarTicks|oleZeroMarkers|recisionGoal|referencesPath|reprocessingRules|reserveColor|reserveImageOptions|rincipalValue|rintAction|rintPrecision|rintingCopies|rintingOptions|rintingPageRange|rintingStartingPageNumber|rintingStyleEnvironment|rintout3DPreviewer|rivateCellOptions|rivateEvaluationOptions|rivateFontOptions|rivateNotebookOptions|rivatePaths|rocessDirectory|rocessEnvironment|rocessEstimator|rogressReporting|rolog|ropagateAborts))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "(?:Q(?:uartics))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "(?:R(?:adicalBoxOptions|andomSeeding|asterSize|eImLabels|eImStyle|ealBlockDiagonalForm|ecognitionPrior|ecordLists|ecordSeparators|eferenceLineStyle|efreshRate|egionBoundaryStyle|egionFillingStyle|egionFunction|egionSize|egularization|enderingOptions|equiredPhysicalQuantities|esampling|esamplingMethod|esolveContextAliases|estartInterval|eturnReceiptFunction|evolutionAxis|otateLabel|otationAction|oundingRadius|owAlignments|owLines|owMinHeight|owSpacings|owsEqual|ulerUnits|untimeAttributes|untimeOptions))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "(?:S(?:ameTest|ampleDepth|ampleRate|amplingPeriod|aveConnection|aveDefinitions|aveable|caleDivisions|caleOrigin|calePadding|caleRangeStyle|caleRanges|calingFunctions|cientificNotationThreshold|creenStyleEnvironment|criptBaselineShifts|criptLevel|criptMinSize|criptSizeMultipliers|crollPosition|crollbars|crollingOptions|ectorOrigin|ectorSpacing|electable|elfLoopStyle|eriesTermGoal|haringList|howAutoSpellCheck|howAutoStyles|howCellBracket|howCellLabel|howCellTags|howClosedCellArea|howContents|howCursorTracker|howGroupOpener|howPageBreaks|howSelection|howShortBoxForm|howSpecialCharacters|howStringCharacters|hrinkingDelay|ignPadding|ignificanceLevel|imilarityRules|ingleLetterItalics|liderBoxOptions|ortedBy|oundVolume|pacings|panAdjustments|panCharacterRounding|panLineThickness|panMaxSize|panMinSize|panSymmetric|pecificityGoal|pellingCorrection|pellingDictionaries|pellingDictionariesPath|pellingOptions|phericalRegion|plineClosed|plineDegree|plineKnots|plineWeights|qrtBoxOptions|tabilityMargins|tabilityMarginsStyle|tandardized|tartingStepSize|tateSpaceRealization|tepMonitor|trataVariables|treamColorFunction|treamColorFunctionScaling|treamMarkers|treamPoints|treamScale|treamStyle|trictInequalities|tripOnInput|tripWrapperBoxes|tructuredSelection|tyleBoxAutoDelete|tyleDefinitions|tyleHints|tyleMenuListing|tyleNameDialogSettings|tyleSheetPath|ubscriptBoxOptions|ubsuperscriptBoxOptions|ubtitleEncoding|uperscriptBoxOptions|urdForm|ynchronousInitialization|ynchronousUpdating|yntaxForm|ystemHelpPath|ystemsModelLabels))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "(?:T(?:abFilling|abSpacings|ableAlignments|ableDepth|ableDirections|ableHeadings|ableSpacing|agBoxOptions|aggingRules|argetFunctions|argetUnits|emplateBoxOptions|emporalRegularity|estID|extAlignment|extClipboardType|extJustification|extureCoordinateFunction|extureCoordinateScaling|icks|icksStyle|imeConstraint|imeDirection|imeFormat|imeGoal|imeSystem|imeZone|okenWords|olerance|ooltipDelay|ooltipStyle|otalWidth|ouchscreenAutoZoom|ouchscreenControlPlacement|raceAbove|raceBackward|raceDepth|raceForward|raceOff|raceOn|raceOriginal|rackedSymbols|rackingFunction|raditionalFunctionNotation|ransformationClass|ransformationFunctions|ransitionDirection|ransitionDuration|ransitionEffect|ranslationOptions|ravelMethod|rendStyle|rig))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "(?:U(?:nderoverscriptBoxOptions|nderscriptBoxOptions|ndoOptions|ndoTrackedVariables|nitSystem|nityDimensions|nsavedVariables|pdateInterval|pdatePacletSites|tilityFunction))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "(?:V(?:alidationLength|alidationSet|alueDimensions|arianceEstimatorFunction|ectorAspectRatio|ectorColorFunction|ectorColorFunctionScaling|ectorMarkers|ectorPoints|ectorRange|ectorScaling|ectorSizes|ectorStyle|erifyConvergence|erifySecurityCertificates|erifySolutions|erifyTestAssumptions|ersionedPreferences|ertexCapacity|ertexColors|ertexCoordinates|ertexDataCoordinates|ertexLabelStyle|ertexLabels|ertexNormals|ertexShape|ertexShapeFunction|ertexSize|ertexStyle|ertexTextureCoordinates|ertexWeight|ideoEncoding|iewAngle|iewCenter|iewMatrix|iewPoint|iewProjection|iewRange|iewVector|iewVertical|isible))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "(?:W(?:aveletScale|eights|hitePoint|indowClickSelect|indowElements|indowFloating|indowFrame|indowFrameElements|indowMargins|indowOpacity|indowSize|indowStatusArea|indowTitle|indowToolbars|ordOrientation|ordSearch|ordSelectionFunction|ordSeparators|ordSpacings|orkingPrecision|rapAround))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "(?:Z(?:eroTest|eroWidthTimes))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "(?:A(?:bove|fter|lgebraics|ll|nonymous|utomatic|xis))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "(?:B(?:ack|ackward|aseline|efore|elow|lack|lue|old|ooleans|ottom|oxes|rown|yte))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "(?:C(?:atalan|ellStyle|enter|haracter|omplexInfinity|omplexes|onstant|yan))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "(?:D(?:ashed|efaultAxesStyle|efaultBaseStyle|efaultBoxStyle|efaultFaceGridsStyle|efaultFieldHintStyle|efaultFrameStyle|efaultFrameTicksStyle|efaultGridLinesStyle|efaultLabelStyle|efaultMenuStyle|efaultTicksStyle|efaultTooltipStyle|egree|elimiter|igitCharacter|otDashed|otted))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "(?:E(?:|ndOfBuffer|ndOfFile|ndOfLine|ndOfString|ulerGamma|xpression))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "(?:F(?:alse|lat|ontProperties|orward|orwardBackward|riday|ront|rontEndDynamicExpression|ull))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "(?:G(?:eneral|laisher|oldenAngle|oldenRatio|ray|reen))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "(?:H(?:ere|exadecimalCharacter|oldAll|oldAllComplete|oldFirst|oldRest))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "(?:I(?:|ndeterminate|nfinity|nherited|nteger|ntegers|talic))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "(?:K(?:hinchin))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "(?:L(?:arge|arger|eft|etterCharacter|ightBlue|ightBrown|ightCyan|ightGray|ightGreen|ightMagenta|ightOrange|ightPink|ightPurple|ightRed|ightYellow|istable|ocked))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "(?:M(?:achinePrecision|agenta|anual|edium|eshCellCentroid|eshCellMeasure|eshCellQuality|onday))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "(?:N(?:HoldAll|HoldFirst|HoldRest|egativeIntegers|egativeRationals|egativeReals|oWhitespace|onNegativeIntegers|onNegativeRationals|onNegativeReals|onPositiveIntegers|onPositiveRationals|onPositiveReals|one|ow|ull|umber|umberString|umericFunction))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "(?:O(?:neIdentity|range|rderless))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "(?:P(?:i|ink|lain|ositiveIntegers|ositiveRationals|ositiveReals|rimes|rotected|unctuationCharacter|urple))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "(?:R(?:ationals|eadProtected|eal|eals|ecord|ed|ight))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "(?:S(?:aturday|equenceHold|mall|maller|panFromAbove|panFromBoth|panFromLeft|tartOfLine|tartOfString|tring|truckthrough|tub|unday))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "(?:T(?:emporary|hick|hin|hursday|iny|oday|omorrow|op|ransparent|rue|uesday))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "(?:U(?:ndefined|nderlined))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "(?:W(?:ednesday|hite|hitespace|hitespaceCharacter|ord|ordBoundary|ordCharacter))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "(?:Y(?:ellow|esterday))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "(?:\\$(?:Aborted|ActivationKey|AllowDataUpdates|AllowInternet|AssertFunction|Assumptions|AudioInputDevices|AudioOutputDevices|BaseDirectory|BasePacletsDirectory|BatchInput|BatchOutput|ByteOrdering|CacheBaseDirectory|Canceled|CharacterEncoding|CharacterEncodings|CloudAccountName|CloudBase|CloudConnected|CloudCreditsAvailable|CloudEvaluation|CloudExpressionBase|CloudObjectNameFormat|CloudObjectURLType|CloudRootDirectory|CloudSymbolBase|CloudUserID|CloudUserUUID|CloudVersion|CommandLine|CompilationTarget|Context|ContextAliases|ContextPath|ControlActiveSetting|Cookies|CreationDate|CurrentLink|CurrentTask|DateStringFormat|DefaultAudioInputDevice|DefaultAudioOutputDevice|DefaultFrontEnd|DefaultImagingDevice|DefaultKernels|DefaultLocalBase|DefaultLocalKernel|Display|DisplayFunction|DistributedContexts|DynamicEvaluation|Echo|EmbedCodeEnvironments|EmbeddableServices|Epilog|EvaluationCloudBase|EvaluationCloudObject|EvaluationEnvironment|ExportFormats|Failed|FontFamilies|FrontEnd|FrontEndSession|GeoLocation|GeoLocationCity|GeoLocationCountry|GeoLocationSource|HomeDirectory|IgnoreEOF|ImageFormattingWidth|ImageResolution|ImagingDevice|ImagingDevices|ImportFormats|InitialDirectory|Input|InputFileName|InputStreamMethods|Inspector|InstallationDirectory|InterpreterTypes|IterationLimit|KernelCount|KernelID|Language|LibraryPath|LicenseExpirationDate|LicenseID|LicenseServer|Linked|LocalBase|LocalSymbolBase|MachineAddresses|MachineDomains|MachineEpsilon|MachineID|MachineName|MachinePrecision|MachineType|MaxExtraPrecision|MaxMachineNumber|MaxNumber|MaxPiecewiseCases|MaxPrecision|MaxRootDegree|MessageGroups|MessageList|MessagePrePrint|Messages|MinMachineNumber|MinNumber|MinPrecision|MobilePhone|ModuleNumber|NetworkConnected|NewMessage|NewSymbol|NotebookInlineStorageLimit|Notebooks|NumberMarks|OperatingSystem|Output|OutputSizeLimit|OutputStreamMethods|Packages|ParentLink|ParentProcessID|PasswordFile|Path|PathnameSeparator|PerformanceGoal|Permissions|PlotTheme|Printout3DPreviewer|ProcessID|ProcessorCount|ProcessorType|ProgressReporting|RandomGeneratorState|RecursionLimit|ReleaseNumber|RequesterAddress|RequesterCloudUserID|RequesterCloudUserUUID|RequesterWolframID|RequesterWolframUUID|RootDirectory|ScriptCommandLine|ScriptInputString|Services|SessionID|SharedFunctions|SharedVariables|SoundDisplayFunction|SynchronousEvaluation|System|SystemCharacterEncoding|SystemID|SystemShell|SystemTimeZone|SystemWordLength|TemplatePath|TemporaryDirectory|TimeUnit|TimeZone|TimeZoneEntity|TimedOut|UnitSystem|Urgent|UserAgentString|UserBaseDirectory|UserBasePacletsDirectory|UserDocumentsDirectory|UserURLBase|Username|Version|VersionNumber|WolframDocumentsDirectory|WolframID|WolframUUID))(?![`$[:alnum:]])", + "name": "constant.language.wolfram" + }, + { + "match": "(?:A(?:bortScheduledTask|ctive|lgebraicRules|lternateImage|natomyForm|nimationCycleOffset|nimationCycleRepetitions|nimationDisplayTime|spectRatioFixed|stronomicalData|synchronousTaskObject|synchronousTasks|udioDevice|udioLooping))(?![`$[:alnum:]])", + "name": "invalid.deprecated.wolfram" + }, + { + "match": "(?:B(?:uttonEvaluator|uttonExpandable|uttonFrame|uttonMargins|uttonNote|uttonStyle))(?![`$[:alnum:]])", + "name": "invalid.deprecated.wolfram" + }, + { + "match": "(?:C(?:DFInformation|hebyshevDistance|lassifierInformation|lipFill|olorOutput|olumnForm|ompose|onstantArrayLayer|onstantPlusLayer|onstantTimesLayer|onstrainedMax|onstrainedMin|ontourGraphics|ontourLines|onversionOptions|reateScheduledTask|reateTemporary|urry))(?![`$[:alnum:]])", + "name": "invalid.deprecated.wolfram" + }, + { + "match": "(?:D(?:atabinRemove|ate|ebug|efaultColor|efaultFont|ensityGraphics|isplay|isplayString|otPlusLayer|ragAndDrop))(?![`$[:alnum:]])", + "name": "invalid.deprecated.wolfram" + }, + { + "match": "(?:E(?:dgeLabeling|dgeRenderingFunction|valuateScheduledTask|xpectedValue))(?![`$[:alnum:]])", + "name": "invalid.deprecated.wolfram" + }, + { + "match": "(?:F(?:actorComplete|ontForm|ormTheme|romDate|ullOptions))(?![`$[:alnum:]])", + "name": "invalid.deprecated.wolfram" + }, + { + "match": "(?:G(?:raphStyle|raphicsArray|raphicsSpacing|ridBaseline))(?![`$[:alnum:]])", + "name": "invalid.deprecated.wolfram" + }, + { + "match": "(?:H(?:TMLSave|eldPart|iddenSurface|omeDirectory))(?![`$[:alnum:]])", + "name": "invalid.deprecated.wolfram" + }, + { + "match": "(?:I(?:mageRotated|nstanceNormalizationLayer))(?![`$[:alnum:]])", + "name": "invalid.deprecated.wolfram" + }, + { + "match": "(?:L(?:UBackSubstitution|egendreType|ightSources|inearProgramming|inkOpen|iteral|ongestMatch))(?![`$[:alnum:]])", + "name": "invalid.deprecated.wolfram" + }, + { + "match": "(?:M(?:eshRange|oleculeEquivalentQ))(?![`$[:alnum:]])", + "name": "invalid.deprecated.wolfram" + }, + { + "match": "(?:N(?:etInformation|etSharedArray|extScheduledTaskTime|otebookCreate))(?![`$[:alnum:]])", + "name": "invalid.deprecated.wolfram" + }, + { + "match": "(?:O(?:penTemporary))(?![`$[:alnum:]])", + "name": "invalid.deprecated.wolfram" + }, + { + "match": "(?:P(?:IDData|ackingMethod|ersistentValue|ixelConstrained|lot3Matrix|lotDivision|lotJoined|olygonIntersections|redictorInformation|roperties|roperty|ropertyList|ropertyValue))(?![`$[:alnum:]])", + "name": "invalid.deprecated.wolfram" + }, + { + "match": "(?:R(?:andom|asterArray|ecognitionThreshold|elease|emoteKernelObject|emoveAsynchronousTask|emoveProperty|emoveScheduledTask|enderAll|eplaceHeldPart|esetScheduledTask|esumePacket|unScheduledTask))(?![`$[:alnum:]])", + "name": "invalid.deprecated.wolfram" + }, + { + "match": "(?:S(?:cheduledTaskActiveQ|cheduledTaskInformation|cheduledTaskObject|cheduledTasks|creenRectangle|electionAnimate|equenceAttentionLayer|equenceForm|etProperty|hading|hortestMatch|ingularValues|kinStyle|ocialMediaData|tartAsynchronousTask|tartScheduledTask|tateDimensions|topAsynchronousTask|topScheduledTask|tructuredArray|tyleForm|tylePrint|ubscripted|urfaceColor|urfaceGraphics|uspendPacket|ystemModelProgressReporting))(?![`$[:alnum:]])", + "name": "invalid.deprecated.wolfram" + }, + { + "match": "(?:T(?:eXSave|extStyle|imeWarpingCorrespondence|imeWarpingDistance|oDate|oFileName|oHeldExpression))(?![`$[:alnum:]])", + "name": "invalid.deprecated.wolfram" + }, + { + "match": "(?:U(?:RLFetch|RLFetchAsynchronous|RLSave|RLSaveAsynchronous))(?![`$[:alnum:]])", + "name": "invalid.deprecated.wolfram" + }, + { + "match": "(?:V(?:ectorScale|ertexCoordinateRules|ertexLabeling|ertexRenderingFunction))(?![`$[:alnum:]])", + "name": "invalid.deprecated.wolfram" + }, + { + "match": "(?:W(?:aitAsynchronousTask|indowMovable))(?![`$[:alnum:]])", + "name": "invalid.deprecated.wolfram" + }, + { + "match": "(?:\\$(?:AsynchronousTask|ConfiguredKernels|DefaultFont|EntityStores|FormatType|HTTPCookies|InstallationDate|MachineDomain|ProductInformation|ProgramName|RandomState|ScheduledTask|SummaryBoxDataSizeLimit|TemporaryPrefix|TextStyle|TopDirectory|UserAddOnsDirectory))(?![`$[:alnum:]])", + "name": "invalid.deprecated.wolfram" + }, + { + "match": "(?:A(?:ctionDelay|ctionMenuBox|ctionMenuBoxOptions|ctiveItem|lgebraicRulesData|lignmentMarker|llowAdultContent|llowChatServices|llowIncomplete|nalytic|nimatorBox|nimatorBoxOptions|nimatorElements|ppendCheck|rgumentCountQ|rrow3DBox|rrowBox|uthenticate|utoEvaluateEvents|utoIndentSpacings|utoMatch|utoNumberFormatting|utoQuoteCharacters|utoScaling|utoStyleOptions|utoStyleWords|utomaticImageSize|xis3DBox|xis3DBoxOptions|xisBox|xisBoxOptions))(?![`$[:alnum:]])", + "name": "support.function.undocumented.wolfram" + }, + { + "match": "(?:B(?:SplineCurve3DBox|SplineCurve3DBoxOptions|SplineCurveBox|SplineCurveBoxOptions|SplineSurface3DBox|SplineSurface3DBoxOptions|ackFaceColor|ackFaceGlowColor|ackFaceOpacity|ackFaceSpecularColor|ackFaceSpecularExponent|ackFaceSurfaceAppearance|ackFaceTexture|ackgroundAppearance|ackgroundTasksSettings|acksubstitution|eveled|ezierCurve3DBox|ezierCurve3DBoxOptions|ezierCurveBox|ezierCurveBoxOptions|lankForm|ounds|ox|oxDimensions|oxForm|oxID|oxRotation|oxRotationPoint|ra|raKet|rowserCategory|uttonCell|uttonContents|uttonStyleMenuListing))(?![`$[:alnum:]])", + "name": "support.function.undocumented.wolfram" + }, + { + "match": "(?:C(?:acheGraphics|achedValue|ardinalBSplineBasis|ellBoundingBox|ellContents|ellElementSpacings|ellElementsBoundingBox|ellFrameStyle|ellInsertionPointCell|ellTrayPosition|ellTrayWidgets|hangeOptions|hannelDatabin|hannelListenerWait|hannelPreSendFunction|hartElementData|hartElementDataFunction|heckAll|heckboxBox|heckboxBoxOptions|ircleBox|lipboardNotebook|lockwiseContourIntegral|losed|losingEvent|loudConnections|loudObjectInformation|loudObjectInformationData|loudUserID|oarse|oefficientDomain|olonForm|olorSetterBox|olorSetterBoxOptions|olumnBackgrounds|ompilerEnvironmentAppend|ompletionsListPacket|omponentwiseContextMenu|ompressedData|oneBox|onicHullRegion3DBox|onicHullRegion3DBoxOptions|onicHullRegionBox|onicHullRegionBoxOptions|onnect|ontentsBoundingBox|ontextMenu|ontinuation|ontourIntegral|ontourSmoothing|ontrolAlignment|ontrollerDuration|ontrollerInformationData|onvertToPostScript|onvertToPostScriptPacket|ookies|opyTag|ounterBox|ounterBoxOptions|ounterClockwiseContourIntegral|ounterEvaluator|ounterStyle|uboidBox|uboidBoxOptions|urlyDoubleQuote|urlyQuote|ylinderBox|ylinderBoxOptions))(?![`$[:alnum:]])", + "name": "support.function.undocumented.wolfram" + }, + { + "match": "(?:D(?:OSTextFormat|ampingFactor|ataCompression|atasetDisplayPanel|ateDelimiters|ebugTag|ecimal|efault2DTool|efault3DTool|efaultAttachedCellStyle|efaultControlPlacement|efaultDockedCellStyle|efaultInputFormatType|efaultOutputFormatType|efaultStyle|efaultTextFormatType|efaultTextInlineFormatType|efaultValue|efineExternal|egreeLexicographic|egreeReverseLexicographic|eleteWithContents|elimitedArray|estroyAfterEvaluation|eviceOpenQ|ialogIndent|ialogLevel|ifferenceOrder|igitBlockMinimum|isableConsolePrintPacket|iskBox|iskBoxOptions|ispatchQ|isplayRules|isplayTemporary|istributionDomain|ivergence|ocumentGeneratorInformationData|omainRegistrationInformation|oubleContourIntegral|oublyInfinite|own|rawBackFaces|rawFrontFaces|rawHighlighted|ualLinearProgramming|umpGet|ynamicBox|ynamicBoxOptions|ynamicLocation|ynamicModuleBox|ynamicModuleBoxOptions|ynamicModuleParent|ynamicName|ynamicNamespace|ynamicReference|ynamicWrapperBox|ynamicWrapperBoxOptions))(?![`$[:alnum:]])", + "name": "support.function.undocumented.wolfram" + }, + { + "match": "(?:E(?:ditButtonSettings|liminationOrder|llipticReducedHalfPeriods|mbeddingObject|mphasizeSyntaxErrors|mpty|nableConsolePrintPacket|ndAdd|ngineEnvironment|nter|qualColumns|qualRows|quatedTo|rrorBoxOptions|rrorNorm|rrorPacket|rrorsDialogSettings|valuated|valuationMode|valuationOrder|valuationRateLimit|ventEvaluator|ventHandlerTag|xactRootIsolation|xitDialog|xpectationE|xportPacket|xpressionPacket|xternalCall|xternalFunctionName))(?![`$[:alnum:]])", + "name": "support.function.undocumented.wolfram" + }, + { + "match": "(?:F(?:EDisableConsolePrintPacket|EEnableConsolePrintPacket|ail|ileInformation|ileName|illForm|illedCurveBox|illedCurveBoxOptions|ine|itAll|lashSelection|ont|ontName|ontOpacity|ontPostScriptName|ontReencoding|ormatRules|ormatValues|rameInset|rameless|rontEndObject|rontEndResource|rontEndResourceString|rontEndStackSize|rontEndValueCache|rontEndVersion|rontFaceColor|rontFaceGlowColor|rontFaceOpacity|rontFaceSpecularColor|rontFaceSpecularExponent|rontFaceSurfaceAppearance|rontFaceTexture|ullAxes))(?![`$[:alnum:]])", + "name": "support.function.undocumented.wolfram" + }, + { + "match": "(?:G(?:eneratedCellStyles|eneric|eometricTransformation3DBox|eometricTransformation3DBoxOptions|eometricTransformationBox|eometricTransformationBoxOptions|estureHandlerTag|etContext|etFileName|etLinebreakInformationPacket|lobalPreferences|lobalSession|raphLayerLabels|raphRoot|raphics3DBox|raphics3DBoxOptions|raphicsBaseline|raphicsBox|raphicsBoxOptions|raphicsComplex3DBox|raphicsComplex3DBoxOptions|raphicsComplexBox|raphicsComplexBoxOptions|raphicsContents|raphicsData|raphicsGridBox|raphicsGroup3DBox|raphicsGroup3DBoxOptions|raphicsGroupBox|raphicsGroupBoxOptions|raphicsGrouping|raphicsStyle|reekStyle|ridBoxAlignment|ridBoxBackground|ridBoxDividers|ridBoxFrame|ridBoxItemSize|ridBoxItemStyle|ridBoxOptions|ridBoxSpacings|ridElementStyleOptions|roupOpenerColor|roupOpenerInsideFrame|roupTogetherGrouping|roupTogetherNestedGrouping))(?![`$[:alnum:]])", + "name": "support.function.undocumented.wolfram" + }, + { + "match": "(?:H(?:eadCompose|eaders|elpBrowserLookup|elpBrowserNotebook|elpViewerSettings|essian|exahedronBox|exahedronBoxOptions|ighlightString|omePage|orizontal|orizontalForm|orizontalScrollPosition|yperlinkCreationSettings|yphenationOptions))(?![`$[:alnum:]])", + "name": "support.function.undocumented.wolfram" + }, + { + "match": "(?:I(?:conizedObject|gnoreSpellCheck|mageCache|mageCacheValid|mageEditMode|mageMarkers|mageOffset|mageRangeCache|mageSizeCache|mageSizeRaw|nactiveStyle|ncludeSingularTerm|ndent|ndentMaxFraction|ndentingNewlineSpacings|ndexCreationOptions|ndexTag|nequality|nexactNumbers|nformationData|nformationDataGrid|nlineCounterAssignments|nlineCounterIncrements|nlineRules|nputFieldBox|nputFieldBoxOptions|nputGrouping|nputSettings|nputToBoxFormPacket|nsertionPointObject|nset3DBox|nset3DBoxOptions|nsetBox|nsetBoxOptions|ntegral|nterlaced|nterpolationPrecision|nterpretTemplate|nterruptSettings|nto|nvisibleApplication|nvisibleTimes|temBox|temBoxOptions))(?![`$[:alnum:]])", + "name": "support.function.undocumented.wolfram" + }, + { + "match": "(?:J(?:acobian|oinedCurveBox|oinedCurveBoxOptions))(?![`$[:alnum:]])", + "name": "support.function.undocumented.wolfram" + }, + { + "match": "(?:K(?:|ernelExecute|et))(?![`$[:alnum:]])", + "name": "support.function.undocumented.wolfram" + }, + { + "match": "(?:L(?:abeledSlider|ambertW|anguageOptions|aunch|ayoutInformation|exicographic|icenseID|ine3DBox|ine3DBoxOptions|ineBox|ineBoxOptions|ineBreak|ineWrapParts|inearFilter|inebreakSemicolonWeighting|inkConnectedQ|inkError|inkFlush|inkHost|inkMode|inkOptions|inkReadHeld|inkService|inkWriteHeld|istPickerBoxBackground|isten|iteralSearch|ocalizeDefinitions|ocatorBox|ocatorBoxOptions|ocatorCentering|ocatorPaneBox|ocatorPaneBoxOptions|ongEqual|ongForm|oopback))(?![`$[:alnum:]])", + "name": "support.function.undocumented.wolfram" + }, + { + "match": "(?:M(?:achineID|achineName|acintoshSystemPageSetup|ainSolve|aintainDynamicCaches|akeRules|atchLocalNameQ|aterial|athMLText|athematicaNotation|axBend|axPoints|enu|enuAppearance|enuEvaluator|enuItem|enuList|ergeDifferences|essageObject|essageOptions|essagesNotebook|etaCharacters|ethodOptions|inRecursion|inSize|ode|odular|onomialOrder|ouseAppearanceTag|ouseButtons|ousePointerNote|ultiLetterItalics|ultiLetterStyle|ultiplicity|ultiscriptBoxOptions))(?![`$[:alnum:]])", + "name": "support.function.undocumented.wolfram" + }, + { + "match": "(?:N(?:BernoulliB|ProductFactors|SumTerms|Values|amespaceBox|amespaceBoxOptions|estedScriptRules|etworkPacketRecordingDuring|ext|onAssociative|ormalGrouping|otebookDefault|otebookInterfaceObject))(?![`$[:alnum:]])", + "name": "support.function.undocumented.wolfram" + }, + { + "match": "(?:O(?:LEData|bjectExistsQ|pen|penFunctionInspectorPacket|penSpecialOptions|penerBox|penerBoxOptions|ptionQ|ptionValueBox|ptionValueBoxOptions|ptionsPacket|utputFormData|utputGrouping|utputMathEditExpression|ver|verlayBox|verlayBoxOptions))(?![`$[:alnum:]])", + "name": "support.function.undocumented.wolfram" + }, + { + "match": "(?:P(?:ackPaclet|ackage|acletDirectoryAdd|acletDirectoryRemove|acletInformation|acletObjectQ|acletUpdate|ageHeight|alettesMenuSettings|aneBox|aneBoxOptions|aneSelectorBox|aneSelectorBoxOptions|anelBox|anelBoxOptions|aperWidth|arameter|arameterVariables|arentConnect|arentForm|arentList|arenthesize|artialD|asteAutoQuoteCharacters|ausedTime|eriodicInterpolation|erpendicular|ickMode|ickedElements|ivoting|lotRangeClipPlanesStyle|oint3DBox|oint3DBoxOptions|ointBox|ointBoxOptions|olygon3DBox|olygon3DBoxOptions|olygonBox|olygonBoxOptions|olygonHoleScale|olygonScale|olyhedronBox|olyhedronBoxOptions|olynomialForm|olynomials|opupMenuBox|opupMenuBoxOptions|ostScript|recedence|redictionRoot|referencesSettings|revious|rimaryPlaceholder|rintForm|rismBox|rismBoxOptions|rivateFrontEndOptions|robabilityPr|rocessStateDomain|rocessTimeDomain|rogressIndicatorBox|rogressIndicatorBoxOptions|romptForm|yramidBox|yramidBoxOptions))(?![`$[:alnum:]])", + "name": "support.function.undocumented.wolfram" + }, + { + "match": "(?:R(?:adioButtonBox|adioButtonBoxOptions|andomSeed|angeSpecification|aster3DBox|aster3DBoxOptions|asterBox|asterBoxOptions|ationalFunctions|awArray|awMedium|ebuildPacletData|ectangleBox|ecurringDigitsForm|eferenceMarkerStyle|eferenceMarkers|einstall|emoved|epeatedString|esourceAcquire|esourceSubmissionObject|eturnCreatesNewCell|eturnEntersInput|eturnInputFormPacket|otationBox|otationBoxOptions|oundImplies|owBackgrounds|owHeights|uleCondition|uleForm))(?![`$[:alnum:]])", + "name": "support.function.undocumented.wolfram" + }, + { + "match": "(?:S(?:aveAutoDelete|caledMousePosition|cheduledTaskInformationData|criptForm|criptRules|ectionGrouping|electWithContents|election|electionCell|electionCellCreateCell|electionCellDefaultStyle|electionCellParentStyle|electionPlaceholder|elfLoops|erviceResponse|etOptionsPacket|etSecuredAuthenticationKey|etbacks|etterBox|etterBoxOptions|howAutoConvert|howCodeAssist|howControls|howGroupOpenCloseIcon|howInvisibleCharacters|howPredictiveInterface|howSyntaxStyles|hrinkWrapBoundingBox|ingleEvaluation|ingleLetterStyle|lider2DBox|lider2DBoxOptions|ocket|olveDelayed|oundAndGraphics|pace|paceForm|panningCharacters|phereBox|phereBoxOptions|tartupSound|tringBreak|tringByteCount|tripStyleOnPaste|trokeForm|tructuredArrayHeadQ|tyleKeyMapping|tyleNames|urfaceAppearance|yntax|ystemException|ystemGet|ystemInformationData|ystemStub|ystemTest))(?![`$[:alnum:]])", + "name": "support.function.undocumented.wolfram" + }, + { + "match": "(?:T(?:ab|abViewBox|abViewBoxOptions|ableViewBox|ableViewBoxAlignment|ableViewBoxBackground|ableViewBoxHeaders|ableViewBoxItemSize|ableViewBoxItemStyle|ableViewBoxOptions|agBoxNote|agStyle|emplateEvaluate|emplateSlotSequence|emplateUnevaluated|emplateVerbatim|emporaryVariable|ensorQ|etrahedronBox|etrahedronBoxOptions|ext3DBox|ext3DBoxOptions|extBand|extBoundingBox|extBox|extForm|extLine|extParagraph|hisLink|itleGrouping|oColor|oggle|oggleFalse|ogglerBox|ogglerBoxOptions|ooBig|ooltipBox|ooltipBoxOptions|otalHeight|raceAction|raceInternal|raceLevel|rackCellChangeTimes|raditionalNotation|raditionalOrder|ransparentColor|rapEnterKey|rapSelection|ubeBSplineCurveBox|ubeBSplineCurveBoxOptions|ubeBezierCurveBox|ubeBezierCurveBoxOptions|ubeBox|ubeBoxOptions))(?![`$[:alnum:]])", + "name": "support.function.undocumented.wolfram" + }, + { + "match": "(?:U(?:ntrackedVariables|p|seGraphicsRange|serDefinedWavelet|sing))(?![`$[:alnum:]])", + "name": "support.function.undocumented.wolfram" + }, + { + "match": "(?:V(?:2Get|alueBox|alueBoxOptions|alueForm|aluesData|ectorGlyphData|erbose|ertical|erticalForm|iewPointSelectorSettings|iewPort|irtualGroupData|isibleCell))(?![`$[:alnum:]])", + "name": "support.function.undocumented.wolfram" + }, + { + "match": "(?:W(?:aitUntil|ebPageMetaInformation|holeCellGroupOpener|indowPersistentStyles|indowSelected|indowWidth|olframAlphaDate|olframAlphaQuantity|olframAlphaResult|olframCloudSettings))(?![`$[:alnum:]])", + "name": "support.function.undocumented.wolfram" + }, + { + "match": "(?:\\$(?:ActivationGroupID|ActivationUserRegistered|AddOnsDirectory|BoxForms|CloudConnection|CloudVersionNumber|CloudWolframEngineVersionNumber|ConditionHold|DefaultMailbox|DefaultPath|FinancialDataSource|GeoEntityTypes|GeoLocationPrecision|HTMLExportRules|HTTPRequest|LaunchDirectory|LicenseProcesses|LicenseSubprocesses|LicenseType|LinkSupported|LoadedFiles|MaxLicenseProcesses|MaxLicenseSubprocesses|MinorReleaseNumber|NetworkLicense|Off|OutputForms|PatchLevelID|PermissionsGroupBase|PipeSupported|PreferencesDirectory|PrintForms|PrintLiteral|RegisteredDeviceClasses|RegisteredUserName|SecuredAuthenticationKeyTokens|SetParentLink|SoundDisplay|SuppressInputFormHeads|SystemMemory|TraceOff|TraceOn|TracePattern|TracePostAction|TracePreAction|UserAgentLanguages|UserAgentMachine|UserAgentName|UserAgentOperatingSystem|UserAgentVersion|UserName))(?![`$[:alnum:]])", + "name": "support.function.undocumented.wolfram" + }, + { + "match": "(?:A(?:ctiveClassification|ctiveClassificationObject|ctivePrediction|ctivePredictionObject|ddToSearchIndex|ggregatedEntityClass|ggregationLayer|ngleBisector|nimatedImage|nimationVideo|nomalyDetector|ppendLayer|pplication|pplyReaction|round|roundReplace|rrayReduce|sk|skAppend|skConfirm|skDisplay|skFunction|skState|skTemplateDisplay|skedQ|skedValue|ssessmentFunction|ssessmentResultObject|ssumeDeterministic|stroAngularSeparation|stroBackground|stroCenter|stroDistance|stroGraphics|stroGridLines|stroGridLinesStyle|stroPosition|stroProjection|stroRange|stroRangePadding|stroReferenceFrame|stroStyling|stroZoomLevel|tom|tomCoordinates|tomCount|tomDiagramCoordinates|tomLabelStyle|tomLabels|tomList|ttachCell|ttentionLayer|udioAnnotate|udioAnnotationLookup|udioIdentify|udioInstanceQ|udioPause|udioPlay|udioRecord|udioStop|udioStream|udioStreams|udioTrackApply|udioTrackSelection|utocomplete|utocompletionFunction|xiomaticTheory|xisLabel|xisObject|xisStyle))(?![`$[:alnum:]])", + "name": "support.function.experimental.wolfram" + }, + { + "match": "(?:B(?:asicRecurrentLayer|atchNormalizationLayer|atchSize|ayesianMaximization|ayesianMaximizationObject|ayesianMinimization|ayesianMinimizationObject|esagL|innedVariogramList|inomialPointProcess|ioSequence|ioSequenceBackTranslateList|ioSequenceComplement|ioSequenceInstances|ioSequenceModify|ioSequencePlot|ioSequenceQ|ioSequenceReverseComplement|ioSequenceTranscribe|ioSequenceTranslate|itRate|lockDiagonalMatrix|lockLowerTriangularMatrix|lockUpperTriangularMatrix|lockchainAddressData|lockchainBase|lockchainBlockData|lockchainContractValue|lockchainData|lockchainGet|lockchainKeyEncode|lockchainPut|lockchainTokenData|lockchainTransaction|lockchainTransactionData|lockchainTransactionSign|lockchainTransactionSubmit|ond|ondCount|ondLabelStyle|ondLabels|ondList|ondQ|uildCompiledComponent))(?![`$[:alnum:]])", + "name": "support.function.experimental.wolfram" + }, + { + "match": "(?:C(?:TCLossLayer|achePersistence|anvas|ast|ategoricalDistribution|atenateLayer|auchyPointProcess|hannelBase|hannelBrokerAction|hannelHistoryLength|hannelListen|hannelListener|hannelListeners|hannelObject|hannelReceiverFunction|hannelSend|hannelSubscribers|haracterNormalize|hemicalConvert|hemicalFormula|hemicalInstance|hemicalReaction|loudExpression|loudExpressions|loudRenderingMethod|ombinatorB|ombinatorC|ombinatorI|ombinatorK|ombinatorS|ombinatorW|ombinatorY|ombinedEntityClass|ompiledCodeFunction|ompiledComponent|ompiledExpressionDeclaration|ompiledLayer|ompilerCallback|ompilerEnvironment|ompilerEnvironmentAppendTo|ompilerEnvironmentObject|ompilerOptions|omplementedEntityClass|omputeUncertainty|onfirmQuiet|onformationMethod|onnectSystemModelComponents|onnectSystemModelController|onnectedMoleculeComponents|onnectedMoleculeQ|onnectionSettings|ontaining|ontentDetectorFunction|ontentFieldOptions|ontentLocationFunction|ontentObject|ontrastiveLossLayer|onvolutionLayer|reateChannel|reateCloudExpression|reateCompilerEnvironment|reateDataStructure|reateDataSystemModel|reateLicenseEntitlement|reateSearchIndex|reateSystemModel|reateTypeInstance|rossEntropyLossLayer|urrentNotebookImage|urrentScreenImage|urryApplied))(?![`$[:alnum:]])", + "name": "support.function.experimental.wolfram" + }, + { + "match": "(?:D(?:SolveChangeVariables|ataStructure|ataStructureQ|atabaseConnect|atabaseDisconnect|atabaseReference|atabinSubmit|ateInterval|eclareCompiledComponent|econvolutionLayer|ecryptFile|eleteChannel|eleteCloudExpression|eleteElements|eleteSearchIndex|erivedKey|iggleGatesPointProcess|iggleGrattonPointProcess|igitalSignature|isableFormatting|ocumentWeightingRules|otLayer|ownValuesFunction|ropoutLayer|ynamicImage))(?![`$[:alnum:]])", + "name": "support.function.experimental.wolfram" + }, + { + "match": "(?:E(?:choTiming|lementwiseLayer|mbeddedSQLEntityClass|mbeddedSQLExpression|mbeddingLayer|mptySpaceF|ncryptFile|ntityFunction|ntityStore|stimatedPointProcess|stimatedVariogramModel|valuationEnvironment|valuationPrivileges|xpirationDate|xpressionTree|xtendedEntityClass|xternalEvaluate|xternalFunction|xternalIdentifier|xternalObject|xternalSessionObject|xternalSessions|xternalStorageBase|xternalStorageDownload|xternalStorageGet|xternalStorageObject|xternalStoragePut|xternalStorageUpload|xternalValue|xtractLayer))(?![`$[:alnum:]])", + "name": "support.function.experimental.wolfram" + }, + { + "match": "(?:F(?:aceRecognize|eatureDistance|eatureExtract|eatureExtraction|eatureExtractor|eatureExtractorFunction|ileConvert|ileFormatProperties|ileNameToFormatList|ileSystemTree|ilteredEntityClass|indChannels|indEquationalProof|indExternalEvaluators|indGeometricConjectures|indImageText|indIsomers|indMoleculeSubstructure|indPointProcessParameters|indSystemModelEquilibrium|indTextualAnswer|lattenLayer|orAllType|ormControl|orwardCloudCredentials|oxHReduce|rameListVideo|romRawPointer|unctionCompile|unctionCompileExport|unctionCompileExportByteArray|unctionCompileExportLibrary|unctionCompileExportString|unctionDeclaration|unctionLayer|unctionPoles))(?![`$[:alnum:]])", + "name": "support.function.experimental.wolfram" + }, + { + "match": "(?:G(?:alleryView|atedRecurrentLayer|enerateDerivedKey|enerateDigitalSignature|enerateFileSignature|enerateSecuredAuthenticationKey|eneratedAssetFormat|eneratedAssetLocation|eoGraphValuePlot|eoOrientationData|eometricAssertion|eometricScene|eometricStep|eometricStylingRules|eometricTest|ibbsPointProcess|raphTree|ridVideo))(?![`$[:alnum:]])", + "name": "support.function.experimental.wolfram" + }, + { + "match": "(?:H(?:andlerFunctions|andlerFunctionsKeys|ardcorePointProcess|istogramPointDensity))(?![`$[:alnum:]])", + "name": "support.function.experimental.wolfram" + }, + { + "match": "(?:I(?:gnoreIsotopes|gnoreStereochemistry|mageAugmentationLayer|mageBoundingBoxes|mageCases|mageContainsQ|mageContents|mageGraphics|magePosition|magePyramid|magePyramidApply|mageStitch|mportedObject|ncludeAromaticBonds|ncludeHydrogens|ncludeRelatedTables|nertEvaluate|nertExpression|nfiniteFuture|nfinitePast|nhomogeneousPoissonPointProcess|nitialEvaluationHistory|nitializationObject|nitializationObjects|nitializationValue|nitialize|nputPorts|ntegrateChangeVariables|nterfaceSwitched|ntersectedEntityClass|nverseImagePyramid))(?![`$[:alnum:]])", + "name": "support.function.experimental.wolfram" + }, + { + "match": "(?:K(?:ernelConfiguration|ernelFunction))(?![`$[:alnum:]])", + "name": "support.function.experimental.wolfram" + }, + { + "match": "(?:L(?:earningRateMultipliers|ibraryFunctionDeclaration|icenseEntitlementObject|icenseEntitlements|icensingSettings|inearLayer|iteralType|oadCompiledComponent|ocalResponseNormalizationLayer|ongShortTermMemoryLayer|ossFunction))(?![`$[:alnum:]])", + "name": "support.function.experimental.wolfram" + }, + { + "match": "(?:M(?:IMETypeToFormatList|ailExecute|ailFolder|ailItem|ailSearch|ailServerConnect|ailServerConnection|aternPointProcess|axDisplayedChildren|axTrainingRounds|axWordGap|eanAbsoluteLossLayer|eanAround|eanPointDensity|eanSquaredLossLayer|ergingFunction|idpoint|issingValuePattern|issingValueSynthesis|olecule|oleculeAlign|oleculeContainsQ|oleculeDraw|oleculeFreeQ|oleculeGraph|oleculeMatchQ|oleculeMaximumCommonSubstructure|oleculeModify|oleculeName|oleculePattern|oleculePlot|oleculePlot3D|oleculeProperty|oleculeQ|oleculeRecognize|oleculeSubstructureCount|oleculeValue))(?![`$[:alnum:]])", + "name": "support.function.experimental.wolfram" + }, + { + "match": "(?:N(?:BodySimulation|BodySimulationData|earestNeighborG|estTree|etAppend|etArray|etArrayLayer|etBidirectionalOperator|etChain|etDecoder|etDelete|etDrop|etEncoder|etEvaluationMode|etExternalObject|etExtract|etFlatten|etFoldOperator|etGANOperator|etGraph|etInitialize|etInsert|etInsertSharedArrays|etJoin|etMapOperator|etMapThreadOperator|etMeasurements|etModel|etNestOperator|etPairEmbeddingOperator|etPort|etPortGradient|etPrepend|etRename|etReplace|etReplacePart|etStateObject|etTake|etTrain|etTrainResultsObject|etUnfold|etworkPacketCapture|etworkPacketRecording|etworkPacketTrace|eymanScottPointProcess|ominalScale|ormalizationLayer|umericArray|umericArrayQ|umericArrayType))(?![`$[:alnum:]])", + "name": "support.function.experimental.wolfram" + }, + { + "match": "(?:O(?:peratorApplied|rderingLayer|rdinalScale|utputPorts|verlayVideo))(?![`$[:alnum:]])", + "name": "support.function.experimental.wolfram" + }, + { + "match": "(?:P(?:acletSymbol|addingLayer|agination|airCorrelationG|arametricRampLayer|arentEdgeLabel|arentEdgeLabelFunction|arentEdgeLabelStyle|arentEdgeShapeFunction|arentEdgeStyle|arentEdgeStyleFunction|artLayer|artProtection|atternFilling|atternReaction|enttinenPointProcess|erpendicularBisector|ersistenceLocation|ersistenceTime|ersistentObject|ersistentObjects|ersistentSymbol|itchRecognize|laceholderLayer|laybackSettings|ointCountDistribution|ointDensity|ointDensityFunction|ointProcessEstimator|ointProcessFitTest|ointProcessParameterAssumptions|ointProcessParameterQ|ointStatisticFunction|ointValuePlot|oissonPointProcess|oolingLayer|rependLayer|roofObject|ublisherID))(?![`$[:alnum:]])", + "name": "support.function.experimental.wolfram" + }, + { + "match": "(?:Q(?:uestionGenerator|uestionInterface|uestionObject|uestionSelector))(?![`$[:alnum:]])", + "name": "support.function.experimental.wolfram" + }, + { + "match": "(?:R(?:andomArrayLayer|andomInstance|andomPointConfiguration|andomTree|eactionBalance|eactionBalancedQ|ecalibrationFunction|egisterExternalEvaluator|elationalDatabase|emoteAuthorizationCaching|emoteBatchJobAbort|emoteBatchJobObject|emoteBatchJobs|emoteBatchMapSubmit|emoteBatchSubmissionEnvironment|emoteBatchSubmit|emoteConnect|emoteConnectionObject|emoteEvaluate|emoteFile|emoteInputFiles|emoteProviderSettings|emoteRun|emoteRunProcess|emovalConditions|emoveAudioStream|emoveChannelListener|emoveChannelSubscribers|emoveVideoStream|eplicateLayer|eshapeLayer|esizeLayer|esourceFunction|esourceRegister|esourceRemove|esourceSubmit|esourceSystemBase|esourceSystemPath|esourceUpdate|esourceVersion|everseApplied|ipleyK|ipleyRassonRegion|ootTree|ulesTree))(?![`$[:alnum:]])", + "name": "support.function.experimental.wolfram" + }, + { + "match": "(?:S(?:ameTestProperties|ampledEntityClass|earchAdjustment|earchIndexObject|earchIndices|earchQueryString|earchResultObject|ecuredAuthenticationKey|ecuredAuthenticationKeys|ecurityCertificate|equenceIndicesLayer|equenceLastLayer|equenceMostLayer|equencePredict|equencePredictorFunction|equenceRestLayer|equenceReverseLayer|erviceRequest|erviceSubmit|etFileFormatProperties|etSystemModel|lideShowVideo|moothPointDensity|nippet|nippetsVideo|nubPolyhedron|oftmaxLayer|olidBoundaryLoadValue|olidDisplacementCondition|olidFixedCondition|olidMechanicsPDEComponent|olidMechanicsStrain|olidMechanicsStress|ortedEntityClass|ourceLink|patialBinnedPointData|patialBoundaryCorrection|patialEstimate|patialEstimatorFunction|patialJ|patialNoiseLevel|patialObservationRegionQ|patialPointData|patialPointSelect|patialRandomnessTest|patialTransformationLayer|patialTrendFunction|peakerMatchQ|peechCases|peechInterpreter|peechRecognize|plice|tartExternalSession|tartWebSession|tereochemistryElements|traussHardcorePointProcess|traussPointProcess|ubsetCases|ubsetCount|ubsetPosition|ubsetReplace|ubtitleTrackSelection|ummationLayer|ymmetricDifference|ynthesizeMissingValues|ystemCredential|ystemCredentialData|ystemCredentialKey|ystemCredentialKeys|ystemCredentialStoreObject|ystemInstall|ystemModel|ystemModelExamples|ystemModelLinearize|ystemModelMeasurements|ystemModelParametricSimulate|ystemModelPlot|ystemModelReliability|ystemModelSimulate|ystemModelSimulateSensitivity|ystemModelSimulationData|ystemModeler|ystemModels))(?![`$[:alnum:]])", + "name": "support.function.experimental.wolfram" + }, + { + "match": "(?:T(?:ableView|argetDevice|argetSystem|ernaryListPlot|ernaryPlotCorners|extCases|extContents|extElement|extPosition|extSearch|extSearchReport|extStructure|homasPointProcess|hreaded|hreadingLayer|ickDirection|ickLabelOrientation|ickLabelPositioning|ickLabels|ickLengths|ickPositions|oRawPointer|otalLayer|ourVideo|rainImageContentDetector|rainTextContentDetector|rainingProgressCheckpointing|rainingProgressFunction|rainingProgressMeasurements|rainingProgressReporting|rainingStoppingCriterion|rainingUpdateSchedule|ransposeLayer|ree|reeCases|reeChildren|reeCount|reeData|reeDelete|reeDepth|reeElementCoordinates|reeElementLabel|reeElementLabelFunction|reeElementLabelStyle|reeElementShape|reeElementShapeFunction|reeElementSize|reeElementSizeFunction|reeElementStyle|reeElementStyleFunction|reeExpression|reeExtract|reeFold|reeInsert|reeLayout|reeLeafCount|reeLeafQ|reeLeaves|reeLevel|reeMap|reeMapAt|reeOutline|reePosition|reeQ|reeReplacePart|reeRules|reeScan|reeSelect|reeSize|reeTraversalOrder|riangleCenter|riangleConstruct|riangleMeasurement|ypeDeclaration|ypeEvaluate|ypeOf|ypeSpecifier|yped))(?![`$[:alnum:]])", + "name": "support.function.experimental.wolfram" + }, + { + "match": "(?:U(?:RLDownloadSubmit|nconstrainedParameters|nionedEntityClass|niqueElements|nitVectorLayer|nlabeledTree|nmanageObject|nregisterExternalEvaluator|pdateSearchIndex|seEmbeddedLibrary))(?![`$[:alnum:]])", + "name": "support.function.experimental.wolfram" + }, + { + "match": "(?:V(?:alenceErrorHandling|alenceFilling|aluePreprocessingFunction|andermondeMatrix|arianceGammaPointProcess|ariogramFunction|ariogramModel|ectorAround|erifyDerivedKey|erifyDigitalSignature|erifyFileSignature|erifyInterpretation|ideo|ideoCapture|ideoCombine|ideoDelete|ideoExtractFrames|ideoFrameList|ideoFrameMap|ideoGenerator|ideoInsert|ideoIntervals|ideoJoin|ideoMap|ideoMapList|ideoMapTimeSeries|ideoPadding|ideoPause|ideoPlay|ideoQ|ideoRecord|ideoReplace|ideoScreenCapture|ideoSplit|ideoStop|ideoStream|ideoStreams|ideoTimeStretch|ideoTrackSelection|ideoTranscode|ideoTransparency|ideoTrim))(?![`$[:alnum:]])", + "name": "support.function.experimental.wolfram" + }, + { + "match": "(?:W(?:ebAudioSearch|ebColumn|ebElementObject|ebExecute|ebImage|ebImageSearch|ebItem|ebRow|ebSearch|ebSessionObject|ebSessions|ebWindowObject|ikidataData|ikidataSearch|ikipediaSearch|ithCleanup|ithLock))(?![`$[:alnum:]])", + "name": "support.function.experimental.wolfram" + }, + { + "match": "(?:Z(?:oomCenter|oomFactor))(?![`$[:alnum:]])", + "name": "support.function.experimental.wolfram" + }, + { + "match": "(?:\\$(?:AllowExternalChannelFunctions|AudioDecoders|AudioEncoders|BlockchainBase|ChannelBase|CompilerEnvironment|CookieStore|CryptographicEllipticCurveNames|CurrentWebSession|DataStructures|DefaultNetworkInterface|DefaultProxyRules|DefaultRemoteBatchSubmissionEnvironment|DefaultRemoteKernel|DefaultSystemCredentialStore|ExternalIdentifierTypes|ExternalStorageBase|GeneratedAssetLocation|IncomingMailSettings|Initialization|InitializationContexts|MaxDisplayedChildren|NetworkInterfaces|NoValue|PersistenceBase|PersistencePath|PreInitialization|PublisherID|ResourceSystemBase|ResourceSystemPath|SSHAuthentication|ServiceCreditsAvailable|SourceLink|SubtitleDecoders|SubtitleEncoders|SystemCredentialStore|TargetSystems|TestFileName|VideoDecoders|VideoEncoders|VoiceStyles))(?![`$[:alnum:]])", + "name": "support.function.experimental.wolfram" + }, + { + "match": "(?:A(?:llFalse|nyFalse))(?![`$[:alnum:]])", + "name": "invalid.bad.wolfram" + }, + { + "match": "(?:B(?:oolean))(?![`$[:alnum:]])", + "name": "invalid.bad.wolfram" + }, + { + "match": "(?:C(?:loudbase|omplexQ))(?![`$[:alnum:]])", + "name": "invalid.bad.wolfram" + }, + { + "match": "(?:D(?:ataSet))(?![`$[:alnum:]])", + "name": "invalid.bad.wolfram" + }, + { + "match": "(?:E(?:xpandFilename|xportPacket))(?![`$[:alnum:]])", + "name": "invalid.bad.wolfram" + }, + { + "match": "(?:F(?:ailed|alseQ))(?![`$[:alnum:]])", + "name": "invalid.bad.wolfram" + }, + { + "match": "(?:I(?:nterpolationFunction|nterpolationPolynomial))(?![`$[:alnum:]])", + "name": "invalid.bad.wolfram" + }, + { + "match": "(?:M(?:atch))(?![`$[:alnum:]])", + "name": "invalid.bad.wolfram" + }, + { + "match": "(?:O(?:ptionPattern|ptionsQ))(?![`$[:alnum:]])", + "name": "invalid.bad.wolfram" + }, + { + "match": "(?:R(?:ationalQ|ealQ))(?![`$[:alnum:]])", + "name": "invalid.bad.wolfram" + }, + { + "match": "(?:S(?:tringMatch|ymbolQ))(?![`$[:alnum:]])", + "name": "invalid.bad.wolfram" + }, + { + "match": "(?:U(?:nSameQ|rlExecute))(?![`$[:alnum:]])", + "name": "invalid.bad.wolfram" + }, + { + "match": "(?:\\$(?:PathNameSeparator|RegisteredUsername))(?![`$[:alnum:]])", + "name": "invalid.bad.wolfram" + }, + { + "match": "(?:E(?:cho|xit))(?![`$[:alnum:]])", + "name": "invalid.session.wolfram" + }, + { + "match": "(?:I(?:n|nString))(?![`$[:alnum:]])", + "name": "invalid.session.wolfram" + }, + { + "match": "(?:O(?:ut))(?![`$[:alnum:]])", + "name": "invalid.session.wolfram" + }, + { + "match": "(?:P(?:rint))(?![`$[:alnum:]])", + "name": "invalid.session.wolfram" + }, + { + "match": "(?:Q(?:uit))(?![`$[:alnum:]])", + "name": "invalid.session.wolfram" + }, + { + "match": "(?:\\$(?:HistoryLength|Line|Post|Pre|PrePrint|PreRead|SyntaxHandler))(?![`$[:alnum:]])", + "name": "invalid.session.wolfram" + }, + { + "match": "(?:[$[:alpha:]][$[:alnum:]]*)(?=\\s*(\\[(?!\\s*\\[)|@(?!@)))", + "name": "variable.function.wolfram" + }, + { + "match": "(?:[$[:alpha:]][$[:alnum:]]*)", + "name": "symbol.unrecognized.wolfram" + } + ] + }, + "groups": { + "patterns": [ + { + "match": "\\\\\\)", + "name": "invalid.illegal.stray-linearsyntaxparens-end.wolfram" + }, + { + "match": "\\)", + "name": "invalid.illegal.stray-parens-end.wolfram" + }, + { + "match": "\\[\\s+\\[", + "name": "invalid.whitespace.Part.wolfram" + }, + { + "match": "\\]\\s+\\]", + "name": "invalid.whitespace.Part.wolfram" + }, + { + "match": "\\]\\]", + "name": "invalid.illegal.stray-parts-end.wolfram" + }, + { + "match": "\\]", + "name": "invalid.illegal.stray-brackets-end.wolfram" + }, + { + "match": "\\}", + "name": "invalid.illegal.stray-braces-end.wolfram" + }, + { + "match": "\\|>", + "name": "invalid.illegal.stray-associations-end.wolfram" + }, + { + "include": "#linearsyntaxparen-group" + }, + { + "include": "#paren-group" + }, + { + "include": "#part-group" + }, + { + "include": "#bracket-group" + }, + { + "include": "#brace-group" + }, + { + "include": "#association-group" + } + ] + }, + "linearsyntaxparen-group": { + "name": "meta.linearsyntaxparens.wolfram", + "begin": "\\\\\\(", + "beginCaptures": { + "0": { + "name": "punctuation.section.linearsyntaxparens.begin.wolfram" + } + }, + "end": "\\\\\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.linearsyntaxparens.end.wolfram" + } + }, + "patterns": [ + { + "include": "#expressions" + } + ] + }, + "paren-group": { + "name": "meta.parens.wolfram", + "begin": "\\(", + "beginCaptures": { + "0": { + "name": "punctuation.section.parens.begin.wolfram" + } + }, + "end": "\\)", + "endCaptures": { + "0": { + "name": "punctuation.section.parens.end.wolfram" + } + }, + "patterns": [ + { + "include": "#expressions" + } + ] + }, + "part-group": { + "name": "meta.parts.wolfram", + "begin": "\\[\\[", + "beginCaptures": { + "0": { + "name": "punctuation.section.parts.begin.wolfram" + } + }, + "end": "\\]\\]", + "endCaptures": { + "0": { + "name": "punctuation.section.parts.end.wolfram" + } + }, + "patterns": [ + { + "include": "#expressions" + } + ] + }, + "bracket-group": { + "name": "meta.brackets.wolfram", + "begin": "::\\[|\\[", + "beginCaptures": { + "0": { + "name": "punctuation.section.brackets.begin.wolfram" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.section.brackets.end.wolfram" + } + }, + "patterns": [ + { + "include": "#expressions" + } + ] + }, + "brace-group": { + "name": "meta.braces.wolfram", + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.section.braces.begin.wolfram" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.section.braces.end.wolfram" + } + }, + "patterns": [ + { + "include": "#expressions" + } + ] + }, + "association-group": { + "name": "meta.associations.wolfram", + "begin": "<\\|", + "beginCaptures": { + "0": { + "name": "punctuation.section.associations.begin.wolfram" + } + }, + "end": "\\|>", + "endCaptures": { + "0": { + "name": "punctuation.section.associations.end.wolfram" + } + }, + "patterns": [ + { + "include": "#expressions" + } + ] + }, + "pattern-operators": { + "patterns": [ + { + "match": "___", + "name": "keyword.operator.BlankNullSequence.wolfram" + }, + { + "match": "__", + "name": "keyword.operator.BlankSequence.wolfram" + }, + { + "match": "_\\.", + "name": "keyword.operator.Optional.wolfram" + }, + { + "match": "_", + "name": "keyword.operator.Blank.wolfram" + } + ] + }, + "out": { + "patterns": [ + { + "match": "%\\d+", + "name": "keyword.other.Out.wolfram" + }, + { + "match": "%+", + "name": "keyword.other.Out.wolfram" + } + ] + }, + "slot": { + "patterns": [ + { + "match": "#[[:alpha:]][[:alnum:]]*", + "name": "keyword.other.Slot.wolfram" + }, + { + "match": "##\\d*", + "name": "keyword.other.SlotSequence.wolfram" + }, + { + "match": "#\\d*", + "name": "keyword.other.Slot.wolfram" + } + ] + } + } +} diff --git a/docs/shiki/languages/xml.tmLanguage.json b/docs/shiki/languages/xml.tmLanguage.json new file mode 100644 index 00000000..4d55a616 --- /dev/null +++ b/docs/shiki/languages/xml.tmLanguage.json @@ -0,0 +1,387 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/atom/language-xml/blob/master/grammars/xml.cson", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/atom/language-xml/commit/7bc75dfe779ad5b35d9bf4013d9181864358cb49", + "name": "xml", + "scopeName": "text.xml", + "patterns": [ + { + "begin": "(<\\?)\\s*([-_a-zA-Z0-9]+)", + "captures": { + "1": { + "name": "punctuation.definition.tag.xml" + }, + "2": { + "name": "entity.name.tag.xml" + } + }, + "end": "(\\?>)", + "name": "meta.tag.preprocessor.xml", + "patterns": [ + { + "match": " ([a-zA-Z-]+)", + "name": "entity.other.attribute-name.xml" + }, + { + "include": "#doublequotedString" + }, + { + "include": "#singlequotedString" + } + ] + }, + { + "begin": "(<!)(DOCTYPE)\\s+([:a-zA-Z_][:a-zA-Z0-9_.-]*)", + "captures": { + "1": { + "name": "punctuation.definition.tag.xml" + }, + "2": { + "name": "keyword.other.doctype.xml" + }, + "3": { + "name": "variable.language.documentroot.xml" + } + }, + "end": "\\s*(>)", + "name": "meta.tag.sgml.doctype.xml", + "patterns": [ + { + "include": "#internalSubset" + } + ] + }, + { + "include": "#comments" + }, + { + "begin": "(<)((?:([-_a-zA-Z0-9]+)(:))?([-_a-zA-Z0-9:]+))(?=(\\s[^>]*)?></\\2>)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.tag.xml" + }, + "2": { + "name": "entity.name.tag.xml" + }, + "3": { + "name": "entity.name.tag.namespace.xml" + }, + "4": { + "name": "punctuation.separator.namespace.xml" + }, + "5": { + "name": "entity.name.tag.localname.xml" + } + }, + "end": "(>)(</)((?:([-_a-zA-Z0-9]+)(:))?([-_a-zA-Z0-9:]+))(>)", + "endCaptures": { + "1": { + "name": "punctuation.definition.tag.xml" + }, + "2": { + "name": "punctuation.definition.tag.xml" + }, + "3": { + "name": "entity.name.tag.xml" + }, + "4": { + "name": "entity.name.tag.namespace.xml" + }, + "5": { + "name": "punctuation.separator.namespace.xml" + }, + "6": { + "name": "entity.name.tag.localname.xml" + }, + "7": { + "name": "punctuation.definition.tag.xml" + } + }, + "name": "meta.tag.no-content.xml", + "patterns": [ + { + "include": "#tagStuff" + } + ] + }, + { + "begin": "(</?)(?:([-\\w\\.]+)((:)))?([-\\w\\.:]+)", + "captures": { + "1": { + "name": "punctuation.definition.tag.xml" + }, + "2": { + "name": "entity.name.tag.namespace.xml" + }, + "3": { + "name": "entity.name.tag.xml" + }, + "4": { + "name": "punctuation.separator.namespace.xml" + }, + "5": { + "name": "entity.name.tag.localname.xml" + } + }, + "end": "(/?>)", + "name": "meta.tag.xml", + "patterns": [ + { + "include": "#tagStuff" + } + ] + }, + { + "include": "#entity" + }, + { + "include": "#bare-ampersand" + }, + { + "begin": "<%@", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.xml" + } + }, + "end": "%>", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.xml" + } + }, + "name": "source.java-props.embedded.xml", + "patterns": [ + { + "match": "page|include|taglib", + "name": "keyword.other.page-props.xml" + } + ] + }, + { + "begin": "<%[!=]?(?!--)", + "beginCaptures": { + "0": { + "name": "punctuation.section.embedded.begin.xml" + } + }, + "end": "(?!--)%>", + "endCaptures": { + "0": { + "name": "punctuation.section.embedded.end.xml" + } + }, + "name": "source.java.embedded.xml", + "patterns": [ + { + "include": "source.java" + } + ] + }, + { + "begin": "<!\\[CDATA\\[", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.xml" + } + }, + "end": "]]>", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.xml" + } + }, + "name": "string.unquoted.cdata.xml" + } + ], + "repository": { + "EntityDecl": { + "begin": "(<!)(ENTITY)\\s+(%\\s+)?([:a-zA-Z_][:a-zA-Z0-9_.-]*)(\\s+(?:SYSTEM|PUBLIC)\\s+)?", + "captures": { + "1": { + "name": "punctuation.definition.tag.xml" + }, + "2": { + "name": "keyword.other.entity.xml" + }, + "3": { + "name": "punctuation.definition.entity.xml" + }, + "4": { + "name": "variable.language.entity.xml" + }, + "5": { + "name": "keyword.other.entitytype.xml" + } + }, + "end": "(>)", + "patterns": [ + { + "include": "#doublequotedString" + }, + { + "include": "#singlequotedString" + } + ] + }, + "bare-ampersand": { + "match": "&", + "name": "invalid.illegal.bad-ampersand.xml" + }, + "doublequotedString": { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.xml" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.xml" + } + }, + "name": "string.quoted.double.xml", + "patterns": [ + { + "include": "#entity" + }, + { + "include": "#bare-ampersand" + } + ] + }, + "entity": { + "captures": { + "1": { + "name": "punctuation.definition.constant.xml" + }, + "3": { + "name": "punctuation.definition.constant.xml" + } + }, + "match": "(&)([:a-zA-Z_][:a-zA-Z0-9_.-]*|#[0-9]+|#x[0-9a-fA-F]+)(;)", + "name": "constant.character.entity.xml" + }, + "internalSubset": { + "begin": "(\\[)", + "captures": { + "1": { + "name": "punctuation.definition.constant.xml" + } + }, + "end": "(\\])", + "name": "meta.internalsubset.xml", + "patterns": [ + { + "include": "#EntityDecl" + }, + { + "include": "#parameterEntity" + }, + { + "include": "#comments" + } + ] + }, + "parameterEntity": { + "captures": { + "1": { + "name": "punctuation.definition.constant.xml" + }, + "3": { + "name": "punctuation.definition.constant.xml" + } + }, + "match": "(%)([:a-zA-Z_][:a-zA-Z0-9_.-]*)(;)", + "name": "constant.character.parameter-entity.xml" + }, + "singlequotedString": { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.xml" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.xml" + } + }, + "name": "string.quoted.single.xml", + "patterns": [ + { + "include": "#entity" + }, + { + "include": "#bare-ampersand" + } + ] + }, + "tagStuff": { + "patterns": [ + { + "captures": { + "1": { + "name": "entity.other.attribute-name.namespace.xml" + }, + "2": { + "name": "entity.other.attribute-name.xml" + }, + "3": { + "name": "punctuation.separator.namespace.xml" + }, + "4": { + "name": "entity.other.attribute-name.localname.xml" + } + }, + "match": "(?:^|\\s+)(?:([-\\w.]+)((:)))?([-\\w.:]+)\\s*=" + }, + { + "include": "#doublequotedString" + }, + { + "include": "#singlequotedString" + } + ] + }, + "comments": { + "patterns": [ + { + "begin": "<%--", + "captures": { + "0": { + "name": "punctuation.definition.comment.xml" + }, + "end": "--%>", + "name": "comment.block.xml" + } + }, + { + "begin": "<!--", + "captures": { + "0": { + "name": "punctuation.definition.comment.xml" + } + }, + "end": "-->", + "name": "comment.block.xml", + "patterns": [ + { + "begin": "--(?!>)", + "captures": { + "0": { + "name": "invalid.illegal.bad-comments-or-CDATA.xml" + } + } + } + ] + } + ] + } + } +} diff --git a/docs/shiki/languages/xsl.tmLanguage.json b/docs/shiki/languages/xsl.tmLanguage.json new file mode 100644 index 00000000..9b81a5fb --- /dev/null +++ b/docs/shiki/languages/xsl.tmLanguage.json @@ -0,0 +1,94 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/atom/language-xml/blob/master/grammars/xsl.cson", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/atom/language-xml/commit/507de2ee7daca60cf02e9e21fbeb92bbae73e280", + "name": "xsl", + "scopeName": "text.xml.xsl", + "patterns": [ + { + "begin": "(<)(xsl)((:))(template)", + "captures": { + "1": { + "name": "punctuation.definition.tag.xml" + }, + "2": { + "name": "entity.name.tag.namespace.xml" + }, + "3": { + "name": "entity.name.tag.xml" + }, + "4": { + "name": "punctuation.separator.namespace.xml" + }, + "5": { + "name": "entity.name.tag.localname.xml" + } + }, + "end": "(>)", + "name": "meta.tag.xml.template", + "patterns": [ + { + "captures": { + "1": { + "name": "entity.other.attribute-name.namespace.xml" + }, + "2": { + "name": "entity.other.attribute-name.xml" + }, + "3": { + "name": "punctuation.separator.namespace.xml" + }, + "4": { + "name": "entity.other.attribute-name.localname.xml" + } + }, + "match": " (?:([-_a-zA-Z0-9]+)((:)))?([a-zA-Z-]+)" + }, + { + "include": "#doublequotedString" + }, + { + "include": "#singlequotedString" + } + ] + }, + { + "include": "text.xml" + } + ], + "repository": { + "doublequotedString": { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.xml" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.xml" + } + }, + "name": "string.quoted.double.xml" + }, + "singlequotedString": { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.xml" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.xml" + } + }, + "name": "string.quoted.single.xml" + } + } +} diff --git a/docs/shiki/languages/yaml.tmLanguage.json b/docs/shiki/languages/yaml.tmLanguage.json new file mode 100644 index 00000000..add1ba24 --- /dev/null +++ b/docs/shiki/languages/yaml.tmLanguage.json @@ -0,0 +1,621 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/textmate/yaml.tmbundle/blob/master/Syntaxes/YAML.tmLanguage", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/textmate/yaml.tmbundle/commit/e54ceae3b719506dba7e481a77cea4a8b576ae46", + "name": "yaml", + "scopeName": "source.yaml", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#property" + }, + { + "include": "#directive" + }, + { + "match": "^---", + "name": "entity.other.document.begin.yaml" + }, + { + "match": "^\\.{3}", + "name": "entity.other.document.end.yaml" + }, + { + "include": "#node" + } + ], + "repository": { + "block-collection": { + "patterns": [ + { + "include": "#block-sequence" + }, + { + "include": "#block-mapping" + } + ] + }, + "block-mapping": { + "patterns": [ + { + "include": "#block-pair" + } + ] + }, + "block-node": { + "patterns": [ + { + "include": "#prototype" + }, + { + "include": "#block-scalar" + }, + { + "include": "#block-collection" + }, + { + "include": "#flow-scalar-plain-out" + }, + { + "include": "#flow-node" + } + ] + }, + "block-pair": { + "patterns": [ + { + "begin": "\\?", + "beginCaptures": { + "1": { + "name": "punctuation.definition.key-value.begin.yaml" + } + }, + "end": "(?=\\?)|^ *(:)|(:)", + "endCaptures": { + "1": { + "name": "punctuation.separator.key-value.mapping.yaml" + }, + "2": { + "name": "invalid.illegal.expected-newline.yaml" + } + }, + "name": "meta.block-mapping.yaml", + "patterns": [ + { + "include": "#block-node" + } + ] + }, + { + "begin": "(?x)\n (?=\n (?x:\n [^\\s[-?:,\\[\\]{}#&*!|>'\"%@`]]\n | [?:-] \\S\n )\n (\n [^\\s:]\n | : \\S\n | \\s+ (?![#\\s])\n )*\n \\s*\n :\n\t\t\t\t\t\t\t(\\s|$)\n )\n ", + "end": "(?x)\n (?=\n \\s* $\n | \\s+ \\#\n | \\s* : (\\s|$)\n )\n ", + "patterns": [ + { + "include": "#flow-scalar-plain-out-implicit-type" + }, + { + "begin": "(?x)\n [^\\s[-?:,\\[\\]{}#&*!|>'\"%@`]]\n | [?:-] \\S\n ", + "beginCaptures": { + "0": { + "name": "entity.name.tag.yaml" + } + }, + "contentName": "entity.name.tag.yaml", + "end": "(?x)\n (?=\n \\s* $\n | \\s+ \\#\n | \\s* : (\\s|$)\n )\n ", + "name": "string.unquoted.plain.out.yaml" + } + ] + }, + { + "match": ":(?=\\s|$)", + "name": "punctuation.separator.key-value.mapping.yaml" + } + ] + }, + "block-scalar": { + "begin": "(?:(\\|)|(>))([1-9])?([-+])?(.*\\n?)", + "beginCaptures": { + "1": { + "name": "keyword.control.flow.block-scalar.literal.yaml" + }, + "2": { + "name": "keyword.control.flow.block-scalar.folded.yaml" + }, + "3": { + "name": "constant.numeric.indentation-indicator.yaml" + }, + "4": { + "name": "storage.modifier.chomping-indicator.yaml" + }, + "5": { + "patterns": [ + { + "include": "#comment" + }, + { + "match": ".+", + "name": "invalid.illegal.expected-comment-or-newline.yaml" + } + ] + } + }, + "end": "^(?=\\S)|(?!\\G)", + "patterns": [ + { + "begin": "^([ ]+)(?! )", + "end": "^(?!\\1|\\s*$)", + "name": "string.unquoted.block.yaml" + } + ] + }, + "block-sequence": { + "match": "(-)(?!\\S)", + "name": "punctuation.definition.block.sequence.item.yaml" + }, + "comment": { + "begin": "(?:(^[ \\t]*)|[ \\t]+)(?=#\\p{Print}*$)", + "beginCaptures": { + "1": { + "name": "punctuation.whitespace.comment.leading.yaml" + } + }, + "end": "(?!\\G)", + "patterns": [ + { + "begin": "#", + "beginCaptures": { + "0": { + "name": "punctuation.definition.comment.yaml" + } + }, + "end": "\\n", + "name": "comment.line.number-sign.yaml" + } + ] + }, + "directive": { + "begin": "^%", + "beginCaptures": { + "0": { + "name": "punctuation.definition.directive.begin.yaml" + } + }, + "end": "(?=$|[ \\t]+($|#))", + "name": "meta.directive.yaml", + "patterns": [ + { + "captures": { + "1": { + "name": "keyword.other.directive.yaml.yaml" + }, + "2": { + "name": "constant.numeric.yaml-version.yaml" + } + }, + "match": "\\G(YAML)[ \\t]+(\\d+\\.\\d+)" + }, + { + "captures": { + "1": { + "name": "keyword.other.directive.tag.yaml" + }, + "2": { + "name": "storage.type.tag-handle.yaml" + }, + "3": { + "name": "support.type.tag-prefix.yaml" + } + }, + "match": "(?x)\n \\G\n (TAG)\n (?:[ \\t]+\n ((?:!(?:[0-9A-Za-z\\-]*!)?))\n (?:[ \\t]+ (\n ! (?x: %[0-9A-Fa-f]{2} | [0-9A-Za-z\\-#;/?:@&=+$,_.!~*'()\\[\\]] )*\n | (?![,!\\[\\]{}]) (?x: %[0-9A-Fa-f]{2} | [0-9A-Za-z\\-#;/?:@&=+$,_.!~*'()\\[\\]] )+\n )\n )?\n )?\n " + }, + { + "captures": { + "1": { + "name": "support.other.directive.reserved.yaml" + }, + "2": { + "name": "string.unquoted.directive-name.yaml" + }, + "3": { + "name": "string.unquoted.directive-parameter.yaml" + } + }, + "match": "(?x) \\G (\\w+) (?:[ \\t]+ (\\w+) (?:[ \\t]+ (\\w+))? )?" + }, + { + "match": "\\S+", + "name": "invalid.illegal.unrecognized.yaml" + } + ] + }, + "flow-alias": { + "captures": { + "1": { + "name": "keyword.control.flow.alias.yaml" + }, + "2": { + "name": "punctuation.definition.alias.yaml" + }, + "3": { + "name": "variable.other.alias.yaml" + }, + "4": { + "name": "invalid.illegal.character.anchor.yaml" + } + }, + "match": "((\\*))([^\\s\\[\\]/{/},]+)([^\\s\\]},]\\S*)?" + }, + "flow-collection": { + "patterns": [ + { + "include": "#flow-sequence" + }, + { + "include": "#flow-mapping" + } + ] + }, + "flow-mapping": { + "begin": "\\{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.mapping.begin.yaml" + } + }, + "end": "\\}", + "endCaptures": { + "0": { + "name": "punctuation.definition.mapping.end.yaml" + } + }, + "name": "meta.flow-mapping.yaml", + "patterns": [ + { + "include": "#prototype" + }, + { + "match": ",", + "name": "punctuation.separator.mapping.yaml" + }, + { + "include": "#flow-pair" + } + ] + }, + "flow-node": { + "patterns": [ + { + "include": "#prototype" + }, + { + "include": "#flow-alias" + }, + { + "include": "#flow-collection" + }, + { + "include": "#flow-scalar" + } + ] + }, + "flow-pair": { + "patterns": [ + { + "begin": "\\?", + "beginCaptures": { + "0": { + "name": "punctuation.definition.key-value.begin.yaml" + } + }, + "end": "(?=[},\\]])", + "name": "meta.flow-pair.explicit.yaml", + "patterns": [ + { + "include": "#prototype" + }, + { + "include": "#flow-pair" + }, + { + "include": "#flow-node" + }, + { + "begin": ":(?=\\s|$|[\\[\\]{},])", + "beginCaptures": { + "0": { + "name": "punctuation.separator.key-value.mapping.yaml" + } + }, + "end": "(?=[},\\]])", + "patterns": [ + { + "include": "#flow-value" + } + ] + } + ] + }, + { + "begin": "(?x)\n (?=\n (?:\n [^\\s[-?:,\\[\\]{}#&*!|>'\"%@`]]\n | [?:-] [^\\s[\\[\\]{},]]\n )\n (\n [^\\s:[\\[\\]{},]]\n | : [^\\s[\\[\\]{},]]\n | \\s+ (?![#\\s])\n )*\n \\s*\n :\n\t\t\t\t\t\t\t(\\s|$)\n )\n ", + "end": "(?x)\n (?=\n \\s* $\n | \\s+ \\#\n | \\s* : (\\s|$)\n | \\s* : [\\[\\]{},]\n | \\s* [\\[\\]{},]\n )\n ", + "name": "meta.flow-pair.key.yaml", + "patterns": [ + { + "include": "#flow-scalar-plain-in-implicit-type" + }, + { + "begin": "(?x)\n [^\\s[-?:,\\[\\]{}#&*!|>'\"%@`]]\n | [?:-] [^\\s[\\[\\]{},]]\n ", + "beginCaptures": { + "0": { + "name": "entity.name.tag.yaml" + } + }, + "contentName": "entity.name.tag.yaml", + "end": "(?x)\n (?=\n \\s* $\n | \\s+ \\#\n | \\s* : (\\s|$)\n | \\s* : [\\[\\]{},]\n | \\s* [\\[\\]{},]\n )\n ", + "name": "string.unquoted.plain.in.yaml" + } + ] + }, + { + "include": "#flow-node" + }, + { + "begin": ":(?=\\s|$|[\\[\\]{},])", + "captures": { + "0": { + "name": "punctuation.separator.key-value.mapping.yaml" + } + }, + "end": "(?=[},\\]])", + "name": "meta.flow-pair.yaml", + "patterns": [ + { + "include": "#flow-value" + } + ] + } + ] + }, + "flow-scalar": { + "patterns": [ + { + "include": "#flow-scalar-double-quoted" + }, + { + "include": "#flow-scalar-single-quoted" + }, + { + "include": "#flow-scalar-plain-in" + } + ] + }, + "flow-scalar-double-quoted": { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.yaml" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.yaml" + } + }, + "name": "string.quoted.double.yaml", + "patterns": [ + { + "match": "\\\\([0abtnvfre \"/\\\\N_Lp]|x\\d\\d|u\\d{4}|U\\d{8})", + "name": "constant.character.escape.yaml" + }, + { + "match": "\\\\\\n", + "name": "constant.character.escape.double-quoted.newline.yaml" + } + ] + }, + "flow-scalar-plain-in": { + "patterns": [ + { + "include": "#flow-scalar-plain-in-implicit-type" + }, + { + "begin": "(?x)\n [^\\s[-?:,\\[\\]{}#&*!|>'\"%@`]]\n | [?:-] [^\\s[\\[\\]{},]]\n ", + "end": "(?x)\n (?=\n \\s* $\n | \\s+ \\#\n | \\s* : (\\s|$)\n | \\s* : [\\[\\]{},]\n | \\s* [\\[\\]{},]\n )\n ", + "name": "string.unquoted.plain.in.yaml" + } + ] + }, + "flow-scalar-plain-in-implicit-type": { + "patterns": [ + { + "captures": { + "1": { + "name": "constant.language.null.yaml" + }, + "2": { + "name": "constant.language.boolean.yaml" + }, + "3": { + "name": "constant.numeric.integer.yaml" + }, + "4": { + "name": "constant.numeric.float.yaml" + }, + "5": { + "name": "constant.other.timestamp.yaml" + }, + "6": { + "name": "constant.language.value.yaml" + }, + "7": { + "name": "constant.language.merge.yaml" + } + }, + "match": "(?x)\n (?x:\n (null|Null|NULL|~)\n | (y|Y|yes|Yes|YES|n|N|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFF)\n | (\n (?:\n [-+]? 0b [0-1_]+ # (base 2)\n | [-+]? 0 [0-7_]+ # (base 8)\n | [-+]? (?: 0|[1-9][0-9_]*) # (base 10)\n | [-+]? 0x [0-9a-fA-F_]+ # (base 16)\n | [-+]? [1-9] [0-9_]* (?: :[0-5]?[0-9])+ # (base 60)\n )\n )\n | (\n (?x:\n [-+]? (?: [0-9] [0-9_]*)? \\. [0-9.]* (?: [eE] [-+] [0-9]+)? # (base 10)\n | [-+]? [0-9] [0-9_]* (?: :[0-5]?[0-9])+ \\. [0-9_]* # (base 60)\n | [-+]? \\. (?: inf|Inf|INF) # (infinity)\n | \\. (?: nan|NaN|NAN) # (not a number)\n )\n )\n | (\n (?x:\n \\d{4} - \\d{2} - \\d{2} # (y-m-d)\n | \\d{4} # (year)\n - \\d{1,2} # (month)\n - \\d{1,2} # (day)\n (?: [Tt] | [ \\t]+) \\d{1,2} # (hour)\n : \\d{2} # (minute)\n : \\d{2} # (second)\n (?: \\.\\d*)? # (fraction)\n (?:\n (?:[ \\t]*) Z\n | [-+] \\d{1,2} (?: :\\d{1,2})?\n )? # (time zone)\n )\n )\n | (=)\n | (<<)\n )\n (?:\n (?=\n \\s* $\n | \\s+ \\#\n | \\s* : (\\s|$)\n | \\s* : [\\[\\]{},]\n | \\s* [\\[\\]{},]\n )\n )\n " + } + ] + }, + "flow-scalar-plain-out": { + "patterns": [ + { + "include": "#flow-scalar-plain-out-implicit-type" + }, + { + "begin": "(?x)\n [^\\s[-?:,\\[\\]{}#&*!|>'\"%@`]]\n | [?:-] \\S\n ", + "end": "(?x)\n (?=\n \\s* $\n | \\s+ \\#\n | \\s* : (\\s|$)\n )\n ", + "name": "string.unquoted.plain.out.yaml" + } + ] + }, + "flow-scalar-plain-out-implicit-type": { + "patterns": [ + { + "captures": { + "1": { + "name": "constant.language.null.yaml" + }, + "2": { + "name": "constant.language.boolean.yaml" + }, + "3": { + "name": "constant.numeric.integer.yaml" + }, + "4": { + "name": "constant.numeric.float.yaml" + }, + "5": { + "name": "constant.other.timestamp.yaml" + }, + "6": { + "name": "constant.language.value.yaml" + }, + "7": { + "name": "constant.language.merge.yaml" + } + }, + "match": "(?x)\n (?x:\n (null|Null|NULL|~)\n | (y|Y|yes|Yes|YES|n|N|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFF)\n | (\n (?:\n [-+]? 0b [0-1_]+ # (base 2)\n | [-+]? 0 [0-7_]+ # (base 8)\n | [-+]? (?: 0|[1-9][0-9_]*) # (base 10)\n | [-+]? 0x [0-9a-fA-F_]+ # (base 16)\n | [-+]? [1-9] [0-9_]* (?: :[0-5]?[0-9])+ # (base 60)\n )\n )\n | (\n (?x:\n [-+]? (?: [0-9] [0-9_]*)? \\. [0-9.]* (?: [eE] [-+] [0-9]+)? # (base 10)\n | [-+]? [0-9] [0-9_]* (?: :[0-5]?[0-9])+ \\. [0-9_]* # (base 60)\n | [-+]? \\. (?: inf|Inf|INF) # (infinity)\n | \\. (?: nan|NaN|NAN) # (not a number)\n )\n )\n | (\n (?x:\n \\d{4} - \\d{2} - \\d{2} # (y-m-d)\n | \\d{4} # (year)\n - \\d{1,2} # (month)\n - \\d{1,2} # (day)\n (?: [Tt] | [ \\t]+) \\d{1,2} # (hour)\n : \\d{2} # (minute)\n : \\d{2} # (second)\n (?: \\.\\d*)? # (fraction)\n (?:\n (?:[ \\t]*) Z\n | [-+] \\d{1,2} (?: :\\d{1,2})?\n )? # (time zone)\n )\n )\n | (=)\n | (<<)\n )\n (?x:\n (?=\n \\s* $\n | \\s+ \\#\n | \\s* : (\\s|$)\n )\n )\n " + } + ] + }, + "flow-scalar-single-quoted": { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.yaml" + } + }, + "end": "'(?!')", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.yaml" + } + }, + "name": "string.quoted.single.yaml", + "patterns": [ + { + "match": "''", + "name": "constant.character.escape.single-quoted.yaml" + } + ] + }, + "flow-sequence": { + "begin": "\\[", + "beginCaptures": { + "0": { + "name": "punctuation.definition.sequence.begin.yaml" + } + }, + "end": "\\]", + "endCaptures": { + "0": { + "name": "punctuation.definition.sequence.end.yaml" + } + }, + "name": "meta.flow-sequence.yaml", + "patterns": [ + { + "include": "#prototype" + }, + { + "match": ",", + "name": "punctuation.separator.sequence.yaml" + }, + { + "include": "#flow-pair" + }, + { + "include": "#flow-node" + } + ] + }, + "flow-value": { + "patterns": [ + { + "begin": "\\G(?![},\\]])", + "end": "(?=[},\\]])", + "name": "meta.flow-pair.value.yaml", + "patterns": [ + { + "include": "#flow-node" + } + ] + } + ] + }, + "node": { + "patterns": [ + { + "include": "#block-node" + } + ] + }, + "property": { + "begin": "(?=!|&)", + "end": "(?!\\G)", + "name": "meta.property.yaml", + "patterns": [ + { + "captures": { + "1": { + "name": "keyword.control.property.anchor.yaml" + }, + "2": { + "name": "punctuation.definition.anchor.yaml" + }, + "3": { + "name": "entity.name.type.anchor.yaml" + }, + "4": { + "name": "invalid.illegal.character.anchor.yaml" + } + }, + "match": "\\G((&))([^\\s\\[\\]/{/},]+)(\\S+)?" + }, + { + "match": "(?x)\n \\G\n (?:\n ! < (?: %[0-9A-Fa-f]{2} | [0-9A-Za-z\\-#;/?:@&=+$,_.!~*'()\\[\\]] )+ >\n | (?:!(?:[0-9A-Za-z\\-]*!)?) (?: %[0-9A-Fa-f]{2} | [0-9A-Za-z\\-#;/?:@&=+$_.~*'()] )+\n | !\n )\n (?=\\ |\\t|$)\n ", + "name": "storage.type.tag-handle.yaml" + }, + { + "match": "\\S+", + "name": "invalid.illegal.tag-handle.yaml" + } + ] + }, + "prototype": { + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#property" + } + ] + } + } +} diff --git a/docs/shiki/languages/zenscript.tmLanguage.json b/docs/shiki/languages/zenscript.tmLanguage.json new file mode 100644 index 00000000..e779df74 --- /dev/null +++ b/docs/shiki/languages/zenscript.tmLanguage.json @@ -0,0 +1,254 @@ +{ + "fileTypes": ["zs"], + "name": "zenscript", + "patterns": [ + { + "comment": "numbers", + "name": "constant.numeric.zenscript", + "match": "\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)([LlFfUuDd]|UL|ul)?\\b" + }, + { + "comment": "prefixedNumbers", + "name": "constant.numeric.zenscript", + "match": "\\b\\-?(0b|0x|0o|0B|0X|0O)(0|[1-9a-fA-F][0-9a-fA-F_]*)[a-zA-Z_]*\\b" + }, + { + "include": "#code" + }, + { + "comment": "arrays", + "name": "storage.type.object.array.zenscript", + "match": "\\b((?:[a-z]\\w*\\.)*[A-Z]+\\w*)(?=\\[)" + } + ], + "repository": { + "code": { + "patterns": [ + { + "include": "#class" + }, + { + "include": "#functions" + }, + { + "include": "#dots" + }, + { + "include": "#quotes" + }, + { + "include": "#brackets" + }, + { + "include": "#comments" + }, + { + "include": "#var" + }, + { + "include": "#keywords" + }, + { + "include": "#constants" + }, + { + "include": "#operators" + } + ] + }, + "class": { + "comment": "class", + "name": "meta.class.zenscript", + "match": "(zenClass)\\s+(\\w+)", + "captures": { + "1": { + "name": "storage.type.zenscript" + }, + "2": { + "name": "entity.name.type.class.zenscript" + } + } + }, + "functions": { + "comment": "functions", + "name": "meta.function.zenscript", + "match": "function\\s+([A-Za-z_$][\\w$]*)\\s*(?=\\()", + "captures": { + "0": { + "name": "storage.type.function.zenscript" + }, + "1": { + "name": "entity.name.function.zenscript" + } + } + }, + "dots": { + "comment": "dots", + "name": "plain.text.zenscript", + "match": "\\b(\\w+)(\\.)(\\w+)((\\.)(\\w+))*", + "captures": { + "1": { + "name": "storage.type.zenscript" + }, + "2": { + "name": "keyword.control.zenscript" + }, + "5": { + "name": "keyword.control.zenscript" + } + } + }, + "quotes": { + "patterns": [ + { + "begin": "\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.zenscript" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.zenscript" + } + }, + "name": "string.quoted.double.zenscript", + "patterns": [ + { + "match": "\\\\.", + "name": "constant.character.escape.zenscript" + } + ] + }, + { + "begin": "'", + "beginCaptures": { + "0": { + "name": "punctuation.definition.string.begin.zenscript" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "punctuation.definition.string.end.zenscript" + } + }, + "name": "string.quoted.single.zenscript", + "patterns": [ + { + "match": "\\\\.", + "name": "constant.character.escape.zenscript" + } + ] + } + ] + }, + "brackets": { + "patterns": [ + { + "comment": "items and blocks", + "name": "keyword.other.zenscript", + "match": "(<)\\b(.*?)(:(.*?(:(\\*|\\d+)?)?)?)(>)", + "captures": { + "1": { + "name": "keyword.control.zenscript" + }, + "2": { + "name": "keyword.other.zenscript" + }, + "3": { + "name": "keyword.control.zenscript" + }, + "4": { + "name": "variable.other.zenscript" + }, + "5": { + "name": "keyword.control.zenscript" + }, + "6": { + "name": "constant.numeric.zenscript" + }, + "7": { + "name": "keyword.control.zenscript" + } + } + } + ] + }, + "comments": { + "patterns": [ + { + "comment": "inline comments", + "name": "comment.line.double=slash", + "match": "//[^\n]*" + }, + { + "comment": "block comments", + "name": "comment.block", + "begin": "\\/\\*", + "beginCaptures": { + "0": { + "name": "comment.block" + } + }, + "end": "\\*\\/", + "endCaptures": { + "0": { + "name": "comment.block" + } + } + } + ] + }, + "var": { + "comment": "var", + "match": "\\b(val|var)\\b", + "name": "storage.type" + }, + "keywords": { + "patterns": [ + { + "comment": "statement keywords", + "name": "keyword.control.zenscript", + "match": "\\b(instanceof|get|implements|set|import|function|override|const|if|else|do|while|for|throw|panic|lock|try|catch|finally|return|break|continue|switch|case|default|in|is|as|match|throws|super|new)\\b" + }, + { + "comment": "storage keywords", + "name": "storage.type.zenscript", + "match": "\\b(zenClass|zenConstructor|alias|class|interface|enum|struct|expand|variant|set|void|bool|byte|sbyte|short|ushort|int|uint|long|ulong|usize|float|double|char|string)\\b" + }, + { + "comment": "modifier keywords", + "name": "storage.modifier.zenscript", + "match": "\\b(variant|abstract|final|private|public|export|internal|static|protected|implicit|virtual|extern|immutable)\\b" + }, + { + "comment": "annotation keywords", + "name": "entity.other.attribute-name", + "match": "\\b(Native|Precondition)\\b" + }, + { + "comment": "language keywords", + "name": "constant.language", + "match": "\\b(null|true|false)\\b" + } + ] + }, + "operators": { + "patterns": [ + { + "comment": "math operators", + "name": "keyword.control", + "match": "\\b(\\.|\\.\\.|\\.\\.\\.|,|\\+|\\+=|\\+\\+|-|-=|--|~|~=|\\*|\\*=|/|/=|%|%=|\\||\\|=|\\|\\||&|&=|&&|\\^|\\^=|\\?|\\?\\.|\\?\\?|<|<=|<<|<<=|>|>=|>>|>>=|>>>|>>>=|=>|=|==|===|!|!=|!==|\\$|`)\\b" + }, + { + "comment": "colons", + "name": "keyword.control", + "match": "\\b(;|:)\\b" + } + ] + } + }, + "scopeName": "source.zenscript" +} diff --git a/docs/shiki/languages/zig.tmLanguage.json b/docs/shiki/languages/zig.tmLanguage.json new file mode 100644 index 00000000..3012648d --- /dev/null +++ b/docs/shiki/languages/zig.tmLanguage.json @@ -0,0 +1,309 @@ +{ + "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", + "name": "zig", + "scopeName": "source.zig", + "fileTypes": ["zig", "zon"], + "patterns": [ + { + "include": "#comments" + }, + { + "include": "#strings" + }, + { + "include": "#keywords" + }, + { + "include": "#operators" + }, + { + "include": "#numbers" + }, + { + "include": "#support" + }, + { + "include": "#variables" + } + ], + "repository": { + "variables": { + "patterns": [ + { + "name": "meta.function.declaration.zig", + "patterns": [ + { + "match": "\\b(fn)\\s+([A-Z][a-zA-Z0-9]*)\\b", + "captures": { + "1": { + "name": "storage.type.function.zig" + }, + "2": { + "name": "entity.name.type.zig" + } + } + }, + { + "match": "\\b(fn)\\s+([_a-zA-Z][_a-zA-Z0-9]*)\\b", + "captures": { + "1": { + "name": "storage.type.function.zig" + }, + "2": { + "name": "entity.name.function.zig" + } + } + }, + { + "begin": "\\b(fn)\\s+@\"", + "end": "\"", + "name": "entity.name.function.string.zig", + "beginCaptures": { + "1": { + "name": "storage.type.function.zig" + } + }, + "patterns": [ + { + "include": "#stringcontent" + } + ] + }, + { + "name": "keyword.default.zig", + "match": "\\b(const|var|fn)\\b" + } + ] + }, + { + "name": "meta.function.call.zig", + "patterns": [ + { + "match": "([A-Z][a-zA-Z0-9]*)(?=\\s*\\()", + "name": "entity.name.type.zig" + }, + { + "match": "([_a-zA-Z][_a-zA-Z0-9]*)(?=\\s*\\()", + "name": "entity.name.function.zig" + } + ] + }, + { + "name": "meta.variable.zig", + "patterns": [ + { + "match": "\\b[_a-zA-Z][_a-zA-Z0-9]*\\b", + "name": "variable.zig" + }, + { + "begin": "@\"", + "end": "\"", + "name": "variable.string.zig", + "patterns": [ + { + "include": "#stringcontent" + } + ] + } + ] + } + ] + }, + "keywords": { + "patterns": [ + { + "match": "\\binline\\b(?!\\s*\\bfn\\b)", + "name": "keyword.control.repeat.zig" + }, + { + "match": "\\b(while|for)\\b", + "name": "keyword.control.repeat.zig" + }, + { + "name": "keyword.storage.zig", + "match": "\\b(extern|packed|export|pub|noalias|inline|comptime|volatile|align|linksection|threadlocal|allowzero|noinline|callconv)\\b" + }, + { + "name": "keyword.structure.zig", + "match": "\\b(struct|enum|union|opaque)\\b" + }, + { + "name": "keyword.statement.zig", + "match": "\\b(asm|unreachable)\\b" + }, + { + "name": "keyword.control.flow.zig", + "match": "\\b(break|return|continue|defer|errdefer)\\b" + }, + { + "name": "keyword.control.async.zig", + "match": "\\b(await|resume|suspend|async|nosuspend)\\b" + }, + { + "name": "keyword.control.trycatch.zig", + "match": "\\b(try|catch)\\b" + }, + { + "name": "keyword.control.conditional.zig", + "match": "\\b(if|else|switch|orelse)\\b" + }, + { + "name": "keyword.constant.default.zig", + "match": "\\b(null|undefined)\\b" + }, + { + "name": "keyword.constant.bool.zig", + "match": "\\b(true|false)\\b" + }, + { + "name": "keyword.default.zig", + "match": "\\b(usingnamespace|test|and|or)\\b" + }, + { + "name": "keyword.type.zig", + "match": "\\b(bool|void|noreturn|type|error|anyerror|anyframe|anytype|anyopaque)\\b" + }, + { + "name": "keyword.type.integer.zig", + "match": "\\b(f16|f32|f64|f80|f128|u\\d+|i\\d+|isize|usize|comptime_int|comptime_float)\\b" + }, + { + "name": "keyword.type.c.zig", + "match": "\\b(c_char|c_short|c_ushort|c_int|c_uint|c_long|c_ulong|c_longlong|c_ulonglong|c_longdouble)\\b" + } + ] + }, + "operators": { + "patterns": [ + { + "name": "keyword.operator.c-pointer.zig", + "match": "\\[*c\\]" + }, + { + "name": "keyword.operator.comparison.zig", + "match": "(\\b(and|or)\\b)|(==|!=)" + }, + { + "name": "keyword.operator.arithmetic.zig", + "match": "(-%?|\\+%?|\\*%?|/|%)=?" + }, + { + "name": "keyword.operator.bitwise.zig", + "match": "(<<%?|>>|!|&|\\^|\\|)=?" + }, + { + "name": "keyword.operator.special.zig", + "match": "(==|\\+\\+|\\*\\*|->)" + } + ] + }, + "comments": { + "patterns": [ + { + "name": "comment.line.documentation.zig", + "begin": "//[!/](?=[^/])", + "end": "$", + "patterns": [ + { + "include": "#commentContents" + } + ] + }, + { + "name": "comment.line.double-slash.zig", + "begin": "//", + "end": "$", + "patterns": [ + { + "include": "#commentContents" + } + ] + } + ] + }, + "commentContents": { + "patterns": [ + { + "match": "\\b(TODO|FIXME|XXX|NOTE)\\b:?", + "name": "keyword.todo.zig" + } + ] + }, + "strings": { + "patterns": [ + { + "name": "string.quoted.double.zig", + "begin": "\"", + "end": "\"", + "patterns": [ + { + "include": "#stringcontent" + } + ] + }, + { + "name": "string.multiline.zig", + "begin": "\\\\\\\\", + "end": "$" + }, + { + "name": "string.quoted.single.zig", + "match": "'([^'\\\\]|\\\\(x\\h{2}|[0-2][0-7]{,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.))'" + } + ] + }, + "stringcontent": { + "patterns": [ + { + "name": "constant.character.escape.zig", + "match": "\\\\([nrt'\"\\\\]|(x[0-9a-fA-F]{2})|(u\\{[0-9a-fA-F]+\\}))" + }, + { + "name": "invalid.illegal.unrecognized-string-escape.zig", + "match": "\\\\." + } + ] + }, + "numbers": { + "patterns": [ + { + "name": "constant.numeric.hexfloat.zig", + "match": "\\b0x[0-9a-fA-F][0-9a-fA-F_]*(\\.[0-9a-fA-F][0-9a-fA-F_]*)?([pP][+-]?[0-9a-fA-F_]+)?\\b" + }, + { + "name": "constant.numeric.float.zig", + "match": "\\b[0-9][0-9_]*(\\.[0-9][0-9_]*)?([eE][+-]?[0-9_]+)?\\b" + }, + { + "name": "constant.numeric.decimal.zig", + "match": "\\b[0-9][0-9_]*\\b" + }, + { + "name": "constant.numeric.hexadecimal.zig", + "match": "\\b0x[a-fA-F0-9_]+\\b" + }, + { + "name": "constant.numeric.octal.zig", + "match": "\\b0o[0-7_]+\\b" + }, + { + "name": "constant.numeric.binary.zig", + "match": "\\b0b[01_]+\\b" + }, + { + "name": "constant.numeric.invalid.zig", + "match": "\\b[0-9](([eEpP][+-])|[0-9a-zA-Z_])*(\\.(([eEpP][+-])|[0-9a-zA-Z_])*)?([eEpP][+-])?[0-9a-zA-Z_]*\\b" + } + ] + }, + "support": { + "patterns": [ + { + "comment": "Built-in functions", + "name": "support.function.builtin.zig", + "match": "@[_a-zA-Z][_a-zA-Z0-9]*" + } + ] + } + } +} diff --git a/docs/shiki/themes/css-variables.json b/docs/shiki/themes/css-variables.json new file mode 100644 index 00000000..6d3226db --- /dev/null +++ b/docs/shiki/themes/css-variables.json @@ -0,0 +1,186 @@ +{ + "name": "css-variables", + "type": "css", + "colors": { + "editor.foreground": "#000001", + "editor.background": "#000002", + "terminal.ansiBlack": "#A00000", + "terminal.ansiRed": "#A00001", + "terminal.ansiGreen": "#A00002", + "terminal.ansiYellow": "#A00003", + "terminal.ansiBlue": "#A00004", + "terminal.ansiMagenta": "#A00005", + "terminal.ansiCyan": "#A00006", + "terminal.ansiWhite": "#A00007", + "terminal.ansiBrightBlack": "#A00008", + "terminal.ansiBrightRed": "#A00009", + "terminal.ansiBrightGreen": "#A00010", + "terminal.ansiBrightYellow": "#A00011", + "terminal.ansiBrightBlue": "#A00012", + "terminal.ansiBrightMagenta": "#A00013", + "terminal.ansiBrightCyan": "#A00014", + "terminal.ansiBrightWhite": "#A00015" + }, + "tokenColors": [ + { + "settings": { + "foreground": "#000001" + } + }, + { + "scope": [ + "keyword.operator.accessor", + "meta.group.braces.round.function.arguments", + "meta.template.expression", + "markup.fenced_code meta.embedded.block" + ], + "settings": { + "foreground": "#000001" + } + }, + { + "scope": "emphasis", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": ["strong", "markup.heading.markdown", "markup.bold.markdown"], + "settings": { + "fontStyle": "bold" + } + }, + { + "scope": ["markup.italic.markdown"], + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "meta.link.inline.markdown", + "settings": { + "fontStyle": "underline", + "foreground": "#000004" + } + }, + { + "scope": ["string", "markup.fenced_code", "markup.inline"], + "settings": { + "foreground": "#000005" + } + }, + { + "scope": ["comment", "string.quoted.docstring.multi"], + "settings": { + "foreground": "#000006" + } + }, + { + "scope": [ + "constant.numeric", + "constant.language", + "constant.other.placeholder", + "constant.character.format.placeholder", + "variable.language.this", + "variable.other.object", + "variable.other.class", + "variable.other.constant", + "meta.property-name", + "meta.property-value", + "support" + ], + "settings": { + "foreground": "#000004" + } + }, + { + "scope": [ + "keyword", + "storage.modifier", + "storage.type", + "storage.control.clojure", + "entity.name.function.clojure", + "entity.name.tag.yaml", + "support.function.node", + "support.type.property-name.json", + "punctuation.separator.key-value", + "punctuation.definition.template-expression" + ], + "settings": { + "foreground": "#000007" + } + }, + { + "scope": "variable.parameter.function", + "settings": { + "foreground": "#000008" + } + }, + { + "scope": [ + "support.function", + "entity.name.type", + "entity.other.inherited-class", + "meta.function-call", + "meta.instance.constructor", + "entity.other.attribute-name", + "entity.name.function", + "constant.keyword.clojure" + ], + "settings": { + "foreground": "#000009" + } + }, + { + "scope": [ + "entity.name.tag", + "string.quoted", + "string.regexp", + "string.interpolated", + "string.template", + "string.unquoted.plain.out.yaml", + "keyword.other.template" + ], + "settings": { + "foreground": "#000010" + } + }, + { + "scope": [ + "punctuation.definition.arguments", + "punctuation.definition.dict", + "punctuation.separator", + "meta.function-call.arguments" + ], + "settings": { + "foreground": "#000011" + } + }, + { + "name": "[Custom] Markdown links", + "scope": ["markup.underline.link", "punctuation.definition.metadata.markdown"], + "settings": { + "foreground": "#000012" + } + }, + { + "name": "[Custom] Markdown list", + "scope": ["beginning.punctuation.definition.list.markdown"], + "settings": { + "foreground": "#000005" + } + }, + { + "name": "[Custom] Markdown punctuation definition brackets", + "scope": [ + "punctuation.definition.string.begin.markdown", + "punctuation.definition.string.end.markdown", + "string.other.link.title.markdown", + "string.other.link.description.markdown" + ], + "settings": { + "foreground": "#000007" + } + } + ] +} diff --git a/docs/shiki/themes/dark-plus.json b/docs/shiki/themes/dark-plus.json new file mode 100644 index 00000000..ba1c2c8b --- /dev/null +++ b/docs/shiki/themes/dark-plus.json @@ -0,0 +1,576 @@ +{ + "$schema": "vscode://schemas/color-theme", + "name": "dark-plus", + "tokenColors": [ + { + "settings": { + "foreground": "#D4D4D4" + } + }, + { + "scope": [ + "meta.embedded", + "source.groovy.embedded", + "string meta.image.inline.markdown", + "variable.legacy.builtin.python" + ], + "settings": { + "foreground": "#D4D4D4" + } + }, + { + "scope": "emphasis", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "strong", + "settings": { + "fontStyle": "bold" + } + }, + { + "scope": "header", + "settings": { + "foreground": "#000080" + } + }, + { + "scope": "comment", + "settings": { + "foreground": "#6A9955" + } + }, + { + "scope": "constant.language", + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": [ + "constant.numeric", + "variable.other.enummember", + "keyword.operator.plus.exponent", + "keyword.operator.minus.exponent" + ], + "settings": { + "foreground": "#b5cea8" + } + }, + { + "scope": "constant.regexp", + "settings": { + "foreground": "#646695" + } + }, + { + "scope": "entity.name.tag", + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": "entity.name.tag.css", + "settings": { + "foreground": "#d7ba7d" + } + }, + { + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#9cdcfe" + } + }, + { + "scope": [ + "entity.other.attribute-name.class.css", + "entity.other.attribute-name.class.mixin.css", + "entity.other.attribute-name.id.css", + "entity.other.attribute-name.parent-selector.css", + "entity.other.attribute-name.pseudo-class.css", + "entity.other.attribute-name.pseudo-element.css", + "source.css.less entity.other.attribute-name.id", + "entity.other.attribute-name.scss" + ], + "settings": { + "foreground": "#d7ba7d" + } + }, + { + "scope": "invalid", + "settings": { + "foreground": "#f44747" + } + }, + { + "scope": "markup.underline", + "settings": { + "fontStyle": "underline" + } + }, + { + "scope": "markup.bold", + "settings": { + "fontStyle": "bold", + "foreground": "#569cd6" + } + }, + { + "scope": "markup.heading", + "settings": { + "fontStyle": "bold", + "foreground": "#569cd6" + } + }, + { + "scope": "markup.italic", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "markup.strikethrough", + "settings": { + "fontStyle": "strikethrough" + } + }, + { + "scope": "markup.inserted", + "settings": { + "foreground": "#b5cea8" + } + }, + { + "scope": "markup.deleted", + "settings": { + "foreground": "#ce9178" + } + }, + { + "scope": "markup.changed", + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": "punctuation.definition.quote.begin.markdown", + "settings": { + "foreground": "#6A9955" + } + }, + { + "scope": "punctuation.definition.list.begin.markdown", + "settings": { + "foreground": "#6796e6" + } + }, + { + "scope": "markup.inline.raw", + "settings": { + "foreground": "#ce9178" + } + }, + { + "name": "brackets of XML/HTML tags", + "scope": "punctuation.definition.tag", + "settings": { + "foreground": "#808080" + } + }, + { + "scope": ["meta.preprocessor", "entity.name.function.preprocessor"], + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": "meta.preprocessor.string", + "settings": { + "foreground": "#ce9178" + } + }, + { + "scope": "meta.preprocessor.numeric", + "settings": { + "foreground": "#b5cea8" + } + }, + { + "scope": "meta.structure.dictionary.key.python", + "settings": { + "foreground": "#9cdcfe" + } + }, + { + "scope": "meta.diff.header", + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": "storage", + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": "storage.type", + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": ["storage.modifier", "keyword.operator.noexcept"], + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": ["string", "meta.embedded.assembly"], + "settings": { + "foreground": "#ce9178" + } + }, + { + "scope": "string.tag", + "settings": { + "foreground": "#ce9178" + } + }, + { + "scope": "string.value", + "settings": { + "foreground": "#ce9178" + } + }, + { + "scope": "string.regexp", + "settings": { + "foreground": "#d16969" + } + }, + { + "name": "String interpolation", + "scope": [ + "punctuation.definition.template-expression.begin", + "punctuation.definition.template-expression.end", + "punctuation.section.embedded" + ], + "settings": { + "foreground": "#569cd6" + } + }, + { + "name": "Reset JavaScript string interpolation expression", + "scope": ["meta.template.expression"], + "settings": { + "foreground": "#d4d4d4" + } + }, + { + "scope": [ + "support.type.vendored.property-name", + "support.type.property-name", + "variable.css", + "variable.scss", + "variable.other.less", + "source.coffee.embedded" + ], + "settings": { + "foreground": "#9cdcfe" + } + }, + { + "scope": "keyword", + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": "keyword.control", + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": "keyword.operator", + "settings": { + "foreground": "#d4d4d4" + } + }, + { + "scope": [ + "keyword.operator.new", + "keyword.operator.expression", + "keyword.operator.cast", + "keyword.operator.sizeof", + "keyword.operator.alignof", + "keyword.operator.typeid", + "keyword.operator.alignas", + "keyword.operator.instanceof", + "keyword.operator.logical.python", + "keyword.operator.wordlike" + ], + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": "keyword.other.unit", + "settings": { + "foreground": "#b5cea8" + } + }, + { + "scope": ["punctuation.section.embedded.begin.php", "punctuation.section.embedded.end.php"], + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": "support.function.git-rebase", + "settings": { + "foreground": "#9cdcfe" + } + }, + { + "scope": "constant.sha.git-rebase", + "settings": { + "foreground": "#b5cea8" + } + }, + { + "name": "coloring of the Java import and package identifiers", + "scope": [ + "storage.modifier.import.java", + "variable.language.wildcard.java", + "storage.modifier.package.java" + ], + "settings": { + "foreground": "#d4d4d4" + } + }, + { + "name": "this.self", + "scope": "variable.language", + "settings": { + "foreground": "#569cd6" + } + }, + { + "name": "Function declarations", + "scope": [ + "entity.name.function", + "support.function", + "support.constant.handlebars", + "source.powershell variable.other.member", + "entity.name.operator.custom-literal" + ], + "settings": { + "foreground": "#DCDCAA" + } + }, + { + "name": "Types declaration and references", + "scope": [ + "support.class", + "support.type", + "entity.name.type", + "entity.name.namespace", + "entity.other.attribute", + "entity.name.scope-resolution", + "entity.name.class", + "storage.type.numeric.go", + "storage.type.byte.go", + "storage.type.boolean.go", + "storage.type.string.go", + "storage.type.uintptr.go", + "storage.type.error.go", + "storage.type.rune.go", + "storage.type.cs", + "storage.type.generic.cs", + "storage.type.modifier.cs", + "storage.type.variable.cs", + "storage.type.annotation.java", + "storage.type.generic.java", + "storage.type.java", + "storage.type.object.array.java", + "storage.type.primitive.array.java", + "storage.type.primitive.java", + "storage.type.token.java", + "storage.type.groovy", + "storage.type.annotation.groovy", + "storage.type.parameters.groovy", + "storage.type.generic.groovy", + "storage.type.object.array.groovy", + "storage.type.primitive.array.groovy", + "storage.type.primitive.groovy" + ], + "settings": { + "foreground": "#4EC9B0" + } + }, + { + "name": "Types declaration and references, TS grammar specific", + "scope": [ + "meta.type.cast.expr", + "meta.type.new.expr", + "support.constant.math", + "support.constant.dom", + "support.constant.json", + "entity.other.inherited-class" + ], + "settings": { + "foreground": "#4EC9B0" + } + }, + { + "name": "Control flow / Special keywords", + "scope": [ + "keyword.control", + "source.cpp keyword.operator.new", + "keyword.operator.delete", + "keyword.other.using", + "keyword.other.directive.using", + "keyword.other.operator", + "entity.name.operator" + ], + "settings": { + "foreground": "#C586C0" + } + }, + { + "name": "Variable and parameter name", + "scope": [ + "variable", + "meta.definition.variable.name", + "support.variable", + "entity.name.variable", + "constant.other.placeholder" + ], + "settings": { + "foreground": "#9CDCFE" + } + }, + { + "name": "Constants and enums", + "scope": ["variable.other.constant", "variable.other.enummember"], + "settings": { + "foreground": "#4FC1FF" + } + }, + { + "name": "Object keys, TS grammar specific", + "scope": ["meta.object-literal.key"], + "settings": { + "foreground": "#9CDCFE" + } + }, + { + "name": "CSS property value", + "scope": [ + "support.constant.property-value", + "support.constant.font-name", + "support.constant.media-type", + "support.constant.media", + "constant.other.color.rgb-value", + "constant.other.rgb-value", + "support.constant.color" + ], + "settings": { + "foreground": "#CE9178" + } + }, + { + "name": "Regular expression groups", + "scope": [ + "punctuation.definition.group.regexp", + "punctuation.definition.group.assertion.regexp", + "punctuation.definition.character-class.regexp", + "punctuation.character.set.begin.regexp", + "punctuation.character.set.end.regexp", + "keyword.operator.negation.regexp", + "support.other.parenthesis.regexp" + ], + "settings": { + "foreground": "#CE9178" + } + }, + { + "scope": [ + "constant.character.character-class.regexp", + "constant.other.character-class.set.regexp", + "constant.other.character-class.regexp", + "constant.character.set.regexp" + ], + "settings": { + "foreground": "#d16969" + } + }, + { + "scope": ["keyword.operator.or.regexp", "keyword.control.anchor.regexp"], + "settings": { + "foreground": "#DCDCAA" + } + }, + { + "scope": "keyword.operator.quantifier.regexp", + "settings": { + "foreground": "#d7ba7d" + } + }, + { + "scope": ["constant.character", "constant.other.option"], + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": "constant.character.escape", + "settings": { + "foreground": "#d7ba7d" + } + }, + { + "scope": "entity.name.label", + "settings": { + "foreground": "#C8C8C8" + } + } + ], + "semanticTokenColors": { + "newOperator": "#C586C0", + "stringLiteral": "#ce9178", + "customLiteral": "#DCDCAA", + "numberLiteral": "#b5cea8" + }, + "colors": { + "checkbox.border": "#6B6B6B", + "editor.background": "#1E1E1E", + "editor.foreground": "#D4D4D4", + "editor.inactiveSelectionBackground": "#3A3D41", + "editorIndentGuide.background": "#404040", + "editorIndentGuide.activeBackground": "#707070", + "editor.selectionHighlightBackground": "#ADD6FF26", + "list.dropBackground": "#383B3D", + "activityBarBadge.background": "#007ACC", + "sideBarTitle.foreground": "#BBBBBB", + "input.placeholderForeground": "#A6A6A6", + "menu.background": "#252526", + "menu.foreground": "#CCCCCC", + "menu.separatorBackground": "#454545", + "menu.border": "#454545", + "statusBarItem.remoteForeground": "#FFF", + "statusBarItem.remoteBackground": "#16825D", + "ports.iconRunningProcessForeground": "#369432", + "sideBarSectionHeader.background": "#0000", + "sideBarSectionHeader.border": "#ccc3", + "tab.lastPinnedBorder": "#ccc3", + "list.activeSelectionIconForeground": "#FFF", + "terminal.inactiveSelectionBackground": "#3A3D41", + "widget.border": "#303031", + "actionBar.toggledBackground": "#383a49" + } +} diff --git a/docs/shiki/themes/dracula-soft.json b/docs/shiki/themes/dracula-soft.json new file mode 100644 index 00000000..9fba169e --- /dev/null +++ b/docs/shiki/themes/dracula-soft.json @@ -0,0 +1,1049 @@ +{ + "$schema": "vscode://schemas/color-theme", + "name": "dracula-soft", + "author": "Zeno Rocha", + "maintainers": ["Derek P Sifford <dereksifford@gmail.com>"], + "semanticClass": "theme.dracula", + "semanticHighlighting": true, + "dracula": { + "base": [ + "#282A36", + "#F8F8F2", + "#44475A", + "#6272A4", + "#8BE9FD", + "#50FA7B", + "#FFB86C", + "#FF79C6", + "#BD93F9", + "#FF5555", + "#F1FA8C" + ], + "ansi": [ + "#21222C", + "#FF5555", + "#50FA7B", + "#F1FA8C", + "#BD93F9", + "#FF79C6", + "#8BE9FD", + "#F8F8F2", + "#6272A4", + "#FF6E6E", + "#69FF94", + "#FFFFA5", + "#D6ACFF", + "#FF92DF", + "#A4FFFF", + "#FFFFFF" + ], + "brightOther": ["#E9F284", "#8BE9FE"], + "other": [ + "#44475A75", + "#FFFFFF1A", + "#FFFFFF", + "#44475A70", + "#424450", + "#343746", + "#21222C", + "#191A21" + ] + }, + "colors": { + "terminal.background": "#282A36", + "terminal.foreground": "#f6f6f4", + "terminal.ansiBrightBlack": "#7b7f8b", + "terminal.ansiBrightRed": "#f07c7c", + "terminal.ansiBrightGreen": "#78f09a", + "terminal.ansiBrightYellow": "#f6f6ae", + "terminal.ansiBrightBlue": "#d6b4f7", + "terminal.ansiBrightMagenta": "#f49dda", + "terminal.ansiBrightCyan": "#adf6f6", + "terminal.ansiBrightWhite": "#ffffff", + "terminal.ansiBlack": "#262626", + "terminal.ansiRed": "#ee6666", + "terminal.ansiGreen": "#62e884", + "terminal.ansiYellow": "#e7ee98", + "terminal.ansiBlue": "#bf9eee", + "terminal.ansiMagenta": "#f286c4", + "terminal.ansiCyan": "#97e1f1", + "terminal.ansiWhite": "#f6f6f4", + "focusBorder": "#7b7f8b", + "foreground": "#f6f6f4", + "selection.background": "#bf9eee", + "errorForeground": "#ee6666", + "button.background": "#44475A", + "button.foreground": "#f6f6f4", + "button.secondaryBackground": "#282A36", + "button.secondaryForeground": "#f6f6f4", + "button.secondaryHoverBackground": "#343746", + "dropdown.background": "#343746", + "dropdown.border": "#191A21", + "dropdown.foreground": "#f6f6f4", + "input.background": "#282A36", + "input.foreground": "#f6f6f4", + "input.border": "#191A21", + "input.placeholderForeground": "#7b7f8b", + "inputOption.activeBorder": "#bf9eee", + "inputValidation.infoBorder": "#f286c4", + "inputValidation.warningBorder": "#FFB86C", + "inputValidation.errorBorder": "#ee6666", + "badge.foreground": "#f6f6f4", + "badge.background": "#44475A", + "progressBar.background": "#f286c4", + "list.activeSelectionBackground": "#44475A", + "list.activeSelectionForeground": "#f6f6f4", + "list.dropBackground": "#44475A", + "list.focusBackground": "#44475A75", + "list.highlightForeground": "#97e1f1", + "list.hoverBackground": "#44475A75", + "list.inactiveSelectionBackground": "#44475A75", + "list.warningForeground": "#FFB86C", + "list.errorForeground": "#ee6666", + "activityBar.background": "#343746", + "activityBar.inactiveForeground": "#7b7f8b", + "activityBar.foreground": "#f6f6f4", + "activityBar.activeBorder": "#FF79C680", + "activityBar.activeBackground": "#BD93F910", + "activityBarBadge.background": "#f286c4", + "activityBarBadge.foreground": "#f6f6f4", + "sideBar.background": "#262626", + "sideBarTitle.foreground": "#f6f6f4", + "sideBarSectionHeader.background": "#282A36", + "sideBarSectionHeader.border": "#191A21", + "editorGroup.border": "#bf9eee", + "editorGroup.dropBackground": "#44475A70", + "editorGroupHeader.tabsBackground": "#191A21", + "tab.activeBackground": "#282A36", + "tab.activeForeground": "#f6f6f4", + "tab.border": "#191A21", + "tab.activeBorderTop": "#FF79C680", + "tab.inactiveBackground": "#262626", + "tab.inactiveForeground": "#7b7f8b", + "editor.foreground": "#f6f6f4", + "editor.background": "#282A36", + "editorLineNumber.foreground": "#7b7f8b", + "editor.selectionBackground": "#44475A", + "editor.selectionHighlightBackground": "#424450", + "editor.foldBackground": "#21222C80", + "editor.wordHighlightBackground": "#8BE9FD50", + "editor.wordHighlightStrongBackground": "#50FA7B50", + "editor.findMatchBackground": "#FFB86C80", + "editor.findMatchHighlightBackground": "#FFFFFF40", + "editor.findRangeHighlightBackground": "#44475A75", + "editor.hoverHighlightBackground": "#8BE9FD50", + "editor.lineHighlightBorder": "#44475A", + "editorLink.activeForeground": "#97e1f1", + "editor.rangeHighlightBackground": "#BD93F915", + "editor.snippetTabstopHighlightBackground": "#282A36", + "editor.snippetTabstopHighlightBorder": "#7b7f8b", + "editor.snippetFinalTabstopHighlightBackground": "#282A36", + "editor.snippetFinalTabstopHighlightBorder": "#62e884", + "editorWhitespace.foreground": "#FFFFFF1A", + "editorIndentGuide.background": "#FFFFFF1A", + "editorIndentGuide.activeBackground": "#FFFFFF45", + "editorRuler.foreground": "#FFFFFF1A", + "editorCodeLens.foreground": "#7b7f8b", + "editorBracketHighlight.foreground1": "#f6f6f4", + "editorBracketHighlight.foreground2": "#f286c4", + "editorBracketHighlight.foreground3": "#97e1f1", + "editorBracketHighlight.foreground4": "#62e884", + "editorBracketHighlight.foreground5": "#bf9eee", + "editorBracketHighlight.foreground6": "#FFB86C", + "editorBracketHighlight.unexpectedBracket.foreground": "#ee6666", + "editorOverviewRuler.border": "#191A21", + "editorOverviewRuler.selectionHighlightForeground": "#FFB86C", + "editorOverviewRuler.wordHighlightForeground": "#97e1f1", + "editorOverviewRuler.wordHighlightStrongForeground": "#62e884", + "editorOverviewRuler.modifiedForeground": "#8BE9FD80", + "editorOverviewRuler.addedForeground": "#50FA7B80", + "editorOverviewRuler.deletedForeground": "#FF555580", + "editorOverviewRuler.errorForeground": "#FF555580", + "editorOverviewRuler.warningForeground": "#FFB86C80", + "editorOverviewRuler.infoForeground": "#8BE9FD80", + "editorError.foreground": "#ee6666", + "editorWarning.foreground": "#97e1f1", + "editorGutter.modifiedBackground": "#8BE9FD80", + "editorGutter.addedBackground": "#50FA7B80", + "editorGutter.deletedBackground": "#FF555580", + "gitDecoration.modifiedResourceForeground": "#97e1f1", + "gitDecoration.deletedResourceForeground": "#ee6666", + "gitDecoration.untrackedResourceForeground": "#62e884", + "gitDecoration.ignoredResourceForeground": "#7b7f8b", + "gitDecoration.conflictingResourceForeground": "#FFB86C", + "diffEditor.insertedTextBackground": "#50FA7B20", + "diffEditor.removedTextBackground": "#FF555550", + "inlineChat.regionHighlight": "#343746", + "editorWidget.background": "#262626", + "editorSuggestWidget.background": "#262626", + "editorSuggestWidget.foreground": "#f6f6f4", + "editorSuggestWidget.selectedBackground": "#44475A", + "editorHoverWidget.background": "#282A36", + "editorHoverWidget.border": "#7b7f8b", + "editorMarkerNavigation.background": "#262626", + "peekView.border": "#44475A", + "peekViewEditor.background": "#282A36", + "peekViewEditor.matchHighlightBackground": "#F1FA8C80", + "peekViewResult.background": "#262626", + "peekViewResult.fileForeground": "#f6f6f4", + "peekViewResult.lineForeground": "#f6f6f4", + "peekViewResult.matchHighlightBackground": "#F1FA8C80", + "peekViewResult.selectionBackground": "#44475A", + "peekViewResult.selectionForeground": "#f6f6f4", + "peekViewTitle.background": "#191A21", + "peekViewTitleDescription.foreground": "#7b7f8b", + "peekViewTitleLabel.foreground": "#f6f6f4", + "merge.currentHeaderBackground": "#50FA7B90", + "merge.incomingHeaderBackground": "#BD93F990", + "editorOverviewRuler.currentContentForeground": "#62e884", + "editorOverviewRuler.incomingContentForeground": "#bf9eee", + "panel.background": "#282A36", + "panel.border": "#bf9eee", + "panelTitle.activeBorder": "#f286c4", + "panelTitle.activeForeground": "#f6f6f4", + "panelTitle.inactiveForeground": "#7b7f8b", + "statusBar.background": "#191A21", + "statusBar.foreground": "#f6f6f4", + "statusBar.debuggingBackground": "#ee6666", + "statusBar.debuggingForeground": "#191A21", + "statusBar.noFolderBackground": "#191A21", + "statusBar.noFolderForeground": "#f6f6f4", + "statusBarItem.prominentBackground": "#ee6666", + "statusBarItem.prominentHoverBackground": "#FFB86C", + "statusBarItem.remoteForeground": "#282A36", + "statusBarItem.remoteBackground": "#bf9eee", + "titleBar.activeBackground": "#262626", + "titleBar.activeForeground": "#f6f6f4", + "titleBar.inactiveBackground": "#191A21", + "titleBar.inactiveForeground": "#7b7f8b", + "extensionButton.prominentForeground": "#f6f6f4", + "extensionButton.prominentBackground": "#50FA7B90", + "extensionButton.prominentHoverBackground": "#50FA7B60", + "pickerGroup.border": "#bf9eee", + "pickerGroup.foreground": "#97e1f1", + "debugToolBar.background": "#262626", + "walkThrough.embeddedEditorBackground": "#262626", + "settings.headerForeground": "#f6f6f4", + "settings.modifiedItemIndicator": "#FFB86C", + "settings.dropdownBackground": "#262626", + "settings.dropdownForeground": "#f6f6f4", + "settings.dropdownBorder": "#191A21", + "settings.checkboxBackground": "#262626", + "settings.checkboxForeground": "#f6f6f4", + "settings.checkboxBorder": "#191A21", + "settings.textInputBackground": "#262626", + "settings.textInputForeground": "#f6f6f4", + "settings.textInputBorder": "#191A21", + "settings.numberInputBackground": "#262626", + "settings.numberInputForeground": "#f6f6f4", + "settings.numberInputBorder": "#191A21", + "breadcrumb.foreground": "#7b7f8b", + "breadcrumb.background": "#282A36", + "breadcrumb.focusForeground": "#f6f6f4", + "breadcrumb.activeSelectionForeground": "#f6f6f4", + "breadcrumbPicker.background": "#191A21", + "listFilterWidget.background": "#343746", + "listFilterWidget.outline": "#424450", + "listFilterWidget.noMatchesOutline": "#ee6666" + }, + "tokenColors": [ + { + "scope": ["emphasis"], + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": ["strong"], + "settings": { + "fontStyle": "bold" + } + }, + { + "scope": ["header"], + "settings": { + "foreground": "#bf9eee" + } + }, + { + "scope": ["meta.diff", "meta.diff.header"], + "settings": { + "foreground": "#7b7f8b" + } + }, + { + "scope": ["markup.inserted"], + "settings": { + "foreground": "#62e884" + } + }, + { + "scope": ["markup.deleted"], + "settings": { + "foreground": "#ee6666" + } + }, + { + "scope": ["markup.changed"], + "settings": { + "foreground": "#FFB86C" + } + }, + { + "scope": ["invalid"], + "settings": { + "foreground": "#ee6666", + "fontStyle": "underline italic" + } + }, + { + "scope": ["invalid.deprecated"], + "settings": { + "foreground": "#f6f6f4", + "fontStyle": "underline italic" + } + }, + { + "scope": ["entity.name.filename"], + "settings": { + "foreground": "#e7ee98" + } + }, + { + "scope": ["markup.error"], + "settings": { + "foreground": "#ee6666" + } + }, + { + "name": "Underlined markup", + "scope": ["markup.underline"], + "settings": { + "fontStyle": "underline" + } + }, + { + "name": "Bold markup", + "scope": ["markup.bold"], + "settings": { + "fontStyle": "bold", + "foreground": "#FFB86C" + } + }, + { + "name": "Markup headings", + "scope": ["markup.heading"], + "settings": { + "fontStyle": "bold", + "foreground": "#bf9eee" + } + }, + { + "name": "Markup italic", + "scope": ["markup.italic"], + "settings": { + "foreground": "#e7ee98", + "fontStyle": "italic" + } + }, + { + "name": "Bullets, lists (prose)", + "scope": [ + "beginning.punctuation.definition.list.markdown", + "beginning.punctuation.definition.quote.markdown", + "punctuation.definition.link.restructuredtext" + ], + "settings": { + "foreground": "#97e1f1" + } + }, + { + "name": "Inline code (prose)", + "scope": ["markup.inline.raw", "markup.raw.restructuredtext"], + "settings": { + "foreground": "#62e884" + } + }, + { + "name": "Links (prose)", + "scope": ["markup.underline.link", "markup.underline.link.image"], + "settings": { + "foreground": "#97e1f1" + } + }, + { + "name": "Link text, image alt text (prose)", + "scope": [ + "meta.link.reference.def.restructuredtext", + "punctuation.definition.directive.restructuredtext", + "string.other.link.description", + "string.other.link.title" + ], + "settings": { + "foreground": "#f286c4" + } + }, + { + "name": "Blockquotes (prose)", + "scope": ["entity.name.directive.restructuredtext", "markup.quote"], + "settings": { + "foreground": "#e7ee98", + "fontStyle": "italic" + } + }, + { + "name": "Horizontal rule (prose)", + "scope": ["meta.separator.markdown"], + "settings": { + "foreground": "#7b7f8b" + } + }, + { + "name": "Code blocks", + "scope": [ + "fenced_code.block.language", + "markup.raw.inner.restructuredtext", + "markup.fenced_code.block.markdown punctuation.definition.markdown" + ], + "settings": { + "foreground": "#62e884" + } + }, + { + "name": "Prose constants", + "scope": ["punctuation.definition.constant.restructuredtext"], + "settings": { + "foreground": "#bf9eee" + } + }, + { + "name": "Braces in markdown headings", + "scope": [ + "markup.heading.markdown punctuation.definition.string.begin", + "markup.heading.markdown punctuation.definition.string.end" + ], + "settings": { + "foreground": "#bf9eee" + } + }, + { + "name": "Braces in markdown paragraphs", + "scope": [ + "meta.paragraph.markdown punctuation.definition.string.begin", + "meta.paragraph.markdown punctuation.definition.string.end" + ], + "settings": { + "foreground": "#f6f6f4" + } + }, + { + "name": "Braces in markdown blockquotes", + "scope": [ + "markup.quote.markdown meta.paragraph.markdown punctuation.definition.string.begin", + "markup.quote.markdown meta.paragraph.markdown punctuation.definition.string.end" + ], + "settings": { + "foreground": "#e7ee98" + } + }, + { + "name": "User-defined class names", + "scope": ["entity.name.type.class", "entity.name.class"], + "settings": { + "foreground": "#97e1f1", + "fontStyle": "normal" + } + }, + { + "name": "this, super, self, etc.", + "scope": [ + "keyword.expressions-and-types.swift", + "keyword.other.this", + "variable.language", + "variable.language punctuation.definition.variable.php", + "variable.other.readwrite.instance.ruby", + "variable.parameter.function.language.special" + ], + "settings": { + "foreground": "#bf9eee", + "fontStyle": "italic" + } + }, + { + "name": "Inherited classes", + "scope": ["entity.other.inherited-class"], + "settings": { + "fontStyle": "italic", + "foreground": "#97e1f1" + } + }, + { + "name": "Comments", + "scope": ["comment", "punctuation.definition.comment", "unused.comment", "wildcard.comment"], + "settings": { + "foreground": "#7b7f8b" + } + }, + { + "name": "JSDoc-style keywords", + "scope": [ + "comment keyword.codetag.notation", + "comment.block.documentation keyword", + "comment.block.documentation storage.type.class" + ], + "settings": { + "foreground": "#f286c4" + } + }, + { + "name": "JSDoc-style types", + "scope": ["comment.block.documentation entity.name.type"], + "settings": { + "foreground": "#97e1f1", + "fontStyle": "italic" + } + }, + { + "name": "JSDoc-style type brackets", + "scope": ["comment.block.documentation entity.name.type punctuation.definition.bracket"], + "settings": { + "foreground": "#97e1f1" + } + }, + { + "name": "JSDoc-style comment parameters", + "scope": ["comment.block.documentation variable"], + "settings": { + "foreground": "#FFB86C", + "fontStyle": "italic" + } + }, + { + "name": "Constants", + "scope": ["constant", "variable.other.constant"], + "settings": { + "foreground": "#bf9eee" + } + }, + { + "name": "Constant escape sequences", + "scope": ["constant.character.escape", "constant.character.string.escape", "constant.regexp"], + "settings": { + "foreground": "#f286c4" + } + }, + { + "name": "HTML tags", + "scope": ["entity.name.tag"], + "settings": { + "foreground": "#f286c4" + } + }, + { + "name": "CSS attribute parent selectors ('&')", + "scope": ["entity.other.attribute-name.parent-selector"], + "settings": { + "foreground": "#f286c4" + } + }, + { + "name": "HTML/CSS attribute names", + "scope": ["entity.other.attribute-name"], + "settings": { + "foreground": "#62e884", + "fontStyle": "italic" + } + }, + { + "name": "Function names", + "scope": [ + "entity.name.function", + "meta.function-call.object", + "meta.function-call.php", + "meta.function-call.static", + "meta.method-call.java meta.method", + "meta.method.groovy", + "support.function.any-method.lua", + "keyword.operator.function.infix" + ], + "settings": { + "foreground": "#62e884" + } + }, + { + "name": "Function parameters", + "scope": [ + "entity.name.variable.parameter", + "meta.at-rule.function variable", + "meta.at-rule.mixin variable", + "meta.function.arguments variable.other.php", + "meta.selectionset.graphql meta.arguments.graphql variable.arguments.graphql", + "variable.parameter" + ], + "settings": { + "fontStyle": "italic", + "foreground": "#FFB86C" + } + }, + { + "name": "Decorators", + "scope": [ + "meta.decorator variable.other.readwrite", + "meta.decorator variable.other.property" + ], + "settings": { + "foreground": "#62e884", + "fontStyle": "italic" + } + }, + { + "name": "Decorator Objects", + "scope": ["meta.decorator variable.other.object"], + "settings": { + "foreground": "#62e884" + } + }, + { + "name": "Keywords", + "scope": ["keyword", "punctuation.definition.keyword"], + "settings": { + "foreground": "#f286c4" + } + }, + { + "name": "Keyword \"new\"", + "scope": ["keyword.control.new", "keyword.operator.new"], + "settings": { + "fontStyle": "bold" + } + }, + { + "name": "Generic selectors (CSS/SCSS/Less/Stylus)", + "scope": ["meta.selector"], + "settings": { + "foreground": "#f286c4" + } + }, + { + "name": "Language Built-ins", + "scope": ["support"], + "settings": { + "fontStyle": "italic", + "foreground": "#97e1f1" + } + }, + { + "name": "Built-in magic functions and constants", + "scope": ["support.function.magic", "support.variable", "variable.other.predefined"], + "settings": { + "fontStyle": "regular", + "foreground": "#bf9eee" + } + }, + { + "name": "Built-in functions / properties", + "scope": ["support.function", "support.type.property-name"], + "settings": { + "fontStyle": "regular" + } + }, + { + "name": "Separators (key/value, namespace, inheritance, pointer, hash, slice, etc)", + "scope": [ + "constant.other.symbol.hashkey punctuation.definition.constant.ruby", + "entity.other.attribute-name.placeholder punctuation", + "entity.other.attribute-name.pseudo-class punctuation", + "entity.other.attribute-name.pseudo-element punctuation", + "meta.group.double.toml", + "meta.group.toml", + "meta.object-binding-pattern-variable punctuation.destructuring", + "punctuation.colon.graphql", + "punctuation.definition.block.scalar.folded.yaml", + "punctuation.definition.block.scalar.literal.yaml", + "punctuation.definition.block.sequence.item.yaml", + "punctuation.definition.entity.other.inherited-class", + "punctuation.function.swift", + "punctuation.separator.dictionary.key-value", + "punctuation.separator.hash", + "punctuation.separator.inheritance", + "punctuation.separator.key-value", + "punctuation.separator.key-value.mapping.yaml", + "punctuation.separator.namespace", + "punctuation.separator.pointer-access", + "punctuation.separator.slice", + "string.unquoted.heredoc punctuation.definition.string", + "support.other.chomping-indicator.yaml", + "punctuation.separator.annotation" + ], + "settings": { + "foreground": "#f286c4" + } + }, + { + "name": "Brackets, braces, parens, etc.", + "scope": [ + "keyword.operator.other.powershell", + "keyword.other.statement-separator.powershell", + "meta.brace.round", + "meta.function-call punctuation", + "punctuation.definition.arguments.begin", + "punctuation.definition.arguments.end", + "punctuation.definition.entity.begin", + "punctuation.definition.entity.end", + "punctuation.definition.tag.cs", + "punctuation.definition.type.begin", + "punctuation.definition.type.end", + "punctuation.section.scope.begin", + "punctuation.section.scope.end", + "punctuation.terminator.expression.php", + "storage.type.generic.java", + "string.template meta.brace", + "string.template punctuation.accessor" + ], + "settings": { + "foreground": "#f6f6f4" + } + }, + { + "name": "Variable interpolation operators", + "scope": [ + "meta.string-contents.quoted.double punctuation.definition.variable", + "punctuation.definition.interpolation.begin", + "punctuation.definition.interpolation.end", + "punctuation.definition.template-expression.begin", + "punctuation.definition.template-expression.end", + "punctuation.section.embedded.begin", + "punctuation.section.embedded.coffee", + "punctuation.section.embedded.end", + "punctuation.section.embedded.end source.php", + "punctuation.section.embedded.end source.ruby", + "punctuation.definition.variable.makefile" + ], + "settings": { + "foreground": "#f286c4" + } + }, + { + "name": "Keys (serializable languages)", + "scope": [ + "entity.name.function.target.makefile", + "entity.name.section.toml", + "entity.name.tag.yaml", + "variable.other.key.toml" + ], + "settings": { + "foreground": "#97e1f1" + } + }, + { + "name": "Dates / timestamps (serializable languages)", + "scope": ["constant.other.date", "constant.other.timestamp"], + "settings": { + "foreground": "#FFB86C" + } + }, + { + "name": "YAML aliases", + "scope": ["variable.other.alias.yaml"], + "settings": { + "fontStyle": "italic underline", + "foreground": "#62e884" + } + }, + { + "name": "Storage", + "scope": [ + "storage", + "meta.implementation storage.type.objc", + "meta.interface-or-protocol storage.type.objc", + "source.groovy storage.type.def" + ], + "settings": { + "fontStyle": "regular", + "foreground": "#f286c4" + } + }, + { + "name": "Types", + "scope": [ + "entity.name.type", + "keyword.primitive-datatypes.swift", + "keyword.type.cs", + "meta.protocol-list.objc", + "meta.return-type.objc", + "source.go storage.type", + "source.groovy storage.type", + "source.java storage.type", + "source.powershell entity.other.attribute-name", + "storage.class.std.rust", + "storage.type.attribute.swift", + "storage.type.c", + "storage.type.core.rust", + "storage.type.cs", + "storage.type.groovy", + "storage.type.objc", + "storage.type.php", + "storage.type.haskell", + "storage.type.ocaml" + ], + "settings": { + "fontStyle": "italic", + "foreground": "#97e1f1" + } + }, + { + "name": "Generics, templates, and mapped type declarations", + "scope": [ + "entity.name.type.type-parameter", + "meta.indexer.mappedtype.declaration entity.name.type", + "meta.type.parameters entity.name.type" + ], + "settings": { + "foreground": "#FFB86C" + } + }, + { + "name": "Modifiers", + "scope": ["storage.modifier"], + "settings": { + "foreground": "#f286c4" + } + }, + { + "name": "RegExp string", + "scope": [ + "string.regexp", + "constant.other.character-class.set.regexp", + "constant.character.escape.backslash.regexp" + ], + "settings": { + "foreground": "#e7ee98" + } + }, + { + "name": "Non-capture operators", + "scope": ["punctuation.definition.group.capture.regexp"], + "settings": { + "foreground": "#f286c4" + } + }, + { + "name": "RegExp start and end characters", + "scope": [ + "string.regexp punctuation.definition.string.begin", + "string.regexp punctuation.definition.string.end" + ], + "settings": { + "foreground": "#ee6666" + } + }, + { + "name": "Character group", + "scope": ["punctuation.definition.character-class.regexp"], + "settings": { + "foreground": "#97e1f1" + } + }, + { + "name": "Capture groups", + "scope": ["punctuation.definition.group.regexp"], + "settings": { + "foreground": "#FFB86C" + } + }, + { + "name": "Assertion operators", + "scope": [ + "punctuation.definition.group.assertion.regexp", + "keyword.operator.negation.regexp" + ], + "settings": { + "foreground": "#ee6666" + } + }, + { + "name": "Positive lookaheads", + "scope": ["meta.assertion.look-ahead.regexp"], + "settings": { + "foreground": "#62e884" + } + }, + { + "name": "Strings", + "scope": ["string"], + "settings": { + "foreground": "#e7ee98" + } + }, + { + "name": "String quotes (temporary vscode fix)", + "scope": ["punctuation.definition.string.begin", "punctuation.definition.string.end"], + "settings": { + "foreground": "#dee492" + } + }, + { + "name": "Property quotes (temporary vscode fix)", + "scope": [ + "punctuation.support.type.property-name.begin", + "punctuation.support.type.property-name.end" + ], + "settings": { + "foreground": "#97e2f2" + } + }, + { + "name": "Docstrings", + "scope": [ + "string.quoted.docstring.multi", + "string.quoted.docstring.multi.python punctuation.definition.string.begin", + "string.quoted.docstring.multi.python punctuation.definition.string.end", + "string.quoted.docstring.multi.python constant.character.escape" + ], + "settings": { + "foreground": "#7b7f8b" + } + }, + { + "name": "Variables and object properties", + "scope": [ + "variable", + "constant.other.key.perl", + "support.variable.property", + "variable.other.constant.js", + "variable.other.constant.ts", + "variable.other.constant.tsx" + ], + "settings": { + "foreground": "#f6f6f4" + } + }, + { + "name": "Destructuring / aliasing reference name (LHS)", + "scope": [ + "meta.import variable.other.readwrite", + "meta.variable.assignment.destructured.object.coffee variable" + ], + "settings": { + "fontStyle": "italic", + "foreground": "#FFB86C" + } + }, + { + "name": "Destructuring / aliasing variable name (RHS)", + "scope": [ + "meta.import variable.other.readwrite.alias", + "meta.export variable.other.readwrite.alias", + "meta.variable.assignment.destructured.object.coffee variable variable" + ], + "settings": { + "fontStyle": "normal", + "foreground": "#f6f6f4" + } + }, + { + "name": "GraphQL keys", + "scope": ["meta.selectionset.graphql variable"], + "settings": { + "foreground": "#e7ee98" + } + }, + { + "name": "GraphQL function arguments", + "scope": ["meta.selectionset.graphql meta.arguments variable"], + "settings": { + "foreground": "#f6f6f4" + } + }, + { + "name": "GraphQL fragment name (definition)", + "scope": ["entity.name.fragment.graphql", "variable.fragment.graphql"], + "settings": { + "foreground": "#97e1f1" + } + }, + { + "name": "Edge cases (foreground color resets)", + "scope": [ + "constant.other.symbol.hashkey.ruby", + "keyword.operator.dereference.java", + "keyword.operator.navigation.groovy", + "meta.scope.for-loop.shell punctuation.definition.string.begin", + "meta.scope.for-loop.shell punctuation.definition.string.end", + "meta.scope.for-loop.shell string", + "storage.modifier.import", + "punctuation.section.embedded.begin.tsx", + "punctuation.section.embedded.end.tsx", + "punctuation.section.embedded.begin.jsx", + "punctuation.section.embedded.end.jsx", + "punctuation.separator.list.comma.css", + "constant.language.empty-list.haskell" + ], + "settings": { + "foreground": "#f6f6f4" + } + }, + { + "name": "Shell variables prefixed with \"$\" (edge case)", + "scope": ["source.shell variable.other"], + "settings": { + "foreground": "#bf9eee" + } + }, + { + "name": "Powershell constants mistakenly scoped to `support`, rather than `constant` (edge)", + "scope": ["support.constant"], + "settings": { + "fontStyle": "normal", + "foreground": "#bf9eee" + } + }, + { + "name": "Makefile prerequisite names", + "scope": ["meta.scope.prerequisites.makefile"], + "settings": { + "foreground": "#e7ee98" + } + }, + { + "name": "SCSS attibute selector strings", + "scope": ["meta.attribute-selector.scss"], + "settings": { + "foreground": "#e7ee98" + } + }, + { + "name": "SCSS attribute selector brackets", + "scope": [ + "punctuation.definition.attribute-selector.end.bracket.square.scss", + "punctuation.definition.attribute-selector.begin.bracket.square.scss" + ], + "settings": { + "foreground": "#f6f6f4" + } + }, + { + "name": "Haskell Pragmas", + "scope": ["meta.preprocessor.haskell"], + "settings": { + "foreground": "#7b7f8b" + } + }, + { + "name": "Log file error", + "scope": ["log.error"], + "settings": { + "foreground": "#ee6666", + "fontStyle": "bold" + } + }, + { + "name": "Log file warning", + "scope": ["log.warning"], + "settings": { + "foreground": "#e7ee98", + "fontStyle": "bold" + } + } + ] +} diff --git a/docs/shiki/themes/dracula.json b/docs/shiki/themes/dracula.json new file mode 100644 index 00000000..b61df440 --- /dev/null +++ b/docs/shiki/themes/dracula.json @@ -0,0 +1,1049 @@ +{ + "$schema": "vscode://schemas/color-theme", + "name": "dracula", + "author": "Zeno Rocha", + "maintainers": ["Derek P Sifford <dereksifford@gmail.com>"], + "semanticClass": "theme.dracula", + "semanticHighlighting": true, + "dracula": { + "base": [ + "#282A36", + "#F8F8F2", + "#44475A", + "#6272A4", + "#8BE9FD", + "#50FA7B", + "#FFB86C", + "#FF79C6", + "#BD93F9", + "#FF5555", + "#F1FA8C" + ], + "ansi": [ + "#21222C", + "#FF5555", + "#50FA7B", + "#F1FA8C", + "#BD93F9", + "#FF79C6", + "#8BE9FD", + "#F8F8F2", + "#6272A4", + "#FF6E6E", + "#69FF94", + "#FFFFA5", + "#D6ACFF", + "#FF92DF", + "#A4FFFF", + "#FFFFFF" + ], + "brightOther": ["#E9F284", "#8BE9FE"], + "other": [ + "#44475A75", + "#FFFFFF1A", + "#FFFFFF", + "#44475A70", + "#424450", + "#343746", + "#21222C", + "#191A21" + ] + }, + "colors": { + "terminal.background": "#282A36", + "terminal.foreground": "#F8F8F2", + "terminal.ansiBrightBlack": "#6272A4", + "terminal.ansiBrightRed": "#FF6E6E", + "terminal.ansiBrightGreen": "#69FF94", + "terminal.ansiBrightYellow": "#FFFFA5", + "terminal.ansiBrightBlue": "#D6ACFF", + "terminal.ansiBrightMagenta": "#FF92DF", + "terminal.ansiBrightCyan": "#A4FFFF", + "terminal.ansiBrightWhite": "#FFFFFF", + "terminal.ansiBlack": "#21222C", + "terminal.ansiRed": "#FF5555", + "terminal.ansiGreen": "#50FA7B", + "terminal.ansiYellow": "#F1FA8C", + "terminal.ansiBlue": "#BD93F9", + "terminal.ansiMagenta": "#FF79C6", + "terminal.ansiCyan": "#8BE9FD", + "terminal.ansiWhite": "#F8F8F2", + "focusBorder": "#6272A4", + "foreground": "#F8F8F2", + "selection.background": "#BD93F9", + "errorForeground": "#FF5555", + "button.background": "#44475A", + "button.foreground": "#F8F8F2", + "button.secondaryBackground": "#282A36", + "button.secondaryForeground": "#F8F8F2", + "button.secondaryHoverBackground": "#343746", + "dropdown.background": "#343746", + "dropdown.border": "#191A21", + "dropdown.foreground": "#F8F8F2", + "input.background": "#282A36", + "input.foreground": "#F8F8F2", + "input.border": "#191A21", + "input.placeholderForeground": "#6272A4", + "inputOption.activeBorder": "#BD93F9", + "inputValidation.infoBorder": "#FF79C6", + "inputValidation.warningBorder": "#FFB86C", + "inputValidation.errorBorder": "#FF5555", + "badge.foreground": "#F8F8F2", + "badge.background": "#44475A", + "progressBar.background": "#FF79C6", + "list.activeSelectionBackground": "#44475A", + "list.activeSelectionForeground": "#F8F8F2", + "list.dropBackground": "#44475A", + "list.focusBackground": "#44475A75", + "list.highlightForeground": "#8BE9FD", + "list.hoverBackground": "#44475A75", + "list.inactiveSelectionBackground": "#44475A75", + "list.warningForeground": "#FFB86C", + "list.errorForeground": "#FF5555", + "activityBar.background": "#343746", + "activityBar.inactiveForeground": "#6272A4", + "activityBar.foreground": "#F8F8F2", + "activityBar.activeBorder": "#FF79C680", + "activityBar.activeBackground": "#BD93F910", + "activityBarBadge.background": "#FF79C6", + "activityBarBadge.foreground": "#F8F8F2", + "sideBar.background": "#21222C", + "sideBarTitle.foreground": "#F8F8F2", + "sideBarSectionHeader.background": "#282A36", + "sideBarSectionHeader.border": "#191A21", + "editorGroup.border": "#BD93F9", + "editorGroup.dropBackground": "#44475A70", + "editorGroupHeader.tabsBackground": "#191A21", + "tab.activeBackground": "#282A36", + "tab.activeForeground": "#F8F8F2", + "tab.border": "#191A21", + "tab.activeBorderTop": "#FF79C680", + "tab.inactiveBackground": "#21222C", + "tab.inactiveForeground": "#6272A4", + "editor.foreground": "#F8F8F2", + "editor.background": "#282A36", + "editorLineNumber.foreground": "#6272A4", + "editor.selectionBackground": "#44475A", + "editor.selectionHighlightBackground": "#424450", + "editor.foldBackground": "#21222C80", + "editor.wordHighlightBackground": "#8BE9FD50", + "editor.wordHighlightStrongBackground": "#50FA7B50", + "editor.findMatchBackground": "#FFB86C80", + "editor.findMatchHighlightBackground": "#FFFFFF40", + "editor.findRangeHighlightBackground": "#44475A75", + "editor.hoverHighlightBackground": "#8BE9FD50", + "editor.lineHighlightBorder": "#44475A", + "editorLink.activeForeground": "#8BE9FD", + "editor.rangeHighlightBackground": "#BD93F915", + "editor.snippetTabstopHighlightBackground": "#282A36", + "editor.snippetTabstopHighlightBorder": "#6272A4", + "editor.snippetFinalTabstopHighlightBackground": "#282A36", + "editor.snippetFinalTabstopHighlightBorder": "#50FA7B", + "editorWhitespace.foreground": "#FFFFFF1A", + "editorIndentGuide.background": "#FFFFFF1A", + "editorIndentGuide.activeBackground": "#FFFFFF45", + "editorRuler.foreground": "#FFFFFF1A", + "editorCodeLens.foreground": "#6272A4", + "editorBracketHighlight.foreground1": "#F8F8F2", + "editorBracketHighlight.foreground2": "#FF79C6", + "editorBracketHighlight.foreground3": "#8BE9FD", + "editorBracketHighlight.foreground4": "#50FA7B", + "editorBracketHighlight.foreground5": "#BD93F9", + "editorBracketHighlight.foreground6": "#FFB86C", + "editorBracketHighlight.unexpectedBracket.foreground": "#FF5555", + "editorOverviewRuler.border": "#191A21", + "editorOverviewRuler.selectionHighlightForeground": "#FFB86C", + "editorOverviewRuler.wordHighlightForeground": "#8BE9FD", + "editorOverviewRuler.wordHighlightStrongForeground": "#50FA7B", + "editorOverviewRuler.modifiedForeground": "#8BE9FD80", + "editorOverviewRuler.addedForeground": "#50FA7B80", + "editorOverviewRuler.deletedForeground": "#FF555580", + "editorOverviewRuler.errorForeground": "#FF555580", + "editorOverviewRuler.warningForeground": "#FFB86C80", + "editorOverviewRuler.infoForeground": "#8BE9FD80", + "editorError.foreground": "#FF5555", + "editorWarning.foreground": "#8BE9FD", + "editorGutter.modifiedBackground": "#8BE9FD80", + "editorGutter.addedBackground": "#50FA7B80", + "editorGutter.deletedBackground": "#FF555580", + "gitDecoration.modifiedResourceForeground": "#8BE9FD", + "gitDecoration.deletedResourceForeground": "#FF5555", + "gitDecoration.untrackedResourceForeground": "#50FA7B", + "gitDecoration.ignoredResourceForeground": "#6272A4", + "gitDecoration.conflictingResourceForeground": "#FFB86C", + "diffEditor.insertedTextBackground": "#50FA7B20", + "diffEditor.removedTextBackground": "#FF555550", + "inlineChat.regionHighlight": "#343746", + "editorWidget.background": "#21222C", + "editorSuggestWidget.background": "#21222C", + "editorSuggestWidget.foreground": "#F8F8F2", + "editorSuggestWidget.selectedBackground": "#44475A", + "editorHoverWidget.background": "#282A36", + "editorHoverWidget.border": "#6272A4", + "editorMarkerNavigation.background": "#21222C", + "peekView.border": "#44475A", + "peekViewEditor.background": "#282A36", + "peekViewEditor.matchHighlightBackground": "#F1FA8C80", + "peekViewResult.background": "#21222C", + "peekViewResult.fileForeground": "#F8F8F2", + "peekViewResult.lineForeground": "#F8F8F2", + "peekViewResult.matchHighlightBackground": "#F1FA8C80", + "peekViewResult.selectionBackground": "#44475A", + "peekViewResult.selectionForeground": "#F8F8F2", + "peekViewTitle.background": "#191A21", + "peekViewTitleDescription.foreground": "#6272A4", + "peekViewTitleLabel.foreground": "#F8F8F2", + "merge.currentHeaderBackground": "#50FA7B90", + "merge.incomingHeaderBackground": "#BD93F990", + "editorOverviewRuler.currentContentForeground": "#50FA7B", + "editorOverviewRuler.incomingContentForeground": "#BD93F9", + "panel.background": "#282A36", + "panel.border": "#BD93F9", + "panelTitle.activeBorder": "#FF79C6", + "panelTitle.activeForeground": "#F8F8F2", + "panelTitle.inactiveForeground": "#6272A4", + "statusBar.background": "#191A21", + "statusBar.foreground": "#F8F8F2", + "statusBar.debuggingBackground": "#FF5555", + "statusBar.debuggingForeground": "#191A21", + "statusBar.noFolderBackground": "#191A21", + "statusBar.noFolderForeground": "#F8F8F2", + "statusBarItem.prominentBackground": "#FF5555", + "statusBarItem.prominentHoverBackground": "#FFB86C", + "statusBarItem.remoteForeground": "#282A36", + "statusBarItem.remoteBackground": "#BD93F9", + "titleBar.activeBackground": "#21222C", + "titleBar.activeForeground": "#F8F8F2", + "titleBar.inactiveBackground": "#191A21", + "titleBar.inactiveForeground": "#6272A4", + "extensionButton.prominentForeground": "#F8F8F2", + "extensionButton.prominentBackground": "#50FA7B90", + "extensionButton.prominentHoverBackground": "#50FA7B60", + "pickerGroup.border": "#BD93F9", + "pickerGroup.foreground": "#8BE9FD", + "debugToolBar.background": "#21222C", + "walkThrough.embeddedEditorBackground": "#21222C", + "settings.headerForeground": "#F8F8F2", + "settings.modifiedItemIndicator": "#FFB86C", + "settings.dropdownBackground": "#21222C", + "settings.dropdownForeground": "#F8F8F2", + "settings.dropdownBorder": "#191A21", + "settings.checkboxBackground": "#21222C", + "settings.checkboxForeground": "#F8F8F2", + "settings.checkboxBorder": "#191A21", + "settings.textInputBackground": "#21222C", + "settings.textInputForeground": "#F8F8F2", + "settings.textInputBorder": "#191A21", + "settings.numberInputBackground": "#21222C", + "settings.numberInputForeground": "#F8F8F2", + "settings.numberInputBorder": "#191A21", + "breadcrumb.foreground": "#6272A4", + "breadcrumb.background": "#282A36", + "breadcrumb.focusForeground": "#F8F8F2", + "breadcrumb.activeSelectionForeground": "#F8F8F2", + "breadcrumbPicker.background": "#191A21", + "listFilterWidget.background": "#343746", + "listFilterWidget.outline": "#424450", + "listFilterWidget.noMatchesOutline": "#FF5555" + }, + "tokenColors": [ + { + "scope": ["emphasis"], + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": ["strong"], + "settings": { + "fontStyle": "bold" + } + }, + { + "scope": ["header"], + "settings": { + "foreground": "#BD93F9" + } + }, + { + "scope": ["meta.diff", "meta.diff.header"], + "settings": { + "foreground": "#6272A4" + } + }, + { + "scope": ["markup.inserted"], + "settings": { + "foreground": "#50FA7B" + } + }, + { + "scope": ["markup.deleted"], + "settings": { + "foreground": "#FF5555" + } + }, + { + "scope": ["markup.changed"], + "settings": { + "foreground": "#FFB86C" + } + }, + { + "scope": ["invalid"], + "settings": { + "foreground": "#FF5555", + "fontStyle": "underline italic" + } + }, + { + "scope": ["invalid.deprecated"], + "settings": { + "foreground": "#F8F8F2", + "fontStyle": "underline italic" + } + }, + { + "scope": ["entity.name.filename"], + "settings": { + "foreground": "#F1FA8C" + } + }, + { + "scope": ["markup.error"], + "settings": { + "foreground": "#FF5555" + } + }, + { + "name": "Underlined markup", + "scope": ["markup.underline"], + "settings": { + "fontStyle": "underline" + } + }, + { + "name": "Bold markup", + "scope": ["markup.bold"], + "settings": { + "fontStyle": "bold", + "foreground": "#FFB86C" + } + }, + { + "name": "Markup headings", + "scope": ["markup.heading"], + "settings": { + "fontStyle": "bold", + "foreground": "#BD93F9" + } + }, + { + "name": "Markup italic", + "scope": ["markup.italic"], + "settings": { + "foreground": "#F1FA8C", + "fontStyle": "italic" + } + }, + { + "name": "Bullets, lists (prose)", + "scope": [ + "beginning.punctuation.definition.list.markdown", + "beginning.punctuation.definition.quote.markdown", + "punctuation.definition.link.restructuredtext" + ], + "settings": { + "foreground": "#8BE9FD" + } + }, + { + "name": "Inline code (prose)", + "scope": ["markup.inline.raw", "markup.raw.restructuredtext"], + "settings": { + "foreground": "#50FA7B" + } + }, + { + "name": "Links (prose)", + "scope": ["markup.underline.link", "markup.underline.link.image"], + "settings": { + "foreground": "#8BE9FD" + } + }, + { + "name": "Link text, image alt text (prose)", + "scope": [ + "meta.link.reference.def.restructuredtext", + "punctuation.definition.directive.restructuredtext", + "string.other.link.description", + "string.other.link.title" + ], + "settings": { + "foreground": "#FF79C6" + } + }, + { + "name": "Blockquotes (prose)", + "scope": ["entity.name.directive.restructuredtext", "markup.quote"], + "settings": { + "foreground": "#F1FA8C", + "fontStyle": "italic" + } + }, + { + "name": "Horizontal rule (prose)", + "scope": ["meta.separator.markdown"], + "settings": { + "foreground": "#6272A4" + } + }, + { + "name": "Code blocks", + "scope": [ + "fenced_code.block.language", + "markup.raw.inner.restructuredtext", + "markup.fenced_code.block.markdown punctuation.definition.markdown" + ], + "settings": { + "foreground": "#50FA7B" + } + }, + { + "name": "Prose constants", + "scope": ["punctuation.definition.constant.restructuredtext"], + "settings": { + "foreground": "#BD93F9" + } + }, + { + "name": "Braces in markdown headings", + "scope": [ + "markup.heading.markdown punctuation.definition.string.begin", + "markup.heading.markdown punctuation.definition.string.end" + ], + "settings": { + "foreground": "#BD93F9" + } + }, + { + "name": "Braces in markdown paragraphs", + "scope": [ + "meta.paragraph.markdown punctuation.definition.string.begin", + "meta.paragraph.markdown punctuation.definition.string.end" + ], + "settings": { + "foreground": "#F8F8F2" + } + }, + { + "name": "Braces in markdown blockquotes", + "scope": [ + "markup.quote.markdown meta.paragraph.markdown punctuation.definition.string.begin", + "markup.quote.markdown meta.paragraph.markdown punctuation.definition.string.end" + ], + "settings": { + "foreground": "#F1FA8C" + } + }, + { + "name": "User-defined class names", + "scope": ["entity.name.type.class", "entity.name.class"], + "settings": { + "foreground": "#8BE9FD", + "fontStyle": "normal" + } + }, + { + "name": "this, super, self, etc.", + "scope": [ + "keyword.expressions-and-types.swift", + "keyword.other.this", + "variable.language", + "variable.language punctuation.definition.variable.php", + "variable.other.readwrite.instance.ruby", + "variable.parameter.function.language.special" + ], + "settings": { + "foreground": "#BD93F9", + "fontStyle": "italic" + } + }, + { + "name": "Inherited classes", + "scope": ["entity.other.inherited-class"], + "settings": { + "fontStyle": "italic", + "foreground": "#8BE9FD" + } + }, + { + "name": "Comments", + "scope": ["comment", "punctuation.definition.comment", "unused.comment", "wildcard.comment"], + "settings": { + "foreground": "#6272A4" + } + }, + { + "name": "JSDoc-style keywords", + "scope": [ + "comment keyword.codetag.notation", + "comment.block.documentation keyword", + "comment.block.documentation storage.type.class" + ], + "settings": { + "foreground": "#FF79C6" + } + }, + { + "name": "JSDoc-style types", + "scope": ["comment.block.documentation entity.name.type"], + "settings": { + "foreground": "#8BE9FD", + "fontStyle": "italic" + } + }, + { + "name": "JSDoc-style type brackets", + "scope": ["comment.block.documentation entity.name.type punctuation.definition.bracket"], + "settings": { + "foreground": "#8BE9FD" + } + }, + { + "name": "JSDoc-style comment parameters", + "scope": ["comment.block.documentation variable"], + "settings": { + "foreground": "#FFB86C", + "fontStyle": "italic" + } + }, + { + "name": "Constants", + "scope": ["constant", "variable.other.constant"], + "settings": { + "foreground": "#BD93F9" + } + }, + { + "name": "Constant escape sequences", + "scope": ["constant.character.escape", "constant.character.string.escape", "constant.regexp"], + "settings": { + "foreground": "#FF79C6" + } + }, + { + "name": "HTML tags", + "scope": ["entity.name.tag"], + "settings": { + "foreground": "#FF79C6" + } + }, + { + "name": "CSS attribute parent selectors ('&')", + "scope": ["entity.other.attribute-name.parent-selector"], + "settings": { + "foreground": "#FF79C6" + } + }, + { + "name": "HTML/CSS attribute names", + "scope": ["entity.other.attribute-name"], + "settings": { + "foreground": "#50FA7B", + "fontStyle": "italic" + } + }, + { + "name": "Function names", + "scope": [ + "entity.name.function", + "meta.function-call.object", + "meta.function-call.php", + "meta.function-call.static", + "meta.method-call.java meta.method", + "meta.method.groovy", + "support.function.any-method.lua", + "keyword.operator.function.infix" + ], + "settings": { + "foreground": "#50FA7B" + } + }, + { + "name": "Function parameters", + "scope": [ + "entity.name.variable.parameter", + "meta.at-rule.function variable", + "meta.at-rule.mixin variable", + "meta.function.arguments variable.other.php", + "meta.selectionset.graphql meta.arguments.graphql variable.arguments.graphql", + "variable.parameter" + ], + "settings": { + "fontStyle": "italic", + "foreground": "#FFB86C" + } + }, + { + "name": "Decorators", + "scope": [ + "meta.decorator variable.other.readwrite", + "meta.decorator variable.other.property" + ], + "settings": { + "foreground": "#50FA7B", + "fontStyle": "italic" + } + }, + { + "name": "Decorator Objects", + "scope": ["meta.decorator variable.other.object"], + "settings": { + "foreground": "#50FA7B" + } + }, + { + "name": "Keywords", + "scope": ["keyword", "punctuation.definition.keyword"], + "settings": { + "foreground": "#FF79C6" + } + }, + { + "name": "Keyword \"new\"", + "scope": ["keyword.control.new", "keyword.operator.new"], + "settings": { + "fontStyle": "bold" + } + }, + { + "name": "Generic selectors (CSS/SCSS/Less/Stylus)", + "scope": ["meta.selector"], + "settings": { + "foreground": "#FF79C6" + } + }, + { + "name": "Language Built-ins", + "scope": ["support"], + "settings": { + "fontStyle": "italic", + "foreground": "#8BE9FD" + } + }, + { + "name": "Built-in magic functions and constants", + "scope": ["support.function.magic", "support.variable", "variable.other.predefined"], + "settings": { + "fontStyle": "regular", + "foreground": "#BD93F9" + } + }, + { + "name": "Built-in functions / properties", + "scope": ["support.function", "support.type.property-name"], + "settings": { + "fontStyle": "regular" + } + }, + { + "name": "Separators (key/value, namespace, inheritance, pointer, hash, slice, etc)", + "scope": [ + "constant.other.symbol.hashkey punctuation.definition.constant.ruby", + "entity.other.attribute-name.placeholder punctuation", + "entity.other.attribute-name.pseudo-class punctuation", + "entity.other.attribute-name.pseudo-element punctuation", + "meta.group.double.toml", + "meta.group.toml", + "meta.object-binding-pattern-variable punctuation.destructuring", + "punctuation.colon.graphql", + "punctuation.definition.block.scalar.folded.yaml", + "punctuation.definition.block.scalar.literal.yaml", + "punctuation.definition.block.sequence.item.yaml", + "punctuation.definition.entity.other.inherited-class", + "punctuation.function.swift", + "punctuation.separator.dictionary.key-value", + "punctuation.separator.hash", + "punctuation.separator.inheritance", + "punctuation.separator.key-value", + "punctuation.separator.key-value.mapping.yaml", + "punctuation.separator.namespace", + "punctuation.separator.pointer-access", + "punctuation.separator.slice", + "string.unquoted.heredoc punctuation.definition.string", + "support.other.chomping-indicator.yaml", + "punctuation.separator.annotation" + ], + "settings": { + "foreground": "#FF79C6" + } + }, + { + "name": "Brackets, braces, parens, etc.", + "scope": [ + "keyword.operator.other.powershell", + "keyword.other.statement-separator.powershell", + "meta.brace.round", + "meta.function-call punctuation", + "punctuation.definition.arguments.begin", + "punctuation.definition.arguments.end", + "punctuation.definition.entity.begin", + "punctuation.definition.entity.end", + "punctuation.definition.tag.cs", + "punctuation.definition.type.begin", + "punctuation.definition.type.end", + "punctuation.section.scope.begin", + "punctuation.section.scope.end", + "punctuation.terminator.expression.php", + "storage.type.generic.java", + "string.template meta.brace", + "string.template punctuation.accessor" + ], + "settings": { + "foreground": "#F8F8F2" + } + }, + { + "name": "Variable interpolation operators", + "scope": [ + "meta.string-contents.quoted.double punctuation.definition.variable", + "punctuation.definition.interpolation.begin", + "punctuation.definition.interpolation.end", + "punctuation.definition.template-expression.begin", + "punctuation.definition.template-expression.end", + "punctuation.section.embedded.begin", + "punctuation.section.embedded.coffee", + "punctuation.section.embedded.end", + "punctuation.section.embedded.end source.php", + "punctuation.section.embedded.end source.ruby", + "punctuation.definition.variable.makefile" + ], + "settings": { + "foreground": "#FF79C6" + } + }, + { + "name": "Keys (serializable languages)", + "scope": [ + "entity.name.function.target.makefile", + "entity.name.section.toml", + "entity.name.tag.yaml", + "variable.other.key.toml" + ], + "settings": { + "foreground": "#8BE9FD" + } + }, + { + "name": "Dates / timestamps (serializable languages)", + "scope": ["constant.other.date", "constant.other.timestamp"], + "settings": { + "foreground": "#FFB86C" + } + }, + { + "name": "YAML aliases", + "scope": ["variable.other.alias.yaml"], + "settings": { + "fontStyle": "italic underline", + "foreground": "#50FA7B" + } + }, + { + "name": "Storage", + "scope": [ + "storage", + "meta.implementation storage.type.objc", + "meta.interface-or-protocol storage.type.objc", + "source.groovy storage.type.def" + ], + "settings": { + "fontStyle": "regular", + "foreground": "#FF79C6" + } + }, + { + "name": "Types", + "scope": [ + "entity.name.type", + "keyword.primitive-datatypes.swift", + "keyword.type.cs", + "meta.protocol-list.objc", + "meta.return-type.objc", + "source.go storage.type", + "source.groovy storage.type", + "source.java storage.type", + "source.powershell entity.other.attribute-name", + "storage.class.std.rust", + "storage.type.attribute.swift", + "storage.type.c", + "storage.type.core.rust", + "storage.type.cs", + "storage.type.groovy", + "storage.type.objc", + "storage.type.php", + "storage.type.haskell", + "storage.type.ocaml" + ], + "settings": { + "fontStyle": "italic", + "foreground": "#8BE9FD" + } + }, + { + "name": "Generics, templates, and mapped type declarations", + "scope": [ + "entity.name.type.type-parameter", + "meta.indexer.mappedtype.declaration entity.name.type", + "meta.type.parameters entity.name.type" + ], + "settings": { + "foreground": "#FFB86C" + } + }, + { + "name": "Modifiers", + "scope": ["storage.modifier"], + "settings": { + "foreground": "#FF79C6" + } + }, + { + "name": "RegExp string", + "scope": [ + "string.regexp", + "constant.other.character-class.set.regexp", + "constant.character.escape.backslash.regexp" + ], + "settings": { + "foreground": "#F1FA8C" + } + }, + { + "name": "Non-capture operators", + "scope": ["punctuation.definition.group.capture.regexp"], + "settings": { + "foreground": "#FF79C6" + } + }, + { + "name": "RegExp start and end characters", + "scope": [ + "string.regexp punctuation.definition.string.begin", + "string.regexp punctuation.definition.string.end" + ], + "settings": { + "foreground": "#FF5555" + } + }, + { + "name": "Character group", + "scope": ["punctuation.definition.character-class.regexp"], + "settings": { + "foreground": "#8BE9FD" + } + }, + { + "name": "Capture groups", + "scope": ["punctuation.definition.group.regexp"], + "settings": { + "foreground": "#FFB86C" + } + }, + { + "name": "Assertion operators", + "scope": [ + "punctuation.definition.group.assertion.regexp", + "keyword.operator.negation.regexp" + ], + "settings": { + "foreground": "#FF5555" + } + }, + { + "name": "Positive lookaheads", + "scope": ["meta.assertion.look-ahead.regexp"], + "settings": { + "foreground": "#50FA7B" + } + }, + { + "name": "Strings", + "scope": ["string"], + "settings": { + "foreground": "#F1FA8C" + } + }, + { + "name": "String quotes (temporary vscode fix)", + "scope": ["punctuation.definition.string.begin", "punctuation.definition.string.end"], + "settings": { + "foreground": "#E9F284" + } + }, + { + "name": "Property quotes (temporary vscode fix)", + "scope": [ + "punctuation.support.type.property-name.begin", + "punctuation.support.type.property-name.end" + ], + "settings": { + "foreground": "#8BE9FE" + } + }, + { + "name": "Docstrings", + "scope": [ + "string.quoted.docstring.multi", + "string.quoted.docstring.multi.python punctuation.definition.string.begin", + "string.quoted.docstring.multi.python punctuation.definition.string.end", + "string.quoted.docstring.multi.python constant.character.escape" + ], + "settings": { + "foreground": "#6272A4" + } + }, + { + "name": "Variables and object properties", + "scope": [ + "variable", + "constant.other.key.perl", + "support.variable.property", + "variable.other.constant.js", + "variable.other.constant.ts", + "variable.other.constant.tsx" + ], + "settings": { + "foreground": "#F8F8F2" + } + }, + { + "name": "Destructuring / aliasing reference name (LHS)", + "scope": [ + "meta.import variable.other.readwrite", + "meta.variable.assignment.destructured.object.coffee variable" + ], + "settings": { + "fontStyle": "italic", + "foreground": "#FFB86C" + } + }, + { + "name": "Destructuring / aliasing variable name (RHS)", + "scope": [ + "meta.import variable.other.readwrite.alias", + "meta.export variable.other.readwrite.alias", + "meta.variable.assignment.destructured.object.coffee variable variable" + ], + "settings": { + "fontStyle": "normal", + "foreground": "#F8F8F2" + } + }, + { + "name": "GraphQL keys", + "scope": ["meta.selectionset.graphql variable"], + "settings": { + "foreground": "#F1FA8C" + } + }, + { + "name": "GraphQL function arguments", + "scope": ["meta.selectionset.graphql meta.arguments variable"], + "settings": { + "foreground": "#F8F8F2" + } + }, + { + "name": "GraphQL fragment name (definition)", + "scope": ["entity.name.fragment.graphql", "variable.fragment.graphql"], + "settings": { + "foreground": "#8BE9FD" + } + }, + { + "name": "Edge cases (foreground color resets)", + "scope": [ + "constant.other.symbol.hashkey.ruby", + "keyword.operator.dereference.java", + "keyword.operator.navigation.groovy", + "meta.scope.for-loop.shell punctuation.definition.string.begin", + "meta.scope.for-loop.shell punctuation.definition.string.end", + "meta.scope.for-loop.shell string", + "storage.modifier.import", + "punctuation.section.embedded.begin.tsx", + "punctuation.section.embedded.end.tsx", + "punctuation.section.embedded.begin.jsx", + "punctuation.section.embedded.end.jsx", + "punctuation.separator.list.comma.css", + "constant.language.empty-list.haskell" + ], + "settings": { + "foreground": "#F8F8F2" + } + }, + { + "name": "Shell variables prefixed with \"$\" (edge case)", + "scope": ["source.shell variable.other"], + "settings": { + "foreground": "#BD93F9" + } + }, + { + "name": "Powershell constants mistakenly scoped to `support`, rather than `constant` (edge)", + "scope": ["support.constant"], + "settings": { + "fontStyle": "normal", + "foreground": "#BD93F9" + } + }, + { + "name": "Makefile prerequisite names", + "scope": ["meta.scope.prerequisites.makefile"], + "settings": { + "foreground": "#F1FA8C" + } + }, + { + "name": "SCSS attibute selector strings", + "scope": ["meta.attribute-selector.scss"], + "settings": { + "foreground": "#F1FA8C" + } + }, + { + "name": "SCSS attribute selector brackets", + "scope": [ + "punctuation.definition.attribute-selector.end.bracket.square.scss", + "punctuation.definition.attribute-selector.begin.bracket.square.scss" + ], + "settings": { + "foreground": "#F8F8F2" + } + }, + { + "name": "Haskell Pragmas", + "scope": ["meta.preprocessor.haskell"], + "settings": { + "foreground": "#6272A4" + } + }, + { + "name": "Log file error", + "scope": ["log.error"], + "settings": { + "foreground": "#FF5555", + "fontStyle": "bold" + } + }, + { + "name": "Log file warning", + "scope": ["log.warning"], + "settings": { + "foreground": "#F1FA8C", + "fontStyle": "bold" + } + } + ] +} diff --git a/docs/shiki/themes/github-dark-dimmed.json b/docs/shiki/themes/github-dark-dimmed.json new file mode 100644 index 00000000..9b702713 --- /dev/null +++ b/docs/shiki/themes/github-dark-dimmed.json @@ -0,0 +1,597 @@ +{ + "name": "github-dark-dimmed", + "colors": { + "focusBorder": "#316dca", + "foreground": "#adbac7", + "descriptionForeground": "#768390", + "errorForeground": "#e5534b", + "textLink.foreground": "#539bf5", + "textLink.activeForeground": "#539bf5", + "textBlockQuote.background": "#1c2128", + "textBlockQuote.border": "#444c56", + "textCodeBlock.background": "#636e7b66", + "textPreformat.foreground": "#768390", + "textSeparator.foreground": "#373e47", + "icon.foreground": "#768390", + "keybindingLabel.foreground": "#adbac7", + "button.background": "#347d39", + "button.foreground": "#ffffff", + "button.hoverBackground": "#46954a", + "button.secondaryBackground": "#3d444d", + "button.secondaryForeground": "#adbac7", + "button.secondaryHoverBackground": "#444c56", + "checkbox.background": "#2d333b", + "checkbox.border": "#444c56", + "dropdown.background": "#2d333b", + "dropdown.border": "#444c56", + "dropdown.foreground": "#adbac7", + "dropdown.listBackground": "#2d333b", + "input.background": "#22272e", + "input.border": "#444c56", + "input.foreground": "#adbac7", + "input.placeholderForeground": "#636e7b", + "badge.foreground": "#cdd9e5", + "badge.background": "#316dca", + "progressBar.background": "#316dca", + "titleBar.activeForeground": "#768390", + "titleBar.activeBackground": "#22272e", + "titleBar.inactiveForeground": "#768390", + "titleBar.inactiveBackground": "#1c2128", + "titleBar.border": "#444c56", + "activityBar.foreground": "#adbac7", + "activityBar.inactiveForeground": "#768390", + "activityBar.background": "#22272e", + "activityBarBadge.foreground": "#cdd9e5", + "activityBarBadge.background": "#316dca", + "activityBar.activeBorder": "#ec775c", + "activityBar.border": "#444c56", + "sideBar.foreground": "#adbac7", + "sideBar.background": "#1c2128", + "sideBar.border": "#444c56", + "sideBarTitle.foreground": "#adbac7", + "sideBarSectionHeader.foreground": "#adbac7", + "sideBarSectionHeader.background": "#1c2128", + "sideBarSectionHeader.border": "#444c56", + "list.hoverForeground": "#adbac7", + "list.inactiveSelectionForeground": "#adbac7", + "list.activeSelectionForeground": "#adbac7", + "list.hoverBackground": "#636e7b1a", + "list.inactiveSelectionBackground": "#636e7b66", + "list.activeSelectionBackground": "#636e7b66", + "list.focusForeground": "#adbac7", + "list.focusBackground": "#4184e426", + "list.inactiveFocusBackground": "#4184e426", + "list.highlightForeground": "#539bf5", + "tree.indentGuidesStroke": "#373e47", + "notificationCenterHeader.foreground": "#768390", + "notificationCenterHeader.background": "#2d333b", + "notifications.foreground": "#adbac7", + "notifications.background": "#2d333b", + "notifications.border": "#444c56", + "notificationsErrorIcon.foreground": "#e5534b", + "notificationsWarningIcon.foreground": "#c69026", + "notificationsInfoIcon.foreground": "#539bf5", + "pickerGroup.border": "#444c56", + "pickerGroup.foreground": "#768390", + "quickInput.background": "#2d333b", + "quickInput.foreground": "#adbac7", + "statusBar.foreground": "#768390", + "statusBar.background": "#22272e", + "statusBar.border": "#444c56", + "statusBar.focusBorder": "#316dca80", + "statusBar.noFolderBackground": "#22272e", + "statusBar.debuggingForeground": "#cdd9e5", + "statusBar.debuggingBackground": "#c93c37", + "statusBarItem.prominentBackground": "#636e7b66", + "statusBarItem.remoteForeground": "#adbac7", + "statusBarItem.remoteBackground": "#444c56", + "statusBarItem.hoverBackground": "#adbac714", + "statusBarItem.activeBackground": "#adbac71f", + "statusBarItem.focusBorder": "#316dca", + "editorGroupHeader.tabsBackground": "#1c2128", + "editorGroupHeader.tabsBorder": "#444c56", + "editorGroup.border": "#444c56", + "tab.activeForeground": "#adbac7", + "tab.inactiveForeground": "#768390", + "tab.inactiveBackground": "#1c2128", + "tab.activeBackground": "#22272e", + "tab.hoverBackground": "#22272e", + "tab.unfocusedHoverBackground": "#636e7b1a", + "tab.border": "#444c56", + "tab.unfocusedActiveBorderTop": "#444c56", + "tab.activeBorder": "#22272e", + "tab.unfocusedActiveBorder": "#22272e", + "tab.activeBorderTop": "#ec775c", + "breadcrumb.foreground": "#768390", + "breadcrumb.focusForeground": "#adbac7", + "breadcrumb.activeSelectionForeground": "#768390", + "breadcrumbPicker.background": "#2d333b", + "editor.foreground": "#adbac7", + "editor.background": "#22272e", + "editorWidget.background": "#2d333b", + "editor.foldBackground": "#636e7b1a", + "editor.lineHighlightBackground": "#636e7b1a", + "editorLineNumber.foreground": "#636e7b", + "editorLineNumber.activeForeground": "#adbac7", + "editorIndentGuide.background": "#adbac71f", + "editorIndentGuide.activeBackground": "#adbac73d", + "editorWhitespace.foreground": "#545d68", + "editorCursor.foreground": "#539bf5", + "editor.findMatchBackground": "#966600", + "editor.findMatchHighlightBackground": "#eac55f80", + "editor.linkedEditingBackground": "#539bf512", + "editor.selectionHighlightBackground": "#57ab5a40", + "editor.wordHighlightBackground": "#636e7b80", + "editor.wordHighlightBorder": "#636e7b99", + "editor.wordHighlightStrongBackground": "#636e7b4d", + "editor.wordHighlightStrongBorder": "#636e7b99", + "editorBracketMatch.background": "#57ab5a40", + "editorBracketMatch.border": "#57ab5a99", + "editorInlayHint.background": "#76839033", + "editorInlayHint.foreground": "#768390", + "editorInlayHint.typeBackground": "#76839033", + "editorInlayHint.typeForeground": "#768390", + "editorInlayHint.paramBackground": "#76839033", + "editorInlayHint.paramForeground": "#768390", + "editorGutter.modifiedBackground": "#ae7c1466", + "editorGutter.addedBackground": "#46954a66", + "editorGutter.deletedBackground": "#e5534b66", + "diffEditor.insertedLineBackground": "#347d3926", + "diffEditor.insertedTextBackground": "#57ab5a4d", + "diffEditor.removedLineBackground": "#c93c3726", + "diffEditor.removedTextBackground": "#f470674d", + "scrollbar.shadow": "#545d6833", + "scrollbarSlider.background": "#76839033", + "scrollbarSlider.hoverBackground": "#7683903d", + "scrollbarSlider.activeBackground": "#76839047", + "editorOverviewRuler.border": "#1c2128", + "minimapSlider.background": "#76839033", + "minimapSlider.hoverBackground": "#7683903d", + "minimapSlider.activeBackground": "#76839047", + "panel.background": "#1c2128", + "panel.border": "#444c56", + "panelTitle.activeBorder": "#ec775c", + "panelTitle.activeForeground": "#adbac7", + "panelTitle.inactiveForeground": "#768390", + "panelInput.border": "#444c56", + "debugIcon.breakpointForeground": "#e5534b", + "debugConsole.infoForeground": "#768390", + "debugConsole.warningForeground": "#c69026", + "debugConsole.errorForeground": "#ff938a", + "debugConsole.sourceForeground": "#daaa3f", + "debugConsoleInputIcon.foreground": "#b083f0", + "debugTokenExpression.name": "#6cb6ff", + "debugTokenExpression.value": "#96d0ff", + "debugTokenExpression.string": "#96d0ff", + "debugTokenExpression.boolean": "#6bc46d", + "debugTokenExpression.number": "#6bc46d", + "debugTokenExpression.error": "#ff938a", + "symbolIcon.arrayForeground": "#e0823d", + "symbolIcon.booleanForeground": "#539bf5", + "symbolIcon.classForeground": "#e0823d", + "symbolIcon.colorForeground": "#6cb6ff", + "symbolIcon.constructorForeground": "#dcbdfb", + "symbolIcon.enumeratorForeground": "#e0823d", + "symbolIcon.enumeratorMemberForeground": "#539bf5", + "symbolIcon.eventForeground": "#636e7b", + "symbolIcon.fieldForeground": "#e0823d", + "symbolIcon.fileForeground": "#c69026", + "symbolIcon.folderForeground": "#c69026", + "symbolIcon.functionForeground": "#b083f0", + "symbolIcon.interfaceForeground": "#e0823d", + "symbolIcon.keyForeground": "#539bf5", + "symbolIcon.keywordForeground": "#f47067", + "symbolIcon.methodForeground": "#b083f0", + "symbolIcon.moduleForeground": "#f47067", + "symbolIcon.namespaceForeground": "#f47067", + "symbolIcon.nullForeground": "#539bf5", + "symbolIcon.numberForeground": "#57ab5a", + "symbolIcon.objectForeground": "#e0823d", + "symbolIcon.operatorForeground": "#6cb6ff", + "symbolIcon.packageForeground": "#e0823d", + "symbolIcon.propertyForeground": "#e0823d", + "symbolIcon.referenceForeground": "#539bf5", + "symbolIcon.snippetForeground": "#539bf5", + "symbolIcon.stringForeground": "#6cb6ff", + "symbolIcon.structForeground": "#e0823d", + "symbolIcon.textForeground": "#6cb6ff", + "symbolIcon.typeParameterForeground": "#6cb6ff", + "symbolIcon.unitForeground": "#539bf5", + "symbolIcon.variableForeground": "#e0823d", + "symbolIcon.constantForeground": [ + "#b4f1b4", + "#8ddb8c", + "#6bc46d", + "#57ab5a", + "#46954a", + "#347d39", + "#2b6a30", + "#245829", + "#1b4721", + "#113417" + ], + "terminal.foreground": "#adbac7", + "terminal.ansiBlack": "#545d68", + "terminal.ansiRed": "#f47067", + "terminal.ansiGreen": "#57ab5a", + "terminal.ansiYellow": "#c69026", + "terminal.ansiBlue": "#539bf5", + "terminal.ansiMagenta": "#b083f0", + "terminal.ansiCyan": "#39c5cf", + "terminal.ansiWhite": "#909dab", + "terminal.ansiBrightBlack": "#636e7b", + "terminal.ansiBrightRed": "#ff938a", + "terminal.ansiBrightGreen": "#6bc46d", + "terminal.ansiBrightYellow": "#daaa3f", + "terminal.ansiBrightBlue": "#6cb6ff", + "terminal.ansiBrightMagenta": "#dcbdfb", + "terminal.ansiBrightCyan": "#56d4dd", + "terminal.ansiBrightWhite": "#cdd9e5", + "editorBracketHighlight.foreground1": "#6cb6ff", + "editorBracketHighlight.foreground2": "#6bc46d", + "editorBracketHighlight.foreground3": "#daaa3f", + "editorBracketHighlight.foreground4": "#ff938a", + "editorBracketHighlight.foreground5": "#fc8dc7", + "editorBracketHighlight.foreground6": "#dcbdfb", + "editorBracketHighlight.unexpectedBracket.foreground": "#768390", + "gitDecoration.addedResourceForeground": "#57ab5a", + "gitDecoration.modifiedResourceForeground": "#c69026", + "gitDecoration.deletedResourceForeground": "#e5534b", + "gitDecoration.untrackedResourceForeground": "#57ab5a", + "gitDecoration.ignoredResourceForeground": "#636e7b", + "gitDecoration.conflictingResourceForeground": "#cc6b2c", + "gitDecoration.submoduleResourceForeground": "#768390", + "debugToolBar.background": "#2d333b", + "editor.stackFrameHighlightBackground": "#ae7c1466", + "editor.focusedStackFrameHighlightBackground": "#46954a66", + "peekViewEditor.matchHighlightBackground": "#ae7c1466", + "peekViewResult.matchHighlightBackground": "#ae7c1466", + "peekViewEditor.background": "#636e7b1a", + "peekViewResult.background": "#22272e", + "settings.headerForeground": "#adbac7", + "settings.modifiedItemIndicator": "#ae7c1466", + "welcomePage.buttonBackground": "#373e47", + "welcomePage.buttonHoverBackground": "#444c56" + }, + "semanticHighlighting": true, + "tokenColors": [ + { + "scope": ["comment", "punctuation.definition.comment", "string.comment"], + "settings": { + "foreground": "#768390" + } + }, + { + "scope": ["constant.other.placeholder", "constant.character"], + "settings": { + "foreground": "#f47067" + } + }, + { + "scope": [ + "constant", + "entity.name.constant", + "variable.other.constant", + "variable.other.enummember", + "variable.language", + "entity" + ], + "settings": { + "foreground": "#6cb6ff" + } + }, + { + "scope": ["entity.name", "meta.export.default", "meta.definition.variable"], + "settings": { + "foreground": "#f69d50" + } + }, + { + "scope": [ + "variable.parameter.function", + "meta.jsx.children", + "meta.block", + "meta.tag.attributes", + "entity.name.constant", + "meta.object.member", + "meta.embedded.expression" + ], + "settings": { + "foreground": "#adbac7" + } + }, + { + "scope": "entity.name.function", + "settings": { + "foreground": "#dcbdfb" + } + }, + { + "scope": ["entity.name.tag", "support.class.component"], + "settings": { + "foreground": "#8ddb8c" + } + }, + { + "scope": "keyword", + "settings": { + "foreground": "#f47067" + } + }, + { + "scope": ["storage", "storage.type"], + "settings": { + "foreground": "#f47067" + } + }, + { + "scope": ["storage.modifier.package", "storage.modifier.import", "storage.type.java"], + "settings": { + "foreground": "#adbac7" + } + }, + { + "scope": ["string", "string punctuation.section.embedded source"], + "settings": { + "foreground": "#96d0ff" + } + }, + { + "scope": "support", + "settings": { + "foreground": "#6cb6ff" + } + }, + { + "scope": "meta.property-name", + "settings": { + "foreground": "#6cb6ff" + } + }, + { + "scope": "variable", + "settings": { + "foreground": "#f69d50" + } + }, + { + "scope": "variable.other", + "settings": { + "foreground": "#adbac7" + } + }, + { + "scope": "invalid.broken", + "settings": { + "fontStyle": "italic", + "foreground": "#ff938a" + } + }, + { + "scope": "invalid.deprecated", + "settings": { + "fontStyle": "italic", + "foreground": "#ff938a" + } + }, + { + "scope": "invalid.illegal", + "settings": { + "fontStyle": "italic", + "foreground": "#ff938a" + } + }, + { + "scope": "invalid.unimplemented", + "settings": { + "fontStyle": "italic", + "foreground": "#ff938a" + } + }, + { + "scope": "carriage-return", + "settings": { + "fontStyle": "italic underline", + "background": "#f47067", + "foreground": "#cdd9e5", + "content": "^M" + } + }, + { + "scope": "message.error", + "settings": { + "foreground": "#ff938a" + } + }, + { + "scope": "string variable", + "settings": { + "foreground": "#6cb6ff" + } + }, + { + "scope": ["source.regexp", "string.regexp"], + "settings": { + "foreground": "#96d0ff" + } + }, + { + "scope": [ + "string.regexp.character-class", + "string.regexp constant.character.escape", + "string.regexp source.ruby.embedded", + "string.regexp string.regexp.arbitrary-repitition" + ], + "settings": { + "foreground": "#96d0ff" + } + }, + { + "scope": "string.regexp constant.character.escape", + "settings": { + "fontStyle": "bold", + "foreground": "#8ddb8c" + } + }, + { + "scope": "support.constant", + "settings": { + "foreground": "#6cb6ff" + } + }, + { + "scope": "support.variable", + "settings": { + "foreground": "#6cb6ff" + } + }, + { + "scope": "support.type.property-name.json", + "settings": { + "foreground": "#8ddb8c" + } + }, + { + "scope": "meta.module-reference", + "settings": { + "foreground": "#6cb6ff" + } + }, + { + "scope": "punctuation.definition.list.begin.markdown", + "settings": { + "foreground": "#f69d50" + } + }, + { + "scope": ["markup.heading", "markup.heading entity.name"], + "settings": { + "fontStyle": "bold", + "foreground": "#6cb6ff" + } + }, + { + "scope": "markup.quote", + "settings": { + "foreground": "#8ddb8c" + } + }, + { + "scope": "markup.italic", + "settings": { + "fontStyle": "italic", + "foreground": "#adbac7" + } + }, + { + "scope": "markup.bold", + "settings": { + "fontStyle": "bold", + "foreground": "#adbac7" + } + }, + { + "scope": ["markup.underline"], + "settings": { + "fontStyle": "underline" + } + }, + { + "scope": ["markup.strikethrough"], + "settings": { + "fontStyle": "strikethrough" + } + }, + { + "scope": "markup.inline.raw", + "settings": { + "foreground": "#6cb6ff" + } + }, + { + "scope": ["markup.deleted", "meta.diff.header.from-file", "punctuation.definition.deleted"], + "settings": { + "background": "#5d0f12", + "foreground": "#ff938a" + } + }, + { + "scope": ["punctuation.section.embedded"], + "settings": { + "foreground": "#f47067" + } + }, + { + "scope": ["markup.inserted", "meta.diff.header.to-file", "punctuation.definition.inserted"], + "settings": { + "background": "#113417", + "foreground": "#8ddb8c" + } + }, + { + "scope": ["markup.changed", "punctuation.definition.changed"], + "settings": { + "background": "#682d0f", + "foreground": "#f69d50" + } + }, + { + "scope": ["markup.ignored", "markup.untracked"], + "settings": { + "foreground": "#2d333b", + "background": "#6cb6ff" + } + }, + { + "scope": "meta.diff.range", + "settings": { + "foreground": "#dcbdfb", + "fontStyle": "bold" + } + }, + { + "scope": "meta.diff.header", + "settings": { + "foreground": "#6cb6ff" + } + }, + { + "scope": "meta.separator", + "settings": { + "fontStyle": "bold", + "foreground": "#6cb6ff" + } + }, + { + "scope": "meta.output", + "settings": { + "foreground": "#6cb6ff" + } + }, + { + "scope": [ + "brackethighlighter.tag", + "brackethighlighter.curly", + "brackethighlighter.round", + "brackethighlighter.square", + "brackethighlighter.angle", + "brackethighlighter.quote" + ], + "settings": { + "foreground": "#768390" + } + }, + { + "scope": "brackethighlighter.unmatched", + "settings": { + "foreground": "#ff938a" + } + }, + { + "scope": ["constant.other.reference.link", "string.other.link"], + "settings": { + "foreground": "#96d0ff" + } + } + ] +} diff --git a/docs/shiki/themes/github-dark.json b/docs/shiki/themes/github-dark.json new file mode 100644 index 00000000..cccc0e64 --- /dev/null +++ b/docs/shiki/themes/github-dark.json @@ -0,0 +1,501 @@ +{ + "name": "github-dark", + "colors": { + "focusBorder": "#005cc5", + "foreground": "#d1d5da", + "descriptionForeground": "#959da5", + "errorForeground": "#f97583", + "textLink.foreground": "#79b8ff", + "textLink.activeForeground": "#c8e1ff", + "textBlockQuote.background": "#24292e", + "textBlockQuote.border": "#444d56", + "textCodeBlock.background": "#2f363d", + "textPreformat.foreground": "#d1d5da", + "textSeparator.foreground": "#586069", + "button.background": "#176f2c", + "button.foreground": "#dcffe4", + "button.hoverBackground": "#22863a", + "button.secondaryBackground": "#444d56", + "button.secondaryForeground": "#fff", + "button.secondaryHoverBackground": "#586069", + "checkbox.background": "#444d56", + "checkbox.border": "#1b1f23", + "dropdown.background": "#2f363d", + "dropdown.border": "#1b1f23", + "dropdown.foreground": "#e1e4e8", + "dropdown.listBackground": "#24292e", + "input.background": "#2f363d", + "input.border": "#1b1f23", + "input.foreground": "#e1e4e8", + "input.placeholderForeground": "#959da5", + "badge.foreground": "#c8e1ff", + "badge.background": "#044289", + "progressBar.background": "#0366d6", + "titleBar.activeForeground": "#e1e4e8", + "titleBar.activeBackground": "#24292e", + "titleBar.inactiveForeground": "#959da5", + "titleBar.inactiveBackground": "#1f2428", + "titleBar.border": "#1b1f23", + "activityBar.foreground": "#e1e4e8", + "activityBar.inactiveForeground": "#6a737d", + "activityBar.background": "#24292e", + "activityBarBadge.foreground": "#fff", + "activityBarBadge.background": "#0366d6", + "activityBar.activeBorder": "#f9826c", + "activityBar.border": "#1b1f23", + "sideBar.foreground": "#d1d5da", + "sideBar.background": "#1f2428", + "sideBar.border": "#1b1f23", + "sideBarTitle.foreground": "#e1e4e8", + "sideBarSectionHeader.foreground": "#e1e4e8", + "sideBarSectionHeader.background": "#1f2428", + "sideBarSectionHeader.border": "#1b1f23", + "list.hoverForeground": "#e1e4e8", + "list.inactiveSelectionForeground": "#e1e4e8", + "list.activeSelectionForeground": "#e1e4e8", + "list.hoverBackground": "#282e34", + "list.inactiveSelectionBackground": "#282e34", + "list.activeSelectionBackground": "#39414a", + "list.inactiveFocusBackground": "#1d2d3e", + "list.focusBackground": "#044289", + "tree.indentGuidesStroke": "#2f363d", + "notificationCenterHeader.foreground": "#959da5", + "notificationCenterHeader.background": "#24292e", + "notifications.foreground": "#e1e4e8", + "notifications.background": "#2f363d", + "notifications.border": "#1b1f23", + "notificationsErrorIcon.foreground": "#ea4a5a", + "notificationsWarningIcon.foreground": "#ffab70", + "notificationsInfoIcon.foreground": "#79b8ff", + "pickerGroup.border": "#444d56", + "pickerGroup.foreground": "#e1e4e8", + "quickInput.background": "#24292e", + "quickInput.foreground": "#e1e4e8", + "statusBar.foreground": "#d1d5da", + "statusBar.background": "#24292e", + "statusBar.border": "#1b1f23", + "statusBar.noFolderBackground": "#24292e", + "statusBar.debuggingBackground": "#931c06", + "statusBar.debuggingForeground": "#fff", + "statusBarItem.prominentBackground": "#282e34", + "statusBarItem.remoteForeground": "#d1d5da", + "statusBarItem.remoteBackground": "#24292e", + "editorGroupHeader.tabsBackground": "#1f2428", + "editorGroupHeader.tabsBorder": "#1b1f23", + "editorGroup.border": "#1b1f23", + "tab.activeForeground": "#e1e4e8", + "tab.inactiveForeground": "#959da5", + "tab.inactiveBackground": "#1f2428", + "tab.activeBackground": "#24292e", + "tab.hoverBackground": "#24292e", + "tab.unfocusedHoverBackground": "#24292e", + "tab.border": "#1b1f23", + "tab.unfocusedActiveBorderTop": "#1b1f23", + "tab.activeBorder": "#24292e", + "tab.unfocusedActiveBorder": "#24292e", + "tab.activeBorderTop": "#f9826c", + "breadcrumb.foreground": "#959da5", + "breadcrumb.focusForeground": "#e1e4e8", + "breadcrumb.activeSelectionForeground": "#d1d5da", + "breadcrumbPicker.background": "#2b3036", + "editor.foreground": "#e1e4e8", + "editor.background": "#24292e", + "editorWidget.background": "#1f2428", + "editor.foldBackground": "#58606915", + "editor.lineHighlightBackground": "#2b3036", + "editorLineNumber.foreground": "#444d56", + "editorLineNumber.activeForeground": "#e1e4e8", + "editorIndentGuide.background": "#2f363d", + "editorIndentGuide.activeBackground": "#444d56", + "editorWhitespace.foreground": "#444d56", + "editorCursor.foreground": "#c8e1ff", + "editorError.foreground": "#f97583", + "editorWarning.foreground": "#ffea7f", + "editor.findMatchBackground": "#ffd33d44", + "editor.findMatchHighlightBackground": "#ffd33d22", + "editor.linkedEditingBackground": "#3392FF22", + "editor.inactiveSelectionBackground": "#3392FF22", + "editor.selectionBackground": "#3392FF44", + "editor.selectionHighlightBackground": "#17E5E633", + "editor.selectionHighlightBorder": "#17E5E600", + "editor.wordHighlightBackground": "#17E5E600", + "editor.wordHighlightStrongBackground": "#17E5E600", + "editor.wordHighlightBorder": "#17E5E699", + "editor.wordHighlightStrongBorder": "#17E5E666", + "editorBracketMatch.background": "#17E5E650", + "editorBracketMatch.border": "#17E5E600", + "editorGutter.modifiedBackground": "#2188ff", + "editorGutter.addedBackground": "#28a745", + "editorGutter.deletedBackground": "#ea4a5a", + "diffEditor.insertedTextBackground": "#28a74530", + "diffEditor.removedTextBackground": "#d73a4930", + "scrollbar.shadow": "#0008", + "scrollbarSlider.background": "#6a737d33", + "scrollbarSlider.hoverBackground": "#6a737d44", + "scrollbarSlider.activeBackground": "#6a737d88", + "editorOverviewRuler.border": "#1b1f23", + "panel.background": "#1f2428", + "panel.border": "#1b1f23", + "panelTitle.activeBorder": "#f9826c", + "panelTitle.activeForeground": "#e1e4e8", + "panelTitle.inactiveForeground": "#959da5", + "panelInput.border": "#2f363d", + "terminal.foreground": "#d1d5da", + "terminal.tab.activeBorder": "#f9826c", + "terminalCursor.background": "#586069", + "terminalCursor.foreground": "#79b8ff", + "terminal.ansiBrightWhite": "#fafbfc", + "terminal.ansiWhite": "#d1d5da", + "terminal.ansiBrightBlack": "#959da5", + "terminal.ansiBlack": "#586069", + "terminal.ansiBlue": "#2188ff", + "terminal.ansiBrightBlue": "#79b8ff", + "terminal.ansiGreen": "#34d058", + "terminal.ansiBrightGreen": "#85e89d", + "terminal.ansiCyan": "#39c5cf", + "terminal.ansiBrightCyan": "#56d4dd", + "terminal.ansiRed": "#ea4a5a", + "terminal.ansiBrightRed": "#f97583", + "terminal.ansiMagenta": "#b392f0", + "terminal.ansiBrightMagenta": "#b392f0", + "terminal.ansiYellow": "#ffea7f", + "terminal.ansiBrightYellow": "#ffea7f", + "editorBracketHighlight.foreground1": "#79b8ff", + "editorBracketHighlight.foreground2": "#ffab70", + "editorBracketHighlight.foreground3": "#b392f0", + "editorBracketHighlight.foreground4": "#79b8ff", + "editorBracketHighlight.foreground5": "#ffab70", + "editorBracketHighlight.foreground6": "#b392f0", + "gitDecoration.addedResourceForeground": "#34d058", + "gitDecoration.modifiedResourceForeground": "#79b8ff", + "gitDecoration.deletedResourceForeground": "#ea4a5a", + "gitDecoration.untrackedResourceForeground": "#34d058", + "gitDecoration.ignoredResourceForeground": "#6a737d", + "gitDecoration.conflictingResourceForeground": "#ffab70", + "gitDecoration.submoduleResourceForeground": "#6a737d", + "debugToolBar.background": "#2b3036", + "editor.stackFrameHighlightBackground": "#C6902625", + "editor.focusedStackFrameHighlightBackground": "#2b6a3033", + "peekViewEditor.matchHighlightBackground": "#ffd33d33", + "peekViewResult.matchHighlightBackground": "#ffd33d33", + "peekViewEditor.background": "#1f242888", + "peekViewResult.background": "#1f2428", + "settings.headerForeground": "#e1e4e8", + "settings.modifiedItemIndicator": "#0366d6", + "welcomePage.buttonBackground": "#2f363d", + "welcomePage.buttonHoverBackground": "#444d56" + }, + "semanticHighlighting": true, + "tokenColors": [ + { + "scope": ["comment", "punctuation.definition.comment", "string.comment"], + "settings": { + "foreground": "#6a737d" + } + }, + { + "scope": [ + "constant", + "entity.name.constant", + "variable.other.constant", + "variable.other.enummember", + "variable.language" + ], + "settings": { + "foreground": "#79b8ff" + } + }, + { + "scope": ["entity", "entity.name"], + "settings": { + "foreground": "#b392f0" + } + }, + { + "scope": "variable.parameter.function", + "settings": { + "foreground": "#e1e4e8" + } + }, + { + "scope": "entity.name.tag", + "settings": { + "foreground": "#85e89d" + } + }, + { + "scope": "keyword", + "settings": { + "foreground": "#f97583" + } + }, + { + "scope": ["storage", "storage.type"], + "settings": { + "foreground": "#f97583" + } + }, + { + "scope": ["storage.modifier.package", "storage.modifier.import", "storage.type.java"], + "settings": { + "foreground": "#e1e4e8" + } + }, + { + "scope": [ + "string", + "punctuation.definition.string", + "string punctuation.section.embedded source" + ], + "settings": { + "foreground": "#9ecbff" + } + }, + { + "scope": "support", + "settings": { + "foreground": "#79b8ff" + } + }, + { + "scope": "meta.property-name", + "settings": { + "foreground": "#79b8ff" + } + }, + { + "scope": "variable", + "settings": { + "foreground": "#ffab70" + } + }, + { + "scope": "variable.other", + "settings": { + "foreground": "#e1e4e8" + } + }, + { + "scope": "invalid.broken", + "settings": { + "fontStyle": "italic", + "foreground": "#fdaeb7" + } + }, + { + "scope": "invalid.deprecated", + "settings": { + "fontStyle": "italic", + "foreground": "#fdaeb7" + } + }, + { + "scope": "invalid.illegal", + "settings": { + "fontStyle": "italic", + "foreground": "#fdaeb7" + } + }, + { + "scope": "invalid.unimplemented", + "settings": { + "fontStyle": "italic", + "foreground": "#fdaeb7" + } + }, + { + "scope": "carriage-return", + "settings": { + "fontStyle": "italic underline", + "background": "#f97583", + "foreground": "#24292e", + "content": "^M" + } + }, + { + "scope": "message.error", + "settings": { + "foreground": "#fdaeb7" + } + }, + { + "scope": "string variable", + "settings": { + "foreground": "#79b8ff" + } + }, + { + "scope": ["source.regexp", "string.regexp"], + "settings": { + "foreground": "#dbedff" + } + }, + { + "scope": [ + "string.regexp.character-class", + "string.regexp constant.character.escape", + "string.regexp source.ruby.embedded", + "string.regexp string.regexp.arbitrary-repitition" + ], + "settings": { + "foreground": "#dbedff" + } + }, + { + "scope": "string.regexp constant.character.escape", + "settings": { + "fontStyle": "bold", + "foreground": "#85e89d" + } + }, + { + "scope": "support.constant", + "settings": { + "foreground": "#79b8ff" + } + }, + { + "scope": "support.variable", + "settings": { + "foreground": "#79b8ff" + } + }, + { + "scope": "meta.module-reference", + "settings": { + "foreground": "#79b8ff" + } + }, + { + "scope": "punctuation.definition.list.begin.markdown", + "settings": { + "foreground": "#ffab70" + } + }, + { + "scope": ["markup.heading", "markup.heading entity.name"], + "settings": { + "fontStyle": "bold", + "foreground": "#79b8ff" + } + }, + { + "scope": "markup.quote", + "settings": { + "foreground": "#85e89d" + } + }, + { + "scope": "markup.italic", + "settings": { + "fontStyle": "italic", + "foreground": "#e1e4e8" + } + }, + { + "scope": "markup.bold", + "settings": { + "fontStyle": "bold", + "foreground": "#e1e4e8" + } + }, + { + "scope": ["markup.underline"], + "settings": { + "fontStyle": "underline" + } + }, + { + "scope": ["markup.strikethrough"], + "settings": { + "fontStyle": "strikethrough" + } + }, + { + "scope": "markup.inline.raw", + "settings": { + "foreground": "#79b8ff" + } + }, + { + "scope": ["markup.deleted", "meta.diff.header.from-file", "punctuation.definition.deleted"], + "settings": { + "background": "#86181d", + "foreground": "#fdaeb7" + } + }, + { + "scope": ["markup.inserted", "meta.diff.header.to-file", "punctuation.definition.inserted"], + "settings": { + "background": "#144620", + "foreground": "#85e89d" + } + }, + { + "scope": ["markup.changed", "punctuation.definition.changed"], + "settings": { + "background": "#c24e00", + "foreground": "#ffab70" + } + }, + { + "scope": ["markup.ignored", "markup.untracked"], + "settings": { + "foreground": "#2f363d", + "background": "#79b8ff" + } + }, + { + "scope": "meta.diff.range", + "settings": { + "foreground": "#b392f0", + "fontStyle": "bold" + } + }, + { + "scope": "meta.diff.header", + "settings": { + "foreground": "#79b8ff" + } + }, + { + "scope": "meta.separator", + "settings": { + "fontStyle": "bold", + "foreground": "#79b8ff" + } + }, + { + "scope": "meta.output", + "settings": { + "foreground": "#79b8ff" + } + }, + { + "scope": [ + "brackethighlighter.tag", + "brackethighlighter.curly", + "brackethighlighter.round", + "brackethighlighter.square", + "brackethighlighter.angle", + "brackethighlighter.quote" + ], + "settings": { + "foreground": "#d1d5da" + } + }, + { + "scope": "brackethighlighter.unmatched", + "settings": { + "foreground": "#fdaeb7" + } + }, + { + "scope": ["constant.other.reference.link", "string.other.link"], + "settings": { + "foreground": "#dbedff", + "fontStyle": "underline" + } + } + ] +} diff --git a/docs/shiki/themes/github-light.json b/docs/shiki/themes/github-light.json new file mode 100644 index 00000000..55a548ef --- /dev/null +++ b/docs/shiki/themes/github-light.json @@ -0,0 +1,497 @@ +{ + "name": "github-light", + "colors": { + "focusBorder": "#2188ff", + "foreground": "#444d56", + "descriptionForeground": "#6a737d", + "errorForeground": "#cb2431", + "textLink.foreground": "#0366d6", + "textLink.activeForeground": "#005cc5", + "textBlockQuote.background": "#fafbfc", + "textBlockQuote.border": "#e1e4e8", + "textCodeBlock.background": "#f6f8fa", + "textPreformat.foreground": "#586069", + "textSeparator.foreground": "#d1d5da", + "button.background": "#159739", + "button.foreground": "#fff", + "button.hoverBackground": "#138934", + "button.secondaryBackground": "#e1e4e8", + "button.secondaryForeground": "#1b1f23", + "button.secondaryHoverBackground": "#d1d5da", + "checkbox.background": "#fafbfc", + "checkbox.border": "#d1d5da", + "dropdown.background": "#fafbfc", + "dropdown.border": "#e1e4e8", + "dropdown.foreground": "#2f363d", + "dropdown.listBackground": "#fff", + "input.background": "#fafbfc", + "input.border": "#e1e4e8", + "input.foreground": "#2f363d", + "input.placeholderForeground": "#959da5", + "badge.foreground": "#005cc5", + "badge.background": "#dbedff", + "progressBar.background": "#2188ff", + "titleBar.activeForeground": "#2f363d", + "titleBar.activeBackground": "#fff", + "titleBar.inactiveForeground": "#6a737d", + "titleBar.inactiveBackground": "#f6f8fa", + "titleBar.border": "#e1e4e8", + "activityBar.foreground": "#2f363d", + "activityBar.inactiveForeground": "#959da5", + "activityBar.background": "#fff", + "activityBarBadge.foreground": "#fff", + "activityBarBadge.background": "#2188ff", + "activityBar.activeBorder": "#f9826c", + "activityBar.border": "#e1e4e8", + "sideBar.foreground": "#586069", + "sideBar.background": "#f6f8fa", + "sideBar.border": "#e1e4e8", + "sideBarTitle.foreground": "#2f363d", + "sideBarSectionHeader.foreground": "#2f363d", + "sideBarSectionHeader.background": "#f6f8fa", + "sideBarSectionHeader.border": "#e1e4e8", + "list.hoverForeground": "#2f363d", + "list.inactiveSelectionForeground": "#2f363d", + "list.activeSelectionForeground": "#2f363d", + "list.hoverBackground": "#ebf0f4", + "list.inactiveSelectionBackground": "#e8eaed", + "list.activeSelectionBackground": "#e2e5e9", + "list.inactiveFocusBackground": "#dbedff", + "list.focusBackground": "#cce5ff", + "tree.indentGuidesStroke": "#e1e4e8", + "notificationCenterHeader.foreground": "#6a737d", + "notificationCenterHeader.background": "#e1e4e8", + "notifications.foreground": "#2f363d", + "notifications.background": "#fafbfc", + "notifications.border": "#e1e4e8", + "notificationsErrorIcon.foreground": "#d73a49", + "notificationsWarningIcon.foreground": "#e36209", + "notificationsInfoIcon.foreground": "#005cc5", + "pickerGroup.border": "#e1e4e8", + "pickerGroup.foreground": "#2f363d", + "quickInput.background": "#fafbfc", + "quickInput.foreground": "#2f363d", + "statusBar.foreground": "#586069", + "statusBar.background": "#fff", + "statusBar.border": "#e1e4e8", + "statusBar.noFolderBackground": "#fff", + "statusBar.debuggingBackground": "#f9826c", + "statusBar.debuggingForeground": "#fff", + "statusBarItem.prominentBackground": "#e8eaed", + "statusBarItem.remoteForeground": "#586069", + "statusBarItem.remoteBackground": "#fff", + "editorGroupHeader.tabsBackground": "#f6f8fa", + "editorGroupHeader.tabsBorder": "#e1e4e8", + "editorGroup.border": "#e1e4e8", + "tab.activeForeground": "#2f363d", + "tab.inactiveForeground": "#6a737d", + "tab.inactiveBackground": "#f6f8fa", + "tab.activeBackground": "#fff", + "tab.hoverBackground": "#fff", + "tab.unfocusedHoverBackground": "#fff", + "tab.border": "#e1e4e8", + "tab.unfocusedActiveBorderTop": "#e1e4e8", + "tab.activeBorder": "#fff", + "tab.unfocusedActiveBorder": "#fff", + "tab.activeBorderTop": "#f9826c", + "breadcrumb.foreground": "#6a737d", + "breadcrumb.focusForeground": "#2f363d", + "breadcrumb.activeSelectionForeground": "#586069", + "breadcrumbPicker.background": "#fafbfc", + "editor.foreground": "#24292e", + "editor.background": "#fff", + "editorWidget.background": "#f6f8fa", + "editor.foldBackground": "#d1d5da11", + "editor.lineHighlightBackground": "#f6f8fa", + "editorLineNumber.foreground": "#1b1f234d", + "editorLineNumber.activeForeground": "#24292e", + "editorIndentGuide.background": "#eff2f6", + "editorIndentGuide.activeBackground": "#d7dbe0", + "editorWhitespace.foreground": "#d1d5da", + "editorCursor.foreground": "#044289", + "editorError.foreground": "#cb2431", + "editorWarning.foreground": "#f9c513", + "editor.findMatchBackground": "#ffdf5d", + "editor.findMatchHighlightBackground": "#ffdf5d66", + "editor.linkedEditingBackground": "#0366d611", + "editor.inactiveSelectionBackground": "#0366d611", + "editor.selectionBackground": "#0366d625", + "editor.selectionHighlightBackground": "#34d05840", + "editor.selectionHighlightBorder": "#34d05800", + "editor.wordHighlightBackground": "#34d05800", + "editor.wordHighlightStrongBackground": "#34d05800", + "editor.wordHighlightBorder": "#24943e99", + "editor.wordHighlightStrongBorder": "#24943e50", + "editorBracketMatch.background": "#34d05840", + "editorBracketMatch.border": "#34d05800", + "editorGutter.modifiedBackground": "#2188ff", + "editorGutter.addedBackground": "#28a745", + "editorGutter.deletedBackground": "#d73a49", + "diffEditor.insertedTextBackground": "#34d05822", + "diffEditor.removedTextBackground": "#d73a4922", + "scrollbar.shadow": "#6a737d33", + "scrollbarSlider.background": "#959da533", + "scrollbarSlider.hoverBackground": "#959da544", + "scrollbarSlider.activeBackground": "#959da588", + "editorOverviewRuler.border": "#fff", + "panel.background": "#f6f8fa", + "panel.border": "#e1e4e8", + "panelTitle.activeBorder": "#f9826c", + "panelTitle.activeForeground": "#2f363d", + "panelTitle.inactiveForeground": "#6a737d", + "panelInput.border": "#e1e4e8", + "terminal.foreground": "#586069", + "terminal.tab.activeBorder": "#f9826c", + "terminalCursor.background": "#d1d5da", + "terminalCursor.foreground": "#005cc5", + "terminal.ansiBrightWhite": "#d1d5da", + "terminal.ansiWhite": "#6a737d", + "terminal.ansiBrightBlack": "#959da5", + "terminal.ansiBlack": "#24292e", + "terminal.ansiBlue": "#0366d6", + "terminal.ansiBrightBlue": "#005cc5", + "terminal.ansiGreen": "#28a745", + "terminal.ansiBrightGreen": "#22863a", + "terminal.ansiCyan": "#1b7c83", + "terminal.ansiBrightCyan": "#3192aa", + "terminal.ansiRed": "#d73a49", + "terminal.ansiBrightRed": "#cb2431", + "terminal.ansiMagenta": "#5a32a3", + "terminal.ansiBrightMagenta": "#5a32a3", + "terminal.ansiYellow": "#dbab09", + "terminal.ansiBrightYellow": "#b08800", + "editorBracketHighlight.foreground1": "#005cc5", + "editorBracketHighlight.foreground2": "#e36209", + "editorBracketHighlight.foreground3": "#5a32a3", + "editorBracketHighlight.foreground4": "#005cc5", + "editorBracketHighlight.foreground5": "#e36209", + "editorBracketHighlight.foreground6": "#5a32a3", + "gitDecoration.addedResourceForeground": "#28a745", + "gitDecoration.modifiedResourceForeground": "#005cc5", + "gitDecoration.deletedResourceForeground": "#d73a49", + "gitDecoration.untrackedResourceForeground": "#28a745", + "gitDecoration.ignoredResourceForeground": "#959da5", + "gitDecoration.conflictingResourceForeground": "#e36209", + "gitDecoration.submoduleResourceForeground": "#959da5", + "debugToolBar.background": "#fff", + "editor.stackFrameHighlightBackground": "#ffd33d33", + "editor.focusedStackFrameHighlightBackground": "#28a74525", + "settings.headerForeground": "#2f363d", + "settings.modifiedItemIndicator": "#2188ff", + "welcomePage.buttonBackground": "#f6f8fa", + "welcomePage.buttonHoverBackground": "#e1e4e8" + }, + "semanticHighlighting": true, + "tokenColors": [ + { + "scope": ["comment", "punctuation.definition.comment", "string.comment"], + "settings": { + "foreground": "#6a737d" + } + }, + { + "scope": [ + "constant", + "entity.name.constant", + "variable.other.constant", + "variable.other.enummember", + "variable.language" + ], + "settings": { + "foreground": "#005cc5" + } + }, + { + "scope": ["entity", "entity.name"], + "settings": { + "foreground": "#6f42c1" + } + }, + { + "scope": "variable.parameter.function", + "settings": { + "foreground": "#24292e" + } + }, + { + "scope": "entity.name.tag", + "settings": { + "foreground": "#22863a" + } + }, + { + "scope": "keyword", + "settings": { + "foreground": "#d73a49" + } + }, + { + "scope": ["storage", "storage.type"], + "settings": { + "foreground": "#d73a49" + } + }, + { + "scope": ["storage.modifier.package", "storage.modifier.import", "storage.type.java"], + "settings": { + "foreground": "#24292e" + } + }, + { + "scope": [ + "string", + "punctuation.definition.string", + "string punctuation.section.embedded source" + ], + "settings": { + "foreground": "#032f62" + } + }, + { + "scope": "support", + "settings": { + "foreground": "#005cc5" + } + }, + { + "scope": "meta.property-name", + "settings": { + "foreground": "#005cc5" + } + }, + { + "scope": "variable", + "settings": { + "foreground": "#e36209" + } + }, + { + "scope": "variable.other", + "settings": { + "foreground": "#24292e" + } + }, + { + "scope": "invalid.broken", + "settings": { + "fontStyle": "italic", + "foreground": "#b31d28" + } + }, + { + "scope": "invalid.deprecated", + "settings": { + "fontStyle": "italic", + "foreground": "#b31d28" + } + }, + { + "scope": "invalid.illegal", + "settings": { + "fontStyle": "italic", + "foreground": "#b31d28" + } + }, + { + "scope": "invalid.unimplemented", + "settings": { + "fontStyle": "italic", + "foreground": "#b31d28" + } + }, + { + "scope": "carriage-return", + "settings": { + "fontStyle": "italic underline", + "background": "#d73a49", + "foreground": "#fafbfc", + "content": "^M" + } + }, + { + "scope": "message.error", + "settings": { + "foreground": "#b31d28" + } + }, + { + "scope": "string variable", + "settings": { + "foreground": "#005cc5" + } + }, + { + "scope": ["source.regexp", "string.regexp"], + "settings": { + "foreground": "#032f62" + } + }, + { + "scope": [ + "string.regexp.character-class", + "string.regexp constant.character.escape", + "string.regexp source.ruby.embedded", + "string.regexp string.regexp.arbitrary-repitition" + ], + "settings": { + "foreground": "#032f62" + } + }, + { + "scope": "string.regexp constant.character.escape", + "settings": { + "fontStyle": "bold", + "foreground": "#22863a" + } + }, + { + "scope": "support.constant", + "settings": { + "foreground": "#005cc5" + } + }, + { + "scope": "support.variable", + "settings": { + "foreground": "#005cc5" + } + }, + { + "scope": "meta.module-reference", + "settings": { + "foreground": "#005cc5" + } + }, + { + "scope": "punctuation.definition.list.begin.markdown", + "settings": { + "foreground": "#e36209" + } + }, + { + "scope": ["markup.heading", "markup.heading entity.name"], + "settings": { + "fontStyle": "bold", + "foreground": "#005cc5" + } + }, + { + "scope": "markup.quote", + "settings": { + "foreground": "#22863a" + } + }, + { + "scope": "markup.italic", + "settings": { + "fontStyle": "italic", + "foreground": "#24292e" + } + }, + { + "scope": "markup.bold", + "settings": { + "fontStyle": "bold", + "foreground": "#24292e" + } + }, + { + "scope": ["markup.underline"], + "settings": { + "fontStyle": "underline" + } + }, + { + "scope": ["markup.strikethrough"], + "settings": { + "fontStyle": "strikethrough" + } + }, + { + "scope": "markup.inline.raw", + "settings": { + "foreground": "#005cc5" + } + }, + { + "scope": ["markup.deleted", "meta.diff.header.from-file", "punctuation.definition.deleted"], + "settings": { + "background": "#ffeef0", + "foreground": "#b31d28" + } + }, + { + "scope": ["markup.inserted", "meta.diff.header.to-file", "punctuation.definition.inserted"], + "settings": { + "background": "#f0fff4", + "foreground": "#22863a" + } + }, + { + "scope": ["markup.changed", "punctuation.definition.changed"], + "settings": { + "background": "#ffebda", + "foreground": "#e36209" + } + }, + { + "scope": ["markup.ignored", "markup.untracked"], + "settings": { + "foreground": "#f6f8fa", + "background": "#005cc5" + } + }, + { + "scope": "meta.diff.range", + "settings": { + "foreground": "#6f42c1", + "fontStyle": "bold" + } + }, + { + "scope": "meta.diff.header", + "settings": { + "foreground": "#005cc5" + } + }, + { + "scope": "meta.separator", + "settings": { + "fontStyle": "bold", + "foreground": "#005cc5" + } + }, + { + "scope": "meta.output", + "settings": { + "foreground": "#005cc5" + } + }, + { + "scope": [ + "brackethighlighter.tag", + "brackethighlighter.curly", + "brackethighlighter.round", + "brackethighlighter.square", + "brackethighlighter.angle", + "brackethighlighter.quote" + ], + "settings": { + "foreground": "#586069" + } + }, + { + "scope": "brackethighlighter.unmatched", + "settings": { + "foreground": "#b31d28" + } + }, + { + "scope": ["constant.other.reference.link", "string.other.link"], + "settings": { + "foreground": "#032f62", + "fontStyle": "underline" + } + } + ] +} diff --git a/docs/shiki/themes/hc_light.json b/docs/shiki/themes/hc_light.json new file mode 100644 index 00000000..a4e40a00 --- /dev/null +++ b/docs/shiki/themes/hc_light.json @@ -0,0 +1,567 @@ +{ + "$schema": "vscode://schemas/color-theme", + "name": "hc_light", + "tokenColors": [ + { + "scope": ["meta.embedded", "source.groovy.embedded", "variable.legacy.builtin.python"], + "settings": { + "foreground": "#292929" + } + }, + { + "scope": "emphasis", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "strong", + "settings": { + "fontStyle": "bold" + } + }, + { + "scope": "meta.diff.header", + "settings": { + "foreground": "#062F4A" + } + }, + { + "scope": "comment", + "settings": { + "foreground": "#515151" + } + }, + { + "scope": "constant.language", + "settings": { + "foreground": "#0F4A85" + } + }, + { + "scope": [ + "constant.numeric", + "variable.other.enummember", + "keyword.operator.plus.exponent", + "keyword.operator.minus.exponent" + ], + "settings": { + "foreground": "#096d48" + } + }, + { + "scope": "constant.regexp", + "settings": { + "foreground": "#811F3F" + } + }, + { + "scope": "entity.name.tag", + "settings": { + "foreground": "#0F4A85" + } + }, + { + "scope": "entity.name.selector", + "settings": { + "foreground": "#0F4A85" + } + }, + { + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#264F78" + } + }, + { + "scope": [ + "entity.other.attribute-name.class.css", + "entity.other.attribute-name.class.mixin.css", + "entity.other.attribute-name.id.css", + "entity.other.attribute-name.parent-selector.css", + "entity.other.attribute-name.pseudo-class.css", + "entity.other.attribute-name.pseudo-element.css", + "source.css.less entity.other.attribute-name.id", + "entity.other.attribute-name.scss" + ], + "settings": { + "foreground": "#0F4A85" + } + }, + { + "scope": "invalid", + "settings": { + "foreground": "#B5200D" + } + }, + { + "scope": "markup.underline", + "settings": { + "fontStyle": "underline" + } + }, + { + "scope": "markup.bold", + "settings": { + "foreground": "#000080", + "fontStyle": "bold" + } + }, + { + "scope": "markup.heading", + "settings": { + "foreground": "#0F4A85", + "fontStyle": "bold" + } + }, + { + "scope": "markup.italic", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "markup.strikethrough", + "settings": { + "fontStyle": "strikethrough" + } + }, + { + "scope": "markup.inserted", + "settings": { + "foreground": "#096d48" + } + }, + { + "scope": "markup.deleted", + "settings": { + "foreground": "#5A5A5A" + } + }, + { + "scope": "markup.changed", + "settings": { + "foreground": "#0451A5" + } + }, + { + "scope": [ + "punctuation.definition.quote.begin.markdown", + "punctuation.definition.list.begin.markdown" + ], + "settings": { + "foreground": "#0451A5" + } + }, + { + "scope": "markup.inline.raw", + "settings": { + "foreground": "#0F4A85" + } + }, + { + "scope": "punctuation.definition.tag", + "settings": { + "foreground": "#0F4A85" + } + }, + { + "scope": ["meta.preprocessor", "entity.name.function.preprocessor"], + "settings": { + "foreground": "#0F4A85" + } + }, + { + "scope": "meta.preprocessor.string", + "settings": { + "foreground": "#b5200d" + } + }, + { + "scope": "meta.preprocessor.numeric", + "settings": { + "foreground": "#096d48" + } + }, + { + "scope": "meta.structure.dictionary.key.python", + "settings": { + "foreground": "#0451A5" + } + }, + { + "scope": "storage", + "settings": { + "foreground": "#0F4A85" + } + }, + { + "scope": "storage.type", + "settings": { + "foreground": "#0F4A85" + } + }, + { + "scope": ["storage.modifier", "keyword.operator.noexcept"], + "settings": { + "foreground": "#0F4A85" + } + }, + { + "scope": ["string", "meta.embedded.assembly"], + "settings": { + "foreground": "#0F4A85" + } + }, + { + "scope": [ + "string.comment.buffered.block.pug", + "string.quoted.pug", + "string.interpolated.pug", + "string.unquoted.plain.in.yaml", + "string.unquoted.plain.out.yaml", + "string.unquoted.block.yaml", + "string.quoted.single.yaml", + "string.quoted.double.xml", + "string.quoted.single.xml", + "string.unquoted.cdata.xml", + "string.quoted.double.html", + "string.quoted.single.html", + "string.unquoted.html", + "string.quoted.single.handlebars", + "string.quoted.double.handlebars" + ], + "settings": { + "foreground": "#0F4A85" + } + }, + { + "scope": "string.regexp", + "settings": { + "foreground": "#811F3F" + } + }, + { + "scope": [ + "punctuation.definition.template-expression.begin", + "punctuation.definition.template-expression.end", + "punctuation.section.embedded" + ], + "settings": { + "foreground": "#0F4A85" + } + }, + { + "scope": ["meta.template.expression"], + "settings": { + "foreground": "#000000" + } + }, + { + "scope": [ + "support.constant.property-value", + "support.constant.font-name", + "support.constant.media-type", + "support.constant.media", + "constant.other.color.rgb-value", + "constant.other.rgb-value", + "support.constant.color" + ], + "settings": { + "foreground": "#0451A5" + } + }, + { + "scope": [ + "support.type.vendored.property-name", + "support.type.property-name", + "variable.css", + "variable.scss", + "variable.other.less", + "source.coffee.embedded" + ], + "settings": { + "foreground": "#264F78" + } + }, + { + "scope": ["support.type.property-name.json"], + "settings": { + "foreground": "#0451A5" + } + }, + { + "scope": "keyword", + "settings": { + "foreground": "#0F4A85" + } + }, + { + "scope": "keyword.control", + "settings": { + "foreground": "#0F4A85" + } + }, + { + "scope": "keyword.operator", + "settings": { + "foreground": "#000000" + } + }, + { + "scope": [ + "keyword.operator.new", + "keyword.operator.expression", + "keyword.operator.cast", + "keyword.operator.sizeof", + "keyword.operator.alignof", + "keyword.operator.typeid", + "keyword.operator.alignas", + "keyword.operator.instanceof", + "keyword.operator.logical.python", + "keyword.operator.wordlike" + ], + "settings": { + "foreground": "#0F4A85" + } + }, + { + "scope": "keyword.other.unit", + "settings": { + "foreground": "#096d48" + } + }, + { + "scope": ["punctuation.section.embedded.begin.php", "punctuation.section.embedded.end.php"], + "settings": { + "foreground": "#0F4A85" + } + }, + { + "scope": "support.function.git-rebase", + "settings": { + "foreground": "#0451A5" + } + }, + { + "scope": "constant.sha.git-rebase", + "settings": { + "foreground": "#096d48" + } + }, + { + "scope": [ + "storage.modifier.import.java", + "variable.language.wildcard.java", + "storage.modifier.package.java" + ], + "settings": { + "foreground": "#000000" + } + }, + { + "scope": "variable.language", + "settings": { + "foreground": "#0F4A85" + } + }, + { + "scope": [ + "entity.name.function", + "support.function", + "support.constant.handlebars", + "source.powershell variable.other.member", + "entity.name.operator.custom-literal" + ], + "settings": { + "foreground": "#5e2cbc" + } + }, + { + "scope": [ + "support.class", + "support.type", + "entity.name.type", + "entity.name.namespace", + "entity.other.attribute", + "entity.name.scope-resolution", + "entity.name.class", + "storage.type.numeric.go", + "storage.type.byte.go", + "storage.type.boolean.go", + "storage.type.string.go", + "storage.type.uintptr.go", + "storage.type.error.go", + "storage.type.rune.go", + "storage.type.cs", + "storage.type.generic.cs", + "storage.type.modifier.cs", + "storage.type.variable.cs", + "storage.type.annotation.java", + "storage.type.generic.java", + "storage.type.java", + "storage.type.object.array.java", + "storage.type.primitive.array.java", + "storage.type.primitive.java", + "storage.type.token.java", + "storage.type.groovy", + "storage.type.annotation.groovy", + "storage.type.parameters.groovy", + "storage.type.generic.groovy", + "storage.type.object.array.groovy", + "storage.type.primitive.array.groovy", + "storage.type.primitive.groovy" + ], + "settings": { + "foreground": "#185E73" + } + }, + { + "scope": [ + "meta.type.cast.expr", + "meta.type.new.expr", + "support.constant.math", + "support.constant.dom", + "support.constant.json", + "entity.other.inherited-class" + ], + "settings": { + "foreground": "#185E73" + } + }, + { + "scope": [ + "keyword.control", + "source.cpp keyword.operator.new", + "source.cpp keyword.operator.delete", + "keyword.other.using", + "keyword.other.directive.using", + "keyword.other.operator", + "entity.name.operator" + ], + "settings": { + "foreground": "#b5200d" + } + }, + { + "scope": [ + "variable", + "meta.definition.variable.name", + "support.variable", + "entity.name.variable", + "constant.other.placeholder" + ], + "settings": { + "foreground": "#001080" + } + }, + { + "scope": ["variable.other.constant", "variable.other.enummember"], + "settings": { + "foreground": "#02715D" + } + }, + { + "scope": ["meta.object-literal.key"], + "settings": { + "foreground": "#001080" + } + }, + { + "scope": [ + "support.constant.property-value", + "support.constant.font-name", + "support.constant.media-type", + "support.constant.media", + "constant.other.color.rgb-value", + "constant.other.rgb-value", + "support.constant.color" + ], + "settings": { + "foreground": "#0451A5" + } + }, + { + "scope": [ + "punctuation.definition.group.regexp", + "punctuation.definition.group.assertion.regexp", + "punctuation.definition.character-class.regexp", + "punctuation.character.set.begin.regexp", + "punctuation.character.set.end.regexp", + "keyword.operator.negation.regexp", + "support.other.parenthesis.regexp" + ], + "settings": { + "foreground": "#D16969" + } + }, + { + "scope": [ + "constant.character.character-class.regexp", + "constant.other.character-class.set.regexp", + "constant.other.character-class.regexp", + "constant.character.set.regexp" + ], + "settings": { + "foreground": "#811F3F" + } + }, + { + "scope": "keyword.operator.quantifier.regexp", + "settings": { + "foreground": "#000000" + } + }, + { + "scope": ["keyword.operator.or.regexp", "keyword.control.anchor.regexp"], + "settings": { + "foreground": "#EE0000" + } + }, + { + "scope": "constant.character", + "settings": { + "foreground": "#0F4A85" + } + }, + { + "scope": "constant.character.escape", + "settings": { + "foreground": "#EE0000" + } + }, + { + "scope": "entity.name.label", + "settings": { + "foreground": "#000000" + } + }, + { + "scope": "token.info-token", + "settings": { + "foreground": "#316BCD" + } + }, + { + "scope": "token.warn-token", + "settings": { + "foreground": "#CD9731" + } + }, + { + "scope": "token.error-token", + "settings": { + "foreground": "#CD3131" + } + }, + { + "scope": "token.debug-token", + "settings": { + "foreground": "#800080" + } + } + ], + "colors": { + "actionBar.toggledBackground": "#dddddd" + } +} diff --git a/docs/shiki/themes/light-plus.json b/docs/shiki/themes/light-plus.json new file mode 100644 index 00000000..3da543c4 --- /dev/null +++ b/docs/shiki/themes/light-plus.json @@ -0,0 +1,604 @@ +{ + "$schema": "vscode://schemas/color-theme", + "name": "light-plus", + "tokenColors": [ + { + "settings": { + "foreground": "#000000" + } + }, + { + "scope": [ + "meta.embedded", + "source.groovy.embedded", + "string meta.image.inline.markdown", + "variable.legacy.builtin.python" + ], + "settings": { + "foreground": "#000000ff" + } + }, + { + "scope": "emphasis", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "strong", + "settings": { + "fontStyle": "bold" + } + }, + { + "scope": "meta.diff.header", + "settings": { + "foreground": "#000080" + } + }, + { + "scope": "comment", + "settings": { + "foreground": "#008000" + } + }, + { + "scope": "constant.language", + "settings": { + "foreground": "#0000ff" + } + }, + { + "scope": [ + "constant.numeric", + "variable.other.enummember", + "keyword.operator.plus.exponent", + "keyword.operator.minus.exponent" + ], + "settings": { + "foreground": "#098658" + } + }, + { + "scope": "constant.regexp", + "settings": { + "foreground": "#811f3f" + } + }, + { + "name": "css tags in selectors, xml tags", + "scope": "entity.name.tag", + "settings": { + "foreground": "#800000" + } + }, + { + "scope": "entity.name.selector", + "settings": { + "foreground": "#800000" + } + }, + { + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#e50000" + } + }, + { + "scope": [ + "entity.other.attribute-name.class.css", + "entity.other.attribute-name.class.mixin.css", + "entity.other.attribute-name.id.css", + "entity.other.attribute-name.parent-selector.css", + "entity.other.attribute-name.pseudo-class.css", + "entity.other.attribute-name.pseudo-element.css", + "source.css.less entity.other.attribute-name.id", + "entity.other.attribute-name.scss" + ], + "settings": { + "foreground": "#800000" + } + }, + { + "scope": "invalid", + "settings": { + "foreground": "#cd3131" + } + }, + { + "scope": "markup.underline", + "settings": { + "fontStyle": "underline" + } + }, + { + "scope": "markup.bold", + "settings": { + "fontStyle": "bold", + "foreground": "#000080" + } + }, + { + "scope": "markup.heading", + "settings": { + "fontStyle": "bold", + "foreground": "#800000" + } + }, + { + "scope": "markup.italic", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "markup.strikethrough", + "settings": { + "fontStyle": "strikethrough" + } + }, + { + "scope": "markup.inserted", + "settings": { + "foreground": "#098658" + } + }, + { + "scope": "markup.deleted", + "settings": { + "foreground": "#a31515" + } + }, + { + "scope": "markup.changed", + "settings": { + "foreground": "#0451a5" + } + }, + { + "scope": [ + "punctuation.definition.quote.begin.markdown", + "punctuation.definition.list.begin.markdown" + ], + "settings": { + "foreground": "#0451a5" + } + }, + { + "scope": "markup.inline.raw", + "settings": { + "foreground": "#800000" + } + }, + { + "name": "brackets of XML/HTML tags", + "scope": "punctuation.definition.tag", + "settings": { + "foreground": "#800000" + } + }, + { + "scope": ["meta.preprocessor", "entity.name.function.preprocessor"], + "settings": { + "foreground": "#0000ff" + } + }, + { + "scope": "meta.preprocessor.string", + "settings": { + "foreground": "#a31515" + } + }, + { + "scope": "meta.preprocessor.numeric", + "settings": { + "foreground": "#098658" + } + }, + { + "scope": "meta.structure.dictionary.key.python", + "settings": { + "foreground": "#0451a5" + } + }, + { + "scope": "storage", + "settings": { + "foreground": "#0000ff" + } + }, + { + "scope": "storage.type", + "settings": { + "foreground": "#0000ff" + } + }, + { + "scope": ["storage.modifier", "keyword.operator.noexcept"], + "settings": { + "foreground": "#0000ff" + } + }, + { + "scope": ["string", "meta.embedded.assembly"], + "settings": { + "foreground": "#a31515" + } + }, + { + "scope": [ + "string.comment.buffered.block.pug", + "string.quoted.pug", + "string.interpolated.pug", + "string.unquoted.plain.in.yaml", + "string.unquoted.plain.out.yaml", + "string.unquoted.block.yaml", + "string.quoted.single.yaml", + "string.quoted.double.xml", + "string.quoted.single.xml", + "string.unquoted.cdata.xml", + "string.quoted.double.html", + "string.quoted.single.html", + "string.unquoted.html", + "string.quoted.single.handlebars", + "string.quoted.double.handlebars" + ], + "settings": { + "foreground": "#0000ff" + } + }, + { + "scope": "string.regexp", + "settings": { + "foreground": "#811f3f" + } + }, + { + "name": "String interpolation", + "scope": [ + "punctuation.definition.template-expression.begin", + "punctuation.definition.template-expression.end", + "punctuation.section.embedded" + ], + "settings": { + "foreground": "#0000ff" + } + }, + { + "name": "Reset JavaScript string interpolation expression", + "scope": ["meta.template.expression"], + "settings": { + "foreground": "#000000" + } + }, + { + "scope": [ + "support.constant.property-value", + "support.constant.font-name", + "support.constant.media-type", + "support.constant.media", + "constant.other.color.rgb-value", + "constant.other.rgb-value", + "support.constant.color" + ], + "settings": { + "foreground": "#0451a5" + } + }, + { + "scope": [ + "support.type.vendored.property-name", + "support.type.property-name", + "variable.css", + "variable.scss", + "variable.other.less", + "source.coffee.embedded" + ], + "settings": { + "foreground": "#e50000" + } + }, + { + "scope": ["support.type.property-name.json"], + "settings": { + "foreground": "#0451a5" + } + }, + { + "scope": "keyword", + "settings": { + "foreground": "#0000ff" + } + }, + { + "scope": "keyword.control", + "settings": { + "foreground": "#0000ff" + } + }, + { + "scope": "keyword.operator", + "settings": { + "foreground": "#000000" + } + }, + { + "scope": [ + "keyword.operator.new", + "keyword.operator.expression", + "keyword.operator.cast", + "keyword.operator.sizeof", + "keyword.operator.alignof", + "keyword.operator.typeid", + "keyword.operator.alignas", + "keyword.operator.instanceof", + "keyword.operator.logical.python", + "keyword.operator.wordlike" + ], + "settings": { + "foreground": "#0000ff" + } + }, + { + "scope": "keyword.other.unit", + "settings": { + "foreground": "#098658" + } + }, + { + "scope": ["punctuation.section.embedded.begin.php", "punctuation.section.embedded.end.php"], + "settings": { + "foreground": "#800000" + } + }, + { + "scope": "support.function.git-rebase", + "settings": { + "foreground": "#0451a5" + } + }, + { + "scope": "constant.sha.git-rebase", + "settings": { + "foreground": "#098658" + } + }, + { + "name": "coloring of the Java import and package identifiers", + "scope": [ + "storage.modifier.import.java", + "variable.language.wildcard.java", + "storage.modifier.package.java" + ], + "settings": { + "foreground": "#000000" + } + }, + { + "name": "this.self", + "scope": "variable.language", + "settings": { + "foreground": "#0000ff" + } + }, + { + "name": "Function declarations", + "scope": [ + "entity.name.function", + "support.function", + "support.constant.handlebars", + "source.powershell variable.other.member", + "entity.name.operator.custom-literal" + ], + "settings": { + "foreground": "#795E26" + } + }, + { + "name": "Types declaration and references", + "scope": [ + "support.class", + "support.type", + "entity.name.type", + "entity.name.namespace", + "entity.other.attribute", + "entity.name.scope-resolution", + "entity.name.class", + "storage.type.numeric.go", + "storage.type.byte.go", + "storage.type.boolean.go", + "storage.type.string.go", + "storage.type.uintptr.go", + "storage.type.error.go", + "storage.type.rune.go", + "storage.type.cs", + "storage.type.generic.cs", + "storage.type.modifier.cs", + "storage.type.variable.cs", + "storage.type.annotation.java", + "storage.type.generic.java", + "storage.type.java", + "storage.type.object.array.java", + "storage.type.primitive.array.java", + "storage.type.primitive.java", + "storage.type.token.java", + "storage.type.groovy", + "storage.type.annotation.groovy", + "storage.type.parameters.groovy", + "storage.type.generic.groovy", + "storage.type.object.array.groovy", + "storage.type.primitive.array.groovy", + "storage.type.primitive.groovy" + ], + "settings": { + "foreground": "#267f99" + } + }, + { + "name": "Types declaration and references, TS grammar specific", + "scope": [ + "meta.type.cast.expr", + "meta.type.new.expr", + "support.constant.math", + "support.constant.dom", + "support.constant.json", + "entity.other.inherited-class" + ], + "settings": { + "foreground": "#267f99" + } + }, + { + "name": "Control flow / Special keywords", + "scope": [ + "keyword.control", + "source.cpp keyword.operator.new", + "source.cpp keyword.operator.delete", + "keyword.other.using", + "keyword.other.directive.using", + "keyword.other.operator", + "entity.name.operator" + ], + "settings": { + "foreground": "#AF00DB" + } + }, + { + "name": "Variable and parameter name", + "scope": [ + "variable", + "meta.definition.variable.name", + "support.variable", + "entity.name.variable", + "constant.other.placeholder" + ], + "settings": { + "foreground": "#001080" + } + }, + { + "name": "Constants and enums", + "scope": ["variable.other.constant", "variable.other.enummember"], + "settings": { + "foreground": "#0070C1" + } + }, + { + "name": "Object keys, TS grammar specific", + "scope": ["meta.object-literal.key"], + "settings": { + "foreground": "#001080" + } + }, + { + "name": "CSS property value", + "scope": [ + "support.constant.property-value", + "support.constant.font-name", + "support.constant.media-type", + "support.constant.media", + "constant.other.color.rgb-value", + "constant.other.rgb-value", + "support.constant.color" + ], + "settings": { + "foreground": "#0451a5" + } + }, + { + "name": "Regular expression groups", + "scope": [ + "punctuation.definition.group.regexp", + "punctuation.definition.group.assertion.regexp", + "punctuation.definition.character-class.regexp", + "punctuation.character.set.begin.regexp", + "punctuation.character.set.end.regexp", + "keyword.operator.negation.regexp", + "support.other.parenthesis.regexp" + ], + "settings": { + "foreground": "#d16969" + } + }, + { + "scope": [ + "constant.character.character-class.regexp", + "constant.other.character-class.set.regexp", + "constant.other.character-class.regexp", + "constant.character.set.regexp" + ], + "settings": { + "foreground": "#811f3f" + } + }, + { + "scope": "keyword.operator.quantifier.regexp", + "settings": { + "foreground": "#000000" + } + }, + { + "scope": ["keyword.operator.or.regexp", "keyword.control.anchor.regexp"], + "settings": { + "foreground": "#EE0000" + } + }, + { + "scope": ["constant.character", "constant.other.option"], + "settings": { + "foreground": "#0000ff" + } + }, + { + "scope": "constant.character.escape", + "settings": { + "foreground": "#EE0000" + } + }, + { + "scope": "entity.name.label", + "settings": { + "foreground": "#000000" + } + } + ], + "semanticHighlighting": true, + "semanticTokenColors": { + "newOperator": "#AF00DB", + "stringLiteral": "#a31515", + "customLiteral": "#795E26", + "numberLiteral": "#098658" + }, + "colors": { + "checkbox.border": "#919191", + "editor.background": "#FFFFFF", + "editor.foreground": "#000000", + "editor.inactiveSelectionBackground": "#E5EBF1", + "editorIndentGuide.background": "#D3D3D3", + "editorIndentGuide.activeBackground": "#939393", + "editor.selectionHighlightBackground": "#ADD6FF80", + "editorSuggestWidget.background": "#F3F3F3", + "activityBarBadge.background": "#007ACC", + "sideBarTitle.foreground": "#6F6F6F", + "list.hoverBackground": "#E8E8E8", + "menu.border": "#D4D4D4", + "input.placeholderForeground": "#767676", + "searchEditor.textInputBorder": "#CECECE", + "settings.textInputBorder": "#CECECE", + "settings.numberInputBorder": "#CECECE", + "statusBarItem.remoteForeground": "#FFF", + "statusBarItem.remoteBackground": "#16825D", + "ports.iconRunningProcessForeground": "#369432", + "sideBarSectionHeader.background": "#0000", + "sideBarSectionHeader.border": "#61616130", + "tab.lastPinnedBorder": "#61616130", + "notebook.cellBorderColor": "#E8E8E8", + "notebook.selectedCellBackground": "#c8ddf150", + "statusBarItem.errorBackground": "#c72e0f", + "list.activeSelectionIconForeground": "#FFF", + "list.focusAndSelectionOutline": "#90C2F9", + "terminal.inactiveSelectionBackground": "#E5EBF1", + "widget.border": "#d4d4d4", + "actionBar.toggledBackground": "#dddddd" + } +} diff --git a/docs/shiki/themes/material-theme-darker.json b/docs/shiki/themes/material-theme-darker.json new file mode 100644 index 00000000..16966b64 --- /dev/null +++ b/docs/shiki/themes/material-theme-darker.json @@ -0,0 +1,815 @@ +{ + "name": "material-theme-darker", + "semanticHighlighting": true, + "tokenColors": [ + { + "name": "Global settings", + "settings": { + "background": "#212121", + "foreground": "#EEFFFF" + } + }, + { + "name": "String", + "scope": "string", + "settings": { + "foreground": "#C3E88D" + } + }, + { + "name": "Punctuation", + "scope": "punctuation, constant.other.symbol", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "String Escape", + "scope": "constant.character.escape, text.html constant.character.entity.named", + "settings": { + "foreground": "#EEFFFF" + } + }, + { + "name": "Boolean", + "scope": "constant.language.boolean", + "settings": { + "foreground": "#ff9cac" + } + }, + { + "name": "Number", + "scope": "constant.numeric", + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "Variable", + "scope": "variable, variable.parameter, support.variable, variable.language, support.constant, meta.definition.variable entity.name.function, meta.function-call.arguments", + "settings": { + "foreground": "#EEFFFF" + } + }, + { + "name": "Other Keyword", + "scope": "keyword.other", + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "Keyword", + "scope": "keyword, modifier, variable.language.this, support.type.object, constant.language", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Function call", + "scope": "entity.name.function, support.function", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Storage", + "scope": "storage.type, storage.modifier, storage.control", + "settings": { + "foreground": "#C792EA" + } + }, + { + "name": "Modules", + "scope": "support.module, support.node", + "settings": { + "foreground": "#f07178", + "fontStyle": "italic" + } + }, + { + "name": "Type", + "scope": "support.type, constant.other.key", + "settings": { + "foreground": "#FFCB6B" + } + }, + { + "name": "Type", + "scope": "entity.name.type, entity.other.inherited-class, entity.other", + "settings": { + "foreground": "#FFCB6B" + } + }, + { + "name": "Comment", + "scope": "comment", + "settings": { + "foreground": "#545454", + "fontStyle": "italic" + } + }, + { + "name": "Comment", + "scope": "comment punctuation.definition.comment, string.quoted.docstring", + "settings": { + "foreground": "#545454", + "fontStyle": "italic" + } + }, + { + "name": "Punctuation", + "scope": "punctuation", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Class", + "scope": "entity.name, entity.name.type.class, support.type, support.class, meta.use", + "settings": { + "foreground": "#FFCB6B" + } + }, + { + "name": "Class variable", + "scope": "variable.object.property, meta.field.declaration entity.name.function", + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "Class method", + "scope": "meta.definition.method entity.name.function", + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "Function definition", + "scope": "meta.function entity.name.function", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Template expression", + "scope": "template.expression.begin, template.expression.end, punctuation.definition.template-expression.begin, punctuation.definition.template-expression.end", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Reset embedded/template expression colors", + "scope": "meta.embedded, source.groovy.embedded, meta.template.expression", + "settings": { + "foreground": "#EEFFFF" + } + }, + { + "name": "YAML key", + "scope": "entity.name.tag.yaml", + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "JSON key", + "scope": "meta.object-literal.key, meta.object-literal.key string, support.type.property-name.json", + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "JSON constant", + "scope": "constant.language.json", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "CSS class", + "scope": "entity.other.attribute-name.class", + "settings": { + "foreground": "#FFCB6B" + } + }, + { + "name": "CSS ID", + "scope": "entity.other.attribute-name.id", + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "CSS tag", + "scope": "source.css entity.name.tag", + "settings": { + "foreground": "#FFCB6B" + } + }, + { + "name": "CSS properties", + "scope": "support.type.property-name.css", + "settings": { + "foreground": "#B2CCD6" + } + }, + { + "name": "HTML tag outer", + "scope": "meta.tag, punctuation.definition.tag", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "HTML tag inner", + "scope": "entity.name.tag", + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "HTML tag attribute", + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#C792EA" + } + }, + { + "name": "HTML entities", + "scope": "punctuation.definition.entity.html", + "settings": { + "foreground": "#EEFFFF" + } + }, + { + "name": "Markdown heading", + "scope": "markup.heading", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Markdown link text", + "scope": "text.html.markdown meta.link.inline, meta.link.reference", + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "Markdown list item", + "scope": "text.html.markdown beginning.punctuation.definition.list", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Markdown italic", + "scope": "markup.italic", + "settings": { + "foreground": "#f07178", + "fontStyle": "italic" + } + }, + { + "name": "Markdown bold", + "scope": "markup.bold", + "settings": { + "foreground": "#f07178", + "fontStyle": "bold" + } + }, + { + "name": "Markdown bold italic", + "scope": "markup.bold markup.italic, markup.italic markup.bold", + "settings": { + "foreground": "#f07178", + "fontStyle": "italic bold" + } + }, + { + "name": "Markdown code block", + "scope": "markup.fenced_code.block.markdown punctuation.definition.markdown", + "settings": { + "foreground": "#C3E88D" + } + }, + { + "name": "Markdown inline code", + "scope": "markup.inline.raw.string.markdown", + "settings": { + "foreground": "#C3E88D" + } + }, + { + "name": "INI property name", + "scope": "keyword.other.definition.ini", + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "INI section title", + "scope": "entity.name.section.group-title.ini", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "C# class", + "scope": "source.cs meta.class.identifier storage.type", + "settings": { + "foreground": "#FFCB6B" + } + }, + { + "name": "C# class method", + "scope": "source.cs meta.method.identifier entity.name.function", + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "C# function call", + "scope": "source.cs meta.method-call meta.method, source.cs entity.name.function", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "C# type", + "scope": "source.cs storage.type", + "settings": { + "foreground": "#FFCB6B" + } + }, + { + "name": "C# return type", + "scope": "source.cs meta.method.return-type", + "settings": { + "foreground": "#FFCB6B" + } + }, + { + "name": "C# preprocessor", + "scope": "source.cs meta.preprocessor", + "settings": { + "foreground": "#545454" + } + }, + { + "name": "C# namespace", + "scope": "source.cs entity.name.type.namespace", + "settings": { + "foreground": "#EEFFFF" + } + }, + { + "name": "JSX Text", + "scope": "meta.jsx.children, SXNested", + "settings": { + "foreground": "#EEFFFF" + } + }, + { + "name": "JSX Components name", + "scope": "support.class.component", + "settings": { + "foreground": "#FFCB6B" + } + }, + { + "name": "C-related Block Level Variables", + "scope": "source.cpp meta.block variable.other", + "settings": { + "foreground": "#EEFFFF" + } + }, + { + "name": "Member Access Meta", + "scope": "source.python meta.member.access.python", + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "Function Call", + "scope": "source.python meta.function-call.python, meta.function-call.arguments", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Blocks", + "scope": "meta.block", + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "Function Call", + "scope": "entity.name.function.call", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Namespaces", + "scope": "source.php support.other.namespace, source.php meta.use support.class", + "settings": { + "foreground": "#EEFFFF" + } + }, + { + "name": "Constant keywords", + "scope": "constant.keyword", + "settings": { + "foreground": "#89DDFF", + "fontStyle": "italic" + } + }, + { + "name": "Entity name", + "scope": "entity.name.function", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Global settings", + "settings": { + "background": "#212121", + "foreground": "#EEFFFF" + } + }, + { + "name": "Markup Deleted", + "scope": ["markup.deleted"], + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "Markup Inserted", + "scope": ["markup.inserted"], + "settings": { + "foreground": "#C3E88D" + } + }, + { + "name": "Markup Underline", + "scope": ["markup.underline"], + "settings": { + "fontStyle": "underline" + } + }, + { + "name": "Keyword Control", + "scope": ["keyword.control"], + "settings": { + "foreground": "#89DDFF", + "fontStyle": "italic" + } + }, + { + "name": "Parameter", + "scope": ["variable.parameter"], + "settings": { + "fontStyle": "italic" + } + }, + { + "name": "Python - Self Parameter", + "scope": ["variable.parameter.function.language.special.self.python"], + "settings": { + "foreground": "#f07178", + "fontStyle": "italic" + } + }, + { + "name": "Python - Format Placeholder", + "scope": ["constant.character.format.placeholder.other.python"], + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "Markdown - Blockquote", + "scope": ["markup.quote"], + "settings": { + "fontStyle": "italic", + "foreground": "#89DDFF" + } + }, + { + "name": "Markdown - Fenced Language", + "scope": ["markup.fenced_code.block"], + "settings": { + "foreground": "#EEFFFF90" + } + }, + { + "name": "Markdown - Blockquote Punctuation", + "scope": ["punctuation.definition.quote"], + "settings": { + "foreground": "#ff9cac" + } + }, + { + "name": "JSON Key - Level 0", + "scope": ["meta.structure.dictionary.json support.type.property-name.json"], + "settings": { + "foreground": "#C792EA" + } + }, + { + "name": "JSON Key - Level 1", + "scope": [ + "meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#FFCB6B" + } + }, + { + "name": "JSON Key - Level 2", + "scope": [ + "meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "JSON Key - Level 3", + "scope": [ + "meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "JSON Key - Level 4", + "scope": [ + "meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#916b53" + } + }, + { + "name": "JSON Key - Level 5", + "scope": [ + "meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "JSON Key - Level 6", + "scope": [ + "meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#ff9cac" + } + }, + { + "name": "JSON Key - Level 7", + "scope": [ + "meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#C792EA" + } + }, + { + "name": "JSON Key - Level 8", + "scope": [ + "meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#C3E88D" + } + } + ], + "colors": { + "focusBorder": "#FFFFFF00", + "foreground": "#EEFFFF", + "button.background": "#61616150", + "button.foreground": "#ffffff", + "dropdown.background": "#212121", + "input.background": "#2B2B2B", + "inputOption.activeBorder": "#EEFFFF30", + "list.activeSelectionBackground": "#212121", + "list.activeSelectionForeground": "#80CBC4", + "list.dropBackground": "#f0717880", + "list.focusBackground": "#EEFFFF20", + "list.focusForeground": "#EEFFFF", + "list.highlightForeground": "#80CBC4", + "list.hoverBackground": "#212121", + "list.inactiveSelectionBackground": "#00000030", + "activityBar.background": "#212121", + "activityBar.dropBackground": "#f0717880", + "activityBarBadge.background": "#80CBC4", + "activityBarBadge.foreground": "#000000", + "badge.background": "#00000030", + "badge.foreground": "#545454", + "sideBar.background": "#212121", + "sideBarSectionHeader.background": "#212121", + "editorGroup.dropBackground": "#f0717880", + "editorGroup.focusedEmptyBorder": "#f07178", + "editorGroupHeader.tabsBackground": "#212121", + "tab.border": "#212121", + "tab.activeBorder": "#80CBC4", + "tab.inactiveBackground": "#212121", + "tab.activeModifiedBorder": "#616161", + "tab.inactiveModifiedBorder": "#904348", + "tab.unfocusedActiveModifiedBorder": "#c05a60", + "tab.unfocusedInactiveModifiedBorder": "#904348", + "editor.background": "#212121", + "editor.foreground": "#EEFFFF", + "editorLineNumber.foreground": "#424242", + "editorLineNumber.activeForeground": "#616161", + "editorCursor.foreground": "#FFCC00", + "editor.selectionBackground": "#61616150", + "editor.selectionHighlightBackground": "#FFCC0020", + "editor.wordHighlightBackground": "#ff9cac30", + "editor.wordHighlightStrongBackground": "#C3E88D30", + "editor.findMatchHighlight": "#EEFFFF", + "editor.findRangeHighlightBackground": "#FFCB6B30", + "editor.lineHighlightBorder": "#00000000", + "editor.rangeHighlightBackground": "#FFFFFF0d", + "editorWhitespace.foreground": "#EEFFFF40", + "editorWidget.background": "#212121", + "editorHoverWidget.background": "#212121", + "editorMarkerNavigation.background": "#EEFFFF05", + "peekView.border": "#00000030", + "peekViewEditor.background": "#EEFFFF05", + "peekViewResult.background": "#EEFFFF05", + "peekViewTitle.background": "#EEFFFF05", + "panel.background": "#212121", + "panel.border": "#21212160", + "panelTitle.activeBorder": "#80CBC4", + "panelTitle.inactiveForeground": "#EEFFFF", + "notebook.focusedCellBorder": "#80CBC4", + "notebook.inactiveFocusedCellBorder": "#80CBC450", + "statusBar.background": "#212121", + "statusBar.debuggingBackground": "#C792EA", + "statusBar.debuggingForeground": "#ffffff", + "statusBar.noFolderBackground": "#212121", + "statusBarItem.activeBackground": "#f0717880", + "statusBarItem.hoverBackground": "#54545420", + "statusBarItem.remoteBackground": "#80CBC4", + "statusBarItem.remoteForeground": "#000000", + "titleBar.activeBackground": "#212121", + "pickerGroup.border": "#FFFFFF1a", + "terminal.ansiBlack": "#000000", + "terminal.ansiBlue": "#82AAFF", + "terminal.ansiBrightBlack": "#545454", + "terminal.ansiBrightBlue": "#82AAFF", + "terminal.ansiBrightCyan": "#89DDFF", + "terminal.ansiBrightGreen": "#C3E88D", + "terminal.ansiBrightMagenta": "#C792EA", + "terminal.ansiBrightRed": "#f07178", + "terminal.ansiBrightWhite": "#ffffff", + "terminal.ansiBrightYellow": "#FFCB6B", + "terminal.ansiCyan": "#89DDFF", + "terminal.ansiGreen": "#C3E88D", + "terminal.ansiMagenta": "#C792EA", + "terminal.ansiRed": "#f07178", + "terminal.ansiWhite": "#ffffff", + "terminal.ansiYellow": "#FFCB6B", + "debugToolBar.background": "#212121", + "debugConsole.errorForeground": "#f07178", + "debugConsole.infoForeground": "#89DDFF", + "debugConsole.warningForeground": "#FFCB6B", + "selection.background": "#00000080", + "editorRuler.foreground": "#424242", + "widget.shadow": "#00000030", + "scrollbar.shadow": "#00000030", + "editorLink.activeForeground": "#EEFFFF", + "progressBar.background": "#80CBC4", + "pickerGroup.foreground": "#80CBC4", + "tree.indentGuidesStroke": "#424242", + "terminalCursor.foreground": "#FFCB6B", + "terminalCursor.background": "#000000", + "inputOption.activeBackground": "#EEFFFF30", + "textLink.foreground": "#80CBC4", + "textLink.activeForeground": "#EEFFFF", + "sideBar.foreground": "#616161", + "sideBar.border": "#21212160", + "sideBarTitle.foreground": "#EEFFFF", + "sideBarSectionHeader.border": "#21212160", + "panel.dropBackground": "#EEFFFF", + "sash.hoverBorder": "#80CBC450", + "panelTitle.activeForeground": "#FFFFFF", + "editor.lineHighlightBackground": "#00000050", + "editor.findMatchBackground": "#000000", + "editor.findMatchHighlightBackground": "#00000050", + "editor.findMatchBorder": "#80CBC4", + "editor.findMatchHighlightBorder": "#ffffff30", + "editorIndentGuide.background": "#42424270", + "editorIndentGuide.activeBackground": "#424242", + "editorGroup.border": "#00000030", + "editorGutter.modifiedBackground": "#82AAFF60", + "editorGutter.addedBackground": "#C3E88D60", + "editorGutter.deletedBackground": "#f0717860", + "activityBar.border": "#21212160", + "activityBar.foreground": "#EEFFFF", + "activityBar.activeBorder": "#80CBC4", + "extensionBadge.remoteForeground": "#EEFFFF", + "scrollbarSlider.background": "#EEFFFF20", + "scrollbarSlider.hoverBackground": "#EEFFFF10", + "scrollbarSlider.activeBackground": "#80CBC4", + "tab.unfocusedActiveBorder": "#545454", + "tab.activeForeground": "#FFFFFF", + "tab.inactiveForeground": "#616161", + "tab.activeBackground": "#212121", + "tab.unfocusedActiveForeground": "#EEFFFF", + "editorWidget.resizeBorder": "#80CBC4", + "editorWidget.border": "#80CBC4", + "statusBar.border": "#21212160", + "statusBar.foreground": "#616161", + "editorBracketMatch.border": "#FFCC0050", + "editorBracketMatch.background": "#212121", + "editorOverviewRuler.findMatchForeground": "#80CBC4", + "editorOverviewRuler.border": "#212121", + "editorOverviewRuler.errorForeground": "#f0717840", + "editorOverviewRuler.infoForeground": "#82AAFF40", + "editorOverviewRuler.warningForeground": "#FFCB6B40", + "editorInfo.foreground": "#82AAFF70", + "editorWarning.foreground": "#FFCB6B70", + "editorError.foreground": "#f0717870", + "editorHoverWidget.border": "#FFFFFF10", + "titleBar.activeForeground": "#EEFFFF", + "titleBar.inactiveBackground": "#212121", + "titleBar.inactiveForeground": "#616161", + "titleBar.border": "#21212160", + "input.foreground": "#EEFFFF", + "input.placeholderForeground": "#EEFFFF60", + "input.border": "#FFFFFF10", + "inputValidation.errorBorder": "#f07178", + "inputValidation.infoBorder": "#82AAFF", + "inputValidation.warningBorder": "#FFCB6B", + "dropdown.border": "#FFFFFF10", + "quickInput.background": "#212121", + "quickInput.foreground": "#616161", + "list.hoverForeground": "#FFFFFF", + "list.inactiveSelectionForeground": "#80CBC4", + "quickInput.list.focusBackground": "#EEFFFF20", + "editorSuggestWidget.background": "#212121", + "editorSuggestWidget.foreground": "#EEFFFF", + "editorSuggestWidget.highlightForeground": "#80CBC4", + "editorSuggestWidget.selectedBackground": "#00000050", + "editorSuggestWidget.border": "#FFFFFF10", + "diffEditor.insertedTextBackground": "#89DDFF20", + "diffEditor.removedTextBackground": "#ff9cac20", + "notifications.background": "#212121", + "notifications.foreground": "#EEFFFF", + "notificationLink.foreground": "#80CBC4", + "extensionButton.prominentBackground": "#C3E88D90", + "extensionButton.prominentHoverBackground": "#C3E88D", + "extensionButton.prominentForeground": "#EEFFFF", + "peekViewEditorGutter.background": "#EEFFFF05", + "peekViewTitleDescription.foreground": "#EEFFFF60", + "peekViewResult.matchHighlightBackground": "#61616150", + "peekViewEditor.matchHighlightBackground": "#61616150", + "peekViewResult.selectionBackground": "#61616170", + "gitDecoration.deletedResourceForeground": "#f0717890", + "gitDecoration.conflictingResourceForeground": "#FFCB6B90", + "gitDecoration.modifiedResourceForeground": "#82AAFF90", + "gitDecoration.untrackedResourceForeground": "#C3E88D90", + "gitDecoration.ignoredResourceForeground": "#61616190", + "breadcrumb.background": "#212121", + "breadcrumb.foreground": "#616161", + "breadcrumb.focusForeground": "#EEFFFF", + "breadcrumb.activeSelectionForeground": "#80CBC4", + "breadcrumbPicker.background": "#212121", + "menu.background": "#212121", + "menu.foreground": "#EEFFFF", + "menu.selectionBackground": "#00000050", + "menu.selectionForeground": "#80CBC4", + "menu.selectionBorder": "#00000030", + "menu.separatorBackground": "#EEFFFF", + "menubar.selectionBackground": "#00000030", + "menubar.selectionForeground": "#80CBC4", + "menubar.selectionBorder": "#00000030", + "settings.dropdownForeground": "#EEFFFF", + "settings.dropdownBackground": "#212121", + "settings.numberInputForeground": "#EEFFFF", + "settings.numberInputBackground": "#212121", + "settings.textInputForeground": "#EEFFFF", + "settings.textInputBackground": "#212121", + "settings.headerForeground": "#80CBC4", + "settings.modifiedItemIndicator": "#80CBC4", + "settings.checkboxBackground": "#212121", + "settings.checkboxForeground": "#EEFFFF", + "listFilterWidget.background": "#00000030", + "listFilterWidget.outline": "#00000030", + "listFilterWidget.noMatchesOutline": "#00000030" + } +} diff --git a/docs/shiki/themes/material-theme-lighter.json b/docs/shiki/themes/material-theme-lighter.json new file mode 100644 index 00000000..e168cc35 --- /dev/null +++ b/docs/shiki/themes/material-theme-lighter.json @@ -0,0 +1,815 @@ +{ + "name": "material-theme-lighter", + "semanticHighlighting": true, + "tokenColors": [ + { + "name": "Global settings", + "settings": { + "background": "#FAFAFA", + "foreground": "#90A4AE" + } + }, + { + "name": "String", + "scope": "string", + "settings": { + "foreground": "#91B859" + } + }, + { + "name": "Punctuation", + "scope": "punctuation, constant.other.symbol", + "settings": { + "foreground": "#39ADB5" + } + }, + { + "name": "String Escape", + "scope": "constant.character.escape, text.html constant.character.entity.named", + "settings": { + "foreground": "#90A4AE" + } + }, + { + "name": "Boolean", + "scope": "constant.language.boolean", + "settings": { + "foreground": "#FF5370" + } + }, + { + "name": "Number", + "scope": "constant.numeric", + "settings": { + "foreground": "#F76D47" + } + }, + { + "name": "Variable", + "scope": "variable, variable.parameter, support.variable, variable.language, support.constant, meta.definition.variable entity.name.function, meta.function-call.arguments", + "settings": { + "foreground": "#90A4AE" + } + }, + { + "name": "Other Keyword", + "scope": "keyword.other", + "settings": { + "foreground": "#F76D47" + } + }, + { + "name": "Keyword", + "scope": "keyword, modifier, variable.language.this, support.type.object, constant.language", + "settings": { + "foreground": "#39ADB5" + } + }, + { + "name": "Function call", + "scope": "entity.name.function, support.function", + "settings": { + "foreground": "#6182B8" + } + }, + { + "name": "Storage", + "scope": "storage.type, storage.modifier, storage.control", + "settings": { + "foreground": "#9C3EDA" + } + }, + { + "name": "Modules", + "scope": "support.module, support.node", + "settings": { + "foreground": "#E53935", + "fontStyle": "italic" + } + }, + { + "name": "Type", + "scope": "support.type, constant.other.key", + "settings": { + "foreground": "#E2931D" + } + }, + { + "name": "Type", + "scope": "entity.name.type, entity.other.inherited-class, entity.other", + "settings": { + "foreground": "#E2931D" + } + }, + { + "name": "Comment", + "scope": "comment", + "settings": { + "foreground": "#90A4AE", + "fontStyle": "italic" + } + }, + { + "name": "Comment", + "scope": "comment punctuation.definition.comment, string.quoted.docstring", + "settings": { + "foreground": "#90A4AE", + "fontStyle": "italic" + } + }, + { + "name": "Punctuation", + "scope": "punctuation", + "settings": { + "foreground": "#39ADB5" + } + }, + { + "name": "Class", + "scope": "entity.name, entity.name.type.class, support.type, support.class, meta.use", + "settings": { + "foreground": "#E2931D" + } + }, + { + "name": "Class variable", + "scope": "variable.object.property, meta.field.declaration entity.name.function", + "settings": { + "foreground": "#E53935" + } + }, + { + "name": "Class method", + "scope": "meta.definition.method entity.name.function", + "settings": { + "foreground": "#E53935" + } + }, + { + "name": "Function definition", + "scope": "meta.function entity.name.function", + "settings": { + "foreground": "#6182B8" + } + }, + { + "name": "Template expression", + "scope": "template.expression.begin, template.expression.end, punctuation.definition.template-expression.begin, punctuation.definition.template-expression.end", + "settings": { + "foreground": "#39ADB5" + } + }, + { + "name": "Reset embedded/template expression colors", + "scope": "meta.embedded, source.groovy.embedded, meta.template.expression", + "settings": { + "foreground": "#90A4AE" + } + }, + { + "name": "YAML key", + "scope": "entity.name.tag.yaml", + "settings": { + "foreground": "#E53935" + } + }, + { + "name": "JSON key", + "scope": "meta.object-literal.key, meta.object-literal.key string, support.type.property-name.json", + "settings": { + "foreground": "#E53935" + } + }, + { + "name": "JSON constant", + "scope": "constant.language.json", + "settings": { + "foreground": "#39ADB5" + } + }, + { + "name": "CSS class", + "scope": "entity.other.attribute-name.class", + "settings": { + "foreground": "#E2931D" + } + }, + { + "name": "CSS ID", + "scope": "entity.other.attribute-name.id", + "settings": { + "foreground": "#F76D47" + } + }, + { + "name": "CSS tag", + "scope": "source.css entity.name.tag", + "settings": { + "foreground": "#E2931D" + } + }, + { + "name": "CSS properties", + "scope": "support.type.property-name.css", + "settings": { + "foreground": "#8796B0" + } + }, + { + "name": "HTML tag outer", + "scope": "meta.tag, punctuation.definition.tag", + "settings": { + "foreground": "#39ADB5" + } + }, + { + "name": "HTML tag inner", + "scope": "entity.name.tag", + "settings": { + "foreground": "#E53935" + } + }, + { + "name": "HTML tag attribute", + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#9C3EDA" + } + }, + { + "name": "HTML entities", + "scope": "punctuation.definition.entity.html", + "settings": { + "foreground": "#90A4AE" + } + }, + { + "name": "Markdown heading", + "scope": "markup.heading", + "settings": { + "foreground": "#39ADB5" + } + }, + { + "name": "Markdown link text", + "scope": "text.html.markdown meta.link.inline, meta.link.reference", + "settings": { + "foreground": "#E53935" + } + }, + { + "name": "Markdown list item", + "scope": "text.html.markdown beginning.punctuation.definition.list", + "settings": { + "foreground": "#39ADB5" + } + }, + { + "name": "Markdown italic", + "scope": "markup.italic", + "settings": { + "foreground": "#E53935", + "fontStyle": "italic" + } + }, + { + "name": "Markdown bold", + "scope": "markup.bold", + "settings": { + "foreground": "#E53935", + "fontStyle": "bold" + } + }, + { + "name": "Markdown bold italic", + "scope": "markup.bold markup.italic, markup.italic markup.bold", + "settings": { + "foreground": "#E53935", + "fontStyle": "italic bold" + } + }, + { + "name": "Markdown code block", + "scope": "markup.fenced_code.block.markdown punctuation.definition.markdown", + "settings": { + "foreground": "#91B859" + } + }, + { + "name": "Markdown inline code", + "scope": "markup.inline.raw.string.markdown", + "settings": { + "foreground": "#91B859" + } + }, + { + "name": "INI property name", + "scope": "keyword.other.definition.ini", + "settings": { + "foreground": "#E53935" + } + }, + { + "name": "INI section title", + "scope": "entity.name.section.group-title.ini", + "settings": { + "foreground": "#39ADB5" + } + }, + { + "name": "C# class", + "scope": "source.cs meta.class.identifier storage.type", + "settings": { + "foreground": "#E2931D" + } + }, + { + "name": "C# class method", + "scope": "source.cs meta.method.identifier entity.name.function", + "settings": { + "foreground": "#E53935" + } + }, + { + "name": "C# function call", + "scope": "source.cs meta.method-call meta.method, source.cs entity.name.function", + "settings": { + "foreground": "#6182B8" + } + }, + { + "name": "C# type", + "scope": "source.cs storage.type", + "settings": { + "foreground": "#E2931D" + } + }, + { + "name": "C# return type", + "scope": "source.cs meta.method.return-type", + "settings": { + "foreground": "#E2931D" + } + }, + { + "name": "C# preprocessor", + "scope": "source.cs meta.preprocessor", + "settings": { + "foreground": "#90A4AE" + } + }, + { + "name": "C# namespace", + "scope": "source.cs entity.name.type.namespace", + "settings": { + "foreground": "#90A4AE" + } + }, + { + "name": "JSX Text", + "scope": "meta.jsx.children, SXNested", + "settings": { + "foreground": "#90A4AE" + } + }, + { + "name": "JSX Components name", + "scope": "support.class.component", + "settings": { + "foreground": "#E2931D" + } + }, + { + "name": "C-related Block Level Variables", + "scope": "source.cpp meta.block variable.other", + "settings": { + "foreground": "#90A4AE" + } + }, + { + "name": "Member Access Meta", + "scope": "source.python meta.member.access.python", + "settings": { + "foreground": "#E53935" + } + }, + { + "name": "Function Call", + "scope": "source.python meta.function-call.python, meta.function-call.arguments", + "settings": { + "foreground": "#6182B8" + } + }, + { + "name": "Blocks", + "scope": "meta.block", + "settings": { + "foreground": "#E53935" + } + }, + { + "name": "Function Call", + "scope": "entity.name.function.call", + "settings": { + "foreground": "#6182B8" + } + }, + { + "name": "Namespaces", + "scope": "source.php support.other.namespace, source.php meta.use support.class", + "settings": { + "foreground": "#90A4AE" + } + }, + { + "name": "Constant keywords", + "scope": "constant.keyword", + "settings": { + "foreground": "#39ADB5", + "fontStyle": "italic" + } + }, + { + "name": "Entity name", + "scope": "entity.name.function", + "settings": { + "foreground": "#6182B8" + } + }, + { + "name": "Global settings", + "settings": { + "background": "#FAFAFA", + "foreground": "#90A4AE" + } + }, + { + "name": "Markup Deleted", + "scope": ["markup.deleted"], + "settings": { + "foreground": "#E53935" + } + }, + { + "name": "Markup Inserted", + "scope": ["markup.inserted"], + "settings": { + "foreground": "#91B859" + } + }, + { + "name": "Markup Underline", + "scope": ["markup.underline"], + "settings": { + "fontStyle": "underline" + } + }, + { + "name": "Keyword Control", + "scope": ["keyword.control"], + "settings": { + "foreground": "#39ADB5", + "fontStyle": "italic" + } + }, + { + "name": "Parameter", + "scope": ["variable.parameter"], + "settings": { + "fontStyle": "italic" + } + }, + { + "name": "Python - Self Parameter", + "scope": ["variable.parameter.function.language.special.self.python"], + "settings": { + "foreground": "#E53935", + "fontStyle": "italic" + } + }, + { + "name": "Python - Format Placeholder", + "scope": ["constant.character.format.placeholder.other.python"], + "settings": { + "foreground": "#F76D47" + } + }, + { + "name": "Markdown - Blockquote", + "scope": ["markup.quote"], + "settings": { + "fontStyle": "italic", + "foreground": "#39ADB5" + } + }, + { + "name": "Markdown - Fenced Language", + "scope": ["markup.fenced_code.block"], + "settings": { + "foreground": "#90A4AE90" + } + }, + { + "name": "Markdown - Blockquote Punctuation", + "scope": ["punctuation.definition.quote"], + "settings": { + "foreground": "#FF5370" + } + }, + { + "name": "JSON Key - Level 0", + "scope": ["meta.structure.dictionary.json support.type.property-name.json"], + "settings": { + "foreground": "#9C3EDA" + } + }, + { + "name": "JSON Key - Level 1", + "scope": [ + "meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#E2931D" + } + }, + { + "name": "JSON Key - Level 2", + "scope": [ + "meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#F76D47" + } + }, + { + "name": "JSON Key - Level 3", + "scope": [ + "meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#E53935" + } + }, + { + "name": "JSON Key - Level 4", + "scope": [ + "meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#916b53" + } + }, + { + "name": "JSON Key - Level 5", + "scope": [ + "meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#6182B8" + } + }, + { + "name": "JSON Key - Level 6", + "scope": [ + "meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#FF5370" + } + }, + { + "name": "JSON Key - Level 7", + "scope": [ + "meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#9C3EDA" + } + }, + { + "name": "JSON Key - Level 8", + "scope": [ + "meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#91B859" + } + } + ], + "colors": { + "focusBorder": "#FFFFFF00", + "foreground": "#90A4AE", + "button.background": "#80CBC440", + "button.foreground": "#ffffff", + "dropdown.background": "#FAFAFA", + "input.background": "#EEEEEE", + "inputOption.activeBorder": "#90A4AE30", + "list.activeSelectionBackground": "#FAFAFA", + "list.activeSelectionForeground": "#80CBC4", + "list.dropBackground": "#E5393580", + "list.focusBackground": "#90A4AE20", + "list.focusForeground": "#90A4AE", + "list.highlightForeground": "#80CBC4", + "list.hoverBackground": "#FAFAFA", + "list.inactiveSelectionBackground": "#CCD7DA50", + "activityBar.background": "#FAFAFA", + "activityBar.dropBackground": "#E5393580", + "activityBarBadge.background": "#80CBC4", + "activityBarBadge.foreground": "#000000", + "badge.background": "#CCD7DA30", + "badge.foreground": "#90A4AE", + "sideBar.background": "#FAFAFA", + "sideBarSectionHeader.background": "#FAFAFA", + "editorGroup.dropBackground": "#E5393580", + "editorGroup.focusedEmptyBorder": "#E53935", + "editorGroupHeader.tabsBackground": "#FAFAFA", + "tab.border": "#FAFAFA", + "tab.activeBorder": "#80CBC4", + "tab.inactiveBackground": "#FAFAFA", + "tab.activeModifiedBorder": "#7E939E", + "tab.inactiveModifiedBorder": "#89221f", + "tab.unfocusedActiveModifiedBorder": "#b72d2a", + "tab.unfocusedInactiveModifiedBorder": "#89221f", + "editor.background": "#FAFAFA", + "editor.foreground": "#90A4AE", + "editorLineNumber.foreground": "#CFD8DC", + "editorLineNumber.activeForeground": "#7E939E", + "editorCursor.foreground": "#272727", + "editor.selectionBackground": "#80CBC440", + "editor.selectionHighlightBackground": "#27272720", + "editor.wordHighlightBackground": "#FF537030", + "editor.wordHighlightStrongBackground": "#91B85930", + "editor.findMatchHighlight": "#90A4AE", + "editor.findRangeHighlightBackground": "#E2931D30", + "editor.lineHighlightBorder": "#CCD7DA00", + "editor.rangeHighlightBackground": "#FFFFFF0d", + "editorWhitespace.foreground": "#90A4AE40", + "editorWidget.background": "#FAFAFA", + "editorHoverWidget.background": "#FAFAFA", + "editorMarkerNavigation.background": "#90A4AE05", + "peekView.border": "#00000020", + "peekViewEditor.background": "#90A4AE05", + "peekViewResult.background": "#90A4AE05", + "peekViewTitle.background": "#90A4AE05", + "panel.background": "#FAFAFA", + "panel.border": "#FAFAFA60", + "panelTitle.activeBorder": "#80CBC4", + "panelTitle.inactiveForeground": "#90A4AE", + "notebook.focusedCellBorder": "#80CBC4", + "notebook.inactiveFocusedCellBorder": "#80CBC450", + "statusBar.background": "#FAFAFA", + "statusBar.debuggingBackground": "#9C3EDA", + "statusBar.debuggingForeground": "#FFFFFF", + "statusBar.noFolderBackground": "#FAFAFA", + "statusBarItem.activeBackground": "#E5393580", + "statusBarItem.hoverBackground": "#90A4AE20", + "statusBarItem.remoteBackground": "#80CBC4", + "statusBarItem.remoteForeground": "#000000", + "titleBar.activeBackground": "#FAFAFA", + "pickerGroup.border": "#FFFFFF1a", + "terminal.ansiBlack": "#000000", + "terminal.ansiBlue": "#6182B8", + "terminal.ansiBrightBlack": "#90A4AE", + "terminal.ansiBrightBlue": "#6182B8", + "terminal.ansiBrightCyan": "#39ADB5", + "terminal.ansiBrightGreen": "#91B859", + "terminal.ansiBrightMagenta": "#9C3EDA", + "terminal.ansiBrightRed": "#E53935", + "terminal.ansiBrightWhite": "#FFFFFF", + "terminal.ansiBrightYellow": "#E2931D", + "terminal.ansiCyan": "#39ADB5", + "terminal.ansiGreen": "#91B859", + "terminal.ansiMagenta": "#9C3EDA", + "terminal.ansiRed": "#E53935", + "terminal.ansiWhite": "#FFFFFF", + "terminal.ansiYellow": "#E2931D", + "debugToolBar.background": "#FAFAFA", + "debugConsole.errorForeground": "#E53935", + "debugConsole.infoForeground": "#39ADB5", + "debugConsole.warningForeground": "#E2931D", + "selection.background": "#CCD7DA80", + "editorRuler.foreground": "#B0BEC5", + "widget.shadow": "#00000020", + "scrollbar.shadow": "#00000020", + "editorLink.activeForeground": "#90A4AE", + "progressBar.background": "#80CBC4", + "pickerGroup.foreground": "#80CBC4", + "tree.indentGuidesStroke": "#B0BEC5", + "terminalCursor.foreground": "#E2931D", + "terminalCursor.background": "#000000", + "inputOption.activeBackground": "#90A4AE30", + "textLink.foreground": "#80CBC4", + "textLink.activeForeground": "#90A4AE", + "sideBar.foreground": "#7E939E", + "sideBar.border": "#FAFAFA60", + "sideBarTitle.foreground": "#90A4AE", + "sideBarSectionHeader.border": "#FAFAFA60", + "panel.dropBackground": "#90A4AE", + "sash.hoverBorder": "#80CBC450", + "panelTitle.activeForeground": "#000000", + "editor.lineHighlightBackground": "#CCD7DA50", + "editor.findMatchBackground": "#00000020", + "editor.findMatchHighlightBackground": "#00000010", + "editor.findMatchBorder": "#80CBC4", + "editor.findMatchHighlightBorder": "#00000030", + "editorIndentGuide.background": "#B0BEC570", + "editorIndentGuide.activeBackground": "#B0BEC5", + "editorGroup.border": "#00000020", + "editorGutter.modifiedBackground": "#6182B860", + "editorGutter.addedBackground": "#91B85960", + "editorGutter.deletedBackground": "#E5393560", + "activityBar.border": "#FAFAFA60", + "activityBar.foreground": "#90A4AE", + "activityBar.activeBorder": "#80CBC4", + "extensionBadge.remoteForeground": "#90A4AE", + "scrollbarSlider.background": "#90A4AE20", + "scrollbarSlider.hoverBackground": "#90A4AE10", + "scrollbarSlider.activeBackground": "#80CBC4", + "tab.unfocusedActiveBorder": "#90A4AE", + "tab.activeForeground": "#000000", + "tab.inactiveForeground": "#7E939E", + "tab.activeBackground": "#FAFAFA", + "tab.unfocusedActiveForeground": "#90A4AE", + "editorWidget.resizeBorder": "#80CBC4", + "editorWidget.border": "#80CBC4", + "statusBar.border": "#FAFAFA60", + "statusBar.foreground": "#7E939E", + "editorBracketMatch.border": "#27272750", + "editorBracketMatch.background": "#FAFAFA", + "editorOverviewRuler.findMatchForeground": "#80CBC4", + "editorOverviewRuler.border": "#FAFAFA", + "editorOverviewRuler.errorForeground": "#E5393540", + "editorOverviewRuler.infoForeground": "#6182B840", + "editorOverviewRuler.warningForeground": "#E2931D40", + "editorInfo.foreground": "#6182B870", + "editorWarning.foreground": "#E2931D70", + "editorError.foreground": "#E5393570", + "editorHoverWidget.border": "#00000010", + "titleBar.activeForeground": "#90A4AE", + "titleBar.inactiveBackground": "#FAFAFA", + "titleBar.inactiveForeground": "#7E939E", + "titleBar.border": "#FAFAFA60", + "input.foreground": "#90A4AE", + "input.placeholderForeground": "#90A4AE60", + "input.border": "#00000010", + "inputValidation.errorBorder": "#E53935", + "inputValidation.infoBorder": "#6182B8", + "inputValidation.warningBorder": "#E2931D", + "dropdown.border": "#00000010", + "quickInput.background": "#FAFAFA", + "quickInput.foreground": "#7E939E", + "list.hoverForeground": "#B1C7D3", + "list.inactiveSelectionForeground": "#80CBC4", + "quickInput.list.focusBackground": "#90A4AE20", + "editorSuggestWidget.background": "#FAFAFA", + "editorSuggestWidget.foreground": "#90A4AE", + "editorSuggestWidget.highlightForeground": "#80CBC4", + "editorSuggestWidget.selectedBackground": "#CCD7DA50", + "editorSuggestWidget.border": "#00000010", + "diffEditor.insertedTextBackground": "#39ADB520", + "diffEditor.removedTextBackground": "#FF537020", + "notifications.background": "#FAFAFA", + "notifications.foreground": "#90A4AE", + "notificationLink.foreground": "#80CBC4", + "extensionButton.prominentBackground": "#91B85990", + "extensionButton.prominentHoverBackground": "#91B859", + "extensionButton.prominentForeground": "#90A4AE", + "peekViewEditorGutter.background": "#90A4AE05", + "peekViewTitleDescription.foreground": "#90A4AE60", + "peekViewResult.matchHighlightBackground": "#80CBC440", + "peekViewEditor.matchHighlightBackground": "#80CBC440", + "peekViewResult.selectionBackground": "#7E939E70", + "gitDecoration.deletedResourceForeground": "#E5393590", + "gitDecoration.conflictingResourceForeground": "#E2931D90", + "gitDecoration.modifiedResourceForeground": "#6182B890", + "gitDecoration.untrackedResourceForeground": "#91B85990", + "gitDecoration.ignoredResourceForeground": "#7E939E90", + "breadcrumb.background": "#FAFAFA", + "breadcrumb.foreground": "#7E939E", + "breadcrumb.focusForeground": "#90A4AE", + "breadcrumb.activeSelectionForeground": "#80CBC4", + "breadcrumbPicker.background": "#FAFAFA", + "menu.background": "#FAFAFA", + "menu.foreground": "#90A4AE", + "menu.selectionBackground": "#CCD7DA50", + "menu.selectionForeground": "#80CBC4", + "menu.selectionBorder": "#CCD7DA50", + "menu.separatorBackground": "#90A4AE", + "menubar.selectionBackground": "#CCD7DA50", + "menubar.selectionForeground": "#80CBC4", + "menubar.selectionBorder": "#CCD7DA50", + "settings.dropdownForeground": "#90A4AE", + "settings.dropdownBackground": "#FAFAFA", + "settings.numberInputForeground": "#90A4AE", + "settings.numberInputBackground": "#FAFAFA", + "settings.textInputForeground": "#90A4AE", + "settings.textInputBackground": "#FAFAFA", + "settings.headerForeground": "#80CBC4", + "settings.modifiedItemIndicator": "#80CBC4", + "settings.checkboxBackground": "#FAFAFA", + "settings.checkboxForeground": "#90A4AE", + "listFilterWidget.background": "#CCD7DA50", + "listFilterWidget.outline": "#CCD7DA50", + "listFilterWidget.noMatchesOutline": "#CCD7DA50" + } +} diff --git a/docs/shiki/themes/material-theme-ocean.json b/docs/shiki/themes/material-theme-ocean.json new file mode 100644 index 00000000..6c84a3b1 --- /dev/null +++ b/docs/shiki/themes/material-theme-ocean.json @@ -0,0 +1,815 @@ +{ + "name": "material-theme-ocean", + "semanticHighlighting": true, + "tokenColors": [ + { + "name": "Global settings", + "settings": { + "background": "#0F111A", + "foreground": "#babed8" + } + }, + { + "name": "String", + "scope": "string", + "settings": { + "foreground": "#C3E88D" + } + }, + { + "name": "Punctuation", + "scope": "punctuation, constant.other.symbol", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "String Escape", + "scope": "constant.character.escape, text.html constant.character.entity.named", + "settings": { + "foreground": "#babed8" + } + }, + { + "name": "Boolean", + "scope": "constant.language.boolean", + "settings": { + "foreground": "#ff9cac" + } + }, + { + "name": "Number", + "scope": "constant.numeric", + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "Variable", + "scope": "variable, variable.parameter, support.variable, variable.language, support.constant, meta.definition.variable entity.name.function, meta.function-call.arguments", + "settings": { + "foreground": "#babed8" + } + }, + { + "name": "Other Keyword", + "scope": "keyword.other", + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "Keyword", + "scope": "keyword, modifier, variable.language.this, support.type.object, constant.language", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Function call", + "scope": "entity.name.function, support.function", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Storage", + "scope": "storage.type, storage.modifier, storage.control", + "settings": { + "foreground": "#C792EA" + } + }, + { + "name": "Modules", + "scope": "support.module, support.node", + "settings": { + "foreground": "#f07178", + "fontStyle": "italic" + } + }, + { + "name": "Type", + "scope": "support.type, constant.other.key", + "settings": { + "foreground": "#FFCB6B" + } + }, + { + "name": "Type", + "scope": "entity.name.type, entity.other.inherited-class, entity.other", + "settings": { + "foreground": "#FFCB6B" + } + }, + { + "name": "Comment", + "scope": "comment", + "settings": { + "foreground": "#464B5D", + "fontStyle": "italic" + } + }, + { + "name": "Comment", + "scope": "comment punctuation.definition.comment, string.quoted.docstring", + "settings": { + "foreground": "#464B5D", + "fontStyle": "italic" + } + }, + { + "name": "Punctuation", + "scope": "punctuation", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Class", + "scope": "entity.name, entity.name.type.class, support.type, support.class, meta.use", + "settings": { + "foreground": "#FFCB6B" + } + }, + { + "name": "Class variable", + "scope": "variable.object.property, meta.field.declaration entity.name.function", + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "Class method", + "scope": "meta.definition.method entity.name.function", + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "Function definition", + "scope": "meta.function entity.name.function", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Template expression", + "scope": "template.expression.begin, template.expression.end, punctuation.definition.template-expression.begin, punctuation.definition.template-expression.end", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Reset embedded/template expression colors", + "scope": "meta.embedded, source.groovy.embedded, meta.template.expression", + "settings": { + "foreground": "#babed8" + } + }, + { + "name": "YAML key", + "scope": "entity.name.tag.yaml", + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "JSON key", + "scope": "meta.object-literal.key, meta.object-literal.key string, support.type.property-name.json", + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "JSON constant", + "scope": "constant.language.json", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "CSS class", + "scope": "entity.other.attribute-name.class", + "settings": { + "foreground": "#FFCB6B" + } + }, + { + "name": "CSS ID", + "scope": "entity.other.attribute-name.id", + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "CSS tag", + "scope": "source.css entity.name.tag", + "settings": { + "foreground": "#FFCB6B" + } + }, + { + "name": "CSS properties", + "scope": "support.type.property-name.css", + "settings": { + "foreground": "#B2CCD6" + } + }, + { + "name": "HTML tag outer", + "scope": "meta.tag, punctuation.definition.tag", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "HTML tag inner", + "scope": "entity.name.tag", + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "HTML tag attribute", + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#C792EA" + } + }, + { + "name": "HTML entities", + "scope": "punctuation.definition.entity.html", + "settings": { + "foreground": "#babed8" + } + }, + { + "name": "Markdown heading", + "scope": "markup.heading", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Markdown link text", + "scope": "text.html.markdown meta.link.inline, meta.link.reference", + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "Markdown list item", + "scope": "text.html.markdown beginning.punctuation.definition.list", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Markdown italic", + "scope": "markup.italic", + "settings": { + "foreground": "#f07178", + "fontStyle": "italic" + } + }, + { + "name": "Markdown bold", + "scope": "markup.bold", + "settings": { + "foreground": "#f07178", + "fontStyle": "bold" + } + }, + { + "name": "Markdown bold italic", + "scope": "markup.bold markup.italic, markup.italic markup.bold", + "settings": { + "foreground": "#f07178", + "fontStyle": "italic bold" + } + }, + { + "name": "Markdown code block", + "scope": "markup.fenced_code.block.markdown punctuation.definition.markdown", + "settings": { + "foreground": "#C3E88D" + } + }, + { + "name": "Markdown inline code", + "scope": "markup.inline.raw.string.markdown", + "settings": { + "foreground": "#C3E88D" + } + }, + { + "name": "INI property name", + "scope": "keyword.other.definition.ini", + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "INI section title", + "scope": "entity.name.section.group-title.ini", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "C# class", + "scope": "source.cs meta.class.identifier storage.type", + "settings": { + "foreground": "#FFCB6B" + } + }, + { + "name": "C# class method", + "scope": "source.cs meta.method.identifier entity.name.function", + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "C# function call", + "scope": "source.cs meta.method-call meta.method, source.cs entity.name.function", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "C# type", + "scope": "source.cs storage.type", + "settings": { + "foreground": "#FFCB6B" + } + }, + { + "name": "C# return type", + "scope": "source.cs meta.method.return-type", + "settings": { + "foreground": "#FFCB6B" + } + }, + { + "name": "C# preprocessor", + "scope": "source.cs meta.preprocessor", + "settings": { + "foreground": "#464B5D" + } + }, + { + "name": "C# namespace", + "scope": "source.cs entity.name.type.namespace", + "settings": { + "foreground": "#babed8" + } + }, + { + "name": "JSX Text", + "scope": "meta.jsx.children, SXNested", + "settings": { + "foreground": "#babed8" + } + }, + { + "name": "JSX Components name", + "scope": "support.class.component", + "settings": { + "foreground": "#FFCB6B" + } + }, + { + "name": "C-related Block Level Variables", + "scope": "source.cpp meta.block variable.other", + "settings": { + "foreground": "#babed8" + } + }, + { + "name": "Member Access Meta", + "scope": "source.python meta.member.access.python", + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "Function Call", + "scope": "source.python meta.function-call.python, meta.function-call.arguments", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Blocks", + "scope": "meta.block", + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "Function Call", + "scope": "entity.name.function.call", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Namespaces", + "scope": "source.php support.other.namespace, source.php meta.use support.class", + "settings": { + "foreground": "#babed8" + } + }, + { + "name": "Constant keywords", + "scope": "constant.keyword", + "settings": { + "foreground": "#89DDFF", + "fontStyle": "italic" + } + }, + { + "name": "Entity name", + "scope": "entity.name.function", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Global settings", + "settings": { + "background": "#0F111A", + "foreground": "#babed8" + } + }, + { + "name": "Markup Deleted", + "scope": ["markup.deleted"], + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "Markup Inserted", + "scope": ["markup.inserted"], + "settings": { + "foreground": "#C3E88D" + } + }, + { + "name": "Markup Underline", + "scope": ["markup.underline"], + "settings": { + "fontStyle": "underline" + } + }, + { + "name": "Keyword Control", + "scope": ["keyword.control"], + "settings": { + "foreground": "#89DDFF", + "fontStyle": "italic" + } + }, + { + "name": "Parameter", + "scope": ["variable.parameter"], + "settings": { + "fontStyle": "italic" + } + }, + { + "name": "Python - Self Parameter", + "scope": ["variable.parameter.function.language.special.self.python"], + "settings": { + "foreground": "#f07178", + "fontStyle": "italic" + } + }, + { + "name": "Python - Format Placeholder", + "scope": ["constant.character.format.placeholder.other.python"], + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "Markdown - Blockquote", + "scope": ["markup.quote"], + "settings": { + "fontStyle": "italic", + "foreground": "#89DDFF" + } + }, + { + "name": "Markdown - Fenced Language", + "scope": ["markup.fenced_code.block"], + "settings": { + "foreground": "#babed890" + } + }, + { + "name": "Markdown - Blockquote Punctuation", + "scope": ["punctuation.definition.quote"], + "settings": { + "foreground": "#ff9cac" + } + }, + { + "name": "JSON Key - Level 0", + "scope": ["meta.structure.dictionary.json support.type.property-name.json"], + "settings": { + "foreground": "#C792EA" + } + }, + { + "name": "JSON Key - Level 1", + "scope": [ + "meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#FFCB6B" + } + }, + { + "name": "JSON Key - Level 2", + "scope": [ + "meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "JSON Key - Level 3", + "scope": [ + "meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "JSON Key - Level 4", + "scope": [ + "meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#916b53" + } + }, + { + "name": "JSON Key - Level 5", + "scope": [ + "meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "JSON Key - Level 6", + "scope": [ + "meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#ff9cac" + } + }, + { + "name": "JSON Key - Level 7", + "scope": [ + "meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#C792EA" + } + }, + { + "name": "JSON Key - Level 8", + "scope": [ + "meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#C3E88D" + } + } + ], + "colors": { + "focusBorder": "#FFFFFF00", + "foreground": "#babed8", + "button.background": "#717CB450", + "button.foreground": "#ffffff", + "dropdown.background": "#0F111A", + "input.background": "#1A1C25", + "inputOption.activeBorder": "#babed830", + "list.activeSelectionBackground": "#0F111A", + "list.activeSelectionForeground": "#80CBC4", + "list.dropBackground": "#f0717880", + "list.focusBackground": "#babed820", + "list.focusForeground": "#babed8", + "list.highlightForeground": "#80CBC4", + "list.hoverBackground": "#0F111A", + "list.inactiveSelectionBackground": "#00000030", + "activityBar.background": "#0F111A", + "activityBar.dropBackground": "#f0717880", + "activityBarBadge.background": "#80CBC4", + "activityBarBadge.foreground": "#000000", + "badge.background": "#00000030", + "badge.foreground": "#464B5D", + "sideBar.background": "#0F111A", + "sideBarSectionHeader.background": "#0F111A", + "editorGroup.dropBackground": "#f0717880", + "editorGroup.focusedEmptyBorder": "#f07178", + "editorGroupHeader.tabsBackground": "#0F111A", + "tab.border": "#0F111A", + "tab.activeBorder": "#80CBC4", + "tab.inactiveBackground": "#0F111A", + "tab.activeModifiedBorder": "#525975", + "tab.inactiveModifiedBorder": "#904348", + "tab.unfocusedActiveModifiedBorder": "#c05a60", + "tab.unfocusedInactiveModifiedBorder": "#904348", + "editor.background": "#0F111A", + "editor.foreground": "#babed8", + "editorLineNumber.foreground": "#3B3F5180", + "editorLineNumber.activeForeground": "#525975", + "editorCursor.foreground": "#FFCC00", + "editor.selectionBackground": "#717CB450", + "editor.selectionHighlightBackground": "#FFCC0020", + "editor.wordHighlightBackground": "#ff9cac30", + "editor.wordHighlightStrongBackground": "#C3E88D30", + "editor.findMatchHighlight": "#babed8", + "editor.findRangeHighlightBackground": "#FFCB6B30", + "editor.lineHighlightBorder": "#00000000", + "editor.rangeHighlightBackground": "#FFFFFF0d", + "editorWhitespace.foreground": "#babed840", + "editorWidget.background": "#0F111A", + "editorHoverWidget.background": "#0F111A", + "editorMarkerNavigation.background": "#babed805", + "peekView.border": "#00000030", + "peekViewEditor.background": "#babed805", + "peekViewResult.background": "#babed805", + "peekViewTitle.background": "#babed805", + "panel.background": "#0F111A", + "panel.border": "#0F111A60", + "panelTitle.activeBorder": "#80CBC4", + "panelTitle.inactiveForeground": "#babed8", + "notebook.focusedCellBorder": "#80CBC4", + "notebook.inactiveFocusedCellBorder": "#80CBC450", + "statusBar.background": "#0F111A", + "statusBar.debuggingBackground": "#C792EA", + "statusBar.debuggingForeground": "#ffffff", + "statusBar.noFolderBackground": "#0F111A", + "statusBarItem.activeBackground": "#f0717880", + "statusBarItem.hoverBackground": "#464B5D20", + "statusBarItem.remoteBackground": "#80CBC4", + "statusBarItem.remoteForeground": "#000000", + "titleBar.activeBackground": "#0F111A", + "pickerGroup.border": "#FFFFFF1a", + "terminal.ansiBlack": "#000000", + "terminal.ansiBlue": "#82AAFF", + "terminal.ansiBrightBlack": "#464B5D", + "terminal.ansiBrightBlue": "#82AAFF", + "terminal.ansiBrightCyan": "#89DDFF", + "terminal.ansiBrightGreen": "#C3E88D", + "terminal.ansiBrightMagenta": "#C792EA", + "terminal.ansiBrightRed": "#f07178", + "terminal.ansiBrightWhite": "#ffffff", + "terminal.ansiBrightYellow": "#FFCB6B", + "terminal.ansiCyan": "#89DDFF", + "terminal.ansiGreen": "#C3E88D", + "terminal.ansiMagenta": "#C792EA", + "terminal.ansiRed": "#f07178", + "terminal.ansiWhite": "#ffffff", + "terminal.ansiYellow": "#FFCB6B", + "debugToolBar.background": "#0F111A", + "debugConsole.errorForeground": "#f07178", + "debugConsole.infoForeground": "#89DDFF", + "debugConsole.warningForeground": "#FFCB6B", + "selection.background": "#00000080", + "editorRuler.foreground": "#3B3F51", + "widget.shadow": "#00000030", + "scrollbar.shadow": "#00000030", + "editorLink.activeForeground": "#babed8", + "progressBar.background": "#80CBC4", + "pickerGroup.foreground": "#80CBC4", + "tree.indentGuidesStroke": "#3B3F51", + "terminalCursor.foreground": "#FFCB6B", + "terminalCursor.background": "#000000", + "inputOption.activeBackground": "#babed830", + "textLink.foreground": "#80CBC4", + "textLink.activeForeground": "#babed8", + "sideBar.foreground": "#525975", + "sideBar.border": "#0F111A60", + "sideBarTitle.foreground": "#babed8", + "sideBarSectionHeader.border": "#0F111A60", + "panel.dropBackground": "#babed8", + "sash.hoverBorder": "#80CBC450", + "panelTitle.activeForeground": "#FFFFFF", + "editor.lineHighlightBackground": "#00000050", + "editor.findMatchBackground": "#000000", + "editor.findMatchHighlightBackground": "#00000050", + "editor.findMatchBorder": "#80CBC4", + "editor.findMatchHighlightBorder": "#ffffff30", + "editorIndentGuide.background": "#3B3F5170", + "editorIndentGuide.activeBackground": "#3B3F51", + "editorGroup.border": "#00000030", + "editorGutter.modifiedBackground": "#82AAFF60", + "editorGutter.addedBackground": "#C3E88D60", + "editorGutter.deletedBackground": "#f0717860", + "activityBar.border": "#0F111A60", + "activityBar.foreground": "#babed8", + "activityBar.activeBorder": "#80CBC4", + "extensionBadge.remoteForeground": "#babed8", + "scrollbarSlider.background": "#8F93A220", + "scrollbarSlider.hoverBackground": "#8F93A210", + "scrollbarSlider.activeBackground": "#80CBC4", + "tab.unfocusedActiveBorder": "#464B5D", + "tab.activeForeground": "#FFFFFF", + "tab.inactiveForeground": "#525975", + "tab.activeBackground": "#0F111A", + "tab.unfocusedActiveForeground": "#babed8", + "editorWidget.resizeBorder": "#80CBC4", + "editorWidget.border": "#80CBC4", + "statusBar.border": "#0F111A60", + "statusBar.foreground": "#4B526D", + "editorBracketMatch.border": "#FFCC0050", + "editorBracketMatch.background": "#0F111A", + "editorOverviewRuler.findMatchForeground": "#80CBC4", + "editorOverviewRuler.border": "#0F111A", + "editorOverviewRuler.errorForeground": "#f0717840", + "editorOverviewRuler.infoForeground": "#82AAFF40", + "editorOverviewRuler.warningForeground": "#FFCB6B40", + "editorInfo.foreground": "#82AAFF70", + "editorWarning.foreground": "#FFCB6B70", + "editorError.foreground": "#f0717870", + "editorHoverWidget.border": "#FFFFFF10", + "titleBar.activeForeground": "#babed8", + "titleBar.inactiveBackground": "#0F111A", + "titleBar.inactiveForeground": "#525975", + "titleBar.border": "#0F111A60", + "input.foreground": "#babed8", + "input.placeholderForeground": "#babed860", + "input.border": "#FFFFFF10", + "inputValidation.errorBorder": "#f07178", + "inputValidation.infoBorder": "#82AAFF", + "inputValidation.warningBorder": "#FFCB6B", + "dropdown.border": "#FFFFFF10", + "quickInput.background": "#0F111A", + "quickInput.foreground": "#525975", + "list.hoverForeground": "#FFFFFF", + "list.inactiveSelectionForeground": "#80CBC4", + "quickInput.list.focusBackground": "#babed820", + "editorSuggestWidget.background": "#0F111A", + "editorSuggestWidget.foreground": "#babed8", + "editorSuggestWidget.highlightForeground": "#80CBC4", + "editorSuggestWidget.selectedBackground": "#00000050", + "editorSuggestWidget.border": "#FFFFFF10", + "diffEditor.insertedTextBackground": "#89DDFF20", + "diffEditor.removedTextBackground": "#ff9cac20", + "notifications.background": "#0F111A", + "notifications.foreground": "#babed8", + "notificationLink.foreground": "#80CBC4", + "extensionButton.prominentBackground": "#C3E88D90", + "extensionButton.prominentHoverBackground": "#C3E88D", + "extensionButton.prominentForeground": "#babed8", + "peekViewEditorGutter.background": "#babed805", + "peekViewTitleDescription.foreground": "#babed860", + "peekViewResult.matchHighlightBackground": "#717CB450", + "peekViewEditor.matchHighlightBackground": "#717CB450", + "peekViewResult.selectionBackground": "#52597570", + "gitDecoration.deletedResourceForeground": "#f0717890", + "gitDecoration.conflictingResourceForeground": "#FFCB6B90", + "gitDecoration.modifiedResourceForeground": "#82AAFF90", + "gitDecoration.untrackedResourceForeground": "#C3E88D90", + "gitDecoration.ignoredResourceForeground": "#52597590", + "breadcrumb.background": "#0F111A", + "breadcrumb.foreground": "#525975", + "breadcrumb.focusForeground": "#babed8", + "breadcrumb.activeSelectionForeground": "#80CBC4", + "breadcrumbPicker.background": "#0F111A", + "menu.background": "#0F111A", + "menu.foreground": "#babed8", + "menu.selectionBackground": "#00000050", + "menu.selectionForeground": "#80CBC4", + "menu.selectionBorder": "#00000030", + "menu.separatorBackground": "#babed8", + "menubar.selectionBackground": "#00000030", + "menubar.selectionForeground": "#80CBC4", + "menubar.selectionBorder": "#00000030", + "settings.dropdownForeground": "#babed8", + "settings.dropdownBackground": "#0F111A", + "settings.numberInputForeground": "#babed8", + "settings.numberInputBackground": "#0F111A", + "settings.textInputForeground": "#babed8", + "settings.textInputBackground": "#0F111A", + "settings.headerForeground": "#80CBC4", + "settings.modifiedItemIndicator": "#80CBC4", + "settings.checkboxBackground": "#0F111A", + "settings.checkboxForeground": "#babed8", + "listFilterWidget.background": "#00000030", + "listFilterWidget.outline": "#00000030", + "listFilterWidget.noMatchesOutline": "#00000030" + } +} diff --git a/docs/shiki/themes/material-theme-palenight.json b/docs/shiki/themes/material-theme-palenight.json new file mode 100644 index 00000000..49ba53bf --- /dev/null +++ b/docs/shiki/themes/material-theme-palenight.json @@ -0,0 +1,815 @@ +{ + "name": "material-theme-palenight", + "semanticHighlighting": true, + "tokenColors": [ + { + "name": "Global settings", + "settings": { + "background": "#292D3E", + "foreground": "#babed8" + } + }, + { + "name": "String", + "scope": "string", + "settings": { + "foreground": "#C3E88D" + } + }, + { + "name": "Punctuation", + "scope": "punctuation, constant.other.symbol", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "String Escape", + "scope": "constant.character.escape, text.html constant.character.entity.named", + "settings": { + "foreground": "#babed8" + } + }, + { + "name": "Boolean", + "scope": "constant.language.boolean", + "settings": { + "foreground": "#ff9cac" + } + }, + { + "name": "Number", + "scope": "constant.numeric", + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "Variable", + "scope": "variable, variable.parameter, support.variable, variable.language, support.constant, meta.definition.variable entity.name.function, meta.function-call.arguments", + "settings": { + "foreground": "#babed8" + } + }, + { + "name": "Other Keyword", + "scope": "keyword.other", + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "Keyword", + "scope": "keyword, modifier, variable.language.this, support.type.object, constant.language", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Function call", + "scope": "entity.name.function, support.function", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Storage", + "scope": "storage.type, storage.modifier, storage.control", + "settings": { + "foreground": "#C792EA" + } + }, + { + "name": "Modules", + "scope": "support.module, support.node", + "settings": { + "foreground": "#f07178", + "fontStyle": "italic" + } + }, + { + "name": "Type", + "scope": "support.type, constant.other.key", + "settings": { + "foreground": "#FFCB6B" + } + }, + { + "name": "Type", + "scope": "entity.name.type, entity.other.inherited-class, entity.other", + "settings": { + "foreground": "#FFCB6B" + } + }, + { + "name": "Comment", + "scope": "comment", + "settings": { + "foreground": "#676E95", + "fontStyle": "italic" + } + }, + { + "name": "Comment", + "scope": "comment punctuation.definition.comment, string.quoted.docstring", + "settings": { + "foreground": "#676E95", + "fontStyle": "italic" + } + }, + { + "name": "Punctuation", + "scope": "punctuation", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Class", + "scope": "entity.name, entity.name.type.class, support.type, support.class, meta.use", + "settings": { + "foreground": "#FFCB6B" + } + }, + { + "name": "Class variable", + "scope": "variable.object.property, meta.field.declaration entity.name.function", + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "Class method", + "scope": "meta.definition.method entity.name.function", + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "Function definition", + "scope": "meta.function entity.name.function", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Template expression", + "scope": "template.expression.begin, template.expression.end, punctuation.definition.template-expression.begin, punctuation.definition.template-expression.end", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Reset embedded/template expression colors", + "scope": "meta.embedded, source.groovy.embedded, meta.template.expression", + "settings": { + "foreground": "#babed8" + } + }, + { + "name": "YAML key", + "scope": "entity.name.tag.yaml", + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "JSON key", + "scope": "meta.object-literal.key, meta.object-literal.key string, support.type.property-name.json", + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "JSON constant", + "scope": "constant.language.json", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "CSS class", + "scope": "entity.other.attribute-name.class", + "settings": { + "foreground": "#FFCB6B" + } + }, + { + "name": "CSS ID", + "scope": "entity.other.attribute-name.id", + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "CSS tag", + "scope": "source.css entity.name.tag", + "settings": { + "foreground": "#FFCB6B" + } + }, + { + "name": "CSS properties", + "scope": "support.type.property-name.css", + "settings": { + "foreground": "#B2CCD6" + } + }, + { + "name": "HTML tag outer", + "scope": "meta.tag, punctuation.definition.tag", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "HTML tag inner", + "scope": "entity.name.tag", + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "HTML tag attribute", + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#C792EA" + } + }, + { + "name": "HTML entities", + "scope": "punctuation.definition.entity.html", + "settings": { + "foreground": "#babed8" + } + }, + { + "name": "Markdown heading", + "scope": "markup.heading", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Markdown link text", + "scope": "text.html.markdown meta.link.inline, meta.link.reference", + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "Markdown list item", + "scope": "text.html.markdown beginning.punctuation.definition.list", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Markdown italic", + "scope": "markup.italic", + "settings": { + "foreground": "#f07178", + "fontStyle": "italic" + } + }, + { + "name": "Markdown bold", + "scope": "markup.bold", + "settings": { + "foreground": "#f07178", + "fontStyle": "bold" + } + }, + { + "name": "Markdown bold italic", + "scope": "markup.bold markup.italic, markup.italic markup.bold", + "settings": { + "foreground": "#f07178", + "fontStyle": "italic bold" + } + }, + { + "name": "Markdown code block", + "scope": "markup.fenced_code.block.markdown punctuation.definition.markdown", + "settings": { + "foreground": "#C3E88D" + } + }, + { + "name": "Markdown inline code", + "scope": "markup.inline.raw.string.markdown", + "settings": { + "foreground": "#C3E88D" + } + }, + { + "name": "INI property name", + "scope": "keyword.other.definition.ini", + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "INI section title", + "scope": "entity.name.section.group-title.ini", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "C# class", + "scope": "source.cs meta.class.identifier storage.type", + "settings": { + "foreground": "#FFCB6B" + } + }, + { + "name": "C# class method", + "scope": "source.cs meta.method.identifier entity.name.function", + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "C# function call", + "scope": "source.cs meta.method-call meta.method, source.cs entity.name.function", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "C# type", + "scope": "source.cs storage.type", + "settings": { + "foreground": "#FFCB6B" + } + }, + { + "name": "C# return type", + "scope": "source.cs meta.method.return-type", + "settings": { + "foreground": "#FFCB6B" + } + }, + { + "name": "C# preprocessor", + "scope": "source.cs meta.preprocessor", + "settings": { + "foreground": "#676E95" + } + }, + { + "name": "C# namespace", + "scope": "source.cs entity.name.type.namespace", + "settings": { + "foreground": "#babed8" + } + }, + { + "name": "JSX Text", + "scope": "meta.jsx.children, SXNested", + "settings": { + "foreground": "#babed8" + } + }, + { + "name": "JSX Components name", + "scope": "support.class.component", + "settings": { + "foreground": "#FFCB6B" + } + }, + { + "name": "C-related Block Level Variables", + "scope": "source.cpp meta.block variable.other", + "settings": { + "foreground": "#babed8" + } + }, + { + "name": "Member Access Meta", + "scope": "source.python meta.member.access.python", + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "Function Call", + "scope": "source.python meta.function-call.python, meta.function-call.arguments", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Blocks", + "scope": "meta.block", + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "Function Call", + "scope": "entity.name.function.call", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Namespaces", + "scope": "source.php support.other.namespace, source.php meta.use support.class", + "settings": { + "foreground": "#babed8" + } + }, + { + "name": "Constant keywords", + "scope": "constant.keyword", + "settings": { + "foreground": "#89DDFF", + "fontStyle": "italic" + } + }, + { + "name": "Entity name", + "scope": "entity.name.function", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Global settings", + "settings": { + "background": "#292D3E", + "foreground": "#babed8" + } + }, + { + "name": "Markup Deleted", + "scope": ["markup.deleted"], + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "Markup Inserted", + "scope": ["markup.inserted"], + "settings": { + "foreground": "#C3E88D" + } + }, + { + "name": "Markup Underline", + "scope": ["markup.underline"], + "settings": { + "fontStyle": "underline" + } + }, + { + "name": "Keyword Control", + "scope": ["keyword.control"], + "settings": { + "foreground": "#89DDFF", + "fontStyle": "italic" + } + }, + { + "name": "Parameter", + "scope": ["variable.parameter"], + "settings": { + "fontStyle": "italic" + } + }, + { + "name": "Python - Self Parameter", + "scope": ["variable.parameter.function.language.special.self.python"], + "settings": { + "foreground": "#f07178", + "fontStyle": "italic" + } + }, + { + "name": "Python - Format Placeholder", + "scope": ["constant.character.format.placeholder.other.python"], + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "Markdown - Blockquote", + "scope": ["markup.quote"], + "settings": { + "fontStyle": "italic", + "foreground": "#89DDFF" + } + }, + { + "name": "Markdown - Fenced Language", + "scope": ["markup.fenced_code.block"], + "settings": { + "foreground": "#babed890" + } + }, + { + "name": "Markdown - Blockquote Punctuation", + "scope": ["punctuation.definition.quote"], + "settings": { + "foreground": "#ff9cac" + } + }, + { + "name": "JSON Key - Level 0", + "scope": ["meta.structure.dictionary.json support.type.property-name.json"], + "settings": { + "foreground": "#C792EA" + } + }, + { + "name": "JSON Key - Level 1", + "scope": [ + "meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#FFCB6B" + } + }, + { + "name": "JSON Key - Level 2", + "scope": [ + "meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "JSON Key - Level 3", + "scope": [ + "meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "JSON Key - Level 4", + "scope": [ + "meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#916b53" + } + }, + { + "name": "JSON Key - Level 5", + "scope": [ + "meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "JSON Key - Level 6", + "scope": [ + "meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#ff9cac" + } + }, + { + "name": "JSON Key - Level 7", + "scope": [ + "meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#C792EA" + } + }, + { + "name": "JSON Key - Level 8", + "scope": [ + "meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#C3E88D" + } + } + ], + "colors": { + "focusBorder": "#FFFFFF00", + "foreground": "#babed8", + "button.background": "#717CB450", + "button.foreground": "#ffffff", + "dropdown.background": "#292D3E", + "input.background": "#333747", + "inputOption.activeBorder": "#babed830", + "list.activeSelectionBackground": "#292D3E", + "list.activeSelectionForeground": "#80CBC4", + "list.dropBackground": "#f0717880", + "list.focusBackground": "#babed820", + "list.focusForeground": "#babed8", + "list.highlightForeground": "#80CBC4", + "list.hoverBackground": "#292D3E", + "list.inactiveSelectionBackground": "#00000030", + "activityBar.background": "#292D3E", + "activityBar.dropBackground": "#f0717880", + "activityBarBadge.background": "#80CBC4", + "activityBarBadge.foreground": "#000000", + "badge.background": "#00000030", + "badge.foreground": "#676E95", + "sideBar.background": "#292D3E", + "sideBarSectionHeader.background": "#292D3E", + "editorGroup.dropBackground": "#f0717880", + "editorGroup.focusedEmptyBorder": "#f07178", + "editorGroupHeader.tabsBackground": "#292D3E", + "tab.border": "#292D3E", + "tab.activeBorder": "#80CBC4", + "tab.inactiveBackground": "#292D3E", + "tab.activeModifiedBorder": "#676E95", + "tab.inactiveModifiedBorder": "#904348", + "tab.unfocusedActiveModifiedBorder": "#c05a60", + "tab.unfocusedInactiveModifiedBorder": "#904348", + "editor.background": "#292D3E", + "editor.foreground": "#babed8", + "editorLineNumber.foreground": "#3A3F58", + "editorLineNumber.activeForeground": "#676E95", + "editorCursor.foreground": "#FFCC00", + "editor.selectionBackground": "#717CB450", + "editor.selectionHighlightBackground": "#FFCC0020", + "editor.wordHighlightBackground": "#ff9cac30", + "editor.wordHighlightStrongBackground": "#C3E88D30", + "editor.findMatchHighlight": "#babed8", + "editor.findRangeHighlightBackground": "#FFCB6B30", + "editor.lineHighlightBorder": "#00000000", + "editor.rangeHighlightBackground": "#FFFFFF0d", + "editorWhitespace.foreground": "#babed840", + "editorWidget.background": "#292D3E", + "editorHoverWidget.background": "#292D3E", + "editorMarkerNavigation.background": "#babed805", + "peekView.border": "#00000030", + "peekViewEditor.background": "#babed805", + "peekViewResult.background": "#babed805", + "peekViewTitle.background": "#babed805", + "panel.background": "#292D3E", + "panel.border": "#292D3E60", + "panelTitle.activeBorder": "#80CBC4", + "panelTitle.inactiveForeground": "#babed8", + "notebook.focusedCellBorder": "#80CBC4", + "notebook.inactiveFocusedCellBorder": "#80CBC450", + "statusBar.background": "#292D3E", + "statusBar.debuggingBackground": "#C792EA", + "statusBar.debuggingForeground": "#ffffff", + "statusBar.noFolderBackground": "#292D3E", + "statusBarItem.activeBackground": "#f0717880", + "statusBarItem.hoverBackground": "#676E9520", + "statusBarItem.remoteBackground": "#80CBC4", + "statusBarItem.remoteForeground": "#000000", + "titleBar.activeBackground": "#292D3E", + "pickerGroup.border": "#FFFFFF1a", + "terminal.ansiBlack": "#000000", + "terminal.ansiBlue": "#82AAFF", + "terminal.ansiBrightBlack": "#676E95", + "terminal.ansiBrightBlue": "#82AAFF", + "terminal.ansiBrightCyan": "#89DDFF", + "terminal.ansiBrightGreen": "#C3E88D", + "terminal.ansiBrightMagenta": "#C792EA", + "terminal.ansiBrightRed": "#f07178", + "terminal.ansiBrightWhite": "#ffffff", + "terminal.ansiBrightYellow": "#FFCB6B", + "terminal.ansiCyan": "#89DDFF", + "terminal.ansiGreen": "#C3E88D", + "terminal.ansiMagenta": "#C792EA", + "terminal.ansiRed": "#f07178", + "terminal.ansiWhite": "#ffffff", + "terminal.ansiYellow": "#FFCB6B", + "debugToolBar.background": "#292D3E", + "debugConsole.errorForeground": "#f07178", + "debugConsole.infoForeground": "#89DDFF", + "debugConsole.warningForeground": "#FFCB6B", + "selection.background": "#00000080", + "editorRuler.foreground": "#4E5579", + "widget.shadow": "#00000030", + "scrollbar.shadow": "#00000030", + "editorLink.activeForeground": "#babed8", + "progressBar.background": "#80CBC4", + "pickerGroup.foreground": "#80CBC4", + "tree.indentGuidesStroke": "#4E5579", + "terminalCursor.foreground": "#FFCB6B", + "terminalCursor.background": "#000000", + "inputOption.activeBackground": "#babed830", + "textLink.foreground": "#80CBC4", + "textLink.activeForeground": "#babed8", + "sideBar.foreground": "#676E95", + "sideBar.border": "#292D3E60", + "sideBarTitle.foreground": "#babed8", + "sideBarSectionHeader.border": "#292D3E60", + "panel.dropBackground": "#babed8", + "sash.hoverBorder": "#80CBC450", + "panelTitle.activeForeground": "#FFFFFF", + "editor.lineHighlightBackground": "#00000050", + "editor.findMatchBackground": "#000000", + "editor.findMatchHighlightBackground": "#00000050", + "editor.findMatchBorder": "#80CBC4", + "editor.findMatchHighlightBorder": "#ffffff30", + "editorIndentGuide.background": "#4E557970", + "editorIndentGuide.activeBackground": "#4E5579", + "editorGroup.border": "#00000030", + "editorGutter.modifiedBackground": "#82AAFF60", + "editorGutter.addedBackground": "#C3E88D60", + "editorGutter.deletedBackground": "#f0717860", + "activityBar.border": "#292D3E60", + "activityBar.foreground": "#babed8", + "activityBar.activeBorder": "#80CBC4", + "extensionBadge.remoteForeground": "#babed8", + "scrollbarSlider.background": "#A6ACCD20", + "scrollbarSlider.hoverBackground": "#A6ACCD10", + "scrollbarSlider.activeBackground": "#80CBC4", + "tab.unfocusedActiveBorder": "#676E95", + "tab.activeForeground": "#FFFFFF", + "tab.inactiveForeground": "#676E95", + "tab.activeBackground": "#292D3E", + "tab.unfocusedActiveForeground": "#babed8", + "editorWidget.resizeBorder": "#80CBC4", + "editorWidget.border": "#80CBC4", + "statusBar.border": "#292D3E60", + "statusBar.foreground": "#676E95", + "editorBracketMatch.border": "#FFCC0050", + "editorBracketMatch.background": "#292D3E", + "editorOverviewRuler.findMatchForeground": "#80CBC4", + "editorOverviewRuler.border": "#292D3E", + "editorOverviewRuler.errorForeground": "#f0717840", + "editorOverviewRuler.infoForeground": "#82AAFF40", + "editorOverviewRuler.warningForeground": "#FFCB6B40", + "editorInfo.foreground": "#82AAFF70", + "editorWarning.foreground": "#FFCB6B70", + "editorError.foreground": "#f0717870", + "editorHoverWidget.border": "#FFFFFF10", + "titleBar.activeForeground": "#babed8", + "titleBar.inactiveBackground": "#292D3E", + "titleBar.inactiveForeground": "#676E95", + "titleBar.border": "#292D3E60", + "input.foreground": "#babed8", + "input.placeholderForeground": "#babed860", + "input.border": "#FFFFFF10", + "inputValidation.errorBorder": "#f07178", + "inputValidation.infoBorder": "#82AAFF", + "inputValidation.warningBorder": "#FFCB6B", + "dropdown.border": "#FFFFFF10", + "quickInput.background": "#292D3E", + "quickInput.foreground": "#676E95", + "list.hoverForeground": "#FFFFFF", + "list.inactiveSelectionForeground": "#80CBC4", + "quickInput.list.focusBackground": "#babed820", + "editorSuggestWidget.background": "#292D3E", + "editorSuggestWidget.foreground": "#babed8", + "editorSuggestWidget.highlightForeground": "#80CBC4", + "editorSuggestWidget.selectedBackground": "#00000050", + "editorSuggestWidget.border": "#FFFFFF10", + "diffEditor.insertedTextBackground": "#89DDFF20", + "diffEditor.removedTextBackground": "#ff9cac20", + "notifications.background": "#292D3E", + "notifications.foreground": "#babed8", + "notificationLink.foreground": "#80CBC4", + "extensionButton.prominentBackground": "#C3E88D90", + "extensionButton.prominentHoverBackground": "#C3E88D", + "extensionButton.prominentForeground": "#babed8", + "peekViewEditorGutter.background": "#babed805", + "peekViewTitleDescription.foreground": "#babed860", + "peekViewResult.matchHighlightBackground": "#717CB450", + "peekViewEditor.matchHighlightBackground": "#717CB450", + "peekViewResult.selectionBackground": "#676E9570", + "gitDecoration.deletedResourceForeground": "#f0717890", + "gitDecoration.conflictingResourceForeground": "#FFCB6B90", + "gitDecoration.modifiedResourceForeground": "#82AAFF90", + "gitDecoration.untrackedResourceForeground": "#C3E88D90", + "gitDecoration.ignoredResourceForeground": "#676E9590", + "breadcrumb.background": "#292D3E", + "breadcrumb.foreground": "#676E95", + "breadcrumb.focusForeground": "#babed8", + "breadcrumb.activeSelectionForeground": "#80CBC4", + "breadcrumbPicker.background": "#292D3E", + "menu.background": "#292D3E", + "menu.foreground": "#babed8", + "menu.selectionBackground": "#00000050", + "menu.selectionForeground": "#80CBC4", + "menu.selectionBorder": "#00000030", + "menu.separatorBackground": "#babed8", + "menubar.selectionBackground": "#00000030", + "menubar.selectionForeground": "#80CBC4", + "menubar.selectionBorder": "#00000030", + "settings.dropdownForeground": "#babed8", + "settings.dropdownBackground": "#292D3E", + "settings.numberInputForeground": "#babed8", + "settings.numberInputBackground": "#292D3E", + "settings.textInputForeground": "#babed8", + "settings.textInputBackground": "#292D3E", + "settings.headerForeground": "#80CBC4", + "settings.modifiedItemIndicator": "#80CBC4", + "settings.checkboxBackground": "#292D3E", + "settings.checkboxForeground": "#babed8", + "listFilterWidget.background": "#00000030", + "listFilterWidget.outline": "#00000030", + "listFilterWidget.noMatchesOutline": "#00000030" + } +} diff --git a/docs/shiki/themes/material-theme.json b/docs/shiki/themes/material-theme.json new file mode 100644 index 00000000..57f2ec5a --- /dev/null +++ b/docs/shiki/themes/material-theme.json @@ -0,0 +1,815 @@ +{ + "name": "material-theme", + "semanticHighlighting": true, + "tokenColors": [ + { + "name": "Global settings", + "settings": { + "background": "#263238", + "foreground": "#EEFFFF" + } + }, + { + "name": "String", + "scope": "string", + "settings": { + "foreground": "#C3E88D" + } + }, + { + "name": "Punctuation", + "scope": "punctuation, constant.other.symbol", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "String Escape", + "scope": "constant.character.escape, text.html constant.character.entity.named", + "settings": { + "foreground": "#EEFFFF" + } + }, + { + "name": "Boolean", + "scope": "constant.language.boolean", + "settings": { + "foreground": "#ff9cac" + } + }, + { + "name": "Number", + "scope": "constant.numeric", + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "Variable", + "scope": "variable, variable.parameter, support.variable, variable.language, support.constant, meta.definition.variable entity.name.function, meta.function-call.arguments", + "settings": { + "foreground": "#EEFFFF" + } + }, + { + "name": "Other Keyword", + "scope": "keyword.other", + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "Keyword", + "scope": "keyword, modifier, variable.language.this, support.type.object, constant.language", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Function call", + "scope": "entity.name.function, support.function", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Storage", + "scope": "storage.type, storage.modifier, storage.control", + "settings": { + "foreground": "#C792EA" + } + }, + { + "name": "Modules", + "scope": "support.module, support.node", + "settings": { + "foreground": "#f07178", + "fontStyle": "italic" + } + }, + { + "name": "Type", + "scope": "support.type, constant.other.key", + "settings": { + "foreground": "#FFCB6B" + } + }, + { + "name": "Type", + "scope": "entity.name.type, entity.other.inherited-class, entity.other", + "settings": { + "foreground": "#FFCB6B" + } + }, + { + "name": "Comment", + "scope": "comment", + "settings": { + "foreground": "#546E7A", + "fontStyle": "italic" + } + }, + { + "name": "Comment", + "scope": "comment punctuation.definition.comment, string.quoted.docstring", + "settings": { + "foreground": "#546E7A", + "fontStyle": "italic" + } + }, + { + "name": "Punctuation", + "scope": "punctuation", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Class", + "scope": "entity.name, entity.name.type.class, support.type, support.class, meta.use", + "settings": { + "foreground": "#FFCB6B" + } + }, + { + "name": "Class variable", + "scope": "variable.object.property, meta.field.declaration entity.name.function", + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "Class method", + "scope": "meta.definition.method entity.name.function", + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "Function definition", + "scope": "meta.function entity.name.function", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Template expression", + "scope": "template.expression.begin, template.expression.end, punctuation.definition.template-expression.begin, punctuation.definition.template-expression.end", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Reset embedded/template expression colors", + "scope": "meta.embedded, source.groovy.embedded, meta.template.expression", + "settings": { + "foreground": "#EEFFFF" + } + }, + { + "name": "YAML key", + "scope": "entity.name.tag.yaml", + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "JSON key", + "scope": "meta.object-literal.key, meta.object-literal.key string, support.type.property-name.json", + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "JSON constant", + "scope": "constant.language.json", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "CSS class", + "scope": "entity.other.attribute-name.class", + "settings": { + "foreground": "#FFCB6B" + } + }, + { + "name": "CSS ID", + "scope": "entity.other.attribute-name.id", + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "CSS tag", + "scope": "source.css entity.name.tag", + "settings": { + "foreground": "#FFCB6B" + } + }, + { + "name": "CSS properties", + "scope": "support.type.property-name.css", + "settings": { + "foreground": "#B2CCD6" + } + }, + { + "name": "HTML tag outer", + "scope": "meta.tag, punctuation.definition.tag", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "HTML tag inner", + "scope": "entity.name.tag", + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "HTML tag attribute", + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#C792EA" + } + }, + { + "name": "HTML entities", + "scope": "punctuation.definition.entity.html", + "settings": { + "foreground": "#EEFFFF" + } + }, + { + "name": "Markdown heading", + "scope": "markup.heading", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Markdown link text", + "scope": "text.html.markdown meta.link.inline, meta.link.reference", + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "Markdown list item", + "scope": "text.html.markdown beginning.punctuation.definition.list", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "Markdown italic", + "scope": "markup.italic", + "settings": { + "foreground": "#f07178", + "fontStyle": "italic" + } + }, + { + "name": "Markdown bold", + "scope": "markup.bold", + "settings": { + "foreground": "#f07178", + "fontStyle": "bold" + } + }, + { + "name": "Markdown bold italic", + "scope": "markup.bold markup.italic, markup.italic markup.bold", + "settings": { + "foreground": "#f07178", + "fontStyle": "italic bold" + } + }, + { + "name": "Markdown code block", + "scope": "markup.fenced_code.block.markdown punctuation.definition.markdown", + "settings": { + "foreground": "#C3E88D" + } + }, + { + "name": "Markdown inline code", + "scope": "markup.inline.raw.string.markdown", + "settings": { + "foreground": "#C3E88D" + } + }, + { + "name": "INI property name", + "scope": "keyword.other.definition.ini", + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "INI section title", + "scope": "entity.name.section.group-title.ini", + "settings": { + "foreground": "#89DDFF" + } + }, + { + "name": "C# class", + "scope": "source.cs meta.class.identifier storage.type", + "settings": { + "foreground": "#FFCB6B" + } + }, + { + "name": "C# class method", + "scope": "source.cs meta.method.identifier entity.name.function", + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "C# function call", + "scope": "source.cs meta.method-call meta.method, source.cs entity.name.function", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "C# type", + "scope": "source.cs storage.type", + "settings": { + "foreground": "#FFCB6B" + } + }, + { + "name": "C# return type", + "scope": "source.cs meta.method.return-type", + "settings": { + "foreground": "#FFCB6B" + } + }, + { + "name": "C# preprocessor", + "scope": "source.cs meta.preprocessor", + "settings": { + "foreground": "#546E7A" + } + }, + { + "name": "C# namespace", + "scope": "source.cs entity.name.type.namespace", + "settings": { + "foreground": "#EEFFFF" + } + }, + { + "name": "JSX Text", + "scope": "meta.jsx.children, SXNested", + "settings": { + "foreground": "#EEFFFF" + } + }, + { + "name": "JSX Components name", + "scope": "support.class.component", + "settings": { + "foreground": "#FFCB6B" + } + }, + { + "name": "C-related Block Level Variables", + "scope": "source.cpp meta.block variable.other", + "settings": { + "foreground": "#EEFFFF" + } + }, + { + "name": "Member Access Meta", + "scope": "source.python meta.member.access.python", + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "Function Call", + "scope": "source.python meta.function-call.python, meta.function-call.arguments", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Blocks", + "scope": "meta.block", + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "Function Call", + "scope": "entity.name.function.call", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Namespaces", + "scope": "source.php support.other.namespace, source.php meta.use support.class", + "settings": { + "foreground": "#EEFFFF" + } + }, + { + "name": "Constant keywords", + "scope": "constant.keyword", + "settings": { + "foreground": "#89DDFF", + "fontStyle": "italic" + } + }, + { + "name": "Entity name", + "scope": "entity.name.function", + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "Global settings", + "settings": { + "background": "#263238", + "foreground": "#EEFFFF" + } + }, + { + "name": "Markup Deleted", + "scope": ["markup.deleted"], + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "Markup Inserted", + "scope": ["markup.inserted"], + "settings": { + "foreground": "#C3E88D" + } + }, + { + "name": "Markup Underline", + "scope": ["markup.underline"], + "settings": { + "fontStyle": "underline" + } + }, + { + "name": "Keyword Control", + "scope": ["keyword.control"], + "settings": { + "foreground": "#89DDFF", + "fontStyle": "italic" + } + }, + { + "name": "Parameter", + "scope": ["variable.parameter"], + "settings": { + "fontStyle": "italic" + } + }, + { + "name": "Python - Self Parameter", + "scope": ["variable.parameter.function.language.special.self.python"], + "settings": { + "foreground": "#f07178", + "fontStyle": "italic" + } + }, + { + "name": "Python - Format Placeholder", + "scope": ["constant.character.format.placeholder.other.python"], + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "Markdown - Blockquote", + "scope": ["markup.quote"], + "settings": { + "fontStyle": "italic", + "foreground": "#89DDFF" + } + }, + { + "name": "Markdown - Fenced Language", + "scope": ["markup.fenced_code.block"], + "settings": { + "foreground": "#EEFFFF90" + } + }, + { + "name": "Markdown - Blockquote Punctuation", + "scope": ["punctuation.definition.quote"], + "settings": { + "foreground": "#ff9cac" + } + }, + { + "name": "JSON Key - Level 0", + "scope": ["meta.structure.dictionary.json support.type.property-name.json"], + "settings": { + "foreground": "#C792EA" + } + }, + { + "name": "JSON Key - Level 1", + "scope": [ + "meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#FFCB6B" + } + }, + { + "name": "JSON Key - Level 2", + "scope": [ + "meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#F78C6C" + } + }, + { + "name": "JSON Key - Level 3", + "scope": [ + "meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#f07178" + } + }, + { + "name": "JSON Key - Level 4", + "scope": [ + "meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#916b53" + } + }, + { + "name": "JSON Key - Level 5", + "scope": [ + "meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#82AAFF" + } + }, + { + "name": "JSON Key - Level 6", + "scope": [ + "meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#ff9cac" + } + }, + { + "name": "JSON Key - Level 7", + "scope": [ + "meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#C792EA" + } + }, + { + "name": "JSON Key - Level 8", + "scope": [ + "meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#C3E88D" + } + } + ], + "colors": { + "focusBorder": "#FFFFFF00", + "foreground": "#EEFFFF", + "button.background": "#80CBC420", + "button.foreground": "#ffffff", + "dropdown.background": "#263238", + "input.background": "#303C41", + "inputOption.activeBorder": "#EEFFFF30", + "list.activeSelectionBackground": "#263238", + "list.activeSelectionForeground": "#80CBC4", + "list.dropBackground": "#f0717880", + "list.focusBackground": "#EEFFFF20", + "list.focusForeground": "#EEFFFF", + "list.highlightForeground": "#80CBC4", + "list.hoverBackground": "#263238", + "list.inactiveSelectionBackground": "#00000030", + "activityBar.background": "#263238", + "activityBar.dropBackground": "#f0717880", + "activityBarBadge.background": "#80CBC4", + "activityBarBadge.foreground": "#000000", + "badge.background": "#00000030", + "badge.foreground": "#546E7A", + "sideBar.background": "#263238", + "sideBarSectionHeader.background": "#263238", + "editorGroup.dropBackground": "#f0717880", + "editorGroup.focusedEmptyBorder": "#f07178", + "editorGroupHeader.tabsBackground": "#263238", + "tab.border": "#263238", + "tab.activeBorder": "#80CBC4", + "tab.inactiveBackground": "#263238", + "tab.activeModifiedBorder": "#607a86", + "tab.inactiveModifiedBorder": "#904348", + "tab.unfocusedActiveModifiedBorder": "#c05a60", + "tab.unfocusedInactiveModifiedBorder": "#904348", + "editor.background": "#263238", + "editor.foreground": "#EEFFFF", + "editorLineNumber.foreground": "#465A64", + "editorLineNumber.activeForeground": "#607a86", + "editorCursor.foreground": "#FFCC00", + "editor.selectionBackground": "#80CBC420", + "editor.selectionHighlightBackground": "#FFCC0020", + "editor.wordHighlightBackground": "#ff9cac30", + "editor.wordHighlightStrongBackground": "#C3E88D30", + "editor.findMatchHighlight": "#EEFFFF", + "editor.findRangeHighlightBackground": "#FFCB6B30", + "editor.lineHighlightBorder": "#00000000", + "editor.rangeHighlightBackground": "#FFFFFF0d", + "editorWhitespace.foreground": "#EEFFFF40", + "editorWidget.background": "#263238", + "editorHoverWidget.background": "#263238", + "editorMarkerNavigation.background": "#EEFFFF05", + "peekView.border": "#00000030", + "peekViewEditor.background": "#EEFFFF05", + "peekViewResult.background": "#EEFFFF05", + "peekViewTitle.background": "#EEFFFF05", + "panel.background": "#263238", + "panel.border": "#26323860", + "panelTitle.activeBorder": "#80CBC4", + "panelTitle.inactiveForeground": "#EEFFFF", + "notebook.focusedCellBorder": "#80CBC4", + "notebook.inactiveFocusedCellBorder": "#80CBC450", + "statusBar.background": "#263238", + "statusBar.debuggingBackground": "#C792EA", + "statusBar.debuggingForeground": "#ffffff", + "statusBar.noFolderBackground": "#263238", + "statusBarItem.activeBackground": "#f0717880", + "statusBarItem.hoverBackground": "#546E7A20", + "statusBarItem.remoteBackground": "#80CBC4", + "statusBarItem.remoteForeground": "#000000", + "titleBar.activeBackground": "#263238", + "pickerGroup.border": "#FFFFFF1a", + "terminal.ansiBlack": "#000000", + "terminal.ansiBlue": "#82AAFF", + "terminal.ansiBrightBlack": "#546E7A", + "terminal.ansiBrightBlue": "#82AAFF", + "terminal.ansiBrightCyan": "#89DDFF", + "terminal.ansiBrightGreen": "#C3E88D", + "terminal.ansiBrightMagenta": "#C792EA", + "terminal.ansiBrightRed": "#f07178", + "terminal.ansiBrightWhite": "#ffffff", + "terminal.ansiBrightYellow": "#FFCB6B", + "terminal.ansiCyan": "#89DDFF", + "terminal.ansiGreen": "#C3E88D", + "terminal.ansiMagenta": "#C792EA", + "terminal.ansiRed": "#f07178", + "terminal.ansiWhite": "#ffffff", + "terminal.ansiYellow": "#FFCB6B", + "debugToolBar.background": "#263238", + "debugConsole.errorForeground": "#f07178", + "debugConsole.infoForeground": "#89DDFF", + "debugConsole.warningForeground": "#FFCB6B", + "selection.background": "#00000080", + "editorRuler.foreground": "#37474F", + "widget.shadow": "#00000030", + "scrollbar.shadow": "#00000030", + "editorLink.activeForeground": "#EEFFFF", + "progressBar.background": "#80CBC4", + "pickerGroup.foreground": "#80CBC4", + "tree.indentGuidesStroke": "#37474F", + "terminalCursor.foreground": "#FFCB6B", + "terminalCursor.background": "#000000", + "inputOption.activeBackground": "#EEFFFF30", + "textLink.foreground": "#80CBC4", + "textLink.activeForeground": "#EEFFFF", + "sideBar.foreground": "#607a86", + "sideBar.border": "#26323860", + "sideBarTitle.foreground": "#EEFFFF", + "sideBarSectionHeader.border": "#26323860", + "panel.dropBackground": "#EEFFFF", + "sash.hoverBorder": "#80CBC450", + "panelTitle.activeForeground": "#FFFFFF", + "editor.lineHighlightBackground": "#00000050", + "editor.findMatchBackground": "#000000", + "editor.findMatchHighlightBackground": "#00000050", + "editor.findMatchBorder": "#80CBC4", + "editor.findMatchHighlightBorder": "#ffffff30", + "editorIndentGuide.background": "#37474F70", + "editorIndentGuide.activeBackground": "#37474F", + "editorGroup.border": "#00000030", + "editorGutter.modifiedBackground": "#82AAFF60", + "editorGutter.addedBackground": "#C3E88D60", + "editorGutter.deletedBackground": "#f0717860", + "activityBar.border": "#26323860", + "activityBar.foreground": "#EEFFFF", + "activityBar.activeBorder": "#80CBC4", + "extensionBadge.remoteForeground": "#EEFFFF", + "scrollbarSlider.background": "#EEFFFF20", + "scrollbarSlider.hoverBackground": "#EEFFFF10", + "scrollbarSlider.activeBackground": "#80CBC4", + "tab.unfocusedActiveBorder": "#546E7A", + "tab.activeForeground": "#FFFFFF", + "tab.inactiveForeground": "#607a86", + "tab.activeBackground": "#263238", + "tab.unfocusedActiveForeground": "#EEFFFF", + "editorWidget.resizeBorder": "#80CBC4", + "editorWidget.border": "#80CBC4", + "statusBar.border": "#26323860", + "statusBar.foreground": "#546E7A", + "editorBracketMatch.border": "#FFCC0050", + "editorBracketMatch.background": "#263238", + "editorOverviewRuler.findMatchForeground": "#80CBC4", + "editorOverviewRuler.border": "#263238", + "editorOverviewRuler.errorForeground": "#f0717840", + "editorOverviewRuler.infoForeground": "#82AAFF40", + "editorOverviewRuler.warningForeground": "#FFCB6B40", + "editorInfo.foreground": "#82AAFF70", + "editorWarning.foreground": "#FFCB6B70", + "editorError.foreground": "#f0717870", + "editorHoverWidget.border": "#FFFFFF10", + "titleBar.activeForeground": "#EEFFFF", + "titleBar.inactiveBackground": "#263238", + "titleBar.inactiveForeground": "#607a86", + "titleBar.border": "#26323860", + "input.foreground": "#EEFFFF", + "input.placeholderForeground": "#EEFFFF60", + "input.border": "#FFFFFF10", + "inputValidation.errorBorder": "#f07178", + "inputValidation.infoBorder": "#82AAFF", + "inputValidation.warningBorder": "#FFCB6B", + "dropdown.border": "#FFFFFF10", + "quickInput.background": "#263238", + "quickInput.foreground": "#607a86", + "list.hoverForeground": "#FFFFFF", + "list.inactiveSelectionForeground": "#80CBC4", + "quickInput.list.focusBackground": "#EEFFFF20", + "editorSuggestWidget.background": "#263238", + "editorSuggestWidget.foreground": "#EEFFFF", + "editorSuggestWidget.highlightForeground": "#80CBC4", + "editorSuggestWidget.selectedBackground": "#00000050", + "editorSuggestWidget.border": "#FFFFFF10", + "diffEditor.insertedTextBackground": "#89DDFF20", + "diffEditor.removedTextBackground": "#ff9cac20", + "notifications.background": "#263238", + "notifications.foreground": "#EEFFFF", + "notificationLink.foreground": "#80CBC4", + "extensionButton.prominentBackground": "#C3E88D90", + "extensionButton.prominentHoverBackground": "#C3E88D", + "extensionButton.prominentForeground": "#EEFFFF", + "peekViewEditorGutter.background": "#EEFFFF05", + "peekViewTitleDescription.foreground": "#EEFFFF60", + "peekViewResult.matchHighlightBackground": "#80CBC420", + "peekViewEditor.matchHighlightBackground": "#80CBC420", + "peekViewResult.selectionBackground": "#607a8670", + "gitDecoration.deletedResourceForeground": "#f0717890", + "gitDecoration.conflictingResourceForeground": "#FFCB6B90", + "gitDecoration.modifiedResourceForeground": "#82AAFF90", + "gitDecoration.untrackedResourceForeground": "#C3E88D90", + "gitDecoration.ignoredResourceForeground": "#607a8690", + "breadcrumb.background": "#263238", + "breadcrumb.foreground": "#607a86", + "breadcrumb.focusForeground": "#EEFFFF", + "breadcrumb.activeSelectionForeground": "#80CBC4", + "breadcrumbPicker.background": "#263238", + "menu.background": "#263238", + "menu.foreground": "#EEFFFF", + "menu.selectionBackground": "#00000050", + "menu.selectionForeground": "#80CBC4", + "menu.selectionBorder": "#00000030", + "menu.separatorBackground": "#EEFFFF", + "menubar.selectionBackground": "#00000030", + "menubar.selectionForeground": "#80CBC4", + "menubar.selectionBorder": "#00000030", + "settings.dropdownForeground": "#EEFFFF", + "settings.dropdownBackground": "#263238", + "settings.numberInputForeground": "#EEFFFF", + "settings.numberInputBackground": "#263238", + "settings.textInputForeground": "#EEFFFF", + "settings.textInputBackground": "#263238", + "settings.headerForeground": "#80CBC4", + "settings.modifiedItemIndicator": "#80CBC4", + "settings.checkboxBackground": "#263238", + "settings.checkboxForeground": "#EEFFFF", + "listFilterWidget.background": "#00000030", + "listFilterWidget.outline": "#00000030", + "listFilterWidget.noMatchesOutline": "#00000030" + } +} diff --git a/docs/shiki/themes/min-dark.json b/docs/shiki/themes/min-dark.json new file mode 100644 index 00000000..830375a8 --- /dev/null +++ b/docs/shiki/themes/min-dark.json @@ -0,0 +1,294 @@ +{ + "name": "min-dark", + "type": "dark", + "colors": { + "editorIndentGuide.activeBackground": "#383838", + "editorIndentGuide.background": "#2A2A2A", + "editorRuler.foreground": "#2A2A2A", + "editorLineNumber.foreground": "#727272", + "activityBar.background": "#1A1A1A", + "activityBar.foreground": "#7D7D7D", + "activityBarBadge.background": "#383838", + "badge.background": "#383838", + "badge.foreground": "#C1C1C1", + "button.background": "#333", + "editor.background": "#1f1f1f", + "editor.lineHighlightBorder": "#303030", + "editorGroupHeader.tabsBackground": "#1A1A1A", + "editorGroupHeader.tabsBorder": "#1A1A1A", + "editorSuggestWidget.background": "#1A1A1A", + "focusBorder": "#444", + "foreground": "#888888", + "gitDecoration.ignoredResourceForeground": "#444444", + "input.background": "#2A2A2A", + "input.foreground": "#E0E0E0", + "list.activeSelectionBackground": "#212121", + "list.activeSelectionForeground": "#F5F5F5", + "list.focusBackground": "#292929", + "list.highlightForeground": "#EAEAEA", + "list.hoverBackground": "#262626", + "list.hoverForeground": "#9E9E9E", + "list.inactiveSelectionBackground": "#212121", + "list.inactiveSelectionForeground": "#F5F5F5", + "panelTitle.activeBorder": "#1f1f1f", + "panelTitle.activeForeground": "#FAFAFA", + "panelTitle.inactiveForeground": "#484848", + "peekView.border": "#444", + "peekViewEditor.background": "#242424", + "pickerGroup.border": "#363636", + "pickerGroup.foreground": "#EAEAEA", + "progressBar.background": "#FAFAFA", + "scrollbar.shadow": "#1f1f1f", + "sideBar.background": "#1A1A1A", + "sideBarSectionHeader.background": "#202020", + "statusBar.background": "#1A1A1A", + "statusBar.debuggingBackground": "#1A1A1A", + "statusBar.foreground": "#7E7E7E", + "statusBar.noFolderBackground": "#1A1A1A", + "statusBarItem.remoteForeground": "#7E7E7E", + "statusBarItem.remoteBackground": "#1a1a1a00", + "statusBarItem.prominentBackground": "#fafafa1a", + "tab.activeBorder": "#1e1e1e", + "tab.activeForeground": "#FAFAFA", + "tab.border": "#1A1A1A", + "tab.inactiveBackground": "#1A1A1A", + "tab.inactiveForeground": "#727272", + "textLink.foreground": "#CCC", + "textLink.activeForeground": "#fafafa", + "titleBar.activeBackground": "#1A1A1A", + "titleBar.border": "#00000000", + "terminal.ansiBrightBlack": "#5c5c5c", + "inputOption.activeBackground": "#3a3a3a", + "debugIcon.continueForeground": "#FF7A84", + "debugIcon.disconnectForeground": "#FF7A84", + "debugIcon.pauseForeground": "#FF7A84", + "debugIcon.restartForeground": "#79b8ff", + "debugIcon.startForeground": "#79b8ff", + "debugIcon.stepBackForeground": "#FF7A84", + "debugIcon.stepIntoForeground": "#FF7A84", + "debugIcon.stepOutForeground": "#FF7A84", + "debugIcon.stepOverForeground": "#FF7A84", + "debugIcon.stopForeground": "#79b8ff", + "debugIcon.breakpointCurrentStackframeForeground": "#79b8ff", + "debugIcon.breakpointDisabledForeground": "#848484", + "debugIcon.breakpointForeground": "#FF7A84", + "debugIcon.breakpointStackframeForeground": "#79b8ff", + "debugIcon.breakpointUnverifiedForeground": "#848484", + "symbolIcon.classForeground": "#FF9800", + "symbolIcon.enumeratorForeground": "#FF9800", + "symbolIcon.eventForeground": "#FF9800", + "symbolIcon.methodForeground": "#b392f0", + "symbolIcon.constructorForeground": "#b392f0", + "symbolIcon.functionForeground": "#b392f0", + "symbolIcon.fieldForeground": "#79b8ff", + "symbolIcon.interfaceForeground": "#79b8ff", + "symbolIcon.variableForeground": "#79b8ff", + "symbolIcon.enumeratorMemberForeground": "#79b8ff", + "diffEditor.insertedTextBackground": "#3a632a4b", + "diffEditor.removedTextBackground": "#88063852" + }, + "tokenColors": [ + { + "settings": { + "foreground": "#b392f0" + } + }, + { + "scope": [ + "support.function", + "keyword.operator.accessor", + "meta.group.braces.round.function.arguments", + "meta.template.expression", + "markup.fenced_code meta.embedded.block" + ], + "settings": { + "foreground": "#b392f0" + } + }, + { + "scope": "emphasis", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": ["strong", "markup.heading.markdown", "markup.bold.markdown"], + "settings": { + "fontStyle": "bold", + "foreground": "#FF7A84" + } + }, + { + "scope": ["markup.italic.markdown"], + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "meta.link.inline.markdown", + "settings": { + "fontStyle": "underline", + "foreground": "#1976D2" + } + }, + { + "scope": ["string", "markup.fenced_code", "markup.inline"], + "settings": { + "foreground": "#9db1c5" + } + }, + { + "scope": ["comment", "string.quoted.docstring.multi"], + "settings": { + "foreground": "#6b737c" + } + }, + { + "scope": [ + "constant.language", + "variable.language.this", + "variable.other.object", + "variable.other.class", + "variable.other.constant", + "meta.property-name", + "support", + "string.other.link.title.markdown" + ], + "settings": { + "foreground": "#79b8ff" + } + }, + { + "scope": [ + "constant.numeric", + "constant.other.placeholder", + "constant.character.format.placeholder", + "meta.property-value", + "keyword.other.unit", + "keyword.other.template", + "entity.name.tag.yaml", + "entity.other.attribute-name", + "support.type.property-name.json" + ], + "settings": { + "foreground": "#f8f8f8" + } + }, + { + "scope": [ + "keyword", + "storage.modifier", + "storage.type", + "storage.control.clojure", + "entity.name.function.clojure", + "support.function.node", + "punctuation.separator.key-value", + "punctuation.definition.template-expression" + ], + "settings": { + "foreground": "#f97583" + } + }, + { + "scope": "variable.parameter.function", + "settings": { + "foreground": "#FF9800" + } + }, + { + "scope": [ + "entity.name.type", + "entity.other.inherited-class", + "meta.function-call", + "meta.instance.constructor", + "entity.other.attribute-name", + "entity.name.function", + "constant.keyword.clojure" + ], + "settings": { + "foreground": "#b392f0" + } + }, + { + "scope": [ + "entity.name.tag", + "string.quoted", + "string.regexp", + "string.interpolated", + "string.template", + "string.unquoted.plain.out.yaml", + "keyword.other.template" + ], + "settings": { + "foreground": "#ffab70" + } + }, + { + "scope": "token.info-token", + "settings": { + "foreground": "#316bcd" + } + }, + { + "scope": "token.warn-token", + "settings": { + "foreground": "#cd9731" + } + }, + { + "scope": "token.error-token", + "settings": { + "foreground": "#cd3131" + } + }, + { + "scope": "token.debug-token", + "settings": { + "foreground": "#800080" + } + }, + { + "scope": [ + "punctuation.definition.arguments", + "punctuation.definition.dict", + "punctuation.separator", + "meta.function-call.arguments" + ], + "settings": { + "foreground": "#bbbbbb" + } + }, + { + "name": "[Custom] Markdown links", + "scope": "markup.underline.link", + "settings": { + "foreground": "#ffab70" + } + }, + { + "name": "[Custom] Markdown list", + "scope": ["beginning.punctuation.definition.list.markdown"], + "settings": { + "foreground": "#FF7A84" + } + }, + { + "name": "[Custom] Markdown punctuation definition", + "scope": "punctuation.definition.metadata.markdown", + "settings": { + "foreground": "#ffab70" + } + }, + { + "name": "[Custom] Markdown punctuation definition brackets", + "scope": [ + "punctuation.definition.string.begin.markdown", + "punctuation.definition.string.end.markdown" + ], + "settings": { + "foreground": "#79b8ff" + } + } + ], + "semanticHighlighting": true +} diff --git a/docs/shiki/themes/min-light.json b/docs/shiki/themes/min-light.json new file mode 100644 index 00000000..16048236 --- /dev/null +++ b/docs/shiki/themes/min-light.json @@ -0,0 +1,305 @@ +{ + "name": "min-light", + "type": "light", + "colors": { + "activityBar.background": "#f6f6f6", + "activityBar.foreground": "#9E9E9E", + "activityBarBadge.background": "#616161", + "badge.background": "#E0E0E0", + "badge.foreground": "#616161", + "button.background": "#757575", + "button.hoverBackground": "#616161", + "editor.background": "#ffffff", + "editor.foreground": "#212121", + "editor.lineHighlightBorder": "#f2f2f2", + "editorBracketMatch.background": "#E7F3FF", + "editorBracketMatch.border": "#c8e1ff", + "editorGroupHeader.tabsBackground": "#f6f6f6", + "editorGroupHeader.tabsBorder": "#fff", + "editorIndentGuide.background": "#EEE", + "editorLineNumber.activeForeground": "#757575", + "editorLineNumber.foreground": "#CCC", + "editorSuggestWidget.background": "#F3F3F3", + "extensionButton.prominentBackground": "#000000AA", + "extensionButton.prominentHoverBackground": "#000000BB", + "focusBorder": "#D0D0D0", + "foreground": "#757575", + "gitDecoration.ignoredResourceForeground": "#AAAAAA", + "input.border": "#E9E9E9", + "list.activeSelectionBackground": "#EEE", + "list.activeSelectionForeground": "#212121", + "list.focusBackground": "#ddd", + "list.focusForeground": "#212121", + "list.highlightForeground": "#212121", + "list.inactiveSelectionBackground": "#E0E0E0", + "list.inactiveSelectionForeground": "#212121", + "panel.background": "#fff", + "panel.border": "#f4f4f4", + "panelTitle.activeBorder": "#fff", + "panelTitle.inactiveForeground": "#BDBDBD", + "peekView.border": "#E0E0E0", + "peekViewEditor.background": "#f8f8f8", + "pickerGroup.foreground": "#000", + "progressBar.background": "#000", + "scrollbar.shadow": "#FFF", + "sideBar.background": "#f6f6f6", + "sideBar.border": "#f6f6f6", + "sideBarSectionHeader.background": "#EEE", + "sideBarTitle.foreground": "#999", + "statusBar.background": "#f6f6f6", + "statusBar.border": "#f6f6f6", + "statusBar.debuggingBackground": "#f6f6f6", + "statusBar.foreground": "#7E7E7E", + "statusBar.noFolderBackground": "#f6f6f6", + "statusBarItem.remoteForeground": "#7E7E7E", + "statusBarItem.remoteBackground": "#f6f6f600", + "statusBarItem.prominentBackground": "#0000001a", + "tab.activeBorder": "#FFF", + "tab.activeForeground": "#424242", + "tab.border": "#f6f6f6", + "tab.inactiveBackground": "#f6f6f6", + "tab.inactiveForeground": "#BDBDBD", + "tab.unfocusedActiveBorder": "#fff", + "terminal.ansiBlack": "#333", + "terminal.ansiBlue": "#e0e0e0", + "terminal.ansiBrightBlack": "#a1a1a1", + "terminal.ansiBrightBlue": "#6871ff", + "terminal.ansiBrightCyan": "#57d9ad", + "terminal.ansiBrightGreen": "#a3d900", + "terminal.ansiBrightMagenta": "#a37acc", + "terminal.ansiBrightRed": "#d6656a", + "terminal.ansiBrightWhite": "#7E7E7E", + "terminal.ansiBrightYellow": "#e7c547", + "terminal.ansiCyan": "#4dbf99", + "terminal.ansiGreen": "#77cc00", + "terminal.ansiMagenta": "#9966cc", + "terminal.ansiRed": "#D32F2F", + "terminal.ansiWhite": "#c7c7c7", + "terminal.ansiYellow": "#f29718", + "terminal.background": "#fff", + "textLink.activeForeground": "#000", + "textLink.foreground": "#000", + "titleBar.activeBackground": "#f6f6f6", + "titleBar.border": "#FFFFFF00", + "titleBar.inactiveBackground": "#f6f6f6", + "inputOption.activeBackground": "#EDEDED", + "debugIcon.continueForeground": "#6f42c1", + "debugIcon.disconnectForeground": "#6f42c1", + "debugIcon.pauseForeground": "#6f42c1", + "debugIcon.restartForeground": "#1976D2", + "debugIcon.startForeground": "#1976D2", + "debugIcon.stepBackForeground": "#6f42c1", + "debugIcon.stepIntoForeground": "#6f42c1", + "debugIcon.stepOutForeground": "#6f42c1", + "debugIcon.stepOverForeground": "#6f42c1", + "debugIcon.stopForeground": "#1976D2", + "debugIcon.breakpointCurrentStackframeForeground": "#1976D2", + "debugIcon.breakpointDisabledForeground": "#848484", + "debugIcon.breakpointForeground": "#D32F2F", + "debugIcon.breakpointStackframeForeground": "#1976D2", + "symbolIcon.classForeground": "#dd8500", + "symbolIcon.enumeratorForeground": "#dd8500", + "symbolIcon.eventForeground": "#dd8500", + "symbolIcon.methodForeground": "#6f42c1", + "symbolIcon.constructorForeground": "#6f42c1", + "symbolIcon.functionForeground": "#6f42c1", + "symbolIcon.fieldForeground": "#1976D2", + "symbolIcon.interfaceForeground": "#1976D2", + "symbolIcon.variableForeground": "#1976D2", + "symbolIcon.enumeratorMemberForeground": "#1976D2", + "diffEditor.removedTextBackground": "#e597af52", + "diffEditor.insertedTextBackground": "#b7e7a44b" + }, + "tokenColors": [ + { + "settings": { + "foreground": "#24292eff" + } + }, + { + "scope": [ + "keyword.operator.accessor", + "meta.group.braces.round.function.arguments", + "meta.template.expression", + "markup.fenced_code meta.embedded.block" + ], + "settings": { + "foreground": "#24292eff" + } + }, + { + "scope": "emphasis", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": ["strong", "markup.heading.markdown", "markup.bold.markdown"], + "settings": { + "fontStyle": "bold" + } + }, + { + "scope": ["markup.italic.markdown"], + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "meta.link.inline.markdown", + "settings": { + "fontStyle": "underline", + "foreground": "#1976D2" + } + }, + { + "scope": ["string", "markup.fenced_code", "markup.inline"], + "settings": { + "foreground": "#2b5581" + } + }, + { + "scope": ["comment", "string.quoted.docstring.multi"], + "settings": { + "foreground": "#c2c3c5" + } + }, + { + "scope": [ + "constant.numeric", + "constant.language", + "constant.other.placeholder", + "constant.character.format.placeholder", + "variable.language.this", + "variable.other.object", + "variable.other.class", + "variable.other.constant", + "meta.property-name", + "meta.property-value", + "support" + ], + "settings": { + "foreground": "#1976D2" + } + }, + { + "scope": [ + "keyword", + "storage.modifier", + "storage.type", + "storage.control.clojure", + "entity.name.function.clojure", + "entity.name.tag.yaml", + "support.function.node", + "support.type.property-name.json", + "punctuation.separator.key-value", + "punctuation.definition.template-expression" + ], + "settings": { + "foreground": "#D32F2F" + } + }, + { + "scope": "variable.parameter.function", + "settings": { + "foreground": "#FF9800" + } + }, + { + "scope": [ + "support.function", + "entity.name.type", + "entity.other.inherited-class", + "meta.function-call", + "meta.instance.constructor", + "entity.other.attribute-name", + "entity.name.function", + "constant.keyword.clojure" + ], + "settings": { + "foreground": "#6f42c1" + } + }, + { + "scope": [ + "entity.name.tag", + "string.quoted", + "string.regexp", + "string.interpolated", + "string.template", + "string.unquoted.plain.out.yaml", + "keyword.other.template" + ], + "settings": { + "foreground": "#22863a" + } + }, + { + "scope": "token.info-token", + "settings": { + "foreground": "#316bcd" + } + }, + { + "scope": "token.warn-token", + "settings": { + "foreground": "#cd9731" + } + }, + { + "scope": "token.error-token", + "settings": { + "foreground": "#cd3131" + } + }, + { + "scope": "token.debug-token", + "settings": { + "foreground": "#800080" + } + }, + { + "scope": ["strong", "markup.heading.markdown", "markup.bold.markdown"], + "settings": { + "foreground": "#6f42c1" + } + }, + { + "scope": [ + "punctuation.definition.arguments", + "punctuation.definition.dict", + "punctuation.separator", + "meta.function-call.arguments" + ], + "settings": { + "foreground": "#212121" + } + }, + { + "name": "[Custom] Markdown links", + "scope": ["markup.underline.link", "punctuation.definition.metadata.markdown"], + "settings": { + "foreground": "#22863a" + } + }, + { + "name": "[Custom] Markdown list", + "scope": ["beginning.punctuation.definition.list.markdown"], + "settings": { + "foreground": "#6f42c1" + } + }, + { + "name": "[Custom] Markdown punctuation definition brackets", + "scope": [ + "punctuation.definition.string.begin.markdown", + "punctuation.definition.string.end.markdown", + "string.other.link.title.markdown", + "string.other.link.description.markdown" + ], + "settings": { + "foreground": "#d32f2f" + } + } + ] +} diff --git a/docs/shiki/themes/monokai.json b/docs/shiki/themes/monokai.json new file mode 100644 index 00000000..3829ff3a --- /dev/null +++ b/docs/shiki/themes/monokai.json @@ -0,0 +1,477 @@ +{ + "type": "dark", + "colors": { + "dropdown.background": "#414339", + "list.activeSelectionBackground": "#75715E", + "quickInputList.focusBackground": "#414339", + "dropdown.listBackground": "#1e1f1c", + "list.inactiveSelectionBackground": "#414339", + "list.hoverBackground": "#3e3d32", + "list.dropBackground": "#414339", + "list.highlightForeground": "#f8f8f2", + "button.background": "#75715E", + "editor.background": "#272822", + "editor.foreground": "#f8f8f2", + "selection.background": "#878b9180", + "editor.selectionHighlightBackground": "#575b6180", + "editor.selectionBackground": "#878b9180", + "minimap.selectionHighlight": "#878b9180", + "editor.wordHighlightBackground": "#4a4a7680", + "editor.wordHighlightStrongBackground": "#6a6a9680", + "editor.lineHighlightBackground": "#3e3d32", + "editorLineNumber.activeForeground": "#c2c2bf", + "editorCursor.foreground": "#f8f8f0", + "editorWhitespace.foreground": "#464741", + "editorIndentGuide.background": "#464741", + "editorIndentGuide.activeBackground": "#767771", + "editorGroupHeader.tabsBackground": "#1e1f1c", + "editorGroup.dropBackground": "#41433980", + "tab.inactiveBackground": "#34352f", + "tab.border": "#1e1f1c", + "tab.inactiveForeground": "#ccccc7", + "tab.lastPinnedBorder": "#414339", + "widget.shadow": "#00000098", + "progressBar.background": "#75715E", + "badge.background": "#75715E", + "badge.foreground": "#f8f8f2", + "editorLineNumber.foreground": "#90908a", + "panelTitle.activeForeground": "#f8f8f2", + "panelTitle.activeBorder": "#75715E", + "panelTitle.inactiveForeground": "#75715E", + "panel.border": "#414339", + "settings.focusedRowBackground": "#4143395A", + "titleBar.activeBackground": "#1e1f1c", + "statusBar.background": "#414339", + "statusBar.noFolderBackground": "#414339", + "statusBar.debuggingBackground": "#75715E", + "statusBarItem.remoteBackground": "#AC6218", + "ports.iconRunningProcessForeground": "#ccccc7", + "activityBar.background": "#272822", + "activityBar.foreground": "#f8f8f2", + "sideBar.background": "#1e1f1c", + "sideBarSectionHeader.background": "#272822", + "menu.background": "#1e1f1c", + "menu.foreground": "#cccccc", + "pickerGroup.foreground": "#75715E", + "input.background": "#414339", + "inputOption.activeBorder": "#75715E", + "focusBorder": "#99947c", + "editorWidget.background": "#1e1f1c", + "debugToolBar.background": "#1e1f1c", + "diffEditor.insertedTextBackground": "#4b661680", + "diffEditor.removedTextBackground": "#90274A70", + "inputValidation.errorBackground": "#90274A", + "inputValidation.errorBorder": "#f92672", + "inputValidation.warningBackground": "#848528", + "inputValidation.warningBorder": "#e2e22e", + "inputValidation.infoBackground": "#546190", + "inputValidation.infoBorder": "#819aff", + "editorHoverWidget.background": "#414339", + "editorHoverWidget.border": "#75715E", + "editorSuggestWidget.background": "#272822", + "editorSuggestWidget.border": "#75715E", + "editorGroup.border": "#34352f", + "peekView.border": "#75715E", + "peekViewEditor.background": "#272822", + "peekViewResult.background": "#1e1f1c", + "peekViewTitle.background": "#1e1f1c", + "peekViewResult.selectionBackground": "#414339", + "peekViewResult.matchHighlightBackground": "#75715E", + "peekViewEditor.matchHighlightBackground": "#75715E", + "terminal.ansiBlack": "#333333", + "terminal.ansiRed": "#C4265E", + "terminal.ansiGreen": "#86B42B", + "terminal.ansiYellow": "#B3B42B", + "terminal.ansiBlue": "#6A7EC8", + "terminal.ansiMagenta": "#8C6BC8", + "terminal.ansiCyan": "#56ADBC", + "terminal.ansiWhite": "#e3e3dd", + "terminal.ansiBrightBlack": "#666666", + "terminal.ansiBrightRed": "#f92672", + "terminal.ansiBrightGreen": "#A6E22E", + "terminal.ansiBrightYellow": "#e2e22e", + "terminal.ansiBrightBlue": "#819aff", + "terminal.ansiBrightMagenta": "#AE81FF", + "terminal.ansiBrightCyan": "#66D9EF", + "terminal.ansiBrightWhite": "#f8f8f2" + }, + "tokenColors": [ + { + "settings": { + "foreground": "#F8F8F2" + } + }, + { + "scope": [ + "meta.embedded", + "source.groovy.embedded", + "string meta.image.inline.markdown", + "variable.legacy.builtin.python" + ], + "settings": { + "foreground": "#F8F8F2" + } + }, + { + "name": "Comment", + "scope": "comment", + "settings": { + "foreground": "#88846f" + } + }, + { + "name": "String", + "scope": "string", + "settings": { + "foreground": "#E6DB74" + } + }, + { + "name": "Template Definition", + "scope": ["punctuation.definition.template-expression", "punctuation.section.embedded"], + "settings": { + "foreground": "#F92672" + } + }, + { + "name": "Reset JavaScript string interpolation expression", + "scope": ["meta.template.expression"], + "settings": { + "foreground": "#F8F8F2" + } + }, + { + "name": "Number", + "scope": "constant.numeric", + "settings": { + "foreground": "#AE81FF" + } + }, + { + "name": "Built-in constant", + "scope": "constant.language", + "settings": { + "foreground": "#AE81FF" + } + }, + { + "name": "User-defined constant", + "scope": "constant.character, constant.other", + "settings": { + "foreground": "#AE81FF" + } + }, + { + "name": "Variable", + "scope": "variable", + "settings": { + "fontStyle": "", + "foreground": "#F8F8F2" + } + }, + { + "name": "Keyword", + "scope": "keyword", + "settings": { + "foreground": "#F92672" + } + }, + { + "name": "Storage", + "scope": "storage", + "settings": { + "fontStyle": "", + "foreground": "#F92672" + } + }, + { + "name": "Storage type", + "scope": "storage.type", + "settings": { + "fontStyle": "italic", + "foreground": "#66D9EF" + } + }, + { + "name": "Class name", + "scope": "entity.name.type, entity.name.class, entity.name.namespace, entity.name.scope-resolution", + "settings": { + "fontStyle": "underline", + "foreground": "#A6E22E" + } + }, + { + "name": "Inherited class", + "scope": "entity.other.inherited-class", + "settings": { + "fontStyle": "italic underline", + "foreground": "#A6E22E" + } + }, + { + "name": "Function name", + "scope": "entity.name.function", + "settings": { + "fontStyle": "", + "foreground": "#A6E22E" + } + }, + { + "name": "Function argument", + "scope": "variable.parameter", + "settings": { + "fontStyle": "italic", + "foreground": "#FD971F" + } + }, + { + "name": "Tag name", + "scope": "entity.name.tag", + "settings": { + "fontStyle": "", + "foreground": "#F92672" + } + }, + { + "name": "Tag attribute", + "scope": "entity.other.attribute-name", + "settings": { + "fontStyle": "", + "foreground": "#A6E22E" + } + }, + { + "name": "Library function", + "scope": "support.function", + "settings": { + "fontStyle": "", + "foreground": "#66D9EF" + } + }, + { + "name": "Library constant", + "scope": "support.constant", + "settings": { + "fontStyle": "", + "foreground": "#66D9EF" + } + }, + { + "name": "Library class/type", + "scope": "support.type, support.class", + "settings": { + "fontStyle": "italic", + "foreground": "#66D9EF" + } + }, + { + "name": "Library variable", + "scope": "support.other.variable", + "settings": { + "fontStyle": "" + } + }, + { + "name": "Invalid", + "scope": "invalid", + "settings": { + "fontStyle": "", + "foreground": "#F44747" + } + }, + { + "name": "Invalid deprecated", + "scope": "invalid.deprecated", + "settings": { + "foreground": "#F44747" + } + }, + { + "name": "JSON String", + "scope": "meta.structure.dictionary.json string.quoted.double.json", + "settings": { + "foreground": "#CFCFC2" + } + }, + { + "name": "diff.header", + "scope": "meta.diff, meta.diff.header", + "settings": { + "foreground": "#75715E" + } + }, + { + "name": "diff.deleted", + "scope": "markup.deleted", + "settings": { + "foreground": "#F92672" + } + }, + { + "name": "diff.inserted", + "scope": "markup.inserted", + "settings": { + "foreground": "#A6E22E" + } + }, + { + "name": "diff.changed", + "scope": "markup.changed", + "settings": { + "foreground": "#E6DB74" + } + }, + { + "scope": "constant.numeric.line-number.find-in-files - match", + "settings": { + "foreground": "#AE81FFA0" + } + }, + { + "scope": "entity.name.filename.find-in-files", + "settings": { + "foreground": "#E6DB74" + } + }, + { + "name": "Markup Quote", + "scope": "markup.quote", + "settings": { + "foreground": "#F92672" + } + }, + { + "name": "Markup Lists", + "scope": "markup.list", + "settings": { + "foreground": "#E6DB74" + } + }, + { + "name": "Markup Styling", + "scope": "markup.bold, markup.italic", + "settings": { + "foreground": "#66D9EF" + } + }, + { + "name": "Markup Inline", + "scope": "markup.inline.raw", + "settings": { + "fontStyle": "", + "foreground": "#FD971F" + } + }, + { + "name": "Markup Headings", + "scope": "markup.heading", + "settings": { + "foreground": "#A6E22E" + } + }, + { + "name": "Markup Setext Header", + "scope": "markup.heading.setext", + "settings": { + "foreground": "#A6E22E", + "fontStyle": "bold" + } + }, + { + "name": "Markup Headings", + "scope": "markup.heading.markdown", + "settings": { + "fontStyle": "bold" + } + }, + { + "name": "Markdown Quote", + "scope": "markup.quote.markdown", + "settings": { + "fontStyle": "italic", + "foreground": "#75715E" + } + }, + { + "name": "Markdown Bold", + "scope": "markup.bold.markdown", + "settings": { + "fontStyle": "bold" + } + }, + { + "name": "Markdown Link Title/Description", + "scope": "string.other.link.title.markdown,string.other.link.description.markdown", + "settings": { + "foreground": "#AE81FF" + } + }, + { + "name": "Markdown Underline Link/Image", + "scope": "markup.underline.link.markdown,markup.underline.link.image.markdown", + "settings": { + "foreground": "#E6DB74" + } + }, + { + "name": "Markdown Emphasis", + "scope": "markup.italic.markdown", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "markup.strikethrough", + "settings": { + "fontStyle": "strikethrough" + } + }, + { + "name": "Markdown Punctuation Definition Link", + "scope": "markup.list.unnumbered.markdown, markup.list.numbered.markdown", + "settings": { + "foreground": "#f8f8f2" + } + }, + { + "name": "Markdown List Punctuation", + "scope": ["punctuation.definition.list.begin.markdown"], + "settings": { + "foreground": "#A6E22E" + } + }, + { + "scope": "token.info-token", + "settings": { + "foreground": "#6796e6" + } + }, + { + "scope": "token.warn-token", + "settings": { + "foreground": "#cd9731" + } + }, + { + "scope": "token.error-token", + "settings": { + "foreground": "#f44747" + } + }, + { + "scope": "token.debug-token", + "settings": { + "foreground": "#b267e6" + } + }, + { + "name": "this.self", + "scope": "variable.language", + "settings": { + "foreground": "#FD971F" + } + } + ], + "semanticHighlighting": true, + "name": "monokai" +} diff --git a/docs/shiki/themes/nord.json b/docs/shiki/themes/nord.json new file mode 100644 index 00000000..8fa85590 --- /dev/null +++ b/docs/shiki/themes/nord.json @@ -0,0 +1,1402 @@ +{ + "name": "nord", + "type": "dark", + "semanticHighlighting": true, + "colors": { + "focusBorder": "#3b4252", + "foreground": "#d8dee9", + "activityBar.background": "#2e3440", + "activityBar.dropBackground": "#3b4252", + "activityBar.foreground": "#d8dee9", + "activityBar.activeBorder": "#88c0d0", + "activityBar.activeBackground": "#3b4252", + "activityBarBadge.background": "#88c0d0", + "activityBarBadge.foreground": "#2e3440", + "badge.foreground": "#2e3440", + "badge.background": "#88c0d0", + "button.background": "#88c0d0ee", + "button.foreground": "#2e3440", + "button.hoverBackground": "#88c0d0", + "button.secondaryBackground": "#434c5e", + "button.secondaryForeground": "#d8dee9", + "button.secondaryHoverBackground": "#4c566a", + "charts.red": "#bf616a", + "charts.blue": "#81a1c1", + "charts.yellow": "#ebcb8b", + "charts.orange": "#d08770", + "charts.green": "#a3be8c", + "charts.purple": "#b48ead", + "charts.foreground": "#d8dee9", + "charts.lines": "#88c0d0", + "debugConsole.infoForeground": "#88c0d0", + "debugConsole.warningForeground": "#ebcb8b", + "debugConsole.errorForeground": "#bf616a", + "debugConsole.sourceForeground": "#616e88", + "debugConsoleInputIcon.foreground": "#81a1c1", + "debugExceptionWidget.background": "#4c566a", + "debugExceptionWidget.border": "#2e3440", + "debugToolBar.background": "#3b4252", + "descriptionForeground": "#d8dee9e6", + "diffEditor.insertedTextBackground": "#81a1c133", + "diffEditor.removedTextBackground": "#bf616a4d", + "dropdown.background": "#3b4252", + "dropdown.border": "#3b4252", + "dropdown.foreground": "#d8dee9", + "editorActiveLineNumber.foreground": "#d8dee9cc", + "editorCursor.foreground": "#d8dee9", + "editorHint.border": "#ebcb8b00", + "editorHint.foreground": "#ebcb8b", + "editorIndentGuide.background": "#434c5eb3", + "editorIndentGuide.activeBackground": "#4c566a", + "editorInlayHint.background": "#434c5e", + "editorInlayHint.foreground": "#d8dee9", + "editorLineNumber.foreground": "#4c566a", + "editorLineNumber.activeForeground": "#d8dee9", + "editorWhitespace.foreground": "#4c566ab3", + "editorWidget.background": "#2e3440", + "editorWidget.border": "#3b4252", + "editor.background": "#2e3440", + "editor.foreground": "#d8dee9", + "editor.hoverHighlightBackground": "#3b4252", + "editor.findMatchBackground": "#88c0d066", + "editor.findMatchHighlightBackground": "#88c0d033", + "editor.findRangeHighlightBackground": "#88c0d033", + "editor.lineHighlightBackground": "#3b4252", + "editor.lineHighlightBorder": "#3b4252", + "editor.inactiveSelectionBackground": "#434c5ecc", + "editor.inlineValuesBackground": "#4c566a", + "editor.inlineValuesForeground": "#eceff4", + "editor.selectionBackground": "#434c5ecc", + "editor.selectionHighlightBackground": "#434c5ecc", + "editor.rangeHighlightBackground": "#434c5e52", + "editor.wordHighlightBackground": "#81a1c166", + "editor.wordHighlightStrongBackground": "#81a1c199", + "editor.stackFrameHighlightBackground": "#5e81ac", + "editor.focusedStackFrameHighlightBackground": "#5e81ac", + "editorError.foreground": "#bf616a", + "editorError.border": "#bf616a00", + "editorWarning.foreground": "#ebcb8b", + "editorWarning.border": "#ebcb8b00", + "editorBracketMatch.background": "#2e344000", + "editorBracketMatch.border": "#88c0d0", + "editorBracketHighlight.foreground1": "#8fbcbb", + "editorBracketHighlight.foreground2": "#88c0d0", + "editorBracketHighlight.foreground3": "#81a1c1", + "editorBracketHighlight.foreground4": "#5e81ac", + "editorBracketHighlight.foreground5": "#8fbcbb", + "editorBracketHighlight.foreground6": "#88c0d0", + "editorBracketHighlight.unexpectedBracket.foreground": "#bf616a", + "editorCodeLens.foreground": "#4c566a", + "editorGroup.background": "#2e3440", + "editorGroup.border": "#3b425201", + "editorGroup.dropBackground": "#3b425299", + "editorGroupHeader.border": "#3b425200", + "editorGroupHeader.noTabsBackground": "#2e3440", + "editorGroupHeader.tabsBackground": "#2e3440", + "editorGroupHeader.tabsBorder": "#3b425200", + "editorGutter.background": "#2e3440", + "editorGutter.modifiedBackground": "#ebcb8b", + "editorGutter.addedBackground": "#a3be8c", + "editorGutter.deletedBackground": "#bf616a", + "editorHoverWidget.background": "#3b4252", + "editorHoverWidget.border": "#3b4252", + "editorLink.activeForeground": "#88c0d0", + "editorMarkerNavigation.background": "#5e81acc0", + "editorMarkerNavigationError.background": "#bf616ac0", + "editorMarkerNavigationWarning.background": "#ebcb8bc0", + "editorOverviewRuler.border": "#3b4252", + "editorOverviewRuler.currentContentForeground": "#3b4252", + "editorOverviewRuler.incomingContentForeground": "#3b4252", + "editorOverviewRuler.findMatchForeground": "#88c0d066", + "editorOverviewRuler.rangeHighlightForeground": "#88c0d066", + "editorOverviewRuler.selectionHighlightForeground": "#88c0d066", + "editorOverviewRuler.wordHighlightForeground": "#88c0d066", + "editorOverviewRuler.wordHighlightStrongForeground": "#88c0d066", + "editorOverviewRuler.modifiedForeground": "#ebcb8b", + "editorOverviewRuler.addedForeground": "#a3be8c", + "editorOverviewRuler.deletedForeground": "#bf616a", + "editorOverviewRuler.errorForeground": "#bf616a", + "editorOverviewRuler.warningForeground": "#ebcb8b", + "editorOverviewRuler.infoForeground": "#81a1c1", + "editorRuler.foreground": "#434c5e", + "editorSuggestWidget.background": "#2e3440", + "editorSuggestWidget.border": "#3b4252", + "editorSuggestWidget.foreground": "#d8dee9", + "editorSuggestWidget.focusHighlightForeground": "#88c0d0", + "editorSuggestWidget.highlightForeground": "#88c0d0", + "editorSuggestWidget.selectedBackground": "#434c5e", + "editorSuggestWidget.selectedForeground": "#d8dee9", + "extensionButton.prominentForeground": "#d8dee9", + "extensionButton.prominentBackground": "#434c5e", + "extensionButton.prominentHoverBackground": "#4c566a", + "errorForeground": "#bf616a", + "gitDecoration.modifiedResourceForeground": "#ebcb8b", + "gitDecoration.deletedResourceForeground": "#bf616a", + "gitDecoration.untrackedResourceForeground": "#a3be8c", + "gitDecoration.ignoredResourceForeground": "#d8dee966", + "gitDecoration.conflictingResourceForeground": "#5e81ac", + "gitDecoration.submoduleResourceForeground": "#8fbcbb", + "gitDecoration.stageDeletedResourceForeground": "#bf616a", + "gitDecoration.stageModifiedResourceForeground": "#ebcb8b", + "input.background": "#3b4252", + "input.foreground": "#d8dee9", + "input.placeholderForeground": "#d8dee999", + "input.border": "#3b4252", + "inputOption.activeBackground": "#5e81ac", + "inputOption.activeBorder": "#5e81ac", + "inputOption.activeForeground": "#eceff4", + "inputValidation.errorBackground": "#bf616a", + "inputValidation.errorBorder": "#bf616a", + "inputValidation.infoBackground": "#81a1c1", + "inputValidation.infoBorder": "#81a1c1", + "inputValidation.warningBackground": "#d08770", + "inputValidation.warningBorder": "#d08770", + "keybindingLabel.background": "#4c566a", + "keybindingLabel.border": "#4c566a", + "keybindingLabel.bottomBorder": "#4c566a", + "keybindingLabel.foreground": "#d8dee9", + "list.activeSelectionBackground": "#88c0d0", + "list.activeSelectionForeground": "#2e3440", + "list.inactiveSelectionBackground": "#434c5e", + "list.inactiveSelectionForeground": "#d8dee9", + "list.inactiveFocusBackground": "#434c5ecc", + "list.hoverForeground": "#eceff4", + "list.focusForeground": "#d8dee9", + "list.focusBackground": "#88c0d099", + "list.focusHighlightForeground": "#eceff4", + "list.hoverBackground": "#3b4252", + "list.dropBackground": "#88c0d099", + "list.highlightForeground": "#88c0d0", + "list.errorForeground": "#bf616a", + "list.warningForeground": "#ebcb8b", + "merge.currentHeaderBackground": "#81a1c166", + "merge.currentContentBackground": "#81a1c14d", + "merge.incomingHeaderBackground": "#8fbcbb66", + "merge.incomingContentBackground": "#8fbcbb4d", + "merge.border": "#3b425200", + "minimap.background": "#2e3440", + "minimap.errorHighlight": "#bf616acc", + "minimap.findMatchHighlight": "#88c0d0", + "minimap.selectionHighlight": "#88c0d0cc", + "minimap.warningHighlight": "#ebcb8bcc", + "minimapGutter.addedBackground": "#a3be8c", + "minimapGutter.deletedBackground": "#bf616a", + "minimapGutter.modifiedBackground": "#ebcb8b", + "minimapSlider.activeBackground": "#434c5eaa", + "minimapSlider.background": "#434c5e99", + "minimapSlider.hoverBackground": "#434c5eaa", + "notification.background": "#3b4252", + "notification.buttonBackground": "#434c5e", + "notification.buttonForeground": "#d8dee9", + "notification.buttonHoverBackground": "#4c566a", + "notification.errorBackground": "#bf616a", + "notification.errorForeground": "#2e3440", + "notification.foreground": "#d8dee9", + "notification.infoBackground": "#88c0d0", + "notification.infoForeground": "#2e3440", + "notification.warningBackground": "#ebcb8b", + "notification.warningForeground": "#2e3440", + "notificationCenter.border": "#3b425200", + "notificationCenterHeader.background": "#2e3440", + "notificationCenterHeader.foreground": "#88c0d0", + "notificationLink.foreground": "#88c0d0", + "notifications.background": "#3b4252", + "notifications.border": "#2e3440", + "notifications.foreground": "#d8dee9", + "notificationToast.border": "#3b425200", + "panel.background": "#2e3440", + "panel.border": "#3b4252", + "panelTitle.activeBorder": "#88c0d000", + "panelTitle.activeForeground": "#88c0d0", + "panelTitle.inactiveForeground": "#d8dee9", + "peekView.border": "#4c566a", + "peekViewEditor.background": "#2e3440", + "peekViewEditorGutter.background": "#2e3440", + "peekViewEditor.matchHighlightBackground": "#88c0d04d", + "peekViewResult.background": "#2e3440", + "peekViewResult.fileForeground": "#88c0d0", + "peekViewResult.lineForeground": "#d8dee966", + "peekViewResult.matchHighlightBackground": "#88c0d0cc", + "peekViewResult.selectionBackground": "#434c5e", + "peekViewResult.selectionForeground": "#d8dee9", + "peekViewTitle.background": "#3b4252", + "peekViewTitleDescription.foreground": "#d8dee9", + "peekViewTitleLabel.foreground": "#88c0d0", + "pickerGroup.border": "#3b4252", + "pickerGroup.foreground": "#88c0d0", + "progressBar.background": "#88c0d0", + "quickInputList.focusBackground": "#88c0d0", + "quickInputList.focusForeground": "#2e3440", + "sash.hoverBorder": "#88c0d0", + "scrollbar.shadow": "#00000066", + "scrollbarSlider.activeBackground": "#434c5eaa", + "scrollbarSlider.background": "#434c5e99", + "scrollbarSlider.hoverBackground": "#434c5eaa", + "selection.background": "#88c0d099", + "sideBar.background": "#2e3440", + "sideBar.foreground": "#d8dee9", + "sideBar.border": "#3b4252", + "sideBarSectionHeader.background": "#3b4252", + "sideBarSectionHeader.foreground": "#d8dee9", + "sideBarTitle.foreground": "#d8dee9", + "statusBar.background": "#3b4252", + "statusBar.debuggingBackground": "#5e81ac", + "statusBar.debuggingForeground": "#d8dee9", + "statusBar.noFolderForeground": "#d8dee9", + "statusBar.noFolderBackground": "#3b4252", + "statusBar.foreground": "#d8dee9", + "statusBarItem.activeBackground": "#4c566a", + "statusBarItem.hoverBackground": "#434c5e", + "statusBarItem.prominentBackground": "#3b4252", + "statusBarItem.prominentHoverBackground": "#434c5e", + "statusBarItem.errorBackground": "#3b4252", + "statusBarItem.errorForeground": "#bf616a", + "statusBarItem.warningBackground": "#ebcb8b", + "statusBarItem.warningForeground": "#2e3440", + "statusBar.border": "#3b425200", + "tab.activeBackground": "#3b4252", + "tab.activeForeground": "#d8dee9", + "tab.border": "#3b425200", + "tab.activeBorder": "#88c0d000", + "tab.unfocusedActiveBorder": "#88c0d000", + "tab.inactiveBackground": "#2e3440", + "tab.inactiveForeground": "#d8dee966", + "tab.unfocusedActiveForeground": "#d8dee999", + "tab.unfocusedInactiveForeground": "#d8dee966", + "tab.hoverBackground": "#3b4252cc", + "tab.unfocusedHoverBackground": "#3b4252b3", + "tab.hoverBorder": "#88c0d000", + "tab.unfocusedHoverBorder": "#88c0d000", + "tab.activeBorderTop": "#88c0d000", + "tab.unfocusedActiveBorderTop": "#88c0d000", + "tab.lastPinnedBorder": "#4c566a", + "terminal.background": "#2e3440", + "terminal.foreground": "#d8dee9", + "terminal.ansiBlack": "#3b4252", + "terminal.ansiRed": "#bf616a", + "terminal.ansiGreen": "#a3be8c", + "terminal.ansiYellow": "#ebcb8b", + "terminal.ansiBlue": "#81a1c1", + "terminal.ansiMagenta": "#b48ead", + "terminal.ansiCyan": "#88c0d0", + "terminal.ansiWhite": "#e5e9f0", + "terminal.ansiBrightBlack": "#4c566a", + "terminal.ansiBrightRed": "#bf616a", + "terminal.ansiBrightGreen": "#a3be8c", + "terminal.ansiBrightYellow": "#ebcb8b", + "terminal.ansiBrightBlue": "#81a1c1", + "terminal.ansiBrightMagenta": "#b48ead", + "terminal.ansiBrightCyan": "#8fbcbb", + "terminal.ansiBrightWhite": "#eceff4", + "terminal.tab.activeBorder": "#88c0d0", + "textBlockQuote.background": "#3b4252", + "textBlockQuote.border": "#81a1c1", + "textCodeBlock.background": "#4c566a", + "textLink.activeForeground": "#88c0d0", + "textLink.foreground": "#88c0d0", + "textPreformat.foreground": "#8fbcbb", + "textSeparator.foreground": "#eceff4", + "titleBar.activeBackground": "#2e3440", + "titleBar.activeForeground": "#d8dee9", + "titleBar.border": "#2e344000", + "titleBar.inactiveBackground": "#2e3440", + "titleBar.inactiveForeground": "#d8dee966", + "tree.indentGuidesStroke": "#616e88", + "walkThrough.embeddedEditorBackground": "#2e3440", + "welcomePage.buttonBackground": "#434c5e", + "welcomePage.buttonHoverBackground": "#4c566a", + "widget.shadow": "#00000066" + }, + "tokenColors": [ + { + "settings": { + "foreground": "#d8dee9ff", + "background": "#2e3440ff" + } + }, + { + "scope": "emphasis", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "strong", + "settings": { + "fontStyle": "bold" + } + }, + { + "name": "Comment", + "scope": "comment", + "settings": { + "foreground": "#616E88" + } + }, + { + "name": "Constant Character", + "scope": "constant.character", + "settings": { + "foreground": "#EBCB8B" + } + }, + { + "name": "Constant Character Escape", + "scope": "constant.character.escape", + "settings": { + "foreground": "#EBCB8B" + } + }, + { + "name": "Constant Language", + "scope": "constant.language", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "Constant Numeric", + "scope": "constant.numeric", + "settings": { + "foreground": "#B48EAD" + } + }, + { + "name": "Constant Regexp", + "scope": "constant.regexp", + "settings": { + "foreground": "#EBCB8B" + } + }, + { + "name": "Entity Name Class/Type", + "scope": ["entity.name.class", "entity.name.type.class"], + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "Entity Name Function", + "scope": "entity.name.function", + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "Entity Name Tag", + "scope": "entity.name.tag", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "Entity Other Attribute Name", + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "Entity Other Inherited Class", + "scope": "entity.other.inherited-class", + "settings": { + "fontStyle": "bold", + "foreground": "#8FBCBB" + } + }, + { + "name": "Invalid Deprecated", + "scope": "invalid.deprecated", + "settings": { + "foreground": "#D8DEE9", + "background": "#EBCB8B" + } + }, + { + "name": "Invalid Illegal", + "scope": "invalid.illegal", + "settings": { + "foreground": "#D8DEE9", + "background": "#BF616A" + } + }, + { + "name": "Keyword", + "scope": "keyword", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "Keyword Operator", + "scope": "keyword.operator", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "Keyword Other New", + "scope": "keyword.other.new", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "Markup Bold", + "scope": "markup.bold", + "settings": { + "fontStyle": "bold" + } + }, + { + "name": "Markup Changed", + "scope": "markup.changed", + "settings": { + "foreground": "#EBCB8B" + } + }, + { + "name": "Markup Deleted", + "scope": "markup.deleted", + "settings": { + "foreground": "#BF616A" + } + }, + { + "name": "Markup Inserted", + "scope": "markup.inserted", + "settings": { + "foreground": "#A3BE8C" + } + }, + { + "name": "Meta Preprocessor", + "scope": "meta.preprocessor", + "settings": { + "foreground": "#5E81AC" + } + }, + { + "name": "Punctuation", + "scope": "punctuation", + "settings": { + "foreground": "#ECEFF4" + } + }, + { + "name": "Punctuation Definition Parameters", + "scope": [ + "punctuation.definition.method-parameters", + "punctuation.definition.function-parameters", + "punctuation.definition.parameters" + ], + "settings": { + "foreground": "#ECEFF4" + } + }, + { + "name": "Punctuation Definition Tag", + "scope": "punctuation.definition.tag", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "Punctuation Definition Comment", + "scope": [ + "punctuation.definition.comment", + "punctuation.end.definition.comment", + "punctuation.start.definition.comment" + ], + "settings": { + "foreground": "#616E88" + } + }, + { + "name": "Punctuation Section", + "scope": "punctuation.section", + "settings": { + "foreground": "#ECEFF4" + } + }, + { + "name": "Punctuation Section Embedded", + "scope": ["punctuation.section.embedded.begin", "punctuation.section.embedded.end"], + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "Punctuation Terminator", + "scope": "punctuation.terminator", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "Punctuation Variable", + "scope": "punctuation.definition.variable", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "Storage", + "scope": "storage", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "String", + "scope": "string", + "settings": { + "foreground": "#A3BE8C" + } + }, + { + "name": "String Regexp", + "scope": "string.regexp", + "settings": { + "foreground": "#EBCB8B" + } + }, + { + "name": "Support Class", + "scope": "support.class", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "Support Constant", + "scope": "support.constant", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "Support Function", + "scope": "support.function", + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "Support Function Construct", + "scope": "support.function.construct", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "Support Type", + "scope": "support.type", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "Support Type Exception", + "scope": "support.type.exception", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "Token Debug", + "scope": "token.debug-token", + "settings": { + "foreground": "#b48ead" + } + }, + { + "name": "Token Error", + "scope": "token.error-token", + "settings": { + "foreground": "#bf616a" + } + }, + { + "name": "Token Info", + "scope": "token.info-token", + "settings": { + "foreground": "#88c0d0" + } + }, + { + "name": "Token Warning", + "scope": "token.warn-token", + "settings": { + "foreground": "#ebcb8b" + } + }, + { + "name": "Variable", + "scope": "variable.other", + "settings": { + "foreground": "#D8DEE9" + } + }, + { + "name": "Variable Language", + "scope": "variable.language", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "Variable Parameter", + "scope": "variable.parameter", + "settings": { + "foreground": "#D8DEE9" + } + }, + { + "name": "[C/CPP] Punctuation Separator Pointer-Access", + "scope": "punctuation.separator.pointer-access.c", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[C/CPP] Meta Preprocessor Include", + "scope": ["source.c meta.preprocessor.include", "source.c string.quoted.other.lt-gt.include"], + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[C/CPP] Conditional Directive", + "scope": [ + "source.cpp keyword.control.directive.conditional", + "source.cpp punctuation.definition.directive", + "source.c keyword.control.directive.conditional", + "source.c punctuation.definition.directive" + ], + "settings": { + "foreground": "#5E81AC", + "fontStyle": "bold" + } + }, + { + "name": "[CSS] Constant Other Color RGB Value", + "scope": "source.css constant.other.color.rgb-value", + "settings": { + "foreground": "#B48EAD" + } + }, + { + "name": "[CSS](Function) Meta Property-Value", + "scope": "source.css meta.property-value", + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "[CSS] Media Queries", + "scope": [ + "source.css keyword.control.at-rule.media", + "source.css keyword.control.at-rule.media punctuation.definition.keyword" + ], + "settings": { + "foreground": "#D08770" + } + }, + { + "name": "[CSS] Punctuation Definition Keyword", + "scope": "source.css punctuation.definition.keyword", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[CSS] Support Type Property Name", + "scope": "source.css support.type.property-name", + "settings": { + "foreground": "#D8DEE9" + } + }, + { + "name": "[diff] Meta Range Context", + "scope": "source.diff meta.diff.range.context", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[diff] Meta Header From-File", + "scope": "source.diff meta.diff.header.from-file", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[diff] Punctuation Definition From-File", + "scope": "source.diff punctuation.definition.from-file", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[diff] Punctuation Definition Range", + "scope": "source.diff punctuation.definition.range", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[diff] Punctuation Definition Separator", + "scope": "source.diff punctuation.definition.separator", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[Elixir](JakeBecker.elixir-ls) module names", + "scope": "entity.name.type.module.elixir", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Elixir](JakeBecker.elixir-ls) module attributes", + "scope": "variable.other.readwrite.module.elixir", + "settings": { + "foreground": "#D8DEE9", + "fontStyle": "bold" + } + }, + { + "name": "[Elixir](JakeBecker.elixir-ls) atoms", + "scope": "constant.other.symbol.elixir", + "settings": { + "foreground": "#D8DEE9", + "fontStyle": "bold" + } + }, + { + "name": "[Elixir](JakeBecker.elixir-ls) modules", + "scope": "variable.other.constant.elixir", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Go] String Format Placeholder", + "scope": "source.go constant.other.placeholder.go", + "settings": { + "foreground": "#EBCB8B" + } + }, + { + "name": "[Java](JavaDoc) Comment Block Documentation HTML Entities", + "scope": "source.java comment.block.documentation.javadoc punctuation.definition.entity.html", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[Java](JavaDoc) Constant Other", + "scope": "source.java constant.other", + "settings": { + "foreground": "#D8DEE9" + } + }, + { + "name": "[Java](JavaDoc) Keyword Other Documentation", + "scope": "source.java keyword.other.documentation", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Java](JavaDoc) Keyword Other Documentation Author", + "scope": "source.java keyword.other.documentation.author.javadoc", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Java](JavaDoc) Keyword Other Documentation Directive/Custom", + "scope": [ + "source.java keyword.other.documentation.directive", + "source.java keyword.other.documentation.custom" + ], + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Java](JavaDoc) Keyword Other Documentation See", + "scope": "source.java keyword.other.documentation.see.javadoc", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Java] Meta Method-Call", + "scope": "source.java meta.method-call meta.method", + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "[Java](JavaDoc) Meta Tag Template Link", + "scope": [ + "source.java meta.tag.template.link.javadoc", + "source.java string.other.link.title.javadoc" + ], + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Java](JavaDoc) Meta Tag Template Value", + "scope": "source.java meta.tag.template.value.javadoc", + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "[Java](JavaDoc) Punctuation Definition Keyword", + "scope": "source.java punctuation.definition.keyword.javadoc", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Java](JavaDoc) Punctuation Definition Tag", + "scope": [ + "source.java punctuation.definition.tag.begin.javadoc", + "source.java punctuation.definition.tag.end.javadoc" + ], + "settings": { + "foreground": "#616E88" + } + }, + { + "name": "[Java] Storage Modifier Import", + "scope": "source.java storage.modifier.import", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Java] Storage Modifier Package", + "scope": "source.java storage.modifier.package", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Java] Storage Type", + "scope": "source.java storage.type", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Java] Storage Type Annotation", + "scope": "source.java storage.type.annotation", + "settings": { + "foreground": "#D08770" + } + }, + { + "name": "[Java] Storage Type Generic", + "scope": "source.java storage.type.generic", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Java] Storage Type Primitive", + "scope": "source.java storage.type.primitive", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[JavaScript] Decorator", + "scope": [ + "source.js punctuation.decorator", + "source.js meta.decorator variable.other.readwrite", + "source.js meta.decorator entity.name.function" + ], + "settings": { + "foreground": "#D08770" + } + }, + { + "name": "[JavaScript] Meta Object-Literal Key", + "scope": "source.js meta.object-literal.key", + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "[JavaScript](JSDoc) Storage Type Class", + "scope": "source.js storage.type.class.jsdoc", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[JavaScript] String Template Literals Punctuation", + "scope": [ + "source.js string.quoted.template punctuation.quasi.element.begin", + "source.js string.quoted.template punctuation.quasi.element.end", + "source.js string.template punctuation.definition.template-expression" + ], + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[JavaScript] Interpolated String Template Punctuation Functions", + "scope": "source.js string.quoted.template meta.method-call.with-arguments", + "settings": { + "foreground": "#ECEFF4" + } + }, + { + "name": "[JavaScript] String Template Literal Variable", + "scope": [ + "source.js string.template meta.template.expression support.variable.property", + "source.js string.template meta.template.expression variable.other.object" + ], + "settings": { + "foreground": "#D8DEE9" + } + }, + { + "name": "[JavaScript] Support Type Primitive", + "scope": "source.js support.type.primitive", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[JavaScript] Variable Other Object", + "scope": "source.js variable.other.object", + "settings": { + "foreground": "#D8DEE9" + } + }, + { + "name": "[JavaScript] Variable Other Read-Write Alias", + "scope": "source.js variable.other.readwrite.alias", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[JavaScript] Parentheses in Template Strings", + "scope": [ + "source.js meta.embedded.line meta.brace.square", + "source.js meta.embedded.line meta.brace.round", + "source.js string.quoted.template meta.brace.square", + "source.js string.quoted.template meta.brace.round" + ], + "settings": { + "foreground": "#ECEFF4" + } + }, + { + "name": "[HTML] Constant Character Entity", + "scope": "text.html.basic constant.character.entity.html", + "settings": { + "foreground": "#EBCB8B" + } + }, + { + "name": "[HTML] Constant Other Inline-Data", + "scope": "text.html.basic constant.other.inline-data", + "settings": { + "foreground": "#D08770", + "fontStyle": "italic" + } + }, + { + "name": "[HTML] Meta Tag SGML Doctype", + "scope": "text.html.basic meta.tag.sgml.doctype", + "settings": { + "foreground": "#5E81AC" + } + }, + { + "name": "[HTML] Punctuation Definition Entity", + "scope": "text.html.basic punctuation.definition.entity", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[INI] Entity Name Section Group-Title", + "scope": "source.properties entity.name.section.group-title.ini", + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "[INI] Punctuation Separator Key-Value", + "scope": "source.properties punctuation.separator.key-value.ini", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[Markdown] Markup Fenced Code Block", + "scope": [ + "text.html.markdown markup.fenced_code.block", + "text.html.markdown markup.fenced_code.block punctuation.definition" + ], + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Markdown] Markup Heading", + "scope": "markup.heading", + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "[Markdown] Markup Inline", + "scope": [ + "text.html.markdown markup.inline.raw", + "text.html.markdown markup.inline.raw punctuation.definition.raw" + ], + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Markdown] Markup Italic", + "scope": "text.html.markdown markup.italic", + "settings": { + "fontStyle": "italic" + } + }, + { + "name": "[Markdown] Markup Link", + "scope": "text.html.markdown markup.underline.link", + "settings": { + "fontStyle": "underline" + } + }, + { + "name": "[Markdown] Markup List Numbered/Unnumbered", + "scope": "text.html.markdown beginning.punctuation.definition.list", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[Markdown] Markup Quote Punctuation Definition", + "scope": "text.html.markdown beginning.punctuation.definition.quote", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Markdown] Markup Quote Punctuation Definition", + "scope": "text.html.markdown markup.quote", + "settings": { + "foreground": "#616E88" + } + }, + { + "name": "[Markdown] Markup Math Constant", + "scope": "text.html.markdown constant.character.math.tex", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[Markdown] Markup Math Definition Marker", + "scope": [ + "text.html.markdown punctuation.definition.math.begin", + "text.html.markdown punctuation.definition.math.end" + ], + "settings": { + "foreground": "#5E81AC" + } + }, + { + "name": "[Markdown] Markup Math Function Definition Marker", + "scope": "text.html.markdown punctuation.definition.function.math.tex", + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "[Markdown] Markup Math Operator", + "scope": "text.html.markdown punctuation.math.operator.latex", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[Markdown] Punctuation Definition Heading", + "scope": "text.html.markdown punctuation.definition.heading", + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[Markdown] Punctuation Definition Constant/String", + "scope": [ + "text.html.markdown punctuation.definition.constant", + "text.html.markdown punctuation.definition.string" + ], + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[Markdown] String Other Link Description/Title", + "scope": [ + "text.html.markdown constant.other.reference.link", + "text.html.markdown string.other.link.description", + "text.html.markdown string.other.link.title" + ], + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "[Perl] Perl Sigils", + "scope": "source.perl punctuation.definition.variable", + "settings": { + "foreground": "#D8DEE9" + } + }, + { + "name": "[PHP] Meta Function-Call Object", + "scope": ["source.php meta.function-call", "source.php meta.function-call.object"], + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "[Python] Decorator", + "scope": [ + "source.python entity.name.function.decorator", + "source.python meta.function.decorator support.type" + ], + "settings": { + "foreground": "#D08770" + } + }, + { + "name": "[Python] Function Call", + "scope": "source.python meta.function-call.generic", + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "[Python] Support Type", + "scope": "source.python support.type", + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "[Python] Function Parameter", + "scope": ["source.python variable.parameter.function.language"], + "settings": { + "foreground": "#D8DEE9" + } + }, + { + "name": "[Python] Function Parameter Special", + "scope": [ + "source.python meta.function.parameters variable.parameter.function.language.special.self" + ], + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[Rust] Entity types", + "scope": "source.rust entity.name.type", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[Rust] Macro", + "scope": "source.rust meta.macro entity.name.function", + "settings": { + "fontStyle": "bold", + "foreground": "#88C0D0" + } + }, + { + "name": "[Rust] Attributes", + "scope": [ + "source.rust meta.attribute", + "source.rust meta.attribute punctuation", + "source.rust meta.attribute keyword.operator" + ], + "settings": { + "foreground": "#5E81AC" + } + }, + { + "name": "[Rust] Traits", + "scope": "source.rust entity.name.type.trait", + "settings": { + "fontStyle": "bold" + } + }, + { + "name": "[Rust] Interpolation Bracket Curly", + "scope": "source.rust punctuation.definition.interpolation", + "settings": { + "foreground": "#EBCB8B" + } + }, + { + "name": "[SCSS] Punctuation Definition Interpolation Bracket Curly", + "scope": [ + "source.css.scss punctuation.definition.interpolation.begin.bracket.curly", + "source.css.scss punctuation.definition.interpolation.end.bracket.curly" + ], + "settings": { + "foreground": "#81A1C1" + } + }, + { + "name": "[SCSS] Variable Interpolation", + "scope": "source.css.scss variable.interpolation", + "settings": { + "foreground": "#D8DEE9", + "fontStyle": "italic" + } + }, + { + "name": "[TypeScript] Decorators", + "scope": [ + "source.ts punctuation.decorator", + "source.ts meta.decorator variable.other.readwrite", + "source.ts meta.decorator entity.name.function", + "source.tsx punctuation.decorator", + "source.tsx meta.decorator variable.other.readwrite", + "source.tsx meta.decorator entity.name.function" + ], + "settings": { + "foreground": "#D08770" + } + }, + { + "name": "[TypeScript] Object-literal keys", + "scope": ["source.ts meta.object-literal.key", "source.tsx meta.object-literal.key"], + "settings": { + "foreground": "#D8DEE9" + } + }, + { + "name": "[TypeScript] Object-literal functions", + "scope": [ + "source.ts meta.object-literal.key entity.name.function", + "source.tsx meta.object-literal.key entity.name.function" + ], + "settings": { + "foreground": "#88C0D0" + } + }, + { + "name": "[TypeScript] Type/Class", + "scope": [ + "source.ts support.class", + "source.ts support.type", + "source.ts entity.name.type", + "source.ts entity.name.class", + "source.tsx support.class", + "source.tsx support.type", + "source.tsx entity.name.type", + "source.tsx entity.name.class" + ], + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[TypeScript] Static Class Support", + "scope": [ + "source.ts support.constant.math", + "source.ts support.constant.dom", + "source.ts support.constant.json", + "source.tsx support.constant.math", + "source.tsx support.constant.dom", + "source.tsx support.constant.json" + ], + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[TypeScript] Variables", + "scope": ["source.ts support.variable", "source.tsx support.variable"], + "settings": { + "foreground": "#D8DEE9" + } + }, + { + "name": "[TypeScript] Parentheses in Template Strings", + "scope": [ + "source.ts meta.embedded.line meta.brace.square", + "source.ts meta.embedded.line meta.brace.round", + "source.tsx meta.embedded.line meta.brace.square", + "source.tsx meta.embedded.line meta.brace.round" + ], + "settings": { + "foreground": "#ECEFF4" + } + }, + { + "name": "[XML] Entity Name Tag Namespace", + "scope": "text.xml entity.name.tag.namespace", + "settings": { + "foreground": "#8FBCBB" + } + }, + { + "name": "[XML] Keyword Other Doctype", + "scope": "text.xml keyword.other.doctype", + "settings": { + "foreground": "#5E81AC" + } + }, + { + "name": "[XML] Meta Tag Preprocessor", + "scope": "text.xml meta.tag.preprocessor entity.name.tag", + "settings": { + "foreground": "#5E81AC" + } + }, + { + "name": "[XML] Entity Name Tag Namespace", + "scope": [ + "text.xml string.unquoted.cdata", + "text.xml string.unquoted.cdata punctuation.definition.string" + ], + "settings": { + "foreground": "#D08770", + "fontStyle": "italic" + } + }, + { + "name": "[YAML] Entity Name Tag", + "scope": "source.yaml entity.name.tag", + "settings": { + "foreground": "#8FBCBB" + } + } + ] +} diff --git a/docs/shiki/themes/one-dark-pro.json b/docs/shiki/themes/one-dark-pro.json new file mode 100644 index 00000000..1c141bf7 --- /dev/null +++ b/docs/shiki/themes/one-dark-pro.json @@ -0,0 +1,2107 @@ +{ + "name": "one-dark-pro", + "type": "dark", + "semanticHighlighting": true, + "semanticTokenColors": { + "enumMember": { + "foreground": "#56b6c2" + }, + "variable.constant": { + "foreground": "#d19a66" + }, + "variable.defaultLibrary": { + "foreground": "#e5c07b" + }, + "variable:dart": { + "foreground": "#d19a66" + }, + "property:dart": { + "foreground": "#d19a66" + }, + "annotation:dart": { + "foreground": "#d19a66" + }, + "parameter.label:dart": { + "foreground": "#abb2bf" + }, + "macro": { + "foreground": "#d19a66" + }, + "tomlArrayKey": { + "foreground": "#e5c07b" + }, + "memberOperatorOverload": { + "foreground": "#c678dd" + } + }, + "tokenColors": [ + { + "scope": "meta.embedded", + "settings": { + "foreground": "#abb2bf" + } + }, + { + "name": "unison punctuation", + "scope": "punctuation.definition.delayed.unison,punctuation.definition.list.begin.unison,punctuation.definition.list.end.unison,punctuation.definition.ability.begin.unison,punctuation.definition.ability.end.unison,punctuation.operator.assignment.as.unison,punctuation.separator.pipe.unison,punctuation.separator.delimiter.unison,punctuation.definition.hash.unison", + "settings": { + "foreground": "#e06c75" + } + }, + { + "name": "haskell variable generic-type", + "scope": "variable.other.generic-type.haskell", + "settings": { + "foreground": "#c678dd" + } + }, + { + "name": "haskell storage type", + "scope": "storage.type.haskell", + "settings": { + "foreground": "#d19a66" + } + }, + { + "name": "support.variable.magic.python", + "scope": "support.variable.magic.python", + "settings": { + "foreground": "#e06c75" + } + }, + { + "name": "punctuation.separator.parameters.python", + "scope": "punctuation.separator.period.python,punctuation.separator.element.python,punctuation.parenthesis.begin.python,punctuation.parenthesis.end.python", + "settings": { + "foreground": "#abb2bf" + } + }, + { + "name": "variable.parameter.function.language.special.self.python", + "scope": "variable.parameter.function.language.special.self.python", + "settings": { + "foreground": "#e5c07b" + } + }, + { + "name": "variable.parameter.function.language.special.cls.python", + "scope": "variable.parameter.function.language.special.cls.python", + "settings": { + "foreground": "#e5c07b" + } + }, + { + "name": "storage.modifier.lifetime.rust", + "scope": "storage.modifier.lifetime.rust", + "settings": { + "foreground": "#abb2bf" + } + }, + { + "name": "support.function.std.rust", + "scope": "support.function.std.rust", + "settings": { + "foreground": "#61afef" + } + }, + { + "name": "entity.name.lifetime.rust", + "scope": "entity.name.lifetime.rust", + "settings": { + "foreground": "#e5c07b" + } + }, + { + "name": "variable.language.rust", + "scope": "variable.language.rust", + "settings": { + "foreground": "#e06c75" + } + }, + { + "name": "support.constant.edge", + "scope": "support.constant.edge", + "settings": { + "foreground": "#c678dd" + } + }, + { + "name": "regexp constant character-class", + "scope": "constant.other.character-class.regexp", + "settings": { + "foreground": "#e06c75" + } + }, + { + "name": "keyword.operator", + "scope": ["keyword.operator.word"], + "settings": { + "foreground": "#c678dd" + } + }, + { + "name": "regexp operator.quantifier", + "scope": "keyword.operator.quantifier.regexp", + "settings": { + "foreground": "#d19a66" + } + }, + { + "name": "Text", + "scope": "variable.parameter.function", + "settings": { + "foreground": "#abb2bf" + } + }, + { + "name": "Comment Markup Link", + "scope": "comment markup.link", + "settings": { + "foreground": "#5c6370" + } + }, + { + "name": "markup diff", + "scope": "markup.changed.diff", + "settings": { + "foreground": "#e5c07b" + } + }, + { + "name": "diff", + "scope": "meta.diff.header.from-file,meta.diff.header.to-file,punctuation.definition.from-file.diff,punctuation.definition.to-file.diff", + "settings": { + "foreground": "#61afef" + } + }, + { + "name": "inserted.diff", + "scope": "markup.inserted.diff", + "settings": { + "foreground": "#98c379" + } + }, + { + "name": "deleted.diff", + "scope": "markup.deleted.diff", + "settings": { + "foreground": "#e06c75" + } + }, + { + "name": "c++ function", + "scope": "meta.function.c,meta.function.cpp", + "settings": { + "foreground": "#e06c75" + } + }, + { + "name": "c++ block", + "scope": "punctuation.section.block.begin.bracket.curly.cpp,punctuation.section.block.end.bracket.curly.cpp,punctuation.terminator.statement.c,punctuation.section.block.begin.bracket.curly.c,punctuation.section.block.end.bracket.curly.c,punctuation.section.parens.begin.bracket.round.c,punctuation.section.parens.end.bracket.round.c,punctuation.section.parameters.begin.bracket.round.c,punctuation.section.parameters.end.bracket.round.c", + "settings": { + "foreground": "#abb2bf" + } + }, + { + "name": "js/ts punctuation separator key-value", + "scope": "punctuation.separator.key-value", + "settings": { + "foreground": "#abb2bf" + } + }, + { + "name": "js/ts import keyword", + "scope": "keyword.operator.expression.import", + "settings": { + "foreground": "#61afef" + } + }, + { + "name": "math js/ts", + "scope": "support.constant.math", + "settings": { + "foreground": "#e5c07b" + } + }, + { + "name": "math property js/ts", + "scope": "support.constant.property.math", + "settings": { + "foreground": "#d19a66" + } + }, + { + "name": "js/ts variable.other.constant", + "scope": "variable.other.constant", + "settings": { + "foreground": "#e5c07b" + } + }, + { + "name": "java type", + "scope": ["storage.type.annotation.java", "storage.type.object.array.java"], + "settings": { + "foreground": "#e5c07b" + } + }, + { + "name": "java source", + "scope": "source.java", + "settings": { + "foreground": "#e06c75" + } + }, + { + "name": "java modifier.import", + "scope": "punctuation.section.block.begin.java,punctuation.section.block.end.java,punctuation.definition.method-parameters.begin.java,punctuation.definition.method-parameters.end.java,meta.method.identifier.java,punctuation.section.method.begin.java,punctuation.section.method.end.java,punctuation.terminator.java,punctuation.section.class.begin.java,punctuation.section.class.end.java,punctuation.section.inner-class.begin.java,punctuation.section.inner-class.end.java,meta.method-call.java,punctuation.section.class.begin.bracket.curly.java,punctuation.section.class.end.bracket.curly.java,punctuation.section.method.begin.bracket.curly.java,punctuation.section.method.end.bracket.curly.java,punctuation.separator.period.java,punctuation.bracket.angle.java,punctuation.definition.annotation.java,meta.method.body.java", + "settings": { + "foreground": "#abb2bf" + } + }, + { + "name": "java modifier.import", + "scope": "meta.method.java", + "settings": { + "foreground": "#61afef" + } + }, + { + "name": "java modifier.import", + "scope": "storage.modifier.import.java,storage.type.java,storage.type.generic.java", + "settings": { + "foreground": "#e5c07b" + } + }, + { + "name": "java instanceof", + "scope": "keyword.operator.instanceof.java", + "settings": { + "foreground": "#c678dd" + } + }, + { + "name": "java variable.name", + "scope": "meta.definition.variable.name.java", + "settings": { + "foreground": "#e06c75" + } + }, + { + "name": "operator logical", + "scope": "keyword.operator.logical", + "settings": { + "foreground": "#56b6c2" + } + }, + { + "name": "operator bitwise", + "scope": "keyword.operator.bitwise", + "settings": { + "foreground": "#56b6c2" + } + }, + { + "name": "operator channel", + "scope": "keyword.operator.channel", + "settings": { + "foreground": "#56b6c2" + } + }, + { + "name": "support.constant.property-value.scss", + "scope": "support.constant.property-value.scss,support.constant.property-value.css", + "settings": { + "foreground": "#d19a66" + } + }, + { + "name": "CSS/SCSS/LESS Operators", + "scope": "keyword.operator.css,keyword.operator.scss,keyword.operator.less", + "settings": { + "foreground": "#56b6c2" + } + }, + { + "name": "css color standard name", + "scope": "support.constant.color.w3c-standard-color-name.css,support.constant.color.w3c-standard-color-name.scss", + "settings": { + "foreground": "#d19a66" + } + }, + { + "name": "css comma", + "scope": "punctuation.separator.list.comma.css", + "settings": { + "foreground": "#abb2bf" + } + }, + { + "name": "css attribute-name.id", + "scope": "support.constant.color.w3c-standard-color-name.css", + "settings": { + "foreground": "#d19a66" + } + }, + { + "name": "css property-name", + "scope": "support.type.vendored.property-name.css", + "settings": { + "foreground": "#56b6c2" + } + }, + { + "name": "js/ts module", + "scope": "support.module.node,support.type.object.module,support.module.node", + "settings": { + "foreground": "#e5c07b" + } + }, + { + "name": "entity.name.type.module", + "scope": "entity.name.type.module", + "settings": { + "foreground": "#e5c07b" + } + }, + { + "name": "js variable readwrite", + "scope": "variable.other.readwrite,meta.object-literal.key,support.variable.property,support.variable.object.process,support.variable.object.node", + "settings": { + "foreground": "#e06c75" + } + }, + { + "name": "js/ts json", + "scope": "support.constant.json", + "settings": { + "foreground": "#d19a66" + } + }, + { + "name": "js/ts Keyword", + "scope": [ + "keyword.operator.expression.instanceof", + "keyword.operator.new", + "keyword.operator.ternary", + "keyword.operator.optional", + "keyword.operator.expression.keyof" + ], + "settings": { + "foreground": "#c678dd" + } + }, + { + "name": "js/ts console", + "scope": "support.type.object.console", + "settings": { + "foreground": "#e06c75" + } + }, + { + "name": "js/ts support.variable.property.process", + "scope": "support.variable.property.process", + "settings": { + "foreground": "#d19a66" + } + }, + { + "name": "js console function", + "scope": "entity.name.function,support.function.console", + "settings": { + "foreground": "#61afef" + } + }, + { + "name": "keyword.operator.misc.rust", + "scope": "keyword.operator.misc.rust", + "settings": { + "foreground": "#abb2bf" + } + }, + { + "name": "keyword.operator.sigil.rust", + "scope": "keyword.operator.sigil.rust", + "settings": { + "foreground": "#c678dd" + } + }, + { + "name": "operator", + "scope": "keyword.operator.delete", + "settings": { + "foreground": "#c678dd" + } + }, + { + "name": "js dom", + "scope": "support.type.object.dom", + "settings": { + "foreground": "#56b6c2" + } + }, + { + "name": "js dom variable", + "scope": "support.variable.dom,support.variable.property.dom", + "settings": { + "foreground": "#e06c75" + } + }, + { + "name": "keyword.operator", + "scope": "keyword.operator.arithmetic,keyword.operator.comparison,keyword.operator.decrement,keyword.operator.increment,keyword.operator.relational", + "settings": { + "foreground": "#56b6c2" + } + }, + { + "name": "C operator assignment", + "scope": "keyword.operator.assignment.c,keyword.operator.comparison.c,keyword.operator.c,keyword.operator.increment.c,keyword.operator.decrement.c,keyword.operator.bitwise.shift.c,keyword.operator.assignment.cpp,keyword.operator.comparison.cpp,keyword.operator.cpp,keyword.operator.increment.cpp,keyword.operator.decrement.cpp,keyword.operator.bitwise.shift.cpp", + "settings": { + "foreground": "#c678dd" + } + }, + { + "name": "Punctuation", + "scope": "punctuation.separator.delimiter", + "settings": { + "foreground": "#abb2bf" + } + }, + { + "name": "Other punctuation .c", + "scope": "punctuation.separator.c,punctuation.separator.cpp", + "settings": { + "foreground": "#c678dd" + } + }, + { + "name": "C type posix-reserved", + "scope": "support.type.posix-reserved.c,support.type.posix-reserved.cpp", + "settings": { + "foreground": "#56b6c2" + } + }, + { + "name": "keyword.operator.sizeof.c", + "scope": "keyword.operator.sizeof.c,keyword.operator.sizeof.cpp", + "settings": { + "foreground": "#c678dd" + } + }, + { + "name": "python parameter", + "scope": "variable.parameter.function.language.python", + "settings": { + "foreground": "#d19a66" + } + }, + { + "name": "python type", + "scope": "support.type.python", + "settings": { + "foreground": "#56b6c2" + } + }, + { + "name": "python logical", + "scope": "keyword.operator.logical.python", + "settings": { + "foreground": "#c678dd" + } + }, + { + "name": "pyCs", + "scope": "variable.parameter.function.python", + "settings": { + "foreground": "#d19a66" + } + }, + { + "name": "python block", + "scope": "punctuation.definition.arguments.begin.python,punctuation.definition.arguments.end.python,punctuation.separator.arguments.python,punctuation.definition.list.begin.python,punctuation.definition.list.end.python", + "settings": { + "foreground": "#abb2bf" + } + }, + { + "name": "python function-call.generic", + "scope": "meta.function-call.generic.python", + "settings": { + "foreground": "#61afef" + } + }, + { + "name": "python placeholder reset to normal string", + "scope": "constant.character.format.placeholder.other.python", + "settings": { + "foreground": "#d19a66" + } + }, + { + "name": "Operators", + "scope": "keyword.operator", + "settings": { + "foreground": "#abb2bf" + } + }, + { + "name": "Compound Assignment Operators", + "scope": "keyword.operator.assignment.compound", + "settings": { + "foreground": "#c678dd" + } + }, + { + "name": "Compound Assignment Operators js/ts", + "scope": "keyword.operator.assignment.compound.js,keyword.operator.assignment.compound.ts", + "settings": { + "foreground": "#56b6c2" + } + }, + { + "name": "Keywords", + "scope": "keyword", + "settings": { + "foreground": "#c678dd" + } + }, + { + "name": "Namespaces", + "scope": "entity.name.namespace", + "settings": { + "foreground": "#e5c07b" + } + }, + { + "name": "Variables", + "scope": "variable", + "settings": { + "foreground": "#e06c75" + } + }, + { + "name": "Variables", + "scope": "variable.c", + "settings": { + "foreground": "#abb2bf" + } + }, + { + "name": "Language variables", + "scope": "variable.language", + "settings": { + "foreground": "#e5c07b" + } + }, + { + "name": "Java Variables", + "scope": "token.variable.parameter.java", + "settings": { + "foreground": "#abb2bf" + } + }, + { + "name": "Java Imports", + "scope": "import.storage.java", + "settings": { + "foreground": "#e5c07b" + } + }, + { + "name": "Packages", + "scope": "token.package.keyword", + "settings": { + "foreground": "#c678dd" + } + }, + { + "name": "Packages", + "scope": "token.package", + "settings": { + "foreground": "#abb2bf" + } + }, + { + "name": "Functions", + "scope": [ + "entity.name.function", + "meta.require", + "support.function.any-method", + "variable.function" + ], + "settings": { + "foreground": "#61afef" + } + }, + { + "name": "Classes", + "scope": "entity.name.type.namespace", + "settings": { + "foreground": "#e5c07b" + } + }, + { + "name": "Classes", + "scope": "support.class, entity.name.type.class", + "settings": { + "foreground": "#e5c07b" + } + }, + { + "name": "Class name", + "scope": "entity.name.class.identifier.namespace.type", + "settings": { + "foreground": "#e5c07b" + } + }, + { + "name": "Class name", + "scope": ["entity.name.class", "variable.other.class.js", "variable.other.class.ts"], + "settings": { + "foreground": "#e5c07b" + } + }, + { + "name": "Class name php", + "scope": "variable.other.class.php", + "settings": { + "foreground": "#e06c75" + } + }, + { + "name": "Type Name", + "scope": "entity.name.type", + "settings": { + "foreground": "#e5c07b" + } + }, + { + "name": "Keyword Control", + "scope": "keyword.control", + "settings": { + "foreground": "#c678dd" + } + }, + { + "name": "Control Elements", + "scope": "control.elements, keyword.operator.less", + "settings": { + "foreground": "#d19a66" + } + }, + { + "name": "Methods", + "scope": "keyword.other.special-method", + "settings": { + "foreground": "#61afef" + } + }, + { + "name": "Storage", + "scope": "storage", + "settings": { + "foreground": "#c678dd" + } + }, + { + "name": "Storage JS TS", + "scope": "token.storage", + "settings": { + "foreground": "#c678dd" + } + }, + { + "name": "Source Js Keyword Operator Delete,source Js Keyword Operator In,source Js Keyword Operator Of,source Js Keyword Operator Instanceof,source Js Keyword Operator New,source Js Keyword Operator Typeof,source Js Keyword Operator Void", + "scope": "keyword.operator.expression.delete,keyword.operator.expression.in,keyword.operator.expression.of,keyword.operator.expression.instanceof,keyword.operator.new,keyword.operator.expression.typeof,keyword.operator.expression.void", + "settings": { + "foreground": "#c678dd" + } + }, + { + "name": "Java Storage", + "scope": "token.storage.type.java", + "settings": { + "foreground": "#e5c07b" + } + }, + { + "name": "Support", + "scope": "support.function", + "settings": { + "foreground": "#56b6c2" + } + }, + { + "name": "Support type", + "scope": "support.type.property-name", + "settings": { + "foreground": "#abb2bf" + } + }, + { + "name": "[VSCODE-CUSTOM] toml support", + "scope": "support.type.property-name.toml, support.type.property-name.table.toml, support.type.property-name.array.toml", + "settings": { + "foreground": "#e06c75" + } + }, + { + "name": "Support type", + "scope": "support.constant.property-value", + "settings": { + "foreground": "#abb2bf" + } + }, + { + "name": "Support type", + "scope": "support.constant.font-name", + "settings": { + "foreground": "#d19a66" + } + }, + { + "name": "Meta tag", + "scope": "meta.tag", + "settings": { + "foreground": "#abb2bf" + } + }, + { + "name": "Strings", + "scope": "string", + "settings": { + "foreground": "#98c379" + } + }, + { + "name": "Constant other symbol", + "scope": "constant.other.symbol", + "settings": { + "foreground": "#56b6c2" + } + }, + { + "name": "Integers", + "scope": "constant.numeric", + "settings": { + "foreground": "#d19a66" + } + }, + { + "name": "Constants", + "scope": "constant", + "settings": { + "foreground": "#d19a66" + } + }, + { + "name": "Constants", + "scope": "punctuation.definition.constant", + "settings": { + "foreground": "#d19a66" + } + }, + { + "name": "Tags", + "scope": "entity.name.tag", + "settings": { + "foreground": "#e06c75" + } + }, + { + "name": "Attributes", + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#d19a66" + } + }, + { + "name": "Attribute IDs", + "scope": "entity.other.attribute-name.id", + "settings": { + "foreground": "#61afef" + } + }, + { + "name": "Attribute class", + "scope": "entity.other.attribute-name.class.css", + "settings": { + "foreground": "#d19a66" + } + }, + { + "name": "Selector", + "scope": "meta.selector", + "settings": { + "foreground": "#c678dd" + } + }, + { + "name": "Headings", + "scope": "markup.heading", + "settings": { + "foreground": "#e06c75" + } + }, + { + "name": "Headings", + "scope": "markup.heading punctuation.definition.heading, entity.name.section", + "settings": { + "foreground": "#61afef" + } + }, + { + "name": "Units", + "scope": "keyword.other.unit", + "settings": { + "foreground": "#e06c75" + } + }, + { + "name": "Bold", + "scope": "markup.bold,todo.bold", + "settings": { + "foreground": "#d19a66" + } + }, + { + "name": "Bold", + "scope": "punctuation.definition.bold", + "settings": { + "foreground": "#e5c07b" + } + }, + { + "name": "markup Italic", + "scope": "markup.italic, punctuation.definition.italic,todo.emphasis", + "settings": { + "foreground": "#c678dd" + } + }, + { + "name": "emphasis md", + "scope": "emphasis md", + "settings": { + "foreground": "#c678dd" + } + }, + { + "name": "[VSCODE-CUSTOM] Markdown headings", + "scope": "entity.name.section.markdown", + "settings": { + "foreground": "#e06c75" + } + }, + { + "name": "[VSCODE-CUSTOM] Markdown heading Punctuation Definition", + "scope": "punctuation.definition.heading.markdown", + "settings": { + "foreground": "#e06c75" + } + }, + { + "name": "punctuation.definition.list.begin.markdown", + "scope": "punctuation.definition.list.begin.markdown", + "settings": { + "foreground": "#e5c07b" + } + }, + { + "name": "[VSCODE-CUSTOM] Markdown heading setext", + "scope": "markup.heading.setext", + "settings": { + "foreground": "#abb2bf" + } + }, + { + "name": "[VSCODE-CUSTOM] Markdown Punctuation Definition Bold", + "scope": "punctuation.definition.bold.markdown", + "settings": { + "foreground": "#d19a66" + } + }, + { + "name": "[VSCODE-CUSTOM] Markdown Inline Raw", + "scope": "markup.inline.raw.markdown", + "settings": { + "foreground": "#98c379" + } + }, + { + "name": "[VSCODE-CUSTOM] Markdown Inline Raw", + "scope": "markup.inline.raw.string.markdown", + "settings": { + "foreground": "#98c379" + } + }, + { + "name": "[VSCODE-CUSTOM] Markdown Inline Raw punctuation", + "scope": "punctuation.definition.raw.markdown", + "settings": { + "foreground": "#e5c07b" + } + }, + { + "name": "[VSCODE-CUSTOM] Markdown List Punctuation Definition", + "scope": "punctuation.definition.list.markdown", + "settings": { + "foreground": "#e5c07b" + } + }, + { + "name": "[VSCODE-CUSTOM] Markdown Punctuation Definition String", + "scope": [ + "punctuation.definition.string.begin.markdown", + "punctuation.definition.string.end.markdown", + "punctuation.definition.metadata.markdown" + ], + "settings": { + "foreground": "#e06c75" + } + }, + { + "name": "beginning.punctuation.definition.list.markdown", + "scope": ["beginning.punctuation.definition.list.markdown"], + "settings": { + "foreground": "#e06c75" + } + }, + { + "name": "[VSCODE-CUSTOM] Markdown Punctuation Definition Link", + "scope": "punctuation.definition.metadata.markdown", + "settings": { + "foreground": "#e06c75" + } + }, + { + "name": "[VSCODE-CUSTOM] Markdown Underline Link/Image", + "scope": "markup.underline.link.markdown,markup.underline.link.image.markdown", + "settings": { + "foreground": "#c678dd" + } + }, + { + "name": "[VSCODE-CUSTOM] Markdown Link Title/Description", + "scope": "string.other.link.title.markdown,string.other.link.description.markdown", + "settings": { + "foreground": "#61afef" + } + }, + { + "name": "[VSCODE-CUSTOM] Asciidoc Inline Raw", + "scope": "markup.raw.monospace.asciidoc", + "settings": { + "foreground": "#98c379" + } + }, + { + "name": "[VSCODE-CUSTOM] Asciidoc Inline Raw Punctuation Definition", + "scope": "punctuation.definition.asciidoc", + "settings": { + "foreground": "#e5c07b" + } + }, + { + "name": "[VSCODE-CUSTOM] Asciidoc List Punctuation Definition", + "scope": "markup.list.asciidoc", + "settings": { + "foreground": "#e5c07b" + } + }, + { + "name": "[VSCODE-CUSTOM] Asciidoc underline link", + "scope": "markup.link.asciidoc,markup.other.url.asciidoc", + "settings": { + "foreground": "#c678dd" + } + }, + { + "name": "[VSCODE-CUSTOM] Asciidoc link name", + "scope": "string.unquoted.asciidoc,markup.other.url.asciidoc", + "settings": { + "foreground": "#61afef" + } + }, + { + "name": "Regular Expressions", + "scope": "string.regexp", + "settings": { + "foreground": "#56b6c2" + } + }, + { + "name": "Embedded", + "scope": "punctuation.section.embedded, variable.interpolation", + "settings": { + "foreground": "#e06c75" + } + }, + { + "name": "Embedded", + "scope": "punctuation.section.embedded.begin,punctuation.section.embedded.end", + "settings": { + "foreground": "#c678dd" + } + }, + { + "name": "illegal", + "scope": "invalid.illegal", + "settings": { + "foreground": "#ffffff" + } + }, + { + "name": "illegal", + "scope": "invalid.illegal.bad-ampersand.html", + "settings": { + "foreground": "#abb2bf" + } + }, + { + "scope": "invalid.illegal.unrecognized-tag.html", + "settings": { + "foreground": "#e06c75" + } + }, + { + "name": "Broken", + "scope": "invalid.broken", + "settings": { + "foreground": "#ffffff" + } + }, + { + "name": "Deprecated", + "scope": "invalid.deprecated", + "settings": { + "foreground": "#ffffff" + } + }, + { + "name": "html Deprecated", + "scope": "invalid.deprecated.entity.other.attribute-name.html", + "settings": { + "foreground": "#d19a66" + } + }, + { + "name": "Unimplemented", + "scope": "invalid.unimplemented", + "settings": { + "foreground": "#ffffff" + } + }, + { + "name": "Source Json Meta Structure Dictionary Json > String Quoted Json", + "scope": "source.json meta.structure.dictionary.json > string.quoted.json", + "settings": { + "foreground": "#e06c75" + } + }, + { + "name": "Source Json Meta Structure Dictionary Json > String Quoted Json > Punctuation String", + "scope": "source.json meta.structure.dictionary.json > string.quoted.json > punctuation.string", + "settings": { + "foreground": "#e06c75" + } + }, + { + "name": "Source Json Meta Structure Dictionary Json > Value Json > String Quoted Json,source Json Meta Structure Array Json > Value Json > String Quoted Json,source Json Meta Structure Dictionary Json > Value Json > String Quoted Json > Punctuation,source Json Meta Structure Array Json > Value Json > String Quoted Json > Punctuation", + "scope": "source.json meta.structure.dictionary.json > value.json > string.quoted.json,source.json meta.structure.array.json > value.json > string.quoted.json,source.json meta.structure.dictionary.json > value.json > string.quoted.json > punctuation,source.json meta.structure.array.json > value.json > string.quoted.json > punctuation", + "settings": { + "foreground": "#98c379" + } + }, + { + "name": "Source Json Meta Structure Dictionary Json > Constant Language Json,source Json Meta Structure Array Json > Constant Language Json", + "scope": "source.json meta.structure.dictionary.json > constant.language.json,source.json meta.structure.array.json > constant.language.json", + "settings": { + "foreground": "#56b6c2" + } + }, + { + "name": "[VSCODE-CUSTOM] JSON Property Name", + "scope": "support.type.property-name.json", + "settings": { + "foreground": "#e06c75" + } + }, + { + "name": "[VSCODE-CUSTOM] JSON Punctuation for Property Name", + "scope": "support.type.property-name.json punctuation", + "settings": { + "foreground": "#e06c75" + } + }, + { + "name": "laravel blade tag", + "scope": "text.html.laravel-blade source.php.embedded.line.html entity.name.tag.laravel-blade", + "settings": { + "foreground": "#c678dd" + } + }, + { + "name": "laravel blade @", + "scope": "text.html.laravel-blade source.php.embedded.line.html support.constant.laravel-blade", + "settings": { + "foreground": "#c678dd" + } + }, + { + "name": "use statement for other classes", + "scope": "support.other.namespace.use.php,support.other.namespace.use-as.php,entity.other.alias.php,meta.interface.php", + "settings": { + "foreground": "#e5c07b" + } + }, + { + "name": "error suppression", + "scope": "keyword.operator.error-control.php", + "settings": { + "foreground": "#c678dd" + } + }, + { + "name": "php instanceof", + "scope": "keyword.operator.type.php", + "settings": { + "foreground": "#c678dd" + } + }, + { + "name": "style double quoted array index normal begin", + "scope": "punctuation.section.array.begin.php", + "settings": { + "foreground": "#abb2bf" + } + }, + { + "name": "style double quoted array index normal end", + "scope": "punctuation.section.array.end.php", + "settings": { + "foreground": "#abb2bf" + } + }, + { + "name": "php illegal.non-null-typehinted", + "scope": "invalid.illegal.non-null-typehinted.php", + "settings": { + "foreground": "#f44747" + } + }, + { + "name": "php types", + "scope": "storage.type.php,meta.other.type.phpdoc.php,keyword.other.type.php,keyword.other.array.phpdoc.php", + "settings": { + "foreground": "#e5c07b" + } + }, + { + "name": "php call-function", + "scope": "meta.function-call.php,meta.function-call.object.php,meta.function-call.static.php", + "settings": { + "foreground": "#61afef" + } + }, + { + "name": "php function-resets", + "scope": "punctuation.definition.parameters.begin.bracket.round.php,punctuation.definition.parameters.end.bracket.round.php,punctuation.separator.delimiter.php,punctuation.section.scope.begin.php,punctuation.section.scope.end.php,punctuation.terminator.expression.php,punctuation.definition.arguments.begin.bracket.round.php,punctuation.definition.arguments.end.bracket.round.php,punctuation.definition.storage-type.begin.bracket.round.php,punctuation.definition.storage-type.end.bracket.round.php,punctuation.definition.array.begin.bracket.round.php,punctuation.definition.array.end.bracket.round.php,punctuation.definition.begin.bracket.round.php,punctuation.definition.end.bracket.round.php,punctuation.definition.begin.bracket.curly.php,punctuation.definition.end.bracket.curly.php,punctuation.definition.section.switch-block.end.bracket.curly.php,punctuation.definition.section.switch-block.start.bracket.curly.php,punctuation.definition.section.switch-block.begin.bracket.curly.php,punctuation.definition.section.switch-block.end.bracket.curly.php", + "settings": { + "foreground": "#abb2bf" + } + }, + { + "name": "support php constants", + "scope": "support.constant.core.rust", + "settings": { + "foreground": "#d19a66" + } + }, + { + "name": "support php constants", + "scope": "support.constant.ext.php,support.constant.std.php,support.constant.core.php,support.constant.parser-token.php", + "settings": { + "foreground": "#d19a66" + } + }, + { + "name": "php goto", + "scope": "entity.name.goto-label.php,support.other.php", + "settings": { + "foreground": "#61afef" + } + }, + { + "name": "php logical/bitwise operator", + "scope": "keyword.operator.logical.php,keyword.operator.bitwise.php,keyword.operator.arithmetic.php", + "settings": { + "foreground": "#56b6c2" + } + }, + { + "name": "php regexp operator", + "scope": "keyword.operator.regexp.php", + "settings": { + "foreground": "#c678dd" + } + }, + { + "name": "php comparison", + "scope": "keyword.operator.comparison.php", + "settings": { + "foreground": "#56b6c2" + } + }, + { + "name": "php heredoc/nowdoc", + "scope": "keyword.operator.heredoc.php,keyword.operator.nowdoc.php", + "settings": { + "foreground": "#c678dd" + } + }, + { + "name": "python function decorator @", + "scope": "meta.function.decorator.python", + "settings": { + "foreground": "#61afef" + } + }, + { + "name": "python function support", + "scope": "support.token.decorator.python,meta.function.decorator.identifier.python", + "settings": { + "foreground": "#56b6c2" + } + }, + { + "name": "parameter function js/ts", + "scope": "function.parameter", + "settings": { + "foreground": "#abb2bf" + } + }, + { + "name": "brace function", + "scope": "function.brace", + "settings": { + "foreground": "#abb2bf" + } + }, + { + "name": "parameter function ruby cs", + "scope": "function.parameter.ruby, function.parameter.cs", + "settings": { + "foreground": "#abb2bf" + } + }, + { + "name": "constant.language.symbol.ruby", + "scope": "constant.language.symbol.ruby", + "settings": { + "foreground": "#56b6c2" + } + }, + { + "name": "constant.language.symbol.hashkey.ruby", + "scope": "constant.language.symbol.hashkey.ruby", + "settings": { + "foreground": "#56b6c2" + } + }, + { + "name": "rgb-value", + "scope": "rgb-value", + "settings": { + "foreground": "#56b6c2" + } + }, + { + "name": "rgb value", + "scope": "inline-color-decoration rgb-value", + "settings": { + "foreground": "#d19a66" + } + }, + { + "name": "rgb value less", + "scope": "less rgb-value", + "settings": { + "foreground": "#d19a66" + } + }, + { + "name": "sass selector", + "scope": "selector.sass", + "settings": { + "foreground": "#e06c75" + } + }, + { + "name": "ts primitive/builtin types", + "scope": "support.type.primitive.ts,support.type.builtin.ts,support.type.primitive.tsx,support.type.builtin.tsx", + "settings": { + "foreground": "#e5c07b" + } + }, + { + "name": "block scope", + "scope": "block.scope.end,block.scope.begin", + "settings": { + "foreground": "#abb2bf" + } + }, + { + "name": "cs storage type", + "scope": "storage.type.cs", + "settings": { + "foreground": "#e5c07b" + } + }, + { + "name": "cs local variable", + "scope": "entity.name.variable.local.cs", + "settings": { + "foreground": "#e06c75" + } + }, + { + "scope": "token.info-token", + "settings": { + "foreground": "#61afef" + } + }, + { + "scope": "token.warn-token", + "settings": { + "foreground": "#d19a66" + } + }, + { + "scope": "token.error-token", + "settings": { + "foreground": "#f44747" + } + }, + { + "scope": "token.debug-token", + "settings": { + "foreground": "#c678dd" + } + }, + { + "name": "String interpolation", + "scope": [ + "punctuation.definition.template-expression.begin", + "punctuation.definition.template-expression.end", + "punctuation.section.embedded" + ], + "settings": { + "foreground": "#c678dd" + } + }, + { + "name": "Reset JavaScript string interpolation expression", + "scope": ["meta.template.expression"], + "settings": { + "foreground": "#abb2bf" + } + }, + { + "name": "Import module JS", + "scope": ["keyword.operator.module"], + "settings": { + "foreground": "#c678dd" + } + }, + { + "name": "js Flowtype", + "scope": ["support.type.type.flowtype"], + "settings": { + "foreground": "#61afef" + } + }, + { + "name": "js Flow", + "scope": ["support.type.primitive"], + "settings": { + "foreground": "#e5c07b" + } + }, + { + "name": "js class prop", + "scope": ["meta.property.object"], + "settings": { + "foreground": "#e06c75" + } + }, + { + "name": "js func parameter", + "scope": ["variable.parameter.function.js"], + "settings": { + "foreground": "#e06c75" + } + }, + { + "name": "js template literals begin", + "scope": ["keyword.other.template.begin"], + "settings": { + "foreground": "#98c379" + } + }, + { + "name": "js template literals end", + "scope": ["keyword.other.template.end"], + "settings": { + "foreground": "#98c379" + } + }, + { + "name": "js template literals variable braces begin", + "scope": ["keyword.other.substitution.begin"], + "settings": { + "foreground": "#98c379" + } + }, + { + "name": "js template literals variable braces end", + "scope": ["keyword.other.substitution.end"], + "settings": { + "foreground": "#98c379" + } + }, + { + "name": "js operator.assignment", + "scope": ["keyword.operator.assignment"], + "settings": { + "foreground": "#56b6c2" + } + }, + { + "name": "go operator", + "scope": ["keyword.operator.assignment.go"], + "settings": { + "foreground": "#e5c07b" + } + }, + { + "name": "go operator", + "scope": ["keyword.operator.arithmetic.go", "keyword.operator.address.go"], + "settings": { + "foreground": "#c678dd" + } + }, + { + "name": "Go package name", + "scope": ["entity.name.package.go"], + "settings": { + "foreground": "#e5c07b" + } + }, + { + "name": "elm prelude", + "scope": ["support.type.prelude.elm"], + "settings": { + "foreground": "#56b6c2" + } + }, + { + "name": "elm constant", + "scope": ["support.constant.elm"], + "settings": { + "foreground": "#d19a66" + } + }, + { + "name": "template literal", + "scope": ["punctuation.quasi.element"], + "settings": { + "foreground": "#c678dd" + } + }, + { + "name": "html/pug (jade) escaped characters and entities", + "scope": ["constant.character.entity"], + "settings": { + "foreground": "#e06c75" + } + }, + { + "name": "styling css pseudo-elements/classes to be able to differentiate from classes which are the same colour", + "scope": [ + "entity.other.attribute-name.pseudo-element", + "entity.other.attribute-name.pseudo-class" + ], + "settings": { + "foreground": "#56b6c2" + } + }, + { + "name": "Clojure globals", + "scope": ["entity.global.clojure"], + "settings": { + "foreground": "#e5c07b" + } + }, + { + "name": "Clojure symbols", + "scope": ["meta.symbol.clojure"], + "settings": { + "foreground": "#e06c75" + } + }, + { + "name": "Clojure constants", + "scope": ["constant.keyword.clojure"], + "settings": { + "foreground": "#56b6c2" + } + }, + { + "name": "CoffeeScript Function Argument", + "scope": ["meta.arguments.coffee", "variable.parameter.function.coffee"], + "settings": { + "foreground": "#e06c75" + } + }, + { + "name": "Ini Default Text", + "scope": ["source.ini"], + "settings": { + "foreground": "#98c379" + } + }, + { + "name": "Makefile prerequisities", + "scope": ["meta.scope.prerequisites.makefile"], + "settings": { + "foreground": "#e06c75" + } + }, + { + "name": "Makefile text colour", + "scope": ["source.makefile"], + "settings": { + "foreground": "#e5c07b" + } + }, + { + "name": "Groovy import names", + "scope": ["storage.modifier.import.groovy"], + "settings": { + "foreground": "#e5c07b" + } + }, + { + "name": "Groovy Methods", + "scope": ["meta.method.groovy"], + "settings": { + "foreground": "#61afef" + } + }, + { + "name": "Groovy Variables", + "scope": ["meta.definition.variable.name.groovy"], + "settings": { + "foreground": "#e06c75" + } + }, + { + "name": "Groovy Inheritance", + "scope": ["meta.definition.class.inherited.classes.groovy"], + "settings": { + "foreground": "#98c379" + } + }, + { + "name": "HLSL Semantic", + "scope": ["support.variable.semantic.hlsl"], + "settings": { + "foreground": "#e5c07b" + } + }, + { + "name": "HLSL Types", + "scope": [ + "support.type.texture.hlsl", + "support.type.sampler.hlsl", + "support.type.object.hlsl", + "support.type.object.rw.hlsl", + "support.type.fx.hlsl", + "support.type.object.hlsl" + ], + "settings": { + "foreground": "#c678dd" + } + }, + { + "name": "SQL Variables", + "scope": ["text.variable", "text.bracketed"], + "settings": { + "foreground": "#e06c75" + } + }, + { + "name": "types", + "scope": ["support.type.swift", "support.type.vb.asp"], + "settings": { + "foreground": "#e5c07b" + } + }, + { + "name": "heading 1, keyword", + "scope": ["entity.name.function.xi"], + "settings": { + "foreground": "#e5c07b" + } + }, + { + "name": "heading 2, callable", + "scope": ["entity.name.class.xi"], + "settings": { + "foreground": "#56b6c2" + } + }, + { + "name": "heading 3, property", + "scope": ["constant.character.character-class.regexp.xi"], + "settings": { + "foreground": "#e06c75" + } + }, + { + "name": "heading 4, type, class, interface", + "scope": ["constant.regexp.xi"], + "settings": { + "foreground": "#c678dd" + } + }, + { + "name": "heading 5, enums, preprocessor, constant, decorator", + "scope": ["keyword.control.xi"], + "settings": { + "foreground": "#56b6c2" + } + }, + { + "name": "heading 6, number", + "scope": ["invalid.xi"], + "settings": { + "foreground": "#abb2bf" + } + }, + { + "name": "string", + "scope": ["beginning.punctuation.definition.quote.markdown.xi"], + "settings": { + "foreground": "#98c379" + } + }, + { + "name": "comments", + "scope": ["beginning.punctuation.definition.list.markdown.xi"], + "settings": { + "foreground": "#7f848e" + } + }, + { + "name": "link", + "scope": ["constant.character.xi"], + "settings": { + "foreground": "#61afef" + } + }, + { + "name": "accent", + "scope": ["accent.xi"], + "settings": { + "foreground": "#61afef" + } + }, + { + "name": "wikiword", + "scope": ["wikiword.xi"], + "settings": { + "foreground": "#d19a66" + } + }, + { + "name": "language operators like '+', '-' etc", + "scope": ["constant.other.color.rgb-value.xi"], + "settings": { + "foreground": "#ffffff" + } + }, + { + "name": "elements to dim", + "scope": ["punctuation.definition.tag.xi"], + "settings": { + "foreground": "#5c6370" + } + }, + { + "name": "C++/C#", + "scope": [ + "entity.name.label.cs", + "entity.name.scope-resolution.function.call", + "entity.name.scope-resolution.function.definition" + ], + "settings": { + "foreground": "#e5c07b" + } + }, + { + "name": "Markdown underscore-style headers", + "scope": [ + "entity.name.label.cs", + "markup.heading.setext.1.markdown", + "markup.heading.setext.2.markdown" + ], + "settings": { + "foreground": "#e06c75" + } + }, + { + "name": "meta.brace.square", + "scope": [" meta.brace.square"], + "settings": { + "foreground": "#abb2bf" + } + }, + { + "name": "Comments", + "scope": "comment, punctuation.definition.comment", + "settings": { + "foreground": "#7f848e", + "fontStyle": "italic" + } + }, + { + "name": "[VSCODE-CUSTOM] Markdown Quote", + "scope": "markup.quote.markdown", + "settings": { + "foreground": "#5c6370" + } + }, + { + "name": "punctuation.definition.block.sequence.item.yaml", + "scope": "punctuation.definition.block.sequence.item.yaml", + "settings": { + "foreground": "#abb2bf" + } + }, + { + "scope": ["constant.language.symbol.elixir", "constant.language.symbol.double-quoted.elixir"], + "settings": { + "foreground": "#56b6c2" + } + }, + { + "scope": ["entity.name.variable.parameter.cs"], + "settings": { + "foreground": "#e5c07b" + } + }, + { + "scope": ["entity.name.variable.field.cs"], + "settings": { + "foreground": "#e06c75" + } + }, + { + "name": "Deleted", + "scope": "markup.deleted", + "settings": { + "foreground": "#e06c75" + } + }, + { + "name": "Inserted", + "scope": "markup.inserted", + "settings": { + "foreground": "#98c379" + } + }, + { + "name": "Underline", + "scope": "markup.underline", + "settings": { + "fontStyle": "underline" + } + }, + { + "name": "punctuation.section.embedded.begin.php", + "scope": ["punctuation.section.embedded.begin.php", "punctuation.section.embedded.end.php"], + "settings": { + "foreground": "#BE5046" + } + }, + { + "name": "support.other.namespace.php", + "scope": ["support.other.namespace.php"], + "settings": { + "foreground": "#abb2bf" + } + }, + { + "name": "Latex variable parameter", + "scope": ["variable.parameter.function.latex"], + "settings": { + "foreground": "#e06c75" + } + }, + { + "name": "variable.other.object", + "scope": ["variable.other.object"], + "settings": { + "foreground": "#e5c07b" + } + }, + { + "name": "variable.other.constant.property", + "scope": ["variable.other.constant.property"], + "settings": { + "foreground": "#e06c75" + } + }, + { + "name": "entity.other.inherited-class", + "scope": ["entity.other.inherited-class"], + "settings": { + "foreground": "#e5c07b" + } + }, + { + "name": "c variable readwrite", + "scope": "variable.other.readwrite.c", + "settings": { + "foreground": "#e06c75" + } + }, + { + "name": "php scope", + "scope": "entity.name.variable.parameter.php,punctuation.separator.colon.php,constant.other.php", + "settings": { + "foreground": "#abb2bf" + } + }, + { + "name": "Assembly", + "scope": ["constant.numeric.decimal.asm.x86_64"], + "settings": { + "foreground": "#c678dd" + } + }, + { + "scope": ["support.other.parenthesis.regexp"], + "settings": { + "foreground": "#d19a66" + } + }, + { + "scope": ["constant.character.escape"], + "settings": { + "foreground": "#56b6c2" + } + }, + { + "scope": ["string.regexp"], + "settings": { + "foreground": "#e06c75" + } + }, + { + "scope": ["log.info"], + "settings": { + "foreground": "#98c379" + } + }, + { + "scope": ["log.warning"], + "settings": { + "foreground": "#e5c07b" + } + }, + { + "scope": ["log.error"], + "settings": { + "foreground": "#e06c75" + } + }, + { + "scope": "keyword.operator.expression.is", + "settings": { + "foreground": "#c678dd" + } + }, + { + "scope": "entity.name.label", + "settings": { + "foreground": "#e06c75" + } + }, + { + "name": "js/ts italic", + "scope": "entity.other.attribute-name.js,entity.other.attribute-name.ts,entity.other.attribute-name.jsx,entity.other.attribute-name.tsx,variable.parameter,variable.language.super", + "settings": { + "fontStyle": "italic" + } + }, + { + "name": "comment", + "scope": "comment.line.double-slash,comment.block.documentation", + "settings": { + "fontStyle": "italic" + } + }, + { + "name": "markup.italic.markdown", + "scope": "markup.italic.markdown", + "settings": { + "fontStyle": "italic" + } + } + ], + "colors": { + "activityBar.background": "#282c34", + "activityBar.foreground": "#d7dae0", + "activityBarBadge.background": "#4d78cc", + "activityBarBadge.foreground": "#f8fafd", + "badge.background": "#282c34", + "button.background": "#404754", + "button.secondaryBackground": "#30333d", + "button.secondaryForeground": "#c0bdbd", + "checkbox.border": "#404754", + "debugToolBar.background": "#21252b", + "descriptionForeground": "#abb2bf", + "diffEditor.insertedTextBackground": "#00809b33", + "dropdown.background": "#21252b", + "dropdown.border": "#21252b", + "editor.background": "#282c34", + "editor.findMatchBackground": "#42557b", + "editor.findMatchBorder": "#457dff", + "editor.findMatchHighlightBackground": "#6199ff2f", + "editor.foreground": "#abb2bf", + "editorBracketHighlight.foreground1": "#d19a66", + "editorBracketHighlight.foreground2": "#c678dd", + "editorBracketHighlight.foreground3": "#56b6c2", + "editorHoverWidget.highlightForeground": "#61afef", + "editorInlayHint.foreground": "#abb2bf", + "editorInlayHint.background": "#2c313c", + "editor.lineHighlightBackground": "#2c313c", + "editorLineNumber.activeForeground": "#abb2bf", + "editorGutter.addedBackground": "#109868", + "editorGutter.deletedBackground": "#9A353D", + "editorGutter.modifiedBackground": "#948B60", + "editorOverviewRuler.addedBackground": "#109868", + "editorOverviewRuler.deletedBackground": "#9A353D", + "editorOverviewRuler.modifiedBackground": "#948B60", + "editor.selectionBackground": "#67769660", + "editor.selectionHighlightBackground": "#ffffff10", + "editor.selectionHighlightBorder": "#dddddd", + "editor.wordHighlightBackground": "#d2e0ff2f", + "editor.wordHighlightBorder": "#7f848e", + "editor.wordHighlightStrongBackground": "#abb2bf26", + "editor.wordHighlightStrongBorder": "#7f848e", + "editorBracketMatch.background": "#515a6b", + "editorBracketMatch.border": "#515a6b", + "editorCursor.background": "#ffffffc9", + "editorCursor.foreground": "#528bff", + "editorError.foreground": "#c24038", + "editorGroup.background": "#181a1f", + "editorGroup.border": "#181a1f", + "editorGroupHeader.tabsBackground": "#21252b", + "editorHoverWidget.background": "#21252b", + "editorHoverWidget.border": "#181a1f", + "editorIndentGuide.activeBackground": "#c8c8c859", + "editorIndentGuide.background": "#3b4048", + "editorLineNumber.foreground": "#495162", + "editorMarkerNavigation.background": "#21252b", + "editorRuler.foreground": "#abb2bf26", + "editorSuggestWidget.background": "#21252b", + "editorSuggestWidget.border": "#181a1f", + "editorSuggestWidget.selectedBackground": "#2c313a", + "editorWarning.foreground": "#d19a66", + "editorWhitespace.foreground": "#ffffff1d", + "editorWidget.background": "#21252b", + "focusBorder": "#3e4452", + "gitDecoration.ignoredResourceForeground": "#636b78", + "input.background": "#1d1f23", + "input.foreground": "#abb2bf", + "list.activeSelectionBackground": "#2c313a", + "list.activeSelectionForeground": "#d7dae0", + "list.focusBackground": "#323842", + "list.focusForeground": "#f0f0f0", + "list.highlightForeground": "#ecebeb", + "list.hoverBackground": "#2c313a", + "list.hoverForeground": "#abb2bf", + "list.inactiveSelectionBackground": "#323842", + "list.inactiveSelectionForeground": "#d7dae0", + "list.warningForeground": "#d19a66", + "menu.foreground": "#abb2bf", + "menu.separatorBackground": "#343a45", + "minimapGutter.addedBackground": "#109868", + "minimapGutter.deletedBackground": "#9A353D", + "minimapGutter.modifiedBackground": "#948B60", + "panel.border": "#3e4452", + "panelSectionHeader.background": "#21252b", + "peekViewEditor.background": "#1b1d23", + "peekViewEditor.matchHighlightBackground": "#29244b", + "peekViewResult.background": "#22262b", + "scrollbar.shadow": "#23252c", + "scrollbarSlider.activeBackground": "#747d9180", + "scrollbarSlider.background": "#4e566660", + "scrollbarSlider.hoverBackground": "#5a637580", + "settings.focusedRowBackground": "#282c34", + "settings.headerForeground": "#fff", + "sideBar.background": "#21252b", + "sideBar.foreground": "#abb2bf", + "sideBarSectionHeader.background": "#282c34", + "sideBarSectionHeader.foreground": "#abb2bf", + "statusBar.background": "#21252b", + "statusBar.debuggingBackground": "#cc6633", + "statusBar.debuggingBorder": "#ff000000", + "statusBar.debuggingForeground": "#ffffff", + "statusBar.foreground": "#9da5b4", + "statusBar.noFolderBackground": "#21252b", + "statusBarItem.remoteBackground": "#4d78cc", + "statusBarItem.remoteForeground": "#f8fafd", + "tab.activeBackground": "#282c34", + "tab.activeBorder": "#b4b4b4", + "tab.activeForeground": "#dcdcdc", + "tab.border": "#181a1f", + "tab.hoverBackground": "#323842", + "tab.inactiveBackground": "#21252b", + "tab.unfocusedHoverBackground": "#323842", + "terminal.ansiBlack": "#3f4451", + "terminal.ansiBlue": "#4aa5f0", + "terminal.ansiBrightBlack": "#4f5666", + "terminal.ansiBrightBlue": "#4dc4ff", + "terminal.ansiBrightCyan": "#4cd1e0", + "terminal.ansiBrightGreen": "#a5e075", + "terminal.ansiBrightMagenta": "#de73ff", + "terminal.ansiBrightRed": "#ff616e", + "terminal.ansiBrightWhite": "#e6e6e6", + "terminal.ansiBrightYellow": "#f0a45d", + "terminal.ansiCyan": "#42b3c2", + "terminal.ansiGreen": "#8cc265", + "terminal.ansiMagenta": "#c162de", + "terminal.ansiRed": "#e05561", + "terminal.ansiWhite": "#d7dae0", + "terminal.ansiYellow": "#d18f52", + "terminal.background": "#282c34", + "terminal.border": "#3e4452", + "terminal.foreground": "#abb2bf", + "terminal.selectionBackground": "#abb2bf30", + "textBlockQuote.background": "#2e3440", + "textBlockQuote.border": "#4b5362", + "textLink.foreground": "#61afef", + "textPreformat.foreground": "#d19a66", + "titleBar.activeBackground": "#282c34", + "titleBar.activeForeground": "#9da5b4", + "titleBar.inactiveBackground": "#282c34", + "titleBar.inactiveForeground": "#6b717d", + "tree.indentGuidesStroke": "#ffffff1d", + "walkThrough.embeddedEditorBackground": "#2e3440", + "welcomePage.buttonHoverBackground": "#404754" + } +} diff --git a/docs/shiki/themes/poimandres.json b/docs/shiki/themes/poimandres.json new file mode 100644 index 00000000..92fac99e --- /dev/null +++ b/docs/shiki/themes/poimandres.json @@ -0,0 +1,1218 @@ +{ + "name": "poimandres", + "type": "dark", + "colors": { + "activityBar.background": "#1b1e28", + "activityBar.foreground": "#a6accd", + "activityBarBadge.background": "#303340", + "activityBarBadge.foreground": "#e4f0fb", + "badge.background": "#303340", + "badge.foreground": "#e4f0fb", + "button.background": "#303340", + "diffEditor.insertedTextBackground": "#50647715", + "diffEditor.removedTextBackground": "#d0679d20", + "dropdown.background": "#1b1e28", + "dropdown.border": "#ffffff10", + "editor.background": "#1b1e28", + "editor.findMatchBackground": "#ADD7FF40", + "editor.findMatchBorder": "#ADD7FF", + "editor.findMatchHighlightBackground": "#ADD7FF40", + "editor.foreground": "#a6accd", + "editor.lineHighlightBackground": "#717cb425", + "editor.lineHighlightBorder": "#00000000", + "editor.selectionBackground": "#717cb425", + "editor.selectionHighlightBackground": "#00000000", + "editor.selectionHighlightBorder": "#ADD7FF80", + "editor.wordHighlightBackground": "#ADD7FF20", + "editor.wordHighlightStrongBackground": "#ADD7FF40", + "editorBracketMatch.border": "#e4f0fb40", + "editorCursor.foreground": "#a6accd", + "editorGroup.border": "#00000030", + "editorGroupHeader.tabsBackground": "#1b1e28", + "editorHoverWidget.background": "#1b1e28", + "editorHoverWidget.border": "#ffffff10", + "editorIndentGuide.background": "#303340", + "editorLineNumber.foreground": "#767c9d50", + "editorLink.activeForeground": "#ADD7FF", + "editorSuggestWidget.background": "#1b1e28", + "editorSuggestWidget.border": "#ffffff10", + "editorSuggestWidget.foreground": "#a6accd", + "editorSuggestWidget.highlightForeground": "#5DE4c7", + "editorSuggestWidget.selectedBackground": "#00000050", + "editorWidget.background": "#1b1e28", + "editor.findRangeHighlightBackground": "#ADD7FF40", + "editor.focusedStackFrameHighlightBackground": "#7abd7a4d", + "editor.foldBackground": "#717cb40b", + "editor.hoverHighlightBackground": "#264f7840", + "editor.inactiveSelectionBackground": "#717cb425", + "editor.linkedEditingBackground": "#d0679d4d", + "editor.rangeHighlightBackground": "#ffffff0b", + "editor.snippetFinalTabstopHighlightBorder": "#525252", + "editor.snippetTabstopHighlightBackground": "#7c7c7c4d", + "editor.stackFrameHighlightBackground": "#ffff0033", + "editor.symbolHighlightBackground": "#89ddff60", + "editorBracketMatch.background": "#00000000", + "editorCodeLens.foreground": "#a6accd", + "editorError.foreground": "#d0679d", + "editorGroup.dropBackground": "#7390AA80", + "editorGroupHeader.noTabsBackground": "#1b1e28", + "editorGutter.background": "#1b1e28", + "editorGutter.commentRangeForeground": "#a6accd", + "editorGutter.foldingControlForeground": "#a6accd", + "editorGutter.addedBackground": "#5fb3a140", + "editorGutter.deletedBackground": "#d0679d40", + "editorGutter.modifiedBackground": "#ADD7FF20", + "editorHint.foreground": "#7390AAb3", + "editorHoverWidget.foreground": "#a6accd", + "editorHoverWidget.statusBarBackground": "#202430", + "editorIndentGuide.activeBackground": "#e3e4e229", + "editorInfo.foreground": "#ADD7FF", + "editorInlineHint.background": "#a6accd", + "editorInlineHint.foreground": "#1b1e28", + "editorLightBulb.foreground": "#fffac2", + "editorLightBulbAutoFix.foreground": "#ADD7FF", + "editorLineNumber.activeForeground": "#a6accd", + "editorMarkerNavigation.background": "#2d2d30", + "editorMarkerNavigationError.background": "#d0679d", + "editorMarkerNavigationInfo.background": "#ADD7FF", + "editorMarkerNavigationWarning.background": "#fffac2", + "editorOverviewRuler.addedForeground": "#5fb3a199", + "editorOverviewRuler.border": "#00000000", + "editorOverviewRuler.bracketMatchForeground": "#a0a0a0", + "editorOverviewRuler.commonContentForeground": "#a6accd66", + "editorOverviewRuler.currentContentForeground": "#5fb3a180", + "editorOverviewRuler.deletedForeground": "#d0679d99", + "editorOverviewRuler.errorForeground": "#d0679db3", + "editorOverviewRuler.findMatchForeground": "#e4f0fb20", + "editorOverviewRuler.incomingContentForeground": "#89ddff80", + "editorOverviewRuler.infoForeground": "#ADD7FF", + "editorOverviewRuler.modifiedForeground": "#89ddff99", + "editorOverviewRuler.rangeHighlightForeground": "#89ddff99", + "editorOverviewRuler.selectionHighlightForeground": "#a0a0a0cc", + "editorOverviewRuler.warningForeground": "#fffac2", + "editorOverviewRuler.wordHighlightForeground": "#a0a0a0cc", + "editorOverviewRuler.wordHighlightStrongForeground": "#89ddffcc", + "editorPane.background": "#1b1e28", + "editorRuler.foreground": "#e4f0fb10", + "editorUnnecessaryCode.opacity": "#000000aa", + "editorWarning.foreground": "#fffac2", + "editorWhitespace.foreground": "#303340", + "editorWidget.border": "#a6accd", + "editorWidget.foreground": "#a6accd", + "extensionButton.prominentBackground": "#30334090", + "extensionButton.prominentHoverBackground": "#303340", + "focusBorder": "#00000000", + "input.background": "#ffffff05", + "input.border": "#ffffff10", + "input.foreground": "#e4f0fb", + "input.placeholderForeground": "#a6accd60", + "inputValidation.errorBorder": "#d0679d", + "inputValidation.errorForeground": "#d0679d", + "inputValidation.infoBorder": "#89ddff", + "inputValidation.warningBorder": "#fffac2", + "notifications.background": "#1b1e28", + "notifications.foreground": "#e4f0fb", + "panel.border": "#00000030", + "panelTitle.activeForeground": "#a6accd", + "peekView.border": "#00000030", + "peekViewEditor.background": "#a6accd05", + "peekViewEditorGutter.background": "#a6accd05", + "peekViewResult.background": "#a6accd05", + "peekViewTitle.background": "#a6accd05", + "peekViewTitleDescription.foreground": "#a6accd60", + "scrollbar.shadow": "#00000000", + "scrollbarSlider.activeBackground": "#a6accd25", + "scrollbarSlider.background": "#00000080", + "scrollbarSlider.hoverBackground": "#a6accd25", + "selection.background": "#a6accd", + "sideBar.background": "#1b1e28", + "sideBar.foreground": "#767c9d", + "sideBarSectionHeader.background": "#1b1e28", + "sideBarTitle.foreground": "#a6accd", + "statusBar.background": "#1b1e28", + "statusBar.foreground": "#a6accd", + "statusBar.noFolderBackground": "#1b1e28", + "tab.activeBackground": "#30334080", + "tab.activeForeground": "#e4f0fb", + "tab.border": "#00000000", + "tab.inactiveBackground": "#1b1e28", + "tab.inactiveForeground": "#767c9d", + "tab.unfocusedActiveForeground": "#a6accd", + "tab.activeModifiedBorder": "#ADD7FF", + "tab.inactiveModifiedBorder": "#ADD7FF80", + "tab.lastPinnedBorder": "#00000000", + "tab.unfocusedActiveBackground": "#1b1e28", + "tab.unfocusedActiveModifiedBorder": "#ADD7FF40", + "tab.unfocusedInactiveBackground": "#1b1e28", + "tab.unfocusedInactiveForeground": "#a6accd80", + "tab.unfocusedInactiveModifiedBorder": "#ADD7FF40", + "terminal.ansiBlack": "#1b1e28", + "terminal.ansiBlue": "#89ddff", + "terminal.ansiBrightBlack": "#a6accd", + "terminal.ansiBrightBlue": "#ADD7FF", + "terminal.ansiBrightCyan": "#ADD7FF", + "terminal.ansiBrightGreen": "#5DE4c7", + "terminal.ansiBrightMagenta": "#f087bd", + "terminal.ansiBrightRed": "#d0679d", + "terminal.ansiBrightWhite": "#ffffff", + "terminal.ansiBrightYellow": "#fffac2", + "terminal.ansiCyan": "#89ddff", + "terminal.ansiGreen": "#5DE4c7", + "terminal.ansiMagenta": "#f087bd", + "terminal.ansiRed": "#d0679d", + "terminal.ansiWhite": "#ffffff", + "terminal.ansiYellow": "#fffac2", + "textLink.activeForeground": "#ADD7FF", + "textLink.foreground": "#ADD7FF", + "titleBar.activeBackground": "#1b1e28", + "titleBar.activeForeground": "#a6accd", + "titleBar.inactiveBackground": "#1b1e28", + "titleBar.inactiveForeground": "#767c9d", + "tree.indentGuidesStroke": "#303340", + "widget.shadow": "#00000030", + "activityBar.activeBorder": "#a6accd", + "activityBar.dropBorder": "#a6accd", + "activityBar.inactiveForeground": "#a6accd66", + "breadcrumb.activeSelectionForeground": "#e4f0fb", + "breadcrumb.background": "#00000000", + "breadcrumb.focusForeground": "#e4f0fb", + "breadcrumb.foreground": "#767c9dcc", + "breadcrumbPicker.background": "#1b1e28", + "button.foreground": "#ffffff", + "button.hoverBackground": "#50647750", + "button.secondaryBackground": "#a6accd", + "button.secondaryForeground": "#ffffff", + "button.secondaryHoverBackground": "#a6accd", + "charts.blue": "#ADD7FF", + "charts.foreground": "#a6accd", + "charts.green": "#5DE4c7", + "charts.lines": "#a6accd80", + "charts.orange": "#89ddff", + "charts.purple": "#f087bd", + "charts.red": "#d0679d", + "charts.yellow": "#fffac2", + "checkbox.background": "#1b1e28", + "checkbox.border": "#ffffff10", + "checkbox.foreground": "#e4f0fb", + "debugConsole.errorForeground": "#d0679d", + "debugConsole.infoForeground": "#ADD7FF", + "debugConsole.sourceForeground": "#a6accd", + "debugConsole.warningForeground": "#fffac2", + "debugConsoleInputIcon.foreground": "#a6accd", + "debugExceptionWidget.background": "#d0679d", + "debugExceptionWidget.border": "#d0679d", + "debugIcon.breakpointCurrentStackframeForeground": "#fffac2", + "debugIcon.breakpointDisabledForeground": "#7390AA", + "debugIcon.breakpointForeground": "#d0679d", + "debugIcon.breakpointStackframeForeground": "#5fb3a1", + "debugIcon.breakpointUnverifiedForeground": "#7390AA", + "debugIcon.continueForeground": "#ADD7FF", + "debugIcon.disconnectForeground": "#d0679d", + "debugIcon.pauseForeground": "#ADD7FF", + "debugIcon.restartForeground": "#5fb3a1", + "debugIcon.startForeground": "#5fb3a1", + "debugIcon.stepBackForeground": "#ADD7FF", + "debugIcon.stepIntoForeground": "#ADD7FF", + "debugIcon.stepOutForeground": "#ADD7FF", + "debugIcon.stepOverForeground": "#ADD7FF", + "debugIcon.stopForeground": "#d0679d", + "debugTokenExpression.boolean": "#89ddff", + "debugTokenExpression.error": "#d0679d", + "debugTokenExpression.name": "#e4f0fb", + "debugTokenExpression.number": "#5fb3a1", + "debugTokenExpression.string": "#89ddff", + "debugTokenExpression.value": "#a6accd99", + "debugToolBar.background": "#303340", + "debugView.exceptionLabelBackground": "#d0679d", + "debugView.exceptionLabelForeground": "#e4f0fb", + "debugView.stateLabelBackground": "#303340", + "debugView.stateLabelForeground": "#a6accd", + "debugView.valueChangedHighlight": "#89ddff", + "descriptionForeground": "#a6accdb3", + "diffEditor.diagonalFill": "#a6accd33", + "dropdown.foreground": "#e4f0fb", + "errorForeground": "#d0679d", + "extensionBadge.remoteBackground": "#303340", + "extensionBadge.remoteForeground": "#e4f0fb", + "extensionButton.prominentForeground": "#ffffff", + "extensionIcon.starForeground": "#fffac2", + "foreground": "#a6accd", + "gitDecoration.addedResourceForeground": "#5fb3a1", + "gitDecoration.conflictingResourceForeground": "#d0679d", + "gitDecoration.deletedResourceForeground": "#d0679d", + "gitDecoration.ignoredResourceForeground": "#767c9d70", + "gitDecoration.modifiedResourceForeground": "#ADD7FF", + "gitDecoration.renamedResourceForeground": "#5DE4c7", + "gitDecoration.stageDeletedResourceForeground": "#d0679d", + "gitDecoration.stageModifiedResourceForeground": "#ADD7FF", + "gitDecoration.submoduleResourceForeground": "#89ddff", + "gitDecoration.untrackedResourceForeground": "#5DE4c7", + "icon.foreground": "#a6accd", + "imagePreview.border": "#303340", + "inputOption.activeBackground": "#00000000", + "inputOption.activeBorder": "#00000000", + "inputOption.activeForeground": "#ffffff", + "inputValidation.errorBackground": "#1b1e28", + "inputValidation.infoBackground": "#506477", + "inputValidation.warningBackground": "#506477", + "list.deemphasizedForeground": "#767c9d", + "list.dropBackground": "#506477", + "list.filterMatchBackground": "#89ddff60", + "list.focusOutline": "#00000000", + "list.invalidItemForeground": "#fffac2", + "list.warningForeground": "#fffac2", + "listFilterWidget.background": "#303340", + "listFilterWidget.noMatchesOutline": "#d0679d", + "listFilterWidget.outline": "#00000000", + "list.activeSelectionBackground": "#30334080", + "list.activeSelectionForeground": "#e4f0fb", + "list.errorForeground": "#d0679d", + "list.focusBackground": "#30334080", + "list.focusForeground": "#a6accd", + "list.highlightForeground": "#5fb3a1", + "list.hoverBackground": "#30334080", + "list.hoverForeground": "#e4f0fb", + "list.inactiveSelectionBackground": "#30334080", + "list.inactiveSelectionForeground": "#e4f0fb", + "menu.background": "#1b1e28", + "menu.foreground": "#e4f0fb", + "menu.selectionBackground": "#303340", + "menu.selectionForeground": "#7390AA", + "menu.separatorBackground": "#767c9d", + "menubar.selectionBackground": "#717cb425", + "menubar.selectionForeground": "#a6accd", + "merge.commonContentBackground": "#a6accd29", + "merge.commonHeaderBackground": "#a6accd66", + "merge.currentContentBackground": "#5fb3a133", + "merge.currentHeaderBackground": "#5fb3a180", + "merge.incomingContentBackground": "#89ddff33", + "merge.incomingHeaderBackground": "#89ddff80", + "minimap.errorHighlight": "#d0679d", + "minimap.findMatchHighlight": "#ADD7FF", + "minimap.selectionHighlight": "#e4f0fb40", + "minimap.warningHighlight": "#fffac2", + "minimapGutter.addedBackground": "#5fb3a180", + "minimapGutter.deletedBackground": "#d0679d80", + "minimapGutter.modifiedBackground": "#ADD7FF80", + "minimapSlider.activeBackground": "#a6accd30", + "minimapSlider.background": "#a6accd20", + "minimapSlider.hoverBackground": "#a6accd30", + "notebook.cellBorderColor": "#1b1e28", + "notebook.cellInsertionIndicator": "#00000000", + "notebook.cellStatusBarItemHoverBackground": "#ffffff26", + "notebook.cellToolbarSeparator": "#303340", + "notebook.focusedCellBorder": "#00000000", + "notebook.focusedEditorBorder": "#00000000", + "notebook.focusedRowBorder": "#00000000", + "notebook.inactiveFocusedCellBorder": "#00000000", + "notebook.outputContainerBackgroundColor": "#1b1e28", + "notebook.rowHoverBackground": "#30334000", + "notebook.selectedCellBackground": "#303340", + "notebook.selectedCellBorder": "#1b1e28", + "notebook.symbolHighlightBackground": "#ffffff0b", + "notebookScrollbarSlider.activeBackground": "#a6accd25", + "notebookScrollbarSlider.background": "#00000050", + "notebookScrollbarSlider.hoverBackground": "#a6accd25", + "notebookStatusErrorIcon.foreground": "#d0679d", + "notebookStatusRunningIcon.foreground": "#a6accd", + "notebookStatusSuccessIcon.foreground": "#5fb3a1", + "notificationCenterHeader.background": "#303340", + "notificationLink.foreground": "#ADD7FF", + "notifications.border": "#303340", + "notificationsErrorIcon.foreground": "#d0679d", + "notificationsInfoIcon.foreground": "#ADD7FF", + "notificationsWarningIcon.foreground": "#fffac2", + "panel.background": "#1b1e28", + "panel.dropBorder": "#a6accd", + "panelSection.border": "#1b1e28", + "panelSection.dropBackground": "#7390AA80", + "panelSectionHeader.background": "#303340", + "panelTitle.activeBorder": "#a6accd", + "panelTitle.inactiveForeground": "#a6accd99", + "peekViewEditor.matchHighlightBackground": "#303340", + "peekViewResult.fileForeground": "#ffffff", + "peekViewResult.lineForeground": "#a6accd", + "peekViewResult.matchHighlightBackground": "#303340", + "peekViewResult.selectionBackground": "#717cb425", + "peekViewResult.selectionForeground": "#ffffff", + "peekViewTitleLabel.foreground": "#ffffff", + "pickerGroup.border": "#a6accd", + "pickerGroup.foreground": "#89ddff", + "problemsErrorIcon.foreground": "#d0679d", + "problemsInfoIcon.foreground": "#ADD7FF", + "problemsWarningIcon.foreground": "#fffac2", + "progressBar.background": "#89ddff", + "quickInput.background": "#1b1e28", + "quickInput.foreground": "#a6accd", + "quickInputList.focusBackground": "#a6accd10", + "quickInputTitle.background": "#ffffff1b", + "sash.hoverBorder": "#00000000", + "scm.providerBorder": "#e4f0fb10", + "searchEditor.findMatchBackground": "#ADD7FF50", + "searchEditor.textInputBorder": "#ffffff10", + "settings.checkboxBackground": "#1b1e28", + "settings.checkboxBorder": "#ffffff10", + "settings.checkboxForeground": "#e4f0fb", + "settings.dropdownBackground": "#1b1e28", + "settings.dropdownBorder": "#ffffff10", + "settings.dropdownForeground": "#e4f0fb", + "settings.dropdownListBorder": "#e4f0fb10", + "settings.focusedRowBackground": "#00000000", + "settings.headerForeground": "#e4f0fb", + "settings.modifiedItemIndicator": "#ADD7FF", + "settings.numberInputBackground": "#ffffff05", + "settings.numberInputBorder": "#ffffff10", + "settings.numberInputForeground": "#e4f0fb", + "settings.textInputBackground": "#ffffff05", + "settings.textInputBorder": "#ffffff10", + "settings.textInputForeground": "#e4f0fb", + "sideBar.dropBackground": "#7390AA80", + "sideBarSectionHeader.foreground": "#a6accd", + "statusBar.debuggingBackground": "#303340", + "statusBar.debuggingForeground": "#ffffff", + "statusBar.noFolderForeground": "#a6accd", + "statusBarItem.activeBackground": "#ffffff2e", + "statusBarItem.errorBackground": "#d0679d", + "statusBarItem.errorForeground": "#ffffff", + "statusBarItem.hoverBackground": "#ffffff1f", + "statusBarItem.prominentBackground": "#00000080", + "statusBarItem.prominentForeground": "#a6accd", + "statusBarItem.prominentHoverBackground": "#0000004d", + "statusBarItem.remoteBackground": "#303340", + "statusBarItem.remoteForeground": "#e4f0fb", + "symbolIcon.arrayForeground": "#a6accd", + "symbolIcon.booleanForeground": "#a6accd", + "symbolIcon.classForeground": "#fffac2", + "symbolIcon.colorForeground": "#a6accd", + "symbolIcon.constantForeground": "#a6accd", + "symbolIcon.constructorForeground": "#f087bd", + "symbolIcon.enumeratorForeground": "#fffac2", + "symbolIcon.enumeratorMemberForeground": "#ADD7FF", + "symbolIcon.eventForeground": "#fffac2", + "symbolIcon.fieldForeground": "#ADD7FF", + "symbolIcon.fileForeground": "#a6accd", + "symbolIcon.folderForeground": "#a6accd", + "symbolIcon.functionForeground": "#f087bd", + "symbolIcon.interfaceForeground": "#ADD7FF", + "symbolIcon.keyForeground": "#a6accd", + "symbolIcon.keywordForeground": "#a6accd", + "symbolIcon.methodForeground": "#f087bd", + "symbolIcon.moduleForeground": "#a6accd", + "symbolIcon.namespaceForeground": "#a6accd", + "symbolIcon.nullForeground": "#a6accd", + "symbolIcon.numberForeground": "#a6accd", + "symbolIcon.objectForeground": "#a6accd", + "symbolIcon.operatorForeground": "#a6accd", + "symbolIcon.packageForeground": "#a6accd", + "symbolIcon.propertyForeground": "#a6accd", + "symbolIcon.referenceForeground": "#a6accd", + "symbolIcon.snippetForeground": "#a6accd", + "symbolIcon.stringForeground": "#a6accd", + "symbolIcon.structForeground": "#a6accd", + "symbolIcon.textForeground": "#a6accd", + "symbolIcon.typeParameterForeground": "#a6accd", + "symbolIcon.unitForeground": "#a6accd", + "symbolIcon.variableForeground": "#ADD7FF", + "terminal.border": "#00000000", + "terminal.foreground": "#a6accd", + "terminal.selectionBackground": "#717cb425", + "terminalCommandDecoration.errorBackground": "#d0679d", + "terminalCommandDecoration.successBackground": "#5DE4c7", + "terminalCommandDecoration.defaultBackground": "#767c9d", + "testing.iconErrored": "#d0679d", + "testing.iconFailed": "#d0679d", + "testing.iconPassed": "#5DE4c7", + "testing.iconQueued": "#fffac2", + "testing.iconSkipped": "#7390AA", + "testing.iconUnset": "#7390AA", + "testing.message.error.decorationForeground": "#d0679d", + "testing.message.error.lineBackground": "#d0679d33", + "testing.message.hint.decorationForeground": "#7390AAb3", + "testing.message.info.decorationForeground": "#ADD7FF", + "testing.message.info.lineBackground": "#89ddff33", + "testing.message.warning.decorationForeground": "#fffac2", + "testing.message.warning.lineBackground": "#fffac233", + "testing.peekBorder": "#d0679d", + "testing.runAction": "#5DE4c7", + "textBlockQuote.background": "#7390AA1a", + "textBlockQuote.border": "#89ddff80", + "textCodeBlock.background": "#00000050", + "textPreformat.foreground": "#e4f0fb", + "textSeparator.foreground": "#ffffff2e", + "tree.tableColumnsBorder": "#a6accd20", + "welcomePage.progress.background": "#ffffff05", + "welcomePage.progress.foreground": "#5fb3a1", + "welcomePage.tileBackground": "#1b1e28", + "welcomePage.tileHoverBackground": "#303340" + }, + "tokenColors": [ + { + "scope": ["comment", "punctuation.definition.comment"], + "settings": { + "foreground": "#767c9dB0", + "fontStyle": "italic" + } + }, + { + "scope": "meta.parameters comment.block", + "settings": { + "foreground": "#a6accd", + "fontStyle": "italic" + } + }, + { + "scope": [ + "variable.other.constant.object", + "variable.other.readwrite.alias", + "meta.import variable.other.readwrite" + ], + "settings": { + "foreground": "#ADD7FF" + } + }, + { + "scope": ["variable.other", "support.type.object"], + "settings": { + "foreground": "#e4f0fb" + } + }, + { + "scope": [ + "variable.other.object.property", + "variable.other.property", + "support.variable.property" + ], + "settings": { + "foreground": "#e4f0fb" + } + }, + { + "scope": ["entity.name.function.method", "string.unquoted", "meta.object.member"], + "settings": { + "foreground": "#ADD7FF" + } + }, + { + "scope": [ + "variable - meta.import", + "constant.other.placeholder", + "meta.object-literal.key-meta.object.member" + ], + "settings": { + "foreground": "#e4f0fb" + } + }, + { + "scope": ["keyword.control.flow"], + "settings": { + "foreground": "#5DE4c7c0" + } + }, + { + "scope": ["keyword.operator.new", "keyword.control.new"], + "settings": { + "foreground": "#5DE4c7" + } + }, + { + "scope": [ + "variable.language.this", + "storage.modifier.async", + "storage.modifier", + "variable.language.super" + ], + "settings": { + "foreground": "#5DE4c7" + } + }, + { + "scope": [ + "support.class.error", + "keyword.control.trycatch", + "keyword.operator.expression.delete", + "keyword.operator.expression.void", + "keyword.operator.void", + "keyword.operator.delete", + "constant.language.null", + "constant.language.boolean.false", + "constant.language.undefined" + ], + "settings": { + "foreground": "#d0679d" + } + }, + { + "scope": [ + "variable.parameter", + "variable.other.readwrite.js", + "meta.definition.variable variable.other.constant", + "meta.definition.variable variable.other.readwrite" + ], + "settings": { + "foreground": "#e4f0fb" + } + }, + { + "scope": ["constant.other.color"], + "settings": { + "foreground": "#ffffff" + } + }, + { + "scope": ["invalid", "invalid.illegal"], + "settings": { + "foreground": "#d0679d" + } + }, + { + "scope": ["invalid.deprecated"], + "settings": { + "foreground": "#d0679d" + } + }, + { + "scope": ["keyword.control", "keyword"], + "settings": { + "foreground": "#a6accd" + } + }, + { + "scope": ["keyword.operator", "storage.type"], + "settings": { + "foreground": "#91B4D5" + } + }, + { + "scope": [ + "keyword.control.module", + "keyword.control.import", + "keyword.control.export", + "keyword.control.default", + "meta.import", + "meta.export" + ], + "settings": { + "foreground": "#5DE4c7" + } + }, + { + "scope": ["Keyword", "Storage"], + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": ["keyword-meta.export"], + "settings": { + "foreground": "#ADD7FF" + } + }, + { + "scope": ["meta.brace", "punctuation", "keyword.operator.existential"], + "settings": { + "foreground": "#a6accd" + } + }, + { + "scope": [ + "constant.other.color", + "meta.tag", + "punctuation.definition.tag", + "punctuation.separator.inheritance.php", + "punctuation.definition.tag.html", + "punctuation.definition.tag.begin.html", + "punctuation.definition.tag.end.html", + "punctuation.section.embedded", + "keyword.other.template", + "keyword.other.substitution", + "meta.objectliteral" + ], + "settings": { + "foreground": "#e4f0fb" + } + }, + { + "scope": ["support.class.component"], + "settings": { + "foreground": "#5DE4c7" + } + }, + { + "scope": ["entity.name.tag", "entity.name.tag", "meta.tag.sgml", "markup.deleted.git_gutter"], + "settings": { + "foreground": "#5DE4c7" + } + }, + { + "name": "Function Call", + "scope": "variable.function, source meta.function-call entity.name.function, source meta.function-call entity.name.function, source meta.method-call entity.name.function, meta.class meta.group.braces.curly meta.function-call variable.function, meta.class meta.field.declaration meta.function-call entity.name.function, variable.function.constructor, meta.block meta.var.expr meta.function-call entity.name.function, support.function.console, meta.function-call support.function, meta.property.class variable.other.class, punctuation.definition.entity.css", + "settings": { + "foreground": "#e4f0fbd0" + } + }, + { + "name": "Function/Class Name", + "scope": "entity.name.function, meta.class entity.name.class, meta.class entity.name.type.class, meta.class meta.function-call variable.function, keyword.other.important", + "settings": { + "foreground": "#ADD7FF" + } + }, + { + "scope": ["source.cpp meta.block variable.other"], + "settings": { + "foreground": "#ADD7FF" + } + }, + { + "scope": ["support.other.variable", "string.other.link"], + "settings": { + "foreground": "#5DE4c7" + } + }, + { + "scope": [ + "constant.numeric", + "support.constant", + "constant.character", + "constant.escape", + "keyword.other.unit", + "keyword.other", + "string", + "constant.language", + "constant.other.symbol", + "constant.other.key", + "markup.heading", + "markup.inserted.git_gutter", + "meta.group.braces.curly constant.other.object.key.js string.unquoted.label.js", + "text.html.derivative" + ], + "settings": { + "foreground": "#5DE4c7" + } + }, + { + "scope": ["entity.other.inherited-class"], + "settings": { + "foreground": "#ADD7FF" + } + }, + { + "scope": ["meta.type.declaration"], + "settings": { + "foreground": "#ADD7FF" + } + }, + { + "scope": ["entity.name.type.alias"], + "settings": { + "foreground": "#a6accd" + } + }, + { + "scope": ["keyword.control.as", "entity.name.type", "support.type"], + "settings": { + "foreground": "#a6accdC0" + } + }, + { + "scope": [ + "entity.name", + "support.orther.namespace.use.php", + "meta.use.php", + "support.other.namespace.php", + "markup.changed.git_gutter", + "support.type.sys-types" + ], + "settings": { + "foreground": "#91B4D5" + } + }, + { + "scope": ["support.class", "support.constant", "variable.other.constant.object"], + "settings": { + "foreground": "#ADD7FF" + } + }, + { + "scope": [ + "source.css support.type.property-name", + "source.sass support.type.property-name", + "source.scss support.type.property-name", + "source.less support.type.property-name", + "source.stylus support.type.property-name", + "source.postcss support.type.property-name" + ], + "settings": { + "foreground": "#ADD7FF" + } + }, + { + "scope": ["entity.name.module.js", "variable.import.parameter.js", "variable.other.class.js"], + "settings": { + "foreground": "#e4f0fb" + } + }, + { + "scope": ["variable.language"], + "settings": { + "foreground": "#ADD7FF", + "fontStyle": "italic" + } + }, + { + "scope": ["entity.name.method.js"], + "settings": { + "foreground": "#91B4D5", + "fontStyle": "italic" + } + }, + { + "scope": ["meta.class-method.js entity.name.function.js", "variable.function.constructor"], + "settings": { + "foreground": "#91B4D5" + } + }, + { + "scope": ["entity.other.attribute-name"], + "settings": { + "foreground": "#91B4D5", + "fontStyle": "italic" + } + }, + { + "scope": [ + "text.html.basic entity.other.attribute-name.html", + "text.html.basic entity.other.attribute-name" + ], + "settings": { + "foreground": "#5fb3a1", + "fontStyle": "italic" + } + }, + { + "scope": ["entity.other.attribute-name.class"], + "settings": { + "foreground": "#5fb3a1" + } + }, + { + "scope": ["source.sass keyword.control"], + "settings": { + "foreground": "#42675A" + } + }, + { + "scope": ["markup.inserted"], + "settings": { + "foreground": "#ADD7FF" + } + }, + { + "scope": ["markup.deleted"], + "settings": { + "foreground": "#506477" + } + }, + { + "scope": ["markup.changed"], + "settings": { + "foreground": "#91B4D5" + } + }, + { + "scope": ["string.regexp"], + "settings": { + "foreground": "#5fb3a1" + } + }, + { + "scope": ["constant.character.escape"], + "settings": { + "foreground": "#5fb3a1" + } + }, + { + "scope": ["*url*", "*link*", "*uri*"], + "settings": { + "foreground": "#ADD7FF", + "fontStyle": "underline" + } + }, + { + "scope": [ + "tag.decorator.js entity.name.tag.js", + "tag.decorator.js punctuation.definition.tag.js" + ], + "settings": { + "foreground": "#42675A", + "fontStyle": "italic" + } + }, + { + "scope": ["source.js constant.other.object.key.js string.unquoted.label.js"], + "settings": { + "foreground": "#5fb3a1", + "fontStyle": "italic" + } + }, + { + "scope": ["source.json meta.structure.dictionary.json support.type.property-name.json"], + "settings": { + "foreground": "#e4f0fb" + } + }, + { + "scope": [ + "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#ADD7FF" + } + }, + { + "scope": [ + "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#91B4D5" + } + }, + { + "scope": [ + "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#7390AA" + } + }, + { + "scope": [ + "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#e4f0fb" + } + }, + { + "scope": [ + "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#ADD7FF" + } + }, + { + "scope": [ + "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#91B4D5" + } + }, + { + "scope": [ + "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#7390AA" + } + }, + { + "scope": [ + "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json support.type.property-name.json" + ], + "settings": { + "foreground": "#e4f0fb" + } + }, + { + "scope": ["text.html.markdown", "punctuation.definition.list_item.markdown"], + "settings": { + "foreground": "#e4f0fb" + } + }, + { + "scope": ["text.html.markdown markup.inline.raw.markdown"], + "settings": { + "foreground": "#ADD7FF" + } + }, + { + "scope": [ + "text.html.markdown markup.inline.raw.markdown punctuation.definition.raw.markdown" + ], + "settings": { + "foreground": "#91B4D5" + } + }, + { + "scope": [ + "markdown.heading", + "markup.heading | markup.heading entity.name", + "markup.heading.markdown punctuation.definition.heading.markdown" + ], + "settings": { + "foreground": "#e4f0fb" + } + }, + { + "scope": ["markup.italic"], + "settings": { + "foreground": "#7390AA", + "fontStyle": "italic" + } + }, + { + "scope": ["markup.bold", "markup.bold string"], + "settings": { + "foreground": "#7390AA", + "fontStyle": "bold" + } + }, + { + "scope": [ + "markup.bold markup.italic", + "markup.italic markup.bold", + "markup.quote markup.bold", + "markup.bold markup.italic string", + "markup.italic markup.bold string", + "markup.quote markup.bold string" + ], + "settings": { + "foreground": "#7390AA", + "fontStyle": "bold" + } + }, + { + "scope": ["markup.underline"], + "settings": { + "foreground": "#7390AA", + "fontStyle": "underline" + } + }, + { + "scope": ["markup.strike"], + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": ["markup.quote punctuation.definition.blockquote.markdown"], + "settings": { + "foreground": "#5DE4c7" + } + }, + { + "scope": ["markup.quote"], + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": ["string.other.link.title.markdown"], + "settings": { + "foreground": "#ADD7FF" + } + }, + { + "scope": ["string.other.link.description.title.markdown"], + "settings": { + "foreground": "#ADD7FF" + } + }, + { + "scope": ["constant.other.reference.link.markdown"], + "settings": { + "foreground": "#ADD7FF" + } + }, + { + "scope": ["markup.raw.block"], + "settings": { + "foreground": "#ADD7FF" + } + }, + { + "scope": ["markup.raw.block.fenced.markdown"], + "settings": { + "foreground": "#50647750" + } + }, + { + "scope": ["punctuation.definition.fenced.markdown"], + "settings": { + "foreground": "#50647750" + } + }, + { + "scope": [ + "markup.raw.block.fenced.markdown", + "variable.language.fenced.markdown", + "punctuation.section.class.end" + ], + "settings": { + "foreground": "#91B4D5" + } + }, + { + "scope": ["variable.language.fenced.markdown"], + "settings": { + "foreground": "#91B4D5" + } + }, + { + "scope": ["meta.separator"], + "settings": { + "foreground": "#7390AA", + "fontStyle": "bold" + } + }, + { + "scope": ["markup.table"], + "settings": { + "foreground": "#ADD7FF" + } + }, + { + "scope": "token.info-token", + "settings": { + "foreground": "#89ddff" + } + }, + { + "scope": "token.warn-token", + "settings": { + "foreground": "#fffac2" + } + }, + { + "scope": "token.error-token", + "settings": { + "foreground": "#d0679d" + } + }, + { + "scope": "token.debug-token", + "settings": { + "foreground": "#e4f0fb" + } + }, + { + "scope": [ + "entity.name.section.markdown", + "markup.heading.setext.1.markdown", + "markup.heading.setext.2.markdown" + ], + "settings": { + "foreground": "#e4f0fb", + "fontStyle": "bold" + } + }, + { + "scope": "meta.paragraph.markdown", + "settings": { + "foreground": "#e4f0fbd0" + } + }, + { + "scope": ["punctuation.definition.from-file.diff", "meta.diff.header.from-file"], + "settings": { + "foreground": "#506477" + } + }, + { + "scope": "markup.inline.raw.string.markdown", + "settings": { + "foreground": "#7390AA" + } + }, + { + "scope": "meta.separator.markdown", + "settings": { + "foreground": "#767c9d" + } + }, + { + "scope": "markup.bold.markdown", + "settings": { + "fontStyle": "bold" + } + }, + { + "scope": "markup.italic.markdown", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": [ + "beginning.punctuation.definition.list.markdown", + "punctuation.definition.list.begin.markdown", + "markup.list.unnumbered.markdown" + ], + "settings": { + "foreground": "#ADD7FF" + } + }, + { + "scope": [ + "string.other.link.description.title.markdown punctuation.definition.string.markdown", + "meta.link.inline.markdown string.other.link.description.title.markdown", + "string.other.link.description.title.markdown punctuation.definition.string.begin.markdown", + "string.other.link.description.title.markdown punctuation.definition.string.end.markdown", + "meta.image.inline.markdown string.other.link.description.title.markdown" + ], + "settings": { + "foreground": "#ADD7FF", + "fontStyle": "" + } + }, + { + "scope": [ + "meta.link.inline.markdown string.other.link.title.markdown", + "meta.link.reference.markdown string.other.link.title.markdown", + "meta.link.reference.def.markdown markup.underline.link.markdown" + ], + "settings": { + "foreground": "#ADD7FF", + "fontStyle": "underline" + } + }, + { + "scope": ["markup.underline.link.markdown", "string.other.link.description.title.markdown"], + "settings": { + "foreground": "#5DE4c7" + } + }, + { + "scope": ["fenced_code.block.language", "markup.inline.raw.markdown"], + "settings": { + "foreground": "#ADD7FF" + } + }, + { + "scope": [ + "punctuation.definition.markdown", + "punctuation.definition.raw.markdown", + "punctuation.definition.heading.markdown", + "punctuation.definition.bold.markdown", + "punctuation.definition.italic.markdown" + ], + "settings": { + "foreground": "#ADD7FF" + } + }, + { + "scope": ["source.ignore", "log.error", "log.exception"], + "settings": { + "foreground": "#d0679d" + } + }, + { + "scope": ["log.verbose"], + "settings": { + "foreground": "#a6accd" + } + } + ] +} diff --git a/docs/shiki/themes/rose-pine-dawn.json b/docs/shiki/themes/rose-pine-dawn.json new file mode 100644 index 00000000..9d107837 --- /dev/null +++ b/docs/shiki/themes/rose-pine-dawn.json @@ -0,0 +1,675 @@ +{ + "name": "rose-pine-dawn", + "type": "light", + "colors": { + "activityBar.activeBorder": "#575279", + "activityBar.background": "#faf4ed", + "activityBar.dropBorder": "#f2e9e1", + "activityBar.foreground": "#575279", + "activityBar.inactiveForeground": "#797593", + "activityBarBadge.background": "#d7827e", + "activityBarBadge.foreground": "#faf4ed", + "badge.background": "#d7827e", + "badge.foreground": "#faf4ed", + "banner.background": "#fffaf3", + "banner.foreground": "#575279", + "banner.iconForeground": "#797593", + "breadcrumb.activeSelectionForeground": "#d7827e", + "breadcrumb.background": "#faf4ed", + "breadcrumb.focusForeground": "#797593", + "breadcrumb.foreground": "#9893a5", + "breadcrumbPicker.background": "#fffaf3", + "button.background": "#d7827e", + "button.foreground": "#faf4ed", + "button.hoverBackground": "#d7827ee6", + "button.secondaryBackground": "#fffaf3", + "button.secondaryForeground": "#575279", + "button.secondaryHoverBackground": "#f2e9e1", + "charts.blue": "#56949f", + "charts.foreground": "#575279", + "charts.green": "#286983", + "charts.lines": "#797593", + "charts.orange": "#d7827e", + "charts.purple": "#907aa9", + "charts.red": "#b4637a", + "charts.yellow": "#ea9d34", + "checkbox.background": "#fffaf3", + "checkbox.border": "#6e6a8614", + "checkbox.foreground": "#575279", + "debugExceptionWidget.background": "#fffaf3", + "debugExceptionWidget.border": "#6e6a8614", + "debugIcon.breakpointCurrentStackframeForeground": "#797593", + "debugIcon.breakpointDisabledForeground": "#797593", + "debugIcon.breakpointForeground": "#797593", + "debugIcon.breakpointStackframeForeground": "#797593", + "debugIcon.breakpointUnverifiedForeground": "#797593", + "debugIcon.continueForeground": "#797593", + "debugIcon.disconnectForeground": "#797593", + "debugIcon.pauseForeground": "#797593", + "debugIcon.restartForeground": "#797593", + "debugIcon.startForeground": "#797593", + "debugIcon.stepBackForeground": "#797593", + "debugIcon.stepIntoForeground": "#797593", + "debugIcon.stepOutForeground": "#797593", + "debugIcon.stepOverForeground": "#797593", + "debugIcon.stopForeground": "#b4637a", + "debugToolBar.background": "#fffaf3", + "debugToolBar.border": "#f2e9e1", + "descriptionForeground": "#797593", + "diffEditor.border": "#f2e9e1", + "diffEditor.diagonalFill": "#6e6a8626", + "diffEditor.insertedLineBackground": "#56949f26", + "diffEditor.insertedTextBackground": "#56949f26", + "diffEditor.removedLineBackground": "#b4637a26", + "diffEditor.removedTextBackground": "#b4637a26", + "diffEditorOverview.insertedForeground": "#56949f80", + "diffEditorOverview.removedForeground": "#b4637a80", + "dropdown.background": "#fffaf3", + "dropdown.border": "#6e6a8614", + "dropdown.foreground": "#575279", + "dropdown.listBackground": "#fffaf3", + "editor.background": "#faf4ed", + "editor.findMatchBackground": "#6e6a8626", + "editor.findMatchHighlightBackground": "#6e6a8626", + "editor.findRangeHighlightBackground": "#6e6a8626", + "editor.findRangeHighlightBorder": "#0000", + "editor.focusedStackFrameHighlightBackground": "#6e6a8614", + "editor.foldBackground": "#fffaf3", + "editor.foreground": "#575279", + "editor.hoverHighlightBackground": "#0000", + "editor.inactiveSelectionBackground": "#6e6a860d", + "editor.inlineValuesBackground": "#0000", + "editor.inlineValuesForeground": "#797593", + "editor.lineHighlightBackground": "#6e6a860d", + "editor.lineHighlightBorder": "#0000", + "editor.linkedEditingBackground": "#fffaf3", + "editor.rangeHighlightBackground": "#6e6a860d", + "editor.selectionBackground": "#6e6a8614", + "editor.selectionForeground": "#575279", + "editor.selectionHighlightBackground": "#6e6a8614", + "editor.selectionHighlightBorder": "#faf4ed", + "editor.snippetFinalTabstopHighlightBackground": "#6e6a8614", + "editor.snippetFinalTabstopHighlightBorder": "#fffaf3", + "editor.snippetTabstopHighlightBackground": "#6e6a8614", + "editor.snippetTabstopHighlightBorder": "#fffaf3", + "editor.stackFrameHighlightBackground": "#6e6a8614", + "editor.symbolHighlightBackground": "#6e6a8614", + "editor.symbolHighlightBorder": "#0000", + "editor.wordHighlightBackground": "#6e6a8614", + "editor.wordHighlightBorder": "#0000", + "editor.wordHighlightStrongBackground": "#6e6a8614", + "editor.wordHighlightStrongBorder": "#6e6a8614", + "editorBracketHighlight.foreground1": "#b4637a80", + "editorBracketHighlight.foreground2": "#28698380", + "editorBracketHighlight.foreground3": "#ea9d3480", + "editorBracketHighlight.foreground4": "#56949f80", + "editorBracketHighlight.foreground5": "#d7827e80", + "editorBracketHighlight.foreground6": "#907aa980", + "editorBracketMatch.background": "#0000", + "editorBracketMatch.border": "#797593", + "editorBracketPairGuide.activeBackground1": "#286983", + "editorBracketPairGuide.activeBackground2": "#d7827e", + "editorBracketPairGuide.activeBackground3": "#907aa9", + "editorBracketPairGuide.activeBackground4": "#56949f", + "editorBracketPairGuide.activeBackground5": "#ea9d34", + "editorBracketPairGuide.activeBackground6": "#b4637a", + "editorBracketPairGuide.background1": "#28698380", + "editorBracketPairGuide.background2": "#d7827e80", + "editorBracketPairGuide.background3": "#907aa980", + "editorBracketPairGuide.background4": "#56949f80", + "editorBracketPairGuide.background5": "#ea9d3480", + "editorBracketPairGuide.background6": "#b4637a80", + "editorCodeLens.foreground": "#d7827e", + "editorCursor.background": "#575279", + "editorCursor.foreground": "#9893a5", + "editorError.border": "#0000", + "editorError.foreground": "#b4637a", + "editorGhostText.foreground": "#797593", + "editorGroup.border": "#0000", + "editorGroup.dropBackground": "#fffaf3", + "editorGroup.emptyBackground": "#0000", + "editorGroup.focusedEmptyBorder": "#0000", + "editorGroupHeader.noTabsBackground": "#0000", + "editorGroupHeader.tabsBackground": "#0000", + "editorGroupHeader.tabsBorder": "#0000", + "editorGutter.addedBackground": "#56949f", + "editorGutter.background": "#faf4ed", + "editorGutter.commentRangeForeground": "#797593", + "editorGutter.deletedBackground": "#b4637a", + "editorGutter.foldingControlForeground": "#907aa9", + "editorGutter.modifiedBackground": "#d7827e", + "editorHint.border": "#0000", + "editorHint.foreground": "#797593", + "editorHoverWidget.background": "#fffaf3", + "editorHoverWidget.border": "#9893a580", + "editorHoverWidget.foreground": "#797593", + "editorHoverWidget.highlightForeground": "#575279", + "editorHoverWidget.statusBarBackground": "#0000", + "editorIndentGuide.activeBackground": "#9893a5", + "editorIndentGuide.background": "#6e6a8626", + "editorInfo.border": "#f2e9e1", + "editorInfo.foreground": "#56949f", + "editorInlayHint.background": "#f2e9e1", + "editorInlayHint.foreground": "#797593", + "editorInlayHint.parameterBackground": "#f2e9e1", + "editorInlayHint.parameterForeground": "#907aa9", + "editorInlayHint.typeBackground": "#f2e9e1", + "editorInlayHint.typeForeground": "#56949f", + "editorLightBulb.foreground": "#286983", + "editorLightBulbAutoFix.foreground": "#d7827e", + "editorLineNumber.activeForeground": "#575279", + "editorLineNumber.foreground": "#797593", + "editorLink.activeForeground": "#d7827e", + "editorMarkerNavigation.background": "#fffaf3", + "editorMarkerNavigationError.background": "#fffaf3", + "editorMarkerNavigationInfo.background": "#fffaf3", + "editorMarkerNavigationWarning.background": "#fffaf3", + "editorOverviewRuler.addedForeground": "#56949f80", + "editorOverviewRuler.background": "#faf4ed", + "editorOverviewRuler.border": "#6e6a8626", + "editorOverviewRuler.bracketMatchForeground": "#797593", + "editorOverviewRuler.commonContentForeground": "#6e6a860d", + "editorOverviewRuler.currentContentForeground": "#6e6a8614", + "editorOverviewRuler.deletedForeground": "#b4637a80", + "editorOverviewRuler.errorForeground": "#b4637a80", + "editorOverviewRuler.findMatchForeground": "#6e6a8626", + "editorOverviewRuler.incomingContentForeground": "#907aa980", + "editorOverviewRuler.infoForeground": "#56949f80", + "editorOverviewRuler.modifiedForeground": "#d7827e80", + "editorOverviewRuler.rangeHighlightForeground": "#6e6a8626", + "editorOverviewRuler.selectionHighlightForeground": "#6e6a8626", + "editorOverviewRuler.warningForeground": "#ea9d3480", + "editorOverviewRuler.wordHighlightForeground": "#6e6a8614", + "editorOverviewRuler.wordHighlightStrongForeground": "#6e6a8626", + "editorPane.background": "#0000", + "editorRuler.foreground": "#6e6a8626", + "editorSuggestWidget.background": "#fffaf3", + "editorSuggestWidget.border": "#0000", + "editorSuggestWidget.focusHighlightForeground": "#d7827e", + "editorSuggestWidget.foreground": "#797593", + "editorSuggestWidget.highlightForeground": "#d7827e", + "editorSuggestWidget.selectedBackground": "#6e6a8614", + "editorSuggestWidget.selectedForeground": "#575279", + "editorSuggestWidget.selectedIconForeground": "#575279", + "editorUnnecessaryCode.border": "#0000", + "editorUnnecessaryCode.opacity": "#57527980", + "editorWarning.border": "#0000", + "editorWarning.foreground": "#ea9d34", + "editorWhitespace.foreground": "#9893a5", + "editorWidget.background": "#fffaf3", + "editorWidget.border": "#f2e9e1", + "editorWidget.foreground": "#797593", + "editorWidget.resizeBorder": "#9893a5", + "errorForeground": "#b4637a", + "extensionBadge.remoteBackground": "#907aa9", + "extensionBadge.remoteForeground": "#faf4ed", + "extensionButton.prominentBackground": "#d7827e", + "extensionButton.prominentForeground": "#faf4ed", + "extensionButton.prominentHoverBackground": "#d7827ee6", + "extensionIcon.preReleaseForeground": "#286983", + "extensionIcon.starForeground": "#d7827e", + "extensionIcon.verifiedForeground": "#907aa9", + "focusBorder": "#6e6a8614", + "foreground": "#575279", + "gitDecoration.addedResourceForeground": "#56949f", + "gitDecoration.conflictingResourceForeground": "#b4637a", + "gitDecoration.deletedResourceForeground": "#797593", + "gitDecoration.ignoredResourceForeground": "#9893a5", + "gitDecoration.modifiedResourceForeground": "#d7827e", + "gitDecoration.renamedResourceForeground": "#286983", + "gitDecoration.stageDeletedResourceForeground": "#b4637a", + "gitDecoration.stageModifiedResourceForeground": "#907aa9", + "gitDecoration.submoduleResourceForeground": "#ea9d34", + "gitDecoration.untrackedResourceForeground": "#ea9d34", + "icon.foreground": "#797593", + "input.background": "#f2e9e180", + "input.border": "#6e6a8614", + "input.foreground": "#575279", + "input.placeholderForeground": "#797593", + "inputOption.activeBackground": "#d7827e26", + "inputOption.activeForeground": "#d7827e", + "inputValidation.errorBackground": "#fffaf3", + "inputValidation.errorBorder": "#6e6a8626", + "inputValidation.errorForeground": "#b4637a", + "inputValidation.infoBackground": "#fffaf3", + "inputValidation.infoBorder": "#6e6a8626", + "inputValidation.infoForeground": "#56949f", + "inputValidation.warningBackground": "#fffaf3", + "inputValidation.warningBorder": "#6e6a8626", + "inputValidation.warningForeground": "#56949f80", + "keybindingLabel.background": "#f2e9e1", + "keybindingLabel.border": "#6e6a8626", + "keybindingLabel.bottomBorder": "#6e6a8626", + "keybindingLabel.foreground": "#907aa9", + "keybindingTable.headerBackground": "#f2e9e1", + "keybindingTable.rowsBackground": "#fffaf3", + "list.activeSelectionBackground": "#6e6a8614", + "list.activeSelectionForeground": "#575279", + "list.deemphasizedForeground": "#797593", + "list.dropBackground": "#fffaf3", + "list.errorForeground": "#b4637a", + "list.filterMatchBackground": "#fffaf3", + "list.filterMatchBorder": "#d7827e", + "list.focusBackground": "#6e6a8626", + "list.focusForeground": "#575279", + "list.focusOutline": "#6e6a8614", + "list.highlightForeground": "#d7827e", + "list.hoverBackground": "#6e6a860d", + "list.hoverForeground": "#575279", + "list.inactiveFocusBackground": "#6e6a860d", + "list.inactiveSelectionBackground": "#fffaf3", + "list.inactiveSelectionForeground": "#575279", + "list.invalidItemForeground": "#b4637a", + "list.warningForeground": "#ea9d34", + "listFilterWidget.background": "#fffaf3", + "listFilterWidget.noMatchesOutline": "#b4637a", + "listFilterWidget.outline": "#f2e9e1", + "menu.background": "#fffaf3", + "menu.border": "#6e6a860d", + "menu.foreground": "#575279", + "menu.selectionBackground": "#6e6a8614", + "menu.selectionBorder": "#f2e9e1", + "menu.selectionForeground": "#575279", + "menu.separatorBackground": "#6e6a8626", + "menubar.selectionBackground": "#6e6a8614", + "menubar.selectionBorder": "#6e6a860d", + "menubar.selectionForeground": "#575279", + "merge.border": "#f2e9e1", + "merge.commonContentBackground": "#6e6a8614", + "merge.commonHeaderBackground": "#6e6a8614", + "merge.currentContentBackground": "#ea9d3480", + "merge.currentHeaderBackground": "#ea9d3480", + "merge.incomingContentBackground": "#56949f80", + "merge.incomingHeaderBackground": "#56949f80", + "minimap.background": "#fffaf3", + "minimap.errorHighlight": "#b4637a80", + "minimap.findMatchHighlight": "#6e6a8614", + "minimap.selectionHighlight": "#6e6a8614", + "minimap.warningHighlight": "#ea9d3480", + "minimapGutter.addedBackground": "#56949f", + "minimapGutter.deletedBackground": "#b4637a", + "minimapGutter.modifiedBackground": "#d7827e", + "minimapSlider.activeBackground": "#6e6a8626", + "minimapSlider.background": "#6e6a8614", + "minimapSlider.hoverBackground": "#6e6a8614", + "notebook.cellBorderColor": "#56949f80", + "notebook.cellEditorBackground": "#fffaf3", + "notebook.cellHoverBackground": "#f2e9e180", + "notebook.focusedCellBackground": "#6e6a860d", + "notebook.focusedCellBorder": "#56949f", + "notebook.outputContainerBackgroundColor": "#6e6a860d", + "notificationCenter.border": "#6e6a8614", + "notificationCenterHeader.background": "#fffaf3", + "notificationCenterHeader.foreground": "#797593", + "notificationLink.foreground": "#907aa9", + "notifications.background": "#fffaf3", + "notifications.border": "#6e6a8614", + "notifications.foreground": "#575279", + "notificationsErrorIcon.foreground": "#b4637a", + "notificationsInfoIcon.foreground": "#56949f", + "notificationsWarningIcon.foreground": "#ea9d34", + "notificationToast.border": "#6e6a8614", + "panel.background": "#fffaf3", + "panel.border": "#0000", + "panel.dropBorder": "#f2e9e1", + "panelInput.border": "#fffaf3", + "panelSection.dropBackground": "#6e6a8614", + "panelSectionHeader.background": "#fffaf3", + "panelSectionHeader.foreground": "#575279", + "panelTitle.activeBorder": "#6e6a8626", + "panelTitle.activeForeground": "#575279", + "panelTitle.inactiveForeground": "#797593", + "peekView.border": "#f2e9e1", + "peekViewEditor.background": "#fffaf3", + "peekViewEditor.matchHighlightBackground": "#6e6a8626", + "peekViewResult.background": "#fffaf3", + "peekViewResult.fileForeground": "#797593", + "peekViewResult.lineForeground": "#797593", + "peekViewResult.matchHighlightBackground": "#6e6a8626", + "peekViewResult.selectionBackground": "#6e6a8614", + "peekViewResult.selectionForeground": "#575279", + "peekViewTitle.background": "#f2e9e1", + "peekViewTitleDescription.foreground": "#797593", + "pickerGroup.border": "#6e6a8626", + "pickerGroup.foreground": "#907aa9", + "ports.iconRunningProcessForeground": "#d7827e", + "problemsErrorIcon.foreground": "#b4637a", + "problemsInfoIcon.foreground": "#56949f", + "problemsWarningIcon.foreground": "#ea9d34", + "progressBar.background": "#d7827e", + "quickInput.background": "#fffaf3", + "quickInput.foreground": "#797593", + "quickInputList.focusBackground": "#6e6a8614", + "quickInputList.focusForeground": "#575279", + "quickInputList.focusIconForeground": "#575279", + "scrollbar.shadow": "#fffaf34d", + "scrollbarSlider.activeBackground": "#28698380", + "scrollbarSlider.background": "#6e6a8614", + "scrollbarSlider.hoverBackground": "#6e6a8626", + "searchEditor.findMatchBackground": "#6e6a8614", + "selection.background": "#6e6a8626", + "settings.focusedRowBackground": "#fffaf3", + "settings.headerForeground": "#575279", + "settings.modifiedItemIndicator": "#d7827e", + "settings.focusedRowBorder": "#6e6a8614", + "settings.rowHoverBackground": "#fffaf3", + "sideBar.background": "#faf4ed", + "sideBar.dropBackground": "#fffaf3", + "sideBar.foreground": "#797593", + "sideBarSectionHeader.background": "#0000", + "sideBarSectionHeader.border": "#6e6a8614", + "statusBar.background": "#faf4ed", + "statusBar.debuggingBackground": "#907aa9", + "statusBar.debuggingForeground": "#faf4ed", + "statusBar.foreground": "#797593", + "statusBar.noFolderBackground": "#faf4ed", + "statusBar.noFolderForeground": "#797593", + "statusBarItem.activeBackground": "#6e6a8626", + "statusBarItem.hoverBackground": "#6e6a8614", + "statusBarItem.prominentBackground": "#f2e9e1", + "statusBarItem.prominentForeground": "#575279", + "statusBarItem.prominentHoverBackground": "#6e6a8614", + "statusBarItem.remoteBackground": "#faf4ed", + "statusBarItem.remoteForeground": "#ea9d34", + "statusBarItem.errorBackground": "#faf4ed", + "statusBarItem.errorForeground": "#b4637a", + "symbolIcon.arrayForeground": "#797593", + "symbolIcon.classForeground": "#797593", + "symbolIcon.colorForeground": "#797593", + "symbolIcon.constantForeground": "#797593", + "symbolIcon.constructorForeground": "#797593", + "symbolIcon.enumeratorForeground": "#797593", + "symbolIcon.enumeratorMemberForeground": "#797593", + "symbolIcon.eventForeground": "#797593", + "symbolIcon.fieldForeground": "#797593", + "symbolIcon.fileForeground": "#797593", + "symbolIcon.folderForeground": "#797593", + "symbolIcon.functionForeground": "#797593", + "symbolIcon.interfaceForeground": "#797593", + "symbolIcon.keyForeground": "#797593", + "symbolIcon.keywordForeground": "#797593", + "symbolIcon.methodForeground": "#797593", + "symbolIcon.moduleForeground": "#797593", + "symbolIcon.namespaceForeground": "#797593", + "symbolIcon.nullForeground": "#797593", + "symbolIcon.numberForeground": "#797593", + "symbolIcon.objectForeground": "#797593", + "symbolIcon.operatorForeground": "#797593", + "symbolIcon.packageForeground": "#797593", + "symbolIcon.propertyForeground": "#797593", + "symbolIcon.referenceForeground": "#797593", + "symbolIcon.snippetForeground": "#797593", + "symbolIcon.stringForeground": "#797593", + "symbolIcon.structForeground": "#797593", + "symbolIcon.textForeground": "#797593", + "symbolIcon.typeParameterForeground": "#797593", + "symbolIcon.unitForeground": "#797593", + "symbolIcon.variableForeground": "#797593", + "tab.activeBackground": "#6e6a860d", + "tab.activeForeground": "#575279", + "tab.activeModifiedBorder": "#56949f", + "tab.border": "#0000", + "tab.hoverBackground": "#6e6a8614", + "tab.inactiveBackground": "#0000", + "tab.inactiveForeground": "#797593", + "tab.inactiveModifiedBorder": "#56949f80", + "tab.lastPinnedBorder": "#9893a5", + "tab.unfocusedActiveBackground": "#0000", + "tab.unfocusedHoverBackground": "#0000", + "tab.unfocusedInactiveBackground": "#0000", + "tab.unfocusedInactiveModifiedBorder": "#56949f80", + "terminal.ansiBlack": "#f2e9e1", + "terminal.ansiBlue": "#56949f", + "terminal.ansiBrightBlack": "#797593", + "terminal.ansiBrightBlue": "#56949f", + "terminal.ansiBrightCyan": "#d7827e", + "terminal.ansiBrightGreen": "#286983", + "terminal.ansiBrightMagenta": "#907aa9", + "terminal.ansiBrightRed": "#b4637a", + "terminal.ansiBrightWhite": "#575279", + "terminal.ansiBrightYellow": "#ea9d34", + "terminal.ansiCyan": "#d7827e", + "terminal.ansiGreen": "#286983", + "terminal.ansiMagenta": "#907aa9", + "terminal.ansiRed": "#b4637a", + "terminal.ansiWhite": "#575279", + "terminal.ansiYellow": "#ea9d34", + "terminal.dropBackground": "#6e6a8614", + "terminal.foreground": "#575279", + "terminal.selectionBackground": "#6e6a8614", + "terminal.tab.activeBorder": "#575279", + "terminalCursor.background": "#575279", + "terminalCursor.foreground": "#9893a5", + "textBlockQuote.background": "#fffaf3", + "textBlockQuote.border": "#6e6a8614", + "textCodeBlock.background": "#fffaf3", + "textLink.activeForeground": "#907aa9e6", + "textLink.foreground": "#907aa9", + "textPreformat.foreground": "#ea9d34", + "textSeparator.foreground": "#797593", + "titleBar.activeBackground": "#faf4ed", + "titleBar.activeForeground": "#797593", + "titleBar.inactiveBackground": "#fffaf3", + "titleBar.inactiveForeground": "#797593", + "toolbar.activeBackground": "#6e6a8626", + "toolbar.hoverBackground": "#6e6a8614", + "tree.indentGuidesStroke": "#797593", + "walkThrough.embeddedEditorBackground": "#faf4ed", + "welcomePage.background": "#faf4ed", + "welcomePage.buttonBackground": "#fffaf3", + "welcomePage.buttonHoverBackground": "#f2e9e1", + "widget.shadow": "#fffaf34d", + "window.activeBorder": "#fffaf3", + "window.inactiveBorder": "#fffaf3" + }, + "tokenColors": [ + { + "scope": ["comment"], + "settings": { + "foreground": "#9893a5", + "fontStyle": "italic" + } + }, + { + "scope": ["constant"], + "settings": { + "foreground": "#286983" + } + }, + { + "scope": ["constant.numeric", "constant.language"], + "settings": { + "foreground": "#d7827e" + } + }, + { + "scope": ["entity.name"], + "settings": { + "foreground": "#d7827e" + } + }, + { + "scope": [ + "entity.name.section", + "entity.name.tag", + "entity.name.namespace", + "entity.name.type" + ], + "settings": { + "foreground": "#56949f" + } + }, + { + "scope": ["entity.other.attribute-name", "entity.other.inherited-class"], + "settings": { + "foreground": "#907aa9", + "fontStyle": "italic" + } + }, + { + "scope": ["invalid"], + "settings": { + "foreground": "#b4637a" + } + }, + { + "scope": ["invalid.deprecated"], + "settings": { + "foreground": "#797593" + } + }, + { + "scope": ["keyword"], + "settings": { + "foreground": "#286983" + } + }, + { + "scope": ["markup.inserted.diff"], + "settings": { + "foreground": "#56949f" + } + }, + { + "scope": ["markup.deleted.diff"], + "settings": { + "foreground": "#b4637a" + } + }, + { + "scope": "markup.heading", + "settings": { + "fontStyle": "bold" + } + }, + { + "scope": "markup.bold.markdown", + "settings": { + "fontStyle": "bold" + } + }, + { + "scope": "markup.italic.markdown", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": ["meta.diff.range"], + "settings": { + "foreground": "#907aa9" + } + }, + { + "scope": ["meta.tag", "meta.brace"], + "settings": { + "foreground": "#575279" + } + }, + { + "scope": ["meta.import", "meta.export"], + "settings": { + "foreground": "#286983" + } + }, + { + "scope": "meta.directive.vue", + "settings": { + "foreground": "#907aa9", + "fontStyle": "italic" + } + }, + { + "scope": "meta.property-name.css", + "settings": { + "foreground": "#56949f" + } + }, + { + "scope": "meta.property-value.css", + "settings": { + "foreground": "#ea9d34" + } + }, + { + "scope": "meta.tag.other.html", + "settings": { + "foreground": "#797593" + } + }, + { + "scope": ["punctuation"], + "settings": { + "foreground": "#797593" + } + }, + { + "scope": ["punctuation.accessor"], + "settings": { + "foreground": "#286983" + } + }, + { + "scope": ["punctuation.definition.string"], + "settings": { + "foreground": "#ea9d34" + } + }, + { + "scope": ["punctuation.definition.tag"], + "settings": { + "foreground": "#9893a5" + } + }, + { + "scope": ["storage.type", "storage.modifier"], + "settings": { + "foreground": "#286983" + } + }, + { + "scope": ["string"], + "settings": { + "foreground": "#ea9d34" + } + }, + { + "scope": ["support"], + "settings": { + "foreground": "#56949f" + } + }, + { + "scope": ["support.constant"], + "settings": { + "foreground": "#ea9d34" + } + }, + { + "scope": ["support.function"], + "settings": { + "foreground": "#b4637a", + "fontStyle": "italic" + } + }, + { + "scope": ["variable"], + "settings": { + "foreground": "#d7827e", + "fontStyle": "italic" + } + }, + { + "scope": ["variable.other", "variable.language", "variable.function", "variable.argument"], + "settings": { + "foreground": "#575279" + } + }, + { + "scope": ["variable.parameter"], + "settings": { + "foreground": "#907aa9" + } + } + ] +} diff --git a/docs/shiki/themes/rose-pine-moon.json b/docs/shiki/themes/rose-pine-moon.json new file mode 100644 index 00000000..0a7667af --- /dev/null +++ b/docs/shiki/themes/rose-pine-moon.json @@ -0,0 +1,675 @@ +{ + "name": "rose-pine-moon", + "type": "dark", + "colors": { + "activityBar.activeBorder": "#e0def4", + "activityBar.background": "#232136", + "activityBar.dropBorder": "#393552", + "activityBar.foreground": "#e0def4", + "activityBar.inactiveForeground": "#908caa", + "activityBarBadge.background": "#ea9a97", + "activityBarBadge.foreground": "#232136", + "badge.background": "#ea9a97", + "badge.foreground": "#232136", + "banner.background": "#2a273f", + "banner.foreground": "#e0def4", + "banner.iconForeground": "#908caa", + "breadcrumb.activeSelectionForeground": "#ea9a97", + "breadcrumb.background": "#232136", + "breadcrumb.focusForeground": "#908caa", + "breadcrumb.foreground": "#6e6a86", + "breadcrumbPicker.background": "#2a273f", + "button.background": "#ea9a97", + "button.foreground": "#232136", + "button.hoverBackground": "#ea9a97e6", + "button.secondaryBackground": "#2a273f", + "button.secondaryForeground": "#e0def4", + "button.secondaryHoverBackground": "#393552", + "charts.blue": "#9ccfd8", + "charts.foreground": "#e0def4", + "charts.green": "#3e8fb0", + "charts.lines": "#908caa", + "charts.orange": "#ea9a97", + "charts.purple": "#c4a7e7", + "charts.red": "#eb6f92", + "charts.yellow": "#f6c177", + "checkbox.background": "#2a273f", + "checkbox.border": "#817c9c26", + "checkbox.foreground": "#e0def4", + "debugExceptionWidget.background": "#2a273f", + "debugExceptionWidget.border": "#817c9c26", + "debugIcon.breakpointCurrentStackframeForeground": "#908caa", + "debugIcon.breakpointDisabledForeground": "#908caa", + "debugIcon.breakpointForeground": "#908caa", + "debugIcon.breakpointStackframeForeground": "#908caa", + "debugIcon.breakpointUnverifiedForeground": "#908caa", + "debugIcon.continueForeground": "#908caa", + "debugIcon.disconnectForeground": "#908caa", + "debugIcon.pauseForeground": "#908caa", + "debugIcon.restartForeground": "#908caa", + "debugIcon.startForeground": "#908caa", + "debugIcon.stepBackForeground": "#908caa", + "debugIcon.stepIntoForeground": "#908caa", + "debugIcon.stepOutForeground": "#908caa", + "debugIcon.stepOverForeground": "#908caa", + "debugIcon.stopForeground": "#eb6f92", + "debugToolBar.background": "#2a273f", + "debugToolBar.border": "#393552", + "descriptionForeground": "#908caa", + "diffEditor.border": "#393552", + "diffEditor.diagonalFill": "#817c9c4d", + "diffEditor.insertedLineBackground": "#9ccfd826", + "diffEditor.insertedTextBackground": "#9ccfd826", + "diffEditor.removedLineBackground": "#eb6f9226", + "diffEditor.removedTextBackground": "#eb6f9226", + "diffEditorOverview.insertedForeground": "#9ccfd880", + "diffEditorOverview.removedForeground": "#eb6f9280", + "dropdown.background": "#2a273f", + "dropdown.border": "#817c9c26", + "dropdown.foreground": "#e0def4", + "dropdown.listBackground": "#2a273f", + "editor.background": "#232136", + "editor.findMatchBackground": "#817c9c4d", + "editor.findMatchHighlightBackground": "#817c9c4d", + "editor.findRangeHighlightBackground": "#817c9c4d", + "editor.findRangeHighlightBorder": "#0000", + "editor.focusedStackFrameHighlightBackground": "#817c9c26", + "editor.foldBackground": "#2a273f", + "editor.foreground": "#e0def4", + "editor.hoverHighlightBackground": "#0000", + "editor.inactiveSelectionBackground": "#817c9c14", + "editor.inlineValuesBackground": "#0000", + "editor.inlineValuesForeground": "#908caa", + "editor.lineHighlightBackground": "#817c9c14", + "editor.lineHighlightBorder": "#0000", + "editor.linkedEditingBackground": "#2a273f", + "editor.rangeHighlightBackground": "#817c9c14", + "editor.selectionBackground": "#817c9c26", + "editor.selectionForeground": "#e0def4", + "editor.selectionHighlightBackground": "#817c9c26", + "editor.selectionHighlightBorder": "#232136", + "editor.snippetFinalTabstopHighlightBackground": "#817c9c26", + "editor.snippetFinalTabstopHighlightBorder": "#2a273f", + "editor.snippetTabstopHighlightBackground": "#817c9c26", + "editor.snippetTabstopHighlightBorder": "#2a273f", + "editor.stackFrameHighlightBackground": "#817c9c26", + "editor.symbolHighlightBackground": "#817c9c26", + "editor.symbolHighlightBorder": "#0000", + "editor.wordHighlightBackground": "#817c9c26", + "editor.wordHighlightBorder": "#0000", + "editor.wordHighlightStrongBackground": "#817c9c26", + "editor.wordHighlightStrongBorder": "#817c9c26", + "editorBracketHighlight.foreground1": "#eb6f9280", + "editorBracketHighlight.foreground2": "#3e8fb080", + "editorBracketHighlight.foreground3": "#f6c17780", + "editorBracketHighlight.foreground4": "#9ccfd880", + "editorBracketHighlight.foreground5": "#ea9a9780", + "editorBracketHighlight.foreground6": "#c4a7e780", + "editorBracketMatch.background": "#0000", + "editorBracketMatch.border": "#908caa", + "editorBracketPairGuide.activeBackground1": "#3e8fb0", + "editorBracketPairGuide.activeBackground2": "#ea9a97", + "editorBracketPairGuide.activeBackground3": "#c4a7e7", + "editorBracketPairGuide.activeBackground4": "#9ccfd8", + "editorBracketPairGuide.activeBackground5": "#f6c177", + "editorBracketPairGuide.activeBackground6": "#eb6f92", + "editorBracketPairGuide.background1": "#3e8fb080", + "editorBracketPairGuide.background2": "#ea9a9780", + "editorBracketPairGuide.background3": "#c4a7e780", + "editorBracketPairGuide.background4": "#9ccfd880", + "editorBracketPairGuide.background5": "#f6c17780", + "editorBracketPairGuide.background6": "#eb6f9280", + "editorCodeLens.foreground": "#ea9a97", + "editorCursor.background": "#e0def4", + "editorCursor.foreground": "#6e6a86", + "editorError.border": "#0000", + "editorError.foreground": "#eb6f92", + "editorGhostText.foreground": "#908caa", + "editorGroup.border": "#0000", + "editorGroup.dropBackground": "#2a273f", + "editorGroup.emptyBackground": "#0000", + "editorGroup.focusedEmptyBorder": "#0000", + "editorGroupHeader.noTabsBackground": "#0000", + "editorGroupHeader.tabsBackground": "#0000", + "editorGroupHeader.tabsBorder": "#0000", + "editorGutter.addedBackground": "#9ccfd8", + "editorGutter.background": "#232136", + "editorGutter.commentRangeForeground": "#908caa", + "editorGutter.deletedBackground": "#eb6f92", + "editorGutter.foldingControlForeground": "#c4a7e7", + "editorGutter.modifiedBackground": "#ea9a97", + "editorHint.border": "#0000", + "editorHint.foreground": "#908caa", + "editorHoverWidget.background": "#2a273f", + "editorHoverWidget.border": "#6e6a8680", + "editorHoverWidget.foreground": "#908caa", + "editorHoverWidget.highlightForeground": "#e0def4", + "editorHoverWidget.statusBarBackground": "#0000", + "editorIndentGuide.activeBackground": "#6e6a86", + "editorIndentGuide.background": "#817c9c4d", + "editorInfo.border": "#393552", + "editorInfo.foreground": "#9ccfd8", + "editorInlayHint.background": "#393552", + "editorInlayHint.foreground": "#908caa", + "editorInlayHint.parameterBackground": "#393552", + "editorInlayHint.parameterForeground": "#c4a7e7", + "editorInlayHint.typeBackground": "#393552", + "editorInlayHint.typeForeground": "#9ccfd8", + "editorLightBulb.foreground": "#3e8fb0", + "editorLightBulbAutoFix.foreground": "#ea9a97", + "editorLineNumber.activeForeground": "#e0def4", + "editorLineNumber.foreground": "#908caa", + "editorLink.activeForeground": "#ea9a97", + "editorMarkerNavigation.background": "#2a273f", + "editorMarkerNavigationError.background": "#2a273f", + "editorMarkerNavigationInfo.background": "#2a273f", + "editorMarkerNavigationWarning.background": "#2a273f", + "editorOverviewRuler.addedForeground": "#9ccfd880", + "editorOverviewRuler.background": "#232136", + "editorOverviewRuler.border": "#817c9c4d", + "editorOverviewRuler.bracketMatchForeground": "#908caa", + "editorOverviewRuler.commonContentForeground": "#817c9c14", + "editorOverviewRuler.currentContentForeground": "#817c9c26", + "editorOverviewRuler.deletedForeground": "#eb6f9280", + "editorOverviewRuler.errorForeground": "#eb6f9280", + "editorOverviewRuler.findMatchForeground": "#817c9c4d", + "editorOverviewRuler.incomingContentForeground": "#c4a7e780", + "editorOverviewRuler.infoForeground": "#9ccfd880", + "editorOverviewRuler.modifiedForeground": "#ea9a9780", + "editorOverviewRuler.rangeHighlightForeground": "#817c9c4d", + "editorOverviewRuler.selectionHighlightForeground": "#817c9c4d", + "editorOverviewRuler.warningForeground": "#f6c17780", + "editorOverviewRuler.wordHighlightForeground": "#817c9c26", + "editorOverviewRuler.wordHighlightStrongForeground": "#817c9c4d", + "editorPane.background": "#0000", + "editorRuler.foreground": "#817c9c4d", + "editorSuggestWidget.background": "#2a273f", + "editorSuggestWidget.border": "#0000", + "editorSuggestWidget.focusHighlightForeground": "#ea9a97", + "editorSuggestWidget.foreground": "#908caa", + "editorSuggestWidget.highlightForeground": "#ea9a97", + "editorSuggestWidget.selectedBackground": "#817c9c26", + "editorSuggestWidget.selectedForeground": "#e0def4", + "editorSuggestWidget.selectedIconForeground": "#e0def4", + "editorUnnecessaryCode.border": "#0000", + "editorUnnecessaryCode.opacity": "#e0def480", + "editorWarning.border": "#0000", + "editorWarning.foreground": "#f6c177", + "editorWhitespace.foreground": "#6e6a86", + "editorWidget.background": "#2a273f", + "editorWidget.border": "#393552", + "editorWidget.foreground": "#908caa", + "editorWidget.resizeBorder": "#6e6a86", + "errorForeground": "#eb6f92", + "extensionBadge.remoteBackground": "#c4a7e7", + "extensionBadge.remoteForeground": "#232136", + "extensionButton.prominentBackground": "#ea9a97", + "extensionButton.prominentForeground": "#232136", + "extensionButton.prominentHoverBackground": "#ea9a97e6", + "extensionIcon.preReleaseForeground": "#3e8fb0", + "extensionIcon.starForeground": "#ea9a97", + "extensionIcon.verifiedForeground": "#c4a7e7", + "focusBorder": "#817c9c26", + "foreground": "#e0def4", + "gitDecoration.addedResourceForeground": "#9ccfd8", + "gitDecoration.conflictingResourceForeground": "#eb6f92", + "gitDecoration.deletedResourceForeground": "#908caa", + "gitDecoration.ignoredResourceForeground": "#6e6a86", + "gitDecoration.modifiedResourceForeground": "#ea9a97", + "gitDecoration.renamedResourceForeground": "#3e8fb0", + "gitDecoration.stageDeletedResourceForeground": "#eb6f92", + "gitDecoration.stageModifiedResourceForeground": "#c4a7e7", + "gitDecoration.submoduleResourceForeground": "#f6c177", + "gitDecoration.untrackedResourceForeground": "#f6c177", + "icon.foreground": "#908caa", + "input.background": "#39355280", + "input.border": "#817c9c26", + "input.foreground": "#e0def4", + "input.placeholderForeground": "#908caa", + "inputOption.activeBackground": "#ea9a9726", + "inputOption.activeForeground": "#ea9a97", + "inputValidation.errorBackground": "#2a273f", + "inputValidation.errorBorder": "#817c9c4d", + "inputValidation.errorForeground": "#eb6f92", + "inputValidation.infoBackground": "#2a273f", + "inputValidation.infoBorder": "#817c9c4d", + "inputValidation.infoForeground": "#9ccfd8", + "inputValidation.warningBackground": "#2a273f", + "inputValidation.warningBorder": "#817c9c4d", + "inputValidation.warningForeground": "#9ccfd880", + "keybindingLabel.background": "#393552", + "keybindingLabel.border": "#817c9c4d", + "keybindingLabel.bottomBorder": "#817c9c4d", + "keybindingLabel.foreground": "#c4a7e7", + "keybindingTable.headerBackground": "#393552", + "keybindingTable.rowsBackground": "#2a273f", + "list.activeSelectionBackground": "#817c9c26", + "list.activeSelectionForeground": "#e0def4", + "list.deemphasizedForeground": "#908caa", + "list.dropBackground": "#2a273f", + "list.errorForeground": "#eb6f92", + "list.filterMatchBackground": "#2a273f", + "list.filterMatchBorder": "#ea9a97", + "list.focusBackground": "#817c9c4d", + "list.focusForeground": "#e0def4", + "list.focusOutline": "#817c9c26", + "list.highlightForeground": "#ea9a97", + "list.hoverBackground": "#817c9c14", + "list.hoverForeground": "#e0def4", + "list.inactiveFocusBackground": "#817c9c14", + "list.inactiveSelectionBackground": "#2a273f", + "list.inactiveSelectionForeground": "#e0def4", + "list.invalidItemForeground": "#eb6f92", + "list.warningForeground": "#f6c177", + "listFilterWidget.background": "#2a273f", + "listFilterWidget.noMatchesOutline": "#eb6f92", + "listFilterWidget.outline": "#393552", + "menu.background": "#2a273f", + "menu.border": "#817c9c14", + "menu.foreground": "#e0def4", + "menu.selectionBackground": "#817c9c26", + "menu.selectionBorder": "#393552", + "menu.selectionForeground": "#e0def4", + "menu.separatorBackground": "#817c9c4d", + "menubar.selectionBackground": "#817c9c26", + "menubar.selectionBorder": "#817c9c14", + "menubar.selectionForeground": "#e0def4", + "merge.border": "#393552", + "merge.commonContentBackground": "#817c9c26", + "merge.commonHeaderBackground": "#817c9c26", + "merge.currentContentBackground": "#f6c17780", + "merge.currentHeaderBackground": "#f6c17780", + "merge.incomingContentBackground": "#9ccfd880", + "merge.incomingHeaderBackground": "#9ccfd880", + "minimap.background": "#2a273f", + "minimap.errorHighlight": "#eb6f9280", + "minimap.findMatchHighlight": "#817c9c26", + "minimap.selectionHighlight": "#817c9c26", + "minimap.warningHighlight": "#f6c17780", + "minimapGutter.addedBackground": "#9ccfd8", + "minimapGutter.deletedBackground": "#eb6f92", + "minimapGutter.modifiedBackground": "#ea9a97", + "minimapSlider.activeBackground": "#817c9c4d", + "minimapSlider.background": "#817c9c26", + "minimapSlider.hoverBackground": "#817c9c26", + "notebook.cellBorderColor": "#9ccfd880", + "notebook.cellEditorBackground": "#2a273f", + "notebook.cellHoverBackground": "#39355280", + "notebook.focusedCellBackground": "#817c9c14", + "notebook.focusedCellBorder": "#9ccfd8", + "notebook.outputContainerBackgroundColor": "#817c9c14", + "notificationCenter.border": "#817c9c26", + "notificationCenterHeader.background": "#2a273f", + "notificationCenterHeader.foreground": "#908caa", + "notificationLink.foreground": "#c4a7e7", + "notifications.background": "#2a273f", + "notifications.border": "#817c9c26", + "notifications.foreground": "#e0def4", + "notificationsErrorIcon.foreground": "#eb6f92", + "notificationsInfoIcon.foreground": "#9ccfd8", + "notificationsWarningIcon.foreground": "#f6c177", + "notificationToast.border": "#817c9c26", + "panel.background": "#2a273f", + "panel.border": "#0000", + "panel.dropBorder": "#393552", + "panelInput.border": "#2a273f", + "panelSection.dropBackground": "#817c9c26", + "panelSectionHeader.background": "#2a273f", + "panelSectionHeader.foreground": "#e0def4", + "panelTitle.activeBorder": "#817c9c4d", + "panelTitle.activeForeground": "#e0def4", + "panelTitle.inactiveForeground": "#908caa", + "peekView.border": "#393552", + "peekViewEditor.background": "#2a273f", + "peekViewEditor.matchHighlightBackground": "#817c9c4d", + "peekViewResult.background": "#2a273f", + "peekViewResult.fileForeground": "#908caa", + "peekViewResult.lineForeground": "#908caa", + "peekViewResult.matchHighlightBackground": "#817c9c4d", + "peekViewResult.selectionBackground": "#817c9c26", + "peekViewResult.selectionForeground": "#e0def4", + "peekViewTitle.background": "#393552", + "peekViewTitleDescription.foreground": "#908caa", + "pickerGroup.border": "#817c9c4d", + "pickerGroup.foreground": "#c4a7e7", + "ports.iconRunningProcessForeground": "#ea9a97", + "problemsErrorIcon.foreground": "#eb6f92", + "problemsInfoIcon.foreground": "#9ccfd8", + "problemsWarningIcon.foreground": "#f6c177", + "progressBar.background": "#ea9a97", + "quickInput.background": "#2a273f", + "quickInput.foreground": "#908caa", + "quickInputList.focusBackground": "#817c9c26", + "quickInputList.focusForeground": "#e0def4", + "quickInputList.focusIconForeground": "#e0def4", + "scrollbar.shadow": "#2a273f4d", + "scrollbarSlider.activeBackground": "#3e8fb080", + "scrollbarSlider.background": "#817c9c26", + "scrollbarSlider.hoverBackground": "#817c9c4d", + "searchEditor.findMatchBackground": "#817c9c26", + "selection.background": "#817c9c4d", + "settings.focusedRowBackground": "#2a273f", + "settings.headerForeground": "#e0def4", + "settings.modifiedItemIndicator": "#ea9a97", + "settings.focusedRowBorder": "#817c9c26", + "settings.rowHoverBackground": "#2a273f", + "sideBar.background": "#232136", + "sideBar.dropBackground": "#2a273f", + "sideBar.foreground": "#908caa", + "sideBarSectionHeader.background": "#0000", + "sideBarSectionHeader.border": "#817c9c26", + "statusBar.background": "#232136", + "statusBar.debuggingBackground": "#c4a7e7", + "statusBar.debuggingForeground": "#232136", + "statusBar.foreground": "#908caa", + "statusBar.noFolderBackground": "#232136", + "statusBar.noFolderForeground": "#908caa", + "statusBarItem.activeBackground": "#817c9c4d", + "statusBarItem.hoverBackground": "#817c9c26", + "statusBarItem.prominentBackground": "#393552", + "statusBarItem.prominentForeground": "#e0def4", + "statusBarItem.prominentHoverBackground": "#817c9c26", + "statusBarItem.remoteBackground": "#232136", + "statusBarItem.remoteForeground": "#f6c177", + "statusBarItem.errorBackground": "#232136", + "statusBarItem.errorForeground": "#eb6f92", + "symbolIcon.arrayForeground": "#908caa", + "symbolIcon.classForeground": "#908caa", + "symbolIcon.colorForeground": "#908caa", + "symbolIcon.constantForeground": "#908caa", + "symbolIcon.constructorForeground": "#908caa", + "symbolIcon.enumeratorForeground": "#908caa", + "symbolIcon.enumeratorMemberForeground": "#908caa", + "symbolIcon.eventForeground": "#908caa", + "symbolIcon.fieldForeground": "#908caa", + "symbolIcon.fileForeground": "#908caa", + "symbolIcon.folderForeground": "#908caa", + "symbolIcon.functionForeground": "#908caa", + "symbolIcon.interfaceForeground": "#908caa", + "symbolIcon.keyForeground": "#908caa", + "symbolIcon.keywordForeground": "#908caa", + "symbolIcon.methodForeground": "#908caa", + "symbolIcon.moduleForeground": "#908caa", + "symbolIcon.namespaceForeground": "#908caa", + "symbolIcon.nullForeground": "#908caa", + "symbolIcon.numberForeground": "#908caa", + "symbolIcon.objectForeground": "#908caa", + "symbolIcon.operatorForeground": "#908caa", + "symbolIcon.packageForeground": "#908caa", + "symbolIcon.propertyForeground": "#908caa", + "symbolIcon.referenceForeground": "#908caa", + "symbolIcon.snippetForeground": "#908caa", + "symbolIcon.stringForeground": "#908caa", + "symbolIcon.structForeground": "#908caa", + "symbolIcon.textForeground": "#908caa", + "symbolIcon.typeParameterForeground": "#908caa", + "symbolIcon.unitForeground": "#908caa", + "symbolIcon.variableForeground": "#908caa", + "tab.activeBackground": "#817c9c14", + "tab.activeForeground": "#e0def4", + "tab.activeModifiedBorder": "#9ccfd8", + "tab.border": "#0000", + "tab.hoverBackground": "#817c9c26", + "tab.inactiveBackground": "#0000", + "tab.inactiveForeground": "#908caa", + "tab.inactiveModifiedBorder": "#9ccfd880", + "tab.lastPinnedBorder": "#6e6a86", + "tab.unfocusedActiveBackground": "#0000", + "tab.unfocusedHoverBackground": "#0000", + "tab.unfocusedInactiveBackground": "#0000", + "tab.unfocusedInactiveModifiedBorder": "#9ccfd880", + "terminal.ansiBlack": "#393552", + "terminal.ansiBlue": "#9ccfd8", + "terminal.ansiBrightBlack": "#908caa", + "terminal.ansiBrightBlue": "#9ccfd8", + "terminal.ansiBrightCyan": "#ea9a97", + "terminal.ansiBrightGreen": "#3e8fb0", + "terminal.ansiBrightMagenta": "#c4a7e7", + "terminal.ansiBrightRed": "#eb6f92", + "terminal.ansiBrightWhite": "#e0def4", + "terminal.ansiBrightYellow": "#f6c177", + "terminal.ansiCyan": "#ea9a97", + "terminal.ansiGreen": "#3e8fb0", + "terminal.ansiMagenta": "#c4a7e7", + "terminal.ansiRed": "#eb6f92", + "terminal.ansiWhite": "#e0def4", + "terminal.ansiYellow": "#f6c177", + "terminal.dropBackground": "#817c9c26", + "terminal.foreground": "#e0def4", + "terminal.selectionBackground": "#817c9c26", + "terminal.tab.activeBorder": "#e0def4", + "terminalCursor.background": "#e0def4", + "terminalCursor.foreground": "#6e6a86", + "textBlockQuote.background": "#2a273f", + "textBlockQuote.border": "#817c9c26", + "textCodeBlock.background": "#2a273f", + "textLink.activeForeground": "#c4a7e7e6", + "textLink.foreground": "#c4a7e7", + "textPreformat.foreground": "#f6c177", + "textSeparator.foreground": "#908caa", + "titleBar.activeBackground": "#232136", + "titleBar.activeForeground": "#908caa", + "titleBar.inactiveBackground": "#2a273f", + "titleBar.inactiveForeground": "#908caa", + "toolbar.activeBackground": "#817c9c4d", + "toolbar.hoverBackground": "#817c9c26", + "tree.indentGuidesStroke": "#908caa", + "walkThrough.embeddedEditorBackground": "#232136", + "welcomePage.background": "#232136", + "welcomePage.buttonBackground": "#2a273f", + "welcomePage.buttonHoverBackground": "#393552", + "widget.shadow": "#2a273f4d", + "window.activeBorder": "#2a273f", + "window.inactiveBorder": "#2a273f" + }, + "tokenColors": [ + { + "scope": ["comment"], + "settings": { + "foreground": "#6e6a86", + "fontStyle": "italic" + } + }, + { + "scope": ["constant"], + "settings": { + "foreground": "#3e8fb0" + } + }, + { + "scope": ["constant.numeric", "constant.language"], + "settings": { + "foreground": "#ea9a97" + } + }, + { + "scope": ["entity.name"], + "settings": { + "foreground": "#ea9a97" + } + }, + { + "scope": [ + "entity.name.section", + "entity.name.tag", + "entity.name.namespace", + "entity.name.type" + ], + "settings": { + "foreground": "#9ccfd8" + } + }, + { + "scope": ["entity.other.attribute-name", "entity.other.inherited-class"], + "settings": { + "foreground": "#c4a7e7", + "fontStyle": "italic" + } + }, + { + "scope": ["invalid"], + "settings": { + "foreground": "#eb6f92" + } + }, + { + "scope": ["invalid.deprecated"], + "settings": { + "foreground": "#908caa" + } + }, + { + "scope": ["keyword"], + "settings": { + "foreground": "#3e8fb0" + } + }, + { + "scope": ["markup.inserted.diff"], + "settings": { + "foreground": "#9ccfd8" + } + }, + { + "scope": ["markup.deleted.diff"], + "settings": { + "foreground": "#eb6f92" + } + }, + { + "scope": "markup.heading", + "settings": { + "fontStyle": "bold" + } + }, + { + "scope": "markup.bold.markdown", + "settings": { + "fontStyle": "bold" + } + }, + { + "scope": "markup.italic.markdown", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": ["meta.diff.range"], + "settings": { + "foreground": "#c4a7e7" + } + }, + { + "scope": ["meta.tag", "meta.brace"], + "settings": { + "foreground": "#e0def4" + } + }, + { + "scope": ["meta.import", "meta.export"], + "settings": { + "foreground": "#3e8fb0" + } + }, + { + "scope": "meta.directive.vue", + "settings": { + "foreground": "#c4a7e7", + "fontStyle": "italic" + } + }, + { + "scope": "meta.property-name.css", + "settings": { + "foreground": "#9ccfd8" + } + }, + { + "scope": "meta.property-value.css", + "settings": { + "foreground": "#f6c177" + } + }, + { + "scope": "meta.tag.other.html", + "settings": { + "foreground": "#908caa" + } + }, + { + "scope": ["punctuation"], + "settings": { + "foreground": "#908caa" + } + }, + { + "scope": ["punctuation.accessor"], + "settings": { + "foreground": "#3e8fb0" + } + }, + { + "scope": ["punctuation.definition.string"], + "settings": { + "foreground": "#f6c177" + } + }, + { + "scope": ["punctuation.definition.tag"], + "settings": { + "foreground": "#6e6a86" + } + }, + { + "scope": ["storage.type", "storage.modifier"], + "settings": { + "foreground": "#3e8fb0" + } + }, + { + "scope": ["string"], + "settings": { + "foreground": "#f6c177" + } + }, + { + "scope": ["support"], + "settings": { + "foreground": "#9ccfd8" + } + }, + { + "scope": ["support.constant"], + "settings": { + "foreground": "#f6c177" + } + }, + { + "scope": ["support.function"], + "settings": { + "foreground": "#eb6f92", + "fontStyle": "italic" + } + }, + { + "scope": ["variable"], + "settings": { + "foreground": "#ea9a97", + "fontStyle": "italic" + } + }, + { + "scope": ["variable.other", "variable.language", "variable.function", "variable.argument"], + "settings": { + "foreground": "#e0def4" + } + }, + { + "scope": ["variable.parameter"], + "settings": { + "foreground": "#c4a7e7" + } + } + ] +} diff --git a/docs/shiki/themes/rose-pine.json b/docs/shiki/themes/rose-pine.json new file mode 100644 index 00000000..1124a075 --- /dev/null +++ b/docs/shiki/themes/rose-pine.json @@ -0,0 +1,675 @@ +{ + "name": "rose-pine", + "type": "dark", + "colors": { + "activityBar.activeBorder": "#e0def4", + "activityBar.background": "#191724", + "activityBar.dropBorder": "#26233a", + "activityBar.foreground": "#e0def4", + "activityBar.inactiveForeground": "#908caa", + "activityBarBadge.background": "#ebbcba", + "activityBarBadge.foreground": "#191724", + "badge.background": "#ebbcba", + "badge.foreground": "#191724", + "banner.background": "#1f1d2e", + "banner.foreground": "#e0def4", + "banner.iconForeground": "#908caa", + "breadcrumb.activeSelectionForeground": "#ebbcba", + "breadcrumb.background": "#191724", + "breadcrumb.focusForeground": "#908caa", + "breadcrumb.foreground": "#6e6a86", + "breadcrumbPicker.background": "#1f1d2e", + "button.background": "#ebbcba", + "button.foreground": "#191724", + "button.hoverBackground": "#ebbcbae6", + "button.secondaryBackground": "#1f1d2e", + "button.secondaryForeground": "#e0def4", + "button.secondaryHoverBackground": "#26233a", + "charts.blue": "#9ccfd8", + "charts.foreground": "#e0def4", + "charts.green": "#31748f", + "charts.lines": "#908caa", + "charts.orange": "#ebbcba", + "charts.purple": "#c4a7e7", + "charts.red": "#eb6f92", + "charts.yellow": "#f6c177", + "checkbox.background": "#1f1d2e", + "checkbox.border": "#6e6a8633", + "checkbox.foreground": "#e0def4", + "debugExceptionWidget.background": "#1f1d2e", + "debugExceptionWidget.border": "#6e6a8633", + "debugIcon.breakpointCurrentStackframeForeground": "#908caa", + "debugIcon.breakpointDisabledForeground": "#908caa", + "debugIcon.breakpointForeground": "#908caa", + "debugIcon.breakpointStackframeForeground": "#908caa", + "debugIcon.breakpointUnverifiedForeground": "#908caa", + "debugIcon.continueForeground": "#908caa", + "debugIcon.disconnectForeground": "#908caa", + "debugIcon.pauseForeground": "#908caa", + "debugIcon.restartForeground": "#908caa", + "debugIcon.startForeground": "#908caa", + "debugIcon.stepBackForeground": "#908caa", + "debugIcon.stepIntoForeground": "#908caa", + "debugIcon.stepOutForeground": "#908caa", + "debugIcon.stepOverForeground": "#908caa", + "debugIcon.stopForeground": "#eb6f92", + "debugToolBar.background": "#1f1d2e", + "debugToolBar.border": "#26233a", + "descriptionForeground": "#908caa", + "diffEditor.border": "#26233a", + "diffEditor.diagonalFill": "#6e6a8666", + "diffEditor.insertedLineBackground": "#9ccfd826", + "diffEditor.insertedTextBackground": "#9ccfd826", + "diffEditor.removedLineBackground": "#eb6f9226", + "diffEditor.removedTextBackground": "#eb6f9226", + "diffEditorOverview.insertedForeground": "#9ccfd880", + "diffEditorOverview.removedForeground": "#eb6f9280", + "dropdown.background": "#1f1d2e", + "dropdown.border": "#6e6a8633", + "dropdown.foreground": "#e0def4", + "dropdown.listBackground": "#1f1d2e", + "editor.background": "#191724", + "editor.findMatchBackground": "#6e6a8666", + "editor.findMatchHighlightBackground": "#6e6a8666", + "editor.findRangeHighlightBackground": "#6e6a8666", + "editor.findRangeHighlightBorder": "#0000", + "editor.focusedStackFrameHighlightBackground": "#6e6a8633", + "editor.foldBackground": "#1f1d2e", + "editor.foreground": "#e0def4", + "editor.hoverHighlightBackground": "#0000", + "editor.inactiveSelectionBackground": "#6e6a861a", + "editor.inlineValuesBackground": "#0000", + "editor.inlineValuesForeground": "#908caa", + "editor.lineHighlightBackground": "#6e6a861a", + "editor.lineHighlightBorder": "#0000", + "editor.linkedEditingBackground": "#1f1d2e", + "editor.rangeHighlightBackground": "#6e6a861a", + "editor.selectionBackground": "#6e6a8633", + "editor.selectionForeground": "#e0def4", + "editor.selectionHighlightBackground": "#6e6a8633", + "editor.selectionHighlightBorder": "#191724", + "editor.snippetFinalTabstopHighlightBackground": "#6e6a8633", + "editor.snippetFinalTabstopHighlightBorder": "#1f1d2e", + "editor.snippetTabstopHighlightBackground": "#6e6a8633", + "editor.snippetTabstopHighlightBorder": "#1f1d2e", + "editor.stackFrameHighlightBackground": "#6e6a8633", + "editor.symbolHighlightBackground": "#6e6a8633", + "editor.symbolHighlightBorder": "#0000", + "editor.wordHighlightBackground": "#6e6a8633", + "editor.wordHighlightBorder": "#0000", + "editor.wordHighlightStrongBackground": "#6e6a8633", + "editor.wordHighlightStrongBorder": "#6e6a8633", + "editorBracketHighlight.foreground1": "#eb6f9280", + "editorBracketHighlight.foreground2": "#31748f80", + "editorBracketHighlight.foreground3": "#f6c17780", + "editorBracketHighlight.foreground4": "#9ccfd880", + "editorBracketHighlight.foreground5": "#ebbcba80", + "editorBracketHighlight.foreground6": "#c4a7e780", + "editorBracketMatch.background": "#0000", + "editorBracketMatch.border": "#908caa", + "editorBracketPairGuide.activeBackground1": "#31748f", + "editorBracketPairGuide.activeBackground2": "#ebbcba", + "editorBracketPairGuide.activeBackground3": "#c4a7e7", + "editorBracketPairGuide.activeBackground4": "#9ccfd8", + "editorBracketPairGuide.activeBackground5": "#f6c177", + "editorBracketPairGuide.activeBackground6": "#eb6f92", + "editorBracketPairGuide.background1": "#31748f80", + "editorBracketPairGuide.background2": "#ebbcba80", + "editorBracketPairGuide.background3": "#c4a7e780", + "editorBracketPairGuide.background4": "#9ccfd880", + "editorBracketPairGuide.background5": "#f6c17780", + "editorBracketPairGuide.background6": "#eb6f9280", + "editorCodeLens.foreground": "#ebbcba", + "editorCursor.background": "#e0def4", + "editorCursor.foreground": "#6e6a86", + "editorError.border": "#0000", + "editorError.foreground": "#eb6f92", + "editorGhostText.foreground": "#908caa", + "editorGroup.border": "#0000", + "editorGroup.dropBackground": "#1f1d2e", + "editorGroup.emptyBackground": "#0000", + "editorGroup.focusedEmptyBorder": "#0000", + "editorGroupHeader.noTabsBackground": "#0000", + "editorGroupHeader.tabsBackground": "#0000", + "editorGroupHeader.tabsBorder": "#0000", + "editorGutter.addedBackground": "#9ccfd8", + "editorGutter.background": "#191724", + "editorGutter.commentRangeForeground": "#908caa", + "editorGutter.deletedBackground": "#eb6f92", + "editorGutter.foldingControlForeground": "#c4a7e7", + "editorGutter.modifiedBackground": "#ebbcba", + "editorHint.border": "#0000", + "editorHint.foreground": "#908caa", + "editorHoverWidget.background": "#1f1d2e", + "editorHoverWidget.border": "#6e6a8680", + "editorHoverWidget.foreground": "#908caa", + "editorHoverWidget.highlightForeground": "#e0def4", + "editorHoverWidget.statusBarBackground": "#0000", + "editorIndentGuide.activeBackground": "#6e6a86", + "editorIndentGuide.background": "#6e6a8666", + "editorInfo.border": "#26233a", + "editorInfo.foreground": "#9ccfd8", + "editorInlayHint.background": "#26233a", + "editorInlayHint.foreground": "#908caa", + "editorInlayHint.parameterBackground": "#26233a", + "editorInlayHint.parameterForeground": "#c4a7e7", + "editorInlayHint.typeBackground": "#26233a", + "editorInlayHint.typeForeground": "#9ccfd8", + "editorLightBulb.foreground": "#31748f", + "editorLightBulbAutoFix.foreground": "#ebbcba", + "editorLineNumber.activeForeground": "#e0def4", + "editorLineNumber.foreground": "#908caa", + "editorLink.activeForeground": "#ebbcba", + "editorMarkerNavigation.background": "#1f1d2e", + "editorMarkerNavigationError.background": "#1f1d2e", + "editorMarkerNavigationInfo.background": "#1f1d2e", + "editorMarkerNavigationWarning.background": "#1f1d2e", + "editorOverviewRuler.addedForeground": "#9ccfd880", + "editorOverviewRuler.background": "#191724", + "editorOverviewRuler.border": "#6e6a8666", + "editorOverviewRuler.bracketMatchForeground": "#908caa", + "editorOverviewRuler.commonContentForeground": "#6e6a861a", + "editorOverviewRuler.currentContentForeground": "#6e6a8633", + "editorOverviewRuler.deletedForeground": "#eb6f9280", + "editorOverviewRuler.errorForeground": "#eb6f9280", + "editorOverviewRuler.findMatchForeground": "#6e6a8666", + "editorOverviewRuler.incomingContentForeground": "#c4a7e780", + "editorOverviewRuler.infoForeground": "#9ccfd880", + "editorOverviewRuler.modifiedForeground": "#ebbcba80", + "editorOverviewRuler.rangeHighlightForeground": "#6e6a8666", + "editorOverviewRuler.selectionHighlightForeground": "#6e6a8666", + "editorOverviewRuler.warningForeground": "#f6c17780", + "editorOverviewRuler.wordHighlightForeground": "#6e6a8633", + "editorOverviewRuler.wordHighlightStrongForeground": "#6e6a8666", + "editorPane.background": "#0000", + "editorRuler.foreground": "#6e6a8666", + "editorSuggestWidget.background": "#1f1d2e", + "editorSuggestWidget.border": "#0000", + "editorSuggestWidget.focusHighlightForeground": "#ebbcba", + "editorSuggestWidget.foreground": "#908caa", + "editorSuggestWidget.highlightForeground": "#ebbcba", + "editorSuggestWidget.selectedBackground": "#6e6a8633", + "editorSuggestWidget.selectedForeground": "#e0def4", + "editorSuggestWidget.selectedIconForeground": "#e0def4", + "editorUnnecessaryCode.border": "#0000", + "editorUnnecessaryCode.opacity": "#e0def480", + "editorWarning.border": "#0000", + "editorWarning.foreground": "#f6c177", + "editorWhitespace.foreground": "#6e6a86", + "editorWidget.background": "#1f1d2e", + "editorWidget.border": "#26233a", + "editorWidget.foreground": "#908caa", + "editorWidget.resizeBorder": "#6e6a86", + "errorForeground": "#eb6f92", + "extensionBadge.remoteBackground": "#c4a7e7", + "extensionBadge.remoteForeground": "#191724", + "extensionButton.prominentBackground": "#ebbcba", + "extensionButton.prominentForeground": "#191724", + "extensionButton.prominentHoverBackground": "#ebbcbae6", + "extensionIcon.preReleaseForeground": "#31748f", + "extensionIcon.starForeground": "#ebbcba", + "extensionIcon.verifiedForeground": "#c4a7e7", + "focusBorder": "#6e6a8633", + "foreground": "#e0def4", + "gitDecoration.addedResourceForeground": "#9ccfd8", + "gitDecoration.conflictingResourceForeground": "#eb6f92", + "gitDecoration.deletedResourceForeground": "#908caa", + "gitDecoration.ignoredResourceForeground": "#6e6a86", + "gitDecoration.modifiedResourceForeground": "#ebbcba", + "gitDecoration.renamedResourceForeground": "#31748f", + "gitDecoration.stageDeletedResourceForeground": "#eb6f92", + "gitDecoration.stageModifiedResourceForeground": "#c4a7e7", + "gitDecoration.submoduleResourceForeground": "#f6c177", + "gitDecoration.untrackedResourceForeground": "#f6c177", + "icon.foreground": "#908caa", + "input.background": "#26233a80", + "input.border": "#6e6a8633", + "input.foreground": "#e0def4", + "input.placeholderForeground": "#908caa", + "inputOption.activeBackground": "#ebbcba26", + "inputOption.activeForeground": "#ebbcba", + "inputValidation.errorBackground": "#1f1d2e", + "inputValidation.errorBorder": "#6e6a8666", + "inputValidation.errorForeground": "#eb6f92", + "inputValidation.infoBackground": "#1f1d2e", + "inputValidation.infoBorder": "#6e6a8666", + "inputValidation.infoForeground": "#9ccfd8", + "inputValidation.warningBackground": "#1f1d2e", + "inputValidation.warningBorder": "#6e6a8666", + "inputValidation.warningForeground": "#9ccfd880", + "keybindingLabel.background": "#26233a", + "keybindingLabel.border": "#6e6a8666", + "keybindingLabel.bottomBorder": "#6e6a8666", + "keybindingLabel.foreground": "#c4a7e7", + "keybindingTable.headerBackground": "#26233a", + "keybindingTable.rowsBackground": "#1f1d2e", + "list.activeSelectionBackground": "#6e6a8633", + "list.activeSelectionForeground": "#e0def4", + "list.deemphasizedForeground": "#908caa", + "list.dropBackground": "#1f1d2e", + "list.errorForeground": "#eb6f92", + "list.filterMatchBackground": "#1f1d2e", + "list.filterMatchBorder": "#ebbcba", + "list.focusBackground": "#6e6a8666", + "list.focusForeground": "#e0def4", + "list.focusOutline": "#6e6a8633", + "list.highlightForeground": "#ebbcba", + "list.hoverBackground": "#6e6a861a", + "list.hoverForeground": "#e0def4", + "list.inactiveFocusBackground": "#6e6a861a", + "list.inactiveSelectionBackground": "#1f1d2e", + "list.inactiveSelectionForeground": "#e0def4", + "list.invalidItemForeground": "#eb6f92", + "list.warningForeground": "#f6c177", + "listFilterWidget.background": "#1f1d2e", + "listFilterWidget.noMatchesOutline": "#eb6f92", + "listFilterWidget.outline": "#26233a", + "menu.background": "#1f1d2e", + "menu.border": "#6e6a861a", + "menu.foreground": "#e0def4", + "menu.selectionBackground": "#6e6a8633", + "menu.selectionBorder": "#26233a", + "menu.selectionForeground": "#e0def4", + "menu.separatorBackground": "#6e6a8666", + "menubar.selectionBackground": "#6e6a8633", + "menubar.selectionBorder": "#6e6a861a", + "menubar.selectionForeground": "#e0def4", + "merge.border": "#26233a", + "merge.commonContentBackground": "#6e6a8633", + "merge.commonHeaderBackground": "#6e6a8633", + "merge.currentContentBackground": "#f6c17780", + "merge.currentHeaderBackground": "#f6c17780", + "merge.incomingContentBackground": "#9ccfd880", + "merge.incomingHeaderBackground": "#9ccfd880", + "minimap.background": "#1f1d2e", + "minimap.errorHighlight": "#eb6f9280", + "minimap.findMatchHighlight": "#6e6a8633", + "minimap.selectionHighlight": "#6e6a8633", + "minimap.warningHighlight": "#f6c17780", + "minimapGutter.addedBackground": "#9ccfd8", + "minimapGutter.deletedBackground": "#eb6f92", + "minimapGutter.modifiedBackground": "#ebbcba", + "minimapSlider.activeBackground": "#6e6a8666", + "minimapSlider.background": "#6e6a8633", + "minimapSlider.hoverBackground": "#6e6a8633", + "notebook.cellBorderColor": "#9ccfd880", + "notebook.cellEditorBackground": "#1f1d2e", + "notebook.cellHoverBackground": "#26233a80", + "notebook.focusedCellBackground": "#6e6a861a", + "notebook.focusedCellBorder": "#9ccfd8", + "notebook.outputContainerBackgroundColor": "#6e6a861a", + "notificationCenter.border": "#6e6a8633", + "notificationCenterHeader.background": "#1f1d2e", + "notificationCenterHeader.foreground": "#908caa", + "notificationLink.foreground": "#c4a7e7", + "notifications.background": "#1f1d2e", + "notifications.border": "#6e6a8633", + "notifications.foreground": "#e0def4", + "notificationsErrorIcon.foreground": "#eb6f92", + "notificationsInfoIcon.foreground": "#9ccfd8", + "notificationsWarningIcon.foreground": "#f6c177", + "notificationToast.border": "#6e6a8633", + "panel.background": "#1f1d2e", + "panel.border": "#0000", + "panel.dropBorder": "#26233a", + "panelInput.border": "#1f1d2e", + "panelSection.dropBackground": "#6e6a8633", + "panelSectionHeader.background": "#1f1d2e", + "panelSectionHeader.foreground": "#e0def4", + "panelTitle.activeBorder": "#6e6a8666", + "panelTitle.activeForeground": "#e0def4", + "panelTitle.inactiveForeground": "#908caa", + "peekView.border": "#26233a", + "peekViewEditor.background": "#1f1d2e", + "peekViewEditor.matchHighlightBackground": "#6e6a8666", + "peekViewResult.background": "#1f1d2e", + "peekViewResult.fileForeground": "#908caa", + "peekViewResult.lineForeground": "#908caa", + "peekViewResult.matchHighlightBackground": "#6e6a8666", + "peekViewResult.selectionBackground": "#6e6a8633", + "peekViewResult.selectionForeground": "#e0def4", + "peekViewTitle.background": "#26233a", + "peekViewTitleDescription.foreground": "#908caa", + "pickerGroup.border": "#6e6a8666", + "pickerGroup.foreground": "#c4a7e7", + "ports.iconRunningProcessForeground": "#ebbcba", + "problemsErrorIcon.foreground": "#eb6f92", + "problemsInfoIcon.foreground": "#9ccfd8", + "problemsWarningIcon.foreground": "#f6c177", + "progressBar.background": "#ebbcba", + "quickInput.background": "#1f1d2e", + "quickInput.foreground": "#908caa", + "quickInputList.focusBackground": "#6e6a8633", + "quickInputList.focusForeground": "#e0def4", + "quickInputList.focusIconForeground": "#e0def4", + "scrollbar.shadow": "#1f1d2e4d", + "scrollbarSlider.activeBackground": "#31748f80", + "scrollbarSlider.background": "#6e6a8633", + "scrollbarSlider.hoverBackground": "#6e6a8666", + "searchEditor.findMatchBackground": "#6e6a8633", + "selection.background": "#6e6a8666", + "settings.focusedRowBackground": "#1f1d2e", + "settings.headerForeground": "#e0def4", + "settings.modifiedItemIndicator": "#ebbcba", + "settings.focusedRowBorder": "#6e6a8633", + "settings.rowHoverBackground": "#1f1d2e", + "sideBar.background": "#191724", + "sideBar.dropBackground": "#1f1d2e", + "sideBar.foreground": "#908caa", + "sideBarSectionHeader.background": "#0000", + "sideBarSectionHeader.border": "#6e6a8633", + "statusBar.background": "#191724", + "statusBar.debuggingBackground": "#c4a7e7", + "statusBar.debuggingForeground": "#191724", + "statusBar.foreground": "#908caa", + "statusBar.noFolderBackground": "#191724", + "statusBar.noFolderForeground": "#908caa", + "statusBarItem.activeBackground": "#6e6a8666", + "statusBarItem.hoverBackground": "#6e6a8633", + "statusBarItem.prominentBackground": "#26233a", + "statusBarItem.prominentForeground": "#e0def4", + "statusBarItem.prominentHoverBackground": "#6e6a8633", + "statusBarItem.remoteBackground": "#191724", + "statusBarItem.remoteForeground": "#f6c177", + "statusBarItem.errorBackground": "#191724", + "statusBarItem.errorForeground": "#eb6f92", + "symbolIcon.arrayForeground": "#908caa", + "symbolIcon.classForeground": "#908caa", + "symbolIcon.colorForeground": "#908caa", + "symbolIcon.constantForeground": "#908caa", + "symbolIcon.constructorForeground": "#908caa", + "symbolIcon.enumeratorForeground": "#908caa", + "symbolIcon.enumeratorMemberForeground": "#908caa", + "symbolIcon.eventForeground": "#908caa", + "symbolIcon.fieldForeground": "#908caa", + "symbolIcon.fileForeground": "#908caa", + "symbolIcon.folderForeground": "#908caa", + "symbolIcon.functionForeground": "#908caa", + "symbolIcon.interfaceForeground": "#908caa", + "symbolIcon.keyForeground": "#908caa", + "symbolIcon.keywordForeground": "#908caa", + "symbolIcon.methodForeground": "#908caa", + "symbolIcon.moduleForeground": "#908caa", + "symbolIcon.namespaceForeground": "#908caa", + "symbolIcon.nullForeground": "#908caa", + "symbolIcon.numberForeground": "#908caa", + "symbolIcon.objectForeground": "#908caa", + "symbolIcon.operatorForeground": "#908caa", + "symbolIcon.packageForeground": "#908caa", + "symbolIcon.propertyForeground": "#908caa", + "symbolIcon.referenceForeground": "#908caa", + "symbolIcon.snippetForeground": "#908caa", + "symbolIcon.stringForeground": "#908caa", + "symbolIcon.structForeground": "#908caa", + "symbolIcon.textForeground": "#908caa", + "symbolIcon.typeParameterForeground": "#908caa", + "symbolIcon.unitForeground": "#908caa", + "symbolIcon.variableForeground": "#908caa", + "tab.activeBackground": "#6e6a861a", + "tab.activeForeground": "#e0def4", + "tab.activeModifiedBorder": "#9ccfd8", + "tab.border": "#0000", + "tab.hoverBackground": "#6e6a8633", + "tab.inactiveBackground": "#0000", + "tab.inactiveForeground": "#908caa", + "tab.inactiveModifiedBorder": "#9ccfd880", + "tab.lastPinnedBorder": "#6e6a86", + "tab.unfocusedActiveBackground": "#0000", + "tab.unfocusedHoverBackground": "#0000", + "tab.unfocusedInactiveBackground": "#0000", + "tab.unfocusedInactiveModifiedBorder": "#9ccfd880", + "terminal.ansiBlack": "#26233a", + "terminal.ansiBlue": "#9ccfd8", + "terminal.ansiBrightBlack": "#908caa", + "terminal.ansiBrightBlue": "#9ccfd8", + "terminal.ansiBrightCyan": "#ebbcba", + "terminal.ansiBrightGreen": "#31748f", + "terminal.ansiBrightMagenta": "#c4a7e7", + "terminal.ansiBrightRed": "#eb6f92", + "terminal.ansiBrightWhite": "#e0def4", + "terminal.ansiBrightYellow": "#f6c177", + "terminal.ansiCyan": "#ebbcba", + "terminal.ansiGreen": "#31748f", + "terminal.ansiMagenta": "#c4a7e7", + "terminal.ansiRed": "#eb6f92", + "terminal.ansiWhite": "#e0def4", + "terminal.ansiYellow": "#f6c177", + "terminal.dropBackground": "#6e6a8633", + "terminal.foreground": "#e0def4", + "terminal.selectionBackground": "#6e6a8633", + "terminal.tab.activeBorder": "#e0def4", + "terminalCursor.background": "#e0def4", + "terminalCursor.foreground": "#6e6a86", + "textBlockQuote.background": "#1f1d2e", + "textBlockQuote.border": "#6e6a8633", + "textCodeBlock.background": "#1f1d2e", + "textLink.activeForeground": "#c4a7e7e6", + "textLink.foreground": "#c4a7e7", + "textPreformat.foreground": "#f6c177", + "textSeparator.foreground": "#908caa", + "titleBar.activeBackground": "#191724", + "titleBar.activeForeground": "#908caa", + "titleBar.inactiveBackground": "#1f1d2e", + "titleBar.inactiveForeground": "#908caa", + "toolbar.activeBackground": "#6e6a8666", + "toolbar.hoverBackground": "#6e6a8633", + "tree.indentGuidesStroke": "#908caa", + "walkThrough.embeddedEditorBackground": "#191724", + "welcomePage.background": "#191724", + "welcomePage.buttonBackground": "#1f1d2e", + "welcomePage.buttonHoverBackground": "#26233a", + "widget.shadow": "#1f1d2e4d", + "window.activeBorder": "#1f1d2e", + "window.inactiveBorder": "#1f1d2e" + }, + "tokenColors": [ + { + "scope": ["comment"], + "settings": { + "foreground": "#6e6a86", + "fontStyle": "italic" + } + }, + { + "scope": ["constant"], + "settings": { + "foreground": "#31748f" + } + }, + { + "scope": ["constant.numeric", "constant.language"], + "settings": { + "foreground": "#ebbcba" + } + }, + { + "scope": ["entity.name"], + "settings": { + "foreground": "#ebbcba" + } + }, + { + "scope": [ + "entity.name.section", + "entity.name.tag", + "entity.name.namespace", + "entity.name.type" + ], + "settings": { + "foreground": "#9ccfd8" + } + }, + { + "scope": ["entity.other.attribute-name", "entity.other.inherited-class"], + "settings": { + "foreground": "#c4a7e7", + "fontStyle": "italic" + } + }, + { + "scope": ["invalid"], + "settings": { + "foreground": "#eb6f92" + } + }, + { + "scope": ["invalid.deprecated"], + "settings": { + "foreground": "#908caa" + } + }, + { + "scope": ["keyword"], + "settings": { + "foreground": "#31748f" + } + }, + { + "scope": ["markup.inserted.diff"], + "settings": { + "foreground": "#9ccfd8" + } + }, + { + "scope": ["markup.deleted.diff"], + "settings": { + "foreground": "#eb6f92" + } + }, + { + "scope": "markup.heading", + "settings": { + "fontStyle": "bold" + } + }, + { + "scope": "markup.bold.markdown", + "settings": { + "fontStyle": "bold" + } + }, + { + "scope": "markup.italic.markdown", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": ["meta.diff.range"], + "settings": { + "foreground": "#c4a7e7" + } + }, + { + "scope": ["meta.tag", "meta.brace"], + "settings": { + "foreground": "#e0def4" + } + }, + { + "scope": ["meta.import", "meta.export"], + "settings": { + "foreground": "#31748f" + } + }, + { + "scope": "meta.directive.vue", + "settings": { + "foreground": "#c4a7e7", + "fontStyle": "italic" + } + }, + { + "scope": "meta.property-name.css", + "settings": { + "foreground": "#9ccfd8" + } + }, + { + "scope": "meta.property-value.css", + "settings": { + "foreground": "#f6c177" + } + }, + { + "scope": "meta.tag.other.html", + "settings": { + "foreground": "#908caa" + } + }, + { + "scope": ["punctuation"], + "settings": { + "foreground": "#908caa" + } + }, + { + "scope": ["punctuation.accessor"], + "settings": { + "foreground": "#31748f" + } + }, + { + "scope": ["punctuation.definition.string"], + "settings": { + "foreground": "#f6c177" + } + }, + { + "scope": ["punctuation.definition.tag"], + "settings": { + "foreground": "#6e6a86" + } + }, + { + "scope": ["storage.type", "storage.modifier"], + "settings": { + "foreground": "#31748f" + } + }, + { + "scope": ["string"], + "settings": { + "foreground": "#f6c177" + } + }, + { + "scope": ["support"], + "settings": { + "foreground": "#9ccfd8" + } + }, + { + "scope": ["support.constant"], + "settings": { + "foreground": "#f6c177" + } + }, + { + "scope": ["support.function"], + "settings": { + "foreground": "#eb6f92", + "fontStyle": "italic" + } + }, + { + "scope": ["variable"], + "settings": { + "foreground": "#ebbcba", + "fontStyle": "italic" + } + }, + { + "scope": ["variable.other", "variable.language", "variable.function", "variable.argument"], + "settings": { + "foreground": "#e0def4" + } + }, + { + "scope": ["variable.parameter"], + "settings": { + "foreground": "#c4a7e7" + } + } + ] +} diff --git a/docs/shiki/themes/slack-dark.json b/docs/shiki/themes/slack-dark.json new file mode 100644 index 00000000..26790029 --- /dev/null +++ b/docs/shiki/themes/slack-dark.json @@ -0,0 +1,564 @@ +{ + "name": "slack-dark", + "type": "dark", + "colors": { + "activityBarBadge.background": "#1D978D", + "editor.background": "#222222", + "editor.foreground": "#E6E6E6", + "editor.inactiveSelectionBackground": "#3a3d41", + "editor.selectionHighlightBackground": "#add6ff26", + "editorIndentGuide.activeBackground": "#707070", + "editorIndentGuide.background": "#404040", + "input.placeholderForeground": "#7A7A7A", + "list.dropBackground": "#383b3d", + "list.activeSelectionBackground": "#222222", + "list.focusBackground": "#0077B5", + "menu.background": "#252526", + "menu.foreground": "#E6E6E6", + "settings.numberInputBackground": "#292929", + "settings.textInputBackground": "#292929", + "sideBarTitle.foreground": "#E6E6E6", + "statusBar.background": "#222222", + "statusBar.noFolderBackground": "#141414", + "statusBar.debuggingBackground": "#1D978D", + "list.hoverBackground": "#222222", + "gitDecoration.modifiedResourceForeground": "#ECB22E", + "gitDecoration.deletedResourceForeground": "#FFF", + "gitDecoration.untrackedResourceForeground": "#ECB22E", + "gitDecoration.ignoredResourceForeground": "#877583", + "gitDecoration.addedResourceForeground": "#ECB22E", + "gitDecoration.conflictingResourceForeground": "#FFF", + "editor.lineHighlightBorder": "#141414", + "editor.lineHighlightBackground": "#141414", + "editorSuggestWidget.selectedBackground": "#0077B5", + "sideBarSectionHeader.background": "#222222", + "activityBar.background": "#222222", + "button.background": "#0077B5", + "button.foreground": "#FFF", + "button.hoverBackground": "#005076", + "extensionButton.prominentBackground": "#0077B5", + "extensionButton.prominentForeground": "#FFF", + "extensionButton.prominentHoverBackground": "#005076", + "debugExceptionWidget.background": "#141414", + "debugExceptionWidget.border": "#FFF", + "debugToolBar.background": "#141414", + "titleBar.activeBackground": "#222222", + "titleBar.activeForeground": "#E6E6E6", + "titleBar.inactiveBackground": "#222222", + "titleBar.inactiveForeground": "#7A7A7A", + "focusBorder": "#0077B5", + "textLink.activeForeground": "#0077B5", + "textLink.foreground": "#0077B5", + "editorLink.activeForeground": "#0077B5", + "notificationLink.foreground": "#0077B5" + }, + "tokenColors": [ + { + "scope": ["meta.embedded", "source.groovy.embedded"], + "settings": { + "foreground": "#D4D4D4" + } + }, + { + "scope": "emphasis", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "strong", + "settings": { + "fontStyle": "bold" + } + }, + { + "scope": "header", + "settings": { + "foreground": "#000080" + } + }, + { + "scope": "comment", + "settings": { + "foreground": "#6A9955" + } + }, + { + "scope": "constant.language", + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": ["constant.numeric"], + "settings": { + "foreground": "#b5cea8" + } + }, + { + "scope": "constant.regexp", + "settings": { + "foreground": "#646695" + } + }, + { + "scope": "entity.name.tag", + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": "entity.name.tag.css", + "settings": { + "foreground": "#d7ba7d" + } + }, + { + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#9cdcfe" + } + }, + { + "scope": [ + "entity.other.attribute-name.class.css", + "entity.other.attribute-name.class.mixin.css", + "entity.other.attribute-name.id.css", + "entity.other.attribute-name.parent-selector.css", + "entity.other.attribute-name.pseudo-class.css", + "entity.other.attribute-name.pseudo-element.css", + "source.css.less entity.other.attribute-name.id", + "entity.other.attribute-name.attribute.scss", + "entity.other.attribute-name.scss" + ], + "settings": { + "foreground": "#d7ba7d" + } + }, + { + "scope": "invalid", + "settings": { + "foreground": "#f44747" + } + }, + { + "scope": "markup.underline", + "settings": { + "fontStyle": "underline" + } + }, + { + "scope": "markup.bold", + "settings": { + "fontStyle": "bold", + "foreground": "#569cd6" + } + }, + { + "scope": "markup.heading", + "settings": { + "fontStyle": "bold", + "foreground": "#569cd6" + } + }, + { + "scope": "markup.italic", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "markup.inserted", + "settings": { + "foreground": "#b5cea8" + } + }, + { + "scope": "markup.deleted", + "settings": { + "foreground": "#ce9178" + } + }, + { + "scope": "markup.changed", + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": "punctuation.definition.quote.begin.markdown", + "settings": { + "foreground": "#6A9955" + } + }, + { + "scope": "punctuation.definition.list.begin.markdown", + "settings": { + "foreground": "#6796e6" + } + }, + { + "scope": "markup.inline.raw", + "settings": { + "foreground": "#ce9178" + } + }, + { + "name": "brackets of XML/HTML tags", + "scope": "punctuation.definition.tag", + "settings": { + "foreground": "#808080" + } + }, + { + "scope": "meta.preprocessor", + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": "meta.preprocessor.string", + "settings": { + "foreground": "#ce9178" + } + }, + { + "scope": "meta.preprocessor.numeric", + "settings": { + "foreground": "#b5cea8" + } + }, + { + "scope": "meta.structure.dictionary.key.python", + "settings": { + "foreground": "#9cdcfe" + } + }, + { + "scope": "meta.diff.header", + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": "storage", + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": "storage.type", + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": "storage.modifier", + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": "string", + "settings": { + "foreground": "#ce9178" + } + }, + { + "scope": "string.tag", + "settings": { + "foreground": "#ce9178" + } + }, + { + "scope": "string.value", + "settings": { + "foreground": "#ce9178" + } + }, + { + "scope": "string.regexp", + "settings": { + "foreground": "#d16969" + } + }, + { + "name": "String interpolation", + "scope": [ + "punctuation.definition.template-expression.begin", + "punctuation.definition.template-expression.end", + "punctuation.section.embedded" + ], + "settings": { + "foreground": "#569cd6" + } + }, + { + "name": "Reset JavaScript string interpolation expression", + "scope": ["meta.template.expression"], + "settings": { + "foreground": "#d4d4d4" + } + }, + { + "scope": [ + "support.type.vendored.property-name", + "support.type.property-name", + "variable.css", + "variable.scss", + "variable.other.less", + "source.coffee.embedded" + ], + "settings": { + "foreground": "#9cdcfe" + } + }, + { + "scope": "keyword", + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": "keyword.control", + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": "keyword.operator", + "settings": { + "foreground": "#d4d4d4" + } + }, + { + "scope": [ + "keyword.operator.new", + "keyword.operator.expression", + "keyword.operator.cast", + "keyword.operator.sizeof", + "keyword.operator.instanceof", + "keyword.operator.logical.python" + ], + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": "keyword.other.unit", + "settings": { + "foreground": "#b5cea8" + } + }, + { + "scope": ["punctuation.section.embedded.begin.php", "punctuation.section.embedded.end.php"], + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": "support.function.git-rebase", + "settings": { + "foreground": "#9cdcfe" + } + }, + { + "scope": "constant.sha.git-rebase", + "settings": { + "foreground": "#b5cea8" + } + }, + { + "name": "coloring of the Java import and package identifiers", + "scope": [ + "storage.modifier.import.java", + "variable.language.wildcard.java", + "storage.modifier.package.java" + ], + "settings": { + "foreground": "#d4d4d4" + } + }, + { + "name": "this.self", + "scope": "variable.language", + "settings": { + "foreground": "#569cd6" + } + }, + { + "name": "Function declarations", + "scope": ["entity.name.function", "support.function", "support.constant.handlebars"], + "settings": { + "foreground": "#DCDCAA" + } + }, + { + "name": "Types declaration and references", + "scope": [ + "meta.return-type", + "support.class", + "support.type", + "entity.name.type", + "entity.name.class", + "storage.type.numeric.go", + "storage.type.byte.go", + "storage.type.boolean.go", + "storage.type.string.go", + "storage.type.uintptr.go", + "storage.type.error.go", + "storage.type.rune.go", + "storage.type.cs", + "storage.type.generic.cs", + "storage.type.modifier.cs", + "storage.type.variable.cs", + "storage.type.annotation.java", + "storage.type.generic.java", + "storage.type.java", + "storage.type.object.array.java", + "storage.type.primitive.array.java", + "storage.type.primitive.java", + "storage.type.token.java", + "storage.type.groovy", + "storage.type.annotation.groovy", + "storage.type.parameters.groovy", + "storage.type.generic.groovy", + "storage.type.object.array.groovy", + "storage.type.primitive.array.groovy", + "storage.type.primitive.groovy" + ], + "settings": { + "foreground": "#4EC9B0" + } + }, + { + "name": "Types declaration and references, TS grammar specific", + "scope": [ + "meta.type.cast.expr", + "meta.type.new.expr", + "support.constant.math", + "support.constant.dom", + "support.constant.json", + "entity.other.inherited-class" + ], + "settings": { + "foreground": "#4EC9B0" + } + }, + { + "name": "Control flow keywords", + "scope": "keyword.control", + "settings": { + "foreground": "#C586C0" + } + }, + { + "name": "Variable and parameter name", + "scope": [ + "variable", + "meta.definition.variable.name", + "support.variable", + "entity.name.variable" + ], + "settings": { + "foreground": "#9CDCFE" + } + }, + { + "name": "Object keys, TS grammar specific", + "scope": ["meta.object-literal.key"], + "settings": { + "foreground": "#9CDCFE" + } + }, + { + "name": "CSS property value", + "scope": [ + "support.constant.property-value", + "support.constant.font-name", + "support.constant.media-type", + "support.constant.media", + "constant.other.color.rgb-value", + "constant.other.rgb-value", + "support.constant.color" + ], + "settings": { + "foreground": "#CE9178" + } + }, + { + "name": "Regular expression groups", + "scope": [ + "punctuation.definition.group.regexp", + "punctuation.definition.group.assertion.regexp", + "punctuation.definition.character-class.regexp", + "punctuation.character.set.begin.regexp", + "punctuation.character.set.end.regexp", + "keyword.operator.negation.regexp", + "support.other.parenthesis.regexp" + ], + "settings": { + "foreground": "#CE9178" + } + }, + { + "scope": [ + "constant.character.character-class.regexp", + "constant.other.character-class.set.regexp", + "constant.other.character-class.regexp", + "constant.character.set.regexp" + ], + "settings": { + "foreground": "#d16969" + } + }, + { + "scope": ["keyword.operator.or.regexp", "keyword.control.anchor.regexp"], + "settings": { + "foreground": "#DCDCAA" + } + }, + { + "scope": "keyword.operator.quantifier.regexp", + "settings": { + "foreground": "#d7ba7d" + } + }, + { + "scope": "constant.character", + "settings": { + "foreground": "#569cd6" + } + }, + { + "scope": "constant.character.escape", + "settings": { + "foreground": "#d7ba7d" + } + }, + { + "scope": "token.info-token", + "settings": { + "foreground": "#6796e6" + } + }, + { + "scope": "token.warn-token", + "settings": { + "foreground": "#cd9731" + } + }, + { + "scope": "token.error-token", + "settings": { + "foreground": "#f44747" + } + }, + { + "scope": "token.debug-token", + "settings": { + "foreground": "#b267e6" + } + } + ] +} diff --git a/docs/shiki/themes/slack-ochin.json b/docs/shiki/themes/slack-ochin.json new file mode 100644 index 00000000..3a847118 --- /dev/null +++ b/docs/shiki/themes/slack-ochin.json @@ -0,0 +1,475 @@ +{ + "name": "slack-ochin", + "type": "dark", + "colors": { + "foreground": "#616161", + "focusBorder": "#161F26", + "widget.shadow": "#161F2694", + "input.background": "#FFF", + "input.border": "#161F26", + "input.foreground": "#000", + "input.placeholderForeground": "#a0a0a0", + "inputOption.activeBorder": "#3E313C", + "inputValidation.errorBackground": "#F44C5E", + "inputValidation.errorForeground": "#FFF", + "inputValidation.infoBackground": "#6182b8", + "inputValidation.infoForeground": "#FFF", + "inputValidation.warningBackground": "#F6B555", + "inputValidation.warningForeground": "#000", + "list.activeSelectionBackground": "#5899C5", + "list.activeSelectionForeground": "#fff", + "list.hoverBackground": "#d5e1ea", + "list.hoverForeground": "#fff", + "list.focusBackground": "#d5e1ea", + "list.focusForeground": "#fff", + "list.inactiveSelectionBackground": "#5899C5", + "list.inactiveSelectionForeground": "#fff", + "list.highlightForeground": "#2D3E4C", + "list.inactiveFocusBackground": "#161F26", + "list.invalidItemForeground": "#fff", + "button.background": "#475663", + "button.foreground": "#FFF", + "button.hoverBackground": "#161F26", + "scrollbar.shadow": "#ffffff00", + "scrollbarSlider.activeBackground": "#161F267e", + "scrollbarSlider.background": "#161F267e", + "scrollbarSlider.hoverBackground": "#161F267e", + "badge.background": "#8AE773", + "progressBar.background": "#8AE773", + "editor.background": "#FFF", + "editor.foreground": "#000", + "editor.lineHighlightBackground": "#EEEEEE", + "editor.wordHighlightStrongBackground": "#EEEEEE", + "editor.selectionBackground": "#AED4FB", + "editorLineNumber.foreground": "#b9b9b9", + "editorActiveLineNumber.foreground": "#475663", + "editor.findMatchBackground": "#AED4FB", + "editorHint.foreground": "#F9F9F9", + "editorHint.border": "#F9F9F9", + "editor.wordHighlightBackground": "#AED4FB", + "terminal.border": "#2D3E4C", + "terminal.foreground": "#161F26", + "terminal.ansiBlack": "#000000", + "terminal.ansiBlue": "#6182b8", + "terminal.ansiBrightBlack": "#90a4ae", + "terminal.ansiBrightBlue": "#6182b8", + "terminal.ansiBrightCyan": "#39adb5", + "terminal.ansiBrightGreen": "#91b859", + "terminal.ansiBrightMagenta": "#7c4dff", + "terminal.ansiBrightRed": "#e53935", + "terminal.ansiBrightWhite": "#ffffff", + "terminal.ansiBrightYellow": "#ffb62c", + "terminal.ansiCyan": "#39adb5", + "terminal.ansiGreen": "#91b859", + "terminal.ansiMagenta": "#7c4dff", + "terminal.ansiRed": "#e53935", + "terminal.ansiWhite": "#ffffff", + "terminal.ansiYellow": "#ffb62c", + "terminal.selectionBackground": "#0006", + "panelTitle.activeForeground": "#161F26", + "activityBar.background": "#161F26", + "activityBar.foreground": "#FFF", + "activityBar.dropBackground": "#FFF", + "activityBarBadge.background": "#8AE773", + "activityBarBadge.foreground": "#FFF", + "panel.border": "#2D3E4C", + "dropdown.background": "#FFF", + "dropdown.listBackground": "#FFF", + "dropdown.border": "#DCDEDF", + "dropdown.foreground": "#DCDEDF", + "sideBar.background": "#2D3E4C", + "sideBar.foreground": "#DCDEDF", + "sideBarTitle.foreground": "#FFF", + "sideBarSectionHeader.foreground": "#FFF", + "sideBarSectionHeader.background": "#161F26", + "debugToolBar.background": "#161F26", + "tab.border": "#F3F3F3", + "tab.activeBackground": "#FFF", + "tab.inactiveForeground": "#686868", + "tab.inactiveBackground": "#F3F3F3", + "tab.activeForeground": "#000", + "editorGroupHeader.tabsBackground": "#2D3E4C", + "statusBar.foreground": "#FFF", + "statusBar.background": "#5899C5", + "statusBar.debuggingBackground": "#8AE773", + "statusBar.noFolderBackground": "#161F26", + "extensionButton.prominentBackground": "#475663", + "extensionButton.prominentForeground": "#F6F6F6", + "extensionButton.prominentHoverBackground": "#161F26", + "gitDecoration.modifiedResourceForeground": "#ECB22E", + "gitDecoration.deletedResourceForeground": "#FFF", + "gitDecoration.untrackedResourceForeground": "#ECB22E", + "gitDecoration.ignoredResourceForeground": "#877583", + "gitDecoration.addedResourceForeground": "#ECB22E", + "gitDecoration.conflictingResourceForeground": "#FFF", + "notificationCenter.border": "#161F26", + "notificationToast.border": "#161F26", + "notifications.foreground": "#FFF", + "notifications.background": "#161F26", + "notifications.border": "#161F26", + "notificationCenterHeader.foreground": "#FFF", + "notificationLink.foreground": "#FFF", + "titleBar.activeBackground": "#2D3E4C", + "titleBar.activeForeground": "#FFF", + "titleBar.inactiveBackground": "#161F26", + "titleBar.inactiveForeground": "#685C66", + "titleBar.border": "#2D3E4C", + "welcomePage.buttonBackground": "#F3F3F3", + "welcomePage.buttonHoverBackground": "#ECECEC", + "editorWidget.background": "#F9F9F9", + "editorWidget.border": "#dbdbdb", + "editorSuggestWidget.foreground": "#2D3E4C", + "editorSuggestWidget.highlightForeground": "#2D3E4C", + "editorSuggestWidget.selectedBackground": "#b9b9b9", + "editorGroup.emptyBackground": "#2D3E4C", + "editorGroup.focusedEmptyBorder": "#2D3E4C", + "editorPane.background": "#2D3E4C", + "breadcrumb.foreground": "#161F26", + "breadcrumb.focusForeground": "#475663", + "settings.headerForeground": "#161F26", + "settings.dropdownForeground": "#161F26", + "settings.dropdownBorder": "#161F26", + "menu.separatorBackground": "#F9FAFA", + "menu.background": "#161F26", + "menu.foreground": "#F9FAFA", + "textPreformat.foreground": "#161F26", + "editorIndentGuide.background": "#F3F3F3", + "editorIndentGuide.activeBackground": "#dbdbdb", + "debugExceptionWidget.background": "#AED4FB", + "debugExceptionWidget.border": "#161F26", + "editorMarkerNavigation.background": "#F9F9F9", + "editorMarkerNavigationInfo.background": "#6182b8", + "editorMarkerNavigationError.background": "#F44C5E", + "editorMarkerNavigationWarning.background": "#F6B555" + }, + "tokenColors": [ + { + "settings": { + "foreground": "#002339" + } + }, + { + "scope": ["meta.paragraph.markdown", "string.other.link.description.title.markdown"], + "settings": { + "foreground": "#110000" + } + }, + { + "scope": ["entity.name.section.markdown", "punctuation.definition.heading.markdown"], + "settings": { + "foreground": "#034c7c" + } + }, + { + "scope": [ + "punctuation.definition.string.begin.markdown", + "punctuation.definition.string.end.markdown", + "markup.quote.markdown" + ], + "settings": { + "foreground": "#00AC8F" + } + }, + { + "scope": ["markup.quote.markdown"], + "settings": { + "fontStyle": "italic", + "foreground": "#003494" + } + }, + { + "scope": ["markup.bold.markdown", "punctuation.definition.bold.markdown"], + "settings": { + "fontStyle": "bold", + "foreground": "#4e76b5" + } + }, + { + "scope": ["markup.italic.markdown", "punctuation.definition.italic.markdown"], + "settings": { + "fontStyle": "italic", + "foreground": "#C792EA" + } + }, + { + "scope": ["markup.inline.raw.string.markdown", "markup.fenced_code.block.markdown"], + "settings": { + "fontStyle": "italic", + "foreground": "#0460b1" + } + }, + { + "scope": ["punctuation.definition.metadata.markdown"], + "settings": { + "foreground": "#00AC8F" + } + }, + { + "scope": ["markup.underline.link.image.markdown", "markup.underline.link.markdown"], + "settings": { + "foreground": "#924205" + } + }, + { + "name": "Comment", + "scope": "comment", + "settings": { + "fontStyle": "italic", + "foreground": "#357b42" + } + }, + { + "name": "String", + "scope": "string", + "settings": { + "foreground": "#a44185" + } + }, + { + "name": "Number", + "scope": "constant.numeric", + "settings": { + "foreground": "#174781" + } + }, + { + "name": "Constant", + "scope": "constant", + "settings": { + "foreground": "#174781" + } + }, + { + "name": "Built-in constant", + "scope": "language.method", + "settings": { + "foreground": "#174781" + } + }, + { + "name": "User-defined constant", + "scope": ["constant.character", "constant.other"], + "settings": { + "foreground": "#174781" + } + }, + { + "name": "Variable", + "scope": "variable", + "settings": { + "fontStyle": "", + "foreground": "#2f86d2" + } + }, + { + "name": "Variable", + "scope": "variable.language.this", + "settings": { + "fontStyle": "", + "foreground": "#000000" + } + }, + { + "name": "Keyword", + "scope": "keyword", + "settings": { + "fontStyle": "", + "foreground": "#7b30d0" + } + }, + { + "name": "Storage", + "scope": "storage", + "settings": { + "fontStyle": "", + "foreground": "#da5221" + } + }, + { + "name": "Storage type", + "scope": "storage.type", + "settings": { + "foreground": "#0991b6", + "fontStyle": "" + } + }, + { + "name": "Class name", + "scope": "entity.name.class", + "settings": { + "foreground": "#1172c7" + } + }, + { + "name": "Inherited class", + "scope": "entity.other.inherited-class", + "settings": { + "fontStyle": "", + "foreground": "#b02767" + } + }, + { + "name": "Function name", + "scope": "entity.name.function", + "settings": { + "fontStyle": "", + "foreground": "#7eb233" + } + }, + { + "name": "Function argument", + "scope": "variable.parameter", + "settings": { + "foreground": "#b1108e", + "fontStyle": "" + } + }, + { + "name": "Tag name", + "scope": "entity.name.tag", + "settings": { + "fontStyle": "", + "foreground": "#0444ac" + } + }, + { + "name": "Html Other", + "scope": "text.html.basic", + "settings": { + "fontStyle": "", + "foreground": "#0071ce" + } + }, + { + "name": "Entity Name Type", + "scope": "entity.name.type", + "settings": { + "foreground": "#0444ac" + } + }, + { + "name": "Tag attribute", + "scope": "entity.other.attribute-name", + "settings": { + "fontStyle": "italic", + "foreground": "#df8618" + } + }, + { + "name": "Library function", + "scope": "support.function", + "settings": { + "fontStyle": "", + "foreground": "#1ab394" + } + }, + { + "name": "Library constant", + "scope": "support.constant", + "settings": { + "fontStyle": "", + "foreground": "#174781" + } + }, + { + "name": "Library class/type", + "scope": ["support.type", "support.class"], + "settings": { + "foreground": "#dc3eb7" + } + }, + { + "name": "Library variable", + "scope": "support.other.variable", + "settings": { + "foreground": "#224555" + } + }, + { + "name": "Invalid", + "scope": "invalid", + "settings": { + "fontStyle": " italic bold underline", + "foreground": "#207bb8" + } + }, + { + "name": "Invalid deprecated", + "scope": "invalid.deprecated", + "settings": { + "foreground": "#207bb8", + "fontStyle": " bold italic underline" + } + }, + { + "name": "[JSON] - Support", + "scope": "source.json support", + "settings": { + "foreground": "#6dbdfa" + } + }, + { + "name": "[JSON] - String", + "scope": ["source.json string", "source.json punctuation.definition.string"], + "settings": { + "foreground": "#00820f" + } + }, + { + "name": "Lists", + "scope": "markup.list", + "settings": { + "foreground": "#207bb8" + } + }, + { + "name": "Headings", + "scope": ["markup.heading punctuation.definition.heading", "entity.name.section"], + "settings": { + "fontStyle": "", + "foreground": "#4FB4D8" + } + }, + { + "name": "Support", + "scope": [ + "text.html.markdown meta.paragraph meta.link.inline", + "text.html.markdown meta.paragraph meta.link.inline punctuation.definition.string.begin.markdown", + "text.html.markdown meta.paragraph meta.link.inline punctuation.definition.string.end.markdown" + ], + "settings": { + "foreground": "#87429A" + } + }, + { + "name": "Quotes", + "scope": "markup.quote", + "settings": { + "foreground": "#87429A" + } + }, + { + "name": "Bold", + "scope": "markup.bold", + "settings": { + "fontStyle": "bold", + "foreground": "#08134A" + } + }, + { + "name": "Italic", + "scope": ["markup.italic", "punctuation.definition.italic"], + "settings": { + "fontStyle": "italic", + "foreground": "#174781" + } + }, + { + "name": "Link Url", + "scope": "meta.link", + "settings": { + "foreground": "#87429A" + } + } + ] +} diff --git a/docs/shiki/themes/solarized-dark.json b/docs/shiki/themes/solarized-dark.json new file mode 100644 index 00000000..646d3f8f --- /dev/null +++ b/docs/shiki/themes/solarized-dark.json @@ -0,0 +1,396 @@ +{ + "name": "solarized-dark", + "tokenColors": [ + { + "settings": { + "foreground": "#839496" + } + }, + { + "scope": [ + "meta.embedded", + "source.groovy.embedded", + "string meta.image.inline.markdown", + "variable.legacy.builtin.python" + ], + "settings": { + "foreground": "#839496" + } + }, + { + "name": "Comment", + "scope": "comment", + "settings": { + "fontStyle": "italic", + "foreground": "#586E75" + } + }, + { + "name": "String", + "scope": "string", + "settings": { + "foreground": "#2AA198" + } + }, + { + "name": "Regexp", + "scope": "string.regexp", + "settings": { + "foreground": "#DC322F" + } + }, + { + "name": "Number", + "scope": "constant.numeric", + "settings": { + "foreground": "#D33682" + } + }, + { + "name": "Variable", + "scope": ["variable.language", "variable.other"], + "settings": { + "foreground": "#268BD2" + } + }, + { + "name": "Keyword", + "scope": "keyword", + "settings": { + "foreground": "#859900" + } + }, + { + "name": "Storage", + "scope": "storage", + "settings": { + "fontStyle": "bold", + "foreground": "#93A1A1" + } + }, + { + "name": "Class name", + "scope": [ + "entity.name.class", + "entity.name.type", + "entity.name.namespace", + "entity.name.scope-resolution" + ], + "settings": { + "fontStyle": "", + "foreground": "#CB4B16" + } + }, + { + "name": "Function name", + "scope": "entity.name.function", + "settings": { + "foreground": "#268BD2" + } + }, + { + "name": "Variable start", + "scope": "punctuation.definition.variable", + "settings": { + "foreground": "#859900" + } + }, + { + "name": "Embedded code markers", + "scope": ["punctuation.section.embedded.begin", "punctuation.section.embedded.end"], + "settings": { + "foreground": "#DC322F" + } + }, + { + "name": "Built-in constant", + "scope": ["constant.language", "meta.preprocessor"], + "settings": { + "foreground": "#B58900" + } + }, + { + "name": "Support.construct", + "scope": ["support.function.construct", "keyword.other.new"], + "settings": { + "foreground": "#CB4B16" + } + }, + { + "name": "User-defined constant", + "scope": ["constant.character", "constant.other"], + "settings": { + "foreground": "#CB4B16" + } + }, + { + "name": "Inherited class", + "scope": "entity.other.inherited-class", + "settings": { + "foreground": "#6C71C4" + } + }, + { + "name": "Function argument", + "scope": "variable.parameter", + "settings": {} + }, + { + "name": "Tag name", + "scope": "entity.name.tag", + "settings": { + "foreground": "#268BD2" + } + }, + { + "name": "Tag start/end", + "scope": "punctuation.definition.tag", + "settings": { + "foreground": "#586E75" + } + }, + { + "name": "Tag attribute", + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#93A1A1" + } + }, + { + "name": "Library function", + "scope": "support.function", + "settings": { + "foreground": "#268BD2" + } + }, + { + "name": "Continuation", + "scope": "punctuation.separator.continuation", + "settings": { + "foreground": "#DC322F" + } + }, + { + "name": "Library constant", + "scope": ["support.constant", "support.variable"], + "settings": {} + }, + { + "name": "Library class/type", + "scope": ["support.type", "support.class"], + "settings": { + "foreground": "#859900" + } + }, + { + "name": "Library Exception", + "scope": "support.type.exception", + "settings": { + "foreground": "#CB4B16" + } + }, + { + "name": "Library variable", + "scope": "support.other.variable", + "settings": {} + }, + { + "name": "Invalid", + "scope": "invalid", + "settings": { + "foreground": "#DC322F" + } + }, + { + "name": "diff: header", + "scope": ["meta.diff", "meta.diff.header"], + "settings": { + "fontStyle": "italic", + "foreground": "#268BD2" + } + }, + { + "name": "diff: deleted", + "scope": "markup.deleted", + "settings": { + "fontStyle": "", + "foreground": "#DC322F" + } + }, + { + "name": "diff: changed", + "scope": "markup.changed", + "settings": { + "fontStyle": "", + "foreground": "#CB4B16" + } + }, + { + "name": "diff: inserted", + "scope": "markup.inserted", + "settings": { + "foreground": "#859900" + } + }, + { + "name": "Markup Quote", + "scope": "markup.quote", + "settings": { + "foreground": "#859900" + } + }, + { + "name": "Markup Lists", + "scope": "markup.list", + "settings": { + "foreground": "#B58900" + } + }, + { + "name": "Markup Styling", + "scope": ["markup.bold", "markup.italic"], + "settings": { + "foreground": "#D33682" + } + }, + { + "name": "Markup: Strong", + "scope": "markup.bold", + "settings": { + "fontStyle": "bold" + } + }, + { + "name": "Markup: Emphasis", + "scope": "markup.italic", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "markup.strikethrough", + "settings": { + "fontStyle": "strikethrough" + } + }, + { + "name": "Markup Inline", + "scope": "markup.inline.raw", + "settings": { + "fontStyle": "", + "foreground": "#2AA198" + } + }, + { + "name": "Markup Headings", + "scope": "markup.heading", + "settings": { + "fontStyle": "bold", + "foreground": "#268BD2" + } + }, + { + "name": "Markup Setext Header", + "scope": "markup.heading.setext", + "settings": { + "fontStyle": "", + "foreground": "#268BD2" + } + } + ], + "colors": { + "focusBorder": "#2AA19899", + "selection.background": "#2AA19899", + "input.background": "#003847", + "input.foreground": "#93A1A1", + "input.placeholderForeground": "#93A1A1AA", + "inputOption.activeBorder": "#2AA19899", + "inputValidation.infoBorder": "#363b5f", + "inputValidation.infoBackground": "#052730", + "inputValidation.warningBackground": "#5d5938", + "inputValidation.warningBorder": "#9d8a5e", + "inputValidation.errorBackground": "#571b26", + "inputValidation.errorBorder": "#a92049", + "errorForeground": "#ffeaea", + "badge.background": "#047aa6", + "progressBar.background": "#047aa6", + "dropdown.background": "#00212B", + "dropdown.border": "#2AA19899", + "button.background": "#2AA19899", + "list.activeSelectionBackground": "#005A6F", + "quickInputList.focusBackground": "#005A6F", + "list.hoverBackground": "#004454AA", + "list.inactiveSelectionBackground": "#00445488", + "list.dropBackground": "#00445488", + "list.highlightForeground": "#1ebcc5", + "editor.background": "#002B36", + "editor.foreground": "#839496", + "editorWidget.background": "#00212B", + "editorCursor.foreground": "#D30102", + "editorWhitespace.foreground": "#93A1A180", + "editor.lineHighlightBackground": "#073642", + "editorLineNumber.activeForeground": "#949494", + "editor.selectionBackground": "#274642", + "minimap.selectionHighlight": "#274642", + "editorIndentGuide.background": "#93A1A180", + "editorIndentGuide.activeBackground": "#C3E1E180", + "editorHoverWidget.background": "#004052", + "editorMarkerNavigationError.background": "#AB395B", + "editorMarkerNavigationWarning.background": "#5B7E7A", + "editor.selectionHighlightBackground": "#005A6FAA", + "editor.wordHighlightBackground": "#004454AA", + "editor.wordHighlightStrongBackground": "#005A6FAA", + "editorBracketHighlight.foreground1": "#cdcdcdff", + "editorBracketHighlight.foreground2": "#b58900ff", + "editorBracketHighlight.foreground3": "#d33682ff", + "peekViewResult.background": "#00212B", + "peekViewEditor.background": "#10192c", + "peekViewTitle.background": "#00212B", + "peekView.border": "#2b2b4a", + "peekViewEditor.matchHighlightBackground": "#7744AA40", + "titleBar.activeBackground": "#002C39", + "editorGroup.border": "#00212B", + "editorGroup.dropBackground": "#2AA19844", + "editorGroupHeader.tabsBackground": "#004052", + "tab.activeForeground": "#d6dbdb", + "tab.activeBackground": "#002B37", + "tab.inactiveForeground": "#93A1A1", + "tab.inactiveBackground": "#004052", + "tab.border": "#003847", + "tab.lastPinnedBorder": "#2AA19844", + "activityBar.background": "#003847", + "panel.border": "#2b2b4a", + "sideBar.background": "#00212B", + "sideBarTitle.foreground": "#93A1A1", + "statusBar.foreground": "#93A1A1", + "statusBar.background": "#00212B", + "statusBar.debuggingBackground": "#00212B", + "statusBar.noFolderBackground": "#00212B", + "statusBarItem.remoteBackground": "#2AA19899", + "ports.iconRunningProcessForeground": "#369432", + "statusBarItem.prominentBackground": "#003847", + "statusBarItem.prominentHoverBackground": "#003847", + "debugToolBar.background": "#00212B", + "debugExceptionWidget.background": "#00212B", + "debugExceptionWidget.border": "#AB395B", + "pickerGroup.foreground": "#2AA19899", + "pickerGroup.border": "#2AA19899", + "terminal.ansiBlack": "#073642", + "terminal.ansiRed": "#dc322f", + "terminal.ansiGreen": "#859900", + "terminal.ansiYellow": "#b58900", + "terminal.ansiBlue": "#268bd2", + "terminal.ansiMagenta": "#d33682", + "terminal.ansiCyan": "#2aa198", + "terminal.ansiWhite": "#eee8d5", + "terminal.ansiBrightBlack": "#002b36", + "terminal.ansiBrightRed": "#cb4b16", + "terminal.ansiBrightGreen": "#586e75", + "terminal.ansiBrightYellow": "#657b83", + "terminal.ansiBrightBlue": "#839496", + "terminal.ansiBrightMagenta": "#6c71c4", + "terminal.ansiBrightCyan": "#93a1a1", + "terminal.ansiBrightWhite": "#fdf6e3" + }, + "semanticHighlighting": true +} diff --git a/docs/shiki/themes/solarized-light.json b/docs/shiki/themes/solarized-light.json new file mode 100644 index 00000000..9283f3e0 --- /dev/null +++ b/docs/shiki/themes/solarized-light.json @@ -0,0 +1,388 @@ +{ + "name": "solarized-light", + "tokenColors": [ + { + "settings": { + "foreground": "#657B83" + } + }, + { + "scope": [ + "meta.embedded", + "source.groovy.embedded", + "string meta.image.inline.markdown", + "variable.legacy.builtin.python" + ], + "settings": { + "foreground": "#657B83" + } + }, + { + "name": "Comment", + "scope": "comment", + "settings": { + "fontStyle": "italic", + "foreground": "#93A1A1" + } + }, + { + "name": "String", + "scope": "string", + "settings": { + "foreground": "#2AA198" + } + }, + { + "name": "Regexp", + "scope": "string.regexp", + "settings": { + "foreground": "#DC322F" + } + }, + { + "name": "Number", + "scope": "constant.numeric", + "settings": { + "foreground": "#D33682" + } + }, + { + "name": "Variable", + "scope": ["variable.language", "variable.other"], + "settings": { + "foreground": "#268BD2" + } + }, + { + "name": "Keyword", + "scope": "keyword", + "settings": { + "foreground": "#859900" + } + }, + { + "name": "Storage", + "scope": "storage", + "settings": { + "fontStyle": "bold", + "foreground": "#586E75" + } + }, + { + "name": "Class name", + "scope": [ + "entity.name.class", + "entity.name.type", + "entity.name.namespace", + "entity.name.scope-resolution" + ], + "settings": { + "fontStyle": "", + "foreground": "#CB4B16" + } + }, + { + "name": "Function name", + "scope": "entity.name.function", + "settings": { + "foreground": "#268BD2" + } + }, + { + "name": "Variable start", + "scope": "punctuation.definition.variable", + "settings": { + "foreground": "#859900" + } + }, + { + "name": "Embedded code markers", + "scope": ["punctuation.section.embedded.begin", "punctuation.section.embedded.end"], + "settings": { + "foreground": "#DC322F" + } + }, + { + "name": "Built-in constant", + "scope": ["constant.language", "meta.preprocessor"], + "settings": { + "foreground": "#B58900" + } + }, + { + "name": "Support.construct", + "scope": ["support.function.construct", "keyword.other.new"], + "settings": { + "foreground": "#CB4B16" + } + }, + { + "name": "User-defined constant", + "scope": ["constant.character", "constant.other"], + "settings": { + "foreground": "#CB4B16" + } + }, + { + "name": "Inherited class", + "scope": "entity.other.inherited-class", + "settings": { + "foreground": "#6C71C4" + } + }, + { + "name": "Function argument", + "scope": "variable.parameter", + "settings": {} + }, + { + "name": "Tag name", + "scope": "entity.name.tag", + "settings": { + "foreground": "#268BD2" + } + }, + { + "name": "Tag start/end", + "scope": "punctuation.definition.tag", + "settings": { + "foreground": "#93A1A1" + } + }, + { + "name": "Tag attribute", + "scope": "entity.other.attribute-name", + "settings": { + "foreground": "#93A1A1" + } + }, + { + "name": "Library function", + "scope": "support.function", + "settings": { + "foreground": "#268BD2" + } + }, + { + "name": "Continuation", + "scope": "punctuation.separator.continuation", + "settings": { + "foreground": "#DC322F" + } + }, + { + "name": "Library constant", + "scope": ["support.constant", "support.variable"], + "settings": {} + }, + { + "name": "Library class/type", + "scope": ["support.type", "support.class"], + "settings": { + "foreground": "#859900" + } + }, + { + "name": "Library Exception", + "scope": "support.type.exception", + "settings": { + "foreground": "#CB4B16" + } + }, + { + "name": "Library variable", + "scope": "support.other.variable", + "settings": {} + }, + { + "name": "Invalid", + "scope": "invalid", + "settings": { + "foreground": "#DC322F" + } + }, + { + "name": "diff: header", + "scope": ["meta.diff", "meta.diff.header"], + "settings": { + "fontStyle": "italic", + "foreground": "#268BD2" + } + }, + { + "name": "diff: deleted", + "scope": "markup.deleted", + "settings": { + "fontStyle": "", + "foreground": "#DC322F" + } + }, + { + "name": "diff: changed", + "scope": "markup.changed", + "settings": { + "fontStyle": "", + "foreground": "#CB4B16" + } + }, + { + "name": "diff: inserted", + "scope": "markup.inserted", + "settings": { + "foreground": "#859900" + } + }, + { + "name": "Markup Quote", + "scope": "markup.quote", + "settings": { + "foreground": "#859900" + } + }, + { + "name": "Markup Lists", + "scope": "markup.list", + "settings": { + "foreground": "#B58900" + } + }, + { + "name": "Markup Styling", + "scope": ["markup.bold", "markup.italic"], + "settings": { + "foreground": "#D33682" + } + }, + { + "name": "Markup: Strong", + "scope": "markup.bold", + "settings": { + "fontStyle": "bold" + } + }, + { + "name": "Markup: Emphasis", + "scope": "markup.italic", + "settings": { + "fontStyle": "italic" + } + }, + { + "scope": "markup.strikethrough", + "settings": { + "fontStyle": "strikethrough" + } + }, + { + "name": "Markup Inline", + "scope": "markup.inline.raw", + "settings": { + "fontStyle": "", + "foreground": "#2AA198" + } + }, + { + "name": "Markup Headings", + "scope": "markup.heading", + "settings": { + "fontStyle": "bold", + "foreground": "#268BD2" + } + }, + { + "name": "Markup Setext Header", + "scope": "markup.heading.setext", + "settings": { + "fontStyle": "", + "foreground": "#268BD2" + } + } + ], + "colors": { + "focusBorder": "#b49471", + "input.background": "#DDD6C1", + "input.foreground": "#586E75", + "input.placeholderForeground": "#586E75AA", + "inputOption.activeBorder": "#D3AF86", + "badge.background": "#B58900AA", + "progressBar.background": "#B58900", + "dropdown.background": "#EEE8D5", + "dropdown.border": "#D3AF86", + "button.background": "#AC9D57", + "selection.background": "#878b9180", + "list.activeSelectionBackground": "#DFCA88", + "list.activeSelectionForeground": "#6C6C6C", + "quickInputList.focusBackground": "#DFCA8866", + "list.hoverBackground": "#DFCA8844", + "list.inactiveSelectionBackground": "#D1CBB8", + "list.highlightForeground": "#B58900", + "editor.background": "#FDF6E3", + "editor.foreground": "#657B83", + "notebook.cellEditorBackground": "#F7F0E0", + "editorWidget.background": "#EEE8D5", + "editorCursor.foreground": "#657B83", + "editorWhitespace.foreground": "#586E7580", + "editor.lineHighlightBackground": "#EEE8D5", + "editor.selectionBackground": "#EEE8D5", + "minimap.selectionHighlight": "#EEE8D5", + "editorIndentGuide.background": "#586E7580", + "editorIndentGuide.activeBackground": "#081E2580", + "editorHoverWidget.background": "#CCC4B0", + "editorLineNumber.activeForeground": "#567983", + "peekViewResult.background": "#EEE8D5", + "peekViewEditor.background": "#FFFBF2", + "peekViewTitle.background": "#EEE8D5", + "peekView.border": "#B58900", + "peekViewEditor.matchHighlightBackground": "#7744AA40", + "titleBar.activeBackground": "#EEE8D5", + "editorGroup.border": "#DDD6C1", + "editorGroup.dropBackground": "#DDD6C1AA", + "editorGroupHeader.tabsBackground": "#D9D2C2", + "tab.border": "#DDD6C1", + "tab.activeBackground": "#FDF6E3", + "tab.inactiveForeground": "#586E75", + "tab.inactiveBackground": "#D3CBB7", + "tab.activeModifiedBorder": "#cb4b16", + "tab.lastPinnedBorder": "#FDF6E3", + "activityBar.background": "#DDD6C1", + "activityBar.foreground": "#584c27", + "activityBarBadge.background": "#B58900", + "panel.border": "#DDD6C1", + "sideBar.background": "#EEE8D5", + "sideBarTitle.foreground": "#586E75", + "statusBar.foreground": "#586E75", + "statusBar.background": "#EEE8D5", + "statusBar.debuggingBackground": "#EEE8D5", + "statusBar.noFolderBackground": "#EEE8D5", + "statusBarItem.remoteBackground": "#AC9D57", + "ports.iconRunningProcessForeground": "#2AA19899", + "statusBarItem.prominentBackground": "#DDD6C1", + "statusBarItem.prominentHoverBackground": "#DDD6C199", + "debugToolBar.background": "#DDD6C1", + "debugExceptionWidget.background": "#DDD6C1", + "debugExceptionWidget.border": "#AB395B", + "pickerGroup.border": "#2AA19899", + "pickerGroup.foreground": "#2AA19899", + "extensionButton.prominentBackground": "#b58900", + "extensionButton.prominentHoverBackground": "#584c27aa", + "terminal.ansiBlack": "#073642", + "terminal.ansiRed": "#dc322f", + "terminal.ansiGreen": "#859900", + "terminal.ansiYellow": "#b58900", + "terminal.ansiBlue": "#268bd2", + "terminal.ansiMagenta": "#d33682", + "terminal.ansiCyan": "#2aa198", + "terminal.ansiWhite": "#eee8d5", + "terminal.ansiBrightBlack": "#002b36", + "terminal.ansiBrightRed": "#cb4b16", + "terminal.ansiBrightGreen": "#586e75", + "terminal.ansiBrightYellow": "#657b83", + "terminal.ansiBrightBlue": "#839496", + "terminal.ansiBrightMagenta": "#6c71c4", + "terminal.ansiBrightCyan": "#93a1a1", + "terminal.ansiBrightWhite": "#fdf6e3", + "terminal.background": "#FDF6E3", + "walkThrough.embeddedEditorBackground": "#00000014" + }, + "semanticHighlighting": true +} diff --git a/docs/shiki/themes/vitesse-dark.json b/docs/shiki/themes/vitesse-dark.json new file mode 100644 index 00000000..0da11152 --- /dev/null +++ b/docs/shiki/themes/vitesse-dark.json @@ -0,0 +1,1095 @@ +{ + "name": "vitesse-dark", + "base": "vs-dark", + "colors": { + "focusBorder": "#00000000", + "foreground": "#dbd7caee", + "descriptionForeground": "#dedcd590", + "errorForeground": "#cb7676", + "textLink.foreground": "#4d9375", + "textLink.activeForeground": "#4d9375", + "textBlockQuote.background": "#121212", + "textBlockQuote.border": "#191919", + "textCodeBlock.background": "#121212", + "textPreformat.foreground": "#d1d5da", + "textSeparator.foreground": "#586069", + "button.background": "#4d9375", + "button.foreground": "#121212", + "button.hoverBackground": "#4d9375", + "checkbox.background": "#181818", + "checkbox.border": "#2f363d", + "dropdown.background": "#121212", + "dropdown.border": "#191919", + "dropdown.foreground": "#dbd7caee", + "dropdown.listBackground": "#181818", + "input.background": "#181818", + "input.border": "#191919", + "input.foreground": "#dbd7caee", + "input.placeholderForeground": "#dedcd590", + "inputOption.activeBackground": "#dedcd550", + "badge.foreground": "#121212", + "badge.background": "#dedcd590", + "progressBar.background": "#4d9375", + "titleBar.activeForeground": "#bfbaaa", + "titleBar.activeBackground": "#121212", + "titleBar.inactiveForeground": "#959da5", + "titleBar.inactiveBackground": "#121212", + "titleBar.border": "#181818", + "activityBar.foreground": "#dbd7caee", + "activityBar.inactiveForeground": "#dedcd550", + "activityBar.background": "#121212", + "activityBarBadge.foreground": "#121212", + "activityBarBadge.background": "#bfbaaa", + "activityBar.activeBorder": "#4d9375", + "activityBar.border": "#191919", + "sideBar.foreground": "#bfbaaa", + "sideBar.background": "#121212", + "sideBar.border": "#191919", + "sideBarTitle.foreground": "#dbd7caee", + "sideBarSectionHeader.foreground": "#dbd7caee", + "sideBarSectionHeader.background": "#121212", + "sideBarSectionHeader.border": "#191919", + "list.hoverForeground": "#dbd7caee", + "list.inactiveSelectionForeground": "#dbd7caee", + "list.activeSelectionForeground": "#dbd7caee", + "list.hoverBackground": "#181818", + "list.inactiveSelectionBackground": "#181818", + "list.activeSelectionBackground": "#181818", + "list.inactiveFocusBackground": "#121212", + "list.focusBackground": "#181818", + "list.highlightForeground": "#4d9375", + "tree.indentGuidesStroke": "#2f363d", + "notificationCenterHeader.foreground": "#959da5", + "notificationCenterHeader.background": "#121212", + "notifications.foreground": "#dbd7caee", + "notifications.background": "#121212", + "notifications.border": "#191919", + "notificationsErrorIcon.foreground": "#cb7676", + "notificationsWarningIcon.foreground": "#d4976c", + "notificationsInfoIcon.foreground": "#6394bf", + "pickerGroup.border": "#191919", + "pickerGroup.foreground": "#dbd7caee", + "quickInput.background": "#121212", + "quickInput.foreground": "#dbd7caee", + "quickInputList.focusBackground": "#181818", + "statusBar.foreground": "#bfbaaa", + "statusBar.background": "#121212", + "statusBar.border": "#191919", + "statusBar.noFolderBackground": "#121212", + "statusBar.debuggingBackground": "#181818", + "statusBar.debuggingForeground": "#bfbaaa", + "statusBarItem.prominentBackground": "#181818", + "editorGroupHeader.tabsBackground": "#121212", + "editorGroupHeader.tabsBorder": "#191919", + "editorGroup.border": "#191919", + "tab.activeForeground": "#dbd7caee", + "tab.inactiveForeground": "#959da5", + "tab.inactiveBackground": "#121212", + "tab.activeBackground": "#121212", + "tab.hoverBackground": "#181818", + "tab.unfocusedHoverBackground": "#121212", + "tab.border": "#191919", + "tab.unfocusedActiveBorderTop": "#191919", + "tab.activeBorder": "#191919", + "tab.unfocusedActiveBorder": "#191919", + "tab.activeBorderTop": "#dedcd590", + "breadcrumb.foreground": "#959da5", + "breadcrumb.focusForeground": "#dbd7caee", + "breadcrumb.background": "#181818", + "breadcrumb.activeSelectionForeground": "#eeeeee15", + "breadcrumbPicker.background": "#121212", + "editor.foreground": "#dbd7caee", + "editor.background": "#121212", + "editorWidget.background": "#121212", + "editor.foldBackground": "#eeeeee10", + "editor.lineHighlightBackground": "#181818", + "editorLineNumber.foreground": "#dedcd550", + "editorLineNumber.activeForeground": "#bfbaaa", + "editorIndentGuide.background": "#ffffff15", + "editorIndentGuide.activeBackground": "#ffffff30", + "editorWhitespace.foreground": "#ffffff15", + "editor.findMatchBackground": "#e6cc7722", + "editor.findMatchHighlightBackground": "#e6cc7744", + "editor.inactiveSelectionBackground": "#eeeeee08", + "editor.selectionBackground": "#eeeeee15", + "editor.selectionHighlightBackground": "#eeeeee08", + "editor.wordHighlightBackground": "#1c6b4805", + "editor.wordHighlightStrongBackground": "#1c6b4810", + "editorBracketMatch.background": "#4d937520", + "diffEditor.insertedTextBackground": "#4d937522", + "diffEditor.removedTextBackground": "#ab595922", + "scrollbar.shadow": "#0000", + "scrollbarSlider.background": "#dedcd510", + "scrollbarSlider.hoverBackground": "#dedcd550", + "scrollbarSlider.activeBackground": "#dedcd550", + "editorOverviewRuler.border": "#111", + "panel.background": "#121212", + "panel.border": "#191919", + "panelTitle.activeBorder": "#4d9375", + "panelTitle.activeForeground": "#dbd7caee", + "panelTitle.inactiveForeground": "#959da5", + "panelInput.border": "#2f363d", + "terminal.foreground": "#dbd7caee", + "terminal.selectionBackground": "#eeeeee15", + "terminal.ansiBrightBlack": "#777777", + "terminal.ansiBrightBlue": "#6394bf", + "terminal.ansiBrightCyan": "#5eaab5", + "terminal.ansiBrightGreen": "#4d9375", + "terminal.ansiBrightMagenta": "#d9739f", + "terminal.ansiBrightRed": "#cb7676", + "terminal.ansiBrightWhite": "#ffffff", + "terminal.ansiBrightYellow": "#e6cc77", + "terminal.ansiBlack": "#393a34", + "terminal.ansiBlue": "#6394bf", + "terminal.ansiCyan": "#5eaab5", + "terminal.ansiGreen": "#4d9375", + "terminal.ansiMagenta": "#d9739f", + "terminal.ansiRed": "#cb7676", + "terminal.ansiWhite": "#dbd7caee", + "terminal.ansiYellow": "#e6cc77", + "gitDecoration.addedResourceForeground": "#4d9375", + "gitDecoration.modifiedResourceForeground": "#6394bf", + "gitDecoration.deletedResourceForeground": "#cb7676", + "gitDecoration.untrackedResourceForeground": "#5eaab5", + "gitDecoration.ignoredResourceForeground": "#dedcd550", + "gitDecoration.conflictingResourceForeground": "#d4976c", + "gitDecoration.submoduleResourceForeground": "#dedcd590", + "editorGutter.modifiedBackground": "#6394bf", + "editorGutter.addedBackground": "#4d9375", + "editorGutter.deletedBackground": "#cb7676", + "editorBracketHighlight.foreground1": "#5eaab5", + "editorBracketHighlight.foreground2": "#4d9375", + "editorBracketHighlight.foreground3": "#d4976c", + "editorBracketHighlight.foreground4": "#d9739f", + "editorBracketHighlight.foreground5": "#e6cc77", + "editorBracketHighlight.foreground6": "#6394bf", + "debugToolBar.background": "#121212", + "editor.stackFrameHighlightBackground": "#a707", + "editor.focusedStackFrameHighlightBackground": "#b808", + "peekViewEditor.matchHighlightBackground": "#ffd33d33", + "peekViewResult.matchHighlightBackground": "#ffd33d33", + "peekViewEditor.background": "#121212", + "peekViewResult.background": "#121212", + "settings.headerForeground": "#dbd7caee", + "settings.modifiedItemIndicator": "#4d9375", + "welcomePage.buttonBackground": "#2f363d", + "welcomePage.buttonHoverBackground": "#444d56", + "problemsErrorIcon.foreground": "#cb7676", + "problemsWarningIcon.foreground": "#d4976c", + "problemsInfoIcon.foreground": "#6394bf", + "editorError.foreground": "#cb7676", + "editorWarning.foreground": "#d4976c", + "editorInfo.foreground": "#6394bf", + "editorHint.foreground": "#4d9375", + "editorGutter.commentRangeForeground": "#dedcd550", + "editorGutter.foldingControlForeground": "#dedcd590", + "editorInlayHint.foreground": "#666666", + "editorInlayHint.background": "#00000000", + "editorStickyScroll.background": "#181818", + "editorStickyScrollHover.background": "#181818", + "menu.separatorBackground": "#191919" + }, + "semanticHighlighting": true, + "semanticTokenColors": { + "namespace": "#db889a", + "property": "#b8a965", + "interface": "#5d99a9", + "type": "#5d99a9", + "class": "#7f8ac7" + }, + "tokenColors": [ + { + "scope": ["comment", "punctuation.definition.comment", "string.comment"], + "settings": { + "foreground": "#758575dd" + } + }, + { + "scope": [ + "delimiter.bracket", + "delimiter", + "invalid.illegal.character-not-allowed-here.html", + "keyword.operator.rest", + "keyword.operator.spread", + "keyword.operator.type.annotation", + "keyword.operator.relational", + "keyword.operator.assignment", + "meta.brace", + "meta.tag.block.any.html", + "meta.tag.inline.any.html", + "meta.tag.structure.input.void.html", + "meta.type.annotation", + "meta.embedded.block.github-actions-expression", + "storage.type.function.arrow", + "keyword.operator.type", + "meta.objectliteral.ts", + "punctuation" + ], + "settings": { + "foreground": "#666666" + } + }, + { + "scope": [ + "constant", + "entity.name.constant", + "variable.language", + "meta.definition.variable" + ], + "settings": { + "foreground": "#c99076" + } + }, + { + "scope": ["entity", "entity.name"], + "settings": { + "foreground": "#80a665" + } + }, + { + "scope": "variable.parameter.function", + "settings": { + "foreground": "#dbd7caee" + } + }, + { + "scope": ["entity.name.tag", "tag.html"], + "settings": { + "foreground": "#4d9375" + } + }, + { + "scope": "entity.name.function", + "settings": { + "foreground": "#80a665" + } + }, + { + "scope": ["keyword", "storage.type.class.jsdoc"], + "settings": { + "foreground": "#4d9375" + } + }, + { + "scope": [ + "storage", + "storage.type", + "support.type.builtin", + "constant.language.undefined", + "constant.language.null" + ], + "settings": { + "foreground": "#cb7676" + } + }, + { + "scope": [ + "text.html.derivative", + "storage.modifier.package", + "storage.modifier.import", + "storage.type.java" + ], + "settings": { + "foreground": "#dbd7caee" + } + }, + { + "scope": ["string", "string punctuation.section.embedded source", "attribute.value"], + "settings": { + "foreground": "#c98a7d" + } + }, + { + "scope": ["punctuation.definition.string", "punctuation.support.type.property-name"], + "settings": { + "foreground": "#c98a7d99" + } + }, + { + "scope": "support", + "settings": { + "foreground": "#b8a965" + } + }, + { + "scope": [ + "property", + "meta.property-name", + "meta.object-literal.key", + "entity.name.tag.yaml", + "attribute.name" + ], + "settings": { + "foreground": "#b8a965" + } + }, + { + "scope": [ + "entity.other.attribute-name", + "invalid.deprecated.entity.other.attribute-name.html" + ], + "settings": { + "foreground": "#bd976a" + } + }, + { + "scope": ["variable", "identifier"], + "settings": { + "foreground": "#bd976a" + } + }, + { + "scope": ["support.type.primitive", "entity.name.type"], + "settings": { + "foreground": "#5DA994" + } + }, + { + "scope": "namespace", + "settings": { + "foreground": "#db889a" + } + }, + { + "scope": ["keyword.operator", "keyword.operator.assignment.compound", "meta.var.expr.ts"], + "settings": { + "foreground": "#cb7676" + } + }, + { + "scope": "invalid.broken", + "settings": { + "fontStyle": "italic", + "foreground": "#fdaeb7" + } + }, + { + "scope": "invalid.deprecated", + "settings": { + "fontStyle": "italic", + "foreground": "#fdaeb7" + } + }, + { + "scope": "invalid.illegal", + "settings": { + "fontStyle": "italic", + "foreground": "#fdaeb7" + } + }, + { + "scope": "invalid.unimplemented", + "settings": { + "fontStyle": "italic", + "foreground": "#fdaeb7" + } + }, + { + "scope": "carriage-return", + "settings": { + "fontStyle": "italic underline", + "background": "#f97583", + "foreground": "#24292e", + "content": "^M" + } + }, + { + "scope": "message.error", + "settings": { + "foreground": "#fdaeb7" + } + }, + { + "scope": "string variable", + "settings": { + "foreground": "#c98a7d" + } + }, + { + "scope": ["source.regexp", "string.regexp"], + "settings": { + "foreground": "#c4704f" + } + }, + { + "scope": [ + "string.regexp.character-class", + "string.regexp constant.character.escape", + "string.regexp source.ruby.embedded", + "string.regexp string.regexp.arbitrary-repitition" + ], + "settings": { + "foreground": "#c98a7d" + } + }, + { + "scope": "string.regexp constant.character.escape", + "settings": { + "foreground": "#e6cc77" + } + }, + { + "scope": ["support.constant"], + "settings": { + "foreground": "#c99076" + } + }, + { + "scope": ["constant.numeric", "number"], + "settings": { + "foreground": "#4C9A91" + } + }, + { + "scope": ["keyword.other.unit"], + "settings": { + "foreground": "#cb7676" + } + }, + { + "scope": ["constant.language.boolean", "constant.language"], + "settings": { + "foreground": "#4d9375" + } + }, + { + "scope": "meta.module-reference", + "settings": { + "foreground": "#4d9375" + } + }, + { + "scope": "punctuation.definition.list.begin.markdown", + "settings": { + "foreground": "#d4976c" + } + }, + { + "scope": ["markup.heading", "markup.heading entity.name"], + "settings": { + "fontStyle": "bold", + "foreground": "#4d9375" + } + }, + { + "scope": "markup.quote", + "settings": { + "foreground": "#5d99a9" + } + }, + { + "scope": "markup.italic", + "settings": { + "fontStyle": "italic", + "foreground": "#dbd7caee" + } + }, + { + "scope": "markup.bold", + "settings": { + "fontStyle": "bold", + "foreground": "#dbd7caee" + } + }, + { + "scope": "markup.raw", + "settings": { + "foreground": "#4d9375" + } + }, + { + "scope": ["markup.deleted", "meta.diff.header.from-file", "punctuation.definition.deleted"], + "settings": { + "background": "#86181d", + "foreground": "#fdaeb7" + } + }, + { + "scope": ["markup.inserted", "meta.diff.header.to-file", "punctuation.definition.inserted"], + "settings": { + "background": "#144620", + "foreground": "#85e89d" + } + }, + { + "scope": ["markup.changed", "punctuation.definition.changed"], + "settings": { + "background": "#c24e00", + "foreground": "#ffab70" + } + }, + { + "scope": ["markup.ignored", "markup.untracked"], + "settings": { + "foreground": "#2f363d", + "background": "#79b8ff" + } + }, + { + "scope": "meta.diff.range", + "settings": { + "foreground": "#b392f0", + "fontStyle": "bold" + } + }, + { + "scope": "meta.diff.header", + "settings": { + "foreground": "#79b8ff" + } + }, + { + "scope": "meta.separator", + "settings": { + "fontStyle": "bold", + "foreground": "#79b8ff" + } + }, + { + "scope": "meta.output", + "settings": { + "foreground": "#79b8ff" + } + }, + { + "scope": [ + "brackethighlighter.tag", + "brackethighlighter.curly", + "brackethighlighter.round", + "brackethighlighter.square", + "brackethighlighter.angle", + "brackethighlighter.quote" + ], + "settings": { + "foreground": "#d1d5da" + } + }, + { + "scope": "brackethighlighter.unmatched", + "settings": { + "foreground": "#fdaeb7" + } + }, + { + "scope": [ + "constant.other.reference.link", + "string.other.link", + "punctuation.definition.string.begin.markdown", + "punctuation.definition.string.end.markdown" + ], + "settings": { + "foreground": "#c98a7d" + } + }, + { + "scope": ["markup.underline.link.markdown", "markup.underline.link.image.markdown"], + "settings": { + "foreground": "#dedcd590", + "fontStyle": "underline" + } + }, + { + "scope": ["type.identifier"], + "settings": { + "foreground": "#7f8ac7" + } + }, + { + "scope": ["entity.other.attribute-name.html.vue"], + "settings": { + "foreground": "#80a665" + } + }, + { + "scope": ["invalid.illegal.unrecognized-tag.html"], + "settings": { + "fontStyle": "normal" + } + } + ], + "rules": [ + { + "token": "comment", + "foreground": "758575dd" + }, + { + "token": "punctuation.definition.comment", + "foreground": "758575dd" + }, + { + "token": "string.comment", + "foreground": "758575dd" + }, + { + "token": "delimiter.bracket", + "foreground": "666666" + }, + { + "token": "delimiter", + "foreground": "666666" + }, + { + "token": "invalid.illegal.character-not-allowed-here.html", + "foreground": "666666" + }, + { + "token": "keyword.operator.rest", + "foreground": "666666" + }, + { + "token": "keyword.operator.spread", + "foreground": "666666" + }, + { + "token": "keyword.operator.type.annotation", + "foreground": "666666" + }, + { + "token": "keyword.operator.relational", + "foreground": "666666" + }, + { + "token": "keyword.operator.assignment", + "foreground": "666666" + }, + { + "token": "meta.brace", + "foreground": "666666" + }, + { + "token": "meta.tag.block.any.html", + "foreground": "666666" + }, + { + "token": "meta.tag.inline.any.html", + "foreground": "666666" + }, + { + "token": "meta.tag.structure.input.void.html", + "foreground": "666666" + }, + { + "token": "meta.type.annotation", + "foreground": "666666" + }, + { + "token": "meta.embedded.block.github-actions-expression", + "foreground": "666666" + }, + { + "token": "storage.type.function.arrow", + "foreground": "666666" + }, + { + "token": "keyword.operator.type", + "foreground": "666666" + }, + { + "token": "meta.objectliteral.ts", + "foreground": "666666" + }, + { + "token": "punctuation", + "foreground": "666666" + }, + { + "token": "constant", + "foreground": "c99076" + }, + { + "token": "entity.name.constant", + "foreground": "c99076" + }, + { + "token": "variable.language", + "foreground": "c99076" + }, + { + "token": "meta.definition.variable", + "foreground": "c99076" + }, + { + "token": "entity", + "foreground": "80a665" + }, + { + "token": "entity.name", + "foreground": "80a665" + }, + { + "token": "variable.parameter.function", + "foreground": "dbd7caee" + }, + { + "token": "entity.name.tag", + "foreground": "4d9375" + }, + { + "token": "tag.html", + "foreground": "4d9375" + }, + { + "token": "entity.name.function", + "foreground": "80a665" + }, + { + "token": "keyword", + "foreground": "4d9375" + }, + { + "token": "storage.type.class.jsdoc", + "foreground": "4d9375" + }, + { + "token": "storage", + "foreground": "cb7676" + }, + { + "token": "storage.type", + "foreground": "cb7676" + }, + { + "token": "support.type.builtin", + "foreground": "cb7676" + }, + { + "token": "constant.language.undefined", + "foreground": "cb7676" + }, + { + "token": "constant.language.null", + "foreground": "cb7676" + }, + { + "token": "text.html.derivative", + "foreground": "dbd7caee" + }, + { + "token": "storage.modifier.package", + "foreground": "dbd7caee" + }, + { + "token": "storage.modifier.import", + "foreground": "dbd7caee" + }, + { + "token": "storage.type.java", + "foreground": "dbd7caee" + }, + { + "token": "string", + "foreground": "c98a7d" + }, + { + "token": "string punctuation.section.embedded source", + "foreground": "c98a7d" + }, + { + "token": "attribute.value", + "foreground": "c98a7d" + }, + { + "token": "punctuation.definition.string", + "foreground": "c98a7d99" + }, + { + "token": "punctuation.support.type.property-name", + "foreground": "c98a7d99" + }, + { + "token": "support", + "foreground": "b8a965" + }, + { + "token": "property", + "foreground": "b8a965" + }, + { + "token": "meta.property-name", + "foreground": "b8a965" + }, + { + "token": "meta.object-literal.key", + "foreground": "b8a965" + }, + { + "token": "entity.name.tag.yaml", + "foreground": "b8a965" + }, + { + "token": "attribute.name", + "foreground": "b8a965" + }, + { + "token": "entity.other.attribute-name", + "foreground": "bd976a" + }, + { + "token": "invalid.deprecated.entity.other.attribute-name.html", + "foreground": "bd976a" + }, + { + "token": "variable", + "foreground": "bd976a" + }, + { + "token": "identifier", + "foreground": "bd976a" + }, + { + "token": "support.type.primitive", + "foreground": "5DA994" + }, + { + "token": "entity.name.type", + "foreground": "5DA994" + }, + { + "token": "namespace", + "foreground": "db889a" + }, + { + "token": "keyword.operator", + "foreground": "cb7676" + }, + { + "token": "keyword.operator.assignment.compound", + "foreground": "cb7676" + }, + { + "token": "meta.var.expr.ts", + "foreground": "cb7676" + }, + { + "token": "invalid.broken", + "foreground": "fdaeb7" + }, + { + "token": "invalid.deprecated", + "foreground": "fdaeb7" + }, + { + "token": "invalid.illegal", + "foreground": "fdaeb7" + }, + { + "token": "invalid.unimplemented", + "foreground": "fdaeb7" + }, + { + "token": "carriage-return", + "foreground": "24292e" + }, + { + "token": "message.error", + "foreground": "fdaeb7" + }, + { + "token": "string variable", + "foreground": "c98a7d" + }, + { + "token": "source.regexp", + "foreground": "c4704f" + }, + { + "token": "string.regexp", + "foreground": "c4704f" + }, + { + "token": "string.regexp.character-class", + "foreground": "c98a7d" + }, + { + "token": "string.regexp constant.character.escape", + "foreground": "c98a7d" + }, + { + "token": "string.regexp source.ruby.embedded", + "foreground": "c98a7d" + }, + { + "token": "string.regexp string.regexp.arbitrary-repitition", + "foreground": "c98a7d" + }, + { + "token": "string.regexp constant.character.escape", + "foreground": "e6cc77" + }, + { + "token": "support.constant", + "foreground": "c99076" + }, + { + "token": "constant.numeric", + "foreground": "4C9A91" + }, + { + "token": "number", + "foreground": "4C9A91" + }, + { + "token": "keyword.other.unit", + "foreground": "cb7676" + }, + { + "token": "constant.language.boolean", + "foreground": "4d9375" + }, + { + "token": "constant.language", + "foreground": "4d9375" + }, + { + "token": "meta.module-reference", + "foreground": "4d9375" + }, + { + "token": "punctuation.definition.list.begin.markdown", + "foreground": "d4976c" + }, + { + "token": "markup.heading", + "foreground": "4d9375" + }, + { + "token": "markup.heading entity.name", + "foreground": "4d9375" + }, + { + "token": "markup.quote", + "foreground": "5d99a9" + }, + { + "token": "markup.italic", + "foreground": "dbd7caee" + }, + { + "token": "markup.bold", + "foreground": "dbd7caee" + }, + { + "token": "markup.raw", + "foreground": "4d9375" + }, + { + "token": "markup.deleted", + "foreground": "fdaeb7" + }, + { + "token": "meta.diff.header.from-file", + "foreground": "fdaeb7" + }, + { + "token": "punctuation.definition.deleted", + "foreground": "fdaeb7" + }, + { + "token": "markup.inserted", + "foreground": "85e89d" + }, + { + "token": "meta.diff.header.to-file", + "foreground": "85e89d" + }, + { + "token": "punctuation.definition.inserted", + "foreground": "85e89d" + }, + { + "token": "markup.changed", + "foreground": "ffab70" + }, + { + "token": "punctuation.definition.changed", + "foreground": "ffab70" + }, + { + "token": "markup.ignored", + "foreground": "2f363d" + }, + { + "token": "markup.untracked", + "foreground": "2f363d" + }, + { + "token": "meta.diff.range", + "foreground": "b392f0" + }, + { + "token": "meta.diff.header", + "foreground": "79b8ff" + }, + { + "token": "meta.separator", + "foreground": "79b8ff" + }, + { + "token": "meta.output", + "foreground": "79b8ff" + }, + { + "token": "brackethighlighter.tag", + "foreground": "d1d5da" + }, + { + "token": "brackethighlighter.curly", + "foreground": "d1d5da" + }, + { + "token": "brackethighlighter.round", + "foreground": "d1d5da" + }, + { + "token": "brackethighlighter.square", + "foreground": "d1d5da" + }, + { + "token": "brackethighlighter.angle", + "foreground": "d1d5da" + }, + { + "token": "brackethighlighter.quote", + "foreground": "d1d5da" + }, + { + "token": "brackethighlighter.unmatched", + "foreground": "fdaeb7" + }, + { + "token": "constant.other.reference.link", + "foreground": "c98a7d" + }, + { + "token": "string.other.link", + "foreground": "c98a7d" + }, + { + "token": "punctuation.definition.string.begin.markdown", + "foreground": "c98a7d" + }, + { + "token": "punctuation.definition.string.end.markdown", + "foreground": "c98a7d" + }, + { + "token": "markup.underline.link.markdown", + "foreground": "dedcd590" + }, + { + "token": "markup.underline.link.image.markdown", + "foreground": "dedcd590" + }, + { + "token": "type.identifier", + "foreground": "7f8ac7" + }, + { + "token": "entity.other.attribute-name.html.vue", + "foreground": "80a665" + }, + { + "token": "invalid.illegal.unrecognized-tag.html" + } + ] +} diff --git a/docs/shiki/themes/vitesse-light.json b/docs/shiki/themes/vitesse-light.json new file mode 100644 index 00000000..b218707d --- /dev/null +++ b/docs/shiki/themes/vitesse-light.json @@ -0,0 +1,1093 @@ +{ + "name": "vitesse-light", + "base": "vs", + "colors": { + "focusBorder": "#00000000", + "foreground": "#393a34", + "descriptionForeground": "#393a3490", + "errorForeground": "#ab5959", + "textLink.foreground": "#1c6b48", + "textLink.activeForeground": "#1c6b48", + "textBlockQuote.background": "#ffffff", + "textBlockQuote.border": "#f0f0f0", + "textCodeBlock.background": "#ffffff", + "textPreformat.foreground": "#586069", + "textSeparator.foreground": "#d1d5da", + "button.background": "#1c6b48", + "button.foreground": "#ffffff", + "button.hoverBackground": "#1c6b48", + "checkbox.background": "#f7f7f7", + "checkbox.border": "#d1d5da", + "dropdown.background": "#ffffff", + "dropdown.border": "#f0f0f0", + "dropdown.foreground": "#393a34", + "dropdown.listBackground": "#f7f7f7", + "input.background": "#f7f7f7", + "input.border": "#f0f0f0", + "input.foreground": "#393a34", + "input.placeholderForeground": "#393a3490", + "inputOption.activeBackground": "#393a3450", + "badge.foreground": "#ffffff", + "badge.background": "#393a3490", + "progressBar.background": "#1c6b48", + "titleBar.activeForeground": "#4e4f47", + "titleBar.activeBackground": "#ffffff", + "titleBar.inactiveForeground": "#6a737d", + "titleBar.inactiveBackground": "#ffffff", + "titleBar.border": "#f7f7f7", + "activityBar.foreground": "#393a34", + "activityBar.inactiveForeground": "#393a3450", + "activityBar.background": "#ffffff", + "activityBarBadge.foreground": "#ffffff", + "activityBarBadge.background": "#4e4f47", + "activityBar.activeBorder": "#1c6b48", + "activityBar.border": "#f0f0f0", + "sideBar.foreground": "#4e4f47", + "sideBar.background": "#ffffff", + "sideBar.border": "#f0f0f0", + "sideBarTitle.foreground": "#393a34", + "sideBarSectionHeader.foreground": "#393a34", + "sideBarSectionHeader.background": "#ffffff", + "sideBarSectionHeader.border": "#f0f0f0", + "list.hoverForeground": "#393a34", + "list.inactiveSelectionForeground": "#393a34", + "list.activeSelectionForeground": "#393a34", + "list.hoverBackground": "#f7f7f7", + "list.inactiveSelectionBackground": "#f7f7f7", + "list.activeSelectionBackground": "#f7f7f7", + "list.inactiveFocusBackground": "#ffffff", + "list.focusBackground": "#f7f7f7", + "list.highlightForeground": "#1c6b48", + "tree.indentGuidesStroke": "#e1e4e8", + "notificationCenterHeader.foreground": "#6a737d", + "notificationCenterHeader.background": "#ffffff", + "notifications.foreground": "#393a34", + "notifications.background": "#ffffff", + "notifications.border": "#f0f0f0", + "notificationsErrorIcon.foreground": "#ab5959", + "notificationsWarningIcon.foreground": "#a65e2b", + "notificationsInfoIcon.foreground": "#296aa3", + "pickerGroup.border": "#f0f0f0", + "pickerGroup.foreground": "#393a34", + "quickInput.background": "#ffffff", + "quickInput.foreground": "#393a34", + "quickInputList.focusBackground": "#f7f7f7", + "statusBar.foreground": "#4e4f47", + "statusBar.background": "#ffffff", + "statusBar.border": "#f0f0f0", + "statusBar.noFolderBackground": "#ffffff", + "statusBar.debuggingBackground": "#f7f7f7", + "statusBar.debuggingForeground": "#4e4f47", + "statusBarItem.prominentBackground": "#f7f7f7", + "editorGroupHeader.tabsBackground": "#ffffff", + "editorGroupHeader.tabsBorder": "#f0f0f0", + "editorGroup.border": "#f0f0f0", + "tab.activeForeground": "#393a34", + "tab.inactiveForeground": "#6a737d", + "tab.inactiveBackground": "#ffffff", + "tab.activeBackground": "#ffffff", + "tab.hoverBackground": "#f7f7f7", + "tab.unfocusedHoverBackground": "#ffffff", + "tab.border": "#f0f0f0", + "tab.unfocusedActiveBorderTop": "#f0f0f0", + "tab.activeBorder": "#f0f0f0", + "tab.unfocusedActiveBorder": "#f0f0f0", + "tab.activeBorderTop": "#393a3490", + "breadcrumb.foreground": "#6a737d", + "breadcrumb.focusForeground": "#393a34", + "breadcrumb.background": "#f7f7f7", + "breadcrumb.activeSelectionForeground": "#22222215", + "breadcrumbPicker.background": "#ffffff", + "editor.foreground": "#393a34", + "editor.background": "#ffffff", + "editorWidget.background": "#ffffff", + "editor.foldBackground": "#22222210", + "editor.lineHighlightBackground": "#f7f7f7", + "editorLineNumber.foreground": "#393a3450", + "editorLineNumber.activeForeground": "#4e4f47", + "editorIndentGuide.background": "#00000015", + "editorIndentGuide.activeBackground": "#00000030", + "editorWhitespace.foreground": "#00000015", + "editor.findMatchBackground": "#e6cc7744", + "editor.findMatchHighlightBackground": "#e6cc7766", + "editor.inactiveSelectionBackground": "#22222208", + "editor.selectionBackground": "#22222215", + "editor.selectionHighlightBackground": "#22222208", + "editor.wordHighlightBackground": "#1c6b4805", + "editor.wordHighlightStrongBackground": "#1c6b4810", + "editorBracketMatch.background": "#1c6b4820", + "diffEditor.insertedTextBackground": "#1c6b4815", + "diffEditor.removedTextBackground": "#ab595910", + "scrollbar.shadow": "#6a737d33", + "scrollbarSlider.background": "#393a3410", + "scrollbarSlider.hoverBackground": "#393a3450", + "scrollbarSlider.activeBackground": "#393a3450", + "editorOverviewRuler.border": "#fff", + "panel.background": "#ffffff", + "panel.border": "#f0f0f0", + "panelTitle.activeBorder": "#1c6b48", + "panelTitle.activeForeground": "#393a34", + "panelTitle.inactiveForeground": "#6a737d", + "panelInput.border": "#e1e4e8", + "terminal.foreground": "#393a34", + "terminal.selectionBackground": "#22222215", + "terminal.ansiBrightBlack": "#aaaaaa", + "terminal.ansiBrightBlue": "#296aa3", + "terminal.ansiBrightCyan": "#2993a3", + "terminal.ansiBrightGreen": "#1e754f", + "terminal.ansiBrightMagenta": "#a13865", + "terminal.ansiBrightRed": "#ab5959", + "terminal.ansiBrightWhite": "#dddddd", + "terminal.ansiBrightYellow": "#bda437", + "terminal.ansiBlack": "#121212", + "terminal.ansiBlue": "#296aa3", + "terminal.ansiCyan": "#2993a3", + "terminal.ansiGreen": "#1e754f", + "terminal.ansiMagenta": "#a13865", + "terminal.ansiRed": "#ab5959", + "terminal.ansiWhite": "#dbd7caee", + "terminal.ansiYellow": "#bda437", + "gitDecoration.addedResourceForeground": "#1e754f", + "gitDecoration.modifiedResourceForeground": "#296aa3", + "gitDecoration.deletedResourceForeground": "#ab5959", + "gitDecoration.untrackedResourceForeground": "#2993a3", + "gitDecoration.ignoredResourceForeground": "#393a3450", + "gitDecoration.conflictingResourceForeground": "#a65e2b", + "gitDecoration.submoduleResourceForeground": "#393a3490", + "editorGutter.modifiedBackground": "#296aa3", + "editorGutter.addedBackground": "#1e754f", + "editorGutter.deletedBackground": "#ab5959", + "editorBracketHighlight.foreground1": "#2993a3", + "editorBracketHighlight.foreground2": "#1e754f", + "editorBracketHighlight.foreground3": "#a65e2b", + "editorBracketHighlight.foreground4": "#a13865", + "editorBracketHighlight.foreground5": "#bda437", + "editorBracketHighlight.foreground6": "#296aa3", + "debugToolBar.background": "#ffffff", + "editor.stackFrameHighlightBackground": "#fffbdd", + "editor.focusedStackFrameHighlightBackground": "#fff5b1", + "peekViewEditor.background": "#ffffff", + "peekViewResult.background": "#ffffff", + "settings.headerForeground": "#393a34", + "settings.modifiedItemIndicator": "#1c6b48", + "welcomePage.buttonBackground": "#f6f8fa", + "welcomePage.buttonHoverBackground": "#e1e4e8", + "problemsErrorIcon.foreground": "#ab5959", + "problemsWarningIcon.foreground": "#a65e2b", + "problemsInfoIcon.foreground": "#296aa3", + "editorError.foreground": "#ab5959", + "editorWarning.foreground": "#a65e2b", + "editorInfo.foreground": "#296aa3", + "editorHint.foreground": "#1e754f", + "editorGutter.commentRangeForeground": "#393a3450", + "editorGutter.foldingControlForeground": "#393a3490", + "editorInlayHint.foreground": "#999999", + "editorInlayHint.background": "#00000000", + "editorStickyScroll.background": "#f7f7f7", + "editorStickyScrollHover.background": "#f7f7f7", + "menu.separatorBackground": "#f0f0f0" + }, + "semanticHighlighting": true, + "semanticTokenColors": { + "namespace": "#b05a78", + "property": "#998418", + "interface": "#2e808f", + "type": "#2e808f", + "class": "#5a6aa6" + }, + "tokenColors": [ + { + "scope": ["comment", "punctuation.definition.comment", "string.comment"], + "settings": { + "foreground": "#a0ada0" + } + }, + { + "scope": [ + "delimiter.bracket", + "delimiter", + "invalid.illegal.character-not-allowed-here.html", + "keyword.operator.rest", + "keyword.operator.spread", + "keyword.operator.type.annotation", + "keyword.operator.relational", + "keyword.operator.assignment", + "meta.brace", + "meta.tag.block.any.html", + "meta.tag.inline.any.html", + "meta.tag.structure.input.void.html", + "meta.type.annotation", + "meta.embedded.block.github-actions-expression", + "storage.type.function.arrow", + "keyword.operator.type", + "meta.objectliteral.ts", + "punctuation" + ], + "settings": { + "foreground": "#999999" + } + }, + { + "scope": [ + "constant", + "entity.name.constant", + "variable.language", + "meta.definition.variable" + ], + "settings": { + "foreground": "#a65e2b" + } + }, + { + "scope": ["entity", "entity.name"], + "settings": { + "foreground": "#59873a" + } + }, + { + "scope": "variable.parameter.function", + "settings": { + "foreground": "#393a34" + } + }, + { + "scope": ["entity.name.tag", "tag.html"], + "settings": { + "foreground": "#1e754f" + } + }, + { + "scope": "entity.name.function", + "settings": { + "foreground": "#59873a" + } + }, + { + "scope": ["keyword", "storage.type.class.jsdoc"], + "settings": { + "foreground": "#1e754f" + } + }, + { + "scope": [ + "storage", + "storage.type", + "support.type.builtin", + "constant.language.undefined", + "constant.language.null" + ], + "settings": { + "foreground": "#ab5959" + } + }, + { + "scope": [ + "text.html.derivative", + "storage.modifier.package", + "storage.modifier.import", + "storage.type.java" + ], + "settings": { + "foreground": "#393a34" + } + }, + { + "scope": ["string", "string punctuation.section.embedded source", "attribute.value"], + "settings": { + "foreground": "#b56959" + } + }, + { + "scope": ["punctuation.definition.string", "punctuation.support.type.property-name"], + "settings": { + "foreground": "#b5695999" + } + }, + { + "scope": "support", + "settings": { + "foreground": "#998418" + } + }, + { + "scope": [ + "property", + "meta.property-name", + "meta.object-literal.key", + "entity.name.tag.yaml", + "attribute.name" + ], + "settings": { + "foreground": "#998418" + } + }, + { + "scope": [ + "entity.other.attribute-name", + "invalid.deprecated.entity.other.attribute-name.html" + ], + "settings": { + "foreground": "#b07d48" + } + }, + { + "scope": ["variable", "identifier"], + "settings": { + "foreground": "#b07d48" + } + }, + { + "scope": ["support.type.primitive", "entity.name.type"], + "settings": { + "foreground": "#2e8f82" + } + }, + { + "scope": "namespace", + "settings": { + "foreground": "#b05a78" + } + }, + { + "scope": ["keyword.operator", "keyword.operator.assignment.compound", "meta.var.expr.ts"], + "settings": { + "foreground": "#ab5959" + } + }, + { + "scope": "invalid.broken", + "settings": { + "fontStyle": "italic", + "foreground": "#b31d28" + } + }, + { + "scope": "invalid.deprecated", + "settings": { + "fontStyle": "italic", + "foreground": "#b31d28" + } + }, + { + "scope": "invalid.illegal", + "settings": { + "fontStyle": "italic", + "foreground": "#b31d28" + } + }, + { + "scope": "invalid.unimplemented", + "settings": { + "fontStyle": "italic", + "foreground": "#b31d28" + } + }, + { + "scope": "carriage-return", + "settings": { + "fontStyle": "italic underline", + "background": "#d73a49", + "foreground": "#fafbfc", + "content": "^M" + } + }, + { + "scope": "message.error", + "settings": { + "foreground": "#b31d28" + } + }, + { + "scope": "string variable", + "settings": { + "foreground": "#b56959" + } + }, + { + "scope": ["source.regexp", "string.regexp"], + "settings": { + "foreground": "#ab5e3f" + } + }, + { + "scope": [ + "string.regexp.character-class", + "string.regexp constant.character.escape", + "string.regexp source.ruby.embedded", + "string.regexp string.regexp.arbitrary-repitition" + ], + "settings": { + "foreground": "#b56959" + } + }, + { + "scope": "string.regexp constant.character.escape", + "settings": { + "foreground": "#bda437" + } + }, + { + "scope": ["support.constant"], + "settings": { + "foreground": "#a65e2b" + } + }, + { + "scope": ["constant.numeric", "number"], + "settings": { + "foreground": "#2f798a" + } + }, + { + "scope": ["keyword.other.unit"], + "settings": { + "foreground": "#ab5959" + } + }, + { + "scope": ["constant.language.boolean", "constant.language"], + "settings": { + "foreground": "#1e754f" + } + }, + { + "scope": "meta.module-reference", + "settings": { + "foreground": "#1c6b48" + } + }, + { + "scope": "punctuation.definition.list.begin.markdown", + "settings": { + "foreground": "#a65e2b" + } + }, + { + "scope": ["markup.heading", "markup.heading entity.name"], + "settings": { + "fontStyle": "bold", + "foreground": "#1c6b48" + } + }, + { + "scope": "markup.quote", + "settings": { + "foreground": "#2e808f" + } + }, + { + "scope": "markup.italic", + "settings": { + "fontStyle": "italic", + "foreground": "#393a34" + } + }, + { + "scope": "markup.bold", + "settings": { + "fontStyle": "bold", + "foreground": "#393a34" + } + }, + { + "scope": "markup.raw", + "settings": { + "foreground": "#1c6b48" + } + }, + { + "scope": ["markup.deleted", "meta.diff.header.from-file", "punctuation.definition.deleted"], + "settings": { + "background": "#ffeef0", + "foreground": "#b31d28" + } + }, + { + "scope": ["markup.inserted", "meta.diff.header.to-file", "punctuation.definition.inserted"], + "settings": { + "background": "#f0fff4", + "foreground": "#22863a" + } + }, + { + "scope": ["markup.changed", "punctuation.definition.changed"], + "settings": { + "background": "#ffebda", + "foreground": "#e36209" + } + }, + { + "scope": ["markup.ignored", "markup.untracked"], + "settings": { + "foreground": "#f6f8fa", + "background": "#005cc5" + } + }, + { + "scope": "meta.diff.range", + "settings": { + "foreground": "#6f42c1", + "fontStyle": "bold" + } + }, + { + "scope": "meta.diff.header", + "settings": { + "foreground": "#005cc5" + } + }, + { + "scope": "meta.separator", + "settings": { + "fontStyle": "bold", + "foreground": "#005cc5" + } + }, + { + "scope": "meta.output", + "settings": { + "foreground": "#005cc5" + } + }, + { + "scope": [ + "brackethighlighter.tag", + "brackethighlighter.curly", + "brackethighlighter.round", + "brackethighlighter.square", + "brackethighlighter.angle", + "brackethighlighter.quote" + ], + "settings": { + "foreground": "#586069" + } + }, + { + "scope": "brackethighlighter.unmatched", + "settings": { + "foreground": "#b31d28" + } + }, + { + "scope": [ + "constant.other.reference.link", + "string.other.link", + "punctuation.definition.string.begin.markdown", + "punctuation.definition.string.end.markdown" + ], + "settings": { + "foreground": "#b56959" + } + }, + { + "scope": ["markup.underline.link.markdown", "markup.underline.link.image.markdown"], + "settings": { + "foreground": "#393a3490", + "fontStyle": "underline" + } + }, + { + "scope": ["type.identifier"], + "settings": { + "foreground": "#5a6aa6" + } + }, + { + "scope": ["entity.other.attribute-name.html.vue"], + "settings": { + "foreground": "#59873a" + } + }, + { + "scope": ["invalid.illegal.unrecognized-tag.html"], + "settings": { + "fontStyle": "normal" + } + } + ], + "rules": [ + { + "token": "comment", + "foreground": "a0ada0" + }, + { + "token": "punctuation.definition.comment", + "foreground": "a0ada0" + }, + { + "token": "string.comment", + "foreground": "a0ada0" + }, + { + "token": "delimiter.bracket", + "foreground": "999999" + }, + { + "token": "delimiter", + "foreground": "999999" + }, + { + "token": "invalid.illegal.character-not-allowed-here.html", + "foreground": "999999" + }, + { + "token": "keyword.operator.rest", + "foreground": "999999" + }, + { + "token": "keyword.operator.spread", + "foreground": "999999" + }, + { + "token": "keyword.operator.type.annotation", + "foreground": "999999" + }, + { + "token": "keyword.operator.relational", + "foreground": "999999" + }, + { + "token": "keyword.operator.assignment", + "foreground": "999999" + }, + { + "token": "meta.brace", + "foreground": "999999" + }, + { + "token": "meta.tag.block.any.html", + "foreground": "999999" + }, + { + "token": "meta.tag.inline.any.html", + "foreground": "999999" + }, + { + "token": "meta.tag.structure.input.void.html", + "foreground": "999999" + }, + { + "token": "meta.type.annotation", + "foreground": "999999" + }, + { + "token": "meta.embedded.block.github-actions-expression", + "foreground": "999999" + }, + { + "token": "storage.type.function.arrow", + "foreground": "999999" + }, + { + "token": "keyword.operator.type", + "foreground": "999999" + }, + { + "token": "meta.objectliteral.ts", + "foreground": "999999" + }, + { + "token": "punctuation", + "foreground": "999999" + }, + { + "token": "constant", + "foreground": "a65e2b" + }, + { + "token": "entity.name.constant", + "foreground": "a65e2b" + }, + { + "token": "variable.language", + "foreground": "a65e2b" + }, + { + "token": "meta.definition.variable", + "foreground": "a65e2b" + }, + { + "token": "entity", + "foreground": "59873a" + }, + { + "token": "entity.name", + "foreground": "59873a" + }, + { + "token": "variable.parameter.function", + "foreground": "393a34" + }, + { + "token": "entity.name.tag", + "foreground": "1e754f" + }, + { + "token": "tag.html", + "foreground": "1e754f" + }, + { + "token": "entity.name.function", + "foreground": "59873a" + }, + { + "token": "keyword", + "foreground": "1e754f" + }, + { + "token": "storage.type.class.jsdoc", + "foreground": "1e754f" + }, + { + "token": "storage", + "foreground": "ab5959" + }, + { + "token": "storage.type", + "foreground": "ab5959" + }, + { + "token": "support.type.builtin", + "foreground": "ab5959" + }, + { + "token": "constant.language.undefined", + "foreground": "ab5959" + }, + { + "token": "constant.language.null", + "foreground": "ab5959" + }, + { + "token": "text.html.derivative", + "foreground": "393a34" + }, + { + "token": "storage.modifier.package", + "foreground": "393a34" + }, + { + "token": "storage.modifier.import", + "foreground": "393a34" + }, + { + "token": "storage.type.java", + "foreground": "393a34" + }, + { + "token": "string", + "foreground": "b56959" + }, + { + "token": "string punctuation.section.embedded source", + "foreground": "b56959" + }, + { + "token": "attribute.value", + "foreground": "b56959" + }, + { + "token": "punctuation.definition.string", + "foreground": "b5695999" + }, + { + "token": "punctuation.support.type.property-name", + "foreground": "b5695999" + }, + { + "token": "support", + "foreground": "998418" + }, + { + "token": "property", + "foreground": "998418" + }, + { + "token": "meta.property-name", + "foreground": "998418" + }, + { + "token": "meta.object-literal.key", + "foreground": "998418" + }, + { + "token": "entity.name.tag.yaml", + "foreground": "998418" + }, + { + "token": "attribute.name", + "foreground": "998418" + }, + { + "token": "entity.other.attribute-name", + "foreground": "b07d48" + }, + { + "token": "invalid.deprecated.entity.other.attribute-name.html", + "foreground": "b07d48" + }, + { + "token": "variable", + "foreground": "b07d48" + }, + { + "token": "identifier", + "foreground": "b07d48" + }, + { + "token": "support.type.primitive", + "foreground": "2e8f82" + }, + { + "token": "entity.name.type", + "foreground": "2e8f82" + }, + { + "token": "namespace", + "foreground": "b05a78" + }, + { + "token": "keyword.operator", + "foreground": "ab5959" + }, + { + "token": "keyword.operator.assignment.compound", + "foreground": "ab5959" + }, + { + "token": "meta.var.expr.ts", + "foreground": "ab5959" + }, + { + "token": "invalid.broken", + "foreground": "b31d28" + }, + { + "token": "invalid.deprecated", + "foreground": "b31d28" + }, + { + "token": "invalid.illegal", + "foreground": "b31d28" + }, + { + "token": "invalid.unimplemented", + "foreground": "b31d28" + }, + { + "token": "carriage-return", + "foreground": "fafbfc" + }, + { + "token": "message.error", + "foreground": "b31d28" + }, + { + "token": "string variable", + "foreground": "b56959" + }, + { + "token": "source.regexp", + "foreground": "ab5e3f" + }, + { + "token": "string.regexp", + "foreground": "ab5e3f" + }, + { + "token": "string.regexp.character-class", + "foreground": "b56959" + }, + { + "token": "string.regexp constant.character.escape", + "foreground": "b56959" + }, + { + "token": "string.regexp source.ruby.embedded", + "foreground": "b56959" + }, + { + "token": "string.regexp string.regexp.arbitrary-repitition", + "foreground": "b56959" + }, + { + "token": "string.regexp constant.character.escape", + "foreground": "bda437" + }, + { + "token": "support.constant", + "foreground": "a65e2b" + }, + { + "token": "constant.numeric", + "foreground": "2f798a" + }, + { + "token": "number", + "foreground": "2f798a" + }, + { + "token": "keyword.other.unit", + "foreground": "ab5959" + }, + { + "token": "constant.language.boolean", + "foreground": "1e754f" + }, + { + "token": "constant.language", + "foreground": "1e754f" + }, + { + "token": "meta.module-reference", + "foreground": "1c6b48" + }, + { + "token": "punctuation.definition.list.begin.markdown", + "foreground": "a65e2b" + }, + { + "token": "markup.heading", + "foreground": "1c6b48" + }, + { + "token": "markup.heading entity.name", + "foreground": "1c6b48" + }, + { + "token": "markup.quote", + "foreground": "2e808f" + }, + { + "token": "markup.italic", + "foreground": "393a34" + }, + { + "token": "markup.bold", + "foreground": "393a34" + }, + { + "token": "markup.raw", + "foreground": "1c6b48" + }, + { + "token": "markup.deleted", + "foreground": "b31d28" + }, + { + "token": "meta.diff.header.from-file", + "foreground": "b31d28" + }, + { + "token": "punctuation.definition.deleted", + "foreground": "b31d28" + }, + { + "token": "markup.inserted", + "foreground": "22863a" + }, + { + "token": "meta.diff.header.to-file", + "foreground": "22863a" + }, + { + "token": "punctuation.definition.inserted", + "foreground": "22863a" + }, + { + "token": "markup.changed", + "foreground": "e36209" + }, + { + "token": "punctuation.definition.changed", + "foreground": "e36209" + }, + { + "token": "markup.ignored", + "foreground": "f6f8fa" + }, + { + "token": "markup.untracked", + "foreground": "f6f8fa" + }, + { + "token": "meta.diff.range", + "foreground": "6f42c1" + }, + { + "token": "meta.diff.header", + "foreground": "005cc5" + }, + { + "token": "meta.separator", + "foreground": "005cc5" + }, + { + "token": "meta.output", + "foreground": "005cc5" + }, + { + "token": "brackethighlighter.tag", + "foreground": "586069" + }, + { + "token": "brackethighlighter.curly", + "foreground": "586069" + }, + { + "token": "brackethighlighter.round", + "foreground": "586069" + }, + { + "token": "brackethighlighter.square", + "foreground": "586069" + }, + { + "token": "brackethighlighter.angle", + "foreground": "586069" + }, + { + "token": "brackethighlighter.quote", + "foreground": "586069" + }, + { + "token": "brackethighlighter.unmatched", + "foreground": "b31d28" + }, + { + "token": "constant.other.reference.link", + "foreground": "b56959" + }, + { + "token": "string.other.link", + "foreground": "b56959" + }, + { + "token": "punctuation.definition.string.begin.markdown", + "foreground": "b56959" + }, + { + "token": "punctuation.definition.string.end.markdown", + "foreground": "b56959" + }, + { + "token": "markup.underline.link.markdown", + "foreground": "393a3490" + }, + { + "token": "markup.underline.link.image.markdown", + "foreground": "393a3490" + }, + { + "token": "type.identifier", + "foreground": "5a6aa6" + }, + { + "token": "entity.other.attribute-name.html.vue", + "foreground": "59873a" + }, + { + "token": "invalid.illegal.unrecognized-tag.html" + } + ] +} diff --git a/docs/static/js/app.f7ff199ab89fb9e630e4.js b/docs/static/js/app.f7ff199ab89fb9e630e4.js deleted file mode 100644 index f62da680..00000000 --- a/docs/static/js/app.f7ff199ab89fb9e630e4.js +++ /dev/null @@ -1,2 +0,0 @@ -webpackJsonp([1],[,,,,,,,function(e,t,n){"use strict";function a(e){n(200)}var i=n(89),s=n(227),o=n(6),l=a,r=o(i.a,s.a,!1,l,null,null);t.a=r.exports},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";t.a={props:["langs","current"],methods:{select:function(e){this.$emit("select",e)}}}},function(e,t,n){"use strict";var a=n(28),i=(n.n(a),n(7));t.a={components:{Multiselect:i.a},data:function(){return{badges:[{img:"https://camo.githubusercontent.com/d0e25b09a82bc4bfde9f1e048a092752eebbb4f3/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c75652e7376673f7374796c653d666c6174",name:"License"},{img:"https://img.shields.io/github/stars/shentao/vue-multiselect.svg?label=Stars",name:"GitHub Stars"},{img:"https://camo.githubusercontent.com/64f9a2333bb303d34b1587e1436b24dee6a8e134/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f646d2f7675652d6d756c746973656c6563742e737667",name:"Npm Monthly Downloads"},{img:"https://camo.githubusercontent.com/47ff0923e959e736113988e900268dfc7a601d3b/68747470733a2f2f636972636c6563692e636f6d2f67682f6d6f6e74657261696c2f7675652d6d756c746973656c6563742f747265652f6d61737465722e7376673f7374796c653d736869656c6426636972636c652d746f6b656e3d35633933316666323866643132353837363130663833353437326265636464353134643039636566",name:"Full Test Coverage"},{img:"https://img.shields.io/badge/dependencies-none-brightgreen.svg?style=flat",name:"NO Dependencies"}],value:[]}},methods:{onTagging:function(e){this.source.push({name:e,language:e}),this.value.push({name:e,language:e})}}}},function(e,t,n){"use strict";var a=n(7);t.a={components:{Multiselect:a.a},data:function(){return{actions:["alert","console.log","scrollTop"]}},methods:{dispatchAction:function(e){switch(e){case"alert":window.alert('You just dispatched "alert" action!');break;case"console.log":console.log('You just dispatched "console.log" action!');break;case"scrollTop":window.scrollTo(0,0)}}}}},function(e,t,n){"use strict";var a=n(7),i=n(136);t.a={components:{Multiselect:a.a},data:function(){return{selectedCountries:[],countries:[],isLoading:!1}},methods:{limitText:function(e){return"and ".concat(e," other countries")},asyncFind:function(e){var t=this;this.isLoading=!0,n.i(i.a)(e).then(function(e){t.countries=e,t.isLoading=!1})},clearAll:function(){this.selectedCountries=[]}}}},function(e,t,n){"use strict";var a=n(118),i=(n.n(a),n(7));t.a={components:{Multiselect:i.a},data:function(){return{isDisabled:!1,isTouched:!1,value:[],options:["Select option","Disable me!","Reset me!","mulitple","label","searchable"]}},computed:{isInvalid:function(){return this.isTouched&&0===this.value.length}},methods:{onChange:function(e){this.value=e,-1!==e.indexOf("Reset me!")&&(this.value=[])},onSelect:function(e){"Disable me!"===e&&(this.isDisabled=!0)},onTouch:function(){this.isTouched=!0}}}},function(e,t,n){"use strict";var a=n(27),i=(n.n(a),n(7));t.a={components:{Multiselect:i.a},data:function(){return{value:{title:"Explorer",desc:"Discovering new species!",img:"static/posters/creatures.png"},options:[{title:"Space Pirate",desc:"More space battles!",img:"static/posters/fleet.png"},{title:"Merchant",desc:"PROFIT!",img:"static/posters/trading_post.png"},{title:"Explorer",desc:"Discovering new species!",img:"static/posters/creatures.png"},{title:"Miner",desc:"We need to go deeper!",img:"static/posters/resource_lab.png"}]}},methods:{customLabel:function(e){var t=e.title,n=e.desc;return"".concat(t," – ").concat(n)}}}},function(e,t,n){"use strict";var a=n(7);t.a={components:{Multiselect:a.a},data:function(){return{options:[{language:"Javascript",libs:[{name:"Vue.js",category:"Front-end"},{name:"Adonis",category:"Backend"}]},{language:"Ruby",libs:[{name:"Rails",category:"Backend"},{name:"Sinatra",category:"Backend"}]},{language:"Other",libs:[{name:"Laravel",category:"Backend"},{name:"Phoenix",category:"Backend"}]}],value:[]}}}},function(e,t,n){"use strict";var a=n(7);t.a={components:{Multiselect:a.a},data:function(){return{value:[],options:[{name:"Vue.js",language:"JavaScript"},{name:"Adonis",language:"JavaScript"},{name:"Rails",language:"Ruby"},{name:"Sinatra",language:"Ruby"},{name:"Laravel",language:"PHP"},{name:"Phoenix",language:"Elixir"}]}}}},function(e,t,n){"use strict";var a=n(43),i=(n.n(a),n(42)),s=(n.n(i),n(70)),o=(n.n(s),n(7));t.a={components:{Multiselect:o.a},data:function(){return{isOpen:!1,value:[],options:["Select option","Option 1","Option 2","Option 3","Option 4","Option 5"]}},methods:{toggle:function(){var e=this;this.$refs.multiselect.$el.focus(),setTimeout(function(){e.$refs.multiselect.$refs.search.blur()},1e3)},open:function(){this.$refs.multiselect.activate()},close:function(){this.$refs.multiselect.deactivate()}}}},function(e,t,n){"use strict";var a=n(7);t.a={components:{Multiselect:a.a},data:function(){return{value:null,options:[{name:"Vue.js",language:"JavaScript"},{name:"Rails",language:"Ruby"},{name:"Sinatra",language:"Ruby"},{name:"Laravel",language:"PHP",$isDisabled:!0},{name:"Phoenix",language:"Elixir"}]}}}},function(e,t,n){"use strict";var a=n(7);t.a={components:{Multiselect:a.a},data:function(){return{value:"",options:["Select option","options","selected","multiple","label","searchable","clearOnSelect","hideSelected","maxHeight","allowEmpty","showLabels","onChange","touched"]}}}},function(e,t,n){"use strict";var a=n(122),i=(n.n(a),n(27)),s=(n.n(i),n(7));t.a={components:{Multiselect:s.a},data:function(){return{value:{name:"Vue.js",language:"JavaScript"},options:[{name:"Vue.js",language:"JavaScript"},{name:"Rails",language:"Ruby"},{name:"Sinatra",language:"Ruby"},{name:"Laravel",language:"PHP"},{name:"Phoenix",language:"Elixir"}]}},methods:{nameWithLang:function(e){var t=e.name,n=e.language;return"".concat(t," — [").concat(n,"]")}}}},function(e,t,n){"use strict";var a=n(28),i=(n.n(a),n(7));t.a={components:{Multiselect:i.a},data:function(){return{value:[{name:"Javascript",code:"js"}],options:[{name:"Vue.js",code:"vu"},{name:"Javascript",code:"js"},{name:"Open Source",code:"os"}]}},methods:{addTag:function(e){var t={name:e,code:e.substring(0,2)+Math.floor(1e7*Math.random())};this.options.push(t),this.value.push(t)}}}},function(e,t,n){"use strict";var a=n(71),i=n(73),s=n.n(i),o=n(235),l=n(7),r=o.a.mapActions,c=o.a.mapState;s.a.use(o.a);var u=new o.a.Store({state:{value:"Vuex",options:["Vuex","Vue","Vuelidate","Vue-Multiselect","Vue-Router"]},mutations:{updateValue:function(e,t){e.value=t}},actions:{updateValueAction:function(e,t){(0,e.commit)("updateValue",t)}}});t.a={store:u,components:{Multiselect:l.a},computed:n.i(a.a)({},c(["value","options"])),methods:n.i(a.a)({},r(["updateValueAction"]))}},function(e,t,n){"use strict";var a=n(68),i=(n.n(a),n(119)),s=(n.n(i),n(137)),o=n(138);t.a={name:"vue-multiselect",mixins:[s.a,o.a],props:{name:{type:String,default:""},selectLabel:{type:String,default:"Press enter to select"},selectGroupLabel:{type:String,default:"Press enter to select group"},selectedLabel:{type:String,default:"Selected"},deselectLabel:{type:String,default:"Press enter to remove"},deselectGroupLabel:{type:String,default:"Press enter to deselect group"},showLabels:{type:Boolean,default:!0},limit:{type:Number,default:99999},maxHeight:{type:Number,default:300},limitText:{type:Function,default:function(e){return"and ".concat(e," more")}},loading:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},openDirection:{type:String,default:""},showNoOptions:{type:Boolean,default:!0},showNoResults:{type:Boolean,default:!0},tabindex:{type:Number,default:0}},computed:{hasOptionGroup:function(){return this.groupValues&&this.groupLabel&&this.groupSelect},isSingleLabelVisible:function(){return(this.singleValue||0===this.singleValue)&&(!this.isOpen||!this.searchable)&&!this.visibleValues.length},isPlaceholderVisible:function(){return!(this.internalValue.length||this.searchable&&this.isOpen)},visibleValues:function(){return this.multiple?this.internalValue.slice(0,this.limit):[]},singleValue:function(){return this.internalValue[0]},deselectLabelText:function(){return this.showLabels?this.deselectLabel:""},deselectGroupLabelText:function(){return this.showLabels?this.deselectGroupLabel:""},selectLabelText:function(){return this.showLabels?this.selectLabel:""},selectGroupLabelText:function(){return this.showLabels?this.selectGroupLabel:""},selectedLabelText:function(){return this.showLabels?this.selectedLabel:""},inputStyle:function(){return this.searchable||this.multiple&&this.value&&this.value.length?this.isOpen?{width:"100%"}:{width:"0",position:"absolute",padding:"0"}:""},contentStyle:function(){return this.options.length?{display:"inline-block"}:{display:"block"}},isAbove:function(){return"above"===this.openDirection||"top"===this.openDirection||"below"!==this.openDirection&&"bottom"!==this.openDirection&&"above"===this.preferredOpenDirection},showSearchInput:function(){return this.searchable&&(!this.hasSingleSelectedSlot||!this.visibleSingleValue&&0!==this.visibleSingleValue||this.isOpen)}}}},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a=n(215),i=n(214),s=n(216),o=n(212),l=n(208),r=n(217),c=n(210),u=n(218),d=n(209),p=n(211),h=n(207),m=n(213);n.d(t,"SingleSelectPrimitive",function(){return a.a}),n.d(t,"SingleSelectObject",function(){return i.a}),n.d(t,"SingleSelectSearch",function(){return s.a}),n.d(t,"MultiSelect",function(){return o.a}),n.d(t,"AjaxSearch",function(){return l.a}),n.d(t,"Tagging",function(){return r.a}),n.d(t,"CustomOption",function(){return c.a}),n.d(t,"VuexActions",function(){return u.a}),n.d(t,"CustomConfig",function(){return d.a}),n.d(t,"Groups",function(){return p.a}),n.d(t,"ActionDispatcher",function(){return h.a}),n.d(t,"ProgrammaticCtrl",function(){return m.a})},,,,function(e,t){},function(e,t,n){"use strict";var a=n(75),i=n(232),s=n(6),o=s(a.a,i.a,!1,null,null,null);t.a=o.exports},function(e,t,n){"use strict";function a(e){n(199)}var i=n(76),s=n(224),o=n(6),l=a,r=o(i.a,s.a,!1,l,null,null);t.a=r.exports},function(e,t){e.exports=[{name:"Afghanistan",code:"AF"},{name:"Åland Islands",code:"AX"},{name:"Albania",code:"AL"},{name:"Algeria",code:"DZ"},{name:"American Samoa",code:"AS"},{name:"AndorrA",code:"AD"},{name:"Angola",code:"AO"},{name:"Anguilla",code:"AI"},{name:"Antarctica",code:"AQ"},{name:"Antigua and Barbuda",code:"AG"},{name:"Argentina",code:"AR"},{name:"Armenia",code:"AM"},{name:"Aruba",code:"AW"},{name:"Australia",code:"AU"},{name:"Austria",code:"AT"},{name:"Azerbaijan",code:"AZ"},{name:"Bahamas",code:"BS"},{name:"Bahrain",code:"BH"},{name:"Bangladesh",code:"BD"},{name:"Barbados",code:"BB"},{name:"Belarus",code:"BY"},{name:"Belgium",code:"BE"},{name:"Belize",code:"BZ"},{name:"Benin",code:"BJ"},{name:"Bermuda",code:"BM"},{name:"Bhutan",code:"BT"},{name:"Bolivia",code:"BO"},{name:"Bosnia and Herzegovina",code:"BA"},{name:"Botswana",code:"BW"},{name:"Bouvet Island",code:"BV"},{name:"Brazil",code:"BR"},{name:"British Indian Ocean Territory",code:"IO"},{name:"Brunei Darussalam",code:"BN"},{name:"Bulgaria",code:"BG"},{name:"Burkina Faso",code:"BF"},{name:"Burundi",code:"BI"},{name:"Cambodia",code:"KH"},{name:"Cameroon",code:"CM"},{name:"Canada",code:"CA"},{name:"Cape Verde",code:"CV"},{name:"Cayman Islands",code:"KY"},{name:"Central African Republic",code:"CF"},{name:"Chad",code:"TD"},{name:"Chile",code:"CL"},{name:"China",code:"CN"},{name:"Christmas Island",code:"CX"},{name:"Cocos (Keeling) Islands",code:"CC"},{name:"Colombia",code:"CO"},{name:"Comoros",code:"KM"},{name:"Congo",code:"CG"},{name:"Congo, The Democratic Republic of the",code:"CD"},{name:"Cook Islands",code:"CK"},{name:"Costa Rica",code:"CR"},{name:'Cote D"Ivoire',code:"CI"},{name:"Croatia",code:"HR"},{name:"Cuba",code:"CU"},{name:"Cyprus",code:"CY"},{name:"Czech Republic",code:"CZ"},{name:"Denmark",code:"DK"},{name:"Djibouti",code:"DJ"},{name:"Dominica",code:"DM"},{name:"Dominican Republic",code:"DO"},{name:"Ecuador",code:"EC"},{name:"Egypt",code:"EG"},{name:"El Salvador",code:"SV"},{name:"Equatorial Guinea",code:"GQ"},{name:"Eritrea",code:"ER"},{name:"Estonia",code:"EE"},{name:"Ethiopia",code:"ET"},{name:"Falkland Islands (Malvinas)",code:"FK"},{name:"Faroe Islands",code:"FO"},{name:"Fiji",code:"FJ"},{name:"Finland",code:"FI"},{name:"France",code:"FR"},{name:"French Guiana",code:"GF"},{name:"French Polynesia",code:"PF"},{name:"French Southern Territories",code:"TF"},{name:"Gabon",code:"GA"},{name:"Gambia",code:"GM"},{name:"Georgia",code:"GE"},{name:"Germany",code:"DE"},{name:"Ghana",code:"GH"},{name:"Gibraltar",code:"GI"},{name:"Greece",code:"GR"},{name:"Greenland",code:"GL"},{name:"Grenada",code:"GD"},{name:"Guadeloupe",code:"GP"},{name:"Guam",code:"GU"},{name:"Guatemala",code:"GT"},{name:"Guernsey",code:"GG"},{name:"Guinea",code:"GN"},{name:"Guinea-Bissau",code:"GW"},{name:"Guyana",code:"GY"},{name:"Haiti",code:"HT"},{name:"Heard Island and Mcdonald Islands",code:"HM"},{name:"Holy See (Vatican City State)",code:"VA"},{name:"Honduras",code:"HN"},{name:"Hong Kong",code:"HK"},{name:"Hungary",code:"HU"},{name:"Iceland",code:"IS"},{name:"India",code:"IN"},{name:"Indonesia",code:"ID"},{name:"Iran, Islamic Republic Of",code:"IR"},{name:"Iraq",code:"IQ"},{name:"Ireland",code:"IE"},{name:"Isle of Man",code:"IM"},{name:"Israel",code:"IL"},{name:"Italy",code:"IT"},{name:"Jamaica",code:"JM"},{name:"Japan",code:"JP"},{name:"Jersey",code:"JE"},{name:"Jordan",code:"JO"},{name:"Kazakhstan",code:"KZ"},{name:"Kenya",code:"KE"},{name:"Kiribati",code:"KI"},{name:'Korea, Democratic People"S Republic of',code:"KP"},{name:"Korea, Republic of",code:"KR"},{name:"Kuwait",code:"KW"},{name:"Kyrgyzstan",code:"KG"},{name:'Lao People"S Democratic Republic',code:"LA"},{name:"Latvia",code:"LV"},{name:"Lebanon",code:"LB"},{name:"Lesotho",code:"LS"},{name:"Liberia",code:"LR"},{name:"Libyan Arab Jamahiriya",code:"LY"},{name:"Liechtenstein",code:"LI"},{name:"Lithuania",code:"LT"},{name:"Luxembourg",code:"LU"},{name:"Macao",code:"MO"},{name:"Macedonia, The Former Yugoslav Republic of",code:"MK"},{name:"Madagascar",code:"MG"},{name:"Malawi",code:"MW"},{name:"Malaysia",code:"MY"},{name:"Maldives",code:"MV"},{name:"Mali",code:"ML"},{name:"Malta",code:"MT"},{name:"Marshall Islands",code:"MH"},{name:"Martinique",code:"MQ"},{name:"Mauritania",code:"MR"},{name:"Mauritius",code:"MU"},{name:"Mayotte",code:"YT"},{name:"Mexico",code:"MX"},{name:"Micronesia, Federated States of",code:"FM"},{name:"Moldova, Republic of",code:"MD"},{name:"Monaco",code:"MC"},{name:"Mongolia",code:"MN"},{name:"Montserrat",code:"MS"},{name:"Morocco",code:"MA"},{name:"Mozambique",code:"MZ"},{name:"Myanmar",code:"MM"},{name:"Namibia",code:"NA"},{name:"Nauru",code:"NR"},{name:"Nepal",code:"NP"},{name:"Netherlands",code:"NL"},{name:"Netherlands Antilles",code:"AN"},{name:"New Caledonia",code:"NC"},{name:"New Zealand",code:"NZ"},{name:"Nicaragua",code:"NI"},{name:"Niger",code:"NE"},{name:"Nigeria",code:"NG"},{name:"Niue",code:"NU"},{name:"Norfolk Island",code:"NF"},{name:"Northern Mariana Islands",code:"MP"},{name:"Norway",code:"NO"},{name:"Oman",code:"OM"},{name:"Pakistan",code:"PK"},{name:"Palau",code:"PW"},{name:"Palestinian Territory, Occupied",code:"PS"},{name:"Panama",code:"PA"},{name:"Papua New Guinea",code:"PG"},{name:"Paraguay",code:"PY"},{name:"Peru",code:"PE"},{name:"Philippines",code:"PH"},{name:"Pitcairn",code:"PN"},{name:"Poland",code:"PL"},{name:"Portugal",code:"PT"},{name:"Puerto Rico",code:"PR"},{name:"Qatar",code:"QA"},{name:"Reunion",code:"RE"},{name:"Romania",code:"RO"},{name:"Russian Federation",code:"RU"},{name:"RWANDA",code:"RW"},{name:"Saint Helena",code:"SH"},{name:"Saint Kitts and Nevis",code:"KN"},{name:"Saint Lucia",code:"LC"},{name:"Saint Pierre and Miquelon",code:"PM"},{name:"Saint Vincent and the Grenadines",code:"VC"},{name:"Samoa",code:"WS"},{name:"San Marino",code:"SM"},{name:"Sao Tome and Principe",code:"ST"},{name:"Saudi Arabia",code:"SA"},{name:"Senegal",code:"SN"},{name:"Serbia and Montenegro",code:"CS"},{name:"Seychelles",code:"SC"},{name:"Sierra Leone",code:"SL"},{name:"Singapore",code:"SG"},{name:"Slovakia",code:"SK"},{name:"Slovenia",code:"SI"},{name:"Solomon Islands",code:"SB"},{name:"Somalia",code:"SO"},{name:"South Africa",code:"ZA"},{name:"South Georgia and the South Sandwich Islands",code:"GS"},{name:"Spain",code:"ES"},{name:"Sri Lanka",code:"LK"},{name:"Sudan",code:"SD"},{name:"Suriname",code:"SR"},{name:"Svalbard and Jan Mayen",code:"SJ"},{name:"Swaziland",code:"SZ"},{name:"Sweden",code:"SE"},{name:"Switzerland",code:"CH"},{name:"Syrian Arab Republic",code:"SY"},{name:"Taiwan, Province of China",code:"TW"},{name:"Tajikistan",code:"TJ"},{name:"Tanzania, United Republic of",code:"TZ"},{name:"Thailand",code:"TH"},{name:"Timor-Leste",code:"TL"},{name:"Togo",code:"TG"},{name:"Tokelau",code:"TK"},{name:"Tonga",code:"TO"},{name:"Trinidad and Tobago",code:"TT"},{name:"Tunisia",code:"TN"},{name:"Turkey",code:"TR"},{name:"Turkmenistan",code:"TM"},{name:"Turks and Caicos Islands",code:"TC"},{name:"Tuvalu",code:"TV"},{name:"Uganda",code:"UG"},{name:"Ukraine",code:"UA"},{name:"United Arab Emirates",code:"AE"},{name:"United Kingdom",code:"GB"},{name:"United States",code:"US"},{name:"United States Minor Outlying Islands",code:"UM"},{name:"Uruguay",code:"UY"},{name:"Uzbekistan",code:"UZ"},{name:"Vanuatu",code:"VU"},{name:"Venezuela",code:"VE"},{name:"Viet Nam",code:"VN"},{name:"Virgin Islands, British",code:"VG"},{name:"Virgin Islands, U.S.",code:"VI"},{name:"Wallis and Futuna",code:"WF"},{name:"Western Sahara",code:"EH"},{name:"Yemen",code:"YE"},{name:"Zambia",code:"ZM"},{name:"Zimbabwe",code:"ZW"}]},,,function(e,t,n){"use strict";function a(){b=Array.from(document.querySelectorAll("[data-section]")).map(function(e){return{id:e.id,offset:e.getBoundingClientRect().top+window.pageYOffset-50}})}Object.defineProperty(t,"__esModule",{value:!0});var i=n(71),s=n(72),o=(n.n(s),n(126)),l=(n.n(o),n(127)),r=(n.n(l),n(27)),c=(n.n(r),n(28)),u=(n.n(c),n(43)),d=(n.n(u),n(73)),p=n.n(d),h=n(125),m=n(130),f=n(131),g=n(7),v=n(129);n.n(v);n(128).polyfill();var b,_=", 100%, 85%";new p.a({el:"#app",components:n.i(i.a)(n.i(i.a)({},h),{},{MultiselectExample:f.a,LangSwitcher:m.a,Multiselect:g.a}),data:function(){return{markupLangs:["pug","html"],markupLanguage:"pug",isNavSticky:!1,firstColor:Math.floor(255*Math.random()),secondColor:Math.floor(255*Math.random()),currentPosition:"",versions:["v1.x","v2.0"],version:"v2.0"}},computed:{gradient:function(){return{background:"linear-gradient(to left bottom, hsl(".concat(this.firstColor+_,") 0%, hsl(").concat(this.secondColor+_,") 100%)")}}},methods:{pickVersion:function(e){switch(e){case"v1.x":window.location.assign("v1/index.html");break;case"v2.0":window.location.assign("https://vue-multiselect.js.org/")}},selectLanguage:function(e){this.markupLanguage=e},adjustNav:function(){this.isNavSticky=window.scrollY>window.innerHeight,b||a();for(var e=b.length-1;e>=0;e--)if(window.scrollY>b[e].offset){this.currentPosition=b[e].id;break}},onTagging:function(e){this.source.push({name:e,language:e}),this.value.push({name:e,language:e})}},mounted:function(){this.adjustNav(),window.addEventListener("scroll",this.adjustNav),setTimeout(function(){a()},1e3)}})},function(e,t,n){"use strict";function a(e){return new Promise(function(t,n){setTimeout(function(){var n=d.a.filter(function(t,n,a){return t.name.toLowerCase().includes(e.toLowerCase())});t(n)},1e3)})}t.a=a;var i=n(69),s=(n.n(i),n(43)),o=(n.n(s),n(116)),l=(n.n(o),n(185)),r=(n.n(l),n(190)),c=(n.n(r),n(122)),u=(n.n(c),n(132)),d=n.n(u)},function(e,t,n){"use strict";function a(e){return 0!==e&&(!(!Array.isArray(e)||0!==e.length)||!e)}function i(e){return function(){return!e.apply(void 0,arguments)}}function s(e,t){return void 0===e&&(e="undefined"),null===e&&(e="null"),!1===e&&(e="false"),-1!==e.toString().toLowerCase().indexOf(t.trim())}function o(e,t,n,a){return e.filter(function(e){return s(a(e,n),t)})}function l(e){return e.filter(function(e){return!e.$isLabel})}function r(e,t){return function(n){return n.reduce(function(n,a){return a[e]&&a[e].length?(n.push({$groupLabel:a[t],$isLabel:!0}),n.concat(a[e])):n},[])}}function c(e,t,a,i,s){return function(l){return l.map(function(l){var r;if(!l[a])return console.warn("Options passed to vue-multiselect do not contain groups, despite the config."),[];var c=o(l[a],e,t,s);return c.length?(r={},n.i(d.a)(r,i,l[i]),n.i(d.a)(r,a,c),r):[]})}}var u=n(44),d=n(74),p=n(186),h=(n.n(p),n(121)),m=(n.n(h),n(120)),f=(n.n(m),n(69)),g=(n.n(f),n(123)),v=(n.n(g),n(118)),b=(n.n(v),n(191)),_=(n.n(b),n(116)),y=(n.n(_),n(187)),S=(n.n(y),n(28)),C=(n.n(S),n(27)),w=(n.n(C),n(72)),k=(n.n(w),n(68)),x=(n.n(k),n(42)),O=(n.n(x),n(70)),L=(n.n(O),n(189)),M=(n.n(L),n(119)),T=(n.n(M),n(117)),V=(n.n(T),n(188)),A=(n.n(V),n(184)),P=(n.n(A),function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e){return t.reduce(function(e,t){return t(e)},e)}});t.a={data:function(){return{search:"",isOpen:!1,preferredOpenDirection:"below",optimizedHeight:this.maxHeight}},props:{internalSearch:{type:Boolean,default:!0},options:{type:Array,required:!0},multiple:{type:Boolean,default:!1},value:{type:null,default:function(){return[]}},trackBy:{type:String},label:{type:String},searchable:{type:Boolean,default:!0},clearOnSelect:{type:Boolean,default:!0},hideSelected:{type:Boolean,default:!1},placeholder:{type:String,default:"Select option"},allowEmpty:{type:Boolean,default:!0},resetAfter:{type:Boolean,default:!1},closeOnSelect:{type:Boolean,default:!0},customLabel:{type:Function,default:function(e,t){return a(e)?"":t?e[t]:e}},taggable:{type:Boolean,default:!1},tagPlaceholder:{type:String,default:"Press enter to create a tag"},tagPosition:{type:String,default:"top"},max:{type:[Number,Boolean],default:!1},id:{default:null},optionsLimit:{type:Number,default:1e3},groupValues:{type:String},groupLabel:{type:String},groupSelect:{type:Boolean,default:!1},blockKeys:{type:Array,default:function(){return[]}},preserveSearch:{type:Boolean,default:!1},preselectFirst:{type:Boolean,default:!1},preventAutofocus:{type:Boolean,default:!1}},mounted:function(){!this.multiple&&this.max&&console.warn("[Vue-Multiselect warn]: Max prop should not be used when prop Multiple equals false."),this.preselectFirst&&!this.internalValue.length&&this.options.length&&this.select(this.filteredOptions[0])},computed:{internalValue:function(){return this.value||0===this.value?Array.isArray(this.value)?this.value:[this.value]:[]},filteredOptions:function(){var e=this.search||"",t=e.toLowerCase().trim(),n=this.options.concat();return n=this.internalSearch?this.groupValues?this.filterAndFlat(n,t,this.label):o(n,t,this.label,this.customLabel):this.groupValues?r(this.groupValues,this.groupLabel)(n):n,n=this.hideSelected?n.filter(i(this.isSelected)):n,this.taggable&&t.length&&!this.isExistingOption(t)&&("bottom"===this.tagPosition?n.push({isTag:!0,label:e}):n.unshift({isTag:!0,label:e})),n.slice(0,this.optionsLimit)},valueKeys:function(){var e=this;return this.trackBy?this.internalValue.map(function(t){return t[e.trackBy]}):this.internalValue},optionKeys:function(){var e=this;return(this.groupValues?this.flatAndStrip(this.options):this.options).map(function(t){return e.customLabel(t,e.label).toString().toLowerCase()})},currentOptionLabel:function(){return this.multiple?this.searchable?"":this.placeholder:this.internalValue.length?this.getOptionLabel(this.internalValue[0]):this.searchable?"":this.placeholder}},watch:{internalValue:function(){this.resetAfter&&this.internalValue.length&&(this.search="",this.$emit("input",this.multiple?[]:null))},search:function(){this.$emit("search-change",this.search,this.id)}},methods:{getValue:function(){return this.multiple?this.internalValue:0===this.internalValue.length?null:this.internalValue[0]},filterAndFlat:function(e,t,n){return P(c(t,n,this.groupValues,this.groupLabel,this.customLabel),r(this.groupValues,this.groupLabel))(e)},flatAndStrip:function(e){return P(r(this.groupValues,this.groupLabel),l)(e)},updateSearch:function(e){this.search=e},isExistingOption:function(e){return!!this.options&&this.optionKeys.indexOf(e)>-1},isSelected:function(e){var t=this.trackBy?e[this.trackBy]:e;return this.valueKeys.indexOf(t)>-1},isOptionDisabled:function(e){return!!e.$isDisabled},getOptionLabel:function(e){if(a(e))return"";if(e.isTag)return e.label;if(e.$isLabel)return e.$groupLabel;var t=this.customLabel(e,this.label);return a(t)?"":t},select:function(e,t){if(e.$isLabel&&this.groupSelect)return void this.selectGroup(e);if(!(-1!==this.blockKeys.indexOf(t)||this.disabled||e.$isDisabled||e.$isLabel)&&(!this.max||!this.multiple||this.internalValue.length!==this.max)&&("Tab"!==t||this.pointerDirty)){if(e.isTag)this.$emit("tag",e.label,this.id),this.search="",this.closeOnSelect&&!this.multiple&&this.deactivate();else{if(this.isSelected(e))return void("Tab"!==t&&this.removeElement(e));this.multiple?this.$emit("input",this.internalValue.concat([e]),this.id):this.$emit("input",e,this.id),this.$emit("select",e,this.id),this.clearOnSelect&&(this.search="")}this.closeOnSelect&&this.deactivate()}},selectGroup:function(e){var t=this,n=this.options.find(function(n){return n[t.groupLabel]===e.$groupLabel});if(n){if(this.wholeGroupSelected(n)){this.$emit("remove",n[this.groupValues],this.id);var a=this.internalValue.filter(function(e){return-1===n[t.groupValues].indexOf(e)});this.$emit("input",a,this.id)}else{var i=n[this.groupValues].filter(function(e){return!(t.isOptionDisabled(e)||t.isSelected(e))});this.max&&i.splice(this.max-this.internalValue.length),this.$emit("select",i,this.id),this.$emit("input",this.internalValue.concat(i),this.id)}this.closeOnSelect&&this.deactivate()}},wholeGroupSelected:function(e){var t=this;return e[this.groupValues].every(function(e){return t.isSelected(e)||t.isOptionDisabled(e)})},wholeGroupDisabled:function(e){return e[this.groupValues].every(this.isOptionDisabled)},removeElement:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(!this.disabled&&!e.$isDisabled){if(!this.allowEmpty&&this.internalValue.length<=1)return void this.deactivate();var a="object"===n.i(u.a)(e)?this.valueKeys.indexOf(e[this.trackBy]):this.valueKeys.indexOf(e);if(this.multiple){var i=this.internalValue.slice(0,a).concat(this.internalValue.slice(a+1));this.$emit("input",i,this.id)}else this.$emit("input",null,this.id);this.$emit("remove",e,this.id),this.closeOnSelect&&t&&this.deactivate()}},removeLastElement:function(){-1===this.blockKeys.indexOf("Delete")&&0===this.search.length&&Array.isArray(this.internalValue)&&this.internalValue.length&&this.removeElement(this.internalValue[this.internalValue.length-1],!1)},activate:function(){var e=this;this.isOpen||this.disabled||(this.adjustPosition(),this.groupValues&&0===this.pointer&&this.filteredOptions.length&&(this.pointer=1),this.isOpen=!0,this.searchable?(this.preserveSearch||(this.search=""),this.preventAutofocus||this.$nextTick(function(){return e.$refs.search&&e.$refs.search.focus()})):this.preventAutofocus||void 0!==this.$el&&this.$el.focus(),this.$emit("open",this.id))},deactivate:function(){this.isOpen&&(this.isOpen=!1,this.searchable?void 0!==this.$refs.search&&this.$refs.search.blur():void 0!==this.$el&&this.$el.blur(),this.preserveSearch||(this.search=""),this.$emit("close",this.getValue(),this.id))},toggle:function(){this.isOpen?this.deactivate():this.activate()},adjustPosition:function(){if("undefined"!=typeof window){var e=this.$el.getBoundingClientRect().top,t=window.innerHeight-this.$el.getBoundingClientRect().bottom;t>this.maxHeight||t>e||"below"===this.openDirection||"bottom"===this.openDirection?(this.preferredOpenDirection="below",this.optimizedHeight=Math.min(t-40,this.maxHeight)):(this.preferredOpenDirection="above",this.optimizedHeight=Math.min(e-40,this.maxHeight))}}}}},function(e,t,n){"use strict";var a=n(68),i=(n.n(a),n(42)),s=(n.n(i),n(70)),o=(n.n(s),n(121)),l=(n.n(o),n(120)),r=(n.n(l),n(69)),c=(n.n(r),n(123)),u=(n.n(c),n(117));n.n(u);t.a={data:function(){return{pointer:0,pointerDirty:!1}},props:{showPointer:{type:Boolean,default:!0},optionHeight:{type:Number,default:40}},computed:{pointerPosition:function(){return this.pointer*this.optionHeight},visibleElements:function(){return this.optimizedHeight/this.optionHeight}},watch:{filteredOptions:function(){this.pointerAdjust()},isOpen:function(){this.pointerDirty=!1},pointer:function(){this.$refs.search&&this.$refs.search.setAttribute("aria-activedescendant",this.id+"-"+this.pointer.toString())}},methods:{optionHighlight:function(e,t){return{"multiselect__option--highlight":e===this.pointer&&this.showPointer,"multiselect__option--selected":this.isSelected(t)}},groupHighlight:function(e,t){var n=this;if(!this.groupSelect)return["multiselect__option--disabled",{"multiselect__option--group":t.$isLabel}];var a=this.options.find(function(e){return e[n.groupLabel]===t.$groupLabel});return a&&!this.wholeGroupDisabled(a)?["multiselect__option--group",{"multiselect__option--highlight":e===this.pointer&&this.showPointer},{"multiselect__option--group-selected":this.wholeGroupSelected(a)}]:"multiselect__option--disabled"},addPointerElement:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"Enter",t=e.key;this.filteredOptions.length>0&&this.select(this.filteredOptions[this.pointer],t),this.pointerReset()},pointerForward:function(){this.pointer<this.filteredOptions.length-1&&(this.pointer++,this.$refs.list.scrollTop<=this.pointerPosition-(this.visibleElements-1)*this.optionHeight&&(this.$refs.list.scrollTop=this.pointerPosition-(this.visibleElements-1)*this.optionHeight),this.filteredOptions[this.pointer]&&this.filteredOptions[this.pointer].$isLabel&&!this.groupSelect&&this.pointerForward()),this.pointerDirty=!0},pointerBackward:function(){this.pointer>0?(this.pointer--,this.$refs.list.scrollTop>=this.pointerPosition&&(this.$refs.list.scrollTop=this.pointerPosition),this.filteredOptions[this.pointer]&&this.filteredOptions[this.pointer].$isLabel&&!this.groupSelect&&this.pointerBackward()):this.filteredOptions[this.pointer]&&this.filteredOptions[0].$isLabel&&!this.groupSelect&&this.pointerForward(),this.pointerDirty=!0},pointerReset:function(){this.closeOnSelect&&(this.pointer=0,this.$refs.list&&(this.$refs.list.scrollTop=0))},pointerAdjust:function(){this.pointer>=this.filteredOptions.length-1&&(this.pointer=this.filteredOptions.length?this.filteredOptions.length-1:0),this.filteredOptions.length>0&&this.filteredOptions[this.pointer].$isLabel&&!this.groupSelect&&this.pointerForward()},pointerSet:function(e){this.pointer=e,this.pointerDirty=!0}}}},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},,,function(e,t,n){"use strict";var a=n(77),i=n(229),s=n(6),o=s(a.a,i.a,!1,null,null,null);t.a=o.exports},function(e,t,n){"use strict";function a(e){n(201)}var i=n(78),s=n(228),o=n(6),l=a,r=o(i.a,s.a,!1,l,null,null);t.a=r.exports},function(e,t,n){"use strict";function a(e){n(202)}var i=n(79),s=n(230),o=n(6),l=a,r=o(i.a,s.a,!1,l,null,null);t.a=r.exports},function(e,t,n){"use strict";function a(e){n(197)}var i=n(80),s=n(222),o=n(6),l=a,r=o(i.a,s.a,!1,l,null,null);t.a=r.exports},function(e,t,n){"use strict";function a(e){n(203)}var i=n(81),s=n(231),o=n(6),l=a,r=o(i.a,s.a,!1,l,null,null);t.a=r.exports},function(e,t,n){"use strict";function a(e){n(198)}var i=n(82),s=n(223),o=n(6),l=a,r=o(i.a,s.a,!1,l,null,null);t.a=r.exports},function(e,t,n){"use strict";function a(e){n(194)}var i=n(83),s=n(219),o=n(6),l=a,r=o(i.a,s.a,!1,l,null,null);t.a=r.exports},function(e,t,n){"use strict";function a(e){n(196)}var i=n(84),s=n(221),o=n(6),l=a,r=o(i.a,s.a,!1,l,null,null);t.a=r.exports},function(e,t,n){"use strict";var a=n(85),i=n(225),s=n(6),o=s(a.a,i.a,!1,null,null,null);t.a=o.exports},function(e,t,n){"use strict";function a(e){n(204)}var i=n(86),s=n(233),o=n(6),l=a,r=o(i.a,s.a,!1,l,null,null);t.a=r.exports},function(e,t,n){"use strict";function a(e){n(195)}var i=n(87),s=n(220),o=n(6),l=a,r=o(i.a,s.a,!1,l,null,null);t.a=r.exports},function(e,t,n){"use strict";var a=n(88),i=n(226),s=n(6),o=s(a.a,i.a,!1,null,null,null);t.a=o.exports},function(e,t,n){"use strict";var a=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("button",{staticClass:"button button-small",on:{click:e.toggle}},[e._v("Toggle")]),e._v(" "),n("button",{staticClass:"button button-small",on:{click:e.open}},[e._v("Open")]),e._v(" "),n("button",{staticClass:"button button-small",on:{click:e.close}},[e._v("Close")]),e._v(" "),n("pre",[e._v("Multiselect Open: "+e._s(e.isOpen))]),n("label",{staticClass:"typo__label"},[e._v("Controlling multiselect programmatically")]),n("multiselect",{ref:"multiselect",attrs:{placeholder:"Pick at least one",value:e.value,options:e.options,multiple:!0,searchable:!0,"allow-empty":!1,"hide-selected":!0,"max-height":150,max:3},on:{open:function(t){e.isOpen=!0},close:function(t){e.isOpen=!1}}})],1)},i=[],s={render:a,staticRenderFns:i};t.a=s},function(e,t,n){"use strict";var a=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("label",{staticClass:"typo__label"},[e._v("Tagging")]),n("multiselect",{attrs:{"tag-placeholder":"Add this as new tag",placeholder:"Search or add a tag",label:"name","track-by":"code",options:e.options,multiple:!0,taggable:!0},on:{tag:e.addTag},model:{value:e.value,callback:function(t){e.value=t},expression:"value"}}),n("pre",{staticClass:"language-json"},[n("code",[e._v(e._s(e.value))])])],1)},i=[],s={render:a,staticRenderFns:i};t.a=s},function(e,t,n){"use strict";var a=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("label",{staticClass:"typo__label"},[e._v("Single select / dropdown")]),n("multiselect",{attrs:{"deselect-label":"Can't remove this value","track-by":"name",label:"name",placeholder:"Select one",options:e.options,searchable:!1,"allow-empty":!1},scopedSlots:e._u([{key:"singleLabel",fn:function(t){var a=t.option;return[n("strong",[e._v(e._s(a.name))]),e._v(" is written in"),n("strong",[e._v(" "+e._s(a.language))])]}}]),model:{value:e.value,callback:function(t){e.value=t},expression:"value"}}),n("pre",{staticClass:"language-json"},[n("code",[e._v(e._s(e.value))])])],1)},i=[],s={render:a,staticRenderFns:i};t.a=s},function(e,t,n){"use strict";var a=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("label",{staticClass:"typo__label"},[e._v("Custom option template")]),n("multiselect",{attrs:{placeholder:"Fav No Man’s Sky path",label:"title","track-by":"title",options:e.options,"option-height":104,"custom-label":e.customLabel,"show-labels":!1},scopedSlots:e._u([{key:"singleLabel",fn:function(t){return[n("img",{staticClass:"option__image",attrs:{src:t.option.img,alt:"No Man’s Sky"}}),n("span",{staticClass:"option__desc"},[n("span",{staticClass:"option__title"},[e._v(e._s(t.option.title))])])]}},{key:"option",fn:function(t){return[n("img",{staticClass:"option__image",attrs:{src:t.option.img,alt:"No Man’s Sky"}}),n("div",{staticClass:"option__desc"},[n("span",{staticClass:"option__title"},[e._v(e._s(t.option.title))]),n("span",{staticClass:"option__small"},[e._v(e._s(t.option.desc))])])]}}]),model:{value:e.value,callback:function(t){e.value=t},expression:"value"}}),n("pre",{staticClass:"language-json"},[n("code",[e._v(e._s(e.value))])])],1)},i=[],s={render:a,staticRenderFns:i};t.a=s},function(e,t,n){"use strict";var a=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("label",{staticClass:"typo__label"},[e._v("Simple select / dropdown")]),n("multiselect",{attrs:{options:e.options,multiple:!0,"close-on-select":!1,"clear-on-select":!1,"preserve-search":!0,placeholder:"Pick some",label:"name","track-by":"name","preselect-first":!0},scopedSlots:e._u([{key:"selection",fn:function(t){var a=t.values,i=(t.search,t.isOpen);return[a.length?n("span",{directives:[{name:"show",rawName:"v-show",value:!i,expression:"!isOpen"}],staticClass:"multiselect__single"},[e._v(e._s(a.length)+" options selected")]):e._e()]}}]),model:{value:e.value,callback:function(t){e.value=t},expression:"value"}}),n("pre",{staticClass:"language-json"},[n("code",[e._v(e._s(e.value))])])],1)},i=[],s={render:a,staticRenderFns:i};t.a=s},function(e,t,n){"use strict";var a=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("multiselect",{attrs:{label:"name","track-by":"name",placeholder:"Pick badges",options:e.badges,multiple:!0,"show-labels":!1,limit:3},on:{tag:e.onTagging},scopedSlots:e._u([{key:"option",fn:function(t){return[n("span",{staticClass:"badge__name"},[e._v(e._s(t.option.name))]),n("img",{staticClass:"badge__img",attrs:{src:t.option.img,alt:t.option.name}})]}}]),model:{value:e.value,callback:function(t){e.value=t},expression:"value"}},[n("span",{attrs:{slot:"noResult"},slot:"noResult"},[e._v("Badge not found. Suggest a badge "),n("a",{staticClass:"typo__link",attrs:{href:"https://github.com/shentao/vue-multiselect/issues",target:"_blank"}},[e._v("here")]),e._v(".")])])],1)},i=[],s={render:a,staticRenderFns:i};t.a=s},function(e,t,n){"use strict";var a=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("label",{staticClass:"typo__label"},[e._v("Single select")]),n("multiselect",{attrs:{options:e.options,searchable:!1,"close-on-select":!1,"show-labels":!1,placeholder:"Pick a value"},model:{value:e.value,callback:function(t){e.value=t},expression:"value"}}),n("pre",{staticClass:"language-json"},[n("code",[e._v(e._s(e.value))])])],1)},i=[],s={render:a,staticRenderFns:i};t.a=s},function(e,t,n){"use strict";var a=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("label",{staticClass:"typo__label"},[e._v("Vuex example.")]),n("multiselect",{attrs:{placeholder:"Pick action",value:e.value,options:e.options,searchable:!1},on:{input:e.updateValueAction}})],1)},i=[],s={render:a,staticRenderFns:i};t.a=s},function(e,t,n){"use strict";var a=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"multiselect",class:{"multiselect--active":e.isOpen,"multiselect--disabled":e.disabled,"multiselect--above":e.isAbove,"multiselect--has-options-group":e.hasOptionGroup},attrs:{tabindex:e.searchable?-1:e.tabindex,role:"combobox","aria-owns":"listbox-"+e.id},on:{focus:function(t){return e.activate()},blur:function(t){!e.searchable&&e.deactivate()},keydown:[function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"down",40,t.key,["Down","ArrowDown"])?null:t.target!==t.currentTarget?null:(t.preventDefault(),e.pointerForward())},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"up",38,t.key,["Up","ArrowUp"])?null:t.target!==t.currentTarget?null:(t.preventDefault(),e.pointerBackward())}],keypress:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")&&e._k(t.keyCode,"tab",9,t.key,"Tab")?null:(t.stopPropagation(),t.target!==t.currentTarget?null:e.addPointerElement(t))},keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"])?null:e.deactivate()}}},[e._t("caret",function(){return[n("div",{staticClass:"multiselect__select",on:{mousedown:function(t){return t.preventDefault(),t.stopPropagation(),e.toggle()}}})]},{toggle:e.toggle}),e._v(" "),e._t("clear",null,{search:e.search}),e._v(" "),n("div",{ref:"tags",staticClass:"multiselect__tags"},[e._t("selection",function(){return[n("div",{directives:[{name:"show",rawName:"v-show",value:e.visibleValues.length>0,expression:"visibleValues.length > 0"}],staticClass:"multiselect__tags-wrap"},[e._l(e.visibleValues,function(t,a){return[e._t("tag",function(){return[n("span",{key:a,staticClass:"multiselect__tag"},[n("span",{domProps:{textContent:e._s(e.getOptionLabel(t))}}),e._v(" "),n("i",{staticClass:"multiselect__tag-icon",attrs:{tabindex:"1"},on:{keypress:function(n){return!n.type.indexOf("key")&&e._k(n.keyCode,"enter",13,n.key,"Enter")?null:(n.preventDefault(),e.removeElement(t))},mousedown:function(n){return n.preventDefault(),e.removeElement(t)}}})])]},{option:t,search:e.search,remove:e.removeElement})]})],2),e._v(" "),e.internalValue&&e.internalValue.length>e.limit?[e._t("limit",function(){return[n("strong",{staticClass:"multiselect__strong",domProps:{textContent:e._s(e.limitText(e.internalValue.length-e.limit))}})]})]:e._e()]},{search:e.search,remove:e.removeElement,values:e.visibleValues,isOpen:e.isOpen}),e._v(" "),n("transition",{attrs:{name:"multiselect__loading"}},[e._t("loading",function(){return[n("div",{directives:[{name:"show",rawName:"v-show",value:e.loading,expression:"loading"}],staticClass:"multiselect__spinner"})]})],2),e._v(" "),e.searchable?n("input",{ref:"search",staticClass:"multiselect__input",style:e.inputStyle,attrs:{name:e.name,id:e.id,type:"text",autocomplete:"off",spellcheck:"false",placeholder:e.placeholder,disabled:e.disabled,tabindex:e.tabindex,"aria-controls":"listbox-"+e.id},domProps:{value:e.search},on:{input:function(t){return e.updateSearch(t.target.value)},focus:function(t){return t.preventDefault(),e.activate()},blur:function(t){return t.preventDefault(),e.deactivate()},keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"esc",27,t.key,["Esc","Escape"])?null:e.deactivate()},keydown:[function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"down",40,t.key,["Down","ArrowDown"])?null:(t.preventDefault(),e.pointerForward())},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"up",38,t.key,["Up","ArrowUp"])?null:(t.preventDefault(),e.pointerBackward())},function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"delete",[8,46],t.key,["Backspace","Delete","Del"])?null:(t.stopPropagation(),e.removeLastElement())}],keypress:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:(t.preventDefault(),t.stopPropagation(),t.target!==t.currentTarget?null:e.addPointerElement(t))}}}):e._e(),e._v(" "),e.isSingleLabelVisible?n("span",{staticClass:"multiselect__single",on:{mousedown:function(t){return t.preventDefault(),e.toggle.apply(null,arguments)}}},[e._t("singleLabel",function(){return[[e._v(e._s(e.currentOptionLabel))]]},{option:e.singleValue})],2):e._e(),e._v(" "),e.isPlaceholderVisible?n("span",{staticClass:"multiselect__placeholder",on:{mousedown:function(t){return t.preventDefault(),e.toggle.apply(null,arguments)}}},[e._t("placeholder",function(){return[e._v("\n "+e._s(e.placeholder)+"\n ")]})],2):e._e()],2),e._v(" "),n("transition",{attrs:{name:"multiselect"}},[n("div",{directives:[{name:"show",rawName:"v-show",value:e.isOpen,expression:"isOpen"}],ref:"list",staticClass:"multiselect__content-wrapper",style:{maxHeight:e.optimizedHeight+"px"},attrs:{tabindex:"-1"},on:{focus:e.activate,mousedown:function(e){e.preventDefault()}}},[n("ul",{staticClass:"multiselect__content",style:e.contentStyle,attrs:{role:"listbox",id:"listbox-"+e.id}},[e._t("beforeList"),e._v(" "),e.multiple&&e.max===e.internalValue.length?n("li",[n("span",{staticClass:"multiselect__option"},[e._t("maxElements",function(){return[e._v("Maximum of "+e._s(e.max)+" options selected. First remove a selected option to select another.")]})],2)]):e._e(),e._v(" "),!e.max||e.internalValue.length<e.max?e._l(e.filteredOptions,function(t,a){return n("li",{key:a,staticClass:"multiselect__element",attrs:{id:e.id+"-"+a,role:t&&(t.$isLabel||t.$isDisabled)?null:"option"}},[t&&(t.$isLabel||t.$isDisabled)?e._e():n("span",{staticClass:"multiselect__option",class:e.optionHighlight(a,t),attrs:{"data-select":t&&t.isTag?e.tagPlaceholder:e.selectLabelText,"data-selected":e.selectedLabelText,"data-deselect":e.deselectLabelText},on:{click:function(n){return n.stopPropagation(),e.select(t)},mouseenter:function(t){return t.target!==t.currentTarget?null:e.pointerSet(a)}}},[e._t("option",function(){return[n("span",[e._v(e._s(e.getOptionLabel(t)))])]},{option:t,search:e.search,index:a})],2),e._v(" "),t&&(t.$isLabel||t.$isDisabled)?n("span",{staticClass:"multiselect__option",class:e.groupHighlight(a,t),attrs:{"data-select":e.groupSelect&&e.selectGroupLabelText,"data-deselect":e.groupSelect&&e.deselectGroupLabelText},on:{mouseenter:function(t){if(t.target!==t.currentTarget)return null;e.groupSelect&&e.pointerSet(a)},mousedown:function(n){return n.preventDefault(),e.selectGroup(t)}}},[e._t("option",function(){return[n("span",[e._v(e._s(e.getOptionLabel(t)))])]},{option:t,search:e.search,index:a})],2):e._e()])}):e._e(),e._v(" "),n("li",{directives:[{name:"show",rawName:"v-show",value:e.showNoResults&&0===e.filteredOptions.length&&e.search&&!e.loading,expression:"showNoResults && (filteredOptions.length === 0 && search && !loading)"}]},[n("span",{staticClass:"multiselect__option"},[e._t("noResult",function(){return[e._v("No elements found. Consider changing the search query.")]},{search:e.search})],2)]),e._v(" "),n("li",{directives:[{name:"show",rawName:"v-show",value:e.showNoOptions&&(0===e.options.length||!0===e.hasOptionGroup&&0===e.filteredOptions.length)&&!e.search&&!e.loading,expression:"showNoOptions && ((options.length === 0 || (hasOptionGroup === true && filteredOptions.length === 0)) && !search && !loading)"}]},[n("span",{staticClass:"multiselect__option"},[e._t("noOptions",function(){return[e._v("List is empty.")]})],2)]),e._v(" "),e._t("afterList")],2)])])],2)},i=[],s={render:a,staticRenderFns:i};t.a=s},function(e,t,n){"use strict";var a=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("label",{staticClass:"typo__label",attrs:{for:"ajax"}},[e._v("Async multiselect")]),n("multiselect",{attrs:{id:"ajax",label:"name","track-by":"code",placeholder:"Type to search","open-direction":"bottom",options:e.countries,multiple:!0,searchable:!0,loading:e.isLoading,"internal-search":!1,"clear-on-select":!1,"close-on-select":!1,"options-limit":300,limit:3,"limit-text":e.limitText,"max-height":600,"show-no-results":!1,"hide-selected":!0},on:{"search-change":e.asyncFind},scopedSlots:e._u([{key:"tag",fn:function(t){var a=t.option,i=t.remove;return[n("span",{staticClass:"custom__tag"},[n("span",[e._v(e._s(a.name))]),n("span",{staticClass:"custom__remove",on:{click:function(e){return i(a)}}},[e._v("❌")])])]}},{key:"clear",fn:function(t){return[e.selectedCountries.length?n("div",{staticClass:"multiselect__clear",on:{mousedown:function(n){return n.preventDefault(),n.stopPropagation(),e.clearAll(t.search)}}}):e._e()]}}]),model:{value:e.selectedCountries,callback:function(t){e.selectedCountries=t},expression:"selectedCountries"}},[n("span",{attrs:{slot:"noResult"},slot:"noResult"},[e._v("Oops! No elements found. Consider changing the search query.")])]),n("pre",{staticClass:"language-json"},[n("code",[e._v(e._s(e.selectedCountries))])])],1)},i=[],s={render:a,staticRenderFns:i};t.a=s},function(e,t,n){"use strict";var a=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("label",{staticClass:"typo__label"},[e._v("Open console to see logs.")]),n("multiselect",{attrs:{placeholder:"Pick action",options:e.actions,searchable:!1,"reset-after":!0},on:{select:e.dispatchAction}})],1)},i=[],s={render:a,staticRenderFns:i};t.a=s},function(e,t,n){"use strict";var a=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{class:{invalid:e.isInvalid}},[n("label",{staticClass:"typo__label"},[e._v("Customized multiselect")]),n("multiselect",{attrs:{placeholder:"Pick at least one","select-label":"Enter doesn’t work here!",value:e.value,options:e.options,multiple:!0,searchable:!0,"allow-empty":!1,"prevent-autofocus":!0,"hide-selected":!0,"max-height":150,max:3,disabled:e.isDisabled,"block-keys":["Tab","Enter"]},on:{input:e.onChange,close:e.onTouch,select:e.onSelect}}),n("label",{directives:[{name:"show",rawName:"v-show",value:e.isInvalid,expression:"isInvalid"}],staticClass:"typo__label form__label"},[e._v("Must have at least one value")])],1)},i=[],s={render:a,staticRenderFns:i};t.a=s},function(e,t,n){"use strict";var a=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("label",{staticClass:"typo__label"},[e._v("Groups")]),n("multiselect",{attrs:{options:e.options,multiple:!0,"group-values":"libs","group-label":"language","group-select":!0,placeholder:"Type to search","track-by":"name",label:"name"},model:{value:e.value,callback:function(t){e.value=t},expression:"value"}},[n("span",{attrs:{slot:"noResult"},slot:"noResult"},[e._v("Oops! No elements found. Consider changing the search query.")])]),n("pre",{staticClass:"language-json"},[n("code",[e._v(e._s(e.value))])])],1)},i=[],s={render:a,staticRenderFns:i};t.a=s},function(e,t,n){"use strict";var a=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"tabs"},e._l(e.langs,function(t){return n("a",{staticClass:"tabs__link",class:{"tabs__link--active":t===e.current},on:{click:function(n){return e.select(t)}}},[e._v(e._s(t))])}),0)},i=[],s={render:a,staticRenderFns:i};t.a=s},function(e,t,n){"use strict";var a=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("label",{staticClass:"typo__label"},[e._v("Select with search")]),n("multiselect",{attrs:{options:e.options,"custom-label":e.nameWithLang,placeholder:"Select one",label:"name","track-by":"name"},model:{value:e.value,callback:function(t){e.value=t},expression:"value"}}),n("pre",{staticClass:"language-json"},[n("code",[e._v(e._s(e.value))])])],1)},i=[],s={render:a,staticRenderFns:i};t.a=s}],[135]); -//# sourceMappingURL=app.f7ff199ab89fb9e630e4.js.map \ No newline at end of file diff --git a/docs/static/js/app.f7ff199ab89fb9e630e4.js.map b/docs/static/js/app.f7ff199ab89fb9e630e4.js.map deleted file mode 100644 index bd60a155..00000000 --- a/docs/static/js/app.f7ff199ab89fb9e630e4.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///static/js/app.f7ff199ab89fb9e630e4.js","webpack:///./src/Multiselect.vue?9541","webpack:///documentation/LangSwitcher.vue","webpack:///documentation/MultiselectExample.vue","webpack:///documentation/partials/examples/ActionDispatcher.vue","webpack:///documentation/partials/examples/AjaxSearch.vue","webpack:///documentation/partials/examples/CustomConfig.vue","webpack:///documentation/partials/examples/CustomOption.vue","webpack:///documentation/partials/examples/Groups.vue","webpack:///documentation/partials/examples/MultiSelect.vue","webpack:///documentation/partials/examples/ProgrammaticCtrl.vue","webpack:///documentation/partials/examples/SingleSelectObject.vue","webpack:///documentation/partials/examples/SingleSelectPrimitive.vue","webpack:///documentation/partials/examples/SingleSelectSearch.vue","webpack:///documentation/partials/examples/Tagging.vue","webpack:///documentation/partials/examples/VuexActions.vue","webpack:///src/Multiselect.vue","webpack:///./documentation/partials/examples/index.js","webpack:///./documentation/LangSwitcher.vue","webpack:///./documentation/MultiselectExample.vue?7d82","webpack:///./documentation/data/countries.json","webpack:///./documentation/main.js","webpack:///./documentation/partials/examples/countriesApi.js","webpack:///./src/multiselectMixin.js","webpack:///./src/pointerMixin.js","webpack:///./documentation/partials/examples/ActionDispatcher.vue","webpack:///./documentation/partials/examples/AjaxSearch.vue?1e4f","webpack:///./documentation/partials/examples/CustomConfig.vue?41a1","webpack:///./documentation/partials/examples/CustomOption.vue?8a10","webpack:///./documentation/partials/examples/Groups.vue","webpack:///./documentation/partials/examples/MultiSelect.vue?61e7","webpack:///./documentation/partials/examples/ProgrammaticCtrl.vue?878e","webpack:///./documentation/partials/examples/SingleSelectObject.vue","webpack:///./documentation/partials/examples/SingleSelectPrimitive.vue","webpack:///./documentation/partials/examples/SingleSelectSearch.vue","webpack:///./documentation/partials/examples/Tagging.vue","webpack:///./documentation/partials/examples/VuexActions.vue","webpack:///./documentation/partials/examples/ProgrammaticCtrl.vue?9c06","webpack:///./documentation/partials/examples/Tagging.vue?2a29","webpack:///./documentation/partials/examples/SingleSelectObject.vue?70f5","webpack:///./documentation/partials/examples/CustomOption.vue?17b4","webpack:///./documentation/partials/examples/MultiSelect.vue?878a","webpack:///./documentation/MultiselectExample.vue?7f23","webpack:///./documentation/partials/examples/SingleSelectPrimitive.vue?0e4a","webpack:///./documentation/partials/examples/VuexActions.vue?f324","webpack:///./src/Multiselect.vue?d7c4","webpack:///./documentation/partials/examples/AjaxSearch.vue?23da","webpack:///./documentation/partials/examples/ActionDispatcher.vue?e8b3","webpack:///./documentation/partials/examples/CustomConfig.vue?6cb6","webpack:///./documentation/partials/examples/Groups.vue?4662","webpack:///./documentation/LangSwitcher.vue?c94c","webpack:///./documentation/partials/examples/SingleSelectSearch.vue?324f"],"names":["webpackJsonp","module","__webpack_exports__","__webpack_require__","injectStyle","ssrContext","normalizeComponent","__vue_styles__","Component","props","methods","select","__WEBPACK_IMPORTED_MODULE_0_core_js_modules_es_array_push_js__","__WEBPACK_IMPORTED_MODULE_1__src_Multiselect__","n","components","Multiselect","data","badges","img","name","value","onTagging","language","__WEBPACK_IMPORTED_MODULE_0_vue_multiselect__","actions","dispatchAction","window","console","__WEBPACK_IMPORTED_MODULE_1__countriesApi__","selectedCountries","countries","isLoading","limitText","asyncFind","ajaxFindCountry","clearAll","__WEBPACK_IMPORTED_MODULE_0_core_js_modules_es_array_index_of_js__","__WEBPACK_IMPORTED_MODULE_1_vue_multiselect__","isDisabled","isTouched","options","computed","isInvalid","onChange","onSelect","onTouch","__WEBPACK_IMPORTED_MODULE_0_core_js_modules_es_array_concat_js__","title","desc","customLabel","libs","category","__WEBPACK_IMPORTED_MODULE_0_core_js_modules_web_timers_js__","__WEBPACK_IMPORTED_MODULE_1_core_js_modules_es_regexp_exec_js__","__WEBPACK_IMPORTED_MODULE_2_core_js_modules_es_string_search_js__","__WEBPACK_IMPORTED_MODULE_3_vue_multiselect__","isOpen","toggle","setTimeout","open","close","$isDisabled","__WEBPACK_IMPORTED_MODULE_0_core_js_modules_es_function_name_js__","__WEBPACK_IMPORTED_MODULE_1_core_js_modules_es_array_concat_js__","__WEBPACK_IMPORTED_MODULE_2_vue_multiselect__","nameWithLang","code","addTag","__WEBPACK_IMPORTED_MODULE_0__home_matt_git_vue_multiselect_node_modules_babel_runtime_helpers_esm_objectSpread2_js__","__WEBPACK_IMPORTED_MODULE_1_vue__","__WEBPACK_IMPORTED_MODULE_1_vue___default","__WEBPACK_IMPORTED_MODULE_2_vuex__","mapState","Vue","state","mutations","updateValue","updateValueAction","commit","store","mapActions","__WEBPACK_IMPORTED_MODULE_0_core_js_modules_es_number_constructor_js__","__WEBPACK_IMPORTED_MODULE_1_core_js_modules_es_array_slice_js__","__WEBPACK_IMPORTED_MODULE_2__multiselectMixin__","__WEBPACK_IMPORTED_MODULE_3__pointerMixin__","mixins","type","selectLabel","selectGroupLabel","selectedLabel","deselectLabel","deselectGroupLabel","showLabels","limit","maxHeight","loading","disabled","openDirection","showNoOptions","showNoResults","tabindex","hasOptionGroup","isSingleLabelVisible","isPlaceholderVisible","visibleValues","singleValue","deselectLabelText","deselectGroupLabelText","selectLabelText","selectGroupLabelText","selectedLabelText","inputStyle","width","position","padding","contentStyle","display","isAbove","showSearchInput","exports","calculateNavPositions","sections","Array","from","document","querySelectorAll","map","section","id","offset","getBoundingClientRect","top","pageYOffset","Object","defineProperty","__WEBPACK_IMPORTED_MODULE_1_core_js_modules_es_array_map_js__","__WEBPACK_IMPORTED_MODULE_2_core_js_modules_es_array_from_js__","__WEBPACK_IMPORTED_MODULE_3_core_js_modules_es_string_iterator_js__","__WEBPACK_IMPORTED_MODULE_4_core_js_modules_es_array_concat_js__","__WEBPACK_IMPORTED_MODULE_5_core_js_modules_es_array_push_js__","__WEBPACK_IMPORTED_MODULE_6_core_js_modules_web_timers_js__","__WEBPACK_IMPORTED_MODULE_7_vue__","__WEBPACK_IMPORTED_MODULE_7_vue___default","__WEBPACK_IMPORTED_MODULE_8__partials_examples__","__WEBPACK_IMPORTED_MODULE_9__LangSwitcher__","__WEBPACK_IMPORTED_MODULE_10__MultiselectExample__","__WEBPACK_IMPORTED_MODULE_11_vue_multiselect__","__WEBPACK_IMPORTED_MODULE_12__docs_scss__","require","polyfill","SL","el","examples","MultiselectExample","LangSwitcher","markupLangs","markupLanguage","isNavSticky","firstColor","Math","floor","random","secondColor","currentPosition","versions","version","gradient","background","this","pickVersion","location","assign","selectLanguage","lang","adjustNav","scrollY","innerHeight","i","length","newTag","source","push","mounted","addEventListener","query","Promise","resolve","reject","results","filter","element","index","array","toLowerCase","includes","__WEBPACK_IMPORTED_MODULE_0_core_js_modules_es_object_to_string_js__","__WEBPACK_IMPORTED_MODULE_1_core_js_modules_web_timers_js__","__WEBPACK_IMPORTED_MODULE_2_core_js_modules_es_array_filter_js__","__WEBPACK_IMPORTED_MODULE_3_core_js_modules_es_array_includes_js__","__WEBPACK_IMPORTED_MODULE_4_core_js_modules_es_string_includes_js__","__WEBPACK_IMPORTED_MODULE_5_core_js_modules_es_function_name_js__","__WEBPACK_IMPORTED_MODULE_6__data_countries_json__","__WEBPACK_IMPORTED_MODULE_6__data_countries_json___default","isEmpty","opt","isArray","not","fun","str","undefined","toString","indexOf","trim","filterOptions","search","label","option","stripGroups","$isLabel","flattenOptions","values","reduce","prev","curr","$groupLabel","concat","filterGroups","groupLabel","groups","group","warn","groupOptions","__WEBPACK_IMPORTED_MODULE_0__home_matt_git_vue_multiselect_node_modules_babel_runtime_helpers_esm_typeof_js__","__WEBPACK_IMPORTED_MODULE_1__home_matt_git_vue_multiselect_node_modules_babel_runtime_helpers_esm_defineProperty_js__","__WEBPACK_IMPORTED_MODULE_2_core_js_modules_es_array_is_array_js__","__WEBPACK_IMPORTED_MODULE_3_core_js_modules_es_error_to_string_js__","__WEBPACK_IMPORTED_MODULE_4_core_js_modules_es_date_to_string_js__","__WEBPACK_IMPORTED_MODULE_5_core_js_modules_es_object_to_string_js__","__WEBPACK_IMPORTED_MODULE_6_core_js_modules_es_regexp_to_string_js__","__WEBPACK_IMPORTED_MODULE_7_core_js_modules_es_array_index_of_js__","__WEBPACK_IMPORTED_MODULE_8_core_js_modules_es_string_trim_js__","__WEBPACK_IMPORTED_MODULE_9_core_js_modules_es_array_filter_js__","__WEBPACK_IMPORTED_MODULE_10_core_js_modules_es_array_reduce_js__","__WEBPACK_IMPORTED_MODULE_11_core_js_modules_es_array_push_js__","__WEBPACK_IMPORTED_MODULE_12_core_js_modules_es_array_concat_js__","__WEBPACK_IMPORTED_MODULE_13_core_js_modules_es_array_map_js__","__WEBPACK_IMPORTED_MODULE_14_core_js_modules_es_number_constructor_js__","__WEBPACK_IMPORTED_MODULE_15_core_js_modules_es_regexp_exec_js__","__WEBPACK_IMPORTED_MODULE_16_core_js_modules_es_string_search_js__","__WEBPACK_IMPORTED_MODULE_17_core_js_modules_es_array_unshift_js__","__WEBPACK_IMPORTED_MODULE_18_core_js_modules_es_array_slice_js__","__WEBPACK_IMPORTED_MODULE_19_core_js_modules_es_array_find_js__","__WEBPACK_IMPORTED_MODULE_20_core_js_modules_es_array_splice_js__","__WEBPACK_IMPORTED_MODULE_21_core_js_modules_es_array_every_js__","flow","fns","x","v","f","preferredOpenDirection","optimizedHeight","internalSearch","Boolean","default","required","multiple","trackBy","String","searchable","clearOnSelect","hideSelected","placeholder","allowEmpty","resetAfter","closeOnSelect","Function","taggable","tagPlaceholder","tagPosition","max","Number","optionsLimit","groupValues","groupSelect","blockKeys","preserveSearch","preselectFirst","preventAutofocus","internalValue","filteredOptions","normalizedSearch","filterAndFlat","isSelected","isExistingOption","isTag","unshift","slice","valueKeys","optionKeys","flatAndStrip","currentOptionLabel","getOptionLabel","watch","$emit","getValue","updateSearch","isOptionDisabled","key","selectGroup","pointerDirty","deactivate","removeElement","selectedGroup","find","wholeGroupSelected","newValue","optionsToAdd","splice","every","wholeGroupDisabled","shouldClose","removeLastElement","activate","adjustPosition","pointer","$nextTick","$refs","focus","$el","blur","spaceAbove","spaceBelow","bottom","min","__WEBPACK_IMPORTED_MODULE_7_core_js_modules_es_array_find_js__","showPointer","optionHeight","pointerPosition","visibleElements","pointerAdjust","setAttribute","optionHighlight","groupHighlight","addPointerElement","pointerReset","pointerForward","list","scrollTop","pointerBackward","pointerSet","render","_vm","_h","$createElement","_c","_self","staticClass","on","_v","_s","ref","attrs","$event","staticRenderFns","esExports","model","callback","$$v","expression","scopedSlots","_u","fn","directives","rawName","_e","slot","class","_k","keyCode","target","currentTarget","preventDefault","stopPropagation","_t","_l","domProps","style","apply","arguments","remove","current"],"mappings":"AAAAA,cAAc,IACP,CACA,CACA,CACA,CACA,CACA,CACA,CAED,SAAUC,EAAQC,EAAqBC,GAE7C,YCXA,SAASC,GAAaC,GACpB,EAAQ,KADV,qBAGIC,EAAqB,EAAQ,GAS7BC,EAAiBH,EAKjBI,EAAYF,EACd,IACA,KATgC,EAWhCC,EAPoB,KAEU,KAUjB,KAAAC,EAAiB,SDmBzB,CACA,CACC,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CAEF,SAAUP,EAAQC,EAAqBC,GAE7C,YEzGe,MACfM,0BACAC,SACAC,mBACA,2BF2HM,SAAUV,EAAQC,EAAqBC,GAE7C,YACqB,IAAIS,GAAiET,EAAoB,IAErFU,GADyEV,EAAoBW,EAAEF,GAC9CT,EAAoB,GGvH/E,MACfY,YACAC,iBAEAC,gBACA,OACAC,SACAC,2MAAAC,iBACAD,kFAAAC,sBACAD,qLAAAC,+BACAD,2VAAAC,4BACAD,gFAAAC,yBAEAC,WAGAX,SACAY,sBACA,kBAAAF,OAAAG,aACA,iBAAAH,OAAAG,iBHqKM,SAAUtB,EAAQC,EAAqBC,GAE7C,YACqB,IAAIqB,GAAgDrB,EAAoB,EInM9E,MACfY,YACAC,iBAEAC,gBACA,OACAQ,8CAGAf,SACAgB,2BACA,UACA,YACAC,mDACA,MACA,mBACAC,wDACA,MACA,iBACAD,0BJ2NM,SAAU1B,EAAQC,EAAqBC,GAE7C,YACqB,IAAIqB,GAAgDrB,EAAoB,GACpE0B,EAA8C1B,EAAoB,IKpN5E,MACfY,YACAC,iBAEAC,gBACA,OACAa,qBACAC,aACAC,eAGAtB,SACAuB,sBACA,2CAEAC,sBAAA,UACA,mBACAC,6BACA,cACA,kBAGAC,oBACA,8BLyQM,SAAUnC,EAAQC,EAAqBC,GAE7C,YACqB,IAAIkC,GAAqElC,EAAoB,KAEzFmC,GAD6EnC,EAAoBW,EAAEuB,GACnDlC,EAAoB,GMrT9E,MACfY,YACAC,iBAEAC,gBACA,OACAsB,cACAC,aACAnB,SACAoB,sFAGAC,UACAC,qBACA,+CAGAjC,SACAkC,qBACA,cACA,6CAEAC,qBACA,yCAEAC,mBACA,sBN0VM,SAAU7C,EAAQC,EAAqBC,GAE7C,YACqB,IAAI4C,GAAmE5C,EAAoB,IAEvFmC,GAD2EnC,EAAoBW,EAAEiC,GACjD5C,EAAoB,GOxX9E,MACfY,YACAC,iBAEAC,gBACA,OACAI,OAAA2B,iBAAAC,gCAAA9B,oCACAsB,UACAO,qBAAAC,2BAAA9B,iCACA6B,iBAAAC,eAAA9B,wCACA6B,iBAAAC,gCAAA9B,qCACA6B,cAAAC,6BAAA9B,0CAIAT,SACAwC,wBAAA,cAAAD,QACA,wCP+aM,SAAUhD,EAAQC,EAAqBC,GAE7C,YACqB,IAAIqB,GAAgDrB,EAAoB,EQzc9E,MACfY,YACAC,iBAEAC,gBACA,OACAwB,UAEAlB,sBACA4B,OACA/B,cAAAgC,uBACAhC,cAAAgC,uBAIA7B,gBACA4B,OACA/B,aAAAgC,qBACAhC,eAAAgC,uBAIA7B,iBACA4B,OACA/B,eAAAgC,qBACAhC,eAAAgC,uBAIA/B,aR6eM,SAAUpB,EAAQC,EAAqBC,GAE7C,YACqB,IAAIqB,GAAgDrB,EAAoB,ESvgB9E,MACfY,YACAC,iBAEAC,gBACA,OACAI,SACAoB,UACArB,cAAAG,wBACAH,cAAAG,wBACAH,aAAAG,kBACAH,eAAAG,kBACAH,eAAAG,iBACAH,eAAAG,wBTwjBM,SAAUtB,EAAQC,EAAqBC,GAE7C,YACqB,IAAIkD,GAA8DlD,EAAoB,IAElFmD,GADsEnD,EAAoBW,EAAEuC,GAC1BlD,EAAoB,KAEtFoD,GAD0EpD,EAAoBW,EAAEwC,GAC5BnD,EAAoB,KAExFqD,GAD4ErD,EAAoBW,EAAEyC,GAClDpD,EAAoB,GUjlB9E,MACfY,YACAC,iBAEAC,gBACA,OACAwC,UACApC,SACAoB,mFAGA/B,SACAgD,kBAAA,UACA,oCAEAC,sBACA,yCACA,MAEAC,gBACA,mCAEAC,iBACA,wCVsnBM,SAAU5D,EAAQC,EAAqBC,GAE7C,YACqB,IAAIqB,GAAgDrB,EAAoB,EWjpB9E,MACfY,YACAC,iBAEAC,gBACA,OACAI,WACAoB,UACArB,cAAAG,wBACAH,aAAAG,kBACAH,eAAAG,kBACAH,eAAAG,eAAAuC,iBACA1C,eAAAG,wBX6rBM,SAAUtB,EAAQC,EAAqBC,GAE7C,YACqB,IAAIqB,GAAgDrB,EAAoB,EYntB9E,MACfY,YACAC,iBAEAC,gBACA,OACAI,SACAoB,6KZ6uBM,SAAUxC,EAAQC,EAAqBC,GAE7C,YACqB,IAAI4D,GAAoE5D,EAAoB,KAExF6D,GAD4E7D,EAAoBW,EAAEiD,GAC/B5D,EAAoB,KAEvF8D,GAD2E9D,EAAoBW,EAAEkD,GACjD7D,EAAoB,Ga3vB9E,MACfY,YACAC,iBAEAC,gBACA,OACAI,OAAAD,cAAAG,uBACAkB,UACArB,cAAAG,wBACAH,aAAAG,kBACAH,eAAAG,kBACAH,eAAAG,iBACAH,eAAAG,sBAIAb,SACAwD,yBAAA,aAAA3C,YACA,6CbqyBM,SAAUtB,EAAQC,EAAqBC,GAE7C,YACqB,IAAIS,GAAiET,EAAoB,IAErFmC,GADyEnC,EAAoBW,EAAEF,GAC/CT,EAAoB,GczzB9E,MACfY,YACAC,iBAEAC,gBACA,OACAI,QACAD,kBAAA+C,YAEA1B,UACArB,cAAA+C,YACA/C,kBAAA+C,YACA/C,mBAAA+C,cAIAzD,SACA0D,mBACA,OACAhD,OACA+C,oDAEA,sBACA,uBd61BM,SAAUlE,EAAQC,EAAqBC,GAE7C,YACqB,IAAIkE,GAAuHlE,EAAoB,IAC3ImE,EAAoCnE,EAAoB,IACxDoE,EAA4CpE,EAAoBW,EAAEwD,GAClEE,EAAqCrE,EAAoB,KACzDqD,EAAgDrD,EAAoB,Geh4B7F,iBAAAsE,cAEAC,KAAIA,IAAIA,IAER,sBACAC,OACAtD,aACAoB,mEAEAmC,WACAC,0BACAF,YAGAlD,SACAqD,iCACAC,EADA,UACAA,oBAKe,MACfC,QACAjE,YACAC,iBAEA0B,qBACA+B,wBAEA/D,oBACAuE,4Bfm5BM,SAAUhF,EAAQC,EAAqBC,GAE7C,YACqB,IAAI+E,GAAyE/E,EAAoB,IAE7FgF,GADiFhF,EAAoBW,EAAEoE,GACrC/E,EAAoB,MAEtFiF,GAD0EjF,EAAoBW,EAAEqE,GAC9ChF,EAAoB,MACtEkF,EAA8ClF,EAAoB,IgB1yB5E,MACfiB,uBACAkE,iBACA7E,OAMAW,MACAmE,YACA,YAOAC,aACAD,YACA,iCAOAE,kBACAF,YACA,uCAOAG,eACAH,YACA,oBAOAI,eACAJ,YACA,iCAOAK,oBACAL,YACA,yCAOAM,YACAN,aACA,YAOAO,OACAP,YACA,eAOAQ,WACAR,YACA,aASAtD,WACAsD,cACA,qDAOAS,SACAT,aACA,YAOAU,UACAV,aACA,YAOAW,eACAX,YACA,YAOAY,eACAZ,aACA,YAEAa,eACAb,aACA,YAEAc,UACAd,YACA,YAGA7C,UACA4D,0BACA,4DAEAC,gCACA,OACA,2CACA,iCACA,2BAGAC,gCACA,kEAEAC,yBACA,gEAEAC,uBACA,8BAEAC,6BACA,8CAEAC,kCACA,mDAEAC,2BACA,4CAEAC,gCACA,iDAEAC,6BACA,8CAEAC,sBACA,MACA,kBACA,6CAGA,aACAC,eACAA,UAAAC,oBAAAC,aAEA,IAEAC,wBACA,4BACAC,yBACAA,kBAEAC,mBACA,gEAGA,8BACA,+BAIA,uCAGAC,2BACA,MACA,oBACA,6BACA,sDACA,iBhB48BQ,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACC,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CAEH,SAAUtH,EAAQC,EAAqBC,GAE7C,YiBp2CA,6sBjB64CS,CACA,CACA,CAEH,SAAUF,EAAQuH,KAMlB,SAAUvH,EAAQC,EAAqBC,GAE7C,YkBz5CA,sBAAIG,EAAqB,EAAQ,GAc7BE,EAAYF,EACd,IACA,KATgC,EAEb,KAEC,KAEU,KAUjB,KAAAE,EAAiB,SlBk6C1B,SAAUP,EAAQC,EAAqBC,GAE7C,YmB37CA,SAASC,GAAaC,GACpB,EAAQ,KADV,qBAGIC,EAAqB,EAAQ,GAS7BC,EAAiBH,EAKjBI,EAAYF,EACd,IACA,KATgC,EAWhCC,EAPoB,KAEU,KAUjB,KAAAC,EAAiB,SnBo8C1B,SAAUP,EAAQuH,GoB99CxBvH,EAAOuH,UAAY,KAAO,cAAc,KAAO,OAAO,KAAO,gBAAgB,KAAO,OAAO,KAAO,UAAU,KAAO,OAAO,KAAO,UAAU,KAAO,OAAO,KAAO,iBAAiB,KAAO,OAAO,KAAO,UAAU,KAAO,OAAO,KAAO,SAAS,KAAO,OAAO,KAAO,WAAW,KAAO,OAAO,KAAO,aAAa,KAAO,OAAO,KAAO,sBAAsB,KAAO,OAAO,KAAO,YAAY,KAAO,OAAO,KAAO,UAAU,KAAO,OAAO,KAAO,QAAQ,KAAO,OAAO,KAAO,YAAY,KAAO,OAAO,KAAO,UAAU,KAAO,OAAO,KAAO,aAAa,KAAO,OAAO,KAAO,UAAU,KAAO,OAAO,KAAO,UAAU,KAAO,OAAO,KAAO,aAAa,KAAO,OAAO,KAAO,WAAW,KAAO,OAAO,KAAO,UAAU,KAAO,OAAO,KAAO,UAAU,KAAO,OAAO,KAAO,SAAS,KAAO,OAAO,KAAO,QAAQ,KAAO,OAAO,KAAO,UAAU,KAAO,OAAO,KAAO,SAAS,KAAO,OAAO,KAAO,UAAU,KAAO,OAAO,KAAO,yBAAyB,KAAO,OAAO,KAAO,WAAW,KAAO,OAAO,KAAO,gBAAgB,KAAO,OAAO,KAAO,SAAS,KAAO,OAAO,KAAO,iCAAiC,KAAO,OAAO,KAAO,oBAAoB,KAAO,OAAO,KAAO,WAAW,KAAO,OAAO,KAAO,eAAe,KAAO,OAAO,KAAO,UAAU,KAAO,OAAO,KAAO,WAAW,KAAO,OAAO,KAAO,WAAW,KAAO,OAAO,KAAO,SAAS,KAAO,OAAO,KAAO,aAAa,KAAO,OAAO,KAAO,iBAAiB,KAAO,OAAO,KAAO,2BAA2B,KAAO,OAAO,KAAO,OAAO,KAAO,OAAO,KAAO,QAAQ,KAAO,OAAO,KAAO,QAAQ,KAAO,OAAO,KAAO,mBAAmB,KAAO,OAAO,KAAO,0BAA0B,KAAO,OAAO,KAAO,WAAW,KAAO,OAAO,KAAO,UAAU,KAAO,OAAO,KAAO,QAAQ,KAAO,OAAO,KAAO,wCAAwC,KAAO,OAAO,KAAO,eAAe,KAAO,OAAO,KAAO,aAAa,KAAO,OAAO,KAAO,gBAAiB,KAAO,OAAO,KAAO,UAAU,KAAO,OAAO,KAAO,OAAO,KAAO,OAAO,KAAO,SAAS,KAAO,OAAO,KAAO,iBAAiB,KAAO,OAAO,KAAO,UAAU,KAAO,OAAO,KAAO,WAAW,KAAO,OAAO,KAAO,WAAW,KAAO,OAAO,KAAO,qBAAqB,KAAO,OAAO,KAAO,UAAU,KAAO,OAAO,KAAO,QAAQ,KAAO,OAAO,KAAO,cAAc,KAAO,OAAO,KAAO,oBAAoB,KAAO,OAAO,KAAO,UAAU,KAAO,OAAO,KAAO,UAAU,KAAO,OAAO,KAAO,WAAW,KAAO,OAAO,KAAO,8BAA8B,KAAO,OAAO,KAAO,gBAAgB,KAAO,OAAO,KAAO,OAAO,KAAO,OAAO,KAAO,UAAU,KAAO,OAAO,KAAO,SAAS,KAAO,OAAO,KAAO,gBAAgB,KAAO,OAAO,KAAO,mBAAmB,KAAO,OAAO,KAAO,8BAA8B,KAAO,OAAO,KAAO,QAAQ,KAAO,OAAO,KAAO,SAAS,KAAO,OAAO,KAAO,UAAU,KAAO,OAAO,KAAO,UAAU,KAAO,OAAO,KAAO,QAAQ,KAAO,OAAO,KAAO,YAAY,KAAO,OAAO,KAAO,SAAS,KAAO,OAAO,KAAO,YAAY,KAAO,OAAO,KAAO,UAAU,KAAO,OAAO,KAAO,aAAa,KAAO,OAAO,KAAO,OAAO,KAAO,OAAO,KAAO,YAAY,KAAO,OAAO,KAAO,WAAW,KAAO,OAAO,KAAO,SAAS,KAAO,OAAO,KAAO,gBAAgB,KAAO,OAAO,KAAO,SAAS,KAAO,OAAO,KAAO,QAAQ,KAAO,OAAO,KAAO,oCAAoC,KAAO,OAAO,KAAO,gCAAgC,KAAO,OAAO,KAAO,WAAW,KAAO,OAAO,KAAO,YAAY,KAAO,OAAO,KAAO,UAAU,KAAO,OAAO,KAAO,UAAU,KAAO,OAAO,KAAO,QAAQ,KAAO,OAAO,KAAO,YAAY,KAAO,OAAO,KAAO,4BAA4B,KAAO,OAAO,KAAO,OAAO,KAAO,OAAO,KAAO,UAAU,KAAO,OAAO,KAAO,cAAc,KAAO,OAAO,KAAO,SAAS,KAAO,OAAO,KAAO,QAAQ,KAAO,OAAO,KAAO,UAAU,KAAO,OAAO,KAAO,QAAQ,KAAO,OAAO,KAAO,SAAS,KAAO,OAAO,KAAO,SAAS,KAAO,OAAO,KAAO,aAAa,KAAO,OAAO,KAAO,QAAQ,KAAO,OAAO,KAAO,WAAW,KAAO,OAAO,KAAO,yCAA0C,KAAO,OAAO,KAAO,qBAAqB,KAAO,OAAO,KAAO,SAAS,KAAO,OAAO,KAAO,aAAa,KAAO,OAAO,KAAO,mCAAoC,KAAO,OAAO,KAAO,SAAS,KAAO,OAAO,KAAO,UAAU,KAAO,OAAO,KAAO,UAAU,KAAO,OAAO,KAAO,UAAU,KAAO,OAAO,KAAO,yBAAyB,KAAO,OAAO,KAAO,gBAAgB,KAAO,OAAO,KAAO,YAAY,KAAO,OAAO,KAAO,aAAa,KAAO,OAAO,KAAO,QAAQ,KAAO,OAAO,KAAO,6CAA6C,KAAO,OAAO,KAAO,aAAa,KAAO,OAAO,KAAO,SAAS,KAAO,OAAO,KAAO,WAAW,KAAO,OAAO,KAAO,WAAW,KAAO,OAAO,KAAO,OAAO,KAAO,OAAO,KAAO,QAAQ,KAAO,OAAO,KAAO,mBAAmB,KAAO,OAAO,KAAO,aAAa,KAAO,OAAO,KAAO,aAAa,KAAO,OAAO,KAAO,YAAY,KAAO,OAAO,KAAO,UAAU,KAAO,OAAO,KAAO,SAAS,KAAO,OAAO,KAAO,kCAAkC,KAAO,OAAO,KAAO,uBAAuB,KAAO,OAAO,KAAO,SAAS,KAAO,OAAO,KAAO,WAAW,KAAO,OAAO,KAAO,aAAa,KAAO,OAAO,KAAO,UAAU,KAAO,OAAO,KAAO,aAAa,KAAO,OAAO,KAAO,UAAU,KAAO,OAAO,KAAO,UAAU,KAAO,OAAO,KAAO,QAAQ,KAAO,OAAO,KAAO,QAAQ,KAAO,OAAO,KAAO,cAAc,KAAO,OAAO,KAAO,uBAAuB,KAAO,OAAO,KAAO,gBAAgB,KAAO,OAAO,KAAO,cAAc,KAAO,OAAO,KAAO,YAAY,KAAO,OAAO,KAAO,QAAQ,KAAO,OAAO,KAAO,UAAU,KAAO,OAAO,KAAO,OAAO,KAAO,OAAO,KAAO,iBAAiB,KAAO,OAAO,KAAO,2BAA2B,KAAO,OAAO,KAAO,SAAS,KAAO,OAAO,KAAO,OAAO,KAAO,OAAO,KAAO,WAAW,KAAO,OAAO,KAAO,QAAQ,KAAO,OAAO,KAAO,kCAAkC,KAAO,OAAO,KAAO,SAAS,KAAO,OAAO,KAAO,mBAAmB,KAAO,OAAO,KAAO,WAAW,KAAO,OAAO,KAAO,OAAO,KAAO,OAAO,KAAO,cAAc,KAAO,OAAO,KAAO,WAAW,KAAO,OAAO,KAAO,SAAS,KAAO,OAAO,KAAO,WAAW,KAAO,OAAO,KAAO,cAAc,KAAO,OAAO,KAAO,QAAQ,KAAO,OAAO,KAAO,UAAU,KAAO,OAAO,KAAO,UAAU,KAAO,OAAO,KAAO,qBAAqB,KAAO,OAAO,KAAO,SAAS,KAAO,OAAO,KAAO,eAAe,KAAO,OAAO,KAAO,wBAAwB,KAAO,OAAO,KAAO,cAAc,KAAO,OAAO,KAAO,4BAA4B,KAAO,OAAO,KAAO,mCAAmC,KAAO,OAAO,KAAO,QAAQ,KAAO,OAAO,KAAO,aAAa,KAAO,OAAO,KAAO,wBAAwB,KAAO,OAAO,KAAO,eAAe,KAAO,OAAO,KAAO,UAAU,KAAO,OAAO,KAAO,wBAAwB,KAAO,OAAO,KAAO,aAAa,KAAO,OAAO,KAAO,eAAe,KAAO,OAAO,KAAO,YAAY,KAAO,OAAO,KAAO,WAAW,KAAO,OAAO,KAAO,WAAW,KAAO,OAAO,KAAO,kBAAkB,KAAO,OAAO,KAAO,UAAU,KAAO,OAAO,KAAO,eAAe,KAAO,OAAO,KAAO,+CAA+C,KAAO,OAAO,KAAO,QAAQ,KAAO,OAAO,KAAO,YAAY,KAAO,OAAO,KAAO,QAAQ,KAAO,OAAO,KAAO,WAAW,KAAO,OAAO,KAAO,yBAAyB,KAAO,OAAO,KAAO,YAAY,KAAO,OAAO,KAAO,SAAS,KAAO,OAAO,KAAO,cAAc,KAAO,OAAO,KAAO,uBAAuB,KAAO,OAAO,KAAO,4BAA4B,KAAO,OAAO,KAAO,aAAa,KAAO,OAAO,KAAO,+BAA+B,KAAO,OAAO,KAAO,WAAW,KAAO,OAAO,KAAO,cAAc,KAAO,OAAO,KAAO,OAAO,KAAO,OAAO,KAAO,UAAU,KAAO,OAAO,KAAO,QAAQ,KAAO,OAAO,KAAO,sBAAsB,KAAO,OAAO,KAAO,UAAU,KAAO,OAAO,KAAO,SAAS,KAAO,OAAO,KAAO,eAAe,KAAO,OAAO,KAAO,2BAA2B,KAAO,OAAO,KAAO,SAAS,KAAO,OAAO,KAAO,SAAS,KAAO,OAAO,KAAO,UAAU,KAAO,OAAO,KAAO,uBAAuB,KAAO,OAAO,KAAO,iBAAiB,KAAO,OAAO,KAAO,gBAAgB,KAAO,OAAO,KAAO,uCAAuC,KAAO,OAAO,KAAO,UAAU,KAAO,OAAO,KAAO,aAAa,KAAO,OAAO,KAAO,UAAU,KAAO,OAAO,KAAO,YAAY,KAAO,OAAO,KAAO,WAAW,KAAO,OAAO,KAAO,0BAA0B,KAAO,OAAO,KAAO,uBAAuB,KAAO,OAAO,KAAO,oBAAoB,KAAO,OAAO,KAAO,iBAAiB,KAAO,OAAO,KAAO,QAAQ,KAAO,OAAO,KAAO,SAAS,KAAO,OAAO,KAAO,WAAW,KAAO,QpBm+C10Q,CACA,CAEH,SAAUvH,EAAQC,EAAqBC,GAE7C,YqB/9CA,SAASsH,KACPC,EAAWC,MACRC,KAAKC,SAASC,iBAAiB,mBAC/BC,IAAI,SAAAC,GACH,OACEC,GAAID,EAAQC,GACZC,OAAQF,EAAQG,wBAAwBC,IAAMzG,OAAO0G,YAAc,MrB09C3EC,OAAOC,eAAerI,EAAqB,cAAgBmB,OAAO,GAC7C,IAAIgD,GAAuHlE,EAAoB,IAC3IqI,EAAgErI,EAAoB,IAEpFsI,GADwEtI,EAAoBW,EAAE0H,GAC7BrI,EAAoB,MAErFuI,GADyEvI,EAAoBW,EAAE2H,GACzBtI,EAAoB,MAE1FwI,GAD8ExI,EAAoBW,EAAE4H,GACjCvI,EAAoB,KAEvFyI,GAD2EzI,EAAoBW,EAAE6H,GAChCxI,EAAoB,KAErF0I,GADyE1I,EAAoBW,EAAE8H,GACjCzI,EAAoB,KAElF2I,GADsE3I,EAAoBW,EAAE+H,GACxD1I,EAAoB,KACxD4I,EAA4C5I,EAAoBW,EAAEgI,GAClEE,EAAmD7I,EAAoB,KACvE8I,EAA8C9I,EAAoB,KAClE+I,EAAqD/I,EAAoB,KACzEgJ,EAAiDhJ,EAAoB,GACrEiJ,EAA4CjJ,EAAoB,IACZA,GAAoBW,EAAEsI,EqBz/CnGC,GAAQ,KAAeC,UAevB,IACI5B,GADE6B,EAAK,aAIX,IAAI7E,MACF8E,GAAI,OACJzI,WAAY,qBACP0I,OACHC,uBACAC,iBACA3I,kBAEFC,KAAI,WACF,OACE2I,aAAc,MAAO,QACrBC,eAAgB,MAChBC,aAAa,EACbC,WAAYC,KAAKC,MAAsB,IAAhBD,KAAKE,UAC5BC,YAAaH,KAAKC,MAAsB,IAAhBD,KAAKE,UAC7BE,gBAAiB,GACjBC,UAAW,OAAQ,QACnBC,QAAS,SAGb5H,UACE6H,SAAQ,WACN,OACEC,WAAY,uCAAF,OAAyCC,KAAKV,WAAaR,EAAE,qBAAakB,KAAKN,YAAcZ,EAAE,cAI/G7I,SACEgK,YAAW,SAAEJ,GACX,OAAQA,GACN,IAAK,OACH3I,OAAOgJ,SAASC,OAAO,gBACvB,MACF,KAAK,OACHjJ,OAAOgJ,SAASC,OAAO,qCAI7BC,eAAc,SAAEC,GACdL,KAAKZ,eAAiBiB,GAExBC,UAAS,WACPN,KAAKX,YAAcnI,OAAOqJ,QAAUrJ,OAAOsJ,YACtCvD,GAAUD,GACf,KAAK,GAAIyD,GAAIxD,EAASyD,OAAS,EAAGD,GAAK,EAAGA,IACxC,GAAIvJ,OAAOqJ,QAAUtD,EAASwD,GAAGhD,OAAQ,CACvCuC,KAAKL,gBAAkB1C,EAASwD,GAAGjD,EACnC,SAIN3G,UAAS,SAAE8J,GACTX,KAAKY,OAAOC,MAAOlK,KAAMgK,EAAQ7J,SAAU6J,IAC3CX,KAAKpJ,MAAMiK,MAAOlK,KAAMgK,EAAQ7J,SAAU6J,MAG9CG,QAAO,WACLd,KAAKM,YACLpJ,OAAO6J,iBAAiB,SAAUf,KAAKM,WACvCpH,WAAW,WACT8D,KACC,SrB4gDD,SAAUxH,EAAQC,EAAqBC,GAE7C,YsBjmDO,SAASgC,GAAiBsJ,GAC/B,MAAO,IAAIC,SAAQ,SAACC,EAASC,GAC3BjI,WAAW,WACT,GAAMkI,GAAU9J,IAAU+J,OAAO,SAACC,EAASC,EAAOC,GAChD,MAAOF,GAAQ3K,KAAK8K,cAAcC,SAASV,EAAMS,gBAEnDP,GAAQE,IACP,OtB2lD0B3L,EAAuB,EAAIiC,CACvC,IAAIiK,GAAuEjM,EAAoB,IAE3FkM,GAD+ElM,EAAoBW,EAAEsL,GACvCjM,EAAoB,KAElFmM,GADsEnM,EAAoBW,EAAEuL,GACzBlM,EAAoB,MAEvFoM,GAD2EpM,EAAoBW,EAAEwL,GAC5BnM,EAAoB,MAEzFqM,GAD6ErM,EAAoBW,EAAEyL,GAC7BpM,EAAoB,MAE1FsM,GAD8EtM,EAAoBW,EAAE0L,GAChCrM,EAAoB,MAExFuM,GAD4EvM,EAAoBW,EAAE2L,GAC7CtM,EAAoB,MACzEwM,EAA6DxM,EAAoBW,EAAE4L,IAqBtG,SAAUzM,EAAQC,EAAqBC,GAE7C,YuBzoDA,SAASyM,GAASC,GAChB,MAAY,KAARA,OACAlF,MAAMmF,QAAQD,IAAuB,IAAfA,EAAI1B,UACtB0B,GAGV,QAASE,GAAKC,GACZ,MAAO,mBAAgBA,EAAG,yBAG5B,QAASb,GAAUc,EAAKxB,GAMtB,WAJYyB,KAARD,IAAmBA,EAAM,aACjB,OAARA,IAAcA,EAAM,SACZ,IAARA,IAAeA,EAAM,UAEc,IAD1BA,EAAIE,WAAWjB,cAChBkB,QAAQ3B,EAAM4B,QAG5B,QAASC,GAAe7K,EAAS8K,EAAQC,EAAOtK,GAC9C,MAAOT,GAAQqJ,OAAO,SAAA2B,GAAM,MAAItB,GAASjJ,EAAYuK,EAAQD,GAAQD,KAGvE,QAASG,GAAajL,GACpB,MAAOA,GAAQqJ,OAAO,SAAA2B,GAAM,OAAKA,EAAOE,WAG1C,QAASC,GAAgBC,EAAQL,GAC/B,MAAO,UAAC/K,GAAO,MACbA,GAAQqL,OAAO,SAACC,EAAMC,GAEpB,MAAIA,GAAKH,IAAWG,EAAKH,GAAQ1C,QAC/B4C,EAAKzC,MACH2C,YAAaD,EAAKR,GAClBG,UAAU,IAELI,EAAKG,OAAOF,EAAKH,KAEnBE,QAIb,QAASI,GAAcZ,EAAQC,EAAOK,EAAQO,EAAYlL,GACxD,MAAO,UAACmL,GAAM,MACZA,GAAOtG,IAAI,SAAAuG,GAAS,KAElB,KAAKA,EAAMT,GAET,MADAjM,SAAQ2M,KAAK,kFAGf,IAAMC,GAAelB,EAAcgB,EAAMT,GAASN,EAAQC,EAAOtK,EAEjE,OAAOsL,GAAarD,QAAM,gBAErBiD,EAAaE,EAAMF,IAAW,WAC9BP,EAASW,GAAY,SvBmlDX,GAAIC,GAAgHtO,EAAoB,IACpIuO,EAAwHvO,EAAoB,IAC5IwO,EAAqExO,EAAoB,KAEzFyO,GAD6EzO,EAAoBW,EAAE6N,GAC7BxO,EAAoB,MAE1F0O,GAD8E1O,EAAoBW,EAAE8N,GAC/BzO,EAAoB,MAEzF2O,GAD6E3O,EAAoBW,EAAE+N,GAC5B1O,EAAoB,KAE3F4O,GAD+E5O,EAAoBW,EAAEgO,GAC9B3O,EAAoB,MAE3F6O,GAD+E7O,EAAoBW,EAAEiO,GAChC5O,EAAoB,MAEzF8O,GAD6E9O,EAAoBW,EAAEkO,GACjC7O,EAAoB,MAEtF+O,GAD0E/O,EAAoBW,EAAEmO,GAC7B9O,EAAoB,MAEvFgP,GAD2EhP,EAAoBW,EAAEoO,GAC7B/O,EAAoB,MAExFiP,GAD4EjP,EAAoBW,EAAEqO,GAChChP,EAAoB,KAEtFkP,GAD0ElP,EAAoBW,EAAEsO,GAC5BjP,EAAoB,KAExFmP,GAD4EnP,EAAoBW,EAAEuO,GACjClP,EAAoB,KAErFoP,GADyEpP,EAAoBW,EAAEwO,GACrBnP,EAAoB,KAE9FqP,GADkFrP,EAAoBW,EAAEyO,GACrCpP,EAAoB,KAEvFsP,GAD2EtP,EAAoBW,EAAE0O,GAC5BrP,EAAoB,KAEzFuP,GAD6EvP,EAAoBW,EAAE2O,GAC9BtP,EAAoB,MAEzFwP,GAD6ExP,EAAoBW,EAAE4O,GAChCvP,EAAoB,MAEvFyP,GAD2EzP,EAAoBW,EAAE6O,GAC/BxP,EAAoB,MAEtF0P,GAD0E1P,EAAoBW,EAAE8O,GAC5BzP,EAAoB,MAExF2P,GAD4E3P,EAAoBW,EAAE+O,GAC/B1P,EAAoB,MuBrnD1G4P,GvBsnD8F5P,EAAoBW,EAAEgP,GuBtnD7G,WAAH,2BAAOE,EAAG,yBAAHA,EAAG,sBAAK,UAAAC,GAAC,MAAID,GAAIlC,OAAO,SAACoC,EAAGC,GAAC,MAAKA,GAAED,IAAID,KAE1C,MACbhP,KAAI,WACF,OACEsM,OAAQ,GACR9J,QAAQ,EACR2M,uBAAwB,QACxBC,gBAAiB5F,KAAK1E,YAG1BtF,OAME6P,gBACE/K,KAAMgL,QACNC,SAAS,GAQX/N,SACE8C,KAAMoC,MACN8I,UAAU,GAOZC,UACEnL,KAAMgL,QACNC,SAAS,GAMXnP,OACEkE,KAAM,KAAI,mBAER,WAQJoL,SACEpL,KAAMqL,QAORpD,OACEjI,KAAMqL,QAORC,YACEtL,KAAMgL,QACNC,SAAS,GAOXM,eACEvL,KAAMgL,QACNC,SAAS,GAOXO,cACExL,KAAMgL,QACNC,SAAS,GAOXQ,aACEzL,KAAMqL,OACNJ,QAAS,iBAOXS,YACE1L,KAAMgL,QACNC,SAAS,GAQXU,YACE3L,KAAMgL,QACNC,SAAS,GAOXW,eACE5L,KAAMgL,QACNC,SAAS,GAOXtN,aACEqC,KAAM6L,SAAQ,iBACL3D,EAAQD,GACf,MAAIZ,GAAQa,GAAgB,GACrBD,EAAQC,EAAOD,GAASC,IAQnC4D,UACE9L,KAAMgL,QACNC,SAAS,GAOXc,gBACE/L,KAAMqL,OACNJ,QAAS,+BASXe,aACEhM,KAAMqL,OACNJ,QAAS,OAOXgB,KACEjM,MAAOkM,OAAQlB,SACfC,SAAS,GAQXvI,IACEuI,QAAS,MAQXkB,cACEnM,KAAMkM,OACNjB,QAAS,KAQXmB,aACEpM,KAAMqL,QAQRxC,YACE7I,KAAMqL,QAQRgB,aACErM,KAAMgL,QACNC,SAAS,GAQXqB,WACEtM,KAAMoC,MAAK,mBAET,WAQJmK,gBACEvM,KAAMgL,QACNC,SAAS,GAOXuB,gBACExM,KAAMgL,QACNC,SAAS,GAOXwB,kBACEzM,KAAMgL,QACNC,SAAS,IAGbjF,QAAO,YAEAd,KAAKiG,UAAYjG,KAAK+G,KACzB5P,QAAQ2M,KAAK,wFAGb9D,KAAKsH,iBACJtH,KAAKwH,cAAc9G,QACpBV,KAAKhI,QAAQ0I,QAEbV,KAAK9J,OAAO8J,KAAKyH,gBAAgB,KAGrCxP,UACEuP,cAAa,WACX,MAAOxH,MAAKpJ,OAAwB,IAAfoJ,KAAKpJ,MACtBsG,MAAMmF,QAAQrC,KAAKpJ,OAASoJ,KAAKpJ,OAASoJ,KAAKpJ,WAGrD6Q,gBAAe,WACb,GAAM3E,GAAS9C,KAAK8C,QAAU,GACxB4E,EAAmB5E,EAAOrB,cAAcmB,OAE1C5K,EAAUgI,KAAKhI,QAAQyL,QAwB3B,OApBEzL,GADEgI,KAAK6F,eACG7F,KAAKkH,YACXlH,KAAK2H,cAAc3P,EAAS0P,EAAkB1H,KAAK+C,OACnDF,EAAc7K,EAAS0P,EAAkB1H,KAAK+C,MAAO/C,KAAKvH,aAEpDuH,KAAKkH,YAAc/D,EAAenD,KAAKkH,YAAalH,KAAK2D,YAAY3L,GAAWA,EAG5FA,EAAUgI,KAAKsG,aACXtO,EAAQqJ,OAAOiB,EAAItC,KAAK4H,aACxB5P,EAGAgI,KAAK4G,UAAYc,EAAiBhH,SAAWV,KAAK6H,iBAAiBH,KAC5C,WAArB1H,KAAK8G,YACP9O,EAAQ6I,MAAOiH,OAAO,EAAM/E,MAAOD,IAEnC9K,EAAQ+P,SAAUD,OAAO,EAAM/E,MAAOD,KAInC9K,EAAQgQ,MAAM,EAAGhI,KAAKiH,eAE/BgB,UAAS,WAAI,UACX,OAAIjI,MAAKkG,QACAlG,KAAKwH,cAAclK,IAAI,SAAAgE,GAAO,MAAIA,GAAQ,EAAK4E,WAE/ClG,KAAKwH,eAGhBU,WAAU,WAAI,UAEZ,QADgBlI,KAAKkH,YAAclH,KAAKmI,aAAanI,KAAKhI,SAAWgI,KAAKhI,SAC3DsF,IAAI,SAAAgE,GAAO,MAAI,GAAK7I,YAAY6I,EAAS,EAAKyB,OAAOL,WAAWjB,iBAEjF2G,mBAAkB,WAChB,MAAOpI,MAAKiG,SACRjG,KAAKoG,WAAa,GAAKpG,KAAKuG,YAC5BvG,KAAKwH,cAAc9G,OACjBV,KAAKqI,eAAerI,KAAKwH,cAAc,IACvCxH,KAAKoG,WAAa,GAAKpG,KAAKuG,cAGtC+B,OACEd,cAAa,WAEPxH,KAAKyG,YAAczG,KAAKwH,cAAc9G,SACxCV,KAAK8C,OAAS,GACd9C,KAAKuI,MAAM,QAASvI,KAAKiG,YAAgB,QAG7CnD,OAAM,WACJ9C,KAAKuI,MAAM,gBAAiBvI,KAAK8C,OAAQ9C,KAAKxC,MAGlDvH,SAKEuS,SAAQ,WACN,MAAOxI,MAAKiG,SACRjG,KAAKwH,cACyB,IAA9BxH,KAAKwH,cAAc9G,OACjB,KACAV,KAAKwH,cAAc,IAO3BG,cAAa,SAAE3P,EAAS8K,EAAQC,GAC9B,MAAOuC,GACL5B,EAAaZ,EAAQC,EAAO/C,KAAKkH,YAAalH,KAAK2D,WAAY3D,KAAKvH,aACpE0K,EAAenD,KAAKkH,YAAalH,KAAK2D,aACtC3L,IAOJmQ,aAAY,SAAEnQ,GACZ,MAAOsN,GACLnC,EAAenD,KAAKkH,YAAalH,KAAK2D,YACtCV,GACAjL,IAMJyQ,aAAY,SAAEzH,GACZhB,KAAK8C,OAAS9B,GAQhB6G,iBAAgB,SAAE7G,GAChB,QAAQhB,KAAKhI,SAETgI,KAAKkI,WAAWvF,QAAQ3B,IAAU,GAQxC4G,WAAU,SAAE5E,GACV,GAAMZ,GAAMpC,KAAKkG,QACblD,EAAOhD,KAAKkG,SACZlD,CACJ,OAAOhD,MAAKiI,UAAUtF,QAAQP,IAAQ,GAOxCsG,iBAAgB,SAAE1F,GAChB,QAASA,EAAO3J,aAUlBgP,eAAc,SAAErF,GACd,GAAIb,EAAQa,GAAS,MAAO,EAE5B,IAAIA,EAAO8E,MAAO,MAAO9E,GAAOD,KAEhC,IAAIC,EAAOE,SAAU,MAAOF,GAAOQ,WAEnC,IAAIT,GAAQ/C,KAAKvH,YAAYuK,EAAQhD,KAAK+C,MAE1C,OAAIZ,GAAQY,GAAe,GACpBA,GAUT7M,OAAM,SAAE8M,EAAQ2F,GAEd,GAAI3F,EAAOE,UAAYlD,KAAKmH,YAE1B,WADAnH,MAAK4I,YAAY5F,EAGnB,OAAqC,IAAjChD,KAAKoH,UAAUzE,QAAQgG,IACzB3I,KAAKxE,UACLwH,EAAO3J,aACP2J,EAAOE,aAGLlD,KAAK+G,MAAO/G,KAAKiG,UAAYjG,KAAKwH,cAAc9G,SAAWV,KAAK+G,OAExD,QAAR4B,GAAkB3I,KAAK6I,cAA3B,CACA,GAAI7F,EAAO8E,MACT9H,KAAKuI,MAAM,MAAOvF,EAAOD,MAAO/C,KAAKxC,IACrCwC,KAAK8C,OAAS,GACV9C,KAAK0G,gBAAkB1G,KAAKiG,UAAUjG,KAAK8I,iBAC1C,CAGL,GAFmB9I,KAAK4H,WAAW5E,GAIjC,YADY,QAAR2F,GAAe3I,KAAK+I,cAAc/F,GAIpChD,MAAKiG,SACPjG,KAAKuI,MAAM,QAASvI,KAAKwH,cAAc/D,QAAQT,IAAUhD,KAAKxC,IAE9DwC,KAAKuI,MAAM,QAASvF,EAAQhD,KAAKxC,IAGnCwC,KAAKuI,MAAM,SAAUvF,EAAQhD,KAAKxC,IAG9BwC,KAAKqG,gBAAerG,KAAK8C,OAAS,IAGpC9C,KAAK0G,eAAe1G,KAAK8I,eAQ/BF,YAAW,SAAEI,GAAe,WACpBnF,EAAQ7D,KAAKhI,QAAQiR,KAAK,SAAAjG,GAC9B,MAAOA,GAAO,EAAKW,cAAgBqF,EAAcxF,aAGnD,IAAKK,EAAL,CAEA,GAAI7D,KAAKkJ,mBAAmBrF,GAAQ,CAClC7D,KAAKuI,MAAM,SAAU1E,EAAM7D,KAAKkH,aAAclH,KAAKxC,GAEnD,IAAM2L,GAAWnJ,KAAKwH,cAAcnG,OAClC,SAAA2B,GAAM,OAAiD,IAA7Ca,EAAM,EAAKqD,aAAavE,QAAQK,IAG5ChD,MAAKuI,MAAM,QAASY,EAAUnJ,KAAKxC,QAC9B,CACL,GAAI4L,GAAevF,EAAM7D,KAAKkH,aAAa7F,OACzC,SAAA2B,GAAM,QAAM,EAAK0F,iBAAiB1F,IAAW,EAAK4E,WAAW5E,KAI3DhD,MAAK+G,KACPqC,EAAaC,OAAOrJ,KAAK+G,IAAM/G,KAAKwH,cAAc9G,QAGpDV,KAAKuI,MAAM,SAAUa,EAAcpJ,KAAKxC,IACxCwC,KAAKuI,MACH,QACAvI,KAAKwH,cAAc/D,OAAO2F,GAC1BpJ,KAAKxC,IAILwC,KAAK0G,eAAe1G,KAAK8I,eAO/BI,mBAAkB,SAAErF,GAAO,UACzB,OAAOA,GAAM7D,KAAKkH,aAAaoC,MAAM,SAAAtG,GAAM,MAAI,GAAK4E,WAAW5E,IAAW,EAAK0F,iBAAiB1F,MAQlGuG,mBAAkB,SAAE1F,GAClB,MAAOA,GAAM7D,KAAKkH,aAAaoC,MAAMtJ,KAAK0I,mBAU5CK,cAAa,SAAE/F,GAA4B,GAApBwG,KAAc,UAAH,8CAEhC,KAAIxJ,KAAKxE,WAELwH,EAAO3J,YAAX,CAEA,IAAK2G,KAAKwG,YAAcxG,KAAKwH,cAAc9G,QAAU,EAEnD,WADAV,MAAK8I,YAIP,IAAMvH,GAA0B,WAAlB,SAAOyB,GACjBhD,KAAKiI,UAAUtF,QAAQK,EAAOhD,KAAKkG,UACnClG,KAAKiI,UAAUtF,QAAQK,EAE3B,IAAIhD,KAAKiG,SAAU,CACjB,GAAMkD,GAAWnJ,KAAKwH,cAAcQ,MAAM,EAAGzG,GAAOkC,OAAOzD,KAAKwH,cAAcQ,MAAMzG,EAAQ,GAC5FvB,MAAKuI,MAAM,QAASY,EAAUnJ,KAAKxC,QAEnCwC,MAAKuI,MAAM,QAAS,KAAMvI,KAAKxC,GAEjCwC,MAAKuI,MAAM,SAAUvF,EAAQhD,KAAKxC,IAG9BwC,KAAK0G,eAAiB8C,GAAaxJ,KAAK8I,eAQ9CW,kBAAiB,YAE2B,IAAtCzJ,KAAKoH,UAAUzE,QAAQ,WAEA,IAAvB3C,KAAK8C,OAAOpC,QAAgBxD,MAAMmF,QAAQrC,KAAKwH,gBAAkBxH,KAAKwH,cAAc9G,QACtFV,KAAK+I,cAAc/I,KAAKwH,cAAcxH,KAAKwH,cAAc9G,OAAS,IAAI,IAO1EgJ,SAAQ,WAAI,UAEN1J,MAAKhH,QAAUgH,KAAKxE,WAExBwE,KAAK2J,iBAED3J,KAAKkH,aAAgC,IAAjBlH,KAAK4J,SAAiB5J,KAAKyH,gBAAgB/G,SACjEV,KAAK4J,QAAU,GAGjB5J,KAAKhH,QAAS,EAEVgH,KAAKoG,YACFpG,KAAKqH,iBAAgBrH,KAAK8C,OAAS,IACnC9C,KAAKuH,kBAAkBvH,KAAK6J,UAAU,iBAAM,GAAKC,MAAMhH,QAAU,EAAKgH,MAAMhH,OAAOiH,WAC9E/J,KAAKuH,sBACS,KAAbvH,KAAKgK,KAAqBhK,KAAKgK,IAAID,QAEhD/J,KAAKuI,MAAM,OAAQvI,KAAKxC,MAM1BsL,WAAU,WAEH9I,KAAKhH,SAEVgH,KAAKhH,QAAS,EAEVgH,KAAKoG,eAC0B,KAAtBpG,KAAK8J,MAAMhH,QAAwB9C,KAAK8J,MAAMhH,OAAOmH,WAExC,KAAbjK,KAAKgK,KAAqBhK,KAAKgK,IAAIC,OAE3CjK,KAAKqH,iBAAgBrH,KAAK8C,OAAS,IACxC9C,KAAKuI,MAAM,QAASvI,KAAKwI,WAAYxI,KAAKxC,MAS5CvE,OAAM,WACJ+G,KAAKhH,OACDgH,KAAK8I,aACL9I,KAAK0J,YAMXC,eAAc,WACZ,GAAsB,mBAAXzS,QAAX,CAEA,GAAMgT,GAAalK,KAAKgK,IAAItM,wBAAwBC,IAC9CwM,EAAajT,OAAOsJ,YAAcR,KAAKgK,IAAItM,wBAAwB0M,MAC7CD,GAAanK,KAAK1E,WAEnB6O,EAAaD,GAAqC,UAAvBlK,KAAKvE,eAAoD,WAAvBuE,KAAKvE,eAC3FuE,KAAK2F,uBAAyB,QAC9B3F,KAAK4F,gBAAkBrG,KAAK8K,IAAIF,EAAa,GAAInK,KAAK1E,aAEtD0E,KAAK2F,uBAAyB,QAC9B3F,KAAK4F,gBAAkBrG,KAAK8K,IAAIH,EAAa,GAAIlK,KAAK1E,iBvB6qDxD,SAAU9F,EAAQC,EAAqBC,GAE7C,YACqB,IAAI+E,GAAyE/E,EAAoB,IAE7FmD,GADiFnD,EAAoBW,EAAEoE,GACrC/E,EAAoB,KAEtFoD,GAD0EpD,EAAoBW,EAAEwC,GAC5BnD,EAAoB,KAExFyO,GAD4EzO,EAAoBW,EAAEyC,GAC5BpD,EAAoB,MAE1F0O,GAD8E1O,EAAoBW,EAAE8N,GAC/BzO,EAAoB,MAEzF2O,GAD6E3O,EAAoBW,EAAE+N,GAC5B1O,EAAoB,KAE3F4O,GAD+E5O,EAAoBW,EAAEgO,GAC9B3O,EAAoB,MAE3F4U,GAD+E5U,EAAoBW,EAAEiO,GACpC5O,EAAoB,KACZA,GAAoBW,EAAEiU,EwBp5EzG,MACb9T,KAAI,WACF,OACEoT,QAAS,EACTf,cAAc,IAGlB7S,OAMEuU,aACEzP,KAAMgL,QACNC,SAAS,GAEXyE,cACE1P,KAAMkM,OACNjB,QAAS,KAGb9N,UACEwS,gBAAe,WACb,MAAOzK,MAAK4J,QAAU5J,KAAKwK,cAE7BE,gBAAe,WACb,MAAO1K,MAAK4F,gBAAkB5F,KAAKwK,eAGvClC,OACEb,gBAAe,WACbzH,KAAK2K,iBAEP3R,OAAM,WACJgH,KAAK6I,cAAe,GAEtBe,QAAO,WACL5J,KAAK8J,MAAMhH,QAAU9C,KAAK8J,MAAMhH,OAAO8H,aAAa,wBAAyB5K,KAAKxC,GAAK,IAAMwC,KAAK4J,QAAQlH,cAG9GzM,SACE4U,gBAAe,SAAEtJ,EAAOyB,GACtB,OACE,iCAAkCzB,IAAUvB,KAAK4J,SAAW5J,KAAKuK,YACjE,gCAAiCvK,KAAK4H,WAAW5E,KAGrD8H,eAAc,SAAEvJ,EAAOyH,GAAe,UACpC,KAAKhJ,KAAKmH,YACR,OACE,iCACE,6BAA8B6B,EAAc9F,UAIlD,IAAMW,GAAQ7D,KAAKhI,QAAQiR,KAAK,SAAAjG,GAC9B,MAAOA,GAAO,EAAKW,cAAgBqF,EAAcxF,aAGnD,OAAOK,KAAU7D,KAAKuJ,mBAAmB1F,IACvC,8BACE,iCAAkCtC,IAAUvB,KAAK4J,SAAW5J,KAAKuK,cACjE,sCAAuCvK,KAAKkJ,mBAAmBrF,KAC/D,iCAENkH,kBAAiB,WAAqB,6DAAT,QAARpC,EAAG,EAAHA,GAEf3I,MAAKyH,gBAAgB/G,OAAS,GAChCV,KAAK9J,OAAO8J,KAAKyH,gBAAgBzH,KAAK4J,SAAUjB,GAElD3I,KAAKgL,gBAEPC,eAAc,WAERjL,KAAK4J,QAAU5J,KAAKyH,gBAAgB/G,OAAS,IAC/CV,KAAK4J,UAED5J,KAAK8J,MAAMoB,KAAKC,WAAanL,KAAKyK,iBAAmBzK,KAAK0K,gBAAkB,GAAK1K,KAAKwK,eACxFxK,KAAK8J,MAAMoB,KAAKC,UAAYnL,KAAKyK,iBAAmBzK,KAAK0K,gBAAkB,GAAK1K,KAAKwK,cAIrFxK,KAAKyH,gBAAgBzH,KAAK4J,UAC1B5J,KAAKyH,gBAAgBzH,KAAK4J,SAAS1G,WAClClD,KAAKmH,aACNnH,KAAKiL,kBAETjL,KAAK6I,cAAe,GAEtBuC,gBAAe,WACTpL,KAAK4J,QAAU,GACjB5J,KAAK4J,UAED5J,KAAK8J,MAAMoB,KAAKC,WAAanL,KAAKyK,kBACpCzK,KAAK8J,MAAMoB,KAAKC,UAAYnL,KAAKyK,iBAIjCzK,KAAKyH,gBAAgBzH,KAAK4J,UAC1B5J,KAAKyH,gBAAgBzH,KAAK4J,SAAS1G,WAClClD,KAAKmH,aACNnH,KAAKoL,mBAILpL,KAAKyH,gBAAgBzH,KAAK4J,UAC1B5J,KAAKyH,gBAAgB,GAAGvE,WACvBlD,KAAKmH,aACNnH,KAAKiL,iBAETjL,KAAK6I,cAAe,GAEtBmC,aAAY,WAELhL,KAAK0G,gBACV1G,KAAK4J,QAAU,EAEX5J,KAAK8J,MAAMoB,OACblL,KAAK8J,MAAMoB,KAAKC,UAAY,KAGhCR,cAAa,WAEP3K,KAAK4J,SAAW5J,KAAKyH,gBAAgB/G,OAAS,IAChDV,KAAK4J,QAAU5J,KAAKyH,gBAAgB/G,OAChCV,KAAKyH,gBAAgB/G,OAAS,EAC9B,GAGFV,KAAKyH,gBAAgB/G,OAAS,GAChCV,KAAKyH,gBAAgBzH,KAAK4J,SAAS1G,WAClClD,KAAKmH,aAENnH,KAAKiL,kBAGTI,WAAU,SAAE9J,GACVvB,KAAK4J,QAAUrI,EACfvB,KAAK6I,cAAe,MxBi5EjB,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CAEH,SAAUrT,EAAQuH,KAMlB,SAAUvH,EAAQuH,KAMlB,SAAUvH,EAAQuH,KAMlB,SAAUvH,EAAQuH,KAMlB,SAAUvH,EAAQuH,KAMlB,SAAUvH,EAAQuH,KAMlB,SAAUvH,EAAQuH,KAMlB,SAAUvH,EAAQuH,KAMlB,SAAUvH,EAAQuH,KAMlB,SAAUvH,EAAQuH,KAMlB,SAAUvH,EAAQuH,KAKf,CACA,CAEH,SAAUvH,EAAQC,EAAqBC,GAE7C,YyB1pFA,sBAAIG,EAAqB,EAAQ,GAc7BE,EAAYF,EACd,IACA,KATgC,EAEb,KAEC,KAEU,KAUjB,KAAAE,EAAiB,SzBmqF1B,SAAUP,EAAQC,EAAqBC,GAE7C,Y0B5rFA,SAASC,GAAaC,GACpB,EAAQ,KADV,qBAGIC,EAAqB,EAAQ,GAS7BC,EAAiBH,EAKjBI,EAAYF,EACd,IACA,KATgC,EAWhCC,EAPoB,KAEU,KAUjB,KAAAC,EAAiB,S1BqsF1B,SAAUP,EAAQC,EAAqBC,GAE7C,Y2BjuFA,SAASC,GAAaC,GACpB,EAAQ,KADV,qBAGIC,EAAqB,EAAQ,GAS7BC,EAAiBH,EAKjBI,EAAYF,EACd,IACA,KATgC,EAWhCC,EAPoB,KAEU,KAUjB,KAAAC,EAAiB,S3B0uF1B,SAAUP,EAAQC,EAAqBC,GAE7C,Y4BtwFA,SAASC,GAAaC,GACpB,EAAQ,KADV,qBAGIC,EAAqB,EAAQ,GAS7BC,EAAiBH,EAKjBI,EAAYF,EACd,IACA,KATgC,EAWhCC,EAPoB,KAEU,KAUjB,KAAAC,EAAiB,S5B+wF1B,SAAUP,EAAQC,EAAqBC,GAE7C,Y6B3yFA,SAASC,GAAaC,GACpB,EAAQ,KADV,qBAGIC,EAAqB,EAAQ,GAS7BC,EAAiBH,EAKjBI,EAAYF,EACd,IACA,KATgC,EAWhCC,EAPoB,KAEU,KAUjB,KAAAC,EAAiB,S7BozF1B,SAAUP,EAAQC,EAAqBC,GAE7C,Y8Bh1FA,SAASC,GAAaC,GACpB,EAAQ,KADV,qBAGIC,EAAqB,EAAQ,GAS7BC,EAAiBH,EAKjBI,EAAYF,EACd,IACA,KATgC,EAWhCC,EAPoB,KAEU,KAUjB,KAAAC,EAAiB,S9By1F1B,SAAUP,EAAQC,EAAqBC,GAE7C,Y+Br3FA,SAASC,GAAaC,GACpB,EAAQ,KADV,qBAGIC,EAAqB,EAAQ,GAS7BC,EAAiBH,EAKjBI,EAAYF,EACd,IACA,KATgC,EAWhCC,EAPoB,KAEU,KAUjB,KAAAC,EAAiB,S/B83F1B,SAAUP,EAAQC,EAAqBC,GAE7C,YgC15FA,SAASC,GAAaC,GACpB,EAAQ,KADV,qBAGIC,EAAqB,EAAQ,GAS7BC,EAAiBH,EAKjBI,EAAYF,EACd,IACA,KATgC,EAWhCC,EAPoB,KAEU,KAUjB,KAAAC,EAAiB,ShCm6F1B,SAAUP,EAAQC,EAAqBC,GAE7C,YiC/7FA,sBAAIG,EAAqB,EAAQ,GAc7BE,EAAYF,EACd,IACA,KATgC,EAEb,KAEC,KAEU,KAUjB,KAAAE,EAAiB,SjCw8F1B,SAAUP,EAAQC,EAAqBC,GAE7C,YkCj+FA,SAASC,GAAaC,GACpB,EAAQ,KADV,qBAGIC,EAAqB,EAAQ,GAS7BC,EAAiBH,EAKjBI,EAAYF,EACd,IACA,KATgC,EAWhCC,EAPoB,KAEU,KAUjB,KAAAC,EAAiB,SlC0+F1B,SAAUP,EAAQC,EAAqBC,GAE7C,YmCtgGA,SAASC,GAAaC,GACpB,EAAQ,KADV,qBAGIC,EAAqB,EAAQ,GAS7BC,EAAiBH,EAKjBI,EAAYF,EACd,IACA,KATgC,EAWhCC,EAPoB,KAEU,KAUjB,KAAAC,EAAiB,SnC+gG1B,SAAUP,EAAQC,EAAqBC,GAE7C,YoC3iGA,sBAAIG,EAAqB,EAAQ,GAc7BE,EAAYF,EACd,IACA,KATgC,EAEb,KAEC,KAEU,KAUjB,KAAAE,EAAiB,SpCojG1B,SAAUP,EAAQC,EAAqBC,GAE7C,YqC7kGA,IAAI4V,GAAS,WAAa,GAAIC,GAAIvL,KAASwL,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,CAAG,OAAOE,GAAG,OAAOA,EAAG,UAAUE,YAAY,sBAAsBC,IAAI,MAAQN,EAAItS,UAAUsS,EAAIO,GAAG,YAAYP,EAAIO,GAAG,KAAKJ,EAAG,UAAUE,YAAY,sBAAsBC,IAAI,MAAQN,EAAIpS,QAAQoS,EAAIO,GAAG,UAAUP,EAAIO,GAAG,KAAKJ,EAAG,UAAUE,YAAY,sBAAsBC,IAAI,MAAQN,EAAInS,SAASmS,EAAIO,GAAG,WAAWP,EAAIO,GAAG,KAAKJ,EAAG,OAAOH,EAAIO,GAAG,qBAAqBP,EAAIQ,GAAGR,EAAIvS,WAAW0S,EAAG,SAASE,YAAY,gBAAgBL,EAAIO,GAAG,8CAA8CJ,EAAG,eAAeM,IAAI,cAAcC,OAAO,YAAc,oBAAoB,MAAQV,EAAI3U,MAAM,QAAU2U,EAAIvT,QAAQ,UAAW,EAAK,YAAa,EAAK,eAAc,EAAM,iBAAgB,EAAK,aAAa,IAAI,IAAM,GAAG6T,IAAI,KAAO,SAASK,GAAQX,EAAIvS,QAAS,GAAM,MAAQ,SAASkT,GAAQX,EAAIvS,QAAS,OAAW,IAC32BmT,KACAC,GAAcd,OAAQA,EAAQa,gBAAiBA,EACpC,QrCklGT,SAAU3W,EAAQC,EAAqBC,GAE7C,YsCvlGA,IAAI4V,GAAS,WAAa,GAAIC,GAAIvL,KAASwL,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,CAAG,OAAOE,GAAG,OAAOA,EAAG,SAASE,YAAY,gBAAgBL,EAAIO,GAAG,aAAaJ,EAAG,eAAeO,OAAO,kBAAkB,sBAAsB,YAAc,sBAAsB,MAAQ,OAAO,WAAW,OAAO,QAAUV,EAAIvT,QAAQ,UAAW,EAAK,UAAW,GAAM6T,IAAI,IAAMN,EAAI5R,QAAQ0S,OAAOzV,MAAO2U,EAAS,MAAEe,SAAS,SAAUC,GAAMhB,EAAI3U,MAAM2V,GAAKC,WAAW,WAAWd,EAAG,OAAOE,YAAY,kBAAkBF,EAAG,QAAQH,EAAIO,GAAGP,EAAIQ,GAAGR,EAAI3U,aAAa,IAC9hBuV,KACAC,GAAcd,OAAQA,EAAQa,gBAAiBA,EACpC,QtC4lGT,SAAU3W,EAAQC,EAAqBC,GAE7C,YuCjmGA,IAAI4V,GAAS,WAAa,GAAIC,GAAIvL,KAASwL,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,CAAG,OAAOE,GAAG,OAAOA,EAAG,SAASE,YAAY,gBAAgBL,EAAIO,GAAG,8BAA8BJ,EAAG,eAAeO,OAAO,iBAAiB,0BAA0B,WAAW,OAAO,MAAQ,OAAO,YAAc,aAAa,QAAUV,EAAIvT,QAAQ,YAAa,EAAM,eAAc,GAAOyU,YAAYlB,EAAImB,KAAK/D,IAAI,cAAcgE,GAAG,SAASX,GACxa,GAAIhJ,GAASgJ,EAAIhJ,MACjB,QAAQ0I,EAAG,UAAUH,EAAIO,GAAGP,EAAIQ,GAAG/I,EAAOrM,SAAS4U,EAAIO,GAAG,kBAAkBJ,EAAG,UAAUH,EAAIO,GAAG,KAAKP,EAAIQ,GAAG/I,EAAOlM,kBAAkBuV,OAAOzV,MAAO2U,EAAS,MAAEe,SAAS,SAAUC,GAAMhB,EAAI3U,MAAM2V,GAAKC,WAAW,WAAWd,EAAG,OAAOE,YAAY,kBAAkBF,EAAG,QAAQH,EAAIO,GAAGP,EAAIQ,GAAGR,EAAI3U,aAAa,IAC1SuV,KACAC,GAAcd,OAAQA,EAAQa,gBAAiBA,EACpC,QvCsmGT,SAAU3W,EAAQC,EAAqBC,GAE7C,YwC7mGA,IAAI4V,GAAS,WAAa,GAAIC,GAAIvL,KAASwL,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,CAAG,OAAOE,GAAG,OAAOA,EAAG,SAASE,YAAY,gBAAgBL,EAAIO,GAAG,4BAA4BJ,EAAG,eAAeO,OAAO,YAAc,wBAAwB,MAAQ,QAAQ,WAAW,QAAQ,QAAUV,EAAIvT,QAAQ,gBAAgB,IAAI,eAAeuT,EAAI9S,YAAY,eAAc,GAAOgU,YAAYlB,EAAImB,KAAK/D,IAAI,cAAcgE,GAAG,SAAS3W,GAAO,OAAQ0V,EAAG,OAAOE,YAAY,gBAAgBK,OAAO,IAAMjW,EAAMgN,OAAOtM,IAAI,IAAM,kBAAkBgV,EAAG,QAAQE,YAAY,iBAAiBF,EAAG,QAAQE,YAAY,kBAAkBL,EAAIO,GAAGP,EAAIQ,GAAG/V,EAAMgN,OAAOzK,gBAAgBoQ,IAAI,SAASgE,GAAG,SAAS3W,GAAO,OAAQ0V,EAAG,OAAOE,YAAY,gBAAgBK,OAAO,IAAMjW,EAAMgN,OAAOtM,IAAI,IAAM,kBAAkBgV,EAAG,OAAOE,YAAY,iBAAiBF,EAAG,QAAQE,YAAY,kBAAkBL,EAAIO,GAAGP,EAAIQ,GAAG/V,EAAMgN,OAAOzK,UAAUmT,EAAG,QAAQE,YAAY,kBAAkBL,EAAIO,GAAGP,EAAIQ,GAAG/V,EAAMgN,OAAOxK,gBAAgB6T,OAAOzV,MAAO2U,EAAS,MAAEe,SAAS,SAAUC,GAAMhB,EAAI3U,MAAM2V,GAAKC,WAAW,WAAWd,EAAG,OAAOE,YAAY,kBAAkBF,EAAG,QAAQH,EAAIO,GAAGP,EAAIQ,GAAGR,EAAI3U,aAAa,IACjoCuV,KACAC,GAAcd,OAAQA,EAAQa,gBAAiBA,EACpC,QxCknGT,SAAU3W,EAAQC,EAAqBC,GAE7C,YyCvnGA,IAAI4V,GAAS,WAAa,GAAIC,GAAIvL,KAASwL,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,CAAG,OAAOE,GAAG,OAAOA,EAAG,SAASE,YAAY,gBAAgBL,EAAIO,GAAG,8BAA8BJ,EAAG,eAAeO,OAAO,QAAUV,EAAIvT,QAAQ,UAAW,EAAK,mBAAkB,EAAM,mBAAkB,EAAM,mBAAkB,EAAK,YAAc,YAAY,MAAQ,OAAO,WAAW,OAAO,mBAAkB,GAAMyU,YAAYlB,EAAImB,KAAK/D,IAAI,YAAYgE,GAAG,SAASX,GACjc,GAAI5I,GAAS4I,EAAI5I,OAEbpK,GADSgT,EAAIlJ,OACJkJ,EAAIhT,OACjB,QAASoK,EAAa,OAAEsI,EAAG,QAAQkB,aAAajW,KAAK,OAAOkW,QAAQ,SAASjW,OAAQoC,EAAQwT,WAAW,YAAYZ,YAAY,wBAAwBL,EAAIO,GAAGP,EAAIQ,GAAG3I,EAAO1C,QAAQ,uBAAuB6K,EAAIuB,UAAUT,OAAOzV,MAAO2U,EAAS,MAAEe,SAAS,SAAUC,GAAMhB,EAAI3U,MAAM2V,GAAKC,WAAW,WAAWd,EAAG,OAAOE,YAAY,kBAAkBF,EAAG,QAAQH,EAAIO,GAAGP,EAAIQ,GAAGR,EAAI3U,aAAa,IAC/XuV,KACAC,GAAcd,OAAQA,EAAQa,gBAAiBA,EACpC,QzC4nGT,SAAU3W,EAAQC,EAAqBC,GAE7C,Y0CroGA,IAAI4V,GAAS,WAAa,GAAIC,GAAIvL,KAASwL,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,CAAG,OAAOE,GAAG,OAAOA,EAAG,eAAeO,OAAO,MAAQ,OAAO,WAAW,OAAO,YAAc,cAAc,QAAUV,EAAI9U,OAAO,UAAW,EAAK,eAAc,EAAM,MAAQ,GAAGoV,IAAI,IAAMN,EAAI1U,WAAW4V,YAAYlB,EAAImB,KAAK/D,IAAI,SAASgE,GAAG,SAAS3W,GAAO,OAAQ0V,EAAG,QAAQE,YAAY,gBAAgBL,EAAIO,GAAGP,EAAIQ,GAAG/V,EAAMgN,OAAOrM,SAAS+U,EAAG,OAAOE,YAAY,aAAaK,OAAO,IAAMjW,EAAMgN,OAAOtM,IAAI,IAAMV,EAAMgN,OAAOrM,aAAa0V,OAAOzV,MAAO2U,EAAS,MAAEe,SAAS,SAAUC,GAAMhB,EAAI3U,MAAM2V,GAAKC,WAAW,WAAWd,EAAG,QAAQO,OAAO,KAAO,YAAYc,KAAK,aAAaxB,EAAIO,GAAG,qCAAqCJ,EAAG,KAAKE,YAAY,aAAaK,OAAO,KAAO,oDAAoD,OAAS,YAAYV,EAAIO,GAAG,UAAUP,EAAIO,GAAG,UAAU,IACt1BK,KACAC,GAAcd,OAAQA,EAAQa,gBAAiBA,EACpC,Q1C0oGT,SAAU3W,EAAQC,EAAqBC,GAE7C,Y2C/oGA,IAAI4V,GAAS,WAAa,GAAIC,GAAIvL,KAASwL,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,CAAG,OAAOE,GAAG,OAAOA,EAAG,SAASE,YAAY,gBAAgBL,EAAIO,GAAG,mBAAmBJ,EAAG,eAAeO,OAAO,QAAUV,EAAIvT,QAAQ,YAAa,EAAM,mBAAkB,EAAM,eAAc,EAAM,YAAc,gBAAgBqU,OAAOzV,MAAO2U,EAAS,MAAEe,SAAS,SAAUC,GAAMhB,EAAI3U,MAAM2V,GAAKC,WAAW,WAAWd,EAAG,OAAOE,YAAY,kBAAkBF,EAAG,QAAQH,EAAIO,GAAGP,EAAIQ,GAAGR,EAAI3U,aAAa,IAC7duV,KACAC,GAAcd,OAAQA,EAAQa,gBAAiBA,EACpC,Q3CopGT,SAAU3W,EAAQC,EAAqBC,GAE7C,Y4CzpGA,IAAI4V,GAAS,WAAa,GAAIC,GAAIvL,KAASwL,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,CAAG,OAAOE,GAAG,OAAOA,EAAG,SAASE,YAAY,gBAAgBL,EAAIO,GAAG,mBAAmBJ,EAAG,eAAeO,OAAO,YAAc,cAAc,MAAQV,EAAI3U,MAAM,QAAU2U,EAAIvT,QAAQ,YAAa,GAAO6T,IAAI,MAAQN,EAAIlR,sBAAsB,IAC/T8R,KACAC,GAAcd,OAAQA,EAAQa,gBAAiBA,EACpC,Q5C8pGT,SAAU3W,EAAQC,EAAqBC,GAE7C,Y6CnqGA,IAAI4V,GAAS,WAAa,GAAIC,GAAIvL,KAASwL,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,CAAG,OAAOE,GAAG,OAAOE,YAAY,cAAcoB,OAAQ,sBAAuBzB,EAAIvS,OAAQ,wBAAyBuS,EAAI/P,SAAU,qBAAsB+P,EAAI1O,QAAS,iCAAkC0O,EAAI1P,gBAAiBoQ,OAAO,SAAWV,EAAInF,YAAc,EAAImF,EAAI3P,SAAS,KAAO,WAAW,YAAY,WAAW2P,EAAI/N,IAAIqO,IAAI,MAAQ,SAASK,GAAQ,MAAOX,GAAI7B,YAAY,KAAO,SAASwC,IAAQX,EAAInF,YAAqBmF,EAAIzC,cAAc,SAAW,SAASoD,GAAQ,OAAIA,EAAOpR,KAAK6H,QAAQ,QAAQ4I,EAAI0B,GAAGf,EAAOgB,QAAQ,OAAO,GAAGhB,EAAOvD,KAAK,OAAO,cAAuB,KAAUuD,EAAOiB,SAAWjB,EAAOkB,cAAuB,MAAOlB,EAAOmB,iBAAwB9B,EAAIN,mBAAkB,SAASiB,GAAQ,OAAIA,EAAOpR,KAAK6H,QAAQ,QAAQ4I,EAAI0B,GAAGf,EAAOgB,QAAQ,KAAK,GAAGhB,EAAOvD,KAAK,KAAK,YAAqB,KAAUuD,EAAOiB,SAAWjB,EAAOkB,cAAuB,MAAOlB,EAAOmB,iBAAwB9B,EAAIH,qBAAoB,SAAW,SAASc,GAAQ,OAAIA,EAAOpR,KAAK6H,QAAQ,QAAQ4I,EAAI0B,GAAGf,EAAOgB,QAAQ,QAAQ,GAAGhB,EAAOvD,IAAI,UAAU4C,EAAI0B,GAAGf,EAAOgB,QAAQ,MAAM,EAAEhB,EAAOvD,IAAI,OAAgB,MAAOuD,EAAOoB,kBAAqBpB,EAAOiB,SAAWjB,EAAOkB,cAAuB,KAAc7B,EAAIR,kBAAkBmB,KAAS,MAAQ,SAASA,GAAQ,OAAIA,EAAOpR,KAAK6H,QAAQ,QAAQ4I,EAAI0B,GAAGf,EAAOgB,QAAQ,MAAM,GAAGhB,EAAOvD,KAAK,MAAM,WAAoB,KAAc4C,EAAIzC,iBAAiByC,EAAIgC,GAAG,QAAQ,WAAW,OAAQ7B,EAAG,OAAOE,YAAY,sBAAsBC,IAAI,UAAY,SAASK,GAAyD,MAAjDA,GAAOmB,iBAAiBnB,EAAOoB,kBAAyB/B,EAAItS,gBAAgB,OAASsS,EAAItS,SAASsS,EAAIO,GAAG,KAAKP,EAAIgC,GAAG,QAAQ,MAAM,OAAShC,EAAIzI,SAASyI,EAAIO,GAAG,KAAKJ,EAAG,OAAOM,IAAI,OAAOJ,YAAY,sBAAsBL,EAAIgC,GAAG,YAAY,WAAW,OAAQ7B,EAAG,OAAOkB,aAAajW,KAAK,OAAOkW,QAAQ,SAASjW,MAAO2U,EAAIvP,cAAc0E,OAAS,EAAG8L,WAAW,6BAA6BZ,YAAY,2BAA2BL,EAAIiC,GAAIjC,EAAiB,cAAE,SAASvI,EAAOzB,GAAO,OAAQgK,EAAIgC,GAAG,MAAM,WAAW,OAAQ7B,EAAG,QAAQ/C,IAAIpH,EAAMqK,YAAY,qBAAqBF,EAAG,QAAQ+B,UAAU,YAAclC,EAAIQ,GAAGR,EAAIlD,eAAerF,OAAYuI,EAAIO,GAAG,KAAKJ,EAAG,KAAKE,YAAY,wBAAwBK,OAAO,SAAW,KAAKJ,IAAI,SAAW,SAASK,GAAQ,OAAIA,EAAOpR,KAAK6H,QAAQ,QAAQ4I,EAAI0B,GAAGf,EAAOgB,QAAQ,QAAQ,GAAGhB,EAAOvD,IAAI,SAAkB,MAAOuD,EAAOmB,iBAAwB9B,EAAIxC,cAAc/F,KAAS,UAAY,SAASkJ,GAAgC,MAAxBA,GAAOmB,iBAAwB9B,EAAIxC,cAAc/F,YAAiB,OAASA,EAAO,OAASuI,EAAIzI,OAAO,OAASyI,EAAIxC,oBAAoB,GAAGwC,EAAIO,GAAG,KAAMP,EAAI/D,eAAiB+D,EAAI/D,cAAc9G,OAAS6K,EAAIlQ,OAAQkQ,EAAIgC,GAAG,QAAQ,WAAW,OAAQ7B,EAAG,UAAUE,YAAY,sBAAsB6B,UAAU,YAAclC,EAAIQ,GAAGR,EAAI/T,UAAU+T,EAAI/D,cAAc9G,OAAS6K,EAAIlQ,eAAekQ,EAAIuB,QAAQ,OAASvB,EAAIzI,OAAO,OAASyI,EAAIxC,cAAc,OAASwC,EAAIvP,cAAc,OAASuP,EAAIvS,SAASuS,EAAIO,GAAG,KAAKJ,EAAG,cAAcO,OAAO,KAAO,0BAA0BV,EAAIgC,GAAG,UAAU,WAAW,OAAQ7B,EAAG,OAAOkB,aAAajW,KAAK,OAAOkW,QAAQ,SAASjW,MAAO2U,EAAW,QAAEiB,WAAW,YAAYZ,YAAY,6BAA6B,GAAGL,EAAIO,GAAG,KAAMP,EAAc,WAAEG,EAAG,SAASM,IAAI,SAASJ,YAAY,qBAAqB8B,MAAOnC,EAAc,WAAEU,OAAO,KAAOV,EAAI5U,KAAK,GAAK4U,EAAI/N,GAAG,KAAO,OAAO,aAAe,MAAM,WAAa,QAAQ,YAAc+N,EAAIhF,YAAY,SAAWgF,EAAI/P,SAAS,SAAW+P,EAAI3P,SAAS,gBAAgB,WAAW2P,EAAI/N,IAAIiQ,UAAU,MAAQlC,EAAIzI,QAAQ+I,IAAI,MAAQ,SAASK,GAAQ,MAAOX,GAAI9C,aAAayD,EAAOiB,OAAOvW,QAAQ,MAAQ,SAASsV,GAAgC,MAAxBA,GAAOmB,iBAAwB9B,EAAI7B,YAAY,KAAO,SAASwC,GAAgC,MAAxBA,GAAOmB,iBAAwB9B,EAAIzC,cAAc,MAAQ,SAASoD,GAAQ,OAAIA,EAAOpR,KAAK6H,QAAQ,QAAQ4I,EAAI0B,GAAGf,EAAOgB,QAAQ,MAAM,GAAGhB,EAAOvD,KAAK,MAAM,WAAoB,KAAc4C,EAAIzC,cAAc,SAAW,SAASoD,GAAQ,OAAIA,EAAOpR,KAAK6H,QAAQ,QAAQ4I,EAAI0B,GAAGf,EAAOgB,QAAQ,OAAO,GAAGhB,EAAOvD,KAAK,OAAO,cAAuB,MAAOuD,EAAOmB,iBAAwB9B,EAAIN,mBAAkB,SAASiB,GAAQ,OAAIA,EAAOpR,KAAK6H,QAAQ,QAAQ4I,EAAI0B,GAAGf,EAAOgB,QAAQ,KAAK,GAAGhB,EAAOvD,KAAK,KAAK,YAAqB,MAAOuD,EAAOmB,iBAAwB9B,EAAIH,oBAAmB,SAASc,GAAQ,OAAIA,EAAOpR,KAAK6H,QAAQ,QAAQ4I,EAAI0B,GAAGf,EAAOgB,QAAQ,UAAU,EAAE,IAAIhB,EAAOvD,KAAK,YAAY,SAAS,QAAiB,MAAOuD,EAAOoB,kBAAyB/B,EAAI9B,uBAAsB,SAAW,SAASyC,GAAQ,OAAIA,EAAOpR,KAAK6H,QAAQ,QAAQ4I,EAAI0B,GAAGf,EAAOgB,QAAQ,QAAQ,GAAGhB,EAAOvD,IAAI,SAAkB,MAAOuD,EAAOmB,iBAAiBnB,EAAOoB,kBAAqBpB,EAAOiB,SAAWjB,EAAOkB,cAAuB,KAAc7B,EAAIR,kBAAkBmB,QAAYX,EAAIuB,KAAKvB,EAAIO,GAAG,KAAMP,EAAwB,qBAAEG,EAAG,QAAQE,YAAY,sBAAsBC,IAAI,UAAY,SAASK,GAAgC,MAAxBA,GAAOmB,iBAAwB9B,EAAItS,OAAO0U,MAAM,KAAMC,eAAerC,EAAIgC,GAAG,cAAc,WAAW,QAAShC,EAAIO,GAAGP,EAAIQ,GAAGR,EAAInD,yBAAyB,OAASmD,EAAItP,eAAe,GAAGsP,EAAIuB,KAAKvB,EAAIO,GAAG,KAAMP,EAAwB,qBAAEG,EAAG,QAAQE,YAAY,2BAA2BC,IAAI,UAAY,SAASK,GAAgC,MAAxBA,GAAOmB,iBAAwB9B,EAAItS,OAAO0U,MAAM,KAAMC,eAAerC,EAAIgC,GAAG,cAAc,WAAW,OAAQhC,EAAIO,GAAG,eAAeP,EAAIQ,GAAGR,EAAIhF,aAAa,kBAAkB,GAAGgF,EAAIuB,MAAM,GAAGvB,EAAIO,GAAG,KAAKJ,EAAG,cAAcO,OAAO,KAAO,iBAAiBP,EAAG,OAAOkB,aAAajW,KAAK,OAAOkW,QAAQ,SAASjW,MAAO2U,EAAU,OAAEiB,WAAW,WAAWR,IAAI,OAAOJ,YAAY,+BAA+B8B,OAASpS,UAAWiQ,EAAI3F,gBAAkB,MAAQqG,OAAO,SAAW,MAAMJ,IAAI,MAAQN,EAAI7B,SAAS,UAAY,SAASwC,GAAQA,EAAOmB,qBAAsB3B,EAAG,MAAME,YAAY,uBAAuB8B,MAAOnC,EAAgB,aAAEU,OAAO,KAAO,UAAU,GAAK,WAAWV,EAAI/N,MAAM+N,EAAIgC,GAAG,cAAchC,EAAIO,GAAG,KAAMP,EAAItF,UAAYsF,EAAIxE,MAAQwE,EAAI/D,cAAc9G,OAAQgL,EAAG,MAAMA,EAAG,QAAQE,YAAY,wBAAwBL,EAAIgC,GAAG,cAAc,WAAW,OAAQhC,EAAIO,GAAG,cAAcP,EAAIQ,GAAGR,EAAIxE,KAAK,4EAA4E,KAAKwE,EAAIuB,KAAKvB,EAAIO,GAAG,MAAOP,EAAIxE,KAAOwE,EAAI/D,cAAc9G,OAAS6K,EAAIxE,IAAKwE,EAAIiC,GAAIjC,EAAmB,gBAAE,SAASvI,EAAOzB,GAAO,MAAOmK,GAAG,MAAM/C,IAAIpH,EAAMqK,YAAY,uBAAuBK,OAAO,GAAKV,EAAI/N,GAAK,IAAM+D,EAAM,KAASyB,IAAWA,EAAOE,UAAYF,EAAO3J,aAA2B,KAAX,YAAsB2J,IAAWA,EAAOE,UAAYF,EAAO3J,aAAymBkS,EAAIuB,KAA9lBpB,EAAG,QAAQE,YAAY,sBAAsBoB,MAAMzB,EAAIV,gBAAgBtJ,EAAOyB,GAAQiJ,OAAO,cAAcjJ,GAAUA,EAAO8E,MAAQyD,EAAI1E,eAAiB0E,EAAInP,gBAAgB,gBAAgBmP,EAAIjP,kBAAkB,gBAAgBiP,EAAIrP,mBAAmB2P,IAAI,MAAQ,SAASK,GAAiC,MAAzBA,GAAOoB,kBAAyB/B,EAAIrV,OAAO8M,IAAS,WAAa,SAASkJ,GAAQ,MAAGA,GAAOiB,SAAWjB,EAAOkB,cAAuB,KAAc7B,EAAIF,WAAW9J,OAAWgK,EAAIgC,GAAG,SAAS,WAAW,OAAQ7B,EAAG,QAAQH,EAAIO,GAAGP,EAAIQ,GAAGR,EAAIlD,eAAerF,UAAe,OAASA,EAAO,OAASuI,EAAIzI,OAAO,MAAQvB,KAAS,GAAYgK,EAAIO,GAAG,KAAM9I,IAAWA,EAAOE,UAAYF,EAAO3J,aAAcqS,EAAG,QAAQE,YAAY,sBAAsBoB,MAAMzB,EAAIT,eAAevJ,EAAOyB,GAAQiJ,OAAO,cAAcV,EAAIpE,aAAeoE,EAAIlP,qBAAqB,gBAAgBkP,EAAIpE,aAAeoE,EAAIpP,wBAAwB0P,IAAI,WAAa,SAASK,GAAQ,GAAGA,EAAOiB,SAAWjB,EAAOkB,cAAgB,MAAO,KAAO7B,GAAIpE,aAAeoE,EAAIF,WAAW9J,IAAQ,UAAY,SAAS2K,GAAgC,MAAxBA,GAAOmB,iBAAwB9B,EAAI3C,YAAY5F,OAAYuI,EAAIgC,GAAG,SAAS,WAAW,OAAQ7B,EAAG,QAAQH,EAAIO,GAAGP,EAAIQ,GAAGR,EAAIlD,eAAerF,UAAe,OAASA,EAAO,OAASuI,EAAIzI,OAAO,MAAQvB,KAAS,GAAGgK,EAAIuB,SAASvB,EAAIuB,KAAKvB,EAAIO,GAAG,KAAKJ,EAAG,MAAMkB,aAAajW,KAAK,OAAOkW,QAAQ,SAASjW,MAAO2U,EAAI5P,eAAiD,IAA/B4P,EAAI9D,gBAAgB/G,QAAgB6K,EAAIzI,SAAWyI,EAAIhQ,QAAUiR,WAAW,4EAA4Ed,EAAG,QAAQE,YAAY,wBAAwBL,EAAIgC,GAAG,WAAW,WAAW,OAAQhC,EAAIO,GAAG,6DAA6D,OAASP,EAAIzI,UAAU,KAAKyI,EAAIO,GAAG,KAAKJ,EAAG,MAAMkB,aAAajW,KAAK,OAAOkW,QAAQ,SAASjW,MAAO2U,EAAI7P,gBAA0C,IAAvB6P,EAAIvT,QAAQ0I,SAAwC,IAAvB6K,EAAI1P,gBAA0D,IAA/B0P,EAAI9D,gBAAgB/G,UAAmB6K,EAAIzI,SAAWyI,EAAIhQ,QAAUiR,WAAW,oIAAoId,EAAG,QAAQE,YAAY,wBAAwBL,EAAIgC,GAAG,YAAY,WAAW,OAAQhC,EAAIO,GAAG,sBAAsB,KAAKP,EAAIO,GAAG,KAAKP,EAAIgC,GAAG,cAAc,QAAQ,IAC5nRpB,KACAC,GAAcd,OAAQA,EAAQa,gBAAiBA,EACpC,Q7CwqGT,SAAU3W,EAAQC,EAAqBC,GAE7C,Y8C7qGA,IAAI4V,GAAS,WAAa,GAAIC,GAAIvL,KAASwL,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,CAAG,OAAOE,GAAG,OAAOA,EAAG,SAASE,YAAY,cAAcK,OAAO,IAAM,UAAUV,EAAIO,GAAG,uBAAuBJ,EAAG,eAAeO,OAAO,GAAK,OAAO,MAAQ,OAAO,WAAW,OAAO,YAAc,iBAAiB,iBAAiB,SAAS,QAAUV,EAAIjU,UAAU,UAAW,EAAK,YAAa,EAAK,QAAUiU,EAAIhU,UAAU,mBAAkB,EAAM,mBAAkB,EAAM,mBAAkB,EAAM,gBAAgB,IAAI,MAAQ,EAAE,aAAagU,EAAI/T,UAAU,aAAa,IAAI,mBAAkB,EAAM,iBAAgB,GAAMqU,IAAI,gBAAgBN,EAAI9T,WAAWgV,YAAYlB,EAAImB,KAAK/D,IAAI,MAAMgE,GAAG,SAASX,GACpqB,GAAIhJ,GAASgJ,EAAIhJ,OACb6K,EAAS7B,EAAI6B,MACjB,QAAQnC,EAAG,QAAQE,YAAY,gBAAgBF,EAAG,QAAQH,EAAIO,GAAGP,EAAIQ,GAAG/I,EAAOrM,SAAS+U,EAAG,QAAQE,YAAY,iBAAiBC,IAAI,MAAQ,SAASK,GAAQ,MAAO2B,GAAO7K,OAAYuI,EAAIO,GAAG,aAAanD,IAAI,QAAQgE,GAAG,SAAS3W,GAAO,OAASuV,EAAIlU,kBAAwB,OAAEqU,EAAG,OAAOE,YAAY,qBAAqBC,IAAI,UAAY,SAASK,GAAyD,MAAjDA,GAAOmB,iBAAiBnB,EAAOoB,kBAAyB/B,EAAI5T,SAAS3B,EAAM8M,YAAYyI,EAAIuB,UAAUT,OAAOzV,MAAO2U,EAAqB,kBAAEe,SAAS,SAAUC,GAAMhB,EAAIlU,kBAAkBkV,GAAKC,WAAW,uBAAuBd,EAAG,QAAQO,OAAO,KAAO,YAAYc,KAAK,aAAaxB,EAAIO,GAAG,oEAAoEJ,EAAG,OAAOE,YAAY,kBAAkBF,EAAG,QAAQH,EAAIO,GAAGP,EAAIQ,GAAGR,EAAIlU,yBAAyB,IACzxB8U,KACAC,GAAcd,OAAQA,EAAQa,gBAAiBA,EACpC,Q9CkrGT,SAAU3W,EAAQC,EAAqBC,GAE7C,Y+C1rGA,IAAI4V,GAAS,WAAa,GAAIC,GAAIvL,KAASwL,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,CAAG,OAAOE,GAAG,OAAOA,EAAG,SAASE,YAAY,gBAAgBL,EAAIO,GAAG,+BAA+BJ,EAAG,eAAeO,OAAO,YAAc,cAAc,QAAUV,EAAIvU,QAAQ,YAAa,EAAM,eAAc,GAAM6U,IAAI,OAASN,EAAItU,mBAAmB,IAC1UkV,KACAC,GAAcd,OAAQA,EAAQa,gBAAiBA,EACpC,Q/C+rGT,SAAU3W,EAAQC,EAAqBC,GAE7C,YgDpsGA,IAAI4V,GAAS,WAAa,GAAIC,GAAIvL,KAASwL,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,CAAG,OAAOE,GAAG,OAAOsB,OAAQ,QAAWzB,EAAIrT,aAAcwT,EAAG,SAASE,YAAY,gBAAgBL,EAAIO,GAAG,4BAA4BJ,EAAG,eAAeO,OAAO,YAAc,oBAAoB,eAAe,2BAA2B,MAAQV,EAAI3U,MAAM,QAAU2U,EAAIvT,QAAQ,UAAW,EAAK,YAAa,EAAK,eAAc,EAAM,qBAAoB,EAAK,iBAAgB,EAAK,aAAa,IAAI,IAAM,EAAE,SAAWuT,EAAIzT,WAAW,cAAc,MAAO,UAAU+T,IAAI,MAAQN,EAAIpT,SAAS,MAAQoT,EAAIlT,QAAQ,OAASkT,EAAInT,YAAYsT,EAAG,SAASkB,aAAajW,KAAK,OAAOkW,QAAQ,SAASjW,MAAO2U,EAAa,UAAEiB,WAAW,cAAcZ,YAAY,4BAA4BL,EAAIO,GAAG,mCAAmC,IACtxBK,KACAC,GAAcd,OAAQA,EAAQa,gBAAiBA,EACpC,QhDysGT,SAAU3W,EAAQC,EAAqBC,GAE7C,YiD9sGA,IAAI4V,GAAS,WAAa,GAAIC,GAAIvL,KAASwL,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,CAAG,OAAOE,GAAG,OAAOA,EAAG,SAASE,YAAY,gBAAgBL,EAAIO,GAAG,YAAYJ,EAAG,eAAeO,OAAO,QAAUV,EAAIvT,QAAQ,UAAW,EAAK,eAAe,OAAO,cAAc,WAAW,gBAAe,EAAK,YAAc,iBAAiB,WAAW,OAAO,MAAQ,QAAQqU,OAAOzV,MAAO2U,EAAS,MAAEe,SAAS,SAAUC,GAAMhB,EAAI3U,MAAM2V,GAAKC,WAAW,WAAWd,EAAG,QAAQO,OAAO,KAAO,YAAYc,KAAK,aAAaxB,EAAIO,GAAG,oEAAoEJ,EAAG,OAAOE,YAAY,kBAAkBF,EAAG,QAAQH,EAAIO,GAAGP,EAAIQ,GAAGR,EAAI3U,aAAa,IAC/oBuV,KACAC,GAAcd,OAAQA,EAAQa,gBAAiBA,EACpC,QjDmtGT,SAAU3W,EAAQC,EAAqBC,GAE7C,YkDxtGA,IAAI4V,GAAS,WAAa,GAAIC,GAAIvL,KAASwL,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,CAAG,OAAOE,GAAG,OAAOE,YAAY,QAAQL,EAAIiC,GAAIjC,EAAS,MAAE,SAASlL,GAAM,MAAOqL,GAAG,KAAKE,YAAY,aAAaoB,OAAO,qBAAsB3M,IAASkL,EAAIuC,SAASjC,IAAI,MAAQ,SAASK,GAAQ,MAAOX,GAAIrV,OAAOmK,OAAUkL,EAAIO,GAAGP,EAAIQ,GAAG1L,QAAW,IACzU8L,KACAC,GAAcd,OAAQA,EAAQa,gBAAiBA,EACpC,QlD6tGT,SAAU3W,EAAQC,EAAqBC,GAE7C,YmDluGA,IAAI4V,GAAS,WAAa,GAAIC,GAAIvL,KAASwL,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,CAAG,OAAOE,GAAG,OAAOA,EAAG,SAASE,YAAY,gBAAgBL,EAAIO,GAAG,wBAAwBJ,EAAG,eAAeO,OAAO,QAAUV,EAAIvT,QAAQ,eAAeuT,EAAI9R,aAAa,YAAc,aAAa,MAAQ,OAAO,WAAW,QAAQ4S,OAAOzV,MAAO2U,EAAS,MAAEe,SAAS,SAAUC,GAAMhB,EAAI3U,MAAM2V,GAAKC,WAAW,WAAWd,EAAG,OAAOE,YAAY,kBAAkBF,EAAG,QAAQH,EAAIO,GAAGP,EAAIQ,GAAGR,EAAI3U,aAAa,IACleuV,KACAC,GAAcd,OAAQA,EAAQa,gBAAiBA,EACpC,UnDsuGZ","file":"static/js/app.f7ff199ab89fb9e630e4.js","sourcesContent":["webpackJsonp([1],[\n/* 0 */,\n/* 1 */,\n/* 2 */,\n/* 3 */,\n/* 4 */,\n/* 5 */,\n/* 6 */,\n/* 7 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_Multiselect_vue__ = __webpack_require__(89);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_6dd7a4dc_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_Multiselect_vue__ = __webpack_require__(227);\nfunction injectStyle (ssrContext) {\n __webpack_require__(200)\n}\nvar normalizeComponent = __webpack_require__(6)\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_Multiselect_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_6dd7a4dc_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_selector_type_template_index_0_Multiselect_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n/* 8 */,\n/* 9 */,\n/* 10 */,\n/* 11 */,\n/* 12 */,\n/* 13 */,\n/* 14 */,\n/* 15 */,\n/* 16 */,\n/* 17 */,\n/* 18 */,\n/* 19 */,\n/* 20 */,\n/* 21 */,\n/* 22 */,\n/* 23 */,\n/* 24 */,\n/* 25 */,\n/* 26 */,\n/* 27 */,\n/* 28 */,\n/* 29 */,\n/* 30 */,\n/* 31 */,\n/* 32 */,\n/* 33 */,\n/* 34 */,\n/* 35 */,\n/* 36 */,\n/* 37 */,\n/* 38 */,\n/* 39 */,\n/* 40 */,\n/* 41 */,\n/* 42 */,\n/* 43 */,\n/* 44 */,\n/* 45 */,\n/* 46 */,\n/* 47 */,\n/* 48 */,\n/* 49 */,\n/* 50 */,\n/* 51 */,\n/* 52 */,\n/* 53 */,\n/* 54 */,\n/* 55 */,\n/* 56 */,\n/* 57 */,\n/* 58 */,\n/* 59 */,\n/* 60 */,\n/* 61 */,\n/* 62 */,\n/* 63 */,\n/* 64 */,\n/* 65 */,\n/* 66 */,\n/* 67 */,\n/* 68 */,\n/* 69 */,\n/* 70 */,\n/* 71 */,\n/* 72 */,\n/* 73 */,\n/* 74 */,\n/* 75 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n props: ['langs', 'current'],\n methods: {\n select: function select(lang) {\n this.$emit('select', lang);\n }\n }\n});\n\n/***/ }),\n/* 76 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_core_js_modules_es_array_push_js__ = __webpack_require__(28);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_core_js_modules_es_array_push_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_core_js_modules_es_array_push_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__src_Multiselect__ = __webpack_require__(7);\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n components: {\n Multiselect: __WEBPACK_IMPORTED_MODULE_1__src_Multiselect__[\"a\" /* default */]\n },\n data: function data() {\n return {\n badges: [{\n img: 'https://camo.githubusercontent.com/d0e25b09a82bc4bfde9f1e048a092752eebbb4f3/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c75652e7376673f7374796c653d666c6174',\n name: 'License'\n }, {\n img: 'https://img.shields.io/github/stars/shentao/vue-multiselect.svg?label=Stars',\n name: 'GitHub Stars'\n }, {\n img: 'https://camo.githubusercontent.com/64f9a2333bb303d34b1587e1436b24dee6a8e134/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f646d2f7675652d6d756c746973656c6563742e737667',\n name: 'Npm Monthly Downloads'\n }, {\n img: 'https://camo.githubusercontent.com/47ff0923e959e736113988e900268dfc7a601d3b/68747470733a2f2f636972636c6563692e636f6d2f67682f6d6f6e74657261696c2f7675652d6d756c746973656c6563742f747265652f6d61737465722e7376673f7374796c653d736869656c6426636972636c652d746f6b656e3d35633933316666323866643132353837363130663833353437326265636464353134643039636566',\n name: 'Full Test Coverage'\n }, {\n img: 'https://img.shields.io/badge/dependencies-none-brightgreen.svg?style=flat',\n name: 'NO Dependencies'\n }],\n value: []\n };\n },\n methods: {\n onTagging: function onTagging(newTag) {\n this.source.push({\n name: newTag,\n language: newTag\n });\n this.value.push({\n name: newTag,\n language: newTag\n });\n }\n }\n});\n\n/***/ }),\n/* 77 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_multiselect__ = __webpack_require__(7);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n components: {\n Multiselect: __WEBPACK_IMPORTED_MODULE_0_vue_multiselect__[\"a\" /* default */]\n },\n data: function data() {\n return {\n actions: ['alert', 'console.log', 'scrollTop']\n };\n },\n methods: {\n dispatchAction: function dispatchAction(actionName) {\n switch (actionName) {\n case 'alert':\n window.alert('You just dispatched \"alert\" action!');\n break;\n case 'console.log':\n console.log('You just dispatched \"console.log\" action!');\n break;\n case 'scrollTop':\n window.scrollTo(0, 0);\n break;\n }\n }\n }\n});\n\n/***/ }),\n/* 78 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_multiselect__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__countriesApi__ = __webpack_require__(136);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n components: {\n Multiselect: __WEBPACK_IMPORTED_MODULE_0_vue_multiselect__[\"a\" /* default */]\n },\n data: function data() {\n return {\n selectedCountries: [],\n countries: [],\n isLoading: false\n };\n },\n methods: {\n limitText: function limitText(count) {\n return \"and \".concat(count, \" other countries\");\n },\n asyncFind: function asyncFind(query) {\n var _this = this;\n this.isLoading = true;\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__countriesApi__[\"a\" /* ajaxFindCountry */])(query).then(function (response) {\n _this.countries = response;\n _this.isLoading = false;\n });\n },\n clearAll: function clearAll() {\n this.selectedCountries = [];\n }\n }\n});\n\n/***/ }),\n/* 79 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_core_js_modules_es_array_index_of_js__ = __webpack_require__(118);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_core_js_modules_es_array_index_of_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_core_js_modules_es_array_index_of_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue_multiselect__ = __webpack_require__(7);\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n components: {\n Multiselect: __WEBPACK_IMPORTED_MODULE_1_vue_multiselect__[\"a\" /* default */]\n },\n data: function data() {\n return {\n isDisabled: false,\n isTouched: false,\n value: [],\n options: ['Select option', 'Disable me!', 'Reset me!', 'mulitple', 'label', 'searchable']\n };\n },\n computed: {\n isInvalid: function isInvalid() {\n return this.isTouched && this.value.length === 0;\n }\n },\n methods: {\n onChange: function onChange(value) {\n this.value = value;\n if (value.indexOf('Reset me!') !== -1) this.value = [];\n },\n onSelect: function onSelect(option) {\n if (option === 'Disable me!') this.isDisabled = true;\n },\n onTouch: function onTouch() {\n this.isTouched = true;\n }\n }\n});\n\n/***/ }),\n/* 80 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_core_js_modules_es_array_concat_js__ = __webpack_require__(27);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_core_js_modules_es_array_concat_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_core_js_modules_es_array_concat_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue_multiselect__ = __webpack_require__(7);\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n components: {\n Multiselect: __WEBPACK_IMPORTED_MODULE_1_vue_multiselect__[\"a\" /* default */]\n },\n data: function data() {\n return {\n value: {\n title: 'Explorer',\n desc: 'Discovering new species!',\n img: 'static/posters/creatures.png'\n },\n options: [{\n title: 'Space Pirate',\n desc: 'More space battles!',\n img: 'static/posters/fleet.png'\n }, {\n title: 'Merchant',\n desc: 'PROFIT!',\n img: 'static/posters/trading_post.png'\n }, {\n title: 'Explorer',\n desc: 'Discovering new species!',\n img: 'static/posters/creatures.png'\n }, {\n title: 'Miner',\n desc: 'We need to go deeper!',\n img: 'static/posters/resource_lab.png'\n }]\n };\n },\n methods: {\n customLabel: function customLabel(_ref) {\n var title = _ref.title,\n desc = _ref.desc;\n return \"\".concat(title, \" \\u2013 \").concat(desc);\n }\n }\n});\n\n/***/ }),\n/* 81 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_multiselect__ = __webpack_require__(7);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n components: {\n Multiselect: __WEBPACK_IMPORTED_MODULE_0_vue_multiselect__[\"a\" /* default */]\n },\n data: function data() {\n return {\n options: [{\n language: 'Javascript',\n libs: [{\n name: 'Vue.js',\n category: 'Front-end'\n }, {\n name: 'Adonis',\n category: 'Backend'\n }]\n }, {\n language: 'Ruby',\n libs: [{\n name: 'Rails',\n category: 'Backend'\n }, {\n name: 'Sinatra',\n category: 'Backend'\n }]\n }, {\n language: 'Other',\n libs: [{\n name: 'Laravel',\n category: 'Backend'\n }, {\n name: 'Phoenix',\n category: 'Backend'\n }]\n }],\n value: []\n };\n }\n});\n\n/***/ }),\n/* 82 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_multiselect__ = __webpack_require__(7);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n components: {\n Multiselect: __WEBPACK_IMPORTED_MODULE_0_vue_multiselect__[\"a\" /* default */]\n },\n data: function data() {\n return {\n value: [],\n options: [{\n name: 'Vue.js',\n language: 'JavaScript'\n }, {\n name: 'Adonis',\n language: 'JavaScript'\n }, {\n name: 'Rails',\n language: 'Ruby'\n }, {\n name: 'Sinatra',\n language: 'Ruby'\n }, {\n name: 'Laravel',\n language: 'PHP'\n }, {\n name: 'Phoenix',\n language: 'Elixir'\n }]\n };\n }\n});\n\n/***/ }),\n/* 83 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_core_js_modules_web_timers_js__ = __webpack_require__(43);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_core_js_modules_web_timers_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_core_js_modules_web_timers_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_core_js_modules_es_regexp_exec_js__ = __webpack_require__(42);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_core_js_modules_es_regexp_exec_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_core_js_modules_es_regexp_exec_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_core_js_modules_es_string_search_js__ = __webpack_require__(70);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_core_js_modules_es_string_search_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_core_js_modules_es_string_search_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_vue_multiselect__ = __webpack_require__(7);\n\n\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n components: {\n Multiselect: __WEBPACK_IMPORTED_MODULE_3_vue_multiselect__[\"a\" /* default */]\n },\n data: function data() {\n return {\n isOpen: false,\n value: [],\n options: ['Select option', 'Option 1', 'Option 2', 'Option 3', 'Option 4', 'Option 5']\n };\n },\n methods: {\n toggle: function toggle() {\n var _this = this;\n this.$refs.multiselect.$el.focus();\n setTimeout(function () {\n _this.$refs.multiselect.$refs.search.blur();\n }, 1000);\n },\n open: function open() {\n this.$refs.multiselect.activate();\n },\n close: function close() {\n this.$refs.multiselect.deactivate();\n }\n }\n});\n\n/***/ }),\n/* 84 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_multiselect__ = __webpack_require__(7);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n components: {\n Multiselect: __WEBPACK_IMPORTED_MODULE_0_vue_multiselect__[\"a\" /* default */]\n },\n data: function data() {\n return {\n value: null,\n options: [{\n name: 'Vue.js',\n language: 'JavaScript'\n }, {\n name: 'Rails',\n language: 'Ruby'\n }, {\n name: 'Sinatra',\n language: 'Ruby'\n }, {\n name: 'Laravel',\n language: 'PHP',\n $isDisabled: true\n }, {\n name: 'Phoenix',\n language: 'Elixir'\n }]\n };\n }\n});\n\n/***/ }),\n/* 85 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_vue_multiselect__ = __webpack_require__(7);\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n components: {\n Multiselect: __WEBPACK_IMPORTED_MODULE_0_vue_multiselect__[\"a\" /* default */]\n },\n data: function data() {\n return {\n value: '',\n options: ['Select option', 'options', 'selected', 'multiple', 'label', 'searchable', 'clearOnSelect', 'hideSelected', 'maxHeight', 'allowEmpty', 'showLabels', 'onChange', 'touched']\n };\n }\n});\n\n/***/ }),\n/* 86 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_core_js_modules_es_function_name_js__ = __webpack_require__(122);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_core_js_modules_es_function_name_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_core_js_modules_es_function_name_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_core_js_modules_es_array_concat_js__ = __webpack_require__(27);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_core_js_modules_es_array_concat_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_core_js_modules_es_array_concat_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vue_multiselect__ = __webpack_require__(7);\n\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n components: {\n Multiselect: __WEBPACK_IMPORTED_MODULE_2_vue_multiselect__[\"a\" /* default */]\n },\n data: function data() {\n return {\n value: {\n name: 'Vue.js',\n language: 'JavaScript'\n },\n options: [{\n name: 'Vue.js',\n language: 'JavaScript'\n }, {\n name: 'Rails',\n language: 'Ruby'\n }, {\n name: 'Sinatra',\n language: 'Ruby'\n }, {\n name: 'Laravel',\n language: 'PHP'\n }, {\n name: 'Phoenix',\n language: 'Elixir'\n }]\n };\n },\n methods: {\n nameWithLang: function nameWithLang(_ref) {\n var name = _ref.name,\n language = _ref.language;\n return \"\".concat(name, \" \\u2014 [\").concat(language, \"]\");\n }\n }\n});\n\n/***/ }),\n/* 87 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_core_js_modules_es_array_push_js__ = __webpack_require__(28);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_core_js_modules_es_array_push_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_core_js_modules_es_array_push_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue_multiselect__ = __webpack_require__(7);\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n components: {\n Multiselect: __WEBPACK_IMPORTED_MODULE_1_vue_multiselect__[\"a\" /* default */]\n },\n data: function data() {\n return {\n value: [{\n name: 'Javascript',\n code: 'js'\n }],\n options: [{\n name: 'Vue.js',\n code: 'vu'\n }, {\n name: 'Javascript',\n code: 'js'\n }, {\n name: 'Open Source',\n code: 'os'\n }]\n };\n },\n methods: {\n addTag: function addTag(newTag) {\n var tag = {\n name: newTag,\n code: newTag.substring(0, 2) + Math.floor(Math.random() * 10000000)\n };\n this.options.push(tag);\n this.value.push(tag);\n }\n }\n});\n\n/***/ }),\n/* 88 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__home_matt_git_vue_multiselect_node_modules_babel_runtime_helpers_esm_objectSpread2_js__ = __webpack_require__(71);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue__ = __webpack_require__(73);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_vuex__ = __webpack_require__(235);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_vue_multiselect__ = __webpack_require__(7);\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n\nvar mapActions = __WEBPACK_IMPORTED_MODULE_2_vuex__[\"a\" /* default */].mapActions,\n mapState = __WEBPACK_IMPORTED_MODULE_2_vuex__[\"a\" /* default */].mapState;\n__WEBPACK_IMPORTED_MODULE_1_vue___default.a.use(__WEBPACK_IMPORTED_MODULE_2_vuex__[\"a\" /* default */]);\nvar store = new __WEBPACK_IMPORTED_MODULE_2_vuex__[\"a\" /* default */].Store({\n state: {\n value: 'Vuex',\n options: ['Vuex', 'Vue', 'Vuelidate', 'Vue-Multiselect', 'Vue-Router']\n },\n mutations: {\n updateValue: function updateValue(state, value) {\n state.value = value;\n }\n },\n actions: {\n updateValueAction: function updateValueAction(_ref, value) {\n var commit = _ref.commit;\n commit('updateValue', value);\n }\n }\n});\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n store: store,\n components: {\n Multiselect: __WEBPACK_IMPORTED_MODULE_3_vue_multiselect__[\"a\" /* default */]\n },\n computed: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__home_matt_git_vue_multiselect_node_modules_babel_runtime_helpers_esm_objectSpread2_js__[\"a\" /* default */])({}, mapState(['value', 'options'])),\n methods: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__home_matt_git_vue_multiselect_node_modules_babel_runtime_helpers_esm_objectSpread2_js__[\"a\" /* default */])({}, mapActions(['updateValueAction']))\n});\n\n/***/ }),\n/* 89 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_core_js_modules_es_number_constructor_js__ = __webpack_require__(68);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_core_js_modules_es_number_constructor_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_core_js_modules_es_number_constructor_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_core_js_modules_es_array_slice_js__ = __webpack_require__(119);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_core_js_modules_es_array_slice_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_core_js_modules_es_array_slice_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__multiselectMixin__ = __webpack_require__(137);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__pointerMixin__ = __webpack_require__(138);\n\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n name: 'vue-multiselect',\n mixins: [__WEBPACK_IMPORTED_MODULE_2__multiselectMixin__[\"a\" /* default */], __WEBPACK_IMPORTED_MODULE_3__pointerMixin__[\"a\" /* default */]],\n props: {\n /**\n * name attribute to match optional label element\n * @default ''\n * @type {String}\n */\n name: {\n type: String,\n \"default\": ''\n },\n /**\n * String to show when pointing to an option\n * @default 'Press enter to select'\n * @type {String}\n */\n selectLabel: {\n type: String,\n \"default\": 'Press enter to select'\n },\n /**\n * String to show when pointing to an option\n * @default 'Press enter to select'\n * @type {String}\n */\n selectGroupLabel: {\n type: String,\n \"default\": 'Press enter to select group'\n },\n /**\n * String to show next to selected option\n * @default 'Selected'\n * @type {String}\n */\n selectedLabel: {\n type: String,\n \"default\": 'Selected'\n },\n /**\n * String to show when pointing to an already selected option\n * @default 'Press enter to remove'\n * @type {String}\n */\n deselectLabel: {\n type: String,\n \"default\": 'Press enter to remove'\n },\n /**\n * String to show when pointing to an already selected option\n * @default 'Press enter to remove'\n * @type {String}\n */\n deselectGroupLabel: {\n type: String,\n \"default\": 'Press enter to deselect group'\n },\n /**\n * Decide whether to show pointer labels\n * @default true\n * @type {Boolean}\n */\n showLabels: {\n type: Boolean,\n \"default\": true\n },\n /**\n * Limit the display of selected options. The rest will be hidden within the limitText string.\n * @default 99999\n * @type {Integer}\n */\n limit: {\n type: Number,\n \"default\": 99999\n },\n /**\n * Sets maxHeight style value of the dropdown\n * @default 300\n * @type {Integer}\n */\n maxHeight: {\n type: Number,\n \"default\": 300\n },\n /**\n * Function that process the message shown when selected\n * elements pass the defined limit.\n * @default 'and * more'\n * @param {Int} count Number of elements more than limit\n * @type {Function}\n */\n limitText: {\n type: Function,\n \"default\": function _default(count) {\n return \"and \".concat(count, \" more\");\n }\n },\n /**\n * Set true to trigger the loading spinner.\n * @default False\n * @type {Boolean}\n */\n loading: {\n type: Boolean,\n \"default\": false\n },\n /**\n * Disables the multiselect if true.\n * @default false\n * @type {Boolean}\n */\n disabled: {\n type: Boolean,\n \"default\": false\n },\n /**\n * Fixed opening direction\n * @default ''\n * @type {String}\n */\n openDirection: {\n type: String,\n \"default\": ''\n },\n /**\n * Shows slot with message about empty options\n * @default true\n * @type {Boolean}\n */\n showNoOptions: {\n type: Boolean,\n \"default\": true\n },\n showNoResults: {\n type: Boolean,\n \"default\": true\n },\n tabindex: {\n type: Number,\n \"default\": 0\n }\n },\n computed: {\n hasOptionGroup: function hasOptionGroup() {\n return this.groupValues && this.groupLabel && this.groupSelect;\n },\n isSingleLabelVisible: function isSingleLabelVisible() {\n return (this.singleValue || this.singleValue === 0) && (!this.isOpen || !this.searchable) && !this.visibleValues.length;\n },\n isPlaceholderVisible: function isPlaceholderVisible() {\n return !this.internalValue.length && (!this.searchable || !this.isOpen);\n },\n visibleValues: function visibleValues() {\n return this.multiple ? this.internalValue.slice(0, this.limit) : [];\n },\n singleValue: function singleValue() {\n return this.internalValue[0];\n },\n deselectLabelText: function deselectLabelText() {\n return this.showLabels ? this.deselectLabel : '';\n },\n deselectGroupLabelText: function deselectGroupLabelText() {\n return this.showLabels ? this.deselectGroupLabel : '';\n },\n selectLabelText: function selectLabelText() {\n return this.showLabels ? this.selectLabel : '';\n },\n selectGroupLabelText: function selectGroupLabelText() {\n return this.showLabels ? this.selectGroupLabel : '';\n },\n selectedLabelText: function selectedLabelText() {\n return this.showLabels ? this.selectedLabel : '';\n },\n inputStyle: function inputStyle() {\n if (this.searchable || this.multiple && this.value && this.value.length) {\n // Hide input by setting the width to 0 allowing it to receive focus\n return this.isOpen ? {\n width: '100%'\n } : {\n width: '0',\n position: 'absolute',\n padding: '0'\n };\n }\n return '';\n },\n contentStyle: function contentStyle() {\n return this.options.length ? {\n display: 'inline-block'\n } : {\n display: 'block'\n };\n },\n isAbove: function isAbove() {\n if (this.openDirection === 'above' || this.openDirection === 'top') {\n return true;\n } else if (this.openDirection === 'below' || this.openDirection === 'bottom') {\n return false;\n } else {\n return this.preferredOpenDirection === 'above';\n }\n },\n showSearchInput: function showSearchInput() {\n return this.searchable && (this.hasSingleSelectedSlot && (this.visibleSingleValue || this.visibleSingleValue === 0) ? this.isOpen : true);\n }\n }\n});\n\n/***/ }),\n/* 90 */,\n/* 91 */,\n/* 92 */,\n/* 93 */,\n/* 94 */,\n/* 95 */,\n/* 96 */,\n/* 97 */,\n/* 98 */,\n/* 99 */,\n/* 100 */,\n/* 101 */,\n/* 102 */,\n/* 103 */,\n/* 104 */,\n/* 105 */,\n/* 106 */,\n/* 107 */,\n/* 108 */,\n/* 109 */,\n/* 110 */,\n/* 111 */,\n/* 112 */,\n/* 113 */,\n/* 114 */,\n/* 115 */,\n/* 116 */,\n/* 117 */,\n/* 118 */,\n/* 119 */,\n/* 120 */,\n/* 121 */,\n/* 122 */,\n/* 123 */,\n/* 124 */,\n/* 125 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__SingleSelectPrimitive__ = __webpack_require__(215);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__SingleSelectObject__ = __webpack_require__(214);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__SingleSelectSearch__ = __webpack_require__(216);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__MultiSelect__ = __webpack_require__(212);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__AjaxSearch__ = __webpack_require__(208);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__Tagging__ = __webpack_require__(217);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__CustomOption__ = __webpack_require__(210);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__VuexActions__ = __webpack_require__(218);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__CustomConfig__ = __webpack_require__(209);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__Groups__ = __webpack_require__(211);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__ActionDispatcher__ = __webpack_require__(207);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__ProgrammaticCtrl__ = __webpack_require__(213);\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"SingleSelectPrimitive\", function() { return __WEBPACK_IMPORTED_MODULE_0__SingleSelectPrimitive__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"SingleSelectObject\", function() { return __WEBPACK_IMPORTED_MODULE_1__SingleSelectObject__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"SingleSelectSearch\", function() { return __WEBPACK_IMPORTED_MODULE_2__SingleSelectSearch__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"MultiSelect\", function() { return __WEBPACK_IMPORTED_MODULE_3__MultiSelect__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"AjaxSearch\", function() { return __WEBPACK_IMPORTED_MODULE_4__AjaxSearch__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Tagging\", function() { return __WEBPACK_IMPORTED_MODULE_5__Tagging__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"CustomOption\", function() { return __WEBPACK_IMPORTED_MODULE_6__CustomOption__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"VuexActions\", function() { return __WEBPACK_IMPORTED_MODULE_7__VuexActions__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"CustomConfig\", function() { return __WEBPACK_IMPORTED_MODULE_8__CustomConfig__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"Groups\", function() { return __WEBPACK_IMPORTED_MODULE_9__Groups__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"ActionDispatcher\", function() { return __WEBPACK_IMPORTED_MODULE_10__ActionDispatcher__[\"a\"]; });\n/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, \"ProgrammaticCtrl\", function() { return __WEBPACK_IMPORTED_MODULE_11__ProgrammaticCtrl__[\"a\"]; });\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/***/ }),\n/* 126 */,\n/* 127 */,\n/* 128 */,\n/* 129 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 130 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_LangSwitcher_vue__ = __webpack_require__(75);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_d857282c_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_template_compiler_preprocessor_engine_pug_node_modules_vue_loader_lib_selector_type_template_index_0_LangSwitcher_vue__ = __webpack_require__(232);\nvar normalizeComponent = __webpack_require__(6)\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_LangSwitcher_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_d857282c_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_template_compiler_preprocessor_engine_pug_node_modules_vue_loader_lib_selector_type_template_index_0_LangSwitcher_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n/* 131 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_MultiselectExample_vue__ = __webpack_require__(76);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_52f7c88f_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_template_compiler_preprocessor_engine_pug_node_modules_vue_loader_lib_selector_type_template_index_0_MultiselectExample_vue__ = __webpack_require__(224);\nfunction injectStyle (ssrContext) {\n __webpack_require__(199)\n}\nvar normalizeComponent = __webpack_require__(6)\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_MultiselectExample_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_52f7c88f_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_template_compiler_preprocessor_engine_pug_node_modules_vue_loader_lib_selector_type_template_index_0_MultiselectExample_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n/* 132 */\n/***/ (function(module, exports) {\n\nmodule.exports = [{\"name\":\"Afghanistan\",\"code\":\"AF\"},{\"name\":\"Åland Islands\",\"code\":\"AX\"},{\"name\":\"Albania\",\"code\":\"AL\"},{\"name\":\"Algeria\",\"code\":\"DZ\"},{\"name\":\"American Samoa\",\"code\":\"AS\"},{\"name\":\"AndorrA\",\"code\":\"AD\"},{\"name\":\"Angola\",\"code\":\"AO\"},{\"name\":\"Anguilla\",\"code\":\"AI\"},{\"name\":\"Antarctica\",\"code\":\"AQ\"},{\"name\":\"Antigua and Barbuda\",\"code\":\"AG\"},{\"name\":\"Argentina\",\"code\":\"AR\"},{\"name\":\"Armenia\",\"code\":\"AM\"},{\"name\":\"Aruba\",\"code\":\"AW\"},{\"name\":\"Australia\",\"code\":\"AU\"},{\"name\":\"Austria\",\"code\":\"AT\"},{\"name\":\"Azerbaijan\",\"code\":\"AZ\"},{\"name\":\"Bahamas\",\"code\":\"BS\"},{\"name\":\"Bahrain\",\"code\":\"BH\"},{\"name\":\"Bangladesh\",\"code\":\"BD\"},{\"name\":\"Barbados\",\"code\":\"BB\"},{\"name\":\"Belarus\",\"code\":\"BY\"},{\"name\":\"Belgium\",\"code\":\"BE\"},{\"name\":\"Belize\",\"code\":\"BZ\"},{\"name\":\"Benin\",\"code\":\"BJ\"},{\"name\":\"Bermuda\",\"code\":\"BM\"},{\"name\":\"Bhutan\",\"code\":\"BT\"},{\"name\":\"Bolivia\",\"code\":\"BO\"},{\"name\":\"Bosnia and Herzegovina\",\"code\":\"BA\"},{\"name\":\"Botswana\",\"code\":\"BW\"},{\"name\":\"Bouvet Island\",\"code\":\"BV\"},{\"name\":\"Brazil\",\"code\":\"BR\"},{\"name\":\"British Indian Ocean Territory\",\"code\":\"IO\"},{\"name\":\"Brunei Darussalam\",\"code\":\"BN\"},{\"name\":\"Bulgaria\",\"code\":\"BG\"},{\"name\":\"Burkina Faso\",\"code\":\"BF\"},{\"name\":\"Burundi\",\"code\":\"BI\"},{\"name\":\"Cambodia\",\"code\":\"KH\"},{\"name\":\"Cameroon\",\"code\":\"CM\"},{\"name\":\"Canada\",\"code\":\"CA\"},{\"name\":\"Cape Verde\",\"code\":\"CV\"},{\"name\":\"Cayman Islands\",\"code\":\"KY\"},{\"name\":\"Central African Republic\",\"code\":\"CF\"},{\"name\":\"Chad\",\"code\":\"TD\"},{\"name\":\"Chile\",\"code\":\"CL\"},{\"name\":\"China\",\"code\":\"CN\"},{\"name\":\"Christmas Island\",\"code\":\"CX\"},{\"name\":\"Cocos (Keeling) Islands\",\"code\":\"CC\"},{\"name\":\"Colombia\",\"code\":\"CO\"},{\"name\":\"Comoros\",\"code\":\"KM\"},{\"name\":\"Congo\",\"code\":\"CG\"},{\"name\":\"Congo, The Democratic Republic of the\",\"code\":\"CD\"},{\"name\":\"Cook Islands\",\"code\":\"CK\"},{\"name\":\"Costa Rica\",\"code\":\"CR\"},{\"name\":\"Cote D\\\"Ivoire\",\"code\":\"CI\"},{\"name\":\"Croatia\",\"code\":\"HR\"},{\"name\":\"Cuba\",\"code\":\"CU\"},{\"name\":\"Cyprus\",\"code\":\"CY\"},{\"name\":\"Czech Republic\",\"code\":\"CZ\"},{\"name\":\"Denmark\",\"code\":\"DK\"},{\"name\":\"Djibouti\",\"code\":\"DJ\"},{\"name\":\"Dominica\",\"code\":\"DM\"},{\"name\":\"Dominican Republic\",\"code\":\"DO\"},{\"name\":\"Ecuador\",\"code\":\"EC\"},{\"name\":\"Egypt\",\"code\":\"EG\"},{\"name\":\"El Salvador\",\"code\":\"SV\"},{\"name\":\"Equatorial Guinea\",\"code\":\"GQ\"},{\"name\":\"Eritrea\",\"code\":\"ER\"},{\"name\":\"Estonia\",\"code\":\"EE\"},{\"name\":\"Ethiopia\",\"code\":\"ET\"},{\"name\":\"Falkland Islands (Malvinas)\",\"code\":\"FK\"},{\"name\":\"Faroe Islands\",\"code\":\"FO\"},{\"name\":\"Fiji\",\"code\":\"FJ\"},{\"name\":\"Finland\",\"code\":\"FI\"},{\"name\":\"France\",\"code\":\"FR\"},{\"name\":\"French Guiana\",\"code\":\"GF\"},{\"name\":\"French Polynesia\",\"code\":\"PF\"},{\"name\":\"French Southern Territories\",\"code\":\"TF\"},{\"name\":\"Gabon\",\"code\":\"GA\"},{\"name\":\"Gambia\",\"code\":\"GM\"},{\"name\":\"Georgia\",\"code\":\"GE\"},{\"name\":\"Germany\",\"code\":\"DE\"},{\"name\":\"Ghana\",\"code\":\"GH\"},{\"name\":\"Gibraltar\",\"code\":\"GI\"},{\"name\":\"Greece\",\"code\":\"GR\"},{\"name\":\"Greenland\",\"code\":\"GL\"},{\"name\":\"Grenada\",\"code\":\"GD\"},{\"name\":\"Guadeloupe\",\"code\":\"GP\"},{\"name\":\"Guam\",\"code\":\"GU\"},{\"name\":\"Guatemala\",\"code\":\"GT\"},{\"name\":\"Guernsey\",\"code\":\"GG\"},{\"name\":\"Guinea\",\"code\":\"GN\"},{\"name\":\"Guinea-Bissau\",\"code\":\"GW\"},{\"name\":\"Guyana\",\"code\":\"GY\"},{\"name\":\"Haiti\",\"code\":\"HT\"},{\"name\":\"Heard Island and Mcdonald Islands\",\"code\":\"HM\"},{\"name\":\"Holy See (Vatican City State)\",\"code\":\"VA\"},{\"name\":\"Honduras\",\"code\":\"HN\"},{\"name\":\"Hong Kong\",\"code\":\"HK\"},{\"name\":\"Hungary\",\"code\":\"HU\"},{\"name\":\"Iceland\",\"code\":\"IS\"},{\"name\":\"India\",\"code\":\"IN\"},{\"name\":\"Indonesia\",\"code\":\"ID\"},{\"name\":\"Iran, Islamic Republic Of\",\"code\":\"IR\"},{\"name\":\"Iraq\",\"code\":\"IQ\"},{\"name\":\"Ireland\",\"code\":\"IE\"},{\"name\":\"Isle of Man\",\"code\":\"IM\"},{\"name\":\"Israel\",\"code\":\"IL\"},{\"name\":\"Italy\",\"code\":\"IT\"},{\"name\":\"Jamaica\",\"code\":\"JM\"},{\"name\":\"Japan\",\"code\":\"JP\"},{\"name\":\"Jersey\",\"code\":\"JE\"},{\"name\":\"Jordan\",\"code\":\"JO\"},{\"name\":\"Kazakhstan\",\"code\":\"KZ\"},{\"name\":\"Kenya\",\"code\":\"KE\"},{\"name\":\"Kiribati\",\"code\":\"KI\"},{\"name\":\"Korea, Democratic People\\\"S Republic of\",\"code\":\"KP\"},{\"name\":\"Korea, Republic of\",\"code\":\"KR\"},{\"name\":\"Kuwait\",\"code\":\"KW\"},{\"name\":\"Kyrgyzstan\",\"code\":\"KG\"},{\"name\":\"Lao People\\\"S Democratic Republic\",\"code\":\"LA\"},{\"name\":\"Latvia\",\"code\":\"LV\"},{\"name\":\"Lebanon\",\"code\":\"LB\"},{\"name\":\"Lesotho\",\"code\":\"LS\"},{\"name\":\"Liberia\",\"code\":\"LR\"},{\"name\":\"Libyan Arab Jamahiriya\",\"code\":\"LY\"},{\"name\":\"Liechtenstein\",\"code\":\"LI\"},{\"name\":\"Lithuania\",\"code\":\"LT\"},{\"name\":\"Luxembourg\",\"code\":\"LU\"},{\"name\":\"Macao\",\"code\":\"MO\"},{\"name\":\"Macedonia, The Former Yugoslav Republic of\",\"code\":\"MK\"},{\"name\":\"Madagascar\",\"code\":\"MG\"},{\"name\":\"Malawi\",\"code\":\"MW\"},{\"name\":\"Malaysia\",\"code\":\"MY\"},{\"name\":\"Maldives\",\"code\":\"MV\"},{\"name\":\"Mali\",\"code\":\"ML\"},{\"name\":\"Malta\",\"code\":\"MT\"},{\"name\":\"Marshall Islands\",\"code\":\"MH\"},{\"name\":\"Martinique\",\"code\":\"MQ\"},{\"name\":\"Mauritania\",\"code\":\"MR\"},{\"name\":\"Mauritius\",\"code\":\"MU\"},{\"name\":\"Mayotte\",\"code\":\"YT\"},{\"name\":\"Mexico\",\"code\":\"MX\"},{\"name\":\"Micronesia, Federated States of\",\"code\":\"FM\"},{\"name\":\"Moldova, Republic of\",\"code\":\"MD\"},{\"name\":\"Monaco\",\"code\":\"MC\"},{\"name\":\"Mongolia\",\"code\":\"MN\"},{\"name\":\"Montserrat\",\"code\":\"MS\"},{\"name\":\"Morocco\",\"code\":\"MA\"},{\"name\":\"Mozambique\",\"code\":\"MZ\"},{\"name\":\"Myanmar\",\"code\":\"MM\"},{\"name\":\"Namibia\",\"code\":\"NA\"},{\"name\":\"Nauru\",\"code\":\"NR\"},{\"name\":\"Nepal\",\"code\":\"NP\"},{\"name\":\"Netherlands\",\"code\":\"NL\"},{\"name\":\"Netherlands Antilles\",\"code\":\"AN\"},{\"name\":\"New Caledonia\",\"code\":\"NC\"},{\"name\":\"New Zealand\",\"code\":\"NZ\"},{\"name\":\"Nicaragua\",\"code\":\"NI\"},{\"name\":\"Niger\",\"code\":\"NE\"},{\"name\":\"Nigeria\",\"code\":\"NG\"},{\"name\":\"Niue\",\"code\":\"NU\"},{\"name\":\"Norfolk Island\",\"code\":\"NF\"},{\"name\":\"Northern Mariana Islands\",\"code\":\"MP\"},{\"name\":\"Norway\",\"code\":\"NO\"},{\"name\":\"Oman\",\"code\":\"OM\"},{\"name\":\"Pakistan\",\"code\":\"PK\"},{\"name\":\"Palau\",\"code\":\"PW\"},{\"name\":\"Palestinian Territory, Occupied\",\"code\":\"PS\"},{\"name\":\"Panama\",\"code\":\"PA\"},{\"name\":\"Papua New Guinea\",\"code\":\"PG\"},{\"name\":\"Paraguay\",\"code\":\"PY\"},{\"name\":\"Peru\",\"code\":\"PE\"},{\"name\":\"Philippines\",\"code\":\"PH\"},{\"name\":\"Pitcairn\",\"code\":\"PN\"},{\"name\":\"Poland\",\"code\":\"PL\"},{\"name\":\"Portugal\",\"code\":\"PT\"},{\"name\":\"Puerto Rico\",\"code\":\"PR\"},{\"name\":\"Qatar\",\"code\":\"QA\"},{\"name\":\"Reunion\",\"code\":\"RE\"},{\"name\":\"Romania\",\"code\":\"RO\"},{\"name\":\"Russian Federation\",\"code\":\"RU\"},{\"name\":\"RWANDA\",\"code\":\"RW\"},{\"name\":\"Saint Helena\",\"code\":\"SH\"},{\"name\":\"Saint Kitts and Nevis\",\"code\":\"KN\"},{\"name\":\"Saint Lucia\",\"code\":\"LC\"},{\"name\":\"Saint Pierre and Miquelon\",\"code\":\"PM\"},{\"name\":\"Saint Vincent and the Grenadines\",\"code\":\"VC\"},{\"name\":\"Samoa\",\"code\":\"WS\"},{\"name\":\"San Marino\",\"code\":\"SM\"},{\"name\":\"Sao Tome and Principe\",\"code\":\"ST\"},{\"name\":\"Saudi Arabia\",\"code\":\"SA\"},{\"name\":\"Senegal\",\"code\":\"SN\"},{\"name\":\"Serbia and Montenegro\",\"code\":\"CS\"},{\"name\":\"Seychelles\",\"code\":\"SC\"},{\"name\":\"Sierra Leone\",\"code\":\"SL\"},{\"name\":\"Singapore\",\"code\":\"SG\"},{\"name\":\"Slovakia\",\"code\":\"SK\"},{\"name\":\"Slovenia\",\"code\":\"SI\"},{\"name\":\"Solomon Islands\",\"code\":\"SB\"},{\"name\":\"Somalia\",\"code\":\"SO\"},{\"name\":\"South Africa\",\"code\":\"ZA\"},{\"name\":\"South Georgia and the South Sandwich Islands\",\"code\":\"GS\"},{\"name\":\"Spain\",\"code\":\"ES\"},{\"name\":\"Sri Lanka\",\"code\":\"LK\"},{\"name\":\"Sudan\",\"code\":\"SD\"},{\"name\":\"Suriname\",\"code\":\"SR\"},{\"name\":\"Svalbard and Jan Mayen\",\"code\":\"SJ\"},{\"name\":\"Swaziland\",\"code\":\"SZ\"},{\"name\":\"Sweden\",\"code\":\"SE\"},{\"name\":\"Switzerland\",\"code\":\"CH\"},{\"name\":\"Syrian Arab Republic\",\"code\":\"SY\"},{\"name\":\"Taiwan, Province of China\",\"code\":\"TW\"},{\"name\":\"Tajikistan\",\"code\":\"TJ\"},{\"name\":\"Tanzania, United Republic of\",\"code\":\"TZ\"},{\"name\":\"Thailand\",\"code\":\"TH\"},{\"name\":\"Timor-Leste\",\"code\":\"TL\"},{\"name\":\"Togo\",\"code\":\"TG\"},{\"name\":\"Tokelau\",\"code\":\"TK\"},{\"name\":\"Tonga\",\"code\":\"TO\"},{\"name\":\"Trinidad and Tobago\",\"code\":\"TT\"},{\"name\":\"Tunisia\",\"code\":\"TN\"},{\"name\":\"Turkey\",\"code\":\"TR\"},{\"name\":\"Turkmenistan\",\"code\":\"TM\"},{\"name\":\"Turks and Caicos Islands\",\"code\":\"TC\"},{\"name\":\"Tuvalu\",\"code\":\"TV\"},{\"name\":\"Uganda\",\"code\":\"UG\"},{\"name\":\"Ukraine\",\"code\":\"UA\"},{\"name\":\"United Arab Emirates\",\"code\":\"AE\"},{\"name\":\"United Kingdom\",\"code\":\"GB\"},{\"name\":\"United States\",\"code\":\"US\"},{\"name\":\"United States Minor Outlying Islands\",\"code\":\"UM\"},{\"name\":\"Uruguay\",\"code\":\"UY\"},{\"name\":\"Uzbekistan\",\"code\":\"UZ\"},{\"name\":\"Vanuatu\",\"code\":\"VU\"},{\"name\":\"Venezuela\",\"code\":\"VE\"},{\"name\":\"Viet Nam\",\"code\":\"VN\"},{\"name\":\"Virgin Islands, British\",\"code\":\"VG\"},{\"name\":\"Virgin Islands, U.S.\",\"code\":\"VI\"},{\"name\":\"Wallis and Futuna\",\"code\":\"WF\"},{\"name\":\"Western Sahara\",\"code\":\"EH\"},{\"name\":\"Yemen\",\"code\":\"YE\"},{\"name\":\"Zambia\",\"code\":\"ZM\"},{\"name\":\"Zimbabwe\",\"code\":\"ZW\"}]\n\n/***/ }),\n/* 133 */,\n/* 134 */,\n/* 135 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__home_matt_git_vue_multiselect_node_modules_babel_runtime_helpers_esm_objectSpread2_js__ = __webpack_require__(71);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_core_js_modules_es_array_map_js__ = __webpack_require__(72);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_core_js_modules_es_array_map_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_core_js_modules_es_array_map_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_core_js_modules_es_array_from_js__ = __webpack_require__(126);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_core_js_modules_es_array_from_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_core_js_modules_es_array_from_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_core_js_modules_es_string_iterator_js__ = __webpack_require__(127);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_core_js_modules_es_string_iterator_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_core_js_modules_es_string_iterator_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_core_js_modules_es_array_concat_js__ = __webpack_require__(27);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_core_js_modules_es_array_concat_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_core_js_modules_es_array_concat_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_core_js_modules_es_array_push_js__ = __webpack_require__(28);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_core_js_modules_es_array_push_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_core_js_modules_es_array_push_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_core_js_modules_web_timers_js__ = __webpack_require__(43);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_core_js_modules_web_timers_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_core_js_modules_web_timers_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_vue__ = __webpack_require__(73);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_vue__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__partials_examples__ = __webpack_require__(125);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__LangSwitcher__ = __webpack_require__(130);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__MultiselectExample__ = __webpack_require__(131);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_vue_multiselect__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__docs_scss__ = __webpack_require__(129);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__docs_scss___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_12__docs_scss__);\n\n\n\n\n\n\n\n\n\n\n\n\n__webpack_require__(128).polyfill();\n\nfunction calculateNavPositions() {\n sections = Array.from(document.querySelectorAll('[data-section]')).map(function (section) {\n return {\n id: section.id,\n offset: section.getBoundingClientRect().top + window.pageYOffset - 50\n };\n });\n}\nvar SL = ', 100%, 85%';\nvar sections;\n\n/* eslint-disable no-new */\nnew __WEBPACK_IMPORTED_MODULE_7_vue___default.a({\n el: '#app',\n components: __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__home_matt_git_vue_multiselect_node_modules_babel_runtime_helpers_esm_objectSpread2_js__[\"a\" /* default */])(__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__home_matt_git_vue_multiselect_node_modules_babel_runtime_helpers_esm_objectSpread2_js__[\"a\" /* default */])({}, __WEBPACK_IMPORTED_MODULE_8__partials_examples__), {}, {\n MultiselectExample: __WEBPACK_IMPORTED_MODULE_10__MultiselectExample__[\"a\" /* default */],\n LangSwitcher: __WEBPACK_IMPORTED_MODULE_9__LangSwitcher__[\"a\" /* default */],\n Multiselect: __WEBPACK_IMPORTED_MODULE_11_vue_multiselect__[\"a\" /* default */]\n }),\n data: function data() {\n return {\n markupLangs: ['pug', 'html'],\n markupLanguage: 'pug',\n isNavSticky: false,\n firstColor: Math.floor(Math.random() * 255),\n secondColor: Math.floor(Math.random() * 255),\n currentPosition: '',\n versions: ['v1.x', 'v2.0'],\n version: 'v2.0'\n };\n },\n computed: {\n gradient: function gradient() {\n return {\n background: \"linear-gradient(to left bottom, hsl(\".concat(this.firstColor + SL, \") 0%, hsl(\").concat(this.secondColor + SL, \") 100%)\")\n };\n }\n },\n methods: {\n pickVersion: function pickVersion(version) {\n switch (version) {\n case 'v1.x':\n window.location.assign('v1/index.html');\n break;\n case 'v2.0':\n window.location.assign('https://vue-multiselect.js.org/');\n break;\n }\n },\n selectLanguage: function selectLanguage(lang) {\n this.markupLanguage = lang;\n },\n adjustNav: function adjustNav() {\n this.isNavSticky = window.scrollY > window.innerHeight;\n if (!sections) calculateNavPositions();\n for (var i = sections.length - 1; i >= 0; i--) {\n if (window.scrollY > sections[i].offset) {\n this.currentPosition = sections[i].id;\n break;\n }\n }\n },\n onTagging: function onTagging(newTag) {\n this.source.push({\n name: newTag,\n language: newTag\n });\n this.value.push({\n name: newTag,\n language: newTag\n });\n }\n },\n mounted: function mounted() {\n this.adjustNav();\n window.addEventListener('scroll', this.adjustNav);\n setTimeout(function () {\n calculateNavPositions();\n }, 1000);\n }\n});\n\n/***/ }),\n/* 136 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = ajaxFindCountry;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_core_js_modules_es_object_to_string_js__ = __webpack_require__(69);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_core_js_modules_es_object_to_string_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_core_js_modules_es_object_to_string_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_core_js_modules_web_timers_js__ = __webpack_require__(43);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_core_js_modules_web_timers_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_core_js_modules_web_timers_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_core_js_modules_es_array_filter_js__ = __webpack_require__(116);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_core_js_modules_es_array_filter_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_core_js_modules_es_array_filter_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_core_js_modules_es_array_includes_js__ = __webpack_require__(185);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_core_js_modules_es_array_includes_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_core_js_modules_es_array_includes_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_core_js_modules_es_string_includes_js__ = __webpack_require__(190);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_core_js_modules_es_string_includes_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_core_js_modules_es_string_includes_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_core_js_modules_es_function_name_js__ = __webpack_require__(122);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_core_js_modules_es_function_name_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_core_js_modules_es_function_name_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__data_countries_json__ = __webpack_require__(132);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__data_countries_json___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6__data_countries_json__);\n\n\n\n\n\n\n\nfunction ajaxFindCountry(query) {\n return new Promise(function (resolve, reject) {\n setTimeout(function () {\n var results = __WEBPACK_IMPORTED_MODULE_6__data_countries_json___default.a.filter(function (element, index, array) {\n return element.name.toLowerCase().includes(query.toLowerCase());\n });\n resolve(results);\n }, 1000);\n });\n}\n\n/***/ }),\n/* 137 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__home_matt_git_vue_multiselect_node_modules_babel_runtime_helpers_esm_typeof_js__ = __webpack_require__(44);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__home_matt_git_vue_multiselect_node_modules_babel_runtime_helpers_esm_defineProperty_js__ = __webpack_require__(74);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_core_js_modules_es_array_is_array_js__ = __webpack_require__(186);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_core_js_modules_es_array_is_array_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_core_js_modules_es_array_is_array_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_core_js_modules_es_error_to_string_js__ = __webpack_require__(121);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_core_js_modules_es_error_to_string_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_core_js_modules_es_error_to_string_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_core_js_modules_es_date_to_string_js__ = __webpack_require__(120);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_core_js_modules_es_date_to_string_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_core_js_modules_es_date_to_string_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_core_js_modules_es_object_to_string_js__ = __webpack_require__(69);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_core_js_modules_es_object_to_string_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_core_js_modules_es_object_to_string_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_core_js_modules_es_regexp_to_string_js__ = __webpack_require__(123);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_core_js_modules_es_regexp_to_string_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_core_js_modules_es_regexp_to_string_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_core_js_modules_es_array_index_of_js__ = __webpack_require__(118);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_core_js_modules_es_array_index_of_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_core_js_modules_es_array_index_of_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_core_js_modules_es_string_trim_js__ = __webpack_require__(191);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_core_js_modules_es_string_trim_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8_core_js_modules_es_string_trim_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_core_js_modules_es_array_filter_js__ = __webpack_require__(116);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_core_js_modules_es_array_filter_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9_core_js_modules_es_array_filter_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_core_js_modules_es_array_reduce_js__ = __webpack_require__(187);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_core_js_modules_es_array_reduce_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_10_core_js_modules_es_array_reduce_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_core_js_modules_es_array_push_js__ = __webpack_require__(28);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_core_js_modules_es_array_push_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_11_core_js_modules_es_array_push_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12_core_js_modules_es_array_concat_js__ = __webpack_require__(27);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12_core_js_modules_es_array_concat_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_12_core_js_modules_es_array_concat_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13_core_js_modules_es_array_map_js__ = __webpack_require__(72);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13_core_js_modules_es_array_map_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_13_core_js_modules_es_array_map_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14_core_js_modules_es_number_constructor_js__ = __webpack_require__(68);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14_core_js_modules_es_number_constructor_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_14_core_js_modules_es_number_constructor_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15_core_js_modules_es_regexp_exec_js__ = __webpack_require__(42);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15_core_js_modules_es_regexp_exec_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_15_core_js_modules_es_regexp_exec_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16_core_js_modules_es_string_search_js__ = __webpack_require__(70);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16_core_js_modules_es_string_search_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_16_core_js_modules_es_string_search_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17_core_js_modules_es_array_unshift_js__ = __webpack_require__(189);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17_core_js_modules_es_array_unshift_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_17_core_js_modules_es_array_unshift_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_18_core_js_modules_es_array_slice_js__ = __webpack_require__(119);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_18_core_js_modules_es_array_slice_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_18_core_js_modules_es_array_slice_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_19_core_js_modules_es_array_find_js__ = __webpack_require__(117);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_19_core_js_modules_es_array_find_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_19_core_js_modules_es_array_find_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_20_core_js_modules_es_array_splice_js__ = __webpack_require__(188);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_20_core_js_modules_es_array_splice_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_20_core_js_modules_es_array_splice_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_21_core_js_modules_es_array_every_js__ = __webpack_require__(184);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_21_core_js_modules_es_array_every_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_21_core_js_modules_es_array_every_js__);\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction isEmpty(opt) {\n if (opt === 0) return false;\n if (Array.isArray(opt) && opt.length === 0) return true;\n return !opt;\n}\nfunction not(fun) {\n return function () {\n return !fun.apply(void 0, arguments);\n };\n}\nfunction includes(str, query) {\n /* istanbul ignore else */\n if (str === undefined) str = 'undefined';\n if (str === null) str = 'null';\n if (str === false) str = 'false';\n var text = str.toString().toLowerCase();\n return text.indexOf(query.trim()) !== -1;\n}\nfunction filterOptions(options, search, label, customLabel) {\n return options.filter(function (option) {\n return includes(customLabel(option, label), search);\n });\n}\nfunction stripGroups(options) {\n return options.filter(function (option) {\n return !option.$isLabel;\n });\n}\nfunction flattenOptions(values, label) {\n return function (options) {\n return options.reduce(function (prev, curr) {\n /* istanbul ignore else */\n if (curr[values] && curr[values].length) {\n prev.push({\n $groupLabel: curr[label],\n $isLabel: true\n });\n return prev.concat(curr[values]);\n }\n return prev;\n }, []);\n };\n}\nfunction filterGroups(search, label, values, groupLabel, customLabel) {\n return function (groups) {\n return groups.map(function (group) {\n var _ref;\n /* istanbul ignore else */\n if (!group[values]) {\n console.warn(\"Options passed to vue-multiselect do not contain groups, despite the config.\");\n return [];\n }\n var groupOptions = filterOptions(group[values], search, label, customLabel);\n return groupOptions.length ? (_ref = {}, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__home_matt_git_vue_multiselect_node_modules_babel_runtime_helpers_esm_defineProperty_js__[\"a\" /* default */])(_ref, groupLabel, group[groupLabel]), __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__home_matt_git_vue_multiselect_node_modules_babel_runtime_helpers_esm_defineProperty_js__[\"a\" /* default */])(_ref, values, groupOptions), _ref) : [];\n });\n };\n}\nvar flow = function flow() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n return function (x) {\n return fns.reduce(function (v, f) {\n return f(v);\n }, x);\n };\n};\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n data: function data() {\n return {\n search: '',\n isOpen: false,\n preferredOpenDirection: 'below',\n optimizedHeight: this.maxHeight\n };\n },\n props: {\n /**\n * Decide whether to filter the results based on search query.\n * Useful for async filtering, where we search through more complex data.\n * @type {Boolean}\n */\n internalSearch: {\n type: Boolean,\n \"default\": true\n },\n /**\n * Array of available options: Objects, Strings or Integers.\n * If array of objects, visible label will default to option.label.\n * If `labal` prop is passed, label will equal option['label']\n * @type {Array}\n */\n options: {\n type: Array,\n required: true\n },\n /**\n * Equivalent to the `multiple` attribute on a `<select>` input.\n * @default false\n * @type {Boolean}\n */\n multiple: {\n type: Boolean,\n \"default\": false\n },\n /**\n * Presets the selected options value.\n * @type {Object||Array||String||Integer}\n */\n value: {\n type: null,\n \"default\": function _default() {\n return [];\n }\n },\n /**\n * Key to compare objects\n * @default 'id'\n * @type {String}\n */\n trackBy: {\n type: String\n },\n /**\n * Label to look for in option Object\n * @default 'label'\n * @type {String}\n */\n label: {\n type: String\n },\n /**\n * Enable/disable search in options\n * @default true\n * @type {Boolean}\n */\n searchable: {\n type: Boolean,\n \"default\": true\n },\n /**\n * Clear the search input after `)\n * @default true\n * @type {Boolean}\n */\n clearOnSelect: {\n type: Boolean,\n \"default\": true\n },\n /**\n * Hide already selected options\n * @default false\n * @type {Boolean}\n */\n hideSelected: {\n type: Boolean,\n \"default\": false\n },\n /**\n * Equivalent to the `placeholder` attribute on a `<select>` input.\n * @default 'Select option'\n * @type {String}\n */\n placeholder: {\n type: String,\n \"default\": 'Select option'\n },\n /**\n * Allow to remove all selected values\n * @default true\n * @type {Boolean}\n */\n allowEmpty: {\n type: Boolean,\n \"default\": true\n },\n /**\n * Reset this.internalValue, this.search after this.internalValue changes.\n * Useful if want to create a stateless dropdown.\n * @default false\n * @type {Boolean}\n */\n resetAfter: {\n type: Boolean,\n \"default\": false\n },\n /**\n * Enable/disable closing after selecting an option\n * @default true\n * @type {Boolean}\n */\n closeOnSelect: {\n type: Boolean,\n \"default\": true\n },\n /**\n * Function to interpolate the custom label\n * @default false\n * @type {Function}\n */\n customLabel: {\n type: Function,\n \"default\": function _default(option, label) {\n if (isEmpty(option)) return '';\n return label ? option[label] : option;\n }\n },\n /**\n * Disable / Enable tagging\n * @default false\n * @type {Boolean}\n */\n taggable: {\n type: Boolean,\n \"default\": false\n },\n /**\n * String to show when highlighting a potential tag\n * @default 'Press enter to create a tag'\n * @type {String}\n */\n tagPlaceholder: {\n type: String,\n \"default\": 'Press enter to create a tag'\n },\n /**\n * By default new tags will appear above the search results.\n * Changing to 'bottom' will revert this behaviour\n * and will proritize the search results\n * @default 'top'\n * @type {String}\n */\n tagPosition: {\n type: String,\n \"default\": 'top'\n },\n /**\n * Number of allowed selected options. No limit if 0.\n * @default 0\n * @type {Number}\n */\n max: {\n type: [Number, Boolean],\n \"default\": false\n },\n /**\n * Will be passed with all events as second param.\n * Useful for identifying events origin.\n * @default null\n * @type {String|Integer}\n */\n id: {\n \"default\": null\n },\n /**\n * Limits the options displayed in the dropdown\n * to the first X options.\n * @default 1000\n * @type {Integer}\n */\n optionsLimit: {\n type: Number,\n \"default\": 1000\n },\n /**\n * Name of the property containing\n * the group values\n * @default 1000\n * @type {String}\n */\n groupValues: {\n type: String\n },\n /**\n * Name of the property containing\n * the group label\n * @default 1000\n * @type {String}\n */\n groupLabel: {\n type: String\n },\n /**\n * Allow to select all group values\n * by selecting the group label\n * @default false\n * @type {Boolean}\n */\n groupSelect: {\n type: Boolean,\n \"default\": false\n },\n /**\n * Array of keyboard keys to block\n * when selecting\n * @default 1000\n * @type {String}\n */\n blockKeys: {\n type: Array,\n \"default\": function _default() {\n return [];\n }\n },\n /**\n * Prevent from wiping up the search value\n * @default false\n * @type {Boolean}\n */\n preserveSearch: {\n type: Boolean,\n \"default\": false\n },\n /**\n * Select 1st options if value is empty\n * @default false\n * @type {Boolean}\n */\n preselectFirst: {\n type: Boolean,\n \"default\": false\n },\n /**\n * Prevent autofocus\n * @default false\n * @type {Boolean}\n */\n preventAutofocus: {\n type: Boolean,\n \"default\": false\n }\n },\n mounted: function mounted() {\n /* istanbul ignore else */\n if (!this.multiple && this.max) {\n console.warn('[Vue-Multiselect warn]: Max prop should not be used when prop Multiple equals false.');\n }\n if (this.preselectFirst && !this.internalValue.length && this.options.length) {\n this.select(this.filteredOptions[0]);\n }\n },\n computed: {\n internalValue: function internalValue() {\n return this.value || this.value === 0 ? Array.isArray(this.value) ? this.value : [this.value] : [];\n },\n filteredOptions: function filteredOptions() {\n var search = this.search || '';\n var normalizedSearch = search.toLowerCase().trim();\n var options = this.options.concat();\n\n /* istanbul ignore else */\n if (this.internalSearch) {\n options = this.groupValues ? this.filterAndFlat(options, normalizedSearch, this.label) : filterOptions(options, normalizedSearch, this.label, this.customLabel);\n } else {\n options = this.groupValues ? flattenOptions(this.groupValues, this.groupLabel)(options) : options;\n }\n options = this.hideSelected ? options.filter(not(this.isSelected)) : options;\n\n /* istanbul ignore else */\n if (this.taggable && normalizedSearch.length && !this.isExistingOption(normalizedSearch)) {\n if (this.tagPosition === 'bottom') {\n options.push({\n isTag: true,\n label: search\n });\n } else {\n options.unshift({\n isTag: true,\n label: search\n });\n }\n }\n return options.slice(0, this.optionsLimit);\n },\n valueKeys: function valueKeys() {\n var _this = this;\n if (this.trackBy) {\n return this.internalValue.map(function (element) {\n return element[_this.trackBy];\n });\n } else {\n return this.internalValue;\n }\n },\n optionKeys: function optionKeys() {\n var _this2 = this;\n var options = this.groupValues ? this.flatAndStrip(this.options) : this.options;\n return options.map(function (element) {\n return _this2.customLabel(element, _this2.label).toString().toLowerCase();\n });\n },\n currentOptionLabel: function currentOptionLabel() {\n return this.multiple ? this.searchable ? '' : this.placeholder : this.internalValue.length ? this.getOptionLabel(this.internalValue[0]) : this.searchable ? '' : this.placeholder;\n }\n },\n watch: {\n internalValue: function internalValue() {\n /* istanbul ignore else */\n if (this.resetAfter && this.internalValue.length) {\n this.search = '';\n this.$emit('input', this.multiple ? [] : null);\n }\n },\n search: function search() {\n this.$emit('search-change', this.search, this.id);\n }\n },\n methods: {\n /**\n * Returns the internalValue in a way it can be emited to the parent\n * @returns {Object||Array||String||Integer}\n */\n getValue: function getValue() {\n return this.multiple ? this.internalValue : this.internalValue.length === 0 ? null : this.internalValue[0];\n },\n /**\n * Filters and then flattens the options list\n * @param {Array}\n * @returns {Array} returns a filtered and flat options list\n */\n filterAndFlat: function filterAndFlat(options, search, label) {\n return flow(filterGroups(search, label, this.groupValues, this.groupLabel, this.customLabel), flattenOptions(this.groupValues, this.groupLabel))(options);\n },\n /**\n * Flattens and then strips the group labels from the options list\n * @param {Array}\n * @returns {Array} returns a flat options list without group labels\n */\n flatAndStrip: function flatAndStrip(options) {\n return flow(flattenOptions(this.groupValues, this.groupLabel), stripGroups)(options);\n },\n /**\n * Updates the search value\n * @param {String}\n */\n updateSearch: function updateSearch(query) {\n this.search = query;\n },\n /**\n * Finds out if the given query is already present\n * in the available options\n * @param {String}\n * @returns {Boolean} returns true if element is available\n */\n isExistingOption: function isExistingOption(query) {\n return !this.options ? false : this.optionKeys.indexOf(query) > -1;\n },\n /**\n * Finds out if the given element is already present\n * in the result value\n * @param {Object||String||Integer} option passed element to check\n * @returns {Boolean} returns true if element is selected\n */\n isSelected: function isSelected(option) {\n var opt = this.trackBy ? option[this.trackBy] : option;\n return this.valueKeys.indexOf(opt) > -1;\n },\n /**\n * Finds out if the given option is disabled\n * @param {Object||String||Integer} option passed element to check\n * @returns {Boolean} returns true if element is disabled\n */\n isOptionDisabled: function isOptionDisabled(option) {\n return !!option.$isDisabled;\n },\n /**\n * Returns empty string when options is null/undefined\n * Returns tag query if option is tag.\n * Returns the customLabel() results and casts it to string.\n *\n * @param {Object||String||Integer} Passed option\n * @returns {Object||String}\n */\n getOptionLabel: function getOptionLabel(option) {\n if (isEmpty(option)) return '';\n /* istanbul ignore else */\n if (option.isTag) return option.label;\n /* istanbul ignore else */\n if (option.$isLabel) return option.$groupLabel;\n var label = this.customLabel(option, this.label);\n /* istanbul ignore else */\n if (isEmpty(label)) return '';\n return label;\n },\n /**\n * Add the given option to the list of selected options\n * or sets the option as the selected option.\n * If option is already selected -> remove it from the results.\n *\n * @param {Object||String||Integer} option to select/deselect\n * @param {Boolean} block removing\n */\n select: function select(option, key) {\n /* istanbul ignore else */\n if (option.$isLabel && this.groupSelect) {\n this.selectGroup(option);\n return;\n }\n if (this.blockKeys.indexOf(key) !== -1 || this.disabled || option.$isDisabled || option.$isLabel) return;\n /* istanbul ignore else */\n if (this.max && this.multiple && this.internalValue.length === this.max) return;\n /* istanbul ignore else */\n if (key === 'Tab' && !this.pointerDirty) return;\n if (option.isTag) {\n this.$emit('tag', option.label, this.id);\n this.search = '';\n if (this.closeOnSelect && !this.multiple) this.deactivate();\n } else {\n var isSelected = this.isSelected(option);\n if (isSelected) {\n if (key !== 'Tab') this.removeElement(option);\n return;\n }\n if (this.multiple) {\n this.$emit('input', this.internalValue.concat([option]), this.id);\n } else {\n this.$emit('input', option, this.id);\n }\n this.$emit('select', option, this.id);\n\n /* istanbul ignore else */\n if (this.clearOnSelect) this.search = '';\n }\n /* istanbul ignore else */\n if (this.closeOnSelect) this.deactivate();\n },\n /**\n * Add the given group options to the list of selected options\n * If all group optiona are already selected -> remove it from the results.\n *\n * @param {Object||String||Integer} group to select/deselect\n */\n selectGroup: function selectGroup(selectedGroup) {\n var _this3 = this;\n var group = this.options.find(function (option) {\n return option[_this3.groupLabel] === selectedGroup.$groupLabel;\n });\n if (!group) return;\n if (this.wholeGroupSelected(group)) {\n this.$emit('remove', group[this.groupValues], this.id);\n var newValue = this.internalValue.filter(function (option) {\n return group[_this3.groupValues].indexOf(option) === -1;\n });\n this.$emit('input', newValue, this.id);\n } else {\n var optionsToAdd = group[this.groupValues].filter(function (option) {\n return !(_this3.isOptionDisabled(option) || _this3.isSelected(option));\n });\n\n // if max is defined then just select options respecting max\n if (this.max) {\n optionsToAdd.splice(this.max - this.internalValue.length);\n }\n this.$emit('select', optionsToAdd, this.id);\n this.$emit('input', this.internalValue.concat(optionsToAdd), this.id);\n }\n if (this.closeOnSelect) this.deactivate();\n },\n /**\n * Helper to identify if all values in a group are selected\n *\n * @param {Object} group to validated selected values against\n */\n wholeGroupSelected: function wholeGroupSelected(group) {\n var _this4 = this;\n return group[this.groupValues].every(function (option) {\n return _this4.isSelected(option) || _this4.isOptionDisabled(option);\n });\n },\n /**\n * Helper to identify if all values in a group are disabled\n *\n * @param {Object} group to check for disabled values\n */\n wholeGroupDisabled: function wholeGroupDisabled(group) {\n return group[this.groupValues].every(this.isOptionDisabled);\n },\n /**\n * Removes the given option from the selected options.\n * Additionally checks this.allowEmpty prop if option can be removed when\n * it is the last selected option.\n *\n * @param {type} option description\n * @returns {type} description\n */\n removeElement: function removeElement(option) {\n var shouldClose = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n /* istanbul ignore else */\n if (this.disabled) return;\n /* istanbul ignore else */\n if (option.$isDisabled) return;\n /* istanbul ignore else */\n if (!this.allowEmpty && this.internalValue.length <= 1) {\n this.deactivate();\n return;\n }\n var index = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__home_matt_git_vue_multiselect_node_modules_babel_runtime_helpers_esm_typeof_js__[\"a\" /* default */])(option) === 'object' ? this.valueKeys.indexOf(option[this.trackBy]) : this.valueKeys.indexOf(option);\n if (this.multiple) {\n var newValue = this.internalValue.slice(0, index).concat(this.internalValue.slice(index + 1));\n this.$emit('input', newValue, this.id);\n } else {\n this.$emit('input', null, this.id);\n }\n this.$emit('remove', option, this.id);\n\n /* istanbul ignore else */\n if (this.closeOnSelect && shouldClose) this.deactivate();\n },\n /**\n * Calls this.removeElement() with the last element\n * from this.internalValue (selected element Array)\n *\n * @fires this#removeElement\n */\n removeLastElement: function removeLastElement() {\n /* istanbul ignore else */\n if (this.blockKeys.indexOf('Delete') !== -1) return;\n /* istanbul ignore else */\n if (this.search.length === 0 && Array.isArray(this.internalValue) && this.internalValue.length) {\n this.removeElement(this.internalValue[this.internalValue.length - 1], false);\n }\n },\n /**\n * Opens the multiselect’s dropdown.\n * Sets this.isOpen to TRUE\n */\n activate: function activate() {\n var _this5 = this;\n /* istanbul ignore else */\n if (this.isOpen || this.disabled) return;\n this.adjustPosition();\n /* istanbul ignore else */\n if (this.groupValues && this.pointer === 0 && this.filteredOptions.length) {\n this.pointer = 1;\n }\n this.isOpen = true;\n /* istanbul ignore else */\n if (this.searchable) {\n if (!this.preserveSearch) this.search = '';\n if (!this.preventAutofocus) this.$nextTick(function () {\n return _this5.$refs.search && _this5.$refs.search.focus();\n });\n } else if (!this.preventAutofocus) {\n if (typeof this.$el !== 'undefined') this.$el.focus();\n }\n this.$emit('open', this.id);\n },\n /**\n * Closes the multiselect’s dropdown.\n * Sets this.isOpen to FALSE\n */\n deactivate: function deactivate() {\n /* istanbul ignore else */\n if (!this.isOpen) return;\n this.isOpen = false;\n /* istanbul ignore else */\n if (this.searchable) {\n if (typeof this.$refs.search !== 'undefined') this.$refs.search.blur();\n } else {\n if (typeof this.$el !== 'undefined') this.$el.blur();\n }\n if (!this.preserveSearch) this.search = '';\n this.$emit('close', this.getValue(), this.id);\n },\n /**\n * Call this.activate() or this.deactivate()\n * depending on this.isOpen value.\n *\n * @fires this#activate || this#deactivate\n * @property {Boolean} isOpen indicates if dropdown is open\n */\n toggle: function toggle() {\n this.isOpen ? this.deactivate() : this.activate();\n },\n /**\n * Updates the hasEnoughSpace variable used for\n * detecting where to expand the dropdown\n */\n adjustPosition: function adjustPosition() {\n if (typeof window === 'undefined') return;\n var spaceAbove = this.$el.getBoundingClientRect().top;\n var spaceBelow = window.innerHeight - this.$el.getBoundingClientRect().bottom;\n var hasEnoughSpaceBelow = spaceBelow > this.maxHeight;\n if (hasEnoughSpaceBelow || spaceBelow > spaceAbove || this.openDirection === 'below' || this.openDirection === 'bottom') {\n this.preferredOpenDirection = 'below';\n this.optimizedHeight = Math.min(spaceBelow - 40, this.maxHeight);\n } else {\n this.preferredOpenDirection = 'above';\n this.optimizedHeight = Math.min(spaceAbove - 40, this.maxHeight);\n }\n }\n }\n});\n\n/***/ }),\n/* 138 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_core_js_modules_es_number_constructor_js__ = __webpack_require__(68);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_core_js_modules_es_number_constructor_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_core_js_modules_es_number_constructor_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_core_js_modules_es_regexp_exec_js__ = __webpack_require__(42);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_core_js_modules_es_regexp_exec_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_core_js_modules_es_regexp_exec_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_core_js_modules_es_string_search_js__ = __webpack_require__(70);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_core_js_modules_es_string_search_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_core_js_modules_es_string_search_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_core_js_modules_es_error_to_string_js__ = __webpack_require__(121);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_core_js_modules_es_error_to_string_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_core_js_modules_es_error_to_string_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_core_js_modules_es_date_to_string_js__ = __webpack_require__(120);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_core_js_modules_es_date_to_string_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_core_js_modules_es_date_to_string_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_core_js_modules_es_object_to_string_js__ = __webpack_require__(69);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_core_js_modules_es_object_to_string_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_core_js_modules_es_object_to_string_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_core_js_modules_es_regexp_to_string_js__ = __webpack_require__(123);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_core_js_modules_es_regexp_to_string_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_core_js_modules_es_regexp_to_string_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_core_js_modules_es_array_find_js__ = __webpack_require__(117);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_core_js_modules_es_array_find_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_core_js_modules_es_array_find_js__);\n\n\n\n\n\n\n\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n data: function data() {\n return {\n pointer: 0,\n pointerDirty: false\n };\n },\n props: {\n /**\n * Enable/disable highlighting of the pointed value.\n * @type {Boolean}\n * @default true\n */\n showPointer: {\n type: Boolean,\n \"default\": true\n },\n optionHeight: {\n type: Number,\n \"default\": 40\n }\n },\n computed: {\n pointerPosition: function pointerPosition() {\n return this.pointer * this.optionHeight;\n },\n visibleElements: function visibleElements() {\n return this.optimizedHeight / this.optionHeight;\n }\n },\n watch: {\n filteredOptions: function filteredOptions() {\n this.pointerAdjust();\n },\n isOpen: function isOpen() {\n this.pointerDirty = false;\n },\n pointer: function pointer() {\n this.$refs.search && this.$refs.search.setAttribute('aria-activedescendant', this.id + '-' + this.pointer.toString());\n }\n },\n methods: {\n optionHighlight: function optionHighlight(index, option) {\n return {\n 'multiselect__option--highlight': index === this.pointer && this.showPointer,\n 'multiselect__option--selected': this.isSelected(option)\n };\n },\n groupHighlight: function groupHighlight(index, selectedGroup) {\n var _this = this;\n if (!this.groupSelect) {\n return ['multiselect__option--disabled', {\n 'multiselect__option--group': selectedGroup.$isLabel\n }];\n }\n var group = this.options.find(function (option) {\n return option[_this.groupLabel] === selectedGroup.$groupLabel;\n });\n return group && !this.wholeGroupDisabled(group) ? ['multiselect__option--group', {\n 'multiselect__option--highlight': index === this.pointer && this.showPointer\n }, {\n 'multiselect__option--group-selected': this.wholeGroupSelected(group)\n }] : 'multiselect__option--disabled';\n },\n addPointerElement: function addPointerElement() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'Enter',\n key = _ref.key;\n /* istanbul ignore else */\n if (this.filteredOptions.length > 0) {\n this.select(this.filteredOptions[this.pointer], key);\n }\n this.pointerReset();\n },\n pointerForward: function pointerForward() {\n /* istanbul ignore else */\n if (this.pointer < this.filteredOptions.length - 1) {\n this.pointer++;\n /* istanbul ignore next */\n if (this.$refs.list.scrollTop <= this.pointerPosition - (this.visibleElements - 1) * this.optionHeight) {\n this.$refs.list.scrollTop = this.pointerPosition - (this.visibleElements - 1) * this.optionHeight;\n }\n /* istanbul ignore else */\n if (this.filteredOptions[this.pointer] && this.filteredOptions[this.pointer].$isLabel && !this.groupSelect) this.pointerForward();\n }\n this.pointerDirty = true;\n },\n pointerBackward: function pointerBackward() {\n if (this.pointer > 0) {\n this.pointer--;\n /* istanbul ignore else */\n if (this.$refs.list.scrollTop >= this.pointerPosition) {\n this.$refs.list.scrollTop = this.pointerPosition;\n }\n /* istanbul ignore else */\n if (this.filteredOptions[this.pointer] && this.filteredOptions[this.pointer].$isLabel && !this.groupSelect) this.pointerBackward();\n } else {\n /* istanbul ignore else */\n if (this.filteredOptions[this.pointer] && this.filteredOptions[0].$isLabel && !this.groupSelect) this.pointerForward();\n }\n this.pointerDirty = true;\n },\n pointerReset: function pointerReset() {\n /* istanbul ignore else */\n if (!this.closeOnSelect) return;\n this.pointer = 0;\n /* istanbul ignore else */\n if (this.$refs.list) {\n this.$refs.list.scrollTop = 0;\n }\n },\n pointerAdjust: function pointerAdjust() {\n /* istanbul ignore else */\n if (this.pointer >= this.filteredOptions.length - 1) {\n this.pointer = this.filteredOptions.length ? this.filteredOptions.length - 1 : 0;\n }\n if (this.filteredOptions.length > 0 && this.filteredOptions[this.pointer].$isLabel && !this.groupSelect) {\n this.pointerForward();\n }\n },\n pointerSet: function pointerSet(index) {\n this.pointer = index;\n this.pointerDirty = true;\n }\n }\n});\n\n/***/ }),\n/* 139 */,\n/* 140 */,\n/* 141 */,\n/* 142 */,\n/* 143 */,\n/* 144 */,\n/* 145 */,\n/* 146 */,\n/* 147 */,\n/* 148 */,\n/* 149 */,\n/* 150 */,\n/* 151 */,\n/* 152 */,\n/* 153 */,\n/* 154 */,\n/* 155 */,\n/* 156 */,\n/* 157 */,\n/* 158 */,\n/* 159 */,\n/* 160 */,\n/* 161 */,\n/* 162 */,\n/* 163 */,\n/* 164 */,\n/* 165 */,\n/* 166 */,\n/* 167 */,\n/* 168 */,\n/* 169 */,\n/* 170 */,\n/* 171 */,\n/* 172 */,\n/* 173 */,\n/* 174 */,\n/* 175 */,\n/* 176 */,\n/* 177 */,\n/* 178 */,\n/* 179 */,\n/* 180 */,\n/* 181 */,\n/* 182 */,\n/* 183 */,\n/* 184 */,\n/* 185 */,\n/* 186 */,\n/* 187 */,\n/* 188 */,\n/* 189 */,\n/* 190 */,\n/* 191 */,\n/* 192 */,\n/* 193 */,\n/* 194 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 195 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 196 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 197 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 198 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 199 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 200 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 201 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 202 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 203 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 204 */\n/***/ (function(module, exports) {\n\n// removed by extract-text-webpack-plugin\n\n/***/ }),\n/* 205 */,\n/* 206 */,\n/* 207 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_ActionDispatcher_vue__ = __webpack_require__(77);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_8812d4f0_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_template_compiler_preprocessor_engine_pug_node_modules_vue_loader_lib_selector_type_template_index_0_ActionDispatcher_vue__ = __webpack_require__(229);\nvar normalizeComponent = __webpack_require__(6)\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_ActionDispatcher_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_8812d4f0_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_template_compiler_preprocessor_engine_pug_node_modules_vue_loader_lib_selector_type_template_index_0_ActionDispatcher_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n/* 208 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_AjaxSearch_vue__ = __webpack_require__(78);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_7feadad7_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_template_compiler_preprocessor_engine_pug_node_modules_vue_loader_lib_selector_type_template_index_0_AjaxSearch_vue__ = __webpack_require__(228);\nfunction injectStyle (ssrContext) {\n __webpack_require__(201)\n}\nvar normalizeComponent = __webpack_require__(6)\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_AjaxSearch_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_7feadad7_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_template_compiler_preprocessor_engine_pug_node_modules_vue_loader_lib_selector_type_template_index_0_AjaxSearch_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n/* 209 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_CustomConfig_vue__ = __webpack_require__(79);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_9b3a8f0a_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_template_compiler_preprocessor_engine_pug_node_modules_vue_loader_lib_selector_type_template_index_0_CustomConfig_vue__ = __webpack_require__(230);\nfunction injectStyle (ssrContext) {\n __webpack_require__(202)\n}\nvar normalizeComponent = __webpack_require__(6)\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_CustomConfig_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_9b3a8f0a_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_template_compiler_preprocessor_engine_pug_node_modules_vue_loader_lib_selector_type_template_index_0_CustomConfig_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n/* 210 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_CustomOption_vue__ = __webpack_require__(80);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_4a45687e_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_template_compiler_preprocessor_engine_pug_node_modules_vue_loader_lib_selector_type_template_index_0_CustomOption_vue__ = __webpack_require__(222);\nfunction injectStyle (ssrContext) {\n __webpack_require__(197)\n}\nvar normalizeComponent = __webpack_require__(6)\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_CustomOption_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_4a45687e_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_template_compiler_preprocessor_engine_pug_node_modules_vue_loader_lib_selector_type_template_index_0_CustomOption_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n/* 211 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_Groups_vue__ = __webpack_require__(81);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_c84e3326_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_template_compiler_preprocessor_engine_pug_node_modules_vue_loader_lib_selector_type_template_index_0_Groups_vue__ = __webpack_require__(231);\nfunction injectStyle (ssrContext) {\n __webpack_require__(203)\n}\nvar normalizeComponent = __webpack_require__(6)\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_Groups_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_c84e3326_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_template_compiler_preprocessor_engine_pug_node_modules_vue_loader_lib_selector_type_template_index_0_Groups_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n/* 212 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_MultiSelect_vue__ = __webpack_require__(82);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_4e411541_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_template_compiler_preprocessor_engine_pug_node_modules_vue_loader_lib_selector_type_template_index_0_MultiSelect_vue__ = __webpack_require__(223);\nfunction injectStyle (ssrContext) {\n __webpack_require__(198)\n}\nvar normalizeComponent = __webpack_require__(6)\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_MultiSelect_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_4e411541_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_template_compiler_preprocessor_engine_pug_node_modules_vue_loader_lib_selector_type_template_index_0_MultiSelect_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n/* 213 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_ProgrammaticCtrl_vue__ = __webpack_require__(83);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_00661e9e_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_template_compiler_preprocessor_engine_pug_node_modules_vue_loader_lib_selector_type_template_index_0_ProgrammaticCtrl_vue__ = __webpack_require__(219);\nfunction injectStyle (ssrContext) {\n __webpack_require__(194)\n}\nvar normalizeComponent = __webpack_require__(6)\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_ProgrammaticCtrl_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_00661e9e_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_template_compiler_preprocessor_engine_pug_node_modules_vue_loader_lib_selector_type_template_index_0_ProgrammaticCtrl_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n/* 214 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_SingleSelectObject_vue__ = __webpack_require__(84);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_46076d02_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_template_compiler_preprocessor_engine_pug_node_modules_vue_loader_lib_selector_type_template_index_0_SingleSelectObject_vue__ = __webpack_require__(221);\nfunction injectStyle (ssrContext) {\n __webpack_require__(196)\n}\nvar normalizeComponent = __webpack_require__(6)\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_SingleSelectObject_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_46076d02_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_template_compiler_preprocessor_engine_pug_node_modules_vue_loader_lib_selector_type_template_index_0_SingleSelectObject_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n/* 215 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_SingleSelectPrimitive_vue__ = __webpack_require__(85);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_628f766e_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_template_compiler_preprocessor_engine_pug_node_modules_vue_loader_lib_selector_type_template_index_0_SingleSelectPrimitive_vue__ = __webpack_require__(225);\nvar normalizeComponent = __webpack_require__(6)\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_SingleSelectPrimitive_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_628f766e_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_template_compiler_preprocessor_engine_pug_node_modules_vue_loader_lib_selector_type_template_index_0_SingleSelectPrimitive_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n/* 216 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_SingleSelectSearch_vue__ = __webpack_require__(86);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_dd376266_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_template_compiler_preprocessor_engine_pug_node_modules_vue_loader_lib_selector_type_template_index_0_SingleSelectSearch_vue__ = __webpack_require__(233);\nfunction injectStyle (ssrContext) {\n __webpack_require__(204)\n}\nvar normalizeComponent = __webpack_require__(6)\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_SingleSelectSearch_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_dd376266_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_template_compiler_preprocessor_engine_pug_node_modules_vue_loader_lib_selector_type_template_index_0_SingleSelectSearch_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n/* 217 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_Tagging_vue__ = __webpack_require__(87);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_2c9b9b47_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_template_compiler_preprocessor_engine_pug_node_modules_vue_loader_lib_selector_type_template_index_0_Tagging_vue__ = __webpack_require__(220);\nfunction injectStyle (ssrContext) {\n __webpack_require__(195)\n}\nvar normalizeComponent = __webpack_require__(6)\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_Tagging_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_2c9b9b47_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_template_compiler_preprocessor_engine_pug_node_modules_vue_loader_lib_selector_type_template_index_0_Tagging_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n/* 218 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_VuexActions_vue__ = __webpack_require__(88);\n/* unused harmony namespace reexport */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_6be1d9c0_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_template_compiler_preprocessor_engine_pug_node_modules_vue_loader_lib_selector_type_template_index_0_VuexActions_vue__ = __webpack_require__(226);\nvar normalizeComponent = __webpack_require__(6)\n/* script */\n\n\n/* template */\n\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __WEBPACK_IMPORTED_MODULE_0__babel_loader_node_modules_vue_loader_lib_selector_type_script_index_0_VuexActions_vue__[\"a\" /* default */],\n __WEBPACK_IMPORTED_MODULE_1__node_modules_vue_loader_lib_template_compiler_index_id_data_v_6be1d9c0_hasScoped_false_buble_transforms_node_modules_vue_loader_lib_template_compiler_preprocessor_engine_pug_node_modules_vue_loader_lib_selector_type_template_index_0_VuexActions_vue__[\"a\" /* default */],\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Component.exports);\n\n\n/***/ }),\n/* 219 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('button',{staticClass:\"button button-small\",on:{\"click\":_vm.toggle}},[_vm._v(\"Toggle\")]),_vm._v(\" \"),_c('button',{staticClass:\"button button-small\",on:{\"click\":_vm.open}},[_vm._v(\"Open\")]),_vm._v(\" \"),_c('button',{staticClass:\"button button-small\",on:{\"click\":_vm.close}},[_vm._v(\"Close\")]),_vm._v(\" \"),_c('pre',[_vm._v(\"Multiselect Open: \"+_vm._s(_vm.isOpen))]),_c('label',{staticClass:\"typo__label\"},[_vm._v(\"Controlling multiselect programmatically\")]),_c('multiselect',{ref:\"multiselect\",attrs:{\"placeholder\":\"Pick at least one\",\"value\":_vm.value,\"options\":_vm.options,\"multiple\":true,\"searchable\":true,\"allow-empty\":false,\"hide-selected\":true,\"max-height\":150,\"max\":3},on:{\"open\":function($event){_vm.isOpen = true},\"close\":function($event){_vm.isOpen = false}}})],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 220 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('label',{staticClass:\"typo__label\"},[_vm._v(\"Tagging\")]),_c('multiselect',{attrs:{\"tag-placeholder\":\"Add this as new tag\",\"placeholder\":\"Search or add a tag\",\"label\":\"name\",\"track-by\":\"code\",\"options\":_vm.options,\"multiple\":true,\"taggable\":true},on:{\"tag\":_vm.addTag},model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}}),_c('pre',{staticClass:\"language-json\"},[_c('code',[_vm._v(_vm._s(_vm.value))])])],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 221 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('label',{staticClass:\"typo__label\"},[_vm._v(\"Single select / dropdown\")]),_c('multiselect',{attrs:{\"deselect-label\":\"Can't remove this value\",\"track-by\":\"name\",\"label\":\"name\",\"placeholder\":\"Select one\",\"options\":_vm.options,\"searchable\":false,\"allow-empty\":false},scopedSlots:_vm._u([{key:\"singleLabel\",fn:function(ref){\nvar option = ref.option;\nreturn [_c('strong',[_vm._v(_vm._s(option.name))]),_vm._v(\" is written in\"),_c('strong',[_vm._v(\" \"+_vm._s(option.language))])]}}]),model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}}),_c('pre',{staticClass:\"language-json\"},[_c('code',[_vm._v(_vm._s(_vm.value))])])],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 222 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('label',{staticClass:\"typo__label\"},[_vm._v(\"Custom option template\")]),_c('multiselect',{attrs:{\"placeholder\":\"Fav No Man’s Sky path\",\"label\":\"title\",\"track-by\":\"title\",\"options\":_vm.options,\"option-height\":104,\"custom-label\":_vm.customLabel,\"show-labels\":false},scopedSlots:_vm._u([{key:\"singleLabel\",fn:function(props){return [_c('img',{staticClass:\"option__image\",attrs:{\"src\":props.option.img,\"alt\":\"No Man’s Sky\"}}),_c('span',{staticClass:\"option__desc\"},[_c('span',{staticClass:\"option__title\"},[_vm._v(_vm._s(props.option.title))])])]}},{key:\"option\",fn:function(props){return [_c('img',{staticClass:\"option__image\",attrs:{\"src\":props.option.img,\"alt\":\"No Man’s Sky\"}}),_c('div',{staticClass:\"option__desc\"},[_c('span',{staticClass:\"option__title\"},[_vm._v(_vm._s(props.option.title))]),_c('span',{staticClass:\"option__small\"},[_vm._v(_vm._s(props.option.desc))])])]}}]),model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}}),_c('pre',{staticClass:\"language-json\"},[_c('code',[_vm._v(_vm._s(_vm.value))])])],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 223 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('label',{staticClass:\"typo__label\"},[_vm._v(\"Simple select / dropdown\")]),_c('multiselect',{attrs:{\"options\":_vm.options,\"multiple\":true,\"close-on-select\":false,\"clear-on-select\":false,\"preserve-search\":true,\"placeholder\":\"Pick some\",\"label\":\"name\",\"track-by\":\"name\",\"preselect-first\":true},scopedSlots:_vm._u([{key:\"selection\",fn:function(ref){\nvar values = ref.values;\nvar search = ref.search;\nvar isOpen = ref.isOpen;\nreturn [(values.length)?_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(!isOpen),expression:\"!isOpen\"}],staticClass:\"multiselect__single\"},[_vm._v(_vm._s(values.length)+\" options selected\")]):_vm._e()]}}]),model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}}),_c('pre',{staticClass:\"language-json\"},[_c('code',[_vm._v(_vm._s(_vm.value))])])],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 224 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('multiselect',{attrs:{\"label\":\"name\",\"track-by\":\"name\",\"placeholder\":\"Pick badges\",\"options\":_vm.badges,\"multiple\":true,\"show-labels\":false,\"limit\":3},on:{\"tag\":_vm.onTagging},scopedSlots:_vm._u([{key:\"option\",fn:function(props){return [_c('span',{staticClass:\"badge__name\"},[_vm._v(_vm._s(props.option.name))]),_c('img',{staticClass:\"badge__img\",attrs:{\"src\":props.option.img,\"alt\":props.option.name}})]}}]),model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}},[_c('span',{attrs:{\"slot\":\"noResult\"},slot:\"noResult\"},[_vm._v(\"Badge not found. Suggest a badge \"),_c('a',{staticClass:\"typo__link\",attrs:{\"href\":\"https://github.com/shentao/vue-multiselect/issues\",\"target\":\"_blank\"}},[_vm._v(\"here\")]),_vm._v(\".\")])])],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 225 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('label',{staticClass:\"typo__label\"},[_vm._v(\"Single select\")]),_c('multiselect',{attrs:{\"options\":_vm.options,\"searchable\":false,\"close-on-select\":false,\"show-labels\":false,\"placeholder\":\"Pick a value\"},model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}}),_c('pre',{staticClass:\"language-json\"},[_c('code',[_vm._v(_vm._s(_vm.value))])])],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 226 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('label',{staticClass:\"typo__label\"},[_vm._v(\"Vuex example.\")]),_c('multiselect',{attrs:{\"placeholder\":\"Pick action\",\"value\":_vm.value,\"options\":_vm.options,\"searchable\":false},on:{\"input\":_vm.updateValueAction}})],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 227 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"multiselect\",class:{ 'multiselect--active': _vm.isOpen, 'multiselect--disabled': _vm.disabled, 'multiselect--above': _vm.isAbove, 'multiselect--has-options-group': _vm.hasOptionGroup },attrs:{\"tabindex\":_vm.searchable ? -1 : _vm.tabindex,\"role\":\"combobox\",\"aria-owns\":'listbox-'+_vm.id},on:{\"focus\":function($event){return _vm.activate()},\"blur\":function($event){_vm.searchable ? false : _vm.deactivate()},\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"down\",40,$event.key,[\"Down\",\"ArrowDown\"])){ return null; }if($event.target !== $event.currentTarget){ return null; }$event.preventDefault();return _vm.pointerForward()},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"up\",38,$event.key,[\"Up\",\"ArrowUp\"])){ return null; }if($event.target !== $event.currentTarget){ return null; }$event.preventDefault();return _vm.pointerBackward()}],\"keypress\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")&&_vm._k($event.keyCode,\"tab\",9,$event.key,\"Tab\")){ return null; }$event.stopPropagation();if($event.target !== $event.currentTarget){ return null; }return _vm.addPointerElement($event)},\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }return _vm.deactivate()}}},[_vm._t(\"caret\",function(){return [_c('div',{staticClass:\"multiselect__select\",on:{\"mousedown\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.toggle()}}})]},{\"toggle\":_vm.toggle}),_vm._v(\" \"),_vm._t(\"clear\",null,{\"search\":_vm.search}),_vm._v(\" \"),_c('div',{ref:\"tags\",staticClass:\"multiselect__tags\"},[_vm._t(\"selection\",function(){return [_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.visibleValues.length > 0),expression:\"visibleValues.length > 0\"}],staticClass:\"multiselect__tags-wrap\"},[_vm._l((_vm.visibleValues),function(option,index){return [_vm._t(\"tag\",function(){return [_c('span',{key:index,staticClass:\"multiselect__tag\"},[_c('span',{domProps:{\"textContent\":_vm._s(_vm.getOptionLabel(option))}}),_vm._v(\" \"),_c('i',{staticClass:\"multiselect__tag-icon\",attrs:{\"tabindex\":\"1\"},on:{\"keypress\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }$event.preventDefault();return _vm.removeElement(option)},\"mousedown\":function($event){$event.preventDefault();return _vm.removeElement(option)}}})])]},{\"option\":option,\"search\":_vm.search,\"remove\":_vm.removeElement})]})],2),_vm._v(\" \"),(_vm.internalValue && _vm.internalValue.length > _vm.limit)?[_vm._t(\"limit\",function(){return [_c('strong',{staticClass:\"multiselect__strong\",domProps:{\"textContent\":_vm._s(_vm.limitText(_vm.internalValue.length - _vm.limit))}})]})]:_vm._e()]},{\"search\":_vm.search,\"remove\":_vm.removeElement,\"values\":_vm.visibleValues,\"isOpen\":_vm.isOpen}),_vm._v(\" \"),_c('transition',{attrs:{\"name\":\"multiselect__loading\"}},[_vm._t(\"loading\",function(){return [_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.loading),expression:\"loading\"}],staticClass:\"multiselect__spinner\"})]})],2),_vm._v(\" \"),(_vm.searchable)?_c('input',{ref:\"search\",staticClass:\"multiselect__input\",style:(_vm.inputStyle),attrs:{\"name\":_vm.name,\"id\":_vm.id,\"type\":\"text\",\"autocomplete\":\"off\",\"spellcheck\":\"false\",\"placeholder\":_vm.placeholder,\"disabled\":_vm.disabled,\"tabindex\":_vm.tabindex,\"aria-controls\":'listbox-'+_vm.id},domProps:{\"value\":_vm.search},on:{\"input\":function($event){return _vm.updateSearch($event.target.value)},\"focus\":function($event){$event.preventDefault();return _vm.activate()},\"blur\":function($event){$event.preventDefault();return _vm.deactivate()},\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }return _vm.deactivate()},\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"down\",40,$event.key,[\"Down\",\"ArrowDown\"])){ return null; }$event.preventDefault();return _vm.pointerForward()},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"up\",38,$event.key,[\"Up\",\"ArrowUp\"])){ return null; }$event.preventDefault();return _vm.pointerBackward()},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"delete\",[8,46],$event.key,[\"Backspace\",\"Delete\",\"Del\"])){ return null; }$event.stopPropagation();return _vm.removeLastElement()}],\"keypress\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }$event.preventDefault();$event.stopPropagation();if($event.target !== $event.currentTarget){ return null; }return _vm.addPointerElement($event)}}}):_vm._e(),_vm._v(\" \"),(_vm.isSingleLabelVisible)?_c('span',{staticClass:\"multiselect__single\",on:{\"mousedown\":function($event){$event.preventDefault();return _vm.toggle.apply(null, arguments)}}},[_vm._t(\"singleLabel\",function(){return [[_vm._v(_vm._s(_vm.currentOptionLabel))]]},{\"option\":_vm.singleValue})],2):_vm._e(),_vm._v(\" \"),(_vm.isPlaceholderVisible)?_c('span',{staticClass:\"multiselect__placeholder\",on:{\"mousedown\":function($event){$event.preventDefault();return _vm.toggle.apply(null, arguments)}}},[_vm._t(\"placeholder\",function(){return [_vm._v(\"\\n \"+_vm._s(_vm.placeholder)+\"\\n \")]})],2):_vm._e()],2),_vm._v(\" \"),_c('transition',{attrs:{\"name\":\"multiselect\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isOpen),expression:\"isOpen\"}],ref:\"list\",staticClass:\"multiselect__content-wrapper\",style:({ maxHeight: _vm.optimizedHeight + 'px' }),attrs:{\"tabindex\":\"-1\"},on:{\"focus\":_vm.activate,\"mousedown\":function($event){$event.preventDefault();}}},[_c('ul',{staticClass:\"multiselect__content\",style:(_vm.contentStyle),attrs:{\"role\":\"listbox\",\"id\":'listbox-'+_vm.id}},[_vm._t(\"beforeList\"),_vm._v(\" \"),(_vm.multiple && _vm.max === _vm.internalValue.length)?_c('li',[_c('span',{staticClass:\"multiselect__option\"},[_vm._t(\"maxElements\",function(){return [_vm._v(\"Maximum of \"+_vm._s(_vm.max)+\" options selected. First remove a selected option to select another.\")]})],2)]):_vm._e(),_vm._v(\" \"),(!_vm.max || _vm.internalValue.length < _vm.max)?_vm._l((_vm.filteredOptions),function(option,index){return _c('li',{key:index,staticClass:\"multiselect__element\",attrs:{\"id\":_vm.id + '-' + index,\"role\":!(option && (option.$isLabel || option.$isDisabled)) ? 'option' : null}},[(!(option && (option.$isLabel || option.$isDisabled)))?_c('span',{staticClass:\"multiselect__option\",class:_vm.optionHighlight(index, option),attrs:{\"data-select\":option && option.isTag ? _vm.tagPlaceholder : _vm.selectLabelText,\"data-selected\":_vm.selectedLabelText,\"data-deselect\":_vm.deselectLabelText},on:{\"click\":function($event){$event.stopPropagation();return _vm.select(option)},\"mouseenter\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.pointerSet(index)}}},[_vm._t(\"option\",function(){return [_c('span',[_vm._v(_vm._s(_vm.getOptionLabel(option)))])]},{\"option\":option,\"search\":_vm.search,\"index\":index})],2):_vm._e(),_vm._v(\" \"),(option && (option.$isLabel || option.$isDisabled))?_c('span',{staticClass:\"multiselect__option\",class:_vm.groupHighlight(index, option),attrs:{\"data-select\":_vm.groupSelect && _vm.selectGroupLabelText,\"data-deselect\":_vm.groupSelect && _vm.deselectGroupLabelText},on:{\"mouseenter\":function($event){if($event.target !== $event.currentTarget){ return null; }_vm.groupSelect && _vm.pointerSet(index)},\"mousedown\":function($event){$event.preventDefault();return _vm.selectGroup(option)}}},[_vm._t(\"option\",function(){return [_c('span',[_vm._v(_vm._s(_vm.getOptionLabel(option)))])]},{\"option\":option,\"search\":_vm.search,\"index\":index})],2):_vm._e()])}):_vm._e(),_vm._v(\" \"),_c('li',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showNoResults && (_vm.filteredOptions.length === 0 && _vm.search && !_vm.loading)),expression:\"showNoResults && (filteredOptions.length === 0 && search && !loading)\"}]},[_c('span',{staticClass:\"multiselect__option\"},[_vm._t(\"noResult\",function(){return [_vm._v(\"No elements found. Consider changing the search query.\")]},{\"search\":_vm.search})],2)]),_vm._v(\" \"),_c('li',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showNoOptions && ((_vm.options.length === 0 || (_vm.hasOptionGroup === true && _vm.filteredOptions.length === 0)) && !_vm.search && !_vm.loading)),expression:\"showNoOptions && ((options.length === 0 || (hasOptionGroup === true && filteredOptions.length === 0)) && !search && !loading)\"}]},[_c('span',{staticClass:\"multiselect__option\"},[_vm._t(\"noOptions\",function(){return [_vm._v(\"List is empty.\")]})],2)]),_vm._v(\" \"),_vm._t(\"afterList\")],2)])])],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 228 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('label',{staticClass:\"typo__label\",attrs:{\"for\":\"ajax\"}},[_vm._v(\"Async multiselect\")]),_c('multiselect',{attrs:{\"id\":\"ajax\",\"label\":\"name\",\"track-by\":\"code\",\"placeholder\":\"Type to search\",\"open-direction\":\"bottom\",\"options\":_vm.countries,\"multiple\":true,\"searchable\":true,\"loading\":_vm.isLoading,\"internal-search\":false,\"clear-on-select\":false,\"close-on-select\":false,\"options-limit\":300,\"limit\":3,\"limit-text\":_vm.limitText,\"max-height\":600,\"show-no-results\":false,\"hide-selected\":true},on:{\"search-change\":_vm.asyncFind},scopedSlots:_vm._u([{key:\"tag\",fn:function(ref){\nvar option = ref.option;\nvar remove = ref.remove;\nreturn [_c('span',{staticClass:\"custom__tag\"},[_c('span',[_vm._v(_vm._s(option.name))]),_c('span',{staticClass:\"custom__remove\",on:{\"click\":function($event){return remove(option)}}},[_vm._v(\"❌\")])])]}},{key:\"clear\",fn:function(props){return [(_vm.selectedCountries.length)?_c('div',{staticClass:\"multiselect__clear\",on:{\"mousedown\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.clearAll(props.search)}}}):_vm._e()]}}]),model:{value:(_vm.selectedCountries),callback:function ($$v) {_vm.selectedCountries=$$v},expression:\"selectedCountries\"}},[_c('span',{attrs:{\"slot\":\"noResult\"},slot:\"noResult\"},[_vm._v(\"Oops! No elements found. Consider changing the search query.\")])]),_c('pre',{staticClass:\"language-json\"},[_c('code',[_vm._v(_vm._s(_vm.selectedCountries))])])],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 229 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('label',{staticClass:\"typo__label\"},[_vm._v(\"Open console to see logs.\")]),_c('multiselect',{attrs:{\"placeholder\":\"Pick action\",\"options\":_vm.actions,\"searchable\":false,\"reset-after\":true},on:{\"select\":_vm.dispatchAction}})],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 230 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:{ 'invalid': _vm.isInvalid }},[_c('label',{staticClass:\"typo__label\"},[_vm._v(\"Customized multiselect\")]),_c('multiselect',{attrs:{\"placeholder\":\"Pick at least one\",\"select-label\":\"Enter doesn’t work here!\",\"value\":_vm.value,\"options\":_vm.options,\"multiple\":true,\"searchable\":true,\"allow-empty\":false,\"prevent-autofocus\":true,\"hide-selected\":true,\"max-height\":150,\"max\":3,\"disabled\":_vm.isDisabled,\"block-keys\":['Tab', 'Enter']},on:{\"input\":_vm.onChange,\"close\":_vm.onTouch,\"select\":_vm.onSelect}}),_c('label',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isInvalid),expression:\"isInvalid\"}],staticClass:\"typo__label form__label\"},[_vm._v(\"Must have at least one value\")])],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 231 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('label',{staticClass:\"typo__label\"},[_vm._v(\"Groups\")]),_c('multiselect',{attrs:{\"options\":_vm.options,\"multiple\":true,\"group-values\":\"libs\",\"group-label\":\"language\",\"group-select\":true,\"placeholder\":\"Type to search\",\"track-by\":\"name\",\"label\":\"name\"},model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}},[_c('span',{attrs:{\"slot\":\"noResult\"},slot:\"noResult\"},[_vm._v(\"Oops! No elements found. Consider changing the search query.\")])]),_c('pre',{staticClass:\"language-json\"},[_c('code',[_vm._v(_vm._s(_vm.value))])])],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 232 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"tabs\"},_vm._l((_vm.langs),function(lang){return _c('a',{staticClass:\"tabs__link\",class:{'tabs__link--active': lang === _vm.current},on:{\"click\":function($event){return _vm.select(lang)}}},[_vm._v(_vm._s(lang))])}),0)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ }),\n/* 233 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('label',{staticClass:\"typo__label\"},[_vm._v(\"Select with search\")]),_c('multiselect',{attrs:{\"options\":_vm.options,\"custom-label\":_vm.nameWithLang,\"placeholder\":\"Select one\",\"label\":\"name\",\"track-by\":\"name\"},model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}}),_c('pre',{staticClass:\"language-json\"},[_c('code',[_vm._v(_vm._s(_vm.value))])])],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\n/* harmony default export */ __webpack_exports__[\"a\"] = (esExports);\n\n/***/ })\n],[135]);\n\n\n// WEBPACK FOOTER //\n// static/js/app.f7ff199ab89fb9e630e4.js","function injectStyle (ssrContext) {\n require(\"!!../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?sourceMap!../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-6dd7a4dc\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":true}!../node_modules/vue-loader/lib/selector?type=styles&index=0!./Multiselect.vue\")\n}\nvar normalizeComponent = require(\"!../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../node_modules/vue-loader/lib/selector?type=script&index=0!./Multiselect.vue\"\nimport __vue_script__ from \"!!babel-loader!../node_modules/vue-loader/lib/selector?type=script&index=0!./Multiselect.vue\"\n/* template */\nimport __vue_template__ from \"!!../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-6dd7a4dc\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../node_modules/vue-loader/lib/selector?type=template&index=0!./Multiselect.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/Multiselect.vue\n// module id = 7\n// module chunks = 1","<template lang=\"pug\">\n div.tabs\n a.tabs__link(\n v-for=\"lang in langs\"\n v-bind:class=\"{'tabs__link--active': lang === current}\"\n @click=\"select(lang)\"\n ) {{lang}}\n</template>\n\n<script>\nexport default {\n props: ['langs', 'current'],\n methods: {\n select (lang) {\n this.$emit('select', lang)\n }\n }\n}\n</script>\n\n\n\n// WEBPACK FOOTER //\n// documentation/LangSwitcher.vue","<template lang=\"pug\">\ndiv\n multiselect(\n v-model=\"value\",\n label=\"name\",\n track-by=\"name\",\n placeholder=\"Pick badges\",\n :options=\"badges\",\n :multiple=\"true\",\n :show-labels=\"false\",\n :limit=\"3\",\n @tag=\"onTagging\"\n )\n template(slot=\"option\", slot-scope=\"props\")\n span.badge__name {{ props.option.name }}\n img.badge__img(:src=\"props.option.img\", :alt=\"props.option.name\")\n span(slot=\"noResult\").\n Badge not found. Suggest a badge <a class=\"typo__link\" href=\"https://github.com/shentao/vue-multiselect/issues\" target=\"_blank\">here</a>.\n</template>\n\n<script>\nimport Multiselect from '../src/Multiselect'\n\nexport default {\n components: {\n Multiselect\n },\n data () {\n return {\n badges: [\n { img: 'https://camo.githubusercontent.com/d0e25b09a82bc4bfde9f1e048a092752eebbb4f3/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c75652e7376673f7374796c653d666c6174', name: 'License' },\n { img: 'https://img.shields.io/github/stars/shentao/vue-multiselect.svg?label=Stars', name: 'GitHub Stars' },\n { img: 'https://camo.githubusercontent.com/64f9a2333bb303d34b1587e1436b24dee6a8e134/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f646d2f7675652d6d756c746973656c6563742e737667', name: 'Npm Monthly Downloads' },\n { img: 'https://camo.githubusercontent.com/47ff0923e959e736113988e900268dfc7a601d3b/68747470733a2f2f636972636c6563692e636f6d2f67682f6d6f6e74657261696c2f7675652d6d756c746973656c6563742f747265652f6d61737465722e7376673f7374796c653d736869656c6426636972636c652d746f6b656e3d35633933316666323866643132353837363130663833353437326265636464353134643039636566', name: 'Full Test Coverage' },\n { img: 'https://img.shields.io/badge/dependencies-none-brightgreen.svg?style=flat', name: 'NO Dependencies' }\n ],\n value: []\n }\n },\n methods: {\n onTagging (newTag) {\n this.source.push({ name: newTag, language: newTag })\n this.value.push({ name: newTag, language: newTag })\n }\n }\n}\n</script>\n\n<style lang=\"sass\">\n .badge__img\n vertical-align: middle\n float: right\n\n .badge__name\n vertical-align: middle\n display: inline-block\n margin-left: 5px\n float: left\n</style>\n\n\n\n// WEBPACK FOOTER //\n// documentation/MultiselectExample.vue","<template lang=\"pug\">\ndiv\n label.typo__label Open console to see logs.\n multiselect(\n placeholder=\"Pick action\",\n :options=\"actions\",\n :searchable=\"false\",\n :reset-after=\"true\",\n @select=\"dispatchAction\"\n )\n</template>\n\n<script>\nimport Multiselect from 'vue-multiselect'\n\nexport default {\n components: {\n Multiselect\n },\n data () {\n return {\n actions: ['alert', 'console.log', 'scrollTop']\n }\n },\n methods: {\n dispatchAction (actionName) {\n switch (actionName) {\n case 'alert':\n window.alert('You just dispatched \"alert\" action!')\n break\n case 'console.log':\n console.log('You just dispatched \"console.log\" action!')\n break\n case 'scrollTop':\n window.scrollTo(0, 0)\n break\n }\n }\n }\n}\n</script>\n\n\n\n// WEBPACK FOOTER //\n// documentation/partials/examples/ActionDispatcher.vue","<template lang=\"pug\">\ndiv\n label.typo__label(for=\"ajax\") Async multiselect\n multiselect(\n v-model=\"selectedCountries\",\n id=\"ajax\",\n label=\"name\",\n track-by=\"code\",\n placeholder=\"Type to search\",\n open-direction=\"bottom\",\n :options=\"countries\",\n :multiple=\"true\",\n :searchable=\"true\",\n :loading=\"isLoading\",\n :internal-search=\"false\",\n :clear-on-select=\"false\",\n :close-on-select=\"false\",\n :options-limit=\"300\",\n :limit=\"3\",\n :limit-text=\"limitText\",\n :max-height=\"600\",\n :show-no-results=\"false\",\n :hide-selected=\"true\",\n @search-change=\"asyncFind\"\n )\n template(slot=\"tag\", slot-scope=\"{ option, remove }\")\n span.custom__tag\n span {{ option.name }}\n span.custom__remove(@click=\"remove(option)\") ❌\n template(slot=\"clear\", slot-scope=\"props\")\n div.multiselect__clear(\n v-if=\"selectedCountries.length\",\n @mousedown.prevent.stop=\"clearAll(props.search)\"\n )\n span(slot=\"noResult\").\n Oops! No elements found. Consider changing the search query.\n pre.language-json\n code.\n {{ selectedCountries }}\n</template>\n\n<script>\nimport Multiselect from 'vue-multiselect'\nimport { ajaxFindCountry } from './countriesApi'\n\nexport default {\n components: {\n Multiselect\n },\n data () {\n return {\n selectedCountries: [],\n countries: [],\n isLoading: false\n }\n },\n methods: {\n limitText (count) {\n return `and ${count} other countries`\n },\n asyncFind (query) {\n this.isLoading = true\n ajaxFindCountry(query).then(response => {\n this.countries = response\n this.isLoading = false\n })\n },\n clearAll () {\n this.selectedCountries = []\n }\n }\n}\n</script>\n\n<style lang=\"sass\">\n.multiselect__clear\n position: absolute\n right: 41px\n height: 40px\n width: 40px\n display: block\n cursor: pointer\n z-index: 3\n\n &:before,\n &:after\n content: \"\"\n display: block\n position: absolute\n width: 3px\n height: 16px\n background: #aaa\n top: 12px\n right: 4px\n\n &:before\n transform: rotate(45deg)\n\n &:after\n transform: rotate(-45deg)\n</style>\n\n\n\n// WEBPACK FOOTER //\n// documentation/partials/examples/AjaxSearch.vue","<template lang=\"pug\">\n div(\n :class=\"{ 'invalid': isInvalid }\"\n )\n label.typo__label Customized multiselect\n multiselect(\n placeholder=\"Pick at least one\",\n select-label=\"Enter doesn’t work here!\",\n :value=\"value\",\n :options=\"options\",\n :multiple=\"true\",\n :searchable=\"true\",\n :allow-empty=\"false\",\n :prevent-autofocus=\"true\",\n :hide-selected=\"true\",\n :max-height=\"150\",\n :max=\"3\",\n :disabled=\"isDisabled\",\n :block-keys=\"['Tab', 'Enter']\",\n @input=\"onChange\",\n @close=\"onTouch\",\n @select=\"onSelect\"\n )\n label.typo__label.form__label(v-show=\"isInvalid\") Must have at least one value\n</template>\n\n<script>\nimport Multiselect from 'vue-multiselect'\n\nexport default {\n components: {\n Multiselect\n },\n data () {\n return {\n isDisabled: false,\n isTouched: false,\n value: [],\n options: ['Select option', 'Disable me!', 'Reset me!', 'mulitple', 'label', 'searchable']\n }\n },\n computed: {\n isInvalid () {\n return this.isTouched && this.value.length === 0\n }\n },\n methods: {\n onChange (value) {\n this.value = value\n if (value.indexOf('Reset me!') !== -1) this.value = []\n },\n onSelect (option) {\n if (option === 'Disable me!') this.isDisabled = true\n },\n onTouch () {\n this.isTouched = true\n }\n }\n}\n</script>\n\n<style lang=\"css\">\n .form__label {\n margin-top: 5px !important;\n }\n</style>\n\n\n\n// WEBPACK FOOTER //\n// documentation/partials/examples/CustomConfig.vue","<template lang=\"pug\">\ndiv\n label.typo__label Custom option template\n multiselect(\n v-model=\"value\",\n placeholder=\"Fav No Man’s Sky path\",\n label=\"title\",\n track-by=\"title\",\n :options=\"options\",\n :option-height=\"104\",\n :custom-label=\"customLabel\",\n :show-labels=\"false\"\n )\n template(slot=\"singleLabel\", slot-scope=\"props\")\n img.option__image(:src=\"props.option.img\", alt=\"No Man’s Sky\")\n span.option__desc\n span.option__title {{ props.option.title }}\n template(slot=\"option\", slot-scope=\"props\")\n img.option__image(:src=\"props.option.img\", alt=\"No Man’s Sky\")\n .option__desc\n span.option__title {{ props.option.title }}\n span.option__small {{ props.option.desc }}\n pre.language-json\n code.\n {{ value }}\n</template>\n\n<script>\nimport Multiselect from 'vue-multiselect'\n\nexport default {\n components: {\n Multiselect\n },\n data () {\n return {\n value: { title: 'Explorer', desc: 'Discovering new species!', img: 'static/posters/creatures.png' },\n options: [\n { title: 'Space Pirate', desc: 'More space battles!', img: 'static/posters/fleet.png' },\n { title: 'Merchant', desc: 'PROFIT!', img: 'static/posters/trading_post.png' },\n { title: 'Explorer', desc: 'Discovering new species!', img: 'static/posters/creatures.png' },\n { title: 'Miner', desc: 'We need to go deeper!', img: 'static/posters/resource_lab.png' }\n ]\n }\n },\n methods: {\n customLabel ({ title, desc }) {\n return `${title} – ${desc}`\n }\n }\n}\n</script>\n\n<style>\n.option__image {\n max-height: 80px;\n margin-right: 10px;\n display: inline-block;\n vertical-align: middle;\n}\n\n.option__desc {\n display: inline-block;\n vertical-align: middle;\n padding: rem(10px);\n}\n\n.option__title {\n font-size: rem(24px);\n}\n\n.option__small {\n margin-top: rem(10px);\n display: block;\n}\n</style>\n\n\n\n// WEBPACK FOOTER //\n// documentation/partials/examples/CustomOption.vue","<template lang=\"pug\">\ndiv\n label.typo__label Groups\n multiselect(\n v-model=\"value\",\n :options=\"options\",\n :multiple=\"true\",\n group-values=\"libs\",\n group-label=\"language\",\n :group-select=\"true\",\n placeholder=\"Type to search\",\n track-by=\"name\",\n label=\"name\",\n )\n span(slot=\"noResult\").\n Oops! No elements found. Consider changing the search query.\n pre.language-json\n code.\n {{ value }}\n</template>\n\n<script>\nimport Multiselect from 'vue-multiselect'\n\nexport default {\n components: {\n Multiselect\n },\n data () {\n return {\n options: [\n {\n language: 'Javascript',\n libs: [\n { name: 'Vue.js', category: 'Front-end' },\n { name: 'Adonis', category: 'Backend' }\n ]\n },\n {\n language: 'Ruby',\n libs: [\n { name: 'Rails', category: 'Backend' },\n { name: 'Sinatra', category: 'Backend' }\n ]\n },\n {\n language: 'Other',\n libs: [\n { name: 'Laravel', category: 'Backend' },\n { name: 'Phoenix', category: 'Backend' }\n ]\n }\n ],\n value: []\n }\n }\n}\n</script>\n\n<style lang=\"css\">\n</style>\n\n\n\n// WEBPACK FOOTER //\n// documentation/partials/examples/Groups.vue","<template lang=\"pug\">\ndiv\n label.typo__label Simple select / dropdown\n multiselect(\n v-model=\"value\",\n :options=\"options\",\n :multiple=\"true\",\n :close-on-select=\"false\",\n :clear-on-select=\"false\",\n :preserve-search=\"true\",\n placeholder=\"Pick some\"\n label=\"name\",\n track-by=\"name\",\n :preselect-first=\"true\"\n )\n template(\n slot=\"selection\"\n slot-scope=\"{ values, search, isOpen }\"\n )\n span.multiselect__single(v-if=\"values.length\", v-show=\"!isOpen\")\n | {{ values.length }} options selected\n pre.language-json\n code.\n {{ value }}\n\n</template>\n\n<script>\nimport Multiselect from 'vue-multiselect'\n\nexport default {\n components: {\n Multiselect\n },\n data () {\n return {\n value: [],\n options: [\n { name: 'Vue.js', language: 'JavaScript' },\n { name: 'Adonis', language: 'JavaScript' },\n { name: 'Rails', language: 'Ruby' },\n { name: 'Sinatra', language: 'Ruby' },\n { name: 'Laravel', language: 'PHP' },\n { name: 'Phoenix', language: 'Elixir' }\n ]\n }\n }\n}\n</script>\n\n<style lang=\"sass\">\n.custom__tag\n display: inline-block\n padding: 3px 12px\n background: #d2d7ff\n margin-right: 8px\n margin-bottom: 8px\n border-radius: 10px\n cursor: pointer\n\n &:nth-child(even)\n background: #daffee\n\n &:hover\n background: #eaeaea\n\n.custom__remove\n padding: 0px\n font-size: 10px\n margin-left: 5px\n</style>\n\n\n\n// WEBPACK FOOTER //\n// documentation/partials/examples/MultiSelect.vue","<template lang=\"pug\">\n\tdiv\n\t\t<button @click=\"toggle\" class=\"button button-small\">Toggle</button>\n\t\t<button @click=\"open\" class=\"button button-small\">Open</button>\n\t\t<button @click=\"close\" class=\"button button-small\">Close</button>\n\t\t<pre>Multiselect Open: {{ isOpen }}</pre>\n\n\t\tlabel.typo__label Controlling multiselect programmatically\n\t\tmultiselect(\n\t\t\tref=\"multiselect\"\n\t\t\tplaceholder=\"Pick at least one\",\n\t\t\t:value=\"value\",\n\t\t\t:options=\"options\",\n\t\t\t:multiple=\"true\",\n\t\t\t:searchable=\"true\",\n\t\t\t:allow-empty=\"false\",\n\t\t\t:hide-selected=\"true\",\n\t\t\t:max-height=\"150\",\n\t\t\t:max=\"3\",\n\t\t\t@open=\"isOpen = true\"\n\t\t\t@close=\"isOpen = false\"\n\t\t)\n</template>\n\n<script>\nimport Multiselect from 'vue-multiselect'\n\nexport default {\n\tcomponents: {\n\t\tMultiselect\n\t},\n\tdata () {\n\t\treturn {\n\t\t\tisOpen: false,\n\t\t\tvalue: [],\n\t\t\toptions: ['Select option', 'Option 1', 'Option 2', 'Option 3', 'Option 4', 'Option 5']\n\t\t}\n\t},\n\tmethods: {\n\t\ttoggle () {\n\t\t\tthis.$refs.multiselect.$el.focus()\n\t\t\t\t\t\t\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.$refs.multiselect.$refs.search.blur()\n\t\t\t}, 1000)\n\t\t},\n\t\topen () {\n\t\t\tthis.$refs.multiselect.activate()\n\t\t},\n\t\tclose () {\n\t\t\tthis.$refs.multiselect.deactivate()\n\t\t}\n\t}\n}\n</script>\n\n<style lang=\"css\">\n\t.form__label {\n\t\tmargin-top: 5px !important;\n\t}\n</style>\n\n\n\n// WEBPACK FOOTER //\n// documentation/partials/examples/ProgrammaticCtrl.vue","<template lang=\"pug\">\ndiv\n label.typo__label Single select / dropdown\n multiselect(\n v-model=\"value\",\n deselect-label=\"Can't remove this value\",\n track-by=\"name\",\n label=\"name\",\n placeholder=\"Select one\",\n :options=\"options\",\n :searchable=\"false\",\n :allow-empty=\"false\"\n )\n template(slot=\"singleLabel\", slot-scope=\"{ option }\")\n strong {{ option.name }}\n | is written in\n strong {{ option.language }}\n pre.language-json\n code.\n {{ value }}\n\n</template>\n\n<script>\nimport Multiselect from 'vue-multiselect'\n\nexport default {\n components: {\n Multiselect\n },\n data () {\n return {\n value: null,\n options: [\n { name: 'Vue.js', language: 'JavaScript' },\n { name: 'Rails', language: 'Ruby' },\n { name: 'Sinatra', language: 'Ruby' },\n { name: 'Laravel', language: 'PHP', $isDisabled: true },\n { name: 'Phoenix', language: 'Elixir' }\n ]\n }\n }\n}\n</script>\n\n<style lang=\"css\">\n</style>\n\n\n\n// WEBPACK FOOTER //\n// documentation/partials/examples/SingleSelectObject.vue","<template lang=\"pug\">\ndiv\n label.typo__label Single select\n multiselect(\n v-model=\"value\",\n :options=\"options\",\n :searchable=\"false\",\n :close-on-select=\"false\",\n :show-labels=\"false\"\n placeholder=\"Pick a value\"\n )\n pre.language-json\n code.\n {{ value }}\n</template>\n\n<script>\nimport Multiselect from 'vue-multiselect'\n\nexport default {\n components: {\n Multiselect\n },\n data () {\n return {\n value: '',\n options: ['Select option', 'options', 'selected', 'multiple', 'label', 'searchable', 'clearOnSelect', 'hideSelected', 'maxHeight', 'allowEmpty', 'showLabels', 'onChange', 'touched']\n }\n }\n}\n</script>\n\n\n\n// WEBPACK FOOTER //\n// documentation/partials/examples/SingleSelectPrimitive.vue","<template lang=\"pug\">\ndiv\n label.typo__label Select with search\n multiselect(\n v-model=\"value\",\n :options=\"options\",\n :custom-label=\"nameWithLang\"\n placeholder=\"Select one\",\n label=\"name\",\n track-by=\"name\"\n )\n pre.language-json\n code.\n {{ value }}\n</template>\n\n<script>\nimport Multiselect from 'vue-multiselect'\n\nexport default {\n components: {\n Multiselect\n },\n data () {\n return {\n value: { name: 'Vue.js', language: 'JavaScript' },\n options: [\n { name: 'Vue.js', language: 'JavaScript' },\n { name: 'Rails', language: 'Ruby' },\n { name: 'Sinatra', language: 'Ruby' },\n { name: 'Laravel', language: 'PHP' },\n { name: 'Phoenix', language: 'Elixir' }\n ]\n }\n },\n methods: {\n nameWithLang ({ name, language }) {\n return `${name} — [${language}]`\n }\n }\n}\n</script>\n\n<style lang=\"css\">\n</style>\n\n\n\n// WEBPACK FOOTER //\n// documentation/partials/examples/SingleSelectSearch.vue","<template lang=\"pug\">\ndiv\n label.typo__label Tagging\n multiselect(\n v-model=\"value\",\n tag-placeholder=\"Add this as new tag\",\n placeholder=\"Search or add a tag\",\n label=\"name\",\n track-by=\"code\",\n :options=\"options\",\n :multiple=\"true\",\n :taggable=\"true\",\n @tag=\"addTag\"\n )\n pre.language-json\n code.\n {{ value }}\n</template>\n\n<script>\nimport Multiselect from 'vue-multiselect'\n\nexport default {\n components: {\n Multiselect\n },\n data () {\n return {\n value: [\n { name: 'Javascript', code: 'js' }\n ],\n options: [\n { name: 'Vue.js', code: 'vu' },\n { name: 'Javascript', code: 'js' },\n { name: 'Open Source', code: 'os' }\n ]\n }\n },\n methods: {\n addTag (newTag) {\n const tag = {\n name: newTag,\n code: newTag.substring(0, 2) + Math.floor((Math.random() * 10000000))\n }\n this.options.push(tag)\n this.value.push(tag)\n }\n }\n}\n</script>\n\n<style lang=\"css\">\n</style>\n\n\n\n// WEBPACK FOOTER //\n// documentation/partials/examples/Tagging.vue","<template lang=\"pug\">\ndiv\n label.typo__label Vuex example.\n multiselect(\n placeholder=\"Pick action\",\n :value=\"value\",\n :options=\"options\",\n :searchable=\"false\",\n @input=\"updateValueAction\",\n )\n</template>\n\n<script>\nimport Vue from 'vue'\nimport Vuex from 'vuex'\nimport Multiselect from 'vue-multiselect'\n\nconst { mapActions, mapState } = Vuex\n\nVue.use(Vuex)\n\nconst store = new Vuex.Store({\n state: {\n value: 'Vuex',\n options: ['Vuex', 'Vue', 'Vuelidate', 'Vue-Multiselect', 'Vue-Router']\n },\n mutations: {\n updateValue (state, value) {\n state.value = value\n }\n },\n actions: {\n updateValueAction ({ commit }, value) {\n commit('updateValue', value)\n }\n }\n})\n\nexport default {\n store,\n components: {\n Multiselect\n },\n computed: {\n ...mapState(['value', 'options'])\n },\n methods: {\n ...mapActions(['updateValueAction'])\n }\n}\n</script>\n\n\n\n// WEBPACK FOOTER //\n// documentation/partials/examples/VuexActions.vue","<template>\n <div\n :tabindex=\"searchable ? -1 : tabindex\"\n :class=\"{ 'multiselect--active': isOpen, 'multiselect--disabled': disabled, 'multiselect--above': isAbove, 'multiselect--has-options-group': hasOptionGroup }\"\n @focus=\"activate()\"\n @blur=\"searchable ? false : deactivate()\"\n @keydown.self.down.prevent=\"pointerForward()\"\n @keydown.self.up.prevent=\"pointerBackward()\"\n @keypress.enter.tab.stop.self=\"addPointerElement($event)\"\n @keyup.esc=\"deactivate()\"\n class=\"multiselect\"\n role=\"combobox\"\n :aria-owns=\"'listbox-'+id\">\n <slot name=\"caret\" :toggle=\"toggle\">\n <div @mousedown.prevent.stop=\"toggle()\" class=\"multiselect__select\"></div>\n </slot>\n <slot name=\"clear\" :search=\"search\"></slot>\n <div ref=\"tags\" class=\"multiselect__tags\">\n <slot\n name=\"selection\"\n :search=\"search\"\n :remove=\"removeElement\"\n :values=\"visibleValues\"\n :is-open=\"isOpen\"\n >\n <div class=\"multiselect__tags-wrap\" v-show=\"visibleValues.length > 0\">\n <template v-for=\"(option, index) of visibleValues\" @mousedown.prevent>\n <slot name=\"tag\" :option=\"option\" :search=\"search\" :remove=\"removeElement\">\n <span class=\"multiselect__tag\" :key=\"index\">\n <span v-text=\"getOptionLabel(option)\"></span>\n <i tabindex=\"1\" @keypress.enter.prevent=\"removeElement(option)\" @mousedown.prevent=\"removeElement(option)\" class=\"multiselect__tag-icon\"></i>\n </span>\n </slot>\n </template>\n </div>\n <template v-if=\"internalValue && internalValue.length > limit\">\n <slot name=\"limit\">\n <strong class=\"multiselect__strong\" v-text=\"limitText(internalValue.length - limit)\"/>\n </slot>\n </template>\n </slot>\n <transition name=\"multiselect__loading\">\n <slot name=\"loading\">\n <div v-show=\"loading\" class=\"multiselect__spinner\"/>\n </slot>\n </transition>\n <input\n ref=\"search\"\n v-if=\"searchable\"\n :name=\"name\"\n :id=\"id\"\n type=\"text\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n :placeholder=\"placeholder\"\n :style=\"inputStyle\"\n :value=\"search\"\n :disabled=\"disabled\"\n :tabindex=\"tabindex\"\n @input=\"updateSearch($event.target.value)\"\n @focus.prevent=\"activate()\"\n @blur.prevent=\"deactivate()\"\n @keyup.esc=\"deactivate()\"\n @keydown.down.prevent=\"pointerForward()\"\n @keydown.up.prevent=\"pointerBackward()\"\n @keypress.enter.prevent.stop.self=\"addPointerElement($event)\"\n @keydown.delete.stop=\"removeLastElement()\"\n class=\"multiselect__input\"\n :aria-controls=\"'listbox-'+id\"\n />\n <span\n v-if=\"isSingleLabelVisible\"\n class=\"multiselect__single\"\n @mousedown.prevent=\"toggle\"\n >\n <slot name=\"singleLabel\" :option=\"singleValue\">\n <template>{{ currentOptionLabel }}</template>\n </slot>\n </span>\n <span\n v-if=\"isPlaceholderVisible\"\n class=\"multiselect__placeholder\"\n @mousedown.prevent=\"toggle\"\n >\n <slot name=\"placeholder\">\n {{ placeholder }}\n </slot>\n </span>\n </div>\n <transition name=\"multiselect\">\n <div\n class=\"multiselect__content-wrapper\"\n v-show=\"isOpen\"\n @focus=\"activate\"\n tabindex=\"-1\"\n @mousedown.prevent\n :style=\"{ maxHeight: optimizedHeight + 'px' }\"\n ref=\"list\"\n >\n <ul class=\"multiselect__content\" :style=\"contentStyle\" role=\"listbox\" :id=\"'listbox-'+id\">\n <slot name=\"beforeList\"></slot>\n <li v-if=\"multiple && max === internalValue.length\">\n <span class=\"multiselect__option\">\n <slot name=\"maxElements\">Maximum of {{ max }} options selected. First remove a selected option to select another.</slot>\n </span>\n </li>\n <template v-if=\"!max || internalValue.length < max\">\n <li class=\"multiselect__element\"\n v-for=\"(option, index) of filteredOptions\"\n :key=\"index\"\n v-bind:id=\"id + '-' + index\"\n v-bind:role=\"!(option && (option.$isLabel || option.$isDisabled)) ? 'option' : null\">\n <span\n v-if=\"!(option && (option.$isLabel || option.$isDisabled))\"\n :class=\"optionHighlight(index, option)\"\n @click.stop=\"select(option)\"\n @mouseenter.self=\"pointerSet(index)\"\n :data-select=\"option && option.isTag ? tagPlaceholder : selectLabelText\"\n :data-selected=\"selectedLabelText\"\n :data-deselect=\"deselectLabelText\"\n class=\"multiselect__option\">\n <slot name=\"option\" :option=\"option\" :search=\"search\" :index=\"index\">\n <span>{{ getOptionLabel(option) }}</span>\n </slot>\n </span>\n <span\n v-if=\"option && (option.$isLabel || option.$isDisabled)\"\n :data-select=\"groupSelect && selectGroupLabelText\"\n :data-deselect=\"groupSelect && deselectGroupLabelText\"\n :class=\"groupHighlight(index, option)\"\n @mouseenter.self=\"groupSelect && pointerSet(index)\"\n @mousedown.prevent=\"selectGroup(option)\"\n class=\"multiselect__option\">\n <slot name=\"option\" :option=\"option\" :search=\"search\" :index=\"index\">\n <span>{{ getOptionLabel(option) }}</span>\n </slot>\n </span>\n </li>\n </template>\n <li v-show=\"showNoResults && (filteredOptions.length === 0 && search && !loading)\">\n <span class=\"multiselect__option\">\n <slot name=\"noResult\" :search=\"search\">No elements found. Consider changing the search query.</slot>\n </span>\n </li>\n <li v-show=\"showNoOptions && ((options.length === 0 || (hasOptionGroup === true && filteredOptions.length === 0)) && !search && !loading)\">\n <span class=\"multiselect__option\">\n <slot name=\"noOptions\">List is empty.</slot>\n </span>\n </li>\n <slot name=\"afterList\"></slot>\n </ul>\n </div>\n </transition>\n </div>\n</template>\n\n<script>\nimport multiselectMixin from './multiselectMixin'\nimport pointerMixin from './pointerMixin'\n\nexport default {\n name: 'vue-multiselect',\n mixins: [multiselectMixin, pointerMixin],\n props: {\n /**\n * name attribute to match optional label element\n * @default ''\n * @type {String}\n */\n name: {\n type: String,\n default: ''\n },\n /**\n * String to show when pointing to an option\n * @default 'Press enter to select'\n * @type {String}\n */\n selectLabel: {\n type: String,\n default: 'Press enter to select'\n },\n /**\n * String to show when pointing to an option\n * @default 'Press enter to select'\n * @type {String}\n */\n selectGroupLabel: {\n type: String,\n default: 'Press enter to select group'\n },\n /**\n * String to show next to selected option\n * @default 'Selected'\n * @type {String}\n */\n selectedLabel: {\n type: String,\n default: 'Selected'\n },\n /**\n * String to show when pointing to an already selected option\n * @default 'Press enter to remove'\n * @type {String}\n */\n deselectLabel: {\n type: String,\n default: 'Press enter to remove'\n },\n /**\n * String to show when pointing to an already selected option\n * @default 'Press enter to remove'\n * @type {String}\n */\n deselectGroupLabel: {\n type: String,\n default: 'Press enter to deselect group'\n },\n /**\n * Decide whether to show pointer labels\n * @default true\n * @type {Boolean}\n */\n showLabels: {\n type: Boolean,\n default: true\n },\n /**\n * Limit the display of selected options. The rest will be hidden within the limitText string.\n * @default 99999\n * @type {Integer}\n */\n limit: {\n type: Number,\n default: 99999\n },\n /**\n * Sets maxHeight style value of the dropdown\n * @default 300\n * @type {Integer}\n */\n maxHeight: {\n type: Number,\n default: 300\n },\n /**\n * Function that process the message shown when selected\n * elements pass the defined limit.\n * @default 'and * more'\n * @param {Int} count Number of elements more than limit\n * @type {Function}\n */\n limitText: {\n type: Function,\n default: count => `and ${count} more`\n },\n /**\n * Set true to trigger the loading spinner.\n * @default False\n * @type {Boolean}\n */\n loading: {\n type: Boolean,\n default: false\n },\n /**\n * Disables the multiselect if true.\n * @default false\n * @type {Boolean}\n */\n disabled: {\n type: Boolean,\n default: false\n },\n /**\n * Fixed opening direction\n * @default ''\n * @type {String}\n */\n openDirection: {\n type: String,\n default: ''\n },\n /**\n * Shows slot with message about empty options\n * @default true\n * @type {Boolean}\n */\n showNoOptions: {\n type: Boolean,\n default: true\n },\n showNoResults: {\n type: Boolean,\n default: true\n },\n tabindex: {\n type: Number,\n default: 0\n }\n },\n computed: {\n hasOptionGroup () {\n return this.groupValues && this.groupLabel && this.groupSelect\n },\n isSingleLabelVisible () {\n return (\n (this.singleValue || this.singleValue === 0) &&\n (!this.isOpen || !this.searchable) &&\n !this.visibleValues.length\n )\n },\n isPlaceholderVisible () {\n return !this.internalValue.length && (!this.searchable || !this.isOpen)\n },\n visibleValues () {\n return this.multiple ? this.internalValue.slice(0, this.limit) : []\n },\n singleValue () {\n return this.internalValue[0]\n },\n deselectLabelText () {\n return this.showLabels ? this.deselectLabel : ''\n },\n deselectGroupLabelText () {\n return this.showLabels ? this.deselectGroupLabel : ''\n },\n selectLabelText () {\n return this.showLabels ? this.selectLabel : ''\n },\n selectGroupLabelText () {\n return this.showLabels ? this.selectGroupLabel : ''\n },\n selectedLabelText () {\n return this.showLabels ? this.selectedLabel : ''\n },\n inputStyle () {\n if (\n this.searchable ||\n (this.multiple && this.value && this.value.length)\n ) {\n // Hide input by setting the width to 0 allowing it to receive focus\n return this.isOpen\n ? { width: '100%' }\n : { width: '0', position: 'absolute', padding: '0' }\n }\n return ''\n },\n contentStyle () {\n return this.options.length\n ? { display: 'inline-block' }\n : { display: 'block' }\n },\n isAbove () {\n if (this.openDirection === 'above' || this.openDirection === 'top') {\n return true\n } else if (\n this.openDirection === 'below' ||\n this.openDirection === 'bottom'\n ) {\n return false\n } else {\n return this.preferredOpenDirection === 'above'\n }\n },\n showSearchInput () {\n return (\n this.searchable &&\n (this.hasSingleSelectedSlot &&\n (this.visibleSingleValue || this.visibleSingleValue === 0)\n ? this.isOpen\n : true)\n )\n }\n }\n}\n</script>\n\n<style>\nfieldset[disabled] .multiselect {\n pointer-events: none;\n}\n\n.multiselect__spinner {\n position: absolute;\n right: 1px;\n top: 1px;\n width: 40px;\n height: 38px;\n background: #fff;\n display: block;\n}\n\n.multiselect__spinner:before,\n.multiselect__spinner:after {\n position: absolute;\n content: \"\";\n top: 50%;\n left: 50%;\n margin: -8px 0 0 -8px;\n width: 16px;\n height: 16px;\n border-radius: 100%;\n border-color: #41b883 transparent transparent;\n border-style: solid;\n border-width: 2px;\n box-shadow: 0 0 0 1px transparent;\n}\n\n.multiselect__spinner:before {\n animation: spinning 2.4s cubic-bezier(0.41, 0.26, 0.2, 0.62);\n animation-iteration-count: infinite;\n}\n\n.multiselect__spinner:after {\n animation: spinning 2.4s cubic-bezier(0.51, 0.09, 0.21, 0.8);\n animation-iteration-count: infinite;\n}\n\n.multiselect__loading-enter-active,\n.multiselect__loading-leave-active {\n transition: opacity 0.4s ease-in-out;\n opacity: 1;\n}\n\n.multiselect__loading-enter,\n.multiselect__loading-leave-active {\n opacity: 0;\n}\n\n.multiselect,\n.multiselect__input,\n.multiselect__single {\n font-family: inherit;\n font-size: 16px;\n touch-action: manipulation;\n}\n\n.multiselect {\n box-sizing: content-box;\n display: block;\n position: relative;\n width: 100%;\n min-height: 40px;\n text-align: left;\n color: #35495e;\n}\n\n.multiselect * {\n box-sizing: border-box;\n}\n\n.multiselect:focus {\n outline: none;\n}\n\n.multiselect--disabled {\n background: #ededed;\n pointer-events: none;\n opacity: 0.6;\n}\n\n.multiselect--active {\n z-index: 50;\n}\n\n.multiselect--active:not(.multiselect--above) .multiselect__current,\n.multiselect--active:not(.multiselect--above) .multiselect__input,\n.multiselect--active:not(.multiselect--above) .multiselect__tags {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.multiselect--active .multiselect__select {\n transform: rotateZ(180deg);\n}\n\n.multiselect--above.multiselect--active .multiselect__current,\n.multiselect--above.multiselect--active .multiselect__input,\n.multiselect--above.multiselect--active .multiselect__tags {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.multiselect__input,\n.multiselect__single {\n position: relative;\n display: inline-block;\n min-height: 20px;\n line-height: 20px;\n border: none;\n border-radius: 5px;\n background: #fff;\n padding: 0 0 0 5px;\n width: calc(100%);\n transition: border 0.1s ease;\n box-sizing: border-box;\n margin-bottom: 8px;\n vertical-align: top;\n}\n\n.multiselect__input::placeholder {\n color: #35495e;\n}\n\n.multiselect__tag ~ .multiselect__input,\n.multiselect__tag ~ .multiselect__single {\n width: auto;\n}\n\n.multiselect__input:hover,\n.multiselect__single:hover {\n border-color: #cfcfcf;\n}\n\n.multiselect__input:focus,\n.multiselect__single:focus {\n border-color: #a8a8a8;\n outline: none;\n}\n\n.multiselect__single {\n padding-left: 5px;\n margin-bottom: 8px;\n}\n\n.multiselect__tags-wrap {\n display: inline;\n}\n\n.multiselect__tags {\n min-height: 40px;\n display: block;\n padding: 8px 40px 0 8px;\n border-radius: 5px;\n border: 1px solid #e8e8e8;\n background: #fff;\n font-size: 14px;\n}\n\n.multiselect__tag {\n position: relative;\n display: inline-block;\n padding: 4px 26px 4px 10px;\n border-radius: 5px;\n margin-right: 10px;\n color: #fff;\n line-height: 1;\n background: #41b883;\n margin-bottom: 5px;\n white-space: nowrap;\n overflow: hidden;\n max-width: 100%;\n text-overflow: ellipsis;\n}\n\n.multiselect__tag-icon {\n cursor: pointer;\n margin-left: 7px;\n position: absolute;\n right: 0;\n top: 0;\n bottom: 0;\n font-weight: 700;\n font-style: initial;\n width: 22px;\n text-align: center;\n line-height: 22px;\n transition: all 0.2s ease;\n border-radius: 5px;\n}\n\n.multiselect__tag-icon:after {\n content: \"×\";\n color: #266d4d;\n font-size: 14px;\n}\n\n.multiselect__tag-icon:focus,\n.multiselect__tag-icon:hover {\n background: #369a6e;\n}\n\n.multiselect__tag-icon:focus:after,\n.multiselect__tag-icon:hover:after {\n color: white;\n}\n\n.multiselect__current {\n line-height: 16px;\n min-height: 40px;\n box-sizing: border-box;\n display: block;\n overflow: hidden;\n padding: 8px 12px 0;\n padding-right: 30px;\n white-space: nowrap;\n margin: 0;\n text-decoration: none;\n border-radius: 5px;\n border: 1px solid #e8e8e8;\n cursor: pointer;\n}\n\n.multiselect__select {\n line-height: 16px;\n display: block;\n position: absolute;\n box-sizing: border-box;\n width: 40px;\n height: 38px;\n right: 1px;\n top: 1px;\n padding: 4px 8px;\n margin: 0;\n text-decoration: none;\n text-align: center;\n cursor: pointer;\n transition: transform 0.2s ease;\n}\n\n.multiselect__select:before {\n position: relative;\n right: 0;\n top: 65%;\n color: #999;\n margin-top: 4px;\n border-style: solid;\n border-width: 5px 5px 0 5px;\n border-color: #999999 transparent transparent transparent;\n content: \"\";\n}\n\n.multiselect__placeholder {\n color: #adadad;\n display: inline-block;\n margin-bottom: 10px;\n padding-top: 2px;\n}\n\n.multiselect--active .multiselect__placeholder {\n display: none;\n}\n\n.multiselect__content-wrapper {\n position: absolute;\n display: block;\n background: #fff;\n width: 100%;\n max-height: 240px;\n overflow: auto;\n border: 1px solid #e8e8e8;\n border-top: none;\n border-bottom-left-radius: 5px;\n border-bottom-right-radius: 5px;\n z-index: 50;\n -webkit-overflow-scrolling: touch;\n}\n\n.multiselect__content {\n list-style: none;\n display: inline-block;\n padding: 0;\n margin: 0;\n min-width: 100%;\n vertical-align: top;\n}\n\n.multiselect--above .multiselect__content-wrapper {\n bottom: 100%;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n border-bottom: none;\n border-top: 1px solid #e8e8e8;\n}\n\n.multiselect__content::webkit-scrollbar {\n display: none;\n}\n\n.multiselect__element {\n display: block;\n}\n\n.multiselect__option {\n display: block;\n padding: 12px;\n min-height: 40px;\n line-height: 16px;\n text-decoration: none;\n text-transform: none;\n vertical-align: middle;\n position: relative;\n cursor: pointer;\n white-space: nowrap;\n}\n\n.multiselect__option:after {\n top: 0;\n right: 0;\n position: absolute;\n line-height: 40px;\n padding-right: 12px;\n padding-left: 20px;\n font-size: 13px;\n}\n\n.multiselect__option--highlight {\n background: #41b883;\n outline: none;\n color: white;\n}\n\n.multiselect__option--highlight:after {\n content: attr(data-select);\n background: #41b883;\n color: white;\n}\n\n.multiselect__option--selected {\n background: #f3f3f3;\n color: #35495e;\n font-weight: bold;\n}\n\n.multiselect__option--selected:after {\n content: attr(data-selected);\n color: silver;\n background: inherit;\n}\n\n.multiselect__option--selected.multiselect__option--highlight {\n background: #ff6a6a;\n color: #fff;\n}\n\n.multiselect__option--selected.multiselect__option--highlight:after {\n background: #ff6a6a;\n content: attr(data-deselect);\n color: #fff;\n}\n\n.multiselect--disabled .multiselect__current,\n.multiselect--disabled .multiselect__select {\n background: #ededed;\n color: #a6a6a6;\n}\n\n.multiselect__option--disabled {\n background: #ededed !important;\n color: #a6a6a6 !important;\n cursor: text;\n pointer-events: none;\n}\n\n.multiselect__option--group {\n background: #ededed;\n color: #35495e;\n}\n\n.multiselect__option--group.multiselect__option--highlight {\n background: #35495e;\n color: #fff;\n}\n\n.multiselect__option--group.multiselect__option--highlight:after {\n background: #35495e;\n}\n\n.multiselect__option--disabled.multiselect__option--highlight {\n background: #dedede;\n}\n\n.multiselect__option--group-selected.multiselect__option--highlight {\n background: #ff6a6a;\n color: #fff;\n}\n\n.multiselect__option--group-selected.multiselect__option--highlight:after {\n background: #ff6a6a;\n content: attr(data-deselect);\n color: #fff;\n}\n\n.multiselect-enter-active,\n.multiselect-leave-active {\n transition: all 0.15s ease;\n}\n\n.multiselect-enter,\n.multiselect-leave-active {\n opacity: 0;\n}\n\n.multiselect__strong {\n margin-bottom: 8px;\n line-height: 20px;\n display: inline-block;\n vertical-align: top;\n}\n\n*[dir=\"rtl\"] .multiselect {\n text-align: right;\n}\n\n*[dir=\"rtl\"] .multiselect__select {\n right: auto;\n left: 1px;\n}\n\n*[dir=\"rtl\"] .multiselect__tags {\n padding: 8px 8px 0px 40px;\n}\n\n*[dir=\"rtl\"] .multiselect__content {\n text-align: right;\n}\n\n*[dir=\"rtl\"] .multiselect__option:after {\n right: auto;\n left: 0;\n}\n\n*[dir=\"rtl\"] .multiselect__clear {\n right: auto;\n left: 12px;\n}\n\n*[dir=\"rtl\"] .multiselect__spinner {\n right: auto;\n left: 1px;\n}\n\n@keyframes spinning {\n from {\n transform: rotate(0);\n }\n to {\n transform: rotate(2turn);\n }\n}\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/Multiselect.vue","import SingleSelectPrimitive from './SingleSelectPrimitive'\nimport SingleSelectObject from './SingleSelectObject'\nimport SingleSelectSearch from './SingleSelectSearch'\nimport MultiSelect from './MultiSelect'\nimport AjaxSearch from './AjaxSearch'\nimport Tagging from './Tagging'\nimport CustomOption from './CustomOption'\nimport VuexActions from './VuexActions'\nimport CustomConfig from './CustomConfig'\nimport Groups from './Groups'\nimport ActionDispatcher from './ActionDispatcher'\nimport ProgrammaticCtrl from './ProgrammaticCtrl'\n\nexport {\n SingleSelectPrimitive,\n SingleSelectObject,\n SingleSelectSearch,\n MultiSelect,\n AjaxSearch,\n Tagging,\n CustomOption,\n VuexActions,\n CustomConfig,\n Groups,\n ActionDispatcher,\n ProgrammaticCtrl\n}\n\n\n\n// WEBPACK FOOTER //\n// ./documentation/partials/examples/index.js","var normalizeComponent = require(\"!../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../node_modules/vue-loader/lib/selector?type=script&index=0!./LangSwitcher.vue\"\nimport __vue_script__ from \"!!babel-loader!../node_modules/vue-loader/lib/selector?type=script&index=0!./LangSwitcher.vue\"\n/* template */\nimport __vue_template__ from \"!!../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-d857282c\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../node_modules/vue-loader/lib/template-compiler/preprocessor?engine=pug!../node_modules/vue-loader/lib/selector?type=template&index=0!./LangSwitcher.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./documentation/LangSwitcher.vue\n// module id = 130\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?sourceMap!../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-52f7c88f\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":true}!sass-loader?indentedSyntax&sourceMap!../node_modules/vue-loader/lib/selector?type=styles&index=0!./MultiselectExample.vue\")\n}\nvar normalizeComponent = require(\"!../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../node_modules/vue-loader/lib/selector?type=script&index=0!./MultiselectExample.vue\"\nimport __vue_script__ from \"!!babel-loader!../node_modules/vue-loader/lib/selector?type=script&index=0!./MultiselectExample.vue\"\n/* template */\nimport __vue_template__ from \"!!../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-52f7c88f\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../node_modules/vue-loader/lib/template-compiler/preprocessor?engine=pug!../node_modules/vue-loader/lib/selector?type=template&index=0!./MultiselectExample.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./documentation/MultiselectExample.vue\n// module id = 131\n// module chunks = 1","module.exports = [{\"name\":\"Afghanistan\",\"code\":\"AF\"},{\"name\":\"Åland Islands\",\"code\":\"AX\"},{\"name\":\"Albania\",\"code\":\"AL\"},{\"name\":\"Algeria\",\"code\":\"DZ\"},{\"name\":\"American Samoa\",\"code\":\"AS\"},{\"name\":\"AndorrA\",\"code\":\"AD\"},{\"name\":\"Angola\",\"code\":\"AO\"},{\"name\":\"Anguilla\",\"code\":\"AI\"},{\"name\":\"Antarctica\",\"code\":\"AQ\"},{\"name\":\"Antigua and Barbuda\",\"code\":\"AG\"},{\"name\":\"Argentina\",\"code\":\"AR\"},{\"name\":\"Armenia\",\"code\":\"AM\"},{\"name\":\"Aruba\",\"code\":\"AW\"},{\"name\":\"Australia\",\"code\":\"AU\"},{\"name\":\"Austria\",\"code\":\"AT\"},{\"name\":\"Azerbaijan\",\"code\":\"AZ\"},{\"name\":\"Bahamas\",\"code\":\"BS\"},{\"name\":\"Bahrain\",\"code\":\"BH\"},{\"name\":\"Bangladesh\",\"code\":\"BD\"},{\"name\":\"Barbados\",\"code\":\"BB\"},{\"name\":\"Belarus\",\"code\":\"BY\"},{\"name\":\"Belgium\",\"code\":\"BE\"},{\"name\":\"Belize\",\"code\":\"BZ\"},{\"name\":\"Benin\",\"code\":\"BJ\"},{\"name\":\"Bermuda\",\"code\":\"BM\"},{\"name\":\"Bhutan\",\"code\":\"BT\"},{\"name\":\"Bolivia\",\"code\":\"BO\"},{\"name\":\"Bosnia and Herzegovina\",\"code\":\"BA\"},{\"name\":\"Botswana\",\"code\":\"BW\"},{\"name\":\"Bouvet Island\",\"code\":\"BV\"},{\"name\":\"Brazil\",\"code\":\"BR\"},{\"name\":\"British Indian Ocean Territory\",\"code\":\"IO\"},{\"name\":\"Brunei Darussalam\",\"code\":\"BN\"},{\"name\":\"Bulgaria\",\"code\":\"BG\"},{\"name\":\"Burkina Faso\",\"code\":\"BF\"},{\"name\":\"Burundi\",\"code\":\"BI\"},{\"name\":\"Cambodia\",\"code\":\"KH\"},{\"name\":\"Cameroon\",\"code\":\"CM\"},{\"name\":\"Canada\",\"code\":\"CA\"},{\"name\":\"Cape Verde\",\"code\":\"CV\"},{\"name\":\"Cayman Islands\",\"code\":\"KY\"},{\"name\":\"Central African Republic\",\"code\":\"CF\"},{\"name\":\"Chad\",\"code\":\"TD\"},{\"name\":\"Chile\",\"code\":\"CL\"},{\"name\":\"China\",\"code\":\"CN\"},{\"name\":\"Christmas Island\",\"code\":\"CX\"},{\"name\":\"Cocos (Keeling) Islands\",\"code\":\"CC\"},{\"name\":\"Colombia\",\"code\":\"CO\"},{\"name\":\"Comoros\",\"code\":\"KM\"},{\"name\":\"Congo\",\"code\":\"CG\"},{\"name\":\"Congo, The Democratic Republic of the\",\"code\":\"CD\"},{\"name\":\"Cook Islands\",\"code\":\"CK\"},{\"name\":\"Costa Rica\",\"code\":\"CR\"},{\"name\":\"Cote D\\\"Ivoire\",\"code\":\"CI\"},{\"name\":\"Croatia\",\"code\":\"HR\"},{\"name\":\"Cuba\",\"code\":\"CU\"},{\"name\":\"Cyprus\",\"code\":\"CY\"},{\"name\":\"Czech Republic\",\"code\":\"CZ\"},{\"name\":\"Denmark\",\"code\":\"DK\"},{\"name\":\"Djibouti\",\"code\":\"DJ\"},{\"name\":\"Dominica\",\"code\":\"DM\"},{\"name\":\"Dominican Republic\",\"code\":\"DO\"},{\"name\":\"Ecuador\",\"code\":\"EC\"},{\"name\":\"Egypt\",\"code\":\"EG\"},{\"name\":\"El Salvador\",\"code\":\"SV\"},{\"name\":\"Equatorial Guinea\",\"code\":\"GQ\"},{\"name\":\"Eritrea\",\"code\":\"ER\"},{\"name\":\"Estonia\",\"code\":\"EE\"},{\"name\":\"Ethiopia\",\"code\":\"ET\"},{\"name\":\"Falkland Islands (Malvinas)\",\"code\":\"FK\"},{\"name\":\"Faroe Islands\",\"code\":\"FO\"},{\"name\":\"Fiji\",\"code\":\"FJ\"},{\"name\":\"Finland\",\"code\":\"FI\"},{\"name\":\"France\",\"code\":\"FR\"},{\"name\":\"French Guiana\",\"code\":\"GF\"},{\"name\":\"French Polynesia\",\"code\":\"PF\"},{\"name\":\"French Southern Territories\",\"code\":\"TF\"},{\"name\":\"Gabon\",\"code\":\"GA\"},{\"name\":\"Gambia\",\"code\":\"GM\"},{\"name\":\"Georgia\",\"code\":\"GE\"},{\"name\":\"Germany\",\"code\":\"DE\"},{\"name\":\"Ghana\",\"code\":\"GH\"},{\"name\":\"Gibraltar\",\"code\":\"GI\"},{\"name\":\"Greece\",\"code\":\"GR\"},{\"name\":\"Greenland\",\"code\":\"GL\"},{\"name\":\"Grenada\",\"code\":\"GD\"},{\"name\":\"Guadeloupe\",\"code\":\"GP\"},{\"name\":\"Guam\",\"code\":\"GU\"},{\"name\":\"Guatemala\",\"code\":\"GT\"},{\"name\":\"Guernsey\",\"code\":\"GG\"},{\"name\":\"Guinea\",\"code\":\"GN\"},{\"name\":\"Guinea-Bissau\",\"code\":\"GW\"},{\"name\":\"Guyana\",\"code\":\"GY\"},{\"name\":\"Haiti\",\"code\":\"HT\"},{\"name\":\"Heard Island and Mcdonald Islands\",\"code\":\"HM\"},{\"name\":\"Holy See (Vatican City State)\",\"code\":\"VA\"},{\"name\":\"Honduras\",\"code\":\"HN\"},{\"name\":\"Hong Kong\",\"code\":\"HK\"},{\"name\":\"Hungary\",\"code\":\"HU\"},{\"name\":\"Iceland\",\"code\":\"IS\"},{\"name\":\"India\",\"code\":\"IN\"},{\"name\":\"Indonesia\",\"code\":\"ID\"},{\"name\":\"Iran, Islamic Republic Of\",\"code\":\"IR\"},{\"name\":\"Iraq\",\"code\":\"IQ\"},{\"name\":\"Ireland\",\"code\":\"IE\"},{\"name\":\"Isle of Man\",\"code\":\"IM\"},{\"name\":\"Israel\",\"code\":\"IL\"},{\"name\":\"Italy\",\"code\":\"IT\"},{\"name\":\"Jamaica\",\"code\":\"JM\"},{\"name\":\"Japan\",\"code\":\"JP\"},{\"name\":\"Jersey\",\"code\":\"JE\"},{\"name\":\"Jordan\",\"code\":\"JO\"},{\"name\":\"Kazakhstan\",\"code\":\"KZ\"},{\"name\":\"Kenya\",\"code\":\"KE\"},{\"name\":\"Kiribati\",\"code\":\"KI\"},{\"name\":\"Korea, Democratic People\\\"S Republic of\",\"code\":\"KP\"},{\"name\":\"Korea, Republic of\",\"code\":\"KR\"},{\"name\":\"Kuwait\",\"code\":\"KW\"},{\"name\":\"Kyrgyzstan\",\"code\":\"KG\"},{\"name\":\"Lao People\\\"S Democratic Republic\",\"code\":\"LA\"},{\"name\":\"Latvia\",\"code\":\"LV\"},{\"name\":\"Lebanon\",\"code\":\"LB\"},{\"name\":\"Lesotho\",\"code\":\"LS\"},{\"name\":\"Liberia\",\"code\":\"LR\"},{\"name\":\"Libyan Arab Jamahiriya\",\"code\":\"LY\"},{\"name\":\"Liechtenstein\",\"code\":\"LI\"},{\"name\":\"Lithuania\",\"code\":\"LT\"},{\"name\":\"Luxembourg\",\"code\":\"LU\"},{\"name\":\"Macao\",\"code\":\"MO\"},{\"name\":\"Macedonia, The Former Yugoslav Republic of\",\"code\":\"MK\"},{\"name\":\"Madagascar\",\"code\":\"MG\"},{\"name\":\"Malawi\",\"code\":\"MW\"},{\"name\":\"Malaysia\",\"code\":\"MY\"},{\"name\":\"Maldives\",\"code\":\"MV\"},{\"name\":\"Mali\",\"code\":\"ML\"},{\"name\":\"Malta\",\"code\":\"MT\"},{\"name\":\"Marshall Islands\",\"code\":\"MH\"},{\"name\":\"Martinique\",\"code\":\"MQ\"},{\"name\":\"Mauritania\",\"code\":\"MR\"},{\"name\":\"Mauritius\",\"code\":\"MU\"},{\"name\":\"Mayotte\",\"code\":\"YT\"},{\"name\":\"Mexico\",\"code\":\"MX\"},{\"name\":\"Micronesia, Federated States of\",\"code\":\"FM\"},{\"name\":\"Moldova, Republic of\",\"code\":\"MD\"},{\"name\":\"Monaco\",\"code\":\"MC\"},{\"name\":\"Mongolia\",\"code\":\"MN\"},{\"name\":\"Montserrat\",\"code\":\"MS\"},{\"name\":\"Morocco\",\"code\":\"MA\"},{\"name\":\"Mozambique\",\"code\":\"MZ\"},{\"name\":\"Myanmar\",\"code\":\"MM\"},{\"name\":\"Namibia\",\"code\":\"NA\"},{\"name\":\"Nauru\",\"code\":\"NR\"},{\"name\":\"Nepal\",\"code\":\"NP\"},{\"name\":\"Netherlands\",\"code\":\"NL\"},{\"name\":\"Netherlands Antilles\",\"code\":\"AN\"},{\"name\":\"New Caledonia\",\"code\":\"NC\"},{\"name\":\"New Zealand\",\"code\":\"NZ\"},{\"name\":\"Nicaragua\",\"code\":\"NI\"},{\"name\":\"Niger\",\"code\":\"NE\"},{\"name\":\"Nigeria\",\"code\":\"NG\"},{\"name\":\"Niue\",\"code\":\"NU\"},{\"name\":\"Norfolk Island\",\"code\":\"NF\"},{\"name\":\"Northern Mariana Islands\",\"code\":\"MP\"},{\"name\":\"Norway\",\"code\":\"NO\"},{\"name\":\"Oman\",\"code\":\"OM\"},{\"name\":\"Pakistan\",\"code\":\"PK\"},{\"name\":\"Palau\",\"code\":\"PW\"},{\"name\":\"Palestinian Territory, Occupied\",\"code\":\"PS\"},{\"name\":\"Panama\",\"code\":\"PA\"},{\"name\":\"Papua New Guinea\",\"code\":\"PG\"},{\"name\":\"Paraguay\",\"code\":\"PY\"},{\"name\":\"Peru\",\"code\":\"PE\"},{\"name\":\"Philippines\",\"code\":\"PH\"},{\"name\":\"Pitcairn\",\"code\":\"PN\"},{\"name\":\"Poland\",\"code\":\"PL\"},{\"name\":\"Portugal\",\"code\":\"PT\"},{\"name\":\"Puerto Rico\",\"code\":\"PR\"},{\"name\":\"Qatar\",\"code\":\"QA\"},{\"name\":\"Reunion\",\"code\":\"RE\"},{\"name\":\"Romania\",\"code\":\"RO\"},{\"name\":\"Russian Federation\",\"code\":\"RU\"},{\"name\":\"RWANDA\",\"code\":\"RW\"},{\"name\":\"Saint Helena\",\"code\":\"SH\"},{\"name\":\"Saint Kitts and Nevis\",\"code\":\"KN\"},{\"name\":\"Saint Lucia\",\"code\":\"LC\"},{\"name\":\"Saint Pierre and Miquelon\",\"code\":\"PM\"},{\"name\":\"Saint Vincent and the Grenadines\",\"code\":\"VC\"},{\"name\":\"Samoa\",\"code\":\"WS\"},{\"name\":\"San Marino\",\"code\":\"SM\"},{\"name\":\"Sao Tome and Principe\",\"code\":\"ST\"},{\"name\":\"Saudi Arabia\",\"code\":\"SA\"},{\"name\":\"Senegal\",\"code\":\"SN\"},{\"name\":\"Serbia and Montenegro\",\"code\":\"CS\"},{\"name\":\"Seychelles\",\"code\":\"SC\"},{\"name\":\"Sierra Leone\",\"code\":\"SL\"},{\"name\":\"Singapore\",\"code\":\"SG\"},{\"name\":\"Slovakia\",\"code\":\"SK\"},{\"name\":\"Slovenia\",\"code\":\"SI\"},{\"name\":\"Solomon Islands\",\"code\":\"SB\"},{\"name\":\"Somalia\",\"code\":\"SO\"},{\"name\":\"South Africa\",\"code\":\"ZA\"},{\"name\":\"South Georgia and the South Sandwich Islands\",\"code\":\"GS\"},{\"name\":\"Spain\",\"code\":\"ES\"},{\"name\":\"Sri Lanka\",\"code\":\"LK\"},{\"name\":\"Sudan\",\"code\":\"SD\"},{\"name\":\"Suriname\",\"code\":\"SR\"},{\"name\":\"Svalbard and Jan Mayen\",\"code\":\"SJ\"},{\"name\":\"Swaziland\",\"code\":\"SZ\"},{\"name\":\"Sweden\",\"code\":\"SE\"},{\"name\":\"Switzerland\",\"code\":\"CH\"},{\"name\":\"Syrian Arab Republic\",\"code\":\"SY\"},{\"name\":\"Taiwan, Province of China\",\"code\":\"TW\"},{\"name\":\"Tajikistan\",\"code\":\"TJ\"},{\"name\":\"Tanzania, United Republic of\",\"code\":\"TZ\"},{\"name\":\"Thailand\",\"code\":\"TH\"},{\"name\":\"Timor-Leste\",\"code\":\"TL\"},{\"name\":\"Togo\",\"code\":\"TG\"},{\"name\":\"Tokelau\",\"code\":\"TK\"},{\"name\":\"Tonga\",\"code\":\"TO\"},{\"name\":\"Trinidad and Tobago\",\"code\":\"TT\"},{\"name\":\"Tunisia\",\"code\":\"TN\"},{\"name\":\"Turkey\",\"code\":\"TR\"},{\"name\":\"Turkmenistan\",\"code\":\"TM\"},{\"name\":\"Turks and Caicos Islands\",\"code\":\"TC\"},{\"name\":\"Tuvalu\",\"code\":\"TV\"},{\"name\":\"Uganda\",\"code\":\"UG\"},{\"name\":\"Ukraine\",\"code\":\"UA\"},{\"name\":\"United Arab Emirates\",\"code\":\"AE\"},{\"name\":\"United Kingdom\",\"code\":\"GB\"},{\"name\":\"United States\",\"code\":\"US\"},{\"name\":\"United States Minor Outlying Islands\",\"code\":\"UM\"},{\"name\":\"Uruguay\",\"code\":\"UY\"},{\"name\":\"Uzbekistan\",\"code\":\"UZ\"},{\"name\":\"Vanuatu\",\"code\":\"VU\"},{\"name\":\"Venezuela\",\"code\":\"VE\"},{\"name\":\"Viet Nam\",\"code\":\"VN\"},{\"name\":\"Virgin Islands, British\",\"code\":\"VG\"},{\"name\":\"Virgin Islands, U.S.\",\"code\":\"VI\"},{\"name\":\"Wallis and Futuna\",\"code\":\"WF\"},{\"name\":\"Western Sahara\",\"code\":\"EH\"},{\"name\":\"Yemen\",\"code\":\"YE\"},{\"name\":\"Zambia\",\"code\":\"ZM\"},{\"name\":\"Zimbabwe\",\"code\":\"ZW\"}]\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./documentation/data/countries.json\n// module id = 132\n// module chunks = 1","import Vue from 'vue'\nimport * as examples from './partials/examples'\nimport LangSwitcher from './LangSwitcher'\nimport MultiselectExample from './MultiselectExample'\nimport Multiselect from 'vue-multiselect'\nrequire('es6-promise').polyfill()\n\nimport './docs.scss'\n\nfunction calculateNavPositions () {\n sections = Array\n .from(document.querySelectorAll('[data-section]'))\n .map(section => {\n return {\n id: section.id,\n offset: section.getBoundingClientRect().top + window.pageYOffset - 50\n }\n })\n}\n\nconst SL = ', 100%, 85%'\nlet sections\n\n/* eslint-disable no-new */\nnew Vue({\n el: '#app',\n components: {\n ...examples,\n MultiselectExample,\n LangSwitcher,\n Multiselect\n },\n data () {\n return {\n markupLangs: ['pug', 'html'],\n markupLanguage: 'pug',\n isNavSticky: false,\n firstColor: Math.floor(Math.random() * 255),\n secondColor: Math.floor(Math.random() * 255),\n currentPosition: '',\n versions: ['v1.x', 'v2.0'],\n version: 'v2.0'\n }\n },\n computed: {\n gradient () {\n return {\n background: `linear-gradient(to left bottom, hsl(${this.firstColor + SL}) 0%, hsl(${this.secondColor + SL}) 100%)`\n }\n }\n },\n methods: {\n pickVersion (version) {\n switch (version) {\n case 'v1.x':\n window.location.assign('v1/index.html')\n break\n case 'v2.0':\n window.location.assign('https://vue-multiselect.js.org/')\n break\n }\n },\n selectLanguage (lang) {\n this.markupLanguage = lang\n },\n adjustNav () {\n this.isNavSticky = window.scrollY > window.innerHeight\n if (!sections) calculateNavPositions()\n for (let i = sections.length - 1; i >= 0; i--) {\n if (window.scrollY > sections[i].offset) {\n this.currentPosition = sections[i].id\n break\n }\n }\n },\n onTagging (newTag) {\n this.source.push({ name: newTag, language: newTag })\n this.value.push({ name: newTag, language: newTag })\n }\n },\n mounted () {\n this.adjustNav()\n window.addEventListener('scroll', this.adjustNav)\n setTimeout(function () {\n calculateNavPositions()\n }, 1000)\n }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./documentation/main.js","import countries from '../../data/countries.json'\n\nexport function ajaxFindCountry (query) {\n return new Promise((resolve, reject) => {\n setTimeout(() => {\n const results = countries.filter((element, index, array) => {\n return element.name.toLowerCase().includes(query.toLowerCase())\n })\n resolve(results)\n }, 1000)\n })\n}\n\n\n\n// WEBPACK FOOTER //\n// ./documentation/partials/examples/countriesApi.js","function isEmpty (opt) {\n if (opt === 0) return false\n if (Array.isArray(opt) && opt.length === 0) return true\n return !opt\n}\n\nfunction not (fun) {\n return (...params) => !fun(...params)\n}\n\nfunction includes (str, query) {\n /* istanbul ignore else */\n if (str === undefined) str = 'undefined'\n if (str === null) str = 'null'\n if (str === false) str = 'false'\n const text = str.toString().toLowerCase()\n return text.indexOf(query.trim()) !== -1\n}\n\nfunction filterOptions (options, search, label, customLabel) {\n return options.filter(option => includes(customLabel(option, label), search))\n}\n\nfunction stripGroups (options) {\n return options.filter(option => !option.$isLabel)\n}\n\nfunction flattenOptions (values, label) {\n return (options) =>\n options.reduce((prev, curr) => {\n /* istanbul ignore else */\n if (curr[values] && curr[values].length) {\n prev.push({\n $groupLabel: curr[label],\n $isLabel: true\n })\n return prev.concat(curr[values])\n }\n return prev\n }, [])\n}\n\nfunction filterGroups (search, label, values, groupLabel, customLabel) {\n return (groups) =>\n groups.map(group => {\n /* istanbul ignore else */\n if (!group[values]) {\n console.warn(`Options passed to vue-multiselect do not contain groups, despite the config.`)\n return []\n }\n const groupOptions = filterOptions(group[values], search, label, customLabel)\n\n return groupOptions.length\n ? {\n [groupLabel]: group[groupLabel],\n [values]: groupOptions\n }\n : []\n })\n}\n\nconst flow = (...fns) => x => fns.reduce((v, f) => f(v), x)\n\nexport default {\n data () {\n return {\n search: '',\n isOpen: false,\n preferredOpenDirection: 'below',\n optimizedHeight: this.maxHeight\n }\n },\n props: {\n /**\n * Decide whether to filter the results based on search query.\n * Useful for async filtering, where we search through more complex data.\n * @type {Boolean}\n */\n internalSearch: {\n type: Boolean,\n default: true\n },\n /**\n * Array of available options: Objects, Strings or Integers.\n * If array of objects, visible label will default to option.label.\n * If `labal` prop is passed, label will equal option['label']\n * @type {Array}\n */\n options: {\n type: Array,\n required: true\n },\n /**\n * Equivalent to the `multiple` attribute on a `<select>` input.\n * @default false\n * @type {Boolean}\n */\n multiple: {\n type: Boolean,\n default: false\n },\n /**\n * Presets the selected options value.\n * @type {Object||Array||String||Integer}\n */\n value: {\n type: null,\n default () {\n return []\n }\n },\n /**\n * Key to compare objects\n * @default 'id'\n * @type {String}\n */\n trackBy: {\n type: String\n },\n /**\n * Label to look for in option Object\n * @default 'label'\n * @type {String}\n */\n label: {\n type: String\n },\n /**\n * Enable/disable search in options\n * @default true\n * @type {Boolean}\n */\n searchable: {\n type: Boolean,\n default: true\n },\n /**\n * Clear the search input after `)\n * @default true\n * @type {Boolean}\n */\n clearOnSelect: {\n type: Boolean,\n default: true\n },\n /**\n * Hide already selected options\n * @default false\n * @type {Boolean}\n */\n hideSelected: {\n type: Boolean,\n default: false\n },\n /**\n * Equivalent to the `placeholder` attribute on a `<select>` input.\n * @default 'Select option'\n * @type {String}\n */\n placeholder: {\n type: String,\n default: 'Select option'\n },\n /**\n * Allow to remove all selected values\n * @default true\n * @type {Boolean}\n */\n allowEmpty: {\n type: Boolean,\n default: true\n },\n /**\n * Reset this.internalValue, this.search after this.internalValue changes.\n * Useful if want to create a stateless dropdown.\n * @default false\n * @type {Boolean}\n */\n resetAfter: {\n type: Boolean,\n default: false\n },\n /**\n * Enable/disable closing after selecting an option\n * @default true\n * @type {Boolean}\n */\n closeOnSelect: {\n type: Boolean,\n default: true\n },\n /**\n * Function to interpolate the custom label\n * @default false\n * @type {Function}\n */\n customLabel: {\n type: Function,\n default (option, label) {\n if (isEmpty(option)) return ''\n return label ? option[label] : option\n }\n },\n /**\n * Disable / Enable tagging\n * @default false\n * @type {Boolean}\n */\n taggable: {\n type: Boolean,\n default: false\n },\n /**\n * String to show when highlighting a potential tag\n * @default 'Press enter to create a tag'\n * @type {String}\n */\n tagPlaceholder: {\n type: String,\n default: 'Press enter to create a tag'\n },\n /**\n * By default new tags will appear above the search results.\n * Changing to 'bottom' will revert this behaviour\n * and will proritize the search results\n * @default 'top'\n * @type {String}\n */\n tagPosition: {\n type: String,\n default: 'top'\n },\n /**\n * Number of allowed selected options. No limit if 0.\n * @default 0\n * @type {Number}\n */\n max: {\n type: [Number, Boolean],\n default: false\n },\n /**\n * Will be passed with all events as second param.\n * Useful for identifying events origin.\n * @default null\n * @type {String|Integer}\n */\n id: {\n default: null\n },\n /**\n * Limits the options displayed in the dropdown\n * to the first X options.\n * @default 1000\n * @type {Integer}\n */\n optionsLimit: {\n type: Number,\n default: 1000\n },\n /**\n * Name of the property containing\n * the group values\n * @default 1000\n * @type {String}\n */\n groupValues: {\n type: String\n },\n /**\n * Name of the property containing\n * the group label\n * @default 1000\n * @type {String}\n */\n groupLabel: {\n type: String\n },\n /**\n * Allow to select all group values\n * by selecting the group label\n * @default false\n * @type {Boolean}\n */\n groupSelect: {\n type: Boolean,\n default: false\n },\n /**\n * Array of keyboard keys to block\n * when selecting\n * @default 1000\n * @type {String}\n */\n blockKeys: {\n type: Array,\n default () {\n return []\n }\n },\n /**\n * Prevent from wiping up the search value\n * @default false\n * @type {Boolean}\n */\n preserveSearch: {\n type: Boolean,\n default: false\n },\n /**\n * Select 1st options if value is empty\n * @default false\n * @type {Boolean}\n */\n preselectFirst: {\n type: Boolean,\n default: false\n },\n /**\n * Prevent autofocus\n * @default false\n * @type {Boolean}\n */\n preventAutofocus: {\n type: Boolean,\n default: false\n }\n },\n mounted () {\n /* istanbul ignore else */\n if (!this.multiple && this.max) {\n console.warn('[Vue-Multiselect warn]: Max prop should not be used when prop Multiple equals false.')\n }\n if (\n this.preselectFirst &&\n !this.internalValue.length &&\n this.options.length\n ) {\n this.select(this.filteredOptions[0])\n }\n },\n computed: {\n internalValue () {\n return this.value || this.value === 0\n ? Array.isArray(this.value) ? this.value : [this.value]\n : []\n },\n filteredOptions () {\n const search = this.search || ''\n const normalizedSearch = search.toLowerCase().trim()\n\n let options = this.options.concat()\n\n /* istanbul ignore else */\n if (this.internalSearch) {\n options = this.groupValues\n ? this.filterAndFlat(options, normalizedSearch, this.label)\n : filterOptions(options, normalizedSearch, this.label, this.customLabel)\n } else {\n options = this.groupValues ? flattenOptions(this.groupValues, this.groupLabel)(options) : options\n }\n\n options = this.hideSelected\n ? options.filter(not(this.isSelected))\n : options\n\n /* istanbul ignore else */\n if (this.taggable && normalizedSearch.length && !this.isExistingOption(normalizedSearch)) {\n if (this.tagPosition === 'bottom') {\n options.push({ isTag: true, label: search })\n } else {\n options.unshift({ isTag: true, label: search })\n }\n }\n\n return options.slice(0, this.optionsLimit)\n },\n valueKeys () {\n if (this.trackBy) {\n return this.internalValue.map(element => element[this.trackBy])\n } else {\n return this.internalValue\n }\n },\n optionKeys () {\n const options = this.groupValues ? this.flatAndStrip(this.options) : this.options\n return options.map(element => this.customLabel(element, this.label).toString().toLowerCase())\n },\n currentOptionLabel () {\n return this.multiple\n ? this.searchable ? '' : this.placeholder\n : this.internalValue.length\n ? this.getOptionLabel(this.internalValue[0])\n : this.searchable ? '' : this.placeholder\n }\n },\n watch: {\n internalValue () {\n /* istanbul ignore else */\n if (this.resetAfter && this.internalValue.length) {\n this.search = ''\n this.$emit('input', this.multiple ? [] : null)\n }\n },\n search () {\n this.$emit('search-change', this.search, this.id)\n }\n },\n methods: {\n /**\n * Returns the internalValue in a way it can be emited to the parent\n * @returns {Object||Array||String||Integer}\n */\n getValue () {\n return this.multiple\n ? this.internalValue\n : this.internalValue.length === 0\n ? null\n : this.internalValue[0]\n },\n /**\n * Filters and then flattens the options list\n * @param {Array}\n * @returns {Array} returns a filtered and flat options list\n */\n filterAndFlat (options, search, label) {\n return flow(\n filterGroups(search, label, this.groupValues, this.groupLabel, this.customLabel),\n flattenOptions(this.groupValues, this.groupLabel)\n )(options)\n },\n /**\n * Flattens and then strips the group labels from the options list\n * @param {Array}\n * @returns {Array} returns a flat options list without group labels\n */\n flatAndStrip (options) {\n return flow(\n flattenOptions(this.groupValues, this.groupLabel),\n stripGroups\n )(options)\n },\n /**\n * Updates the search value\n * @param {String}\n */\n updateSearch (query) {\n this.search = query\n },\n /**\n * Finds out if the given query is already present\n * in the available options\n * @param {String}\n * @returns {Boolean} returns true if element is available\n */\n isExistingOption (query) {\n return !this.options\n ? false\n : this.optionKeys.indexOf(query) > -1\n },\n /**\n * Finds out if the given element is already present\n * in the result value\n * @param {Object||String||Integer} option passed element to check\n * @returns {Boolean} returns true if element is selected\n */\n isSelected (option) {\n const opt = this.trackBy\n ? option[this.trackBy]\n : option\n return this.valueKeys.indexOf(opt) > -1\n },\n /**\n * Finds out if the given option is disabled\n * @param {Object||String||Integer} option passed element to check\n * @returns {Boolean} returns true if element is disabled\n */\n isOptionDisabled (option) {\n return !!option.$isDisabled\n },\n /**\n * Returns empty string when options is null/undefined\n * Returns tag query if option is tag.\n * Returns the customLabel() results and casts it to string.\n *\n * @param {Object||String||Integer} Passed option\n * @returns {Object||String}\n */\n getOptionLabel (option) {\n if (isEmpty(option)) return ''\n /* istanbul ignore else */\n if (option.isTag) return option.label\n /* istanbul ignore else */\n if (option.$isLabel) return option.$groupLabel\n\n let label = this.customLabel(option, this.label)\n /* istanbul ignore else */\n if (isEmpty(label)) return ''\n return label\n },\n /**\n * Add the given option to the list of selected options\n * or sets the option as the selected option.\n * If option is already selected -> remove it from the results.\n *\n * @param {Object||String||Integer} option to select/deselect\n * @param {Boolean} block removing\n */\n select (option, key) {\n /* istanbul ignore else */\n if (option.$isLabel && this.groupSelect) {\n this.selectGroup(option)\n return\n }\n if (this.blockKeys.indexOf(key) !== -1 ||\n this.disabled ||\n option.$isDisabled ||\n option.$isLabel\n ) return\n /* istanbul ignore else */\n if (this.max && this.multiple && this.internalValue.length === this.max) return\n /* istanbul ignore else */\n if (key === 'Tab' && !this.pointerDirty) return\n if (option.isTag) {\n this.$emit('tag', option.label, this.id)\n this.search = ''\n if (this.closeOnSelect && !this.multiple) this.deactivate()\n } else {\n const isSelected = this.isSelected(option)\n\n if (isSelected) {\n if (key !== 'Tab') this.removeElement(option)\n return\n }\n\n if (this.multiple) {\n this.$emit('input', this.internalValue.concat([option]), this.id)\n } else {\n this.$emit('input', option, this.id)\n }\n\n this.$emit('select', option, this.id)\n\n /* istanbul ignore else */\n if (this.clearOnSelect) this.search = ''\n }\n /* istanbul ignore else */\n if (this.closeOnSelect) this.deactivate()\n },\n /**\n * Add the given group options to the list of selected options\n * If all group optiona are already selected -> remove it from the results.\n *\n * @param {Object||String||Integer} group to select/deselect\n */\n selectGroup (selectedGroup) {\n const group = this.options.find(option => {\n return option[this.groupLabel] === selectedGroup.$groupLabel\n })\n\n if (!group) return\n\n if (this.wholeGroupSelected(group)) {\n this.$emit('remove', group[this.groupValues], this.id)\n\n const newValue = this.internalValue.filter(\n option => group[this.groupValues].indexOf(option) === -1\n )\n\n this.$emit('input', newValue, this.id)\n } else {\n let optionsToAdd = group[this.groupValues].filter(\n option => !(this.isOptionDisabled(option) || this.isSelected(option))\n )\n\n // if max is defined then just select options respecting max\n if (this.max) {\n optionsToAdd.splice(this.max - this.internalValue.length)\n }\n\n this.$emit('select', optionsToAdd, this.id)\n this.$emit(\n 'input',\n this.internalValue.concat(optionsToAdd),\n this.id\n )\n }\n\n if (this.closeOnSelect) this.deactivate()\n },\n /**\n * Helper to identify if all values in a group are selected\n *\n * @param {Object} group to validated selected values against\n */\n wholeGroupSelected (group) {\n return group[this.groupValues].every(option => this.isSelected(option) || this.isOptionDisabled(option)\n )\n },\n /**\n * Helper to identify if all values in a group are disabled\n *\n * @param {Object} group to check for disabled values\n */\n wholeGroupDisabled (group) {\n return group[this.groupValues].every(this.isOptionDisabled)\n },\n /**\n * Removes the given option from the selected options.\n * Additionally checks this.allowEmpty prop if option can be removed when\n * it is the last selected option.\n *\n * @param {type} option description\n * @returns {type} description\n */\n removeElement (option, shouldClose = true) {\n /* istanbul ignore else */\n if (this.disabled) return\n /* istanbul ignore else */\n if (option.$isDisabled) return\n /* istanbul ignore else */\n if (!this.allowEmpty && this.internalValue.length <= 1) {\n this.deactivate()\n return\n }\n\n const index = typeof option === 'object'\n ? this.valueKeys.indexOf(option[this.trackBy])\n : this.valueKeys.indexOf(option)\n\n if (this.multiple) {\n const newValue = this.internalValue.slice(0, index).concat(this.internalValue.slice(index + 1))\n this.$emit('input', newValue, this.id)\n } else {\n this.$emit('input', null, this.id)\n }\n this.$emit('remove', option, this.id)\n\n /* istanbul ignore else */\n if (this.closeOnSelect && shouldClose) this.deactivate()\n },\n /**\n * Calls this.removeElement() with the last element\n * from this.internalValue (selected element Array)\n *\n * @fires this#removeElement\n */\n removeLastElement () {\n /* istanbul ignore else */\n if (this.blockKeys.indexOf('Delete') !== -1) return\n /* istanbul ignore else */\n if (this.search.length === 0 && Array.isArray(this.internalValue) && this.internalValue.length) {\n this.removeElement(this.internalValue[this.internalValue.length - 1], false)\n }\n },\n /**\n * Opens the multiselect’s dropdown.\n * Sets this.isOpen to TRUE\n */\n activate () {\n /* istanbul ignore else */\n if (this.isOpen || this.disabled) return\n\n this.adjustPosition()\n /* istanbul ignore else */\n if (this.groupValues && this.pointer === 0 && this.filteredOptions.length) {\n this.pointer = 1\n }\n\n this.isOpen = true\n /* istanbul ignore else */\n if (this.searchable) {\n if (!this.preserveSearch) this.search = ''\n if (!this.preventAutofocus) this.$nextTick(() => this.$refs.search && this.$refs.search.focus())\n } else if (!this.preventAutofocus) {\n if (typeof this.$el !== 'undefined') this.$el.focus()\n }\n this.$emit('open', this.id)\n },\n /**\n * Closes the multiselect’s dropdown.\n * Sets this.isOpen to FALSE\n */\n deactivate () {\n /* istanbul ignore else */\n if (!this.isOpen) return\n\n this.isOpen = false\n /* istanbul ignore else */\n if (this.searchable) {\n if (typeof this.$refs.search !== 'undefined') this.$refs.search.blur()\n } else {\n if (typeof this.$el !== 'undefined') this.$el.blur()\n }\n if (!this.preserveSearch) this.search = ''\n this.$emit('close', this.getValue(), this.id)\n },\n /**\n * Call this.activate() or this.deactivate()\n * depending on this.isOpen value.\n *\n * @fires this#activate || this#deactivate\n * @property {Boolean} isOpen indicates if dropdown is open\n */\n toggle () {\n this.isOpen\n ? this.deactivate()\n : this.activate()\n },\n /**\n * Updates the hasEnoughSpace variable used for\n * detecting where to expand the dropdown\n */\n adjustPosition () {\n if (typeof window === 'undefined') return\n\n const spaceAbove = this.$el.getBoundingClientRect().top\n const spaceBelow = window.innerHeight - this.$el.getBoundingClientRect().bottom\n const hasEnoughSpaceBelow = spaceBelow > this.maxHeight\n\n if (hasEnoughSpaceBelow || spaceBelow > spaceAbove || this.openDirection === 'below' || this.openDirection === 'bottom') {\n this.preferredOpenDirection = 'below'\n this.optimizedHeight = Math.min(spaceBelow - 40, this.maxHeight)\n } else {\n this.preferredOpenDirection = 'above'\n this.optimizedHeight = Math.min(spaceAbove - 40, this.maxHeight)\n }\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/multiselectMixin.js","export default {\n data () {\n return {\n pointer: 0,\n pointerDirty: false\n }\n },\n props: {\n /**\n * Enable/disable highlighting of the pointed value.\n * @type {Boolean}\n * @default true\n */\n showPointer: {\n type: Boolean,\n default: true\n },\n optionHeight: {\n type: Number,\n default: 40\n }\n },\n computed: {\n pointerPosition () {\n return this.pointer * this.optionHeight\n },\n visibleElements () {\n return this.optimizedHeight / this.optionHeight\n }\n },\n watch: {\n filteredOptions () {\n this.pointerAdjust()\n },\n isOpen () {\n this.pointerDirty = false\n },\n pointer () {\n this.$refs.search && this.$refs.search.setAttribute('aria-activedescendant', this.id + '-' + this.pointer.toString())\n }\n },\n methods: {\n optionHighlight (index, option) {\n return {\n 'multiselect__option--highlight': index === this.pointer && this.showPointer,\n 'multiselect__option--selected': this.isSelected(option)\n }\n },\n groupHighlight (index, selectedGroup) {\n if (!this.groupSelect) {\n return [\n 'multiselect__option--disabled',\n { 'multiselect__option--group': selectedGroup.$isLabel }\n ]\n }\n\n const group = this.options.find(option => {\n return option[this.groupLabel] === selectedGroup.$groupLabel\n })\n\n return group && !this.wholeGroupDisabled(group) ? [\n 'multiselect__option--group',\n { 'multiselect__option--highlight': index === this.pointer && this.showPointer },\n { 'multiselect__option--group-selected': this.wholeGroupSelected(group) }\n ] : 'multiselect__option--disabled'\n },\n addPointerElement ({ key } = 'Enter') {\n /* istanbul ignore else */\n if (this.filteredOptions.length > 0) {\n this.select(this.filteredOptions[this.pointer], key)\n }\n this.pointerReset()\n },\n pointerForward () {\n /* istanbul ignore else */\n if (this.pointer < this.filteredOptions.length - 1) {\n this.pointer++\n /* istanbul ignore next */\n if (this.$refs.list.scrollTop <= this.pointerPosition - (this.visibleElements - 1) * this.optionHeight) {\n this.$refs.list.scrollTop = this.pointerPosition - (this.visibleElements - 1) * this.optionHeight\n }\n /* istanbul ignore else */\n if (\n this.filteredOptions[this.pointer] &&\n this.filteredOptions[this.pointer].$isLabel &&\n !this.groupSelect\n ) this.pointerForward()\n }\n this.pointerDirty = true\n },\n pointerBackward () {\n if (this.pointer > 0) {\n this.pointer--\n /* istanbul ignore else */\n if (this.$refs.list.scrollTop >= this.pointerPosition) {\n this.$refs.list.scrollTop = this.pointerPosition\n }\n /* istanbul ignore else */\n if (\n this.filteredOptions[this.pointer] &&\n this.filteredOptions[this.pointer].$isLabel &&\n !this.groupSelect\n ) this.pointerBackward()\n } else {\n /* istanbul ignore else */\n if (\n this.filteredOptions[this.pointer] &&\n this.filteredOptions[0].$isLabel &&\n !this.groupSelect\n ) this.pointerForward()\n }\n this.pointerDirty = true\n },\n pointerReset () {\n /* istanbul ignore else */\n if (!this.closeOnSelect) return\n this.pointer = 0\n /* istanbul ignore else */\n if (this.$refs.list) {\n this.$refs.list.scrollTop = 0\n }\n },\n pointerAdjust () {\n /* istanbul ignore else */\n if (this.pointer >= this.filteredOptions.length - 1) {\n this.pointer = this.filteredOptions.length\n ? this.filteredOptions.length - 1\n : 0\n }\n\n if (this.filteredOptions.length > 0 &&\n this.filteredOptions[this.pointer].$isLabel &&\n !this.groupSelect\n ) {\n this.pointerForward()\n }\n },\n pointerSet (index) {\n this.pointer = index\n this.pointerDirty = true\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/pointerMixin.js","var normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./ActionDispatcher.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./ActionDispatcher.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-8812d4f0\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/template-compiler/preprocessor?engine=pug!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./ActionDispatcher.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./documentation/partials/examples/ActionDispatcher.vue\n// module id = 207\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?sourceMap!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-7feadad7\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":true}!sass-loader?indentedSyntax&sourceMap!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./AjaxSearch.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./AjaxSearch.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./AjaxSearch.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-7feadad7\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/template-compiler/preprocessor?engine=pug!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./AjaxSearch.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./documentation/partials/examples/AjaxSearch.vue\n// module id = 208\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?sourceMap!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-9b3a8f0a\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":true}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./CustomConfig.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./CustomConfig.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./CustomConfig.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-9b3a8f0a\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/template-compiler/preprocessor?engine=pug!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./CustomConfig.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./documentation/partials/examples/CustomConfig.vue\n// module id = 209\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?sourceMap!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-4a45687e\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":true}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./CustomOption.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./CustomOption.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./CustomOption.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-4a45687e\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/template-compiler/preprocessor?engine=pug!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./CustomOption.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./documentation/partials/examples/CustomOption.vue\n// module id = 210\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?sourceMap!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-c84e3326\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":true}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Groups.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Groups.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Groups.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-c84e3326\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/template-compiler/preprocessor?engine=pug!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./Groups.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./documentation/partials/examples/Groups.vue\n// module id = 211\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?sourceMap!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-4e411541\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":true}!sass-loader?indentedSyntax&sourceMap!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./MultiSelect.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./MultiSelect.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./MultiSelect.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-4e411541\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/template-compiler/preprocessor?engine=pug!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./MultiSelect.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./documentation/partials/examples/MultiSelect.vue\n// module id = 212\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?sourceMap!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-00661e9e\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":true}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./ProgrammaticCtrl.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./ProgrammaticCtrl.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./ProgrammaticCtrl.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-00661e9e\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/template-compiler/preprocessor?engine=pug!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./ProgrammaticCtrl.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./documentation/partials/examples/ProgrammaticCtrl.vue\n// module id = 213\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?sourceMap!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-46076d02\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":true}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./SingleSelectObject.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./SingleSelectObject.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./SingleSelectObject.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-46076d02\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/template-compiler/preprocessor?engine=pug!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./SingleSelectObject.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./documentation/partials/examples/SingleSelectObject.vue\n// module id = 214\n// module chunks = 1","var normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./SingleSelectPrimitive.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./SingleSelectPrimitive.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-628f766e\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/template-compiler/preprocessor?engine=pug!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./SingleSelectPrimitive.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./documentation/partials/examples/SingleSelectPrimitive.vue\n// module id = 215\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?sourceMap!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-dd376266\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":true}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./SingleSelectSearch.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./SingleSelectSearch.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./SingleSelectSearch.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-dd376266\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/template-compiler/preprocessor?engine=pug!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./SingleSelectSearch.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./documentation/partials/examples/SingleSelectSearch.vue\n// module id = 216\n// module chunks = 1","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?sourceMap!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-2c9b9b47\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":true}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Tagging.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Tagging.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Tagging.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-2c9b9b47\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/template-compiler/preprocessor?engine=pug!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./Tagging.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./documentation/partials/examples/Tagging.vue\n// module id = 217\n// module chunks = 1","var normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./VuexActions.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./VuexActions.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-6be1d9c0\\\",\\\"hasScoped\\\":false,\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/template-compiler/preprocessor?engine=pug!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./VuexActions.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./documentation/partials/examples/VuexActions.vue\n// module id = 218\n// module chunks = 1","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('button',{staticClass:\"button button-small\",on:{\"click\":_vm.toggle}},[_vm._v(\"Toggle\")]),_vm._v(\" \"),_c('button',{staticClass:\"button button-small\",on:{\"click\":_vm.open}},[_vm._v(\"Open\")]),_vm._v(\" \"),_c('button',{staticClass:\"button button-small\",on:{\"click\":_vm.close}},[_vm._v(\"Close\")]),_vm._v(\" \"),_c('pre',[_vm._v(\"Multiselect Open: \"+_vm._s(_vm.isOpen))]),_c('label',{staticClass:\"typo__label\"},[_vm._v(\"Controlling multiselect programmatically\")]),_c('multiselect',{ref:\"multiselect\",attrs:{\"placeholder\":\"Pick at least one\",\"value\":_vm.value,\"options\":_vm.options,\"multiple\":true,\"searchable\":true,\"allow-empty\":false,\"hide-selected\":true,\"max-height\":150,\"max\":3},on:{\"open\":function($event){_vm.isOpen = true},\"close\":function($event){_vm.isOpen = false}}})],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-00661e9e\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!./~/vue-loader/lib/template-compiler/preprocessor.js?engine=pug!./~/vue-loader/lib/selector.js?type=template&index=0!./documentation/partials/examples/ProgrammaticCtrl.vue\n// module id = 219\n// module chunks = 1","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('label',{staticClass:\"typo__label\"},[_vm._v(\"Tagging\")]),_c('multiselect',{attrs:{\"tag-placeholder\":\"Add this as new tag\",\"placeholder\":\"Search or add a tag\",\"label\":\"name\",\"track-by\":\"code\",\"options\":_vm.options,\"multiple\":true,\"taggable\":true},on:{\"tag\":_vm.addTag},model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}}),_c('pre',{staticClass:\"language-json\"},[_c('code',[_vm._v(_vm._s(_vm.value))])])],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-2c9b9b47\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!./~/vue-loader/lib/template-compiler/preprocessor.js?engine=pug!./~/vue-loader/lib/selector.js?type=template&index=0!./documentation/partials/examples/Tagging.vue\n// module id = 220\n// module chunks = 1","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('label',{staticClass:\"typo__label\"},[_vm._v(\"Single select / dropdown\")]),_c('multiselect',{attrs:{\"deselect-label\":\"Can't remove this value\",\"track-by\":\"name\",\"label\":\"name\",\"placeholder\":\"Select one\",\"options\":_vm.options,\"searchable\":false,\"allow-empty\":false},scopedSlots:_vm._u([{key:\"singleLabel\",fn:function(ref){\nvar option = ref.option;\nreturn [_c('strong',[_vm._v(_vm._s(option.name))]),_vm._v(\" is written in\"),_c('strong',[_vm._v(\" \"+_vm._s(option.language))])]}}]),model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}}),_c('pre',{staticClass:\"language-json\"},[_c('code',[_vm._v(_vm._s(_vm.value))])])],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-46076d02\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!./~/vue-loader/lib/template-compiler/preprocessor.js?engine=pug!./~/vue-loader/lib/selector.js?type=template&index=0!./documentation/partials/examples/SingleSelectObject.vue\n// module id = 221\n// module chunks = 1","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('label',{staticClass:\"typo__label\"},[_vm._v(\"Custom option template\")]),_c('multiselect',{attrs:{\"placeholder\":\"Fav No Man’s Sky path\",\"label\":\"title\",\"track-by\":\"title\",\"options\":_vm.options,\"option-height\":104,\"custom-label\":_vm.customLabel,\"show-labels\":false},scopedSlots:_vm._u([{key:\"singleLabel\",fn:function(props){return [_c('img',{staticClass:\"option__image\",attrs:{\"src\":props.option.img,\"alt\":\"No Man’s Sky\"}}),_c('span',{staticClass:\"option__desc\"},[_c('span',{staticClass:\"option__title\"},[_vm._v(_vm._s(props.option.title))])])]}},{key:\"option\",fn:function(props){return [_c('img',{staticClass:\"option__image\",attrs:{\"src\":props.option.img,\"alt\":\"No Man’s Sky\"}}),_c('div',{staticClass:\"option__desc\"},[_c('span',{staticClass:\"option__title\"},[_vm._v(_vm._s(props.option.title))]),_c('span',{staticClass:\"option__small\"},[_vm._v(_vm._s(props.option.desc))])])]}}]),model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}}),_c('pre',{staticClass:\"language-json\"},[_c('code',[_vm._v(_vm._s(_vm.value))])])],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-4a45687e\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!./~/vue-loader/lib/template-compiler/preprocessor.js?engine=pug!./~/vue-loader/lib/selector.js?type=template&index=0!./documentation/partials/examples/CustomOption.vue\n// module id = 222\n// module chunks = 1","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('label',{staticClass:\"typo__label\"},[_vm._v(\"Simple select / dropdown\")]),_c('multiselect',{attrs:{\"options\":_vm.options,\"multiple\":true,\"close-on-select\":false,\"clear-on-select\":false,\"preserve-search\":true,\"placeholder\":\"Pick some\",\"label\":\"name\",\"track-by\":\"name\",\"preselect-first\":true},scopedSlots:_vm._u([{key:\"selection\",fn:function(ref){\nvar values = ref.values;\nvar search = ref.search;\nvar isOpen = ref.isOpen;\nreturn [(values.length)?_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(!isOpen),expression:\"!isOpen\"}],staticClass:\"multiselect__single\"},[_vm._v(_vm._s(values.length)+\" options selected\")]):_vm._e()]}}]),model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}}),_c('pre',{staticClass:\"language-json\"},[_c('code',[_vm._v(_vm._s(_vm.value))])])],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-4e411541\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!./~/vue-loader/lib/template-compiler/preprocessor.js?engine=pug!./~/vue-loader/lib/selector.js?type=template&index=0!./documentation/partials/examples/MultiSelect.vue\n// module id = 223\n// module chunks = 1","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('multiselect',{attrs:{\"label\":\"name\",\"track-by\":\"name\",\"placeholder\":\"Pick badges\",\"options\":_vm.badges,\"multiple\":true,\"show-labels\":false,\"limit\":3},on:{\"tag\":_vm.onTagging},scopedSlots:_vm._u([{key:\"option\",fn:function(props){return [_c('span',{staticClass:\"badge__name\"},[_vm._v(_vm._s(props.option.name))]),_c('img',{staticClass:\"badge__img\",attrs:{\"src\":props.option.img,\"alt\":props.option.name}})]}}]),model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}},[_c('span',{attrs:{\"slot\":\"noResult\"},slot:\"noResult\"},[_vm._v(\"Badge not found. Suggest a badge \"),_c('a',{staticClass:\"typo__link\",attrs:{\"href\":\"https://github.com/shentao/vue-multiselect/issues\",\"target\":\"_blank\"}},[_vm._v(\"here\")]),_vm._v(\".\")])])],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-52f7c88f\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!./~/vue-loader/lib/template-compiler/preprocessor.js?engine=pug!./~/vue-loader/lib/selector.js?type=template&index=0!./documentation/MultiselectExample.vue\n// module id = 224\n// module chunks = 1","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('label',{staticClass:\"typo__label\"},[_vm._v(\"Single select\")]),_c('multiselect',{attrs:{\"options\":_vm.options,\"searchable\":false,\"close-on-select\":false,\"show-labels\":false,\"placeholder\":\"Pick a value\"},model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}}),_c('pre',{staticClass:\"language-json\"},[_c('code',[_vm._v(_vm._s(_vm.value))])])],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-628f766e\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!./~/vue-loader/lib/template-compiler/preprocessor.js?engine=pug!./~/vue-loader/lib/selector.js?type=template&index=0!./documentation/partials/examples/SingleSelectPrimitive.vue\n// module id = 225\n// module chunks = 1","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('label',{staticClass:\"typo__label\"},[_vm._v(\"Vuex example.\")]),_c('multiselect',{attrs:{\"placeholder\":\"Pick action\",\"value\":_vm.value,\"options\":_vm.options,\"searchable\":false},on:{\"input\":_vm.updateValueAction}})],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-6be1d9c0\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!./~/vue-loader/lib/template-compiler/preprocessor.js?engine=pug!./~/vue-loader/lib/selector.js?type=template&index=0!./documentation/partials/examples/VuexActions.vue\n// module id = 226\n// module chunks = 1","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"multiselect\",class:{ 'multiselect--active': _vm.isOpen, 'multiselect--disabled': _vm.disabled, 'multiselect--above': _vm.isAbove, 'multiselect--has-options-group': _vm.hasOptionGroup },attrs:{\"tabindex\":_vm.searchable ? -1 : _vm.tabindex,\"role\":\"combobox\",\"aria-owns\":'listbox-'+_vm.id},on:{\"focus\":function($event){return _vm.activate()},\"blur\":function($event){_vm.searchable ? false : _vm.deactivate()},\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"down\",40,$event.key,[\"Down\",\"ArrowDown\"])){ return null; }if($event.target !== $event.currentTarget){ return null; }$event.preventDefault();return _vm.pointerForward()},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"up\",38,$event.key,[\"Up\",\"ArrowUp\"])){ return null; }if($event.target !== $event.currentTarget){ return null; }$event.preventDefault();return _vm.pointerBackward()}],\"keypress\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")&&_vm._k($event.keyCode,\"tab\",9,$event.key,\"Tab\")){ return null; }$event.stopPropagation();if($event.target !== $event.currentTarget){ return null; }return _vm.addPointerElement($event)},\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }return _vm.deactivate()}}},[_vm._t(\"caret\",function(){return [_c('div',{staticClass:\"multiselect__select\",on:{\"mousedown\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.toggle()}}})]},{\"toggle\":_vm.toggle}),_vm._v(\" \"),_vm._t(\"clear\",null,{\"search\":_vm.search}),_vm._v(\" \"),_c('div',{ref:\"tags\",staticClass:\"multiselect__tags\"},[_vm._t(\"selection\",function(){return [_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.visibleValues.length > 0),expression:\"visibleValues.length > 0\"}],staticClass:\"multiselect__tags-wrap\"},[_vm._l((_vm.visibleValues),function(option,index){return [_vm._t(\"tag\",function(){return [_c('span',{key:index,staticClass:\"multiselect__tag\"},[_c('span',{domProps:{\"textContent\":_vm._s(_vm.getOptionLabel(option))}}),_vm._v(\" \"),_c('i',{staticClass:\"multiselect__tag-icon\",attrs:{\"tabindex\":\"1\"},on:{\"keypress\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }$event.preventDefault();return _vm.removeElement(option)},\"mousedown\":function($event){$event.preventDefault();return _vm.removeElement(option)}}})])]},{\"option\":option,\"search\":_vm.search,\"remove\":_vm.removeElement})]})],2),_vm._v(\" \"),(_vm.internalValue && _vm.internalValue.length > _vm.limit)?[_vm._t(\"limit\",function(){return [_c('strong',{staticClass:\"multiselect__strong\",domProps:{\"textContent\":_vm._s(_vm.limitText(_vm.internalValue.length - _vm.limit))}})]})]:_vm._e()]},{\"search\":_vm.search,\"remove\":_vm.removeElement,\"values\":_vm.visibleValues,\"isOpen\":_vm.isOpen}),_vm._v(\" \"),_c('transition',{attrs:{\"name\":\"multiselect__loading\"}},[_vm._t(\"loading\",function(){return [_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.loading),expression:\"loading\"}],staticClass:\"multiselect__spinner\"})]})],2),_vm._v(\" \"),(_vm.searchable)?_c('input',{ref:\"search\",staticClass:\"multiselect__input\",style:(_vm.inputStyle),attrs:{\"name\":_vm.name,\"id\":_vm.id,\"type\":\"text\",\"autocomplete\":\"off\",\"spellcheck\":\"false\",\"placeholder\":_vm.placeholder,\"disabled\":_vm.disabled,\"tabindex\":_vm.tabindex,\"aria-controls\":'listbox-'+_vm.id},domProps:{\"value\":_vm.search},on:{\"input\":function($event){return _vm.updateSearch($event.target.value)},\"focus\":function($event){$event.preventDefault();return _vm.activate()},\"blur\":function($event){$event.preventDefault();return _vm.deactivate()},\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }return _vm.deactivate()},\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"down\",40,$event.key,[\"Down\",\"ArrowDown\"])){ return null; }$event.preventDefault();return _vm.pointerForward()},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"up\",38,$event.key,[\"Up\",\"ArrowUp\"])){ return null; }$event.preventDefault();return _vm.pointerBackward()},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"delete\",[8,46],$event.key,[\"Backspace\",\"Delete\",\"Del\"])){ return null; }$event.stopPropagation();return _vm.removeLastElement()}],\"keypress\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }$event.preventDefault();$event.stopPropagation();if($event.target !== $event.currentTarget){ return null; }return _vm.addPointerElement($event)}}}):_vm._e(),_vm._v(\" \"),(_vm.isSingleLabelVisible)?_c('span',{staticClass:\"multiselect__single\",on:{\"mousedown\":function($event){$event.preventDefault();return _vm.toggle.apply(null, arguments)}}},[_vm._t(\"singleLabel\",function(){return [[_vm._v(_vm._s(_vm.currentOptionLabel))]]},{\"option\":_vm.singleValue})],2):_vm._e(),_vm._v(\" \"),(_vm.isPlaceholderVisible)?_c('span',{staticClass:\"multiselect__placeholder\",on:{\"mousedown\":function($event){$event.preventDefault();return _vm.toggle.apply(null, arguments)}}},[_vm._t(\"placeholder\",function(){return [_vm._v(\"\\n \"+_vm._s(_vm.placeholder)+\"\\n \")]})],2):_vm._e()],2),_vm._v(\" \"),_c('transition',{attrs:{\"name\":\"multiselect\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isOpen),expression:\"isOpen\"}],ref:\"list\",staticClass:\"multiselect__content-wrapper\",style:({ maxHeight: _vm.optimizedHeight + 'px' }),attrs:{\"tabindex\":\"-1\"},on:{\"focus\":_vm.activate,\"mousedown\":function($event){$event.preventDefault();}}},[_c('ul',{staticClass:\"multiselect__content\",style:(_vm.contentStyle),attrs:{\"role\":\"listbox\",\"id\":'listbox-'+_vm.id}},[_vm._t(\"beforeList\"),_vm._v(\" \"),(_vm.multiple && _vm.max === _vm.internalValue.length)?_c('li',[_c('span',{staticClass:\"multiselect__option\"},[_vm._t(\"maxElements\",function(){return [_vm._v(\"Maximum of \"+_vm._s(_vm.max)+\" options selected. First remove a selected option to select another.\")]})],2)]):_vm._e(),_vm._v(\" \"),(!_vm.max || _vm.internalValue.length < _vm.max)?_vm._l((_vm.filteredOptions),function(option,index){return _c('li',{key:index,staticClass:\"multiselect__element\",attrs:{\"id\":_vm.id + '-' + index,\"role\":!(option && (option.$isLabel || option.$isDisabled)) ? 'option' : null}},[(!(option && (option.$isLabel || option.$isDisabled)))?_c('span',{staticClass:\"multiselect__option\",class:_vm.optionHighlight(index, option),attrs:{\"data-select\":option && option.isTag ? _vm.tagPlaceholder : _vm.selectLabelText,\"data-selected\":_vm.selectedLabelText,\"data-deselect\":_vm.deselectLabelText},on:{\"click\":function($event){$event.stopPropagation();return _vm.select(option)},\"mouseenter\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.pointerSet(index)}}},[_vm._t(\"option\",function(){return [_c('span',[_vm._v(_vm._s(_vm.getOptionLabel(option)))])]},{\"option\":option,\"search\":_vm.search,\"index\":index})],2):_vm._e(),_vm._v(\" \"),(option && (option.$isLabel || option.$isDisabled))?_c('span',{staticClass:\"multiselect__option\",class:_vm.groupHighlight(index, option),attrs:{\"data-select\":_vm.groupSelect && _vm.selectGroupLabelText,\"data-deselect\":_vm.groupSelect && _vm.deselectGroupLabelText},on:{\"mouseenter\":function($event){if($event.target !== $event.currentTarget){ return null; }_vm.groupSelect && _vm.pointerSet(index)},\"mousedown\":function($event){$event.preventDefault();return _vm.selectGroup(option)}}},[_vm._t(\"option\",function(){return [_c('span',[_vm._v(_vm._s(_vm.getOptionLabel(option)))])]},{\"option\":option,\"search\":_vm.search,\"index\":index})],2):_vm._e()])}):_vm._e(),_vm._v(\" \"),_c('li',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showNoResults && (_vm.filteredOptions.length === 0 && _vm.search && !_vm.loading)),expression:\"showNoResults && (filteredOptions.length === 0 && search && !loading)\"}]},[_c('span',{staticClass:\"multiselect__option\"},[_vm._t(\"noResult\",function(){return [_vm._v(\"No elements found. Consider changing the search query.\")]},{\"search\":_vm.search})],2)]),_vm._v(\" \"),_c('li',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showNoOptions && ((_vm.options.length === 0 || (_vm.hasOptionGroup === true && _vm.filteredOptions.length === 0)) && !_vm.search && !_vm.loading)),expression:\"showNoOptions && ((options.length === 0 || (hasOptionGroup === true && filteredOptions.length === 0)) && !search && !loading)\"}]},[_c('span',{staticClass:\"multiselect__option\"},[_vm._t(\"noOptions\",function(){return [_vm._v(\"List is empty.\")]})],2)]),_vm._v(\" \"),_vm._t(\"afterList\")],2)])])],2)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-6dd7a4dc\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/Multiselect.vue\n// module id = 227\n// module chunks = 1","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('label',{staticClass:\"typo__label\",attrs:{\"for\":\"ajax\"}},[_vm._v(\"Async multiselect\")]),_c('multiselect',{attrs:{\"id\":\"ajax\",\"label\":\"name\",\"track-by\":\"code\",\"placeholder\":\"Type to search\",\"open-direction\":\"bottom\",\"options\":_vm.countries,\"multiple\":true,\"searchable\":true,\"loading\":_vm.isLoading,\"internal-search\":false,\"clear-on-select\":false,\"close-on-select\":false,\"options-limit\":300,\"limit\":3,\"limit-text\":_vm.limitText,\"max-height\":600,\"show-no-results\":false,\"hide-selected\":true},on:{\"search-change\":_vm.asyncFind},scopedSlots:_vm._u([{key:\"tag\",fn:function(ref){\nvar option = ref.option;\nvar remove = ref.remove;\nreturn [_c('span',{staticClass:\"custom__tag\"},[_c('span',[_vm._v(_vm._s(option.name))]),_c('span',{staticClass:\"custom__remove\",on:{\"click\":function($event){return remove(option)}}},[_vm._v(\"❌\")])])]}},{key:\"clear\",fn:function(props){return [(_vm.selectedCountries.length)?_c('div',{staticClass:\"multiselect__clear\",on:{\"mousedown\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.clearAll(props.search)}}}):_vm._e()]}}]),model:{value:(_vm.selectedCountries),callback:function ($$v) {_vm.selectedCountries=$$v},expression:\"selectedCountries\"}},[_c('span',{attrs:{\"slot\":\"noResult\"},slot:\"noResult\"},[_vm._v(\"Oops! No elements found. Consider changing the search query.\")])]),_c('pre',{staticClass:\"language-json\"},[_c('code',[_vm._v(_vm._s(_vm.selectedCountries))])])],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-7feadad7\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!./~/vue-loader/lib/template-compiler/preprocessor.js?engine=pug!./~/vue-loader/lib/selector.js?type=template&index=0!./documentation/partials/examples/AjaxSearch.vue\n// module id = 228\n// module chunks = 1","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('label',{staticClass:\"typo__label\"},[_vm._v(\"Open console to see logs.\")]),_c('multiselect',{attrs:{\"placeholder\":\"Pick action\",\"options\":_vm.actions,\"searchable\":false,\"reset-after\":true},on:{\"select\":_vm.dispatchAction}})],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-8812d4f0\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!./~/vue-loader/lib/template-compiler/preprocessor.js?engine=pug!./~/vue-loader/lib/selector.js?type=template&index=0!./documentation/partials/examples/ActionDispatcher.vue\n// module id = 229\n// module chunks = 1","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:{ 'invalid': _vm.isInvalid }},[_c('label',{staticClass:\"typo__label\"},[_vm._v(\"Customized multiselect\")]),_c('multiselect',{attrs:{\"placeholder\":\"Pick at least one\",\"select-label\":\"Enter doesn’t work here!\",\"value\":_vm.value,\"options\":_vm.options,\"multiple\":true,\"searchable\":true,\"allow-empty\":false,\"prevent-autofocus\":true,\"hide-selected\":true,\"max-height\":150,\"max\":3,\"disabled\":_vm.isDisabled,\"block-keys\":['Tab', 'Enter']},on:{\"input\":_vm.onChange,\"close\":_vm.onTouch,\"select\":_vm.onSelect}}),_c('label',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isInvalid),expression:\"isInvalid\"}],staticClass:\"typo__label form__label\"},[_vm._v(\"Must have at least one value\")])],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-9b3a8f0a\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!./~/vue-loader/lib/template-compiler/preprocessor.js?engine=pug!./~/vue-loader/lib/selector.js?type=template&index=0!./documentation/partials/examples/CustomConfig.vue\n// module id = 230\n// module chunks = 1","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('label',{staticClass:\"typo__label\"},[_vm._v(\"Groups\")]),_c('multiselect',{attrs:{\"options\":_vm.options,\"multiple\":true,\"group-values\":\"libs\",\"group-label\":\"language\",\"group-select\":true,\"placeholder\":\"Type to search\",\"track-by\":\"name\",\"label\":\"name\"},model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}},[_c('span',{attrs:{\"slot\":\"noResult\"},slot:\"noResult\"},[_vm._v(\"Oops! No elements found. Consider changing the search query.\")])]),_c('pre',{staticClass:\"language-json\"},[_c('code',[_vm._v(_vm._s(_vm.value))])])],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-c84e3326\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!./~/vue-loader/lib/template-compiler/preprocessor.js?engine=pug!./~/vue-loader/lib/selector.js?type=template&index=0!./documentation/partials/examples/Groups.vue\n// module id = 231\n// module chunks = 1","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"tabs\"},_vm._l((_vm.langs),function(lang){return _c('a',{staticClass:\"tabs__link\",class:{'tabs__link--active': lang === _vm.current},on:{\"click\":function($event){return _vm.select(lang)}}},[_vm._v(_vm._s(lang))])}),0)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-d857282c\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!./~/vue-loader/lib/template-compiler/preprocessor.js?engine=pug!./~/vue-loader/lib/selector.js?type=template&index=0!./documentation/LangSwitcher.vue\n// module id = 232\n// module chunks = 1","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('label',{staticClass:\"typo__label\"},[_vm._v(\"Select with search\")]),_c('multiselect',{attrs:{\"options\":_vm.options,\"custom-label\":_vm.nameWithLang,\"placeholder\":\"Select one\",\"label\":\"name\",\"track-by\":\"name\"},model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}}),_c('pre',{staticClass:\"language-json\"},[_c('code',[_vm._v(_vm._s(_vm.value))])])],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-dd376266\",\"hasScoped\":false,\"buble\":{\"transforms\":{}}}!./~/vue-loader/lib/template-compiler/preprocessor.js?engine=pug!./~/vue-loader/lib/selector.js?type=template&index=0!./documentation/partials/examples/SingleSelectSearch.vue\n// module id = 233\n// module chunks = 1"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/static/js/manifest.cc37e0fbf16e33dad596.js b/docs/static/js/manifest.cc37e0fbf16e33dad596.js deleted file mode 100644 index 102402fa..00000000 --- a/docs/static/js/manifest.cc37e0fbf16e33dad596.js +++ /dev/null @@ -1,2 +0,0 @@ -!function(e){function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}var r=window.webpackJsonp;window.webpackJsonp=function(t,c,i){for(var u,a,f,s=0,l=[];s<t.length;s++)a=t[s],o[a]&&l.push(o[a][0]),o[a]=0;for(u in c)Object.prototype.hasOwnProperty.call(c,u)&&(e[u]=c[u]);for(r&&r(t,c,i);l.length;)l.shift()();if(i)for(s=0;s<i.length;s++)f=n(n.s=i[s]);return f};var t={},o={2:0};n.e=function(e){function r(){u.onerror=u.onload=null,clearTimeout(a);var n=o[e];0!==n&&(n&&n[1](new Error("Loading chunk "+e+" failed.")),o[e]=void 0)}var t=o[e];if(0===t)return new Promise(function(e){e()});if(t)return t[2];var c=new Promise(function(n,r){t=o[e]=[n,r]});t[2]=c;var i=document.getElementsByTagName("head")[0],u=document.createElement("script");u.type="text/javascript",u.charset="utf-8",u.async=!0,u.timeout=12e4,n.nc&&u.setAttribute("nonce",n.nc),u.src=n.p+"static/js/"+e+"."+{0:"ed7650694397140633ce",1:"f7ff199ab89fb9e630e4"}[e]+".js";var a=setTimeout(r,12e4);return u.onerror=u.onload=r,i.appendChild(u),c},n.m=e,n.c=t,n.i=function(e){return e},n.d=function(e,r,t){n.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:t})},n.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(r,"a",r),r},n.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},n.p="",n.oe=function(e){throw console.error(e),e}}([]); -//# sourceMappingURL=manifest.cc37e0fbf16e33dad596.js.map \ No newline at end of file diff --git a/docs/static/js/manifest.cc37e0fbf16e33dad596.js.map b/docs/static/js/manifest.cc37e0fbf16e33dad596.js.map deleted file mode 100644 index 9e12fa49..00000000 --- a/docs/static/js/manifest.cc37e0fbf16e33dad596.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///static/js/manifest.cc37e0fbf16e33dad596.js","webpack:///webpack/bootstrap 63110730c9e6701c3e7d"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","i","l","call","parentJsonpFunction","window","chunkIds","moreModules","executeModules","chunkId","result","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","shift","s","2","e","onScriptComplete","script","onerror","onload","clearTimeout","timeout","chunk","Error","undefined","installedChunkData","Promise","resolve","promise","reject","head","document","getElementsByTagName","createElement","type","charset","async","nc","setAttribute","src","p","setTimeout","appendChild","m","c","value","d","name","getter","o","defineProperty","configurable","enumerable","get","n","__esModule","object","property","oe","err","console","error"],"mappings":"CAAS,SAAUA,GCuCjB,QAASC,GAAoBC,GAG5B,GAAGC,EAAiBD,GACnB,MAAOC,GAAiBD,GAAUE,OAGnC,IAAIC,GAASF,EAAiBD,IAC7BI,EAAGJ,EACHK,GAAG,EACHH,WAUD,OANAJ,GAAQE,GAAUM,KAAKH,EAAOD,QAASC,EAAQA,EAAOD,QAASH,GAG/DI,EAAOE,GAAI,EAGJF,EAAOD,QA1Df,GAAIK,GAAsBC,OAAqB,YAC/CA,QAAqB,aAAI,SAA8BC,EAAUC,EAAaC,GAI7E,IADA,GAAIX,GAAUY,EAA+BC,EAAtBT,EAAI,EAAGU,KACzBV,EAAIK,EAASM,OAAQX,IACzBQ,EAAUH,EAASL,GAChBY,EAAgBJ,IAClBE,EAASG,KAAKD,EAAgBJ,GAAS,IAExCI,EAAgBJ,GAAW,CAE5B,KAAIZ,IAAYU,GACZQ,OAAOC,UAAUC,eAAed,KAAKI,EAAaV,KACpDF,EAAQE,GAAYU,EAAYV,GAIlC,KADGO,GAAqBA,EAAoBE,EAAUC,EAAaC,GAC7DG,EAASC,QACdD,EAASO,SAEV,IAAGV,EACF,IAAIP,EAAE,EAAGA,EAAIO,EAAeI,OAAQX,IACnCS,EAASd,EAAoBA,EAAoBuB,EAAIX,EAAeP,GAGtE,OAAOS,GAIR,IAAIZ,MAGAe,GACHO,EAAG,EA6BJxB,GAAoByB,EAAI,SAAuBZ,GA+B9C,QAASa,KAERC,EAAOC,QAAUD,EAAOE,OAAS,KACjCC,aAAaC,EACb,IAAIC,GAAQf,EAAgBJ,EACf,KAAVmB,IACCA,GACFA,EAAM,GAAG,GAAIC,OAAM,iBAAmBpB,EAAU,aAEjDI,EAAgBJ,OAAWqB,IAvC7B,GAAIC,GAAqBlB,EAAgBJ,EACzC,IAA0B,IAAvBsB,EACF,MAAO,IAAIC,SAAQ,SAASC,GAAWA,KAIxC,IAAGF,EACF,MAAOA,GAAmB,EAI3B,IAAIG,GAAU,GAAIF,SAAQ,SAASC,EAASE,GAC3CJ,EAAqBlB,EAAgBJ,IAAYwB,EAASE,IAE3DJ,GAAmB,GAAKG,CAGxB,IAAIE,GAAOC,SAASC,qBAAqB,QAAQ,GAC7Cf,EAASc,SAASE,cAAc,SACpChB,GAAOiB,KAAO,kBACdjB,EAAOkB,QAAU,QACjBlB,EAAOmB,OAAQ,EACfnB,EAAOI,QAAU,KAEb/B,EAAoB+C,IACvBpB,EAAOqB,aAAa,QAAShD,EAAoB+C,IAElDpB,EAAOsB,IAAMjD,EAAoBkD,EAAI,aAAerC,EAAU,KAAO,EAAI,uBAAuB,EAAI,wBAAwBA,GAAW,KACvI,IAAIkB,GAAUoB,WAAWzB,EAAkB,KAgB3C,OAfAC,GAAOC,QAAUD,EAAOE,OAASH,EAajCc,EAAKY,YAAYzB,GAEVW,GAIRtC,EAAoBqD,EAAItD,EAGxBC,EAAoBsD,EAAIpD,EAGxBF,EAAoBK,EAAI,SAASkD,GAAS,MAAOA,IAGjDvD,EAAoBwD,EAAI,SAASrD,EAASsD,EAAMC,GAC3C1D,EAAoB2D,EAAExD,EAASsD,IAClCtC,OAAOyC,eAAezD,EAASsD,GAC9BI,cAAc,EACdC,YAAY,EACZC,IAAKL,KAMR1D,EAAoBgE,EAAI,SAAS5D,GAChC,GAAIsD,GAAStD,GAAUA,EAAO6D,WAC7B,WAAwB,MAAO7D,GAAgB,SAC/C,WAA8B,MAAOA,GAEtC,OADAJ,GAAoBwD,EAAEE,EAAQ,IAAKA,GAC5BA,GAIR1D,EAAoB2D,EAAI,SAASO,EAAQC,GAAY,MAAOhD,QAAOC,UAAUC,eAAed,KAAK2D,EAAQC,IAGzGnE,EAAoBkD,EAAI,GAGxBlD,EAAoBoE,GAAK,SAASC,GAA2B,KAApBC,SAAQC,MAAMF,GAAYA","file":"static/js/manifest.cc37e0fbf16e33dad596.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// install a JSONP callback for chunk loading\n/******/ \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n/******/ \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {\n/******/ \t\t// add \"moreModules\" to the modules object,\n/******/ \t\t// then flag all \"chunkIds\" as loaded and fire callback\n/******/ \t\tvar moduleId, chunkId, i = 0, resolves = [], result;\n/******/ \t\tfor(;i < chunkIds.length; i++) {\n/******/ \t\t\tchunkId = chunkIds[i];\n/******/ \t\t\tif(installedChunks[chunkId]) {\n/******/ \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n/******/ \t\t\t}\n/******/ \t\t\tinstalledChunks[chunkId] = 0;\n/******/ \t\t}\n/******/ \t\tfor(moduleId in moreModules) {\n/******/ \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n/******/ \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n/******/ \t\t\t}\n/******/ \t\t}\n/******/ \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);\n/******/ \t\twhile(resolves.length) {\n/******/ \t\t\tresolves.shift()();\n/******/ \t\t}\n/******/ \t\tif(executeModules) {\n/******/ \t\t\tfor(i=0; i < executeModules.length; i++) {\n/******/ \t\t\t\tresult = __webpack_require__(__webpack_require__.s = executeModules[i]);\n/******/ \t\t\t}\n/******/ \t\t}\n/******/ \t\treturn result;\n/******/ \t};\n/******/\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// objects to store loaded and loading chunks\n/******/ \tvar installedChunks = {\n/******/ \t\t2: 0\n/******/ \t};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/ \t// This file contains only the entry chunk.\n/******/ \t// The chunk loading function for additional chunks\n/******/ \t__webpack_require__.e = function requireEnsure(chunkId) {\n/******/ \t\tvar installedChunkData = installedChunks[chunkId];\n/******/ \t\tif(installedChunkData === 0) {\n/******/ \t\t\treturn new Promise(function(resolve) { resolve(); });\n/******/ \t\t}\n/******/\n/******/ \t\t// a Promise means \"currently loading\".\n/******/ \t\tif(installedChunkData) {\n/******/ \t\t\treturn installedChunkData[2];\n/******/ \t\t}\n/******/\n/******/ \t\t// setup Promise in chunk cache\n/******/ \t\tvar promise = new Promise(function(resolve, reject) {\n/******/ \t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n/******/ \t\t});\n/******/ \t\tinstalledChunkData[2] = promise;\n/******/\n/******/ \t\t// start chunk loading\n/******/ \t\tvar head = document.getElementsByTagName('head')[0];\n/******/ \t\tvar script = document.createElement('script');\n/******/ \t\tscript.type = 'text/javascript';\n/******/ \t\tscript.charset = 'utf-8';\n/******/ \t\tscript.async = true;\n/******/ \t\tscript.timeout = 120000;\n/******/\n/******/ \t\tif (__webpack_require__.nc) {\n/******/ \t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n/******/ \t\t}\n/******/ \t\tscript.src = __webpack_require__.p + \"static/js/\" + chunkId + \".\" + {\"0\":\"ed7650694397140633ce\",\"1\":\"f7ff199ab89fb9e630e4\"}[chunkId] + \".js\";\n/******/ \t\tvar timeout = setTimeout(onScriptComplete, 120000);\n/******/ \t\tscript.onerror = script.onload = onScriptComplete;\n/******/ \t\tfunction onScriptComplete() {\n/******/ \t\t\t// avoid mem leaks in IE.\n/******/ \t\t\tscript.onerror = script.onload = null;\n/******/ \t\t\tclearTimeout(timeout);\n/******/ \t\t\tvar chunk = installedChunks[chunkId];\n/******/ \t\t\tif(chunk !== 0) {\n/******/ \t\t\t\tif(chunk) {\n/******/ \t\t\t\t\tchunk[1](new Error('Loading chunk ' + chunkId + ' failed.'));\n/******/ \t\t\t\t}\n/******/ \t\t\t\tinstalledChunks[chunkId] = undefined;\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t\thead.appendChild(script);\n/******/\n/******/ \t\treturn promise;\n/******/ \t};\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// on error function for async loading\n/******/ \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n/******/ })\n/************************************************************************/\n/******/ ([]);\n\n\n// WEBPACK FOOTER //\n// static/js/manifest.cc37e0fbf16e33dad596.js"," \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [], result;\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n \t\tif(executeModules) {\n \t\t\tfor(i=0; i < executeModules.length; i++) {\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = executeModules[i]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// objects to store loaded and loading chunks\n \tvar installedChunks = {\n \t\t2: 0\n \t};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData === 0) {\n \t\t\treturn new Promise(function(resolve) { resolve(); });\n \t\t}\n\n \t\t// a Promise means \"currently loading\".\n \t\tif(installedChunkData) {\n \t\t\treturn installedChunkData[2];\n \t\t}\n\n \t\t// setup Promise in chunk cache\n \t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t});\n \t\tinstalledChunkData[2] = promise;\n\n \t\t// start chunk loading\n \t\tvar head = document.getElementsByTagName('head')[0];\n \t\tvar script = document.createElement('script');\n \t\tscript.type = 'text/javascript';\n \t\tscript.charset = 'utf-8';\n \t\tscript.async = true;\n \t\tscript.timeout = 120000;\n\n \t\tif (__webpack_require__.nc) {\n \t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t}\n \t\tscript.src = __webpack_require__.p + \"static/js/\" + chunkId + \".\" + {\"0\":\"ed7650694397140633ce\",\"1\":\"f7ff199ab89fb9e630e4\"}[chunkId] + \".js\";\n \t\tvar timeout = setTimeout(onScriptComplete, 120000);\n \t\tscript.onerror = script.onload = onScriptComplete;\n \t\tfunction onScriptComplete() {\n \t\t\t// avoid mem leaks in IE.\n \t\t\tscript.onerror = script.onload = null;\n \t\t\tclearTimeout(timeout);\n \t\t\tvar chunk = installedChunks[chunkId];\n \t\t\tif(chunk !== 0) {\n \t\t\t\tif(chunk) {\n \t\t\t\t\tchunk[1](new Error('Loading chunk ' + chunkId + ' failed.'));\n \t\t\t\t}\n \t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t}\n \t\t};\n \t\thead.appendChild(script);\n\n \t\treturn promise;\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 63110730c9e6701c3e7d"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/static/js/vendor.ed7650694397140633ce.js b/docs/static/js/vendor.ed7650694397140633ce.js deleted file mode 100644 index 2efdc24e..00000000 --- a/docs/static/js/vendor.ed7650694397140633ce.js +++ /dev/null @@ -1,19 +0,0 @@ -webpackJsonp([0],[function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e,n){var r=n(37),o=Function.prototype,i=o.call,a=r&&o.bind.bind(i,i);t.exports=r?a:function(t){return function(){return i.apply(t,arguments)}}},function(t,e,n){var r=n(4),o=n(58).f,i=n(32),a=n(13),c=n(49),s=n(145),u=n(100);t.exports=function(t,e){var n,f,l,p,d,v=t.target,h=t.global,m=t.stat;if(n=h?r:m?r[v]||c(v,{}):(r[v]||{}).prototype)for(f in e){if(p=e[f],t.dontCallGetSet?(d=o(n,f),l=d&&d.value):l=n[f],!u(h?f:v+(m?".":"#")+f,t.forced)&&void 0!==l){if(typeof p==typeof l)continue;s(p,l)}(t.sham||l&&l.sham)&&i(p,"sham",!0),a(n,f,p,t)}}},function(t,e,n){var r=n(93),o=r.all;t.exports=r.IS_HTMLDDA?function(t){return"function"==typeof t||t===o}:function(t){return"function"==typeof t}},function(t,e,n){(function(e){var n=function(t){return t&&t.Math==Math&&t};t.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof e&&e)||function(){return this}()||Function("return this")()}).call(e,n(20))},function(t,e,n){var r=n(4),o=n(63),i=n(11),a=n(112),c=n(110),s=n(113),u=o("wks"),f=r.Symbol,l=f&&f.for,p=s?f:f&&f.withoutSetter||a;t.exports=function(t){if(!i(u,t)||!c&&"string"!=typeof u[t]){var e="Symbol."+t;c&&i(f,t)?u[t]=f[t]:u[t]=s&&l?l(e):p(e)}return u[t]}},function(t,e){t.exports=function(t,e,n,r,o,i){var a,c=t=t||{},s=typeof t.default;"object"!==s&&"function"!==s||(a=t,c=t.default);var u="function"==typeof c?c.options:c;e&&(u.render=e.render,u.staticRenderFns=e.staticRenderFns,u._compiled=!0),n&&(u.functional=!0),o&&(u._scopeId=o);var f;if(i?(f=function(t){t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,t||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),r&&r.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(i)},u._ssrRegister=f):r&&(f=r),f){var l=u.functional,p=l?u.render:u.beforeCreate;l?(u._injectStyles=f,u.render=function(t,e){return f.call(e),p(t,e)}):u.beforeCreate=p?[].concat(p,f):[f]}return{esModule:a,exports:c,options:u}}},,function(t,e,n){var r=n(12),o=String,i=TypeError;t.exports=function(t){if(r(t))return t;throw i(o(t)+" is not an object")}},function(t,e,n){var r=n(0);t.exports=!r(function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})},function(t,e,n){var r=n(37),o=Function.prototype.call;t.exports=r?o.bind(o):function(){return o.apply(o,arguments)}},function(t,e,n){var r=n(1),o=n(16),i=r({}.hasOwnProperty);t.exports=Object.hasOwn||function(t,e){return i(o(t),e)}},function(t,e,n){var r=n(3),o=n(93),i=o.all;t.exports=o.IS_HTMLDDA?function(t){return"object"==typeof t?null!==t:r(t)||t===i}:function(t){return"object"==typeof t?null!==t:r(t)}},function(t,e,n){var r=n(3),o=n(15),i=n(161),a=n(49);t.exports=function(t,e,n,c){c||(c={});var s=c.enumerable,u=void 0!==c.name?c.name:e;if(r(n)&&i(n,u,c),c.global)s?t[e]=n:a(e,n);else{try{c.unsafe?t[e]&&(s=!0):delete t[e]}catch(t){}s?t[e]=n:o.f(t,e,{value:n,enumerable:!1,configurable:!c.nonConfigurable,writable:!c.nonWritable})}return t}},function(t,e,n){var r=n(181);t.exports=function(t){return r(t.length)}},function(t,e,n){var r=n(9),o=n(98),i=n(114),a=n(8),c=n(65),s=TypeError,u=Object.defineProperty,f=Object.getOwnPropertyDescriptor;e.f=r?i?function(t,e,n){if(a(t),e=c(e),a(n),"function"==typeof t&&"prototype"===e&&"value"in n&&"writable"in n&&!n.writable){var r=f(t,e);r&&r.writable&&(t[e]=n.value,n={configurable:"configurable"in n?n.configurable:r.configurable,enumerable:"enumerable"in n?n.enumerable:r.enumerable,writable:!1})}return u(t,e,n)}:u:function(t,e,n){if(a(t),e=c(e),a(n),o)try{return u(t,e,n)}catch(t){}if("get"in n||"set"in n)throw s("Accessors not supported");return"value"in n&&(t[e]=n.value),t}},function(t,e,n){var r=n(19),o=Object;t.exports=function(t){return o(r(t))}},function(t,e,n){var r=n(31),o=String;t.exports=function(t){if("Symbol"===r(t))throw TypeError("Cannot convert a Symbol value to a string");return o(t)}},function(t,e,n){var r=n(1),o=r({}.toString),i=r("".slice);t.exports=function(t){return i(o(t),8,-1)}},function(t,e,n){var r=n(39),o=TypeError;t.exports=function(t){if(r(t))throw o("Can't call method on "+t);return t}},function(t,e){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(n=window)}t.exports=n},function(t,e,n){var r=n(0),o=n(5),i=n(36),a=o("species");t.exports=function(t){return i>=51||!r(function(){var e=[],n=e.constructor={};return n[a]=function(){return{foo:1}},1!==e[t](Boolean).foo})}},function(t,e,n){var r=n(9),o=n(11),i=Function.prototype,a=r&&Object.getOwnPropertyDescriptor,c=o(i,"name"),s=c&&"something"===function(){}.name,u=c&&(!r||r&&a(i,"name").configurable);t.exports={EXISTS:c,PROPER:s,CONFIGURABLE:u}},function(t,e,n){var r=n(4),o=n(3),i=function(t){return o(t)?t:void 0};t.exports=function(t,e){return arguments.length<2?i(r[t]):r[t]&&r[t][e]}},function(t,e,n){var r=n(18);t.exports=Array.isArray||function(t){return"Array"==r(t)}},function(t,e,n){var r,o=n(8),i=n(165),a=n(50),c=n(52),s=n(154),u=n(94),f=n(61),l=f("IE_PROTO"),p=function(){},d=function(t){return"<script>"+t+"<\/script>"},v=function(t){t.write(d("")),t.close();var e=t.parentWindow.Object;return t=null,e},h=function(){var t,e=u("iframe");return e.style.display="none",s.appendChild(e),e.src=String("javascript:"),t=e.contentWindow.document,t.open(),t.write(d("document.F=Object")),t.close(),t.F},m=function(){try{r=new ActiveXObject("htmlfile")}catch(t){}m="undefined"!=typeof document?document.domain&&r?v(r):h():v(r);for(var t=a.length;t--;)delete m.prototype[a[t]];return m()};c[l]=!0,t.exports=Object.create||function(t,e){var n;return null!==t?(p.prototype=o(t),n=new p,p.prototype=null,n[l]=t):n=m(),void 0===e?n:i.f(n,e)}},function(t,e,n){var r=n(53),o=n(19);t.exports=function(t){return r(o(t))}},function(t,e,n){"use strict";var r=n(2),o=n(0),i=n(24),a=n(12),c=n(16),s=n(14),u=n(35),f=n(34),l=n(48),p=n(21),d=n(5),v=n(36),h=d("isConcatSpreadable"),m=v>=51||!o(function(){var t=[];return t[h]=!1,t.concat()[0]!==t}),g=p("concat"),y=function(t){if(!a(t))return!1;var e=t[h];return void 0!==e?!!e:i(t)};r({target:"Array",proto:!0,arity:1,forced:!m||!g},{concat:function(t){var e,n,r,o,i,a=c(this),p=l(a,0),d=0;for(e=-1,r=arguments.length;e<r;e++)if(i=-1===e?a:arguments[e],y(i))for(o=s(i),u(d+o),n=0;n<o;n++,d++)n in i&&f(p,d,i[n]);else u(d+1),f(p,d++,i);return p.length=d,p}})},function(t,e,n){"use strict";var r=n(2),o=n(16),i=n(14),a=n(47),c=n(35),s=n(0),u=s(function(){return 4294967297!==[].push.call({length:4294967296},1)}),f=!function(){try{Object.defineProperty([],"length",{writable:!1}).push()}catch(t){return t instanceof TypeError}}();r({target:"Array",proto:!0,arity:1,forced:u||f},{push:function(t){var e=o(this),n=i(e),r=arguments.length;c(n+r);for(var s=0;s<r;s++)e[n]=arguments[s],n++;return a(e,n),n}})},function(t,e,n){var r=n(3),o=n(67),i=TypeError;t.exports=function(t){if(r(t))return t;throw i(o(t)+" is not a function")}},function(t,e,n){var r=n(96),o=n(1),i=n(53),a=n(16),c=n(14),s=n(48),u=o([].push),f=function(t){var e=1==t,n=2==t,o=3==t,f=4==t,l=6==t,p=7==t,d=5==t||l;return function(v,h,m,g){for(var y,b,_=a(v),w=i(_),x=r(h,m),S=c(w),O=0,$=g||s,k=e?$(v,S):n||p?$(v,0):void 0;S>O;O++)if((d||O in w)&&(y=w[O],b=x(y,O,_),t))if(e)k[O]=b;else if(b)switch(t){case 3:return!0;case 5:return y;case 6:return O;case 2:u(k,y)}else switch(t){case 4:return!1;case 7:u(k,y)}return l?-1:o||f?f:k}};t.exports={forEach:f(0),map:f(1),filter:f(2),some:f(3),every:f(4),find:f(5),findIndex:f(6),filterReject:f(7)}},function(t,e,n){var r=n(66),o=n(3),i=n(18),a=n(5),c=a("toStringTag"),s=Object,u="Arguments"==i(function(){return arguments}()),f=function(t,e){try{return t[e]}catch(t){}};t.exports=r?i:function(t){var e,n,r;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=f(e=s(t),c))?n:u?i(e):"Object"==(r=i(e))&&o(e.callee)?"Arguments":r}},function(t,e,n){var r=n(9),o=n(15),i=n(33);t.exports=r?function(t,e,n){return o.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,n){"use strict";var r=n(65),o=n(15),i=n(33);t.exports=function(t,e,n){var a=r(e);a in t?o.f(t,a,i(0,n)):t[a]=n}},function(t,e){var n=TypeError;t.exports=function(t){if(t>9007199254740991)throw n("Maximum allowed index exceeded");return t}},function(t,e,n){var r,o,i=n(4),a=n(95),c=i.process,s=i.Deno,u=c&&c.versions||s&&s.version,f=u&&u.v8;f&&(r=f.split("."),o=r[0]>0&&r[0]<4?1:+(r[0]+r[1])),!o&&a&&(!(r=a.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=a.match(/Chrome\/(\d+)/))&&(o=+r[1]),t.exports=o},function(t,e,n){var r=n(0);t.exports=!r(function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")})},function(t,e,n){var r=n(29),o=n(39);t.exports=function(t,e){var n=t[e];return o(n)?void 0:r(n)}},function(t,e){t.exports=function(t){return null===t||void 0===t}},function(t,e){t.exports={}},function(t,e,n){var r=n(162);t.exports=function(t){var e=+t;return e!==e||0===e?0:r(e)}},function(t,e,n){"use strict";var r=n(2),o=n(60);r({target:"RegExp",proto:!0,forced:/./.exec!==o},{exec:o})},function(t,e,n){n(192),n(193)},function(t,e,n){"use strict";function r(t){"@babel/helpers - typeof";return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}e.a=r},function(t,e,n){var r=n(26),o=n(64),i=n(14),a=function(t){return function(e,n,a){var c,s=r(e),u=i(s),f=o(a,u);if(t&&n!=n){for(;u>f;)if((c=s[f++])!=c)return!0}else for(;u>f;f++)if((t||f in s)&&s[f]===n)return t||f||0;return!t&&-1}};t.exports={includes:a(!0),indexOf:a(!1)}},function(t,e,n){"use strict";var r=n(0);t.exports=function(t,e){var n=[][t];return!!n&&r(function(){n.call(null,e||function(){return 1},1)})}},function(t,e,n){"use strict";var r=n(9),o=n(24),i=TypeError,a=Object.getOwnPropertyDescriptor,c=r&&!function(){if(void 0!==this)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(t){return t instanceof TypeError}}();t.exports=c?function(t,e){if(o(t)&&!a(t,"length").writable)throw i("Cannot set read only .length");return t.length=e}:function(t,e){return t.length=e}},function(t,e,n){var r=n(142);t.exports=function(t,e){return new(r(t))(0===e?0:e)}},function(t,e,n){var r=n(4),o=Object.defineProperty;t.exports=function(t,e){try{o(r,t,{value:e,configurable:!0,writable:!0})}catch(n){r[t]=e}return e}},function(t,e){t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},function(t,e,n){var r=n(18),o=n(1);t.exports=function(t){if("Function"===r(t))return o(t)}},function(t,e){t.exports={}},function(t,e,n){var r=n(1),o=n(0),i=n(18),a=Object,c=r("".split);t.exports=o(function(){return!a("z").propertyIsEnumerable(0)})?function(t){return"String"==i(t)?c(t,""):a(t)}:a},function(t,e,n){var r,o,i,a=n(183),c=n(4),s=n(12),u=n(32),f=n(11),l=n(62),p=n(61),d=n(52),v=c.TypeError,h=c.WeakMap,m=function(t){return i(t)?o(t):r(t,{})},g=function(t){return function(e){var n;if(!s(e)||(n=o(e)).type!==t)throw v("Incompatible receiver, "+t+" required");return n}};if(a||l.state){var y=l.state||(l.state=new h);y.get=y.get,y.has=y.has,y.set=y.set,r=function(t,e){if(y.has(t))throw v("Object already initialized");return e.facade=t,y.set(t,e),e},o=function(t){return y.get(t)||{}},i=function(t){return y.has(t)}}else{var b=p("state");d[b]=!0,r=function(t,e){if(f(t,b))throw v("Object already initialized");return e.facade=t,u(t,b,e),e},o=function(t){return f(t,b)?t[b]:{}},i=function(t){return f(t,b)}}t.exports={set:r,get:o,has:i,enforce:m,getterFor:g}},function(t,e,n){var r=n(1),o=n(0),i=n(3),a=n(31),c=n(23),s=n(99),u=function(){},f=[],l=c("Reflect","construct"),p=/^\s*(?:class|function)\b/,d=r(p.exec),v=!p.exec(u),h=function(t){if(!i(t))return!1;try{return l(u,f,t),!0}catch(t){return!1}},m=function(t){if(!i(t))return!1;switch(a(t)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return v||!!d(p,s(t))}catch(t){return!0}};m.sham=!0,t.exports=!l||o(function(){var t;return h(h.call)||!h(Object)||!h(function(){t=!0})||t})?m:h},function(t,e){t.exports=!1},function(t,e,n){var r=n(23),o=n(3),i=n(59),a=n(113),c=Object;t.exports=a?function(t){return"symbol"==typeof t}:function(t){var e=r("Symbol");return o(e)&&i(e.prototype,c(t))}},function(t,e,n){var r=n(9),o=n(10),i=n(168),a=n(33),c=n(26),s=n(65),u=n(11),f=n(98),l=Object.getOwnPropertyDescriptor;e.f=r?l:function(t,e){if(t=c(t),e=s(e),f)try{return l(t,e)}catch(t){}if(u(t,e))return a(!o(i.f,t,e),t[e])}},function(t,e,n){var r=n(1);t.exports=r({}.isPrototypeOf)},function(t,e,n){"use strict";var r=n(10),o=n(1),i=n(17),a=n(106),c=n(174),s=n(63),u=n(25),f=n(54).get,l=n(175),p=n(176),d=s("native-string-replace",String.prototype.replace),v=RegExp.prototype.exec,h=v,m=o("".charAt),g=o("".indexOf),y=o("".replace),b=o("".slice),_=function(){var t=/a/,e=/b*/g;return r(v,t,"a"),r(v,e,"a"),0!==t.lastIndex||0!==e.lastIndex}(),w=c.BROKEN_CARET,x=void 0!==/()??/.exec("")[1];(_||x||w||l||p)&&(h=function(t){var e,n,o,c,s,l,p,S=this,O=f(S),$=i(t),k=O.raw;if(k)return k.lastIndex=S.lastIndex,e=r(h,k,$),S.lastIndex=k.lastIndex,e;var C=O.groups,T=w&&S.sticky,j=r(a,S),A=S.source,E=0,M=$;if(T&&(j=y(j,"y",""),-1===g(j,"g")&&(j+="g"),M=b($,S.lastIndex),S.lastIndex>0&&(!S.multiline||S.multiline&&"\n"!==m($,S.lastIndex-1))&&(A="(?: "+A+")",M=" "+M,E++),n=new RegExp("^(?:"+A+")",j)),x&&(n=new RegExp("^"+A+"$(?!\\s)",j)),_&&(o=S.lastIndex),c=r(v,T?n:S,M),T?c?(c.input=b(c.input,E),c[0]=b(c[0],E),c.index=S.lastIndex,S.lastIndex+=c[0].length):S.lastIndex=0:_&&c&&(S.lastIndex=S.global?c.index+c[0].length:o),x&&c&&c.length>1&&r(d,c[0],n,function(){for(s=1;s<arguments.length-2;s++)void 0===arguments[s]&&(c[s]=void 0)}),c&&C)for(c.groups=l=u(null),s=0;s<C.length;s++)p=C[s],l[p[0]]=c[p[1]];return c}),t.exports=h},function(t,e,n){var r=n(63),o=n(112),i=r("keys");t.exports=function(t){return i[t]||(i[t]=o(t))}},function(t,e,n){var r=n(4),o=n(49),i=r["__core-js_shared__"]||o("__core-js_shared__",{});t.exports=i},function(t,e,n){var r=n(56),o=n(62);(t.exports=function(t,e){return o[t]||(o[t]=void 0!==e?e:{})})("versions",[]).push({version:"3.26.1",mode:r?"pure":"global",copyright:"© 2014-2022 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.26.1/LICENSE",source:"https://github.com/zloirock/core-js"})},function(t,e,n){var r=n(41),o=Math.max,i=Math.min;t.exports=function(t,e){var n=r(t);return n<0?o(n+e,0):i(n,e)}},function(t,e,n){var r=n(111),o=n(57);t.exports=function(t){var e=r(t,"string");return o(e)?e:e+""}},function(t,e,n){var r=n(5),o=r("toStringTag"),i={};i[o]="z",t.exports="[object z]"===String(i)},function(t,e){var n=String;t.exports=function(t){try{return n(t)}catch(t){return"Object"}}},function(t,e,n){"use strict";var r=n(9),o=n(4),i=n(1),a=n(100),c=n(13),s=n(11),u=n(155),f=n(59),l=n(57),p=n(111),d=n(0),v=n(102).f,h=n(58).f,m=n(15).f,g=n(180),y=n(109).trim,b=o.Number,_=b.prototype,w=o.TypeError,x=i("".slice),S=i("".charCodeAt),O=function(t){var e=p(t,"number");return"bigint"==typeof e?e:$(e)},$=function(t){var e,n,r,o,i,a,c,s,u=p(t,"number");if(l(u))throw w("Cannot convert a Symbol value to a number");if("string"==typeof u&&u.length>2)if(u=y(u),43===(e=S(u,0))||45===e){if(88===(n=S(u,2))||120===n)return NaN}else if(48===e){switch(S(u,1)){case 66:case 98:r=2,o=49;break;case 79:case 111:r=8,o=55;break;default:return+u}for(i=x(u,2),a=i.length,c=0;c<a;c++)if((s=S(i,c))<48||s>o)return NaN;return parseInt(i,r)}return+u};if(a("Number",!b(" 0o1")||!b("0b1")||b("+0x1"))){for(var k,C=function(t){var e=arguments.length<1?0:b(O(t)),n=this;return f(_,n)&&d(function(){g(n)})?u(Object(e),n,C):e},T=r?v(b):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,fromString,range".split(","),j=0;T.length>j;j++)s(b,k=T[j])&&!s(C,k)&&m(C,k,h(b,k));C.prototype=_,_.constructor=C,c(o,"Number",C,{constructor:!0})}},function(t,e,n){var r=n(66),o=n(13),i=n(169);r||o(Object.prototype,"toString",i,{unsafe:!0})},function(t,e,n){"use strict";var r=n(10),o=n(151),i=n(8),a=n(39),c=n(19),s=n(177),u=n(17),f=n(38),l=n(172);o("search",function(t,e,n){return[function(e){var n=c(this),o=a(e)?void 0:f(e,t);return o?r(o,e,n):new RegExp(e)[t](u(n))},function(t){var r=i(this),o=u(t),a=n(e,r,o);if(a.done)return a.value;var c=r.lastIndex;s(c,0)||(r.lastIndex=0);var f=l(r,o);return s(r.lastIndex,c)||(r.lastIndex=c),null===f?-1:f.index}]})},function(t,e,n){"use strict";function r(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)}return n}function o(t){for(var e=1;e<arguments.length;e++){var o=null!=arguments[e]?arguments[e]:{};e%2?r(Object(o),!0).forEach(function(e){n.i(i.a)(t,e,o[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(o)):r(Object(o)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(o,e))})}return t}e.a=o;var i=n(74)},function(t,e,n){"use strict";var r=n(2),o=n(30).map;r({target:"Array",proto:!0,forced:!n(21)("map")},{map:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},function(t,e,n){(function(e,n){/*! - * Vue.js v2.7.14 - * (c) 2014-2022 Evan You - * Released under the MIT License. - */ -!function(e,n){t.exports=n()}(0,function(){"use strict";function t(t){return void 0===t||null===t}function r(t){return void 0!==t&&null!==t}function o(t){return!0===t}function i(t){return!1===t}function a(t){return"string"==typeof t||"number"==typeof t||"symbol"==typeof t||"boolean"==typeof t}function c(t){return"function"==typeof t}function s(t){return null!==t&&"object"==typeof t}function u(t){return nc.call(t).slice(8,-1)}function f(t){return"[object Object]"===nc.call(t)}function l(t){return"[object RegExp]"===nc.call(t)}function p(t){var e=parseFloat(String(t));return e>=0&&Math.floor(e)===e&&isFinite(t)}function d(t){return r(t)&&"function"==typeof t.then&&"function"==typeof t.catch}function v(t){return null==t?"":Array.isArray(t)||f(t)&&t.toString===nc?JSON.stringify(t,null,2):String(t)}function h(t){var e=parseFloat(t);return isNaN(e)?t:e}function m(t,e){for(var n=Object.create(null),r=t.split(","),o=0;o<r.length;o++)n[r[o]]=!0;return e?function(t){return n[t.toLowerCase()]}:function(t){return n[t]}}function g(t,e){var n=t.length;if(n){if(e===t[n-1])return void(t.length=n-1);var r=t.indexOf(e);if(r>-1)return t.splice(r,1)}}function y(t,e){return ic.call(t,e)}function b(t){var e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}function _(t,e){function n(n){var r=arguments.length;return r?r>1?t.apply(e,arguments):t.call(e,n):t.call(e)}return n._length=t.length,n}function w(t,e){return t.bind(e)}function x(t,e){e=e||0;for(var n=t.length-e,r=new Array(n);n--;)r[n]=t[n+e];return r}function S(t,e){for(var n in e)t[n]=e[n];return t}function O(t){for(var e={},n=0;n<t.length;n++)t[n]&&S(e,t[n]);return e}function $(t,e,n){}function k(t,e){if(t===e)return!0;var n=s(t),r=s(e);if(!n||!r)return!n&&!r&&String(t)===String(e);try{var o=Array.isArray(t),i=Array.isArray(e);if(o&&i)return t.length===e.length&&t.every(function(t,n){return k(t,e[n])});if(t instanceof Date&&e instanceof Date)return t.getTime()===e.getTime();if(o||i)return!1;var a=Object.keys(t),c=Object.keys(e);return a.length===c.length&&a.every(function(n){return k(t[n],e[n])})}catch(t){return!1}}function C(t,e){for(var n=0;n<t.length;n++)if(k(t[n],e))return n;return-1}function T(t){var e=!1;return function(){e||(e=!0,t.apply(this,arguments))}}function j(t,e){return t===e?0===t&&1/t!=1/e:t===t||e===e}function A(t){var e=(t+"").charCodeAt(0);return 36===e||95===e}function E(t,e,n,r){Object.defineProperty(t,e,{value:n,enumerable:!!r,writable:!0,configurable:!0})}function M(t){if(!bc.test(t)){var e=t.split(".");return function(t){for(var n=0;n<e.length;n++){if(!t)return;t=t[e[n]]}return t}}}function I(t){return"function"==typeof t&&/native code/.test(t.toString())}function P(){return Dc&&{proxy:Dc}}function N(t){void 0===t&&(t=null),t||Dc&&Dc._scope.off(),Dc=t,t&&t._scope.on()}function R(t){return new Lc(void 0,void 0,void 0,String(t))}function D(t){var e=new Lc(t.tag,t.data,t.children&&t.children.slice(),t.text,t.elm,t.context,t.componentOptions,t.asyncFactory);return e.ns=t.ns,e.isStatic=t.isStatic,e.key=t.key,e.isComment=t.isComment,e.fnContext=t.fnContext,e.fnOptions=t.fnOptions,e.fnScopeId=t.fnScopeId,e.asyncMeta=t.asyncMeta,e.isCloned=!0,e}function L(t){Zc.push(t),Xc.target=t}function F(){Zc.pop(),Xc.target=Zc[Zc.length-1]}function U(t){is=t}function V(t,e,n){return t&&y(t,"__ob__")&&t.__ob__ instanceof cs?t.__ob__:!is||!n&&Ic()||!ec(t)&&!f(t)||!Object.isExtensible(t)||t.__v_skip||nt(t)||t instanceof Lc?void 0:new cs(t,e,n)}function H(t,e,n,r,o,i){var a=new Xc,c=Object.getOwnPropertyDescriptor(t,e);if(!c||!1!==c.configurable){var s=c&&c.get,u=c&&c.set;s&&!u||n!==os&&2!==arguments.length||(n=t[e]);var f=!o&&V(n,!1,i);return Object.defineProperty(t,e,{enumerable:!0,configurable:!0,get:function(){var r=s?s.call(t):n;return Xc.target&&(a.depend({target:t,type:"get",key:e}),f&&(f.dep.depend(),ec(r)&&G(r))),nt(r)&&!o?r.value:r},set:function(c){var l=s?s.call(t):n;if(j(l,c)){if(r&&r(),u)u.call(t,c);else{if(s)return;if(!o&&nt(l)&&!nt(c))return void(l.value=c);n=c}f=!o&&V(c,!1,i),a.notify({type:"set",target:t,key:e,newValue:c,oldValue:l})}}}),a}}function B(e,n,r){if((t(e)||a(e))&&hu("Cannot set reactive property on undefined, null, or primitive value: ".concat(e)),X(e))return void hu('Set operation on key "'.concat(n,'" failed: target is readonly.'));var o=e.__ob__;return ec(e)&&p(n)?(e.length=Math.max(e.length,n),e.splice(n,1,r),o&&!o.shallow&&o.mock&&V(r,!1,!0),r):n in e&&!(n in Object.prototype)?(e[n]=r,r):e._isVue||o&&o.vmCount?(hu("Avoid adding reactive properties to a Vue instance or its root $data at runtime - declare it upfront in the data option."),r):o?(H(o.value,n,r,void 0,o.shallow,o.mock),o.dep.notify({type:"add",target:e,key:n,newValue:r,oldValue:void 0}),r):(e[n]=r,r)}function z(e,n){if((t(e)||a(e))&&hu("Cannot delete reactive property on undefined, null, or primitive value: ".concat(e)),ec(e)&&p(n))return void e.splice(n,1);var r=e.__ob__;return e._isVue||r&&r.vmCount?void hu("Avoid deleting properties on a Vue instance or its root $data - just set it to null."):X(e)?void hu('Delete operation on key "'.concat(n,'" failed: target is readonly.')):void(y(e,n)&&(delete e[n],r&&r.dep.notify({type:"delete",target:e,key:n})))}function G(t){for(var e=void 0,n=0,r=t.length;n<r;n++)e=t[n],e&&e.__ob__&&e.__ob__.dep.depend(),ec(e)&&G(e)}function K(t){return J(t,!1),t}function q(t){return J(t,!0),E(t,"__v_isShallow",!0),t}function J(t,e){if(!X(t)){ec(t)&&hu("Avoid using Array as root value for ".concat(e?"shallowReactive()":"reactive()"," as it cannot be tracked in watch() or watchEffect(). Use ").concat(e?"shallowRef()":"ref()"," instead. This is a Vue-2-only limitation."));var n=t&&t.__ob__;n&&n.shallow!==e&&hu("Target is already a ".concat(n.shallow?"":"non-","shallow reactive object, and cannot be converted to ").concat(e?"":"non-","shallow."));V(t,e,Ic())||((null==t||a(t))&&hu("value cannot be made reactive: ".concat(String(t))),et(t)&&hu("Vue 2 does not support reactive collection types such as Map or Set."))}}function W(t){return X(t)?W(t.__v_raw):!(!t||!t.__ob__)}function Y(t){return!(!t||!t.__v_isShallow)}function X(t){return!(!t||!t.__v_isReadonly)}function Z(t){return W(t)||X(t)}function Q(t){var e=t&&t.__v_raw;return e?Q(e):t}function tt(t){return Object.isExtensible(t)&&E(t,"__v_skip",!0),t}function et(t){var e=u(t);return"Map"===e||"WeakMap"===e||"Set"===e||"WeakSet"===e}function nt(t){return!(!t||!0!==t.__v_isRef)}function rt(t){return it(t,!1)}function ot(t){return it(t,!0)}function it(t,e){if(nt(t))return t;var n={};return E(n,ss,!0),E(n,"__v_isShallow",e),E(n,"dep",H(n,"value",t,null,e,Ic())),n}function at(t){t.dep||hu("received object is not a triggerable ref."),t.dep&&t.dep.notify({type:"set",target:t,key:"value"})}function ct(t){return nt(t)?t.value:t}function st(t){if(W(t))return t;for(var e={},n=Object.keys(t),r=0;r<n.length;r++)ut(e,t,n[r]);return e}function ut(t,e,n){Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:function(){var t=e[n];if(nt(t))return t.value;var r=t&&t.__ob__;return r&&r.dep.depend(),t},set:function(t){var r=e[n];nt(r)&&!nt(t)?r.value=t:e[n]=t}})}function ft(t){var e=new Xc,n=t(function(){e.depend({target:i,type:"get",key:"value"})},function(){e.notify({target:i,type:"set",key:"value"})}),r=n.get,o=n.set,i={get value(){return r()},set value(t){o(t)}};return E(i,ss,!0),i}function lt(t){W(t)||hu("toRefs() expects a reactive object but received a plain one.");var e=ec(t)?new Array(t.length):{};for(var n in t)e[n]=pt(t,n);return e}function pt(t,e,n){var r=t[e];if(nt(r))return r;var o={get value(){var r=t[e];return void 0===r?n:r},set value(n){t[e]=n}};return E(o,ss,!0),o}function dt(t){return vt(t,!1)}function vt(t,e){if(!f(t))return hu(ec(t)?"Vue 2 does not support readonly arrays.":et(t)?"Vue 2 does not support readonly collection types such as Map or Set.":"value cannot be made readonly: ".concat(typeof t)),t;if(Object.isExtensible(t)||hu("Vue 2 does not support creating readonly proxy for non-extensible object."),X(t))return t;var n=e?fs:us,r=t[n];if(r)return r;var o=Object.create(Object.getPrototypeOf(t));E(t,n,o),E(o,"__v_isReadonly",!0),E(o,"__v_raw",t),nt(t)&&E(o,ss,!0),(e||Y(t))&&E(o,"__v_isShallow",!0);for(var i=Object.keys(t),a=0;a<i.length;a++)ht(o,t,i[a],e);return o}function ht(t,e,n,r){Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:function(){var t=e[n];return r||!f(t)?t:dt(t)},set:function(){hu('Set operation on key "'.concat(n,'" failed: target is readonly.'))}})}function mt(t){return vt(t,!0)}function gt(t,e){var n,r,o=c(t);o?(n=t,r=function(){hu("Write operation failed: computed value is readonly")}):(n=t.get,r=t.set);var i=Ic()?null:new cu(Dc,n,$,{lazy:!0});i&&e&&(i.onTrack=e.onTrack,i.onTrigger=e.onTrigger);var a={effect:i,get value(){return i?(i.dirty&&i.evaluate(),Xc.target&&(Xc.target.onTrack&&Xc.target.onTrack({effect:Xc.target,target:a,type:"get",key:"value"}),i.depend()),i.value):n()},set value(t){r(t)}};return E(a,ss,!0),E(a,"__v_isReadonly",o),a}function yt(t,e){function n(){var t=n.fns;if(!ec(t))return qe(t,null,arguments,e,"v-on handler");for(var r=t.slice(),o=0;o<r.length;o++)qe(r[o],null,arguments,e,"v-on handler")}return n.fns=t,n}function bt(e,n,r,i,a,c){var s,u,f,l;for(s in e)u=e[s],f=n[s],l=ds(s),t(u)?hu('Invalid handler for event "'.concat(l.name,'": got ')+String(u),c):t(f)?(t(u.fns)&&(u=e[s]=yt(u,c)),o(l.once)&&(u=e[s]=a(l.name,u,l.capture)),r(l.name,u,l.capture,l.passive,l.params)):u!==f&&(f.fns=u,e[s]=f);for(s in n)t(e[s])&&(l=ds(s),i(l.name,n[s],l.capture))}function _t(e,n,i){function a(){i.apply(this,arguments),g(c.fns,a)}e instanceof Lc&&(e=e.data.hook||(e.data.hook={}));var c,s=e[n];t(s)?c=yt([a]):r(s.fns)&&o(s.merged)?(c=s,c.fns.push(a)):c=yt([s,a]),c.merged=!0,e[n]=c}function wt(e,n,o){var i=n.options.props;if(!t(i)){var a={},c=e.attrs,s=e.props;if(r(c)||r(s))for(var u in i){var f=fc(u),l=u.toLowerCase();u!==l&&c&&y(c,l)&&mu('Prop "'.concat(l,'" is passed to component ')+"".concat(pu(o||n),", but the declared prop name is")+' "'.concat(u,'". ')+"Note that HTML attributes are case-insensitive and camelCased props need to use their kebab-case equivalents when using in-DOM "+'templates. You should probably use "'.concat(f,'" instead of "').concat(u,'".')),xt(a,s,u,f,!0)||xt(a,c,u,f,!1)}return a}}function xt(t,e,n,o,i){if(r(e)){if(y(e,n))return t[n]=e[n],i||delete e[n],!0;if(y(e,o))return t[n]=e[o],i||delete e[o],!0}return!1}function St(t){for(var e=0;e<t.length;e++)if(ec(t[e]))return Array.prototype.concat.apply([],t);return t}function Ot(t){return a(t)?[R(t)]:ec(t)?kt(t):void 0}function $t(t){return r(t)&&r(t.text)&&i(t.isComment)}function kt(e,n){var i,c,s,u,f=[];for(i=0;i<e.length;i++)c=e[i],t(c)||"boolean"==typeof c||(s=f.length-1,u=f[s],ec(c)?c.length>0&&(c=kt(c,"".concat(n||"","_").concat(i)),$t(c[0])&&$t(u)&&(f[s]=R(u.text+c[0].text),c.shift()),f.push.apply(f,c)):a(c)?$t(u)?f[s]=R(u.text+c):""!==c&&f.push(R(c)):$t(c)&&$t(u)?f[s]=R(u.text+c.text):(o(e._isVList)&&r(c.tag)&&t(c.key)&&r(n)&&(c.key="__vlist".concat(n,"_").concat(i,"__")),f.push(c)));return f}function Ct(t,e,n,r,i,c){return(ec(n)||a(n))&&(i=r,r=n,n=void 0),o(c)&&(i=hs),Tt(t,e,n,r,i)}function Tt(t,e,n,o,i){if(r(n)&&r(n.__ob__))return hu("Avoid using observed data object as vnode data: ".concat(JSON.stringify(n),"\n")+"Always create fresh vnode data objects in each render!",t),Fc();if(r(n)&&r(n.is)&&(e=n.is),!e)return Fc();r(n)&&r(n.key)&&!a(n.key)&&hu("Avoid using non-primitive value as key, use string/number value instead.",t),ec(o)&&c(o[0])&&(n=n||{},n.scopedSlots={default:o[0]},o.length=0),i===hs?o=Ot(o):i===vs&&(o=St(o));var s,u;if("string"==typeof e){var f=void 0;u=t.$vnode&&t.$vnode.ns||gc.getTagNamespace(e),gc.isReservedTag(e)?(r(n)&&r(n.nativeOn)&&"component"!==n.tag&&hu("The .native modifier for v-on is only valid on components but it was used on <".concat(e,">."),t),s=new Lc(gc.parsePlatformTagName(e),n,o,void 0,void 0,t)):s=n&&n.pre||!r(f=Wn(t.$options,"components",e))?new Lc(e,n,o,void 0,void 0,t):Mn(f,n,t,o,e)}else s=Mn(e,n,t,o);return ec(s)?s:r(s)?(r(u)&&jt(s,u),r(n)&&At(n),s):Fc()}function jt(e,n,i){if(e.ns=n,"foreignObject"===e.tag&&(n=void 0,i=!0),r(e.children))for(var a=0,c=e.children.length;a<c;a++){var s=e.children[a];r(s.tag)&&(t(s.ns)||o(i)&&"svg"!==s.tag)&&jt(s,n,i)}}function At(t){s(t.style)&&cn(t.style),s(t.class)&&cn(t.class)}function Et(t,e){var n,o,i,a,c=null;if(ec(t)||"string"==typeof t)for(c=new Array(t.length),n=0,o=t.length;n<o;n++)c[n]=e(t[n],n);else if("number"==typeof t)for(c=new Array(t),n=0;n<t;n++)c[n]=e(n+1,n);else if(s(t))if(Nc&&t[Symbol.iterator]){c=[];for(var u=t[Symbol.iterator](),f=u.next();!f.done;)c.push(e(f.value,c.length)),f=u.next()}else for(i=Object.keys(t),c=new Array(i.length),n=0,o=i.length;n<o;n++)a=i[n],c[n]=e(t[a],a,n);return r(c)||(c=[]),c._isVList=!0,c}function Mt(t,e,n,r){var o,i=this.$scopedSlots[t];i?(n=n||{},r&&(s(r)||hu("slot v-bind without argument expects an Object",this),n=S(S({},r),n)),o=i(n)||(c(e)?e():e)):o=this.$slots[t]||(c(e)?e():e);var a=n&&n.slot;return a?this.$createElement("template",{slot:a},o):o}function It(t){return Wn(this.$options,"filters",t,!0)||dc}function Pt(t,e){return ec(t)?-1===t.indexOf(e):t!==e}function Nt(t,e,n,r,o){var i=gc.keyCodes[e]||n;return o&&r&&!gc.keyCodes[e]?Pt(o,r):i?Pt(i,t):r?fc(r)!==e:void 0===t}function Rt(t,e,n,r,o){if(n)if(s(n)){ec(n)&&(n=O(n));var i=void 0;for(var a in n)!function(a){if("class"===a||"style"===a||oc(a))i=t;else{var c=t.attrs&&t.attrs.type;i=r||gc.mustUseProp(e,c,a)?t.domProps||(t.domProps={}):t.attrs||(t.attrs={})}var s=cc(a),u=fc(a);if(!(s in i||u in i)&&(i[a]=n[a],o)){(t.on||(t.on={}))["update:".concat(a)]=function(t){n[a]=t}}}(a)}else hu("v-bind without argument expects an Object or Array value",this);return t}function Dt(t,e){var n=this._staticTrees||(this._staticTrees=[]),r=n[t];return r&&!e?r:(r=n[t]=this.$options.staticRenderFns[t].call(this._renderProxy,this._c,this),Ft(r,"__static__".concat(t),!1),r)}function Lt(t,e,n){return Ft(t,"__once__".concat(e).concat(n?"_".concat(n):""),!0),t}function Ft(t,e,n){if(ec(t))for(var r=0;r<t.length;r++)t[r]&&"string"!=typeof t[r]&&Ut(t[r],"".concat(e,"_").concat(r),n);else Ut(t,e,n)}function Ut(t,e,n){t.isStatic=!0,t.key=e,t.isOnce=n}function Vt(t,e){if(e)if(f(e)){var n=t.on=t.on?S({},t.on):{};for(var r in e){var o=n[r],i=e[r];n[r]=o?[].concat(o,i):i}}else hu("v-on without argument expects an Object value",this);return t}function Ht(t,e,n,r){e=e||{$stable:!n};for(var o=0;o<t.length;o++){var i=t[o];ec(i)?Ht(i,e,n):i&&(i.proxy&&(i.fn.proxy=!0),e[i.key]=i.fn)}return r&&(e.$key=r),e}function Bt(t,e){for(var n=0;n<e.length;n+=2){var r=e[n];"string"==typeof r&&r?t[e[n]]=e[n+1]:""!==r&&null!==r&&hu("Invalid value for dynamic directive argument (expected string or null): ".concat(r),this)}return t}function zt(t,e){return"string"==typeof t?e+t:t}function Gt(t){t._o=Lt,t._n=h,t._s=v,t._l=Et,t._t=Mt,t._q=k,t._i=C,t._m=Dt,t._f=It,t._k=Nt,t._b=Rt,t._v=R,t._e=Fc,t._u=Ht,t._g=Vt,t._d=Bt,t._p=zt}function Kt(t,e){if(!t||!t.length)return{};for(var n={},r=0,o=t.length;r<o;r++){var i=t[r],a=i.data;if(a&&a.attrs&&a.attrs.slot&&delete a.attrs.slot,i.context!==e&&i.fnContext!==e||!a||null==a.slot)(n.default||(n.default=[])).push(i);else{var c=a.slot,s=n[c]||(n[c]=[]);"template"===i.tag?s.push.apply(s,i.children||[]):s.push(i)}}for(var u in n)n[u].every(qt)&&delete n[u];return n}function qt(t){return t.isComment&&!t.asyncFactory||" "===t.text}function Jt(t){return t.isComment&&t.asyncFactory}function Wt(t,e,n,r){var o,i=Object.keys(n).length>0,a=e?!!e.$stable:!i,c=e&&e.$key;if(e){if(e._normalized)return e._normalized;if(a&&r&&r!==tc&&c===r.$key&&!i&&!r.$hasNormal)return r;o={};for(var s in e)e[s]&&"$"!==s[0]&&(o[s]=Yt(t,n,s,e[s]))}else o={};for(var u in n)u in o||(o[u]=Xt(n,u));return e&&Object.isExtensible(e)&&(e._normalized=o),E(o,"$stable",a),E(o,"$key",c),E(o,"$hasNormal",i),o}function Yt(t,e,n,r){var o=function(){var e=Dc;N(t);var n=arguments.length?r.apply(null,arguments):r({});n=n&&"object"==typeof n&&!ec(n)?[n]:Ot(n);var o=n&&n[0];return N(e),n&&(!o||1===n.length&&o.isComment&&!Jt(o))?void 0:n};return r.proxy&&Object.defineProperty(e,n,{get:o,enumerable:!0,configurable:!0}),o}function Xt(t,e){return function(){return t[e]}}function Zt(t){var e=t.$options,n=e.setup;if(n){var r=t._setupContext=Qt(t);N(t),L();var o=qe(n,null,[t._props||q({}),r],t,"setup");if(F(),N(),c(o))e.render=o;else if(s(o))if(o instanceof Lc&&hu("setup() should not return VNodes directly - return a render function instead."),t._setupState=o,o.__sfc){var i=t._setupProxy={};for(var a in o)"__sfc"!==a&&ut(i,o,a)}else for(var a in o)A(a)?hu("Avoid using variables that start with _ or $ in setup()."):ut(t,o,a);else void 0!==o&&hu("setup() should return an object. Received: ".concat(null===o?"null":typeof o))}}function Qt(t){var e=!1;return{get attrs(){if(!t._attrsProxy){var e=t._attrsProxy={};E(e,"_v_attr_proxy",!0),te(e,t.$attrs,tc,t,"$attrs")}return t._attrsProxy},get listeners(){if(!t._listenersProxy){te(t._listenersProxy={},t.$listeners,tc,t,"$listeners")}return t._listenersProxy},get slots(){return ne(t)},emit:lc(t.$emit,t),expose:function(n){e&&hu("expose() should be called only once per setup().",t),e=!0,n&&Object.keys(n).forEach(function(e){return ut(t,n,e)})}}}function te(t,e,n,r,o){var i=!1;for(var a in e)a in t?e[a]!==n[a]&&(i=!0):(i=!0,ee(t,a,r,o));for(var a in t)a in e||(i=!0,delete t[a]);return i}function ee(t,e,n,r){Object.defineProperty(t,e,{enumerable:!0,configurable:!0,get:function(){return n[r][e]}})}function ne(t){return t._slotsProxy||re(t._slotsProxy={},t.$scopedSlots),t._slotsProxy}function re(t,e){for(var n in e)t[n]=e[n];for(var n in t)n in e||delete t[n]}function oe(){return ce().slots}function ie(){return ce().attrs}function ae(){return ce().listeners}function ce(){Dc||hu("useContext() called without active instance.");var t=Dc;return t._setupContext||(t._setupContext=Qt(t))}function se(t,e){var n=ec(t)?t.reduce(function(t,e){return t[e]={},t},{}):t;for(var r in e){var o=n[r];o?ec(o)||c(o)?n[r]={type:o,default:e[r]}:o.default=e[r]:null===o?n[r]={default:e[r]}:hu('props default key "'.concat(r,'" has no corresponding declaration.'))}return n}function ue(t){t._vnode=null,t._staticTrees=null;var e=t.$options,n=t.$vnode=e._parentVnode,r=n&&n.context;t.$slots=Kt(e._renderChildren,r),t.$scopedSlots=n?Wt(t.$parent,n.data.scopedSlots,t.$slots):tc,t._c=function(e,n,r,o){return Ct(t,e,n,r,o,!1)},t.$createElement=function(e,n,r,o){return Ct(t,e,n,r,o,!0)};var o=n&&n.data;H(t,"$attrs",o&&o.attrs||tc,function(){!ys&&hu("$attrs is readonly.",t)},!0),H(t,"$listeners",e._parentListeners||tc,function(){!ys&&hu("$listeners is readonly.",t)},!0)}function fe(t,e){return(t.__esModule||Nc&&"Module"===t[Symbol.toStringTag])&&(t=t.default),s(t)?e.extend(t):t}function le(t,e,n,r,o){var i=Fc();return i.asyncFactory=t,i.asyncMeta={data:e,context:n,children:r,tag:o},i}function pe(e,n){if(o(e.error)&&r(e.errorComp))return e.errorComp;if(r(e.resolved))return e.resolved;var i=ms;if(i&&r(e.owners)&&-1===e.owners.indexOf(i)&&e.owners.push(i),o(e.loading)&&r(e.loadingComp))return e.loadingComp;if(i&&!r(e.owners)){var a=e.owners=[i],c=!0,u=null,f=null;i.$on("hook:destroyed",function(){return g(a,i)});var l=function(t){for(var e=0,n=a.length;e<n;e++)a[e].$forceUpdate();t&&(a.length=0,null!==u&&(clearTimeout(u),u=null),null!==f&&(clearTimeout(f),f=null))},p=T(function(t){e.resolved=fe(t,n),c?a.length=0:l(!0)}),v=T(function(t){hu("Failed to resolve async component: ".concat(String(e))+(t?"\nReason: ".concat(t):"")),r(e.errorComp)&&(e.error=!0,l(!0))}),h=e(p,v);return s(h)&&(d(h)?t(e.resolved)&&h.then(p,v):d(h.component)&&(h.component.then(p,v),r(h.error)&&(e.errorComp=fe(h.error,n)),r(h.loading)&&(e.loadingComp=fe(h.loading,n),0===h.delay?e.loading=!0:u=setTimeout(function(){u=null,t(e.resolved)&&t(e.error)&&(e.loading=!0,l(!1))},h.delay||200)),r(h.timeout)&&(f=setTimeout(function(){f=null,t(e.resolved)&&v("timeout (".concat(h.timeout,"ms)"))},h.timeout)))),c=!1,e.loading?e.loadingComp:e.resolved}}function de(t){if(ec(t))for(var e=0;e<t.length;e++){var n=t[e];if(r(n)&&(r(n.componentOptions)||Jt(n)))return n}}function ve(t){t._events=Object.create(null),t._hasHookEvent=!1;var e=t.$options._parentListeners;e&&ye(t,e)}function he(t,e){ps.$on(t,e)}function me(t,e){ps.$off(t,e)}function ge(t,e){var n=ps;return function r(){null!==e.apply(null,arguments)&&n.$off(t,r)}}function ye(t,e,n){ps=t,bt(e,n||{},he,me,ge,t),ps=void 0}function be(t){var e=gs;return gs=t,function(){gs=e}}function _e(t){var e=t.$options,n=e.parent;if(n&&!e.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(t)}t.$parent=n,t.$root=n?n.$root:t,t.$children=[],t.$refs={},t._provided=n?n._provided:Object.create(null),t._watcher=null,t._inactive=null,t._directInactive=!1,t._isMounted=!1,t._isDestroyed=!1,t._isBeingDestroyed=!1}function we(t,e,n){t.$el=e,t.$options.render||(t.$options.render=Fc,t.$options.template&&"#"!==t.$options.template.charAt(0)||t.$options.el||e?hu("You are using the runtime-only build of Vue where the template compiler is not available. Either pre-compile the templates into render functions, or use the compiler-included build.",t):hu("Failed to mount component: template or render function not defined.",t)),ke(t,"beforeMount");var r;r=gc.performance&&es?function(){var e=t._name,r=t._uid,o="vue-perf-start:".concat(r),i="vue-perf-end:".concat(r);es(o);var a=t._render();es(i),ns("vue ".concat(e," render"),o,i),es(o),t._update(a,n),es(i),ns("vue ".concat(e," patch"),o,i)}:function(){t._update(t._render(),n)};var o={before:function(){t._isMounted&&!t._isDestroyed&&ke(t,"beforeUpdate")}};o.onTrack=function(e){return ke(t,"renderTracked",[e])},o.onTrigger=function(e){return ke(t,"renderTriggered",[e])},new cu(t,r,$,o,!0),n=!1;var i=t._preWatchers;if(i)for(var a=0;a<i.length;a++)i[a].run();return null==t.$vnode&&(t._isMounted=!0,ke(t,"mounted")),t}function xe(t,e,n,r,o){ys=!0;var i=r.data.scopedSlots,a=t.$scopedSlots,c=!!(i&&!i.$stable||a!==tc&&!a.$stable||i&&t.$scopedSlots.$key!==i.$key||!i&&t.$scopedSlots.$key),s=!!(o||t.$options._renderChildren||c),u=t.$vnode;t.$options._parentVnode=r,t.$vnode=r,t._vnode&&(t._vnode.parent=r),t.$options._renderChildren=o;var f=r.data.attrs||tc;t._attrsProxy&&te(t._attrsProxy,f,u.data&&u.data.attrs||tc,t,"$attrs")&&(s=!0),t.$attrs=f,n=n||tc;var l=t.$options._parentListeners;if(t._listenersProxy&&te(t._listenersProxy,n,l||tc,t,"$listeners"),t.$listeners=t.$options._parentListeners=n,ye(t,n,l),e&&t.$options.props){U(!1);for(var p=t._props,d=t.$options._propKeys||[],v=0;v<d.length;v++){var h=d[v],m=t.$options.props;p[h]=Yn(h,m,e,t)}U(!0),t.$options.propsData=e}s&&(t.$slots=Kt(o,r.context),t.$forceUpdate()),ys=!1}function Se(t){for(;t&&(t=t.$parent);)if(t._inactive)return!0;return!1}function Oe(t,e){if(e){if(t._directInactive=!1,Se(t))return}else if(t._directInactive)return;if(t._inactive||null===t._inactive){t._inactive=!1;for(var n=0;n<t.$children.length;n++)Oe(t.$children[n]);ke(t,"activated")}}function $e(t,e){if(!(e&&(t._directInactive=!0,Se(t))||t._inactive)){t._inactive=!0;for(var n=0;n<t.$children.length;n++)$e(t.$children[n]);ke(t,"deactivated")}}function ke(t,e,n,r){void 0===r&&(r=!0),L();var o=Dc;r&&N(t);var i=t.$options[e],a="".concat(e," hook");if(i)for(var c=0,s=i.length;c<s;c++)qe(i[c],t,n||null,t,a);t._hasHookEvent&&t.$emit("hook:"+e),r&&N(o),F()}function Ce(){ks=_s.length=ws.length=0,xs={},Ss={},Os=$s=!1}function Te(){Cs=Ts(),$s=!0;var t,e;for(_s.sort(Ms),ks=0;ks<_s.length;ks++)if(t=_s[ks],t.before&&t.before(),e=t.id,xs[e]=null,t.run(),null!=xs[e]&&(Ss[e]=(Ss[e]||0)+1,Ss[e]>bs)){hu("You may have an infinite update loop "+(t.user?'in watcher with expression "'.concat(t.expression,'"'):"in a component render function."),t.vm);break}var n=ws.slice(),r=_s.slice();Ce(),Ee(n),je(r),Yc(),Pc&&gc.devtools&&Pc.emit("flush")}function je(t){for(var e=t.length;e--;){var n=t[e],r=n.vm;r&&r._watcher===n&&r._isMounted&&!r._isDestroyed&&ke(r,"updated")}}function Ae(t){t._inactive=!1,ws.push(t)}function Ee(t){for(var e=0;e<t.length;e++)t[e]._inactive=!0,Oe(t[e],!0)}function Me(t){var e=t.id;if(null==xs[e]&&(t!==Xc.target||!t.noRecurse)){if(xs[e]=!0,$s){for(var n=_s.length-1;n>ks&&_s[n].id>t.id;)n--;_s.splice(n+1,0,t)}else _s.push(t);if(!Os){if(Os=!0,!gc.async)return void Te();Xe(Te)}}}function Ie(t,e){return De(t,null,e)}function Pe(t,e){return De(t,null,qc(qc({},e),{flush:"post"}))}function Ne(t,e){return De(t,null,qc(qc({},e),{flush:"sync"}))}function Re(t,e,n){return"function"!=typeof e&&hu("`watch(fn, options?)` signature has been moved to a separate API. Use `watchEffect(fn, options?)` instead. `watch` now only supports `watch(source, cb, options?) signature."),De(t,e,n)}function De(t,e,n){var r=void 0===n?tc:n,o=r.immediate,i=r.deep,a=r.flush,s=void 0===a?"pre":a,u=r.onTrack,f=r.onTrigger;e||(void 0!==o&&hu('watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.'),void 0!==i&&hu('watch() "deep" option is only respected when using the watch(source, callback, options?) signature.'));var l,p=function(t){hu("Invalid watch source: ".concat(t,". A watch source can only be a getter/effect ")+"function, a ref, a reactive object, or an array of these types.")},d=Dc,v=function(t,e,n){return void 0===n&&(n=null),qe(t,null,n,d,e)},h=!1,m=!1;if(nt(t)?(l=function(){return t.value},h=Y(t)):W(t)?(l=function(){return t.__ob__.dep.depend(),t},i=!0):ec(t)?(m=!0,h=t.some(function(t){return W(t)||Y(t)}),l=function(){return t.map(function(t){return nt(t)?t.value:W(t)?cn(t):c(t)?v(t,Ns):void p(t)})}):c(t)?l=e?function(){return v(t,Ns)}:function(){if(!d||!d._isDestroyed)return y&&y(),v(t,Is,[b])}:(l=$,p(t)),e&&i){var g=l;l=function(){return cn(g())}}var y,b=function(t){y=_.onStop=function(){v(t,Rs)}};if(Ic())return b=$,e?o&&v(e,Ps,[l(),m?[]:void 0,b]):l(),$;var _=new cu(Dc,l,$,{lazy:!0});_.noRecurse=!e;var w=m?[]:Ds;return _.run=function(){if(_.active)if(e){var t=_.get();(i||h||(m?t.some(function(t,e){return j(t,w[e])}):j(t,w)))&&(y&&y(),v(e,Ps,[t,w===Ds?void 0:w,b]),w=t)}else _.get()},"sync"===s?_.update=_.run:"post"===s?(_.post=!0,_.update=function(){return Me(_)}):_.update=function(){if(d&&d===Dc&&!d._isMounted){var t=d._preWatchers||(d._preWatchers=[]);t.indexOf(_)<0&&t.push(_)}else Me(_)},_.onTrack=u,_.onTrigger=f,e?o?_.run():w=_.get():"post"===s&&d?d.$once("hook:mounted",function(){return _.get()}):_.get(),function(){_.teardown()}}function Le(t){return new Ls(t)}function Fe(t,e){void 0===e&&(e=As),e&&e.active&&e.effects.push(t)}function Ue(){return As}function Ve(t){As?As.cleanups.push(t):hu("onScopeDispose() is called when there is no active effect scope to be associated with.")}function He(t,e){Dc?Be(Dc)[t]=e:hu("provide() can only be used inside setup().")}function Be(t){var e=t._provided,n=t.$parent&&t.$parent._provided;return n===e?t._provided=Object.create(n):e}function ze(t,e,n){void 0===n&&(n=!1);var r=Dc;if(r){var o=r.$parent&&r.$parent._provided;if(o&&t in o)return o[t];if(arguments.length>1)return n&&c(e)?e.call(r):e;hu('injection "'.concat(String(t),'" not found.'))}else hu("inject() can only be used inside setup() or functional components.")}function Ge(t,e,n){return Dc||hu("globally imported h() can only be invoked when there is an active component instance, e.g. synchronously in a component's render or setup function."),Ct(Dc,t,e,n,2,!0)}function Ke(t,e,n){L();try{if(e)for(var r=e;r=r.$parent;){var o=r.$options.errorCaptured;if(o)for(var i=0;i<o.length;i++)try{var a=!1===o[i].call(r,t,e,n);if(a)return}catch(t){Je(t,r,"errorCaptured hook")}}Je(t,e,n)}finally{F()}}function qe(t,e,n,r,o){var i;try{i=n?t.apply(e,n):t.call(e),i&&!i._isVue&&d(i)&&!i._handled&&(i.catch(function(t){return Ke(t,r,o+" (Promise/async)")}),i._handled=!0)}catch(t){Ke(t,r,o)}return i}function Je(t,e,n){if(gc.errorHandler)try{return gc.errorHandler.call(null,t,e,n)}catch(e){e!==t&&We(e,null,"config.errorHandler")}We(t,e,n)}function We(t,e,n){if(hu("Error in ".concat(n,': "').concat(t.toString(),'"'),e),!wc||"undefined"==typeof console)throw t;console.error(t)}function Ye(){Vs=!1;var t=Us.slice(0);Us.length=0;for(var e=0;e<t.length;e++)t[e]()}function Xe(t,e){var n;if(Us.push(function(){if(t)try{t.call(e)}catch(t){Ke(t,e,"nextTick")}else n&&n(e)}),Vs||(Vs=!0,Es()),!t&&"undefined"!=typeof Promise)return new Promise(function(t){n=t})}function Ze(t){return hu("useCssModule() is not supported in the global build."),tc}function Qe(t){if(wc){var e=Dc;if(!e)return void hu("useCssVars is called without current active component instance.");Pe(function(){var n=e.$el,r=t(e,e._setupProxy);if(n&&1===n.nodeType){var o=n.style;for(var i in r)o.setProperty("--".concat(i),r[i])}})}}function tn(t){c(t)&&(t={loader:t});var e=t.loader,n=t.loadingComponent,r=t.errorComponent,o=t.delay,i=void 0===o?200:o,a=t.timeout,u=t.suspensible,f=void 0!==u&&u,l=t.onError;f&&hu("The suspensiblbe option for async components is not supported in Vue2. It is ignored.");var p=null,d=0,v=function(){return d++,p=null,h()},h=function(){var t;return p||(t=p=e().catch(function(t){if(t=t instanceof Error?t:new Error(String(t)),l)return new Promise(function(e,n){l(t,function(){return e(v())},function(){return n(t)},d+1)});throw t}).then(function(e){if(t!==p&&p)return p;if(e||hu("Async component loader resolved to undefined. If you are using retry(), make sure to return its return value."),e&&(e.__esModule||"Module"===e[Symbol.toStringTag])&&(e=e.default),e&&!s(e)&&!c(e))throw new Error("Invalid async component load result: ".concat(e));return e}))};return function(){return{component:h(),delay:i,timeout:a,error:r,loading:n}}}function en(t){return function(e,n){return void 0===n&&(n=Dc),n?rn(n,t,e):void hu("".concat(nn(t)," is called when there is no active component instance to be ")+"associated with. Lifecycle injection APIs can only be used during execution of setup().")}}function nn(t){return"beforeDestroy"===t?t="beforeUnmount":"destroyed"===t&&(t="unmounted"),"on".concat(t[0].toUpperCase()+t.slice(1))}function rn(t,e,n){var r=t.$options;r[e]=Fn(r[e],n)}function on(t,e){void 0===e&&(e=Dc),ru(t,e)}function an(t){return t}function cn(t){return sn(t,iu),iu.clear(),t}function sn(t,e){var n,r,o=ec(t);if(!(!o&&!s(t)||t.__v_skip||Object.isFrozen(t)||t instanceof Lc)){if(t.__ob__){var i=t.__ob__.dep.id;if(e.has(i))return;e.add(i)}if(o)for(n=t.length;n--;)sn(t[n],e);else if(nt(t))sn(t.value,e);else for(r=Object.keys(t),n=r.length;n--;)sn(t[r[n]],e)}}function un(t,e,n){su.get=function(){return this[e][n]},su.set=function(t){this[e][n]=t},Object.defineProperty(t,n,su)}function fn(t){var e=t.$options;if(e.props&&ln(t,e.props),Zt(t),e.methods&&yn(t,e.methods),e.data)pn(t);else{var n=V(t._data={});n&&n.vmCount++}e.computed&&vn(t,e.computed),e.watch&&e.watch!==Tc&&bn(t,e.watch)}function ln(t,e){var n=t.$options.propsData||{},r=t._props=q({}),o=t.$options._propKeys=[],i=!t.$parent;i||U(!1);for(var a in e)!function(a){o.push(a);var c=Yn(a,e,n,t),s=fc(a);(oc(s)||gc.isReservedAttr(s))&&hu('"'.concat(s,'" is a reserved attribute and cannot be used as component prop.'),t),H(r,a,c,function(){i||ys||hu("Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop's "+'value. Prop being mutated: "'.concat(a,'"'),t)}),a in t||un(t,"_props",a)}(a);U(!0)}function pn(t){var e=t.$options.data;e=t._data=c(e)?dn(e,t):e||{},f(e)||(e={},hu("data functions should return an object:\nhttps://v2.vuejs.org/v2/guide/components.html#data-Must-Be-a-Function",t));for(var n=Object.keys(e),r=t.$options.props,o=t.$options.methods,i=n.length;i--;){var a=n[i];o&&y(o,a)&&hu('Method "'.concat(a,'" has already been defined as a data property.'),t),r&&y(r,a)?hu('The data property "'.concat(a,'" is already declared as a prop. ')+"Use prop default value instead.",t):A(a)||un(t,"_data",a)}var s=V(e);s&&s.vmCount++}function dn(t,e){L();try{return t.call(e,e)}catch(t){return Ke(t,e,"data()"),{}}finally{F()}}function vn(t,e){var n=t._computedWatchers=Object.create(null),r=Ic();for(var o in e){var i=e[o],a=c(i)?i:i.get;null==a&&hu('Getter is missing for computed property "'.concat(o,'".'),t),r||(n[o]=new cu(t,a||$,$,uu)),o in t?o in t.$data?hu('The computed property "'.concat(o,'" is already defined in data.'),t):t.$options.props&&o in t.$options.props?hu('The computed property "'.concat(o,'" is already defined as a prop.'),t):t.$options.methods&&o in t.$options.methods&&hu('The computed property "'.concat(o,'" is already defined as a method.'),t):hn(t,o,i)}}function hn(t,e,n){var r=!Ic();c(n)?(su.get=r?mn(e):gn(n),su.set=$):(su.get=n.get?r&&!1!==n.cache?mn(e):gn(n.get):$,su.set=n.set||$),su.set===$&&(su.set=function(){hu('Computed property "'.concat(e,'" was assigned to but it has no setter.'),this)}),Object.defineProperty(t,e,su)}function mn(t){return function(){var e=this._computedWatchers&&this._computedWatchers[t];if(e)return e.dirty&&e.evaluate(),Xc.target&&(Xc.target.onTrack&&Xc.target.onTrack({effect:Xc.target,target:this,type:"get",key:t}),e.depend()),e.value}}function gn(t){return function(){return t.call(this,this)}}function yn(t,e){var n=t.$options.props;for(var r in e)"function"!=typeof e[r]&&hu('Method "'.concat(r,'" has type "').concat(typeof e[r],'" in the component definition. ')+"Did you reference the function correctly?",t),n&&y(n,r)&&hu('Method "'.concat(r,'" has already been defined as a prop.'),t),r in t&&A(r)&&hu('Method "'.concat(r,'" conflicts with an existing Vue instance method. ')+"Avoid defining component methods that start with _ or $."),t[r]="function"!=typeof e[r]?$:lc(e[r],t)}function bn(t,e){for(var n in e){var r=e[n];if(ec(r))for(var o=0;o<r.length;o++)_n(t,n,r[o]);else _n(t,n,r)}}function _n(t,e,n,r){return f(n)&&(r=n,n=n.handler),"string"==typeof n&&(n=t[n]),t.$watch(e,n,r)}function wn(t){var e=t.$options.provide;if(e){var n=c(e)?e.call(t):e;if(!s(n))return;for(var r=Be(t),o=Nc?Reflect.ownKeys(n):Object.keys(n),i=0;i<o.length;i++){var a=o[i];Object.defineProperty(r,a,Object.getOwnPropertyDescriptor(n,a))}}}function xn(t){var e=Sn(t.$options.inject,t);e&&(U(!1),Object.keys(e).forEach(function(n){H(t,n,e[n],function(){hu("Avoid mutating an injected value directly since the changes will be overwritten whenever the provided component re-renders. "+'injection being mutated: "'.concat(n,'"'),t)})}),U(!0))}function Sn(t,e){if(t){for(var n=Object.create(null),r=Nc?Reflect.ownKeys(t):Object.keys(t),o=0;o<r.length;o++){var i=r[o];if("__ob__"!==i){var a=t[i].from;if(a in e._provided)n[i]=e._provided[a];else if("default"in t[i]){var s=t[i].default;n[i]=c(s)?s.call(e):s}else hu('Injection "'.concat(i,'" not found'),e)}}return n}}function On(t,e){var n=t.$options=Object.create(t.constructor.options),r=e._parentVnode;n.parent=e.parent,n._parentVnode=r;var o=r.componentOptions;n.propsData=o.propsData,n._parentListeners=o.listeners,n._renderChildren=o.children,n._componentTag=o.tag,e.render&&(n.render=e.render,n.staticRenderFns=e.staticRenderFns)}function $n(t){var e=t.options;if(t.super){var n=$n(t.super);if(n!==t.superOptions){t.superOptions=n;var r=kn(t);r&&S(t.extendOptions,r),e=t.options=Jn(n,t.extendOptions),e.name&&(e.components[e.name]=t)}}return e}function kn(t){var e,n=t.options,r=t.sealedOptions;for(var o in n)n[o]!==r[o]&&(e||(e={}),e[o]=n[o]);return e}function Cn(t,e,n,r,i){var a,c=this,s=i.options;y(r,"_uid")?(a=Object.create(r),a._original=r):(a=r,r=r._original);var u=o(s._compiled),f=!u;this.data=t,this.props=e,this.children=n,this.parent=r,this.listeners=t.on||tc,this.injections=Sn(s.inject,r),this.slots=function(){return c.$slots||Wt(r,t.scopedSlots,c.$slots=Kt(n,r)),c.$slots},Object.defineProperty(this,"scopedSlots",{enumerable:!0,get:function(){return Wt(r,t.scopedSlots,this.slots())}}),u&&(this.$options=s,this.$slots=this.slots(),this.$scopedSlots=Wt(r,t.scopedSlots,this.$slots)),s._scopeId?this._c=function(t,e,n,o){var i=Ct(a,t,e,n,o,f);return i&&!ec(i)&&(i.fnScopeId=s._scopeId,i.fnContext=r),i}:this._c=function(t,e,n,r){return Ct(a,t,e,n,r,f)}}function Tn(t,e,n,o,i){var a=t.options,c={},s=a.props;if(r(s))for(var u in s)c[u]=Yn(u,s,e||tc);else r(n.attrs)&&An(c,n.attrs),r(n.props)&&An(c,n.props);var f=new Cn(n,c,i,o,t),l=a.render.call(null,f._c,f);if(l instanceof Lc)return jn(l,n,f.parent,a,f);if(ec(l)){for(var p=Ot(l)||[],d=new Array(p.length),v=0;v<p.length;v++)d[v]=jn(p[v],n,f.parent,a,f);return d}}function jn(t,e,n,r,o){var i=D(t);return i.fnContext=n,i.fnOptions=r,(i.devtoolsMeta=i.devtoolsMeta||{}).renderContext=o,e.slot&&((i.data||(i.data={})).slot=e.slot),i}function An(t,e){for(var n in e)t[cc(n)]=e[n]}function En(t){return t.name||t.__name||t._componentTag}function Mn(e,n,i,a,c){if(!t(e)){var u=i.$options._base;if(s(e)&&(e=u.extend(e)),"function"!=typeof e)return void hu("Invalid Component definition: ".concat(String(e)),i);var f;if(t(e.cid)&&(f=e,void 0===(e=pe(f,u))))return le(f,n,i,a,c);n=n||{},$n(e),r(n.model)&&Rn(e.options,n);var l=wt(n,e,c);if(o(e.options.functional))return Tn(e,l,n,i,a);var p=n.on;if(n.on=n.nativeOn,o(e.options.abstract)){var d=n.slot;n={},d&&(n.slot=d)}Pn(n);var v=En(e.options)||c;return new Lc("vue-component-".concat(e.cid).concat(v?"-".concat(v):""),n,void 0,void 0,void 0,i,{Ctor:e,propsData:l,listeners:p,tag:c,children:a},f)}}function In(t,e){var n={_isComponent:!0,_parentVnode:t,parent:e},o=t.data.inlineTemplate;return r(o)&&(n.render=o.render,n.staticRenderFns=o.staticRenderFns),new t.componentOptions.Ctor(n)}function Pn(t){for(var e=t.hook||(t.hook={}),n=0;n<vu.length;n++){var r=vu[n],o=e[r],i=du[r];o===i||o&&o._merged||(e[r]=o?Nn(i,o):i)}}function Nn(t,e){var n=function(n,r){t(n,r),e(n,r)};return n._merged=!0,n}function Rn(t,e){var n=t.model&&t.model.prop||"value",o=t.model&&t.model.event||"input";(e.attrs||(e.attrs={}))[n]=e.model.value;var i=e.on||(e.on={}),a=i[o],c=e.model.callback;r(a)?(ec(a)?-1===a.indexOf(c):a!==c)&&(i[o]=[c].concat(a)):i[o]=c}function Dn(t,e,n){if(void 0===n&&(n=!0),!e)return t;for(var r,o,i,a=Nc?Reflect.ownKeys(e):Object.keys(e),c=0;c<a.length;c++)"__ob__"!==(r=a[c])&&(o=t[r],i=e[r],n&&y(t,r)?o!==i&&f(o)&&f(i)&&Dn(o,i):B(t,r,i));return t}function Ln(t,e,n){return n?function(){var r=c(e)?e.call(n,n):e,o=c(t)?t.call(n,n):t;return r?Dn(r,o):o}:e?t?function(){return Dn(c(e)?e.call(this,this):e,c(t)?t.call(this,this):t)}:e:t}function Fn(t,e){var n=e?t?t.concat(e):ec(e)?e:[e]:t;return n?Un(n):n}function Un(t){for(var e=[],n=0;n<t.length;n++)-1===e.indexOf(t[n])&&e.push(t[n]);return e}function Vn(t,e,n,r){var o=Object.create(t||null);return e?(qn(r,e,n),S(o,e)):o}function Hn(t){for(var e in t.components)Bn(e)}function Bn(t){new RegExp("^[a-zA-Z][\\-\\.0-9_".concat(yc.source,"]*$")).test(t)||hu('Invalid component name: "'+t+'". Component names should conform to valid custom element name in html5 specification.'),(rc(t)||gc.isReservedTag(t))&&hu("Do not use built-in or reserved HTML elements as component id: "+t)}function zn(t,e){var n=t.props;if(n){var r,o,i,a={};if(ec(n))for(r=n.length;r--;)o=n[r],"string"==typeof o?(i=cc(o),a[i]={type:null}):hu("props must be strings when using array syntax.");else if(f(n))for(var c in n)o=n[c],i=cc(c),a[i]=f(o)?o:{type:o};else hu('Invalid value for option "props": expected an Array or an Object, '+"but got ".concat(u(n),"."),e);t.props=a}}function Gn(t,e){var n=t.inject;if(n){var r=t.inject={};if(ec(n))for(var o=0;o<n.length;o++)r[n[o]]={from:n[o]};else if(f(n))for(var i in n){var a=n[i];r[i]=f(a)?S({from:i},a):{from:a}}else hu('Invalid value for option "inject": expected an Array or an Object, '+"but got ".concat(u(n),"."),e)}}function Kn(t){var e=t.directives;if(e)for(var n in e){var r=e[n];c(r)&&(e[n]={bind:r,update:r})}}function qn(t,e,n){f(e)||hu('Invalid value for option "'.concat(t,'": expected an Object, ')+"but got ".concat(u(e),"."),n)}function Jn(t,e,n){function r(r){var o=wu[r]||xu;s[r]=o(t[r],e[r],n,r)}if(Hn(e),c(e)&&(e=e.options),zn(e,n),Gn(e,n),Kn(e),!e._base&&(e.extends&&(t=Jn(t,e.extends,n)),e.mixins))for(var o=0,i=e.mixins.length;o<i;o++)t=Jn(t,e.mixins[o],n);var a,s={};for(a in t)r(a);for(a in e)y(t,a)||r(a);return s}function Wn(t,e,n,r){if("string"==typeof n){var o=t[e];if(y(o,n))return o[n];var i=cc(n);if(y(o,i))return o[i];var a=sc(i);if(y(o,a))return o[a];var c=o[n]||o[i]||o[a];return r&&!c&&hu("Failed to resolve "+e.slice(0,-1)+": "+n),c}}function Yn(t,e,n,r){var o=e[t],i=!y(n,t),a=n[t],c=nr(Boolean,o.type);if(c>-1)if(i&&!y(o,"default"))a=!1;else if(""===a||a===fc(t)){var s=nr(String,o.type);(s<0||c<s)&&(a=!0)}if(void 0===a){a=Xn(r,o,t);var u=is;U(!0),V(a),U(u)}return Zn(o,t,a,r,i),a}function Xn(t,e,n){if(y(e,"default")){var r=e.default;return s(r)&&hu('Invalid default value for prop "'+n+'": Props with type Object/Array must use a factory function to return the default value.',t),t&&t.$options.propsData&&void 0===t.$options.propsData[n]&&void 0!==t._props[n]?t._props[n]:c(r)&&"Function"!==tr(e.type)?r.call(t):r}}function Zn(t,e,n,r,o){if(t.required&&o)return void hu('Missing required prop: "'+e+'"',r);if(null!=n||t.required){var i=t.type,a=!i||!0===i,c=[];if(i){ec(i)||(i=[i]);for(var s=0;s<i.length&&!a;s++){var u=Qn(n,i[s],r);c.push(u.expectedType||""),a=u.valid}}var f=c.some(function(t){return t});if(!a&&f)return void hu(rr(e,n,c),r);var l=t.validator;l&&(l(n)||hu('Invalid prop: custom validator check failed for prop "'+e+'".',r))}}function Qn(t,e,n){var r,o=tr(e);if(Su.test(o)){var i=typeof t;r=i===o.toLowerCase(),r||"object"!==i||(r=t instanceof e)}else if("Object"===o)r=f(t);else if("Array"===o)r=ec(t);else try{r=t instanceof e}catch(t){hu('Invalid prop type: "'+String(e)+'" is not a constructor',n),r=!1}return{valid:r,expectedType:o}}function tr(t){var e=t&&t.toString().match(Ou);return e?e[1]:""}function er(t,e){return tr(t)===tr(e)}function nr(t,e){if(!ec(e))return er(e,t)?0:-1;for(var n=0,r=e.length;n<r;n++)if(er(e[n],t))return n;return-1}function rr(t,e,n){var r='Invalid prop: type check failed for prop "'.concat(t,'".')+" Expected ".concat(n.map(sc).join(", ")),o=n[0],i=u(e);return 1===n.length&&ir(o)&&ir(typeof e)&&!ar(o,i)&&(r+=" with value ".concat(or(e,o))),r+=", got ".concat(i," "),ir(i)&&(r+="with value ".concat(or(e,i),".")),r}function or(t,e){return"String"===e?'"'.concat(t,'"'):"".concat("Number"===e?Number(t):t)}function ir(t){return $u.some(function(e){return t.toLowerCase()===e})}function ar(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return t.some(function(t){return"boolean"===t.toLowerCase()})}function cr(t){this instanceof cr||hu("Vue is a constructor and should be called with the `new` keyword"),this._init(t)}function sr(t){t.use=function(t){var e=this._installedPlugins||(this._installedPlugins=[]);if(e.indexOf(t)>-1)return this;var n=x(arguments,1);return n.unshift(this),c(t.install)?t.install.apply(t,n):c(t)&&t.apply(null,n),e.push(t),this}}function ur(t){t.mixin=function(t){return this.options=Jn(this.options,t),this}}function fr(t){t.cid=0;var e=1;t.extend=function(t){t=t||{};var n=this,r=n.cid,o=t._Ctor||(t._Ctor={});if(o[r])return o[r];var i=En(t)||En(n.options);i&&Bn(i);var a=function(t){this._init(t)};return a.prototype=Object.create(n.prototype),a.prototype.constructor=a,a.cid=e++,a.options=Jn(n.options,t),a.super=n,a.options.props&&lr(a),a.options.computed&&pr(a),a.extend=n.extend,a.mixin=n.mixin,a.use=n.use,hc.forEach(function(t){a[t]=n[t]}),i&&(a.options.components[i]=a),a.superOptions=n.options,a.extendOptions=t,a.sealedOptions=S({},a.options),o[r]=a,a}}function lr(t){var e=t.options.props;for(var n in e)un(t.prototype,"_props",n)}function pr(t){var e=t.options.computed;for(var n in e)hn(t.prototype,n,e[n])}function dr(t){hc.forEach(function(e){t[e]=function(t,n){return n?("component"===e&&Bn(t),"component"===e&&f(n)&&(n.name=n.name||t,n=this.options._base.extend(n)),"directive"===e&&c(n)&&(n={bind:n,update:n}),this.options[e+"s"][t]=n,n):this.options[e+"s"][t]}})}function vr(t){return t&&(En(t.Ctor.options)||t.tag)}function hr(t,e){return ec(t)?t.indexOf(e)>-1:"string"==typeof t?t.split(",").indexOf(e)>-1:!!l(t)&&t.test(e)}function mr(t,e){var n=t.cache,r=t.keys,o=t._vnode;for(var i in n){var a=n[i];if(a){var c=a.name;c&&!e(c)&&gr(n,i,r,o)}}}function gr(t,e,n,r){var o=t[e];!o||r&&o.tag===r.tag||o.componentInstance.$destroy(),t[e]=null,g(n,e)}function yr(t){for(var e=t.data,n=t,o=t;r(o.componentInstance);)(o=o.componentInstance._vnode)&&o.data&&(e=br(o.data,e));for(;r(n=n.parent);)n&&n.data&&(e=br(e,n.data));return _r(e.staticClass,e.class)}function br(t,e){return{staticClass:wr(t.staticClass,e.staticClass),class:r(t.class)?[t.class,e.class]:e.class}}function _r(t,e){return r(t)||r(e)?wr(t,xr(e)):""}function wr(t,e){return t?e?t+" "+e:t:e||""}function xr(t){return Array.isArray(t)?Sr(t):s(t)?Or(t):"string"==typeof t?t:""}function Sr(t){for(var e,n="",o=0,i=t.length;o<i;o++)r(e=xr(t[o]))&&""!==e&&(n&&(n+=" "),n+=e);return n}function Or(t){var e="";for(var n in t)t[n]&&(e&&(e+=" "),e+=n);return e}function $r(t){return Zu(t)?"svg":"math"===t?"math":void 0}function kr(t){if(!wc)return!0;if(tf(t))return!1;if(t=t.toLowerCase(),null!=ef[t])return ef[t];var e=document.createElement(t);return t.indexOf("-")>-1?ef[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:ef[t]=/HTMLUnknownElement/.test(e.toString())}function Cr(t){if("string"==typeof t){var e=document.querySelector(t);return e||(hu("Cannot find element: "+t),document.createElement("div"))}return t}function Tr(t,e){var n=document.createElement(t);return"select"!==t?n:(e.data&&e.data.attrs&&void 0!==e.data.attrs.multiple&&n.setAttribute("multiple","multiple"),n)}function jr(t,e){return document.createElementNS(Yu[t],e)}function Ar(t){return document.createTextNode(t)}function Er(t){return document.createComment(t)}function Mr(t,e,n){t.insertBefore(e,n)}function Ir(t,e){t.removeChild(e)}function Pr(t,e){t.appendChild(e)}function Nr(t){return t.parentNode}function Rr(t){return t.nextSibling}function Dr(t){return t.tagName}function Lr(t,e){t.textContent=e}function Fr(t,e){t.setAttribute(e,"")}function Ur(t,e){var n=t.data.ref;if(r(n)){var o=t.context,i=t.componentInstance||t.elm,a=e?null:i,s=e?void 0:i;if(c(n))return void qe(n,o,[a],o,"template ref function");var u=t.data.refInFor,f="string"==typeof n||"number"==typeof n,l=nt(n),p=o.$refs;if(f||l)if(u){var d=f?p[n]:n.value;e?ec(d)&&g(d,i):ec(d)?d.includes(i)||d.push(i):f?(p[n]=[i],Vr(o,n,p[n])):n.value=[i]}else if(f){if(e&&p[n]!==i)return;p[n]=s,Vr(o,n,a)}else if(l){if(e&&n.value!==i)return;n.value=a}else hu("Invalid template ref type: ".concat(typeof n))}}function Vr(t,e,n){var r=t._setupState;r&&y(r,e)&&(nt(r[e])?r[e].value=n:r[e]=n)}function Hr(e,n){return e.key===n.key&&e.asyncFactory===n.asyncFactory&&(e.tag===n.tag&&e.isComment===n.isComment&&r(e.data)===r(n.data)&&Br(e,n)||o(e.isAsyncPlaceholder)&&t(n.asyncFactory.error))}function Br(t,e){if("input"!==t.tag)return!0;var n,o=r(n=t.data)&&r(n=n.attrs)&&n.type,i=r(n=e.data)&&r(n=n.attrs)&&n.type;return o===i||nf(o)&&nf(i)}function zr(t,e,n){var o,i,a={};for(o=e;o<=n;++o)i=t[o].key,r(i)&&(a[i]=o);return a}function Gr(t,e){(t.data.directives||e.data.directives)&&Kr(t,e)}function Kr(t,e){var n,r,o,i=t===af,a=e===af,c=qr(t.data.directives,t.context),s=qr(e.data.directives,e.context),u=[],f=[];for(n in s)r=c[n],o=s[n],r?(o.oldValue=r.value,o.oldArg=r.arg,Wr(o,"update",e,t),o.def&&o.def.componentUpdated&&f.push(o)):(Wr(o,"bind",e,t),o.def&&o.def.inserted&&u.push(o));if(u.length){var l=function(){for(var n=0;n<u.length;n++)Wr(u[n],"inserted",e,t)};i?_t(e,"insert",l):l()}if(f.length&&_t(e,"postpatch",function(){for(var n=0;n<f.length;n++)Wr(f[n],"componentUpdated",e,t)}),!i)for(n in c)s[n]||Wr(c[n],"unbind",t,t,a)}function qr(t,e){var n=Object.create(null);if(!t)return n;var r,o;for(r=0;r<t.length;r++){if(o=t[r],o.modifiers||(o.modifiers=uf),n[Jr(o)]=o,e._setupState&&e._setupState.__sfc){var i=o.def||Wn(e,"_setupState","v-"+o.name);o.def="function"==typeof i?{bind:i,update:i}:i}o.def=o.def||Wn(e.$options,"directives",o.name,!0)}return n}function Jr(t){return t.rawName||"".concat(t.name,".").concat(Object.keys(t.modifiers||{}).join("."))}function Wr(t,e,n,r,o){var i=t.def&&t.def[e];if(i)try{i(n.elm,t,n,r,o)}catch(r){Ke(r,n.context,"directive ".concat(t.name," ").concat(e," hook"))}}function Yr(e,n){var i=n.componentOptions;if(!(r(i)&&!1===i.Ctor.options.inheritAttrs||t(e.data.attrs)&&t(n.data.attrs))){var a,c,s=n.elm,u=e.data.attrs||{},f=n.data.attrs||{};(r(f.__ob__)||o(f._v_attr_proxy))&&(f=n.data.attrs=S({},f));for(a in f)c=f[a],u[a]!==c&&Xr(s,a,c,n.data.pre);(Sc||$c)&&f.value!==u.value&&Xr(s,"value",f.value);for(a in u)t(f[a])&&(qu(a)?s.removeAttributeNS(Ku,Ju(a)):Hu(a)||s.removeAttribute(a))}}function Xr(t,e,n,r){r||t.tagName.indexOf("-")>-1?Zr(t,e,n):Gu(e)?Wu(n)?t.removeAttribute(e):(n="allowfullscreen"===e&&"EMBED"===t.tagName?"true":e,t.setAttribute(e,n)):Hu(e)?t.setAttribute(e,zu(e,n)):qu(e)?Wu(n)?t.removeAttributeNS(Ku,Ju(e)):t.setAttributeNS(Ku,e,n):Zr(t,e,n)}function Zr(t,e,n){if(Wu(n))t.removeAttribute(e);else{if(Sc&&!Oc&&"TEXTAREA"===t.tagName&&"placeholder"===e&&""!==n&&!t.__ieph){var r=function(e){e.stopImmediatePropagation(),t.removeEventListener("input",r)};t.addEventListener("input",r),t.__ieph=!0}t.setAttribute(e,n)}}function Qr(e,n){var o=n.elm,i=n.data,a=e.data;if(!(t(i.staticClass)&&t(i.class)&&(t(a)||t(a.staticClass)&&t(a.class)))){var c=yr(n),s=o._transitionClasses;r(s)&&(c=wr(c,xr(s))),c!==o._prevClass&&(o.setAttribute("class",c),o._prevClass=c)}}function to(t){function e(){(a||(a=[])).push(t.slice(v,o).trim()),v=o+1}var n,r,o,i,a,c=!1,s=!1,u=!1,f=!1,l=0,p=0,d=0,v=0;for(o=0;o<t.length;o++)if(r=n,n=t.charCodeAt(o),c)39===n&&92!==r&&(c=!1);else if(s)34===n&&92!==r&&(s=!1);else if(u)96===n&&92!==r&&(u=!1);else if(f)47===n&&92!==r&&(f=!1);else if(124!==n||124===t.charCodeAt(o+1)||124===t.charCodeAt(o-1)||l||p||d){switch(n){case 34:s=!0;break;case 39:c=!0;break;case 96:u=!0;break;case 40:d++;break;case 41:d--;break;case 91:p++;break;case 93:p--;break;case 123:l++;break;case 125:l--}if(47===n){for(var h=o-1,m=void 0;h>=0&&" "===(m=t.charAt(h));h--);m&&df.test(m)||(f=!0)}}else void 0===i?(v=o+1,i=t.slice(0,o).trim()):e();if(void 0===i?i=t.slice(0,o).trim():0!==v&&e(),a)for(o=0;o<a.length;o++)i=eo(i,a[o]);return i}function eo(t,e){var n=e.indexOf("(");if(n<0)return'_f("'.concat(e,'")(').concat(t,")");var r=e.slice(0,n),o=e.slice(n+1);return'_f("'.concat(r,'")(').concat(t).concat(")"!==o?","+o:o)}function no(t,e){console.error("[Vue compiler]: ".concat(t))}function ro(t,e){return t?t.map(function(t){return t[e]}).filter(function(t){return t}):[]}function oo(t,e,n,r,o){(t.props||(t.props=[])).push(ho({name:e,value:n,dynamic:o},r)),t.plain=!1}function io(t,e,n,r,o){(o?t.dynamicAttrs||(t.dynamicAttrs=[]):t.attrs||(t.attrs=[])).push(ho({name:e,value:n,dynamic:o},r)),t.plain=!1}function ao(t,e,n,r){t.attrsMap[e]=n,t.attrsList.push(ho({name:e,value:n},r))}function co(t,e,n,r,o,i,a,c){(t.directives||(t.directives=[])).push(ho({name:e,rawName:n,value:r,arg:o,isDynamicArg:i,modifiers:a},c)),t.plain=!1}function so(t,e,n){return n?"_p(".concat(e,',"').concat(t,'")'):t+e}function uo(t,e,n,r,o,i,a,c){r=r||tc,i&&r.prevent&&r.passive&&i("passive and prevent can't be used together. Passive handler can't prevent default event.",a),r.right?c?e="(".concat(e,")==='click'?'contextmenu':(").concat(e,")"):"click"===e&&(e="contextmenu",delete r.right):r.middle&&(c?e="(".concat(e,")==='click'?'mouseup':(").concat(e,")"):"click"===e&&(e="mouseup")),r.capture&&(delete r.capture,e=so("!",e,c)),r.once&&(delete r.once,e=so("~",e,c)),r.passive&&(delete r.passive,e=so("&",e,c));var s;r.native?(delete r.native,s=t.nativeEvents||(t.nativeEvents={})):s=t.events||(t.events={});var u=ho({value:n.trim(),dynamic:c},a);r!==tc&&(u.modifiers=r);var f=s[e];Array.isArray(f)?o?f.unshift(u):f.push(u):s[e]=f?o?[u,f]:[f,u]:u,t.plain=!1}function fo(t,e){return t.rawAttrsMap[":"+e]||t.rawAttrsMap["v-bind:"+e]||t.rawAttrsMap[e]}function lo(t,e,n){var r=po(t,":"+e)||po(t,"v-bind:"+e);if(null!=r)return to(r);if(!1!==n){var o=po(t,e);if(null!=o)return JSON.stringify(o)}}function po(t,e,n){var r;if(null!=(r=t.attrsMap[e]))for(var o=t.attrsList,i=0,a=o.length;i<a;i++)if(o[i].name===e){o.splice(i,1);break}return n&&delete t.attrsMap[e],r}function vo(t,e){for(var n=t.attrsList,r=0,o=n.length;r<o;r++){var i=n[r];if(e.test(i.name))return n.splice(r,1),i}}function ho(t,e){return e&&(null!=e.start&&(t.start=e.start),null!=e.end&&(t.end=e.end)),t}function mo(t,e,n){var r=n||{},o=r.number,i=r.trim,a="$$v";i&&(a="(typeof ".concat("$$v"," === 'string'")+"? ".concat("$$v",".trim()")+": ".concat("$$v",")")),o&&(a="_n(".concat(a,")"));var c=go(e,a);t.model={value:"(".concat(e,")"),expression:JSON.stringify(e),callback:"function (".concat("$$v",") {").concat(c,"}")}}function go(t,e){var n=yo(t);return null===n.key?"".concat(t,"=").concat(e):"$set(".concat(n.exp,", ").concat(n.key,", ").concat(e,")")}function yo(t){if(t=t.trim(),ju=t.length,t.indexOf("[")<0||t.lastIndexOf("]")<ju-1)return Mu=t.lastIndexOf("."),Mu>-1?{exp:t.slice(0,Mu),key:'"'+t.slice(Mu+1)+'"'}:{exp:t,key:null};for(Au=t,Mu=Iu=Pu=0;!_o();)Eu=bo(),wo(Eu)?So(Eu):91===Eu&&xo(Eu);return{exp:t.slice(0,Iu),key:t.slice(Iu+1,Pu)}}function bo(){return Au.charCodeAt(++Mu)}function _o(){return Mu>=ju}function wo(t){return 34===t||39===t}function xo(t){var e=1;for(Iu=Mu;!_o();)if(t=bo(),wo(t))So(t);else if(91===t&&e++,93===t&&e--,0===e){Pu=Mu;break}}function So(t){for(var e=t;!_o()&&(t=bo())!==e;);}function Oo(t,e,n){Nu=n;var r=e.value,o=e.modifiers,i=t.tag,a=t.attrsMap.type;if("input"===i&&"file"===a&&Nu("<".concat(t.tag,' v-model="').concat(r,'" type="file">:\n')+"File inputs are read only. Use a v-on:change listener instead.",t.rawAttrsMap["v-model"]),t.component)return mo(t,r,o),!1;if("select"===i)Co(t,r,o);else if("input"===i&&"checkbox"===a)$o(t,r,o);else if("input"===i&&"radio"===a)ko(t,r,o);else if("input"===i||"textarea"===i)To(t,r,o);else{if(!gc.isReservedTag(i))return mo(t,r,o),!1;Nu("<".concat(t.tag,' v-model="').concat(r,'">: ')+"v-model is not supported on this element type. If you are working with contenteditable, it's recommended to wrap a library dedicated for that purpose inside a custom component.",t.rawAttrsMap["v-model"])}return!0}function $o(t,e,n){var r=n&&n.number,o=lo(t,"value")||"null",i=lo(t,"true-value")||"true",a=lo(t,"false-value")||"false";oo(t,"checked","Array.isArray(".concat(e,")")+"?_i(".concat(e,",").concat(o,")>-1")+("true"===i?":(".concat(e,")"):":_q(".concat(e,",").concat(i,")"))),uo(t,"change","var $$a=".concat(e,",")+"$$el=$event.target,"+"$$c=$$el.checked?(".concat(i,"):(").concat(a,");")+"if(Array.isArray($$a)){"+"var $$v=".concat(r?"_n("+o+")":o,",")+"$$i=_i($$a,$$v);"+"if($$el.checked){$$i<0&&(".concat(go(e,"$$a.concat([$$v])"),")}")+"else{$$i>-1&&(".concat(go(e,"$$a.slice(0,$$i).concat($$a.slice($$i+1))"),")}")+"}else{".concat(go(e,"$$c"),"}"),null,!0)}function ko(t,e,n){var r=n&&n.number,o=lo(t,"value")||"null";o=r?"_n(".concat(o,")"):o,oo(t,"checked","_q(".concat(e,",").concat(o,")")),uo(t,"change",go(e,o),null,!0)}function Co(t,e,n){var r=n&&n.number,o='Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = "_value" in o ? o._value : o.value;'+"return ".concat(r?"_n(val)":"val","})"),i="var $$selectedVal = ".concat(o,";");i="".concat(i," ").concat(go(e,"$event.target.multiple ? $$selectedVal : $$selectedVal[0]")),uo(t,"change",i,null,!0)}function To(t,e,n){var r=t.attrsMap.type,o=t.attrsMap["v-bind:value"]||t.attrsMap[":value"],i=t.attrsMap["v-bind:type"]||t.attrsMap[":type"];if(o&&!i){var a=t.attrsMap["v-bind:value"]?"v-bind:value":":value";Nu("".concat(a,'="').concat(o,'" conflicts with v-model on the same element ')+"because the latter already expands to a value binding internally",t.rawAttrsMap[a])}var c=n||{},s=c.lazy,u=c.number,f=c.trim,l=!s&&"range"!==r,p=s?"change":"range"===r?vf:"input",d="$event.target.value";f&&(d="$event.target.value.trim()"),u&&(d="_n(".concat(d,")"));var v=go(e,d);l&&(v="if($event.target.composing)return;".concat(v)),oo(t,"value","(".concat(e,")")),uo(t,p,v,null,!0),(f||u)&&uo(t,"blur","$forceUpdate()")}function jo(t){if(r(t[vf])){var e=Sc?"change":"input";t[e]=[].concat(t[vf],t[e]||[]),delete t[vf]}r(t[hf])&&(t.change=[].concat(t[hf],t.change||[]),delete t[hf])}function Ao(t,e,n){var r=Ru;return function o(){null!==e.apply(null,arguments)&&Mo(t,o,n,r)}}function Eo(t,e,n,r){if(mf){var o=Cs,i=e;e=i._wrapper=function(t){if(t.target===t.currentTarget||t.timeStamp>=o||t.timeStamp<=0||t.target.ownerDocument!==document)return i.apply(this,arguments)}}Ru.addEventListener(t,e,jc?{capture:n,passive:r}:n)}function Mo(t,e,n,r){(r||Ru).removeEventListener(t,e._wrapper||e,n)}function Io(e,n){if(!t(e.data.on)||!t(n.data.on)){var r=n.data.on||{},o=e.data.on||{};Ru=n.elm||e.elm,jo(r),bt(r,o,Eo,Mo,Ao,n.context),Ru=void 0}}function Po(e,n){if(!t(e.data.domProps)||!t(n.data.domProps)){var i,a,c=n.elm,s=e.data.domProps||{},u=n.data.domProps||{};(r(u.__ob__)||o(u._v_attr_proxy))&&(u=n.data.domProps=S({},u));for(i in s)i in u||(c[i]="");for(i in u){if(a=u[i],"textContent"===i||"innerHTML"===i){if(n.children&&(n.children.length=0),a===s[i])continue;1===c.childNodes.length&&c.removeChild(c.childNodes[0])}if("value"===i&&"PROGRESS"!==c.tagName){c._value=a;var f=t(a)?"":String(a);No(c,f)&&(c.value=f)}else if("innerHTML"===i&&Zu(c.tagName)&&t(c.innerHTML)){Du=Du||document.createElement("div"),Du.innerHTML="<svg>".concat(a,"</svg>");for(var l=Du.firstChild;c.firstChild;)c.removeChild(c.firstChild);for(;l.firstChild;)c.appendChild(l.firstChild)}else if(a!==s[i])try{c[i]=a}catch(t){}}}}function No(t,e){return!t.composing&&("OPTION"===t.tagName||Ro(t,e)||Do(t,e))}function Ro(t,e){var n=!0;try{n=document.activeElement!==t}catch(t){}return n&&t.value!==e}function Do(t,e){var n=t.value,o=t._vModifiers;if(r(o)){if(o.number)return h(n)!==h(e);if(o.trim)return n.trim()!==e.trim()}return n!==e}function Lo(t){var e=Fo(t.style);return t.staticStyle?S(t.staticStyle,e):e}function Fo(t){return Array.isArray(t)?O(t):"string"==typeof t?bf(t):t}function Uo(t,e){var n,r={};if(e)for(var o=t;o.componentInstance;)(o=o.componentInstance._vnode)&&o.data&&(n=Lo(o.data))&&S(r,n);(n=Lo(t.data))&&S(r,n);for(var i=t;i=i.parent;)i.data&&(n=Lo(i.data))&&S(r,n);return r}function Vo(e,n){var o=n.data,i=e.data;if(!(t(o.staticStyle)&&t(o.style)&&t(i.staticStyle)&&t(i.style))){var a,c,s=n.elm,u=i.staticStyle,f=i.normalizedStyle||i.style||{},l=u||f,p=Fo(n.data.style)||{};n.data.normalizedStyle=r(p.__ob__)?S({},p):p;var d=Uo(n,!0);for(c in l)t(d[c])&&xf(s,c,"");for(c in d)(a=d[c])!==l[c]&&xf(s,c,null==a?"":a)}}function Ho(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(kf).forEach(function(e){return t.classList.add(e)}):t.classList.add(e);else{var n=" ".concat(t.getAttribute("class")||""," ");n.indexOf(" "+e+" ")<0&&t.setAttribute("class",(n+e).trim())}}function Bo(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(kf).forEach(function(e){return t.classList.remove(e)}):t.classList.remove(e),t.classList.length||t.removeAttribute("class");else{for(var n=" ".concat(t.getAttribute("class")||""," "),r=" "+e+" ";n.indexOf(r)>=0;)n=n.replace(r," ");n=n.trim(),n?t.setAttribute("class",n):t.removeAttribute("class")}}function zo(t){if(t){if("object"==typeof t){var e={};return!1!==t.css&&S(e,Cf(t.name||"v")),S(e,t),e}return"string"==typeof t?Cf(t):void 0}}function Go(t){Nf(function(){Nf(t)})}function Ko(t,e){var n=t._transitionClasses||(t._transitionClasses=[]);n.indexOf(e)<0&&(n.push(e),Ho(t,e))}function qo(t,e){t._transitionClasses&&g(t._transitionClasses,e),Bo(t,e)}function Jo(t,e,n){var r=Wo(t,e),o=r.type,i=r.timeout,a=r.propCount;if(!o)return n();var c=o===jf?Mf:Pf,s=0,u=function(){t.removeEventListener(c,f),n()},f=function(e){e.target===t&&++s>=a&&u()};setTimeout(function(){s<a&&u()},i+1),t.addEventListener(c,f)}function Wo(t,e){var n,r=window.getComputedStyle(t),o=(r[Ef+"Delay"]||"").split(", "),i=(r[Ef+"Duration"]||"").split(", "),a=Yo(o,i),c=(r[If+"Delay"]||"").split(", "),s=(r[If+"Duration"]||"").split(", "),u=Yo(c,s),f=0,l=0;return e===jf?a>0&&(n=jf,f=a,l=i.length):e===Af?u>0&&(n=Af,f=u,l=s.length):(f=Math.max(a,u),n=f>0?a>u?jf:Af:null,l=n?n===jf?i.length:s.length:0),{type:n,timeout:f,propCount:l,hasTransform:n===jf&&Rf.test(r[Ef+"Property"])}}function Yo(t,e){for(;t.length<e.length;)t=t.concat(t);return Math.max.apply(null,e.map(function(e,n){return Xo(e)+Xo(t[n])}))}function Xo(t){return 1e3*Number(t.slice(0,-1).replace(",","."))}function Zo(e,n){var o=e.elm;r(o._leaveCb)&&(o._leaveCb.cancelled=!0,o._leaveCb());var i=zo(e.data.transition);if(!t(i)&&!r(o._enterCb)&&1===o.nodeType){for(var a=i.css,u=i.type,f=i.enterClass,l=i.enterToClass,p=i.enterActiveClass,d=i.appearClass,v=i.appearToClass,m=i.appearActiveClass,g=i.beforeEnter,y=i.enter,b=i.afterEnter,_=i.enterCancelled,w=i.beforeAppear,x=i.appear,S=i.afterAppear,O=i.appearCancelled,$=i.duration,k=gs,C=gs.$vnode;C&&C.parent;)k=C.context,C=C.parent;var j=!k._isMounted||!e.isRootInsert;if(!j||x||""===x){var A=j&&d?d:f,E=j&&m?m:p,M=j&&v?v:l,I=j?w||g:g,P=j&&c(x)?x:y,N=j?S||b:b,R=j?O||_:_,D=h(s($)?$.enter:$);null!=D&&ti(D,"enter",e);var L=!1!==a&&!Oc,F=ni(P),U=o._enterCb=T(function(){L&&(qo(o,M),qo(o,E)),U.cancelled?(L&&qo(o,A),R&&R(o)):N&&N(o),o._enterCb=null});e.data.show||_t(e,"insert",function(){var t=o.parentNode,n=t&&t._pending&&t._pending[e.key];n&&n.tag===e.tag&&n.elm._leaveCb&&n.elm._leaveCb(),P&&P(o,U)}),I&&I(o),L&&(Ko(o,A),Ko(o,E),Go(function(){qo(o,A),U.cancelled||(Ko(o,M),F||(ei(D)?setTimeout(U,D):Jo(o,u,U)))})),e.data.show&&(n&&n(),P&&P(o,U)),L||F||U()}}}function Qo(e,n){function o(){S.cancelled||(!e.data.show&&i.parentNode&&((i.parentNode._pending||(i.parentNode._pending={}))[e.key]=e),d&&d(i),_&&(Ko(i,f),Ko(i,p),Go(function(){qo(i,f),S.cancelled||(Ko(i,l),w||(ei(x)?setTimeout(S,x):Jo(i,u,S)))})),v&&v(i,S),_||w||S())}var i=e.elm;r(i._enterCb)&&(i._enterCb.cancelled=!0,i._enterCb());var a=zo(e.data.transition);if(t(a)||1!==i.nodeType)return n();if(!r(i._leaveCb)){var c=a.css,u=a.type,f=a.leaveClass,l=a.leaveToClass,p=a.leaveActiveClass,d=a.beforeLeave,v=a.leave,m=a.afterLeave,g=a.leaveCancelled,y=a.delayLeave,b=a.duration,_=!1!==c&&!Oc,w=ni(v),x=h(s(b)?b.leave:b);r(x)&&ti(x,"leave",e);var S=i._leaveCb=T(function(){i.parentNode&&i.parentNode._pending&&(i.parentNode._pending[e.key]=null),_&&(qo(i,l),qo(i,p)),S.cancelled?(_&&qo(i,f),g&&g(i)):(n(),m&&m(i)),i._leaveCb=null});y?y(o):o()}}function ti(t,e,n){"number"!=typeof t?hu("<transition> explicit ".concat(e," duration is not a valid number - ")+"got ".concat(JSON.stringify(t),"."),n.context):isNaN(t)&&hu("<transition> explicit ".concat(e," duration is NaN - ")+"the duration expression might be incorrect.",n.context)}function ei(t){return"number"==typeof t&&!isNaN(t)}function ni(e){if(t(e))return!1;var n=e.fns;return r(n)?ni(Array.isArray(n)?n[0]:n):(e._length||e.length)>1}function ri(t,e){!0!==e.data.show&&Zo(e)}function oi(t,e,n){ii(t,e,n),(Sc||$c)&&setTimeout(function(){ii(t,e,n)},0)}function ii(t,e,n){var r=e.value,o=t.multiple;if(o&&!Array.isArray(r))return void hu('<select multiple v-model="'.concat(e.expression,'"> ')+"expects an Array value for its binding, but got ".concat(Object.prototype.toString.call(r).slice(8,-1)),n);for(var i,a,c=0,s=t.options.length;c<s;c++)if(a=t.options[c],o)i=C(r,ci(a))>-1,a.selected!==i&&(a.selected=i);else if(k(ci(a),r))return void(t.selectedIndex!==c&&(t.selectedIndex=c));o||(t.selectedIndex=-1)}function ai(t,e){return e.every(function(e){return!k(e,t)})}function ci(t){return"_value"in t?t._value:t.value}function si(t){t.target.composing=!0}function ui(t){t.target.composing&&(t.target.composing=!1,fi(t.target,"input"))}function fi(t,e){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0),t.dispatchEvent(n)}function li(t){return!t.componentInstance||t.data&&t.data.transition?t:li(t.componentInstance._vnode)}function pi(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?pi(de(e.children)):t}function di(t){var e={},n=t.$options;for(var r in n.propsData)e[r]=t[r];var o=n._parentListeners;for(var r in o)e[cc(r)]=o[r];return e}function vi(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{props:e.componentOptions.propsData})}function hi(t){for(;t=t.parent;)if(t.data.transition)return!0}function mi(t,e){return e.key===t.key&&e.tag===t.tag}function gi(t){t.elm._moveCb&&t.elm._moveCb(),t.elm._enterCb&&t.elm._enterCb()}function yi(t){t.data.newPos=t.elm.getBoundingClientRect()}function bi(t){var e=t.data.pos,n=t.data.newPos,r=e.left-n.left,o=e.top-n.top;if(r||o){t.data.moved=!0;var i=t.elm.style;i.transform=i.WebkitTransform="translate(".concat(r,"px,").concat(o,"px)"),i.transitionDuration="0s"}}function _i(t,e){var n=e?pl(e):fl;if(n.test(t)){for(var r,o,i,a=[],c=[],s=n.lastIndex=0;r=n.exec(t);){o=r.index,o>s&&(c.push(i=t.slice(s,o)),a.push(JSON.stringify(i)));var u=to(r[1].trim());a.push("_s(".concat(u,")")),c.push({"@binding":u}),s=o+r[0].length}return s<t.length&&(c.push(i=t.slice(s)),a.push(JSON.stringify(i))),{expression:a.join("+"),tokens:c}}}function wi(t,e){var n=e.warn||no,r=po(t,"class");if(r){_i(r,e.delimiters)&&n('class="'.concat(r,'": ')+'Interpolation inside attributes has been removed. Use v-bind or the colon shorthand instead. For example, instead of <div class="{{ val }}">, use <div :class="val">.',t.rawAttrsMap.class)}r&&(t.staticClass=JSON.stringify(r.replace(/\s+/g," ").trim()));var o=lo(t,"class",!1);o&&(t.classBinding=o)}function xi(t){var e="";return t.staticClass&&(e+="staticClass:".concat(t.staticClass,",")),t.classBinding&&(e+="class:".concat(t.classBinding,",")),e}function Si(t,e){var n=e.warn||no,r=po(t,"style");if(r){_i(r,e.delimiters)&&n('style="'.concat(r,'": ')+'Interpolation inside attributes has been removed. Use v-bind or the colon shorthand instead. For example, instead of <div style="{{ val }}">, use <div :style="val">.',t.rawAttrsMap.style),t.staticStyle=JSON.stringify(bf(r))}var o=lo(t,"style",!1);o&&(t.styleBinding=o)}function Oi(t){var e="";return t.staticStyle&&(e+="staticStyle:".concat(t.staticStyle,",")),t.styleBinding&&(e+="style:(".concat(t.styleBinding,"),")),e}function $i(t,e){var n=e?Il:Ml;return t.replace(n,function(t){return El[t]})}function ki(t,e){function n(e){p+=e,t=t.substring(e)}function r(){var e=t.match(Sl);if(e){var r={tagName:e[1],attrs:[],start:p};n(e[0].length);for(var o=void 0,i=void 0;!(o=t.match(Ol))&&(i=t.match(_l)||t.match(bl));)i.start=p,n(i[0].length),i.end=p,r.attrs.push(i);if(o)return r.unarySlash=o[1],n(o[0].length),r.end=p,r}}function o(t){var n=t.tagName,r=t.unarySlash;u&&("p"===c&&yl(n)&&i(c),l(n)&&c===n&&i(n));for(var o=f(n)||!!r,a=t.attrs.length,p=new Array(a),d=0;d<a;d++){var v=t.attrs[d],h=v[3]||v[4]||v[5]||"",m="a"===n&&"href"===v[1]?e.shouldDecodeNewlinesForHref:e.shouldDecodeNewlines;p[d]={name:v[1],value:$i(h,m)},e.outputSourceRange&&(p[d].start=v.start+v[0].match(/^\s*/).length,p[d].end=v.end)}o||(s.push({tag:n,lowerCasedTag:n.toLowerCase(),attrs:p,start:t.start,end:t.end}),c=n),e.start&&e.start(n,p,o,t.start,t.end)}function i(t,n,r){var o,i;if(null==n&&(n=p),null==r&&(r=p),t)for(i=t.toLowerCase(),o=s.length-1;o>=0&&s[o].lowerCasedTag!==i;o--);else o=0;if(o>=0){for(var a=s.length-1;a>=o;a--)(a>o||!t)&&e.warn&&e.warn("tag <".concat(s[a].tag,"> has no matching end tag."),{start:s[a].start,end:s[a].end}),e.end&&e.end(s[a].tag,n,r);s.length=o,c=o&&s[o-1].tag}else"br"===i?e.start&&e.start(t,[],!0,n,r):"p"===i&&(e.start&&e.start(t,[],!1,n,r),e.end&&e.end(t,n,r))}for(var a,c,s=[],u=e.expectHTML,f=e.isUnaryTag||pc,l=e.canBeLeftOpenTag||pc,p=0;t;){if("break"===function(){if(a=t,c&&jl(c)){var u=0,f=c.toLowerCase(),l=Al[f]||(Al[f]=new RegExp("([\\s\\S]*?)(</"+f+"[^>]*>)","i")),d=t.replace(l,function(t,n,r){return u=r.length,jl(f)||"noscript"===f||(n=n.replace(/<!\--([\s\S]*?)-->/g,"$1").replace(/<!\[CDATA\[([\s\S]*?)]]>/g,"$1")),Nl(f,n)&&(n=n.slice(1)),e.chars&&e.chars(n),""});p+=t.length-d.length,t=d,i(f,p-u,p)}else{var v=t.indexOf("<");if(0===v){if(Cl.test(t)){var h=t.indexOf("--\x3e");if(h>=0)return e.shouldKeepComment&&e.comment&&e.comment(t.substring(4,h),p,p+h+3),n(h+3),"continue"}if(Tl.test(t)){var m=t.indexOf("]>");if(m>=0)return n(m+2),"continue"}var g=t.match(kl);if(g)return n(g[0].length),"continue";var y=t.match($l);if(y){var b=p;return n(y[0].length),i(y[1],b,p),"continue"}var _=r();if(_)return o(_),Nl(_.tagName,t)&&n(1),"continue"}var w=void 0,d=void 0,x=void 0;if(v>=0){for(d=t.slice(v);!($l.test(d)||Sl.test(d)||Cl.test(d)||Tl.test(d)||(x=d.indexOf("<",1))<0);)v+=x,d=t.slice(v);w=t.substring(0,v)}v<0&&(w=t),w&&n(w.length),e.chars&&w&&e.chars(w,p-w.length,p)}if(t===a)return e.chars&&e.chars(t),!s.length&&e.warn&&e.warn('Mal-formatted tag at end of template: "'.concat(t,'"'),{start:p+t.length}),"break"}())break}i()}function Ci(t,e,n){return{type:1,tag:t,attrsList:e,attrsMap:Ji(e),rawAttrsMap:{},parent:n,children:[]}}function Ti(t,e){function n(t,e){v||(v=!0,Zf(t,e))}function r(t){if(o(t),p||t.processed||(t=Ei(t,e)),u.length||t===c||(c.if&&(t.elseif||t.else)?(i(t),Fi(c,{exp:t.elseif,block:t})):n("Component template should contain exactly one root element. If you are using v-if on multiple elements, use v-else-if to chain them instead.",{start:t.start})),s&&!t.forbidden)if(t.elseif||t.else)Di(t,s);else{if(t.slotScope){var r=t.slotTarget||'"default"';(s.scopedSlots||(s.scopedSlots={}))[r]=t}s.children.push(t),t.parent=s}t.children=t.children.filter(function(t){return!t.slotScope}),o(t),t.pre&&(p=!1),rl(t.tag)&&(d=!1);for(var a=0;a<nl.length;a++)nl[a](t,e)}function o(t){if(!d)for(var e=void 0;(e=t.children[t.children.length-1])&&3===e.type&&" "===e.text;)t.children.pop()}function i(t){"slot"!==t.tag&&"template"!==t.tag||n("Cannot use <".concat(t.tag,"> as component root element because it may ")+"contain multiple nodes.",{start:t.start}),t.attrsMap.hasOwnProperty("v-for")&&n("Cannot use v-for on stateful component root element because it renders multiple elements.",t.rawAttrsMap["v-for"])}Zf=e.warn||no,rl=e.isPreTag||pc,ol=e.mustUseProp||pc,il=e.getTagNamespace||pc;var a=e.isReservedTag||pc;al=function(t){return!(!(t.component||t.attrsMap[":is"]||t.attrsMap["v-bind:is"])&&a(t.attrsMap.is?t.attrsMap.is:t.tag))},tl=ro(e.modules,"transformNode"),el=ro(e.modules,"preTransformNode"),nl=ro(e.modules,"postTransformNode"),Qf=e.delimiters;var c,s,u=[],f=!1!==e.preserveWhitespace,l=e.whitespace,p=!1,d=!1,v=!1;return ki(t,{warn:Zf,expectHTML:e.expectHTML,isUnaryTag:e.isUnaryTag,canBeLeftOpenTag:e.canBeLeftOpenTag,shouldDecodeNewlines:e.shouldDecodeNewlines,shouldDecodeNewlinesForHref:e.shouldDecodeNewlinesForHref,shouldKeepComment:e.comments,outputSourceRange:e.outputSourceRange,start:function(t,n,o,a,f){var l=s&&s.ns||il(t);Sc&&"svg"===l&&(n=Xi(n));var v=Ci(t,n,s);l&&(v.ns=l),e.outputSourceRange&&(v.start=a,v.end=f,v.rawAttrsMap=v.attrsList.reduce(function(t,e){return t[e.name]=e,t},{})),n.forEach(function(t){Jl.test(t.name)&&Zf("Invalid dynamic argument expression: attribute names cannot contain spaces, quotes, <, >, / or =.",e.outputSourceRange?{start:t.start+t.name.indexOf("["),end:t.start+t.name.length}:void 0)}),Yi(v)&&!Ic()&&(v.forbidden=!0,Zf("Templates should only be responsible for mapping the state to the UI. Avoid placing tags with side-effects in your templates, such as "+"<".concat(t,">")+", as they will not be parsed.",{start:v.start}));for(var h=0;h<el.length;h++)v=el[h](v,e)||v;p||(ji(v),v.pre&&(p=!0)),rl(v.tag)&&(d=!0),p?Ai(v):v.processed||(Pi(v),Ri(v),Ui(v)),c||(c=v,i(c)),o?r(v):(s=v,u.push(v))},end:function(t,n,o){var i=u[u.length-1];u.length-=1,s=u[u.length-1],e.outputSourceRange&&(i.end=o),r(i)},chars:function(r,o,i){if(!s)return void(r===t?n("Component template requires a root element, rather than just text.",{start:o}):(r=r.trim())&&n('text "'.concat(r,'" outside root element will be ignored.'),{start:o}));if(!Sc||"textarea"!==s.tag||s.attrsMap.placeholder!==r){var a=s.children;if(r=d||r.trim()?Wi(s)?r:Wl(r):a.length?l?"condense"===l&&Kl.test(r)?"":" ":f?" ":"":""){d||"condense"!==l||(r=r.replace(ql," "));var c=void 0,u=void 0;!p&&" "!==r&&(c=_i(r,Qf))?u={type:2,expression:c.expression,tokens:c.tokens,text:r}:" "===r&&a.length&&" "===a[a.length-1].text||(u={type:3,text:r}),u&&(e.outputSourceRange&&(u.start=o,u.end=i),a.push(u))}}},comment:function(t,n,r){if(s){var o={type:3,text:t,isComment:!0};e.outputSourceRange&&(o.start=n,o.end=r),s.children.push(o)}}}),c}function ji(t){null!=po(t,"v-pre")&&(t.pre=!0)}function Ai(t){var e=t.attrsList,n=e.length;if(n)for(var r=t.attrs=new Array(n),o=0;o<n;o++)r[o]={name:e[o].name,value:JSON.stringify(e[o].value)},null!=e[o].start&&(r[o].start=e[o].start,r[o].end=e[o].end);else t.pre||(t.plain=!0)}function Ei(t,e){Mi(t),t.plain=!t.key&&!t.scopedSlots&&!t.attrsList.length,Ii(t),Vi(t),Bi(t),zi(t);for(var n=0;n<tl.length;n++)t=tl[n](t,e)||t;return Gi(t),t}function Mi(t){var e=lo(t,"key");if(e){if("template"===t.tag&&Zf("<template> cannot be keyed. Place the key on real elements instead.",fo(t,"key")),t.for){var n=t.iterator2||t.iterator1,r=t.parent;n&&n===e&&r&&"transition-group"===r.tag&&Zf("Do not use v-for index as key on <transition-group> children, this is the same as not using keys.",fo(t,"key"),!0)}t.key=e}}function Ii(t){var e=lo(t,"ref");e&&(t.ref=e,t.refInFor=Ki(t))}function Pi(t){var e;if(e=po(t,"v-for")){var n=Ni(e);n?S(t,n):Zf("Invalid v-for expression: ".concat(e),t.rawAttrsMap["v-for"])}}function Ni(t){var e=t.match(Ll);if(e){var n={};n.for=e[2].trim();var r=e[1].trim().replace(Ul,""),o=r.match(Fl);return o?(n.alias=r.replace(Fl,"").trim(),n.iterator1=o[1].trim(),o[2]&&(n.iterator2=o[2].trim())):n.alias=r,n}}function Ri(t){var e=po(t,"v-if");if(e)t.if=e,Fi(t,{exp:e,block:t});else{null!=po(t,"v-else")&&(t.else=!0);var n=po(t,"v-else-if");n&&(t.elseif=n)}}function Di(t,e){var n=Li(e.children);n&&n.if?Fi(n,{exp:t.elseif,block:t}):Zf("v-".concat(t.elseif?'else-if="'+t.elseif+'"':"else"," ")+"used on element <".concat(t.tag,"> without corresponding v-if."),t.rawAttrsMap[t.elseif?"v-else-if":"v-else"])}function Li(t){for(var e=t.length;e--;){if(1===t[e].type)return t[e];" "!==t[e].text&&Zf('text "'.concat(t[e].text.trim(),'" between v-if and v-else(-if) ')+"will be ignored.",t[e]),t.pop()}}function Fi(t,e){t.ifConditions||(t.ifConditions=[]),t.ifConditions.push(e)}function Ui(t){null!=po(t,"v-once")&&(t.once=!0)}function Vi(t){var e;"template"===t.tag?(e=po(t,"scope"),e&&Zf('the "scope" attribute for scoped slots have been deprecated and replaced by "slot-scope" since 2.5. The new "slot-scope" attribute can also be used on plain elements in addition to <template> to denote scoped slots.',t.rawAttrsMap.scope,!0),t.slotScope=e||po(t,"slot-scope")):(e=po(t,"slot-scope"))&&(t.attrsMap["v-for"]&&Zf("Ambiguous combined usage of slot-scope and v-for on <".concat(t.tag,"> ")+"(v-for takes higher priority). Use a wrapper <template> for the scoped slot to make it clearer.",t.rawAttrsMap["slot-scope"],!0),t.slotScope=e);var n=lo(t,"slot");if(n&&(t.slotTarget='""'===n?'"default"':n,t.slotTargetDynamic=!(!t.attrsMap[":slot"]&&!t.attrsMap["v-bind:slot"]),"template"===t.tag||t.slotScope||io(t,"slot",n,fo(t,"slot"))),"template"===t.tag){var r=vo(t,Gl);if(r){(t.slotTarget||t.slotScope)&&Zf("Unexpected mixed usage of different slot syntaxes.",t),t.parent&&!al(t.parent)&&Zf("<template v-slot> can only appear at the root level inside the receiving component",t);var o=Hi(r),i=o.name,a=o.dynamic;t.slotTarget=i,t.slotTargetDynamic=a,t.slotScope=r.value||Yl}}else{var r=vo(t,Gl);if(r){al(t)||Zf("v-slot can only be used on components or <template>.",r),(t.slotScope||t.slotTarget)&&Zf("Unexpected mixed usage of different slot syntaxes.",t),t.scopedSlots&&Zf("To avoid scope ambiguity, the default slot should also use <template> syntax when there are other named slots.",r);var c=t.scopedSlots||(t.scopedSlots={}),s=Hi(r),u=s.name,a=s.dynamic,f=c[u]=Ci("template",[],t);f.slotTarget=u,f.slotTargetDynamic=a,f.children=t.children.filter(function(t){if(!t.slotScope)return t.parent=f,!0}),f.slotScope=r.value||Yl,t.children=[],t.plain=!1}}}function Hi(t){var e=t.name.replace(Gl,"");return e||("#"!==t.name[0]?e="default":Zf("v-slot shorthand syntax requires a slot name.",t)),Vl.test(e)?{name:e.slice(1,-1),dynamic:!0}:{name:'"'.concat(e,'"'),dynamic:!1}}function Bi(t){"slot"===t.tag&&(t.slotName=lo(t,"name"),t.key&&Zf("`key` does not work on <slot> because slots are abstract outlets and can possibly expand into multiple elements. Use the key on a wrapping element instead.",fo(t,"key")))}function zi(t){var e;(e=lo(t,"is"))&&(t.component=e),null!=po(t,"inline-template")&&(t.inlineTemplate=!0)}function Gi(t){var e,n,r,o,i,a,c,s,u=t.attrsList;for(e=0,n=u.length;e<n;e++)if(r=o=u[e].name,i=u[e].value,Dl.test(r))if(t.hasBindings=!0,a=qi(r.replace(Dl,"")),a&&(r=r.replace(zl,"")),Bl.test(r))r=r.replace(Bl,""),i=to(i),s=Vl.test(r),s&&(r=r.slice(1,-1)),0===i.trim().length&&Zf('The value for a v-bind expression cannot be empty. Found in "v-bind:'.concat(r,'"')),a&&(a.prop&&!s&&"innerHtml"===(r=cc(r))&&(r="innerHTML"),a.camel&&!s&&(r=cc(r)),a.sync&&(c=go(i,"$event"),s?uo(t,'"update:"+('.concat(r,")"),c,null,!1,Zf,u[e],!0):(uo(t,"update:".concat(cc(r)),c,null,!1,Zf,u[e]),fc(r)!==cc(r)&&uo(t,"update:".concat(fc(r)),c,null,!1,Zf,u[e])))),a&&a.prop||!t.component&&ol(t.tag,t.attrsMap.type,r)?oo(t,r,i,u[e],s):io(t,r,i,u[e],s);else if(Rl.test(r))r=r.replace(Rl,""),s=Vl.test(r),s&&(r=r.slice(1,-1)),uo(t,r,i,a,!1,Zf,u[e],s);else{r=r.replace(Dl,"");var f=r.match(Hl),l=f&&f[1];s=!1,l&&(r=r.slice(0,-(l.length+1)),Vl.test(l)&&(l=l.slice(1,-1),s=!0)),co(t,r,o,i,l,s,a,u[e]),"model"===r&&Zi(t,i)}else{var p=_i(i,Qf);p&&Zf("".concat(r,'="').concat(i,'": ')+'Interpolation inside attributes has been removed. Use v-bind or the colon shorthand instead. For example, instead of <div id="{{ val }}">, use <div :id="val">.',u[e]),io(t,r,JSON.stringify(i),u[e]),!t.component&&"muted"===r&&ol(t.tag,t.attrsMap.type,r)&&oo(t,r,"true",u[e])}}function Ki(t){for(var e=t;e;){if(void 0!==e.for)return!0;e=e.parent}return!1}function qi(t){var e=t.match(zl);if(e){var n={};return e.forEach(function(t){n[t.slice(1)]=!0}),n}}function Ji(t){for(var e={},n=0,r=t.length;n<r;n++)!e[t[n].name]||Sc||$c||Zf("duplicate attribute: "+t[n].name,t[n]),e[t[n].name]=t[n].value;return e}function Wi(t){return"script"===t.tag||"style"===t.tag}function Yi(t){return"style"===t.tag||"script"===t.tag&&(!t.attrsMap.type||"text/javascript"===t.attrsMap.type)}function Xi(t){for(var e=[],n=0;n<t.length;n++){var r=t[n];Xl.test(r.name)||(r.name=r.name.replace(Zl,""),e.push(r))}return e}function Zi(t,e){for(var n=t;n;)n.for&&n.alias===e&&Zf("<".concat(t.tag,' v-model="').concat(e,'">: ')+"You are binding v-model directly to a v-for iteration alias. This will not be able to modify the v-for source array because writing to the alias is like modifying a function local variable. Consider using an array of objects and use v-model on an object property instead.",t.rawAttrsMap["v-model"]),n=n.parent}function Qi(t,e){if("input"===t.tag){var n=t.attrsMap;if(!n["v-model"])return;var r=void 0;if((n[":type"]||n["v-bind:type"])&&(r=lo(t,"type")),n.type||r||!n["v-bind"]||(r="(".concat(n["v-bind"],").type")),r){var o=po(t,"v-if",!0),i=o?"&&(".concat(o,")"):"",a=null!=po(t,"v-else",!0),c=po(t,"v-else-if",!0),s=ta(t);Pi(s),ao(s,"type","checkbox"),Ei(s,e),s.processed=!0,s.if="(".concat(r,")==='checkbox'")+i,Fi(s,{exp:s.if,block:s});var u=ta(t);po(u,"v-for",!0),ao(u,"type","radio"),Ei(u,e),Fi(s,{exp:"(".concat(r,")==='radio'")+i,block:u});var f=ta(t);return po(f,"v-for",!0),ao(f,":type",r),Ei(f,e),Fi(s,{exp:o,block:f}),a?s.else=!0:c&&(s.elseif=c),s}}}function ta(t){return Ci(t.tag,t.attrsList.slice(),t.parent)}function ea(t,e){e.value&&oo(t,"textContent","_s(".concat(e.value,")"),e)}function na(t,e){e.value&&oo(t,"innerHTML","_s(".concat(e.value,")"),e)}function ra(t,e){t&&(cl=rp(e.staticKeys||""),sl=e.isReservedTag||pc,ia(t),aa(t,!1))}function oa(t){return m("type,tag,attrsList,attrsMap,plain,parent,children,attrs,start,end,rawAttrsMap"+(t?","+t:""))}function ia(t){if(t.static=ca(t),1===t.type){if(!sl(t.tag)&&"slot"!==t.tag&&null==t.attrsMap["inline-template"])return;for(var e=0,n=t.children.length;e<n;e++){var r=t.children[e];ia(r),r.static||(t.static=!1)}if(t.ifConditions)for(var e=1,n=t.ifConditions.length;e<n;e++){var o=t.ifConditions[e].block;ia(o),o.static||(t.static=!1)}}}function aa(t,e){if(1===t.type){if((t.static||t.once)&&(t.staticInFor=e),t.static&&t.children.length&&(1!==t.children.length||3!==t.children[0].type))return void(t.staticRoot=!0);if(t.staticRoot=!1,t.children)for(var n=0,r=t.children.length;n<r;n++)aa(t.children[n],e||!!t.for);if(t.ifConditions)for(var n=1,r=t.ifConditions.length;n<r;n++)aa(t.ifConditions[n].block,e)}}function ca(t){return 2!==t.type&&(3===t.type||!(!t.pre&&(t.hasBindings||t.if||t.for||rc(t.tag)||!sl(t.tag)||sa(t)||!Object.keys(t).every(cl))))}function sa(t){for(;t.parent;){if(t=t.parent,"template"!==t.tag)return!1;if(t.for)return!0}return!1}function ua(t,e){var n=e?"nativeOn:":"on:",r="",o="";for(var i in t){var a=fa(t[i]);t[i]&&t[i].dynamic?o+="".concat(i,",").concat(a,","):r+='"'.concat(i,'":').concat(a,",")}return r="{".concat(r.slice(0,-1),"}"),o?n+"_d(".concat(r,",[").concat(o.slice(0,-1),"])"):n+r}function fa(t){if(!t)return"function(){}";if(Array.isArray(t))return"[".concat(t.map(function(t){return fa(t)}).join(","),"]");var e=ap.test(t.value),n=op.test(t.value),r=ap.test(t.value.replace(ip,""));if(t.modifiers){var o="",i="",a=[];for(var c in t.modifiers)!function(e){if(fp[e])i+=fp[e],cp[e]&&a.push(e);else if("exact"===e){var n=t.modifiers;i+=up(["ctrl","shift","alt","meta"].filter(function(t){return!n[t]}).map(function(t){return"$event.".concat(t,"Key")}).join("||"))}else a.push(e)}(c);a.length&&(o+=la(a)),i&&(o+=i);var s=e?"return ".concat(t.value,".apply(null, arguments)"):n?"return (".concat(t.value,").apply(null, arguments)"):r?"return ".concat(t.value):t.value;return"function($event){".concat(o).concat(s,"}")}return e||n?t.value:"function($event){".concat(r?"return ".concat(t.value):t.value,"}")}function la(t){return"if(!$event.type.indexOf('key')&&"+"".concat(t.map(pa).join("&&"),")return null;")}function pa(t){var e=parseInt(t,10);if(e)return"$event.keyCode!==".concat(e);var n=cp[t],r=sp[t];return"_k($event.keyCode,"+"".concat(JSON.stringify(t),",")+"".concat(JSON.stringify(n),",")+"$event.key,"+"".concat(JSON.stringify(r))+")"}function da(t,e){e.modifiers&&hu("v-on without argument does not support modifiers."),t.wrapListeners=function(t){return"_g(".concat(t,",").concat(e.value,")")}}function va(t,e){t.wrapData=function(n){return"_b(".concat(n,",'").concat(t.tag,"',").concat(e.value,",").concat(e.modifiers&&e.modifiers.prop?"true":"false").concat(e.modifiers&&e.modifiers.sync?",true":"",")")}}function ha(t,e){var n=new pp(e);return{render:"with(this){return ".concat(t?"script"===t.tag?"null":ma(t,n):'_c("div")',"}"),staticRenderFns:n.staticRenderFns}}function ma(t,e){if(t.parent&&(t.pre=t.pre||t.parent.pre),t.staticRoot&&!t.staticProcessed)return ya(t,e);if(t.once&&!t.onceProcessed)return ba(t,e);if(t.for&&!t.forProcessed)return xa(t,e);if(t.if&&!t.ifProcessed)return _a(t,e);if("template"!==t.tag||t.slotTarget||e.pre){if("slot"===t.tag)return Ra(t,e);var n=void 0;if(t.component)n=Da(t.component,t,e);else{var r=void 0,o=e.maybeComponent(t);(!t.plain||t.pre&&o)&&(r=Sa(t,e));var i=void 0,a=e.options.bindings;o&&a&&!1!==a.__isScriptSetup&&(i=ga(a,t.tag)),i||(i="'".concat(t.tag,"'"));var c=t.inlineTemplate?null:Aa(t,e,!0);n="_c(".concat(i).concat(r?",".concat(r):"").concat(c?",".concat(c):"",")")}for(var s=0;s<e.transforms.length;s++)n=e.transforms[s](t,n);return n}return Aa(t,e)||"void 0"}function ga(t,e){var n=cc(e),r=sc(n),o=function(o){return t[e]===o?e:t[n]===o?n:t[r]===o?r:void 0},i=o("setup-const")||o("setup-reactive-const");if(i)return i;var a=o("setup-let")||o("setup-ref")||o("setup-maybe-ref");return a||void 0}function ya(t,e){t.staticProcessed=!0;var n=e.pre;return t.pre&&(e.pre=t.pre),e.staticRenderFns.push("with(this){return ".concat(ma(t,e),"}")),e.pre=n,"_m(".concat(e.staticRenderFns.length-1).concat(t.staticInFor?",true":"",")")}function ba(t,e){if(t.onceProcessed=!0,t.if&&!t.ifProcessed)return _a(t,e);if(t.staticInFor){for(var n="",r=t.parent;r;){if(r.for){n=r.key;break}r=r.parent}return n?"_o(".concat(ma(t,e),",").concat(e.onceId++,",").concat(n,")"):(e.warn("v-once can only be used inside v-for that is keyed. ",t.rawAttrsMap["v-once"]),ma(t,e))}return ya(t,e)}function _a(t,e,n,r){return t.ifProcessed=!0,wa(t.ifConditions.slice(),e,n,r)}function wa(t,e,n,r){function o(t){return n?n(t,e):t.once?ba(t,e):ma(t,e)}if(!t.length)return r||"_e()";var i=t.shift();return i.exp?"(".concat(i.exp,")?").concat(o(i.block),":").concat(wa(t,e,n,r)):"".concat(o(i.block))}function xa(t,e,n,r){var o=t.for,i=t.alias,a=t.iterator1?",".concat(t.iterator1):"",c=t.iterator2?",".concat(t.iterator2):"";return e.maybeComponent(t)&&"slot"!==t.tag&&"template"!==t.tag&&!t.key&&e.warn("<".concat(t.tag,' v-for="').concat(i," in ").concat(o,'">: component lists rendered with ')+"v-for should have explicit keys. See https://v2.vuejs.org/v2/guide/list.html#key for more info.",t.rawAttrsMap["v-for"],!0),t.forProcessed=!0,"".concat(r||"_l","((").concat(o,"),")+"function(".concat(i).concat(a).concat(c,"){")+"return ".concat((n||ma)(t,e))+"})"}function Sa(t,e){var n="{",r=Oa(t,e);r&&(n+=r+","),t.key&&(n+="key:".concat(t.key,",")),t.ref&&(n+="ref:".concat(t.ref,",")),t.refInFor&&(n+="refInFor:true,"),t.pre&&(n+="pre:true,"),t.component&&(n+='tag:"'.concat(t.tag,'",'));for(var o=0;o<e.dataGenFns.length;o++)n+=e.dataGenFns[o](t);if(t.attrs&&(n+="attrs:".concat(La(t.attrs),",")),t.props&&(n+="domProps:".concat(La(t.props),",")),t.events&&(n+="".concat(ua(t.events,!1),",")),t.nativeEvents&&(n+="".concat(ua(t.nativeEvents,!0),",")),t.slotTarget&&!t.slotScope&&(n+="slot:".concat(t.slotTarget,",")),t.scopedSlots&&(n+="".concat(ka(t,t.scopedSlots,e),",")),t.model&&(n+="model:{value:".concat(t.model.value,",callback:").concat(t.model.callback,",expression:").concat(t.model.expression,"},")),t.inlineTemplate){var i=$a(t,e);i&&(n+="".concat(i,","))}return n=n.replace(/,$/,"")+"}",t.dynamicAttrs&&(n="_b(".concat(n,',"').concat(t.tag,'",').concat(La(t.dynamicAttrs),")")),t.wrapData&&(n=t.wrapData(n)),t.wrapListeners&&(n=t.wrapListeners(n)),n}function Oa(t,e){var n=t.directives;if(n){var r,o,i,a,c="directives:[",s=!1;for(r=0,o=n.length;r<o;r++){i=n[r],a=!0;var u=e.directives[i.name];u&&(a=!!u(t,i,e.warn)),a&&(s=!0,c+='{name:"'.concat(i.name,'",rawName:"').concat(i.rawName,'"').concat(i.value?",value:(".concat(i.value,"),expression:").concat(JSON.stringify(i.value)):"").concat(i.arg?",arg:".concat(i.isDynamicArg?i.arg:'"'.concat(i.arg,'"')):"").concat(i.modifiers?",modifiers:".concat(JSON.stringify(i.modifiers)):"","},"))}return s?c.slice(0,-1)+"]":void 0}}function $a(t,e){var n=t.children[0];if(1===t.children.length&&1===n.type||e.warn("Inline-template components must have exactly one child element.",{start:t.start}),n&&1===n.type){var r=ha(n,e.options);return"inlineTemplate:{render:function(){".concat(r.render,"},staticRenderFns:[").concat(r.staticRenderFns.map(function(t){return"function(){".concat(t,"}")}).join(","),"]}")}}function ka(t,e,n){var r=t.for||Object.keys(e).some(function(t){var n=e[t];return n.slotTargetDynamic||n.if||n.for||Ta(n)}),o=!!t.if;if(!r)for(var i=t.parent;i;){if(i.slotScope&&i.slotScope!==Yl||i.for){r=!0;break}i.if&&(o=!0),i=i.parent}var a=Object.keys(e).map(function(t){return ja(e[t],n)}).join(",");return"scopedSlots:_u([".concat(a,"]").concat(r?",null,true":"").concat(!r&&o?",null,false,".concat(Ca(a)):"",")")}function Ca(t){for(var e=5381,n=t.length;n;)e=33*e^t.charCodeAt(--n);return e>>>0}function Ta(t){return 1===t.type&&("slot"===t.tag||t.children.some(Ta))}function ja(t,e){var n=t.attrsMap["slot-scope"];if(t.if&&!t.ifProcessed&&!n)return _a(t,e,ja,"null");if(t.for&&!t.forProcessed)return xa(t,e,ja);var r=t.slotScope===Yl?"":String(t.slotScope),o="function(".concat(r,"){")+"return ".concat("template"===t.tag?t.if&&n?"(".concat(t.if,")?").concat(Aa(t,e)||"undefined",":undefined"):Aa(t,e)||"undefined":ma(t,e),"}"),i=r?"":",proxy:true";return"{key:".concat(t.slotTarget||'"default"',",fn:").concat(o).concat(i,"}")}function Aa(t,e,n,r,o){var i=t.children;if(i.length){var a=i[0];if(1===i.length&&a.for&&"template"!==a.tag&&"slot"!==a.tag){var c=n?e.maybeComponent(a)?",1":",0":"";return"".concat((r||ma)(a,e)).concat(c)}var s=n?Ea(i,e.maybeComponent):0,u=o||Ia;return"[".concat(i.map(function(t){return u(t,e)}).join(","),"]").concat(s?",".concat(s):"")}}function Ea(t,e){for(var n=0,r=0;r<t.length;r++){var o=t[r];if(1===o.type){if(Ma(o)||o.ifConditions&&o.ifConditions.some(function(t){return Ma(t.block)})){n=2;break}(e(o)||o.ifConditions&&o.ifConditions.some(function(t){return e(t.block)}))&&(n=1)}}return n}function Ma(t){return void 0!==t.for||"template"===t.tag||"slot"===t.tag}function Ia(t,e){return 1===t.type?ma(t,e):3===t.type&&t.isComment?Na(t):Pa(t)}function Pa(t){return"_v(".concat(2===t.type?t.expression:Fa(JSON.stringify(t.text)),")")}function Na(t){return"_e(".concat(JSON.stringify(t.text),")")}function Ra(t,e){var n=t.slotName||'"default"',r=Aa(t,e),o="_t(".concat(n).concat(r?",function(){return ".concat(r,"}"):""),i=t.attrs||t.dynamicAttrs?La((t.attrs||[]).concat(t.dynamicAttrs||[]).map(function(t){return{name:cc(t.name),value:t.value,dynamic:t.dynamic}})):null,a=t.attrsMap["v-bind"];return!i&&!a||r||(o+=",null"),i&&(o+=",".concat(i)),a&&(o+="".concat(i?"":",null",",").concat(a)),o+")"}function Da(t,e,n){var r=e.inlineTemplate?null:Aa(e,n,!0);return"_c(".concat(t,",").concat(Sa(e,n)).concat(r?",".concat(r):"",")")}function La(t){for(var e="",n="",r=0;r<t.length;r++){var o=t[r],i=Fa(o.value);o.dynamic?n+="".concat(o.name,",").concat(i,","):e+='"'.concat(o.name,'":').concat(i,",")}return e="{".concat(e.slice(0,-1),"}"),n?"_d(".concat(e,",[").concat(n.slice(0,-1),"])"):e}function Fa(t){return t.replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}function Ua(t,e){t&&Va(t,e)}function Va(t,e){if(1===t.type){for(var n in t.attrsMap)if(Dl.test(n)){var r=t.attrsMap[n];if(r){var o=t.rawAttrsMap[n];"v-for"===n?Ba(t,'v-for="'.concat(r,'"'),e,o):"v-slot"===n||"#"===n[0]?Ka(r,"".concat(n,'="').concat(r,'"'),e,o):Rl.test(n)?Ha(r,"".concat(n,'="').concat(r,'"'),e,o):Ga(r,"".concat(n,'="').concat(r,'"'),e,o)}}if(t.children)for(var i=0;i<t.children.length;i++)Va(t.children[i],e)}else 2===t.type&&Ga(t.expression,t.text,e,t)}function Ha(t,e,n,r){var o=t.replace(hp,""),i=o.match(vp);i&&"$"!==o.charAt(i.index-1)&&n("avoid using JavaScript unary operator as property name: "+'"'.concat(i[0],'" in expression ').concat(e.trim()),r),Ga(t,e,n,r)}function Ba(t,e,n,r){Ga(t.for||"",e,n,r),za(t.alias,"v-for alias",e,n,r),za(t.iterator1,"v-for iterator",e,n,r),za(t.iterator2,"v-for iterator",e,n,r)}function za(t,e,n,r,o){if("string"==typeof t)try{new Function("var ".concat(t,"=_"))}catch(i){r("invalid ".concat(e,' "').concat(t,'" in expression: ').concat(n.trim()),o)}}function Ga(t,e,n,r){try{new Function("return ".concat(t))}catch(i){var o=t.replace(hp,"").match(dp);o?n("avoid using JavaScript keyword as property name: "+'"'.concat(o[0],'"\n Raw expression: ').concat(e.trim()),r):n("invalid expression: ".concat(i.message," in\n\n")+" ".concat(t,"\n\n")+" Raw expression: ".concat(e.trim(),"\n"),r)}}function Ka(t,e,n,r){try{new Function(t,"")}catch(o){n("invalid function parameter expression: ".concat(o.message," in\n\n")+" ".concat(t,"\n\n")+" Raw expression: ".concat(e.trim(),"\n"),r)}}function qa(t,e,n){void 0===e&&(e=0),void 0===n&&(n=t.length);for(var r=t.split(/\r?\n/),o=0,i=[],a=0;a<r.length;a++)if((o+=r[a].length+1)>=e){for(var c=a-mp;c<=a+mp||n>o;c++)if(!(c<0||c>=r.length)){i.push("".concat(c+1).concat(Ja(" ",3-String(c+1).length),"| ").concat(r[c]));var s=r[c].length;if(c===a){var u=e-(o-s)+1,f=n>o?s-u:n-e;i.push(" | "+Ja(" ",u)+Ja("^",f))}else if(c>a){if(n>o){var l=Math.min(n-o,s);i.push(" | "+Ja("^",l))}o+=s+1}}break}return i.join("\n")}function Ja(t,e){var n="";if(e>0)for(;;){if(1&e&&(n+=t),(e>>>=1)<=0)break;t+=t}return n}function Wa(t,e){try{return new Function(t)}catch(n){return e.push({err:n,code:t}),$}}function Ya(t){var e=Object.create(null);return function(n,r,o){r=S({},r);var i=r.warn||hu;delete r.warn;try{new Function("return 1")}catch(t){t.toString().match(/unsafe-eval|CSP/)&&i("It seems you are using the standalone build of Vue.js in an environment with Content Security Policy that prohibits unsafe-eval. The template compiler cannot work in this environment. Consider relaxing the policy to allow unsafe-eval or pre-compiling your templates into render functions.")}var a=r.delimiters?String(r.delimiters)+n:n;if(e[a])return e[a];var c=t(n,r);c.errors&&c.errors.length&&(r.outputSourceRange?c.errors.forEach(function(t){i("Error compiling template:\n\n".concat(t.msg,"\n\n")+qa(n,t.start,t.end),o)}):i("Error compiling template:\n\n".concat(n,"\n\n")+c.errors.map(function(t){return"- ".concat(t)}).join("\n")+"\n",o)),c.tips&&c.tips.length&&(r.outputSourceRange?c.tips.forEach(function(t){return mu(t.msg,o)}):c.tips.forEach(function(t){return mu(t,o)}));var s={},u=[];return s.render=Wa(c.render,u),s.staticRenderFns=c.staticRenderFns.map(function(t){return Wa(t,u)}),c.errors&&c.errors.length||!u.length||i("Failed to generate render function:\n\n"+u.map(function(t){var e=t.err,n=t.code;return"".concat(e.toString()," in\n\n").concat(n,"\n")}).join("\n"),o),e[a]=s}}function Xa(t){return ul=ul||document.createElement("div"),ul.innerHTML=t?'<a href="\n"/>':'<div a="\n"/>',ul.innerHTML.indexOf(" ")>0}function Za(t){if(t.outerHTML)return t.outerHTML;var e=document.createElement("div");return e.appendChild(t.cloneNode(!0)),e.innerHTML}function Qa(t,e){var n=new cu(Dc,t,$,{sync:!0});e&&(n.update=function(){e(function(){return n.run()})})}var tc=Object.freeze({}),ec=Array.isArray,nc=Object.prototype.toString,rc=m("slot,component",!0),oc=m("key,ref,slot,slot-scope,is"),ic=Object.prototype.hasOwnProperty,ac=/-(\w)/g,cc=b(function(t){return t.replace(ac,function(t,e){return e?e.toUpperCase():""})}),sc=b(function(t){return t.charAt(0).toUpperCase()+t.slice(1)}),uc=/\B([A-Z])/g,fc=b(function(t){return t.replace(uc,"-$1").toLowerCase()}),lc=Function.prototype.bind?w:_,pc=function(t,e,n){return!1},dc=function(t){return t},vc="data-server-rendered",hc=["component","directive","filter"],mc=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeDestroy","destroyed","activated","deactivated","errorCaptured","serverPrefetch","renderTracked","renderTriggered"],gc={optionMergeStrategies:Object.create(null),silent:!1,productionTip:!0,devtools:!0,performance:!1,errorHandler:null,warnHandler:null,ignoredElements:[],keyCodes:Object.create(null),isReservedTag:pc,isReservedAttr:pc,isUnknownElement:pc,getTagNamespace:$,parsePlatformTagName:dc,mustUseProp:pc,async:!0,_lifecycleHooks:mc},yc=/a-zA-Z\u00B7\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD/,bc=new RegExp("[^".concat(yc.source,".$_\\d]")),_c="__proto__"in{},wc="undefined"!=typeof window,xc=wc&&window.navigator.userAgent.toLowerCase(),Sc=xc&&/msie|trident/.test(xc),Oc=xc&&xc.indexOf("msie 9.0")>0,$c=xc&&xc.indexOf("edge/")>0;xc&&xc.indexOf("android");var kc=xc&&/iphone|ipad|ipod|ios/.test(xc);xc&&/chrome\/\d+/.test(xc),xc&&/phantomjs/.test(xc);var Cc=xc&&xc.match(/firefox\/(\d+)/),Tc={}.watch,jc=!1;if(wc)try{var Ac={};Object.defineProperty(Ac,"passive",{get:function(){jc=!0}}),window.addEventListener("test-passive",null,Ac)}catch(t){}var Ec,Mc,Ic=function(){return void 0===Ec&&(Ec=!wc&&void 0!==e&&(e.process&&"server"===e.process.env.VUE_ENV)),Ec},Pc=wc&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__,Nc="undefined"!=typeof Symbol&&I(Symbol)&&"undefined"!=typeof Reflect&&I(Reflect.ownKeys);Mc="undefined"!=typeof Set&&I(Set)?Set:function(){function t(){this.set=Object.create(null)}return t.prototype.has=function(t){return!0===this.set[t]},t.prototype.add=function(t){this.set[t]=!0},t.prototype.clear=function(){this.set=Object.create(null)},t}();var Rc,Dc=null,Lc=function(){function t(t,e,n,r,o,i,a,c){this.tag=t,this.data=e,this.children=n,this.text=r,this.elm=o,this.ns=void 0,this.context=i,this.fnContext=void 0,this.fnOptions=void 0,this.fnScopeId=void 0,this.key=e&&e.key,this.componentOptions=a,this.componentInstance=void 0,this.parent=void 0,this.raw=!1,this.isStatic=!1,this.isRootInsert=!0,this.isComment=!1,this.isCloned=!1,this.isOnce=!1,this.asyncFactory=c,this.asyncMeta=void 0,this.isAsyncPlaceholder=!1}return Object.defineProperty(t.prototype,"child",{get:function(){return this.componentInstance},enumerable:!1,configurable:!0}),t}(),Fc=function(t){void 0===t&&(t="");var e=new Lc;return e.text=t,e.isComment=!0,e},Uc=m("Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,require"),Vc=function(t,e){hu('Property or method "'.concat(e,'" is not defined on the instance but ')+"referenced during render. Make sure that this property is reactive, either in the data option, or for class-based components, by initializing the property. See: https://v2.vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.",t)},Hc=function(t,e){hu('Property "'.concat(e,'" must be accessed with "$data.').concat(e,'" because ')+'properties starting with "$" or "_" are not proxied in the Vue instance to prevent conflicts with Vue internals. See: https://v2.vuejs.org/v2/api/#data',t)},Bc="undefined"!=typeof Proxy&&I(Proxy);if(Bc){var zc=m("stop,prevent,self,ctrl,shift,alt,meta,exact");gc.keyCodes=new Proxy(gc.keyCodes,{set:function(t,e,n){return zc(e)?(hu("Avoid overwriting built-in modifier in config.keyCodes: .".concat(e)),!1):(t[e]=n,!0)}})}var Gc={has:function(t,e){var n=e in t,r=Uc(e)||"string"==typeof e&&"_"===e.charAt(0)&&!(e in t.$data);return n||r||(e in t.$data?Hc(t,e):Vc(t,e)),n||!r}},Kc={get:function(t,e){return"string"!=typeof e||e in t||(e in t.$data?Hc(t,e):Vc(t,e)),t[e]}};Rc=function(t){if(Bc){var e=t.$options,n=e.render&&e.render._withStripped?Kc:Gc;t._renderProxy=new Proxy(t,n)}else t._renderProxy=t};var qc=function(){return qc=Object.assign||function(t){for(var e,n=1,r=arguments.length;n<r;n++){e=arguments[n];for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])}return t},qc.apply(this,arguments)},Jc=0,Wc=[],Yc=function(){for(var t=0;t<Wc.length;t++){var e=Wc[t];e.subs=e.subs.filter(function(t){return t}),e._pending=!1}Wc.length=0},Xc=function(){function t(){this._pending=!1,this.id=Jc++,this.subs=[]}return t.prototype.addSub=function(t){this.subs.push(t)},t.prototype.removeSub=function(t){this.subs[this.subs.indexOf(t)]=null,this._pending||(this._pending=!0,Wc.push(this))},t.prototype.depend=function(e){t.target&&(t.target.addDep(this),e&&t.target.onTrack&&t.target.onTrack(qc({effect:t.target},e)))},t.prototype.notify=function(t){var e=this.subs.filter(function(t){return t});gc.async||e.sort(function(t,e){return t.id-e.id});for(var n=0,r=e.length;n<r;n++){var o=e[n];t&&o.onTrigger&&o.onTrigger(qc({effect:e[n]},t)),o.update()}},t}();Xc.target=null;var Zc=[],Qc=Array.prototype,ts=Object.create(Qc);["push","pop","shift","unshift","splice","sort","reverse"].forEach(function(t){var e=Qc[t];E(ts,t,function(){for(var n=[],r=0;r<arguments.length;r++)n[r]=arguments[r];var o,i=e.apply(this,n),a=this.__ob__;switch(t){case"push":case"unshift":o=n;break;case"splice":o=n.slice(2)}return o&&a.observeArray(o),a.dep.notify({type:"array mutation",target:this,key:t}),i})});var es,ns,rs=Object.getOwnPropertyNames(ts),os={},is=!0,as={notify:$,depend:$,addSub:$,removeSub:$},cs=function(){function t(t,e,n){if(void 0===e&&(e=!1),void 0===n&&(n=!1),this.value=t,this.shallow=e,this.mock=n,this.dep=n?as:new Xc,this.vmCount=0,E(t,"__ob__",this),ec(t)){if(!n)if(_c)t.__proto__=ts;else for(var r=0,o=rs.length;r<o;r++){var i=rs[r];E(t,i,ts[i])}e||this.observeArray(t)}else for(var a=Object.keys(t),r=0;r<a.length;r++){var i=a[r];H(t,i,os,void 0,e,n)}}return t.prototype.observeArray=function(t){for(var e=0,n=t.length;e<n;e++)V(t[e],!1,this.mock)},t}(),ss="__v_isRef",us="__v_rawToReadonly",fs="__v_rawToShallowReadonly",ls=wc&&window.performance;ls&&ls.mark&&ls.measure&&ls.clearMarks&&ls.clearMeasures&&(es=function(t){return ls.mark(t)},ns=function(t,e,n){ls.measure(t,e,n),ls.clearMarks(e),ls.clearMarks(n)});var ps,ds=b(function(t){var e="&"===t.charAt(0);t=e?t.slice(1):t;var n="~"===t.charAt(0);t=n?t.slice(1):t;var r="!"===t.charAt(0);return t=r?t.slice(1):t,{name:t,once:n,capture:r,passive:e}}),vs=1,hs=2,ms=null,gs=null,ys=!1,bs=100,_s=[],ws=[],xs={},Ss={},Os=!1,$s=!1,ks=0,Cs=0,Ts=Date.now;if(wc&&!Sc){var js=window.performance;js&&"function"==typeof js.now&&Ts()>document.createEvent("Event").timeStamp&&(Ts=function(){return js.now()})}var As,Es,Ms=function(t,e){if(t.post){if(!e.post)return 1}else if(e.post)return-1;return t.id-e.id},Is="watcher",Ps="".concat(Is," callback"),Ns="".concat(Is," getter"),Rs="".concat(Is," cleanup"),Ds={},Ls=function(){function t(t){void 0===t&&(t=!1),this.detached=t,this.active=!0,this.effects=[],this.cleanups=[],this.parent=As,!t&&As&&(this.index=(As.scopes||(As.scopes=[])).push(this)-1)}return t.prototype.run=function(t){if(this.active){var e=As;try{return As=this,t()}finally{As=e}}else hu("cannot run an inactive effect scope.")},t.prototype.on=function(){As=this},t.prototype.off=function(){As=this.parent},t.prototype.stop=function(t){if(this.active){var e=void 0,n=void 0;for(e=0,n=this.effects.length;e<n;e++)this.effects[e].teardown();for(e=0,n=this.cleanups.length;e<n;e++)this.cleanups[e]();if(this.scopes)for(e=0,n=this.scopes.length;e<n;e++)this.scopes[e].stop(!0);if(!this.detached&&this.parent&&!t){var r=this.parent.scopes.pop();r&&r!==this&&(this.parent.scopes[this.index]=r,r.index=this.index)}this.parent=void 0,this.active=!1}},t}(),Fs=!1,Us=[],Vs=!1;if("undefined"!=typeof Promise&&I(Promise)){var Hs=Promise.resolve();Es=function(){Hs.then(Ye),kc&&setTimeout($)},Fs=!0}else if(Sc||"undefined"==typeof MutationObserver||!I(MutationObserver)&&"[object MutationObserverConstructor]"!==MutationObserver.toString())Es=void 0!==n&&I(n)?function(){n(Ye)}:function(){setTimeout(Ye,0)};else{var Bs=1,zs=new MutationObserver(Ye),Gs=document.createTextNode(String(Bs));zs.observe(Gs,{characterData:!0}),Es=function(){Bs=(Bs+1)%2,Gs.data=String(Bs)},Fs=!0}var Ks=en("beforeMount"),qs=en("mounted"),Js=en("beforeUpdate"),Ws=en("updated"),Ys=en("beforeDestroy"),Xs=en("destroyed"),Zs=en("activated"),Qs=en("deactivated"),tu=en("serverPrefetch"),eu=en("renderTracked"),nu=en("renderTriggered"),ru=en("errorCaptured"),ou=Object.freeze({__proto__:null,version:"2.7.14",defineComponent:an,ref:rt,shallowRef:ot,isRef:nt,toRef:pt,toRefs:lt,unref:ct,proxyRefs:st,customRef:ft,triggerRef:at,reactive:K,isReactive:W,isReadonly:X,isShallow:Y,isProxy:Z,shallowReactive:q,markRaw:tt,toRaw:Q,readonly:dt,shallowReadonly:mt,computed:gt,watch:Re,watchEffect:Ie,watchPostEffect:Pe,watchSyncEffect:Ne,EffectScope:Ls,effectScope:Le,onScopeDispose:Ve,getCurrentScope:Ue,provide:He,inject:ze,h:Ge,getCurrentInstance:P,useSlots:oe,useAttrs:ie,useListeners:ae,mergeDefaults:se,nextTick:Xe,set:B,del:z,useCssModule:Ze,useCssVars:Qe,defineAsyncComponent:tn,onBeforeMount:Ks,onMounted:qs,onBeforeUpdate:Js,onUpdated:Ws,onBeforeUnmount:Ys,onUnmounted:Xs,onActivated:Zs,onDeactivated:Qs,onServerPrefetch:tu,onRenderTracked:eu,onRenderTriggered:nu,onErrorCaptured:on}),iu=new Mc,au=0,cu=function(){function t(t,e,n,r,o){Fe(this,As&&!As._vm?As:t?t._scope:void 0),(this.vm=t)&&o&&(t._watcher=this),r?(this.deep=!!r.deep,this.user=!!r.user,this.lazy=!!r.lazy,this.sync=!!r.sync,this.before=r.before,this.onTrack=r.onTrack,this.onTrigger=r.onTrigger):this.deep=this.user=this.lazy=this.sync=!1,this.cb=n,this.id=++au,this.active=!0,this.post=!1,this.dirty=this.lazy,this.deps=[],this.newDeps=[],this.depIds=new Mc,this.newDepIds=new Mc,this.expression=e.toString(),c(e)?this.getter=e:(this.getter=M(e),this.getter||(this.getter=$,hu('Failed watching path: "'.concat(e,'" ')+"Watcher only accepts simple dot-delimited paths. For full control, use a function instead.",t))),this.value=this.lazy?void 0:this.get()}return t.prototype.get=function(){L(this);var t,e=this.vm;try{t=this.getter.call(e,e)}catch(t){if(!this.user)throw t;Ke(t,e,'getter for watcher "'.concat(this.expression,'"'))}finally{this.deep&&cn(t),F(),this.cleanupDeps()}return t},t.prototype.addDep=function(t){var e=t.id;this.newDepIds.has(e)||(this.newDepIds.add(e),this.newDeps.push(t),this.depIds.has(e)||t.addSub(this))},t.prototype.cleanupDeps=function(){for(var t=this.deps.length;t--;){var e=this.deps[t];this.newDepIds.has(e.id)||e.removeSub(this)}var n=this.depIds;this.depIds=this.newDepIds,this.newDepIds=n,this.newDepIds.clear(),n=this.deps,this.deps=this.newDeps,this.newDeps=n,this.newDeps.length=0},t.prototype.update=function(){this.lazy?this.dirty=!0:this.sync?this.run():Me(this)},t.prototype.run=function(){if(this.active){var t=this.get();if(t!==this.value||s(t)||this.deep){var e=this.value;if(this.value=t,this.user){var n='callback for watcher "'.concat(this.expression,'"');qe(this.cb,this.vm,[t,e],this.vm,n)}else this.cb.call(this.vm,t,e)}}},t.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},t.prototype.depend=function(){for(var t=this.deps.length;t--;)this.deps[t].depend()},t.prototype.teardown=function(){if(this.vm&&!this.vm._isBeingDestroyed&&g(this.vm._scope.effects,this),this.active){for(var t=this.deps.length;t--;)this.deps[t].removeSub(this);this.active=!1,this.onStop&&this.onStop()}},t}(),su={enumerable:!0,configurable:!0,get:$,set:$},uu={lazy:!0},fu=0;Gt(Cn.prototype);var lu,pu,du={init:function(t,e){if(t.componentInstance&&!t.componentInstance._isDestroyed&&t.data.keepAlive){var n=t;du.prepatch(n,n)}else{(t.componentInstance=In(t,gs)).$mount(e?t.elm:void 0,e)}},prepatch:function(t,e){var n=e.componentOptions;xe(e.componentInstance=t.componentInstance,n.propsData,n.listeners,e,n.children)},insert:function(t){var e=t.context,n=t.componentInstance;n._isMounted||(n._isMounted=!0,ke(n,"mounted")),t.data.keepAlive&&(e._isMounted?Ae(n):Oe(n,!0))},destroy:function(t){var e=t.componentInstance;e._isDestroyed||(t.data.keepAlive?$e(e,!0):e.$destroy())}},vu=Object.keys(du),hu=$,mu=$,gu="undefined"!=typeof console,yu=/(?:^|[-_])(\w)/g,bu=function(t){return t.replace(yu,function(t){return t.toUpperCase()}).replace(/[-_]/g,"")};hu=function(t,e){void 0===e&&(e=Dc);var n=e?lu(e):"";gc.warnHandler?gc.warnHandler.call(null,t,e,n):gu&&!gc.silent&&console.error("[Vue warn]: ".concat(t).concat(n))},mu=function(t,e){gu&&!gc.silent&&console.warn("[Vue tip]: ".concat(t)+(e?lu(e):""))},pu=function(t,e){if(t.$root===t)return"<Root>";var n=c(t)&&null!=t.cid?t.options:t._isVue?t.$options||t.constructor.options:t,r=En(n),o=n.__file;if(!r&&o){var i=o.match(/([^/\\]+)\.vue$/);r=i&&i[1]}return(r?"<".concat(bu(r),">"):"<Anonymous>")+(o&&!1!==e?" at ".concat(o):"")};var _u=function(t,e){for(var n="";e;)e%2==1&&(n+=t),e>1&&(t+=t),e>>=1;return n};lu=function(t){if(t._isVue&&t.$parent){for(var e=[],n=0;t;){if(e.length>0){var r=e[e.length-1];if(r.constructor===t.constructor){n++,t=t.$parent;continue}n>0&&(e[e.length-1]=[r,n],n=0)}e.push(t),t=t.$parent}return"\n\nfound in\n\n"+e.map(function(t,e){return"".concat(0===e?"---\x3e ":_u(" ",5+2*e)).concat(ec(t)?"".concat(pu(t[0]),"... (").concat(t[1]," recursive calls)"):pu(t))}).join("\n")}return"\n\n(found in ".concat(pu(t),")")};var wu=gc.optionMergeStrategies;wu.el=wu.propsData=function(t,e,n,r){return n||hu('option "'.concat(r,'" can only be used during instance ')+"creation with the `new` keyword."),xu(t,e)},wu.data=function(t,e,n){return n?Ln(t,e,n):e&&"function"!=typeof e?(hu('The "data" option should be a function that returns a per-instance value in component definitions.',n),t):Ln(t,e)},mc.forEach(function(t){wu[t]=Fn}),hc.forEach(function(t){wu[t+"s"]=Vn}),wu.watch=function(t,e,n,r){if(t===Tc&&(t=void 0),e===Tc&&(e=void 0),!e)return Object.create(t||null);if(qn(r,e,n),!t)return e;var o={};S(o,t);for(var i in e){var a=o[i],c=e[i];a&&!ec(a)&&(a=[a]),o[i]=a?a.concat(c):ec(c)?c:[c]}return o},wu.props=wu.methods=wu.inject=wu.computed=function(t,e,n,r){if(e&&qn(r,e,n),!t)return e;var o=Object.create(null);return S(o,t),e&&S(o,e),o},wu.provide=function(t,e){return t?function(){var n=Object.create(null);return Dn(n,c(t)?t.call(this):t),e&&Dn(n,c(e)?e.call(this):e,!1),n}:e};var xu=function(t,e){return void 0===e?t:e},Su=/^(String|Number|Boolean|Function|Symbol|BigInt)$/,Ou=/^\s*function (\w+)/,$u=["string","number","boolean"];!function(t){t.prototype._init=function(t){var e=this;e._uid=fu++;var n,r;gc.performance&&es&&(n="vue-perf-start:".concat(e._uid),r="vue-perf-end:".concat(e._uid),es(n)),e._isVue=!0,e.__v_skip=!0,e._scope=new Ls(!0),e._scope._vm=!0,t&&t._isComponent?On(e,t):e.$options=Jn($n(e.constructor),t||{},e),Rc(e),e._self=e,_e(e),ve(e),ue(e),ke(e,"beforeCreate",void 0,!1),xn(e),fn(e),wn(e),ke(e,"created"),gc.performance&&es&&(e._name=pu(e,!1),es(r),ns("vue ".concat(e._name," init"),n,r)),e.$options.el&&e.$mount(e.$options.el)}}(cr),function(t){var e={};e.get=function(){return this._data};var n={};n.get=function(){return this._props},e.set=function(){hu("Avoid replacing instance root $data. Use nested data properties instead.",this)},n.set=function(){hu("$props is readonly.",this)},Object.defineProperty(t.prototype,"$data",e),Object.defineProperty(t.prototype,"$props",n),t.prototype.$set=B,t.prototype.$delete=z,t.prototype.$watch=function(t,e,n){var r=this;if(f(e))return _n(r,t,e,n);n=n||{},n.user=!0;var o=new cu(r,t,e,n);if(n.immediate){var i='callback for immediate watcher "'.concat(o.expression,'"');L(),qe(e,r,[o.value],r,i),F()}return function(){o.teardown()}}}(cr),function(t){var e=/^hook:/;t.prototype.$on=function(t,n){var r=this;if(ec(t))for(var o=0,i=t.length;o<i;o++)r.$on(t[o],n);else(r._events[t]||(r._events[t]=[])).push(n),e.test(t)&&(r._hasHookEvent=!0);return r},t.prototype.$once=function(t,e){function n(){r.$off(t,n),e.apply(r,arguments)}var r=this;return n.fn=e,r.$on(t,n),r},t.prototype.$off=function(t,e){var n=this;if(!arguments.length)return n._events=Object.create(null),n;if(ec(t)){for(var r=0,o=t.length;r<o;r++)n.$off(t[r],e);return n}var i=n._events[t];if(!i)return n;if(!e)return n._events[t]=null,n;for(var a,c=i.length;c--;)if((a=i[c])===e||a.fn===e){i.splice(c,1);break}return n},t.prototype.$emit=function(t){var e=this,n=t.toLowerCase();n!==t&&e._events[n]&&mu('Event "'.concat(n,'" is emitted in component ')+"".concat(pu(e),' but the handler is registered for "').concat(t,'". ')+"Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. "+'You should probably use "'.concat(fc(t),'" instead of "').concat(t,'".'));var r=e._events[t];if(r){r=r.length>1?x(r):r;for(var o=x(arguments,1),i='event handler for "'.concat(t,'"'),a=0,c=r.length;a<c;a++)qe(r[a],e,o,e,i)}return e}}(cr),function(t){t.prototype._update=function(t,e){var n=this,r=n.$el,o=n._vnode,i=be(n);n._vnode=t,n.$el=o?n.__patch__(o,t):n.__patch__(n.$el,t,e,!1),i(),r&&(r.__vue__=null),n.$el&&(n.$el.__vue__=n);for(var a=n;a&&a.$vnode&&a.$parent&&a.$vnode===a.$parent._vnode;)a.$parent.$el=a.$el,a=a.$parent},t.prototype.$forceUpdate=function(){var t=this;t._watcher&&t._watcher.update()},t.prototype.$destroy=function(){var t=this;if(!t._isBeingDestroyed){ke(t,"beforeDestroy"),t._isBeingDestroyed=!0;var e=t.$parent;!e||e._isBeingDestroyed||t.$options.abstract||g(e.$children,t),t._scope.stop(),t._data.__ob__&&t._data.__ob__.vmCount--,t._isDestroyed=!0,t.__patch__(t._vnode,null),ke(t,"destroyed"),t.$off(),t.$el&&(t.$el.__vue__=null),t.$vnode&&(t.$vnode.parent=null)}}}(cr),function(t){Gt(t.prototype),t.prototype.$nextTick=function(t){return Xe(t,this)},t.prototype._render=function(){var t=this,e=t.$options,n=e.render,r=e._parentVnode;r&&t._isMounted&&(t.$scopedSlots=Wt(t.$parent,r.data.scopedSlots,t.$slots,t.$scopedSlots),t._slotsProxy&&re(t._slotsProxy,t.$scopedSlots)),t.$vnode=r;var o;try{N(t),ms=t,o=n.call(t._renderProxy,t.$createElement)}catch(e){if(Ke(e,t,"render"),t.$options.renderError)try{o=t.$options.renderError.call(t._renderProxy,t.$createElement,e)}catch(e){Ke(e,t,"renderError"),o=t._vnode}else o=t._vnode}finally{ms=null,N()}return ec(o)&&1===o.length&&(o=o[0]),o instanceof Lc||(ec(o)&&hu("Multiple root nodes returned from render function. Render function should return a single root node.",t),o=Fc()),o.parent=r,o}}(cr);var ku=[String,RegExp,Array],Cu={name:"keep-alive",abstract:!0,props:{include:ku,exclude:ku,max:[String,Number]},methods:{cacheVNode:function(){var t=this,e=t.cache,n=t.keys,r=t.vnodeToCache,o=t.keyToCache;if(r){var i=r.tag,a=r.componentInstance,c=r.componentOptions;e[o]={name:vr(c),tag:i,componentInstance:a},n.push(o),this.max&&n.length>parseInt(this.max)&&gr(e,n[0],n,this._vnode),this.vnodeToCache=null}}},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var t in this.cache)gr(this.cache,t,this.keys)},mounted:function(){var t=this;this.cacheVNode(),this.$watch("include",function(e){mr(t,function(t){return hr(e,t)})}),this.$watch("exclude",function(e){mr(t,function(t){return!hr(e,t)})})},updated:function(){this.cacheVNode()},render:function(){var t=this.$slots.default,e=de(t),n=e&&e.componentOptions;if(n){var r=vr(n),o=this,i=o.include,a=o.exclude;if(i&&(!r||!hr(i,r))||a&&r&&hr(a,r))return e;var c=this,s=c.cache,u=c.keys,f=null==e.key?n.Ctor.cid+(n.tag?"::".concat(n.tag):""):e.key;s[f]?(e.componentInstance=s[f].componentInstance,g(u,f),u.push(f)):(this.vnodeToCache=e,this.keyToCache=f),e.data.keepAlive=!0}return e||t&&t[0]}},Tu={KeepAlive:Cu};!function(t){var e={};e.get=function(){return gc},e.set=function(){hu("Do not replace the Vue.config object, set individual fields instead.")},Object.defineProperty(t,"config",e),t.util={warn:hu,extend:S,mergeOptions:Jn,defineReactive:H},t.set=B,t.delete=z,t.nextTick=Xe,t.observable=function(t){return V(t),t},t.options=Object.create(null),hc.forEach(function(e){t.options[e+"s"]=Object.create(null)}),t.options._base=t,S(t.options.components,Tu),sr(t),ur(t),fr(t),dr(t)}(cr),Object.defineProperty(cr.prototype,"$isServer",{get:Ic}),Object.defineProperty(cr.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(cr,"FunctionalRenderContext",{value:Cn}),cr.version="2.7.14";var ju,Au,Eu,Mu,Iu,Pu,Nu,Ru,Du,Lu,Fu=m("style,class"),Uu=m("input,textarea,option,select,progress"),Vu=function(t,e,n){return"value"===n&&Uu(t)&&"button"!==e||"selected"===n&&"option"===t||"checked"===n&&"input"===t||"muted"===n&&"video"===t},Hu=m("contenteditable,draggable,spellcheck"),Bu=m("events,caret,typing,plaintext-only"),zu=function(t,e){return Wu(e)||"false"===e?"false":"contenteditable"===t&&Bu(e)?e:"true"},Gu=m("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,truespeed,typemustmatch,visible"),Ku="http://www.w3.org/1999/xlink",qu=function(t){return":"===t.charAt(5)&&"xlink"===t.slice(0,5)},Ju=function(t){return qu(t)?t.slice(6,t.length):""},Wu=function(t){return null==t||!1===t},Yu={svg:"http://www.w3.org/2000/svg",math:"http://www.w3.org/1998/Math/MathML"},Xu=m("html,body,base,head,link,meta,style,title,address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,menuitem,summary,content,element,shadow,template,blockquote,iframe,tfoot"),Zu=m("svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,foreignobject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view",!0),Qu=function(t){return"pre"===t},tf=function(t){return Xu(t)||Zu(t)},ef=Object.create(null),nf=m("text,number,password,search,email,tel,url"),rf=Object.freeze({__proto__:null,createElement:Tr,createElementNS:jr,createTextNode:Ar,createComment:Er,insertBefore:Mr,removeChild:Ir,appendChild:Pr,parentNode:Nr,nextSibling:Rr,tagName:Dr,setTextContent:Lr,setStyleScope:Fr}),of={create:function(t,e){Ur(e)},update:function(t,e){t.data.ref!==e.data.ref&&(Ur(t,!0),Ur(e))},destroy:function(t){Ur(t,!0)}},af=new Lc("",{},[]),cf=["create","activate","update","remove","destroy"],sf={create:Gr,update:Gr,destroy:function(t){Gr(t,af)}},uf=Object.create(null),ff=[of,sf],lf={create:Yr,update:Yr},pf={create:Qr,update:Qr},df=/[\w).+\-_$\]]/,vf="__r",hf="__c",mf=Fs&&!(Cc&&Number(Cc[1])<=53),gf={create:Io,update:Io,destroy:function(t){return Io(t,af)}},yf={create:Po,update:Po},bf=b(function(t){var e={},n=/;(?![^(]*\))/g,r=/:(.+)/;return t.split(n).forEach(function(t){if(t){var n=t.split(r);n.length>1&&(e[n[0].trim()]=n[1].trim())}}),e}),_f=/^--/,wf=/\s*!important$/,xf=function(t,e,n){if(_f.test(e))t.style.setProperty(e,n);else if(wf.test(n))t.style.setProperty(fc(e),n.replace(wf,""),"important");else{var r=Of(e);if(Array.isArray(n))for(var o=0,i=n.length;o<i;o++)t.style[r]=n[o];else t.style[r]=n}},Sf=["Webkit","Moz","ms"],Of=b(function(t){if(Lu=Lu||document.createElement("div").style,"filter"!==(t=cc(t))&&t in Lu)return t;for(var e=t.charAt(0).toUpperCase()+t.slice(1),n=0;n<Sf.length;n++){var r=Sf[n]+e;if(r in Lu)return r}}),$f={create:Vo,update:Vo},kf=/\s+/,Cf=b(function(t){return{enterClass:"".concat(t,"-enter"),enterToClass:"".concat(t,"-enter-to"),enterActiveClass:"".concat(t,"-enter-active"),leaveClass:"".concat(t,"-leave"),leaveToClass:"".concat(t,"-leave-to"),leaveActiveClass:"".concat(t,"-leave-active")}}),Tf=wc&&!Oc,jf="transition",Af="animation",Ef="transition",Mf="transitionend",If="animation",Pf="animationend";Tf&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(Ef="WebkitTransition",Mf="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(If="WebkitAnimation",Pf="webkitAnimationEnd"));var Nf=wc?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(t){return t()},Rf=/\b(transform|all)(,|$)/,Df=wc?{create:ri,activate:ri,remove:function(t,e){!0!==t.data.show?Qo(t,e):e()}}:{},Lf=[lf,pf,gf,yf,$f,Df],Ff=Lf.concat(ff),Uf=function(e){function n(t){return new Lc(N.tagName(t).toLowerCase(),{},[],void 0,t)}function i(t,e){function n(){0==--n.listeners&&c(t)}return n.listeners=e,n}function c(t){var e=N.parentNode(t);r(e)&&N.removeChild(e,t)}function s(t,e){return!e&&!t.ns&&!(gc.ignoredElements.length&&gc.ignoredElements.some(function(e){return l(e)?e.test(t.tag):e===t.tag}))&&gc.isUnknownElement(t.tag)}function u(t,e,n,i,a,c,u){if(r(t.elm)&&r(c)&&(t=c[u]=D(t)),t.isRootInsert=!a,!f(t,e,n,i)){var l=t.data,p=t.children,d=t.tag;r(d)?(l&&l.pre&&R++,s(t,R)&&hu("Unknown custom element: <"+d+'> - did you register the component correctly? For recursive components, make sure to provide the "name" option.',t.context),t.elm=t.ns?N.createElementNS(t.ns,d):N.createElement(d,t),b(t),h(t,p,e),r(l)&&y(t,e),v(n,t.elm,i),l&&l.pre&&R--):o(t.isComment)?(t.elm=N.createComment(t.text),v(n,t.elm,i)):(t.elm=N.createTextNode(t.text),v(n,t.elm,i))}}function f(t,e,n,i){var a=t.data;if(r(a)){var c=r(t.componentInstance)&&a.keepAlive;if(r(a=a.hook)&&r(a=a.init)&&a(t,!1),r(t.componentInstance))return p(t,e),v(n,t.elm,i),o(c)&&d(t,e,n,i),!0}}function p(t,e){r(t.data.pendingInsert)&&(e.push.apply(e,t.data.pendingInsert),t.data.pendingInsert=null),t.elm=t.componentInstance.$el,g(t)?(y(t,e),b(t)):(Ur(t),e.push(t))}function d(t,e,n,o){for(var i,a=t;a.componentInstance;)if(a=a.componentInstance._vnode,r(i=a.data)&&r(i=i.transition)){for(i=0;i<I.activate.length;++i)I.activate[i](af,a);e.push(a);break}v(n,t.elm,o)}function v(t,e,n){r(t)&&(r(n)?N.parentNode(n)===t&&N.insertBefore(t,e,n):N.appendChild(t,e))}function h(t,e,n){if(ec(e)){$(e);for(var r=0;r<e.length;++r)u(e[r],n,t.elm,null,!0,e,r)}else a(t.text)&&N.appendChild(t.elm,N.createTextNode(String(t.text)))}function g(t){for(;t.componentInstance;)t=t.componentInstance._vnode;return r(t.tag)}function y(t,e){for(var n=0;n<I.create.length;++n)I.create[n](af,t);E=t.data.hook,r(E)&&(r(E.create)&&E.create(af,t),r(E.insert)&&e.push(t))}function b(t){var e;if(r(e=t.fnScopeId))N.setStyleScope(t.elm,e);else for(var n=t;n;)r(e=n.context)&&r(e=e.$options._scopeId)&&N.setStyleScope(t.elm,e),n=n.parent;r(e=gs)&&e!==t.context&&e!==t.fnContext&&r(e=e.$options._scopeId)&&N.setStyleScope(t.elm,e)}function _(t,e,n,r,o,i){for(;r<=o;++r)u(n[r],i,t,e,!1,n,r)}function w(t){var e,n,o=t.data;if(r(o))for(r(e=o.hook)&&r(e=e.destroy)&&e(t),e=0;e<I.destroy.length;++e)I.destroy[e](t);if(r(e=t.children))for(n=0;n<t.children.length;++n)w(t.children[n])}function x(t,e,n){for(;e<=n;++e){var o=t[e];r(o)&&(r(o.tag)?(S(o),w(o)):c(o.elm))}}function S(t,e){if(r(e)||r(t.data)){var n,o=I.remove.length+1;for(r(e)?e.listeners+=o:e=i(t.elm,o),r(n=t.componentInstance)&&r(n=n._vnode)&&r(n.data)&&S(n,e),n=0;n<I.remove.length;++n)I.remove[n](t,e);r(n=t.data.hook)&&r(n=n.remove)?n(t,e):e()}else c(t.elm)}function O(e,n,o,i,a){var c,s,f,l,p=0,d=0,v=n.length-1,h=n[0],m=n[v],g=o.length-1,y=o[0],b=o[g],w=!a;for($(o);p<=v&&d<=g;)t(h)?h=n[++p]:t(m)?m=n[--v]:Hr(h,y)?(C(h,y,i,o,d),h=n[++p],y=o[++d]):Hr(m,b)?(C(m,b,i,o,g),m=n[--v],b=o[--g]):Hr(h,b)?(C(h,b,i,o,g),w&&N.insertBefore(e,h.elm,N.nextSibling(m.elm)),h=n[++p],b=o[--g]):Hr(m,y)?(C(m,y,i,o,d),w&&N.insertBefore(e,m.elm,h.elm),m=n[--v],y=o[++d]):(t(c)&&(c=zr(n,p,v)),s=r(y.key)?c[y.key]:k(y,n,p,v),t(s)?u(y,i,e,h.elm,!1,o,d):(f=n[s],Hr(f,y)?(C(f,y,i,o,d),n[s]=void 0,w&&N.insertBefore(e,f.elm,h.elm)):u(y,i,e,h.elm,!1,o,d)),y=o[++d]);p>v?(l=t(o[g+1])?null:o[g+1].elm,_(e,l,o,d,g,i)):d>g&&x(n,p,v)}function $(t){for(var e={},n=0;n<t.length;n++){var o=t[n],i=o.key;r(i)&&(e[i]?hu("Duplicate keys detected: '".concat(i,"'. This may cause an update error."),o.context):e[i]=!0)}}function k(t,e,n,o){for(var i=n;i<o;i++){var a=e[i];if(r(a)&&Hr(t,a))return i}}function C(e,n,i,a,c,s){if(e!==n){r(n.elm)&&r(a)&&(n=a[c]=D(n));var u=n.elm=e.elm;if(o(e.isAsyncPlaceholder))return void(r(n.asyncFactory.resolved)?j(e.elm,n,i):n.isAsyncPlaceholder=!0);if(o(n.isStatic)&&o(e.isStatic)&&n.key===e.key&&(o(n.isCloned)||o(n.isOnce)))return void(n.componentInstance=e.componentInstance);var f,l=n.data;r(l)&&r(f=l.hook)&&r(f=f.prepatch)&&f(e,n);var p=e.children,d=n.children;if(r(l)&&g(n)){for(f=0;f<I.update.length;++f)I.update[f](e,n);r(f=l.hook)&&r(f=f.update)&&f(e,n)}t(n.text)?r(p)&&r(d)?p!==d&&O(u,p,d,i,s):r(d)?($(d),r(e.text)&&N.setTextContent(u,""),_(u,null,d,0,d.length-1,i)):r(p)?x(p,0,p.length-1):r(e.text)&&N.setTextContent(u,""):e.text!==n.text&&N.setTextContent(u,n.text),r(l)&&r(f=l.hook)&&r(f=f.postpatch)&&f(e,n)}}function T(t,e,n){if(o(n)&&r(t.parent))t.parent.data.pendingInsert=e;else for(var i=0;i<e.length;++i)e[i].data.hook.insert(e[i])}function j(t,e,n,i){var a,c=e.tag,s=e.data,u=e.children;if(i=i||s&&s.pre,e.elm=t,o(e.isComment)&&r(e.asyncFactory))return e.isAsyncPlaceholder=!0,!0;if(!A(t,e,i))return!1;if(r(s)&&(r(a=s.hook)&&r(a=a.init)&&a(e,!0),r(a=e.componentInstance)))return p(e,n),!0;if(r(c)){if(r(u))if(t.hasChildNodes())if(r(a=s)&&r(a=a.domProps)&&r(a=a.innerHTML)){if(a!==t.innerHTML)return"undefined"==typeof console||L||(L=!0,console.warn("Parent: ",t),console.warn("server innerHTML: ",a),console.warn("client innerHTML: ",t.innerHTML)),!1}else{for(var f=!0,l=t.firstChild,d=0;d<u.length;d++){if(!l||!j(l,u[d],n,i)){f=!1;break}l=l.nextSibling}if(!f||l)return"undefined"==typeof console||L||(L=!0,console.warn("Parent: ",t),console.warn("Mismatching childNodes vs. VNodes: ",t.childNodes,u)),!1}else h(e,u,n);if(r(s)){var v=!1;for(var m in s)if(!F(m)){v=!0,y(e,n);break}!v&&s.class&&cn(s.class)}}else t.data!==e.text&&(t.data=e.text);return!0}function A(t,e,n){return r(e.tag)?0===e.tag.indexOf("vue-component")||!s(e,n)&&e.tag.toLowerCase()===(t.tagName&&t.tagName.toLowerCase()):t.nodeType===(e.isComment?8:3)}var E,M,I={},P=e.modules,N=e.nodeOps;for(E=0;E<cf.length;++E)for(I[cf[E]]=[],M=0;M<P.length;++M)r(P[M][cf[E]])&&I[cf[E]].push(P[M][cf[E]]);var R=0,L=!1,F=m("attrs,class,staticClass,staticStyle,key");return function(e,i,a,c){if(t(i))return void(r(e)&&w(e));var s=!1,f=[];if(t(e))s=!0,u(i,f);else{var l=r(e.nodeType);if(!l&&Hr(e,i))C(e,i,f,null,null,c);else{if(l){if(1===e.nodeType&&e.hasAttribute(vc)&&(e.removeAttribute(vc),a=!0),o(a)){if(j(e,i,f))return T(i,f,!0),e;hu("The client-side rendered virtual DOM tree is not matching server-rendered content. This is likely caused by incorrect HTML markup, for example nesting block-level elements inside <p>, or missing <tbody>. Bailing hydration and performing full client-side render.")}e=n(e)}var p=e.elm,d=N.parentNode(p);if(u(i,f,p._leaveCb?null:d,N.nextSibling(p)),r(i.parent))for(var v=i.parent,h=g(i);v;){for(var m=0;m<I.destroy.length;++m)I.destroy[m](v);if(v.elm=i.elm,h){for(var y=0;y<I.create.length;++y)I.create[y](af,v);var b=v.data.hook.insert;if(b.merged)for(var _=1;_<b.fns.length;_++)b.fns[_]()}else Ur(v);v=v.parent}r(d)?x([e],0,0):r(e.tag)&&w(e)}}return T(i,f,s),i.elm}}({nodeOps:rf,modules:Ff});Oc&&document.addEventListener("selectionchange",function(){var t=document.activeElement;t&&t.vmodel&&fi(t,"input")});var Vf={inserted:function(t,e,n,r){"select"===n.tag?(r.elm&&!r.elm._vOptions?_t(n,"postpatch",function(){Vf.componentUpdated(t,e,n)}):oi(t,e,n.context),t._vOptions=[].map.call(t.options,ci)):("textarea"===n.tag||nf(t.type))&&(t._vModifiers=e.modifiers,e.modifiers.lazy||(t.addEventListener("compositionstart",si),t.addEventListener("compositionend",ui),t.addEventListener("change",ui),Oc&&(t.vmodel=!0)))},componentUpdated:function(t,e,n){if("select"===n.tag){oi(t,e,n.context);var r=t._vOptions,o=t._vOptions=[].map.call(t.options,ci);if(o.some(function(t,e){return!k(t,r[e])})){(t.multiple?e.value.some(function(t){return ai(t,o)}):e.value!==e.oldValue&&ai(e.value,o))&&fi(t,"change")}}}},Hf={bind:function(t,e,n){var r=e.value;n=li(n);var o=n.data&&n.data.transition,i=t.__vOriginalDisplay="none"===t.style.display?"":t.style.display;r&&o?(n.data.show=!0,Zo(n,function(){t.style.display=i})):t.style.display=r?i:"none"},update:function(t,e,n){var r=e.value;!r!=!e.oldValue&&(n=li(n),n.data&&n.data.transition?(n.data.show=!0,r?Zo(n,function(){t.style.display=t.__vOriginalDisplay}):Qo(n,function(){t.style.display="none"})):t.style.display=r?t.__vOriginalDisplay:"none")},unbind:function(t,e,n,r,o){o||(t.style.display=t.__vOriginalDisplay)}},Bf={model:Vf,show:Hf},zf={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]},Gf=function(t){return t.tag||Jt(t)},Kf=function(t){return"show"===t.name},qf={name:"transition",props:zf,abstract:!0,render:function(t){var e=this,n=this.$slots.default;if(n&&(n=n.filter(Gf),n.length)){n.length>1&&hu("<transition> can only be used on a single element. Use <transition-group> for lists.",this.$parent);var r=this.mode;r&&"in-out"!==r&&"out-in"!==r&&hu("invalid <transition> mode: "+r,this.$parent);var o=n[0];if(hi(this.$vnode))return o;var i=pi(o);if(!i)return o;if(this._leaving)return vi(t,o);var c="__transition-".concat(this._uid,"-");i.key=null==i.key?i.isComment?c+"comment":c+i.tag:a(i.key)?0===String(i.key).indexOf(c)?i.key:c+i.key:i.key;var s=(i.data||(i.data={})).transition=di(this),u=this._vnode,f=pi(u);if(i.data.directives&&i.data.directives.some(Kf)&&(i.data.show=!0),f&&f.data&&!mi(i,f)&&!Jt(f)&&(!f.componentInstance||!f.componentInstance._vnode.isComment)){var l=f.data.transition=S({},s);if("out-in"===r)return this._leaving=!0,_t(l,"afterLeave",function(){e._leaving=!1,e.$forceUpdate()}),vi(t,o);if("in-out"===r){if(Jt(i))return u;var p,d=function(){p()};_t(s,"afterEnter",d),_t(s,"enterCancelled",d),_t(l,"delayLeave",function(t){p=t})}}return o}}},Jf=S({tag:String,moveClass:String},zf);delete Jf.mode;var Wf={props:Jf,beforeMount:function(){var t=this,e=this._update;this._update=function(n,r){var o=be(t);t.__patch__(t._vnode,t.kept,!1,!0),t._vnode=t.kept,o(),e.call(t,n,r)}},render:function(t){for(var e=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),r=this.prevChildren=this.children,o=this.$slots.default||[],i=this.children=[],a=di(this),c=0;c<o.length;c++){var s=o[c];if(s.tag)if(null!=s.key&&0!==String(s.key).indexOf("__vlist"))i.push(s),n[s.key]=s,(s.data||(s.data={})).transition=a;else{var u=s.componentOptions,f=u?En(u.Ctor.options)||u.tag||"":s.tag;hu("<transition-group> children must be keyed: <".concat(f,">"))}}if(r){for(var l=[],p=[],c=0;c<r.length;c++){var s=r[c];s.data.transition=a,s.data.pos=s.elm.getBoundingClientRect(),n[s.key]?l.push(s):p.push(s)}this.kept=t(e,null,l),this.removed=p}return t(e,null,i)},updated:function(){var t=this.prevChildren,e=this.moveClass||(this.name||"v")+"-move";t.length&&this.hasMove(t[0].elm,e)&&(t.forEach(gi),t.forEach(yi),t.forEach(bi),this._reflow=document.body.offsetHeight,t.forEach(function(t){if(t.data.moved){var n=t.elm,r=n.style;Ko(n,e),r.transform=r.WebkitTransform=r.transitionDuration="",n.addEventListener(Mf,n._moveCb=function t(r){r&&r.target!==n||r&&!/transform$/.test(r.propertyName)||(n.removeEventListener(Mf,t),n._moveCb=null,qo(n,e))})}}))},methods:{hasMove:function(t,e){if(!Tf)return!1;if(this._hasMove)return this._hasMove;var n=t.cloneNode();t._transitionClasses&&t._transitionClasses.forEach(function(t){Bo(n,t)}),Ho(n,e),n.style.display="none",this.$el.appendChild(n);var r=Wo(n);return this.$el.removeChild(n),this._hasMove=r.hasTransform}}},Yf={Transition:qf,TransitionGroup:Wf};cr.config.mustUseProp=Vu,cr.config.isReservedTag=tf,cr.config.isReservedAttr=Fu,cr.config.getTagNamespace=$r,cr.config.isUnknownElement=kr,S(cr.options.directives,Bf),S(cr.options.components,Yf),cr.prototype.__patch__=wc?Uf:$,cr.prototype.$mount=function(t,e){return t=t&&wc?Cr(t):void 0,we(this,t,e)},wc&&setTimeout(function(){gc.devtools&&(Pc?Pc.emit("init",cr):console[console.info?"info":"log"]("Download the Vue Devtools extension for a better development experience:\nhttps://github.com/vuejs/vue-devtools")),!1!==gc.productionTip&&"undefined"!=typeof console&&console[console.info?"info":"log"]("You are running Vue in development mode.\nMake sure to turn on production mode when deploying for production.\nSee more tips at https://vuejs.org/guide/deployment.html")},0);var Xf,Zf,Qf,tl,el,nl,rl,ol,il,al,cl,sl,ul,fl=/\{\{((?:.|\r?\n)+?)\}\}/g,ll=/[-.*+?^${}()|[\]\/\\]/g,pl=b(function(t){var e=t[0].replace(ll,"\\$&"),n=t[1].replace(ll,"\\$&");return new RegExp(e+"((?:.|\\n)+?)"+n,"g")}),dl={staticKeys:["staticClass"],transformNode:wi,genData:xi},vl={staticKeys:["staticStyle"],transformNode:Si,genData:Oi},hl={decode:function(t){return Xf=Xf||document.createElement("div"),Xf.innerHTML=t,Xf.textContent}},ml=m("area,base,br,col,embed,frame,hr,img,input,isindex,keygen,link,meta,param,source,track,wbr"),gl=m("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source"),yl=m("address,article,aside,base,blockquote,body,caption,col,colgroup,dd,details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,title,tr,track"),bl=/^\s*([^\s"'<>\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,_l=/^\s*((?:v-[\w-]+:|@|:|#)\[[^=]+?\][^\s"'<>\/=]*)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,wl="[a-zA-Z_][\\-\\.0-9_a-zA-Z".concat(yc.source,"]*"),xl="((?:".concat(wl,"\\:)?").concat(wl,")"),Sl=new RegExp("^<".concat(xl)),Ol=/^\s*(\/?)>/,$l=new RegExp("^<\\/".concat(xl,"[^>]*>")),kl=/^<!DOCTYPE [^>]+>/i,Cl=/^<!\--/,Tl=/^<!\[/,jl=m("script,style,textarea",!0),Al={},El={"<":"<",">":">",""":'"',"&":"&"," ":"\n"," ":"\t","'":"'"},Ml=/&(?:lt|gt|quot|amp|#39);/g,Il=/&(?:lt|gt|quot|amp|#39|#10|#9);/g,Pl=m("pre,textarea",!0),Nl=function(t,e){return t&&Pl(t)&&"\n"===e[0]},Rl=/^@|^v-on:/,Dl=/^v-|^@|^:|^#/,Ll=/([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/,Fl=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,Ul=/^\(|\)$/g,Vl=/^\[.*\]$/,Hl=/:(.*)$/,Bl=/^:|^\.|^v-bind:/,zl=/\.[^.\]]+(?=[^\]]*$)/g,Gl=/^v-slot(:|$)|^#/,Kl=/[\r\n]/,ql=/[ \f\t\r\n]+/g,Jl=/[\s"'<>\/=]/,Wl=b(hl.decode),Yl="_empty_",Xl=/^xmlns:NS\d+/,Zl=/^NS\d+:/,Ql={preTransformNode:Qi},tp=[dl,vl,Ql],ep={model:Oo,text:ea,html:na},np={expectHTML:!0,modules:tp,directives:ep,isPreTag:Qu,isUnaryTag:ml,mustUseProp:Vu,canBeLeftOpenTag:gl,isReservedTag:tf,getTagNamespace:$r,staticKeys:function(t){return t.reduce(function(t,e){return t.concat(e.staticKeys||[])},[]).join(",")}(tp)},rp=b(oa),op=/^([\w$_]+|\([^)]*?\))\s*=>|^function(?:\s+[\w$]+)?\s*\(/,ip=/\([^)]*?\);*$/,ap=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/,cp={esc:27,tab:9,enter:13,space:32,up:38,left:37,right:39,down:40,delete:[8,46]},sp={esc:["Esc","Escape"],tab:"Tab",enter:"Enter",space:[" ","Spacebar"],up:["Up","ArrowUp"],left:["Left","ArrowLeft"],right:["Right","ArrowRight"],down:["Down","ArrowDown"],delete:["Backspace","Delete","Del"]},up=function(t){return"if(".concat(t,")return null;")},fp={stop:"$event.stopPropagation();",prevent:"$event.preventDefault();",self:up("$event.target !== $event.currentTarget"),ctrl:up("!$event.ctrlKey"),shift:up("!$event.shiftKey"),alt:up("!$event.altKey"),meta:up("!$event.metaKey"),left:up("'button' in $event && $event.button !== 0"),middle:up("'button' in $event && $event.button !== 1"),right:up("'button' in $event && $event.button !== 2")},lp={on:da,bind:va,cloak:$},pp=function(){function t(t){this.options=t,this.warn=t.warn||no,this.transforms=ro(t.modules,"transformCode"),this.dataGenFns=ro(t.modules,"genData"),this.directives=S(S({},lp),t.directives);var e=t.isReservedTag||pc;this.maybeComponent=function(t){return!!t.component||!e(t.tag)},this.onceId=0,this.staticRenderFns=[],this.pre=!1}return t}(),dp=new RegExp("\\b"+"do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,super,throw,while,yield,delete,export,import,return,switch,default,extends,finally,continue,debugger,function,arguments".split(",").join("\\b|\\b")+"\\b"),vp=new RegExp("\\b"+"delete,typeof,void".split(",").join("\\s*\\([^\\)]*\\)|\\b")+"\\s*\\([^\\)]*\\)"),hp=/'(?:[^'\\]|\\.)*'|"(?:[^"\\]|\\.)*"|`(?:[^`\\]|\\.)*\$\{|\}(?:[^`\\]|\\.)*`|`(?:[^`\\]|\\.)*`/g,mp=2,gp=function(t){return function(e){function n(n,r){var o=Object.create(e),i=[],a=[],c=function(t,e,n){(n?a:i).push(t)};if(r){if(r.outputSourceRange){var s=n.match(/^\s*/)[0].length;c=function(t,e,n){var r="string"==typeof t?{msg:t}:t;e&&(null!=e.start&&(r.start=e.start+s),null!=e.end&&(r.end=e.end+s)),(n?a:i).push(r)}}r.modules&&(o.modules=(e.modules||[]).concat(r.modules)),r.directives&&(o.directives=S(Object.create(e.directives||null),r.directives));for(var u in r)"modules"!==u&&"directives"!==u&&(o[u]=r[u])}o.warn=c;var f=t(n.trim(),o);return Ua(f.ast,c),f.errors=i,f.tips=a,f}return{compile:n,compileToFunctions:Ya(n)}}}(function(t,e){var n=Ti(t.trim(),e);!1!==e.optimize&&ra(n,e);var r=ha(n,e);return{ast:n,render:r.render,staticRenderFns:r.staticRenderFns}}),yp=gp(np),bp=yp.compileToFunctions,_p=!!wc&&Xa(!1),wp=!!wc&&Xa(!0),xp=b(function(t){var e=Cr(t);return e&&e.innerHTML}),Sp=cr.prototype.$mount;return cr.prototype.$mount=function(t,e){if((t=t&&Cr(t))===document.body||t===document.documentElement)return hu("Do not mount Vue to <html> or <body> - mount to normal elements instead."),this;var n=this.$options;if(!n.render){var r=n.template;if(r)if("string"==typeof r)"#"===r.charAt(0)&&((r=xp(r))||hu("Template element not found or is empty: ".concat(n.template),this));else{if(!r.nodeType)return hu("invalid template option:"+r,this),this;r=r.innerHTML}else t&&(r=Za(t));if(r){gc.performance&&es&&es("compile");var o=bp(r,{outputSourceRange:!0,shouldDecodeNewlines:_p,shouldDecodeNewlinesForHref:wp,delimiters:n.delimiters,comments:n.comments},this),i=o.render,a=o.staticRenderFns;n.render=i,n.staticRenderFns=a,gc.performance&&es&&(es("compile end"),ns("vue ".concat(this._name," compile"),"compile","compile end"))}}return Sp.call(this,t,e)},cr.compile=bp,S(cr,ou),cr.effect=Qa,cr})}).call(e,n(20),n(206).setImmediate)},function(t,e,n){"use strict";function r(t,e,r){return e=n.i(o.a)(e),e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}e.a=r;var o=n(134)},,,,,,,,,,,,,,,,function(t,e,n){var r=n(5),o=n(25),i=n(15).f,a=r("unscopables"),c=Array.prototype;void 0==c[a]&&i(c,a,{configurable:!0,value:o(null)}),t.exports=function(t){c[a][t]=!0}},function(t,e,n){var r=n(1);t.exports=r([].slice)},function(t,e,n){"use strict";var r=n(67),o=TypeError;t.exports=function(t,e){if(!delete t[e])throw o("Cannot delete property "+r(e)+" of "+r(t))}},function(t,e){var n="object"==typeof document&&document.all,r=void 0===n&&void 0!==n;t.exports={all:n,IS_HTMLDDA:r}},function(t,e,n){var r=n(4),o=n(12),i=r.document,a=o(i)&&o(i.createElement);t.exports=function(t){return a?i.createElement(t):{}}},function(t,e,n){var r=n(23);t.exports=r("navigator","userAgent")||""},function(t,e,n){var r=n(51),o=n(29),i=n(37),a=r(r.bind);t.exports=function(t,e){return o(t),void 0===e?t:i?a(t,e):function(){return t.apply(e,arguments)}}},function(t,e,n){var r=n(31),o=n(38),i=n(39),a=n(40),c=n(5),s=c("iterator");t.exports=function(t){if(!i(t))return o(t,s)||o(t,"@@iterator")||a[r(t)]}},function(t,e,n){var r=n(9),o=n(0),i=n(94);t.exports=!r&&!o(function(){return 7!=Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a})},function(t,e,n){var r=n(1),o=n(3),i=n(62),a=r(Function.toString);o(i.inspectSource)||(i.inspectSource=function(t){return a(t)}),t.exports=i.inspectSource},function(t,e,n){var r=n(0),o=n(3),i=/#|\.prototype\./,a=function(t,e){var n=s[c(t)];return n==f||n!=u&&(o(e)?r(e):!!e)},c=a.normalize=function(t){return String(t).replace(i,".").toLowerCase()},s=a.data={},u=a.NATIVE="N",f=a.POLYFILL="P";t.exports=a},function(t,e,n){"use strict";var r,o,i,a=n(0),c=n(3),s=n(12),u=n(25),f=n(103),l=n(13),p=n(5),d=n(56),v=p("iterator"),h=!1;[].keys&&(i=[].keys(),"next"in i?(o=f(f(i)))!==Object.prototype&&(r=o):h=!0),!s(r)||a(function(){var t={};return r[v].call(t)!==t})?r={}:d&&(r=u(r)),c(r[v])||l(r,v,function(){return this}),t.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:h}},function(t,e,n){var r=n(104),o=n(50),i=o.concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return r(t,i)}},function(t,e,n){var r=n(11),o=n(3),i=n(16),a=n(61),c=n(147),s=a("IE_PROTO"),u=Object,f=u.prototype;t.exports=c?u.getPrototypeOf:function(t){var e=i(t);if(r(e,s))return e[s];var n=e.constructor;return o(n)&&e instanceof n?n.prototype:e instanceof u?f:null}},function(t,e,n){var r=n(1),o=n(11),i=n(26),a=n(45).indexOf,c=n(52),s=r([].push);t.exports=function(t,e){var n,r=i(t),u=0,f=[];for(n in r)!o(c,n)&&o(r,n)&&s(f,n);for(;e.length>u;)o(r,n=e[u++])&&(~a(f,n)||s(f,n));return f}},function(t,e,n){var r=n(1),o=n(8),i=n(139);t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,n={};try{t=r(Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set),t(n,[]),e=n instanceof Array}catch(t){}return function(n,r){return o(n),i(r),e?t(n,r):n.__proto__=r,n}}():void 0)},function(t,e,n){"use strict";var r=n(8);t.exports=function(){var t=r(this),e="";return t.hasIndices&&(e+="d"),t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.dotAll&&(e+="s"),t.unicode&&(e+="u"),t.unicodeSets&&(e+="v"),t.sticky&&(e+="y"),e}},function(t,e,n){var r=n(4),o=n(152),i=n(3),a=n(95),c=n(91),s=n(182),u=/MSIE .\./.test(a),f=r.Function,l=function(t){return u?function(e,n){var r=s(arguments.length,1)>2,a=i(e)?e:f(e),u=r?c(arguments,2):void 0;return t(r?function(){o(a,this,u)}:a,n)}:t};t.exports={setTimeout:l(r.setTimeout),setInterval:l(r.setInterval)}},function(t,e,n){var r=n(15).f,o=n(11),i=n(5),a=i("toStringTag");t.exports=function(t,e,n){t&&!n&&(t=t.prototype),t&&!o(t,a)&&r(t,a,{configurable:!0,value:e})}},function(t,e,n){var r=n(1),o=n(19),i=n(17),a=n(115),c=r("".replace),s="["+a+"]",u=RegExp("^"+s+s+"*"),f=RegExp(s+s+"*$"),l=function(t){return function(e){var n=i(o(e));return 1&t&&(n=c(n,u,"")),2&t&&(n=c(n,f,"")),n}};t.exports={start:l(1),end:l(2),trim:l(3)}},function(t,e,n){var r=n(36),o=n(0);t.exports=!!Object.getOwnPropertySymbols&&!o(function(){var t=Symbol();return!String(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&r&&r<41})},function(t,e,n){var r=n(10),o=n(12),i=n(57),a=n(38),c=n(170),s=n(5),u=TypeError,f=s("toPrimitive");t.exports=function(t,e){if(!o(t)||i(t))return t;var n,s=a(t,f);if(s){if(void 0===e&&(e="default"),n=r(s,t,e),!o(n)||i(n))return n;throw u("Can't convert object to primitive value")}return void 0===e&&(e="number"),c(t,e)}},function(t,e,n){var r=n(1),o=0,i=Math.random(),a=r(1..toString);t.exports=function(t){return"Symbol("+(void 0===t?"":t)+")_"+a(++o+i,36)}},function(t,e,n){var r=n(110);t.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},function(t,e,n){var r=n(9),o=n(0);t.exports=r&&o(function(){return 42!=Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype})},function(t,e){t.exports="\t\n\v\f\r                 \u2028\u2029\ufeff"},function(t,e,n){"use strict";var r=n(2),o=n(30).filter;r({target:"Array",proto:!0,forced:!n(21)("filter")},{filter:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},function(t,e,n){"use strict";var r=n(2),o=n(30).find,i=n(90),a=!0;"find"in[]&&Array(1).find(function(){a=!1}),r({target:"Array",proto:!0,forced:a},{find:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),i("find")},function(t,e,n){"use strict";var r=n(2),o=n(51),i=n(45).indexOf,a=n(46),c=o([].indexOf),s=!!c&&1/c([1],1,-0)<0,u=a("indexOf");r({target:"Array",proto:!0,forced:s||!u},{indexOf:function(t){var e=arguments.length>1?arguments[1]:void 0;return s?c(this,t,e)||0:i(this,t,e)}})},function(t,e,n){"use strict";var r=n(2),o=n(24),i=n(55),a=n(12),c=n(64),s=n(14),u=n(26),f=n(34),l=n(5),p=n(21),d=n(91),v=p("slice"),h=l("species"),m=Array,g=Math.max;r({target:"Array",proto:!0,forced:!v},{slice:function(t,e){var n,r,l,p=u(this),v=s(p),y=c(t,v),b=c(void 0===e?v:e,v);if(o(p)&&(n=p.constructor,i(n)&&(n===m||o(n.prototype))?n=void 0:a(n)&&null===(n=n[h])&&(n=void 0),n===m||void 0===n))return d(p,y,b);for(r=new(void 0===n?m:n)(g(b-y,0)),l=0;y<b;y++,l++)y in p&&f(r,l,p[y]);return r.length=l,r}})},function(t,e,n){var r=n(1),o=n(13),i=Date.prototype,a=r(i.toString),c=r(i.getTime);"Invalid Date"!=String(new Date(NaN))&&o(i,"toString",function(){var t=c(this);return t===t?a(this):"Invalid Date"})},function(t,e,n){var r=n(13),o=n(150),i=Error.prototype;i.toString!==o&&r(i,"toString",o)},function(t,e,n){var r=n(9),o=n(22).EXISTS,i=n(1),a=n(15).f,c=Function.prototype,s=i(c.toString),u=/function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/,f=i(u.exec);r&&!o&&a(c,"name",{configurable:!0,get:function(){try{return f(u,s(this))[1]}catch(t){return""}}})},function(t,e,n){"use strict";var r=n(22).PROPER,o=n(13),i=n(8),a=n(17),c=n(0),s=n(173),u=RegExp.prototype,f=u.toString,l=c(function(){return"/a/b"!=f.call({source:"a",flags:"b"})}),p=r&&"toString"!=f.name;(l||p)&&o(RegExp.prototype,"toString",function(){var t=i(this);return"/"+a(t.source)+"/"+a(s(t))},{unsafe:!0})},function(t,e){function n(){throw new Error("setTimeout has not been defined")}function r(){throw new Error("clearTimeout has not been defined")}function o(t){if(f===setTimeout)return setTimeout(t,0);if((f===n||!f)&&setTimeout)return f=setTimeout,setTimeout(t,0);try{return f(t,0)}catch(e){try{return f.call(null,t,0)}catch(e){return f.call(this,t,0)}}}function i(t){if(l===clearTimeout)return clearTimeout(t);if((l===r||!l)&&clearTimeout)return l=clearTimeout,clearTimeout(t);try{return l(t)}catch(e){try{return l.call(null,t)}catch(e){return l.call(this,t)}}}function a(){h&&d&&(h=!1,d.length?v=d.concat(v):m=-1,v.length&&c())}function c(){if(!h){var t=o(a);h=!0;for(var e=v.length;e;){for(d=v,v=[];++m<e;)d&&d[m].run();m=-1,e=v.length}d=null,h=!1,i(t)}}function s(t,e){this.fun=t,this.array=e}function u(){}var f,l,p=t.exports={};!function(){try{f="function"==typeof setTimeout?setTimeout:n}catch(t){f=n}try{l="function"==typeof clearTimeout?clearTimeout:r}catch(t){l=r}}();var d,v=[],h=!1,m=-1;p.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];v.push(new s(t,e)),1!==v.length||h||o(c)},s.prototype.run=function(){this.fun.apply(null,this.array)},p.title="browser",p.browser=!0,p.env={},p.argv=[],p.version="",p.versions={},p.on=u,p.addListener=u,p.once=u,p.off=u,p.removeListener=u,p.removeAllListeners=u,p.emit=u,p.prependListener=u,p.prependOnceListener=u,p.listeners=function(t){return[]},p.binding=function(t){throw new Error("process.binding is not supported")},p.cwd=function(){return"/"},p.chdir=function(t){throw new Error("process.chdir is not supported")},p.umask=function(){return 0}},,function(t,e,n){var r=n(2),o=n(140);r({target:"Array",stat:!0,forced:!n(144)(function(t){Array.from(t)})},{from:o})},function(t,e,n){"use strict";var r=n(178).charAt,o=n(17),i=n(54),a=n(160),c=n(148),s=i.set,u=i.getterFor("String Iterator");a(String,"String",function(t){s(this,{type:"String Iterator",string:o(t),index:0})},function(){var t,e=u(this),n=e.string,o=e.index;return o>=n.length?c(void 0,!0):(t=r(n,o),e.index+=t.length,c(t,!1))})},function(t,e,n){(function(e,n){/*! - * @overview es6-promise - a tiny implementation of Promises/A+. - * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald) - * @license Licensed under MIT license - * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE - * @version v4.2.8+1e68dce6 - */ -!function(e,n){t.exports=n()}(0,function(){"use strict";function t(t){var e=typeof t;return null!==t&&("object"===e||"function"===e)}function r(t){return"function"==typeof t}function o(t){F=t}function i(t){U=t}function a(){return void 0!==L?function(){L(s)}:c()}function c(){var t=setTimeout;return function(){return t(s,1)}}function s(){for(var t=0;t<D;t+=2){(0,K[t])(K[t+1]),K[t]=void 0,K[t+1]=void 0}D=0}function u(t,e){var n=this,r=new this.constructor(l);void 0===r[J]&&C(r);var o=n._state;if(o){var i=arguments[o-1];U(function(){return O(o,r,i,n._result)})}else x(n,r,t,e);return r}function f(t){var e=this;if(t&&"object"==typeof t&&t.constructor===e)return t;var n=new e(l);return y(n,t),n}function l(){}function p(){return new TypeError("You cannot resolve a promise with itself")}function d(){return new TypeError("A promises callback cannot return that same promise.")}function v(t,e,n,r){try{t.call(e,n,r)}catch(t){return t}}function h(t,e,n){U(function(t){var r=!1,o=v(n,e,function(n){r||(r=!0,e!==n?y(t,n):_(t,n))},function(e){r||(r=!0,w(t,e))},"Settle: "+(t._label||" unknown promise"));!r&&o&&(r=!0,w(t,o))},t)}function m(t,e){e._state===Y?_(t,e._result):e._state===X?w(t,e._result):x(e,void 0,function(e){return y(t,e)},function(e){return w(t,e)})}function g(t,e,n){e.constructor===t.constructor&&n===u&&e.constructor.resolve===f?m(t,e):void 0===n?_(t,e):r(n)?h(t,e,n):_(t,e)}function y(e,n){if(e===n)w(e,p());else if(t(n)){var r=void 0;try{r=n.then}catch(t){return void w(e,t)}g(e,n,r)}else _(e,n)}function b(t){t._onerror&&t._onerror(t._result),S(t)}function _(t,e){t._state===W&&(t._result=e,t._state=Y,0!==t._subscribers.length&&U(S,t))}function w(t,e){t._state===W&&(t._state=X,t._result=e,U(b,t))}function x(t,e,n,r){var o=t._subscribers,i=o.length;t._onerror=null,o[i]=e,o[i+Y]=n,o[i+X]=r,0===i&&t._state&&U(S,t)}function S(t){var e=t._subscribers,n=t._state;if(0!==e.length){for(var r=void 0,o=void 0,i=t._result,a=0;a<e.length;a+=3)r=e[a],o=e[a+n],r?O(n,r,o,i):o(i);t._subscribers.length=0}}function O(t,e,n,o){var i=r(n),a=void 0,c=void 0,s=!0;if(i){try{a=n(o)}catch(t){s=!1,c=t}if(e===a)return void w(e,d())}else a=o;e._state!==W||(i&&s?y(e,a):!1===s?w(e,c):t===Y?_(e,a):t===X&&w(e,a))}function $(t,e){try{e(function(e){y(t,e)},function(e){w(t,e)})}catch(e){w(t,e)}}function k(){return Z++}function C(t){t[J]=Z++,t._state=void 0,t._result=void 0,t._subscribers=[]}function T(){return new Error("Array Methods must be provided an Array")}function j(t){return new Q(this,t).promise}function A(t){var e=this;return new e(R(t)?function(n,r){for(var o=t.length,i=0;i<o;i++)e.resolve(t[i]).then(n,r)}:function(t,e){return e(new TypeError("You must pass an array to race."))})}function E(t){var e=this,n=new e(l);return w(n,t),n}function M(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function I(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}function P(){var t=void 0;if(void 0!==n)t=n;else if("undefined"!=typeof self)t=self;else try{t=Function("return this")()}catch(t){throw new Error("polyfill failed because global object is unavailable in this environment")}var e=t.Promise;if(e){var r=null;try{r=Object.prototype.toString.call(e.resolve())}catch(t){}if("[object Promise]"===r&&!e.cast)return}t.Promise=tt}var N=void 0;N=Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)};var R=N,D=0,L=void 0,F=void 0,U=function(t,e){K[D]=t,K[D+1]=e,2===(D+=2)&&(F?F(s):q())},V="undefined"!=typeof window?window:void 0,H=V||{},B=H.MutationObserver||H.WebKitMutationObserver,z="undefined"==typeof self&&void 0!==e&&"[object process]"==={}.toString.call(e),G="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,K=new Array(1e3),q=void 0;q=z?function(){return function(){return e.nextTick(s)}}():B?function(){var t=0,e=new B(s),n=document.createTextNode("");return e.observe(n,{characterData:!0}),function(){n.data=t=++t%2}}():G?function(){var t=new MessageChannel;return t.port1.onmessage=s,function(){return t.port2.postMessage(0)}}():void 0===V?function(){try{var t=Function("return this")().require("vertx");return L=t.runOnLoop||t.runOnContext,a()}catch(t){return c()}}():c();var J=Math.random().toString(36).substring(2),W=void 0,Y=1,X=2,Z=0,Q=function(){function t(t,e){this._instanceConstructor=t,this.promise=new t(l),this.promise[J]||C(this.promise),R(e)?(this.length=e.length,this._remaining=e.length,this._result=new Array(this.length),0===this.length?_(this.promise,this._result):(this.length=this.length||0,this._enumerate(e),0===this._remaining&&_(this.promise,this._result))):w(this.promise,T())}return t.prototype._enumerate=function(t){for(var e=0;this._state===W&&e<t.length;e++)this._eachEntry(t[e],e)},t.prototype._eachEntry=function(t,e){var n=this._instanceConstructor,r=n.resolve;if(r===f){var o=void 0,i=void 0,a=!1;try{o=t.then}catch(t){a=!0,i=t}if(o===u&&t._state!==W)this._settledAt(t._state,e,t._result);else if("function"!=typeof o)this._remaining--,this._result[e]=t;else if(n===tt){var c=new n(l);a?w(c,i):g(c,t,o),this._willSettleAt(c,e)}else this._willSettleAt(new n(function(e){return e(t)}),e)}else this._willSettleAt(r(t),e)},t.prototype._settledAt=function(t,e,n){var r=this.promise;r._state===W&&(this._remaining--,t===X?w(r,n):this._result[e]=n),0===this._remaining&&_(r,this._result)},t.prototype._willSettleAt=function(t,e){var n=this;x(t,void 0,function(t){return n._settledAt(Y,e,t)},function(t){return n._settledAt(X,e,t)})},t}(),tt=function(){function t(e){this[J]=k(),this._result=this._state=void 0,this._subscribers=[],l!==e&&("function"!=typeof e&&M(),this instanceof t?$(this,e):I())}return t.prototype.catch=function(t){return this.then(null,t)},t.prototype.finally=function(t){var e=this,n=e.constructor;return r(t)?e.then(function(e){return n.resolve(t()).then(function(){return e})},function(e){return n.resolve(t()).then(function(){throw e})}):e.then(t,t)},t}();return tt.prototype.then=u,tt.all=j,tt.race=A,tt.resolve=f,tt.reject=E,tt._setScheduler=o,tt._setAsap=i,tt._asap=U,tt.polyfill=P,tt.Promise=tt,tt})}).call(e,n(124),n(20))},,,,,function(t,e,n){"use strict";function r(t,e){if("object"!==n.i(o.a)(t)||null===t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var i=r.call(t,e||"default");if("object"!==n.i(o.a)(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}e.a=r;var o=n(44)},function(t,e,n){"use strict";function r(t){var e=n.i(i.a)(t,"string");return"symbol"===n.i(o.a)(e)?e:String(e)}e.a=r;var o=n(44),i=n(133)},,,,,function(t,e,n){var r=n(3),o=String,i=TypeError;t.exports=function(t){if("object"==typeof t||r(t))return t;throw i("Can't set "+o(t)+" as a prototype")}},function(t,e,n){"use strict";var r=n(96),o=n(10),i=n(16),a=n(143),c=n(156),s=n(55),u=n(14),f=n(34),l=n(153),p=n(97),d=Array;t.exports=function(t){var e=i(t),n=s(this),v=arguments.length,h=v>1?arguments[1]:void 0,m=void 0!==h;m&&(h=r(h,v>2?arguments[2]:void 0));var g,y,b,_,w,x,S=p(e),O=0;if(!S||this===d&&c(S))for(g=u(e),y=n?new this(g):d(g);g>O;O++)x=m?h(e[O],O):e[O],f(y,O,x);else for(_=l(e,S),w=_.next,y=n?new this:[];!(b=o(w,_)).done;O++)x=m?a(_,h,[b.value,O],!0):b.value,f(y,O,x);return y.length=O,y}},function(t,e,n){var r=n(29),o=n(16),i=n(53),a=n(14),c=TypeError,s=function(t){return function(e,n,s,u){r(n);var f=o(e),l=i(f),p=a(f),d=t?p-1:0,v=t?-1:1;if(s<2)for(;;){if(d in l){u=l[d],d+=v;break}if(d+=v,t?d<0:p<=d)throw c("Reduce of empty array with no initial value")}for(;t?d>=0:p>d;d+=v)d in l&&(u=n(u,l[d],d,f));return u}};t.exports={left:s(!1),right:s(!0)}},function(t,e,n){var r=n(24),o=n(55),i=n(12),a=n(5),c=a("species"),s=Array;t.exports=function(t){var e;return r(t)&&(e=t.constructor,o(e)&&(e===s||r(e.prototype))?e=void 0:i(e)&&null===(e=e[c])&&(e=void 0)),void 0===e?s:e}},function(t,e,n){var r=n(8),o=n(158);t.exports=function(t,e,n,i){try{return i?e(r(n)[0],n[1]):e(n)}catch(e){o(t,"throw",e)}}},function(t,e,n){var r=n(5),o=r("iterator"),i=!1;try{var a=0,c={next:function(){return{done:!!a++}},return:function(){i=!0}};c[o]=function(){return this},Array.from(c,function(){throw 2})}catch(t){}t.exports=function(t,e){if(!e&&!i)return!1;var n=!1;try{var r={};r[o]=function(){return{next:function(){return{done:n=!0}}}},t(r)}catch(t){}return n}},function(t,e,n){var r=n(11),o=n(171),i=n(58),a=n(15);t.exports=function(t,e,n){for(var c=o(e),s=a.f,u=i.f,f=0;f<c.length;f++){var l=c[f];r(t,l)||n&&r(n,l)||s(t,l,u(e,l))}}},function(t,e,n){var r=n(5),o=r("match");t.exports=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[o]=!1,"/./"[t](e)}catch(t){}}return!1}},function(t,e,n){var r=n(0);t.exports=!r(function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype})},function(t,e){t.exports=function(t,e){return{value:t,done:e}}},function(t,e,n){var r=n(18),o=n(4);t.exports="process"==r(o.process)},function(t,e,n){"use strict";var r=n(9),o=n(0),i=n(8),a=n(25),c=n(163),s=Error.prototype.toString,u=o(function(){if(r){var t=a(Object.defineProperty({},"name",{get:function(){return this===t}}));if("true"!==s.call(t))return!0}return"2: 1"!==s.call({message:1,name:2})||"Error"!==s.call({})});t.exports=u?function(){var t=i(this),e=c(t.name,"Error"),n=c(t.message);return e?n?e+": "+n:e:n}:s},function(t,e,n){"use strict";n(42);var r=n(51),o=n(13),i=n(60),a=n(0),c=n(5),s=n(32),u=c("species"),f=RegExp.prototype;t.exports=function(t,e,n,l){var p=c(t),d=!a(function(){var e={};return e[p]=function(){return 7},7!=""[t](e)}),v=d&&!a(function(){var e=!1,n=/a/;return"split"===t&&(n={},n.constructor={},n.constructor[u]=function(){return n},n.flags="",n[p]=/./[p]),n.exec=function(){return e=!0,null},n[p](""),!e});if(!d||!v||n){var h=r(/./[p]),m=e(p,""[t],function(t,e,n,o,a){var c=r(t),s=e.exec;return s===i||s===f.exec?d&&!a?{done:!0,value:h(e,n,o)}:{done:!0,value:c(n,e,o)}:{done:!1}});o(String.prototype,t,m[0]),o(f,p,m[1])}l&&s(f[p],"sham",!0)}},function(t,e,n){var r=n(37),o=Function.prototype,i=o.apply,a=o.call;t.exports="object"==typeof Reflect&&Reflect.apply||(r?a.bind(i):function(){return a.apply(i,arguments)})},function(t,e,n){var r=n(10),o=n(29),i=n(8),a=n(67),c=n(97),s=TypeError;t.exports=function(t,e){var n=arguments.length<2?c(t):e;if(o(n))return i(r(n,t));throw s(a(t)+" is not iterable")}},function(t,e,n){var r=n(23);t.exports=r("document","documentElement")},function(t,e,n){var r=n(3),o=n(12),i=n(105);t.exports=function(t,e,n){var a,c;return i&&r(a=e.constructor)&&a!==n&&o(c=a.prototype)&&c!==n.prototype&&i(t,c),t}},function(t,e,n){var r=n(5),o=n(40),i=r("iterator"),a=Array.prototype;t.exports=function(t){return void 0!==t&&(o.Array===t||a[i]===t)}},function(t,e,n){var r=n(12),o=n(18),i=n(5),a=i("match");t.exports=function(t){var e;return r(t)&&(void 0!==(e=t[a])?!!e:"RegExp"==o(t))}},function(t,e,n){var r=n(10),o=n(8),i=n(38);t.exports=function(t,e,n){var a,c;o(t);try{if(!(a=i(t,"return"))){if("throw"===e)throw n;return n}a=r(a,t)}catch(t){c=!0,a=t}if("throw"===e)throw n;if(c)throw a;return o(a),n}},function(t,e,n){"use strict";var r=n(101).IteratorPrototype,o=n(25),i=n(33),a=n(108),c=n(40),s=function(){return this};t.exports=function(t,e,n,u){var f=e+" Iterator";return t.prototype=o(r,{next:i(+!u,n)}),a(t,f,!1,!0),c[f]=s,t}},function(t,e,n){"use strict";var r=n(2),o=n(10),i=n(56),a=n(22),c=n(3),s=n(159),u=n(103),f=n(105),l=n(108),p=n(32),d=n(13),v=n(5),h=n(40),m=n(101),g=a.PROPER,y=a.CONFIGURABLE,b=m.IteratorPrototype,_=m.BUGGY_SAFARI_ITERATORS,w=v("iterator"),x=function(){return this};t.exports=function(t,e,n,a,v,m,S){s(n,e,a);var O,$,k,C=function(t){if(t===v&&M)return M;if(!_&&t in A)return A[t];switch(t){case"keys":case"values":case"entries":return function(){return new n(this,t)}}return function(){return new n(this)}},T=e+" Iterator",j=!1,A=t.prototype,E=A[w]||A["@@iterator"]||v&&A[v],M=!_&&E||C(v),I="Array"==e?A.entries||E:E;if(I&&(O=u(I.call(new t)))!==Object.prototype&&O.next&&(i||u(O)===b||(f?f(O,b):c(O[w])||d(O,w,x)),l(O,T,!0,!0),i&&(h[T]=x)),g&&"values"==v&&E&&"values"!==E.name&&(!i&&y?p(A,"name","values"):(j=!0,M=function(){return o(E,this)})),v)if($={values:C("values"),keys:m?M:C("keys"),entries:C("entries")},S)for(k in $)!_&&!j&&k in A||d(A,k,$[k]);else r({target:e,proto:!0,forced:_||j},$);return i&&!S||A[w]===M||d(A,w,M,{name:v}),h[e]=M,$}},function(t,e,n){var r=n(0),o=n(3),i=n(11),a=n(9),c=n(22).CONFIGURABLE,s=n(99),u=n(54),f=u.enforce,l=u.get,p=Object.defineProperty,d=a&&!r(function(){return 8!==p(function(){},"length",{value:8}).length}),v=String(String).split("String"),h=t.exports=function(t,e,n){"Symbol("===String(e).slice(0,7)&&(e="["+String(e).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),n&&n.getter&&(e="get "+e),n&&n.setter&&(e="set "+e),(!i(t,"name")||c&&t.name!==e)&&(a?p(t,"name",{value:e,configurable:!0}):t.name=e),d&&n&&i(n,"arity")&&t.length!==n.arity&&p(t,"length",{value:n.arity});try{n&&i(n,"constructor")&&n.constructor?a&&p(t,"prototype",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(t){}var r=f(t);return i(r,"source")||(r.source=v.join("string"==typeof e?e:"")),t};Function.prototype.toString=h(function(){return o(this)&&l(this).source||s(this)},"toString")},function(t,e){var n=Math.ceil,r=Math.floor;t.exports=Math.trunc||function(t){var e=+t;return(e>0?r:n)(e)}},function(t,e,n){var r=n(17);t.exports=function(t,e){return void 0===t?arguments.length<2?"":e:r(t)}},function(t,e,n){var r=n(157),o=TypeError;t.exports=function(t){if(r(t))throw o("The method doesn't accept regular expressions");return t}},function(t,e,n){var r=n(9),o=n(114),i=n(15),a=n(8),c=n(26),s=n(167);e.f=r&&!o?Object.defineProperties:function(t,e){a(t);for(var n,r=c(e),o=s(e),u=o.length,f=0;u>f;)i.f(t,n=o[f++],r[n]);return t}},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e,n){var r=n(104),o=n(50);t.exports=Object.keys||function(t){return r(t,o)}},function(t,e,n){"use strict";var r={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,i=o&&!r.call({1:2},1);e.f=i?function(t){var e=o(this,t);return!!e&&e.enumerable}:r},function(t,e,n){"use strict";var r=n(66),o=n(31);t.exports=r?{}.toString:function(){return"[object "+o(this)+"]"}},function(t,e,n){var r=n(10),o=n(3),i=n(12),a=TypeError;t.exports=function(t,e){var n,c;if("string"===e&&o(n=t.toString)&&!i(c=r(n,t)))return c;if(o(n=t.valueOf)&&!i(c=r(n,t)))return c;if("string"!==e&&o(n=t.toString)&&!i(c=r(n,t)))return c;throw a("Can't convert object to primitive value")}},function(t,e,n){var r=n(23),o=n(1),i=n(102),a=n(166),c=n(8),s=o([].concat);t.exports=r("Reflect","ownKeys")||function(t){var e=i.f(c(t)),n=a.f;return n?s(e,n(t)):e}},function(t,e,n){var r=n(10),o=n(8),i=n(3),a=n(18),c=n(60),s=TypeError;t.exports=function(t,e){var n=t.exec;if(i(n)){var u=r(n,t,e);return null!==u&&o(u),u}if("RegExp"===a(t))return r(c,t,e);throw s("RegExp#exec called on incompatible receiver")}},function(t,e,n){var r=n(10),o=n(11),i=n(59),a=n(106),c=RegExp.prototype;t.exports=function(t){var e=t.flags;return void 0!==e||"flags"in c||o(t,"flags")||!i(c,t)?e:r(a,t)}},function(t,e,n){var r=n(0),o=n(4),i=o.RegExp,a=r(function(){var t=i("a","y");return t.lastIndex=2,null!=t.exec("abcd")}),c=a||r(function(){return!i("a","y").sticky}),s=a||r(function(){var t=i("^r","gy");return t.lastIndex=2,null!=t.exec("str")});t.exports={BROKEN_CARET:s,MISSED_STICKY:c,UNSUPPORTED_Y:a}},function(t,e,n){var r=n(0),o=n(4),i=o.RegExp;t.exports=r(function(){var t=i(".","s");return!(t.dotAll&&t.exec("\n")&&"s"===t.flags)})},function(t,e,n){var r=n(0),o=n(4),i=o.RegExp;t.exports=r(function(){var t=i("(?<a>b)","g");return"b"!==t.exec("b").groups.a||"bc"!=="b".replace(t,"$<a>c")})},function(t,e){t.exports=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}},function(t,e,n){var r=n(1),o=n(41),i=n(17),a=n(19),c=r("".charAt),s=r("".charCodeAt),u=r("".slice),f=function(t){return function(e,n){var r,f,l=i(a(e)),p=o(n),d=l.length;return p<0||p>=d?t?"":void 0:(r=s(l,p),r<55296||r>56319||p+1===d||(f=s(l,p+1))<56320||f>57343?t?c(l,p):r:t?u(l,p,p+2):f-56320+(r-55296<<10)+65536)}};t.exports={codeAt:f(!1),charAt:f(!0)}},function(t,e,n){var r=n(22).PROPER,o=n(0),i=n(115),a="​…᠎";t.exports=function(t){return o(function(){return!!i[t]()||a[t]()!==a||r&&i[t].name!==t})}},function(t,e,n){var r=n(1);t.exports=r(1..valueOf)},function(t,e,n){var r=n(41),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},function(t,e){var n=TypeError;t.exports=function(t,e){if(t<e)throw n("Not enough arguments");return t}},function(t,e,n){var r=n(4),o=n(3),i=r.WeakMap;t.exports=o(i)&&/native code/.test(String(i))},function(t,e,n){"use strict";var r=n(2),o=n(30).every;r({target:"Array",proto:!0,forced:!n(46)("every")},{every:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},function(t,e,n){"use strict";var r=n(2),o=n(45).includes,i=n(0),a=n(90);r({target:"Array",proto:!0,forced:i(function(){return!Array(1).includes()})},{includes:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),a("includes")},function(t,e,n){n(2)({target:"Array",stat:!0},{isArray:n(24)})},function(t,e,n){"use strict";var r=n(2),o=n(141).left,i=n(46),a=n(36),c=n(149),s=i("reduce"),u=!c&&a>79&&a<83;r({target:"Array",proto:!0,forced:!s||u},{reduce:function(t){var e=arguments.length;return o(this,t,e,e>1?arguments[1]:void 0)}})},function(t,e,n){"use strict";var r=n(2),o=n(16),i=n(64),a=n(41),c=n(14),s=n(47),u=n(35),f=n(48),l=n(34),p=n(92),d=n(21),v=d("splice"),h=Math.max,m=Math.min;r({target:"Array",proto:!0,forced:!v},{splice:function(t,e){var n,r,d,v,g,y,b=o(this),_=c(b),w=i(t,_),x=arguments.length;for(0===x?n=r=0:1===x?(n=0,r=_-w):(n=x-2,r=m(h(a(e),0),_-w)),u(_+n-r),d=f(b,r),v=0;v<r;v++)(g=w+v)in b&&l(d,v,b[g]);if(d.length=r,n<r){for(v=w;v<_-r;v++)g=v+r,y=v+n,g in b?b[y]=b[g]:p(b,y);for(v=_;v>_-r+n;v--)p(b,v-1)}else if(n>r)for(v=_-r;v>w;v--)g=v+r-1,y=v+n-1,g in b?b[y]=b[g]:p(b,y);for(v=0;v<n;v++)b[v+w]=arguments[v+2];return s(b,_-r+n),d}})},function(t,e,n){"use strict";var r=n(2),o=n(16),i=n(14),a=n(47),c=n(92),s=n(35),u=1!==[].unshift(0),f=!function(){try{Object.defineProperty([],"length",{writable:!1}).unshift()}catch(t){return t instanceof TypeError}}();r({target:"Array",proto:!0,arity:1,forced:u||f},{unshift:function(t){var e=o(this),n=i(e),r=arguments.length;if(r){s(n+r);for(var u=n;u--;){var f=u+r;u in e?e[f]=e[u]:c(e,f)}for(var l=0;l<r;l++)e[l]=arguments[l]}return a(e,n+r)}})},function(t,e,n){"use strict";var r=n(2),o=n(1),i=n(164),a=n(19),c=n(17),s=n(146),u=o("".indexOf);r({target:"String",proto:!0,forced:!s("includes")},{includes:function(t){return!!~u(c(a(this)),c(i(t)),arguments.length>1?arguments[1]:void 0)}})},function(t,e,n){"use strict";var r=n(2),o=n(109).trim;r({target:"String",proto:!0,forced:n(179)("trim")},{trim:function(){return o(this)}})},function(t,e,n){var r=n(2),o=n(4),i=n(107).setInterval;r({global:!0,bind:!0,forced:o.setInterval!==i},{setInterval:i})},function(t,e,n){var r=n(2),o=n(4),i=n(107).setTimeout;r({global:!0,bind:!0,forced:o.setTimeout!==i},{setTimeout:i})},,,,,,,,,,,,function(t,e,n){(function(t,e){!function(t,n){"use strict";function r(t){"function"!=typeof t&&(t=new Function(""+t));for(var e=new Array(arguments.length-1),n=0;n<e.length;n++)e[n]=arguments[n+1];var r={callback:t,args:e};return u[s]=r,c(s),s++}function o(t){delete u[t]}function i(t){var e=t.callback,r=t.args;switch(r.length){case 0:e();break;case 1:e(r[0]);break;case 2:e(r[0],r[1]);break;case 3:e(r[0],r[1],r[2]);break;default:e.apply(n,r)}}function a(t){if(f)setTimeout(a,0,t);else{var e=u[t];if(e){f=!0;try{i(e)}finally{o(t),f=!1}}}}if(!t.setImmediate){var c,s=1,u={},f=!1,l=t.document,p=Object.getPrototypeOf&&Object.getPrototypeOf(t);p=p&&p.setTimeout?p:t,"[object process]"==={}.toString.call(t.process)?function(){c=function(t){e.nextTick(function(){a(t)})}}():function(){if(t.postMessage&&!t.importScripts){var e=!0,n=t.onmessage;return t.onmessage=function(){e=!1},t.postMessage("","*"),t.onmessage=n,e}}()?function(){var e="setImmediate$"+Math.random()+"$",n=function(n){n.source===t&&"string"==typeof n.data&&0===n.data.indexOf(e)&&a(+n.data.slice(e.length))};t.addEventListener?t.addEventListener("message",n,!1):t.attachEvent("onmessage",n),c=function(n){t.postMessage(e+n,"*")}}():t.MessageChannel?function(){var t=new MessageChannel;t.port1.onmessage=function(t){a(t.data)},c=function(e){t.port2.postMessage(e)}}():l&&"onreadystatechange"in l.createElement("script")?function(){var t=l.documentElement;c=function(e){var n=l.createElement("script");n.onreadystatechange=function(){a(e),n.onreadystatechange=null,t.removeChild(n),n=null},t.appendChild(n)}}():function(){c=function(t){setTimeout(a,0,t)}}(),p.setImmediate=r,p.clearImmediate=o}}("undefined"==typeof self?void 0===t?this:t:self)}).call(e,n(20),n(124))},function(t,e,n){(function(t){function r(t,e){this._id=t,this._clearFn=e}var o=void 0!==t&&t||"undefined"!=typeof self&&self||window,i=Function.prototype.apply;e.setTimeout=function(){return new r(i.call(setTimeout,o,arguments),clearTimeout)},e.setInterval=function(){return new r(i.call(setInterval,o,arguments),clearInterval)},e.clearTimeout=e.clearInterval=function(t){t&&t.close()},r.prototype.unref=r.prototype.ref=function(){},r.prototype.close=function(){this._clearFn.call(o,this._id)},e.enroll=function(t,e){clearTimeout(t._idleTimeoutId),t._idleTimeout=e},e.unenroll=function(t){clearTimeout(t._idleTimeoutId),t._idleTimeout=-1},e._unrefActive=e.active=function(t){clearTimeout(t._idleTimeoutId);var e=t._idleTimeout;e>=0&&(t._idleTimeoutId=setTimeout(function(){t._onTimeout&&t._onTimeout()},e))},n(205),e.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==t&&t.setImmediate||this&&this.setImmediate,e.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==t&&t.clearImmediate||this&&this.clearImmediate}).call(e,n(20))},,,,,,,,,,,,,,,,,,,,,,,,,,,,function(t,e,n){"use strict";function r(t,e){for(var n=[],r={},o=0;o<e.length;o++){var i=e[o],a=i[0],c=i[1],s=i[2],u=i[3],f={id:t+":"+o,css:c,media:s,sourceMap:u};r[a]?r[a].parts.push(f):n.push(r[a]={id:a,parts:[f]})}return n}e.a=r},function(t,e,n){"use strict";(function(t){/*! - * vuex v3.6.2 - * (c) 2021 Evan You - * @license MIT - */ -function n(t){function e(){var t=this.$options;t.store?this.$store="function"==typeof t.store?t.store():t.store:t.parent&&t.parent.$store&&(this.$store=t.parent.$store)}if(Number(t.version.split(".")[0])>=2)t.mixin({beforeCreate:e});else{var n=t.prototype._init;t.prototype._init=function(t){void 0===t&&(t={}),t.init=t.init?[e].concat(t.init):e,n.call(this,t)}}}function r(t){N&&(t._devtoolHook=N,N.emit("vuex:init",t),N.on("vuex:travel-to-state",function(e){t.replaceState(e)}),t.subscribe(function(t,e){N.emit("vuex:mutation",t,e)},{prepend:!0}),t.subscribeAction(function(t,e){N.emit("vuex:action",t,e)},{prepend:!0}))}function o(t,e){return t.filter(e)[0]}function i(t,e){if(void 0===e&&(e=[]),null===t||"object"!=typeof t)return t;var n=o(e,function(e){return e.original===t});if(n)return n.copy;var r=Array.isArray(t)?[]:{};return e.push({original:t,copy:r}),Object.keys(t).forEach(function(n){r[n]=i(t[n],e)}),r}function a(t,e){Object.keys(t).forEach(function(n){return e(t[n],n)})}function c(t){return null!==t&&"object"==typeof t}function s(t){return t&&"function"==typeof t.then}function u(t,e){return function(){return t(e)}}function f(t,e,n){if(e.update(n),n.modules)for(var r in n.modules){if(!e.getChild(r))return;f(t.concat(r),e.getChild(r),n.modules[r])}}function l(t,e,n){return e.indexOf(t)<0&&(n&&n.prepend?e.unshift(t):e.push(t)),function(){var n=e.indexOf(t);n>-1&&e.splice(n,1)}}function p(t,e){t._actions=Object.create(null),t._mutations=Object.create(null),t._wrappedGetters=Object.create(null),t._modulesNamespaceMap=Object.create(null);var n=t.state;v(t,n,[],t._modules.root,!0),d(t,n,e)}function d(t,e,n){var r=t._vm;t.getters={},t._makeLocalGettersCache=Object.create(null);var o=t._wrappedGetters,i={};a(o,function(e,n){i[n]=u(e,t),Object.defineProperty(t.getters,n,{get:function(){return t._vm[n]},enumerable:!0})});var c=F.config.silent;F.config.silent=!0,t._vm=new F({data:{$$state:e},computed:i}),F.config.silent=c,t.strict&&_(t),r&&(n&&t._withCommit(function(){r._data.$$state=null}),F.nextTick(function(){return r.$destroy()}))}function v(t,e,n,r,o){var i=!n.length,a=t._modules.getNamespace(n);if(r.namespaced&&(t._modulesNamespaceMap[a],t._modulesNamespaceMap[a]=r),!i&&!o){var c=w(e,n.slice(0,-1)),s=n[n.length-1];t._withCommit(function(){F.set(c,s,r.state)})}var u=r.context=h(t,a,n);r.forEachMutation(function(e,n){g(t,a+n,e,u)}),r.forEachAction(function(e,n){var r=e.root?n:a+n,o=e.handler||e;y(t,r,o,u)}),r.forEachGetter(function(e,n){b(t,a+n,e,u)}),r.forEachChild(function(r,i){v(t,e,n.concat(i),r,o)})}function h(t,e,n){var r=""===e,o={dispatch:r?t.dispatch:function(n,r,o){var i=x(n,r,o),a=i.payload,c=i.options,s=i.type;return c&&c.root||(s=e+s),t.dispatch(s,a)},commit:r?t.commit:function(n,r,o){var i=x(n,r,o),a=i.payload,c=i.options,s=i.type;c&&c.root||(s=e+s),t.commit(s,a,c)}};return Object.defineProperties(o,{getters:{get:r?function(){return t.getters}:function(){return m(t,e)}},state:{get:function(){return w(t.state,n)}}}),o}function m(t,e){if(!t._makeLocalGettersCache[e]){var n={},r=e.length;Object.keys(t.getters).forEach(function(o){if(o.slice(0,r)===e){var i=o.slice(r);Object.defineProperty(n,i,{get:function(){return t.getters[o]},enumerable:!0})}}),t._makeLocalGettersCache[e]=n}return t._makeLocalGettersCache[e]}function g(t,e,n,r){(t._mutations[e]||(t._mutations[e]=[])).push(function(e){n.call(t,r.state,e)})}function y(t,e,n,r){(t._actions[e]||(t._actions[e]=[])).push(function(e){var o=n.call(t,{dispatch:r.dispatch,commit:r.commit,getters:r.getters,state:r.state,rootGetters:t.getters,rootState:t.state},e);return s(o)||(o=Promise.resolve(o)),t._devtoolHook?o.catch(function(e){throw t._devtoolHook.emit("vuex:error",e),e}):o})}function b(t,e,n,r){t._wrappedGetters[e]||(t._wrappedGetters[e]=function(t){return n(r.state,r.getters,t.state,t.getters)})}function _(t){t._vm.$watch(function(){return this._data.$$state},function(){},{deep:!0,sync:!0})}function w(t,e){return e.reduce(function(t,e){return t[e]},t)}function x(t,e,n){return c(t)&&t.type&&(n=e,e=t,t=t.type),{type:t,payload:e,options:n}}function S(t){F&&t===F||(F=t,n(F))}function O(t){return $(t)?Array.isArray(t)?t.map(function(t){return{key:t,val:t}}):Object.keys(t).map(function(e){return{key:e,val:t[e]}}):[]}function $(t){return Array.isArray(t)||c(t)}function k(t){return function(e,n){return"string"!=typeof e?(n=e,e=""):"/"!==e.charAt(e.length-1)&&(e+="/"),t(e,n)}}function C(t,e,n){return t._modulesNamespaceMap[n]}function T(t){void 0===t&&(t={});var e=t.collapsed;void 0===e&&(e=!0);var n=t.filter;void 0===n&&(n=function(t,e,n){return!0});var r=t.transformer;void 0===r&&(r=function(t){return t});var o=t.mutationTransformer;void 0===o&&(o=function(t){return t});var a=t.actionFilter;void 0===a&&(a=function(t,e){return!0});var c=t.actionTransformer;void 0===c&&(c=function(t){return t});var s=t.logMutations;void 0===s&&(s=!0);var u=t.logActions;void 0===u&&(u=!0);var f=t.logger;return void 0===f&&(f=console),function(t){var l=i(t.state);void 0!==f&&(s&&t.subscribe(function(t,a){var c=i(a);if(n(t,l,c)){var s=E(),u=o(t),p="mutation "+t.type+s;j(f,p,e),f.log("%c prev state","color: #9E9E9E; font-weight: bold",r(l)),f.log("%c mutation","color: #03A9F4; font-weight: bold",u),f.log("%c next state","color: #4CAF50; font-weight: bold",r(c)),A(f)}l=c}),u&&t.subscribeAction(function(t,n){if(a(t,n)){var r=E(),o=c(t),i="action "+t.type+r;j(f,i,e),f.log("%c action","color: #03A9F4; font-weight: bold",o),A(f)}}))}}function j(t,e,n){var r=n?t.groupCollapsed:t.group;try{r.call(t,e)}catch(n){t.log(e)}}function A(t){try{t.groupEnd()}catch(e){t.log("—— log end ——")}}function E(){var t=new Date;return" @ "+I(t.getHours(),2)+":"+I(t.getMinutes(),2)+":"+I(t.getSeconds(),2)+"."+I(t.getMilliseconds(),3)}function M(t,e){return new Array(e+1).join(t)}function I(t,e){return M("0",e-t.toString().length)+t}var P="undefined"!=typeof window?window:void 0!==t?t:{},N=P.__VUE_DEVTOOLS_GLOBAL_HOOK__,R=function(t,e){this.runtime=e,this._children=Object.create(null),this._rawModule=t;var n=t.state;this.state=("function"==typeof n?n():n)||{}},D={namespaced:{configurable:!0}};D.namespaced.get=function(){return!!this._rawModule.namespaced},R.prototype.addChild=function(t,e){this._children[t]=e},R.prototype.removeChild=function(t){delete this._children[t]},R.prototype.getChild=function(t){return this._children[t]},R.prototype.hasChild=function(t){return t in this._children},R.prototype.update=function(t){this._rawModule.namespaced=t.namespaced,t.actions&&(this._rawModule.actions=t.actions),t.mutations&&(this._rawModule.mutations=t.mutations),t.getters&&(this._rawModule.getters=t.getters)},R.prototype.forEachChild=function(t){a(this._children,t)},R.prototype.forEachGetter=function(t){this._rawModule.getters&&a(this._rawModule.getters,t)},R.prototype.forEachAction=function(t){this._rawModule.actions&&a(this._rawModule.actions,t)},R.prototype.forEachMutation=function(t){this._rawModule.mutations&&a(this._rawModule.mutations,t)},Object.defineProperties(R.prototype,D);var L=function(t){this.register([],t,!1)};L.prototype.get=function(t){return t.reduce(function(t,e){return t.getChild(e)},this.root)},L.prototype.getNamespace=function(t){var e=this.root;return t.reduce(function(t,n){return e=e.getChild(n),t+(e.namespaced?n+"/":"")},"")},L.prototype.update=function(t){f([],this.root,t)},L.prototype.register=function(t,e,n){var r=this;void 0===n&&(n=!0);var o=new R(e,n);if(0===t.length)this.root=o;else{this.get(t.slice(0,-1)).addChild(t[t.length-1],o)}e.modules&&a(e.modules,function(e,o){r.register(t.concat(o),e,n)})},L.prototype.unregister=function(t){var e=this.get(t.slice(0,-1)),n=t[t.length-1],r=e.getChild(n);r&&r.runtime&&e.removeChild(n)},L.prototype.isRegistered=function(t){var e=this.get(t.slice(0,-1)),n=t[t.length-1];return!!e&&e.hasChild(n)};var F,U=function(t){var e=this;void 0===t&&(t={}),!F&&"undefined"!=typeof window&&window.Vue&&S(window.Vue);var n=t.plugins;void 0===n&&(n=[]);var o=t.strict;void 0===o&&(o=!1),this._committing=!1,this._actions=Object.create(null),this._actionSubscribers=[],this._mutations=Object.create(null),this._wrappedGetters=Object.create(null),this._modules=new L(t),this._modulesNamespaceMap=Object.create(null),this._subscribers=[],this._watcherVM=new F,this._makeLocalGettersCache=Object.create(null);var i=this,a=this,c=a.dispatch,s=a.commit;this.dispatch=function(t,e){return c.call(i,t,e)},this.commit=function(t,e,n){return s.call(i,t,e,n)},this.strict=o;var u=this._modules.root.state;v(this,u,[],this._modules.root),d(this,u),n.forEach(function(t){return t(e)}),(void 0!==t.devtools?t.devtools:F.config.devtools)&&r(this)},V={state:{configurable:!0}};V.state.get=function(){return this._vm._data.$$state},V.state.set=function(t){},U.prototype.commit=function(t,e,n){var r=this,o=x(t,e,n),i=o.type,a=o.payload,c=(o.options,{type:i,payload:a}),s=this._mutations[i];s&&(this._withCommit(function(){s.forEach(function(t){t(a)})}),this._subscribers.slice().forEach(function(t){return t(c,r.state)}))},U.prototype.dispatch=function(t,e){var n=this,r=x(t,e),o=r.type,i=r.payload,a={type:o,payload:i},c=this._actions[o];if(c){try{this._actionSubscribers.slice().filter(function(t){return t.before}).forEach(function(t){return t.before(a,n.state)})}catch(t){}var s=c.length>1?Promise.all(c.map(function(t){return t(i)})):c[0](i);return new Promise(function(t,e){s.then(function(e){try{n._actionSubscribers.filter(function(t){return t.after}).forEach(function(t){return t.after(a,n.state)})}catch(t){}t(e)},function(t){try{n._actionSubscribers.filter(function(t){return t.error}).forEach(function(e){return e.error(a,n.state,t)})}catch(t){}e(t)})})}},U.prototype.subscribe=function(t,e){return l(t,this._subscribers,e)},U.prototype.subscribeAction=function(t,e){return l("function"==typeof t?{before:t}:t,this._actionSubscribers,e)},U.prototype.watch=function(t,e,n){var r=this;return this._watcherVM.$watch(function(){return t(r.state,r.getters)},e,n)},U.prototype.replaceState=function(t){var e=this;this._withCommit(function(){e._vm._data.$$state=t})},U.prototype.registerModule=function(t,e,n){void 0===n&&(n={}),"string"==typeof t&&(t=[t]),this._modules.register(t,e),v(this,this.state,t,this._modules.get(t),n.preserveState),d(this,this.state)},U.prototype.unregisterModule=function(t){var e=this;"string"==typeof t&&(t=[t]),this._modules.unregister(t),this._withCommit(function(){var n=w(e.state,t.slice(0,-1));F.delete(n,t[t.length-1])}),p(this)},U.prototype.hasModule=function(t){return"string"==typeof t&&(t=[t]),this._modules.isRegistered(t)},U.prototype.hotUpdate=function(t){this._modules.update(t),p(this,!0)},U.prototype._withCommit=function(t){var e=this._committing;this._committing=!0,t(),this._committing=e},Object.defineProperties(U.prototype,V);var H=k(function(t,e){var n={};return O(e).forEach(function(e){var r=e.key,o=e.val;n[r]=function(){var e=this.$store.state,n=this.$store.getters;if(t){var r=C(this.$store,"mapState",t);if(!r)return;e=r.context.state,n=r.context.getters}return"function"==typeof o?o.call(this,e,n):e[o]},n[r].vuex=!0}),n}),B=k(function(t,e){var n={};return O(e).forEach(function(e){var r=e.key,o=e.val;n[r]=function(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];var r=this.$store.commit;if(t){var i=C(this.$store,"mapMutations",t);if(!i)return;r=i.context.commit}return"function"==typeof o?o.apply(this,[r].concat(e)):r.apply(this.$store,[o].concat(e))}}),n}),z=k(function(t,e){var n={};return O(e).forEach(function(e){var r=e.key,o=e.val;o=t+o,n[r]=function(){if(!t||C(this.$store,"mapGetters",t))return this.$store.getters[o]},n[r].vuex=!0}),n}),G=k(function(t,e){var n={};return O(e).forEach(function(e){var r=e.key,o=e.val;n[r]=function(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];var r=this.$store.dispatch;if(t){var i=C(this.$store,"mapActions",t);if(!i)return;r=i.context.dispatch}return"function"==typeof o?o.apply(this,[r].concat(e)):r.apply(this.$store,[o].concat(e))}}),n}),K=function(t){return{mapState:H.bind(null,t),mapGetters:z.bind(null,t),mapMutations:B.bind(null,t),mapActions:G.bind(null,t)}},q={Store:U,install:S,version:"3.6.2",mapState:H,mapMutations:B,mapGetters:z,mapActions:G,createNamespacedHelpers:K,createLogger:T};e.a=q}).call(e,n(20))},function(t,e){function n(t,e){var n=t[1]||"",o=t[3];if(!o)return n;if(e&&"function"==typeof btoa){var i=r(o);return[n].concat(o.sources.map(function(t){return"/*# sourceURL="+o.sourceRoot+t+" */"})).concat([i]).join("\n")}return[n].join("\n")}function r(t){return"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(t))))+" */"}t.exports=function(t){var e=[];return e.toString=function(){return this.map(function(e){var r=n(e,t);return e[2]?"@media "+e[2]+"{"+r+"}":r}).join("")},e.i=function(t,n){"string"==typeof t&&(t=[[null,t,""]]);for(var r={},o=0;o<this.length;o++){var i=this[o][0];"number"==typeof i&&(r[i]=!0)}for(o=0;o<t.length;o++){var a=t[o];"number"==typeof a[0]&&r[a[0]]||(n&&!a[2]?a[2]=n:n&&(a[2]="("+a[2]+") and ("+n+")"),e.push(a))}},e}},function(t,e){t.exports=function(t){return"string"!=typeof t?t:(/^['"].*['"]$/.test(t)&&(t=t.slice(1,-1)),/["'() \t\n]/.test(t)?'"'+t.replace(/"/g,'\\"').replace(/\n/g,"\\n")+'"':t)}},function(t,e,n){"use strict";function r(t,e,r,i){h=r,g=i||{};var a=n.i(u.a)(t,e);return o(a),function(e){for(var r=[],i=0;i<a.length;i++){var c=a[i],s=l[c.id];s.refs--,r.push(s)}e?(a=n.i(u.a)(t,e),o(a)):a=[];for(var i=0;i<r.length;i++){var s=r[i];if(0===s.refs){for(var f=0;f<s.parts.length;f++)s.parts[f]();delete l[s.id]}}}}function o(t){for(var e=0;e<t.length;e++){var n=t[e],r=l[n.id];if(r){r.refs++;for(var o=0;o<r.parts.length;o++)r.parts[o](n.parts[o]);for(;o<n.parts.length;o++)r.parts.push(a(n.parts[o]));r.parts.length>n.parts.length&&(r.parts.length=n.parts.length)}else{for(var i=[],o=0;o<n.parts.length;o++)i.push(a(n.parts[o]));l[n.id]={id:n.id,refs:1,parts:i}}}}function i(){var t=document.createElement("style");return t.type="text/css",p.appendChild(t),t}function a(t){var e,n,r=document.querySelector("style["+y+'~="'+t.id+'"]');if(r){if(h)return m;r.parentNode.removeChild(r)}if(b){var o=v++;r=d||(d=i()),e=c.bind(null,r,o,!1),n=c.bind(null,r,o,!0)}else r=i(),e=s.bind(null,r),n=function(){r.parentNode.removeChild(r)};return e(t),function(r){if(r){if(r.css===t.css&&r.media===t.media&&r.sourceMap===t.sourceMap)return;e(t=r)}else n()}}function c(t,e,n,r){var o=n?"":r.css;if(t.styleSheet)t.styleSheet.cssText=_(e,o);else{var i=document.createTextNode(o),a=t.childNodes;a[e]&&t.removeChild(a[e]),a.length?t.insertBefore(i,a[e]):t.appendChild(i)}}function s(t,e){var n=e.css,r=e.media,o=e.sourceMap;if(r&&t.setAttribute("media",r),g.ssrId&&t.setAttribute(y,e.id),o&&(n+="\n/*# sourceURL="+o.sources[0]+" */",n+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(o))))+" */"),t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}Object.defineProperty(e,"__esModule",{value:!0}),e.default=r;var u=n(234),f="undefined"!=typeof document;if("undefined"!=typeof DEBUG&&DEBUG&&!f)throw new Error("vue-style-loader cannot be used in a non-browser environment. Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.");var l={},p=f&&(document.head||document.getElementsByTagName("head")[0]),d=null,v=0,h=!1,m=function(){},g=null,y="data-vue-ssr-id",b="undefined"!=typeof navigator&&/msie [6-9]\b/.test(navigator.userAgent.toLowerCase()),_=function(){var t=[];return function(e,n){return t[e]=n,t.filter(Boolean).join("\n")}}()}]); -//# sourceMappingURL=vendor.ed7650694397140633ce.js.map \ No newline at end of file diff --git a/docs/static/js/vendor.ed7650694397140633ce.js.map b/docs/static/js/vendor.ed7650694397140633ce.js.map deleted file mode 100644 index f3fcb6db..00000000 --- a/docs/static/js/vendor.ed7650694397140633ce.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///static/js/vendor.ed7650694397140633ce.js","webpack:///./~/core-js/internals/fails.js","webpack:///./~/core-js/internals/function-uncurry-this.js","webpack:///./~/core-js/internals/export.js","webpack:///./~/core-js/internals/is-callable.js","webpack:///./~/core-js/internals/global.js","webpack:///./~/core-js/internals/well-known-symbol.js","webpack:///./~/vue-loader/lib/component-normalizer.js","webpack:///./~/core-js/internals/an-object.js","webpack:///./~/core-js/internals/descriptors.js","webpack:///./~/core-js/internals/function-call.js","webpack:///./~/core-js/internals/has-own-property.js","webpack:///./~/core-js/internals/is-object.js","webpack:///./~/core-js/internals/define-built-in.js","webpack:///./~/core-js/internals/length-of-array-like.js","webpack:///./~/core-js/internals/object-define-property.js","webpack:///./~/core-js/internals/to-object.js","webpack:///./~/core-js/internals/to-string.js","webpack:///./~/core-js/internals/classof-raw.js","webpack:///./~/core-js/internals/require-object-coercible.js","webpack:///(webpack)/buildin/global.js","webpack:///./~/core-js/internals/array-method-has-species-support.js","webpack:///./~/core-js/internals/function-name.js","webpack:///./~/core-js/internals/get-built-in.js","webpack:///./~/core-js/internals/is-array.js","webpack:///./~/core-js/internals/object-create.js","webpack:///./~/core-js/internals/to-indexed-object.js","webpack:///./~/core-js/modules/es.array.concat.js","webpack:///./~/core-js/modules/es.array.push.js","webpack:///./~/core-js/internals/a-callable.js","webpack:///./~/core-js/internals/array-iteration.js","webpack:///./~/core-js/internals/classof.js","webpack:///./~/core-js/internals/create-non-enumerable-property.js","webpack:///./~/core-js/internals/create-property-descriptor.js","webpack:///./~/core-js/internals/create-property.js","webpack:///./~/core-js/internals/does-not-exceed-safe-integer.js","webpack:///./~/core-js/internals/engine-v8-version.js","webpack:///./~/core-js/internals/function-bind-native.js","webpack:///./~/core-js/internals/get-method.js","webpack:///./~/core-js/internals/is-null-or-undefined.js","webpack:///./~/core-js/internals/iterators.js","webpack:///./~/core-js/internals/to-integer-or-infinity.js","webpack:///./~/core-js/modules/es.regexp.exec.js","webpack:///./~/core-js/modules/web.timers.js","webpack:///./~/@babel/runtime/helpers/esm/typeof.js","webpack:///./~/core-js/internals/array-includes.js","webpack:///./~/core-js/internals/array-method-is-strict.js","webpack:///./~/core-js/internals/array-set-length.js","webpack:///./~/core-js/internals/array-species-create.js","webpack:///./~/core-js/internals/define-global-property.js","webpack:///./~/core-js/internals/enum-bug-keys.js","webpack:///./~/core-js/internals/function-uncurry-this-clause.js","webpack:///./~/core-js/internals/hidden-keys.js","webpack:///./~/core-js/internals/indexed-object.js","webpack:///./~/core-js/internals/internal-state.js","webpack:///./~/core-js/internals/is-constructor.js","webpack:///./~/core-js/internals/is-pure.js","webpack:///./~/core-js/internals/is-symbol.js","webpack:///./~/core-js/internals/object-get-own-property-descriptor.js","webpack:///./~/core-js/internals/object-is-prototype-of.js","webpack:///./~/core-js/internals/regexp-exec.js","webpack:///./~/core-js/internals/shared-key.js","webpack:///./~/core-js/internals/shared-store.js","webpack:///./~/core-js/internals/shared.js","webpack:///./~/core-js/internals/to-absolute-index.js","webpack:///./~/core-js/internals/to-property-key.js","webpack:///./~/core-js/internals/to-string-tag-support.js","webpack:///./~/core-js/internals/try-to-string.js","webpack:///./~/core-js/modules/es.number.constructor.js","webpack:///./~/core-js/modules/es.object.to-string.js","webpack:///./~/core-js/modules/es.string.search.js","webpack:///./~/@babel/runtime/helpers/esm/objectSpread2.js","webpack:///./~/core-js/modules/es.array.map.js","webpack:///./~/vue/dist/vue.js","webpack:///./~/@babel/runtime/helpers/esm/defineProperty.js","webpack:///./~/core-js/internals/add-to-unscopables.js","webpack:///./~/core-js/internals/array-slice.js","webpack:///./~/core-js/internals/delete-property-or-throw.js","webpack:///./~/core-js/internals/document-all.js","webpack:///./~/core-js/internals/document-create-element.js","webpack:///./~/core-js/internals/engine-user-agent.js","webpack:///./~/core-js/internals/function-bind-context.js","webpack:///./~/core-js/internals/get-iterator-method.js","webpack:///./~/core-js/internals/ie8-dom-define.js","webpack:///./~/core-js/internals/inspect-source.js","webpack:///./~/core-js/internals/is-forced.js","webpack:///./~/core-js/internals/iterators-core.js","webpack:///./~/core-js/internals/object-get-own-property-names.js","webpack:///./~/core-js/internals/object-get-prototype-of.js","webpack:///./~/core-js/internals/object-keys-internal.js","webpack:///./~/core-js/internals/object-set-prototype-of.js","webpack:///./~/core-js/internals/regexp-flags.js","webpack:///./~/core-js/internals/schedulers-fix.js","webpack:///./~/core-js/internals/set-to-string-tag.js","webpack:///./~/core-js/internals/string-trim.js","webpack:///./~/core-js/internals/symbol-constructor-detection.js","webpack:///./~/core-js/internals/to-primitive.js","webpack:///./~/core-js/internals/uid.js","webpack:///./~/core-js/internals/use-symbol-as-uid.js","webpack:///./~/core-js/internals/v8-prototype-define-bug.js","webpack:///./~/core-js/internals/whitespaces.js","webpack:///./~/core-js/modules/es.array.filter.js","webpack:///./~/core-js/modules/es.array.find.js","webpack:///./~/core-js/modules/es.array.index-of.js","webpack:///./~/core-js/modules/es.array.slice.js","webpack:///./~/core-js/modules/es.date.to-string.js","webpack:///./~/core-js/modules/es.error.to-string.js","webpack:///./~/core-js/modules/es.function.name.js","webpack:///./~/core-js/modules/es.regexp.to-string.js","webpack:///./~/process/browser.js","webpack:///./~/core-js/modules/es.array.from.js","webpack:///./~/core-js/modules/es.string.iterator.js","webpack:///./~/es6-promise/dist/es6-promise.js","webpack:///./~/@babel/runtime/helpers/esm/toPrimitive.js","webpack:///./~/@babel/runtime/helpers/esm/toPropertyKey.js","webpack:///./~/core-js/internals/a-possible-prototype.js","webpack:///./~/core-js/internals/array-from.js","webpack:///./~/core-js/internals/array-reduce.js","webpack:///./~/core-js/internals/array-species-constructor.js","webpack:///./~/core-js/internals/call-with-safe-iteration-closing.js","webpack:///./~/core-js/internals/check-correctness-of-iteration.js","webpack:///./~/core-js/internals/copy-constructor-properties.js","webpack:///./~/core-js/internals/correct-is-regexp-logic.js","webpack:///./~/core-js/internals/correct-prototype-getter.js","webpack:///./~/core-js/internals/create-iter-result-object.js","webpack:///./~/core-js/internals/engine-is-node.js","webpack:///./~/core-js/internals/error-to-string.js","webpack:///./~/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack:///./~/core-js/internals/function-apply.js","webpack:///./~/core-js/internals/get-iterator.js","webpack:///./~/core-js/internals/html.js","webpack:///./~/core-js/internals/inherit-if-required.js","webpack:///./~/core-js/internals/is-array-iterator-method.js","webpack:///./~/core-js/internals/is-regexp.js","webpack:///./~/core-js/internals/iterator-close.js","webpack:///./~/core-js/internals/iterator-create-constructor.js","webpack:///./~/core-js/internals/iterator-define.js","webpack:///./~/core-js/internals/make-built-in.js","webpack:///./~/core-js/internals/math-trunc.js","webpack:///./~/core-js/internals/normalize-string-argument.js","webpack:///./~/core-js/internals/not-a-regexp.js","webpack:///./~/core-js/internals/object-define-properties.js","webpack:///./~/core-js/internals/object-get-own-property-symbols.js","webpack:///./~/core-js/internals/object-keys.js","webpack:///./~/core-js/internals/object-property-is-enumerable.js","webpack:///./~/core-js/internals/object-to-string.js","webpack:///./~/core-js/internals/ordinary-to-primitive.js","webpack:///./~/core-js/internals/own-keys.js","webpack:///./~/core-js/internals/regexp-exec-abstract.js","webpack:///./~/core-js/internals/regexp-get-flags.js","webpack:///./~/core-js/internals/regexp-sticky-helpers.js","webpack:///./~/core-js/internals/regexp-unsupported-dot-all.js","webpack:///./~/core-js/internals/regexp-unsupported-ncg.js","webpack:///./~/core-js/internals/same-value.js","webpack:///./~/core-js/internals/string-multibyte.js","webpack:///./~/core-js/internals/string-trim-forced.js","webpack:///./~/core-js/internals/this-number-value.js","webpack:///./~/core-js/internals/to-length.js","webpack:///./~/core-js/internals/validate-arguments-length.js","webpack:///./~/core-js/internals/weak-map-basic-detection.js","webpack:///./~/core-js/modules/es.array.every.js","webpack:///./~/core-js/modules/es.array.includes.js","webpack:///./~/core-js/modules/es.array.is-array.js","webpack:///./~/core-js/modules/es.array.reduce.js","webpack:///./~/core-js/modules/es.array.splice.js","webpack:///./~/core-js/modules/es.array.unshift.js","webpack:///./~/core-js/modules/es.string.includes.js","webpack:///./~/core-js/modules/es.string.trim.js","webpack:///./~/core-js/modules/web.set-interval.js","webpack:///./~/core-js/modules/web.set-timeout.js","webpack:///./~/setimmediate/setImmediate.js","webpack:///./~/timers-browserify/main.js","webpack:///./~/vue-style-loader/lib/listToStyles.js","webpack:///./~/vuex/dist/vuex.esm.js","webpack:///./~/css-loader/lib/css-base.js","webpack:///./~/css-loader/lib/url/escape.js","webpack:///./~/vue-style-loader/lib/addStylesClient.js"],"names":["webpackJsonp","module","exports","exec","error","__webpack_require__","NATIVE_BIND","FunctionPrototype","Function","prototype","call","uncurryThisWithBind","bind","fn","apply","arguments","global","getOwnPropertyDescriptor","f","createNonEnumerableProperty","defineBuiltIn","defineGlobalProperty","copyConstructorProperties","isForced","options","source","target","key","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","value","forced","undefined","sham","$documentAll","documentAll","all","IS_HTMLDDA","argument","it","Math","check","globalThis","window","self","this","shared","hasOwn","uid","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","Symbol","symbolFor","createWellKnownSymbol","withoutSetter","name","description","rawScriptExports","compiledTemplate","functionalTemplate","injectStyles","scopeId","moduleIdentifier","esModule","scriptExports","type","default","render","staticRenderFns","_compiled","functional","_scopeId","hook","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","existing","beforeCreate","_injectStyles","h","concat","isObject","$String","String","$TypeError","TypeError","fails","Object","defineProperty","get","uncurryThis","toObject","hasOwnProperty","isCallable","definePropertyModule","makeBuiltIn","O","simple","enumerable","unsafe","configurable","nonConfigurable","writable","nonWritable","toLength","obj","length","DESCRIPTORS","IE8_DOM_DEFINE","V8_PROTOTYPE_DEFINE_BUG","anObject","toPropertyKey","$defineProperty","$getOwnPropertyDescriptor","P","Attributes","current","requireObjectCoercible","$Object","classof","toString","stringSlice","slice","isNullOrUndefined","g","eval","e","wellKnownSymbol","V8_VERSION","SPECIES","METHOD_NAME","array","constructor","foo","Boolean","getDescriptor","EXISTS","PROPER","CONFIGURABLE","aFunction","namespace","method","Array","isArray","activeXDocument","definePropertiesModule","enumBugKeys","hiddenKeys","html","documentCreateElement","sharedKey","IE_PROTO","EmptyConstructor","scriptTag","content","LT","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObjectViaIFrame","iframeDocument","iframe","style","display","appendChild","src","contentWindow","document","open","F","NullProtoObject","ActiveXObject","domain","create","Properties","result","IndexedObject","$","lengthOfArrayLike","doesNotExceedSafeInteger","createProperty","arraySpeciesCreate","arrayMethodHasSpeciesSupport","IS_CONCAT_SPREADABLE","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","proto","arity","arg","i","k","len","E","A","n","setArrayLength","INCORRECT_TO_LENGTH","push","SILENT_ON_NON_WRITABLE_LENGTH","item","argCount","tryToString","createMethod","TYPE","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","$this","callbackfn","that","specificCreate","boundFunction","index","forEach","map","filter","some","every","find","findIndex","filterReject","TO_STRING_TAG_SUPPORT","classofRaw","TO_STRING_TAG","CORRECT_ARGUMENTS","tryGet","tag","callee","createPropertyDescriptor","object","bitmap","propertyKey","match","version","userAgent","process","Deno","versions","v8","split","test","aCallable","V","func","trunc","number","__webpack_exports__","_typeof","iterator","toIndexedObject","toAbsoluteIndex","IS_INCLUDES","el","fromIndex","includes","indexOf","SILENT_ON_NON_WRITABLE_LENGTH_SET","arraySpeciesConstructor","originalArray","propertyIsEnumerable","set","has","NATIVE_WEAK_MAP","WeakMap","enforce","getterFor","state","store","metadata","facade","STATE","getBuiltIn","inspectSource","noop","empty","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","called","isPrototypeOf","$Symbol","propertyIsEnumerableModule","regexpFlags","stickyHelpers","getInternalState","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","nativeReplace","replace","nativeExec","RegExp","patchedExec","charAt","UPDATES_LAST_INDEX_WRONG","re1","re2","lastIndex","UNSUPPORTED_Y","BROKEN_CARET","NPCG_INCLUDED","string","reCopy","group","re","str","raw","groups","sticky","flags","charsAdded","strCopy","multiline","input","keys","IS_PURE","mode","copyright","license","toIntegerOrInfinity","max","min","integer","toPrimitive","isSymbol","inheritIfRequired","getOwnPropertyNames","thisNumberValue","trim","NativeNumber","NumberPrototype","arraySlice","charCodeAt","toNumeric","primValue","toNumber","first","third","radix","maxCode","digits","code","NaN","parseInt","NumberWrapper","dummy","j","fixRegExpWellKnownSymbolLogic","sameValue","getMethod","regExpExec","SEARCH","nativeSearch","maybeCallNative","regexp","searcher","rx","S","res","done","previousLastIndex","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","sym","_objectSpread2","getOwnPropertyDescriptors","defineProperties","$map","factory","isUndef","v","isDef","isTrue","isFalse","isPrimitive","isFunction","toRawType","_toString","isPlainObject","isRegExp","isValidArrayIndex","val","parseFloat","floor","isFinite","isPromise","then","catch","JSON","stringify","isNaN","makeMap","expectsLowerCase","list","toLowerCase","remove$2","arr","splice","cached","cache","polyfillBind","ctx","boundFn","a","l","_length","nativeBind","toArray","start","ret","extend","to","_from","b","c","looseEqual","isObjectA","isObjectB","isArrayA","isArrayB","Date","getTime","keysA","keysB","looseIndexOf","once","hasChanged","x","y","isReserved","def","parsePath","path","bailRE","segments","isNative","Ctor","getCurrentInstance","currentInstance","proxy","setCurrentInstance","vm","_scope","off","on","createTextVNode","VNode","cloneVNode","vnode","cloned","data","children","text","elm","componentOptions","asyncFactory","ns","isStatic","isComment","fnContext","fnOptions","fnScopeId","asyncMeta","isCloned","pushTarget","targetStack","Dep","popTarget","pop","toggleObserving","shouldObserve","observe","shallow","ssrMockReactivity","__ob__","Observer","isServerRendering","isExtensible","__v_skip","isRef","defineReactive","customSetter","mock","dep","property","getter","setter","NO_INIITIAL_VALUE","childOb","depend","dependArray","newVal","notify","newValue","oldValue","warn$2","isReadonly","ob","_isVue","vmCount","del","reactive","makeReactive","shallowReactive","existingOb","isCollectionType","isReactive","isShallow","__v_isShallow","__v_isReadonly","isProxy","toRaw","observed","markRaw","r","__v_isRef","ref$1","createRef","shallowRef","rawValue","ref","RefFlag","triggerRef","unref","proxyRefs","objectWithRefs","proxyWithRefUnwrap","customRef","_a","toRefs","toRef","defaultValue","readonly","createReadonly","existingFlag","rawToShallowReadonlyFlag","rawToReadonlyFlag","existingProxy","getPrototypeOf","defineReadonlyProperty","shallowReadonly","computed","getterOrOptions","debugOptions","onlyGetter","watcher","Watcher","lazy","onTrack","onTrigger","effect","dirty","evaluate","createFnInvoker","fns","invoker","invokeWithErrorHandling","updateListeners","oldOn","remove","createOnceHandler","cur","old","event","normalizeEvent","capture","passive","params","mergeVNodeHook","hookKey","wrappedHook","oldHook","merged","extractPropsFromVNodeData","propOptions","props","attrs","altKey","hyphenate","keyInLowerCase","tip","formatComponentName","checkProp","hash","preserve","simpleNormalizeChildren","normalizeChildren","normalizeArrayChildren","isTextNode","node","nestedIndex","last","shift","_isVList","createElement$1","normalizationType","alwaysNormalize","ALWAYS_NORMALIZE","_createElement","createEmptyVNode","is","scopedSlots","SIMPLE_NORMALIZE","config","getTagNamespace","isReservedTag","nativeOn","parsePlatformTagName","pre","resolveAsset","$options","createComponent","applyNS","registerDeepBindings","force","child","traverse","class","renderList","hasSymbol","next","renderSlot","fallbackRender","bindObject","nodes","scopedSlotFn","$scopedSlots","$slots","slot","$createElement","resolveFilter","id","identity","isKeyNotMatch","expect","actual","checkKeyCodes","eventKeyCode","builtInKeyCode","eventKeyName","builtInKeyName","mappedKeyCode","keyCodes","bindObjectProps","asProp","isSync","isReservedAttribute","mustUseProp","domProps","camelizedKey","camelize","hyphenatedKey","$event","renderStatic","isInFor","_staticTrees","tree","_renderProxy","_c","markStatic$1","markOnce","isOnce","markStaticNode","bindObjectListeners","ours","resolveScopedSlots","hasDynamicKeys","contentHashKey","$stable","$key","bindDynamicKeys","baseObj","values","prependModifier","symbol","installRenderHelpers","_o","_n","_s","_l","_t","_q","_i","_m","_f","_k","_b","_v","_e","_u","_g","_d","_p","resolveSlots","slots","name_1","name_2","isWhitespace","isAsyncPlaceholder","normalizeScopedSlots","ownerVm","normalSlots","prevScopedSlots","hasNormalSlots","isStable","_normalized","emptyObject","$hasNormal","key_1","normalizeScopedSlot","key_2","proxyNormalSlot","normalized","initSetup","setup","_setupContext","createSetupContext","setupResult","_props","_setupState","__sfc","_setupProxy","exposeCalled","_attrsProxy","syncSetupProxy","$attrs","_listenersProxy","$listeners","initSlotsProxy","emit","bind$1","$emit","expose","exposed","from","prev","instance","changed","defineProxyAttr","_slotsProxy","syncSetupSlots","useSlots","getContext","useAttrs","useListeners","listeners","mergeDefaults","defaults","reduce","p","opt","initRender","_vnode","parentVnode","_parentVnode","renderContext","_renderChildren","$parent","d","parentData","isUpdatingChildComponent","_parentListeners","ensureCtor","comp","base","__esModule","toStringTag","createAsyncPlaceholder","resolveAsyncComponent","baseCtor","errorComp","resolved","owner","currentRenderingInstance","owners","loading","loadingComp","owners_1","sync_1","timerLoading_1","timerTimeout_1","$on","forceRender_1","renderCompleted","$forceUpdate","clearTimeout","resolve","reject_1","reason","res_1","component","delay","setTimeout","timeout","getFirstComponentChild","initEvents","_events","_hasHookEvent","updateComponentListeners","add$1","target$1","remove$1","$off","createOnceHandler$1","_target","onceHandler","oldListeners","setActiveInstance","prevActiveInstance","activeInstance","initLifecycle","abstract","$children","$root","$refs","_provided","_watcher","_inactive","_directInactive","_isMounted","_isDestroyed","_isBeingDestroyed","mountComponent","hydrating","$el","template","callHook$1","updateComponent","performance","mark","_name","_uid","startTag","endTag","_render","measure","_update","watcherOptions","before","preWatchers","_preWatchers","run","updateChildComponent","propsData","renderChildren","newScopedSlots","oldScopedSlots","hasDynamicScopedSlot","needsForceUpdate","prevVNode","prevListeners","propKeys","_propKeys","validateProp","isInInactiveTree","activateChildComponent","direct","deactivateChildComponent","args","setContext","handlers","info","resetSchedulerState","index$1","queue","activatedChildren","circular","waiting","flushing","flushSchedulerQueue","currentFlushTimestamp","getNow","sort","sortCompareFn","MAX_UPDATE_COUNT","user","expression","activatedQueue","updatedQueue","callActivatedHooks","callUpdatedHooks","cleanupDeps","devtools","queueActivatedComponent","queueWatcher","noRecurse","async","nextTick","watchEffect","doWatch","watchPostEffect","__assign","flush","watchSyncEffect","watch","cb","immediate","deep","warnInvalidSource","s","forceTrigger","isMultiSource","WATCHER_GETTER","cleanup","WATCHER","onCleanup","baseGetter_1","onStop","WATCHER_CLEANUP","WATCHER_CB","INITIAL_WATCHER_VALUE","active","update","post","buffer","$once","teardown","effectScope","detached","EffectScope","recordEffectScope","scope","activeEffectScope","effects","getCurrentScope","onScopeDispose","cleanups","provide","resolveProvided","parentProvides","inject","treatDefaultAsFactory","provides","handleError","err","hooks","errorCaptured","globalHandleError","handler","_handled","errorHandler","logError","inBrowser","console","flushCallbacks","pending","copies","callbacks","_resolve","timerFunc","Promise","useCssModule","useCssVars","vars","nodeType","setProperty","defineAsyncComponent","loader","loadingComponent","errorComponent","suspensible","userOnError","onError","pendingRequest","retries","retry","load","thisRequest","Error","reject","createLifeCycle","hookName","injectHook","formatName","toUpperCase","mergeLifecycleHook","onErrorCaptured","injectErrorCapturedHook","defineComponent","_traverse","seenObjects","clear","seen","isA","isFrozen","depId","sourceKey","sharedPropertyDefinition","initState","opts","initProps$1","methods","initMethods","initData","_data","initComputed$1","nativeWatch","initWatch","propsOptions","isRoot","isReservedAttr","getData","watchers","_computedWatchers","isSSR","userDef","computedWatcherOptions","$data","defineComputed","shouldCache","createComputedGetter","createGetterInvoker","createWatcher","expOrFn","$watch","initProvide","provideOption","provided","Reflect","initInjections","resolveInject","provideKey","provideDefault","initInternalComponent","vnodeComponentOptions","_componentTag","resolveConstructorOptions","super","superOptions","modifiedOptions","resolveModifiedOptions","extendOptions","mergeOptions","components","modified","latest","sealed","sealedOptions","FunctionalRenderContext","contextVm","_this","_original","isCompiled","needNormalization","injections","createFunctionalComponent","mergeProps","cloneAndMarkFunctionalResult","vnodes","clone","devtoolsMeta","getComponentName","__name","_base","cid","model","transformModel","installComponentHooks","createComponentInstanceForVnode","_isComponent","inlineTemplate","hooksToMerge","toMerge","componentVNodeHooks","_merged","mergeHook","f1","f2","prop","callback","mergeData","recursive","toVal","fromVal","mergeDataOrFn","parentVal","childVal","instanceData","defaultData","dedupeHooks","mergeAssets","assertObjectType","checkComponents","validateComponentName","unicodeRegExp","isBuiltInTag","normalizeProps","normalizeInject","normalizeDirectives$1","dirs","directives","mergeField","strat","strats","defaultStrat","extends","mixins","warnMissing","assets","camelizedId","PascalCaseId","capitalize","absent","booleanIndex","getTypeIndex","stringIndex","getPropDefaultValue","prevShouldObserve","assertProp","getType","required","valid","expectedTypes","assertedType","assertType","expectedType","haveExpectedTypes","t","getInvalidTypeMessage","validator","simpleCheckRE","functionTypeCheckRE","isSameType","message","join","receivedType","isExplicable","isBoolean","styleValue","Number","EXPLICABLE_TYPES","elem","Vue","_init","initUse","use","plugin","installedPlugins","_installedPlugins","unshift","install","initMixin","mixin","initExtend","Super","SuperId","cachedCtors","_Ctor","Sub","initProps","initComputed","ASSET_TYPES","Comp","initAssetRegisters","definition","_getComponentName","matches","pattern","pruneCache","keepAliveInstance","entry","pruneCacheEntry","componentInstance","$destroy","genClassForVnode","parentNode","childNode","mergeClassData","renderClass","staticClass","dynamicClass","stringifyClass","stringifyArray","stringifyObject","stringified","isSVG","isUnknownElement","unknownElementCache","createElement","HTMLUnknownElement","HTMLElement","query","selected","querySelector","tagName","multiple","setAttribute","createElementNS","namespaceMap","createTextNode","createComment","insertBefore","newNode","referenceNode","removeChild","nextSibling","setTextContent","textContent","setStyleScope","registerRef","isRemoval","refValue","$refsValue","isFor","refInFor","_isString","_isRef","refs","setSetupRef","sameVnode","sameInputType","typeA","typeB","isTextInputType","createKeyToOldIdx","beginIdx","endIdx","updateDirectives","oldVnode","oldDir","dir","isCreate","emptyNode","isDestroy","oldDirs","normalizeDirectives","newDirs","dirsWithInsert","dirsWithPostpatch","oldArg","callHook","componentUpdated","inserted","callInsert","modifiers","emptyModifiers","getRawDirName","setupDef","rawName","updateAttrs","inheritAttrs","oldAttrs","_v_attr_proxy","setAttr","isIE","isEdge","isXlink","removeAttributeNS","xlinkNS","getXlinkProp","isEnumeratedAttr","removeAttribute","isInPre","baseSetAttr","isBooleanAttr","isFalsyAttrValue","convertEnumeratedValue","setAttributeNS","isIE9","__ieph","blocker_1","stopImmediatePropagation","removeEventListener","addEventListener","updateClass","oldData","cls","transitionClass","_transitionClasses","_prevClass","parseFilters","exp","pushFilter","filters","lastFilterIndex","inSingle","inDouble","inTemplateString","inRegex","curly","square","paren","validDivisionCharRE","wrapFilter","baseWarn","msg","range","pluckModuleFunction","modules","m","_","addProp","dynamic","rangeSetItem","plain","addAttr","dynamicAttrs","addRawAttr","attrsMap","attrsList","addDirective","isDynamicArg","prependModifierMarker","addHandler","important","warn","prevent","right","middle","events","native","nativeEvents","newHandler","getRawBindingAttr","rawAttrsMap","getBindingAttr","getStatic","dynamicValue","getAndRemoveAttr","staticValue","removeFromMap","getAndRemoveAttrByRegex","attr","end","genComponentModel","valueExpression","assignment","genAssignmentCode","parseModel","lastIndexOf","expressionPos","expressionEndPos","eof","chr","isStringStart","parseString","parseBracket","inBracket","stringQuote","model$1","_warn","warn$1","genSelect","genCheckboxModel","genRadioModel","genDefaultModel","valueBinding","trueValueBinding","falseValueBinding","selectedVal","value_1","typeBinding","binding","needCompositionGuard","RANGE_TOKEN","normalizeEvents","event_1","CHECKBOX_RADIO_TOKEN","change","useMicrotaskFix","attachedTimestamp_1","original_1","_wrapper","currentTarget","timeStamp","ownerDocument","supportsPassive","updateDOMListeners","updateDOMProps","oldProps","childNodes","_value","strCur","shouldUpdateValue","innerHTML","svgContainer","svg","firstChild","checkVal","composing","isNotInFocusAndDirty","isDirtyWithModifiers","notInFocus","activeElement","_vModifiers","normalizeStyleData","normalizeStyleBinding","staticStyle","bindingStyle","parseStyleText","getStyle","checkChild","styleData","updateStyle","oldStaticStyle","oldStyleBinding","normalizedStyle","oldStyle","newStyle","setProp","addClass","classList","whitespaceRE$1","getAttribute","removeClass","tar","resolveTransition","css","autoCssTransition","nextFrame","raf","addTransitionClass","transitionClasses","removeTransitionClass","whenTransitionEnds","getTransitionInfo","propCount","TRANSITION","transitionEndEvent","animationEndEvent","ended","onEnd","styles","getComputedStyle","transitionDelays","transitionProp","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationProp","animationDurations","animationTimeout","ANIMATION","hasTransform","transformRE","delays","durations","toMs","enter","toggleDisplay","_leaveCb","cancelled","transition","_enterCb","enterClass","enterToClass","enterActiveClass","appearClass","appearToClass","appearActiveClass","beforeEnter","afterEnter","enterCancelled","beforeAppear","appear","afterAppear","appearCancelled","duration","transitionNode","isAppear","isRootInsert","startClass","activeClass","toClass","beforeEnterHook","enterHook","afterEnterHook","enterCancelledHook","explicitEnterDuration","checkDuration","expectsCSS","userWantsControl","getHookArgumentsLength","show","pendingNode","_pending","isValidDuration","leave","rm","performLeave","beforeLeave","leaveClass","leaveActiveClass","leaveToClass","explicitLeaveDuration","afterLeave","leaveCancelled","delayLeave","invokerFns","_enter","setSelected","actuallySetSelected","isMultiple","option","getValue","selectedIndex","hasNoMatchingOption","o","onCompositionStart","onCompositionEnd","trigger","createEvent","initEvent","dispatchEvent","locateNode","getRealChild","compOptions","extractTransitionData","placeholder","rawChild","hasParentTransition","isSameChild","oldChild","callPendingCbs","_moveCb","recordPosition","newPos","getBoundingClientRect","applyTranslation","oldPos","pos","dx","left","dy","top","moved","transform","WebkitTransform","transitionDuration","parseText","delimiters","tagRE","buildRegex","defaultTagRE","tokenValue","tokens","rawTokens","transformNode$1","classBinding","genData$2","transformNode","styleBinding","genData$1","decodeAttr","shouldDecodeNewlines","encodedAttrWithNewLines","encodedAttr","decodingMap","parseHTML","advance","substring","parseStartTag","startTagOpen","startTagClose","dynamicArgAttribute","attribute","unarySlash","handleStartTag","expectHTML","lastTag","isNonPhrasingTag","parseEndTag","canBeLeftOpenTag","unary","isUnaryTag","shouldDecodeNewlinesForHref","outputSourceRange","stack","lowerCasedTag","lowerCasedTagName","no","isPlainTextElement","endTagLength_1","stackedTag_1","reStackedTag","reCache","rest","shouldIgnoreFirstNewline","chars","textEnd","comment","commentEnd","shouldKeepComment","conditionalComment","conditionalEnd","doctypeMatch","doctype","endTagMatch","curIndex","startTagMatch","createASTElement","makeAttrsMap","parse","warnOnce","warned","closeElement","element","trimEndingWhitespace","inVPre","processed","processElement","root","if","elseif","else","checkRootConstraints","addIfCondition","block","currentParent","forbidden","processIfConditions","slotScope","slotTarget","platformIsPreTag","inPre","postTransforms","lastNode","isPreTag","platformMustUseProp","platformGetTagNamespace","maybeComponent","transforms","preTransforms","preserveWhitespace","whitespaceOption","whitespace","comments","guardIESVGBug","cumulated","invalidAttributeRE","isForbiddenTag","processPre","processRawAttrs","processFor","processIf","processOnce","isTextTag","decodeHTMLCached","lineBreakRE","whitespaceRE","processKey","processRef","processSlotContent","processSlotOutlet","processComponent","processAttrs","for","iterator2","iterator1","parent_1","checkInFor","parseFor","inMatch","forAliasRE","alias","stripParensRE","iteratorMatch","forIteratorRE","findPrevElement","condition","ifConditions","slotTargetDynamic","slotBinding","slotRE","getSlotName","emptySlotScopeToken","name_3","slotContainer_1","dynamicArgRE","slotName","syncGen","isDynamic","dirRE","hasBindings","parseModifiers","modifierRE","bindRE","camel","sync","onRE","argMatch","argRE","checkForAliasModel","ret_1","ieNSBug","ieNSPrefix","_el","preTransformNode","ifCondition","ifConditionExtra","hasElse","elseIfCondition","branch0","cloneASTElement","branch1","branch2","optimize","isStaticKey","genStaticKeysCached","staticKeys","isPlatformReservedTag","markStatic","markStaticRoots","genStaticKeys","static","staticInFor","staticRoot","isDirectChildOfTemplateFor","genHandlers","prefix","staticHandlers","dynamicHandlers","handlerCode","genHandler","isMethodPath","simplePathRE","isFunctionExpression","fnExpRE","isFunctionInvocation","fnInvokeRE","genModifierCode","modifierCode","modifiers_1","genGuard","keyModifier","genKeyFilter","genFilterCode","keyVal","keyCode","keyName","keyNames","wrapListeners","wrapData","generate","ast","CodegenState","genElement","staticProcessed","genStatic","onceProcessed","genOnce","forProcessed","genFor","ifProcessed","genIf","genSlot","genComponent","genData","bindings","__isScriptSetup","checkBindingType","genChildren","camelName","PascalName","checkType","fromConst","fromMaybeRef","originalPreState","onceId","altGen","altEmpty","genIfConditions","conditions","genTernaryExp","altHelper","genDirectives","dataGenFns","genProps","genScopedSlots","genInlineTemplate","needRuntime","hasRuntime","gen","inlineRenderFns","containsSlotChild","needsKey","parent_2","generatedSlots","genScopedSlot","isLegacySyntax","reverseProxy","checkSkip","altGenElement","altGenNode","el_1","normalizationType_1","getNormalizationType","gen_1","genNode","needsNormalization","genComment","genText","transformSpecialNewlines","componentName","staticProps","dynamicProps","detectErrors","checkNode","checkFor","checkFunctionParameterExpression","checkEvent","checkExpression","stripped","stripStringRE","keywordMatch","unaryOperatorsRE","checkIdentifier","ident","prohibitedKeywordRE","generateCodeFrame","lines","count","repeat","lineLength","pad","length_1","length_2","createFunction","errors","createCompileToFunctionFn","compile","compiled","tips","fnGenErrors","getShouldDecode","href","div","getOuterHTML","outerHTML","container","cloneNode","scheduler","freeze","camelizeRE","hyphenateRE","SSR_ATTR","LIFECYCLE_HOOKS","optionMergeStrategies","silent","productionTip","warnHandler","ignoredElements","_lifecycleHooks","hasProto","UA","navigator","isIOS","isFF","_isServer","_Set","env","VUE_ENV","__VUE_DEVTOOLS_GLOBAL_HOOK__","Set","initProxy","allowedGlobals_1","warnNonPresent_1","warnReservedPrefix_1","hasProxy_1","Proxy","isBuiltInModifier_1","hasHandler_1","isAllowed","getHandler_1","_withStripped","assign","uid$2","pendingCleanupDeps","subs","addSub","sub","removeSub","addDep","arrayProto","arrayMethods","original","observeArray","arrayKeys","mockDep","__proto__","perf_1","clearMarks","clearMeasures","now","performance_1","scopes","currentEffectScope","stop","fromParent","isUsingMicroTask","p_1","MutationObserver","setImmediate","counter_1","observer","textNode_1","characterData","onBeforeMount","onMounted","onBeforeUpdate","onUpdated","onBeforeUnmount","onUnmounted","onActivated","onDeactivated","onServerPrefetch","onRenderTracked","onRenderTriggered","vca","uid$1","isRenderWatcher","_vm","deps","newDeps","depIds","newDepIds","tmp","generateComponentTrace","init","keepAlive","mountedNode","prepatch","$mount","insert","destroy","hasConsole_1","classifyRE_1","classify_1","trace","includeFile","file","__file","repeat_1","currentRecursiveSequence","_self","dataDef","propsDef","$set","$delete","hookRE","i_1","cbs","lowerCaseEvent","prevEl","prevVnode","restoreActiveInstance","__patch__","__vue__","wrapper","$nextTick","renderError","patternTypes","KeepAlive","include","exclude","cacheVNode","vnodeToCache","keyToCache","created","destroyed","mounted","updated","builtInComponents","configDef","util","delete","observable","emptyStyle","acceptValue","isValidContentEditableValue","math","isHTMLTag","nodeOps","directives$1","baseModules","klass$1","cssText","listDelimiter","propertyDelimiter","cssVarRE","importantRE","normalizedName","normalize","vendorNames","capName","style$1","hasTransition","ontransitionend","onwebkittransitionend","onanimationend","onwebkitanimationend","requestAnimationFrame","activate","platformModules","modules$1","patch","backend","emptyNodeAt","createRmCb","childElm","removeNode","ignore","createElm","insertedVnodeQueue","parentElm","refElm","nested","ownerArray","creatingElmInVPre","setScope","createChildren","invokeCreateHooks","isReactivated","initComponent","reactivateComponent","pendingInsert","isPatchable","innerNode","checkDuplicateKeys","i_2","ancestor","addVnodes","startIdx","invokeDestroyHook","removeVnodes","ch","removeAndInvokeRemoveHook","i_3","updateChildren","oldCh","newCh","removeOnly","oldKeyToIdx","idxInOld","vnodeToMove","oldStartIdx","newStartIdx","oldEndIdx","oldStartVnode","oldEndVnode","newEndIdx","newStartVnode","newEndVnode","canMove","patchVnode","findIdxInOld","seenKeys","i_4","i_5","hydrate","postpatch","invokeInsertHook","initial","i_6","assertNodeMatch","hasChildNodes","hydrationBailed","childrenMatch","i_7","fullInvoke","isRenderedModule","isInitialPatch","isRealElement","hasAttribute","oldElm","patchable","i_8","i_9","insert_1","i_10","vmodel","directive","_vOptions","prevOptions_1","curOptions_1","originalDisplay","__vOriginalDisplay","unbind","platformDirectives","transitionProps","isNotTextNode","isVShowDirective","Transition","_leaving","oldRawChild","delayedLeave_1","moveClass","TransitionGroup","beforeMount","kept","prevChildren","rawChildren","transitionData","removed","hasMove","_reflow","body","offsetHeight","propertyName","_hasMove","platformComponents","decoder","regexEscapeRE","klass","he","decode","ncname","qnameCapture","isIgnoreNewlineTag","baseOptions","esc","tab","space","up","down","ctrl","alt","meta","baseDirectives","cloak","createCompiler","baseCompile","finalOptions","leadingSpaceLength_1","compileToFunctions","idToTemplate","mount","documentElement","_defineProperty","UNSCOPABLES","ArrayPrototype","Iterators","ITERATOR","functionToString","replacement","feature","detection","POLYFILL","NATIVE","IteratorPrototype","PrototypeOfArrayIteratorPrototype","arrayIterator","BUGGY_SAFARI_ITERATORS","internalObjectKeys","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","names","aPossiblePrototype","setPrototypeOf","CORRECT_SETTER","hasIndices","ignoreCase","dotAll","unicode","unicodeSets","validateArgumentsLength","MSIE","wrap","boundArgs","setInterval","TAG","whitespaces","ltrim","rtrim","ordinaryToPrimitive","TO_PRIMITIVE","pref","exoticToPrim","postfix","random","$filter","$find","addToUnscopables","SKIPS_HOLES","$indexOf","arrayMethodIsStrict","nativeIndexOf","NEGATIVE_ZERO","STRICT_METHOD","searchElement","isConstructor","nativeSlice","HAS_SPECIES_SUPPORT","$Array","Constructor","fin","DatePrototype","nativeDateToString","thisTimeValue","errorToString","ErrorPrototype","FUNCTION_NAME_EXISTS","nameRE","PROPER_FUNCTION_NAME","$toString","getRegExpFlags","RegExpPrototype","nativeToString","NOT_GENERIC","INCORRECT_NAME","R","defaultSetTimout","defaultClearTimeout","runTimeout","fun","cachedSetTimeout","runClearTimeout","marker","cachedClearTimeout","cleanUpNextTick","draining","currentQueue","queueIndex","drainQueue","Item","title","browser","argv","addListener","removeListener","removeAllListeners","prependListener","prependOnceListener","cwd","chdir","umask","iterable","InternalStateModule","defineIterator","createIterResultObject","setInternalState","iterated","point","objectOrFunction","setScheduler","scheduleFn","customSchedulerFn","setAsap","asapFn","asap","useVertxTimer","vertxNext","useSetTimeout","globalSetTimeout","onFulfillment","onRejection","PROMISE_ID","makePromise","_state","invokeCallback","_result","subscribe","resolve$1","promise","selfFulfillment","cannotReturnOwn","tryThen","then$$1","fulfillmentHandler","rejectionHandler","handleForeignThenable","thenable","fulfill","_label","handleOwnThenable","FULFILLED","REJECTED","handleMaybeThenable","maybeThenable","publishRejection","_onerror","publish","PENDING","_subscribers","subscribers","settled","detail","hasCallback","succeeded","initializePromise","resolver","nextId","validationError","entries","Enumerator","race","reject$1","needsResolver","needsNew","polyfill","local","promiseToString","cast","Promise$1","_isArray","scheduleFlush","browserWindow","browserGlobal","BrowserMutationObserver","WebKitMutationObserver","isNode","isWorker","Uint8ClampedArray","importScripts","MessageChannel","iterations","channel","port1","onmessage","port2","postMessage","vertx","require","runOnLoop","runOnContext","_instanceConstructor","_remaining","_enumerate","_eachEntry","resolve$$1","_then","didError","_settledAt","_willSettleAt","enumerator","finally","_setScheduler","_setAsap","_asap","_toPrimitive","hint","prim","_toPropertyKey","callWithSafeIterationClosing","isArrayIteratorMethod","getIterator","getIteratorMethod","arrayLike","IS_CONSTRUCTOR","argumentsLength","mapfn","mapping","step","iteratorMethod","IS_RIGHT","memo","C","iteratorClose","ENTRIES","SAFE_CLOSING","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","getOwnPropertyDescriptorModule","exceptions","MATCH","error1","error2","normalizeStringArgument","nativeErrorToString","regexpExec","KEY","FORCED","SHAM","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","uncurriedNativeRegExpMethod","nativeMethod","arg2","forceStringMethod","uncurriedNativeMethod","$exec","usingIterator","Wrapper","NewTarget","NewTargetPrototype","kind","innerResult","innerError","setToStringTag","returnThis","IteratorConstructor","NAME","ENUMERABLE_NEXT","FunctionName","createIteratorConstructor","IteratorsCore","CONFIGURABLE_FUNCTION_NAME","Iterable","DEFAULT","IS_SET","CurrentIteratorPrototype","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","enforceInternalState","CONFIGURABLE_LENGTH","TEMPLATE","ceil","$default","objectKeys","$propertyIsEnumerable","NASHORN_BUG","1","valueOf","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","regExpFlags","$RegExp","MISSED_STICKY","CONVERT_TO_STRING","second","position","size","codeAt","non","passed","$every","$includes","$reduce","CHROME_VERSION","IS_NODE","CHROME_BUG","deletePropertyOrThrow","deleteCount","insertCount","actualDeleteCount","actualStart","INCORRECT_RESULT","notARegExp","correctIsRegExpLogic","stringIndexOf","searchString","$trim","task","tasksByHandle","nextHandle","registerImmediate","clearImmediate","handle","runIfPresent","currentlyRunningATask","doc","attachTo","postMessageIsAsynchronous","oldOnMessage","messagePrefix","onGlobalMessage","attachEvent","script","onreadystatechange","Timeout","clearFn","_id","_clearFn","clearInterval","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","listToStyles","parentId","newStyles","media","sourceMap","part","parts","applyMixin","vuexInit","$store","devtoolPlugin","devtoolHook","_devtoolHook","targetState","replaceState","mutation","prepend","subscribeAction","action","deepCopy","hit","copy","forEachValue","partial","targetModule","newModule","getChild","genericSubscribe","resetStore","hot","_actions","_mutations","_wrappedGetters","_modulesNamespaceMap","installModule","_modules","resetStoreVM","oldVm","getters","_makeLocalGettersCache","wrappedGetters","$$state","strict","enableStrictMode","_withCommit","rootState","getNamespace","namespaced","parentState","getNestedState","moduleName","makeLocalContext","forEachMutation","registerMutation","forEachAction","registerAction","forEachGetter","registerGetter","forEachChild","noNamespace","dispatch","_type","_payload","_options","unifyObjectStyle","payload","commit","makeLocalGetters","gettersProxy","splitPos","localType","rootGetters","rawGetter","_Vue","normalizeMap","isValidMap","normalizeNamespace","getModuleByNamespace","helper","createLogger","collapsed","stateBefore","stateAfter","transformer","mutationTransformer","mut","actionFilter","actionTransformer","act","logMutations","logActions","logger","prevState","nextState","formattedTime","getFormattedTime","formattedMutation","startMessage","log","endMessage","formattedAction","groupCollapsed","groupEnd","time","getHours","getMinutes","getSeconds","getMilliseconds","times","num","maxLength","Module","rawModule","runtime","_children","_rawModule","rawState","prototypeAccessors","addChild","hasChild","actions","mutations","ModuleCollection","rawRootModule","register","this$1","rawChildModule","unregister","isRegistered","Store","plugins","_committing","_actionSubscribers","_watcherVM","prototypeAccessors$1","after","registerModule","preserveState","unregisterModule","hasModule","hotUpdate","newOptions","committing","mapState","states","vuex","mapMutations","mapGetters","mapActions","createNamespacedHelpers","cssWithMappingToString","useSourceMap","cssMapping","btoa","sourceMapping","toComment","sources","sourceRoot","unescape","encodeURIComponent","mediaQuery","alreadyImportedModules","url","addStylesClient","_isProduction","isProduction","addStylesToDom","newList","mayRemove","domStyle","stylesInDom","addStyle","createStyleElement","styleElement","head","ssrIdKey","isOldIE","styleIndex","singletonCounter","singletonElement","applyToSingletonTag","applyToTag","newObj","styleSheet","replaceText","cssNode","ssrId","hasDocument","DEBUG","getElementsByTagName","textStore"],"mappings":"AAAAA,cAAc,IAER,SAAUC,EAAQC,GCFxBD,EAAOC,QAAU,SAAUC,GACzB,IACE,QAASA,IACT,MAAOC,GACP,OAAO,KDWL,SAAUH,EAAQC,EAASG,GEfjC,GAAIC,GAAc,EAAQ,IAEtBC,EAAoBC,SAASC,UAC7BC,EAAOH,EAAkBG,KACzBC,EAAsBL,GAAeC,EAAkBK,KAAKA,KAAKF,EAAMA,EAE3ET,GAAOC,QAAUI,EAAcK,EAAsB,SAAUE,GAC7D,MAAO,YACL,MAAOH,GAAKI,MAAMD,EAAIE,cFwBpB,SAAUd,EAAQC,EAASG,GGhCjC,GAAIW,GAAS,EAAQ,GACjBC,EAA2B,EAAQ,IAAmDC,EACtFC,EAA8B,EAAQ,IACtCC,EAAgB,EAAQ,IACxBC,EAAuB,EAAQ,IAC/BC,EAA4B,EAAQ,KACpCC,EAAW,EAAQ,IAiBvBtB,GAAOC,QAAU,SAAUsB,EAASC,GAClC,GAGYC,GAAQC,EAAKC,EAAgBC,EAAgBC,EAHrDC,EAASP,EAAQE,OACjBM,EAASR,EAAQR,OACjBiB,EAAST,EAAQU,IASrB,IANER,EADEM,EACOhB,EACAiB,EACAjB,EAAOe,IAAWV,EAAqBU,OAEtCf,EAAOe,QAAetB,UAEtB,IAAKkB,IAAOF,GAAQ,CAQ9B,GAPAI,EAAiBJ,EAAOE,GACpBH,EAAQW,gBACVL,EAAab,EAAyBS,EAAQC,GAC9CC,EAAiBE,GAAcA,EAAWM,OACrCR,EAAiBF,EAAOC,IACtBJ,EAASS,EAASL,EAAMI,GAAUE,EAAS,IAAM,KAAON,EAAKH,EAAQa,aAE5CC,KAAnBV,EAA8B,CAC3C,SAAWC,UAAyBD,GAAgB,QACpDN,GAA0BO,EAAgBD,IAGxCJ,EAAQe,MAASX,GAAkBA,EAAeW,OACpDpB,EAA4BU,EAAgB,QAAQ,GAEtDT,EAAcM,EAAQC,EAAKE,EAAgBL,MHyCzC,SAAUvB,EAAQC,EAASG,GI5FjC,GAAImC,GAAe,EAAQ,IAEvBC,EAAcD,EAAaE,GAI/BzC,GAAOC,QAAUsC,EAAaG,WAAa,SAAUC,GACnD,MAA0B,kBAAZA,IAA0BA,IAAaH,GACnD,SAAUG,GACZ,MAA0B,kBAAZA,KJoGV,SAAU3C,EAAQC,EAASG,IK7GjC,8BACE,MAAOwC,IAAMA,EAAGC,MAAQA,MAAQD,EAIlC5C,GAAOC,QAEL6C,EAA2B,gBAAdC,aAA0BA,aACvCD,EAAuB,gBAAVE,SAAsBA,SAEnCF,EAAqB,gBAARG,OAAoBA,OACjCH,EAAuB,gBAAV/B,IAAsBA,IAEnC,WAAe,MAAOmC,UAAc3C,SAAS,mBLiHlBE,KAAKR,EAASG,EAAoB,MAIzD,SAAUJ,EAAQC,EAASG,GMlIjC,GAAIW,GAAS,EAAQ,GACjBoC,EAAS,EAAQ,IACjBC,EAAS,EAAQ,IACjBC,EAAM,EAAQ,KACdC,EAAgB,EAAQ,KACxBC,EAAoB,EAAQ,KAE5BC,EAAwBL,EAAO,OAC/BM,EAAS1C,EAAO0C,OAChBC,EAAYD,GAAUA,EAAY,IAClCE,EAAwBJ,EAAoBE,EAASA,GAAUA,EAAOG,eAAiBP,CAE3FrD,GAAOC,QAAU,SAAU4D,GACzB,IAAKT,EAAOI,EAAuBK,KAAWP,GAAuD,gBAA/BE,GAAsBK,GAAoB,CAC9G,GAAIC,GAAc,UAAYD,CAC1BP,IAAiBF,EAAOK,EAAQI,GAClCL,EAAsBK,GAAQJ,EAAOI,GAErCL,EAAsBK,GADbN,GAAqBG,EACAA,EAAUI,GAEVH,EAAsBG,GAEtD,MAAON,GAAsBK,KN0I3B,SAAU7D,EAAQC,GO1JxBD,EAAOC,QAAU,SACf8D,EACAC,EACAC,EACAC,EACAC,EACAC,GAEA,GAAIC,GACAC,EAAgBP,EAAmBA,MAGnCQ,QAAcR,GAAiBS,OACtB,YAATD,GAA8B,aAATA,IACvBF,EAAWN,EACXO,EAAgBP,EAAiBS,QAInC,IAAIjD,GAAmC,kBAAlB+C,GACjBA,EAAc/C,QACd+C,CAGAN,KACFzC,EAAQkD,OAAST,EAAiBS,OAClClD,EAAQmD,gBAAkBV,EAAiBU,gBAC3CnD,EAAQoD,WAAY,GAIlBV,IACF1C,EAAQqD,YAAa,GAInBT,IACF5C,EAAQsD,SAAWV,EAGrB,IAAIW,EA4BJ,IA3BIV,GACFU,EAAO,SAAUC,GAEfA,EACEA,GACC7B,KAAK8B,QAAU9B,KAAK8B,OAAOC,YAC3B/B,KAAKgC,QAAUhC,KAAKgC,OAAOF,QAAU9B,KAAKgC,OAAOF,OAAOC,WAEtDF,GAA0C,mBAAxBI,uBACrBJ,EAAUI,qBAGRjB,GACFA,EAAazD,KAAKyC,KAAM6B,GAGtBA,GAAWA,EAAQK,uBACrBL,EAAQK,sBAAsBC,IAAIjB,IAKtC7C,EAAQ+D,aAAeR,GACdZ,IACTY,EAAOZ,GAGLY,EAAM,CACR,GAAIF,GAAarD,EAAQqD,WACrBW,EAAWX,EACXrD,EAAQkD,OACRlD,EAAQiE,YAEPZ,IAQHrD,EAAQkE,cAAgBX,EAExBvD,EAAQkD,OAAS,SAAmCiB,EAAGX,GAErD,MADAD,GAAKrE,KAAKsE,GACHQ,EAASG,EAAGX,KAVrBxD,EAAQiE,aAAeD,KAChBI,OAAOJ,EAAUT,IACnBA,GAaT,OACET,SAAUA,EACVpE,QAASqE,EACT/C,QAASA,KPwKN,CAED,SAAUvB,EAAQC,EAASG,GQ9QjC,GAAIwF,GAAW,EAAQ,IAEnBC,EAAUC,OACVC,EAAaC,SAGjBhG,GAAOC,QAAU,SAAU0C,GACzB,GAAIiD,EAASjD,GAAW,MAAOA,EAC/B,MAAMoD,GAAWF,EAAQlD,GAAY,uBRsRjC,SAAU3C,EAAQC,EAASG,GS9RjC,GAAI6F,GAAQ,EAAQ,EAGpBjG,GAAOC,SAAWgG,EAAM,WAEtB,MAA8E,IAAvEC,OAAOC,kBAAmB,GAAKC,IAAK,WAAc,MAAO,MAAQ,MTsSpE,SAAUpG,EAAQC,EAASG,GU3SjC,GAAIC,GAAc,EAAQ,IAEtBI,EAAOF,SAASC,UAAUC,IAE9BT,GAAOC,QAAUI,EAAcI,EAAKE,KAAKF,GAAQ,WAC/C,MAAOA,GAAKI,MAAMJ,EAAMK,aVmTpB,SAAUd,EAAQC,EAASG,GWxTjC,GAAIiG,GAAc,EAAQ,GACtBC,EAAW,EAAQ,IAEnBC,EAAiBF,KAAeE,eAKpCvG,GAAOC,QAAUiG,OAAO9C,QAAU,SAAgBR,EAAIlB,GACpD,MAAO6E,GAAeD,EAAS1D,GAAKlB,KXgUhC,SAAU1B,EAAQC,EAASG,GYzUjC,GAAIoG,GAAa,EAAQ,GACrBjE,EAAe,EAAQ,IAEvBC,EAAcD,EAAaE,GAE/BzC,GAAOC,QAAUsC,EAAaG,WAAa,SAAUE,GACnD,MAAoB,gBAANA,GAAwB,OAAPA,EAAc4D,EAAW5D,IAAOA,IAAOJ,GACpE,SAAUI,GACZ,MAAoB,gBAANA,GAAwB,OAAPA,EAAc4D,EAAW5D,KZiVpD,SAAU5C,EAAQC,EAASG,GazVjC,GAAIoG,GAAa,EAAQ,GACrBC,EAAuB,EAAQ,IAC/BC,EAAc,EAAQ,KACtBtF,EAAuB,EAAQ,GAEnCpB,GAAOC,QAAU,SAAU0G,EAAGjF,EAAKS,EAAOZ,GACnCA,IAASA,KACd,IAAIqF,GAASrF,EAAQsF,WACjBhD,MAAwBxB,KAAjBd,EAAQsC,KAAqBtC,EAAQsC,KAAOnC,CAEvD,IADI8E,EAAWrE,IAAQuE,EAAYvE,EAAO0B,EAAMtC,GAC5CA,EAAQR,OACN6F,EAAQD,EAAEjF,GAAOS,EAChBf,EAAqBM,EAAKS,OAC1B,CACL,IACOZ,EAAQuF,OACJH,EAAEjF,KAAMkF,GAAS,SADED,GAAEjF,GAE9B,MAAOvB,IACLyG,EAAQD,EAAEjF,GAAOS,EAChBsE,EAAqBxF,EAAE0F,EAAGjF,GAC7BS,MAAOA,EACP0E,YAAY,EACZE,cAAexF,EAAQyF,gBACvBC,UAAW1F,EAAQ2F,cAErB,MAAOP,KbiWL,SAAU3G,EAAQC,EAASG,Gc1XjC,GAAI+G,GAAW,EAAQ,IAIvBnH,GAAOC,QAAU,SAAUmH,GACzB,MAAOD,GAASC,EAAIC,UdkYhB,SAAUrH,EAAQC,EAASG,GevYjC,GAAIkH,GAAc,EAAQ,GACtBC,EAAiB,EAAQ,IACzBC,EAA0B,EAAQ,KAClCC,EAAW,EAAQ,GACnBC,EAAgB,EAAQ,IAExB3B,EAAaC,UAEb2B,EAAkBzB,OAAOC,eAEzByB,EAA4B1B,OAAOlF,wBAOvCf,GAAQgB,EAAIqG,EAAcE,EAA0B,SAAwBb,EAAGkB,EAAGC,GAIhF,GAHAL,EAASd,GACTkB,EAAIH,EAAcG,GAClBJ,EAASK,GACQ,kBAANnB,IAA0B,cAANkB,GAAqB,SAAWC,IARlD,YAQ4EA,KAAeA,EAAmB,SAAG,CAC5H,GAAIC,GAAUH,EAA0BjB,EAAGkB,EACvCE,IAAWA,EAAgB,WAC7BpB,EAAEkB,GAAKC,EAAW3F,MAClB2F,GACEf,aAdW,gBAcmBe,GAAaA,EAAuB,aAAIC,EAAoB,aAC1FlB,WAhBS,cAgBiBiB,GAAaA,EAAqB,WAAIC,EAAkB,WAClFd,UAAU,IAGd,MAAOU,GAAgBhB,EAAGkB,EAAGC,IAC7BH,EAAkB,SAAwBhB,EAAGkB,EAAGC,GAIlD,GAHAL,EAASd,GACTkB,EAAIH,EAAcG,GAClBJ,EAASK,GACLP,EAAgB,IAClB,MAAOI,GAAgBhB,EAAGkB,EAAGC,GAC7B,MAAO3H,IACT,GAAI,OAAS2H,IAAc,OAASA,GAAY,KAAM/B,GAAW,0BAEjE,OADI,SAAW+B,KAAYnB,EAAEkB,GAAKC,EAAW3F,OACtCwE,If+YH,SAAU3G,EAAQC,EAASG,GgBxbjC,GAAI4H,GAAyB,EAAQ,IAEjCC,EAAU/B,MAIdlG,GAAOC,QAAU,SAAU0C,GACzB,MAAOsF,GAAQD,EAAuBrF,MhBgclC,SAAU3C,EAAQC,EAASG,GiBvcjC,GAAI8H,GAAU,EAAQ,IAElBrC,EAAUC,MAEd9F,GAAOC,QAAU,SAAU0C,GACzB,GAA0B,WAAtBuF,EAAQvF,GAAwB,KAAMqD,WAAU,4CACpD,OAAOH,GAAQlD,KjB+cX,SAAU3C,EAAQC,EAASG,GkBrdjC,GAAIiG,GAAc,EAAQ,GAEtB8B,EAAW9B,KAAe8B,UAC1BC,EAAc/B,EAAY,GAAGgC,MAEjCrI,GAAOC,QAAU,SAAU2C,GACzB,MAAOwF,GAAYD,EAASvF,GAAK,GAAI,KlB6djC,SAAU5C,EAAQC,EAASG,GmBnejC,GAAIkI,GAAoB,EAAQ,IAE5BvC,EAAaC,SAIjBhG,GAAOC,QAAU,SAAU2C,GACzB,GAAI0F,EAAkB1F,GAAK,KAAMmD,GAAW,wBAA0BnD,EACtE,OAAOA,KnB2eH,SAAU5C,EAAQC,GoBnfxB,GAAIsI,EAGJA,GAAI,WACH,MAAOrF,QAGR,KAECqF,EAAIA,GAAKhI,SAAS,mBAAoB,EAAGiI,MAAM,QAC9C,MAAMC,GAEc,gBAAXzF,UACTuF,EAAIvF,QAONhD,EAAOC,QAAUsI,GpB0fX,SAAUvI,EAAQC,EAASG,GqB9gBjC,GAAI6F,GAAQ,EAAQ,GAChByC,EAAkB,EAAQ,GAC1BC,EAAa,EAAQ,IAErBC,EAAUF,EAAgB,UAE9B1I,GAAOC,QAAU,SAAU4I,GAIzB,MAAOF,IAAc,KAAO1C,EAAM,WAChC,GAAI6C,MACAC,EAAcD,EAAMC,cAIxB,OAHAA,GAAYH,GAAW,WACrB,OAASI,IAAK,IAE2B,IAApCF,EAAMD,GAAaI,SAASD,QrBuhBjC,SAAUhJ,EAAQC,EAASG,GsBviBjC,GAAIkH,GAAc,EAAQ,GACtBlE,EAAS,EAAQ,IAEjB9C,EAAoBC,SAASC,UAE7B0I,EAAgB5B,GAAepB,OAAOlF,yBAEtCmI,EAAS/F,EAAO9C,EAAmB,QAEnC8I,EAASD,GAA0D,cAAhD,aAAuCtF,KAC1DwF,EAAeF,KAAY7B,GAAgBA,GAAe4B,EAAc5I,EAAmB,QAAQyG,aAEvG/G,GAAOC,SACLkJ,OAAQA,EACRC,OAAQA,EACRC,aAAcA,ItB+iBV,SAAUrJ,EAAQC,EAASG,GuB9jBjC,GAAIW,GAAS,EAAQ,GACjByF,EAAa,EAAQ,GAErB8C,EAAY,SAAU3G,GACxB,MAAO6D,GAAW7D,GAAYA,MAAWN,GAG3CrC,GAAOC,QAAU,SAAUsJ,EAAWC,GACpC,MAAO1I,WAAUuG,OAAS,EAAIiC,EAAUvI,EAAOwI,IAAcxI,EAAOwI,IAAcxI,EAAOwI,GAAWC,KvBskBhG,SAAUxJ,EAAQC,EAASG,GwB9kBjC,GAAI8H,GAAU,EAAQ,GAKtBlI,GAAOC,QAAUwJ,MAAMC,SAAW,SAAiB/G,GACjD,MAA4B,SAArBuF,EAAQvF,KxBslBX,SAAU3C,EAAQC,EAASG,GyB3lBjC,GAmDIuJ,GAnDAlC,EAAW,EAAQ,GACnBmC,EAAyB,EAAQ,KACjCC,EAAc,EAAQ,IACtBC,EAAa,EAAQ,IACrBC,EAAO,EAAQ,KACfC,EAAwB,EAAQ,IAChCC,EAAY,EAAQ,IAMpBC,EAAWD,EAAU,YAErBE,EAAmB,aAEnBC,EAAY,SAAUC,GACxB,MAAOC,WAAmBD,EARnB,cAYLE,EAA4B,SAAUZ,GACxCA,EAAgBa,MAAMJ,EAAU,KAChCT,EAAgBc,OAChB,IAAIC,GAAOf,EAAgBgB,aAAazE,MAExC,OADAyD,GAAkB,KACXe,GAILE,EAA2B,WAE7B,GAEIC,GAFAC,EAASd,EAAsB,SAWnC,OARAc,GAAOC,MAAMC,QAAU,OACvBjB,EAAKkB,YAAYH,GAEjBA,EAAOI,IAAMpF,OALJ,eAMT+E,EAAiBC,EAAOK,cAAcC,SACtCP,EAAeQ,OACfR,EAAeL,MAAMJ,EAAU,sBAC/BS,EAAeJ,QACRI,EAAeS,GASpBC,EAAkB,WACpB,IACE5B,EAAkB,GAAI6B,eAAc,YACpC,MAAOrL,IACToL,EAAqC,mBAAZH,UACrBA,SAASK,QAAU9B,EACjBY,EAA0BZ,GAC1BiB,IACFL,EAA0BZ,EAE9B,KADA,GAAItC,GAASwC,EAAYxC,OAClBA,WAAiBkE,GAAyB,UAAE1B,EAAYxC,GAC/D,OAAOkE,KAGTzB,GAAWI,IAAY,EAKvBlK,EAAOC,QAAUiG,OAAOwF,QAAU,SAAgB/E,EAAGgF,GACnD,GAAIC,EAQJ,OAPU,QAANjF,GACFwD,EAA0B,UAAI1C,EAASd,GACvCiF,EAAS,GAAIzB,GACbA,EAA0B,UAAI,KAE9ByB,EAAO1B,GAAYvD,GACdiF,EAASL,QACMlJ,KAAfsJ,EAA2BC,EAAShC,EAAuB3I,EAAE2K,EAAQD,KzBomBxE,SAAU3L,EAAQC,EAASG,G0BprBjC,GAAIyL,GAAgB,EAAQ,IACxB7D,EAAyB,EAAQ,GAErChI,GAAOC,QAAU,SAAU2C,GACzB,MAAOiJ,GAAc7D,EAAuBpF,M1B6rBxC,SAAU5C,EAAQC,EAASG,GAEjC,Y2BnsBA,IAAI0L,GAAI,EAAQ,GACZ7F,EAAQ,EAAQ,GAChByD,EAAU,EAAQ,IAClB9D,EAAW,EAAQ,IACnBU,EAAW,EAAQ,IACnByF,EAAoB,EAAQ,IAC5BC,EAA2B,EAAQ,IACnCC,EAAiB,EAAQ,IACzBC,EAAqB,EAAQ,IAC7BC,EAA+B,EAAQ,IACvCzD,EAAkB,EAAQ,GAC1BC,EAAa,EAAQ,IAErByD,EAAuB1D,EAAgB,sBAKvC2D,EAA+B1D,GAAc,KAAO1C,EAAM,WAC5D,GAAI6C,KAEJ,OADAA,GAAMsD,IAAwB,EACvBtD,EAAMnD,SAAS,KAAOmD,IAG3BwD,EAAkBH,EAA6B,UAE/CI,EAAqB,SAAU5F,GACjC,IAAKf,EAASe,GAAI,OAAO,CACzB,IAAI6F,GAAa7F,EAAEyF,EACnB,YAAsB/J,KAAfmK,IAA6BA,EAAa9C,EAAQ/C,GAQ3DmF,IAAIrK,OAAQ,QAASgL,OAAO,EAAMC,MAAO,EAAGtK,QAL9BiK,IAAiCC,IAO7C3G,OAAQ,SAAgBgH,GACtB,GAGIC,GAAGC,EAAGxF,EAAQyF,EAAKC,EAHnBpG,EAAIL,EAASpD,MACb8J,EAAId,EAAmBvF,EAAG,GAC1BsG,EAAI,CAER,KAAKL,GAAK,EAAGvF,EAASvG,UAAUuG,OAAQuF,EAAIvF,EAAQuF,IAElD,GADAG,GAAW,IAAPH,EAAWjG,EAAI7F,UAAU8L,GACzBL,EAAmBQ,GAGrB,IAFAD,EAAMf,EAAkBgB,GACxBf,EAAyBiB,EAAIH,GACxBD,EAAI,EAAGA,EAAIC,EAAKD,IAAKI,IAASJ,IAAKE,IAAGd,EAAee,EAAGC,EAAGF,EAAEF,QAElEb,GAAyBiB,EAAI,GAC7BhB,EAAee,EAAGC,IAAKF,EAI3B,OADAC,GAAE3F,OAAS4F,EACJD,M3B4sBL,SAAUhN,EAAQC,EAASG,GAEjC,Y4BtwBA,IAAI0L,GAAI,EAAQ,GACZxF,EAAW,EAAQ,IACnByF,EAAoB,EAAQ,IAC5BmB,EAAiB,EAAQ,IACzBlB,EAA2B,EAAQ,IACnC/F,EAAQ,EAAQ,GAEhBkH,EAAsBlH,EAAM,WAC9B,MAAoD,iBAA1CmH,KAAK3M,MAAO4G,OAAQ,YAAe,KAK3CgG,GAAiC,WACnC,IAEEnH,OAAOC,kBAAmB,UAAYc,UAAU,IAASmG,OACzD,MAAOjN,GACP,MAAOA,aAAiB6F,cAM5B8F,IAAIrK,OAAQ,QAASgL,OAAO,EAAMC,MAAO,EAAGtK,OAAQ+K,GAAuBE,IAEzED,KAAM,SAAcE,GAClB,GAAI3G,GAAIL,EAASpD,MACb4J,EAAMf,EAAkBpF,GACxB4G,EAAWzM,UAAUuG,MACzB2E,GAAyBc,EAAMS,EAC/B,KAAK,GAAIX,GAAI,EAAGA,EAAIW,EAAUX,IAC5BjG,EAAEmG,GAAOhM,UAAU8L,GACnBE,GAGF,OADAI,GAAevG,EAAGmG,GACXA,M5B+wBL,SAAU9M,EAAQC,EAASG,G6BpzBjC,GAAIoG,GAAa,EAAQ,GACrBgH,EAAc,EAAQ,IAEtBzH,EAAaC,SAGjBhG,GAAOC,QAAU,SAAU0C,GACzB,GAAI6D,EAAW7D,GAAW,MAAOA,EACjC,MAAMoD,GAAWyH,EAAY7K,GAAY,wB7B4zBrC,SAAU3C,EAAQC,EAASG,G8Bp0BjC,GAAIO,GAAO,EAAQ,IACf0F,EAAc,EAAQ,GACtBwF,EAAgB,EAAQ,IACxBvF,EAAW,EAAQ,IACnByF,EAAoB,EAAQ,IAC5BG,EAAqB,EAAQ,IAE7BkB,EAAO/G,KAAe+G,MAGtBK,EAAe,SAAUC,GAC3B,GAAIC,GAAiB,GAARD,EACTE,EAAoB,GAARF,EACZG,EAAkB,GAARH,EACVI,EAAmB,GAARJ,EACXK,EAAwB,GAARL,EAChBM,EAA2B,GAARN,EACnBO,EAAmB,GAARP,GAAaK,CAC5B,OAAO,UAAUG,EAAOC,EAAYC,EAAMC,GASxC,IARA,GAOIlM,GAAOyJ,EAPPjF,EAAIL,EAAS4H,GACbjL,EAAO4I,EAAclF,GACrB2H,EAAgB3N,EAAKwN,EAAYC,GACjC/G,EAAS0E,EAAkB9I,GAC3BsL,EAAQ,EACR7C,EAAS2C,GAAkBnC,EAC3BzK,EAASkM,EAASjC,EAAOwC,EAAO7G,GAAUuG,GAAaI,EAAmBtC,EAAOwC,EAAO,OAAK7L,GAE3FgF,EAASkH,EAAOA,IAAS,IAAIN,GAAYM,IAAStL,MACtDd,EAAQc,EAAKsL,GACb3C,EAAS0C,EAAcnM,EAAOoM,EAAO5H,GACjC+G,GACF,GAAIC,EAAQlM,EAAO8M,GAAS3C,MACvB,IAAIA,EAAQ,OAAQ8B,GACvB,IAAK,GAAG,OAAO,CACf,KAAK,GAAG,MAAOvL,EACf,KAAK,GAAG,MAAOoM,EACf,KAAK,GAAGnB,EAAK3L,EAAQU,OAChB,QAAQuL,GACb,IAAK,GAAG,OAAO,CACf,KAAK,GAAGN,EAAK3L,EAAQU,GAI3B,MAAO4L,IAAiB,EAAIF,GAAWC,EAAWA,EAAWrM,GAIjEzB,GAAOC,SAGLuO,QAASf,EAAa,GAGtBgB,IAAKhB,EAAa,GAGlBiB,OAAQjB,EAAa,GAGrBkB,KAAMlB,EAAa,GAGnBmB,MAAOnB,EAAa,GAGpBoB,KAAMpB,EAAa,GAGnBqB,UAAWrB,EAAa,GAGxBsB,aAActB,EAAa,K9B40BvB,SAAUzN,EAAQC,EAASG,G+Bn5BjC,GAAI4O,GAAwB,EAAQ,IAChCxI,EAAa,EAAQ,GACrByI,EAAa,EAAQ,IACrBvG,EAAkB,EAAQ,GAE1BwG,EAAgBxG,EAAgB,eAChCT,EAAU/B,OAGViJ,EAAuE,aAAnDF,EAAW,WAAc,MAAOnO,eAGpDsO,EAAS,SAAUxM,EAAIlB,GACzB,IACE,MAAOkB,GAAGlB,GACV,MAAOvB,KAIXH,GAAOC,QAAU+O,EAAwBC,EAAa,SAAUrM,GAC9D,GAAI+D,GAAG0I,EAAKzD,CACZ,YAAcvJ,KAAPO,EAAmB,YAAqB,OAAPA,EAAc,OAEO,iBAAjDyM,EAAMD,EAAOzI,EAAIsB,EAAQrF,GAAKsM,IAA8BG,EAEpEF,EAAoBF,EAAWtI,GAEH,WAA3BiF,EAASqD,EAAWtI,KAAmBH,EAAWG,EAAE2I,QAAU,YAAc1D,I/B25B7E,SAAU5L,EAAQC,EAASG,GgCt7BjC,GAAIkH,GAAc,EAAQ,GACtBb,EAAuB,EAAQ,IAC/B8I,EAA2B,EAAQ,GAEvCvP,GAAOC,QAAUqH,EAAc,SAAUkI,EAAQ9N,EAAKS,GACpD,MAAOsE,GAAqBxF,EAAEuO,EAAQ9N,EAAK6N,EAAyB,EAAGpN,KACrE,SAAUqN,EAAQ9N,EAAKS,GAEzB,MADAqN,GAAO9N,GAAOS,EACPqN,IhC87BH,SAAUxP,EAAQC,GiCt8BxBD,EAAOC,QAAU,SAAUwP,EAAQtN,GACjC,OACE0E,aAAuB,EAAT4I,GACd1I,eAAyB,EAAT0I,GAChBxI,WAAqB,EAATwI,GACZtN,MAAOA,KjC+8BL,SAAUnC,EAAQC,EAASG,GAEjC,YkCr9BA,IAAIsH,GAAgB,EAAQ,IACxBjB,EAAuB,EAAQ,IAC/B8I,EAA2B,EAAQ,GAEvCvP,GAAOC,QAAU,SAAUuP,EAAQ9N,EAAKS,GACtC,GAAIuN,GAAchI,EAAchG,EAC5BgO,KAAeF,GAAQ/I,EAAqBxF,EAAEuO,EAAQE,EAAaH,EAAyB,EAAGpN,IAC9FqN,EAAOE,GAAevN,IlC69BvB,SAAUnC,EAAQC,GmCr+BxB,GAAI8F,GAAaC,SAGjBhG,GAAOC,QAAU,SAAU2C,GACzB,GAAIA,EAHiB,iBAGM,KAAMmD,GAAW,iCAC5C,OAAOnD,KnC6+BH,SAAU5C,EAAQC,EAASG,GoCl/BjC,GAOIuP,GAAOC,EAPP7O,EAAS,EAAQ,GACjB8O,EAAY,EAAQ,IAEpBC,EAAU/O,EAAO+O,QACjBC,EAAOhP,EAAOgP,KACdC,EAAWF,GAAWA,EAAQE,UAAYD,GAAQA,EAAKH,QACvDK,EAAKD,GAAYA,EAASC,EAG1BA,KACFN,EAAQM,EAAGC,MAAM,KAGjBN,EAAUD,EAAM,GAAK,GAAKA,EAAM,GAAK,EAAI,IAAMA,EAAM,GAAKA,EAAM,MAK7DC,GAAWC,MACdF,EAAQE,EAAUF,MAAM,iBACVA,EAAM,IAAM,MACxBA,EAAQE,EAAUF,MAAM,oBACbC,GAAWD,EAAM,IAIhC3P,EAAOC,QAAU2P,GpCy/BX,SAAU5P,EAAQC,EAASG,GqCnhCjC,GAAI6F,GAAQ,EAAQ,EAEpBjG,GAAOC,SAAWgG,EAAM,WAEtB,GAAIkK,GAAO,aAA8BxP,MAEzC,OAAsB,kBAARwP,IAAsBA,EAAK5J,eAAe,gBrC2hCpD,SAAUvG,EAAQC,EAASG,GsCjiCjC,GAAIgQ,GAAY,EAAQ,IACpB9H,EAAoB,EAAQ,GAIhCtI,GAAOC,QAAU,SAAUoQ,EAAGxI,GAC5B,GAAIyI,GAAOD,EAAExI,EACb,OAAOS,GAAkBgI,OAAQjO,GAAY+N,EAAUE,KtCyiCnD,SAAUtQ,EAAQC,GuC9iCxBD,EAAOC,QAAU,SAAU2C,GACzB,MAAc,QAAPA,OAAsBP,KAAPO,IvCwjClB,SAAU5C,EAAQC,GwC3jCxBD,EAAOC,YxCkkCD,SAAUD,EAAQC,EAASG,GyClkCjC,GAAImQ,GAAQ,EAAQ,IAIpBvQ,GAAOC,QAAU,SAAU0C,GACzB,GAAI6N,IAAU7N,CAEd,OAAO6N,KAAWA,GAAqB,IAAXA,EAAe,EAAID,EAAMC,KzC0kCjD,SAAUxQ,EAAQC,EAASG,GAEjC,Y0CllCA,IAAI0L,GAAI,EAAQ,GACZ5L,EAAO,EAAQ,GAInB4L,IAAIrK,OAAQ,SAAUgL,OAAO,EAAMrK,OAAQ,IAAIlC,OAASA,IACtDA,KAAMA,K1C0lCF,SAAUF,EAAQC,EAASG,G2ChmCjC,EAAQ,KACR,EAAQ,M3CwmCF,SAAUJ,EAAQyQ,EAAqBrQ,GAE7C,Y4C5mCe,SAASsQ,GAAQtJ,GAC9B,yBAEA,QAAOsJ,EAAU,kBAAqBjN,SAAU,gBAAmBA,QAAOkN,SAAW,SAAUvJ,GAC7F,aAAcA,IACZ,SAAUA,GACZ,MAAOA,IAAO,kBAAqB3D,SAAU2D,EAAI2B,cAAgBtF,QAAU2D,IAAQ3D,OAAOjD,UAAY,eAAkB4G,KAC/GA,GAPb,O5C0nCM,SAAUpH,EAAQC,EAASG,G6C1nCjC,GAAIwQ,GAAkB,EAAQ,IAC1BC,EAAkB,EAAQ,IAC1B9E,EAAoB,EAAQ,IAG5B0B,EAAe,SAAUqD,GAC3B,MAAO,UAAU5C,EAAO6C,EAAIC,GAC1B,GAGI7O,GAHAwE,EAAIiK,EAAgB1C,GACpB7G,EAAS0E,EAAkBpF,GAC3B4H,EAAQsC,EAAgBG,EAAW3J,EAIvC,IAAIyJ,GAAeC,GAAMA,GAAI,KAAO1J,EAASkH,GAG3C,IAFApM,EAAQwE,EAAE4H,OAEGpM,EAAO,OAAO,MAEtB,MAAMkF,EAASkH,EAAOA,IAC3B,IAAKuC,GAAevC,IAAS5H,KAAMA,EAAE4H,KAAWwC,EAAI,MAAOD,IAAevC,GAAS,CACnF,QAAQuC,IAAgB,GAI9B9Q,GAAOC,SAGLgR,SAAUxD,GAAa,GAGvByD,QAASzD,GAAa,K7CkoClB,SAAUzN,EAAQC,EAASG,GAEjC,Y8CjqCA,IAAI6F,GAAQ,EAAQ,EAEpBjG,GAAOC,QAAU,SAAU4I,EAAalG,GACtC,GAAI6G,MAAYX,EAChB,SAASW,GAAUvD,EAAM,WAEvBuD,EAAO/I,KAAK,KAAMkC,GAAY,WAAc,MAAO,IAAM,O9C0qCvD,SAAU3C,EAAQC,EAASG,GAEjC,Y+ClrCA,IAAIkH,GAAc,EAAQ,GACtBoC,EAAU,EAAQ,IAElB3D,EAAaC,UAEbhF,EAA2BkF,OAAOlF,yBAGlCmQ,EAAoC7J,IAAgB,WAEtD,OAAajF,KAATa,KAAoB,OAAO,CAC/B,KAEEgD,OAAOC,kBAAmB,UAAYc,UAAU,IAASI,OAAS,EAClE,MAAOlH,GACP,MAAOA,aAAiB6F,cAI5BhG,GAAOC,QAAUkR,EAAoC,SAAUxK,EAAGU,GAChE,GAAIqC,EAAQ/C,KAAO3F,EAAyB2F,EAAG,UAAUM,SACvD,KAAMlB,GAAW,+BACjB,OAAOY,GAAEU,OAASA,GAClB,SAAUV,EAAGU,GACf,MAAOV,GAAEU,OAASA,I/C0rCd,SAAUrH,EAAQC,EAASG,GgDntCjC,GAAIgR,GAA0B,EAAQ,IAItCpR,GAAOC,QAAU,SAAUoR,EAAehK,GACxC,MAAO,KAAK+J,EAAwBC,IAA2B,IAAXhK,EAAe,EAAIA,KhD2tCnE,SAAUrH,EAAQC,EAASG,GiDhuCjC,GAAIW,GAAS,EAAQ,GAGjBoF,EAAiBD,OAAOC,cAE5BnG,GAAOC,QAAU,SAAUyB,EAAKS,GAC9B,IACEgE,EAAepF,EAAQW,GAAOS,MAAOA,EAAO4E,cAAc,EAAME,UAAU,IAC1E,MAAO9G,GACPY,EAAOW,GAAOS,EACd,MAAOA,KjDwuCL,SAAUnC,EAAQC,GkDjvCxBD,EAAOC,SACL,cACA,iBACA,gBACA,uBACA,iBACA,WACA,YlD0vCI,SAAUD,EAAQC,EAASG,GmDlwCjC,GAAI6O,GAAa,EAAQ,IACrB5I,EAAc,EAAQ,EAE1BrG,GAAOC,QAAU,SAAUW,GAIzB,GAAuB,aAAnBqO,EAAWrO,GAAoB,MAAOyF,GAAYzF,KnD0wClD,SAAUZ,EAAQC,GoDjxCxBD,EAAOC,YpDwxCD,SAAUD,EAAQC,EAASG,GqDxxCjC,GAAIiG,GAAc,EAAQ,GACtBJ,EAAQ,EAAQ,GAChBiC,EAAU,EAAQ,IAElBD,EAAU/B,OACVgK,EAAQ7J,EAAY,GAAG6J,MAG3BlQ,GAAOC,QAAUgG,EAAM,WAGrB,OAAQgC,EAAQ,KAAKqJ,qBAAqB,KACvC,SAAU1O,GACb,MAAsB,UAAfsF,EAAQtF,GAAkBsN,EAAMtN,EAAI,IAAMqF,EAAQrF,IACvDqF,GrD+xCE,SAAUjI,EAAQC,EAASG,GsD7yCjC,GAYImR,GAAKnL,EAAKoL,EAZVC,EAAkB,EAAQ,KAC1B1Q,EAAS,EAAQ,GACjB6E,EAAW,EAAQ,IACnB1E,EAA8B,EAAQ,IACtCkC,EAAS,EAAQ,IACjBD,EAAS,EAAQ,IACjB8G,EAAY,EAAQ,IACpBH,EAAa,EAAQ,IAGrB9D,EAAYjF,EAAOiF,UACnB0L,EAAU3Q,EAAO2Q,QAGjBC,EAAU,SAAU/O,GACtB,MAAO4O,GAAI5O,GAAMwD,EAAIxD,GAAM2O,EAAI3O,OAG7BgP,EAAY,SAAUlE,GACxB,MAAO,UAAU9K,GACf,GAAIiP,EACJ,KAAKjM,EAAShD,KAAQiP,EAAQzL,EAAIxD,IAAK2B,OAASmJ,EAC9C,KAAM1H,GAAU,0BAA4B0H,EAAO,YACnD,OAAOmE,IAIb,IAAIJ,GAAmBtO,EAAO0O,MAAO,CACnC,GAAIC,GAAQ3O,EAAO0O,QAAU1O,EAAO0O,MAAQ,GAAIH,GAEhDI,GAAM1L,IAAM0L,EAAM1L,IAClB0L,EAAMN,IAAMM,EAAMN,IAClBM,EAAMP,IAAMO,EAAMP,IAElBA,EAAM,SAAU3O,EAAImP,GAClB,GAAID,EAAMN,IAAI5O,GAAK,KAAMoD,GA1BI,6BA6B7B,OAFA+L,GAASC,OAASpP,EAClBkP,EAAMP,IAAI3O,EAAImP,GACPA,GAET3L,EAAM,SAAUxD,GACd,MAAOkP,GAAM1L,IAAIxD,QAEnB4O,EAAM,SAAU5O,GACd,MAAOkP,GAAMN,IAAI5O,QAEd,CACL,GAAIqP,GAAQhI,EAAU,QACtBH,GAAWmI,IAAS,EACpBV,EAAM,SAAU3O,EAAImP,GAClB,GAAI3O,EAAOR,EAAIqP,GAAQ,KAAMjM,GAzCA,6BA4C7B,OAFA+L,GAASC,OAASpP,EAClB1B,EAA4B0B,EAAIqP,EAAOF,GAChCA,GAET3L,EAAM,SAAUxD,GACd,MAAOQ,GAAOR,EAAIqP,GAASrP,EAAGqP,OAEhCT,EAAM,SAAU5O,GACd,MAAOQ,GAAOR,EAAIqP,IAItBjS,EAAOC,SACLsR,IAAKA,EACLnL,IAAKA,EACLoL,IAAKA,EACLG,QAASA,EACTC,UAAWA,ItDqzCP,SAAU5R,EAAQC,EAASG,GuDz3CjC,GAAIiG,GAAc,EAAQ,GACtBJ,EAAQ,EAAQ,GAChBO,EAAa,EAAQ,GACrB0B,EAAU,EAAQ,IAClBgK,EAAa,EAAQ,IACrBC,EAAgB,EAAQ,IAExBC,EAAO,aACPC,KACAC,EAAYJ,EAAW,UAAW,aAClCK,EAAoB,2BACpBrS,EAAOmG,EAAYkM,EAAkBrS,MACrCsS,GAAuBD,EAAkBrS,KAAKkS,GAE9CK,EAAsB,SAAuB9P,GAC/C,IAAK6D,EAAW7D,GAAW,OAAO,CAClC,KAEE,MADA2P,GAAUF,EAAMC,EAAO1P,IAChB,EACP,MAAOxC,GACP,OAAO,IAIPuS,EAAsB,SAAuB/P,GAC/C,IAAK6D,EAAW7D,GAAW,OAAO,CAClC,QAAQuF,EAAQvF,IACd,IAAK,gBACL,IAAK,oBACL,IAAK,yBAA0B,OAAO,EAExC,IAIE,MAAO6P,MAAyBtS,EAAKqS,EAAmBJ,EAAcxP,IACtE,MAAOxC,GACP,OAAO,GAIXuS,GAAoBpQ,MAAO,EAI3BtC,EAAOC,SAAWqS,GAAarM,EAAM,WACnC,GAAI0M,EACJ,OAAOF,GAAoBA,EAAoBhS,QACzCgS,EAAoBvM,UACpBuM,EAAoB,WAAcE,GAAS,KAC5CA,IACFD,EAAsBD,GvDg4CrB,SAAUzS,EAAQC,GwDn7CxBD,EAAOC,SAAU,GxD07CX,SAAUD,EAAQC,EAASG,GyD17CjC,GAAI8R,GAAa,EAAQ,IACrB1L,EAAa,EAAQ,GACrBoM,EAAgB,EAAQ,IACxBrP,EAAoB,EAAQ,KAE5B0E,EAAU/B,MAEdlG,GAAOC,QAAUsD,EAAoB,SAAUX,GAC7C,MAAoB,gBAANA,IACZ,SAAUA,GACZ,GAAIiQ,GAAUX,EAAW,SACzB,OAAO1L,GAAWqM,IAAYD,EAAcC,EAAQrS,UAAWyH,EAAQrF,MzDk8CnE,SAAU5C,EAAQC,EAASG,G0D78CjC,GAAIkH,GAAc,EAAQ,GACtB7G,EAAO,EAAQ,IACfqS,EAA6B,EAAQ,KACrCvD,EAA2B,EAAQ,IACnCqB,EAAkB,EAAQ,IAC1BlJ,EAAgB,EAAQ,IACxBtE,EAAS,EAAQ,IACjBmE,EAAiB,EAAQ,IAGzBK,EAA4B1B,OAAOlF,wBAIvCf,GAAQgB,EAAIqG,EAAcM,EAA4B,SAAkCjB,EAAGkB,GAGzF,GAFAlB,EAAIiK,EAAgBjK,GACpBkB,EAAIH,EAAcG,GACdN,EAAgB,IAClB,MAAOK,GAA0BjB,EAAGkB,GACpC,MAAO1H,IACT,GAAIiD,EAAOuD,EAAGkB,GAAI,MAAO0H,IAA0B9O,EAAKqS,EAA2B7R,EAAG0F,EAAGkB,GAAIlB,EAAEkB,M1Dq9C3F,SAAU7H,EAAQC,EAASG,G2Dz+CjC,GAAIiG,GAAc,EAAQ,EAE1BrG,GAAOC,QAAUoG,KAAeuM,gB3Dg/C1B,SAAU5S,EAAQC,EAASG,GAEjC,Y4Dj/CA,IAAIK,GAAO,EAAQ,IACf4F,EAAc,EAAQ,GACtB8B,EAAW,EAAQ,IACnB4K,EAAc,EAAQ,KACtBC,EAAgB,EAAQ,KACxB7P,EAAS,EAAQ,IACjBuI,EAAS,EAAQ,IACjBuH,EAAmB,EAAQ,IAA+B7M,IAC1D8M,EAAsB,EAAQ,KAC9BC,EAAkB,EAAQ,KAE1BC,EAAgBjQ,EAAO,wBAAyB2C,OAAOtF,UAAU6S,SACjEC,EAAaC,OAAO/S,UAAUN,KAC9BsT,EAAcF,EACdG,EAASpN,EAAY,GAAGoN,QACxBvC,EAAU7K,EAAY,GAAG6K,SACzBmC,EAAUhN,EAAY,GAAGgN,SACzBjL,EAAc/B,EAAY,GAAGgC,OAE7BqL,EAA2B,WAC7B,GAAIC,GAAM,IACNC,EAAM,KAGV,OAFAnT,GAAK6S,EAAYK,EAAK,KACtBlT,EAAK6S,EAAYM,EAAK,KACG,IAAlBD,EAAIE,WAAqC,IAAlBD,EAAIC,aAGhCC,EAAgBd,EAAce,aAG9BC,MAAuC3R,KAAvB,OAAOnC,KAAK,IAAI,IAExBwT,GAA4BM,GAAiBF,GAAiBZ,GAAuBC,KAG/FK,EAAc,SAAcS,GAC1B,GAIIrI,GAAQsI,EAAQL,EAAWlE,EAAO/C,EAAG4C,EAAQ2E,EAJ7CC,EAAKlR,KACL2O,EAAQoB,EAAiBmB,GACzBC,EAAMlM,EAAS8L,GACfK,EAAMzC,EAAMyC,GAGhB,IAAIA,EAIF,MAHAA,GAAIT,UAAYO,EAAGP,UACnBjI,EAASnL,EAAK+S,EAAac,EAAKD,GAChCD,EAAGP,UAAYS,EAAIT,UACZjI,CAGT,IAAI2I,GAAS1C,EAAM0C,OACfC,EAASV,GAAiBM,EAAGI,OAC7BC,EAAQhU,EAAKsS,EAAaqB,GAC1B5S,EAAS4S,EAAG5S,OACZkT,EAAa,EACbC,EAAUN,CA+Cd,IA7CIG,IACFC,EAAQpB,EAAQoB,EAAO,IAAK,KACC,IAAzBvD,EAAQuD,EAAO,OACjBA,GAAS,KAGXE,EAAUvM,EAAYiM,EAAKD,EAAGP,WAE1BO,EAAGP,UAAY,KAAOO,EAAGQ,WAAaR,EAAGQ,WAA+C,OAAlCnB,EAAOY,EAAKD,EAAGP,UAAY,MACnFrS,EAAS,OAASA,EAAS,IAC3BmT,EAAU,IAAMA,EAChBD,KAIFR,EAAS,GAAIX,QAAO,OAAS/R,EAAS,IAAKiT,IAGzCT,IACFE,EAAS,GAAIX,QAAO,IAAM/R,EAAS,WAAYiT,IAE7Cf,IAA0BG,EAAYO,EAAGP,WAE7ClE,EAAQlP,EAAK6S,EAAYkB,EAASN,EAASE,EAAIO,GAE3CH,EACE7E,GACFA,EAAMkF,MAAQzM,EAAYuH,EAAMkF,MAAOH,GACvC/E,EAAM,GAAKvH,EAAYuH,EAAM,GAAI+E,GACjC/E,EAAMpB,MAAQ6F,EAAGP,UACjBO,EAAGP,WAAalE,EAAM,GAAGtI,QACpB+M,EAAGP,UAAY,EACbH,GAA4B/D,IACrCyE,EAAGP,UAAYO,EAAGrT,OAAS4O,EAAMpB,MAAQoB,EAAM,GAAGtI,OAASwM,GAEzDG,GAAiBrE,GAASA,EAAMtI,OAAS,GAG3C5G,EAAK2S,EAAezD,EAAM,GAAIuE,EAAQ,WACpC,IAAKtH,EAAI,EAAGA,EAAI9L,UAAUuG,OAAS,EAAGuF,QACfvK,KAAjBvB,UAAU8L,KAAkB+C,EAAM/C,OAAKvK,MAK7CsN,GAAS4E,EAEX,IADA5E,EAAM4E,OAAS/E,EAAS9D,EAAO,MAC1BkB,EAAI,EAAGA,EAAI2H,EAAOlN,OAAQuF,IAC7BuH,EAAQI,EAAO3H,GACf4C,EAAO2E,EAAM,IAAMxE,EAAMwE,EAAM,GAInC,OAAOxE,KAIX3P,EAAOC,QAAUuT,G5D0/CX,SAAUxT,EAAQC,EAASG,G6D9mDjC,GAAI+C,GAAS,EAAQ,IACjBE,EAAM,EAAQ,KAEdyR,EAAO3R,EAAO,OAElBnD,GAAOC,QAAU,SAAUyB,GACzB,MAAOoT,GAAKpT,KAASoT,EAAKpT,GAAO2B,EAAI3B,M7DsnDjC,SAAU1B,EAAQC,EAASG,G8D5nDjC,GAAIW,GAAS,EAAQ,GACjBK,EAAuB,EAAQ,IAG/B0Q,EAAQ/Q,EADC,uBACiBK,EADjB,wBAGbpB,GAAOC,QAAU6R,G9DmoDX,SAAU9R,EAAQC,EAASG,G+DzoDjC,GAAI2U,GAAU,EAAQ,IAClBjD,EAAQ,EAAQ,KAEnB9R,EAAOC,QAAU,SAAUyB,EAAKS,GAC/B,MAAO2P,GAAMpQ,KAASoQ,EAAMpQ,OAAiBW,KAAVF,EAAsBA,QACxD,eAAgBiL,MACjBwC,QAAS,SACToF,KAAMD,EAAU,OAAS,SACzBE,UAAW,4CACXC,QAAS,2DACT1T,OAAQ,yC/DipDJ,SAAUxB,EAAQC,EAASG,GgE3pDjC,GAAI+U,GAAsB,EAAQ,IAE9BC,EAAMvS,KAAKuS,IACXC,EAAMxS,KAAKwS,GAKfrV,GAAOC,QAAU,SAAUsO,EAAOlH,GAChC,GAAIiO,GAAUH,EAAoB5G,EAClC,OAAO+G,GAAU,EAAIF,EAAIE,EAAUjO,EAAQ,GAAKgO,EAAIC,EAASjO,KhEmqDzD,SAAUrH,EAAQC,EAASG,GiE7qDjC,GAAImV,GAAc,EAAQ,KACtBC,EAAW,EAAQ,GAIvBxV,GAAOC,QAAU,SAAU0C,GACzB,GAAIjB,GAAM6T,EAAY5S,EAAU,SAChC,OAAO6S,GAAS9T,GAAOA,EAAMA,EAAM,KjEqrD/B,SAAU1B,EAAQC,EAASG,GkE5rDjC,GAAIsI,GAAkB,EAAQ,GAE1BwG,EAAgBxG,EAAgB,eAChCyH,IAEJA,GAAKjB,GAAiB,IAEtBlP,EAAOC,QAA2B,eAAjB6F,OAAOqK,IlEmsDlB,SAAUnQ,EAAQC,GmE1sDxB,GAAI4F,GAAUC,MAEd9F,GAAOC,QAAU,SAAU0C,GACzB,IACE,MAAOkD,GAAQlD,GACf,MAAOxC,GACP,MAAO,YnEmtDL,SAAUH,EAAQC,EAASG,GAEjC,YoE1tDA,IAAIkH,GAAc,EAAQ,GACtBvG,EAAS,EAAQ,GACjBsF,EAAc,EAAQ,GACtB/E,EAAW,EAAQ,KACnBH,EAAgB,EAAQ,IACxBiC,EAAS,EAAQ,IACjBqS,EAAoB,EAAQ,KAC5B7C,EAAgB,EAAQ,IACxB4C,EAAW,EAAQ,IACnBD,EAAc,EAAQ,KACtBtP,EAAQ,EAAQ,GAChByP,EAAsB,EAAQ,KAA8CzU,EAC5ED,EAA2B,EAAQ,IAAmDC,EACtFkF,EAAiB,EAAQ,IAAuClF,EAChE0U,EAAkB,EAAQ,KAC1BC,EAAO,EAAQ,KAA4BA,KAG3CC,EAAe9U,EAAa,OAC5B+U,EAAkBD,EAAarV,UAC/BwF,EAAYjF,EAAOiF,UACnB+P,EAAa1P,EAAY,GAAGgC,OAC5B2N,EAAa3P,EAAY,GAAG2P,YAI5BC,EAAY,SAAU9T,GACxB,GAAI+T,GAAYX,EAAYpT,EAAO,SACnC,OAA2B,gBAAb+T,GAAwBA,EAAYC,EAASD,IAKzDC,EAAW,SAAUxT,GACvB,GACIyT,GAAOC,EAAOC,EAAOC,EAASC,EAAQnP,EAAQkH,EAAOkI,EADrD7T,EAAK2S,EAAY5S,EAAU,SAE/B,IAAI6S,EAAS5S,GAAK,KAAMoD,GAAU,4CAClC,IAAiB,gBAANpD,IAAkBA,EAAGyE,OAAS,EAGvC,GAFAzE,EAAKgT,EAAKhT,GAEI,MADdwT,EAAQJ,EAAWpT,EAAI,KACO,KAAVwT,GAElB,GAAc,MADdC,EAAQL,EAAWpT,EAAI,KACO,MAAVyT,EAAe,MAAOK,SACrC,IAAc,KAAVN,EAAc,CACvB,OAAQJ,EAAWpT,EAAI,IACrB,IAAK,IAAI,IAAK,IAAI0T,EAAQ,EAAGC,EAAU,EAAI,MAC3C,KAAK,IAAI,IAAK,KAAKD,EAAQ,EAAGC,EAAU,EAAI,MAC5C,SAAS,OAAQ3T,EAInB,IAFA4T,EAAST,EAAWnT,EAAI,GACxByE,EAASmP,EAAOnP,OACXkH,EAAQ,EAAGA,EAAQlH,EAAQkH,IAI9B,IAHAkI,EAAOT,EAAWQ,EAAQjI,IAGf,IAAMkI,EAAOF,EAAS,MAAOG,IACxC,OAAOC,UAASH,EAAQF,GAE5B,OAAQ1T,EAKZ,IAAItB,EA9CS,UA8CSuU,EAAa,UAAYA,EAAa,QAAUA,EAAa,SAAU,CAQ3F,IAAK,GAOgBnU,GAdjBkV,EAAgB,SAAgBzU,GAClC,GAAI8K,GAAInM,UAAUuG,OAAS,EAAI,EAAIwO,EAAaI,EAAU9T,IACtD0U,EAAQ3T,IAEZ,OAAO0P,GAAckD,EAAiBe,IAAU5Q,EAAM,WAAc0P,EAAgBkB,KAChFpB,EAAkBvP,OAAO+G,GAAI4J,EAAOD,GAAiB3J,GAElD6H,EAAOxN,EAAcoO,EAAoBG,GAAgB,oLAOhE3F,MAAM,KAAM4G,EAAI,EAAQhC,EAAKzN,OAASyP,EAAGA,IACrC1T,EAAOyS,EAAcnU,EAAMoT,EAAKgC,MAAQ1T,EAAOwT,EAAelV,IAChEyE,EAAeyQ,EAAelV,EAAKV,EAAyB6U,EAAcnU,GAG9EkV,GAAcpW,UAAYsV,EAC1BA,EAAgB/M,YAAc6N,EAC9BzV,EAAcJ,EApEH,SAoEmB6V,GAAiB7N,aAAa,MpEkuDxD,SAAU/I,EAAQC,EAASG,GqExzDjC,GAAI4O,GAAwB,EAAQ,IAChC7N,EAAgB,EAAQ,IACxBgH,EAAW,EAAQ,IAIlB6G,IACH7N,EAAc+E,OAAO1F,UAAW,WAAY2H,GAAYrB,QAAQ,KrEg0D5D,SAAU9G,EAAQC,EAASG,GAEjC,YsEx0DA,IAAIK,GAAO,EAAQ,IACfsW,EAAgC,EAAQ,KACxCtP,EAAW,EAAQ,GACnBa,EAAoB,EAAQ,IAC5BN,EAAyB,EAAQ,IACjCgP,EAAY,EAAQ,KACpB7O,EAAW,EAAQ,IACnB8O,EAAY,EAAQ,IACpBC,EAAa,EAAQ,IAGzBH,GAA8B,SAAU,SAAUI,EAAQC,EAAcC,GACtE,OAGE,SAAgBC,GACd,GAAI3Q,GAAIqB,EAAuB9E,MAC3BqU,EAAWjP,EAAkBgP,OAAUjV,GAAY4U,EAAUK,EAAQH,EACzE,OAAOI,GAAW9W,EAAK8W,EAAUD,EAAQ3Q,GAAK,GAAI4M,QAAO+D,GAAQH,GAAQhP,EAASxB,KAIpF,SAAUsN,GACR,GAAIuD,GAAK/P,EAASvE,MACduU,EAAItP,EAAS8L,GACbyD,EAAML,EAAgBD,EAAcI,EAAIC,EAE5C,IAAIC,EAAIC,KAAM,MAAOD,GAAIvV,KAEzB,IAAIyV,GAAoBJ,EAAG3D,SACtBmD,GAAUY,EAAmB,KAAIJ,EAAG3D,UAAY,EACrD,IAAIjI,GAASsL,EAAWM,EAAIC,EAE5B,OADKT,GAAUQ,EAAG3D,UAAW+D,KAAoBJ,EAAG3D,UAAY+D,GAC9C,OAAXhM,GAAmB,EAAIA,EAAO2C,WtEk1DrC,SAAUvO,EAAQyQ,EAAqBrQ,GAE7C,YuEr3DA,SAASyX,GAAQrI,EAAQsI,GACvB,GAAIhD,GAAO5O,OAAO4O,KAAKtF,EACvB,IAAItJ,OAAO6R,sBAAuB,CAChC,GAAIC,GAAU9R,OAAO6R,sBAAsBvI,EAC3CsI,KAAmBE,EAAUA,EAAQtJ,OAAO,SAAUuJ,GACpD,MAAO/R,QAAOlF,yBAAyBwO,EAAQyI,GAAKpR,cACjDiO,EAAK1H,KAAKvM,MAAMiU,EAAMkD,GAE7B,MAAOlD,GAEM,QAASoD,GAAezW,GACrC,IAAK,GAAImL,GAAI,EAAGA,EAAI9L,UAAUuG,OAAQuF,IAAK,CACzC,GAAIpL,GAAS,MAAQV,UAAU8L,GAAK9L,UAAU8L,KAC9CA,GAAI,EAAIiL,EAAQ3R,OAAO1E,IAAS,GAAIgN,QAAQ,SAAU9M,GACpD,SAAeD,EAAQC,EAAKF,EAAOE,MAChCwE,OAAOiS,0BAA4BjS,OAAOkS,iBAAiB3W,EAAQyE,OAAOiS,0BAA0B3W,IAAWqW,EAAQ3R,OAAO1E,IAASgN,QAAQ,SAAU9M,GAC5JwE,OAAOC,eAAe1E,EAAQC,EAAKwE,OAAOlF,yBAAyBQ,EAAQE,MAG/E,MAAOD,GApBT,mBvEk5DM,SAAUzB,EAAQC,EAASG,GAEjC,YwEn5DA,IAAI0L,GAAI,EAAQ,GACZuM,EAAO,EAAQ,IAAgC5J,GAQnD3C,IAAIrK,OAAQ,QAASgL,OAAO,EAAMrK,QAPC,EAAQ,IAEY,SAMrDqM,IAAK,SAAaN,GAChB,MAAOkK,GAAKnV,KAAMiL,EAAYrN,UAAUuG,OAAS,EAAIvG,UAAU,OAAKuB,QxE45DlE,SAAUrC,EAAQC,EAASG,IyEx6DjC;;;;;CAKA,SAAWW,EAAQuX,GAC8CtY,EAAOC,QAAUqY,KAG/EpV,EAAM,WAAe,YAMtB,SAASqV,GAAQC,GACb,WAAanW,KAANmW,GAAyB,OAANA,EAE9B,QAASC,GAAMD,GACX,WAAanW,KAANmW,GAAyB,OAANA,EAE9B,QAASE,GAAOF,GACZ,OAAa,IAANA,EAEX,QAASG,GAAQH,GACb,OAAa,IAANA,EAKX,QAASI,GAAYzW,GACjB,MAAyB,gBAAVA,IACM,gBAAVA,IAEU,gBAAVA,IACU,iBAAVA,GAEf,QAAS0W,GAAW1W,GAChB,MAAwB,kBAAVA,GAOlB,QAASyD,GAASwB,GACd,MAAe,QAARA,GAA+B,gBAARA,GAMlC,QAAS0R,GAAU3W,GACf,MAAO4W,IAAUtY,KAAK0B,GAAOkG,MAAM,GAAI,GAM3C,QAAS2Q,GAAc5R,GACnB,MAA+B,oBAAxB2R,GAAUtY,KAAK2G,GAE1B,QAAS6R,GAAST,GACd,MAA6B,oBAAtBO,GAAUtY,KAAK+X,GAK1B,QAASU,GAAkBC,GACvB,GAAIlM,GAAImM,WAAWtT,OAAOqT,GAC1B,OAAOlM,IAAK,GAAKpK,KAAKwW,MAAMpM,KAAOA,GAAKqM,SAASH,GAErD,QAASI,GAAUJ,GACf,MAAQV,GAAMU,IACU,kBAAbA,GAAIK,MACU,kBAAdL,GAAIM,MAKnB,QAAStR,GAASgR,GACd,MAAc,OAAPA,EACD,GACA1P,MAAMC,QAAQyP,IAASH,EAAcG,IAAQA,EAAIhR,WAAa4Q,GAC1DW,KAAKC,UAAUR,EAAK,KAAM,GAC1BrT,OAAOqT,GAMrB,QAAShD,GAASgD,GACd,GAAIlM,GAAImM,WAAWD,EACnB,OAAOS,OAAM3M,GAAKkM,EAAMlM,EAM5B,QAAS4M,GAAQxF,EAAKyF,GAGlB,IAAK,GAFDrL,GAAMvI,OAAOwF,OAAO,MACpBqO,EAAO1F,EAAInE,MAAM,KACZtD,EAAI,EAAGA,EAAImN,EAAK1S,OAAQuF,IAC7B6B,EAAIsL,EAAKnN,KAAM,CAEnB,OAAOkN,GAAmB,SAAUX,GAAO,MAAO1K,GAAI0K,EAAIa,gBAAoB,SAAUb,GAAO,MAAO1K,GAAI0K,IAa9G,QAASc,GAASC,EAAK5M,GACnB,GAAIR,GAAMoN,EAAI7S,MACd,IAAIyF,EAAK,CAEL,GAAIQ,IAAS4M,EAAIpN,EAAM,GAEnB,YADAoN,EAAI7S,OAASyF,EAAM,EAGvB,IAAIyB,GAAQ2L,EAAIhJ,QAAQ5D,EACxB,IAAIiB,GAAS,EACT,MAAO2L,GAAIC,OAAO5L,EAAO,IAQrC,QAASnL,GAAOgE,EAAK1F,GACjB,MAAO6E,IAAe9F,KAAK2G,EAAK1F,GAKpC,QAAS0Y,GAAOxZ,GACZ,GAAIyZ,GAAQnU,OAAOwF,OAAO,KAC1B,OAAO,UAAkB2I,GAErB,MADUgG,GAAMhG,KACDgG,EAAMhG,GAAOzT,EAAGyT,KA+BvC,QAASiG,GAAa1Z,EAAI2Z,GACtB,QAASC,GAAQC,GACb,GAAIC,GAAI5Z,UAAUuG,MAClB,OAAOqT,GACDA,EAAI,EACA9Z,EAAGC,MAAM0Z,EAAKzZ,WACdF,EAAGH,KAAK8Z,EAAKE,GACjB7Z,EAAGH,KAAK8Z,GAGlB,MADAC,GAAQG,QAAU/Z,EAAGyG,OACdmT,EAEX,QAASI,GAAWha,EAAI2Z,GACpB,MAAO3Z,GAAGD,KAAK4Z,GAOnB,QAASM,GAAQd,EAAMe,GACnBA,EAAQA,GAAS,CAGjB,KAFA,GAAIlO,GAAImN,EAAK1S,OAASyT,EAClBC,EAAM,GAAItR,OAAMmD,GACbA,KACHmO,EAAInO,GAAKmN,EAAKnN,EAAIkO,EAEtB,OAAOC,GAKX,QAASC,GAAOC,EAAIC,GAChB,IAAK,GAAIxZ,KAAOwZ,GACZD,EAAGvZ,GAAOwZ,EAAMxZ,EAEpB,OAAOuZ,GAKX,QAAS3U,GAAS4T,GAEd,IAAK,GADDxC,MACK9K,EAAI,EAAGA,EAAIsN,EAAI7S,OAAQuF,IACxBsN,EAAItN,IACJoO,EAAOtD,EAAKwC,EAAItN,GAGxB,OAAO8K,GAQX,QAAStF,GAAKqI,EAAGU,EAAGC,IAwBpB,QAASC,GAAWZ,EAAGU,GACnB,GAAIV,IAAMU,EACN,OAAO,CACX,IAAIG,GAAY1V,EAAS6U,GACrBc,EAAY3V,EAASuV,EACzB,KAAIG,IAAaC,EA+BZ,OAAKD,IAAcC,GACbzV,OAAO2U,KAAO3U,OAAOqV,EA/B5B,KACI,GAAIK,GAAW/R,MAAMC,QAAQ+Q,GACzBgB,EAAWhS,MAAMC,QAAQyR,EAC7B,IAAIK,GAAYC,EACZ,MAAQhB,GAAEpT,SAAW8T,EAAE9T,QACnBoT,EAAE7L,MAAM,SAAUnG,EAAGmE,GACjB,MAAOyO,GAAW5S,EAAG0S,EAAEvO,KAG9B,IAAI6N,YAAaiB,OAAQP,YAAaO,MACvC,MAAOjB,GAAEkB,YAAcR,EAAEQ,SAExB,IAAKH,GAAaC,EAUnB,OAAO,CATP,IAAIG,GAAQ1V,OAAO4O,KAAK2F,GACpBoB,EAAQ3V,OAAO4O,KAAKqG,EACxB,OAAQS,GAAMvU,SAAWwU,EAAMxU,QAC3BuU,EAAMhN,MAAM,SAAUlN,GAClB,MAAO2Z,GAAWZ,EAAE/Y,GAAMyZ,EAAEzZ,MAQ5C,MAAO+G,GAEH,OAAO,GAenB,QAASqT,GAAa5B,EAAKf,GACvB,IAAK,GAAIvM,GAAI,EAAGA,EAAIsN,EAAI7S,OAAQuF,IAC5B,GAAIyO,EAAWnB,EAAItN,GAAIuM,GACnB,MAAOvM,EAEf,QAAQ,EAKZ,QAASmP,GAAKnb,GACV,GAAI+R,IAAS,CACb,OAAO,YACEA,IACDA,GAAS,EACT/R,EAAGC,MAAMqC,KAAMpC,aAK3B,QAASkb,GAAWC,EAAGC,GACnB,MAAID,KAAMC,EACO,IAAND,GAAW,EAAIA,GAAM,EAAIC,EAGzBD,IAAMA,GAAKC,IAAMA,EA8GhC,QAASC,GAAW9H,GAChB,GAAI+G,IAAK/G,EAAM,IAAI2B,WAAW,EAC9B,OAAa,MAANoF,GAAoB,KAANA,EAKzB,QAASgB,GAAIhV,EAAK1F,EAAKyX,EAAKtS,GACxBX,OAAOC,eAAeiB,EAAK1F,GACvBS,MAAOgX,EACPtS,aAAcA,EACdI,UAAU,EACVF,cAAc,IAOtB,QAASsV,GAAUC,GACf,IAAIC,GAAOpM,KAAKmM,GAAhB,CAGA,GAAIE,GAAWF,EAAKpM,MAAM,IAC1B,OAAO,UAAU9I,GACb,IAAK,GAAIwF,GAAI,EAAGA,EAAI4P,EAASnV,OAAQuF,IAAK,CACtC,IAAKxF,EACD,MACJA,GAAMA,EAAIoV,EAAS5P,IAEvB,MAAOxF,KAuDf,QAASqV,GAASC,GACd,MAAuB,kBAATA,IAAuB,cAAcvM,KAAKuM,EAAKvU,YAsCjE,QAASwU,KACL,MAAOC,MAAqBC,MAAOD,IAKvC,QAASE,GAAmBC,OACb,KAAPA,IAAiBA,EAAK,MACrBA,GACDH,IAAmBA,GAAgBI,OAAOC,MAC9CL,GAAkBG,EAClBA,GAAMA,EAAGC,OAAOE,KAkDpB,QAASC,GAAgBhE,GACrB,MAAO,IAAIiE,QAAM/a,OAAWA,OAAWA,GAAWyD,OAAOqT,IAM7D,QAASkE,GAAWC,GAChB,GAAIC,GAAS,GAAIH,IAAME,EAAMjO,IAAKiO,EAAME,KAIxCF,EAAMG,UAAYH,EAAMG,SAASpV,QAASiV,EAAMI,KAAMJ,EAAMK,IAAKL,EAAMvY,QAASuY,EAAMM,iBAAkBN,EAAMO,aAU9G,OATAN,GAAOO,GAAKR,EAAMQ,GAClBP,EAAOQ,SAAWT,EAAMS,SACxBR,EAAO7b,IAAM4b,EAAM5b,IACnB6b,EAAOS,UAAYV,EAAMU,UACzBT,EAAOU,UAAYX,EAAMW,UACzBV,EAAOW,UAAYZ,EAAMY,UACzBX,EAAOY,UAAYb,EAAMa,UACzBZ,EAAOa,UAAYd,EAAMc,UACzBb,EAAOc,UAAW,EACXd,EA+KX,QAASe,GAAW7c,GAChB8c,GAAYnR,KAAK3L,GACjB+c,GAAI/c,OAASA,EAEjB,QAASgd,KACLF,GAAYG,MACZF,GAAI/c,OAAS8c,GAAYA,GAAYlX,OAAS,GA8DlD,QAASsX,GAAgBxc,GACrByc,GAAgBzc,EAwEpB,QAAS0c,GAAQ1c,EAAO2c,EAASC,GAC7B,MAAI5c,IAASiB,EAAOjB,EAAO,WAAaA,EAAM6c,iBAAkBC,IACrD9c,EAAM6c,QAEbJ,KACCG,GAAsBG,OACtBxV,GAAQvH,KAAU6W,EAAc7W,KACjC+D,OAAOiZ,aAAahd,IACnBA,EAAMid,UACNC,GAAMld,IACLA,YAAiBib,QANvB,GAOW,GAAI6B,IAAS9c,EAAO2c,EAASC,GAM5C,QAASO,GAAelY,EAAK1F,EAAKyX,EAAKoG,EAAcT,EAASU,GAC1D,GAAIC,GAAM,GAAIjB,IACVkB,EAAWxZ,OAAOlF,yBAAyBoG,EAAK1F,EACpD,KAAIge,IAAsC,IAA1BA,EAAS3Y,aAAzB,CAIA,GAAI4Y,GAASD,GAAYA,EAAStZ,IAC9BwZ,EAASF,GAAYA,EAASnO,GAC5BoO,KAAUC,GACXzG,IAAQ0G,IAA0C,IAArB/e,UAAUuG,SACxC8R,EAAM/R,EAAI1F,GAEd,IAAIoe,IAAWhB,GAAWD,EAAQ1F,GAAK,EAAOqG,EAyD9C,OAxDAtZ,QAAOC,eAAeiB,EAAK1F,GACvBmF,YAAY,EACZE,cAAc,EACdX,IAAK,WACD,GAAIjE,GAAQwd,EAASA,EAAOlf,KAAK2G,GAAO+R,CAgBxC,OAfIqF,IAAI/c,SAEAge,EAAIM,QACAte,OAAQ2F,EACR7C,KAAM,MACN7C,IAAKA,IAGToe,IACAA,EAAQL,IAAIM,SACRrW,GAAQvH,IACR6d,EAAY7d,KAIjBkd,GAAMld,KAAW2c,EAAU3c,EAAMA,MAAQA,GAEpDoP,IAAK,SAAwB0O,GACzB,GAAI9d,GAAQwd,EAASA,EAAOlf,KAAK2G,GAAO+R,CACxC,IAAK6C,EAAW7Z,EAAO8d,GAAvB,CAMA,GAHIV,GACAA,IAEAK,EACAA,EAAOnf,KAAK2G,EAAK6Y,OAEhB,IAAIN,EAEL,MAEC,KAAKb,GAAWO,GAAMld,KAAWkd,GAAMY,GAExC,YADA9d,EAAMA,MAAQ8d,EAId9G,GAAM8G,EAEVH,GAAWhB,GAAWD,EAAQoB,GAAQ,EAAOT,GAEzCC,EAAIS,QACA3b,KAAM,MACN9C,OAAQ2F,EACR1F,IAAKA,EACLye,SAAUF,EACVG,SAAUje,QAKnBsd,GAEX,QAASlO,GAAI9P,EAAQC,EAAKyX,GAItB,IAHKZ,EAAQ9W,IAAWmX,EAAYnX,KAChC4e,GAAO,wEAAwE1a,OAAOlE,IAEtF6e,EAAW7e,GAEX,WADA4e,IAAO,yBAA0B1a,OAAOjE,EAAK,iCAGjD,IAAI6e,GAAK9e,EAAOud,MAChB,OAAItV,IAAQjI,IAAWyX,EAAkBxX,IACrCD,EAAO4F,OAASxE,KAAKuS,IAAI3T,EAAO4F,OAAQ3F,GACxCD,EAAO0Y,OAAOzY,EAAK,EAAGyX,GAElBoH,IAAOA,EAAGzB,SAAWyB,EAAGf,MACxBX,EAAQ1F,GAAK,GAAO,GAEjBA,GAEPzX,IAAOD,MAAYC,IAAOwE,QAAO1F,YACjCiB,EAAOC,GAAOyX,EACPA,GAEP1X,EAAO+e,QAAWD,GAAMA,EAAGE,SAC3BJ,GAAO,4HAEAlH,GAENoH,GAILjB,EAAeiB,EAAGpe,MAAOT,EAAKyX,MAAK9W,GAAWke,EAAGzB,QAASyB,EAAGf,MAEzDe,EAAGd,IAAIS,QACH3b,KAAM,MACN9C,OAAQA,EACRC,IAAKA,EACLye,SAAUhH,EACViH,aAAU/d,KAGX8W,IAbH1X,EAAOC,GAAOyX,EACPA,GAcf,QAASuH,GAAIjf,EAAQC,GAIjB,IAHK6W,EAAQ9W,IAAWmX,EAAYnX,KAChC4e,GAAO,2EAA2E1a,OAAOlE,IAEzFiI,GAAQjI,IAAWyX,EAAkBxX,GAErC,WADAD,GAAO0Y,OAAOzY,EAAK,EAGvB,IAAI6e,GAAK9e,EAAOud,MAChB,OAAIvd,GAAO+e,QAAWD,GAAMA,EAAGE,YAC3BJ,IAAO,wFAIPC,EAAW7e,OACX4e,IAAO,4BAA6B1a,OAAOjE,EAAK,uCAG/C0B,EAAO3B,EAAQC,WAGbD,GAAOC,GACT6e,GAIDA,EAAGd,IAAIS,QACH3b,KAAM,SACN9C,OAAQA,EACRC,IAAKA,MAQjB,QAASse,GAAY7d,GACjB,IAAK,GAAIsG,OAAI,GAAQmE,EAAI,EAAG8N,EAAIvY,EAAMkF,OAAQuF,EAAI8N,EAAG9N,IACjDnE,EAAItG,EAAMyK,GACNnE,GAAKA,EAAEuW,QACPvW,EAAEuW,OAAOS,IAAIM,SAEbrW,GAAQjB,IACRuX,EAAYvX,GAKxB,QAASkY,GAASlf,GAEd,MADAmf,GAAanf,GAAQ,GACdA,EAOX,QAASof,GAAgBpf,GAGrB,MAFAmf,GAAanf,GAAQ,GACrB2a,EAAI3a,EAAQ,iBAAgD,GACrDA,EAEX,QAASmf,GAAanf,EAAQqd,GAE1B,IAAKwB,EAAW7e,GAAS,CAEbiI,GAAQjI,IACR4e,GAAO,uCAAuC1a,OAAOmZ,EAAU,oBAAsB,aAAc,8DAA8DnZ,OAAOmZ,EAAU,eAAiB,QAAS,8CAEhN,IAAIgC,GAAarf,GAAUA,EAAOud,MAC9B8B,IAAcA,EAAWhC,UAAYA,GACrCuB,GAAO,uBAAuB1a,OAAOmb,EAAWhC,QAAU,GAAK,OAAQ,wDAAwDnZ,OAAOmZ,EAAU,GAAK,OAAQ,YAG5JD,GAAQpd,EAAQqd,EAASI,SAEhB,MAAVzd,GAAkBmX,EAAYnX,KAC9B4e,GAAO,kCAAkC1a,OAAOG,OAAOrE,KAEvDsf,GAAiBtf,IACjB4e,GAAO,0EAKvB,QAASW,GAAW7e,GAChB,MAAIme,GAAWne,GACJ6e,EAAW7e,EAAuC,YAEnDA,IAASA,EAAM6c,QAE7B,QAASiC,GAAU9e,GACf,SAAUA,IAASA,EAAM+e,eAE7B,QAASZ,GAAWne,GAChB,SAAUA,IAASA,EAAMgf,gBAE7B,QAASC,GAAQjf,GACb,MAAO6e,GAAW7e,IAAUme,EAAWne,GAE3C,QAASkf,GAAMC,GACX,GAAIhN,GAAMgN,GAAYA,EAA0C,OAChE,OAAOhN,GAAM+M,EAAM/M,GAAOgN,EAE9B,QAASC,IAAQpf,GAKb,MAHI+D,QAAOiZ,aAAahd,IACpBia,EAAIja,EAAO,YAAqC,GAE7CA,EAKX,QAAS4e,IAAiB5e,GACtB,GAAIoC,GAAOuU,EAAU3W,EACrB,OAAiB,QAAToC,GAA2B,YAATA,GAA+B,QAATA,GAA2B,YAATA,EAOtE,QAAS8a,IAAMmC,GACX,SAAUA,IAAqB,IAAhBA,EAAEC,WAErB,QAASC,IAAMvf,GACX,MAAOwf,IAAUxf,GAAO,GAE5B,QAASyf,IAAWzf,GAChB,MAAOwf,IAAUxf,GAAO,GAE5B,QAASwf,IAAUE,EAAU/C,GACzB,GAAIO,GAAMwC,GACN,MAAOA,EAEX,IAAIC,KAIJ,OAHA1F,GAAI0F,EAAKC,IAAS,GAClB3F,EAAI0F,EAAK,gBAAgDhD,GACzD1C,EAAI0F,EAAK,MAAOxC,EAAewC,EAAK,QAASD,EAAU,KAAM/C,EAASI,OAC/D4C,EAEX,QAASE,IAAWF,GACXA,EAAIrC,KACLY,GAAO,6CAGPyB,EAAIrC,KACAqC,EAAIrC,IAAIS,QACJ3b,KAAM,MACN9C,OAAQqgB,EACRpgB,IAAK,UAIrB,QAASugB,IAAMH,GACX,MAAOzC,IAAMyC,GAAOA,EAAI3f,MAAQ2f,EAEpC,QAASI,IAAUC,GACf,GAAInB,EAAWmB,GACX,MAAOA,EAIX,KAAK,GAFDtF,MACA/H,EAAO5O,OAAO4O,KAAKqN,GACdvV,EAAI,EAAGA,EAAIkI,EAAKzN,OAAQuF,IAC7BwV,GAAmBvF,EAAOsF,EAAgBrN,EAAKlI,GAEnD,OAAOiQ,GAEX,QAASuF,IAAmB3gB,EAAQD,EAAQE,GACxCwE,OAAOC,eAAe1E,EAAQC,GAC1BmF,YAAY,EACZE,cAAc,EACdX,IAAK,WACD,GAAI+S,GAAM3X,EAAOE,EACjB,IAAI2d,GAAMlG,GACN,MAAOA,GAAIhX,KAGX,IAAIoe,GAAKpH,GAAOA,EAAI6F,MAGpB,OAFIuB,IACAA,EAAGd,IAAIM,SACJ5G,GAGf5H,IAAK,SAAUpP,GACX,GAAIie,GAAW5e,EAAOE,EAClB2d,IAAMe,KAAcf,GAAMld,GAC1Bie,EAASje,MAAQA,EAGjBX,EAAOE,GAAOS,KAK9B,QAASkgB,IAAU/J,GACf,GAAImH,GAAM,GAAIjB,IACV8D,EAAKhK,EAAQ,WAETmH,EAAIM,QACAte,OAAQqgB,EACRvd,KAAM,MACN7C,IAAK,WAGd,WAEK+d,EAAIS,QACAze,OAAQqgB,EACRvd,KAAM,MACN7C,IAAK,YAGb0E,EAAMkc,EAAGlc,IAAKmL,EAAM+Q,EAAG/Q,IACvBuQ,GACA,YACI,MAAO1b,MAEX,UAAU6Z,GACN1O,EAAI0O,IAIZ,OADA7D,GAAI0F,EAAKC,IAAS,GACXD,EAEX,QAASS,IAAO/S,GACPwR,EAAWxR,IACZ6Q,GAAO,+DAEX,IAAItF,GAAMrR,GAAQ8F,GAAU,GAAI/F,OAAM+F,EAAOnI,UAC7C,KAAK,GAAI3F,KAAO8N,GACZuL,EAAIrZ,GAAO8gB,GAAMhT,EAAQ9N,EAE7B,OAAOqZ,GAEX,QAASyH,IAAMhT,EAAQ9N,EAAK+gB,GACxB,GAAItJ,GAAM3J,EAAO9N,EACjB,IAAI2d,GAAMlG,GACN,MAAOA,EAEX,IAAI2I,IACA,YACI,GAAI3I,GAAM3J,EAAO9N,EACjB,YAAeW,KAAR8W,EAAoBsJ,EAAetJ,GAE9C,UAAU8G,GACNzQ,EAAO9N,GAAOue,GAItB,OADA7D,GAAI0F,EAAKC,IAAS,GACXD,EAKX,QAASY,IAASjhB,GACd,MAAOkhB,IAAelhB,GAAQ,GAElC,QAASkhB,IAAelhB,EAAQqd,GAC5B,IAAK9F,EAAcvX,GAYf,MATQ4e,IADA3W,GAAQjI,GACD,0CAEFsf,GAAiBtf,GACf,uEAGA,kCAAkCkE,aAAclE,KAGxDA,CAMX,IAJKyE,OAAOiZ,aAAa1d,IACrB4e,GAAO,6EAGPC,EAAW7e,GACX,MAAOA,EAGX,IAAImhB,GAAe9D,EAAU+D,GAA2BC,GACpDC,EAAgBthB,EAAOmhB,EAC3B,IAAIG,EACA,MAAOA,EAEX,IAAIlG,GAAQ3W,OAAOwF,OAAOxF,OAAO8c,eAAevhB,GAChD2a,GAAI3a,EAAQmhB,EAAc/F,GAC1BT,EAAIS,EAAO,kBAAkD,GAC7DT,EAAIS,EAAO,UAAmCpb,GAC1C4d,GAAM5d,IACN2a,EAAIS,EAAOkF,IAAS,IAEpBjD,GAAWmC,EAAUxf,KACrB2a,EAAIS,EAAO,iBAAgD,EAG/D,KAAK,GADD/H,GAAO5O,OAAO4O,KAAKrT,GACdmL,EAAI,EAAGA,EAAIkI,EAAKzN,OAAQuF,IAC7BqW,GAAuBpG,EAAOpb,EAAQqT,EAAKlI,GAAIkS,EAEnD,OAAOjC,GAEX,QAASoG,IAAuBpG,EAAOpb,EAAQC,EAAKod,GAChD5Y,OAAOC,eAAe0W,EAAOnb,GACzBmF,YAAY,EACZE,cAAc,EACdX,IAAK,WACD,GAAI+S,GAAM1X,EAAOC,EACjB,OAAOod,KAAY9F,EAAcG,GAAOA,EAAMuJ,GAASvJ,IAE3D5H,IAAK,WACD8O,GAAO,yBAA0B1a,OAAOjE,EAAK,qCAUzD,QAASwhB,IAAgBzhB,GACrB,MAAOkhB,IAAelhB,GAAQ,GAGlC,QAAS0hB,IAASC,EAAiBC,GAC/B,GAAI1D,GACAC,EACA0D,EAAazK,EAAWuK,EACxBE,IACA3D,EAASyD,EACTxD,EAAS,WACDS,GAAO,yDAKfV,EAASyD,EAAgBhd,IACzBwZ,EAASwD,EAAgB7R,IAE7B,IAAIgS,GAAUrE,KACR,KACA,GAAIsE,IAAQ5G,GAAiB+C,EAAQvN,GAAQqR,MAAM,GACrDF,IAAWF,IACXE,EAAQG,QAAUL,EAAaK,QAC/BH,EAAQI,UAAYN,EAAaM,UAErC,IAAI7B,IAGA8B,OAAQL,EACR,YACI,MAAIA,IACIA,EAAQM,OACRN,EAAQO,WAERtF,GAAI/c,SACA+c,GAAI/c,OAAOiiB,SACXlF,GAAI/c,OAAOiiB,SACPE,OAAQpF,GAAI/c,OACZA,OAAQqgB,EACRvd,KAAM,MACN7C,IAAK,UAGb6hB,EAAQxD,UAELwD,EAAQphB,OAGRwd,KAGf,UAAUM,GACNL,EAAOK,IAKf,OAFA7D,GAAI0F,EAAKC,IAAS,GAClB3F,EAAI0F,EAAK,iBAAkDwB,GACpDxB,EAyCX,QAASiC,IAAgBC,EAAKjH,GAC1B,QAASkH,KACL,GAAID,GAAMC,EAAQD,GAClB,KAAIta,GAAQsa,GAQR,MAAOE,IAAwBF,EAAK,KAAMljB,UAAWic,EAAI,eANzD,KAAK,GADDQ,GAASyG,EAAI3b,QACRuE,EAAI,EAAGA,EAAI2Q,EAAOlW,OAAQuF,IAC/BsX,GAAwB3G,EAAO3Q,GAAI,KAAM9L,UAAWic,EAAI,gBASpE,MADAkH,GAAQD,IAAMA,EACPC,EAEX,QAASE,IAAgBjH,EAAIkH,EAAO/e,EAAKgf,EAAQC,EAAmBvH,GAChE,GAAIlZ,GAAM0gB,EAAKC,EAAKC,CACpB,KAAK5gB,IAAQqZ,GACTqH,EAAMrH,EAAGrZ,GACT2gB,EAAMJ,EAAMvgB,GACZ4gB,EAAQC,GAAe7gB,GACnB0U,EAAQgM,GACRlE,GAAO,8BAA+B1a,OAAO8e,EAAM5gB,KAAM,WAAciC,OAAOye,GAAMxH,GAE/ExE,EAAQiM,IACTjM,EAAQgM,EAAIP,OACZO,EAAMrH,EAAGrZ,GAAQkgB,GAAgBQ,EAAKxH,IAEtCrE,EAAO+L,EAAM1I,QACbwI,EAAMrH,EAAGrZ,GAAQygB,EAAkBG,EAAM5gB,KAAM0gB,EAAKE,EAAME,UAE9Dtf,EAAIof,EAAM5gB,KAAM0gB,EAAKE,EAAME,QAASF,EAAMG,QAASH,EAAMI,SAEpDN,IAAQC,IACbA,EAAIR,IAAMO,EACVrH,EAAGrZ,GAAQ2gB,EAGnB,KAAK3gB,IAAQugB,GACL7L,EAAQ2E,EAAGrZ,MACX4gB,EAAQC,GAAe7gB,GACvBwgB,EAAOI,EAAM5gB,KAAMugB,EAAMvgB,GAAO4gB,EAAME,UAKlD,QAASG,IAAe1I,EAAK2I,EAASjgB,GAMlC,QAASkgB,KACLlgB,EAAKjE,MAAMqC,KAAMpC,WAGjBmZ,EAASgK,EAAQD,IAAKgB,GATtB5I,YAAegB,MACfhB,EAAMA,EAAIoB,KAAK1Y,OAASsX,EAAIoB,KAAK1Y,SAErC,IAAImf,GACAgB,EAAU7I,EAAI2I,EAOdxM,GAAQ0M,GAERhB,EAAUF,IAAiBiB,IAIvBvM,EAAMwM,EAAQjB,MAAQtL,EAAOuM,EAAQC,SAErCjB,EAAUgB,EACVhB,EAAQD,IAAI5W,KAAK4X,IAIjBf,EAAUF,IAAiBkB,EAASD,IAG5Cf,EAAQiB,QAAS,EACjB9I,EAAI2I,GAAWd,EAGnB,QAASkB,IAA0B3H,EAAMd,EAAMrN,GAI3C,GAAI+V,GAAc1I,EAAKnb,QAAQ8jB,KAC/B,KAAI9M,EAAQ6M,GAAZ,CAGA,GAAI1N,MACA4N,EAAQ9H,EAAK8H,MAAOD,EAAQ7H,EAAK6H,KACrC,IAAI5M,EAAM6M,IAAU7M,EAAM4M,GACtB,IAAK,GAAI3jB,KAAO0jB,GAAa,CACzB,GAAIG,GAASC,GAAU9jB,GAEf+jB,EAAiB/jB,EAAIsY,aACrBtY,KAAQ+jB,GAAkBH,GAASliB,EAAOkiB,EAAOG,IACjDC,GAAI,SAAU/f,OAAO8f,EAAgB,6BACjC,GAAG9f,OAAOggB,GAEVtW,GAAOqN,GAAO,mCACd,KAAM/W,OAAOjE,EAAK,OAClB,kIAEA,uCAAwCiE,OAAO4f,EAAQ,kBAAoB5f,OAAOjE,EAAK,OAGnGkkB,GAAUlO,EAAK2N,EAAO3jB,EAAK6jB,GAAQ,IAC/BK,GAAUlO,EAAK4N,EAAO5jB,EAAK6jB,GAAQ,GAG/C,MAAO7N,IAEX,QAASkO,IAAUlO,EAAKmO,EAAMnkB,EAAK6jB,EAAQO,GACvC,GAAIrN,EAAMoN,GAAO,CACb,GAAIziB,EAAOyiB,EAAMnkB,GAKb,MAJAgW,GAAIhW,GAAOmkB,EAAKnkB,GACXokB,SACMD,GAAKnkB,IAET,CAEN,IAAI0B,EAAOyiB,EAAMN,GAKlB,MAJA7N,GAAIhW,GAAOmkB,EAAKN,GACXO,SACMD,GAAKN,IAET,EAGf,OAAO,EAcX,QAASQ,IAAwBtI,GAC7B,IAAK,GAAI7Q,GAAI,EAAGA,EAAI6Q,EAASpW,OAAQuF,IACjC,GAAIlD,GAAQ+T,EAAS7Q,IACjB,MAAOnD,OAAMjJ,UAAUmF,OAAO9E,SAAU4c,EAGhD,OAAOA,GAMX,QAASuI,IAAkBvI,GACvB,MAAO7E,GAAY6E,IACZN,EAAgBM,IACjB/T,GAAQ+T,GACJwI,GAAuBxI,OACvBpb,GAEd,QAAS6jB,IAAWC,GAChB,MAAO1N,GAAM0N,IAAS1N,EAAM0N,EAAKzI,OAAS/E,EAAQwN,EAAKnI,WAE3D,QAASiI,IAAuBxI,EAAU2I,GACtC,GACIxZ,GAAGwO,EAAGvH,EAAWwS,EADjB3O,IAEJ,KAAK9K,EAAI,EAAGA,EAAI6Q,EAASpW,OAAQuF,IAC7BwO,EAAIqC,EAAS7Q,GACT2L,EAAQ6C,IAAmB,iBAANA,KAEzBvH,EAAY6D,EAAIrQ,OAAS,EACzBgf,EAAO3O,EAAI7D,GAEPnK,GAAQ0R,GACJA,EAAE/T,OAAS,IACX+T,EAAI6K,GAAuB7K,EAAG,GAAGzV,OAAOygB,GAAe,GAAI,KAAKzgB,OAAOiH,IAEnEsZ,GAAW9K,EAAE,KAAO8K,GAAWG,KAC/B3O,EAAI7D,GAAasJ,EAAgBkJ,EAAK3I,KAAOtC,EAAE,GAAGsC,MAClDtC,EAAEkL,SAEN5O,EAAItK,KAAKvM,MAAM6W,EAAK0D,IAGnBxC,EAAYwC,GACb8K,GAAWG,GAIX3O,EAAI7D,GAAasJ,EAAgBkJ,EAAK3I,KAAOtC,GAElC,KAANA,GAEL1D,EAAItK,KAAK+P,EAAgB/B,IAIzB8K,GAAW9K,IAAM8K,GAAWG,GAE5B3O,EAAI7D,GAAasJ,EAAgBkJ,EAAK3I,KAAOtC,EAAEsC,OAI3ChF,EAAO+E,EAAS8I,WAChB9N,EAAM2C,EAAE/L,MACRkJ,EAAQ6C,EAAE1Z,MACV+W,EAAM2N,KACNhL,EAAE1Z,IAAM,UAAUiE,OAAOygB,EAAa,KAAKzgB,OAAOiH,EAAG,OAEzD8K,EAAItK,KAAKgO,IAIrB,OAAO1D,GAOX,QAAS8O,IAAgBzhB,EAASsK,EAAKmO,EAAMC,EAAUgJ,EAAmBC,GAStE,OARIhd,GAAQ8T,IAAS5E,EAAY4E,MAC7BiJ,EAAoBhJ,EACpBA,EAAWD,EACXA,MAAOnb,IAEPqW,EAAOgO,KACPD,EAAoBE,IAEjBC,GAAe7hB,EAASsK,EAAKmO,EAAMC,EAAUgJ,GAExD,QAASG,IAAe7hB,EAASsK,EAAKmO,EAAMC,EAAUgJ,GAClD,GAAIhO,EAAM+E,IAAS/E,EAAM+E,EAAKwB,QAE1B,MADAqB,IAAO,mDAAmD1a,OAAO+T,KAAKC,UAAU6D,GAAO,MAAQ,yDAA0DzY,GAClJ8hB,IAMX,IAHIpO,EAAM+E,IAAS/E,EAAM+E,EAAKsJ,MAC1BzX,EAAMmO,EAAKsJ,KAEVzX,EAED,MAAOwX,KAGPpO,GAAM+E,IAAS/E,EAAM+E,EAAK9b,OAASkX,EAAY4E,EAAK9b,MACpD2e,GAAO,2EACiCtb,GAGxC2E,GAAQ+T,IAAa5E,EAAW4E,EAAS,MACzCD,EAAOA,MACPA,EAAKuJ,aAAgBviB,QAASiZ,EAAS,IACvCA,EAASpW,OAAS,GAElBof,IAAsBE,GACtBlJ,EAAWuI,GAAkBvI,GAExBgJ,IAAsBO,KAC3BvJ,EAAWsI,GAAwBtI,GAEvC,IAAIH,GAAOQ,CACX,IAAmB,gBAARzO,GAAkB,CACzB,GAAIqN,OAAO,EACXoB,GAAM/Y,EAAQC,QAAUD,EAAQC,OAAO8Y,IAAOmJ,GAAOC,gBAAgB7X,GACjE4X,GAAOE,cAAc9X,IAEjBoJ,EAAM+E,IACN/E,EAAM+E,EAAK4J,WACE,cAAb5J,EAAKnO,KACLgR,GAAO,iFAAiF1a,OAAO0J,EAAK,MAAOtK,GAE/GuY,EAAQ,GAAIF,IAAM6J,GAAOI,qBAAqBhY,GAAMmO,EAAMC,MAAUpb,OAAWA,GAAW0C,IAW1FuY,EATOE,GAASA,EAAK8J,MACrB7O,EAAOiE,EAAO6K,GAAaxiB,EAAQyiB,SAAU,aAAcnY,IAQnD,GAAI+N,IAAM/N,EAAKmO,EAAMC,MAAUpb,OAAWA,GAAW0C,GANrD0iB,GAAgB/K,EAAMc,EAAMzY,EAAS0Y,EAAUpO,OAW3DiO,GAAQmK,GAAgBpY,EAAKmO,EAAMzY,EAAS0Y,EAEhD,OAAI/T,IAAQ4T,GACDA,EAEF7E,EAAM6E,IACP7E,EAAMqF,IACN4J,GAAQpK,EAAOQ,GACfrF,EAAM+E,IACNmK,GAAqBnK,GAClBF,GAGAuJ,KAGf,QAASa,IAAQpK,EAAOQ,EAAI8J,GAOxB,GANAtK,EAAMQ,GAAKA,EACO,kBAAdR,EAAMjO,MAENyO,MAAKzb,GACLulB,GAAQ,GAERnP,EAAM6E,EAAMG,UACZ,IAAK,GAAI7Q,GAAI,EAAG8N,EAAI4C,EAAMG,SAASpW,OAAQuF,EAAI8N,EAAG9N,IAAK,CACnD,GAAIib,GAAQvK,EAAMG,SAAS7Q,EACvB6L,GAAMoP,EAAMxY,OACXkJ,EAAQsP,EAAM/J,KAAQpF,EAAOkP,IAAwB,QAAdC,EAAMxY,MAC9CqY,GAAQG,EAAO/J,EAAI8J,IAQnC,QAASD,IAAqBnK,GACtB5X,EAAS4X,EAAKzS,QACd+c,GAAStK,EAAKzS,OAEdnF,EAAS4X,EAAKuK,QACdD,GAAStK,EAAKuK,OAOtB,QAASC,IAAW7O,EAAK1U,GACrB,GAAgBmI,GAAG8N,EAAG5F,EAAMpT,EAAxBqZ,EAAM,IACV,IAAIrR,GAAQyP,IAAuB,gBAARA,GAEvB,IADA4B,EAAM,GAAItR,OAAM0P,EAAI9R,QACfuF,EAAI,EAAG8N,EAAIvB,EAAI9R,OAAQuF,EAAI8N,EAAG9N,IAC/BmO,EAAInO,GAAKnI,EAAO0U,EAAIvM,GAAIA,OAG3B,IAAmB,gBAARuM,GAEZ,IADA4B,EAAM,GAAItR,OAAM0P,GACXvM,EAAI,EAAGA,EAAIuM,EAAKvM,IACjBmO,EAAInO,GAAKnI,EAAOmI,EAAI,EAAGA,OAG1B,IAAIhH,EAASuT,GACd,GAAI8O,IAAa9O,EAAI1V,OAAOkN,UAAW,CACnCoK,IAGA,KAFA,GAAIpK,GAAWwI,EAAI1V,OAAOkN,YACtB/E,EAAS+E,EAASuX,QACdtc,EAAO+L,MACXoD,EAAI3N,KAAK3I,EAAOmH,EAAOzJ,MAAO4Y,EAAI1T,SAClCuE,EAAS+E,EAASuX,WAMtB,KAFApT,EAAO5O,OAAO4O,KAAKqE,GACnB4B,EAAM,GAAItR,OAAMqL,EAAKzN,QAChBuF,EAAI,EAAG8N,EAAI5F,EAAKzN,OAAQuF,EAAI8N,EAAG9N,IAChClL,EAAMoT,EAAKlI,GACXmO,EAAInO,GAAKnI,EAAO0U,EAAIzX,GAAMA,EAAKkL,EAQ3C,OAJK6L,GAAMsC,KACPA,MAEJA,EAAIwL,UAAW,EACRxL,EAMX,QAASoN,IAAWtkB,EAAMukB,EAAgB/C,EAAOgD,GAC7C,GACIC,GADAC,EAAerlB,KAAKslB,aAAa3kB,EAEjC0kB,IAEAlD,EAAQA,MACJgD,IACKziB,EAASyiB,IACVhI,GAAO,iDAAkDnd,MAE7DmiB,EAAQrK,EAAOA,KAAWqN,GAAahD,IAE3CiD,EACIC,EAAalD,KACRxM,EAAWuP,GAAkBA,IAAmBA,IAGzDE,EACIplB,KAAKulB,OAAO5kB,KACPgV,EAAWuP,GAAkBA,IAAmBA,EAE7D,IAAI3mB,GAAS4jB,GAASA,EAAMqD,IAC5B,OAAIjnB,GACOyB,KAAKylB,eAAe,YAAcD,KAAMjnB,GAAU6mB,GAGlDA,EAOf,QAASM,IAAcC,GACnB,MAAOtB,IAAarkB,KAAKskB,SAAU,UAAWqB,GAAI,IAASC,GAG/D,QAASC,IAAcC,EAAQC,GAC3B,MAAIvf,IAAQsf,IAC2B,IAA5BA,EAAO9X,QAAQ+X,GAGfD,IAAWC,EAQ1B,QAASC,IAAcC,EAAcznB,EAAK0nB,EAAgBC,EAAcC,GACpE,GAAIC,GAAgBtC,GAAOuC,SAAS9nB,IAAQ0nB,CAC5C,OAAIE,IAAkBD,IAAiBpC,GAAOuC,SAAS9nB,GAC5CqnB,GAAcO,EAAgBD,GAEhCE,EACER,GAAcQ,EAAeJ,GAE/BE,EACE7D,GAAU6D,KAAkB3nB,MAEfW,KAAjB8mB,EAMX,QAASM,IAAgBjM,EAAMnO,EAAKlN,EAAOunB,EAAQC,GAC/C,GAAIxnB,EACA,GAAKyD,EAASzD,GAGT,CACGuH,GAAQvH,KACRA,EAAQmE,EAASnE,GAErB,IAAI0jB,OAAO,EAwBX,KAAK,GAAInkB,KAAOS,IAvBF,SAAUT,GACpB,GAAY,UAARA,GAA2B,UAARA,GAAmBkoB,GAAoBloB,GAC1DmkB,EAAOrI,MAEN,CACD,GAAIjZ,GAAOiZ,EAAK8H,OAAS9H,EAAK8H,MAAM/gB,IACpCshB,GACI6D,GAAUzC,GAAO4C,YAAYxa,EAAK9K,EAAM7C,GAClC8b,EAAKsM,WAAatM,EAAKsM,aACvBtM,EAAK8H,QAAU9H,EAAK8H,UAElC,GAAIyE,GAAeC,GAAStoB,GACxBuoB,EAAgBzE,GAAU9jB,EAC9B,MAAMqoB,IAAgBlE,IAAWoE,IAAiBpE,MAC9CA,EAAKnkB,GAAOS,EAAMT,GACdioB,GAAQ,EACCnM,EAAKN,KAAOM,EAAKN,QACvB,UAAUvX,OAAOjE,IAAQ,SAAUwoB,GAClC/nB,EAAMT,GAAOwoB,KAMjBxoB,OA/BZ2e,IAAO,2DAA4Dnd,KAmC3E,OAAOsa,GAMX,QAAS2M,IAAa5b,EAAO6b,GACzB,GAAIhQ,GAASlX,KAAKmnB,eAAiBnnB,KAAKmnB,iBACpCC,EAAOlQ,EAAO7L,EAGlB,OAAI+b,KAASF,EACFE,GAGXA,EAAOlQ,EAAO7L,GAASrL,KAAKskB,SAAS9iB,gBAAgB6J,GAAO9N,KAAKyC,KAAKqnB,aAAcrnB,KAAKsnB,GAAItnB,MAE7FunB,GAAaH,EAAM,aAAa3kB,OAAO4I,IAAQ,GACxC+b,GAMX,QAASI,IAASJ,EAAM/b,EAAO7M,GAE3B,MADA+oB,IAAaH,EAAM,WAAW3kB,OAAO4I,GAAO5I,OAAOjE,EAAM,IAAIiE,OAAOjE,GAAO,KAAK,GACzE4oB,EAEX,QAASG,IAAaH,EAAM5oB,EAAKipB,GAC7B,GAAIjhB,GAAQ4gB,GACR,IAAK,GAAI1d,GAAI,EAAGA,EAAI0d,EAAKjjB,OAAQuF,IACzB0d,EAAK1d,IAAyB,gBAAZ0d,GAAK1d,IACvBge,GAAeN,EAAK1d,GAAI,GAAGjH,OAAOjE,EAAK,KAAKiE,OAAOiH,GAAI+d,OAK/DC,IAAeN,EAAM5oB,EAAKipB,GAGlC,QAASC,IAAezE,EAAMzkB,EAAKipB,GAC/BxE,EAAKpI,UAAW,EAChBoI,EAAKzkB,IAAMA,EACXykB,EAAKwE,OAASA,EAGlB,QAASE,IAAoBrN,EAAMrb,GAC/B,GAAIA,EACA,GAAK6W,EAAc7W,GAGd,CACD,GAAI+a,GAAMM,EAAKN,GAAKM,EAAKN,GAAKlC,KAAWwC,EAAKN,MAC9C,KAAK,GAAIxb,KAAOS,GAAO,CACnB,GAAIoD,GAAW2X,EAAGxb,GACdopB,EAAO3oB,EAAMT,EACjBwb,GAAGxb,GAAO6D,KAAcI,OAAOJ,EAAUulB,GAAQA,OAPrDzK,IAAO,gDAAiDnd,KAWhE,OAAOsa,GAGX,QAASuN,IAAmB/G,EAAKtM,EAEjCsT,EAAgBC,GACZvT,EAAMA,IAASwT,SAAUF,EACzB,KAAK,GAAIpe,GAAI,EAAGA,EAAIoX,EAAI3c,OAAQuF,IAAK,CACjC,GAAI8b,GAAO1E,EAAIpX,EACXlD,IAAQgf,GACRqC,GAAmBrC,EAAMhR,EAAKsT,GAEzBtC,IAGDA,EAAK7L,QAEL6L,EAAK9nB,GAAGic,OAAQ,GAEpBnF,EAAIgR,EAAKhnB,KAAOgnB,EAAK9nB,IAM7B,MAHIqqB,KACAvT,EAAIyT,KAAOF,GAERvT,EAIX,QAAS0T,IAAgBC,EAASC,GAC9B,IAAK,GAAI1e,GAAI,EAAGA,EAAI0e,EAAOjkB,OAAQuF,GAAK,EAAG,CACvC,GAAIlL,GAAM4pB,EAAO1e,EACE,iBAARlL,IAAoBA,EAC3B2pB,EAAQC,EAAO1e,IAAM0e,EAAO1e,EAAI,GAEnB,KAARlL,GAAsB,OAARA,GAEnB2e,GAAO,2EAA2E1a,OAAOjE,GAAMwB,MAGvG,MAAOmoB,GAKX,QAASE,IAAgBppB,EAAOqpB,GAC5B,MAAwB,gBAAVrpB,GAAqBqpB,EAASrpB,EAAQA,EAGxD,QAASspB,IAAqBhqB,GAC1BA,EAAOiqB,GAAKhB,GACZjpB,EAAOkqB,GAAKxV,EACZ1U,EAAOmqB,GAAKzjB,EACZ1G,EAAOoqB,GAAK7D,GACZvmB,EAAOqqB,GAAK3D,GACZ1mB,EAAOsqB,GAAK1Q,EACZ5Z,EAAOuqB,GAAKlQ,EACZra,EAAOwqB,GAAK9B,GACZ1oB,EAAOyqB,GAAKtD,GACZnnB,EAAO0qB,GAAKjD,GACZznB,EAAO2qB,GAAK3C,GACZhoB,EAAO4qB,GAAKlP,EACZ1b,EAAO6qB,GAAKzF,GACZplB,EAAO8qB,GAAKxB,GACZtpB,EAAO+qB,GAAK3B,GACZppB,EAAOgrB,GAAKrB,GACZ3pB,EAAOirB,GAAKnB,GAMhB,QAASoB,IAAalP,EAAU1Y,GAC5B,IAAK0Y,IAAaA,EAASpW,OACvB,QAGJ,KAAK,GADDulB,MACKhgB,EAAI,EAAG8N,EAAI+C,EAASpW,OAAQuF,EAAI8N,EAAG9N,IAAK,CAC7C,GAAIib,GAAQpK,EAAS7Q,GACjB4Q,EAAOqK,EAAMrK,IAOjB,IALIA,GAAQA,EAAK8H,OAAS9H,EAAK8H,MAAMoD,YAC1BlL,GAAK8H,MAAMoD,KAIjBb,EAAM9iB,UAAYA,GAAW8iB,EAAM5J,YAAclZ,IAClDyY,GACa,MAAbA,EAAKkL,MAWJkE,EAAMpoB,UAAYooB,EAAMpoB,aAAe4I,KAAKya,OAX1B,CACnB,GAAIgF,GAASrP,EAAKkL,KACdA,EAAOkE,EAAMC,KAAYD,EAAMC,MACjB,cAAdhF,EAAMxY,IACNqZ,EAAKtb,KAAKvM,MAAM6nB,EAAMb,EAAMpK,cAG5BiL,EAAKtb,KAAKya,IAQtB,IAAK,GAAIiF,KAAUF,GACXA,EAAME,GAAQle,MAAMme,WACbH,GAAME,EAGrB,OAAOF,GAEX,QAASG,IAAa5G,GAClB,MAAQA,GAAKnI,YAAcmI,EAAKtI,cAA+B,MAAdsI,EAAKzI,KAG1D,QAASsP,IAAmB7G,GAExB,MAAOA,GAAKnI,WAAamI,EAAKtI,aAGlC,QAASoP,IAAqBC,EAASnG,EAAaoG,EAAaC,GAC7D,GAAI1V,GACA2V,EAAiBnnB,OAAO4O,KAAKqY,GAAa9lB,OAAS,EACnDimB,EAAWvG,IAAgBA,EAAYmE,SAAWmC,EAClD3rB,EAAMqlB,GAAeA,EAAYoE,IACrC,IAAKpE,EAGA,IAAIA,EAAYwG,YAEjB,MAAOxG,GAAYwG,WAElB,IAAID,GACLF,GACAA,IAAoBI,IACpB9rB,IAAQ0rB,EAAgBjC,OACvBkC,IACAD,EAAgBK,WAGjB,MAAOL,EAGP1V,KACA,KAAK,GAAIgW,KAAS3G,GACVA,EAAY2G,IAAuB,MAAbA,EAAM,KAC5BhW,EAAIgW,GAASC,GAAoBT,EAASC,EAAaO,EAAO3G,EAAY2G,SApBlFhW,KAyBJ,KAAK,GAAIkW,KAAST,GACRS,IAASlW,KACXA,EAAIkW,GAASC,GAAgBV,EAAaS,GAWlD,OANI7G,IAAe7gB,OAAOiZ,aAAa4H,KACnCA,EAAYwG,YAAc7V,GAE9B0E,EAAI1E,EAAK,UAAW4V,GACpBlR,EAAI1E,EAAK,OAAQhW,GACjB0a,EAAI1E,EAAK,aAAc2V,GAChB3V,EAEX,QAASiW,IAAoB5Q,EAAIoQ,EAAazrB,EAAKd,GAC/C,GAAIktB,GAAa,WACb,GAAIvJ,GAAM3H,EACVE,GAAmBC,EACnB,IAAIrF,GAAM5W,UAAUuG,OAASzG,EAAGC,MAAM,KAAMC,WAAaF,KACzD8W,GACIA,GAAsB,gBAARA,KAAqBhO,GAAQgO,IACpCA,GACDsO,GAAkBtO,EAC5B,IAAI4F,GAAQ5F,GAAOA,EAAI,EAEvB,OADAoF,GAAmByH,GACZ7M,KACD4F,GACkB,IAAf5F,EAAIrQ,QAAgBiW,EAAMU,YAAcgP,GAAmB1P,QAC9Djb,GACAqV,EAYV,OAPI9W,GAAGic,OACH3W,OAAOC,eAAegnB,EAAazrB,GAC/B0E,IAAK0nB,EACLjnB,YAAY,EACZE,cAAc,IAGf+mB,EAEX,QAASD,IAAgBjB,EAAOlrB,GAC5B,MAAO,YAAc,MAAOkrB,GAAMlrB,IAGtC,QAASqsB,IAAUhR,GACf,GAAIxb,GAAUwb,EAAGyK,SACbwG,EAAQzsB,EAAQysB,KACpB,IAAIA,EAAO,CACP,GAAIzT,GAAOwC,EAAGkR,cAAgBC,GAAmBnR,EACjDD,GAAmBC,GACnBuB,GACA,IAAI6P,GAAcjK,GAAwB8J,EAAO,MAAOjR,EAAGqR,QAAUvN,MAAqBtG,GAAMwC,EAAI,QAGpG,IAFA0B,IACA3B,IACIjE,EAAWsV,GAGX5sB,EAAQkD,OAAS0pB,MAEhB,IAAIvoB,EAASuoB,GAQd,GANIA,YAAuB/Q,KACvBiD,GAAO,iFAGXtD,EAAGsR,YAAcF,EAEZA,EAAYG,MAUZ,CAED,GAAIzR,GAASE,EAAGwR,cAChB,KAAK,GAAI7sB,KAAOysB,GACA,UAARzsB,GACA0gB,GAAmBvF,EAAOsR,EAAazsB,OAd/C,KAAK,GAAIA,KAAOysB,GACPhS,EAAWza,GAIZ2e,GAAO,4DAHP+B,GAAmBrF,EAAIoR,EAAazsB,YAiB3BW,KAAhB8rB,GACL9N,GAAO,8CAA8C1a,OAAuB,OAAhBwoB,EAAuB,aAAgBA,MAI/G,QAASD,IAAmBnR,GACxB,GAAIyR,IAAe,CACnB,QACI,YACI,IAAKzR,EAAG0R,YAAa,CACjB,GAAI5R,GAASE,EAAG0R,cAChBrS,GAAIS,EAAO,iBAAiB,GAC5B6R,GAAe7R,EAAOE,EAAG4R,OAAQnB,GAAazQ,EAAI,UAEtD,MAAOA,GAAG0R,aAEd,gBACI,IAAK1R,EAAG6R,gBAAiB,CAErBF,GADa3R,EAAG6R,mBACM7R,EAAG8R,WAAYrB,GAAazQ,EAAI,cAE1D,MAAOA,GAAG6R,iBAEd,YACI,MAAOE,IAAe/R,IAE1BgS,KAAMC,GAAOjS,EAAGkS,MAAOlS,GACvBmS,OAAQ,SAAUC,GAENX,GACAnO,GAAO,mDAAoDtD,GAE/DyR,GAAe,EAEfW,GACAjpB,OAAO4O,KAAKqa,GAAS3gB,QAAQ,SAAU9M,GACnC,MAAO0gB,IAAmBrF,EAAIoS,EAASztB,OAM3D,QAASgtB,IAAezT,EAAImU,EAAMC,EAAMC,EAAU/qB,GAC9C,GAAIgrB,IAAU,CACd,KAAK,GAAI7tB,KAAO0tB,GACN1tB,IAAOuZ,GAIJmU,EAAK1tB,KAAS2tB,EAAK3tB,KACxB6tB,GAAU,IAJVA,GAAU,EACVC,GAAgBvU,EAAIvZ,EAAK4tB,EAAU/qB,GAM3C,KAAK,GAAI7C,KAAOuZ,GACNvZ,IAAO0tB,KACTG,GAAU,QACHtU,GAAGvZ,GAGlB,OAAO6tB,GAEX,QAASC,IAAgB3S,EAAOnb,EAAK4tB,EAAU/qB,GAC3C2B,OAAOC,eAAe0W,EAAOnb,GACzBmF,YAAY,EACZE,cAAc,EACdX,IAAK,WACD,MAAOkpB,GAAS/qB,GAAM7C,MAIlC,QAASotB,IAAe/R,GAIpB,MAHKA,GAAG0S,aACJC,GAAgB3S,EAAG0S,eAAmB1S,EAAGyL,cAEtCzL,EAAG0S,YAEd,QAASC,IAAezU,EAAImU,GACxB,IAAK,GAAI1tB,KAAO0tB,GACZnU,EAAGvZ,GAAO0tB,EAAK1tB,EAEnB,KAAK,GAAIA,KAAOuZ,GACNvZ,IAAO0tB,UACFnU,GAAGvZ,GAQtB,QAASiuB,MACL,MAAOC,MAAahD,MAMxB,QAASiD,MACL,MAAOD,MAAatK,MAOxB,QAASwK,MACL,MAAOF,MAAaG,UAExB,QAASH,MACAhT,IACDyD,GAAO,+CAEX,IAAItD,GAAKH,EACT,OAAOG,GAAGkR,gBAAkBlR,EAAGkR,cAAgBC,GAAmBnR,IAOtE,QAASiT,IAAc1b,EAAK2b,GACxB,GAAI5K,GAAQ3b,GAAQ4K,GACdA,EAAI4b,OAAO,SAAUpC,EAAYqC,GAAK,MAASrC,GAAWqC,MAAUrC,OACpExZ,CACN,KAAK,GAAI5S,KAAOuuB,GAAU,CACtB,GAAIG,GAAM/K,EAAM3jB,EACZ0uB,GACI1mB,GAAQ0mB,IAAQvX,EAAWuX,GAC3B/K,EAAM3jB,IAAS6C,KAAM6rB,EAAK5rB,QAASyrB,EAASvuB,IAG5C0uB,EAAI5rB,QAAUyrB,EAASvuB,GAGd,OAAR0uB,EACL/K,EAAM3jB,IAAS8C,QAASyrB,EAASvuB,IAGjC2e,GAAO,sBAAuB1a,OAAOjE,EAAK,wCAGlD,MAAO2jB,GAGX,QAASgL,IAAWtT,GAChBA,EAAGuT,OAAS,KACZvT,EAAGsN,aAAe,IAClB,IAAI9oB,GAAUwb,EAAGyK,SACb+I,EAAexT,EAAG/X,OAASzD,EAAQivB,aACnCC,EAAgBF,GAAeA,EAAYxrB,OAC/CgY,GAAG0L,OAASkE,GAAaprB,EAAQmvB,gBAAiBD,GAClD1T,EAAGyL,aAAe+H,EACZtD,GAAqBlQ,EAAG4T,QAASJ,EAAY/S,KAAKuJ,YAAahK,EAAG0L,QAClE+E,GAMNzQ,EAAGyN,GAAK,SAAU/P,EAAGU,EAAGC,EAAGwV,GAAK,MAAOpK,IAAgBzJ,EAAItC,EAAGU,EAAGC,EAAGwV,GAAG,IAIvE7T,EAAG4L,eAAiB,SAAUlO,EAAGU,EAAGC,EAAGwV,GAAK,MAAOpK,IAAgBzJ,EAAItC,EAAGU,EAAGC,EAAGwV,GAAG,GAGnF,IAAIC,GAAaN,GAAeA,EAAY/S,IAGxC8B,GAAevC,EAAI,SAAW8T,GAAcA,EAAWvL,OAAUkI,GAAa,YACzEsD,IAA4BzQ,GAAO,sBAAuBtD,KAC5D,GACHuC,EAAevC,EAAI,aAAcxb,EAAQwvB,kBAAoBvD,GAAa,YACrEsD,IAA4BzQ,GAAO,0BAA2BtD,KAChE,GAwEX,QAASiU,IAAWC,EAAMC,GAItB,OAHID,EAAKE,YAAelJ,IAA0C,WAA7BgJ,EAAKxtB,OAAO2tB,gBAC7CH,EAAOA,EAAKzsB,SAEToB,EAASqrB,GAAQC,EAAKlW,OAAOiW,GAAQA,EAEhD,QAASI,IAAuB/Y,EAASkF,EAAMzY,EAAS0Y,EAAUpO,GAC9D,GAAI8W,GAAOU,IAGX,OAFAV,GAAKtI,aAAevF,EACpB6N,EAAK/H,WAAcZ,KAAMA,EAAMzY,QAASA,EAAS0Y,SAAUA,EAAUpO,IAAKA,GACnE8W,EAEX,QAASmL,IAAsBhZ,EAASiZ,GACpC,GAAI7Y,EAAOJ,EAAQnY,QAAUsY,EAAMH,EAAQkZ,WACvC,MAAOlZ,GAAQkZ,SAEnB,IAAI/Y,EAAMH,EAAQmZ,UACd,MAAOnZ,GAAQmZ,QAEnB,IAAIC,GAAQC,EAKZ,IAJID,GAASjZ,EAAMH,EAAQsZ,UAA8C,IAAnCtZ,EAAQsZ,OAAO1gB,QAAQwgB,IAEzDpZ,EAAQsZ,OAAOxkB,KAAKskB,GAEpBhZ,EAAOJ,EAAQuZ,UAAYpZ,EAAMH,EAAQwZ,aACzC,MAAOxZ,GAAQwZ,WAEnB,IAAIJ,IAAUjZ,EAAMH,EAAQsZ,QAAS,CACjC,GAAIG,GAAYzZ,EAAQsZ,QAAUF,GAC9BM,GAAS,EACTC,EAAiB,KACjBC,EAAiB,IACrBR,GAAMS,IAAI,iBAAkB,WAAc,MAAOlY,GAAS8X,EAAUL,IACpE,IAAIU,GAAgB,SAAUC,GAC1B,IAAK,GAAIzlB,GAAI,EAAG8N,EAAIqX,EAAS1qB,OAAQuF,EAAI8N,EAAG9N,IACxCmlB,EAASnlB,GAAG0lB,cAEZD,KACAN,EAAS1qB,OAAS,EACK,OAAnB4qB,IACAM,aAAaN,GACbA,EAAiB,MAEE,OAAnBC,IACAK,aAAaL,GACbA,EAAiB,QAIzBM,EAAUzW,EAAK,SAAUrE,GAEzBY,EAAQmZ,SAAWT,GAAWtZ,EAAK6Z,GAG9BS,EAIDD,EAAS1qB,OAAS,EAHlB+qB,GAAc,KAMlBK,EAAW1W,EAAK,SAAU2W,GAC1BrS,GAAO,sCAAsC1a,OAAOG,OAAOwS,KAClDoa,EAAS,aAAa/sB,OAAO+sB,GAAU,KAC5Cja,EAAMH,EAAQkZ,aACdlZ,EAAQnY,OAAQ,EAChBiyB,GAAc,MAGlBO,EAAQra,EAAQka,EAASC,EA0C7B,OAzCI7sB,GAAS+sB,KACLpZ,EAAUoZ,GAENpa,EAAQD,EAAQmZ,WAChBkB,EAAMnZ,KAAKgZ,EAASC,GAGnBlZ,EAAUoZ,EAAMC,aACrBD,EAAMC,UAAUpZ,KAAKgZ,EAASC,GAC1Bha,EAAMka,EAAMxyB,SACZmY,EAAQkZ,UAAYR,GAAW2B,EAAMxyB,MAAOoxB,IAE5C9Y,EAAMka,EAAMd,WACZvZ,EAAQwZ,YAAcd,GAAW2B,EAAMd,QAASN,GAC5B,IAAhBoB,EAAME,MACNva,EAAQuZ,SAAU,EAIlBI,EAAiBa,WAAW,WACxBb,EAAiB,KACb1Z,EAAQD,EAAQmZ,WAAalZ,EAAQD,EAAQnY,SAC7CmY,EAAQuZ,SAAU,EAClBO,GAAc,KAEnBO,EAAME,OAAS,MAGtBpa,EAAMka,EAAMI,WAEZb,EAAiBY,WAAW,WACxBZ,EAAiB,KACb3Z,EAAQD,EAAQmZ,WAChBgB,EAAS,YAAY9sB,OAAOgtB,EAAMI,QAAS,SAEhDJ,EAAMI,YAIrBf,GAAS,EAEF1Z,EAAQuZ,QAAUvZ,EAAQwZ,YAAcxZ,EAAQmZ,UAI/D,QAASuB,IAAuBvV,GAC5B,GAAI/T,GAAQ+T,GACR,IAAK,GAAI7Q,GAAI,EAAGA,EAAI6Q,EAASpW,OAAQuF,IAAK,CACtC,GAAIwO,GAAIqC,EAAS7Q,EACjB,IAAI6L,EAAM2C,KAAO3C,EAAM2C,EAAEwC,mBAAqBoP,GAAmB5R,IAC7D,MAAOA,IAMvB,QAAS6X,IAAWlW,GAChBA,EAAGmW,QAAUhtB,OAAOwF,OAAO,MAC3BqR,EAAGoW,eAAgB,CAEnB,IAAIpD,GAAYhT,EAAGyK,SAASuJ,gBACxBhB,IACAqD,GAAyBrW,EAAIgT,GAIrC,QAASsD,IAAM5O,EAAO7jB,GAClB0yB,GAASnB,IAAI1N,EAAO7jB,GAExB,QAAS2yB,IAAS9O,EAAO7jB,GACrB0yB,GAASE,KAAK/O,EAAO7jB,GAEzB,QAAS6yB,IAAoBhP,EAAO7jB,GAChC,GAAI8yB,GAAUJ,EACd,OAAO,SAASK,KAEA,OADF/yB,EAAGC,MAAM,KAAMC,YAErB4yB,EAAQF,KAAK/O,EAAOkP,IAIhC,QAASP,IAAyBrW,EAAIgT,EAAW6D,GAC7CN,GAAWvW,EACXoH,GAAgB4L,EAAW6D,MAAoBP,GAAOE,GAAUE,GAAqB1W,GACrFuW,OAAWjxB,GA6Ff,QAASwxB,IAAkB9W,GACvB,GAAI+W,GAAqBC,EAEzB,OADAA,IAAiBhX,EACV,WACHgX,GAAiBD,GAGzB,QAASE,IAAcjX,GACnB,GAAIxb,GAAUwb,EAAGyK,SAEbtiB,EAAS3D,EAAQ2D,MACrB,IAAIA,IAAW3D,EAAQ0yB,SAAU,CAC7B,KAAO/uB,EAAOsiB,SAASyM,UAAY/uB,EAAOyrB,SACtCzrB,EAASA,EAAOyrB,OAEpBzrB,GAAOgvB,UAAU9mB,KAAK2P,GAE1BA,EAAG4T,QAAUzrB,EACb6X,EAAGoX,MAAQjvB,EAASA,EAAOivB,MAAQpX,EACnCA,EAAGmX,aACHnX,EAAGqX,SACHrX,EAAGsX,UAAYnvB,EAASA,EAAOmvB,UAAYnuB,OAAOwF,OAAO,MACzDqR,EAAGuX,SAAW,KACdvX,EAAGwX,UAAY,KACfxX,EAAGyX,iBAAkB,EACrBzX,EAAG0X,YAAa,EAChB1X,EAAG2X,cAAe,EAClB3X,EAAG4X,mBAAoB,EAmF3B,QAASC,IAAe7X,EAAIhM,EAAI8jB,GAC5B9X,EAAG+X,IAAM/jB,EACJgM,EAAGyK,SAAS/iB,SAEbsY,EAAGyK,SAAS/iB,OAASoiB,GAGZ9J,EAAGyK,SAASuN,UAA+C,MAAnChY,EAAGyK,SAASuN,SAASthB,OAAO,IACrDsJ,EAAGyK,SAASzW,IACZA,EACAsP,GAAO,wLAEsDtD,GAG7DsD,GAAO,sEAAuEtD,IAI1FiY,GAAWjY,EAAI,cACf,IAAIkY,EAGAA,GADAhO,GAAOiO,aAAeC,GACJ,WACd,GAAItxB,GAAOkZ,EAAGqY,MACVvM,EAAK9L,EAAGsY,KACRC,EAAW,kBAAkB3vB,OAAOkjB,GACpC0M,EAAS,gBAAgB5vB,OAAOkjB,EACpCsM,IAAKG,EACL,IAAIhY,GAAQP,EAAGyY,SACfL,IAAKI,GACLE,GAAQ,OAAO9vB,OAAO9B,EAAM,WAAYyxB,EAAUC,GAClDJ,GAAKG,GACLvY,EAAG2Y,QAAQpY,EAAOuX,GAClBM,GAAKI,GACLE,GAAQ,OAAO9vB,OAAO9B,EAAM,UAAWyxB,EAAUC,IAInC,WACdxY,EAAG2Y,QAAQ3Y,EAAGyY,UAAWX,GAGjC,IAAIc,IACAC,OAAQ,WACA7Y,EAAG0X,aAAe1X,EAAG2X,cACrBM,GAAWjY,EAAI,iBAKvB4Y,GAAejS,QAAU,SAAUjb,GAAK,MAAOusB,IAAWjY,EAAI,iBAAkBtU,KAChFktB,EAAehS,UAAY,SAAUlb,GAAK,MAAOusB,IAAWjY,EAAI,mBAAoBtU,KAKxF,GAAI+a,IAAQzG,EAAIkY,EAAiB7iB,EAAMujB,GAAgB,GACvDd,GAAY,CAEZ,IAAIgB,GAAc9Y,EAAG+Y,YACrB,IAAID,EACA,IAAK,GAAIjpB,GAAI,EAAGA,EAAIipB,EAAYxuB,OAAQuF,IACpCipB,EAAYjpB,GAAGmpB,KASvB,OAJiB,OAAbhZ,EAAG/X,SACH+X,EAAG0X,YAAa,EAChBO,GAAWjY,EAAI,YAEZA,EAEX,QAASiZ,IAAqBjZ,EAAIkZ,EAAWlG,EAAWQ,EAAa2F,GAE7DpF,IAA2B,CAO/B,IAAIqF,GAAiB5F,EAAY/S,KAAKuJ,YAClCqP,EAAiBrZ,EAAGyL,aACpB6N,KAA2BF,IAAmBA,EAAejL,SAC5DkL,IAAmB5I,KAAgB4I,EAAelL,SAClDiL,GAAkBpZ,EAAGyL,aAAa2C,OAASgL,EAAehL,OACzDgL,GAAkBpZ,EAAGyL,aAAa2C,MAIpCmL,KAAsBJ,GACtBnZ,EAAGyK,SAASkJ,iBACZ2F,GACAE,EAAYxZ,EAAG/X,MACnB+X,GAAGyK,SAASgJ,aAAeD,EAC3BxT,EAAG/X,OAASurB,EACRxT,EAAGuT,SAEHvT,EAAGuT,OAAOprB,OAASqrB,GAEvBxT,EAAGyK,SAASkJ,gBAAkBwF,CAI9B,IAAI5Q,GAAQiL,EAAY/S,KAAK8H,OAASkI,EAClCzQ,GAAG0R,aAGCC,GAAe3R,EAAG0R,YAAanJ,EAAQiR,EAAU/Y,MAAQ+Y,EAAU/Y,KAAK8H,OAAUkI,GAAazQ,EAAI,YACnGuZ,GAAmB,GAG3BvZ,EAAG4R,OAASrJ,EAEZyK,EAAYA,GAAavC,EACzB,IAAIgJ,GAAgBzZ,EAAGyK,SAASuJ,gBAOhC,IANIhU,EAAG6R,iBACHF,GAAe3R,EAAG6R,gBAAiBmB,EAAWyG,GAAiBhJ,GAAazQ,EAAI,cAEpFA,EAAG8R,WAAa9R,EAAGyK,SAASuJ,iBAAmBhB,EAC/CqD,GAAyBrW,EAAIgT,EAAWyG,GAEpCP,GAAalZ,EAAGyK,SAASnC,MAAO,CAChC1G,GAAgB,EAGhB,KAAK,GAFD0G,GAAQtI,EAAGqR,OACXqI,EAAW1Z,EAAGyK,SAASkP,cAClB9pB,EAAI,EAAGA,EAAI6pB,EAASpvB,OAAQuF,IAAK,CACtC,GAAIlL,GAAM+0B,EAAS7pB,GACfwY,EAAcrI,EAAGyK,SAASnC,KAC9BA,GAAM3jB,GAAOi1B,GAAaj1B,EAAK0jB,EAAa6Q,EAAWlZ,GAE3D4B,GAAgB,GAEhB5B,EAAGyK,SAASyO,UAAYA,EAGxBK,IACAvZ,EAAG0L,OAASkE,GAAauJ,EAAgB3F,EAAYxrB,SACrDgY,EAAGuV,gBAGHxB,IAA2B,EAGnC,QAAS8F,IAAiB7Z,GACtB,KAAOA,IAAOA,EAAKA,EAAG4T,UAClB,GAAI5T,EAAGwX,UACH,OAAO,CAEf,QAAO,EAEX,QAASsC,IAAuB9Z,EAAI+Z,GAChC,GAAIA,GAEA,GADA/Z,EAAGyX,iBAAkB,EACjBoC,GAAiB7Z,GACjB,WAGH,IAAIA,EAAGyX,gBACR,MAEJ,IAAIzX,EAAGwX,WAA8B,OAAjBxX,EAAGwX,UAAoB,CACvCxX,EAAGwX,WAAY,CACf,KAAK,GAAI3nB,GAAI,EAAGA,EAAImQ,EAAGmX,UAAU7sB,OAAQuF,IACrCiqB,GAAuB9Z,EAAGmX,UAAUtnB,GAExCooB,IAAWjY,EAAI,cAGvB,QAASga,IAAyBha,EAAI+Z,GAClC,KAAIA,IACA/Z,EAAGyX,iBAAkB,EACjBoC,GAAiB7Z,KAIpBA,EAAGwX,WAAW,CACfxX,EAAGwX,WAAY,CACf,KAAK,GAAI3nB,GAAI,EAAGA,EAAImQ,EAAGmX,UAAU7sB,OAAQuF,IACrCmqB,GAAyBha,EAAGmX,UAAUtnB,GAE1CooB,IAAWjY,EAAI,gBAGvB,QAASiY,IAAWjY,EAAIjY,EAAMkyB,EAAMC,OACb,KAAfA,IAAyBA,GAAa,GAE1C3Y,GACA,IAAI+Q,GAAOzS,EACXqa,IAAcna,EAAmBC,EACjC,IAAIma,GAAWna,EAAGyK,SAAS1iB,GACvBqyB,EAAO,GAAGxxB,OAAOb,EAAM,QAC3B,IAAIoyB,EACA,IAAK,GAAItqB,GAAI,EAAGkK,EAAIogB,EAAS7vB,OAAQuF,EAAIkK,EAAGlK,IACxCsX,GAAwBgT,EAAStqB,GAAImQ,EAAIia,GAAQ,KAAMja,EAAIoa,EAG/Dpa,GAAGoW,eACHpW,EAAGkS,MAAM,QAAUnqB,GAEvBmyB,GAAcna,EAAmBuS,GACjC5Q,IAcJ,QAAS2Y,MACLC,GAAUC,GAAMjwB,OAASkwB,GAAkBlwB,OAAS,EACpDmK,MAEIgmB,MAEJC,GAAUC,IAAW,EAyCzB,QAASC,MACLC,GAAwBC,KACxBH,IAAW,CACX,IAAInU,GAASsF,CAYb,KAHAyO,GAAMQ,KAAKC,IAGNV,GAAU,EAAGA,GAAUC,GAAMjwB,OAAQgwB,KAStC,GARA9T,EAAU+T,GAAMD,IACZ9T,EAAQqS,QACRrS,EAAQqS,SAEZ/M,EAAKtF,EAAQsF,GACbrX,GAAIqX,GAAM,KACVtF,EAAQwS,MAEO,MAAXvkB,GAAIqX,KACJ2O,GAAS3O,IAAO2O,GAAS3O,IAAO,GAAK,EACjC2O,GAAS3O,GAAMmP,IAAkB,CACjC3X,GAAO,yCACFkD,EAAQ0U,KACH,+BAAgCtyB,OAAO4d,EAAQ2U,WAAY,KAC3D,mCAAoC3U,EAAQxG,GACtD,OAKZ,GAAIob,GAAiBZ,GAAkBlvB,QACnC+vB,EAAed,GAAMjvB,OACzB+uB,MAEAiB,GAAmBF,GACnBG,GAAiBF,GACjBG,KAGIC,IAAYvR,GAAOuR,UACnBA,GAASzJ,KAAK,SAGtB,QAASuJ,IAAiBhB,GAEtB,IADA,GAAI1qB,GAAI0qB,EAAMjwB,OACPuF,KAAK,CACR,GAAI2W,GAAU+T,EAAM1qB,GAChBmQ,EAAKwG,EAAQxG,EACbA,IAAMA,EAAGuX,WAAa/Q,GAAWxG,EAAG0X,aAAe1X,EAAG2X,cACtDM,GAAWjY,EAAI,YAQ3B,QAAS0b,IAAwB1b,GAG7BA,EAAGwX,WAAY,EACfgD,GAAkBnqB,KAAK2P,GAE3B,QAASsb,IAAmBf,GACxB,IAAK,GAAI1qB,GAAI,EAAGA,EAAI0qB,EAAMjwB,OAAQuF,IAC9B0qB,EAAM1qB,GAAG2nB,WAAY,EACrBsC,GAAuBS,EAAM1qB,IAAI,GAQzC,QAAS8rB,IAAanV,GAClB,GAAIsF,GAAKtF,EAAQsF,EACjB,IAAe,MAAXrX,GAAIqX,KAGJtF,IAAY/E,GAAI/c,SAAU8hB,EAAQoV,WAAtC,CAIA,GADAnnB,GAAIqX,IAAM,EACL6O,GAGA,CAID,IADA,GAAI9qB,GAAI0qB,GAAMjwB,OAAS,EAChBuF,EAAIyqB,IAAWC,GAAM1qB,GAAGic,GAAKtF,EAAQsF,IACxCjc,GAEJ0qB,IAAMnd,OAAOvN,EAAI,EAAG,EAAG2W,OATvB+T,IAAMlqB,KAAKmW,EAYf,KAAKkU,GAAS,CAEV,GADAA,IAAU,GACLxQ,GAAO2R,MAER,WADAjB,KAGJkB,IAASlB,MASjB,QAASmB,IAAYlV,EAAQriB,GACzB,MAAOw3B,IAAQnV,EAAQ,KAAMriB,GAEjC,QAASy3B,IAAgBpV,EAAQriB,GAC7B,MAAOw3B,IAAQnV,EAAQ,KAAOqV,GAASA,MAAa13B,IAAY23B,MAAO,UAE3E,QAASC,IAAgBvV,EAAQriB,GAC7B,MAAOw3B,IAAQnV,EAAQ,KAAOqV,GAASA,MAAa13B,IAAY23B,MAAO,UAK3E,QAASE,IAAM53B,EAAQ63B,EAAI93B,GAMvB,MALkB,kBAAP83B,IACPhZ,GAAO,gLAIJ0Y,GAAQv3B,EAAQ63B,EAAI93B,GAE/B,QAASw3B,IAAQv3B,EAAQ63B,EAAI/W,GACzB,GAAI8J,OAAY,KAAP9J,EAAgBkL,GAAclL,EAAIgX,EAAYlN,EAAGkN,UAAWC,EAAOnN,EAAGmN,KAAM/O,EAAK4B,EAAG8M,MAAOA,MAAe,KAAP1O,EAAgB,MAAQA,EAAI9G,EAAU0I,EAAG1I,QAASC,EAAYyI,EAAGzI,SACxK0V,SACiBh3B,KAAdi3B,GACAjZ,GAAO,gHAGEhe,KAATk3B,GACAlZ,GAAO,uGAIf,IASIV,GATA6Z,EAAoB,SAAUC,GAC9BpZ,GAAO,yBAAyB1a,OAAO8zB,EAAG,iDACtC,oEAEJnK,EAAW1S,GACXnc,EAAO,SAAUG,EAAI2D,EAAMyyB,GAE3B,WADa,KAATA,IAAmBA,EAAO,MACvB9S,GAAwBtjB,EAAI,KAAMo2B,EAAM1H,EAAU/qB,IAGzDm1B,GAAe,EACfC,GAAgB,CAsDpB,IArDIta,GAAM7d,IACNme,EAAS,WAAc,MAAOne,GAAOW,OACrCu3B,EAAezY,EAAUzf,IAEpBwf,EAAWxf,IAChBme,EAAS,WAEL,MADAne,GAAOwd,OAAOS,IAAIM,SACXve,GAEX+3B,GAAO,GAEF7vB,GAAQlI,IACbm4B,GAAgB,EAChBD,EAAel4B,EAAOmN,KAAK,SAAU8qB,GAAK,MAAOzY,GAAWyY,IAAMxY,EAAUwY,KAC5E9Z,EAAS,WACL,MAAOne,GAAOiN,IAAI,SAAUgrB,GACxB,MAAIpa,IAAMoa,GACCA,EAAEt3B,MAEJ6e,EAAWyY,GACT3R,GAAS2R,GAEX5gB,EAAW4gB,GACTh5B,EAAKg5B,EAAGG,QAGfJ,GAAkBC,OAKzB5gB,EAAWrX,GAGZme,EAFA0Z,EAES,WAAc,MAAO54B,GAAKe,EAAQo4B,KAIlC,WACL,IAAItK,IAAYA,EAASoF,aAMzB,MAHImF,IACAA,IAEGp5B,EAAKe,EAAQs4B,IAAUC,MAKtCpa,EAASvN,EACTonB,EAAkBh4B,IAElB63B,GAAME,EAAM,CACZ,GAAIS,GAAera,CACnBA,GAAS,WAAc,MAAOmI,IAASkS,MAE3C,GAAIH,GACAE,EAAY,SAAUn5B,GACtBi5B,EAAUtW,EAAQ0W,OAAS,WACvBx5B,EAAKG,EAAIs5B,KAKjB,IAAIhb,KAaA,MAXA6a,GAAY3nB,EACPinB,EAGIC,GACL74B,EAAK44B,EAAIc,IACLxa,IACAga,SAAqBt3B,GACrB03B,IANJpa,IASGvN,CAEX,IAAImR,GAAU,GAAIC,IAAQ5G,GAAiB+C,EAAQvN,GAC/CqR,MAAM,GAEVF,GAAQoV,WAAaU,CACrB,IAAIjZ,GAAWuZ,KAAqBS,EA0EpC,OAxEA7W,GAAQwS,IAAM,WACV,GAAKxS,EAAQ8W,OAGb,GAAIhB,EAAI,CAEJ,GAAIlZ,GAAWoD,EAAQnd,OACnBmzB,GACAG,IACCC,EACKxZ,EAASxR,KAAK,SAAU6J,EAAG5L,GACzB,MAAOoP,GAAWxD,EAAG4H,EAASxT,MAEhCoP,EAAWmE,EAAUC,OAEvByZ,GACAA,IAEJp5B,EAAK44B,EAAIc,IACLha,EAEAC,IAAaga,OAAwB/3B,GAAY+d,EACjD2Z,IAEJ3Z,EAAWD,OAKfoD,GAAQnd,OAGF,SAAV8yB,EACA3V,EAAQ+W,OAAS/W,EAAQwS,IAEV,SAAVmD,GACL3V,EAAQgX,MAAO,EACfhX,EAAQ+W,OAAS,WAAc,MAAO5B,IAAanV,KAInDA,EAAQ+W,OAAS,WACb,GAAIhL,GAAYA,IAAa1S,KAAoB0S,EAASmF,WAAY,CAElE,GAAI+F,GAASlL,EAASwG,eAAiBxG,EAASwG,gBAC5C0E,GAAOtpB,QAAQqS,GAAW,GAC1BiX,EAAOptB,KAAKmW,OAGhBmV,IAAanV,IAKrBA,EAAQG,QAAUA,EAClBH,EAAQI,UAAYA,EAGpB0V,EACIC,EACA/V,EAAQwS,MAGR3V,EAAWmD,EAAQnd,MAGR,SAAV8yB,GAAoB5J,EACzBA,EAASmL,MAAM,eAAgB,WAAc,MAAOlX,GAAQnd,QAG5Dmd,EAAQnd,MAEL,WACHmd,EAAQmX,YAqFhB,QAASC,IAAYC,GACjB,MAAO,IAAIC,IAAYD,GAK3B,QAASE,IAAkBlX,EAAQmX,OACjB,KAAVA,IAAoBA,EAAQC,IAC5BD,GAASA,EAAMV,QACfU,EAAME,QAAQ7tB,KAAKwW,GAG3B,QAASsX,MACL,MAAOF,IAEX,QAASG,IAAev6B,GAChBo6B,GACAA,GAAkBI,SAAShuB,KAAKxM,GAGhCyf,GAAO,0FAKf,QAASgb,IAAQ35B,EAAKS,GACbya,GAOD0e,GAAgB1e,IAAiBlb,GAAOS,EALpCke,GAAO,8CAQnB,QAASib,IAAgBve,GAMrB,GAAIxX,GAAWwX,EAAGsX,UACdkH,EAAiBxe,EAAG4T,SAAW5T,EAAG4T,QAAQ0D,SAC9C,OAAIkH,KAAmBh2B,EACXwX,EAAGsX,UAAYnuB,OAAOwF,OAAO6vB,GAG9Bh2B,EAGf,QAASi2B,IAAO95B,EAAK+gB,EAAcgZ,OACD,KAA1BA,IAAoCA,GAAwB,EAGhE,IAAInM,GAAW1S,EACf,IAAI0S,EAAU,CAIV,GAAIoM,GAAWpM,EAASqB,SAAWrB,EAASqB,QAAQ0D,SACpD,IAAIqH,GAAYh6B,IAAOg6B,GAEnB,MAAOA,GAASh6B,EAEf,IAAIZ,UAAUuG,OAAS,EACxB,MAAOo0B,IAAyB5iB,EAAW4J,GACrCA,EAAahiB,KAAK6uB,GAClB7M,CAGNpC,IAAO,cAAe1a,OAAOG,OAAOpE,GAAM,qBAI9C2e,IAAO,sEAQf,QAAS3a,IAAEnB,EAAM8gB,EAAO5H,GAKpB,MAJKb,KACDyD,GAAO,uJAGJmG,GAAgB5J,GAAiBrY,EAAM8gB,EAAO5H,EAAU,GAAG,GAGtE,QAASke,IAAYC,EAAK7e,EAAIoa,GAG1B7Y,GACA,KACI,GAAIvB,EAEA,IADA,GAAIwH,GAAMxH,EACFwH,EAAMA,EAAIoM,SAAU,CACxB,GAAIkL,GAAQtX,EAAIiD,SAASsU,aACzB,IAAID,EACA,IAAK,GAAIjvB,GAAI,EAAGA,EAAIivB,EAAMx0B,OAAQuF,IAC9B,IACI,GAAI+X,IAAgD,IAAtCkX,EAAMjvB,GAAGnM,KAAK8jB,EAAKqX,EAAK7e,EAAIoa,EAC1C,IAAIxS,EACA,OAER,MAAOlc,GACHszB,GAAkBtzB,EAAG8b,EAAK,uBAM9CwX,GAAkBH,EAAK7e,EAAIoa,GAE/B,QACI1Y,KAGR,QAASyF,IAAwB8X,EAASj3B,EAASiyB,EAAMja,EAAIoa,GACzD,GAAIzf,EACJ,KACIA,EAAMsf,EAAOgF,EAAQn7B,MAAMkE,EAASiyB,GAAQgF,EAAQv7B,KAAKsE,GACrD2S,IAAQA,EAAI8I,QAAUjH,EAAU7B,KAASA,EAAIukB,WAC7CvkB,EAAI+B,MAAM,SAAUhR,GAAK,MAAOkzB,IAAYlzB,EAAGsU,EAAIoa,EAAO,sBAC1Dzf,EAAIukB,UAAW,GAGvB,MAAOxzB,GACHkzB,GAAYlzB,EAAGsU,EAAIoa,GAEvB,MAAOzf,GAEX,QAASqkB,IAAkBH,EAAK7e,EAAIoa,GAChC,GAAIlQ,GAAOiV,aACP,IACI,MAAOjV,IAAOiV,aAAaz7B,KAAK,KAAMm7B,EAAK7e,EAAIoa,GAEnD,MAAO1uB,GAGCA,IAAMmzB,GACNO,GAAS1zB,EAAG,KAAM,uBAI9B0zB,GAASP,EAAK7e,EAAIoa,GAEtB,QAASgF,IAASP,EAAK7e,EAAIoa,GAKvB,GAHI9W,GAAO,YAAY1a,OAAOwxB,EAAM,OAAQxxB,OAAOi2B,EAAIzzB,WAAY,KAAO4U,IAGtEqf,IAAgC,mBAAZC,SAIpB,KAAMT,EAHNS,SAAQl8B,MAAMy7B,GAWtB,QAASU,MACLC,IAAU,CACV,IAAIC,GAASC,GAAUp0B,MAAM,EAC7Bo0B,IAAUp1B,OAAS,CACnB,KAAK,GAAIuF,GAAI,EAAGA,EAAI4vB,EAAOn1B,OAAQuF,IAC/B4vB,EAAO5vB,KAyEf,QAASisB,IAASQ,EAAI9e,GAClB,GAAImiB,EAmBJ,IAlBAD,GAAUrvB,KAAK,WACX,GAAIisB,EACA,IACIA,EAAG54B,KAAK8Z,GAEZ,MAAO9R,GACHkzB,GAAYlzB,EAAG8R,EAAK,gBAGnBmiB,IACLA,EAASniB,KAGZgiB,KACDA,IAAU,EACVI,OAGCtD,GAAyB,mBAAZuD,SACd,MAAO,IAAIA,SAAQ,SAAUpK,GACzBkK,EAAWlK,IAKvB,QAASqK,IAAah5B,GAMd,MAFIwc,IAAO,wDAEJmN,GAQf,QAASsP,IAAWnd,GAChB,GAAKyc,GAAL,CAEA,GAAI9M,GAAW1S,EACf,KAAK0S,EAED,WADAjP,IAAO,kEAGX2Y,IAAgB,WACZ,GAAIjoB,GAAKue,EAASwF,IACdiI,EAAOpd,EAAO2P,EAAUA,EAASf,YACrC,IAAIxd,GAAsB,IAAhBA,EAAGisB,SAAgB,CACzB,GAAIjyB,GAAQgG,EAAGhG,KACf,KAAK,GAAIrJ,KAAOq7B,GACZhyB,EAAMkyB,YAAY,KAAKt3B,OAAOjE,GAAMq7B,EAAKr7B,QAWzD,QAASw7B,IAAqB17B,GACtBqX,EAAWrX,KACXA,GAAW27B,OAAQ37B,GAEvB,IAAI27B,GAAS37B,EAAO27B,OAAQC,EAAmB57B,EAAO47B,iBAAkBC,EAAiB77B,EAAO67B,eAAgB/a,EAAK9gB,EAAOqxB,MAAOA,MAAe,KAAPvQ,EAAgB,IAAMA,EAAIyQ,EAAUvxB,EAAOuxB,QACtL3G,EAAK5qB,EAAO87B,YACZA,MAAqB,KAAPlR,GAAwBA,EACtCmR,EAAc/7B,EAAOg8B,OACjBF,IACAjd,GAAO,wFAEX,IAAIod,GAAiB,KACjBC,EAAU,EACVC,EAAQ,WAGR,MAFAD,KACAD,EAAiB,KACVG,KAEPA,EAAO,WACP,GAAIC,EACJ,OAAQJ,KACHI,EAAcJ,EACXN,IACK1jB,MAAM,SAAUmiB,GAEjB,GADAA,EAAMA,YAAekC,OAAQlC,EAAM,GAAIkC,OAAMh4B,OAAO81B,IAChD2B,EACA,MAAO,IAAIX,SAAQ,SAAUpK,EAASuL,GAGlCR,EAAY3B,EAFI,WAAc,MAAOpJ,GAAQmL,MAC9B,WAAc,MAAOI,GAAOnC,IACL8B,EAAU,IAIpD,MAAM9B,KAGTpiB,KAAK,SAAUyX,GAChB,GAAI4M,IAAgBJ,GAAkBA,EAClC,MAAOA,EAWX,IATKxM,GACD5Q,GAAO,iHAIP4Q,IACCA,EAAKE,YAA2C,WAA7BF,EAAKxtB,OAAO2tB,gBAChCH,EAAOA,EAAKzsB,SAEZysB,IAASrrB,EAASqrB,KAAUpY,EAAWoY,GACvC,KAAM,IAAI6M,OAAM,wCAAwCn4B,OAAOsrB,GAEnE,OAAOA,MAGvB,OAAO,YAEH,OACI2B,UAFYgL,IAGZ/K,MAAOA,EACPE,QAASA,EACT5yB,MAAOk9B,EACPxL,QAASuL,IAKrB,QAASY,IAAgBC,GACrB,MAAO,UAAUr9B,EAAIa,GAEjB,WADe,KAAXA,IAAqBA,EAASmb,IAC7Bnb,EAMEy8B,GAAWz8B,EAAQw8B,EAAUr9B,OALhCyf,IAAO,GAAG1a,OAAOw4B,GAAWF,GAAW,gEAC/B,4FAOpB,QAASE,IAAWt6B,GAOhB,MANa,kBAATA,EACAA,EAAO,gBAEO,cAATA,IACLA,EAAO,aAEJ,KAAK8B,OAAO9B,EAAK,GAAGu6B,cAAgBv6B,EAAKwE,MAAM,IAE1D,QAAS61B,IAAW5O,EAAU2O,EAAUr9B,GACpC,GAAIW,GAAU+tB,EAAS9H,QACvBjmB,GAAQ08B,GAAYI,GAAmB98B,EAAQ08B,GAAWr9B,GAc9D,QAAS09B,IAAgBx5B,EAAMrD,OACZ,KAAXA,IAAqBA,EAASmb,IAClC2hB,GAAwBz5B,EAAMrD,GAUlC,QAAS+8B,IAAgBj9B,GACrB,MAAOA,GAqEX,QAASumB,IAAS3O,GAGd,MAFAslB,IAAUtlB,EAAKulB,IACfA,GAAYC,QACLxlB,EAEX,QAASslB,IAAUtlB,EAAKylB,GACpB,GAAIhyB,GAAGkI,EACH+pB,EAAMn1B,GAAQyP,EAClB,OAAM0lB,IAAQj5B,EAASuT,IACnBA,EAAIiG,UACJlZ,OAAO44B,SAAS3lB,IAChBA,YAAeiE,KAHnB,CAMA,GAAIjE,EAAI6F,OAAQ,CACZ,GAAI+f,GAAQ5lB,EAAI6F,OAAOS,IAAIoJ,EAC3B,IAAI+V,EAAKptB,IAAIutB,GACT,MAEJH,GAAKv5B,IAAI05B,GAEb,GAAIF,EAEA,IADAjyB,EAAIuM,EAAI9R,OACDuF,KACH6xB,GAAUtlB,EAAIvM,GAAIgyB,OAErB,IAAIvf,GAAMlG,GACXslB,GAAUtlB,EAAIhX,MAAOy8B,OAKrB,KAFA9pB,EAAO5O,OAAO4O,KAAKqE,GACnBvM,EAAIkI,EAAKzN,OACFuF,KACH6xB,GAAUtlB,EAAIrE,EAAKlI,IAAKgyB,IAoNpC,QAAS/hB,IAAMpb,EAAQu9B,EAAWt9B,GAC9Bu9B,GAAyB74B,IAAM,WAC3B,MAAOlD,MAAK87B,GAAWt9B,IAE3Bu9B,GAAyB1tB,IAAM,SAAqB4H,GAChDjW,KAAK87B,GAAWt9B,GAAOyX,GAE3BjT,OAAOC,eAAe1E,EAAQC,EAAKu9B,IAEvC,QAASC,IAAUniB,GACf,GAAIoiB,GAAOpiB,EAAGyK,QAOd,IANI2X,EAAK9Z,OACL+Z,GAAYriB,EAAIoiB,EAAK9Z,OAEzB0I,GAAUhR,GACNoiB,EAAKE,SACLC,GAAYviB,EAAIoiB,EAAKE,SACrBF,EAAK3hB,KACL+hB,GAASxiB,OAER,CACD,GAAIwD,GAAK1B,EAAS9B,EAAGyiB,SACrBjf,IAAMA,EAAGE,UAET0e,EAAKhc,UACLsc,GAAe1iB,EAAIoiB,EAAKhc,UACxBgc,EAAK/F,OAAS+F,EAAK/F,QAAUsG,IAC7BC,GAAU5iB,EAAIoiB,EAAK/F,OAG3B,QAASgG,IAAYriB,EAAI6iB,GACrB,GAAI3J,GAAYlZ,EAAGyK,SAASyO,cACxB5Q,EAAStI,EAAGqR,OAASvN,MAGrB/L,EAAQiI,EAAGyK,SAASkP,aACpBmJ,GAAU9iB,EAAG4T,OAEZkP,IACDlhB,GAAgB,EA4BpB,KAAK,GAAIjd,KAAOk+B,IA1BF,SAAUl+B,GACpBoT,EAAK1H,KAAK1L,EACV,IAAIS,GAAQw0B,GAAaj1B,EAAKk+B,EAAc3J,EAAWlZ,GAG/CkN,EAAgBzE,GAAU9jB,IAC1BkoB,GAAoBK,IACpBhD,GAAO6Y,eAAe7V,KACtB5J,GAAO,IAAK1a,OAAOskB,EAAe,mEAAqElN,GAE3GuC,EAAe+F,EAAO3jB,EAAKS,EAAO,WACzB09B,GAAW/O,IACZzQ,GAAO,6KAGH,+BAAgC1a,OAAOjE,EAAK,KAAOqb,KAO7Drb,IAAOqb,IACTF,GAAME,EAAI,SAAUrb,IAIhBA,EAEZid,IAAgB,GAEpB,QAAS4gB,IAASxiB,GACd,GAAIS,GAAOT,EAAGyK,SAAShK,IACvBA,GAAOT,EAAGyiB,MAAQ3mB,EAAW2E,GAAQuiB,GAAQviB,EAAMT,GAAMS,MACpDxE,EAAcwE,KACfA,KACA6C,GAAO,iHAC0EtD,GAOrF,KAJA,GAAIjI,GAAO5O,OAAO4O,KAAK0I,GACnB6H,EAAQtI,EAAGyK,SAASnC,MACpBga,EAAUtiB,EAAGyK,SAAS6X,QACtBzyB,EAAIkI,EAAKzN,OACNuF,KAAK,CACR,GAAIlL,GAAMoT,EAAKlI,EAEPyyB,IAAWj8B,EAAOi8B,EAAS39B,IAC3B2e,GAAO,WAAY1a,OAAOjE,EAAK,kDAAoDqb,GAGvFsI,GAASjiB,EAAOiiB,EAAO3jB,GACvB2e,GAAO,sBAAuB1a,OAAOjE,EAAK,qCAClC,kCAAmCqb,GAErCZ,EAAWza,IACjBmb,GAAME,EAAI,QAASrb,GAI3B,GAAI6e,GAAK1B,EAAQrB,EACjB+C,IAAMA,EAAGE,UAEb,QAASsf,IAAQviB,EAAMT,GAEnBuB,GACA,KACI,MAAOd,GAAK/c,KAAKsc,EAAIA,GAEzB,MAAOtU,GAEH,MADAkzB,IAAYlzB,EAAGsU,EAAI,aAGvB,QACI0B,KAIR,QAASghB,IAAe1iB,EAAIoG,GAExB,GAAI6c,GAAYjjB,EAAGkjB,kBAAoB/5B,OAAOwF,OAAO,MAEjDw0B,EAAQhhB,IACZ,KAAK,GAAIxd,KAAOyhB,GAAU,CACtB,GAAIgd,GAAUhd,EAASzhB,GACnBie,EAAS9G,EAAWsnB,GAAWA,EAAUA,EAAQ/5B,GACvC,OAAVuZ,GACAU,GAAO,4CAA6C1a,OAAOjE,EAAK,MAAQqb,GAEvEmjB,IAEDF,EAASt+B,GAAO,GAAI8hB,IAAQzG,EAAI4C,GAAUvN,EAAMA,EAAMguB,KAKpD1+B,IAAOqb,GAILrb,IAAOqb,GAAGsjB,MACVhgB,GAAO,0BAA2B1a,OAAOjE,EAAK,iCAAmCqb,GAE5EA,EAAGyK,SAASnC,OAAS3jB,IAAOqb,GAAGyK,SAASnC,MAC7ChF,GAAO,0BAA2B1a,OAAOjE,EAAK,mCAAqCqb,GAE9EA,EAAGyK,SAAS6X,SAAW39B,IAAOqb,GAAGyK,SAAS6X,SAC/Chf,GAAO,0BAA2B1a,OAAOjE,EAAK,qCAAuCqb,GAVzFujB,GAAevjB,EAAIrb,EAAKy+B,IAepC,QAASG,IAAe7+B,EAAQC,EAAKy+B,GACjC,GAAII,IAAerhB,IACfrG,GAAWsnB,IACXlB,GAAyB74B,IAAMm6B,EACzBC,GAAqB9+B,GACrB++B,GAAoBN,GAC1BlB,GAAyB1tB,IAAMa,IAG/B6sB,GAAyB74B,IAAM+5B,EAAQ/5B,IACjCm6B,IAAiC,IAAlBJ,EAAQ9lB,MACnBmmB,GAAqB9+B,GACrB++B,GAAoBN,EAAQ/5B,KAChCgM,EACN6sB,GAAyB1tB,IAAM4uB,EAAQ5uB,KAAOa,GAE9C6sB,GAAyB1tB,MAAQa,IACjC6sB,GAAyB1tB,IAAM,WAC3B8O,GAAO,sBAAuB1a,OAAOjE,EAAK,2CAA6CwB,QAG/FgD,OAAOC,eAAe1E,EAAQC,EAAKu9B,IAEvC,QAASuB,IAAqB9+B,GAC1B,MAAO,YACH,GAAI6hB,GAAUrgB,KAAK+8B,mBAAqB/8B,KAAK+8B,kBAAkBv+B,EAC/D,IAAI6hB,EAeA,MAdIA,GAAQM,OACRN,EAAQO,WAERtF,GAAI/c,SACA+c,GAAI/c,OAAOiiB,SACXlF,GAAI/c,OAAOiiB,SACPE,OAAQpF,GAAI/c,OACZA,OAAQyB,KACRqB,KAAM,MACN7C,IAAKA,IAGb6hB,EAAQxD,UAELwD,EAAQphB,OAI3B,QAASs+B,IAAoB7/B,GACzB,MAAO,YACH,MAAOA,GAAGH,KAAKyC,KAAMA,OAG7B,QAASo8B,IAAYviB,EAAIsiB,GACrB,GAAIha,GAAQtI,EAAGyK,SAASnC,KACxB,KAAK,GAAI3jB,KAAO29B,GAEoB,kBAAjBA,GAAQ39B,IACf2e,GAAO,WAAY1a,OAAOjE,EAAK,gBAAkBiE,aAAc05B,GAAQ39B,GAAM,mCACzE,4CAA6Cqb,GAEjDsI,GAASjiB,EAAOiiB,EAAO3jB,IACvB2e,GAAO,WAAY1a,OAAOjE,EAAK,yCAA2Cqb,GAE1Erb,IAAOqb,IAAMZ,EAAWza,IACxB2e,GAAO,WAAY1a,OAAOjE,EAAK,sDAC3B,4DAGZqb,EAAGrb,GAA+B,kBAAjB29B,GAAQ39B,GAAsB0Q,EAAO4c,GAAOqQ,EAAQ39B,GAAMqb,GAGnF,QAAS4iB,IAAU5iB,EAAIqc,GACnB,IAAK,GAAI13B,KAAO03B,GAAO,CACnB,GAAI4C,GAAU5C,EAAM13B,EACpB,IAAIgI,GAAQsyB,GACR,IAAK,GAAIpvB,GAAI,EAAGA,EAAIovB,EAAQ30B,OAAQuF,IAChC8zB,GAAc3jB,EAAIrb,EAAKs6B,EAAQpvB,QAInC8zB,IAAc3jB,EAAIrb,EAAKs6B,IAInC,QAAS0E,IAAc3jB,EAAI4jB,EAAS3E,EAASz6B,GAQzC,MAPIyX,GAAcgjB,KACdz6B,EAAUy6B,EACVA,EAAUA,EAAQA,SAEC,gBAAZA,KACPA,EAAUjf,EAAGif,IAEVjf,EAAG6jB,OAAOD,EAAS3E,EAASz6B,GA+CvC,QAASs/B,IAAY9jB,GACjB,GAAI+jB,GAAgB/jB,EAAGyK,SAAS6T,OAChC,IAAIyF,EAAe,CACf,GAAIC,GAAWloB,EAAWioB,GACpBA,EAAcrgC,KAAKsc,GACnB+jB,CACN,KAAKl7B,EAASm7B,GACV,MAMJ,KAAK,GAJDv/B,GAAS85B,GAAgBve,GAGzBjI,EAAOmT,GAAY+Y,QAAQnpB,QAAQkpB,GAAY76B,OAAO4O,KAAKisB,GACtDn0B,EAAI,EAAGA,EAAIkI,EAAKzN,OAAQuF,IAAK,CAClC,GAAIlL,GAAMoT,EAAKlI,EACf1G,QAAOC,eAAe3E,EAAQE,EAAKwE,OAAOlF,yBAAyB+/B,EAAUr/B,MAIzF,QAASu/B,IAAelkB,GACpB,GAAInR,GAASs1B,GAAcnkB,EAAGyK,SAASgU,OAAQze,EAC3CnR,KACA+S,GAAgB,GAChBzY,OAAO4O,KAAKlJ,GAAQ4C,QAAQ,SAAU9M,GAG9B4d,EAAevC,EAAIrb,EAAKkK,EAAOlK,GAAM,WACjC2e,GAAO,+HAEH,6BAA8B1a,OAAOjE,EAAK,KAAOqb,OAIjE4B,GAAgB,IAGxB,QAASuiB,IAAc1F,EAAQze,GAC3B,GAAIye,EAAQ,CAIR,IAAK,GAFD5vB,GAAS1F,OAAOwF,OAAO,MACvBoJ,EAAOmT,GAAY+Y,QAAQnpB,QAAQ2jB,GAAUt1B,OAAO4O,KAAK0mB,GACpD5uB,EAAI,EAAGA,EAAIkI,EAAKzN,OAAQuF,IAAK,CAClC,GAAIlL,GAAMoT,EAAKlI,EAEf,IAAY,WAARlL,EAAJ,CAEA,GAAIy/B,GAAa3F,EAAO95B,GAAK0tB,IAC7B,IAAI+R,IAAcpkB,GAAGsX,UACjBzoB,EAAOlK,GAAOqb,EAAGsX,UAAU8M,OAE1B,IAAI,WAAa3F,GAAO95B,GAAM,CAC/B,GAAI0/B,GAAiB5F,EAAO95B,GAAK8C,OACjCoH,GAAOlK,GAAOmX,EAAWuoB,GACnBA,EAAe3gC,KAAKsc,GACpBqkB,MAGN/gB,IAAO,cAAe1a,OAAOjE,EAAK,eAAiBqb,IAG3D,MAAOnR,IA4Df,QAASy1B,IAAsBtkB,EAAIxb,GAC/B,GAAI49B,GAAQpiB,EAAGyK,SAAWthB,OAAOwF,OAAOqR,EAAGhU,YAAYxH,SAEnDgvB,EAAchvB,EAAQivB,YAC1B2O,GAAKj6B,OAAS3D,EAAQ2D,OACtBi6B,EAAK3O,aAAeD,CACpB,IAAI+Q,GAAwB/Q,EAAY3S,gBACxCuhB,GAAKlJ,UAAYqL,EAAsBrL,UACvCkJ,EAAKpO,iBAAmBuQ,EAAsBvR,UAC9CoP,EAAKzO,gBAAkB4Q,EAAsB7jB,SAC7C0hB,EAAKoC,cAAgBD,EAAsBjyB,IACvC9N,EAAQkD,SACR06B,EAAK16B,OAASlD,EAAQkD,OACtB06B,EAAKz6B,gBAAkBnD,EAAQmD,iBAGvC,QAAS88B,IAA0B9kB,GAC/B,GAAInb,GAAUmb,EAAKnb,OACnB,IAAImb,EAAK+kB,MAAO,CACZ,GAAIC,GAAeF,GAA0B9kB,EAAK+kB,MAElD,IAAIC,IADqBhlB,EAAKglB,aACW,CAGrChlB,EAAKglB,aAAeA,CAEpB,IAAIC,GAAkBC,GAAuBllB,EAEzCilB,IACA3mB,EAAO0B,EAAKmlB,cAAeF,GAE/BpgC,EAAUmb,EAAKnb,QAAUugC,GAAaJ,EAAchlB,EAAKmlB,eACrDtgC,EAAQsC,OACRtC,EAAQwgC,WAAWxgC,EAAQsC,MAAQ6Y,IAI/C,MAAOnb,GAEX,QAASqgC,IAAuBllB,GAC5B,GAAIslB,GACAC,EAASvlB,EAAKnb,QACd2gC,EAASxlB,EAAKylB,aAClB,KAAK,GAAIzgC,KAAOugC,GACRA,EAAOvgC,KAASwgC,EAAOxgC,KAClBsgC,IACDA,MACJA,EAAStgC,GAAOugC,EAAOvgC,GAG/B,OAAOsgC,GAGX,QAASI,IAAwB5kB,EAAM6H,EAAO5H,EAAUvY,EAAQwX,GAC5D,GAII2lB,GAJAC,EAAQp/B,KACR3B,EAAUmb,EAAKnb,OAIf6B,GAAO8B,EAAQ,SACfm9B,EAAYn8B,OAAOwF,OAAOxG,GAC1Bm9B,EAAUE,UAAYr9B,IAMtBm9B,EAAYn9B,EAEZA,EAASA,EAAOq9B,UAEpB,IAAIC,GAAa9pB,EAAOnX,EAAQoD,WAC5B89B,GAAqBD,CACzBt/B,MAAKsa,KAAOA,EACZta,KAAKmiB,MAAQA,EACbniB,KAAKua,SAAWA,EAChBva,KAAKgC,OAASA,EACdhC,KAAK6sB,UAAYvS,EAAKN,IAAMsQ,GAC5BtqB,KAAKw/B,WAAaxB,GAAc3/B,EAAQi6B,OAAQt2B,GAChDhC,KAAK0pB,MAAQ,WAIT,MAHK0V,GAAM7Z,QACPwE,GAAqB/nB,EAAQsY,EAAKuJ,YAAcub,EAAM7Z,OAASkE,GAAalP,EAAUvY,IAEnFo9B,EAAM7Z,QAEjBviB,OAAOC,eAAejD,KAAM,eACxB2D,YAAY,EACZT,IAAK,WACD,MAAO6mB,IAAqB/nB,EAAQsY,EAAKuJ,YAAa7jB,KAAK0pB,YAI/D4V,IAEAt/B,KAAKskB,SAAWjmB,EAEhB2B,KAAKulB,OAASvlB,KAAK0pB,QACnB1pB,KAAKslB,aAAeyE,GAAqB/nB,EAAQsY,EAAKuJ,YAAa7jB,KAAKulB,SAExElnB,EAAQsD,SACR3B,KAAKsnB,GAAK,SAAU/P,EAAGU,EAAGC,EAAGwV,GACzB,GAAItT,GAAQkJ,GAAgB6b,EAAW5nB,EAAGU,EAAGC,EAAGwV,EAAG6R,EAKnD,OAJInlB,KAAU5T,GAAQ4T,KAClBA,EAAMa,UAAY5c,EAAQsD,SAC1ByY,EAAMW,UAAY/Y,GAEfoY,GAIXpa,KAAKsnB,GAAK,SAAU/P,EAAGU,EAAGC,EAAGwV,GACzB,MAAOpK,IAAgB6b,EAAW5nB,EAAGU,EAAGC,EAAGwV,EAAG6R,IAK1D,QAASE,IAA0BjmB,EAAMuZ,EAAWzY,EAAM6kB,EAAW5kB,GACjE,GAAIlc,GAAUmb,EAAKnb,QACf8jB,KACAD,EAAc7jB,EAAQ8jB,KAC1B,IAAI5M,EAAM2M,GACN,IAAK,GAAI1jB,KAAO0jB,GACZC,EAAM3jB,GAAOi1B,GAAaj1B,EAAK0jB,EAAa6Q,GAAazI,QAIzD/U,GAAM+E,EAAK8H,QACXsd,GAAWvd,EAAO7H,EAAK8H,OACvB7M,EAAM+E,EAAK6H,QACXud,GAAWvd,EAAO7H,EAAK6H,MAE/B,IAAIoL,GAAgB,GAAI2R,IAAwB5kB,EAAM6H,EAAO5H,EAAU4kB,EAAW3lB,GAC9EY,EAAQ/b,EAAQkD,OAAOhE,KAAK,KAAMgwB,EAAcjG,GAAIiG,EACxD,IAAInT,YAAiBF,IACjB,MAAOylB,IAA6BvlB,EAAOE,EAAMiT,EAAcvrB,OAAQ3D,EAASkvB,EAE/E,IAAI/mB,GAAQ4T,GAAQ,CAGrB,IAAK,GAFDwlB,GAAS9c,GAAkB1I,OAC3B5F,EAAM,GAAIjO,OAAMq5B,EAAOz7B,QAClBuF,EAAI,EAAGA,EAAIk2B,EAAOz7B,OAAQuF,IAC/B8K,EAAI9K,GAAKi2B,GAA6BC,EAAOl2B,GAAI4Q,EAAMiT,EAAcvrB,OAAQ3D,EAASkvB,EAE1F,OAAO/Y,IAGf,QAASmrB,IAA6BvlB,EAAOE,EAAM6kB,EAAW9gC,EAASkvB,GAInE,GAAIsS,GAAQ1lB,EAAWC,EAUvB,OATAylB,GAAM9kB,UAAYokB,EAClBU,EAAM7kB,UAAY3c,GAEbwhC,EAAMC,aAAeD,EAAMC,kBAAoBvS,cAC5CA,EAEJjT,EAAKkL,QACJqa,EAAMvlB,OAASulB,EAAMvlB,UAAYkL,KAAOlL,EAAKkL,MAE3Cqa,EAEX,QAASH,IAAW3nB,EAAImU,GACpB,IAAK,GAAI1tB,KAAO0tB,GACZnU,EAAG+O,GAAStoB,IAAQ0tB,EAAK1tB,GAIjC,QAASuhC,IAAiB1hC,GACtB,MAAOA,GAAQsC,MAAQtC,EAAQ2hC,QAAU3hC,EAAQggC,cA2DrD,QAAS9Z,IAAgB/K,EAAMc,EAAMzY,EAAS0Y,EAAUpO,GACpD,IAAIkJ,EAAQmE,GAAZ,CAGA,GAAI6U,GAAWxsB,EAAQyiB,SAAS2b,KAOhC,IALIv9B,EAAS8W,KACTA,EAAO6U,EAASvW,OAAO0B,IAIP,kBAATA,GAIP,WAFI2D,IAAO,iCAAiC1a,OAAOG,OAAO4W,IAAQ3X,EAKtE,IAAI8Y,EAEJ,IAAItF,EAAQmE,EAAK0mB,OACbvlB,EAAenB,MAEFra,MADbqa,EAAO4U,GAAsBzT,EAAc0T,KAKvC,MAAOF,IAAuBxT,EAAcL,EAAMzY,EAAS0Y,EAAUpO,EAG7EmO,GAAOA,MAGPgkB,GAA0B9kB,GAEtBjE,EAAM+E,EAAK6lB,QAEXC,GAAe5mB,EAAKnb,QAASic,EAIjC,IAAIyY,GAAY9Q,GAA0B3H,EAAMd,EAAMrN,EAGtD,IAAIqJ,EAAOgE,EAAKnb,QAAQqD,YACpB,MAAO+9B,IAA0BjmB,EAAMuZ,EAAWzY,EAAMzY,EAAS0Y,EAIrE,IAAIsS,GAAYvS,EAAKN,EAKrB,IAFAM,EAAKN,GAAKM,EAAK4J,SAEX1O,EAAOgE,EAAKnb,QAAQ0yB,UAAW,CAI/B,GAAIvL,GAAOlL,EAAKkL,IAChBlL,MACIkL,IACAlL,EAAKkL,KAAOA,GAIpB6a,GAAsB/lB,EAGtB,IAAI3Z,GAAOo/B,GAAiBvmB,EAAKnb,UAAY8N,CAM7C,OALY,IAAI+N,IAEhB,iBAAiBzX,OAAO+W,EAAK0mB,KAAKz9B,OAAO9B,EAAO,IAAI8B,OAAO9B,GAAQ,IAAK2Z,MAAMnb,OAAWA,OAAWA,GAAW0C,GAE7G2X,KAAMA,EAAMuZ,UAAWA,EAAWlG,UAAWA,EAAW1gB,IAAKA,EAAKoO,SAAUA,GAAYI,IAG9F,QAAS2lB,IAETlmB,EAEApY,GACI,GAAI3D,IACAkiC,cAAc,EACdjT,aAAclT,EACdpY,OAAQA,GAGRw+B,EAAiBpmB,EAAME,KAAKkmB,cAKhC,OAJIjrB,GAAMirB,KACNniC,EAAQkD,OAASi/B,EAAej/B,OAChClD,EAAQmD,gBAAkBg/B,EAAeh/B,iBAEtC,GAAI4Y,GAAMM,iBAAiBlB,KAAKnb,GAE3C,QAASgiC,IAAsB/lB,GAE3B,IAAK,GADDqe,GAAQre,EAAK1Y,OAAS0Y,EAAK1Y,SACtB8H,EAAI,EAAGA,EAAI+2B,GAAat8B,OAAQuF,IAAK,CAC1C,GAAIlL,GAAMiiC,GAAa/2B,GACnBrH,EAAWs2B,EAAMn6B,GACjBkiC,EAAUC,GAAoBniC,EAE9B6D,KAAaq+B,GAAar+B,GAAYA,EAASu+B,UAC/CjI,EAAMn6B,GAAO6D,EAAWw+B,GAAUH,EAASr+B,GAAYq+B,IAInE,QAASG,IAAUC,EAAIC,GACnB,GAAI/e,GAAS,SAAUzK,EAAGU,GAEtB6oB,EAAGvpB,EAAGU,GACN8oB,EAAGxpB,EAAGU,GAGV,OADA+J,GAAO4e,SAAU,EACV5e,EAIX,QAASoe,IAAe/hC,EAASic,GAC7B,GAAI0mB,GAAQ3iC,EAAQ8hC,OAAS9hC,EAAQ8hC,MAAMa,MAAS,QAChDzf,EAASljB,EAAQ8hC,OAAS9hC,EAAQ8hC,MAAM5e,OAAU,SACrDjH,EAAK8H,QAAU9H,EAAK8H,WAAa4e,GAAQ1mB,EAAK6lB,MAAMlhC,KACrD,IAAI+a,GAAKM,EAAKN,KAAOM,EAAKN,OACtB3X,EAAW2X,EAAGuH,GACd0f,EAAW3mB,EAAK6lB,MAAMc,QACtB1rB,GAAMlT,IACFmE,GAAQnE,IAC0B,IAAhCA,EAAS2L,QAAQizB,GACjB5+B,IAAa4+B,KACfjnB,EAAGuH,IAAU0f,GAAUx+B,OAAOJ,IAIlC2X,EAAGuH,GAAS0f,EAkHpB,QAASC,IAAUnpB,EAAImU,EAAMiV,GAEzB,OADkB,KAAdA,IAAwBA,GAAY,IACnCjV,EACD,MAAOnU,EAKX,KAAK,GAJDvZ,GAAK4iC,EAAOC,EACZzvB,EAAOmT,GACL+Y,QAAQnpB,QAAQuX,GAChBlpB,OAAO4O,KAAKsa,GACTxiB,EAAI,EAAGA,EAAIkI,EAAKzN,OAAQuF,IAGjB,YAFZlL,EAAMoT,EAAKlI,MAIX03B,EAAQrpB,EAAGvZ,GACX6iC,EAAUnV,EAAK1tB,GACV2iC,GAAcjhC,EAAO6X,EAAIvZ,GAGrB4iC,IAAUC,GACfvrB,EAAcsrB,IACdtrB,EAAcurB,IACdH,GAAUE,EAAOC,GALjBhzB,EAAI0J,EAAIvZ,EAAK6iC,GAQrB,OAAOtpB,GAKX,QAASupB,IAAcC,EAAWC,EAAU3nB,GACxC,MAAKA,GAkBM,WAEH,GAAI4nB,GAAe9rB,EAAW6rB,GACxBA,EAASjkC,KAAKsc,EAAIA,GAClB2nB,EACFE,EAAc/rB,EAAW4rB,GACvBA,EAAUhkC,KAAKsc,EAAIA,GACnB0nB,CACN,OAAIE,GACOP,GAAUO,EAAcC,GAGxBA,GA5BVF,EAGAD,EAQE,WACH,MAAOL,IAAUvrB,EAAW6rB,GAAYA,EAASjkC,KAAKyC,KAAMA,MAAQwhC,EAAU7rB,EAAW4rB,GAAaA,EAAUhkC,KAAKyC,KAAMA,MAAQuhC,IAR5HC,EAHAD,EA+CnB,QAASpG,IAAmBoG,EAAWC,GACnC,GAAIhtB,GAAMgtB,EACJD,EACIA,EAAU9+B,OAAO++B,GACjBh7B,GAAQg7B,GACJA,GACCA,GACTD,CACN,OAAO/sB,GAAMmtB,GAAYntB,GAAOA,EAEpC,QAASmtB,IAAYhJ,GAEjB,IAAK,GADDnkB,MACK9K,EAAI,EAAGA,EAAIivB,EAAMx0B,OAAQuF,KACC,IAA3B8K,EAAIxG,QAAQ2qB,EAAMjvB,KAClB8K,EAAItK,KAAKyuB,EAAMjvB,GAGvB,OAAO8K,GAYX,QAASotB,IAAYL,EAAWC,EAAU3nB,EAAIrb,GAC1C,GAAIgW,GAAMxR,OAAOwF,OAAO+4B,GAAa,KACrC,OAAIC,IACAK,GAAiBrjC,EAAKgjC,EAAU3nB,GACzB/B,EAAOtD,EAAKgtB,IAGZhtB,EAiFf,QAASstB,IAAgBzjC,GACrB,IAAK,GAAIG,KAAOH,GAAQwgC,WACpBkD,GAAsBvjC,GAG9B,QAASujC,IAAsBphC,GACtB,GAAI0P,QAAO,uBAAuB5N,OAAOu/B,GAAc1jC,OAAQ,QAAQ2O,KAAKtM,IAC7Ewc,GAAO,4BACHxc,EACA,2FAGJshC,GAAathC,IAASojB,GAAOE,cAActjB,KAC3Cwc,GAAO,kEAEHxc,GAOZ,QAASuhC,IAAe7jC,EAASwb,GAC7B,GAAIsI,GAAQ9jB,EAAQ8jB,KACpB,IAAKA,EAAL,CAEA,GACIzY,GAAGuM,EAAKtV,EADR6T,IAEJ,IAAIhO,GAAQ2b,GAER,IADAzY,EAAIyY,EAAMhe,OACHuF,KACHuM,EAAMkM,EAAMzY,GACO,gBAARuM,IACPtV,EAAOmmB,GAAS7Q,GAChBzB,EAAI7T,IAAUU,KAAM,OAGpB8b,GAAO,sDAId,IAAIrH,EAAcqM,GACnB,IAAK,GAAI3jB,KAAO2jB,GACZlM,EAAMkM,EAAM3jB,GACZmC,EAAOmmB,GAAStoB,GAChBgW,EAAI7T,GAAQmV,EAAcG,GAAOA,GAAQ5U,KAAM4U,OAInDkH,IAAO,qEACH,WAAW1a,OAAOmT,EAAUuM,GAAQ,KAAMtI,EAElDxb,GAAQ8jB,MAAQ3N,GAKpB,QAAS2tB,IAAgB9jC,EAASwb,GAC9B,GAAIye,GAASj6B,EAAQi6B,MACrB,IAAKA,EAAL,CAEA,GAAI1N,GAAcvsB,EAAQi6B,SAC1B,IAAI9xB,GAAQ8xB,GACR,IAAK,GAAI5uB,GAAI,EAAGA,EAAI4uB,EAAOn0B,OAAQuF,IAC/BkhB,EAAW0N,EAAO5uB,KAAQwiB,KAAMoM,EAAO5uB,QAG1C,IAAIoM,EAAcwiB,GACnB,IAAK,GAAI95B,KAAO85B,GAAQ,CACpB,GAAIriB,GAAMqiB,EAAO95B,EACjBosB,GAAWpsB,GAAOsX,EAAcG,GAC1B6B,GAASoU,KAAM1tB,GAAOyX,IACpBiW,KAAMjW,OAIlBkH,IAAO,sEACH,WAAW1a,OAAOmT,EAAU0iB,GAAS,KAAMze,IAMvD,QAASuoB,IAAsB/jC,GAC3B,GAAIgkC,GAAOhkC,EAAQikC,UACnB,IAAID,EACA,IAAK,GAAI7jC,KAAO6jC,GAAM,CAClB,GAAInpB,GAAMmpB,EAAK7jC,EACXmX,GAAWuD,KACXmpB,EAAK7jC,IAASf,KAAMyb,EAAKke,OAAQle,KAKjD,QAAS2oB,IAAiBlhC,EAAM1B,EAAO4a,GAC9B/D,EAAc7W,IACfke,GAAO,6BAA8B1a,OAAO9B,EAAM,2BAC9C,WAAW8B,OAAOmT,EAAU3W,GAAQ,KAAM4a,GAOtD,QAAS+kB,IAAa58B,EAAQ2iB,EAAO9K,GAmCjC,QAAS0oB,GAAW/jC,GAChB,GAAIgkC,GAAQC,GAAOjkC,IAAQkkC,EAC3BrkC,GAAQG,GAAOgkC,EAAMxgC,EAAOxD,GAAMmmB,EAAMnmB,GAAMqb,EAAIrb,GAtBtD,GAbIsjC,GAAgBnd,GAEhBhP,EAAWgP,KAEXA,EAAQA,EAAMtmB,SAElB6jC,GAAevd,EAAO9K,GACtBsoB,GAAgBxd,EAAO9K,GACvBuoB,GAAsBzd,IAKjBA,EAAMsb,QACHtb,EAAMge,UACN3gC,EAAS48B,GAAa58B,EAAQ2iB,EAAMge,QAAS9oB,IAE7C8K,EAAMie,QACN,IAAK,GAAIl5B,GAAI,EAAG8N,EAAImN,EAAMie,OAAOz+B,OAAQuF,EAAI8N,EAAG9N,IAC5C1H,EAAS48B,GAAa58B,EAAQ2iB,EAAMie,OAAOl5B,GAAImQ,EAI3D,IACIrb,GADAH,IAEJ,KAAKG,IAAOwD,GACRugC,EAAW/jC,EAEf,KAAKA,IAAOmmB,GACHzkB,EAAO8B,EAAQxD,IAChB+jC,EAAW/jC,EAOnB,OAAOH,GAOX,QAASgmB,IAAahmB,EAASgD,EAAMskB,EAAIkd,GAErC,GAAkB,gBAAPld,GAAX,CAGA,GAAImd,GAASzkC,EAAQgD,EAErB,IAAInB,EAAO4iC,EAAQnd,GACf,MAAOmd,GAAOnd,EAClB,IAAIod,GAAcjc,GAASnB,EAC3B,IAAIzlB,EAAO4iC,EAAQC,GACf,MAAOD,GAAOC,EAClB,IAAIC,GAAeC,GAAWF,EAC9B,IAAI7iC,EAAO4iC,EAAQE,GACf,MAAOF,GAAOE,EAElB,IAAIxuB,GAAMsuB,EAAOnd,IAAOmd,EAAOC,IAAgBD,EAAOE,EAItD,OAHIH,KAAgBruB,GAChB2I,GAAO,qBAAuB9b,EAAK8D,MAAM,GAAI,GAAK,KAAOwgB,GAEtDnR,GAGX,QAASif,IAAaj1B,EAAK0jB,EAAa6Q,EAAWlZ,GAC/C,GAAImnB,GAAO9e,EAAY1jB,GACnB0kC,GAAUhjC,EAAO6yB,EAAWv0B,GAC5BS,EAAQ8zB,EAAUv0B,GAElB2kC,EAAeC,GAAar9B,QAASi7B,EAAK3/B,KAC9C,IAAI8hC,GAAgB,EAChB,GAAID,IAAWhjC,EAAO8gC,EAAM,WACxB/hC,GAAQ,MAEP,IAAc,KAAVA,GAAgBA,IAAUqjB,GAAU9jB,GAAM,CAG/C,GAAI6kC,GAAcD,GAAaxgC,OAAQo+B,EAAK3/B,OACxCgiC,EAAc,GAAKF,EAAeE,KAClCpkC,GAAQ,GAKpB,OAAcE,KAAVF,EAAqB,CACrBA,EAAQqkC,GAAoBzpB,EAAImnB,EAAMxiC,EAGtC,IAAI+kC,GAAoB7nB,EACxBD,IAAgB,GAChBE,EAAQ1c,GACRwc,EAAgB8nB,GAKpB,MAFIC,IAAWxC,EAAMxiC,EAAKS,EAAO4a,EAAIqpB,GAE9BjkC,EAKX,QAASqkC,IAAoBzpB,EAAImnB,EAAMxiC,GAEnC,GAAK0B,EAAO8gC,EAAM,WAAlB,CAGA,GAAI9nB,GAAM8nB,EAAK1/B,OAWf,OATIoB,GAASwW,IACTiE,GAAO,mCACH3e,EACA,2FAEgCqb,GAIpCA,GACAA,EAAGyK,SAASyO,eACmB5zB,KAA/B0a,EAAGyK,SAASyO,UAAUv0B,QACHW,KAAnB0a,EAAGqR,OAAO1sB,GACHqb,EAAGqR,OAAO1sB,GAIdmX,EAAWuD,IAA+B,aAAvBuqB,GAAQzC,EAAK3/B,MACjC6X,EAAI3b,KAAKsc,GACTX,GAKV,QAASsqB,IAAWxC,EAAMrgC,EAAM1B,EAAO4a,EAAIqpB,GACvC,GAAIlC,EAAK0C,UAAYR,EAEjB,WADA/lB,IAAO,2BAA6Bxc,EAAO,IAAKkZ,EAGpD,IAAa,MAAT5a,GAAkB+hC,EAAK0C,SAA3B,CAGA,GAAIriC,GAAO2/B,EAAK3/B,KACZsiC,GAAStiC,IAAiB,IAATA,EACjBuiC,IACJ,IAAIviC,EAAM,CACDmF,GAAQnF,KACTA,GAAQA,GAEZ,KAAK,GAAIqI,GAAI,EAAGA,EAAIrI,EAAK8C,SAAWw/B,EAAOj6B,IAAK,CAC5C,GAAIm6B,GAAeC,GAAW7kC,EAAOoC,EAAKqI,GAAImQ,EAC9C+pB,GAAc15B,KAAK25B,EAAaE,cAAgB,IAChDJ,EAAQE,EAAaF,OAG7B,GAAIK,GAAoBJ,EAAcn4B,KAAK,SAAUw4B,GAAK,MAAOA,IACjE,KAAKN,GAASK,EAEV,WADA7mB,IAAO+mB,GAAsBvjC,EAAM1B,EAAO2kC,GAAgB/pB,EAG9D,IAAIsqB,GAAYnD,EAAKmD,SACjBA,KACKA,EAAUllC,IACXke,GAAO,yDAA2Dxc,EAAO,KAAMkZ,KAK3F,QAASiqB,IAAW7kC,EAAOoC,EAAMwY,GAC7B,GAAI8pB,GACAI,EAAeN,GAAQpiC,EAC3B,IAAI+iC,GAAcn3B,KAAK82B,GAAe,CAClC,GAAIE,SAAWhlC,EACf0kC,GAAQM,IAAMF,EAAajtB,cAEtB6sB,GAAe,WAANM,IACVN,EAAQ1kC,YAAiBoC,QAG5B,IAAqB,WAAjB0iC,EACLJ,EAAQ7tB,EAAc7W,OAErB,IAAqB,UAAjB8kC,EACLJ,EAAQn9B,GAAQvH,OAGhB,KACI0kC,EAAQ1kC,YAAiBoC,GAE7B,MAAOkE,GACH4X,GAAO,uBAAyBva,OAAOvB,GAAQ,yBAA0BwY,GACzE8pB,GAAQ,EAGhB,OACIA,MAAOA,EACPI,aAAcA,GAStB,QAASN,IAAQ/lC,GACb,GAAI+O,GAAQ/O,GAAMA,EAAGuH,WAAWwH,MAAM43B,GACtC,OAAO53B,GAAQA,EAAM,GAAK,GAE9B,QAAS63B,IAAW/sB,EAAGU,GACnB,MAAOwrB,IAAQlsB,KAAOksB,GAAQxrB,GAElC,QAASmrB,IAAa/hC,EAAMuiC,GACxB,IAAKp9B,GAAQo9B,GACT,MAAOU,IAAWV,EAAeviC,GAAQ,GAAK,CAElD,KAAK,GAAIqI,GAAI,EAAGE,EAAMg6B,EAAcz/B,OAAQuF,EAAIE,EAAKF,IACjD,GAAI46B,GAAWV,EAAcl6B,GAAIrI,GAC7B,MAAOqI,EAGf,QAAQ,EAEZ,QAASw6B,IAAsBvjC,EAAM1B,EAAO2kC,GACxC,GAAIW,GAAU,6CAA8C9hC,OAAO9B,EAAM,MACrE,aAAa8B,OAAOmhC,EAAcr4B,IAAI03B,IAAYuB,KAAK,OACvDT,EAAeH,EAAc,GAC7Ba,EAAe7uB,EAAU3W,EAa7B,OAX6B,KAAzB2kC,EAAcz/B,QACdugC,GAAaX,IACbW,SAAoBzlC,MACnB0lC,GAAUZ,EAAcU,KACzBF,GAAW,eAAe9hC,OAAOmiC,GAAW3lC,EAAO8kC,KAEvDQ,GAAW,SAAS9hC,OAAOgiC,EAAc,KAErCC,GAAaD,KACbF,GAAW,cAAc9hC,OAAOmiC,GAAW3lC,EAAOwlC,GAAe,MAE9DF,EAEX,QAASK,IAAW3lC,EAAOoC,GACvB,MAAa,WAATA,EACO,IAAKoB,OAAOxD,EAAO,KAGnB,GAAGwD,OADI,WAATpB,EACYwjC,OAAO5lC,GAGPA,GAIzB,QAASylC,IAAazlC,GAClB,MAAO6lC,IAAiBr5B,KAAK,SAAUs5B,GAAQ,MAAO9lC,GAAM6X,gBAAkBiuB,IAElF,QAASJ,MAEL,IAAK,GADD7Q,MACKhL,EAAK,EAAGA,EAAKlrB,UAAUuG,OAAQ2kB,IACpCgL,EAAKhL,GAAMlrB,UAAUkrB,EAEzB,OAAOgL,GAAKroB,KAAK,SAAUs5B,GAAQ,MAA8B,YAAvBA,EAAKjuB,gBAGnD,QAASkuB,IAAI3mC,GACH2B,eAAgBglC,KAClB7nB,GAAO,oEAEXnd,KAAKilC,MAAM5mC,GAaf,QAAS6mC,IAAQF,GACbA,EAAIG,IAAM,SAAUC,GAChB,GAAIC,GAAmBrlC,KAAKslC,oBAAsBtlC,KAAKslC,qBACvD,IAAID,EAAiBr3B,QAAQo3B,IAAW,EACpC,MAAOplC,KAGX,IAAI8zB,GAAOnc,EAAQ/Z,UAAW,EAS9B,OARAk2B,GAAKyR,QAAQvlC,MACT2V,EAAWyvB,EAAOI,SAClBJ,EAAOI,QAAQ7nC,MAAMynC,EAAQtR,GAExBne,EAAWyvB,IAChBA,EAAOznC,MAAM,KAAMm2B,GAEvBuR,EAAiBn7B,KAAKk7B,GACfplC,MAIf,QAASylC,IAAUT,GACfA,EAAIU,MAAQ,SAAUA,GAElB,MADA1lC,MAAK3B,QAAUugC,GAAa5+B,KAAK3B,QAASqnC,GACnC1lC,MAIf,QAAS2lC,IAAWX,GAMhBA,EAAI9E,IAAM,CACV,IAAIA,GAAM,CAIV8E,GAAIltB,OAAS,SAAU6mB,GACnBA,EAAgBA,KAChB,IAAIiH,GAAQ5lC,KACR6lC,EAAUD,EAAM1F,IAChB4F,EAAcnH,EAAcoH,QAAUpH,EAAcoH,SACxD,IAAID,EAAYD,GACZ,MAAOC,GAAYD,EAEvB,IAAIllC,GAAOo/B,GAAiBpB,IAAkBoB,GAAiB6F,EAAMvnC,QACjEsC,IACAohC,GAAsBphC,EAE1B,IAAIqlC,GAAM,SAAsB3nC,GAC5B2B,KAAKilC,MAAM5mC,GAqCf,OAnCA2nC,GAAI1oC,UAAY0F,OAAOwF,OAAOo9B,EAAMtoC,WACpC0oC,EAAI1oC,UAAUuI,YAAcmgC,EAC5BA,EAAI9F,IAAMA,IACV8F,EAAI3nC,QAAUugC,GAAagH,EAAMvnC,QAASsgC,GAC1CqH,EAAW,MAAIJ,EAIXI,EAAI3nC,QAAQ8jB,OACZ8jB,GAAUD,GAEVA,EAAI3nC,QAAQ4hB,UACZimB,GAAaF,GAGjBA,EAAIluB,OAAS8tB,EAAM9tB,OACnBkuB,EAAIN,MAAQE,EAAMF,MAClBM,EAAIb,IAAMS,EAAMT,IAGhBgB,GAAY76B,QAAQ,SAAUjK,GAC1B2kC,EAAI3kC,GAAQukC,EAAMvkC,KAGlBV,IACAqlC,EAAI3nC,QAAQwgC,WAAWl+B,GAAQqlC,GAKnCA,EAAIxH,aAAeoH,EAAMvnC,QACzB2nC,EAAIrH,cAAgBA,EACpBqH,EAAI/G,cAAgBnnB,KAAWkuB,EAAI3nC,SAEnCynC,EAAYD,GAAWG,EAChBA,GAGf,QAASC,IAAUG,GACf,GAAIjkB,GAAQikB,EAAK/nC,QAAQ8jB,KACzB,KAAK,GAAI3jB,KAAO2jB,GACZxI,GAAMysB,EAAK9oC,UAAW,SAAUkB,GAGxC,QAAS0nC,IAAaE,GAClB,GAAInmB,GAAWmmB,EAAK/nC,QAAQ4hB,QAC5B,KAAK,GAAIzhB,KAAOyhB,GACZmd,GAAegJ,EAAK9oC,UAAWkB,EAAKyhB,EAASzhB,IAIrD,QAAS6nC,IAAmBrB,GAIxBmB,GAAY76B,QAAQ,SAAUjK,GAE1B2jC,EAAI3jC,GAAQ,SAAUskB,EAAI2gB,GACtB,MAAKA,IAKY,cAATjlC,GACA0gC,GAAsBpc,GAEb,cAATtkB,GAAwByU,EAAcwwB,KAEtCA,EAAW3lC,KAAO2lC,EAAW3lC,MAAQglB,EACrC2gB,EAAatmC,KAAK3B,QAAQ4hC,MAAMnoB,OAAOwuB,IAE9B,cAATjlC,GAAwBsU,EAAW2wB,KACnCA,GAAe7oC,KAAM6oC,EAAYlP,OAAQkP,IAE7CtmC,KAAK3B,QAAQgD,EAAO,KAAKskB,GAAM2gB,EACxBA,GAhBAtmC,KAAK3B,QAAQgD,EAAO,KAAKskB,MAsBhD,QAAS4gB,IAAkBtK,GACvB,MAAOA,KAAS8D,GAAiB9D,EAAKziB,KAAKnb,UAAY49B,EAAK9vB,KAEhE,QAASq6B,IAAQC,EAAS9lC,GACtB,MAAI6F,IAAQigC,GACDA,EAAQz4B,QAAQrN,IAAS,EAER,gBAAZ8lC,GACLA,EAAQz5B,MAAM,KAAKgB,QAAQrN,IAAS,IAEtCoV,EAAS0wB,IACPA,EAAQx5B,KAAKtM,GAK5B,QAAS+lC,IAAWC,EAAmBn7B,GACnC,GAAI2L,GAAQwvB,EAAkBxvB,MAAOvF,EAAO+0B,EAAkB/0B,KAAMwb,EAASuZ,EAAkBvZ,MAC/F,KAAK,GAAI5uB,KAAO2Y,GAAO,CACnB,GAAIyvB,GAAQzvB,EAAM3Y,EAClB,IAAIooC,EAAO,CACP,GAAIjd,GAASid,EAAMjmC,IACfgpB,KAAWne,EAAOme,IAClBkd,GAAgB1vB,EAAO3Y,EAAKoT,EAAMwb,KAKlD,QAASyZ,IAAgB1vB,EAAO3Y,EAAKoT,EAAM/M,GACvC,GAAI+hC,GAAQzvB,EAAM3Y,IACdooC,GAAW/hC,GAAW+hC,EAAMz6B,MAAQtH,EAAQsH,KAE5Cy6B,EAAME,kBAAkBC,WAE5B5vB,EAAM3Y,GAAO,KACbuY,EAASnF,EAAMpT,GAgMnB,QAASwoC,IAAiB5sB,GAItB,IAHA,GAAIE,GAAOF,EAAME,KACb2sB,EAAa7sB,EACb8sB,EAAY9sB,EACT7E,EAAM2xB,EAAUJ,qBACnBI,EAAYA,EAAUJ,kBAAkB1Z,SACvB8Z,EAAU5sB,OACvBA,EAAO6sB,GAAeD,EAAU5sB,KAAMA,GAI9C,MAAO/E,EAAO0xB,EAAaA,EAAWjlC,SAC9BilC,GAAcA,EAAW3sB,OACzBA,EAAO6sB,GAAe7sB,EAAM2sB,EAAW3sB,MAG/C,OAAO8sB,IAAY9sB,EAAK+sB,YAAa/sB,EAAKuK,OAE9C,QAASsiB,IAAexiB,EAAO3iB,GAC3B,OACIqlC,YAAa5kC,GAAOkiB,EAAM0iB,YAAarlC,EAAOqlC,aAC9CxiB,MAAOtP,EAAMoP,EAAME,QAAUF,EAAME,MAAO7iB,EAAO6iB,OAAS7iB,EAAO6iB,OAGzE,QAASuiB,IAAYC,EAAaC,GAC9B,MAAI/xB,GAAM8xB,IAAgB9xB,EAAM+xB,GACrB7kC,GAAO4kC,EAAaE,GAAeD,IAGvC,GAEX,QAAS7kC,IAAO8U,EAAGU,GACf,MAAOV,GAAKU,EAAIV,EAAI,IAAMU,EAAIV,EAAKU,GAAK,GAE5C,QAASsvB,IAAetoC,GACpB,MAAIsH,OAAMC,QAAQvH,GACPuoC,GAAevoC,GAEtByD,EAASzD,GACFwoC,GAAgBxoC,GAEN,gBAAVA,GACAA,EAGJ,GAEX,QAASuoC,IAAevoC,GAGpB,IAAK,GADDyoC,GADAlzB,EAAM,GAED9K,EAAI,EAAG8N,EAAIvY,EAAMkF,OAAQuF,EAAI8N,EAAG9N,IACjC6L,EAAOmyB,EAAcH,GAAetoC,EAAMyK,MAAyB,KAAhBg+B,IAC/ClzB,IACAA,GAAO,KACXA,GAAOkzB,EAGf,OAAOlzB,GAEX,QAASizB,IAAgBxoC,GACrB,GAAIuV,GAAM,EACV,KAAK,GAAIhW,KAAOS,GACRA,EAAMT,KACFgW,IACAA,GAAO,KACXA,GAAOhW,EAGf,OAAOgW,GA2BX,QAASwP,IAAgB7X,GACrB,MAAIw7B,IAAMx7B,GACC,MAIC,SAARA,EACO,WADX,GAKJ,QAASy7B,IAAiBz7B,GAEtB,IAAK+sB,GACD,OAAO,CAEX,IAAIjV,GAAc9X,GACd,OAAO,CAIX,IAFAA,EAAMA,EAAI2K,cAEsB,MAA5B+wB,GAAoB17B,GACpB,MAAO07B,IAAoB17B,EAE/B,IAAI0B,GAAK3F,SAAS4/B,cAAc37B,EAChC,OAAIA,GAAI6B,QAAQ,MAAQ,EAEZ65B,GAAoB17B,GACxB0B,EAAGhI,cAAgB/F,OAAOioC,oBACtBl6B,EAAGhI,cAAgB/F,OAAOkoC,YAG1BH,GAAoB17B,GAAO,qBAAqBc,KAAKY,EAAG5I,YAQxE,QAASgjC,IAAMp6B,GACX,GAAkB,gBAAPA,GAAiB,CACxB,GAAIq6B,GAAWhgC,SAASigC,cAAct6B,EACtC,OAAKq6B,KACD/qB,GAAO,wBAA0BtP,GAC1B3F,SAAS4/B,cAAc,QAKlC,MAAOj6B,GAIf,QAASi6B,IAAcM,EAAShuB,GAC5B,GAAIK,GAAMvS,SAAS4/B,cAAcM,EACjC,OAAgB,WAAZA,EACO3tB,GAGPL,EAAME,MACNF,EAAME,KAAK8H,WACmBjjB,KAA9Bib,EAAME,KAAK8H,MAAMimB,UACjB5tB,EAAI6tB,aAAa,WAAY,YAE1B7tB,GAEX,QAAS8tB,IAAgBliC,EAAW+hC,GAChC,MAAOlgC,UAASqgC,gBAAgBC,GAAaniC,GAAY+hC,GAE7D,QAASK,IAAejuB,GACpB,MAAOtS,UAASugC,eAAejuB,GAEnC,QAASkuB,IAAcluB,GACnB,MAAOtS,UAASwgC,cAAcluB,GAElC,QAASmuB,IAAa1B,EAAY2B,EAASC,GACvC5B,EAAW0B,aAAaC,EAASC,GAErC,QAASC,IAAY7lB,EAAM0B,GACvB1B,EAAK6lB,YAAYnkB,GAErB,QAAS5c,IAAYkb,EAAM0B,GACvB1B,EAAKlb,YAAY4c,GAErB,QAASsiB,IAAWhkB,GAChB,MAAOA,GAAKgkB,WAEhB,QAAS8B,IAAY9lB,GACjB,MAAOA,GAAK8lB,YAEhB,QAASX,IAAQnlB,GACb,MAAOA,GAAKmlB,QAEhB,QAASY,IAAe/lB,EAAMzI,GAC1ByI,EAAKgmB,YAAczuB,EAEvB,QAAS0uB,IAAcjmB,EAAMhiB,GACzBgiB,EAAKqlB,aAAarnC,EAAS,IAiC/B,QAASkoC,IAAY/uB,EAAOgvB,GACxB,GAAIxqB,GAAMxE,EAAME,KAAKsE,GACrB,IAAKrJ,EAAMqJ,GAAX,CAEA,GAAI/E,GAAKO,EAAMvY,QACXwnC,EAAWjvB,EAAM0sB,mBAAqB1sB,EAAMK,IAC5Cxb,EAAQmqC,EAAY,KAAOC,EAC3BC,EAAaF,MAAYjqC,GAAYkqC,CACzC,IAAI1zB,EAAWiJ,GAEX,WADAoC,IAAwBpC,EAAK/E,GAAK5a,GAAQ4a,EAAI,wBAGlD,IAAI0vB,GAAQnvB,EAAME,KAAKkvB,SACnBC,EAA2B,gBAAR7qB,IAAmC,gBAARA,GAC9C8qB,EAASvtB,GAAMyC,GACf+qB,EAAO9vB,EAAGqX,KACd,IAAIuY,GAAaC,EACb,GAAIH,EAAO,CACP,GAAIlnC,GAAWonC,EAAYE,EAAK/qB,GAAOA,EAAI3f,KACvCmqC,GACA5iC,GAAQnE,IAAa0U,EAAS1U,EAAUgnC,GAGnC7iC,GAAQnE,GASHA,EAAS0L,SAASs7B,IACxBhnC,EAAS6H,KAAKm/B,GATVI,GACAE,EAAK/qB,IAAQyqB,GACbO,GAAY/vB,EAAI+E,EAAK+qB,EAAK/qB,KAG1BA,EAAI3f,OAASoqC,OAQxB,IAAII,EAAW,CAChB,GAAIL,GAAaO,EAAK/qB,KAASyqB,EAC3B,MAEJM,GAAK/qB,GAAO0qB,EACZM,GAAY/vB,EAAI+E,EAAK3f,OAEpB,IAAIyqC,EAAQ,CACb,GAAIN,GAAaxqB,EAAI3f,QAAUoqC,EAC3B,MAEJzqB,GAAI3f,MAAQA,MAGZke,IAAO,8BAA8B1a,aAAcmc,MAI/D,QAASgrB,IAAYxqB,EAAI5gB,EAAKyX,GAC1B,GAAIkV,GAAc/L,EAAG+L,WACjBA,IAAejrB,EAAOirB,EAAa3sB,KAC/B2d,GAAMgP,EAAY3sB,IAClB2sB,EAAY3sB,GAAKS,MAAQgX,EAGzBkV,EAAY3sB,GAAOyX,GAkB/B,QAAS4zB,IAAUtyB,EAAGU,GAClB,MAAQV,GAAE/Y,MAAQyZ,EAAEzZ,KAChB+Y,EAAEoD,eAAiB1C,EAAE0C,eACnBpD,EAAEpL,MAAQ8L,EAAE9L,KACVoL,EAAEuD,YAAc7C,EAAE6C,WAClBvF,EAAMgC,EAAE+C,QAAU/E,EAAM0C,EAAEqC,OAC1BwvB,GAAcvyB,EAAGU,IAChBzC,EAAO+B,EAAEuS,qBAAuBzU,EAAQ4C,EAAE0C,aAAa1d,QAEpE,QAAS6sC,IAAcvyB,EAAGU,GACtB,GAAc,UAAVV,EAAEpL,IACF,OAAO,CACX,IAAIzC,GACAqgC,EAAQx0B,EAAO7L,EAAI6N,EAAE+C,OAAU/E,EAAO7L,EAAIA,EAAE0Y,QAAW1Y,EAAErI,KACzD2oC,EAAQz0B,EAAO7L,EAAIuO,EAAEqC,OAAU/E,EAAO7L,EAAIA,EAAE0Y,QAAW1Y,EAAErI,IAC7D,OAAO0oC,KAAUC,GAAUC,GAAgBF,IAAUE,GAAgBD,GAEzE,QAASE,IAAkB3vB,EAAU4vB,EAAUC,GAC3C,GAAI1gC,GAAGlL,EACH+M,IACJ,KAAK7B,EAAIygC,EAAUzgC,GAAK0gC,IAAU1gC,EAC9BlL,EAAM+b,EAAS7Q,GAAGlL,IACd+W,EAAM/W,KACN+M,EAAI/M,GAAOkL,EAEnB,OAAO6B,GA0rBX,QAAS8+B,IAAiBC,EAAUlwB,IAC5BkwB,EAAShwB,KAAKgoB,YAAcloB,EAAME,KAAKgoB,aACvC9P,GAAQ8X,EAAUlwB,GAG1B,QAASoY,IAAQ8X,EAAUlwB,GACvB,GAMI5b,GAAK+rC,EAAQC,EANbC,EAAWH,IAAaI,GACxBC,EAAYvwB,IAAUswB,GACtBE,EAAUC,GAAoBP,EAAShwB,KAAKgoB,WAAYgI,EAASzoC,SACjEipC,EAAUD,GAAoBzwB,EAAME,KAAKgoB,WAAYloB,EAAMvY,SAC3DkpC,KACAC,IAEJ,KAAKxsC,IAAOssC,GACRP,EAASK,EAAQpsC,GACjBgsC,EAAMM,EAAQtsC,GACT+rC,GASDC,EAAIttB,SAAWqtB,EAAOtrC,MACtBurC,EAAIS,OAASV,EAAO9gC,IACpByhC,GAASV,EAAK,SAAUpwB,EAAOkwB,GAC3BE,EAAItxB,KAAOsxB,EAAItxB,IAAIiyB,kBACnBH,EAAkB9gC,KAAKsgC,KAX3BU,GAASV,EAAK,OAAQpwB,EAAOkwB,GACzBE,EAAItxB,KAAOsxB,EAAItxB,IAAIkyB,UACnBL,EAAe7gC,KAAKsgC,GAahC,IAAIO,EAAe5mC,OAAQ,CACvB,GAAIknC,GAAa,WACb,IAAK,GAAI3hC,GAAI,EAAGA,EAAIqhC,EAAe5mC,OAAQuF,IACvCwhC,GAASH,EAAerhC,GAAI,WAAY0Q,EAAOkwB,GAGnDG,GACA7oB,GAAexH,EAAO,SAAUixB,GAGhCA,IAUR,GAPIL,EAAkB7mC,QAClByd,GAAexH,EAAO,YAAa,WAC/B,IAAK,GAAI1Q,GAAI,EAAGA,EAAIshC,EAAkB7mC,OAAQuF,IAC1CwhC,GAASF,EAAkBthC,GAAI,mBAAoB0Q,EAAOkwB,MAIjEG,EACD,IAAKjsC,IAAOosC,GACHE,EAAQtsC,IAET0sC,GAASN,EAAQpsC,GAAM,SAAU8rC,EAAUA,EAAUK,GAMrE,QAASE,IAAoBxI,EAAMxoB,GAC/B,GAAIrF,GAAMxR,OAAOwF,OAAO,KACxB,KAAK65B,EAED,MAAO7tB,EAEX,IAAI9K,GAAG8gC,CACP,KAAK9gC,EAAI,EAAGA,EAAI24B,EAAKl+B,OAAQuF,IAAK,CAO9B,GANA8gC,EAAMnI,EAAK34B,GACN8gC,EAAIc,YAELd,EAAIc,UAAYC,IAEpB/2B,EAAIg3B,GAAchB,IAAQA,EACtB3wB,EAAGsR,aAAetR,EAAGsR,YAAYC,MAAO,CACxC,GAAIqgB,GAAWjB,EAAItxB,KAAOmL,GAAaxK,EAAI,cAAe,KAAO2wB,EAAI7pC,KAEjE6pC,GAAItxB,IADgB,kBAAbuyB,IAEHhuC,KAAMguC,EACNrU,OAAQqU,GAIFA,EAGlBjB,EAAItxB,IAAMsxB,EAAItxB,KAAOmL,GAAaxK,EAAGyK,SAAU,aAAckmB,EAAI7pC,MAAM,GAG3E,MAAO6T,GAEX,QAASg3B,IAAchB,GACnB,MAAQA,GAAIkB,SAAW,GAAGjpC,OAAO+nC,EAAI7pC,KAAM,KAAK8B,OAAOO,OAAO4O,KAAK44B,EAAIc,eAAiB9G,KAAK,MAEjG,QAAS0G,IAASV,EAAK5oC,EAAMwY,EAAOkwB,EAAUK,GAC1C,GAAIjtC,GAAK8sC,EAAItxB,KAAOsxB,EAAItxB,IAAItX,EAC5B,IAAIlE,EACA,IACIA,EAAG0c,EAAMK,IAAK+vB,EAAKpwB,EAAOkwB,EAAUK,GAExC,MAAOplC,GACHkzB,GAAYlzB,EAAG6U,EAAMvY,QAAS,aAAaY,OAAO+nC,EAAI7pC,KAAM,KAAK8B,OAAOb,EAAM,WAO1F,QAAS+pC,IAAYrB,EAAUlwB,GAC3B,GAAI6hB,GAAO7hB,EAAMM,gBACjB,MAAInF,EAAM0mB,KAA4C,IAAnCA,EAAKziB,KAAKnb,QAAQutC,cAGjCv2B,EAAQi1B,EAAShwB,KAAK8H,QAAU/M,EAAQ+E,EAAME,KAAK8H,QAAvD,CAGA,GAAI5jB,GAAK6iB,EACL5G,EAAML,EAAMK,IACZoxB,EAAWvB,EAAShwB,KAAK8H,UACzBA,EAAQhI,EAAME,KAAK8H,WAEnB7M,EAAM6M,EAAMtG,SAAWtG,EAAO4M,EAAM0pB,kBACpC1pB,EAAQhI,EAAME,KAAK8H,MAAQtK,KAAWsK,GAE1C,KAAK5jB,IAAO4jB,GACRf,EAAMe,EAAM5jB,GACNqtC,EAASrtC,KACH6iB,GACR0qB,GAAQtxB,EAAKjc,EAAK6iB,EAAKjH,EAAME,KAAK8J,MAMrC4nB,IAAQC,KAAW7pB,EAAMnjB,QAAU4sC,EAAS5sC,OAC7C8sC,GAAQtxB,EAAK,QAAS2H,EAAMnjB,MAEhC,KAAKT,IAAOqtC,GACJx2B,EAAQ+M,EAAM5jB,MACV0tC,GAAQ1tC,GACRic,EAAI0xB,kBAAkBC,GAASC,GAAa7tC,IAEtC8tC,GAAiB9tC,IACvBic,EAAI8xB,gBAAgB/tC,KAKpC,QAASutC,IAAQl+B,EAAIrP,EAAKS,EAAOutC,GACzBA,GAAW3+B,EAAGu6B,QAAQp6B,QAAQ,MAAQ,EACtCy+B,GAAY5+B,EAAIrP,EAAKS,GAEhBytC,GAAcluC,GAGfmuC,GAAiB1tC,GACjB4O,EAAG0+B,gBAAgB/tC,IAKnBS,EAAgB,oBAART,GAA4C,UAAfqP,EAAGu6B,QAAsB,OAAS5pC,EACvEqP,EAAGy6B,aAAa9pC,EAAKS,IAGpBqtC,GAAiB9tC,GACtBqP,EAAGy6B,aAAa9pC,EAAKouC,GAAuBpuC,EAAKS,IAE5CitC,GAAQ1tC,GACTmuC,GAAiB1tC,GACjB4O,EAAGs+B,kBAAkBC,GAASC,GAAa7tC,IAG3CqP,EAAGg/B,eAAeT,GAAS5tC,EAAKS,GAIpCwtC,GAAY5+B,EAAIrP,EAAKS,GAG7B,QAASwtC,IAAY5+B,EAAIrP,EAAKS,GAC1B,GAAI0tC,GAAiB1tC,GACjB4O,EAAG0+B,gBAAgB/tC,OAElB,CAKD,GAAIwtC,KACCc,IACc,aAAfj/B,EAAGu6B,SACK,gBAAR5pC,GACU,KAAVS,IACC4O,EAAGk/B,OAAQ,CACZ,GAAIC,GAAY,SAAUznC,GACtBA,EAAE0nC,2BACFp/B,EAAGq/B,oBAAoB,QAASF,GAEpCn/B,GAAGs/B,iBAAiB,QAASH,GAE7Bn/B,EAAGk/B,QAAS,EAEhBl/B,EAAGy6B,aAAa9pC,EAAKS,IAQ7B,QAASmuC,IAAY9C,EAAUlwB,GAC3B,GAAIvM,GAAKuM,EAAMK,IACXH,EAAOF,EAAME,KACb+yB,EAAU/C,EAAShwB,IACvB,MAAIjF,EAAQiF,EAAK+sB,cACbhyB,EAAQiF,EAAKuK,SACZxP,EAAQg4B,IACJh4B,EAAQg4B,EAAQhG,cAAgBhyB,EAAQg4B,EAAQxoB,SAHzD,CAMA,GAAIyoB,GAAMtG,GAAiB5sB,GAEvBmzB,EAAkB1/B,EAAG2/B,kBACrBj4B,GAAMg4B,KACND,EAAM7qC,GAAO6qC,EAAK/F,GAAegG,KAGjCD,IAAQz/B,EAAG4/B,aACX5/B,EAAGy6B,aAAa,QAASgF,GACzBz/B,EAAG4/B,WAAaH,IASxB,QAASI,IAAaC,GAkGlB,QAASC,MACJC,IAAYA,OAAe3jC,KAAKyjC,EAAIxoC,MAAM2oC,EAAiBpkC,GAAGgJ,QAC/Do7B,EAAkBpkC,EAAI,EAnG1B,GAQIwO,GAAGiU,EAAMziB,EAAGsrB,EAAY6Y,EARxBE,GAAW,EACXC,GAAW,EACXC,GAAmB,EACnBC,GAAU,EACVC,EAAQ,EACRC,EAAS,EACTC,EAAQ,EACRP,EAAkB,CAEtB,KAAKpkC,EAAI,EAAGA,EAAIikC,EAAIxpC,OAAQuF,IAGxB,GAFAyiB,EAAOjU,EACPA,EAAIy1B,EAAI76B,WAAWpJ,GACfqkC,EACU,KAAN71B,GAAuB,KAATiU,IACd4hB,GAAW,OAEd,IAAIC,EACK,KAAN91B,GAAuB,KAATiU,IACd6hB,GAAW,OAEd,IAAIC,EACK,KAAN/1B,GAAuB,KAATiU,IACd8hB,GAAmB,OAEtB,IAAIC,EACK,KAANh2B,GAAuB,KAATiU,IACd+hB,GAAU,OAEb,IAAU,MAANh2B,GACqB,MAA1By1B,EAAI76B,WAAWpJ,EAAI,IACO,MAA1BikC,EAAI76B,WAAWpJ,EAAI,IAClBykC,GACAC,GACAC,EAUA,CACD,OAAQn2B,GACJ,IAAK,IACD81B,GAAW,CACX,MACJ,KAAK,IACDD,GAAW,CACX,MACJ,KAAK,IACDE,GAAmB,CACnB,MACJ,KAAK,IACDI,GACA,MACJ,KAAK,IACDA,GACA,MACJ,KAAK,IACDD,GACA,MACJ,KAAK,IACDA,GACA,MACJ,KAAK,KACDD,GACA,MACJ,KAAK,KACDA,IAGR,GAAU,KAANj2B,EAAY,CAOZ,IALA,GAAItE,GAAIlK,EAAI,EACRujB,MAEF,GAEKrZ,GAAK,GAEE,OADVqZ,EAAI0gB,EAAIp9B,OAAOqD,IADJA,KAKVqZ,GAAMqhB,GAAoBrhC,KAAKggB,KAChCihB,GAAU,aApDC/uC,KAAf61B,GAEA8Y,EAAkBpkC,EAAI,EACtBsrB,EAAa2Y,EAAIxoC,MAAM,EAAGuE,GAAGgJ,QAG7Bk7B,GA6DZ,QAVmBzuC,KAAf61B,EACAA,EAAa2Y,EAAIxoC,MAAM,EAAGuE,GAAGgJ,OAEJ,IAApBo7B,GACLF,IAMAC,EACA,IAAKnkC,EAAI,EAAGA,EAAImkC,EAAQ1pC,OAAQuF,IAC5BsrB,EAAauZ,GAAWvZ,EAAY6Y,EAAQnkC,GAGpD,OAAOsrB,GAEX,QAASuZ,IAAWZ,EAAKniC,GACrB,GAAI9B,GAAI8B,EAAOwC,QAAQ,IACvB,IAAItE,EAAI,EAEJ,MAAO,OAAQjH,OAAO+I,EAAQ,OAAQ/I,OAAOkrC,EAAK,IAGlD,IAAIhkB,GAASne,EAAOrG,MAAM,EAAGuE,GACzBoqB,EAAOtoB,EAAOrG,MAAMuE,EAAI,EAC5B,OAAO,OAAQjH,OAAOknB,EAAQ,OAAQlnB,OAAOkrC,GAAKlrC,OAAgB,MAATqxB,EAAe,IAAMA,EAAOA,GAK7F,QAAS0a,IAASC,EAAKC,GACnBvV,QAAQl8B,MAAM,mBAAmBwF,OAAOgsC,IAG5C,QAASE,IAAoBC,EAASpwC,GAClC,MAAOowC,GAAUA,EAAQrjC,IAAI,SAAUsjC,GAAK,MAAOA,GAAErwC,KAASgN,OAAO,SAAUsjC,GAAK,MAAOA,QAE/F,QAASC,IAAQlhC,EAAIlN,EAAM1B,EAAOyvC,EAAOM,IACpCnhC,EAAGsU,QAAUtU,EAAGsU,WAAajY,KAAK+kC,IAAetuC,KAAMA,EAAM1B,MAAOA,EAAO+vC,QAASA,GAAWN,IAChG7gC,EAAGqhC,OAAQ,EAEf,QAASC,IAAQthC,EAAIlN,EAAM1B,EAAOyvC,EAAOM,IACzBA,EACNnhC,EAAGuhC,eAAiBvhC,EAAGuhC,iBACvBvhC,EAAGuU,QAAUvU,EAAGuU,WAChBlY,KAAK+kC,IAAetuC,KAAMA,EAAM1B,MAAOA,EAAO+vC,QAASA,GAAWN,IACxE7gC,EAAGqhC,OAAQ,EAGf,QAASG,IAAWxhC,EAAIlN,EAAM1B,EAAOyvC,GACjC7gC,EAAGyhC,SAAS3uC,GAAQ1B,EACpB4O,EAAG0hC,UAAUrlC,KAAK+kC,IAAetuC,KAAMA,EAAM1B,MAAOA,GAASyvC,IAEjE,QAASc,IAAa3hC,EAAIlN,EAAM+qC,EAASzsC,EAAOwK,EAAKgmC,EAAcnE,EAAWoD,IACzE7gC,EAAGy0B,aAAez0B,EAAGy0B,gBAAkBp4B,KAAK+kC,IACzCtuC,KAAMA,EACN+qC,QAASA,EACTzsC,MAAOA,EACPwK,IAAKA,EACLgmC,aAAcA,EACdnE,UAAWA,GACZoD,IACH7gC,EAAGqhC,OAAQ,EAEf,QAASQ,IAAsBpnB,EAAQ3nB,EAAMquC,GACzC,MAAOA,GAAU,MAAMvsC,OAAO9B,EAAM,MAAO8B,OAAO6lB,EAAQ,MAASA,EAAS3nB,EAEhF,QAASgvC,IAAW9hC,EAAIlN,EAAM1B,EAAOqsC,EAAWsE,EAAWC,EAAMnB,EAAOM,GACpE1D,EAAYA,GAAahhB,GAGrBulB,GAAQvE,EAAUwE,SAAWxE,EAAU5pB,SACvCmuB,EAAK,2FAC+CnB,GAKpDpD,EAAUyE,MACNf,EACAruC,EAAO,IAAI8B,OAAO9B,EAAM,+BAA+B8B,OAAO9B,EAAM,KAEtD,UAATA,IACLA,EAAO,oBACA2qC,GAAUyE,OAGhBzE,EAAU0E,SACXhB,EACAruC,EAAO,IAAI8B,OAAO9B,EAAM,2BAA2B8B,OAAO9B,EAAM,KAElD,UAATA,IACLA,EAAO,YAIX2qC,EAAU7pB,gBACH6pB,GAAU7pB,QACjB9gB,EAAO+uC,GAAsB,IAAK/uC,EAAMquC,IAExC1D,EAAUzyB,aACHyyB,GAAUzyB,KACjBlY,EAAO+uC,GAAsB,IAAK/uC,EAAMquC,IAGxC1D,EAAU5pB,gBACH4pB,GAAU5pB,QACjB/gB,EAAO+uC,GAAsB,IAAK/uC,EAAMquC,GAE5C,IAAIiB,EACA3E,GAAU4E,cACH5E,GAAU4E,OACjBD,EAASpiC,EAAGsiC,eAAiBtiC,EAAGsiC,kBAGhCF,EAASpiC,EAAGoiC,SAAWpiC,EAAGoiC,UAE9B,IAAIG,GAAanB,IAAehwC,MAAOA,EAAMyT,OAAQs8B,QAASA,GAAWN,EACrEpD,KAAchhB,KACd8lB,EAAW9E,UAAYA,EAE3B,IAAItX,GAAWic,EAAOtvC,EAElB4F,OAAMC,QAAQwtB,GACd4b,EAAY5b,EAASuR,QAAQ6K,GAAcpc,EAAS9pB,KAAKkmC,GAGzDH,EAAOtvC,GADFqzB,EACU4b,GAAaQ,EAAYpc,IAAaA,EAAUoc,GAGhDA,EAEnBviC,EAAGqhC,OAAQ,EAEf,QAASmB,IAAkBxiC,EAAIlN,GAC3B,MAAQkN,GAAGyiC,YAAY,IAAM3vC,IACzBkN,EAAGyiC,YAAY,UAAY3vC,IAC3BkN,EAAGyiC,YAAY3vC,GAEvB,QAAS4vC,IAAe1iC,EAAIlN,EAAM6vC,GAC9B,GAAIC,GAAeC,GAAiB7iC,EAAI,IAAMlN,IAAS+vC,GAAiB7iC,EAAI,UAAYlN,EACxF,IAAoB,MAAhB8vC,EACA,MAAO/C,IAAa+C,EAEnB,KAAkB,IAAdD,EAAqB,CAC1B,GAAIG,GAAcD,GAAiB7iC,EAAIlN,EACvC,IAAmB,MAAfgwC,EACA,MAAOn6B,MAAKC,UAAUk6B,IAQlC,QAASD,IAAiB7iC,EAAIlN,EAAMiwC,GAChC,GAAI36B,EACJ,IAAiC,OAA5BA,EAAMpI,EAAGyhC,SAAS3uC,IAEnB,IAAK,GADDkW,GAAOhJ,EAAG0hC,UACL7lC,EAAI,EAAG8N,EAAIX,EAAK1S,OAAQuF,EAAI8N,EAAG9N,IACpC,GAAImN,EAAKnN,GAAG/I,OAASA,EAAM,CACvBkW,EAAKI,OAAOvN,EAAG,EACf,OAOZ,MAHIknC,UACO/iC,GAAGyhC,SAAS3uC,GAEhBsV,EAEX,QAAS46B,IAAwBhjC,EAAIlN,GAEjC,IAAK,GADDkW,GAAOhJ,EAAG0hC,UACL7lC,EAAI,EAAG8N,EAAIX,EAAK1S,OAAQuF,EAAI8N,EAAG9N,IAAK,CACzC,GAAIonC,GAAOj6B,EAAKnN,EAChB,IAAI/I,EAAKsM,KAAK6jC,EAAKnwC,MAEf,MADAkW,GAAKI,OAAOvN,EAAG,GACRonC,GAInB,QAAS7B,IAAa7kC,EAAMskC,GASxB,MARIA,KACmB,MAAfA,EAAM92B,QACNxN,EAAKwN,MAAQ82B,EAAM92B,OAEN,MAAb82B,EAAMqC,MACN3mC,EAAK2mC,IAAMrC,EAAMqC,MAGlB3mC,EAMX,QAAS4mC,IAAkBnjC,EAAI5O,EAAOqsC,GAClC,GAAIlsB,GAAKksB,MAAiBh+B,EAAS8R,EAAG9R,OAAQoF,EAAO0M,EAAG1M,KAEpDu+B,EADsB,KAEtBv+B,KACAu+B,EACI,WAAWxuC,OAJO,MAIqB,iBACnC,KAAKA,OALS,MAKmB,WACjC,KAAKA,OANS,MAMmB,MAEzC6K,IACA2jC,EAAkB,MAAMxuC,OAAOwuC,EAAiB,KAEpD,IAAIC,GAAaC,GAAkBlyC,EAAOgyC,EAC1CpjC,GAAGsyB,OACClhC,MAAO,IAAIwD,OAAOxD,EAAO,KACzB+1B,WAAYxe,KAAKC,UAAUxX,GAC3BgiC,SAAU,aAAax+B,OAfD,MAe6B,OAAOA,OAAOyuC,EAAY,MAMrF,QAASC,IAAkBlyC,EAAOiyC,GAC9B,GAAI18B,GAAM48B,GAAWnyC,EACrB,OAAgB,QAAZuV,EAAIhW,IACG,GAAGiE,OAAOxD,EAAO,KAAKwD,OAAOyuC,GAG7B,QAAQzuC,OAAO+R,EAAIm5B,IAAK,MAAMlrC,OAAO+R,EAAIhW,IAAK,MAAMiE,OAAOyuC,EAAY,KAkBtF,QAASE,IAAWn7B,GAKhB,GAFAA,EAAMA,EAAIvD,OACV9I,GAAMqM,EAAI9R,OACN8R,EAAIjI,QAAQ,KAAO,GAAKiI,EAAIo7B,YAAY,KAAOznC,GAAM,EAErD,MADAyB,IAAQ4K,EAAIo7B,YAAY,KACpBhmC,IAAS,GAELsiC,IAAK13B,EAAI9Q,MAAM,EAAGkG,IAClB7M,IAAK,IAAMyX,EAAI9Q,MAAMkG,GAAQ,GAAK,MAKlCsiC,IAAK13B,EACLzX,IAAK,KAMjB,KAFA2S,GAAM8E,EACN5K,GAAQimC,GAAgBC,GAAmB,GACnCC,MACJC,GAAMzsB,KAEF0sB,GAAcD,IACdE,GAAYF,IAEC,KAARA,IACLG,GAAaH,GAGrB,QACI9D,IAAK13B,EAAI9Q,MAAM,EAAGmsC,IAClB9yC,IAAKyX,EAAI9Q,MAAMmsC,GAAgB,EAAGC,KAG1C,QAASvsB,MACL,MAAO7T,IAAI2B,aAAazH,IAE5B,QAASmmC,MACL,MAAOnmC,KAASzB,GAEpB,QAAS8nC,IAAcD,GACnB,MAAe,MAARA,GAAwB,KAARA,EAE3B,QAASG,IAAaH,GAClB,GAAII,GAAY,CAEhB,KADAP,GAAgBjmC,IACRmmC,MAEJ,GADAC,EAAMzsB,KACF0sB,GAAcD,GACdE,GAAYF,OAOhB,IAJY,KAARA,GACAI,IACQ,KAARJ,GACAI,IACc,IAAdA,EAAiB,CACjBN,GAAmBlmC,EACnB,QAIZ,QAASsmC,IAAYF,GAEjB,IADA,GAAIK,GAAcL,GACVD,OACJC,EAAMzsB,QACM8sB,KAWpB,QAASC,IAAQlkC,EAAI28B,EAAKwH,GACtBC,GAASD,CACT,IAAI/yC,GAAQurC,EAAIvrC,MACZqsC,EAAYd,EAAIc,UAChBn/B,EAAM0B,EAAG1B,IACT9K,EAAOwM,EAAGyhC,SAASjuC,IASvB,IALgB,UAAR8K,GAA4B,SAAT9K,GACnB4wC,GAAO,IAAIxvC,OAAOoL,EAAG1B,IAAK,cAAe1J,OAAOxD,EAAO,qBACnD,iEAAkE4O,EAAGyiC,YAAY,YAGzFziC,EAAG6hB,UAGH,MAFAshB,IAAkBnjC,EAAI5O,EAAOqsC,IAEtB,CAEN,IAAY,WAARn/B,EACL+lC,GAAUrkC,EAAI5O,EAAOqsC,OAEpB,IAAY,UAARn/B,GAA4B,aAAT9K,EACxB8wC,GAAiBtkC,EAAI5O,EAAOqsC,OAE3B,IAAY,UAARn/B,GAA4B,UAAT9K,EACxB+wC,GAAcvkC,EAAI5O,EAAOqsC,OAExB,IAAY,UAARn/B,GAA2B,aAARA,EACxBkmC,GAAgBxkC,EAAI5O,EAAOqsC,OAE1B,KAAKvnB,GAAOE,cAAc9X,GAG3B,MAFA6kC,IAAkBnjC,EAAI5O,EAAOqsC,IAEtB,CAGP2G,IAAO,IAAIxvC,OAAOoL,EAAG1B,IAAK,cAAe1J,OAAOxD,EAAO,QACnD,mLAEwE4O,EAAGyiC,YAAY,YAG/F,OAAO,EAEX,QAAS6B,IAAiBtkC,EAAI5O,EAAOqsC,GACjC,GAAIh+B,GAASg+B,GAAaA,EAAUh+B,OAChCglC,EAAe/B,GAAe1iC,EAAI,UAAY,OAC9C0kC,EAAmBhC,GAAe1iC,EAAI,eAAiB,OACvD2kC,EAAoBjC,GAAe1iC,EAAI,gBAAkB,OAC7DkhC,IAAQlhC,EAAI,UAAW,iBAAiBpL,OAAOxD,EAAO,KAClD,OAAOwD,OAAOxD,EAAO,KAAKwD,OAAO6vC,EAAc,SACzB,SAArBC,EACK,KAAK9vC,OAAOxD,EAAO,KACnB,OAAOwD,OAAOxD,EAAO,KAAKwD,OAAO8vC,EAAkB,OAC7D5C,GAAW9hC,EAAI,SAAU,WAAWpL,OAAOxD,EAAO,KAC9C,sBACA,qBAAqBwD,OAAO8vC,EAAkB,OAAO9vC,OAAO+vC,EAAmB,MAC/E,0BACA,WAAW/vC,OAAO6K,EAAS,MAAQglC,EAAe,IAAMA,EAAc,KACtE,mBACA,4BAA4B7vC,OAAO0uC,GAAkBlyC,EAAO,qBAAsB,MAClF,iBAAiBwD,OAAO0uC,GAAkBlyC,EAAO,6CAA8C,MAC/F,SAASwD,OAAO0uC,GAAkBlyC,EAAO,OAAQ,KAAM,MAAM,GAErE,QAASmzC,IAAcvkC,EAAI5O,EAAOqsC,GAC9B,GAAIh+B,GAASg+B,GAAaA,EAAUh+B,OAChCglC,EAAe/B,GAAe1iC,EAAI,UAAY,MAClDykC,GAAehlC,EAAS,MAAM7K,OAAO6vC,EAAc,KAAOA,EAC1DvD,GAAQlhC,EAAI,UAAW,MAAMpL,OAAOxD,EAAO,KAAKwD,OAAO6vC,EAAc,MACrE3C,GAAW9hC,EAAI,SAAUsjC,GAAkBlyC,EAAOqzC,GAAe,MAAM,GAE3E,QAASJ,IAAUrkC,EAAI5O,EAAOqsC,GAC1B,GAAIh+B,GAASg+B,GAAaA,EAAUh+B,OAChCmlC,EAAc,kJAGd,UAAUhwC,OAAO6K,EAAS,UAAY,MAAO,MAE7CiG,EAAO,uBAAuB9Q,OAAOgwC,EAAa,IACtDl/B,GAAO,GAAG9Q,OAAO8Q,EAAM,KAAK9Q,OAAO0uC,GAAkBlyC,EAFpC,8DAGjB0wC,GAAW9hC,EAAI,SAAU0F,EAAM,MAAM,GAEzC,QAAS8+B,IAAgBxkC,EAAI5O,EAAOqsC,GAChC,GAAIjqC,GAAOwM,EAAGyhC,SAASjuC,KAIfqxC,EAAU7kC,EAAGyhC,SAAS,iBAAmBzhC,EAAGyhC,SAAS,UACrDqD,EAAc9kC,EAAGyhC,SAAS,gBAAkBzhC,EAAGyhC,SAAS,QAC5D,IAAIoD,IAAYC,EAAa,CACzB,GAAIC,GAAU/kC,EAAGyhC,SAAS,gBAAkB,eAAiB,QAC7D2C,IAAO,GAAGxvC,OAAOmwC,EAAS,MAAOnwC,OAAOiwC,EAAS,iDAC7C,mEAAoE7kC,EAAGyiC,YAAYsC,IAG/F,GAAIxzB,GAAKksB,MAAiB/qB,EAAOnB,EAAGmB,KAAMjT,EAAS8R,EAAG9R,OAAQoF,EAAO0M,EAAG1M,KACpEmgC,GAAwBtyB,GAAiB,UAATlf,EAChCkgB,EAAQhB,EAAO,SAAoB,UAATlf,EAAmByxC,GAAc,QAC3D7B,EAAkB,qBAClBv+B,KACAu+B,EAAkB,8BAElB3jC,IACA2jC,EAAkB,MAAMxuC,OAAOwuC,EAAiB,KAEpD,IAAI19B,GAAO49B,GAAkBlyC,EAAOgyC,EAChC4B,KACAt/B,EAAO,qCAAqC9Q,OAAO8Q,IAEvDw7B,GAAQlhC,EAAI,QAAS,IAAIpL,OAAOxD,EAAO,MACvC0wC,GAAW9hC,EAAI0T,EAAOhO,EAAM,MAAM,IAC9Bb,GAAQpF,IACRqiC,GAAW9hC,EAAI,OAAQ,kBAQ/B,QAASklC,IAAgB/4B,GAErB,GAAIzE,EAAMyE,EAAG84B,KAAe,CAExB,GAAIE,GAAUhH,GAAO,SAAW,OAChChyB,GAAGg5B,MAAcvwC,OAAOuX,EAAG84B,IAAc94B,EAAGg5B,cACrCh5B,GAAG84B,IAKVv9B,EAAMyE,EAAGi5B,OACTj5B,EAAGk5B,UAAYzwC,OAAOuX,EAAGi5B,IAAuBj5B,EAAGk5B,kBAC5Cl5B,GAAGi5B,KAIlB,QAAS7xB,IAAkBG,EAAOuX,EAASrX,GACvC,GAAI+O,GAAUjyB,EACd,OAAO,SAASkyB,KAEA,OADFqI,EAAQn7B,MAAM,KAAMC,YAE1BujB,GAAOI,EAAOkP,EAAahP,EAAS+O,IAQhD,QAASruB,IAAIxB,EAAMm4B,EAASrX,EAASC,GAOjC,GAAIyxB,GAAiB,CACjB,GAAIC,GAAsB1e,GACtB2e,EAAava,CAEjBA,GAAUua,EAAWC,SAAW,SAAU/tC,GACtC,GAIAA,EAAEhH,SAAWgH,EAAEguC,eAEXhuC,EAAEiuC,WAAaJ,GAIf7tC,EAAEiuC,WAAa,GAIfjuC,EAAEhH,OAAOk1C,gBAAkBvrC,SAC3B,MAAOmrC,GAAW11C,MAAMqC,KAAMpC,YAI1CW,GAAO4uC,iBAAiBxsC,EAAMm4B,EAAS4a,IAAoBjyB,QAASA,EAASC,QAASA,GAAYD,GAEtG,QAASN,IAAOxgB,EAAMm4B,EAASrX,EAAS+O,IACnCA,GAAWjyB,IAAQ2uC,oBAAoBvsC,EAExCm4B,EAAQwa,UAAYxa,EAASrX,GAEjC,QAASkyB,IAAmBrJ,EAAUlwB,GAClC,IAAI/E,EAAQi1B,EAAShwB,KAAKN,MAAO3E,EAAQ+E,EAAME,KAAKN,IAApD,CAGA,GAAIA,GAAKI,EAAME,KAAKN,OAChBkH,EAAQopB,EAAShwB,KAAKN,MAG1Bzb,IAAS6b,EAAMK,KAAO6vB,EAAS7vB,IAC/Bs4B,GAAgB/4B,GAChBiH,GAAgBjH,EAAIkH,EAAO/e,GAAKgf,GAAQC,GAAmBhH,EAAMvY,SACjEtD,OAASY,IAUb,QAASy0C,IAAetJ,EAAUlwB,GAC9B,IAAI/E,EAAQi1B,EAAShwB,KAAKsM,YAAavR,EAAQ+E,EAAME,KAAKsM,UAA1D,CAGA,GAAIpoB,GAAK6iB,EACL5G,EAAML,EAAMK,IACZo5B,EAAWvJ,EAAShwB,KAAKsM,aACzBzE,EAAQ/H,EAAME,KAAKsM,cAEnBrR,EAAM4M,EAAMrG,SAAWtG,EAAO2M,EAAM2pB,kBACpC3pB,EAAQ/H,EAAME,KAAKsM,SAAW9O,KAAWqK,GAE7C,KAAK3jB,IAAOq1C,GACFr1C,IAAO2jB,KACT1H,EAAIjc,GAAO,GAGnB,KAAKA,IAAO2jB,GAAO,CAKf,GAJAd,EAAMc,EAAM3jB,GAIA,gBAARA,GAAiC,cAARA,EAAqB,CAG9C,GAFI4b,EAAMG,WACNH,EAAMG,SAASpW,OAAS,GACxBkd,IAAQwyB,EAASr1C,GACjB,QAG0B,KAA1Bic,EAAIq5B,WAAW3vC,QACfsW,EAAIquB,YAAYruB,EAAIq5B,WAAW,IAGvC,GAAY,UAARt1C,GAAmC,aAAhBic,EAAI2tB,QAAwB,CAG/C3tB,EAAIs5B,OAAS1yB,CAEb,IAAI2yB,GAAS3+B,EAAQgM,GAAO,GAAKze,OAAOye,EACpC4yB,IAAkBx5B,EAAKu5B,KACvBv5B,EAAIxb,MAAQ+0C,OAGf,IAAY,cAARx1C,GACLmpC,GAAMltB,EAAI2tB,UACV/yB,EAAQoF,EAAIy5B,WAAY,CAExBC,GAAeA,IAAgBjsC,SAAS4/B,cAAc,OACtDqM,GAAaD,UAAY,QAAQzxC,OAAO4e,EAAK,SAE7C,KADA,GAAI+yB,GAAMD,GAAaE,WAChB55B,EAAI45B,YACP55B,EAAIquB,YAAYruB,EAAI45B,WAExB,MAAOD,EAAIC,YACP55B,EAAI1S,YAAYqsC,EAAIC,gBAGvB,IAKLhzB,IAAQwyB,EAASr1C,GAGb,IACIic,EAAIjc,GAAO6iB,EAEf,MAAO9b,OAInB,QAAS0uC,IAAkBx5B,EAAK65B,GAC5B,OAEC75B,EAAI85B,YACgB,WAAhB95B,EAAI2tB,SACDoM,GAAqB/5B,EAAK65B,IAC1BG,GAAqBh6B,EAAK65B,IAEtC,QAASE,IAAqB/5B,EAAK65B,GAG/B,GAAII,IAAa,CAGjB,KACIA,EAAaxsC,SAASysC,gBAAkBl6B,EAE5C,MAAOlV,IACP,MAAOmvC,IAAcj6B,EAAIxb,QAAUq1C,EAEvC,QAASG,IAAqBh6B,EAAKsC,GAC/B,GAAI9d,GAAQwb,EAAIxb,MACZqsC,EAAY7wB,EAAIm6B,WACpB,IAAIr/B,EAAM+1B,GAAY,CAClB,GAAIA,EAAUh+B,OACV,MAAO2F,GAAShU,KAAWgU,EAAS8J,EAExC,IAAIuuB,EAAU54B,KACV,MAAOzT,GAAMyT,SAAWqK,EAAOrK,OAGvC,MAAOzT,KAAU8d,EAoBrB,QAAS83B,IAAmBv6B,GACxB,GAAIzS,GAAQitC,GAAsBx6B,EAAKzS,MAGvC,OAAOyS,GAAKy6B,YAAcj9B,EAAOwC,EAAKy6B,YAAaltC,GAASA,EAGhE,QAASitC,IAAsBE,GAC3B,MAAIzuC,OAAMC,QAAQwuC,GACP5xC,EAAS4xC,GAEQ,gBAAjBA,GACAC,GAAeD,GAEnBA,EAMX,QAASE,IAAS96B,EAAO+6B,GACrB,GACIC,GADA5gC,IAEJ,IAAI2gC,EAEA,IADA,GAAIjO,GAAY9sB,EACT8sB,EAAUJ,oBACbI,EAAYA,EAAUJ,kBAAkB1Z,SAEpC8Z,EAAU5sB,OACT86B,EAAYP,GAAmB3N,EAAU5sB,QAC1CxC,EAAOtD,EAAK4gC,IAInBA,EAAYP,GAAmBz6B,EAAME,QACtCxC,EAAOtD,EAAK4gC,EAIhB,KAFA,GAAInO,GAAa7sB,EAET6sB,EAAaA,EAAWjlC,QACxBilC,EAAW3sB,OAAS86B,EAAYP,GAAmB5N,EAAW3sB,QAC9DxC,EAAOtD,EAAK4gC,EAGpB,OAAO5gC,GA4CX,QAAS6gC,IAAY/K,EAAUlwB,GAC3B,GAAIE,GAAOF,EAAME,KACb+yB,EAAU/C,EAAShwB,IACvB,MAAIjF,EAAQiF,EAAKy6B,cACb1/B,EAAQiF,EAAKzS,QACbwN,EAAQg4B,EAAQ0H,cAChB1/B,EAAQg4B,EAAQxlC,QAHpB,CAMA,GAAIwZ,GAAK1gB,EACLkN,EAAKuM,EAAMK,IACX66B,EAAiBjI,EAAQ0H,YACzBQ,EAAkBlI,EAAQmI,iBAAmBnI,EAAQxlC,UAErD4tC,EAAWH,GAAkBC,EAC7B1tC,EAAQitC,GAAsB16B,EAAME,KAAKzS,UAI7CuS,GAAME,KAAKk7B,gBAAkBjgC,EAAM1N,EAAMiU,QAAUhE,KAAWjQ,GAASA,CACvE,IAAI6tC,GAAWR,GAAS96B,GAAO,EAC/B,KAAKzZ,IAAQ80C,GACLpgC,EAAQqgC,EAAS/0C,KACjBg1C,GAAQ9nC,EAAIlN,EAAM,GAG1B,KAAKA,IAAQ+0C,IACTr0B,EAAMq0B,EAAS/0C,MACH80C,EAAS90C,IAEjBg1C,GAAQ9nC,EAAIlN,EAAa,MAAP0gB,EAAc,GAAKA,IAcjD,QAASu0B,IAAS/nC,EAAIy/B,GAElB,GAAKA,IAASA,EAAMA,EAAI56B,QAIxB,GAAI7E,EAAGgoC,UACCvI,EAAIt/B,QAAQ,MAAQ,EACpBs/B,EAAItgC,MAAM8oC,IAAgBxqC,QAAQ,SAAU4M,GAAK,MAAOrK,GAAGgoC,UAAU1zC,IAAI+V,KAGzErK,EAAGgoC,UAAU1zC,IAAImrC,OAGpB,CACD,GAAIjsB,GAAM,IAAI5e,OAAOoL,EAAGkoC,aAAa,UAAY,GAAI,IACjD10B,GAAIrT,QAAQ,IAAMs/B,EAAM,KAAO,GAC/Bz/B,EAAGy6B,aAAa,SAAUjnB,EAAMisB,GAAK56B,SAQjD,QAASsjC,IAAYnoC,EAAIy/B,GAErB,GAAKA,IAASA,EAAMA,EAAI56B,QAIxB,GAAI7E,EAAGgoC,UACCvI,EAAIt/B,QAAQ,MAAQ,EACpBs/B,EAAItgC,MAAM8oC,IAAgBxqC,QAAQ,SAAU4M,GAAK,MAAOrK,GAAGgoC,UAAU10B,OAAOjJ,KAG5ErK,EAAGgoC,UAAU10B,OAAOmsB,GAEnBz/B,EAAGgoC,UAAU1xC,QACd0J,EAAG0+B,gBAAgB,aAGtB,CAGD,IAFA,GAAIlrB,GAAM,IAAI5e,OAAOoL,EAAGkoC,aAAa,UAAY,GAAI,KACjDE,EAAM,IAAM3I,EAAM,IACfjsB,EAAIrT,QAAQioC,IAAQ,GACvB50B,EAAMA,EAAIlR,QAAQ8lC,EAAK,IAE3B50B,GAAMA,EAAI3O,OACN2O,EACAxT,EAAGy6B,aAAa,QAASjnB,GAGzBxT,EAAG0+B,gBAAgB,UAK/B,QAAS2J,IAAkBh9B,GACvB,GAAKA,EAAL,CAIA,GAAmB,gBAARA,GAAkB,CACzB,GAAI1E,KAKJ,QAJgB,IAAZ0E,EAAIi9B,KACJr+B,EAAOtD,EAAK4hC,GAAkBl9B,EAAIvY,MAAQ,MAE9CmX,EAAOtD,EAAK0E,GACL1E,EAEN,MAAmB,gBAAR0E,GACLk9B,GAAkBl9B,OADxB,IAyCT,QAASm9B,IAAU34C,GACf44C,GAAI,WAEAA,GAAI54C,KAGZ,QAAS64C,IAAmB1oC,EAAIy/B,GAC5B,GAAIkJ,GAAoB3oC,EAAG2/B,qBAAuB3/B,EAAG2/B,sBACjDgJ,GAAkBxoC,QAAQs/B,GAAO,IACjCkJ,EAAkBtsC,KAAKojC,GACvBsI,GAAS/nC,EAAIy/B,IAGrB,QAASmJ,IAAsB5oC,EAAIy/B,GAC3Bz/B,EAAG2/B,oBACHz2B,EAASlJ,EAAG2/B,mBAAoBF,GAEpC0I,GAAYnoC,EAAIy/B,GAEpB,QAASoJ,IAAmB7oC,EAAIk2B,EAAc5N,GAC1C,GAAI/W,GAAKu3B,GAAkB9oC,EAAIk2B,GAAe1iC,EAAO+d,EAAG/d,KAAMwuB,EAAUzQ,EAAGyQ,QAAS+mB,EAAYx3B,EAAGw3B,SACnG,KAAKv1C,EACD,MAAO80B,IACX,IAAI5U,GAAQlgB,IAASw1C,GAAaC,GAAqBC,GACnDC,EAAQ,EACRjG,EAAM,WACNljC,EAAGq/B,oBAAoB3rB,EAAO01B,GAC9B9gB,KAEA8gB,EAAQ,SAAU1xC,GACdA,EAAEhH,SAAWsP,KACPmpC,GAASJ,GACX7F,IAIZnhB,YAAW,WACHonB,EAAQJ,GACR7F,KAELlhB,EAAU,GACbhiB,EAAGs/B,iBAAiB5rB,EAAO01B,GAG/B,QAASN,IAAkB9oC,EAAIk2B,GAC3B,GAQI1iC,GARA61C,EAASp3C,OAAOq3C,iBAAiBtpC,GAEjCupC,GAAoBF,EAAOG,GAAiB,UAAY,IAAIrqC,MAAM,MAClEsqC,GAAuBJ,EAAOG,GAAiB,aAAe,IAAIrqC,MAAM,MACxEuqC,EAAoBC,GAAWJ,EAAkBE,GACjDG,GAAmBP,EAAOQ,GAAgB,UAAY,IAAI1qC,MAAM,MAChE2qC,GAAsBT,EAAOQ,GAAgB,aAAe,IAAI1qC,MAAM,MACtE4qC,EAAmBJ,GAAWC,EAAiBE,GAE/C9nB,EAAU,EACV+mB,EAAY,CA+BhB,OA7BI7S,KAAiB8S,GACbU,EAAoB,IACpBl2C,EAAOw1C,GACPhnB,EAAU0nB,EACVX,EAAYU,EAAoBnzC,QAG/B4/B,IAAiB8T,GAClBD,EAAmB,IACnBv2C,EAAOw2C,GACPhoB,EAAU+nB,EACVhB,EAAYe,EAAmBxzC,SAInC0rB,EAAUlwB,KAAKuS,IAAIqlC,EAAmBK,GACtCv2C,EACIwuB,EAAU,EACJ0nB,EAAoBK,EAChBf,GACAgB,GACJ,KACVjB,EAAYv1C,EACNA,IAASw1C,GACLS,EAAoBnzC,OACpBwzC,EAAmBxzC,OACvB,IAIN9C,KAAMA,EACNwuB,QAASA,EACT+mB,UAAWA,EACXkB,aALez2C,IAASw1C,IAAckB,GAAY9qC,KAAKiqC,EAAOG,GAAiB,cAQvF,QAASG,IAAWQ,EAAQC,GAExB,KAAOD,EAAO7zC,OAAS8zC,EAAU9zC,QAC7B6zC,EAASA,EAAOv1C,OAAOu1C,EAE3B,OAAOr4C,MAAKuS,IAAIvU,MAAM,KAAMs6C,EAAU1sC,IAAI,SAAUmiB,EAAGhkB,GACnD,MAAOwuC,IAAKxqB,GAAKwqB,GAAKF,EAAOtuC,OAOrC,QAASwuC,IAAK3hB,GACV,MAAkD,KAA3CsO,OAAOtO,EAAEpxB,MAAM,GAAI,GAAGgL,QAAQ,IAAK,MAG9C,QAASgoC,IAAM/9B,EAAOg+B,GAClB,GAAIvqC,GAAKuM,EAAMK,GAEXlF,GAAM1H,EAAGwqC,YACTxqC,EAAGwqC,SAASC,WAAY,EACxBzqC,EAAGwqC,WAEP,IAAI/9B,GAAO47B,GAAkB97B,EAAME,KAAKi+B,WACxC,KAAIljC,EAAQiF,KAIR/E,EAAM1H,EAAG2qC,WAA6B,IAAhB3qC,EAAGisB,SAA7B,CAUA,IAPA,GAAIqc,GAAM77B,EAAK67B,IAAK90C,EAAOiZ,EAAKjZ,KAAMo3C,EAAan+B,EAAKm+B,WAAYC,EAAep+B,EAAKo+B,aAAcC,EAAmBr+B,EAAKq+B,iBAAkBC,EAAct+B,EAAKs+B,YAAaC,EAAgBv+B,EAAKu+B,cAAeC,EAAoBx+B,EAAKw+B,kBAAmBC,EAAcz+B,EAAKy+B,YAAaZ,EAAQ79B,EAAK69B,MAAOa,EAAa1+B,EAAK0+B,WAAYC,EAAiB3+B,EAAK2+B,eAAgBC,EAAe5+B,EAAK4+B,aAAcC,EAAS7+B,EAAK6+B,OAAQC,EAAc9+B,EAAK8+B,YAAaC,EAAkB/+B,EAAK++B,gBAAiBC,EAAWh/B,EAAKg/B,SAKpgBz3C,EAAUgvB,GACV0oB,EAAiB1oB,GAAe/uB,OAC7By3C,GAAkBA,EAAev3C,QACpCH,EAAU03C,EAAe13C,QACzB03C,EAAiBA,EAAev3C,MAEpC,IAAIw3C,IAAY33C,EAAQ0vB,aAAenX,EAAMq/B,YAC7C,KAAID,GAAaL,GAAqB,KAAXA,EAA3B,CAGA,GAAIO,GAAaF,GAAYZ,EAAcA,EAAcH,EACrDkB,EAAcH,GAAYV,EAAoBA,EAAoBH,EAClEiB,EAAUJ,GAAYX,EAAgBA,EAAgBH,EACtDmB,EAAkBL,EAAWN,GAAgBH,EAAcA,EAC3De,EAAYN,GAAY7jC,EAAWwjC,GAAUA,EAAkBhB,EAC/D4B,EAAiBP,EAAWJ,GAAeJ,EAAaA,EACxDgB,EAAqBR,EACnBH,GAAmBJ,EACnBA,EACFgB,EAAwBhnC,EAASvQ,EAAS42C,GAAYA,EAASnB,MAAQmB,EAC9C,OAAzBW,GACAC,GAAcD,EAAuB,QAAS7/B,EAElD,IAAI+/B,IAAqB,IAARhE,IAAkBrJ,GAC/BsN,EAAmBC,GAAuBP,GAC1C3jB,EAAMtoB,EAAG2qC,SAAW3/B,EAAK,WACrBshC,IACA1D,GAAsB5oC,EAAI+rC,GAC1BnD,GAAsB5oC,EAAI8rC,IAG1BxjB,EAAGmiB,WACC6B,GACA1D,GAAsB5oC,EAAI6rC,GAE9BM,GAAsBA,EAAmBnsC,IAGzCksC,GAAkBA,EAAelsC,GAErCA,EAAG2qC,SAAW,MAEbp+B,GAAME,KAAKggC,MAEZ14B,GAAexH,EAAO,SAAU,WAC5B,GAAIpY,GAAS6L,EAAGo5B,WACZsT,EAAcv4C,GAAUA,EAAOw4C,UAAYx4C,EAAOw4C,SAASpgC,EAAM5b,IACjE+7C,IACAA,EAAYpuC,MAAQiO,EAAMjO,KAC1BouC,EAAY9/B,IAAI49B,UAChBkC,EAAY9/B,IAAI49B,WAEpByB,GAAaA,EAAUjsC,EAAIsoB,KAInC0jB,GAAmBA,EAAgBhsC,GAC/BssC,IACA5D,GAAmB1oC,EAAI6rC,GACvBnD,GAAmB1oC,EAAI8rC,GACvBtD,GAAU,WACNI,GAAsB5oC,EAAI6rC,GAErBvjB,EAAGmiB,YACJ/B,GAAmB1oC,EAAI+rC,GAClBQ,IACGK,GAAgBR,GAChBrqB,WAAWuG,EAAI8jB,GAGfvD,GAAmB7oC,EAAIxM,EAAM80B,QAM7C/b,EAAME,KAAKggC,OACXlC,GAAiBA,IACjB0B,GAAaA,EAAUjsC,EAAIsoB,IAE1BgkB,GAAeC,GAChBjkB,MAGR,QAASukB,IAAMtgC,EAAOugC,GAiDlB,QAASC,KAGDzkB,EAAGmiB,aAIFl+B,EAAME,KAAKggC,MAAQzsC,EAAGo5B,cACtBp5B,EAAGo5B,WAAWuT,WAAa3sC,EAAGo5B,WAAWuT,cAAgBpgC,EAAM5b,KAC5D4b,GAERygC,GAAeA,EAAYhtC,GACvBssC,IACA5D,GAAmB1oC,EAAIitC,GACvBvE,GAAmB1oC,EAAIktC,GACvB1E,GAAU,WACNI,GAAsB5oC,EAAIitC,GAErB3kB,EAAGmiB,YACJ/B,GAAmB1oC,EAAImtC,GAClBZ,IACGK,GAAgBQ,GAChBrrB,WAAWuG,EAAI8kB,GAGfvE,GAAmB7oC,EAAIxM,EAAM80B,QAMjDukB,GAASA,EAAM7sC,EAAIsoB,GACdgkB,GAAeC,GAChBjkB,KAjFR,GAAItoB,GAAKuM,EAAMK,GAEXlF,GAAM1H,EAAG2qC,YACT3qC,EAAG2qC,SAASF,WAAY,EACxBzqC,EAAG2qC,WAEP,IAAIl+B,GAAO47B,GAAkB97B,EAAME,KAAKi+B,WACxC,IAAIljC,EAAQiF,IAAyB,IAAhBzM,EAAGisB,SACpB,MAAO6gB,IAGX,KAAIplC,EAAM1H,EAAGwqC,UAAb,CAGA,GAAIlC,GAAM77B,EAAK67B,IAAK90C,EAAOiZ,EAAKjZ,KAAMy5C,EAAaxgC,EAAKwgC,WAAYE,EAAe1gC,EAAK0gC,aAAcD,EAAmBzgC,EAAKygC,iBAAkBF,EAAcvgC,EAAKugC,YAAaH,EAAQpgC,EAAKogC,MAAOQ,EAAa5gC,EAAK4gC,WAAYC,EAAiB7gC,EAAK6gC,eAAgBC,EAAa9gC,EAAK8gC,WAAY9B,EAAWh/B,EAAKg/B,SAClTa,GAAqB,IAARhE,IAAkBrJ,GAC/BsN,EAAmBC,GAAuBK,GAC1CO,EAAwBhoC,EAASvQ,EAAS42C,GAAYA,EAASoB,MAAQpB,EACvE/jC,GAAM0lC,IACNf,GAAce,EAAuB,QAAS7gC,EAElD,IAAI+b,GAAMtoB,EAAGwqC,SAAWx/B,EAAK,WACrBhL,EAAGo5B,YAAcp5B,EAAGo5B,WAAWuT,WAC/B3sC,EAAGo5B,WAAWuT,SAASpgC,EAAM5b,KAAO,MAEpC27C,IACA1D,GAAsB5oC,EAAImtC,GAC1BvE,GAAsB5oC,EAAIktC,IAG1B5kB,EAAGmiB,WACC6B,GACA1D,GAAsB5oC,EAAIitC,GAE9BK,GAAkBA,EAAettC,KAGjC8sC,IACAO,GAAcA,EAAWrtC,IAE7BA,EAAGwqC,SAAW,MAEd+C,GACAA,EAAWR,GAGXA,KAwCR,QAASV,IAAcjkC,EAAKtV,EAAMyZ,GACX,gBAARnE,GACPkH,GAAO,yBAAyB1a,OAAO9B,EAAM,sCACzC,OAAO8B,OAAO+T,KAAKC,UAAUR,GAAM,KAAMmE,EAAMvY,SAE9C6U,MAAMT,IACXkH,GAAO,yBAAyB1a,OAAO9B,EAAM,uBACzC,8CAA+CyZ,EAAMvY,SAGjE,QAAS44C,IAAgBxkC,GACrB,MAAsB,gBAARA,KAAqBS,MAAMT,GAQ7C,QAASokC,IAAuB38C,GAC5B,GAAI2X,EAAQ3X,GACR,OAAO,CAGX,IAAI29C,GAAa39C,EAAGojB,GACpB,OAAIvL,GAAM8lC,GAEChB,GAAuB9zC,MAAMC,QAAQ60C,GAAcA,EAAW,GAAKA,IAIlE39C,EAAG+Z,SAAW/Z,EAAGyG,QAAU,EAG3C,QAASm3C,IAAOxM,EAAG10B,IACS,IAApBA,EAAME,KAAKggC,MACXnC,GAAM/9B,GAgGd,QAASmhC,IAAY1tC,EAAI+kC,EAAS/4B,GAC9B2hC,GAAoB3tC,EAAI+kC,EAAS/4B,IAE7BmyB,IAAQC,KACRrc,WAAW,WACP4rB,GAAoB3tC,EAAI+kC,EAAS/4B,IAClC,GAGX,QAAS2hC,IAAoB3tC,EAAI+kC,EAAS/4B,GACtC,GAAI5a,GAAQ2zC,EAAQ3zC,MAChBw8C,EAAa5tC,EAAGw6B,QACpB,IAAIoT,IAAel1C,MAAMC,QAAQvH,GAK7B,WAJAke,IAAO,6BAA8B1a,OAAOmwC,EAAQ5d,WAAY,OACxD,mDAAmDvyB,OAAOO,OAAO1F,UAAU2H,SACtE1H,KAAK0B,GACLkG,MAAM,GAAI,IAAK0U,EAIhC,KAAK,GADDquB,GAAUwT,EACLhyC,EAAI,EAAG8N,EAAI3J,EAAGxP,QAAQ8F,OAAQuF,EAAI8N,EAAG9N,IAE1C,GADAgyC,EAAS7tC,EAAGxP,QAAQqL,GAChB+xC,EACAvT,EAAWtvB,EAAa3Z,EAAO08C,GAASD,KAAY,EAChDA,EAAOxT,WAAaA,IACpBwT,EAAOxT,SAAWA,OAItB,IAAI/vB,EAAWwjC,GAASD,GAASz8C,GAI7B,YAHI4O,EAAG+tC,gBAAkBlyC,IACrBmE,EAAG+tC,cAAgBlyC,GAM9B+xC,KACD5tC,EAAG+tC,eAAiB,GAG5B,QAASC,IAAoB58C,EAAOZ,GAChC,MAAOA,GAAQqN,MAAM,SAAUowC,GAAK,OAAQ3jC,EAAW2jC,EAAG78C,KAE9D,QAAS08C,IAASD,GACd,MAAO,UAAYA,GAASA,EAAO3H,OAAS2H,EAAOz8C,MAEvD,QAAS88C,IAAmBx2C,GACxBA,EAAEhH,OAAOg2C,WAAY,EAEzB,QAASyH,IAAiBz2C,GAEjBA,EAAEhH,OAAOg2C,YAEdhvC,EAAEhH,OAAOg2C,WAAY,EACrB0H,GAAQ12C,EAAEhH,OAAQ,UAEtB,QAAS09C,IAAQpuC,EAAIxM,GACjB,GAAIkE,GAAI2C,SAASg0C,YAAY,aAC7B32C,GAAE42C,UAAU96C,GAAM,GAAM,GACxBwM,EAAGuuC,cAAc72C,GAIrB,QAAS82C,IAAWjiC,GAEhB,OAAOA,EAAM0sB,mBAAuB1sB,EAAME,MAASF,EAAME,KAAKi+B,WAExDn+B,EADAiiC,GAAWjiC,EAAM0sB,kBAAkB1Z,QA4E7C,QAASkvB,IAAaliC,GAClB,GAAImiC,GAAcniC,GAASA,EAAMM,gBACjC,OAAI6hC,IAAeA,EAAY/iC,KAAKnb,QAAQ0yB,SACjCurB,GAAaxsB,GAAuBysB,EAAYhiC,WAGhDH,EAGf,QAASoiC,IAAsBzuB,GAC3B,GAAIzT,MACAjc,EAAU0vB,EAAKzJ,QAEnB,KAAK,GAAI9lB,KAAOH,GAAQ00B,UACpBzY,EAAK9b,GAAOuvB,EAAKvvB,EAIrB,IAAIquB,GAAYxuB,EAAQwvB,gBACxB,KAAK,GAAIrvB,KAAOquB,GACZvS,EAAKwM,GAAStoB,IAAQquB,EAAUruB,EAEpC,OAAO8b,GAEX,QAASmiC,IAAYj6C,EAAGk6C,GAEpB,GAAI,iBAAiBzvC,KAAKyvC,EAASvwC,KAC/B,MAAO3J,GAAE,cACL2f,MAAOu6B,EAAShiC,iBAAiBqY,YAI7C,QAAS4pB,IAAoBviC,GACzB,KAAQA,EAAQA,EAAMpY,QAClB,GAAIoY,EAAME,KAAKi+B,WACX,OAAO,EAInB,QAASqE,IAAYj4B,EAAOk4B,GACxB,MAAOA,GAASr+C,MAAQmmB,EAAMnmB,KAAOq+C,EAAS1wC,MAAQwY,EAAMxY,IA8OhE,QAAS2wC,IAAe5kC,GAEhBA,EAAEuC,IAAIsiC,SACN7kC,EAAEuC,IAAIsiC,UAGN7kC,EAAEuC,IAAI+9B,UACNtgC,EAAEuC,IAAI+9B,WAGd,QAASwE,IAAe9kC,GACpBA,EAAEoC,KAAK2iC,OAAS/kC,EAAEuC,IAAIyiC,wBAE1B,QAASC,IAAiBjlC,GACtB,GAAIklC,GAASllC,EAAEoC,KAAK+iC,IAChBJ,EAAS/kC,EAAEoC,KAAK2iC,OAChBK,EAAKF,EAAOG,KAAON,EAAOM,KAC1BC,EAAKJ,EAAOK,IAAMR,EAAOQ,GAC7B,IAAIH,GAAME,EAAI,CACVtlC,EAAEoC,KAAKojC,OAAQ,CACf,IAAInnB,GAAIre,EAAEuC,IAAI5S,KACd0uB,GAAEonB,UAAYpnB,EAAEqnB,gBAAkB,aAAan7C,OAAO66C,EAAI,OAAO76C,OAAO+6C,EAAI,OAC5EjnB,EAAEsnB,mBAAqB,MAwD/B,QAASC,IAAUtjC,EAAMujC,GAErB,GAAIC,GAAQD,EAAaE,GAAWF,GAAcG,EAClD,IAAKF,EAAM/wC,KAAKuN,GAAhB,CAOA,IAJA,GAGI/N,GAAOpB,EAAO8yC,EAHdC,KACAC,KACA1tC,EAAaqtC,EAAMrtC,UAAY,EAE3BlE,EAAQuxC,EAAMhhD,KAAKwd,IAAQ,CAC/BnP,EAAQoB,EAAMpB,MAEVA,EAAQsF,IACR0tC,EAAUn0C,KAAMi0C,EAAa3jC,EAAKrV,MAAMwL,EAAWtF,IACnD+yC,EAAOl0C,KAAKsM,KAAKC,UAAU0nC,IAG/B,IAAIxQ,GAAMD,GAAajhC,EAAM,GAAGiG,OAChC0rC,GAAOl0C,KAAK,MAAMzH,OAAOkrC,EAAK,MAC9B0Q,EAAUn0C,MAAO,WAAYyjC,IAC7Bh9B,EAAYtF,EAAQoB,EAAM,GAAGtI,OAMjC,MAJIwM,GAAY6J,EAAKrW,SACjBk6C,EAAUn0C,KAAMi0C,EAAa3jC,EAAKrV,MAAMwL,IACxCytC,EAAOl0C,KAAKsM,KAAKC,UAAU0nC,MAG3BnpB,WAAYopB,EAAO5Z,KAAK,KACxB4Z,OAAQC,IAIhB,QAASC,IAAgBzwC,EAAIxP,GACzB,GAAIwxC,GAAOxxC,EAAQwxC,MAAQrB,GACvBnH,EAAcqJ,GAAiB7iC,EAAI,QACvC,IAAIw5B,EAAa,CACHyW,GAAUzW,EAAahpC,EAAQ0/C,aAErClO,EAAK,UAAWptC,OAAO4kC,EAAa,OAChC,wKAE+Dx5B,EAAGyiC,YAAmB,OAG7FjJ,IACAx5B,EAAGw5B,YAAc7wB,KAAKC,UAAU4wB,EAAYl3B,QAAQ,OAAQ,KAAKuC,QAErE,IAAI6rC,GAAehO,GAAe1iC,EAAI,SAAS,EAC3C0wC,KACA1wC,EAAG0wC,aAAeA,GAG1B,QAASC,IAAU3wC,GACf,GAAIyM,GAAO,EAOX,OANIzM,GAAGw5B,cACH/sB,GAAQ,eAAe7X,OAAOoL,EAAGw5B,YAAa,MAE9Cx5B,EAAG0wC,eACHjkC,GAAQ,SAAS7X,OAAOoL,EAAG0wC,aAAc,MAEtCjkC,EAQX,QAASmkC,IAAc5wC,EAAIxP,GACvB,GAAIwxC,GAAOxxC,EAAQwxC,MAAQrB,GACvBuG,EAAcrE,GAAiB7iC,EAAI,QACvC,IAAIknC,EAAa,CAGC+I,GAAU/I,EAAa12C,EAAQ0/C,aAErClO,EAAK,UAAWptC,OAAOsyC,EAAa,OAChC,wKAE+DlnC,EAAGyiC,YAAmB,OAGjGziC,EAAGknC,YAAcv+B,KAAKC,UAAUw+B,GAAeF,IAEnD,GAAI2J,GAAenO,GAAe1iC,EAAI,SAAS,EAC3C6wC,KACA7wC,EAAG6wC,aAAeA,GAG1B,QAASC,IAAU9wC,GACf,GAAIyM,GAAO,EAOX,OANIzM,GAAGknC,cACHz6B,GAAQ,eAAe7X,OAAOoL,EAAGknC,YAAa,MAE9ClnC,EAAG6wC,eACHpkC,GAAQ,UAAU7X,OAAOoL,EAAG6wC,aAAc,OAEvCpkC,EAgEX,QAASskC,IAAW3/C,EAAO4/C,GACvB,GAAI3tC,GAAK2tC,EAAuBC,GAA0BC,EAC1D,OAAO9/C,GAAMkR,QAAQe,EAAI,SAAUzE,GAAS,MAAOuyC,IAAYvyC,KAEnE,QAASwyC,IAAUp4C,EAAMxI,GA2HrB,QAAS6gD,GAAQn1C,GACbsB,GAAStB,EACTlD,EAAOA,EAAKs4C,UAAUp1C,GAE1B,QAASq1C,KACL,GAAIxnC,GAAQ/Q,EAAK4F,MAAM4yC,GACvB,IAAIznC,EAAO,CACP,GAAInL,IACA27B,QAASxwB,EAAM,GACfwK,SACAxK,MAAOvM,EAEX6zC,GAAQtnC,EAAM,GAAGzT,OAEjB,KADA,GAAI4sC,OAAM,GAAQD,MAAO,KAChBC,EAAMlqC,EAAK4F,MAAM6yC,OACrBxO,EAAOjqC,EAAK4F,MAAM8yC,KAAwB14C,EAAK4F,MAAM+yC,MACtD1O,EAAKl5B,MAAQvM,EACb6zC,EAAQpO,EAAK,GAAG3sC,QAChB2sC,EAAKC,IAAM1lC,EACXoB,EAAM2V,MAAMlY,KAAK4mC,EAErB,IAAIC,EAIA,MAHAtkC,GAAMgzC,WAAa1O,EAAI,GACvBmO,EAAQnO,EAAI,GAAG5sC,QACfsI,EAAMskC,IAAM1lC,EACLoB,GAInB,QAASizC,GAAejzC,GACpB,GAAI27B,GAAU37B,EAAM27B,QAChBqX,EAAahzC,EAAMgzC,UACnBE,KACgB,MAAZC,GAAmBC,GAAiBzX,IACpC0X,EAAYF,GAEZG,EAAiB3X,IAAYwX,IAAYxX,GACzC0X,EAAY1X,GAMpB,KAAK,GAHD4X,GAAQC,EAAW7X,MAAcqX,EACjCjoC,EAAI/K,EAAM2V,MAAMje,OAChBie,EAAQ,GAAI7b,OAAMiR,GACb9N,EAAI,EAAGA,EAAI8N,EAAG9N,IAAK,CACxB,GAAIoqB,GAAOrnB,EAAM2V,MAAM1Y,GACnBzK,EAAQ60B,EAAK,IAAMA,EAAK,IAAMA,EAAK,IAAM,GACzC+qB,EAAmC,MAAZzW,GAA+B,SAAZtU,EAAK,GAC7Cz1B,EAAQ6hD,4BACR7hD,EAAQwgD,oBACdz8B,GAAM1Y,IACF/I,KAAMmzB,EAAK,GACX70B,MAAO2/C,GAAW3/C,EAAO4/C,IAEzBxgD,EAAQ8hD,oBACR/9B,EAAM1Y,GAAGkO,MAAQkc,EAAKlc,MAAQkc,EAAK,GAAGrnB,MAAM,QAAQtI,OACpDie,EAAM1Y,GAAGqnC,IAAMjd,EAAKid,KAGvBiP,IACDI,EAAMl2C,MACFiC,IAAKi8B,EACLiY,cAAejY,EAAQtxB,cACvBsL,MAAOA,EACPxK,MAAOnL,EAAMmL,MACbm5B,IAAKtkC,EAAMskC,MAEf6O,EAAUxX,GAEV/pC,EAAQuZ,OACRvZ,EAAQuZ,MAAMwwB,EAAShmB,EAAO49B,EAAOvzC,EAAMmL,MAAOnL,EAAMskC,KAGhE,QAAS+O,GAAY1X,EAASxwB,EAAOm5B,GACjC,GAAIsM,GAAKiD,CAMT,IALa,MAAT1oC,IACAA,EAAQvM,GACD,MAAP0lC,IACAA,EAAM1lC,GAEN+8B,EAEA,IADAkY,EAAoBlY,EAAQtxB,cACvBumC,EAAM+C,EAAMj8C,OAAS,EAAGk5C,GAAO,GAC5B+C,EAAM/C,GAAKgD,gBAAkBC,EADEjD,SAQvCA,GAAM,CAEV,IAAIA,GAAO,EAAG,CAEV,IAAK,GAAI3zC,GAAI02C,EAAMj8C,OAAS,EAAGuF,GAAK2zC,EAAK3zC,KAChCA,EAAI2zC,IAAQjV,IAAY/pC,EAAQwxC,MACjCxxC,EAAQwxC,KAAK,QAAQptC,OAAO29C,EAAM12C,GAAGyC,IAAK,+BACtCyL,MAAOwoC,EAAM12C,GAAGkO,MAChBm5B,IAAKqP,EAAM12C,GAAGqnC,MAGlB1yC,EAAQ0yC,KACR1yC,EAAQ0yC,IAAIqP,EAAM12C,GAAGyC,IAAKyL,EAAOm5B,EAIzCqP,GAAMj8C,OAASk5C,EACfuC,EAAUvC,GAAO+C,EAAM/C,EAAM,GAAGlxC,QAEL,OAAtBm0C,EACDjiD,EAAQuZ,OACRvZ,EAAQuZ,MAAMwwB,MAAa,EAAMxwB,EAAOm5B,GAGjB,MAAtBuP,IACDjiD,EAAQuZ,OACRvZ,EAAQuZ,MAAMwwB,MAAa,EAAOxwB,EAAOm5B,GAEzC1yC,EAAQ0yC,KACR1yC,EAAQ0yC,IAAI3I,EAASxwB,EAAOm5B,IA7HxC,IAnHA,GAKI5tB,GAAMy8B,EALNQ,KACAT,EAAathD,EAAQshD,WACrBM,EAAa5hD,EAAQ4hD,YAAcM,GACnCR,EAAmB1hD,EAAQ0hD,kBAAoBQ,GAC/Cl1C,EAAQ,EA+GLxE,GAAM,CAET,GAAgB,UA/GN,WAGV,GAFAsc,EAAOtc,EAEF+4C,GAAYY,GAAmBZ,GAwE/B,CACD,GAAIa,GAAiB,EACjBC,EAAed,EAAQ9oC,cACvB6pC,EAAeC,GAAQF,KACtBE,GAAQF,GAAgB,GAAIrwC,QAAO,kBAAoBqwC,EAAe,UAAW,MAClFG,EAAOh6C,EAAKsJ,QAAQwwC,EAAc,SAAUphD,EAAKib,EAAM6X,GAavD,MAZAouB,GAAiBpuB,EAAOluB,OACnBq8C,GAAmBE,IAAkC,aAAjBA,IACrClmC,EAAOA,EACFrK,QAAQ,sBAAuB,MAC/BA,QAAQ,4BAA6B,OAE1C2wC,GAAyBJ,EAAclmC,KACvCA,EAAOA,EAAKrV,MAAM,IAElB9G,EAAQ0iD,OACR1iD,EAAQ0iD,MAAMvmC,GAEX,IAEXnP,IAASxE,EAAK1C,OAAS08C,EAAK18C,OAC5B0C,EAAOg6C,EACPf,EAAYY,EAAcr1C,EAAQo1C,EAAgBp1C,OA9FR,CAC1C,GAAI21C,GAAUn6C,EAAKmH,QAAQ,IAC3B,IAAgB,IAAZgzC,EAAe,CAEf,GAAIC,GAAQh0C,KAAKpG,GAAO,CACpB,GAAIq6C,GAAar6C,EAAKmH,QAAQ,SAC9B,IAAIkzC,GAAc,EAKd,MAJI7iD,GAAQ8iD,mBAAqB9iD,EAAQ4iD,SACrC5iD,EAAQ4iD,QAAQp6C,EAAKs4C,UAAU,EAAG+B,GAAa71C,EAAOA,EAAQ61C,EAAa,GAE/EhC,EAAQgC,EAAa,GACd,WAIf,GAAIE,GAAmBn0C,KAAKpG,GAAO,CAC/B,GAAIw6C,GAAiBx6C,EAAKmH,QAAQ,KAClC,IAAIqzC,GAAkB,EAElB,MADAnC,GAAQmC,EAAiB,GAClB,WAIf,GAAIC,GAAez6C,EAAK4F,MAAM80C,GAC9B,IAAID,EAEA,MADApC,GAAQoC,EAAa,GAAGn9C,QACjB,UAGX,IAAIq9C,GAAc36C,EAAK4F,MAAM4lB,GAC7B,IAAImvB,EAAa,CACb,GAAIC,GAAWp2C,CAGf,OAFA6zC,GAAQsC,EAAY,GAAGr9C,QACvB27C,EAAY0B,EAAY,GAAIC,EAAUp2C,GAC/B,WAGX,GAAIq2C,GAAgBtC,GACpB,IAAIsC,EAKA,MAJAhC,GAAegC,GACXZ,GAAyBY,EAActZ,QAASvhC,IAChDq4C,EAAQ,GAEL,WAGf,GAAI1kC,OAAO,GAAQqmC,MAAO,GAAQ77B,MAAO,EACzC,IAAIg8B,GAAW,EAAG,CAEd,IADAH,EAAOh6C,EAAK1B,MAAM67C,KACV3uB,GAAOplB,KAAK4zC,IACfxB,GAAapyC,KAAK4zC,IAClBI,GAAQh0C,KAAK4zC,IACbO,GAAmBn0C,KAAK4zC,KAEzB77B,EAAO67B,EAAK7yC,QAAQ,IAAK,IACd,IAEXgzC,GAAWh8B,EACX67B,EAAOh6C,EAAK1B,MAAM67C,EAEtBxmC,GAAO3T,EAAKs4C,UAAU,EAAG6B,GAEzBA,EAAU,IACVxmC,EAAO3T,GAEP2T,GACA0kC,EAAQ1kC,EAAKrW,QAEb9F,EAAQ0iD,OAASvmC,GACjBnc,EAAQ0iD,MAAMvmC,EAAMnP,EAAQmP,EAAKrW,OAAQkH,GA2BjD,GAAIxE,IAASsc,EAOT,MANA9kB,GAAQ0iD,OAAS1iD,EAAQ0iD,MAAMl6C,IAC1Bu5C,EAAMj8C,QAAU9F,EAAQwxC,MACzBxxC,EAAQwxC,KAAK,0CAA2CptC,OAAOoE,EAAM,MACjE+Q,MAAOvM,EAAQxE,EAAK1C,SAGrB,WAMP,MAGR27C,IAsJJ,QAAS6B,IAAiBx1C,EAAKiW,EAAOpgB,GAClC,OACIX,KAAM,EACN8K,IAAKA,EACLojC,UAAWntB,EACXktB,SAAUsS,GAAax/B,GACvBkuB,eACAtuC,OAAQA,EACRuY,aAMR,QAASsnC,IAAMhwB,EAAUxzB,GAwBrB,QAASyjD,GAASrT,EAAKC,GACdqT,IACDA,GAAS,EACTlS,GAAKpB,EAAKC,IAGlB,QAASsT,GAAaC,GAuBlB,GAtBAC,EAAqBD,GAChBE,GAAWF,EAAQG,YACpBH,EAAUI,GAAeJ,EAAS5jD,IAGjC+hD,EAAMj8C,QAAU89C,IAAYK,IAEzBA,EAAKC,KAAON,EAAQO,QAAUP,EAAQQ,OAElCC,EAAqBT,GAEzBU,GAAeL,GACX3U,IAAKsU,EAAQO,OACbI,MAAOX,KAIXH,EAAS,gJAEqClqC,MAAOqqC,EAAQrqC,SAGjEirC,IAAkBZ,EAAQa,UAC1B,GAAIb,EAAQO,QAAUP,EAAQQ,KAC1BM,GAAoBd,EAASY,OAE5B,CACD,GAAIZ,EAAQe,UAAW,CAInB,GAAIr5B,GAASs4B,EAAQgB,YAAc,aAClCJ,EAAch/B,cAAgBg/B,EAAch/B,iBAAmB8F,GAAUs4B,EAE9EY,EAActoC,SAASrQ,KAAK+3C,GAC5BA,EAAQjgD,OAAS6gD,EAKzBZ,EAAQ1nC,SAAW0nC,EAAQ1nC,SAAS/O,OAAO,SAAU0M,GAAK,OAAQA,EAAE8qC,YAEpEd,EAAqBD,GAEjBA,EAAQ79B,MACR+9B,GAAS,GAETe,GAAiBjB,EAAQ91C,OACzBg3C,GAAQ,EAGZ,KAAK,GAAIz5C,GAAI,EAAGA,EAAI05C,GAAej/C,OAAQuF,IACvC05C,GAAe15C,GAAGu4C,EAAS5jD,GAGnC,QAAS6jD,GAAqBr0C,GAE1B,IAAKs1C,EAED,IADA,GAAIE,OAAW,IACPA,EAAWx1C,EAAG0M,SAAS1M,EAAG0M,SAASpW,OAAS,KAC9B,IAAlBk/C,EAAShiD,MACS,MAAlBgiD,EAAS7oC,MACT3M,EAAG0M,SAASiB,MAIxB,QAASknC,GAAqB70C,GACX,SAAXA,EAAG1B,KAA6B,aAAX0B,EAAG1B,KACxB21C,EAAS,eAAer/C,OAAOoL,EAAG1B,IAAK,+CACnC,2BAA6ByL,MAAO/J,EAAG+J,QAE3C/J,EAAGyhC,SAASjsC,eAAe,UAC3By+C,EAAS,4FAC4Bj0C,EAAGyiC,YAAY,UAvG5DT,GAAOxxC,EAAQwxC,MAAQrB,GACvB0U,GAAmB7kD,EAAQilD,UAAY/C,GACvCgD,GAAsBllD,EAAQsoB,aAAe45B,GAC7CiD,GAA0BnlD,EAAQ2lB,iBAAmBu8B,EACrD,IAAIt8B,GAAgB5lB,EAAQ4lB,eAAiBs8B,EAC7CkD,IAAiB,SAAU51C,GACvB,UAAUA,EAAG6hB,WACT7hB,EAAGyhC,SAAS,QACZzhC,EAAGyhC,SAAS,eACOrrB,EAAjBpW,EAAGyhC,SAAS1rB,GAAmB/V,EAAGyhC,SAAS1rB,GAAoB/V,EAAG1B,OAE5Eu3C,GAAa/U,GAAoBtwC,EAAQuwC,QAAS,iBAClD+U,GAAgBhV,GAAoBtwC,EAAQuwC,QAAS,oBACrDwU,GAAiBzU,GAAoBtwC,EAAQuwC,QAAS,qBACtDmP,GAAa1/C,EAAQ0/C,UACrB,IAGIuE,GACAO,EAJAzC,KACAwD,GAAoD,IAA/BvlD,EAAQulD,mBAC7BC,EAAmBxlD,EAAQylD,WAG3B3B,GAAS,EACTgB,GAAQ,EACRpB,GAAS,CAiRb,OA7LA9C,IAAUptB,GACNge,KAAMA,GACN8P,WAAYthD,EAAQshD,WACpBM,WAAY5hD,EAAQ4hD,WACpBF,iBAAkB1hD,EAAQ0hD,iBAC1BlB,qBAAsBxgD,EAAQwgD,qBAC9BqB,4BAA6B7hD,EAAQ6hD,4BACrCiB,kBAAmB9iD,EAAQ0lD,SAC3B5D,kBAAmB9hD,EAAQ8hD,kBAC3BvoC,MAAO,SAAUzL,EAAKiW,EAAO49B,EAAOpoC,EAAOm5B,GAGvC,GAAIn2B,GAAMioC,GAAiBA,EAAcjoC,IAAO4oC,GAAwBr3C,EAGpE6/B,KAAe,QAAPpxB,IACRwH,EAAQ4hC,GAAc5hC,GAE1B,IAAI6/B,GAAUN,GAAiBx1C,EAAKiW,EAAOygC,EACvCjoC,KACAqnC,EAAQrnC,GAAKA,GAGTvc,EAAQ8hD,oBACR8B,EAAQrqC,MAAQA,EAChBqqC,EAAQlR,IAAMA,EACdkR,EAAQ3R,YAAc2R,EAAQ1S,UAAUviB,OAAO,SAAUi3B,EAAWnT,GAEhE,MADAmT,GAAUnT,EAAKnwC,MAAQmwC,EAChBmT,QAGf7hC,EAAM9W,QAAQ,SAAUwlC,GAChBoT,GAAmBj3C,KAAK6jC,EAAKnwC,OAC7BkvC,GAAK,oGACgCxxC,EAAQ8hD,mBAErCvoC,MAAOk5B,EAAKl5B,MAAQk5B,EAAKnwC,KAAKqN,QAAQ,KACtC+iC,IAAKD,EAAKl5B,MAAQk5B,EAAKnwC,KAAKwD,YAE9BhF,MAIdglD,GAAelC,KAAajmC,OAC5BimC,EAAQa,WAAY,EACpBjT,GAAK,yIAEG,IAAIptC,OAAO0J,EAAK,KAChB,iCAAmCyL,MAAOqqC,EAAQrqC,QAG9D,KAAK,GAAIlO,GAAI,EAAGA,EAAIi6C,GAAcx/C,OAAQuF,IACtCu4C,EAAU0B,GAAcj6C,GAAGu4C,EAAS5jD,IAAY4jD,CAE/CE,KACDiC,GAAWnC,GACPA,EAAQ79B,MACR+9B,GAAS,IAGbe,GAAiBjB,EAAQ91C,OACzBg3C,GAAQ,GAERhB,EACAkC,GAAgBpC,GAEVA,EAAQG,YAEdkC,GAAWrC,GACXsC,GAAUtC,GACVuC,GAAYvC,IAEXK,IACDA,EAAOL,EAEHS,EAAqBJ,IAGxBtC,EAKDgC,EAAaC,IAJbY,EAAgBZ,EAChB7B,EAAMl2C,KAAK+3C,KAMnBlR,IAAK,SAAU5kC,EAAKyL,EAAOm5B,GACvB,GAAIkR,GAAU7B,EAAMA,EAAMj8C,OAAS,EAEnCi8C,GAAMj8C,QAAU,EAChB0+C,EAAgBzC,EAAMA,EAAMj8C,OAAS,GACjC9F,EAAQ8hD,oBACR8B,EAAQlR,IAAMA,GAElBiR,EAAaC,IAEjBlB,MAAO,SAAUvmC,EAAM5C,EAAOm5B,GAC1B,IAAK8R,EAWD,YATQroC,IAASqX,EACTiwB,EAAS,sEAAwElqC,MAAOA,KAElF4C,EAAOA,EAAK9H,SAClBovC,EAAS,SAAUr/C,OAAO+X,EAAM,4CAC5B5C,MAAOA,IAQvB,KAAIo0B,IACsB,aAAtB6W,EAAc12C,KACd02C,EAAcvT,SAASmN,cAAgBjiC,EAF3C,CAKA,GAAID,GAAWsoC,EAActoC,QAuB7B,IArBIC,EADA2oC,GAAS3oC,EAAK9H,OACP+xC,GAAU5B,GACXroC,EACAkqC,GAAiBlqC,GAEjBD,EAASpW,OAIV0/C,EACoB,aAArBA,GAGOc,GAAY13C,KAAKuN,GAAQ,GAGzB,IAIJopC,EAAqB,IAAM,GAb3B,GAeD,CACDT,GAA8B,aAArBU,IAEVrpC,EAAOA,EAAKrK,QAAQy0C,GAAc,KAEtC,IAAIpwC,OAAM,GACNmQ,MAAQ,IACPw9B,GAAmB,MAAT3nC,IAAiBhG,EAAMspC,GAAUtjC,EAAMujC,KAClDp5B,GACItjB,KAAM,EACN2zB,WAAYxgB,EAAIwgB,WAChBopB,OAAQ5pC,EAAI4pC,OACZ5jC,KAAMA,GAGI,MAATA,GACJD,EAASpW,QAC6B,MAAvCoW,EAASA,EAASpW,OAAS,GAAGqW,OAC9BmK,GACItjB,KAAM,EACNmZ,KAAMA,IAGVmK,IACItmB,EAAQ8hD,oBACRx7B,EAAM/M,MAAQA,EACd+M,EAAMosB,IAAMA,GAEhBx2B,EAASrQ,KAAKya,OAI1Bs8B,QAAS,SAAUzmC,EAAM5C,EAAOm5B,GAG5B,GAAI8R,EAAe,CACf,GAAIl+B,IACAtjB,KAAM,EACNmZ,KAAMA,EACNM,WAAW,EAEXzc,GAAQ8hD,oBACRx7B,EAAM/M,MAAQA,EACd+M,EAAMosB,IAAMA,GAEhB8R,EAActoC,SAASrQ,KAAKya,OAIjC29B,EAEX,QAAS8B,IAAWv2C,GACqB,MAAjC6iC,GAAiB7iC,EAAI,WACrBA,EAAGuW,KAAM,GAGjB,QAASigC,IAAgBx2C,GACrB,GAAIgJ,GAAOhJ,EAAG0hC,UACV3lC,EAAMiN,EAAK1S,MACf,IAAIyF,EAEA,IAAK,GADDwY,GAASvU,EAAGuU,MAAQ,GAAI7b,OAAMqD,GACzBF,EAAI,EAAGA,EAAIE,EAAKF,IACrB0Y,EAAM1Y,IACF/I,KAAMkW,EAAKnN,GAAG/I,KACd1B,MAAOuX,KAAKC,UAAUI,EAAKnN,GAAGzK,QAEb,MAAjB4X,EAAKnN,GAAGkO,QACRwK,EAAM1Y,GAAGkO,MAAQf,EAAKnN,GAAGkO,MACzBwK,EAAM1Y,GAAGqnC,IAAMl6B,EAAKnN,GAAGqnC,SAIzBljC,GAAGuW,MAETvW,EAAGqhC,OAAQ,GAGnB,QAASmT,IAAeJ,EAAS5jD,GAC7BwmD,GAAW5C,GAGXA,EAAQ/S,OACH+S,EAAQzjD,MAAQyjD,EAAQp+B,cAAgBo+B,EAAQ1S,UAAUprC,OAC/D2gD,GAAW7C,GACX8C,GAAmB9C,GACnB+C,GAAkB/C,GAClBgD,GAAiBhD,EACjB,KAAK,GAAIv4C,GAAI,EAAGA,EAAIg6C,GAAWv/C,OAAQuF,IACnCu4C,EAAUyB,GAAWh6C,GAAGu4C,EAAS5jD,IAAY4jD,CAGjD,OADAiD,IAAajD,GACNA,EAEX,QAAS4C,IAAWh3C,GAChB,GAAI8/B,GAAM4C,GAAe1iC,EAAI,MAC7B,IAAI8/B,EAAK,CAKD,GAHe,aAAX9/B,EAAG1B,KACH0jC,GAAK,sEAAuEQ,GAAkBxiC,EAAI,QAElGA,EAAGs3C,IAAK,CACR,GAAI13C,GAAWI,EAAGu3C,WAAav3C,EAAGw3C,UAC9BC,EAAWz3C,EAAG7L,MACdyL,IACAA,IAAakgC,GACb2X,GACiB,qBAAjBA,EAASn5C,KACT0jC,GAAK,oGACsCQ,GAAkBxiC,EAAI,QAAQ,GAIrFA,EAAGrP,IAAMmvC,GAGjB,QAASmX,IAAWj3C,GAChB,GAAI+Q,GAAM2xB,GAAe1iC,EAAI,MACzB+Q,KACA/Q,EAAG+Q,IAAMA,EACT/Q,EAAG27B,SAAW+b,GAAW13C,IAGjC,QAASy2C,IAAWz2C,GAChB,GAAI8/B,EACJ,IAAKA,EAAM+C,GAAiB7iC,EAAI,SAAW,CACvC,GAAI2G,GAAMgxC,GAAS7X,EACfn5B,GACAsD,EAAOjK,EAAI2G,GAGXq7B,GAAK,6BAA6BptC,OAAOkrC,GAAM9/B,EAAGyiC,YAAY,WAI1E,QAASkV,IAAS7X,GACd,GAAI8X,GAAU9X,EAAIlhC,MAAMi5C,GACxB,IAAKD,EAAL,CAEA,GAAIjxC,KACJA,GAAI2wC,IAAMM,EAAQ,GAAG/yC,MACrB,IAAIizC,GAAQF,EAAQ,GAAG/yC,OAAOvC,QAAQy1C,GAAe,IACjDC,EAAgBF,EAAMl5C,MAAMq5C,GAWhC,OAVID,IACArxC,EAAImxC,MAAQA,EAAMx1C,QAAQ21C,GAAe,IAAIpzC,OAC7C8B,EAAI6wC,UAAYQ,EAAc,GAAGnzC,OAC7BmzC,EAAc,KACdrxC,EAAI4wC,UAAYS,EAAc,GAAGnzC,SAIrC8B,EAAImxC,MAAQA,EAETnxC,GAEX,QAAS+vC,IAAU12C,GACf,GAAI8/B,GAAM+C,GAAiB7iC,EAAI,OAC/B,IAAI8/B,EACA9/B,EAAG00C,GAAK5U,EACRgV,GAAe90C,GACX8/B,IAAKA,EACLiV,MAAO/0C,QAGV,CACqC,MAAlC6iC,GAAiB7iC,EAAI,YACrBA,EAAG40C,MAAO,EAEd,IAAID,GAAS9R,GAAiB7iC,EAAI,YAC9B20C,KACA30C,EAAG20C,OAASA,IAIxB,QAASO,IAAoBl1C,EAAI7L,GAC7B,GAAImqB,GAAO45B,GAAgB/jD,EAAOuY,SAC9B4R,IAAQA,EAAKo2B,GACbI,GAAex2B,GACXwhB,IAAK9/B,EAAG20C,OACRI,MAAO/0C,IAIXgiC,GAAK,KAAKptC,OAAOoL,EAAG20C,OAAS,YAAc30C,EAAG20C,OAAS,IAAM,OAAQ,KACjE,oBAAoB//C,OAAOoL,EAAG1B,IAAK,iCAAkC0B,EAAGyiC,YAAYziC,EAAG20C,OAAS,YAAc,WAG1H,QAASuD,IAAgBxrC,GAErB,IADA,GAAI7Q,GAAI6Q,EAASpW,OACVuF,KAAK,CACR,GAAyB,IAArB6Q,EAAS7Q,GAAGrI,KACZ,MAAOkZ,GAAS7Q,EAGS,OAArB6Q,EAAS7Q,GAAG8Q,MACZq1B,GAAK,SAAUptC,OAAO8X,EAAS7Q,GAAG8Q,KAAK9H,OAAQ,mCAC3C,mBAAoB6H,EAAS7Q,IAErC6Q,EAASiB,OAIrB,QAASmnC,IAAe90C,EAAIm4C,GACnBn4C,EAAGo4C,eACJp4C,EAAGo4C,iBAEPp4C,EAAGo4C,aAAa/7C,KAAK87C,GAEzB,QAASxB,IAAY32C,GAEL,MADD6iC,GAAiB7iC,EAAI,YAE5BA,EAAGgL,MAAO,GAKlB,QAASksC,IAAmBl3C,GACxB,GAAIm1C,EACW,cAAXn1C,EAAG1B,KACH62C,EAAYtS,GAAiB7iC,EAAI,SAE7Bm1C,GACAnT,GAAK,0NAGuBhiC,EAAGyiC,YAAmB,OAAG,GAEzDziC,EAAGm1C,UAAYA,GAAatS,GAAiB7iC,EAAI,gBAE3Cm1C,EAAYtS,GAAiB7iC,EAAI,iBAEnCA,EAAGyhC,SAAS,UACZO,GAAK,wDAAwDptC,OAAOoL,EAAG1B,IAAK,MACxE,kGACmC0B,EAAGyiC,YAAY,eAAe,GAEzEziC,EAAGm1C,UAAYA,EAGnB,IAAIC,GAAa1S,GAAe1iC,EAAI,OAYhC,IAXAo1C,IACAp1C,EAAGo1C,WAA4B,OAAfA,EAAsB,YAAcA,EACpDp1C,EAAGq4C,qBAAuBr4C,EAAGyhC,SAAS,WAAYzhC,EAAGyhC,SAAS,gBAG/C,aAAXzhC,EAAG1B,KAAuB0B,EAAGm1C,WAC7B7T,GAAQthC,EAAI,OAAQo1C,EAAY5S,GAAkBxiC,EAAI,UAK3C,aAAXA,EAAG1B,IAAoB,CAEvB,GAAIg6C,GAActV,GAAwBhjC,EAAIu4C,GAC9C,IAAID,EAAa,EAELt4C,EAAGo1C,YAAcp1C,EAAGm1C,YACpBnT,GAAK,qDAAsDhiC,GAE3DA,EAAG7L,SAAWyhD,GAAe51C,EAAG7L,SAChC6tC,GAAK,qFAC0BhiC,EAGvC,IAAIuR,GAAKinC,GAAYF,GAAcv8B,EAASxK,EAAGze,KAAMquC,EAAU5vB,EAAG4vB,OAClEnhC,GAAGo1C,WAAar5B,EAChB/b,EAAGq4C,kBAAoBlX,EACvBnhC,EAAGm1C,UAAYmD,EAAYlnD,OAASqnD,QAGvC,CAED,GAAIH,GAActV,GAAwBhjC,EAAIu4C,GAC9C,IAAID,EAAa,CAEJ1C,GAAe51C,IAChBgiC,GAAK,uDAAwDsW,IAE7Dt4C,EAAGm1C,WAAan1C,EAAGo1C,aACnBpT,GAAK,qDAAsDhiC,GAE3DA,EAAGgW,aACHgsB,GAAK,iHACsDsW,EAInE,IAAIz8B,GAAQ7b,EAAGgW,cAAgBhW,EAAGgW,gBAC9BqF,EAAKm9B,GAAYF,GAAcI,EAASr9B,EAAGvoB,KAAMquC,EAAU9lB,EAAG8lB,QAC9DwX,EAAmB98B,EAAM68B,GAAU5E,GAAiB,cAAgB9zC,EACxE24C,GAAgBvD,WAAasD,EAC7BC,EAAgBN,kBAAoBlX,EACpCwX,EAAgBjsC,SAAW1M,EAAG0M,SAAS/O,OAAO,SAAU0M,GACpD,IAAKA,EAAE8qC,UAEH,MADA9qC,GAAElW,OAASwkD,GACJ,IAGfA,EAAgBxD,UAAYmD,EAAYlnD,OAASqnD,GAEjDz4C,EAAG0M,YAEH1M,EAAGqhC,OAAQ,IAK3B,QAASmX,IAAYzT,GACjB,GAAIjyC,GAAOiyC,EAAQjyC,KAAKwP,QAAQi2C,GAAQ,GASxC,OARKzlD,KACuB,MAApBiyC,EAAQjyC,KAAK,GACbA,EAAO,UAGPkvC,GAAK,gDAAiD+C,IAGvD6T,GAAax5C,KAAKtM,IAEfA,KAAMA,EAAKwE,MAAM,GAAI,GAAI6pC,SAAS,IAElCruC,KAAM,IAAK8B,OAAO9B,EAAM,KAAOquC,SAAS,GAGtD,QAASgW,IAAkBn3C,GACR,SAAXA,EAAG1B,MACH0B,EAAG64C,SAAWnW,GAAe1iC,EAAI,QAC7BA,EAAGrP,KACHqxC,GAAK,8JAE6CQ,GAAkBxiC,EAAI,SAIpF,QAASo3C,IAAiBp3C,GACtB,GAAI+kC,IACCA,EAAUrC,GAAe1iC,EAAI,SAC9BA,EAAG6hB,UAAYkjB,GAE4B,MAA3ClC,GAAiB7iC,EAAI,qBACrBA,EAAG2yB,gBAAiB,GAG5B,QAAS0kB,IAAar3C,GAClB,GACInE,GAAG8N,EAAG7W,EAAM+qC,EAASzsC,EAAOqsC,EAAWqb,EAASC,EADhD/vC,EAAOhJ,EAAG0hC,SAEd,KAAK7lC,EAAI,EAAG8N,EAAIX,EAAK1S,OAAQuF,EAAI8N,EAAG9N,IAGhC,GAFA/I,EAAO+qC,EAAU70B,EAAKnN,GAAG/I,KACzB1B,EAAQ4X,EAAKnN,GAAGzK,MACZ4nD,GAAM55C,KAAKtM,GASX,GAPAkN,EAAGi5C,aAAc,EAEjBxb,EAAYyb,GAAepmD,EAAKwP,QAAQ02C,GAAO,KAE3Cvb,IACA3qC,EAAOA,EAAKwP,QAAQ62C,GAAY,KAEhCC,GAAOh6C,KAAKtM,GAEZA,EAAOA,EAAKwP,QAAQ82C,GAAQ,IAC5BhoD,EAAQyuC,GAAazuC,GACrB2nD,EAAYH,GAAax5C,KAAKtM,GAC1BimD,IACAjmD,EAAOA,EAAKwE,MAAM,GAAI,IAEE,IAAxBlG,EAAMyT,OAAOvO,QACb0rC,GAAK,uEAAwEptC,OAAO9B,EAAM,MAE1F2qC,IACIA,EAAUtK,OAAS4lB,GAEN,eADbjmD,EAAOmmB,GAASnmB,MAEZA,EAAO,aAEX2qC,EAAU4b,QAAUN,IACpBjmD,EAAOmmB,GAASnmB,IAEhB2qC,EAAU6b,OACVR,EAAUxV,GAAkBlyC,EAAO,UAC9B2nD,EAQDjX,GAAW9hC,EAAI,cAAgBpL,OAAO9B,EAAM,KAAMgmD,EAAS,MAAM,EAAO9W,GAAMh5B,EAAKnN,IAAI,IAPvFimC,GAAW9hC,EAAI,UAAUpL,OAAOqkB,GAASnmB,IAAQgmD,EAAS,MAAM,EAAO9W,GAAMh5B,EAAKnN,IAC9E4Y,GAAU3hB,KAAUmmB,GAASnmB,IAC7BgvC,GAAW9hC,EAAI,UAAUpL,OAAO6f,GAAU3hB,IAAQgmD,EAAS,MAAM,EAAO9W,GAAMh5B,EAAKnN,OAU9F4hC,GAAaA,EAAUtK,OACtBnzB,EAAG6hB,WAAa6zB,GAAoB11C,EAAG1B,IAAK0B,EAAGyhC,SAASjuC,KAAMV,GAChEouC,GAAQlhC,EAAIlN,EAAM1B,EAAO4X,EAAKnN,GAAIk9C,GAGlCzX,GAAQthC,EAAIlN,EAAM1B,EAAO4X,EAAKnN,GAAIk9C,OAGrC,IAAIQ,GAAKn6C,KAAKtM,GAEfA,EAAOA,EAAKwP,QAAQi3C,GAAM,IAC1BR,EAAYH,GAAax5C,KAAKtM,GAC1BimD,IACAjmD,EAAOA,EAAKwE,MAAM,GAAI,IAE1BwqC,GAAW9hC,EAAIlN,EAAM1B,EAAOqsC,GAAW,EAAOuE,GAAMh5B,EAAKnN,GAAIk9C,OAE5D,CAEDjmD,EAAOA,EAAKwP,QAAQ02C,GAAO,GAE3B,IAAIQ,GAAW1mD,EAAK8L,MAAM66C,IACtB79C,EAAM49C,GAAYA,EAAS,EAC/BT,IAAY,EACRn9C,IACA9I,EAAOA,EAAKwE,MAAM,IAAKsE,EAAItF,OAAS,IAChCsiD,GAAax5C,KAAKxD,KAClBA,EAAMA,EAAItE,MAAM,GAAI,GACpByhD,GAAY,IAGpBpX,GAAa3hC,EAAIlN,EAAM+qC,EAASzsC,EAAOwK,EAAKm9C,EAAWtb,EAAWz0B,EAAKnN,IAC1D,UAAT/I,GACA4mD,GAAmB15C,EAAI5O,OAI9B,CAGG,GAAIuV,GAAMspC,GAAU7+C,EAAO8+C,GACvBvpC,IACAq7B,GAAK,GAAGptC,OAAO9B,EAAM,MAAO8B,OAAOxD,EAAO,OACtC,kKAEyD4X,EAAKnN,IAG1EylC,GAAQthC,EAAIlN,EAAM6V,KAAKC,UAAUxX,GAAQ4X,EAAKnN,KAGzCmE,EAAG6hB,WACK,UAAT/uB,GACA4iD,GAAoB11C,EAAG1B,IAAK0B,EAAGyhC,SAASjuC,KAAMV,IAC9CouC,GAAQlhC,EAAIlN,EAAM,OAAQkW,EAAKnN,KAK/C,QAAS67C,IAAW13C,GAEhB,IADA,GAAI7L,GAAS6L,EACN7L,GAAQ,CACX,OAAmB7C,KAAf6C,EAAOmjD,IACP,OAAO,CAEXnjD,GAASA,EAAOA,OAEpB,OAAO,EAEX,QAAS+kD,IAAepmD,GACpB,GAAI8L,GAAQ9L,EAAK8L,MAAMu6C,GACvB,IAAIv6C,EAAO,CACP,GAAI+6C,KAIJ,OAHA/6C,GAAMnB,QAAQ,SAAUujC,GACpB2Y,EAAM3Y,EAAE1pC,MAAM,KAAM,IAEjBqiD,GAGf,QAAS5F,IAAax/B,GAElB,IAAK,GADD7W,MACK7B,EAAI,EAAG8N,EAAI4K,EAAMje,OAAQuF,EAAI8N,EAAG9N,KACjC6B,EAAI6W,EAAM1Y,GAAG/I,OAAUqrC,IAASC,IAChC4D,GAAK,wBAA0BztB,EAAM1Y,GAAG/I,KAAMyhB,EAAM1Y,IAExD6B,EAAI6W,EAAM1Y,GAAG/I,MAAQyhB,EAAM1Y,GAAGzK,KAElC,OAAOsM,GAGX,QAASk5C,IAAU52C,GACf,MAAkB,WAAXA,EAAG1B,KAA+B,UAAX0B,EAAG1B,IAErC,QAASg4C,IAAet2C,GACpB,MAAmB,UAAXA,EAAG1B,KACK,WAAX0B,EAAG1B,OACE0B,EAAGyhC,SAASjuC,MAA6B,oBAArBwM,EAAGyhC,SAASjuC,MAK9C,QAAS2iD,IAAc5hC,GAEnB,IAAK,GADD5N,MACK9K,EAAI,EAAGA,EAAI0Y,EAAMje,OAAQuF,IAAK,CACnC,GAAIonC,GAAO1uB,EAAM1Y,EACZ+9C,IAAQx6C,KAAK6jC,EAAKnwC,QACnBmwC,EAAKnwC,KAAOmwC,EAAKnwC,KAAKwP,QAAQu3C,GAAY,IAC1ClzC,EAAItK,KAAK4mC,IAGjB,MAAOt8B,GAEX,QAAS+yC,IAAmB15C,EAAI5O,GAE5B,IADA,GAAI0oD,GAAM95C,EACH85C,GACCA,EAAIxC,KAAOwC,EAAIhC,QAAU1mD,GACzB4wC,GAAK,IAAIptC,OAAOoL,EAAG1B,IAAK,cAAe1J,OAAOxD,EAAO,QACjD,kRAGqF4O,EAAGyiC,YAAY,YAE5GqX,EAAMA,EAAI3lD,OAalB,QAAS4lD,IAAiB/5C,EAAIxP,GAC1B,GAAe,UAAXwP,EAAG1B,IAAiB,CACpB,GAAIZ,GAAMsC,EAAGyhC,QACb,KAAK/jC,EAAI,WACL,MAEJ,IAAIonC,OAAc,EAOlB,KANIpnC,EAAI,UAAYA,EAAI,kBACpBonC,EAAcpC,GAAe1iC,EAAI,SAEhCtC,EAAIlK,MAASsxC,IAAepnC,EAAI,YACjConC,EAAc,IAAIlwC,OAAO8I,EAAI,UAAW,WAExConC,EAAa,CACb,GAAIkV,GAAcnX,GAAiB7iC,EAAI,QAAQ,GAC3Ci6C,EAAmBD,EAAc,MAAMplD,OAAOolD,EAAa,KAAO,GAClEE,EAAkD,MAAxCrX,GAAiB7iC,EAAI,UAAU,GACzCm6C,EAAkBtX,GAAiB7iC,EAAI,aAAa,GAEpDo6C,EAAUC,GAAgBr6C,EAE9By2C,IAAW2D,GACX5Y,GAAW4Y,EAAS,OAAQ,YAC5B5F,GAAe4F,EAAS5pD,GACxB4pD,EAAQ7F,WAAY,EACpB6F,EAAQ1F,GAAK,IAAI9/C,OAAOkwC,EAAa,kBAAoBmV,EACzDnF,GAAesF,GACXta,IAAKsa,EAAQ1F,GACbK,MAAOqF,GAGX,IAAIE,GAAUD,GAAgBr6C,EAC9B6iC,IAAiByX,EAAS,SAAS,GACnC9Y,GAAW8Y,EAAS,OAAQ,SAC5B9F,GAAe8F,EAAS9pD,GACxBskD,GAAesF,GACXta,IAAK,IAAIlrC,OAAOkwC,EAAa,eAAiBmV,EAC9ClF,MAAOuF,GAGX,IAAIC,GAAUF,GAAgBr6C,EAc9B,OAbA6iC,IAAiB0X,EAAS,SAAS,GACnC/Y,GAAW+Y,EAAS,QAASzV,GAC7B0P,GAAe+F,EAAS/pD,GACxBskD,GAAesF,GACXta,IAAKka,EACLjF,MAAOwF,IAEPL,EACAE,EAAQxF,MAAO,EAEVuF,IACLC,EAAQzF,OAASwF,GAEdC,IAInB,QAASC,IAAgBr6C,GACrB,MAAO8zC,IAAiB9zC,EAAG1B,IAAK0B,EAAG0hC,UAAUpqC,QAAS0I,EAAG7L,QAQ7D,QAASwY,IAAK3M,EAAI28B,GACVA,EAAIvrC,OACJ8vC,GAAQlhC,EAAI,cAAe,MAAMpL,OAAO+nC,EAAIvrC,MAAO,KAAMurC,GAIjE,QAAS3jC,IAAKgH,EAAI28B,GACVA,EAAIvrC,OACJ8vC,GAAQlhC,EAAI,YAAa,MAAMpL,OAAO+nC,EAAIvrC,MAAO,KAAMurC,GAqC/D,QAAS6d,IAAS/F,EAAMjkD,GACfikD,IAELgG,GAAcC,GAAoBlqD,EAAQmqD,YAAc,IACxDC,GAAwBpqD,EAAQ4lB,eAAiBs8B,GAEjDmI,GAAWpG,GAEXqG,GAAgBrG,GAAM,IAE1B,QAASsG,IAAch3C,GACnB,MAAO+E,GAAQ,iFACV/E,EAAO,IAAMA,EAAO,KAE7B,QAAS82C,IAAWzlC,GAEhB,GADAA,EAAK4lC,OAAShuC,GAASoI,GACL,IAAdA,EAAK5hB,KAAY,CAIjB,IAAKonD,GAAsBxlC,EAAK9W,MACf,SAAb8W,EAAK9W,KAC+B,MAApC8W,EAAKqsB,SAAS,mBACd,MAEJ,KAAK,GAAI5lC,GAAI,EAAG8N,EAAIyL,EAAK1I,SAASpW,OAAQuF,EAAI8N,EAAG9N,IAAK,CAClD,GAAIib,GAAQ1B,EAAK1I,SAAS7Q,EAC1Bg/C,IAAW/jC,GACNA,EAAMkkC,SACP5lC,EAAK4lC,QAAS,GAGtB,GAAI5lC,EAAKgjC,aACL,IAAK,GAAIv8C,GAAI,EAAG8N,EAAIyL,EAAKgjC,aAAa9hD,OAAQuF,EAAI8N,EAAG9N,IAAK,CACtD,GAAIk5C,GAAQ3/B,EAAKgjC,aAAav8C,GAAGk5C,KACjC8F,IAAW9F,GACNA,EAAMiG,SACP5lC,EAAK4lC,QAAS,KAMlC,QAASF,IAAgB1lC,EAAMiE,GAC3B,GAAkB,IAAdjE,EAAK5hB,KAAY,CAOjB,IANI4hB,EAAK4lC,QAAU5lC,EAAKpK,QACpBoK,EAAK6lC,YAAc5hC,GAKnBjE,EAAK4lC,QACL5lC,EAAK1I,SAASpW,SACa,IAAzB8e,EAAK1I,SAASpW,QAA0C,IAA1B8e,EAAK1I,SAAS,GAAGlZ,MAEjD,YADA4hB,EAAK8lC,YAAa,EAMtB,IAFI9lC,EAAK8lC,YAAa,EAElB9lC,EAAK1I,SACL,IAAK,GAAI7Q,GAAI,EAAG8N,EAAIyL,EAAK1I,SAASpW,OAAQuF,EAAI8N,EAAG9N,IAC7Ci/C,GAAgB1lC,EAAK1I,SAAS7Q,GAAIwd,KAAajE,EAAKkiC,IAG5D,IAAIliC,EAAKgjC,aACL,IAAK,GAAIv8C,GAAI,EAAG8N,EAAIyL,EAAKgjC,aAAa9hD,OAAQuF,EAAI8N,EAAG9N,IACjDi/C,GAAgB1lC,EAAKgjC,aAAav8C,GAAGk5C,MAAO17B,IAK5D,QAASrM,IAASoI,GACd,MAAkB,KAAdA,EAAK5hB,OAIS,IAAd4hB,EAAK5hB,SAIC4hB,EAAKmB,MACTnB,EAAK6jC,aACF7jC,EAAKs/B,IACLt/B,EAAKkiC,KACLljB,GAAahf,EAAK9W,OACnBs8C,GAAsBxlC,EAAK9W,MAC1B68C,GAA2B/lC,KAC5BjgB,OAAO4O,KAAKqR,GAAMvX,MAAM48C,OAEpC,QAASU,IAA2B/lC,GAChC,KAAOA,EAAKjhB,QAAQ,CAEhB,GADAihB,EAAOA,EAAKjhB,OACK,aAAbihB,EAAK9W,IACL,OAAO,CAEX,IAAI8W,EAAKkiC,IACL,OAAO,EAGf,OAAO,EAkDX,QAAS8D,IAAYhZ,EAAQ12B,GACzB,GAAI2vC,GAAS3vC,EAAW,YAAc,MAClC4vC,EAAiB,GACjBC,EAAkB,EACtB,KAAK,GAAIz/B,KAAUsmB,GAAQ,CACvB,GAAIoZ,GAAcC,GAAWrZ,EAAOtmB,GAEhCsmB,GAAOtmB,IAAWsmB,EAAOtmB,GAAQqlB,QACjCoa,GAAmB,GAAG3mD,OAAOknB,EAAQ,KAAKlnB,OAAO4mD,EAAa,KAG9DF,GAAkB,IAAK1mD,OAAOknB,EAAQ,MAAOlnB,OAAO4mD,EAAa,KAIzE,MADAF,GAAiB,IAAI1mD,OAAO0mD,EAAehkD,MAAM,GAAI,GAAI,KACrDikD,EACOF,EAAS,MAAMzmD,OAAO0mD,EAAgB,MAAM1mD,OAAO2mD,EAAgBjkD,MAAM,GAAI,GAAI,MAGjF+jD,EAASC,EAGxB,QAASG,IAAWxwB,GAChB,IAAKA,EACD,MAAO,cAEX,IAAIvyB,MAAMC,QAAQsyB,GACd,MAAO,IAAIr2B,OAAOq2B,EAAQvtB,IAAI,SAAUutB,GAAW,MAAOwwB,IAAWxwB,KAAa0L,KAAK,KAAM,IAEjG,IAAI+kB,GAAeC,GAAav8C,KAAK6rB,EAAQ75B,OACzCwqD,EAAuBC,GAAQz8C,KAAK6rB,EAAQ75B,OAC5C0qD,EAAuBH,GAAav8C,KAAK6rB,EAAQ75B,MAAMkR,QAAQy5C,GAAY,IAC/E,IAAK9wB,EAAQwS,UAMR,CACD,GAAI/3B,GAAO,GACPs2C,EAAkB,GAClBj4C,IAoBJ,KAAK,GAAIpT,KAAOs6B,GAAQwS,WAnBV,SAAU9sC,GACpB,GAAIsrD,GAAatrD,GACbqrD,GAAmBC,GAAatrD,GAE5B8nB,GAAS9nB,IACToT,EAAK1H,KAAK1L,OAGb,IAAY,UAARA,EAAiB,CACtB,GAAIurD,GAAcjxB,EAAQwS,SAC1Bue,IAAmBG,IAAU,OAAQ,QAAS,MAAO,QAChDx+C,OAAO,SAAUy+C,GAAe,OAAQF,EAAYE,KACpD1+C,IAAI,SAAU0+C,GAAe,MAAO,UAAUxnD,OAAOwnD,EAAa,SAClEzlB,KAAK,WAGV5yB,GAAK1H,KAAK1L,IAINA,EAERoT,GAAKzN,SACLoP,GAAQ22C,GAAat4C,IAGrBi4C,IACAt2C,GAAQs2C,EAEZ,IAAIR,GAAcE,EACZ,UAAU9mD,OAAOq2B,EAAQ75B,MAAO,2BAChCwqD,EACI,WAAWhnD,OAAOq2B,EAAQ75B,MAAO,4BACjC0qD,EACI,UAAUlnD,OAAOq2B,EAAQ75B,OACzB65B,EAAQ75B,KACtB,OAAO,oBAAoBwD,OAAO8Q,GAAM9Q,OAAO4mD,EAAa,KA7C5D,MAAIE,IAAgBE,EACT3wB,EAAQ75B,MAEZ,oBAAoBwD,OAAOknD,EAAuB,UAAUlnD,OAAOq2B,EAAQ75B,OAAS65B,EAAQ75B,MAAO,KA6ClH,QAASirD,IAAat4C,GAClB,MAIA,mCACI,GAAGnP,OAAOmP,EAAKrG,IAAI4+C,IAAe3lB,KAAK,MAAO,iBAEtD,QAAS2lB,IAAc3rD,GACnB,GAAI4rD,GAAS32C,SAASjV,EAAK,GAC3B,IAAI4rD,EACA,MAAO,oBAAoB3nD,OAAO2nD,EAEtC,IAAIC,GAAU/jC,GAAS9nB,GACnB8rD,EAAUC,GAAS/rD,EACvB,OAAQ,qBACJ,GAAGiE,OAAO+T,KAAKC,UAAUjY,GAAM,KAC/B,GAAGiE,OAAO+T,KAAKC,UAAU4zC,GAAU,KACnC,cACA,GAAG5nD,OAAO+T,KAAKC,UAAU6zC,IACzB,IAGR,QAAStwC,IAAGnM,EAAI28B,GACRA,EAAIc,WACJnuB,GAAO,qDAEXtP,EAAG28C,cAAgB,SAAUj3C,GAAQ,MAAO,MAAM9Q,OAAO8Q,EAAM,KAAK9Q,OAAO+nC,EAAIvrC,MAAO,MAG1F,QAASxB,IAAKoQ,EAAI28B,GACd38B,EAAG48C,SAAW,SAAUl3C,GACpB,MAAO,MAAM9Q,OAAO8Q,EAAM,MAAM9Q,OAAOoL,EAAG1B,IAAK,MAAM1J,OAAO+nC,EAAIvrC,MAAO,KAAKwD,OAAO+nC,EAAIc,WAAad,EAAIc,UAAUtK,KAAO,OAAS,SAASv+B,OAAO+nC,EAAIc,WAAad,EAAIc,UAAU6b,KAAO,QAAU,GAAI,MA2B9M,QAASuD,IAASC,EAAKtsD,GACnB,GAAIsQ,GAAQ,GAAIi8C,IAAavsD,EAO7B,QACIkD,OAAQ,qBAAqBkB,OANtBkoD,EACO,WAAZA,EAAIx+C,IACA,OACA0+C,GAAWF,EAAKh8C,GACpB,YAEwC,KAC1CnN,gBAAiBmN,EAAMnN,iBAG/B,QAASqpD,IAAWh9C,EAAIc,GAIpB,GAHId,EAAG7L,SACH6L,EAAGuW,IAAMvW,EAAGuW,KAAOvW,EAAG7L,OAAOoiB,KAE7BvW,EAAGk7C,aAAel7C,EAAGi9C,gBACrB,MAAOC,IAAUl9C,EAAIc,EAEpB,IAAId,EAAGgL,OAAShL,EAAGm9C,cACpB,MAAOC,IAAQp9C,EAAIc,EAElB,IAAId,EAAGs3C,MAAQt3C,EAAGq9C,aACnB,MAAOC,IAAOt9C,EAAIc,EAEjB,IAAId,EAAG00C,KAAO10C,EAAGu9C,YAClB,MAAOC,IAAMx9C,EAAIc,EAEhB,IAAe,aAAXd,EAAG1B,KAAuB0B,EAAGo1C,YAAet0C,EAAMyV,IAGtD,IAAe,SAAXvW,EAAG1B,IACR,MAAOm/C,IAAQz9C,EAAIc,EAInB,IAAI4E,OAAO,EACX,IAAI1F,EAAG6hB,UACHnc,EAAOg4C,GAAa19C,EAAG6hB,UAAW7hB,EAAIc,OAErC,CACD,GAAI2L,OAAO,GACPmpC,EAAiB90C,EAAM80C,eAAe51C,KACrCA,EAAGqhC,OAAUrhC,EAAGuW,KAAOq/B,KACxBnpC,EAAOkxC,GAAQ39C,EAAIc,GAEvB,IAAIxC,OAEF,GAEEs/C,EAAW98C,EAAMtQ,QAAQotD,QACzBhI,IAAkBgI,IAAyC,IAA7BA,EAASC,kBACvCv/C,EAAMw/C,GAAiBF,EAAU59C,EAAG1B,MAEnCA,IACDA,EAAM,IAAI1J,OAAOoL,EAAG1B,IAAK,KAC7B,IAAIoO,GAAW1M,EAAG2yB,eAAiB,KAAOorB,GAAY/9C,EAAIc,GAAO,EACjE4E,GAAO,MAAM9Q,OAAO0J,GAAK1J,OAAO6X,EAAO,IAAI7X,OAAO6X,GAAQ,IACxD7X,OAAO8X,EAAW,IAAI9X,OAAO8X,GAAY,GACzC,KAGN,IAAK,GAAI7Q,GAAI,EAAGA,EAAIiF,EAAM+0C,WAAWv/C,OAAQuF,IACzC6J,EAAO5E,EAAM+0C,WAAWh6C,GAAGmE,EAAI0F,EAEnC,OAAOA,GApCP,MAAOq4C,IAAY/9C,EAAIc,IAAU,SAuCzC,QAASg9C,IAAiBF,EAAUjtD,GAChC,GAAIqtD,GAAY/kC,GAAStoB,GACrBstD,EAAa7oB,GAAW4oB,GACxBE,EAAY,SAAU1qD,GACtB,MAAIoqD,GAASjtD,KAAS6C,EACX7C,EAEPitD,EAASI,KAAexqD,EACjBwqD,EAEPJ,EAASK,KAAgBzqD,EAClByqD,MADX,IAIAE,EAAYD,EAAU,gBACtBA,EAAU,uBACd,IAAIC,EACA,MAAOA,EAEX,IAAIC,GAAeF,EAAU,cACzBA,EAAU,cACVA,EAAU,kBACd,OAAIE,QAAJ,GAKJ,QAASlB,IAAUl9C,EAAIc,GACnBd,EAAGi9C,iBAAkB,CAIrB,IAAIoB,GAAmBv9C,EAAMyV,GAM7B,OALIvW,GAAGuW,MACHzV,EAAMyV,IAAMvW,EAAGuW,KAEnBzV,EAAMnN,gBAAgB0I,KAAK,qBAAqBzH,OAAOooD,GAAWh9C,EAAIc,GAAQ,MAC9EA,EAAMyV,IAAM8nC,EACL,MAAMzpD,OAAOkM,EAAMnN,gBAAgB2C,OAAS,GAAG1B,OAAOoL,EAAGi7C,YAAc,QAAU,GAAI,KAGhG,QAASmC,IAAQp9C,EAAIc,GAEjB,GADAd,EAAGm9C,eAAgB,EACfn9C,EAAG00C,KAAO10C,EAAGu9C,YACb,MAAOC,IAAMx9C,EAAIc,EAEhB,IAAId,EAAGi7C,YAAa,CAGrB,IAFA,GAAItqD,GAAM,GACN8mD,EAAWz3C,EAAG7L,OACXsjD,GAAU,CACb,GAAIA,EAASH,IAAK,CACd3mD,EAAM8mD,EAAS9mD,GACf,OAEJ8mD,EAAWA,EAAStjD,OAExB,MAAKxD,GAIE,MAAMiE,OAAOooD,GAAWh9C,EAAIc,GAAQ,KAAKlM,OAAOkM,EAAMw9C,SAAU,KAAK1pD,OAAOjE,EAAK,MAHpFmQ,EAAMkhC,KAAK,uDAAwDhiC,EAAGyiC,YAAY,WAC3Eua,GAAWh9C,EAAIc,IAK1B,MAAOo8C,IAAUl9C,EAAIc,GAG7B,QAAS08C,IAAMx9C,EAAIc,EAAOy9C,EAAQC,GAE9B,MADAx+C,GAAGu9C,aAAc,EACVkB,GAAgBz+C,EAAGo4C,aAAa9gD,QAASwJ,EAAOy9C,EAAQC,GAEnE,QAASC,IAAgBC,EAAY59C,EAAOy9C,EAAQC,GAYhD,QAASG,GAAc3+C,GACnB,MAAOu+C,GACDA,EAAOv+C,EAAIc,GACXd,EAAGgL,KACCoyC,GAAQp9C,EAAIc,GACZk8C,GAAWh9C,EAAIc,GAhB7B,IAAK49C,EAAWpoD,OACZ,MAAOkoD,IAAY,MAEvB,IAAIrG,GAAYuG,EAAWnpC,OAC3B,OAAI4iC,GAAUrY,IACH,IAAIlrC,OAAOujD,EAAUrY,IAAK,MAAMlrC,OAAO+pD,EAAcxG,EAAUpD,OAAQ,KAAKngD,OAAO6pD,GAAgBC,EAAY59C,EAAOy9C,EAAQC,IAG9H,GAAG5pD,OAAO+pD,EAAcxG,EAAUpD,QAWjD,QAASuI,IAAOt9C,EAAIc,EAAOy9C,EAAQK,GAC/B,GAAI9e,GAAM9/B,EAAGs3C,IACTQ,EAAQ93C,EAAG83C,MACXN,EAAYx3C,EAAGw3C,UAAY,IAAI5iD,OAAOoL,EAAGw3C,WAAa,GACtDD,EAAYv3C,EAAGu3C,UAAY,IAAI3iD,OAAOoL,EAAGu3C,WAAa,EAU1D,OATIz2C,GAAM80C,eAAe51C,IACV,SAAXA,EAAG1B,KACQ,aAAX0B,EAAG1B,MACF0B,EAAGrP,KACJmQ,EAAMkhC,KAAK,IAAIptC,OAAOoL,EAAG1B,IAAK,YAAa1J,OAAOkjD,EAAO,QAAQljD,OAAOkrC,EAAK,sCACzE,kGACkE9/B,EAAGyiC,YAAY,UAAU,GAEnGziC,EAAGq9C,cAAe,EACV,GAAGzoD,OAAOgqD,GAAa,KAAM,MAAMhqD,OAAOkrC,EAAK,MACnD,YAAYlrC,OAAOkjD,GAAOljD,OAAO4iD,GAAW5iD,OAAO2iD,EAAW,MAC9D,UAAU3iD,QAAQ2pD,GAAUvB,IAAYh9C,EAAIc,IAC5C,KAER,QAAS68C,IAAQ39C,EAAIc,GACjB,GAAI2L,GAAO,IAGP+nB,EAAOqqB,GAAc7+C,EAAIc,EACzB0zB,KACA/nB,GAAQ+nB,EAAO,KAEfx0B,EAAGrP,MACH8b,GAAQ,OAAO7X,OAAOoL,EAAGrP,IAAK,MAG9BqP,EAAG+Q,MACHtE,GAAQ,OAAO7X,OAAOoL,EAAG+Q,IAAK,MAE9B/Q,EAAG27B,WACHlvB,GAAQ,kBAGRzM,EAAGuW,MACH9J,GAAQ,aAGRzM,EAAG6hB,YACHpV,GAAQ,QAAS7X,OAAOoL,EAAG1B,IAAK,MAGpC,KAAK,GAAIzC,GAAI,EAAGA,EAAIiF,EAAMg+C,WAAWxoD,OAAQuF,IACzC4Q,GAAQ3L,EAAMg+C,WAAWjjD,GAAGmE,EA+BhC,IA5BIA,EAAGuU,QACH9H,GAAQ,SAAS7X,OAAOmqD,GAAS/+C,EAAGuU,OAAQ,MAG5CvU,EAAGsU,QACH7H,GAAQ,YAAY7X,OAAOmqD,GAAS/+C,EAAGsU,OAAQ,MAG/CtU,EAAGoiC,SACH31B,GAAQ,GAAG7X,OAAOwmD,GAAYp7C,EAAGoiC,QAAQ,GAAQ,MAEjDpiC,EAAGsiC,eACH71B,GAAQ,GAAG7X,OAAOwmD,GAAYp7C,EAAGsiC,cAAc,GAAO,MAItDtiC,EAAGo1C,aAAep1C,EAAGm1C,YACrB1oC,GAAQ,QAAQ7X,OAAOoL,EAAGo1C,WAAY,MAGtCp1C,EAAGgW,cACHvJ,GAAQ,GAAG7X,OAAOoqD,GAAeh/C,EAAIA,EAAGgW,YAAalV,GAAQ,MAG7Dd,EAAGsyB,QACH7lB,GAAQ,gBAAgB7X,OAAOoL,EAAGsyB,MAAMlhC,MAAO,cAAcwD,OAAOoL,EAAGsyB,MAAMc,SAAU,gBAAgBx+B,OAAOoL,EAAGsyB,MAAMnL,WAAY,OAGnInnB,EAAG2yB,eAAgB,CACnB,GAAIA,GAAiBssB,GAAkBj/C,EAAIc,EACvC6xB,KACAlmB,GAAQ,GAAG7X,OAAO+9B,EAAgB,MAkB1C,MAfAlmB,GAAOA,EAAKnK,QAAQ,KAAM,IAAM,IAI5BtC,EAAGuhC,eACH90B,EAAO,MAAM7X,OAAO6X,EAAM,MAAO7X,OAAOoL,EAAG1B,IAAK,MAAO1J,OAAOmqD,GAAS/+C,EAAGuhC,cAAe,MAGzFvhC,EAAG48C,WACHnwC,EAAOzM,EAAG48C,SAASnwC,IAGnBzM,EAAG28C,gBACHlwC,EAAOzM,EAAG28C,cAAclwC,IAErBA,EAEX,QAASoyC,IAAc7+C,EAAIc,GACvB,GAAI0zB,GAAOx0B,EAAGy0B,UACd,IAAKD,EAAL,CAEA,GAEI34B,GAAG8N,EAAGgzB,EAAKuiB,EAFXv4C,EAAM,eACNw4C,GAAa,CAEjB,KAAKtjD,EAAI,EAAG8N,EAAI6qB,EAAKl+B,OAAQuF,EAAI8N,EAAG9N,IAAK,CACrC8gC,EAAMnI,EAAK34B,GACXqjD,GAAc,CACd,IAAIE,GAAMt+C,EAAM2zB,WAAWkI,EAAI7pC,KAC3BssD,KAGAF,IAAgBE,EAAIp/C,EAAI28B,EAAK77B,EAAMkhC,OAEnCkd,IACAC,GAAa,EACbx4C,GAAO,UAAW/R,OAAO+nC,EAAI7pC,KAAM,eAAiB8B,OAAO+nC,EAAIkB,QAAS,KAAMjpC,OAAO+nC,EAAIvrC,MACnF,WAAWwD,OAAO+nC,EAAIvrC,MAAO,iBAAiBwD,OAAO+T,KAAKC,UAAU+zB,EAAIvrC,QACxE,IAAIwD,OAAO+nC,EAAI/gC,IAAM,QAAQhH,OAAO+nC,EAAIiF,aAAejF,EAAI/gC,IAAM,IAAKhH,OAAO+nC,EAAI/gC,IAAK,MAAS,IAAIhH,OAAO+nC,EAAIc,UAAY,cAAc7oC,OAAO+T,KAAKC,UAAU+zB,EAAIc,YAAc,GAAI,OAGlM,MAAI0hB,GACOx4C,EAAIrP,MAAM,GAAI,GAAK,QAD9B,IAIJ,QAAS2nD,IAAkBj/C,EAAIc,GAC3B,GAAIg8C,GAAM98C,EAAG0M,SAAS,EAItB,IAH4B,IAAvB1M,EAAG0M,SAASpW,QAA6B,IAAbwmD,EAAItpD,MACjCsN,EAAMkhC,KAAK,mEAAqEj4B,MAAO/J,EAAG+J,QAE1F+yC,GAAoB,IAAbA,EAAItpD,KAAY,CACvB,GAAI6rD,GAAkBxC,GAASC,EAAKh8C,EAAMtQ,QAC1C,OAAO,qCAAqCoE,OAAOyqD,EAAgB3rD,OAAQ,uBAAuBkB,OAAOyqD,EAAgB1rD,gBACpH+J,IAAI,SAAUgI,GAAQ,MAAO,cAAc9Q,OAAO8Q,EAAM,OACxDixB,KAAK,KAAM,OAGxB,QAASqoB,IAAeh/C,EAAI6b,EAAO/a,GAK/B,GAAIykB,GAAmBvlB,EAAGs3C,KACtBniD,OAAO4O,KAAK8X,GAAOje,KAAK,SAAUjN,GAC9B,GAAIgnB,GAAOkE,EAAMlrB,EACjB,OAAQgnB,GAAK0gC,mBAAqB1gC,EAAK+8B,IAAM/8B,EAAK2/B,KAAOgI,GAAkB3nC,KAO/E4nC,IAAav/C,EAAG00C,EAMpB,KAAKnvB,EAED,IADA,GAAIi6B,GAAWx/C,EAAG7L,OACXqrD,GAAU,CACb,GAAKA,EAASrK,WAAaqK,EAASrK,YAAcsD,IAC9C+G,EAASlI,IAAK,CACd/xB,GAAmB,CACnB,OAEAi6B,EAAS9K,KACT6K,GAAW,GAEfC,EAAWA,EAASrrD,OAG5B,GAAIsrD,GAAiBtqD,OAAO4O,KAAK8X,GAC5Bne,IAAI,SAAU/M,GAAO,MAAO+uD,IAAc7jC,EAAMlrB,GAAMmQ,KACtD61B,KAAK,IACV,OAAO,mBAAmB/hC,OAAO6qD,EAAgB,KAAK7qD,OAAO2wB,EAAmB,aAAe,IAAI3wB,QAAQ2wB,GAAoBg6B,EAAW,eAAe3qD,OAAOkgB,GAAK2qC,IAAmB,GAAI,KAEhM,QAAS3qC,IAAKxR,GAGV,IAFA,GAAIwR,GAAO,KACPjZ,EAAIyH,EAAIhN,OACLuF,GACHiZ,EAAe,GAAPA,EAAaxR,EAAI2B,aAAapJ,EAE1C,OAAOiZ,KAAS,EAEpB,QAASwqC,IAAkBt/C,GACvB,MAAgB,KAAZA,EAAGxM,OACY,SAAXwM,EAAG1B,KAGA0B,EAAG0M,SAAS9O,KAAK0hD,KAIhC,QAASI,IAAc1/C,EAAIc,GACvB,GAAI6+C,GAAiB3/C,EAAGyhC,SAAS,aACjC,IAAIzhC,EAAG00C,KAAO10C,EAAGu9C,cAAgBoC,EAC7B,MAAOnC,IAAMx9C,EAAIc,EAAO4+C,GAAe,OAE3C,IAAI1/C,EAAGs3C,MAAQt3C,EAAGq9C,aACd,MAAOC,IAAOt9C,EAAIc,EAAO4+C,GAE7B,IAAIvK,GAAYn1C,EAAGm1C,YAAcsD,GAAsB,GAAK1jD,OAAOiL,EAAGm1C,WAClEtlD,EAAK,YAAY+E,OAAOugD,EAAW,MACnC,UAAUvgD,OAAkB,aAAXoL,EAAG1B,IACd0B,EAAG00C,IAAMiL,EACL,IAAI/qD,OAAOoL,EAAG00C,GAAI,MAAM9/C,OAAOmpD,GAAY/9C,EAAIc,IAAU,YAAa,cACtEi9C,GAAY/9C,EAAIc,IAAU,YAC9Bk8C,GAAWh9C,EAAIc,GAAQ,KAE7B8+C,EAAezK,EAAY,GAAK,aACpC,OAAO,QAAQvgD,OAAOoL,EAAGo1C,YAAc,YAAe,QAAQxgD,OAAO/E,GAAI+E,OAAOgrD,EAAc,KAElG,QAAS7B,IAAY/9C,EAAIc,EAAO++C,EAAWC,EAAeC,GACtD,GAAIrzC,GAAW1M,EAAG0M,QAClB,IAAIA,EAASpW,OAAQ,CACjB,GAAI0pD,GAAOtzC,EAAS,EAEpB,IAAwB,IAApBA,EAASpW,QACT0pD,EAAK1I,KACQ,aAAb0I,EAAK1hD,KACQ,SAAb0hD,EAAK1hD,IAAgB,CACrB,GAAI2hD,GAAsBJ,EACpB/+C,EAAM80C,eAAeoK,GACjB,KACA,KACJ,EACN,OAAO,GAAGprD,QAAQkrD,GAAiB9C,IAAYgD,EAAMl/C,IAAQlM,OAAOqrD,GAExE,GAAIvqC,GAAoBmqC,EAClBK,GAAqBxzC,EAAU5L,EAAM80C,gBACrC,EACFuK,EAAQJ,GAAcK,EAC1B,OAAO,IAAIxrD,OAAO8X,EAAShP,IAAI,SAAU2M,GAAK,MAAO81C,GAAM91C,EAAGvJ,KAAW61B,KAAK,KAAM,KAAK/hC,OAAO8gB,EAAoB,IAAI9gB,OAAO8gB,GAAqB,KAO5J,QAASwqC,IAAqBxzC,EAAUkpC,GAEpC,IAAK,GADDjvC,GAAM,EACD9K,EAAI,EAAGA,EAAI6Q,EAASpW,OAAQuF,IAAK,CACtC,GAAImE,GAAK0M,EAAS7Q,EAClB,IAAgB,IAAZmE,EAAGxM,KAAP,CAGA,GAAI6sD,GAAmBrgD,IAClBA,EAAGo4C,cACAp4C,EAAGo4C,aAAax6C,KAAK,SAAUyM,GAAK,MAAOg2C,IAAmBh2C,EAAE0qC,SAAa,CACjFpuC,EAAM,CACN,QAEAivC,EAAe51C,IACdA,EAAGo4C,cAAgBp4C,EAAGo4C,aAAax6C,KAAK,SAAUyM,GAAK,MAAOurC,GAAevrC,EAAE0qC,YAChFpuC,EAAM,IAGd,MAAOA,GAEX,QAAS05C,IAAmBrgD,GACxB,WAAkB1O,KAAX0O,EAAGs3C,KAAgC,aAAXt3C,EAAG1B,KAAiC,SAAX0B,EAAG1B,IAE/D,QAAS8hD,IAAQhrC,EAAMtU,GACnB,MAAkB,KAAdsU,EAAK5hB,KACEwpD,GAAW5nC,EAAMtU,GAEL,IAAdsU,EAAK5hB,MAAc4hB,EAAKnI,UACtBqzC,GAAWlrC,GAGXmrC,GAAQnrC,GAGvB,QAASmrC,IAAQ5zC,GACb,MAAO,MAAM/X,OAAqB,IAAd+X,EAAKnZ,KACnBmZ,EAAKwa,WACLq5B,GAAyB73C,KAAKC,UAAU+D,EAAKA,OAAQ,KAE/D,QAAS2zC,IAAWlN,GAChB,MAAO,MAAMx+C,OAAO+T,KAAKC,UAAUwqC,EAAQzmC,MAAO,KAEtD,QAAS8wC,IAAQz9C,EAAIc,GACjB,GAAI+3C,GAAW74C,EAAG64C,UAAY,YAC1BnsC,EAAWqxC,GAAY/9C,EAAIc,GAC3B6F,EAAM,MAAM/R,OAAOikD,GAAUjkD,OAAO8X,EAAW,sBAAsB9X,OAAO8X,EAAU,KAAO,IAC7F6H,EAAQvU,EAAGuU,OAASvU,EAAGuhC,aACrBwd,IAAU/+C,EAAGuU,WAAa3f,OAAOoL,EAAGuhC,kBAAoB7jC,IAAI,SAAUulC,GAAQ,OAE5EnwC,KAAMmmB,GAASgqB,EAAKnwC,MACpB1B,MAAO6xC,EAAK7xC,MACZ+vC,QAAS8B,EAAK9B,YAEhB,KACFvxC,EAAOoQ,EAAGyhC,SAAS,SAUvB,QATKltB,IAAS3kB,GAAU8c,IACpB/F,GAAO,SAEP4N,IACA5N,GAAO,IAAI/R,OAAO2f,IAElB3kB,IACA+W,GAAO,GAAG/R,OAAO2f,EAAQ,GAAK,QAAS,KAAK3f,OAAOhF,IAEhD+W,EAAM,IAGjB,QAAS+2C,IAAa+C,EAAezgD,EAAIc,GACrC,GAAI4L,GAAW1M,EAAG2yB,eAAiB,KAAOorB,GAAY/9C,EAAIc,GAAO,EACjE,OAAO,MAAMlM,OAAO6rD,EAAe,KAAK7rD,OAAO+oD,GAAQ39C,EAAIc,IAAQlM,OAAO8X,EAAW,IAAI9X,OAAO8X,GAAY,GAAI,KAEpH,QAASqyC,IAASzqC,GAGd,IAAK,GAFDosC,GAAc,GACdC,EAAe,GACV9kD,EAAI,EAAGA,EAAIyY,EAAMhe,OAAQuF,IAAK,CACnC,GAAIs3B,GAAO7e,EAAMzY,GACbzK,EAAQovD,GAAyBrtB,EAAK/hC,MACtC+hC,GAAKgO,QACLwf,GAAgB,GAAG/rD,OAAOu+B,EAAKrgC,KAAM,KAAK8B,OAAOxD,EAAO,KAGxDsvD,GAAe,IAAK9rD,OAAOu+B,EAAKrgC,KAAM,MAAO8B,OAAOxD,EAAO,KAInE,MADAsvD,GAAc,IAAI9rD,OAAO8rD,EAAYppD,MAAM,GAAI,GAAI,KAC/CqpD,EACO,MAAM/rD,OAAO8rD,EAAa,MAAM9rD,OAAO+rD,EAAarpD,MAAM,GAAI,GAAI,MAGlEopD,EAIf,QAASF,IAAyB7zC,GAC9B,MAAOA,GAAKrK,QAAQ,UAAW,WAAWA,QAAQ,UAAW,WAmBjE,QAASs+C,IAAa9D,EAAK9a,GACnB8a,GACA+D,GAAU/D,EAAK9a,GAGvB,QAAS6e,IAAUzrC,EAAM4sB,GACrB,GAAkB,IAAd5sB,EAAK5hB,KAAY,CACjB,IAAK,GAAIsoB,KAAU1G,GAAKqsB,SACpB,GAAIuX,GAAM55C,KAAK0c,GAAS,CACpB,GAAI1qB,GAAQgkB,EAAKqsB,SAAS3lB,EAC1B,IAAI1qB,EAAO,CACP,GAAIyvC,GAAQzrB,EAAKqtB,YAAY3mB,EACd,WAAXA,EACAglC,GAAS1rC,EAAM,UAAWxgB,OAAOxD,EAAO,KAAO4wC,EAAMnB,GAErC,WAAX/kB,GAAqC,MAAdA,EAAO,GACnCilC,GAAiC3vD,EAAO,GAAGwD,OAAOknB,EAAQ,MAAOlnB,OAAOxD,EAAO,KAAO4wC,EAAMnB,GAEvF0Y,GAAKn6C,KAAK0c,GACfklC,GAAW5vD,EAAO,GAAGwD,OAAOknB,EAAQ,MAAOlnB,OAAOxD,EAAO,KAAO4wC,EAAMnB,GAGtEogB,GAAgB7vD,EAAO,GAAGwD,OAAOknB,EAAQ,MAAOlnB,OAAOxD,EAAO,KAAO4wC,EAAMnB,IAK3F,GAAIzrB,EAAK1I,SACL,IAAK,GAAI7Q,GAAI,EAAGA,EAAIuZ,EAAK1I,SAASpW,OAAQuF,IACtCglD,GAAUzrC,EAAK1I,SAAS7Q,GAAImmC,OAIjB,KAAd5sB,EAAK5hB,MACVytD,GAAgB7rC,EAAK+R,WAAY/R,EAAKzI,KAAMq1B,EAAM5sB,GAG1D,QAAS4rC,IAAWlhB,EAAKnzB,EAAMq1B,EAAMnB,GACjC,GAAIqgB,GAAWphB,EAAIx9B,QAAQ6+C,GAAe,IACtCC,EAAeF,EAAStiD,MAAMyiD,GAC9BD,IAA4D,MAA5CF,EAASx+C,OAAO0+C,EAAa5jD,MAAQ,IACrDwkC,EAAK,2DACD,IAAKptC,OAAOwsD,EAAa,GAAI,oBAAqBxsD,OAAO+X,EAAK9H,QAASg8B,GAE/EogB,GAAgBnhB,EAAKnzB,EAAMq1B,EAAMnB,GAErC,QAASigB,IAAS1rC,EAAMzI,EAAMq1B,EAAMnB,GAChCogB,GAAgB7rC,EAAKkiC,KAAO,GAAI3qC,EAAMq1B,EAAMnB,GAC5CygB,GAAgBlsC,EAAK0iC,MAAO,cAAenrC,EAAMq1B,EAAMnB,GACvDygB,GAAgBlsC,EAAKoiC,UAAW,iBAAkB7qC,EAAMq1B,EAAMnB,GAC9DygB,GAAgBlsC,EAAKmiC,UAAW,iBAAkB5qC,EAAMq1B,EAAMnB,GAElE,QAASygB,IAAgBC,EAAO/tD,EAAMmZ,EAAMq1B,EAAMnB,GAC9C,GAAqB,gBAAV0gB,GACP,IACI,GAAI/xD,UAAS,OAAOoF,OAAO2sD,EAAO,OAEtC,MAAO7pD,GACHsqC,EAAK,WAAWptC,OAAOpB,EAAM,MAAOoB,OAAO2sD,EAAO,qBAAsB3sD,OAAO+X,EAAK9H,QAASg8B,IAIzG,QAASogB,IAAgBnhB,EAAKnzB,EAAMq1B,EAAMnB,GACtC,IACI,GAAIrxC,UAAS,UAAUoF,OAAOkrC,IAElC,MAAOpoC,GACH,GAAI0pD,GAAethB,EACdx9B,QAAQ6+C,GAAe,IACvBviD,MAAM4iD,GACPJ,GACApf,EAAK,oDACD,IAAKptC,OAAOwsD,EAAa,GAAI,yBAA0BxsD,OAAO+X,EAAK9H,QAASg8B,GAGhFmB,EAAK,uBAAuBptC,OAAO8C,EAAEg/B,QAAS,WAC1C,OAAO9hC,OAAOkrC,EAAK,QACnB,qBAAqBlrC,OAAO+X,EAAK9H,OAAQ,MAAOg8B,IAIhE,QAASkgB,IAAiCjhB,EAAKnzB,EAAMq1B,EAAMnB,GACvD,IACI,GAAIrxC,UAASswC,EAAK,IAEtB,MAAOpoC,GACHsqC,EAAK,0CAA0CptC,OAAO8C,EAAEg/B,QAAS,WAC7D,OAAO9hC,OAAOkrC,EAAK,QACnB,qBAAqBlrC,OAAO+X,EAAK9H,OAAQ,MAAOg8B,IAK5D,QAAS4gB,IAAkBhxD,EAAQsZ,EAAOm5B,OACxB,KAAVn5B,IAAoBA,EAAQ,OACpB,KAARm5B,IAAkBA,EAAMzyC,EAAO6F,OAInC,KAAK,GAHDorD,GAAQjxD,EAAO0O,MAAM,SACrBwiD,EAAQ,EACRh7C,KACK9K,EAAI,EAAGA,EAAI6lD,EAAMprD,OAAQuF,IAE9B,IADA8lD,GAASD,EAAM7lD,GAAGvF,OAAS,IACdyT,EAAO,CAChB,IAAK,GAAIhE,GAAIlK,EAAIglC,GAAO96B,GAAKlK,EAAIglC,IAASqC,EAAMye,EAAO57C,IACnD,KAAIA,EAAI,GAAKA,GAAK27C,EAAMprD,QAAxB,CAEAqQ,EAAItK,KAAK,GAAGzH,OAAOmR,EAAI,GAAGnR,OAAOgtD,GAAO,IAAK,EAAI7sD,OAAOgR,EAAI,GAAGzP,QAAS,OAAO1B,OAAO8sD,EAAM37C,IAC5F,IAAI87C,GAAaH,EAAM37C,GAAGzP,MAC1B,IAAIyP,IAAMlK,EAAG,CAET,GAAIimD,GAAM/3C,GAAS43C,EAAQE,GAAc,EACrCE,EAAW7e,EAAMye,EAAQE,EAAaC,EAAM5e,EAAMn5B,CACtDpD,GAAItK,KAAK,SAAWulD,GAAO,IAAKE,GAAOF,GAAO,IAAKG,QAElD,IAAIh8C,EAAIlK,EAAG,CACZ,GAAIqnC,EAAMye,EAAO,CACb,GAAIK,GAAWlwD,KAAKwS,IAAI4+B,EAAMye,EAAOE,EACrCl7C,GAAItK,KAAK,SAAWulD,GAAO,IAAKI,IAEpCL,GAASE,EAAa,GAG9B,MAGR,MAAOl7C,GAAIgwB,KAAK,MAEpB,QAASirB,IAAOt+C,EAAKpH,GACjB,GAAIrB,GAAS,EACb,IAAIqB,EAAI,EAEJ,OAAa,CAKT,GAHQ,EAAJA,IACArB,GAAUyI,IACdpH,KAAO,IACE,EACL,KACJoH,IAAOA,EAGf,MAAOzI,GAGX,QAASonD,IAAev8C,EAAMw8C,GAC1B,IACI,MAAO,IAAI1yD,UAASkW,GAExB,MAAOmlB,GAEH,MADAq3B,GAAO7lD,MAAOwuB,IAAKA,EAAKnlB,KAAMA,IACvBrE,GAGf,QAAS8gD,IAA0BC,GAC/B,GAAI94C,GAAQnU,OAAOwF,OAAO,KAC1B,OAAO,UAA4BqpB,EAAUxzB,EAASwb,GAClDxb,EAAUyZ,KAAWzZ,EACrB,IAAIwxC,GAAOxxC,EAAQwxC,MAAQ1yB,SACpB9e,GAAQwxC,IAIX,KACI,GAAIxyC,UAAS,YAEjB,MAAOkI,GACCA,EAAEN,WAAWwH,MAAM,oBACnBojC,EAAK,oSASjB,GAAIrxC,GAAMH,EAAQ0/C,WACZn7C,OAAOvE,EAAQ0/C,YAAclsB,EAC7BA,CACN,IAAI1a,EAAM3Y,GACN,MAAO2Y,GAAM3Y,EAGjB,IAAI0xD,GAAWD,EAAQp+B,EAAUxzB,EAGzB6xD,GAASH,QAAUG,EAASH,OAAO5rD,SAC/B9F,EAAQ8hD,kBACR+P,EAASH,OAAOzkD,QAAQ,SAAU/F,GAC9BsqC,EAAK,gCAAgCptC,OAAO8C,EAAEkpC,IAAK,QAC/C6gB,GAAkBz9B,EAAUtsB,EAAEqS,MAAOrS,EAAEwrC,KAAMl3B,KAIrDg2B,EAAK,gCAAgCptC,OAAOovB,EAAU,QAClDq+B,EAASH,OAAOxkD,IAAI,SAAUhG,GAAK,MAAO,KAAK9C,OAAO8C,KAAOi/B,KAAK,MAClE,KAAM3qB,IAGdq2C,EAASC,MAAQD,EAASC,KAAKhsD,SAC3B9F,EAAQ8hD,kBACR+P,EAASC,KAAK7kD,QAAQ,SAAU/F,GAAK,MAAOid,IAAIjd,EAAEkpC,IAAK50B,KAGvDq2C,EAASC,KAAK7kD,QAAQ,SAAUmjC,GAAO,MAAOjsB,IAAIisB,EAAK50B,KAKnE,IAAIrF,MACA47C,IAoBJ,OAnBA57C,GAAIjT,OAASuuD,GAAeI,EAAS3uD,OAAQ6uD,GAC7C57C,EAAIhT,gBAAkB0uD,EAAS1uD,gBAAgB+J,IAAI,SAAUgI,GACzD,MAAOu8C,IAAev8C,EAAM68C,KAOtBF,EAASH,QAAWG,EAASH,OAAO5rD,SAAWisD,EAAYjsD,QAC7D0rC,EAAK,0CACDugB,EACK7kD,IAAI,SAAU6T,GACf,GAAIsZ,GAAMtZ,EAAGsZ,IAAKnlB,EAAO6L,EAAG7L,IAC5B,OAAO,GAAG9Q,OAAOi2B,EAAIzzB,WAAY,WAAWxC,OAAO8Q,EAAM,QAExDixB,KAAK,MAAO3qB,GAGrB1C,EAAM3Y,GAAOgW,GAiF7B,QAAS67C,IAAgBC,GAGrB,MAFAC,IAAMA,IAAOroD,SAAS4/B,cAAc,OACpCyoB,GAAIrc,UAAYoc,EAAO,iBAAqB,gBACrCC,GAAIrc,UAAUlmC,QAAQ,SAAW,EA4E5C,QAASwiD,IAAa3iD,GAClB,GAAIA,EAAG4iD,UACH,MAAO5iD,GAAG4iD,SAGV,IAAIC,GAAYxoD,SAAS4/B,cAAc,MAEvC,OADA4oB,GAAU3oD,YAAY8F,EAAG8iD,WAAU,IAC5BD,EAAUxc,UAUzB,QAASxzB,IAAOhjB,EAAIkzD,GAChB,GAAIvwC,GAAU,GAAIC,IAAQ5G,GAAiBhc,EAAIwR,GAC3Ci4C,MAAM,GAENyJ,KACAvwC,EAAQ+W,OAAS,WACbw5B,EAAU,WAAc,MAAOvwC,GAAQwS,UA/mXnD,GAAIvI,IAActnB,OAAO6tD,WACrBrqD,GAAUD,MAAMC,QAuChBqP,GAAY7S,OAAO1F,UAAU2H,SA2D7Bg9B,GAAetrB,EAAQ,kBAAkB,GAIzC+P,GAAsB/P,EAAQ,8BAqB9BtT,GAAiBL,OAAO1F,UAAU+F,eAiBlCytD,GAAa,SACbhqC,GAAW5P,EAAO,SAAU/F,GAC5B,MAAOA,GAAIhB,QAAQ2gD,GAAY,SAAUhiB,EAAG52B,GAAK,MAAQA,GAAIA,EAAEgjB,cAAgB,OAK/E+H,GAAa/rB,EAAO,SAAU/F,GAC9B,MAAOA,GAAIZ,OAAO,GAAG2qB,cAAgB/pB,EAAIhM,MAAM,KAK/C4rD,GAAc,aACdzuC,GAAYpL,EAAO,SAAU/F,GAC7B,MAAOA,GAAIhB,QAAQ4gD,GAAa,OAAOj6C,gBA0BvCgV,GAASzuB,SAASC,UAAUG,KAAOia,EAAaN,EA4ChDmpC,GAAK,SAAUhpC,EAAGU,EAAGC,GAAK,OAAO,GAKjC0N,GAAW,SAAUkpB,GAAK,MAAOA,IA4FjCkiB,GAAW,uBACX7qB,IAAe,YAAa,YAAa,UACzC8qB,IACA,eACA,UACA,cACA,UACA,eACA,UACA,gBACA,YACA,YACA,cACA,gBACA,iBACA,gBACA,mBAGAltC,IAKAmtC,sBAAuBluD,OAAOwF,OAAO,MAIrC2oD,QAAQ,EAIRC,eAAe,EAIf97B,UAAU,EAIVtD,aAAa,EAIbgH,aAAc,KAIdq4B,YAAa,KAIbC,mBAKAhrC,SAAUtjB,OAAOwF,OAAO,MAKxByb,cAAes8B,GAKf3jB,eAAgB2jB,GAKhB3Y,iBAAkB2Y,GAIlBv8B,gBAAiB9U,EAIjBiV,qBAAsByB,GAKtBe,YAAa45B,GAKb7qB,OAAO,EAIP67B,gBAAiBN,IAQjBjvB,GAAgB,8JAsBhB3oB,GAAS,GAAIhJ,QAAO,KAAK5N,OAAOu/B,GAAc1jC,OAAQ,YAiBtDkzD,GAAW,gBAEXt4B,GAA8B,mBAAXp5B,QACnB2xD,GAAKv4B,IAAap5B,OAAO4xD,UAAU/kD,UAAUmK,cAC7Ck1B,GAAOylB,IAAM,eAAexkD,KAAKwkD,IACjC3kB,GAAQ2kB,IAAMA,GAAGzjD,QAAQ,YAAc,EACvCi+B,GAASwlB,IAAMA,GAAGzjD,QAAQ,SAAW,CACzCyjD,KAAMA,GAAGzjD,QAAQ,UACjB,IAAI2jD,IAAQF,IAAM,uBAAuBxkD,KAAKwkD,GAC9CA,KAAM,cAAcxkD,KAAKwkD,IACzBA,IAAM,YAAYxkD,KAAKwkD,GACvB,IAAIG,IAAOH,IAAMA,GAAGhlD,MAAM,kBAGtB+vB,MAAiBtG,MACjBwd,IAAkB,CACtB,IAAIxa,GACA,IACI,GAAI+C,MACJj5B,QAAOC,eAAeg5B,GAAM,WACxB/4B,IAAK,WAEDwwC,IAAkB,KAG1B5zC,OAAOqtC,iBAAiB,eAAgB,KAAMlR,IAElD,MAAO12B,IAIX,GAAIssD,IA0BAC,GAzBA91C,GAAoB,WAapB,WAZkB7c,KAAd0yD,KASIA,IAPC34B,QAA+B,KAAXr7B,IAIjBA,EAAgB,SAAuC,WAAlCA,EAAgB,QAAEk0D,IAAIC,UAMhDH,IAGPv8B,GAAW4D,IAAap5B,OAAOmyD,6BAK/BltC,GAA8B,mBAAXxkB,SACnBgZ,EAAShZ,SACU,mBAAZu9B,UACPvkB,EAASukB,QAAQnpB,QAIjBm9C,IAFwC,mBAARI,MAAuB34C,EAAS24C,KAEzDA,IAIe,WAClB,QAASA,KACLlyD,KAAKqO,IAAMrL,OAAOwF,OAAO,MAW7B,MATA0pD,GAAI50D,UAAUgR,IAAM,SAAU9P,GAC1B,OAAyB,IAAlBwB,KAAKqO,IAAI7P,IAEpB0zD,EAAI50D,UAAU6E,IAAM,SAAU3D,GAC1BwB,KAAKqO,IAAI7P,IAAO,GAEpB0zD,EAAI50D,UAAUm+B,MAAQ,WAClBz7B,KAAKqO,IAAMrL,OAAOwF,OAAO,OAEtB0pD,IAIf,IA+FIC,IA/FAz4C,GAAkB,KAyBlBQ,GAAuB,WACvB,QAASA,GAAM/N,EAAKmO,EAAMC,EAAUC,EAAMC,EAAK5Y,EAAS6Y,EAAkBC,GACtE3a,KAAKmM,IAAMA,EACXnM,KAAKsa,KAAOA,EACZta,KAAKua,SAAWA,EAChBva,KAAKwa,KAAOA,EACZxa,KAAKya,IAAMA,EACXza,KAAK4a,OAAKzb,GACVa,KAAK6B,QAAUA,EACf7B,KAAK+a,cAAY5b,GACjBa,KAAKgb,cAAY7b,GACjBa,KAAKib,cAAY9b,GACjBa,KAAKxB,IAAM8b,GAAQA,EAAK9b,IACxBwB,KAAK0a,iBAAmBA,EACxB1a,KAAK8mC,sBAAoB3nC,GACzBa,KAAKgC,WAAS7C,GACda,KAAKoR,KAAM,EACXpR,KAAK6a,UAAW,EAChB7a,KAAKy5C,cAAe,EACpBz5C,KAAK8a,WAAY,EACjB9a,KAAKmb,UAAW,EAChBnb,KAAKynB,QAAS,EACdznB,KAAK2a,aAAeA,EACpB3a,KAAKkb,cAAY/b,GACjBa,KAAK8pB,oBAAqB,EAW9B,MATA9mB,QAAOC,eAAeiX,EAAM5c,UAAW,SAGnC4F,IAAK,WACD,MAAOlD,MAAK8mC,mBAEhBnjC,YAAY,EACZE,cAAc,IAEXqW,KAEPyJ,GAAmB,SAAUnJ,OAChB,KAATA,IAAmBA,EAAO,GAC9B,IAAIyI,GAAO,GAAI/I,GAGf,OAFA+I,GAAKzI,KAAOA,EACZyI,EAAKnI,WAAY,EACVmI,GA8BHmvC,GAAmBz7C,EAAQ,4MAK3B07C,GAAmB,SAAU9zD,EAAQC,GACrC2e,GAAO,uBAAwB1a,OAAOjE,EAAK,yCACvC,gPAGqFD,IAEzF+zD,GAAuB,SAAU/zD,EAAQC,GACzC2e,GAAO,aAAc1a,OAAOjE,EAAK,mCAAqCiE,OAAOjE,EAAK,cAC9E,0JAE0CD,IAE9Cg0D,GAA8B,mBAAVC,QAAyBj5C,EAASi5C,MAC1D,IAAID,GAAY,CACZ,GAAIE,IAAsB97C,EAAQ,8CAClCoN,IAAOuC,SAAW,GAAIksC,OAAMzuC,GAAOuC,UAC/BjY,IAAK,SAAU9P,EAAQC,EAAKS,GACxB,MAAIwzD,IAAoBj0D,IACpB2e,GAAO,4DAA4D1a,OAAOjE,KACnE,IAGPD,EAAOC,GAAOS,GACP,MAKvB,GAAIyzD,KACApkD,IAAK,SAAU/P,EAAQC,GACnB,GAAI8P,GAAM9P,IAAOD,GACbo0D,EAAYP,GAAiB5zD,IACb,gBAARA,IACc,MAAlBA,EAAI+R,OAAO,MACT/R,IAAOD,GAAO4+B,MAOxB,OANK7uB,IAAQqkD,IACLn0D,IAAOD,GAAO4+B,MACdm1B,GAAqB/zD,EAAQC,GAE7B6zD,GAAiB9zD,EAAQC,IAE1B8P,IAAQqkD,IAGnBC,IACA1vD,IAAK,SAAU3E,EAAQC,GAOnB,MANmB,gBAARA,IAAsBA,IAAOD,KAChCC,IAAOD,GAAO4+B,MACdm1B,GAAqB/zD,EAAQC,GAE7B6zD,GAAiB9zD,EAAQC,IAE1BD,EAAOC,IAGtB2zD,IAAY,SAAmBt4C,GAC3B,GAAI04C,GAAY,CAEZ,GAAIl0D,GAAUwb,EAAGyK,SACb0P,EAAW31B,EAAQkD,QAAUlD,EAAQkD,OAAOsxD,cAAgBD,GAAeF,EAC/E74C,GAAGwN,aAAe,GAAImrC,OAAM34C,EAAIma,OAGhCna,GAAGwN,aAAexN,EAoB9B,IAAIkc,IAAW,WAQX,MAPAA,IAAW/yB,OAAO8vD,QAAU,SAAkB7uB,GAC1C,IAAK,GAAI1N,GAAG7sB,EAAI,EAAGK,EAAInM,UAAUuG,OAAQuF,EAAIK,EAAGL,IAAK,CACjD6sB,EAAI34B,UAAU8L,EACd,KAAK,GAAIujB,KAAKsJ,GAAOvzB,OAAO1F,UAAU+F,eAAe9F,KAAKg5B,EAAGtJ,KAAIgX,EAAEhX,GAAKsJ,EAAEtJ,IAE9E,MAAOgX,IAEJlO,GAASp4B,MAAMqC,KAAMpC,YAG5Bm1D,GAAQ,EACRC,MACA39B,GAAc,WACd,IAAK,GAAI3rB,GAAI,EAAGA,EAAIspD,GAAmB7uD,OAAQuF,IAAK,CAChD,GAAI6S,GAAMy2C,GAAmBtpD,EAC7B6S,GAAI02C,KAAO12C,EAAI02C,KAAKznD,OAAO,SAAU+qB,GAAK,MAAOA,KACjDha,EAAIi+B,UAAW,EAEnBwY,GAAmB7uD,OAAS,GAO5BmX,GAAqB,WACrB,QAASA,KAELtb,KAAKw6C,UAAW,EAChBx6C,KAAK2lB,GAAKotC,KACV/yD,KAAKizD,QA0CT,MAxCA33C,GAAIhe,UAAU41D,OAAS,SAAUC,GAC7BnzD,KAAKizD,KAAK/oD,KAAKipD,IAEnB73C,EAAIhe,UAAU81D,UAAY,SAAUD,GAKhCnzD,KAAKizD,KAAKjzD,KAAKizD,KAAKjlD,QAAQmlD,IAAQ,KAC/BnzD,KAAKw6C,WACNx6C,KAAKw6C,UAAW,EAChBwY,GAAmB9oD,KAAKlK,QAGhCsb,EAAIhe,UAAUuf,OAAS,SAAUoX,GACzB3Y,EAAI/c,SACJ+c,EAAI/c,OAAO80D,OAAOrzD,MACdi0B,GAAQ3Y,EAAI/c,OAAOiiB,SACnBlF,EAAI/c,OAAOiiB,QAAQuV,IAAWrV,OAAQpF,EAAI/c,QAAU01B,MAIhE3Y,EAAIhe,UAAU0f,OAAS,SAAUiX,GAE7B,GAAIg/B,GAAOjzD,KAAKizD,KAAKznD,OAAO,SAAU+qB,GAAK,MAAOA,IAC7CxS,IAAO2R,OAIRu9B,EAAKr+B,KAAK,SAAUrd,EAAGU,GAAK,MAAOV,GAAEoO,GAAK1N,EAAE0N,IAEhD,KAAK,GAAIjc,GAAI,EAAG8N,EAAIy7C,EAAK9uD,OAAQuF,EAAI8N,EAAG9N,IAAK,CACzC,GAAIypD,GAAMF,EAAKvpD,EACXuqB,IACAk/B,EAAI1yC,WACA0yC,EAAI1yC,UAAUsV,IAAWrV,OAAQuyC,EAAKvpD,IAAMuqB,IAEpDk/B,EAAI/7B,WAGL9b,IAKXA,IAAI/c,OAAS,IACb,IAAI8c,OAcAi4C,GAAa/sD,MAAMjJ,UACnBi2D,GAAevwD,OAAOwF,OAAO8qD,KAE7B,OACA,MACA,QACA,UACA,SACA,OACA,WAKWhoD,QAAQ,SAAUhF,GAE7B,GAAIktD,GAAWF,GAAWhtD,EAC1B4S,GAAIq6C,GAAcjtD,EAAQ,WAEtB,IAAK,GADDwtB,MACKhL,EAAK,EAAGA,EAAKlrB,UAAUuG,OAAQ2kB,IACpCgL,EAAKhL,GAAMlrB,UAAUkrB,EAEzB,IAEIsiB,GAFA1iC,EAAS8qD,EAAS71D,MAAMqC,KAAM8zB,GAC9BzW,EAAKrd,KAAK8b,MAEd,QAAQxV,GACJ,IAAK,OACL,IAAK,UACD8kC,EAAWtX,CACX,MACJ,KAAK,SACDsX,EAAWtX,EAAK3uB,MAAM,GAa9B,MAVIimC,IACA/tB,EAAGo2C,aAAaroB,GAGhB/tB,EAAGd,IAAIS,QACH3b,KAAM,iBACN9C,OAAQyB,KACRxB,IAAK8H,IAGNoC,KAIf,IAolBIupB,IACAM,GArlBAmhC,GAAY1wD,OAAOwP,oBAAoB+gD,IACvC52C,MAKAjB,IAAgB,EAKhBi4C,IACA32C,OAAQ9N,EACR2N,OAAQ3N,EACRgkD,OAAQhkD,EACRkkD,UAAWlkD,GAQX6M,GAA0B,WAC1B,QAASA,GAAS9c,EAAO2c,EAASU,GAU9B,OATgB,KAAZV,IAAsBA,GAAU,OACvB,KAATU,IAAmBA,GAAO,GAC9Btc,KAAKf,MAAQA,EACbe,KAAK4b,QAAUA,EACf5b,KAAKsc,KAAOA,EAEZtc,KAAKuc,IAAMD,EAAOq3C,GAAU,GAAIr4C,IAChCtb,KAAKud,QAAU,EACfrE,EAAIja,EAAO,SAAUe,MACjBwG,GAAQvH,GAAQ,CAChB,IAAKqd,EACD,GAAIk1C,GACAvyD,EAAM20D,UAAYL,OAIlB,KAAK,GAAI7pD,GAAI,EAAG8N,EAAIk8C,GAAUvvD,OAAQuF,EAAI8N,EAAG9N,IAAK,CAC9C,GAAIlL,GAAMk1D,GAAUhqD,EACpBwP,GAAIja,EAAOT,EAAK+0D,GAAa/0D,IAIpCod,GACD5b,KAAKyzD,aAAax0D,OAUtB,KAAK,GADD2S,GAAO5O,OAAO4O,KAAK3S,GACdyK,EAAI,EAAGA,EAAIkI,EAAKzN,OAAQuF,IAAK,CAClC,GAAIlL,GAAMoT,EAAKlI,EACf0S,GAAend,EAAOT,EAAKme,OAAmBxd,GAAWyc,EAASU,IAY9E,MALAP,GAASze,UAAUm2D,aAAe,SAAUx0D,GACxC,IAAK,GAAIyK,GAAI,EAAG8N,EAAIvY,EAAMkF,OAAQuF,EAAI8N,EAAG9N,IACrCiS,EAAQ1c,EAAMyK,IAAI,EAAO1J,KAAKsc,OAG/BP,KAuQP8C,GAAU,YAoIVe,GAAoB,oBACpBD,GAA2B,2BAmIvBk0C,GAAS36B,IAAap5B,OAAOkyB,WAE7B6hC,KAEAA,GAAO5hC,MAEP4hC,GAAOthC,SAEPshC,GAAOC,YAEPD,GAAOE,gBACP9hC,GAAO,SAAU9lB,GAAO,MAAO0nD,IAAO5hC,KAAK9lB,IAC3ComB,GAAU,SAAU5xB,EAAMyxB,EAAUC,GAChCwhC,GAAOthC,QAAQ5xB,EAAMyxB,EAAUC,GAC/BwhC,GAAOC,WAAW1hC,GAClByhC,GAAOC,WAAWzhC,IAM9B,IA8pCIjC,IA9pCA5O,GAAiBtK,EAAO,SAAUvW,GAClC,GAAI+gB,GAA6B,MAAnB/gB,EAAK4P,OAAO,EAC1B5P,GAAO+gB,EAAU/gB,EAAKwE,MAAM,GAAKxE,CACjC,IAAIkY,GAA0B,MAAnBlY,EAAK4P,OAAO,EACvB5P,GAAOkY,EAAOlY,EAAKwE,MAAM,GAAKxE,CAC9B,IAAI8gB,GAA6B,MAAnB9gB,EAAK4P,OAAO,EAE1B,OADA5P,GAAO8gB,EAAU9gB,EAAKwE,MAAM,GAAKxE,GAE7BA,KAAMA,EACNkY,KAAMA,EACN4I,QAASA,EACTC,QAASA,KA6NboC,GAAmB,EACnBL,GAAmB,EAyuBnBgL,GAA2B,KA0T3BoC,GAAiB,KACjBjD,IAA2B,EA6T3BkH,GAAmB,IACnBV,MACAC,MACA/lB,MACAgmB,MACAC,IAAU,EACVC,IAAW,EACXL,GAAU,EAiBVO,GAAwB,EAExBC,GAASnc,KAAKw7C,GAOlB,IAAI96B,KAAc8S,GAAM,CACpB,GAAIioB,IAAgBn0D,OAAOkyB,WACvBiiC,KAC6B,kBAAtBA,IAAcD,KACrBr/B,KAAWzsB,SAASg0C,YAAY,SAAS1I,YAKzC7e,GAAS,WAAc,MAAOs/B,IAAcD,QAGpD,GAiVIl8B,IA0QA2B,GA3lBA5E,GAAgB,SAAUtd,EAAGU,GAC7B,GAAIV,EAAE8f,MACF,IAAKpf,EAAEof,KACH,MAAO,OAEV,IAAIpf,EAAEof,KACP,OAAQ,CAEZ,OAAO9f,GAAEoO,GAAK1N,EAAE0N,IAqHhBiR,GAAU,UACVK,GAAa,GAAGx0B,OAAOm0B,GAAS,aAChCF,GAAiB,GAAGj0B,OAAOm0B,GAAS,WACpCI,GAAkB,GAAGv0B,OAAOm0B,GAAS,YAYrCM,MAsMAS,GAA6B,WAC7B,QAASA,GAAYD,OACA,KAAbA,IAAuBA,GAAW,GACtC13B,KAAK03B,SAAWA,EAIhB13B,KAAKm3B,QAAS,EAIdn3B,KAAK+3B,WAIL/3B,KAAKk4B,YACLl4B,KAAKgC,OAAS81B,IACTJ,GAAYI,KACb93B,KAAKqL,OACAysB,GAAkBo8B,SAAWp8B,GAAkBo8B,YAAchqD,KAAKlK,MAAQ,GA2DvF,MAxDA23B,GAAYr6B,UAAUu1B,IAAM,SAAUn1B,GAClC,GAAIsC,KAAKm3B,OAAQ,CACb,GAAIg9B,GAAqBr8B,EACzB,KAEI,MADAA,IAAoB93B,KACbtC,IAEX,QACIo6B,GAAoBq8B,OAIxBh3C,IAAO,yCAOfwa,EAAYr6B,UAAU0c,GAAK,WACvB8d,GAAoB93B,MAMxB23B,EAAYr6B,UAAUyc,IAAM,WACxB+d,GAAoB93B,KAAKgC,QAE7B21B,EAAYr6B,UAAU82D,KAAO,SAAUC,GACnC,GAAIr0D,KAAKm3B,OAAQ,CACb,GAAIztB,OAAI,GAAQ8N,MAAI,EACpB,KAAK9N,EAAI,EAAG8N,EAAIxX,KAAK+3B,QAAQ5zB,OAAQuF,EAAI8N,EAAG9N,IACxC1J,KAAK+3B,QAAQruB,GAAG8tB,UAEpB,KAAK9tB,EAAI,EAAG8N,EAAIxX,KAAKk4B,SAAS/zB,OAAQuF,EAAI8N,EAAG9N,IACzC1J,KAAKk4B,SAASxuB,IAElB,IAAI1J,KAAKk0D,OACL,IAAKxqD,EAAI,EAAG8N,EAAIxX,KAAKk0D,OAAO/vD,OAAQuF,EAAI8N,EAAG9N,IACvC1J,KAAKk0D,OAAOxqD,GAAG0qD,MAAK,EAI5B,KAAKp0D,KAAK03B,UAAY13B,KAAKgC,SAAWqyD,EAAY,CAE9C,GAAIlxC,GAAOnjB,KAAKgC,OAAOkyD,OAAO14C,KAC1B2H,IAAQA,IAASnjB,OACjBA,KAAKgC,OAAOkyD,OAAOl0D,KAAKqL,OAAS8X,EACjCA,EAAK9X,MAAQrL,KAAKqL,OAG1BrL,KAAKgC,WAAS7C,GACda,KAAKm3B,QAAS,IAGfQ,KAqKP28B,IAAmB,EACnB/6B,MACAF,IAAU,CA4Bd,IAAuB,mBAAZK,UAA2BngB,EAASmgB,SAAU,CACrD,GAAI66B,IAAM76B,QAAQpK,SAClBmK,IAAY,WACR86B,GAAIj+C,KAAK8iB,IAMLu4B,IACA/hC,WAAW1gB,IAEnBolD,IAAmB,MAElB,IAAKtoB,IACsB,mBAArBwoB,oBACNj7C,EAASi7C,mBAE0B,yCAAhCA,iBAAiBvvD,WAoBrBw0B,OAJ6B,KAAjBg7B,GAAgCl7C,EAASk7C,GAIzC,WACRA,EAAar7B,KAKL,WACRxJ,WAAWwJ,GAAgB,QA3B8C,CAI7E,GAAIs7B,IAAY,EACZC,GAAW,GAAIH,kBAAiBp7B,IAChCw7B,GAAa1sD,SAASugC,eAAe7lC,OAAO8xD,IAChDC,IAASh5C,QAAQi5C,IACbC,eAAe,IAEnBp7B,GAAY,WACRi7B,IAAaA,GAAY,GAAK,EAC9BE,GAAWt6C,KAAO1X,OAAO8xD,KAE7BJ,IAAmB,EAiLvB,GAAIQ,IAAgBh6B,GAAgB,eAChCi6B,GAAYj6B,GAAgB,WAC5Bk6B,GAAiBl6B,GAAgB,gBACjCm6B,GAAYn6B,GAAgB,WAC5Bo6B,GAAkBp6B,GAAgB,iBAClCq6B,GAAcr6B,GAAgB,aAC9Bs6B,GAAct6B,GAAgB,aAC9Bu6B,GAAgBv6B,GAAgB,eAChCw6B,GAAmBx6B,GAAgB,kBACnCy6B,GAAkBz6B,GAAgB,iBAClC06B,GAAoB16B,GAAgB,mBACpCO,GAA0BP,GAAgB,iBAiB1C26B,GAAmBzyD,OAAO6tD,QAC5B+C,UAAW,KACXlnD,QAVY,SAWZ4uB,gBAAiBA,GACjB1c,IAAKJ,GACLE,WAAYA,GACZvC,MAAOA,GACPmD,MAAOA,GACPD,OAAQA,GACRN,MAAOA,GACPC,UAAWA,GACXG,UAAWA,GACXL,WAAYA,GACZrB,SAAUA,EACVK,WAAYA,EACZV,WAAYA,EACZW,UAAWA,EACXG,QAASA,EACTP,gBAAiBA,EACjBU,QAASA,GACTF,MAAOA,EACPqB,SAAUA,GACVQ,gBAAiBA,GACjBC,SAAUA,GACViW,MAAOA,GACPN,YAAaA,GACbE,gBAAiBA,GACjBG,gBAAiBA,GACjB0B,YAAaA,GACbF,YAAaA,GACbQ,eAAgBA,GAChBD,gBAAiBA,GACjBG,QAASA,GACTG,OAAQA,GACR91B,EAAGA,GACHiX,mBAAoBA,EACpBgT,SAAUA,GACVE,SAAUA,GACVC,aAAcA,GACdE,cAAeA,GACf6I,SAAUA,GACVtnB,IAAKA,EACLmP,IAAKA,EACLmc,aAAcA,GACdC,WAAYA,GACZI,qBAAsBA,GACtB86B,cAAeA,GACfC,UAAWA,GACXC,eAAgBA,GAChBC,UAAWA,GACXC,gBAAiBA,GACjBC,YAAaA,GACbC,YAAaA,GACbC,cAAeA,GACfC,iBAAkBA,GAClBC,gBAAiBA,GACjBC,kBAAmBA,GACnBp6B,gBAAiBA,KAGfI,GAAc,GAAIs2B,IA2ClB4D,GAAQ,EAORp1C,GAAyB,WACzB,QAASA,GAAQzG,EAAI4jB,EAAStH,EAAI93B,EAASs3D,GACvC/9B,GAAkB53B,KAGlB83B,KAAsBA,GAAkB89B,IAClC99B,GACAje,EACIA,EAAGC,WACH3a,KACLa,KAAK6Z,GAAKA,IAAO87C,IAClB97C,EAAGuX,SAAWpxB,MAGd3B,GACA2B,KAAKq2B,OAASh4B,EAAQg4B,KACtBr2B,KAAK+0B,OAAS12B,EAAQ02B,KACtB/0B,KAAKugB,OAASliB,EAAQkiB,KACtBvgB,KAAKmnD,OAAS9oD,EAAQ8oD,KACtBnnD,KAAK0yB,OAASr0B,EAAQq0B,OAElB1yB,KAAKwgB,QAAUniB,EAAQmiB,QACvBxgB,KAAKygB,UAAYpiB,EAAQoiB,WAI7BzgB,KAAKq2B,KAAOr2B,KAAK+0B,KAAO/0B,KAAKugB,KAAOvgB,KAAKmnD,MAAO,EAEpDnnD,KAAKm2B,GAAKA,EACVn2B,KAAK2lB,KAAO+vC,GACZ11D,KAAKm3B,QAAS,EACdn3B,KAAKq3B,MAAO,EACZr3B,KAAK2gB,MAAQ3gB,KAAKugB,KAClBvgB,KAAK61D,QACL71D,KAAK81D,WACL91D,KAAK+1D,OAAS,GAAIjE,IAClB9xD,KAAKg2D,UAAY,GAAIlE,IACrB9xD,KAAKg1B,WAAayI,EAAQx4B,WAEtB0Q,EAAW8nB,GACXz9B,KAAKyc,OAASghB,GAGdz9B,KAAKyc,OAAStD,EAAUskB,GACnBz9B,KAAKyc,SACNzc,KAAKyc,OAASvN,EACdiO,GAAO,0BAA2B1a,OAAOg7B,EAAS,MAC1C,6FAC6C5jB,KAG7D7Z,KAAKf,MAAQe,KAAKugB,SAAOphB,GAAYa,KAAKkD,MA6I9C,MAxIAod,GAAQhjB,UAAU4F,IAAM,WACpBkY,EAAWpb,KACX,IAAIf,GACA4a,EAAK7Z,KAAK6Z,EACd,KACI5a,EAAQe,KAAKyc,OAAOlf,KAAKsc,EAAIA,GAEjC,MAAOtU,GACH,IAAIvF,KAAK+0B,KAIL,KAAMxvB,EAHNkzB,IAAYlzB,EAAGsU,EAAI,uBAAwBpX,OAAOzC,KAAKg1B,WAAY,MAM3E,QAGQh1B,KAAKq2B,MACLzR,GAAS3lB,GAEbsc,IACAvb,KAAKq1B,cAET,MAAOp2B,IAKXqhB,EAAQhjB,UAAU+1D,OAAS,SAAU92C,GACjC,GAAIoJ,GAAKpJ,EAAIoJ,EACR3lB,MAAKg2D,UAAU1nD,IAAIqX,KACpB3lB,KAAKg2D,UAAU7zD,IAAIwjB,GACnB3lB,KAAK81D,QAAQ5rD,KAAKqS,GACbvc,KAAK+1D,OAAOznD,IAAIqX,IACjBpJ,EAAI22C,OAAOlzD,QAOvBsgB,EAAQhjB,UAAU+3B,YAAc,WAE5B,IADA,GAAI3rB,GAAI1J,KAAK61D,KAAK1xD,OACXuF,KAAK,CACR,GAAI6S,GAAMvc,KAAK61D,KAAKnsD,EACf1J,MAAKg2D,UAAU1nD,IAAIiO,EAAIoJ,KACxBpJ,EAAI62C,UAAUpzD,MAGtB,GAAIi2D,GAAMj2D,KAAK+1D,MACf/1D,MAAK+1D,OAAS/1D,KAAKg2D,UACnBh2D,KAAKg2D,UAAYC,EACjBj2D,KAAKg2D,UAAUv6B,QACfw6B,EAAMj2D,KAAK61D,KACX71D,KAAK61D,KAAO71D,KAAK81D,QACjB91D,KAAK81D,QAAUG,EACfj2D,KAAK81D,QAAQ3xD,OAAS,GAM1Bmc,EAAQhjB,UAAU85B,OAAS,WAEnBp3B,KAAKugB,KACLvgB,KAAK2gB,OAAQ,EAER3gB,KAAKmnD,KACVnnD,KAAK6yB,MAGL2C,GAAax1B,OAOrBsgB,EAAQhjB,UAAUu1B,IAAM,WACpB,GAAI7yB,KAAKm3B,OAAQ,CACb,GAAIl4B,GAAQe,KAAKkD,KACjB,IAAIjE,IAAUe,KAAKf,OAIfyD,EAASzD,IACTe,KAAKq2B,KAAM,CAEX,GAAInZ,GAAWld,KAAKf,KAEpB,IADAe,KAAKf,MAAQA,EACTe,KAAK+0B,KAAM,CACX,GAAId,GAAO,yBAA0BxxB,OAAOzC,KAAKg1B,WAAY,IAC7DhU,IAAwBhhB,KAAKm2B,GAAIn2B,KAAK6Z,IAAK5a,EAAOie,GAAWld,KAAK6Z,GAAIoa,OAGtEj0B,MAAKm2B,GAAG54B,KAAKyC,KAAK6Z,GAAI5a,EAAOie,MAS7CoD,EAAQhjB,UAAUsjB,SAAW,WACzB5gB,KAAKf,MAAQe,KAAKkD,MAClBlD,KAAK2gB,OAAQ,GAKjBL,EAAQhjB,UAAUuf,OAAS,WAEvB,IADA,GAAInT,GAAI1J,KAAK61D,KAAK1xD,OACXuF,KACH1J,KAAK61D,KAAKnsD,GAAGmT,UAMrByD,EAAQhjB,UAAUk6B,SAAW,WAIzB,GAHIx3B,KAAK6Z,KAAO7Z,KAAK6Z,GAAG4X,mBACpB1a,EAAS/W,KAAK6Z,GAAGC,OAAOie,QAAS/3B,MAEjCA,KAAKm3B,OAAQ,CAEb,IADA,GAAIztB,GAAI1J,KAAK61D,KAAK1xD,OACXuF,KACH1J,KAAK61D,KAAKnsD,GAAG0pD,UAAUpzD,KAE3BA,MAAKm3B,QAAS,EACVn3B,KAAK+2B,QACL/2B,KAAK+2B,WAIVzW,KAGPyb,IACAp4B,YAAY,EACZE,cAAc,EACdX,IAAKgM,EACLb,IAAKa,GAwHLguB,IAA2B3c,MAAM,GA4OjCpgB,GAAM,CA2KVooB,IAAqB2W,GAAwB5hC,UAwD7C,IAkMI44D,IACAzzC,GAnMAke,IACAw1B,KAAM,SAAU/7C,EAAOuX,GACnB,GAAIvX,EAAM0sB,oBACL1sB,EAAM0sB,kBAAkBtV,cACzBpX,EAAME,KAAK87C,UAAW,CAEtB,GAAIC,GAAcj8C,CAClBumB,IAAoB21B,SAASD,EAAaA,OAEzC,EACYj8C,EAAM0sB,kBAAoBxG,GAAgClmB,EAAOyW,KACxE0lC,OAAO5kC,EAAYvX,EAAMK,QAAMtb,GAAWwyB,KAGxD2kC,SAAU,SAAUhsB,EAAUlwB,GAC1B,GAAI/b,GAAU+b,EAAMM,gBAEpBoY,IADa1Y,EAAM0sB,kBAAoBwD,EAASxD,kBACpBzoC,EAAQ00B,UACpC10B,EAAQwuB,UACRzS,EACA/b,EAAQkc,WAGZi8C,OAAQ,SAAUp8C,GACd,GAAIvY,GAAUuY,EAAMvY,QAASilC,EAAoB1sB,EAAM0sB,iBAClDA,GAAkBvV,aACnBuV,EAAkBvV,YAAa,EAC/BO,GAAWgV,EAAmB,YAE9B1sB,EAAME,KAAK87C,YACPv0D,EAAQ0vB,WAMRgE,GAAwBuR,GAGxBnT,GAAuBmT,GAAmB,KAItD2vB,QAAS,SAAUr8C,GACf,GAAI0sB,GAAoB1sB,EAAM0sB,iBACzBA,GAAkBtV,eACdpX,EAAME,KAAK87C,UAIZviC,GAAyBiT,GAAmB,GAH5CA,EAAkBC,cAQ9BtG,GAAez9B,OAAO4O,KAAK+uB,IAyI3BxjB,GAASjO,EACTsT,GAAMtT,EAIFwnD,GAAkC,mBAAZv9B,SACtBw9B,GAAe,kBACfC,GAAa,SAAUzlD,GACvB,MAAOA,GAAIhB,QAAQwmD,GAAc,SAAUz+C,GAAK,MAAOA,GAAEgjB,gBAAkB/qB,QAAQ,QAAS,IAEhGgN,IAAS,SAAUsxB,EAAK50B,OACT,KAAPA,IAAiBA,EAAKH,GAC1B,IAAIm9C,GAAQh9C,EAAKq8C,GAAuBr8C,GAAM,EAC1CkK,IAAOstC,YACPttC,GAAOstC,YAAY9zD,KAAK,KAAMkxC,EAAK50B,EAAIg9C,GAElCH,KAAiB3yC,GAAOotC,QAC7Bh4B,QAAQl8B,MAAM,eAAewF,OAAOgsC,GAAKhsC,OAAOo0D,KAGxDr0C,GAAM,SAAUisB,EAAK50B,GACb68C,KAAiB3yC,GAAOotC,QACxBh4B,QAAQ0W,KAAK,cAAcptC,OAAOgsC,IAAQ50B,EAAKq8C,GAAuBr8C,GAAM,MAGpF4I,GAAsB,SAAU5I,EAAIi9C,GAChC,GAAIj9C,EAAGoX,QAAUpX,EACb,MAAO,QAEX,IAAIxb,GAAUsX,EAAWkE,IAAiB,MAAVA,EAAGqmB,IAC7BrmB,EAAGxb,QACHwb,EAAGyD,OACCzD,EAAGyK,UAAYzK,EAAGhU,YAAYxH,QAC9Bwb,EACNlZ,EAAOo/B,GAAiB1hC,GACxB04D,EAAO14D,EAAQ24D,MACnB,KAAKr2D,GAAQo2D,EAAM,CACf,GAAItqD,GAAQsqD,EAAKtqD,MAAM,kBACvB9L,GAAO8L,GAASA,EAAM,GAE1B,OAAS9L,EAAO,IAAI8B,OAAOm0D,GAAWj2D,GAAO,KAAO,gBAC/Co2D,IAAwB,IAAhBD,EAAwB,OAAOr0D,OAAOs0D,GAAQ,IAE/D,IAAIE,IAAW,SAAU9lD,EAAKpH,GAE1B,IADA,GAAIyK,GAAM,GACHzK,GACCA,EAAI,GAAM,IACVyK,GAAOrD,GACPpH,EAAI,IACJoH,GAAOA,GACXpH,IAAM,CAEV,OAAOyK,GAEX0hD,IAAyB,SAAUr8C,GAC/B,GAAIA,EAAGyD,QAAUzD,EAAG4T,QAAS,CAGzB,IAFA,GAAIrG,MACA8vC,EAA2B,EACxBr9C,GAAI,CACP,GAAIuN,EAAKjjB,OAAS,EAAG,CACjB,GAAIgf,GAAOiE,EAAKA,EAAKjjB,OAAS,EAC9B,IAAIgf,EAAKtd,cAAgBgU,EAAGhU,YAAa,CACrCqxD,IACAr9C,EAAKA,EAAG4T,OACR,UAEKypC,EAA2B,IAChC9vC,EAAKA,EAAKjjB,OAAS,IAAMgf,EAAM+zC,GAC/BA,EAA2B,GAGnC9vC,EAAKld,KAAK2P,GACVA,EAAKA,EAAG4T,QAEZ,MAAQ,mBACJrG,EACK7b,IAAI,SAAUsO,EAAInQ,GACnB,MAAO,GAAGjH,OAAa,IAANiH,EAAU,WAAUutD,GAAS,IAAK,EAAQ,EAAJvtD,IAAQjH,OAAO+D,GAAQqT,GACxE,GAAGpX,OAAOggB,GAAoB5I,EAAG,IAAK,SAASpX,OAAOoX,EAAG,GAAI,qBAC7D4I,GAAoB5I,MAEzB2qB,KAAK,MAGd,MAAO,iBAAiB/hC,OAAOggB,GAAoB5I,GAAK,KAUpE,IAAI4oB,IAAS1e,GAAOmtC,qBAKhBzuB,IAAO50B,GAAK40B,GAAO1P,UAAY,SAAU/wB,EAAQ2iB,EAAO9K,EAAIrb,GAKxD,MAJKqb,IACDsD,GAAO,WAAY1a,OAAOjE,EAAK,uCAC3B,oCAEDkkC,GAAa1gC,EAAQ2iB,IAuEpC8d,GAAOnoB,KAAO,SAAUinB,EAAWC,EAAU3nB,GACzC,MAAKA,GASEynB,GAAcC,EAAWC,EAAU3nB,GARlC2nB,GAAgC,kBAAbA,IACnBrkB,GAAO,qGAEiBtD,GACjB0nB,GAEJD,GAAcC,EAAWC,IA0BxCyvB,GAAgB3lD,QAAQ,SAAU1J,GAC9B6gC,GAAO7gC,GAAQu5B,KAmBnBgL,GAAY76B,QAAQ,SAAUjK,GAC1BohC,GAAOphC,EAAO,KAAOugC,KAQzBa,GAAOvM,MAAQ,SAAUqL,EAAWC,EAAU3nB,EAAIrb,GAS9C,GANI+iC,IAAc/E,KACd+E,MAAYpiC,IAEZqiC,IAAahF,KACbgF,MAAWriC,KAEVqiC,EACD,MAAOx+B,QAAOwF,OAAO+4B,GAAa,KAItC,IAFIM,GAAiBrjC,EAAKgjC,EAAU3nB,IAE/B0nB,EACD,MAAOC,EACX,IAAI3pB,KACJC,GAAOD,EAAK0pB,EACZ,KAAK,GAAI/W,KAASgX,GAAU,CACxB,GAAI8jB,GAAWztC,EAAI2S,GACf7F,EAAQ6c,EAAShX,EACjB86B,KAAa9+C,GAAQ8+C,KACrBA,GAAYA,IAEhBztC,EAAI2S,GAAS86B,EAAWA,EAAS7iD,OAAOkiB,GAASne,GAAQme,GAASA,GAASA,GAE/E,MAAO9M,IAKX4qB,GAAOtgB,MACHsgB,GAAOtG,QACHsG,GAAOnK,OACHmK,GAAOxiB,SACH,SAAUshB,EAAWC,EAAU3nB,EAAIrb,GAI/B,GAHIgjC,GACAK,GAAiBrjC,EAAKgjC,EAAU3nB,IAE/B0nB,EACD,MAAOC,EACX,IAAI3pB,GAAM7U,OAAOwF,OAAO,KAIxB,OAHAsP,GAAOD,EAAK0pB,GACRC,GACA1pB,EAAOD,EAAK2pB,GACT3pB,GAE3B4qB,GAAOtK,QAAU,SAAUoJ,EAAWC,GAClC,MAAKD,GAEE,WACH,GAAI1pB,GAAM7U,OAAOwF,OAAO,KAMxB,OALA04B,IAAUrpB,EAAKlC,EAAW4rB,GAAaA,EAAUhkC,KAAKyC,MAAQuhC,GAC1DC,GACAN,GAAUrpB,EAAKlC,EAAW6rB,GAAYA,EAASjkC,KAAKyC,MAAQwhC,GAAU,GAGnE3pB,GARA2pB,EAcf,IAAIkB,IAAe,SAAUnB,EAAWC,GACpC,WAAoBriC,KAAbqiC,EAAyBD,EAAYC,GAuR5C4C,GAAgB,mDAgChBC,GAAsB,qBAsDtBS,IAAoB,SAAU,SAAU,YA7jC5C,SAAqBE,GACjBA,EAAI1nC,UAAU2nC,MAAQ,SAAU5mC,GAC5B,GAAIwb,GAAK7Z,IAET6Z,GAAGsY,KAAOhyB,IACV,IAAIiyB,GAAUC,CAEVtO,IAAOiO,aAAeC,KACtBG,EAAW,kBAAkB3vB,OAAOoX,EAAGsY,MACvCE,EAAS,gBAAgB5vB,OAAOoX,EAAGsY,MACnCF,GAAKG,IAITvY,EAAGyD,QAAS,EAEZzD,EAAGqC,UAAW,EAEdrC,EAAGC,OAAS,GAAI6d,KAAY,GAC5B9d,EAAGC,OAAO87C,KAAM,EAEZv3D,GAAWA,EAAQkiC,aAInBpC,GAAsBtkB,EAAIxb,GAG1Bwb,EAAGyK,SAAWsa,GAAaN,GAA0BzkB,EAAGhU,aAAcxH,MAAewb,GAIrFs4C,GAAUt4C,GAGdA,EAAGs9C,MAAQt9C,EACXiX,GAAcjX,GACdkW,GAAWlW,GACXsT,GAAWtT,GACXiY,GAAWjY,EAAI,mBAAgB1a,IAAW,GAC1C4+B,GAAelkB,GACfmiB,GAAUniB,GACV8jB,GAAY9jB,GACZiY,GAAWjY,EAAI,WAEXkK,GAAOiO,aAAeC,KACtBpY,EAAGqY,MAAQzP,GAAoB5I,GAAI,GACnCoY,GAAKI,GACLE,GAAQ,OAAO9vB,OAAOoX,EAAGqY,MAAO,SAAUE,EAAUC,IAEpDxY,EAAGyK,SAASzW,IACZgM,EAAG08C,OAAO18C,EAAGyK,SAASzW,MA6hCtBm3B,IA9rCZ,SAAoBA,GAIhB,GAAIoyB,KACJA,GAAQl0D,IAAM,WACV,MAAOlD,MAAKs8B,MAEhB,IAAI+6B,KACJA,GAASn0D,IAAM,WACX,MAAOlD,MAAKkrB,QAGZksC,EAAQ/oD,IAAM,WACV8O,GAAO,2EACoCnd,OAE/Cq3D,EAAShpD,IAAM,WACX8O,GAAO,sBAAuBnd,OAGtCgD,OAAOC,eAAe+hC,EAAI1nC,UAAW,QAAS85D,GAC9Cp0D,OAAOC,eAAe+hC,EAAI1nC,UAAW,SAAU+5D,GAC/CryB,EAAI1nC,UAAUg6D,KAAOjpD,EACrB22B,EAAI1nC,UAAUi6D,QAAU/5C,EACxBwnB,EAAI1nC,UAAUogC,OAAS,SAAUD,EAAStH,EAAI93B,GAC1C,GAAIwb,GAAK7Z,IACT,IAAI8V,EAAcqgB,GACd,MAAOqH,IAAc3jB,EAAI4jB,EAAStH,EAAI93B,EAE1CA,GAAUA,MACVA,EAAQ02B,MAAO,CACf,IAAI1U,GAAU,GAAIC,IAAQzG,EAAI4jB,EAAStH,EAAI93B,EAC3C,IAAIA,EAAQ+3B,UAAW,CACnB,GAAInC,GAAO,mCAAoCxxB,OAAO4d,EAAQ2U,WAAY,IAC1E5Z,KACA4F,GAAwBmV,EAAItc,GAAKwG,EAAQphB,OAAQ4a,EAAIoa,GACrD1Y,IAEJ,MAAO,YACH8E,EAAQmX,cAwpCTwN,IAhgGX,SAAqBA,GACjB,GAAIwyB,GAAS,QACbxyB,GAAI1nC,UAAU2xB,IAAM,SAAU1N,EAAO7jB,GACjC,GAAImc,GAAK7Z,IACT,IAAIwG,GAAQ+a,GACR,IAAK,GAAI7X,GAAI,EAAG8N,EAAI+J,EAAMpd,OAAQuF,EAAI8N,EAAG9N,IACrCmQ,EAAGoV,IAAI1N,EAAM7X,GAAIhM,QAIpBmc,EAAGmW,QAAQzO,KAAW1H,EAAGmW,QAAQzO,QAAcrX,KAAKxM,GAGjD85D,EAAOvqD,KAAKsU,KACZ1H,EAAGoW,eAAgB,EAG3B,OAAOpW,IAEXmrB,EAAI1nC,UAAUi6B,MAAQ,SAAUhW,EAAO7jB,GAEnC,QAASsc,KACLH,EAAGyW,KAAK/O,EAAOvH,GACftc,EAAGC,MAAMkc,EAAIjc,WAHjB,GAAIic,GAAK7Z,IAOT,OAFAga,GAAGtc,GAAKA,EACRmc,EAAGoV,IAAI1N,EAAOvH,GACPH,GAEXmrB,EAAI1nC,UAAUgzB,KAAO,SAAU/O,EAAO7jB,GAClC,GAAImc,GAAK7Z,IAET,KAAKpC,UAAUuG,OAEX,MADA0V,GAAGmW,QAAUhtB,OAAOwF,OAAO,MACpBqR,CAGX,IAAIrT,GAAQ+a,GAAQ,CAChB,IAAK,GAAIk2C,GAAM,EAAGjgD,EAAI+J,EAAMpd,OAAQszD,EAAMjgD,EAAGigD,IACzC59C,EAAGyW,KAAK/O,EAAMk2C,GAAM/5D,EAExB,OAAOmc,GAGX,GAAI69C,GAAM79C,EAAGmW,QAAQzO,EACrB,KAAKm2C,EACD,MAAO79C,EAEX,KAAKnc,EAED,MADAmc,GAAGmW,QAAQzO,GAAS,KACb1H,CAKX,KAFA,GAAIsc,GACAzsB,EAAIguD,EAAIvzD,OACLuF,KAEH,IADAysB,EAAKuhC,EAAIhuD,MACEhM,GAAMy4B,EAAGz4B,KAAOA,EAAI,CAC3Bg6D,EAAIzgD,OAAOvN,EAAG,EACd,OAGR,MAAOmQ,IAEXmrB,EAAI1nC,UAAUyuB,MAAQ,SAAUxK,GAC5B,GAAI1H,GAAK7Z,KAED23D,EAAiBp2C,EAAMzK,aACvB6gD,KAAmBp2C,GAAS1H,EAAGmW,QAAQ2nC,IACvCn1C,GAAI,UAAW/f,OAAOk1D,EAAgB,8BAClC,GAAGl1D,OAAOggB,GAAoB5I,GAAK,wCAAyCpX,OAAO8e,EAAO,OAC1F,qIAEA,4BAA6B9e,OAAO6f,GAAUf,GAAQ,kBAAoB9e,OAAO8e,EAAO,MAGpG,IAAIm2C,GAAM79C,EAAGmW,QAAQzO,EACrB,IAAIm2C,EAAK,CACLA,EAAMA,EAAIvzD,OAAS,EAAIwT,EAAQ+/C,GAAOA,CAGtC,KAAK,GAFD5jC,GAAOnc,EAAQ/Z,UAAW,GAC1Bq2B,EAAO,sBAAuBxxB,OAAO8e,EAAO,KACvC7X,EAAI,EAAG8N,EAAIkgD,EAAIvzD,OAAQuF,EAAI8N,EAAG9N,IACnCsX,GAAwB02C,EAAIhuD,GAAImQ,EAAIia,EAAMja,EAAIoa,GAGtD,MAAOpa,KA66FHmrB,IA14FZ,SAAwBA,GACpBA,EAAI1nC,UAAUk1B,QAAU,SAAUpY,EAAOuX,GACrC,GAAI9X,GAAK7Z,KACL43D,EAAS/9C,EAAG+X,IACZimC,EAAYh+C,EAAGuT,OACf0qC,EAAwBnnC,GAAkB9W,EAC9CA,GAAGuT,OAAShT,EASRP,EAAG+X,IANFimC,EAMQh+C,EAAGk+C,UAAUF,EAAWz9C,GAJxBP,EAAGk+C,UAAUl+C,EAAG+X,IAAKxX,EAAOuX,GAAW,GAMpDmmC,IAEIF,IACAA,EAAOI,QAAU,MAEjBn+C,EAAG+X,MACH/X,EAAG+X,IAAIomC,QAAUn+C,EAIrB,KADA,GAAIo+C,GAAUp+C,EACPo+C,GACHA,EAAQn2D,QACRm2D,EAAQxqC,SACRwqC,EAAQn2D,SAAWm2D,EAAQxqC,QAAQL,QACnC6qC,EAAQxqC,QAAQmE,IAAMqmC,EAAQrmC,IAC9BqmC,EAAUA,EAAQxqC,SAK1BuX,EAAI1nC,UAAU8xB,aAAe,WACzB,GAAIvV,GAAK7Z,IACL6Z,GAAGuX,UACHvX,EAAGuX,SAASgG,UAGpB4N,EAAI1nC,UAAUypC,SAAW,WACrB,GAAIltB,GAAK7Z,IACT,KAAI6Z,EAAG4X,kBAAP,CAGAK,GAAWjY,EAAI,iBACfA,EAAG4X,mBAAoB,CAEvB,IAAIzvB,GAAS6X,EAAG4T,SACZzrB,GAAWA,EAAOyvB,mBAAsB5X,EAAGyK,SAASyM,UACpDha,EAAS/U,EAAOgvB,UAAWnX,GAI/BA,EAAGC,OAAOs6C,OAGNv6C,EAAGyiB,MAAMxgB,QACTjC,EAAGyiB,MAAMxgB,OAAOyB,UAGpB1D,EAAG2X,cAAe,EAElB3X,EAAGk+C,UAAUl+C,EAAGuT,OAAQ,MAExB0E,GAAWjY,EAAI,aAEfA,EAAGyW,OAECzW,EAAG+X,MACH/X,EAAG+X,IAAIomC,QAAU,MAGjBn+C,EAAG/X,SACH+X,EAAG/X,OAAOE,OAAS,SA+zFhBgjC,IApuGf,SAAqBA,GAEjBzc,GAAqByc,EAAI1nC,WACzB0nC,EAAI1nC,UAAU46D,UAAY,SAAUx6D,GAChC,MAAOi4B,IAASj4B,EAAIsC,OAExBglC,EAAI1nC,UAAUg1B,QAAU,WACpB,GAAIzY,GAAK7Z,KACLof,EAAKvF,EAAGyK,SAAU/iB,EAAS6d,EAAG7d,OAAQ+rB,EAAelO,EAAGkO,YACxDA,IAAgBzT,EAAG0X,aACnB1X,EAAGyL,aAAeyE,GAAqBlQ,EAAG4T,QAASH,EAAahT,KAAKuJ,YAAahK,EAAG0L,OAAQ1L,EAAGyL,cAC5FzL,EAAG0S,aACHC,GAAe3S,EAAG0S,YAAa1S,EAAGyL,eAK1CzL,EAAG/X,OAASwrB,CAEZ,IAAIlT,EACJ,KAIIR,EAAmBC,GACnB4U,GAA2B5U,EAC3BO,EAAQ7Y,EAAOhE,KAAKsc,EAAGwN,aAAcxN,EAAG4L,gBAE5C,MAAOlgB,GAKH,GAJAkzB,GAAYlzB,EAAGsU,EAAI,UAIfA,EAAGyK,SAAS6zC,YACZ,IACI/9C,EAAQP,EAAGyK,SAAS6zC,YAAY56D,KAAKsc,EAAGwN,aAAcxN,EAAG4L,eAAgBlgB,GAE7E,MAAOA,GACHkzB,GAAYlzB,EAAGsU,EAAI,eACnBO,EAAQP,EAAGuT,WAIfhT,GAAQP,EAAGuT,OAGnB,QACIqB,GAA2B,KAC3B7U,IAgBJ,MAbIpT,IAAQ4T,IAA2B,IAAjBA,EAAMjW,SACxBiW,EAAQA,EAAM,IAGZA,YAAiBF,MACf1T,GAAQ4T,IACR+C,GAAO,uGACkCtD,GAE7CO,EAAQuJ,MAGZvJ,EAAMpY,OAASsrB,EACRlT,IAsqGH4qB,GA6KZ,IAAIozB,KAAgBx1D,OAAQyN,OAAQ9J,OAEhC8xD,IACA13D,KAAM,aACNowB,UAAU,EACV5O,OACIm2C,QAASF,GACTG,QAASH,GACTlmD,KAAMtP,OAAQiiC,SAElB1I,SACIq8B,WAAY,WACR,GAAIp5C,GAAKpf,KAAMmX,EAAQiI,EAAGjI,MAAOvF,EAAOwN,EAAGxN,KAAM6mD,EAAer5C,EAAGq5C,aAAcC,EAAat5C,EAAGs5C,UACjG,IAAID,EAAc,CACd,GAAItsD,GAAMssD,EAAatsD,IAAK26B,EAAoB2xB,EAAa3xB,kBAAmBpsB,EAAmB+9C,EAAa/9C,gBAChHvD,GAAMuhD,IACF/3D,KAAM4lC,GAAkB7rB,GACxBvO,IAAKA,EACL26B,kBAAmBA,GAEvBl1B,EAAK1H,KAAKwuD,GAEN14D,KAAKkS,KAAON,EAAKzN,OAASsP,SAASzT,KAAKkS,MACxC20B,GAAgB1vB,EAAOvF,EAAK,GAAIA,EAAM5R,KAAKotB,QAE/CptB,KAAKy4D,aAAe,QAIhCE,QAAS,WACL34D,KAAKmX,MAAQnU,OAAOwF,OAAO,MAC3BxI,KAAK4R,SAETgnD,UAAW,WACP,IAAK,GAAIp6D,KAAOwB,MAAKmX,MACjB0vB,GAAgB7mC,KAAKmX,MAAO3Y,EAAKwB,KAAK4R,OAG9CinD,QAAS,WACL,GAAIz5B,GAAQp/B,IACZA,MAAKw4D,aACLx4D,KAAK09B,OAAO,UAAW,SAAUznB,GAC7BywB,GAAWtH,EAAO,SAAUz+B,GAAQ,MAAO6lC,IAAQvwB,EAAKtV,OAE5DX,KAAK09B,OAAO,UAAW,SAAUznB,GAC7BywB,GAAWtH,EAAO,SAAUz+B,GAAQ,OAAQ6lC,GAAQvwB,EAAKtV,QAGjEm4D,QAAS,WACL94D,KAAKw4D,cAETj3D,OAAQ,WACJ,GAAIikB,GAAOxlB,KAAKulB,OAAOjkB,QACnB8Y,EAAQ0V,GAAuBtK,GAC/B9K,EAAmBN,GAASA,EAAMM,gBACtC,IAAIA,EAAkB,CAElB,GAAIkP,GAAS2c,GAAkB7rB,GAC3B0E,EAAKpf,KAAMs4D,EAAUl5C,EAAGk5C,QAASC,EAAUn5C,EAAGm5C,OAClD,IAECD,KAAa1uC,IAAW4c,GAAQ8xB,EAAS1uC,KAErC2uC,GAAW3uC,GAAU4c,GAAQ+xB,EAAS3uC,GACvC,MAAOxP,EAEX,IAAI8O,GAAKlpB,KAAMmX,EAAQ+R,EAAG/R,MAAOvF,EAAOsX,EAAGtX,KACvCpT,EAAmB,MAAb4b,EAAM5b,IAGRkc,EAAiBlB,KAAK0mB,KACjBxlB,EAAiBvO,IAAM,KAAK1J,OAAOiY,EAAiBvO,KAAO,IAClEiO,EAAM5b,GACR2Y,GAAM3Y,IACN4b,EAAM0sB,kBAAoB3vB,EAAM3Y,GAAKsoC,kBAErC/vB,EAASnF,EAAMpT,GACfoT,EAAK1H,KAAK1L,KAIVwB,KAAKy4D,aAAer+C,EACpBpa,KAAK04D,WAAal6D,GAGtB4b,EAAME,KAAK87C,WAAY,EAE3B,MAAOh8C,IAAUoL,GAAQA,EAAK,KAIlCuzC,IACAV,UAAWA,KAGf,SAAuBrzB,GAEnB,GAAIg0B,KACJA,GAAU91D,IAAM,WAAc,MAAO6gB,KAEjCi1C,EAAU3qD,IAAM,WACZ8O,GAAO,yEAGfna,OAAOC,eAAe+hC,EAAK,SAAUg0B,GAIrCh0B,EAAIi0B,MACAppB,KAAM1yB,GACNrF,OAAQA,EACR8mB,aAAcA,GACdxiB,eAAgBA,GAEpB4oB,EAAI32B,IAAMA,EACV22B,EAAIk0B,OAAS17C,EACbwnB,EAAIrP,SAAWA,GAEfqP,EAAIm0B,WAAa,SAAUj1D,GAEvB,MADAyX,GAAQzX,GACDA,GAEX8gC,EAAI3mC,QAAU2E,OAAOwF,OAAO,MAC5B29B,GAAY76B,QAAQ,SAAUjK,GAC1B2jC,EAAI3mC,QAAQgD,EAAO,KAAO2B,OAAOwF,OAAO,QAI5Cw8B,EAAI3mC,QAAQ4hC,MAAQ+E,EACpBltB,EAAOktB,EAAI3mC,QAAQwgC,WAAYk6B,IAC/B7zB,GAAQF,GACRS,GAAUT,GACVW,GAAWX,GACXqB,GAAmBrB,IAGTA,IACdhiC,OAAOC,eAAe+hC,GAAI1nC,UAAW,aACjC4F,IAAK8Y,KAEThZ,OAAOC,eAAe+hC,GAAI1nC,UAAW,eACjC4F,IAAK,WAED,MAAOlD,MAAK8B,QAAU9B,KAAK8B,OAAOC,cAI1CiB,OAAOC,eAAe+hC,GAAK,2BACvB/lC,MAAOigC,KAEX8F,GAAIt4B,QA7jEU,QAikEd,IA0mDI9C,IAAKuH,GAAKsgC,GAAKpmC,GAAOimC,GAAeC,GA4ErCU,GA8IA1zC,GAwEA41C,GAqMAilB,GAjlEAx8B,GAAiBjmB,EAAQ,eAEzB0iD,GAAc1iD,EAAQ,yCACtBgQ,GAAc,SAAUxa,EAAK9K,EAAMyvC,GACnC,MAAkB,UAATA,GAAoBuoB,GAAYltD,IAAiB,WAAT9K,GACnC,aAATyvC,GAA+B,WAAR3kC,GACd,YAAT2kC,GAA8B,UAAR3kC,GACb,UAAT2kC,GAA4B,UAAR3kC,GAEzBmgC,GAAmB31B,EAAQ,wCAC3B2iD,GAA8B3iD,EAAQ,sCACtCi2B,GAAyB,SAAUpuC,EAAKS,GACxC,MAAO0tC,IAAiB1tC,IAAoB,UAAVA,EAC5B,QAEU,oBAART,GAA6B86D,GAA4Br6D,GACnDA,EACA,QAEdytC,GAAgB/1B,EAAQ,8XAMxBy1B,GAAU,+BACVF,GAAU,SAAUvrC,GACpB,MAA0B,MAAnBA,EAAK4P,OAAO,IAAmC,UAArB5P,EAAKwE,MAAM,EAAG,IAE/CknC,GAAe,SAAU1rC,GACzB,MAAOurC,IAAQvrC,GAAQA,EAAKwE,MAAM,EAAGxE,EAAKwD,QAAU,IAEpDwoC,GAAmB,SAAU12B,GAC7B,MAAc,OAAPA,IAAuB,IAARA,GA0EtBuyB,IACA4L,IAAK,6BACLmlB,KAAM,sCAENC,GAAY7iD,EAAQ,snBAapBgxB,GAAQhxB,EAAQ,kNAEoD,GACpE2sC,GAAW,SAAUn3C,GAAO,MAAe,QAARA,GACnC8X,GAAgB,SAAU9X,GAC1B,MAAOqtD,IAAUrtD,IAAQw7B,GAAMx7B,IAY/B07B,GAAsB7kC,OAAOwF,OAAO,MAyBpCyhC,GAAkBtzB,EAAQ,6CAkE1B8iD,GAAuBz2D,OAAO6tD,QAChC+C,UAAW,KACX9rB,cAAeA,GACfS,gBAAiBA,GACjBE,eAAgBA,GAChBC,cAAeA,GACfC,aAAcA,GACdG,YAAaA,GACb/gC,YAAaA,GACbk/B,WAAYA,GACZ8B,YAAaA,GACbX,QAASA,GACTY,eAAgBA,GAChBE,cAAeA,KAGbtqB,IACApW,OAAQ,SAAUsmC,EAAG10B,GACjB+uB,GAAY/uB,IAEhBgd,OAAQ,SAAUkT,EAAUlwB,GACpBkwB,EAAShwB,KAAKsE,MAAQxE,EAAME,KAAKsE,MACjCuqB,GAAYmB,GAAU,GACtBnB,GAAY/uB,KAGpBq8C,QAAS,SAAUr8C,GACf+uB,GAAY/uB,GAAO,KAiFvBswB,GAAY,GAAIxwB,IAAM,UACtBye,IAAS,SAAU,WAAY,SAAU,SAAU,WA4sBnD+gC,IACAlxD,OAAQ6hC,GACRjT,OAAQiT,GACRosB,QAAS,SAA0Br8C,GAE/BiwB,GAAiBjwB,EAAOswB,MAiE5Ba,GAAiBvoC,OAAOwF,OAAO,MA+C/BmxD,IAAe/6C,GAAK86C,IAoGpBt3C,IACA5Z,OAAQmjC,GACRvU,OAAQuU,IAyBRiuB,IACApxD,OAAQ4kC,GACRhW,OAAQgW,IAGRkB,GAAsB,gBA+ZtBwE,GAAc,MACdG,GAAuB,MAuJvBE,GAAkBmhB,MAAsB1C,IAAQ/sB,OAAO+sB,GAAK,KAAO,IAoDnE3hB,IACAznC,OAAQmrC,GACRvc,OAAQuc,GAER8iB,QAAS,SAAUr8C,GAAS,MAAOu5B,IAAmBv5B,EAAOswB,MA6G7D9jB,IACApe,OAAQorC,GACRxc,OAAQwc,IAGRqB,GAAiB/9B,EAAO,SAAU2iD,GAClC,GAAIrlD,MACAslD,EAAgB,gBAChBC,EAAoB,OAOxB,OANAF,GAAQ7sD,MAAM8sD,GAAexuD,QAAQ,SAAUlB,GAC3C,GAAIA,EAAM,CACN,GAAI6rD,GAAM7rD,EAAK4C,MAAM+sD,EACrB9D,GAAI9xD,OAAS,IAAMqQ,EAAIyhD,EAAI,GAAGvjD,QAAUujD,EAAI,GAAGvjD,WAGhD8B,IAkDPwlD,GAAW,MACXC,GAAc,iBACdtkB,GAAU,SAAU9nC,EAAIlN,EAAMsV,GAE9B,GAAI+jD,GAAS/sD,KAAKtM,GACdkN,EAAGhG,MAAMkyB,YAAYp5B,EAAMsV,OAE1B,IAAIgkD,GAAYhtD,KAAKgJ,GACtBpI,EAAGhG,MAAMkyB,YAAYzX,GAAU3hB,GAAOsV,EAAI9F,QAAQ8pD,GAAa,IAAK,iBAEnE,CACD,GAAIC,GAAiBC,GAAUx5D,EAC/B,IAAI4F,MAAMC,QAAQyP,GAId,IAAK,GAAIvM,GAAI,EAAGE,EAAMqM,EAAI9R,OAAQuF,EAAIE,EAAKF,IACvCmE,EAAGhG,MAAMqyD,GAAkBjkD,EAAIvM,OAInCmE,GAAGhG,MAAMqyD,GAAkBjkD,IAInCmkD,IAAe,SAAU,MAAO,MAEhCD,GAAYjjD,EAAO,SAAU8pB,GAG7B,GAFAo4B,GAAaA,IAAclxD,SAAS4/B,cAAc,OAAOjgC,MAE5C,YADbm5B,EAAOla,GAASka,KACSA,IAAQo4B,IAC7B,MAAOp4B,EAGX,KAAK,GADDq5B,GAAUr5B,EAAKzwB,OAAO,GAAG2qB,cAAgB8F,EAAK77B,MAAM,GAC/CuE,EAAI,EAAGA,EAAI0wD,GAAYj2D,OAAQuF,IAAK,CACzC,GAAIigB,GAASywC,GAAY1wD,GAAK2wD,CAC9B,IAAI1wC,IAAUyvC,IACV,MAAOzvC,MAsCf2wC,IACA9xD,OAAQ6sC,GACRje,OAAQie,IAGRS,GAAiB,MAgFjBM,GAAoBl/B,EAAO,SAAUvW,GACrC,OACI83C,WAAY,GAAGh2C,OAAO9B,EAAM,UAC5B+3C,aAAc,GAAGj2C,OAAO9B,EAAM,aAC9Bg4C,iBAAkB,GAAGl2C,OAAO9B,EAAM,iBAClCm6C,WAAY,GAAGr4C,OAAO9B,EAAM,UAC5Bq6C,aAAc,GAAGv4C,OAAO9B,EAAM,aAC9Bo6C,iBAAkB,GAAGt4C,OAAO9B,EAAM,oBAGtC45D,GAAgBrhC,KAAc4T,GAC9B+J,GAAa,aACbgB,GAAY,YAEZR,GAAiB,aACjBP,GAAqB,gBACrBY,GAAgB,YAChBX,GAAoB,cACpBwjB,UAE+Bp7D,KAA3BW,OAAO06D,qBAC0Br7D,KAAjCW,OAAO26D,wBACPpjB,GAAiB,mBACjBP,GAAqB,2BAEK33C,KAA1BW,OAAO46D,oBACyBv7D,KAAhCW,OAAO66D,uBACPjjB,GAAgB,kBAChBX,GAAoB,sBAI5B,IAAIT,IAAMpd,GACJp5B,OAAO86D,sBACH96D,OAAO86D,sBAAsBn9D,KAAKqC,QAClC8vB,WACuB,SAAqClyB,GAAM,MAAOA,MA4C/Eq6C,GAAc,yBAySdQ,GAAarf,IAET1wB,OAAQ8yC,GACRuf,SAAUvf,GACVn6B,OAAQ,SAAU/G,EAAOugC,IAEG,IAApBvgC,EAAME,KAAKggC,KAEXI,GAAMtgC,EAAOugC,GAGbA,SAMZmgB,IAAmB14C,GAAOw3C,GAAS3pB,GAAQrpB,GAAU0zC,GAAS/hB,IAI9DwiB,GAAYD,GAAgBr4D,OAAOk3D,IACnCqB,GArvEJ,SAA6BC,GAYzB,QAASC,GAAYzgD,GACjB,MAAO,IAAIP,IAAMu/C,EAAQrxB,QAAQ3tB,GAAK3D,wBAAuB3X,GAAWsb,GAE5E,QAAS0gD,GAAWC,EAAUvuC,GAC1B,QAAS1L,KACsB,KAArBA,EAAO0L,WACTwuC,EAAWD,GAInB,MADAj6C,GAAO0L,UAAYA,EACZ1L,EAEX,QAASk6C,GAAWxtD,GAChB,GAAI7L,GAASy3D,EAAQxyB,WAAWp5B,EAE5B0H,GAAMvT,IACNy3D,EAAQ3wB,YAAY9mC,EAAQ6L,GAGpC,QAAS+5B,GAAiBxtB,EAAO+nC,GAC7B,OAASA,IACJ/nC,EAAMQ,MACLmJ,GAAOutC,gBAAgBntD,QACrB4f,GAAOutC,gBAAgB7lD,KAAK,SAAU6vD,GAClC,MAAOvlD,GAASulD,GACVA,EAAOruD,KAAKmN,EAAMjO,KAClBmvD,IAAWlhD,EAAMjO,QAE/B4X,GAAO6jB,iBAAiBxtB,EAAMjO,KAGtC,QAASovD,GAAUnhD,EAAOohD,EAAoBC,EAAWC,EAAQC,EAAQC,EAAYvwD,GAUjF,GATIkK,EAAM6E,EAAMK,MAAQlF,EAAMqmD,KAM1BxhD,EAAQwhD,EAAWvwD,GAAS8O,EAAWC,IAE3CA,EAAMq/B,cAAgBkiB,GAClBp3C,EAAgBnK,EAAOohD,EAAoBC,EAAWC,GAA1D,CAGA,GAAIphD,GAAOF,EAAME,KACbC,EAAWH,EAAMG,SACjBpO,EAAMiO,EAAMjO,GACZoJ,GAAMpJ,IAEEmO,GAAQA,EAAK8J,KACby3C,IAEAj0B,EAAiBxtB,EAAOyhD,IACxB1+C,GAAO,4BACHhR,EACA,kHAE2CiO,EAAMvY,SAG7DuY,EAAMK,IAAML,EAAMQ,GACZ6+C,EAAQlxB,gBAAgBnuB,EAAMQ,GAAIzO,GAClCstD,EAAQ3xB,cAAc37B,EAAKiO,GACjC0hD,EAAS1hD,GACT2hD,EAAe3hD,EAAOG,EAAUihD,GAC5BjmD,EAAM+E,IACN0hD,EAAkB5hD,EAAOohD,GAE7BhF,EAAOiF,EAAWrhD,EAAMK,IAAKihD,GACzBphD,GAAQA,EAAK8J,KACby3C,KAGCrmD,EAAO4E,EAAMU,YAClBV,EAAMK,IAAMg/C,EAAQ/wB,cAActuB,EAAMI,MACxCg8C,EAAOiF,EAAWrhD,EAAMK,IAAKihD,KAG7BthD,EAAMK,IAAMg/C,EAAQhxB,eAAeruB,EAAMI,MACzCg8C,EAAOiF,EAAWrhD,EAAMK,IAAKihD,KAGrC,QAASn3C,GAAgBnK,EAAOohD,EAAoBC,EAAWC,GAC3D,GAAIhyD,GAAI0Q,EAAME,IACd,IAAI/E,EAAM7L,GAAI,CACV,GAAIuyD,GAAgB1mD,EAAM6E,EAAM0sB,oBAAsBp9B,EAAE0sD,SAQxD,IAPI7gD,EAAO7L,EAAIA,EAAE9H,OAAU2T,EAAO7L,EAAIA,EAAEysD,OACpCzsD,EAAE0Q,GAAO,GAMT7E,EAAM6E,EAAM0sB,mBAMZ,MALAo1B,GAAc9hD,EAAOohD,GACrBhF,EAAOiF,EAAWrhD,EAAMK,IAAKihD,GACzBlmD,EAAOymD,IACPE,EAAoB/hD,EAAOohD,EAAoBC,EAAWC,IAEvD,GAInB,QAASQ,GAAc9hD,EAAOohD,GACtBjmD,EAAM6E,EAAME,KAAK8hD,iBACjBZ,EAAmBtxD,KAAKvM,MAAM69D,EAAoBphD,EAAME,KAAK8hD,eAC7DhiD,EAAME,KAAK8hD,cAAgB,MAE/BhiD,EAAMK,IAAML,EAAM0sB,kBAAkBlV,IAChCyqC,EAAYjiD,IACZ4hD,EAAkB5hD,EAAOohD,GACzBM,EAAS1hD,KAKT+uB,GAAY/uB,GAEZohD,EAAmBtxD,KAAKkQ,IAGhC,QAAS+hD,GAAoB/hD,EAAOohD,EAAoBC,EAAWC,GAO/D,IANA,GAAIhyD,GAKA4yD,EAAYliD,EACTkiD,EAAUx1B,mBAEb,GADAw1B,EAAYA,EAAUx1B,kBAAkB1Z,OACpC7X,EAAO7L,EAAI4yD,EAAUhiD,OAAU/E,EAAO7L,EAAIA,EAAE6uC,YAAc,CAC1D,IAAK7uC,EAAI,EAAGA,EAAIguD,EAAImD,SAAS12D,SAAUuF,EACnCguD,EAAImD,SAASnxD,GAAGghC,GAAW4xB,EAE/Bd,GAAmBtxD,KAAKoyD,EACxB,OAKR9F,EAAOiF,EAAWrhD,EAAMK,IAAKihD,GAEjC,QAASlF,GAAOx0D,EAAQyY,EAAKmE,GACrBrJ,EAAMvT,KACFuT,EAAMqJ,GACF66C,EAAQxyB,WAAWroB,KAAS5c,GAC5By3D,EAAQ9wB,aAAa3mC,EAAQyY,EAAKmE,GAItC66C,EAAQ1xD,YAAY/F,EAAQyY,IAIxC,QAASshD,GAAe3hD,EAAOG,EAAUihD,GACrC,GAAIh1D,GAAQ+T,GAAW,CAEfgiD,EAAmBhiD,EAEvB,KAAK,GAAIk9C,GAAM,EAAGA,EAAMl9C,EAASpW,SAAUszD,EACvC8D,EAAUhhD,EAASk9C,GAAM+D,EAAoBphD,EAAMK,IAAK,MAAM,EAAMF,EAAUk9C,OAG7E/hD,GAAY0E,EAAMI,OACvBi/C,EAAQ1xD,YAAYqS,EAAMK,IAAKg/C,EAAQhxB,eAAe7lC,OAAOwX,EAAMI,QAG3E,QAAS6hD,GAAYjiD,GACjB,KAAOA,EAAM0sB,mBACT1sB,EAAQA,EAAM0sB,kBAAkB1Z,MAEpC,OAAO7X,GAAM6E,EAAMjO,KAEvB,QAAS6vD,GAAkB5hD,EAAOohD,GAC9B,IAAK,GAAIgB,GAAM,EAAGA,EAAM9E,EAAIlvD,OAAOrE,SAAUq4D,EACzC9E,EAAIlvD,OAAOg0D,GAAK9xB,GAAWtwB,EAE/B1Q,GAAI0Q,EAAME,KAAK1Y,KACX2T,EAAM7L,KACF6L,EAAM7L,EAAElB,SACRkB,EAAElB,OAAOkiC,GAAWtwB,GACpB7E,EAAM7L,EAAE8sD,SACRgF,EAAmBtxD,KAAKkQ,IAMpC,QAAS0hD,GAAS1hD,GACd,GAAI1Q,EACJ,IAAI6L,EAAO7L,EAAI0Q,EAAMa,WACjBw+C,EAAQvwB,cAAc9uB,EAAMK,IAAK/Q,OAIjC,KADA,GAAI+yD,GAAWriD,EACRqiD,GACClnD,EAAO7L,EAAI+yD,EAAS56D,UAAa0T,EAAO7L,EAAIA,EAAE4a,SAAS3iB,WACvD83D,EAAQvwB,cAAc9uB,EAAMK,IAAK/Q,GAErC+yD,EAAWA,EAASz6D,MAIxBuT,GAAO7L,EAAImnB,KACXnnB,IAAM0Q,EAAMvY,SACZ6H,IAAM0Q,EAAMW,WACZxF,EAAO7L,EAAIA,EAAE4a,SAAS3iB,WACtB83D,EAAQvwB,cAAc9uB,EAAMK,IAAK/Q,GAGzC,QAASgzD,GAAUjB,EAAWC,EAAQ97B,EAAQ+8B,EAAUvyB,EAAQoxB,GAC5D,KAAOmB,GAAYvyB,IAAUuyB,EACzBpB,EAAU37B,EAAO+8B,GAAWnB,EAAoBC,EAAWC,GAAQ,EAAO97B,EAAQ+8B,GAG1F,QAASC,GAAkBxiD,GACvB,GAAI1Q,GAAGkK,EACH0G,EAAOF,EAAME,IACjB,IAAI/E,EAAM+E,GAGN,IAFI/E,EAAO7L,EAAI4Q,EAAK1Y,OAAU2T,EAAO7L,EAAIA,EAAE+sD,UACvC/sD,EAAE0Q,GACD1Q,EAAI,EAAGA,EAAIguD,EAAIjB,QAAQtyD,SAAUuF,EAClCguD,EAAIjB,QAAQ/sD,GAAG0Q,EAEvB,IAAI7E,EAAO7L,EAAI0Q,EAAMG,UACjB,IAAK3G,EAAI,EAAGA,EAAIwG,EAAMG,SAASpW,SAAUyP,EACrCgpD,EAAkBxiD,EAAMG,SAAS3G,IAI7C,QAASipD,GAAaj9B,EAAQ+8B,EAAUvyB,GACpC,KAAOuyB,GAAYvyB,IAAUuyB,EAAU,CACnC,GAAIG,GAAKl9B,EAAO+8B,EACZpnD,GAAMunD,KACFvnD,EAAMunD,EAAG3wD,MACT4wD,EAA0BD,GAC1BF,EAAkBE,IAIlBzB,EAAWyB,EAAGriD,OAK9B,QAASsiD,GAA0B3iD,EAAOugC,GACtC,GAAIplC,EAAMolC,IAAOplC,EAAM6E,EAAME,MAAO,CAChC,GAAI0iD,GACAnwC,EAAY6qC,EAAIv2C,OAAOhd,OAAS,CAgBpC,KAfIoR,EAAMolC,GAGNA,EAAG9tB,WAAaA,EAIhB8tB,EAAKwgB,EAAW/gD,EAAMK,IAAKoS,GAG3BtX,EAAOynD,EAAM5iD,EAAM0sB,oBACnBvxB,EAAOynD,EAAMA,EAAI5vC,SACjB7X,EAAMynD,EAAI1iD,OACVyiD,EAA0BC,EAAKriB,GAE9BqiB,EAAM,EAAGA,EAAMtF,EAAIv2C,OAAOhd,SAAU64D,EACrCtF,EAAIv2C,OAAO67C,GAAK5iD,EAAOugC,EAEvBplC,GAAOynD,EAAM5iD,EAAME,KAAK1Y,OAAU2T,EAAOynD,EAAMA,EAAI77C,QACnD67C,EAAI5iD,EAAOugC,GAGXA,QAIJ0gB,GAAWjhD,EAAMK,KAGzB,QAASwiD,GAAexB,EAAWyB,EAAOC,EAAO3B,EAAoB4B,GACjE,GAQIC,GAAaC,EAAUC,EAAa7B,EARpC8B,EAAc,EACdC,EAAc,EACdC,EAAYR,EAAM/4D,OAAS,EAC3Bw5D,EAAgBT,EAAM,GACtBU,EAAcV,EAAMQ,GACpBG,EAAYV,EAAMh5D,OAAS,EAC3B25D,EAAgBX,EAAM,GACtBY,EAAcZ,EAAMU,GAKpBG,GAAWZ,CAIf,KAFIb,EAAmBY,GAEhBK,GAAeE,GAAaD,GAAeI,GAC1CxoD,EAAQsoD,GACRA,EAAgBT,IAAQM,GAEnBnoD,EAAQuoD,GACbA,EAAcV,IAAQQ,GAEjB7zB,GAAU8zB,EAAeG,IAC9BG,EAAWN,EAAeG,EAAetC,EAAoB2B,EAAOM,GACpEE,EAAgBT,IAAQM,GACxBM,EAAgBX,IAAQM,IAEnB5zB,GAAU+zB,EAAaG,IAC5BE,EAAWL,EAAaG,EAAavC,EAAoB2B,EAAOU,GAChED,EAAcV,IAAQQ,GACtBK,EAAcZ,IAAQU,IAEjBh0B,GAAU8zB,EAAeI,IAE9BE,EAAWN,EAAeI,EAAavC,EAAoB2B,EAAOU,GAClEG,GACIvE,EAAQ9wB,aAAa8yB,EAAWkC,EAAcljD,IAAKg/C,EAAQ1wB,YAAY60B,EAAYnjD,MACvFkjD,EAAgBT,IAAQM,GACxBO,EAAcZ,IAAQU,IAEjBh0B,GAAU+zB,EAAaE,IAE5BG,EAAWL,EAAaE,EAAetC,EAAoB2B,EAAOM,GAClEO,GACIvE,EAAQ9wB,aAAa8yB,EAAWmC,EAAYnjD,IAAKkjD,EAAcljD,KACnEmjD,EAAcV,IAAQQ,GACtBI,EAAgBX,IAAQM,KAGpBpoD,EAAQgoD,KACRA,EAAcnzB,GAAkBgzB,EAAOM,EAAaE,IACxDJ,EAAW/nD,EAAMuoD,EAAct/D,KACzB6+D,EAAYS,EAAct/D,KAC1B0/D,EAAaJ,EAAeZ,EAAOM,EAAaE,GAClDroD,EAAQioD,GAER/B,EAAUuC,EAAetC,EAAoBC,EAAWkC,EAAcljD,KAAK,EAAO0iD,EAAOM,IAGzFF,EAAcL,EAAMI,GAChBzzB,GAAU0zB,EAAaO,IACvBG,EAAWV,EAAaO,EAAetC,EAAoB2B,EAAOM,GAClEP,EAAMI,OAAYn+D,GAClB6+D,GACIvE,EAAQ9wB,aAAa8yB,EAAW8B,EAAY9iD,IAAKkjD,EAAcljD,MAInE8gD,EAAUuC,EAAetC,EAAoBC,EAAWkC,EAAcljD,KAAK,EAAO0iD,EAAOM,IAGjGK,EAAgBX,IAAQM,GAG5BD,GAAcE,GACdhC,EAASrmD,EAAQ8nD,EAAMU,EAAY,IAAM,KAAOV,EAAMU,EAAY,GAAGpjD,IACrEiiD,EAAUjB,EAAWC,EAAQyB,EAAOM,EAAaI,EAAWrC,IAEvDiC,EAAcI,GACnBhB,EAAaK,EAAOM,EAAaE,GAGzC,QAASnB,GAAmBhiD,GAExB,IAAK,GADD4jD,MACKC,EAAM,EAAGA,EAAM7jD,EAASpW,OAAQi6D,IAAO,CAC5C,GAAIhkD,GAAQG,EAAS6jD,GACjB5/D,EAAM4b,EAAM5b,GACZ+W,GAAM/W,KACF2/D,EAAS3/D,GACT2e,GAAO,6BAA6B1a,OAAOjE,EAAK,sCAAuC4b,EAAMvY,SAG7Fs8D,EAAS3/D,IAAO,IAKhC,QAAS0/D,GAAaj7C,EAAMi6C,EAAOtlD,EAAOm5B,GACtC,IAAK,GAAIstB,GAAMzmD,EAAOymD,EAAMttB,EAAKstB,IAAO,CACpC,GAAInmD,GAAIglD,EAAMmB,EACd,IAAI9oD,EAAM2C,IAAM2xB,GAAU5mB,EAAM/K,GAC5B,MAAOmmD,IAGnB,QAASJ,GAAW3zB,EAAUlwB,EAAOohD,EAAoBI,EAAYvwD,EAAO+xD,GACxE,GAAI9yB,IAAalwB,EAAjB,CAGI7E,EAAM6E,EAAMK,MAAQlF,EAAMqmD,KAE1BxhD,EAAQwhD,EAAWvwD,GAAS8O,EAAWC,GAE3C,IAAIK,GAAOL,EAAMK,IAAM6vB,EAAS7vB,GAChC,IAAIjF,EAAO80B,EAASxgB,oBAOhB,YANIvU,EAAM6E,EAAMO,aAAa4T,UACzB+vC,EAAQh0B,EAAS7vB,IAAKL,EAAOohD,GAG7BphD,EAAM0P,oBAAqB,EAQnC,IAAItU,EAAO4E,EAAMS,WACbrF,EAAO80B,EAASzvB,WAChBT,EAAM5b,MAAQ8rC,EAAS9rC,MACtBgX,EAAO4E,EAAMe,WAAa3F,EAAO4E,EAAMqN,SAExC,YADArN,EAAM0sB,kBAAoBwD,EAASxD,kBAGvC,IAAIp9B,GACA4Q,EAAOF,EAAME,IACb/E,GAAM+E,IAAS/E,EAAO7L,EAAI4Q,EAAK1Y,OAAU2T,EAAO7L,EAAIA,EAAE4sD,WACtD5sD,EAAE4gC,EAAUlwB,EAEhB,IAAI8iD,GAAQ5yB,EAAS/vB,SACjBuiD,EAAK1iD,EAAMG,QACf,IAAIhF,EAAM+E,IAAS+hD,EAAYjiD,GAAQ,CACnC,IAAK1Q,EAAI,EAAGA,EAAIguD,EAAItgC,OAAOjzB,SAAUuF,EACjCguD,EAAItgC,OAAO1tB,GAAG4gC,EAAUlwB,EACxB7E,GAAO7L,EAAI4Q,EAAK1Y,OAAU2T,EAAO7L,EAAIA,EAAE0tB,SACvC1tB,EAAE4gC,EAAUlwB,GAEhB/E,EAAQ+E,EAAMI,MACVjF,EAAM2nD,IAAU3nD,EAAMunD,GAClBI,IAAUJ,GACVG,EAAexiD,EAAKyiD,EAAOJ,EAAItB,EAAoB4B,GAElD7nD,EAAMunD,IAEPP,EAAmBO,GAEnBvnD,EAAM+0B,EAAS9vB,OACfi/C,EAAQzwB,eAAevuB,EAAK,IAChCiiD,EAAUjiD,EAAK,KAAMqiD,EAAI,EAAGA,EAAG34D,OAAS,EAAGq3D,IAEtCjmD,EAAM2nD,GACXL,EAAaK,EAAO,EAAGA,EAAM/4D,OAAS,GAEjCoR,EAAM+0B,EAAS9vB,OACpBi/C,EAAQzwB,eAAevuB,EAAK,IAG3B6vB,EAAS9vB,OAASJ,EAAMI,MAC7Bi/C,EAAQzwB,eAAevuB,EAAKL,EAAMI,MAElCjF,EAAM+E,IACF/E,EAAO7L,EAAI4Q,EAAK1Y,OAAU2T,EAAO7L,EAAIA,EAAE60D,YACvC70D,EAAE4gC,EAAUlwB,IAGxB,QAASokD,GAAiBpkD,EAAOga,EAAOqqC,GAGpC,GAAIjpD,EAAOipD,IAAYlpD,EAAM6E,EAAMpY,QAC/BoY,EAAMpY,OAAOsY,KAAK8hD,cAAgBhoC,MAGlC,KAAK,GAAIsqC,GAAM,EAAGA,EAAMtqC,EAAMjwB,SAAUu6D,EACpCtqC,EAAMsqC,GAAKpkD,KAAK1Y,KAAK40D,OAAOpiC,EAAMsqC,IAW9C,QAASJ,GAAQ7jD,EAAKL,EAAOohD,EAAoBrZ,GAC7C,GAAIz4C,GACAyC,EAAMiO,EAAMjO,IAAKmO,EAAOF,EAAME,KAAMC,EAAWH,EAAMG,QAGzD,IAFA4nC,EAASA,GAAW7nC,GAAQA,EAAK8J,IACjChK,EAAMK,IAAMA,EACRjF,EAAO4E,EAAMU,YAAcvF,EAAM6E,EAAMO,cAEvC,MADAP,GAAM0P,oBAAqB,GACpB,CAIP,KAAK60C,EAAgBlkD,EAAKL,EAAO+nC,GAC7B,OAAO,CAGf,IAAI5sC,EAAM+E,KACF/E,EAAO7L,EAAI4Q,EAAK1Y,OAAU2T,EAAO7L,EAAIA,EAAEysD,OACvCzsD,EAAE0Q,GAAO,GACT7E,EAAO7L,EAAI0Q,EAAM0sB,oBAGjB,MADAo1B,GAAc9hD,EAAOohD,IACd,CAGf,IAAIjmD,EAAMpJ,GAAM,CACZ,GAAIoJ,EAAMgF,GAEN,GAAKE,EAAImkD,gBAKL,GAAIrpD,EAAO7L,EAAI4Q,IACX/E,EAAO7L,EAAIA,EAAEkd,WACbrR,EAAO7L,EAAIA,EAAEwqC,YACb,GAAIxqC,IAAM+Q,EAAIy5B,UASV,MAPuB,mBAAZ/a,UACN0lC,IACDA,GAAkB,EAClB1lC,QAAQ0W,KAAK,WAAYp1B,GACzB0e,QAAQ0W,KAAK,qBAAsBnmC,GACnCyvB,QAAQ0W,KAAK,qBAAsBp1B,EAAIy5B,aAEpC,MAGV,CAID,IAAK,GAFD4qB,IAAgB,EAChB53B,EAAYzsB,EAAI45B,WACX0qB,EAAM,EAAGA,EAAMxkD,EAASpW,OAAQ46D,IAAO,CAC5C,IAAK73B,IACAo3B,EAAQp3B,EAAW3sB,EAASwkD,GAAMvD,EAAoBrZ,GAAS,CAChE2c,GAAgB,CAChB,OAEJ53B,EAAYA,EAAU6B,YAI1B,IAAK+1B,GAAiB53B,EAQlB,MANuB,mBAAZ/N,UACN0lC,IACDA,GAAkB,EAClB1lC,QAAQ0W,KAAK,WAAYp1B,GACzB0e,QAAQ0W,KAAK,sCAAuCp1B,EAAIq5B,WAAYv5B,KAEjE,MAzCfwhD,GAAe3hD,EAAOG,EAAUihD,EA8CxC,IAAIjmD,EAAM+E,GAAO,CACb,GAAI0kD,IAAa,CACjB,KAAK,GAAIxgE,KAAO8b,GACZ,IAAK2kD,EAAiBzgE,GAAM,CACxBwgE,GAAa,EACbhD,EAAkB5hD,EAAOohD,EACzB,QAGHwD,GAAc1kD,EAAY,OAE3BsK,GAAStK,EAAY,YAIxBG,GAAIH,OAASF,EAAMI,OACxBC,EAAIH,KAAOF,EAAMI,KAErB,QAAO,EAEX,QAASmkD,GAAgB17C,EAAM7I,EAAO+nC,GAClC,MAAI5sC,GAAM6E,EAAMjO,KACmC,IAAvCiO,EAAMjO,IAAI6B,QAAQ,mBACpB45B,EAAiBxtB,EAAO+nC,IACtB/nC,EAAMjO,IAAI2K,iBACLmM,EAAKmlB,SAAWnlB,EAAKmlB,QAAQtxB,eAGnCmM,EAAK6W,YAAc1f,EAAMU,UAAY,EAAI,GA1kBxD,GAAIpR,GAAGkK,EACH8jD,KACA9oB,EAAUqsB,EAAQrsB,QAAS6qB,EAAUwB,EAAQxB,OACjD,KAAK/vD,EAAI,EAAGA,EAAIivB,GAAMx0B,SAAUuF,EAE5B,IADAguD,EAAI/+B,GAAMjvB,OACLkK,EAAI,EAAGA,EAAIg7B,EAAQzqC,SAAUyP,EAC1B2B,EAAMq5B,EAAQh7B,GAAG+kB,GAAMjvB,MACvBguD,EAAI/+B,GAAMjvB,IAAIQ,KAAK0kC,EAAQh7B,GAAG+kB,GAAMjvB,IAkChD,IAAImyD,GAAoB,EAobpBgD,GAAkB,EAKlBI,EAAmBtoD,EAAQ,0CA2G/B,OAAO,UAAe2zB,EAAUlwB,EAAOuX,EAAWyrC,GAC9C,GAAI/nD,EAAQ+E,GAGR,YAFI7E,EAAM+0B,IACNsyB,EAAkBtyB,GAG1B,IAAI40B,IAAiB,EACjB1D,IACJ,IAAInmD,EAAQi1B,GAER40B,GAAiB,EACjB3D,EAAUnhD,EAAOohD,OAEhB,CACD,GAAI2D,GAAgB5pD,EAAM+0B,EAASxQ,SACnC,KAAKqlC,GAAiBt1B,GAAUS,EAAUlwB,GAEtC6jD,EAAW3zB,EAAUlwB,EAAOohD,EAAoB,KAAM,KAAM4B,OAE3D,CACD,GAAI+B,EAAe,CAQf,GAJ0B,IAAtB70B,EAASxQ,UAAkBwQ,EAAS80B,aAAapO,MACjD1mB,EAASiC,gBAAgBykB,IACzBr/B,GAAY,GAEZnc,EAAOmc,GAAY,CACnB,GAAI2sC,EAAQh0B,EAAUlwB,EAAOohD,GAEzB,MADAgD,GAAiBpkD,EAAOohD,GAAoB,GACrClxB,CAGPntB,IAAO,yQASfmtB,EAAW4wB,EAAY5wB,GAG3B,GAAI+0B,GAAS/0B,EAAS7vB,IAClBghD,EAAYhC,EAAQxyB,WAAWo4B,EAQnC,IANA9D,EAAUnhD,EAAOohD,EAIjB6D,EAAOhnB,SAAW,KAAOojB,EAAWhC,EAAQ1wB,YAAYs2B,IAEpD9pD,EAAM6E,EAAMpY,QAGZ,IAFA,GAAIy6D,GAAWriD,EAAMpY,OACjBs9D,EAAYjD,EAAYjiD,GACrBqiD,GAAU,CACb,IAAK,GAAI8C,GAAM,EAAGA,EAAM7H,EAAIjB,QAAQtyD,SAAUo7D,EAC1C7H,EAAIjB,QAAQ8I,GAAK9C,EAGrB,IADAA,EAAShiD,IAAML,EAAMK,IACjB6kD,EAAW,CACX,IAAK,GAAIE,GAAM,EAAGA,EAAM9H,EAAIlvD,OAAOrE,SAAUq7D,EACzC9H,EAAIlvD,OAAOg3D,GAAK90B,GAAW+xB,EAK/B,IAAIgD,GAAWhD,EAASniD,KAAK1Y,KAAK40D,MAClC,IAAIiJ,EAASz9C,OAET,IAAK,GAAI09C,GAAO,EAAGA,EAAOD,EAAS3+C,IAAI3c,OAAQu7D,IAC3CD,EAAS3+C,IAAI4+C,SAKrBv2B,IAAYszB,EAEhBA,GAAWA,EAASz6D,OAIxBuT,EAAMkmD,GACNoB,GAAcvyB,GAAW,EAAG,GAEvB/0B,EAAM+0B,EAASn+B,MACpBywD,EAAkBtyB,IAK9B,MADAk0B,GAAiBpkD,EAAOohD,EAAoB0D,GACrC9kD,EAAMK,OAykDag/C,QAASA,GAAS7qB,QAASmsB,IAOzDjuB,KAEA5kC,SAASilC,iBAAiB,kBAAmB,WACzC,GAAIt/B,GAAK3F,SAASysC,aAEd9mC,IAAMA,EAAG8xD,QACT1jB,GAAQpuC,EAAI,UAIxB,IAAI+xD,KACAx0B,SAAU,SAAUv9B,EAAI+kC,EAASx4B,EAAOkwB,GAClB,WAAdlwB,EAAMjO,KAEFm+B,EAAS7vB,MAAQ6vB,EAAS7vB,IAAIolD,UAC9Bj+C,GAAexH,EAAO,YAAa,WAC/BwlD,GAAUz0B,iBAAiBt9B,EAAI+kC,EAASx4B,KAI5CmhC,GAAY1tC,EAAI+kC,EAASx4B,EAAMvY,SAEnCgM,EAAGgyD,aAAet0D,IAAIhO,KAAKsQ,EAAGxP,QAASs9C,MAEpB,aAAdvhC,EAAMjO,KAAsB89B,GAAgBp8B,EAAGxM,SACpDwM,EAAG+mC,YAAchC,EAAQtH,UACpBsH,EAAQtH,UAAU/qB,OACnB1S,EAAGs/B,iBAAiB,mBAAoB4O,IACxCluC,EAAGs/B,iBAAiB,iBAAkB6O,IAKtCnuC,EAAGs/B,iBAAiB,SAAU6O,IAE1BlP,KACAj/B,EAAG8xD,QAAS,MAK5Bx0B,iBAAkB,SAAUt9B,EAAI+kC,EAASx4B,GACrC,GAAkB,WAAdA,EAAMjO,IAAkB,CACxBovC,GAAY1tC,EAAI+kC,EAASx4B,EAAMvY,QAK/B,IAAIi+D,GAAgBjyD,EAAGgyD,UACnBE,EAAgBlyD,EAAGgyD,aAAet0D,IAAIhO,KAAKsQ,EAAGxP,QAASs9C,GAC3D,IAAIokB,EAAat0D,KAAK,SAAUqwC,EAAGpyC,GAAK,OAAQyO,EAAW2jC,EAAGgkB,EAAcp2D,MAAS,EAGjEmE,EAAGw6B,SACbuK,EAAQ3zC,MAAMwM,KAAK,SAAU6J,GAAK,MAAOumC,IAAoBvmC,EAAGyqD,KAChEntB,EAAQ3zC,QAAU2zC,EAAQ11B,UACxB2+B,GAAoBjJ,EAAQ3zC,MAAO8gE,KAEvC9jB,GAAQpuC,EAAI,cA4E5BysC,IACA78C,KAAM,SAAUoQ,EAAIuR,EAAIhF,GACpB,GAAInb,GAAQmgB,EAAGngB,KACfmb,GAAQiiC,GAAWjiC,EACnB,IAAIm+B,GAAan+B,EAAME,MAAQF,EAAME,KAAKi+B,WACtCynB,EAAmBnyD,EAAGoyD,mBACD,SAArBpyD,EAAGhG,MAAMC,QAAqB,GAAK+F,EAAGhG,MAAMC,OAC5C7I,IAASs5C,GACTn+B,EAAME,KAAKggC,MAAO,EAClBnC,GAAM/9B,EAAO,WACTvM,EAAGhG,MAAMC,QAAUk4D,KAIvBnyD,EAAGhG,MAAMC,QAAU7I,EAAQ+gE,EAAkB,QAGrD5oC,OAAQ,SAAUvpB,EAAIuR,EAAIhF,GACtB,GAAInb,GAAQmgB,EAAGngB,OAEVA,IAF4BmgB,EAAGlC,WAIpC9C,EAAQiiC,GAAWjiC,GACFA,EAAME,MAAQF,EAAME,KAAKi+B,YAEtCn+B,EAAME,KAAKggC,MAAO,EACdr7C,EACAk5C,GAAM/9B,EAAO,WACTvM,EAAGhG,MAAMC,QAAU+F,EAAGoyD,qBAI1BvlB,GAAMtgC,EAAO,WACTvM,EAAGhG,MAAMC,QAAU,UAK3B+F,EAAGhG,MAAMC,QAAU7I,EAAQ4O,EAAGoyD,mBAAqB,SAG3DC,OAAQ,SAAUryD,EAAI+kC,EAASx4B,EAAOkwB,EAAUK,GACvCA,IACD98B,EAAGhG,MAAMC,QAAU+F,EAAGoyD,sBAK9BE,IACAhgC,MAAOy/B,GACPtlB,KAAMA,IAIN8lB,IACAz/D,KAAMiC,OACNu2C,OAAQpzC,QACRowC,IAAKpwC,QACL+L,KAAMlP,OACNvB,KAAMuB,OACN61C,WAAY71C,OACZk4C,WAAYl4C,OACZ81C,aAAc91C,OACdo4C,aAAcp4C,OACd+1C,iBAAkB/1C,OAClBm4C,iBAAkBn4C,OAClBg2C,YAAah2C,OACbk2C,kBAAmBl2C,OACnBi2C,cAAej2C,OACf02C,UAAWzU,OAAQjiC,OAAQI,SA8C3Bq9D,GAAgB,SAAUnoD,GAAK,MAAOA,GAAE/L,KAAO2d,GAAmB5R,IAClEooD,GAAmB,SAAU5yC,GAAK,MAAkB,SAAXA,EAAE/sB,MAC3C4/D,IACA5/D,KAAM,aACNwhB,MAAOi+C,GACPrvC,UAAU,EACVxvB,OAAQ,SAAUiB,GACd,GAAI48B,GAAQp/B,KACRua,EAAWva,KAAKulB,OAAOjkB,OAC3B,IAAKiZ,IAILA,EAAWA,EAAS/O,OAAO60D,IAEtB9lD,EAASpW,QAAd,CAIIoW,EAASpW,OAAS,GAClBgZ,GAAO,uFAC8Bnd,KAAKytB,QAE9C,IAAI3b,GAAO9R,KAAK8R,IAEZA,IAAiB,WAATA,GAA8B,WAATA,GAC7BqL,GAAO,8BAAgCrL,EAAM9R,KAAKytB,QAEtD,IAAIivB,GAAWniC,EAAS,EAGxB,IAAIoiC,GAAoB38C,KAAK8B,QACzB,MAAO46C,EAIX,IAAI/3B,GAAQ23B,GAAaI,EAEzB,KAAK/3B,EACD,MAAO+3B,EAEX,IAAI18C,KAAKwgE,SACL,MAAO/jB,IAAYj6C,EAAGk6C,EAK1B,IAAI/2B,GAAK,gBAAgBljB,OAAOzC,KAAKmyB,KAAM,IAC3CxN,GAAMnmB,IACW,MAAbmmB,EAAMnmB,IACAmmB,EAAM7J,UACF6K,EAAK,UACLA,EAAKhB,EAAMxY,IACfuJ,EAAYiP,EAAMnmB,KACoB,IAAlCoE,OAAO+hB,EAAMnmB,KAAKwP,QAAQ2X,GACtBhB,EAAMnmB,IACNmnB,EAAKhB,EAAMnmB,IACfmmB,EAAMnmB,GACpB,IAAI8b,IAASqK,EAAMrK,OAASqK,EAAMrK,UAAYi+B,WAC1CiE,GAAsBx8C,MACtBygE,EAAczgE,KAAKotB,OACnByvB,EAAWP,GAAamkB,EAM5B,IAHI97C,EAAMrK,KAAKgoB,YAAc3d,EAAMrK,KAAKgoB,WAAW72B,KAAK60D,MACpD37C,EAAMrK,KAAKggC,MAAO,GAElBuC,GACAA,EAASviC,OACRsiC,GAAYj4B,EAAOk4B,KACnB/yB,GAAmB+yB,MAElBA,EAAS/V,oBACP+V,EAAS/V,kBAAkB1Z,OAAOtS,WAAY,CAGlD,GAAIuyB,GAAWwP,EAASviC,KAAKi+B,WAAazgC,KAAWwC,EAErD,IAAa,WAATxI,EAOA,MALA9R,MAAKwgE,UAAW,EAChB5+C,GAAeyrB,EAAS,aAAc,WAClCjO,EAAMohC,UAAW,EACjBphC,EAAMhQ,iBAEHqtB,GAAYj6C,EAAGk6C,EAErB,IAAa,WAAT5qC,EAAmB,CACxB,GAAIgY,GAAmBnF,GACnB,MAAO87C,EAEX,IAAIC,GACA9lB,EAAe,WACf8lB,IAEJ9+C,IAAetH,EAAM,aAAcsgC,GACnCh5B,GAAetH,EAAM,iBAAkBsgC,GACvCh5B,GAAeyrB,EAAS,aAAc,SAAUqN,GAC5CgmB,EAAiBhmB,KAI7B,MAAOgC,MAKXv6B,GAAQrK,GACR3L,IAAKvJ,OACL+9D,UAAW/9D,QACZw9D,UACIj+C,IAAMrQ,IACb,IAAI8uD,KACAz+C,MAAOA,GACP0+C,YAAa,WACT,GAAIzhC,GAAQp/B,KACRo3B,EAASp3B,KAAKwyB,OAClBxyB,MAAKwyB,QAAU,SAAUpY,EAAOuX,GAC5B,GAAImmC,GAAwBnnC,GAAkByO,EAE9CA,GAAM24B,UAAU34B,EAAMhS,OAAQgS,EAAM0hC,MAAM,GAC1C,GAEA1hC,EAAMhS,OAASgS,EAAM0hC,KACrBhJ,IACA1gC,EAAO75B,KAAK6hC,EAAOhlB,EAAOuX,KAGlCpwB,OAAQ,SAAUiB,GAOd,IAAK,GAND2J,GAAMnM,KAAKmM,KAAOnM,KAAK8B,OAAOwY,KAAKnO,KAAO,OAC1CZ,EAAMvI,OAAOwF,OAAO,MACpBu4D,EAAgB/gE,KAAK+gE,aAAe/gE,KAAKua,SACzCymD,EAAchhE,KAAKulB,OAAOjkB,YAC1BiZ,EAAYva,KAAKua,YACjB0mD,EAAiBzkB,GAAsBx8C,MAClC0J,EAAI,EAAGA,EAAIs3D,EAAY78D,OAAQuF,IAAK,CACzC,GAAIwO,GAAI8oD,EAAYt3D,EACpB,IAAIwO,EAAE/L,IACF,GAAa,MAAT+L,EAAE1Z,KAAoD,IAArCoE,OAAOsV,EAAE1Z,KAAKwP,QAAQ,WACvCuM,EAASrQ,KAAKgO,GACd3M,EAAI2M,EAAE1Z,KAAO0Z,GACZA,EAAEoC,OAASpC,EAAEoC,UAAYi+B,WAAa0oB,MAEtC,CACD,GAAIhlC,GAAO/jB,EAAEwC,iBACTiP,EAASsS,EACP8D,GAAiB9D,EAAKziB,KAAKnb,UAAY49B,EAAK9vB,KAAO,GACnD+L,EAAE/L,GACRgR,IAAO,+CAA+C1a,OAAOknB,EAAQ,OAIjF,GAAIo3C,EAAc,CAGd,IAAK,GAFDD,MACAI,KACKx3D,EAAI,EAAGA,EAAIq3D,EAAa58D,OAAQuF,IAAK,CAC1C,GAAIwO,GAAI6oD,EAAar3D,EACrBwO,GAAEoC,KAAKi+B,WAAa0oB,EAEpB/oD,EAAEoC,KAAK+iC,IAAMnlC,EAAEuC,IAAIyiC,wBACf3xC,EAAI2M,EAAE1Z,KACNsiE,EAAK52D,KAAKgO,GAGVgpD,EAAQh3D,KAAKgO,GAGrBlY,KAAK8gE,KAAOt+D,EAAE2J,EAAK,KAAM20D,GACzB9gE,KAAKkhE,QAAUA,EAEnB,MAAO1+D,GAAE2J,EAAK,KAAMoO,IAExBu+C,QAAS,WACL,GAAIv+C,GAAWva,KAAK+gE,aAChBJ,EAAY3gE,KAAK2gE,YAAc3gE,KAAKW,MAAQ,KAAO,OAClD4Z,GAASpW,QAAWnE,KAAKmhE,QAAQ5mD,EAAS,GAAGE,IAAKkmD,KAKvDpmD,EAASjP,QAAQwxC,IACjBviC,EAASjP,QAAQ0xC,IACjBziC,EAASjP,QAAQ6xC,IAIjBn9C,KAAKohE,QAAUl5D,SAASm5D,KAAKC,aAC7B/mD,EAASjP,QAAQ,SAAU4M,GACvB,GAAIA,EAAEoC,KAAKojC,MAAO,CACd,GAAImQ,GAAO31C,EAAEuC,IACT8b,EAAIs3B,EAAKhmD,KACb0uC,IAAmBsX,EAAM8S,GACzBpqC,EAAEonB,UAAYpnB,EAAEqnB,gBAAkBrnB,EAAEsnB,mBAAqB,GACzDgQ,EAAK1gB,iBAAiB2J,GAAqB+W,EAAK9Q,QAAU,QAAS5mB,GAAG5wB,GAC9DA,GAAKA,EAAEhH,SAAWsvD,GAGjBtoD,IAAK,aAAa0H,KAAK1H,EAAEg8D,gBAC1B1T,EAAK3gB,oBAAoB4J,GAAoB3gB,GAC7C03B,EAAK9Q,QAAU,KACftG,GAAsBoX,EAAM8S,WAMhDxkC,SACIglC,QAAS,SAAUtzD,EAAI8yD,GAEnB,IAAKpG,GACD,OAAO,CAGX,IAAIv6D,KAAKwhE,SACL,MAAOxhE,MAAKwhE,QAOhB,IAAI3hC,GAAQhyB,EAAG8iD,WACX9iD,GAAG2/B,oBACH3/B,EAAG2/B,mBAAmBliC,QAAQ,SAAUgiC,GACpC0I,GAAYnW,EAAOyN,KAG3BsI,GAAS/V,EAAO8gC,GAChB9gC,EAAMh4B,MAAMC,QAAU,OACtB9H,KAAK4xB,IAAI7pB,YAAY83B,EACrB,IAAI5L,GAAO0iB,GAAkB9W,EAE7B,OADA7/B,MAAK4xB,IAAIkX,YAAYjJ,GACb7/B,KAAKwhE,SAAWvtC,EAAK6jB,gBA8BrC2pB,IACAlB,WAAYA,GACZK,gBAAiBA,GAIrB57B,IAAIjhB,OAAO4C,YAAcA,GACzBqe,GAAIjhB,OAAOE,cAAgBA,GAC3B+gB,GAAIjhB,OAAO6Y,eAAiBA,GAC5BoI,GAAIjhB,OAAOC,gBAAkBA,GAC7BghB,GAAIjhB,OAAO6jB,iBAAmBA,GAE9B9vB,EAAOktB,GAAI3mC,QAAQikC,WAAY69B,IAC/BroD,EAAOktB,GAAI3mC,QAAQwgC,WAAY4iC,IAE/Bz8B,GAAI1nC,UAAUy6D,UAAY7+B,GAAY8hC,GAAQ9rD,EAE9C81B,GAAI1nC,UAAUi5D,OAAS,SAAU1oD,EAAI8jB,GAEjC,MADA9jB,GAAKA,GAAMqrB,GAAY+O,GAAMp6B,OAAM1O,GAC5BuyB,GAAe1xB,KAAM6N,EAAI8jB,IAIhCuH,IACAtJ,WAAW,WACH7L,GAAOuR,WACHA,GACAA,GAASzJ,KAAK,OAAQmZ,IAItB7L,QAAQA,QAAQlF,KAAO,OAAS,OAAO,qHAIlB,IAAzBlQ,GAAOqtC,eACY,mBAAZj4B,UAEPA,QAAQA,QAAQlF,KAAO,OAAS,OAAO,4KAI5C,EAGP,IAiHIytC,IAmUA7xB,GACAkO,GACA2F,GACAC,GACAP,GACAF,GACAK,GACAC,GACAC,GAu3BA6E,GACAG,GAumCA8H,GA35EArS,GAAe,2BACfyjB,GAAgB,yBAChB1jB,GAAa/mC,EAAO,SAAU6mC,GAC9B,GAAI51C,GAAO41C,EAAW,GAAG5tC,QAAQwxD,GAAe,QAC5Cp6D,EAAQw2C,EAAW,GAAG5tC,QAAQwxD,GAAe,OACjD,OAAO,IAAItxD,QAAOlI,EAAO,gBAAkBZ,EAAO,OAiElDq6D,IACApZ,YAAa,eACb/J,cAAeH,GACfkN,QAAShN,IAkCT32C,IACA2gD,YAAa,eACb/J,cAAeA,GACf+M,QAAS7M,IAITkjB,IACAC,OAAQ,SAAUj7D,GAGd,MAFA66D,IAAUA,IAAWx5D,SAAS4/B,cAAc,OAC5C45B,GAAQxtB,UAAYrtC,EACb66D,GAAQz4B,cAInBgX,GAAatpC,EAAQ,6FAIrBopC,GAAmBppC,EAAQ,2DAG3BkpC,GAAmBlpC,EAAQ,mSAU3B6oC,GAAY,4EACZD,GAAsB,yGACtBwiB,GAAS,6BAA6Bt/D,OAAOu/B,GAAc1jC,OAAQ,MACnE0jE,GAAe,OAAOv/D,OAAOs/D,GAAQ,SAASt/D,OAAOs/D,GAAQ,KAC7D1iB,GAAe,GAAIhvC,QAAO,KAAK5N,OAAOu/D,KACtC1iB,GAAgB,aAChBjtB,GAAS,GAAIhiB,QAAO,QAAQ5N,OAAOu/D,GAAc,WACjDzgB,GAAU,qBAEVN,GAAU,SACVG,GAAqB,QAErBZ,GAAqB7pC,EAAQ,yBAAyB,GACtDiqC,MACA5B,IACA,OAAQ,IACR,OAAQ,IACR,SAAU,IACV,QAAS,IACT,QAAS,KACT,OAAQ,KACR,QAAS,KAETD,GAAc,4BACdD,GAA0B,mCAE1BmjB,GAAqBtrD,EAAQ,gBAAgB,GAC7CmqC,GAA2B,SAAU30C,EAAKtF,GAC1C,MAAOsF,IAAO81D,GAAmB91D,IAAoB,OAAZtF,EAAK,IA6P9CugD,GAAO,YACPP,GAAQ,eACRnB,GAAa,qCACbI,GAAgB,iCAChBF,GAAgB,WAChBa,GAAe,WACfa,GAAQ,SACRL,GAAS,kBACTD,GAAa,wBACbZ,GAAS,kBACTzB,GAAc,SACdC,GAAe,gBACfV,GAAqB,cACrBQ,GAAmBxtC,EAAO2qD,GAAGC,QAC7Bxb,GAAsB,UA0vBtBmB,GAAU,eACVC,GAAa,UAiGbvnB,IACAynB,iBAAkBA,IAGlBhZ,IAAWgzB,GAAO/5D,GAAOs4B,IAczBmC,IACAnC,MAAO4R,GACPv3B,KAAMA,GACN3T,KAAMA,IAGNq7D,IACAviB,YAAY,EACZ/Q,QAASA,GACTtM,WAAYA,GACZghB,SAAUA,GACVrD,WAAYA,GACZt5B,YAAaA,GACbo5B,iBAAkBA,GAClB97B,cAAeA,GACfD,gBAAiBA,GACjBwkC,WAlrUJ,SAAyB5Z,GACrB,MAAOA,GACF5hB,OAAO,SAAUpb,EAAMi9B,GACxB,MAAOj9B,GAAKnP,OAAOosC,EAAE2Z,qBAEpBhkB,KAAK,MA6qUkBoK,KAK5B2Z,GAAsBrxC,EAAO0xC,IAmH7Bc,GAAU,0DACVE,GAAa,gBACbJ,GAAe,+FAEfljC,IACA67C,IAAK,GACLC,IAAK,EACLjqB,MAAO,GACPkqB,MAAO,GACPC,GAAI,GACJ/kB,KAAM,GACNxN,MAAO,GACPwyB,KAAM,GACNrJ,QAAS,EAAG,KAGZ3O,IAEA4X,KAAM,MAAO,UACbC,IAAK,MACLjqB,MAAO,QAEPkqB,OAAQ,IAAK,YAEbC,IAAK,KAAM,WACX/kB,MAAO,OAAQ,aACfxN,OAAQ,QAAS,cACjBwyB,MAAO,OAAQ,aAEfrJ,QAAS,YAAa,SAAU,QAKhClP,GAAW,SAAUhE,GAAa,MAAO,MAAMvjD,OAAOujD,EAAW,kBACjE8D,IACAsK,KAAM,4BACNtkB,QAAS,2BACT/vC,KAAMiqD,GAAS,0CACfwY,KAAMxY,GAAS,mBACf5mC,MAAO4mC,GAAS,oBAChByY,IAAKzY,GAAS,kBACd0Y,KAAM1Y,GAAS,mBACfzM,KAAMyM,GAAS,6CACfha,OAAQga,GAAS,6CACjBja,MAAOia,GAAS,8CAuHhB2Y,IACA3oD,GAAIA,GACJvc,KAAMA,GACNmlE,MAAO1zD,GAGP07C,GAA8B,WAC9B,QAASA,GAAavsD,GAClB2B,KAAK3B,QAAUA,EACf2B,KAAK6vC,KAAOxxC,EAAQwxC,MAAQrB,GAC5BxuC,KAAK0jD,WAAa/U,GAAoBtwC,EAAQuwC,QAAS,iBACvD5uC,KAAK2sD,WAAahe,GAAoBtwC,EAAQuwC,QAAS,WACvD5uC,KAAKsiC,WAAaxqB,EAAOA,KAAW6qD,IAAiBtkE,EAAQikC,WAC7D,IAAIre,GAAgB5lB,EAAQ4lB,eAAiBs8B,EAC7CvgD,MAAKyjD,eAAiB,SAAU51C,GAC5B,QAASA,EAAG6hB,YAAczL,EAAcpW,EAAG1B,MAE/CnM,KAAKmsD,OAAS,EACdnsD,KAAKwB,mBACLxB,KAAKokB,KAAM,EAEf,MAAOwmC,MAufPyE,GAAsB,GAAIh/C,QAAO,MACjC,iMAGKrD,MAAM,KACNw3B,KAAK,WACV,OAEA0qB,GAAmB,GAAI7+C,QAAO,MAC9B,qBAAqBrD,MAAM,KAAKw3B,KAAK,yBACrC,qBAEAwqB,GAAgB,iGA8FhBtgB,GAAQ,EAyMRm0B,GA5DJ,SAA+BC,GAC3B,MAAO,UAAwBZ,GAC3B,QAASjS,GAAQp+B,EAAUxzB,GACvB,GAAI0kE,GAAe//D,OAAOwF,OAAO05D,GAC7BnS,KACAI,KACAtgB,EAAO,SAAUpB,EAAKC,EAAOlsB,IAC5BA,EAAM2tC,EAAOJ,GAAQ7lD,KAAKukC,GAE/B,IAAIpwC,EAAS,CACT,GAAIA,EAAQ8hD,kBAAmB,CAE3B,GAAI6iB,GAAuBnxC,EAASplB,MAAM,QAAQ,GAAGtI,MACrD0rC,GAAO,SAAUpB,EAAKC,EAAOlsB,GACzB,GAAIlI,GAAsB,gBAARm0B,IAAqBA,IAAKA,GAAQA,CAChDC,KACmB,MAAfA,EAAM92B,QACN0C,EAAK1C,MAAQ82B,EAAM92B,MAAQorD,GAEd,MAAbt0B,EAAMqC,MACNz2B,EAAKy2B,IAAMrC,EAAMqC,IAAMiyB,KAG9BxgD,EAAM2tC,EAAOJ,GAAQ7lD,KAAKoQ,IAI/Bjc,EAAQuwC,UACRm0B,EAAan0B,SAAWszB,EAAYtzB,aAAensC,OAAOpE,EAAQuwC,UAGlEvwC,EAAQikC,aACRygC,EAAazgC,WAAaxqB,EAAO9U,OAAOwF,OAAO05D,EAAY5/B,YAAc,MAAOjkC,EAAQikC,YAG5F,KAAK,GAAI9jC,KAAOH,GACA,YAARG,GAA6B,eAARA,IACrBukE,EAAavkE,GAAOH,EAAQG,IAIxCukE,EAAalzB,KAAOA,CACpB,IAAIqgB,GAAW4S,EAAYjxC,EAASnf,OAAQqwD,EAM5C,OAJItU,IAAayB,EAASvF,IAAK9a,GAE/BqgB,EAASH,OAASA,EAClBG,EAASC,KAAOA,EACTD,EAEX,OACID,QAASA,EACTgT,mBAAoBjT,GAA0BC,MAQf,SAAqBp+B,EAAUxzB,GACtE,GAAIssD,GAAM9I,GAAMhwB,EAASnf,OAAQrU,IACR,IAArBA,EAAQgqD,UACRA,GAASsC,EAAKtsD,EAElB,IAAIkV,GAAOm3C,GAASC,EAAKtsD,EACzB,QACIssD,IAAKA,EACLppD,OAAQgS,EAAKhS,OACbC,gBAAiB+R,EAAK/R,mBAI1B4d,GAAKyjD,GAAeX,IAAce,GAAqB7jD,GAAG6jD,mBAU1DpkB,KAAuB3lB,IAAYm3B,IAAgB,GAEnDnQ,KAA8BhnB,IAC5Bm3B,IAAgB,GAGlB6S,GAAehsD,EAAO,SAAUyO,GAChC,GAAI9X,GAAKo6B,GAAMtiB,EACf,OAAO9X,IAAMA,EAAGqmC,YAEhBivB,GAAQn+B,GAAI1nC,UAAUi5D,MA8F1B,OA7FAvxB,IAAI1nC,UAAUi5D,OAAS,SAAU1oD,EAAI8jB,GAGjC,IAFA9jB,EAAKA,GAAMo6B,GAAMp6B,MAEN3F,SAASm5D,MAAQxzD,IAAO3F,SAASk7D,gBAExC,MADAjmD,IAAO,4EACAnd,IAEX,IAAI3B,GAAU2B,KAAKskB,QAEnB,KAAKjmB,EAAQkD,OAAQ,CACjB,GAAIswB,GAAWxzB,EAAQwzB,QACvB,IAAIA,EACA,GAAwB,gBAAbA,GACoB,MAAvBA,EAASthB,OAAO,MAChBshB,EAAWqxC,GAAarxC,KAGpB1U,GAAO,2CAA2C1a,OAAOpE,EAAQwzB,UAAW7xB,WAInF,KAAI6xB,EAASiI,SAOd,MAFI3c,IAAO,2BAA6B0U,EAAU7xB,MAE3CA,IANP6xB,GAAWA,EAASqiB,cASnBrmC,KAELgkB,EAAW2+B,GAAa3iD,GAE5B,IAAIgkB,EAAU,CAEN9N,GAAOiO,aAAeC,IACtBA,GAAK,UAET,IAAI7S,GAAK6jD,GAAmBpxC,GACxBsuB,mBAAmB,EACnBtB,qBAAsBA,GACtBqB,4BAA6BA,GAC7BnC,WAAY1/C,EAAQ0/C,WACpBgG,SAAU1lD,EAAQ0lD,UACnB/jD,MAAOuB,EAAS6d,EAAG7d,OAAQC,EAAkB4d,EAAG5d,eACnDnD,GAAQkD,OAASA,EACjBlD,EAAQmD,gBAAkBA,EAEtBuiB,GAAOiO,aAAeC,KACtBA,GAAK,eACLM,GAAQ,OAAO9vB,OAAOzC,KAAKkyB,MAAO,YAAa,UAAW,iBAItE,MAAOixC,IAAM5lE,KAAKyC,KAAM6N,EAAI8jB,IAgBhCqT,GAAIirB,QAAUgT,GAkBdnrD,EAAOktB,GAAKywB,IACZzwB,GAAItkB,OAASA,GAENskB,OzE86DoBznC,KAAKR,EAASG,EAAoB,IAAKA,EAAoB,KAAKu3D,eAIvF,SAAU33D,EAAQyQ,EAAqBrQ,GAE7C,Y0Erjbe,SAASmmE,GAAgBn/D,EAAK1F,EAAKS,GAYhD,MAXAT,GAAM,SAAcA,GAChBA,IAAO0F,GACTlB,OAAOC,eAAeiB,EAAK1F,GACzBS,MAAOA,EACP0E,YAAY,EACZE,cAAc,EACdE,UAAU,IAGZG,EAAI1F,GAAOS,EAENiF,EAbT,oB1E0kbQ,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CAEF,SAAUpH,EAAQC,EAASG,G2E1lbjC,GAAIsI,GAAkB,EAAQ,GAC1BgD,EAAS,EAAQ,IACjBvF,EAAiB,EAAQ,IAAuClF,EAEhEulE,EAAc99D,EAAgB,eAC9B+9D,EAAiBh9D,MAAMjJ,cAIQ6B,IAA/BokE,EAAeD,IACjBrgE,EAAesgE,EAAgBD,GAC7Bz/D,cAAc,EACd5E,MAAOuJ,EAAO,QAKlB1L,EAAOC,QAAU,SAAUyB,GACzB+kE,EAAeD,GAAa9kE,IAAO,I3Ekmb/B,SAAU1B,EAAQC,EAASG,G4EpnbjC,GAAIiG,GAAc,EAAQ,EAE1BrG,GAAOC,QAAUoG,KAAegC,Q5E2nb1B,SAAUrI,EAAQC,EAASG,GAEjC,Y6E9nbA,IAAIoN,GAAc,EAAQ,IAEtBzH,EAAaC,SAEjBhG,GAAOC,QAAU,SAAU0G,EAAGkB,GAC5B,UAAYlB,GAAEkB,GAAI,KAAM9B,GAAW,0BAA4ByH,EAAY3F,GAAK,OAAS2F,EAAY7G,M7EsobjG,SAAU3G,EAAQC,G8E5obxB,GAAIuC,GAAiC,gBAAZ4I,WAAwBA,SAAS3I,IAGtDC,MAAmC,KAAfF,OAA8CH,KAAhBG,CAEtDxC,GAAOC,SACLwC,IAAKD,EACLE,WAAYA,I9EopbR,SAAU1C,EAAQC,EAASG,G+E3pbjC,GAAIW,GAAS,EAAQ,GACjB6E,EAAW,EAAQ,IAEnBwF,EAAWrK,EAAOqK,SAElBjC,EAASvD,EAASwF,IAAaxF,EAASwF,EAAS4/B,cAErDhrC,GAAOC,QAAU,SAAU2C,GACzB,MAAOuG,GAASiC,EAAS4/B,cAAcpoC,Q/EmqbnC,SAAU5C,EAAQC,EAASG,GgF3qbjC,GAAI8R,GAAa,EAAQ,GAEzBlS,GAAOC,QAAUiS,EAAW,YAAa,cAAgB,IhFkrbnD,SAAUlS,EAAQC,EAASG,GiFprbjC,GAAIiG,GAAc,EAAQ,IACtB+J,EAAY,EAAQ,IACpB/P,EAAc,EAAQ,IAEtBM,EAAO0F,EAAYA,EAAY1F,KAGnCX,GAAOC,QAAU,SAAUW,EAAIwN,GAE7B,MADAgC,GAAUxP,OACMyB,KAAT+L,EAAqBxN,EAAKP,EAAcM,EAAKC,EAAIwN,GAAQ,WAC9D,MAAOxN,GAAGC,MAAMuN,EAAMtN,cjF6rbpB,SAAUd,EAAQC,EAASG,GkFvsbjC,GAAI8H,GAAU,EAAQ,IAClB+O,EAAY,EAAQ,IACpB3O,EAAoB,EAAQ,IAC5Bo+D,EAAY,EAAQ,IACpBh+D,EAAkB,EAAQ,GAE1Bi+D,EAAWj+D,EAAgB,WAE/B1I,GAAOC,QAAU,SAAU2C,GACzB,IAAK0F,EAAkB1F,GAAK,MAAOqU,GAAUrU,EAAI+jE,IAC5C1vD,EAAUrU,EAAI,eACd8jE,EAAUx+D,EAAQtF,MlF+sbnB,SAAU5C,EAAQC,EAASG,GmF1tbjC,GAAIkH,GAAc,EAAQ,GACtBrB,EAAQ,EAAQ,GAChB+kC,EAAgB,EAAQ,GAG5BhrC,GAAOC,SAAWqH,IAAgBrB,EAAM,WAEtC,MAEQ,IAFDC,OAAOC,eAAe6kC,EAAc,OAAQ,KACjD5kC,IAAK,WAAc,MAAO,MACzBqU,KnFkubC,SAAUza,EAAQC,EAASG,GoF3ubjC,GAAIiG,GAAc,EAAQ,GACtBG,EAAa,EAAQ,GACrBsL,EAAQ,EAAQ,IAEhB80D,EAAmBvgE,EAAY9F,SAAS4H,SAGvC3B,GAAWsL,EAAMK,iBACpBL,EAAMK,cAAgB,SAAUvP,GAC9B,MAAOgkE,GAAiBhkE,KAI5B5C,EAAOC,QAAU6R,EAAMK,epFkvbjB,SAAUnS,EAAQC,EAASG,GqF/vbjC,GAAI6F,GAAQ,EAAQ,GAChBO,EAAa,EAAQ,GAErBqgE,EAAc,kBAEdvlE,EAAW,SAAUwlE,EAASC,GAChC,GAAI5kE,GAAQqb,EAAK6/C,EAAUyJ,GAC3B,OAAO3kE,IAAS6kE,GACZ7kE,GAAS8kE,IACTzgE,EAAWugE,GAAa9gE,EAAM8gE,KAC5BA,IAGJ1J,EAAY/7D,EAAS+7D,UAAY,SAAUppD,GAC7C,MAAOnO,QAAOmO,GAAQZ,QAAQwzD,EAAa,KAAK7sD,eAG9CwD,EAAOlc,EAASkc,QAChBypD,EAAS3lE,EAAS2lE,OAAS,IAC3BD,EAAW1lE,EAAS0lE,SAAW,GAEnChnE,GAAOC,QAAUqB,GrFswbX,SAAUtB,EAAQC,EAASG,GAEjC,YsF5xbA,IAcI8mE,GAAmBC,EAAmCC,EAdtDnhE,EAAQ,EAAQ,GAChBO,EAAa,EAAQ,GACrBZ,EAAW,EAAQ,IACnB8F,EAAS,EAAQ,IACjBsX,EAAiB,EAAQ,KACzB7hB,EAAgB,EAAQ,IACxBuH,EAAkB,EAAQ,GAC1BqM,EAAU,EAAQ,IAElB4xD,EAAWj+D,EAAgB,YAC3B2+D,GAAyB,KAOtBvyD,OACLsyD,KAAmBtyD,OAEb,QAAUsyD,IAEdD,EAAoCnkD,EAAeA,EAAeokD,OACxBlhE,OAAO1F,YAAW0mE,EAAoBC,GAHlDE,GAAyB,IAO7BzhE,EAASshE,IAAsBjhE,EAAM,WACjE,GAAIkK,KAEJ,OAAO+2D,GAAkBP,GAAUlmE,KAAK0P,KAAUA,IAGxB+2D,KACnBnyD,IAASmyD,EAAoBx7D,EAAOw7D,IAIxC1gE,EAAW0gE,EAAkBP,KAChCxlE,EAAc+lE,EAAmBP,EAAU,WACzC,MAAOzjE,QAIXlD,EAAOC,SACLinE,kBAAmBA,EACnBG,uBAAwBA,ItFoybpB,SAAUrnE,EAAQC,EAASG,GuFn1bjC,GAAIknE,GAAqB,EAAQ,KAC7Bz9D,EAAc,EAAQ,IAEtBC,EAAaD,EAAYlE,OAAO,SAAU,YAK9C1F,GAAQgB,EAAIiF,OAAOwP,qBAAuB,SAA6B/O,GACrE,MAAO2gE,GAAmB3gE,EAAGmD,KvF21bzB,SAAU9J,EAAQC,EAASG,GwFp2bjC,GAAIgD,GAAS,EAAQ,IACjBoD,EAAa,EAAQ,GACrBF,EAAW,EAAQ,IACnB2D,EAAY,EAAQ,IACpBs9D,EAA2B,EAAQ,KAEnCr9D,EAAWD,EAAU,YACrBhC,EAAU/B,OACVshE,EAAkBv/D,EAAQzH,SAK9BR,GAAOC,QAAUsnE,EAA2Bt/D,EAAQ+a,eAAiB,SAAUrc,GAC7E,GAAI6I,GAASlJ,EAASK,EACtB,IAAIvD,EAAOoM,EAAQtF,GAAW,MAAOsF,GAAOtF,EAC5C,IAAInB,GAAcyG,EAAOzG,WACzB,OAAIvC,GAAWuC,IAAgByG,YAAkBzG,GACxCA,EAAYvI,UACZgP,YAAkBvH,GAAUu/D,EAAkB,OxF42bnD,SAAUxnE,EAAQC,EAASG,GyF/3bjC,GAAIiG,GAAc,EAAQ,GACtBjD,EAAS,EAAQ,IACjBwN,EAAkB,EAAQ,IAC1BM,EAAU,EAAQ,IAA+BA,QACjDpH,EAAa,EAAQ,IAErBsD,EAAO/G,KAAe+G,KAE1BpN,GAAOC,QAAU,SAAUuP,EAAQi4D,GACjC,GAGI/lE,GAHAiF,EAAIiK,EAAgBpB,GACpB5C,EAAI,EACJhB,IAEJ,KAAKlK,IAAOiF,IAAIvD,EAAO0G,EAAYpI,IAAQ0B,EAAOuD,EAAGjF,IAAQ0L,EAAKxB,EAAQlK,EAE1E,MAAO+lE,EAAMpgE,OAASuF,GAAOxJ,EAAOuD,EAAGjF,EAAM+lE,EAAM76D,SAChDsE,EAAQtF,EAAQlK,IAAQ0L,EAAKxB,EAAQlK,GAExC,OAAOkK,KzFu4bH,SAAU5L,EAAQC,EAASG,G0Fx5bjC,GAAIiG,GAAc,EAAQ,GACtBoB,EAAW,EAAQ,GACnBigE,EAAqB,EAAQ,IAMjC1nE,GAAOC,QAAUiG,OAAOyhE,iBAAmB,gBAAoB,WAC7D,GAEI/nD,GAFAgoD,GAAiB,EACjBz3D,IAEJ,KAEEyP,EAASvZ,EAAYH,OAAOlF,yBAAyBkF,OAAO1F,UAAW,aAAa+Q,KACpFqO,EAAOzP,MACPy3D,EAAiBz3D,YAAgB1G,OACjC,MAAOtJ,IACT,MAAO,UAAwBwG,EAAG8F,GAKhC,MAJAhF,GAASd,GACT+gE,EAAmBj7D,GACfm7D,EAAgBhoD,EAAOjZ,EAAG8F,GACzB9F,EAAEmwD,UAAYrqD,EACZ9F,UAELtE,K1Fg6bA,SAAUrC,EAAQC,EAASG,GAEjC,Y2F37bA,IAAIqH,GAAW,EAAQ,EAIvBzH,GAAOC,QAAU,WACf,GAAImO,GAAO3G,EAASvE,MAChB0I,EAAS,EASb,OARIwC,GAAKy5D,aAAYj8D,GAAU,KAC3BwC,EAAKrN,SAAQ6K,GAAU,KACvBwC,EAAK05D,aAAYl8D,GAAU,KAC3BwC,EAAKwG,YAAWhJ,GAAU,KAC1BwC,EAAK25D,SAAQn8D,GAAU,KACvBwC,EAAK45D,UAASp8D,GAAU,KACxBwC,EAAK65D,cAAar8D,GAAU,KAC5BwC,EAAKoG,SAAQ5I,GAAU,KACpBA,I3Fm8bH,SAAU5L,EAAQC,EAASG,G4Fn9bjC,GAAIW,GAAS,EAAQ,GACjBF,EAAQ,EAAQ,KAChB2F,EAAa,EAAQ,GACrBqJ,EAAY,EAAQ,IACpBkG,EAAa,EAAQ,IACrBmyD,EAA0B,EAAQ,KAElCC,EAAO,WAAWh4D,KAAKN,GACvBtP,EAAWQ,EAAOR,SAElB6nE,EAAO,SAAUtU,GACnB,MAAOqU,GAAO,SAAUnsC,EAASjJ,GAC/B,GAAIs1C,GAAYH,EAAwBpnE,UAAUuG,OAAQ,GAAK,EAC3DzG,EAAK4F,EAAWw1B,GAAWA,EAAUz7B,EAASy7B,GAC9ChF,EAAOqxC,EAAYtyD,EAAWjV,UAAW,OAAKuB,EAClD,OAAOyxD,GAAUuU,EAAY,WAC3BxnE,EAAMD,EAAIsC,KAAM8zB,IACdp2B,EAAImyB,IACN+gC,EAKN9zD,GAAOC,SAGL6yB,WAAYs1C,EAAKrnE,EAAO+xB,YAGxBw1C,YAAaF,EAAKrnE,EAAOunE,e5F29brB,SAAUtoE,EAAQC,EAASG,G6Fx/bjC,GAAI+F,GAAiB,EAAQ,IAAuClF,EAChEmC,EAAS,EAAQ,IACjBsF,EAAkB,EAAQ,GAE1BwG,EAAgBxG,EAAgB,cAEpC1I,GAAOC,QAAU,SAAUwB,EAAQ8mE,EAAKvmE,GAClCP,IAAWO,IAAQP,EAASA,EAAOjB,WACnCiB,IAAW2B,EAAO3B,EAAQyN,IAC5B/I,EAAe1E,EAAQyN,GAAiBnI,cAAc,EAAM5E,MAAOomE,M7FigcjE,SAAUvoE,EAAQC,EAASG,G8F1gcjC,GAAIiG,GAAc,EAAQ,GACtB2B,EAAyB,EAAQ,IACjCG,EAAW,EAAQ,IACnBqgE,EAAc,EAAQ,KAEtBn1D,EAAUhN,EAAY,GAAGgN,SACzB2zC,EAAa,IAAMwhB,EAAc,IACjCC,EAAQl1D,OAAO,IAAMyzC,EAAaA,EAAa,KAC/C0hB,EAAQn1D,OAAOyzC,EAAaA,EAAa,MAGzCv5C,EAAe,SAAUC,GAC3B,MAAO,UAAUQ,GACf,GAAI+F,GAAS9L,EAASH,EAAuBkG,GAG7C,OAFW,GAAPR,IAAUuG,EAASZ,EAAQY,EAAQw0D,EAAO,KACnC,EAAP/6D,IAAUuG,EAASZ,EAAQY,EAAQy0D,EAAO,KACvCz0D,GAIXjU,GAAOC,SAGL6a,MAAOrN,EAAa,GAGpBwmC,IAAKxmC,EAAa,GAGlBmI,KAAMnI,EAAa,K9Fkhcf,SAAUzN,EAAQC,EAASG,G+F9icjC,GAAIuI,GAAa,EAAQ,IACrB1C,EAAQ,EAAQ,EAGpBjG,GAAOC,UAAYiG,OAAO6R,wBAA0B9R,EAAM,WACxD,GAAIulB,GAAS/nB,QAGb,QAAQqC,OAAO0lB,MAAatlB,OAAOslB,YAAmB/nB,WAEnDA,OAAOnB,MAAQqG,GAAcA,EAAa,M/FujczC,SAAU3I,EAAQC,EAASG,GgGlkcjC,GAAIK,GAAO,EAAQ,IACfmF,EAAW,EAAQ,IACnB4P,EAAW,EAAQ,IACnByB,EAAY,EAAQ,IACpB0xD,EAAsB,EAAQ,KAC9BjgE,EAAkB,EAAQ,GAE1B3C,EAAaC,UACb4iE,EAAelgE,EAAgB,cAInC1I,GAAOC,QAAU,SAAU4U,EAAOg0D,GAChC,IAAKjjE,EAASiP,IAAUW,EAASX,GAAQ,MAAOA,EAChD,IACIjJ,GADAk9D,EAAe7xD,EAAUpC,EAAO+zD,EAEpC,IAAIE,EAAc,CAGhB,OAFazmE,KAATwmE,IAAoBA,EAAO,WAC/Bj9D,EAASnL,EAAKqoE,EAAcj0D,EAAOg0D,IAC9BjjE,EAASgG,IAAW4J,EAAS5J,GAAS,MAAOA,EAClD,MAAM7F,GAAW,2CAGnB,WADa1D,KAATwmE,IAAoBA,EAAO,UACxBF,EAAoB9zD,EAAOg0D,KhG0kc9B,SAAU7oE,EAAQC,EAASG,GiGjmcjC,GAAIiG,GAAc,EAAQ,GAEtBwiB,EAAK,EACLkgD,EAAUlmE,KAAKmmE,SACf7gE,EAAW9B,EAAY,GAAI8B,SAE/BnI,GAAOC,QAAU,SAAUyB,GACzB,MAAO,eAAqBW,KAARX,EAAoB,GAAKA,GAAO,KAAOyG,IAAW0gB,EAAKkgD,EAAS,MjGymchF,SAAU/oE,EAAQC,EAASG,GkG/mcjC,GAAIkD,GAAgB,EAAQ,IAE5BtD,GAAOC,QAAUqD,IACXG,OAAOnB,MACkB,gBAAnBmB,QAAOkN,UlGuncb,SAAU3Q,EAAQC,EAASG,GmG5ncjC,GAAIkH,GAAc,EAAQ,GACtBrB,EAAQ,EAAQ,EAIpBjG,GAAOC,QAAUqH,GAAerB,EAAM,WAEpC,MAGgB,KAHTC,OAAOC,eAAe,aAA6B,aACxDhE,MAAO,GACP8E,UAAU,IACTzG,anGoocC,SAAUR,EAAQC,GoG7ocxBD,EAAOC,QAAU,iDpGspcX,SAAUD,EAAQC,EAASG,GAEjC,YqGxpcA,IAAI0L,GAAI,EAAQ,GACZm9D,EAAU,EAAQ,IAAgCv6D,MAQtD5C,IAAIrK,OAAQ,QAASgL,OAAO,EAAMrK,QAPC,EAAQ,IAEY,YAMrDsM,OAAQ,SAAgBP,GACtB,MAAO86D,GAAQ/lE,KAAMiL,EAAYrN,UAAUuG,OAAS,EAAIvG,UAAU,OAAKuB,QrGiqcrE,SAAUrC,EAAQC,EAASG,GAEjC,YsG9qcA,IAAI0L,GAAI,EAAQ,GACZo9D,EAAQ,EAAQ,IAAgCr6D,KAChDs6D,EAAmB,EAAQ,IAG3BC,GAAc,CADP,aAIK3/D,MAAM,GAAO,KAAE,WAAc2/D,GAAc,IAI3Dt9D,GAAIrK,OAAQ,QAASgL,OAAO,EAAMrK,OAAQgnE,IACxCv6D,KAAM,SAAcV,GAClB,MAAO+6D,GAAMhmE,KAAMiL,EAAYrN,UAAUuG,OAAS,EAAIvG,UAAU,OAAKuB,OAKzE8mE,EAfW,StGoscL,SAAUnpE,EAAQC,EAASG,GAEjC,YuGzscA,IAAI0L,GAAI,EAAQ,GACZzF,EAAc,EAAQ,IACtBgjE,EAAW,EAAQ,IAA+Bn4D,QAClDo4D,EAAsB,EAAQ,IAE9BC,EAAgBljE,KAAe6K,SAE/Bs4D,IAAkBD,GAAiB,EAAIA,GAAe,GAAI,GAAI,GAAK,EACnEE,EAAgBH,EAAoB,UAIxCx9D,IAAIrK,OAAQ,QAASgL,OAAO,EAAMrK,OAAQonE,IAAkBC,IAC1Dv4D,QAAS,SAAiBw4D,GACxB,GAAI14D,GAAYlQ,UAAUuG,OAAS,EAAIvG,UAAU,OAAKuB,EACtD,OAAOmnE,GAEHD,EAAcrmE,KAAMwmE,EAAe14D,IAAc,EACjDq4D,EAASnmE,KAAMwmE,EAAe14D,OvGmtchC,SAAUhR,EAAQC,EAASG,GAEjC,YwGxucA,IAAI0L,GAAI,EAAQ,GACZpC,EAAU,EAAQ,IAClBigE,EAAgB,EAAQ,IACxB/jE,EAAW,EAAQ,IACnBiL,EAAkB,EAAQ,IAC1B9E,EAAoB,EAAQ,IAC5B6E,EAAkB,EAAQ,IAC1B3E,EAAiB,EAAQ,IACzBvD,EAAkB,EAAQ,GAC1ByD,EAA+B,EAAQ,IACvCy9D,EAAc,EAAQ,IAEtBC,EAAsB19D,EAA6B,SAEnDvD,EAAUF,EAAgB,WAC1BohE,EAASrgE,MACT2L,EAAMvS,KAAKuS,GAKftJ,IAAIrK,OAAQ,QAASgL,OAAO,EAAMrK,QAASynE,IACzCxhE,MAAO,SAAeyS,EAAOm5B,GAC3B,GAKI81B,GAAan+D,EAAQqB,EALrBtG,EAAIiK,EAAgB1N,MACpBmE,EAAS0E,EAAkBpF,GAC3BkG,EAAIgE,EAAgBiK,EAAOzT,GAC3B2iE,EAAMn5D,MAAwBxO,KAAR4xC,EAAoB5sC,EAAS4sC,EAAK5sC,EAG5D,IAAIqC,EAAQ/C,KACVojE,EAAcpjE,EAAEoC,YAEZ4gE,EAAcI,KAAiBA,IAAgBD,GAAUpgE,EAAQqgE,EAAYvpE,YAC/EupE,MAAc1nE,GACLuD,EAASmkE,IAEE,QADpBA,EAAcA,EAAYnhE,MACAmhE,MAAc1nE,IAEtC0nE,IAAgBD,OAA0BznE,KAAhB0nE,GAC5B,MAAOH,GAAYjjE,EAAGkG,EAAGm9D,EAI7B,KADAp+D,EAAS,QAAqBvJ,KAAhB0nE,EAA4BD,EAASC,GAAa30D,EAAI40D,EAAMn9D,EAAG,IACxEI,EAAI,EAAGJ,EAAIm9D,EAAKn9D,IAAKI,IAASJ,IAAKlG,IAAGsF,EAAeL,EAAQqB,EAAGtG,EAAEkG,GAEvE,OADAjB,GAAOvE,OAAS4F,EACTrB,MxGivcL,SAAU5L,EAAQC,EAASG,GyG9xcjC,GAAIiG,GAAc,EAAQ,GACtBlF,EAAgB,EAAQ,IAExB8oE,EAAgBvuD,KAAKlb,UAGrB0pE,EAAqB7jE,EAAY4jE,EAAuB,UACxDE,EAAgB9jE,EAAY4jE,EAActuD,QAH3B,iBAOf7V,OAAO,GAAI4V,MAAKhF,OAClBvV,EAAc8oE,EAPA,WAO0B,WACtC,GAAI9nE,GAAQgoE,EAAcjnE,KAE1B,OAAOf,KAAUA,EAAQ+nE,EAAmBhnE,MAX7B,kBzGmzcb,SAAUlD,EAAQC,EAASG,G0GxzcjC,GAAIe,GAAgB,EAAQ,IACxBipE,EAAgB,EAAQ,KAExBC,EAAiBvsC,MAAMt9B,SAIvB6pE,GAAeliE,WAAaiiE,GAC9BjpE,EAAckpE,EAAgB,WAAYD,I1Gg0ctC,SAAUpqE,EAAQC,EAASG,G2Gx0cjC,GAAIkH,GAAc,EAAQ,GACtBgjE,EAAuB,EAAQ,IAA8BnhE,OAC7D9C,EAAc,EAAQ,GACtBF,EAAiB,EAAQ,IAAuClF,EAEhEX,EAAoBC,SAASC,UAC7BomE,EAAmBvgE,EAAY/F,EAAkB6H,UACjDoiE,EAAS,mEACTrzD,EAAa7Q,EAAYkkE,EAAOrqE,KAKhCoH,KAAgBgjE,GAClBnkE,EAAe7F,EALN,QAMPyG,cAAc,EACdX,IAAK,WACH,IACE,MAAO8Q,GAAWqzD,EAAQ3D,EAAiB1jE,OAAO,GAClD,MAAO/C,GACP,MAAO,Q3Gm1cT,SAAUH,EAAQC,EAASG,GAEjC,Y4Gx2cA,IAAIoqE,GAAuB,EAAQ,IAA8BphE,OAC7DjI,EAAgB,EAAQ,IACxBsG,EAAW,EAAQ,GACnBgjE,EAAY,EAAQ,IACpBxkE,EAAQ,EAAQ,GAChBykE,EAAiB,EAAQ,KAGzBC,EAAkBp3D,OAAO/S,UACzBoqE,EAAiBD,EAAyB,SAE1CE,EAAc5kE,EAAM,WAAc,MAA2D,QAApD2kE,EAAenqE,MAAOe,OAAQ,IAAKiT,MAAO,QAEnFq2D,EAAiBN,GANL,YAM6BI,EAAe/mE,MAIxDgnE,GAAeC,IACjB3pE,EAAcoS,OAAO/S,UAXP,WAW6B,WACzC,GAAIuqE,GAAItjE,EAASvE,KAGjB,OAAO,IAFOunE,EAAUM,EAAEvpE,QAEH,IADXipE,EAAUC,EAAeK,MAElCjkE,QAAQ,K5Gg3cT,SAAU9G,EAAQC,G6G73cxB,QAAS+qE,KACL,KAAM,IAAIltC,OAAM,mCAEpB,QAASmtC,KACL,KAAM,IAAIntC,OAAM,qCAsBpB,QAASotC,GAAWC,GAChB,GAAIC,IAAqBt4C,WAErB,MAAOA,YAAWq4C,EAAK,EAG3B,KAAKC,IAAqBJ,IAAqBI,IAAqBt4C,WAEhE,MADAs4C,GAAmBt4C,WACZA,WAAWq4C,EAAK,EAE3B,KAEI,MAAOC,GAAiBD,EAAK,GAC/B,MAAM1iE,GACJ,IAEI,MAAO2iE,GAAiB3qE,KAAK,KAAM0qE,EAAK,GAC1C,MAAM1iE,GAEJ,MAAO2iE,GAAiB3qE,KAAKyC,KAAMioE,EAAK,KAMpD,QAASE,GAAgBC,GACrB,GAAIC,IAAuBh5C,aAEvB,MAAOA,cAAa+4C,EAGxB,KAAKC,IAAuBN,IAAwBM,IAAuBh5C,aAEvE,MADAg5C,GAAqBh5C,aACdA,aAAa+4C,EAExB,KAEI,MAAOC,GAAmBD,GAC5B,MAAO7iE,GACL,IAEI,MAAO8iE,GAAmB9qE,KAAK,KAAM6qE,GACvC,MAAO7iE,GAGL,MAAO8iE,GAAmB9qE,KAAKyC,KAAMooE,KAYjD,QAASE,KACAC,GAAaC,IAGlBD,GAAW,EACPC,EAAarkE,OACbiwB,EAAQo0C,EAAa/lE,OAAO2xB,GAE5Bq0C,GAAc,EAEdr0C,EAAMjwB,QACNukE,KAIR,QAASA,KACL,IAAIH,EAAJ,CAGA,GAAI14C,GAAUm4C,EAAWM,EACzBC,IAAW,CAGX,KADA,GAAI3+D,GAAMwqB,EAAMjwB,OACVyF,GAAK,CAGP,IAFA4+D,EAAep0C,EACfA,OACSq0C,EAAa7+D,GACd4+D,GACAA,EAAaC,GAAY51C,KAGjC41C,IAAc,EACd7+D,EAAMwqB,EAAMjwB,OAEhBqkE,EAAe,KACfD,GAAW,EACXJ,EAAgBt4C,IAiBpB,QAAS84C,GAAKV,EAAKriE,GACf5F,KAAKioE,IAAMA,EACXjoE,KAAK4F,MAAQA,EAYjB,QAASsJ,MAhKT,GAOIg5D,GACAG,EARAz7D,EAAU9P,EAAOC,YAgBpB,WACG,IAEQmrE,EADsB,kBAAft4C,YACYA,WAEAk4C,EAEzB,MAAOviE,GACL2iE,EAAmBJ,EAEvB,IAEQO,EADwB,kBAAjBh5C,cACcA,aAEA04C,EAE3B,MAAOxiE,GACL8iE,EAAqBN,KAuD7B,IAEIS,GAFAp0C,KACAm0C,GAAW,EAEXE,GAAc,CAyClB77D,GAAQ+oB,SAAW,SAAUsyC,GACzB,GAAIn0C,GAAO,GAAIvtB,OAAM3I,UAAUuG,OAAS,EACxC,IAAIvG,UAAUuG,OAAS,EACnB,IAAK,GAAIuF,GAAI,EAAGA,EAAI9L,UAAUuG,OAAQuF,IAClCoqB,EAAKpqB,EAAI,GAAK9L,UAAU8L,EAGhC0qB,GAAMlqB,KAAK,GAAIy+D,GAAKV,EAAKn0C,IACJ,IAAjBM,EAAMjwB,QAAiBokE,GACvBP,EAAWU,IASnBC,EAAKrrE,UAAUu1B,IAAM,WACjB7yB,KAAKioE,IAAItqE,MAAM,KAAMqC,KAAK4F,QAE9BgH,EAAQg8D,MAAQ,UAChBh8D,EAAQi8D,SAAU,EAClBj8D,EAAQmlD,OACRnlD,EAAQk8D,QACRl8D,EAAQF,QAAU,GAClBE,EAAQE,YAIRF,EAAQoN,GAAK9K,EACbtC,EAAQm8D,YAAc75D,EACtBtC,EAAQiM,KAAO3J,EACftC,EAAQmN,IAAM7K,EACdtC,EAAQo8D,eAAiB95D,EACzBtC,EAAQq8D,mBAAqB/5D,EAC7BtC,EAAQif,KAAO3c,EACftC,EAAQs8D,gBAAkBh6D,EAC1BtC,EAAQu8D,oBAAsBj6D,EAE9BtC,EAAQigB,UAAY,SAAUlsB,GAAQ,UAEtCiM,EAAQgmC,QAAU,SAAUjyC,GACxB,KAAM,IAAIi6B,OAAM,qCAGpBhuB,EAAQw8D,IAAM,WAAc,MAAO,KACnCx8D,EAAQy8D,MAAQ,SAAU7+B,GACtB,KAAM,IAAI5P,OAAM,mCAEpBhuB,EAAQ08D,MAAQ,WAAa,MAAO,K7G84c3B,CAEH,SAAUxsE,EAAQC,EAASG,G8GvkdjC,GAAI0L,GAAI,EAAQ,GACZsjB,EAAO,EAAQ,IAUnBtjB,IAAIrK,OAAQ,QAASQ,MAAM,EAAMG,QATC,EAAQ,KAEa,SAAUqqE,GAE/DhjE,MAAM2lB,KAAKq9C,OAMXr9C,KAAMA,K9G+kdF,SAAUpvB,EAAQC,EAASG,GAEjC,Y+G5ldA,IAAIqT,GAAS,EAAQ,KAAiCA,OAClDtL,EAAW,EAAQ,IACnBukE,EAAsB,EAAQ,IAC9BC,EAAiB,EAAQ,KACzBC,EAAyB,EAAQ,KAGjCC,EAAmBH,EAAoBn7D,IACvC0B,EAAmBy5D,EAAoB96D,UAFrB,kBAMtB+6D,GAAe7mE,OAAQ,SAAU,SAAUgnE,GACzCD,EAAiB3pE,MACfqB,KARkB,kBASlB0P,OAAQ9L,EAAS2kE,GACjBv+D,MAAO,KAIR,WACD,GAGIw+D,GAHAl7D,EAAQoB,EAAiB/P,MACzB+Q,EAASpC,EAAMoC,OACf1F,EAAQsD,EAAMtD,KAElB,OAAIA,IAAS0F,EAAO5M,OAAeulE,MAAuBvqE,IAAW,IACrE0qE,EAAQt5D,EAAOQ,EAAQ1F,GACvBsD,EAAMtD,OAASw+D,EAAM1lE,OACdulE,EAAuBG,GAAO,O/GomdjC,SAAU/sE,EAAQC,EAASG,IgHjodjC;;;;;;;CAQC,SAAUW,EAAQuX,GAC6CtY,EAAOC,QAAUqY,KAG/EpV,EAAM,WAAe,YAEvB,SAAS8pE,GAAiB/wD,GACxB,GAAI1X,SAAc0X,EAClB,OAAa,QAANA,IAAwB,WAAT1X,GAA8B,aAATA,GAG7C,QAASsU,GAAWoD,GAClB,MAAoB,kBAANA,GAoChB,QAASgxD,GAAaC,GACpBC,EAAoBD,EAGtB,QAASE,GAAQC,GACfC,EAAOD,EAqBT,QAASE,KACP,WAAyB,KAAdC,EACF,WACLA,EAAUt0C,IAIPu0C,IAuBT,QAASA,KAGP,GAAIC,GAAmB56C,UACvB,OAAO,YACL,MAAO46C,GAAiBx0C,EAAO,IAKnC,QAASA,KACP,IAAK,GAAItsB,GAAI,EAAGA,EAAIE,EAAKF,GAAK,EAAG,EAI/Bu3B,EAHe7M,EAAM1qB,IACX0qB,EAAM1qB,EAAI,IAIpB0qB,EAAM1qB,OAAKvK,GACXi1B,EAAM1qB,EAAI,OAAKvK,GAGjByK,EAAM,EA2BR,QAAS0M,GAAKm0D,EAAeC,GAC3B,GAAI1oE,GAAShC,KAET2kB,EAAQ,GAAI3kB,MAAK6F,YAAYqJ,OAEP/P,KAAtBwlB,EAAMgmD,IACRC,EAAYjmD,EAGd,IAAIkmD,GAAS7oE,EAAO6oE,MAGpB,IAAIA,EAAQ,CACV,GAAI5pC,GAAWrjC,UAAUitE,EAAS,EAClCT,GAAK,WACH,MAAOU,GAAeD,EAAQlmD,EAAOsc,EAAUj/B,EAAO+oE,eAGxDC,GAAUhpE,EAAQ2iB,EAAO8lD,EAAeC,EAG1C,OAAO/lD,GAkCT,QAASsmD,GAAU3+D,GAEjB,GAAIu6D,GAAc7mE,IAElB,IAAIsM,GAA4B,gBAAXA,IAAuBA,EAAOzG,cAAgBghE,EACjE,MAAOv6D,EAGT,IAAI4+D,GAAU,GAAIrE,GAAY33D,EAE9B,OADAogB,GAAQ47C,EAAS5+D,GACV4+D,EAKT,QAASh8D,MAMT,QAASi8D,KACP,MAAO,IAAIroE,WAAU,4CAGvB,QAASsoE,KACP,MAAO,IAAItoE,WAAU,wDAGvB,QAASuoE,GAAQC,EAASrsE,EAAOssE,EAAoBC,GACnD,IACEF,EAAQ/tE,KAAK0B,EAAOssE,EAAoBC,GACxC,MAAOjmE,GACP,MAAOA,IAIX,QAASkmE,GAAsBP,EAASQ,EAAUJ,GAChDlB,EAAK,SAAUc,GACb,GAAIlsC,IAAS,EACT/hC,EAAQouE,EAAQC,EAASI,EAAU,SAAUzsE,GAC3C+/B,IAGJA,GAAS,EACL0sC,IAAazsE,EACfqwB,EAAQ47C,EAASjsE,GAEjB0sE,EAAQT,EAASjsE,KAElB,SAAUuwB,GACPwP,IAGJA,GAAS,EAETnE,EAAOqwC,EAAS17C,KACf,YAAc07C,EAAQU,QAAU,sBAE9B5sC,GAAU/hC,IACb+hC,GAAS,EACTnE,EAAOqwC,EAASjuE,KAEjBiuE,GAGL,QAASW,GAAkBX,EAASQ,GAC9BA,EAASb,SAAWiB,EACtBH,EAAQT,EAASQ,EAASX,SACjBW,EAASb,SAAWkB,EAC7BlxC,EAAOqwC,EAASQ,EAASX,SAEzBC,EAAUU,MAAUvsE,GAAW,SAAUF,GACvC,MAAOqwB,GAAQ47C,EAASjsE,IACvB,SAAUuwB,GACX,MAAOqL,GAAOqwC,EAAS17C,KAK7B,QAASw8C,GAAoBd,EAASe,EAAeX,GAC/CW,EAAcpmE,cAAgBqlE,EAAQrlE,aAAeylE,IAAYh1D,GAAQ21D,EAAcpmE,YAAYypB,UAAY27C,EACjHY,EAAkBX,EAASe,OAEX9sE,KAAZmsE,EACFK,EAAQT,EAASe,GACRt2D,EAAW21D,GACpBG,EAAsBP,EAASe,EAAeX,GAE9CK,EAAQT,EAASe,GAKvB,QAAS38C,GAAQ47C,EAASjsE,GACxB,GAAIisE,IAAYjsE,EACd47B,EAAOqwC,EAASC,SACX,IAAIrB,EAAiB7qE,GAAQ,CAClC,GAAIqsE,OAAU,EACd,KACEA,EAAUrsE,EAAMqX,KAChB,MAAOrZ,GAEP,WADA49B,GAAOqwC,EAASjuE,GAGlB+uE,EAAoBd,EAASjsE,EAAOqsE,OAEpCK,GAAQT,EAASjsE,GAIrB,QAASitE,GAAiBhB,GACpBA,EAAQiB,UACVjB,EAAQiB,SAASjB,EAAQH,SAG3BqB,EAAQlB,GAGV,QAASS,GAAQT,EAASjsE,GACpBisE,EAAQL,SAAWwB,IAIvBnB,EAAQH,QAAU9rE,EAClBisE,EAAQL,OAASiB,EAEmB,IAAhCZ,EAAQoB,aAAanoE,QACvBimE,EAAKgC,EAASlB,IAIlB,QAASrwC,GAAOqwC,EAAS17C,GACnB07C,EAAQL,SAAWwB,IAGvBnB,EAAQL,OAASkB,EACjBb,EAAQH,QAAUv7C,EAElB46C,EAAK8B,EAAkBhB,IAGzB,QAASF,GAAUhpE,EAAQ2iB,EAAO8lD,EAAeC,GAC/C,GAAI4B,GAAetqE,EAAOsqE,aACtBnoE,EAASmoE,EAAanoE,MAG1BnC,GAAOmqE,SAAW,KAElBG,EAAanoE,GAAUwgB,EACvB2nD,EAAanoE,EAAS2nE,GAAarB,EACnC6B,EAAanoE,EAAS4nE,GAAYrB,EAEnB,IAAXvmE,GAAgBnC,EAAO6oE,QACzBT,EAAKgC,EAASpqE,GAIlB,QAASoqE,GAAQlB,GACf,GAAIqB,GAAcrB,EAAQoB,aACtBE,EAAUtB,EAAQL,MAEtB,IAA2B,IAAvB0B,EAAYpoE,OAAhB,CAQA,IAAK,GAJDwgB,OAAQ,GACRsc,MAAW,GACXwrC,EAASvB,EAAQH,QAEZrhE,EAAI,EAAGA,EAAI6iE,EAAYpoE,OAAQuF,GAAK,EAC3Cib,EAAQ4nD,EAAY7iE,GACpBu3B,EAAWsrC,EAAY7iE,EAAI8iE,GAEvB7nD,EACFmmD,EAAe0B,EAAS7nD,EAAOsc,EAAUwrC,GAEzCxrC,EAASwrC,EAIbvB,GAAQoB,aAAanoE,OAAS,GAGhC,QAAS2mE,GAAe0B,EAAStB,EAASjqC,EAAUwrC,GAClD,GAAIC,GAAc/2D,EAAWsrB,GACzBhiC,MAAQ,GACRhC,MAAQ,GACR0vE,GAAY,CAEhB,IAAID,EAAa,CACf,IACEztE,EAAQgiC,EAASwrC,GACjB,MAAOlnE,GACPonE,GAAY,EACZ1vE,EAAQsI,EAGV,GAAI2lE,IAAYjsE,EAEd,WADA47B,GAAOqwC,EAASE,SAIlBnsE,GAAQwtE,CAGNvB,GAAQL,SAAWwB,IAEZK,GAAeC,EACxBr9C,EAAQ47C,EAASjsE,IACM,IAAd0tE,EACT9xC,EAAOqwC,EAASjuE,GACPuvE,IAAYV,EACrBH,EAAQT,EAASjsE,GACRutE,IAAYT,GACrBlxC,EAAOqwC,EAASjsE,IAIpB,QAAS2tE,GAAkB1B,EAAS2B,GAClC,IACEA,EAAS,SAAwB5tE,GAC/BqwB,EAAQ47C,EAASjsE,IAChB,SAAuBuwB,GACxBqL,EAAOqwC,EAAS17C,KAElB,MAAOjqB,GACPs1B,EAAOqwC,EAAS3lE,IAKpB,QAASunE,KACP,MAAOnnD,KAGT,QAASilD,GAAYM,GACnBA,EAAQP,GAAchlD,IACtBulD,EAAQL,WAAS1rE,GACjB+rE,EAAQH,YAAU5rE,GAClB+rE,EAAQoB,gBAGV,QAASS,KACP,MAAO,IAAInyC,OAAM,2CA4JnB,QAASr7B,GAAIytE,GACX,MAAO,IAAIC,GAAWjtE,KAAMgtE,GAAS9B,QAoEvC,QAASgC,GAAKF,GAEZ,GAAInG,GAAc7mE,IAElB,OAKS,IAAI6mE,GALRrgE,EAAQwmE,GAKY,SAAU19C,EAASuL,GAExC,IAAK,GADD12B,GAAS6oE,EAAQ7oE,OACZuF,EAAI,EAAGA,EAAIvF,EAAQuF,IAC1Bm9D,EAAYv3C,QAAQ09C,EAAQtjE,IAAI4M,KAAKgZ,EAASuL,IAP3B,SAAUiU,EAAGjU,GAClC,MAAOA,GAAO,GAAI/3B,WAAU,sCA8ClC,QAASqqE,GAAS39C,GAEhB,GAAIq3C,GAAc7mE,KACdkrE,EAAU,GAAIrE,GAAY33D,EAE9B,OADA2rB,GAAOqwC,EAAS17C,GACT07C,EAGT,QAASkC,KACP,KAAM,IAAItqE,WAAU,sFAGtB,QAASuqE,KACP,KAAM,IAAIvqE,WAAU,yHA6XtB,QAASwqE,KACP,GAAIC,OAAQ,EAEZ,QAAsB,KAAX1vE,EACT0vE,EAAQ1vE,MACH,IAAoB,mBAATkC,MAChBwtE,EAAQxtE,SAER,KACEwtE,EAAQlwE,SAAS,iBACjB,MAAOkI,GACP,KAAM,IAAIq1B,OAAM,4EAIpB,GAAIj2B,GAAI4oE,EAAM7zC,OAEd,IAAI/0B,EAAG,CACL,GAAI6oE,GAAkB,IACtB,KACEA,EAAkBxqE,OAAO1F,UAAU2H,SAAS1H,KAAKoH,EAAE2qB,WACnD,MAAO/pB,IAIT,GAAwB,qBAApBioE,IAA2C7oE,EAAE8oE,KAC/C,OAIJF,EAAM7zC,QAAUg0C,GA/mClB,GAAIC,OAAW,EAEbA,GADEpnE,MAAMC,QACGD,MAAMC,QAEN,SAAUuS,GACnB,MAA6C,mBAAtC/V,OAAO1F,UAAU2H,SAAS1H,KAAKwb,GAI1C,IAAIvS,GAAUmnE,EAEV/jE,EAAM,EACN0gE,MAAY,GACZL,MAAoB,GAEpBG,EAAO,SAAcnpC,EAAUx3B,GACjC2qB,EAAMxqB,GAAOq3B,EACb7M,EAAMxqB,EAAM,GAAKH,EAEL,KADZG,GAAO,KAKDqgE,EACFA,EAAkBj0C,GAElB43C,MAaFC,EAAkC,mBAAX/tE,QAAyBA,WAASX,GACzD2uE,EAAgBD,MAChBE,EAA0BD,EAActZ,kBAAoBsZ,EAAcE,uBAC1EC,EAAyB,mBAATluE,WAA2C,KAAZ6M,GAAyD,wBAA3B3H,SAAS1H,KAAKqP,GAG3FshE,EAAwC,mBAAtBC,oBAA8D,mBAAlBC,gBAA2D,mBAAnBC,gBAmDtGj6C,EAAQ,GAAI7tB,OAAM,KAyBlBqnE,MAAgB,EAGlBA,GADEK,EA3EJ,WAGE,MAAO,YACL,MAAOrhE,GAAQ+oB,SAASK,OAyEjB+3C,EA1DX,WACE,GAAIO,GAAa,EACb3Z,EAAW,GAAIoZ,GAAwB/3C,GACvC/S,EAAO/a,SAASugC,eAAe,GAGnC,OAFAksB,GAASh5C,QAAQsH,GAAQ4xC,eAAe,IAEjC,WACL5xC,EAAK3I,KAAOg0D,IAAeA,EAAa,MAqDjCJ,EAhDX,WACE,GAAIK,GAAU,GAAIF,eAElB,OADAE,GAAQC,MAAMC,UAAYz4C,EACnB,WACL,MAAOu4C,GAAQG,MAAMC,YAAY,WA8CRxvE,KAAlB0uE,EAlBX,WACE,IACE,GAAIe,GAAQvxE,SAAS,iBAAiBwxE,QAAQ,QAE9C,OADAvE,GAAYsE,EAAME,WAAaF,EAAMG,aAC9B1E,IACP,MAAO9kE,GACP,MAAOglE,SAeOA,GAuElB,IAAII,GAAahrE,KAAKmmE,SAAS7gE,SAAS,IAAIk6C,UAAU,GAIlDktB,MAAU,GACVP,EAAY,EACZC,EAAW,EAoNXpmD,EAAK,EAgBLsnD,EAAa,WACf,QAASA,GAAWpG,EAAal1D,GAC/B3R,KAAKgvE,qBAAuBnI,EAC5B7mE,KAAKkrE,QAAU,GAAIrE,GAAY33D,GAE1BlP,KAAKkrE,QAAQP,IAChBC,EAAY5qE,KAAKkrE,SAGf1kE,EAAQmL,IACV3R,KAAKmE,OAASwN,EAAMxN,OACpBnE,KAAKivE,WAAat9D,EAAMxN,OAExBnE,KAAK+qE,QAAU,GAAIxkE,OAAMvG,KAAKmE,QAEV,IAAhBnE,KAAKmE,OACPwnE,EAAQ3rE,KAAKkrE,QAASlrE,KAAK+qE,UAE3B/qE,KAAKmE,OAASnE,KAAKmE,QAAU,EAC7BnE,KAAKkvE,WAAWv9D,GACQ,IAApB3R,KAAKivE,YACPtD,EAAQ3rE,KAAKkrE,QAASlrE,KAAK+qE,WAI/BlwC,EAAO76B,KAAKkrE,QAAS6B,KA8EzB,MA1EAE,GAAW3vE,UAAU4xE,WAAa,SAAoBv9D,GACpD,IAAK,GAAIjI,GAAI,EAAG1J,KAAK6qE,SAAWwB,GAAW3iE,EAAIiI,EAAMxN,OAAQuF,IAC3D1J,KAAKmvE,WAAWx9D,EAAMjI,GAAIA,IAI9BujE,EAAW3vE,UAAU6xE,WAAa,SAAoBvoC,EAAOl9B,GAC3D,GAAIwO,GAAIlY,KAAKgvE,qBACTI,EAAal3D,EAAEoX,OAGnB,IAAI8/C,IAAenE,EAAW,CAC5B,GAAIoE,OAAQ,GACRpyE,MAAQ,GACRqyE,GAAW,CACf,KACED,EAAQzoC,EAAMtwB,KACd,MAAO/Q,GACP+pE,GAAW,EACXryE,EAAQsI,EAGV,GAAI8pE,IAAU/4D,GAAQswB,EAAMikC,SAAWwB,EACrCrsE,KAAKuvE,WAAW3oC,EAAMikC,OAAQnhE,EAAGk9B,EAAMmkC,aAClC,IAAqB,kBAAVsE,GAChBrvE,KAAKivE,aACLjvE,KAAK+qE,QAAQrhE,GAAKk9B,MACb,IAAI1uB,IAAMw1D,GAAW,CAC1B,GAAIxC,GAAU,GAAIhzD,GAAEhJ,EAChBogE,GACFz0C,EAAOqwC,EAASjuE,GAEhB+uE,EAAoBd,EAAStkC,EAAOyoC,GAEtCrvE,KAAKwvE,cAActE,EAASxhE,OAE5B1J,MAAKwvE,cAAc,GAAIt3D,GAAE,SAAUk3D,GACjC,MAAOA,GAAWxoC,KAChBl9B,OAGN1J,MAAKwvE,cAAcJ,EAAWxoC,GAAQl9B,IAI1CujE,EAAW3vE,UAAUiyE,WAAa,SAAoB5gE,EAAOjF,EAAGzK,GAC9D,GAAIisE,GAAUlrE,KAAKkrE,OAGfA,GAAQL,SAAWwB,IACrBrsE,KAAKivE,aAEDtgE,IAAUo9D,EACZlxC,EAAOqwC,EAASjsE,GAEhBe,KAAK+qE,QAAQrhE,GAAKzK,GAIE,IAApBe,KAAKivE,YACPtD,EAAQT,EAASlrE,KAAK+qE,UAI1BkC,EAAW3vE,UAAUkyE,cAAgB,SAAuBtE,EAASxhE,GACnE,GAAI+lE,GAAazvE,IAEjBgrE,GAAUE,MAAS/rE,GAAW,SAAUF,GACtC,MAAOwwE,GAAWF,WAAWzD,EAAWpiE,EAAGzK,IAC1C,SAAUuwB,GACX,MAAOigD,GAAWF,WAAWxD,EAAUriE,EAAG8lB,MAIvCy9C,KAmSLS,GAAY,WACd,QAASh0C,GAAQmzC,GACf7sE,KAAK2qE,GAAcmC,IACnB9sE,KAAK+qE,QAAU/qE,KAAK6qE,WAAS1rE,GAC7Ba,KAAKssE,gBAEDp9D,IAAS29D,IACS,kBAAbA,IAA2BO,IAClCptE,eAAgB05B,GAAUkzC,EAAkB5sE,KAAM6sE,GAAYQ,KA6PlE,MA/DA3zC,GAAQp8B,UAAUiZ,MAAQ,SAAgBm0D,GACxC,MAAO1qE,MAAKsW,KAAK,KAAMo0D,IA2CzBhxC,EAAQp8B,UAAUoyE,QAAU,SAAkBzuC,GAC5C,GAAIiqC,GAAUlrE,KACV6F,EAAcqlE,EAAQrlE,WAE1B,OAAI8P,GAAWsrB,GACNiqC,EAAQ50D,KAAK,SAAUrX,GAC5B,MAAO4G,GAAYypB,QAAQ2R,KAAY3qB,KAAK,WAC1C,MAAOrX,MAER,SAAUuwB,GACX,MAAO3pB,GAAYypB,QAAQ2R,KAAY3qB,KAAK,WAC1C,KAAMkZ,OAKL07C,EAAQ50D,KAAK2qB,EAAUA,IAGzBvH,IAkDT,OA/CAg0C,IAAUpwE,UAAUgZ,KAAOA,EAC3Bo3D,GAAUnuE,IAAMA,EAChBmuE,GAAUR,KAAOA,EACjBQ,GAAUp+C,QAAU27C,EACpByC,GAAU7yC,OAASsyC,EACnBO,GAAUiC,cAAgB5F,EAC1B2D,GAAUkC,SAAW1F,EACrBwD,GAAUmC,MAAQzF,EAqClBsD,GAAUJ,SAAWA,EACrBI,GAAUh0C,QAAUg0C,GAEbA,OhH2odsBnwE,KAAKR,EAASG,EAAoB,KAAMA,EAAoB,MAGhF,CACA,CACA,CACA,CAEH,SAAUJ,EAAQyQ,EAAqBrQ,GAE7C,YiHnyfe,SAAS4yE,GAAan+D,EAAOo+D,GAC1C,GAAuB,WAAnB,SAAQp+D,IAAiC,OAAVA,EAAgB,MAAOA,EAC1D,IAAIq+D,GAAOr+D,EAAMpR,OAAO8R,YACxB,QAAalT,KAAT6wE,EAAoB,CACtB,GAAIx7D,GAAMw7D,EAAKzyE,KAAKoU,EAAOo+D,GAAQ,UACnC,IAAqB,WAAjB,SAAQv7D,GAAmB,MAAOA,EACtC,MAAM,IAAI1R,WAAU,gDAEtB,OAAiB,WAATitE,EAAoBntE,OAASiiC,QAAQlzB,GAT/C,mBjHqzfM,SAAU7U,EAAQyQ,EAAqBrQ,GAE7C,YkHrzfe,SAAS+yE,GAAexmE,GACrC,GAAIjL,GAAM,SAAYiL,EAAK,SAC3B,OAAwB,WAAjB,SAAQjL,GAAoBA,EAAMoE,OAAOpE,GAJlD,4BlHm0fS,CACA,CACA,CACA,CAEH,SAAU1B,EAAQC,EAASG,GmHx0fjC,GAAIoG,GAAa,EAAQ,GAErBX,EAAUC,OACVC,EAAaC,SAEjBhG,GAAOC,QAAU,SAAU0C,GACzB,GAAuB,gBAAZA,IAAwB6D,EAAW7D,GAAW,MAAOA,EAChE,MAAMoD,GAAW,aAAeF,EAAQlD,GAAY,qBnHg1fhD,SAAU3C,EAAQC,EAASG,GAEjC,YoHx1fA,IAAIO,GAAO,EAAQ,IACfF,EAAO,EAAQ,IACf6F,EAAW,EAAQ,IACnB8sE,EAA+B,EAAQ,KACvCC,EAAwB,EAAQ,KAChC1J,EAAgB,EAAQ,IACxB59D,EAAoB,EAAQ,IAC5BE,EAAiB,EAAQ,IACzBqnE,EAAc,EAAQ,KACtBC,EAAoB,EAAQ,IAE5BzJ,EAASrgE,KAIbzJ,GAAOC,QAAU,SAAcuzE,GAC7B,GAAI7sE,GAAIL,EAASktE,GACbC,EAAiB9J,EAAczmE,MAC/BwwE,EAAkB5yE,UAAUuG,OAC5BssE,EAAQD,EAAkB,EAAI5yE,UAAU,OAAKuB,GAC7CuxE,MAAoBvxE,KAAVsxE,CACVC,KAASD,EAAQhzE,EAAKgzE,EAAOD,EAAkB,EAAI5yE,UAAU,OAAKuB,IACtE,IAEIgF,GAAQuE,EAAQioE,EAAMljE,EAAUuX,EAAM/lB,EAFtC2xE,EAAiBP,EAAkB5sE,GACnC4H,EAAQ,CAGZ,KAAIulE,GAAoB5wE,OAAS4mE,GAAUuJ,EAAsBS,GAW/D,IAFAzsE,EAAS0E,EAAkBpF,GAC3BiF,EAAS6nE,EAAiB,GAAIvwE,MAAKmE,GAAUyiE,EAAOziE,GAC9CA,EAASkH,EAAOA,IACpBpM,EAAQyxE,EAAUD,EAAMhtE,EAAE4H,GAAQA,GAAS5H,EAAE4H,GAC7CtC,EAAeL,EAAQ2C,EAAOpM,OAThC,KAHAwO,EAAW2iE,EAAY3sE,EAAGmtE,GAC1B5rD,EAAOvX,EAASuX,KAChBtc,EAAS6nE,EAAiB,GAAIvwE,WACtB2wE,EAAOpzE,EAAKynB,EAAMvX,IAAWgH,KAAMpJ,IACzCpM,EAAQyxE,EAAUR,EAA6BziE,EAAUgjE,GAAQE,EAAK1xE,MAAOoM,IAAQ,GAAQslE,EAAK1xE,MAClG8J,EAAeL,EAAQ2C,EAAOpM,EAWlC,OADAyJ,GAAOvE,OAASkH,EACT3C,IpHg2fH,SAAU5L,EAAQC,EAASG,GqH54fjC,GAAIgQ,GAAY,EAAQ,IACpB9J,EAAW,EAAQ,IACnBuF,EAAgB,EAAQ,IACxBE,EAAoB,EAAQ,IAE5BhG,EAAaC,UAGbyH,EAAe,SAAUsmE,GAC3B,MAAO,UAAU3lE,EAAMD,EAAYulE,EAAiBM,GAClD5jE,EAAUjC,EACV,IAAIxH,GAAIL,EAAS8H,GACbnL,EAAO4I,EAAclF,GACrBU,EAAS0E,EAAkBpF,GAC3B4H,EAAQwlE,EAAW1sE,EAAS,EAAI,EAChCuF,EAAImnE,GAAY,EAAI,CACxB,IAAIL,EAAkB,EAAG,OAAa,CACpC,GAAInlE,IAAStL,GAAM,CACjB+wE,EAAO/wE,EAAKsL,GACZA,GAAS3B,CACT,OAGF,GADA2B,GAAS3B,EACLmnE,EAAWxlE,EAAQ,EAAIlH,GAAUkH,EACnC,KAAMxI,GAAW,+CAGrB,KAAMguE,EAAWxlE,GAAS,EAAIlH,EAASkH,EAAOA,GAAS3B,EAAO2B,IAAStL,KACrE+wE,EAAO7lE,EAAW6lE,EAAM/wE,EAAKsL,GAAQA,EAAO5H,GAE9C,OAAOqtE,IAIXh0E,GAAOC,SAGLwgD,KAAMhzC,GAAa,GAGnBwlC,MAAOxlC,GAAa,KrHo5fhB,SAAUzN,EAAQC,EAASG,GsH57fjC,GAAIsJ,GAAU,EAAQ,IAClBigE,EAAgB,EAAQ,IACxB/jE,EAAW,EAAQ,IACnB8C,EAAkB,EAAQ,GAE1BE,EAAUF,EAAgB,WAC1BohE,EAASrgE,KAIbzJ,GAAOC,QAAU,SAAUoR,GACzB,GAAI4iE,EASF,OAREvqE,GAAQ2H,KACV4iE,EAAI5iE,EAActI,YAEd4gE,EAAcsK,KAAOA,IAAMnK,GAAUpgE,EAAQuqE,EAAEzzE,YAAayzE,MAAI5xE,GAC3DuD,EAASquE,IAEN,QADVA,EAAIA,EAAErrE,MACUqrE,MAAI5xE,SAETA,KAAN4xE,EAAkBnK,EAASmK,ItHo8fhC,SAAUj0E,EAAQC,EAASG,GuHx9fjC,GAAIqH,GAAW,EAAQ,GACnBysE,EAAgB,EAAQ,IAG5Bl0E,GAAOC,QAAU,SAAU0Q,EAAU/P,EAAIuB,EAAOgyE,GAC9C,IACE,MAAOA,GAAUvzE,EAAG6G,EAAStF,GAAO,GAAIA,EAAM,IAAMvB,EAAGuB,GACvD,MAAOhC,GACP+zE,EAAcvjE,EAAU,QAASxQ,MvHi+f/B,SAAUH,EAAQC,EAASG,GwHz+fjC,GAAIsI,GAAkB,EAAQ,GAE1Bi+D,EAAWj+D,EAAgB,YAC3B0rE,GAAe,CAEnB,KACE,GAAIzhE,GAAS,EACT0hE,GACFnsD,KAAM,WACJ,OAASvQ,OAAQhF,MAEnB,OAAU,WACRyhE,GAAe,GAGnBC,GAAmB1N,GAAY,WAC7B,MAAOzjE,OAGTuG,MAAM2lB,KAAKilD,EAAoB,WAAc,KAAM,KACnD,MAAOl0E,IAETH,EAAOC,QAAU,SAAUC,EAAMo0E,GAC/B,IAAKA,IAAiBF,EAAc,OAAO,CAC3C,IAAIG,IAAoB,CACxB,KACE,GAAI/kE,KACJA,GAAOm3D,GAAY,WACjB,OACEz+C,KAAM,WACJ,OAASvQ,KAAM48D,GAAoB,MAIzCr0E,EAAKsP,GACL,MAAOrP,IACT,MAAOo0E,KxHi/fH,SAAUv0E,EAAQC,EAASG,GyHrhgBjC,GAAIgD,GAAS,EAAQ,IACjByU,EAAU,EAAQ,KAClB28D,EAAiC,EAAQ,IACzC/tE,EAAuB,EAAQ,GAEnCzG,GAAOC,QAAU,SAAUwB,EAAQD,EAAQizE,GAIzC,IAAK,GAHD3/D,GAAO+C,EAAQrW,GACf2E,EAAiBM,EAAqBxF,EACtCD,EAA2BwzE,EAA+BvzE,EACrD2L,EAAI,EAAGA,EAAIkI,EAAKzN,OAAQuF,IAAK,CACpC,GAAIlL,GAAMoT,EAAKlI,EACVxJ,GAAO3B,EAAQC,IAAU+yE,GAAcrxE,EAAOqxE,EAAY/yE,IAC7DyE,EAAe1E,EAAQC,EAAKV,EAAyBQ,EAAQE,OzH+hgB7D,SAAU1B,EAAQC,EAASG,G0H3igBjC,GAAIsI,GAAkB,EAAQ,GAE1BgsE,EAAQhsE,EAAgB,QAE5B1I,GAAOC,QAAU,SAAU4I,GACzB,GAAIyO,GAAS,GACb,KACE,MAAMzO,GAAayO,GACnB,MAAOq9D,GACP,IAEE,MADAr9D,GAAOo9D,IAAS,EACT,MAAM7rE,GAAayO,GAC1B,MAAOs9D,KACT,OAAO,I1HmjgBL,SAAU50E,EAAQC,EAASG,G2HhkgBjC,GAAI6F,GAAQ,EAAQ,EAEpBjG,GAAOC,SAAWgG,EAAM,WACtB,QAASqF,MAGT,MAFAA,GAAE9K,UAAUuI,YAAc,KAEnB7C,OAAO8c,eAAe,GAAI1X,MAASA,EAAE9K,a3HwkgBxC,SAAUR,EAAQC,G4H5kgBxBD,EAAOC,QAAU,SAAUkC,EAAOwV,GAChC,OAASxV,MAAOA,EAAOwV,KAAMA,K5HslgBzB,SAAU3X,EAAQC,EAASG,G6HzlgBjC,GAAI8H,GAAU,EAAQ,IAClBnH,EAAS,EAAQ,EAErBf,GAAOC,QAAqC,WAA3BiI,EAAQnH,EAAO+O,U7HgmgB1B,SAAU9P,EAAQC,EAASG,GAEjC,Y8HpmgBA,IAAIkH,GAAc,EAAQ,GACtBrB,EAAQ,EAAQ,GAChBwB,EAAW,EAAQ,GACnBiE,EAAS,EAAQ,IACjBmpE,EAA0B,EAAQ,KAElCC,EAAsBh3C,MAAMt9B,UAAU2H,SAEtCqK,EAAsBvM,EAAM,WAC9B,GAAIqB,EAAa,CAGf,GAAIkI,GAAS9D,EAAOxF,OAAOC,kBAAmB,QAAUC,IAAK,WAC3D,MAAOlD,QAASsM,KAElB,IAAyC,SAArCslE,EAAoBr0E,KAAK+O,GAAoB,OAAO,EAG1D,MAA6D,SAAtDslE,EAAoBr0E,MAAOgnC,QAAS,EAAG5jC,KAAM,KAEd,UAAjCixE,EAAoBr0E,UAG3BT,GAAOC,QAAUuS,EAAsB,WACrC,GAAI7L,GAAIc,EAASvE,MACbW,EAAOgxE,EAAwBluE,EAAE9C,KAAM,SACvC4jC,EAAUotC,EAAwBluE,EAAE8gC,QACxC,OAAQ5jC,GAAkB4jC,EAAiB5jC,EAAO,KAAO4jC,EAArB5jC,EAArB4jC,GACbqtC,G9H2mgBE,SAAU90E,EAAQC,EAASG,GAEjC,Y+HxogBA,GAAQ,GACR,IAAIiG,GAAc,EAAQ,IACtBlF,EAAgB,EAAQ,IACxB4zE,EAAa,EAAQ,IACrB9uE,EAAQ,EAAQ,GAChByC,EAAkB,EAAQ,GAC1BxH,EAA8B,EAAQ,IAEtC0H,EAAUF,EAAgB,WAC1BiiE,EAAkBp3D,OAAO/S,SAE7BR,GAAOC,QAAU,SAAU+0E,EAAK90E,EAAM+0E,EAAQC,GAC5C,GAAIC,GAASzsE,EAAgBssE,GAEzBI,GAAuBnvE,EAAM,WAE/B,GAAIU,KAEJ,OADAA,GAAEwuE,GAAU,WAAc,MAAO,IACZ,GAAd,GAAGH,GAAKruE,KAGb0uE,EAAoBD,IAAwBnvE,EAAM,WAEpD,GAAIqvE,IAAa,EACblhE,EAAK,GAkBT,OAhBY,UAAR4gE,IAIF5gE,KAGAA,EAAGrL,eACHqL,EAAGrL,YAAYH,GAAW,WAAc,MAAOwL,IAC/CA,EAAGK,MAAQ,GACXL,EAAG+gE,GAAU,IAAIA,IAGnB/gE,EAAGlU,KAAO,WAAiC,MAAnBo1E,IAAa,EAAa,MAElDlhE,EAAG+gE,GAAQ,KACHG,GAGV,KACGF,IACAC,GACDJ,EACA,CACA,GAAIM,GAA8BlvE,EAAY,IAAI8uE,IAC9C91C,EAAUn/B,EAAKi1E,EAAQ,GAAGH,GAAM,SAAUQ,EAAcl+D,EAAQjD,EAAKohE,EAAMC,GAC7E,GAAIC,GAAwBtvE,EAAYmvE,GACpCI,EAAQt+D,EAAOpX,IACnB,OAAI01E,KAAUb,GAAca,IAAUjL,EAAgBzqE,KAChDk1E,IAAwBM,GAIjB/9D,MAAM,EAAMxV,MAAOozE,EAA4Bj+D,EAAQjD,EAAKohE,KAE9D99D,MAAM,EAAMxV,MAAOwzE,EAAsBthE,EAAKiD,EAAQm+D,KAExD99D,MAAM,IAGjBxW,GAAc2E,OAAOtF,UAAWw0E,EAAK31C,EAAQ,IAC7Cl+B,EAAcwpE,EAAiBwK,EAAQ91C,EAAQ,IAG7C61C,GAAMh0E,EAA4BypE,EAAgBwK,GAAS,QAAQ,K/HipgBnE,SAAUn1E,EAAQC,EAASG,GgIztgBjC,GAAIC,GAAc,EAAQ,IAEtBC,EAAoBC,SAASC,UAC7BK,EAAQP,EAAkBO,MAC1BJ,EAAOH,EAAkBG,IAG7BT,GAAOC,QAA4B,gBAAX+gC,UAAuBA,QAAQngC,QAAUR,EAAcI,EAAKE,KAAKE,GAAS,WAChG,MAAOJ,GAAKI,MAAMA,EAAOC,chIiugBrB,SAAUd,EAAQC,EAASG,GiIzugBjC,GAAIK,GAAO,EAAQ,IACf2P,EAAY,EAAQ,IACpB3I,EAAW,EAAQ,GACnB+F,EAAc,EAAQ,IACtB+lE,EAAoB,EAAQ,IAE5BxtE,EAAaC,SAEjBhG,GAAOC,QAAU,SAAU0C,EAAUkzE,GACnC,GAAI/B,GAAiBhzE,UAAUuG,OAAS,EAAIksE,EAAkB5wE,GAAYkzE,CAC1E,IAAIzlE,EAAU0jE,GAAiB,MAAOrsE,GAAShH,EAAKqzE,EAAgBnxE,GACpE,MAAMoD,GAAWyH,EAAY7K,GAAY,sBjIivgBrC,SAAU3C,EAAQC,EAASG,GkI5vgBjC,GAAI8R,GAAa,EAAQ,GAEzBlS,GAAOC,QAAUiS,EAAW,WAAY,oBlImwgBlC,SAAUlS,EAAQC,EAASG,GmIrwgBjC,GAAIoG,GAAa,EAAQ,GACrBZ,EAAW,EAAQ,IACnB+hE,EAAiB,EAAQ,IAG7B3nE,GAAOC,QAAU,SAAUiO,EAAO2I,EAAOi/D,GACvC,GAAIC,GAAWC,CAUf,OAPErO,IAEAnhE,EAAWuvE,EAAYl/D,EAAM9N,cAC7BgtE,IAAcD,GACdlwE,EAASowE,EAAqBD,EAAUv1E,YACxCw1E,IAAuBF,EAAQt1E,WAC/BmnE,EAAez5D,EAAO8nE,GACjB9nE,InI6wgBH,SAAUlO,EAAQC,EAASG,GoI7xgBjC,GAAIsI,GAAkB,EAAQ,GAC1Bg+D,EAAY,EAAQ,IAEpBC,EAAWj+D,EAAgB,YAC3B+9D,EAAiBh9D,MAAMjJ,SAG3BR,GAAOC,QAAU,SAAU2C,GACzB,WAAcP,KAAPO,IAAqB8jE,EAAUj9D,QAAU7G,GAAM6jE,EAAeE,KAAc/jE,KpIqygB/E,SAAU5C,EAAQC,EAASG,GqI7ygBjC,GAAIwF,GAAW,EAAQ,IACnBsC,EAAU,EAAQ,IAClBQ,EAAkB,EAAQ,GAE1BgsE,EAAQhsE,EAAgB,QAI5B1I,GAAOC,QAAU,SAAU2C,GACzB,GAAIqW,EACJ,OAAOrT,GAAShD,SAAmCP,MAA1B4W,EAAWrW,EAAG8xE,MAA0Bz7D,EAA0B,UAAf/Q,EAAQtF,MrIqzgBhF,SAAU5C,EAAQC,EAASG,GsI/zgBjC,GAAIK,GAAO,EAAQ,IACfgH,EAAW,EAAQ,GACnBwP,EAAY,EAAQ,GAExBjX,GAAOC,QAAU,SAAU0Q,EAAUslE,EAAM9zE,GACzC,GAAI+zE,GAAaC,CACjB1uE,GAASkJ,EACT,KAEE,KADAulE,EAAcj/D,EAAUtG,EAAU,WAChB,CAChB,GAAa,UAATslE,EAAkB,KAAM9zE,EAC5B,OAAOA,GAET+zE,EAAcz1E,EAAKy1E,EAAavlE,GAChC,MAAOxQ,GACPg2E,GAAa,EACbD,EAAc/1E,EAEhB,GAAa,UAAT81E,EAAkB,KAAM9zE,EAC5B,IAAIg0E,EAAY,KAAMD,EAEtB,OADAzuE,GAASyuE,GACF/zE,ItIu0gBH,SAAUnC,EAAQC,EAASG,GAEjC,YuI71gBA,IAAI8mE,GAAoB,EAAQ,KAA+BA,kBAC3Dx7D,EAAS,EAAQ,IACjB6D,EAA2B,EAAQ,IACnC6mE,EAAiB,EAAQ,KACzB1P,EAAY,EAAQ,IAEpB2P,EAAa,WAAc,MAAOnzE,MAEtClD,GAAOC,QAAU,SAAUq2E,EAAqBC,EAAMruD,EAAMsuD,GAC1D,GAAItnE,GAAgBqnE,EAAO,WAI3B,OAHAD,GAAoB91E,UAAYkL,EAAOw7D,GAAqBh/C,KAAM3Y,IAA2BinE,EAAiBtuD,KAC9GkuD,EAAeE,EAAqBpnE,GAAe,GAAO,GAC1Dw3D,EAAUx3D,GAAiBmnE,EACpBC,IvIq2gBH,SAAUt2E,EAAQC,EAASG,GAEjC,YwIp3gBA,IAAI0L,GAAI,EAAQ,GACZrL,EAAO,EAAQ,IACfsU,EAAU,EAAQ,IAClB0hE,EAAe,EAAQ,IACvBjwE,EAAa,EAAQ,GACrBkwE,EAA4B,EAAQ,KACpC1zD,EAAiB,EAAQ,KACzB2kD,EAAiB,EAAQ,KACzByO,EAAiB,EAAQ,KACzBl1E,EAA8B,EAAQ,IACtCC,EAAgB,EAAQ,IACxBuH,EAAkB,EAAQ,GAC1Bg+D,EAAY,EAAQ,IACpBiQ,EAAgB,EAAQ,KAExBnM,EAAuBiM,EAAartE,OACpCwtE,EAA6BH,EAAaptE,aAC1C69D,EAAoByP,EAAczP,kBAClCG,EAAyBsP,EAActP,uBACvCV,EAAWj+D,EAAgB,YAK3B2tE,EAAa,WAAc,MAAOnzE,MAEtClD,GAAOC,QAAU,SAAU42E,EAAUN,EAAMD,EAAqBpuD,EAAM4uD,EAASC,EAAQ9B,GACrFyB,EAA0BJ,EAAqBC,EAAMruD,EAErD,IAkBI8uD,GAA0B33C,EAAS21C,EAlBnCiC,EAAqB,SAAUC,GACjC,GAAIA,IAASJ,GAAWK,EAAiB,MAAOA,EAChD,KAAK9P,GAA0B6P,IAAQE,GAAmB,MAAOA,GAAkBF,EACnF,QAAQA,GACN,IAbK,OAcL,IAbO,SAcP,IAbQ,UAaM,MAAO,YAAqB,MAAO,IAAIZ,GAAoBpzE,KAAMg0E,IAC/E,MAAO,YAAc,MAAO,IAAIZ,GAAoBpzE,QAGpDgM,EAAgBqnE,EAAO,YACvBc,GAAwB,EACxBD,EAAoBP,EAASr2E,UAC7B82E,EAAiBF,EAAkBzQ,IAClCyQ,EAAkB,eAClBN,GAAWM,EAAkBN,GAC9BK,GAAmB9P,GAA0BiQ,GAAkBL,EAAmBH,GAClFS,EAA4B,SAARhB,EAAkBa,EAAkBlH,SAAWoH,EAAiBA,CA+BxF,IA3BIC,IACFP,EAA2Bh0D,EAAeu0D,EAAkB92E,KAAK,GAAIo2E,QACpC3wE,OAAO1F,WAAaw2E,EAAyB9uD,OACvEnT,GAAWiO,EAAeg0D,KAA8B9P,IACvDS,EACFA,EAAeqP,EAA0B9P,GAC/B1gE,EAAWwwE,EAAyBrQ,KAC9CxlE,EAAc61E,EAA0BrQ,EAAU0P,IAItDD,EAAeY,EAA0B9nE,GAAe,GAAM,GAC1D6F,IAAS2xD,EAAUx3D,GAAiBmnE,IAKxC7L,GA9CO,UA8CiBsM,GAAqBQ,GA9CtC,WA8CwDA,EAAezzE,QAC3EkR,GAAW6hE,EACd11E,EAA4Bk2E,EAAmB,OAhDxC,WAkDPC,GAAwB,EACxBF,EAAkB,WAAoB,MAAO12E,GAAK62E,EAAgBp0E,SAKlE4zE,EAMF,GALAz3C,GACE/T,OAAQ2rD,EA1DD,UA2DPniE,KAAMiiE,EAASI,EAAkBF,EA5D5B,QA6DL/G,QAAS+G,EA3DD,YA6DNhC,EAAQ,IAAKD,IAAO31C,IAClBgoC,IAA0BgQ,GAA2BrC,IAAOoC,IAC9Dj2E,EAAci2E,EAAmBpC,EAAK31C,EAAQ21C,QAE3ClpE,IAAIrK,OAAQ80E,EAAM9pE,OAAO,EAAMrK,OAAQilE,GAA0BgQ,GAAyBh4C,EASnG,OALMtqB,KAAWkgE,GAAWmC,EAAkBzQ,KAAcwQ,GAC1Dh2E,EAAci2E,EAAmBzQ,EAAUwQ,GAAmBtzE,KAAMizE,IAEtEpQ,EAAU6P,GAAQY,EAEX93C,IxI43gBH,SAAUr/B,EAAQC,EAASG,GyI79gBjC,GAAI6F,GAAQ,EAAQ,GAChBO,EAAa,EAAQ,GACrBpD,EAAS,EAAQ,IACjBkE,EAAc,EAAQ,GACtBsvE,EAA6B,EAAQ,IAA8BvtE,aACnE8I,EAAgB,EAAQ,IACxBu6D,EAAsB,EAAQ,IAE9B8K,EAAuB9K,EAAoB/6D,QAC3CsB,EAAmBy5D,EAAoBtmE,IAEvCD,EAAiBD,OAAOC,eAExBsxE,EAAsBnwE,IAAgBrB,EAAM,WAC9C,MAAsF,KAA/EE,EAAe,aAA6B,UAAYhE,MAAO,IAAKkF,SAGzEqwE,EAAW5xE,OAAOA,QAAQoK,MAAM,UAEhCxJ,EAAc1G,EAAOC,QAAU,SAAUkC,EAAO0B,EAAMtC,GACvB,YAA7BuE,OAAOjC,GAAMwE,MAAM,EAAG,KACxBxE,EAAO,IAAMiC,OAAOjC,GAAMwP,QAAQ,qBAAsB,MAAQ,KAE9D9R,GAAWA,EAAQoe,SAAQ9b,EAAO,OAASA,GAC3CtC,GAAWA,EAAQqe,SAAQ/b,EAAO,OAASA,KAC1CT,EAAOjB,EAAO,SAAYy0E,GAA8Bz0E,EAAM0B,OAASA,KACtEyD,EAAanB,EAAehE,EAAO,QAAUA,MAAO0B,EAAMkD,cAAc,IACvE5E,EAAM0B,KAAOA,GAEhB4zE,GAAuBl2E,GAAW6B,EAAO7B,EAAS,UAAYY,EAAMkF,SAAW9F,EAAQmL,OACzFvG,EAAehE,EAAO,UAAYA,MAAOZ,EAAQmL,OAEnD,KACMnL,GAAW6B,EAAO7B,EAAS,gBAAkBA,EAAQwH,YACnDzB,GAAanB,EAAehE,EAAO,aAAe8E,UAAU,IAEvD9E,EAAM3B,YAAW2B,EAAM3B,cAAY6B,IAC9C,MAAOlC,IACT,GAAI0R,GAAQ2lE,EAAqBr1E,EAG/B,OAFGiB,GAAOyO,EAAO,YACjBA,EAAMrQ,OAASk2E,EAAShwC,KAAoB,gBAAR7jC,GAAmBA,EAAO,KACvD1B,EAKX5B,UAASC,UAAU2H,SAAWzB,EAAY,WACxC,MAAOF,GAAWtD,OAAS+P,EAAiB/P,MAAM1B,QAAU2Q,EAAcjP,OACzE,azIo+gBG,SAAUlD,EAAQC,G0IphhBxB,GAAI03E,GAAO90E,KAAK80E,KACZt+D,EAAQxW,KAAKwW,KAKjBrZ,GAAOC,QAAU4C,KAAK0N,OAAS,SAAe0L,GAC5C,GAAIhP,IAAKgP,CACT,QAAQhP,EAAI,EAAIoM,EAAQs+D,GAAM1qE,K1I4hhB1B,SAAUjN,EAAQC,EAASG,G2IpihBjC,GAAI+H,GAAW,EAAQ,GAEvBnI,GAAOC,QAAU,SAAU0C,EAAUi1E,GACnC,WAAoBv1E,KAAbM,EAAyB7B,UAAUuG,OAAS,EAAI,GAAKuwE,EAAWzvE,EAASxF,K3I4ihB5E,SAAU3C,EAAQC,EAASG,G4I/ihBjC,GAAI6Y,GAAW,EAAQ,KAEnBlT,EAAaC,SAEjBhG,GAAOC,QAAU,SAAU2C,GACzB,GAAIqW,EAASrW,GACX,KAAMmD,GAAW,gDACjB,OAAOnD,K5IujhBL,SAAU5C,EAAQC,EAASG,G6I9jhBjC,GAAIkH,GAAc,EAAQ,GACtBE,EAA0B,EAAQ,KAClCf,EAAuB,EAAQ,IAC/BgB,EAAW,EAAQ,GACnBmJ,EAAkB,EAAQ,IAC1BinE,EAAa,EAAQ,IAKzB53E,GAAQgB,EAAIqG,IAAgBE,EAA0BtB,OAAOkS,iBAAmB,SAA0BzR,EAAGgF,GAC3GlE,EAASd,EAMT,KALA,GAIIjF,GAJA2jB,EAAQzU,EAAgBjF,GACxBmJ,EAAO+iE,EAAWlsE,GAClBtE,EAASyN,EAAKzN,OACdkH,EAAQ,EAELlH,EAASkH,GAAO9H,EAAqBxF,EAAE0F,EAAGjF,EAAMoT,EAAKvG,KAAU8W,EAAM3jB,GAC5E,OAAOiF,K7IskhBH,SAAU3G,EAAQC,G8IvlhBxBA,EAAQgB,EAAIiF,OAAO6R,uB9I+lhBb,SAAU/X,EAAQC,EAASG,G+IhmhBjC,GAAIknE,GAAqB,EAAQ,KAC7Bz9D,EAAc,EAAQ,GAK1B7J,GAAOC,QAAUiG,OAAO4O,MAAQ,SAAcnO,GAC5C,MAAO2gE,GAAmB3gE,EAAGkD,K/IwmhBzB,SAAU7J,EAAQC,EAASG,GAEjC,YgJhnhBA,IAAI03E,MAA2BxmE,qBAE3BtQ,EAA2BkF,OAAOlF,yBAGlC+2E,EAAc/2E,IAA6B82E,EAAsBr3E,MAAOu3E,EAAG,GAAK,EAIpF/3E,GAAQgB,EAAI82E,EAAc,SAA8B1nE,GACtD,GAAIxO,GAAab,EAAyBkC,KAAMmN,EAChD,SAASxO,GAAcA,EAAWgF,YAChCixE,GhJunhBE,SAAU93E,EAAQC,EAASG,GAEjC,YiJrohBA,IAAI4O,GAAwB,EAAQ,IAChC9G,EAAU,EAAQ,GAItBlI,GAAOC,QAAU+O,KAA2B7G,SAAW,WACrD,MAAO,WAAaD,EAAQhF,MAAQ,MjJ6ohBhC,SAAUlD,EAAQC,EAASG,GkJpphBjC,GAAIK,GAAO,EAAQ,IACf+F,EAAa,EAAQ,GACrBZ,EAAW,EAAQ,IAEnBG,EAAaC,SAIjBhG,GAAOC,QAAU,SAAU4U,EAAOg0D,GAChC,GAAIjoE,GAAIuY,CACR,IAAa,WAAT0vD,GAAqBriE,EAAW5F,EAAKiU,EAAM1M,YAAcvC,EAASuT,EAAM1Y,EAAKG,EAAIiU,IAAS,MAAOsE,EACrG,IAAI3S,EAAW5F,EAAKiU,EAAMojE,WAAaryE,EAASuT,EAAM1Y,EAAKG,EAAIiU,IAAS,MAAOsE,EAC/E,IAAa,WAAT0vD,GAAqBriE,EAAW5F,EAAKiU,EAAM1M,YAAcvC,EAASuT,EAAM1Y,EAAKG,EAAIiU,IAAS,MAAOsE,EACrG,MAAMpT,GAAW,6ClJ4phBb,SAAU/F,EAAQC,EAASG,GmJzqhBjC,GAAI8R,GAAa,EAAQ,IACrB7L,EAAc,EAAQ,GACtB6xE,EAA4B,EAAQ,KACpCC,EAA8B,EAAQ,KACtC1wE,EAAW,EAAQ,GAEnB9B,EAASU,KAAeV,OAG5B3F,GAAOC,QAAUiS,EAAW,UAAW,YAAc,SAAiBtP,GACpE,GAAIkS,GAAOojE,EAA0Bj3E,EAAEwG,EAAS7E,IAC5CmV,EAAwBogE,EAA4Bl3E,CACxD,OAAO8W,GAAwBpS,EAAOmP,EAAMiD,EAAsBnV,IAAOkS,InJirhBrE,SAAU9U,EAAQC,EAASG,GoJ7rhBjC,GAAIK,GAAO,EAAQ,IACfgH,EAAW,EAAQ,GACnBjB,EAAa,EAAQ,GACrB0B,EAAU,EAAQ,IAClB6sE,EAAa,EAAQ,IAErBhvE,EAAaC,SAIjBhG,GAAOC,QAAU,SAAU8qE,EAAGtzD,GAC5B,GAAIvX,GAAO6qE,EAAE7qE,IACb,IAAIsG,EAAWtG,GAAO,CACpB,GAAI0L,GAASnL,EAAKP,EAAM6qE,EAAGtzD,EAE3B,OADe,QAAX7L,GAAiBnE,EAASmE,GACvBA,EAET,GAAmB,WAAf1D,EAAQ6iE,GAAiB,MAAOtqE,GAAKs0E,EAAYhK,EAAGtzD,EACxD,MAAM1R,GAAW,iDpJqshBb,SAAU/F,EAAQC,EAASG,GqJvthBjC,GAAIK,GAAO,EAAQ,IACf2C,EAAS,EAAQ,IACjBwP,EAAgB,EAAQ,IACxBwlE,EAAc,EAAQ,KAEtBzN,EAAkBp3D,OAAO/S,SAE7BR,GAAOC,QAAU,SAAU8qE,GACzB,GAAIt2D,GAAQs2D,EAAEt2D,KACd,YAAiBpS,KAAVoS,GAAyB,SAAWk2D,IAAqBvnE,EAAO2nE,EAAG,WAAYn4D,EAAc+3D,EAAiBI,GAC1Ft2D,EAAvBhU,EAAK23E,EAAarN,KrJ+thBlB,SAAU/qE,EAAQC,EAASG,GsJzuhBjC,GAAI6F,GAAQ,EAAQ,GAChBlF,EAAS,EAAQ,GAGjBs3E,EAAUt3E,EAAOwS,OAEjBO,EAAgB7N,EAAM,WACxB,GAAImO,GAAKikE,EAAQ,IAAK,IAEtB,OADAjkE,GAAGP,UAAY,EACW,MAAnBO,EAAGlU,KAAK,UAKbo4E,EAAgBxkE,GAAiB7N,EAAM,WACzC,OAAQoyE,EAAQ,IAAK,KAAK7jE,SAGxBT,EAAeD,GAAiB7N,EAAM,WAExC,GAAImO,GAAKikE,EAAQ,KAAM,KAEvB,OADAjkE,GAAGP,UAAY,EACU,MAAlBO,EAAGlU,KAAK,QAGjBF,GAAOC,SACL8T,aAAcA,EACdukE,cAAeA,EACfxkE,cAAeA,ItJivhBX,SAAU9T,EAAQC,EAASG,GuJ7whBjC,GAAI6F,GAAQ,EAAQ,GAChBlF,EAAS,EAAQ,GAGjBs3E,EAAUt3E,EAAOwS,MAErBvT,GAAOC,QAAUgG,EAAM,WACrB,GAAImO,GAAKikE,EAAQ,IAAK,IACtB,SAASjkE,EAAG2zD,QAAU3zD,EAAGlU,KAAK,OAAsB,MAAbkU,EAAGK,UvJqxhBtC,SAAUzU,EAAQC,EAASG,GwJ7xhBjC,GAAI6F,GAAQ,EAAQ,GAChBlF,EAAS,EAAQ,GAGjBs3E,EAAUt3E,EAAOwS,MAErBvT,GAAOC,QAAUgG,EAAM,WACrB,GAAImO,GAAKikE,EAAQ,UAAW,IAC5B,OAAiC,MAA1BjkE,EAAGlU,KAAK,KAAKqU,OAAOkG,GACI,OAA7B,IAAIpH,QAAQe,EAAI,YxJqyhBd,SAAUpU,EAAQC,GyJ3yhBxBD,EAAOC,QAAUiG,OAAO4gB,IAAM,SAAY7K,EAAGC,GAE3C,MAAOD,KAAMC,EAAU,IAAND,GAAW,EAAIA,GAAM,EAAIC,EAAID,GAAKA,GAAKC,GAAKA,IzJszhBzD,SAAUlc,EAAQC,EAASG,G0J3zhBjC,GAAIiG,GAAc,EAAQ,GACtB8O,EAAsB,EAAQ,IAC9BhN,EAAW,EAAQ,IACnBH,EAAyB,EAAQ,IAEjCyL,EAASpN,EAAY,GAAGoN,QACxBuC,EAAa3P,EAAY,GAAG2P,YAC5B5N,EAAc/B,EAAY,GAAGgC,OAE7BoF,EAAe,SAAU8qE,GAC3B,MAAO,UAAUrqE,EAAOqyC,GACtB,GAGInqC,GAAOoiE,EAHP/gE,EAAItP,EAASH,EAAuBkG,IACpCuqE,EAAWtjE,EAAoBorC,GAC/Bm4B,EAAOjhE,EAAEpQ,MAEb,OAAIoxE,GAAW,GAAKA,GAAYC,EAAaH,EAAoB,OAAKl2E,IACtE+T,EAAQJ,EAAWyB,EAAGghE,GACfriE,EAAQ,OAAUA,EAAQ,OAAUqiE,EAAW,IAAMC,IACtDF,EAASxiE,EAAWyB,EAAGghE,EAAW,IAAM,OAAUD,EAAS,MAC3DD,EACE9kE,EAAOgE,EAAGghE,GACVriE,EACFmiE,EACEnwE,EAAYqP,EAAGghE,EAAUA,EAAW,GACVD,EAAS,OAAlCpiE,EAAQ,OAAU,IAA0B,QAIzDpW,GAAOC,SAGL04E,OAAQlrE,GAAa,GAGrBgG,OAAQhG,GAAa,K1Jm0hBjB,SAAUzN,EAAQC,EAASG,G2Jr2hBjC,GAAIoqE,GAAuB,EAAQ,IAA8BphE,OAC7DnD,EAAQ,EAAQ,GAChBuiE,EAAc,EAAQ,KAEtBoQ,EAAM,KAIV54E,GAAOC,QAAU,SAAU4I,GACzB,MAAO5C,GAAM,WACX,QAASuiE,EAAY3/D,MAChB+vE,EAAI/vE,OAAmB+vE,GACtBpO,GAAwBhC,EAAY3/D,GAAahF,OAASgF,M3J82hB9D,SAAU7I,EAAQC,EAASG,G4J13hBjC,GAAIiG,GAAc,EAAQ,EAI1BrG,GAAOC,QAAUoG,EAAY,GAAI4xE,U5Ji4hB3B,SAAUj4E,EAAQC,EAASG,G6Jr4hBjC,GAAI+U,GAAsB,EAAQ,IAE9BE,EAAMxS,KAAKwS,GAIfrV,GAAOC,QAAU,SAAU0C,GACzB,MAAOA,GAAW,EAAI0S,EAAIF,EAAoBxS,GAAW,kBAAoB,I7J64hBzE,SAAU3C,EAAQC,G8Jp5hBxB,GAAI8F,GAAaC,SAEjBhG,GAAOC,QAAU,SAAU44E,EAAQjyC,GACjC,GAAIiyC,EAASjyC,EAAU,KAAM7gC,GAAW,uBACxC,OAAO8yE,K9J45hBH,SAAU74E,EAAQC,EAASG,G+Jh6hBjC,GAAIW,GAAS,EAAQ,GACjByF,EAAa,EAAQ,GAErBkL,EAAU3Q,EAAO2Q,OAErB1R,GAAOC,QAAUuG,EAAWkL,IAAY,cAAcvB,KAAKrK,OAAO4L,K/Ju6hB5D,SAAU1R,EAAQC,EAASG,GAEjC,YgK76hBA,IAAI0L,GAAI,EAAQ,GACZgtE,EAAS,EAAQ,IAAgClqE,KAOrD9C,IAAIrK,OAAQ,QAASgL,OAAO,EAAMrK,QANR,EAAQ,IAEM,WAKtCwM,MAAO,SAAeT,GACpB,MAAO2qE,GAAO51E,KAAMiL,EAAYrN,UAAUuG,OAAS,EAAIvG,UAAU,OAAKuB,QhKs7hBpE,SAAUrC,EAAQC,EAASG,GAEjC,YiKl8hBA,IAAI0L,GAAI,EAAQ,GACZitE,EAAY,EAAQ,IAA+B9nE,SACnDhL,EAAQ,EAAQ,GAChBkjE,EAAmB,EAAQ,GAS/Br9D,IAAIrK,OAAQ,QAASgL,OAAO,EAAMrK,OANX6D,EAAM,WAC3B,OAAQwD,MAAM,GAAGwH,eAMjBA,SAAU,SAAkBF,GAC1B,MAAOgoE,GAAU71E,KAAM6N,EAAIjQ,UAAUuG,OAAS,EAAIvG,UAAU,OAAKuB,OAKrE8mE,EAAiB,ajKy8hBX,SAAUnpE,EAAQC,EAASG,GkK79hBzB,EAAQ,IAKZqB,OAAQ,QAASQ,MAAM,IACzByH,QALY,EAAQ,OlK0+hBhB,SAAU1J,EAAQC,EAASG,GAEjC,YmK5+hBA,IAAI0L,GAAI,EAAQ,GACZktE,EAAU,EAAQ,KAA6Bv4B,KAC/C6oB,EAAsB,EAAQ,IAC9B2P,EAAiB,EAAQ,IACzBC,EAAU,EAAQ,KAElBzP,EAAgBH,EAAoB,UAGpC6P,GAAcD,GAAWD,EAAiB,IAAMA,EAAiB,EAIrEntE,IAAIrK,OAAQ,QAASgL,OAAO,EAAMrK,QAASqnE,GAAiB0P,IAC1DjpD,OAAQ,SAAgB/hB,GACtB,GAAI9G,GAASvG,UAAUuG,MACvB,OAAO2xE,GAAQ91E,KAAMiL,EAAY9G,EAAQA,EAAS,EAAIvG,UAAU,OAAKuB,QnKq/hBnE,SAAUrC,EAAQC,EAASG,GAEjC,YoKvgiBA,IAAI0L,GAAI,EAAQ,GACZxF,EAAW,EAAQ,IACnBuK,EAAkB,EAAQ,IAC1BsE,EAAsB,EAAQ,IAC9BpJ,EAAoB,EAAQ,IAC5BmB,EAAiB,EAAQ,IACzBlB,EAA2B,EAAQ,IACnCE,EAAqB,EAAQ,IAC7BD,EAAiB,EAAQ,IACzBmtE,EAAwB,EAAQ,IAChCjtE,EAA+B,EAAQ,IAEvC09D,EAAsB19D,EAA6B,UAEnDiJ,EAAMvS,KAAKuS,IACXC,EAAMxS,KAAKwS,GAKfvJ,IAAIrK,OAAQ,QAASgL,OAAO,EAAMrK,QAASynE,IACzC1vD,OAAQ,SAAgBW,EAAOu+D,GAC7B,GAIIC,GAAaC,EAAmBvsE,EAAGH,EAAGuiB,EAAMnU,EAJ5CtU,EAAIL,EAASpD,MACb4J,EAAMf,EAAkBpF,GACxB6yE,EAAc3oE,EAAgBiK,EAAOhO,GACrC4mE,EAAkB5yE,UAAUuG,MAahC,KAXwB,IAApBqsE,EACF4F,EAAcC,EAAoB,EACL,IAApB7F,GACT4F,EAAc,EACdC,EAAoBzsE,EAAM0sE,IAE1BF,EAAc5F,EAAkB,EAChC6F,EAAoBlkE,EAAID,EAAID,EAAoBkkE,GAAc,GAAIvsE,EAAM0sE,IAE1ExtE,EAAyBc,EAAMwsE,EAAcC,GAC7CvsE,EAAId,EAAmBvF,EAAG4yE,GACrB1sE,EAAI,EAAGA,EAAI0sE,EAAmB1sE,KACjCuiB,EAAOoqD,EAAc3sE,IACTlG,IAAGsF,EAAee,EAAGH,EAAGlG,EAAEyoB,GAGxC,IADApiB,EAAE3F,OAASkyE,EACPD,EAAcC,EAAmB,CACnC,IAAK1sE,EAAI2sE,EAAa3sE,EAAIC,EAAMysE,EAAmB1sE,IACjDuiB,EAAOviB,EAAI0sE,EACXt+D,EAAKpO,EAAIysE,EACLlqD,IAAQzoB,GAAGA,EAAEsU,GAAMtU,EAAEyoB,GACpBgqD,EAAsBzyE,EAAGsU,EAEhC,KAAKpO,EAAIC,EAAKD,EAAIC,EAAMysE,EAAoBD,EAAazsE,IAAKusE,EAAsBzyE,EAAGkG,EAAI,OACtF,IAAIysE,EAAcC,EACvB,IAAK1sE,EAAIC,EAAMysE,EAAmB1sE,EAAI2sE,EAAa3sE,IACjDuiB,EAAOviB,EAAI0sE,EAAoB,EAC/Bt+D,EAAKpO,EAAIysE,EAAc,EACnBlqD,IAAQzoB,GAAGA,EAAEsU,GAAMtU,EAAEyoB,GACpBgqD,EAAsBzyE,EAAGsU,EAGlC,KAAKpO,EAAI,EAAGA,EAAIysE,EAAazsE,IAC3BlG,EAAEkG,EAAI2sE,GAAe14E,UAAU+L,EAAI,EAGrC,OADAK,GAAevG,EAAGmG,EAAMysE,EAAoBD,GACrCtsE,MpKghiBL,SAAUhN,EAAQC,EAASG,GAEjC,YqKjliBA,IAAI0L,GAAI,EAAQ,GACZxF,EAAW,EAAQ,IACnByF,EAAoB,EAAQ,IAC5BmB,EAAiB,EAAQ,IACzBksE,EAAwB,EAAQ,IAChCptE,EAA2B,EAAQ,IAGnCytE,EAAqC,OAAfhxC,QAAQ,GAG9Bp7B,GAAiC,WACnC,IAEEnH,OAAOC,kBAAmB,UAAYc,UAAU,IAASwhC,UACzD,MAAOtoC,GACP,MAAOA,aAAiB6F,cAM5B8F,IAAIrK,OAAQ,QAASgL,OAAO,EAAMC,MAAO,EAAGtK,OAAQq3E,GAAoBpsE,IAEtEo7B,QAAS,SAAiBn7B,GACxB,GAAI3G,GAAIL,EAASpD,MACb4J,EAAMf,EAAkBpF,GACxB4G,EAAWzM,UAAUuG,MACzB,IAAIkG,EAAU,CACZvB,EAAyBc,EAAMS,EAE/B,KADA,GAAIV,GAAIC,EACDD,KAAK,CACV,GAAIoO,GAAKpO,EAAIU,CACTV,KAAKlG,GAAGA,EAAEsU,GAAMtU,EAAEkG,GACjBusE,EAAsBzyE,EAAGsU,GAEhC,IAAK,GAAInE,GAAI,EAAGA,EAAIvJ,EAAUuJ,IAC5BnQ,EAAEmQ,GAAKhW,UAAUgW,GAEnB,MAAO5J,GAAevG,EAAGmG,EAAMS,OrK0liB/B,SAAUvN,EAAQC,EAASG,GAEjC,YsKnoiBA,IAAI0L,GAAI,EAAQ,GACZzF,EAAc,EAAQ,GACtBqzE,EAAa,EAAQ,KACrB1xE,EAAyB,EAAQ,IACjCG,EAAW,EAAQ,IACnBwxE,EAAuB,EAAQ,KAE/BC,EAAgBvzE,EAAY,GAAG6K,QAInCpF,IAAIrK,OAAQ,SAAUgL,OAAO,EAAMrK,QAASu3E,EAAqB,cAC/D1oE,SAAU,SAAkB4oE,GAC1B,SAAUD,EACRzxE,EAASH,EAAuB9E,OAChCiF,EAASuxE,EAAWG,IACpB/4E,UAAUuG,OAAS,EAAIvG,UAAU,OAAKuB,QtK6oiBtC,SAAUrC,EAAQC,EAASG,GAEjC,YuK/piBA,IAAI0L,GAAI,EAAQ,GACZguE,EAAQ,EAAQ,KAA4BlkE,IAKhD9J,IAAIrK,OAAQ,SAAUgL,OAAO,EAAMrK,OAJN,EAAQ,KAI6B,UAChEwT,KAAM,WACJ,MAAOkkE,GAAM52E,UvKwqiBX,SAAUlD,EAAQC,EAASG,GwKjriBjC,GAAI0L,GAAI,EAAQ,GACZ/K,EAAS,EAAQ,GACjBunE,EAAc,EAAQ,KAA+BA,WAIzDx8D,IAAI/K,QAAQ,EAAMJ,MAAM,EAAMyB,OAAQrB,EAAOunE,cAAgBA,IAC3DA,YAAaA,KxKyriBT,SAAUtoE,EAAQC,EAASG,GyKhsiBjC,GAAI0L,GAAI,EAAQ,GACZ/K,EAAS,EAAQ,GACjB+xB,EAAa,EAAQ,KAA+BA,UAIxDhnB,IAAI/K,QAAQ,EAAMJ,MAAM,EAAMyB,OAAQrB,EAAO+xB,aAAeA,IAC1DA,WAAYA,KzKusiBL,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CAEH,SAAU9yB,EAAQC,EAASG,I0K1tiBjC,6BACI,YAYA,SAASu3D,GAAaxzB,GAEI,kBAAbA,KACTA,EAAW,GAAI5jC,UAAS,GAAK4jC,GAI/B,KAAK,GADDnN,GAAO,GAAIvtB,OAAM3I,UAAUuG,OAAS,GAC/BuF,EAAI,EAAGA,EAAIoqB,EAAK3vB,OAAQuF,IAC7BoqB,EAAKpqB,GAAK9L,UAAU8L,EAAI,EAG5B,IAAImtE,IAAS51C,SAAUA,EAAUnN,KAAMA,EAGvC,OAFAgjD,GAAcC,GAAcF,EAC5BG,EAAkBD,GACXA,IAGT,QAASE,GAAeC,SACbJ,GAAcI,GAGzB,QAASrkD,GAAIgkD,GACT,GAAI51C,GAAW41C,EAAK51C,SAChBnN,EAAO+iD,EAAK/iD,IAChB,QAAQA,EAAK3vB,QACb,IAAK,GACD88B,GACA,MACJ,KAAK,GACDA,EAASnN,EAAK,GACd,MACJ,KAAK,GACDmN,EAASnN,EAAK,GAAIA,EAAK,GACvB,MACJ,KAAK,GACDmN,EAASnN,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAChC,MACJ,SACImN,EAAStjC,MAAMwB,EAAW20B,IAKlC,QAASqjD,GAAaD,GAGlB,GAAIE,EAGAxnD,WAAWunD,EAAc,EAAGD,OACzB,CACH,GAAIL,GAAOC,EAAcI,EACzB,IAAIL,EAAM,CACNO,GAAwB,CACxB,KACIvkD,EAAIgkD,GACN,QACEI,EAAeC,GACfE,GAAwB,KApExC,IAAIv5E,EAAO42D,aAAX,CAIA,GAIIuiB,GAJAD,EAAa,EACbD,KACAM,GAAwB,EACxBC,EAAMx5E,EAAOqK,SAoJbovE,EAAWt0E,OAAO8c,gBAAkB9c,OAAO8c,eAAejiB,EAC9Dy5E,GAAWA,GAAYA,EAAS1nD,WAAa0nD,EAAWz5E,EAGf,wBAAlCoH,SAAS1H,KAAKM,EAAO+O,SArF5B,WACIoqE,EAAoB,SAASE,GACzBtqE,EAAQ+oB,SAAS,WAAcwhD,EAAaD,SAIpD,WAGI,GAAIr5E,EAAO8wE,cAAgB9wE,EAAOuwE,cAAe,CAC7C,GAAImJ,IAA4B,EAC5BC,EAAe35E,EAAO4wE,SAM1B,OALA5wE,GAAO4wE,UAAY,WACf8I,GAA4B,GAEhC15E,EAAO8wE,YAAY,GAAI,KACvB9wE,EAAO4wE,UAAY+I,EACZD,MAIf,WAKI,GAAIE,GAAgB,gBAAkB93E,KAAKmmE,SAAW,IAClD4R,EAAkB,SAASn2D,GACvBA,EAAMjjB,SAAWT,GACK,gBAAf0jB,GAAMjH,MACyB,IAAtCiH,EAAMjH,KAAKtM,QAAQypE,IACnBN,GAAc51D,EAAMjH,KAAKnV,MAAMsyE,EAActzE,SAIjDtG,GAAOsvC,iBACPtvC,EAAOsvC,iBAAiB,UAAWuqC,GAAiB,GAEpD75E,EAAO85E,YAAY,YAAaD,GAGpCV,EAAoB,SAASE,GACzBr5E,EAAO8wE,YAAY8I,EAAgBP,EAAQ,SAmDxCr5E,EAAOwwE,eA/ClB,WACI,GAAIE,GAAU,GAAIF,eAClBE,GAAQC,MAAMC,UAAY,SAASltD,GAE/B41D,EADa51D,EAAMjH,OAIvB08D,EAAoB,SAASE,GACzB3I,EAAQG,MAAMC,YAAYuI,OA2CvBG,GAAO,sBAAwBA,GAAIvvC,cAAc,UAvC5D,WACI,GAAIjhC,GAAOwwE,EAAIjU,eACf4T,GAAoB,SAASE,GAGzB,GAAIU,GAASP,EAAIvvC,cAAc,SAC/B8vC,GAAOC,mBAAqB,WACxBV,EAAaD,GACbU,EAAOC,mBAAqB,KAC5BhxE,EAAKiiC,YAAY8uC,GACjBA,EAAS,MAEb/wE,EAAKkB,YAAY6vE,OAIzB,WACIZ,EAAoB,SAASE,GACzBtnD,WAAWunD,EAAc,EAAGD,OA8BpCI,EAAS7iB,aAAeA,EACxB6iB,EAASL,eAAiBA,IACZ,mBAATl3E,UAAyC,KAAXlC,EAAyBmC,KAAOnC,EAASkC,Q1K8tiBnDxC,KAAKR,EAASG,EAAoB,IAAKA,EAAoB,OAIlF,SAAUJ,EAAQC,EAASG,I2K35iBjC,YAoBA,QAAS46E,GAAQnyD,EAAIoyD,GACnB/3E,KAAKg4E,IAAMryD,EACX3lB,KAAKi4E,SAAWF,EAtBlB,qBAC6B,mBAATh4E,OAAwBA,MAChCD,OACRnC,EAAQN,SAASC,UAAUK,KAI/BZ,GAAQ6yB,WAAa,WACnB,MAAO,IAAIkoD,GAAQn6E,EAAMJ,KAAKqyB,WAAYiI,EAAOj6B,WAAYyxB,eAE/DtyB,EAAQqoE,YAAc,WACpB,MAAO,IAAI0S,GAAQn6E,EAAMJ,KAAK6nE,YAAavtC,EAAOj6B,WAAYs6E,gBAEhEn7E,EAAQsyB,aACRtyB,EAAQm7E,cAAgB,SAASroD,GAC3BA,GACFA,EAAQtoB,SAQZuwE,EAAQx6E,UAAUyhB,MAAQ+4D,EAAQx6E,UAAUshB,IAAM,aAClDk5D,EAAQx6E,UAAUiK,MAAQ,WACxBvH,KAAKi4E,SAAS16E,KAAKs6B,EAAO73B,KAAKg4E,MAIjCj7E,EAAQo7E,OAAS,SAAS/tE,EAAMguE,GAC9B/oD,aAAajlB,EAAKiuE,gBAClBjuE,EAAKkuE,aAAeF,GAGtBr7E,EAAQw7E,SAAW,SAASnuE,GAC1BilB,aAAajlB,EAAKiuE,gBAClBjuE,EAAKkuE,cAAgB,GAGvBv7E,EAAQy7E,aAAez7E,EAAQo6B,OAAS,SAAS/sB,GAC/CilB,aAAajlB,EAAKiuE,eAElB,IAAID,GAAQhuE,EAAKkuE,YACbF,IAAS,IACXhuE,EAAKiuE,eAAiBzoD,WAAW,WAC3BxlB,EAAKquE,YACPruE,EAAKquE,cACNL,KAKP,EAAQ,KAIRr7E,EAAQ03D,aAAgC,mBAAT10D,OAAwBA,KAAK00D,kBAClB,KAAX52D,GAA0BA,EAAO42D,cACxCz0D,MAAQA,KAAKy0D,aACrC13D,EAAQk6E,eAAkC,mBAATl3E,OAAwBA,KAAKk3E,oBAClB,KAAXp5E,GAA0BA,EAAOo5E,gBACxCj3E,MAAQA,KAAKi3E,iB3K+5iBV15E,KAAKR,EAASG,EAAoB,MAGtD,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CACA,CAEH,SAAUJ,EAAQyQ,EAAqBrQ,GAE7C,Y4K1/iBe,SAASw7E,GAAcC,EAAU9hE,GAG9C,IAAK,GAFDqgC,MACA0hC,KACKlvE,EAAI,EAAGA,EAAImN,EAAK1S,OAAQuF,IAAK,CACpC,GAAIU,GAAOyM,EAAKnN,GACZic,EAAKvb,EAAK,GACV+rC,EAAM/rC,EAAK,GACXyuE,EAAQzuE,EAAK,GACb0uE,EAAY1uE,EAAK,GACjB2uE,GACFpzD,GAAIgzD,EAAW,IAAMjvE,EACrBysC,IAAKA,EACL0iC,MAAOA,EACPC,UAAWA,EAERF,GAAUjzD,GAGbizD,EAAUjzD,GAAIqzD,MAAM9uE,KAAK6uE,GAFzB7hC,EAAOhtC,KAAK0uE,EAAUjzD,IAAQA,GAAIA,EAAIqzD,OAAQD,KAKlD,MAAO7hC,GAzBT,O5K+hjBM,SAAUp6C,EAAQyQ,EAAqBrQ,GAE7C,c6KjijBA;;;;;AAKA,QAAS+7E,GAAYj0C,GAuBnB,QAASk0C,KACP,GAAI76E,GAAU2B,KAAKskB,QAEfjmB,GAAQuQ,MACV5O,KAAKm5E,OAAkC,kBAAlB96E,GAAQuQ,MACzBvQ,EAAQuQ,QACRvQ,EAAQuQ,MACHvQ,EAAQ2D,QAAU3D,EAAQ2D,OAAOm3E,SAC1Cn5E,KAAKm5E,OAAS96E,EAAQ2D,OAAOm3E,QA5BjC,GAFct0C,OAAOG,EAAIt4B,QAAQM,MAAM,KAAK,KAE7B,EACbg4B,EAAIU,OAAQpjC,aAAc42E,QACrB,CAGL,GAAIj0C,GAAQD,EAAI1nC,UAAU2nC,KAC1BD,GAAI1nC,UAAU2nC,MAAQ,SAAU5mC,OACb,KAAZA,IAAqBA,MAE1BA,EAAQ83D,KAAO93D,EAAQ83D,MAClB+iB,GAAUz2E,OAAOpE,EAAQ83D,MAC1B+iB,EACJj0C,EAAM1nC,KAAKyC,KAAM3B,KA4BvB,QAAS+6E,GAAexqE,GACjByqE,IAELzqE,EAAM0qE,aAAeD,EAErBA,EAAYxtD,KAAK,YAAajd,GAE9ByqE,EAAYr/D,GAAG,uBAAwB,SAAUu/D,GAC/C3qE,EAAM4qE,aAAaD,KAGrB3qE,EAAMo8D,UAAU,SAAUyO,EAAU9qE,GAClC0qE,EAAYxtD,KAAK,gBAAiB4tD,EAAU9qE,KACzC+qE,SAAS,IAEd9qE,EAAM+qE,gBAAgB,SAAUC,EAAQjrE,GACtC0qE,EAAYxtD,KAAK,cAAe+tD,EAAQjrE,KACrC+qE,SAAS,KAWhB,QAAS/tE,GAAMkL,EAAM9Y,GACnB,MAAO8Y,GAAKrL,OAAOzN,GAAG,GAYxB,QAAS87E,GAAU31E,EAAKiT,GAItB,OAHe,KAAVA,IAAmBA,MAGZ,OAARjT,GAA+B,gBAARA,GACzB,MAAOA,EAIT,IAAI41E,GAAMnuE,EAAKwL,EAAO,SAAUe,GAAK,MAAOA,GAAEs7C,WAAatvD,GAC3D,IAAI41E,EACF,MAAOA,GAAIC,IAGb,IAAIA,GAAOxzE,MAAMC,QAAQtC,QAYzB,OATAiT,GAAMjN,MACJspD,SAAUtvD,EACV61E,KAAMA,IAGR/2E,OAAO4O,KAAK1N,GAAKoH,QAAQ,SAAU9M,GACjCu7E,EAAKv7E,GAAOq7E,EAAS31E,EAAI1F,GAAM2Y,KAG1B4iE,EAMT,QAASC,GAAc91E,EAAKxG,GAC1BsF,OAAO4O,KAAK1N,GAAKoH,QAAQ,SAAU9M,GAAO,MAAOd,GAAGwG,EAAI1F,GAAMA,KAGhE,QAASkE,GAAUwB,GACjB,MAAe,QAARA,GAA+B,gBAARA,GAGhC,QAASmS,GAAWJ,GAClB,MAAOA,IAA2B,kBAAbA,GAAIK,KAO3B,QAAS2jE,GAASv8E,EAAI+L,GACpB,MAAO,YACL,MAAO/L,GAAG+L,IA4Jd,QAAS2tB,GAAQhe,EAAM8gE,EAAcC,GASnC,GAHAD,EAAa9iD,OAAO+iD,GAGhBA,EAAUvrC,QACZ,IAAK,GAAIpwC,KAAO27E,GAAUvrC,QAAS,CACjC,IAAKsrC,EAAaE,SAAS57E,GAOzB,MAEF44B,GACEhe,EAAK3W,OAAOjE,GACZ07E,EAAaE,SAAS57E,GACtB27E,EAAUvrC,QAAQpwC,KAuT1B,QAAS67E,GAAkB38E,EAAIu1D,EAAM50D,GAMnC,MALI40D,GAAKjlD,QAAQtQ,GAAM,IACrBW,GAAWA,EAAQq7E,QACfzmB,EAAK1tB,QAAQ7nC,GACbu1D,EAAK/oD,KAAKxM,IAET,WACL,GAAIgM,GAAIupD,EAAKjlD,QAAQtQ,EACjBgM,IAAK,GACPupD,EAAKh8C,OAAOvN,EAAG,IAKrB,QAAS4wE,GAAY1rE,EAAO2rE,GAC1B3rE,EAAM4rE,SAAWx3E,OAAOwF,OAAO,MAC/BoG,EAAM6rE,WAAaz3E,OAAOwF,OAAO,MACjCoG,EAAM8rE,gBAAkB13E,OAAOwF,OAAO,MACtCoG,EAAM+rE,qBAAuB33E,OAAOwF,OAAO,KAC3C,IAAImG,GAAQC,EAAMD,KAElBisE,GAAchsE,EAAOD,KAAWC,EAAMisE,SAASv4B,MAAM,GAErDw4B,EAAalsE,EAAOD,EAAO4rE,GAG7B,QAASO,GAAclsE,EAAOD,EAAO4rE,GACnC,GAAIQ,GAAQnsE,EAAMgnD,GAGlBhnD,GAAMosE,WAENpsE,EAAMqsE,uBAAyBj4E,OAAOwF,OAAO,KAC7C,IAAI0yE,GAAiBtsE,EAAM8rE,gBACvBz6D,IACJ+5D,GAAakB,EAAgB,SAAUx9E,EAAIc,GAIzCyhB,EAASzhB,GAAOy7E,EAAQv8E,EAAIkR,GAC5B5L,OAAOC,eAAe2L,EAAMosE,QAASx8E,GACnC0E,IAAK,WAAc,MAAO0L,GAAMgnD,IAAIp3D,IACpCmF,YAAY,KAOhB,IAAIwtD,GAASnsB,EAAIjhB,OAAOotC,MACxBnsB,GAAIjhB,OAAOotC,QAAS,EACpBviD,EAAMgnD,IAAM,GAAI5wB,IACd1qB,MACE6gE,QAASxsE,GAEXsR,SAAUA,IAEZ+kB,EAAIjhB,OAAOotC,OAASA,EAGhBviD,EAAMwsE,QACRC,EAAiBzsE,GAGfmsE,IACER,GAGF3rE,EAAM0sE,YAAY,WAChBP,EAAMz+C,MAAM6+C,QAAU,OAG1Bn2C,EAAIrP,SAAS,WAAc,MAAOolD,GAAMh0C,cAI5C,QAAS6zC,GAAehsE,EAAO2sE,EAAWniE,EAAMtc,EAAQy9E,GACtD,GAAI59C,IAAUvjB,EAAKjV,OACfkC,EAAYuI,EAAMisE,SAASW,aAAapiE,EAW5C,IARItc,EAAO2+E,aACL7sE,EAAM+rE,qBAAqBt0E,GAG/BuI,EAAM+rE,qBAAqBt0E,GAAavJ,IAIrC6/B,IAAW49C,EAAK,CACnB,GAAImB,GAAcC,EAAeJ,EAAWniE,EAAKjU,MAAM,GAAI,IACvDy2E,EAAaxiE,EAAKA,EAAKjV,OAAS,EACpCyK,GAAM0sE,YAAY,WAQhBt2C,EAAI32B,IAAIqtE,EAAaE,EAAY9+E,EAAO6R,SAI5C,GAAI4+D,GAAQzwE,EAAO+E,QAAUg6E,EAAiBjtE,EAAOvI,EAAW+S,EAEhEtc,GAAOg/E,gBAAgB,SAAUrC,EAAUj7E,GAEzCu9E,EAAiBntE,EADIvI,EAAY7H,EACOi7E,EAAUlM,KAGpDzwE,EAAOk/E,cAAc,SAAUpC,EAAQp7E,GACrC,GAAI6C,GAAOu4E,EAAOt3B,KAAO9jD,EAAM6H,EAAY7H,EACvCs6B,EAAU8gD,EAAO9gD,SAAW8gD,CAChCqC,GAAertE,EAAOvN,EAAMy3B,EAASy0C,KAGvCzwE,EAAOo/E,cAAc,SAAUz/D,EAAQje,GAErC29E,EAAevtE,EADMvI,EAAY7H,EACKie,EAAQ8wD,KAGhDzwE,EAAOs/E,aAAa,SAAUz3D,EAAOnmB,GACnCo8E,EAAchsE,EAAO2sE,EAAWniE,EAAK3W,OAAOjE,GAAMmmB,EAAO41D,KAQ7D,QAASsB,GAAkBjtE,EAAOvI,EAAW+S,GAC3C,GAAIijE,GAA4B,KAAdh2E,EAEdknE,GACF+O,SAAUD,EAAcztE,EAAM0tE,SAAW,SAAUC,EAAOC,EAAUC,GAClE,GAAI3oD,GAAO4oD,EAAiBH,EAAOC,EAAUC,GACzCE,EAAU7oD,EAAK6oD,QACft+E,EAAUy1B,EAAKz1B,QACfgD,EAAOyyB,EAAKzyB,IAUhB,OARKhD,IAAYA,EAAQikD,OACvBjhD,EAAOgF,EAAYhF,GAOduN,EAAM0tE,SAASj7E,EAAMs7E,IAG9BC,OAAQP,EAAcztE,EAAMguE,OAAS,SAAUL,EAAOC,EAAUC,GAC9D,GAAI3oD,GAAO4oD,EAAiBH,EAAOC,EAAUC,GACzCE,EAAU7oD,EAAK6oD,QACft+E,EAAUy1B,EAAKz1B,QACfgD,EAAOyyB,EAAKzyB,IAEXhD,IAAYA,EAAQikD,OACvBjhD,EAAOgF,EAAYhF,GAOrBuN,EAAMguE,OAAOv7E,EAAMs7E,EAASt+E,IAiBhC,OAXA2E,QAAOkS,iBAAiBq4D,GACtByN,SACE93E,IAAKm5E,EACD,WAAc,MAAOztE,GAAMosE,SAC3B,WAAc,MAAO6B,GAAiBjuE,EAAOvI,KAEnDsI,OACEzL,IAAK,WAAc,MAAOy4E,GAAe/sE,EAAMD,MAAOyK,OAInDm0D,EAGT,QAASsP,GAAkBjuE,EAAOvI,GAChC,IAAKuI,EAAMqsE,uBAAuB50E,GAAY,CAC5C,GAAIy2E,MACAC,EAAW12E,EAAUlC,MACzBnB,QAAO4O,KAAKhD,EAAMosE,SAAS1vE,QAAQ,SAAUjK,GAE3C,GAAIA,EAAK8D,MAAM,EAAG43E,KAAc12E,EAAhC,CAGA,GAAI22E,GAAY37E,EAAK8D,MAAM43E,EAK3B/5E,QAAOC,eAAe65E,EAAcE,GAClC95E,IAAK,WAAc,MAAO0L,GAAMosE,QAAQ35E,IACxCsC,YAAY,OAGhBiL,EAAMqsE,uBAAuB50E,GAAay2E,EAG5C,MAAOluE,GAAMqsE,uBAAuB50E,GAGtC,QAAS01E,GAAkBntE,EAAOvN,EAAMy3B,EAASy0C,IACnC3+D,EAAM6rE,WAAWp5E,KAAUuN,EAAM6rE,WAAWp5E,QAClD6I,KAAK,SAAiCyyE,GAC1C7jD,EAAQv7B,KAAKqR,EAAO2+D,EAAM5+D,MAAOguE,KAIrC,QAASV,GAAgBrtE,EAAOvN,EAAMy3B,EAASy0C,IACjC3+D,EAAM4rE,SAASn5E,KAAUuN,EAAM4rE,SAASn5E,QAC9C6I,KAAK,SAA+ByyE,GACxC,GAAInoE,GAAMskB,EAAQv7B,KAAKqR,GACrB0tE,SAAU/O,EAAM+O,SAChBM,OAAQrP,EAAMqP,OACd5B,QAASzN,EAAMyN,QACfrsE,MAAO4+D,EAAM5+D,MACbsuE,YAAaruE,EAAMosE,QACnBO,UAAW3sE,EAAMD,OAChBguE,EAIH,OAHKtmE,GAAU7B,KACbA,EAAMklB,QAAQpK,QAAQ9a,IAEpB5F,EAAM0qE,aACD9kE,EAAI+B,MAAM,SAAUmiB,GAEzB,KADA9pB,GAAM0qE,aAAaztD,KAAK,aAAc6M,GAChCA,IAGDlkB,IAKb,QAAS2nE,GAAgBvtE,EAAOvN,EAAM67E,EAAW3P,GAC3C3+D,EAAM8rE,gBAAgBr5E,KAM1BuN,EAAM8rE,gBAAgBr5E,GAAQ,SAAwBuN,GACpD,MAAOsuE,GACL3P,EAAM5+D,MACN4+D,EAAMyN,QACNpsE,EAAMD,MACNC,EAAMosE,WAKZ,QAASK,GAAkBzsE,GACzBA,EAAMgnD,IAAIl4B,OAAO,WAAc,MAAO19B,MAAKs8B,MAAM6+C,SAAW,cAIvD9kD,MAAM,EAAM8wB,MAAM,IAGzB,QAASw0B,GAAgBhtE,EAAOyK,GAC9B,MAAOA,GAAK4T,OAAO,SAAUre,EAAOnQ,GAAO,MAAOmQ,GAAMnQ,IAASmQ,GAGnE,QAAS+tE,GAAkBr7E,EAAMs7E,EAASt+E,GAWxC,MAVIqE,GAASrB,IAASA,EAAKA,OACzBhD,EAAUs+E,EACVA,EAAUt7E,EACVA,EAAOA,EAAKA,OAOLA,KAAMA,EAAMs7E,QAASA,EAASt+E,QAASA,GAGlD,QAASmnC,GAAS23C,GACZn4C,GAAOm4C,IAASn4C,IAQpBA,EAAMm4C,EACNlE,EAAWj0C,IAmKb,QAASo4C,GAAc7xE,GACrB,MAAK8xE,GAAW9xE,GAGThF,MAAMC,QAAQ+E,GACjBA,EAAIA,IAAI,SAAU/M,GAAO,OAAUA,IAAKA,EAAKyX,IAAKzX,KAClDwE,OAAO4O,KAAKrG,GAAKA,IAAI,SAAU/M,GAAO,OAAUA,IAAKA,EAAKyX,IAAK1K,EAAI/M,SAQzE,QAAS6+E,GAAY9xE,GACnB,MAAOhF,OAAMC,QAAQ+E,IAAQ7I,EAAS6I,GAQxC,QAAS+xE,GAAoB5/E,GAC3B,MAAO,UAAU2I,EAAWkF,GAO1B,MANyB,gBAAdlF,IACTkF,EAAMlF,EACNA,EAAY,IACwC,MAA3CA,EAAUkK,OAAOlK,EAAUlC,OAAS,KAC7CkC,GAAa,KAER3I,EAAG2I,EAAWkF,IAWzB,QAASgyE,GAAsB3uE,EAAO4uE,EAAQn3E,GAK5C,MAJauI,GAAM+rE,qBAAqBt0E,GAS1C,QAASo3E,GAAc7+D,OACR,KAARA,IAAiBA,KACtB,IAAI8+D,GAAY9+D,EAAI8+D,cAA8B,KAAdA,IAAuBA,GAAY,EACvE,IAAIlyE,GAASoT,EAAIpT,WAAwB,KAAXA,IAAoBA,EAAS,SAAUiuE,EAAUkE,EAAaC,GAAc,OAAO,GACjH,IAAIC,GAAcj/D,EAAIi/D,gBAAkC,KAAhBA,IAAyBA,EAAc,SAAUlvE,GAAS,MAAOA,IACzG,IAAImvE,GAAsBl/D,EAAIk/D,wBAAkD,KAAxBA,IAAiCA,EAAsB,SAAUC,GAAO,MAAOA,IACvI,IAAIC,GAAep/D,EAAIo/D,iBAAoC,KAAjBA,IAA0BA,EAAe,SAAUpE,EAAQjrE,GAAS,OAAO,GACrH,IAAIsvE,GAAoBr/D,EAAIq/D,sBAA8C,KAAtBA,IAA+BA,EAAoB,SAAUC,GAAO,MAAOA,IAC/H,IAAIC,GAAev/D,EAAIu/D,iBAAoC,KAAjBA,IAA0BA,GAAe,EACnF,IAAIC,GAAax/D,EAAIw/D,eAAgC,KAAfA,IAAwBA,GAAa,EAC3E,IAAIC,GAASz/D,EAAIy/D,MAEjB,YAFyC,KAAXA,IAAoBA,EAASllD,SAEpD,SAAUvqB,GACf,GAAI0vE,GAAYzE,EAASjrE,EAAMD,WAET,KAAX0vE,IAIPF,GACFvvE,EAAMo8D,UAAU,SAAUyO,EAAU9qE,GAClC,GAAI4vE,GAAY1E,EAASlrE,EAEzB,IAAInD,EAAOiuE,EAAU6E,EAAWC,GAAY,CAC1C,GAAIC,GAAgBC,IAChBC,EAAoBZ,EAAoBrE,GACxCl1C,EAAU,YAAek1C,EAAa,KAAI+E,CAE9CG,GAAaN,EAAQ95C,EAASm5C,GAC9BW,EAAOO,IAAI,gBAAiB,oCAAqCf,EAAYS,IAC7ED,EAAOO,IAAI,cAAe,oCAAqCF,GAC/DL,EAAOO,IAAI,gBAAiB,oCAAqCf,EAAYU,IAC7EM,EAAWR,GAGbC,EAAYC,IAIZH,GACFxvE,EAAM+qE,gBAAgB,SAAUC,EAAQjrE,GACtC,GAAIqvE,EAAapE,EAAQjrE,GAAQ,CAC/B,GAAI6vE,GAAgBC,IAChBK,EAAkBb,EAAkBrE,GACpCr1C,EAAU,UAAaq1C,EAAW,KAAI4E,CAE1CG,GAAaN,EAAQ95C,EAASm5C,GAC9BW,EAAOO,IAAI,YAAa,oCAAqCE,GAC7DD,EAAWR,QAOrB,QAASM,GAAcN,EAAQ95C,EAASm5C,GACtC,GAAIiB,GAAejB,EACfW,EAAOU,eACPV,EAAOptE,KAGX,KACE0tE,EAAaphF,KAAK8gF,EAAQ95C,GAC1B,MAAOh/B,GACP84E,EAAOO,IAAIr6C,IAIf,QAASs6C,GAAYR,GACnB,IACEA,EAAOW,WACP,MAAOz5E,GACP84E,EAAOO,IAAI,kBAIf,QAASH,KACP,GAAIQ,GAAO,GAAIzmE,KACf,OAAQ,MAASm3C,EAAIsvB,EAAKC,WAAY,GAAM,IAAOvvB,EAAIsvB,EAAKE,aAAc,GAAM,IAAOxvB,EAAIsvB,EAAKG,aAAc,GAAM,IAAOzvB,EAAIsvB,EAAKI,kBAAmB,GAGzJ,QAAS5vB,GAAQt+C,EAAKmuE,GACpB,MAAO,IAAK/4E,OAAM+4E,EAAQ,GAAI96C,KAAKrzB,GAGrC,QAASw+C,GAAK4vB,EAAKC,GACjB,MAAO/vB,GAAO,IAAK+vB,EAAYD,EAAIt6E,WAAWd,QAAUo7E,EAjqC1D,GAAIhhF,GAA2B,mBAAXuB,QAChBA,WACkB,KAAXjC,EACLA,KAEFw7E,EAAc96E,EAAO0zD,6BAkGrBwtB,EAAS,SAAiBC,EAAWC,GACvC3/E,KAAK2/E,QAAUA,EAEf3/E,KAAK4/E,UAAY58E,OAAOwF,OAAO,MAE/BxI,KAAK6/E,WAAaH,CAClB,IAAII,GAAWJ,EAAU/wE,KAGzB3O,MAAK2O,OAA6B,kBAAbmxE,GAA0BA,IAAaA,QAG1DC,GAAuBtE,YAAc53E,cAAc,GAEvDk8E,GAAmBtE,WAAWv4E,IAAM,WAClC,QAASlD,KAAK6/E,WAAWpE,YAG3BgE,EAAOniF,UAAU0iF,SAAW,SAAmBxhF,EAAK1B,GAClDkD,KAAK4/E,UAAUphF,GAAO1B,GAGxB2iF,EAAOniF,UAAUwrC,YAAc,SAAsBtqC,SAC5CwB,MAAK4/E,UAAUphF,IAGxBihF,EAAOniF,UAAU88E,SAAW,SAAmB57E,GAC7C,MAAOwB,MAAK4/E,UAAUphF,IAGxBihF,EAAOniF,UAAU2iF,SAAW,SAAmBzhF,GAC7C,MAAOA,KAAOwB,MAAK4/E,WAGrBH,EAAOniF,UAAU85B,OAAS,SAAiBsoD,GACzC1/E,KAAK6/E,WAAWpE,WAAaiE,EAAUjE,WACnCiE,EAAUQ,UACZlgF,KAAK6/E,WAAWK,QAAUR,EAAUQ,SAElCR,EAAUS,YACZngF,KAAK6/E,WAAWM,UAAYT,EAAUS,WAEpCT,EAAU1E,UACZh7E,KAAK6/E,WAAW7E,QAAU0E,EAAU1E,UAIxCyE,EAAOniF,UAAU8+E,aAAe,SAAuB1+E,GACrDs8E,EAAah6E,KAAK4/E,UAAWliF,IAG/B+hF,EAAOniF,UAAU4+E,cAAgB,SAAwBx+E,GACnDsC,KAAK6/E,WAAW7E,SAClBhB,EAAah6E,KAAK6/E,WAAW7E,QAASt9E,IAI1C+hF,EAAOniF,UAAU0+E,cAAgB,SAAwBt+E,GACnDsC,KAAK6/E,WAAWK,SAClBlG,EAAah6E,KAAK6/E,WAAWK,QAASxiF,IAI1C+hF,EAAOniF,UAAUw+E,gBAAkB,SAA0Bp+E,GACvDsC,KAAK6/E,WAAWM,WAClBnG,EAAah6E,KAAK6/E,WAAWM,UAAWziF,IAI5CsF,OAAOkS,iBAAkBuqE,EAAOniF,UAAWyiF,EAE3C,IAAIK,GAAmB,SAA2BC,GAEhDrgF,KAAKsgF,YAAaD,GAAe,GAGnCD,GAAiB9iF,UAAU4F,IAAM,SAAckW,GAC7C,MAAOA,GAAK4T,OAAO,SAAUlwB,EAAQ0B,GACnC,MAAO1B,GAAOs9E,SAAS57E,IACtBwB,KAAKsiD,OAGV89B,EAAiB9iF,UAAUk+E,aAAe,SAAuBpiE,GAC/D,GAAItc,GAASkD,KAAKsiD,IAClB,OAAOlpC,GAAK4T,OAAO,SAAU3mB,EAAW7H,GAEtC,MADA1B,GAASA,EAAOs9E,SAAS57E,GAClB6H,GAAavJ,EAAO2+E,WAAaj9E,EAAM,IAAM,KACnD,KAGL4hF,EAAiB9iF,UAAU85B,OAAS,SAAmBipD,GACrDjpD,KAAWp3B,KAAKsiD,KAAM+9B,IAGxBD,EAAiB9iF,UAAUgjF,SAAW,SAAmBlnE,EAAMsmE,EAAWC,GACtE,GAAIY,GAASvgF,SACI,KAAZ2/E,IAAqBA,GAAU,EAMtC,IAAIxF,GAAY,GAAIsF,GAAOC,EAAWC,EACtC,IAAoB,IAAhBvmE,EAAKjV,OACPnE,KAAKsiD,KAAO63B,MACP,CACQn6E,KAAKkD,IAAIkW,EAAKjU,MAAM,GAAI,IAC9B66E,SAAS5mE,EAAKA,EAAKjV,OAAS,GAAIg2E,GAIrCuF,EAAU9wC,SACZorC,EAAa0F,EAAU9wC,QAAS,SAAU4xC,EAAgBhiF,GACxD+hF,EAAOD,SAASlnE,EAAK3W,OAAOjE,GAAMgiF,EAAgBb,MAKxDS,EAAiB9iF,UAAUmjF,WAAa,SAAqBrnE,GAC3D,GAAIpX,GAAShC,KAAKkD,IAAIkW,EAAKjU,MAAM,GAAI,IACjC3G,EAAM4a,EAAKA,EAAKjV,OAAS,GACzBwgB,EAAQ3iB,EAAOo4E,SAAS57E,EAEvBmmB,IAUAA,EAAMg7D,SAIX39E,EAAO8mC,YAAYtqC,IAGrB4hF,EAAiB9iF,UAAUojF,aAAe,SAAuBtnE,GAC/D,GAAIpX,GAAShC,KAAKkD,IAAIkW,EAAKjU,MAAM,GAAI,IACjC3G,EAAM4a,EAAKA,EAAKjV,OAAS,EAE7B,SAAInC,GACKA,EAAOi+E,SAASzhF,GAmC3B,IAyCIwmC,GAEA27C,EAAQ,SAAgBtiF,GAC1B,GAAIkiF,GAASvgF,SACI,KAAZ3B,IAAqBA,OAKrB2mC,GAAyB,mBAAXllC,SAA0BA,OAAOklC,KAClDQ,EAAQ1lC,OAAOklC,IASjB,IAAI47C,GAAUviF,EAAQuiF,YAA0B,KAAZA,IAAqBA,KACzD,IAAIxF,GAAS/8E,EAAQ+8E,WAAwB,KAAXA,IAAoBA,GAAS,GAG/Dp7E,KAAK6gF,aAAc,EACnB7gF,KAAKw6E,SAAWx3E,OAAOwF,OAAO,MAC9BxI,KAAK8gF,sBACL9gF,KAAKy6E,WAAaz3E,OAAOwF,OAAO,MAChCxI,KAAK06E,gBAAkB13E,OAAOwF,OAAO,MACrCxI,KAAK66E,SAAW,GAAIuF,GAAiB/hF,GACrC2B,KAAK26E,qBAAuB33E,OAAOwF,OAAO,MAC1CxI,KAAKssE,gBACLtsE,KAAK+gF,WAAa,GAAI/7C,GACtBhlC,KAAKi7E,uBAAyBj4E,OAAOwF,OAAO,KAG5C,IAAIoG,GAAQ5O,KACR4e,EAAM5e,KACNs8E,EAAW19D,EAAI09D,SACfM,EAASh+D,EAAIg+D,MACjB58E,MAAKs8E,SAAW,SAAwBj7E,EAAMs7E,GAC5C,MAAOL,GAAS/+E,KAAKqR,EAAOvN,EAAMs7E,IAEpC38E,KAAK48E,OAAS,SAAsBv7E,EAAMs7E,EAASt+E,GACjD,MAAOu+E,GAAOr/E,KAAKqR,EAAOvN,EAAMs7E,EAASt+E,IAI3C2B,KAAKo7E,OAASA,CAEd,IAAIzsE,GAAQ3O,KAAK66E,SAASv4B,KAAK3zC,KAK/BisE,GAAc56E,KAAM2O,KAAW3O,KAAK66E,SAASv4B,MAI7Cw4B,EAAa96E,KAAM2O,GAGnBiyE,EAAQt1E,QAAQ,SAAU85B,GAAU,MAAOA,GAAOm7C,UAEXphF,KAArBd,EAAQi3B,SAAyBj3B,EAAQi3B,SAAW0P,EAAIjhB,OAAOuR,WAE/E8jD,EAAcp5E,OAIdghF,GAAyBryE,OAAS9K,cAAc,GAEpDm9E,GAAqBryE,MAAMzL,IAAM,WAC/B,MAAOlD,MAAK41D,IAAIt5B,MAAM6+C,SAGxB6F,EAAqBryE,MAAMN,IAAM,SAAUiH,KAM3CqrE,EAAMrjF,UAAUs/E,OAAS,SAAiBL,EAAOC,EAAUC,GACvD,GAAI8D,GAASvgF,KAGX4e,EAAM89D,EAAiBH,EAAOC,EAAUC,GACtCp7E,EAAOud,EAAIvd,KACXs7E,EAAU/9D,EAAI+9D,QAGhBlD,GAFY76D,EAAIvgB,SAEHgD,KAAMA,EAAMs7E,QAASA,IAClC/1C,EAAQ5mC,KAAKy6E,WAAWp5E,EACvBulC,KAML5mC,KAAKs7E,YAAY,WACf10C,EAAMt7B,QAAQ,SAAyBwtB,GACrCA,EAAQ6jD,OAIZ38E,KAAKssE,aACFnnE,QACAmG,QAAQ,SAAU6nD,GAAO,MAAOA,GAAIsmB,EAAU8G,EAAO5xE,WAa1DgyE,EAAMrjF,UAAUg/E,SAAW,SAAmBC,EAAOC,GACjD,GAAI+D,GAASvgF,KAGX4e,EAAM89D,EAAiBH,EAAOC,GAC5Bn7E,EAAOud,EAAIvd,KACXs7E,EAAU/9D,EAAI+9D,QAEhB/C,GAAWv4E,KAAMA,EAAMs7E,QAASA,GAChC/1C,EAAQ5mC,KAAKw6E,SAASn5E,EAC1B,IAAKulC,EAAL,CAOA,IACE5mC,KAAK8gF,mBACF37E,QACAqG,OAAO,SAAU2nD,GAAO,MAAOA,GAAIzgC,SACnCpnB,QAAQ,SAAU6nD,GAAO,MAAOA,GAAIzgC,OAAOknD,EAAQ2G,EAAO5xE,SAC7D,MAAOpJ,IAOT,GAAImD,GAASk+B,EAAMziC,OAAS,EACxBu1B,QAAQn6B,IAAIqnC,EAAMr7B,IAAI,SAAUutB,GAAW,MAAOA,GAAQ6jD,MAC1D/1C,EAAM,GAAG+1C,EAEb,OAAO,IAAIjjD,SAAQ,SAAUpK,EAASuL,GACpCnyB,EAAO4N,KAAK,SAAU9B,GACpB,IACE+rE,EAAOO,mBACJt1E,OAAO,SAAU2nD,GAAO,MAAOA,GAAI8tB,QACnC31E,QAAQ,SAAU6nD,GAAO,MAAOA,GAAI8tB,MAAMrH,EAAQ2G,EAAO5xE,SAC5D,MAAOpJ,IAMT+pB,EAAQ9a,IACP,SAAUvX,GACX,IACEsjF,EAAOO,mBACJt1E,OAAO,SAAU2nD,GAAO,MAAOA,GAAIl2D,QACnCqO,QAAQ,SAAU6nD,GAAO,MAAOA,GAAIl2D,MAAM28E,EAAQ2G,EAAO5xE,MAAO1R,KACnE,MAAOsI,IAMTs1B,EAAO59B,SAKb0jF,EAAMrjF,UAAU0tE,UAAY,SAAoBttE,EAAIW,GAClD,MAAOg8E,GAAiB38E,EAAIsC,KAAKssE,aAAcjuE,IAGjDsiF,EAAMrjF,UAAUq8E,gBAAkB,SAA0Bj8E,EAAIW,GAE9D,MAAOg8E,GADkB,kBAAP38E,IAAsBg1B,OAAQh1B,GAAOA,EACzBsC,KAAK8gF,mBAAoBziF,IAGzDsiF,EAAMrjF,UAAU44B,MAAQ,SAAgBzZ,EAAQ0Z,EAAI93B,GAChD,GAAIkiF,GAASvgF,IAKf,OAAOA,MAAK+gF,WAAWrjD,OAAO,WAAc,MAAOjhB,GAAO8jE,EAAO5xE,MAAO4xE,EAAOvF,UAAa7kD,EAAI93B,IAGlGsiF,EAAMrjF,UAAUk8E,aAAe,SAAuB7qE,GAClD,GAAI4xE,GAASvgF,IAEfA,MAAKs7E,YAAY,WACfiF,EAAO3qB,IAAIt5B,MAAM6+C,QAAUxsE,KAI/BgyE,EAAMrjF,UAAU4jF,eAAiB,SAAyB9nE,EAAMsmE,EAAWrhF,OACtD,KAAZA,IAAqBA,MAER,gBAAT+a,KAAqBA,GAAQA,IAOxCpZ,KAAK66E,SAASyF,SAASlnE,EAAMsmE,GAC7B9E,EAAc56E,KAAMA,KAAK2O,MAAOyK,EAAMpZ,KAAK66E,SAAS33E,IAAIkW,GAAO/a,EAAQ8iF,eAEvErG,EAAa96E,KAAMA,KAAK2O,QAG1BgyE,EAAMrjF,UAAU8jF,iBAAmB,SAA2BhoE,GAC1D,GAAImnE,GAASvgF,IAEK,iBAAToZ,KAAqBA,GAAQA,IAMxCpZ,KAAK66E,SAAS4F,WAAWrnE,GACzBpZ,KAAKs7E,YAAY,WACf,GAAII,GAAcC,EAAe4E,EAAO5xE,MAAOyK,EAAKjU,MAAM,GAAI,GAC9D6/B,GAAIk0B,OAAOwiB,EAAatiE,EAAKA,EAAKjV,OAAS,MAE7Cm2E,EAAWt6E,OAGb2gF,EAAMrjF,UAAU+jF,UAAY,SAAoBjoE,GAO9C,MANoB,gBAATA,KAAqBA,GAAQA,IAMjCpZ,KAAK66E,SAAS6F,aAAatnE,IAGpCunE,EAAMrjF,UAAUgkF,UAAY,SAAoBC,GAC9CvhF,KAAK66E,SAASzjD,OAAOmqD,GACrBjH,EAAWt6E,MAAM,IAGnB2gF,EAAMrjF,UAAUg+E,YAAc,SAAsB59E,GAClD,GAAI8jF,GAAaxhF,KAAK6gF,WACtB7gF,MAAK6gF,aAAc,EACnBnjF,IACAsC,KAAK6gF,YAAcW,GAGrBx+E,OAAOkS,iBAAkByrE,EAAMrjF,UAAW0jF,EAmT1C,IAAIS,GAAWnE,EAAmB,SAAUj3E,EAAWq7E,GACrD,GAAIltE,KA0BJ,OAtBA4oE,GAAasE,GAAQp2E,QAAQ,SAAUsT,GACrC,GAAIpgB,GAAMogB,EAAIpgB,IACVyX,EAAM2I,EAAI3I,GAEdzB,GAAIhW,GAAO,WACT,GAAImQ,GAAQ3O,KAAKm5E,OAAOxqE,MACpBqsE,EAAUh7E,KAAKm5E,OAAO6B,OAC1B,IAAI30E,EAAW,CACb,GAAIvJ,GAASygF,EAAqBv9E,KAAKm5E,OAAQ,WAAY9yE,EAC3D,KAAKvJ,EACH,MAEF6R,GAAQ7R,EAAO+E,QAAQ8M,MACvBqsE,EAAUl+E,EAAO+E,QAAQm5E,QAE3B,MAAsB,kBAAR/kE,GACVA,EAAI1Y,KAAKyC,KAAM2O,EAAOqsE,GACtBrsE,EAAMsH,IAGZzB,EAAIhW,GAAKmjF,MAAO,IAEXntE,IASLotE,EAAetE,EAAmB,SAAUj3E,EAAW85E,GACzD,GAAI3rE,KA0BJ,OAtBA4oE,GAAa+C,GAAW70E,QAAQ,SAAUsT,GACxC,GAAIpgB,GAAMogB,EAAIpgB,IACVyX,EAAM2I,EAAI3I,GAEdzB,GAAIhW,GAAO,WAET,IADA,GAAIs1B,MAAWlqB,EAAMhM,UAAUuG,OACvByF,KAAQkqB,EAAMlqB,GAAQhM,UAAWgM,EAGzC,IAAIgzE,GAAS58E,KAAKm5E,OAAOyD,MACzB,IAAIv2E,EAAW,CACb,GAAIvJ,GAASygF,EAAqBv9E,KAAKm5E,OAAQ,eAAgB9yE,EAC/D,KAAKvJ,EACH,MAEF8/E,GAAS9/E,EAAO+E,QAAQ+6E,OAE1B,MAAsB,kBAAR3mE,GACVA,EAAItY,MAAMqC,MAAO48E,GAAQn6E,OAAOqxB,IAChC8oD,EAAOj/E,MAAMqC,KAAKm5E,QAASljE,GAAKxT,OAAOqxB,OAGxCtf,IASLqtE,EAAavE,EAAmB,SAAUj3E,EAAW20E,GACvD,GAAIxmE,KAuBJ,OAnBA4oE,GAAapC,GAAS1vE,QAAQ,SAAUsT,GACtC,GAAIpgB,GAAMogB,EAAIpgB,IACVyX,EAAM2I,EAAI3I,GAGdA,GAAM5P,EAAY4P,EAClBzB,EAAIhW,GAAO,WACT,IAAI6H,GAAck3E,EAAqBv9E,KAAKm5E,OAAQ,aAAc9yE,GAOlE,MAAOrG,MAAKm5E,OAAO6B,QAAQ/kE,IAG7BzB,EAAIhW,GAAKmjF,MAAO,IAEXntE,IASLstE,EAAaxE,EAAmB,SAAUj3E,EAAW65E,GACvD,GAAI1rE,KA0BJ,OAtBA4oE,GAAa8C,GAAS50E,QAAQ,SAAUsT,GACtC,GAAIpgB,GAAMogB,EAAIpgB,IACVyX,EAAM2I,EAAI3I,GAEdzB,GAAIhW,GAAO,WAET,IADA,GAAIs1B,MAAWlqB,EAAMhM,UAAUuG,OACvByF,KAAQkqB,EAAMlqB,GAAQhM,UAAWgM,EAGzC,IAAI0yE,GAAWt8E,KAAKm5E,OAAOmD,QAC3B,IAAIj2E,EAAW,CACb,GAAIvJ,GAASygF,EAAqBv9E,KAAKm5E,OAAQ,aAAc9yE,EAC7D,KAAKvJ,EACH,MAEFw/E,GAAWx/E,EAAO+E,QAAQy6E,SAE5B,MAAsB,kBAARrmE,GACVA,EAAItY,MAAMqC,MAAOs8E,GAAU75E,OAAOqxB,IAClCwoD,EAAS3+E,MAAMqC,KAAKm5E,QAASljE,GAAKxT,OAAOqxB,OAG1Ctf,IAQLutE,EAA0B,SAAU17E,GAAa,OACnDo7E,SAAUA,EAAShkF,KAAK,KAAM4I,GAC9Bw7E,WAAYA,EAAWpkF,KAAK,KAAM4I,GAClCu7E,aAAcA,EAAankF,KAAK,KAAM4I,GACtCy7E,WAAYA,EAAWrkF,KAAK,KAAM4I,KAuJhCgF,GACFs1E,MAAOA,EACPn7C,QAASA,EACT94B,QAAS,QACT+0E,SAAUA,EACVG,aAAcA,EACdC,WAAYA,EACZC,WAAYA,EACZC,wBAAyBA,EACzBtE,aAAcA,EAGD,S7K4ijBclgF,KAAKgQ,EAAqBrQ,EAAoB,MAIrE,SAAUJ,EAAQC,G8KxtlBxB,QAASilF,GAAuB53E,EAAM63E,GACrC,GAAI96E,GAAUiD,EAAK,IAAM,GACrB83E,EAAa93E,EAAK,EACtB,KAAK83E,EACJ,MAAO/6E,EAGR,IAAI86E,GAAgC,kBAATE,MAAqB,CAC/C,GAAIC,GAAgBC,EAAUH,EAK9B,QAAQ/6E,GAAS1E,OAJAy/E,EAAWI,QAAQ/2E,IAAI,SAAUjN,GACjD,MAAO,iBAAmB4jF,EAAWK,WAAajkF,EAAS,SAGxBmE,QAAQ2/E,IAAgB59C,KAAK,MAGlE,OAAQr9B,GAASq9B,KAAK,MAIvB,QAAS69C,GAAUvJ,GAKlB,MAAO,mEAHMqJ,KAAKK,SAASC,mBAAmBjsE,KAAKC,UAAUqiE,MAGtC,MArExBh8E,EAAOC,QAAU,SAASklF,GACzB,GAAIprE,KAwCJ,OArCAA,GAAK5R,SAAW,WACf,MAAOjF,MAAKuL,IAAI,SAAUnB,GACzB,GAAIjD,GAAU66E,EAAuB53E,EAAM63E,EAC3C,OAAG73E,GAAK,GACA,UAAYA,EAAK,GAAK,IAAMjD,EAAU,IAEtCA,IAENq9B,KAAK,KAIT3tB,EAAKnN,EAAI,SAASklC,EAAS8zC,GACJ,gBAAZ9zC,KACTA,IAAY,KAAMA,EAAS,KAE5B,KAAI,GADA+zC,MACIj5E,EAAI,EAAGA,EAAI1J,KAAKmE,OAAQuF,IAAK,CACpC,GAAIic,GAAK3lB,KAAK0J,GAAG,EACA,iBAAPic,KACTg9D,EAAuBh9D,IAAM,GAE/B,IAAIjc,EAAI,EAAGA,EAAIklC,EAAQzqC,OAAQuF,IAAK,CACnC,GAAIU,GAAOwkC,EAAQllC,EAKG,iBAAZU,GAAK,IAAoBu4E,EAAuBv4E,EAAK,MAC3Ds4E,IAAet4E,EAAK,GACtBA,EAAK,GAAKs4E,EACDA,IACTt4E,EAAK,GAAK,IAAMA,EAAK,GAAK,UAAYs4E,EAAa,KAEpD7rE,EAAK3M,KAAKE,MAINyM,I9K6ylBF,SAAU/Z,EAAQC,G+K31lBxBD,EAAOC,QAAU,SAAgB6lF,GAC7B,MAAmB,gBAARA,GACAA,GAGP,eAAe31E,KAAK21E,KACpBA,EAAMA,EAAIz9E,MAAM,GAAI,IAIpB,cAAc8H,KAAK21E,GACZ,IAAMA,EAAIzyE,QAAQ,KAAM,OAAOA,QAAQ,MAAO,OAAS,IAG3DyyE,K/Km2lBL,SAAU9lF,EAAQyQ,EAAqBrQ,GAE7C,YgLh0lBe,SAAS2lF,GAAiBlK,EAAU9hE,EAAMisE,EAAerG,GACtEsG,EAAeD,EAEfzkF,EAAUo+E,KAEV,IAAIvlC,GAAS,SAAayhC,EAAU9hE,EAGpC,OAFAmsE,GAAe9rC,GAER,SAAiB+rC,GAEtB,IAAK,GADDC,MACKx5E,EAAI,EAAGA,EAAIwtC,EAAO/yC,OAAQuF,IAAK,CACtC,GAAIU,GAAO8sC,EAAOxtC,GACdy5E,EAAWC,EAAYh5E,EAAKub,GAChCw9D,GAASx5C,OACTu5C,EAAUh5E,KAAKi5E,GAEbF,GACF/rC,EAAS,SAAayhC,EAAUsK,GAChCD,EAAe9rC,IAEfA,IAEF,KAAK,GAAIxtC,GAAI,EAAGA,EAAIw5E,EAAU/+E,OAAQuF,IAAK,CACzC,GAAIy5E,GAAWD,EAAUx5E,EACzB,IAAsB,IAAlBy5E,EAASx5C,KAAY,CACvB,IAAK,GAAI/1B,GAAI,EAAGA,EAAIuvE,EAASnK,MAAM70E,OAAQyP,IACzCuvE,EAASnK,MAAMplE,WAEVwvE,GAAYD,EAASx9D,OAMpC,QAASq9D,GAAgB9rC,GACvB,IAAK,GAAIxtC,GAAI,EAAGA,EAAIwtC,EAAO/yC,OAAQuF,IAAK,CACtC,GAAIU,GAAO8sC,EAAOxtC,GACdy5E,EAAWC,EAAYh5E,EAAKub,GAChC,IAAIw9D,EAAU,CACZA,EAASx5C,MACT,KAAK,GAAI/1B,GAAI,EAAGA,EAAIuvE,EAASnK,MAAM70E,OAAQyP,IACzCuvE,EAASnK,MAAMplE,GAAGxJ,EAAK4uE,MAAMplE,GAE/B,MAAOA,EAAIxJ,EAAK4uE,MAAM70E,OAAQyP,IAC5BuvE,EAASnK,MAAM9uE,KAAKm5E,EAASj5E,EAAK4uE,MAAMplE,IAEtCuvE,GAASnK,MAAM70E,OAASiG,EAAK4uE,MAAM70E,SACrCg/E,EAASnK,MAAM70E,OAASiG,EAAK4uE,MAAM70E,YAEhC,CAEL,IAAK,GADD60E,MACKplE,EAAI,EAAGA,EAAIxJ,EAAK4uE,MAAM70E,OAAQyP,IACrColE,EAAM9uE,KAAKm5E,EAASj5E,EAAK4uE,MAAMplE,IAEjCwvE,GAAYh5E,EAAKub,KAAQA,GAAIvb,EAAKub,GAAIgkB,KAAM,EAAGqvC,MAAOA,KAK5D,QAASsK,KACP,GAAIC,GAAer7E,SAAS4/B,cAAc,QAG1C,OAFAy7C,GAAaliF,KAAO,WACpBmiF,EAAKz7E,YAAYw7E,GACVA,EAGT,QAASF,GAAUn/E,GACjB,GAAIkzB,GAAQjW,EACRoiE,EAAer7E,SAASigC,cAAc,SAAWs7C,EAAW,MAAQv/E,EAAIyhB,GAAK,KAEjF,IAAI49D,EAAc,CAChB,GAAIR,EAGF,MAAO7zE,EAOPq0E,GAAat8C,WAAW6B,YAAYy6C,GAIxC,GAAIG,EAAS,CAEX,GAAIC,GAAaC,GACjBL,GAAeM,IAAqBA,EAAmBP,KACvDlsD,EAAS0sD,EAAoBrmF,KAAK,KAAM8lF,EAAcI,GAAY,GAClExiE,EAAS2iE,EAAoBrmF,KAAK,KAAM8lF,EAAcI,GAAY,OAGlEJ,GAAeD,IACflsD,EAAS2sD,EAAWtmF,KAAK,KAAM8lF,GAC/BpiE,EAAS,WACPoiE,EAAat8C,WAAW6B,YAAYy6C,GAMxC,OAFAnsD,GAAOlzB,GAEA,SAAsB8/E,GAC3B,GAAIA,EAAQ,CACV,GAAIA,EAAO7tC,MAAQjyC,EAAIiyC,KACnB6tC,EAAOnL,QAAU30E,EAAI20E,OACrBmL,EAAOlL,YAAc50E,EAAI40E,UAC3B,MAEF1hD,GAAOlzB,EAAM8/E,OAEb7iE,MAcN,QAAS2iE,GAAqBP,EAAcl4E,EAAO8V,EAAQjd,GACzD,GAAIiyC,GAAMh1B,EAAS,GAAKjd,EAAIiyC,GAE5B,IAAIotC,EAAaU,WACfV,EAAaU,WAAWpqB,QAAUqqB,EAAY74E,EAAO8qC,OAChD,CACL,GAAIguC,GAAUj8E,SAASugC,eAAe0N,GAClCrC,EAAayvC,EAAazvC,UAC1BA,GAAWzoC,IAAQk4E,EAAaz6C,YAAYgL,EAAWzoC,IACvDyoC,EAAW3vC,OACbo/E,EAAa56C,aAAaw7C,EAASrwC,EAAWzoC,IAE9Ck4E,EAAax7E,YAAYo8E,IAK/B,QAASJ,GAAYR,EAAcr/E,GACjC,GAAIiyC,GAAMjyC,EAAIiyC,IACV0iC,EAAQ30E,EAAI20E,MACZC,EAAY50E,EAAI40E,SAiBpB,IAfID,GACF0K,EAAaj7C,aAAa,QAASuwC,GAEjCx6E,EAAQ+lF,OACVb,EAAaj7C,aAAam7C,EAAUv/E,EAAIyhB,IAGtCmzD,IAGF3iC,GAAO,mBAAqB2iC,EAAUwJ,QAAQ,GAAK,MAEnDnsC,GAAO,uDAAyDgsC,KAAKK,SAASC,mBAAmBjsE,KAAKC,UAAUqiE,MAAgB,OAG9HyK,EAAaU,WACfV,EAAaU,WAAWpqB,QAAU1jB,MAC7B,CACL,KAAOotC,EAAalvC,YAClBkvC,EAAaz6C,YAAYy6C,EAAalvC,WAExCkvC,GAAax7E,YAAYG,SAASugC,eAAe0N,KA3NrD,0EAQIkuC,EAAkC,mBAAbn8E,SAEzB,IAAqB,mBAAVo8E,QAAyBA,QAC7BD,EACH,KAAM,IAAIzpD,OACV,0JAkBJ,IAAIwoD,MAQAI,EAAOa,IAAgBn8E,SAASs7E,MAAQt7E,SAASq8E,qBAAqB,QAAQ,IAC9EV,EAAmB,KACnBD,EAAmB,EACnBb,GAAe,EACf7zE,EAAO,aACP7Q,EAAU,KACVolF,EAAW,kBAIXC,EAA+B,mBAAdhyB,YAA6B,eAAezkD,KAAKykD,UAAU/kD,UAAUmK,eAsHtFotE,EAAc,WAChB,GAAIM,KAEJ,OAAO,UAAUn5E,EAAOs4D,GAEtB,MADA6gB,GAAUn5E,GAASs4D,EACZ6gB,EAAUh5E,OAAOzF,SAASy+B,KAAK","file":"static/js/vendor.ed7650694397140633ce.js","sourcesContent":["webpackJsonp([0],[\n/* 0 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar NATIVE_BIND = __webpack_require__(37);\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(4);\nvar getOwnPropertyDescriptor = __webpack_require__(58).f;\nvar createNonEnumerableProperty = __webpack_require__(32);\nvar defineBuiltIn = __webpack_require__(13);\nvar defineGlobalProperty = __webpack_require__(49);\nvar copyConstructorProperties = __webpack_require__(145);\nvar isForced = __webpack_require__(100);\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $documentAll = __webpack_require__(93);\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(20)))\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(4);\nvar shared = __webpack_require__(63);\nvar hasOwn = __webpack_require__(11);\nvar uid = __webpack_require__(112);\nvar NATIVE_SYMBOL = __webpack_require__(110);\nvar USE_SYMBOL_AS_UID = __webpack_require__(113);\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports) {\n\n/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file.\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nmodule.exports = function normalizeComponent (\n rawScriptExports,\n compiledTemplate,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */\n) {\n var esModule\n var scriptExports = rawScriptExports = rawScriptExports || {}\n\n // ES6 modules interop\n var type = typeof rawScriptExports.default\n if (type === 'object' || type === 'function') {\n esModule = rawScriptExports\n scriptExports = rawScriptExports.default\n }\n\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (compiledTemplate) {\n options.render = compiledTemplate.render\n options.staticRenderFns = compiledTemplate.staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = injectStyles\n }\n\n if (hook) {\n var functional = options.functional\n var existing = functional\n ? options.render\n : options.beforeCreate\n\n if (!functional) {\n // inject component registration as beforeCreate hook\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n } else {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return existing(h, context)\n }\n }\n }\n\n return {\n esModule: esModule,\n exports: scriptExports,\n options: options\n }\n}\n\n\n/***/ }),\n/* 7 */,\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(12);\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(0);\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar NATIVE_BIND = __webpack_require__(37);\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar uncurryThis = __webpack_require__(1);\nvar toObject = __webpack_require__(16);\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isCallable = __webpack_require__(3);\nvar $documentAll = __webpack_require__(93);\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isCallable = __webpack_require__(3);\nvar definePropertyModule = __webpack_require__(15);\nvar makeBuiltIn = __webpack_require__(161);\nvar defineGlobalProperty = __webpack_require__(49);\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toLength = __webpack_require__(181);\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(9);\nvar IE8_DOM_DEFINE = __webpack_require__(98);\nvar V8_PROTOTYPE_DEFINE_BUG = __webpack_require__(114);\nvar anObject = __webpack_require__(8);\nvar toPropertyKey = __webpack_require__(65);\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar requireObjectCoercible = __webpack_require__(19);\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar classof = __webpack_require__(31);\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar uncurryThis = __webpack_require__(1);\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isNullOrUndefined = __webpack_require__(39);\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports) {\n\nvar g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(0);\nvar wellKnownSymbol = __webpack_require__(5);\nvar V8_VERSION = __webpack_require__(36);\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(9);\nvar hasOwn = __webpack_require__(11);\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(4);\nvar isCallable = __webpack_require__(3);\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar classof = __webpack_require__(18);\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) == 'Array';\n};\n\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* global ActiveXObject -- old IE, WSH */\nvar anObject = __webpack_require__(8);\nvar definePropertiesModule = __webpack_require__(165);\nvar enumBugKeys = __webpack_require__(50);\nvar hiddenKeys = __webpack_require__(52);\nvar html = __webpack_require__(154);\nvar documentCreateElement = __webpack_require__(94);\nvar sharedKey = __webpack_require__(61);\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = __webpack_require__(53);\nvar requireObjectCoercible = __webpack_require__(19);\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2);\nvar fails = __webpack_require__(0);\nvar isArray = __webpack_require__(24);\nvar isObject = __webpack_require__(12);\nvar toObject = __webpack_require__(16);\nvar lengthOfArrayLike = __webpack_require__(14);\nvar doesNotExceedSafeInteger = __webpack_require__(35);\nvar createProperty = __webpack_require__(34);\nvar arraySpeciesCreate = __webpack_require__(48);\nvar arrayMethodHasSpeciesSupport = __webpack_require__(21);\nvar wellKnownSymbol = __webpack_require__(5);\nvar V8_VERSION = __webpack_require__(36);\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = lengthOfArrayLike(E);\n doesNotExceedSafeInteger(n + len);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n doesNotExceedSafeInteger(n + 1);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2);\nvar toObject = __webpack_require__(16);\nvar lengthOfArrayLike = __webpack_require__(14);\nvar setArrayLength = __webpack_require__(47);\nvar doesNotExceedSafeInteger = __webpack_require__(35);\nvar fails = __webpack_require__(0);\n\nvar INCORRECT_TO_LENGTH = fails(function () {\n return [].push.call({ length: 0x100000000 }, 1) !== 4294967297;\n});\n\n// V8 and Safari <= 15.4, FF < 23 throws InternalError\n// https://bugs.chromium.org/p/v8/issues/detail?id=12681\nvar SILENT_ON_NON_WRITABLE_LENGTH = !function () {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).push();\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\n// `Array.prototype.push` method\n// https://tc39.es/ecma262/#sec-array.prototype.push\n$({ target: 'Array', proto: true, arity: 1, forced: INCORRECT_TO_LENGTH || SILENT_ON_NON_WRITABLE_LENGTH }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n push: function push(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n doesNotExceedSafeInteger(len + argCount);\n for (var i = 0; i < argCount; i++) {\n O[len] = arguments[i];\n len++;\n }\n setArrayLength(O, len);\n return len;\n }\n});\n\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isCallable = __webpack_require__(3);\nvar tryToString = __webpack_require__(67);\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar bind = __webpack_require__(96);\nvar uncurryThis = __webpack_require__(1);\nvar IndexedObject = __webpack_require__(53);\nvar toObject = __webpack_require__(16);\nvar lengthOfArrayLike = __webpack_require__(14);\nvar arraySpeciesCreate = __webpack_require__(48);\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_REJECT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var length = lengthOfArrayLike(self);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(66);\nvar isCallable = __webpack_require__(3);\nvar classofRaw = __webpack_require__(18);\nvar wellKnownSymbol = __webpack_require__(5);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(9);\nvar definePropertyModule = __webpack_require__(15);\nvar createPropertyDescriptor = __webpack_require__(33);\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toPropertyKey = __webpack_require__(65);\nvar definePropertyModule = __webpack_require__(15);\nvar createPropertyDescriptor = __webpack_require__(33);\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports) {\n\nvar $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(4);\nvar userAgent = __webpack_require__(95);\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(0);\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar aCallable = __webpack_require__(29);\nvar isNullOrUndefined = __webpack_require__(39);\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports) {\n\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar trunc = __webpack_require__(162);\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2);\nvar exec = __webpack_require__(60);\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\n__webpack_require__(192);\n__webpack_require__(193);\n\n\n/***/ }),\n/* 44 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = _typeof;\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toIndexedObject = __webpack_require__(26);\nvar toAbsoluteIndex = __webpack_require__(64);\nvar lengthOfArrayLike = __webpack_require__(14);\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fails = __webpack_require__(0);\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call -- required for testing\n method.call(null, argument || function () { return 1; }, 1);\n });\n};\n\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar DESCRIPTORS = __webpack_require__(9);\nvar isArray = __webpack_require__(24);\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n // makes no sense without proper strict mode support\n if (this !== undefined) return true;\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).length = 1;\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n throw $TypeError('Cannot set read only .length');\n } return O.length = length;\n} : function (O, length) {\n return O.length = length;\n};\n\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar arraySpeciesConstructor = __webpack_require__(142);\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(4);\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports) {\n\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar classofRaw = __webpack_require__(18);\nvar uncurryThis = __webpack_require__(1);\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar uncurryThis = __webpack_require__(1);\nvar fails = __webpack_require__(0);\nvar classof = __webpack_require__(18);\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar NATIVE_WEAK_MAP = __webpack_require__(183);\nvar global = __webpack_require__(4);\nvar isObject = __webpack_require__(12);\nvar createNonEnumerableProperty = __webpack_require__(32);\nvar hasOwn = __webpack_require__(11);\nvar shared = __webpack_require__(62);\nvar sharedKey = __webpack_require__(61);\nvar hiddenKeys = __webpack_require__(52);\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar uncurryThis = __webpack_require__(1);\nvar fails = __webpack_require__(0);\nvar isCallable = __webpack_require__(3);\nvar classof = __webpack_require__(31);\nvar getBuiltIn = __webpack_require__(23);\nvar inspectSource = __webpack_require__(99);\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports) {\n\nmodule.exports = false;\n\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(23);\nvar isCallable = __webpack_require__(3);\nvar isPrototypeOf = __webpack_require__(59);\nvar USE_SYMBOL_AS_UID = __webpack_require__(113);\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(9);\nvar call = __webpack_require__(10);\nvar propertyIsEnumerableModule = __webpack_require__(168);\nvar createPropertyDescriptor = __webpack_require__(33);\nvar toIndexedObject = __webpack_require__(26);\nvar toPropertyKey = __webpack_require__(65);\nvar hasOwn = __webpack_require__(11);\nvar IE8_DOM_DEFINE = __webpack_require__(98);\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar uncurryThis = __webpack_require__(1);\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar call = __webpack_require__(10);\nvar uncurryThis = __webpack_require__(1);\nvar toString = __webpack_require__(17);\nvar regexpFlags = __webpack_require__(106);\nvar stickyHelpers = __webpack_require__(174);\nvar shared = __webpack_require__(63);\nvar create = __webpack_require__(25);\nvar getInternalState = __webpack_require__(54).get;\nvar UNSUPPORTED_DOT_ALL = __webpack_require__(175);\nvar UNSUPPORTED_NCG = __webpack_require__(176);\n\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\nvar nativeExec = RegExp.prototype.exec;\nvar patchedExec = nativeExec;\nvar charAt = uncurryThis(''.charAt);\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n call(nativeExec, re1, 'a');\n call(nativeExec, re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\nif (PATCH) {\n patchedExec = function exec(string) {\n var re = this;\n var state = getInternalState(re);\n var str = toString(string);\n var raw = state.raw;\n var result, reCopy, lastIndex, match, i, object, group;\n\n if (raw) {\n raw.lastIndex = re.lastIndex;\n result = call(patchedExec, raw, str);\n re.lastIndex = raw.lastIndex;\n return result;\n }\n\n var groups = state.groups;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = call(regexpFlags, re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = replace(flags, 'y', '');\n if (indexOf(flags, 'g') === -1) {\n flags += 'g';\n }\n\n strCopy = stringSlice(str, re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = call(nativeExec, sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = stringSlice(match.input, charsAdded);\n match[0] = stringSlice(match[0], charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn't work for /(.?)?/\n call(nativeReplace, match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n if (match && groups) {\n match.groups = object = create(null);\n for (i = 0; i < groups.length; i++) {\n group = groups[i];\n object[group[0]] = match[group[1]];\n }\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar shared = __webpack_require__(63);\nvar uid = __webpack_require__(112);\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(4);\nvar defineGlobalProperty = __webpack_require__(49);\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar IS_PURE = __webpack_require__(56);\nvar store = __webpack_require__(62);\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.26.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.26.1/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toIntegerOrInfinity = __webpack_require__(41);\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toPrimitive = __webpack_require__(111);\nvar isSymbol = __webpack_require__(57);\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(5);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports) {\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar DESCRIPTORS = __webpack_require__(9);\nvar global = __webpack_require__(4);\nvar uncurryThis = __webpack_require__(1);\nvar isForced = __webpack_require__(100);\nvar defineBuiltIn = __webpack_require__(13);\nvar hasOwn = __webpack_require__(11);\nvar inheritIfRequired = __webpack_require__(155);\nvar isPrototypeOf = __webpack_require__(59);\nvar isSymbol = __webpack_require__(57);\nvar toPrimitive = __webpack_require__(111);\nvar fails = __webpack_require__(0);\nvar getOwnPropertyNames = __webpack_require__(102).f;\nvar getOwnPropertyDescriptor = __webpack_require__(58).f;\nvar defineProperty = __webpack_require__(15).f;\nvar thisNumberValue = __webpack_require__(180);\nvar trim = __webpack_require__(109).trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\nvar TypeError = global.TypeError;\nvar arraySlice = uncurryThis(''.slice);\nvar charCodeAt = uncurryThis(''.charCodeAt);\n\n// `ToNumeric` abstract operation\n// https://tc39.es/ecma262/#sec-tonumeric\nvar toNumeric = function (value) {\n var primValue = toPrimitive(value, 'number');\n return typeof primValue == 'bigint' ? primValue : toNumber(primValue);\n};\n\n// `ToNumber` abstract operation\n// https://tc39.es/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, 'number');\n var first, third, radix, maxCode, digits, length, index, code;\n if (isSymbol(it)) throw TypeError('Cannot convert a Symbol value to a number');\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = charCodeAt(it, 0);\n if (first === 43 || first === 45) {\n third = charCodeAt(it, 2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (charCodeAt(it, 1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n default: return +it;\n }\n digits = arraySlice(it, 2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = charCodeAt(digits, index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\n// `Number` constructor\n// https://tc39.es/ecma262/#sec-number-constructor\nif (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n var NumberWrapper = function Number(value) {\n var n = arguments.length < 1 ? 0 : NativeNumber(toNumeric(value));\n var dummy = this;\n // check on 1..constructor(foo) case\n return isPrototypeOf(NumberPrototype, dummy) && fails(function () { thisNumberValue(dummy); })\n ? inheritIfRequired(Object(n), dummy, NumberWrapper) : n;\n };\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,' +\n // ESNext\n 'fromString,range'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (hasOwn(NativeNumber, key = keys[j]) && !hasOwn(NumberWrapper, key)) {\n defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));\n }\n }\n NumberWrapper.prototype = NumberPrototype;\n NumberPrototype.constructor = NumberWrapper;\n defineBuiltIn(global, NUMBER, NumberWrapper, { constructor: true });\n}\n\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(66);\nvar defineBuiltIn = __webpack_require__(13);\nvar toString = __webpack_require__(169);\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true });\n}\n\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar call = __webpack_require__(10);\nvar fixRegExpWellKnownSymbolLogic = __webpack_require__(151);\nvar anObject = __webpack_require__(8);\nvar isNullOrUndefined = __webpack_require__(39);\nvar requireObjectCoercible = __webpack_require__(19);\nvar sameValue = __webpack_require__(177);\nvar toString = __webpack_require__(17);\nvar getMethod = __webpack_require__(38);\nvar regExpExec = __webpack_require__(172);\n\n// @@search logic\nfixRegExpWellKnownSymbolLogic('search', function (SEARCH, nativeSearch, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.es/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = requireObjectCoercible(this);\n var searcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, SEARCH);\n return searcher ? call(searcher, regexp, O) : new RegExp(regexp)[SEARCH](toString(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@search\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeSearch, rx, S);\n\n if (res.done) return res.value;\n\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n\n\n/***/ }),\n/* 71 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = _objectSpread2;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__defineProperty_js__ = __webpack_require__(74);\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__defineProperty_js__[\"a\" /* default */])(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\n\n/***/ }),\n/* 72 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2);\nvar $map = __webpack_require__(30).map;\nvar arrayMethodHasSpeciesSupport = __webpack_require__(21);\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global, setImmediate) {/*!\n * Vue.js v2.7.14\n * (c) 2014-2022 Evan You\n * Released under the MIT License.\n */\n(function (global, factory) {\n true ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Vue = factory());\n})(this, (function () { 'use strict';\n\n var emptyObject = Object.freeze({});\n var isArray = Array.isArray;\n // These helpers produce better VM code in JS engines due to their\n // explicitness and function inlining.\n function isUndef(v) {\n return v === undefined || v === null;\n }\n function isDef(v) {\n return v !== undefined && v !== null;\n }\n function isTrue(v) {\n return v === true;\n }\n function isFalse(v) {\n return v === false;\n }\n /**\n * Check if value is primitive.\n */\n function isPrimitive(value) {\n return (typeof value === 'string' ||\n typeof value === 'number' ||\n // $flow-disable-line\n typeof value === 'symbol' ||\n typeof value === 'boolean');\n }\n function isFunction(value) {\n return typeof value === 'function';\n }\n /**\n * Quick object check - this is primarily used to tell\n * objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\n function isObject(obj) {\n return obj !== null && typeof obj === 'object';\n }\n /**\n * Get the raw type string of a value, e.g., [object Object].\n */\n var _toString = Object.prototype.toString;\n function toRawType(value) {\n return _toString.call(value).slice(8, -1);\n }\n /**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\n function isPlainObject(obj) {\n return _toString.call(obj) === '[object Object]';\n }\n function isRegExp(v) {\n return _toString.call(v) === '[object RegExp]';\n }\n /**\n * Check if val is a valid array index.\n */\n function isValidArrayIndex(val) {\n var n = parseFloat(String(val));\n return n >= 0 && Math.floor(n) === n && isFinite(val);\n }\n function isPromise(val) {\n return (isDef(val) &&\n typeof val.then === 'function' &&\n typeof val.catch === 'function');\n }\n /**\n * Convert a value to a string that is actually rendered.\n */\n function toString(val) {\n return val == null\n ? ''\n : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)\n ? JSON.stringify(val, null, 2)\n : String(val);\n }\n /**\n * Convert an input value to a number for persistence.\n * If the conversion fails, return original string.\n */\n function toNumber(val) {\n var n = parseFloat(val);\n return isNaN(n) ? val : n;\n }\n /**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\n function makeMap(str, expectsLowerCase) {\n var map = Object.create(null);\n var list = str.split(',');\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase ? function (val) { return map[val.toLowerCase()]; } : function (val) { return map[val]; };\n }\n /**\n * Check if a tag is a built-in tag.\n */\n var isBuiltInTag = makeMap('slot,component', true);\n /**\n * Check if an attribute is a reserved attribute.\n */\n var isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n /**\n * Remove an item from an array.\n */\n function remove$2(arr, item) {\n var len = arr.length;\n if (len) {\n // fast path for the only / last item\n if (item === arr[len - 1]) {\n arr.length = len - 1;\n return;\n }\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1);\n }\n }\n }\n /**\n * Check whether an object has the property.\n */\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n function hasOwn(obj, key) {\n return hasOwnProperty.call(obj, key);\n }\n /**\n * Create a cached version of a pure function.\n */\n function cached(fn) {\n var cache = Object.create(null);\n return function cachedFn(str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n }\n /**\n * Camelize a hyphen-delimited string.\n */\n var camelizeRE = /-(\\w)/g;\n var camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) { return (c ? c.toUpperCase() : ''); });\n });\n /**\n * Capitalize a string.\n */\n var capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n });\n /**\n * Hyphenate a camelCase string.\n */\n var hyphenateRE = /\\B([A-Z])/g;\n var hyphenate = cached(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase();\n });\n /**\n * Simple bind polyfill for environments that do not support it,\n * e.g., PhantomJS 1.x. Technically, we don't need this anymore\n * since native bind is now performant enough in most browsers.\n * But removing it would mean breaking code that was able to run in\n * PhantomJS 1.x, so this must be kept for backward compatibility.\n */\n /* istanbul ignore next */\n function polyfillBind(fn, ctx) {\n function boundFn(a) {\n var l = arguments.length;\n return l\n ? l > 1\n ? fn.apply(ctx, arguments)\n : fn.call(ctx, a)\n : fn.call(ctx);\n }\n boundFn._length = fn.length;\n return boundFn;\n }\n function nativeBind(fn, ctx) {\n return fn.bind(ctx);\n }\n // @ts-expect-error bind cannot be `undefined`\n var bind$1 = Function.prototype.bind ? nativeBind : polyfillBind;\n /**\n * Convert an Array-like object to a real Array.\n */\n function toArray(list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret;\n }\n /**\n * Mix properties into target object.\n */\n function extend(to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to;\n }\n /**\n * Merge an Array of Objects into a single Object.\n */\n function toObject(arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res;\n }\n /* eslint-disable no-unused-vars */\n /**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).\n */\n function noop(a, b, c) { }\n /**\n * Always return false.\n */\n var no = function (a, b, c) { return false; };\n /* eslint-enable no-unused-vars */\n /**\n * Return the same value.\n */\n var identity = function (_) { return _; };\n /**\n * Generate a string containing static keys from compiler modules.\n */\n function genStaticKeys$1(modules) {\n return modules\n .reduce(function (keys, m) {\n return keys.concat(m.staticKeys || []);\n }, [])\n .join(',');\n }\n /**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\n function looseEqual(a, b) {\n if (a === b)\n return true;\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = Array.isArray(a);\n var isArrayB = Array.isArray(b);\n if (isArrayA && isArrayB) {\n return (a.length === b.length &&\n a.every(function (e, i) {\n return looseEqual(e, b[i]);\n }));\n }\n else if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime();\n }\n else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return (keysA.length === keysB.length &&\n keysA.every(function (key) {\n return looseEqual(a[key], b[key]);\n }));\n }\n else {\n /* istanbul ignore next */\n return false;\n }\n }\n catch (e) {\n /* istanbul ignore next */\n return false;\n }\n }\n else if (!isObjectA && !isObjectB) {\n return String(a) === String(b);\n }\n else {\n return false;\n }\n }\n /**\n * Return the first index at which a loosely equal value can be\n * found in the array (if value is a plain object, the array must\n * contain an object of the same shape), or -1 if it is not present.\n */\n function looseIndexOf(arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val))\n return i;\n }\n return -1;\n }\n /**\n * Ensure a function is called only once.\n */\n function once(fn) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n fn.apply(this, arguments);\n }\n };\n }\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is#polyfill\n function hasChanged(x, y) {\n if (x === y) {\n return x === 0 && 1 / x !== 1 / y;\n }\n else {\n return x === x || y === y;\n }\n }\n\n var SSR_ATTR = 'data-server-rendered';\n var ASSET_TYPES = ['component', 'directive', 'filter'];\n var LIFECYCLE_HOOKS = [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUpdate',\n 'updated',\n 'beforeDestroy',\n 'destroyed',\n 'activated',\n 'deactivated',\n 'errorCaptured',\n 'serverPrefetch',\n 'renderTracked',\n 'renderTriggered'\n ];\n\n var config = {\n /**\n * Option merge strategies (used in core/util/options)\n */\n // $flow-disable-line\n optionMergeStrategies: Object.create(null),\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n /**\n * Show production mode tip message on boot?\n */\n productionTip: true,\n /**\n * Whether to enable devtools\n */\n devtools: true,\n /**\n * Whether to record perf\n */\n performance: false,\n /**\n * Error handler for watcher errors\n */\n errorHandler: null,\n /**\n * Warn handler for watcher warns\n */\n warnHandler: null,\n /**\n * Ignore certain custom elements\n */\n ignoredElements: [],\n /**\n * Custom user key aliases for v-on\n */\n // $flow-disable-line\n keyCodes: Object.create(null),\n /**\n * Check if a tag is reserved so that it cannot be registered as a\n * component. This is platform-dependent and may be overwritten.\n */\n isReservedTag: no,\n /**\n * Check if an attribute is reserved so that it cannot be used as a component\n * prop. This is platform-dependent and may be overwritten.\n */\n isReservedAttr: no,\n /**\n * Check if a tag is an unknown element.\n * Platform-dependent.\n */\n isUnknownElement: no,\n /**\n * Get the namespace of an element\n */\n getTagNamespace: noop,\n /**\n * Parse the real tag name for the specific platform.\n */\n parsePlatformTagName: identity,\n /**\n * Check if an attribute must be bound using property, e.g. value\n * Platform-dependent.\n */\n mustUseProp: no,\n /**\n * Perform updates asynchronously. Intended to be used by Vue Test Utils\n * This will significantly reduce performance if set to false.\n */\n async: true,\n /**\n * Exposed for legacy reasons\n */\n _lifecycleHooks: LIFECYCLE_HOOKS\n };\n\n /**\n * unicode letters used for parsing html tags, component names and property paths.\n * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname\n * skipping \\u10000-\\uEFFFF due to it freezing up PhantomJS\n */\n var unicodeRegExp = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\n /**\n * Check if a string starts with $ or _\n */\n function isReserved(str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5f;\n }\n /**\n * Define a property.\n */\n function def(obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n }\n /**\n * Parse simple path.\n */\n var bailRE = new RegExp(\"[^\".concat(unicodeRegExp.source, \".$_\\\\d]\"));\n function parsePath(path) {\n if (bailRE.test(path)) {\n return;\n }\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj)\n return;\n obj = obj[segments[i]];\n }\n return obj;\n };\n }\n\n // can we use __proto__?\n var hasProto = '__proto__' in {};\n // Browser environment sniffing\n var inBrowser = typeof window !== 'undefined';\n var UA = inBrowser && window.navigator.userAgent.toLowerCase();\n var isIE = UA && /msie|trident/.test(UA);\n var isIE9 = UA && UA.indexOf('msie 9.0') > 0;\n var isEdge = UA && UA.indexOf('edge/') > 0;\n UA && UA.indexOf('android') > 0;\n var isIOS = UA && /iphone|ipad|ipod|ios/.test(UA);\n UA && /chrome\\/\\d+/.test(UA) && !isEdge;\n UA && /phantomjs/.test(UA);\n var isFF = UA && UA.match(/firefox\\/(\\d+)/);\n // Firefox has a \"watch\" function on Object.prototype...\n // @ts-expect-error firebox support\n var nativeWatch = {}.watch;\n var supportsPassive = false;\n if (inBrowser) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', {\n get: function () {\n /* istanbul ignore next */\n supportsPassive = true;\n }\n }); // https://github.com/facebook/flow/issues/285\n window.addEventListener('test-passive', null, opts);\n }\n catch (e) { }\n }\n // this needs to be lazy-evaled because vue may be required before\n // vue-server-renderer can set VUE_ENV\n var _isServer;\n var isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && typeof global !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer =\n global['process'] && global['process'].env.VUE_ENV === 'server';\n }\n else {\n _isServer = false;\n }\n }\n return _isServer;\n };\n // detect devtools\n var devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n /* istanbul ignore next */\n function isNative(Ctor) {\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString());\n }\n var hasSymbol = typeof Symbol !== 'undefined' &&\n isNative(Symbol) &&\n typeof Reflect !== 'undefined' &&\n isNative(Reflect.ownKeys);\n var _Set; // $flow-disable-line\n /* istanbul ignore if */ if (typeof Set !== 'undefined' && isNative(Set)) {\n // use native Set when available.\n _Set = Set;\n }\n else {\n // a non-standard Set polyfill that only works with primitive keys.\n _Set = /** @class */ (function () {\n function Set() {\n this.set = Object.create(null);\n }\n Set.prototype.has = function (key) {\n return this.set[key] === true;\n };\n Set.prototype.add = function (key) {\n this.set[key] = true;\n };\n Set.prototype.clear = function () {\n this.set = Object.create(null);\n };\n return Set;\n }());\n }\n\n var currentInstance = null;\n /**\n * This is exposed for compatibility with v3 (e.g. some functions in VueUse\n * relies on it). Do not use this internally, just use `currentInstance`.\n *\n * @internal this function needs manual type declaration because it relies\n * on previously manually authored types from Vue 2\n */\n function getCurrentInstance() {\n return currentInstance && { proxy: currentInstance };\n }\n /**\n * @internal\n */\n function setCurrentInstance(vm) {\n if (vm === void 0) { vm = null; }\n if (!vm)\n currentInstance && currentInstance._scope.off();\n currentInstance = vm;\n vm && vm._scope.on();\n }\n\n /**\n * @internal\n */\n var VNode = /** @class */ (function () {\n function VNode(tag, data, children, text, elm, context, componentOptions, asyncFactory) {\n this.tag = tag;\n this.data = data;\n this.children = children;\n this.text = text;\n this.elm = elm;\n this.ns = undefined;\n this.context = context;\n this.fnContext = undefined;\n this.fnOptions = undefined;\n this.fnScopeId = undefined;\n this.key = data && data.key;\n this.componentOptions = componentOptions;\n this.componentInstance = undefined;\n this.parent = undefined;\n this.raw = false;\n this.isStatic = false;\n this.isRootInsert = true;\n this.isComment = false;\n this.isCloned = false;\n this.isOnce = false;\n this.asyncFactory = asyncFactory;\n this.asyncMeta = undefined;\n this.isAsyncPlaceholder = false;\n }\n Object.defineProperty(VNode.prototype, \"child\", {\n // DEPRECATED: alias for componentInstance for backwards compat.\n /* istanbul ignore next */\n get: function () {\n return this.componentInstance;\n },\n enumerable: false,\n configurable: true\n });\n return VNode;\n }());\n var createEmptyVNode = function (text) {\n if (text === void 0) { text = ''; }\n var node = new VNode();\n node.text = text;\n node.isComment = true;\n return node;\n };\n function createTextVNode(val) {\n return new VNode(undefined, undefined, undefined, String(val));\n }\n // optimized shallow clone\n // used for static nodes and slot nodes because they may be reused across\n // multiple renders, cloning them avoids errors when DOM manipulations rely\n // on their elm reference.\n function cloneVNode(vnode) {\n var cloned = new VNode(vnode.tag, vnode.data, \n // #7975\n // clone children array to avoid mutating original in case of cloning\n // a child.\n vnode.children && vnode.children.slice(), vnode.text, vnode.elm, vnode.context, vnode.componentOptions, vnode.asyncFactory);\n cloned.ns = vnode.ns;\n cloned.isStatic = vnode.isStatic;\n cloned.key = vnode.key;\n cloned.isComment = vnode.isComment;\n cloned.fnContext = vnode.fnContext;\n cloned.fnOptions = vnode.fnOptions;\n cloned.fnScopeId = vnode.fnScopeId;\n cloned.asyncMeta = vnode.asyncMeta;\n cloned.isCloned = true;\n return cloned;\n }\n\n /* not type checking this file because flow doesn't play well with Proxy */\n var initProxy;\n {\n var allowedGlobals_1 = makeMap('Infinity,undefined,NaN,isFinite,isNaN,' +\n 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,' +\n 'require' // for Webpack/Browserify\n );\n var warnNonPresent_1 = function (target, key) {\n warn$2(\"Property or method \\\"\".concat(key, \"\\\" is not defined on the instance but \") +\n 'referenced during render. Make sure that this property is reactive, ' +\n 'either in the data option, or for class-based components, by ' +\n 'initializing the property. ' +\n 'See: https://v2.vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.', target);\n };\n var warnReservedPrefix_1 = function (target, key) {\n warn$2(\"Property \\\"\".concat(key, \"\\\" must be accessed with \\\"$data.\").concat(key, \"\\\" because \") +\n 'properties starting with \"$\" or \"_\" are not proxied in the Vue instance to ' +\n 'prevent conflicts with Vue internals. ' +\n 'See: https://v2.vuejs.org/v2/api/#data', target);\n };\n var hasProxy_1 = typeof Proxy !== 'undefined' && isNative(Proxy);\n if (hasProxy_1) {\n var isBuiltInModifier_1 = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');\n config.keyCodes = new Proxy(config.keyCodes, {\n set: function (target, key, value) {\n if (isBuiltInModifier_1(key)) {\n warn$2(\"Avoid overwriting built-in modifier in config.keyCodes: .\".concat(key));\n return false;\n }\n else {\n target[key] = value;\n return true;\n }\n }\n });\n }\n var hasHandler_1 = {\n has: function (target, key) {\n var has = key in target;\n var isAllowed = allowedGlobals_1(key) ||\n (typeof key === 'string' &&\n key.charAt(0) === '_' &&\n !(key in target.$data));\n if (!has && !isAllowed) {\n if (key in target.$data)\n warnReservedPrefix_1(target, key);\n else\n warnNonPresent_1(target, key);\n }\n return has || !isAllowed;\n }\n };\n var getHandler_1 = {\n get: function (target, key) {\n if (typeof key === 'string' && !(key in target)) {\n if (key in target.$data)\n warnReservedPrefix_1(target, key);\n else\n warnNonPresent_1(target, key);\n }\n return target[key];\n }\n };\n initProxy = function initProxy(vm) {\n if (hasProxy_1) {\n // determine which proxy handler to use\n var options = vm.$options;\n var handlers = options.render && options.render._withStripped ? getHandler_1 : hasHandler_1;\n vm._renderProxy = new Proxy(vm, handlers);\n }\n else {\n vm._renderProxy = vm;\n }\n };\n }\n\n /******************************************************************************\r\n Copyright (c) Microsoft Corporation.\r\n\r\n Permission to use, copy, modify, and/or distribute this software for any\r\n purpose with or without fee is hereby granted.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\n REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\n AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\n INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\n LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\n OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\n PERFORMANCE OF THIS SOFTWARE.\r\n ***************************************************************************** */\r\n\r\n var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n };\n\n var uid$2 = 0;\n var pendingCleanupDeps = [];\n var cleanupDeps = function () {\n for (var i = 0; i < pendingCleanupDeps.length; i++) {\n var dep = pendingCleanupDeps[i];\n dep.subs = dep.subs.filter(function (s) { return s; });\n dep._pending = false;\n }\n pendingCleanupDeps.length = 0;\n };\n /**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n * @internal\n */\n var Dep = /** @class */ (function () {\n function Dep() {\n // pending subs cleanup\n this._pending = false;\n this.id = uid$2++;\n this.subs = [];\n }\n Dep.prototype.addSub = function (sub) {\n this.subs.push(sub);\n };\n Dep.prototype.removeSub = function (sub) {\n // #12696 deps with massive amount of subscribers are extremely slow to\n // clean up in Chromium\n // to workaround this, we unset the sub for now, and clear them on\n // next scheduler flush.\n this.subs[this.subs.indexOf(sub)] = null;\n if (!this._pending) {\n this._pending = true;\n pendingCleanupDeps.push(this);\n }\n };\n Dep.prototype.depend = function (info) {\n if (Dep.target) {\n Dep.target.addDep(this);\n if (info && Dep.target.onTrack) {\n Dep.target.onTrack(__assign({ effect: Dep.target }, info));\n }\n }\n };\n Dep.prototype.notify = function (info) {\n // stabilize the subscriber list first\n var subs = this.subs.filter(function (s) { return s; });\n if (!config.async) {\n // subs aren't sorted in scheduler if not running async\n // we need to sort them now to make sure they fire in correct\n // order\n subs.sort(function (a, b) { return a.id - b.id; });\n }\n for (var i = 0, l = subs.length; i < l; i++) {\n var sub = subs[i];\n if (info) {\n sub.onTrigger &&\n sub.onTrigger(__assign({ effect: subs[i] }, info));\n }\n sub.update();\n }\n };\n return Dep;\n }());\n // The current target watcher being evaluated.\n // This is globally unique because only one watcher\n // can be evaluated at a time.\n Dep.target = null;\n var targetStack = [];\n function pushTarget(target) {\n targetStack.push(target);\n Dep.target = target;\n }\n function popTarget() {\n targetStack.pop();\n Dep.target = targetStack[targetStack.length - 1];\n }\n\n /*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\n var arrayProto = Array.prototype;\n var arrayMethods = Object.create(arrayProto);\n var methodsToPatch = [\n 'push',\n 'pop',\n 'shift',\n 'unshift',\n 'splice',\n 'sort',\n 'reverse'\n ];\n /**\n * Intercept mutating methods and emit events\n */\n methodsToPatch.forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n switch (method) {\n case 'push':\n case 'unshift':\n inserted = args;\n break;\n case 'splice':\n inserted = args.slice(2);\n break;\n }\n if (inserted)\n ob.observeArray(inserted);\n // notify change\n {\n ob.dep.notify({\n type: \"array mutation\" /* TriggerOpTypes.ARRAY_MUTATION */,\n target: this,\n key: method\n });\n }\n return result;\n });\n });\n\n var arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n var NO_INIITIAL_VALUE = {};\n /**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\n var shouldObserve = true;\n function toggleObserving(value) {\n shouldObserve = value;\n }\n // ssr mock dep\n var mockDep = {\n notify: noop,\n depend: noop,\n addSub: noop,\n removeSub: noop\n };\n /**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\n var Observer = /** @class */ (function () {\n function Observer(value, shallow, mock) {\n if (shallow === void 0) { shallow = false; }\n if (mock === void 0) { mock = false; }\n this.value = value;\n this.shallow = shallow;\n this.mock = mock;\n // this.value = value\n this.dep = mock ? mockDep : new Dep();\n this.vmCount = 0;\n def(value, '__ob__', this);\n if (isArray(value)) {\n if (!mock) {\n if (hasProto) {\n value.__proto__ = arrayMethods;\n /* eslint-enable no-proto */\n }\n else {\n for (var i = 0, l = arrayKeys.length; i < l; i++) {\n var key = arrayKeys[i];\n def(value, key, arrayMethods[key]);\n }\n }\n }\n if (!shallow) {\n this.observeArray(value);\n }\n }\n else {\n /**\n * Walk through all properties and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\n var keys = Object.keys(value);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n defineReactive(value, key, NO_INIITIAL_VALUE, undefined, shallow, mock);\n }\n }\n }\n /**\n * Observe a list of Array items.\n */\n Observer.prototype.observeArray = function (value) {\n for (var i = 0, l = value.length; i < l; i++) {\n observe(value[i], false, this.mock);\n }\n };\n return Observer;\n }());\n // helpers\n /**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\n function observe(value, shallow, ssrMockReactivity) {\n if (value && hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n return value.__ob__;\n }\n if (shouldObserve &&\n (ssrMockReactivity || !isServerRendering()) &&\n (isArray(value) || isPlainObject(value)) &&\n Object.isExtensible(value) &&\n !value.__v_skip /* ReactiveFlags.SKIP */ &&\n !isRef(value) &&\n !(value instanceof VNode)) {\n return new Observer(value, shallow, ssrMockReactivity);\n }\n }\n /**\n * Define a reactive property on an Object.\n */\n function defineReactive(obj, key, val, customSetter, shallow, mock) {\n var dep = new Dep();\n var property = Object.getOwnPropertyDescriptor(obj, key);\n if (property && property.configurable === false) {\n return;\n }\n // cater for pre-defined getter/setters\n var getter = property && property.get;\n var setter = property && property.set;\n if ((!getter || setter) &&\n (val === NO_INIITIAL_VALUE || arguments.length === 2)) {\n val = obj[key];\n }\n var childOb = !shallow && observe(val, false, mock);\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get: function reactiveGetter() {\n var value = getter ? getter.call(obj) : val;\n if (Dep.target) {\n {\n dep.depend({\n target: obj,\n type: \"get\" /* TrackOpTypes.GET */,\n key: key\n });\n }\n if (childOb) {\n childOb.dep.depend();\n if (isArray(value)) {\n dependArray(value);\n }\n }\n }\n return isRef(value) && !shallow ? value.value : value;\n },\n set: function reactiveSetter(newVal) {\n var value = getter ? getter.call(obj) : val;\n if (!hasChanged(value, newVal)) {\n return;\n }\n if (customSetter) {\n customSetter();\n }\n if (setter) {\n setter.call(obj, newVal);\n }\n else if (getter) {\n // #7981: for accessor properties without setter\n return;\n }\n else if (!shallow && isRef(value) && !isRef(newVal)) {\n value.value = newVal;\n return;\n }\n else {\n val = newVal;\n }\n childOb = !shallow && observe(newVal, false, mock);\n {\n dep.notify({\n type: \"set\" /* TriggerOpTypes.SET */,\n target: obj,\n key: key,\n newValue: newVal,\n oldValue: value\n });\n }\n }\n });\n return dep;\n }\n function set(target, key, val) {\n if ((isUndef(target) || isPrimitive(target))) {\n warn$2(\"Cannot set reactive property on undefined, null, or primitive value: \".concat(target));\n }\n if (isReadonly(target)) {\n warn$2(\"Set operation on key \\\"\".concat(key, \"\\\" failed: target is readonly.\"));\n return;\n }\n var ob = target.__ob__;\n if (isArray(target) && isValidArrayIndex(key)) {\n target.length = Math.max(target.length, key);\n target.splice(key, 1, val);\n // when mocking for SSR, array methods are not hijacked\n if (ob && !ob.shallow && ob.mock) {\n observe(val, false, true);\n }\n return val;\n }\n if (key in target && !(key in Object.prototype)) {\n target[key] = val;\n return val;\n }\n if (target._isVue || (ob && ob.vmCount)) {\n warn$2('Avoid adding reactive properties to a Vue instance or its root $data ' +\n 'at runtime - declare it upfront in the data option.');\n return val;\n }\n if (!ob) {\n target[key] = val;\n return val;\n }\n defineReactive(ob.value, key, val, undefined, ob.shallow, ob.mock);\n {\n ob.dep.notify({\n type: \"add\" /* TriggerOpTypes.ADD */,\n target: target,\n key: key,\n newValue: val,\n oldValue: undefined\n });\n }\n return val;\n }\n function del(target, key) {\n if ((isUndef(target) || isPrimitive(target))) {\n warn$2(\"Cannot delete reactive property on undefined, null, or primitive value: \".concat(target));\n }\n if (isArray(target) && isValidArrayIndex(key)) {\n target.splice(key, 1);\n return;\n }\n var ob = target.__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n warn$2('Avoid deleting properties on a Vue instance or its root $data ' +\n '- just set it to null.');\n return;\n }\n if (isReadonly(target)) {\n warn$2(\"Delete operation on key \\\"\".concat(key, \"\\\" failed: target is readonly.\"));\n return;\n }\n if (!hasOwn(target, key)) {\n return;\n }\n delete target[key];\n if (!ob) {\n return;\n }\n {\n ob.dep.notify({\n type: \"delete\" /* TriggerOpTypes.DELETE */,\n target: target,\n key: key\n });\n }\n }\n /**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\n function dependArray(value) {\n for (var e = void 0, i = 0, l = value.length; i < l; i++) {\n e = value[i];\n if (e && e.__ob__) {\n e.__ob__.dep.depend();\n }\n if (isArray(e)) {\n dependArray(e);\n }\n }\n }\n\n function reactive(target) {\n makeReactive(target, false);\n return target;\n }\n /**\n * Return a shallowly-reactive copy of the original object, where only the root\n * level properties are reactive. It also does not auto-unwrap refs (even at the\n * root level).\n */\n function shallowReactive(target) {\n makeReactive(target, true);\n def(target, \"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */, true);\n return target;\n }\n function makeReactive(target, shallow) {\n // if trying to observe a readonly proxy, return the readonly version.\n if (!isReadonly(target)) {\n {\n if (isArray(target)) {\n warn$2(\"Avoid using Array as root value for \".concat(shallow ? \"shallowReactive()\" : \"reactive()\", \" as it cannot be tracked in watch() or watchEffect(). Use \").concat(shallow ? \"shallowRef()\" : \"ref()\", \" instead. This is a Vue-2-only limitation.\"));\n }\n var existingOb = target && target.__ob__;\n if (existingOb && existingOb.shallow !== shallow) {\n warn$2(\"Target is already a \".concat(existingOb.shallow ? \"\" : \"non-\", \"shallow reactive object, and cannot be converted to \").concat(shallow ? \"\" : \"non-\", \"shallow.\"));\n }\n }\n var ob = observe(target, shallow, isServerRendering() /* ssr mock reactivity */);\n if (!ob) {\n if (target == null || isPrimitive(target)) {\n warn$2(\"value cannot be made reactive: \".concat(String(target)));\n }\n if (isCollectionType(target)) {\n warn$2(\"Vue 2 does not support reactive collection types such as Map or Set.\");\n }\n }\n }\n }\n function isReactive(value) {\n if (isReadonly(value)) {\n return isReactive(value[\"__v_raw\" /* ReactiveFlags.RAW */]);\n }\n return !!(value && value.__ob__);\n }\n function isShallow(value) {\n return !!(value && value.__v_isShallow);\n }\n function isReadonly(value) {\n return !!(value && value.__v_isReadonly);\n }\n function isProxy(value) {\n return isReactive(value) || isReadonly(value);\n }\n function toRaw(observed) {\n var raw = observed && observed[\"__v_raw\" /* ReactiveFlags.RAW */];\n return raw ? toRaw(raw) : observed;\n }\n function markRaw(value) {\n // non-extensible objects won't be observed anyway\n if (Object.isExtensible(value)) {\n def(value, \"__v_skip\" /* ReactiveFlags.SKIP */, true);\n }\n return value;\n }\n /**\n * @internal\n */\n function isCollectionType(value) {\n var type = toRawType(value);\n return (type === 'Map' || type === 'WeakMap' || type === 'Set' || type === 'WeakSet');\n }\n\n /**\n * @internal\n */\n var RefFlag = \"__v_isRef\";\n function isRef(r) {\n return !!(r && r.__v_isRef === true);\n }\n function ref$1(value) {\n return createRef(value, false);\n }\n function shallowRef(value) {\n return createRef(value, true);\n }\n function createRef(rawValue, shallow) {\n if (isRef(rawValue)) {\n return rawValue;\n }\n var ref = {};\n def(ref, RefFlag, true);\n def(ref, \"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */, shallow);\n def(ref, 'dep', defineReactive(ref, 'value', rawValue, null, shallow, isServerRendering()));\n return ref;\n }\n function triggerRef(ref) {\n if (!ref.dep) {\n warn$2(\"received object is not a triggerable ref.\");\n }\n {\n ref.dep &&\n ref.dep.notify({\n type: \"set\" /* TriggerOpTypes.SET */,\n target: ref,\n key: 'value'\n });\n }\n }\n function unref(ref) {\n return isRef(ref) ? ref.value : ref;\n }\n function proxyRefs(objectWithRefs) {\n if (isReactive(objectWithRefs)) {\n return objectWithRefs;\n }\n var proxy = {};\n var keys = Object.keys(objectWithRefs);\n for (var i = 0; i < keys.length; i++) {\n proxyWithRefUnwrap(proxy, objectWithRefs, keys[i]);\n }\n return proxy;\n }\n function proxyWithRefUnwrap(target, source, key) {\n Object.defineProperty(target, key, {\n enumerable: true,\n configurable: true,\n get: function () {\n var val = source[key];\n if (isRef(val)) {\n return val.value;\n }\n else {\n var ob = val && val.__ob__;\n if (ob)\n ob.dep.depend();\n return val;\n }\n },\n set: function (value) {\n var oldValue = source[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n }\n else {\n source[key] = value;\n }\n }\n });\n }\n function customRef(factory) {\n var dep = new Dep();\n var _a = factory(function () {\n {\n dep.depend({\n target: ref,\n type: \"get\" /* TrackOpTypes.GET */,\n key: 'value'\n });\n }\n }, function () {\n {\n dep.notify({\n target: ref,\n type: \"set\" /* TriggerOpTypes.SET */,\n key: 'value'\n });\n }\n }), get = _a.get, set = _a.set;\n var ref = {\n get value() {\n return get();\n },\n set value(newVal) {\n set(newVal);\n }\n };\n def(ref, RefFlag, true);\n return ref;\n }\n function toRefs(object) {\n if (!isReactive(object)) {\n warn$2(\"toRefs() expects a reactive object but received a plain one.\");\n }\n var ret = isArray(object) ? new Array(object.length) : {};\n for (var key in object) {\n ret[key] = toRef(object, key);\n }\n return ret;\n }\n function toRef(object, key, defaultValue) {\n var val = object[key];\n if (isRef(val)) {\n return val;\n }\n var ref = {\n get value() {\n var val = object[key];\n return val === undefined ? defaultValue : val;\n },\n set value(newVal) {\n object[key] = newVal;\n }\n };\n def(ref, RefFlag, true);\n return ref;\n }\n\n var rawToReadonlyFlag = \"__v_rawToReadonly\";\n var rawToShallowReadonlyFlag = \"__v_rawToShallowReadonly\";\n function readonly(target) {\n return createReadonly(target, false);\n }\n function createReadonly(target, shallow) {\n if (!isPlainObject(target)) {\n {\n if (isArray(target)) {\n warn$2(\"Vue 2 does not support readonly arrays.\");\n }\n else if (isCollectionType(target)) {\n warn$2(\"Vue 2 does not support readonly collection types such as Map or Set.\");\n }\n else {\n warn$2(\"value cannot be made readonly: \".concat(typeof target));\n }\n }\n return target;\n }\n if (!Object.isExtensible(target)) {\n warn$2(\"Vue 2 does not support creating readonly proxy for non-extensible object.\");\n }\n // already a readonly object\n if (isReadonly(target)) {\n return target;\n }\n // already has a readonly proxy\n var existingFlag = shallow ? rawToShallowReadonlyFlag : rawToReadonlyFlag;\n var existingProxy = target[existingFlag];\n if (existingProxy) {\n return existingProxy;\n }\n var proxy = Object.create(Object.getPrototypeOf(target));\n def(target, existingFlag, proxy);\n def(proxy, \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */, true);\n def(proxy, \"__v_raw\" /* ReactiveFlags.RAW */, target);\n if (isRef(target)) {\n def(proxy, RefFlag, true);\n }\n if (shallow || isShallow(target)) {\n def(proxy, \"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */, true);\n }\n var keys = Object.keys(target);\n for (var i = 0; i < keys.length; i++) {\n defineReadonlyProperty(proxy, target, keys[i], shallow);\n }\n return proxy;\n }\n function defineReadonlyProperty(proxy, target, key, shallow) {\n Object.defineProperty(proxy, key, {\n enumerable: true,\n configurable: true,\n get: function () {\n var val = target[key];\n return shallow || !isPlainObject(val) ? val : readonly(val);\n },\n set: function () {\n warn$2(\"Set operation on key \\\"\".concat(key, \"\\\" failed: target is readonly.\"));\n }\n });\n }\n /**\n * Returns a reactive-copy of the original object, where only the root level\n * properties are readonly, and does NOT unwrap refs nor recursively convert\n * returned properties.\n * This is used for creating the props proxy object for stateful components.\n */\n function shallowReadonly(target) {\n return createReadonly(target, true);\n }\n\n function computed(getterOrOptions, debugOptions) {\n var getter;\n var setter;\n var onlyGetter = isFunction(getterOrOptions);\n if (onlyGetter) {\n getter = getterOrOptions;\n setter = function () {\n warn$2('Write operation failed: computed value is readonly');\n }\n ;\n }\n else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n var watcher = isServerRendering()\n ? null\n : new Watcher(currentInstance, getter, noop, { lazy: true });\n if (watcher && debugOptions) {\n watcher.onTrack = debugOptions.onTrack;\n watcher.onTrigger = debugOptions.onTrigger;\n }\n var ref = {\n // some libs rely on the presence effect for checking computed refs\n // from normal refs, but the implementation doesn't matter\n effect: watcher,\n get value() {\n if (watcher) {\n if (watcher.dirty) {\n watcher.evaluate();\n }\n if (Dep.target) {\n if (Dep.target.onTrack) {\n Dep.target.onTrack({\n effect: Dep.target,\n target: ref,\n type: \"get\" /* TrackOpTypes.GET */,\n key: 'value'\n });\n }\n watcher.depend();\n }\n return watcher.value;\n }\n else {\n return getter();\n }\n },\n set value(newVal) {\n setter(newVal);\n }\n };\n def(ref, RefFlag, true);\n def(ref, \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */, onlyGetter);\n return ref;\n }\n\n var mark;\n var measure;\n {\n var perf_1 = inBrowser && window.performance;\n /* istanbul ignore if */\n if (perf_1 &&\n // @ts-ignore\n perf_1.mark &&\n // @ts-ignore\n perf_1.measure &&\n // @ts-ignore\n perf_1.clearMarks &&\n // @ts-ignore\n perf_1.clearMeasures) {\n mark = function (tag) { return perf_1.mark(tag); };\n measure = function (name, startTag, endTag) {\n perf_1.measure(name, startTag, endTag);\n perf_1.clearMarks(startTag);\n perf_1.clearMarks(endTag);\n // perf.clearMeasures(name)\n };\n }\n }\n\n var normalizeEvent = cached(function (name) {\n var passive = name.charAt(0) === '&';\n name = passive ? name.slice(1) : name;\n var once = name.charAt(0) === '~'; // Prefixed last, checked first\n name = once ? name.slice(1) : name;\n var capture = name.charAt(0) === '!';\n name = capture ? name.slice(1) : name;\n return {\n name: name,\n once: once,\n capture: capture,\n passive: passive\n };\n });\n function createFnInvoker(fns, vm) {\n function invoker() {\n var fns = invoker.fns;\n if (isArray(fns)) {\n var cloned = fns.slice();\n for (var i = 0; i < cloned.length; i++) {\n invokeWithErrorHandling(cloned[i], null, arguments, vm, \"v-on handler\");\n }\n }\n else {\n // return handler return value for single handlers\n return invokeWithErrorHandling(fns, null, arguments, vm, \"v-on handler\");\n }\n }\n invoker.fns = fns;\n return invoker;\n }\n function updateListeners(on, oldOn, add, remove, createOnceHandler, vm) {\n var name, cur, old, event;\n for (name in on) {\n cur = on[name];\n old = oldOn[name];\n event = normalizeEvent(name);\n if (isUndef(cur)) {\n warn$2(\"Invalid handler for event \\\"\".concat(event.name, \"\\\": got \") + String(cur), vm);\n }\n else if (isUndef(old)) {\n if (isUndef(cur.fns)) {\n cur = on[name] = createFnInvoker(cur, vm);\n }\n if (isTrue(event.once)) {\n cur = on[name] = createOnceHandler(event.name, cur, event.capture);\n }\n add(event.name, cur, event.capture, event.passive, event.params);\n }\n else if (cur !== old) {\n old.fns = cur;\n on[name] = old;\n }\n }\n for (name in oldOn) {\n if (isUndef(on[name])) {\n event = normalizeEvent(name);\n remove(event.name, oldOn[name], event.capture);\n }\n }\n }\n\n function mergeVNodeHook(def, hookKey, hook) {\n if (def instanceof VNode) {\n def = def.data.hook || (def.data.hook = {});\n }\n var invoker;\n var oldHook = def[hookKey];\n function wrappedHook() {\n hook.apply(this, arguments);\n // important: remove merged hook to ensure it's called only once\n // and prevent memory leak\n remove$2(invoker.fns, wrappedHook);\n }\n if (isUndef(oldHook)) {\n // no existing hook\n invoker = createFnInvoker([wrappedHook]);\n }\n else {\n /* istanbul ignore if */\n if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {\n // already a merged invoker\n invoker = oldHook;\n invoker.fns.push(wrappedHook);\n }\n else {\n // existing plain hook\n invoker = createFnInvoker([oldHook, wrappedHook]);\n }\n }\n invoker.merged = true;\n def[hookKey] = invoker;\n }\n\n function extractPropsFromVNodeData(data, Ctor, tag) {\n // we are only extracting raw values here.\n // validation and default values are handled in the child\n // component itself.\n var propOptions = Ctor.options.props;\n if (isUndef(propOptions)) {\n return;\n }\n var res = {};\n var attrs = data.attrs, props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n {\n var keyInLowerCase = key.toLowerCase();\n if (key !== keyInLowerCase && attrs && hasOwn(attrs, keyInLowerCase)) {\n tip(\"Prop \\\"\".concat(keyInLowerCase, \"\\\" is passed to component \") +\n \"\".concat(formatComponentName(\n // @ts-expect-error tag is string\n tag || Ctor), \", but the declared prop name is\") +\n \" \\\"\".concat(key, \"\\\". \") +\n \"Note that HTML attributes are case-insensitive and camelCased \" +\n \"props need to use their kebab-case equivalents when using in-DOM \" +\n \"templates. You should probably use \\\"\".concat(altKey, \"\\\" instead of \\\"\").concat(key, \"\\\".\"));\n }\n }\n checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n }\n }\n return res;\n }\n function checkProp(res, hash, key, altKey, preserve) {\n if (isDef(hash)) {\n if (hasOwn(hash, key)) {\n res[key] = hash[key];\n if (!preserve) {\n delete hash[key];\n }\n return true;\n }\n else if (hasOwn(hash, altKey)) {\n res[key] = hash[altKey];\n if (!preserve) {\n delete hash[altKey];\n }\n return true;\n }\n }\n return false;\n }\n\n // The template compiler attempts to minimize the need for normalization by\n // statically analyzing the template at compile time.\n //\n // For plain HTML markup, normalization can be completely skipped because the\n // generated render function is guaranteed to return Array<VNode>. There are\n // two cases where extra normalization is needed:\n // 1. When the children contains components - because a functional component\n // may return an Array instead of a single root. In this case, just a simple\n // normalization is needed - if any child is an Array, we flatten the whole\n // thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n // because functional components already normalize their own children.\n function simpleNormalizeChildren(children) {\n for (var i = 0; i < children.length; i++) {\n if (isArray(children[i])) {\n return Array.prototype.concat.apply([], children);\n }\n }\n return children;\n }\n // 2. When the children contains constructs that always generated nested Arrays,\n // e.g. <template>, <slot>, v-for, or when the children is provided by user\n // with hand-written render functions / JSX. In such cases a full normalization\n // is needed to cater to all possible types of children values.\n function normalizeChildren(children) {\n return isPrimitive(children)\n ? [createTextVNode(children)]\n : isArray(children)\n ? normalizeArrayChildren(children)\n : undefined;\n }\n function isTextNode(node) {\n return isDef(node) && isDef(node.text) && isFalse(node.isComment);\n }\n function normalizeArrayChildren(children, nestedIndex) {\n var res = [];\n var i, c, lastIndex, last;\n for (i = 0; i < children.length; i++) {\n c = children[i];\n if (isUndef(c) || typeof c === 'boolean')\n continue;\n lastIndex = res.length - 1;\n last = res[lastIndex];\n // nested\n if (isArray(c)) {\n if (c.length > 0) {\n c = normalizeArrayChildren(c, \"\".concat(nestedIndex || '', \"_\").concat(i));\n // merge adjacent text nodes\n if (isTextNode(c[0]) && isTextNode(last)) {\n res[lastIndex] = createTextVNode(last.text + c[0].text);\n c.shift();\n }\n res.push.apply(res, c);\n }\n }\n else if (isPrimitive(c)) {\n if (isTextNode(last)) {\n // merge adjacent text nodes\n // this is necessary for SSR hydration because text nodes are\n // essentially merged when rendered to HTML strings\n res[lastIndex] = createTextVNode(last.text + c);\n }\n else if (c !== '') {\n // convert primitive to vnode\n res.push(createTextVNode(c));\n }\n }\n else {\n if (isTextNode(c) && isTextNode(last)) {\n // merge adjacent text nodes\n res[lastIndex] = createTextVNode(last.text + c.text);\n }\n else {\n // default key for nested array children (likely generated by v-for)\n if (isTrue(children._isVList) &&\n isDef(c.tag) &&\n isUndef(c.key) &&\n isDef(nestedIndex)) {\n c.key = \"__vlist\".concat(nestedIndex, \"_\").concat(i, \"__\");\n }\n res.push(c);\n }\n }\n }\n return res;\n }\n\n var SIMPLE_NORMALIZE = 1;\n var ALWAYS_NORMALIZE = 2;\n // wrapper function for providing a more flexible interface\n // without getting yelled at by flow\n function createElement$1(context, tag, data, children, normalizationType, alwaysNormalize) {\n if (isArray(data) || isPrimitive(data)) {\n normalizationType = children;\n children = data;\n data = undefined;\n }\n if (isTrue(alwaysNormalize)) {\n normalizationType = ALWAYS_NORMALIZE;\n }\n return _createElement(context, tag, data, children, normalizationType);\n }\n function _createElement(context, tag, data, children, normalizationType) {\n if (isDef(data) && isDef(data.__ob__)) {\n warn$2(\"Avoid using observed data object as vnode data: \".concat(JSON.stringify(data), \"\\n\") + 'Always create fresh vnode data objects in each render!', context);\n return createEmptyVNode();\n }\n // object syntax in v-bind\n if (isDef(data) && isDef(data.is)) {\n tag = data.is;\n }\n if (!tag) {\n // in case of component :is set to falsy value\n return createEmptyVNode();\n }\n // warn against non-primitive key\n if (isDef(data) && isDef(data.key) && !isPrimitive(data.key)) {\n warn$2('Avoid using non-primitive value as key, ' +\n 'use string/number value instead.', context);\n }\n // support single function children as default scoped slot\n if (isArray(children) && isFunction(children[0])) {\n data = data || {};\n data.scopedSlots = { default: children[0] };\n children.length = 0;\n }\n if (normalizationType === ALWAYS_NORMALIZE) {\n children = normalizeChildren(children);\n }\n else if (normalizationType === SIMPLE_NORMALIZE) {\n children = simpleNormalizeChildren(children);\n }\n var vnode, ns;\n if (typeof tag === 'string') {\n var Ctor = void 0;\n ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag);\n if (config.isReservedTag(tag)) {\n // platform built-in elements\n if (isDef(data) &&\n isDef(data.nativeOn) &&\n data.tag !== 'component') {\n warn$2(\"The .native modifier for v-on is only valid on components but it was used on <\".concat(tag, \">.\"), context);\n }\n vnode = new VNode(config.parsePlatformTagName(tag), data, children, undefined, undefined, context);\n }\n else if ((!data || !data.pre) &&\n isDef((Ctor = resolveAsset(context.$options, 'components', tag)))) {\n // component\n vnode = createComponent(Ctor, data, context, children, tag);\n }\n else {\n // unknown or unlisted namespaced elements\n // check at runtime because it may get assigned a namespace when its\n // parent normalizes children\n vnode = new VNode(tag, data, children, undefined, undefined, context);\n }\n }\n else {\n // direct component options / constructor\n vnode = createComponent(tag, data, context, children);\n }\n if (isArray(vnode)) {\n return vnode;\n }\n else if (isDef(vnode)) {\n if (isDef(ns))\n applyNS(vnode, ns);\n if (isDef(data))\n registerDeepBindings(data);\n return vnode;\n }\n else {\n return createEmptyVNode();\n }\n }\n function applyNS(vnode, ns, force) {\n vnode.ns = ns;\n if (vnode.tag === 'foreignObject') {\n // use default namespace inside foreignObject\n ns = undefined;\n force = true;\n }\n if (isDef(vnode.children)) {\n for (var i = 0, l = vnode.children.length; i < l; i++) {\n var child = vnode.children[i];\n if (isDef(child.tag) &&\n (isUndef(child.ns) || (isTrue(force) && child.tag !== 'svg'))) {\n applyNS(child, ns, force);\n }\n }\n }\n }\n // ref #5318\n // necessary to ensure parent re-render when deep bindings like :style and\n // :class are used on slot nodes\n function registerDeepBindings(data) {\n if (isObject(data.style)) {\n traverse(data.style);\n }\n if (isObject(data.class)) {\n traverse(data.class);\n }\n }\n\n /**\n * Runtime helper for rendering v-for lists.\n */\n function renderList(val, render) {\n var ret = null, i, l, keys, key;\n if (isArray(val) || typeof val === 'string') {\n ret = new Array(val.length);\n for (i = 0, l = val.length; i < l; i++) {\n ret[i] = render(val[i], i);\n }\n }\n else if (typeof val === 'number') {\n ret = new Array(val);\n for (i = 0; i < val; i++) {\n ret[i] = render(i + 1, i);\n }\n }\n else if (isObject(val)) {\n if (hasSymbol && val[Symbol.iterator]) {\n ret = [];\n var iterator = val[Symbol.iterator]();\n var result = iterator.next();\n while (!result.done) {\n ret.push(render(result.value, ret.length));\n result = iterator.next();\n }\n }\n else {\n keys = Object.keys(val);\n ret = new Array(keys.length);\n for (i = 0, l = keys.length; i < l; i++) {\n key = keys[i];\n ret[i] = render(val[key], key, i);\n }\n }\n }\n if (!isDef(ret)) {\n ret = [];\n }\n ret._isVList = true;\n return ret;\n }\n\n /**\n * Runtime helper for rendering <slot>\n */\n function renderSlot(name, fallbackRender, props, bindObject) {\n var scopedSlotFn = this.$scopedSlots[name];\n var nodes;\n if (scopedSlotFn) {\n // scoped slot\n props = props || {};\n if (bindObject) {\n if (!isObject(bindObject)) {\n warn$2('slot v-bind without argument expects an Object', this);\n }\n props = extend(extend({}, bindObject), props);\n }\n nodes =\n scopedSlotFn(props) ||\n (isFunction(fallbackRender) ? fallbackRender() : fallbackRender);\n }\n else {\n nodes =\n this.$slots[name] ||\n (isFunction(fallbackRender) ? fallbackRender() : fallbackRender);\n }\n var target = props && props.slot;\n if (target) {\n return this.$createElement('template', { slot: target }, nodes);\n }\n else {\n return nodes;\n }\n }\n\n /**\n * Runtime helper for resolving filters\n */\n function resolveFilter(id) {\n return resolveAsset(this.$options, 'filters', id, true) || identity;\n }\n\n function isKeyNotMatch(expect, actual) {\n if (isArray(expect)) {\n return expect.indexOf(actual) === -1;\n }\n else {\n return expect !== actual;\n }\n }\n /**\n * Runtime helper for checking keyCodes from config.\n * exposed as Vue.prototype._k\n * passing in eventKeyName as last argument separately for backwards compat\n */\n function checkKeyCodes(eventKeyCode, key, builtInKeyCode, eventKeyName, builtInKeyName) {\n var mappedKeyCode = config.keyCodes[key] || builtInKeyCode;\n if (builtInKeyName && eventKeyName && !config.keyCodes[key]) {\n return isKeyNotMatch(builtInKeyName, eventKeyName);\n }\n else if (mappedKeyCode) {\n return isKeyNotMatch(mappedKeyCode, eventKeyCode);\n }\n else if (eventKeyName) {\n return hyphenate(eventKeyName) !== key;\n }\n return eventKeyCode === undefined;\n }\n\n /**\n * Runtime helper for merging v-bind=\"object\" into a VNode's data.\n */\n function bindObjectProps(data, tag, value, asProp, isSync) {\n if (value) {\n if (!isObject(value)) {\n warn$2('v-bind without argument expects an Object or Array value', this);\n }\n else {\n if (isArray(value)) {\n value = toObject(value);\n }\n var hash = void 0;\n var _loop_1 = function (key) {\n if (key === 'class' || key === 'style' || isReservedAttribute(key)) {\n hash = data;\n }\n else {\n var type = data.attrs && data.attrs.type;\n hash =\n asProp || config.mustUseProp(tag, type, key)\n ? data.domProps || (data.domProps = {})\n : data.attrs || (data.attrs = {});\n }\n var camelizedKey = camelize(key);\n var hyphenatedKey = hyphenate(key);\n if (!(camelizedKey in hash) && !(hyphenatedKey in hash)) {\n hash[key] = value[key];\n if (isSync) {\n var on = data.on || (data.on = {});\n on[\"update:\".concat(key)] = function ($event) {\n value[key] = $event;\n };\n }\n }\n };\n for (var key in value) {\n _loop_1(key);\n }\n }\n }\n return data;\n }\n\n /**\n * Runtime helper for rendering static trees.\n */\n function renderStatic(index, isInFor) {\n var cached = this._staticTrees || (this._staticTrees = []);\n var tree = cached[index];\n // if has already-rendered static tree and not inside v-for,\n // we can reuse the same tree.\n if (tree && !isInFor) {\n return tree;\n }\n // otherwise, render a fresh tree.\n tree = cached[index] = this.$options.staticRenderFns[index].call(this._renderProxy, this._c, this // for render fns generated for functional component templates\n );\n markStatic$1(tree, \"__static__\".concat(index), false);\n return tree;\n }\n /**\n * Runtime helper for v-once.\n * Effectively it means marking the node as static with a unique key.\n */\n function markOnce(tree, index, key) {\n markStatic$1(tree, \"__once__\".concat(index).concat(key ? \"_\".concat(key) : \"\"), true);\n return tree;\n }\n function markStatic$1(tree, key, isOnce) {\n if (isArray(tree)) {\n for (var i = 0; i < tree.length; i++) {\n if (tree[i] && typeof tree[i] !== 'string') {\n markStaticNode(tree[i], \"\".concat(key, \"_\").concat(i), isOnce);\n }\n }\n }\n else {\n markStaticNode(tree, key, isOnce);\n }\n }\n function markStaticNode(node, key, isOnce) {\n node.isStatic = true;\n node.key = key;\n node.isOnce = isOnce;\n }\n\n function bindObjectListeners(data, value) {\n if (value) {\n if (!isPlainObject(value)) {\n warn$2('v-on without argument expects an Object value', this);\n }\n else {\n var on = (data.on = data.on ? extend({}, data.on) : {});\n for (var key in value) {\n var existing = on[key];\n var ours = value[key];\n on[key] = existing ? [].concat(existing, ours) : ours;\n }\n }\n }\n return data;\n }\n\n function resolveScopedSlots(fns, res, \n // the following are added in 2.6\n hasDynamicKeys, contentHashKey) {\n res = res || { $stable: !hasDynamicKeys };\n for (var i = 0; i < fns.length; i++) {\n var slot = fns[i];\n if (isArray(slot)) {\n resolveScopedSlots(slot, res, hasDynamicKeys);\n }\n else if (slot) {\n // marker for reverse proxying v-slot without scope on this.$slots\n // @ts-expect-error\n if (slot.proxy) {\n // @ts-expect-error\n slot.fn.proxy = true;\n }\n res[slot.key] = slot.fn;\n }\n }\n if (contentHashKey) {\n res.$key = contentHashKey;\n }\n return res;\n }\n\n // helper to process dynamic keys for dynamic arguments in v-bind and v-on.\n function bindDynamicKeys(baseObj, values) {\n for (var i = 0; i < values.length; i += 2) {\n var key = values[i];\n if (typeof key === 'string' && key) {\n baseObj[values[i]] = values[i + 1];\n }\n else if (key !== '' && key !== null) {\n // null is a special value for explicitly removing a binding\n warn$2(\"Invalid value for dynamic directive argument (expected string or null): \".concat(key), this);\n }\n }\n return baseObj;\n }\n // helper to dynamically append modifier runtime markers to event names.\n // ensure only append when value is already string, otherwise it will be cast\n // to string and cause the type check to miss.\n function prependModifier(value, symbol) {\n return typeof value === 'string' ? symbol + value : value;\n }\n\n function installRenderHelpers(target) {\n target._o = markOnce;\n target._n = toNumber;\n target._s = toString;\n target._l = renderList;\n target._t = renderSlot;\n target._q = looseEqual;\n target._i = looseIndexOf;\n target._m = renderStatic;\n target._f = resolveFilter;\n target._k = checkKeyCodes;\n target._b = bindObjectProps;\n target._v = createTextVNode;\n target._e = createEmptyVNode;\n target._u = resolveScopedSlots;\n target._g = bindObjectListeners;\n target._d = bindDynamicKeys;\n target._p = prependModifier;\n }\n\n /**\n * Runtime helper for resolving raw children VNodes into a slot object.\n */\n function resolveSlots(children, context) {\n if (!children || !children.length) {\n return {};\n }\n var slots = {};\n for (var i = 0, l = children.length; i < l; i++) {\n var child = children[i];\n var data = child.data;\n // remove slot attribute if the node is resolved as a Vue slot node\n if (data && data.attrs && data.attrs.slot) {\n delete data.attrs.slot;\n }\n // named slots should only be respected if the vnode was rendered in the\n // same context.\n if ((child.context === context || child.fnContext === context) &&\n data &&\n data.slot != null) {\n var name_1 = data.slot;\n var slot = slots[name_1] || (slots[name_1] = []);\n if (child.tag === 'template') {\n slot.push.apply(slot, child.children || []);\n }\n else {\n slot.push(child);\n }\n }\n else {\n (slots.default || (slots.default = [])).push(child);\n }\n }\n // ignore slots that contains only whitespace\n for (var name_2 in slots) {\n if (slots[name_2].every(isWhitespace)) {\n delete slots[name_2];\n }\n }\n return slots;\n }\n function isWhitespace(node) {\n return (node.isComment && !node.asyncFactory) || node.text === ' ';\n }\n\n function isAsyncPlaceholder(node) {\n // @ts-expect-error not really boolean type\n return node.isComment && node.asyncFactory;\n }\n\n function normalizeScopedSlots(ownerVm, scopedSlots, normalSlots, prevScopedSlots) {\n var res;\n var hasNormalSlots = Object.keys(normalSlots).length > 0;\n var isStable = scopedSlots ? !!scopedSlots.$stable : !hasNormalSlots;\n var key = scopedSlots && scopedSlots.$key;\n if (!scopedSlots) {\n res = {};\n }\n else if (scopedSlots._normalized) {\n // fast path 1: child component re-render only, parent did not change\n return scopedSlots._normalized;\n }\n else if (isStable &&\n prevScopedSlots &&\n prevScopedSlots !== emptyObject &&\n key === prevScopedSlots.$key &&\n !hasNormalSlots &&\n !prevScopedSlots.$hasNormal) {\n // fast path 2: stable scoped slots w/ no normal slots to proxy,\n // only need to normalize once\n return prevScopedSlots;\n }\n else {\n res = {};\n for (var key_1 in scopedSlots) {\n if (scopedSlots[key_1] && key_1[0] !== '$') {\n res[key_1] = normalizeScopedSlot(ownerVm, normalSlots, key_1, scopedSlots[key_1]);\n }\n }\n }\n // expose normal slots on scopedSlots\n for (var key_2 in normalSlots) {\n if (!(key_2 in res)) {\n res[key_2] = proxyNormalSlot(normalSlots, key_2);\n }\n }\n // avoriaz seems to mock a non-extensible $scopedSlots object\n // and when that is passed down this would cause an error\n if (scopedSlots && Object.isExtensible(scopedSlots)) {\n scopedSlots._normalized = res;\n }\n def(res, '$stable', isStable);\n def(res, '$key', key);\n def(res, '$hasNormal', hasNormalSlots);\n return res;\n }\n function normalizeScopedSlot(vm, normalSlots, key, fn) {\n var normalized = function () {\n var cur = currentInstance;\n setCurrentInstance(vm);\n var res = arguments.length ? fn.apply(null, arguments) : fn({});\n res =\n res && typeof res === 'object' && !isArray(res)\n ? [res] // single vnode\n : normalizeChildren(res);\n var vnode = res && res[0];\n setCurrentInstance(cur);\n return res &&\n (!vnode ||\n (res.length === 1 && vnode.isComment && !isAsyncPlaceholder(vnode))) // #9658, #10391\n ? undefined\n : res;\n };\n // this is a slot using the new v-slot syntax without scope. although it is\n // compiled as a scoped slot, render fn users would expect it to be present\n // on this.$slots because the usage is semantically a normal slot.\n if (fn.proxy) {\n Object.defineProperty(normalSlots, key, {\n get: normalized,\n enumerable: true,\n configurable: true\n });\n }\n return normalized;\n }\n function proxyNormalSlot(slots, key) {\n return function () { return slots[key]; };\n }\n\n function initSetup(vm) {\n var options = vm.$options;\n var setup = options.setup;\n if (setup) {\n var ctx = (vm._setupContext = createSetupContext(vm));\n setCurrentInstance(vm);\n pushTarget();\n var setupResult = invokeWithErrorHandling(setup, null, [vm._props || shallowReactive({}), ctx], vm, \"setup\");\n popTarget();\n setCurrentInstance();\n if (isFunction(setupResult)) {\n // render function\n // @ts-ignore\n options.render = setupResult;\n }\n else if (isObject(setupResult)) {\n // bindings\n if (setupResult instanceof VNode) {\n warn$2(\"setup() should not return VNodes directly - \" +\n \"return a render function instead.\");\n }\n vm._setupState = setupResult;\n // __sfc indicates compiled bindings from <script setup>\n if (!setupResult.__sfc) {\n for (var key in setupResult) {\n if (!isReserved(key)) {\n proxyWithRefUnwrap(vm, setupResult, key);\n }\n else {\n warn$2(\"Avoid using variables that start with _ or $ in setup().\");\n }\n }\n }\n else {\n // exposed for compiled render fn\n var proxy = (vm._setupProxy = {});\n for (var key in setupResult) {\n if (key !== '__sfc') {\n proxyWithRefUnwrap(proxy, setupResult, key);\n }\n }\n }\n }\n else if (setupResult !== undefined) {\n warn$2(\"setup() should return an object. Received: \".concat(setupResult === null ? 'null' : typeof setupResult));\n }\n }\n }\n function createSetupContext(vm) {\n var exposeCalled = false;\n return {\n get attrs() {\n if (!vm._attrsProxy) {\n var proxy = (vm._attrsProxy = {});\n def(proxy, '_v_attr_proxy', true);\n syncSetupProxy(proxy, vm.$attrs, emptyObject, vm, '$attrs');\n }\n return vm._attrsProxy;\n },\n get listeners() {\n if (!vm._listenersProxy) {\n var proxy = (vm._listenersProxy = {});\n syncSetupProxy(proxy, vm.$listeners, emptyObject, vm, '$listeners');\n }\n return vm._listenersProxy;\n },\n get slots() {\n return initSlotsProxy(vm);\n },\n emit: bind$1(vm.$emit, vm),\n expose: function (exposed) {\n {\n if (exposeCalled) {\n warn$2(\"expose() should be called only once per setup().\", vm);\n }\n exposeCalled = true;\n }\n if (exposed) {\n Object.keys(exposed).forEach(function (key) {\n return proxyWithRefUnwrap(vm, exposed, key);\n });\n }\n }\n };\n }\n function syncSetupProxy(to, from, prev, instance, type) {\n var changed = false;\n for (var key in from) {\n if (!(key in to)) {\n changed = true;\n defineProxyAttr(to, key, instance, type);\n }\n else if (from[key] !== prev[key]) {\n changed = true;\n }\n }\n for (var key in to) {\n if (!(key in from)) {\n changed = true;\n delete to[key];\n }\n }\n return changed;\n }\n function defineProxyAttr(proxy, key, instance, type) {\n Object.defineProperty(proxy, key, {\n enumerable: true,\n configurable: true,\n get: function () {\n return instance[type][key];\n }\n });\n }\n function initSlotsProxy(vm) {\n if (!vm._slotsProxy) {\n syncSetupSlots((vm._slotsProxy = {}), vm.$scopedSlots);\n }\n return vm._slotsProxy;\n }\n function syncSetupSlots(to, from) {\n for (var key in from) {\n to[key] = from[key];\n }\n for (var key in to) {\n if (!(key in from)) {\n delete to[key];\n }\n }\n }\n /**\n * @internal use manual type def because public setup context type relies on\n * legacy VNode types\n */\n function useSlots() {\n return getContext().slots;\n }\n /**\n * @internal use manual type def because public setup context type relies on\n * legacy VNode types\n */\n function useAttrs() {\n return getContext().attrs;\n }\n /**\n * Vue 2 only\n * @internal use manual type def because public setup context type relies on\n * legacy VNode types\n */\n function useListeners() {\n return getContext().listeners;\n }\n function getContext() {\n if (!currentInstance) {\n warn$2(\"useContext() called without active instance.\");\n }\n var vm = currentInstance;\n return vm._setupContext || (vm._setupContext = createSetupContext(vm));\n }\n /**\n * Runtime helper for merging default declarations. Imported by compiled code\n * only.\n * @internal\n */\n function mergeDefaults(raw, defaults) {\n var props = isArray(raw)\n ? raw.reduce(function (normalized, p) { return ((normalized[p] = {}), normalized); }, {})\n : raw;\n for (var key in defaults) {\n var opt = props[key];\n if (opt) {\n if (isArray(opt) || isFunction(opt)) {\n props[key] = { type: opt, default: defaults[key] };\n }\n else {\n opt.default = defaults[key];\n }\n }\n else if (opt === null) {\n props[key] = { default: defaults[key] };\n }\n else {\n warn$2(\"props default key \\\"\".concat(key, \"\\\" has no corresponding declaration.\"));\n }\n }\n return props;\n }\n\n function initRender(vm) {\n vm._vnode = null; // the root of the child tree\n vm._staticTrees = null; // v-once cached trees\n var options = vm.$options;\n var parentVnode = (vm.$vnode = options._parentVnode); // the placeholder node in parent tree\n var renderContext = parentVnode && parentVnode.context;\n vm.$slots = resolveSlots(options._renderChildren, renderContext);\n vm.$scopedSlots = parentVnode\n ? normalizeScopedSlots(vm.$parent, parentVnode.data.scopedSlots, vm.$slots)\n : emptyObject;\n // bind the createElement fn to this instance\n // so that we get proper render context inside it.\n // args order: tag, data, children, normalizationType, alwaysNormalize\n // internal version is used by render functions compiled from templates\n // @ts-expect-error\n vm._c = function (a, b, c, d) { return createElement$1(vm, a, b, c, d, false); };\n // normalization is always applied for the public version, used in\n // user-written render functions.\n // @ts-expect-error\n vm.$createElement = function (a, b, c, d) { return createElement$1(vm, a, b, c, d, true); };\n // $attrs & $listeners are exposed for easier HOC creation.\n // they need to be reactive so that HOCs using them are always updated\n var parentData = parentVnode && parentVnode.data;\n /* istanbul ignore else */\n {\n defineReactive(vm, '$attrs', (parentData && parentData.attrs) || emptyObject, function () {\n !isUpdatingChildComponent && warn$2(\"$attrs is readonly.\", vm);\n }, true);\n defineReactive(vm, '$listeners', options._parentListeners || emptyObject, function () {\n !isUpdatingChildComponent && warn$2(\"$listeners is readonly.\", vm);\n }, true);\n }\n }\n var currentRenderingInstance = null;\n function renderMixin(Vue) {\n // install runtime convenience helpers\n installRenderHelpers(Vue.prototype);\n Vue.prototype.$nextTick = function (fn) {\n return nextTick(fn, this);\n };\n Vue.prototype._render = function () {\n var vm = this;\n var _a = vm.$options, render = _a.render, _parentVnode = _a._parentVnode;\n if (_parentVnode && vm._isMounted) {\n vm.$scopedSlots = normalizeScopedSlots(vm.$parent, _parentVnode.data.scopedSlots, vm.$slots, vm.$scopedSlots);\n if (vm._slotsProxy) {\n syncSetupSlots(vm._slotsProxy, vm.$scopedSlots);\n }\n }\n // set parent vnode. this allows render functions to have access\n // to the data on the placeholder node.\n vm.$vnode = _parentVnode;\n // render self\n var vnode;\n try {\n // There's no need to maintain a stack because all render fns are called\n // separately from one another. Nested component's render fns are called\n // when parent component is patched.\n setCurrentInstance(vm);\n currentRenderingInstance = vm;\n vnode = render.call(vm._renderProxy, vm.$createElement);\n }\n catch (e) {\n handleError(e, vm, \"render\");\n // return error render result,\n // or previous vnode to prevent render error causing blank component\n /* istanbul ignore else */\n if (vm.$options.renderError) {\n try {\n vnode = vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e);\n }\n catch (e) {\n handleError(e, vm, \"renderError\");\n vnode = vm._vnode;\n }\n }\n else {\n vnode = vm._vnode;\n }\n }\n finally {\n currentRenderingInstance = null;\n setCurrentInstance();\n }\n // if the returned array contains only a single node, allow it\n if (isArray(vnode) && vnode.length === 1) {\n vnode = vnode[0];\n }\n // return empty vnode in case the render function errored out\n if (!(vnode instanceof VNode)) {\n if (isArray(vnode)) {\n warn$2('Multiple root nodes returned from render function. Render function ' +\n 'should return a single root node.', vm);\n }\n vnode = createEmptyVNode();\n }\n // set parent\n vnode.parent = _parentVnode;\n return vnode;\n };\n }\n\n function ensureCtor(comp, base) {\n if (comp.__esModule || (hasSymbol && comp[Symbol.toStringTag] === 'Module')) {\n comp = comp.default;\n }\n return isObject(comp) ? base.extend(comp) : comp;\n }\n function createAsyncPlaceholder(factory, data, context, children, tag) {\n var node = createEmptyVNode();\n node.asyncFactory = factory;\n node.asyncMeta = { data: data, context: context, children: children, tag: tag };\n return node;\n }\n function resolveAsyncComponent(factory, baseCtor) {\n if (isTrue(factory.error) && isDef(factory.errorComp)) {\n return factory.errorComp;\n }\n if (isDef(factory.resolved)) {\n return factory.resolved;\n }\n var owner = currentRenderingInstance;\n if (owner && isDef(factory.owners) && factory.owners.indexOf(owner) === -1) {\n // already pending\n factory.owners.push(owner);\n }\n if (isTrue(factory.loading) && isDef(factory.loadingComp)) {\n return factory.loadingComp;\n }\n if (owner && !isDef(factory.owners)) {\n var owners_1 = (factory.owners = [owner]);\n var sync_1 = true;\n var timerLoading_1 = null;\n var timerTimeout_1 = null;\n owner.$on('hook:destroyed', function () { return remove$2(owners_1, owner); });\n var forceRender_1 = function (renderCompleted) {\n for (var i = 0, l = owners_1.length; i < l; i++) {\n owners_1[i].$forceUpdate();\n }\n if (renderCompleted) {\n owners_1.length = 0;\n if (timerLoading_1 !== null) {\n clearTimeout(timerLoading_1);\n timerLoading_1 = null;\n }\n if (timerTimeout_1 !== null) {\n clearTimeout(timerTimeout_1);\n timerTimeout_1 = null;\n }\n }\n };\n var resolve = once(function (res) {\n // cache resolved\n factory.resolved = ensureCtor(res, baseCtor);\n // invoke callbacks only if this is not a synchronous resolve\n // (async resolves are shimmed as synchronous during SSR)\n if (!sync_1) {\n forceRender_1(true);\n }\n else {\n owners_1.length = 0;\n }\n });\n var reject_1 = once(function (reason) {\n warn$2(\"Failed to resolve async component: \".concat(String(factory)) +\n (reason ? \"\\nReason: \".concat(reason) : ''));\n if (isDef(factory.errorComp)) {\n factory.error = true;\n forceRender_1(true);\n }\n });\n var res_1 = factory(resolve, reject_1);\n if (isObject(res_1)) {\n if (isPromise(res_1)) {\n // () => Promise\n if (isUndef(factory.resolved)) {\n res_1.then(resolve, reject_1);\n }\n }\n else if (isPromise(res_1.component)) {\n res_1.component.then(resolve, reject_1);\n if (isDef(res_1.error)) {\n factory.errorComp = ensureCtor(res_1.error, baseCtor);\n }\n if (isDef(res_1.loading)) {\n factory.loadingComp = ensureCtor(res_1.loading, baseCtor);\n if (res_1.delay === 0) {\n factory.loading = true;\n }\n else {\n // @ts-expect-error NodeJS timeout type\n timerLoading_1 = setTimeout(function () {\n timerLoading_1 = null;\n if (isUndef(factory.resolved) && isUndef(factory.error)) {\n factory.loading = true;\n forceRender_1(false);\n }\n }, res_1.delay || 200);\n }\n }\n if (isDef(res_1.timeout)) {\n // @ts-expect-error NodeJS timeout type\n timerTimeout_1 = setTimeout(function () {\n timerTimeout_1 = null;\n if (isUndef(factory.resolved)) {\n reject_1(\"timeout (\".concat(res_1.timeout, \"ms)\") );\n }\n }, res_1.timeout);\n }\n }\n }\n sync_1 = false;\n // return in case resolved synchronously\n return factory.loading ? factory.loadingComp : factory.resolved;\n }\n }\n\n function getFirstComponentChild(children) {\n if (isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n var c = children[i];\n if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {\n return c;\n }\n }\n }\n }\n\n function initEvents(vm) {\n vm._events = Object.create(null);\n vm._hasHookEvent = false;\n // init parent attached events\n var listeners = vm.$options._parentListeners;\n if (listeners) {\n updateComponentListeners(vm, listeners);\n }\n }\n var target$1;\n function add$1(event, fn) {\n target$1.$on(event, fn);\n }\n function remove$1(event, fn) {\n target$1.$off(event, fn);\n }\n function createOnceHandler$1(event, fn) {\n var _target = target$1;\n return function onceHandler() {\n var res = fn.apply(null, arguments);\n if (res !== null) {\n _target.$off(event, onceHandler);\n }\n };\n }\n function updateComponentListeners(vm, listeners, oldListeners) {\n target$1 = vm;\n updateListeners(listeners, oldListeners || {}, add$1, remove$1, createOnceHandler$1, vm);\n target$1 = undefined;\n }\n function eventsMixin(Vue) {\n var hookRE = /^hook:/;\n Vue.prototype.$on = function (event, fn) {\n var vm = this;\n if (isArray(event)) {\n for (var i = 0, l = event.length; i < l; i++) {\n vm.$on(event[i], fn);\n }\n }\n else {\n (vm._events[event] || (vm._events[event] = [])).push(fn);\n // optimize hook:event cost by using a boolean flag marked at registration\n // instead of a hash lookup\n if (hookRE.test(event)) {\n vm._hasHookEvent = true;\n }\n }\n return vm;\n };\n Vue.prototype.$once = function (event, fn) {\n var vm = this;\n function on() {\n vm.$off(event, on);\n fn.apply(vm, arguments);\n }\n on.fn = fn;\n vm.$on(event, on);\n return vm;\n };\n Vue.prototype.$off = function (event, fn) {\n var vm = this;\n // all\n if (!arguments.length) {\n vm._events = Object.create(null);\n return vm;\n }\n // array of events\n if (isArray(event)) {\n for (var i_1 = 0, l = event.length; i_1 < l; i_1++) {\n vm.$off(event[i_1], fn);\n }\n return vm;\n }\n // specific event\n var cbs = vm._events[event];\n if (!cbs) {\n return vm;\n }\n if (!fn) {\n vm._events[event] = null;\n return vm;\n }\n // specific handler\n var cb;\n var i = cbs.length;\n while (i--) {\n cb = cbs[i];\n if (cb === fn || cb.fn === fn) {\n cbs.splice(i, 1);\n break;\n }\n }\n return vm;\n };\n Vue.prototype.$emit = function (event) {\n var vm = this;\n {\n var lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && vm._events[lowerCaseEvent]) {\n tip(\"Event \\\"\".concat(lowerCaseEvent, \"\\\" is emitted in component \") +\n \"\".concat(formatComponentName(vm), \" but the handler is registered for \\\"\").concat(event, \"\\\". \") +\n \"Note that HTML attributes are case-insensitive and you cannot use \" +\n \"v-on to listen to camelCase events when using in-DOM templates. \" +\n \"You should probably use \\\"\".concat(hyphenate(event), \"\\\" instead of \\\"\").concat(event, \"\\\".\"));\n }\n }\n var cbs = vm._events[event];\n if (cbs) {\n cbs = cbs.length > 1 ? toArray(cbs) : cbs;\n var args = toArray(arguments, 1);\n var info = \"event handler for \\\"\".concat(event, \"\\\"\");\n for (var i = 0, l = cbs.length; i < l; i++) {\n invokeWithErrorHandling(cbs[i], vm, args, vm, info);\n }\n }\n return vm;\n };\n }\n\n var activeInstance = null;\n var isUpdatingChildComponent = false;\n function setActiveInstance(vm) {\n var prevActiveInstance = activeInstance;\n activeInstance = vm;\n return function () {\n activeInstance = prevActiveInstance;\n };\n }\n function initLifecycle(vm) {\n var options = vm.$options;\n // locate first non-abstract parent\n var parent = options.parent;\n if (parent && !options.abstract) {\n while (parent.$options.abstract && parent.$parent) {\n parent = parent.$parent;\n }\n parent.$children.push(vm);\n }\n vm.$parent = parent;\n vm.$root = parent ? parent.$root : vm;\n vm.$children = [];\n vm.$refs = {};\n vm._provided = parent ? parent._provided : Object.create(null);\n vm._watcher = null;\n vm._inactive = null;\n vm._directInactive = false;\n vm._isMounted = false;\n vm._isDestroyed = false;\n vm._isBeingDestroyed = false;\n }\n function lifecycleMixin(Vue) {\n Vue.prototype._update = function (vnode, hydrating) {\n var vm = this;\n var prevEl = vm.$el;\n var prevVnode = vm._vnode;\n var restoreActiveInstance = setActiveInstance(vm);\n vm._vnode = vnode;\n // Vue.prototype.__patch__ is injected in entry points\n // based on the rendering backend used.\n if (!prevVnode) {\n // initial render\n vm.$el = vm.__patch__(vm.$el, vnode, hydrating, false /* removeOnly */);\n }\n else {\n // updates\n vm.$el = vm.__patch__(prevVnode, vnode);\n }\n restoreActiveInstance();\n // update __vue__ reference\n if (prevEl) {\n prevEl.__vue__ = null;\n }\n if (vm.$el) {\n vm.$el.__vue__ = vm;\n }\n // if parent is an HOC, update its $el as well\n var wrapper = vm;\n while (wrapper &&\n wrapper.$vnode &&\n wrapper.$parent &&\n wrapper.$vnode === wrapper.$parent._vnode) {\n wrapper.$parent.$el = wrapper.$el;\n wrapper = wrapper.$parent;\n }\n // updated hook is called by the scheduler to ensure that children are\n // updated in a parent's updated hook.\n };\n Vue.prototype.$forceUpdate = function () {\n var vm = this;\n if (vm._watcher) {\n vm._watcher.update();\n }\n };\n Vue.prototype.$destroy = function () {\n var vm = this;\n if (vm._isBeingDestroyed) {\n return;\n }\n callHook$1(vm, 'beforeDestroy');\n vm._isBeingDestroyed = true;\n // remove self from parent\n var parent = vm.$parent;\n if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {\n remove$2(parent.$children, vm);\n }\n // teardown scope. this includes both the render watcher and other\n // watchers created\n vm._scope.stop();\n // remove reference from data ob\n // frozen object may not have observer.\n if (vm._data.__ob__) {\n vm._data.__ob__.vmCount--;\n }\n // call the last hook...\n vm._isDestroyed = true;\n // invoke destroy hooks on current rendered tree\n vm.__patch__(vm._vnode, null);\n // fire destroyed hook\n callHook$1(vm, 'destroyed');\n // turn off all instance listeners.\n vm.$off();\n // remove __vue__ reference\n if (vm.$el) {\n vm.$el.__vue__ = null;\n }\n // release circular reference (#6759)\n if (vm.$vnode) {\n vm.$vnode.parent = null;\n }\n };\n }\n function mountComponent(vm, el, hydrating) {\n vm.$el = el;\n if (!vm.$options.render) {\n // @ts-expect-error invalid type\n vm.$options.render = createEmptyVNode;\n {\n /* istanbul ignore if */\n if ((vm.$options.template && vm.$options.template.charAt(0) !== '#') ||\n vm.$options.el ||\n el) {\n warn$2('You are using the runtime-only build of Vue where the template ' +\n 'compiler is not available. Either pre-compile the templates into ' +\n 'render functions, or use the compiler-included build.', vm);\n }\n else {\n warn$2('Failed to mount component: template or render function not defined.', vm);\n }\n }\n }\n callHook$1(vm, 'beforeMount');\n var updateComponent;\n /* istanbul ignore if */\n if (config.performance && mark) {\n updateComponent = function () {\n var name = vm._name;\n var id = vm._uid;\n var startTag = \"vue-perf-start:\".concat(id);\n var endTag = \"vue-perf-end:\".concat(id);\n mark(startTag);\n var vnode = vm._render();\n mark(endTag);\n measure(\"vue \".concat(name, \" render\"), startTag, endTag);\n mark(startTag);\n vm._update(vnode, hydrating);\n mark(endTag);\n measure(\"vue \".concat(name, \" patch\"), startTag, endTag);\n };\n }\n else {\n updateComponent = function () {\n vm._update(vm._render(), hydrating);\n };\n }\n var watcherOptions = {\n before: function () {\n if (vm._isMounted && !vm._isDestroyed) {\n callHook$1(vm, 'beforeUpdate');\n }\n }\n };\n {\n watcherOptions.onTrack = function (e) { return callHook$1(vm, 'renderTracked', [e]); };\n watcherOptions.onTrigger = function (e) { return callHook$1(vm, 'renderTriggered', [e]); };\n }\n // we set this to vm._watcher inside the watcher's constructor\n // since the watcher's initial patch may call $forceUpdate (e.g. inside child\n // component's mounted hook), which relies on vm._watcher being already defined\n new Watcher(vm, updateComponent, noop, watcherOptions, true /* isRenderWatcher */);\n hydrating = false;\n // flush buffer for flush: \"pre\" watchers queued in setup()\n var preWatchers = vm._preWatchers;\n if (preWatchers) {\n for (var i = 0; i < preWatchers.length; i++) {\n preWatchers[i].run();\n }\n }\n // manually mounted instance, call mounted on self\n // mounted is called for render-created child components in its inserted hook\n if (vm.$vnode == null) {\n vm._isMounted = true;\n callHook$1(vm, 'mounted');\n }\n return vm;\n }\n function updateChildComponent(vm, propsData, listeners, parentVnode, renderChildren) {\n {\n isUpdatingChildComponent = true;\n }\n // determine whether component has slot children\n // we need to do this before overwriting $options._renderChildren.\n // check if there are dynamic scopedSlots (hand-written or compiled but with\n // dynamic slot names). Static scoped slots compiled from template has the\n // \"$stable\" marker.\n var newScopedSlots = parentVnode.data.scopedSlots;\n var oldScopedSlots = vm.$scopedSlots;\n var hasDynamicScopedSlot = !!((newScopedSlots && !newScopedSlots.$stable) ||\n (oldScopedSlots !== emptyObject && !oldScopedSlots.$stable) ||\n (newScopedSlots && vm.$scopedSlots.$key !== newScopedSlots.$key) ||\n (!newScopedSlots && vm.$scopedSlots.$key));\n // Any static slot children from the parent may have changed during parent's\n // update. Dynamic scoped slots may also have changed. In such cases, a forced\n // update is necessary to ensure correctness.\n var needsForceUpdate = !!(renderChildren || // has new static slots\n vm.$options._renderChildren || // has old static slots\n hasDynamicScopedSlot);\n var prevVNode = vm.$vnode;\n vm.$options._parentVnode = parentVnode;\n vm.$vnode = parentVnode; // update vm's placeholder node without re-render\n if (vm._vnode) {\n // update child tree's parent\n vm._vnode.parent = parentVnode;\n }\n vm.$options._renderChildren = renderChildren;\n // update $attrs and $listeners hash\n // these are also reactive so they may trigger child update if the child\n // used them during render\n var attrs = parentVnode.data.attrs || emptyObject;\n if (vm._attrsProxy) {\n // force update if attrs are accessed and has changed since it may be\n // passed to a child component.\n if (syncSetupProxy(vm._attrsProxy, attrs, (prevVNode.data && prevVNode.data.attrs) || emptyObject, vm, '$attrs')) {\n needsForceUpdate = true;\n }\n }\n vm.$attrs = attrs;\n // update listeners\n listeners = listeners || emptyObject;\n var prevListeners = vm.$options._parentListeners;\n if (vm._listenersProxy) {\n syncSetupProxy(vm._listenersProxy, listeners, prevListeners || emptyObject, vm, '$listeners');\n }\n vm.$listeners = vm.$options._parentListeners = listeners;\n updateComponentListeners(vm, listeners, prevListeners);\n // update props\n if (propsData && vm.$options.props) {\n toggleObserving(false);\n var props = vm._props;\n var propKeys = vm.$options._propKeys || [];\n for (var i = 0; i < propKeys.length; i++) {\n var key = propKeys[i];\n var propOptions = vm.$options.props; // wtf flow?\n props[key] = validateProp(key, propOptions, propsData, vm);\n }\n toggleObserving(true);\n // keep a copy of raw propsData\n vm.$options.propsData = propsData;\n }\n // resolve slots + force update if has children\n if (needsForceUpdate) {\n vm.$slots = resolveSlots(renderChildren, parentVnode.context);\n vm.$forceUpdate();\n }\n {\n isUpdatingChildComponent = false;\n }\n }\n function isInInactiveTree(vm) {\n while (vm && (vm = vm.$parent)) {\n if (vm._inactive)\n return true;\n }\n return false;\n }\n function activateChildComponent(vm, direct) {\n if (direct) {\n vm._directInactive = false;\n if (isInInactiveTree(vm)) {\n return;\n }\n }\n else if (vm._directInactive) {\n return;\n }\n if (vm._inactive || vm._inactive === null) {\n vm._inactive = false;\n for (var i = 0; i < vm.$children.length; i++) {\n activateChildComponent(vm.$children[i]);\n }\n callHook$1(vm, 'activated');\n }\n }\n function deactivateChildComponent(vm, direct) {\n if (direct) {\n vm._directInactive = true;\n if (isInInactiveTree(vm)) {\n return;\n }\n }\n if (!vm._inactive) {\n vm._inactive = true;\n for (var i = 0; i < vm.$children.length; i++) {\n deactivateChildComponent(vm.$children[i]);\n }\n callHook$1(vm, 'deactivated');\n }\n }\n function callHook$1(vm, hook, args, setContext) {\n if (setContext === void 0) { setContext = true; }\n // #7573 disable dep collection when invoking lifecycle hooks\n pushTarget();\n var prev = currentInstance;\n setContext && setCurrentInstance(vm);\n var handlers = vm.$options[hook];\n var info = \"\".concat(hook, \" hook\");\n if (handlers) {\n for (var i = 0, j = handlers.length; i < j; i++) {\n invokeWithErrorHandling(handlers[i], vm, args || null, vm, info);\n }\n }\n if (vm._hasHookEvent) {\n vm.$emit('hook:' + hook);\n }\n setContext && setCurrentInstance(prev);\n popTarget();\n }\n\n var MAX_UPDATE_COUNT = 100;\n var queue = [];\n var activatedChildren = [];\n var has = {};\n var circular = {};\n var waiting = false;\n var flushing = false;\n var index$1 = 0;\n /**\n * Reset the scheduler's state.\n */\n function resetSchedulerState() {\n index$1 = queue.length = activatedChildren.length = 0;\n has = {};\n {\n circular = {};\n }\n waiting = flushing = false;\n }\n // Async edge case #6566 requires saving the timestamp when event listeners are\n // attached. However, calling performance.now() has a perf overhead especially\n // if the page has thousands of event listeners. Instead, we take a timestamp\n // every time the scheduler flushes and use that for all event listeners\n // attached during that flush.\n var currentFlushTimestamp = 0;\n // Async edge case fix requires storing an event listener's attach timestamp.\n var getNow = Date.now;\n // Determine what event timestamp the browser is using. Annoyingly, the\n // timestamp can either be hi-res (relative to page load) or low-res\n // (relative to UNIX epoch), so in order to compare time we have to use the\n // same timestamp type when saving the flush timestamp.\n // All IE versions use low-res event timestamps, and have problematic clock\n // implementations (#9632)\n if (inBrowser && !isIE) {\n var performance_1 = window.performance;\n if (performance_1 &&\n typeof performance_1.now === 'function' &&\n getNow() > document.createEvent('Event').timeStamp) {\n // if the event timestamp, although evaluated AFTER the Date.now(), is\n // smaller than it, it means the event is using a hi-res timestamp,\n // and we need to use the hi-res version for event listener timestamps as\n // well.\n getNow = function () { return performance_1.now(); };\n }\n }\n var sortCompareFn = function (a, b) {\n if (a.post) {\n if (!b.post)\n return 1;\n }\n else if (b.post) {\n return -1;\n }\n return a.id - b.id;\n };\n /**\n * Flush both queues and run the watchers.\n */\n function flushSchedulerQueue() {\n currentFlushTimestamp = getNow();\n flushing = true;\n var watcher, id;\n // Sort queue before flush.\n // This ensures that:\n // 1. Components are updated from parent to child. (because parent is always\n // created before the child)\n // 2. A component's user watchers are run before its render watcher (because\n // user watchers are created before the render watcher)\n // 3. If a component is destroyed during a parent component's watcher run,\n // its watchers can be skipped.\n queue.sort(sortCompareFn);\n // do not cache length because more watchers might be pushed\n // as we run existing watchers\n for (index$1 = 0; index$1 < queue.length; index$1++) {\n watcher = queue[index$1];\n if (watcher.before) {\n watcher.before();\n }\n id = watcher.id;\n has[id] = null;\n watcher.run();\n // in dev build, check and stop circular updates.\n if (has[id] != null) {\n circular[id] = (circular[id] || 0) + 1;\n if (circular[id] > MAX_UPDATE_COUNT) {\n warn$2('You may have an infinite update loop ' +\n (watcher.user\n ? \"in watcher with expression \\\"\".concat(watcher.expression, \"\\\"\")\n : \"in a component render function.\"), watcher.vm);\n break;\n }\n }\n }\n // keep copies of post queues before resetting state\n var activatedQueue = activatedChildren.slice();\n var updatedQueue = queue.slice();\n resetSchedulerState();\n // call component updated and activated hooks\n callActivatedHooks(activatedQueue);\n callUpdatedHooks(updatedQueue);\n cleanupDeps();\n // devtool hook\n /* istanbul ignore if */\n if (devtools && config.devtools) {\n devtools.emit('flush');\n }\n }\n function callUpdatedHooks(queue) {\n var i = queue.length;\n while (i--) {\n var watcher = queue[i];\n var vm = watcher.vm;\n if (vm && vm._watcher === watcher && vm._isMounted && !vm._isDestroyed) {\n callHook$1(vm, 'updated');\n }\n }\n }\n /**\n * Queue a kept-alive component that was activated during patch.\n * The queue will be processed after the entire tree has been patched.\n */\n function queueActivatedComponent(vm) {\n // setting _inactive to false here so that a render function can\n // rely on checking whether it's in an inactive tree (e.g. router-view)\n vm._inactive = false;\n activatedChildren.push(vm);\n }\n function callActivatedHooks(queue) {\n for (var i = 0; i < queue.length; i++) {\n queue[i]._inactive = true;\n activateChildComponent(queue[i], true /* true */);\n }\n }\n /**\n * Push a watcher into the watcher queue.\n * Jobs with duplicate IDs will be skipped unless it's\n * pushed when the queue is being flushed.\n */\n function queueWatcher(watcher) {\n var id = watcher.id;\n if (has[id] != null) {\n return;\n }\n if (watcher === Dep.target && watcher.noRecurse) {\n return;\n }\n has[id] = true;\n if (!flushing) {\n queue.push(watcher);\n }\n else {\n // if already flushing, splice the watcher based on its id\n // if already past its id, it will be run next immediately.\n var i = queue.length - 1;\n while (i > index$1 && queue[i].id > watcher.id) {\n i--;\n }\n queue.splice(i + 1, 0, watcher);\n }\n // queue the flush\n if (!waiting) {\n waiting = true;\n if (!config.async) {\n flushSchedulerQueue();\n return;\n }\n nextTick(flushSchedulerQueue);\n }\n }\n\n var WATCHER = \"watcher\";\n var WATCHER_CB = \"\".concat(WATCHER, \" callback\");\n var WATCHER_GETTER = \"\".concat(WATCHER, \" getter\");\n var WATCHER_CLEANUP = \"\".concat(WATCHER, \" cleanup\");\n // Simple effect.\n function watchEffect(effect, options) {\n return doWatch(effect, null, options);\n }\n function watchPostEffect(effect, options) {\n return doWatch(effect, null, (__assign(__assign({}, options), { flush: 'post' }) ));\n }\n function watchSyncEffect(effect, options) {\n return doWatch(effect, null, (__assign(__assign({}, options), { flush: 'sync' }) ));\n }\n // initial value for watchers to trigger on undefined initial values\n var INITIAL_WATCHER_VALUE = {};\n // implementation\n function watch(source, cb, options) {\n if (typeof cb !== 'function') {\n warn$2(\"`watch(fn, options?)` signature has been moved to a separate API. \" +\n \"Use `watchEffect(fn, options?)` instead. `watch` now only \" +\n \"supports `watch(source, cb, options?) signature.\");\n }\n return doWatch(source, cb, options);\n }\n function doWatch(source, cb, _a) {\n var _b = _a === void 0 ? emptyObject : _a, immediate = _b.immediate, deep = _b.deep, _c = _b.flush, flush = _c === void 0 ? 'pre' : _c, onTrack = _b.onTrack, onTrigger = _b.onTrigger;\n if (!cb) {\n if (immediate !== undefined) {\n warn$2(\"watch() \\\"immediate\\\" option is only respected when using the \" +\n \"watch(source, callback, options?) signature.\");\n }\n if (deep !== undefined) {\n warn$2(\"watch() \\\"deep\\\" option is only respected when using the \" +\n \"watch(source, callback, options?) signature.\");\n }\n }\n var warnInvalidSource = function (s) {\n warn$2(\"Invalid watch source: \".concat(s, \". A watch source can only be a getter/effect \") +\n \"function, a ref, a reactive object, or an array of these types.\");\n };\n var instance = currentInstance;\n var call = function (fn, type, args) {\n if (args === void 0) { args = null; }\n return invokeWithErrorHandling(fn, null, args, instance, type);\n };\n var getter;\n var forceTrigger = false;\n var isMultiSource = false;\n if (isRef(source)) {\n getter = function () { return source.value; };\n forceTrigger = isShallow(source);\n }\n else if (isReactive(source)) {\n getter = function () {\n source.__ob__.dep.depend();\n return source;\n };\n deep = true;\n }\n else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some(function (s) { return isReactive(s) || isShallow(s); });\n getter = function () {\n return source.map(function (s) {\n if (isRef(s)) {\n return s.value;\n }\n else if (isReactive(s)) {\n return traverse(s);\n }\n else if (isFunction(s)) {\n return call(s, WATCHER_GETTER);\n }\n else {\n warnInvalidSource(s);\n }\n });\n };\n }\n else if (isFunction(source)) {\n if (cb) {\n // getter with cb\n getter = function () { return call(source, WATCHER_GETTER); };\n }\n else {\n // no cb -> simple effect\n getter = function () {\n if (instance && instance._isDestroyed) {\n return;\n }\n if (cleanup) {\n cleanup();\n }\n return call(source, WATCHER, [onCleanup]);\n };\n }\n }\n else {\n getter = noop;\n warnInvalidSource(source);\n }\n if (cb && deep) {\n var baseGetter_1 = getter;\n getter = function () { return traverse(baseGetter_1()); };\n }\n var cleanup;\n var onCleanup = function (fn) {\n cleanup = watcher.onStop = function () {\n call(fn, WATCHER_CLEANUP);\n };\n };\n // in SSR there is no need to setup an actual effect, and it should be noop\n // unless it's eager\n if (isServerRendering()) {\n // we will also not call the invalidate callback (+ runner is not set up)\n onCleanup = noop;\n if (!cb) {\n getter();\n }\n else if (immediate) {\n call(cb, WATCHER_CB, [\n getter(),\n isMultiSource ? [] : undefined,\n onCleanup\n ]);\n }\n return noop;\n }\n var watcher = new Watcher(currentInstance, getter, noop, {\n lazy: true\n });\n watcher.noRecurse = !cb;\n var oldValue = isMultiSource ? [] : INITIAL_WATCHER_VALUE;\n // overwrite default run\n watcher.run = function () {\n if (!watcher.active) {\n return;\n }\n if (cb) {\n // watch(source, cb)\n var newValue = watcher.get();\n if (deep ||\n forceTrigger ||\n (isMultiSource\n ? newValue.some(function (v, i) {\n return hasChanged(v, oldValue[i]);\n })\n : hasChanged(newValue, oldValue))) {\n // cleanup before running cb again\n if (cleanup) {\n cleanup();\n }\n call(cb, WATCHER_CB, [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE ? undefined : oldValue,\n onCleanup\n ]);\n oldValue = newValue;\n }\n }\n else {\n // watchEffect\n watcher.get();\n }\n };\n if (flush === 'sync') {\n watcher.update = watcher.run;\n }\n else if (flush === 'post') {\n watcher.post = true;\n watcher.update = function () { return queueWatcher(watcher); };\n }\n else {\n // pre\n watcher.update = function () {\n if (instance && instance === currentInstance && !instance._isMounted) {\n // pre-watcher triggered before\n var buffer = instance._preWatchers || (instance._preWatchers = []);\n if (buffer.indexOf(watcher) < 0)\n buffer.push(watcher);\n }\n else {\n queueWatcher(watcher);\n }\n };\n }\n {\n watcher.onTrack = onTrack;\n watcher.onTrigger = onTrigger;\n }\n // initial run\n if (cb) {\n if (immediate) {\n watcher.run();\n }\n else {\n oldValue = watcher.get();\n }\n }\n else if (flush === 'post' && instance) {\n instance.$once('hook:mounted', function () { return watcher.get(); });\n }\n else {\n watcher.get();\n }\n return function () {\n watcher.teardown();\n };\n }\n\n var activeEffectScope;\n var EffectScope = /** @class */ (function () {\n function EffectScope(detached) {\n if (detached === void 0) { detached = false; }\n this.detached = detached;\n /**\n * @internal\n */\n this.active = true;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this.parent = activeEffectScope;\n if (!detached && activeEffectScope) {\n this.index =\n (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(this) - 1;\n }\n }\n EffectScope.prototype.run = function (fn) {\n if (this.active) {\n var currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n }\n finally {\n activeEffectScope = currentEffectScope;\n }\n }\n else {\n warn$2(\"cannot run an inactive effect scope.\");\n }\n };\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n EffectScope.prototype.on = function () {\n activeEffectScope = this;\n };\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n EffectScope.prototype.off = function () {\n activeEffectScope = this.parent;\n };\n EffectScope.prototype.stop = function (fromParent) {\n if (this.active) {\n var i = void 0, l = void 0;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].teardown();\n }\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n }\n // nested scope, dereference from parent to avoid memory leaks\n if (!this.detached && this.parent && !fromParent) {\n // optimized O(1) removal\n var last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = undefined;\n this.active = false;\n }\n };\n return EffectScope;\n }());\n function effectScope(detached) {\n return new EffectScope(detached);\n }\n /**\n * @internal\n */\n function recordEffectScope(effect, scope) {\n if (scope === void 0) { scope = activeEffectScope; }\n if (scope && scope.active) {\n scope.effects.push(effect);\n }\n }\n function getCurrentScope() {\n return activeEffectScope;\n }\n function onScopeDispose(fn) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n }\n else {\n warn$2(\"onScopeDispose() is called when there is no active effect scope\" +\n \" to be associated with.\");\n }\n }\n\n function provide(key, value) {\n if (!currentInstance) {\n {\n warn$2(\"provide() can only be used inside setup().\");\n }\n }\n else {\n // TS doesn't allow symbol as index type\n resolveProvided(currentInstance)[key] = value;\n }\n }\n function resolveProvided(vm) {\n // by default an instance inherits its parent's provides object\n // but when it needs to provide values of its own, it creates its\n // own provides object using parent provides object as prototype.\n // this way in `inject` we can simply look up injections from direct\n // parent and let the prototype chain do the work.\n var existing = vm._provided;\n var parentProvides = vm.$parent && vm.$parent._provided;\n if (parentProvides === existing) {\n return (vm._provided = Object.create(parentProvides));\n }\n else {\n return existing;\n }\n }\n function inject(key, defaultValue, treatDefaultAsFactory) {\n if (treatDefaultAsFactory === void 0) { treatDefaultAsFactory = false; }\n // fallback to `currentRenderingInstance` so that this can be called in\n // a functional component\n var instance = currentInstance;\n if (instance) {\n // #2400\n // to support `app.use` plugins,\n // fallback to appContext's `provides` if the instance is at root\n var provides = instance.$parent && instance.$parent._provided;\n if (provides && key in provides) {\n // TS doesn't allow symbol as index type\n return provides[key];\n }\n else if (arguments.length > 1) {\n return treatDefaultAsFactory && isFunction(defaultValue)\n ? defaultValue.call(instance)\n : defaultValue;\n }\n else {\n warn$2(\"injection \\\"\".concat(String(key), \"\\\" not found.\"));\n }\n }\n else {\n warn$2(\"inject() can only be used inside setup() or functional components.\");\n }\n }\n\n /**\n * @internal this function needs manual public type declaration because it relies\n * on previously manually authored types from Vue 2\n */\n function h(type, props, children) {\n if (!currentInstance) {\n warn$2(\"globally imported h() can only be invoked when there is an active \" +\n \"component instance, e.g. synchronously in a component's render or setup function.\");\n }\n return createElement$1(currentInstance, type, props, children, 2, true);\n }\n\n function handleError(err, vm, info) {\n // Deactivate deps tracking while processing error handler to avoid possible infinite rendering.\n // See: https://github.com/vuejs/vuex/issues/1505\n pushTarget();\n try {\n if (vm) {\n var cur = vm;\n while ((cur = cur.$parent)) {\n var hooks = cur.$options.errorCaptured;\n if (hooks) {\n for (var i = 0; i < hooks.length; i++) {\n try {\n var capture = hooks[i].call(cur, err, vm, info) === false;\n if (capture)\n return;\n }\n catch (e) {\n globalHandleError(e, cur, 'errorCaptured hook');\n }\n }\n }\n }\n }\n globalHandleError(err, vm, info);\n }\n finally {\n popTarget();\n }\n }\n function invokeWithErrorHandling(handler, context, args, vm, info) {\n var res;\n try {\n res = args ? handler.apply(context, args) : handler.call(context);\n if (res && !res._isVue && isPromise(res) && !res._handled) {\n res.catch(function (e) { return handleError(e, vm, info + \" (Promise/async)\"); });\n res._handled = true;\n }\n }\n catch (e) {\n handleError(e, vm, info);\n }\n return res;\n }\n function globalHandleError(err, vm, info) {\n if (config.errorHandler) {\n try {\n return config.errorHandler.call(null, err, vm, info);\n }\n catch (e) {\n // if the user intentionally throws the original error in the handler,\n // do not log it twice\n if (e !== err) {\n logError(e, null, 'config.errorHandler');\n }\n }\n }\n logError(err, vm, info);\n }\n function logError(err, vm, info) {\n {\n warn$2(\"Error in \".concat(info, \": \\\"\").concat(err.toString(), \"\\\"\"), vm);\n }\n /* istanbul ignore else */\n if (inBrowser && typeof console !== 'undefined') {\n console.error(err);\n }\n else {\n throw err;\n }\n }\n\n /* globals MutationObserver */\n var isUsingMicroTask = false;\n var callbacks = [];\n var pending = false;\n function flushCallbacks() {\n pending = false;\n var copies = callbacks.slice(0);\n callbacks.length = 0;\n for (var i = 0; i < copies.length; i++) {\n copies[i]();\n }\n }\n // Here we have async deferring wrappers using microtasks.\n // In 2.5 we used (macro) tasks (in combination with microtasks).\n // However, it has subtle problems when state is changed right before repaint\n // (e.g. #6813, out-in transitions).\n // Also, using (macro) tasks in event handler would cause some weird behaviors\n // that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109).\n // So we now use microtasks everywhere, again.\n // A major drawback of this tradeoff is that there are some scenarios\n // where microtasks have too high a priority and fire in between supposedly\n // sequential events (e.g. #4521, #6690, which have workarounds)\n // or even between bubbling of the same event (#6566).\n var timerFunc;\n // The nextTick behavior leverages the microtask queue, which can be accessed\n // via either native Promise.then or MutationObserver.\n // MutationObserver has wider support, however it is seriously bugged in\n // UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It\n // completely stops working after triggering a few times... so, if native\n // Promise is available, we will use it:\n /* istanbul ignore next, $flow-disable-line */\n if (typeof Promise !== 'undefined' && isNative(Promise)) {\n var p_1 = Promise.resolve();\n timerFunc = function () {\n p_1.then(flushCallbacks);\n // In problematic UIWebViews, Promise.then doesn't completely break, but\n // it can get stuck in a weird state where callbacks are pushed into the\n // microtask queue but the queue isn't being flushed, until the browser\n // needs to do some other work, e.g. handle a timer. Therefore we can\n // \"force\" the microtask queue to be flushed by adding an empty timer.\n if (isIOS)\n setTimeout(noop);\n };\n isUsingMicroTask = true;\n }\n else if (!isIE &&\n typeof MutationObserver !== 'undefined' &&\n (isNative(MutationObserver) ||\n // PhantomJS and iOS 7.x\n MutationObserver.toString() === '[object MutationObserverConstructor]')) {\n // Use MutationObserver where native Promise is not available,\n // e.g. PhantomJS, iOS7, Android 4.4\n // (#6466 MutationObserver is unreliable in IE11)\n var counter_1 = 1;\n var observer = new MutationObserver(flushCallbacks);\n var textNode_1 = document.createTextNode(String(counter_1));\n observer.observe(textNode_1, {\n characterData: true\n });\n timerFunc = function () {\n counter_1 = (counter_1 + 1) % 2;\n textNode_1.data = String(counter_1);\n };\n isUsingMicroTask = true;\n }\n else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {\n // Fallback to setImmediate.\n // Technically it leverages the (macro) task queue,\n // but it is still a better choice than setTimeout.\n timerFunc = function () {\n setImmediate(flushCallbacks);\n };\n }\n else {\n // Fallback to setTimeout.\n timerFunc = function () {\n setTimeout(flushCallbacks, 0);\n };\n }\n /**\n * @internal\n */\n function nextTick(cb, ctx) {\n var _resolve;\n callbacks.push(function () {\n if (cb) {\n try {\n cb.call(ctx);\n }\n catch (e) {\n handleError(e, ctx, 'nextTick');\n }\n }\n else if (_resolve) {\n _resolve(ctx);\n }\n });\n if (!pending) {\n pending = true;\n timerFunc();\n }\n // $flow-disable-line\n if (!cb && typeof Promise !== 'undefined') {\n return new Promise(function (resolve) {\n _resolve = resolve;\n });\n }\n }\n\n function useCssModule(name) {\n /* istanbul ignore else */\n {\n {\n warn$2(\"useCssModule() is not supported in the global build.\");\n }\n return emptyObject;\n }\n }\n\n /**\n * Runtime helper for SFC's CSS variable injection feature.\n * @private\n */\n function useCssVars(getter) {\n if (!inBrowser && !false)\n return;\n var instance = currentInstance;\n if (!instance) {\n warn$2(\"useCssVars is called without current active component instance.\");\n return;\n }\n watchPostEffect(function () {\n var el = instance.$el;\n var vars = getter(instance, instance._setupProxy);\n if (el && el.nodeType === 1) {\n var style = el.style;\n for (var key in vars) {\n style.setProperty(\"--\".concat(key), vars[key]);\n }\n }\n });\n }\n\n /**\n * v3-compatible async component API.\n * @internal the type is manually declared in <root>/types/v3-define-async-component.d.ts\n * because it relies on existing manual types\n */\n function defineAsyncComponent(source) {\n if (isFunction(source)) {\n source = { loader: source };\n }\n var loader = source.loader, loadingComponent = source.loadingComponent, errorComponent = source.errorComponent, _a = source.delay, delay = _a === void 0 ? 200 : _a, timeout = source.timeout, // undefined = never times out\n _b = source.suspensible, // undefined = never times out\n suspensible = _b === void 0 ? false : _b, // in Vue 3 default is true\n userOnError = source.onError;\n if (suspensible) {\n warn$2(\"The suspensiblbe option for async components is not supported in Vue2. It is ignored.\");\n }\n var pendingRequest = null;\n var retries = 0;\n var retry = function () {\n retries++;\n pendingRequest = null;\n return load();\n };\n var load = function () {\n var thisRequest;\n return (pendingRequest ||\n (thisRequest = pendingRequest =\n loader()\n .catch(function (err) {\n err = err instanceof Error ? err : new Error(String(err));\n if (userOnError) {\n return new Promise(function (resolve, reject) {\n var userRetry = function () { return resolve(retry()); };\n var userFail = function () { return reject(err); };\n userOnError(err, userRetry, userFail, retries + 1);\n });\n }\n else {\n throw err;\n }\n })\n .then(function (comp) {\n if (thisRequest !== pendingRequest && pendingRequest) {\n return pendingRequest;\n }\n if (!comp) {\n warn$2(\"Async component loader resolved to undefined. \" +\n \"If you are using retry(), make sure to return its return value.\");\n }\n // interop module default\n if (comp &&\n (comp.__esModule || comp[Symbol.toStringTag] === 'Module')) {\n comp = comp.default;\n }\n if (comp && !isObject(comp) && !isFunction(comp)) {\n throw new Error(\"Invalid async component load result: \".concat(comp));\n }\n return comp;\n })));\n };\n return function () {\n var component = load();\n return {\n component: component,\n delay: delay,\n timeout: timeout,\n error: errorComponent,\n loading: loadingComponent\n };\n };\n }\n\n function createLifeCycle(hookName) {\n return function (fn, target) {\n if (target === void 0) { target = currentInstance; }\n if (!target) {\n warn$2(\"\".concat(formatName(hookName), \" is called when there is no active component instance to be \") +\n \"associated with. \" +\n \"Lifecycle injection APIs can only be used during execution of setup().\");\n return;\n }\n return injectHook(target, hookName, fn);\n };\n }\n function formatName(name) {\n if (name === 'beforeDestroy') {\n name = 'beforeUnmount';\n }\n else if (name === 'destroyed') {\n name = 'unmounted';\n }\n return \"on\".concat(name[0].toUpperCase() + name.slice(1));\n }\n function injectHook(instance, hookName, fn) {\n var options = instance.$options;\n options[hookName] = mergeLifecycleHook(options[hookName], fn);\n }\n var onBeforeMount = createLifeCycle('beforeMount');\n var onMounted = createLifeCycle('mounted');\n var onBeforeUpdate = createLifeCycle('beforeUpdate');\n var onUpdated = createLifeCycle('updated');\n var onBeforeUnmount = createLifeCycle('beforeDestroy');\n var onUnmounted = createLifeCycle('destroyed');\n var onActivated = createLifeCycle('activated');\n var onDeactivated = createLifeCycle('deactivated');\n var onServerPrefetch = createLifeCycle('serverPrefetch');\n var onRenderTracked = createLifeCycle('renderTracked');\n var onRenderTriggered = createLifeCycle('renderTriggered');\n var injectErrorCapturedHook = createLifeCycle('errorCaptured');\n function onErrorCaptured(hook, target) {\n if (target === void 0) { target = currentInstance; }\n injectErrorCapturedHook(hook, target);\n }\n\n /**\n * Note: also update dist/vue.runtime.mjs when adding new exports to this file.\n */\n var version = '2.7.14';\n /**\n * @internal type is manually declared in <root>/types/v3-define-component.d.ts\n */\n function defineComponent(options) {\n return options;\n }\n\n var vca = /*#__PURE__*/Object.freeze({\n __proto__: null,\n version: version,\n defineComponent: defineComponent,\n ref: ref$1,\n shallowRef: shallowRef,\n isRef: isRef,\n toRef: toRef,\n toRefs: toRefs,\n unref: unref,\n proxyRefs: proxyRefs,\n customRef: customRef,\n triggerRef: triggerRef,\n reactive: reactive,\n isReactive: isReactive,\n isReadonly: isReadonly,\n isShallow: isShallow,\n isProxy: isProxy,\n shallowReactive: shallowReactive,\n markRaw: markRaw,\n toRaw: toRaw,\n readonly: readonly,\n shallowReadonly: shallowReadonly,\n computed: computed,\n watch: watch,\n watchEffect: watchEffect,\n watchPostEffect: watchPostEffect,\n watchSyncEffect: watchSyncEffect,\n EffectScope: EffectScope,\n effectScope: effectScope,\n onScopeDispose: onScopeDispose,\n getCurrentScope: getCurrentScope,\n provide: provide,\n inject: inject,\n h: h,\n getCurrentInstance: getCurrentInstance,\n useSlots: useSlots,\n useAttrs: useAttrs,\n useListeners: useListeners,\n mergeDefaults: mergeDefaults,\n nextTick: nextTick,\n set: set,\n del: del,\n useCssModule: useCssModule,\n useCssVars: useCssVars,\n defineAsyncComponent: defineAsyncComponent,\n onBeforeMount: onBeforeMount,\n onMounted: onMounted,\n onBeforeUpdate: onBeforeUpdate,\n onUpdated: onUpdated,\n onBeforeUnmount: onBeforeUnmount,\n onUnmounted: onUnmounted,\n onActivated: onActivated,\n onDeactivated: onDeactivated,\n onServerPrefetch: onServerPrefetch,\n onRenderTracked: onRenderTracked,\n onRenderTriggered: onRenderTriggered,\n onErrorCaptured: onErrorCaptured\n });\n\n var seenObjects = new _Set();\n /**\n * Recursively traverse an object to evoke all converted\n * getters, so that every nested property inside the object\n * is collected as a \"deep\" dependency.\n */\n function traverse(val) {\n _traverse(val, seenObjects);\n seenObjects.clear();\n return val;\n }\n function _traverse(val, seen) {\n var i, keys;\n var isA = isArray(val);\n if ((!isA && !isObject(val)) ||\n val.__v_skip /* ReactiveFlags.SKIP */ ||\n Object.isFrozen(val) ||\n val instanceof VNode) {\n return;\n }\n if (val.__ob__) {\n var depId = val.__ob__.dep.id;\n if (seen.has(depId)) {\n return;\n }\n seen.add(depId);\n }\n if (isA) {\n i = val.length;\n while (i--)\n _traverse(val[i], seen);\n }\n else if (isRef(val)) {\n _traverse(val.value, seen);\n }\n else {\n keys = Object.keys(val);\n i = keys.length;\n while (i--)\n _traverse(val[keys[i]], seen);\n }\n }\n\n var uid$1 = 0;\n /**\n * A watcher parses an expression, collects dependencies,\n * and fires callback when the expression value changes.\n * This is used for both the $watch() api and directives.\n * @internal\n */\n var Watcher = /** @class */ (function () {\n function Watcher(vm, expOrFn, cb, options, isRenderWatcher) {\n recordEffectScope(this, \n // if the active effect scope is manually created (not a component scope),\n // prioritize it\n activeEffectScope && !activeEffectScope._vm\n ? activeEffectScope\n : vm\n ? vm._scope\n : undefined);\n if ((this.vm = vm) && isRenderWatcher) {\n vm._watcher = this;\n }\n // options\n if (options) {\n this.deep = !!options.deep;\n this.user = !!options.user;\n this.lazy = !!options.lazy;\n this.sync = !!options.sync;\n this.before = options.before;\n {\n this.onTrack = options.onTrack;\n this.onTrigger = options.onTrigger;\n }\n }\n else {\n this.deep = this.user = this.lazy = this.sync = false;\n }\n this.cb = cb;\n this.id = ++uid$1; // uid for batching\n this.active = true;\n this.post = false;\n this.dirty = this.lazy; // for lazy watchers\n this.deps = [];\n this.newDeps = [];\n this.depIds = new _Set();\n this.newDepIds = new _Set();\n this.expression = expOrFn.toString() ;\n // parse expression for getter\n if (isFunction(expOrFn)) {\n this.getter = expOrFn;\n }\n else {\n this.getter = parsePath(expOrFn);\n if (!this.getter) {\n this.getter = noop;\n warn$2(\"Failed watching path: \\\"\".concat(expOrFn, \"\\\" \") +\n 'Watcher only accepts simple dot-delimited paths. ' +\n 'For full control, use a function instead.', vm);\n }\n }\n this.value = this.lazy ? undefined : this.get();\n }\n /**\n * Evaluate the getter, and re-collect dependencies.\n */\n Watcher.prototype.get = function () {\n pushTarget(this);\n var value;\n var vm = this.vm;\n try {\n value = this.getter.call(vm, vm);\n }\n catch (e) {\n if (this.user) {\n handleError(e, vm, \"getter for watcher \\\"\".concat(this.expression, \"\\\"\"));\n }\n else {\n throw e;\n }\n }\n finally {\n // \"touch\" every property so they are all tracked as\n // dependencies for deep watching\n if (this.deep) {\n traverse(value);\n }\n popTarget();\n this.cleanupDeps();\n }\n return value;\n };\n /**\n * Add a dependency to this directive.\n */\n Watcher.prototype.addDep = function (dep) {\n var id = dep.id;\n if (!this.newDepIds.has(id)) {\n this.newDepIds.add(id);\n this.newDeps.push(dep);\n if (!this.depIds.has(id)) {\n dep.addSub(this);\n }\n }\n };\n /**\n * Clean up for dependency collection.\n */\n Watcher.prototype.cleanupDeps = function () {\n var i = this.deps.length;\n while (i--) {\n var dep = this.deps[i];\n if (!this.newDepIds.has(dep.id)) {\n dep.removeSub(this);\n }\n }\n var tmp = this.depIds;\n this.depIds = this.newDepIds;\n this.newDepIds = tmp;\n this.newDepIds.clear();\n tmp = this.deps;\n this.deps = this.newDeps;\n this.newDeps = tmp;\n this.newDeps.length = 0;\n };\n /**\n * Subscriber interface.\n * Will be called when a dependency changes.\n */\n Watcher.prototype.update = function () {\n /* istanbul ignore else */\n if (this.lazy) {\n this.dirty = true;\n }\n else if (this.sync) {\n this.run();\n }\n else {\n queueWatcher(this);\n }\n };\n /**\n * Scheduler job interface.\n * Will be called by the scheduler.\n */\n Watcher.prototype.run = function () {\n if (this.active) {\n var value = this.get();\n if (value !== this.value ||\n // Deep watchers and watchers on Object/Arrays should fire even\n // when the value is the same, because the value may\n // have mutated.\n isObject(value) ||\n this.deep) {\n // set new value\n var oldValue = this.value;\n this.value = value;\n if (this.user) {\n var info = \"callback for watcher \\\"\".concat(this.expression, \"\\\"\");\n invokeWithErrorHandling(this.cb, this.vm, [value, oldValue], this.vm, info);\n }\n else {\n this.cb.call(this.vm, value, oldValue);\n }\n }\n }\n };\n /**\n * Evaluate the value of the watcher.\n * This only gets called for lazy watchers.\n */\n Watcher.prototype.evaluate = function () {\n this.value = this.get();\n this.dirty = false;\n };\n /**\n * Depend on all deps collected by this watcher.\n */\n Watcher.prototype.depend = function () {\n var i = this.deps.length;\n while (i--) {\n this.deps[i].depend();\n }\n };\n /**\n * Remove self from all dependencies' subscriber list.\n */\n Watcher.prototype.teardown = function () {\n if (this.vm && !this.vm._isBeingDestroyed) {\n remove$2(this.vm._scope.effects, this);\n }\n if (this.active) {\n var i = this.deps.length;\n while (i--) {\n this.deps[i].removeSub(this);\n }\n this.active = false;\n if (this.onStop) {\n this.onStop();\n }\n }\n };\n return Watcher;\n }());\n\n var sharedPropertyDefinition = {\n enumerable: true,\n configurable: true,\n get: noop,\n set: noop\n };\n function proxy(target, sourceKey, key) {\n sharedPropertyDefinition.get = function proxyGetter() {\n return this[sourceKey][key];\n };\n sharedPropertyDefinition.set = function proxySetter(val) {\n this[sourceKey][key] = val;\n };\n Object.defineProperty(target, key, sharedPropertyDefinition);\n }\n function initState(vm) {\n var opts = vm.$options;\n if (opts.props)\n initProps$1(vm, opts.props);\n // Composition API\n initSetup(vm);\n if (opts.methods)\n initMethods(vm, opts.methods);\n if (opts.data) {\n initData(vm);\n }\n else {\n var ob = observe((vm._data = {}));\n ob && ob.vmCount++;\n }\n if (opts.computed)\n initComputed$1(vm, opts.computed);\n if (opts.watch && opts.watch !== nativeWatch) {\n initWatch(vm, opts.watch);\n }\n }\n function initProps$1(vm, propsOptions) {\n var propsData = vm.$options.propsData || {};\n var props = (vm._props = shallowReactive({}));\n // cache prop keys so that future props updates can iterate using Array\n // instead of dynamic object key enumeration.\n var keys = (vm.$options._propKeys = []);\n var isRoot = !vm.$parent;\n // root instance props should be converted\n if (!isRoot) {\n toggleObserving(false);\n }\n var _loop_1 = function (key) {\n keys.push(key);\n var value = validateProp(key, propsOptions, propsData, vm);\n /* istanbul ignore else */\n {\n var hyphenatedKey = hyphenate(key);\n if (isReservedAttribute(hyphenatedKey) ||\n config.isReservedAttr(hyphenatedKey)) {\n warn$2(\"\\\"\".concat(hyphenatedKey, \"\\\" is a reserved attribute and cannot be used as component prop.\"), vm);\n }\n defineReactive(props, key, value, function () {\n if (!isRoot && !isUpdatingChildComponent) {\n warn$2(\"Avoid mutating a prop directly since the value will be \" +\n \"overwritten whenever the parent component re-renders. \" +\n \"Instead, use a data or computed property based on the prop's \" +\n \"value. Prop being mutated: \\\"\".concat(key, \"\\\"\"), vm);\n }\n });\n }\n // static props are already proxied on the component's prototype\n // during Vue.extend(). We only need to proxy props defined at\n // instantiation here.\n if (!(key in vm)) {\n proxy(vm, \"_props\", key);\n }\n };\n for (var key in propsOptions) {\n _loop_1(key);\n }\n toggleObserving(true);\n }\n function initData(vm) {\n var data = vm.$options.data;\n data = vm._data = isFunction(data) ? getData(data, vm) : data || {};\n if (!isPlainObject(data)) {\n data = {};\n warn$2('data functions should return an object:\\n' +\n 'https://v2.vuejs.org/v2/guide/components.html#data-Must-Be-a-Function', vm);\n }\n // proxy data on instance\n var keys = Object.keys(data);\n var props = vm.$options.props;\n var methods = vm.$options.methods;\n var i = keys.length;\n while (i--) {\n var key = keys[i];\n {\n if (methods && hasOwn(methods, key)) {\n warn$2(\"Method \\\"\".concat(key, \"\\\" has already been defined as a data property.\"), vm);\n }\n }\n if (props && hasOwn(props, key)) {\n warn$2(\"The data property \\\"\".concat(key, \"\\\" is already declared as a prop. \") +\n \"Use prop default value instead.\", vm);\n }\n else if (!isReserved(key)) {\n proxy(vm, \"_data\", key);\n }\n }\n // observe data\n var ob = observe(data);\n ob && ob.vmCount++;\n }\n function getData(data, vm) {\n // #7573 disable dep collection when invoking data getters\n pushTarget();\n try {\n return data.call(vm, vm);\n }\n catch (e) {\n handleError(e, vm, \"data()\");\n return {};\n }\n finally {\n popTarget();\n }\n }\n var computedWatcherOptions = { lazy: true };\n function initComputed$1(vm, computed) {\n // $flow-disable-line\n var watchers = (vm._computedWatchers = Object.create(null));\n // computed properties are just getters during SSR\n var isSSR = isServerRendering();\n for (var key in computed) {\n var userDef = computed[key];\n var getter = isFunction(userDef) ? userDef : userDef.get;\n if (getter == null) {\n warn$2(\"Getter is missing for computed property \\\"\".concat(key, \"\\\".\"), vm);\n }\n if (!isSSR) {\n // create internal watcher for the computed property.\n watchers[key] = new Watcher(vm, getter || noop, noop, computedWatcherOptions);\n }\n // component-defined computed properties are already defined on the\n // component prototype. We only need to define computed properties defined\n // at instantiation here.\n if (!(key in vm)) {\n defineComputed(vm, key, userDef);\n }\n else {\n if (key in vm.$data) {\n warn$2(\"The computed property \\\"\".concat(key, \"\\\" is already defined in data.\"), vm);\n }\n else if (vm.$options.props && key in vm.$options.props) {\n warn$2(\"The computed property \\\"\".concat(key, \"\\\" is already defined as a prop.\"), vm);\n }\n else if (vm.$options.methods && key in vm.$options.methods) {\n warn$2(\"The computed property \\\"\".concat(key, \"\\\" is already defined as a method.\"), vm);\n }\n }\n }\n }\n function defineComputed(target, key, userDef) {\n var shouldCache = !isServerRendering();\n if (isFunction(userDef)) {\n sharedPropertyDefinition.get = shouldCache\n ? createComputedGetter(key)\n : createGetterInvoker(userDef);\n sharedPropertyDefinition.set = noop;\n }\n else {\n sharedPropertyDefinition.get = userDef.get\n ? shouldCache && userDef.cache !== false\n ? createComputedGetter(key)\n : createGetterInvoker(userDef.get)\n : noop;\n sharedPropertyDefinition.set = userDef.set || noop;\n }\n if (sharedPropertyDefinition.set === noop) {\n sharedPropertyDefinition.set = function () {\n warn$2(\"Computed property \\\"\".concat(key, \"\\\" was assigned to but it has no setter.\"), this);\n };\n }\n Object.defineProperty(target, key, sharedPropertyDefinition);\n }\n function createComputedGetter(key) {\n return function computedGetter() {\n var watcher = this._computedWatchers && this._computedWatchers[key];\n if (watcher) {\n if (watcher.dirty) {\n watcher.evaluate();\n }\n if (Dep.target) {\n if (Dep.target.onTrack) {\n Dep.target.onTrack({\n effect: Dep.target,\n target: this,\n type: \"get\" /* TrackOpTypes.GET */,\n key: key\n });\n }\n watcher.depend();\n }\n return watcher.value;\n }\n };\n }\n function createGetterInvoker(fn) {\n return function computedGetter() {\n return fn.call(this, this);\n };\n }\n function initMethods(vm, methods) {\n var props = vm.$options.props;\n for (var key in methods) {\n {\n if (typeof methods[key] !== 'function') {\n warn$2(\"Method \\\"\".concat(key, \"\\\" has type \\\"\").concat(typeof methods[key], \"\\\" in the component definition. \") +\n \"Did you reference the function correctly?\", vm);\n }\n if (props && hasOwn(props, key)) {\n warn$2(\"Method \\\"\".concat(key, \"\\\" has already been defined as a prop.\"), vm);\n }\n if (key in vm && isReserved(key)) {\n warn$2(\"Method \\\"\".concat(key, \"\\\" conflicts with an existing Vue instance method. \") +\n \"Avoid defining component methods that start with _ or $.\");\n }\n }\n vm[key] = typeof methods[key] !== 'function' ? noop : bind$1(methods[key], vm);\n }\n }\n function initWatch(vm, watch) {\n for (var key in watch) {\n var handler = watch[key];\n if (isArray(handler)) {\n for (var i = 0; i < handler.length; i++) {\n createWatcher(vm, key, handler[i]);\n }\n }\n else {\n createWatcher(vm, key, handler);\n }\n }\n }\n function createWatcher(vm, expOrFn, handler, options) {\n if (isPlainObject(handler)) {\n options = handler;\n handler = handler.handler;\n }\n if (typeof handler === 'string') {\n handler = vm[handler];\n }\n return vm.$watch(expOrFn, handler, options);\n }\n function stateMixin(Vue) {\n // flow somehow has problems with directly declared definition object\n // when using Object.defineProperty, so we have to procedurally build up\n // the object here.\n var dataDef = {};\n dataDef.get = function () {\n return this._data;\n };\n var propsDef = {};\n propsDef.get = function () {\n return this._props;\n };\n {\n dataDef.set = function () {\n warn$2('Avoid replacing instance root $data. ' +\n 'Use nested data properties instead.', this);\n };\n propsDef.set = function () {\n warn$2(\"$props is readonly.\", this);\n };\n }\n Object.defineProperty(Vue.prototype, '$data', dataDef);\n Object.defineProperty(Vue.prototype, '$props', propsDef);\n Vue.prototype.$set = set;\n Vue.prototype.$delete = del;\n Vue.prototype.$watch = function (expOrFn, cb, options) {\n var vm = this;\n if (isPlainObject(cb)) {\n return createWatcher(vm, expOrFn, cb, options);\n }\n options = options || {};\n options.user = true;\n var watcher = new Watcher(vm, expOrFn, cb, options);\n if (options.immediate) {\n var info = \"callback for immediate watcher \\\"\".concat(watcher.expression, \"\\\"\");\n pushTarget();\n invokeWithErrorHandling(cb, vm, [watcher.value], vm, info);\n popTarget();\n }\n return function unwatchFn() {\n watcher.teardown();\n };\n };\n }\n\n function initProvide(vm) {\n var provideOption = vm.$options.provide;\n if (provideOption) {\n var provided = isFunction(provideOption)\n ? provideOption.call(vm)\n : provideOption;\n if (!isObject(provided)) {\n return;\n }\n var source = resolveProvided(vm);\n // IE9 doesn't support Object.getOwnPropertyDescriptors so we have to\n // iterate the keys ourselves.\n var keys = hasSymbol ? Reflect.ownKeys(provided) : Object.keys(provided);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n Object.defineProperty(source, key, Object.getOwnPropertyDescriptor(provided, key));\n }\n }\n }\n function initInjections(vm) {\n var result = resolveInject(vm.$options.inject, vm);\n if (result) {\n toggleObserving(false);\n Object.keys(result).forEach(function (key) {\n /* istanbul ignore else */\n {\n defineReactive(vm, key, result[key], function () {\n warn$2(\"Avoid mutating an injected value directly since the changes will be \" +\n \"overwritten whenever the provided component re-renders. \" +\n \"injection being mutated: \\\"\".concat(key, \"\\\"\"), vm);\n });\n }\n });\n toggleObserving(true);\n }\n }\n function resolveInject(inject, vm) {\n if (inject) {\n // inject is :any because flow is not smart enough to figure out cached\n var result = Object.create(null);\n var keys = hasSymbol ? Reflect.ownKeys(inject) : Object.keys(inject);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n // #6574 in case the inject object is observed...\n if (key === '__ob__')\n continue;\n var provideKey = inject[key].from;\n if (provideKey in vm._provided) {\n result[key] = vm._provided[provideKey];\n }\n else if ('default' in inject[key]) {\n var provideDefault = inject[key].default;\n result[key] = isFunction(provideDefault)\n ? provideDefault.call(vm)\n : provideDefault;\n }\n else {\n warn$2(\"Injection \\\"\".concat(key, \"\\\" not found\"), vm);\n }\n }\n return result;\n }\n }\n\n var uid = 0;\n function initMixin$1(Vue) {\n Vue.prototype._init = function (options) {\n var vm = this;\n // a uid\n vm._uid = uid++;\n var startTag, endTag;\n /* istanbul ignore if */\n if (config.performance && mark) {\n startTag = \"vue-perf-start:\".concat(vm._uid);\n endTag = \"vue-perf-end:\".concat(vm._uid);\n mark(startTag);\n }\n // a flag to mark this as a Vue instance without having to do instanceof\n // check\n vm._isVue = true;\n // avoid instances from being observed\n vm.__v_skip = true;\n // effect scope\n vm._scope = new EffectScope(true /* detached */);\n vm._scope._vm = true;\n // merge options\n if (options && options._isComponent) {\n // optimize internal component instantiation\n // since dynamic options merging is pretty slow, and none of the\n // internal component options needs special treatment.\n initInternalComponent(vm, options);\n }\n else {\n vm.$options = mergeOptions(resolveConstructorOptions(vm.constructor), options || {}, vm);\n }\n /* istanbul ignore else */\n {\n initProxy(vm);\n }\n // expose real self\n vm._self = vm;\n initLifecycle(vm);\n initEvents(vm);\n initRender(vm);\n callHook$1(vm, 'beforeCreate', undefined, false /* setContext */);\n initInjections(vm); // resolve injections before data/props\n initState(vm);\n initProvide(vm); // resolve provide after data/props\n callHook$1(vm, 'created');\n /* istanbul ignore if */\n if (config.performance && mark) {\n vm._name = formatComponentName(vm, false);\n mark(endTag);\n measure(\"vue \".concat(vm._name, \" init\"), startTag, endTag);\n }\n if (vm.$options.el) {\n vm.$mount(vm.$options.el);\n }\n };\n }\n function initInternalComponent(vm, options) {\n var opts = (vm.$options = Object.create(vm.constructor.options));\n // doing this because it's faster than dynamic enumeration.\n var parentVnode = options._parentVnode;\n opts.parent = options.parent;\n opts._parentVnode = parentVnode;\n var vnodeComponentOptions = parentVnode.componentOptions;\n opts.propsData = vnodeComponentOptions.propsData;\n opts._parentListeners = vnodeComponentOptions.listeners;\n opts._renderChildren = vnodeComponentOptions.children;\n opts._componentTag = vnodeComponentOptions.tag;\n if (options.render) {\n opts.render = options.render;\n opts.staticRenderFns = options.staticRenderFns;\n }\n }\n function resolveConstructorOptions(Ctor) {\n var options = Ctor.options;\n if (Ctor.super) {\n var superOptions = resolveConstructorOptions(Ctor.super);\n var cachedSuperOptions = Ctor.superOptions;\n if (superOptions !== cachedSuperOptions) {\n // super option changed,\n // need to resolve new options.\n Ctor.superOptions = superOptions;\n // check if there are any late-modified/attached options (#4976)\n var modifiedOptions = resolveModifiedOptions(Ctor);\n // update base extend options\n if (modifiedOptions) {\n extend(Ctor.extendOptions, modifiedOptions);\n }\n options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions);\n if (options.name) {\n options.components[options.name] = Ctor;\n }\n }\n }\n return options;\n }\n function resolveModifiedOptions(Ctor) {\n var modified;\n var latest = Ctor.options;\n var sealed = Ctor.sealedOptions;\n for (var key in latest) {\n if (latest[key] !== sealed[key]) {\n if (!modified)\n modified = {};\n modified[key] = latest[key];\n }\n }\n return modified;\n }\n\n function FunctionalRenderContext(data, props, children, parent, Ctor) {\n var _this = this;\n var options = Ctor.options;\n // ensure the createElement function in functional components\n // gets a unique context - this is necessary for correct named slot check\n var contextVm;\n if (hasOwn(parent, '_uid')) {\n contextVm = Object.create(parent);\n contextVm._original = parent;\n }\n else {\n // the context vm passed in is a functional context as well.\n // in this case we want to make sure we are able to get a hold to the\n // real context instance.\n contextVm = parent;\n // @ts-ignore\n parent = parent._original;\n }\n var isCompiled = isTrue(options._compiled);\n var needNormalization = !isCompiled;\n this.data = data;\n this.props = props;\n this.children = children;\n this.parent = parent;\n this.listeners = data.on || emptyObject;\n this.injections = resolveInject(options.inject, parent);\n this.slots = function () {\n if (!_this.$slots) {\n normalizeScopedSlots(parent, data.scopedSlots, (_this.$slots = resolveSlots(children, parent)));\n }\n return _this.$slots;\n };\n Object.defineProperty(this, 'scopedSlots', {\n enumerable: true,\n get: function () {\n return normalizeScopedSlots(parent, data.scopedSlots, this.slots());\n }\n });\n // support for compiled functional template\n if (isCompiled) {\n // exposing $options for renderStatic()\n this.$options = options;\n // pre-resolve slots for renderSlot()\n this.$slots = this.slots();\n this.$scopedSlots = normalizeScopedSlots(parent, data.scopedSlots, this.$slots);\n }\n if (options._scopeId) {\n this._c = function (a, b, c, d) {\n var vnode = createElement$1(contextVm, a, b, c, d, needNormalization);\n if (vnode && !isArray(vnode)) {\n vnode.fnScopeId = options._scopeId;\n vnode.fnContext = parent;\n }\n return vnode;\n };\n }\n else {\n this._c = function (a, b, c, d) {\n return createElement$1(contextVm, a, b, c, d, needNormalization);\n };\n }\n }\n installRenderHelpers(FunctionalRenderContext.prototype);\n function createFunctionalComponent(Ctor, propsData, data, contextVm, children) {\n var options = Ctor.options;\n var props = {};\n var propOptions = options.props;\n if (isDef(propOptions)) {\n for (var key in propOptions) {\n props[key] = validateProp(key, propOptions, propsData || emptyObject);\n }\n }\n else {\n if (isDef(data.attrs))\n mergeProps(props, data.attrs);\n if (isDef(data.props))\n mergeProps(props, data.props);\n }\n var renderContext = new FunctionalRenderContext(data, props, children, contextVm, Ctor);\n var vnode = options.render.call(null, renderContext._c, renderContext);\n if (vnode instanceof VNode) {\n return cloneAndMarkFunctionalResult(vnode, data, renderContext.parent, options, renderContext);\n }\n else if (isArray(vnode)) {\n var vnodes = normalizeChildren(vnode) || [];\n var res = new Array(vnodes.length);\n for (var i = 0; i < vnodes.length; i++) {\n res[i] = cloneAndMarkFunctionalResult(vnodes[i], data, renderContext.parent, options, renderContext);\n }\n return res;\n }\n }\n function cloneAndMarkFunctionalResult(vnode, data, contextVm, options, renderContext) {\n // #7817 clone node before setting fnContext, otherwise if the node is reused\n // (e.g. it was from a cached normal slot) the fnContext causes named slots\n // that should not be matched to match.\n var clone = cloneVNode(vnode);\n clone.fnContext = contextVm;\n clone.fnOptions = options;\n {\n (clone.devtoolsMeta = clone.devtoolsMeta || {}).renderContext =\n renderContext;\n }\n if (data.slot) {\n (clone.data || (clone.data = {})).slot = data.slot;\n }\n return clone;\n }\n function mergeProps(to, from) {\n for (var key in from) {\n to[camelize(key)] = from[key];\n }\n }\n\n function getComponentName(options) {\n return options.name || options.__name || options._componentTag;\n }\n // inline hooks to be invoked on component VNodes during patch\n var componentVNodeHooks = {\n init: function (vnode, hydrating) {\n if (vnode.componentInstance &&\n !vnode.componentInstance._isDestroyed &&\n vnode.data.keepAlive) {\n // kept-alive components, treat as a patch\n var mountedNode = vnode; // work around flow\n componentVNodeHooks.prepatch(mountedNode, mountedNode);\n }\n else {\n var child = (vnode.componentInstance = createComponentInstanceForVnode(vnode, activeInstance));\n child.$mount(hydrating ? vnode.elm : undefined, hydrating);\n }\n },\n prepatch: function (oldVnode, vnode) {\n var options = vnode.componentOptions;\n var child = (vnode.componentInstance = oldVnode.componentInstance);\n updateChildComponent(child, options.propsData, // updated props\n options.listeners, // updated listeners\n vnode, // new parent vnode\n options.children // new children\n );\n },\n insert: function (vnode) {\n var context = vnode.context, componentInstance = vnode.componentInstance;\n if (!componentInstance._isMounted) {\n componentInstance._isMounted = true;\n callHook$1(componentInstance, 'mounted');\n }\n if (vnode.data.keepAlive) {\n if (context._isMounted) {\n // vue-router#1212\n // During updates, a kept-alive component's child components may\n // change, so directly walking the tree here may call activated hooks\n // on incorrect children. Instead we push them into a queue which will\n // be processed after the whole patch process ended.\n queueActivatedComponent(componentInstance);\n }\n else {\n activateChildComponent(componentInstance, true /* direct */);\n }\n }\n },\n destroy: function (vnode) {\n var componentInstance = vnode.componentInstance;\n if (!componentInstance._isDestroyed) {\n if (!vnode.data.keepAlive) {\n componentInstance.$destroy();\n }\n else {\n deactivateChildComponent(componentInstance, true /* direct */);\n }\n }\n }\n };\n var hooksToMerge = Object.keys(componentVNodeHooks);\n function createComponent(Ctor, data, context, children, tag) {\n if (isUndef(Ctor)) {\n return;\n }\n var baseCtor = context.$options._base;\n // plain options object: turn it into a constructor\n if (isObject(Ctor)) {\n Ctor = baseCtor.extend(Ctor);\n }\n // if at this stage it's not a constructor or an async component factory,\n // reject.\n if (typeof Ctor !== 'function') {\n {\n warn$2(\"Invalid Component definition: \".concat(String(Ctor)), context);\n }\n return;\n }\n // async component\n var asyncFactory;\n // @ts-expect-error\n if (isUndef(Ctor.cid)) {\n asyncFactory = Ctor;\n Ctor = resolveAsyncComponent(asyncFactory, baseCtor);\n if (Ctor === undefined) {\n // return a placeholder node for async component, which is rendered\n // as a comment node but preserves all the raw information for the node.\n // the information will be used for async server-rendering and hydration.\n return createAsyncPlaceholder(asyncFactory, data, context, children, tag);\n }\n }\n data = data || {};\n // resolve constructor options in case global mixins are applied after\n // component constructor creation\n resolveConstructorOptions(Ctor);\n // transform component v-model data into props & events\n if (isDef(data.model)) {\n // @ts-expect-error\n transformModel(Ctor.options, data);\n }\n // extract props\n // @ts-expect-error\n var propsData = extractPropsFromVNodeData(data, Ctor, tag);\n // functional component\n // @ts-expect-error\n if (isTrue(Ctor.options.functional)) {\n return createFunctionalComponent(Ctor, propsData, data, context, children);\n }\n // extract listeners, since these needs to be treated as\n // child component listeners instead of DOM listeners\n var listeners = data.on;\n // replace with listeners with .native modifier\n // so it gets processed during parent component patch.\n data.on = data.nativeOn;\n // @ts-expect-error\n if (isTrue(Ctor.options.abstract)) {\n // abstract components do not keep anything\n // other than props & listeners & slot\n // work around flow\n var slot = data.slot;\n data = {};\n if (slot) {\n data.slot = slot;\n }\n }\n // install component management hooks onto the placeholder node\n installComponentHooks(data);\n // return a placeholder vnode\n // @ts-expect-error\n var name = getComponentName(Ctor.options) || tag;\n var vnode = new VNode(\n // @ts-expect-error\n \"vue-component-\".concat(Ctor.cid).concat(name ? \"-\".concat(name) : ''), data, undefined, undefined, undefined, context, \n // @ts-expect-error\n { Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children }, asyncFactory);\n return vnode;\n }\n function createComponentInstanceForVnode(\n // we know it's MountedComponentVNode but flow doesn't\n vnode, \n // activeInstance in lifecycle state\n parent) {\n var options = {\n _isComponent: true,\n _parentVnode: vnode,\n parent: parent\n };\n // check inline-template render functions\n var inlineTemplate = vnode.data.inlineTemplate;\n if (isDef(inlineTemplate)) {\n options.render = inlineTemplate.render;\n options.staticRenderFns = inlineTemplate.staticRenderFns;\n }\n return new vnode.componentOptions.Ctor(options);\n }\n function installComponentHooks(data) {\n var hooks = data.hook || (data.hook = {});\n for (var i = 0; i < hooksToMerge.length; i++) {\n var key = hooksToMerge[i];\n var existing = hooks[key];\n var toMerge = componentVNodeHooks[key];\n // @ts-expect-error\n if (existing !== toMerge && !(existing && existing._merged)) {\n hooks[key] = existing ? mergeHook(toMerge, existing) : toMerge;\n }\n }\n }\n function mergeHook(f1, f2) {\n var merged = function (a, b) {\n // flow complains about extra args which is why we use any\n f1(a, b);\n f2(a, b);\n };\n merged._merged = true;\n return merged;\n }\n // transform component v-model info (value and callback) into\n // prop and event handler respectively.\n function transformModel(options, data) {\n var prop = (options.model && options.model.prop) || 'value';\n var event = (options.model && options.model.event) || 'input';\n (data.attrs || (data.attrs = {}))[prop] = data.model.value;\n var on = data.on || (data.on = {});\n var existing = on[event];\n var callback = data.model.callback;\n if (isDef(existing)) {\n if (isArray(existing)\n ? existing.indexOf(callback) === -1\n : existing !== callback) {\n on[event] = [callback].concat(existing);\n }\n }\n else {\n on[event] = callback;\n }\n }\n\n var warn$2 = noop;\n var tip = noop;\n var generateComponentTrace; // work around flow check\n var formatComponentName;\n {\n var hasConsole_1 = typeof console !== 'undefined';\n var classifyRE_1 = /(?:^|[-_])(\\w)/g;\n var classify_1 = function (str) {\n return str.replace(classifyRE_1, function (c) { return c.toUpperCase(); }).replace(/[-_]/g, '');\n };\n warn$2 = function (msg, vm) {\n if (vm === void 0) { vm = currentInstance; }\n var trace = vm ? generateComponentTrace(vm) : '';\n if (config.warnHandler) {\n config.warnHandler.call(null, msg, vm, trace);\n }\n else if (hasConsole_1 && !config.silent) {\n console.error(\"[Vue warn]: \".concat(msg).concat(trace));\n }\n };\n tip = function (msg, vm) {\n if (hasConsole_1 && !config.silent) {\n console.warn(\"[Vue tip]: \".concat(msg) + (vm ? generateComponentTrace(vm) : ''));\n }\n };\n formatComponentName = function (vm, includeFile) {\n if (vm.$root === vm) {\n return '<Root>';\n }\n var options = isFunction(vm) && vm.cid != null\n ? vm.options\n : vm._isVue\n ? vm.$options || vm.constructor.options\n : vm;\n var name = getComponentName(options);\n var file = options.__file;\n if (!name && file) {\n var match = file.match(/([^/\\\\]+)\\.vue$/);\n name = match && match[1];\n }\n return ((name ? \"<\".concat(classify_1(name), \">\") : \"<Anonymous>\") +\n (file && includeFile !== false ? \" at \".concat(file) : ''));\n };\n var repeat_1 = function (str, n) {\n var res = '';\n while (n) {\n if (n % 2 === 1)\n res += str;\n if (n > 1)\n str += str;\n n >>= 1;\n }\n return res;\n };\n generateComponentTrace = function (vm) {\n if (vm._isVue && vm.$parent) {\n var tree = [];\n var currentRecursiveSequence = 0;\n while (vm) {\n if (tree.length > 0) {\n var last = tree[tree.length - 1];\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++;\n vm = vm.$parent;\n continue;\n }\n else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence];\n currentRecursiveSequence = 0;\n }\n }\n tree.push(vm);\n vm = vm.$parent;\n }\n return ('\\n\\nfound in\\n\\n' +\n tree\n .map(function (vm, i) {\n return \"\".concat(i === 0 ? '---> ' : repeat_1(' ', 5 + i * 2)).concat(isArray(vm)\n ? \"\".concat(formatComponentName(vm[0]), \"... (\").concat(vm[1], \" recursive calls)\")\n : formatComponentName(vm));\n })\n .join('\\n'));\n }\n else {\n return \"\\n\\n(found in \".concat(formatComponentName(vm), \")\");\n }\n };\n }\n\n /**\n * Option overwriting strategies are functions that handle\n * how to merge a parent option value and a child option\n * value into the final value.\n */\n var strats = config.optionMergeStrategies;\n /**\n * Options with restrictions\n */\n {\n strats.el = strats.propsData = function (parent, child, vm, key) {\n if (!vm) {\n warn$2(\"option \\\"\".concat(key, \"\\\" can only be used during instance \") +\n 'creation with the `new` keyword.');\n }\n return defaultStrat(parent, child);\n };\n }\n /**\n * Helper that recursively merges two data objects together.\n */\n function mergeData(to, from, recursive) {\n if (recursive === void 0) { recursive = true; }\n if (!from)\n return to;\n var key, toVal, fromVal;\n var keys = hasSymbol\n ? Reflect.ownKeys(from)\n : Object.keys(from);\n for (var i = 0; i < keys.length; i++) {\n key = keys[i];\n // in case the object is already observed...\n if (key === '__ob__')\n continue;\n toVal = to[key];\n fromVal = from[key];\n if (!recursive || !hasOwn(to, key)) {\n set(to, key, fromVal);\n }\n else if (toVal !== fromVal &&\n isPlainObject(toVal) &&\n isPlainObject(fromVal)) {\n mergeData(toVal, fromVal);\n }\n }\n return to;\n }\n /**\n * Data\n */\n function mergeDataOrFn(parentVal, childVal, vm) {\n if (!vm) {\n // in a Vue.extend merge, both should be functions\n if (!childVal) {\n return parentVal;\n }\n if (!parentVal) {\n return childVal;\n }\n // when parentVal & childVal are both present,\n // we need to return a function that returns the\n // merged result of both functions... no need to\n // check if parentVal is a function here because\n // it has to be a function to pass previous merges.\n return function mergedDataFn() {\n return mergeData(isFunction(childVal) ? childVal.call(this, this) : childVal, isFunction(parentVal) ? parentVal.call(this, this) : parentVal);\n };\n }\n else {\n return function mergedInstanceDataFn() {\n // instance merge\n var instanceData = isFunction(childVal)\n ? childVal.call(vm, vm)\n : childVal;\n var defaultData = isFunction(parentVal)\n ? parentVal.call(vm, vm)\n : parentVal;\n if (instanceData) {\n return mergeData(instanceData, defaultData);\n }\n else {\n return defaultData;\n }\n };\n }\n }\n strats.data = function (parentVal, childVal, vm) {\n if (!vm) {\n if (childVal && typeof childVal !== 'function') {\n warn$2('The \"data\" option should be a function ' +\n 'that returns a per-instance value in component ' +\n 'definitions.', vm);\n return parentVal;\n }\n return mergeDataOrFn(parentVal, childVal);\n }\n return mergeDataOrFn(parentVal, childVal, vm);\n };\n /**\n * Hooks and props are merged as arrays.\n */\n function mergeLifecycleHook(parentVal, childVal) {\n var res = childVal\n ? parentVal\n ? parentVal.concat(childVal)\n : isArray(childVal)\n ? childVal\n : [childVal]\n : parentVal;\n return res ? dedupeHooks(res) : res;\n }\n function dedupeHooks(hooks) {\n var res = [];\n for (var i = 0; i < hooks.length; i++) {\n if (res.indexOf(hooks[i]) === -1) {\n res.push(hooks[i]);\n }\n }\n return res;\n }\n LIFECYCLE_HOOKS.forEach(function (hook) {\n strats[hook] = mergeLifecycleHook;\n });\n /**\n * Assets\n *\n * When a vm is present (instance creation), we need to do\n * a three-way merge between constructor options, instance\n * options and parent options.\n */\n function mergeAssets(parentVal, childVal, vm, key) {\n var res = Object.create(parentVal || null);\n if (childVal) {\n assertObjectType(key, childVal, vm);\n return extend(res, childVal);\n }\n else {\n return res;\n }\n }\n ASSET_TYPES.forEach(function (type) {\n strats[type + 's'] = mergeAssets;\n });\n /**\n * Watchers.\n *\n * Watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\n strats.watch = function (parentVal, childVal, vm, key) {\n // work around Firefox's Object.prototype.watch...\n //@ts-expect-error work around\n if (parentVal === nativeWatch)\n parentVal = undefined;\n //@ts-expect-error work around\n if (childVal === nativeWatch)\n childVal = undefined;\n /* istanbul ignore if */\n if (!childVal)\n return Object.create(parentVal || null);\n {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal)\n return childVal;\n var ret = {};\n extend(ret, parentVal);\n for (var key_1 in childVal) {\n var parent_1 = ret[key_1];\n var child = childVal[key_1];\n if (parent_1 && !isArray(parent_1)) {\n parent_1 = [parent_1];\n }\n ret[key_1] = parent_1 ? parent_1.concat(child) : isArray(child) ? child : [child];\n }\n return ret;\n };\n /**\n * Other object hashes.\n */\n strats.props =\n strats.methods =\n strats.inject =\n strats.computed =\n function (parentVal, childVal, vm, key) {\n if (childVal && true) {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal)\n return childVal;\n var ret = Object.create(null);\n extend(ret, parentVal);\n if (childVal)\n extend(ret, childVal);\n return ret;\n };\n strats.provide = function (parentVal, childVal) {\n if (!parentVal)\n return childVal;\n return function () {\n var ret = Object.create(null);\n mergeData(ret, isFunction(parentVal) ? parentVal.call(this) : parentVal);\n if (childVal) {\n mergeData(ret, isFunction(childVal) ? childVal.call(this) : childVal, false // non-recursive\n );\n }\n return ret;\n };\n };\n /**\n * Default strategy.\n */\n var defaultStrat = function (parentVal, childVal) {\n return childVal === undefined ? parentVal : childVal;\n };\n /**\n * Validate component names\n */\n function checkComponents(options) {\n for (var key in options.components) {\n validateComponentName(key);\n }\n }\n function validateComponentName(name) {\n if (!new RegExp(\"^[a-zA-Z][\\\\-\\\\.0-9_\".concat(unicodeRegExp.source, \"]*$\")).test(name)) {\n warn$2('Invalid component name: \"' +\n name +\n '\". Component names ' +\n 'should conform to valid custom element name in html5 specification.');\n }\n if (isBuiltInTag(name) || config.isReservedTag(name)) {\n warn$2('Do not use built-in or reserved HTML elements as component ' +\n 'id: ' +\n name);\n }\n }\n /**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n */\n function normalizeProps(options, vm) {\n var props = options.props;\n if (!props)\n return;\n var res = {};\n var i, val, name;\n if (isArray(props)) {\n i = props.length;\n while (i--) {\n val = props[i];\n if (typeof val === 'string') {\n name = camelize(val);\n res[name] = { type: null };\n }\n else {\n warn$2('props must be strings when using array syntax.');\n }\n }\n }\n else if (isPlainObject(props)) {\n for (var key in props) {\n val = props[key];\n name = camelize(key);\n res[name] = isPlainObject(val) ? val : { type: val };\n }\n }\n else {\n warn$2(\"Invalid value for option \\\"props\\\": expected an Array or an Object, \" +\n \"but got \".concat(toRawType(props), \".\"), vm);\n }\n options.props = res;\n }\n /**\n * Normalize all injections into Object-based format\n */\n function normalizeInject(options, vm) {\n var inject = options.inject;\n if (!inject)\n return;\n var normalized = (options.inject = {});\n if (isArray(inject)) {\n for (var i = 0; i < inject.length; i++) {\n normalized[inject[i]] = { from: inject[i] };\n }\n }\n else if (isPlainObject(inject)) {\n for (var key in inject) {\n var val = inject[key];\n normalized[key] = isPlainObject(val)\n ? extend({ from: key }, val)\n : { from: val };\n }\n }\n else {\n warn$2(\"Invalid value for option \\\"inject\\\": expected an Array or an Object, \" +\n \"but got \".concat(toRawType(inject), \".\"), vm);\n }\n }\n /**\n * Normalize raw function directives into object format.\n */\n function normalizeDirectives$1(options) {\n var dirs = options.directives;\n if (dirs) {\n for (var key in dirs) {\n var def = dirs[key];\n if (isFunction(def)) {\n dirs[key] = { bind: def, update: def };\n }\n }\n }\n }\n function assertObjectType(name, value, vm) {\n if (!isPlainObject(value)) {\n warn$2(\"Invalid value for option \\\"\".concat(name, \"\\\": expected an Object, \") +\n \"but got \".concat(toRawType(value), \".\"), vm);\n }\n }\n /**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n */\n function mergeOptions(parent, child, vm) {\n {\n checkComponents(child);\n }\n if (isFunction(child)) {\n // @ts-expect-error\n child = child.options;\n }\n normalizeProps(child, vm);\n normalizeInject(child, vm);\n normalizeDirectives$1(child);\n // Apply extends and mixins on the child options,\n // but only if it is a raw options object that isn't\n // the result of another mergeOptions call.\n // Only merged options has the _base property.\n if (!child._base) {\n if (child.extends) {\n parent = mergeOptions(parent, child.extends, vm);\n }\n if (child.mixins) {\n for (var i = 0, l = child.mixins.length; i < l; i++) {\n parent = mergeOptions(parent, child.mixins[i], vm);\n }\n }\n }\n var options = {};\n var key;\n for (key in parent) {\n mergeField(key);\n }\n for (key in child) {\n if (!hasOwn(parent, key)) {\n mergeField(key);\n }\n }\n function mergeField(key) {\n var strat = strats[key] || defaultStrat;\n options[key] = strat(parent[key], child[key], vm, key);\n }\n return options;\n }\n /**\n * Resolve an asset.\n * This function is used because child instances need access\n * to assets defined in its ancestor chain.\n */\n function resolveAsset(options, type, id, warnMissing) {\n /* istanbul ignore if */\n if (typeof id !== 'string') {\n return;\n }\n var assets = options[type];\n // check local registration variations first\n if (hasOwn(assets, id))\n return assets[id];\n var camelizedId = camelize(id);\n if (hasOwn(assets, camelizedId))\n return assets[camelizedId];\n var PascalCaseId = capitalize(camelizedId);\n if (hasOwn(assets, PascalCaseId))\n return assets[PascalCaseId];\n // fallback to prototype chain\n var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n if (warnMissing && !res) {\n warn$2('Failed to resolve ' + type.slice(0, -1) + ': ' + id);\n }\n return res;\n }\n\n function validateProp(key, propOptions, propsData, vm) {\n var prop = propOptions[key];\n var absent = !hasOwn(propsData, key);\n var value = propsData[key];\n // boolean casting\n var booleanIndex = getTypeIndex(Boolean, prop.type);\n if (booleanIndex > -1) {\n if (absent && !hasOwn(prop, 'default')) {\n value = false;\n }\n else if (value === '' || value === hyphenate(key)) {\n // only cast empty string / same name to boolean if\n // boolean has higher priority\n var stringIndex = getTypeIndex(String, prop.type);\n if (stringIndex < 0 || booleanIndex < stringIndex) {\n value = true;\n }\n }\n }\n // check default value\n if (value === undefined) {\n value = getPropDefaultValue(vm, prop, key);\n // since the default value is a fresh copy,\n // make sure to observe it.\n var prevShouldObserve = shouldObserve;\n toggleObserving(true);\n observe(value);\n toggleObserving(prevShouldObserve);\n }\n {\n assertProp(prop, key, value, vm, absent);\n }\n return value;\n }\n /**\n * Get the default value of a prop.\n */\n function getPropDefaultValue(vm, prop, key) {\n // no default, return undefined\n if (!hasOwn(prop, 'default')) {\n return undefined;\n }\n var def = prop.default;\n // warn against non-factory defaults for Object & Array\n if (isObject(def)) {\n warn$2('Invalid default value for prop \"' +\n key +\n '\": ' +\n 'Props with type Object/Array must use a factory function ' +\n 'to return the default value.', vm);\n }\n // the raw prop value was also undefined from previous render,\n // return previous default value to avoid unnecessary watcher trigger\n if (vm &&\n vm.$options.propsData &&\n vm.$options.propsData[key] === undefined &&\n vm._props[key] !== undefined) {\n return vm._props[key];\n }\n // call factory function for non-Function types\n // a value is Function if its prototype is function even across different execution context\n return isFunction(def) && getType(prop.type) !== 'Function'\n ? def.call(vm)\n : def;\n }\n /**\n * Assert whether a prop is valid.\n */\n function assertProp(prop, name, value, vm, absent) {\n if (prop.required && absent) {\n warn$2('Missing required prop: \"' + name + '\"', vm);\n return;\n }\n if (value == null && !prop.required) {\n return;\n }\n var type = prop.type;\n var valid = !type || type === true;\n var expectedTypes = [];\n if (type) {\n if (!isArray(type)) {\n type = [type];\n }\n for (var i = 0; i < type.length && !valid; i++) {\n var assertedType = assertType(value, type[i], vm);\n expectedTypes.push(assertedType.expectedType || '');\n valid = assertedType.valid;\n }\n }\n var haveExpectedTypes = expectedTypes.some(function (t) { return t; });\n if (!valid && haveExpectedTypes) {\n warn$2(getInvalidTypeMessage(name, value, expectedTypes), vm);\n return;\n }\n var validator = prop.validator;\n if (validator) {\n if (!validator(value)) {\n warn$2('Invalid prop: custom validator check failed for prop \"' + name + '\".', vm);\n }\n }\n }\n var simpleCheckRE = /^(String|Number|Boolean|Function|Symbol|BigInt)$/;\n function assertType(value, type, vm) {\n var valid;\n var expectedType = getType(type);\n if (simpleCheckRE.test(expectedType)) {\n var t = typeof value;\n valid = t === expectedType.toLowerCase();\n // for primitive wrapper objects\n if (!valid && t === 'object') {\n valid = value instanceof type;\n }\n }\n else if (expectedType === 'Object') {\n valid = isPlainObject(value);\n }\n else if (expectedType === 'Array') {\n valid = isArray(value);\n }\n else {\n try {\n valid = value instanceof type;\n }\n catch (e) {\n warn$2('Invalid prop type: \"' + String(type) + '\" is not a constructor', vm);\n valid = false;\n }\n }\n return {\n valid: valid,\n expectedType: expectedType\n };\n }\n var functionTypeCheckRE = /^\\s*function (\\w+)/;\n /**\n * Use function string name to check built-in types,\n * because a simple equality check will fail when running\n * across different vms / iframes.\n */\n function getType(fn) {\n var match = fn && fn.toString().match(functionTypeCheckRE);\n return match ? match[1] : '';\n }\n function isSameType(a, b) {\n return getType(a) === getType(b);\n }\n function getTypeIndex(type, expectedTypes) {\n if (!isArray(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1;\n }\n for (var i = 0, len = expectedTypes.length; i < len; i++) {\n if (isSameType(expectedTypes[i], type)) {\n return i;\n }\n }\n return -1;\n }\n function getInvalidTypeMessage(name, value, expectedTypes) {\n var message = \"Invalid prop: type check failed for prop \\\"\".concat(name, \"\\\".\") +\n \" Expected \".concat(expectedTypes.map(capitalize).join(', '));\n var expectedType = expectedTypes[0];\n var receivedType = toRawType(value);\n // check if we need to specify expected value\n if (expectedTypes.length === 1 &&\n isExplicable(expectedType) &&\n isExplicable(typeof value) &&\n !isBoolean(expectedType, receivedType)) {\n message += \" with value \".concat(styleValue(value, expectedType));\n }\n message += \", got \".concat(receivedType, \" \");\n // check if we need to specify received value\n if (isExplicable(receivedType)) {\n message += \"with value \".concat(styleValue(value, receivedType), \".\");\n }\n return message;\n }\n function styleValue(value, type) {\n if (type === 'String') {\n return \"\\\"\".concat(value, \"\\\"\");\n }\n else if (type === 'Number') {\n return \"\".concat(Number(value));\n }\n else {\n return \"\".concat(value);\n }\n }\n var EXPLICABLE_TYPES = ['string', 'number', 'boolean'];\n function isExplicable(value) {\n return EXPLICABLE_TYPES.some(function (elem) { return value.toLowerCase() === elem; });\n }\n function isBoolean() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; });\n }\n\n function Vue(options) {\n if (!(this instanceof Vue)) {\n warn$2('Vue is a constructor and should be called with the `new` keyword');\n }\n this._init(options);\n }\n //@ts-expect-error Vue has function type\n initMixin$1(Vue);\n //@ts-expect-error Vue has function type\n stateMixin(Vue);\n //@ts-expect-error Vue has function type\n eventsMixin(Vue);\n //@ts-expect-error Vue has function type\n lifecycleMixin(Vue);\n //@ts-expect-error Vue has function type\n renderMixin(Vue);\n\n function initUse(Vue) {\n Vue.use = function (plugin) {\n var installedPlugins = this._installedPlugins || (this._installedPlugins = []);\n if (installedPlugins.indexOf(plugin) > -1) {\n return this;\n }\n // additional parameters\n var args = toArray(arguments, 1);\n args.unshift(this);\n if (isFunction(plugin.install)) {\n plugin.install.apply(plugin, args);\n }\n else if (isFunction(plugin)) {\n plugin.apply(null, args);\n }\n installedPlugins.push(plugin);\n return this;\n };\n }\n\n function initMixin(Vue) {\n Vue.mixin = function (mixin) {\n this.options = mergeOptions(this.options, mixin);\n return this;\n };\n }\n\n function initExtend(Vue) {\n /**\n * Each instance constructor, including Vue, has a unique\n * cid. This enables us to create wrapped \"child\n * constructors\" for prototypal inheritance and cache them.\n */\n Vue.cid = 0;\n var cid = 1;\n /**\n * Class inheritance\n */\n Vue.extend = function (extendOptions) {\n extendOptions = extendOptions || {};\n var Super = this;\n var SuperId = Super.cid;\n var cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {});\n if (cachedCtors[SuperId]) {\n return cachedCtors[SuperId];\n }\n var name = getComponentName(extendOptions) || getComponentName(Super.options);\n if (name) {\n validateComponentName(name);\n }\n var Sub = function VueComponent(options) {\n this._init(options);\n };\n Sub.prototype = Object.create(Super.prototype);\n Sub.prototype.constructor = Sub;\n Sub.cid = cid++;\n Sub.options = mergeOptions(Super.options, extendOptions);\n Sub['super'] = Super;\n // For props and computed properties, we define the proxy getters on\n // the Vue instances at extension time, on the extended prototype. This\n // avoids Object.defineProperty calls for each instance created.\n if (Sub.options.props) {\n initProps(Sub);\n }\n if (Sub.options.computed) {\n initComputed(Sub);\n }\n // allow further extension/mixin/plugin usage\n Sub.extend = Super.extend;\n Sub.mixin = Super.mixin;\n Sub.use = Super.use;\n // create asset registers, so extended classes\n // can have their private assets too.\n ASSET_TYPES.forEach(function (type) {\n Sub[type] = Super[type];\n });\n // enable recursive self-lookup\n if (name) {\n Sub.options.components[name] = Sub;\n }\n // keep a reference to the super options at extension time.\n // later at instantiation we can check if Super's options have\n // been updated.\n Sub.superOptions = Super.options;\n Sub.extendOptions = extendOptions;\n Sub.sealedOptions = extend({}, Sub.options);\n // cache constructor\n cachedCtors[SuperId] = Sub;\n return Sub;\n };\n }\n function initProps(Comp) {\n var props = Comp.options.props;\n for (var key in props) {\n proxy(Comp.prototype, \"_props\", key);\n }\n }\n function initComputed(Comp) {\n var computed = Comp.options.computed;\n for (var key in computed) {\n defineComputed(Comp.prototype, key, computed[key]);\n }\n }\n\n function initAssetRegisters(Vue) {\n /**\n * Create asset registration methods.\n */\n ASSET_TYPES.forEach(function (type) {\n // @ts-expect-error function is not exact same type\n Vue[type] = function (id, definition) {\n if (!definition) {\n return this.options[type + 's'][id];\n }\n else {\n /* istanbul ignore if */\n if (type === 'component') {\n validateComponentName(id);\n }\n if (type === 'component' && isPlainObject(definition)) {\n // @ts-expect-error\n definition.name = definition.name || id;\n definition = this.options._base.extend(definition);\n }\n if (type === 'directive' && isFunction(definition)) {\n definition = { bind: definition, update: definition };\n }\n this.options[type + 's'][id] = definition;\n return definition;\n }\n };\n });\n }\n\n function _getComponentName(opts) {\n return opts && (getComponentName(opts.Ctor.options) || opts.tag);\n }\n function matches(pattern, name) {\n if (isArray(pattern)) {\n return pattern.indexOf(name) > -1;\n }\n else if (typeof pattern === 'string') {\n return pattern.split(',').indexOf(name) > -1;\n }\n else if (isRegExp(pattern)) {\n return pattern.test(name);\n }\n /* istanbul ignore next */\n return false;\n }\n function pruneCache(keepAliveInstance, filter) {\n var cache = keepAliveInstance.cache, keys = keepAliveInstance.keys, _vnode = keepAliveInstance._vnode;\n for (var key in cache) {\n var entry = cache[key];\n if (entry) {\n var name_1 = entry.name;\n if (name_1 && !filter(name_1)) {\n pruneCacheEntry(cache, key, keys, _vnode);\n }\n }\n }\n }\n function pruneCacheEntry(cache, key, keys, current) {\n var entry = cache[key];\n if (entry && (!current || entry.tag !== current.tag)) {\n // @ts-expect-error can be undefined\n entry.componentInstance.$destroy();\n }\n cache[key] = null;\n remove$2(keys, key);\n }\n var patternTypes = [String, RegExp, Array];\n // TODO defineComponent\n var KeepAlive = {\n name: 'keep-alive',\n abstract: true,\n props: {\n include: patternTypes,\n exclude: patternTypes,\n max: [String, Number]\n },\n methods: {\n cacheVNode: function () {\n var _a = this, cache = _a.cache, keys = _a.keys, vnodeToCache = _a.vnodeToCache, keyToCache = _a.keyToCache;\n if (vnodeToCache) {\n var tag = vnodeToCache.tag, componentInstance = vnodeToCache.componentInstance, componentOptions = vnodeToCache.componentOptions;\n cache[keyToCache] = {\n name: _getComponentName(componentOptions),\n tag: tag,\n componentInstance: componentInstance\n };\n keys.push(keyToCache);\n // prune oldest entry\n if (this.max && keys.length > parseInt(this.max)) {\n pruneCacheEntry(cache, keys[0], keys, this._vnode);\n }\n this.vnodeToCache = null;\n }\n }\n },\n created: function () {\n this.cache = Object.create(null);\n this.keys = [];\n },\n destroyed: function () {\n for (var key in this.cache) {\n pruneCacheEntry(this.cache, key, this.keys);\n }\n },\n mounted: function () {\n var _this = this;\n this.cacheVNode();\n this.$watch('include', function (val) {\n pruneCache(_this, function (name) { return matches(val, name); });\n });\n this.$watch('exclude', function (val) {\n pruneCache(_this, function (name) { return !matches(val, name); });\n });\n },\n updated: function () {\n this.cacheVNode();\n },\n render: function () {\n var slot = this.$slots.default;\n var vnode = getFirstComponentChild(slot);\n var componentOptions = vnode && vnode.componentOptions;\n if (componentOptions) {\n // check pattern\n var name_2 = _getComponentName(componentOptions);\n var _a = this, include = _a.include, exclude = _a.exclude;\n if (\n // not included\n (include && (!name_2 || !matches(include, name_2))) ||\n // excluded\n (exclude && name_2 && matches(exclude, name_2))) {\n return vnode;\n }\n var _b = this, cache = _b.cache, keys = _b.keys;\n var key = vnode.key == null\n ? // same constructor may get registered as different local components\n // so cid alone is not enough (#3269)\n componentOptions.Ctor.cid +\n (componentOptions.tag ? \"::\".concat(componentOptions.tag) : '')\n : vnode.key;\n if (cache[key]) {\n vnode.componentInstance = cache[key].componentInstance;\n // make current key freshest\n remove$2(keys, key);\n keys.push(key);\n }\n else {\n // delay setting the cache until update\n this.vnodeToCache = vnode;\n this.keyToCache = key;\n }\n // @ts-expect-error can vnode.data can be undefined\n vnode.data.keepAlive = true;\n }\n return vnode || (slot && slot[0]);\n }\n };\n\n var builtInComponents = {\n KeepAlive: KeepAlive\n };\n\n function initGlobalAPI(Vue) {\n // config\n var configDef = {};\n configDef.get = function () { return config; };\n {\n configDef.set = function () {\n warn$2('Do not replace the Vue.config object, set individual fields instead.');\n };\n }\n Object.defineProperty(Vue, 'config', configDef);\n // exposed util methods.\n // NOTE: these are not considered part of the public API - avoid relying on\n // them unless you are aware of the risk.\n Vue.util = {\n warn: warn$2,\n extend: extend,\n mergeOptions: mergeOptions,\n defineReactive: defineReactive\n };\n Vue.set = set;\n Vue.delete = del;\n Vue.nextTick = nextTick;\n // 2.6 explicit observable API\n Vue.observable = function (obj) {\n observe(obj);\n return obj;\n };\n Vue.options = Object.create(null);\n ASSET_TYPES.forEach(function (type) {\n Vue.options[type + 's'] = Object.create(null);\n });\n // this is used to identify the \"base\" constructor to extend all plain-object\n // components with in Weex's multi-instance scenarios.\n Vue.options._base = Vue;\n extend(Vue.options.components, builtInComponents);\n initUse(Vue);\n initMixin(Vue);\n initExtend(Vue);\n initAssetRegisters(Vue);\n }\n\n initGlobalAPI(Vue);\n Object.defineProperty(Vue.prototype, '$isServer', {\n get: isServerRendering\n });\n Object.defineProperty(Vue.prototype, '$ssrContext', {\n get: function () {\n /* istanbul ignore next */\n return this.$vnode && this.$vnode.ssrContext;\n }\n });\n // expose FunctionalRenderContext for ssr runtime helper installation\n Object.defineProperty(Vue, 'FunctionalRenderContext', {\n value: FunctionalRenderContext\n });\n Vue.version = version;\n\n // these are reserved for web because they are directly compiled away\n // during template compilation\n var isReservedAttr = makeMap('style,class');\n // attributes that should be using props for binding\n var acceptValue = makeMap('input,textarea,option,select,progress');\n var mustUseProp = function (tag, type, attr) {\n return ((attr === 'value' && acceptValue(tag) && type !== 'button') ||\n (attr === 'selected' && tag === 'option') ||\n (attr === 'checked' && tag === 'input') ||\n (attr === 'muted' && tag === 'video'));\n };\n var isEnumeratedAttr = makeMap('contenteditable,draggable,spellcheck');\n var isValidContentEditableValue = makeMap('events,caret,typing,plaintext-only');\n var convertEnumeratedValue = function (key, value) {\n return isFalsyAttrValue(value) || value === 'false'\n ? 'false'\n : // allow arbitrary string value for contenteditable\n key === 'contenteditable' && isValidContentEditableValue(value)\n ? value\n : 'true';\n };\n var isBooleanAttr = makeMap('allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,' +\n 'default,defaultchecked,defaultmuted,defaultselected,defer,disabled,' +\n 'enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,' +\n 'muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,' +\n 'required,reversed,scoped,seamless,selected,sortable,' +\n 'truespeed,typemustmatch,visible');\n var xlinkNS = 'http://www.w3.org/1999/xlink';\n var isXlink = function (name) {\n return name.charAt(5) === ':' && name.slice(0, 5) === 'xlink';\n };\n var getXlinkProp = function (name) {\n return isXlink(name) ? name.slice(6, name.length) : '';\n };\n var isFalsyAttrValue = function (val) {\n return val == null || val === false;\n };\n\n function genClassForVnode(vnode) {\n var data = vnode.data;\n var parentNode = vnode;\n var childNode = vnode;\n while (isDef(childNode.componentInstance)) {\n childNode = childNode.componentInstance._vnode;\n if (childNode && childNode.data) {\n data = mergeClassData(childNode.data, data);\n }\n }\n // @ts-expect-error parentNode.parent not VNodeWithData\n while (isDef((parentNode = parentNode.parent))) {\n if (parentNode && parentNode.data) {\n data = mergeClassData(data, parentNode.data);\n }\n }\n return renderClass(data.staticClass, data.class);\n }\n function mergeClassData(child, parent) {\n return {\n staticClass: concat(child.staticClass, parent.staticClass),\n class: isDef(child.class) ? [child.class, parent.class] : parent.class\n };\n }\n function renderClass(staticClass, dynamicClass) {\n if (isDef(staticClass) || isDef(dynamicClass)) {\n return concat(staticClass, stringifyClass(dynamicClass));\n }\n /* istanbul ignore next */\n return '';\n }\n function concat(a, b) {\n return a ? (b ? a + ' ' + b : a) : b || '';\n }\n function stringifyClass(value) {\n if (Array.isArray(value)) {\n return stringifyArray(value);\n }\n if (isObject(value)) {\n return stringifyObject(value);\n }\n if (typeof value === 'string') {\n return value;\n }\n /* istanbul ignore next */\n return '';\n }\n function stringifyArray(value) {\n var res = '';\n var stringified;\n for (var i = 0, l = value.length; i < l; i++) {\n if (isDef((stringified = stringifyClass(value[i]))) && stringified !== '') {\n if (res)\n res += ' ';\n res += stringified;\n }\n }\n return res;\n }\n function stringifyObject(value) {\n var res = '';\n for (var key in value) {\n if (value[key]) {\n if (res)\n res += ' ';\n res += key;\n }\n }\n return res;\n }\n\n var namespaceMap = {\n svg: 'http://www.w3.org/2000/svg',\n math: 'http://www.w3.org/1998/Math/MathML'\n };\n var isHTMLTag = makeMap('html,body,base,head,link,meta,style,title,' +\n 'address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,' +\n 'div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,' +\n 'a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,' +\n 's,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,' +\n 'embed,object,param,source,canvas,script,noscript,del,ins,' +\n 'caption,col,colgroup,table,thead,tbody,td,th,tr,' +\n 'button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,' +\n 'output,progress,select,textarea,' +\n 'details,dialog,menu,menuitem,summary,' +\n 'content,element,shadow,template,blockquote,iframe,tfoot');\n // this map is intentionally selective, only covering SVG elements that may\n // contain child elements.\n var isSVG = makeMap('svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,' +\n 'foreignobject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,' +\n 'polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view', true);\n var isPreTag = function (tag) { return tag === 'pre'; };\n var isReservedTag = function (tag) {\n return isHTMLTag(tag) || isSVG(tag);\n };\n function getTagNamespace(tag) {\n if (isSVG(tag)) {\n return 'svg';\n }\n // basic support for MathML\n // note it doesn't support other MathML elements being component roots\n if (tag === 'math') {\n return 'math';\n }\n }\n var unknownElementCache = Object.create(null);\n function isUnknownElement(tag) {\n /* istanbul ignore if */\n if (!inBrowser) {\n return true;\n }\n if (isReservedTag(tag)) {\n return false;\n }\n tag = tag.toLowerCase();\n /* istanbul ignore if */\n if (unknownElementCache[tag] != null) {\n return unknownElementCache[tag];\n }\n var el = document.createElement(tag);\n if (tag.indexOf('-') > -1) {\n // http://stackoverflow.com/a/28210364/1070244\n return (unknownElementCache[tag] =\n el.constructor === window.HTMLUnknownElement ||\n el.constructor === window.HTMLElement);\n }\n else {\n return (unknownElementCache[tag] = /HTMLUnknownElement/.test(el.toString()));\n }\n }\n var isTextInputType = makeMap('text,number,password,search,email,tel,url');\n\n /**\n * Query an element selector if it's not an element already.\n */\n function query(el) {\n if (typeof el === 'string') {\n var selected = document.querySelector(el);\n if (!selected) {\n warn$2('Cannot find element: ' + el);\n return document.createElement('div');\n }\n return selected;\n }\n else {\n return el;\n }\n }\n\n function createElement(tagName, vnode) {\n var elm = document.createElement(tagName);\n if (tagName !== 'select') {\n return elm;\n }\n // false or null will remove the attribute but undefined will not\n if (vnode.data &&\n vnode.data.attrs &&\n vnode.data.attrs.multiple !== undefined) {\n elm.setAttribute('multiple', 'multiple');\n }\n return elm;\n }\n function createElementNS(namespace, tagName) {\n return document.createElementNS(namespaceMap[namespace], tagName);\n }\n function createTextNode(text) {\n return document.createTextNode(text);\n }\n function createComment(text) {\n return document.createComment(text);\n }\n function insertBefore(parentNode, newNode, referenceNode) {\n parentNode.insertBefore(newNode, referenceNode);\n }\n function removeChild(node, child) {\n node.removeChild(child);\n }\n function appendChild(node, child) {\n node.appendChild(child);\n }\n function parentNode(node) {\n return node.parentNode;\n }\n function nextSibling(node) {\n return node.nextSibling;\n }\n function tagName(node) {\n return node.tagName;\n }\n function setTextContent(node, text) {\n node.textContent = text;\n }\n function setStyleScope(node, scopeId) {\n node.setAttribute(scopeId, '');\n }\n\n var nodeOps = /*#__PURE__*/Object.freeze({\n __proto__: null,\n createElement: createElement,\n createElementNS: createElementNS,\n createTextNode: createTextNode,\n createComment: createComment,\n insertBefore: insertBefore,\n removeChild: removeChild,\n appendChild: appendChild,\n parentNode: parentNode,\n nextSibling: nextSibling,\n tagName: tagName,\n setTextContent: setTextContent,\n setStyleScope: setStyleScope\n });\n\n var ref = {\n create: function (_, vnode) {\n registerRef(vnode);\n },\n update: function (oldVnode, vnode) {\n if (oldVnode.data.ref !== vnode.data.ref) {\n registerRef(oldVnode, true);\n registerRef(vnode);\n }\n },\n destroy: function (vnode) {\n registerRef(vnode, true);\n }\n };\n function registerRef(vnode, isRemoval) {\n var ref = vnode.data.ref;\n if (!isDef(ref))\n return;\n var vm = vnode.context;\n var refValue = vnode.componentInstance || vnode.elm;\n var value = isRemoval ? null : refValue;\n var $refsValue = isRemoval ? undefined : refValue;\n if (isFunction(ref)) {\n invokeWithErrorHandling(ref, vm, [value], vm, \"template ref function\");\n return;\n }\n var isFor = vnode.data.refInFor;\n var _isString = typeof ref === 'string' || typeof ref === 'number';\n var _isRef = isRef(ref);\n var refs = vm.$refs;\n if (_isString || _isRef) {\n if (isFor) {\n var existing = _isString ? refs[ref] : ref.value;\n if (isRemoval) {\n isArray(existing) && remove$2(existing, refValue);\n }\n else {\n if (!isArray(existing)) {\n if (_isString) {\n refs[ref] = [refValue];\n setSetupRef(vm, ref, refs[ref]);\n }\n else {\n ref.value = [refValue];\n }\n }\n else if (!existing.includes(refValue)) {\n existing.push(refValue);\n }\n }\n }\n else if (_isString) {\n if (isRemoval && refs[ref] !== refValue) {\n return;\n }\n refs[ref] = $refsValue;\n setSetupRef(vm, ref, value);\n }\n else if (_isRef) {\n if (isRemoval && ref.value !== refValue) {\n return;\n }\n ref.value = value;\n }\n else {\n warn$2(\"Invalid template ref type: \".concat(typeof ref));\n }\n }\n }\n function setSetupRef(_a, key, val) {\n var _setupState = _a._setupState;\n if (_setupState && hasOwn(_setupState, key)) {\n if (isRef(_setupState[key])) {\n _setupState[key].value = val;\n }\n else {\n _setupState[key] = val;\n }\n }\n }\n\n /**\n * Virtual DOM patching algorithm based on Snabbdom by\n * Simon Friis Vindum (@paldepind)\n * Licensed under the MIT License\n * https://github.com/paldepind/snabbdom/blob/master/LICENSE\n *\n * modified by Evan You (@yyx990803)\n *\n * Not type-checking this because this file is perf-critical and the cost\n * of making flow understand it is not worth it.\n */\n var emptyNode = new VNode('', {}, []);\n var hooks = ['create', 'activate', 'update', 'remove', 'destroy'];\n function sameVnode(a, b) {\n return (a.key === b.key &&\n a.asyncFactory === b.asyncFactory &&\n ((a.tag === b.tag &&\n a.isComment === b.isComment &&\n isDef(a.data) === isDef(b.data) &&\n sameInputType(a, b)) ||\n (isTrue(a.isAsyncPlaceholder) && isUndef(b.asyncFactory.error))));\n }\n function sameInputType(a, b) {\n if (a.tag !== 'input')\n return true;\n var i;\n var typeA = isDef((i = a.data)) && isDef((i = i.attrs)) && i.type;\n var typeB = isDef((i = b.data)) && isDef((i = i.attrs)) && i.type;\n return typeA === typeB || (isTextInputType(typeA) && isTextInputType(typeB));\n }\n function createKeyToOldIdx(children, beginIdx, endIdx) {\n var i, key;\n var map = {};\n for (i = beginIdx; i <= endIdx; ++i) {\n key = children[i].key;\n if (isDef(key))\n map[key] = i;\n }\n return map;\n }\n function createPatchFunction(backend) {\n var i, j;\n var cbs = {};\n var modules = backend.modules, nodeOps = backend.nodeOps;\n for (i = 0; i < hooks.length; ++i) {\n cbs[hooks[i]] = [];\n for (j = 0; j < modules.length; ++j) {\n if (isDef(modules[j][hooks[i]])) {\n cbs[hooks[i]].push(modules[j][hooks[i]]);\n }\n }\n }\n function emptyNodeAt(elm) {\n return new VNode(nodeOps.tagName(elm).toLowerCase(), {}, [], undefined, elm);\n }\n function createRmCb(childElm, listeners) {\n function remove() {\n if (--remove.listeners === 0) {\n removeNode(childElm);\n }\n }\n remove.listeners = listeners;\n return remove;\n }\n function removeNode(el) {\n var parent = nodeOps.parentNode(el);\n // element may have already been removed due to v-html / v-text\n if (isDef(parent)) {\n nodeOps.removeChild(parent, el);\n }\n }\n function isUnknownElement(vnode, inVPre) {\n return (!inVPre &&\n !vnode.ns &&\n !(config.ignoredElements.length &&\n config.ignoredElements.some(function (ignore) {\n return isRegExp(ignore)\n ? ignore.test(vnode.tag)\n : ignore === vnode.tag;\n })) &&\n config.isUnknownElement(vnode.tag));\n }\n var creatingElmInVPre = 0;\n function createElm(vnode, insertedVnodeQueue, parentElm, refElm, nested, ownerArray, index) {\n if (isDef(vnode.elm) && isDef(ownerArray)) {\n // This vnode was used in a previous render!\n // now it's used as a new node, overwriting its elm would cause\n // potential patch errors down the road when it's used as an insertion\n // reference node. Instead, we clone the node on-demand before creating\n // associated DOM element for it.\n vnode = ownerArray[index] = cloneVNode(vnode);\n }\n vnode.isRootInsert = !nested; // for transition enter check\n if (createComponent(vnode, insertedVnodeQueue, parentElm, refElm)) {\n return;\n }\n var data = vnode.data;\n var children = vnode.children;\n var tag = vnode.tag;\n if (isDef(tag)) {\n {\n if (data && data.pre) {\n creatingElmInVPre++;\n }\n if (isUnknownElement(vnode, creatingElmInVPre)) {\n warn$2('Unknown custom element: <' +\n tag +\n '> - did you ' +\n 'register the component correctly? For recursive components, ' +\n 'make sure to provide the \"name\" option.', vnode.context);\n }\n }\n vnode.elm = vnode.ns\n ? nodeOps.createElementNS(vnode.ns, tag)\n : nodeOps.createElement(tag, vnode);\n setScope(vnode);\n createChildren(vnode, children, insertedVnodeQueue);\n if (isDef(data)) {\n invokeCreateHooks(vnode, insertedVnodeQueue);\n }\n insert(parentElm, vnode.elm, refElm);\n if (data && data.pre) {\n creatingElmInVPre--;\n }\n }\n else if (isTrue(vnode.isComment)) {\n vnode.elm = nodeOps.createComment(vnode.text);\n insert(parentElm, vnode.elm, refElm);\n }\n else {\n vnode.elm = nodeOps.createTextNode(vnode.text);\n insert(parentElm, vnode.elm, refElm);\n }\n }\n function createComponent(vnode, insertedVnodeQueue, parentElm, refElm) {\n var i = vnode.data;\n if (isDef(i)) {\n var isReactivated = isDef(vnode.componentInstance) && i.keepAlive;\n if (isDef((i = i.hook)) && isDef((i = i.init))) {\n i(vnode, false /* hydrating */);\n }\n // after calling the init hook, if the vnode is a child component\n // it should've created a child instance and mounted it. the child\n // component also has set the placeholder vnode's elm.\n // in that case we can just return the element and be done.\n if (isDef(vnode.componentInstance)) {\n initComponent(vnode, insertedVnodeQueue);\n insert(parentElm, vnode.elm, refElm);\n if (isTrue(isReactivated)) {\n reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm);\n }\n return true;\n }\n }\n }\n function initComponent(vnode, insertedVnodeQueue) {\n if (isDef(vnode.data.pendingInsert)) {\n insertedVnodeQueue.push.apply(insertedVnodeQueue, vnode.data.pendingInsert);\n vnode.data.pendingInsert = null;\n }\n vnode.elm = vnode.componentInstance.$el;\n if (isPatchable(vnode)) {\n invokeCreateHooks(vnode, insertedVnodeQueue);\n setScope(vnode);\n }\n else {\n // empty component root.\n // skip all element-related modules except for ref (#3455)\n registerRef(vnode);\n // make sure to invoke the insert hook\n insertedVnodeQueue.push(vnode);\n }\n }\n function reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm) {\n var i;\n // hack for #4339: a reactivated component with inner transition\n // does not trigger because the inner node's created hooks are not called\n // again. It's not ideal to involve module-specific logic in here but\n // there doesn't seem to be a better way to do it.\n var innerNode = vnode;\n while (innerNode.componentInstance) {\n innerNode = innerNode.componentInstance._vnode;\n if (isDef((i = innerNode.data)) && isDef((i = i.transition))) {\n for (i = 0; i < cbs.activate.length; ++i) {\n cbs.activate[i](emptyNode, innerNode);\n }\n insertedVnodeQueue.push(innerNode);\n break;\n }\n }\n // unlike a newly created component,\n // a reactivated keep-alive component doesn't insert itself\n insert(parentElm, vnode.elm, refElm);\n }\n function insert(parent, elm, ref) {\n if (isDef(parent)) {\n if (isDef(ref)) {\n if (nodeOps.parentNode(ref) === parent) {\n nodeOps.insertBefore(parent, elm, ref);\n }\n }\n else {\n nodeOps.appendChild(parent, elm);\n }\n }\n }\n function createChildren(vnode, children, insertedVnodeQueue) {\n if (isArray(children)) {\n {\n checkDuplicateKeys(children);\n }\n for (var i_1 = 0; i_1 < children.length; ++i_1) {\n createElm(children[i_1], insertedVnodeQueue, vnode.elm, null, true, children, i_1);\n }\n }\n else if (isPrimitive(vnode.text)) {\n nodeOps.appendChild(vnode.elm, nodeOps.createTextNode(String(vnode.text)));\n }\n }\n function isPatchable(vnode) {\n while (vnode.componentInstance) {\n vnode = vnode.componentInstance._vnode;\n }\n return isDef(vnode.tag);\n }\n function invokeCreateHooks(vnode, insertedVnodeQueue) {\n for (var i_2 = 0; i_2 < cbs.create.length; ++i_2) {\n cbs.create[i_2](emptyNode, vnode);\n }\n i = vnode.data.hook; // Reuse variable\n if (isDef(i)) {\n if (isDef(i.create))\n i.create(emptyNode, vnode);\n if (isDef(i.insert))\n insertedVnodeQueue.push(vnode);\n }\n }\n // set scope id attribute for scoped CSS.\n // this is implemented as a special case to avoid the overhead\n // of going through the normal attribute patching process.\n function setScope(vnode) {\n var i;\n if (isDef((i = vnode.fnScopeId))) {\n nodeOps.setStyleScope(vnode.elm, i);\n }\n else {\n var ancestor = vnode;\n while (ancestor) {\n if (isDef((i = ancestor.context)) && isDef((i = i.$options._scopeId))) {\n nodeOps.setStyleScope(vnode.elm, i);\n }\n ancestor = ancestor.parent;\n }\n }\n // for slot content they should also get the scopeId from the host instance.\n if (isDef((i = activeInstance)) &&\n i !== vnode.context &&\n i !== vnode.fnContext &&\n isDef((i = i.$options._scopeId))) {\n nodeOps.setStyleScope(vnode.elm, i);\n }\n }\n function addVnodes(parentElm, refElm, vnodes, startIdx, endIdx, insertedVnodeQueue) {\n for (; startIdx <= endIdx; ++startIdx) {\n createElm(vnodes[startIdx], insertedVnodeQueue, parentElm, refElm, false, vnodes, startIdx);\n }\n }\n function invokeDestroyHook(vnode) {\n var i, j;\n var data = vnode.data;\n if (isDef(data)) {\n if (isDef((i = data.hook)) && isDef((i = i.destroy)))\n i(vnode);\n for (i = 0; i < cbs.destroy.length; ++i)\n cbs.destroy[i](vnode);\n }\n if (isDef((i = vnode.children))) {\n for (j = 0; j < vnode.children.length; ++j) {\n invokeDestroyHook(vnode.children[j]);\n }\n }\n }\n function removeVnodes(vnodes, startIdx, endIdx) {\n for (; startIdx <= endIdx; ++startIdx) {\n var ch = vnodes[startIdx];\n if (isDef(ch)) {\n if (isDef(ch.tag)) {\n removeAndInvokeRemoveHook(ch);\n invokeDestroyHook(ch);\n }\n else {\n // Text node\n removeNode(ch.elm);\n }\n }\n }\n }\n function removeAndInvokeRemoveHook(vnode, rm) {\n if (isDef(rm) || isDef(vnode.data)) {\n var i_3;\n var listeners = cbs.remove.length + 1;\n if (isDef(rm)) {\n // we have a recursively passed down rm callback\n // increase the listeners count\n rm.listeners += listeners;\n }\n else {\n // directly removing\n rm = createRmCb(vnode.elm, listeners);\n }\n // recursively invoke hooks on child component root node\n if (isDef((i_3 = vnode.componentInstance)) &&\n isDef((i_3 = i_3._vnode)) &&\n isDef(i_3.data)) {\n removeAndInvokeRemoveHook(i_3, rm);\n }\n for (i_3 = 0; i_3 < cbs.remove.length; ++i_3) {\n cbs.remove[i_3](vnode, rm);\n }\n if (isDef((i_3 = vnode.data.hook)) && isDef((i_3 = i_3.remove))) {\n i_3(vnode, rm);\n }\n else {\n rm();\n }\n }\n else {\n removeNode(vnode.elm);\n }\n }\n function updateChildren(parentElm, oldCh, newCh, insertedVnodeQueue, removeOnly) {\n var oldStartIdx = 0;\n var newStartIdx = 0;\n var oldEndIdx = oldCh.length - 1;\n var oldStartVnode = oldCh[0];\n var oldEndVnode = oldCh[oldEndIdx];\n var newEndIdx = newCh.length - 1;\n var newStartVnode = newCh[0];\n var newEndVnode = newCh[newEndIdx];\n var oldKeyToIdx, idxInOld, vnodeToMove, refElm;\n // removeOnly is a special flag used only by <transition-group>\n // to ensure removed elements stay in correct relative positions\n // during leaving transitions\n var canMove = !removeOnly;\n {\n checkDuplicateKeys(newCh);\n }\n while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n if (isUndef(oldStartVnode)) {\n oldStartVnode = oldCh[++oldStartIdx]; // Vnode has been moved left\n }\n else if (isUndef(oldEndVnode)) {\n oldEndVnode = oldCh[--oldEndIdx];\n }\n else if (sameVnode(oldStartVnode, newStartVnode)) {\n patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);\n oldStartVnode = oldCh[++oldStartIdx];\n newStartVnode = newCh[++newStartIdx];\n }\n else if (sameVnode(oldEndVnode, newEndVnode)) {\n patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx);\n oldEndVnode = oldCh[--oldEndIdx];\n newEndVnode = newCh[--newEndIdx];\n }\n else if (sameVnode(oldStartVnode, newEndVnode)) {\n // Vnode moved right\n patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx);\n canMove &&\n nodeOps.insertBefore(parentElm, oldStartVnode.elm, nodeOps.nextSibling(oldEndVnode.elm));\n oldStartVnode = oldCh[++oldStartIdx];\n newEndVnode = newCh[--newEndIdx];\n }\n else if (sameVnode(oldEndVnode, newStartVnode)) {\n // Vnode moved left\n patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);\n canMove &&\n nodeOps.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm);\n oldEndVnode = oldCh[--oldEndIdx];\n newStartVnode = newCh[++newStartIdx];\n }\n else {\n if (isUndef(oldKeyToIdx))\n oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx);\n idxInOld = isDef(newStartVnode.key)\n ? oldKeyToIdx[newStartVnode.key]\n : findIdxInOld(newStartVnode, oldCh, oldStartIdx, oldEndIdx);\n if (isUndef(idxInOld)) {\n // New element\n createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);\n }\n else {\n vnodeToMove = oldCh[idxInOld];\n if (sameVnode(vnodeToMove, newStartVnode)) {\n patchVnode(vnodeToMove, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);\n oldCh[idxInOld] = undefined;\n canMove &&\n nodeOps.insertBefore(parentElm, vnodeToMove.elm, oldStartVnode.elm);\n }\n else {\n // same key but different element. treat as new element\n createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);\n }\n }\n newStartVnode = newCh[++newStartIdx];\n }\n }\n if (oldStartIdx > oldEndIdx) {\n refElm = isUndef(newCh[newEndIdx + 1]) ? null : newCh[newEndIdx + 1].elm;\n addVnodes(parentElm, refElm, newCh, newStartIdx, newEndIdx, insertedVnodeQueue);\n }\n else if (newStartIdx > newEndIdx) {\n removeVnodes(oldCh, oldStartIdx, oldEndIdx);\n }\n }\n function checkDuplicateKeys(children) {\n var seenKeys = {};\n for (var i_4 = 0; i_4 < children.length; i_4++) {\n var vnode = children[i_4];\n var key = vnode.key;\n if (isDef(key)) {\n if (seenKeys[key]) {\n warn$2(\"Duplicate keys detected: '\".concat(key, \"'. This may cause an update error.\"), vnode.context);\n }\n else {\n seenKeys[key] = true;\n }\n }\n }\n }\n function findIdxInOld(node, oldCh, start, end) {\n for (var i_5 = start; i_5 < end; i_5++) {\n var c = oldCh[i_5];\n if (isDef(c) && sameVnode(node, c))\n return i_5;\n }\n }\n function patchVnode(oldVnode, vnode, insertedVnodeQueue, ownerArray, index, removeOnly) {\n if (oldVnode === vnode) {\n return;\n }\n if (isDef(vnode.elm) && isDef(ownerArray)) {\n // clone reused vnode\n vnode = ownerArray[index] = cloneVNode(vnode);\n }\n var elm = (vnode.elm = oldVnode.elm);\n if (isTrue(oldVnode.isAsyncPlaceholder)) {\n if (isDef(vnode.asyncFactory.resolved)) {\n hydrate(oldVnode.elm, vnode, insertedVnodeQueue);\n }\n else {\n vnode.isAsyncPlaceholder = true;\n }\n return;\n }\n // reuse element for static trees.\n // note we only do this if the vnode is cloned -\n // if the new node is not cloned it means the render functions have been\n // reset by the hot-reload-api and we need to do a proper re-render.\n if (isTrue(vnode.isStatic) &&\n isTrue(oldVnode.isStatic) &&\n vnode.key === oldVnode.key &&\n (isTrue(vnode.isCloned) || isTrue(vnode.isOnce))) {\n vnode.componentInstance = oldVnode.componentInstance;\n return;\n }\n var i;\n var data = vnode.data;\n if (isDef(data) && isDef((i = data.hook)) && isDef((i = i.prepatch))) {\n i(oldVnode, vnode);\n }\n var oldCh = oldVnode.children;\n var ch = vnode.children;\n if (isDef(data) && isPatchable(vnode)) {\n for (i = 0; i < cbs.update.length; ++i)\n cbs.update[i](oldVnode, vnode);\n if (isDef((i = data.hook)) && isDef((i = i.update)))\n i(oldVnode, vnode);\n }\n if (isUndef(vnode.text)) {\n if (isDef(oldCh) && isDef(ch)) {\n if (oldCh !== ch)\n updateChildren(elm, oldCh, ch, insertedVnodeQueue, removeOnly);\n }\n else if (isDef(ch)) {\n {\n checkDuplicateKeys(ch);\n }\n if (isDef(oldVnode.text))\n nodeOps.setTextContent(elm, '');\n addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue);\n }\n else if (isDef(oldCh)) {\n removeVnodes(oldCh, 0, oldCh.length - 1);\n }\n else if (isDef(oldVnode.text)) {\n nodeOps.setTextContent(elm, '');\n }\n }\n else if (oldVnode.text !== vnode.text) {\n nodeOps.setTextContent(elm, vnode.text);\n }\n if (isDef(data)) {\n if (isDef((i = data.hook)) && isDef((i = i.postpatch)))\n i(oldVnode, vnode);\n }\n }\n function invokeInsertHook(vnode, queue, initial) {\n // delay insert hooks for component root nodes, invoke them after the\n // element is really inserted\n if (isTrue(initial) && isDef(vnode.parent)) {\n vnode.parent.data.pendingInsert = queue;\n }\n else {\n for (var i_6 = 0; i_6 < queue.length; ++i_6) {\n queue[i_6].data.hook.insert(queue[i_6]);\n }\n }\n }\n var hydrationBailed = false;\n // list of modules that can skip create hook during hydration because they\n // are already rendered on the client or has no need for initialization\n // Note: style is excluded because it relies on initial clone for future\n // deep updates (#7063).\n var isRenderedModule = makeMap('attrs,class,staticClass,staticStyle,key');\n // Note: this is a browser-only function so we can assume elms are DOM nodes.\n function hydrate(elm, vnode, insertedVnodeQueue, inVPre) {\n var i;\n var tag = vnode.tag, data = vnode.data, children = vnode.children;\n inVPre = inVPre || (data && data.pre);\n vnode.elm = elm;\n if (isTrue(vnode.isComment) && isDef(vnode.asyncFactory)) {\n vnode.isAsyncPlaceholder = true;\n return true;\n }\n // assert node match\n {\n if (!assertNodeMatch(elm, vnode, inVPre)) {\n return false;\n }\n }\n if (isDef(data)) {\n if (isDef((i = data.hook)) && isDef((i = i.init)))\n i(vnode, true /* hydrating */);\n if (isDef((i = vnode.componentInstance))) {\n // child component. it should have hydrated its own tree.\n initComponent(vnode, insertedVnodeQueue);\n return true;\n }\n }\n if (isDef(tag)) {\n if (isDef(children)) {\n // empty element, allow client to pick up and populate children\n if (!elm.hasChildNodes()) {\n createChildren(vnode, children, insertedVnodeQueue);\n }\n else {\n // v-html and domProps: innerHTML\n if (isDef((i = data)) &&\n isDef((i = i.domProps)) &&\n isDef((i = i.innerHTML))) {\n if (i !== elm.innerHTML) {\n /* istanbul ignore if */\n if (typeof console !== 'undefined' &&\n !hydrationBailed) {\n hydrationBailed = true;\n console.warn('Parent: ', elm);\n console.warn('server innerHTML: ', i);\n console.warn('client innerHTML: ', elm.innerHTML);\n }\n return false;\n }\n }\n else {\n // iterate and compare children lists\n var childrenMatch = true;\n var childNode = elm.firstChild;\n for (var i_7 = 0; i_7 < children.length; i_7++) {\n if (!childNode ||\n !hydrate(childNode, children[i_7], insertedVnodeQueue, inVPre)) {\n childrenMatch = false;\n break;\n }\n childNode = childNode.nextSibling;\n }\n // if childNode is not null, it means the actual childNodes list is\n // longer than the virtual children list.\n if (!childrenMatch || childNode) {\n /* istanbul ignore if */\n if (typeof console !== 'undefined' &&\n !hydrationBailed) {\n hydrationBailed = true;\n console.warn('Parent: ', elm);\n console.warn('Mismatching childNodes vs. VNodes: ', elm.childNodes, children);\n }\n return false;\n }\n }\n }\n }\n if (isDef(data)) {\n var fullInvoke = false;\n for (var key in data) {\n if (!isRenderedModule(key)) {\n fullInvoke = true;\n invokeCreateHooks(vnode, insertedVnodeQueue);\n break;\n }\n }\n if (!fullInvoke && data['class']) {\n // ensure collecting deps for deep class bindings for future updates\n traverse(data['class']);\n }\n }\n }\n else if (elm.data !== vnode.text) {\n elm.data = vnode.text;\n }\n return true;\n }\n function assertNodeMatch(node, vnode, inVPre) {\n if (isDef(vnode.tag)) {\n return (vnode.tag.indexOf('vue-component') === 0 ||\n (!isUnknownElement(vnode, inVPre) &&\n vnode.tag.toLowerCase() ===\n (node.tagName && node.tagName.toLowerCase())));\n }\n else {\n return node.nodeType === (vnode.isComment ? 8 : 3);\n }\n }\n return function patch(oldVnode, vnode, hydrating, removeOnly) {\n if (isUndef(vnode)) {\n if (isDef(oldVnode))\n invokeDestroyHook(oldVnode);\n return;\n }\n var isInitialPatch = false;\n var insertedVnodeQueue = [];\n if (isUndef(oldVnode)) {\n // empty mount (likely as component), create new root element\n isInitialPatch = true;\n createElm(vnode, insertedVnodeQueue);\n }\n else {\n var isRealElement = isDef(oldVnode.nodeType);\n if (!isRealElement && sameVnode(oldVnode, vnode)) {\n // patch existing root node\n patchVnode(oldVnode, vnode, insertedVnodeQueue, null, null, removeOnly);\n }\n else {\n if (isRealElement) {\n // mounting to a real element\n // check if this is server-rendered content and if we can perform\n // a successful hydration.\n if (oldVnode.nodeType === 1 && oldVnode.hasAttribute(SSR_ATTR)) {\n oldVnode.removeAttribute(SSR_ATTR);\n hydrating = true;\n }\n if (isTrue(hydrating)) {\n if (hydrate(oldVnode, vnode, insertedVnodeQueue)) {\n invokeInsertHook(vnode, insertedVnodeQueue, true);\n return oldVnode;\n }\n else {\n warn$2('The client-side rendered virtual DOM tree is not matching ' +\n 'server-rendered content. This is likely caused by incorrect ' +\n 'HTML markup, for example nesting block-level elements inside ' +\n '<p>, or missing <tbody>. Bailing hydration and performing ' +\n 'full client-side render.');\n }\n }\n // either not server-rendered, or hydration failed.\n // create an empty node and replace it\n oldVnode = emptyNodeAt(oldVnode);\n }\n // replacing existing element\n var oldElm = oldVnode.elm;\n var parentElm = nodeOps.parentNode(oldElm);\n // create new node\n createElm(vnode, insertedVnodeQueue, \n // extremely rare edge case: do not insert if old element is in a\n // leaving transition. Only happens when combining transition +\n // keep-alive + HOCs. (#4590)\n oldElm._leaveCb ? null : parentElm, nodeOps.nextSibling(oldElm));\n // update parent placeholder node element, recursively\n if (isDef(vnode.parent)) {\n var ancestor = vnode.parent;\n var patchable = isPatchable(vnode);\n while (ancestor) {\n for (var i_8 = 0; i_8 < cbs.destroy.length; ++i_8) {\n cbs.destroy[i_8](ancestor);\n }\n ancestor.elm = vnode.elm;\n if (patchable) {\n for (var i_9 = 0; i_9 < cbs.create.length; ++i_9) {\n cbs.create[i_9](emptyNode, ancestor);\n }\n // #6513\n // invoke insert hooks that may have been merged by create hooks.\n // e.g. for directives that uses the \"inserted\" hook.\n var insert_1 = ancestor.data.hook.insert;\n if (insert_1.merged) {\n // start at index 1 to avoid re-invoking component mounted hook\n for (var i_10 = 1; i_10 < insert_1.fns.length; i_10++) {\n insert_1.fns[i_10]();\n }\n }\n }\n else {\n registerRef(ancestor);\n }\n ancestor = ancestor.parent;\n }\n }\n // destroy old node\n if (isDef(parentElm)) {\n removeVnodes([oldVnode], 0, 0);\n }\n else if (isDef(oldVnode.tag)) {\n invokeDestroyHook(oldVnode);\n }\n }\n }\n invokeInsertHook(vnode, insertedVnodeQueue, isInitialPatch);\n return vnode.elm;\n };\n }\n\n var directives$1 = {\n create: updateDirectives,\n update: updateDirectives,\n destroy: function unbindDirectives(vnode) {\n // @ts-expect-error emptyNode is not VNodeWithData\n updateDirectives(vnode, emptyNode);\n }\n };\n function updateDirectives(oldVnode, vnode) {\n if (oldVnode.data.directives || vnode.data.directives) {\n _update(oldVnode, vnode);\n }\n }\n function _update(oldVnode, vnode) {\n var isCreate = oldVnode === emptyNode;\n var isDestroy = vnode === emptyNode;\n var oldDirs = normalizeDirectives(oldVnode.data.directives, oldVnode.context);\n var newDirs = normalizeDirectives(vnode.data.directives, vnode.context);\n var dirsWithInsert = [];\n var dirsWithPostpatch = [];\n var key, oldDir, dir;\n for (key in newDirs) {\n oldDir = oldDirs[key];\n dir = newDirs[key];\n if (!oldDir) {\n // new directive, bind\n callHook(dir, 'bind', vnode, oldVnode);\n if (dir.def && dir.def.inserted) {\n dirsWithInsert.push(dir);\n }\n }\n else {\n // existing directive, update\n dir.oldValue = oldDir.value;\n dir.oldArg = oldDir.arg;\n callHook(dir, 'update', vnode, oldVnode);\n if (dir.def && dir.def.componentUpdated) {\n dirsWithPostpatch.push(dir);\n }\n }\n }\n if (dirsWithInsert.length) {\n var callInsert = function () {\n for (var i = 0; i < dirsWithInsert.length; i++) {\n callHook(dirsWithInsert[i], 'inserted', vnode, oldVnode);\n }\n };\n if (isCreate) {\n mergeVNodeHook(vnode, 'insert', callInsert);\n }\n else {\n callInsert();\n }\n }\n if (dirsWithPostpatch.length) {\n mergeVNodeHook(vnode, 'postpatch', function () {\n for (var i = 0; i < dirsWithPostpatch.length; i++) {\n callHook(dirsWithPostpatch[i], 'componentUpdated', vnode, oldVnode);\n }\n });\n }\n if (!isCreate) {\n for (key in oldDirs) {\n if (!newDirs[key]) {\n // no longer present, unbind\n callHook(oldDirs[key], 'unbind', oldVnode, oldVnode, isDestroy);\n }\n }\n }\n }\n var emptyModifiers = Object.create(null);\n function normalizeDirectives(dirs, vm) {\n var res = Object.create(null);\n if (!dirs) {\n // $flow-disable-line\n return res;\n }\n var i, dir;\n for (i = 0; i < dirs.length; i++) {\n dir = dirs[i];\n if (!dir.modifiers) {\n // $flow-disable-line\n dir.modifiers = emptyModifiers;\n }\n res[getRawDirName(dir)] = dir;\n if (vm._setupState && vm._setupState.__sfc) {\n var setupDef = dir.def || resolveAsset(vm, '_setupState', 'v-' + dir.name);\n if (typeof setupDef === 'function') {\n dir.def = {\n bind: setupDef,\n update: setupDef,\n };\n }\n else {\n dir.def = setupDef;\n }\n }\n dir.def = dir.def || resolveAsset(vm.$options, 'directives', dir.name, true);\n }\n // $flow-disable-line\n return res;\n }\n function getRawDirName(dir) {\n return (dir.rawName || \"\".concat(dir.name, \".\").concat(Object.keys(dir.modifiers || {}).join('.')));\n }\n function callHook(dir, hook, vnode, oldVnode, isDestroy) {\n var fn = dir.def && dir.def[hook];\n if (fn) {\n try {\n fn(vnode.elm, dir, vnode, oldVnode, isDestroy);\n }\n catch (e) {\n handleError(e, vnode.context, \"directive \".concat(dir.name, \" \").concat(hook, \" hook\"));\n }\n }\n }\n\n var baseModules = [ref, directives$1];\n\n function updateAttrs(oldVnode, vnode) {\n var opts = vnode.componentOptions;\n if (isDef(opts) && opts.Ctor.options.inheritAttrs === false) {\n return;\n }\n if (isUndef(oldVnode.data.attrs) && isUndef(vnode.data.attrs)) {\n return;\n }\n var key, cur, old;\n var elm = vnode.elm;\n var oldAttrs = oldVnode.data.attrs || {};\n var attrs = vnode.data.attrs || {};\n // clone observed objects, as the user probably wants to mutate it\n if (isDef(attrs.__ob__) || isTrue(attrs._v_attr_proxy)) {\n attrs = vnode.data.attrs = extend({}, attrs);\n }\n for (key in attrs) {\n cur = attrs[key];\n old = oldAttrs[key];\n if (old !== cur) {\n setAttr(elm, key, cur, vnode.data.pre);\n }\n }\n // #4391: in IE9, setting type can reset value for input[type=radio]\n // #6666: IE/Edge forces progress value down to 1 before setting a max\n /* istanbul ignore if */\n if ((isIE || isEdge) && attrs.value !== oldAttrs.value) {\n setAttr(elm, 'value', attrs.value);\n }\n for (key in oldAttrs) {\n if (isUndef(attrs[key])) {\n if (isXlink(key)) {\n elm.removeAttributeNS(xlinkNS, getXlinkProp(key));\n }\n else if (!isEnumeratedAttr(key)) {\n elm.removeAttribute(key);\n }\n }\n }\n }\n function setAttr(el, key, value, isInPre) {\n if (isInPre || el.tagName.indexOf('-') > -1) {\n baseSetAttr(el, key, value);\n }\n else if (isBooleanAttr(key)) {\n // set attribute for blank value\n // e.g. <option disabled>Select one</option>\n if (isFalsyAttrValue(value)) {\n el.removeAttribute(key);\n }\n else {\n // technically allowfullscreen is a boolean attribute for <iframe>,\n // but Flash expects a value of \"true\" when used on <embed> tag\n value = key === 'allowfullscreen' && el.tagName === 'EMBED' ? 'true' : key;\n el.setAttribute(key, value);\n }\n }\n else if (isEnumeratedAttr(key)) {\n el.setAttribute(key, convertEnumeratedValue(key, value));\n }\n else if (isXlink(key)) {\n if (isFalsyAttrValue(value)) {\n el.removeAttributeNS(xlinkNS, getXlinkProp(key));\n }\n else {\n el.setAttributeNS(xlinkNS, key, value);\n }\n }\n else {\n baseSetAttr(el, key, value);\n }\n }\n function baseSetAttr(el, key, value) {\n if (isFalsyAttrValue(value)) {\n el.removeAttribute(key);\n }\n else {\n // #7138: IE10 & 11 fires input event when setting placeholder on\n // <textarea>... block the first input event and remove the blocker\n // immediately.\n /* istanbul ignore if */\n if (isIE &&\n !isIE9 &&\n el.tagName === 'TEXTAREA' &&\n key === 'placeholder' &&\n value !== '' &&\n !el.__ieph) {\n var blocker_1 = function (e) {\n e.stopImmediatePropagation();\n el.removeEventListener('input', blocker_1);\n };\n el.addEventListener('input', blocker_1);\n // $flow-disable-line\n el.__ieph = true; /* IE placeholder patched */\n }\n el.setAttribute(key, value);\n }\n }\n var attrs = {\n create: updateAttrs,\n update: updateAttrs\n };\n\n function updateClass(oldVnode, vnode) {\n var el = vnode.elm;\n var data = vnode.data;\n var oldData = oldVnode.data;\n if (isUndef(data.staticClass) &&\n isUndef(data.class) &&\n (isUndef(oldData) ||\n (isUndef(oldData.staticClass) && isUndef(oldData.class)))) {\n return;\n }\n var cls = genClassForVnode(vnode);\n // handle transition classes\n var transitionClass = el._transitionClasses;\n if (isDef(transitionClass)) {\n cls = concat(cls, stringifyClass(transitionClass));\n }\n // set the class\n if (cls !== el._prevClass) {\n el.setAttribute('class', cls);\n el._prevClass = cls;\n }\n }\n var klass$1 = {\n create: updateClass,\n update: updateClass\n };\n\n var validDivisionCharRE = /[\\w).+\\-_$\\]]/;\n function parseFilters(exp) {\n var inSingle = false;\n var inDouble = false;\n var inTemplateString = false;\n var inRegex = false;\n var curly = 0;\n var square = 0;\n var paren = 0;\n var lastFilterIndex = 0;\n var c, prev, i, expression, filters;\n for (i = 0; i < exp.length; i++) {\n prev = c;\n c = exp.charCodeAt(i);\n if (inSingle) {\n if (c === 0x27 && prev !== 0x5c)\n inSingle = false;\n }\n else if (inDouble) {\n if (c === 0x22 && prev !== 0x5c)\n inDouble = false;\n }\n else if (inTemplateString) {\n if (c === 0x60 && prev !== 0x5c)\n inTemplateString = false;\n }\n else if (inRegex) {\n if (c === 0x2f && prev !== 0x5c)\n inRegex = false;\n }\n else if (c === 0x7c && // pipe\n exp.charCodeAt(i + 1) !== 0x7c &&\n exp.charCodeAt(i - 1) !== 0x7c &&\n !curly &&\n !square &&\n !paren) {\n if (expression === undefined) {\n // first filter, end of expression\n lastFilterIndex = i + 1;\n expression = exp.slice(0, i).trim();\n }\n else {\n pushFilter();\n }\n }\n else {\n switch (c) {\n case 0x22:\n inDouble = true;\n break; // \"\n case 0x27:\n inSingle = true;\n break; // '\n case 0x60:\n inTemplateString = true;\n break; // `\n case 0x28:\n paren++;\n break; // (\n case 0x29:\n paren--;\n break; // )\n case 0x5b:\n square++;\n break; // [\n case 0x5d:\n square--;\n break; // ]\n case 0x7b:\n curly++;\n break; // {\n case 0x7d:\n curly--;\n break; // }\n }\n if (c === 0x2f) {\n // /\n var j = i - 1;\n var p \n // find first non-whitespace prev char\n = void 0;\n // find first non-whitespace prev char\n for (; j >= 0; j--) {\n p = exp.charAt(j);\n if (p !== ' ')\n break;\n }\n if (!p || !validDivisionCharRE.test(p)) {\n inRegex = true;\n }\n }\n }\n }\n if (expression === undefined) {\n expression = exp.slice(0, i).trim();\n }\n else if (lastFilterIndex !== 0) {\n pushFilter();\n }\n function pushFilter() {\n (filters || (filters = [])).push(exp.slice(lastFilterIndex, i).trim());\n lastFilterIndex = i + 1;\n }\n if (filters) {\n for (i = 0; i < filters.length; i++) {\n expression = wrapFilter(expression, filters[i]);\n }\n }\n return expression;\n }\n function wrapFilter(exp, filter) {\n var i = filter.indexOf('(');\n if (i < 0) {\n // _f: resolveFilter\n return \"_f(\\\"\".concat(filter, \"\\\")(\").concat(exp, \")\");\n }\n else {\n var name_1 = filter.slice(0, i);\n var args = filter.slice(i + 1);\n return \"_f(\\\"\".concat(name_1, \"\\\")(\").concat(exp).concat(args !== ')' ? ',' + args : args);\n }\n }\n\n /* eslint-disable no-unused-vars */\n function baseWarn(msg, range) {\n console.error(\"[Vue compiler]: \".concat(msg));\n }\n /* eslint-enable no-unused-vars */\n function pluckModuleFunction(modules, key) {\n return modules ? modules.map(function (m) { return m[key]; }).filter(function (_) { return _; }) : [];\n }\n function addProp(el, name, value, range, dynamic) {\n (el.props || (el.props = [])).push(rangeSetItem({ name: name, value: value, dynamic: dynamic }, range));\n el.plain = false;\n }\n function addAttr(el, name, value, range, dynamic) {\n var attrs = dynamic\n ? el.dynamicAttrs || (el.dynamicAttrs = [])\n : el.attrs || (el.attrs = []);\n attrs.push(rangeSetItem({ name: name, value: value, dynamic: dynamic }, range));\n el.plain = false;\n }\n // add a raw attr (use this in preTransforms)\n function addRawAttr(el, name, value, range) {\n el.attrsMap[name] = value;\n el.attrsList.push(rangeSetItem({ name: name, value: value }, range));\n }\n function addDirective(el, name, rawName, value, arg, isDynamicArg, modifiers, range) {\n (el.directives || (el.directives = [])).push(rangeSetItem({\n name: name,\n rawName: rawName,\n value: value,\n arg: arg,\n isDynamicArg: isDynamicArg,\n modifiers: modifiers\n }, range));\n el.plain = false;\n }\n function prependModifierMarker(symbol, name, dynamic) {\n return dynamic ? \"_p(\".concat(name, \",\\\"\").concat(symbol, \"\\\")\") : symbol + name; // mark the event as captured\n }\n function addHandler(el, name, value, modifiers, important, warn, range, dynamic) {\n modifiers = modifiers || emptyObject;\n // warn prevent and passive modifier\n /* istanbul ignore if */\n if (warn && modifiers.prevent && modifiers.passive) {\n warn(\"passive and prevent can't be used together. \" +\n \"Passive handler can't prevent default event.\", range);\n }\n // normalize click.right and click.middle since they don't actually fire\n // this is technically browser-specific, but at least for now browsers are\n // the only target envs that have right/middle clicks.\n if (modifiers.right) {\n if (dynamic) {\n name = \"(\".concat(name, \")==='click'?'contextmenu':(\").concat(name, \")\");\n }\n else if (name === 'click') {\n name = 'contextmenu';\n delete modifiers.right;\n }\n }\n else if (modifiers.middle) {\n if (dynamic) {\n name = \"(\".concat(name, \")==='click'?'mouseup':(\").concat(name, \")\");\n }\n else if (name === 'click') {\n name = 'mouseup';\n }\n }\n // check capture modifier\n if (modifiers.capture) {\n delete modifiers.capture;\n name = prependModifierMarker('!', name, dynamic);\n }\n if (modifiers.once) {\n delete modifiers.once;\n name = prependModifierMarker('~', name, dynamic);\n }\n /* istanbul ignore if */\n if (modifiers.passive) {\n delete modifiers.passive;\n name = prependModifierMarker('&', name, dynamic);\n }\n var events;\n if (modifiers.native) {\n delete modifiers.native;\n events = el.nativeEvents || (el.nativeEvents = {});\n }\n else {\n events = el.events || (el.events = {});\n }\n var newHandler = rangeSetItem({ value: value.trim(), dynamic: dynamic }, range);\n if (modifiers !== emptyObject) {\n newHandler.modifiers = modifiers;\n }\n var handlers = events[name];\n /* istanbul ignore if */\n if (Array.isArray(handlers)) {\n important ? handlers.unshift(newHandler) : handlers.push(newHandler);\n }\n else if (handlers) {\n events[name] = important ? [newHandler, handlers] : [handlers, newHandler];\n }\n else {\n events[name] = newHandler;\n }\n el.plain = false;\n }\n function getRawBindingAttr(el, name) {\n return (el.rawAttrsMap[':' + name] ||\n el.rawAttrsMap['v-bind:' + name] ||\n el.rawAttrsMap[name]);\n }\n function getBindingAttr(el, name, getStatic) {\n var dynamicValue = getAndRemoveAttr(el, ':' + name) || getAndRemoveAttr(el, 'v-bind:' + name);\n if (dynamicValue != null) {\n return parseFilters(dynamicValue);\n }\n else if (getStatic !== false) {\n var staticValue = getAndRemoveAttr(el, name);\n if (staticValue != null) {\n return JSON.stringify(staticValue);\n }\n }\n }\n // note: this only removes the attr from the Array (attrsList) so that it\n // doesn't get processed by processAttrs.\n // By default it does NOT remove it from the map (attrsMap) because the map is\n // needed during codegen.\n function getAndRemoveAttr(el, name, removeFromMap) {\n var val;\n if ((val = el.attrsMap[name]) != null) {\n var list = el.attrsList;\n for (var i = 0, l = list.length; i < l; i++) {\n if (list[i].name === name) {\n list.splice(i, 1);\n break;\n }\n }\n }\n if (removeFromMap) {\n delete el.attrsMap[name];\n }\n return val;\n }\n function getAndRemoveAttrByRegex(el, name) {\n var list = el.attrsList;\n for (var i = 0, l = list.length; i < l; i++) {\n var attr = list[i];\n if (name.test(attr.name)) {\n list.splice(i, 1);\n return attr;\n }\n }\n }\n function rangeSetItem(item, range) {\n if (range) {\n if (range.start != null) {\n item.start = range.start;\n }\n if (range.end != null) {\n item.end = range.end;\n }\n }\n return item;\n }\n\n /**\n * Cross-platform code generation for component v-model\n */\n function genComponentModel(el, value, modifiers) {\n var _a = modifiers || {}, number = _a.number, trim = _a.trim;\n var baseValueExpression = '$$v';\n var valueExpression = baseValueExpression;\n if (trim) {\n valueExpression =\n \"(typeof \".concat(baseValueExpression, \" === 'string'\") +\n \"? \".concat(baseValueExpression, \".trim()\") +\n \": \".concat(baseValueExpression, \")\");\n }\n if (number) {\n valueExpression = \"_n(\".concat(valueExpression, \")\");\n }\n var assignment = genAssignmentCode(value, valueExpression);\n el.model = {\n value: \"(\".concat(value, \")\"),\n expression: JSON.stringify(value),\n callback: \"function (\".concat(baseValueExpression, \") {\").concat(assignment, \"}\")\n };\n }\n /**\n * Cross-platform codegen helper for generating v-model value assignment code.\n */\n function genAssignmentCode(value, assignment) {\n var res = parseModel(value);\n if (res.key === null) {\n return \"\".concat(value, \"=\").concat(assignment);\n }\n else {\n return \"$set(\".concat(res.exp, \", \").concat(res.key, \", \").concat(assignment, \")\");\n }\n }\n /**\n * Parse a v-model expression into a base path and a final key segment.\n * Handles both dot-path and possible square brackets.\n *\n * Possible cases:\n *\n * - test\n * - test[key]\n * - test[test1[key]]\n * - test[\"a\"][key]\n * - xxx.test[a[a].test1[key]]\n * - test.xxx.a[\"asa\"][test1[key]]\n *\n */\n var len, str, chr, index, expressionPos, expressionEndPos;\n function parseModel(val) {\n // Fix https://github.com/vuejs/vue/pull/7730\n // allow v-model=\"obj.val \" (trailing whitespace)\n val = val.trim();\n len = val.length;\n if (val.indexOf('[') < 0 || val.lastIndexOf(']') < len - 1) {\n index = val.lastIndexOf('.');\n if (index > -1) {\n return {\n exp: val.slice(0, index),\n key: '\"' + val.slice(index + 1) + '\"'\n };\n }\n else {\n return {\n exp: val,\n key: null\n };\n }\n }\n str = val;\n index = expressionPos = expressionEndPos = 0;\n while (!eof()) {\n chr = next();\n /* istanbul ignore if */\n if (isStringStart(chr)) {\n parseString(chr);\n }\n else if (chr === 0x5b) {\n parseBracket(chr);\n }\n }\n return {\n exp: val.slice(0, expressionPos),\n key: val.slice(expressionPos + 1, expressionEndPos)\n };\n }\n function next() {\n return str.charCodeAt(++index);\n }\n function eof() {\n return index >= len;\n }\n function isStringStart(chr) {\n return chr === 0x22 || chr === 0x27;\n }\n function parseBracket(chr) {\n var inBracket = 1;\n expressionPos = index;\n while (!eof()) {\n chr = next();\n if (isStringStart(chr)) {\n parseString(chr);\n continue;\n }\n if (chr === 0x5b)\n inBracket++;\n if (chr === 0x5d)\n inBracket--;\n if (inBracket === 0) {\n expressionEndPos = index;\n break;\n }\n }\n }\n function parseString(chr) {\n var stringQuote = chr;\n while (!eof()) {\n chr = next();\n if (chr === stringQuote) {\n break;\n }\n }\n }\n\n var warn$1;\n // in some cases, the event used has to be determined at runtime\n // so we used some reserved tokens during compile.\n var RANGE_TOKEN = '__r';\n var CHECKBOX_RADIO_TOKEN = '__c';\n function model$1(el, dir, _warn) {\n warn$1 = _warn;\n var value = dir.value;\n var modifiers = dir.modifiers;\n var tag = el.tag;\n var type = el.attrsMap.type;\n {\n // inputs with type=\"file\" are read only and setting the input's\n // value will throw an error.\n if (tag === 'input' && type === 'file') {\n warn$1(\"<\".concat(el.tag, \" v-model=\\\"\").concat(value, \"\\\" type=\\\"file\\\">:\\n\") +\n \"File inputs are read only. Use a v-on:change listener instead.\", el.rawAttrsMap['v-model']);\n }\n }\n if (el.component) {\n genComponentModel(el, value, modifiers);\n // component v-model doesn't need extra runtime\n return false;\n }\n else if (tag === 'select') {\n genSelect(el, value, modifiers);\n }\n else if (tag === 'input' && type === 'checkbox') {\n genCheckboxModel(el, value, modifiers);\n }\n else if (tag === 'input' && type === 'radio') {\n genRadioModel(el, value, modifiers);\n }\n else if (tag === 'input' || tag === 'textarea') {\n genDefaultModel(el, value, modifiers);\n }\n else if (!config.isReservedTag(tag)) {\n genComponentModel(el, value, modifiers);\n // component v-model doesn't need extra runtime\n return false;\n }\n else {\n warn$1(\"<\".concat(el.tag, \" v-model=\\\"\").concat(value, \"\\\">: \") +\n \"v-model is not supported on this element type. \" +\n \"If you are working with contenteditable, it's recommended to \" +\n 'wrap a library dedicated for that purpose inside a custom component.', el.rawAttrsMap['v-model']);\n }\n // ensure runtime directive metadata\n return true;\n }\n function genCheckboxModel(el, value, modifiers) {\n var number = modifiers && modifiers.number;\n var valueBinding = getBindingAttr(el, 'value') || 'null';\n var trueValueBinding = getBindingAttr(el, 'true-value') || 'true';\n var falseValueBinding = getBindingAttr(el, 'false-value') || 'false';\n addProp(el, 'checked', \"Array.isArray(\".concat(value, \")\") +\n \"?_i(\".concat(value, \",\").concat(valueBinding, \")>-1\") +\n (trueValueBinding === 'true'\n ? \":(\".concat(value, \")\")\n : \":_q(\".concat(value, \",\").concat(trueValueBinding, \")\")));\n addHandler(el, 'change', \"var $$a=\".concat(value, \",\") +\n '$$el=$event.target,' +\n \"$$c=$$el.checked?(\".concat(trueValueBinding, \"):(\").concat(falseValueBinding, \");\") +\n 'if(Array.isArray($$a)){' +\n \"var $$v=\".concat(number ? '_n(' + valueBinding + ')' : valueBinding, \",\") +\n '$$i=_i($$a,$$v);' +\n \"if($$el.checked){$$i<0&&(\".concat(genAssignmentCode(value, '$$a.concat([$$v])'), \")}\") +\n \"else{$$i>-1&&(\".concat(genAssignmentCode(value, '$$a.slice(0,$$i).concat($$a.slice($$i+1))'), \")}\") +\n \"}else{\".concat(genAssignmentCode(value, '$$c'), \"}\"), null, true);\n }\n function genRadioModel(el, value, modifiers) {\n var number = modifiers && modifiers.number;\n var valueBinding = getBindingAttr(el, 'value') || 'null';\n valueBinding = number ? \"_n(\".concat(valueBinding, \")\") : valueBinding;\n addProp(el, 'checked', \"_q(\".concat(value, \",\").concat(valueBinding, \")\"));\n addHandler(el, 'change', genAssignmentCode(value, valueBinding), null, true);\n }\n function genSelect(el, value, modifiers) {\n var number = modifiers && modifiers.number;\n var selectedVal = \"Array.prototype.filter\" +\n \".call($event.target.options,function(o){return o.selected})\" +\n \".map(function(o){var val = \\\"_value\\\" in o ? o._value : o.value;\" +\n \"return \".concat(number ? '_n(val)' : 'val', \"})\");\n var assignment = '$event.target.multiple ? $$selectedVal : $$selectedVal[0]';\n var code = \"var $$selectedVal = \".concat(selectedVal, \";\");\n code = \"\".concat(code, \" \").concat(genAssignmentCode(value, assignment));\n addHandler(el, 'change', code, null, true);\n }\n function genDefaultModel(el, value, modifiers) {\n var type = el.attrsMap.type;\n // warn if v-bind:value conflicts with v-model\n // except for inputs with v-bind:type\n {\n var value_1 = el.attrsMap['v-bind:value'] || el.attrsMap[':value'];\n var typeBinding = el.attrsMap['v-bind:type'] || el.attrsMap[':type'];\n if (value_1 && !typeBinding) {\n var binding = el.attrsMap['v-bind:value'] ? 'v-bind:value' : ':value';\n warn$1(\"\".concat(binding, \"=\\\"\").concat(value_1, \"\\\" conflicts with v-model on the same element \") +\n 'because the latter already expands to a value binding internally', el.rawAttrsMap[binding]);\n }\n }\n var _a = modifiers || {}, lazy = _a.lazy, number = _a.number, trim = _a.trim;\n var needCompositionGuard = !lazy && type !== 'range';\n var event = lazy ? 'change' : type === 'range' ? RANGE_TOKEN : 'input';\n var valueExpression = '$event.target.value';\n if (trim) {\n valueExpression = \"$event.target.value.trim()\";\n }\n if (number) {\n valueExpression = \"_n(\".concat(valueExpression, \")\");\n }\n var code = genAssignmentCode(value, valueExpression);\n if (needCompositionGuard) {\n code = \"if($event.target.composing)return;\".concat(code);\n }\n addProp(el, 'value', \"(\".concat(value, \")\"));\n addHandler(el, event, code, null, true);\n if (trim || number) {\n addHandler(el, 'blur', '$forceUpdate()');\n }\n }\n\n // normalize v-model event tokens that can only be determined at runtime.\n // it's important to place the event as the first in the array because\n // the whole point is ensuring the v-model callback gets called before\n // user-attached handlers.\n function normalizeEvents(on) {\n /* istanbul ignore if */\n if (isDef(on[RANGE_TOKEN])) {\n // IE input[type=range] only supports `change` event\n var event_1 = isIE ? 'change' : 'input';\n on[event_1] = [].concat(on[RANGE_TOKEN], on[event_1] || []);\n delete on[RANGE_TOKEN];\n }\n // This was originally intended to fix #4521 but no longer necessary\n // after 2.5. Keeping it for backwards compat with generated code from < 2.4\n /* istanbul ignore if */\n if (isDef(on[CHECKBOX_RADIO_TOKEN])) {\n on.change = [].concat(on[CHECKBOX_RADIO_TOKEN], on.change || []);\n delete on[CHECKBOX_RADIO_TOKEN];\n }\n }\n var target;\n function createOnceHandler(event, handler, capture) {\n var _target = target; // save current target element in closure\n return function onceHandler() {\n var res = handler.apply(null, arguments);\n if (res !== null) {\n remove(event, onceHandler, capture, _target);\n }\n };\n }\n // #9446: Firefox <= 53 (in particular, ESR 52) has incorrect Event.timeStamp\n // implementation and does not fire microtasks in between event propagation, so\n // safe to exclude.\n var useMicrotaskFix = isUsingMicroTask && !(isFF && Number(isFF[1]) <= 53);\n function add(name, handler, capture, passive) {\n // async edge case #6566: inner click event triggers patch, event handler\n // attached to outer element during patch, and triggered again. This\n // happens because browsers fire microtask ticks between event propagation.\n // the solution is simple: we save the timestamp when a handler is attached,\n // and the handler would only fire if the event passed to it was fired\n // AFTER it was attached.\n if (useMicrotaskFix) {\n var attachedTimestamp_1 = currentFlushTimestamp;\n var original_1 = handler;\n //@ts-expect-error\n handler = original_1._wrapper = function (e) {\n if (\n // no bubbling, should always fire.\n // this is just a safety net in case event.timeStamp is unreliable in\n // certain weird environments...\n e.target === e.currentTarget ||\n // event is fired after handler attachment\n e.timeStamp >= attachedTimestamp_1 ||\n // bail for environments that have buggy event.timeStamp implementations\n // #9462 iOS 9 bug: event.timeStamp is 0 after history.pushState\n // #9681 QtWebEngine event.timeStamp is negative value\n e.timeStamp <= 0 ||\n // #9448 bail if event is fired in another document in a multi-page\n // electron/nw.js app, since event.timeStamp will be using a different\n // starting reference\n e.target.ownerDocument !== document) {\n return original_1.apply(this, arguments);\n }\n };\n }\n target.addEventListener(name, handler, supportsPassive ? { capture: capture, passive: passive } : capture);\n }\n function remove(name, handler, capture, _target) {\n (_target || target).removeEventListener(name, \n //@ts-expect-error\n handler._wrapper || handler, capture);\n }\n function updateDOMListeners(oldVnode, vnode) {\n if (isUndef(oldVnode.data.on) && isUndef(vnode.data.on)) {\n return;\n }\n var on = vnode.data.on || {};\n var oldOn = oldVnode.data.on || {};\n // vnode is empty when removing all listeners,\n // and use old vnode dom element\n target = vnode.elm || oldVnode.elm;\n normalizeEvents(on);\n updateListeners(on, oldOn, add, remove, createOnceHandler, vnode.context);\n target = undefined;\n }\n var events = {\n create: updateDOMListeners,\n update: updateDOMListeners,\n // @ts-expect-error emptyNode has actually data\n destroy: function (vnode) { return updateDOMListeners(vnode, emptyNode); }\n };\n\n var svgContainer;\n function updateDOMProps(oldVnode, vnode) {\n if (isUndef(oldVnode.data.domProps) && isUndef(vnode.data.domProps)) {\n return;\n }\n var key, cur;\n var elm = vnode.elm;\n var oldProps = oldVnode.data.domProps || {};\n var props = vnode.data.domProps || {};\n // clone observed objects, as the user probably wants to mutate it\n if (isDef(props.__ob__) || isTrue(props._v_attr_proxy)) {\n props = vnode.data.domProps = extend({}, props);\n }\n for (key in oldProps) {\n if (!(key in props)) {\n elm[key] = '';\n }\n }\n for (key in props) {\n cur = props[key];\n // ignore children if the node has textContent or innerHTML,\n // as these will throw away existing DOM nodes and cause removal errors\n // on subsequent patches (#3360)\n if (key === 'textContent' || key === 'innerHTML') {\n if (vnode.children)\n vnode.children.length = 0;\n if (cur === oldProps[key])\n continue;\n // #6601 work around Chrome version <= 55 bug where single textNode\n // replaced by innerHTML/textContent retains its parentNode property\n if (elm.childNodes.length === 1) {\n elm.removeChild(elm.childNodes[0]);\n }\n }\n if (key === 'value' && elm.tagName !== 'PROGRESS') {\n // store value as _value as well since\n // non-string values will be stringified\n elm._value = cur;\n // avoid resetting cursor position when value is the same\n var strCur = isUndef(cur) ? '' : String(cur);\n if (shouldUpdateValue(elm, strCur)) {\n elm.value = strCur;\n }\n }\n else if (key === 'innerHTML' &&\n isSVG(elm.tagName) &&\n isUndef(elm.innerHTML)) {\n // IE doesn't support innerHTML for SVG elements\n svgContainer = svgContainer || document.createElement('div');\n svgContainer.innerHTML = \"<svg>\".concat(cur, \"</svg>\");\n var svg = svgContainer.firstChild;\n while (elm.firstChild) {\n elm.removeChild(elm.firstChild);\n }\n while (svg.firstChild) {\n elm.appendChild(svg.firstChild);\n }\n }\n else if (\n // skip the update if old and new VDOM state is the same.\n // `value` is handled separately because the DOM value may be temporarily\n // out of sync with VDOM state due to focus, composition and modifiers.\n // This #4521 by skipping the unnecessary `checked` update.\n cur !== oldProps[key]) {\n // some property updates can throw\n // e.g. `value` on <progress> w/ non-finite value\n try {\n elm[key] = cur;\n }\n catch (e) { }\n }\n }\n }\n function shouldUpdateValue(elm, checkVal) {\n return (\n //@ts-expect-error\n !elm.composing &&\n (elm.tagName === 'OPTION' ||\n isNotInFocusAndDirty(elm, checkVal) ||\n isDirtyWithModifiers(elm, checkVal)));\n }\n function isNotInFocusAndDirty(elm, checkVal) {\n // return true when textbox (.number and .trim) loses focus and its value is\n // not equal to the updated value\n var notInFocus = true;\n // #6157\n // work around IE bug when accessing document.activeElement in an iframe\n try {\n notInFocus = document.activeElement !== elm;\n }\n catch (e) { }\n return notInFocus && elm.value !== checkVal;\n }\n function isDirtyWithModifiers(elm, newVal) {\n var value = elm.value;\n var modifiers = elm._vModifiers; // injected by v-model runtime\n if (isDef(modifiers)) {\n if (modifiers.number) {\n return toNumber(value) !== toNumber(newVal);\n }\n if (modifiers.trim) {\n return value.trim() !== newVal.trim();\n }\n }\n return value !== newVal;\n }\n var domProps = {\n create: updateDOMProps,\n update: updateDOMProps\n };\n\n var parseStyleText = cached(function (cssText) {\n var res = {};\n var listDelimiter = /;(?![^(]*\\))/g;\n var propertyDelimiter = /:(.+)/;\n cssText.split(listDelimiter).forEach(function (item) {\n if (item) {\n var tmp = item.split(propertyDelimiter);\n tmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return res;\n });\n // merge static and dynamic style data on the same vnode\n function normalizeStyleData(data) {\n var style = normalizeStyleBinding(data.style);\n // static style is pre-processed into an object during compilation\n // and is always a fresh object, so it's safe to merge into it\n return data.staticStyle ? extend(data.staticStyle, style) : style;\n }\n // normalize possible array / string values into Object\n function normalizeStyleBinding(bindingStyle) {\n if (Array.isArray(bindingStyle)) {\n return toObject(bindingStyle);\n }\n if (typeof bindingStyle === 'string') {\n return parseStyleText(bindingStyle);\n }\n return bindingStyle;\n }\n /**\n * parent component style should be after child's\n * so that parent component's style could override it\n */\n function getStyle(vnode, checkChild) {\n var res = {};\n var styleData;\n if (checkChild) {\n var childNode = vnode;\n while (childNode.componentInstance) {\n childNode = childNode.componentInstance._vnode;\n if (childNode &&\n childNode.data &&\n (styleData = normalizeStyleData(childNode.data))) {\n extend(res, styleData);\n }\n }\n }\n if ((styleData = normalizeStyleData(vnode.data))) {\n extend(res, styleData);\n }\n var parentNode = vnode;\n // @ts-expect-error parentNode.parent not VNodeWithData\n while ((parentNode = parentNode.parent)) {\n if (parentNode.data && (styleData = normalizeStyleData(parentNode.data))) {\n extend(res, styleData);\n }\n }\n return res;\n }\n\n var cssVarRE = /^--/;\n var importantRE = /\\s*!important$/;\n var setProp = function (el, name, val) {\n /* istanbul ignore if */\n if (cssVarRE.test(name)) {\n el.style.setProperty(name, val);\n }\n else if (importantRE.test(val)) {\n el.style.setProperty(hyphenate(name), val.replace(importantRE, ''), 'important');\n }\n else {\n var normalizedName = normalize(name);\n if (Array.isArray(val)) {\n // Support values array created by autoprefixer, e.g.\n // {display: [\"-webkit-box\", \"-ms-flexbox\", \"flex\"]}\n // Set them one by one, and the browser will only set those it can recognize\n for (var i = 0, len = val.length; i < len; i++) {\n el.style[normalizedName] = val[i];\n }\n }\n else {\n el.style[normalizedName] = val;\n }\n }\n };\n var vendorNames = ['Webkit', 'Moz', 'ms'];\n var emptyStyle;\n var normalize = cached(function (prop) {\n emptyStyle = emptyStyle || document.createElement('div').style;\n prop = camelize(prop);\n if (prop !== 'filter' && prop in emptyStyle) {\n return prop;\n }\n var capName = prop.charAt(0).toUpperCase() + prop.slice(1);\n for (var i = 0; i < vendorNames.length; i++) {\n var name_1 = vendorNames[i] + capName;\n if (name_1 in emptyStyle) {\n return name_1;\n }\n }\n });\n function updateStyle(oldVnode, vnode) {\n var data = vnode.data;\n var oldData = oldVnode.data;\n if (isUndef(data.staticStyle) &&\n isUndef(data.style) &&\n isUndef(oldData.staticStyle) &&\n isUndef(oldData.style)) {\n return;\n }\n var cur, name;\n var el = vnode.elm;\n var oldStaticStyle = oldData.staticStyle;\n var oldStyleBinding = oldData.normalizedStyle || oldData.style || {};\n // if static style exists, stylebinding already merged into it when doing normalizeStyleData\n var oldStyle = oldStaticStyle || oldStyleBinding;\n var style = normalizeStyleBinding(vnode.data.style) || {};\n // store normalized style under a different key for next diff\n // make sure to clone it if it's reactive, since the user likely wants\n // to mutate it.\n vnode.data.normalizedStyle = isDef(style.__ob__) ? extend({}, style) : style;\n var newStyle = getStyle(vnode, true);\n for (name in oldStyle) {\n if (isUndef(newStyle[name])) {\n setProp(el, name, '');\n }\n }\n for (name in newStyle) {\n cur = newStyle[name];\n if (cur !== oldStyle[name]) {\n // ie9 setting to null has no effect, must use empty string\n setProp(el, name, cur == null ? '' : cur);\n }\n }\n }\n var style$1 = {\n create: updateStyle,\n update: updateStyle\n };\n\n var whitespaceRE$1 = /\\s+/;\n /**\n * Add class with compatibility for SVG since classList is not supported on\n * SVG elements in IE\n */\n function addClass(el, cls) {\n /* istanbul ignore if */\n if (!cls || !(cls = cls.trim())) {\n return;\n }\n /* istanbul ignore else */\n if (el.classList) {\n if (cls.indexOf(' ') > -1) {\n cls.split(whitespaceRE$1).forEach(function (c) { return el.classList.add(c); });\n }\n else {\n el.classList.add(cls);\n }\n }\n else {\n var cur = \" \".concat(el.getAttribute('class') || '', \" \");\n if (cur.indexOf(' ' + cls + ' ') < 0) {\n el.setAttribute('class', (cur + cls).trim());\n }\n }\n }\n /**\n * Remove class with compatibility for SVG since classList is not supported on\n * SVG elements in IE\n */\n function removeClass(el, cls) {\n /* istanbul ignore if */\n if (!cls || !(cls = cls.trim())) {\n return;\n }\n /* istanbul ignore else */\n if (el.classList) {\n if (cls.indexOf(' ') > -1) {\n cls.split(whitespaceRE$1).forEach(function (c) { return el.classList.remove(c); });\n }\n else {\n el.classList.remove(cls);\n }\n if (!el.classList.length) {\n el.removeAttribute('class');\n }\n }\n else {\n var cur = \" \".concat(el.getAttribute('class') || '', \" \");\n var tar = ' ' + cls + ' ';\n while (cur.indexOf(tar) >= 0) {\n cur = cur.replace(tar, ' ');\n }\n cur = cur.trim();\n if (cur) {\n el.setAttribute('class', cur);\n }\n else {\n el.removeAttribute('class');\n }\n }\n }\n\n function resolveTransition(def) {\n if (!def) {\n return;\n }\n /* istanbul ignore else */\n if (typeof def === 'object') {\n var res = {};\n if (def.css !== false) {\n extend(res, autoCssTransition(def.name || 'v'));\n }\n extend(res, def);\n return res;\n }\n else if (typeof def === 'string') {\n return autoCssTransition(def);\n }\n }\n var autoCssTransition = cached(function (name) {\n return {\n enterClass: \"\".concat(name, \"-enter\"),\n enterToClass: \"\".concat(name, \"-enter-to\"),\n enterActiveClass: \"\".concat(name, \"-enter-active\"),\n leaveClass: \"\".concat(name, \"-leave\"),\n leaveToClass: \"\".concat(name, \"-leave-to\"),\n leaveActiveClass: \"\".concat(name, \"-leave-active\")\n };\n });\n var hasTransition = inBrowser && !isIE9;\n var TRANSITION = 'transition';\n var ANIMATION = 'animation';\n // Transition property/event sniffing\n var transitionProp = 'transition';\n var transitionEndEvent = 'transitionend';\n var animationProp = 'animation';\n var animationEndEvent = 'animationend';\n if (hasTransition) {\n /* istanbul ignore if */\n if (window.ontransitionend === undefined &&\n window.onwebkittransitionend !== undefined) {\n transitionProp = 'WebkitTransition';\n transitionEndEvent = 'webkitTransitionEnd';\n }\n if (window.onanimationend === undefined &&\n window.onwebkitanimationend !== undefined) {\n animationProp = 'WebkitAnimation';\n animationEndEvent = 'webkitAnimationEnd';\n }\n }\n // binding to window is necessary to make hot reload work in IE in strict mode\n var raf = inBrowser\n ? window.requestAnimationFrame\n ? window.requestAnimationFrame.bind(window)\n : setTimeout\n : /* istanbul ignore next */ function (/* istanbul ignore next */ fn) { return fn(); };\n function nextFrame(fn) {\n raf(function () {\n // @ts-expect-error\n raf(fn);\n });\n }\n function addTransitionClass(el, cls) {\n var transitionClasses = el._transitionClasses || (el._transitionClasses = []);\n if (transitionClasses.indexOf(cls) < 0) {\n transitionClasses.push(cls);\n addClass(el, cls);\n }\n }\n function removeTransitionClass(el, cls) {\n if (el._transitionClasses) {\n remove$2(el._transitionClasses, cls);\n }\n removeClass(el, cls);\n }\n function whenTransitionEnds(el, expectedType, cb) {\n var _a = getTransitionInfo(el, expectedType), type = _a.type, timeout = _a.timeout, propCount = _a.propCount;\n if (!type)\n return cb();\n var event = type === TRANSITION ? transitionEndEvent : animationEndEvent;\n var ended = 0;\n var end = function () {\n el.removeEventListener(event, onEnd);\n cb();\n };\n var onEnd = function (e) {\n if (e.target === el) {\n if (++ended >= propCount) {\n end();\n }\n }\n };\n setTimeout(function () {\n if (ended < propCount) {\n end();\n }\n }, timeout + 1);\n el.addEventListener(event, onEnd);\n }\n var transformRE = /\\b(transform|all)(,|$)/;\n function getTransitionInfo(el, expectedType) {\n var styles = window.getComputedStyle(el);\n // JSDOM may return undefined for transition properties\n var transitionDelays = (styles[transitionProp + 'Delay'] || '').split(', ');\n var transitionDurations = (styles[transitionProp + 'Duration'] || '').split(', ');\n var transitionTimeout = getTimeout(transitionDelays, transitionDurations);\n var animationDelays = (styles[animationProp + 'Delay'] || '').split(', ');\n var animationDurations = (styles[animationProp + 'Duration'] || '').split(', ');\n var animationTimeout = getTimeout(animationDelays, animationDurations);\n var type;\n var timeout = 0;\n var propCount = 0;\n /* istanbul ignore if */\n if (expectedType === TRANSITION) {\n if (transitionTimeout > 0) {\n type = TRANSITION;\n timeout = transitionTimeout;\n propCount = transitionDurations.length;\n }\n }\n else if (expectedType === ANIMATION) {\n if (animationTimeout > 0) {\n type = ANIMATION;\n timeout = animationTimeout;\n propCount = animationDurations.length;\n }\n }\n else {\n timeout = Math.max(transitionTimeout, animationTimeout);\n type =\n timeout > 0\n ? transitionTimeout > animationTimeout\n ? TRANSITION\n : ANIMATION\n : null;\n propCount = type\n ? type === TRANSITION\n ? transitionDurations.length\n : animationDurations.length\n : 0;\n }\n var hasTransform = type === TRANSITION && transformRE.test(styles[transitionProp + 'Property']);\n return {\n type: type,\n timeout: timeout,\n propCount: propCount,\n hasTransform: hasTransform\n };\n }\n function getTimeout(delays, durations) {\n /* istanbul ignore next */\n while (delays.length < durations.length) {\n delays = delays.concat(delays);\n }\n return Math.max.apply(null, durations.map(function (d, i) {\n return toMs(d) + toMs(delays[i]);\n }));\n }\n // Old versions of Chromium (below 61.0.3163.100) formats floating pointer numbers\n // in a locale-dependent way, using a comma instead of a dot.\n // If comma is not replaced with a dot, the input will be rounded down (i.e. acting\n // as a floor function) causing unexpected behaviors\n function toMs(s) {\n return Number(s.slice(0, -1).replace(',', '.')) * 1000;\n }\n\n function enter(vnode, toggleDisplay) {\n var el = vnode.elm;\n // call leave callback now\n if (isDef(el._leaveCb)) {\n el._leaveCb.cancelled = true;\n el._leaveCb();\n }\n var data = resolveTransition(vnode.data.transition);\n if (isUndef(data)) {\n return;\n }\n /* istanbul ignore if */\n if (isDef(el._enterCb) || el.nodeType !== 1) {\n return;\n }\n var css = data.css, type = data.type, enterClass = data.enterClass, enterToClass = data.enterToClass, enterActiveClass = data.enterActiveClass, appearClass = data.appearClass, appearToClass = data.appearToClass, appearActiveClass = data.appearActiveClass, beforeEnter = data.beforeEnter, enter = data.enter, afterEnter = data.afterEnter, enterCancelled = data.enterCancelled, beforeAppear = data.beforeAppear, appear = data.appear, afterAppear = data.afterAppear, appearCancelled = data.appearCancelled, duration = data.duration;\n // activeInstance will always be the <transition> component managing this\n // transition. One edge case to check is when the <transition> is placed\n // as the root node of a child component. In that case we need to check\n // <transition>'s parent for appear check.\n var context = activeInstance;\n var transitionNode = activeInstance.$vnode;\n while (transitionNode && transitionNode.parent) {\n context = transitionNode.context;\n transitionNode = transitionNode.parent;\n }\n var isAppear = !context._isMounted || !vnode.isRootInsert;\n if (isAppear && !appear && appear !== '') {\n return;\n }\n var startClass = isAppear && appearClass ? appearClass : enterClass;\n var activeClass = isAppear && appearActiveClass ? appearActiveClass : enterActiveClass;\n var toClass = isAppear && appearToClass ? appearToClass : enterToClass;\n var beforeEnterHook = isAppear ? beforeAppear || beforeEnter : beforeEnter;\n var enterHook = isAppear ? (isFunction(appear) ? appear : enter) : enter;\n var afterEnterHook = isAppear ? afterAppear || afterEnter : afterEnter;\n var enterCancelledHook = isAppear\n ? appearCancelled || enterCancelled\n : enterCancelled;\n var explicitEnterDuration = toNumber(isObject(duration) ? duration.enter : duration);\n if (explicitEnterDuration != null) {\n checkDuration(explicitEnterDuration, 'enter', vnode);\n }\n var expectsCSS = css !== false && !isIE9;\n var userWantsControl = getHookArgumentsLength(enterHook);\n var cb = (el._enterCb = once(function () {\n if (expectsCSS) {\n removeTransitionClass(el, toClass);\n removeTransitionClass(el, activeClass);\n }\n // @ts-expect-error\n if (cb.cancelled) {\n if (expectsCSS) {\n removeTransitionClass(el, startClass);\n }\n enterCancelledHook && enterCancelledHook(el);\n }\n else {\n afterEnterHook && afterEnterHook(el);\n }\n el._enterCb = null;\n }));\n if (!vnode.data.show) {\n // remove pending leave element on enter by injecting an insert hook\n mergeVNodeHook(vnode, 'insert', function () {\n var parent = el.parentNode;\n var pendingNode = parent && parent._pending && parent._pending[vnode.key];\n if (pendingNode &&\n pendingNode.tag === vnode.tag &&\n pendingNode.elm._leaveCb) {\n pendingNode.elm._leaveCb();\n }\n enterHook && enterHook(el, cb);\n });\n }\n // start enter transition\n beforeEnterHook && beforeEnterHook(el);\n if (expectsCSS) {\n addTransitionClass(el, startClass);\n addTransitionClass(el, activeClass);\n nextFrame(function () {\n removeTransitionClass(el, startClass);\n // @ts-expect-error\n if (!cb.cancelled) {\n addTransitionClass(el, toClass);\n if (!userWantsControl) {\n if (isValidDuration(explicitEnterDuration)) {\n setTimeout(cb, explicitEnterDuration);\n }\n else {\n whenTransitionEnds(el, type, cb);\n }\n }\n }\n });\n }\n if (vnode.data.show) {\n toggleDisplay && toggleDisplay();\n enterHook && enterHook(el, cb);\n }\n if (!expectsCSS && !userWantsControl) {\n cb();\n }\n }\n function leave(vnode, rm) {\n var el = vnode.elm;\n // call enter callback now\n if (isDef(el._enterCb)) {\n el._enterCb.cancelled = true;\n el._enterCb();\n }\n var data = resolveTransition(vnode.data.transition);\n if (isUndef(data) || el.nodeType !== 1) {\n return rm();\n }\n /* istanbul ignore if */\n if (isDef(el._leaveCb)) {\n return;\n }\n var css = data.css, type = data.type, leaveClass = data.leaveClass, leaveToClass = data.leaveToClass, leaveActiveClass = data.leaveActiveClass, beforeLeave = data.beforeLeave, leave = data.leave, afterLeave = data.afterLeave, leaveCancelled = data.leaveCancelled, delayLeave = data.delayLeave, duration = data.duration;\n var expectsCSS = css !== false && !isIE9;\n var userWantsControl = getHookArgumentsLength(leave);\n var explicitLeaveDuration = toNumber(isObject(duration) ? duration.leave : duration);\n if (isDef(explicitLeaveDuration)) {\n checkDuration(explicitLeaveDuration, 'leave', vnode);\n }\n var cb = (el._leaveCb = once(function () {\n if (el.parentNode && el.parentNode._pending) {\n el.parentNode._pending[vnode.key] = null;\n }\n if (expectsCSS) {\n removeTransitionClass(el, leaveToClass);\n removeTransitionClass(el, leaveActiveClass);\n }\n // @ts-expect-error\n if (cb.cancelled) {\n if (expectsCSS) {\n removeTransitionClass(el, leaveClass);\n }\n leaveCancelled && leaveCancelled(el);\n }\n else {\n rm();\n afterLeave && afterLeave(el);\n }\n el._leaveCb = null;\n }));\n if (delayLeave) {\n delayLeave(performLeave);\n }\n else {\n performLeave();\n }\n function performLeave() {\n // the delayed leave may have already been cancelled\n // @ts-expect-error\n if (cb.cancelled) {\n return;\n }\n // record leaving element\n if (!vnode.data.show && el.parentNode) {\n (el.parentNode._pending || (el.parentNode._pending = {}))[vnode.key] =\n vnode;\n }\n beforeLeave && beforeLeave(el);\n if (expectsCSS) {\n addTransitionClass(el, leaveClass);\n addTransitionClass(el, leaveActiveClass);\n nextFrame(function () {\n removeTransitionClass(el, leaveClass);\n // @ts-expect-error\n if (!cb.cancelled) {\n addTransitionClass(el, leaveToClass);\n if (!userWantsControl) {\n if (isValidDuration(explicitLeaveDuration)) {\n setTimeout(cb, explicitLeaveDuration);\n }\n else {\n whenTransitionEnds(el, type, cb);\n }\n }\n }\n });\n }\n leave && leave(el, cb);\n if (!expectsCSS && !userWantsControl) {\n cb();\n }\n }\n }\n // only used in dev mode\n function checkDuration(val, name, vnode) {\n if (typeof val !== 'number') {\n warn$2(\"<transition> explicit \".concat(name, \" duration is not a valid number - \") +\n \"got \".concat(JSON.stringify(val), \".\"), vnode.context);\n }\n else if (isNaN(val)) {\n warn$2(\"<transition> explicit \".concat(name, \" duration is NaN - \") +\n 'the duration expression might be incorrect.', vnode.context);\n }\n }\n function isValidDuration(val) {\n return typeof val === 'number' && !isNaN(val);\n }\n /**\n * Normalize a transition hook's argument length. The hook may be:\n * - a merged hook (invoker) with the original in .fns\n * - a wrapped component method (check ._length)\n * - a plain function (.length)\n */\n function getHookArgumentsLength(fn) {\n if (isUndef(fn)) {\n return false;\n }\n // @ts-expect-error\n var invokerFns = fn.fns;\n if (isDef(invokerFns)) {\n // invoker\n return getHookArgumentsLength(Array.isArray(invokerFns) ? invokerFns[0] : invokerFns);\n }\n else {\n // @ts-expect-error\n return (fn._length || fn.length) > 1;\n }\n }\n function _enter(_, vnode) {\n if (vnode.data.show !== true) {\n enter(vnode);\n }\n }\n var transition = inBrowser\n ? {\n create: _enter,\n activate: _enter,\n remove: function (vnode, rm) {\n /* istanbul ignore else */\n if (vnode.data.show !== true) {\n // @ts-expect-error\n leave(vnode, rm);\n }\n else {\n rm();\n }\n }\n }\n : {};\n\n var platformModules = [attrs, klass$1, events, domProps, style$1, transition];\n\n // the directive module should be applied last, after all\n // built-in modules have been applied.\n var modules$1 = platformModules.concat(baseModules);\n var patch = createPatchFunction({ nodeOps: nodeOps, modules: modules$1 });\n\n /**\n * Not type checking this file because flow doesn't like attaching\n * properties to Elements.\n */\n /* istanbul ignore if */\n if (isIE9) {\n // http://www.matts411.com/post/internet-explorer-9-oninput/\n document.addEventListener('selectionchange', function () {\n var el = document.activeElement;\n // @ts-expect-error\n if (el && el.vmodel) {\n trigger(el, 'input');\n }\n });\n }\n var directive = {\n inserted: function (el, binding, vnode, oldVnode) {\n if (vnode.tag === 'select') {\n // #6903\n if (oldVnode.elm && !oldVnode.elm._vOptions) {\n mergeVNodeHook(vnode, 'postpatch', function () {\n directive.componentUpdated(el, binding, vnode);\n });\n }\n else {\n setSelected(el, binding, vnode.context);\n }\n el._vOptions = [].map.call(el.options, getValue);\n }\n else if (vnode.tag === 'textarea' || isTextInputType(el.type)) {\n el._vModifiers = binding.modifiers;\n if (!binding.modifiers.lazy) {\n el.addEventListener('compositionstart', onCompositionStart);\n el.addEventListener('compositionend', onCompositionEnd);\n // Safari < 10.2 & UIWebView doesn't fire compositionend when\n // switching focus before confirming composition choice\n // this also fixes the issue where some browsers e.g. iOS Chrome\n // fires \"change\" instead of \"input\" on autocomplete.\n el.addEventListener('change', onCompositionEnd);\n /* istanbul ignore if */\n if (isIE9) {\n el.vmodel = true;\n }\n }\n }\n },\n componentUpdated: function (el, binding, vnode) {\n if (vnode.tag === 'select') {\n setSelected(el, binding, vnode.context);\n // in case the options rendered by v-for have changed,\n // it's possible that the value is out-of-sync with the rendered options.\n // detect such cases and filter out values that no longer has a matching\n // option in the DOM.\n var prevOptions_1 = el._vOptions;\n var curOptions_1 = (el._vOptions = [].map.call(el.options, getValue));\n if (curOptions_1.some(function (o, i) { return !looseEqual(o, prevOptions_1[i]); })) {\n // trigger change event if\n // no matching option found for at least one value\n var needReset = el.multiple\n ? binding.value.some(function (v) { return hasNoMatchingOption(v, curOptions_1); })\n : binding.value !== binding.oldValue &&\n hasNoMatchingOption(binding.value, curOptions_1);\n if (needReset) {\n trigger(el, 'change');\n }\n }\n }\n }\n };\n function setSelected(el, binding, vm) {\n actuallySetSelected(el, binding, vm);\n /* istanbul ignore if */\n if (isIE || isEdge) {\n setTimeout(function () {\n actuallySetSelected(el, binding, vm);\n }, 0);\n }\n }\n function actuallySetSelected(el, binding, vm) {\n var value = binding.value;\n var isMultiple = el.multiple;\n if (isMultiple && !Array.isArray(value)) {\n warn$2(\"<select multiple v-model=\\\"\".concat(binding.expression, \"\\\"> \") +\n \"expects an Array value for its binding, but got \".concat(Object.prototype.toString\n .call(value)\n .slice(8, -1)), vm);\n return;\n }\n var selected, option;\n for (var i = 0, l = el.options.length; i < l; i++) {\n option = el.options[i];\n if (isMultiple) {\n selected = looseIndexOf(value, getValue(option)) > -1;\n if (option.selected !== selected) {\n option.selected = selected;\n }\n }\n else {\n if (looseEqual(getValue(option), value)) {\n if (el.selectedIndex !== i) {\n el.selectedIndex = i;\n }\n return;\n }\n }\n }\n if (!isMultiple) {\n el.selectedIndex = -1;\n }\n }\n function hasNoMatchingOption(value, options) {\n return options.every(function (o) { return !looseEqual(o, value); });\n }\n function getValue(option) {\n return '_value' in option ? option._value : option.value;\n }\n function onCompositionStart(e) {\n e.target.composing = true;\n }\n function onCompositionEnd(e) {\n // prevent triggering an input event for no reason\n if (!e.target.composing)\n return;\n e.target.composing = false;\n trigger(e.target, 'input');\n }\n function trigger(el, type) {\n var e = document.createEvent('HTMLEvents');\n e.initEvent(type, true, true);\n el.dispatchEvent(e);\n }\n\n // recursively search for possible transition defined inside the component root\n function locateNode(vnode) {\n // @ts-expect-error\n return vnode.componentInstance && (!vnode.data || !vnode.data.transition)\n ? locateNode(vnode.componentInstance._vnode)\n : vnode;\n }\n var show = {\n bind: function (el, _a, vnode) {\n var value = _a.value;\n vnode = locateNode(vnode);\n var transition = vnode.data && vnode.data.transition;\n var originalDisplay = (el.__vOriginalDisplay =\n el.style.display === 'none' ? '' : el.style.display);\n if (value && transition) {\n vnode.data.show = true;\n enter(vnode, function () {\n el.style.display = originalDisplay;\n });\n }\n else {\n el.style.display = value ? originalDisplay : 'none';\n }\n },\n update: function (el, _a, vnode) {\n var value = _a.value, oldValue = _a.oldValue;\n /* istanbul ignore if */\n if (!value === !oldValue)\n return;\n vnode = locateNode(vnode);\n var transition = vnode.data && vnode.data.transition;\n if (transition) {\n vnode.data.show = true;\n if (value) {\n enter(vnode, function () {\n el.style.display = el.__vOriginalDisplay;\n });\n }\n else {\n leave(vnode, function () {\n el.style.display = 'none';\n });\n }\n }\n else {\n el.style.display = value ? el.__vOriginalDisplay : 'none';\n }\n },\n unbind: function (el, binding, vnode, oldVnode, isDestroy) {\n if (!isDestroy) {\n el.style.display = el.__vOriginalDisplay;\n }\n }\n };\n\n var platformDirectives = {\n model: directive,\n show: show\n };\n\n // Provides transition support for a single element/component.\n var transitionProps = {\n name: String,\n appear: Boolean,\n css: Boolean,\n mode: String,\n type: String,\n enterClass: String,\n leaveClass: String,\n enterToClass: String,\n leaveToClass: String,\n enterActiveClass: String,\n leaveActiveClass: String,\n appearClass: String,\n appearActiveClass: String,\n appearToClass: String,\n duration: [Number, String, Object]\n };\n // in case the child is also an abstract component, e.g. <keep-alive>\n // we want to recursively retrieve the real component to be rendered\n function getRealChild(vnode) {\n var compOptions = vnode && vnode.componentOptions;\n if (compOptions && compOptions.Ctor.options.abstract) {\n return getRealChild(getFirstComponentChild(compOptions.children));\n }\n else {\n return vnode;\n }\n }\n function extractTransitionData(comp) {\n var data = {};\n var options = comp.$options;\n // props\n for (var key in options.propsData) {\n data[key] = comp[key];\n }\n // events.\n // extract listeners and pass them directly to the transition methods\n var listeners = options._parentListeners;\n for (var key in listeners) {\n data[camelize(key)] = listeners[key];\n }\n return data;\n }\n function placeholder(h, rawChild) {\n // @ts-expect-error\n if (/\\d-keep-alive$/.test(rawChild.tag)) {\n return h('keep-alive', {\n props: rawChild.componentOptions.propsData\n });\n }\n }\n function hasParentTransition(vnode) {\n while ((vnode = vnode.parent)) {\n if (vnode.data.transition) {\n return true;\n }\n }\n }\n function isSameChild(child, oldChild) {\n return oldChild.key === child.key && oldChild.tag === child.tag;\n }\n var isNotTextNode = function (c) { return c.tag || isAsyncPlaceholder(c); };\n var isVShowDirective = function (d) { return d.name === 'show'; };\n var Transition = {\n name: 'transition',\n props: transitionProps,\n abstract: true,\n render: function (h) {\n var _this = this;\n var children = this.$slots.default;\n if (!children) {\n return;\n }\n // filter out text nodes (possible whitespaces)\n children = children.filter(isNotTextNode);\n /* istanbul ignore if */\n if (!children.length) {\n return;\n }\n // warn multiple elements\n if (children.length > 1) {\n warn$2('<transition> can only be used on a single element. Use ' +\n '<transition-group> for lists.', this.$parent);\n }\n var mode = this.mode;\n // warn invalid mode\n if (mode && mode !== 'in-out' && mode !== 'out-in') {\n warn$2('invalid <transition> mode: ' + mode, this.$parent);\n }\n var rawChild = children[0];\n // if this is a component root node and the component's\n // parent container node also has transition, skip.\n if (hasParentTransition(this.$vnode)) {\n return rawChild;\n }\n // apply transition data to child\n // use getRealChild() to ignore abstract components e.g. keep-alive\n var child = getRealChild(rawChild);\n /* istanbul ignore if */\n if (!child) {\n return rawChild;\n }\n if (this._leaving) {\n return placeholder(h, rawChild);\n }\n // ensure a key that is unique to the vnode type and to this transition\n // component instance. This key will be used to remove pending leaving nodes\n // during entering.\n var id = \"__transition-\".concat(this._uid, \"-\");\n child.key =\n child.key == null\n ? child.isComment\n ? id + 'comment'\n : id + child.tag\n : isPrimitive(child.key)\n ? String(child.key).indexOf(id) === 0\n ? child.key\n : id + child.key\n : child.key;\n var data = ((child.data || (child.data = {})).transition =\n extractTransitionData(this));\n var oldRawChild = this._vnode;\n var oldChild = getRealChild(oldRawChild);\n // mark v-show\n // so that the transition module can hand over the control to the directive\n if (child.data.directives && child.data.directives.some(isVShowDirective)) {\n child.data.show = true;\n }\n if (oldChild &&\n oldChild.data &&\n !isSameChild(child, oldChild) &&\n !isAsyncPlaceholder(oldChild) &&\n // #6687 component root is a comment node\n !(oldChild.componentInstance &&\n oldChild.componentInstance._vnode.isComment)) {\n // replace old child transition data with fresh one\n // important for dynamic transitions!\n var oldData = (oldChild.data.transition = extend({}, data));\n // handle transition mode\n if (mode === 'out-in') {\n // return placeholder node and queue update when leave finishes\n this._leaving = true;\n mergeVNodeHook(oldData, 'afterLeave', function () {\n _this._leaving = false;\n _this.$forceUpdate();\n });\n return placeholder(h, rawChild);\n }\n else if (mode === 'in-out') {\n if (isAsyncPlaceholder(child)) {\n return oldRawChild;\n }\n var delayedLeave_1;\n var performLeave = function () {\n delayedLeave_1();\n };\n mergeVNodeHook(data, 'afterEnter', performLeave);\n mergeVNodeHook(data, 'enterCancelled', performLeave);\n mergeVNodeHook(oldData, 'delayLeave', function (leave) {\n delayedLeave_1 = leave;\n });\n }\n }\n return rawChild;\n }\n };\n\n // Provides transition support for list items.\n var props = extend({\n tag: String,\n moveClass: String\n }, transitionProps);\n delete props.mode;\n var TransitionGroup = {\n props: props,\n beforeMount: function () {\n var _this = this;\n var update = this._update;\n this._update = function (vnode, hydrating) {\n var restoreActiveInstance = setActiveInstance(_this);\n // force removing pass\n _this.__patch__(_this._vnode, _this.kept, false, // hydrating\n true // removeOnly (!important, avoids unnecessary moves)\n );\n _this._vnode = _this.kept;\n restoreActiveInstance();\n update.call(_this, vnode, hydrating);\n };\n },\n render: function (h) {\n var tag = this.tag || this.$vnode.data.tag || 'span';\n var map = Object.create(null);\n var prevChildren = (this.prevChildren = this.children);\n var rawChildren = this.$slots.default || [];\n var children = (this.children = []);\n var transitionData = extractTransitionData(this);\n for (var i = 0; i < rawChildren.length; i++) {\n var c = rawChildren[i];\n if (c.tag) {\n if (c.key != null && String(c.key).indexOf('__vlist') !== 0) {\n children.push(c);\n map[c.key] = c;\n (c.data || (c.data = {})).transition = transitionData;\n }\n else {\n var opts = c.componentOptions;\n var name_1 = opts\n ? getComponentName(opts.Ctor.options) || opts.tag || ''\n : c.tag;\n warn$2(\"<transition-group> children must be keyed: <\".concat(name_1, \">\"));\n }\n }\n }\n if (prevChildren) {\n var kept = [];\n var removed = [];\n for (var i = 0; i < prevChildren.length; i++) {\n var c = prevChildren[i];\n c.data.transition = transitionData;\n // @ts-expect-error .getBoundingClientRect is not typed in Node\n c.data.pos = c.elm.getBoundingClientRect();\n if (map[c.key]) {\n kept.push(c);\n }\n else {\n removed.push(c);\n }\n }\n this.kept = h(tag, null, kept);\n this.removed = removed;\n }\n return h(tag, null, children);\n },\n updated: function () {\n var children = this.prevChildren;\n var moveClass = this.moveClass || (this.name || 'v') + '-move';\n if (!children.length || !this.hasMove(children[0].elm, moveClass)) {\n return;\n }\n // we divide the work into three loops to avoid mixing DOM reads and writes\n // in each iteration - which helps prevent layout thrashing.\n children.forEach(callPendingCbs);\n children.forEach(recordPosition);\n children.forEach(applyTranslation);\n // force reflow to put everything in position\n // assign to this to avoid being removed in tree-shaking\n // $flow-disable-line\n this._reflow = document.body.offsetHeight;\n children.forEach(function (c) {\n if (c.data.moved) {\n var el_1 = c.elm;\n var s = el_1.style;\n addTransitionClass(el_1, moveClass);\n s.transform = s.WebkitTransform = s.transitionDuration = '';\n el_1.addEventListener(transitionEndEvent, (el_1._moveCb = function cb(e) {\n if (e && e.target !== el_1) {\n return;\n }\n if (!e || /transform$/.test(e.propertyName)) {\n el_1.removeEventListener(transitionEndEvent, cb);\n el_1._moveCb = null;\n removeTransitionClass(el_1, moveClass);\n }\n }));\n }\n });\n },\n methods: {\n hasMove: function (el, moveClass) {\n /* istanbul ignore if */\n if (!hasTransition) {\n return false;\n }\n /* istanbul ignore if */\n if (this._hasMove) {\n return this._hasMove;\n }\n // Detect whether an element with the move class applied has\n // CSS transitions. Since the element may be inside an entering\n // transition at this very moment, we make a clone of it and remove\n // all other transition classes applied to ensure only the move class\n // is applied.\n var clone = el.cloneNode();\n if (el._transitionClasses) {\n el._transitionClasses.forEach(function (cls) {\n removeClass(clone, cls);\n });\n }\n addClass(clone, moveClass);\n clone.style.display = 'none';\n this.$el.appendChild(clone);\n var info = getTransitionInfo(clone);\n this.$el.removeChild(clone);\n return (this._hasMove = info.hasTransform);\n }\n }\n };\n function callPendingCbs(c) {\n /* istanbul ignore if */\n if (c.elm._moveCb) {\n c.elm._moveCb();\n }\n /* istanbul ignore if */\n if (c.elm._enterCb) {\n c.elm._enterCb();\n }\n }\n function recordPosition(c) {\n c.data.newPos = c.elm.getBoundingClientRect();\n }\n function applyTranslation(c) {\n var oldPos = c.data.pos;\n var newPos = c.data.newPos;\n var dx = oldPos.left - newPos.left;\n var dy = oldPos.top - newPos.top;\n if (dx || dy) {\n c.data.moved = true;\n var s = c.elm.style;\n s.transform = s.WebkitTransform = \"translate(\".concat(dx, \"px,\").concat(dy, \"px)\");\n s.transitionDuration = '0s';\n }\n }\n\n var platformComponents = {\n Transition: Transition,\n TransitionGroup: TransitionGroup\n };\n\n // install platform specific utils\n Vue.config.mustUseProp = mustUseProp;\n Vue.config.isReservedTag = isReservedTag;\n Vue.config.isReservedAttr = isReservedAttr;\n Vue.config.getTagNamespace = getTagNamespace;\n Vue.config.isUnknownElement = isUnknownElement;\n // install platform runtime directives & components\n extend(Vue.options.directives, platformDirectives);\n extend(Vue.options.components, platformComponents);\n // install platform patch function\n Vue.prototype.__patch__ = inBrowser ? patch : noop;\n // public mount method\n Vue.prototype.$mount = function (el, hydrating) {\n el = el && inBrowser ? query(el) : undefined;\n return mountComponent(this, el, hydrating);\n };\n // devtools global hook\n /* istanbul ignore next */\n if (inBrowser) {\n setTimeout(function () {\n if (config.devtools) {\n if (devtools) {\n devtools.emit('init', Vue);\n }\n else {\n // @ts-expect-error\n console[console.info ? 'info' : 'log']('Download the Vue Devtools extension for a better development experience:\\n' +\n 'https://github.com/vuejs/vue-devtools');\n }\n }\n if (config.productionTip !== false &&\n typeof console !== 'undefined') {\n // @ts-expect-error\n console[console.info ? 'info' : 'log'](\"You are running Vue in development mode.\\n\" +\n \"Make sure to turn on production mode when deploying for production.\\n\" +\n \"See more tips at https://vuejs.org/guide/deployment.html\");\n }\n }, 0);\n }\n\n var defaultTagRE = /\\{\\{((?:.|\\r?\\n)+?)\\}\\}/g;\n var regexEscapeRE = /[-.*+?^${}()|[\\]\\/\\\\]/g;\n var buildRegex = cached(function (delimiters) {\n var open = delimiters[0].replace(regexEscapeRE, '\\\\$&');\n var close = delimiters[1].replace(regexEscapeRE, '\\\\$&');\n return new RegExp(open + '((?:.|\\\\n)+?)' + close, 'g');\n });\n function parseText(text, delimiters) {\n //@ts-expect-error\n var tagRE = delimiters ? buildRegex(delimiters) : defaultTagRE;\n if (!tagRE.test(text)) {\n return;\n }\n var tokens = [];\n var rawTokens = [];\n var lastIndex = (tagRE.lastIndex = 0);\n var match, index, tokenValue;\n while ((match = tagRE.exec(text))) {\n index = match.index;\n // push text token\n if (index > lastIndex) {\n rawTokens.push((tokenValue = text.slice(lastIndex, index)));\n tokens.push(JSON.stringify(tokenValue));\n }\n // tag token\n var exp = parseFilters(match[1].trim());\n tokens.push(\"_s(\".concat(exp, \")\"));\n rawTokens.push({ '@binding': exp });\n lastIndex = index + match[0].length;\n }\n if (lastIndex < text.length) {\n rawTokens.push((tokenValue = text.slice(lastIndex)));\n tokens.push(JSON.stringify(tokenValue));\n }\n return {\n expression: tokens.join('+'),\n tokens: rawTokens\n };\n }\n\n function transformNode$1(el, options) {\n var warn = options.warn || baseWarn;\n var staticClass = getAndRemoveAttr(el, 'class');\n if (staticClass) {\n var res = parseText(staticClass, options.delimiters);\n if (res) {\n warn(\"class=\\\"\".concat(staticClass, \"\\\": \") +\n 'Interpolation inside attributes has been removed. ' +\n 'Use v-bind or the colon shorthand instead. For example, ' +\n 'instead of <div class=\"{{ val }}\">, use <div :class=\"val\">.', el.rawAttrsMap['class']);\n }\n }\n if (staticClass) {\n el.staticClass = JSON.stringify(staticClass.replace(/\\s+/g, ' ').trim());\n }\n var classBinding = getBindingAttr(el, 'class', false /* getStatic */);\n if (classBinding) {\n el.classBinding = classBinding;\n }\n }\n function genData$2(el) {\n var data = '';\n if (el.staticClass) {\n data += \"staticClass:\".concat(el.staticClass, \",\");\n }\n if (el.classBinding) {\n data += \"class:\".concat(el.classBinding, \",\");\n }\n return data;\n }\n var klass = {\n staticKeys: ['staticClass'],\n transformNode: transformNode$1,\n genData: genData$2\n };\n\n function transformNode(el, options) {\n var warn = options.warn || baseWarn;\n var staticStyle = getAndRemoveAttr(el, 'style');\n if (staticStyle) {\n /* istanbul ignore if */\n {\n var res = parseText(staticStyle, options.delimiters);\n if (res) {\n warn(\"style=\\\"\".concat(staticStyle, \"\\\": \") +\n 'Interpolation inside attributes has been removed. ' +\n 'Use v-bind or the colon shorthand instead. For example, ' +\n 'instead of <div style=\"{{ val }}\">, use <div :style=\"val\">.', el.rawAttrsMap['style']);\n }\n }\n el.staticStyle = JSON.stringify(parseStyleText(staticStyle));\n }\n var styleBinding = getBindingAttr(el, 'style', false /* getStatic */);\n if (styleBinding) {\n el.styleBinding = styleBinding;\n }\n }\n function genData$1(el) {\n var data = '';\n if (el.staticStyle) {\n data += \"staticStyle:\".concat(el.staticStyle, \",\");\n }\n if (el.styleBinding) {\n data += \"style:(\".concat(el.styleBinding, \"),\");\n }\n return data;\n }\n var style = {\n staticKeys: ['staticStyle'],\n transformNode: transformNode,\n genData: genData$1\n };\n\n var decoder;\n var he = {\n decode: function (html) {\n decoder = decoder || document.createElement('div');\n decoder.innerHTML = html;\n return decoder.textContent;\n }\n };\n\n var isUnaryTag = makeMap('area,base,br,col,embed,frame,hr,img,input,isindex,keygen,' +\n 'link,meta,param,source,track,wbr');\n // Elements that you can, intentionally, leave open\n // (and which close themselves)\n var canBeLeftOpenTag = makeMap('colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source');\n // HTML5 tags https://html.spec.whatwg.org/multipage/indices.html#elements-3\n // Phrasing Content https://html.spec.whatwg.org/multipage/dom.html#phrasing-content\n var isNonPhrasingTag = makeMap('address,article,aside,base,blockquote,body,caption,col,colgroup,dd,' +\n 'details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,' +\n 'h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,' +\n 'optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,' +\n 'title,tr,track');\n\n /**\n * Not type-checking this file because it's mostly vendor code.\n */\n // Regular Expressions for parsing tags and attributes\n var attribute = /^\\s*([^\\s\"'<>\\/=]+)(?:\\s*(=)\\s*(?:\"([^\"]*)\"+|'([^']*)'+|([^\\s\"'=<>`]+)))?/;\n var dynamicArgAttribute = /^\\s*((?:v-[\\w-]+:|@|:|#)\\[[^=]+?\\][^\\s\"'<>\\/=]*)(?:\\s*(=)\\s*(?:\"([^\"]*)\"+|'([^']*)'+|([^\\s\"'=<>`]+)))?/;\n var ncname = \"[a-zA-Z_][\\\\-\\\\.0-9_a-zA-Z\".concat(unicodeRegExp.source, \"]*\");\n var qnameCapture = \"((?:\".concat(ncname, \"\\\\:)?\").concat(ncname, \")\");\n var startTagOpen = new RegExp(\"^<\".concat(qnameCapture));\n var startTagClose = /^\\s*(\\/?)>/;\n var endTag = new RegExp(\"^<\\\\/\".concat(qnameCapture, \"[^>]*>\"));\n var doctype = /^<!DOCTYPE [^>]+>/i;\n // #7298: escape - to avoid being passed as HTML comment when inlined in page\n var comment = /^<!\\--/;\n var conditionalComment = /^<!\\[/;\n // Special Elements (can contain anything)\n var isPlainTextElement = makeMap('script,style,textarea', true);\n var reCache = {};\n var decodingMap = {\n '<': '<',\n '>': '>',\n '"': '\"',\n '&': '&',\n ' ': '\\n',\n ' ': '\\t',\n ''': \"'\"\n };\n var encodedAttr = /&(?:lt|gt|quot|amp|#39);/g;\n var encodedAttrWithNewLines = /&(?:lt|gt|quot|amp|#39|#10|#9);/g;\n // #5992\n var isIgnoreNewlineTag = makeMap('pre,textarea', true);\n var shouldIgnoreFirstNewline = function (tag, html) {\n return tag && isIgnoreNewlineTag(tag) && html[0] === '\\n';\n };\n function decodeAttr(value, shouldDecodeNewlines) {\n var re = shouldDecodeNewlines ? encodedAttrWithNewLines : encodedAttr;\n return value.replace(re, function (match) { return decodingMap[match]; });\n }\n function parseHTML(html, options) {\n var stack = [];\n var expectHTML = options.expectHTML;\n var isUnaryTag = options.isUnaryTag || no;\n var canBeLeftOpenTag = options.canBeLeftOpenTag || no;\n var index = 0;\n var last, lastTag;\n var _loop_1 = function () {\n last = html;\n // Make sure we're not in a plaintext content element like script/style\n if (!lastTag || !isPlainTextElement(lastTag)) {\n var textEnd = html.indexOf('<');\n if (textEnd === 0) {\n // Comment:\n if (comment.test(html)) {\n var commentEnd = html.indexOf('-->');\n if (commentEnd >= 0) {\n if (options.shouldKeepComment && options.comment) {\n options.comment(html.substring(4, commentEnd), index, index + commentEnd + 3);\n }\n advance(commentEnd + 3);\n return \"continue\";\n }\n }\n // http://en.wikipedia.org/wiki/Conditional_comment#Downlevel-revealed_conditional_comment\n if (conditionalComment.test(html)) {\n var conditionalEnd = html.indexOf(']>');\n if (conditionalEnd >= 0) {\n advance(conditionalEnd + 2);\n return \"continue\";\n }\n }\n // Doctype:\n var doctypeMatch = html.match(doctype);\n if (doctypeMatch) {\n advance(doctypeMatch[0].length);\n return \"continue\";\n }\n // End tag:\n var endTagMatch = html.match(endTag);\n if (endTagMatch) {\n var curIndex = index;\n advance(endTagMatch[0].length);\n parseEndTag(endTagMatch[1], curIndex, index);\n return \"continue\";\n }\n // Start tag:\n var startTagMatch = parseStartTag();\n if (startTagMatch) {\n handleStartTag(startTagMatch);\n if (shouldIgnoreFirstNewline(startTagMatch.tagName, html)) {\n advance(1);\n }\n return \"continue\";\n }\n }\n var text = void 0, rest = void 0, next = void 0;\n if (textEnd >= 0) {\n rest = html.slice(textEnd);\n while (!endTag.test(rest) &&\n !startTagOpen.test(rest) &&\n !comment.test(rest) &&\n !conditionalComment.test(rest)) {\n // < in plain text, be forgiving and treat it as text\n next = rest.indexOf('<', 1);\n if (next < 0)\n break;\n textEnd += next;\n rest = html.slice(textEnd);\n }\n text = html.substring(0, textEnd);\n }\n if (textEnd < 0) {\n text = html;\n }\n if (text) {\n advance(text.length);\n }\n if (options.chars && text) {\n options.chars(text, index - text.length, index);\n }\n }\n else {\n var endTagLength_1 = 0;\n var stackedTag_1 = lastTag.toLowerCase();\n var reStackedTag = reCache[stackedTag_1] ||\n (reCache[stackedTag_1] = new RegExp('([\\\\s\\\\S]*?)(</' + stackedTag_1 + '[^>]*>)', 'i'));\n var rest = html.replace(reStackedTag, function (all, text, endTag) {\n endTagLength_1 = endTag.length;\n if (!isPlainTextElement(stackedTag_1) && stackedTag_1 !== 'noscript') {\n text = text\n .replace(/<!\\--([\\s\\S]*?)-->/g, '$1') // #7298\n .replace(/<!\\[CDATA\\[([\\s\\S]*?)]]>/g, '$1');\n }\n if (shouldIgnoreFirstNewline(stackedTag_1, text)) {\n text = text.slice(1);\n }\n if (options.chars) {\n options.chars(text);\n }\n return '';\n });\n index += html.length - rest.length;\n html = rest;\n parseEndTag(stackedTag_1, index - endTagLength_1, index);\n }\n if (html === last) {\n options.chars && options.chars(html);\n if (!stack.length && options.warn) {\n options.warn(\"Mal-formatted tag at end of template: \\\"\".concat(html, \"\\\"\"), {\n start: index + html.length\n });\n }\n return \"break\";\n }\n };\n while (html) {\n var state_1 = _loop_1();\n if (state_1 === \"break\")\n break;\n }\n // Clean up any remaining tags\n parseEndTag();\n function advance(n) {\n index += n;\n html = html.substring(n);\n }\n function parseStartTag() {\n var start = html.match(startTagOpen);\n if (start) {\n var match = {\n tagName: start[1],\n attrs: [],\n start: index\n };\n advance(start[0].length);\n var end = void 0, attr = void 0;\n while (!(end = html.match(startTagClose)) &&\n (attr = html.match(dynamicArgAttribute) || html.match(attribute))) {\n attr.start = index;\n advance(attr[0].length);\n attr.end = index;\n match.attrs.push(attr);\n }\n if (end) {\n match.unarySlash = end[1];\n advance(end[0].length);\n match.end = index;\n return match;\n }\n }\n }\n function handleStartTag(match) {\n var tagName = match.tagName;\n var unarySlash = match.unarySlash;\n if (expectHTML) {\n if (lastTag === 'p' && isNonPhrasingTag(tagName)) {\n parseEndTag(lastTag);\n }\n if (canBeLeftOpenTag(tagName) && lastTag === tagName) {\n parseEndTag(tagName);\n }\n }\n var unary = isUnaryTag(tagName) || !!unarySlash;\n var l = match.attrs.length;\n var attrs = new Array(l);\n for (var i = 0; i < l; i++) {\n var args = match.attrs[i];\n var value = args[3] || args[4] || args[5] || '';\n var shouldDecodeNewlines = tagName === 'a' && args[1] === 'href'\n ? options.shouldDecodeNewlinesForHref\n : options.shouldDecodeNewlines;\n attrs[i] = {\n name: args[1],\n value: decodeAttr(value, shouldDecodeNewlines)\n };\n if (options.outputSourceRange) {\n attrs[i].start = args.start + args[0].match(/^\\s*/).length;\n attrs[i].end = args.end;\n }\n }\n if (!unary) {\n stack.push({\n tag: tagName,\n lowerCasedTag: tagName.toLowerCase(),\n attrs: attrs,\n start: match.start,\n end: match.end\n });\n lastTag = tagName;\n }\n if (options.start) {\n options.start(tagName, attrs, unary, match.start, match.end);\n }\n }\n function parseEndTag(tagName, start, end) {\n var pos, lowerCasedTagName;\n if (start == null)\n start = index;\n if (end == null)\n end = index;\n // Find the closest opened tag of the same type\n if (tagName) {\n lowerCasedTagName = tagName.toLowerCase();\n for (pos = stack.length - 1; pos >= 0; pos--) {\n if (stack[pos].lowerCasedTag === lowerCasedTagName) {\n break;\n }\n }\n }\n else {\n // If no tag name is provided, clean shop\n pos = 0;\n }\n if (pos >= 0) {\n // Close all the open elements, up the stack\n for (var i = stack.length - 1; i >= pos; i--) {\n if ((i > pos || !tagName) && options.warn) {\n options.warn(\"tag <\".concat(stack[i].tag, \"> has no matching end tag.\"), {\n start: stack[i].start,\n end: stack[i].end\n });\n }\n if (options.end) {\n options.end(stack[i].tag, start, end);\n }\n }\n // Remove the open elements from the stack\n stack.length = pos;\n lastTag = pos && stack[pos - 1].tag;\n }\n else if (lowerCasedTagName === 'br') {\n if (options.start) {\n options.start(tagName, [], true, start, end);\n }\n }\n else if (lowerCasedTagName === 'p') {\n if (options.start) {\n options.start(tagName, [], false, start, end);\n }\n if (options.end) {\n options.end(tagName, start, end);\n }\n }\n }\n }\n\n var onRE = /^@|^v-on:/;\n var dirRE = /^v-|^@|^:|^#/;\n var forAliasRE = /([\\s\\S]*?)\\s+(?:in|of)\\s+([\\s\\S]*)/;\n var forIteratorRE = /,([^,\\}\\]]*)(?:,([^,\\}\\]]*))?$/;\n var stripParensRE = /^\\(|\\)$/g;\n var dynamicArgRE = /^\\[.*\\]$/;\n var argRE = /:(.*)$/;\n var bindRE = /^:|^\\.|^v-bind:/;\n var modifierRE = /\\.[^.\\]]+(?=[^\\]]*$)/g;\n var slotRE = /^v-slot(:|$)|^#/;\n var lineBreakRE = /[\\r\\n]/;\n var whitespaceRE = /[ \\f\\t\\r\\n]+/g;\n var invalidAttributeRE = /[\\s\"'<>\\/=]/;\n var decodeHTMLCached = cached(he.decode);\n var emptySlotScopeToken = \"_empty_\";\n // configurable state\n var warn;\n var delimiters;\n var transforms;\n var preTransforms;\n var postTransforms;\n var platformIsPreTag;\n var platformMustUseProp;\n var platformGetTagNamespace;\n var maybeComponent;\n function createASTElement(tag, attrs, parent) {\n return {\n type: 1,\n tag: tag,\n attrsList: attrs,\n attrsMap: makeAttrsMap(attrs),\n rawAttrsMap: {},\n parent: parent,\n children: []\n };\n }\n /**\n * Convert HTML string to AST.\n */\n function parse(template, options) {\n warn = options.warn || baseWarn;\n platformIsPreTag = options.isPreTag || no;\n platformMustUseProp = options.mustUseProp || no;\n platformGetTagNamespace = options.getTagNamespace || no;\n var isReservedTag = options.isReservedTag || no;\n maybeComponent = function (el) {\n return !!(el.component ||\n el.attrsMap[':is'] ||\n el.attrsMap['v-bind:is'] ||\n !(el.attrsMap.is ? isReservedTag(el.attrsMap.is) : isReservedTag(el.tag)));\n };\n transforms = pluckModuleFunction(options.modules, 'transformNode');\n preTransforms = pluckModuleFunction(options.modules, 'preTransformNode');\n postTransforms = pluckModuleFunction(options.modules, 'postTransformNode');\n delimiters = options.delimiters;\n var stack = [];\n var preserveWhitespace = options.preserveWhitespace !== false;\n var whitespaceOption = options.whitespace;\n var root;\n var currentParent;\n var inVPre = false;\n var inPre = false;\n var warned = false;\n function warnOnce(msg, range) {\n if (!warned) {\n warned = true;\n warn(msg, range);\n }\n }\n function closeElement(element) {\n trimEndingWhitespace(element);\n if (!inVPre && !element.processed) {\n element = processElement(element, options);\n }\n // tree management\n if (!stack.length && element !== root) {\n // allow root elements with v-if, v-else-if and v-else\n if (root.if && (element.elseif || element.else)) {\n {\n checkRootConstraints(element);\n }\n addIfCondition(root, {\n exp: element.elseif,\n block: element\n });\n }\n else {\n warnOnce(\"Component template should contain exactly one root element. \" +\n \"If you are using v-if on multiple elements, \" +\n \"use v-else-if to chain them instead.\", { start: element.start });\n }\n }\n if (currentParent && !element.forbidden) {\n if (element.elseif || element.else) {\n processIfConditions(element, currentParent);\n }\n else {\n if (element.slotScope) {\n // scoped slot\n // keep it in the children list so that v-else(-if) conditions can\n // find it as the prev node.\n var name_1 = element.slotTarget || '\"default\"';\n (currentParent.scopedSlots || (currentParent.scopedSlots = {}))[name_1] = element;\n }\n currentParent.children.push(element);\n element.parent = currentParent;\n }\n }\n // final children cleanup\n // filter out scoped slots\n element.children = element.children.filter(function (c) { return !c.slotScope; });\n // remove trailing whitespace node again\n trimEndingWhitespace(element);\n // check pre state\n if (element.pre) {\n inVPre = false;\n }\n if (platformIsPreTag(element.tag)) {\n inPre = false;\n }\n // apply post-transforms\n for (var i = 0; i < postTransforms.length; i++) {\n postTransforms[i](element, options);\n }\n }\n function trimEndingWhitespace(el) {\n // remove trailing whitespace node\n if (!inPre) {\n var lastNode = void 0;\n while ((lastNode = el.children[el.children.length - 1]) &&\n lastNode.type === 3 &&\n lastNode.text === ' ') {\n el.children.pop();\n }\n }\n }\n function checkRootConstraints(el) {\n if (el.tag === 'slot' || el.tag === 'template') {\n warnOnce(\"Cannot use <\".concat(el.tag, \"> as component root element because it may \") +\n 'contain multiple nodes.', { start: el.start });\n }\n if (el.attrsMap.hasOwnProperty('v-for')) {\n warnOnce('Cannot use v-for on stateful component root element because ' +\n 'it renders multiple elements.', el.rawAttrsMap['v-for']);\n }\n }\n parseHTML(template, {\n warn: warn,\n expectHTML: options.expectHTML,\n isUnaryTag: options.isUnaryTag,\n canBeLeftOpenTag: options.canBeLeftOpenTag,\n shouldDecodeNewlines: options.shouldDecodeNewlines,\n shouldDecodeNewlinesForHref: options.shouldDecodeNewlinesForHref,\n shouldKeepComment: options.comments,\n outputSourceRange: options.outputSourceRange,\n start: function (tag, attrs, unary, start, end) {\n // check namespace.\n // inherit parent ns if there is one\n var ns = (currentParent && currentParent.ns) || platformGetTagNamespace(tag);\n // handle IE svg bug\n /* istanbul ignore if */\n if (isIE && ns === 'svg') {\n attrs = guardIESVGBug(attrs);\n }\n var element = createASTElement(tag, attrs, currentParent);\n if (ns) {\n element.ns = ns;\n }\n {\n if (options.outputSourceRange) {\n element.start = start;\n element.end = end;\n element.rawAttrsMap = element.attrsList.reduce(function (cumulated, attr) {\n cumulated[attr.name] = attr;\n return cumulated;\n }, {});\n }\n attrs.forEach(function (attr) {\n if (invalidAttributeRE.test(attr.name)) {\n warn(\"Invalid dynamic argument expression: attribute names cannot contain \" +\n \"spaces, quotes, <, >, / or =.\", options.outputSourceRange\n ? {\n start: attr.start + attr.name.indexOf(\"[\"),\n end: attr.start + attr.name.length\n }\n : undefined);\n }\n });\n }\n if (isForbiddenTag(element) && !isServerRendering()) {\n element.forbidden = true;\n warn('Templates should only be responsible for mapping the state to the ' +\n 'UI. Avoid placing tags with side-effects in your templates, such as ' +\n \"<\".concat(tag, \">\") +\n ', as they will not be parsed.', { start: element.start });\n }\n // apply pre-transforms\n for (var i = 0; i < preTransforms.length; i++) {\n element = preTransforms[i](element, options) || element;\n }\n if (!inVPre) {\n processPre(element);\n if (element.pre) {\n inVPre = true;\n }\n }\n if (platformIsPreTag(element.tag)) {\n inPre = true;\n }\n if (inVPre) {\n processRawAttrs(element);\n }\n else if (!element.processed) {\n // structural directives\n processFor(element);\n processIf(element);\n processOnce(element);\n }\n if (!root) {\n root = element;\n {\n checkRootConstraints(root);\n }\n }\n if (!unary) {\n currentParent = element;\n stack.push(element);\n }\n else {\n closeElement(element);\n }\n },\n end: function (tag, start, end) {\n var element = stack[stack.length - 1];\n // pop stack\n stack.length -= 1;\n currentParent = stack[stack.length - 1];\n if (options.outputSourceRange) {\n element.end = end;\n }\n closeElement(element);\n },\n chars: function (text, start, end) {\n if (!currentParent) {\n {\n if (text === template) {\n warnOnce('Component template requires a root element, rather than just text.', { start: start });\n }\n else if ((text = text.trim())) {\n warnOnce(\"text \\\"\".concat(text, \"\\\" outside root element will be ignored.\"), {\n start: start\n });\n }\n }\n return;\n }\n // IE textarea placeholder bug\n /* istanbul ignore if */\n if (isIE &&\n currentParent.tag === 'textarea' &&\n currentParent.attrsMap.placeholder === text) {\n return;\n }\n var children = currentParent.children;\n if (inPre || text.trim()) {\n text = isTextTag(currentParent)\n ? text\n : decodeHTMLCached(text);\n }\n else if (!children.length) {\n // remove the whitespace-only node right after an opening tag\n text = '';\n }\n else if (whitespaceOption) {\n if (whitespaceOption === 'condense') {\n // in condense mode, remove the whitespace node if it contains\n // line break, otherwise condense to a single space\n text = lineBreakRE.test(text) ? '' : ' ';\n }\n else {\n text = ' ';\n }\n }\n else {\n text = preserveWhitespace ? ' ' : '';\n }\n if (text) {\n if (!inPre && whitespaceOption === 'condense') {\n // condense consecutive whitespaces into single space\n text = text.replace(whitespaceRE, ' ');\n }\n var res = void 0;\n var child = void 0;\n if (!inVPre && text !== ' ' && (res = parseText(text, delimiters))) {\n child = {\n type: 2,\n expression: res.expression,\n tokens: res.tokens,\n text: text\n };\n }\n else if (text !== ' ' ||\n !children.length ||\n children[children.length - 1].text !== ' ') {\n child = {\n type: 3,\n text: text\n };\n }\n if (child) {\n if (options.outputSourceRange) {\n child.start = start;\n child.end = end;\n }\n children.push(child);\n }\n }\n },\n comment: function (text, start, end) {\n // adding anything as a sibling to the root node is forbidden\n // comments should still be allowed, but ignored\n if (currentParent) {\n var child = {\n type: 3,\n text: text,\n isComment: true\n };\n if (options.outputSourceRange) {\n child.start = start;\n child.end = end;\n }\n currentParent.children.push(child);\n }\n }\n });\n return root;\n }\n function processPre(el) {\n if (getAndRemoveAttr(el, 'v-pre') != null) {\n el.pre = true;\n }\n }\n function processRawAttrs(el) {\n var list = el.attrsList;\n var len = list.length;\n if (len) {\n var attrs = (el.attrs = new Array(len));\n for (var i = 0; i < len; i++) {\n attrs[i] = {\n name: list[i].name,\n value: JSON.stringify(list[i].value)\n };\n if (list[i].start != null) {\n attrs[i].start = list[i].start;\n attrs[i].end = list[i].end;\n }\n }\n }\n else if (!el.pre) {\n // non root node in pre blocks with no attributes\n el.plain = true;\n }\n }\n function processElement(element, options) {\n processKey(element);\n // determine whether this is a plain element after\n // removing structural attributes\n element.plain =\n !element.key && !element.scopedSlots && !element.attrsList.length;\n processRef(element);\n processSlotContent(element);\n processSlotOutlet(element);\n processComponent(element);\n for (var i = 0; i < transforms.length; i++) {\n element = transforms[i](element, options) || element;\n }\n processAttrs(element);\n return element;\n }\n function processKey(el) {\n var exp = getBindingAttr(el, 'key');\n if (exp) {\n {\n if (el.tag === 'template') {\n warn(\"<template> cannot be keyed. Place the key on real elements instead.\", getRawBindingAttr(el, 'key'));\n }\n if (el.for) {\n var iterator = el.iterator2 || el.iterator1;\n var parent_1 = el.parent;\n if (iterator &&\n iterator === exp &&\n parent_1 &&\n parent_1.tag === 'transition-group') {\n warn(\"Do not use v-for index as key on <transition-group> children, \" +\n \"this is the same as not using keys.\", getRawBindingAttr(el, 'key'), true /* tip */);\n }\n }\n }\n el.key = exp;\n }\n }\n function processRef(el) {\n var ref = getBindingAttr(el, 'ref');\n if (ref) {\n el.ref = ref;\n el.refInFor = checkInFor(el);\n }\n }\n function processFor(el) {\n var exp;\n if ((exp = getAndRemoveAttr(el, 'v-for'))) {\n var res = parseFor(exp);\n if (res) {\n extend(el, res);\n }\n else {\n warn(\"Invalid v-for expression: \".concat(exp), el.rawAttrsMap['v-for']);\n }\n }\n }\n function parseFor(exp) {\n var inMatch = exp.match(forAliasRE);\n if (!inMatch)\n return;\n var res = {};\n res.for = inMatch[2].trim();\n var alias = inMatch[1].trim().replace(stripParensRE, '');\n var iteratorMatch = alias.match(forIteratorRE);\n if (iteratorMatch) {\n res.alias = alias.replace(forIteratorRE, '').trim();\n res.iterator1 = iteratorMatch[1].trim();\n if (iteratorMatch[2]) {\n res.iterator2 = iteratorMatch[2].trim();\n }\n }\n else {\n res.alias = alias;\n }\n return res;\n }\n function processIf(el) {\n var exp = getAndRemoveAttr(el, 'v-if');\n if (exp) {\n el.if = exp;\n addIfCondition(el, {\n exp: exp,\n block: el\n });\n }\n else {\n if (getAndRemoveAttr(el, 'v-else') != null) {\n el.else = true;\n }\n var elseif = getAndRemoveAttr(el, 'v-else-if');\n if (elseif) {\n el.elseif = elseif;\n }\n }\n }\n function processIfConditions(el, parent) {\n var prev = findPrevElement(parent.children);\n if (prev && prev.if) {\n addIfCondition(prev, {\n exp: el.elseif,\n block: el\n });\n }\n else {\n warn(\"v-\".concat(el.elseif ? 'else-if=\"' + el.elseif + '\"' : 'else', \" \") +\n \"used on element <\".concat(el.tag, \"> without corresponding v-if.\"), el.rawAttrsMap[el.elseif ? 'v-else-if' : 'v-else']);\n }\n }\n function findPrevElement(children) {\n var i = children.length;\n while (i--) {\n if (children[i].type === 1) {\n return children[i];\n }\n else {\n if (children[i].text !== ' ') {\n warn(\"text \\\"\".concat(children[i].text.trim(), \"\\\" between v-if and v-else(-if) \") +\n \"will be ignored.\", children[i]);\n }\n children.pop();\n }\n }\n }\n function addIfCondition(el, condition) {\n if (!el.ifConditions) {\n el.ifConditions = [];\n }\n el.ifConditions.push(condition);\n }\n function processOnce(el) {\n var once = getAndRemoveAttr(el, 'v-once');\n if (once != null) {\n el.once = true;\n }\n }\n // handle content being passed to a component as slot,\n // e.g. <template slot=\"xxx\">, <div slot-scope=\"xxx\">\n function processSlotContent(el) {\n var slotScope;\n if (el.tag === 'template') {\n slotScope = getAndRemoveAttr(el, 'scope');\n /* istanbul ignore if */\n if (slotScope) {\n warn(\"the \\\"scope\\\" attribute for scoped slots have been deprecated and \" +\n \"replaced by \\\"slot-scope\\\" since 2.5. The new \\\"slot-scope\\\" attribute \" +\n \"can also be used on plain elements in addition to <template> to \" +\n \"denote scoped slots.\", el.rawAttrsMap['scope'], true);\n }\n el.slotScope = slotScope || getAndRemoveAttr(el, 'slot-scope');\n }\n else if ((slotScope = getAndRemoveAttr(el, 'slot-scope'))) {\n /* istanbul ignore if */\n if (el.attrsMap['v-for']) {\n warn(\"Ambiguous combined usage of slot-scope and v-for on <\".concat(el.tag, \"> \") +\n \"(v-for takes higher priority). Use a wrapper <template> for the \" +\n \"scoped slot to make it clearer.\", el.rawAttrsMap['slot-scope'], true);\n }\n el.slotScope = slotScope;\n }\n // slot=\"xxx\"\n var slotTarget = getBindingAttr(el, 'slot');\n if (slotTarget) {\n el.slotTarget = slotTarget === '\"\"' ? '\"default\"' : slotTarget;\n el.slotTargetDynamic = !!(el.attrsMap[':slot'] || el.attrsMap['v-bind:slot']);\n // preserve slot as an attribute for native shadow DOM compat\n // only for non-scoped slots.\n if (el.tag !== 'template' && !el.slotScope) {\n addAttr(el, 'slot', slotTarget, getRawBindingAttr(el, 'slot'));\n }\n }\n // 2.6 v-slot syntax\n {\n if (el.tag === 'template') {\n // v-slot on <template>\n var slotBinding = getAndRemoveAttrByRegex(el, slotRE);\n if (slotBinding) {\n {\n if (el.slotTarget || el.slotScope) {\n warn(\"Unexpected mixed usage of different slot syntaxes.\", el);\n }\n if (el.parent && !maybeComponent(el.parent)) {\n warn(\"<template v-slot> can only appear at the root level inside \" +\n \"the receiving component\", el);\n }\n }\n var _a = getSlotName(slotBinding), name_2 = _a.name, dynamic = _a.dynamic;\n el.slotTarget = name_2;\n el.slotTargetDynamic = dynamic;\n el.slotScope = slotBinding.value || emptySlotScopeToken; // force it into a scoped slot for perf\n }\n }\n else {\n // v-slot on component, denotes default slot\n var slotBinding = getAndRemoveAttrByRegex(el, slotRE);\n if (slotBinding) {\n {\n if (!maybeComponent(el)) {\n warn(\"v-slot can only be used on components or <template>.\", slotBinding);\n }\n if (el.slotScope || el.slotTarget) {\n warn(\"Unexpected mixed usage of different slot syntaxes.\", el);\n }\n if (el.scopedSlots) {\n warn(\"To avoid scope ambiguity, the default slot should also use \" +\n \"<template> syntax when there are other named slots.\", slotBinding);\n }\n }\n // add the component's children to its default slot\n var slots = el.scopedSlots || (el.scopedSlots = {});\n var _b = getSlotName(slotBinding), name_3 = _b.name, dynamic = _b.dynamic;\n var slotContainer_1 = (slots[name_3] = createASTElement('template', [], el));\n slotContainer_1.slotTarget = name_3;\n slotContainer_1.slotTargetDynamic = dynamic;\n slotContainer_1.children = el.children.filter(function (c) {\n if (!c.slotScope) {\n c.parent = slotContainer_1;\n return true;\n }\n });\n slotContainer_1.slotScope = slotBinding.value || emptySlotScopeToken;\n // remove children as they are returned from scopedSlots now\n el.children = [];\n // mark el non-plain so data gets generated\n el.plain = false;\n }\n }\n }\n }\n function getSlotName(binding) {\n var name = binding.name.replace(slotRE, '');\n if (!name) {\n if (binding.name[0] !== '#') {\n name = 'default';\n }\n else {\n warn(\"v-slot shorthand syntax requires a slot name.\", binding);\n }\n }\n return dynamicArgRE.test(name)\n ? // dynamic [name]\n { name: name.slice(1, -1), dynamic: true }\n : // static name\n { name: \"\\\"\".concat(name, \"\\\"\"), dynamic: false };\n }\n // handle <slot/> outlets\n function processSlotOutlet(el) {\n if (el.tag === 'slot') {\n el.slotName = getBindingAttr(el, 'name');\n if (el.key) {\n warn(\"`key` does not work on <slot> because slots are abstract outlets \" +\n \"and can possibly expand into multiple elements. \" +\n \"Use the key on a wrapping element instead.\", getRawBindingAttr(el, 'key'));\n }\n }\n }\n function processComponent(el) {\n var binding;\n if ((binding = getBindingAttr(el, 'is'))) {\n el.component = binding;\n }\n if (getAndRemoveAttr(el, 'inline-template') != null) {\n el.inlineTemplate = true;\n }\n }\n function processAttrs(el) {\n var list = el.attrsList;\n var i, l, name, rawName, value, modifiers, syncGen, isDynamic;\n for (i = 0, l = list.length; i < l; i++) {\n name = rawName = list[i].name;\n value = list[i].value;\n if (dirRE.test(name)) {\n // mark element as dynamic\n el.hasBindings = true;\n // modifiers\n modifiers = parseModifiers(name.replace(dirRE, ''));\n // support .foo shorthand syntax for the .prop modifier\n if (modifiers) {\n name = name.replace(modifierRE, '');\n }\n if (bindRE.test(name)) {\n // v-bind\n name = name.replace(bindRE, '');\n value = parseFilters(value);\n isDynamic = dynamicArgRE.test(name);\n if (isDynamic) {\n name = name.slice(1, -1);\n }\n if (value.trim().length === 0) {\n warn(\"The value for a v-bind expression cannot be empty. Found in \\\"v-bind:\".concat(name, \"\\\"\"));\n }\n if (modifiers) {\n if (modifiers.prop && !isDynamic) {\n name = camelize(name);\n if (name === 'innerHtml')\n name = 'innerHTML';\n }\n if (modifiers.camel && !isDynamic) {\n name = camelize(name);\n }\n if (modifiers.sync) {\n syncGen = genAssignmentCode(value, \"$event\");\n if (!isDynamic) {\n addHandler(el, \"update:\".concat(camelize(name)), syncGen, null, false, warn, list[i]);\n if (hyphenate(name) !== camelize(name)) {\n addHandler(el, \"update:\".concat(hyphenate(name)), syncGen, null, false, warn, list[i]);\n }\n }\n else {\n // handler w/ dynamic event name\n addHandler(el, \"\\\"update:\\\"+(\".concat(name, \")\"), syncGen, null, false, warn, list[i], true // dynamic\n );\n }\n }\n }\n if ((modifiers && modifiers.prop) ||\n (!el.component && platformMustUseProp(el.tag, el.attrsMap.type, name))) {\n addProp(el, name, value, list[i], isDynamic);\n }\n else {\n addAttr(el, name, value, list[i], isDynamic);\n }\n }\n else if (onRE.test(name)) {\n // v-on\n name = name.replace(onRE, '');\n isDynamic = dynamicArgRE.test(name);\n if (isDynamic) {\n name = name.slice(1, -1);\n }\n addHandler(el, name, value, modifiers, false, warn, list[i], isDynamic);\n }\n else {\n // normal directives\n name = name.replace(dirRE, '');\n // parse arg\n var argMatch = name.match(argRE);\n var arg = argMatch && argMatch[1];\n isDynamic = false;\n if (arg) {\n name = name.slice(0, -(arg.length + 1));\n if (dynamicArgRE.test(arg)) {\n arg = arg.slice(1, -1);\n isDynamic = true;\n }\n }\n addDirective(el, name, rawName, value, arg, isDynamic, modifiers, list[i]);\n if (name === 'model') {\n checkForAliasModel(el, value);\n }\n }\n }\n else {\n // literal attribute\n {\n var res = parseText(value, delimiters);\n if (res) {\n warn(\"\".concat(name, \"=\\\"\").concat(value, \"\\\": \") +\n 'Interpolation inside attributes has been removed. ' +\n 'Use v-bind or the colon shorthand instead. For example, ' +\n 'instead of <div id=\"{{ val }}\">, use <div :id=\"val\">.', list[i]);\n }\n }\n addAttr(el, name, JSON.stringify(value), list[i]);\n // #6887 firefox doesn't update muted state if set via attribute\n // even immediately after element creation\n if (!el.component &&\n name === 'muted' &&\n platformMustUseProp(el.tag, el.attrsMap.type, name)) {\n addProp(el, name, 'true', list[i]);\n }\n }\n }\n }\n function checkInFor(el) {\n var parent = el;\n while (parent) {\n if (parent.for !== undefined) {\n return true;\n }\n parent = parent.parent;\n }\n return false;\n }\n function parseModifiers(name) {\n var match = name.match(modifierRE);\n if (match) {\n var ret_1 = {};\n match.forEach(function (m) {\n ret_1[m.slice(1)] = true;\n });\n return ret_1;\n }\n }\n function makeAttrsMap(attrs) {\n var map = {};\n for (var i = 0, l = attrs.length; i < l; i++) {\n if (map[attrs[i].name] && !isIE && !isEdge) {\n warn('duplicate attribute: ' + attrs[i].name, attrs[i]);\n }\n map[attrs[i].name] = attrs[i].value;\n }\n return map;\n }\n // for script (e.g. type=\"x/template\") or style, do not decode content\n function isTextTag(el) {\n return el.tag === 'script' || el.tag === 'style';\n }\n function isForbiddenTag(el) {\n return (el.tag === 'style' ||\n (el.tag === 'script' &&\n (!el.attrsMap.type || el.attrsMap.type === 'text/javascript')));\n }\n var ieNSBug = /^xmlns:NS\\d+/;\n var ieNSPrefix = /^NS\\d+:/;\n /* istanbul ignore next */\n function guardIESVGBug(attrs) {\n var res = [];\n for (var i = 0; i < attrs.length; i++) {\n var attr = attrs[i];\n if (!ieNSBug.test(attr.name)) {\n attr.name = attr.name.replace(ieNSPrefix, '');\n res.push(attr);\n }\n }\n return res;\n }\n function checkForAliasModel(el, value) {\n var _el = el;\n while (_el) {\n if (_el.for && _el.alias === value) {\n warn(\"<\".concat(el.tag, \" v-model=\\\"\").concat(value, \"\\\">: \") +\n \"You are binding v-model directly to a v-for iteration alias. \" +\n \"This will not be able to modify the v-for source array because \" +\n \"writing to the alias is like modifying a function local variable. \" +\n \"Consider using an array of objects and use v-model on an object property instead.\", el.rawAttrsMap['v-model']);\n }\n _el = _el.parent;\n }\n }\n\n /**\n * Expand input[v-model] with dynamic type bindings into v-if-else chains\n * Turn this:\n * <input v-model=\"data[type]\" :type=\"type\">\n * into this:\n * <input v-if=\"type === 'checkbox'\" type=\"checkbox\" v-model=\"data[type]\">\n * <input v-else-if=\"type === 'radio'\" type=\"radio\" v-model=\"data[type]\">\n * <input v-else :type=\"type\" v-model=\"data[type]\">\n */\n function preTransformNode(el, options) {\n if (el.tag === 'input') {\n var map = el.attrsMap;\n if (!map['v-model']) {\n return;\n }\n var typeBinding = void 0;\n if (map[':type'] || map['v-bind:type']) {\n typeBinding = getBindingAttr(el, 'type');\n }\n if (!map.type && !typeBinding && map['v-bind']) {\n typeBinding = \"(\".concat(map['v-bind'], \").type\");\n }\n if (typeBinding) {\n var ifCondition = getAndRemoveAttr(el, 'v-if', true);\n var ifConditionExtra = ifCondition ? \"&&(\".concat(ifCondition, \")\") : \"\";\n var hasElse = getAndRemoveAttr(el, 'v-else', true) != null;\n var elseIfCondition = getAndRemoveAttr(el, 'v-else-if', true);\n // 1. checkbox\n var branch0 = cloneASTElement(el);\n // process for on the main node\n processFor(branch0);\n addRawAttr(branch0, 'type', 'checkbox');\n processElement(branch0, options);\n branch0.processed = true; // prevent it from double-processed\n branch0.if = \"(\".concat(typeBinding, \")==='checkbox'\") + ifConditionExtra;\n addIfCondition(branch0, {\n exp: branch0.if,\n block: branch0\n });\n // 2. add radio else-if condition\n var branch1 = cloneASTElement(el);\n getAndRemoveAttr(branch1, 'v-for', true);\n addRawAttr(branch1, 'type', 'radio');\n processElement(branch1, options);\n addIfCondition(branch0, {\n exp: \"(\".concat(typeBinding, \")==='radio'\") + ifConditionExtra,\n block: branch1\n });\n // 3. other\n var branch2 = cloneASTElement(el);\n getAndRemoveAttr(branch2, 'v-for', true);\n addRawAttr(branch2, ':type', typeBinding);\n processElement(branch2, options);\n addIfCondition(branch0, {\n exp: ifCondition,\n block: branch2\n });\n if (hasElse) {\n branch0.else = true;\n }\n else if (elseIfCondition) {\n branch0.elseif = elseIfCondition;\n }\n return branch0;\n }\n }\n }\n function cloneASTElement(el) {\n return createASTElement(el.tag, el.attrsList.slice(), el.parent);\n }\n var model = {\n preTransformNode: preTransformNode\n };\n\n var modules = [klass, style, model];\n\n function text(el, dir) {\n if (dir.value) {\n addProp(el, 'textContent', \"_s(\".concat(dir.value, \")\"), dir);\n }\n }\n\n function html(el, dir) {\n if (dir.value) {\n addProp(el, 'innerHTML', \"_s(\".concat(dir.value, \")\"), dir);\n }\n }\n\n var directives = {\n model: model$1,\n text: text,\n html: html\n };\n\n var baseOptions = {\n expectHTML: true,\n modules: modules,\n directives: directives,\n isPreTag: isPreTag,\n isUnaryTag: isUnaryTag,\n mustUseProp: mustUseProp,\n canBeLeftOpenTag: canBeLeftOpenTag,\n isReservedTag: isReservedTag,\n getTagNamespace: getTagNamespace,\n staticKeys: genStaticKeys$1(modules)\n };\n\n var isStaticKey;\n var isPlatformReservedTag;\n var genStaticKeysCached = cached(genStaticKeys);\n /**\n * Goal of the optimizer: walk the generated template AST tree\n * and detect sub-trees that are purely static, i.e. parts of\n * the DOM that never needs to change.\n *\n * Once we detect these sub-trees, we can:\n *\n * 1. Hoist them into constants, so that we no longer need to\n * create fresh nodes for them on each re-render;\n * 2. Completely skip them in the patching process.\n */\n function optimize(root, options) {\n if (!root)\n return;\n isStaticKey = genStaticKeysCached(options.staticKeys || '');\n isPlatformReservedTag = options.isReservedTag || no;\n // first pass: mark all non-static nodes.\n markStatic(root);\n // second pass: mark static roots.\n markStaticRoots(root, false);\n }\n function genStaticKeys(keys) {\n return makeMap('type,tag,attrsList,attrsMap,plain,parent,children,attrs,start,end,rawAttrsMap' +\n (keys ? ',' + keys : ''));\n }\n function markStatic(node) {\n node.static = isStatic(node);\n if (node.type === 1) {\n // do not make component slot content static. this avoids\n // 1. components not able to mutate slot nodes\n // 2. static slot content fails for hot-reloading\n if (!isPlatformReservedTag(node.tag) &&\n node.tag !== 'slot' &&\n node.attrsMap['inline-template'] == null) {\n return;\n }\n for (var i = 0, l = node.children.length; i < l; i++) {\n var child = node.children[i];\n markStatic(child);\n if (!child.static) {\n node.static = false;\n }\n }\n if (node.ifConditions) {\n for (var i = 1, l = node.ifConditions.length; i < l; i++) {\n var block = node.ifConditions[i].block;\n markStatic(block);\n if (!block.static) {\n node.static = false;\n }\n }\n }\n }\n }\n function markStaticRoots(node, isInFor) {\n if (node.type === 1) {\n if (node.static || node.once) {\n node.staticInFor = isInFor;\n }\n // For a node to qualify as a static root, it should have children that\n // are not just static text. Otherwise the cost of hoisting out will\n // outweigh the benefits and it's better off to just always render it fresh.\n if (node.static &&\n node.children.length &&\n !(node.children.length === 1 && node.children[0].type === 3)) {\n node.staticRoot = true;\n return;\n }\n else {\n node.staticRoot = false;\n }\n if (node.children) {\n for (var i = 0, l = node.children.length; i < l; i++) {\n markStaticRoots(node.children[i], isInFor || !!node.for);\n }\n }\n if (node.ifConditions) {\n for (var i = 1, l = node.ifConditions.length; i < l; i++) {\n markStaticRoots(node.ifConditions[i].block, isInFor);\n }\n }\n }\n }\n function isStatic(node) {\n if (node.type === 2) {\n // expression\n return false;\n }\n if (node.type === 3) {\n // text\n return true;\n }\n return !!(node.pre ||\n (!node.hasBindings && // no dynamic bindings\n !node.if &&\n !node.for && // not v-if or v-for or v-else\n !isBuiltInTag(node.tag) && // not a built-in\n isPlatformReservedTag(node.tag) && // not a component\n !isDirectChildOfTemplateFor(node) &&\n Object.keys(node).every(isStaticKey)));\n }\n function isDirectChildOfTemplateFor(node) {\n while (node.parent) {\n node = node.parent;\n if (node.tag !== 'template') {\n return false;\n }\n if (node.for) {\n return true;\n }\n }\n return false;\n }\n\n var fnExpRE = /^([\\w$_]+|\\([^)]*?\\))\\s*=>|^function(?:\\s+[\\w$]+)?\\s*\\(/;\n var fnInvokeRE = /\\([^)]*?\\);*$/;\n var simplePathRE = /^[A-Za-z_$][\\w$]*(?:\\.[A-Za-z_$][\\w$]*|\\['[^']*?']|\\[\"[^\"]*?\"]|\\[\\d+]|\\[[A-Za-z_$][\\w$]*])*$/;\n // KeyboardEvent.keyCode aliases\n var keyCodes = {\n esc: 27,\n tab: 9,\n enter: 13,\n space: 32,\n up: 38,\n left: 37,\n right: 39,\n down: 40,\n delete: [8, 46]\n };\n // KeyboardEvent.key aliases\n var keyNames = {\n // #7880: IE11 and Edge use `Esc` for Escape key name.\n esc: ['Esc', 'Escape'],\n tab: 'Tab',\n enter: 'Enter',\n // #9112: IE11 uses `Spacebar` for Space key name.\n space: [' ', 'Spacebar'],\n // #7806: IE11 uses key names without `Arrow` prefix for arrow keys.\n up: ['Up', 'ArrowUp'],\n left: ['Left', 'ArrowLeft'],\n right: ['Right', 'ArrowRight'],\n down: ['Down', 'ArrowDown'],\n // #9112: IE11 uses `Del` for Delete key name.\n delete: ['Backspace', 'Delete', 'Del']\n };\n // #4868: modifiers that prevent the execution of the listener\n // need to explicitly return null so that we can determine whether to remove\n // the listener for .once\n var genGuard = function (condition) { return \"if(\".concat(condition, \")return null;\"); };\n var modifierCode = {\n stop: '$event.stopPropagation();',\n prevent: '$event.preventDefault();',\n self: genGuard(\"$event.target !== $event.currentTarget\"),\n ctrl: genGuard(\"!$event.ctrlKey\"),\n shift: genGuard(\"!$event.shiftKey\"),\n alt: genGuard(\"!$event.altKey\"),\n meta: genGuard(\"!$event.metaKey\"),\n left: genGuard(\"'button' in $event && $event.button !== 0\"),\n middle: genGuard(\"'button' in $event && $event.button !== 1\"),\n right: genGuard(\"'button' in $event && $event.button !== 2\")\n };\n function genHandlers(events, isNative) {\n var prefix = isNative ? 'nativeOn:' : 'on:';\n var staticHandlers = \"\";\n var dynamicHandlers = \"\";\n for (var name_1 in events) {\n var handlerCode = genHandler(events[name_1]);\n //@ts-expect-error\n if (events[name_1] && events[name_1].dynamic) {\n dynamicHandlers += \"\".concat(name_1, \",\").concat(handlerCode, \",\");\n }\n else {\n staticHandlers += \"\\\"\".concat(name_1, \"\\\":\").concat(handlerCode, \",\");\n }\n }\n staticHandlers = \"{\".concat(staticHandlers.slice(0, -1), \"}\");\n if (dynamicHandlers) {\n return prefix + \"_d(\".concat(staticHandlers, \",[\").concat(dynamicHandlers.slice(0, -1), \"])\");\n }\n else {\n return prefix + staticHandlers;\n }\n }\n function genHandler(handler) {\n if (!handler) {\n return 'function(){}';\n }\n if (Array.isArray(handler)) {\n return \"[\".concat(handler.map(function (handler) { return genHandler(handler); }).join(','), \"]\");\n }\n var isMethodPath = simplePathRE.test(handler.value);\n var isFunctionExpression = fnExpRE.test(handler.value);\n var isFunctionInvocation = simplePathRE.test(handler.value.replace(fnInvokeRE, ''));\n if (!handler.modifiers) {\n if (isMethodPath || isFunctionExpression) {\n return handler.value;\n }\n return \"function($event){\".concat(isFunctionInvocation ? \"return \".concat(handler.value) : handler.value, \"}\"); // inline statement\n }\n else {\n var code = '';\n var genModifierCode = '';\n var keys = [];\n var _loop_1 = function (key) {\n if (modifierCode[key]) {\n genModifierCode += modifierCode[key];\n // left/right\n if (keyCodes[key]) {\n keys.push(key);\n }\n }\n else if (key === 'exact') {\n var modifiers_1 = handler.modifiers;\n genModifierCode += genGuard(['ctrl', 'shift', 'alt', 'meta']\n .filter(function (keyModifier) { return !modifiers_1[keyModifier]; })\n .map(function (keyModifier) { return \"$event.\".concat(keyModifier, \"Key\"); })\n .join('||'));\n }\n else {\n keys.push(key);\n }\n };\n for (var key in handler.modifiers) {\n _loop_1(key);\n }\n if (keys.length) {\n code += genKeyFilter(keys);\n }\n // Make sure modifiers like prevent and stop get executed after key filtering\n if (genModifierCode) {\n code += genModifierCode;\n }\n var handlerCode = isMethodPath\n ? \"return \".concat(handler.value, \".apply(null, arguments)\")\n : isFunctionExpression\n ? \"return (\".concat(handler.value, \").apply(null, arguments)\")\n : isFunctionInvocation\n ? \"return \".concat(handler.value)\n : handler.value;\n return \"function($event){\".concat(code).concat(handlerCode, \"}\");\n }\n }\n function genKeyFilter(keys) {\n return (\n // make sure the key filters only apply to KeyboardEvents\n // #9441: can't use 'keyCode' in $event because Chrome autofill fires fake\n // key events that do not have keyCode property...\n \"if(!$event.type.indexOf('key')&&\" +\n \"\".concat(keys.map(genFilterCode).join('&&'), \")return null;\"));\n }\n function genFilterCode(key) {\n var keyVal = parseInt(key, 10);\n if (keyVal) {\n return \"$event.keyCode!==\".concat(keyVal);\n }\n var keyCode = keyCodes[key];\n var keyName = keyNames[key];\n return (\"_k($event.keyCode,\" +\n \"\".concat(JSON.stringify(key), \",\") +\n \"\".concat(JSON.stringify(keyCode), \",\") +\n \"$event.key,\" +\n \"\".concat(JSON.stringify(keyName)) +\n \")\");\n }\n\n function on(el, dir) {\n if (dir.modifiers) {\n warn$2(\"v-on without argument does not support modifiers.\");\n }\n el.wrapListeners = function (code) { return \"_g(\".concat(code, \",\").concat(dir.value, \")\"); };\n }\n\n function bind(el, dir) {\n el.wrapData = function (code) {\n return \"_b(\".concat(code, \",'\").concat(el.tag, \"',\").concat(dir.value, \",\").concat(dir.modifiers && dir.modifiers.prop ? 'true' : 'false').concat(dir.modifiers && dir.modifiers.sync ? ',true' : '', \")\");\n };\n }\n\n var baseDirectives = {\n on: on,\n bind: bind,\n cloak: noop\n };\n\n var CodegenState = /** @class */ (function () {\n function CodegenState(options) {\n this.options = options;\n this.warn = options.warn || baseWarn;\n this.transforms = pluckModuleFunction(options.modules, 'transformCode');\n this.dataGenFns = pluckModuleFunction(options.modules, 'genData');\n this.directives = extend(extend({}, baseDirectives), options.directives);\n var isReservedTag = options.isReservedTag || no;\n this.maybeComponent = function (el) {\n return !!el.component || !isReservedTag(el.tag);\n };\n this.onceId = 0;\n this.staticRenderFns = [];\n this.pre = false;\n }\n return CodegenState;\n }());\n function generate(ast, options) {\n var state = new CodegenState(options);\n // fix #11483, Root level <script> tags should not be rendered.\n var code = ast\n ? ast.tag === 'script'\n ? 'null'\n : genElement(ast, state)\n : '_c(\"div\")';\n return {\n render: \"with(this){return \".concat(code, \"}\"),\n staticRenderFns: state.staticRenderFns\n };\n }\n function genElement(el, state) {\n if (el.parent) {\n el.pre = el.pre || el.parent.pre;\n }\n if (el.staticRoot && !el.staticProcessed) {\n return genStatic(el, state);\n }\n else if (el.once && !el.onceProcessed) {\n return genOnce(el, state);\n }\n else if (el.for && !el.forProcessed) {\n return genFor(el, state);\n }\n else if (el.if && !el.ifProcessed) {\n return genIf(el, state);\n }\n else if (el.tag === 'template' && !el.slotTarget && !state.pre) {\n return genChildren(el, state) || 'void 0';\n }\n else if (el.tag === 'slot') {\n return genSlot(el, state);\n }\n else {\n // component or element\n var code = void 0;\n if (el.component) {\n code = genComponent(el.component, el, state);\n }\n else {\n var data = void 0;\n var maybeComponent = state.maybeComponent(el);\n if (!el.plain || (el.pre && maybeComponent)) {\n data = genData(el, state);\n }\n var tag \n // check if this is a component in <script setup>\n = void 0;\n // check if this is a component in <script setup>\n var bindings = state.options.bindings;\n if (maybeComponent && bindings && bindings.__isScriptSetup !== false) {\n tag = checkBindingType(bindings, el.tag);\n }\n if (!tag)\n tag = \"'\".concat(el.tag, \"'\");\n var children = el.inlineTemplate ? null : genChildren(el, state, true);\n code = \"_c(\".concat(tag).concat(data ? \",\".concat(data) : '' // data\n ).concat(children ? \",\".concat(children) : '' // children\n , \")\");\n }\n // module transforms\n for (var i = 0; i < state.transforms.length; i++) {\n code = state.transforms[i](el, code);\n }\n return code;\n }\n }\n function checkBindingType(bindings, key) {\n var camelName = camelize(key);\n var PascalName = capitalize(camelName);\n var checkType = function (type) {\n if (bindings[key] === type) {\n return key;\n }\n if (bindings[camelName] === type) {\n return camelName;\n }\n if (bindings[PascalName] === type) {\n return PascalName;\n }\n };\n var fromConst = checkType(\"setup-const\" /* BindingTypes.SETUP_CONST */) ||\n checkType(\"setup-reactive-const\" /* BindingTypes.SETUP_REACTIVE_CONST */);\n if (fromConst) {\n return fromConst;\n }\n var fromMaybeRef = checkType(\"setup-let\" /* BindingTypes.SETUP_LET */) ||\n checkType(\"setup-ref\" /* BindingTypes.SETUP_REF */) ||\n checkType(\"setup-maybe-ref\" /* BindingTypes.SETUP_MAYBE_REF */);\n if (fromMaybeRef) {\n return fromMaybeRef;\n }\n }\n // hoist static sub-trees out\n function genStatic(el, state) {\n el.staticProcessed = true;\n // Some elements (templates) need to behave differently inside of a v-pre\n // node. All pre nodes are static roots, so we can use this as a location to\n // wrap a state change and reset it upon exiting the pre node.\n var originalPreState = state.pre;\n if (el.pre) {\n state.pre = el.pre;\n }\n state.staticRenderFns.push(\"with(this){return \".concat(genElement(el, state), \"}\"));\n state.pre = originalPreState;\n return \"_m(\".concat(state.staticRenderFns.length - 1).concat(el.staticInFor ? ',true' : '', \")\");\n }\n // v-once\n function genOnce(el, state) {\n el.onceProcessed = true;\n if (el.if && !el.ifProcessed) {\n return genIf(el, state);\n }\n else if (el.staticInFor) {\n var key = '';\n var parent_1 = el.parent;\n while (parent_1) {\n if (parent_1.for) {\n key = parent_1.key;\n break;\n }\n parent_1 = parent_1.parent;\n }\n if (!key) {\n state.warn(\"v-once can only be used inside v-for that is keyed. \", el.rawAttrsMap['v-once']);\n return genElement(el, state);\n }\n return \"_o(\".concat(genElement(el, state), \",\").concat(state.onceId++, \",\").concat(key, \")\");\n }\n else {\n return genStatic(el, state);\n }\n }\n function genIf(el, state, altGen, altEmpty) {\n el.ifProcessed = true; // avoid recursion\n return genIfConditions(el.ifConditions.slice(), state, altGen, altEmpty);\n }\n function genIfConditions(conditions, state, altGen, altEmpty) {\n if (!conditions.length) {\n return altEmpty || '_e()';\n }\n var condition = conditions.shift();\n if (condition.exp) {\n return \"(\".concat(condition.exp, \")?\").concat(genTernaryExp(condition.block), \":\").concat(genIfConditions(conditions, state, altGen, altEmpty));\n }\n else {\n return \"\".concat(genTernaryExp(condition.block));\n }\n // v-if with v-once should generate code like (a)?_m(0):_m(1)\n function genTernaryExp(el) {\n return altGen\n ? altGen(el, state)\n : el.once\n ? genOnce(el, state)\n : genElement(el, state);\n }\n }\n function genFor(el, state, altGen, altHelper) {\n var exp = el.for;\n var alias = el.alias;\n var iterator1 = el.iterator1 ? \",\".concat(el.iterator1) : '';\n var iterator2 = el.iterator2 ? \",\".concat(el.iterator2) : '';\n if (state.maybeComponent(el) &&\n el.tag !== 'slot' &&\n el.tag !== 'template' &&\n !el.key) {\n state.warn(\"<\".concat(el.tag, \" v-for=\\\"\").concat(alias, \" in \").concat(exp, \"\\\">: component lists rendered with \") +\n \"v-for should have explicit keys. \" +\n \"See https://v2.vuejs.org/v2/guide/list.html#key for more info.\", el.rawAttrsMap['v-for'], true /* tip */);\n }\n el.forProcessed = true; // avoid recursion\n return (\"\".concat(altHelper || '_l', \"((\").concat(exp, \"),\") +\n \"function(\".concat(alias).concat(iterator1).concat(iterator2, \"){\") +\n \"return \".concat((altGen || genElement)(el, state)) +\n '})');\n }\n function genData(el, state) {\n var data = '{';\n // directives first.\n // directives may mutate the el's other properties before they are generated.\n var dirs = genDirectives(el, state);\n if (dirs)\n data += dirs + ',';\n // key\n if (el.key) {\n data += \"key:\".concat(el.key, \",\");\n }\n // ref\n if (el.ref) {\n data += \"ref:\".concat(el.ref, \",\");\n }\n if (el.refInFor) {\n data += \"refInFor:true,\";\n }\n // pre\n if (el.pre) {\n data += \"pre:true,\";\n }\n // record original tag name for components using \"is\" attribute\n if (el.component) {\n data += \"tag:\\\"\".concat(el.tag, \"\\\",\");\n }\n // module data generation functions\n for (var i = 0; i < state.dataGenFns.length; i++) {\n data += state.dataGenFns[i](el);\n }\n // attributes\n if (el.attrs) {\n data += \"attrs:\".concat(genProps(el.attrs), \",\");\n }\n // DOM props\n if (el.props) {\n data += \"domProps:\".concat(genProps(el.props), \",\");\n }\n // event handlers\n if (el.events) {\n data += \"\".concat(genHandlers(el.events, false), \",\");\n }\n if (el.nativeEvents) {\n data += \"\".concat(genHandlers(el.nativeEvents, true), \",\");\n }\n // slot target\n // only for non-scoped slots\n if (el.slotTarget && !el.slotScope) {\n data += \"slot:\".concat(el.slotTarget, \",\");\n }\n // scoped slots\n if (el.scopedSlots) {\n data += \"\".concat(genScopedSlots(el, el.scopedSlots, state), \",\");\n }\n // component v-model\n if (el.model) {\n data += \"model:{value:\".concat(el.model.value, \",callback:\").concat(el.model.callback, \",expression:\").concat(el.model.expression, \"},\");\n }\n // inline-template\n if (el.inlineTemplate) {\n var inlineTemplate = genInlineTemplate(el, state);\n if (inlineTemplate) {\n data += \"\".concat(inlineTemplate, \",\");\n }\n }\n data = data.replace(/,$/, '') + '}';\n // v-bind dynamic argument wrap\n // v-bind with dynamic arguments must be applied using the same v-bind object\n // merge helper so that class/style/mustUseProp attrs are handled correctly.\n if (el.dynamicAttrs) {\n data = \"_b(\".concat(data, \",\\\"\").concat(el.tag, \"\\\",\").concat(genProps(el.dynamicAttrs), \")\");\n }\n // v-bind data wrap\n if (el.wrapData) {\n data = el.wrapData(data);\n }\n // v-on data wrap\n if (el.wrapListeners) {\n data = el.wrapListeners(data);\n }\n return data;\n }\n function genDirectives(el, state) {\n var dirs = el.directives;\n if (!dirs)\n return;\n var res = 'directives:[';\n var hasRuntime = false;\n var i, l, dir, needRuntime;\n for (i = 0, l = dirs.length; i < l; i++) {\n dir = dirs[i];\n needRuntime = true;\n var gen = state.directives[dir.name];\n if (gen) {\n // compile-time directive that manipulates AST.\n // returns true if it also needs a runtime counterpart.\n needRuntime = !!gen(el, dir, state.warn);\n }\n if (needRuntime) {\n hasRuntime = true;\n res += \"{name:\\\"\".concat(dir.name, \"\\\",rawName:\\\"\").concat(dir.rawName, \"\\\"\").concat(dir.value\n ? \",value:(\".concat(dir.value, \"),expression:\").concat(JSON.stringify(dir.value))\n : '').concat(dir.arg ? \",arg:\".concat(dir.isDynamicArg ? dir.arg : \"\\\"\".concat(dir.arg, \"\\\"\")) : '').concat(dir.modifiers ? \",modifiers:\".concat(JSON.stringify(dir.modifiers)) : '', \"},\");\n }\n }\n if (hasRuntime) {\n return res.slice(0, -1) + ']';\n }\n }\n function genInlineTemplate(el, state) {\n var ast = el.children[0];\n if ((el.children.length !== 1 || ast.type !== 1)) {\n state.warn('Inline-template components must have exactly one child element.', { start: el.start });\n }\n if (ast && ast.type === 1) {\n var inlineRenderFns = generate(ast, state.options);\n return \"inlineTemplate:{render:function(){\".concat(inlineRenderFns.render, \"},staticRenderFns:[\").concat(inlineRenderFns.staticRenderFns\n .map(function (code) { return \"function(){\".concat(code, \"}\"); })\n .join(','), \"]}\");\n }\n }\n function genScopedSlots(el, slots, state) {\n // by default scoped slots are considered \"stable\", this allows child\n // components with only scoped slots to skip forced updates from parent.\n // but in some cases we have to bail-out of this optimization\n // for example if the slot contains dynamic names, has v-if or v-for on them...\n var needsForceUpdate = el.for ||\n Object.keys(slots).some(function (key) {\n var slot = slots[key];\n return (slot.slotTargetDynamic || slot.if || slot.for || containsSlotChild(slot) // is passing down slot from parent which may be dynamic\n );\n });\n // #9534: if a component with scoped slots is inside a conditional branch,\n // it's possible for the same component to be reused but with different\n // compiled slot content. To avoid that, we generate a unique key based on\n // the generated code of all the slot contents.\n var needsKey = !!el.if;\n // OR when it is inside another scoped slot or v-for (the reactivity may be\n // disconnected due to the intermediate scope variable)\n // #9438, #9506\n // TODO: this can be further optimized by properly analyzing in-scope bindings\n // and skip force updating ones that do not actually use scope variables.\n if (!needsForceUpdate) {\n var parent_2 = el.parent;\n while (parent_2) {\n if ((parent_2.slotScope && parent_2.slotScope !== emptySlotScopeToken) ||\n parent_2.for) {\n needsForceUpdate = true;\n break;\n }\n if (parent_2.if) {\n needsKey = true;\n }\n parent_2 = parent_2.parent;\n }\n }\n var generatedSlots = Object.keys(slots)\n .map(function (key) { return genScopedSlot(slots[key], state); })\n .join(',');\n return \"scopedSlots:_u([\".concat(generatedSlots, \"]\").concat(needsForceUpdate ? \",null,true\" : \"\").concat(!needsForceUpdate && needsKey ? \",null,false,\".concat(hash(generatedSlots)) : \"\", \")\");\n }\n function hash(str) {\n var hash = 5381;\n var i = str.length;\n while (i) {\n hash = (hash * 33) ^ str.charCodeAt(--i);\n }\n return hash >>> 0;\n }\n function containsSlotChild(el) {\n if (el.type === 1) {\n if (el.tag === 'slot') {\n return true;\n }\n return el.children.some(containsSlotChild);\n }\n return false;\n }\n function genScopedSlot(el, state) {\n var isLegacySyntax = el.attrsMap['slot-scope'];\n if (el.if && !el.ifProcessed && !isLegacySyntax) {\n return genIf(el, state, genScopedSlot, \"null\");\n }\n if (el.for && !el.forProcessed) {\n return genFor(el, state, genScopedSlot);\n }\n var slotScope = el.slotScope === emptySlotScopeToken ? \"\" : String(el.slotScope);\n var fn = \"function(\".concat(slotScope, \"){\") +\n \"return \".concat(el.tag === 'template'\n ? el.if && isLegacySyntax\n ? \"(\".concat(el.if, \")?\").concat(genChildren(el, state) || 'undefined', \":undefined\")\n : genChildren(el, state) || 'undefined'\n : genElement(el, state), \"}\");\n // reverse proxy v-slot without scope on this.$slots\n var reverseProxy = slotScope ? \"\" : \",proxy:true\";\n return \"{key:\".concat(el.slotTarget || \"\\\"default\\\"\", \",fn:\").concat(fn).concat(reverseProxy, \"}\");\n }\n function genChildren(el, state, checkSkip, altGenElement, altGenNode) {\n var children = el.children;\n if (children.length) {\n var el_1 = children[0];\n // optimize single v-for\n if (children.length === 1 &&\n el_1.for &&\n el_1.tag !== 'template' &&\n el_1.tag !== 'slot') {\n var normalizationType_1 = checkSkip\n ? state.maybeComponent(el_1)\n ? \",1\"\n : \",0\"\n : \"\";\n return \"\".concat((altGenElement || genElement)(el_1, state)).concat(normalizationType_1);\n }\n var normalizationType = checkSkip\n ? getNormalizationType(children, state.maybeComponent)\n : 0;\n var gen_1 = altGenNode || genNode;\n return \"[\".concat(children.map(function (c) { return gen_1(c, state); }).join(','), \"]\").concat(normalizationType ? \",\".concat(normalizationType) : '');\n }\n }\n // determine the normalization needed for the children array.\n // 0: no normalization needed\n // 1: simple normalization needed (possible 1-level deep nested array)\n // 2: full normalization needed\n function getNormalizationType(children, maybeComponent) {\n var res = 0;\n for (var i = 0; i < children.length; i++) {\n var el = children[i];\n if (el.type !== 1) {\n continue;\n }\n if (needsNormalization(el) ||\n (el.ifConditions &&\n el.ifConditions.some(function (c) { return needsNormalization(c.block); }))) {\n res = 2;\n break;\n }\n if (maybeComponent(el) ||\n (el.ifConditions && el.ifConditions.some(function (c) { return maybeComponent(c.block); }))) {\n res = 1;\n }\n }\n return res;\n }\n function needsNormalization(el) {\n return el.for !== undefined || el.tag === 'template' || el.tag === 'slot';\n }\n function genNode(node, state) {\n if (node.type === 1) {\n return genElement(node, state);\n }\n else if (node.type === 3 && node.isComment) {\n return genComment(node);\n }\n else {\n return genText(node);\n }\n }\n function genText(text) {\n return \"_v(\".concat(text.type === 2\n ? text.expression // no need for () because already wrapped in _s()\n : transformSpecialNewlines(JSON.stringify(text.text)), \")\");\n }\n function genComment(comment) {\n return \"_e(\".concat(JSON.stringify(comment.text), \")\");\n }\n function genSlot(el, state) {\n var slotName = el.slotName || '\"default\"';\n var children = genChildren(el, state);\n var res = \"_t(\".concat(slotName).concat(children ? \",function(){return \".concat(children, \"}\") : '');\n var attrs = el.attrs || el.dynamicAttrs\n ? genProps((el.attrs || []).concat(el.dynamicAttrs || []).map(function (attr) { return ({\n // slot props are camelized\n name: camelize(attr.name),\n value: attr.value,\n dynamic: attr.dynamic\n }); }))\n : null;\n var bind = el.attrsMap['v-bind'];\n if ((attrs || bind) && !children) {\n res += \",null\";\n }\n if (attrs) {\n res += \",\".concat(attrs);\n }\n if (bind) {\n res += \"\".concat(attrs ? '' : ',null', \",\").concat(bind);\n }\n return res + ')';\n }\n // componentName is el.component, take it as argument to shun flow's pessimistic refinement\n function genComponent(componentName, el, state) {\n var children = el.inlineTemplate ? null : genChildren(el, state, true);\n return \"_c(\".concat(componentName, \",\").concat(genData(el, state)).concat(children ? \",\".concat(children) : '', \")\");\n }\n function genProps(props) {\n var staticProps = \"\";\n var dynamicProps = \"\";\n for (var i = 0; i < props.length; i++) {\n var prop = props[i];\n var value = transformSpecialNewlines(prop.value);\n if (prop.dynamic) {\n dynamicProps += \"\".concat(prop.name, \",\").concat(value, \",\");\n }\n else {\n staticProps += \"\\\"\".concat(prop.name, \"\\\":\").concat(value, \",\");\n }\n }\n staticProps = \"{\".concat(staticProps.slice(0, -1), \"}\");\n if (dynamicProps) {\n return \"_d(\".concat(staticProps, \",[\").concat(dynamicProps.slice(0, -1), \"])\");\n }\n else {\n return staticProps;\n }\n }\n // #3895, #4268\n function transformSpecialNewlines(text) {\n return text.replace(/\\u2028/g, '\\\\u2028').replace(/\\u2029/g, '\\\\u2029');\n }\n\n // these keywords should not appear inside expressions, but operators like\n // typeof, instanceof and in are allowed\n var prohibitedKeywordRE = new RegExp('\\\\b' +\n ('do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,' +\n 'super,throw,while,yield,delete,export,import,return,switch,default,' +\n 'extends,finally,continue,debugger,function,arguments')\n .split(',')\n .join('\\\\b|\\\\b') +\n '\\\\b');\n // these unary operators should not be used as property/method names\n var unaryOperatorsRE = new RegExp('\\\\b' +\n 'delete,typeof,void'.split(',').join('\\\\s*\\\\([^\\\\)]*\\\\)|\\\\b') +\n '\\\\s*\\\\([^\\\\)]*\\\\)');\n // strip strings in expressions\n var stripStringRE = /'(?:[^'\\\\]|\\\\.)*'|\"(?:[^\"\\\\]|\\\\.)*\"|`(?:[^`\\\\]|\\\\.)*\\$\\{|\\}(?:[^`\\\\]|\\\\.)*`|`(?:[^`\\\\]|\\\\.)*`/g;\n // detect problematic expressions in a template\n function detectErrors(ast, warn) {\n if (ast) {\n checkNode(ast, warn);\n }\n }\n function checkNode(node, warn) {\n if (node.type === 1) {\n for (var name_1 in node.attrsMap) {\n if (dirRE.test(name_1)) {\n var value = node.attrsMap[name_1];\n if (value) {\n var range = node.rawAttrsMap[name_1];\n if (name_1 === 'v-for') {\n checkFor(node, \"v-for=\\\"\".concat(value, \"\\\"\"), warn, range);\n }\n else if (name_1 === 'v-slot' || name_1[0] === '#') {\n checkFunctionParameterExpression(value, \"\".concat(name_1, \"=\\\"\").concat(value, \"\\\"\"), warn, range);\n }\n else if (onRE.test(name_1)) {\n checkEvent(value, \"\".concat(name_1, \"=\\\"\").concat(value, \"\\\"\"), warn, range);\n }\n else {\n checkExpression(value, \"\".concat(name_1, \"=\\\"\").concat(value, \"\\\"\"), warn, range);\n }\n }\n }\n }\n if (node.children) {\n for (var i = 0; i < node.children.length; i++) {\n checkNode(node.children[i], warn);\n }\n }\n }\n else if (node.type === 2) {\n checkExpression(node.expression, node.text, warn, node);\n }\n }\n function checkEvent(exp, text, warn, range) {\n var stripped = exp.replace(stripStringRE, '');\n var keywordMatch = stripped.match(unaryOperatorsRE);\n if (keywordMatch && stripped.charAt(keywordMatch.index - 1) !== '$') {\n warn(\"avoid using JavaScript unary operator as property name: \" +\n \"\\\"\".concat(keywordMatch[0], \"\\\" in expression \").concat(text.trim()), range);\n }\n checkExpression(exp, text, warn, range);\n }\n function checkFor(node, text, warn, range) {\n checkExpression(node.for || '', text, warn, range);\n checkIdentifier(node.alias, 'v-for alias', text, warn, range);\n checkIdentifier(node.iterator1, 'v-for iterator', text, warn, range);\n checkIdentifier(node.iterator2, 'v-for iterator', text, warn, range);\n }\n function checkIdentifier(ident, type, text, warn, range) {\n if (typeof ident === 'string') {\n try {\n new Function(\"var \".concat(ident, \"=_\"));\n }\n catch (e) {\n warn(\"invalid \".concat(type, \" \\\"\").concat(ident, \"\\\" in expression: \").concat(text.trim()), range);\n }\n }\n }\n function checkExpression(exp, text, warn, range) {\n try {\n new Function(\"return \".concat(exp));\n }\n catch (e) {\n var keywordMatch = exp\n .replace(stripStringRE, '')\n .match(prohibitedKeywordRE);\n if (keywordMatch) {\n warn(\"avoid using JavaScript keyword as property name: \" +\n \"\\\"\".concat(keywordMatch[0], \"\\\"\\n Raw expression: \").concat(text.trim()), range);\n }\n else {\n warn(\"invalid expression: \".concat(e.message, \" in\\n\\n\") +\n \" \".concat(exp, \"\\n\\n\") +\n \" Raw expression: \".concat(text.trim(), \"\\n\"), range);\n }\n }\n }\n function checkFunctionParameterExpression(exp, text, warn, range) {\n try {\n new Function(exp, '');\n }\n catch (e) {\n warn(\"invalid function parameter expression: \".concat(e.message, \" in\\n\\n\") +\n \" \".concat(exp, \"\\n\\n\") +\n \" Raw expression: \".concat(text.trim(), \"\\n\"), range);\n }\n }\n\n var range = 2;\n function generateCodeFrame(source, start, end) {\n if (start === void 0) { start = 0; }\n if (end === void 0) { end = source.length; }\n var lines = source.split(/\\r?\\n/);\n var count = 0;\n var res = [];\n for (var i = 0; i < lines.length; i++) {\n count += lines[i].length + 1;\n if (count >= start) {\n for (var j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length)\n continue;\n res.push(\"\".concat(j + 1).concat(repeat(\" \", 3 - String(j + 1).length), \"| \").concat(lines[j]));\n var lineLength = lines[j].length;\n if (j === i) {\n // push underline\n var pad = start - (count - lineLength) + 1;\n var length_1 = end > count ? lineLength - pad : end - start;\n res.push(\" | \" + repeat(\" \", pad) + repeat(\"^\", length_1));\n }\n else if (j > i) {\n if (end > count) {\n var length_2 = Math.min(end - count, lineLength);\n res.push(\" | \" + repeat(\"^\", length_2));\n }\n count += lineLength + 1;\n }\n }\n break;\n }\n }\n return res.join('\\n');\n }\n function repeat(str, n) {\n var result = '';\n if (n > 0) {\n // eslint-disable-next-line no-constant-condition\n while (true) {\n // eslint-disable-line\n if (n & 1)\n result += str;\n n >>>= 1;\n if (n <= 0)\n break;\n str += str;\n }\n }\n return result;\n }\n\n function createFunction(code, errors) {\n try {\n return new Function(code);\n }\n catch (err) {\n errors.push({ err: err, code: code });\n return noop;\n }\n }\n function createCompileToFunctionFn(compile) {\n var cache = Object.create(null);\n return function compileToFunctions(template, options, vm) {\n options = extend({}, options);\n var warn = options.warn || warn$2;\n delete options.warn;\n /* istanbul ignore if */\n {\n // detect possible CSP restriction\n try {\n new Function('return 1');\n }\n catch (e) {\n if (e.toString().match(/unsafe-eval|CSP/)) {\n warn('It seems you are using the standalone build of Vue.js in an ' +\n 'environment with Content Security Policy that prohibits unsafe-eval. ' +\n 'The template compiler cannot work in this environment. Consider ' +\n 'relaxing the policy to allow unsafe-eval or pre-compiling your ' +\n 'templates into render functions.');\n }\n }\n }\n // check cache\n var key = options.delimiters\n ? String(options.delimiters) + template\n : template;\n if (cache[key]) {\n return cache[key];\n }\n // compile\n var compiled = compile(template, options);\n // check compilation errors/tips\n {\n if (compiled.errors && compiled.errors.length) {\n if (options.outputSourceRange) {\n compiled.errors.forEach(function (e) {\n warn(\"Error compiling template:\\n\\n\".concat(e.msg, \"\\n\\n\") +\n generateCodeFrame(template, e.start, e.end), vm);\n });\n }\n else {\n warn(\"Error compiling template:\\n\\n\".concat(template, \"\\n\\n\") +\n compiled.errors.map(function (e) { return \"- \".concat(e); }).join('\\n') +\n '\\n', vm);\n }\n }\n if (compiled.tips && compiled.tips.length) {\n if (options.outputSourceRange) {\n compiled.tips.forEach(function (e) { return tip(e.msg, vm); });\n }\n else {\n compiled.tips.forEach(function (msg) { return tip(msg, vm); });\n }\n }\n }\n // turn code into functions\n var res = {};\n var fnGenErrors = [];\n res.render = createFunction(compiled.render, fnGenErrors);\n res.staticRenderFns = compiled.staticRenderFns.map(function (code) {\n return createFunction(code, fnGenErrors);\n });\n // check function generation errors.\n // this should only happen if there is a bug in the compiler itself.\n // mostly for codegen development use\n /* istanbul ignore if */\n {\n if ((!compiled.errors || !compiled.errors.length) && fnGenErrors.length) {\n warn(\"Failed to generate render function:\\n\\n\" +\n fnGenErrors\n .map(function (_a) {\n var err = _a.err, code = _a.code;\n return \"\".concat(err.toString(), \" in\\n\\n\").concat(code, \"\\n\");\n })\n .join('\\n'), vm);\n }\n }\n return (cache[key] = res);\n };\n }\n\n function createCompilerCreator(baseCompile) {\n return function createCompiler(baseOptions) {\n function compile(template, options) {\n var finalOptions = Object.create(baseOptions);\n var errors = [];\n var tips = [];\n var warn = function (msg, range, tip) {\n (tip ? tips : errors).push(msg);\n };\n if (options) {\n if (options.outputSourceRange) {\n // $flow-disable-line\n var leadingSpaceLength_1 = template.match(/^\\s*/)[0].length;\n warn = function (msg, range, tip) {\n var data = typeof msg === 'string' ? { msg: msg } : msg;\n if (range) {\n if (range.start != null) {\n data.start = range.start + leadingSpaceLength_1;\n }\n if (range.end != null) {\n data.end = range.end + leadingSpaceLength_1;\n }\n }\n (tip ? tips : errors).push(data);\n };\n }\n // merge custom modules\n if (options.modules) {\n finalOptions.modules = (baseOptions.modules || []).concat(options.modules);\n }\n // merge custom directives\n if (options.directives) {\n finalOptions.directives = extend(Object.create(baseOptions.directives || null), options.directives);\n }\n // copy other options\n for (var key in options) {\n if (key !== 'modules' && key !== 'directives') {\n finalOptions[key] = options[key];\n }\n }\n }\n finalOptions.warn = warn;\n var compiled = baseCompile(template.trim(), finalOptions);\n {\n detectErrors(compiled.ast, warn);\n }\n compiled.errors = errors;\n compiled.tips = tips;\n return compiled;\n }\n return {\n compile: compile,\n compileToFunctions: createCompileToFunctionFn(compile)\n };\n };\n }\n\n // `createCompilerCreator` allows creating compilers that use alternative\n // parser/optimizer/codegen, e.g the SSR optimizing compiler.\n // Here we just export a default compiler using the default parts.\n var createCompiler = createCompilerCreator(function baseCompile(template, options) {\n var ast = parse(template.trim(), options);\n if (options.optimize !== false) {\n optimize(ast, options);\n }\n var code = generate(ast, options);\n return {\n ast: ast,\n render: code.render,\n staticRenderFns: code.staticRenderFns\n };\n });\n\n var _a = createCompiler(baseOptions), compileToFunctions = _a.compileToFunctions;\n\n // check whether current browser encodes a char inside attribute values\n var div;\n function getShouldDecode(href) {\n div = div || document.createElement('div');\n div.innerHTML = href ? \"<a href=\\\"\\n\\\"/>\" : \"<div a=\\\"\\n\\\"/>\";\n return div.innerHTML.indexOf(' ') > 0;\n }\n // #3663: IE encodes newlines inside attribute values while other browsers don't\n var shouldDecodeNewlines = inBrowser ? getShouldDecode(false) : false;\n // #6828: chrome encodes content in a[href]\n var shouldDecodeNewlinesForHref = inBrowser\n ? getShouldDecode(true)\n : false;\n\n var idToTemplate = cached(function (id) {\n var el = query(id);\n return el && el.innerHTML;\n });\n var mount = Vue.prototype.$mount;\n Vue.prototype.$mount = function (el, hydrating) {\n el = el && query(el);\n /* istanbul ignore if */\n if (el === document.body || el === document.documentElement) {\n warn$2(\"Do not mount Vue to <html> or <body> - mount to normal elements instead.\");\n return this;\n }\n var options = this.$options;\n // resolve template/el and convert to render function\n if (!options.render) {\n var template = options.template;\n if (template) {\n if (typeof template === 'string') {\n if (template.charAt(0) === '#') {\n template = idToTemplate(template);\n /* istanbul ignore if */\n if (!template) {\n warn$2(\"Template element not found or is empty: \".concat(options.template), this);\n }\n }\n }\n else if (template.nodeType) {\n template = template.innerHTML;\n }\n else {\n {\n warn$2('invalid template option:' + template, this);\n }\n return this;\n }\n }\n else if (el) {\n // @ts-expect-error\n template = getOuterHTML(el);\n }\n if (template) {\n /* istanbul ignore if */\n if (config.performance && mark) {\n mark('compile');\n }\n var _a = compileToFunctions(template, {\n outputSourceRange: true,\n shouldDecodeNewlines: shouldDecodeNewlines,\n shouldDecodeNewlinesForHref: shouldDecodeNewlinesForHref,\n delimiters: options.delimiters,\n comments: options.comments\n }, this), render = _a.render, staticRenderFns = _a.staticRenderFns;\n options.render = render;\n options.staticRenderFns = staticRenderFns;\n /* istanbul ignore if */\n if (config.performance && mark) {\n mark('compile end');\n measure(\"vue \".concat(this._name, \" compile\"), 'compile', 'compile end');\n }\n }\n }\n return mount.call(this, el, hydrating);\n };\n /**\n * Get outerHTML of elements, taking care\n * of SVG elements in IE as well.\n */\n function getOuterHTML(el) {\n if (el.outerHTML) {\n return el.outerHTML;\n }\n else {\n var container = document.createElement('div');\n container.appendChild(el.cloneNode(true));\n return container.innerHTML;\n }\n }\n Vue.compile = compileToFunctions;\n\n // export type EffectScheduler = (...args: any[]) => any\n /**\n * @internal since we are not exposing this in Vue 2, it's used only for\n * internal testing.\n */\n function effect(fn, scheduler) {\n var watcher = new Watcher(currentInstance, fn, noop, {\n sync: true\n });\n if (scheduler) {\n watcher.update = function () {\n scheduler(function () { return watcher.run(); });\n };\n }\n }\n\n extend(Vue, vca);\n Vue.effect = effect;\n\n return Vue;\n\n}));\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(20), __webpack_require__(206).setImmediate))\n\n/***/ }),\n/* 74 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = _defineProperty;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__toPropertyKey_js__ = __webpack_require__(134);\n\nfunction _defineProperty(obj, key, value) {\n key = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__toPropertyKey_js__[\"a\" /* default */])(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\n\n/***/ }),\n/* 75 */,\n/* 76 */,\n/* 77 */,\n/* 78 */,\n/* 79 */,\n/* 80 */,\n/* 81 */,\n/* 82 */,\n/* 83 */,\n/* 84 */,\n/* 85 */,\n/* 86 */,\n/* 87 */,\n/* 88 */,\n/* 89 */,\n/* 90 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(5);\nvar create = __webpack_require__(25);\nvar defineProperty = __webpack_require__(15).f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar uncurryThis = __webpack_require__(1);\n\nmodule.exports = uncurryThis([].slice);\n\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar tryToString = __webpack_require__(67);\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (O, P) {\n if (!delete O[P]) throw $TypeError('Cannot delete property ' + tryToString(P) + ' of ' + tryToString(O));\n};\n\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports) {\n\nvar documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(4);\nvar isObject = __webpack_require__(12);\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(23);\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar uncurryThis = __webpack_require__(51);\nvar aCallable = __webpack_require__(29);\nvar NATIVE_BIND = __webpack_require__(37);\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n/***/ }),\n/* 97 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar classof = __webpack_require__(31);\nvar getMethod = __webpack_require__(38);\nvar isNullOrUndefined = __webpack_require__(39);\nvar Iterators = __webpack_require__(40);\nvar wellKnownSymbol = __webpack_require__(5);\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(9);\nvar fails = __webpack_require__(0);\nvar createElement = __webpack_require__(94);\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar uncurryThis = __webpack_require__(1);\nvar isCallable = __webpack_require__(3);\nvar store = __webpack_require__(62);\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n\n\n/***/ }),\n/* 100 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(0);\nvar isCallable = __webpack_require__(3);\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar fails = __webpack_require__(0);\nvar isCallable = __webpack_require__(3);\nvar isObject = __webpack_require__(12);\nvar create = __webpack_require__(25);\nvar getPrototypeOf = __webpack_require__(103);\nvar defineBuiltIn = __webpack_require__(13);\nvar wellKnownSymbol = __webpack_require__(5);\nvar IS_PURE = __webpack_require__(56);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar internalObjectKeys = __webpack_require__(104);\nvar enumBugKeys = __webpack_require__(50);\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n\n\n/***/ }),\n/* 103 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar hasOwn = __webpack_require__(11);\nvar isCallable = __webpack_require__(3);\nvar toObject = __webpack_require__(16);\nvar sharedKey = __webpack_require__(61);\nvar CORRECT_PROTOTYPE_GETTER = __webpack_require__(147);\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar uncurryThis = __webpack_require__(1);\nvar hasOwn = __webpack_require__(11);\nvar toIndexedObject = __webpack_require__(26);\nvar indexOf = __webpack_require__(45).indexOf;\nvar hiddenKeys = __webpack_require__(52);\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* eslint-disable no-proto -- safe */\nvar uncurryThis = __webpack_require__(1);\nvar anObject = __webpack_require__(8);\nvar aPossiblePrototype = __webpack_require__(139);\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar anObject = __webpack_require__(8);\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices) result += 'd';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.unicodeSets) result += 'v';\n if (that.sticky) result += 'y';\n return result;\n};\n\n\n/***/ }),\n/* 107 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(4);\nvar apply = __webpack_require__(152);\nvar isCallable = __webpack_require__(3);\nvar userAgent = __webpack_require__(95);\nvar arraySlice = __webpack_require__(91);\nvar validateArgumentsLength = __webpack_require__(182);\n\nvar MSIE = /MSIE .\\./.test(userAgent); // <- dirty ie9- check\nvar Function = global.Function;\n\nvar wrap = function (scheduler) {\n return MSIE ? function (handler, timeout /* , ...arguments */) {\n var boundArgs = validateArgumentsLength(arguments.length, 1) > 2;\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = boundArgs ? arraySlice(arguments, 2) : undefined;\n return scheduler(boundArgs ? function () {\n apply(fn, this, args);\n } : fn, timeout);\n } : scheduler;\n};\n\n// ie9- setTimeout & setInterval additional parameters fix\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers\nmodule.exports = {\n // `setTimeout` method\n // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-settimeout\n setTimeout: wrap(global.setTimeout),\n // `setInterval` method\n // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-setinterval\n setInterval: wrap(global.setInterval)\n};\n\n\n/***/ }),\n/* 108 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar defineProperty = __webpack_require__(15).f;\nvar hasOwn = __webpack_require__(11);\nvar wellKnownSymbol = __webpack_require__(5);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n\n\n/***/ }),\n/* 109 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar uncurryThis = __webpack_require__(1);\nvar requireObjectCoercible = __webpack_require__(19);\nvar toString = __webpack_require__(17);\nvar whitespaces = __webpack_require__(115);\n\nvar replace = uncurryThis(''.replace);\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = replace(string, ltrim, '');\n if (TYPE & 2) string = replace(string, rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n\n\n/***/ }),\n/* 110 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = __webpack_require__(36);\nvar fails = __webpack_require__(0);\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n\n\n/***/ }),\n/* 111 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar call = __webpack_require__(10);\nvar isObject = __webpack_require__(12);\nvar isSymbol = __webpack_require__(57);\nvar getMethod = __webpack_require__(38);\nvar ordinaryToPrimitive = __webpack_require__(170);\nvar wellKnownSymbol = __webpack_require__(5);\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n\n\n/***/ }),\n/* 112 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar uncurryThis = __webpack_require__(1);\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n\n\n/***/ }),\n/* 113 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = __webpack_require__(110);\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n\n\n/***/ }),\n/* 114 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(9);\nvar fails = __webpack_require__(0);\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n\n\n/***/ }),\n/* 115 */\n/***/ (function(module, exports) {\n\n// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n\n\n/***/ }),\n/* 116 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2);\nvar $filter = __webpack_require__(30).filter;\nvar arrayMethodHasSpeciesSupport = __webpack_require__(21);\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n\n/***/ }),\n/* 117 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2);\nvar $find = __webpack_require__(30).find;\nvar addToUnscopables = __webpack_require__(90);\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.es/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n\n\n/***/ }),\n/* 118 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n/* eslint-disable es/no-array-prototype-indexof -- required for testing */\nvar $ = __webpack_require__(2);\nvar uncurryThis = __webpack_require__(51);\nvar $indexOf = __webpack_require__(45).indexOf;\nvar arrayMethodIsStrict = __webpack_require__(46);\n\nvar nativeIndexOf = uncurryThis([].indexOf);\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / nativeIndexOf([1], 1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('indexOf');\n\n// `Array.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n var fromIndex = arguments.length > 1 ? arguments[1] : undefined;\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? nativeIndexOf(this, searchElement, fromIndex) || 0\n : $indexOf(this, searchElement, fromIndex);\n }\n});\n\n\n/***/ }),\n/* 119 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2);\nvar isArray = __webpack_require__(24);\nvar isConstructor = __webpack_require__(55);\nvar isObject = __webpack_require__(12);\nvar toAbsoluteIndex = __webpack_require__(64);\nvar lengthOfArrayLike = __webpack_require__(14);\nvar toIndexedObject = __webpack_require__(26);\nvar createProperty = __webpack_require__(34);\nvar wellKnownSymbol = __webpack_require__(5);\nvar arrayMethodHasSpeciesSupport = __webpack_require__(21);\nvar nativeSlice = __webpack_require__(91);\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (isConstructor(Constructor) && (Constructor === $Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === $Array || Constructor === undefined) {\n return nativeSlice(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? $Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n\n\n/***/ }),\n/* 120 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// TODO: Remove from `core-js@4`\nvar uncurryThis = __webpack_require__(1);\nvar defineBuiltIn = __webpack_require__(13);\n\nvar DatePrototype = Date.prototype;\nvar INVALID_DATE = 'Invalid Date';\nvar TO_STRING = 'toString';\nvar nativeDateToString = uncurryThis(DatePrototype[TO_STRING]);\nvar thisTimeValue = uncurryThis(DatePrototype.getTime);\n\n// `Date.prototype.toString` method\n// https://tc39.es/ecma262/#sec-date.prototype.tostring\nif (String(new Date(NaN)) != INVALID_DATE) {\n defineBuiltIn(DatePrototype, TO_STRING, function toString() {\n var value = thisTimeValue(this);\n // eslint-disable-next-line no-self-compare -- NaN check\n return value === value ? nativeDateToString(this) : INVALID_DATE;\n });\n}\n\n\n/***/ }),\n/* 121 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar defineBuiltIn = __webpack_require__(13);\nvar errorToString = __webpack_require__(150);\n\nvar ErrorPrototype = Error.prototype;\n\n// `Error.prototype.toString` method fix\n// https://tc39.es/ecma262/#sec-error.prototype.tostring\nif (ErrorPrototype.toString !== errorToString) {\n defineBuiltIn(ErrorPrototype, 'toString', errorToString);\n}\n\n\n/***/ }),\n/* 122 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(9);\nvar FUNCTION_NAME_EXISTS = __webpack_require__(22).EXISTS;\nvar uncurryThis = __webpack_require__(1);\nvar defineProperty = __webpack_require__(15).f;\n\nvar FunctionPrototype = Function.prototype;\nvar functionToString = uncurryThis(FunctionPrototype.toString);\nvar nameRE = /function\\b(?:\\s|\\/\\*[\\S\\s]*?\\*\\/|\\/\\/[^\\n\\r]*[\\n\\r]+)*([^\\s(/]*)/;\nvar regExpExec = uncurryThis(nameRE.exec);\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !FUNCTION_NAME_EXISTS) {\n defineProperty(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return regExpExec(nameRE, functionToString(this))[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n\n\n/***/ }),\n/* 123 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar PROPER_FUNCTION_NAME = __webpack_require__(22).PROPER;\nvar defineBuiltIn = __webpack_require__(13);\nvar anObject = __webpack_require__(8);\nvar $toString = __webpack_require__(17);\nvar fails = __webpack_require__(0);\nvar getRegExpFlags = __webpack_require__(173);\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = PROPER_FUNCTION_NAME && nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n defineBuiltIn(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var pattern = $toString(R.source);\n var flags = $toString(getRegExpFlags(R));\n return '/' + pattern + '/' + flags;\n }, { unsafe: true });\n}\n\n\n/***/ }),\n/* 124 */\n/***/ (function(module, exports) {\n\n// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n/***/ }),\n/* 125 */,\n/* 126 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $ = __webpack_require__(2);\nvar from = __webpack_require__(140);\nvar checkCorrectnessOfIteration = __webpack_require__(144);\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n // eslint-disable-next-line es/no-array-from -- required for testing\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n\n\n/***/ }),\n/* 127 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar charAt = __webpack_require__(178).charAt;\nvar toString = __webpack_require__(17);\nvar InternalStateModule = __webpack_require__(54);\nvar defineIterator = __webpack_require__(160);\nvar createIterResultObject = __webpack_require__(148);\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return createIterResultObject(undefined, true);\n point = charAt(string, index);\n state.index += point.length;\n return createIterResultObject(point, false);\n});\n\n\n/***/ }),\n/* 128 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(process, global) {/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version v4.2.8+1e68dce6\n */\n\n(function (global, factory) {\n\t true ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.ES6Promise = factory());\n}(this, (function () { 'use strict';\n\nfunction objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\n\n\nvar _isArray = void 0;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nvar isArray = _isArray;\n\nvar len = 0;\nvar vertxNext = void 0;\nvar customSchedulerFn = void 0;\n\nvar asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nfunction setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var vertx = Function('return this')().require('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = void 0;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && \"function\" === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}\n\nfunction then(onFulfillment, onRejection) {\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n\n if (_state) {\n var callback = arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nfunction resolve$1(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n resolve(promise, object);\n return promise;\n}\n\nvar PROMISE_ID = Math.random().toString(36).substring(2);\n\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {\n try {\n then$$1.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then$$1) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then$$1, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then$$1) {\n if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then$$1 === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then$$1)) {\n handleForeignThenable(promise, maybeThenable, then$$1);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n var then$$1 = void 0;\n try {\n then$$1 = value.then;\n } catch (error) {\n reject(promise, error);\n return;\n }\n handleMaybeThenable(promise, value, then$$1);\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = void 0,\n callback = void 0,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = void 0,\n error = void 0,\n succeeded = true;\n\n if (hasCallback) {\n try {\n value = callback(detail);\n } catch (e) {\n succeeded = false;\n error = e;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (succeeded === false) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n}\n\nvar Enumerator = function () {\n function Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n }\n\n Enumerator.prototype._enumerate = function _enumerate(input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n };\n\n Enumerator.prototype._eachEntry = function _eachEntry(entry, i) {\n var c = this._instanceConstructor;\n var resolve$$1 = c.resolve;\n\n\n if (resolve$$1 === resolve$1) {\n var _then = void 0;\n var error = void 0;\n var didError = false;\n try {\n _then = entry.then;\n } catch (e) {\n didError = true;\n error = e;\n }\n\n if (_then === then && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise$1) {\n var promise = new c(noop);\n if (didError) {\n reject(promise, error);\n } else {\n handleMaybeThenable(promise, entry, _then);\n }\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve$$1) {\n return resolve$$1(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve$$1(entry), i);\n }\n };\n\n Enumerator.prototype._settledAt = function _settledAt(state, i, value) {\n var promise = this.promise;\n\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n };\n\n Enumerator.prototype._willSettleAt = function _willSettleAt(promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n };\n\n return Enumerator;\n}();\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nfunction all(entries) {\n return new Enumerator(this, entries).promise;\n}\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nfunction race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject$1(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n reject(promise, reason);\n return promise;\n}\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {Function} resolver\n Useful for tooling.\n @constructor\n*/\n\nvar Promise$1 = function () {\n function Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n }\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n Chaining\n --------\n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n Assimilation\n ------------\n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n If the assimliated promise rejects, then the downstream promise will also reject.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n Simple Example\n --------------\n Synchronous Example\n ```javascript\n let result;\n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n Advanced Example\n --------------\n Synchronous Example\n ```javascript\n let author, books;\n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n function foundBooks(books) {\n }\n function failure(reason) {\n }\n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n\n\n Promise.prototype.catch = function _catch(onRejection) {\n return this.then(null, onRejection);\n };\n\n /**\n `finally` will be invoked regardless of the promise's fate just as native\n try/catch/finally behaves\n \n Synchronous example:\n \n ```js\n findAuthor() {\n if (Math.random() > 0.5) {\n throw new Error();\n }\n return new Author();\n }\n \n try {\n return findAuthor(); // succeed or fail\n } catch(error) {\n return findOtherAuther();\n } finally {\n // always runs\n // doesn't affect the return value\n }\n ```\n \n Asynchronous example:\n \n ```js\n findAuthor().catch(function(reason){\n return findOtherAuther();\n }).finally(function(){\n // author was either found, or not\n });\n ```\n \n @method finally\n @param {Function} callback\n @return {Promise}\n */\n\n\n Promise.prototype.finally = function _finally(callback) {\n var promise = this;\n var constructor = promise.constructor;\n\n if (isFunction(callback)) {\n return promise.then(function (value) {\n return constructor.resolve(callback()).then(function () {\n return value;\n });\n }, function (reason) {\n return constructor.resolve(callback()).then(function () {\n throw reason;\n });\n });\n }\n\n return promise.then(callback, callback);\n };\n\n return Promise;\n}();\n\nPromise$1.prototype.then = then;\nPromise$1.all = all;\nPromise$1.race = race;\nPromise$1.resolve = resolve$1;\nPromise$1.reject = reject$1;\nPromise$1._setScheduler = setScheduler;\nPromise$1._setAsap = setAsap;\nPromise$1._asap = asap;\n\n/*global self*/\nfunction polyfill() {\n var local = void 0;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise$1;\n}\n\n// Strange compat..\nPromise$1.polyfill = polyfill;\nPromise$1.Promise = Promise$1;\n\nreturn Promise$1;\n\n})));\n\n\n\n//# sourceMappingURL=es6-promise.map\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(124), __webpack_require__(20)))\n\n/***/ }),\n/* 129 */,\n/* 130 */,\n/* 131 */,\n/* 132 */,\n/* 133 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = _toPrimitive;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__typeof_js__ = __webpack_require__(44);\n\nfunction _toPrimitive(input, hint) {\n if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__typeof_js__[\"a\" /* default */])(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__typeof_js__[\"a\" /* default */])(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\n\n/***/ }),\n/* 134 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = _toPropertyKey;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__typeof_js__ = __webpack_require__(44);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__toPrimitive_js__ = __webpack_require__(133);\n\n\nfunction _toPropertyKey(arg) {\n var key = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__toPrimitive_js__[\"a\" /* default */])(arg, \"string\");\n return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__typeof_js__[\"a\" /* default */])(key) === \"symbol\" ? key : String(key);\n}\n\n/***/ }),\n/* 135 */,\n/* 136 */,\n/* 137 */,\n/* 138 */,\n/* 139 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isCallable = __webpack_require__(3);\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n\n\n/***/ }),\n/* 140 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar bind = __webpack_require__(96);\nvar call = __webpack_require__(10);\nvar toObject = __webpack_require__(16);\nvar callWithSafeIterationClosing = __webpack_require__(143);\nvar isArrayIteratorMethod = __webpack_require__(156);\nvar isConstructor = __webpack_require__(55);\nvar lengthOfArrayLike = __webpack_require__(14);\nvar createProperty = __webpack_require__(34);\nvar getIterator = __webpack_require__(153);\nvar getIteratorMethod = __webpack_require__(97);\n\nvar $Array = Array;\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var IS_CONSTRUCTOR = isConstructor(this);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod && !(this === $Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n result = IS_CONSTRUCTOR ? new this() : [];\n for (;!(step = call(next, iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = lengthOfArrayLike(O);\n result = IS_CONSTRUCTOR ? new this(length) : $Array(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n\n\n/***/ }),\n/* 141 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar aCallable = __webpack_require__(29);\nvar toObject = __webpack_require__(16);\nvar IndexedObject = __webpack_require__(53);\nvar lengthOfArrayLike = __webpack_require__(14);\n\nvar $TypeError = TypeError;\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aCallable(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = lengthOfArrayLike(O);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw $TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n\n\n/***/ }),\n/* 142 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isArray = __webpack_require__(24);\nvar isConstructor = __webpack_require__(55);\nvar isObject = __webpack_require__(12);\nvar wellKnownSymbol = __webpack_require__(5);\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? $Array : C;\n};\n\n\n/***/ }),\n/* 143 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(8);\nvar iteratorClose = __webpack_require__(158);\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n\n\n/***/ }),\n/* 144 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(5);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n\n\n/***/ }),\n/* 145 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar hasOwn = __webpack_require__(11);\nvar ownKeys = __webpack_require__(171);\nvar getOwnPropertyDescriptorModule = __webpack_require__(58);\nvar definePropertyModule = __webpack_require__(15);\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n\n\n/***/ }),\n/* 146 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(5);\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n\n\n/***/ }),\n/* 147 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(0);\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n\n\n/***/ }),\n/* 148 */\n/***/ (function(module, exports) {\n\n// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n\n\n/***/ }),\n/* 149 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar classof = __webpack_require__(18);\nvar global = __webpack_require__(4);\n\nmodule.exports = classof(global.process) == 'process';\n\n\n/***/ }),\n/* 150 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar DESCRIPTORS = __webpack_require__(9);\nvar fails = __webpack_require__(0);\nvar anObject = __webpack_require__(8);\nvar create = __webpack_require__(25);\nvar normalizeStringArgument = __webpack_require__(163);\n\nvar nativeErrorToString = Error.prototype.toString;\n\nvar INCORRECT_TO_STRING = fails(function () {\n if (DESCRIPTORS) {\n // Chrome 32- incorrectly call accessor\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n var object = create(Object.defineProperty({}, 'name', { get: function () {\n return this === object;\n } }));\n if (nativeErrorToString.call(object) !== 'true') return true;\n }\n // FF10- does not properly handle non-strings\n return nativeErrorToString.call({ message: 1, name: 2 }) !== '2: 1'\n // IE8 does not properly handle defaults\n || nativeErrorToString.call({}) !== 'Error';\n});\n\nmodule.exports = INCORRECT_TO_STRING ? function toString() {\n var O = anObject(this);\n var name = normalizeStringArgument(O.name, 'Error');\n var message = normalizeStringArgument(O.message);\n return !name ? message : !message ? name : name + ': ' + message;\n} : nativeErrorToString;\n\n\n/***/ }),\n/* 151 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// TODO: Remove from `core-js@4` since it's moved to entry points\n__webpack_require__(42);\nvar uncurryThis = __webpack_require__(51);\nvar defineBuiltIn = __webpack_require__(13);\nvar regexpExec = __webpack_require__(60);\nvar fails = __webpack_require__(0);\nvar wellKnownSymbol = __webpack_require__(5);\nvar createNonEnumerableProperty = __webpack_require__(32);\n\nvar SPECIES = wellKnownSymbol('species');\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (KEY, exec, FORCED, SHAM) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n FORCED\n ) {\n var uncurriedNativeRegExpMethod = uncurryThis(/./[SYMBOL]);\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n var uncurriedNativeMethod = uncurryThis(nativeMethod);\n var $exec = regexp.exec;\n if ($exec === regexpExec || $exec === RegExpPrototype.exec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: uncurriedNativeRegExpMethod(regexp, str, arg2) };\n }\n return { done: true, value: uncurriedNativeMethod(str, regexp, arg2) };\n }\n return { done: false };\n });\n\n defineBuiltIn(String.prototype, KEY, methods[0]);\n defineBuiltIn(RegExpPrototype, SYMBOL, methods[1]);\n }\n\n if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\n};\n\n\n/***/ }),\n/* 152 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar NATIVE_BIND = __webpack_require__(37);\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n\n\n/***/ }),\n/* 153 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar call = __webpack_require__(10);\nvar aCallable = __webpack_require__(29);\nvar anObject = __webpack_require__(8);\nvar tryToString = __webpack_require__(67);\nvar getIteratorMethod = __webpack_require__(97);\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw $TypeError(tryToString(argument) + ' is not iterable');\n};\n\n\n/***/ }),\n/* 154 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(23);\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n\n\n/***/ }),\n/* 155 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isCallable = __webpack_require__(3);\nvar isObject = __webpack_require__(12);\nvar setPrototypeOf = __webpack_require__(105);\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n\n\n/***/ }),\n/* 156 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(5);\nvar Iterators = __webpack_require__(40);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n\n\n/***/ }),\n/* 157 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(12);\nvar classof = __webpack_require__(18);\nvar wellKnownSymbol = __webpack_require__(5);\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n\n\n/***/ }),\n/* 158 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar call = __webpack_require__(10);\nvar anObject = __webpack_require__(8);\nvar getMethod = __webpack_require__(38);\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n\n\n/***/ }),\n/* 159 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar IteratorPrototype = __webpack_require__(101).IteratorPrototype;\nvar create = __webpack_require__(25);\nvar createPropertyDescriptor = __webpack_require__(33);\nvar setToStringTag = __webpack_require__(108);\nvar Iterators = __webpack_require__(40);\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n\n\n/***/ }),\n/* 160 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2);\nvar call = __webpack_require__(10);\nvar IS_PURE = __webpack_require__(56);\nvar FunctionName = __webpack_require__(22);\nvar isCallable = __webpack_require__(3);\nvar createIteratorConstructor = __webpack_require__(159);\nvar getPrototypeOf = __webpack_require__(103);\nvar setPrototypeOf = __webpack_require__(105);\nvar setToStringTag = __webpack_require__(108);\nvar createNonEnumerableProperty = __webpack_require__(32);\nvar defineBuiltIn = __webpack_require__(13);\nvar wellKnownSymbol = __webpack_require__(5);\nvar Iterators = __webpack_require__(40);\nvar IteratorsCore = __webpack_require__(101);\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n\n\n/***/ }),\n/* 161 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(0);\nvar isCallable = __webpack_require__(3);\nvar hasOwn = __webpack_require__(11);\nvar DESCRIPTORS = __webpack_require__(9);\nvar CONFIGURABLE_FUNCTION_NAME = __webpack_require__(22).CONFIGURABLE;\nvar inspectSource = __webpack_require__(99);\nvar InternalStateModule = __webpack_require__(54);\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n\n\n/***/ }),\n/* 162 */\n/***/ (function(module, exports) {\n\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n\n\n/***/ }),\n/* 163 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toString = __webpack_require__(17);\n\nmodule.exports = function (argument, $default) {\n return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);\n};\n\n\n/***/ }),\n/* 164 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isRegExp = __webpack_require__(157);\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw $TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n\n\n/***/ }),\n/* 165 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(9);\nvar V8_PROTOTYPE_DEFINE_BUG = __webpack_require__(114);\nvar definePropertyModule = __webpack_require__(15);\nvar anObject = __webpack_require__(8);\nvar toIndexedObject = __webpack_require__(26);\nvar objectKeys = __webpack_require__(167);\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n\n\n/***/ }),\n/* 166 */\n/***/ (function(module, exports) {\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n\n\n/***/ }),\n/* 167 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar internalObjectKeys = __webpack_require__(104);\nvar enumBugKeys = __webpack_require__(50);\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n\n\n/***/ }),\n/* 168 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n\n\n/***/ }),\n/* 169 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(66);\nvar classof = __webpack_require__(31);\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n\n\n/***/ }),\n/* 170 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar call = __webpack_require__(10);\nvar isCallable = __webpack_require__(3);\nvar isObject = __webpack_require__(12);\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n\n\n/***/ }),\n/* 171 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(23);\nvar uncurryThis = __webpack_require__(1);\nvar getOwnPropertyNamesModule = __webpack_require__(102);\nvar getOwnPropertySymbolsModule = __webpack_require__(166);\nvar anObject = __webpack_require__(8);\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n\n\n/***/ }),\n/* 172 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar call = __webpack_require__(10);\nvar anObject = __webpack_require__(8);\nvar isCallable = __webpack_require__(3);\nvar classof = __webpack_require__(18);\nvar regexpExec = __webpack_require__(60);\n\nvar $TypeError = TypeError;\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (isCallable(exec)) {\n var result = call(exec, R, S);\n if (result !== null) anObject(result);\n return result;\n }\n if (classof(R) === 'RegExp') return call(regexpExec, R, S);\n throw $TypeError('RegExp#exec called on incompatible receiver');\n};\n\n\n/***/ }),\n/* 173 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar call = __webpack_require__(10);\nvar hasOwn = __webpack_require__(11);\nvar isPrototypeOf = __webpack_require__(59);\nvar regExpFlags = __webpack_require__(106);\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (R) {\n var flags = R.flags;\n return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R)\n ? call(regExpFlags, R) : flags;\n};\n\n\n/***/ }),\n/* 174 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(0);\nvar global = __webpack_require__(4);\n\n// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nvar UNSUPPORTED_Y = fails(function () {\n var re = $RegExp('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\n// UC Browser bug\n// https://github.com/zloirock/core-js/issues/1008\nvar MISSED_STICKY = UNSUPPORTED_Y || fails(function () {\n return !$RegExp('a', 'y').sticky;\n});\n\nvar BROKEN_CARET = UNSUPPORTED_Y || fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = $RegExp('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n\nmodule.exports = {\n BROKEN_CARET: BROKEN_CARET,\n MISSED_STICKY: MISSED_STICKY,\n UNSUPPORTED_Y: UNSUPPORTED_Y\n};\n\n\n/***/ }),\n/* 175 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(0);\nvar global = __webpack_require__(4);\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('.', 's');\n return !(re.dotAll && re.exec('\\n') && re.flags === 's');\n});\n\n\n/***/ }),\n/* 176 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(0);\nvar global = __webpack_require__(4);\n\n// babel-minify and Closure Compiler transpiles RegExp('(?<a>b)', 'g') -> /(?<a>b)/g and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('(?<a>b)', 'g');\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$<a>c') !== 'bc';\n});\n\n\n/***/ }),\n/* 177 */\n/***/ (function(module, exports) {\n\n// `SameValue` abstract operation\n// https://tc39.es/ecma262/#sec-samevalue\n// eslint-disable-next-line es/no-object-is -- safe\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n\n\n/***/ }),\n/* 178 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar uncurryThis = __webpack_require__(1);\nvar toIntegerOrInfinity = __webpack_require__(41);\nvar toString = __webpack_require__(17);\nvar requireObjectCoercible = __webpack_require__(19);\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n\n\n/***/ }),\n/* 179 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar PROPER_FUNCTION_NAME = __webpack_require__(22).PROPER;\nvar fails = __webpack_require__(0);\nvar whitespaces = __webpack_require__(115);\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n\n\n/***/ }),\n/* 180 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar uncurryThis = __webpack_require__(1);\n\n// `thisNumberValue` abstract operation\n// https://tc39.es/ecma262/#sec-thisnumbervalue\nmodule.exports = uncurryThis(1.0.valueOf);\n\n\n/***/ }),\n/* 181 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toIntegerOrInfinity = __webpack_require__(41);\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n\n\n/***/ }),\n/* 182 */\n/***/ (function(module, exports) {\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw $TypeError('Not enough arguments');\n return passed;\n};\n\n\n/***/ }),\n/* 183 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(4);\nvar isCallable = __webpack_require__(3);\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n\n\n/***/ }),\n/* 184 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2);\nvar $every = __webpack_require__(30).every;\nvar arrayMethodIsStrict = __webpack_require__(46);\n\nvar STRICT_METHOD = arrayMethodIsStrict('every');\n\n// `Array.prototype.every` method\n// https://tc39.es/ecma262/#sec-array.prototype.every\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD }, {\n every: function every(callbackfn /* , thisArg */) {\n return $every(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n\n/***/ }),\n/* 185 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2);\nvar $includes = __webpack_require__(45).includes;\nvar fails = __webpack_require__(0);\nvar addToUnscopables = __webpack_require__(90);\n\n// FF99+ bug\nvar BROKEN_ON_SPARSE = fails(function () {\n return !Array(1).includes();\n});\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n\n\n/***/ }),\n/* 186 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $ = __webpack_require__(2);\nvar isArray = __webpack_require__(24);\n\n// `Array.isArray` method\n// https://tc39.es/ecma262/#sec-array.isarray\n$({ target: 'Array', stat: true }, {\n isArray: isArray\n});\n\n\n/***/ }),\n/* 187 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2);\nvar $reduce = __webpack_require__(141).left;\nvar arrayMethodIsStrict = __webpack_require__(46);\nvar CHROME_VERSION = __webpack_require__(36);\nvar IS_NODE = __webpack_require__(149);\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduce');\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\n\n// `Array.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || CHROME_BUG }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined);\n }\n});\n\n\n/***/ }),\n/* 188 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2);\nvar toObject = __webpack_require__(16);\nvar toAbsoluteIndex = __webpack_require__(64);\nvar toIntegerOrInfinity = __webpack_require__(41);\nvar lengthOfArrayLike = __webpack_require__(14);\nvar setArrayLength = __webpack_require__(47);\nvar doesNotExceedSafeInteger = __webpack_require__(35);\nvar arraySpeciesCreate = __webpack_require__(48);\nvar createProperty = __webpack_require__(34);\nvar deletePropertyOrThrow = __webpack_require__(92);\nvar arrayMethodHasSpeciesSupport = __webpack_require__(21);\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// `Array.prototype.splice` method\n// https://tc39.es/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart);\n }\n doesNotExceedSafeInteger(len + insertCount - actualDeleteCount);\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else deletePropertyOrThrow(O, to);\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) deletePropertyOrThrow(O, k - 1);\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else deletePropertyOrThrow(O, to);\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n setArrayLength(O, len - actualDeleteCount + insertCount);\n return A;\n }\n});\n\n\n/***/ }),\n/* 189 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2);\nvar toObject = __webpack_require__(16);\nvar lengthOfArrayLike = __webpack_require__(14);\nvar setArrayLength = __webpack_require__(47);\nvar deletePropertyOrThrow = __webpack_require__(92);\nvar doesNotExceedSafeInteger = __webpack_require__(35);\n\n// IE8-\nvar INCORRECT_RESULT = [].unshift(0) !== 1;\n\n// V8 ~ Chrome < 71 and Safari <= 15.4, FF < 23 throws InternalError\nvar SILENT_ON_NON_WRITABLE_LENGTH = !function () {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).unshift();\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\n// `Array.prototype.unshift` method\n// https://tc39.es/ecma262/#sec-array.prototype.unshift\n$({ target: 'Array', proto: true, arity: 1, forced: INCORRECT_RESULT || SILENT_ON_NON_WRITABLE_LENGTH }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n unshift: function unshift(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n if (argCount) {\n doesNotExceedSafeInteger(len + argCount);\n var k = len;\n while (k--) {\n var to = k + argCount;\n if (k in O) O[to] = O[k];\n else deletePropertyOrThrow(O, to);\n }\n for (var j = 0; j < argCount; j++) {\n O[j] = arguments[j];\n }\n } return setArrayLength(O, len + argCount);\n }\n});\n\n\n/***/ }),\n/* 190 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2);\nvar uncurryThis = __webpack_require__(1);\nvar notARegExp = __webpack_require__(164);\nvar requireObjectCoercible = __webpack_require__(19);\nvar toString = __webpack_require__(17);\nvar correctIsRegExpLogic = __webpack_require__(146);\n\nvar stringIndexOf = uncurryThis(''.indexOf);\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~stringIndexOf(\n toString(requireObjectCoercible(this)),\n toString(notARegExp(searchString)),\n arguments.length > 1 ? arguments[1] : undefined\n );\n }\n});\n\n\n/***/ }),\n/* 191 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(2);\nvar $trim = __webpack_require__(109).trim;\nvar forcedStringTrimMethod = __webpack_require__(179);\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n\n\n/***/ }),\n/* 192 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $ = __webpack_require__(2);\nvar global = __webpack_require__(4);\nvar setInterval = __webpack_require__(107).setInterval;\n\n// ie9- setInterval additional parameters fix\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-setinterval\n$({ global: true, bind: true, forced: global.setInterval !== setInterval }, {\n setInterval: setInterval\n});\n\n\n/***/ }),\n/* 193 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $ = __webpack_require__(2);\nvar global = __webpack_require__(4);\nvar setTimeout = __webpack_require__(107).setTimeout;\n\n// ie9- setTimeout additional parameters fix\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-settimeout\n$({ global: true, bind: true, forced: global.setTimeout !== setTimeout }, {\n setTimeout: setTimeout\n});\n\n\n/***/ }),\n/* 194 */,\n/* 195 */,\n/* 196 */,\n/* 197 */,\n/* 198 */,\n/* 199 */,\n/* 200 */,\n/* 201 */,\n/* 202 */,\n/* 203 */,\n/* 204 */,\n/* 205 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global, process) {(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = { callback: callback, args: args };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function(handle) {\n process.nextTick(function () { runIfPresent(handle); });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function() {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n var onGlobalMessage = function(event) {\n if (event.source === global &&\n typeof event.data === \"string\" &&\n event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function(event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function(handle) {\n // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var script = doc.createElement(\"script\");\n script.onreadystatechange = function () {\n runIfPresent(handle);\n script.onreadystatechange = null;\n html.removeChild(script);\n script = null;\n };\n html.appendChild(script);\n };\n }\n\n function installSetTimeoutImplementation() {\n registerImmediate = function(handle) {\n setTimeout(runIfPresent, 0, handle);\n };\n }\n\n // If supported, we should attach to the prototype of global, since that is where setTimeout et al. live.\n var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);\n attachTo = attachTo && attachTo.setTimeout ? attachTo : global;\n\n // Don't get fooled by e.g. browserify environments.\n if ({}.toString.call(global.process) === \"[object process]\") {\n // For Node.js before 0.9\n installNextTickImplementation();\n\n } else if (canUsePostMessage()) {\n // For non-IE10 modern browsers\n installPostMessageImplementation();\n\n } else if (global.MessageChannel) {\n // For web workers, where supported\n installMessageChannelImplementation();\n\n } else if (doc && \"onreadystatechange\" in doc.createElement(\"script\")) {\n // For IE 6–8\n installReadyStateChangeImplementation();\n\n } else {\n // For older browsers\n installSetTimeoutImplementation();\n }\n\n attachTo.setImmediate = setImmediate;\n attachTo.clearImmediate = clearImmediate;\n}(typeof self === \"undefined\" ? typeof global === \"undefined\" ? this : global : self));\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(20), __webpack_require__(124)))\n\n/***/ }),\n/* 206 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {var scope = (typeof global !== \"undefined\" && global) ||\n (typeof self !== \"undefined\" && self) ||\n window;\nvar apply = Function.prototype.apply;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function() {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\nexports.setInterval = function() {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\nexports.clearTimeout =\nexports.clearInterval = function(timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function() {};\nTimeout.prototype.close = function() {\n this._clearFn.call(scope, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function(item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function(item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function(item) {\n clearTimeout(item._idleTimeoutId);\n\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\n\n// setimmediate attaches itself to the global object\n__webpack_require__(205);\n// On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\nexports.setImmediate = (typeof self !== \"undefined\" && self.setImmediate) ||\n (typeof global !== \"undefined\" && global.setImmediate) ||\n (this && this.setImmediate);\nexports.clearImmediate = (typeof self !== \"undefined\" && self.clearImmediate) ||\n (typeof global !== \"undefined\" && global.clearImmediate) ||\n (this && this.clearImmediate);\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(20)))\n\n/***/ }),\n/* 207 */,\n/* 208 */,\n/* 209 */,\n/* 210 */,\n/* 211 */,\n/* 212 */,\n/* 213 */,\n/* 214 */,\n/* 215 */,\n/* 216 */,\n/* 217 */,\n/* 218 */,\n/* 219 */,\n/* 220 */,\n/* 221 */,\n/* 222 */,\n/* 223 */,\n/* 224 */,\n/* 225 */,\n/* 226 */,\n/* 227 */,\n/* 228 */,\n/* 229 */,\n/* 230 */,\n/* 231 */,\n/* 232 */,\n/* 233 */,\n/* 234 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = listToStyles;\n/**\n * Translates the list format produced by css-loader into something\n * easier to manipulate.\n */\nfunction listToStyles (parentId, list) {\n var styles = []\n var newStyles = {}\n for (var i = 0; i < list.length; i++) {\n var item = list[i]\n var id = item[0]\n var css = item[1]\n var media = item[2]\n var sourceMap = item[3]\n var part = {\n id: parentId + ':' + i,\n css: css,\n media: media,\n sourceMap: sourceMap\n }\n if (!newStyles[id]) {\n styles.push(newStyles[id] = { id: id, parts: [part] })\n } else {\n newStyles[id].parts.push(part)\n }\n }\n return styles\n}\n\n\n/***/ }),\n/* 235 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {/* unused harmony export Store */\n/* unused harmony export createLogger */\n/* unused harmony export createNamespacedHelpers */\n/* unused harmony export install */\n/* unused harmony export mapActions */\n/* unused harmony export mapGetters */\n/* unused harmony export mapMutations */\n/* unused harmony export mapState */\n/*!\n * vuex v3.6.2\n * (c) 2021 Evan You\n * @license MIT\n */\nfunction applyMixin (Vue) {\n var version = Number(Vue.version.split('.')[0]);\n\n if (version >= 2) {\n Vue.mixin({ beforeCreate: vuexInit });\n } else {\n // override init and inject vuex init procedure\n // for 1.x backwards compatibility.\n var _init = Vue.prototype._init;\n Vue.prototype._init = function (options) {\n if ( options === void 0 ) options = {};\n\n options.init = options.init\n ? [vuexInit].concat(options.init)\n : vuexInit;\n _init.call(this, options);\n };\n }\n\n /**\n * Vuex init hook, injected into each instances init hooks list.\n */\n\n function vuexInit () {\n var options = this.$options;\n // store injection\n if (options.store) {\n this.$store = typeof options.store === 'function'\n ? options.store()\n : options.store;\n } else if (options.parent && options.parent.$store) {\n this.$store = options.parent.$store;\n }\n }\n}\n\nvar target = typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\nvar devtoolHook = target.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\nfunction devtoolPlugin (store) {\n if (!devtoolHook) { return }\n\n store._devtoolHook = devtoolHook;\n\n devtoolHook.emit('vuex:init', store);\n\n devtoolHook.on('vuex:travel-to-state', function (targetState) {\n store.replaceState(targetState);\n });\n\n store.subscribe(function (mutation, state) {\n devtoolHook.emit('vuex:mutation', mutation, state);\n }, { prepend: true });\n\n store.subscribeAction(function (action, state) {\n devtoolHook.emit('vuex:action', action, state);\n }, { prepend: true });\n}\n\n/**\n * Get the first item that pass the test\n * by second argument function\n *\n * @param {Array} list\n * @param {Function} f\n * @return {*}\n */\nfunction find (list, f) {\n return list.filter(f)[0]\n}\n\n/**\n * Deep copy the given object considering circular structure.\n * This function caches all nested objects and its copies.\n * If it detects circular structure, use cached copy to avoid infinite loop.\n *\n * @param {*} obj\n * @param {Array<Object>} cache\n * @return {*}\n */\nfunction deepCopy (obj, cache) {\n if ( cache === void 0 ) cache = [];\n\n // just return if obj is immutable value\n if (obj === null || typeof obj !== 'object') {\n return obj\n }\n\n // if obj is hit, it is in circular structure\n var hit = find(cache, function (c) { return c.original === obj; });\n if (hit) {\n return hit.copy\n }\n\n var copy = Array.isArray(obj) ? [] : {};\n // put the copy into cache at first\n // because we want to refer it in recursive deepCopy\n cache.push({\n original: obj,\n copy: copy\n });\n\n Object.keys(obj).forEach(function (key) {\n copy[key] = deepCopy(obj[key], cache);\n });\n\n return copy\n}\n\n/**\n * forEach for object\n */\nfunction forEachValue (obj, fn) {\n Object.keys(obj).forEach(function (key) { return fn(obj[key], key); });\n}\n\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\nfunction isPromise (val) {\n return val && typeof val.then === 'function'\n}\n\nfunction assert (condition, msg) {\n if (!condition) { throw new Error((\"[vuex] \" + msg)) }\n}\n\nfunction partial (fn, arg) {\n return function () {\n return fn(arg)\n }\n}\n\n// Base data struct for store's module, package with some attribute and method\nvar Module = function Module (rawModule, runtime) {\n this.runtime = runtime;\n // Store some children item\n this._children = Object.create(null);\n // Store the origin module object which passed by programmer\n this._rawModule = rawModule;\n var rawState = rawModule.state;\n\n // Store the origin module's state\n this.state = (typeof rawState === 'function' ? rawState() : rawState) || {};\n};\n\nvar prototypeAccessors = { namespaced: { configurable: true } };\n\nprototypeAccessors.namespaced.get = function () {\n return !!this._rawModule.namespaced\n};\n\nModule.prototype.addChild = function addChild (key, module) {\n this._children[key] = module;\n};\n\nModule.prototype.removeChild = function removeChild (key) {\n delete this._children[key];\n};\n\nModule.prototype.getChild = function getChild (key) {\n return this._children[key]\n};\n\nModule.prototype.hasChild = function hasChild (key) {\n return key in this._children\n};\n\nModule.prototype.update = function update (rawModule) {\n this._rawModule.namespaced = rawModule.namespaced;\n if (rawModule.actions) {\n this._rawModule.actions = rawModule.actions;\n }\n if (rawModule.mutations) {\n this._rawModule.mutations = rawModule.mutations;\n }\n if (rawModule.getters) {\n this._rawModule.getters = rawModule.getters;\n }\n};\n\nModule.prototype.forEachChild = function forEachChild (fn) {\n forEachValue(this._children, fn);\n};\n\nModule.prototype.forEachGetter = function forEachGetter (fn) {\n if (this._rawModule.getters) {\n forEachValue(this._rawModule.getters, fn);\n }\n};\n\nModule.prototype.forEachAction = function forEachAction (fn) {\n if (this._rawModule.actions) {\n forEachValue(this._rawModule.actions, fn);\n }\n};\n\nModule.prototype.forEachMutation = function forEachMutation (fn) {\n if (this._rawModule.mutations) {\n forEachValue(this._rawModule.mutations, fn);\n }\n};\n\nObject.defineProperties( Module.prototype, prototypeAccessors );\n\nvar ModuleCollection = function ModuleCollection (rawRootModule) {\n // register root module (Vuex.Store options)\n this.register([], rawRootModule, false);\n};\n\nModuleCollection.prototype.get = function get (path) {\n return path.reduce(function (module, key) {\n return module.getChild(key)\n }, this.root)\n};\n\nModuleCollection.prototype.getNamespace = function getNamespace (path) {\n var module = this.root;\n return path.reduce(function (namespace, key) {\n module = module.getChild(key);\n return namespace + (module.namespaced ? key + '/' : '')\n }, '')\n};\n\nModuleCollection.prototype.update = function update$1 (rawRootModule) {\n update([], this.root, rawRootModule);\n};\n\nModuleCollection.prototype.register = function register (path, rawModule, runtime) {\n var this$1 = this;\n if ( runtime === void 0 ) runtime = true;\n\n if ((false)) {\n assertRawModule(path, rawModule);\n }\n\n var newModule = new Module(rawModule, runtime);\n if (path.length === 0) {\n this.root = newModule;\n } else {\n var parent = this.get(path.slice(0, -1));\n parent.addChild(path[path.length - 1], newModule);\n }\n\n // register nested modules\n if (rawModule.modules) {\n forEachValue(rawModule.modules, function (rawChildModule, key) {\n this$1.register(path.concat(key), rawChildModule, runtime);\n });\n }\n};\n\nModuleCollection.prototype.unregister = function unregister (path) {\n var parent = this.get(path.slice(0, -1));\n var key = path[path.length - 1];\n var child = parent.getChild(key);\n\n if (!child) {\n if ((false)) {\n console.warn(\n \"[vuex] trying to unregister module '\" + key + \"', which is \" +\n \"not registered\"\n );\n }\n return\n }\n\n if (!child.runtime) {\n return\n }\n\n parent.removeChild(key);\n};\n\nModuleCollection.prototype.isRegistered = function isRegistered (path) {\n var parent = this.get(path.slice(0, -1));\n var key = path[path.length - 1];\n\n if (parent) {\n return parent.hasChild(key)\n }\n\n return false\n};\n\nfunction update (path, targetModule, newModule) {\n if ((false)) {\n assertRawModule(path, newModule);\n }\n\n // update target module\n targetModule.update(newModule);\n\n // update nested modules\n if (newModule.modules) {\n for (var key in newModule.modules) {\n if (!targetModule.getChild(key)) {\n if ((false)) {\n console.warn(\n \"[vuex] trying to add a new module '\" + key + \"' on hot reloading, \" +\n 'manual reload is needed'\n );\n }\n return\n }\n update(\n path.concat(key),\n targetModule.getChild(key),\n newModule.modules[key]\n );\n }\n }\n}\n\nvar functionAssert = {\n assert: function (value) { return typeof value === 'function'; },\n expected: 'function'\n};\n\nvar objectAssert = {\n assert: function (value) { return typeof value === 'function' ||\n (typeof value === 'object' && typeof value.handler === 'function'); },\n expected: 'function or object with \"handler\" function'\n};\n\nvar assertTypes = {\n getters: functionAssert,\n mutations: functionAssert,\n actions: objectAssert\n};\n\nfunction assertRawModule (path, rawModule) {\n Object.keys(assertTypes).forEach(function (key) {\n if (!rawModule[key]) { return }\n\n var assertOptions = assertTypes[key];\n\n forEachValue(rawModule[key], function (value, type) {\n assert(\n assertOptions.assert(value),\n makeAssertionMessage(path, key, type, value, assertOptions.expected)\n );\n });\n });\n}\n\nfunction makeAssertionMessage (path, key, type, value, expected) {\n var buf = key + \" should be \" + expected + \" but \\\"\" + key + \".\" + type + \"\\\"\";\n if (path.length > 0) {\n buf += \" in module \\\"\" + (path.join('.')) + \"\\\"\";\n }\n buf += \" is \" + (JSON.stringify(value)) + \".\";\n return buf\n}\n\nvar Vue; // bind on install\n\nvar Store = function Store (options) {\n var this$1 = this;\n if ( options === void 0 ) options = {};\n\n // Auto install if it is not done yet and `window` has `Vue`.\n // To allow users to avoid auto-installation in some cases,\n // this code should be placed here. See #731\n if (!Vue && typeof window !== 'undefined' && window.Vue) {\n install(window.Vue);\n }\n\n if ((false)) {\n assert(Vue, \"must call Vue.use(Vuex) before creating a store instance.\");\n assert(typeof Promise !== 'undefined', \"vuex requires a Promise polyfill in this browser.\");\n assert(this instanceof Store, \"store must be called with the new operator.\");\n }\n\n var plugins = options.plugins; if ( plugins === void 0 ) plugins = [];\n var strict = options.strict; if ( strict === void 0 ) strict = false;\n\n // store internal state\n this._committing = false;\n this._actions = Object.create(null);\n this._actionSubscribers = [];\n this._mutations = Object.create(null);\n this._wrappedGetters = Object.create(null);\n this._modules = new ModuleCollection(options);\n this._modulesNamespaceMap = Object.create(null);\n this._subscribers = [];\n this._watcherVM = new Vue();\n this._makeLocalGettersCache = Object.create(null);\n\n // bind commit and dispatch to self\n var store = this;\n var ref = this;\n var dispatch = ref.dispatch;\n var commit = ref.commit;\n this.dispatch = function boundDispatch (type, payload) {\n return dispatch.call(store, type, payload)\n };\n this.commit = function boundCommit (type, payload, options) {\n return commit.call(store, type, payload, options)\n };\n\n // strict mode\n this.strict = strict;\n\n var state = this._modules.root.state;\n\n // init root module.\n // this also recursively registers all sub-modules\n // and collects all module getters inside this._wrappedGetters\n installModule(this, state, [], this._modules.root);\n\n // initialize the store vm, which is responsible for the reactivity\n // (also registers _wrappedGetters as computed properties)\n resetStoreVM(this, state);\n\n // apply plugins\n plugins.forEach(function (plugin) { return plugin(this$1); });\n\n var useDevtools = options.devtools !== undefined ? options.devtools : Vue.config.devtools;\n if (useDevtools) {\n devtoolPlugin(this);\n }\n};\n\nvar prototypeAccessors$1 = { state: { configurable: true } };\n\nprototypeAccessors$1.state.get = function () {\n return this._vm._data.$$state\n};\n\nprototypeAccessors$1.state.set = function (v) {\n if ((false)) {\n assert(false, \"use store.replaceState() to explicit replace store state.\");\n }\n};\n\nStore.prototype.commit = function commit (_type, _payload, _options) {\n var this$1 = this;\n\n // check object-style commit\n var ref = unifyObjectStyle(_type, _payload, _options);\n var type = ref.type;\n var payload = ref.payload;\n var options = ref.options;\n\n var mutation = { type: type, payload: payload };\n var entry = this._mutations[type];\n if (!entry) {\n if ((false)) {\n console.error((\"[vuex] unknown mutation type: \" + type));\n }\n return\n }\n this._withCommit(function () {\n entry.forEach(function commitIterator (handler) {\n handler(payload);\n });\n });\n\n this._subscribers\n .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n .forEach(function (sub) { return sub(mutation, this$1.state); });\n\n if (\n false\n ) {\n console.warn(\n \"[vuex] mutation type: \" + type + \". Silent option has been removed. \" +\n 'Use the filter functionality in the vue-devtools'\n );\n }\n};\n\nStore.prototype.dispatch = function dispatch (_type, _payload) {\n var this$1 = this;\n\n // check object-style dispatch\n var ref = unifyObjectStyle(_type, _payload);\n var type = ref.type;\n var payload = ref.payload;\n\n var action = { type: type, payload: payload };\n var entry = this._actions[type];\n if (!entry) {\n if ((false)) {\n console.error((\"[vuex] unknown action type: \" + type));\n }\n return\n }\n\n try {\n this._actionSubscribers\n .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n .filter(function (sub) { return sub.before; })\n .forEach(function (sub) { return sub.before(action, this$1.state); });\n } catch (e) {\n if ((false)) {\n console.warn(\"[vuex] error in before action subscribers: \");\n console.error(e);\n }\n }\n\n var result = entry.length > 1\n ? Promise.all(entry.map(function (handler) { return handler(payload); }))\n : entry[0](payload);\n\n return new Promise(function (resolve, reject) {\n result.then(function (res) {\n try {\n this$1._actionSubscribers\n .filter(function (sub) { return sub.after; })\n .forEach(function (sub) { return sub.after(action, this$1.state); });\n } catch (e) {\n if ((false)) {\n console.warn(\"[vuex] error in after action subscribers: \");\n console.error(e);\n }\n }\n resolve(res);\n }, function (error) {\n try {\n this$1._actionSubscribers\n .filter(function (sub) { return sub.error; })\n .forEach(function (sub) { return sub.error(action, this$1.state, error); });\n } catch (e) {\n if ((false)) {\n console.warn(\"[vuex] error in error action subscribers: \");\n console.error(e);\n }\n }\n reject(error);\n });\n })\n};\n\nStore.prototype.subscribe = function subscribe (fn, options) {\n return genericSubscribe(fn, this._subscribers, options)\n};\n\nStore.prototype.subscribeAction = function subscribeAction (fn, options) {\n var subs = typeof fn === 'function' ? { before: fn } : fn;\n return genericSubscribe(subs, this._actionSubscribers, options)\n};\n\nStore.prototype.watch = function watch (getter, cb, options) {\n var this$1 = this;\n\n if ((false)) {\n assert(typeof getter === 'function', \"store.watch only accepts a function.\");\n }\n return this._watcherVM.$watch(function () { return getter(this$1.state, this$1.getters); }, cb, options)\n};\n\nStore.prototype.replaceState = function replaceState (state) {\n var this$1 = this;\n\n this._withCommit(function () {\n this$1._vm._data.$$state = state;\n });\n};\n\nStore.prototype.registerModule = function registerModule (path, rawModule, options) {\n if ( options === void 0 ) options = {};\n\n if (typeof path === 'string') { path = [path]; }\n\n if ((false)) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n assert(path.length > 0, 'cannot register the root module by using registerModule.');\n }\n\n this._modules.register(path, rawModule);\n installModule(this, this.state, path, this._modules.get(path), options.preserveState);\n // reset store to update getters...\n resetStoreVM(this, this.state);\n};\n\nStore.prototype.unregisterModule = function unregisterModule (path) {\n var this$1 = this;\n\n if (typeof path === 'string') { path = [path]; }\n\n if ((false)) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n }\n\n this._modules.unregister(path);\n this._withCommit(function () {\n var parentState = getNestedState(this$1.state, path.slice(0, -1));\n Vue.delete(parentState, path[path.length - 1]);\n });\n resetStore(this);\n};\n\nStore.prototype.hasModule = function hasModule (path) {\n if (typeof path === 'string') { path = [path]; }\n\n if ((false)) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n }\n\n return this._modules.isRegistered(path)\n};\n\nStore.prototype.hotUpdate = function hotUpdate (newOptions) {\n this._modules.update(newOptions);\n resetStore(this, true);\n};\n\nStore.prototype._withCommit = function _withCommit (fn) {\n var committing = this._committing;\n this._committing = true;\n fn();\n this._committing = committing;\n};\n\nObject.defineProperties( Store.prototype, prototypeAccessors$1 );\n\nfunction genericSubscribe (fn, subs, options) {\n if (subs.indexOf(fn) < 0) {\n options && options.prepend\n ? subs.unshift(fn)\n : subs.push(fn);\n }\n return function () {\n var i = subs.indexOf(fn);\n if (i > -1) {\n subs.splice(i, 1);\n }\n }\n}\n\nfunction resetStore (store, hot) {\n store._actions = Object.create(null);\n store._mutations = Object.create(null);\n store._wrappedGetters = Object.create(null);\n store._modulesNamespaceMap = Object.create(null);\n var state = store.state;\n // init all modules\n installModule(store, state, [], store._modules.root, true);\n // reset vm\n resetStoreVM(store, state, hot);\n}\n\nfunction resetStoreVM (store, state, hot) {\n var oldVm = store._vm;\n\n // bind store public getters\n store.getters = {};\n // reset local getters cache\n store._makeLocalGettersCache = Object.create(null);\n var wrappedGetters = store._wrappedGetters;\n var computed = {};\n forEachValue(wrappedGetters, function (fn, key) {\n // use computed to leverage its lazy-caching mechanism\n // direct inline function use will lead to closure preserving oldVm.\n // using partial to return function with only arguments preserved in closure environment.\n computed[key] = partial(fn, store);\n Object.defineProperty(store.getters, key, {\n get: function () { return store._vm[key]; },\n enumerable: true // for local getters\n });\n });\n\n // use a Vue instance to store the state tree\n // suppress warnings just in case the user has added\n // some funky global mixins\n var silent = Vue.config.silent;\n Vue.config.silent = true;\n store._vm = new Vue({\n data: {\n $$state: state\n },\n computed: computed\n });\n Vue.config.silent = silent;\n\n // enable strict mode for new vm\n if (store.strict) {\n enableStrictMode(store);\n }\n\n if (oldVm) {\n if (hot) {\n // dispatch changes in all subscribed watchers\n // to force getter re-evaluation for hot reloading.\n store._withCommit(function () {\n oldVm._data.$$state = null;\n });\n }\n Vue.nextTick(function () { return oldVm.$destroy(); });\n }\n}\n\nfunction installModule (store, rootState, path, module, hot) {\n var isRoot = !path.length;\n var namespace = store._modules.getNamespace(path);\n\n // register in namespace map\n if (module.namespaced) {\n if (store._modulesNamespaceMap[namespace] && (\"production\" !== 'production')) {\n console.error((\"[vuex] duplicate namespace \" + namespace + \" for the namespaced module \" + (path.join('/'))));\n }\n store._modulesNamespaceMap[namespace] = module;\n }\n\n // set state\n if (!isRoot && !hot) {\n var parentState = getNestedState(rootState, path.slice(0, -1));\n var moduleName = path[path.length - 1];\n store._withCommit(function () {\n if ((false)) {\n if (moduleName in parentState) {\n console.warn(\n (\"[vuex] state field \\\"\" + moduleName + \"\\\" was overridden by a module with the same name at \\\"\" + (path.join('.')) + \"\\\"\")\n );\n }\n }\n Vue.set(parentState, moduleName, module.state);\n });\n }\n\n var local = module.context = makeLocalContext(store, namespace, path);\n\n module.forEachMutation(function (mutation, key) {\n var namespacedType = namespace + key;\n registerMutation(store, namespacedType, mutation, local);\n });\n\n module.forEachAction(function (action, key) {\n var type = action.root ? key : namespace + key;\n var handler = action.handler || action;\n registerAction(store, type, handler, local);\n });\n\n module.forEachGetter(function (getter, key) {\n var namespacedType = namespace + key;\n registerGetter(store, namespacedType, getter, local);\n });\n\n module.forEachChild(function (child, key) {\n installModule(store, rootState, path.concat(key), child, hot);\n });\n}\n\n/**\n * make localized dispatch, commit, getters and state\n * if there is no namespace, just use root ones\n */\nfunction makeLocalContext (store, namespace, path) {\n var noNamespace = namespace === '';\n\n var local = {\n dispatch: noNamespace ? store.dispatch : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if (false) {\n console.error((\"[vuex] unknown local action type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n return store.dispatch(type, payload)\n },\n\n commit: noNamespace ? store.commit : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if (false) {\n console.error((\"[vuex] unknown local mutation type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n store.commit(type, payload, options);\n }\n };\n\n // getters and state object must be gotten lazily\n // because they will be changed by vm update\n Object.defineProperties(local, {\n getters: {\n get: noNamespace\n ? function () { return store.getters; }\n : function () { return makeLocalGetters(store, namespace); }\n },\n state: {\n get: function () { return getNestedState(store.state, path); }\n }\n });\n\n return local\n}\n\nfunction makeLocalGetters (store, namespace) {\n if (!store._makeLocalGettersCache[namespace]) {\n var gettersProxy = {};\n var splitPos = namespace.length;\n Object.keys(store.getters).forEach(function (type) {\n // skip if the target getter is not match this namespace\n if (type.slice(0, splitPos) !== namespace) { return }\n\n // extract local getter type\n var localType = type.slice(splitPos);\n\n // Add a port to the getters proxy.\n // Define as getter property because\n // we do not want to evaluate the getters in this time.\n Object.defineProperty(gettersProxy, localType, {\n get: function () { return store.getters[type]; },\n enumerable: true\n });\n });\n store._makeLocalGettersCache[namespace] = gettersProxy;\n }\n\n return store._makeLocalGettersCache[namespace]\n}\n\nfunction registerMutation (store, type, handler, local) {\n var entry = store._mutations[type] || (store._mutations[type] = []);\n entry.push(function wrappedMutationHandler (payload) {\n handler.call(store, local.state, payload);\n });\n}\n\nfunction registerAction (store, type, handler, local) {\n var entry = store._actions[type] || (store._actions[type] = []);\n entry.push(function wrappedActionHandler (payload) {\n var res = handler.call(store, {\n dispatch: local.dispatch,\n commit: local.commit,\n getters: local.getters,\n state: local.state,\n rootGetters: store.getters,\n rootState: store.state\n }, payload);\n if (!isPromise(res)) {\n res = Promise.resolve(res);\n }\n if (store._devtoolHook) {\n return res.catch(function (err) {\n store._devtoolHook.emit('vuex:error', err);\n throw err\n })\n } else {\n return res\n }\n });\n}\n\nfunction registerGetter (store, type, rawGetter, local) {\n if (store._wrappedGetters[type]) {\n if ((false)) {\n console.error((\"[vuex] duplicate getter key: \" + type));\n }\n return\n }\n store._wrappedGetters[type] = function wrappedGetter (store) {\n return rawGetter(\n local.state, // local state\n local.getters, // local getters\n store.state, // root state\n store.getters // root getters\n )\n };\n}\n\nfunction enableStrictMode (store) {\n store._vm.$watch(function () { return this._data.$$state }, function () {\n if ((false)) {\n assert(store._committing, \"do not mutate vuex store state outside mutation handlers.\");\n }\n }, { deep: true, sync: true });\n}\n\nfunction getNestedState (state, path) {\n return path.reduce(function (state, key) { return state[key]; }, state)\n}\n\nfunction unifyObjectStyle (type, payload, options) {\n if (isObject(type) && type.type) {\n options = payload;\n payload = type;\n type = type.type;\n }\n\n if ((false)) {\n assert(typeof type === 'string', (\"expects string as the type, but found \" + (typeof type) + \".\"));\n }\n\n return { type: type, payload: payload, options: options }\n}\n\nfunction install (_Vue) {\n if (Vue && _Vue === Vue) {\n if ((false)) {\n console.error(\n '[vuex] already installed. Vue.use(Vuex) should be called only once.'\n );\n }\n return\n }\n Vue = _Vue;\n applyMixin(Vue);\n}\n\n/**\n * Reduce the code which written in Vue.js for getting the state.\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} states # Object's item can be a function which accept state and getters for param, you can do something for state and getters in it.\n * @param {Object}\n */\nvar mapState = normalizeNamespace(function (namespace, states) {\n var res = {};\n if (false) {\n console.error('[vuex] mapState: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(states).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedState () {\n var state = this.$store.state;\n var getters = this.$store.getters;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapState', namespace);\n if (!module) {\n return\n }\n state = module.context.state;\n getters = module.context.getters;\n }\n return typeof val === 'function'\n ? val.call(this, state, getters)\n : state[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for committing the mutation\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} mutations # Object's item can be a function which accept `commit` function as the first param, it can accept another params. You can commit mutation and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapMutations = normalizeNamespace(function (namespace, mutations) {\n var res = {};\n if (false) {\n console.error('[vuex] mapMutations: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(mutations).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedMutation () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n // Get the commit method from store\n var commit = this.$store.commit;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapMutations', namespace);\n if (!module) {\n return\n }\n commit = module.context.commit;\n }\n return typeof val === 'function'\n ? val.apply(this, [commit].concat(args))\n : commit.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for getting the getters\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} getters\n * @return {Object}\n */\nvar mapGetters = normalizeNamespace(function (namespace, getters) {\n var res = {};\n if (false) {\n console.error('[vuex] mapGetters: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(getters).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n // The namespace has been mutated by normalizeNamespace\n val = namespace + val;\n res[key] = function mappedGetter () {\n if (namespace && !getModuleByNamespace(this.$store, 'mapGetters', namespace)) {\n return\n }\n if (false) {\n console.error((\"[vuex] unknown getter: \" + val));\n return\n }\n return this.$store.getters[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for dispatch the action\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} actions # Object's item can be a function which accept `dispatch` function as the first param, it can accept anthor params. You can dispatch action and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapActions = normalizeNamespace(function (namespace, actions) {\n var res = {};\n if (false) {\n console.error('[vuex] mapActions: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(actions).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedAction () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n // get dispatch function from store\n var dispatch = this.$store.dispatch;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapActions', namespace);\n if (!module) {\n return\n }\n dispatch = module.context.dispatch;\n }\n return typeof val === 'function'\n ? val.apply(this, [dispatch].concat(args))\n : dispatch.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\n/**\n * Rebinding namespace param for mapXXX function in special scoped, and return them by simple object\n * @param {String} namespace\n * @return {Object}\n */\nvar createNamespacedHelpers = function (namespace) { return ({\n mapState: mapState.bind(null, namespace),\n mapGetters: mapGetters.bind(null, namespace),\n mapMutations: mapMutations.bind(null, namespace),\n mapActions: mapActions.bind(null, namespace)\n}); };\n\n/**\n * Normalize the map\n * normalizeMap([1, 2, 3]) => [ { key: 1, val: 1 }, { key: 2, val: 2 }, { key: 3, val: 3 } ]\n * normalizeMap({a: 1, b: 2, c: 3}) => [ { key: 'a', val: 1 }, { key: 'b', val: 2 }, { key: 'c', val: 3 } ]\n * @param {Array|Object} map\n * @return {Object}\n */\nfunction normalizeMap (map) {\n if (!isValidMap(map)) {\n return []\n }\n return Array.isArray(map)\n ? map.map(function (key) { return ({ key: key, val: key }); })\n : Object.keys(map).map(function (key) { return ({ key: key, val: map[key] }); })\n}\n\n/**\n * Validate whether given map is valid or not\n * @param {*} map\n * @return {Boolean}\n */\nfunction isValidMap (map) {\n return Array.isArray(map) || isObject(map)\n}\n\n/**\n * Return a function expect two param contains namespace and map. it will normalize the namespace and then the param's function will handle the new namespace and the map.\n * @param {Function} fn\n * @return {Function}\n */\nfunction normalizeNamespace (fn) {\n return function (namespace, map) {\n if (typeof namespace !== 'string') {\n map = namespace;\n namespace = '';\n } else if (namespace.charAt(namespace.length - 1) !== '/') {\n namespace += '/';\n }\n return fn(namespace, map)\n }\n}\n\n/**\n * Search a special module from store by namespace. if module not exist, print error message.\n * @param {Object} store\n * @param {String} helper\n * @param {String} namespace\n * @return {Object}\n */\nfunction getModuleByNamespace (store, helper, namespace) {\n var module = store._modulesNamespaceMap[namespace];\n if (false) {\n console.error((\"[vuex] module namespace not found in \" + helper + \"(): \" + namespace));\n }\n return module\n}\n\n// Credits: borrowed code from fcomb/redux-logger\n\nfunction createLogger (ref) {\n if ( ref === void 0 ) ref = {};\n var collapsed = ref.collapsed; if ( collapsed === void 0 ) collapsed = true;\n var filter = ref.filter; if ( filter === void 0 ) filter = function (mutation, stateBefore, stateAfter) { return true; };\n var transformer = ref.transformer; if ( transformer === void 0 ) transformer = function (state) { return state; };\n var mutationTransformer = ref.mutationTransformer; if ( mutationTransformer === void 0 ) mutationTransformer = function (mut) { return mut; };\n var actionFilter = ref.actionFilter; if ( actionFilter === void 0 ) actionFilter = function (action, state) { return true; };\n var actionTransformer = ref.actionTransformer; if ( actionTransformer === void 0 ) actionTransformer = function (act) { return act; };\n var logMutations = ref.logMutations; if ( logMutations === void 0 ) logMutations = true;\n var logActions = ref.logActions; if ( logActions === void 0 ) logActions = true;\n var logger = ref.logger; if ( logger === void 0 ) logger = console;\n\n return function (store) {\n var prevState = deepCopy(store.state);\n\n if (typeof logger === 'undefined') {\n return\n }\n\n if (logMutations) {\n store.subscribe(function (mutation, state) {\n var nextState = deepCopy(state);\n\n if (filter(mutation, prevState, nextState)) {\n var formattedTime = getFormattedTime();\n var formattedMutation = mutationTransformer(mutation);\n var message = \"mutation \" + (mutation.type) + formattedTime;\n\n startMessage(logger, message, collapsed);\n logger.log('%c prev state', 'color: #9E9E9E; font-weight: bold', transformer(prevState));\n logger.log('%c mutation', 'color: #03A9F4; font-weight: bold', formattedMutation);\n logger.log('%c next state', 'color: #4CAF50; font-weight: bold', transformer(nextState));\n endMessage(logger);\n }\n\n prevState = nextState;\n });\n }\n\n if (logActions) {\n store.subscribeAction(function (action, state) {\n if (actionFilter(action, state)) {\n var formattedTime = getFormattedTime();\n var formattedAction = actionTransformer(action);\n var message = \"action \" + (action.type) + formattedTime;\n\n startMessage(logger, message, collapsed);\n logger.log('%c action', 'color: #03A9F4; font-weight: bold', formattedAction);\n endMessage(logger);\n }\n });\n }\n }\n}\n\nfunction startMessage (logger, message, collapsed) {\n var startMessage = collapsed\n ? logger.groupCollapsed\n : logger.group;\n\n // render\n try {\n startMessage.call(logger, message);\n } catch (e) {\n logger.log(message);\n }\n}\n\nfunction endMessage (logger) {\n try {\n logger.groupEnd();\n } catch (e) {\n logger.log('—— log end ——');\n }\n}\n\nfunction getFormattedTime () {\n var time = new Date();\n return (\" @ \" + (pad(time.getHours(), 2)) + \":\" + (pad(time.getMinutes(), 2)) + \":\" + (pad(time.getSeconds(), 2)) + \".\" + (pad(time.getMilliseconds(), 3)))\n}\n\nfunction repeat (str, times) {\n return (new Array(times + 1)).join(str)\n}\n\nfunction pad (num, maxLength) {\n return repeat('0', maxLength - num.toString().length) + num\n}\n\nvar index = {\n Store: Store,\n install: install,\n version: '3.6.2',\n mapState: mapState,\n mapMutations: mapMutations,\n mapGetters: mapGetters,\n mapActions: mapActions,\n createNamespacedHelpers: createNamespacedHelpers,\n createLogger: createLogger\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (index);\n\n\n/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(20)))\n\n/***/ }),\n/* 236 */\n/***/ (function(module, exports) {\n\n/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n\n\n/***/ }),\n/* 237 */\n/***/ (function(module, exports) {\n\nmodule.exports = function escape(url) {\n if (typeof url !== 'string') {\n return url\n }\n // If url is already wrapped in quotes, remove them\n if (/^['\"].*['\"]$/.test(url)) {\n url = url.slice(1, -1);\n }\n // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n if (/[\"'() \\t\\n]/.test(url)) {\n return '\"' + url.replace(/\"/g, '\\\\\"').replace(/\\n/g, '\\\\n') + '\"'\n }\n\n return url\n}\n\n\n/***/ }),\n/* 238 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony export (immutable) */ __webpack_exports__[\"default\"] = addStylesClient;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__listToStyles__ = __webpack_require__(234);\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n Modified by Evan You @yyx990803\n*/\n\n\n\nvar hasDocument = typeof document !== 'undefined'\n\nif (typeof DEBUG !== 'undefined' && DEBUG) {\n if (!hasDocument) {\n throw new Error(\n 'vue-style-loader cannot be used in a non-browser environment. ' +\n \"Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\"\n ) }\n}\n\n/*\ntype StyleObject = {\n id: number;\n parts: Array<StyleObjectPart>\n}\n\ntype StyleObjectPart = {\n css: string;\n media: string;\n sourceMap: ?string\n}\n*/\n\nvar stylesInDom = {/*\n [id: number]: {\n id: number,\n refs: number,\n parts: Array<(obj?: StyleObjectPart) => void>\n }\n*/}\n\nvar head = hasDocument && (document.head || document.getElementsByTagName('head')[0])\nvar singletonElement = null\nvar singletonCounter = 0\nvar isProduction = false\nvar noop = function () {}\nvar options = null\nvar ssrIdKey = 'data-vue-ssr-id'\n\n// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n// tags it will allow on a page\nvar isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\b/.test(navigator.userAgent.toLowerCase())\n\nfunction addStylesClient (parentId, list, _isProduction, _options) {\n isProduction = _isProduction\n\n options = _options || {}\n\n var styles = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__listToStyles__[\"a\" /* default */])(parentId, list)\n addStylesToDom(styles)\n\n return function update (newList) {\n var mayRemove = []\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n domStyle.refs--\n mayRemove.push(domStyle)\n }\n if (newList) {\n styles = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__listToStyles__[\"a\" /* default */])(parentId, newList)\n addStylesToDom(styles)\n } else {\n styles = []\n }\n for (var i = 0; i < mayRemove.length; i++) {\n var domStyle = mayRemove[i]\n if (domStyle.refs === 0) {\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j]()\n }\n delete stylesInDom[domStyle.id]\n }\n }\n }\n}\n\nfunction addStylesToDom (styles /* Array<StyleObject> */) {\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n if (domStyle) {\n domStyle.refs++\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j](item.parts[j])\n }\n for (; j < item.parts.length; j++) {\n domStyle.parts.push(addStyle(item.parts[j]))\n }\n if (domStyle.parts.length > item.parts.length) {\n domStyle.parts.length = item.parts.length\n }\n } else {\n var parts = []\n for (var j = 0; j < item.parts.length; j++) {\n parts.push(addStyle(item.parts[j]))\n }\n stylesInDom[item.id] = { id: item.id, refs: 1, parts: parts }\n }\n }\n}\n\nfunction createStyleElement () {\n var styleElement = document.createElement('style')\n styleElement.type = 'text/css'\n head.appendChild(styleElement)\n return styleElement\n}\n\nfunction addStyle (obj /* StyleObjectPart */) {\n var update, remove\n var styleElement = document.querySelector('style[' + ssrIdKey + '~=\"' + obj.id + '\"]')\n\n if (styleElement) {\n if (isProduction) {\n // has SSR styles and in production mode.\n // simply do nothing.\n return noop\n } else {\n // has SSR styles but in dev mode.\n // for some reason Chrome can't handle source map in server-rendered\n // style tags - source maps in <style> only works if the style tag is\n // created and inserted dynamically. So we remove the server rendered\n // styles and inject new ones.\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n if (isOldIE) {\n // use singleton mode for IE9.\n var styleIndex = singletonCounter++\n styleElement = singletonElement || (singletonElement = createStyleElement())\n update = applyToSingletonTag.bind(null, styleElement, styleIndex, false)\n remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true)\n } else {\n // use multi-style-tag mode in all other cases\n styleElement = createStyleElement()\n update = applyToTag.bind(null, styleElement)\n remove = function () {\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n update(obj)\n\n return function updateStyle (newObj /* StyleObjectPart */) {\n if (newObj) {\n if (newObj.css === obj.css &&\n newObj.media === obj.media &&\n newObj.sourceMap === obj.sourceMap) {\n return\n }\n update(obj = newObj)\n } else {\n remove()\n }\n }\n}\n\nvar replaceText = (function () {\n var textStore = []\n\n return function (index, replacement) {\n textStore[index] = replacement\n return textStore.filter(Boolean).join('\\n')\n }\n})()\n\nfunction applyToSingletonTag (styleElement, index, remove, obj) {\n var css = remove ? '' : obj.css\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = replaceText(index, css)\n } else {\n var cssNode = document.createTextNode(css)\n var childNodes = styleElement.childNodes\n if (childNodes[index]) styleElement.removeChild(childNodes[index])\n if (childNodes.length) {\n styleElement.insertBefore(cssNode, childNodes[index])\n } else {\n styleElement.appendChild(cssNode)\n }\n }\n}\n\nfunction applyToTag (styleElement, obj) {\n var css = obj.css\n var media = obj.media\n var sourceMap = obj.sourceMap\n\n if (media) {\n styleElement.setAttribute('media', media)\n }\n if (options.ssrId) {\n styleElement.setAttribute(ssrIdKey, obj.id)\n }\n\n if (sourceMap) {\n // https://developer.chrome.com/devtools/docs/javascript-debugging\n // this makes source maps inside style tags work properly in Chrome\n css += '\\n/*# sourceURL=' + sourceMap.sources[0] + ' */'\n // http://stackoverflow.com/a/26603875\n css += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */'\n }\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild)\n }\n styleElement.appendChild(document.createTextNode(css))\n }\n}\n\n\n/***/ })\n]);\n\n\n// WEBPACK FOOTER //\n// static/js/vendor.ed7650694397140633ce.js","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/fails.js\n// module id = 0\n// module chunks = 0","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/function-uncurry-this.js\n// module id = 1\n// module chunks = 0","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/export.js\n// module id = 2\n// module chunks = 0","var $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/is-callable.js\n// module id = 3\n// module chunks = 0","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/global.js\n// module id = 4\n// module chunks = 0","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/well-known-symbol.js\n// module id = 5\n// module chunks = 0","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file.\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nmodule.exports = function normalizeComponent (\n rawScriptExports,\n compiledTemplate,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */\n) {\n var esModule\n var scriptExports = rawScriptExports = rawScriptExports || {}\n\n // ES6 modules interop\n var type = typeof rawScriptExports.default\n if (type === 'object' || type === 'function') {\n esModule = rawScriptExports\n scriptExports = rawScriptExports.default\n }\n\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (compiledTemplate) {\n options.render = compiledTemplate.render\n options.staticRenderFns = compiledTemplate.staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = injectStyles\n }\n\n if (hook) {\n var functional = options.functional\n var existing = functional\n ? options.render\n : options.beforeCreate\n\n if (!functional) {\n // inject component registration as beforeCreate hook\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n } else {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return existing(h, context)\n }\n }\n }\n\n return {\n esModule: esModule,\n exports: scriptExports,\n options: options\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/component-normalizer.js\n// module id = 6\n// module chunks = 0","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/an-object.js\n// module id = 8\n// module chunks = 0","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/descriptors.js\n// module id = 9\n// module chunks = 0","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/function-call.js\n// module id = 10\n// module chunks = 0","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/has-own-property.js\n// module id = 11\n// module chunks = 0","var isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/is-object.js\n// module id = 12\n// module chunks = 0","var isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/define-built-in.js\n// module id = 13\n// module chunks = 0","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/length-of-array-like.js\n// module id = 14\n// module chunks = 0","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/object-define-property.js\n// module id = 15\n// module chunks = 0","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/to-object.js\n// module id = 16\n// module chunks = 0","var classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/to-string.js\n// module id = 17\n// module chunks = 0","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/classof-raw.js\n// module id = 18\n// module chunks = 0","var isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/require-object-coercible.js\n// module id = 19\n// module chunks = 0","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/global.js\n// module id = 20\n// module chunks = 0","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/array-method-has-species-support.js\n// module id = 21\n// module chunks = 0","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/function-name.js\n// module id = 22\n// module chunks = 0","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/get-built-in.js\n// module id = 23\n// module chunks = 0","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) == 'Array';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/is-array.js\n// module id = 24\n// module chunks = 0","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/object-create.js\n// module id = 25\n// module chunks = 0","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/to-indexed-object.js\n// module id = 26\n// module chunks = 0","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = lengthOfArrayLike(E);\n doesNotExceedSafeInteger(n + len);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n doesNotExceedSafeInteger(n + 1);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es.array.concat.js\n// module id = 27\n// module chunks = 0","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar fails = require('../internals/fails');\n\nvar INCORRECT_TO_LENGTH = fails(function () {\n return [].push.call({ length: 0x100000000 }, 1) !== 4294967297;\n});\n\n// V8 and Safari <= 15.4, FF < 23 throws InternalError\n// https://bugs.chromium.org/p/v8/issues/detail?id=12681\nvar SILENT_ON_NON_WRITABLE_LENGTH = !function () {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).push();\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\n// `Array.prototype.push` method\n// https://tc39.es/ecma262/#sec-array.prototype.push\n$({ target: 'Array', proto: true, arity: 1, forced: INCORRECT_TO_LENGTH || SILENT_ON_NON_WRITABLE_LENGTH }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n push: function push(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n doesNotExceedSafeInteger(len + argCount);\n for (var i = 0; i < argCount; i++) {\n O[len] = arguments[i];\n len++;\n }\n setArrayLength(O, len);\n return len;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es.array.push.js\n// module id = 28\n// module chunks = 0","var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/a-callable.js\n// module id = 29\n// module chunks = 0","var bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_REJECT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var length = lengthOfArrayLike(self);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/array-iteration.js\n// module id = 30\n// module chunks = 0","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/classof.js\n// module id = 31\n// module chunks = 0","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/create-non-enumerable-property.js\n// module id = 32\n// module chunks = 0","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/create-property-descriptor.js\n// module id = 33\n// module chunks = 0","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/create-property.js\n// module id = 34\n// module chunks = 0","var $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/does-not-exceed-safe-integer.js\n// module id = 35\n// module chunks = 0","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/engine-v8-version.js\n// module id = 36\n// module chunks = 0","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/function-bind-native.js\n// module id = 37\n// module chunks = 0","var aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/get-method.js\n// module id = 38\n// module chunks = 0","// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/is-null-or-undefined.js\n// module id = 39\n// module chunks = 0","module.exports = {};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/iterators.js\n// module id = 40\n// module chunks = 0","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/to-integer-or-infinity.js\n// module id = 41\n// module chunks = 0","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es.regexp.exec.js\n// module id = 42\n// module chunks = 0","// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/web.set-interval');\nrequire('../modules/web.set-timeout');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/web.timers.js\n// module id = 43\n// module chunks = 0","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@babel/runtime/helpers/esm/typeof.js\n// module id = 44\n// module chunks = 0","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/array-includes.js\n// module id = 45\n// module chunks = 0","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call -- required for testing\n method.call(null, argument || function () { return 1; }, 1);\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/array-method-is-strict.js\n// module id = 46\n// module chunks = 0","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar isArray = require('../internals/is-array');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n // makes no sense without proper strict mode support\n if (this !== undefined) return true;\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).length = 1;\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n throw $TypeError('Cannot set read only .length');\n } return O.length = length;\n} : function (O, length) {\n return O.length = length;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/array-set-length.js\n// module id = 47\n// module chunks = 0","var arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/array-species-create.js\n// module id = 48\n// module chunks = 0","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/define-global-property.js\n// module id = 49\n// module chunks = 0","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/enum-bug-keys.js\n// module id = 50\n// module chunks = 0","var classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/function-uncurry-this-clause.js\n// module id = 51\n// module chunks = 0","module.exports = {};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/hidden-keys.js\n// module id = 52\n// module chunks = 0","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/indexed-object.js\n// module id = 53\n// module chunks = 0","var NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/internal-state.js\n// module id = 54\n// module chunks = 0","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/is-constructor.js\n// module id = 55\n// module chunks = 0","module.exports = false;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/is-pure.js\n// module id = 56\n// module chunks = 0","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/is-symbol.js\n// module id = 57\n// module chunks = 0","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/object-get-own-property-descriptor.js\n// module id = 58\n// module chunks = 0","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/object-is-prototype-of.js\n// module id = 59\n// module chunks = 0","'use strict';\n/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar regexpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar shared = require('../internals/shared');\nvar create = require('../internals/object-create');\nvar getInternalState = require('../internals/internal-state').get;\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\nvar nativeExec = RegExp.prototype.exec;\nvar patchedExec = nativeExec;\nvar charAt = uncurryThis(''.charAt);\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n call(nativeExec, re1, 'a');\n call(nativeExec, re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\nif (PATCH) {\n patchedExec = function exec(string) {\n var re = this;\n var state = getInternalState(re);\n var str = toString(string);\n var raw = state.raw;\n var result, reCopy, lastIndex, match, i, object, group;\n\n if (raw) {\n raw.lastIndex = re.lastIndex;\n result = call(patchedExec, raw, str);\n re.lastIndex = raw.lastIndex;\n return result;\n }\n\n var groups = state.groups;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = call(regexpFlags, re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = replace(flags, 'y', '');\n if (indexOf(flags, 'g') === -1) {\n flags += 'g';\n }\n\n strCopy = stringSlice(str, re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = call(nativeExec, sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = stringSlice(match.input, charsAdded);\n match[0] = stringSlice(match[0], charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn't work for /(.?)?/\n call(nativeReplace, match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n if (match && groups) {\n match.groups = object = create(null);\n for (i = 0; i < groups.length; i++) {\n group = groups[i];\n object[group[0]] = match[group[1]];\n }\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/regexp-exec.js\n// module id = 60\n// module chunks = 0","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/shared-key.js\n// module id = 61\n// module chunks = 0","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/shared-store.js\n// module id = 62\n// module chunks = 0","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.26.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.26.1/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/shared.js\n// module id = 63\n// module chunks = 0","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/to-absolute-index.js\n// module id = 64\n// module chunks = 0","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/to-property-key.js\n// module id = 65\n// module chunks = 0","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/to-string-tag-support.js\n// module id = 66\n// module chunks = 0","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/try-to-string.js\n// module id = 67\n// module chunks = 0","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar hasOwn = require('../internals/has-own-property');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isSymbol = require('../internals/is-symbol');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar thisNumberValue = require('../internals/this-number-value');\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\nvar TypeError = global.TypeError;\nvar arraySlice = uncurryThis(''.slice);\nvar charCodeAt = uncurryThis(''.charCodeAt);\n\n// `ToNumeric` abstract operation\n// https://tc39.es/ecma262/#sec-tonumeric\nvar toNumeric = function (value) {\n var primValue = toPrimitive(value, 'number');\n return typeof primValue == 'bigint' ? primValue : toNumber(primValue);\n};\n\n// `ToNumber` abstract operation\n// https://tc39.es/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, 'number');\n var first, third, radix, maxCode, digits, length, index, code;\n if (isSymbol(it)) throw TypeError('Cannot convert a Symbol value to a number');\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = charCodeAt(it, 0);\n if (first === 43 || first === 45) {\n third = charCodeAt(it, 2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (charCodeAt(it, 1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n default: return +it;\n }\n digits = arraySlice(it, 2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = charCodeAt(digits, index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\n// `Number` constructor\n// https://tc39.es/ecma262/#sec-number-constructor\nif (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n var NumberWrapper = function Number(value) {\n var n = arguments.length < 1 ? 0 : NativeNumber(toNumeric(value));\n var dummy = this;\n // check on 1..constructor(foo) case\n return isPrototypeOf(NumberPrototype, dummy) && fails(function () { thisNumberValue(dummy); })\n ? inheritIfRequired(Object(n), dummy, NumberWrapper) : n;\n };\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,' +\n // ESNext\n 'fromString,range'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (hasOwn(NativeNumber, key = keys[j]) && !hasOwn(NumberWrapper, key)) {\n defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));\n }\n }\n NumberWrapper.prototype = NumberPrototype;\n NumberPrototype.constructor = NumberWrapper;\n defineBuiltIn(global, NUMBER, NumberWrapper, { constructor: true });\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es.number.constructor.js\n// module id = 68\n// module chunks = 0","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true });\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es.object.to-string.js\n// module id = 69\n// module chunks = 0","'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar sameValue = require('../internals/same-value');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@search logic\nfixRegExpWellKnownSymbolLogic('search', function (SEARCH, nativeSearch, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.es/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = requireObjectCoercible(this);\n var searcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, SEARCH);\n return searcher ? call(searcher, regexp, O) : new RegExp(regexp)[SEARCH](toString(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@search\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeSearch, rx, S);\n\n if (res.done) return res.value;\n\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es.string.search.js\n// module id = 70\n// module chunks = 0","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@babel/runtime/helpers/esm/objectSpread2.js\n// module id = 71\n// module chunks = 0","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es.array.map.js\n// module id = 72\n// module chunks = 0","/*!\n * Vue.js v2.7.14\n * (c) 2014-2022 Evan You\n * Released under the MIT License.\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Vue = factory());\n})(this, (function () { 'use strict';\n\n var emptyObject = Object.freeze({});\n var isArray = Array.isArray;\n // These helpers produce better VM code in JS engines due to their\n // explicitness and function inlining.\n function isUndef(v) {\n return v === undefined || v === null;\n }\n function isDef(v) {\n return v !== undefined && v !== null;\n }\n function isTrue(v) {\n return v === true;\n }\n function isFalse(v) {\n return v === false;\n }\n /**\n * Check if value is primitive.\n */\n function isPrimitive(value) {\n return (typeof value === 'string' ||\n typeof value === 'number' ||\n // $flow-disable-line\n typeof value === 'symbol' ||\n typeof value === 'boolean');\n }\n function isFunction(value) {\n return typeof value === 'function';\n }\n /**\n * Quick object check - this is primarily used to tell\n * objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\n function isObject(obj) {\n return obj !== null && typeof obj === 'object';\n }\n /**\n * Get the raw type string of a value, e.g., [object Object].\n */\n var _toString = Object.prototype.toString;\n function toRawType(value) {\n return _toString.call(value).slice(8, -1);\n }\n /**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\n function isPlainObject(obj) {\n return _toString.call(obj) === '[object Object]';\n }\n function isRegExp(v) {\n return _toString.call(v) === '[object RegExp]';\n }\n /**\n * Check if val is a valid array index.\n */\n function isValidArrayIndex(val) {\n var n = parseFloat(String(val));\n return n >= 0 && Math.floor(n) === n && isFinite(val);\n }\n function isPromise(val) {\n return (isDef(val) &&\n typeof val.then === 'function' &&\n typeof val.catch === 'function');\n }\n /**\n * Convert a value to a string that is actually rendered.\n */\n function toString(val) {\n return val == null\n ? ''\n : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)\n ? JSON.stringify(val, null, 2)\n : String(val);\n }\n /**\n * Convert an input value to a number for persistence.\n * If the conversion fails, return original string.\n */\n function toNumber(val) {\n var n = parseFloat(val);\n return isNaN(n) ? val : n;\n }\n /**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\n function makeMap(str, expectsLowerCase) {\n var map = Object.create(null);\n var list = str.split(',');\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase ? function (val) { return map[val.toLowerCase()]; } : function (val) { return map[val]; };\n }\n /**\n * Check if a tag is a built-in tag.\n */\n var isBuiltInTag = makeMap('slot,component', true);\n /**\n * Check if an attribute is a reserved attribute.\n */\n var isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n /**\n * Remove an item from an array.\n */\n function remove$2(arr, item) {\n var len = arr.length;\n if (len) {\n // fast path for the only / last item\n if (item === arr[len - 1]) {\n arr.length = len - 1;\n return;\n }\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1);\n }\n }\n }\n /**\n * Check whether an object has the property.\n */\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n function hasOwn(obj, key) {\n return hasOwnProperty.call(obj, key);\n }\n /**\n * Create a cached version of a pure function.\n */\n function cached(fn) {\n var cache = Object.create(null);\n return function cachedFn(str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n }\n /**\n * Camelize a hyphen-delimited string.\n */\n var camelizeRE = /-(\\w)/g;\n var camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) { return (c ? c.toUpperCase() : ''); });\n });\n /**\n * Capitalize a string.\n */\n var capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n });\n /**\n * Hyphenate a camelCase string.\n */\n var hyphenateRE = /\\B([A-Z])/g;\n var hyphenate = cached(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase();\n });\n /**\n * Simple bind polyfill for environments that do not support it,\n * e.g., PhantomJS 1.x. Technically, we don't need this anymore\n * since native bind is now performant enough in most browsers.\n * But removing it would mean breaking code that was able to run in\n * PhantomJS 1.x, so this must be kept for backward compatibility.\n */\n /* istanbul ignore next */\n function polyfillBind(fn, ctx) {\n function boundFn(a) {\n var l = arguments.length;\n return l\n ? l > 1\n ? fn.apply(ctx, arguments)\n : fn.call(ctx, a)\n : fn.call(ctx);\n }\n boundFn._length = fn.length;\n return boundFn;\n }\n function nativeBind(fn, ctx) {\n return fn.bind(ctx);\n }\n // @ts-expect-error bind cannot be `undefined`\n var bind$1 = Function.prototype.bind ? nativeBind : polyfillBind;\n /**\n * Convert an Array-like object to a real Array.\n */\n function toArray(list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret;\n }\n /**\n * Mix properties into target object.\n */\n function extend(to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to;\n }\n /**\n * Merge an Array of Objects into a single Object.\n */\n function toObject(arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res;\n }\n /* eslint-disable no-unused-vars */\n /**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).\n */\n function noop(a, b, c) { }\n /**\n * Always return false.\n */\n var no = function (a, b, c) { return false; };\n /* eslint-enable no-unused-vars */\n /**\n * Return the same value.\n */\n var identity = function (_) { return _; };\n /**\n * Generate a string containing static keys from compiler modules.\n */\n function genStaticKeys$1(modules) {\n return modules\n .reduce(function (keys, m) {\n return keys.concat(m.staticKeys || []);\n }, [])\n .join(',');\n }\n /**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\n function looseEqual(a, b) {\n if (a === b)\n return true;\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = Array.isArray(a);\n var isArrayB = Array.isArray(b);\n if (isArrayA && isArrayB) {\n return (a.length === b.length &&\n a.every(function (e, i) {\n return looseEqual(e, b[i]);\n }));\n }\n else if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime();\n }\n else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return (keysA.length === keysB.length &&\n keysA.every(function (key) {\n return looseEqual(a[key], b[key]);\n }));\n }\n else {\n /* istanbul ignore next */\n return false;\n }\n }\n catch (e) {\n /* istanbul ignore next */\n return false;\n }\n }\n else if (!isObjectA && !isObjectB) {\n return String(a) === String(b);\n }\n else {\n return false;\n }\n }\n /**\n * Return the first index at which a loosely equal value can be\n * found in the array (if value is a plain object, the array must\n * contain an object of the same shape), or -1 if it is not present.\n */\n function looseIndexOf(arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val))\n return i;\n }\n return -1;\n }\n /**\n * Ensure a function is called only once.\n */\n function once(fn) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n fn.apply(this, arguments);\n }\n };\n }\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is#polyfill\n function hasChanged(x, y) {\n if (x === y) {\n return x === 0 && 1 / x !== 1 / y;\n }\n else {\n return x === x || y === y;\n }\n }\n\n var SSR_ATTR = 'data-server-rendered';\n var ASSET_TYPES = ['component', 'directive', 'filter'];\n var LIFECYCLE_HOOKS = [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUpdate',\n 'updated',\n 'beforeDestroy',\n 'destroyed',\n 'activated',\n 'deactivated',\n 'errorCaptured',\n 'serverPrefetch',\n 'renderTracked',\n 'renderTriggered'\n ];\n\n var config = {\n /**\n * Option merge strategies (used in core/util/options)\n */\n // $flow-disable-line\n optionMergeStrategies: Object.create(null),\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n /**\n * Show production mode tip message on boot?\n */\n productionTip: true,\n /**\n * Whether to enable devtools\n */\n devtools: true,\n /**\n * Whether to record perf\n */\n performance: false,\n /**\n * Error handler for watcher errors\n */\n errorHandler: null,\n /**\n * Warn handler for watcher warns\n */\n warnHandler: null,\n /**\n * Ignore certain custom elements\n */\n ignoredElements: [],\n /**\n * Custom user key aliases for v-on\n */\n // $flow-disable-line\n keyCodes: Object.create(null),\n /**\n * Check if a tag is reserved so that it cannot be registered as a\n * component. This is platform-dependent and may be overwritten.\n */\n isReservedTag: no,\n /**\n * Check if an attribute is reserved so that it cannot be used as a component\n * prop. This is platform-dependent and may be overwritten.\n */\n isReservedAttr: no,\n /**\n * Check if a tag is an unknown element.\n * Platform-dependent.\n */\n isUnknownElement: no,\n /**\n * Get the namespace of an element\n */\n getTagNamespace: noop,\n /**\n * Parse the real tag name for the specific platform.\n */\n parsePlatformTagName: identity,\n /**\n * Check if an attribute must be bound using property, e.g. value\n * Platform-dependent.\n */\n mustUseProp: no,\n /**\n * Perform updates asynchronously. Intended to be used by Vue Test Utils\n * This will significantly reduce performance if set to false.\n */\n async: true,\n /**\n * Exposed for legacy reasons\n */\n _lifecycleHooks: LIFECYCLE_HOOKS\n };\n\n /**\n * unicode letters used for parsing html tags, component names and property paths.\n * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname\n * skipping \\u10000-\\uEFFFF due to it freezing up PhantomJS\n */\n var unicodeRegExp = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\n /**\n * Check if a string starts with $ or _\n */\n function isReserved(str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5f;\n }\n /**\n * Define a property.\n */\n function def(obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n }\n /**\n * Parse simple path.\n */\n var bailRE = new RegExp(\"[^\".concat(unicodeRegExp.source, \".$_\\\\d]\"));\n function parsePath(path) {\n if (bailRE.test(path)) {\n return;\n }\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj)\n return;\n obj = obj[segments[i]];\n }\n return obj;\n };\n }\n\n // can we use __proto__?\n var hasProto = '__proto__' in {};\n // Browser environment sniffing\n var inBrowser = typeof window !== 'undefined';\n var UA = inBrowser && window.navigator.userAgent.toLowerCase();\n var isIE = UA && /msie|trident/.test(UA);\n var isIE9 = UA && UA.indexOf('msie 9.0') > 0;\n var isEdge = UA && UA.indexOf('edge/') > 0;\n UA && UA.indexOf('android') > 0;\n var isIOS = UA && /iphone|ipad|ipod|ios/.test(UA);\n UA && /chrome\\/\\d+/.test(UA) && !isEdge;\n UA && /phantomjs/.test(UA);\n var isFF = UA && UA.match(/firefox\\/(\\d+)/);\n // Firefox has a \"watch\" function on Object.prototype...\n // @ts-expect-error firebox support\n var nativeWatch = {}.watch;\n var supportsPassive = false;\n if (inBrowser) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', {\n get: function () {\n /* istanbul ignore next */\n supportsPassive = true;\n }\n }); // https://github.com/facebook/flow/issues/285\n window.addEventListener('test-passive', null, opts);\n }\n catch (e) { }\n }\n // this needs to be lazy-evaled because vue may be required before\n // vue-server-renderer can set VUE_ENV\n var _isServer;\n var isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && typeof global !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer =\n global['process'] && global['process'].env.VUE_ENV === 'server';\n }\n else {\n _isServer = false;\n }\n }\n return _isServer;\n };\n // detect devtools\n var devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n /* istanbul ignore next */\n function isNative(Ctor) {\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString());\n }\n var hasSymbol = typeof Symbol !== 'undefined' &&\n isNative(Symbol) &&\n typeof Reflect !== 'undefined' &&\n isNative(Reflect.ownKeys);\n var _Set; // $flow-disable-line\n /* istanbul ignore if */ if (typeof Set !== 'undefined' && isNative(Set)) {\n // use native Set when available.\n _Set = Set;\n }\n else {\n // a non-standard Set polyfill that only works with primitive keys.\n _Set = /** @class */ (function () {\n function Set() {\n this.set = Object.create(null);\n }\n Set.prototype.has = function (key) {\n return this.set[key] === true;\n };\n Set.prototype.add = function (key) {\n this.set[key] = true;\n };\n Set.prototype.clear = function () {\n this.set = Object.create(null);\n };\n return Set;\n }());\n }\n\n var currentInstance = null;\n /**\n * This is exposed for compatibility with v3 (e.g. some functions in VueUse\n * relies on it). Do not use this internally, just use `currentInstance`.\n *\n * @internal this function needs manual type declaration because it relies\n * on previously manually authored types from Vue 2\n */\n function getCurrentInstance() {\n return currentInstance && { proxy: currentInstance };\n }\n /**\n * @internal\n */\n function setCurrentInstance(vm) {\n if (vm === void 0) { vm = null; }\n if (!vm)\n currentInstance && currentInstance._scope.off();\n currentInstance = vm;\n vm && vm._scope.on();\n }\n\n /**\n * @internal\n */\n var VNode = /** @class */ (function () {\n function VNode(tag, data, children, text, elm, context, componentOptions, asyncFactory) {\n this.tag = tag;\n this.data = data;\n this.children = children;\n this.text = text;\n this.elm = elm;\n this.ns = undefined;\n this.context = context;\n this.fnContext = undefined;\n this.fnOptions = undefined;\n this.fnScopeId = undefined;\n this.key = data && data.key;\n this.componentOptions = componentOptions;\n this.componentInstance = undefined;\n this.parent = undefined;\n this.raw = false;\n this.isStatic = false;\n this.isRootInsert = true;\n this.isComment = false;\n this.isCloned = false;\n this.isOnce = false;\n this.asyncFactory = asyncFactory;\n this.asyncMeta = undefined;\n this.isAsyncPlaceholder = false;\n }\n Object.defineProperty(VNode.prototype, \"child\", {\n // DEPRECATED: alias for componentInstance for backwards compat.\n /* istanbul ignore next */\n get: function () {\n return this.componentInstance;\n },\n enumerable: false,\n configurable: true\n });\n return VNode;\n }());\n var createEmptyVNode = function (text) {\n if (text === void 0) { text = ''; }\n var node = new VNode();\n node.text = text;\n node.isComment = true;\n return node;\n };\n function createTextVNode(val) {\n return new VNode(undefined, undefined, undefined, String(val));\n }\n // optimized shallow clone\n // used for static nodes and slot nodes because they may be reused across\n // multiple renders, cloning them avoids errors when DOM manipulations rely\n // on their elm reference.\n function cloneVNode(vnode) {\n var cloned = new VNode(vnode.tag, vnode.data, \n // #7975\n // clone children array to avoid mutating original in case of cloning\n // a child.\n vnode.children && vnode.children.slice(), vnode.text, vnode.elm, vnode.context, vnode.componentOptions, vnode.asyncFactory);\n cloned.ns = vnode.ns;\n cloned.isStatic = vnode.isStatic;\n cloned.key = vnode.key;\n cloned.isComment = vnode.isComment;\n cloned.fnContext = vnode.fnContext;\n cloned.fnOptions = vnode.fnOptions;\n cloned.fnScopeId = vnode.fnScopeId;\n cloned.asyncMeta = vnode.asyncMeta;\n cloned.isCloned = true;\n return cloned;\n }\n\n /* not type checking this file because flow doesn't play well with Proxy */\n var initProxy;\n {\n var allowedGlobals_1 = makeMap('Infinity,undefined,NaN,isFinite,isNaN,' +\n 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,' +\n 'require' // for Webpack/Browserify\n );\n var warnNonPresent_1 = function (target, key) {\n warn$2(\"Property or method \\\"\".concat(key, \"\\\" is not defined on the instance but \") +\n 'referenced during render. Make sure that this property is reactive, ' +\n 'either in the data option, or for class-based components, by ' +\n 'initializing the property. ' +\n 'See: https://v2.vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.', target);\n };\n var warnReservedPrefix_1 = function (target, key) {\n warn$2(\"Property \\\"\".concat(key, \"\\\" must be accessed with \\\"$data.\").concat(key, \"\\\" because \") +\n 'properties starting with \"$\" or \"_\" are not proxied in the Vue instance to ' +\n 'prevent conflicts with Vue internals. ' +\n 'See: https://v2.vuejs.org/v2/api/#data', target);\n };\n var hasProxy_1 = typeof Proxy !== 'undefined' && isNative(Proxy);\n if (hasProxy_1) {\n var isBuiltInModifier_1 = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');\n config.keyCodes = new Proxy(config.keyCodes, {\n set: function (target, key, value) {\n if (isBuiltInModifier_1(key)) {\n warn$2(\"Avoid overwriting built-in modifier in config.keyCodes: .\".concat(key));\n return false;\n }\n else {\n target[key] = value;\n return true;\n }\n }\n });\n }\n var hasHandler_1 = {\n has: function (target, key) {\n var has = key in target;\n var isAllowed = allowedGlobals_1(key) ||\n (typeof key === 'string' &&\n key.charAt(0) === '_' &&\n !(key in target.$data));\n if (!has && !isAllowed) {\n if (key in target.$data)\n warnReservedPrefix_1(target, key);\n else\n warnNonPresent_1(target, key);\n }\n return has || !isAllowed;\n }\n };\n var getHandler_1 = {\n get: function (target, key) {\n if (typeof key === 'string' && !(key in target)) {\n if (key in target.$data)\n warnReservedPrefix_1(target, key);\n else\n warnNonPresent_1(target, key);\n }\n return target[key];\n }\n };\n initProxy = function initProxy(vm) {\n if (hasProxy_1) {\n // determine which proxy handler to use\n var options = vm.$options;\n var handlers = options.render && options.render._withStripped ? getHandler_1 : hasHandler_1;\n vm._renderProxy = new Proxy(vm, handlers);\n }\n else {\n vm._renderProxy = vm;\n }\n };\n }\n\n /******************************************************************************\r\n Copyright (c) Microsoft Corporation.\r\n\r\n Permission to use, copy, modify, and/or distribute this software for any\r\n purpose with or without fee is hereby granted.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\n REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\n AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\n INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\n LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\n OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\n PERFORMANCE OF THIS SOFTWARE.\r\n ***************************************************************************** */\r\n\r\n var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n };\n\n var uid$2 = 0;\n var pendingCleanupDeps = [];\n var cleanupDeps = function () {\n for (var i = 0; i < pendingCleanupDeps.length; i++) {\n var dep = pendingCleanupDeps[i];\n dep.subs = dep.subs.filter(function (s) { return s; });\n dep._pending = false;\n }\n pendingCleanupDeps.length = 0;\n };\n /**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n * @internal\n */\n var Dep = /** @class */ (function () {\n function Dep() {\n // pending subs cleanup\n this._pending = false;\n this.id = uid$2++;\n this.subs = [];\n }\n Dep.prototype.addSub = function (sub) {\n this.subs.push(sub);\n };\n Dep.prototype.removeSub = function (sub) {\n // #12696 deps with massive amount of subscribers are extremely slow to\n // clean up in Chromium\n // to workaround this, we unset the sub for now, and clear them on\n // next scheduler flush.\n this.subs[this.subs.indexOf(sub)] = null;\n if (!this._pending) {\n this._pending = true;\n pendingCleanupDeps.push(this);\n }\n };\n Dep.prototype.depend = function (info) {\n if (Dep.target) {\n Dep.target.addDep(this);\n if (info && Dep.target.onTrack) {\n Dep.target.onTrack(__assign({ effect: Dep.target }, info));\n }\n }\n };\n Dep.prototype.notify = function (info) {\n // stabilize the subscriber list first\n var subs = this.subs.filter(function (s) { return s; });\n if (!config.async) {\n // subs aren't sorted in scheduler if not running async\n // we need to sort them now to make sure they fire in correct\n // order\n subs.sort(function (a, b) { return a.id - b.id; });\n }\n for (var i = 0, l = subs.length; i < l; i++) {\n var sub = subs[i];\n if (info) {\n sub.onTrigger &&\n sub.onTrigger(__assign({ effect: subs[i] }, info));\n }\n sub.update();\n }\n };\n return Dep;\n }());\n // The current target watcher being evaluated.\n // This is globally unique because only one watcher\n // can be evaluated at a time.\n Dep.target = null;\n var targetStack = [];\n function pushTarget(target) {\n targetStack.push(target);\n Dep.target = target;\n }\n function popTarget() {\n targetStack.pop();\n Dep.target = targetStack[targetStack.length - 1];\n }\n\n /*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\n var arrayProto = Array.prototype;\n var arrayMethods = Object.create(arrayProto);\n var methodsToPatch = [\n 'push',\n 'pop',\n 'shift',\n 'unshift',\n 'splice',\n 'sort',\n 'reverse'\n ];\n /**\n * Intercept mutating methods and emit events\n */\n methodsToPatch.forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n switch (method) {\n case 'push':\n case 'unshift':\n inserted = args;\n break;\n case 'splice':\n inserted = args.slice(2);\n break;\n }\n if (inserted)\n ob.observeArray(inserted);\n // notify change\n {\n ob.dep.notify({\n type: \"array mutation\" /* TriggerOpTypes.ARRAY_MUTATION */,\n target: this,\n key: method\n });\n }\n return result;\n });\n });\n\n var arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n var NO_INIITIAL_VALUE = {};\n /**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\n var shouldObserve = true;\n function toggleObserving(value) {\n shouldObserve = value;\n }\n // ssr mock dep\n var mockDep = {\n notify: noop,\n depend: noop,\n addSub: noop,\n removeSub: noop\n };\n /**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\n var Observer = /** @class */ (function () {\n function Observer(value, shallow, mock) {\n if (shallow === void 0) { shallow = false; }\n if (mock === void 0) { mock = false; }\n this.value = value;\n this.shallow = shallow;\n this.mock = mock;\n // this.value = value\n this.dep = mock ? mockDep : new Dep();\n this.vmCount = 0;\n def(value, '__ob__', this);\n if (isArray(value)) {\n if (!mock) {\n if (hasProto) {\n value.__proto__ = arrayMethods;\n /* eslint-enable no-proto */\n }\n else {\n for (var i = 0, l = arrayKeys.length; i < l; i++) {\n var key = arrayKeys[i];\n def(value, key, arrayMethods[key]);\n }\n }\n }\n if (!shallow) {\n this.observeArray(value);\n }\n }\n else {\n /**\n * Walk through all properties and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\n var keys = Object.keys(value);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n defineReactive(value, key, NO_INIITIAL_VALUE, undefined, shallow, mock);\n }\n }\n }\n /**\n * Observe a list of Array items.\n */\n Observer.prototype.observeArray = function (value) {\n for (var i = 0, l = value.length; i < l; i++) {\n observe(value[i], false, this.mock);\n }\n };\n return Observer;\n }());\n // helpers\n /**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\n function observe(value, shallow, ssrMockReactivity) {\n if (value && hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n return value.__ob__;\n }\n if (shouldObserve &&\n (ssrMockReactivity || !isServerRendering()) &&\n (isArray(value) || isPlainObject(value)) &&\n Object.isExtensible(value) &&\n !value.__v_skip /* ReactiveFlags.SKIP */ &&\n !isRef(value) &&\n !(value instanceof VNode)) {\n return new Observer(value, shallow, ssrMockReactivity);\n }\n }\n /**\n * Define a reactive property on an Object.\n */\n function defineReactive(obj, key, val, customSetter, shallow, mock) {\n var dep = new Dep();\n var property = Object.getOwnPropertyDescriptor(obj, key);\n if (property && property.configurable === false) {\n return;\n }\n // cater for pre-defined getter/setters\n var getter = property && property.get;\n var setter = property && property.set;\n if ((!getter || setter) &&\n (val === NO_INIITIAL_VALUE || arguments.length === 2)) {\n val = obj[key];\n }\n var childOb = !shallow && observe(val, false, mock);\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get: function reactiveGetter() {\n var value = getter ? getter.call(obj) : val;\n if (Dep.target) {\n {\n dep.depend({\n target: obj,\n type: \"get\" /* TrackOpTypes.GET */,\n key: key\n });\n }\n if (childOb) {\n childOb.dep.depend();\n if (isArray(value)) {\n dependArray(value);\n }\n }\n }\n return isRef(value) && !shallow ? value.value : value;\n },\n set: function reactiveSetter(newVal) {\n var value = getter ? getter.call(obj) : val;\n if (!hasChanged(value, newVal)) {\n return;\n }\n if (customSetter) {\n customSetter();\n }\n if (setter) {\n setter.call(obj, newVal);\n }\n else if (getter) {\n // #7981: for accessor properties without setter\n return;\n }\n else if (!shallow && isRef(value) && !isRef(newVal)) {\n value.value = newVal;\n return;\n }\n else {\n val = newVal;\n }\n childOb = !shallow && observe(newVal, false, mock);\n {\n dep.notify({\n type: \"set\" /* TriggerOpTypes.SET */,\n target: obj,\n key: key,\n newValue: newVal,\n oldValue: value\n });\n }\n }\n });\n return dep;\n }\n function set(target, key, val) {\n if ((isUndef(target) || isPrimitive(target))) {\n warn$2(\"Cannot set reactive property on undefined, null, or primitive value: \".concat(target));\n }\n if (isReadonly(target)) {\n warn$2(\"Set operation on key \\\"\".concat(key, \"\\\" failed: target is readonly.\"));\n return;\n }\n var ob = target.__ob__;\n if (isArray(target) && isValidArrayIndex(key)) {\n target.length = Math.max(target.length, key);\n target.splice(key, 1, val);\n // when mocking for SSR, array methods are not hijacked\n if (ob && !ob.shallow && ob.mock) {\n observe(val, false, true);\n }\n return val;\n }\n if (key in target && !(key in Object.prototype)) {\n target[key] = val;\n return val;\n }\n if (target._isVue || (ob && ob.vmCount)) {\n warn$2('Avoid adding reactive properties to a Vue instance or its root $data ' +\n 'at runtime - declare it upfront in the data option.');\n return val;\n }\n if (!ob) {\n target[key] = val;\n return val;\n }\n defineReactive(ob.value, key, val, undefined, ob.shallow, ob.mock);\n {\n ob.dep.notify({\n type: \"add\" /* TriggerOpTypes.ADD */,\n target: target,\n key: key,\n newValue: val,\n oldValue: undefined\n });\n }\n return val;\n }\n function del(target, key) {\n if ((isUndef(target) || isPrimitive(target))) {\n warn$2(\"Cannot delete reactive property on undefined, null, or primitive value: \".concat(target));\n }\n if (isArray(target) && isValidArrayIndex(key)) {\n target.splice(key, 1);\n return;\n }\n var ob = target.__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n warn$2('Avoid deleting properties on a Vue instance or its root $data ' +\n '- just set it to null.');\n return;\n }\n if (isReadonly(target)) {\n warn$2(\"Delete operation on key \\\"\".concat(key, \"\\\" failed: target is readonly.\"));\n return;\n }\n if (!hasOwn(target, key)) {\n return;\n }\n delete target[key];\n if (!ob) {\n return;\n }\n {\n ob.dep.notify({\n type: \"delete\" /* TriggerOpTypes.DELETE */,\n target: target,\n key: key\n });\n }\n }\n /**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\n function dependArray(value) {\n for (var e = void 0, i = 0, l = value.length; i < l; i++) {\n e = value[i];\n if (e && e.__ob__) {\n e.__ob__.dep.depend();\n }\n if (isArray(e)) {\n dependArray(e);\n }\n }\n }\n\n function reactive(target) {\n makeReactive(target, false);\n return target;\n }\n /**\n * Return a shallowly-reactive copy of the original object, where only the root\n * level properties are reactive. It also does not auto-unwrap refs (even at the\n * root level).\n */\n function shallowReactive(target) {\n makeReactive(target, true);\n def(target, \"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */, true);\n return target;\n }\n function makeReactive(target, shallow) {\n // if trying to observe a readonly proxy, return the readonly version.\n if (!isReadonly(target)) {\n {\n if (isArray(target)) {\n warn$2(\"Avoid using Array as root value for \".concat(shallow ? \"shallowReactive()\" : \"reactive()\", \" as it cannot be tracked in watch() or watchEffect(). Use \").concat(shallow ? \"shallowRef()\" : \"ref()\", \" instead. This is a Vue-2-only limitation.\"));\n }\n var existingOb = target && target.__ob__;\n if (existingOb && existingOb.shallow !== shallow) {\n warn$2(\"Target is already a \".concat(existingOb.shallow ? \"\" : \"non-\", \"shallow reactive object, and cannot be converted to \").concat(shallow ? \"\" : \"non-\", \"shallow.\"));\n }\n }\n var ob = observe(target, shallow, isServerRendering() /* ssr mock reactivity */);\n if (!ob) {\n if (target == null || isPrimitive(target)) {\n warn$2(\"value cannot be made reactive: \".concat(String(target)));\n }\n if (isCollectionType(target)) {\n warn$2(\"Vue 2 does not support reactive collection types such as Map or Set.\");\n }\n }\n }\n }\n function isReactive(value) {\n if (isReadonly(value)) {\n return isReactive(value[\"__v_raw\" /* ReactiveFlags.RAW */]);\n }\n return !!(value && value.__ob__);\n }\n function isShallow(value) {\n return !!(value && value.__v_isShallow);\n }\n function isReadonly(value) {\n return !!(value && value.__v_isReadonly);\n }\n function isProxy(value) {\n return isReactive(value) || isReadonly(value);\n }\n function toRaw(observed) {\n var raw = observed && observed[\"__v_raw\" /* ReactiveFlags.RAW */];\n return raw ? toRaw(raw) : observed;\n }\n function markRaw(value) {\n // non-extensible objects won't be observed anyway\n if (Object.isExtensible(value)) {\n def(value, \"__v_skip\" /* ReactiveFlags.SKIP */, true);\n }\n return value;\n }\n /**\n * @internal\n */\n function isCollectionType(value) {\n var type = toRawType(value);\n return (type === 'Map' || type === 'WeakMap' || type === 'Set' || type === 'WeakSet');\n }\n\n /**\n * @internal\n */\n var RefFlag = \"__v_isRef\";\n function isRef(r) {\n return !!(r && r.__v_isRef === true);\n }\n function ref$1(value) {\n return createRef(value, false);\n }\n function shallowRef(value) {\n return createRef(value, true);\n }\n function createRef(rawValue, shallow) {\n if (isRef(rawValue)) {\n return rawValue;\n }\n var ref = {};\n def(ref, RefFlag, true);\n def(ref, \"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */, shallow);\n def(ref, 'dep', defineReactive(ref, 'value', rawValue, null, shallow, isServerRendering()));\n return ref;\n }\n function triggerRef(ref) {\n if (!ref.dep) {\n warn$2(\"received object is not a triggerable ref.\");\n }\n {\n ref.dep &&\n ref.dep.notify({\n type: \"set\" /* TriggerOpTypes.SET */,\n target: ref,\n key: 'value'\n });\n }\n }\n function unref(ref) {\n return isRef(ref) ? ref.value : ref;\n }\n function proxyRefs(objectWithRefs) {\n if (isReactive(objectWithRefs)) {\n return objectWithRefs;\n }\n var proxy = {};\n var keys = Object.keys(objectWithRefs);\n for (var i = 0; i < keys.length; i++) {\n proxyWithRefUnwrap(proxy, objectWithRefs, keys[i]);\n }\n return proxy;\n }\n function proxyWithRefUnwrap(target, source, key) {\n Object.defineProperty(target, key, {\n enumerable: true,\n configurable: true,\n get: function () {\n var val = source[key];\n if (isRef(val)) {\n return val.value;\n }\n else {\n var ob = val && val.__ob__;\n if (ob)\n ob.dep.depend();\n return val;\n }\n },\n set: function (value) {\n var oldValue = source[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n }\n else {\n source[key] = value;\n }\n }\n });\n }\n function customRef(factory) {\n var dep = new Dep();\n var _a = factory(function () {\n {\n dep.depend({\n target: ref,\n type: \"get\" /* TrackOpTypes.GET */,\n key: 'value'\n });\n }\n }, function () {\n {\n dep.notify({\n target: ref,\n type: \"set\" /* TriggerOpTypes.SET */,\n key: 'value'\n });\n }\n }), get = _a.get, set = _a.set;\n var ref = {\n get value() {\n return get();\n },\n set value(newVal) {\n set(newVal);\n }\n };\n def(ref, RefFlag, true);\n return ref;\n }\n function toRefs(object) {\n if (!isReactive(object)) {\n warn$2(\"toRefs() expects a reactive object but received a plain one.\");\n }\n var ret = isArray(object) ? new Array(object.length) : {};\n for (var key in object) {\n ret[key] = toRef(object, key);\n }\n return ret;\n }\n function toRef(object, key, defaultValue) {\n var val = object[key];\n if (isRef(val)) {\n return val;\n }\n var ref = {\n get value() {\n var val = object[key];\n return val === undefined ? defaultValue : val;\n },\n set value(newVal) {\n object[key] = newVal;\n }\n };\n def(ref, RefFlag, true);\n return ref;\n }\n\n var rawToReadonlyFlag = \"__v_rawToReadonly\";\n var rawToShallowReadonlyFlag = \"__v_rawToShallowReadonly\";\n function readonly(target) {\n return createReadonly(target, false);\n }\n function createReadonly(target, shallow) {\n if (!isPlainObject(target)) {\n {\n if (isArray(target)) {\n warn$2(\"Vue 2 does not support readonly arrays.\");\n }\n else if (isCollectionType(target)) {\n warn$2(\"Vue 2 does not support readonly collection types such as Map or Set.\");\n }\n else {\n warn$2(\"value cannot be made readonly: \".concat(typeof target));\n }\n }\n return target;\n }\n if (!Object.isExtensible(target)) {\n warn$2(\"Vue 2 does not support creating readonly proxy for non-extensible object.\");\n }\n // already a readonly object\n if (isReadonly(target)) {\n return target;\n }\n // already has a readonly proxy\n var existingFlag = shallow ? rawToShallowReadonlyFlag : rawToReadonlyFlag;\n var existingProxy = target[existingFlag];\n if (existingProxy) {\n return existingProxy;\n }\n var proxy = Object.create(Object.getPrototypeOf(target));\n def(target, existingFlag, proxy);\n def(proxy, \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */, true);\n def(proxy, \"__v_raw\" /* ReactiveFlags.RAW */, target);\n if (isRef(target)) {\n def(proxy, RefFlag, true);\n }\n if (shallow || isShallow(target)) {\n def(proxy, \"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */, true);\n }\n var keys = Object.keys(target);\n for (var i = 0; i < keys.length; i++) {\n defineReadonlyProperty(proxy, target, keys[i], shallow);\n }\n return proxy;\n }\n function defineReadonlyProperty(proxy, target, key, shallow) {\n Object.defineProperty(proxy, key, {\n enumerable: true,\n configurable: true,\n get: function () {\n var val = target[key];\n return shallow || !isPlainObject(val) ? val : readonly(val);\n },\n set: function () {\n warn$2(\"Set operation on key \\\"\".concat(key, \"\\\" failed: target is readonly.\"));\n }\n });\n }\n /**\n * Returns a reactive-copy of the original object, where only the root level\n * properties are readonly, and does NOT unwrap refs nor recursively convert\n * returned properties.\n * This is used for creating the props proxy object for stateful components.\n */\n function shallowReadonly(target) {\n return createReadonly(target, true);\n }\n\n function computed(getterOrOptions, debugOptions) {\n var getter;\n var setter;\n var onlyGetter = isFunction(getterOrOptions);\n if (onlyGetter) {\n getter = getterOrOptions;\n setter = function () {\n warn$2('Write operation failed: computed value is readonly');\n }\n ;\n }\n else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n var watcher = isServerRendering()\n ? null\n : new Watcher(currentInstance, getter, noop, { lazy: true });\n if (watcher && debugOptions) {\n watcher.onTrack = debugOptions.onTrack;\n watcher.onTrigger = debugOptions.onTrigger;\n }\n var ref = {\n // some libs rely on the presence effect for checking computed refs\n // from normal refs, but the implementation doesn't matter\n effect: watcher,\n get value() {\n if (watcher) {\n if (watcher.dirty) {\n watcher.evaluate();\n }\n if (Dep.target) {\n if (Dep.target.onTrack) {\n Dep.target.onTrack({\n effect: Dep.target,\n target: ref,\n type: \"get\" /* TrackOpTypes.GET */,\n key: 'value'\n });\n }\n watcher.depend();\n }\n return watcher.value;\n }\n else {\n return getter();\n }\n },\n set value(newVal) {\n setter(newVal);\n }\n };\n def(ref, RefFlag, true);\n def(ref, \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */, onlyGetter);\n return ref;\n }\n\n var mark;\n var measure;\n {\n var perf_1 = inBrowser && window.performance;\n /* istanbul ignore if */\n if (perf_1 &&\n // @ts-ignore\n perf_1.mark &&\n // @ts-ignore\n perf_1.measure &&\n // @ts-ignore\n perf_1.clearMarks &&\n // @ts-ignore\n perf_1.clearMeasures) {\n mark = function (tag) { return perf_1.mark(tag); };\n measure = function (name, startTag, endTag) {\n perf_1.measure(name, startTag, endTag);\n perf_1.clearMarks(startTag);\n perf_1.clearMarks(endTag);\n // perf.clearMeasures(name)\n };\n }\n }\n\n var normalizeEvent = cached(function (name) {\n var passive = name.charAt(0) === '&';\n name = passive ? name.slice(1) : name;\n var once = name.charAt(0) === '~'; // Prefixed last, checked first\n name = once ? name.slice(1) : name;\n var capture = name.charAt(0) === '!';\n name = capture ? name.slice(1) : name;\n return {\n name: name,\n once: once,\n capture: capture,\n passive: passive\n };\n });\n function createFnInvoker(fns, vm) {\n function invoker() {\n var fns = invoker.fns;\n if (isArray(fns)) {\n var cloned = fns.slice();\n for (var i = 0; i < cloned.length; i++) {\n invokeWithErrorHandling(cloned[i], null, arguments, vm, \"v-on handler\");\n }\n }\n else {\n // return handler return value for single handlers\n return invokeWithErrorHandling(fns, null, arguments, vm, \"v-on handler\");\n }\n }\n invoker.fns = fns;\n return invoker;\n }\n function updateListeners(on, oldOn, add, remove, createOnceHandler, vm) {\n var name, cur, old, event;\n for (name in on) {\n cur = on[name];\n old = oldOn[name];\n event = normalizeEvent(name);\n if (isUndef(cur)) {\n warn$2(\"Invalid handler for event \\\"\".concat(event.name, \"\\\": got \") + String(cur), vm);\n }\n else if (isUndef(old)) {\n if (isUndef(cur.fns)) {\n cur = on[name] = createFnInvoker(cur, vm);\n }\n if (isTrue(event.once)) {\n cur = on[name] = createOnceHandler(event.name, cur, event.capture);\n }\n add(event.name, cur, event.capture, event.passive, event.params);\n }\n else if (cur !== old) {\n old.fns = cur;\n on[name] = old;\n }\n }\n for (name in oldOn) {\n if (isUndef(on[name])) {\n event = normalizeEvent(name);\n remove(event.name, oldOn[name], event.capture);\n }\n }\n }\n\n function mergeVNodeHook(def, hookKey, hook) {\n if (def instanceof VNode) {\n def = def.data.hook || (def.data.hook = {});\n }\n var invoker;\n var oldHook = def[hookKey];\n function wrappedHook() {\n hook.apply(this, arguments);\n // important: remove merged hook to ensure it's called only once\n // and prevent memory leak\n remove$2(invoker.fns, wrappedHook);\n }\n if (isUndef(oldHook)) {\n // no existing hook\n invoker = createFnInvoker([wrappedHook]);\n }\n else {\n /* istanbul ignore if */\n if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {\n // already a merged invoker\n invoker = oldHook;\n invoker.fns.push(wrappedHook);\n }\n else {\n // existing plain hook\n invoker = createFnInvoker([oldHook, wrappedHook]);\n }\n }\n invoker.merged = true;\n def[hookKey] = invoker;\n }\n\n function extractPropsFromVNodeData(data, Ctor, tag) {\n // we are only extracting raw values here.\n // validation and default values are handled in the child\n // component itself.\n var propOptions = Ctor.options.props;\n if (isUndef(propOptions)) {\n return;\n }\n var res = {};\n var attrs = data.attrs, props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n {\n var keyInLowerCase = key.toLowerCase();\n if (key !== keyInLowerCase && attrs && hasOwn(attrs, keyInLowerCase)) {\n tip(\"Prop \\\"\".concat(keyInLowerCase, \"\\\" is passed to component \") +\n \"\".concat(formatComponentName(\n // @ts-expect-error tag is string\n tag || Ctor), \", but the declared prop name is\") +\n \" \\\"\".concat(key, \"\\\". \") +\n \"Note that HTML attributes are case-insensitive and camelCased \" +\n \"props need to use their kebab-case equivalents when using in-DOM \" +\n \"templates. You should probably use \\\"\".concat(altKey, \"\\\" instead of \\\"\").concat(key, \"\\\".\"));\n }\n }\n checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n }\n }\n return res;\n }\n function checkProp(res, hash, key, altKey, preserve) {\n if (isDef(hash)) {\n if (hasOwn(hash, key)) {\n res[key] = hash[key];\n if (!preserve) {\n delete hash[key];\n }\n return true;\n }\n else if (hasOwn(hash, altKey)) {\n res[key] = hash[altKey];\n if (!preserve) {\n delete hash[altKey];\n }\n return true;\n }\n }\n return false;\n }\n\n // The template compiler attempts to minimize the need for normalization by\n // statically analyzing the template at compile time.\n //\n // For plain HTML markup, normalization can be completely skipped because the\n // generated render function is guaranteed to return Array<VNode>. There are\n // two cases where extra normalization is needed:\n // 1. When the children contains components - because a functional component\n // may return an Array instead of a single root. In this case, just a simple\n // normalization is needed - if any child is an Array, we flatten the whole\n // thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n // because functional components already normalize their own children.\n function simpleNormalizeChildren(children) {\n for (var i = 0; i < children.length; i++) {\n if (isArray(children[i])) {\n return Array.prototype.concat.apply([], children);\n }\n }\n return children;\n }\n // 2. When the children contains constructs that always generated nested Arrays,\n // e.g. <template>, <slot>, v-for, or when the children is provided by user\n // with hand-written render functions / JSX. In such cases a full normalization\n // is needed to cater to all possible types of children values.\n function normalizeChildren(children) {\n return isPrimitive(children)\n ? [createTextVNode(children)]\n : isArray(children)\n ? normalizeArrayChildren(children)\n : undefined;\n }\n function isTextNode(node) {\n return isDef(node) && isDef(node.text) && isFalse(node.isComment);\n }\n function normalizeArrayChildren(children, nestedIndex) {\n var res = [];\n var i, c, lastIndex, last;\n for (i = 0; i < children.length; i++) {\n c = children[i];\n if (isUndef(c) || typeof c === 'boolean')\n continue;\n lastIndex = res.length - 1;\n last = res[lastIndex];\n // nested\n if (isArray(c)) {\n if (c.length > 0) {\n c = normalizeArrayChildren(c, \"\".concat(nestedIndex || '', \"_\").concat(i));\n // merge adjacent text nodes\n if (isTextNode(c[0]) && isTextNode(last)) {\n res[lastIndex] = createTextVNode(last.text + c[0].text);\n c.shift();\n }\n res.push.apply(res, c);\n }\n }\n else if (isPrimitive(c)) {\n if (isTextNode(last)) {\n // merge adjacent text nodes\n // this is necessary for SSR hydration because text nodes are\n // essentially merged when rendered to HTML strings\n res[lastIndex] = createTextVNode(last.text + c);\n }\n else if (c !== '') {\n // convert primitive to vnode\n res.push(createTextVNode(c));\n }\n }\n else {\n if (isTextNode(c) && isTextNode(last)) {\n // merge adjacent text nodes\n res[lastIndex] = createTextVNode(last.text + c.text);\n }\n else {\n // default key for nested array children (likely generated by v-for)\n if (isTrue(children._isVList) &&\n isDef(c.tag) &&\n isUndef(c.key) &&\n isDef(nestedIndex)) {\n c.key = \"__vlist\".concat(nestedIndex, \"_\").concat(i, \"__\");\n }\n res.push(c);\n }\n }\n }\n return res;\n }\n\n var SIMPLE_NORMALIZE = 1;\n var ALWAYS_NORMALIZE = 2;\n // wrapper function for providing a more flexible interface\n // without getting yelled at by flow\n function createElement$1(context, tag, data, children, normalizationType, alwaysNormalize) {\n if (isArray(data) || isPrimitive(data)) {\n normalizationType = children;\n children = data;\n data = undefined;\n }\n if (isTrue(alwaysNormalize)) {\n normalizationType = ALWAYS_NORMALIZE;\n }\n return _createElement(context, tag, data, children, normalizationType);\n }\n function _createElement(context, tag, data, children, normalizationType) {\n if (isDef(data) && isDef(data.__ob__)) {\n warn$2(\"Avoid using observed data object as vnode data: \".concat(JSON.stringify(data), \"\\n\") + 'Always create fresh vnode data objects in each render!', context);\n return createEmptyVNode();\n }\n // object syntax in v-bind\n if (isDef(data) && isDef(data.is)) {\n tag = data.is;\n }\n if (!tag) {\n // in case of component :is set to falsy value\n return createEmptyVNode();\n }\n // warn against non-primitive key\n if (isDef(data) && isDef(data.key) && !isPrimitive(data.key)) {\n warn$2('Avoid using non-primitive value as key, ' +\n 'use string/number value instead.', context);\n }\n // support single function children as default scoped slot\n if (isArray(children) && isFunction(children[0])) {\n data = data || {};\n data.scopedSlots = { default: children[0] };\n children.length = 0;\n }\n if (normalizationType === ALWAYS_NORMALIZE) {\n children = normalizeChildren(children);\n }\n else if (normalizationType === SIMPLE_NORMALIZE) {\n children = simpleNormalizeChildren(children);\n }\n var vnode, ns;\n if (typeof tag === 'string') {\n var Ctor = void 0;\n ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag);\n if (config.isReservedTag(tag)) {\n // platform built-in elements\n if (isDef(data) &&\n isDef(data.nativeOn) &&\n data.tag !== 'component') {\n warn$2(\"The .native modifier for v-on is only valid on components but it was used on <\".concat(tag, \">.\"), context);\n }\n vnode = new VNode(config.parsePlatformTagName(tag), data, children, undefined, undefined, context);\n }\n else if ((!data || !data.pre) &&\n isDef((Ctor = resolveAsset(context.$options, 'components', tag)))) {\n // component\n vnode = createComponent(Ctor, data, context, children, tag);\n }\n else {\n // unknown or unlisted namespaced elements\n // check at runtime because it may get assigned a namespace when its\n // parent normalizes children\n vnode = new VNode(tag, data, children, undefined, undefined, context);\n }\n }\n else {\n // direct component options / constructor\n vnode = createComponent(tag, data, context, children);\n }\n if (isArray(vnode)) {\n return vnode;\n }\n else if (isDef(vnode)) {\n if (isDef(ns))\n applyNS(vnode, ns);\n if (isDef(data))\n registerDeepBindings(data);\n return vnode;\n }\n else {\n return createEmptyVNode();\n }\n }\n function applyNS(vnode, ns, force) {\n vnode.ns = ns;\n if (vnode.tag === 'foreignObject') {\n // use default namespace inside foreignObject\n ns = undefined;\n force = true;\n }\n if (isDef(vnode.children)) {\n for (var i = 0, l = vnode.children.length; i < l; i++) {\n var child = vnode.children[i];\n if (isDef(child.tag) &&\n (isUndef(child.ns) || (isTrue(force) && child.tag !== 'svg'))) {\n applyNS(child, ns, force);\n }\n }\n }\n }\n // ref #5318\n // necessary to ensure parent re-render when deep bindings like :style and\n // :class are used on slot nodes\n function registerDeepBindings(data) {\n if (isObject(data.style)) {\n traverse(data.style);\n }\n if (isObject(data.class)) {\n traverse(data.class);\n }\n }\n\n /**\n * Runtime helper for rendering v-for lists.\n */\n function renderList(val, render) {\n var ret = null, i, l, keys, key;\n if (isArray(val) || typeof val === 'string') {\n ret = new Array(val.length);\n for (i = 0, l = val.length; i < l; i++) {\n ret[i] = render(val[i], i);\n }\n }\n else if (typeof val === 'number') {\n ret = new Array(val);\n for (i = 0; i < val; i++) {\n ret[i] = render(i + 1, i);\n }\n }\n else if (isObject(val)) {\n if (hasSymbol && val[Symbol.iterator]) {\n ret = [];\n var iterator = val[Symbol.iterator]();\n var result = iterator.next();\n while (!result.done) {\n ret.push(render(result.value, ret.length));\n result = iterator.next();\n }\n }\n else {\n keys = Object.keys(val);\n ret = new Array(keys.length);\n for (i = 0, l = keys.length; i < l; i++) {\n key = keys[i];\n ret[i] = render(val[key], key, i);\n }\n }\n }\n if (!isDef(ret)) {\n ret = [];\n }\n ret._isVList = true;\n return ret;\n }\n\n /**\n * Runtime helper for rendering <slot>\n */\n function renderSlot(name, fallbackRender, props, bindObject) {\n var scopedSlotFn = this.$scopedSlots[name];\n var nodes;\n if (scopedSlotFn) {\n // scoped slot\n props = props || {};\n if (bindObject) {\n if (!isObject(bindObject)) {\n warn$2('slot v-bind without argument expects an Object', this);\n }\n props = extend(extend({}, bindObject), props);\n }\n nodes =\n scopedSlotFn(props) ||\n (isFunction(fallbackRender) ? fallbackRender() : fallbackRender);\n }\n else {\n nodes =\n this.$slots[name] ||\n (isFunction(fallbackRender) ? fallbackRender() : fallbackRender);\n }\n var target = props && props.slot;\n if (target) {\n return this.$createElement('template', { slot: target }, nodes);\n }\n else {\n return nodes;\n }\n }\n\n /**\n * Runtime helper for resolving filters\n */\n function resolveFilter(id) {\n return resolveAsset(this.$options, 'filters', id, true) || identity;\n }\n\n function isKeyNotMatch(expect, actual) {\n if (isArray(expect)) {\n return expect.indexOf(actual) === -1;\n }\n else {\n return expect !== actual;\n }\n }\n /**\n * Runtime helper for checking keyCodes from config.\n * exposed as Vue.prototype._k\n * passing in eventKeyName as last argument separately for backwards compat\n */\n function checkKeyCodes(eventKeyCode, key, builtInKeyCode, eventKeyName, builtInKeyName) {\n var mappedKeyCode = config.keyCodes[key] || builtInKeyCode;\n if (builtInKeyName && eventKeyName && !config.keyCodes[key]) {\n return isKeyNotMatch(builtInKeyName, eventKeyName);\n }\n else if (mappedKeyCode) {\n return isKeyNotMatch(mappedKeyCode, eventKeyCode);\n }\n else if (eventKeyName) {\n return hyphenate(eventKeyName) !== key;\n }\n return eventKeyCode === undefined;\n }\n\n /**\n * Runtime helper for merging v-bind=\"object\" into a VNode's data.\n */\n function bindObjectProps(data, tag, value, asProp, isSync) {\n if (value) {\n if (!isObject(value)) {\n warn$2('v-bind without argument expects an Object or Array value', this);\n }\n else {\n if (isArray(value)) {\n value = toObject(value);\n }\n var hash = void 0;\n var _loop_1 = function (key) {\n if (key === 'class' || key === 'style' || isReservedAttribute(key)) {\n hash = data;\n }\n else {\n var type = data.attrs && data.attrs.type;\n hash =\n asProp || config.mustUseProp(tag, type, key)\n ? data.domProps || (data.domProps = {})\n : data.attrs || (data.attrs = {});\n }\n var camelizedKey = camelize(key);\n var hyphenatedKey = hyphenate(key);\n if (!(camelizedKey in hash) && !(hyphenatedKey in hash)) {\n hash[key] = value[key];\n if (isSync) {\n var on = data.on || (data.on = {});\n on[\"update:\".concat(key)] = function ($event) {\n value[key] = $event;\n };\n }\n }\n };\n for (var key in value) {\n _loop_1(key);\n }\n }\n }\n return data;\n }\n\n /**\n * Runtime helper for rendering static trees.\n */\n function renderStatic(index, isInFor) {\n var cached = this._staticTrees || (this._staticTrees = []);\n var tree = cached[index];\n // if has already-rendered static tree and not inside v-for,\n // we can reuse the same tree.\n if (tree && !isInFor) {\n return tree;\n }\n // otherwise, render a fresh tree.\n tree = cached[index] = this.$options.staticRenderFns[index].call(this._renderProxy, this._c, this // for render fns generated for functional component templates\n );\n markStatic$1(tree, \"__static__\".concat(index), false);\n return tree;\n }\n /**\n * Runtime helper for v-once.\n * Effectively it means marking the node as static with a unique key.\n */\n function markOnce(tree, index, key) {\n markStatic$1(tree, \"__once__\".concat(index).concat(key ? \"_\".concat(key) : \"\"), true);\n return tree;\n }\n function markStatic$1(tree, key, isOnce) {\n if (isArray(tree)) {\n for (var i = 0; i < tree.length; i++) {\n if (tree[i] && typeof tree[i] !== 'string') {\n markStaticNode(tree[i], \"\".concat(key, \"_\").concat(i), isOnce);\n }\n }\n }\n else {\n markStaticNode(tree, key, isOnce);\n }\n }\n function markStaticNode(node, key, isOnce) {\n node.isStatic = true;\n node.key = key;\n node.isOnce = isOnce;\n }\n\n function bindObjectListeners(data, value) {\n if (value) {\n if (!isPlainObject(value)) {\n warn$2('v-on without argument expects an Object value', this);\n }\n else {\n var on = (data.on = data.on ? extend({}, data.on) : {});\n for (var key in value) {\n var existing = on[key];\n var ours = value[key];\n on[key] = existing ? [].concat(existing, ours) : ours;\n }\n }\n }\n return data;\n }\n\n function resolveScopedSlots(fns, res, \n // the following are added in 2.6\n hasDynamicKeys, contentHashKey) {\n res = res || { $stable: !hasDynamicKeys };\n for (var i = 0; i < fns.length; i++) {\n var slot = fns[i];\n if (isArray(slot)) {\n resolveScopedSlots(slot, res, hasDynamicKeys);\n }\n else if (slot) {\n // marker for reverse proxying v-slot without scope on this.$slots\n // @ts-expect-error\n if (slot.proxy) {\n // @ts-expect-error\n slot.fn.proxy = true;\n }\n res[slot.key] = slot.fn;\n }\n }\n if (contentHashKey) {\n res.$key = contentHashKey;\n }\n return res;\n }\n\n // helper to process dynamic keys for dynamic arguments in v-bind and v-on.\n function bindDynamicKeys(baseObj, values) {\n for (var i = 0; i < values.length; i += 2) {\n var key = values[i];\n if (typeof key === 'string' && key) {\n baseObj[values[i]] = values[i + 1];\n }\n else if (key !== '' && key !== null) {\n // null is a special value for explicitly removing a binding\n warn$2(\"Invalid value for dynamic directive argument (expected string or null): \".concat(key), this);\n }\n }\n return baseObj;\n }\n // helper to dynamically append modifier runtime markers to event names.\n // ensure only append when value is already string, otherwise it will be cast\n // to string and cause the type check to miss.\n function prependModifier(value, symbol) {\n return typeof value === 'string' ? symbol + value : value;\n }\n\n function installRenderHelpers(target) {\n target._o = markOnce;\n target._n = toNumber;\n target._s = toString;\n target._l = renderList;\n target._t = renderSlot;\n target._q = looseEqual;\n target._i = looseIndexOf;\n target._m = renderStatic;\n target._f = resolveFilter;\n target._k = checkKeyCodes;\n target._b = bindObjectProps;\n target._v = createTextVNode;\n target._e = createEmptyVNode;\n target._u = resolveScopedSlots;\n target._g = bindObjectListeners;\n target._d = bindDynamicKeys;\n target._p = prependModifier;\n }\n\n /**\n * Runtime helper for resolving raw children VNodes into a slot object.\n */\n function resolveSlots(children, context) {\n if (!children || !children.length) {\n return {};\n }\n var slots = {};\n for (var i = 0, l = children.length; i < l; i++) {\n var child = children[i];\n var data = child.data;\n // remove slot attribute if the node is resolved as a Vue slot node\n if (data && data.attrs && data.attrs.slot) {\n delete data.attrs.slot;\n }\n // named slots should only be respected if the vnode was rendered in the\n // same context.\n if ((child.context === context || child.fnContext === context) &&\n data &&\n data.slot != null) {\n var name_1 = data.slot;\n var slot = slots[name_1] || (slots[name_1] = []);\n if (child.tag === 'template') {\n slot.push.apply(slot, child.children || []);\n }\n else {\n slot.push(child);\n }\n }\n else {\n (slots.default || (slots.default = [])).push(child);\n }\n }\n // ignore slots that contains only whitespace\n for (var name_2 in slots) {\n if (slots[name_2].every(isWhitespace)) {\n delete slots[name_2];\n }\n }\n return slots;\n }\n function isWhitespace(node) {\n return (node.isComment && !node.asyncFactory) || node.text === ' ';\n }\n\n function isAsyncPlaceholder(node) {\n // @ts-expect-error not really boolean type\n return node.isComment && node.asyncFactory;\n }\n\n function normalizeScopedSlots(ownerVm, scopedSlots, normalSlots, prevScopedSlots) {\n var res;\n var hasNormalSlots = Object.keys(normalSlots).length > 0;\n var isStable = scopedSlots ? !!scopedSlots.$stable : !hasNormalSlots;\n var key = scopedSlots && scopedSlots.$key;\n if (!scopedSlots) {\n res = {};\n }\n else if (scopedSlots._normalized) {\n // fast path 1: child component re-render only, parent did not change\n return scopedSlots._normalized;\n }\n else if (isStable &&\n prevScopedSlots &&\n prevScopedSlots !== emptyObject &&\n key === prevScopedSlots.$key &&\n !hasNormalSlots &&\n !prevScopedSlots.$hasNormal) {\n // fast path 2: stable scoped slots w/ no normal slots to proxy,\n // only need to normalize once\n return prevScopedSlots;\n }\n else {\n res = {};\n for (var key_1 in scopedSlots) {\n if (scopedSlots[key_1] && key_1[0] !== '$') {\n res[key_1] = normalizeScopedSlot(ownerVm, normalSlots, key_1, scopedSlots[key_1]);\n }\n }\n }\n // expose normal slots on scopedSlots\n for (var key_2 in normalSlots) {\n if (!(key_2 in res)) {\n res[key_2] = proxyNormalSlot(normalSlots, key_2);\n }\n }\n // avoriaz seems to mock a non-extensible $scopedSlots object\n // and when that is passed down this would cause an error\n if (scopedSlots && Object.isExtensible(scopedSlots)) {\n scopedSlots._normalized = res;\n }\n def(res, '$stable', isStable);\n def(res, '$key', key);\n def(res, '$hasNormal', hasNormalSlots);\n return res;\n }\n function normalizeScopedSlot(vm, normalSlots, key, fn) {\n var normalized = function () {\n var cur = currentInstance;\n setCurrentInstance(vm);\n var res = arguments.length ? fn.apply(null, arguments) : fn({});\n res =\n res && typeof res === 'object' && !isArray(res)\n ? [res] // single vnode\n : normalizeChildren(res);\n var vnode = res && res[0];\n setCurrentInstance(cur);\n return res &&\n (!vnode ||\n (res.length === 1 && vnode.isComment && !isAsyncPlaceholder(vnode))) // #9658, #10391\n ? undefined\n : res;\n };\n // this is a slot using the new v-slot syntax without scope. although it is\n // compiled as a scoped slot, render fn users would expect it to be present\n // on this.$slots because the usage is semantically a normal slot.\n if (fn.proxy) {\n Object.defineProperty(normalSlots, key, {\n get: normalized,\n enumerable: true,\n configurable: true\n });\n }\n return normalized;\n }\n function proxyNormalSlot(slots, key) {\n return function () { return slots[key]; };\n }\n\n function initSetup(vm) {\n var options = vm.$options;\n var setup = options.setup;\n if (setup) {\n var ctx = (vm._setupContext = createSetupContext(vm));\n setCurrentInstance(vm);\n pushTarget();\n var setupResult = invokeWithErrorHandling(setup, null, [vm._props || shallowReactive({}), ctx], vm, \"setup\");\n popTarget();\n setCurrentInstance();\n if (isFunction(setupResult)) {\n // render function\n // @ts-ignore\n options.render = setupResult;\n }\n else if (isObject(setupResult)) {\n // bindings\n if (setupResult instanceof VNode) {\n warn$2(\"setup() should not return VNodes directly - \" +\n \"return a render function instead.\");\n }\n vm._setupState = setupResult;\n // __sfc indicates compiled bindings from <script setup>\n if (!setupResult.__sfc) {\n for (var key in setupResult) {\n if (!isReserved(key)) {\n proxyWithRefUnwrap(vm, setupResult, key);\n }\n else {\n warn$2(\"Avoid using variables that start with _ or $ in setup().\");\n }\n }\n }\n else {\n // exposed for compiled render fn\n var proxy = (vm._setupProxy = {});\n for (var key in setupResult) {\n if (key !== '__sfc') {\n proxyWithRefUnwrap(proxy, setupResult, key);\n }\n }\n }\n }\n else if (setupResult !== undefined) {\n warn$2(\"setup() should return an object. Received: \".concat(setupResult === null ? 'null' : typeof setupResult));\n }\n }\n }\n function createSetupContext(vm) {\n var exposeCalled = false;\n return {\n get attrs() {\n if (!vm._attrsProxy) {\n var proxy = (vm._attrsProxy = {});\n def(proxy, '_v_attr_proxy', true);\n syncSetupProxy(proxy, vm.$attrs, emptyObject, vm, '$attrs');\n }\n return vm._attrsProxy;\n },\n get listeners() {\n if (!vm._listenersProxy) {\n var proxy = (vm._listenersProxy = {});\n syncSetupProxy(proxy, vm.$listeners, emptyObject, vm, '$listeners');\n }\n return vm._listenersProxy;\n },\n get slots() {\n return initSlotsProxy(vm);\n },\n emit: bind$1(vm.$emit, vm),\n expose: function (exposed) {\n {\n if (exposeCalled) {\n warn$2(\"expose() should be called only once per setup().\", vm);\n }\n exposeCalled = true;\n }\n if (exposed) {\n Object.keys(exposed).forEach(function (key) {\n return proxyWithRefUnwrap(vm, exposed, key);\n });\n }\n }\n };\n }\n function syncSetupProxy(to, from, prev, instance, type) {\n var changed = false;\n for (var key in from) {\n if (!(key in to)) {\n changed = true;\n defineProxyAttr(to, key, instance, type);\n }\n else if (from[key] !== prev[key]) {\n changed = true;\n }\n }\n for (var key in to) {\n if (!(key in from)) {\n changed = true;\n delete to[key];\n }\n }\n return changed;\n }\n function defineProxyAttr(proxy, key, instance, type) {\n Object.defineProperty(proxy, key, {\n enumerable: true,\n configurable: true,\n get: function () {\n return instance[type][key];\n }\n });\n }\n function initSlotsProxy(vm) {\n if (!vm._slotsProxy) {\n syncSetupSlots((vm._slotsProxy = {}), vm.$scopedSlots);\n }\n return vm._slotsProxy;\n }\n function syncSetupSlots(to, from) {\n for (var key in from) {\n to[key] = from[key];\n }\n for (var key in to) {\n if (!(key in from)) {\n delete to[key];\n }\n }\n }\n /**\n * @internal use manual type def because public setup context type relies on\n * legacy VNode types\n */\n function useSlots() {\n return getContext().slots;\n }\n /**\n * @internal use manual type def because public setup context type relies on\n * legacy VNode types\n */\n function useAttrs() {\n return getContext().attrs;\n }\n /**\n * Vue 2 only\n * @internal use manual type def because public setup context type relies on\n * legacy VNode types\n */\n function useListeners() {\n return getContext().listeners;\n }\n function getContext() {\n if (!currentInstance) {\n warn$2(\"useContext() called without active instance.\");\n }\n var vm = currentInstance;\n return vm._setupContext || (vm._setupContext = createSetupContext(vm));\n }\n /**\n * Runtime helper for merging default declarations. Imported by compiled code\n * only.\n * @internal\n */\n function mergeDefaults(raw, defaults) {\n var props = isArray(raw)\n ? raw.reduce(function (normalized, p) { return ((normalized[p] = {}), normalized); }, {})\n : raw;\n for (var key in defaults) {\n var opt = props[key];\n if (opt) {\n if (isArray(opt) || isFunction(opt)) {\n props[key] = { type: opt, default: defaults[key] };\n }\n else {\n opt.default = defaults[key];\n }\n }\n else if (opt === null) {\n props[key] = { default: defaults[key] };\n }\n else {\n warn$2(\"props default key \\\"\".concat(key, \"\\\" has no corresponding declaration.\"));\n }\n }\n return props;\n }\n\n function initRender(vm) {\n vm._vnode = null; // the root of the child tree\n vm._staticTrees = null; // v-once cached trees\n var options = vm.$options;\n var parentVnode = (vm.$vnode = options._parentVnode); // the placeholder node in parent tree\n var renderContext = parentVnode && parentVnode.context;\n vm.$slots = resolveSlots(options._renderChildren, renderContext);\n vm.$scopedSlots = parentVnode\n ? normalizeScopedSlots(vm.$parent, parentVnode.data.scopedSlots, vm.$slots)\n : emptyObject;\n // bind the createElement fn to this instance\n // so that we get proper render context inside it.\n // args order: tag, data, children, normalizationType, alwaysNormalize\n // internal version is used by render functions compiled from templates\n // @ts-expect-error\n vm._c = function (a, b, c, d) { return createElement$1(vm, a, b, c, d, false); };\n // normalization is always applied for the public version, used in\n // user-written render functions.\n // @ts-expect-error\n vm.$createElement = function (a, b, c, d) { return createElement$1(vm, a, b, c, d, true); };\n // $attrs & $listeners are exposed for easier HOC creation.\n // they need to be reactive so that HOCs using them are always updated\n var parentData = parentVnode && parentVnode.data;\n /* istanbul ignore else */\n {\n defineReactive(vm, '$attrs', (parentData && parentData.attrs) || emptyObject, function () {\n !isUpdatingChildComponent && warn$2(\"$attrs is readonly.\", vm);\n }, true);\n defineReactive(vm, '$listeners', options._parentListeners || emptyObject, function () {\n !isUpdatingChildComponent && warn$2(\"$listeners is readonly.\", vm);\n }, true);\n }\n }\n var currentRenderingInstance = null;\n function renderMixin(Vue) {\n // install runtime convenience helpers\n installRenderHelpers(Vue.prototype);\n Vue.prototype.$nextTick = function (fn) {\n return nextTick(fn, this);\n };\n Vue.prototype._render = function () {\n var vm = this;\n var _a = vm.$options, render = _a.render, _parentVnode = _a._parentVnode;\n if (_parentVnode && vm._isMounted) {\n vm.$scopedSlots = normalizeScopedSlots(vm.$parent, _parentVnode.data.scopedSlots, vm.$slots, vm.$scopedSlots);\n if (vm._slotsProxy) {\n syncSetupSlots(vm._slotsProxy, vm.$scopedSlots);\n }\n }\n // set parent vnode. this allows render functions to have access\n // to the data on the placeholder node.\n vm.$vnode = _parentVnode;\n // render self\n var vnode;\n try {\n // There's no need to maintain a stack because all render fns are called\n // separately from one another. Nested component's render fns are called\n // when parent component is patched.\n setCurrentInstance(vm);\n currentRenderingInstance = vm;\n vnode = render.call(vm._renderProxy, vm.$createElement);\n }\n catch (e) {\n handleError(e, vm, \"render\");\n // return error render result,\n // or previous vnode to prevent render error causing blank component\n /* istanbul ignore else */\n if (vm.$options.renderError) {\n try {\n vnode = vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e);\n }\n catch (e) {\n handleError(e, vm, \"renderError\");\n vnode = vm._vnode;\n }\n }\n else {\n vnode = vm._vnode;\n }\n }\n finally {\n currentRenderingInstance = null;\n setCurrentInstance();\n }\n // if the returned array contains only a single node, allow it\n if (isArray(vnode) && vnode.length === 1) {\n vnode = vnode[0];\n }\n // return empty vnode in case the render function errored out\n if (!(vnode instanceof VNode)) {\n if (isArray(vnode)) {\n warn$2('Multiple root nodes returned from render function. Render function ' +\n 'should return a single root node.', vm);\n }\n vnode = createEmptyVNode();\n }\n // set parent\n vnode.parent = _parentVnode;\n return vnode;\n };\n }\n\n function ensureCtor(comp, base) {\n if (comp.__esModule || (hasSymbol && comp[Symbol.toStringTag] === 'Module')) {\n comp = comp.default;\n }\n return isObject(comp) ? base.extend(comp) : comp;\n }\n function createAsyncPlaceholder(factory, data, context, children, tag) {\n var node = createEmptyVNode();\n node.asyncFactory = factory;\n node.asyncMeta = { data: data, context: context, children: children, tag: tag };\n return node;\n }\n function resolveAsyncComponent(factory, baseCtor) {\n if (isTrue(factory.error) && isDef(factory.errorComp)) {\n return factory.errorComp;\n }\n if (isDef(factory.resolved)) {\n return factory.resolved;\n }\n var owner = currentRenderingInstance;\n if (owner && isDef(factory.owners) && factory.owners.indexOf(owner) === -1) {\n // already pending\n factory.owners.push(owner);\n }\n if (isTrue(factory.loading) && isDef(factory.loadingComp)) {\n return factory.loadingComp;\n }\n if (owner && !isDef(factory.owners)) {\n var owners_1 = (factory.owners = [owner]);\n var sync_1 = true;\n var timerLoading_1 = null;\n var timerTimeout_1 = null;\n owner.$on('hook:destroyed', function () { return remove$2(owners_1, owner); });\n var forceRender_1 = function (renderCompleted) {\n for (var i = 0, l = owners_1.length; i < l; i++) {\n owners_1[i].$forceUpdate();\n }\n if (renderCompleted) {\n owners_1.length = 0;\n if (timerLoading_1 !== null) {\n clearTimeout(timerLoading_1);\n timerLoading_1 = null;\n }\n if (timerTimeout_1 !== null) {\n clearTimeout(timerTimeout_1);\n timerTimeout_1 = null;\n }\n }\n };\n var resolve = once(function (res) {\n // cache resolved\n factory.resolved = ensureCtor(res, baseCtor);\n // invoke callbacks only if this is not a synchronous resolve\n // (async resolves are shimmed as synchronous during SSR)\n if (!sync_1) {\n forceRender_1(true);\n }\n else {\n owners_1.length = 0;\n }\n });\n var reject_1 = once(function (reason) {\n warn$2(\"Failed to resolve async component: \".concat(String(factory)) +\n (reason ? \"\\nReason: \".concat(reason) : ''));\n if (isDef(factory.errorComp)) {\n factory.error = true;\n forceRender_1(true);\n }\n });\n var res_1 = factory(resolve, reject_1);\n if (isObject(res_1)) {\n if (isPromise(res_1)) {\n // () => Promise\n if (isUndef(factory.resolved)) {\n res_1.then(resolve, reject_1);\n }\n }\n else if (isPromise(res_1.component)) {\n res_1.component.then(resolve, reject_1);\n if (isDef(res_1.error)) {\n factory.errorComp = ensureCtor(res_1.error, baseCtor);\n }\n if (isDef(res_1.loading)) {\n factory.loadingComp = ensureCtor(res_1.loading, baseCtor);\n if (res_1.delay === 0) {\n factory.loading = true;\n }\n else {\n // @ts-expect-error NodeJS timeout type\n timerLoading_1 = setTimeout(function () {\n timerLoading_1 = null;\n if (isUndef(factory.resolved) && isUndef(factory.error)) {\n factory.loading = true;\n forceRender_1(false);\n }\n }, res_1.delay || 200);\n }\n }\n if (isDef(res_1.timeout)) {\n // @ts-expect-error NodeJS timeout type\n timerTimeout_1 = setTimeout(function () {\n timerTimeout_1 = null;\n if (isUndef(factory.resolved)) {\n reject_1(\"timeout (\".concat(res_1.timeout, \"ms)\") );\n }\n }, res_1.timeout);\n }\n }\n }\n sync_1 = false;\n // return in case resolved synchronously\n return factory.loading ? factory.loadingComp : factory.resolved;\n }\n }\n\n function getFirstComponentChild(children) {\n if (isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n var c = children[i];\n if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {\n return c;\n }\n }\n }\n }\n\n function initEvents(vm) {\n vm._events = Object.create(null);\n vm._hasHookEvent = false;\n // init parent attached events\n var listeners = vm.$options._parentListeners;\n if (listeners) {\n updateComponentListeners(vm, listeners);\n }\n }\n var target$1;\n function add$1(event, fn) {\n target$1.$on(event, fn);\n }\n function remove$1(event, fn) {\n target$1.$off(event, fn);\n }\n function createOnceHandler$1(event, fn) {\n var _target = target$1;\n return function onceHandler() {\n var res = fn.apply(null, arguments);\n if (res !== null) {\n _target.$off(event, onceHandler);\n }\n };\n }\n function updateComponentListeners(vm, listeners, oldListeners) {\n target$1 = vm;\n updateListeners(listeners, oldListeners || {}, add$1, remove$1, createOnceHandler$1, vm);\n target$1 = undefined;\n }\n function eventsMixin(Vue) {\n var hookRE = /^hook:/;\n Vue.prototype.$on = function (event, fn) {\n var vm = this;\n if (isArray(event)) {\n for (var i = 0, l = event.length; i < l; i++) {\n vm.$on(event[i], fn);\n }\n }\n else {\n (vm._events[event] || (vm._events[event] = [])).push(fn);\n // optimize hook:event cost by using a boolean flag marked at registration\n // instead of a hash lookup\n if (hookRE.test(event)) {\n vm._hasHookEvent = true;\n }\n }\n return vm;\n };\n Vue.prototype.$once = function (event, fn) {\n var vm = this;\n function on() {\n vm.$off(event, on);\n fn.apply(vm, arguments);\n }\n on.fn = fn;\n vm.$on(event, on);\n return vm;\n };\n Vue.prototype.$off = function (event, fn) {\n var vm = this;\n // all\n if (!arguments.length) {\n vm._events = Object.create(null);\n return vm;\n }\n // array of events\n if (isArray(event)) {\n for (var i_1 = 0, l = event.length; i_1 < l; i_1++) {\n vm.$off(event[i_1], fn);\n }\n return vm;\n }\n // specific event\n var cbs = vm._events[event];\n if (!cbs) {\n return vm;\n }\n if (!fn) {\n vm._events[event] = null;\n return vm;\n }\n // specific handler\n var cb;\n var i = cbs.length;\n while (i--) {\n cb = cbs[i];\n if (cb === fn || cb.fn === fn) {\n cbs.splice(i, 1);\n break;\n }\n }\n return vm;\n };\n Vue.prototype.$emit = function (event) {\n var vm = this;\n {\n var lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && vm._events[lowerCaseEvent]) {\n tip(\"Event \\\"\".concat(lowerCaseEvent, \"\\\" is emitted in component \") +\n \"\".concat(formatComponentName(vm), \" but the handler is registered for \\\"\").concat(event, \"\\\". \") +\n \"Note that HTML attributes are case-insensitive and you cannot use \" +\n \"v-on to listen to camelCase events when using in-DOM templates. \" +\n \"You should probably use \\\"\".concat(hyphenate(event), \"\\\" instead of \\\"\").concat(event, \"\\\".\"));\n }\n }\n var cbs = vm._events[event];\n if (cbs) {\n cbs = cbs.length > 1 ? toArray(cbs) : cbs;\n var args = toArray(arguments, 1);\n var info = \"event handler for \\\"\".concat(event, \"\\\"\");\n for (var i = 0, l = cbs.length; i < l; i++) {\n invokeWithErrorHandling(cbs[i], vm, args, vm, info);\n }\n }\n return vm;\n };\n }\n\n var activeInstance = null;\n var isUpdatingChildComponent = false;\n function setActiveInstance(vm) {\n var prevActiveInstance = activeInstance;\n activeInstance = vm;\n return function () {\n activeInstance = prevActiveInstance;\n };\n }\n function initLifecycle(vm) {\n var options = vm.$options;\n // locate first non-abstract parent\n var parent = options.parent;\n if (parent && !options.abstract) {\n while (parent.$options.abstract && parent.$parent) {\n parent = parent.$parent;\n }\n parent.$children.push(vm);\n }\n vm.$parent = parent;\n vm.$root = parent ? parent.$root : vm;\n vm.$children = [];\n vm.$refs = {};\n vm._provided = parent ? parent._provided : Object.create(null);\n vm._watcher = null;\n vm._inactive = null;\n vm._directInactive = false;\n vm._isMounted = false;\n vm._isDestroyed = false;\n vm._isBeingDestroyed = false;\n }\n function lifecycleMixin(Vue) {\n Vue.prototype._update = function (vnode, hydrating) {\n var vm = this;\n var prevEl = vm.$el;\n var prevVnode = vm._vnode;\n var restoreActiveInstance = setActiveInstance(vm);\n vm._vnode = vnode;\n // Vue.prototype.__patch__ is injected in entry points\n // based on the rendering backend used.\n if (!prevVnode) {\n // initial render\n vm.$el = vm.__patch__(vm.$el, vnode, hydrating, false /* removeOnly */);\n }\n else {\n // updates\n vm.$el = vm.__patch__(prevVnode, vnode);\n }\n restoreActiveInstance();\n // update __vue__ reference\n if (prevEl) {\n prevEl.__vue__ = null;\n }\n if (vm.$el) {\n vm.$el.__vue__ = vm;\n }\n // if parent is an HOC, update its $el as well\n var wrapper = vm;\n while (wrapper &&\n wrapper.$vnode &&\n wrapper.$parent &&\n wrapper.$vnode === wrapper.$parent._vnode) {\n wrapper.$parent.$el = wrapper.$el;\n wrapper = wrapper.$parent;\n }\n // updated hook is called by the scheduler to ensure that children are\n // updated in a parent's updated hook.\n };\n Vue.prototype.$forceUpdate = function () {\n var vm = this;\n if (vm._watcher) {\n vm._watcher.update();\n }\n };\n Vue.prototype.$destroy = function () {\n var vm = this;\n if (vm._isBeingDestroyed) {\n return;\n }\n callHook$1(vm, 'beforeDestroy');\n vm._isBeingDestroyed = true;\n // remove self from parent\n var parent = vm.$parent;\n if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {\n remove$2(parent.$children, vm);\n }\n // teardown scope. this includes both the render watcher and other\n // watchers created\n vm._scope.stop();\n // remove reference from data ob\n // frozen object may not have observer.\n if (vm._data.__ob__) {\n vm._data.__ob__.vmCount--;\n }\n // call the last hook...\n vm._isDestroyed = true;\n // invoke destroy hooks on current rendered tree\n vm.__patch__(vm._vnode, null);\n // fire destroyed hook\n callHook$1(vm, 'destroyed');\n // turn off all instance listeners.\n vm.$off();\n // remove __vue__ reference\n if (vm.$el) {\n vm.$el.__vue__ = null;\n }\n // release circular reference (#6759)\n if (vm.$vnode) {\n vm.$vnode.parent = null;\n }\n };\n }\n function mountComponent(vm, el, hydrating) {\n vm.$el = el;\n if (!vm.$options.render) {\n // @ts-expect-error invalid type\n vm.$options.render = createEmptyVNode;\n {\n /* istanbul ignore if */\n if ((vm.$options.template && vm.$options.template.charAt(0) !== '#') ||\n vm.$options.el ||\n el) {\n warn$2('You are using the runtime-only build of Vue where the template ' +\n 'compiler is not available. Either pre-compile the templates into ' +\n 'render functions, or use the compiler-included build.', vm);\n }\n else {\n warn$2('Failed to mount component: template or render function not defined.', vm);\n }\n }\n }\n callHook$1(vm, 'beforeMount');\n var updateComponent;\n /* istanbul ignore if */\n if (config.performance && mark) {\n updateComponent = function () {\n var name = vm._name;\n var id = vm._uid;\n var startTag = \"vue-perf-start:\".concat(id);\n var endTag = \"vue-perf-end:\".concat(id);\n mark(startTag);\n var vnode = vm._render();\n mark(endTag);\n measure(\"vue \".concat(name, \" render\"), startTag, endTag);\n mark(startTag);\n vm._update(vnode, hydrating);\n mark(endTag);\n measure(\"vue \".concat(name, \" patch\"), startTag, endTag);\n };\n }\n else {\n updateComponent = function () {\n vm._update(vm._render(), hydrating);\n };\n }\n var watcherOptions = {\n before: function () {\n if (vm._isMounted && !vm._isDestroyed) {\n callHook$1(vm, 'beforeUpdate');\n }\n }\n };\n {\n watcherOptions.onTrack = function (e) { return callHook$1(vm, 'renderTracked', [e]); };\n watcherOptions.onTrigger = function (e) { return callHook$1(vm, 'renderTriggered', [e]); };\n }\n // we set this to vm._watcher inside the watcher's constructor\n // since the watcher's initial patch may call $forceUpdate (e.g. inside child\n // component's mounted hook), which relies on vm._watcher being already defined\n new Watcher(vm, updateComponent, noop, watcherOptions, true /* isRenderWatcher */);\n hydrating = false;\n // flush buffer for flush: \"pre\" watchers queued in setup()\n var preWatchers = vm._preWatchers;\n if (preWatchers) {\n for (var i = 0; i < preWatchers.length; i++) {\n preWatchers[i].run();\n }\n }\n // manually mounted instance, call mounted on self\n // mounted is called for render-created child components in its inserted hook\n if (vm.$vnode == null) {\n vm._isMounted = true;\n callHook$1(vm, 'mounted');\n }\n return vm;\n }\n function updateChildComponent(vm, propsData, listeners, parentVnode, renderChildren) {\n {\n isUpdatingChildComponent = true;\n }\n // determine whether component has slot children\n // we need to do this before overwriting $options._renderChildren.\n // check if there are dynamic scopedSlots (hand-written or compiled but with\n // dynamic slot names). Static scoped slots compiled from template has the\n // \"$stable\" marker.\n var newScopedSlots = parentVnode.data.scopedSlots;\n var oldScopedSlots = vm.$scopedSlots;\n var hasDynamicScopedSlot = !!((newScopedSlots && !newScopedSlots.$stable) ||\n (oldScopedSlots !== emptyObject && !oldScopedSlots.$stable) ||\n (newScopedSlots && vm.$scopedSlots.$key !== newScopedSlots.$key) ||\n (!newScopedSlots && vm.$scopedSlots.$key));\n // Any static slot children from the parent may have changed during parent's\n // update. Dynamic scoped slots may also have changed. In such cases, a forced\n // update is necessary to ensure correctness.\n var needsForceUpdate = !!(renderChildren || // has new static slots\n vm.$options._renderChildren || // has old static slots\n hasDynamicScopedSlot);\n var prevVNode = vm.$vnode;\n vm.$options._parentVnode = parentVnode;\n vm.$vnode = parentVnode; // update vm's placeholder node without re-render\n if (vm._vnode) {\n // update child tree's parent\n vm._vnode.parent = parentVnode;\n }\n vm.$options._renderChildren = renderChildren;\n // update $attrs and $listeners hash\n // these are also reactive so they may trigger child update if the child\n // used them during render\n var attrs = parentVnode.data.attrs || emptyObject;\n if (vm._attrsProxy) {\n // force update if attrs are accessed and has changed since it may be\n // passed to a child component.\n if (syncSetupProxy(vm._attrsProxy, attrs, (prevVNode.data && prevVNode.data.attrs) || emptyObject, vm, '$attrs')) {\n needsForceUpdate = true;\n }\n }\n vm.$attrs = attrs;\n // update listeners\n listeners = listeners || emptyObject;\n var prevListeners = vm.$options._parentListeners;\n if (vm._listenersProxy) {\n syncSetupProxy(vm._listenersProxy, listeners, prevListeners || emptyObject, vm, '$listeners');\n }\n vm.$listeners = vm.$options._parentListeners = listeners;\n updateComponentListeners(vm, listeners, prevListeners);\n // update props\n if (propsData && vm.$options.props) {\n toggleObserving(false);\n var props = vm._props;\n var propKeys = vm.$options._propKeys || [];\n for (var i = 0; i < propKeys.length; i++) {\n var key = propKeys[i];\n var propOptions = vm.$options.props; // wtf flow?\n props[key] = validateProp(key, propOptions, propsData, vm);\n }\n toggleObserving(true);\n // keep a copy of raw propsData\n vm.$options.propsData = propsData;\n }\n // resolve slots + force update if has children\n if (needsForceUpdate) {\n vm.$slots = resolveSlots(renderChildren, parentVnode.context);\n vm.$forceUpdate();\n }\n {\n isUpdatingChildComponent = false;\n }\n }\n function isInInactiveTree(vm) {\n while (vm && (vm = vm.$parent)) {\n if (vm._inactive)\n return true;\n }\n return false;\n }\n function activateChildComponent(vm, direct) {\n if (direct) {\n vm._directInactive = false;\n if (isInInactiveTree(vm)) {\n return;\n }\n }\n else if (vm._directInactive) {\n return;\n }\n if (vm._inactive || vm._inactive === null) {\n vm._inactive = false;\n for (var i = 0; i < vm.$children.length; i++) {\n activateChildComponent(vm.$children[i]);\n }\n callHook$1(vm, 'activated');\n }\n }\n function deactivateChildComponent(vm, direct) {\n if (direct) {\n vm._directInactive = true;\n if (isInInactiveTree(vm)) {\n return;\n }\n }\n if (!vm._inactive) {\n vm._inactive = true;\n for (var i = 0; i < vm.$children.length; i++) {\n deactivateChildComponent(vm.$children[i]);\n }\n callHook$1(vm, 'deactivated');\n }\n }\n function callHook$1(vm, hook, args, setContext) {\n if (setContext === void 0) { setContext = true; }\n // #7573 disable dep collection when invoking lifecycle hooks\n pushTarget();\n var prev = currentInstance;\n setContext && setCurrentInstance(vm);\n var handlers = vm.$options[hook];\n var info = \"\".concat(hook, \" hook\");\n if (handlers) {\n for (var i = 0, j = handlers.length; i < j; i++) {\n invokeWithErrorHandling(handlers[i], vm, args || null, vm, info);\n }\n }\n if (vm._hasHookEvent) {\n vm.$emit('hook:' + hook);\n }\n setContext && setCurrentInstance(prev);\n popTarget();\n }\n\n var MAX_UPDATE_COUNT = 100;\n var queue = [];\n var activatedChildren = [];\n var has = {};\n var circular = {};\n var waiting = false;\n var flushing = false;\n var index$1 = 0;\n /**\n * Reset the scheduler's state.\n */\n function resetSchedulerState() {\n index$1 = queue.length = activatedChildren.length = 0;\n has = {};\n {\n circular = {};\n }\n waiting = flushing = false;\n }\n // Async edge case #6566 requires saving the timestamp when event listeners are\n // attached. However, calling performance.now() has a perf overhead especially\n // if the page has thousands of event listeners. Instead, we take a timestamp\n // every time the scheduler flushes and use that for all event listeners\n // attached during that flush.\n var currentFlushTimestamp = 0;\n // Async edge case fix requires storing an event listener's attach timestamp.\n var getNow = Date.now;\n // Determine what event timestamp the browser is using. Annoyingly, the\n // timestamp can either be hi-res (relative to page load) or low-res\n // (relative to UNIX epoch), so in order to compare time we have to use the\n // same timestamp type when saving the flush timestamp.\n // All IE versions use low-res event timestamps, and have problematic clock\n // implementations (#9632)\n if (inBrowser && !isIE) {\n var performance_1 = window.performance;\n if (performance_1 &&\n typeof performance_1.now === 'function' &&\n getNow() > document.createEvent('Event').timeStamp) {\n // if the event timestamp, although evaluated AFTER the Date.now(), is\n // smaller than it, it means the event is using a hi-res timestamp,\n // and we need to use the hi-res version for event listener timestamps as\n // well.\n getNow = function () { return performance_1.now(); };\n }\n }\n var sortCompareFn = function (a, b) {\n if (a.post) {\n if (!b.post)\n return 1;\n }\n else if (b.post) {\n return -1;\n }\n return a.id - b.id;\n };\n /**\n * Flush both queues and run the watchers.\n */\n function flushSchedulerQueue() {\n currentFlushTimestamp = getNow();\n flushing = true;\n var watcher, id;\n // Sort queue before flush.\n // This ensures that:\n // 1. Components are updated from parent to child. (because parent is always\n // created before the child)\n // 2. A component's user watchers are run before its render watcher (because\n // user watchers are created before the render watcher)\n // 3. If a component is destroyed during a parent component's watcher run,\n // its watchers can be skipped.\n queue.sort(sortCompareFn);\n // do not cache length because more watchers might be pushed\n // as we run existing watchers\n for (index$1 = 0; index$1 < queue.length; index$1++) {\n watcher = queue[index$1];\n if (watcher.before) {\n watcher.before();\n }\n id = watcher.id;\n has[id] = null;\n watcher.run();\n // in dev build, check and stop circular updates.\n if (has[id] != null) {\n circular[id] = (circular[id] || 0) + 1;\n if (circular[id] > MAX_UPDATE_COUNT) {\n warn$2('You may have an infinite update loop ' +\n (watcher.user\n ? \"in watcher with expression \\\"\".concat(watcher.expression, \"\\\"\")\n : \"in a component render function.\"), watcher.vm);\n break;\n }\n }\n }\n // keep copies of post queues before resetting state\n var activatedQueue = activatedChildren.slice();\n var updatedQueue = queue.slice();\n resetSchedulerState();\n // call component updated and activated hooks\n callActivatedHooks(activatedQueue);\n callUpdatedHooks(updatedQueue);\n cleanupDeps();\n // devtool hook\n /* istanbul ignore if */\n if (devtools && config.devtools) {\n devtools.emit('flush');\n }\n }\n function callUpdatedHooks(queue) {\n var i = queue.length;\n while (i--) {\n var watcher = queue[i];\n var vm = watcher.vm;\n if (vm && vm._watcher === watcher && vm._isMounted && !vm._isDestroyed) {\n callHook$1(vm, 'updated');\n }\n }\n }\n /**\n * Queue a kept-alive component that was activated during patch.\n * The queue will be processed after the entire tree has been patched.\n */\n function queueActivatedComponent(vm) {\n // setting _inactive to false here so that a render function can\n // rely on checking whether it's in an inactive tree (e.g. router-view)\n vm._inactive = false;\n activatedChildren.push(vm);\n }\n function callActivatedHooks(queue) {\n for (var i = 0; i < queue.length; i++) {\n queue[i]._inactive = true;\n activateChildComponent(queue[i], true /* true */);\n }\n }\n /**\n * Push a watcher into the watcher queue.\n * Jobs with duplicate IDs will be skipped unless it's\n * pushed when the queue is being flushed.\n */\n function queueWatcher(watcher) {\n var id = watcher.id;\n if (has[id] != null) {\n return;\n }\n if (watcher === Dep.target && watcher.noRecurse) {\n return;\n }\n has[id] = true;\n if (!flushing) {\n queue.push(watcher);\n }\n else {\n // if already flushing, splice the watcher based on its id\n // if already past its id, it will be run next immediately.\n var i = queue.length - 1;\n while (i > index$1 && queue[i].id > watcher.id) {\n i--;\n }\n queue.splice(i + 1, 0, watcher);\n }\n // queue the flush\n if (!waiting) {\n waiting = true;\n if (!config.async) {\n flushSchedulerQueue();\n return;\n }\n nextTick(flushSchedulerQueue);\n }\n }\n\n var WATCHER = \"watcher\";\n var WATCHER_CB = \"\".concat(WATCHER, \" callback\");\n var WATCHER_GETTER = \"\".concat(WATCHER, \" getter\");\n var WATCHER_CLEANUP = \"\".concat(WATCHER, \" cleanup\");\n // Simple effect.\n function watchEffect(effect, options) {\n return doWatch(effect, null, options);\n }\n function watchPostEffect(effect, options) {\n return doWatch(effect, null, (__assign(__assign({}, options), { flush: 'post' }) ));\n }\n function watchSyncEffect(effect, options) {\n return doWatch(effect, null, (__assign(__assign({}, options), { flush: 'sync' }) ));\n }\n // initial value for watchers to trigger on undefined initial values\n var INITIAL_WATCHER_VALUE = {};\n // implementation\n function watch(source, cb, options) {\n if (typeof cb !== 'function') {\n warn$2(\"`watch(fn, options?)` signature has been moved to a separate API. \" +\n \"Use `watchEffect(fn, options?)` instead. `watch` now only \" +\n \"supports `watch(source, cb, options?) signature.\");\n }\n return doWatch(source, cb, options);\n }\n function doWatch(source, cb, _a) {\n var _b = _a === void 0 ? emptyObject : _a, immediate = _b.immediate, deep = _b.deep, _c = _b.flush, flush = _c === void 0 ? 'pre' : _c, onTrack = _b.onTrack, onTrigger = _b.onTrigger;\n if (!cb) {\n if (immediate !== undefined) {\n warn$2(\"watch() \\\"immediate\\\" option is only respected when using the \" +\n \"watch(source, callback, options?) signature.\");\n }\n if (deep !== undefined) {\n warn$2(\"watch() \\\"deep\\\" option is only respected when using the \" +\n \"watch(source, callback, options?) signature.\");\n }\n }\n var warnInvalidSource = function (s) {\n warn$2(\"Invalid watch source: \".concat(s, \". A watch source can only be a getter/effect \") +\n \"function, a ref, a reactive object, or an array of these types.\");\n };\n var instance = currentInstance;\n var call = function (fn, type, args) {\n if (args === void 0) { args = null; }\n return invokeWithErrorHandling(fn, null, args, instance, type);\n };\n var getter;\n var forceTrigger = false;\n var isMultiSource = false;\n if (isRef(source)) {\n getter = function () { return source.value; };\n forceTrigger = isShallow(source);\n }\n else if (isReactive(source)) {\n getter = function () {\n source.__ob__.dep.depend();\n return source;\n };\n deep = true;\n }\n else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some(function (s) { return isReactive(s) || isShallow(s); });\n getter = function () {\n return source.map(function (s) {\n if (isRef(s)) {\n return s.value;\n }\n else if (isReactive(s)) {\n return traverse(s);\n }\n else if (isFunction(s)) {\n return call(s, WATCHER_GETTER);\n }\n else {\n warnInvalidSource(s);\n }\n });\n };\n }\n else if (isFunction(source)) {\n if (cb) {\n // getter with cb\n getter = function () { return call(source, WATCHER_GETTER); };\n }\n else {\n // no cb -> simple effect\n getter = function () {\n if (instance && instance._isDestroyed) {\n return;\n }\n if (cleanup) {\n cleanup();\n }\n return call(source, WATCHER, [onCleanup]);\n };\n }\n }\n else {\n getter = noop;\n warnInvalidSource(source);\n }\n if (cb && deep) {\n var baseGetter_1 = getter;\n getter = function () { return traverse(baseGetter_1()); };\n }\n var cleanup;\n var onCleanup = function (fn) {\n cleanup = watcher.onStop = function () {\n call(fn, WATCHER_CLEANUP);\n };\n };\n // in SSR there is no need to setup an actual effect, and it should be noop\n // unless it's eager\n if (isServerRendering()) {\n // we will also not call the invalidate callback (+ runner is not set up)\n onCleanup = noop;\n if (!cb) {\n getter();\n }\n else if (immediate) {\n call(cb, WATCHER_CB, [\n getter(),\n isMultiSource ? [] : undefined,\n onCleanup\n ]);\n }\n return noop;\n }\n var watcher = new Watcher(currentInstance, getter, noop, {\n lazy: true\n });\n watcher.noRecurse = !cb;\n var oldValue = isMultiSource ? [] : INITIAL_WATCHER_VALUE;\n // overwrite default run\n watcher.run = function () {\n if (!watcher.active) {\n return;\n }\n if (cb) {\n // watch(source, cb)\n var newValue = watcher.get();\n if (deep ||\n forceTrigger ||\n (isMultiSource\n ? newValue.some(function (v, i) {\n return hasChanged(v, oldValue[i]);\n })\n : hasChanged(newValue, oldValue))) {\n // cleanup before running cb again\n if (cleanup) {\n cleanup();\n }\n call(cb, WATCHER_CB, [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE ? undefined : oldValue,\n onCleanup\n ]);\n oldValue = newValue;\n }\n }\n else {\n // watchEffect\n watcher.get();\n }\n };\n if (flush === 'sync') {\n watcher.update = watcher.run;\n }\n else if (flush === 'post') {\n watcher.post = true;\n watcher.update = function () { return queueWatcher(watcher); };\n }\n else {\n // pre\n watcher.update = function () {\n if (instance && instance === currentInstance && !instance._isMounted) {\n // pre-watcher triggered before\n var buffer = instance._preWatchers || (instance._preWatchers = []);\n if (buffer.indexOf(watcher) < 0)\n buffer.push(watcher);\n }\n else {\n queueWatcher(watcher);\n }\n };\n }\n {\n watcher.onTrack = onTrack;\n watcher.onTrigger = onTrigger;\n }\n // initial run\n if (cb) {\n if (immediate) {\n watcher.run();\n }\n else {\n oldValue = watcher.get();\n }\n }\n else if (flush === 'post' && instance) {\n instance.$once('hook:mounted', function () { return watcher.get(); });\n }\n else {\n watcher.get();\n }\n return function () {\n watcher.teardown();\n };\n }\n\n var activeEffectScope;\n var EffectScope = /** @class */ (function () {\n function EffectScope(detached) {\n if (detached === void 0) { detached = false; }\n this.detached = detached;\n /**\n * @internal\n */\n this.active = true;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this.parent = activeEffectScope;\n if (!detached && activeEffectScope) {\n this.index =\n (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(this) - 1;\n }\n }\n EffectScope.prototype.run = function (fn) {\n if (this.active) {\n var currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n }\n finally {\n activeEffectScope = currentEffectScope;\n }\n }\n else {\n warn$2(\"cannot run an inactive effect scope.\");\n }\n };\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n EffectScope.prototype.on = function () {\n activeEffectScope = this;\n };\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n EffectScope.prototype.off = function () {\n activeEffectScope = this.parent;\n };\n EffectScope.prototype.stop = function (fromParent) {\n if (this.active) {\n var i = void 0, l = void 0;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].teardown();\n }\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n }\n // nested scope, dereference from parent to avoid memory leaks\n if (!this.detached && this.parent && !fromParent) {\n // optimized O(1) removal\n var last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = undefined;\n this.active = false;\n }\n };\n return EffectScope;\n }());\n function effectScope(detached) {\n return new EffectScope(detached);\n }\n /**\n * @internal\n */\n function recordEffectScope(effect, scope) {\n if (scope === void 0) { scope = activeEffectScope; }\n if (scope && scope.active) {\n scope.effects.push(effect);\n }\n }\n function getCurrentScope() {\n return activeEffectScope;\n }\n function onScopeDispose(fn) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n }\n else {\n warn$2(\"onScopeDispose() is called when there is no active effect scope\" +\n \" to be associated with.\");\n }\n }\n\n function provide(key, value) {\n if (!currentInstance) {\n {\n warn$2(\"provide() can only be used inside setup().\");\n }\n }\n else {\n // TS doesn't allow symbol as index type\n resolveProvided(currentInstance)[key] = value;\n }\n }\n function resolveProvided(vm) {\n // by default an instance inherits its parent's provides object\n // but when it needs to provide values of its own, it creates its\n // own provides object using parent provides object as prototype.\n // this way in `inject` we can simply look up injections from direct\n // parent and let the prototype chain do the work.\n var existing = vm._provided;\n var parentProvides = vm.$parent && vm.$parent._provided;\n if (parentProvides === existing) {\n return (vm._provided = Object.create(parentProvides));\n }\n else {\n return existing;\n }\n }\n function inject(key, defaultValue, treatDefaultAsFactory) {\n if (treatDefaultAsFactory === void 0) { treatDefaultAsFactory = false; }\n // fallback to `currentRenderingInstance` so that this can be called in\n // a functional component\n var instance = currentInstance;\n if (instance) {\n // #2400\n // to support `app.use` plugins,\n // fallback to appContext's `provides` if the instance is at root\n var provides = instance.$parent && instance.$parent._provided;\n if (provides && key in provides) {\n // TS doesn't allow symbol as index type\n return provides[key];\n }\n else if (arguments.length > 1) {\n return treatDefaultAsFactory && isFunction(defaultValue)\n ? defaultValue.call(instance)\n : defaultValue;\n }\n else {\n warn$2(\"injection \\\"\".concat(String(key), \"\\\" not found.\"));\n }\n }\n else {\n warn$2(\"inject() can only be used inside setup() or functional components.\");\n }\n }\n\n /**\n * @internal this function needs manual public type declaration because it relies\n * on previously manually authored types from Vue 2\n */\n function h(type, props, children) {\n if (!currentInstance) {\n warn$2(\"globally imported h() can only be invoked when there is an active \" +\n \"component instance, e.g. synchronously in a component's render or setup function.\");\n }\n return createElement$1(currentInstance, type, props, children, 2, true);\n }\n\n function handleError(err, vm, info) {\n // Deactivate deps tracking while processing error handler to avoid possible infinite rendering.\n // See: https://github.com/vuejs/vuex/issues/1505\n pushTarget();\n try {\n if (vm) {\n var cur = vm;\n while ((cur = cur.$parent)) {\n var hooks = cur.$options.errorCaptured;\n if (hooks) {\n for (var i = 0; i < hooks.length; i++) {\n try {\n var capture = hooks[i].call(cur, err, vm, info) === false;\n if (capture)\n return;\n }\n catch (e) {\n globalHandleError(e, cur, 'errorCaptured hook');\n }\n }\n }\n }\n }\n globalHandleError(err, vm, info);\n }\n finally {\n popTarget();\n }\n }\n function invokeWithErrorHandling(handler, context, args, vm, info) {\n var res;\n try {\n res = args ? handler.apply(context, args) : handler.call(context);\n if (res && !res._isVue && isPromise(res) && !res._handled) {\n res.catch(function (e) { return handleError(e, vm, info + \" (Promise/async)\"); });\n res._handled = true;\n }\n }\n catch (e) {\n handleError(e, vm, info);\n }\n return res;\n }\n function globalHandleError(err, vm, info) {\n if (config.errorHandler) {\n try {\n return config.errorHandler.call(null, err, vm, info);\n }\n catch (e) {\n // if the user intentionally throws the original error in the handler,\n // do not log it twice\n if (e !== err) {\n logError(e, null, 'config.errorHandler');\n }\n }\n }\n logError(err, vm, info);\n }\n function logError(err, vm, info) {\n {\n warn$2(\"Error in \".concat(info, \": \\\"\").concat(err.toString(), \"\\\"\"), vm);\n }\n /* istanbul ignore else */\n if (inBrowser && typeof console !== 'undefined') {\n console.error(err);\n }\n else {\n throw err;\n }\n }\n\n /* globals MutationObserver */\n var isUsingMicroTask = false;\n var callbacks = [];\n var pending = false;\n function flushCallbacks() {\n pending = false;\n var copies = callbacks.slice(0);\n callbacks.length = 0;\n for (var i = 0; i < copies.length; i++) {\n copies[i]();\n }\n }\n // Here we have async deferring wrappers using microtasks.\n // In 2.5 we used (macro) tasks (in combination with microtasks).\n // However, it has subtle problems when state is changed right before repaint\n // (e.g. #6813, out-in transitions).\n // Also, using (macro) tasks in event handler would cause some weird behaviors\n // that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109).\n // So we now use microtasks everywhere, again.\n // A major drawback of this tradeoff is that there are some scenarios\n // where microtasks have too high a priority and fire in between supposedly\n // sequential events (e.g. #4521, #6690, which have workarounds)\n // or even between bubbling of the same event (#6566).\n var timerFunc;\n // The nextTick behavior leverages the microtask queue, which can be accessed\n // via either native Promise.then or MutationObserver.\n // MutationObserver has wider support, however it is seriously bugged in\n // UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It\n // completely stops working after triggering a few times... so, if native\n // Promise is available, we will use it:\n /* istanbul ignore next, $flow-disable-line */\n if (typeof Promise !== 'undefined' && isNative(Promise)) {\n var p_1 = Promise.resolve();\n timerFunc = function () {\n p_1.then(flushCallbacks);\n // In problematic UIWebViews, Promise.then doesn't completely break, but\n // it can get stuck in a weird state where callbacks are pushed into the\n // microtask queue but the queue isn't being flushed, until the browser\n // needs to do some other work, e.g. handle a timer. Therefore we can\n // \"force\" the microtask queue to be flushed by adding an empty timer.\n if (isIOS)\n setTimeout(noop);\n };\n isUsingMicroTask = true;\n }\n else if (!isIE &&\n typeof MutationObserver !== 'undefined' &&\n (isNative(MutationObserver) ||\n // PhantomJS and iOS 7.x\n MutationObserver.toString() === '[object MutationObserverConstructor]')) {\n // Use MutationObserver where native Promise is not available,\n // e.g. PhantomJS, iOS7, Android 4.4\n // (#6466 MutationObserver is unreliable in IE11)\n var counter_1 = 1;\n var observer = new MutationObserver(flushCallbacks);\n var textNode_1 = document.createTextNode(String(counter_1));\n observer.observe(textNode_1, {\n characterData: true\n });\n timerFunc = function () {\n counter_1 = (counter_1 + 1) % 2;\n textNode_1.data = String(counter_1);\n };\n isUsingMicroTask = true;\n }\n else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {\n // Fallback to setImmediate.\n // Technically it leverages the (macro) task queue,\n // but it is still a better choice than setTimeout.\n timerFunc = function () {\n setImmediate(flushCallbacks);\n };\n }\n else {\n // Fallback to setTimeout.\n timerFunc = function () {\n setTimeout(flushCallbacks, 0);\n };\n }\n /**\n * @internal\n */\n function nextTick(cb, ctx) {\n var _resolve;\n callbacks.push(function () {\n if (cb) {\n try {\n cb.call(ctx);\n }\n catch (e) {\n handleError(e, ctx, 'nextTick');\n }\n }\n else if (_resolve) {\n _resolve(ctx);\n }\n });\n if (!pending) {\n pending = true;\n timerFunc();\n }\n // $flow-disable-line\n if (!cb && typeof Promise !== 'undefined') {\n return new Promise(function (resolve) {\n _resolve = resolve;\n });\n }\n }\n\n function useCssModule(name) {\n /* istanbul ignore else */\n {\n {\n warn$2(\"useCssModule() is not supported in the global build.\");\n }\n return emptyObject;\n }\n }\n\n /**\n * Runtime helper for SFC's CSS variable injection feature.\n * @private\n */\n function useCssVars(getter) {\n if (!inBrowser && !false)\n return;\n var instance = currentInstance;\n if (!instance) {\n warn$2(\"useCssVars is called without current active component instance.\");\n return;\n }\n watchPostEffect(function () {\n var el = instance.$el;\n var vars = getter(instance, instance._setupProxy);\n if (el && el.nodeType === 1) {\n var style = el.style;\n for (var key in vars) {\n style.setProperty(\"--\".concat(key), vars[key]);\n }\n }\n });\n }\n\n /**\n * v3-compatible async component API.\n * @internal the type is manually declared in <root>/types/v3-define-async-component.d.ts\n * because it relies on existing manual types\n */\n function defineAsyncComponent(source) {\n if (isFunction(source)) {\n source = { loader: source };\n }\n var loader = source.loader, loadingComponent = source.loadingComponent, errorComponent = source.errorComponent, _a = source.delay, delay = _a === void 0 ? 200 : _a, timeout = source.timeout, // undefined = never times out\n _b = source.suspensible, // undefined = never times out\n suspensible = _b === void 0 ? false : _b, // in Vue 3 default is true\n userOnError = source.onError;\n if (suspensible) {\n warn$2(\"The suspensiblbe option for async components is not supported in Vue2. It is ignored.\");\n }\n var pendingRequest = null;\n var retries = 0;\n var retry = function () {\n retries++;\n pendingRequest = null;\n return load();\n };\n var load = function () {\n var thisRequest;\n return (pendingRequest ||\n (thisRequest = pendingRequest =\n loader()\n .catch(function (err) {\n err = err instanceof Error ? err : new Error(String(err));\n if (userOnError) {\n return new Promise(function (resolve, reject) {\n var userRetry = function () { return resolve(retry()); };\n var userFail = function () { return reject(err); };\n userOnError(err, userRetry, userFail, retries + 1);\n });\n }\n else {\n throw err;\n }\n })\n .then(function (comp) {\n if (thisRequest !== pendingRequest && pendingRequest) {\n return pendingRequest;\n }\n if (!comp) {\n warn$2(\"Async component loader resolved to undefined. \" +\n \"If you are using retry(), make sure to return its return value.\");\n }\n // interop module default\n if (comp &&\n (comp.__esModule || comp[Symbol.toStringTag] === 'Module')) {\n comp = comp.default;\n }\n if (comp && !isObject(comp) && !isFunction(comp)) {\n throw new Error(\"Invalid async component load result: \".concat(comp));\n }\n return comp;\n })));\n };\n return function () {\n var component = load();\n return {\n component: component,\n delay: delay,\n timeout: timeout,\n error: errorComponent,\n loading: loadingComponent\n };\n };\n }\n\n function createLifeCycle(hookName) {\n return function (fn, target) {\n if (target === void 0) { target = currentInstance; }\n if (!target) {\n warn$2(\"\".concat(formatName(hookName), \" is called when there is no active component instance to be \") +\n \"associated with. \" +\n \"Lifecycle injection APIs can only be used during execution of setup().\");\n return;\n }\n return injectHook(target, hookName, fn);\n };\n }\n function formatName(name) {\n if (name === 'beforeDestroy') {\n name = 'beforeUnmount';\n }\n else if (name === 'destroyed') {\n name = 'unmounted';\n }\n return \"on\".concat(name[0].toUpperCase() + name.slice(1));\n }\n function injectHook(instance, hookName, fn) {\n var options = instance.$options;\n options[hookName] = mergeLifecycleHook(options[hookName], fn);\n }\n var onBeforeMount = createLifeCycle('beforeMount');\n var onMounted = createLifeCycle('mounted');\n var onBeforeUpdate = createLifeCycle('beforeUpdate');\n var onUpdated = createLifeCycle('updated');\n var onBeforeUnmount = createLifeCycle('beforeDestroy');\n var onUnmounted = createLifeCycle('destroyed');\n var onActivated = createLifeCycle('activated');\n var onDeactivated = createLifeCycle('deactivated');\n var onServerPrefetch = createLifeCycle('serverPrefetch');\n var onRenderTracked = createLifeCycle('renderTracked');\n var onRenderTriggered = createLifeCycle('renderTriggered');\n var injectErrorCapturedHook = createLifeCycle('errorCaptured');\n function onErrorCaptured(hook, target) {\n if (target === void 0) { target = currentInstance; }\n injectErrorCapturedHook(hook, target);\n }\n\n /**\n * Note: also update dist/vue.runtime.mjs when adding new exports to this file.\n */\n var version = '2.7.14';\n /**\n * @internal type is manually declared in <root>/types/v3-define-component.d.ts\n */\n function defineComponent(options) {\n return options;\n }\n\n var vca = /*#__PURE__*/Object.freeze({\n __proto__: null,\n version: version,\n defineComponent: defineComponent,\n ref: ref$1,\n shallowRef: shallowRef,\n isRef: isRef,\n toRef: toRef,\n toRefs: toRefs,\n unref: unref,\n proxyRefs: proxyRefs,\n customRef: customRef,\n triggerRef: triggerRef,\n reactive: reactive,\n isReactive: isReactive,\n isReadonly: isReadonly,\n isShallow: isShallow,\n isProxy: isProxy,\n shallowReactive: shallowReactive,\n markRaw: markRaw,\n toRaw: toRaw,\n readonly: readonly,\n shallowReadonly: shallowReadonly,\n computed: computed,\n watch: watch,\n watchEffect: watchEffect,\n watchPostEffect: watchPostEffect,\n watchSyncEffect: watchSyncEffect,\n EffectScope: EffectScope,\n effectScope: effectScope,\n onScopeDispose: onScopeDispose,\n getCurrentScope: getCurrentScope,\n provide: provide,\n inject: inject,\n h: h,\n getCurrentInstance: getCurrentInstance,\n useSlots: useSlots,\n useAttrs: useAttrs,\n useListeners: useListeners,\n mergeDefaults: mergeDefaults,\n nextTick: nextTick,\n set: set,\n del: del,\n useCssModule: useCssModule,\n useCssVars: useCssVars,\n defineAsyncComponent: defineAsyncComponent,\n onBeforeMount: onBeforeMount,\n onMounted: onMounted,\n onBeforeUpdate: onBeforeUpdate,\n onUpdated: onUpdated,\n onBeforeUnmount: onBeforeUnmount,\n onUnmounted: onUnmounted,\n onActivated: onActivated,\n onDeactivated: onDeactivated,\n onServerPrefetch: onServerPrefetch,\n onRenderTracked: onRenderTracked,\n onRenderTriggered: onRenderTriggered,\n onErrorCaptured: onErrorCaptured\n });\n\n var seenObjects = new _Set();\n /**\n * Recursively traverse an object to evoke all converted\n * getters, so that every nested property inside the object\n * is collected as a \"deep\" dependency.\n */\n function traverse(val) {\n _traverse(val, seenObjects);\n seenObjects.clear();\n return val;\n }\n function _traverse(val, seen) {\n var i, keys;\n var isA = isArray(val);\n if ((!isA && !isObject(val)) ||\n val.__v_skip /* ReactiveFlags.SKIP */ ||\n Object.isFrozen(val) ||\n val instanceof VNode) {\n return;\n }\n if (val.__ob__) {\n var depId = val.__ob__.dep.id;\n if (seen.has(depId)) {\n return;\n }\n seen.add(depId);\n }\n if (isA) {\n i = val.length;\n while (i--)\n _traverse(val[i], seen);\n }\n else if (isRef(val)) {\n _traverse(val.value, seen);\n }\n else {\n keys = Object.keys(val);\n i = keys.length;\n while (i--)\n _traverse(val[keys[i]], seen);\n }\n }\n\n var uid$1 = 0;\n /**\n * A watcher parses an expression, collects dependencies,\n * and fires callback when the expression value changes.\n * This is used for both the $watch() api and directives.\n * @internal\n */\n var Watcher = /** @class */ (function () {\n function Watcher(vm, expOrFn, cb, options, isRenderWatcher) {\n recordEffectScope(this, \n // if the active effect scope is manually created (not a component scope),\n // prioritize it\n activeEffectScope && !activeEffectScope._vm\n ? activeEffectScope\n : vm\n ? vm._scope\n : undefined);\n if ((this.vm = vm) && isRenderWatcher) {\n vm._watcher = this;\n }\n // options\n if (options) {\n this.deep = !!options.deep;\n this.user = !!options.user;\n this.lazy = !!options.lazy;\n this.sync = !!options.sync;\n this.before = options.before;\n {\n this.onTrack = options.onTrack;\n this.onTrigger = options.onTrigger;\n }\n }\n else {\n this.deep = this.user = this.lazy = this.sync = false;\n }\n this.cb = cb;\n this.id = ++uid$1; // uid for batching\n this.active = true;\n this.post = false;\n this.dirty = this.lazy; // for lazy watchers\n this.deps = [];\n this.newDeps = [];\n this.depIds = new _Set();\n this.newDepIds = new _Set();\n this.expression = expOrFn.toString() ;\n // parse expression for getter\n if (isFunction(expOrFn)) {\n this.getter = expOrFn;\n }\n else {\n this.getter = parsePath(expOrFn);\n if (!this.getter) {\n this.getter = noop;\n warn$2(\"Failed watching path: \\\"\".concat(expOrFn, \"\\\" \") +\n 'Watcher only accepts simple dot-delimited paths. ' +\n 'For full control, use a function instead.', vm);\n }\n }\n this.value = this.lazy ? undefined : this.get();\n }\n /**\n * Evaluate the getter, and re-collect dependencies.\n */\n Watcher.prototype.get = function () {\n pushTarget(this);\n var value;\n var vm = this.vm;\n try {\n value = this.getter.call(vm, vm);\n }\n catch (e) {\n if (this.user) {\n handleError(e, vm, \"getter for watcher \\\"\".concat(this.expression, \"\\\"\"));\n }\n else {\n throw e;\n }\n }\n finally {\n // \"touch\" every property so they are all tracked as\n // dependencies for deep watching\n if (this.deep) {\n traverse(value);\n }\n popTarget();\n this.cleanupDeps();\n }\n return value;\n };\n /**\n * Add a dependency to this directive.\n */\n Watcher.prototype.addDep = function (dep) {\n var id = dep.id;\n if (!this.newDepIds.has(id)) {\n this.newDepIds.add(id);\n this.newDeps.push(dep);\n if (!this.depIds.has(id)) {\n dep.addSub(this);\n }\n }\n };\n /**\n * Clean up for dependency collection.\n */\n Watcher.prototype.cleanupDeps = function () {\n var i = this.deps.length;\n while (i--) {\n var dep = this.deps[i];\n if (!this.newDepIds.has(dep.id)) {\n dep.removeSub(this);\n }\n }\n var tmp = this.depIds;\n this.depIds = this.newDepIds;\n this.newDepIds = tmp;\n this.newDepIds.clear();\n tmp = this.deps;\n this.deps = this.newDeps;\n this.newDeps = tmp;\n this.newDeps.length = 0;\n };\n /**\n * Subscriber interface.\n * Will be called when a dependency changes.\n */\n Watcher.prototype.update = function () {\n /* istanbul ignore else */\n if (this.lazy) {\n this.dirty = true;\n }\n else if (this.sync) {\n this.run();\n }\n else {\n queueWatcher(this);\n }\n };\n /**\n * Scheduler job interface.\n * Will be called by the scheduler.\n */\n Watcher.prototype.run = function () {\n if (this.active) {\n var value = this.get();\n if (value !== this.value ||\n // Deep watchers and watchers on Object/Arrays should fire even\n // when the value is the same, because the value may\n // have mutated.\n isObject(value) ||\n this.deep) {\n // set new value\n var oldValue = this.value;\n this.value = value;\n if (this.user) {\n var info = \"callback for watcher \\\"\".concat(this.expression, \"\\\"\");\n invokeWithErrorHandling(this.cb, this.vm, [value, oldValue], this.vm, info);\n }\n else {\n this.cb.call(this.vm, value, oldValue);\n }\n }\n }\n };\n /**\n * Evaluate the value of the watcher.\n * This only gets called for lazy watchers.\n */\n Watcher.prototype.evaluate = function () {\n this.value = this.get();\n this.dirty = false;\n };\n /**\n * Depend on all deps collected by this watcher.\n */\n Watcher.prototype.depend = function () {\n var i = this.deps.length;\n while (i--) {\n this.deps[i].depend();\n }\n };\n /**\n * Remove self from all dependencies' subscriber list.\n */\n Watcher.prototype.teardown = function () {\n if (this.vm && !this.vm._isBeingDestroyed) {\n remove$2(this.vm._scope.effects, this);\n }\n if (this.active) {\n var i = this.deps.length;\n while (i--) {\n this.deps[i].removeSub(this);\n }\n this.active = false;\n if (this.onStop) {\n this.onStop();\n }\n }\n };\n return Watcher;\n }());\n\n var sharedPropertyDefinition = {\n enumerable: true,\n configurable: true,\n get: noop,\n set: noop\n };\n function proxy(target, sourceKey, key) {\n sharedPropertyDefinition.get = function proxyGetter() {\n return this[sourceKey][key];\n };\n sharedPropertyDefinition.set = function proxySetter(val) {\n this[sourceKey][key] = val;\n };\n Object.defineProperty(target, key, sharedPropertyDefinition);\n }\n function initState(vm) {\n var opts = vm.$options;\n if (opts.props)\n initProps$1(vm, opts.props);\n // Composition API\n initSetup(vm);\n if (opts.methods)\n initMethods(vm, opts.methods);\n if (opts.data) {\n initData(vm);\n }\n else {\n var ob = observe((vm._data = {}));\n ob && ob.vmCount++;\n }\n if (opts.computed)\n initComputed$1(vm, opts.computed);\n if (opts.watch && opts.watch !== nativeWatch) {\n initWatch(vm, opts.watch);\n }\n }\n function initProps$1(vm, propsOptions) {\n var propsData = vm.$options.propsData || {};\n var props = (vm._props = shallowReactive({}));\n // cache prop keys so that future props updates can iterate using Array\n // instead of dynamic object key enumeration.\n var keys = (vm.$options._propKeys = []);\n var isRoot = !vm.$parent;\n // root instance props should be converted\n if (!isRoot) {\n toggleObserving(false);\n }\n var _loop_1 = function (key) {\n keys.push(key);\n var value = validateProp(key, propsOptions, propsData, vm);\n /* istanbul ignore else */\n {\n var hyphenatedKey = hyphenate(key);\n if (isReservedAttribute(hyphenatedKey) ||\n config.isReservedAttr(hyphenatedKey)) {\n warn$2(\"\\\"\".concat(hyphenatedKey, \"\\\" is a reserved attribute and cannot be used as component prop.\"), vm);\n }\n defineReactive(props, key, value, function () {\n if (!isRoot && !isUpdatingChildComponent) {\n warn$2(\"Avoid mutating a prop directly since the value will be \" +\n \"overwritten whenever the parent component re-renders. \" +\n \"Instead, use a data or computed property based on the prop's \" +\n \"value. Prop being mutated: \\\"\".concat(key, \"\\\"\"), vm);\n }\n });\n }\n // static props are already proxied on the component's prototype\n // during Vue.extend(). We only need to proxy props defined at\n // instantiation here.\n if (!(key in vm)) {\n proxy(vm, \"_props\", key);\n }\n };\n for (var key in propsOptions) {\n _loop_1(key);\n }\n toggleObserving(true);\n }\n function initData(vm) {\n var data = vm.$options.data;\n data = vm._data = isFunction(data) ? getData(data, vm) : data || {};\n if (!isPlainObject(data)) {\n data = {};\n warn$2('data functions should return an object:\\n' +\n 'https://v2.vuejs.org/v2/guide/components.html#data-Must-Be-a-Function', vm);\n }\n // proxy data on instance\n var keys = Object.keys(data);\n var props = vm.$options.props;\n var methods = vm.$options.methods;\n var i = keys.length;\n while (i--) {\n var key = keys[i];\n {\n if (methods && hasOwn(methods, key)) {\n warn$2(\"Method \\\"\".concat(key, \"\\\" has already been defined as a data property.\"), vm);\n }\n }\n if (props && hasOwn(props, key)) {\n warn$2(\"The data property \\\"\".concat(key, \"\\\" is already declared as a prop. \") +\n \"Use prop default value instead.\", vm);\n }\n else if (!isReserved(key)) {\n proxy(vm, \"_data\", key);\n }\n }\n // observe data\n var ob = observe(data);\n ob && ob.vmCount++;\n }\n function getData(data, vm) {\n // #7573 disable dep collection when invoking data getters\n pushTarget();\n try {\n return data.call(vm, vm);\n }\n catch (e) {\n handleError(e, vm, \"data()\");\n return {};\n }\n finally {\n popTarget();\n }\n }\n var computedWatcherOptions = { lazy: true };\n function initComputed$1(vm, computed) {\n // $flow-disable-line\n var watchers = (vm._computedWatchers = Object.create(null));\n // computed properties are just getters during SSR\n var isSSR = isServerRendering();\n for (var key in computed) {\n var userDef = computed[key];\n var getter = isFunction(userDef) ? userDef : userDef.get;\n if (getter == null) {\n warn$2(\"Getter is missing for computed property \\\"\".concat(key, \"\\\".\"), vm);\n }\n if (!isSSR) {\n // create internal watcher for the computed property.\n watchers[key] = new Watcher(vm, getter || noop, noop, computedWatcherOptions);\n }\n // component-defined computed properties are already defined on the\n // component prototype. We only need to define computed properties defined\n // at instantiation here.\n if (!(key in vm)) {\n defineComputed(vm, key, userDef);\n }\n else {\n if (key in vm.$data) {\n warn$2(\"The computed property \\\"\".concat(key, \"\\\" is already defined in data.\"), vm);\n }\n else if (vm.$options.props && key in vm.$options.props) {\n warn$2(\"The computed property \\\"\".concat(key, \"\\\" is already defined as a prop.\"), vm);\n }\n else if (vm.$options.methods && key in vm.$options.methods) {\n warn$2(\"The computed property \\\"\".concat(key, \"\\\" is already defined as a method.\"), vm);\n }\n }\n }\n }\n function defineComputed(target, key, userDef) {\n var shouldCache = !isServerRendering();\n if (isFunction(userDef)) {\n sharedPropertyDefinition.get = shouldCache\n ? createComputedGetter(key)\n : createGetterInvoker(userDef);\n sharedPropertyDefinition.set = noop;\n }\n else {\n sharedPropertyDefinition.get = userDef.get\n ? shouldCache && userDef.cache !== false\n ? createComputedGetter(key)\n : createGetterInvoker(userDef.get)\n : noop;\n sharedPropertyDefinition.set = userDef.set || noop;\n }\n if (sharedPropertyDefinition.set === noop) {\n sharedPropertyDefinition.set = function () {\n warn$2(\"Computed property \\\"\".concat(key, \"\\\" was assigned to but it has no setter.\"), this);\n };\n }\n Object.defineProperty(target, key, sharedPropertyDefinition);\n }\n function createComputedGetter(key) {\n return function computedGetter() {\n var watcher = this._computedWatchers && this._computedWatchers[key];\n if (watcher) {\n if (watcher.dirty) {\n watcher.evaluate();\n }\n if (Dep.target) {\n if (Dep.target.onTrack) {\n Dep.target.onTrack({\n effect: Dep.target,\n target: this,\n type: \"get\" /* TrackOpTypes.GET */,\n key: key\n });\n }\n watcher.depend();\n }\n return watcher.value;\n }\n };\n }\n function createGetterInvoker(fn) {\n return function computedGetter() {\n return fn.call(this, this);\n };\n }\n function initMethods(vm, methods) {\n var props = vm.$options.props;\n for (var key in methods) {\n {\n if (typeof methods[key] !== 'function') {\n warn$2(\"Method \\\"\".concat(key, \"\\\" has type \\\"\").concat(typeof methods[key], \"\\\" in the component definition. \") +\n \"Did you reference the function correctly?\", vm);\n }\n if (props && hasOwn(props, key)) {\n warn$2(\"Method \\\"\".concat(key, \"\\\" has already been defined as a prop.\"), vm);\n }\n if (key in vm && isReserved(key)) {\n warn$2(\"Method \\\"\".concat(key, \"\\\" conflicts with an existing Vue instance method. \") +\n \"Avoid defining component methods that start with _ or $.\");\n }\n }\n vm[key] = typeof methods[key] !== 'function' ? noop : bind$1(methods[key], vm);\n }\n }\n function initWatch(vm, watch) {\n for (var key in watch) {\n var handler = watch[key];\n if (isArray(handler)) {\n for (var i = 0; i < handler.length; i++) {\n createWatcher(vm, key, handler[i]);\n }\n }\n else {\n createWatcher(vm, key, handler);\n }\n }\n }\n function createWatcher(vm, expOrFn, handler, options) {\n if (isPlainObject(handler)) {\n options = handler;\n handler = handler.handler;\n }\n if (typeof handler === 'string') {\n handler = vm[handler];\n }\n return vm.$watch(expOrFn, handler, options);\n }\n function stateMixin(Vue) {\n // flow somehow has problems with directly declared definition object\n // when using Object.defineProperty, so we have to procedurally build up\n // the object here.\n var dataDef = {};\n dataDef.get = function () {\n return this._data;\n };\n var propsDef = {};\n propsDef.get = function () {\n return this._props;\n };\n {\n dataDef.set = function () {\n warn$2('Avoid replacing instance root $data. ' +\n 'Use nested data properties instead.', this);\n };\n propsDef.set = function () {\n warn$2(\"$props is readonly.\", this);\n };\n }\n Object.defineProperty(Vue.prototype, '$data', dataDef);\n Object.defineProperty(Vue.prototype, '$props', propsDef);\n Vue.prototype.$set = set;\n Vue.prototype.$delete = del;\n Vue.prototype.$watch = function (expOrFn, cb, options) {\n var vm = this;\n if (isPlainObject(cb)) {\n return createWatcher(vm, expOrFn, cb, options);\n }\n options = options || {};\n options.user = true;\n var watcher = new Watcher(vm, expOrFn, cb, options);\n if (options.immediate) {\n var info = \"callback for immediate watcher \\\"\".concat(watcher.expression, \"\\\"\");\n pushTarget();\n invokeWithErrorHandling(cb, vm, [watcher.value], vm, info);\n popTarget();\n }\n return function unwatchFn() {\n watcher.teardown();\n };\n };\n }\n\n function initProvide(vm) {\n var provideOption = vm.$options.provide;\n if (provideOption) {\n var provided = isFunction(provideOption)\n ? provideOption.call(vm)\n : provideOption;\n if (!isObject(provided)) {\n return;\n }\n var source = resolveProvided(vm);\n // IE9 doesn't support Object.getOwnPropertyDescriptors so we have to\n // iterate the keys ourselves.\n var keys = hasSymbol ? Reflect.ownKeys(provided) : Object.keys(provided);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n Object.defineProperty(source, key, Object.getOwnPropertyDescriptor(provided, key));\n }\n }\n }\n function initInjections(vm) {\n var result = resolveInject(vm.$options.inject, vm);\n if (result) {\n toggleObserving(false);\n Object.keys(result).forEach(function (key) {\n /* istanbul ignore else */\n {\n defineReactive(vm, key, result[key], function () {\n warn$2(\"Avoid mutating an injected value directly since the changes will be \" +\n \"overwritten whenever the provided component re-renders. \" +\n \"injection being mutated: \\\"\".concat(key, \"\\\"\"), vm);\n });\n }\n });\n toggleObserving(true);\n }\n }\n function resolveInject(inject, vm) {\n if (inject) {\n // inject is :any because flow is not smart enough to figure out cached\n var result = Object.create(null);\n var keys = hasSymbol ? Reflect.ownKeys(inject) : Object.keys(inject);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n // #6574 in case the inject object is observed...\n if (key === '__ob__')\n continue;\n var provideKey = inject[key].from;\n if (provideKey in vm._provided) {\n result[key] = vm._provided[provideKey];\n }\n else if ('default' in inject[key]) {\n var provideDefault = inject[key].default;\n result[key] = isFunction(provideDefault)\n ? provideDefault.call(vm)\n : provideDefault;\n }\n else {\n warn$2(\"Injection \\\"\".concat(key, \"\\\" not found\"), vm);\n }\n }\n return result;\n }\n }\n\n var uid = 0;\n function initMixin$1(Vue) {\n Vue.prototype._init = function (options) {\n var vm = this;\n // a uid\n vm._uid = uid++;\n var startTag, endTag;\n /* istanbul ignore if */\n if (config.performance && mark) {\n startTag = \"vue-perf-start:\".concat(vm._uid);\n endTag = \"vue-perf-end:\".concat(vm._uid);\n mark(startTag);\n }\n // a flag to mark this as a Vue instance without having to do instanceof\n // check\n vm._isVue = true;\n // avoid instances from being observed\n vm.__v_skip = true;\n // effect scope\n vm._scope = new EffectScope(true /* detached */);\n vm._scope._vm = true;\n // merge options\n if (options && options._isComponent) {\n // optimize internal component instantiation\n // since dynamic options merging is pretty slow, and none of the\n // internal component options needs special treatment.\n initInternalComponent(vm, options);\n }\n else {\n vm.$options = mergeOptions(resolveConstructorOptions(vm.constructor), options || {}, vm);\n }\n /* istanbul ignore else */\n {\n initProxy(vm);\n }\n // expose real self\n vm._self = vm;\n initLifecycle(vm);\n initEvents(vm);\n initRender(vm);\n callHook$1(vm, 'beforeCreate', undefined, false /* setContext */);\n initInjections(vm); // resolve injections before data/props\n initState(vm);\n initProvide(vm); // resolve provide after data/props\n callHook$1(vm, 'created');\n /* istanbul ignore if */\n if (config.performance && mark) {\n vm._name = formatComponentName(vm, false);\n mark(endTag);\n measure(\"vue \".concat(vm._name, \" init\"), startTag, endTag);\n }\n if (vm.$options.el) {\n vm.$mount(vm.$options.el);\n }\n };\n }\n function initInternalComponent(vm, options) {\n var opts = (vm.$options = Object.create(vm.constructor.options));\n // doing this because it's faster than dynamic enumeration.\n var parentVnode = options._parentVnode;\n opts.parent = options.parent;\n opts._parentVnode = parentVnode;\n var vnodeComponentOptions = parentVnode.componentOptions;\n opts.propsData = vnodeComponentOptions.propsData;\n opts._parentListeners = vnodeComponentOptions.listeners;\n opts._renderChildren = vnodeComponentOptions.children;\n opts._componentTag = vnodeComponentOptions.tag;\n if (options.render) {\n opts.render = options.render;\n opts.staticRenderFns = options.staticRenderFns;\n }\n }\n function resolveConstructorOptions(Ctor) {\n var options = Ctor.options;\n if (Ctor.super) {\n var superOptions = resolveConstructorOptions(Ctor.super);\n var cachedSuperOptions = Ctor.superOptions;\n if (superOptions !== cachedSuperOptions) {\n // super option changed,\n // need to resolve new options.\n Ctor.superOptions = superOptions;\n // check if there are any late-modified/attached options (#4976)\n var modifiedOptions = resolveModifiedOptions(Ctor);\n // update base extend options\n if (modifiedOptions) {\n extend(Ctor.extendOptions, modifiedOptions);\n }\n options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions);\n if (options.name) {\n options.components[options.name] = Ctor;\n }\n }\n }\n return options;\n }\n function resolveModifiedOptions(Ctor) {\n var modified;\n var latest = Ctor.options;\n var sealed = Ctor.sealedOptions;\n for (var key in latest) {\n if (latest[key] !== sealed[key]) {\n if (!modified)\n modified = {};\n modified[key] = latest[key];\n }\n }\n return modified;\n }\n\n function FunctionalRenderContext(data, props, children, parent, Ctor) {\n var _this = this;\n var options = Ctor.options;\n // ensure the createElement function in functional components\n // gets a unique context - this is necessary for correct named slot check\n var contextVm;\n if (hasOwn(parent, '_uid')) {\n contextVm = Object.create(parent);\n contextVm._original = parent;\n }\n else {\n // the context vm passed in is a functional context as well.\n // in this case we want to make sure we are able to get a hold to the\n // real context instance.\n contextVm = parent;\n // @ts-ignore\n parent = parent._original;\n }\n var isCompiled = isTrue(options._compiled);\n var needNormalization = !isCompiled;\n this.data = data;\n this.props = props;\n this.children = children;\n this.parent = parent;\n this.listeners = data.on || emptyObject;\n this.injections = resolveInject(options.inject, parent);\n this.slots = function () {\n if (!_this.$slots) {\n normalizeScopedSlots(parent, data.scopedSlots, (_this.$slots = resolveSlots(children, parent)));\n }\n return _this.$slots;\n };\n Object.defineProperty(this, 'scopedSlots', {\n enumerable: true,\n get: function () {\n return normalizeScopedSlots(parent, data.scopedSlots, this.slots());\n }\n });\n // support for compiled functional template\n if (isCompiled) {\n // exposing $options for renderStatic()\n this.$options = options;\n // pre-resolve slots for renderSlot()\n this.$slots = this.slots();\n this.$scopedSlots = normalizeScopedSlots(parent, data.scopedSlots, this.$slots);\n }\n if (options._scopeId) {\n this._c = function (a, b, c, d) {\n var vnode = createElement$1(contextVm, a, b, c, d, needNormalization);\n if (vnode && !isArray(vnode)) {\n vnode.fnScopeId = options._scopeId;\n vnode.fnContext = parent;\n }\n return vnode;\n };\n }\n else {\n this._c = function (a, b, c, d) {\n return createElement$1(contextVm, a, b, c, d, needNormalization);\n };\n }\n }\n installRenderHelpers(FunctionalRenderContext.prototype);\n function createFunctionalComponent(Ctor, propsData, data, contextVm, children) {\n var options = Ctor.options;\n var props = {};\n var propOptions = options.props;\n if (isDef(propOptions)) {\n for (var key in propOptions) {\n props[key] = validateProp(key, propOptions, propsData || emptyObject);\n }\n }\n else {\n if (isDef(data.attrs))\n mergeProps(props, data.attrs);\n if (isDef(data.props))\n mergeProps(props, data.props);\n }\n var renderContext = new FunctionalRenderContext(data, props, children, contextVm, Ctor);\n var vnode = options.render.call(null, renderContext._c, renderContext);\n if (vnode instanceof VNode) {\n return cloneAndMarkFunctionalResult(vnode, data, renderContext.parent, options, renderContext);\n }\n else if (isArray(vnode)) {\n var vnodes = normalizeChildren(vnode) || [];\n var res = new Array(vnodes.length);\n for (var i = 0; i < vnodes.length; i++) {\n res[i] = cloneAndMarkFunctionalResult(vnodes[i], data, renderContext.parent, options, renderContext);\n }\n return res;\n }\n }\n function cloneAndMarkFunctionalResult(vnode, data, contextVm, options, renderContext) {\n // #7817 clone node before setting fnContext, otherwise if the node is reused\n // (e.g. it was from a cached normal slot) the fnContext causes named slots\n // that should not be matched to match.\n var clone = cloneVNode(vnode);\n clone.fnContext = contextVm;\n clone.fnOptions = options;\n {\n (clone.devtoolsMeta = clone.devtoolsMeta || {}).renderContext =\n renderContext;\n }\n if (data.slot) {\n (clone.data || (clone.data = {})).slot = data.slot;\n }\n return clone;\n }\n function mergeProps(to, from) {\n for (var key in from) {\n to[camelize(key)] = from[key];\n }\n }\n\n function getComponentName(options) {\n return options.name || options.__name || options._componentTag;\n }\n // inline hooks to be invoked on component VNodes during patch\n var componentVNodeHooks = {\n init: function (vnode, hydrating) {\n if (vnode.componentInstance &&\n !vnode.componentInstance._isDestroyed &&\n vnode.data.keepAlive) {\n // kept-alive components, treat as a patch\n var mountedNode = vnode; // work around flow\n componentVNodeHooks.prepatch(mountedNode, mountedNode);\n }\n else {\n var child = (vnode.componentInstance = createComponentInstanceForVnode(vnode, activeInstance));\n child.$mount(hydrating ? vnode.elm : undefined, hydrating);\n }\n },\n prepatch: function (oldVnode, vnode) {\n var options = vnode.componentOptions;\n var child = (vnode.componentInstance = oldVnode.componentInstance);\n updateChildComponent(child, options.propsData, // updated props\n options.listeners, // updated listeners\n vnode, // new parent vnode\n options.children // new children\n );\n },\n insert: function (vnode) {\n var context = vnode.context, componentInstance = vnode.componentInstance;\n if (!componentInstance._isMounted) {\n componentInstance._isMounted = true;\n callHook$1(componentInstance, 'mounted');\n }\n if (vnode.data.keepAlive) {\n if (context._isMounted) {\n // vue-router#1212\n // During updates, a kept-alive component's child components may\n // change, so directly walking the tree here may call activated hooks\n // on incorrect children. Instead we push them into a queue which will\n // be processed after the whole patch process ended.\n queueActivatedComponent(componentInstance);\n }\n else {\n activateChildComponent(componentInstance, true /* direct */);\n }\n }\n },\n destroy: function (vnode) {\n var componentInstance = vnode.componentInstance;\n if (!componentInstance._isDestroyed) {\n if (!vnode.data.keepAlive) {\n componentInstance.$destroy();\n }\n else {\n deactivateChildComponent(componentInstance, true /* direct */);\n }\n }\n }\n };\n var hooksToMerge = Object.keys(componentVNodeHooks);\n function createComponent(Ctor, data, context, children, tag) {\n if (isUndef(Ctor)) {\n return;\n }\n var baseCtor = context.$options._base;\n // plain options object: turn it into a constructor\n if (isObject(Ctor)) {\n Ctor = baseCtor.extend(Ctor);\n }\n // if at this stage it's not a constructor or an async component factory,\n // reject.\n if (typeof Ctor !== 'function') {\n {\n warn$2(\"Invalid Component definition: \".concat(String(Ctor)), context);\n }\n return;\n }\n // async component\n var asyncFactory;\n // @ts-expect-error\n if (isUndef(Ctor.cid)) {\n asyncFactory = Ctor;\n Ctor = resolveAsyncComponent(asyncFactory, baseCtor);\n if (Ctor === undefined) {\n // return a placeholder node for async component, which is rendered\n // as a comment node but preserves all the raw information for the node.\n // the information will be used for async server-rendering and hydration.\n return createAsyncPlaceholder(asyncFactory, data, context, children, tag);\n }\n }\n data = data || {};\n // resolve constructor options in case global mixins are applied after\n // component constructor creation\n resolveConstructorOptions(Ctor);\n // transform component v-model data into props & events\n if (isDef(data.model)) {\n // @ts-expect-error\n transformModel(Ctor.options, data);\n }\n // extract props\n // @ts-expect-error\n var propsData = extractPropsFromVNodeData(data, Ctor, tag);\n // functional component\n // @ts-expect-error\n if (isTrue(Ctor.options.functional)) {\n return createFunctionalComponent(Ctor, propsData, data, context, children);\n }\n // extract listeners, since these needs to be treated as\n // child component listeners instead of DOM listeners\n var listeners = data.on;\n // replace with listeners with .native modifier\n // so it gets processed during parent component patch.\n data.on = data.nativeOn;\n // @ts-expect-error\n if (isTrue(Ctor.options.abstract)) {\n // abstract components do not keep anything\n // other than props & listeners & slot\n // work around flow\n var slot = data.slot;\n data = {};\n if (slot) {\n data.slot = slot;\n }\n }\n // install component management hooks onto the placeholder node\n installComponentHooks(data);\n // return a placeholder vnode\n // @ts-expect-error\n var name = getComponentName(Ctor.options) || tag;\n var vnode = new VNode(\n // @ts-expect-error\n \"vue-component-\".concat(Ctor.cid).concat(name ? \"-\".concat(name) : ''), data, undefined, undefined, undefined, context, \n // @ts-expect-error\n { Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children }, asyncFactory);\n return vnode;\n }\n function createComponentInstanceForVnode(\n // we know it's MountedComponentVNode but flow doesn't\n vnode, \n // activeInstance in lifecycle state\n parent) {\n var options = {\n _isComponent: true,\n _parentVnode: vnode,\n parent: parent\n };\n // check inline-template render functions\n var inlineTemplate = vnode.data.inlineTemplate;\n if (isDef(inlineTemplate)) {\n options.render = inlineTemplate.render;\n options.staticRenderFns = inlineTemplate.staticRenderFns;\n }\n return new vnode.componentOptions.Ctor(options);\n }\n function installComponentHooks(data) {\n var hooks = data.hook || (data.hook = {});\n for (var i = 0; i < hooksToMerge.length; i++) {\n var key = hooksToMerge[i];\n var existing = hooks[key];\n var toMerge = componentVNodeHooks[key];\n // @ts-expect-error\n if (existing !== toMerge && !(existing && existing._merged)) {\n hooks[key] = existing ? mergeHook(toMerge, existing) : toMerge;\n }\n }\n }\n function mergeHook(f1, f2) {\n var merged = function (a, b) {\n // flow complains about extra args which is why we use any\n f1(a, b);\n f2(a, b);\n };\n merged._merged = true;\n return merged;\n }\n // transform component v-model info (value and callback) into\n // prop and event handler respectively.\n function transformModel(options, data) {\n var prop = (options.model && options.model.prop) || 'value';\n var event = (options.model && options.model.event) || 'input';\n (data.attrs || (data.attrs = {}))[prop] = data.model.value;\n var on = data.on || (data.on = {});\n var existing = on[event];\n var callback = data.model.callback;\n if (isDef(existing)) {\n if (isArray(existing)\n ? existing.indexOf(callback) === -1\n : existing !== callback) {\n on[event] = [callback].concat(existing);\n }\n }\n else {\n on[event] = callback;\n }\n }\n\n var warn$2 = noop;\n var tip = noop;\n var generateComponentTrace; // work around flow check\n var formatComponentName;\n {\n var hasConsole_1 = typeof console !== 'undefined';\n var classifyRE_1 = /(?:^|[-_])(\\w)/g;\n var classify_1 = function (str) {\n return str.replace(classifyRE_1, function (c) { return c.toUpperCase(); }).replace(/[-_]/g, '');\n };\n warn$2 = function (msg, vm) {\n if (vm === void 0) { vm = currentInstance; }\n var trace = vm ? generateComponentTrace(vm) : '';\n if (config.warnHandler) {\n config.warnHandler.call(null, msg, vm, trace);\n }\n else if (hasConsole_1 && !config.silent) {\n console.error(\"[Vue warn]: \".concat(msg).concat(trace));\n }\n };\n tip = function (msg, vm) {\n if (hasConsole_1 && !config.silent) {\n console.warn(\"[Vue tip]: \".concat(msg) + (vm ? generateComponentTrace(vm) : ''));\n }\n };\n formatComponentName = function (vm, includeFile) {\n if (vm.$root === vm) {\n return '<Root>';\n }\n var options = isFunction(vm) && vm.cid != null\n ? vm.options\n : vm._isVue\n ? vm.$options || vm.constructor.options\n : vm;\n var name = getComponentName(options);\n var file = options.__file;\n if (!name && file) {\n var match = file.match(/([^/\\\\]+)\\.vue$/);\n name = match && match[1];\n }\n return ((name ? \"<\".concat(classify_1(name), \">\") : \"<Anonymous>\") +\n (file && includeFile !== false ? \" at \".concat(file) : ''));\n };\n var repeat_1 = function (str, n) {\n var res = '';\n while (n) {\n if (n % 2 === 1)\n res += str;\n if (n > 1)\n str += str;\n n >>= 1;\n }\n return res;\n };\n generateComponentTrace = function (vm) {\n if (vm._isVue && vm.$parent) {\n var tree = [];\n var currentRecursiveSequence = 0;\n while (vm) {\n if (tree.length > 0) {\n var last = tree[tree.length - 1];\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++;\n vm = vm.$parent;\n continue;\n }\n else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence];\n currentRecursiveSequence = 0;\n }\n }\n tree.push(vm);\n vm = vm.$parent;\n }\n return ('\\n\\nfound in\\n\\n' +\n tree\n .map(function (vm, i) {\n return \"\".concat(i === 0 ? '---> ' : repeat_1(' ', 5 + i * 2)).concat(isArray(vm)\n ? \"\".concat(formatComponentName(vm[0]), \"... (\").concat(vm[1], \" recursive calls)\")\n : formatComponentName(vm));\n })\n .join('\\n'));\n }\n else {\n return \"\\n\\n(found in \".concat(formatComponentName(vm), \")\");\n }\n };\n }\n\n /**\n * Option overwriting strategies are functions that handle\n * how to merge a parent option value and a child option\n * value into the final value.\n */\n var strats = config.optionMergeStrategies;\n /**\n * Options with restrictions\n */\n {\n strats.el = strats.propsData = function (parent, child, vm, key) {\n if (!vm) {\n warn$2(\"option \\\"\".concat(key, \"\\\" can only be used during instance \") +\n 'creation with the `new` keyword.');\n }\n return defaultStrat(parent, child);\n };\n }\n /**\n * Helper that recursively merges two data objects together.\n */\n function mergeData(to, from, recursive) {\n if (recursive === void 0) { recursive = true; }\n if (!from)\n return to;\n var key, toVal, fromVal;\n var keys = hasSymbol\n ? Reflect.ownKeys(from)\n : Object.keys(from);\n for (var i = 0; i < keys.length; i++) {\n key = keys[i];\n // in case the object is already observed...\n if (key === '__ob__')\n continue;\n toVal = to[key];\n fromVal = from[key];\n if (!recursive || !hasOwn(to, key)) {\n set(to, key, fromVal);\n }\n else if (toVal !== fromVal &&\n isPlainObject(toVal) &&\n isPlainObject(fromVal)) {\n mergeData(toVal, fromVal);\n }\n }\n return to;\n }\n /**\n * Data\n */\n function mergeDataOrFn(parentVal, childVal, vm) {\n if (!vm) {\n // in a Vue.extend merge, both should be functions\n if (!childVal) {\n return parentVal;\n }\n if (!parentVal) {\n return childVal;\n }\n // when parentVal & childVal are both present,\n // we need to return a function that returns the\n // merged result of both functions... no need to\n // check if parentVal is a function here because\n // it has to be a function to pass previous merges.\n return function mergedDataFn() {\n return mergeData(isFunction(childVal) ? childVal.call(this, this) : childVal, isFunction(parentVal) ? parentVal.call(this, this) : parentVal);\n };\n }\n else {\n return function mergedInstanceDataFn() {\n // instance merge\n var instanceData = isFunction(childVal)\n ? childVal.call(vm, vm)\n : childVal;\n var defaultData = isFunction(parentVal)\n ? parentVal.call(vm, vm)\n : parentVal;\n if (instanceData) {\n return mergeData(instanceData, defaultData);\n }\n else {\n return defaultData;\n }\n };\n }\n }\n strats.data = function (parentVal, childVal, vm) {\n if (!vm) {\n if (childVal && typeof childVal !== 'function') {\n warn$2('The \"data\" option should be a function ' +\n 'that returns a per-instance value in component ' +\n 'definitions.', vm);\n return parentVal;\n }\n return mergeDataOrFn(parentVal, childVal);\n }\n return mergeDataOrFn(parentVal, childVal, vm);\n };\n /**\n * Hooks and props are merged as arrays.\n */\n function mergeLifecycleHook(parentVal, childVal) {\n var res = childVal\n ? parentVal\n ? parentVal.concat(childVal)\n : isArray(childVal)\n ? childVal\n : [childVal]\n : parentVal;\n return res ? dedupeHooks(res) : res;\n }\n function dedupeHooks(hooks) {\n var res = [];\n for (var i = 0; i < hooks.length; i++) {\n if (res.indexOf(hooks[i]) === -1) {\n res.push(hooks[i]);\n }\n }\n return res;\n }\n LIFECYCLE_HOOKS.forEach(function (hook) {\n strats[hook] = mergeLifecycleHook;\n });\n /**\n * Assets\n *\n * When a vm is present (instance creation), we need to do\n * a three-way merge between constructor options, instance\n * options and parent options.\n */\n function mergeAssets(parentVal, childVal, vm, key) {\n var res = Object.create(parentVal || null);\n if (childVal) {\n assertObjectType(key, childVal, vm);\n return extend(res, childVal);\n }\n else {\n return res;\n }\n }\n ASSET_TYPES.forEach(function (type) {\n strats[type + 's'] = mergeAssets;\n });\n /**\n * Watchers.\n *\n * Watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\n strats.watch = function (parentVal, childVal, vm, key) {\n // work around Firefox's Object.prototype.watch...\n //@ts-expect-error work around\n if (parentVal === nativeWatch)\n parentVal = undefined;\n //@ts-expect-error work around\n if (childVal === nativeWatch)\n childVal = undefined;\n /* istanbul ignore if */\n if (!childVal)\n return Object.create(parentVal || null);\n {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal)\n return childVal;\n var ret = {};\n extend(ret, parentVal);\n for (var key_1 in childVal) {\n var parent_1 = ret[key_1];\n var child = childVal[key_1];\n if (parent_1 && !isArray(parent_1)) {\n parent_1 = [parent_1];\n }\n ret[key_1] = parent_1 ? parent_1.concat(child) : isArray(child) ? child : [child];\n }\n return ret;\n };\n /**\n * Other object hashes.\n */\n strats.props =\n strats.methods =\n strats.inject =\n strats.computed =\n function (parentVal, childVal, vm, key) {\n if (childVal && true) {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal)\n return childVal;\n var ret = Object.create(null);\n extend(ret, parentVal);\n if (childVal)\n extend(ret, childVal);\n return ret;\n };\n strats.provide = function (parentVal, childVal) {\n if (!parentVal)\n return childVal;\n return function () {\n var ret = Object.create(null);\n mergeData(ret, isFunction(parentVal) ? parentVal.call(this) : parentVal);\n if (childVal) {\n mergeData(ret, isFunction(childVal) ? childVal.call(this) : childVal, false // non-recursive\n );\n }\n return ret;\n };\n };\n /**\n * Default strategy.\n */\n var defaultStrat = function (parentVal, childVal) {\n return childVal === undefined ? parentVal : childVal;\n };\n /**\n * Validate component names\n */\n function checkComponents(options) {\n for (var key in options.components) {\n validateComponentName(key);\n }\n }\n function validateComponentName(name) {\n if (!new RegExp(\"^[a-zA-Z][\\\\-\\\\.0-9_\".concat(unicodeRegExp.source, \"]*$\")).test(name)) {\n warn$2('Invalid component name: \"' +\n name +\n '\". Component names ' +\n 'should conform to valid custom element name in html5 specification.');\n }\n if (isBuiltInTag(name) || config.isReservedTag(name)) {\n warn$2('Do not use built-in or reserved HTML elements as component ' +\n 'id: ' +\n name);\n }\n }\n /**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n */\n function normalizeProps(options, vm) {\n var props = options.props;\n if (!props)\n return;\n var res = {};\n var i, val, name;\n if (isArray(props)) {\n i = props.length;\n while (i--) {\n val = props[i];\n if (typeof val === 'string') {\n name = camelize(val);\n res[name] = { type: null };\n }\n else {\n warn$2('props must be strings when using array syntax.');\n }\n }\n }\n else if (isPlainObject(props)) {\n for (var key in props) {\n val = props[key];\n name = camelize(key);\n res[name] = isPlainObject(val) ? val : { type: val };\n }\n }\n else {\n warn$2(\"Invalid value for option \\\"props\\\": expected an Array or an Object, \" +\n \"but got \".concat(toRawType(props), \".\"), vm);\n }\n options.props = res;\n }\n /**\n * Normalize all injections into Object-based format\n */\n function normalizeInject(options, vm) {\n var inject = options.inject;\n if (!inject)\n return;\n var normalized = (options.inject = {});\n if (isArray(inject)) {\n for (var i = 0; i < inject.length; i++) {\n normalized[inject[i]] = { from: inject[i] };\n }\n }\n else if (isPlainObject(inject)) {\n for (var key in inject) {\n var val = inject[key];\n normalized[key] = isPlainObject(val)\n ? extend({ from: key }, val)\n : { from: val };\n }\n }\n else {\n warn$2(\"Invalid value for option \\\"inject\\\": expected an Array or an Object, \" +\n \"but got \".concat(toRawType(inject), \".\"), vm);\n }\n }\n /**\n * Normalize raw function directives into object format.\n */\n function normalizeDirectives$1(options) {\n var dirs = options.directives;\n if (dirs) {\n for (var key in dirs) {\n var def = dirs[key];\n if (isFunction(def)) {\n dirs[key] = { bind: def, update: def };\n }\n }\n }\n }\n function assertObjectType(name, value, vm) {\n if (!isPlainObject(value)) {\n warn$2(\"Invalid value for option \\\"\".concat(name, \"\\\": expected an Object, \") +\n \"but got \".concat(toRawType(value), \".\"), vm);\n }\n }\n /**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n */\n function mergeOptions(parent, child, vm) {\n {\n checkComponents(child);\n }\n if (isFunction(child)) {\n // @ts-expect-error\n child = child.options;\n }\n normalizeProps(child, vm);\n normalizeInject(child, vm);\n normalizeDirectives$1(child);\n // Apply extends and mixins on the child options,\n // but only if it is a raw options object that isn't\n // the result of another mergeOptions call.\n // Only merged options has the _base property.\n if (!child._base) {\n if (child.extends) {\n parent = mergeOptions(parent, child.extends, vm);\n }\n if (child.mixins) {\n for (var i = 0, l = child.mixins.length; i < l; i++) {\n parent = mergeOptions(parent, child.mixins[i], vm);\n }\n }\n }\n var options = {};\n var key;\n for (key in parent) {\n mergeField(key);\n }\n for (key in child) {\n if (!hasOwn(parent, key)) {\n mergeField(key);\n }\n }\n function mergeField(key) {\n var strat = strats[key] || defaultStrat;\n options[key] = strat(parent[key], child[key], vm, key);\n }\n return options;\n }\n /**\n * Resolve an asset.\n * This function is used because child instances need access\n * to assets defined in its ancestor chain.\n */\n function resolveAsset(options, type, id, warnMissing) {\n /* istanbul ignore if */\n if (typeof id !== 'string') {\n return;\n }\n var assets = options[type];\n // check local registration variations first\n if (hasOwn(assets, id))\n return assets[id];\n var camelizedId = camelize(id);\n if (hasOwn(assets, camelizedId))\n return assets[camelizedId];\n var PascalCaseId = capitalize(camelizedId);\n if (hasOwn(assets, PascalCaseId))\n return assets[PascalCaseId];\n // fallback to prototype chain\n var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n if (warnMissing && !res) {\n warn$2('Failed to resolve ' + type.slice(0, -1) + ': ' + id);\n }\n return res;\n }\n\n function validateProp(key, propOptions, propsData, vm) {\n var prop = propOptions[key];\n var absent = !hasOwn(propsData, key);\n var value = propsData[key];\n // boolean casting\n var booleanIndex = getTypeIndex(Boolean, prop.type);\n if (booleanIndex > -1) {\n if (absent && !hasOwn(prop, 'default')) {\n value = false;\n }\n else if (value === '' || value === hyphenate(key)) {\n // only cast empty string / same name to boolean if\n // boolean has higher priority\n var stringIndex = getTypeIndex(String, prop.type);\n if (stringIndex < 0 || booleanIndex < stringIndex) {\n value = true;\n }\n }\n }\n // check default value\n if (value === undefined) {\n value = getPropDefaultValue(vm, prop, key);\n // since the default value is a fresh copy,\n // make sure to observe it.\n var prevShouldObserve = shouldObserve;\n toggleObserving(true);\n observe(value);\n toggleObserving(prevShouldObserve);\n }\n {\n assertProp(prop, key, value, vm, absent);\n }\n return value;\n }\n /**\n * Get the default value of a prop.\n */\n function getPropDefaultValue(vm, prop, key) {\n // no default, return undefined\n if (!hasOwn(prop, 'default')) {\n return undefined;\n }\n var def = prop.default;\n // warn against non-factory defaults for Object & Array\n if (isObject(def)) {\n warn$2('Invalid default value for prop \"' +\n key +\n '\": ' +\n 'Props with type Object/Array must use a factory function ' +\n 'to return the default value.', vm);\n }\n // the raw prop value was also undefined from previous render,\n // return previous default value to avoid unnecessary watcher trigger\n if (vm &&\n vm.$options.propsData &&\n vm.$options.propsData[key] === undefined &&\n vm._props[key] !== undefined) {\n return vm._props[key];\n }\n // call factory function for non-Function types\n // a value is Function if its prototype is function even across different execution context\n return isFunction(def) && getType(prop.type) !== 'Function'\n ? def.call(vm)\n : def;\n }\n /**\n * Assert whether a prop is valid.\n */\n function assertProp(prop, name, value, vm, absent) {\n if (prop.required && absent) {\n warn$2('Missing required prop: \"' + name + '\"', vm);\n return;\n }\n if (value == null && !prop.required) {\n return;\n }\n var type = prop.type;\n var valid = !type || type === true;\n var expectedTypes = [];\n if (type) {\n if (!isArray(type)) {\n type = [type];\n }\n for (var i = 0; i < type.length && !valid; i++) {\n var assertedType = assertType(value, type[i], vm);\n expectedTypes.push(assertedType.expectedType || '');\n valid = assertedType.valid;\n }\n }\n var haveExpectedTypes = expectedTypes.some(function (t) { return t; });\n if (!valid && haveExpectedTypes) {\n warn$2(getInvalidTypeMessage(name, value, expectedTypes), vm);\n return;\n }\n var validator = prop.validator;\n if (validator) {\n if (!validator(value)) {\n warn$2('Invalid prop: custom validator check failed for prop \"' + name + '\".', vm);\n }\n }\n }\n var simpleCheckRE = /^(String|Number|Boolean|Function|Symbol|BigInt)$/;\n function assertType(value, type, vm) {\n var valid;\n var expectedType = getType(type);\n if (simpleCheckRE.test(expectedType)) {\n var t = typeof value;\n valid = t === expectedType.toLowerCase();\n // for primitive wrapper objects\n if (!valid && t === 'object') {\n valid = value instanceof type;\n }\n }\n else if (expectedType === 'Object') {\n valid = isPlainObject(value);\n }\n else if (expectedType === 'Array') {\n valid = isArray(value);\n }\n else {\n try {\n valid = value instanceof type;\n }\n catch (e) {\n warn$2('Invalid prop type: \"' + String(type) + '\" is not a constructor', vm);\n valid = false;\n }\n }\n return {\n valid: valid,\n expectedType: expectedType\n };\n }\n var functionTypeCheckRE = /^\\s*function (\\w+)/;\n /**\n * Use function string name to check built-in types,\n * because a simple equality check will fail when running\n * across different vms / iframes.\n */\n function getType(fn) {\n var match = fn && fn.toString().match(functionTypeCheckRE);\n return match ? match[1] : '';\n }\n function isSameType(a, b) {\n return getType(a) === getType(b);\n }\n function getTypeIndex(type, expectedTypes) {\n if (!isArray(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1;\n }\n for (var i = 0, len = expectedTypes.length; i < len; i++) {\n if (isSameType(expectedTypes[i], type)) {\n return i;\n }\n }\n return -1;\n }\n function getInvalidTypeMessage(name, value, expectedTypes) {\n var message = \"Invalid prop: type check failed for prop \\\"\".concat(name, \"\\\".\") +\n \" Expected \".concat(expectedTypes.map(capitalize).join(', '));\n var expectedType = expectedTypes[0];\n var receivedType = toRawType(value);\n // check if we need to specify expected value\n if (expectedTypes.length === 1 &&\n isExplicable(expectedType) &&\n isExplicable(typeof value) &&\n !isBoolean(expectedType, receivedType)) {\n message += \" with value \".concat(styleValue(value, expectedType));\n }\n message += \", got \".concat(receivedType, \" \");\n // check if we need to specify received value\n if (isExplicable(receivedType)) {\n message += \"with value \".concat(styleValue(value, receivedType), \".\");\n }\n return message;\n }\n function styleValue(value, type) {\n if (type === 'String') {\n return \"\\\"\".concat(value, \"\\\"\");\n }\n else if (type === 'Number') {\n return \"\".concat(Number(value));\n }\n else {\n return \"\".concat(value);\n }\n }\n var EXPLICABLE_TYPES = ['string', 'number', 'boolean'];\n function isExplicable(value) {\n return EXPLICABLE_TYPES.some(function (elem) { return value.toLowerCase() === elem; });\n }\n function isBoolean() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; });\n }\n\n function Vue(options) {\n if (!(this instanceof Vue)) {\n warn$2('Vue is a constructor and should be called with the `new` keyword');\n }\n this._init(options);\n }\n //@ts-expect-error Vue has function type\n initMixin$1(Vue);\n //@ts-expect-error Vue has function type\n stateMixin(Vue);\n //@ts-expect-error Vue has function type\n eventsMixin(Vue);\n //@ts-expect-error Vue has function type\n lifecycleMixin(Vue);\n //@ts-expect-error Vue has function type\n renderMixin(Vue);\n\n function initUse(Vue) {\n Vue.use = function (plugin) {\n var installedPlugins = this._installedPlugins || (this._installedPlugins = []);\n if (installedPlugins.indexOf(plugin) > -1) {\n return this;\n }\n // additional parameters\n var args = toArray(arguments, 1);\n args.unshift(this);\n if (isFunction(plugin.install)) {\n plugin.install.apply(plugin, args);\n }\n else if (isFunction(plugin)) {\n plugin.apply(null, args);\n }\n installedPlugins.push(plugin);\n return this;\n };\n }\n\n function initMixin(Vue) {\n Vue.mixin = function (mixin) {\n this.options = mergeOptions(this.options, mixin);\n return this;\n };\n }\n\n function initExtend(Vue) {\n /**\n * Each instance constructor, including Vue, has a unique\n * cid. This enables us to create wrapped \"child\n * constructors\" for prototypal inheritance and cache them.\n */\n Vue.cid = 0;\n var cid = 1;\n /**\n * Class inheritance\n */\n Vue.extend = function (extendOptions) {\n extendOptions = extendOptions || {};\n var Super = this;\n var SuperId = Super.cid;\n var cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {});\n if (cachedCtors[SuperId]) {\n return cachedCtors[SuperId];\n }\n var name = getComponentName(extendOptions) || getComponentName(Super.options);\n if (name) {\n validateComponentName(name);\n }\n var Sub = function VueComponent(options) {\n this._init(options);\n };\n Sub.prototype = Object.create(Super.prototype);\n Sub.prototype.constructor = Sub;\n Sub.cid = cid++;\n Sub.options = mergeOptions(Super.options, extendOptions);\n Sub['super'] = Super;\n // For props and computed properties, we define the proxy getters on\n // the Vue instances at extension time, on the extended prototype. This\n // avoids Object.defineProperty calls for each instance created.\n if (Sub.options.props) {\n initProps(Sub);\n }\n if (Sub.options.computed) {\n initComputed(Sub);\n }\n // allow further extension/mixin/plugin usage\n Sub.extend = Super.extend;\n Sub.mixin = Super.mixin;\n Sub.use = Super.use;\n // create asset registers, so extended classes\n // can have their private assets too.\n ASSET_TYPES.forEach(function (type) {\n Sub[type] = Super[type];\n });\n // enable recursive self-lookup\n if (name) {\n Sub.options.components[name] = Sub;\n }\n // keep a reference to the super options at extension time.\n // later at instantiation we can check if Super's options have\n // been updated.\n Sub.superOptions = Super.options;\n Sub.extendOptions = extendOptions;\n Sub.sealedOptions = extend({}, Sub.options);\n // cache constructor\n cachedCtors[SuperId] = Sub;\n return Sub;\n };\n }\n function initProps(Comp) {\n var props = Comp.options.props;\n for (var key in props) {\n proxy(Comp.prototype, \"_props\", key);\n }\n }\n function initComputed(Comp) {\n var computed = Comp.options.computed;\n for (var key in computed) {\n defineComputed(Comp.prototype, key, computed[key]);\n }\n }\n\n function initAssetRegisters(Vue) {\n /**\n * Create asset registration methods.\n */\n ASSET_TYPES.forEach(function (type) {\n // @ts-expect-error function is not exact same type\n Vue[type] = function (id, definition) {\n if (!definition) {\n return this.options[type + 's'][id];\n }\n else {\n /* istanbul ignore if */\n if (type === 'component') {\n validateComponentName(id);\n }\n if (type === 'component' && isPlainObject(definition)) {\n // @ts-expect-error\n definition.name = definition.name || id;\n definition = this.options._base.extend(definition);\n }\n if (type === 'directive' && isFunction(definition)) {\n definition = { bind: definition, update: definition };\n }\n this.options[type + 's'][id] = definition;\n return definition;\n }\n };\n });\n }\n\n function _getComponentName(opts) {\n return opts && (getComponentName(opts.Ctor.options) || opts.tag);\n }\n function matches(pattern, name) {\n if (isArray(pattern)) {\n return pattern.indexOf(name) > -1;\n }\n else if (typeof pattern === 'string') {\n return pattern.split(',').indexOf(name) > -1;\n }\n else if (isRegExp(pattern)) {\n return pattern.test(name);\n }\n /* istanbul ignore next */\n return false;\n }\n function pruneCache(keepAliveInstance, filter) {\n var cache = keepAliveInstance.cache, keys = keepAliveInstance.keys, _vnode = keepAliveInstance._vnode;\n for (var key in cache) {\n var entry = cache[key];\n if (entry) {\n var name_1 = entry.name;\n if (name_1 && !filter(name_1)) {\n pruneCacheEntry(cache, key, keys, _vnode);\n }\n }\n }\n }\n function pruneCacheEntry(cache, key, keys, current) {\n var entry = cache[key];\n if (entry && (!current || entry.tag !== current.tag)) {\n // @ts-expect-error can be undefined\n entry.componentInstance.$destroy();\n }\n cache[key] = null;\n remove$2(keys, key);\n }\n var patternTypes = [String, RegExp, Array];\n // TODO defineComponent\n var KeepAlive = {\n name: 'keep-alive',\n abstract: true,\n props: {\n include: patternTypes,\n exclude: patternTypes,\n max: [String, Number]\n },\n methods: {\n cacheVNode: function () {\n var _a = this, cache = _a.cache, keys = _a.keys, vnodeToCache = _a.vnodeToCache, keyToCache = _a.keyToCache;\n if (vnodeToCache) {\n var tag = vnodeToCache.tag, componentInstance = vnodeToCache.componentInstance, componentOptions = vnodeToCache.componentOptions;\n cache[keyToCache] = {\n name: _getComponentName(componentOptions),\n tag: tag,\n componentInstance: componentInstance\n };\n keys.push(keyToCache);\n // prune oldest entry\n if (this.max && keys.length > parseInt(this.max)) {\n pruneCacheEntry(cache, keys[0], keys, this._vnode);\n }\n this.vnodeToCache = null;\n }\n }\n },\n created: function () {\n this.cache = Object.create(null);\n this.keys = [];\n },\n destroyed: function () {\n for (var key in this.cache) {\n pruneCacheEntry(this.cache, key, this.keys);\n }\n },\n mounted: function () {\n var _this = this;\n this.cacheVNode();\n this.$watch('include', function (val) {\n pruneCache(_this, function (name) { return matches(val, name); });\n });\n this.$watch('exclude', function (val) {\n pruneCache(_this, function (name) { return !matches(val, name); });\n });\n },\n updated: function () {\n this.cacheVNode();\n },\n render: function () {\n var slot = this.$slots.default;\n var vnode = getFirstComponentChild(slot);\n var componentOptions = vnode && vnode.componentOptions;\n if (componentOptions) {\n // check pattern\n var name_2 = _getComponentName(componentOptions);\n var _a = this, include = _a.include, exclude = _a.exclude;\n if (\n // not included\n (include && (!name_2 || !matches(include, name_2))) ||\n // excluded\n (exclude && name_2 && matches(exclude, name_2))) {\n return vnode;\n }\n var _b = this, cache = _b.cache, keys = _b.keys;\n var key = vnode.key == null\n ? // same constructor may get registered as different local components\n // so cid alone is not enough (#3269)\n componentOptions.Ctor.cid +\n (componentOptions.tag ? \"::\".concat(componentOptions.tag) : '')\n : vnode.key;\n if (cache[key]) {\n vnode.componentInstance = cache[key].componentInstance;\n // make current key freshest\n remove$2(keys, key);\n keys.push(key);\n }\n else {\n // delay setting the cache until update\n this.vnodeToCache = vnode;\n this.keyToCache = key;\n }\n // @ts-expect-error can vnode.data can be undefined\n vnode.data.keepAlive = true;\n }\n return vnode || (slot && slot[0]);\n }\n };\n\n var builtInComponents = {\n KeepAlive: KeepAlive\n };\n\n function initGlobalAPI(Vue) {\n // config\n var configDef = {};\n configDef.get = function () { return config; };\n {\n configDef.set = function () {\n warn$2('Do not replace the Vue.config object, set individual fields instead.');\n };\n }\n Object.defineProperty(Vue, 'config', configDef);\n // exposed util methods.\n // NOTE: these are not considered part of the public API - avoid relying on\n // them unless you are aware of the risk.\n Vue.util = {\n warn: warn$2,\n extend: extend,\n mergeOptions: mergeOptions,\n defineReactive: defineReactive\n };\n Vue.set = set;\n Vue.delete = del;\n Vue.nextTick = nextTick;\n // 2.6 explicit observable API\n Vue.observable = function (obj) {\n observe(obj);\n return obj;\n };\n Vue.options = Object.create(null);\n ASSET_TYPES.forEach(function (type) {\n Vue.options[type + 's'] = Object.create(null);\n });\n // this is used to identify the \"base\" constructor to extend all plain-object\n // components with in Weex's multi-instance scenarios.\n Vue.options._base = Vue;\n extend(Vue.options.components, builtInComponents);\n initUse(Vue);\n initMixin(Vue);\n initExtend(Vue);\n initAssetRegisters(Vue);\n }\n\n initGlobalAPI(Vue);\n Object.defineProperty(Vue.prototype, '$isServer', {\n get: isServerRendering\n });\n Object.defineProperty(Vue.prototype, '$ssrContext', {\n get: function () {\n /* istanbul ignore next */\n return this.$vnode && this.$vnode.ssrContext;\n }\n });\n // expose FunctionalRenderContext for ssr runtime helper installation\n Object.defineProperty(Vue, 'FunctionalRenderContext', {\n value: FunctionalRenderContext\n });\n Vue.version = version;\n\n // these are reserved for web because they are directly compiled away\n // during template compilation\n var isReservedAttr = makeMap('style,class');\n // attributes that should be using props for binding\n var acceptValue = makeMap('input,textarea,option,select,progress');\n var mustUseProp = function (tag, type, attr) {\n return ((attr === 'value' && acceptValue(tag) && type !== 'button') ||\n (attr === 'selected' && tag === 'option') ||\n (attr === 'checked' && tag === 'input') ||\n (attr === 'muted' && tag === 'video'));\n };\n var isEnumeratedAttr = makeMap('contenteditable,draggable,spellcheck');\n var isValidContentEditableValue = makeMap('events,caret,typing,plaintext-only');\n var convertEnumeratedValue = function (key, value) {\n return isFalsyAttrValue(value) || value === 'false'\n ? 'false'\n : // allow arbitrary string value for contenteditable\n key === 'contenteditable' && isValidContentEditableValue(value)\n ? value\n : 'true';\n };\n var isBooleanAttr = makeMap('allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,' +\n 'default,defaultchecked,defaultmuted,defaultselected,defer,disabled,' +\n 'enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,' +\n 'muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,' +\n 'required,reversed,scoped,seamless,selected,sortable,' +\n 'truespeed,typemustmatch,visible');\n var xlinkNS = 'http://www.w3.org/1999/xlink';\n var isXlink = function (name) {\n return name.charAt(5) === ':' && name.slice(0, 5) === 'xlink';\n };\n var getXlinkProp = function (name) {\n return isXlink(name) ? name.slice(6, name.length) : '';\n };\n var isFalsyAttrValue = function (val) {\n return val == null || val === false;\n };\n\n function genClassForVnode(vnode) {\n var data = vnode.data;\n var parentNode = vnode;\n var childNode = vnode;\n while (isDef(childNode.componentInstance)) {\n childNode = childNode.componentInstance._vnode;\n if (childNode && childNode.data) {\n data = mergeClassData(childNode.data, data);\n }\n }\n // @ts-expect-error parentNode.parent not VNodeWithData\n while (isDef((parentNode = parentNode.parent))) {\n if (parentNode && parentNode.data) {\n data = mergeClassData(data, parentNode.data);\n }\n }\n return renderClass(data.staticClass, data.class);\n }\n function mergeClassData(child, parent) {\n return {\n staticClass: concat(child.staticClass, parent.staticClass),\n class: isDef(child.class) ? [child.class, parent.class] : parent.class\n };\n }\n function renderClass(staticClass, dynamicClass) {\n if (isDef(staticClass) || isDef(dynamicClass)) {\n return concat(staticClass, stringifyClass(dynamicClass));\n }\n /* istanbul ignore next */\n return '';\n }\n function concat(a, b) {\n return a ? (b ? a + ' ' + b : a) : b || '';\n }\n function stringifyClass(value) {\n if (Array.isArray(value)) {\n return stringifyArray(value);\n }\n if (isObject(value)) {\n return stringifyObject(value);\n }\n if (typeof value === 'string') {\n return value;\n }\n /* istanbul ignore next */\n return '';\n }\n function stringifyArray(value) {\n var res = '';\n var stringified;\n for (var i = 0, l = value.length; i < l; i++) {\n if (isDef((stringified = stringifyClass(value[i]))) && stringified !== '') {\n if (res)\n res += ' ';\n res += stringified;\n }\n }\n return res;\n }\n function stringifyObject(value) {\n var res = '';\n for (var key in value) {\n if (value[key]) {\n if (res)\n res += ' ';\n res += key;\n }\n }\n return res;\n }\n\n var namespaceMap = {\n svg: 'http://www.w3.org/2000/svg',\n math: 'http://www.w3.org/1998/Math/MathML'\n };\n var isHTMLTag = makeMap('html,body,base,head,link,meta,style,title,' +\n 'address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,' +\n 'div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,' +\n 'a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,' +\n 's,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,' +\n 'embed,object,param,source,canvas,script,noscript,del,ins,' +\n 'caption,col,colgroup,table,thead,tbody,td,th,tr,' +\n 'button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,' +\n 'output,progress,select,textarea,' +\n 'details,dialog,menu,menuitem,summary,' +\n 'content,element,shadow,template,blockquote,iframe,tfoot');\n // this map is intentionally selective, only covering SVG elements that may\n // contain child elements.\n var isSVG = makeMap('svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,' +\n 'foreignobject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,' +\n 'polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view', true);\n var isPreTag = function (tag) { return tag === 'pre'; };\n var isReservedTag = function (tag) {\n return isHTMLTag(tag) || isSVG(tag);\n };\n function getTagNamespace(tag) {\n if (isSVG(tag)) {\n return 'svg';\n }\n // basic support for MathML\n // note it doesn't support other MathML elements being component roots\n if (tag === 'math') {\n return 'math';\n }\n }\n var unknownElementCache = Object.create(null);\n function isUnknownElement(tag) {\n /* istanbul ignore if */\n if (!inBrowser) {\n return true;\n }\n if (isReservedTag(tag)) {\n return false;\n }\n tag = tag.toLowerCase();\n /* istanbul ignore if */\n if (unknownElementCache[tag] != null) {\n return unknownElementCache[tag];\n }\n var el = document.createElement(tag);\n if (tag.indexOf('-') > -1) {\n // http://stackoverflow.com/a/28210364/1070244\n return (unknownElementCache[tag] =\n el.constructor === window.HTMLUnknownElement ||\n el.constructor === window.HTMLElement);\n }\n else {\n return (unknownElementCache[tag] = /HTMLUnknownElement/.test(el.toString()));\n }\n }\n var isTextInputType = makeMap('text,number,password,search,email,tel,url');\n\n /**\n * Query an element selector if it's not an element already.\n */\n function query(el) {\n if (typeof el === 'string') {\n var selected = document.querySelector(el);\n if (!selected) {\n warn$2('Cannot find element: ' + el);\n return document.createElement('div');\n }\n return selected;\n }\n else {\n return el;\n }\n }\n\n function createElement(tagName, vnode) {\n var elm = document.createElement(tagName);\n if (tagName !== 'select') {\n return elm;\n }\n // false or null will remove the attribute but undefined will not\n if (vnode.data &&\n vnode.data.attrs &&\n vnode.data.attrs.multiple !== undefined) {\n elm.setAttribute('multiple', 'multiple');\n }\n return elm;\n }\n function createElementNS(namespace, tagName) {\n return document.createElementNS(namespaceMap[namespace], tagName);\n }\n function createTextNode(text) {\n return document.createTextNode(text);\n }\n function createComment(text) {\n return document.createComment(text);\n }\n function insertBefore(parentNode, newNode, referenceNode) {\n parentNode.insertBefore(newNode, referenceNode);\n }\n function removeChild(node, child) {\n node.removeChild(child);\n }\n function appendChild(node, child) {\n node.appendChild(child);\n }\n function parentNode(node) {\n return node.parentNode;\n }\n function nextSibling(node) {\n return node.nextSibling;\n }\n function tagName(node) {\n return node.tagName;\n }\n function setTextContent(node, text) {\n node.textContent = text;\n }\n function setStyleScope(node, scopeId) {\n node.setAttribute(scopeId, '');\n }\n\n var nodeOps = /*#__PURE__*/Object.freeze({\n __proto__: null,\n createElement: createElement,\n createElementNS: createElementNS,\n createTextNode: createTextNode,\n createComment: createComment,\n insertBefore: insertBefore,\n removeChild: removeChild,\n appendChild: appendChild,\n parentNode: parentNode,\n nextSibling: nextSibling,\n tagName: tagName,\n setTextContent: setTextContent,\n setStyleScope: setStyleScope\n });\n\n var ref = {\n create: function (_, vnode) {\n registerRef(vnode);\n },\n update: function (oldVnode, vnode) {\n if (oldVnode.data.ref !== vnode.data.ref) {\n registerRef(oldVnode, true);\n registerRef(vnode);\n }\n },\n destroy: function (vnode) {\n registerRef(vnode, true);\n }\n };\n function registerRef(vnode, isRemoval) {\n var ref = vnode.data.ref;\n if (!isDef(ref))\n return;\n var vm = vnode.context;\n var refValue = vnode.componentInstance || vnode.elm;\n var value = isRemoval ? null : refValue;\n var $refsValue = isRemoval ? undefined : refValue;\n if (isFunction(ref)) {\n invokeWithErrorHandling(ref, vm, [value], vm, \"template ref function\");\n return;\n }\n var isFor = vnode.data.refInFor;\n var _isString = typeof ref === 'string' || typeof ref === 'number';\n var _isRef = isRef(ref);\n var refs = vm.$refs;\n if (_isString || _isRef) {\n if (isFor) {\n var existing = _isString ? refs[ref] : ref.value;\n if (isRemoval) {\n isArray(existing) && remove$2(existing, refValue);\n }\n else {\n if (!isArray(existing)) {\n if (_isString) {\n refs[ref] = [refValue];\n setSetupRef(vm, ref, refs[ref]);\n }\n else {\n ref.value = [refValue];\n }\n }\n else if (!existing.includes(refValue)) {\n existing.push(refValue);\n }\n }\n }\n else if (_isString) {\n if (isRemoval && refs[ref] !== refValue) {\n return;\n }\n refs[ref] = $refsValue;\n setSetupRef(vm, ref, value);\n }\n else if (_isRef) {\n if (isRemoval && ref.value !== refValue) {\n return;\n }\n ref.value = value;\n }\n else {\n warn$2(\"Invalid template ref type: \".concat(typeof ref));\n }\n }\n }\n function setSetupRef(_a, key, val) {\n var _setupState = _a._setupState;\n if (_setupState && hasOwn(_setupState, key)) {\n if (isRef(_setupState[key])) {\n _setupState[key].value = val;\n }\n else {\n _setupState[key] = val;\n }\n }\n }\n\n /**\n * Virtual DOM patching algorithm based on Snabbdom by\n * Simon Friis Vindum (@paldepind)\n * Licensed under the MIT License\n * https://github.com/paldepind/snabbdom/blob/master/LICENSE\n *\n * modified by Evan You (@yyx990803)\n *\n * Not type-checking this because this file is perf-critical and the cost\n * of making flow understand it is not worth it.\n */\n var emptyNode = new VNode('', {}, []);\n var hooks = ['create', 'activate', 'update', 'remove', 'destroy'];\n function sameVnode(a, b) {\n return (a.key === b.key &&\n a.asyncFactory === b.asyncFactory &&\n ((a.tag === b.tag &&\n a.isComment === b.isComment &&\n isDef(a.data) === isDef(b.data) &&\n sameInputType(a, b)) ||\n (isTrue(a.isAsyncPlaceholder) && isUndef(b.asyncFactory.error))));\n }\n function sameInputType(a, b) {\n if (a.tag !== 'input')\n return true;\n var i;\n var typeA = isDef((i = a.data)) && isDef((i = i.attrs)) && i.type;\n var typeB = isDef((i = b.data)) && isDef((i = i.attrs)) && i.type;\n return typeA === typeB || (isTextInputType(typeA) && isTextInputType(typeB));\n }\n function createKeyToOldIdx(children, beginIdx, endIdx) {\n var i, key;\n var map = {};\n for (i = beginIdx; i <= endIdx; ++i) {\n key = children[i].key;\n if (isDef(key))\n map[key] = i;\n }\n return map;\n }\n function createPatchFunction(backend) {\n var i, j;\n var cbs = {};\n var modules = backend.modules, nodeOps = backend.nodeOps;\n for (i = 0; i < hooks.length; ++i) {\n cbs[hooks[i]] = [];\n for (j = 0; j < modules.length; ++j) {\n if (isDef(modules[j][hooks[i]])) {\n cbs[hooks[i]].push(modules[j][hooks[i]]);\n }\n }\n }\n function emptyNodeAt(elm) {\n return new VNode(nodeOps.tagName(elm).toLowerCase(), {}, [], undefined, elm);\n }\n function createRmCb(childElm, listeners) {\n function remove() {\n if (--remove.listeners === 0) {\n removeNode(childElm);\n }\n }\n remove.listeners = listeners;\n return remove;\n }\n function removeNode(el) {\n var parent = nodeOps.parentNode(el);\n // element may have already been removed due to v-html / v-text\n if (isDef(parent)) {\n nodeOps.removeChild(parent, el);\n }\n }\n function isUnknownElement(vnode, inVPre) {\n return (!inVPre &&\n !vnode.ns &&\n !(config.ignoredElements.length &&\n config.ignoredElements.some(function (ignore) {\n return isRegExp(ignore)\n ? ignore.test(vnode.tag)\n : ignore === vnode.tag;\n })) &&\n config.isUnknownElement(vnode.tag));\n }\n var creatingElmInVPre = 0;\n function createElm(vnode, insertedVnodeQueue, parentElm, refElm, nested, ownerArray, index) {\n if (isDef(vnode.elm) && isDef(ownerArray)) {\n // This vnode was used in a previous render!\n // now it's used as a new node, overwriting its elm would cause\n // potential patch errors down the road when it's used as an insertion\n // reference node. Instead, we clone the node on-demand before creating\n // associated DOM element for it.\n vnode = ownerArray[index] = cloneVNode(vnode);\n }\n vnode.isRootInsert = !nested; // for transition enter check\n if (createComponent(vnode, insertedVnodeQueue, parentElm, refElm)) {\n return;\n }\n var data = vnode.data;\n var children = vnode.children;\n var tag = vnode.tag;\n if (isDef(tag)) {\n {\n if (data && data.pre) {\n creatingElmInVPre++;\n }\n if (isUnknownElement(vnode, creatingElmInVPre)) {\n warn$2('Unknown custom element: <' +\n tag +\n '> - did you ' +\n 'register the component correctly? For recursive components, ' +\n 'make sure to provide the \"name\" option.', vnode.context);\n }\n }\n vnode.elm = vnode.ns\n ? nodeOps.createElementNS(vnode.ns, tag)\n : nodeOps.createElement(tag, vnode);\n setScope(vnode);\n createChildren(vnode, children, insertedVnodeQueue);\n if (isDef(data)) {\n invokeCreateHooks(vnode, insertedVnodeQueue);\n }\n insert(parentElm, vnode.elm, refElm);\n if (data && data.pre) {\n creatingElmInVPre--;\n }\n }\n else if (isTrue(vnode.isComment)) {\n vnode.elm = nodeOps.createComment(vnode.text);\n insert(parentElm, vnode.elm, refElm);\n }\n else {\n vnode.elm = nodeOps.createTextNode(vnode.text);\n insert(parentElm, vnode.elm, refElm);\n }\n }\n function createComponent(vnode, insertedVnodeQueue, parentElm, refElm) {\n var i = vnode.data;\n if (isDef(i)) {\n var isReactivated = isDef(vnode.componentInstance) && i.keepAlive;\n if (isDef((i = i.hook)) && isDef((i = i.init))) {\n i(vnode, false /* hydrating */);\n }\n // after calling the init hook, if the vnode is a child component\n // it should've created a child instance and mounted it. the child\n // component also has set the placeholder vnode's elm.\n // in that case we can just return the element and be done.\n if (isDef(vnode.componentInstance)) {\n initComponent(vnode, insertedVnodeQueue);\n insert(parentElm, vnode.elm, refElm);\n if (isTrue(isReactivated)) {\n reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm);\n }\n return true;\n }\n }\n }\n function initComponent(vnode, insertedVnodeQueue) {\n if (isDef(vnode.data.pendingInsert)) {\n insertedVnodeQueue.push.apply(insertedVnodeQueue, vnode.data.pendingInsert);\n vnode.data.pendingInsert = null;\n }\n vnode.elm = vnode.componentInstance.$el;\n if (isPatchable(vnode)) {\n invokeCreateHooks(vnode, insertedVnodeQueue);\n setScope(vnode);\n }\n else {\n // empty component root.\n // skip all element-related modules except for ref (#3455)\n registerRef(vnode);\n // make sure to invoke the insert hook\n insertedVnodeQueue.push(vnode);\n }\n }\n function reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm) {\n var i;\n // hack for #4339: a reactivated component with inner transition\n // does not trigger because the inner node's created hooks are not called\n // again. It's not ideal to involve module-specific logic in here but\n // there doesn't seem to be a better way to do it.\n var innerNode = vnode;\n while (innerNode.componentInstance) {\n innerNode = innerNode.componentInstance._vnode;\n if (isDef((i = innerNode.data)) && isDef((i = i.transition))) {\n for (i = 0; i < cbs.activate.length; ++i) {\n cbs.activate[i](emptyNode, innerNode);\n }\n insertedVnodeQueue.push(innerNode);\n break;\n }\n }\n // unlike a newly created component,\n // a reactivated keep-alive component doesn't insert itself\n insert(parentElm, vnode.elm, refElm);\n }\n function insert(parent, elm, ref) {\n if (isDef(parent)) {\n if (isDef(ref)) {\n if (nodeOps.parentNode(ref) === parent) {\n nodeOps.insertBefore(parent, elm, ref);\n }\n }\n else {\n nodeOps.appendChild(parent, elm);\n }\n }\n }\n function createChildren(vnode, children, insertedVnodeQueue) {\n if (isArray(children)) {\n {\n checkDuplicateKeys(children);\n }\n for (var i_1 = 0; i_1 < children.length; ++i_1) {\n createElm(children[i_1], insertedVnodeQueue, vnode.elm, null, true, children, i_1);\n }\n }\n else if (isPrimitive(vnode.text)) {\n nodeOps.appendChild(vnode.elm, nodeOps.createTextNode(String(vnode.text)));\n }\n }\n function isPatchable(vnode) {\n while (vnode.componentInstance) {\n vnode = vnode.componentInstance._vnode;\n }\n return isDef(vnode.tag);\n }\n function invokeCreateHooks(vnode, insertedVnodeQueue) {\n for (var i_2 = 0; i_2 < cbs.create.length; ++i_2) {\n cbs.create[i_2](emptyNode, vnode);\n }\n i = vnode.data.hook; // Reuse variable\n if (isDef(i)) {\n if (isDef(i.create))\n i.create(emptyNode, vnode);\n if (isDef(i.insert))\n insertedVnodeQueue.push(vnode);\n }\n }\n // set scope id attribute for scoped CSS.\n // this is implemented as a special case to avoid the overhead\n // of going through the normal attribute patching process.\n function setScope(vnode) {\n var i;\n if (isDef((i = vnode.fnScopeId))) {\n nodeOps.setStyleScope(vnode.elm, i);\n }\n else {\n var ancestor = vnode;\n while (ancestor) {\n if (isDef((i = ancestor.context)) && isDef((i = i.$options._scopeId))) {\n nodeOps.setStyleScope(vnode.elm, i);\n }\n ancestor = ancestor.parent;\n }\n }\n // for slot content they should also get the scopeId from the host instance.\n if (isDef((i = activeInstance)) &&\n i !== vnode.context &&\n i !== vnode.fnContext &&\n isDef((i = i.$options._scopeId))) {\n nodeOps.setStyleScope(vnode.elm, i);\n }\n }\n function addVnodes(parentElm, refElm, vnodes, startIdx, endIdx, insertedVnodeQueue) {\n for (; startIdx <= endIdx; ++startIdx) {\n createElm(vnodes[startIdx], insertedVnodeQueue, parentElm, refElm, false, vnodes, startIdx);\n }\n }\n function invokeDestroyHook(vnode) {\n var i, j;\n var data = vnode.data;\n if (isDef(data)) {\n if (isDef((i = data.hook)) && isDef((i = i.destroy)))\n i(vnode);\n for (i = 0; i < cbs.destroy.length; ++i)\n cbs.destroy[i](vnode);\n }\n if (isDef((i = vnode.children))) {\n for (j = 0; j < vnode.children.length; ++j) {\n invokeDestroyHook(vnode.children[j]);\n }\n }\n }\n function removeVnodes(vnodes, startIdx, endIdx) {\n for (; startIdx <= endIdx; ++startIdx) {\n var ch = vnodes[startIdx];\n if (isDef(ch)) {\n if (isDef(ch.tag)) {\n removeAndInvokeRemoveHook(ch);\n invokeDestroyHook(ch);\n }\n else {\n // Text node\n removeNode(ch.elm);\n }\n }\n }\n }\n function removeAndInvokeRemoveHook(vnode, rm) {\n if (isDef(rm) || isDef(vnode.data)) {\n var i_3;\n var listeners = cbs.remove.length + 1;\n if (isDef(rm)) {\n // we have a recursively passed down rm callback\n // increase the listeners count\n rm.listeners += listeners;\n }\n else {\n // directly removing\n rm = createRmCb(vnode.elm, listeners);\n }\n // recursively invoke hooks on child component root node\n if (isDef((i_3 = vnode.componentInstance)) &&\n isDef((i_3 = i_3._vnode)) &&\n isDef(i_3.data)) {\n removeAndInvokeRemoveHook(i_3, rm);\n }\n for (i_3 = 0; i_3 < cbs.remove.length; ++i_3) {\n cbs.remove[i_3](vnode, rm);\n }\n if (isDef((i_3 = vnode.data.hook)) && isDef((i_3 = i_3.remove))) {\n i_3(vnode, rm);\n }\n else {\n rm();\n }\n }\n else {\n removeNode(vnode.elm);\n }\n }\n function updateChildren(parentElm, oldCh, newCh, insertedVnodeQueue, removeOnly) {\n var oldStartIdx = 0;\n var newStartIdx = 0;\n var oldEndIdx = oldCh.length - 1;\n var oldStartVnode = oldCh[0];\n var oldEndVnode = oldCh[oldEndIdx];\n var newEndIdx = newCh.length - 1;\n var newStartVnode = newCh[0];\n var newEndVnode = newCh[newEndIdx];\n var oldKeyToIdx, idxInOld, vnodeToMove, refElm;\n // removeOnly is a special flag used only by <transition-group>\n // to ensure removed elements stay in correct relative positions\n // during leaving transitions\n var canMove = !removeOnly;\n {\n checkDuplicateKeys(newCh);\n }\n while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n if (isUndef(oldStartVnode)) {\n oldStartVnode = oldCh[++oldStartIdx]; // Vnode has been moved left\n }\n else if (isUndef(oldEndVnode)) {\n oldEndVnode = oldCh[--oldEndIdx];\n }\n else if (sameVnode(oldStartVnode, newStartVnode)) {\n patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);\n oldStartVnode = oldCh[++oldStartIdx];\n newStartVnode = newCh[++newStartIdx];\n }\n else if (sameVnode(oldEndVnode, newEndVnode)) {\n patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx);\n oldEndVnode = oldCh[--oldEndIdx];\n newEndVnode = newCh[--newEndIdx];\n }\n else if (sameVnode(oldStartVnode, newEndVnode)) {\n // Vnode moved right\n patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx);\n canMove &&\n nodeOps.insertBefore(parentElm, oldStartVnode.elm, nodeOps.nextSibling(oldEndVnode.elm));\n oldStartVnode = oldCh[++oldStartIdx];\n newEndVnode = newCh[--newEndIdx];\n }\n else if (sameVnode(oldEndVnode, newStartVnode)) {\n // Vnode moved left\n patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);\n canMove &&\n nodeOps.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm);\n oldEndVnode = oldCh[--oldEndIdx];\n newStartVnode = newCh[++newStartIdx];\n }\n else {\n if (isUndef(oldKeyToIdx))\n oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx);\n idxInOld = isDef(newStartVnode.key)\n ? oldKeyToIdx[newStartVnode.key]\n : findIdxInOld(newStartVnode, oldCh, oldStartIdx, oldEndIdx);\n if (isUndef(idxInOld)) {\n // New element\n createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);\n }\n else {\n vnodeToMove = oldCh[idxInOld];\n if (sameVnode(vnodeToMove, newStartVnode)) {\n patchVnode(vnodeToMove, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);\n oldCh[idxInOld] = undefined;\n canMove &&\n nodeOps.insertBefore(parentElm, vnodeToMove.elm, oldStartVnode.elm);\n }\n else {\n // same key but different element. treat as new element\n createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);\n }\n }\n newStartVnode = newCh[++newStartIdx];\n }\n }\n if (oldStartIdx > oldEndIdx) {\n refElm = isUndef(newCh[newEndIdx + 1]) ? null : newCh[newEndIdx + 1].elm;\n addVnodes(parentElm, refElm, newCh, newStartIdx, newEndIdx, insertedVnodeQueue);\n }\n else if (newStartIdx > newEndIdx) {\n removeVnodes(oldCh, oldStartIdx, oldEndIdx);\n }\n }\n function checkDuplicateKeys(children) {\n var seenKeys = {};\n for (var i_4 = 0; i_4 < children.length; i_4++) {\n var vnode = children[i_4];\n var key = vnode.key;\n if (isDef(key)) {\n if (seenKeys[key]) {\n warn$2(\"Duplicate keys detected: '\".concat(key, \"'. This may cause an update error.\"), vnode.context);\n }\n else {\n seenKeys[key] = true;\n }\n }\n }\n }\n function findIdxInOld(node, oldCh, start, end) {\n for (var i_5 = start; i_5 < end; i_5++) {\n var c = oldCh[i_5];\n if (isDef(c) && sameVnode(node, c))\n return i_5;\n }\n }\n function patchVnode(oldVnode, vnode, insertedVnodeQueue, ownerArray, index, removeOnly) {\n if (oldVnode === vnode) {\n return;\n }\n if (isDef(vnode.elm) && isDef(ownerArray)) {\n // clone reused vnode\n vnode = ownerArray[index] = cloneVNode(vnode);\n }\n var elm = (vnode.elm = oldVnode.elm);\n if (isTrue(oldVnode.isAsyncPlaceholder)) {\n if (isDef(vnode.asyncFactory.resolved)) {\n hydrate(oldVnode.elm, vnode, insertedVnodeQueue);\n }\n else {\n vnode.isAsyncPlaceholder = true;\n }\n return;\n }\n // reuse element for static trees.\n // note we only do this if the vnode is cloned -\n // if the new node is not cloned it means the render functions have been\n // reset by the hot-reload-api and we need to do a proper re-render.\n if (isTrue(vnode.isStatic) &&\n isTrue(oldVnode.isStatic) &&\n vnode.key === oldVnode.key &&\n (isTrue(vnode.isCloned) || isTrue(vnode.isOnce))) {\n vnode.componentInstance = oldVnode.componentInstance;\n return;\n }\n var i;\n var data = vnode.data;\n if (isDef(data) && isDef((i = data.hook)) && isDef((i = i.prepatch))) {\n i(oldVnode, vnode);\n }\n var oldCh = oldVnode.children;\n var ch = vnode.children;\n if (isDef(data) && isPatchable(vnode)) {\n for (i = 0; i < cbs.update.length; ++i)\n cbs.update[i](oldVnode, vnode);\n if (isDef((i = data.hook)) && isDef((i = i.update)))\n i(oldVnode, vnode);\n }\n if (isUndef(vnode.text)) {\n if (isDef(oldCh) && isDef(ch)) {\n if (oldCh !== ch)\n updateChildren(elm, oldCh, ch, insertedVnodeQueue, removeOnly);\n }\n else if (isDef(ch)) {\n {\n checkDuplicateKeys(ch);\n }\n if (isDef(oldVnode.text))\n nodeOps.setTextContent(elm, '');\n addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue);\n }\n else if (isDef(oldCh)) {\n removeVnodes(oldCh, 0, oldCh.length - 1);\n }\n else if (isDef(oldVnode.text)) {\n nodeOps.setTextContent(elm, '');\n }\n }\n else if (oldVnode.text !== vnode.text) {\n nodeOps.setTextContent(elm, vnode.text);\n }\n if (isDef(data)) {\n if (isDef((i = data.hook)) && isDef((i = i.postpatch)))\n i(oldVnode, vnode);\n }\n }\n function invokeInsertHook(vnode, queue, initial) {\n // delay insert hooks for component root nodes, invoke them after the\n // element is really inserted\n if (isTrue(initial) && isDef(vnode.parent)) {\n vnode.parent.data.pendingInsert = queue;\n }\n else {\n for (var i_6 = 0; i_6 < queue.length; ++i_6) {\n queue[i_6].data.hook.insert(queue[i_6]);\n }\n }\n }\n var hydrationBailed = false;\n // list of modules that can skip create hook during hydration because they\n // are already rendered on the client or has no need for initialization\n // Note: style is excluded because it relies on initial clone for future\n // deep updates (#7063).\n var isRenderedModule = makeMap('attrs,class,staticClass,staticStyle,key');\n // Note: this is a browser-only function so we can assume elms are DOM nodes.\n function hydrate(elm, vnode, insertedVnodeQueue, inVPre) {\n var i;\n var tag = vnode.tag, data = vnode.data, children = vnode.children;\n inVPre = inVPre || (data && data.pre);\n vnode.elm = elm;\n if (isTrue(vnode.isComment) && isDef(vnode.asyncFactory)) {\n vnode.isAsyncPlaceholder = true;\n return true;\n }\n // assert node match\n {\n if (!assertNodeMatch(elm, vnode, inVPre)) {\n return false;\n }\n }\n if (isDef(data)) {\n if (isDef((i = data.hook)) && isDef((i = i.init)))\n i(vnode, true /* hydrating */);\n if (isDef((i = vnode.componentInstance))) {\n // child component. it should have hydrated its own tree.\n initComponent(vnode, insertedVnodeQueue);\n return true;\n }\n }\n if (isDef(tag)) {\n if (isDef(children)) {\n // empty element, allow client to pick up and populate children\n if (!elm.hasChildNodes()) {\n createChildren(vnode, children, insertedVnodeQueue);\n }\n else {\n // v-html and domProps: innerHTML\n if (isDef((i = data)) &&\n isDef((i = i.domProps)) &&\n isDef((i = i.innerHTML))) {\n if (i !== elm.innerHTML) {\n /* istanbul ignore if */\n if (typeof console !== 'undefined' &&\n !hydrationBailed) {\n hydrationBailed = true;\n console.warn('Parent: ', elm);\n console.warn('server innerHTML: ', i);\n console.warn('client innerHTML: ', elm.innerHTML);\n }\n return false;\n }\n }\n else {\n // iterate and compare children lists\n var childrenMatch = true;\n var childNode = elm.firstChild;\n for (var i_7 = 0; i_7 < children.length; i_7++) {\n if (!childNode ||\n !hydrate(childNode, children[i_7], insertedVnodeQueue, inVPre)) {\n childrenMatch = false;\n break;\n }\n childNode = childNode.nextSibling;\n }\n // if childNode is not null, it means the actual childNodes list is\n // longer than the virtual children list.\n if (!childrenMatch || childNode) {\n /* istanbul ignore if */\n if (typeof console !== 'undefined' &&\n !hydrationBailed) {\n hydrationBailed = true;\n console.warn('Parent: ', elm);\n console.warn('Mismatching childNodes vs. VNodes: ', elm.childNodes, children);\n }\n return false;\n }\n }\n }\n }\n if (isDef(data)) {\n var fullInvoke = false;\n for (var key in data) {\n if (!isRenderedModule(key)) {\n fullInvoke = true;\n invokeCreateHooks(vnode, insertedVnodeQueue);\n break;\n }\n }\n if (!fullInvoke && data['class']) {\n // ensure collecting deps for deep class bindings for future updates\n traverse(data['class']);\n }\n }\n }\n else if (elm.data !== vnode.text) {\n elm.data = vnode.text;\n }\n return true;\n }\n function assertNodeMatch(node, vnode, inVPre) {\n if (isDef(vnode.tag)) {\n return (vnode.tag.indexOf('vue-component') === 0 ||\n (!isUnknownElement(vnode, inVPre) &&\n vnode.tag.toLowerCase() ===\n (node.tagName && node.tagName.toLowerCase())));\n }\n else {\n return node.nodeType === (vnode.isComment ? 8 : 3);\n }\n }\n return function patch(oldVnode, vnode, hydrating, removeOnly) {\n if (isUndef(vnode)) {\n if (isDef(oldVnode))\n invokeDestroyHook(oldVnode);\n return;\n }\n var isInitialPatch = false;\n var insertedVnodeQueue = [];\n if (isUndef(oldVnode)) {\n // empty mount (likely as component), create new root element\n isInitialPatch = true;\n createElm(vnode, insertedVnodeQueue);\n }\n else {\n var isRealElement = isDef(oldVnode.nodeType);\n if (!isRealElement && sameVnode(oldVnode, vnode)) {\n // patch existing root node\n patchVnode(oldVnode, vnode, insertedVnodeQueue, null, null, removeOnly);\n }\n else {\n if (isRealElement) {\n // mounting to a real element\n // check if this is server-rendered content and if we can perform\n // a successful hydration.\n if (oldVnode.nodeType === 1 && oldVnode.hasAttribute(SSR_ATTR)) {\n oldVnode.removeAttribute(SSR_ATTR);\n hydrating = true;\n }\n if (isTrue(hydrating)) {\n if (hydrate(oldVnode, vnode, insertedVnodeQueue)) {\n invokeInsertHook(vnode, insertedVnodeQueue, true);\n return oldVnode;\n }\n else {\n warn$2('The client-side rendered virtual DOM tree is not matching ' +\n 'server-rendered content. This is likely caused by incorrect ' +\n 'HTML markup, for example nesting block-level elements inside ' +\n '<p>, or missing <tbody>. Bailing hydration and performing ' +\n 'full client-side render.');\n }\n }\n // either not server-rendered, or hydration failed.\n // create an empty node and replace it\n oldVnode = emptyNodeAt(oldVnode);\n }\n // replacing existing element\n var oldElm = oldVnode.elm;\n var parentElm = nodeOps.parentNode(oldElm);\n // create new node\n createElm(vnode, insertedVnodeQueue, \n // extremely rare edge case: do not insert if old element is in a\n // leaving transition. Only happens when combining transition +\n // keep-alive + HOCs. (#4590)\n oldElm._leaveCb ? null : parentElm, nodeOps.nextSibling(oldElm));\n // update parent placeholder node element, recursively\n if (isDef(vnode.parent)) {\n var ancestor = vnode.parent;\n var patchable = isPatchable(vnode);\n while (ancestor) {\n for (var i_8 = 0; i_8 < cbs.destroy.length; ++i_8) {\n cbs.destroy[i_8](ancestor);\n }\n ancestor.elm = vnode.elm;\n if (patchable) {\n for (var i_9 = 0; i_9 < cbs.create.length; ++i_9) {\n cbs.create[i_9](emptyNode, ancestor);\n }\n // #6513\n // invoke insert hooks that may have been merged by create hooks.\n // e.g. for directives that uses the \"inserted\" hook.\n var insert_1 = ancestor.data.hook.insert;\n if (insert_1.merged) {\n // start at index 1 to avoid re-invoking component mounted hook\n for (var i_10 = 1; i_10 < insert_1.fns.length; i_10++) {\n insert_1.fns[i_10]();\n }\n }\n }\n else {\n registerRef(ancestor);\n }\n ancestor = ancestor.parent;\n }\n }\n // destroy old node\n if (isDef(parentElm)) {\n removeVnodes([oldVnode], 0, 0);\n }\n else if (isDef(oldVnode.tag)) {\n invokeDestroyHook(oldVnode);\n }\n }\n }\n invokeInsertHook(vnode, insertedVnodeQueue, isInitialPatch);\n return vnode.elm;\n };\n }\n\n var directives$1 = {\n create: updateDirectives,\n update: updateDirectives,\n destroy: function unbindDirectives(vnode) {\n // @ts-expect-error emptyNode is not VNodeWithData\n updateDirectives(vnode, emptyNode);\n }\n };\n function updateDirectives(oldVnode, vnode) {\n if (oldVnode.data.directives || vnode.data.directives) {\n _update(oldVnode, vnode);\n }\n }\n function _update(oldVnode, vnode) {\n var isCreate = oldVnode === emptyNode;\n var isDestroy = vnode === emptyNode;\n var oldDirs = normalizeDirectives(oldVnode.data.directives, oldVnode.context);\n var newDirs = normalizeDirectives(vnode.data.directives, vnode.context);\n var dirsWithInsert = [];\n var dirsWithPostpatch = [];\n var key, oldDir, dir;\n for (key in newDirs) {\n oldDir = oldDirs[key];\n dir = newDirs[key];\n if (!oldDir) {\n // new directive, bind\n callHook(dir, 'bind', vnode, oldVnode);\n if (dir.def && dir.def.inserted) {\n dirsWithInsert.push(dir);\n }\n }\n else {\n // existing directive, update\n dir.oldValue = oldDir.value;\n dir.oldArg = oldDir.arg;\n callHook(dir, 'update', vnode, oldVnode);\n if (dir.def && dir.def.componentUpdated) {\n dirsWithPostpatch.push(dir);\n }\n }\n }\n if (dirsWithInsert.length) {\n var callInsert = function () {\n for (var i = 0; i < dirsWithInsert.length; i++) {\n callHook(dirsWithInsert[i], 'inserted', vnode, oldVnode);\n }\n };\n if (isCreate) {\n mergeVNodeHook(vnode, 'insert', callInsert);\n }\n else {\n callInsert();\n }\n }\n if (dirsWithPostpatch.length) {\n mergeVNodeHook(vnode, 'postpatch', function () {\n for (var i = 0; i < dirsWithPostpatch.length; i++) {\n callHook(dirsWithPostpatch[i], 'componentUpdated', vnode, oldVnode);\n }\n });\n }\n if (!isCreate) {\n for (key in oldDirs) {\n if (!newDirs[key]) {\n // no longer present, unbind\n callHook(oldDirs[key], 'unbind', oldVnode, oldVnode, isDestroy);\n }\n }\n }\n }\n var emptyModifiers = Object.create(null);\n function normalizeDirectives(dirs, vm) {\n var res = Object.create(null);\n if (!dirs) {\n // $flow-disable-line\n return res;\n }\n var i, dir;\n for (i = 0; i < dirs.length; i++) {\n dir = dirs[i];\n if (!dir.modifiers) {\n // $flow-disable-line\n dir.modifiers = emptyModifiers;\n }\n res[getRawDirName(dir)] = dir;\n if (vm._setupState && vm._setupState.__sfc) {\n var setupDef = dir.def || resolveAsset(vm, '_setupState', 'v-' + dir.name);\n if (typeof setupDef === 'function') {\n dir.def = {\n bind: setupDef,\n update: setupDef,\n };\n }\n else {\n dir.def = setupDef;\n }\n }\n dir.def = dir.def || resolveAsset(vm.$options, 'directives', dir.name, true);\n }\n // $flow-disable-line\n return res;\n }\n function getRawDirName(dir) {\n return (dir.rawName || \"\".concat(dir.name, \".\").concat(Object.keys(dir.modifiers || {}).join('.')));\n }\n function callHook(dir, hook, vnode, oldVnode, isDestroy) {\n var fn = dir.def && dir.def[hook];\n if (fn) {\n try {\n fn(vnode.elm, dir, vnode, oldVnode, isDestroy);\n }\n catch (e) {\n handleError(e, vnode.context, \"directive \".concat(dir.name, \" \").concat(hook, \" hook\"));\n }\n }\n }\n\n var baseModules = [ref, directives$1];\n\n function updateAttrs(oldVnode, vnode) {\n var opts = vnode.componentOptions;\n if (isDef(opts) && opts.Ctor.options.inheritAttrs === false) {\n return;\n }\n if (isUndef(oldVnode.data.attrs) && isUndef(vnode.data.attrs)) {\n return;\n }\n var key, cur, old;\n var elm = vnode.elm;\n var oldAttrs = oldVnode.data.attrs || {};\n var attrs = vnode.data.attrs || {};\n // clone observed objects, as the user probably wants to mutate it\n if (isDef(attrs.__ob__) || isTrue(attrs._v_attr_proxy)) {\n attrs = vnode.data.attrs = extend({}, attrs);\n }\n for (key in attrs) {\n cur = attrs[key];\n old = oldAttrs[key];\n if (old !== cur) {\n setAttr(elm, key, cur, vnode.data.pre);\n }\n }\n // #4391: in IE9, setting type can reset value for input[type=radio]\n // #6666: IE/Edge forces progress value down to 1 before setting a max\n /* istanbul ignore if */\n if ((isIE || isEdge) && attrs.value !== oldAttrs.value) {\n setAttr(elm, 'value', attrs.value);\n }\n for (key in oldAttrs) {\n if (isUndef(attrs[key])) {\n if (isXlink(key)) {\n elm.removeAttributeNS(xlinkNS, getXlinkProp(key));\n }\n else if (!isEnumeratedAttr(key)) {\n elm.removeAttribute(key);\n }\n }\n }\n }\n function setAttr(el, key, value, isInPre) {\n if (isInPre || el.tagName.indexOf('-') > -1) {\n baseSetAttr(el, key, value);\n }\n else if (isBooleanAttr(key)) {\n // set attribute for blank value\n // e.g. <option disabled>Select one</option>\n if (isFalsyAttrValue(value)) {\n el.removeAttribute(key);\n }\n else {\n // technically allowfullscreen is a boolean attribute for <iframe>,\n // but Flash expects a value of \"true\" when used on <embed> tag\n value = key === 'allowfullscreen' && el.tagName === 'EMBED' ? 'true' : key;\n el.setAttribute(key, value);\n }\n }\n else if (isEnumeratedAttr(key)) {\n el.setAttribute(key, convertEnumeratedValue(key, value));\n }\n else if (isXlink(key)) {\n if (isFalsyAttrValue(value)) {\n el.removeAttributeNS(xlinkNS, getXlinkProp(key));\n }\n else {\n el.setAttributeNS(xlinkNS, key, value);\n }\n }\n else {\n baseSetAttr(el, key, value);\n }\n }\n function baseSetAttr(el, key, value) {\n if (isFalsyAttrValue(value)) {\n el.removeAttribute(key);\n }\n else {\n // #7138: IE10 & 11 fires input event when setting placeholder on\n // <textarea>... block the first input event and remove the blocker\n // immediately.\n /* istanbul ignore if */\n if (isIE &&\n !isIE9 &&\n el.tagName === 'TEXTAREA' &&\n key === 'placeholder' &&\n value !== '' &&\n !el.__ieph) {\n var blocker_1 = function (e) {\n e.stopImmediatePropagation();\n el.removeEventListener('input', blocker_1);\n };\n el.addEventListener('input', blocker_1);\n // $flow-disable-line\n el.__ieph = true; /* IE placeholder patched */\n }\n el.setAttribute(key, value);\n }\n }\n var attrs = {\n create: updateAttrs,\n update: updateAttrs\n };\n\n function updateClass(oldVnode, vnode) {\n var el = vnode.elm;\n var data = vnode.data;\n var oldData = oldVnode.data;\n if (isUndef(data.staticClass) &&\n isUndef(data.class) &&\n (isUndef(oldData) ||\n (isUndef(oldData.staticClass) && isUndef(oldData.class)))) {\n return;\n }\n var cls = genClassForVnode(vnode);\n // handle transition classes\n var transitionClass = el._transitionClasses;\n if (isDef(transitionClass)) {\n cls = concat(cls, stringifyClass(transitionClass));\n }\n // set the class\n if (cls !== el._prevClass) {\n el.setAttribute('class', cls);\n el._prevClass = cls;\n }\n }\n var klass$1 = {\n create: updateClass,\n update: updateClass\n };\n\n var validDivisionCharRE = /[\\w).+\\-_$\\]]/;\n function parseFilters(exp) {\n var inSingle = false;\n var inDouble = false;\n var inTemplateString = false;\n var inRegex = false;\n var curly = 0;\n var square = 0;\n var paren = 0;\n var lastFilterIndex = 0;\n var c, prev, i, expression, filters;\n for (i = 0; i < exp.length; i++) {\n prev = c;\n c = exp.charCodeAt(i);\n if (inSingle) {\n if (c === 0x27 && prev !== 0x5c)\n inSingle = false;\n }\n else if (inDouble) {\n if (c === 0x22 && prev !== 0x5c)\n inDouble = false;\n }\n else if (inTemplateString) {\n if (c === 0x60 && prev !== 0x5c)\n inTemplateString = false;\n }\n else if (inRegex) {\n if (c === 0x2f && prev !== 0x5c)\n inRegex = false;\n }\n else if (c === 0x7c && // pipe\n exp.charCodeAt(i + 1) !== 0x7c &&\n exp.charCodeAt(i - 1) !== 0x7c &&\n !curly &&\n !square &&\n !paren) {\n if (expression === undefined) {\n // first filter, end of expression\n lastFilterIndex = i + 1;\n expression = exp.slice(0, i).trim();\n }\n else {\n pushFilter();\n }\n }\n else {\n switch (c) {\n case 0x22:\n inDouble = true;\n break; // \"\n case 0x27:\n inSingle = true;\n break; // '\n case 0x60:\n inTemplateString = true;\n break; // `\n case 0x28:\n paren++;\n break; // (\n case 0x29:\n paren--;\n break; // )\n case 0x5b:\n square++;\n break; // [\n case 0x5d:\n square--;\n break; // ]\n case 0x7b:\n curly++;\n break; // {\n case 0x7d:\n curly--;\n break; // }\n }\n if (c === 0x2f) {\n // /\n var j = i - 1;\n var p \n // find first non-whitespace prev char\n = void 0;\n // find first non-whitespace prev char\n for (; j >= 0; j--) {\n p = exp.charAt(j);\n if (p !== ' ')\n break;\n }\n if (!p || !validDivisionCharRE.test(p)) {\n inRegex = true;\n }\n }\n }\n }\n if (expression === undefined) {\n expression = exp.slice(0, i).trim();\n }\n else if (lastFilterIndex !== 0) {\n pushFilter();\n }\n function pushFilter() {\n (filters || (filters = [])).push(exp.slice(lastFilterIndex, i).trim());\n lastFilterIndex = i + 1;\n }\n if (filters) {\n for (i = 0; i < filters.length; i++) {\n expression = wrapFilter(expression, filters[i]);\n }\n }\n return expression;\n }\n function wrapFilter(exp, filter) {\n var i = filter.indexOf('(');\n if (i < 0) {\n // _f: resolveFilter\n return \"_f(\\\"\".concat(filter, \"\\\")(\").concat(exp, \")\");\n }\n else {\n var name_1 = filter.slice(0, i);\n var args = filter.slice(i + 1);\n return \"_f(\\\"\".concat(name_1, \"\\\")(\").concat(exp).concat(args !== ')' ? ',' + args : args);\n }\n }\n\n /* eslint-disable no-unused-vars */\n function baseWarn(msg, range) {\n console.error(\"[Vue compiler]: \".concat(msg));\n }\n /* eslint-enable no-unused-vars */\n function pluckModuleFunction(modules, key) {\n return modules ? modules.map(function (m) { return m[key]; }).filter(function (_) { return _; }) : [];\n }\n function addProp(el, name, value, range, dynamic) {\n (el.props || (el.props = [])).push(rangeSetItem({ name: name, value: value, dynamic: dynamic }, range));\n el.plain = false;\n }\n function addAttr(el, name, value, range, dynamic) {\n var attrs = dynamic\n ? el.dynamicAttrs || (el.dynamicAttrs = [])\n : el.attrs || (el.attrs = []);\n attrs.push(rangeSetItem({ name: name, value: value, dynamic: dynamic }, range));\n el.plain = false;\n }\n // add a raw attr (use this in preTransforms)\n function addRawAttr(el, name, value, range) {\n el.attrsMap[name] = value;\n el.attrsList.push(rangeSetItem({ name: name, value: value }, range));\n }\n function addDirective(el, name, rawName, value, arg, isDynamicArg, modifiers, range) {\n (el.directives || (el.directives = [])).push(rangeSetItem({\n name: name,\n rawName: rawName,\n value: value,\n arg: arg,\n isDynamicArg: isDynamicArg,\n modifiers: modifiers\n }, range));\n el.plain = false;\n }\n function prependModifierMarker(symbol, name, dynamic) {\n return dynamic ? \"_p(\".concat(name, \",\\\"\").concat(symbol, \"\\\")\") : symbol + name; // mark the event as captured\n }\n function addHandler(el, name, value, modifiers, important, warn, range, dynamic) {\n modifiers = modifiers || emptyObject;\n // warn prevent and passive modifier\n /* istanbul ignore if */\n if (warn && modifiers.prevent && modifiers.passive) {\n warn(\"passive and prevent can't be used together. \" +\n \"Passive handler can't prevent default event.\", range);\n }\n // normalize click.right and click.middle since they don't actually fire\n // this is technically browser-specific, but at least for now browsers are\n // the only target envs that have right/middle clicks.\n if (modifiers.right) {\n if (dynamic) {\n name = \"(\".concat(name, \")==='click'?'contextmenu':(\").concat(name, \")\");\n }\n else if (name === 'click') {\n name = 'contextmenu';\n delete modifiers.right;\n }\n }\n else if (modifiers.middle) {\n if (dynamic) {\n name = \"(\".concat(name, \")==='click'?'mouseup':(\").concat(name, \")\");\n }\n else if (name === 'click') {\n name = 'mouseup';\n }\n }\n // check capture modifier\n if (modifiers.capture) {\n delete modifiers.capture;\n name = prependModifierMarker('!', name, dynamic);\n }\n if (modifiers.once) {\n delete modifiers.once;\n name = prependModifierMarker('~', name, dynamic);\n }\n /* istanbul ignore if */\n if (modifiers.passive) {\n delete modifiers.passive;\n name = prependModifierMarker('&', name, dynamic);\n }\n var events;\n if (modifiers.native) {\n delete modifiers.native;\n events = el.nativeEvents || (el.nativeEvents = {});\n }\n else {\n events = el.events || (el.events = {});\n }\n var newHandler = rangeSetItem({ value: value.trim(), dynamic: dynamic }, range);\n if (modifiers !== emptyObject) {\n newHandler.modifiers = modifiers;\n }\n var handlers = events[name];\n /* istanbul ignore if */\n if (Array.isArray(handlers)) {\n important ? handlers.unshift(newHandler) : handlers.push(newHandler);\n }\n else if (handlers) {\n events[name] = important ? [newHandler, handlers] : [handlers, newHandler];\n }\n else {\n events[name] = newHandler;\n }\n el.plain = false;\n }\n function getRawBindingAttr(el, name) {\n return (el.rawAttrsMap[':' + name] ||\n el.rawAttrsMap['v-bind:' + name] ||\n el.rawAttrsMap[name]);\n }\n function getBindingAttr(el, name, getStatic) {\n var dynamicValue = getAndRemoveAttr(el, ':' + name) || getAndRemoveAttr(el, 'v-bind:' + name);\n if (dynamicValue != null) {\n return parseFilters(dynamicValue);\n }\n else if (getStatic !== false) {\n var staticValue = getAndRemoveAttr(el, name);\n if (staticValue != null) {\n return JSON.stringify(staticValue);\n }\n }\n }\n // note: this only removes the attr from the Array (attrsList) so that it\n // doesn't get processed by processAttrs.\n // By default it does NOT remove it from the map (attrsMap) because the map is\n // needed during codegen.\n function getAndRemoveAttr(el, name, removeFromMap) {\n var val;\n if ((val = el.attrsMap[name]) != null) {\n var list = el.attrsList;\n for (var i = 0, l = list.length; i < l; i++) {\n if (list[i].name === name) {\n list.splice(i, 1);\n break;\n }\n }\n }\n if (removeFromMap) {\n delete el.attrsMap[name];\n }\n return val;\n }\n function getAndRemoveAttrByRegex(el, name) {\n var list = el.attrsList;\n for (var i = 0, l = list.length; i < l; i++) {\n var attr = list[i];\n if (name.test(attr.name)) {\n list.splice(i, 1);\n return attr;\n }\n }\n }\n function rangeSetItem(item, range) {\n if (range) {\n if (range.start != null) {\n item.start = range.start;\n }\n if (range.end != null) {\n item.end = range.end;\n }\n }\n return item;\n }\n\n /**\n * Cross-platform code generation for component v-model\n */\n function genComponentModel(el, value, modifiers) {\n var _a = modifiers || {}, number = _a.number, trim = _a.trim;\n var baseValueExpression = '$$v';\n var valueExpression = baseValueExpression;\n if (trim) {\n valueExpression =\n \"(typeof \".concat(baseValueExpression, \" === 'string'\") +\n \"? \".concat(baseValueExpression, \".trim()\") +\n \": \".concat(baseValueExpression, \")\");\n }\n if (number) {\n valueExpression = \"_n(\".concat(valueExpression, \")\");\n }\n var assignment = genAssignmentCode(value, valueExpression);\n el.model = {\n value: \"(\".concat(value, \")\"),\n expression: JSON.stringify(value),\n callback: \"function (\".concat(baseValueExpression, \") {\").concat(assignment, \"}\")\n };\n }\n /**\n * Cross-platform codegen helper for generating v-model value assignment code.\n */\n function genAssignmentCode(value, assignment) {\n var res = parseModel(value);\n if (res.key === null) {\n return \"\".concat(value, \"=\").concat(assignment);\n }\n else {\n return \"$set(\".concat(res.exp, \", \").concat(res.key, \", \").concat(assignment, \")\");\n }\n }\n /**\n * Parse a v-model expression into a base path and a final key segment.\n * Handles both dot-path and possible square brackets.\n *\n * Possible cases:\n *\n * - test\n * - test[key]\n * - test[test1[key]]\n * - test[\"a\"][key]\n * - xxx.test[a[a].test1[key]]\n * - test.xxx.a[\"asa\"][test1[key]]\n *\n */\n var len, str, chr, index, expressionPos, expressionEndPos;\n function parseModel(val) {\n // Fix https://github.com/vuejs/vue/pull/7730\n // allow v-model=\"obj.val \" (trailing whitespace)\n val = val.trim();\n len = val.length;\n if (val.indexOf('[') < 0 || val.lastIndexOf(']') < len - 1) {\n index = val.lastIndexOf('.');\n if (index > -1) {\n return {\n exp: val.slice(0, index),\n key: '\"' + val.slice(index + 1) + '\"'\n };\n }\n else {\n return {\n exp: val,\n key: null\n };\n }\n }\n str = val;\n index = expressionPos = expressionEndPos = 0;\n while (!eof()) {\n chr = next();\n /* istanbul ignore if */\n if (isStringStart(chr)) {\n parseString(chr);\n }\n else if (chr === 0x5b) {\n parseBracket(chr);\n }\n }\n return {\n exp: val.slice(0, expressionPos),\n key: val.slice(expressionPos + 1, expressionEndPos)\n };\n }\n function next() {\n return str.charCodeAt(++index);\n }\n function eof() {\n return index >= len;\n }\n function isStringStart(chr) {\n return chr === 0x22 || chr === 0x27;\n }\n function parseBracket(chr) {\n var inBracket = 1;\n expressionPos = index;\n while (!eof()) {\n chr = next();\n if (isStringStart(chr)) {\n parseString(chr);\n continue;\n }\n if (chr === 0x5b)\n inBracket++;\n if (chr === 0x5d)\n inBracket--;\n if (inBracket === 0) {\n expressionEndPos = index;\n break;\n }\n }\n }\n function parseString(chr) {\n var stringQuote = chr;\n while (!eof()) {\n chr = next();\n if (chr === stringQuote) {\n break;\n }\n }\n }\n\n var warn$1;\n // in some cases, the event used has to be determined at runtime\n // so we used some reserved tokens during compile.\n var RANGE_TOKEN = '__r';\n var CHECKBOX_RADIO_TOKEN = '__c';\n function model$1(el, dir, _warn) {\n warn$1 = _warn;\n var value = dir.value;\n var modifiers = dir.modifiers;\n var tag = el.tag;\n var type = el.attrsMap.type;\n {\n // inputs with type=\"file\" are read only and setting the input's\n // value will throw an error.\n if (tag === 'input' && type === 'file') {\n warn$1(\"<\".concat(el.tag, \" v-model=\\\"\").concat(value, \"\\\" type=\\\"file\\\">:\\n\") +\n \"File inputs are read only. Use a v-on:change listener instead.\", el.rawAttrsMap['v-model']);\n }\n }\n if (el.component) {\n genComponentModel(el, value, modifiers);\n // component v-model doesn't need extra runtime\n return false;\n }\n else if (tag === 'select') {\n genSelect(el, value, modifiers);\n }\n else if (tag === 'input' && type === 'checkbox') {\n genCheckboxModel(el, value, modifiers);\n }\n else if (tag === 'input' && type === 'radio') {\n genRadioModel(el, value, modifiers);\n }\n else if (tag === 'input' || tag === 'textarea') {\n genDefaultModel(el, value, modifiers);\n }\n else if (!config.isReservedTag(tag)) {\n genComponentModel(el, value, modifiers);\n // component v-model doesn't need extra runtime\n return false;\n }\n else {\n warn$1(\"<\".concat(el.tag, \" v-model=\\\"\").concat(value, \"\\\">: \") +\n \"v-model is not supported on this element type. \" +\n \"If you are working with contenteditable, it's recommended to \" +\n 'wrap a library dedicated for that purpose inside a custom component.', el.rawAttrsMap['v-model']);\n }\n // ensure runtime directive metadata\n return true;\n }\n function genCheckboxModel(el, value, modifiers) {\n var number = modifiers && modifiers.number;\n var valueBinding = getBindingAttr(el, 'value') || 'null';\n var trueValueBinding = getBindingAttr(el, 'true-value') || 'true';\n var falseValueBinding = getBindingAttr(el, 'false-value') || 'false';\n addProp(el, 'checked', \"Array.isArray(\".concat(value, \")\") +\n \"?_i(\".concat(value, \",\").concat(valueBinding, \")>-1\") +\n (trueValueBinding === 'true'\n ? \":(\".concat(value, \")\")\n : \":_q(\".concat(value, \",\").concat(trueValueBinding, \")\")));\n addHandler(el, 'change', \"var $$a=\".concat(value, \",\") +\n '$$el=$event.target,' +\n \"$$c=$$el.checked?(\".concat(trueValueBinding, \"):(\").concat(falseValueBinding, \");\") +\n 'if(Array.isArray($$a)){' +\n \"var $$v=\".concat(number ? '_n(' + valueBinding + ')' : valueBinding, \",\") +\n '$$i=_i($$a,$$v);' +\n \"if($$el.checked){$$i<0&&(\".concat(genAssignmentCode(value, '$$a.concat([$$v])'), \")}\") +\n \"else{$$i>-1&&(\".concat(genAssignmentCode(value, '$$a.slice(0,$$i).concat($$a.slice($$i+1))'), \")}\") +\n \"}else{\".concat(genAssignmentCode(value, '$$c'), \"}\"), null, true);\n }\n function genRadioModel(el, value, modifiers) {\n var number = modifiers && modifiers.number;\n var valueBinding = getBindingAttr(el, 'value') || 'null';\n valueBinding = number ? \"_n(\".concat(valueBinding, \")\") : valueBinding;\n addProp(el, 'checked', \"_q(\".concat(value, \",\").concat(valueBinding, \")\"));\n addHandler(el, 'change', genAssignmentCode(value, valueBinding), null, true);\n }\n function genSelect(el, value, modifiers) {\n var number = modifiers && modifiers.number;\n var selectedVal = \"Array.prototype.filter\" +\n \".call($event.target.options,function(o){return o.selected})\" +\n \".map(function(o){var val = \\\"_value\\\" in o ? o._value : o.value;\" +\n \"return \".concat(number ? '_n(val)' : 'val', \"})\");\n var assignment = '$event.target.multiple ? $$selectedVal : $$selectedVal[0]';\n var code = \"var $$selectedVal = \".concat(selectedVal, \";\");\n code = \"\".concat(code, \" \").concat(genAssignmentCode(value, assignment));\n addHandler(el, 'change', code, null, true);\n }\n function genDefaultModel(el, value, modifiers) {\n var type = el.attrsMap.type;\n // warn if v-bind:value conflicts with v-model\n // except for inputs with v-bind:type\n {\n var value_1 = el.attrsMap['v-bind:value'] || el.attrsMap[':value'];\n var typeBinding = el.attrsMap['v-bind:type'] || el.attrsMap[':type'];\n if (value_1 && !typeBinding) {\n var binding = el.attrsMap['v-bind:value'] ? 'v-bind:value' : ':value';\n warn$1(\"\".concat(binding, \"=\\\"\").concat(value_1, \"\\\" conflicts with v-model on the same element \") +\n 'because the latter already expands to a value binding internally', el.rawAttrsMap[binding]);\n }\n }\n var _a = modifiers || {}, lazy = _a.lazy, number = _a.number, trim = _a.trim;\n var needCompositionGuard = !lazy && type !== 'range';\n var event = lazy ? 'change' : type === 'range' ? RANGE_TOKEN : 'input';\n var valueExpression = '$event.target.value';\n if (trim) {\n valueExpression = \"$event.target.value.trim()\";\n }\n if (number) {\n valueExpression = \"_n(\".concat(valueExpression, \")\");\n }\n var code = genAssignmentCode(value, valueExpression);\n if (needCompositionGuard) {\n code = \"if($event.target.composing)return;\".concat(code);\n }\n addProp(el, 'value', \"(\".concat(value, \")\"));\n addHandler(el, event, code, null, true);\n if (trim || number) {\n addHandler(el, 'blur', '$forceUpdate()');\n }\n }\n\n // normalize v-model event tokens that can only be determined at runtime.\n // it's important to place the event as the first in the array because\n // the whole point is ensuring the v-model callback gets called before\n // user-attached handlers.\n function normalizeEvents(on) {\n /* istanbul ignore if */\n if (isDef(on[RANGE_TOKEN])) {\n // IE input[type=range] only supports `change` event\n var event_1 = isIE ? 'change' : 'input';\n on[event_1] = [].concat(on[RANGE_TOKEN], on[event_1] || []);\n delete on[RANGE_TOKEN];\n }\n // This was originally intended to fix #4521 but no longer necessary\n // after 2.5. Keeping it for backwards compat with generated code from < 2.4\n /* istanbul ignore if */\n if (isDef(on[CHECKBOX_RADIO_TOKEN])) {\n on.change = [].concat(on[CHECKBOX_RADIO_TOKEN], on.change || []);\n delete on[CHECKBOX_RADIO_TOKEN];\n }\n }\n var target;\n function createOnceHandler(event, handler, capture) {\n var _target = target; // save current target element in closure\n return function onceHandler() {\n var res = handler.apply(null, arguments);\n if (res !== null) {\n remove(event, onceHandler, capture, _target);\n }\n };\n }\n // #9446: Firefox <= 53 (in particular, ESR 52) has incorrect Event.timeStamp\n // implementation and does not fire microtasks in between event propagation, so\n // safe to exclude.\n var useMicrotaskFix = isUsingMicroTask && !(isFF && Number(isFF[1]) <= 53);\n function add(name, handler, capture, passive) {\n // async edge case #6566: inner click event triggers patch, event handler\n // attached to outer element during patch, and triggered again. This\n // happens because browsers fire microtask ticks between event propagation.\n // the solution is simple: we save the timestamp when a handler is attached,\n // and the handler would only fire if the event passed to it was fired\n // AFTER it was attached.\n if (useMicrotaskFix) {\n var attachedTimestamp_1 = currentFlushTimestamp;\n var original_1 = handler;\n //@ts-expect-error\n handler = original_1._wrapper = function (e) {\n if (\n // no bubbling, should always fire.\n // this is just a safety net in case event.timeStamp is unreliable in\n // certain weird environments...\n e.target === e.currentTarget ||\n // event is fired after handler attachment\n e.timeStamp >= attachedTimestamp_1 ||\n // bail for environments that have buggy event.timeStamp implementations\n // #9462 iOS 9 bug: event.timeStamp is 0 after history.pushState\n // #9681 QtWebEngine event.timeStamp is negative value\n e.timeStamp <= 0 ||\n // #9448 bail if event is fired in another document in a multi-page\n // electron/nw.js app, since event.timeStamp will be using a different\n // starting reference\n e.target.ownerDocument !== document) {\n return original_1.apply(this, arguments);\n }\n };\n }\n target.addEventListener(name, handler, supportsPassive ? { capture: capture, passive: passive } : capture);\n }\n function remove(name, handler, capture, _target) {\n (_target || target).removeEventListener(name, \n //@ts-expect-error\n handler._wrapper || handler, capture);\n }\n function updateDOMListeners(oldVnode, vnode) {\n if (isUndef(oldVnode.data.on) && isUndef(vnode.data.on)) {\n return;\n }\n var on = vnode.data.on || {};\n var oldOn = oldVnode.data.on || {};\n // vnode is empty when removing all listeners,\n // and use old vnode dom element\n target = vnode.elm || oldVnode.elm;\n normalizeEvents(on);\n updateListeners(on, oldOn, add, remove, createOnceHandler, vnode.context);\n target = undefined;\n }\n var events = {\n create: updateDOMListeners,\n update: updateDOMListeners,\n // @ts-expect-error emptyNode has actually data\n destroy: function (vnode) { return updateDOMListeners(vnode, emptyNode); }\n };\n\n var svgContainer;\n function updateDOMProps(oldVnode, vnode) {\n if (isUndef(oldVnode.data.domProps) && isUndef(vnode.data.domProps)) {\n return;\n }\n var key, cur;\n var elm = vnode.elm;\n var oldProps = oldVnode.data.domProps || {};\n var props = vnode.data.domProps || {};\n // clone observed objects, as the user probably wants to mutate it\n if (isDef(props.__ob__) || isTrue(props._v_attr_proxy)) {\n props = vnode.data.domProps = extend({}, props);\n }\n for (key in oldProps) {\n if (!(key in props)) {\n elm[key] = '';\n }\n }\n for (key in props) {\n cur = props[key];\n // ignore children if the node has textContent or innerHTML,\n // as these will throw away existing DOM nodes and cause removal errors\n // on subsequent patches (#3360)\n if (key === 'textContent' || key === 'innerHTML') {\n if (vnode.children)\n vnode.children.length = 0;\n if (cur === oldProps[key])\n continue;\n // #6601 work around Chrome version <= 55 bug where single textNode\n // replaced by innerHTML/textContent retains its parentNode property\n if (elm.childNodes.length === 1) {\n elm.removeChild(elm.childNodes[0]);\n }\n }\n if (key === 'value' && elm.tagName !== 'PROGRESS') {\n // store value as _value as well since\n // non-string values will be stringified\n elm._value = cur;\n // avoid resetting cursor position when value is the same\n var strCur = isUndef(cur) ? '' : String(cur);\n if (shouldUpdateValue(elm, strCur)) {\n elm.value = strCur;\n }\n }\n else if (key === 'innerHTML' &&\n isSVG(elm.tagName) &&\n isUndef(elm.innerHTML)) {\n // IE doesn't support innerHTML for SVG elements\n svgContainer = svgContainer || document.createElement('div');\n svgContainer.innerHTML = \"<svg>\".concat(cur, \"</svg>\");\n var svg = svgContainer.firstChild;\n while (elm.firstChild) {\n elm.removeChild(elm.firstChild);\n }\n while (svg.firstChild) {\n elm.appendChild(svg.firstChild);\n }\n }\n else if (\n // skip the update if old and new VDOM state is the same.\n // `value` is handled separately because the DOM value may be temporarily\n // out of sync with VDOM state due to focus, composition and modifiers.\n // This #4521 by skipping the unnecessary `checked` update.\n cur !== oldProps[key]) {\n // some property updates can throw\n // e.g. `value` on <progress> w/ non-finite value\n try {\n elm[key] = cur;\n }\n catch (e) { }\n }\n }\n }\n function shouldUpdateValue(elm, checkVal) {\n return (\n //@ts-expect-error\n !elm.composing &&\n (elm.tagName === 'OPTION' ||\n isNotInFocusAndDirty(elm, checkVal) ||\n isDirtyWithModifiers(elm, checkVal)));\n }\n function isNotInFocusAndDirty(elm, checkVal) {\n // return true when textbox (.number and .trim) loses focus and its value is\n // not equal to the updated value\n var notInFocus = true;\n // #6157\n // work around IE bug when accessing document.activeElement in an iframe\n try {\n notInFocus = document.activeElement !== elm;\n }\n catch (e) { }\n return notInFocus && elm.value !== checkVal;\n }\n function isDirtyWithModifiers(elm, newVal) {\n var value = elm.value;\n var modifiers = elm._vModifiers; // injected by v-model runtime\n if (isDef(modifiers)) {\n if (modifiers.number) {\n return toNumber(value) !== toNumber(newVal);\n }\n if (modifiers.trim) {\n return value.trim() !== newVal.trim();\n }\n }\n return value !== newVal;\n }\n var domProps = {\n create: updateDOMProps,\n update: updateDOMProps\n };\n\n var parseStyleText = cached(function (cssText) {\n var res = {};\n var listDelimiter = /;(?![^(]*\\))/g;\n var propertyDelimiter = /:(.+)/;\n cssText.split(listDelimiter).forEach(function (item) {\n if (item) {\n var tmp = item.split(propertyDelimiter);\n tmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return res;\n });\n // merge static and dynamic style data on the same vnode\n function normalizeStyleData(data) {\n var style = normalizeStyleBinding(data.style);\n // static style is pre-processed into an object during compilation\n // and is always a fresh object, so it's safe to merge into it\n return data.staticStyle ? extend(data.staticStyle, style) : style;\n }\n // normalize possible array / string values into Object\n function normalizeStyleBinding(bindingStyle) {\n if (Array.isArray(bindingStyle)) {\n return toObject(bindingStyle);\n }\n if (typeof bindingStyle === 'string') {\n return parseStyleText(bindingStyle);\n }\n return bindingStyle;\n }\n /**\n * parent component style should be after child's\n * so that parent component's style could override it\n */\n function getStyle(vnode, checkChild) {\n var res = {};\n var styleData;\n if (checkChild) {\n var childNode = vnode;\n while (childNode.componentInstance) {\n childNode = childNode.componentInstance._vnode;\n if (childNode &&\n childNode.data &&\n (styleData = normalizeStyleData(childNode.data))) {\n extend(res, styleData);\n }\n }\n }\n if ((styleData = normalizeStyleData(vnode.data))) {\n extend(res, styleData);\n }\n var parentNode = vnode;\n // @ts-expect-error parentNode.parent not VNodeWithData\n while ((parentNode = parentNode.parent)) {\n if (parentNode.data && (styleData = normalizeStyleData(parentNode.data))) {\n extend(res, styleData);\n }\n }\n return res;\n }\n\n var cssVarRE = /^--/;\n var importantRE = /\\s*!important$/;\n var setProp = function (el, name, val) {\n /* istanbul ignore if */\n if (cssVarRE.test(name)) {\n el.style.setProperty(name, val);\n }\n else if (importantRE.test(val)) {\n el.style.setProperty(hyphenate(name), val.replace(importantRE, ''), 'important');\n }\n else {\n var normalizedName = normalize(name);\n if (Array.isArray(val)) {\n // Support values array created by autoprefixer, e.g.\n // {display: [\"-webkit-box\", \"-ms-flexbox\", \"flex\"]}\n // Set them one by one, and the browser will only set those it can recognize\n for (var i = 0, len = val.length; i < len; i++) {\n el.style[normalizedName] = val[i];\n }\n }\n else {\n el.style[normalizedName] = val;\n }\n }\n };\n var vendorNames = ['Webkit', 'Moz', 'ms'];\n var emptyStyle;\n var normalize = cached(function (prop) {\n emptyStyle = emptyStyle || document.createElement('div').style;\n prop = camelize(prop);\n if (prop !== 'filter' && prop in emptyStyle) {\n return prop;\n }\n var capName = prop.charAt(0).toUpperCase() + prop.slice(1);\n for (var i = 0; i < vendorNames.length; i++) {\n var name_1 = vendorNames[i] + capName;\n if (name_1 in emptyStyle) {\n return name_1;\n }\n }\n });\n function updateStyle(oldVnode, vnode) {\n var data = vnode.data;\n var oldData = oldVnode.data;\n if (isUndef(data.staticStyle) &&\n isUndef(data.style) &&\n isUndef(oldData.staticStyle) &&\n isUndef(oldData.style)) {\n return;\n }\n var cur, name;\n var el = vnode.elm;\n var oldStaticStyle = oldData.staticStyle;\n var oldStyleBinding = oldData.normalizedStyle || oldData.style || {};\n // if static style exists, stylebinding already merged into it when doing normalizeStyleData\n var oldStyle = oldStaticStyle || oldStyleBinding;\n var style = normalizeStyleBinding(vnode.data.style) || {};\n // store normalized style under a different key for next diff\n // make sure to clone it if it's reactive, since the user likely wants\n // to mutate it.\n vnode.data.normalizedStyle = isDef(style.__ob__) ? extend({}, style) : style;\n var newStyle = getStyle(vnode, true);\n for (name in oldStyle) {\n if (isUndef(newStyle[name])) {\n setProp(el, name, '');\n }\n }\n for (name in newStyle) {\n cur = newStyle[name];\n if (cur !== oldStyle[name]) {\n // ie9 setting to null has no effect, must use empty string\n setProp(el, name, cur == null ? '' : cur);\n }\n }\n }\n var style$1 = {\n create: updateStyle,\n update: updateStyle\n };\n\n var whitespaceRE$1 = /\\s+/;\n /**\n * Add class with compatibility for SVG since classList is not supported on\n * SVG elements in IE\n */\n function addClass(el, cls) {\n /* istanbul ignore if */\n if (!cls || !(cls = cls.trim())) {\n return;\n }\n /* istanbul ignore else */\n if (el.classList) {\n if (cls.indexOf(' ') > -1) {\n cls.split(whitespaceRE$1).forEach(function (c) { return el.classList.add(c); });\n }\n else {\n el.classList.add(cls);\n }\n }\n else {\n var cur = \" \".concat(el.getAttribute('class') || '', \" \");\n if (cur.indexOf(' ' + cls + ' ') < 0) {\n el.setAttribute('class', (cur + cls).trim());\n }\n }\n }\n /**\n * Remove class with compatibility for SVG since classList is not supported on\n * SVG elements in IE\n */\n function removeClass(el, cls) {\n /* istanbul ignore if */\n if (!cls || !(cls = cls.trim())) {\n return;\n }\n /* istanbul ignore else */\n if (el.classList) {\n if (cls.indexOf(' ') > -1) {\n cls.split(whitespaceRE$1).forEach(function (c) { return el.classList.remove(c); });\n }\n else {\n el.classList.remove(cls);\n }\n if (!el.classList.length) {\n el.removeAttribute('class');\n }\n }\n else {\n var cur = \" \".concat(el.getAttribute('class') || '', \" \");\n var tar = ' ' + cls + ' ';\n while (cur.indexOf(tar) >= 0) {\n cur = cur.replace(tar, ' ');\n }\n cur = cur.trim();\n if (cur) {\n el.setAttribute('class', cur);\n }\n else {\n el.removeAttribute('class');\n }\n }\n }\n\n function resolveTransition(def) {\n if (!def) {\n return;\n }\n /* istanbul ignore else */\n if (typeof def === 'object') {\n var res = {};\n if (def.css !== false) {\n extend(res, autoCssTransition(def.name || 'v'));\n }\n extend(res, def);\n return res;\n }\n else if (typeof def === 'string') {\n return autoCssTransition(def);\n }\n }\n var autoCssTransition = cached(function (name) {\n return {\n enterClass: \"\".concat(name, \"-enter\"),\n enterToClass: \"\".concat(name, \"-enter-to\"),\n enterActiveClass: \"\".concat(name, \"-enter-active\"),\n leaveClass: \"\".concat(name, \"-leave\"),\n leaveToClass: \"\".concat(name, \"-leave-to\"),\n leaveActiveClass: \"\".concat(name, \"-leave-active\")\n };\n });\n var hasTransition = inBrowser && !isIE9;\n var TRANSITION = 'transition';\n var ANIMATION = 'animation';\n // Transition property/event sniffing\n var transitionProp = 'transition';\n var transitionEndEvent = 'transitionend';\n var animationProp = 'animation';\n var animationEndEvent = 'animationend';\n if (hasTransition) {\n /* istanbul ignore if */\n if (window.ontransitionend === undefined &&\n window.onwebkittransitionend !== undefined) {\n transitionProp = 'WebkitTransition';\n transitionEndEvent = 'webkitTransitionEnd';\n }\n if (window.onanimationend === undefined &&\n window.onwebkitanimationend !== undefined) {\n animationProp = 'WebkitAnimation';\n animationEndEvent = 'webkitAnimationEnd';\n }\n }\n // binding to window is necessary to make hot reload work in IE in strict mode\n var raf = inBrowser\n ? window.requestAnimationFrame\n ? window.requestAnimationFrame.bind(window)\n : setTimeout\n : /* istanbul ignore next */ function (/* istanbul ignore next */ fn) { return fn(); };\n function nextFrame(fn) {\n raf(function () {\n // @ts-expect-error\n raf(fn);\n });\n }\n function addTransitionClass(el, cls) {\n var transitionClasses = el._transitionClasses || (el._transitionClasses = []);\n if (transitionClasses.indexOf(cls) < 0) {\n transitionClasses.push(cls);\n addClass(el, cls);\n }\n }\n function removeTransitionClass(el, cls) {\n if (el._transitionClasses) {\n remove$2(el._transitionClasses, cls);\n }\n removeClass(el, cls);\n }\n function whenTransitionEnds(el, expectedType, cb) {\n var _a = getTransitionInfo(el, expectedType), type = _a.type, timeout = _a.timeout, propCount = _a.propCount;\n if (!type)\n return cb();\n var event = type === TRANSITION ? transitionEndEvent : animationEndEvent;\n var ended = 0;\n var end = function () {\n el.removeEventListener(event, onEnd);\n cb();\n };\n var onEnd = function (e) {\n if (e.target === el) {\n if (++ended >= propCount) {\n end();\n }\n }\n };\n setTimeout(function () {\n if (ended < propCount) {\n end();\n }\n }, timeout + 1);\n el.addEventListener(event, onEnd);\n }\n var transformRE = /\\b(transform|all)(,|$)/;\n function getTransitionInfo(el, expectedType) {\n var styles = window.getComputedStyle(el);\n // JSDOM may return undefined for transition properties\n var transitionDelays = (styles[transitionProp + 'Delay'] || '').split(', ');\n var transitionDurations = (styles[transitionProp + 'Duration'] || '').split(', ');\n var transitionTimeout = getTimeout(transitionDelays, transitionDurations);\n var animationDelays = (styles[animationProp + 'Delay'] || '').split(', ');\n var animationDurations = (styles[animationProp + 'Duration'] || '').split(', ');\n var animationTimeout = getTimeout(animationDelays, animationDurations);\n var type;\n var timeout = 0;\n var propCount = 0;\n /* istanbul ignore if */\n if (expectedType === TRANSITION) {\n if (transitionTimeout > 0) {\n type = TRANSITION;\n timeout = transitionTimeout;\n propCount = transitionDurations.length;\n }\n }\n else if (expectedType === ANIMATION) {\n if (animationTimeout > 0) {\n type = ANIMATION;\n timeout = animationTimeout;\n propCount = animationDurations.length;\n }\n }\n else {\n timeout = Math.max(transitionTimeout, animationTimeout);\n type =\n timeout > 0\n ? transitionTimeout > animationTimeout\n ? TRANSITION\n : ANIMATION\n : null;\n propCount = type\n ? type === TRANSITION\n ? transitionDurations.length\n : animationDurations.length\n : 0;\n }\n var hasTransform = type === TRANSITION && transformRE.test(styles[transitionProp + 'Property']);\n return {\n type: type,\n timeout: timeout,\n propCount: propCount,\n hasTransform: hasTransform\n };\n }\n function getTimeout(delays, durations) {\n /* istanbul ignore next */\n while (delays.length < durations.length) {\n delays = delays.concat(delays);\n }\n return Math.max.apply(null, durations.map(function (d, i) {\n return toMs(d) + toMs(delays[i]);\n }));\n }\n // Old versions of Chromium (below 61.0.3163.100) formats floating pointer numbers\n // in a locale-dependent way, using a comma instead of a dot.\n // If comma is not replaced with a dot, the input will be rounded down (i.e. acting\n // as a floor function) causing unexpected behaviors\n function toMs(s) {\n return Number(s.slice(0, -1).replace(',', '.')) * 1000;\n }\n\n function enter(vnode, toggleDisplay) {\n var el = vnode.elm;\n // call leave callback now\n if (isDef(el._leaveCb)) {\n el._leaveCb.cancelled = true;\n el._leaveCb();\n }\n var data = resolveTransition(vnode.data.transition);\n if (isUndef(data)) {\n return;\n }\n /* istanbul ignore if */\n if (isDef(el._enterCb) || el.nodeType !== 1) {\n return;\n }\n var css = data.css, type = data.type, enterClass = data.enterClass, enterToClass = data.enterToClass, enterActiveClass = data.enterActiveClass, appearClass = data.appearClass, appearToClass = data.appearToClass, appearActiveClass = data.appearActiveClass, beforeEnter = data.beforeEnter, enter = data.enter, afterEnter = data.afterEnter, enterCancelled = data.enterCancelled, beforeAppear = data.beforeAppear, appear = data.appear, afterAppear = data.afterAppear, appearCancelled = data.appearCancelled, duration = data.duration;\n // activeInstance will always be the <transition> component managing this\n // transition. One edge case to check is when the <transition> is placed\n // as the root node of a child component. In that case we need to check\n // <transition>'s parent for appear check.\n var context = activeInstance;\n var transitionNode = activeInstance.$vnode;\n while (transitionNode && transitionNode.parent) {\n context = transitionNode.context;\n transitionNode = transitionNode.parent;\n }\n var isAppear = !context._isMounted || !vnode.isRootInsert;\n if (isAppear && !appear && appear !== '') {\n return;\n }\n var startClass = isAppear && appearClass ? appearClass : enterClass;\n var activeClass = isAppear && appearActiveClass ? appearActiveClass : enterActiveClass;\n var toClass = isAppear && appearToClass ? appearToClass : enterToClass;\n var beforeEnterHook = isAppear ? beforeAppear || beforeEnter : beforeEnter;\n var enterHook = isAppear ? (isFunction(appear) ? appear : enter) : enter;\n var afterEnterHook = isAppear ? afterAppear || afterEnter : afterEnter;\n var enterCancelledHook = isAppear\n ? appearCancelled || enterCancelled\n : enterCancelled;\n var explicitEnterDuration = toNumber(isObject(duration) ? duration.enter : duration);\n if (explicitEnterDuration != null) {\n checkDuration(explicitEnterDuration, 'enter', vnode);\n }\n var expectsCSS = css !== false && !isIE9;\n var userWantsControl = getHookArgumentsLength(enterHook);\n var cb = (el._enterCb = once(function () {\n if (expectsCSS) {\n removeTransitionClass(el, toClass);\n removeTransitionClass(el, activeClass);\n }\n // @ts-expect-error\n if (cb.cancelled) {\n if (expectsCSS) {\n removeTransitionClass(el, startClass);\n }\n enterCancelledHook && enterCancelledHook(el);\n }\n else {\n afterEnterHook && afterEnterHook(el);\n }\n el._enterCb = null;\n }));\n if (!vnode.data.show) {\n // remove pending leave element on enter by injecting an insert hook\n mergeVNodeHook(vnode, 'insert', function () {\n var parent = el.parentNode;\n var pendingNode = parent && parent._pending && parent._pending[vnode.key];\n if (pendingNode &&\n pendingNode.tag === vnode.tag &&\n pendingNode.elm._leaveCb) {\n pendingNode.elm._leaveCb();\n }\n enterHook && enterHook(el, cb);\n });\n }\n // start enter transition\n beforeEnterHook && beforeEnterHook(el);\n if (expectsCSS) {\n addTransitionClass(el, startClass);\n addTransitionClass(el, activeClass);\n nextFrame(function () {\n removeTransitionClass(el, startClass);\n // @ts-expect-error\n if (!cb.cancelled) {\n addTransitionClass(el, toClass);\n if (!userWantsControl) {\n if (isValidDuration(explicitEnterDuration)) {\n setTimeout(cb, explicitEnterDuration);\n }\n else {\n whenTransitionEnds(el, type, cb);\n }\n }\n }\n });\n }\n if (vnode.data.show) {\n toggleDisplay && toggleDisplay();\n enterHook && enterHook(el, cb);\n }\n if (!expectsCSS && !userWantsControl) {\n cb();\n }\n }\n function leave(vnode, rm) {\n var el = vnode.elm;\n // call enter callback now\n if (isDef(el._enterCb)) {\n el._enterCb.cancelled = true;\n el._enterCb();\n }\n var data = resolveTransition(vnode.data.transition);\n if (isUndef(data) || el.nodeType !== 1) {\n return rm();\n }\n /* istanbul ignore if */\n if (isDef(el._leaveCb)) {\n return;\n }\n var css = data.css, type = data.type, leaveClass = data.leaveClass, leaveToClass = data.leaveToClass, leaveActiveClass = data.leaveActiveClass, beforeLeave = data.beforeLeave, leave = data.leave, afterLeave = data.afterLeave, leaveCancelled = data.leaveCancelled, delayLeave = data.delayLeave, duration = data.duration;\n var expectsCSS = css !== false && !isIE9;\n var userWantsControl = getHookArgumentsLength(leave);\n var explicitLeaveDuration = toNumber(isObject(duration) ? duration.leave : duration);\n if (isDef(explicitLeaveDuration)) {\n checkDuration(explicitLeaveDuration, 'leave', vnode);\n }\n var cb = (el._leaveCb = once(function () {\n if (el.parentNode && el.parentNode._pending) {\n el.parentNode._pending[vnode.key] = null;\n }\n if (expectsCSS) {\n removeTransitionClass(el, leaveToClass);\n removeTransitionClass(el, leaveActiveClass);\n }\n // @ts-expect-error\n if (cb.cancelled) {\n if (expectsCSS) {\n removeTransitionClass(el, leaveClass);\n }\n leaveCancelled && leaveCancelled(el);\n }\n else {\n rm();\n afterLeave && afterLeave(el);\n }\n el._leaveCb = null;\n }));\n if (delayLeave) {\n delayLeave(performLeave);\n }\n else {\n performLeave();\n }\n function performLeave() {\n // the delayed leave may have already been cancelled\n // @ts-expect-error\n if (cb.cancelled) {\n return;\n }\n // record leaving element\n if (!vnode.data.show && el.parentNode) {\n (el.parentNode._pending || (el.parentNode._pending = {}))[vnode.key] =\n vnode;\n }\n beforeLeave && beforeLeave(el);\n if (expectsCSS) {\n addTransitionClass(el, leaveClass);\n addTransitionClass(el, leaveActiveClass);\n nextFrame(function () {\n removeTransitionClass(el, leaveClass);\n // @ts-expect-error\n if (!cb.cancelled) {\n addTransitionClass(el, leaveToClass);\n if (!userWantsControl) {\n if (isValidDuration(explicitLeaveDuration)) {\n setTimeout(cb, explicitLeaveDuration);\n }\n else {\n whenTransitionEnds(el, type, cb);\n }\n }\n }\n });\n }\n leave && leave(el, cb);\n if (!expectsCSS && !userWantsControl) {\n cb();\n }\n }\n }\n // only used in dev mode\n function checkDuration(val, name, vnode) {\n if (typeof val !== 'number') {\n warn$2(\"<transition> explicit \".concat(name, \" duration is not a valid number - \") +\n \"got \".concat(JSON.stringify(val), \".\"), vnode.context);\n }\n else if (isNaN(val)) {\n warn$2(\"<transition> explicit \".concat(name, \" duration is NaN - \") +\n 'the duration expression might be incorrect.', vnode.context);\n }\n }\n function isValidDuration(val) {\n return typeof val === 'number' && !isNaN(val);\n }\n /**\n * Normalize a transition hook's argument length. The hook may be:\n * - a merged hook (invoker) with the original in .fns\n * - a wrapped component method (check ._length)\n * - a plain function (.length)\n */\n function getHookArgumentsLength(fn) {\n if (isUndef(fn)) {\n return false;\n }\n // @ts-expect-error\n var invokerFns = fn.fns;\n if (isDef(invokerFns)) {\n // invoker\n return getHookArgumentsLength(Array.isArray(invokerFns) ? invokerFns[0] : invokerFns);\n }\n else {\n // @ts-expect-error\n return (fn._length || fn.length) > 1;\n }\n }\n function _enter(_, vnode) {\n if (vnode.data.show !== true) {\n enter(vnode);\n }\n }\n var transition = inBrowser\n ? {\n create: _enter,\n activate: _enter,\n remove: function (vnode, rm) {\n /* istanbul ignore else */\n if (vnode.data.show !== true) {\n // @ts-expect-error\n leave(vnode, rm);\n }\n else {\n rm();\n }\n }\n }\n : {};\n\n var platformModules = [attrs, klass$1, events, domProps, style$1, transition];\n\n // the directive module should be applied last, after all\n // built-in modules have been applied.\n var modules$1 = platformModules.concat(baseModules);\n var patch = createPatchFunction({ nodeOps: nodeOps, modules: modules$1 });\n\n /**\n * Not type checking this file because flow doesn't like attaching\n * properties to Elements.\n */\n /* istanbul ignore if */\n if (isIE9) {\n // http://www.matts411.com/post/internet-explorer-9-oninput/\n document.addEventListener('selectionchange', function () {\n var el = document.activeElement;\n // @ts-expect-error\n if (el && el.vmodel) {\n trigger(el, 'input');\n }\n });\n }\n var directive = {\n inserted: function (el, binding, vnode, oldVnode) {\n if (vnode.tag === 'select') {\n // #6903\n if (oldVnode.elm && !oldVnode.elm._vOptions) {\n mergeVNodeHook(vnode, 'postpatch', function () {\n directive.componentUpdated(el, binding, vnode);\n });\n }\n else {\n setSelected(el, binding, vnode.context);\n }\n el._vOptions = [].map.call(el.options, getValue);\n }\n else if (vnode.tag === 'textarea' || isTextInputType(el.type)) {\n el._vModifiers = binding.modifiers;\n if (!binding.modifiers.lazy) {\n el.addEventListener('compositionstart', onCompositionStart);\n el.addEventListener('compositionend', onCompositionEnd);\n // Safari < 10.2 & UIWebView doesn't fire compositionend when\n // switching focus before confirming composition choice\n // this also fixes the issue where some browsers e.g. iOS Chrome\n // fires \"change\" instead of \"input\" on autocomplete.\n el.addEventListener('change', onCompositionEnd);\n /* istanbul ignore if */\n if (isIE9) {\n el.vmodel = true;\n }\n }\n }\n },\n componentUpdated: function (el, binding, vnode) {\n if (vnode.tag === 'select') {\n setSelected(el, binding, vnode.context);\n // in case the options rendered by v-for have changed,\n // it's possible that the value is out-of-sync with the rendered options.\n // detect such cases and filter out values that no longer has a matching\n // option in the DOM.\n var prevOptions_1 = el._vOptions;\n var curOptions_1 = (el._vOptions = [].map.call(el.options, getValue));\n if (curOptions_1.some(function (o, i) { return !looseEqual(o, prevOptions_1[i]); })) {\n // trigger change event if\n // no matching option found for at least one value\n var needReset = el.multiple\n ? binding.value.some(function (v) { return hasNoMatchingOption(v, curOptions_1); })\n : binding.value !== binding.oldValue &&\n hasNoMatchingOption(binding.value, curOptions_1);\n if (needReset) {\n trigger(el, 'change');\n }\n }\n }\n }\n };\n function setSelected(el, binding, vm) {\n actuallySetSelected(el, binding, vm);\n /* istanbul ignore if */\n if (isIE || isEdge) {\n setTimeout(function () {\n actuallySetSelected(el, binding, vm);\n }, 0);\n }\n }\n function actuallySetSelected(el, binding, vm) {\n var value = binding.value;\n var isMultiple = el.multiple;\n if (isMultiple && !Array.isArray(value)) {\n warn$2(\"<select multiple v-model=\\\"\".concat(binding.expression, \"\\\"> \") +\n \"expects an Array value for its binding, but got \".concat(Object.prototype.toString\n .call(value)\n .slice(8, -1)), vm);\n return;\n }\n var selected, option;\n for (var i = 0, l = el.options.length; i < l; i++) {\n option = el.options[i];\n if (isMultiple) {\n selected = looseIndexOf(value, getValue(option)) > -1;\n if (option.selected !== selected) {\n option.selected = selected;\n }\n }\n else {\n if (looseEqual(getValue(option), value)) {\n if (el.selectedIndex !== i) {\n el.selectedIndex = i;\n }\n return;\n }\n }\n }\n if (!isMultiple) {\n el.selectedIndex = -1;\n }\n }\n function hasNoMatchingOption(value, options) {\n return options.every(function (o) { return !looseEqual(o, value); });\n }\n function getValue(option) {\n return '_value' in option ? option._value : option.value;\n }\n function onCompositionStart(e) {\n e.target.composing = true;\n }\n function onCompositionEnd(e) {\n // prevent triggering an input event for no reason\n if (!e.target.composing)\n return;\n e.target.composing = false;\n trigger(e.target, 'input');\n }\n function trigger(el, type) {\n var e = document.createEvent('HTMLEvents');\n e.initEvent(type, true, true);\n el.dispatchEvent(e);\n }\n\n // recursively search for possible transition defined inside the component root\n function locateNode(vnode) {\n // @ts-expect-error\n return vnode.componentInstance && (!vnode.data || !vnode.data.transition)\n ? locateNode(vnode.componentInstance._vnode)\n : vnode;\n }\n var show = {\n bind: function (el, _a, vnode) {\n var value = _a.value;\n vnode = locateNode(vnode);\n var transition = vnode.data && vnode.data.transition;\n var originalDisplay = (el.__vOriginalDisplay =\n el.style.display === 'none' ? '' : el.style.display);\n if (value && transition) {\n vnode.data.show = true;\n enter(vnode, function () {\n el.style.display = originalDisplay;\n });\n }\n else {\n el.style.display = value ? originalDisplay : 'none';\n }\n },\n update: function (el, _a, vnode) {\n var value = _a.value, oldValue = _a.oldValue;\n /* istanbul ignore if */\n if (!value === !oldValue)\n return;\n vnode = locateNode(vnode);\n var transition = vnode.data && vnode.data.transition;\n if (transition) {\n vnode.data.show = true;\n if (value) {\n enter(vnode, function () {\n el.style.display = el.__vOriginalDisplay;\n });\n }\n else {\n leave(vnode, function () {\n el.style.display = 'none';\n });\n }\n }\n else {\n el.style.display = value ? el.__vOriginalDisplay : 'none';\n }\n },\n unbind: function (el, binding, vnode, oldVnode, isDestroy) {\n if (!isDestroy) {\n el.style.display = el.__vOriginalDisplay;\n }\n }\n };\n\n var platformDirectives = {\n model: directive,\n show: show\n };\n\n // Provides transition support for a single element/component.\n var transitionProps = {\n name: String,\n appear: Boolean,\n css: Boolean,\n mode: String,\n type: String,\n enterClass: String,\n leaveClass: String,\n enterToClass: String,\n leaveToClass: String,\n enterActiveClass: String,\n leaveActiveClass: String,\n appearClass: String,\n appearActiveClass: String,\n appearToClass: String,\n duration: [Number, String, Object]\n };\n // in case the child is also an abstract component, e.g. <keep-alive>\n // we want to recursively retrieve the real component to be rendered\n function getRealChild(vnode) {\n var compOptions = vnode && vnode.componentOptions;\n if (compOptions && compOptions.Ctor.options.abstract) {\n return getRealChild(getFirstComponentChild(compOptions.children));\n }\n else {\n return vnode;\n }\n }\n function extractTransitionData(comp) {\n var data = {};\n var options = comp.$options;\n // props\n for (var key in options.propsData) {\n data[key] = comp[key];\n }\n // events.\n // extract listeners and pass them directly to the transition methods\n var listeners = options._parentListeners;\n for (var key in listeners) {\n data[camelize(key)] = listeners[key];\n }\n return data;\n }\n function placeholder(h, rawChild) {\n // @ts-expect-error\n if (/\\d-keep-alive$/.test(rawChild.tag)) {\n return h('keep-alive', {\n props: rawChild.componentOptions.propsData\n });\n }\n }\n function hasParentTransition(vnode) {\n while ((vnode = vnode.parent)) {\n if (vnode.data.transition) {\n return true;\n }\n }\n }\n function isSameChild(child, oldChild) {\n return oldChild.key === child.key && oldChild.tag === child.tag;\n }\n var isNotTextNode = function (c) { return c.tag || isAsyncPlaceholder(c); };\n var isVShowDirective = function (d) { return d.name === 'show'; };\n var Transition = {\n name: 'transition',\n props: transitionProps,\n abstract: true,\n render: function (h) {\n var _this = this;\n var children = this.$slots.default;\n if (!children) {\n return;\n }\n // filter out text nodes (possible whitespaces)\n children = children.filter(isNotTextNode);\n /* istanbul ignore if */\n if (!children.length) {\n return;\n }\n // warn multiple elements\n if (children.length > 1) {\n warn$2('<transition> can only be used on a single element. Use ' +\n '<transition-group> for lists.', this.$parent);\n }\n var mode = this.mode;\n // warn invalid mode\n if (mode && mode !== 'in-out' && mode !== 'out-in') {\n warn$2('invalid <transition> mode: ' + mode, this.$parent);\n }\n var rawChild = children[0];\n // if this is a component root node and the component's\n // parent container node also has transition, skip.\n if (hasParentTransition(this.$vnode)) {\n return rawChild;\n }\n // apply transition data to child\n // use getRealChild() to ignore abstract components e.g. keep-alive\n var child = getRealChild(rawChild);\n /* istanbul ignore if */\n if (!child) {\n return rawChild;\n }\n if (this._leaving) {\n return placeholder(h, rawChild);\n }\n // ensure a key that is unique to the vnode type and to this transition\n // component instance. This key will be used to remove pending leaving nodes\n // during entering.\n var id = \"__transition-\".concat(this._uid, \"-\");\n child.key =\n child.key == null\n ? child.isComment\n ? id + 'comment'\n : id + child.tag\n : isPrimitive(child.key)\n ? String(child.key).indexOf(id) === 0\n ? child.key\n : id + child.key\n : child.key;\n var data = ((child.data || (child.data = {})).transition =\n extractTransitionData(this));\n var oldRawChild = this._vnode;\n var oldChild = getRealChild(oldRawChild);\n // mark v-show\n // so that the transition module can hand over the control to the directive\n if (child.data.directives && child.data.directives.some(isVShowDirective)) {\n child.data.show = true;\n }\n if (oldChild &&\n oldChild.data &&\n !isSameChild(child, oldChild) &&\n !isAsyncPlaceholder(oldChild) &&\n // #6687 component root is a comment node\n !(oldChild.componentInstance &&\n oldChild.componentInstance._vnode.isComment)) {\n // replace old child transition data with fresh one\n // important for dynamic transitions!\n var oldData = (oldChild.data.transition = extend({}, data));\n // handle transition mode\n if (mode === 'out-in') {\n // return placeholder node and queue update when leave finishes\n this._leaving = true;\n mergeVNodeHook(oldData, 'afterLeave', function () {\n _this._leaving = false;\n _this.$forceUpdate();\n });\n return placeholder(h, rawChild);\n }\n else if (mode === 'in-out') {\n if (isAsyncPlaceholder(child)) {\n return oldRawChild;\n }\n var delayedLeave_1;\n var performLeave = function () {\n delayedLeave_1();\n };\n mergeVNodeHook(data, 'afterEnter', performLeave);\n mergeVNodeHook(data, 'enterCancelled', performLeave);\n mergeVNodeHook(oldData, 'delayLeave', function (leave) {\n delayedLeave_1 = leave;\n });\n }\n }\n return rawChild;\n }\n };\n\n // Provides transition support for list items.\n var props = extend({\n tag: String,\n moveClass: String\n }, transitionProps);\n delete props.mode;\n var TransitionGroup = {\n props: props,\n beforeMount: function () {\n var _this = this;\n var update = this._update;\n this._update = function (vnode, hydrating) {\n var restoreActiveInstance = setActiveInstance(_this);\n // force removing pass\n _this.__patch__(_this._vnode, _this.kept, false, // hydrating\n true // removeOnly (!important, avoids unnecessary moves)\n );\n _this._vnode = _this.kept;\n restoreActiveInstance();\n update.call(_this, vnode, hydrating);\n };\n },\n render: function (h) {\n var tag = this.tag || this.$vnode.data.tag || 'span';\n var map = Object.create(null);\n var prevChildren = (this.prevChildren = this.children);\n var rawChildren = this.$slots.default || [];\n var children = (this.children = []);\n var transitionData = extractTransitionData(this);\n for (var i = 0; i < rawChildren.length; i++) {\n var c = rawChildren[i];\n if (c.tag) {\n if (c.key != null && String(c.key).indexOf('__vlist') !== 0) {\n children.push(c);\n map[c.key] = c;\n (c.data || (c.data = {})).transition = transitionData;\n }\n else {\n var opts = c.componentOptions;\n var name_1 = opts\n ? getComponentName(opts.Ctor.options) || opts.tag || ''\n : c.tag;\n warn$2(\"<transition-group> children must be keyed: <\".concat(name_1, \">\"));\n }\n }\n }\n if (prevChildren) {\n var kept = [];\n var removed = [];\n for (var i = 0; i < prevChildren.length; i++) {\n var c = prevChildren[i];\n c.data.transition = transitionData;\n // @ts-expect-error .getBoundingClientRect is not typed in Node\n c.data.pos = c.elm.getBoundingClientRect();\n if (map[c.key]) {\n kept.push(c);\n }\n else {\n removed.push(c);\n }\n }\n this.kept = h(tag, null, kept);\n this.removed = removed;\n }\n return h(tag, null, children);\n },\n updated: function () {\n var children = this.prevChildren;\n var moveClass = this.moveClass || (this.name || 'v') + '-move';\n if (!children.length || !this.hasMove(children[0].elm, moveClass)) {\n return;\n }\n // we divide the work into three loops to avoid mixing DOM reads and writes\n // in each iteration - which helps prevent layout thrashing.\n children.forEach(callPendingCbs);\n children.forEach(recordPosition);\n children.forEach(applyTranslation);\n // force reflow to put everything in position\n // assign to this to avoid being removed in tree-shaking\n // $flow-disable-line\n this._reflow = document.body.offsetHeight;\n children.forEach(function (c) {\n if (c.data.moved) {\n var el_1 = c.elm;\n var s = el_1.style;\n addTransitionClass(el_1, moveClass);\n s.transform = s.WebkitTransform = s.transitionDuration = '';\n el_1.addEventListener(transitionEndEvent, (el_1._moveCb = function cb(e) {\n if (e && e.target !== el_1) {\n return;\n }\n if (!e || /transform$/.test(e.propertyName)) {\n el_1.removeEventListener(transitionEndEvent, cb);\n el_1._moveCb = null;\n removeTransitionClass(el_1, moveClass);\n }\n }));\n }\n });\n },\n methods: {\n hasMove: function (el, moveClass) {\n /* istanbul ignore if */\n if (!hasTransition) {\n return false;\n }\n /* istanbul ignore if */\n if (this._hasMove) {\n return this._hasMove;\n }\n // Detect whether an element with the move class applied has\n // CSS transitions. Since the element may be inside an entering\n // transition at this very moment, we make a clone of it and remove\n // all other transition classes applied to ensure only the move class\n // is applied.\n var clone = el.cloneNode();\n if (el._transitionClasses) {\n el._transitionClasses.forEach(function (cls) {\n removeClass(clone, cls);\n });\n }\n addClass(clone, moveClass);\n clone.style.display = 'none';\n this.$el.appendChild(clone);\n var info = getTransitionInfo(clone);\n this.$el.removeChild(clone);\n return (this._hasMove = info.hasTransform);\n }\n }\n };\n function callPendingCbs(c) {\n /* istanbul ignore if */\n if (c.elm._moveCb) {\n c.elm._moveCb();\n }\n /* istanbul ignore if */\n if (c.elm._enterCb) {\n c.elm._enterCb();\n }\n }\n function recordPosition(c) {\n c.data.newPos = c.elm.getBoundingClientRect();\n }\n function applyTranslation(c) {\n var oldPos = c.data.pos;\n var newPos = c.data.newPos;\n var dx = oldPos.left - newPos.left;\n var dy = oldPos.top - newPos.top;\n if (dx || dy) {\n c.data.moved = true;\n var s = c.elm.style;\n s.transform = s.WebkitTransform = \"translate(\".concat(dx, \"px,\").concat(dy, \"px)\");\n s.transitionDuration = '0s';\n }\n }\n\n var platformComponents = {\n Transition: Transition,\n TransitionGroup: TransitionGroup\n };\n\n // install platform specific utils\n Vue.config.mustUseProp = mustUseProp;\n Vue.config.isReservedTag = isReservedTag;\n Vue.config.isReservedAttr = isReservedAttr;\n Vue.config.getTagNamespace = getTagNamespace;\n Vue.config.isUnknownElement = isUnknownElement;\n // install platform runtime directives & components\n extend(Vue.options.directives, platformDirectives);\n extend(Vue.options.components, platformComponents);\n // install platform patch function\n Vue.prototype.__patch__ = inBrowser ? patch : noop;\n // public mount method\n Vue.prototype.$mount = function (el, hydrating) {\n el = el && inBrowser ? query(el) : undefined;\n return mountComponent(this, el, hydrating);\n };\n // devtools global hook\n /* istanbul ignore next */\n if (inBrowser) {\n setTimeout(function () {\n if (config.devtools) {\n if (devtools) {\n devtools.emit('init', Vue);\n }\n else {\n // @ts-expect-error\n console[console.info ? 'info' : 'log']('Download the Vue Devtools extension for a better development experience:\\n' +\n 'https://github.com/vuejs/vue-devtools');\n }\n }\n if (config.productionTip !== false &&\n typeof console !== 'undefined') {\n // @ts-expect-error\n console[console.info ? 'info' : 'log'](\"You are running Vue in development mode.\\n\" +\n \"Make sure to turn on production mode when deploying for production.\\n\" +\n \"See more tips at https://vuejs.org/guide/deployment.html\");\n }\n }, 0);\n }\n\n var defaultTagRE = /\\{\\{((?:.|\\r?\\n)+?)\\}\\}/g;\n var regexEscapeRE = /[-.*+?^${}()|[\\]\\/\\\\]/g;\n var buildRegex = cached(function (delimiters) {\n var open = delimiters[0].replace(regexEscapeRE, '\\\\$&');\n var close = delimiters[1].replace(regexEscapeRE, '\\\\$&');\n return new RegExp(open + '((?:.|\\\\n)+?)' + close, 'g');\n });\n function parseText(text, delimiters) {\n //@ts-expect-error\n var tagRE = delimiters ? buildRegex(delimiters) : defaultTagRE;\n if (!tagRE.test(text)) {\n return;\n }\n var tokens = [];\n var rawTokens = [];\n var lastIndex = (tagRE.lastIndex = 0);\n var match, index, tokenValue;\n while ((match = tagRE.exec(text))) {\n index = match.index;\n // push text token\n if (index > lastIndex) {\n rawTokens.push((tokenValue = text.slice(lastIndex, index)));\n tokens.push(JSON.stringify(tokenValue));\n }\n // tag token\n var exp = parseFilters(match[1].trim());\n tokens.push(\"_s(\".concat(exp, \")\"));\n rawTokens.push({ '@binding': exp });\n lastIndex = index + match[0].length;\n }\n if (lastIndex < text.length) {\n rawTokens.push((tokenValue = text.slice(lastIndex)));\n tokens.push(JSON.stringify(tokenValue));\n }\n return {\n expression: tokens.join('+'),\n tokens: rawTokens\n };\n }\n\n function transformNode$1(el, options) {\n var warn = options.warn || baseWarn;\n var staticClass = getAndRemoveAttr(el, 'class');\n if (staticClass) {\n var res = parseText(staticClass, options.delimiters);\n if (res) {\n warn(\"class=\\\"\".concat(staticClass, \"\\\": \") +\n 'Interpolation inside attributes has been removed. ' +\n 'Use v-bind or the colon shorthand instead. For example, ' +\n 'instead of <div class=\"{{ val }}\">, use <div :class=\"val\">.', el.rawAttrsMap['class']);\n }\n }\n if (staticClass) {\n el.staticClass = JSON.stringify(staticClass.replace(/\\s+/g, ' ').trim());\n }\n var classBinding = getBindingAttr(el, 'class', false /* getStatic */);\n if (classBinding) {\n el.classBinding = classBinding;\n }\n }\n function genData$2(el) {\n var data = '';\n if (el.staticClass) {\n data += \"staticClass:\".concat(el.staticClass, \",\");\n }\n if (el.classBinding) {\n data += \"class:\".concat(el.classBinding, \",\");\n }\n return data;\n }\n var klass = {\n staticKeys: ['staticClass'],\n transformNode: transformNode$1,\n genData: genData$2\n };\n\n function transformNode(el, options) {\n var warn = options.warn || baseWarn;\n var staticStyle = getAndRemoveAttr(el, 'style');\n if (staticStyle) {\n /* istanbul ignore if */\n {\n var res = parseText(staticStyle, options.delimiters);\n if (res) {\n warn(\"style=\\\"\".concat(staticStyle, \"\\\": \") +\n 'Interpolation inside attributes has been removed. ' +\n 'Use v-bind or the colon shorthand instead. For example, ' +\n 'instead of <div style=\"{{ val }}\">, use <div :style=\"val\">.', el.rawAttrsMap['style']);\n }\n }\n el.staticStyle = JSON.stringify(parseStyleText(staticStyle));\n }\n var styleBinding = getBindingAttr(el, 'style', false /* getStatic */);\n if (styleBinding) {\n el.styleBinding = styleBinding;\n }\n }\n function genData$1(el) {\n var data = '';\n if (el.staticStyle) {\n data += \"staticStyle:\".concat(el.staticStyle, \",\");\n }\n if (el.styleBinding) {\n data += \"style:(\".concat(el.styleBinding, \"),\");\n }\n return data;\n }\n var style = {\n staticKeys: ['staticStyle'],\n transformNode: transformNode,\n genData: genData$1\n };\n\n var decoder;\n var he = {\n decode: function (html) {\n decoder = decoder || document.createElement('div');\n decoder.innerHTML = html;\n return decoder.textContent;\n }\n };\n\n var isUnaryTag = makeMap('area,base,br,col,embed,frame,hr,img,input,isindex,keygen,' +\n 'link,meta,param,source,track,wbr');\n // Elements that you can, intentionally, leave open\n // (and which close themselves)\n var canBeLeftOpenTag = makeMap('colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source');\n // HTML5 tags https://html.spec.whatwg.org/multipage/indices.html#elements-3\n // Phrasing Content https://html.spec.whatwg.org/multipage/dom.html#phrasing-content\n var isNonPhrasingTag = makeMap('address,article,aside,base,blockquote,body,caption,col,colgroup,dd,' +\n 'details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,' +\n 'h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,' +\n 'optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,' +\n 'title,tr,track');\n\n /**\n * Not type-checking this file because it's mostly vendor code.\n */\n // Regular Expressions for parsing tags and attributes\n var attribute = /^\\s*([^\\s\"'<>\\/=]+)(?:\\s*(=)\\s*(?:\"([^\"]*)\"+|'([^']*)'+|([^\\s\"'=<>`]+)))?/;\n var dynamicArgAttribute = /^\\s*((?:v-[\\w-]+:|@|:|#)\\[[^=]+?\\][^\\s\"'<>\\/=]*)(?:\\s*(=)\\s*(?:\"([^\"]*)\"+|'([^']*)'+|([^\\s\"'=<>`]+)))?/;\n var ncname = \"[a-zA-Z_][\\\\-\\\\.0-9_a-zA-Z\".concat(unicodeRegExp.source, \"]*\");\n var qnameCapture = \"((?:\".concat(ncname, \"\\\\:)?\").concat(ncname, \")\");\n var startTagOpen = new RegExp(\"^<\".concat(qnameCapture));\n var startTagClose = /^\\s*(\\/?)>/;\n var endTag = new RegExp(\"^<\\\\/\".concat(qnameCapture, \"[^>]*>\"));\n var doctype = /^<!DOCTYPE [^>]+>/i;\n // #7298: escape - to avoid being passed as HTML comment when inlined in page\n var comment = /^<!\\--/;\n var conditionalComment = /^<!\\[/;\n // Special Elements (can contain anything)\n var isPlainTextElement = makeMap('script,style,textarea', true);\n var reCache = {};\n var decodingMap = {\n '<': '<',\n '>': '>',\n '"': '\"',\n '&': '&',\n ' ': '\\n',\n ' ': '\\t',\n ''': \"'\"\n };\n var encodedAttr = /&(?:lt|gt|quot|amp|#39);/g;\n var encodedAttrWithNewLines = /&(?:lt|gt|quot|amp|#39|#10|#9);/g;\n // #5992\n var isIgnoreNewlineTag = makeMap('pre,textarea', true);\n var shouldIgnoreFirstNewline = function (tag, html) {\n return tag && isIgnoreNewlineTag(tag) && html[0] === '\\n';\n };\n function decodeAttr(value, shouldDecodeNewlines) {\n var re = shouldDecodeNewlines ? encodedAttrWithNewLines : encodedAttr;\n return value.replace(re, function (match) { return decodingMap[match]; });\n }\n function parseHTML(html, options) {\n var stack = [];\n var expectHTML = options.expectHTML;\n var isUnaryTag = options.isUnaryTag || no;\n var canBeLeftOpenTag = options.canBeLeftOpenTag || no;\n var index = 0;\n var last, lastTag;\n var _loop_1 = function () {\n last = html;\n // Make sure we're not in a plaintext content element like script/style\n if (!lastTag || !isPlainTextElement(lastTag)) {\n var textEnd = html.indexOf('<');\n if (textEnd === 0) {\n // Comment:\n if (comment.test(html)) {\n var commentEnd = html.indexOf('-->');\n if (commentEnd >= 0) {\n if (options.shouldKeepComment && options.comment) {\n options.comment(html.substring(4, commentEnd), index, index + commentEnd + 3);\n }\n advance(commentEnd + 3);\n return \"continue\";\n }\n }\n // http://en.wikipedia.org/wiki/Conditional_comment#Downlevel-revealed_conditional_comment\n if (conditionalComment.test(html)) {\n var conditionalEnd = html.indexOf(']>');\n if (conditionalEnd >= 0) {\n advance(conditionalEnd + 2);\n return \"continue\";\n }\n }\n // Doctype:\n var doctypeMatch = html.match(doctype);\n if (doctypeMatch) {\n advance(doctypeMatch[0].length);\n return \"continue\";\n }\n // End tag:\n var endTagMatch = html.match(endTag);\n if (endTagMatch) {\n var curIndex = index;\n advance(endTagMatch[0].length);\n parseEndTag(endTagMatch[1], curIndex, index);\n return \"continue\";\n }\n // Start tag:\n var startTagMatch = parseStartTag();\n if (startTagMatch) {\n handleStartTag(startTagMatch);\n if (shouldIgnoreFirstNewline(startTagMatch.tagName, html)) {\n advance(1);\n }\n return \"continue\";\n }\n }\n var text = void 0, rest = void 0, next = void 0;\n if (textEnd >= 0) {\n rest = html.slice(textEnd);\n while (!endTag.test(rest) &&\n !startTagOpen.test(rest) &&\n !comment.test(rest) &&\n !conditionalComment.test(rest)) {\n // < in plain text, be forgiving and treat it as text\n next = rest.indexOf('<', 1);\n if (next < 0)\n break;\n textEnd += next;\n rest = html.slice(textEnd);\n }\n text = html.substring(0, textEnd);\n }\n if (textEnd < 0) {\n text = html;\n }\n if (text) {\n advance(text.length);\n }\n if (options.chars && text) {\n options.chars(text, index - text.length, index);\n }\n }\n else {\n var endTagLength_1 = 0;\n var stackedTag_1 = lastTag.toLowerCase();\n var reStackedTag = reCache[stackedTag_1] ||\n (reCache[stackedTag_1] = new RegExp('([\\\\s\\\\S]*?)(</' + stackedTag_1 + '[^>]*>)', 'i'));\n var rest = html.replace(reStackedTag, function (all, text, endTag) {\n endTagLength_1 = endTag.length;\n if (!isPlainTextElement(stackedTag_1) && stackedTag_1 !== 'noscript') {\n text = text\n .replace(/<!\\--([\\s\\S]*?)-->/g, '$1') // #7298\n .replace(/<!\\[CDATA\\[([\\s\\S]*?)]]>/g, '$1');\n }\n if (shouldIgnoreFirstNewline(stackedTag_1, text)) {\n text = text.slice(1);\n }\n if (options.chars) {\n options.chars(text);\n }\n return '';\n });\n index += html.length - rest.length;\n html = rest;\n parseEndTag(stackedTag_1, index - endTagLength_1, index);\n }\n if (html === last) {\n options.chars && options.chars(html);\n if (!stack.length && options.warn) {\n options.warn(\"Mal-formatted tag at end of template: \\\"\".concat(html, \"\\\"\"), {\n start: index + html.length\n });\n }\n return \"break\";\n }\n };\n while (html) {\n var state_1 = _loop_1();\n if (state_1 === \"break\")\n break;\n }\n // Clean up any remaining tags\n parseEndTag();\n function advance(n) {\n index += n;\n html = html.substring(n);\n }\n function parseStartTag() {\n var start = html.match(startTagOpen);\n if (start) {\n var match = {\n tagName: start[1],\n attrs: [],\n start: index\n };\n advance(start[0].length);\n var end = void 0, attr = void 0;\n while (!(end = html.match(startTagClose)) &&\n (attr = html.match(dynamicArgAttribute) || html.match(attribute))) {\n attr.start = index;\n advance(attr[0].length);\n attr.end = index;\n match.attrs.push(attr);\n }\n if (end) {\n match.unarySlash = end[1];\n advance(end[0].length);\n match.end = index;\n return match;\n }\n }\n }\n function handleStartTag(match) {\n var tagName = match.tagName;\n var unarySlash = match.unarySlash;\n if (expectHTML) {\n if (lastTag === 'p' && isNonPhrasingTag(tagName)) {\n parseEndTag(lastTag);\n }\n if (canBeLeftOpenTag(tagName) && lastTag === tagName) {\n parseEndTag(tagName);\n }\n }\n var unary = isUnaryTag(tagName) || !!unarySlash;\n var l = match.attrs.length;\n var attrs = new Array(l);\n for (var i = 0; i < l; i++) {\n var args = match.attrs[i];\n var value = args[3] || args[4] || args[5] || '';\n var shouldDecodeNewlines = tagName === 'a' && args[1] === 'href'\n ? options.shouldDecodeNewlinesForHref\n : options.shouldDecodeNewlines;\n attrs[i] = {\n name: args[1],\n value: decodeAttr(value, shouldDecodeNewlines)\n };\n if (options.outputSourceRange) {\n attrs[i].start = args.start + args[0].match(/^\\s*/).length;\n attrs[i].end = args.end;\n }\n }\n if (!unary) {\n stack.push({\n tag: tagName,\n lowerCasedTag: tagName.toLowerCase(),\n attrs: attrs,\n start: match.start,\n end: match.end\n });\n lastTag = tagName;\n }\n if (options.start) {\n options.start(tagName, attrs, unary, match.start, match.end);\n }\n }\n function parseEndTag(tagName, start, end) {\n var pos, lowerCasedTagName;\n if (start == null)\n start = index;\n if (end == null)\n end = index;\n // Find the closest opened tag of the same type\n if (tagName) {\n lowerCasedTagName = tagName.toLowerCase();\n for (pos = stack.length - 1; pos >= 0; pos--) {\n if (stack[pos].lowerCasedTag === lowerCasedTagName) {\n break;\n }\n }\n }\n else {\n // If no tag name is provided, clean shop\n pos = 0;\n }\n if (pos >= 0) {\n // Close all the open elements, up the stack\n for (var i = stack.length - 1; i >= pos; i--) {\n if ((i > pos || !tagName) && options.warn) {\n options.warn(\"tag <\".concat(stack[i].tag, \"> has no matching end tag.\"), {\n start: stack[i].start,\n end: stack[i].end\n });\n }\n if (options.end) {\n options.end(stack[i].tag, start, end);\n }\n }\n // Remove the open elements from the stack\n stack.length = pos;\n lastTag = pos && stack[pos - 1].tag;\n }\n else if (lowerCasedTagName === 'br') {\n if (options.start) {\n options.start(tagName, [], true, start, end);\n }\n }\n else if (lowerCasedTagName === 'p') {\n if (options.start) {\n options.start(tagName, [], false, start, end);\n }\n if (options.end) {\n options.end(tagName, start, end);\n }\n }\n }\n }\n\n var onRE = /^@|^v-on:/;\n var dirRE = /^v-|^@|^:|^#/;\n var forAliasRE = /([\\s\\S]*?)\\s+(?:in|of)\\s+([\\s\\S]*)/;\n var forIteratorRE = /,([^,\\}\\]]*)(?:,([^,\\}\\]]*))?$/;\n var stripParensRE = /^\\(|\\)$/g;\n var dynamicArgRE = /^\\[.*\\]$/;\n var argRE = /:(.*)$/;\n var bindRE = /^:|^\\.|^v-bind:/;\n var modifierRE = /\\.[^.\\]]+(?=[^\\]]*$)/g;\n var slotRE = /^v-slot(:|$)|^#/;\n var lineBreakRE = /[\\r\\n]/;\n var whitespaceRE = /[ \\f\\t\\r\\n]+/g;\n var invalidAttributeRE = /[\\s\"'<>\\/=]/;\n var decodeHTMLCached = cached(he.decode);\n var emptySlotScopeToken = \"_empty_\";\n // configurable state\n var warn;\n var delimiters;\n var transforms;\n var preTransforms;\n var postTransforms;\n var platformIsPreTag;\n var platformMustUseProp;\n var platformGetTagNamespace;\n var maybeComponent;\n function createASTElement(tag, attrs, parent) {\n return {\n type: 1,\n tag: tag,\n attrsList: attrs,\n attrsMap: makeAttrsMap(attrs),\n rawAttrsMap: {},\n parent: parent,\n children: []\n };\n }\n /**\n * Convert HTML string to AST.\n */\n function parse(template, options) {\n warn = options.warn || baseWarn;\n platformIsPreTag = options.isPreTag || no;\n platformMustUseProp = options.mustUseProp || no;\n platformGetTagNamespace = options.getTagNamespace || no;\n var isReservedTag = options.isReservedTag || no;\n maybeComponent = function (el) {\n return !!(el.component ||\n el.attrsMap[':is'] ||\n el.attrsMap['v-bind:is'] ||\n !(el.attrsMap.is ? isReservedTag(el.attrsMap.is) : isReservedTag(el.tag)));\n };\n transforms = pluckModuleFunction(options.modules, 'transformNode');\n preTransforms = pluckModuleFunction(options.modules, 'preTransformNode');\n postTransforms = pluckModuleFunction(options.modules, 'postTransformNode');\n delimiters = options.delimiters;\n var stack = [];\n var preserveWhitespace = options.preserveWhitespace !== false;\n var whitespaceOption = options.whitespace;\n var root;\n var currentParent;\n var inVPre = false;\n var inPre = false;\n var warned = false;\n function warnOnce(msg, range) {\n if (!warned) {\n warned = true;\n warn(msg, range);\n }\n }\n function closeElement(element) {\n trimEndingWhitespace(element);\n if (!inVPre && !element.processed) {\n element = processElement(element, options);\n }\n // tree management\n if (!stack.length && element !== root) {\n // allow root elements with v-if, v-else-if and v-else\n if (root.if && (element.elseif || element.else)) {\n {\n checkRootConstraints(element);\n }\n addIfCondition(root, {\n exp: element.elseif,\n block: element\n });\n }\n else {\n warnOnce(\"Component template should contain exactly one root element. \" +\n \"If you are using v-if on multiple elements, \" +\n \"use v-else-if to chain them instead.\", { start: element.start });\n }\n }\n if (currentParent && !element.forbidden) {\n if (element.elseif || element.else) {\n processIfConditions(element, currentParent);\n }\n else {\n if (element.slotScope) {\n // scoped slot\n // keep it in the children list so that v-else(-if) conditions can\n // find it as the prev node.\n var name_1 = element.slotTarget || '\"default\"';\n (currentParent.scopedSlots || (currentParent.scopedSlots = {}))[name_1] = element;\n }\n currentParent.children.push(element);\n element.parent = currentParent;\n }\n }\n // final children cleanup\n // filter out scoped slots\n element.children = element.children.filter(function (c) { return !c.slotScope; });\n // remove trailing whitespace node again\n trimEndingWhitespace(element);\n // check pre state\n if (element.pre) {\n inVPre = false;\n }\n if (platformIsPreTag(element.tag)) {\n inPre = false;\n }\n // apply post-transforms\n for (var i = 0; i < postTransforms.length; i++) {\n postTransforms[i](element, options);\n }\n }\n function trimEndingWhitespace(el) {\n // remove trailing whitespace node\n if (!inPre) {\n var lastNode = void 0;\n while ((lastNode = el.children[el.children.length - 1]) &&\n lastNode.type === 3 &&\n lastNode.text === ' ') {\n el.children.pop();\n }\n }\n }\n function checkRootConstraints(el) {\n if (el.tag === 'slot' || el.tag === 'template') {\n warnOnce(\"Cannot use <\".concat(el.tag, \"> as component root element because it may \") +\n 'contain multiple nodes.', { start: el.start });\n }\n if (el.attrsMap.hasOwnProperty('v-for')) {\n warnOnce('Cannot use v-for on stateful component root element because ' +\n 'it renders multiple elements.', el.rawAttrsMap['v-for']);\n }\n }\n parseHTML(template, {\n warn: warn,\n expectHTML: options.expectHTML,\n isUnaryTag: options.isUnaryTag,\n canBeLeftOpenTag: options.canBeLeftOpenTag,\n shouldDecodeNewlines: options.shouldDecodeNewlines,\n shouldDecodeNewlinesForHref: options.shouldDecodeNewlinesForHref,\n shouldKeepComment: options.comments,\n outputSourceRange: options.outputSourceRange,\n start: function (tag, attrs, unary, start, end) {\n // check namespace.\n // inherit parent ns if there is one\n var ns = (currentParent && currentParent.ns) || platformGetTagNamespace(tag);\n // handle IE svg bug\n /* istanbul ignore if */\n if (isIE && ns === 'svg') {\n attrs = guardIESVGBug(attrs);\n }\n var element = createASTElement(tag, attrs, currentParent);\n if (ns) {\n element.ns = ns;\n }\n {\n if (options.outputSourceRange) {\n element.start = start;\n element.end = end;\n element.rawAttrsMap = element.attrsList.reduce(function (cumulated, attr) {\n cumulated[attr.name] = attr;\n return cumulated;\n }, {});\n }\n attrs.forEach(function (attr) {\n if (invalidAttributeRE.test(attr.name)) {\n warn(\"Invalid dynamic argument expression: attribute names cannot contain \" +\n \"spaces, quotes, <, >, / or =.\", options.outputSourceRange\n ? {\n start: attr.start + attr.name.indexOf(\"[\"),\n end: attr.start + attr.name.length\n }\n : undefined);\n }\n });\n }\n if (isForbiddenTag(element) && !isServerRendering()) {\n element.forbidden = true;\n warn('Templates should only be responsible for mapping the state to the ' +\n 'UI. Avoid placing tags with side-effects in your templates, such as ' +\n \"<\".concat(tag, \">\") +\n ', as they will not be parsed.', { start: element.start });\n }\n // apply pre-transforms\n for (var i = 0; i < preTransforms.length; i++) {\n element = preTransforms[i](element, options) || element;\n }\n if (!inVPre) {\n processPre(element);\n if (element.pre) {\n inVPre = true;\n }\n }\n if (platformIsPreTag(element.tag)) {\n inPre = true;\n }\n if (inVPre) {\n processRawAttrs(element);\n }\n else if (!element.processed) {\n // structural directives\n processFor(element);\n processIf(element);\n processOnce(element);\n }\n if (!root) {\n root = element;\n {\n checkRootConstraints(root);\n }\n }\n if (!unary) {\n currentParent = element;\n stack.push(element);\n }\n else {\n closeElement(element);\n }\n },\n end: function (tag, start, end) {\n var element = stack[stack.length - 1];\n // pop stack\n stack.length -= 1;\n currentParent = stack[stack.length - 1];\n if (options.outputSourceRange) {\n element.end = end;\n }\n closeElement(element);\n },\n chars: function (text, start, end) {\n if (!currentParent) {\n {\n if (text === template) {\n warnOnce('Component template requires a root element, rather than just text.', { start: start });\n }\n else if ((text = text.trim())) {\n warnOnce(\"text \\\"\".concat(text, \"\\\" outside root element will be ignored.\"), {\n start: start\n });\n }\n }\n return;\n }\n // IE textarea placeholder bug\n /* istanbul ignore if */\n if (isIE &&\n currentParent.tag === 'textarea' &&\n currentParent.attrsMap.placeholder === text) {\n return;\n }\n var children = currentParent.children;\n if (inPre || text.trim()) {\n text = isTextTag(currentParent)\n ? text\n : decodeHTMLCached(text);\n }\n else if (!children.length) {\n // remove the whitespace-only node right after an opening tag\n text = '';\n }\n else if (whitespaceOption) {\n if (whitespaceOption === 'condense') {\n // in condense mode, remove the whitespace node if it contains\n // line break, otherwise condense to a single space\n text = lineBreakRE.test(text) ? '' : ' ';\n }\n else {\n text = ' ';\n }\n }\n else {\n text = preserveWhitespace ? ' ' : '';\n }\n if (text) {\n if (!inPre && whitespaceOption === 'condense') {\n // condense consecutive whitespaces into single space\n text = text.replace(whitespaceRE, ' ');\n }\n var res = void 0;\n var child = void 0;\n if (!inVPre && text !== ' ' && (res = parseText(text, delimiters))) {\n child = {\n type: 2,\n expression: res.expression,\n tokens: res.tokens,\n text: text\n };\n }\n else if (text !== ' ' ||\n !children.length ||\n children[children.length - 1].text !== ' ') {\n child = {\n type: 3,\n text: text\n };\n }\n if (child) {\n if (options.outputSourceRange) {\n child.start = start;\n child.end = end;\n }\n children.push(child);\n }\n }\n },\n comment: function (text, start, end) {\n // adding anything as a sibling to the root node is forbidden\n // comments should still be allowed, but ignored\n if (currentParent) {\n var child = {\n type: 3,\n text: text,\n isComment: true\n };\n if (options.outputSourceRange) {\n child.start = start;\n child.end = end;\n }\n currentParent.children.push(child);\n }\n }\n });\n return root;\n }\n function processPre(el) {\n if (getAndRemoveAttr(el, 'v-pre') != null) {\n el.pre = true;\n }\n }\n function processRawAttrs(el) {\n var list = el.attrsList;\n var len = list.length;\n if (len) {\n var attrs = (el.attrs = new Array(len));\n for (var i = 0; i < len; i++) {\n attrs[i] = {\n name: list[i].name,\n value: JSON.stringify(list[i].value)\n };\n if (list[i].start != null) {\n attrs[i].start = list[i].start;\n attrs[i].end = list[i].end;\n }\n }\n }\n else if (!el.pre) {\n // non root node in pre blocks with no attributes\n el.plain = true;\n }\n }\n function processElement(element, options) {\n processKey(element);\n // determine whether this is a plain element after\n // removing structural attributes\n element.plain =\n !element.key && !element.scopedSlots && !element.attrsList.length;\n processRef(element);\n processSlotContent(element);\n processSlotOutlet(element);\n processComponent(element);\n for (var i = 0; i < transforms.length; i++) {\n element = transforms[i](element, options) || element;\n }\n processAttrs(element);\n return element;\n }\n function processKey(el) {\n var exp = getBindingAttr(el, 'key');\n if (exp) {\n {\n if (el.tag === 'template') {\n warn(\"<template> cannot be keyed. Place the key on real elements instead.\", getRawBindingAttr(el, 'key'));\n }\n if (el.for) {\n var iterator = el.iterator2 || el.iterator1;\n var parent_1 = el.parent;\n if (iterator &&\n iterator === exp &&\n parent_1 &&\n parent_1.tag === 'transition-group') {\n warn(\"Do not use v-for index as key on <transition-group> children, \" +\n \"this is the same as not using keys.\", getRawBindingAttr(el, 'key'), true /* tip */);\n }\n }\n }\n el.key = exp;\n }\n }\n function processRef(el) {\n var ref = getBindingAttr(el, 'ref');\n if (ref) {\n el.ref = ref;\n el.refInFor = checkInFor(el);\n }\n }\n function processFor(el) {\n var exp;\n if ((exp = getAndRemoveAttr(el, 'v-for'))) {\n var res = parseFor(exp);\n if (res) {\n extend(el, res);\n }\n else {\n warn(\"Invalid v-for expression: \".concat(exp), el.rawAttrsMap['v-for']);\n }\n }\n }\n function parseFor(exp) {\n var inMatch = exp.match(forAliasRE);\n if (!inMatch)\n return;\n var res = {};\n res.for = inMatch[2].trim();\n var alias = inMatch[1].trim().replace(stripParensRE, '');\n var iteratorMatch = alias.match(forIteratorRE);\n if (iteratorMatch) {\n res.alias = alias.replace(forIteratorRE, '').trim();\n res.iterator1 = iteratorMatch[1].trim();\n if (iteratorMatch[2]) {\n res.iterator2 = iteratorMatch[2].trim();\n }\n }\n else {\n res.alias = alias;\n }\n return res;\n }\n function processIf(el) {\n var exp = getAndRemoveAttr(el, 'v-if');\n if (exp) {\n el.if = exp;\n addIfCondition(el, {\n exp: exp,\n block: el\n });\n }\n else {\n if (getAndRemoveAttr(el, 'v-else') != null) {\n el.else = true;\n }\n var elseif = getAndRemoveAttr(el, 'v-else-if');\n if (elseif) {\n el.elseif = elseif;\n }\n }\n }\n function processIfConditions(el, parent) {\n var prev = findPrevElement(parent.children);\n if (prev && prev.if) {\n addIfCondition(prev, {\n exp: el.elseif,\n block: el\n });\n }\n else {\n warn(\"v-\".concat(el.elseif ? 'else-if=\"' + el.elseif + '\"' : 'else', \" \") +\n \"used on element <\".concat(el.tag, \"> without corresponding v-if.\"), el.rawAttrsMap[el.elseif ? 'v-else-if' : 'v-else']);\n }\n }\n function findPrevElement(children) {\n var i = children.length;\n while (i--) {\n if (children[i].type === 1) {\n return children[i];\n }\n else {\n if (children[i].text !== ' ') {\n warn(\"text \\\"\".concat(children[i].text.trim(), \"\\\" between v-if and v-else(-if) \") +\n \"will be ignored.\", children[i]);\n }\n children.pop();\n }\n }\n }\n function addIfCondition(el, condition) {\n if (!el.ifConditions) {\n el.ifConditions = [];\n }\n el.ifConditions.push(condition);\n }\n function processOnce(el) {\n var once = getAndRemoveAttr(el, 'v-once');\n if (once != null) {\n el.once = true;\n }\n }\n // handle content being passed to a component as slot,\n // e.g. <template slot=\"xxx\">, <div slot-scope=\"xxx\">\n function processSlotContent(el) {\n var slotScope;\n if (el.tag === 'template') {\n slotScope = getAndRemoveAttr(el, 'scope');\n /* istanbul ignore if */\n if (slotScope) {\n warn(\"the \\\"scope\\\" attribute for scoped slots have been deprecated and \" +\n \"replaced by \\\"slot-scope\\\" since 2.5. The new \\\"slot-scope\\\" attribute \" +\n \"can also be used on plain elements in addition to <template> to \" +\n \"denote scoped slots.\", el.rawAttrsMap['scope'], true);\n }\n el.slotScope = slotScope || getAndRemoveAttr(el, 'slot-scope');\n }\n else if ((slotScope = getAndRemoveAttr(el, 'slot-scope'))) {\n /* istanbul ignore if */\n if (el.attrsMap['v-for']) {\n warn(\"Ambiguous combined usage of slot-scope and v-for on <\".concat(el.tag, \"> \") +\n \"(v-for takes higher priority). Use a wrapper <template> for the \" +\n \"scoped slot to make it clearer.\", el.rawAttrsMap['slot-scope'], true);\n }\n el.slotScope = slotScope;\n }\n // slot=\"xxx\"\n var slotTarget = getBindingAttr(el, 'slot');\n if (slotTarget) {\n el.slotTarget = slotTarget === '\"\"' ? '\"default\"' : slotTarget;\n el.slotTargetDynamic = !!(el.attrsMap[':slot'] || el.attrsMap['v-bind:slot']);\n // preserve slot as an attribute for native shadow DOM compat\n // only for non-scoped slots.\n if (el.tag !== 'template' && !el.slotScope) {\n addAttr(el, 'slot', slotTarget, getRawBindingAttr(el, 'slot'));\n }\n }\n // 2.6 v-slot syntax\n {\n if (el.tag === 'template') {\n // v-slot on <template>\n var slotBinding = getAndRemoveAttrByRegex(el, slotRE);\n if (slotBinding) {\n {\n if (el.slotTarget || el.slotScope) {\n warn(\"Unexpected mixed usage of different slot syntaxes.\", el);\n }\n if (el.parent && !maybeComponent(el.parent)) {\n warn(\"<template v-slot> can only appear at the root level inside \" +\n \"the receiving component\", el);\n }\n }\n var _a = getSlotName(slotBinding), name_2 = _a.name, dynamic = _a.dynamic;\n el.slotTarget = name_2;\n el.slotTargetDynamic = dynamic;\n el.slotScope = slotBinding.value || emptySlotScopeToken; // force it into a scoped slot for perf\n }\n }\n else {\n // v-slot on component, denotes default slot\n var slotBinding = getAndRemoveAttrByRegex(el, slotRE);\n if (slotBinding) {\n {\n if (!maybeComponent(el)) {\n warn(\"v-slot can only be used on components or <template>.\", slotBinding);\n }\n if (el.slotScope || el.slotTarget) {\n warn(\"Unexpected mixed usage of different slot syntaxes.\", el);\n }\n if (el.scopedSlots) {\n warn(\"To avoid scope ambiguity, the default slot should also use \" +\n \"<template> syntax when there are other named slots.\", slotBinding);\n }\n }\n // add the component's children to its default slot\n var slots = el.scopedSlots || (el.scopedSlots = {});\n var _b = getSlotName(slotBinding), name_3 = _b.name, dynamic = _b.dynamic;\n var slotContainer_1 = (slots[name_3] = createASTElement('template', [], el));\n slotContainer_1.slotTarget = name_3;\n slotContainer_1.slotTargetDynamic = dynamic;\n slotContainer_1.children = el.children.filter(function (c) {\n if (!c.slotScope) {\n c.parent = slotContainer_1;\n return true;\n }\n });\n slotContainer_1.slotScope = slotBinding.value || emptySlotScopeToken;\n // remove children as they are returned from scopedSlots now\n el.children = [];\n // mark el non-plain so data gets generated\n el.plain = false;\n }\n }\n }\n }\n function getSlotName(binding) {\n var name = binding.name.replace(slotRE, '');\n if (!name) {\n if (binding.name[0] !== '#') {\n name = 'default';\n }\n else {\n warn(\"v-slot shorthand syntax requires a slot name.\", binding);\n }\n }\n return dynamicArgRE.test(name)\n ? // dynamic [name]\n { name: name.slice(1, -1), dynamic: true }\n : // static name\n { name: \"\\\"\".concat(name, \"\\\"\"), dynamic: false };\n }\n // handle <slot/> outlets\n function processSlotOutlet(el) {\n if (el.tag === 'slot') {\n el.slotName = getBindingAttr(el, 'name');\n if (el.key) {\n warn(\"`key` does not work on <slot> because slots are abstract outlets \" +\n \"and can possibly expand into multiple elements. \" +\n \"Use the key on a wrapping element instead.\", getRawBindingAttr(el, 'key'));\n }\n }\n }\n function processComponent(el) {\n var binding;\n if ((binding = getBindingAttr(el, 'is'))) {\n el.component = binding;\n }\n if (getAndRemoveAttr(el, 'inline-template') != null) {\n el.inlineTemplate = true;\n }\n }\n function processAttrs(el) {\n var list = el.attrsList;\n var i, l, name, rawName, value, modifiers, syncGen, isDynamic;\n for (i = 0, l = list.length; i < l; i++) {\n name = rawName = list[i].name;\n value = list[i].value;\n if (dirRE.test(name)) {\n // mark element as dynamic\n el.hasBindings = true;\n // modifiers\n modifiers = parseModifiers(name.replace(dirRE, ''));\n // support .foo shorthand syntax for the .prop modifier\n if (modifiers) {\n name = name.replace(modifierRE, '');\n }\n if (bindRE.test(name)) {\n // v-bind\n name = name.replace(bindRE, '');\n value = parseFilters(value);\n isDynamic = dynamicArgRE.test(name);\n if (isDynamic) {\n name = name.slice(1, -1);\n }\n if (value.trim().length === 0) {\n warn(\"The value for a v-bind expression cannot be empty. Found in \\\"v-bind:\".concat(name, \"\\\"\"));\n }\n if (modifiers) {\n if (modifiers.prop && !isDynamic) {\n name = camelize(name);\n if (name === 'innerHtml')\n name = 'innerHTML';\n }\n if (modifiers.camel && !isDynamic) {\n name = camelize(name);\n }\n if (modifiers.sync) {\n syncGen = genAssignmentCode(value, \"$event\");\n if (!isDynamic) {\n addHandler(el, \"update:\".concat(camelize(name)), syncGen, null, false, warn, list[i]);\n if (hyphenate(name) !== camelize(name)) {\n addHandler(el, \"update:\".concat(hyphenate(name)), syncGen, null, false, warn, list[i]);\n }\n }\n else {\n // handler w/ dynamic event name\n addHandler(el, \"\\\"update:\\\"+(\".concat(name, \")\"), syncGen, null, false, warn, list[i], true // dynamic\n );\n }\n }\n }\n if ((modifiers && modifiers.prop) ||\n (!el.component && platformMustUseProp(el.tag, el.attrsMap.type, name))) {\n addProp(el, name, value, list[i], isDynamic);\n }\n else {\n addAttr(el, name, value, list[i], isDynamic);\n }\n }\n else if (onRE.test(name)) {\n // v-on\n name = name.replace(onRE, '');\n isDynamic = dynamicArgRE.test(name);\n if (isDynamic) {\n name = name.slice(1, -1);\n }\n addHandler(el, name, value, modifiers, false, warn, list[i], isDynamic);\n }\n else {\n // normal directives\n name = name.replace(dirRE, '');\n // parse arg\n var argMatch = name.match(argRE);\n var arg = argMatch && argMatch[1];\n isDynamic = false;\n if (arg) {\n name = name.slice(0, -(arg.length + 1));\n if (dynamicArgRE.test(arg)) {\n arg = arg.slice(1, -1);\n isDynamic = true;\n }\n }\n addDirective(el, name, rawName, value, arg, isDynamic, modifiers, list[i]);\n if (name === 'model') {\n checkForAliasModel(el, value);\n }\n }\n }\n else {\n // literal attribute\n {\n var res = parseText(value, delimiters);\n if (res) {\n warn(\"\".concat(name, \"=\\\"\").concat(value, \"\\\": \") +\n 'Interpolation inside attributes has been removed. ' +\n 'Use v-bind or the colon shorthand instead. For example, ' +\n 'instead of <div id=\"{{ val }}\">, use <div :id=\"val\">.', list[i]);\n }\n }\n addAttr(el, name, JSON.stringify(value), list[i]);\n // #6887 firefox doesn't update muted state if set via attribute\n // even immediately after element creation\n if (!el.component &&\n name === 'muted' &&\n platformMustUseProp(el.tag, el.attrsMap.type, name)) {\n addProp(el, name, 'true', list[i]);\n }\n }\n }\n }\n function checkInFor(el) {\n var parent = el;\n while (parent) {\n if (parent.for !== undefined) {\n return true;\n }\n parent = parent.parent;\n }\n return false;\n }\n function parseModifiers(name) {\n var match = name.match(modifierRE);\n if (match) {\n var ret_1 = {};\n match.forEach(function (m) {\n ret_1[m.slice(1)] = true;\n });\n return ret_1;\n }\n }\n function makeAttrsMap(attrs) {\n var map = {};\n for (var i = 0, l = attrs.length; i < l; i++) {\n if (map[attrs[i].name] && !isIE && !isEdge) {\n warn('duplicate attribute: ' + attrs[i].name, attrs[i]);\n }\n map[attrs[i].name] = attrs[i].value;\n }\n return map;\n }\n // for script (e.g. type=\"x/template\") or style, do not decode content\n function isTextTag(el) {\n return el.tag === 'script' || el.tag === 'style';\n }\n function isForbiddenTag(el) {\n return (el.tag === 'style' ||\n (el.tag === 'script' &&\n (!el.attrsMap.type || el.attrsMap.type === 'text/javascript')));\n }\n var ieNSBug = /^xmlns:NS\\d+/;\n var ieNSPrefix = /^NS\\d+:/;\n /* istanbul ignore next */\n function guardIESVGBug(attrs) {\n var res = [];\n for (var i = 0; i < attrs.length; i++) {\n var attr = attrs[i];\n if (!ieNSBug.test(attr.name)) {\n attr.name = attr.name.replace(ieNSPrefix, '');\n res.push(attr);\n }\n }\n return res;\n }\n function checkForAliasModel(el, value) {\n var _el = el;\n while (_el) {\n if (_el.for && _el.alias === value) {\n warn(\"<\".concat(el.tag, \" v-model=\\\"\").concat(value, \"\\\">: \") +\n \"You are binding v-model directly to a v-for iteration alias. \" +\n \"This will not be able to modify the v-for source array because \" +\n \"writing to the alias is like modifying a function local variable. \" +\n \"Consider using an array of objects and use v-model on an object property instead.\", el.rawAttrsMap['v-model']);\n }\n _el = _el.parent;\n }\n }\n\n /**\n * Expand input[v-model] with dynamic type bindings into v-if-else chains\n * Turn this:\n * <input v-model=\"data[type]\" :type=\"type\">\n * into this:\n * <input v-if=\"type === 'checkbox'\" type=\"checkbox\" v-model=\"data[type]\">\n * <input v-else-if=\"type === 'radio'\" type=\"radio\" v-model=\"data[type]\">\n * <input v-else :type=\"type\" v-model=\"data[type]\">\n */\n function preTransformNode(el, options) {\n if (el.tag === 'input') {\n var map = el.attrsMap;\n if (!map['v-model']) {\n return;\n }\n var typeBinding = void 0;\n if (map[':type'] || map['v-bind:type']) {\n typeBinding = getBindingAttr(el, 'type');\n }\n if (!map.type && !typeBinding && map['v-bind']) {\n typeBinding = \"(\".concat(map['v-bind'], \").type\");\n }\n if (typeBinding) {\n var ifCondition = getAndRemoveAttr(el, 'v-if', true);\n var ifConditionExtra = ifCondition ? \"&&(\".concat(ifCondition, \")\") : \"\";\n var hasElse = getAndRemoveAttr(el, 'v-else', true) != null;\n var elseIfCondition = getAndRemoveAttr(el, 'v-else-if', true);\n // 1. checkbox\n var branch0 = cloneASTElement(el);\n // process for on the main node\n processFor(branch0);\n addRawAttr(branch0, 'type', 'checkbox');\n processElement(branch0, options);\n branch0.processed = true; // prevent it from double-processed\n branch0.if = \"(\".concat(typeBinding, \")==='checkbox'\") + ifConditionExtra;\n addIfCondition(branch0, {\n exp: branch0.if,\n block: branch0\n });\n // 2. add radio else-if condition\n var branch1 = cloneASTElement(el);\n getAndRemoveAttr(branch1, 'v-for', true);\n addRawAttr(branch1, 'type', 'radio');\n processElement(branch1, options);\n addIfCondition(branch0, {\n exp: \"(\".concat(typeBinding, \")==='radio'\") + ifConditionExtra,\n block: branch1\n });\n // 3. other\n var branch2 = cloneASTElement(el);\n getAndRemoveAttr(branch2, 'v-for', true);\n addRawAttr(branch2, ':type', typeBinding);\n processElement(branch2, options);\n addIfCondition(branch0, {\n exp: ifCondition,\n block: branch2\n });\n if (hasElse) {\n branch0.else = true;\n }\n else if (elseIfCondition) {\n branch0.elseif = elseIfCondition;\n }\n return branch0;\n }\n }\n }\n function cloneASTElement(el) {\n return createASTElement(el.tag, el.attrsList.slice(), el.parent);\n }\n var model = {\n preTransformNode: preTransformNode\n };\n\n var modules = [klass, style, model];\n\n function text(el, dir) {\n if (dir.value) {\n addProp(el, 'textContent', \"_s(\".concat(dir.value, \")\"), dir);\n }\n }\n\n function html(el, dir) {\n if (dir.value) {\n addProp(el, 'innerHTML', \"_s(\".concat(dir.value, \")\"), dir);\n }\n }\n\n var directives = {\n model: model$1,\n text: text,\n html: html\n };\n\n var baseOptions = {\n expectHTML: true,\n modules: modules,\n directives: directives,\n isPreTag: isPreTag,\n isUnaryTag: isUnaryTag,\n mustUseProp: mustUseProp,\n canBeLeftOpenTag: canBeLeftOpenTag,\n isReservedTag: isReservedTag,\n getTagNamespace: getTagNamespace,\n staticKeys: genStaticKeys$1(modules)\n };\n\n var isStaticKey;\n var isPlatformReservedTag;\n var genStaticKeysCached = cached(genStaticKeys);\n /**\n * Goal of the optimizer: walk the generated template AST tree\n * and detect sub-trees that are purely static, i.e. parts of\n * the DOM that never needs to change.\n *\n * Once we detect these sub-trees, we can:\n *\n * 1. Hoist them into constants, so that we no longer need to\n * create fresh nodes for them on each re-render;\n * 2. Completely skip them in the patching process.\n */\n function optimize(root, options) {\n if (!root)\n return;\n isStaticKey = genStaticKeysCached(options.staticKeys || '');\n isPlatformReservedTag = options.isReservedTag || no;\n // first pass: mark all non-static nodes.\n markStatic(root);\n // second pass: mark static roots.\n markStaticRoots(root, false);\n }\n function genStaticKeys(keys) {\n return makeMap('type,tag,attrsList,attrsMap,plain,parent,children,attrs,start,end,rawAttrsMap' +\n (keys ? ',' + keys : ''));\n }\n function markStatic(node) {\n node.static = isStatic(node);\n if (node.type === 1) {\n // do not make component slot content static. this avoids\n // 1. components not able to mutate slot nodes\n // 2. static slot content fails for hot-reloading\n if (!isPlatformReservedTag(node.tag) &&\n node.tag !== 'slot' &&\n node.attrsMap['inline-template'] == null) {\n return;\n }\n for (var i = 0, l = node.children.length; i < l; i++) {\n var child = node.children[i];\n markStatic(child);\n if (!child.static) {\n node.static = false;\n }\n }\n if (node.ifConditions) {\n for (var i = 1, l = node.ifConditions.length; i < l; i++) {\n var block = node.ifConditions[i].block;\n markStatic(block);\n if (!block.static) {\n node.static = false;\n }\n }\n }\n }\n }\n function markStaticRoots(node, isInFor) {\n if (node.type === 1) {\n if (node.static || node.once) {\n node.staticInFor = isInFor;\n }\n // For a node to qualify as a static root, it should have children that\n // are not just static text. Otherwise the cost of hoisting out will\n // outweigh the benefits and it's better off to just always render it fresh.\n if (node.static &&\n node.children.length &&\n !(node.children.length === 1 && node.children[0].type === 3)) {\n node.staticRoot = true;\n return;\n }\n else {\n node.staticRoot = false;\n }\n if (node.children) {\n for (var i = 0, l = node.children.length; i < l; i++) {\n markStaticRoots(node.children[i], isInFor || !!node.for);\n }\n }\n if (node.ifConditions) {\n for (var i = 1, l = node.ifConditions.length; i < l; i++) {\n markStaticRoots(node.ifConditions[i].block, isInFor);\n }\n }\n }\n }\n function isStatic(node) {\n if (node.type === 2) {\n // expression\n return false;\n }\n if (node.type === 3) {\n // text\n return true;\n }\n return !!(node.pre ||\n (!node.hasBindings && // no dynamic bindings\n !node.if &&\n !node.for && // not v-if or v-for or v-else\n !isBuiltInTag(node.tag) && // not a built-in\n isPlatformReservedTag(node.tag) && // not a component\n !isDirectChildOfTemplateFor(node) &&\n Object.keys(node).every(isStaticKey)));\n }\n function isDirectChildOfTemplateFor(node) {\n while (node.parent) {\n node = node.parent;\n if (node.tag !== 'template') {\n return false;\n }\n if (node.for) {\n return true;\n }\n }\n return false;\n }\n\n var fnExpRE = /^([\\w$_]+|\\([^)]*?\\))\\s*=>|^function(?:\\s+[\\w$]+)?\\s*\\(/;\n var fnInvokeRE = /\\([^)]*?\\);*$/;\n var simplePathRE = /^[A-Za-z_$][\\w$]*(?:\\.[A-Za-z_$][\\w$]*|\\['[^']*?']|\\[\"[^\"]*?\"]|\\[\\d+]|\\[[A-Za-z_$][\\w$]*])*$/;\n // KeyboardEvent.keyCode aliases\n var keyCodes = {\n esc: 27,\n tab: 9,\n enter: 13,\n space: 32,\n up: 38,\n left: 37,\n right: 39,\n down: 40,\n delete: [8, 46]\n };\n // KeyboardEvent.key aliases\n var keyNames = {\n // #7880: IE11 and Edge use `Esc` for Escape key name.\n esc: ['Esc', 'Escape'],\n tab: 'Tab',\n enter: 'Enter',\n // #9112: IE11 uses `Spacebar` for Space key name.\n space: [' ', 'Spacebar'],\n // #7806: IE11 uses key names without `Arrow` prefix for arrow keys.\n up: ['Up', 'ArrowUp'],\n left: ['Left', 'ArrowLeft'],\n right: ['Right', 'ArrowRight'],\n down: ['Down', 'ArrowDown'],\n // #9112: IE11 uses `Del` for Delete key name.\n delete: ['Backspace', 'Delete', 'Del']\n };\n // #4868: modifiers that prevent the execution of the listener\n // need to explicitly return null so that we can determine whether to remove\n // the listener for .once\n var genGuard = function (condition) { return \"if(\".concat(condition, \")return null;\"); };\n var modifierCode = {\n stop: '$event.stopPropagation();',\n prevent: '$event.preventDefault();',\n self: genGuard(\"$event.target !== $event.currentTarget\"),\n ctrl: genGuard(\"!$event.ctrlKey\"),\n shift: genGuard(\"!$event.shiftKey\"),\n alt: genGuard(\"!$event.altKey\"),\n meta: genGuard(\"!$event.metaKey\"),\n left: genGuard(\"'button' in $event && $event.button !== 0\"),\n middle: genGuard(\"'button' in $event && $event.button !== 1\"),\n right: genGuard(\"'button' in $event && $event.button !== 2\")\n };\n function genHandlers(events, isNative) {\n var prefix = isNative ? 'nativeOn:' : 'on:';\n var staticHandlers = \"\";\n var dynamicHandlers = \"\";\n for (var name_1 in events) {\n var handlerCode = genHandler(events[name_1]);\n //@ts-expect-error\n if (events[name_1] && events[name_1].dynamic) {\n dynamicHandlers += \"\".concat(name_1, \",\").concat(handlerCode, \",\");\n }\n else {\n staticHandlers += \"\\\"\".concat(name_1, \"\\\":\").concat(handlerCode, \",\");\n }\n }\n staticHandlers = \"{\".concat(staticHandlers.slice(0, -1), \"}\");\n if (dynamicHandlers) {\n return prefix + \"_d(\".concat(staticHandlers, \",[\").concat(dynamicHandlers.slice(0, -1), \"])\");\n }\n else {\n return prefix + staticHandlers;\n }\n }\n function genHandler(handler) {\n if (!handler) {\n return 'function(){}';\n }\n if (Array.isArray(handler)) {\n return \"[\".concat(handler.map(function (handler) { return genHandler(handler); }).join(','), \"]\");\n }\n var isMethodPath = simplePathRE.test(handler.value);\n var isFunctionExpression = fnExpRE.test(handler.value);\n var isFunctionInvocation = simplePathRE.test(handler.value.replace(fnInvokeRE, ''));\n if (!handler.modifiers) {\n if (isMethodPath || isFunctionExpression) {\n return handler.value;\n }\n return \"function($event){\".concat(isFunctionInvocation ? \"return \".concat(handler.value) : handler.value, \"}\"); // inline statement\n }\n else {\n var code = '';\n var genModifierCode = '';\n var keys = [];\n var _loop_1 = function (key) {\n if (modifierCode[key]) {\n genModifierCode += modifierCode[key];\n // left/right\n if (keyCodes[key]) {\n keys.push(key);\n }\n }\n else if (key === 'exact') {\n var modifiers_1 = handler.modifiers;\n genModifierCode += genGuard(['ctrl', 'shift', 'alt', 'meta']\n .filter(function (keyModifier) { return !modifiers_1[keyModifier]; })\n .map(function (keyModifier) { return \"$event.\".concat(keyModifier, \"Key\"); })\n .join('||'));\n }\n else {\n keys.push(key);\n }\n };\n for (var key in handler.modifiers) {\n _loop_1(key);\n }\n if (keys.length) {\n code += genKeyFilter(keys);\n }\n // Make sure modifiers like prevent and stop get executed after key filtering\n if (genModifierCode) {\n code += genModifierCode;\n }\n var handlerCode = isMethodPath\n ? \"return \".concat(handler.value, \".apply(null, arguments)\")\n : isFunctionExpression\n ? \"return (\".concat(handler.value, \").apply(null, arguments)\")\n : isFunctionInvocation\n ? \"return \".concat(handler.value)\n : handler.value;\n return \"function($event){\".concat(code).concat(handlerCode, \"}\");\n }\n }\n function genKeyFilter(keys) {\n return (\n // make sure the key filters only apply to KeyboardEvents\n // #9441: can't use 'keyCode' in $event because Chrome autofill fires fake\n // key events that do not have keyCode property...\n \"if(!$event.type.indexOf('key')&&\" +\n \"\".concat(keys.map(genFilterCode).join('&&'), \")return null;\"));\n }\n function genFilterCode(key) {\n var keyVal = parseInt(key, 10);\n if (keyVal) {\n return \"$event.keyCode!==\".concat(keyVal);\n }\n var keyCode = keyCodes[key];\n var keyName = keyNames[key];\n return (\"_k($event.keyCode,\" +\n \"\".concat(JSON.stringify(key), \",\") +\n \"\".concat(JSON.stringify(keyCode), \",\") +\n \"$event.key,\" +\n \"\".concat(JSON.stringify(keyName)) +\n \")\");\n }\n\n function on(el, dir) {\n if (dir.modifiers) {\n warn$2(\"v-on without argument does not support modifiers.\");\n }\n el.wrapListeners = function (code) { return \"_g(\".concat(code, \",\").concat(dir.value, \")\"); };\n }\n\n function bind(el, dir) {\n el.wrapData = function (code) {\n return \"_b(\".concat(code, \",'\").concat(el.tag, \"',\").concat(dir.value, \",\").concat(dir.modifiers && dir.modifiers.prop ? 'true' : 'false').concat(dir.modifiers && dir.modifiers.sync ? ',true' : '', \")\");\n };\n }\n\n var baseDirectives = {\n on: on,\n bind: bind,\n cloak: noop\n };\n\n var CodegenState = /** @class */ (function () {\n function CodegenState(options) {\n this.options = options;\n this.warn = options.warn || baseWarn;\n this.transforms = pluckModuleFunction(options.modules, 'transformCode');\n this.dataGenFns = pluckModuleFunction(options.modules, 'genData');\n this.directives = extend(extend({}, baseDirectives), options.directives);\n var isReservedTag = options.isReservedTag || no;\n this.maybeComponent = function (el) {\n return !!el.component || !isReservedTag(el.tag);\n };\n this.onceId = 0;\n this.staticRenderFns = [];\n this.pre = false;\n }\n return CodegenState;\n }());\n function generate(ast, options) {\n var state = new CodegenState(options);\n // fix #11483, Root level <script> tags should not be rendered.\n var code = ast\n ? ast.tag === 'script'\n ? 'null'\n : genElement(ast, state)\n : '_c(\"div\")';\n return {\n render: \"with(this){return \".concat(code, \"}\"),\n staticRenderFns: state.staticRenderFns\n };\n }\n function genElement(el, state) {\n if (el.parent) {\n el.pre = el.pre || el.parent.pre;\n }\n if (el.staticRoot && !el.staticProcessed) {\n return genStatic(el, state);\n }\n else if (el.once && !el.onceProcessed) {\n return genOnce(el, state);\n }\n else if (el.for && !el.forProcessed) {\n return genFor(el, state);\n }\n else if (el.if && !el.ifProcessed) {\n return genIf(el, state);\n }\n else if (el.tag === 'template' && !el.slotTarget && !state.pre) {\n return genChildren(el, state) || 'void 0';\n }\n else if (el.tag === 'slot') {\n return genSlot(el, state);\n }\n else {\n // component or element\n var code = void 0;\n if (el.component) {\n code = genComponent(el.component, el, state);\n }\n else {\n var data = void 0;\n var maybeComponent = state.maybeComponent(el);\n if (!el.plain || (el.pre && maybeComponent)) {\n data = genData(el, state);\n }\n var tag \n // check if this is a component in <script setup>\n = void 0;\n // check if this is a component in <script setup>\n var bindings = state.options.bindings;\n if (maybeComponent && bindings && bindings.__isScriptSetup !== false) {\n tag = checkBindingType(bindings, el.tag);\n }\n if (!tag)\n tag = \"'\".concat(el.tag, \"'\");\n var children = el.inlineTemplate ? null : genChildren(el, state, true);\n code = \"_c(\".concat(tag).concat(data ? \",\".concat(data) : '' // data\n ).concat(children ? \",\".concat(children) : '' // children\n , \")\");\n }\n // module transforms\n for (var i = 0; i < state.transforms.length; i++) {\n code = state.transforms[i](el, code);\n }\n return code;\n }\n }\n function checkBindingType(bindings, key) {\n var camelName = camelize(key);\n var PascalName = capitalize(camelName);\n var checkType = function (type) {\n if (bindings[key] === type) {\n return key;\n }\n if (bindings[camelName] === type) {\n return camelName;\n }\n if (bindings[PascalName] === type) {\n return PascalName;\n }\n };\n var fromConst = checkType(\"setup-const\" /* BindingTypes.SETUP_CONST */) ||\n checkType(\"setup-reactive-const\" /* BindingTypes.SETUP_REACTIVE_CONST */);\n if (fromConst) {\n return fromConst;\n }\n var fromMaybeRef = checkType(\"setup-let\" /* BindingTypes.SETUP_LET */) ||\n checkType(\"setup-ref\" /* BindingTypes.SETUP_REF */) ||\n checkType(\"setup-maybe-ref\" /* BindingTypes.SETUP_MAYBE_REF */);\n if (fromMaybeRef) {\n return fromMaybeRef;\n }\n }\n // hoist static sub-trees out\n function genStatic(el, state) {\n el.staticProcessed = true;\n // Some elements (templates) need to behave differently inside of a v-pre\n // node. All pre nodes are static roots, so we can use this as a location to\n // wrap a state change and reset it upon exiting the pre node.\n var originalPreState = state.pre;\n if (el.pre) {\n state.pre = el.pre;\n }\n state.staticRenderFns.push(\"with(this){return \".concat(genElement(el, state), \"}\"));\n state.pre = originalPreState;\n return \"_m(\".concat(state.staticRenderFns.length - 1).concat(el.staticInFor ? ',true' : '', \")\");\n }\n // v-once\n function genOnce(el, state) {\n el.onceProcessed = true;\n if (el.if && !el.ifProcessed) {\n return genIf(el, state);\n }\n else if (el.staticInFor) {\n var key = '';\n var parent_1 = el.parent;\n while (parent_1) {\n if (parent_1.for) {\n key = parent_1.key;\n break;\n }\n parent_1 = parent_1.parent;\n }\n if (!key) {\n state.warn(\"v-once can only be used inside v-for that is keyed. \", el.rawAttrsMap['v-once']);\n return genElement(el, state);\n }\n return \"_o(\".concat(genElement(el, state), \",\").concat(state.onceId++, \",\").concat(key, \")\");\n }\n else {\n return genStatic(el, state);\n }\n }\n function genIf(el, state, altGen, altEmpty) {\n el.ifProcessed = true; // avoid recursion\n return genIfConditions(el.ifConditions.slice(), state, altGen, altEmpty);\n }\n function genIfConditions(conditions, state, altGen, altEmpty) {\n if (!conditions.length) {\n return altEmpty || '_e()';\n }\n var condition = conditions.shift();\n if (condition.exp) {\n return \"(\".concat(condition.exp, \")?\").concat(genTernaryExp(condition.block), \":\").concat(genIfConditions(conditions, state, altGen, altEmpty));\n }\n else {\n return \"\".concat(genTernaryExp(condition.block));\n }\n // v-if with v-once should generate code like (a)?_m(0):_m(1)\n function genTernaryExp(el) {\n return altGen\n ? altGen(el, state)\n : el.once\n ? genOnce(el, state)\n : genElement(el, state);\n }\n }\n function genFor(el, state, altGen, altHelper) {\n var exp = el.for;\n var alias = el.alias;\n var iterator1 = el.iterator1 ? \",\".concat(el.iterator1) : '';\n var iterator2 = el.iterator2 ? \",\".concat(el.iterator2) : '';\n if (state.maybeComponent(el) &&\n el.tag !== 'slot' &&\n el.tag !== 'template' &&\n !el.key) {\n state.warn(\"<\".concat(el.tag, \" v-for=\\\"\").concat(alias, \" in \").concat(exp, \"\\\">: component lists rendered with \") +\n \"v-for should have explicit keys. \" +\n \"See https://v2.vuejs.org/v2/guide/list.html#key for more info.\", el.rawAttrsMap['v-for'], true /* tip */);\n }\n el.forProcessed = true; // avoid recursion\n return (\"\".concat(altHelper || '_l', \"((\").concat(exp, \"),\") +\n \"function(\".concat(alias).concat(iterator1).concat(iterator2, \"){\") +\n \"return \".concat((altGen || genElement)(el, state)) +\n '})');\n }\n function genData(el, state) {\n var data = '{';\n // directives first.\n // directives may mutate the el's other properties before they are generated.\n var dirs = genDirectives(el, state);\n if (dirs)\n data += dirs + ',';\n // key\n if (el.key) {\n data += \"key:\".concat(el.key, \",\");\n }\n // ref\n if (el.ref) {\n data += \"ref:\".concat(el.ref, \",\");\n }\n if (el.refInFor) {\n data += \"refInFor:true,\";\n }\n // pre\n if (el.pre) {\n data += \"pre:true,\";\n }\n // record original tag name for components using \"is\" attribute\n if (el.component) {\n data += \"tag:\\\"\".concat(el.tag, \"\\\",\");\n }\n // module data generation functions\n for (var i = 0; i < state.dataGenFns.length; i++) {\n data += state.dataGenFns[i](el);\n }\n // attributes\n if (el.attrs) {\n data += \"attrs:\".concat(genProps(el.attrs), \",\");\n }\n // DOM props\n if (el.props) {\n data += \"domProps:\".concat(genProps(el.props), \",\");\n }\n // event handlers\n if (el.events) {\n data += \"\".concat(genHandlers(el.events, false), \",\");\n }\n if (el.nativeEvents) {\n data += \"\".concat(genHandlers(el.nativeEvents, true), \",\");\n }\n // slot target\n // only for non-scoped slots\n if (el.slotTarget && !el.slotScope) {\n data += \"slot:\".concat(el.slotTarget, \",\");\n }\n // scoped slots\n if (el.scopedSlots) {\n data += \"\".concat(genScopedSlots(el, el.scopedSlots, state), \",\");\n }\n // component v-model\n if (el.model) {\n data += \"model:{value:\".concat(el.model.value, \",callback:\").concat(el.model.callback, \",expression:\").concat(el.model.expression, \"},\");\n }\n // inline-template\n if (el.inlineTemplate) {\n var inlineTemplate = genInlineTemplate(el, state);\n if (inlineTemplate) {\n data += \"\".concat(inlineTemplate, \",\");\n }\n }\n data = data.replace(/,$/, '') + '}';\n // v-bind dynamic argument wrap\n // v-bind with dynamic arguments must be applied using the same v-bind object\n // merge helper so that class/style/mustUseProp attrs are handled correctly.\n if (el.dynamicAttrs) {\n data = \"_b(\".concat(data, \",\\\"\").concat(el.tag, \"\\\",\").concat(genProps(el.dynamicAttrs), \")\");\n }\n // v-bind data wrap\n if (el.wrapData) {\n data = el.wrapData(data);\n }\n // v-on data wrap\n if (el.wrapListeners) {\n data = el.wrapListeners(data);\n }\n return data;\n }\n function genDirectives(el, state) {\n var dirs = el.directives;\n if (!dirs)\n return;\n var res = 'directives:[';\n var hasRuntime = false;\n var i, l, dir, needRuntime;\n for (i = 0, l = dirs.length; i < l; i++) {\n dir = dirs[i];\n needRuntime = true;\n var gen = state.directives[dir.name];\n if (gen) {\n // compile-time directive that manipulates AST.\n // returns true if it also needs a runtime counterpart.\n needRuntime = !!gen(el, dir, state.warn);\n }\n if (needRuntime) {\n hasRuntime = true;\n res += \"{name:\\\"\".concat(dir.name, \"\\\",rawName:\\\"\").concat(dir.rawName, \"\\\"\").concat(dir.value\n ? \",value:(\".concat(dir.value, \"),expression:\").concat(JSON.stringify(dir.value))\n : '').concat(dir.arg ? \",arg:\".concat(dir.isDynamicArg ? dir.arg : \"\\\"\".concat(dir.arg, \"\\\"\")) : '').concat(dir.modifiers ? \",modifiers:\".concat(JSON.stringify(dir.modifiers)) : '', \"},\");\n }\n }\n if (hasRuntime) {\n return res.slice(0, -1) + ']';\n }\n }\n function genInlineTemplate(el, state) {\n var ast = el.children[0];\n if ((el.children.length !== 1 || ast.type !== 1)) {\n state.warn('Inline-template components must have exactly one child element.', { start: el.start });\n }\n if (ast && ast.type === 1) {\n var inlineRenderFns = generate(ast, state.options);\n return \"inlineTemplate:{render:function(){\".concat(inlineRenderFns.render, \"},staticRenderFns:[\").concat(inlineRenderFns.staticRenderFns\n .map(function (code) { return \"function(){\".concat(code, \"}\"); })\n .join(','), \"]}\");\n }\n }\n function genScopedSlots(el, slots, state) {\n // by default scoped slots are considered \"stable\", this allows child\n // components with only scoped slots to skip forced updates from parent.\n // but in some cases we have to bail-out of this optimization\n // for example if the slot contains dynamic names, has v-if or v-for on them...\n var needsForceUpdate = el.for ||\n Object.keys(slots).some(function (key) {\n var slot = slots[key];\n return (slot.slotTargetDynamic || slot.if || slot.for || containsSlotChild(slot) // is passing down slot from parent which may be dynamic\n );\n });\n // #9534: if a component with scoped slots is inside a conditional branch,\n // it's possible for the same component to be reused but with different\n // compiled slot content. To avoid that, we generate a unique key based on\n // the generated code of all the slot contents.\n var needsKey = !!el.if;\n // OR when it is inside another scoped slot or v-for (the reactivity may be\n // disconnected due to the intermediate scope variable)\n // #9438, #9506\n // TODO: this can be further optimized by properly analyzing in-scope bindings\n // and skip force updating ones that do not actually use scope variables.\n if (!needsForceUpdate) {\n var parent_2 = el.parent;\n while (parent_2) {\n if ((parent_2.slotScope && parent_2.slotScope !== emptySlotScopeToken) ||\n parent_2.for) {\n needsForceUpdate = true;\n break;\n }\n if (parent_2.if) {\n needsKey = true;\n }\n parent_2 = parent_2.parent;\n }\n }\n var generatedSlots = Object.keys(slots)\n .map(function (key) { return genScopedSlot(slots[key], state); })\n .join(',');\n return \"scopedSlots:_u([\".concat(generatedSlots, \"]\").concat(needsForceUpdate ? \",null,true\" : \"\").concat(!needsForceUpdate && needsKey ? \",null,false,\".concat(hash(generatedSlots)) : \"\", \")\");\n }\n function hash(str) {\n var hash = 5381;\n var i = str.length;\n while (i) {\n hash = (hash * 33) ^ str.charCodeAt(--i);\n }\n return hash >>> 0;\n }\n function containsSlotChild(el) {\n if (el.type === 1) {\n if (el.tag === 'slot') {\n return true;\n }\n return el.children.some(containsSlotChild);\n }\n return false;\n }\n function genScopedSlot(el, state) {\n var isLegacySyntax = el.attrsMap['slot-scope'];\n if (el.if && !el.ifProcessed && !isLegacySyntax) {\n return genIf(el, state, genScopedSlot, \"null\");\n }\n if (el.for && !el.forProcessed) {\n return genFor(el, state, genScopedSlot);\n }\n var slotScope = el.slotScope === emptySlotScopeToken ? \"\" : String(el.slotScope);\n var fn = \"function(\".concat(slotScope, \"){\") +\n \"return \".concat(el.tag === 'template'\n ? el.if && isLegacySyntax\n ? \"(\".concat(el.if, \")?\").concat(genChildren(el, state) || 'undefined', \":undefined\")\n : genChildren(el, state) || 'undefined'\n : genElement(el, state), \"}\");\n // reverse proxy v-slot without scope on this.$slots\n var reverseProxy = slotScope ? \"\" : \",proxy:true\";\n return \"{key:\".concat(el.slotTarget || \"\\\"default\\\"\", \",fn:\").concat(fn).concat(reverseProxy, \"}\");\n }\n function genChildren(el, state, checkSkip, altGenElement, altGenNode) {\n var children = el.children;\n if (children.length) {\n var el_1 = children[0];\n // optimize single v-for\n if (children.length === 1 &&\n el_1.for &&\n el_1.tag !== 'template' &&\n el_1.tag !== 'slot') {\n var normalizationType_1 = checkSkip\n ? state.maybeComponent(el_1)\n ? \",1\"\n : \",0\"\n : \"\";\n return \"\".concat((altGenElement || genElement)(el_1, state)).concat(normalizationType_1);\n }\n var normalizationType = checkSkip\n ? getNormalizationType(children, state.maybeComponent)\n : 0;\n var gen_1 = altGenNode || genNode;\n return \"[\".concat(children.map(function (c) { return gen_1(c, state); }).join(','), \"]\").concat(normalizationType ? \",\".concat(normalizationType) : '');\n }\n }\n // determine the normalization needed for the children array.\n // 0: no normalization needed\n // 1: simple normalization needed (possible 1-level deep nested array)\n // 2: full normalization needed\n function getNormalizationType(children, maybeComponent) {\n var res = 0;\n for (var i = 0; i < children.length; i++) {\n var el = children[i];\n if (el.type !== 1) {\n continue;\n }\n if (needsNormalization(el) ||\n (el.ifConditions &&\n el.ifConditions.some(function (c) { return needsNormalization(c.block); }))) {\n res = 2;\n break;\n }\n if (maybeComponent(el) ||\n (el.ifConditions && el.ifConditions.some(function (c) { return maybeComponent(c.block); }))) {\n res = 1;\n }\n }\n return res;\n }\n function needsNormalization(el) {\n return el.for !== undefined || el.tag === 'template' || el.tag === 'slot';\n }\n function genNode(node, state) {\n if (node.type === 1) {\n return genElement(node, state);\n }\n else if (node.type === 3 && node.isComment) {\n return genComment(node);\n }\n else {\n return genText(node);\n }\n }\n function genText(text) {\n return \"_v(\".concat(text.type === 2\n ? text.expression // no need for () because already wrapped in _s()\n : transformSpecialNewlines(JSON.stringify(text.text)), \")\");\n }\n function genComment(comment) {\n return \"_e(\".concat(JSON.stringify(comment.text), \")\");\n }\n function genSlot(el, state) {\n var slotName = el.slotName || '\"default\"';\n var children = genChildren(el, state);\n var res = \"_t(\".concat(slotName).concat(children ? \",function(){return \".concat(children, \"}\") : '');\n var attrs = el.attrs || el.dynamicAttrs\n ? genProps((el.attrs || []).concat(el.dynamicAttrs || []).map(function (attr) { return ({\n // slot props are camelized\n name: camelize(attr.name),\n value: attr.value,\n dynamic: attr.dynamic\n }); }))\n : null;\n var bind = el.attrsMap['v-bind'];\n if ((attrs || bind) && !children) {\n res += \",null\";\n }\n if (attrs) {\n res += \",\".concat(attrs);\n }\n if (bind) {\n res += \"\".concat(attrs ? '' : ',null', \",\").concat(bind);\n }\n return res + ')';\n }\n // componentName is el.component, take it as argument to shun flow's pessimistic refinement\n function genComponent(componentName, el, state) {\n var children = el.inlineTemplate ? null : genChildren(el, state, true);\n return \"_c(\".concat(componentName, \",\").concat(genData(el, state)).concat(children ? \",\".concat(children) : '', \")\");\n }\n function genProps(props) {\n var staticProps = \"\";\n var dynamicProps = \"\";\n for (var i = 0; i < props.length; i++) {\n var prop = props[i];\n var value = transformSpecialNewlines(prop.value);\n if (prop.dynamic) {\n dynamicProps += \"\".concat(prop.name, \",\").concat(value, \",\");\n }\n else {\n staticProps += \"\\\"\".concat(prop.name, \"\\\":\").concat(value, \",\");\n }\n }\n staticProps = \"{\".concat(staticProps.slice(0, -1), \"}\");\n if (dynamicProps) {\n return \"_d(\".concat(staticProps, \",[\").concat(dynamicProps.slice(0, -1), \"])\");\n }\n else {\n return staticProps;\n }\n }\n // #3895, #4268\n function transformSpecialNewlines(text) {\n return text.replace(/\\u2028/g, '\\\\u2028').replace(/\\u2029/g, '\\\\u2029');\n }\n\n // these keywords should not appear inside expressions, but operators like\n // typeof, instanceof and in are allowed\n var prohibitedKeywordRE = new RegExp('\\\\b' +\n ('do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,' +\n 'super,throw,while,yield,delete,export,import,return,switch,default,' +\n 'extends,finally,continue,debugger,function,arguments')\n .split(',')\n .join('\\\\b|\\\\b') +\n '\\\\b');\n // these unary operators should not be used as property/method names\n var unaryOperatorsRE = new RegExp('\\\\b' +\n 'delete,typeof,void'.split(',').join('\\\\s*\\\\([^\\\\)]*\\\\)|\\\\b') +\n '\\\\s*\\\\([^\\\\)]*\\\\)');\n // strip strings in expressions\n var stripStringRE = /'(?:[^'\\\\]|\\\\.)*'|\"(?:[^\"\\\\]|\\\\.)*\"|`(?:[^`\\\\]|\\\\.)*\\$\\{|\\}(?:[^`\\\\]|\\\\.)*`|`(?:[^`\\\\]|\\\\.)*`/g;\n // detect problematic expressions in a template\n function detectErrors(ast, warn) {\n if (ast) {\n checkNode(ast, warn);\n }\n }\n function checkNode(node, warn) {\n if (node.type === 1) {\n for (var name_1 in node.attrsMap) {\n if (dirRE.test(name_1)) {\n var value = node.attrsMap[name_1];\n if (value) {\n var range = node.rawAttrsMap[name_1];\n if (name_1 === 'v-for') {\n checkFor(node, \"v-for=\\\"\".concat(value, \"\\\"\"), warn, range);\n }\n else if (name_1 === 'v-slot' || name_1[0] === '#') {\n checkFunctionParameterExpression(value, \"\".concat(name_1, \"=\\\"\").concat(value, \"\\\"\"), warn, range);\n }\n else if (onRE.test(name_1)) {\n checkEvent(value, \"\".concat(name_1, \"=\\\"\").concat(value, \"\\\"\"), warn, range);\n }\n else {\n checkExpression(value, \"\".concat(name_1, \"=\\\"\").concat(value, \"\\\"\"), warn, range);\n }\n }\n }\n }\n if (node.children) {\n for (var i = 0; i < node.children.length; i++) {\n checkNode(node.children[i], warn);\n }\n }\n }\n else if (node.type === 2) {\n checkExpression(node.expression, node.text, warn, node);\n }\n }\n function checkEvent(exp, text, warn, range) {\n var stripped = exp.replace(stripStringRE, '');\n var keywordMatch = stripped.match(unaryOperatorsRE);\n if (keywordMatch && stripped.charAt(keywordMatch.index - 1) !== '$') {\n warn(\"avoid using JavaScript unary operator as property name: \" +\n \"\\\"\".concat(keywordMatch[0], \"\\\" in expression \").concat(text.trim()), range);\n }\n checkExpression(exp, text, warn, range);\n }\n function checkFor(node, text, warn, range) {\n checkExpression(node.for || '', text, warn, range);\n checkIdentifier(node.alias, 'v-for alias', text, warn, range);\n checkIdentifier(node.iterator1, 'v-for iterator', text, warn, range);\n checkIdentifier(node.iterator2, 'v-for iterator', text, warn, range);\n }\n function checkIdentifier(ident, type, text, warn, range) {\n if (typeof ident === 'string') {\n try {\n new Function(\"var \".concat(ident, \"=_\"));\n }\n catch (e) {\n warn(\"invalid \".concat(type, \" \\\"\").concat(ident, \"\\\" in expression: \").concat(text.trim()), range);\n }\n }\n }\n function checkExpression(exp, text, warn, range) {\n try {\n new Function(\"return \".concat(exp));\n }\n catch (e) {\n var keywordMatch = exp\n .replace(stripStringRE, '')\n .match(prohibitedKeywordRE);\n if (keywordMatch) {\n warn(\"avoid using JavaScript keyword as property name: \" +\n \"\\\"\".concat(keywordMatch[0], \"\\\"\\n Raw expression: \").concat(text.trim()), range);\n }\n else {\n warn(\"invalid expression: \".concat(e.message, \" in\\n\\n\") +\n \" \".concat(exp, \"\\n\\n\") +\n \" Raw expression: \".concat(text.trim(), \"\\n\"), range);\n }\n }\n }\n function checkFunctionParameterExpression(exp, text, warn, range) {\n try {\n new Function(exp, '');\n }\n catch (e) {\n warn(\"invalid function parameter expression: \".concat(e.message, \" in\\n\\n\") +\n \" \".concat(exp, \"\\n\\n\") +\n \" Raw expression: \".concat(text.trim(), \"\\n\"), range);\n }\n }\n\n var range = 2;\n function generateCodeFrame(source, start, end) {\n if (start === void 0) { start = 0; }\n if (end === void 0) { end = source.length; }\n var lines = source.split(/\\r?\\n/);\n var count = 0;\n var res = [];\n for (var i = 0; i < lines.length; i++) {\n count += lines[i].length + 1;\n if (count >= start) {\n for (var j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length)\n continue;\n res.push(\"\".concat(j + 1).concat(repeat(\" \", 3 - String(j + 1).length), \"| \").concat(lines[j]));\n var lineLength = lines[j].length;\n if (j === i) {\n // push underline\n var pad = start - (count - lineLength) + 1;\n var length_1 = end > count ? lineLength - pad : end - start;\n res.push(\" | \" + repeat(\" \", pad) + repeat(\"^\", length_1));\n }\n else if (j > i) {\n if (end > count) {\n var length_2 = Math.min(end - count, lineLength);\n res.push(\" | \" + repeat(\"^\", length_2));\n }\n count += lineLength + 1;\n }\n }\n break;\n }\n }\n return res.join('\\n');\n }\n function repeat(str, n) {\n var result = '';\n if (n > 0) {\n // eslint-disable-next-line no-constant-condition\n while (true) {\n // eslint-disable-line\n if (n & 1)\n result += str;\n n >>>= 1;\n if (n <= 0)\n break;\n str += str;\n }\n }\n return result;\n }\n\n function createFunction(code, errors) {\n try {\n return new Function(code);\n }\n catch (err) {\n errors.push({ err: err, code: code });\n return noop;\n }\n }\n function createCompileToFunctionFn(compile) {\n var cache = Object.create(null);\n return function compileToFunctions(template, options, vm) {\n options = extend({}, options);\n var warn = options.warn || warn$2;\n delete options.warn;\n /* istanbul ignore if */\n {\n // detect possible CSP restriction\n try {\n new Function('return 1');\n }\n catch (e) {\n if (e.toString().match(/unsafe-eval|CSP/)) {\n warn('It seems you are using the standalone build of Vue.js in an ' +\n 'environment with Content Security Policy that prohibits unsafe-eval. ' +\n 'The template compiler cannot work in this environment. Consider ' +\n 'relaxing the policy to allow unsafe-eval or pre-compiling your ' +\n 'templates into render functions.');\n }\n }\n }\n // check cache\n var key = options.delimiters\n ? String(options.delimiters) + template\n : template;\n if (cache[key]) {\n return cache[key];\n }\n // compile\n var compiled = compile(template, options);\n // check compilation errors/tips\n {\n if (compiled.errors && compiled.errors.length) {\n if (options.outputSourceRange) {\n compiled.errors.forEach(function (e) {\n warn(\"Error compiling template:\\n\\n\".concat(e.msg, \"\\n\\n\") +\n generateCodeFrame(template, e.start, e.end), vm);\n });\n }\n else {\n warn(\"Error compiling template:\\n\\n\".concat(template, \"\\n\\n\") +\n compiled.errors.map(function (e) { return \"- \".concat(e); }).join('\\n') +\n '\\n', vm);\n }\n }\n if (compiled.tips && compiled.tips.length) {\n if (options.outputSourceRange) {\n compiled.tips.forEach(function (e) { return tip(e.msg, vm); });\n }\n else {\n compiled.tips.forEach(function (msg) { return tip(msg, vm); });\n }\n }\n }\n // turn code into functions\n var res = {};\n var fnGenErrors = [];\n res.render = createFunction(compiled.render, fnGenErrors);\n res.staticRenderFns = compiled.staticRenderFns.map(function (code) {\n return createFunction(code, fnGenErrors);\n });\n // check function generation errors.\n // this should only happen if there is a bug in the compiler itself.\n // mostly for codegen development use\n /* istanbul ignore if */\n {\n if ((!compiled.errors || !compiled.errors.length) && fnGenErrors.length) {\n warn(\"Failed to generate render function:\\n\\n\" +\n fnGenErrors\n .map(function (_a) {\n var err = _a.err, code = _a.code;\n return \"\".concat(err.toString(), \" in\\n\\n\").concat(code, \"\\n\");\n })\n .join('\\n'), vm);\n }\n }\n return (cache[key] = res);\n };\n }\n\n function createCompilerCreator(baseCompile) {\n return function createCompiler(baseOptions) {\n function compile(template, options) {\n var finalOptions = Object.create(baseOptions);\n var errors = [];\n var tips = [];\n var warn = function (msg, range, tip) {\n (tip ? tips : errors).push(msg);\n };\n if (options) {\n if (options.outputSourceRange) {\n // $flow-disable-line\n var leadingSpaceLength_1 = template.match(/^\\s*/)[0].length;\n warn = function (msg, range, tip) {\n var data = typeof msg === 'string' ? { msg: msg } : msg;\n if (range) {\n if (range.start != null) {\n data.start = range.start + leadingSpaceLength_1;\n }\n if (range.end != null) {\n data.end = range.end + leadingSpaceLength_1;\n }\n }\n (tip ? tips : errors).push(data);\n };\n }\n // merge custom modules\n if (options.modules) {\n finalOptions.modules = (baseOptions.modules || []).concat(options.modules);\n }\n // merge custom directives\n if (options.directives) {\n finalOptions.directives = extend(Object.create(baseOptions.directives || null), options.directives);\n }\n // copy other options\n for (var key in options) {\n if (key !== 'modules' && key !== 'directives') {\n finalOptions[key] = options[key];\n }\n }\n }\n finalOptions.warn = warn;\n var compiled = baseCompile(template.trim(), finalOptions);\n {\n detectErrors(compiled.ast, warn);\n }\n compiled.errors = errors;\n compiled.tips = tips;\n return compiled;\n }\n return {\n compile: compile,\n compileToFunctions: createCompileToFunctionFn(compile)\n };\n };\n }\n\n // `createCompilerCreator` allows creating compilers that use alternative\n // parser/optimizer/codegen, e.g the SSR optimizing compiler.\n // Here we just export a default compiler using the default parts.\n var createCompiler = createCompilerCreator(function baseCompile(template, options) {\n var ast = parse(template.trim(), options);\n if (options.optimize !== false) {\n optimize(ast, options);\n }\n var code = generate(ast, options);\n return {\n ast: ast,\n render: code.render,\n staticRenderFns: code.staticRenderFns\n };\n });\n\n var _a = createCompiler(baseOptions), compileToFunctions = _a.compileToFunctions;\n\n // check whether current browser encodes a char inside attribute values\n var div;\n function getShouldDecode(href) {\n div = div || document.createElement('div');\n div.innerHTML = href ? \"<a href=\\\"\\n\\\"/>\" : \"<div a=\\\"\\n\\\"/>\";\n return div.innerHTML.indexOf(' ') > 0;\n }\n // #3663: IE encodes newlines inside attribute values while other browsers don't\n var shouldDecodeNewlines = inBrowser ? getShouldDecode(false) : false;\n // #6828: chrome encodes content in a[href]\n var shouldDecodeNewlinesForHref = inBrowser\n ? getShouldDecode(true)\n : false;\n\n var idToTemplate = cached(function (id) {\n var el = query(id);\n return el && el.innerHTML;\n });\n var mount = Vue.prototype.$mount;\n Vue.prototype.$mount = function (el, hydrating) {\n el = el && query(el);\n /* istanbul ignore if */\n if (el === document.body || el === document.documentElement) {\n warn$2(\"Do not mount Vue to <html> or <body> - mount to normal elements instead.\");\n return this;\n }\n var options = this.$options;\n // resolve template/el and convert to render function\n if (!options.render) {\n var template = options.template;\n if (template) {\n if (typeof template === 'string') {\n if (template.charAt(0) === '#') {\n template = idToTemplate(template);\n /* istanbul ignore if */\n if (!template) {\n warn$2(\"Template element not found or is empty: \".concat(options.template), this);\n }\n }\n }\n else if (template.nodeType) {\n template = template.innerHTML;\n }\n else {\n {\n warn$2('invalid template option:' + template, this);\n }\n return this;\n }\n }\n else if (el) {\n // @ts-expect-error\n template = getOuterHTML(el);\n }\n if (template) {\n /* istanbul ignore if */\n if (config.performance && mark) {\n mark('compile');\n }\n var _a = compileToFunctions(template, {\n outputSourceRange: true,\n shouldDecodeNewlines: shouldDecodeNewlines,\n shouldDecodeNewlinesForHref: shouldDecodeNewlinesForHref,\n delimiters: options.delimiters,\n comments: options.comments\n }, this), render = _a.render, staticRenderFns = _a.staticRenderFns;\n options.render = render;\n options.staticRenderFns = staticRenderFns;\n /* istanbul ignore if */\n if (config.performance && mark) {\n mark('compile end');\n measure(\"vue \".concat(this._name, \" compile\"), 'compile', 'compile end');\n }\n }\n }\n return mount.call(this, el, hydrating);\n };\n /**\n * Get outerHTML of elements, taking care\n * of SVG elements in IE as well.\n */\n function getOuterHTML(el) {\n if (el.outerHTML) {\n return el.outerHTML;\n }\n else {\n var container = document.createElement('div');\n container.appendChild(el.cloneNode(true));\n return container.innerHTML;\n }\n }\n Vue.compile = compileToFunctions;\n\n // export type EffectScheduler = (...args: any[]) => any\n /**\n * @internal since we are not exposing this in Vue 2, it's used only for\n * internal testing.\n */\n function effect(fn, scheduler) {\n var watcher = new Watcher(currentInstance, fn, noop, {\n sync: true\n });\n if (scheduler) {\n watcher.update = function () {\n scheduler(function () { return watcher.run(); });\n };\n }\n }\n\n extend(Vue, vca);\n Vue.effect = effect;\n\n return Vue;\n\n}));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue/dist/vue.js\n// module id = 73\n// module chunks = 0","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@babel/runtime/helpers/esm/defineProperty.js\n// module id = 74\n// module chunks = 0","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/add-to-unscopables.js\n// module id = 90\n// module chunks = 0","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/array-slice.js\n// module id = 91\n// module chunks = 0","'use strict';\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (O, P) {\n if (!delete O[P]) throw $TypeError('Cannot delete property ' + tryToString(P) + ' of ' + tryToString(O));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/delete-property-or-throw.js\n// module id = 92\n// module chunks = 0","var documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/document-all.js\n// module id = 93\n// module chunks = 0","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/document-create-element.js\n// module id = 94\n// module chunks = 0","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/engine-user-agent.js\n// module id = 95\n// module chunks = 0","var uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/function-bind-context.js\n// module id = 96\n// module chunks = 0","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/get-iterator-method.js\n// module id = 97\n// module chunks = 0","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/ie8-dom-define.js\n// module id = 98\n// module chunks = 0","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/inspect-source.js\n// module id = 99\n// module chunks = 0","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/is-forced.js\n// module id = 100\n// module chunks = 0","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/iterators-core.js\n// module id = 101\n// module chunks = 0","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/object-get-own-property-names.js\n// module id = 102\n// module chunks = 0","var hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/object-get-prototype-of.js\n// module id = 103\n// module chunks = 0","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/object-keys-internal.js\n// module id = 104\n// module chunks = 0","/* eslint-disable no-proto -- safe */\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/object-set-prototype-of.js\n// module id = 105\n// module chunks = 0","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices) result += 'd';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.unicodeSets) result += 'v';\n if (that.sticky) result += 'y';\n return result;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/regexp-flags.js\n// module id = 106\n// module chunks = 0","var global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar isCallable = require('../internals/is-callable');\nvar userAgent = require('../internals/engine-user-agent');\nvar arraySlice = require('../internals/array-slice');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\n\nvar MSIE = /MSIE .\\./.test(userAgent); // <- dirty ie9- check\nvar Function = global.Function;\n\nvar wrap = function (scheduler) {\n return MSIE ? function (handler, timeout /* , ...arguments */) {\n var boundArgs = validateArgumentsLength(arguments.length, 1) > 2;\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = boundArgs ? arraySlice(arguments, 2) : undefined;\n return scheduler(boundArgs ? function () {\n apply(fn, this, args);\n } : fn, timeout);\n } : scheduler;\n};\n\n// ie9- setTimeout & setInterval additional parameters fix\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers\nmodule.exports = {\n // `setTimeout` method\n // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-settimeout\n setTimeout: wrap(global.setTimeout),\n // `setInterval` method\n // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-setinterval\n setInterval: wrap(global.setInterval)\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/schedulers-fix.js\n// module id = 107\n// module chunks = 0","var defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/set-to-string-tag.js\n// module id = 108\n// module chunks = 0","var uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar replace = uncurryThis(''.replace);\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = replace(string, ltrim, '');\n if (TYPE & 2) string = replace(string, rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/string-trim.js\n// module id = 109\n// module chunks = 0","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/symbol-constructor-detection.js\n// module id = 110\n// module chunks = 0","var call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/to-primitive.js\n// module id = 111\n// module chunks = 0","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/uid.js\n// module id = 112\n// module chunks = 0","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/use-symbol-as-uid.js\n// module id = 113\n// module chunks = 0","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/v8-prototype-define-bug.js\n// module id = 114\n// module chunks = 0","// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/whitespaces.js\n// module id = 115\n// module chunks = 0","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es.array.filter.js\n// module id = 116\n// module chunks = 0","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.es/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es.array.find.js\n// module id = 117\n// module chunks = 0","'use strict';\n/* eslint-disable es/no-array-prototype-indexof -- required for testing */\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeIndexOf = uncurryThis([].indexOf);\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / nativeIndexOf([1], 1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('indexOf');\n\n// `Array.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n var fromIndex = arguments.length > 1 ? arguments[1] : undefined;\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? nativeIndexOf(this, searchElement, fromIndex) || 0\n : $indexOf(this, searchElement, fromIndex);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es.array.index-of.js\n// module id = 118\n// module chunks = 0","'use strict';\nvar $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar nativeSlice = require('../internals/array-slice');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (isConstructor(Constructor) && (Constructor === $Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === $Array || Constructor === undefined) {\n return nativeSlice(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? $Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es.array.slice.js\n// module id = 119\n// module chunks = 0","// TODO: Remove from `core-js@4`\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar DatePrototype = Date.prototype;\nvar INVALID_DATE = 'Invalid Date';\nvar TO_STRING = 'toString';\nvar nativeDateToString = uncurryThis(DatePrototype[TO_STRING]);\nvar thisTimeValue = uncurryThis(DatePrototype.getTime);\n\n// `Date.prototype.toString` method\n// https://tc39.es/ecma262/#sec-date.prototype.tostring\nif (String(new Date(NaN)) != INVALID_DATE) {\n defineBuiltIn(DatePrototype, TO_STRING, function toString() {\n var value = thisTimeValue(this);\n // eslint-disable-next-line no-self-compare -- NaN check\n return value === value ? nativeDateToString(this) : INVALID_DATE;\n });\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es.date.to-string.js\n// module id = 120\n// module chunks = 0","var defineBuiltIn = require('../internals/define-built-in');\nvar errorToString = require('../internals/error-to-string');\n\nvar ErrorPrototype = Error.prototype;\n\n// `Error.prototype.toString` method fix\n// https://tc39.es/ecma262/#sec-error.prototype.tostring\nif (ErrorPrototype.toString !== errorToString) {\n defineBuiltIn(ErrorPrototype, 'toString', errorToString);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es.error.to-string.js\n// module id = 121\n// module chunks = 0","var DESCRIPTORS = require('../internals/descriptors');\nvar FUNCTION_NAME_EXISTS = require('../internals/function-name').EXISTS;\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar FunctionPrototype = Function.prototype;\nvar functionToString = uncurryThis(FunctionPrototype.toString);\nvar nameRE = /function\\b(?:\\s|\\/\\*[\\S\\s]*?\\*\\/|\\/\\/[^\\n\\r]*[\\n\\r]+)*([^\\s(/]*)/;\nvar regExpExec = uncurryThis(nameRE.exec);\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !FUNCTION_NAME_EXISTS) {\n defineProperty(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return regExpExec(nameRE, functionToString(this))[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es.function.name.js\n// module id = 122\n// module chunks = 0","'use strict';\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar defineBuiltIn = require('../internals/define-built-in');\nvar anObject = require('../internals/an-object');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = PROPER_FUNCTION_NAME && nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n defineBuiltIn(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var pattern = $toString(R.source);\n var flags = $toString(getRegExpFlags(R));\n return '/' + pattern + '/' + flags;\n }, { unsafe: true });\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es.regexp.to-string.js\n// module id = 123\n// module chunks = 0","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/process/browser.js\n// module id = 124\n// module chunks = 0","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n // eslint-disable-next-line es/no-array-from -- required for testing\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es.array.from.js\n// module id = 126\n// module chunks = 0","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return createIterResultObject(undefined, true);\n point = charAt(string, index);\n state.index += point.length;\n return createIterResultObject(point, false);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es.string.iterator.js\n// module id = 127\n// module chunks = 0","/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version v4.2.8+1e68dce6\n */\n\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.ES6Promise = factory());\n}(this, (function () { 'use strict';\n\nfunction objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\n\n\nvar _isArray = void 0;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nvar isArray = _isArray;\n\nvar len = 0;\nvar vertxNext = void 0;\nvar customSchedulerFn = void 0;\n\nvar asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nfunction setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var vertx = Function('return this')().require('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = void 0;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && typeof require === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}\n\nfunction then(onFulfillment, onRejection) {\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n\n if (_state) {\n var callback = arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nfunction resolve$1(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n resolve(promise, object);\n return promise;\n}\n\nvar PROMISE_ID = Math.random().toString(36).substring(2);\n\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {\n try {\n then$$1.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then$$1) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then$$1, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then$$1) {\n if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then$$1 === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then$$1)) {\n handleForeignThenable(promise, maybeThenable, then$$1);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n var then$$1 = void 0;\n try {\n then$$1 = value.then;\n } catch (error) {\n reject(promise, error);\n return;\n }\n handleMaybeThenable(promise, value, then$$1);\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = void 0,\n callback = void 0,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = void 0,\n error = void 0,\n succeeded = true;\n\n if (hasCallback) {\n try {\n value = callback(detail);\n } catch (e) {\n succeeded = false;\n error = e;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (succeeded === false) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n}\n\nvar Enumerator = function () {\n function Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n }\n\n Enumerator.prototype._enumerate = function _enumerate(input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n };\n\n Enumerator.prototype._eachEntry = function _eachEntry(entry, i) {\n var c = this._instanceConstructor;\n var resolve$$1 = c.resolve;\n\n\n if (resolve$$1 === resolve$1) {\n var _then = void 0;\n var error = void 0;\n var didError = false;\n try {\n _then = entry.then;\n } catch (e) {\n didError = true;\n error = e;\n }\n\n if (_then === then && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise$1) {\n var promise = new c(noop);\n if (didError) {\n reject(promise, error);\n } else {\n handleMaybeThenable(promise, entry, _then);\n }\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve$$1) {\n return resolve$$1(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve$$1(entry), i);\n }\n };\n\n Enumerator.prototype._settledAt = function _settledAt(state, i, value) {\n var promise = this.promise;\n\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n };\n\n Enumerator.prototype._willSettleAt = function _willSettleAt(promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n };\n\n return Enumerator;\n}();\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nfunction all(entries) {\n return new Enumerator(this, entries).promise;\n}\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nfunction race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject$1(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n reject(promise, reason);\n return promise;\n}\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {Function} resolver\n Useful for tooling.\n @constructor\n*/\n\nvar Promise$1 = function () {\n function Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n }\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n Chaining\n --------\n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n Assimilation\n ------------\n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n If the assimliated promise rejects, then the downstream promise will also reject.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n Simple Example\n --------------\n Synchronous Example\n ```javascript\n let result;\n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n Advanced Example\n --------------\n Synchronous Example\n ```javascript\n let author, books;\n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n function foundBooks(books) {\n }\n function failure(reason) {\n }\n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n\n\n Promise.prototype.catch = function _catch(onRejection) {\n return this.then(null, onRejection);\n };\n\n /**\n `finally` will be invoked regardless of the promise's fate just as native\n try/catch/finally behaves\n \n Synchronous example:\n \n ```js\n findAuthor() {\n if (Math.random() > 0.5) {\n throw new Error();\n }\n return new Author();\n }\n \n try {\n return findAuthor(); // succeed or fail\n } catch(error) {\n return findOtherAuther();\n } finally {\n // always runs\n // doesn't affect the return value\n }\n ```\n \n Asynchronous example:\n \n ```js\n findAuthor().catch(function(reason){\n return findOtherAuther();\n }).finally(function(){\n // author was either found, or not\n });\n ```\n \n @method finally\n @param {Function} callback\n @return {Promise}\n */\n\n\n Promise.prototype.finally = function _finally(callback) {\n var promise = this;\n var constructor = promise.constructor;\n\n if (isFunction(callback)) {\n return promise.then(function (value) {\n return constructor.resolve(callback()).then(function () {\n return value;\n });\n }, function (reason) {\n return constructor.resolve(callback()).then(function () {\n throw reason;\n });\n });\n }\n\n return promise.then(callback, callback);\n };\n\n return Promise;\n}();\n\nPromise$1.prototype.then = then;\nPromise$1.all = all;\nPromise$1.race = race;\nPromise$1.resolve = resolve$1;\nPromise$1.reject = reject$1;\nPromise$1._setScheduler = setScheduler;\nPromise$1._setAsap = setAsap;\nPromise$1._asap = asap;\n\n/*global self*/\nfunction polyfill() {\n var local = void 0;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise$1;\n}\n\n// Strange compat..\nPromise$1.polyfill = polyfill;\nPromise$1.Promise = Promise$1;\n\nreturn Promise$1;\n\n})));\n\n\n\n//# sourceMappingURL=es6-promise.map\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/es6-promise/dist/es6-promise.js\n// module id = 128\n// module chunks = 0","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@babel/runtime/helpers/esm/toPrimitive.js\n// module id = 133\n// module chunks = 0","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/@babel/runtime/helpers/esm/toPropertyKey.js\n// module id = 134\n// module chunks = 0","var isCallable = require('../internals/is-callable');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/a-possible-prototype.js\n// module id = 139\n// module chunks = 0","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isConstructor = require('../internals/is-constructor');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $Array = Array;\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var IS_CONSTRUCTOR = isConstructor(this);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod && !(this === $Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n result = IS_CONSTRUCTOR ? new this() : [];\n for (;!(step = call(next, iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = lengthOfArrayLike(O);\n result = IS_CONSTRUCTOR ? new this(length) : $Array(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/array-from.js\n// module id = 140\n// module chunks = 0","var aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar $TypeError = TypeError;\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aCallable(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = lengthOfArrayLike(O);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw $TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/array-reduce.js\n// module id = 141\n// module chunks = 0","var isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? $Array : C;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/array-species-constructor.js\n// module id = 142\n// module chunks = 0","var anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/call-with-safe-iteration-closing.js\n// module id = 143\n// module chunks = 0","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/check-correctness-of-iteration.js\n// module id = 144\n// module chunks = 0","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/copy-constructor-properties.js\n// module id = 145\n// module chunks = 0","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/correct-is-regexp-logic.js\n// module id = 146\n// module chunks = 0","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/correct-prototype-getter.js\n// module id = 147\n// module chunks = 0","// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/create-iter-result-object.js\n// module id = 148\n// module chunks = 0","var classof = require('../internals/classof-raw');\nvar global = require('../internals/global');\n\nmodule.exports = classof(global.process) == 'process';\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/engine-is-node.js\n// module id = 149\n// module chunks = 0","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar create = require('../internals/object-create');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\n\nvar nativeErrorToString = Error.prototype.toString;\n\nvar INCORRECT_TO_STRING = fails(function () {\n if (DESCRIPTORS) {\n // Chrome 32- incorrectly call accessor\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n var object = create(Object.defineProperty({}, 'name', { get: function () {\n return this === object;\n } }));\n if (nativeErrorToString.call(object) !== 'true') return true;\n }\n // FF10- does not properly handle non-strings\n return nativeErrorToString.call({ message: 1, name: 2 }) !== '2: 1'\n // IE8 does not properly handle defaults\n || nativeErrorToString.call({}) !== 'Error';\n});\n\nmodule.exports = INCORRECT_TO_STRING ? function toString() {\n var O = anObject(this);\n var name = normalizeStringArgument(O.name, 'Error');\n var message = normalizeStringArgument(O.message);\n return !name ? message : !message ? name : name + ': ' + message;\n} : nativeErrorToString;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/error-to-string.js\n// module id = 150\n// module chunks = 0","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (KEY, exec, FORCED, SHAM) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n FORCED\n ) {\n var uncurriedNativeRegExpMethod = uncurryThis(/./[SYMBOL]);\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n var uncurriedNativeMethod = uncurryThis(nativeMethod);\n var $exec = regexp.exec;\n if ($exec === regexpExec || $exec === RegExpPrototype.exec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: uncurriedNativeRegExpMethod(regexp, str, arg2) };\n }\n return { done: true, value: uncurriedNativeMethod(str, regexp, arg2) };\n }\n return { done: false };\n });\n\n defineBuiltIn(String.prototype, KEY, methods[0]);\n defineBuiltIn(RegExpPrototype, SYMBOL, methods[1]);\n }\n\n if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/fix-regexp-well-known-symbol-logic.js\n// module id = 151\n// module chunks = 0","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/function-apply.js\n// module id = 152\n// module chunks = 0","var call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw $TypeError(tryToString(argument) + ' is not iterable');\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/get-iterator.js\n// module id = 153\n// module chunks = 0","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/html.js\n// module id = 154\n// module chunks = 0","var isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/inherit-if-required.js\n// module id = 155\n// module chunks = 0","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/is-array-iterator-method.js\n// module id = 156\n// module chunks = 0","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/is-regexp.js\n// module id = 157\n// module chunks = 0","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/iterator-close.js\n// module id = 158\n// module chunks = 0","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/iterator-create-constructor.js\n// module id = 159\n// module chunks = 0","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/iterator-define.js\n// module id = 160\n// module chunks = 0","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/make-built-in.js\n// module id = 161\n// module chunks = 0","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/math-trunc.js\n// module id = 162\n// module chunks = 0","var toString = require('../internals/to-string');\n\nmodule.exports = function (argument, $default) {\n return argument === undefined ? arguments.length < 2 ? '' : $default : toString(argument);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/normalize-string-argument.js\n// module id = 163\n// module chunks = 0","var isRegExp = require('../internals/is-regexp');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw $TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/not-a-regexp.js\n// module id = 164\n// module chunks = 0","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/object-define-properties.js\n// module id = 165\n// module chunks = 0","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/object-get-own-property-symbols.js\n// module id = 166\n// module chunks = 0","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/object-keys.js\n// module id = 167\n// module chunks = 0","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/object-property-is-enumerable.js\n// module id = 168\n// module chunks = 0","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/object-to-string.js\n// module id = 169\n// module chunks = 0","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/ordinary-to-primitive.js\n// module id = 170\n// module chunks = 0","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/own-keys.js\n// module id = 171\n// module chunks = 0","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar regexpExec = require('../internals/regexp-exec');\n\nvar $TypeError = TypeError;\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (isCallable(exec)) {\n var result = call(exec, R, S);\n if (result !== null) anObject(result);\n return result;\n }\n if (classof(R) === 'RegExp') return call(regexpExec, R, S);\n throw $TypeError('RegExp#exec called on incompatible receiver');\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/regexp-exec-abstract.js\n// module id = 172\n// module chunks = 0","var call = require('../internals/function-call');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (R) {\n var flags = R.flags;\n return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R)\n ? call(regExpFlags, R) : flags;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/regexp-get-flags.js\n// module id = 173\n// module chunks = 0","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nvar UNSUPPORTED_Y = fails(function () {\n var re = $RegExp('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\n// UC Browser bug\n// https://github.com/zloirock/core-js/issues/1008\nvar MISSED_STICKY = UNSUPPORTED_Y || fails(function () {\n return !$RegExp('a', 'y').sticky;\n});\n\nvar BROKEN_CARET = UNSUPPORTED_Y || fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = $RegExp('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n\nmodule.exports = {\n BROKEN_CARET: BROKEN_CARET,\n MISSED_STICKY: MISSED_STICKY,\n UNSUPPORTED_Y: UNSUPPORTED_Y\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/regexp-sticky-helpers.js\n// module id = 174\n// module chunks = 0","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('.', 's');\n return !(re.dotAll && re.exec('\\n') && re.flags === 's');\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/regexp-unsupported-dot-all.js\n// module id = 175\n// module chunks = 0","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?<a>b)', 'g') -> /(?<a>b)/g and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('(?<a>b)', 'g');\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$<a>c') !== 'bc';\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/regexp-unsupported-ncg.js\n// module id = 176\n// module chunks = 0","// `SameValue` abstract operation\n// https://tc39.es/ecma262/#sec-samevalue\n// eslint-disable-next-line es/no-object-is -- safe\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/same-value.js\n// module id = 177\n// module chunks = 0","var uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/string-multibyte.js\n// module id = 178\n// module chunks = 0","var PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/string-trim-forced.js\n// module id = 179\n// module chunks = 0","var uncurryThis = require('../internals/function-uncurry-this');\n\n// `thisNumberValue` abstract operation\n// https://tc39.es/ecma262/#sec-thisnumbervalue\nmodule.exports = uncurryThis(1.0.valueOf);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/this-number-value.js\n// module id = 180\n// module chunks = 0","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/to-length.js\n// module id = 181\n// module chunks = 0","var $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw $TypeError('Not enough arguments');\n return passed;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/validate-arguments-length.js\n// module id = 182\n// module chunks = 0","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/internals/weak-map-basic-detection.js\n// module id = 183\n// module chunks = 0","'use strict';\nvar $ = require('../internals/export');\nvar $every = require('../internals/array-iteration').every;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('every');\n\n// `Array.prototype.every` method\n// https://tc39.es/ecma262/#sec-array.prototype.every\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD }, {\n every: function every(callbackfn /* , thisArg */) {\n return $every(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es.array.every.js\n// module id = 184\n// module chunks = 0","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar fails = require('../internals/fails');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// FF99+ bug\nvar BROKEN_ON_SPARSE = fails(function () {\n return !Array(1).includes();\n});\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es.array.includes.js\n// module id = 185\n// module chunks = 0","var $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\n\n// `Array.isArray` method\n// https://tc39.es/ecma262/#sec-array.isarray\n$({ target: 'Array', stat: true }, {\n isArray: isArray\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es.array.is-array.js\n// module id = 186\n// module chunks = 0","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/engine-v8-version');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduce');\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\n\n// `Array.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || CHROME_BUG }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es.array.reduce.js\n// module id = 187\n// module chunks = 0","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// `Array.prototype.splice` method\n// https://tc39.es/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart);\n }\n doesNotExceedSafeInteger(len + insertCount - actualDeleteCount);\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else deletePropertyOrThrow(O, to);\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) deletePropertyOrThrow(O, k - 1);\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else deletePropertyOrThrow(O, to);\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n setArrayLength(O, len - actualDeleteCount + insertCount);\n return A;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es.array.splice.js\n// module id = 188\n// module chunks = 0","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\n\n// IE8-\nvar INCORRECT_RESULT = [].unshift(0) !== 1;\n\n// V8 ~ Chrome < 71 and Safari <= 15.4, FF < 23 throws InternalError\nvar SILENT_ON_NON_WRITABLE_LENGTH = !function () {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).unshift();\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\n// `Array.prototype.unshift` method\n// https://tc39.es/ecma262/#sec-array.prototype.unshift\n$({ target: 'Array', proto: true, arity: 1, forced: INCORRECT_RESULT || SILENT_ON_NON_WRITABLE_LENGTH }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n unshift: function unshift(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n if (argCount) {\n doesNotExceedSafeInteger(len + argCount);\n var k = len;\n while (k--) {\n var to = k + argCount;\n if (k in O) O[to] = O[k];\n else deletePropertyOrThrow(O, to);\n }\n for (var j = 0; j < argCount; j++) {\n O[j] = arguments[j];\n }\n } return setArrayLength(O, len + argCount);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es.array.unshift.js\n// module id = 189\n// module chunks = 0","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\nvar stringIndexOf = uncurryThis(''.indexOf);\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~stringIndexOf(\n toString(requireObjectCoercible(this)),\n toString(notARegExp(searchString)),\n arguments.length > 1 ? arguments[1] : undefined\n );\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es.string.includes.js\n// module id = 190\n// module chunks = 0","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/es.string.trim.js\n// module id = 191\n// module chunks = 0","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar setInterval = require('../internals/schedulers-fix').setInterval;\n\n// ie9- setInterval additional parameters fix\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-setinterval\n$({ global: true, bind: true, forced: global.setInterval !== setInterval }, {\n setInterval: setInterval\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/web.set-interval.js\n// module id = 192\n// module chunks = 0","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar setTimeout = require('../internals/schedulers-fix').setTimeout;\n\n// ie9- setTimeout additional parameters fix\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-settimeout\n$({ global: true, bind: true, forced: global.setTimeout !== setTimeout }, {\n setTimeout: setTimeout\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/modules/web.set-timeout.js\n// module id = 193\n// module chunks = 0","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = { callback: callback, args: args };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function(handle) {\n process.nextTick(function () { runIfPresent(handle); });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function() {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n var onGlobalMessage = function(event) {\n if (event.source === global &&\n typeof event.data === \"string\" &&\n event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function(event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function(handle) {\n // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var script = doc.createElement(\"script\");\n script.onreadystatechange = function () {\n runIfPresent(handle);\n script.onreadystatechange = null;\n html.removeChild(script);\n script = null;\n };\n html.appendChild(script);\n };\n }\n\n function installSetTimeoutImplementation() {\n registerImmediate = function(handle) {\n setTimeout(runIfPresent, 0, handle);\n };\n }\n\n // If supported, we should attach to the prototype of global, since that is where setTimeout et al. live.\n var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);\n attachTo = attachTo && attachTo.setTimeout ? attachTo : global;\n\n // Don't get fooled by e.g. browserify environments.\n if ({}.toString.call(global.process) === \"[object process]\") {\n // For Node.js before 0.9\n installNextTickImplementation();\n\n } else if (canUsePostMessage()) {\n // For non-IE10 modern browsers\n installPostMessageImplementation();\n\n } else if (global.MessageChannel) {\n // For web workers, where supported\n installMessageChannelImplementation();\n\n } else if (doc && \"onreadystatechange\" in doc.createElement(\"script\")) {\n // For IE 6–8\n installReadyStateChangeImplementation();\n\n } else {\n // For older browsers\n installSetTimeoutImplementation();\n }\n\n attachTo.setImmediate = setImmediate;\n attachTo.clearImmediate = clearImmediate;\n}(typeof self === \"undefined\" ? typeof global === \"undefined\" ? this : global : self));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/setimmediate/setImmediate.js\n// module id = 205\n// module chunks = 0","var scope = (typeof global !== \"undefined\" && global) ||\n (typeof self !== \"undefined\" && self) ||\n window;\nvar apply = Function.prototype.apply;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function() {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\nexports.setInterval = function() {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\nexports.clearTimeout =\nexports.clearInterval = function(timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function() {};\nTimeout.prototype.close = function() {\n this._clearFn.call(scope, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function(item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function(item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function(item) {\n clearTimeout(item._idleTimeoutId);\n\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\n\n// setimmediate attaches itself to the global object\nrequire(\"setimmediate\");\n// On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\nexports.setImmediate = (typeof self !== \"undefined\" && self.setImmediate) ||\n (typeof global !== \"undefined\" && global.setImmediate) ||\n (this && this.setImmediate);\nexports.clearImmediate = (typeof self !== \"undefined\" && self.clearImmediate) ||\n (typeof global !== \"undefined\" && global.clearImmediate) ||\n (this && this.clearImmediate);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/timers-browserify/main.js\n// module id = 206\n// module chunks = 0","/**\n * Translates the list format produced by css-loader into something\n * easier to manipulate.\n */\nexport default function listToStyles (parentId, list) {\n var styles = []\n var newStyles = {}\n for (var i = 0; i < list.length; i++) {\n var item = list[i]\n var id = item[0]\n var css = item[1]\n var media = item[2]\n var sourceMap = item[3]\n var part = {\n id: parentId + ':' + i,\n css: css,\n media: media,\n sourceMap: sourceMap\n }\n if (!newStyles[id]) {\n styles.push(newStyles[id] = { id: id, parts: [part] })\n } else {\n newStyles[id].parts.push(part)\n }\n }\n return styles\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-style-loader/lib/listToStyles.js\n// module id = 234\n// module chunks = 0","/*!\n * vuex v3.6.2\n * (c) 2021 Evan You\n * @license MIT\n */\nfunction applyMixin (Vue) {\n var version = Number(Vue.version.split('.')[0]);\n\n if (version >= 2) {\n Vue.mixin({ beforeCreate: vuexInit });\n } else {\n // override init and inject vuex init procedure\n // for 1.x backwards compatibility.\n var _init = Vue.prototype._init;\n Vue.prototype._init = function (options) {\n if ( options === void 0 ) options = {};\n\n options.init = options.init\n ? [vuexInit].concat(options.init)\n : vuexInit;\n _init.call(this, options);\n };\n }\n\n /**\n * Vuex init hook, injected into each instances init hooks list.\n */\n\n function vuexInit () {\n var options = this.$options;\n // store injection\n if (options.store) {\n this.$store = typeof options.store === 'function'\n ? options.store()\n : options.store;\n } else if (options.parent && options.parent.$store) {\n this.$store = options.parent.$store;\n }\n }\n}\n\nvar target = typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\nvar devtoolHook = target.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\nfunction devtoolPlugin (store) {\n if (!devtoolHook) { return }\n\n store._devtoolHook = devtoolHook;\n\n devtoolHook.emit('vuex:init', store);\n\n devtoolHook.on('vuex:travel-to-state', function (targetState) {\n store.replaceState(targetState);\n });\n\n store.subscribe(function (mutation, state) {\n devtoolHook.emit('vuex:mutation', mutation, state);\n }, { prepend: true });\n\n store.subscribeAction(function (action, state) {\n devtoolHook.emit('vuex:action', action, state);\n }, { prepend: true });\n}\n\n/**\n * Get the first item that pass the test\n * by second argument function\n *\n * @param {Array} list\n * @param {Function} f\n * @return {*}\n */\nfunction find (list, f) {\n return list.filter(f)[0]\n}\n\n/**\n * Deep copy the given object considering circular structure.\n * This function caches all nested objects and its copies.\n * If it detects circular structure, use cached copy to avoid infinite loop.\n *\n * @param {*} obj\n * @param {Array<Object>} cache\n * @return {*}\n */\nfunction deepCopy (obj, cache) {\n if ( cache === void 0 ) cache = [];\n\n // just return if obj is immutable value\n if (obj === null || typeof obj !== 'object') {\n return obj\n }\n\n // if obj is hit, it is in circular structure\n var hit = find(cache, function (c) { return c.original === obj; });\n if (hit) {\n return hit.copy\n }\n\n var copy = Array.isArray(obj) ? [] : {};\n // put the copy into cache at first\n // because we want to refer it in recursive deepCopy\n cache.push({\n original: obj,\n copy: copy\n });\n\n Object.keys(obj).forEach(function (key) {\n copy[key] = deepCopy(obj[key], cache);\n });\n\n return copy\n}\n\n/**\n * forEach for object\n */\nfunction forEachValue (obj, fn) {\n Object.keys(obj).forEach(function (key) { return fn(obj[key], key); });\n}\n\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\nfunction isPromise (val) {\n return val && typeof val.then === 'function'\n}\n\nfunction assert (condition, msg) {\n if (!condition) { throw new Error((\"[vuex] \" + msg)) }\n}\n\nfunction partial (fn, arg) {\n return function () {\n return fn(arg)\n }\n}\n\n// Base data struct for store's module, package with some attribute and method\nvar Module = function Module (rawModule, runtime) {\n this.runtime = runtime;\n // Store some children item\n this._children = Object.create(null);\n // Store the origin module object which passed by programmer\n this._rawModule = rawModule;\n var rawState = rawModule.state;\n\n // Store the origin module's state\n this.state = (typeof rawState === 'function' ? rawState() : rawState) || {};\n};\n\nvar prototypeAccessors = { namespaced: { configurable: true } };\n\nprototypeAccessors.namespaced.get = function () {\n return !!this._rawModule.namespaced\n};\n\nModule.prototype.addChild = function addChild (key, module) {\n this._children[key] = module;\n};\n\nModule.prototype.removeChild = function removeChild (key) {\n delete this._children[key];\n};\n\nModule.prototype.getChild = function getChild (key) {\n return this._children[key]\n};\n\nModule.prototype.hasChild = function hasChild (key) {\n return key in this._children\n};\n\nModule.prototype.update = function update (rawModule) {\n this._rawModule.namespaced = rawModule.namespaced;\n if (rawModule.actions) {\n this._rawModule.actions = rawModule.actions;\n }\n if (rawModule.mutations) {\n this._rawModule.mutations = rawModule.mutations;\n }\n if (rawModule.getters) {\n this._rawModule.getters = rawModule.getters;\n }\n};\n\nModule.prototype.forEachChild = function forEachChild (fn) {\n forEachValue(this._children, fn);\n};\n\nModule.prototype.forEachGetter = function forEachGetter (fn) {\n if (this._rawModule.getters) {\n forEachValue(this._rawModule.getters, fn);\n }\n};\n\nModule.prototype.forEachAction = function forEachAction (fn) {\n if (this._rawModule.actions) {\n forEachValue(this._rawModule.actions, fn);\n }\n};\n\nModule.prototype.forEachMutation = function forEachMutation (fn) {\n if (this._rawModule.mutations) {\n forEachValue(this._rawModule.mutations, fn);\n }\n};\n\nObject.defineProperties( Module.prototype, prototypeAccessors );\n\nvar ModuleCollection = function ModuleCollection (rawRootModule) {\n // register root module (Vuex.Store options)\n this.register([], rawRootModule, false);\n};\n\nModuleCollection.prototype.get = function get (path) {\n return path.reduce(function (module, key) {\n return module.getChild(key)\n }, this.root)\n};\n\nModuleCollection.prototype.getNamespace = function getNamespace (path) {\n var module = this.root;\n return path.reduce(function (namespace, key) {\n module = module.getChild(key);\n return namespace + (module.namespaced ? key + '/' : '')\n }, '')\n};\n\nModuleCollection.prototype.update = function update$1 (rawRootModule) {\n update([], this.root, rawRootModule);\n};\n\nModuleCollection.prototype.register = function register (path, rawModule, runtime) {\n var this$1 = this;\n if ( runtime === void 0 ) runtime = true;\n\n if ((process.env.NODE_ENV !== 'production')) {\n assertRawModule(path, rawModule);\n }\n\n var newModule = new Module(rawModule, runtime);\n if (path.length === 0) {\n this.root = newModule;\n } else {\n var parent = this.get(path.slice(0, -1));\n parent.addChild(path[path.length - 1], newModule);\n }\n\n // register nested modules\n if (rawModule.modules) {\n forEachValue(rawModule.modules, function (rawChildModule, key) {\n this$1.register(path.concat(key), rawChildModule, runtime);\n });\n }\n};\n\nModuleCollection.prototype.unregister = function unregister (path) {\n var parent = this.get(path.slice(0, -1));\n var key = path[path.length - 1];\n var child = parent.getChild(key);\n\n if (!child) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\n \"[vuex] trying to unregister module '\" + key + \"', which is \" +\n \"not registered\"\n );\n }\n return\n }\n\n if (!child.runtime) {\n return\n }\n\n parent.removeChild(key);\n};\n\nModuleCollection.prototype.isRegistered = function isRegistered (path) {\n var parent = this.get(path.slice(0, -1));\n var key = path[path.length - 1];\n\n if (parent) {\n return parent.hasChild(key)\n }\n\n return false\n};\n\nfunction update (path, targetModule, newModule) {\n if ((process.env.NODE_ENV !== 'production')) {\n assertRawModule(path, newModule);\n }\n\n // update target module\n targetModule.update(newModule);\n\n // update nested modules\n if (newModule.modules) {\n for (var key in newModule.modules) {\n if (!targetModule.getChild(key)) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\n \"[vuex] trying to add a new module '\" + key + \"' on hot reloading, \" +\n 'manual reload is needed'\n );\n }\n return\n }\n update(\n path.concat(key),\n targetModule.getChild(key),\n newModule.modules[key]\n );\n }\n }\n}\n\nvar functionAssert = {\n assert: function (value) { return typeof value === 'function'; },\n expected: 'function'\n};\n\nvar objectAssert = {\n assert: function (value) { return typeof value === 'function' ||\n (typeof value === 'object' && typeof value.handler === 'function'); },\n expected: 'function or object with \"handler\" function'\n};\n\nvar assertTypes = {\n getters: functionAssert,\n mutations: functionAssert,\n actions: objectAssert\n};\n\nfunction assertRawModule (path, rawModule) {\n Object.keys(assertTypes).forEach(function (key) {\n if (!rawModule[key]) { return }\n\n var assertOptions = assertTypes[key];\n\n forEachValue(rawModule[key], function (value, type) {\n assert(\n assertOptions.assert(value),\n makeAssertionMessage(path, key, type, value, assertOptions.expected)\n );\n });\n });\n}\n\nfunction makeAssertionMessage (path, key, type, value, expected) {\n var buf = key + \" should be \" + expected + \" but \\\"\" + key + \".\" + type + \"\\\"\";\n if (path.length > 0) {\n buf += \" in module \\\"\" + (path.join('.')) + \"\\\"\";\n }\n buf += \" is \" + (JSON.stringify(value)) + \".\";\n return buf\n}\n\nvar Vue; // bind on install\n\nvar Store = function Store (options) {\n var this$1 = this;\n if ( options === void 0 ) options = {};\n\n // Auto install if it is not done yet and `window` has `Vue`.\n // To allow users to avoid auto-installation in some cases,\n // this code should be placed here. See #731\n if (!Vue && typeof window !== 'undefined' && window.Vue) {\n install(window.Vue);\n }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Vue, \"must call Vue.use(Vuex) before creating a store instance.\");\n assert(typeof Promise !== 'undefined', \"vuex requires a Promise polyfill in this browser.\");\n assert(this instanceof Store, \"store must be called with the new operator.\");\n }\n\n var plugins = options.plugins; if ( plugins === void 0 ) plugins = [];\n var strict = options.strict; if ( strict === void 0 ) strict = false;\n\n // store internal state\n this._committing = false;\n this._actions = Object.create(null);\n this._actionSubscribers = [];\n this._mutations = Object.create(null);\n this._wrappedGetters = Object.create(null);\n this._modules = new ModuleCollection(options);\n this._modulesNamespaceMap = Object.create(null);\n this._subscribers = [];\n this._watcherVM = new Vue();\n this._makeLocalGettersCache = Object.create(null);\n\n // bind commit and dispatch to self\n var store = this;\n var ref = this;\n var dispatch = ref.dispatch;\n var commit = ref.commit;\n this.dispatch = function boundDispatch (type, payload) {\n return dispatch.call(store, type, payload)\n };\n this.commit = function boundCommit (type, payload, options) {\n return commit.call(store, type, payload, options)\n };\n\n // strict mode\n this.strict = strict;\n\n var state = this._modules.root.state;\n\n // init root module.\n // this also recursively registers all sub-modules\n // and collects all module getters inside this._wrappedGetters\n installModule(this, state, [], this._modules.root);\n\n // initialize the store vm, which is responsible for the reactivity\n // (also registers _wrappedGetters as computed properties)\n resetStoreVM(this, state);\n\n // apply plugins\n plugins.forEach(function (plugin) { return plugin(this$1); });\n\n var useDevtools = options.devtools !== undefined ? options.devtools : Vue.config.devtools;\n if (useDevtools) {\n devtoolPlugin(this);\n }\n};\n\nvar prototypeAccessors$1 = { state: { configurable: true } };\n\nprototypeAccessors$1.state.get = function () {\n return this._vm._data.$$state\n};\n\nprototypeAccessors$1.state.set = function (v) {\n if ((process.env.NODE_ENV !== 'production')) {\n assert(false, \"use store.replaceState() to explicit replace store state.\");\n }\n};\n\nStore.prototype.commit = function commit (_type, _payload, _options) {\n var this$1 = this;\n\n // check object-style commit\n var ref = unifyObjectStyle(_type, _payload, _options);\n var type = ref.type;\n var payload = ref.payload;\n var options = ref.options;\n\n var mutation = { type: type, payload: payload };\n var entry = this._mutations[type];\n if (!entry) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] unknown mutation type: \" + type));\n }\n return\n }\n this._withCommit(function () {\n entry.forEach(function commitIterator (handler) {\n handler(payload);\n });\n });\n\n this._subscribers\n .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n .forEach(function (sub) { return sub(mutation, this$1.state); });\n\n if (\n (process.env.NODE_ENV !== 'production') &&\n options && options.silent\n ) {\n console.warn(\n \"[vuex] mutation type: \" + type + \". Silent option has been removed. \" +\n 'Use the filter functionality in the vue-devtools'\n );\n }\n};\n\nStore.prototype.dispatch = function dispatch (_type, _payload) {\n var this$1 = this;\n\n // check object-style dispatch\n var ref = unifyObjectStyle(_type, _payload);\n var type = ref.type;\n var payload = ref.payload;\n\n var action = { type: type, payload: payload };\n var entry = this._actions[type];\n if (!entry) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] unknown action type: \" + type));\n }\n return\n }\n\n try {\n this._actionSubscribers\n .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n .filter(function (sub) { return sub.before; })\n .forEach(function (sub) { return sub.before(action, this$1.state); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in before action subscribers: \");\n console.error(e);\n }\n }\n\n var result = entry.length > 1\n ? Promise.all(entry.map(function (handler) { return handler(payload); }))\n : entry[0](payload);\n\n return new Promise(function (resolve, reject) {\n result.then(function (res) {\n try {\n this$1._actionSubscribers\n .filter(function (sub) { return sub.after; })\n .forEach(function (sub) { return sub.after(action, this$1.state); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in after action subscribers: \");\n console.error(e);\n }\n }\n resolve(res);\n }, function (error) {\n try {\n this$1._actionSubscribers\n .filter(function (sub) { return sub.error; })\n .forEach(function (sub) { return sub.error(action, this$1.state, error); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in error action subscribers: \");\n console.error(e);\n }\n }\n reject(error);\n });\n })\n};\n\nStore.prototype.subscribe = function subscribe (fn, options) {\n return genericSubscribe(fn, this._subscribers, options)\n};\n\nStore.prototype.subscribeAction = function subscribeAction (fn, options) {\n var subs = typeof fn === 'function' ? { before: fn } : fn;\n return genericSubscribe(subs, this._actionSubscribers, options)\n};\n\nStore.prototype.watch = function watch (getter, cb, options) {\n var this$1 = this;\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(typeof getter === 'function', \"store.watch only accepts a function.\");\n }\n return this._watcherVM.$watch(function () { return getter(this$1.state, this$1.getters); }, cb, options)\n};\n\nStore.prototype.replaceState = function replaceState (state) {\n var this$1 = this;\n\n this._withCommit(function () {\n this$1._vm._data.$$state = state;\n });\n};\n\nStore.prototype.registerModule = function registerModule (path, rawModule, options) {\n if ( options === void 0 ) options = {};\n\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n assert(path.length > 0, 'cannot register the root module by using registerModule.');\n }\n\n this._modules.register(path, rawModule);\n installModule(this, this.state, path, this._modules.get(path), options.preserveState);\n // reset store to update getters...\n resetStoreVM(this, this.state);\n};\n\nStore.prototype.unregisterModule = function unregisterModule (path) {\n var this$1 = this;\n\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n }\n\n this._modules.unregister(path);\n this._withCommit(function () {\n var parentState = getNestedState(this$1.state, path.slice(0, -1));\n Vue.delete(parentState, path[path.length - 1]);\n });\n resetStore(this);\n};\n\nStore.prototype.hasModule = function hasModule (path) {\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n }\n\n return this._modules.isRegistered(path)\n};\n\nStore.prototype.hotUpdate = function hotUpdate (newOptions) {\n this._modules.update(newOptions);\n resetStore(this, true);\n};\n\nStore.prototype._withCommit = function _withCommit (fn) {\n var committing = this._committing;\n this._committing = true;\n fn();\n this._committing = committing;\n};\n\nObject.defineProperties( Store.prototype, prototypeAccessors$1 );\n\nfunction genericSubscribe (fn, subs, options) {\n if (subs.indexOf(fn) < 0) {\n options && options.prepend\n ? subs.unshift(fn)\n : subs.push(fn);\n }\n return function () {\n var i = subs.indexOf(fn);\n if (i > -1) {\n subs.splice(i, 1);\n }\n }\n}\n\nfunction resetStore (store, hot) {\n store._actions = Object.create(null);\n store._mutations = Object.create(null);\n store._wrappedGetters = Object.create(null);\n store._modulesNamespaceMap = Object.create(null);\n var state = store.state;\n // init all modules\n installModule(store, state, [], store._modules.root, true);\n // reset vm\n resetStoreVM(store, state, hot);\n}\n\nfunction resetStoreVM (store, state, hot) {\n var oldVm = store._vm;\n\n // bind store public getters\n store.getters = {};\n // reset local getters cache\n store._makeLocalGettersCache = Object.create(null);\n var wrappedGetters = store._wrappedGetters;\n var computed = {};\n forEachValue(wrappedGetters, function (fn, key) {\n // use computed to leverage its lazy-caching mechanism\n // direct inline function use will lead to closure preserving oldVm.\n // using partial to return function with only arguments preserved in closure environment.\n computed[key] = partial(fn, store);\n Object.defineProperty(store.getters, key, {\n get: function () { return store._vm[key]; },\n enumerable: true // for local getters\n });\n });\n\n // use a Vue instance to store the state tree\n // suppress warnings just in case the user has added\n // some funky global mixins\n var silent = Vue.config.silent;\n Vue.config.silent = true;\n store._vm = new Vue({\n data: {\n $$state: state\n },\n computed: computed\n });\n Vue.config.silent = silent;\n\n // enable strict mode for new vm\n if (store.strict) {\n enableStrictMode(store);\n }\n\n if (oldVm) {\n if (hot) {\n // dispatch changes in all subscribed watchers\n // to force getter re-evaluation for hot reloading.\n store._withCommit(function () {\n oldVm._data.$$state = null;\n });\n }\n Vue.nextTick(function () { return oldVm.$destroy(); });\n }\n}\n\nfunction installModule (store, rootState, path, module, hot) {\n var isRoot = !path.length;\n var namespace = store._modules.getNamespace(path);\n\n // register in namespace map\n if (module.namespaced) {\n if (store._modulesNamespaceMap[namespace] && (process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] duplicate namespace \" + namespace + \" for the namespaced module \" + (path.join('/'))));\n }\n store._modulesNamespaceMap[namespace] = module;\n }\n\n // set state\n if (!isRoot && !hot) {\n var parentState = getNestedState(rootState, path.slice(0, -1));\n var moduleName = path[path.length - 1];\n store._withCommit(function () {\n if ((process.env.NODE_ENV !== 'production')) {\n if (moduleName in parentState) {\n console.warn(\n (\"[vuex] state field \\\"\" + moduleName + \"\\\" was overridden by a module with the same name at \\\"\" + (path.join('.')) + \"\\\"\")\n );\n }\n }\n Vue.set(parentState, moduleName, module.state);\n });\n }\n\n var local = module.context = makeLocalContext(store, namespace, path);\n\n module.forEachMutation(function (mutation, key) {\n var namespacedType = namespace + key;\n registerMutation(store, namespacedType, mutation, local);\n });\n\n module.forEachAction(function (action, key) {\n var type = action.root ? key : namespace + key;\n var handler = action.handler || action;\n registerAction(store, type, handler, local);\n });\n\n module.forEachGetter(function (getter, key) {\n var namespacedType = namespace + key;\n registerGetter(store, namespacedType, getter, local);\n });\n\n module.forEachChild(function (child, key) {\n installModule(store, rootState, path.concat(key), child, hot);\n });\n}\n\n/**\n * make localized dispatch, commit, getters and state\n * if there is no namespace, just use root ones\n */\nfunction makeLocalContext (store, namespace, path) {\n var noNamespace = namespace === '';\n\n var local = {\n dispatch: noNamespace ? store.dispatch : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if ((process.env.NODE_ENV !== 'production') && !store._actions[type]) {\n console.error((\"[vuex] unknown local action type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n return store.dispatch(type, payload)\n },\n\n commit: noNamespace ? store.commit : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if ((process.env.NODE_ENV !== 'production') && !store._mutations[type]) {\n console.error((\"[vuex] unknown local mutation type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n store.commit(type, payload, options);\n }\n };\n\n // getters and state object must be gotten lazily\n // because they will be changed by vm update\n Object.defineProperties(local, {\n getters: {\n get: noNamespace\n ? function () { return store.getters; }\n : function () { return makeLocalGetters(store, namespace); }\n },\n state: {\n get: function () { return getNestedState(store.state, path); }\n }\n });\n\n return local\n}\n\nfunction makeLocalGetters (store, namespace) {\n if (!store._makeLocalGettersCache[namespace]) {\n var gettersProxy = {};\n var splitPos = namespace.length;\n Object.keys(store.getters).forEach(function (type) {\n // skip if the target getter is not match this namespace\n if (type.slice(0, splitPos) !== namespace) { return }\n\n // extract local getter type\n var localType = type.slice(splitPos);\n\n // Add a port to the getters proxy.\n // Define as getter property because\n // we do not want to evaluate the getters in this time.\n Object.defineProperty(gettersProxy, localType, {\n get: function () { return store.getters[type]; },\n enumerable: true\n });\n });\n store._makeLocalGettersCache[namespace] = gettersProxy;\n }\n\n return store._makeLocalGettersCache[namespace]\n}\n\nfunction registerMutation (store, type, handler, local) {\n var entry = store._mutations[type] || (store._mutations[type] = []);\n entry.push(function wrappedMutationHandler (payload) {\n handler.call(store, local.state, payload);\n });\n}\n\nfunction registerAction (store, type, handler, local) {\n var entry = store._actions[type] || (store._actions[type] = []);\n entry.push(function wrappedActionHandler (payload) {\n var res = handler.call(store, {\n dispatch: local.dispatch,\n commit: local.commit,\n getters: local.getters,\n state: local.state,\n rootGetters: store.getters,\n rootState: store.state\n }, payload);\n if (!isPromise(res)) {\n res = Promise.resolve(res);\n }\n if (store._devtoolHook) {\n return res.catch(function (err) {\n store._devtoolHook.emit('vuex:error', err);\n throw err\n })\n } else {\n return res\n }\n });\n}\n\nfunction registerGetter (store, type, rawGetter, local) {\n if (store._wrappedGetters[type]) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] duplicate getter key: \" + type));\n }\n return\n }\n store._wrappedGetters[type] = function wrappedGetter (store) {\n return rawGetter(\n local.state, // local state\n local.getters, // local getters\n store.state, // root state\n store.getters // root getters\n )\n };\n}\n\nfunction enableStrictMode (store) {\n store._vm.$watch(function () { return this._data.$$state }, function () {\n if ((process.env.NODE_ENV !== 'production')) {\n assert(store._committing, \"do not mutate vuex store state outside mutation handlers.\");\n }\n }, { deep: true, sync: true });\n}\n\nfunction getNestedState (state, path) {\n return path.reduce(function (state, key) { return state[key]; }, state)\n}\n\nfunction unifyObjectStyle (type, payload, options) {\n if (isObject(type) && type.type) {\n options = payload;\n payload = type;\n type = type.type;\n }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(typeof type === 'string', (\"expects string as the type, but found \" + (typeof type) + \".\"));\n }\n\n return { type: type, payload: payload, options: options }\n}\n\nfunction install (_Vue) {\n if (Vue && _Vue === Vue) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error(\n '[vuex] already installed. Vue.use(Vuex) should be called only once.'\n );\n }\n return\n }\n Vue = _Vue;\n applyMixin(Vue);\n}\n\n/**\n * Reduce the code which written in Vue.js for getting the state.\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} states # Object's item can be a function which accept state and getters for param, you can do something for state and getters in it.\n * @param {Object}\n */\nvar mapState = normalizeNamespace(function (namespace, states) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(states)) {\n console.error('[vuex] mapState: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(states).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedState () {\n var state = this.$store.state;\n var getters = this.$store.getters;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapState', namespace);\n if (!module) {\n return\n }\n state = module.context.state;\n getters = module.context.getters;\n }\n return typeof val === 'function'\n ? val.call(this, state, getters)\n : state[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for committing the mutation\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} mutations # Object's item can be a function which accept `commit` function as the first param, it can accept another params. You can commit mutation and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapMutations = normalizeNamespace(function (namespace, mutations) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(mutations)) {\n console.error('[vuex] mapMutations: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(mutations).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedMutation () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n // Get the commit method from store\n var commit = this.$store.commit;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapMutations', namespace);\n if (!module) {\n return\n }\n commit = module.context.commit;\n }\n return typeof val === 'function'\n ? val.apply(this, [commit].concat(args))\n : commit.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for getting the getters\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} getters\n * @return {Object}\n */\nvar mapGetters = normalizeNamespace(function (namespace, getters) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(getters)) {\n console.error('[vuex] mapGetters: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(getters).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n // The namespace has been mutated by normalizeNamespace\n val = namespace + val;\n res[key] = function mappedGetter () {\n if (namespace && !getModuleByNamespace(this.$store, 'mapGetters', namespace)) {\n return\n }\n if ((process.env.NODE_ENV !== 'production') && !(val in this.$store.getters)) {\n console.error((\"[vuex] unknown getter: \" + val));\n return\n }\n return this.$store.getters[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for dispatch the action\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} actions # Object's item can be a function which accept `dispatch` function as the first param, it can accept anthor params. You can dispatch action and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapActions = normalizeNamespace(function (namespace, actions) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(actions)) {\n console.error('[vuex] mapActions: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(actions).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedAction () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n // get dispatch function from store\n var dispatch = this.$store.dispatch;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapActions', namespace);\n if (!module) {\n return\n }\n dispatch = module.context.dispatch;\n }\n return typeof val === 'function'\n ? val.apply(this, [dispatch].concat(args))\n : dispatch.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\n/**\n * Rebinding namespace param for mapXXX function in special scoped, and return them by simple object\n * @param {String} namespace\n * @return {Object}\n */\nvar createNamespacedHelpers = function (namespace) { return ({\n mapState: mapState.bind(null, namespace),\n mapGetters: mapGetters.bind(null, namespace),\n mapMutations: mapMutations.bind(null, namespace),\n mapActions: mapActions.bind(null, namespace)\n}); };\n\n/**\n * Normalize the map\n * normalizeMap([1, 2, 3]) => [ { key: 1, val: 1 }, { key: 2, val: 2 }, { key: 3, val: 3 } ]\n * normalizeMap({a: 1, b: 2, c: 3}) => [ { key: 'a', val: 1 }, { key: 'b', val: 2 }, { key: 'c', val: 3 } ]\n * @param {Array|Object} map\n * @return {Object}\n */\nfunction normalizeMap (map) {\n if (!isValidMap(map)) {\n return []\n }\n return Array.isArray(map)\n ? map.map(function (key) { return ({ key: key, val: key }); })\n : Object.keys(map).map(function (key) { return ({ key: key, val: map[key] }); })\n}\n\n/**\n * Validate whether given map is valid or not\n * @param {*} map\n * @return {Boolean}\n */\nfunction isValidMap (map) {\n return Array.isArray(map) || isObject(map)\n}\n\n/**\n * Return a function expect two param contains namespace and map. it will normalize the namespace and then the param's function will handle the new namespace and the map.\n * @param {Function} fn\n * @return {Function}\n */\nfunction normalizeNamespace (fn) {\n return function (namespace, map) {\n if (typeof namespace !== 'string') {\n map = namespace;\n namespace = '';\n } else if (namespace.charAt(namespace.length - 1) !== '/') {\n namespace += '/';\n }\n return fn(namespace, map)\n }\n}\n\n/**\n * Search a special module from store by namespace. if module not exist, print error message.\n * @param {Object} store\n * @param {String} helper\n * @param {String} namespace\n * @return {Object}\n */\nfunction getModuleByNamespace (store, helper, namespace) {\n var module = store._modulesNamespaceMap[namespace];\n if ((process.env.NODE_ENV !== 'production') && !module) {\n console.error((\"[vuex] module namespace not found in \" + helper + \"(): \" + namespace));\n }\n return module\n}\n\n// Credits: borrowed code from fcomb/redux-logger\n\nfunction createLogger (ref) {\n if ( ref === void 0 ) ref = {};\n var collapsed = ref.collapsed; if ( collapsed === void 0 ) collapsed = true;\n var filter = ref.filter; if ( filter === void 0 ) filter = function (mutation, stateBefore, stateAfter) { return true; };\n var transformer = ref.transformer; if ( transformer === void 0 ) transformer = function (state) { return state; };\n var mutationTransformer = ref.mutationTransformer; if ( mutationTransformer === void 0 ) mutationTransformer = function (mut) { return mut; };\n var actionFilter = ref.actionFilter; if ( actionFilter === void 0 ) actionFilter = function (action, state) { return true; };\n var actionTransformer = ref.actionTransformer; if ( actionTransformer === void 0 ) actionTransformer = function (act) { return act; };\n var logMutations = ref.logMutations; if ( logMutations === void 0 ) logMutations = true;\n var logActions = ref.logActions; if ( logActions === void 0 ) logActions = true;\n var logger = ref.logger; if ( logger === void 0 ) logger = console;\n\n return function (store) {\n var prevState = deepCopy(store.state);\n\n if (typeof logger === 'undefined') {\n return\n }\n\n if (logMutations) {\n store.subscribe(function (mutation, state) {\n var nextState = deepCopy(state);\n\n if (filter(mutation, prevState, nextState)) {\n var formattedTime = getFormattedTime();\n var formattedMutation = mutationTransformer(mutation);\n var message = \"mutation \" + (mutation.type) + formattedTime;\n\n startMessage(logger, message, collapsed);\n logger.log('%c prev state', 'color: #9E9E9E; font-weight: bold', transformer(prevState));\n logger.log('%c mutation', 'color: #03A9F4; font-weight: bold', formattedMutation);\n logger.log('%c next state', 'color: #4CAF50; font-weight: bold', transformer(nextState));\n endMessage(logger);\n }\n\n prevState = nextState;\n });\n }\n\n if (logActions) {\n store.subscribeAction(function (action, state) {\n if (actionFilter(action, state)) {\n var formattedTime = getFormattedTime();\n var formattedAction = actionTransformer(action);\n var message = \"action \" + (action.type) + formattedTime;\n\n startMessage(logger, message, collapsed);\n logger.log('%c action', 'color: #03A9F4; font-weight: bold', formattedAction);\n endMessage(logger);\n }\n });\n }\n }\n}\n\nfunction startMessage (logger, message, collapsed) {\n var startMessage = collapsed\n ? logger.groupCollapsed\n : logger.group;\n\n // render\n try {\n startMessage.call(logger, message);\n } catch (e) {\n logger.log(message);\n }\n}\n\nfunction endMessage (logger) {\n try {\n logger.groupEnd();\n } catch (e) {\n logger.log('—— log end ——');\n }\n}\n\nfunction getFormattedTime () {\n var time = new Date();\n return (\" @ \" + (pad(time.getHours(), 2)) + \":\" + (pad(time.getMinutes(), 2)) + \":\" + (pad(time.getSeconds(), 2)) + \".\" + (pad(time.getMilliseconds(), 3)))\n}\n\nfunction repeat (str, times) {\n return (new Array(times + 1)).join(str)\n}\n\nfunction pad (num, maxLength) {\n return repeat('0', maxLength - num.toString().length) + num\n}\n\nvar index = {\n Store: Store,\n install: install,\n version: '3.6.2',\n mapState: mapState,\n mapMutations: mapMutations,\n mapGetters: mapGetters,\n mapActions: mapActions,\n createNamespacedHelpers: createNamespacedHelpers,\n createLogger: createLogger\n};\n\nexport default index;\nexport { Store, createLogger, createNamespacedHelpers, install, mapActions, mapGetters, mapMutations, mapState };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vuex/dist/vuex.esm.js\n// module id = 235\n// module chunks = 0","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader/lib/css-base.js\n// module id = 236\n// module chunks = 0","module.exports = function escape(url) {\n if (typeof url !== 'string') {\n return url\n }\n // If url is already wrapped in quotes, remove them\n if (/^['\"].*['\"]$/.test(url)) {\n url = url.slice(1, -1);\n }\n // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n if (/[\"'() \\t\\n]/.test(url)) {\n return '\"' + url.replace(/\"/g, '\\\\\"').replace(/\\n/g, '\\\\n') + '\"'\n }\n\n return url\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader/lib/url/escape.js\n// module id = 237\n// module chunks = 0","/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n Modified by Evan You @yyx990803\n*/\n\nimport listToStyles from './listToStyles'\n\nvar hasDocument = typeof document !== 'undefined'\n\nif (typeof DEBUG !== 'undefined' && DEBUG) {\n if (!hasDocument) {\n throw new Error(\n 'vue-style-loader cannot be used in a non-browser environment. ' +\n \"Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\"\n ) }\n}\n\n/*\ntype StyleObject = {\n id: number;\n parts: Array<StyleObjectPart>\n}\n\ntype StyleObjectPart = {\n css: string;\n media: string;\n sourceMap: ?string\n}\n*/\n\nvar stylesInDom = {/*\n [id: number]: {\n id: number,\n refs: number,\n parts: Array<(obj?: StyleObjectPart) => void>\n }\n*/}\n\nvar head = hasDocument && (document.head || document.getElementsByTagName('head')[0])\nvar singletonElement = null\nvar singletonCounter = 0\nvar isProduction = false\nvar noop = function () {}\nvar options = null\nvar ssrIdKey = 'data-vue-ssr-id'\n\n// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n// tags it will allow on a page\nvar isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\b/.test(navigator.userAgent.toLowerCase())\n\nexport default function addStylesClient (parentId, list, _isProduction, _options) {\n isProduction = _isProduction\n\n options = _options || {}\n\n var styles = listToStyles(parentId, list)\n addStylesToDom(styles)\n\n return function update (newList) {\n var mayRemove = []\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n domStyle.refs--\n mayRemove.push(domStyle)\n }\n if (newList) {\n styles = listToStyles(parentId, newList)\n addStylesToDom(styles)\n } else {\n styles = []\n }\n for (var i = 0; i < mayRemove.length; i++) {\n var domStyle = mayRemove[i]\n if (domStyle.refs === 0) {\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j]()\n }\n delete stylesInDom[domStyle.id]\n }\n }\n }\n}\n\nfunction addStylesToDom (styles /* Array<StyleObject> */) {\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n if (domStyle) {\n domStyle.refs++\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j](item.parts[j])\n }\n for (; j < item.parts.length; j++) {\n domStyle.parts.push(addStyle(item.parts[j]))\n }\n if (domStyle.parts.length > item.parts.length) {\n domStyle.parts.length = item.parts.length\n }\n } else {\n var parts = []\n for (var j = 0; j < item.parts.length; j++) {\n parts.push(addStyle(item.parts[j]))\n }\n stylesInDom[item.id] = { id: item.id, refs: 1, parts: parts }\n }\n }\n}\n\nfunction createStyleElement () {\n var styleElement = document.createElement('style')\n styleElement.type = 'text/css'\n head.appendChild(styleElement)\n return styleElement\n}\n\nfunction addStyle (obj /* StyleObjectPart */) {\n var update, remove\n var styleElement = document.querySelector('style[' + ssrIdKey + '~=\"' + obj.id + '\"]')\n\n if (styleElement) {\n if (isProduction) {\n // has SSR styles and in production mode.\n // simply do nothing.\n return noop\n } else {\n // has SSR styles but in dev mode.\n // for some reason Chrome can't handle source map in server-rendered\n // style tags - source maps in <style> only works if the style tag is\n // created and inserted dynamically. So we remove the server rendered\n // styles and inject new ones.\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n if (isOldIE) {\n // use singleton mode for IE9.\n var styleIndex = singletonCounter++\n styleElement = singletonElement || (singletonElement = createStyleElement())\n update = applyToSingletonTag.bind(null, styleElement, styleIndex, false)\n remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true)\n } else {\n // use multi-style-tag mode in all other cases\n styleElement = createStyleElement()\n update = applyToTag.bind(null, styleElement)\n remove = function () {\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n update(obj)\n\n return function updateStyle (newObj /* StyleObjectPart */) {\n if (newObj) {\n if (newObj.css === obj.css &&\n newObj.media === obj.media &&\n newObj.sourceMap === obj.sourceMap) {\n return\n }\n update(obj = newObj)\n } else {\n remove()\n }\n }\n}\n\nvar replaceText = (function () {\n var textStore = []\n\n return function (index, replacement) {\n textStore[index] = replacement\n return textStore.filter(Boolean).join('\\n')\n }\n})()\n\nfunction applyToSingletonTag (styleElement, index, remove, obj) {\n var css = remove ? '' : obj.css\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = replaceText(index, css)\n } else {\n var cssNode = document.createTextNode(css)\n var childNodes = styleElement.childNodes\n if (childNodes[index]) styleElement.removeChild(childNodes[index])\n if (childNodes.length) {\n styleElement.insertBefore(cssNode, childNodes[index])\n } else {\n styleElement.appendChild(cssNode)\n }\n }\n}\n\nfunction applyToTag (styleElement, obj) {\n var css = obj.css\n var media = obj.media\n var sourceMap = obj.sourceMap\n\n if (media) {\n styleElement.setAttribute('media', media)\n }\n if (options.ssrId) {\n styleElement.setAttribute(ssrIdKey, obj.id)\n }\n\n if (sourceMap) {\n // https://developer.chrome.com/devtools/docs/javascript-debugging\n // this makes source maps inside style tags work properly in Chrome\n css += '\\n/*# sourceURL=' + sourceMap.sources[0] + ' */'\n // http://stackoverflow.com/a/26603875\n css += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */'\n }\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild)\n }\n styleElement.appendChild(document.createTextNode(css))\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-style-loader/lib/addStylesClient.js\n// module id = 238\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file diff --git a/documentation/LangSwitcher.vue b/documentation/LangSwitcher.vue deleted file mode 100644 index 3a30d22a..00000000 --- a/documentation/LangSwitcher.vue +++ /dev/null @@ -1,19 +0,0 @@ -<template lang="pug"> - div.tabs - a.tabs__link( - v-for="lang in langs" - v-bind:class="{'tabs__link--active': lang === current}" - @click="select(lang)" - ) {{lang}} -</template> - -<script> -export default { - props: ['langs', 'current'], - methods: { - select (lang) { - this.$emit('select', lang) - } - } -} -</script> diff --git a/documentation/MultiselectExample.vue b/documentation/MultiselectExample.vue deleted file mode 100644 index cffb8c09..00000000 --- a/documentation/MultiselectExample.vue +++ /dev/null @@ -1,59 +0,0 @@ -<template lang="pug"> -div - multiselect( - v-model="value", - label="name", - track-by="name", - placeholder="Pick badges", - :options="badges", - :multiple="true", - :show-labels="false", - :limit="3", - @tag="onTagging" - ) - template(slot="option", slot-scope="props") - span.badge__name {{ props.option.name }} - img.badge__img(:src="props.option.img", :alt="props.option.name") - span(slot="noResult"). - Badge not found. Suggest a badge <a class="typo__link" href="https://github.com/shentao/vue-multiselect/issues" target="_blank">here</a>. -</template> - -<script> -import Multiselect from '../src/Multiselect' - -export default { - components: { - Multiselect - }, - data () { - return { - badges: [ - { img: 'https://camo.githubusercontent.com/d0e25b09a82bc4bfde9f1e048a092752eebbb4f3/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c75652e7376673f7374796c653d666c6174', name: 'License' }, - { img: 'https://img.shields.io/github/stars/shentao/vue-multiselect.svg?label=Stars', name: 'GitHub Stars' }, - { img: 'https://camo.githubusercontent.com/64f9a2333bb303d34b1587e1436b24dee6a8e134/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f646d2f7675652d6d756c746973656c6563742e737667', name: 'Npm Monthly Downloads' }, - { img: 'https://camo.githubusercontent.com/47ff0923e959e736113988e900268dfc7a601d3b/68747470733a2f2f636972636c6563692e636f6d2f67682f6d6f6e74657261696c2f7675652d6d756c746973656c6563742f747265652f6d61737465722e7376673f7374796c653d736869656c6426636972636c652d746f6b656e3d35633933316666323866643132353837363130663833353437326265636464353134643039636566', name: 'Full Test Coverage' }, - { img: 'https://img.shields.io/badge/dependencies-none-brightgreen.svg?style=flat', name: 'NO Dependencies' } - ], - value: [] - } - }, - methods: { - onTagging (newTag) { - this.source.push({ name: newTag, language: newTag }) - this.value.push({ name: newTag, language: newTag }) - } - } -} -</script> - -<style lang="sass"> - .badge__img - vertical-align: middle - float: right - - .badge__name - vertical-align: middle - display: inline-block - margin-left: 5px - float: left -</style> diff --git a/documentation/_mixins.pug b/documentation/_mixins.pug deleted file mode 100644 index 05c9f4ab..00000000 --- a/documentation/_mixins.pug +++ /dev/null @@ -1,65 +0,0 @@ -- function hyphenate (path) { -- return path -- .replace(/^[A-Z]/, x => x.toLowerCase()) -- .replace(/[A-Z ]/g, x => '-' + x.toLowerCase()) -- .replace(/[^A-Za-z]/g, '-') -- .replace(/(^-+|-+$)/g, '') -- .replace(/-{2,}/g, '-') -- } -- const toc = []; - -mixin renderToc() - - const tocSwapBuffer = pug_html; - - pug_html = ''; - for s in toc - +tocSection(s.name) - for sub in s.subs - +tocSubsection(sub) - - pug_html = tocSwapBuffer.replace('%%_TOC_%%', pug_html); - -mixin tocSection(name) - li.list__heading - a.link.blank__link(href="#" + hyphenate(name))=name - -mixin tocSubsection(name) - - var customClass = "{ 'list__link--active': currentPosition === 'sub-" + hyphenate(name) + "' }" - li.list__element - a.link.list__link(:class=customClass, href="#sub-" + hyphenate(name))=name - - -mixin section(name) - - toc.push({name: name, subs: []}) - .grid__row - .grid__column - section(id=hyphenate(name)) - h1.typo__h1=name - hr.typo__hr - if block - block - -mixin subsection(name) - - toc[toc.length - 1].subs.push(name) - .grid__row - .grid__column - h2.typo__h2(id='sub-' + hyphenate(name) data-section)=name - if block - block - -mixin example(path) - .example.grid__row - if block - block - .grid__column.grid__unit--md-5 - #{hyphenate(path)} - .grid__column.grid__unit--md-7 - label.typo__label Code sample - div - pre(v-pre).language-javascript - code=require('!!raw-loader!vue-loader/lib/selector?type=script!examples/' + path + '.vue').replace(/^[\/\n]*/m,'') - lang-switcher(v-bind:langs="markupLangs" v-bind:current="markupLanguage" v-on:select="selectLanguage") - div(v-show="markupLanguage === 'pug'") - pre(v-pre).language-pug - code=require('!!raw-loader!vue-loader/lib/selector?type=template!examples/' + path + '.vue') - div(v-show="markupLanguage === 'html'") - pre(v-pre).language-html - code=require('!!pug-loader?pretty!vue-loader/lib/selector?type=template!examples/' + path + '.vue')() diff --git a/documentation/assets/_functions.sass b/documentation/assets/_functions.sass index 09c72905..a286d027 100644 --- a/documentation/assets/_functions.sass +++ b/documentation/assets/_functions.sass @@ -1,8 +1,8 @@ @function no-unit($value) - @return $value / ($value * 0 + 1) + @return calc($value / ($value * 0 + 1)) @function to-rem($rem, $base-size: 16px) - $rem: no-unit($rem) / no-unit($base-size) * 1rem + $rem: calc(no-unit($rem) / no-unit($base-size)) * 1rem @if ($rem == 0rem) $rem: 0 @return $rem diff --git a/documentation/assets/base/_functions.sass b/documentation/assets/base/_functions.sass index 79c4b912..38632987 100644 --- a/documentation/assets/base/_functions.sass +++ b/documentation/assets/base/_functions.sass @@ -1,8 +1,10 @@ +@use 'sass:math' + @function no-unit($value) - @return $value / ($value * 0 + 1) + @return math.div($value, ($value * 0 + 1)) @function to-rem($rem, $base-size: $global-font-size) - $rem: no-unit($rem) / no-unit($base-size) * 1rem + $rem: calc(no-unit($rem) / no-unit($base-size) * 1rem) @if ($rem == 0rem) $rem: 0 @return $rem diff --git a/documentation/assets/base/_typo.sass b/documentation/assets/base/_typo.sass index 6fda4f26..2ae4854f 100644 --- a/documentation/assets/base/_typo.sass +++ b/documentation/assets/base/_typo.sass @@ -54,7 +54,7 @@ body color: $global-font-color font-size: $global-font-size -*::selection, +*::selection background: $primary-color color: #fff @@ -192,13 +192,5 @@ hr, .typo--bold, strong font-weight: $global-font-weight-bold -kbd, -code:not([class*="language-"]) - color: $primary-color - padding: 3px 5px - border-radius: 4px - background: $tertiary-color - font-size: rem(15px) - pre font-size: rem(14px) diff --git a/documentation/assets/components/_buttons.sass b/documentation/assets/components/_buttons.sass index 8319193c..6cf9478a 100644 --- a/documentation/assets/components/_buttons.sass +++ b/documentation/assets/components/_buttons.sass @@ -106,7 +106,7 @@ $button-border: 3px +button-variant('info', $info-color) .button__group - margin-bottom: $grid-gutter-width / 2 + margin-bottom: calc($grid-gutter-width / 2) width: 100% .button @@ -131,4 +131,4 @@ $button-group-count: 3 .button__group--#{$i} .button - width: 100% / $i + width: calc(100% / $i) diff --git a/documentation/assets/components/_grid.sass b/documentation/assets/components/_grid.sass index de8aba60..3d19b4c6 100644 --- a/documentation/assets/components/_grid.sass +++ b/documentation/assets/components/_grid.sass @@ -1,21 +1,21 @@ =calc-grid-columns($class, $i: 1) @for $i from 1 through $grid-columns .grid__unit--#{$class}-#{$i} - width: percentage($i / $grid-columns) + width: percentage(calc($i / $grid-columns)) .grid__push--#{$class}-#{$i} - left: percentage($i / $grid-columns) + left: percentage(calc($i / $grid-columns)) right: auto .grid__pull--#{$class}-#{$i} - right: percentage($i / $grid-columns) + right: percentage(calc($i / $grid-columns)) left: auto .grid__offset--#{$class}-#{$i} - margin-left: percentage($i / $grid-columns) + margin-left: percentage(calc($i / $grid-columns)) .blocks--#{$class}-#{$i} .blocks__element - width: calc(#{percentage(1 / ($grid-columns / ($grid-columns / $i)))} - #{$grid-gutter-width / 2}) + width: calc(#{percentage(calc(1 / ($grid-columns / ($grid-columns / $i))))} - #{calc($grid-gutter-width / 2)}) // config $grid-columns: $global-grid-columns @@ -43,7 +43,7 @@ html vertical-align: top width: 100% position: relative - padding: 0 ($grid-gutter-width/2) + padding: 0 calc($grid-gutter-width/2) .grid__column--centered display: block @@ -71,7 +71,7 @@ html max-width: $grid-max-width .grid__row - margin: 0 ($grid-gutter-width/-2) + margin: 0 calc($grid-gutter-width/-2) &.grid__row--collapse @@ -91,14 +91,14 @@ html right: auto !important .blocks - margin: 0 $grid-gutter-width / -4 + margin: 0 calc($grid-gutter-width / -4) .blocks__element position: relative float: left box-sizing: border-box transition: background .2s ease - margin: $grid-gutter-width/4 + margin: calc($grid-gutter-width/4) +calc-grid-columns(sm) diff --git a/documentation/assets/components/_inputs.sass b/documentation/assets/components/_inputs.sass index 184cc80c..613565f2 100644 --- a/documentation/assets/components/_inputs.sass +++ b/documentation/assets/components/_inputs.sass @@ -79,7 +79,7 @@ $input-addon-weight: 700 min-height: rem(82px) resize: none line-height: 1.4 - padding-top: $input-height / 4 + padding-top: calc($input-height / 4) .form__label font-size: rem($input-label-size) @@ -94,8 +94,8 @@ $input-addon-weight: 700 @extend .form__label display: inline-block - margin-right: rem($grid-gutter-width / 2) - margin-left: rem($grid-gutter-width / 5) + margin-right: rem(calc($grid-gutter-width / 2)) + margin-left: rem(calc($grid-gutter-width / 5)) .form-group margin-bottom: rem($input-margin-bottom) diff --git a/docs/static/posters/creatures.png b/documentation/assets/posters/creatures.png similarity index 100% rename from docs/static/posters/creatures.png rename to documentation/assets/posters/creatures.png diff --git a/docs/static/posters/fleet.png b/documentation/assets/posters/fleet.png similarity index 100% rename from docs/static/posters/fleet.png rename to documentation/assets/posters/fleet.png diff --git a/docs/static/posters/resource_lab.png b/documentation/assets/posters/resource_lab.png similarity index 100% rename from docs/static/posters/resource_lab.png rename to documentation/assets/posters/resource_lab.png diff --git a/docs/static/posters/trading_post.png b/documentation/assets/posters/trading_post.png similarity index 100% rename from docs/static/posters/trading_post.png rename to documentation/assets/posters/trading_post.png diff --git a/documentation/assets/prism.js b/documentation/assets/prism.js deleted file mode 100644 index 6c7a1ea5..00000000 --- a/documentation/assets/prism.js +++ /dev/null @@ -1,14 +0,0 @@ -/* http://prismjs.com/download.html?themes=prism&languages=markup+css+clike+javascript+coffeescript+css-extras+git+jade+sass+scss&plugins=show-language+remove-initial-line-feed */ -var _self="undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{},Prism=function(){var e=/\blang(?:uage)?-(?!\*)(\w+)\b/i,t=_self.Prism={util:{encode:function(e){return e instanceof n?new n(e.type,t.util.encode(e.content),e.alias):"Array"===t.util.type(e)?e.map(t.util.encode):e.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).match(/\[object (\w+)\]/)[1]},clone:function(e){var n=t.util.type(e);switch(n){case"Object":var a={};for(var r in e)e.hasOwnProperty(r)&&(a[r]=t.util.clone(e[r]));return a;case"Array":return e.map&&e.map(function(e){return t.util.clone(e)})}return e}},languages:{extend:function(e,n){var a=t.util.clone(t.languages[e]);for(var r in n)a[r]=n[r];return a},insertBefore:function(e,n,a,r){r=r||t.languages;var l=r[e];if(2==arguments.length){a=arguments[1];for(var i in a)a.hasOwnProperty(i)&&(l[i]=a[i]);return l}var o={};for(var s in l)if(l.hasOwnProperty(s)){if(s==n)for(var i in a)a.hasOwnProperty(i)&&(o[i]=a[i]);o[s]=l[s]}return t.languages.DFS(t.languages,function(t,n){n===r[e]&&t!=e&&(this[t]=o)}),r[e]=o},DFS:function(e,n,a){for(var r in e)e.hasOwnProperty(r)&&(n.call(e,r,e[r],a||r),"Object"===t.util.type(e[r])?t.languages.DFS(e[r],n):"Array"===t.util.type(e[r])&&t.languages.DFS(e[r],n,r))}},plugins:{},highlightAll:function(e,n){for(var a,r=document.querySelectorAll('code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'),l=0;a=r[l++];)t.highlightElement(a,e===!0,n)},highlightElement:function(n,a,r){for(var l,i,o=n;o&&!e.test(o.className);)o=o.parentNode;o&&(l=(o.className.match(e)||[,""])[1],i=t.languages[l]),n.className=n.className.replace(e,"").replace(/\s+/g," ")+" language-"+l,o=n.parentNode,/pre/i.test(o.nodeName)&&(o.className=o.className.replace(e,"").replace(/\s+/g," ")+" language-"+l);var s=n.textContent,u={element:n,language:l,grammar:i,code:s};if(!s||!i)return t.hooks.run("complete",u),void 0;if(t.hooks.run("before-highlight",u),a&&_self.Worker){var g=new Worker(t.filename);g.onmessage=function(e){u.highlightedCode=e.data,t.hooks.run("before-insert",u),u.element.innerHTML=u.highlightedCode,r&&r.call(u.element),t.hooks.run("after-highlight",u),t.hooks.run("complete",u)},g.postMessage(JSON.stringify({language:u.language,code:u.code,immediateClose:!0}))}else u.highlightedCode=t.highlight(u.code,u.grammar,u.language),t.hooks.run("before-insert",u),u.element.innerHTML=u.highlightedCode,r&&r.call(n),t.hooks.run("after-highlight",u),t.hooks.run("complete",u)},highlight:function(e,a,r){var l=t.tokenize(e,a);return n.stringify(t.util.encode(l),r)},tokenize:function(e,n){var a=t.Token,r=[e],l=n.rest;if(l){for(var i in l)n[i]=l[i];delete n.rest}e:for(var i in n)if(n.hasOwnProperty(i)&&n[i]){var o=n[i];o="Array"===t.util.type(o)?o:[o];for(var s=0;s<o.length;++s){var u=o[s],g=u.inside,c=!!u.lookbehind,f=0,h=u.alias;u=u.pattern||u;for(var p=0;p<r.length;p++){var d=r[p];if(r.length>e.length)break e;if(!(d instanceof a)){u.lastIndex=0;var m=u.exec(d);if(m){c&&(f=m[1].length);var y=m.index-1+f,m=m[0].slice(f),v=m.length,k=y+v,b=d.slice(0,y+1),w=d.slice(k+1),P=[p,1];b&&P.push(b);var A=new a(i,g?t.tokenize(m,g):m,h);P.push(A),w&&P.push(w),Array.prototype.splice.apply(r,P)}}}}}return r},hooks:{all:{},add:function(e,n){var a=t.hooks.all;a[e]=a[e]||[],a[e].push(n)},run:function(e,n){var a=t.hooks.all[e];if(a&&a.length)for(var r,l=0;r=a[l++];)r(n)}}},n=t.Token=function(e,t,n){this.type=e,this.content=t,this.alias=n};if(n.stringify=function(e,a,r){if("string"==typeof e)return e;if("Array"===t.util.type(e))return e.map(function(t){return n.stringify(t,a,e)}).join("");var l={type:e.type,content:n.stringify(e.content,a,r),tag:"span",classes:["token",e.type],attributes:{},language:a,parent:r};if("comment"==l.type&&(l.attributes.spellcheck="true"),e.alias){var i="Array"===t.util.type(e.alias)?e.alias:[e.alias];Array.prototype.push.apply(l.classes,i)}t.hooks.run("wrap",l);var o="";for(var s in l.attributes)o+=(o?" ":"")+s+'="'+(l.attributes[s]||"")+'"';return"<"+l.tag+' class="'+l.classes.join(" ")+'" '+o+">"+l.content+"</"+l.tag+">"},!_self.document)return _self.addEventListener?(_self.addEventListener("message",function(e){var n=JSON.parse(e.data),a=n.language,r=n.code,l=n.immediateClose;_self.postMessage(t.highlight(r,t.languages[a],a)),l&&_self.close()},!1),_self.Prism):_self.Prism;var a=document.getElementsByTagName("script");return a=a[a.length-1],a&&(t.filename=a.src,document.addEventListener&&!a.hasAttribute("data-manual")&&document.addEventListener("DOMContentLoaded",t.highlightAll)),_self.Prism}();"undefined"!=typeof module&&module.exports&&(module.exports=Prism),"undefined"!=typeof global&&(global.Prism=Prism); -Prism.languages.markup={comment:/<!--[\w\W]*?-->/,prolog:/<\?[\w\W]+?\?>/,doctype:/<!DOCTYPE[\w\W]+?>/,cdata:/<!\[CDATA\[[\w\W]*?]]>/i,tag:{pattern:/<\/?(?!\d)[^\s>\/=.$<]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\\1|\\?(?!\1)[\w\W])*\1|[^\s'">=]+))?)*\s*\/?>/i,inside:{tag:{pattern:/^<\/?[^\s>\/]+/i,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"attr-value":{pattern:/=(?:('|")[\w\W]*?(\1)|[^\s>]+)/i,inside:{punctuation:/[=>"']/}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:/&#?[\da-z]{1,8};/i},Prism.hooks.add("wrap",function(a){"entity"===a.type&&(a.attributes.title=a.content.replace(/&/,"&"))}),Prism.languages.xml=Prism.languages.markup,Prism.languages.html=Prism.languages.markup,Prism.languages.mathml=Prism.languages.markup,Prism.languages.svg=Prism.languages.markup; -Prism.languages.css={comment:/\/\*[\w\W]*?\*\//,atrule:{pattern:/@[\w-]+?.*?(;|(?=\s*\{))/i,inside:{rule:/@[\w-]+/}},url:/url\((?:(["'])(\\(?:\r\n|[\w\W])|(?!\1)[^\\\r\n])*\1|.*?)\)/i,selector:/[^\{\}\s][^\{\};]*?(?=\s*\{)/,string:/("|')(\\(?:\r\n|[\w\W])|(?!\1)[^\\\r\n])*\1/,property:/(\b|\B)[\w-]+(?=\s*:)/i,important:/\B!important\b/i,"function":/[-a-z0-9]+(?=\()/i,punctuation:/[(){};:]/},Prism.languages.css.atrule.inside.rest=Prism.util.clone(Prism.languages.css),Prism.languages.markup&&(Prism.languages.insertBefore("markup","tag",{style:{pattern:/(<style[\w\W]*?>)[\w\W]*?(?=<\/style>)/i,lookbehind:!0,inside:Prism.languages.css,alias:"language-css"}}),Prism.languages.insertBefore("inside","attr-value",{"style-attr":{pattern:/\s*style=("|').*?\1/i,inside:{"attr-name":{pattern:/^\s*style/i,inside:Prism.languages.markup.tag.inside},punctuation:/^\s*=\s*['"]|['"]\s*$/,"attr-value":{pattern:/.+/i,inside:Prism.languages.css}},alias:"language-css"}},Prism.languages.markup.tag)); -Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\w\W]*?\*\//,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0}],string:/(["'])(\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,"class-name":{pattern:/((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[a-z0-9_\.\\]+/i,lookbehind:!0,inside:{punctuation:/(\.|\\)/}},keyword:/\b(if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,"boolean":/\b(true|false)\b/,"function":/[a-z0-9_]+(?=\()/i,number:/\b-?(?:0x[\da-f]+|\d*\.?\d+(?:e[+-]?\d+)?)\b/i,operator:/--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/,punctuation:/[{}[\];(),.:]/}; -Prism.languages.javascript=Prism.languages.extend("clike",{keyword:/\b(as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)\b/,number:/\b-?(0x[\dA-Fa-f]+|0b[01]+|0o[0-7]+|\d*\.?\d+([Ee][+-]?\d+)?|NaN|Infinity)\b/,"function":/[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*(?=\()/i}),Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:/(^|[^\/])\/(?!\/)(\[.+?]|\\.|[^\/\\\r\n])+\/[gimyu]{0,5}(?=\s*($|[\r\n,.;})]))/,lookbehind:!0}}),Prism.languages.insertBefore("javascript","class-name",{"template-string":{pattern:/`(?:\\`|\\?[^`])*`/,inside:{interpolation:{pattern:/\$\{[^}]+\}/,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:Prism.languages.javascript}},string:/[\s\S]+/}}}),Prism.languages.markup&&Prism.languages.insertBefore("markup","tag",{script:{pattern:/(<script[\w\W]*?>)[\w\W]*?(?=<\/script>)/i,lookbehind:!0,inside:Prism.languages.javascript,alias:"language-javascript"}}),Prism.languages.js=Prism.languages.javascript; -!function(e){var n=/#(?!\{).+/,t={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:n,string:[/'(?:\\?[^\\])*?'/,{pattern:/"(?:\\?[^\\])*?"/,inside:{interpolation:t}}],keyword:/\b(and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:n,interpolation:t}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\?[\s\S])*?`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},rest:e.languages.javascript}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,alias:"string"},{pattern:/"""[\s\S]*?"""/,alias:"string",inside:{interpolation:t}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/})}(Prism); -Prism.languages.css.selector={pattern:/[^\{\}\s][^\{\}]*(?=\s*\{)/,inside:{"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+(?:\(.*\))?/,"class":/\.[-:\.\w]+/,id:/#[-:\.\w]+/}},Prism.languages.insertBefore("css","function",{hexcode:/#[\da-f]{3,6}/i,entity:/\\[\da-f]{1,8}/i,number:/[\d%\.]+/}); -Prism.languages.git={comment:/^#.*/m,deleted:/^[-–].*/m,inserted:/^\+.*/m,string:/("|')(\\?.)*?\1/m,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s(--|-)\w+/m}},coord:/^@@.*@@$/m,commit_sha1:/^commit \w{40}$/m}; -!function(e){e.languages.jade={comment:{pattern:/(^([\t ]*))\/\/.*((?:\r?\n|\r)\2[\t ]+.+)*/m,lookbehind:!0},"multiline-script":{pattern:/(^([\t ]*)script\b.*\.[\t ]*)((?:\r?\n|\r(?!\n))(?:\2[\t ]+.+|\s*?(?=\r?\n|\r)))+/m,lookbehind:!0,inside:{rest:e.languages.javascript}},filter:{pattern:/(^([\t ]*)):.+((?:\r?\n|\r(?!\n))(?:\2[\t ]+.+|\s*?(?=\r?\n|\r)))+/m,lookbehind:!0,inside:{"filter-name":{pattern:/^:[\w-]+/,alias:"variable"}}},"multiline-plain-text":{pattern:/(^([\t ]*)[\w\-#.]+\.[\t ]*)((?:\r?\n|\r(?!\n))(?:\2[\t ]+.+|\s*?(?=\r?\n|\r)))+/m,lookbehind:!0},markup:{pattern:/(^[\t ]*)<.+/m,lookbehind:!0,inside:{rest:e.languages.markup}},doctype:{pattern:/((?:^|\n)[\t ]*)doctype(?: .+)?/,lookbehind:!0},"flow-control":{pattern:/(^[\t ]*)(?:if|unless|else|case|when|default|each|while)\b(?: .+)?/m,lookbehind:!0,inside:{each:{pattern:/^each .+? in\b/,inside:{keyword:/\b(?:each|in)\b/,punctuation:/,/}},branch:{pattern:/^(?:if|unless|else|case|when|default|while)\b/,alias:"keyword"},rest:e.languages.javascript}},keyword:{pattern:/(^[\t ]*)(?:block|extends|include|append|prepend)\b.+/m,lookbehind:!0},mixin:[{pattern:/(^[\t ]*)mixin .+/m,lookbehind:!0,inside:{keyword:/^mixin/,"function":/\w+(?=\s*\(|\s*$)/,punctuation:/[(),.]/}},{pattern:/(^[\t ]*)\+.+/m,lookbehind:!0,inside:{name:{pattern:/^\+\w+/,alias:"function"},rest:e.languages.javascript}}],script:{pattern:/(^[\t ]*script(?:(?:&[^(]+)?\([^)]+\))*[\t ]+).+/m,lookbehind:!0,inside:{rest:e.languages.javascript}},"plain-text":{pattern:/(^[\t ]*(?!-)[\w\-#.]*[\w\-](?:(?:&[^(]+)?\([^)]+\))*\/?[\t ]+).+/m,lookbehind:!0},tag:{pattern:/(^[\t ]*)(?!-)[\w\-#.]*[\w\-](?:(?:&[^(]+)?\([^)]+\))*\/?:?/m,lookbehind:!0,inside:{attributes:[{pattern:/&[^(]+\([^)]+\)/,inside:{rest:e.languages.javascript}},{pattern:/\([^)]+\)/,inside:{"attr-value":{pattern:/(=\s*)(?:\{[^}]*\}|[^,)\r\n]+)/,lookbehind:!0,inside:{rest:e.languages.javascript}},"attr-name":/[\w-]+(?=\s*!?=|\s*[,)])/,punctuation:/[!=(),]+/}}],punctuation:/:/}},code:[{pattern:/(^[\t ]*(?:-|!?=)).+/m,lookbehind:!0,inside:{rest:e.languages.javascript}}],punctuation:/[.\-!=|]+/};for(var t="(^([\\t ]*)):((?:\\r?\\n|\\r(?!\\n))(?:\\2[\\t ]+.+|\\s*?(?=\\r?\\n|\\r)))+",n=[{filter:"atpl",language:"twig"},{filter:"coffee",language:"coffeescript"},"ejs","handlebars","hogan","less","livescript","markdown","mustache","plates",{filter:"sass",language:"scss"},"stylus","swig"],a={},i=0,r=n.length;r>i;i++){var s=n[i];s="string"==typeof s?{filter:s,language:s}:s,e.languages[s.language]&&(a["filter-"+s.filter]={pattern:RegExp(t.replace("",s.filter),"m"),lookbehind:!0,inside:{"filter-name":{pattern:/^:[\w-]+/,alias:"variable"},rest:e.languages[s.language]}})}e.languages.insertBefore("jade","filter",a)}(Prism); -!function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t]+.+)*/m,lookbehind:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,inside:{atrule:/(?:@[\w-]+|[+=])/m}}}),delete e.languages.sass.atrule;var a=/((\$[-_\w]+)|(#\{\$[-_\w]+\}))/i,t=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|or|not)\b/,{pattern:/(\s+)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,inside:{punctuation:/:/,variable:a,operator:t}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s]+.*)/m,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:a,operator:t,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,delete e.languages.sass.selector,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/([ \t]*)\S(?:,?[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,?[^,\r\n]+)*)*/,lookbehind:!0}})}(Prism); -Prism.languages.scss=Prism.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\w\W]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-]+(?:\([^()]+\)|[^(])*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)*url(?=\()/i,selector:{pattern:/(?=\S)[^@;\{\}\(\)]?([^@;\{\}\(\)]|&|#\{\$[-_\w]+\})+(?=\s*\{(\}|\s|[^\}]+(:|\{)[^\}]+))/m,inside:{placeholder:/%[-_\w]+/}}}),Prism.languages.insertBefore("scss","atrule",{keyword:[/@(?:if|else(?: if)?|for|each|while|import|extend|debug|warn|mixin|include|function|return|content)/i,{pattern:/( +)(?:from|through)(?= )/,lookbehind:!0}]}),Prism.languages.insertBefore("scss","property",{variable:/\$[-_\w]+|#\{\$[-_\w]+\}/}),Prism.languages.insertBefore("scss","function",{placeholder:{pattern:/%[-_\w]+/,alias:"selector"},statement:/\B!(?:default|optional)\b/i,"boolean":/\b(?:true|false)\b/,"null":/\bnull\b/,operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|or|not)(?=\s)/,lookbehind:!0}}),Prism.languages.scss.atrule.inside.rest=Prism.util.clone(Prism.languages.scss); -!function(){if("undefined"!=typeof self&&self.Prism&&self.document){var e={css:"CSS",clike:"C-like",javascript:"JavaScript",abap:"ABAP",actionscript:"ActionScript",apacheconf:"Apache Configuration",apl:"APL",applescript:"AppleScript",asciidoc:"AsciiDoc",aspnet:"ASP.NET (C#)",autoit:"AutoIt",autohotkey:"AutoHotkey",basic:"BASIC",csharp:"C#",cpp:"C++",coffeescript:"CoffeeScript","css-extras":"CSS Extras",fsharp:"F#",glsl:"GLSL",http:"HTTP",inform7:"Inform 7",latex:"LaTeX",lolcode:"LOLCODE",matlab:"MATLAB",mel:"MEL",nasm:"NASM",nginx:"nginx",nsis:"NSIS",objectivec:"Objective-C",ocaml:"OCaml",parigp:"PARI/GP",php:"PHP","php-extras":"PHP Extras",powershell:"PowerShell",jsx:"React JSX",rest:"reST (reStructuredText)",sas:"SAS",sass:"Sass (Sass)",scss:"Sass (Scss)",sql:"SQL",typescript:"TypeScript",vhdl:"VHDL",vim:"vim",wiki:"Wiki markup",yaml:"YAML"};Prism.hooks.add("before-highlight",function(a){var s=a.element.parentNode;if(s&&/pre/i.test(s.nodeName)){var t=e[a.language]||a.language.substring(0,1).toUpperCase()+a.language.substring(1);s.setAttribute("data-language",t);var i,r,l=s.previousSibling;l&&/\s*\bprism-show-language\b\s*/.test(l.className)&&l.firstChild&&/\s*\bprism-show-language-label\b\s*/.test(l.firstChild.className)?(r=l.firstChild,r.getAttribute("data-language")!==t&&(r.setAttribute("data-language",t),r.innerHTML=t)):(i=document.createElement("div"),r=document.createElement("div"),r.className="prism-show-language-label",r.setAttribute("data-language",t),r.innerHTML=t,i.className="prism-show-language",i.appendChild(r),s.parentNode.insertBefore(i,s))}})}}(); -!function(){"undefined"!=typeof self&&self.Prism&&self.document&&Prism.hooks.add("before-highlight",function(e){if(e.code){var s=e.element.parentNode,n=/\s*\bkeep-initial-line-feed\b\s*/;!s||"pre"!==s.nodeName.toLowerCase()||n.test(s.className)||n.test(e.element.className)||(e.code=e.code.replace(/^(?:\r?\n|\r)/,""))}})}(); diff --git a/documentation/assets/prism.scss b/documentation/assets/prism.scss deleted file mode 100644 index 4ae49607..00000000 --- a/documentation/assets/prism.scss +++ /dev/null @@ -1,169 +0,0 @@ -/* http://prismjs.com/download.html?themes=prism&languages=markup+css+clike+javascript+coffeescript+css-extras+git+jade+sass+scss&plugins=show-language+remove-initial-line-feed */ -/** - * prism.js default theme for JavaScript, CSS and HTML - * Based on dabblet (http://dabblet.com) - * @author Lea Verou - */ - -code[class*="language-"], -pre[class*="language-"] { - color: black; - text-shadow: 0 1px white; - font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; - direction: ltr; - text-align: left; - white-space: pre; - word-spacing: normal; - word-break: normal; - word-wrap: normal; - line-height: 1.5; - - -moz-tab-size: 4; - -o-tab-size: 4; - tab-size: 4; - - -webkit-hyphens: none; - -moz-hyphens: none; - -ms-hyphens: none; - hyphens: none; -} - -pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection, -code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection { - text-shadow: none; - background: #b3d4fc; -} - -pre[class*="language-"]::selection, pre[class*="language-"] ::selection, -code[class*="language-"]::selection, code[class*="language-"] ::selection { - text-shadow: none; - background: #b3d4fc; -} - -@media print { - code[class*="language-"], - pre[class*="language-"] { - text-shadow: none; - } -} - -/* Code blocks */ -pre[class*="language-"] { - padding: 1.3em 1em; - margin: 0 0 20px 0; - overflow: auto; -} - -:not(pre) > code[class*="language-"], -pre[class*="language-"] { - background: #F3F5F6; -} - -/* Inline code */ -:not(pre) > code[class*="language-"] { - padding: .1em; - border-radius: .3em; - white-space: normal; -} - -.token.comment, -.token.prolog, -.token.doctype, -.token.cdata { - color: slategray; -} - -.token.punctuation { - color: #999; -} - -.namespace { - opacity: .7; -} - -.token.property, -.token.tag, -.token.boolean, -.token.number, -.token.constant, -.token.symbol, -.token.deleted { - color: #905; -} - -.token.selector, -.token.attr-name, -.token.string, -.token.char, -.token.builtin, -.token.inserted { - color: #690; -} - -.token.operator, -.token.entity, -.token.url, -.language-css .token.string, -.style .token.string { - color: #a67f59; - background: hsla(0, 0%, 100%, .5); -} - -.token.atrule, -.token.attr-value, -.token.keyword { - color: #07a; -} - -.token.function { - color: #DD4A68; -} - -.token.regex, -.token.important, -.token.variable { - color: #e90; -} - -.token.important, -.token.bold { - font-weight: bold; -} -.token.italic { - font-style: italic; -} - -.token.entity { - cursor: help; -} - -div.prism-show-language { - position: relative; -} - -div.prism-show-language > div.prism-show-language-label[data-language] { - color: black; - background-color: #CFCFCF; - opacity: 0.5; - display: inline-block; - position: absolute; - bottom: auto; - left: auto; - top: 0; - right: 0; - width: auto; - height: auto; - font-size: 0.9em; - border-radius: 0 0 0 5px; - padding: 0.1em 0.5em; - text-shadow: none; - z-index: 1; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; - -webkit-transform: none; - -moz-transform: none; - -ms-transform: none; - -o-transform: none; - transform: none; -} diff --git a/documentation/data/countries.json b/documentation/data/countries.json deleted file mode 100644 index 50aed8cd..00000000 --- a/documentation/data/countries.json +++ /dev/null @@ -1,974 +0,0 @@ -[ - { - "name": "Afghanistan", - "code": "AF" - }, - { - "name": "Åland Islands", - "code": "AX" - }, - { - "name": "Albania", - "code": "AL" - }, - { - "name": "Algeria", - "code": "DZ" - }, - { - "name": "American Samoa", - "code": "AS" - }, - { - "name": "AndorrA", - "code": "AD" - }, - { - "name": "Angola", - "code": "AO" - }, - { - "name": "Anguilla", - "code": "AI" - }, - { - "name": "Antarctica", - "code": "AQ" - }, - { - "name": "Antigua and Barbuda", - "code": "AG" - }, - { - "name": "Argentina", - "code": "AR" - }, - { - "name": "Armenia", - "code": "AM" - }, - { - "name": "Aruba", - "code": "AW" - }, - { - "name": "Australia", - "code": "AU" - }, - { - "name": "Austria", - "code": "AT" - }, - { - "name": "Azerbaijan", - "code": "AZ" - }, - { - "name": "Bahamas", - "code": "BS" - }, - { - "name": "Bahrain", - "code": "BH" - }, - { - "name": "Bangladesh", - "code": "BD" - }, - { - "name": "Barbados", - "code": "BB" - }, - { - "name": "Belarus", - "code": "BY" - }, - { - "name": "Belgium", - "code": "BE" - }, - { - "name": "Belize", - "code": "BZ" - }, - { - "name": "Benin", - "code": "BJ" - }, - { - "name": "Bermuda", - "code": "BM" - }, - { - "name": "Bhutan", - "code": "BT" - }, - { - "name": "Bolivia", - "code": "BO" - }, - { - "name": "Bosnia and Herzegovina", - "code": "BA" - }, - { - "name": "Botswana", - "code": "BW" - }, - { - "name": "Bouvet Island", - "code": "BV" - }, - { - "name": "Brazil", - "code": "BR" - }, - { - "name": "British Indian Ocean Territory", - "code": "IO" - }, - { - "name": "Brunei Darussalam", - "code": "BN" - }, - { - "name": "Bulgaria", - "code": "BG" - }, - { - "name": "Burkina Faso", - "code": "BF" - }, - { - "name": "Burundi", - "code": "BI" - }, - { - "name": "Cambodia", - "code": "KH" - }, - { - "name": "Cameroon", - "code": "CM" - }, - { - "name": "Canada", - "code": "CA" - }, - { - "name": "Cape Verde", - "code": "CV" - }, - { - "name": "Cayman Islands", - "code": "KY" - }, - { - "name": "Central African Republic", - "code": "CF" - }, - { - "name": "Chad", - "code": "TD" - }, - { - "name": "Chile", - "code": "CL" - }, - { - "name": "China", - "code": "CN" - }, - { - "name": "Christmas Island", - "code": "CX" - }, - { - "name": "Cocos (Keeling) Islands", - "code": "CC" - }, - { - "name": "Colombia", - "code": "CO" - }, - { - "name": "Comoros", - "code": "KM" - }, - { - "name": "Congo", - "code": "CG" - }, - { - "name": "Congo, The Democratic Republic of the", - "code": "CD" - }, - { - "name": "Cook Islands", - "code": "CK" - }, - { - "name": "Costa Rica", - "code": "CR" - }, - { - "name": "Cote D\"Ivoire", - "code": "CI" - }, - { - "name": "Croatia", - "code": "HR" - }, - { - "name": "Cuba", - "code": "CU" - }, - { - "name": "Cyprus", - "code": "CY" - }, - { - "name": "Czech Republic", - "code": "CZ" - }, - { - "name": "Denmark", - "code": "DK" - }, - { - "name": "Djibouti", - "code": "DJ" - }, - { - "name": "Dominica", - "code": "DM" - }, - { - "name": "Dominican Republic", - "code": "DO" - }, - { - "name": "Ecuador", - "code": "EC" - }, - { - "name": "Egypt", - "code": "EG" - }, - { - "name": "El Salvador", - "code": "SV" - }, - { - "name": "Equatorial Guinea", - "code": "GQ" - }, - { - "name": "Eritrea", - "code": "ER" - }, - { - "name": "Estonia", - "code": "EE" - }, - { - "name": "Ethiopia", - "code": "ET" - }, - { - "name": "Falkland Islands (Malvinas)", - "code": "FK" - }, - { - "name": "Faroe Islands", - "code": "FO" - }, - { - "name": "Fiji", - "code": "FJ" - }, - { - "name": "Finland", - "code": "FI" - }, - { - "name": "France", - "code": "FR" - }, - { - "name": "French Guiana", - "code": "GF" - }, - { - "name": "French Polynesia", - "code": "PF" - }, - { - "name": "French Southern Territories", - "code": "TF" - }, - { - "name": "Gabon", - "code": "GA" - }, - { - "name": "Gambia", - "code": "GM" - }, - { - "name": "Georgia", - "code": "GE" - }, - { - "name": "Germany", - "code": "DE" - }, - { - "name": "Ghana", - "code": "GH" - }, - { - "name": "Gibraltar", - "code": "GI" - }, - { - "name": "Greece", - "code": "GR" - }, - { - "name": "Greenland", - "code": "GL" - }, - { - "name": "Grenada", - "code": "GD" - }, - { - "name": "Guadeloupe", - "code": "GP" - }, - { - "name": "Guam", - "code": "GU" - }, - { - "name": "Guatemala", - "code": "GT" - }, - { - "name": "Guernsey", - "code": "GG" - }, - { - "name": "Guinea", - "code": "GN" - }, - { - "name": "Guinea-Bissau", - "code": "GW" - }, - { - "name": "Guyana", - "code": "GY" - }, - { - "name": "Haiti", - "code": "HT" - }, - { - "name": "Heard Island and Mcdonald Islands", - "code": "HM" - }, - { - "name": "Holy See (Vatican City State)", - "code": "VA" - }, - { - "name": "Honduras", - "code": "HN" - }, - { - "name": "Hong Kong", - "code": "HK" - }, - { - "name": "Hungary", - "code": "HU" - }, - { - "name": "Iceland", - "code": "IS" - }, - { - "name": "India", - "code": "IN" - }, - { - "name": "Indonesia", - "code": "ID" - }, - { - "name": "Iran, Islamic Republic Of", - "code": "IR" - }, - { - "name": "Iraq", - "code": "IQ" - }, - { - "name": "Ireland", - "code": "IE" - }, - { - "name": "Isle of Man", - "code": "IM" - }, - { - "name": "Israel", - "code": "IL" - }, - { - "name": "Italy", - "code": "IT" - }, - { - "name": "Jamaica", - "code": "JM" - }, - { - "name": "Japan", - "code": "JP" - }, - { - "name": "Jersey", - "code": "JE" - }, - { - "name": "Jordan", - "code": "JO" - }, - { - "name": "Kazakhstan", - "code": "KZ" - }, - { - "name": "Kenya", - "code": "KE" - }, - { - "name": "Kiribati", - "code": "KI" - }, - { - "name": "Korea, Democratic People\"S Republic of", - "code": "KP" - }, - { - "name": "Korea, Republic of", - "code": "KR" - }, - { - "name": "Kuwait", - "code": "KW" - }, - { - "name": "Kyrgyzstan", - "code": "KG" - }, - { - "name": "Lao People\"S Democratic Republic", - "code": "LA" - }, - { - "name": "Latvia", - "code": "LV" - }, - { - "name": "Lebanon", - "code": "LB" - }, - { - "name": "Lesotho", - "code": "LS" - }, - { - "name": "Liberia", - "code": "LR" - }, - { - "name": "Libyan Arab Jamahiriya", - "code": "LY" - }, - { - "name": "Liechtenstein", - "code": "LI" - }, - { - "name": "Lithuania", - "code": "LT" - }, - { - "name": "Luxembourg", - "code": "LU" - }, - { - "name": "Macao", - "code": "MO" - }, - { - "name": "Macedonia, The Former Yugoslav Republic of", - "code": "MK" - }, - { - "name": "Madagascar", - "code": "MG" - }, - { - "name": "Malawi", - "code": "MW" - }, - { - "name": "Malaysia", - "code": "MY" - }, - { - "name": "Maldives", - "code": "MV" - }, - { - "name": "Mali", - "code": "ML" - }, - { - "name": "Malta", - "code": "MT" - }, - { - "name": "Marshall Islands", - "code": "MH" - }, - { - "name": "Martinique", - "code": "MQ" - }, - { - "name": "Mauritania", - "code": "MR" - }, - { - "name": "Mauritius", - "code": "MU" - }, - { - "name": "Mayotte", - "code": "YT" - }, - { - "name": "Mexico", - "code": "MX" - }, - { - "name": "Micronesia, Federated States of", - "code": "FM" - }, - { - "name": "Moldova, Republic of", - "code": "MD" - }, - { - "name": "Monaco", - "code": "MC" - }, - { - "name": "Mongolia", - "code": "MN" - }, - { - "name": "Montserrat", - "code": "MS" - }, - { - "name": "Morocco", - "code": "MA" - }, - { - "name": "Mozambique", - "code": "MZ" - }, - { - "name": "Myanmar", - "code": "MM" - }, - { - "name": "Namibia", - "code": "NA" - }, - { - "name": "Nauru", - "code": "NR" - }, - { - "name": "Nepal", - "code": "NP" - }, - { - "name": "Netherlands", - "code": "NL" - }, - { - "name": "Netherlands Antilles", - "code": "AN" - }, - { - "name": "New Caledonia", - "code": "NC" - }, - { - "name": "New Zealand", - "code": "NZ" - }, - { - "name": "Nicaragua", - "code": "NI" - }, - { - "name": "Niger", - "code": "NE" - }, - { - "name": "Nigeria", - "code": "NG" - }, - { - "name": "Niue", - "code": "NU" - }, - { - "name": "Norfolk Island", - "code": "NF" - }, - { - "name": "Northern Mariana Islands", - "code": "MP" - }, - { - "name": "Norway", - "code": "NO" - }, - { - "name": "Oman", - "code": "OM" - }, - { - "name": "Pakistan", - "code": "PK" - }, - { - "name": "Palau", - "code": "PW" - }, - { - "name": "Palestinian Territory, Occupied", - "code": "PS" - }, - { - "name": "Panama", - "code": "PA" - }, - { - "name": "Papua New Guinea", - "code": "PG" - }, - { - "name": "Paraguay", - "code": "PY" - }, - { - "name": "Peru", - "code": "PE" - }, - { - "name": "Philippines", - "code": "PH" - }, - { - "name": "Pitcairn", - "code": "PN" - }, - { - "name": "Poland", - "code": "PL" - }, - { - "name": "Portugal", - "code": "PT" - }, - { - "name": "Puerto Rico", - "code": "PR" - }, - { - "name": "Qatar", - "code": "QA" - }, - { - "name": "Reunion", - "code": "RE" - }, - { - "name": "Romania", - "code": "RO" - }, - { - "name": "Russian Federation", - "code": "RU" - }, - { - "name": "RWANDA", - "code": "RW" - }, - { - "name": "Saint Helena", - "code": "SH" - }, - { - "name": "Saint Kitts and Nevis", - "code": "KN" - }, - { - "name": "Saint Lucia", - "code": "LC" - }, - { - "name": "Saint Pierre and Miquelon", - "code": "PM" - }, - { - "name": "Saint Vincent and the Grenadines", - "code": "VC" - }, - { - "name": "Samoa", - "code": "WS" - }, - { - "name": "San Marino", - "code": "SM" - }, - { - "name": "Sao Tome and Principe", - "code": "ST" - }, - { - "name": "Saudi Arabia", - "code": "SA" - }, - { - "name": "Senegal", - "code": "SN" - }, - { - "name": "Serbia and Montenegro", - "code": "CS" - }, - { - "name": "Seychelles", - "code": "SC" - }, - { - "name": "Sierra Leone", - "code": "SL" - }, - { - "name": "Singapore", - "code": "SG" - }, - { - "name": "Slovakia", - "code": "SK" - }, - { - "name": "Slovenia", - "code": "SI" - }, - { - "name": "Solomon Islands", - "code": "SB" - }, - { - "name": "Somalia", - "code": "SO" - }, - { - "name": "South Africa", - "code": "ZA" - }, - { - "name": "South Georgia and the South Sandwich Islands", - "code": "GS" - }, - { - "name": "Spain", - "code": "ES" - }, - { - "name": "Sri Lanka", - "code": "LK" - }, - { - "name": "Sudan", - "code": "SD" - }, - { - "name": "Suriname", - "code": "SR" - }, - { - "name": "Svalbard and Jan Mayen", - "code": "SJ" - }, - { - "name": "Swaziland", - "code": "SZ" - }, - { - "name": "Sweden", - "code": "SE" - }, - { - "name": "Switzerland", - "code": "CH" - }, - { - "name": "Syrian Arab Republic", - "code": "SY" - }, - { - "name": "Taiwan, Province of China", - "code": "TW" - }, - { - "name": "Tajikistan", - "code": "TJ" - }, - { - "name": "Tanzania, United Republic of", - "code": "TZ" - }, - { - "name": "Thailand", - "code": "TH" - }, - { - "name": "Timor-Leste", - "code": "TL" - }, - { - "name": "Togo", - "code": "TG" - }, - { - "name": "Tokelau", - "code": "TK" - }, - { - "name": "Tonga", - "code": "TO" - }, - { - "name": "Trinidad and Tobago", - "code": "TT" - }, - { - "name": "Tunisia", - "code": "TN" - }, - { - "name": "Turkey", - "code": "TR" - }, - { - "name": "Turkmenistan", - "code": "TM" - }, - { - "name": "Turks and Caicos Islands", - "code": "TC" - }, - { - "name": "Tuvalu", - "code": "TV" - }, - { - "name": "Uganda", - "code": "UG" - }, - { - "name": "Ukraine", - "code": "UA" - }, - { - "name": "United Arab Emirates", - "code": "AE" - }, - { - "name": "United Kingdom", - "code": "GB" - }, - { - "name": "United States", - "code": "US" - }, - { - "name": "United States Minor Outlying Islands", - "code": "UM" - }, - { - "name": "Uruguay", - "code": "UY" - }, - { - "name": "Uzbekistan", - "code": "UZ" - }, - { - "name": "Vanuatu", - "code": "VU" - }, - { - "name": "Venezuela", - "code": "VE" - }, - { - "name": "Viet Nam", - "code": "VN" - }, - { - "name": "Virgin Islands, British", - "code": "VG" - }, - { - "name": "Virgin Islands, U.S.", - "code": "VI" - }, - { - "name": "Wallis and Futuna", - "code": "WF" - }, - { - "name": "Western Sahara", - "code": "EH" - }, - { - "name": "Yemen", - "code": "YE" - }, - { - "name": "Zambia", - "code": "ZM" - }, - { - "name": "Zimbabwe", - "code": "ZW" - } -] diff --git a/documentation/docs.scss b/documentation/docs.scss index 59d01b09..72d354f4 100644 --- a/documentation/docs.scss +++ b/documentation/docs.scss @@ -1,5 +1,4 @@ @import './assets/main'; -@import './assets/prism'; $multiselect-height: 140px; $multiselect-background: #000; @@ -141,3 +140,25 @@ section { } } } + +p > code, li > code { + font-size: rem(14px); + color: #41b883; + padding: rem(3px 5px); + border-radius: rem(4px); + background: #f3f3f3; +} + +.shiki { + padding: rem(14px 18px); + background: #f6f8fa !important; // Override theme setting + font-size: rem(14px); + line-height: rem(24px); +} + +// Selection Output +.language-json { + padding: rem(14px 18px); + background: #f3f3f3; + margin:0; +} diff --git a/documentation/index.html b/documentation/index.html new file mode 100644 index 00000000..570ac4a2 --- /dev/null +++ b/documentation/index.html @@ -0,0 +1,51 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1"> + <title>Vue-Multiselect | Vue Select Library + + + + + + + + + + + + +
+ + + + + + + diff --git a/documentation/index.pug b/documentation/index.pug deleted file mode 100644 index ad933dcc..00000000 --- a/documentation/index.pug +++ /dev/null @@ -1,63 +0,0 @@ -doctype html -html(lang="en") - head - meta(charset='utf-8') - meta(name='viewport', content='width=device-width,initial-scale=1,maximum-scale=1') - title Vue-Multiselect | Vue Select Library - link(rel='icon', href='static/vue-logo.png', type='image/x-icon') - meta(name='description', content='Probably the most complete selecting solution for Vue.js, without jQuery.') - meta(property='og:title', content='Vue-Multiselect | Vue Select Library.') - meta(property='og:site_name', content='Vue-Multiselect | Vue Select Library.') - meta(property='og:url', content='http://vue-multiselect.js.org') - meta(property='og:description', content='Probably the most complete selecting solution for Vue.js, without jQuery.') - meta(property='og:image', content='http://vue-multiselect.js.org/static/vue-logo.png') - meta(property='twitter:image', content='http://vue-multiselect.js.org/static/vue-logo.png') - meta(property='twitter:title', content='Vue-Multiselect | Vue Select Library.') - meta(property='twitter:description', content='The most complete selecting solution for Vue.js, without jQuery.') - body - #app - include ./_mixins - include ./partials/_start - - .grid__row.docs - .grid__columns.grid__unit--sm-3.small--hidden - include ./partials/_nav - .grid__columns.grid__unit--sm-12.grid__unit--md-9 - include ./partials/_getting-started - - include ./partials/examples/_examples - - hr.typo__hr - include ./partials/api/_props - include ./partials/api/_events - include ./partials/api/_slots - - include ./partials/_footer - - script(src=require('!!url-loader!assets/prism.js')) - script(src="https://cdn.jsdelivr.net/npm/es6-promise@4/dist/es6-promise.auto.min.js") - script. - ;(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ - (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), - m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) - })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); - ga('create', 'UA-78373326-1', 'auto'); - ga('send', 'pageview'); - script. - /*eslint-disable */ - Prism.languages.pug = Prism.languages.jade - - WebFontConfig = { - google: { families: [ 'Lato:700,400', 'Dosis:400' ] } - } - ;(function() { - var wf = document.createElement('script') - wf.src = ('https:' == document.location.protocol ? 'https' : 'http') + - '://ajax.googleapis.com/ajax/libs/webfont/1.5.18/webfont.js' - wf.type = 'text/javascript' - wf.async = 'true' - var s = document.getElementsByTagName('script')[0] - s.parentNode.insertBefore(wf, s) - })() - -+renderToc() diff --git a/documentation/main.js b/documentation/main.js index 5821e659..68cac692 100644 --- a/documentation/main.js +++ b/documentation/main.js @@ -1,88 +1,58 @@ -import Vue from 'vue' -import * as examples from './partials/examples' -import LangSwitcher from './LangSwitcher' -import MultiselectExample from './MultiselectExample' -import Multiselect from 'vue-multiselect' -require('es6-promise').polyfill() - +import {createApp, h} from 'vue' +import Multiselect from '../src/index' +import App from './src/App.vue' +import {createStore} from 'vuex' +import { setCDN, getHighlighter } from 'shiki' +setCDN('shiki/') import './docs.scss' -function calculateNavPositions () { - sections = Array - .from(document.querySelectorAll('[data-section]')) - .map(section => { - return { - id: section.id, - offset: section.getBoundingClientRect().top + window.pageYOffset - 50 - } - }) -} - -const SL = ', 100%, 85%' -let sections - -/* eslint-disable no-new */ -new Vue({ - el: '#app', - components: { - ...examples, - MultiselectExample, - LangSwitcher, - Multiselect +const store = createStore({ + state () { + return { + value: 'Vuex', + options: ['Vuex', 'Vue', 'Vuelidate', 'Vue-Multiselect', 'Vue-Router'] + } }, + mutations: { + updateValue (state, value) { + state.value = value + } + }, + actions: { + updateValueAction ({ commit }, value) { + commit('updateValue', value) + } + } +}) +// import 'highlight.js/styles/intellij-light.css' +// import hljsVuePlugin from '@highlightjs/vue-plugin' + +const app = createApp({ + render: () => h(App), data () { return { - markupLangs: ['pug', 'html'], - markupLanguage: 'pug', + markupLangs: ['html'], + markupLanguage: 'html', isNavSticky: false, - firstColor: Math.floor(Math.random() * 255), - secondColor: Math.floor(Math.random() * 255), - currentPosition: '', - versions: ['v1.x', 'v2.0'], - version: 'v2.0' - } - }, - computed: { - gradient () { - return { - background: `linear-gradient(to left bottom, hsl(${this.firstColor + SL}) 0%, hsl(${this.secondColor + SL}) 100%)` - } + currentPosition: '' } }, methods: { - pickVersion (version) { - switch (version) { - case 'v1.x': - window.location.assign('v1/index.html') - break - case 'v2.0': - window.location.assign('https://vue-multiselect.js.org/') - break - } - }, selectLanguage (lang) { this.markupLanguage = lang }, - adjustNav () { - this.isNavSticky = window.scrollY > window.innerHeight - if (!sections) calculateNavPositions() - for (let i = sections.length - 1; i >= 0; i--) { - if (window.scrollY > sections[i].offset) { - this.currentPosition = sections[i].id - break - } - } - }, onTagging (newTag) { this.source.push({ name: newTag, language: newTag }) this.value.push({ name: newTag, language: newTag }) } - }, - mounted () { - this.adjustNav() - window.addEventListener('scroll', this.adjustNav) - setTimeout(function () { - calculateNavPositions() - }, 1000) } +}).component('multiselect', Multiselect).use(store) + +getHighlighter({ + theme: 'github-light', + langs: ['javascript', 'html', 'bash'] +}).then(highlighter => { + app.config.globalProperties.highlighter = highlighter + app.mount('#app') }) + diff --git a/documentation/partials/_footer.pug b/documentation/partials/_footer.pug deleted file mode 100644 index cca8333c..00000000 --- a/documentation/partials/_footer.pug +++ /dev/null @@ -1,5 +0,0 @@ -section.utils--center - h4.typo__h4 - | Created by Damian Dulisz - strong - a.typo__link(href='https://twitter.com/DamianDulisz', target='_BLANK') @DamianDulisz diff --git a/documentation/partials/_getting-started.pug b/documentation/partials/_getting-started.pug deleted file mode 100644 index 37cc1bc2..00000000 --- a/documentation/partials/_getting-started.pug +++ /dev/null @@ -1,68 +0,0 @@ -.grid__row - .grid__column - section#sub-getting-started(data-section) - h1.typo__h1 Getting started - hr.typo__hr - - .grid__row - .grid__column - p For installation with Vue 3, see the readme in  - a(href="https://github.com/shentao/vue-multiselect/tree/next" target="_blank") Github - |  for the latest instructions - h2.typo__h2 Installation - h3.typo__h3 via npm - pre.language-bash - code. - npm install vue-multiselect --save - - h3.typo__h3 via CDN - pre.language-html - code - | <script src="https://unpkg.com/vue-multiselect@2.1.6"></script> - | <link rel="stylesheet" href="https://unpkg.com/vue-multiselect@2.1.6/dist/vue-multiselect.min.css"> - - .grid__column - h2.typo__h2 Basic usage - h3.typo__h3 via npm - - pre.language-html - code. - <!-- Vue component --> - <template> - <div> - <multiselect v-model="value" :options="options"></multiselect> - </div> - </template> - - <script> - import Multiselect from 'vue-multiselect' - - // register globally - Vue.component('multiselect', Multiselect) - - export default { - // OR register locally - components: { Multiselect }, - data () { - return { - value: null, - options: ['list', 'of', 'options'] - } - } - } - </script> - - <!-- New step! - Add Multiselect CSS. Can be added as a static asset or inside a component. --> - <style src="vue-multiselect/dist/vue-multiselect.min.css"></style> - - <style> - your styles - </style> - - h3.typo__h3 via CDN - - pre.language-js - code. - // register globally - Vue.component('vue-multiselect', window.VueMultiselect.default) diff --git a/documentation/partials/_nav.pug b/documentation/partials/_nav.pug deleted file mode 100644 index e7612c8b..00000000 --- a/documentation/partials/_nav.pug +++ /dev/null @@ -1,28 +0,0 @@ -ul.list( - :class="{ 'list--sticky': isNavSticky }" -) - multiselect.list__multiselect( - :options="versions", - :value="version", - :allow-empty="false", - :searchable="false", - @input="pickVersion", - select-label="Go to", - deselect-label="", - selected-label="" - ) - li.list__heading Setup - +tocSubsection('Getting Started') - //- replaced later in _mixins.pug:renderToc() - ='%%_TOC_%%' - - li.list__heading API - +tocSubsection('Props') - +tocSubsection('Events') - +tocSubsection('Slots') - li.list__heading Our other libraries - li.list__element - a.link.list__link(target="_BLANK", href="https://vuelidate.netlify.com") - | Vuelidate - img.list__img(src="https://img.shields.io/github/stars/vuelidate/vuelidate.svg?style=social&label=Stars") - span.list__desc Simple model-based validation plugin for Vue.js diff --git a/documentation/partials/_start.pug b/documentation/partials/_start.pug deleted file mode 100644 index 635c1230..00000000 --- a/documentation/partials/_start.pug +++ /dev/null @@ -1,39 +0,0 @@ -section.start(:style="gradient") - .center-vertically - h1.typo__h1 - img.logo(src=require('assets/vue-logo.png')) - | Vue-multiselect - small.version - =`(${require('../../package.json').version})` - h3.typo__h3 The most complete selecting solution for - = ' ' - a.typo__link(href="http://vuejs.org" target="_BLANK") Vue.js - .badges - img(src="https://img.shields.io/github/stars/shentao/vue-multiselect.svg?label=Stars") - img(src="https://img.shields.io/badge/license-MIT-blue.svg?style=flat" alt="License" data-canonical-src="https://img.shields.io/badge/license-MIT-blue.svg?style=flat") - img(src="https://img.shields.io/npm/dm/vue-multiselect.svg" alt="npm" data-canonical-src="https://img.shields.io/npm/dm/vue-multiselect.svg" style="max-width:100%;") - img(src="https://img.shields.io/badge/dependencies-none-brightgreen.svg?style=flat" alt="No Dependencies" data-canonical-src="https://img.shields.io/badge/dependencies-none-brightgreen.svg?style=flat" style="max-width:100%;") - .grid__row.grid__row--centered - .grid__column.grid__unit--md-6 - .multiselect-example__container - multiselect-example - .grid__row.start__list - .grid__column.grid__unit--md-6.list - ul.list__ul - li.typo__li Single / multiple select - li.typo__li Dropdowns - li.typo__li: a.typo__link(href="#sub-select-with-search") Searchable - li.typo__li: a.typo__link(href="#sub-tagging") Tagging - li.typo__li Server-side Rendering support - .grid__column.grid__unit--md-6.list - ul.list__ul - li.typo__li: a.typo__link(href="#sub-vuex-support") Vuex support by default - li.typo__li: a.typo__link(href="#sub-asynchronous-select") Ajax support - li.typo__li: a.typo__link(href="#sub-custom-configuration") Fully configurable - li.typo__li +99% test coverage - li.typo__li No dependencies - - .grid__row.grid__row--centered - .grid__column.utils--center - a.button.button--large.button--secondary.button--github(href="https://github.com/shentao/vue-multiselect" target="_BLANK") View on GitHub - a.button.button--large(href="#sub-getting-started") Getting started & examples diff --git a/documentation/partials/api/_events.pug b/documentation/partials/api/_events.pug deleted file mode 100644 index ebe8ee69..00000000 --- a/documentation/partials/api/_events.pug +++ /dev/null @@ -1,56 +0,0 @@ -h2.typo__h2#sub-events(data-section) Events -.grid__row - .table__container - table.table.table--full-size - thead - tr.table__tr - th.table__th(width="150") Name - th.table__th(width="100") Attributes - th.table__th(width="150") Listen to - th.table__th(width="250") Description - tbody - tr.table__tr - td.table__td: strong Input - td.table__td: kbd (value, id) - td.table__td: kbd @input - td.table__td - | Emitted after - = " " - kbd this.value - | changes - tr.table__tr - td.table__td: strong Select - td.table__td: kbd (selectedOption, id) - td.table__td: kbd @select - td.table__td - | Emitted after selecting an option - tr.table__tr - td.table__td: strong Remove - td.table__td: kbd (removedOption, id) - td.table__td: kbd @remove - td.table__td - | Emitted after removing an option - tr.table__tr - td.table__td: strong SearchChange - td.table__td: kbd (searchQuery, id) - td.table__td: kbd @search-change - td.table__td - | Emitted after the search query changes - tr.table__tr - td.table__td: strong Tag - td.table__td: kbd (searchQuery, id) - td.table__td: kbd @tag - td.table__td - | Emitted after user attempts to add a tag - tr.table__tr - td.table__td: strong Open - td.table__td: kbd (id) - td.table__td: kbd @open - td.table__td - | Emitted when the dropdown opens. Useful for detecting when touched. - tr.table__tr - td.table__td: strong Close - td.table__td: kbd (value, id) - td.table__td: kbd @close - td.table__td - | Emitted when the dropdown closes diff --git a/documentation/partials/api/_props.pug b/documentation/partials/api/_props.pug deleted file mode 100644 index b5f0491e..00000000 --- a/documentation/partials/api/_props.pug +++ /dev/null @@ -1,304 +0,0 @@ -h2.typo__h2#sub-props(data-section) Props -.grid__row - .table__container - table.table.table--full-size.table--fixed - thead - tr.table__tr - th.table__th(width="100") Name - th.table__th(width="80") Type - th.table__th(width="180") Default - th.table__th(width="200") Description - tbody - tr.table__tr - td.table__td.utils--center(colspan="4"): strong multiselectMixin.js - - tr.table__tr - td.table__td: strong id - td.table__td Integer||String - td.table__td - td.table__td. - Used to identify the component in events. - tr.table__tr - td.table__td: strong options - td.table__td Array - td.table__td - td.table__td. - Array of available options: Objects, Strings or Integers. - If array of objects, visible label will default to option.label. - tr.table__tr - td.table__td: strong value - td.table__td Object||Array||String||Integer - td.table__td - td.table__td - | Presets the selected options. - tr.table__tr - td.table__td: strong multiple - td.table__td Boolean - td.table__td: kbd false - td.table__td - | Equivalent to the - = " " - kbd multiple - | attribute on a <select> input. - tr.table__tr - td.table__td: strong trackBy - td.table__td String - td.table__td - td.table__td - | Used to compare objects. - strong Only use if options are objects. - tr.table__tr - td.table__td: strong label - td.table__td String - td.table__td - td.table__td - | Label from option Object, that will be visible in the dropdown. - tr.table__tr - td.table__td: strong searchable - td.table__td Boolean - td.table__td: kbd true - td.table__td - | Add / removes search input. - tr.table__tr - td.table__td: strong clearOnSelect - td.table__td Boolean - td.table__td: kbd true - td.table__td - | Clear the search input after - = " " - kbd select() - | . Use only when multiple is true. - tr.table__tr - td.table__td: strong hideSelected - td.table__td Boolean - td.table__td: kbd false - td.table__td - | Hide already selected options - tr.table__tr - td.table__td: strong placeholder - td.table__td String - td.table__td: kbd 'Select option' - td.table__td - | Equivalent to the - = " " - kbd placeholder - | attribute on a <select> input. - tr.table__tr - td.table__td: strong allowEmpty - td.table__td Boolean - td.table__td: kbd true - td.table__td - | Allows to remove all selected values. Otherwise one must be left selected. - tr.table__tr - td.table__td: strong resetAfter - td.table__td Boolean - td.table__td: kbd false - td.table__td - | Reset this.value, this.search, this.selected after this.value changes. - tr.table__tr - td.table__td: strong closeOnSelect - td.table__td Boolean - td.table__td: kbd true - td.table__td - | Enable/disable closing after selecting an option - tr.table__tr - td.table__td: strong customLabel - td.table__td Function => String - td.table__td - td.table__td - | Function used to create a custom label - tr.table__tr - td.table__td: strong taggable - td.table__td Boolean - td.table__td: kbd false - td.table__td - | Disable / Enable tagging - tr.table__tr - td.table__td: strong tagPlaceholder - td.table__td String - td.table__td: kbd 'Press enter to create a tag' - td.table__td - | String to show when highlighting a potential tag - tr.table__tr - td.table__td: strong tagPosition - td.table__td String - td.table__td: kbd 'top' - td.table__td - | By default new tags will appear above the search results. Changing to 'bottom' will revert this behaviour and will proritize the search results - tr.table__tr - td.table__td: strong max - td.table__td Number - td.table__td - td.table__td - | Number of allowed selected options. - tr.table__tr - td.table__td: strong optionsLimit - td.table__td Number - td.table__td 1000 - td.table__td - | Limits the options displayed in the dropdown to the first X options. - tr.table__tr - td.table__td: strong groupValues - td.table__td String - td.table__td - td.table__td - | Name of the property containing the group values - tr.table__tr - td.table__td: strong groupLabel - td.table__td String - td.table__td - td.table__td - | Name of the property containing the group label - tr.table__tr - td.table__td: strong groupSelect - td.table__td Boolean - td.table__td false - td.table__td - | Allow to select all group values by selecting the group label - tr.table__tr - td.table__td: strong blockKeys - td.table__td Array - td.table__td [] - td.table__td - | Array of keyboard key aliases to block when selecting - tr.table__tr - td.table__td: strong internalSearch - td.table__td Boolean - td.table__td true - td.table__td - | Decide whether to filter the results internally based on search query. - | Useful for async filtering, where we search through more complex data. - tr.table__tr - td.table__td: strong preserveSearch - td.table__td Boolean - td.table__td false - td.table__td - | If set to true, will preserve the search query when opening/closing the component. - tr.table__tr - td.table__td: strong preselectFirst - td.table__td Boolean - td.table__td false - td.table__td - | Selects the first option if initial value is empty - tr.table__tr - td.table__td: strong preventAutofocus - td.table__td Boolean - td.table__td false - td.table__td - | Disabled the search input focusing when the multiselect opens - - tr.table__tr - td.table__td.utils--center(colspan="4"): strong Multiselect.vue - - tr.table__tr - td.table__td: strong name - td.table__td String - td.table__td: kbd '' - td.table__td - | Name attribute to match optional label element - tr.table__tr - td.table__td: strong selectLabel - td.table__td String - td.table__td: kbd 'Press enter to select' - td.table__td - | String to show when pointing to an option - tr.table__tr - td.table__td: strong selectGroupLabel - td.table__td String - td.table__td: kbd 'Press enter to select group' - td.table__td - | String to show when pointing to an option - tr.table__tr - td.table__td: strong selectedLabel - td.table__td String - td.table__td: kbd 'Selected' - td.table__td - | String to show next to selected option - tr.table__tr - td.table__td: strong deselectLabel - td.table__td String - td.table__td: kbd 'Press enter to remove' - td.table__td - | String to show when pointing to an already selected option - tr.table__tr - td.table__td: strong deselectGroupLabel - td.table__td String - td.table__td: kbd 'Press enter to deselect group' - td.table__td - | String to show when pointing to an already selected group - tr.table__tr - td.table__td: strong showLabels - td.table__td Boolean - td.table__td: kbd true - td.table__td - | Decide whether to show labels on highlighted options - tr.table__tr - td.table__td: strong limit - td.table__td Number - td.table__td: kbd 99999 - td.table__td - | Limit the display of selected options. The rest will be hidden within the limitText string. - tr.table__tr - td.table__td: strong limitText - td.table__td Function => String - td.table__td: kbd count => `and ${count} more` - td.table__td - | Function that process the message shown when selected elements pass the defined limit. - tr.table__tr - td.table__td: strong loading - td.table__td Boolean - td.table__td: kbd false - td.table__td - | Show/hide the loading spinner. - tr.table__tr - td.table__td: strong disabled - td.table__td Boolean - td.table__td: kbd false - td.table__td - | Enable/disable the multiselect. - tr.table__tr - td.table__td: strong maxHeight - td.table__td Integer - td.table__td: kbd 300 - td.table__td - | Sets max-height style value of the dropdown - tr.table__tr - td.table__td: strong openDirection - td.table__td String - td.table__td: kbd '' - td.table__td - | Fixed opening direction (instead of auto). Options are "above"/"top" or "below"/"bottom" - tr.table__tr - td.table__td: strong showNoOptions - td.table__td Boolean - td.table__td: kbd true - td.table__td - | Show the showNoOptions slot if list is empty. - tr.table__tr - td.table__td: strong showNoResults - td.table__td Boolean - td.table__td: kbd true - td.table__td - | Show the noResult slot if no results are found. - tr.table__tr - td.table__td: strong tabindex - td.table__td Number - td.table__td: kbd 0 - td.table__td - | Specify the tabindex of the Multiselect component - - tr.table__tr - td.table__td.utils--center(colspan="4"): strong pointerMixin.js - - tr.table__tr - td.table__td: strong showPointer - td.table__td Boolean - td.table__td: kbd true - td.table__td - | Enable/disable highlighting of the pointed value. - tr.table__tr - td.table__td: strong optionHeight - td.table__td Number - td.table__td: kbd 40 - td.table__td - | The height of the option element. Required for proper scrolling. diff --git a/documentation/partials/api/_slots.pug b/documentation/partials/api/_slots.pug deleted file mode 100644 index f688a7a2..00000000 --- a/documentation/partials/api/_slots.pug +++ /dev/null @@ -1,104 +0,0 @@ -h2.typo__h2#sub-slots(data-section) Slots -.grid__row - .table__container - table.table.table--full-size.table--fixed - thead - tr.table__tr - th.table__th(width="200") Name - th.table__th Description - tbody - tr.table__tr - td.table__td: strong option - td.table__td - | Slot for custom option template. See example. - br - strong Default: Shows option label - br - | Slot-scope - ul - li option – option - li search – current search value - tr.table__tr - td.table__td: strong maxElements - td.table__td - | Shows when the maximum options have been selected. Defaults to string: - br - strong Default: Maximum of <max> options selected. First remove a selected option to select another. - tr.table__tr - td.table__td: strong noResult - td.table__td - | Shows when no elements match the search query. Defaults to string: - br - strong Default: No elements found. Consider changing the search query. - tr.table__tr - td.table__td: strong noOptions - td.table__td - | Shows when no elements in options empty. Defaults to string: - br - strong Default: List is empty. - tr.table__tr - td.table__td: strong beforeList - td.table__td - | Shows before the list, when dropdown is open. - tr.table__tr - td.table__td: strong afterList - td.table__td - | Shows after the list, when dropdown is open. - tr.table__tr - td.table__td: strong caret - td.table__td - | Element for opening and closing the dropdown. - br - | Slot-scope - ul - li toggle: Function – toggles the dropdown. - tr.table__tr - td.table__td: strong singleLabel - td.table__td - | Slot for custom label template for single select - tr.table__tr - td.table__td: strong placeholder - td.table__td - | Slot for the placeholder (is not displayed when the dropdown is open and `searchable` is true) - tr.table__tr - td.table__td: strong limit - td.table__td - | Slot to display when the number of selected options is greater than `optionsLimit`. - tr.table__tr - td.table__td: strong clear - td.table__td - | Slot located before the tags - br - | Slot-scope - ul - li search – the search value - tr.table__tr - td.table__td: strong tag - td.table__td - | Slot that is used for each selected option (tags) - br - | Slot-scope - ul - li option – selected option - li search – the search value - li remove – method to remove the slot (pass the option) - - tr.table__tr - td.table__td: strong selection - td.table__td - | Slot that can be used to show all selected tags. The main different between the - code selection - | slot and the - code tag - | slot is that the - code tag - | slot renders per tag, however this slot renders just once, leaving the display of each - | tag to you (if you wish to display each one) - br - | Slot-scope - ul - li search – the search value - li removeElement – method to remove the slot (pass the option) - li values – Array of selected values - li is-open – Boolean if the select is open - diff --git a/documentation/partials/examples/AjaxSearch.vue b/documentation/partials/examples/AjaxSearch.vue deleted file mode 100644 index 1ae96e9e..00000000 --- a/documentation/partials/examples/AjaxSearch.vue +++ /dev/null @@ -1,101 +0,0 @@ - - - - - diff --git a/documentation/partials/examples/CustomConfig.vue b/documentation/partials/examples/CustomConfig.vue deleted file mode 100644 index 28cd171f..00000000 --- a/documentation/partials/examples/CustomConfig.vue +++ /dev/null @@ -1,66 +0,0 @@ - - - - - diff --git a/documentation/partials/examples/CustomOption.vue b/documentation/partials/examples/CustomOption.vue deleted file mode 100644 index e7943e9d..00000000 --- a/documentation/partials/examples/CustomOption.vue +++ /dev/null @@ -1,76 +0,0 @@ - - - - - diff --git a/documentation/partials/examples/Groups.vue b/documentation/partials/examples/Groups.vue deleted file mode 100644 index f952c948..00000000 --- a/documentation/partials/examples/Groups.vue +++ /dev/null @@ -1,61 +0,0 @@ - - - - - diff --git a/documentation/partials/examples/MultiSelect.vue b/documentation/partials/examples/MultiSelect.vue deleted file mode 100644 index 11a0f828..00000000 --- a/documentation/partials/examples/MultiSelect.vue +++ /dev/null @@ -1,71 +0,0 @@ - - - - - diff --git a/documentation/partials/examples/ProgrammaticCtrl.vue b/documentation/partials/examples/ProgrammaticCtrl.vue deleted file mode 100644 index bc9d549e..00000000 --- a/documentation/partials/examples/ProgrammaticCtrl.vue +++ /dev/null @@ -1,61 +0,0 @@ - - - - - diff --git a/documentation/partials/examples/SingleSelectObject.vue b/documentation/partials/examples/SingleSelectObject.vue deleted file mode 100644 index 93bb0af2..00000000 --- a/documentation/partials/examples/SingleSelectObject.vue +++ /dev/null @@ -1,47 +0,0 @@ - - - - - diff --git a/documentation/partials/examples/SingleSelectSearch.vue b/documentation/partials/examples/SingleSelectSearch.vue deleted file mode 100644 index 7b2c5d48..00000000 --- a/documentation/partials/examples/SingleSelectSearch.vue +++ /dev/null @@ -1,45 +0,0 @@ - - - - - diff --git a/documentation/partials/examples/Tagging.vue b/documentation/partials/examples/Tagging.vue deleted file mode 100644 index 7ed7852a..00000000 --- a/documentation/partials/examples/Tagging.vue +++ /dev/null @@ -1,53 +0,0 @@ - - - - - diff --git a/documentation/partials/examples/VuexActions.vue b/documentation/partials/examples/VuexActions.vue deleted file mode 100644 index 0c0dc6d2..00000000 --- a/documentation/partials/examples/VuexActions.vue +++ /dev/null @@ -1,51 +0,0 @@ - - - diff --git a/documentation/partials/examples/_examples.pug b/documentation/partials/examples/_examples.pug deleted file mode 100644 index 61c7310a..00000000 --- a/documentation/partials/examples/_examples.pug +++ /dev/null @@ -1,124 +0,0 @@ -+section('Examples') - +subsection('Single select') - :markdown-it - The basic single select / dropdown doesn’t require much configuration. - - The `options` prop must be an `Array`. - - #### Optional configuration flags: - - `:searchable="false"` – disables the search functionality - - `:close-on-select="false"` – the dropdown stays open after selecting an option - - `:show-labels="false"` – the highlighted option doesn’t have a label on it - +example('SingleSelectPrimitive') - +subsection('Single select (object)') - :markdown-it - When working with objects, you must provide additional props: `label` and `track-by`. - - `track-by` is used to identify the option within the options list thus it’s value has to be unique. In this example the `name` property is unique across all options, so it can be used as `track-by` value. - - `label` is used to display the option. - - #### Optional configuration flags: - - `:searchable="false"` – disables the search functionality - - `:allow-empty="false"` – once there is a value it can’t be deselected - - `deselect-label="Can't remove this value"` – when highlighted, the already selected option will have the _Can't remove this value_ helper label. Useful for single selects that don’t allow empty selection. - +example('SingleSelectObject') - +subsection('Select with search') - :markdown-it - By default `searchable` is set to true, thus using search doesn’t require any prop. - - The internal search engine is based on the `label` prop. In other words – when searching, vue-multiselect only compares the option labels with the current search query. If you want to search inside other object properties look at the [ajax search example](#sub-asynchronous-select). - - `custom-label` accepts a function with the `option` object as the first param. It should return a string which is then used to display a custom label. - +example('SingleSelectSearch') - +subsection('Multiple select') - :markdown-it - To allow multiple selections pass the `:multiple="true"` prop. - - #### Optional configuration flags: - - `:close-on-select="false"` – the dropdown stays open after selecting an option - - `:clear-on-select="false"` – the search query stays the same after selecting an option - #### New in v2.0.0 stable: - - You can now pass `` to use a different markup for selected options (tags) - +example('MultiSelect') - +subsection('Asynchronous select') - :markdown-it - Vue-Multiselect supports changing the option list on the fly, thus can be also used a type-a-head search box. - - To react to the search query changes, set a handler function on the `@search-change` event. It receives the `searchQuery` as the first param, which can be used to make an asynchronous API call. - - It is convenient to set the `:loading` prop to `true`, whenever a request is in progress. Look at the provided `asyncFind` method for an example usage. - - #### Optional configuration flags: - - `:hide-selected="true"` – already selected options will not be displayed in the dropdown - - `:internal-search="false"` – disables the multiselect’s internal search engine. If you do that, you have to manually update the available `:options`. - - `:limit="3"` – limits the visible results to 3. - - `:limit-text="limitText"` – function that receives the current selected options count and should return a string to show when the `:limit` count is exceed - - `:options-limit="300"` – limits the displayed options to `300`. Useful for optimisations purposes. - - #### New in v2.0.0 stable: - - `id="ajax"` – every event is emitted with this as the second param. Useful for identification which component instance triggered the method (in loops for example). NEW: Can also be used for pointing with `